     1                                  %if 0
     2                                  
     3                                  lDebug messages
     4                                  
     5                                  Copyright (C) 1995-2003 Paul Vojta
     6                                  Copyright (C) 2008-2026 E. C. Masloch
     7                                  
     8                                  Usage of the works is permitted provided that this
     9                                  instrument is retained with the works, so that any entity
    10                                  that uses the works is notified of this instrument.
    11                                  
    12                                  DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    13                                  
    14                                  %endif
    15                                  
    16                                  %define SOURCEFILENAME "msg.asm"
    17                                  %ifidni __OUTPUT_FORMAT__, obj
    18                                   %include VERSIONMAC
     1                              <1> %define _VERSION " (2026-04-12)"
    19                                   %include REVISIONMAC
     1                              <1> %define _REVISIONID	'hg 50f6025a3997 (6680 ancestors)'
     2                              <1> %define _REVISIONID_LMACROS	'Uses lmacros:  Revision ID hg de53a9686fad (167 ancestors)',13,10
     3                              <1> %define _REVISIONID_INSTSECT	''
     4                              <1> %define _REVISIONID_SYMSNIP	''
     5                              <1> %define _REVISIONID_SCANPTAB	'Uses scanptab: Revision ID hg 575fa89fd671 (31 ancestors)',13,10
     6                              <1> %define _REVISIONID_INICOMP	'Uses inicomp:  Revision ID hg 4872b62b68c3 (667 ancestors)',13,10
     7                              <1> %define _REVISIONID_INICHECK	'Uses inicheck: Revision ID hg 99649f7ba4e5 (56 ancestors)',13,10
     8                              <1> %define _REVISIONID_LDOSBOOT	'Uses ldosboot: Revision ID hg afef7485460b (1022 ancestors)',13,10
    20                                   %include "debug.mac"
     1                              <1> [list -]
    14                              <3> [list -]
    14                              <2> [list -]
    86                              <1> [list -]
    86          ------------------  <1>  note: Disable usesection detection
    86          ------------------  <1>  note: usesection lDEBUG_DATA_ENTRY
    86          ------------------  <1>  note: usesection ASMTABLE1
    86          ------------------  <1>  note: usesection ASMTABLE2
    86          ------------------  <1>  note: usesection DATASTACKBASE
    86          ------------------  <1>  note: usesection MESSAGESEGMENT
    86          ------------------  <1>  note: usesection lDEBUG_CODE
    86          ------------------  <1>  note: usesection lDEBUG_CODE2
    86          ------------------  <1>  note: usesection INIT
    86          ------------------  <1>  note: usesection WLEMITALIGNINITEND
    86          ------------------  <1>  note: usesection DEVICESHIM
    86          ------------------  <1>  note: usesection WLEMITALIGNRELOCZERO
    68                              <2> %endif
    69                              <2> 
    70                              <2> 
    71                              <2> 	usesection lDEBUG_CODE
    71          ------------------  <2>  note: usesection lDEBUG_CODE
    72                              <2> section_of puts, trimputs, puts_ext_done, puts_ext_next
    73                              <2> section_of putsz_exthelp, code_retf
    74                              <2> section_of puts_getline_ext_done
    75                              <2> section_of puts_copyoutput_ext_done
    76                              <2> section_of guard_auxbuff, guard_re
    77                              <2> section_of handle_serial_flags_ctrl_c
    78                              <2> section_of hexword_high
    79                              <2> section_of call_int2D
    80                              <2> section_of copy_single_counted_string
    81                              <2> section_of intchk
    82                              <2> section_of IsIISPEntry?
    83                              <2> section_of dd_store
    84                              <2> section_of dohack, getsegmented, hexbyte, hexnyb, iseol?.notsemicolon
    85                              <2> section_of peekc, getc, prephack, readmem, setds2si, setds2bx, setes2dx
    86                              <2> section_of silence_get_start, silence_get_start.have_di, silence_count_zeroes
    87                              <2> section_of setrmlimit, skipcomm0, unhack
    88                              <2> section_of skipequals
    89                              <2> section_of to_errret_pop
    90                              <2> section_of cmd3.have_cx_convenience
    91                              <2> section_of verifysegm, verifysegm_or_error
    92                              <2> section_of pp16, resetmode, resetmode_and_test_d_b_bit
    93                              <2> section_of pp_fix32bitflags, proceedbreakpoint
    94                              <2> section_of putsz, hexword, skipcomma, cmd3, cmd3_not_ext, cmd3_preprocessed
    95                              <2> section_of hexdword
    96                              <2> section_of cmd3_not_inject, cmd3_injected
    97                              <2> section_of aa_not_inject, aa_injected, aa_before_getline, aa_after_getline
    98                              <2> section_of transfer_ext_cx_nearcall_from_code2
    99                              <2> section_of traceone, unexpectedinterrupt, dumpregs_no_disasm
   100                              <2> section_of aa_imm_entry, ia_restore_a_addr, ia_restore_u_addr, disasm
   101                              <2> section_of ia_restore_ds
   102                              <2> %ifn _SYMBOLIC
   103                              <2> section_of selector_to_segment
   104                              <2> %endif
   105                              <2> section_of disp_al, disp_al_hex, disp_al_nybble_hex, disp_ax_dec, disp_ax_hex
   106                              <2> section_of disp_dxax_times_cx_width_bx_size
   107                              <2> section_of disp_dxax_times_cx_width_bx_size.store
   108                              <2> section_of disp_message, disp_message_length_cx
   109                              <2> section_of ispm
   110                              <2> section_of setrc, error
   111                              <2> section_of _doscall, _doscall_return_es, _doscall_return_es_parameter_es_ds
   112                              <2> section_of intcall_ext_return_es, close_ext, doscall_extseg
   113                              <2> section_of yy_reset_buf
   114                              <2> section_of init_bootcmd
   115                              <2> 
   116                              <2> section_of InDOS, bootgetmemorysize
   117                              <2> section_of chkeol, decword, decdword
   118                              <2> section_of dec_dword_minwidth
   119                              <2> section_of getexpression.lit_isdigit?, getexpression.lit_ishexdigit?
   120                              <2> section_of getlinearaddr
   121                              <2> section_of getlinear_d_b
   122                              <2> section_of getlinear_high_limit
   123                              <2> section_of getlinear_32bit
   124                              <2> section_of getlinear_high_limit.do_not_use_test
   125                              <2> section_of getlinear_common
   126                              <2> section_of ifsep, iseol?, isseparator?, isstring?, movp
   127                              <2> section_of putc, putsline, putsline_crlf, putsz_error
   128                              <2> section_of setrmsegm
   129                              <2> section_of skipwh0, skipwhite
   130                              <2> section_of test_d_b_bit, test_high_limit, push_cxdx_or_edx
   131                              <2> section_of capitalise
   132                              <2> section_of setes2ax
   133                              <2> section_of zz_copy_strings_to_str_buffer
   134                              <2> section_of call_xms_move, zz_call_xms, zz_detect_xms
   135                              <2> section_of code2_to_code_ret_to_ext
   136                              <2> section_of yy_dos_parse_name, yy_open_file, yy_check_lfn
   137                              <2> section_of yy_common_parse_name
   138                              <2> section_of yy_common_parse_name_bx_buffer
   139                              <2> section_of retry_open_scriptspath
   140                              <2> section_of yy_boot_read.bx, yy_boot_seek_start.bx, yy_boot_seek_current.bx
   141                              <2> section_of yy_boot_parse_name, yy_boot_open_file
   142                              <2> section_of yy_boot_parse_name_bx_buffer
   143                              <2> section_of near_transfer_ext_return, scan_dir_aux, read_sector
   144                              <2> section_of yy_boot_init_dir, got_yyentry, scan_dir_entry
   145                              <2> section_of ..@yy_filename_empty, boot_parse_fn
   146                              <2> section_of count_store, count_store.maybe_0
   147                              <2> section_of loader_get_resident_address, loader_prepare_resident
   148                              <2> 
   149                              <2> 
   150                              <2>  %if _SYMBOLIC && _DUALCODE && _SYMBOLASMDUALCODE
   151                              <2> 	usesection lDEBUG_CODE2
   152                              <2>  %else
   153                              <2> 	usesection lDEBUG_CODE
   153          ------------------  <2>  note: usesection lDEBUG_CODE
   154                              <2>  %endif
   155                              <2> section_of bxcx_to_cx_paragraphs
   156                              <2> section_of zz_list_symbol.first, zz_list_symbol.subsequent
   157                              <2> section_of zz_xms_to_86mm, zz_xms_try_free, zz_xms_try_free_handle
   158                              <2> section_of zz_86mm_to_xms, zz_del_match.add_poison_entrypoint
   159                              <2> section_of zz_free_nonxms, zz_free_xms, zz_free_reset, zz_free_dos
   160                              <2> section_of zz_get_literal, zz_restore_strat, zz_save_strat
   161                              <2> section_of zz_switch_s, zz_transfer_buffer
   162                              <2> 
   163                              <2> 
   164                              <2> %if _SYMBOLIC
   165                              <2>  %if _DUALCODE && _SYMBOLICDUALCODE
   166                              <2> 	usesection lDEBUG_CODE2
   167                              <2>  %else
   168                              <2> 	usesection lDEBUG_CODE
   169                              <2>  %endif
   170                              <2> section_of shift_left_4_bxcx
   171                              <2> section_of selector_to_segment
   172                              <2> 
   173                              <2> section_of anti_normalise_pointer_with_displacement_bxcx, displaystring
   174                              <2> section_of getfarpointer.hash, getfarpointer.main, getfarpointer.str
   175                              <2> section_of move_delete_farpointer.hash, move_delete_farpointer.hash.sidi
   176                              <2> section_of move_delete_farpointer.main, move_delete_farpointer.str.sidi
   177                              <2> section_of move_insert_farpointer.hash, move_insert_farpointer.hash.sidi
   178                              <2> section_of move_insert_farpointer.main, move_insert_farpointer.main.sidi
   179                              <2> section_of move_insert_farpointer.str.sidi
   180                              <2> section_of normalise_pointer, normalise_pointer_with_displacement_bxcx
   181                              <2> section_of pointer_to_linear
   182                              <2> section_of save_slice_farpointer.hash, save_slice_farpointer.main
   183                              <2> section_of save_slice_farpointer.str
   184                              <2> section_of segment_to_selector
   185                              <2> section_of zz_insert, zz_match_symbol, zz_match_symbol.continue, zz_relocate
   186                              <2> 
   187                              <2> section_of binsearchhash, binsearchmain
   188                              <2> section_of check_second_slice
   189                              <2> section_of disp_size_hash, disp_size_main, disp_size_str
   190                              <2> section_of displayresult, getstring1, getstring2
   191                              <2> section_of increment_ss_ref_count
   192                              <2> section_of list_sym_storage_usage, str_index_to_pointer
   193                              <2> section_of zz_commit_insert, zz_compact, zz_compact_expand_check_nonxms
   194                              <2> section_of zz_compact_expand_check_xms
   195                              <2> section_of zz_delete_hash, zz_delete_main, zz_delete_main_and_its_hash
   196                              <2> section_of zz_delete_string, zz_expand, zz_expand_common
   197                              <2> section_of zz_get_symstr_length_bytes
   198                              <2> section_of zz_get_symstr_length_bytes.ssLength_in_cx
   199                              <2> section_of zz_get_symstr_length_indices
   200                              <2> section_of zz_get_symstr_length_indices.ssLength_in_cx
   201                              <2> section_of zz_hash, zz_hash.bx_init
   202                              <2> section_of zz_insert_main.linklist, zz_reloc_main, zz_reloc_str
   203                              <2> section_of zz_store_pre_str, zz_store_string, zz_store_string.hash_bx
   204                              <2> section_of zz_unlink_main_next
   205                              <2> %endif
   206                              <2> 
   207                              <2> %if _DUALCODE
   208                              <2> 	usesection lDEBUG_CODE2
   208          ------------------  <2>  note: usesection lDEBUG_CODE2
   209                              <2> %else
   210                              <2> 	usesection lDEBUG_CODE
   211                              <2> %endif
   212                              <2> section_of FloatToStr
   213                              <2> 
   214                              <2> 
   215                              <2>  %if _DUALCODE && _EXPRDUALCODE
   216                              <2> 	usesection lDEBUG_CODE2
   216          ------------------  <2>  note: usesection lDEBUG_CODE2
   217                              <2>  %else
   218                              <2> 	usesection lDEBUG_CODE
   219                              <2>  %endif
   220                              <2> 
   221                              <2> section_of getofsforbx, checkpointer, getrangeX
   222                              <2> section_of getrangeX_have_address_need_length
   223                              <2> section_of getrange, getaddr, getofsforbx_remember_bitness
   224                              <2> section_of remember_bitness, getaddr_taken
   225                              <2> section_of getstr, get_length, get_length_keyword
   226                              <2> section_of isbracketorunaryoperator?, isunaryoperator?, isoperator?
   227                              <2> section_of ..@call_operator_dispatchers
   228                              <2> section_of isseparator?, istype?, isunsignedtype?
   229                              <2> section_of handlesegment, handle3byte, handlebyte, handleword
   230                              <2> section_of handledword, handlepointer
   231                              <2> section_of uoh_abs, uoh_minus, calculate_minus_bxdx, uoh_plus
   232                              <2> section_of uoh_not_bitwise, uoh_not_boolean
   233                              <2> section_of od_minus, od_plus, od_multiply, od_divide, od_modulo, od_retn
   234                              <2> section_of od_above, od_below, od_equal, od_not, od_or, od_and, od_xor
   235                              <2> section_of od_cond, od_o, od_a, od_x, od_c, od_string_common
   236                              <2> section_of of_modulo, of_minus, of_plus, or_hhtype, of_multiply
   237                              <2> section_of set_hhtype, of_divide, of_power
   238                              <2> section_of of_compare_below_equal, of_compare_below, of_compare_not_equal
   239                              <2> section_of of_compare_equal, of_compare_above_equal, of_compare_above
   240                              <2> section_of toboolean, of_helper_compare_true, of_rightop, of_helper_compare
   241                              <2> section_of of_shift_right, of_shift_right_signed, of_shift_left
   242                              <2> section_of of_helper_getshiftdata, of_bit_mirror
   243                              <2> section_of of_or_bitwise, or_hhtype_1, of_or_boolean, of_clr_bitwise
   244                              <2> section_of of_and_bitwise, of_and_boolean, of_xor_bitwise, of_xor_boolean
   245                              <2> section_of of_helper_retbool, of_helper_getbool
   246                              <2> 
   247                              <2> section_of var_cip_setup, var_csp_setup, var_lfsr_setup, var_reverselfsr_setup
   248                              <2> section_of var_dpspsel_setup, var_seldbg_setup, var_mt_setup
   249                              <2> section_of var_ioi_setup, var_psps_setup, var_ppr_setup, var_ppi_setup
   250                              <2> section_of var_iok_setup, var_rhcount_setup
   251                              <2> section_of var_get_psp_segment, var_get_psp_selector
   252                              <2> section_of var_bootldpunit_setup, var_bootsdpunit_setup, var_bootydpunit_setup
   253                              <2> section_of var_bootldppart_setup, var_bootsdppart_setup, var_bootydppart_setup
   254                              <2> section_of var_bootunitflags_setup
   255                              <2> 
   256                              <2> section_of issymbol?, isvariable?, var_mm_setup, var_ri_setup, var_ysf_setup
   257                              <2> section_of default_variable_setup
   258                              <2> section_of var_ext_setup
   259                              <2> section_of var_ext_setup_done
   260                              <2> 
   261                              <2> section_of getstmmxdigit
   262                              <2> section_of getexpression.lit_ishexdigit?, getexpression.lit_isdigit?
   263                              <2> section_of of_cond, count_unary_operators, count_unary_operators_restrict
   264                              <2> section_of get3byte.checksignificantbits, getbyte, checksignificantbitscommon
   265                              <2> section_of getnyb, get_value_range
   266                              <2> 
   267                              <2> section_of getaddrX, getword, getdword, getexpression
   268                              <2> 
   269                              <2> section_of getrangeX.lines, getrangeX.ecx_and_0_valid
   270                              <2> section_of getrange.lines, getrange.ecx_and_0_valid, get_length.lines
   271                              <2> section_of getrangeX.lines_and_uu, getrange.lines_and_uu
   272                              <2> section_of isseparator?.except_L_or_dot, isvariable?.return_name
   273                              <2> section_of getword.checksignificantbits, getbyte.checksignificantbits
   274                              <2> 
   275                              <2> section_of seg_bx_to_sel
   276                              <2> section_of getexpression.countsignificantbits
   277                              <2> section_of ..@rr_checksignificantbits, ..@rr_operatordispatchers
   278                              <2> section_of ..@rr_operatorfunctions, ..@parsecm_getaddr
   279                              <2> section_of stack_check.internal
   280                              <2> 
   281                              <2> 
   282                              <2> 	usesection INIT
   282          ------------------  <2>  note: usesection INIT
   283                              <2> section_of init_capitalise
   284                              <2> section_of init_skipwhite, init_skipwh0
   285                              <2> section_of init_skipcomma, init_skipcomm0
   286                              <2> section_of init_skipequals
   287                              <2> 
   288                              <2> 
   289                              <2> 	usesection lDEBUG_DATA_ENTRY
   289          ------------------  <2>  note: usesection lDEBUG_DATA_ENTRY
   290                              <2> section_of entry_retn
   291                              <2> 
   292                              <2> 
   293                              <2> %if _LINK
   294                              <2>  %include "extern.mac"
     1                              <3> 
     2                              <3> ; expr.asm
     3                              <3>  extern PPLEN, PPLEN_ONLY_PREFIXES, a_addr, alloc_seg, alloc_size
     4                              <3>  extern amis_multiplex_number, asm_options, asm_startoptions
     5                              <3>  extern auxbuff_current_size, auxbuff_segorsel, behind_r_u_addr
     6                              <3>  extern bp_offset, code_seg, code_size, d_addr, dcount_addr
     7                              <3>  extern dcpm_addr, dd_default_length, dd_default_lines, dd_text_and
     8                              <3>  extern debuggerfunction, default_pp_count, default_tp_count
     9                              <3>  extern default_tt_count, device_header_address, device_mcb_paragraphs
    10                              <3>  extern dwcount_addr, dz_addr, e_addr, encodedmach87, entryseg_size
    11                              <3>  extern env_size, envseg, erc, errret
    12                              <3>  extern extdata, extdata_size, extdata_used, extseg, extseg_size
    13                              <3>  extern extseg_used, flagbits.amount, flagnames, flagvaron
    14                              <3>  extern getrange_is_uu, getrange_lines, has_mmx, hhresult
    15                              <3>  extern history.segorsel, historyseg_size, immseg, input_file_handles
    16                              <3>  extern input_file_handles.active, internalflags, internalflags2
    17                              <3>  extern internalflags3, intr8_limit, io_columns, io_columns_getline
    18                              <3>  extern io_end_buffer, io_flags, io_levels, io_rows, io_start_buffer
    19                              <3>  extern line_out, line_out_end, linkinfoaddress, load_data
    20                              <3>  extern load_input_file, load_input_file.active, load_unit_flags
    21                              <3>  extern loaddata_loadedfrom, machine, maxmachinetype, messageseg
    22                              <3>  extern messageseg_size, mmxbuff, msg.as, msg.end, msg.executing
    23                              <3>  extern msg.executing_value_range, msg.from, msg.in, msg.length
    24                              <3>  extern msg.linear, msg.lines, msg.lr, msg.nd, msg.nottaken
    25                              <3>  extern msg.nt, msg.or, msg.questionmark, msg.r, msg.stack_overflow
    26                              <3>  extern msg.stack_overflow.caller, msg.stack_overflow.cond
    27                              <3>  extern msg.stack_overflow.indirection, msg.stack_overflow.linear
    28                              <3>  extern msg.stack_overflow.parens, msg.stack_overflow.precedence
    29                              <3>  extern msg.stack_overflow.value_in, msg.t, msg.taken, msg.to
    30                              <3>  extern msg.value, msgtable_value_range, options, options2, parent
    31                              <3>  extern ppbytes, priorrc, psp22, pspdbe, pspdbg
    32                              <3>  extern qqtermcode, rc_count, rc_limit, re_count, re_limit
    33                              <3>  extern reading_access_variables, reg16names, reg8names, reg_cs
    34                              <3>  extern reg_ds, reg_efl, reg_eip, reg_esp, search_results
    35                              <3>  extern serial_columns, serial_fifo_size, serial_keep_timeout
    36                              <3>  extern serial_rows, serial_use_baseport, serial_use_dl
    37                              <3>  extern serial_use_fifo, serial_use_intnum, serial_use_irqmask
    38                              <3>  extern serial_use_params, serial_var_baseport, serial_var_dl
    39                              <3>  extern serial_var_fifo, serial_var_intnum, serial_var_irqmask
    40                              <3>  extern serial_var_params, sscounter, stack, startoptions
    41                              <3>  extern table_length_keywords, throwsp, transfer_ext_cx
    42                              <3>  extern try_amis_multiplex_number, try_debugger_amis_multiplex_number
    43                              <3>  extern types, types.addresses_minus_end, types.end, u_addr
    44                              <3>  extern usertermcode, uu_default_length, uu_default_lines, vregs
    45                              <3>  extern vregs.amount, writing_access_variables
    46                              <3>  extern flagbits, regs
    47                              <3> 
    48                              <3> ; run.asm
    49                              <3>  extern ..@aa_access_end, ..@aa_access_start, ..@dd_access_end
    50                              <3>  extern ..@dd_access_start, ..@ee_access_end, ..@ee_access_start
    51                              <3>  extern ..@ee_interactive_access_end, ..@ee_interactive_access_start
    52                              <3>  extern ..@hh_indirection_memory_access_end
    53                              <3>  extern ..@hh_indirection_memory_access_start
    54                              <3>  extern ..@readmem_fault_skip_4_near_call, ..@rr_access_end
    55                              <3>  extern ..@rr_access_start, ..@rr_variable_read_access_end
    56                              <3>  extern ..@rr_variable_read_access_start
    57                              <3>  extern ..@rr_variable_write_access_end
    58                              <3>  extern ..@rr_variable_write_access_start, ..@sss_access_end
    59                              <3>  extern ..@sss_access_start, ..@uu_access_end, ..@uu_access_start
    60                              <3>  extern ..@uu_referenced_memory_access_end
    61                              <3>  extern ..@uu_referenced_memory_access_start, ..@uu_simulate_cmps_end
    62                              <3>  extern ..@uu_simulate_cmps_start, ..@uu_simulate_scas_end
    63                              <3>  extern ..@uu_simulate_scas_start, InDOS_or_BIOS_IO, PPLEN_ONLY_STRING
    64                              <3>  extern auxbuff_behind_last_silent
    65                              <3>  extern auxbuff_start_silent, bInDbg, b_bplist.bp, b_bplist.counter
    66                              <3>  extern b_bplist.disabled_mask, b_bplist.idbuffer, b_bplist.used_mask
    67                              <3>  extern b_bplist.when, bb_deferred_message_in_lineout_behind
    68                              <3>  extern bp_display_offset, calcpointbit, cmd2_reset_re, cmd_goto
    69                              <3>  extern debug22.cleartraceflag, decbyte, dmycmd, dumpregs_extended
    70                              <3>  extern enable_rh, entry_to_code_seg, entry_to_code_segsel, eqflag
    71                              <3>  extern eqladdr, exccsip, exception_csip, exception_stack, excloc
    72                              <3>  extern g_bplist.bp, g_bplist.used_count, get_set_id_offset_length
    73                              <3>  extern getc_if_any, getcseipbyte, getint2324, getpsp
    74                              <3>  extern gg_deferred_message, gg_first_cseip_linear
    75                              <3>  extern gg_next_cseip_linear, guard_auxbuff.1_or_2, idle, in_getinput
    76                              <3>  extern int19msg, internalflags6, intr8_counter, lastcmd, msg.again
    77                              <3>  extern msg.alreadytsr, msg.area_aa_access, msg.area_dd_access
    78                              <3>  extern msg.area_ee_access, msg.area_ee_interactive_access
    79                              <3>  extern msg.area_hh_indirection_memory_access, msg.area_rr_access
    80                              <3>  extern msg.area_rr_variable_read_access
    81                              <3>  extern msg.area_rr_variable_write_access, msg.area_run_access
    82                              <3>  extern msg.area_sss_access, msg.area_uu_access
    83                              <3>  extern msg.area_uu_referenced_memory_access
    84                              <3>  extern msg.area_uu_simulate_cmps, msg.area_uu_simulate_scas
    85                              <3>  extern msg.bb_hit.1, msg.bb_hit.2.counter, msg.bb_hitpass_id.after
    86                              <3>  extern msg.bb_hitpass_id.long, msg.bb_hitpass_id.short, msg.bb_pass.1
    87                              <3>  extern msg.cant_bp_linear, msg.cant_bp_linear.address1
    88                              <3>  extern msg.cant_bp_reason, msg.cant_bp_reason0, msg.cant_bp_reason1
    89                              <3>  extern msg.cant_bp_reason2, msg.cant_bp_reason3
    90                              <3>  extern msg.cant_bp_reason3.value, msg.cant_bp_reasonu
    91                              <3>  extern msg.cant_bp_restore, msg.cant_bp_restore.value
    92                              <3>  extern msg.cant_bp_the, msg.cant_bp_type_gg
    93                              <3>  extern msg.cant_bp_type_permanent, msg.cant_bp_type_permanent.index
    94                              <3>  extern msg.cant_bp_type_proceed, msg.cant_bp_write, msg.ctrlc
    95                              <3>  extern msg.empty_message, msg.goto, msg.invalidpsp, msg.list
    96                              <3>  extern msg.list_bp.address1, msg.list_bp.first, msg.list_bp.second
    97                              <3>  extern msg.list_bp.third, msg.list_bp.value, msg.list_bp_csip_16
    98                              <3>  extern msg.list_bp_none, msg.list_bp_not_cseip, msg.notyettsr
    99                              <3>  extern msg.nowattached, msg.nowtsr1, msg.nowtsr2, msg.psphooked
   100                              <3>  extern msg.pspnotfound, msg.remember, msg.selfownedpsp, msg.silent
   101                              <3>  extern msg.warnprefix, msg.while, msg.while_not_true
   102                              <3>  extern msg.while_terminated_after, msg.while_terminated_before
   103                              <3>  extern oldcols, oldcrtp, oldcsrpos, oldmr, options3
   104                              <3>  extern options6, pp_instruction, pp_operand, progexit, progtrm
   105                              <3>  extern rc, reg_eax, reg_es, reg_gs, reg_ss
   106                              <3>  extern run_int, run_sp, run_sp_reserve, savesp, setcseipbyte
   107                              <3>  extern setint2324, setpsp, setpspdbg
   108                              <3>  extern showstring, silence_dump, spadjust, swapscreen
   109                              <3>  extern tmode0, tmode1, tmodes, tmodev, tpg_possible_breakpoint
   110                              <3>  extern tpg_proceed_bp, tt_silent_mode_number, vpage, vrows
   111                              <3>  extern while_buffer, while_buffer.length, writemem
   112                              <3> 
   113                              <3>  extern ..@getcseipbyte_fault_skip_2_near_call
   114                              <3>  extern ..@setcseipbyte_fault_skip_2_near_call
   115                              <3>  extern ..@writemem_fault_skip_4_near_call_a
   116                              <3>  extern ..@writemem_fault_skip_4_near_call_b, int0Cmsg, int0Dmsg
   117                              <3>  extern int0msg, int18msg, int1msg, int3msg, int6msg
   118                              <3>  extern int8_kbd_msg, int8msg, runint_ctrlc_msg, serial_flags
   119                              <3> 
   120                              <3> ; bb.asm
   121                              <3>  extern ..@bb_id_length, ..@bb_id_start, ..@bb_saved_linear
   122                              <3>  extern ..@bb_when_length, ..@bb_when_start, b_bplist.id
   123                              <3>  extern b_bplist.idbuffer.free
   124                              <3>  extern b_bplist.whenbuffer, b_bplist.whenbuffer.free
   125                              <3>  extern bootcmd, crlf, msg.all, msg.at
   126                              <3>  extern msg.bb_no_new, msg.bb_when, msg.boot, msg.bp, msg.bpaddress
   127                              <3>  extern msg.bpcontent, msg.bpcounter, msg.bpdisabled, msg.bpenabled
   128                              <3>  extern msg.bpnone, msg.bpnone_at, msg.bpunused, msg.counter
   129                              <3>  extern msg.existing, msg.id, msg.new, msg.notbu, msg.number
   130                              <3>  extern msg.offset, msg.when, prnquit
   131                              <3> 
   132                              <3> ; rr.asm
   133                              <3>  extern InDOS_or_BIOS_output, cmdline_buffer
   134                              <3>  extern cmdline_buffer.end, cmdline_buffer.position, disflags, ee0a
   135                              <3>  extern error_expr, flagbits_for_40, flagbits_for_80, flagsoff
   136                              <3>  extern flagsoff_style2, flagsoff_style3, flagson, flagson_style23
   137                              <3>  extern get_memref_index_bx, getline00, getline_reset_notatty
   138                              <3>  extern guard_rc, hexnyb.common, hhtype, hhvar, in_re
   139                              <3>  extern mask_4byte, masks, memrefs, memrefs.free, msg.3byte
   140                              <3>  extern msg.abort, msg.append, msg.byte, msg.count, msg.dword
   141                              <3>  extern msg.highlight, msg.internal_error_no_mmx, msg.readonly
   142                              <3>  extern msg.readonly_mem, msg.regs386, msg.regs386_off, msg.regs386_on
   143                              <3>  extern msg.replace, msg.rh, msg.rv_mode.before, msg.rv_mode_r86m
   144                              <3>  extern msg.rv_mode_v86m, msg.rvd, msg.rvd_deviceheader
   145                              <3>  extern msg.rvd_not_device, msg.rvd_size, msg.rvm, msg.rvp
   146                              <3>  extern msg.rvp_application, msg.rvp_boot, msg.rvp_device
   147                              <3>  extern msg.rvp_device_attached, msg.rvp_tsr, msg.rvv
   148                              <3>  extern msg.unexpected_auxbuff_guard, msg.unhighlight, msg.vm_auxseg
   149                              <3>  extern msg.vm_codeseg, msg.vm_dataseg, msg.vm_entryseg, msg.vm_hisseg
   150                              <3>  extern msg.vm_messageseg, msg.vp_dparent, msg.vp_dpra
   151                              <3>  extern msg.vp_dpspsegment, msg.vp_parent, msg.vp_pra
   152                              <3>  extern msg.vp_pspsegment, msg.word, operatorfunctions, psp_parent
   153                              <3>  extern psp_pra, puts_break_line_more, putsline_break_line, re_buffer
   154                              <3>  extern re_buffer.end, re_buffer.position, re_sp, regs_prior
   155                              <3>  extern regs_prior.size, retn_expr, rh_count_number
   156                              <3>  extern rh_display_with_count, shortflagbits, shortflagbits.amount
   157                              <3>  extern shortflagsoff, shortflagson, silence_dump.rh
   158                              <3>  extern silence_dump.rh.all, table_getline_prepare_ldebug
   159                              <3>  extern table_getline_prepare_ms_debug, terminate_silent_dump
   160                              <3>  extern terminate_silent_dump.if_nonnull
   161                              <3> 
   162                              <3> ; rr.asm
   163                              <3>  extern flagbits_for_shl, regs_prior.size_w
   164                              <3> 
   165                              <3> ; aa.asm
   166                              <3>  extern REP_LEN, SEGP_LEN, attach
   167                              <3>  extern ext_aa_after_getline_handler, ext_aa_before_getline_handler
   168                              <3>  extern ext_aa_inject_handler, immasm_length, immasm_rel1632_target
   169                              <3>  extern immasm_rel8_target, msg.aa_internal_error, msg.attach
   170                              <3>  extern prefixlist.after_segment, replist, segprfxtab, showmach
   171                              <3>  extern skipalpha, sm1
   172                              <3> 
   173                              <3> ; uu.asm
   174                              <3>  extern A32P_LEN, GROUP7, MN_DB, MN_LOCK, MN_LOOP
   175                              <3>  extern MN_LOOPNZ, MN_LOOPZ, MN_REP, MN_REPE, MN_REPNE
   176                              <3>  extern MN_SEG, MN_WAIT, N_LOCK, N_LTABA, N_LTABO
   177                              <3>  extern N_WTAB, O32P_AMOUNT, OPTYPES_BASE, REP_DIFF_LEN, REP_SAME_LEN
   178                              <3>  extern SFPGROUP3, SGROUP4, SPARSE_BASE, a32prfxtab, dismach
   179                              <3>  extern dmflags, has_87, immasm_far_target, immasm_imm16, locktab
   180                              <3>  extern ltaba1, ltabo1, mach_87, mnlist, mnlist_a_suffix_allowed
   181                              <3>  extern mnlist_o_suffix_allowed, mnlist_o_suffix_required
   182                              <3>  extern msg.condjump, msg.condnotjump, msg.memrefs_invalid_internal
   183                              <3>  extern msg.uninstall, msg.uu_internal_error, msg.uu_too_many_repeat
   184                              <3>  extern needsmath, needsmath_L, needsmsg, needsmsg.digit_6_ofs
   185                              <3>  extern needsmsg.digit_x_ofs, needsmsg_L, o32prfxtab, obsmach
   186                              <3>  extern obsolete, obsolete_L, opindex, opinfo, oplists
   187                              <3>  extern optypes, ppbytes.string, ppbytes.string_amount, reg_ebp
   188                              <3>  extern reg_ebx, reg_ecx, reg_edi, reg_esi, reg_fs
   189                              <3>  extern regmem, rgnam16, rgnam816, segrgnam, sibbyte
   190                              <3>  extern sqztab, tab_to, uninstall, unused, wtab1
   191                              <3> 
   192                              <3> ; uu.asm
   193                              <3>  extern reg_edx
   194                              <3> 
   195                              <3> ; uu.asm
   196                              <3>  extern MN_BSWAP, MN_O32
   197                              <3> 
   198                              <3> ; uu.asm
   199                              <3>  extern MN_A32
   200                              <3> 
   201                              <3> ; amis.asm
   202                              <3>  extern amisintr_offset, deviceshim_size, ext_amis_handler
   203                              <3> 
   204                              <3> ; boot.asm
   205                              <3>  extern boot_remember_seek_handle
   206                              <3>  extern boot_remember_seek_offset, chkeol_or_then, cmd_goto.yy_entry
   207                              <3>  extern display_y_or_ext, ext_cmdline, ext_finish.boot
   208                              <3>  extern if_exists_found_open, if_exists_not_found
   209                              <3>  extern if_exists_then_address, iseol?_or_then, loadoptiontable
   210                              <3>  extern loadoptiontable.incompatible, loadsettings
   211                              <3>  extern msdos7_message_table, msdos7_message_table.size
   212                              <3>  extern msg.boot_access_error, msg.boot_and, msg.boot_auxbuff_crossing
   213                              <3>  extern msg.boot_badchain, msg.boot_badclusters, msg.boot_badfat
   214                              <3>  extern msg.boot_bpb_load_overlap, msg.boot_bpb_too_low
   215                              <3>  extern msg.boot_cannot_set_both, msg.boot_dot_crlf
   216                              <3>  extern msg.boot_file_not_found, msg.boot_file_too_big_error
   217                              <3>  extern msg.boot_file_too_small_error, msg.boot_internal_error
   218                              <3>  extern msg.boot_invalid_filename, msg.boot_invalid_heads
   219                              <3>  extern msg.boot_invalid_sectors, msg.boot_out_of_memory_error
   220                              <3>  extern msg.boot_partition_cycle_error, msg.boot_partition_not_found
   221                              <3>  extern msg.boot_quit_fail, msg.boot_sector_not_power
   222                              <3>  extern msg.boot_sector_too_large, msg.boot_sector_too_small
   223                              <3>  extern msg.boot_segment_too_low, msg.boot_too_many_partitions_error
   224                              <3>  extern msg.bootfail, msg.bootfail_check_mismatch
   225                              <3>  extern msg.bootfail_check_mismatch.check_got
   226                              <3>  extern msg.bootfail_check_mismatch.check_offset
   227                              <3>  extern msg.bootfail_check_mismatch.check_value, msg.bootfail_code
   228                              <3>  extern msg.bootfail_read, msg.bootfail_read_errorcode
   229                              <3>  extern msg.bootfail_secsizediffer, msg.bootfail_sig
   230                              <3>  extern msg.bootfail_sig_parttable, msg.bootfail_stack_underflow
   231                              <3>  extern msg.bpb, msg.checkoffset, msg.checkvalue, msg.dir
   232                              <3>  extern msg.dirinsteadsize, msg.emptydirname, msg.entry
   233                              <3>  extern msg.guard_auxbuff_error, msg.hidden, msg.hiddenadd
   234                              <3>  extern msg.maxpara, msg.minpara, msg.protocol, msg.quit, msg.read
   235                              <3>  extern msg.sector, msg.sector_alt, msg.segment, msg.write
   236                              <3>  extern msg.yy_empty, msg.yy_filename_empty, msg.yy_no_file
   237                              <3>  extern msg.yy_requires_filename, msg.yy_too_large
   238                              <3>  extern msg.yy_too_many_handles, terminator_in_line_in.offset
   239                              <3>  extern terminator_in_line_in.value, throwret
   240                              <3>  extern yy_boot_attempt_open_pathname, yy_boot_attempt_open_stack
   241                              <3>  extern yy_is_script
   242                              <3> 
   243                              <3> ; cc.asm
   244                              <3>  extern count_var, hh.single, msg.clear, msg.clear_sequence
   245                              <3>  extern msg.range, parsecm
   246                              <3> 
   247                              <3> ; dd.asm
   248                              <3>  extern auxbuff_current_size_minus_24, charcounter
   249                              <3>  extern dstringaddr, dstringtype, firstmcb, firstumcb, intaddress
   250                              <3>  extern lastint, lastint_is_86m_and_mcb, msg.di_empty, msg.di_error
   251                              <3>  extern msg.di_freedos_reloc, msg.di_hidden, msg.di_hma, msg.di_iisp
   252                              <3>  extern msg.di_jmpfar, msg.di_jmpfarindirect, msg.di_multiplex.1
   253                              <3>  extern msg.di_multiplex.2, msg.di_multiplex.3, msg.di_nonstd_iisp
   254                              <3>  extern msg.di_system_low, msg.di_system_mcb, msg.di_system_upper
   255                              <3>  extern msg.di_testhook, msg.di_toomany, msg.di_uninst_iisp
   256                              <3>  extern msg.header, msg.header.length, msg.invmcbadr, msg.prefixes
   257                              <3>  extern msg.tableheader, msg.tableheadertop, msg.top, msg.trailer
   258                              <3>  extern msg.trailer.length, smcbmsg_unknown, smcbtypes
   259                              <3> 
   260                              <3> ; debug.asm
   261                              <3>  extern UnhookInterruptForce, UnhookInterruptForceSim, aa
   262                              <3>  extern adusetup, bb, boot_ebdaflag, boot_initcode
   263                              <3>  extern boot_new_memsizekib, boot_old_memsizekib, cc, code_start, ddd
   264                              <3>  extern device_initcode, driveno, dumpregs_extended.exit, ee
   265                              <3>  extern eld_linkcall.call_cmd3, end_of_ldebug_code, entry_int3_retf
   266                              <3>  extern errcarat, ff, get_86m_interrupt_handler_no_dos, get_columns
   267                              <3>  extern getline_close_file, getline_close_file.resetstuff, gg, hh
   268                              <3>  extern hh_depth, hh_depth_of_single_term, hhflag, ia_restore, ii
   269                              <3>  extern immasm, install_86m_interrupt_handler, int22, int2D, intr0
   270                              <3>  extern intr0C, intr0D, intr1, intr18, intr19
   271                              <3>  extern intr3, intr6, intr8, linkinfo, ll
   272                              <3>  extern ll3, ll_copy_cmdline_and_fcbs
   273                              <3>  extern ll_copy_cmdline_and_fcbs.have_cx
   274                              <3>  extern mm, msg.NULblank, msg.asmoptions_1, msg.boothelp
   275                              <3>  extern msg.build_array, msg.build_long_amount, msg.build_short_amount
   276                              <3>  extern msg.build_version_amount, msg.cannot_hook_2D.invalid
   277                              <3>  extern msg.cannot_hook_2D.nofree, msg.cannotbootquit_memsizes
   278                              <3>  extern msg.condhelp, msg.ensure_no_memory, msg.expressionhelp
   279                              <3>  extern msg.flaghelp, msg.flags_1, msg.guard_rc_error
   280                              <3>  extern msg.guard_re_error, msg.help_array, msg.help_array_amount
   281                              <3>  extern msg.help_re, msg.help_run, msg.help_source, msg.keep
   282                              <3>  extern msg.license, msg.line_out_overflow, msg.n_toolongname
   283                              <3>  extern msg.n_toolongtail, msg.nobootsupp, msg.options_array
   284                              <3>  extern msg.options_array_amount, msg.options_pages, msg.options_scan
   285                              <3>  extern msg.options_scan_amount, msg.qq_a_terminated
   286                              <3>  extern msg.qq_a_unterminated, msg.qq_device_no_c, msg.qq_device_no_d
   287                              <3>  extern msg.qq_device_none_selected, msg.qq_unterm
   288                              <3>  extern msg.rc_limit_reached, msg.re, msg.re_limit_reached
   289                              <3>  extern msg.reghelp, msg.rh_disabled, msg.rh_enabled, msg.run
   290                              <3>  extern msg.serial_cannot_hook, msg.serial_cannot_hook.new_int
   291                              <3>  extern msg.serial_cannot_hook.old_int, msg.serial_cannot_unhook
   292                              <3>  extern msg.serial_cannot_unhook.int, msg.serial_cannot_unhook.nowarn
   293                              <3>  extern msg.serial_late_unhook, msg.serial_late_unhook.int
   294                              <3>  extern msg.serial_no_keep_enter, msg.serial_no_keep_timer
   295                              <3>  extern msg.serial_request_keep, msg.source, msg.string_build
   296                              <3>  extern msg.string_options, msg.string_version
   297                              <3>  extern msg.tsr_cannot_terminate_attached, msg.varhelp, oo, ph_msg, pp
   298                              <3>  extern putrunint, putsz_exthelp, rr, run, section.DEVICESHIM.vstart
   299                              <3>  extern serial_clean_up, serial_clear_fifos, serial_eoi
   300                              <3>  extern serial_init_UART, serial_install_interrupt_handler
   301                              <3>  extern serial_interrupt_handler, serial_uninstall_interrupt_handler
   302                              <3>  extern set_irq, setscreen, sleep_delta_limit, sleep_highest_delta
   303                              <3>  extern sss, tpg_initialise_empty_auxbuff.reset
   304                              <3>  extern transfer_to_ext_puts_getline, tt, update_inttab_optional, uu
   305                              <3>  extern vv, vv_disable, vv_set, ww, yy
   306                              <3> 
   307                              <3> ; debug.asm
   308                              <3>  extern eld_linkcall
   309                              <3> 
   310                              <3> ; ee.asm
   311                              <3>  extern bufend, bufnext, fillbuf, fullbsout
   312                              <3>  extern getline_is_input_file?, line_in, linecounter, load_extension
   313                              <3>  extern msg.ext, notatty, prehak1, run2324
   314                              <3> 
   315                              <3> ; hh.asm
   316                              <3>  extern hh_div_active, hh_div_dividend, hh_div_divisor
   317                              <3>  extern msg.base, msg.group, msg.hh_div_remainder, msg.width
   318                              <3> 
   319                              <3> ; iioo.asm
   320                              <3>  extern if_exists_length, if_exists_si, if_exists_sp
   321                              <3>  extern install, msg.exists, msg.install, msg.not, msg.then
   322                              <3>  extern msg.y, resetrc, yy_or_ext_no_guard_re
   323                              <3> 
   324                              <3> ; immasm.asm
   325                              <3>  extern aa_ret, addrr, condmsg, error_mirror, index
   326                              <3>  extern msg.immasm_error_eip, presizeflags, reg32addr, segmnt
   327                              <3>  extern segrgaddr
   328                              <3> 
   329                              <3> ; msg.asm
   330                              <3>  extern ..@boot_scan_dir_return_fat16_root_entry
   331                              <3>  extern ..@boot_scan_dir_return_filenotfound
   332                              <3>  extern ..@boot_scan_dir_return_subdir_or_fat32_entry
   333                              <3>  extern alloc_size_not_reserved, asciitablenames, boot_init_foundname
   334                              <3>  extern configpath, configpath.dir_end, device_quittable_regs, dpmi32
   335                              <3>  extern execblk.cmdline, ext_command_handler, ext_finish.bp_is_set
   336                              <3>  extern ext_handle, ext_inject_handler, ext_preprocess_handler
   337                              <3>  extern ext_puts_copyoutput_handler, ext_puts_getline_handler
   338                              <3>  extern ext_puts_handler, ext_var, ext_var_amount, ext_var_format
   339                              <3>  extern ext_var_size, extcssel, extdssel, handle_scan_dir_entry
   340                              <3>  extern handle_scan_dir_not_found, history.first, history.last
   341                              <3>  extern indirect_array_errfix, init_executable_pathname
   342                              <3>  extern init_executable_pathname.end, internalflags4, internalflags5
   343                              <3>  extern internalflags7, isvariable_morebyte_nameheaders.ext
   344                              <3>  extern lastcmd_transfer_ext_address, lastcmd_transfer_ext_entry
   345                              <3>  extern line_in.end, linkcall_table, load_adr_dirbuf_segment
   346                              <3>  extern load_check_dir_attr, load_data_lowest, load_kernel_name
   347                              <3>  extern load_yy_direntry, load_yyname_input, load_yyname_next
   348                              <3>  extern near_transfer_ext_address, near_transfer_ext_entry
   349                              <3>  extern next_reserved_segment, options4, options5, options7
   350                              <3>  extern patcharea_intrtn, patcharea_intrtn.segment
   351                              <3>  extern patcharea_intrtn.size, patcharea_run, patcharea_run.segment
   352                              <3>  extern patcharea_run.size, pm_2_86m_0, promptlen, reserved_address
   353                              <3>  extern scriptspath, scriptspath.dir_end
   354                              <3>  extern sss_silent_count, sss_silent_count_used, stack_end, swch1
   355                              <3>  extern while_buffer.end
   356                              <3> 
   357                              <3> ; msg.asm
   358                              <3>  extern install_trying
   359                              <3> 
   360                              <3> ; init.asm
   361                              <3>  extern ..@init_behind, ..@init_first
   362                              <3>  extern ..@patch_no386_ds_6_DATA_ENTRY
   363                              <3>  extern ..@patch_no386_ds_code_or_entry
   364                              <3>  extern ..@patch_no386_iret_code_or_entry, behind_code_truncated
   365                              <3>  extern behind_init, behind_messagesegment_nobits
   366                              <3>  extern behind_messagesegment_nobits_truncated, debug22
   367                              <3>  extern device_header.next, devint23, devint24, entry_retf
   368                              <3>  extern execblk.fcb1, execblk.fcb2, ext_data_area, extcall_table.ret
   369                              <3>  extern extcall_table.segsel, fileext, hVdd, immasm_buffer, initcont
   370                              <3>  extern initcont.boot_entry, initcont.device, inttab, inttab.i06
   371                              <3>  extern inttab.i2D, inttab_number_variable, line_out_overflow
   372                              <3>  extern linkcall_table.code1, linkcall_table.entry
   373                              <3>  extern linkcall_table.init, oldmode, pInDOS, pSDA, regs.size
   374                              <3>  extern switchar, trim_overflow, var_addr_entries
   375                              <3>  extern var_addr_entries.amount
   376                              <3> 
   377                              <3> ; install.asm
   378                              <3>  extern installflags, msg.alreadydisabled
   379                              <3>  extern msg.alreadyenabled, msg.toggle, msg.trydisable, msg.tryenable
   380                              <3> 
   381                              <3> ; ints.asm
   382                              <3>  extern debuggeramissig, inttab_optional
   383                              <3> 
   384                              <3> ; lineio.asm
   385                              <3>  extern auxbuff_amount_silent, cmd3_set_options
   386                              <3>  extern determine_quiet_output, eldheader, getc_repeat_idle
   387                              <3>  extern getline_timer_func, handle_ctrl_c, if_exists_found_closed
   388                              <3>  extern if_exists_found_ext_open, indos_remember_seek_function
   389                              <3>  extern indos_remember_seek_handle, indos_remember_seek_offset
   390                              <3>  extern input_file_handles.to_close, msg.configkeyword
   391                              <3>  extern msg.eld_error_code, msg.eld_load_error, msg.emptykeyword
   392                              <3>  extern msg.eof, msg.executablekeyword, msg.ext_error_internal
   393                              <3>  extern msg.ext_error_invalid, msg.ext_error_io, msg.ext_error_oom
   394                              <3>  extern msg.freedos_ctrlc_workaround, msg.goto_empty
   395                              <3>  extern msg.goto_not_file, msg.goto_not_found.1, msg.goto_not_found.2
   396                              <3>  extern msg.history_internal_error, msg.more, msg.more_over
   397                              <3>  extern msg.more_over_size, msg.more_size, msg.rh_step.1
   398                              <3>  extern msg.rh_step.2, msg.scriptskeyword, msg.silent_error, msg.sof
   399                              <3>  extern msg.unexpected_noneol_rc, msg.unexpected_noneol_re
   400                              <3>  extern msg.yy_error_file_open, msg.yy_filename_missing_unquote
   401                              <3>  extern msg.yy_no_dos, qq, section.DATASTACK.vstart
   402                              <3>  extern serial_check_receive_char, serial_receive_char
   403                              <3>  extern serial_send_char, skip_rh, yy_boot
   404                              <3>  extern yy_boot_clear_remember_seek, yy_boot_close_file, yy_boot_read
   405                              <3>  extern yy_boot_remember_seek, yy_boot_seek_current
   406                              <3>  extern yy_boot_seek_start, yy_try_scriptspath
   407                              <3>  extern yy_try_scriptspath.didnotyettry
   408                              <3>  extern yy_try_scriptspath.nokeywordused
   409                              <3> 
   410                              <3> ; ll.asm
   411                              <3>  extern doserr8, ensuredebuggeeloaded, execblk, execblk.csip
   412                              <3>  extern execblk.sssp, msg.hexerror, msg.ll_unterm, msg.not_while_indos
   413                              <3>  extern msg.tsr_cannot_ll, parselw, reading
   414                              <3>  extern terminate_attached_process, ww1, ww15, zeroregs
   415                              <3> 
   416                              <3> ; mm.asm
   417                              <3>  extern has_287, has_copr, msg.c0, msg.cr, msg8088
   418                              <3>  extern msgx86, no_copr, parsecm_have_address
   419                              <3> 
   420                              <3> ; serialp.asm
   421                              <3>  extern baseport, msg.no_progress, rxfifo, rxhead
   422                              <3>  extern rxtail, serial_fcr_setting, serial_installed_intnum
   423                              <3>  extern serial_save_dl, serial_save_ier, serial_save_irq_mask
   424                              <3>  extern serial_save_irq_off, serial_save_lcr, serial_save_mcr, txfifo
   425                              <3>  extern txhead, txtail
   426                              <3> 
   427                              <3> ; ss.asm
   428                              <3>  extern msg.matches, msg.reverse, msg.seconds, msg.sleep
   429                              <3>  extern msg.ticks, sleep_repeat_idle
   430                              <3> 
   431                              <3> ; vv.asm
   432                              <3>  extern csrpos, msg.nokeep, msg.off, msg.on, msg.vv_disabled
   433                              <3>  extern msg.vv_enable_failure, xmsdrv, xmsmove
   434                              <3> 
   435                              <3> ; ww.asm
   436                              <3>  extern diskful, doserr11, doserr2, doserr3, doserr5
   437                              <3>  extern drive, drivenumber, dskerrs, not_while_indos, nowhexe
   438                              <3>  extern nownull, openerr, openerr1, writing, wwmsg1
   439                              <3>  extern wwmsg2
   440                              <3> 
   441                              <3> 
   442                              <3>  extern bCSAttr, lDEBUG_CODE_to_lDEBUG_CODE2_nearcall_helper
   443                              <3> 
   444                              <3>  extern hook2F.not_in_dos
   445                              <3> 
   446                              <3>  extern cmd4.int3, lDEBUG_CODE2_dualret_helper
   447                              <3>  extern lDEBUG_CODE2_to_lDEBUG_CODE_nearcall_helper
   448                              <3>  extern lDEBUG_CODE_to_lDEBUG_CODE2_dualcall_helper, msg.bu
   449                              <3>  extern msg.bu_relocated, msg.bu_relocated.sign
   450                              <3> 
   451                              <3>  extern nopmsupp
   452                              <3> 
   453                              <3>  extern bAddr32
   454                              <3> 
   455                              <3>  extern descriptor, descriptor.attrib, descriptor.base
   456                              <3>  extern descriptor.limit, gatewrong, msg.d.a_error, msg.d.a_error_code
   457                              <3>  extern msg.d.a_success, msg.d.a_success_sel, msg.d.b_error
   458                              <3>  extern msg.d.b_error_code, msg.d.b_success, msg.d.d_error
   459                              <3>  extern msg.d.d_error_code, msg.d.d_success, msg.d.l_error
   460                              <3>  extern msg.d.l_error_code, msg.d.l_success, msg.d.t_error
   461                              <3>  extern msg.d.t_error_code, msg.d.t_success, msg.deschelp, msg.ofs32
   462                              <3>  extern nodesc
   463                              <3> 
   464                              <3>  extern ..@patch_tsr_quit_run, areastruc_entry.qq_entry, cssel
   465                              <3>  extern ddebugareas.next, debug2F, dpmidisable, dpmientry, dpmihook
   466                              <3>  extern dpmihookamis, dpmihookcs, dpmiwatch, end_of_ldebug_code2
   467                              <3>  extern findinstalleddebugger, get_messagesegsel, handle_mode_changed
   468                              <3>  extern i23pm, msg.cannotpmquit, msg.desc, msg.dpmi_no_hook, msg.msdos
   469                              <3>  extern msg.qq_device_pm, msg.qq_still_pm, msg.qqlate_areas_error
   470                              <3>  extern msg.readonly_verifysegm, msg.readonly_verifysegm.selector
   471                              <3>  extern mydpmientry, nodosext, oldi2F, pm_reset_handlers, scratchsel
   472                              <3>  extern sr_state, switchmode, uninstall_areas.qq_entry
   473                              <3> 
   474                              <3>  extern i24pm
   475                              <3> 
   476                              <3>  extern auxbuff_switchbuffer_size, code2_seg, code2_sel, code2_size
   477                              <3>  extern code_sel, daresult, dssel, immsel
   478                              <3>  extern lDEBUG_CODE2_to_lDEBUG_CODE_dualcall_helper
   479                              <3>  extern lDEBUG_CODE_dualret_helper, messagesel, msg.desctype
   480                              <3>  extern msg.stack_overflow.desctype
   481                              <3> 
   482                              <3>  extern cmd3_mirror
   483                              <3> 
   484                              <3>  extern ..@patch_entry_seg, ..@patch_no386_ds_4, ..@patch_no386_ds_5
   485                              <3>  extern ..@patch_no386_ds_entry_pmint21_1
   486                              <3>  extern ..@patch_no386_ds_entry_pmint21_2, areas_fun, areas_sub
   487                              <3>  extern ddebugareas.prev, linkcall_table.code2
   488                              <3> 
   489                              <3>  extern areas_struc, msg.areasalreadyinstalled
   490                              <3>  extern msg.areasalreadyuninstalled, msg.areasinstalled
   491                              <3>  extern msg.areasnodebuggerfound, msg.areasnotinstalled
   492                              <3>  extern msg.areasnotinstalled.code, msg.areasnotsupported
   493                              <3>  extern msg.areasuninstalled, msg.areasuninstalled.code
   494                              <3> 
   495                              <3>  extern intcall_return_parameter_es_parameter_ds
   496                              <3>  extern lDEBUG_CODE_to_lDEBUG_CODE_dualcall_helper, pop_if, push_if
   497                              <3> 
   498                              <3>  extern isextenderavailable, msg.cannotpmload, nodosextinst
   499                              <3> 
   500                              <3>  extern install_areas, patcharea_pm_exc, patcharea_pm_exc.segment
   501                              <3>  extern patcharea_pm_exc.size
   502                              <3> 
   503                              <3>  extern pmint21
   504                              <3> 
   505                              <3>  extern debuggerexception, entry_to_code_sel, exc6msg, excCmsg
   506                              <3>  extern excDmsg, excEmsg, intrtn2_entry, pmintsave.int21
   507                              <3> 
   508                              <3>  extern convsegs, convsegs.amount_fixed, convsegs.end_fixed
   509                              <3>  extern dpmi_pm2rm, dpmi_pmsav, dpmi_rm2pm, dpmi_rmsav, endexctab
   510                              <3>  extern exc_first, exc_second, excsave, exctab, installdpmimsg
   511                              <3>  extern intrtn_entry.from_installdpmi, pmintsave, pminttab
   512                              <3>  extern pminttab.end, setrmaddr, silence_delete_one_string.internal
   513                              <3> 
   514                              <3>  extern msg.rv_mode_dpmi_16, msg.rv_mode_dpmi_32, msg.vm_code2seg
   515                              <3>  extern msg.vm_selector, msg.vp_dpspsel, msg.vp_pspsel, psp_selector
   516                              <3> 
   517                              <3>  extern ..@getcseipbyte_fault_skip_6_near_call
   518                              <3>  extern ..@hh_code1_indirection_memory_access_end
   519                              <3>  extern ..@hh_code1_indirection_memory_access_start
   520                              <3>  extern ..@readmem_fault_skip_2_near_call
   521                              <3>  extern ..@setcseipbyte_fault_skip_6_near_call
   522                              <3>  extern ..@writemem_fault_skip_2_near_call_a
   523                              <3>  extern ..@writemem_fault_skip_2_near_call_b, behind_code
   524                              <3>  extern behind_code2, convsegs.amount, ddebugareas
   525                              <3>  extern getline_extra_int22.cleartraceflag, msg.list_bp_cseip_32
   526                              <3> 
   527                              <3>  extern MN_O16
   528                              <3> 
   529                              <3>  extern MN_A16
   530                              <3> 
   531                              <3>  extern relocatedzero
   532                              <3> 
   533                              <3>  extern msg.bu_disabled
   534                              <3> 
   535                              <3>  extern reset_interrupts, set_interrupts
   536                              <3> 
   537                              <3>  extern startoptions6
   538                              <3> 
   539                              <3>  extern currentposition, msg.loader_bottom_not_allowed
   540                              <3>  extern msg.loader_too_low_load
   541                              <3> 
   542                              <3>  extern intr_loader_18, intr_loader_19, moveloader_hook_ints
   543                              <3> 
   544                              <3>  extern loader_query, loader_transfer_cmd3, loader_transfer_relocate
   545                              <3> 
   546                              <3>  extern cmd3_int_disable.set_bx_to_dx, cmd3_int_enable.set_bx_to_dx
   547                              <3>  extern ldebug_code_size, movesegrefstable, movetable
   548                              <3>  extern movetable.bottom, msg.isalready, msg.isnow, msg.loader_error
   549                              <3>  extern msg.move, msg.move_auxbuff_error, msg.move_auxdown
   550                              <3>  extern msg.move_auxup, msg.move_ebdanottop, msg.move_empty
   551                              <3>  extern msg.move_int_error, msg.move_int_panic
   552                              <3>  extern msg.move_must_be_bottom, msg.move_nottop, msg.move_oom
   553                              <3>  extern msg.move_rpl, msg.move_toolargeebda, msg.unsupportedmove
   554                              <3>  extern qq_int_unhook_sim.set_bx_to_dx
   555                              <3> 
   556                              <3>  extern moveloader.already, moveloader.bottom_to_hidden
   557                              <3>  extern moveloader.bottom_to_top, moveloader.hidden_to_bottom
   558                              <3>  extern moveloader.hidden_to_top, moveloader.top_to_bottom
   559                              <3>  extern moveloader.top_to_hidden
   560                              <3> 
   561                              <3>  extern moveloader.specificerror, moveloader_check_serial, msg.godebug
   562                              <3>  extern msg.loader_extra, msg.loader_flag, msg.loader_loadseg_low
   563                              <3>  extern msg.loader_must_be_hidden, msg.loader_sign, msg.loader_stack
   564                              <3>  extern msg.loadsupportsignature, msg.loadsupportsignature.size
   565                              <3> 
   566                              <3>  extern depack, hshrink_memory_source.offset
   567                              <3>  extern hshrink_memory_source.segment, indirect_hshrink_message_buffer
   568                              <3>  extern msg.hshrink_error, nontruncated_hshrink_message_buffer
   569                              <3> 
   570                              <3>  extern truncated_hshrink_message_buffer
   571                              <3> 
   572                              <3>  extern patch_boothelp_uncompressed
   295                              <2> %endif
   710                              <1> %endif
   711                              <1> [list -]
   714                              <1> 
   715                              <1> %include "eld.mac"
     1                              <2> %if 0
     2                              <2> 
     3                              <2> Extensions for lDebug macros
     4                              <2> 
     5                              <2> Copyright (C) 2008-2025 E. C. Masloch
     6                              <2> 
     7                              <2> Usage of the works is permitted provided that this
     8                              <2> instrument is retained with the works, so that any entity
     9                              <2> that uses the works is notified of this instrument.
    10                              <2> 
    11                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    12                              <2> 
    13                              <2> %endif
    14                              <2> 
    15                              <2> %ifndef ELD_MAC
    16                              <2> %define ELD_MAC 1
    17                              <2> 
    18                              <2> %include "lmacros3.mac"
     1                              <3> [list -]
    19                              <2> 
    20                              <2> 		; ELD executable header
    21                              <2> 	struc ELD_HEADER
    22 00000000 ????????            <2> eldhSignature:		resb 4	; "ELD1"
    23 00000004 ??????              <2> 			resb 3	; reserved
    24 00000007 ??                  <2> 			resb 1	; 26 (Ctrl-Z)
    25 00000008 ????????            <2> eldhCodeOffset:		resd 1	; position displacement from eldhSignature
    26 0000000C ????                <2> eldhCodeImageLength:	resw 1	; amount bytes, at least 32
    27 0000000E ????                <2> eldhCodeAllocLength:	resw 1	; amount bytes, added to prior. sum < 64 KiB
    28 00000010 ????????            <2> eldhDataOffset:		resd 1
    29 00000014 ????                <2> eldhDataImageLength:	resw 1	; (zero allowed)
    30 00000016 ????                <2> eldhDataAllocLength:	resw 1	; (zero allowed)
    31 00000018 ????                <2> eldhCodeEntrypoint:	resw 1	; within code section, used as displacement
    32 0000001A ????????            <2> eldhReserved:		resb 4	; reserved
    33 0000001E ????                <2> eldhExtensionSize:	resw 1	; from eldhSignature, -> past eldhx fields in use
    34                              <2> 	endstruc
    35                              <2> 	endarea ELD_HEADER, 1
    36                              <2> 
    37                              <2> 	struc ELD_HEADERX
    38 00000000 <res 20h>           <2> eldhxHeader:		resb ELD_HEADER_size
    39 00000020 ????????            <2> eldhxDescriptionOffset:	resd 1	; zero if none, from eldhxHeader. <= 128 Bytes
    40 00000024 ????????            <2> eldhxHelpOffset:	resd 1	; zero if none, from eldhxHeader
    41 00000028 ????????            <2> eldhxLibTable:		resd 1	; zero if none, from eldhxHeader
    42 0000002C ????????            <2> eldhxDateTimeOffset:	resd 1	; zero if none, from eldhxHeader
    43                              <2> 	alignb 16
    44                              <2> 	endstruc
    45                              <2> 
    46                              <2> 	struc ELD_TRAILER_HEADER
    47 00000000 ????????????????    <2> eldthSignature:		resb 8	; "ELD1TAIL"
    48 00000008 ????????            <2> eldthHeaderOffset:	resd 1	; negative displacement from eldthSignature,
    49                              <2> 				;  add this dword to the seek offset
    50 0000000C ????                <2> eldthReserved:		resw 1	; reserved, must be initialised to zero
    51 0000000E ????                <2> eldthChecksum:		resw 1	; sum of all words in trailer header = 0
    52                              <2> 	endstruc
    53                              <2> 	endarea ELD_TRAILER_HEADER, 1
    54                              <2> 
    55                              <2> 	struc ELD_LIBTABLE
    56 00000000 ????                <2> eldltFormat:		resw 1
    57                              <2> 	; 0 = uncompressed
    58                              <2> 	; 2 = heatshrink compressed
    59                              <2> 	; 3 = lzexedat -4 compressed
    60                              <2> 	; 4 = lzexedat -4 -l compressed
    61 00000002 ????                <2> eldltAmount:		resw 1
    62 00000004 ????????            <2> eldltOffset:		resd 1	; from eldhxHeader
    63                              <2> eldltCompressedLength:		; (dword, only present if format 2, 3, or 4)
    64                              <2> 	endstruc
    65                              <2> 	endarea ELD_LIBTABLE, 1
    66                              <2> 
    67                              <2> 		; ELD instance header
    68                              <2> 	struc ELD_INSTANCE
    69 00000000 ????                <2> eldiStartCode:		resw 1	; -> this structure itself (para aligned)
    70 00000002 ????                <2> eldiEndCode:		resw 1	; -> behind memory used by instance (para aligned)
    71 00000004 ????                <2> eldiStartData:		resw 1	; -> data in data entry section (para aligned), or 0
    72 00000006 ????                <2> eldiEndData:		resw 1	; -> behind data (para aligned), or 0
    73 00000008 ????????????????    <2> eldiIdentifier:		resb 8	; blank-filled text
    74 00000010 ????                <2> eldiFlags:		resw 1	; flags
    75                              <2> eldiListing_size equ 14
    76 00000012 <res Eh>            <2> eldiListing:		resb eldiListing_size
    77                              <2> 				; ASCIZ listing file name
    78                              <2> 	endstruc
    79                              <2> 		; flags for eldiFlags:
    80                              <2> eldifResident:		equ 1
    81                              <2> 
    82                              <2> 		; ELD link info header
    83                              <2> 	struc ELD_LINKINFO
    84 00000000 ????                <2> eldlSignature:		resw 1	; 0E1D1h
    85 00000002 ????????            <2> eldlReserved:		resw 2
    86 00000006 ????                <2> eldlUseLinkHash:	resw 1
    87 00000008 ????                <2> eldlDataAmount:		resw 1
    88 0000000A ????                <2> eldlDataPrefixes:	resw 1
    89 0000000C ????                <2> eldlDataEntries:	resw 1
    90 0000000E ????                <2> eldlDataAddresses:	resw 1
    91 00000010 ????                <2> eldlCodeAmount:		resw 1
    92 00000012 ????                <2> eldlCodePrefixes:	resw 1
    93 00000014 ????                <2> eldlCodeEntries:	resw 1
    94 00000016 ????                <2> eldlCodeAddresses:	resw 1
    95                              <2> 	endstruc
    96                              <2> 
    97                              <2> 	numdef ELD_CODE_VSTART, 9001h
    98                              <2> 	numdef ELD_DATA_VSTART, 8000h
    99                              <2> 	numdef ELD_RELOC_VSTART, 8000h
   100                              <2> 
   101                              <2> 	numdef ELD_RECLAIM_HINT, 0
   102                              <2> 	strdef ELD_LISTING, ""
   103                              <2> 	numdef ELD_DATETIME, 0
   104                              <2> 
   105                              <2> %if _ELD_DATETIME
   106                              <2>  %define PUT_ELDHX_DATETIME_OFFSET at eldhxDateTimeOffset, dd DATAOFFSET + datetime - datastart
   107                              <2>  %macro PUT_ELD_DATETIME 0.nolist
   108                              <2> datetime:	asciz __UTC_DATE__,'T',__UTC_TIME__,'Z'
   109                              <2> 		asciz		; for future extension
   110                              <2>  %endmacro
   111                              <2> %else
   112                              <2>  %define PUT_ELDHX_DATETIME_OFFSET
   113                              <2>  %define PUT_ELD_DATETIME
   114                              <2> %endif
   115                              <2> 
   116                              <2> %endif
   716                              <1> 
   717                              <1> %include "install.mac"
     1                              <2> 
     2                              <2> %if 0
     3                              <2> 
     4                              <2> lDebug INSTALL command macros
     5                              <2> 
     6                              <2> Copyright (C) 2008-2023 E. C. Masloch
     7                              <2> 
     8                              <2> Usage of the works is permitted provided that this
     9                              <2> instrument is retained with the works, so that any entity
    10                              <2> that uses the works is notified of this instrument.
    11                              <2> 
    12                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    13                              <2> 
    14                              <2> %endif
    15                              <2> 
    16                              <2> 	struc INSTALLFLAG
    17 00000000 ????                <2> ifKeyword:	resw 1
    18 00000002 ????                <2> ifDescription:	resw 1
    19 00000004 ????                <2> ifOptions:	resw 1
    20 00000006 ????                <2> ifValue:	resw 1
    21 00000008 ????                <2> ifTrying:	resw 1
    22 0000000A ????                <2> ifReserved:	resw 1
    23                              <2> 	endstruc
    24                              <2> 
   718                              <1> 
   719                              <1> %if _SYMBOLIC
   720                              <1> 	defaulting 0			; disable defaulting
   721                              <1> %include "symbols.mac"
   722                              <1> [list -]
   723                              <1> 		; symbolic branch defines *without* defaulting!
   724                              <1> 	numdef ZZ_INSERT_TEMP, 1
   725                              <1> 	numdef XMS_SYMBOL_TABLE, 1
   726                              <1> 	numdef BUFFER_86MM_SLICE, 0
   727                              <1> 	numdef SECOND_SLICE, 0
   728                              <1> 
   729                              <1> 	defaulting 1			; re-enable defaulting
   730                              <1> 
   731                              <1> 		; symbolic branch defines
   732                              <1> 	numdef 86MM_SYMBOL_TABLE_MAX, 256, 256
   733                              <1> %endif
   734                              <1> 
   735                              <1> 	struc SEGADR
   736 00000000 ????????            <1> saOffset:	resd 1
   737 00000004 ????                <1> saSegSel:	resw 1
   738                              <1> %if _PM
   739 00000006 ????                <1> saSegment:	resw 1
   740 00000008 ????                <1> saSelector:	resw 1
   741                              <1> %endif
   742                              <1> 	endstruc
   743                              <1> 
   744                              <1> 	%macro segmentedaddress 0.nolist
   745                              <1> 	istruc SEGADR
   746                              <1> 	iend
   747                              <1> 	%endmacro
   748                              <1> 
   749                              <1> 	struc SEGOFS16ADR
   750 00000000 ????                <1> so16aOffset:	resw 1
   751 00000002 ????                <1> so16aSegSel:	resw 1
   752                              <1> %if _PM
   753 00000004 ????                <1> so16aSegment:	resw 1
   754 00000006 ????                <1> so16aSelector:	resw 1
   755                              <1> %endif
   756                              <1> 	endstruc
   757                              <1> 
   758                              <1> 	%macro segofs16address 0-1.nolist zero
   759                              <1> 	istruc SEGOFS16ADR
   760                              <1> %ifidni %1,zero
   761                              <1> %elifidni %1,minusone
   762                              <1> at so16aOffset,		dw -1
   763                              <1> at so16aSegSel,		dw -1
   764                              <1>  %if _PM
   765                              <1> at so16aSegment,	dw -1
   766                              <1> at so16aSelector,	dw -1
   767                              <1>  %endif
   768                              <1> %else
   769                              <1>  %error Unexpected initialiser keyword
   770                              <1> %endif
   771                              <1> 	iend
   772                              <1> 	%endmacro
   773                              <1> 
   774                              <1> 	struc SEGONLYADR
   775 00000000 ????                <1> soaSegSel:	resw 1
   776                              <1> %if _PM
   777 00000002 ????                <1> soaSegment:	resw 1
   778 00000004 ????                <1> soaSelector:	resw 1
   779                              <1> %endif
   780                              <1> 	endstruc
   781                              <1> 
   782                              <1> 	%macro segonlyaddress 0.nolist
   783                              <1> 	istruc SEGONLYADR
   784                              <1> 	iend
   785                              <1> 	%endmacro
   786                              <1> 
   787                              <1> 
   788                              <1> %if _LOADER
   789                              <1> 	struc MOVETABLEENTRY
   790                              <1> mteIdentifier:		resw 1
   791                              <1> mteArrayIndex:		resw 1
   792                              <1> mteStatusMessage:	resw 1
   793                              <1> mteFromArray:
   794                              <1> mteFromBottom:		resw 1
   795                              <1> mteFromTop:		resw 1
   796                              <1> mteFromHidden:		resw 1
   797                              <1> 	endstruc
   798                              <1> %endif
   799                              <1> 
   800                              <1> %if _BOOTLDR
   801                              <1>  %include "iniload.mac"
     1                              <2> %if 0
     2                              <2> 
     3                              <2> lDebug iniload/boot interfacing structs and macros
     4                              <2> 
     5                              <2> Copyright (C) 2008-2025 E. C. Masloch
     6                              <2> 
     7                              <2> Usage of the works is permitted provided that this
     8                              <2> instrument is retained with the works, so that any entity
     9                              <2> that uses the works is notified of this instrument.
    10                              <2> 
    11                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    12                              <2> 
    13                              <2> %endif
    14                              <2> 
    15                              <2> 
    16                              <2> 	struc BS
    17 00000000 ??????              <2> bsJump:	resb 3
    18 00000003 ????????????????    <2> bsOEM:	resb 8
    19                              <2> bsBPB:
    20                              <2> 	endstruc
    21                              <2> 
    22                              <2> 	struc EBPB		;        BPB sec
    23 00000000 ????                <2> bpbBytesPerSector:	resw 1	; offset 00h 0Bh
    24 00000002 ??                  <2> bpbSectorsPerCluster:	resb 1	; offset 02h 0Dh
    25 00000003 ????                <2> bpbReservedSectors:	resw 1	; offset 03h 0Eh
    26 00000005 ??                  <2> bpbNumFATs:		resb 1	; offset 05h 10h
    27 00000006 ????                <2> bpbNumRootDirEnts:	resw 1	; offset 06h 11h -- 0 for FAT32
    28 00000008 ????                <2> bpbTotalSectors:	resw 1	; offset 08h 13h
    29 0000000A ??                  <2> bpbMediaID:		resb 1	; offset 0Ah 15h
    30 0000000B ????                <2> bpbSectorsPerFAT:	resw 1	; offset 0Bh 16h -- 0 for FAT32
    31 0000000D ????                <2> bpbCHSSectors:		resw 1	; offset 0Dh 18h
    32 0000000F ????                <2> bpbCHSHeads:		resw 1	; offset 0Fh 1Ah
    33 00000011 ????????            <2> bpbHiddenSectors:	resd 1	; offset 11h 1Ch
    34 00000015 ????????            <2> bpbTotalSectorsLarge:	resd 1	; offset 15h 20h
    35                              <2> bpbNew:				; offset 19h 24h
    36                              <2> 
    37 00000019 ????????            <2> ebpbSectorsPerFATLarge:	resd 1	; offset 19h 24h
    38 0000001D ????                <2> ebpbFSFlags:		resw 1	; offset 1Dh 28h
    39 0000001F ????                <2> ebpbFSVersion:		resw 1	; offset 1Fh 2Ah
    40 00000021 ????????            <2> ebpbRootCluster:	resd 1	; offset 21h 2Ch
    41 00000025 ????                <2> ebpbFSINFOSector:	resw 1	; offset 25h 30h
    42 00000027 ????                <2> ebpbBackupSector:	resw 1	; offset 27h 32h
    43 00000029 <res Ch>            <2> ebpbReserved:		resb 12	; offset 29h 34h
    44                              <2> ebpbNew:			; offset 35h 40h
    45                              <2> 	endstruc
    46                              <2> 
    47                              <2> 	struc BPBN		; ofs B16 S16 B32 S32
    48 00000000 ??                  <2> bpbnBootUnit:		resb 1	; 00h 19h 24h 35h 40h
    49 00000001 ??                  <2> 			resb 1	; 01h 1Ah 25h 36h 41h
    50 00000002 ??                  <2> bpbnExtBPBSignature:	resb 1	; 02h 1Bh 26h 37h 42h -- 29h for valid BPBN
    51 00000003 ????????            <2> bpbnSerialNumber:	resd 1	; 03h 1Ch 27h 38h 43h
    52 00000007 <res Bh>            <2> bpbnVolumeLabel:	resb 11	; 07h 20h 2Bh 3Ch 47h
    53 00000012 ????????????????    <2> bpbnFilesystemID:	resb 8	; 12h 2Bh 36h 47h 52h
    54                              <2> 	endstruc		; 1Ah 33h 3Eh 4Fh 5Ah
    55                              <2> 
    56                              <2> 	struc DIRENTRY
    57 00000000 ????????????????    <2> deName:		resb 8
    58 00000008 ??????              <2> deExt:		resb 3
    59 0000000B ??                  <2> deAttrib:	resb 1
    60 0000000C ??                  <2> dePlusSize:	resb 1
    61 0000000D ??????????????      <2> 		resb 7
    62 00000014 ????                <2> deClusterHigh:	resw 1
    63 00000016 ????                <2> deTime:		resw 1
    64 00000018 ????                <2> deDate:		resw 1
    65 0000001A ????                <2> deClusterLow:	resw 1
    66 0000001C ????????            <2> deSize:		resd 1
    67                              <2> 	endstruc
    68                              <2> 
    69                              <2> ATTR_READONLY	equ 1
    70                              <2> ATTR_HIDDEN	equ 2
    71                              <2> ATTR_SYSTEM	equ 4
    72                              <2> ATTR_VOLLABEL	equ 8
    73                              <2> ATTR_DIRECTORY	equ 10h
    74                              <2> ATTR_ARCHIVE	equ 20h
    75                              <2> 
    76                              <2> lsvclSignature		equ "CL"
    77                              <2> lsvclBufferLength	equ 256
    78                              <2> 
    79                              <2> 	struc LOADSTACKVARS, -10h
    80 FFFFFFF0 ????????            <2> lsvFirstCluster:	resd 1
    81 FFFFFFF4 ????????            <2> lsvFATSector:		resd 1
    82 FFFFFFF8 ????                <2> lsvFATSeg:		resw 1
    83 FFFFFFFA ????                <2> lsvLoadSeg:		resw 1
    84 FFFFFFFC ????????            <2> lsvDataStart:		resd 1
    85                              <2> 	endstruc
    86                              <2> 
    87                              <2> 	struc LOADDATA, LOADSTACKVARS - 10h
    88 FFFFFFE0 ????                <2> ldMemoryTop:	resw 1
    89 FFFFFFE2 ????                <2> ldLoadTop:	resw 1
    90 FFFFFFE4 ????                <2> ldSectorSeg:	resw 1
    91 FFFFFFE6 ??                  <2> ldFATType:	resb 1
    92                              <2> ldFlags:
    93 FFFFFFE7 ??                  <2> ldHasLBA:	resb 1
    94 FFFFFFE8 ????                <2> ldClusterSize:	resw 1
    95 FFFFFFEA ????                <2> ldParaPerSector:resw 1
    96                              <2> ldDirCluster:			; dword
    97                              <2> ldLoadingSeg:		; word
    98                              <2> ldQueryPatchValue:	; word
    99                              <2> lsvCommandLine:		; word
   100                              <2> .start:		equ $ - lsvclBufferLength
   101 FFFFFFEC ????                <2> .signature:	resw 1
   102                              <2> ldLoadUntilSeg:		; word
   103                              <2> lsvExtra:		; word
   104 FFFFFFEE ??                  <2> .partition:	resb 1	; byte
   105 FFFFFFEF ??                  <2> .flags:		resb 1	; byte
   106                              <2> 	endstruc
   107                              <2> 
   108                              <2> ldhlfPreserveLoader	equ 4
   109                              <2> 
   110                              <2> lsvefNoDataStart	equ 1
   111                              <2> lsvefPartitionNumber	equ 2
   112                              <2> lsvefPreserveLoader	equ 4
   113                              <2> 
   114                              <2> %if lsvefPreserveLoader != ldhlfPreserveLoader
   115                              <2>  %error Unexpected flag values
   116                              <2> %endif
   117                              <2> 
   118                              <2> 	struc LOADCMDLINE, LOADDATA - lsvclBufferLength
   119                              <2> ldCommandLine:
   120 FFFFFEE0 <res 100h>          <2> .start:		resb lsvclBufferLength
   121                              <2> 	endstruc
   122                              <2> 
   123                              <2> ldfHasLBA:	equ 1
   124                              <2> ldfFATInvalid:	equ 2
   125                              <2> ldfFATBuffered:	equ 4
   126                              <2> ldfDataBuffered: equ 8
   127                              <2> 
   128                              <2> 	struc LOADDATA2, LOADDATA - 10h
   129 FFFFFFD0 ????????            <2> ldRootSector:		resd 1
   130 FFFFFFD4 ????                <2> ldEntriesPerSector:	resw 1
   131                              <2> ldDataSegment:		; word
   132 FFFFFFD6 ????                <2> ldLastAvailableSector:	resw 1
   133                              <2> ldDataSector:		; dword
   134 FFFFFFD8 ????                <2> ldParasLeft:		resw 1
   135 FFFFFFDA ????                <2> ldParasDone:		resw 1
   136                              <2> 	endstruc
   137                              <2> 
   138                              <2> 	struc LOADDATA3, LOADDATA2 - 10h
   139 FFFFFFC0 ????????            <2> ldMaxCluster:		resd 1
   140 FFFFFFC4 ????????            <2> ldFileSize:		resd 1
   141 FFFFFFC8 ????????            <2> ldCurrentCluster:	resd 1
   142 FFFFFFCC ????????            <2> ldCurrentSeek:		resd 1
   143                              <2> 	endstruc
   144                              <2> 
   145                              <2> 	struc LOADERIMAGEIDENT
   146 00000000 ????????            <2> liiSignature:		resb 4		; "NLDR"
   147 00000004 ????                <2> liiVersion:		resb 2		; "00"
   148 00000006 ????                <2> liiChecksum:		resw 1		; word sum of first 8 words = 0
   149 00000008 ????                <2> liiAmountParagraphs:	resw 1
   150 0000000A ????????????        <2> liiReserved:		resw 3
   151 00000010 ????                <2> liiEntryQuerySize:	resw 1		; 0 if not supported
   152                              <2> 		; INP:	cs => NLDR image ident
   153                              <2> 		;	ip = this word field content
   154                              <2> 		;	ax = 60h
   155                              <2> 		; OUT:	ax => behind memory requested (should be >= 60h)
   156                              <2> 		; CHG:	es, ds, di, si, bx, cx, dx
   157                              <2> 		; STT:	far called, UP, EI
   158 00000012 ????                <2> liiEntryRelocate:	resw 1		; 0 if not supported
   159                              <2> 		; INP:	cs => NLDR image ident
   160                              <2> 		;	ip = this word field content
   161                              <2> 		;	ax = 60h
   162                              <2> 		; OUT:	ax => relocated NLDR segment (usually 60h)
   163                              <2> 		; CHG:	es, ds, di, si, bx, cx, dx
   164                              <2> 		; STT:	far called, UP, EI
   165 00000014 ????                <2> liiEntryDebug:		resw 1		; 0 if not supported
   166                              <2> 		; INP:	es = ds = cs = ss => relocated NLDR
   167                              <2> 		;	ip = this word field content
   168                              <2> 		;	sp = next word field content
   169                              <2> 		; STT:	running as debuggee, UP, EI
   170 00000016 ????                <2> liiStackPointer:	resw 1
   171                              <2> 	endstruc
   172                              <2> 
   173                              <2> 	struc LBAPACKET
   174 00000000 ????                <2> lpSize:		resw 1
   175 00000002 ????                <2> lpCount:	resw 1
   176 00000004 ????????            <2> lpBuffer:	resd 1
   177 00000008 ????????????????    <2> lpSector:	resq 1
   178                              <2> 	endstruc
   179                              <2> 
   180                              <2> 	struc PARTINFO
   181 00000000 ??                  <2> piBoot:		resb 1
   182 00000001 ??????              <2> piStartCHS:	resb 3
   183 00000004 ??                  <2> piType:		resb 1
   184 00000005 ??????              <2> piEndCHS:	resb 3
   185 00000008 ????????            <2> piStart:	resd 1
   186 0000000C ????????            <2> piLength:	resd 1
   187                              <2> 	endstruc
   188                              <2> 
   189                              <2> ptEmpty:		equ 0
   190                              <2> ptFAT12:		equ 1
   191                              <2> ptFAT16_16BIT_CHS:	equ 4
   192                              <2> ptExtendedCHS:		equ 5
   193                              <2> ptFAT16_CHS:		equ 6
   194                              <2> ptFAT32_CHS:		equ 0Bh
   195                              <2> ptFAT32:		equ 0Ch
   196                              <2> ptFAT16:		equ 0Eh
   197                              <2> ptExtended:		equ 0Fh
   198                              <2> ptLinux:		equ 83h
   199                              <2> ptExtendedLinux:	equ 85h
   200                              <2> 
   201                              <2> 
   202                              <2> 		; Flags of load_unit_flags
   203                              <2> lufForceCHS:		equ 1
   204                              <2> lufForceLBA:		equ 2
   205                              <2> lufForceGeometry:	equ 4
   206                              <2> luf_mask_writable equ lufForceCHS | lufForceLBA | lufForceGeometry
   802                              <1> 
   803                              <1> LOAD_INPUT_FILE_SIZE equ fromparas(paras(-LOADDATA3 + bsBPB + ebpbNew + BPBN_size))
   804                              <1> 
   805                              <1> 	struc LOADSETTINGS
   806 00000000 ????                <1> lsKernelName:	resw 1	; -> kernel file default name
   807 00000002 ????                <1> lsAddName:	resw 1	; -> additional file default name, may be empty string
   808 00000004 ????                <1> lsMinPara:	resw 1	; how much to load at least, fail if file smaller
   809 00000006 ????                <1> lsMaxPara:	resw 1	; how much to load at most (will round up to sector size)
   810 00000008 ????                <1> lsOptions:	resw 1	; option flags
   811 0000000A ????                <1> lsSegment:	resw 1	; => where to load file
   812 0000000C ????????            <1> lsEntry:	resd 1	; relative segment for CS, value for IP
   813 00000010 ????????            <1> lsBPB:		resd 1	; segment for BPB (-1 auto-BPB), offset for BPB
   814 00000014 ????                <1> lsCheckOffset:	resw 1	; offset in file segment of word to check
   815 00000016 ????                <1> lsCheckValue:	resw 1	; value to check for word, 0 if unused
   816 00000018 ????????????????    <1> lsName:		resq 1	; ASCIZ load protocol name
   817                              <1> 	endstruc
   818                              <1> 
   819                              <1> 		numdef LUF_DEFAULT_DISKETTE, 0
   820                              <1> 		numdef LUF_DEFAULT_HARDDISK, 0
   821                              <1> %endif
   822                              <1> 
   823                              <1> 
   824                              <1> %include "mzheader.mac"
     1                              <2> 
     2                              <2> %if 0
     3                              <2> 
     4                              <2> lDebug MZ .EXE header macros
     5                              <2> 
     6                              <2> Copyright (C) 1995-2003 Paul Vojta
     7                              <2> Copyright (C) 2008-2023 E. C. Masloch
     8                              <2> 
     9                              <2> Usage of the works is permitted provided that this
    10                              <2> instrument is retained with the works, so that any entity
    11                              <2> that uses the works is notified of this instrument.
    12                              <2> 
    13                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    14                              <2> 
    15                              <2> %endif
    16                              <2> 
    17                              <2> 
    18                              <2> 	struc EXEHEADER
    19 00000000 ????                <2> exact_struc_at 00h, exeSignature:	resw 1
    20 00000002 ????                <2> exact_struc_at 02h, exeExtraBytes:	resw 1	; bytes in last page
    21 00000004 ????                <2> exact_struc_at 04h, exePages:		resw 1	; number of 512-byte pages. includes the header!
    22 00000006 ????                <2> exact_struc_at 06h, exeRelocItems:	resw 1	; number of relocation items
    23 00000008 ????                <2> exact_struc_at 08h, exeHeaderSize:	resw 1	; header size in 16-byte paragraphs
    24 0000000A ????                <2> exact_struc_at 0Ah, exeMinAlloc:	resw 1	; minimum (bss) allocation in paragraphs
    25 0000000C ????                <2> exact_struc_at 0Ch, exeMaxAlloc:	resw 1	; maximum (bss) allocation in paragraphs
    26 0000000E ????                <2> exact_struc_at 0Eh, exeInitSS:		resw 1	; init ss (is relocated)
    27 00000010 ????                <2> exact_struc_at 10h, exeInitSP:		resw 1	; init sp
    28 00000012 ????                <2> exact_struc_at 12h, exeChecksum:	resw 1
    29                              <2> exact_struc_at 14h, exeInitCSIP:
    30 00000014 ????                <2> exact_struc_at 14h, exeInitIP:		resw 1	; init ip
    31 00000016 ????                <2> exact_struc_at 16h, exeInitCS:		resw 1	; init cs (is relocated)
    32 00000018 ????                <2> exact_struc_at 18h, exeRelocTable:	resw 1	; byte offset of relocation table
    33                              <2> 		; Each relocation item is a word offset and a word segment.
    34                              <2> 		;  The segment of the item itself is relocated as well.
    35 0000001A ????                <2> exact_struc_at 1Ah, exeOverlayNum:	resw 1
    36                              <2> exact_struc_at 1Ch
    37                              <2> 	endstruc
   825                              <1> 
   826                              <1> 
   827                              <1> 	struc INPUTFILEHANDLE
   828 00000000 ????                <1> ifhHandle:	resw 1
   829 00000002 ????                <1> ifhFlags:	resw 1
   830 00000004 ????????            <1> ifhParentSeek:	resd 1
   831                              <1> 	endstruc
   832                              <1> 
   833                              <1> ifhfIsDup:		equ  100h	; before closing, seek it back
   834                              <1> 	; same value as LBA flag for boot load input files
   835                              <1> ifhfTestReserved1:	equ 1000h
   836                              <1> ifhfTestReserved2:	equ 2000h
   837                              <1> ifhfQuietInput:		equ 4000h	; do not display prompt and input
   838                              <1> ifhfQuietOutput:	equ 8000h	; do not display normal output
   839                              <1> 	; these four are valid for both input file handles and
   840                              <1> 	;  boot load input files.
   841                              <1> 
   842                              <1> 
   843                              <1> 	struc AREASTRUC
   844 00000000 <res 18h>           <1> areastrucEntry:		resb 24
   845 00000018 ????????            <1> areastrucNext:		resd 1
   846 0000001C ????????            <1> areastrucPrev:		resd 1
   847 00000020 ????                <1> areastrucSubAmount:	resw 1
   848 00000022 ????                <1> areastrucSubOffset:	resw 1
   849 00000024 ????                <1> areastrucFunAmount:	resw 1
   850 00000026 ????                <1> areastrucFunOffset:	resw 1
   851                              <1> 	endstruc
   852                              <1> 
   853                              <1> 	struc AREASTRUCSUB
   854 00000000 ????????            <1> areastrucsubLinear:	resd 1
   855 00000004 ????????            <1> areastrucsubLinearEnd:	resd 1
   856 00000008 ????                <1> areastrucsubListOffset:	resw 1
   857 0000000A ????                <1> areastrucsubListAmount:	resw 1
   858                              <1> 	endstruc
   859                              <1> 
   860                              <1> 	struc AREASTRUCFUN
   861 00000000 ????????            <1> areastrucfunLinear:	resd 1
   862 00000004 ????????            <1> areastrucfunLinearEnd:	resd 1
   863 00000008 ????                <1> areastrucfunListOffset:	resw 1
   864 0000000A ????                <1> areastrucfunListAmount:	resw 1
   865                              <1> 	endstruc
   866                              <1> 
   867                              <1> 	struc AREA
   868 00000000 ????                <1> areastart:		resw 1
   869 00000002 ????                <1> areaend:		resw 1
   870 00000004 ????                <1> areamessage:		resw 1
   871 00000006 ????                <1> 			resw 1
   872                              <1> 	endstruc
   873                              <1> 
   874                              <1> 
   875                              <1> %include "isvariab.mac"
     1                              <2> 
     2                              <2> %if 0
     3                              <2> 
     4                              <2> lDebug isvariable? function strutures and macros
     5                              <2> 
     6                              <2> Copyright (C) 2008-2025 E. C. Masloch
     7                              <2> 
     8                              <2> Usage of the works is permitted provided that this
     9                              <2> instrument is retained with the works, so that any entity
    10                              <2> that uses the works is notified of this instrument.
    11                              <2> 
    12                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    13                              <2> 
    14                              <2> %endif
    15                              <2> 
    16                              <2> 
    17                              <2> 	struc ISVARIABLESTRUC
    18 00000000 ????                <2> ivName:		resw 1		; -> name (up to 13 bytes, but actually only 11)
    19                              <2> 				;  (search for ivfNameLengthLimit for limit)
    20                              <2> 				;  (length given by ivFlags & ivfNameLengthMask)
    21                              <2> 	; The ivName pointer is only used for more-byte names. It actually
    22                              <2> 	;  contains the trailer of the name, excluding the prefix formed by
    23                              <2> 	;  the first two bytes. This suffix can be the empty string if the
    24                              <2> 	;  variable in question has a two-byte name.
    25                              <2> 	; (For one-byte names this field is unused and contains zero.)
    26 00000002 ????                <2> ivFlags:	resw 1
    27 00000004 ????                <2> ivAddress:	resw 1		; default -> variable
    28                              <2> 	; The ivAddress field is used by default_variable_setup as the base
    29                              <2> 	;  address for the variable(s). It is also used by var_ext_setup as
    30                              <2> 	;  the ELD code section offset to transfer control to. Otherwise, it
    31                              <2> 	;  is usually set to zero and unused.
    32 00000006 ????                <2> ivSetup:	resw 1		; -> set up code (in expr code section)
    33                              <2> 	; INP:	ax = array index (0-based)
    34                              <2> 	;	di = 0
    35                              <2> 	;	cl = default size of variable (1..4)
    36                              <2> 	;	ch = length of variable name
    37                              <2> 	;	bx -> ISVARIABLESTRUC structure
    38                              <2> 	; CHG:	ax, bx, cx, dx, si, di
    39                              <2> 	; OUT:	NC if valid,
    40                              <2> 	;	 bx -> var, di = 0 or di -> mask
    41                              <2> 	;	 cl = size of variable (1..4)
    42                              <2> 	;	 ch = length of variable name
    43 00000008 ??                  <2> ivArrayLast:	resb 1		; 0 if no array, FFh = 256 entries
    44                              <2> 	; The ivArrayLast field is used by the dispatcher to determine
    45                              <2> 	;  whether to support array index expressions. It is checked
    46                              <2> 	;  before decrementing the index if ivfArrayOneBased is set.
    47 00000009 ??                  <2> ivArrayBetween: resb 1		; how many bytes to skip for each index
    48                              <2> 	; The ivArrayBetween field is only used by default_variable_setup.
    49                              <2> 	endstruc
    50                              <2> 
    51                              <2> ivfNameLengthMask:	equ 15	; gives name trailer length, 0 to 11
    52                              <2> ivfNameLengthLimit:	equ 13
    53                              <2> ivfVarLengthShift:	equ 4
    54                              <2> ivfVarLengthMask:	equ 3 << ivfVarLengthShift
    55                              <2> 				; gives default variable size minus 1
    56                              <2> ivfReadOnly:		equ 80h	; variable cannot be written at all
    57                              <2> ivfArrayOneBased:	equ 100h; first array entry is 1 not 0 (ivArrayLast > 0)
    58                              <2> ivfArrayOptional:	equ 200h; array index expression is optional
    59                              <2> ivfSeparatorSpecial:	equ 400h; used for RIxxP/L/S/O
    60                              <2> 
    61                              <2> %define ISVARIABLESTRINGS db "",db ""
    62                              <2> %define IVS_ONEBYTE_NAMES ""
    63                              <2> %define IVS_MOREBYTE_NAMEHEADERS ""
    64                              <2> %assign IVS_HAVE_ONEBYTE 0
    65                              <2> %assign IVS_SINGLE_ONEBYTE 1
    66                              <2> 
    67                              <2> 		; %1 = name string
    68                              <2> 		; %2 = default variable length, 1 to 4
    69                              <2> 		; %3 = flags to set (except name length and var length)
    70                              <2> 		; %4 = ivAddress value
    71                              <2> 		; %5 = ivArrayLast, defaults to 0 (no array)
    72                              <2> 		; %6 = ivArrayBetween, defaults to 0 (immediately consecutive)
    73                              <2> 		; %7 = ivSetup, defaults to default_variable_setup
    74                              <2> 	%macro isvariablestruc 4-7.nolist 0, 0, default_variable_setup
    75                              <2> %push
    76                              <2> %strlen %$namelength %1
    77                              <2> %if %$namelength > ivfNameLengthLimit
    78                              <2>  %error Expected at most 13-byte name (or adjust isvariable? code)
    79                              <2> %endif
    80                              <2> %if IVS_ONEBYTE && %$namelength != 1
    81                              <2>  %error Expected a one-byte name
    82                              <2> %elif ! IVS_ONEBYTE && %$namelength < 2
    83                              <2>  %error Expected at least a two-byte name
    84                              <2> %endif
    85                              <2> %if IVS_ONEBYTE
    86                              <2>  %define IVS_SINGLE_ONEBYTE_NAME %1
    87                              <2>  %if IVS_HAVE_ONEBYTE
    88                              <2>   %assign IVS_SINGLE_ONEBYTE 0
    89                              <2>  %endif
    90                              <2>  %assign IVS_HAVE_ONEBYTE 1
    91                              <2>  %assign %$namelength 0
    92                              <2>  %xdefine IVS_ONEBYTE_NAMES IVS_ONEBYTE_NAMES, %1
    93                              <2>  %%name equ 0
    94                              <2> %else
    95                              <2>  %assign %$namelength %$namelength - 2
    96                              <2>  %substr %$nametrailer %1 3,-1
    97                              <2>  %substr %$nameheader %1 1,2
    98                              <2>  %xdefine IVS_MOREBYTE_NAMEHEADERS IVS_MOREBYTE_NAMEHEADERS, %$nameheader
    99                              <2>  %xdefine ISVARIABLESTRINGS ISVARIABLESTRINGS, %%name:, {db %$nametrailer}
   100                              <2> %endif
   101                              <2> 
   102                              <2> %assign %$varlength %2 - 1	; 0 means one byte, 1 means two bytes,
   103                              <2> 				;  2 means three bytes, 3 means four bytes
   104                              <2> 	istruc ISVARIABLESTRUC
   105                              <2> at ivName,		dw %%name
   106                              <2>  IV_NAME_RELOCATION
   107                              <2> at ivFlags,		dw %$$namelength | (%$$varlength << ivfVarLengthShift) | %3
   108                              <2> at ivAddress,		dw %4
   109                              <2>  IV_ADDRESS_RELOCATION
   110                              <2> at ivSetup,		dw %7
   111                              <2>  IV_SETUP_RELOCATION
   112                              <2> at ivArrayLast,		db %5
   113                              <2> at ivArrayBetween,	db %6
   114                              <2> 	iend
   115                              <2> %pop
   116                              <2> %ifndef SECTION_OF_%7
   117                              <2>  %error Unknown target section for symbol %7
   118                              <2> %elifnidni %[SECTION_OF_%7], _EXPR_SECTION
   119                              <2>  %error Wrong section for symbol %7: section_of=SECTION_OF_%7, expr=_EXPR_SECTION
   120                              <2> %endif
   121                              <2> 	%endmacro
   122                              <2> 
   123                              <2> %define IV_NAME_RELOCATION
   124                              <2> %define IV_ADDRESS_RELOCATION
   125                              <2> %define IV_SETUP_RELOCATION
   126                              <2> 
   127                              <2> 	%macro isvariablestrings 2-*.nolist
   128                              <2> %rep %0
   129                              <2>  %1
   130                              <2>  %rotate 1
   131                              <2> %endrep
   132                              <2> 	%endmacro
   876                              <1> 
   877                              <1> 
   878                              <1> %include "386.mac"
     1                              <2> 
     2                              <2> %if 0
     3                              <2> 
     4                              <2> lDebug 386 patch macros
     5                              <2> 
     6                              <2> Copyright (C) 2008-2026 E. C. Masloch
     7                              <2> 
     8                              <2> Usage of the works is permitted provided that this
     9                              <2> instrument is retained with the works, so that any entity
    10                              <2> that uses the works is notified of this instrument.
    11                              <2> 
    12                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    13                              <2> 
    14                              <2> %endif
    15                              <2> 
    16                              <2> 	numdef LINK, 0
    17                              <2> 
    18                              <2> 	numdef WPT_LABELS, 0
    19                              <2> 		; This used to be required, because CODESECTIONFIXUP used
    20                              <2> 		;  ldebug_data_entry_size, which is not yet defined during
    21                              <2> 		;  assembling of (most) lDEBUG_CODE fragments.
    22                              <2> 		; However, assembling DebugX with this option selected
    23                              <2> 		;  took more than 2 minutes, so the non-label variant
    24                              <2> 		;  is clearly to be preferred when available.
    25                              <2> 		; Now that lDEBUG_CODE has vstart=0 we can use the
    26                              <2> 		;  CODESECTIONFIXUP again and thus disable this option.
    27                              <2> 
    28                              <2> %ifn _LINK
    29                              <2> %define PATCH_NO386_TABLE ""
    30                              <2> %define PATCH_386_TABLE ""
    31                              <2> %define PATCH_NO386_TABLE2 ""
    32                              <2> %define PATCH_386_TABLE2 ""
    33                              <2> %define PATCH_NO386_TABLEENTRY ""
    34                              <2> %define PATCH_386_TABLEENTRY ""
    35                              <2> %endif
    36                              <2> 
    37                              <2> %if _ONLY386
    38                              <2> 		; Default patch macros if only running on 386+.
    39                              <2> %define _386_o32 o32
    40                              <2> %define _386_a32 a32
    41                              <2> %define _386_jmps jmp short
    42                              <2> %define _386_jmpn jmp near
    43                              <2> %define _no386_jmps comment
    44                              <2> %define _no386_jmpn comment
    45                              <2> 	%macro _386 0-1+.nolist
    46                              <2> [cpu 386]			; change CPU type
    47                              <2> 		%1		; write instruction
    48                              <2> __CPU__				; reset CPU type
    49                              <2> 	%endmacro
    50                              <2> %define _no386 comment
    51                              <2> %elif _ONLYNON386
    52                              <2> 		; Default patch macros if only running on non-386.
    53                              <2> %define _386_o32
    54                              <2> %define _386_a32
    55                              <2> %define _386_jmps comment
    56                              <2> %define _386_jmpn comment
    57                              <2> %define _no386_jmps jmp short
    58                              <2> %define _no386_jmpn jmp near
    59                              <2> %define _386 comment
    60                              <2> %define _no386
    61                              <2> %else
    62                              <2> 
    63                              <2> ; These macros are to make DEBUG's 386 support as small as
    64                              <2> ; possible. To achieve this, two patch tables are created
    65                              <2> ; in the initialisation code. One of the tables is used if
    66                              <2> ; the CPU is a 386+, the other one if it isn't. The bytes
    67                              <2> ; pointed to in the used table are over-written with NOP
    68                              <2> ; instructions. (The patched bytes are usually address or
    69                              <2> ; operand size prefixes or jumps that branch to 386/non-386
    70                              <2> ; code.)
    71                              <2> 
    72                              <2> ; There are a few special patches that require the
    73                              <2> ; initialisation code to write specific bytes other than
    74                              <2> ; NOP instructions for lower resident memory usage.
    75                              <2> ; Two are in the run: code, three in pmentry.asm.
    76                              <2> 
    77                              <2> %if _LINK
    78                              <2> 
    79                              <2> %imacro wllist 1-3.nolist
    80                              <2> %ifnempty %3
    81                              <2>  %deftok %%filenametoken %3
    82                              <2> %else
    83                              <2>  %deftok %%filenametoken __FILE__
    84                              <2> %endif
    85                              <2>  global ..@wllist_%1?%[%%l]%[%%filenametoken]
    86                              <2> ..@wllist_%1?%[%%l]%[%%filenametoken]: %2
    87                              <2> %endmacro
    88                              <2> 
    89                              <2> 	%macro patch386 2-3.nolist 1
    90                              <2> %define %%repeat
    91                              <2> %if %3 != 1
    92                              <2>  %define %%repeat r%3_
    93                              <2> %endif
    94                              <2> %ifidn _CURRENT_SECTION, lDEBUG_CODE
    95                              <2>  wllist %[%%repeat]Lpatch_%{1}386_table, %2
    96                              <2> %elifidn _CURRENT_SECTION, lDEBUG_CODE2
    97                              <2>  wllist %[%%repeat]Lpatch_%{1}386_table2, %2
    98                              <2> %elifidn _CURRENT_SECTION, lDEBUG_DATA_ENTRY
    99                              <2>  wllist %[%%repeat]Lpatch_%{1}386_tableentry, %2
   100                              <2> %else
   101                              <2>  %error Wrong section
   102                              <2> %endif
   103                              <2> 	%endmacro
   104                              <2> 
   105                              <2> 		; Operand size 32-bit prefix if 386+ CPU
   106                              <2> 	%macro _386_o32 0-1+.nolist
   107                              <2> _386		o32
   108                              <2> 		%1
   109                              <2> 	%endmacro
   110                              <2> 
   111                              <2> 		; Address size 32-bit prefix if 386+ CPU
   112                              <2> 	%macro _386_a32 0-1+.nolist
   113                              <2> _386		a32
   114                              <2> 		%1
   115                              <2> 	%endmacro
   116                              <2> 
   117                              <2> 		; Short jump if 386+ CPU
   118                              <2> 	%macro _386_jmps 1.nolist
   119                              <2> _386		jmp short %1
   120                              <2> 	%endmacro
   121                              <2> 
   122                              <2> 		; Near jump if 386+ CPU
   123                              <2> 	%macro _386_jmpn 1.nolist
   124                              <2> _386		jmp near %1
   125                              <2> 	%endmacro
   126                              <2> 
   127                              <2> 		; Short jump if no 386+ CPU
   128                              <2> 	%macro _no386_jmps 1.nolist
   129                              <2> _no386		jmp short %1
   130                              <2> 	%endmacro
   131                              <2> 
   132                              <2> 		; Near jump if no 386+ CPU
   133                              <2> 	%macro _no386_jmpn 1.nolist
   134                              <2> _no386		jmp near %1
   135                              <2> 	%endmacro
   136                              <2> 
   137                              <2> 		; Instruction if 386+ CPU
   138                              <2> 	%macro _386 0-1+.nolist
   139                              <2> [cpu 386]			; change CPU type
   140                              <2> %%entry:
   141                              <2> 		%1		; write instruction
   142                              <2> __CPU__				; reset CPU type
   143                              <2> %assign %%length ($ - %%entry)
   144                              <2>  patch386 no, equ %%entry, %%length
   145                              <2> 	%endmacro
   146                              <2> 
   147                              <2> 		; Instruction if no 386+ CPU
   148                              <2> 	%macro _no386 0-1+.nolist
   149                              <2> %%entry:
   150                              <2> 		%1		; write instruction
   151                              <2> %assign %%length ($ - %%entry)
   152                              <2>  patch386 , equ %%entry, %%length
   153                              <2> 	%endmacro
   154                              <2> 
   155                              <2> %else
   156                              <2> 	%macro patch386 2+.nolist
   157                              <2> %ifidn _CURRENT_SECTION, lDEBUG_CODE
   158                              <2>  %define PATCH_%{1}386_TABLE %[PATCH_%{1}386_TABLE], %2
   159                              <2> %elifidn _CURRENT_SECTION, lDEBUG_CODE2
   160                              <2>  %define PATCH_%{1}386_TABLE2 %[PATCH_%{1}386_TABLE2], %2
   161                              <2> %elifidn _CURRENT_SECTION, lDEBUG_DATA_ENTRY
   162                              <2>  %define PATCH_%{1}386_TABLEENTRY %[PATCH_%{1}386_TABLEENTRY], %2
   163                              <2> %else
   164                              <2>  %error Wrong section
   165                              <2> %endif
   166                              <2> 	%endmacro
   167                              <2> 
   168                              <2> %if _WPT_LABELS
   169                              <2> 	; These forms provide verbose info by defining a
   170                              <2> 	; meaningful label for each patch. That fills up
   171                              <2> 	; the map file and might take longer though.
   172                              <2> 		; Operand size 32-bit prefix if 386+ CPU
   173                              <2> 	%macro _386_o32 0-1+.nolist
   174                              <2> %%386_o32:	o32
   175                              <2> patch386 NO, %%386_o32
   176                              <2> 		%1
   177                              <2> 	%endmacro
   178                              <2> 
   179                              <2> 		; Address size 32-bit prefix if 386+ CPU
   180                              <2> 	%macro _386_a32 0-1+.nolist
   181                              <2> %%386_a32:	a32
   182                              <2> patch386 NO, %%386_a32
   183                              <2> 		%1
   184                              <2> 	%endmacro
   185                              <2> 
   186                              <2> 		; Short jump if 386+ CPU
   187                              <2> 	%macro _386_jmps 1.nolist
   188                              <2> %%386_jmps:	jmp short %1
   189                              <2> patch386 NO, %%386_jmps,%%386_jmps+1
   190                              <2> 	%endmacro
   191                              <2> 
   192                              <2> 		; Near jump if 386+ CPU
   193                              <2> 	%macro _386_jmpn 1.nolist
   194                              <2> %%386_jmpn:	jmp near %1
   195                              <2> patch386 NO, %%386_jmpn,%%386_jmpn+1,%%386_jmpn+2
   196                              <2> 	%endmacro
   197                              <2> 
   198                              <2> 		; Short jump if no 386+ CPU
   199                              <2> 	%macro _no386_jmps 1.nolist
   200                              <2> %%no386_jmps:	jmp short %1
   201                              <2> patch386 , %%no386_jmps,%%no386_jmps+1
   202                              <2> 	%endmacro
   203                              <2> 
   204                              <2> 		; Near jump if no 386+ CPU
   205                              <2> 	%macro _no386_jmpn 1.nolist
   206                              <2> %%no386_jmpn:	jmp near %1
   207                              <2> patch386 , %%no386_jmpn,%%no386_jmpn+1,%%no386_jmpn+2
   208                              <2> 	%endmacro
   209                              <2> 
   210                              <2> 		; Instruction if 386+ CPU
   211                              <2> 	%macro _386 0-1+.nolist
   212                              <2> [cpu 386]			; change CPU type
   213                              <2> %%386_instr:	%1		; write instruction
   214                              <2> __CPU__				; reset CPU type
   215                              <2> 
   216                              <2> %assign %%INSTRCOUNT 0
   217                              <2> %rep $-%%386_instr		; count size of instruction
   218                              <2>  patch386 NO, %%386_instr+%[%%INSTRCOUNT]
   219                              <2> 				; write a patch for each byte
   220                              <2>  %assign %%INSTRCOUNT %%INSTRCOUNT+1
   221                              <2> %endrep
   222                              <2> %undef %%INSTRCOUNT
   223                              <2> 	%endmacro
   224                              <2> 
   225                              <2> 		; Instruction if no 386+ CPU
   226                              <2> 	%macro _no386 0-1+.nolist
   227                              <2> %%no386_instr:	%1		; write instruction
   228                              <2> 
   229                              <2> %assign %%INSTRCOUNT 0
   230                              <2> %rep $-%%no386_instr		; count size of instruction
   231                              <2>  patch386 , %%no386_instr+%[%%INSTRCOUNT]
   232                              <2> 				; write a patch for each byte
   233                              <2>  %assign %%INSTRCOUNT %%INSTRCOUNT+1
   234                              <2> %endrep
   235                              <2> %undef %%INSTRCOUNT
   236                              <2> 	%endmacro
   237                              <2> %else	; _WPT_LABELS
   238                              <2> 		; Operand size 32-bit prefix if 386+ CPU
   239                              <2> 	%macro _386_o32 0-1+.nolist
   240                              <2> _386		o32
   241                              <2> 		%1
   242                              <2> 	%endmacro
   243                              <2> 
   244                              <2> 		; Address size 32-bit prefix if 386+ CPU
   245                              <2> 	%macro _386_a32 0-1+.nolist
   246                              <2> _386		a32
   247                              <2> 		%1
   248                              <2> 	%endmacro
   249                              <2> 
   250                              <2> 		; Short jump if 386+ CPU
   251                              <2> 	%macro _386_jmps 1.nolist
   252                              <2> _386		jmp short %1
   253                              <2> 	%endmacro
   254                              <2> 
   255                              <2> 		; Near jump if 386+ CPU
   256                              <2> 	%macro _386_jmpn 1.nolist
   257                              <2> _386		jmp near %1
   258                              <2> 	%endmacro
   259                              <2> 
   260                              <2> 		; Short jump if no 386+ CPU
   261                              <2> 	%macro _no386_jmps 1.nolist
   262                              <2> _no386		jmp short %1
   263                              <2> 	%endmacro
   264                              <2> 
   265                              <2> 		; Near jump if no 386+ CPU
   266                              <2> 	%macro _no386_jmpn 1.nolist
   267                              <2> _no386		jmp near %1
   268                              <2> 	%endmacro
   269                              <2> 
   270                              <2> 		; Instruction if 386+ CPU
   271                              <2> 	%macro _386 0-1+.nolist
   272                              <2> %push
   273                              <2> [cpu 386]			; change CPU type
   274                              <2> %assign %$entry $ + _CURRENT_SECTION %+ FIXUP
   275                              <2> 		%1		; write instruction
   276                              <2> __CPU__				; reset CPU type
   277                              <2> 
   278                              <2> %rep ($ + _CURRENT_SECTION %+ FIXUP) - %$entry
   279                              <2> 				; count size of instruction
   280                              <2>  patch386 NO, %[%$entry]	; write a patch for each byte
   281                              <2>  %assign %$entry %$entry+1
   282                              <2> %endrep
   283                              <2> %pop
   284                              <2> 	%endmacro
   285                              <2> 
   286                              <2> 		; Instruction if no 386+ CPU
   287                              <2> 	%macro _no386 0-1+.nolist
   288                              <2> %push
   289                              <2> %assign %$entry $ + _CURRENT_SECTION %+ FIXUP
   290                              <2> 		%1		; write instruction
   291                              <2> 
   292                              <2> %rep ($ + _CURRENT_SECTION %+ FIXUP) - %$entry
   293                              <2> 				; count size of instruction
   294                              <2>  patch386 , %[%$entry]		; write a patch for each byte
   295                              <2>  %assign %$entry %$entry+1
   296                              <2> %endrep
   297                              <2> %pop
   298                              <2> 	%endmacro
   299                              <2> %endif	; _WPT_LABELS
   300                              <2> %endif	; _LINK
   301                              <2> 
   302                              <2> %endif
   303                              <2> 
   304                              <2> 		; Patch macros but for cases where the 386+
   305                              <2> 		; instructions should only be generated for
   306                              <2> 		; DEBUGX (i.e. for 32-bit DPMI addressing code).
   307                              <2> %if _PM
   308                              <2> %define _386_PM_o32	_386_o32
   309                              <2> %define _386_PM_a32	_386_a32
   310                              <2> %define _386_PM_jmps	_386_jmps
   311                              <2> %define _386_PM_jmpn	_386_jmpn
   312                              <2> %define _386_PM		_386
   313                              <2> %else
   314                              <2> %define _386_PM_o32
   315                              <2> %define _386_PM_a32
   316                              <2> %define _386_PM_jmps	comment
   317                              <2> %define _386_PM_jmpn	comment
   318                              <2> %define _386_PM		comment
   319                              <2> %endif
   320                              <2> 
   321                              <2> 
   322                              <2> %ifn _LINK
   323                              <2> %macro __writepatchtable2 0-*.nolist
   324                              <2> %if %0 & 1
   325                              <2>  %fatal Expected even number of arguments
   326                              <2> %endif
   327                              <2> %rep %0 >> 1
   328                              <2> 	%1 %2
   329                              <2> %rotate 2
   330                              <2> %endrep
   331                              <2> %endmacro
   332                              <2> 
   333                              <2> %macro __patchtable2_entry 0.nolist
   334                              <2>   ; only if this isn't the first (pseudo-)entry
   335                              <2>   %if %$lastcount != 0
   336                              <2>     %assign %$runscount %[%$runscount]+1
   337                              <2>    ; if the offset from %$previous is less than 255
   338                              <2>    %if (%$last-%$previous) < 255
   339                              <2>     %assign %$$method2tablesize %$$method2tablesize+1
   340                              <2>     ; then write a single byte (number of bytes not to patch between)
   341                              <2>     %xdefine %$$method2list %$$method2list,db,%$last-%$previous
   342                              <2>    %else
   343                              <2>     ; otherwise write a 255 ("reposition") and write the 16-bit address afterwards
   344                              <2>     %assign %$$method2tablesize %$$method2tablesize+3
   345                              <2>     %xdefine %$$method2list %$$method2list,db,255,dw,%$last
   346                              <2>     %assign %$reposcount %[%$reposcount]+1
   347                              <2>    %endif
   348                              <2>    %if %$lastcount == 1
   349                              <2>     %assign %$onecount %[%$onecount]+1
   350                              <2>    %endif
   351                              <2>    %assign %$$method2tablesize %$$method2tablesize+1
   352                              <2>    ; and write the number of bytes to be patched
   353                              <2>    %xdefine %$$method2list %$$method2list,db,%$lastcount
   354                              <2>    ; define %$previous for the next entry: it points to the next non-patched byte
   355                              <2>    %define %$previous (%[%$last]+%[%$lastcount])
   356                              <2>   %endif
   357                              <2> %endmacro
   358                              <2> 
   359                              <2> %macro writepatchtable 2-*.nolist
   360                              <2> 
   361                              <2> 	numdef %{1}_FORCE_METHOD, 0
   362                              <2> %push
   363                              <2> 		; Determine length of simple table:
   364                              <2> %assign %$method1tablesize (%0 - 2)*2
   365                              <2> 
   366                              <2> %if !_%{1}_FORCE_METHOD || _%{1}_FORCE_METHOD == 2
   367                              <2> 		; Determine length of complicated table:
   368                              <2> %assign %$method2tablesize 0
   369                              <2> %define %$method2list db,""
   370                              <2> %push
   371                              <2> %if _WPT_LABELS
   372                              <2>  %define %$previous code_start	; if list contains labels
   373                              <2> %else
   374                              <2>  %define %$previous 0
   375                              <2> %endif
   376                              <2> %define %$last %[%$previous]
   377                              <2> %assign %$lastcount 0
   378                              <2> %assign %$onecount 0
   379                              <2> %assign %$reposcount 0
   380                              <2> %assign %$bytescount %0 - 2
   381                              <2> %assign %$runscount 0
   382                              <2> %rotate 1
   383                              <2> %rep %0 - 2
   384                              <2>  %rotate 1
   385                              <2>  ;if  it continues the previous patch   and not too long   and this isn't the first
   386                              <2>  %if ((%$last+%$lastcount) == %1) && (%$lastcount < 255) && (%$lastcount != 0)
   387                              <2>   ; then do not write an entry, just increase the patch's size
   388                              <2>   %assign %$lastcount %[%$lastcount]+1
   389                              <2>  %else
   390                              <2>   ; otherwise write the last entry
   391                              <2>   __patchtable2_entry
   392                              <2>   ; define new %$last to this parameter, %$lastcount to one
   393                              <2>   %define %$last %1
   394                              <2>   %assign %$lastcount 1
   395                              <2>  %endif
   396                              <2> %endrep
   397                              <2> __patchtable2_entry
   398                              <2> 
   399                              <2> ; at the end, there's a patch with offset 0, size 0
   400                              <2> %assign %$$method2tablesize %$$method2tablesize+2
   401                              <2> %xdefine %$$method2list %$$method2list,db,0,db,0
   402                              <2> 
   403                              <2> %assign %$$onecount %$onecount
   404                              <2> %assign %$$reposcount %$reposcount
   405                              <2> %assign %$$bytescount %$bytescount
   406                              <2> %assign %$$runscount %$runscount
   407                              <2> %pop
   408                              <2> %rotate 1
   409                              <2> %endif
   410                              <2> 
   411                              <2> %if _%{1}_FORCE_METHOD == 2
   412                              <2>  %define __%{1}_method 2
   413                              <2> %elif _%{1}_FORCE_METHOD == 1
   414                              <2>  %define __%{1}_method 1
   415                              <2> %else
   416                              <2>  %if _%{1}_FORCE_METHOD
   417                              <2>   %fatal Invalid forced method selected: _%{1}_FORCE_METHOD
   418                              <2>  %endif
   419                              <2>  %if %$method1tablesize > (%$method2tablesize+20)
   420                              <2>   %define __%{1}_method 2
   421                              <2>  %else
   422                              <2>   %define __%{1}_method 1
   423                              <2>  %endif
   424                              <2> %endif
   425                              <2> 
   426                              <2> 
   427                              <2> %1:
   428                              <2> %if __%{1}_method == 2
   429                              <2> 	__writepatchtable2 %$method2list
   430                              <2> 	endarea %1
   431                              <2> %assign %$size %1_size
   432                              <2> %warning %1: %$size bytes (Method 2)
   433                              <2> %warning 1B=%$onecount repo=%$reposcount run=%$runscount byte=%$bytescount
   434                              <2> %else
   435                              <2> %rotate 1
   436                              <2> %rep %0 - 2
   437                              <2> %rotate 1
   438                              <2> 	dw %1
   439                              <2> %endrep
   440                              <2> %rotate 1
   441                              <2> 	endarea %1
   442                              <2> %assign %$size %1_size
   443                              <2> %warning %1: %$size bytes (Method 1)
   444                              <2> %1.amount equ %1_size_w
   445                              <2> %endif
   446                              <2> %pop
   447                              <2> %endmacro
   448                              <2> %endif
   879                              <1> 
   880                              <1> 
   881                              <1> %if _VDD
   882                              <1> ; standard BOPs for communication with DEBXXVDD on NT platforms
   883                              <1> %macro RegisterModule 0.nolist
   884                              <1> 	db 0C4h, 0C4h, 58h, 0
   885                              <1> 	nop
   886                              <1> %endmacro
   887                              <1> %macro UnRegisterModule 0.nolist
   888                              <1> 	db 0C4h, 0C4h, 58h, 1
   889                              <1> 	nop
   890                              <1> %endmacro
   891                              <1> %macro DispatchCall 0.nolist
   892                              <1> 	db 0C4h, 0C4h, 58h, 2
   893                              <1> 	nop
   894                              <1> %endmacro
   895                              <1> %endif
   896                              <1> 
   897                              <1> %assign CODE_INSURE_COUNT 0
   898                              <1> 
   899                              <1> 		; The entry_to_code_seg/_sel dispatcher in lDEBUG_DATA_ENTRY
   900                              <1> 		;  detects mistaken debugger breakpoints in its
   901                              <1> 		;  in-code-parameter by checking for a low-byte
   902                              <1> 		;  value equal to 0CCh (one-byte int3 opcode).
   903                              <1> 		; Therefore, we insure that all destinations jumped to
   904                              <1> 		;  via that dispatcher do not happen to be located
   905                              <1> 		;  on an offset that gives 0CCh in the low byte.
   906                              <1> 	%imacro code_insure_low_byte_not_0CCh 0.nolist
   907                              <1> %ifn _LINK
   908                              <1>  %if (($ - _CURRENT_SECTION %+ _start) & 0FFh) == 0CCh
   909                              <1> 	nop
   910                              <1>   %assign CODE_INSURE_COUNT 1 + CODE_INSURE_COUNT
   911                              <1>  %endif
   912                              <1> %endif
   913                              <1> 	%endmacro
   914                              <1> 
   915                              <1> 
   916                              <1> 		; dual code segments
   917                              <1> %if _DUALCODE && _PM
   918                              <1> 
   919                              <1> %if _DEBUG
   920                              <1> %idefine dualfunction comment
   921                              <1> %else
   922                              <1> %idefine dualfunction code_insure_low_byte_not_0CCh
   923                              <1> %endif
   924                              <1> 
   925                              <1> %idefine dualreturn call _CURRENT_SECTION %+ _dualret_helper
   926                              <1> %idefine dualdistance far
   927                              <1> 	%imacro dualcall 1.nolist
   928                              <1> %ifndef SECTION_OF_%1
   929                              <1>  %error Unknown target section for symbol %1
   930                              <1> %endif
   931                              <1> 	call _CURRENT_SECTION %+ _to_ %+ %[SECTION_OF_%1] %+ _dualcall_helper
   932                              <1>  %if _DEBUG
   933                              <1> 	jmp strict short %%skipdata
   934                              <1>  %endif
   935                              <1> 	dw %1
   936                              <1> %%skipdata:
   937                              <1> 	%endmacro
   938                              <1> 	%imacro nearcall 1.nolist
   939                              <1> %ifndef SECTION_OF_%1
   940                              <1>  %error Unknown target section for symbol %1
   941                              <1> %endif
   942                              <1> %ifidni %[SECTION_OF_%1], _CURRENT_SECTION
   943                              <1> 	call %1
   944                              <1> %else
   945                              <1> 	call _CURRENT_SECTION %+ _to_ %+ %[SECTION_OF_%1] %+ _nearcall_helper
   946                              <1>  %if _DEBUG
   947                              <1> 	jmp strict short %%skipdata
   948                              <1>  %endif
   949                              <1> 	dw %1
   950                              <1> %%skipdata:
   951                              <1> %endif
   952                              <1> 	%endmacro
   953                              <1> 
   954                              <1> %elif _DUALCODE && ! _PM
   955                              <1> 
   956                              <1> %idefine dualfunction comment
   957                              <1> %idefine dualreturn
   958                              <1> %idefine dualdistance far
   959                              <1> 
   960                              <1> %ifn _LINK
   961                              <1> %define PATCH_RELOCATE_FROM_lDEBUG_CODE ""
   962                              <1> %define PATCH_RELOCATE_FROM_lDEBUG_CODE2 ""
   963                              <1> 	%imacro dualcall 1.nolist
   964                              <1> %ifndef SECTION_OF_%1
   965                              <1>  %error Unknown target section for symbol %1
   966                              <1> %endif
   967                              <1> %ifidni %[SECTION_OF_%1], _CURRENT_SECTION
   968                              <1> 	push cs
   969                              <1> 	call %1
   970                              <1> %else
   971                              <1> 	call relocatedzero:%1
   972                              <1> %push
   973                              <1> %assign %$entry ($ + _CURRENT_SECTION %+ FIXUP) - 2
   974                              <1> 	relocatelist _CURRENT_SECTION, %$entry
   975                              <1> %pop
   976                              <1> %endif
   977                              <1> 	%endmacro
   978                              <1> 	%imacro relocatelist 2.nolist
   979                              <1>  %define PATCH_RELOCATE_FROM_%1 %[PATCH_RELOCATE_FROM_%1],%2
   980                              <1> 	%endmacro
   981                              <1> %else		; _LINK
   982                              <1> 	%idefine dualcall dualcall_with_filename __FILE__,
   983                              <1> 	%imacro dualcall_with_filename 2.nolist
   984                              <1> %ifndef SECTION_OF_%2
   985                              <1>  %error Unknown target section for symbol %2
   986                              <1> %endif
   987                              <1> %ifidni %[SECTION_OF_%2], _CURRENT_SECTION
   988                              <1> 	push cs
   989                              <1> 	call %2
   990                              <1> %else
   991                              <1> 	call relocatedzero:%2
   992                              <1> %ifidn _CURRENT_SECTION, lDEBUG_CODE
   993                              <1>  wllist Lrelocate_from_code, equ $ - 2, %1
   994                              <1> %elifidn _CURRENT_SECTION, lDEBUG_CODE2
   995                              <1>  wllist Lrelocate_from_code2, equ $ - 2, %1
   996                              <1> %else
   997                              <1>  %error Wrong section
   998                              <1> %endif
   999                              <1> %endif
  1000                              <1> 	%endmacro
  1001                              <1> %endif		; _LINK
  1002                              <1>  %if _DUALCODENEARDUAL
  1003                              <1> 
  1004                              <1> %if _LINK
  1005                              <1> 	%idefine nearcall nearcall_with_filename __FILE__,
  1006                              <1> 	%imacro nearcall_with_filename 2
  1007                              <1> %ifndef SECTION_OF_%2
  1008                              <1>  %error Unknown target section for symbol %2
  1009                              <1> %endif
  1010                              <1> %ifidni %[SECTION_OF_%2], _CURRENT_SECTION
  1011                              <1> 	call %2
  1012                              <1> %else
  1013                              <1>  %push
  1014                              <1>  %xdefine %$originalsection _CURRENT_SECTION
  1015                              <1>  %xdefine %$targetsection SECTION_OF_%2
  1016                              <1>  %deftok %%filenametoken SOURCEFILENAME
  1017                              <1>   %ifndef NEARCALL_THUNK_TO_%2%[%%filenametoken]
  1018                              <1> 	hiddenusesection %$targetsection
  1019                              <1> %define NEARCALL_THUNK_TO_%2%[%%filenametoken] %%nearcall_thunk_to_%2%[%%filenametoken]
  1020                              <1> section_of %%nearcall_thunk_to_%2%[%%filenametoken]
  1021                              <1> dualfunction
  1022                              <1> %%nearcall_thunk_to_%2%[%%filenametoken]:
  1023                              <1> 	call %2
  1024                              <1> 	dualreturn
  1025                              <1> 	retf
  1026                              <1> 
  1027                              <1> 	hiddenusesection %$originalsection
  1028                              <1>   %endif
  1029                              <1>  %pop
  1030                              <1> 	dualcall_with_filename %1, NEARCALL_THUNK_TO_%2%[%%filenametoken]
  1031                              <1> %endif
  1032                              <1> 	%endmacro
  1033                              <1> %elif _LINK_COMPAT	; _LINK
  1034                              <1> 	%imacro nearcall 1
  1035                              <1> %ifndef SECTION_OF_%1
  1036                              <1>  %error Unknown target section for symbol %1
  1037                              <1> %endif
  1038                              <1> %ifidni %[SECTION_OF_%1], _CURRENT_SECTION
  1039                              <1> 	call %1
  1040                              <1> %else
  1041                              <1>  %push
  1042                              <1>  %xdefine %$originalsection _CURRENT_SECTION
  1043                              <1>  %xdefine %$targetsection SECTION_OF_%1
  1044                              <1>  %deftok %%filenametoken SOURCEFILENAME
  1045                              <1>   %ifndef NEARCALL_THUNK_TO_%1%[%%filenametoken]
  1046                              <1> 	hiddenusesection %$targetsection
  1047                              <1> %define NEARCALL_THUNK_TO_%1%[%%filenametoken] %%nearcall_thunk_to_%1%[%%filenametoken]
  1048                              <1> section_of %%nearcall_thunk_to_%1%[%%filenametoken]
  1049                              <1> dualfunction
  1050                              <1> %%nearcall_thunk_to_%1%[%%filenametoken]:
  1051                              <1> 	call %1
  1052                              <1> 	dualreturn
  1053                              <1> 	retf
  1054                              <1> 
  1055                              <1> 	hiddenusesection %$originalsection
  1056                              <1>   %endif
  1057                              <1>  %pop
  1058                              <1> 	dualcall NEARCALL_THUNK_TO_%1%[%%filenametoken]
  1059                              <1> %endif
  1060                              <1> 	%endmacro
  1061                              <1> %else		; _LINK, _LINK_COMPAT
  1062                              <1> 	%imacro nearcall 1
  1063                              <1> %ifndef SECTION_OF_%1
  1064                              <1>  %error Unknown target section for symbol %1
  1065                              <1> %endif
  1066                              <1> %ifidni %[SECTION_OF_%1], _CURRENT_SECTION
  1067                              <1> 	call %1
  1068                              <1> %else
  1069                              <1>  %push
  1070                              <1>  %xdefine %$originalsection _CURRENT_SECTION
  1071                              <1>  %xdefine %$targetsection SECTION_OF_%1
  1072                              <1>   %ifndef NEARCALL_THUNK_TO_%1
  1073                              <1> 	hiddenusesection %$targetsection
  1074                              <1> %define NEARCALL_THUNK_TO_%1 %%nearcall_thunk_to_%1
  1075                              <1> section_of %%nearcall_thunk_to_%1
  1076                              <1> dualfunction
  1077                              <1> %%nearcall_thunk_to_%1:
  1078                              <1> 	call %1
  1079                              <1> 	dualreturn
  1080                              <1> 	retf
  1081                              <1> 
  1082                              <1> 	hiddenusesection %$originalsection
  1083                              <1>   %endif
  1084                              <1>  %pop
  1085                              <1> 	dualcall NEARCALL_THUNK_TO_%1
  1086                              <1> %endif
  1087                              <1> 	%endmacro
  1088                              <1> %endif		; _LINK, _LINK_COMPAT
  1089                              <1>  %else
  1090                              <1> 	%imacro nearcall 1.nolist
  1091                              <1> %ifndef SECTION_OF_%1
  1092                              <1>  %error Unknown target section for symbol %1
  1093                              <1> %endif
  1094                              <1> %ifidni %[SECTION_OF_%1], _CURRENT_SECTION
  1095                              <1> 	call %1
  1096                              <1> %else
  1097                              <1> 	call _CURRENT_SECTION %+ _to_ %+ %[SECTION_OF_%1] %+ _nearcall_helper
  1098                              <1>  %if _DEBUG
  1099                              <1> 	jmp strict short %%skipdata
  1100                              <1>  %endif
  1101                              <1> 	dw %1
  1102                              <1> %%skipdata:
  1103                              <1> %endif
  1104                              <1> 	%endmacro
  1105                              <1>  %endif
  1106                              <1> %elif ! _DUALCODE
  1107                              <1> 
  1108                              <1> %idefine dualfunction comment
  1109                              <1> %idefine dualreturn
  1110                              <1> %idefine dualdistance near
  1111                              <1> 	%imacro dualcall 1.nolist
  1112                              <1> 	call %1
  1113                              <1> 	%endmacro
  1114                              <1> 	%imacro nearcall 1.nolist
  1115                              <1> 	call %1
  1116                              <1> 	%endmacro
  1117                              <1> %assign _SYMBOLICDUALCODE 0
  1118                              <1> %assign _SYMBOLASMDUALCODE 0
  1119                              <1> 
  1120                              <1> %else
  1121                              <1>  %error Unexpected defines
  1122                              <1> %endif
  1123                              <1> 
  1124                              <1> %ifn _SYMBOLICDUALCODE
  1125                              <1>  %assign _SYMBOLASMDUALCODE 0
  1126                              <1> %endif
  1127                              <1> 
  1128                              <1>  %if _SYMBOLIC && _DUALCODE && _SYMBOLASMDUALCODE
  1129                              <1> %idefine dual2function	dualfunction
  1130                              <1> %idefine dual2return	dualreturn
  1131                              <1> %idefine dual2distance	dualdistance
  1132                              <1> %idefine dual2call	dualcall
  1133                              <1>  %else
  1134                              <1> %idefine dual2function comment
  1135                              <1> %idefine dual2return
  1136                              <1> %idefine dual2distance near
  1137                              <1> 	%imacro dual2call 1.nolist
  1138                              <1> 	call %1
  1139                              <1> 	%endmacro
  1140                              <1>  %endif
  1141                              <1> 
  1142                              <1> 
  1143                              <1> 	numdef CHECKSECTION, 0
  1144                              <1> 	numdef CHECKCALLSECTION, _CHECKSECTION
  1145                              <1> 	numdef CHECKJMPSECTION, _CHECKSECTION
  1146                              <1> 	numdef CHECKJCCSECTION, _CHECKSECTION
  1147                              <1> 
  1148                              <1> %if _CHECKCALLSECTION
  1149                              <1> 	%imacro call 1.nolist
  1150                              <1> 	%? %1
  1151                              <1> checksection %1, %?, call
  1152                              <1> 	%endmacro
  1153                              <1> %endif
  1154                              <1> %if _CHECKJMPSECTION
  1155                              <1> 	%imacro jmp 1.nolist
  1156                              <1> 	%? %1
  1157                              <1> checksection %1, %?, jmp
  1158                              <1> 	%endmacro
  1159                              <1> %endif
  1160                              <1> %if _CHECKJCCSECTION
  1161                              <1> 	%imacro je 1.nolist
  1162                              <1> 	%? %1
  1163                              <1> checksection %1, %?, jcc
  1164                              <1> 	%endmacro
  1165                              <1> 	%imacro jne 1.nolist
  1166                              <1> 	%? %1
  1167                              <1> checksection %1, %?, jcc
  1168                              <1> 	%endmacro
  1169                              <1> 	%imacro jz 1.nolist
  1170                              <1> 	%? %1
  1171                              <1> checksection %1, %?, jcc
  1172                              <1> 	%endmacro
  1173                              <1> 	%imacro jnz 1.nolist
  1174                              <1> 	%? %1
  1175                              <1> checksection %1, %?, jcc
  1176                              <1> 	%endmacro
  1177                              <1> 
  1178                              <1> 	%imacro jb 1.nolist
  1179                              <1> 	%? %1
  1180                              <1> checksection %1, %?, jcc
  1181                              <1> 	%endmacro
  1182                              <1> 	%imacro jnb 1.nolist
  1183                              <1> 	%? %1
  1184                              <1> checksection %1, %?, jcc
  1185                              <1> 	%endmacro
  1186                              <1> 	%imacro jbe 1.nolist
  1187                              <1> 	%? %1
  1188                              <1> checksection %1, %?, jcc
  1189                              <1> 	%endmacro
  1190                              <1> 	%imacro jnbe 1.nolist
  1191                              <1> 	%? %1
  1192                              <1> checksection %1, %?, jcc
  1193                              <1> 	%endmacro
  1194                              <1> 	%imacro jc 1.nolist
  1195                              <1> 	%? %1
  1196                              <1> checksection %1, %?, jcc
  1197                              <1> 	%endmacro
  1198                              <1> 	%imacro jnc 1.nolist
  1199                              <1> 	%? %1
  1200                              <1> checksection %1, %?, jcc
  1201                              <1> 	%endmacro
  1202                              <1> 	%imacro ja 1.nolist
  1203                              <1> 	%? %1
  1204                              <1> checksection %1, %?, jcc
  1205                              <1> 	%endmacro
  1206                              <1> 	%imacro jna 1.nolist
  1207                              <1> 	%? %1
  1208                              <1> checksection %1, %?, jcc
  1209                              <1> 	%endmacro
  1210                              <1> 	%imacro jae 1.nolist
  1211                              <1> 	%? %1
  1212                              <1> checksection %1, %?, jcc
  1213                              <1> 	%endmacro
  1214                              <1> 	%imacro jnae 1.nolist
  1215                              <1> 	%? %1
  1216                              <1> checksection %1, %?, jcc
  1217                              <1> 	%endmacro
  1218                              <1> 
  1219                              <1> 	%imacro jl 1.nolist
  1220                              <1> 	%? %1
  1221                              <1> checksection %1, %?, jcc
  1222                              <1> 	%endmacro
  1223                              <1> 	%imacro jnl 1.nolist
  1224                              <1> 	%? %1
  1225                              <1> checksection %1, %?, jcc
  1226                              <1> 	%endmacro
  1227                              <1> 	%imacro jle 1.nolist
  1228                              <1> 	%? %1
  1229                              <1> checksection %1, %?, jcc
  1230                              <1> 	%endmacro
  1231                              <1> 	%imacro jnle 1.nolist
  1232                              <1> 	%? %1
  1233                              <1> checksection %1, %?, jcc
  1234                              <1> 	%endmacro
  1235                              <1> 	%imacro jg 1.nolist
  1236                              <1> 	%? %1
  1237                              <1> checksection %1, %?, jcc
  1238                              <1> 	%endmacro
  1239                              <1> 	%imacro jng 1.nolist
  1240                              <1> 	%? %1
  1241                              <1> checksection %1, %?, jcc
  1242                              <1> 	%endmacro
  1243                              <1> 	%imacro jge 1.nolist
  1244                              <1> 	%? %1
  1245                              <1> checksection %1, %?, jcc
  1246                              <1> 	%endmacro
  1247                              <1> 	%imacro jnge 1.nolist
  1248                              <1> 	%? %1
  1249                              <1> checksection %1, %?, jcc
  1250                              <1> 	%endmacro
  1251                              <1> 
  1252                              <1> 	%imacro jo 1.nolist
  1253                              <1> 	%? %1
  1254                              <1> checksection %1, %?, jcc
  1255                              <1> 	%endmacro
  1256                              <1> 	%imacro jno 1.nolist
  1257                              <1> 	%? %1
  1258                              <1> checksection %1, %?, jcc
  1259                              <1> 	%endmacro
  1260                              <1> 	%imacro jp 1.nolist
  1261                              <1> 	%? %1
  1262                              <1> checksection %1, %?, jcc
  1263                              <1> 	%endmacro
  1264                              <1> 	%imacro jnp 1.nolist
  1265                              <1> 	%? %1
  1266                              <1> checksection %1, %?, jcc
  1267                              <1> 	%endmacro
  1268                              <1> 	%imacro jpe 1.nolist
  1269                              <1> 	%? %1
  1270                              <1> checksection %1, %?, jcc
  1271                              <1> 	%endmacro
  1272                              <1> 	%imacro jnpe 1.nolist
  1273                              <1> 	%? %1
  1274                              <1> checksection %1, %?, jcc
  1275                              <1> 	%endmacro
  1276                              <1> 	%imacro jpo 1.nolist
  1277                              <1> 	%? %1
  1278                              <1> checksection %1, %?, jcc
  1279                              <1> 	%endmacro
  1280                              <1> 	%imacro jnpo 1.nolist
  1281                              <1> 	%? %1
  1282                              <1> checksection %1, %?, jcc
  1283                              <1> 	%endmacro
  1284                              <1> 	%imacro js 1.nolist
  1285                              <1> 	%? %1
  1286                              <1> checksection %1, %?, jcc
  1287                              <1> 	%endmacro
  1288                              <1> 	%imacro jns 1.nolist
  1289                              <1> 	%? %1
  1290                              <1> checksection %1, %?, jcc
  1291                              <1> 	%endmacro
  1292                              <1> 
  1293                              <1> 	%imacro jcxz 1.nolist
  1294                              <1> 	%? %1
  1295                              <1> checksection %1, %?, jcc
  1296                              <1> 	%endmacro
  1297                              <1> 	%imacro jecxz 1.nolist
  1298                              <1> 	%? %1
  1299                              <1> checksection %1, %?, jcc
  1300                              <1> 	%endmacro
  1301                              <1> 	%imacro loop 1.nolist
  1302                              <1> 	%? %1
  1303                              <1> checksection %1, %?, jcc
  1304                              <1> 	%endmacro
  1305                              <1> 	%imacro loopz 1.nolist
  1306                              <1> 	%? %1
  1307                              <1> checksection %1, %?, jcc
  1308                              <1> 	%endmacro
  1309                              <1> 	%imacro loopnz 1.nolist
  1310                              <1> 	%? %1
  1311                              <1> checksection %1, %?, jcc
  1312                              <1> 	%endmacro
  1313                              <1> 	%imacro loope 1.nolist
  1314                              <1> 	%? %1
  1315                              <1> checksection %1, %?, jcc
  1316                              <1> 	%endmacro
  1317                              <1> 	%imacro loopne 1.nolist
  1318                              <1> 	%? %1
  1319                              <1> checksection %1, %?, jcc
  1320                              <1> 	%endmacro
  1321                              <1> %endif
  1322                              <1> 
  1323                              <1> 	%imacro checksection 3.nolist
  1324                              <1> %push
  1325                              <1>  %defstr %$string %1
  1326                              <1>  %substr %$shortword %$string 1, 5
  1327                              <1>  %substr %$shortsep %$string 6, 1
  1328                              <1>  %substr %$nearword %$string 1, 4
  1329                              <1>  %substr %$nearsep %$string 5, 1
  1330                              <1>  %substr %$farword %$string 1, 3
  1331                              <1>  %substr %$farsep %$string 4, 1
  1332                              <1>  %assign %$isshort 0
  1333                              <1>  %ifidni %$shortword, "short"
  1334                              <1>   %if %$shortsep == 32 || %$shortsep == 9
  1335                              <1>    %assign %$isshort 1
  1336                              <1>    %substr %$string %$string 7, -1
  1337                              <1>   %elif %$shortsep == '['
  1338                              <1>    %assign %$isshort 1
  1339                              <1>    %substr %$string %$string 6, -1
  1340                              <1>   %endif
  1341                              <1>  %endif
  1342                              <1>  %assign %$isnear 0
  1343                              <1>  %ifidni %$nearword, "near"
  1344                              <1>   %if %$nearsep == 32 || %$nearsep == 9
  1345                              <1>    %assign %$isnear 1
  1346                              <1>    %substr %$string %$string 6, -1
  1347                              <1>   %elif %$nearsep == '['
  1348                              <1>    %assign %$isnear 1
  1349                              <1>    %substr %$string %$string 5, -1
  1350                              <1>   %endif
  1351                              <1>  %endif
  1352                              <1>  %assign %$isfar 0
  1353                              <1>  %ifidni %$farword, "far"
  1354                              <1>   %if %$farsep == 32 || %$farsep == 9
  1355                              <1>    %assign %$isfar 1
  1356                              <1>    %substr %$string %$string 5, -1
  1357                              <1>   %elif %$farsep == '['
  1358                              <1>    %assign %$isfar 1
  1359                              <1>    %substr %$string %$string 4, -1
  1360                              <1>   %endif
  1361                              <1>  %endif
  1362                              <1> 
  1363                              <1>  %deftok %$token %$string
  1364                              <1> 
  1365                              <1>  %assign %$size 2
  1366                              <1>  %assign %$isreg 0
  1367                              <1>  %assign %$exit 0
  1368                              <1>  %rep 2
  1369                              <1>   %ifn %$exit
  1370                              <1>    %if %$size == 2
  1371                              <1>     %define %$regnames "ax  cx  dx  bx  sp  bp  si  di  "
  1372                              <1>    %elif %$size == 4
  1373                              <1>     %define %$regnames "eax ecx edx ebx esp ebp esi edi "
  1374                              <1>    %endif
  1375                              <1>    %assign %$index 0
  1376                              <1>    %rep 8
  1377                              <1>     %ifn %$exit
  1378                              <1>      %substr %$reg %$regnames %$index * 4 + 1, 4
  1379                              <1>      %deftok %$reg %$reg
  1380                              <1>      %ifnempty %$reg
  1381                              <1>       %ifidni %$reg, %$token
  1382                              <1>        %assign %$isreg %$size
  1383                              <1>        %assign %$exit 1
  1384                              <1>        %exitrep
  1385                              <1>       %endif
  1386                              <1>      %endif
  1387                              <1>     %endif
  1388                              <1>     %assign %$index %$index + 1
  1389                              <1>    %endrep
  1390                              <1>    %if %$exit
  1391                              <1>     %exitrep
  1392                              <1>    %endif
  1393                              <1>    %assign %$size %$size * 2
  1394                              <1>   %endif
  1395                              <1>  %endrep
  1396                              <1> 
  1397                              <1>  %assign %$ismulti 0
  1398                              <1>  %assign %$ismem 0
  1399                              <1>  %strlen %$length %$string
  1400                              <1>  %assign %$ii 0
  1401                              <1>  %rep %$length
  1402                              <1>   %substr %$point %$string %$ii + 1, 1
  1403                              <1>   %if %$point == 32 || %$point == 9
  1404                              <1>    %assign %$ismulti 1
  1405                              <1>   %endif
  1406                              <1>   %ifidn %$point, '['
  1407                              <1>    %assign %$ismem 1
  1408                              <1>   %endif
  1409                              <1>   %assign %$ii %$ii + 1
  1410                              <1>  %endrep
  1411                              <1> 
  1412                              <1>  %assign %$islocal 0
  1413                              <1>  %substr %$point %$string 1, 1
  1414                              <1>  %substr %$prefix %$string 1, 3
  1415                              <1>  %ifidn %$point, '.'
  1416                              <1>   %ifnidn %$prefix, '..@'
  1417                              <1>    %assign %$islocal 1
  1418                              <1>   %endif
  1419                              <1>  %endif
  1420                              <1> 
  1421                              <1>  %if %$isreg
  1422                              <1>   %if %$isreg == 4
  1423                              <1>    %warning 32-bit reg %3: %2 %1
  1424                              <1>   %else
  1425                              <1>    %warning 16-bit reg %3: %2 %1
  1426                              <1>   %endif
  1427                              <1>  %elif %$ismulti || %$ismem
  1428                              <1>   %warning not single %3: %2 %1
  1429                              <1>  %elif %$islocal
  1430                              <1>   %ifidni %3, call
  1431                              <1>    %warning local %3: %2 %1
  1432                              <1>   %endif
  1433                              <1>  %elifdef SECTION_OF_%[%$token]
  1434                              <1>   %ifnidni SECTION_OF_%[%$token], _CURRENT_SECTION
  1435                              <1>    %error Symbol %$token called wrongly: section_of=SECTION_OF_%[%$token], current=_CURRENT_SECTION
  1436                              <1>   %endif
  1437                              <1>  %endif
  1438                              <1> %pop
  1439                              <1> 	%endmacro
  1440                              <1> 
  1441                              <1> 
  1442                              <1> 	struc MEMREF
  1443 00000000 ????????            <1> mrLinear:		resd 1
  1444 00000004 ????????            <1> mrOffset:		resd 1
  1445 00000008 ????                <1> mrSegmentSelector:	resw 1
  1446 0000000A ????                <1> mrFlags:		resw 1
  1447 0000000C ????????            <1> mrLength:		resd 1
  1448                              <1> 	endstruc
  1449                              <1> 
  1450                              <1> 		; Currently only direct branches are allowed when
  1451                              <1> 		;  disassembling from the U command. (That is,
  1452                              <1> 		;  [disflags] & DIS_F_SHOW is clear.) All other
  1453                              <1> 		;  types of references depend on segment registers
  1454                              <1> 		;  and sometimes base and index registers, which are
  1455                              <1> 		;  not known ahead of time. They are only known for
  1456                              <1> 		;  the R command's disassembly. (DIS_F_SHOW set.)
  1457                              <1> 		; (When a mov ss or pop to ss will change ss, a
  1458                              <1> 		;  subsequent instruction using ss will not be
  1459                              <1> 		;  disassembled with the correct ss value.
  1460                              <1> 		;  This should be rare though. We may at a later
  1461                              <1> 		;  point detect this condition and not display
  1462                              <1> 		;  references with ss then.)
  1463                              <1> mrfBranchDirect:	equ    1
  1464                              <1> mrfMem:			equ    2
  1465                              <1> mrfMemSource:		equ    4
  1466                              <1> mrfMemDest:		equ    8
  1467                              <1> mrfA32:			equ   10h
  1468                              <1> mrfString:		equ   20h
  1469                              <1> mrfStringSource:	equ   40h
  1470                              <1> mrfStringDest:		equ   80h
  1471                              <1> mrfUsesSS:		equ  100h
  1472                              <1> mrfBranchIndirect:	equ  200h
  1473                              <1> 
  1474                              <1> 
  1475                              <1> %if _VXCHG && ! _VXCHGBIOS
  1476                              <1> 	struc XMSM
  1477 00000000 ????????            <1> .size_:		resd 1
  1478 00000004 ????                <1> .srchdl:	resw 1
  1479 00000006 ????????            <1> .srcadr:	resd 1
  1480 0000000A ????                <1> .dsthdl:	resw 1
  1481 0000000C ????????            <1> .dstadr:	resd 1
  1482                              <1> 	endstruc
  1483                              <1> %endif
  1484                              <1> 
  1485                              <1> 
  1486                              <1> 	; doscall is used by symbols.asm and run.asm and in
  1487                              <1> 	;  cmd3_close_handle, so define it prior
  1488                              <1> %if _PM && _NOEXTENDER
  1489                              <1> %macro doscall 0
  1490                              <1> 	nearcall _doscall
  1491                              <1> %endmacro
  1492                              <1> %else
  1493                              <1> 		; When we don't support non-extended DPMI all Int21 calls
  1494                              <1> 		; are either in Real Mode or extended (all are real Int21
  1495                              <1> 		; instructions).
  1496                              <1> %macro doscall 0
  1497                              <1> 	int 21h
  1498                              <1> %endmacro
  1499                              <1> %endif
  1500                              <1> 
  1501                              <1> 
  1502                              <1> %if _LINK
  1503                              <1> %imacro wlcalc 1-2.nolist
  1504                              <1> %deftok %%filenametoken __FILE__
  1505                              <1>  global wlcalc_%1?%[%%l]%[%%filenametoken]
  1506                              <1> wlcalc_%1?%[%%l]%[%%filenametoken]: %2
  1507                              <1> %endmacro
  1508                              <1> %endif
  1509                              <1> 
  1510                              <1> %if _BOOTLDR && _LINK
  1511                              <1> %macro lot_equate 2.nolist
  1512                              <1> LOAD_%2 equ %1
  1513                              <1> %endmacro
  1514                              <1> 
  1515                              <1> 	lot_equate    1, SET_DL_UNIT
  1516                              <1> 	lot_equate    2, SET_BL_UNIT
  1517                              <1> 	lot_equate    4, SET_SIDI_CLUSTER
  1518                              <1> 	lot_equate  10h, SET_DSSI_DPT
  1519                              <1> 	lot_equate  20h, PUSH_DPT
  1520                              <1> 	lot_equate  40h, DATASTART_HIDDEN
  1521                              <1> 	lot_equate  80h, SET_AXBX_DATASTART
  1522                              <1> 	lot_equate 100h, SET_DSBP_BPB
  1523                              <1> 	lot_equate 200h, LBA_SET_TYPE
  1524                              <1> 	lot_equate 400h, MESSAGE_TABLE
  1525                              <1> 	lot_equate 800h, SET_AXBX_ROOT_HIDDEN
  1526                              <1> 	lot_equate 1000h, CMDLINE
  1527                              <1> 	lot_equate 2000h, NO_BPB
  1528                              <1> 	lot_equate 4000h, SET_DSSI_PARTINFO
  1529                              <1> %endif
  1530                              <1> 
  1531                              <1> %if _HELP_COMPRESSED
  1532                              <1>  %assign NONCOMPRESSEDFLAG 1
  1533                              <1> %else
  1534                              <1>  %assign NONCOMPRESSEDFLAG 0
  1535                              <1> %endif
  1536                              <1> 
  1537                              <1> [list +]
  1538                              <1> 
  1539                              <1> %if _LINK
  1540                              <1>  %if _ONLY386
  1541                              <1> 	cpu 386
  1542                              <1>  %else
  1543                              <1> 	cpu 8086
  1544                              <1>  %endif
  1545                              <1> 
  1546                              <1> auxbuff_size: equ (_AUXBUFFSIZE+15) & ~15
  1547                              <1> 	endarea auxbuff, 1
  1548                              <1> 
  1549                              <1> auxbuff_max_size: equ (_AUXBUFFMAXSIZE+15) & ~15
  1550                              <1> 	endarea auxbuff_max, 1
  1551                              <1> 
  1552                              <1> %if _INIT_MAX
  1553                              <1>  auxbuff_init_size: equ (_AUXBUFFMAXSIZE+15) & ~15
  1554                              <1> %else
  1555                              <1>  auxbuff_init_size: equ (_AUXBUFFSIZE+15) & ~15
  1556                              <1> %endif
  1557                              <1> 	endarea auxbuff_init, 1
  1558                              <1> 
  1559                              <1>  %include "options.mac"
     1                              <2> 
     2                              <2> %if 0
     3                              <2> 
     4                              <2> lDebug options and internal flags
     5                              <2> 
     6                              <2> Copyright (C) 2008-2025 E. C. Masloch
     7                              <2> 
     8                              <2> Usage of the works is permitted provided that this
     9                              <2> instrument is retained with the works, so that any entity
    10                              <2> that uses the works is notified of this instrument.
    11                              <2> 
    12                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    13                              <2> 
    14                              <2> %endif
    15                              <2> 
    16                              <2> 
    17                              <2> dispregs32	equ	  1	; RX: 32-bit register display (R, T/P/G)
    18                              <2> traceints	equ	  2	; TM: trace into interrupts (T)
    19                              <2> cpdepchars	equ	  4	; allow dumping of CP-dependent characters (D, DX)
    20                              <2> fakeindos	equ	  8	; always assume InDOS flag non-zero (all)
    21                              <2> nonpagingdevice	equ	 10h	; disallow paged output with [more] prompt (all exc. P, T)
    22                              <2> 	; This option was never used anywhere:
    23                              <2> ; pagingdevice	equ	 20h	; allow paged output with [more] prompt (all exc. P, T)
    24                              <2> 				; paged output is by default on if the output device is StdOut, else off
    25                              <2> hexrn		equ	 40h	; display raw hexadecimal content of FPU registers (RN)
    26                              <2> ;novdd		equ	 80h	; don't use a registered NTVDM VDD (L, W)
    27                              <2> nondospaging	equ	100h	; paging: don't use DOS for input when waiting for a key
    28                              <2> opt1_86mnohlt	equ	200h	; (86 Mode:) HLT doesn't work, don't use it
    29                              <2> biosidles	equ	400h	; don't idle with HLT or Int2F.1680, only call BIOS Int16.00
    30                              <2> opt_usegetinput	equ	800h	; use getinput for int 21h interactive input
    31                              <2> use_si_units	equ    1000h	; in disp_*_size use SI units (kB = 1000, etc)
    32                              <2> use_jedec_units	equ    2000h	; in disp_*_size use JEDEC units (kB = 1024)
    33                              <2> enable_serial	equ    4000h	; enable serial I/O (preferred over DOS or BIOS terminal)
    34                              <2> int8_disable_serial equ	   8000h	; disable serial I/O when breaking due to intr8
    35                              <2> gg_do_not_skip_bp equ	 1_0000h	; gg: do not skip a breakpoint (bb or gg)
    36                              <2> gg_no_autorepeat equ	 2_0000h	; gg: do not auto-repeat
    37                              <2> tp_do_not_skip_bp equ	 4_0000h	; T/TP/P: do not skip a (bb) breakpoint
    38                              <2> gg_bb_hit_no_repeat equ	 8_0000h	; gg: do not auto-repeat after bb hit
    39                              <2> tp_bb_hit_no_repeat equ	10_0000h	; T/TP/P: do not auto-repeat after bb hit
    40                              <2> gg_unexpected_no_repeat equ 20_0000h	; gg: do not auto-repeat after unexpectedinterrupt
    41                              <2> tp_unexpected_no_repeat equ 40_0000h	; T/TP/P
    42                              <2> ss_no_dump:		equ 80_0000h
    43                              <2> %if _SYMBOLIC
    44                              <2> dd_no_blanks_sym:	equ 100_0000h
    45                              <2> zz_no_pm_xms:		equ 200_0000h
    46                              <2> %endif
    47                              <2> rr_disasm_no_rept:	equ 1000_0000h
    48                              <2> rr_disasm_no_show:	equ 2000_0000h
    49                              <2> opt_cmdline_quiet_input:equ 4000_0000h
    50                              <2> opt_cmdline_quiet_output:equ 8000_0000h
    51                              <2> %if _SYMBOLIC
    52                              <2> DEFAULTOPTIONS	equ zz_no_pm_xms
    53                              <2> %else
    54                              <2> DEFAULTOPTIONS	equ 0
    55                              <2> %endif
    56                              <2> 
    57                              <2> 
    58                              <2> opt2_db_header:		equ 1
    59                              <2> opt2_db_trailer:	equ 2
    60                              <2> opt2_dw_header:		equ 10h
    61                              <2> opt2_dw_trailer:	equ 20h
    62                              <2> opt2_dd_header:		equ 100h
    63                              <2> opt2_dd_trailer:	equ 200h
    64                              <2> opt2_getinput_dpmi:	equ 800h
    65                              <2> opt2_hh_compat:		equ 1000h
    66                              <2> opt2_getc_idle:		equ 2000h
    67                              <2> opt2_getc_idle_dpmi:	equ 4000h
    68                              <2> opt2_re_cancel_tpg:	equ 8000h
    69                              <2> opt2_nn_compat:		equ 1_0000h
    70                              <2> opt2_nn_capitalise:	equ 2_0000h
    71                              <2> %if _MS_0RANGE_COMPAT
    72                              <2> opt2_0range_compat:	equ 4_0000h
    73                              <2> %endif
    74                              <2> opt2_rr16_compat:	equ 8_0000h
    75                              <2> opt2_r_prompt_compat:	equ 10_0000h
    76                              <2> opt2_r_separate:	equ 20_0000h
    77                              <2> opt2_r_linebreak_always:equ 40_0000h
    78                              <2> opt2_dpminohlt:		equ 8000_0000h	; DPMI doesn't like hlt
    79                              <2> DEFAULTOPTIONS2	equ opt2_dw_header | opt2_dd_header | opt2_getc_idle_dpmi | opt2_dpminohlt
    80                              <2> 
    81                              <2> 
    82                              <2> opt3_tt_no_paging:	equ 1
    83                              <2> opt3_tp_no_paging:	equ 2
    84                              <2> opt3_pp_no_paging:	equ 4
    85                              <2> opt3_gg_no_paging:	equ 8
    86                              <2> opt3_silence_paging_set:equ 100h
    87                              <2> opt3_silence_paging_on:	equ 200h
    88                              <2> opt3_paging_rc:		equ 1000h
    89                              <2> opt3_paging_yy:		equ 2000h
    90                              <2> opt3_paging_re:		equ 4000h
    91                              <2> opt3_r_highlight_diff:	equ 10000h
    92                              <2> opt3_r_highlight_dumb:	equ 20000h
    93                              <2> opt3_r_highlight_full:	equ 40000h
    94                              <2> opt3_r_highlight_eip:	equ 80000h
    95                              <2> %if _PM
    96                              <2> opt3_ss_b_bit_set:	equ   10_0000h
    97                              <2>  %if _BREAK_INSTALLDPMI
    98                              <2> opt3_break_installdpmi:	equ   20_0000h
    99                              <2>  %endif
   100                              <2> %endif
   101                              <2> %if _DHIGHLIGHT
   102                              <2> opt3_d_highlight:	equ   80_0000h
   103                              <2> %endif
   104                              <2> %if _GETLINEHIGHLIGHT
   105                              <2> opt3_getline_highlight:	equ  100_0000h
   106                              <2> %endif
   107                              <2> opt3_no_idle_2F:	equ  200_0000h
   108                              <2> %if _DELAY_BEFORE_BP
   109                              <2> opt3_delay_before_bp:	equ  400_0000h
   110                              <2> %endif
   111                              <2> opt3_no_call_amis:	equ  800_0000h
   112                              <2> opt3_disable_autorepeat:equ 1000_0000h
   113                              <2> opt3_check_ctrlc_keyb:	equ 2000_0000h
   114                              <2> opt3_check_ctrlc_0bh:	equ 4000_0000h
   115                              <2> opt3_tsr_quit_leave_tf:	equ 8000_0000h
   116                              <2> DEFAULTOPTIONS3	equ opt3_tt_no_paging | opt3_tp_no_paging 		| opt3_pp_no_paging | opt3_gg_no_paging 		| opt3_check_ctrlc_keyb | opt3_check_ctrlc_0bh
   119                              <2> 
   120                              <2> 
   121                              <2> opt4_int_2F_hook:	equ 2
   122                              <2> opt4_int_08_hook:	equ 4
   123                              <2> opt4_int_2D_hook:	equ 8
   124                              <2> %if _CATCHINTFAULTCOND
   125                              <2> opt4_int_fault_hook:	equ 10h
   126                              <2> %endif
   127                              <2> opt4_int_serial_force:	equ 1_0000h
   128                              <2> opt4_int_2F_force:	equ 2_0000h
   129                              <2> opt4_int_08_force:	equ 4_0000h
   130                              <2> opt4_int_2D_force:	equ 8_0000h
   131                              <2> %if _CATCHINT0D
   132                              <2> opt4_int_0D_force:	equ   10_0000h
   133                              <2> %endif
   134                              <2> %if _CATCHINT0C
   135                              <2> opt4_int_0C_force:	equ   20_0000h
   136                              <2> %endif
   137                              <2> opt4_int_00_force:	equ  100_0000h
   138                              <2> opt4_int_01_force:	equ  200_0000h
   139                              <2> opt4_int_03_force:	equ  400_0000h
   140                              <2> opt4_int_06_force:	equ  800_0000h
   141                              <2> opt4_int_18_force:	equ 1000_0000h
   142                              <2> opt4_int_19_force:	equ 2000_0000h
   143                              <2> opt4_int_09_force:	equ 4000_0000h	; not used at the same time as 15h
   144                              <2> opt4_int_15_force:	equ 4000_0000h	; not used at the same time as 09h
   145                              <2> opt4_int_07_force:	equ 8000_0000h
   146                              <2> DEFAULTOPTIONS4 equ opt4_int_2F_hook
   147                              <2> 
   148                              <2> 
   149                              <2> %if _VXCHG
   150                              <2> opt6_vv_mode:		equ 1
   151                              <2> opt6_vv_keep:		equ 2
   152                              <2> opt6_vv_int16:		equ 10h
   153                              <2>  %if _VXCHG_DEFAULT_ON
   154                              <2> DEFAULTOPTIONS6 equ opt6_share_serial_irq | opt6_vv_mode
   155                              <2>  %else
   156                              <2> DEFAULTOPTIONS6 equ opt6_share_serial_irq
   157                              <2>  %endif
   158                              <2> %else
   159                              <2> DEFAULTOPTIONS6 equ opt6_share_serial_irq
   160                              <2> %endif
   161                              <2> %if _DEBUG
   162                              <2> opt6_debug_exception_late:	equ  20h
   163                              <2> opt6_debug_exception_early:	equ  40h
   164                              <2>  %if _DEBUG_COND
   165                              <2> opt6_debug_exception:	equ  80h
   166                              <2> opt6_debug_mode:	equ 100h
   167                              <2>  %endif
   168                              <2> %endif
   169                              <2> opt6_bios_output:	equ 200h
   170                              <2> opt6_flat_binary:	equ 400h
   171                              <2> opt6_big_stack:		equ 800h
   172                              <2> opt6_40_columns:	equ 1000h
   173                              <2> opt6_40_indent_odd:	equ 2000h
   174                              <2> opt6_40_dash:		equ 4000h
   175                              <2> opt6_share_serial_irq:	equ 1_0000h
   176                              <2> opt6_serial_EOI_call:	equ 2_0000h
   177                              <2> %if _RH
   178                              <2> opt6_rh_mode:		equ 10_0000h
   179                              <2> %endif
   180                              <2> %if _DEBUG
   181                              <2> opt6_debug_putrunint_early:	equ  40_0000h
   182                              <2>  %if _DEBUG_COND
   183                              <2> opt6_debug_putrunint:		equ  80_0000h
   184                              <2>  %endif
   185                              <2> %endif
   186                              <2> opt6_bios_io:		equ 100_0000h
   187                              <2> opt6_immasm_display_uu:	equ 200_0000h
   188                              <2> opt6_immasm_debug:	equ 400_0000h
   189                              <2> opt6_immasm_flag:	equ 800_0000h
   190                              <2> opt6_immasm_nobranch:	equ 1000_0000h
   191                              <2> opt6_r_flags_style2:	equ 2000_0000h
   192                              <2> opt6_r_flags_style3:	equ 4000_0000h
   193                              <2> opt6_r_linebreak_conditional:	equ 8000_0000h
   194                              <2> 
   195                              <2> 
   196                              <2> DEFAULTOPTIONS7 equ opt7_no_tsr_ll
   197                              <2> opt7_no_free_oneshot_eld:	equ 1
   198                              <2> opt7_debug_optional_link:	equ 2
   199                              <2> opt7_quiet_install:		equ 4
   200                              <2> opt7_quick_run:			equ 8
   201                              <2> opt7_houdini:			equ 100h
   202                              <2> opt7_debug_run:			equ 200h
   203                              <2> opt7_no_ensure:			equ 1000h
   204                              <2> opt7_no_tsr_ll:			equ 2000h
   205                              <2> 
   206                              <2> 
   207                              <2> oldpacket	equ	  1	; Int25/Int26 packet method available (L, W)
   208                              <2> newpacket	equ	  2	; Int21.7305 packet method available (L, W)
   209                              <2> ntpacket	equ	  4	; VDD registered and usable (L, W)
   210                              <2> pagedcommand	equ	  8	; allows paging in puts
   211                              <2> notstdinput	equ	 10h	; DEBUG's StdIn isn't a device with StdIn bit (is file or other device)
   212                              <2> inputfile	equ	 20h	; DEBUG's StdIn is a file, notstdinput also set
   213                              <2> notstdoutput	equ	 40h	; DEBUG's StdOut isn't a device with StdOut bit (is file or other device)
   214                              <2> outputfile	equ	  80h	; DEBUG's StdOut is a file, notstdoutput also set
   215                              <2> hooked2F	equ	 100h	; Int2F hooked
   216                              <2> nohook2F	equ	 200h	; don't hook Int2F.1687 (required for Win9x, DosEmu?)
   217                              <2> unused_dif1_dpminohlt equ 400h	; DPMI doesn't like hlt
   218                              <2> protectedmode	equ	 800h	; in (DPMI) protected mode
   219                              <2> debuggeeA20	equ	1000h	; state of debuggee's A20
   220                              <2> debuggerA20	equ	2000h	; state of debugger's A20 (will be on if possible)
   221                              <2> nodosloaded	equ	4000h	; No DOS loaded currently (Boot loader mode)
   222                              <2> has386		equ	8000h	; CPU is a 386
   223                              <2> usecharcounter	equ    1_0000h	; don't reset charcounter between calls to puts
   224                              <2> runningnt	equ    2_0000h	; running in NTVDM
   225                              <2> canswitchmode	equ    4_0000h	; can switch modes (auxbuff large enough, DPMI mode switch set up)
   226                              <2> modeswitched	equ    8_0000h	; switched mode (now in the mode that we weren't entered in)
   227                              <2> promptwaiting	equ   10_0000h	; puts: any more output needs to display a prompt first
   228                              <2> switchbuffer	equ   20_0000h	; mode switch needs a buffer (auxbuff)
   229                              <2> tsrmode		equ   40_0000h	; in TSR mode; DPI and DPP not valid
   230                              <2> attachedterm	equ   80_0000h	; the attached process terminated
   231                              <2> runningdosemu	equ  100_0000h	; running in dosemu
   232                              <2> ; load_is_ldp	equ  200_0000h	; boot load: partition specified as "ldp"
   233                              <2> tt_while:	equ  400_0000h	; tt: while condition specified
   234                              <2> tt_p:		equ  800_0000h	; tt: proceed past repeated string instructions
   235                              <2> tt_silent_mode:	equ 1000_0000h	; tt: run should be silent (dump at end)
   236                              <2> tt_silence:	equ 2000_0000h	; tt: silent writing (write to auxbuff instead)
   237                              <2> tt_no_bb:	equ 4000_0000h	; tt: do not use bb breakpoints
   238                              <2> tt_no_bb_first:	equ 8000_0000h	; tt: do not use bb breakpoints at first
   239                              <2> 
   240                              <2> 
   241                              <2> dif2_gg_is_first:	equ   1
   242                              <2> dif2_gg_skip_non_cseip:	equ   2
   243                              <2> dif2_gg_skip_cseip:	equ   4
   244                              <2> dif2_gg_is_gg:		equ   8
   245                              <2> dif2_gg_first_detected:	equ  10h
   246                              <2> dif2_gg_again:		equ  20h
   247                              <2> dif2_tpg_proceed_bp_set:equ  40h
   248                              <2> dif2_tpg_keep_proceed_bp: equ 80h
   249                              <2> dif2_tpg_have_bp:	equ 100h
   250                              <2> dif2_tpg_adjusted_cseip:equ 200h
   251                              <2> dif2_tpg_do_not_adjust:	equ 400h
   252                              <2> dif2_bp_failure:	equ 800h
   253                              <2> dif2_is_pp:		equ 1000h
   254                              <2> %if _SYMBOLIC
   255                              <2> dif2_createdprocess:	equ 800_0000h	; created empty debuggee process
   256                              <2> dif2_sym_req_xms:	equ 2000h
   257                              <2> dif2_sym_req_86mm:	equ 4000h
   258                              <2> dif2_sym_req_mask equ dif2_sym_req_86mm | dif2_sym_req_xms
   259                              <2> dif2_no_pm_xms:		equ 1_0000h
   260                              <2> dif2_xms_detection_done:equ 2_0000h
   261                              <2> %endif
   262                              <2> %if _INPUT_FILE_HANDLES
   263                              <2> dif2_input_file:	equ 10_0000h
   264                              <2> dif2_closed_input_file:	equ 20_0000h
   265                              <2> %endif
   266                              <2> dif2_did_getline_file:	equ 40_0000h
   267                              <2> %if _SYMBOLIC
   268                              <2> dif2_poison:		equ 80_0000h
   269                              <2> %endif
   270                              <2> dif2_boot_loaded_kernel:equ 100_0000h
   271                              <2> %if _INPUT_FILE_BOOT
   272                              <2> dif2_input_file_boot:	equ 200_0000h
   273                              <2> dif2_closed_input_file_boot:	equ 400_0000h
   274                              <2> %endif
   275                              <2> dif2_in_silence_dump:	equ 1000_0000h
   276                              <2> dif2_int31_segment:	equ 2000_0000h
   277                              <2> dif2_nn_compat:		equ 4000_0000h
   278                              <2> dif2_nn_capitalise:	equ 8000_0000h
   279                              <2> 
   280                              <2> 
   281                              <2> dif3_load_is_ldp:	equ 1	; boot load: partition specified as "ldp"
   282                              <2> dif3_load_is_sdp:	equ 2	; boot load: partition specified as "sdp"
   283                              <2> dif3_load_is_ydp:	equ 4	; boot load: partition specified as "ydp"
   284                              <2> dif3_load_is_dp:	equ dif3_load_is_ldp 				| dif3_load_is_sdp 				| dif3_load_is_ydp
   287                              <2> dif3_load_dir_dir:	equ 8
   288                              <2> dif3_input_terminal_override:	equ 10h
   289                              <2> dif3_input_serial_override:	equ 20h
   290                              <2> dif3_if_not:		equ 40h
   291                              <2> dif3_partition_changed:	equ 80h
   292                              <2> ;
   293                              <2> dif3_input_cmdline:	equ 100h; input reading from cmdline_buffer
   294                              <2> dif3_input_cmdline_closed: equ 200h
   295                              <2> dif3_at_line_end:	equ 400h
   296                              <2> dif3_quiet_input_single:equ 800h
   297                              <2> dif3_quiet_output:	equ 1000h
   298                              <2> dif3_unquiet_error:	equ 2000h
   299                              <2> dif3_unquiet_prompt:	equ 4000h
   300                              <2> dif3_unquiet:		equ dif3_unquiet_error | dif3_unquiet_prompt
   301                              <2> dif3_return_eof:	equ 8000h
   302                              <2> dif3_highlighting:	equ 1_0000h
   303                              <2> dif3_do_not_highlight:	equ 2_0000h
   304                              <2> dif3_int10_highlight:	equ 2_0000h
   305                              <2> dif3_nosymbols_1:	equ 4_0000h
   306                              <2> dif3_nosymbols_2:	equ 8_0000h
   307                              <2> %if _PM
   308                              <2> dif3_ss_b_bit_set:	equ  10_0000h
   309                              <2> %endif
   310                              <2> dif3_gotint19:		equ  20_0000h
   311                              <2> dif3_prior_pm:		equ  40_0000h
   312                              <2> %if _DELAY_BEFORE_BP
   313                              <2> dif3_delayed		equ  80_0000h
   314                              <2> %endif
   315                              <2> dif3_input_re:		equ 100_0000h	; input reading from re_buffer
   316                              <2> dif3_input_re_closed:	equ 200_0000h
   317                              <2> dif3_accept_getrange_0:	equ 400_0000h
   318                              <2> %if _INPUT_FILE_HANDLES || _INPUT_FILE_BOOT
   319                              <2> dif3_in_if:		equ 800_0000h
   320                              <2> %endif
   321                              <2> dif3_auxbuff_guarded_1:	equ 1000_0000h
   322                              <2> dif3_auxbuff_guarded_2:	equ 2000_0000h
   323                              <2> dif3_auxbuff_guarded_3:	equ 4000_0000h
   324                              <2> dif3_sss_is_reverse:	equ 8000_0000h
   325                              <2> 
   326                              <2> 
   327                              <2> dif4_int_serial_hooked:	equ 1
   328                              <2> dif4_int_2F_hooked:	equ 2
   329                              <2> dif4_int_08_hooked:	equ 4
   330                              <2> dif4_int_2D_hooked:	equ 8
   331                              <2> %if _CATCHINTFAULTCOND && _CATCHINT0D
   332                              <2> dif4_int_0D_hooked:	equ 10h
   333                              <2> %endif
   334                              <2> %if _CATCHINTFAULTCOND && _CATCHINT0C
   335                              <2> dif4_int_0C_hooked:	equ 20h
   336                              <2> %endif
   337                              <2> %if _LOADER
   338                              <2> dif4_int_18_hooked:	equ 1000h
   339                              <2> dif4_int_19_hooked:	equ 2000h
   340                              <2> %endif
   341                              <2> 
   342                              <2> 
   343                              <2> %if _VXCHG
   344                              <2> dif6_vv_mode:		equ 1
   345                              <2> %endif
   346                              <2> dif6_in_hook2F:		equ 2
   347                              <2> dif6_in_amis_hook2F:	equ 4
   348                              <2> dif6_debug_mode:	equ 100h
   349                              <2> dif6_locked:		equ 200h
   350                              <2> dif6_mcp:		equ 400h
   351                              <2> %if _RH
   352                              <2> dif6_rh_mode_was:	equ  8_0000h
   353                              <2> dif6_rh_mode:		equ 10_0000h
   354                              <2> dif6_rh_mode_2:		equ 20_0000h
   355                              <2> %endif
   356                              <2> dif6_device_mode:	equ 40_0000h
   357                              <2> dif6_cpdepchars:	equ 80_0000h
   358                              <2> %if _IMMASM
   359                              <2> dif6_immasm_no_output:	equ 100_0000h
   360                              <2> dif6_immasm:		equ 200_0000h
   361                              <2> dif6_immasm_rel8:	equ 400_0000h
   362                              <2> %endif
   363                              <2> 
   364                              <2> 
   365                              <2> disasm_lowercase	equ 1
   366                              <2> disasm_commablank	equ 2
   367                              <2> disasm_nasm		equ 4
   368                              <2> disasm_lowercase_refmem:equ 8
   369                              <2> disasm_show_short:	equ 10h
   370                              <2> disasm_show_near:	equ 20h
   371                              <2> disasm_show_far:	equ 40h
   372                              <2> disasm_nec:		equ 80h
   373                              <2> disasm_40_columns:	equ 100h
   374                              <2> disasm_no_indent:	equ 200h
   375                              <2> disasm_msdebug_mnemonofs: equ 400h
   376                              <2> disasm_a16_memref:	equ 1000h
   377                              <2> disasm_a32_memref:	equ 2000h
   378                              <2> disasm_a16_string:	equ 4000h
   379                              <2> disasm_a32_string:	equ 8000h
   380                              <2> disasm_hide_modrm:	equ 10000h
   381                              <2> disasm_asize_loop_nasm:	equ 20000h
   382                              <2> disasm_modrm_always:	equ 40000h
   383                              <2> DEFAULTASMOPTIONS equ disasm_lowercase|disasm_commablank|disasm_nasm 	| disasm_a16_memref | disasm_a32_memref 	| disasm_a16_string | disasm_a32_string
   386                              <2> 
   387                              <2> 	; serial_flags values
   388                              <2> sf_init_done:	equ 1
   389                              <2> sf_ctrl_c:	equ 2
   390                              <2> sf_double_ctrl_c:	equ 4
   391                              <2> sf_built_in_fifo:	equ 8
   392                              <2> sf_use_serial:		equ 10h
  1560                              <1> %endif
    21                                  %endif
    22                                  
    23                                  
    24                                  	numdef LZEXEDAT,	0
    25                                  
    26                                  %if _MESSAGESEGMENT
    27                                   %define usemessagesegment hiddenusesection MESSAGESEGMENT
    28                                  %else
    29                                   %define usemessagesegment hiddenusesection lDEBUG_DATA_ENTRY
    30                                  %endif
    31                                  
    32                                  %define MESSAGE_INLINE 1
    33                                  
    34                                  %if _HELP_EXTERNAL && _HELP_COMPRESSED
    35                                   %imacro helppage 1-2
    36                                    %defstr %%basename %1
    37                                    %if _LZEXEDAT
    38                                     %strcat %%includename %%basename, ".hlz"
    39                                    %else
    40                                     %strcat %%includename %%basename, ".hhs"
    41                                    %endif
    42                                  	align 2, db 0
    43                                  %00:
    44                                  	dw %%end - %%start
    45                                  %%start:
    46                                  	incbin %%includename
    47                                  %%end:
    48                                   %endmacro
    49                                  %elif _HELP_EXTERNAL
    50                                   %imacro helppage 1-2 0
    51                                    %defstr %%basename %1
    52                                    %strcat %%includename %%basename, ".txt"
    53                                  %00:
    54                                  	incbin %%includename
    55                                    %ifn %2
    56                                  	asciz
    57                                    %endif
    58                                   %endmacro
    59                                  %else
    60                                   %imacro helppage 1-2 0
    61                                    %defstr %%basename %1
    62                                    %strcat %%includename "help/", %%basename, ".asm"
    63                                  %00:
    64                                    %include %%includename
    65                                    %ifn %2
    66                                  	asciz
    67                                    %endif
    68                                   %endmacro
    69                                  %endif
    70                                  
    71                                  
    72                                  %if _ELDLINKINFO
    73                                  	usemessagesegment
    73          ------------------       note: usesection MESSAGESEGMENT
    74                                  %include "linkinfo.asm"
     1                              <1> 
     2                              <1> %if 0
     3                              <1> 
     4                              <1> Extensions for lDebug link info
     5                              <1> 
     6                              <1> Copyright (C) 2008-2026 E. C. Masloch
     7                              <1> 
     8                              <1> Usage of the works is permitted provided that this
     9                              <1> instrument is retained with the works, so that any entity
    10                              <1> that uses the works is notified of this instrument.
    11                              <1> 
    12                              <1> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    13                              <1> 
    14                              <1> %endif
    15                              <1> 
    16                              <1> 
    17                              <1> %if _LINKHASH
    18                              <1>  %include "nasmhash.mac"
     1                              <2> 
     2                              <2> %if 0
     3                              <2> 
     4                              <2> Hashing macros
     5                              <2>  by E. C. Masloch, 2019
     6                              <2> 
     7                              <2> Usage of the works is permitted provided that this
     8                              <2> instrument is retained with the works, so that any entity
     9                              <2> that uses the works is notified of this instrument.
    10                              <2> 
    11                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    12                              <2> 
    13                              <2> %endif
    14                              <2> 
    15                              <2> %ifndef __NASMHASH_MAC__
    16                              <2> %assign __NASMHASH_MAC__ 1
    17                              <2> 
    18                              <2> 
    19                              <2> 	%macro hashdef 2+.nolist
    20                              <2> %ifempty %2
    21                              <2>  %assign _%1 1
    22                              <2> %else
    23                              <2> %ifstr %2
    24                              <2>  %define %%string %2
    25                              <2> %elifid %2
    26                              <2>  %defstr %%string %2
    27                              <2> %elifnum %2
    28                              <2>  %defstr %%string %2
    29                              <2> %eliftok %2
    30                              <2>  %defstr %%string %2
    31                              <2> %else
    32                              <2>  %error Unknown input
    33                              <2> %endif
    34                              <2> %strlen %%length %%string
    35                              <2> %assign %%hash 1
    36                              <2> %assign %%index 1
    37                              <2> %rep %%length
    38                              <2>  %substr %%char %%string %%index
    39                              <2>  %assign %%hash (%%hash * 31 + %%char) & 0FFFFh
    40                              <2>  %assign %%index %%index + 1
    41                              <2> %endrep
    42                              <2> %assign _%1 %%hash
    43                              <2> %endif
    44                              <2> 	%endmacro
    45                              <2> 
    46                              <2> 
    47                              <2> %endif
    19                              <1> %endif
    20                              <1> 
    21                              <1> %define LINKINFO_DATA_PREFIXES ""
    22                              <1> %define LINKINFO_DATA_ENTRIES ""
    23                              <1> %define LINKINFO_DATA_ADDRESSES ""
    24                              <1> %define LINKINFO_DATA_MESSAGES db ""
    25                              <1> %assign LINKINFO_DATA_AMOUNT 0
    26                              <1> 
    27                              <1> %imacro linkinfo_data 1-*.nolist
    28                              <1> %rep %0
    29                              <1> 	linkinfo_data_as %1, %1
    30                              <1>   %rotate 1
    31                              <1> %endrep
    32                              <1> %endmacro
    33                              <1> 
    34                              <1> %imacro linkinfo_data_as 2.nolist
    35                              <1>  %push
    36                              <1>   %ifstr %1
    37                              <1>    %xdefine %$string %1
    38                              <1>    %define %$token %%token
    39                              <1>   %else
    40                              <1>    %defstr %$string %1
    41                              <1>    %xdefine %$token %1
    42                              <1>   %endif
    43                              <1>   %ifn _LINKHASH
    44                              <1>    %substr %$prefix %$string 1, 2
    45                              <1>    %substr %$suffix %$string 3, -1
    46                              <1>    %strlen %$length %$string
    47                              <1>    %if %$length < 2
    48                              <1>     %fatal Too short link info data name
    49                              <1>    %endif
    50                              <1>    %if %$length > 63 + 2
    51                              <1>     %fatal Too long link info data name
    52                              <1>    %endif
    53                              <1>    %xdefine LINKINFO_DATA_PREFIXES LINKINFO_DATA_PREFIXES, %$prefix
    54                              <1>    %xdefine LINKINFO_DATA_ENTRIES LINKINFO_DATA_ENTRIES, %%message_%[%$token]
    55                              <1>    %xdefine LINKINFO_DATA_ADDRESSES LINKINFO_DATA_ADDRESSES, %2
    56                              <1>    %xdefine LINKINFO_DATA_MESSAGES LINKINFO_DATA_MESSAGES, %%message_%[%$token]:, {counted %$suffix}
    57                              <1>   %else
    58                              <1>    %xdefine %$suffix %$string
    59                              <1> hashdef HASH, %$string
    60                              <1>    %strlen %$length %$string
    61                              <1>    %if %$length > 63 + 2
    62                              <1>     %fatal Too long link info data name
    63                              <1>    %endif
    64                              <1>    %xdefine LINKINFO_DATA_PREFIXES LINKINFO_DATA_PREFIXES, _HASH
    65                              <1>    %xdefine LINKINFO_DATA_ENTRIES LINKINFO_DATA_ENTRIES, %%message_%[%$token]
    66                              <1>    %xdefine LINKINFO_DATA_ADDRESSES LINKINFO_DATA_ADDRESSES, %2
    67                              <1>    %xdefine LINKINFO_DATA_MESSAGES LINKINFO_DATA_MESSAGES, %%message_%[%$token]:, {counted %$suffix}
    68                              <1>   %endif
    69                              <1>   %assign LINKINFO_DATA_AMOUNT LINKINFO_DATA_AMOUNT + 1
    70                              <1>   %rotate 1
    71                              <1>  %pop
    72                              <1> %endmacro
    73                              <1> 
    74                              <1> 
    75                              <1> %define LINKINFO_CODE_PREFIXES ""
    76                              <1> %define LINKINFO_CODE_ENTRIES ""
    77                              <1> %define LINKINFO_CODE_ADDRESSES ""
    78                              <1> %define LINKINFO_CODE_MESSAGES db ""
    79                              <1> %assign LINKINFO_CODE_AMOUNT 0
    80                              <1> 
    81                              <1> %imacro linkinfo_code 1-*.nolist
    82                              <1> %rep %0
    83                              <1> 	linkinfo_code_as %1, %1
    84                              <1>   %rotate 1
    85                              <1> %endrep
    86                              <1> %endmacro
    87                              <1> 
    88                              <1> %imacro linkinfo_code_as 2.nolist
    89                              <1>  %push
    90                              <1>   %if LINKINFO_CODE_SEGMENT == 0
    91                              <1>    %define %$section lDEBUG_CODE
    92                              <1>   %elif LINKINFO_CODE_SEGMENT == 1
    93                              <1>    %define %$section lDEBUG_CODE2
    94                              <1>   %elif LINKINFO_CODE_SEGMENT == 2
    95                              <1>    %define %$section lDEBUG_DATA_ENTRY
    96                              <1>   %else
    97                              <1>    %fatal Unknown link info code section
    98                              <1>   %endif
    99                              <1>   %ifndef SECTION_OF_%2
   100                              <1>    %error No section specified for link symbol %1
   101                              <1>   %elifnidni SECTION_OF_%2, %$section
   102                              <1>    %error Wrong section for link symbol %1: section_of=SECTION_OF_%1, current=%$section
   103                              <1>   %endif
   104                              <1>   %ifstr %1
   105                              <1>    %xdefine %$string %1
   106                              <1>    %define %$token %%token
   107                              <1>   %else
   108                              <1>    %defstr %$string %1
   109                              <1>    %xdefine %$token %1
   110                              <1>   %endif
   111                              <1>   %ifn _LINKHASH
   112                              <1>    %substr %$prefix %$string 1, 2
   113                              <1>    %substr %$suffix %$string 3, -1
   114                              <1>    %strlen %$length %$string
   115                              <1>    %if %$length < 2
   116                              <1>     %fatal Too short link info code name
   117                              <1>    %endif
   118                              <1>    %if %$length > 63 + 2
   119                              <1>     %fatal Too long link info code name
   120                              <1>    %endif
   121                              <1>    %xdefine LINKINFO_CODE_PREFIXES LINKINFO_CODE_PREFIXES, %$prefix
   122                              <1>    %xdefine LINKINFO_CODE_ENTRIES LINKINFO_CODE_ENTRIES, %%message_%[%$token]
   123                              <1>    %xdefine LINKINFO_CODE_ADDRESSES LINKINFO_CODE_ADDRESSES, %2, LINKINFO_CODE_SEGMENT
   124                              <1>    %xdefine LINKINFO_CODE_MESSAGES LINKINFO_CODE_MESSAGES, %%message_%[%$token]:, {counted %$suffix}
   125                              <1>   %else
   126                              <1>    %xdefine %$suffix %$string
   127                              <1> hashdef HASH, %$string
   128                              <1>    %strlen %$length %$string
   129                              <1>    %if %$length > 63 + 2
   130                              <1>     %fatal Too long link info code name
   131                              <1>    %endif
   132                              <1>    %xdefine LINKINFO_CODE_PREFIXES LINKINFO_CODE_PREFIXES, _HASH
   133                              <1>    %xdefine LINKINFO_CODE_ENTRIES LINKINFO_CODE_ENTRIES, %%message_%[%$token]
   134                              <1>    %xdefine LINKINFO_CODE_ADDRESSES LINKINFO_CODE_ADDRESSES, %2, LINKINFO_CODE_SEGMENT
   135                              <1>    %xdefine LINKINFO_CODE_MESSAGES LINKINFO_CODE_MESSAGES, %%message_%[%$token]:, {counted %$suffix}
   136                              <1>   %endif
   137                              <1>   %assign LINKINFO_CODE_AMOUNT LINKINFO_CODE_AMOUNT + 1
   138                              <1>  %pop
   139                              <1> %endmacro
   140                              <1> 
   141                              <1> 
   142                              <1> %imacro dump_linkinfo_messages 1-*.nolist
   143                              <1>  %rep %0
   144                              <1> 	%1
   145                              <1>   %rotate 1
   146                              <1>  %endrep
   147                              <1> %endmacro
   148                              <1> 
   149                              <1> 
   150                              <1> %if _MESSAGESEGMENT
   151                              <1>  %if _PM
   152                              <1> linksel equ messagesel
   153                              <1>  %else
   154                              <1> linksel equ linkseg
   155                              <1>  %endif
   156                              <1> linkseg equ messageseg
   157                              <1> %else
   158                              <1>  %if _PM
   159                              <1> linksel equ dssel
   160                              <1>  %else
   161                              <1> linksel equ linkseg
   162                              <1>  %endif
   163                              <1> linkseg equ pspdbg
   164                              <1> %endif
   165                              <1> 
   166                              <1> linkinfo_data linksel
   167                              <1> linkinfo_data linkseg
   168                              <1> linkinfo_data linkinfoaddress
   169                              <1> linkinfo_data linkcall_table
   170                              <1> linkinfo_data extseg, extcssel, extdssel, extseg_size, extseg_used
   171                              <1> linkinfo_data extdata, extdata_size, extdata_used
   172                              <1> linkinfo_data pspdbg
   173                              <1> %if !_LOADER
   174                              <1> linkinfo_data pspdbe
   175                              <1> %endif
   176                              <1> %ifn _LINK
   177                              <1>  %ifn _PM
   178                              <1> dssel equ pspdbg
   179                              <1>  %endif
   180                              <1> %endif
   181                              <1> linkinfo_data dssel
   182                              <1> %if _PM
   183                              <1> linkinfo_data cssel
   184                              <1> %if !_LOADER
   185                              <1> linkinfo_data code_sel
   186                              <1>  %if _DUALCODE
   187                              <1> linkinfo_data code2_sel
   188                              <1>  %endif
   189                              <1> %else
   190                              <1> linkinfo_data_as code_movable_sel, code_sel
   191                              <1>  %if _DUALCODE
   192                              <1> linkinfo_data_as code2_movable_sel, code2_sel
   193                              <1>  %endif
   194                              <1> %endif
   195                              <1>  %if _MESSAGESEGMENT
   196                              <1> linkinfo_data messagesel
   197                              <1>  %endif
   198                              <1> %endif
   199                              <1> linkinfo_data internalflags
   200                              <1> linkinfo_data internalflags2
   201                              <1> linkinfo_data internalflags3
   202                              <1> linkinfo_data internalflags4
   203                              <1> linkinfo_data internalflags5
   204                              <1> linkinfo_data internalflags6
   205                              <1> linkinfo_data internalflags7
   206                              <1> linkinfo_data options
   207                              <1> linkinfo_data options2
   208                              <1> linkinfo_data options3
   209                              <1> linkinfo_data options4
   210                              <1> linkinfo_data options5
   211                              <1> linkinfo_data options6
   212                              <1> linkinfo_data options7
   213                              <1> linkinfo_data lastcmd
   214                              <1> linkinfo_data line_in, line_in.end, line_out, line_out_end
   215                              <1> %if !_LOADER
   216                              <1> linkinfo_data auxbuff_segorsel
   217                              <1> linkinfo_data auxbuff_current_size, auxbuff_current_size_minus_24
   218                              <1> %else
   219                              <1> linkinfo_data_as auxbuff_movable_segorsel, auxbuff_segorsel
   220                              <1> linkinfo_data_as auxbuff_movable_current_size, auxbuff_current_size
   221                              <1> linkinfo_data_as auxbuff_movable_current_size_minus_24, auxbuff_current_size_minus_24
   222                              <1> %endif
   223                              <1> %if !_LOADER
   224                              <1> linkinfo_data firstmcb, firstumcb
   225                              <1> %endif
   226                              <1> linkinfo_data msg.install, msg.uninstall, msg.run
   227                              <1> linkinfo_data entryseg_size
   228                              <1> %if _MESSAGESEGMENT
   229                              <1> linkinfo_data messageseg, messageseg_size
   230                              <1> %endif
   231                              <1> %if !_LOADER
   232                              <1> linkinfo_data code_seg, code_size
   233                              <1> %if _DUALCODE
   234                              <1> linkinfo_data code2_seg, code2_size
   235                              <1> %endif
   236                              <1> %else
   237                              <1> linkinfo_data_as code_movable_seg, code_seg
   238                              <1> linkinfo_data_as code_movable_size, code_size
   239                              <1> %if _DUALCODE
   240                              <1> linkinfo_data_as code2_movable_seg, code2_seg
   241                              <1> linkinfo_data_as code2_movable_size, code2_size
   242                              <1> %endif
   243                              <1> %endif
   244                              <1> %if !_LOADER
   245                              <1> linkinfo_data auxbuff_segment, auxbuff_current_size
   246                              <1> %else
   247                              <1> linkinfo_data_as auxbuff_movable_segment, auxbuff_segment
   248                              <1> linkinfo_data_as auxbuff_movable_current_size, auxbuff_current_size
   249                              <1> %endif
   250                              <1>  %if _HISTORY_SEPARATE_FIXED && _HISTORY
   251                              <1> linkinfo_data history_segment, historyseg_size
   252                              <1>  %endif
   253                              <1> %if _PM
   254                              <1> auxbuff_segment equ auxbuff_segorsel + soaSegment
   255                              <1>  %if _HISTORY_SEPARATE_FIXED && _HISTORY
   256                              <1> history_segment equ history.segorsel + soaSegment
   257                              <1>  %endif
   258                              <1> %else
   259                              <1> auxbuff_segment equ auxbuff_segorsel
   260                              <1>  %if _HISTORY_SEPARATE_FIXED && _HISTORY
   261                              <1> history_segment equ history.segorsel
   262                              <1>  %endif
   263                              <1> %endif
   264                              <1> %if _APP_ENV_SIZE || _DEV_ENV_SIZE || _BOOT_ENV_SIZE
   265                              <1> linkinfo_data envseg, env_size
   266                              <1> %endif
   267                              <1> linkinfo_data alloc_seg, alloc_size
   268                              <1> %if !_LOADER
   269                              <1> linkinfo_data next_reserved_segment, alloc_size_not_reserved, reserved_address
   270                              <1> %endif
   271                              <1> %if _HISTORY
   272                              <1>  %if _HISTORY_SEPARATE_FIXED
   273                              <1> historyformat equ 2
   274                              <1> linkinfo_data history.segorsel
   275                              <1>  %else
   276                              <1> historyformat equ 1
   277                              <1> linkinfo_data historybuffer
   278                              <1> linkinfo_data historybuffer.end
   279                              <1>  %endif
   280                              <1> linkinfo_data history.first
   281                              <1> linkinfo_data history.last
   282                              <1> %else
   283                              <1> historyformat equ 0
   284                              <1> %endif
   285                              <1> linkinfo_data historyformat
   286                              <1> linkinfo_data stack, stack_end
   287                              <1> linkinfo_data ext_command_handler, ext_inject_handler, savesp, throwsp
   288                              <1> linkinfo_data ext_preprocess_handler, ext_puts_handler
   289                              <1> linkinfo_data ext_puts_copyoutput_handler
   290                              <1> %if _EXT_PUTS_GETLINE
   291                              <1> linkinfo_data ext_puts_getline_handler
   292                              <1> %endif
   293                              <1> %if !_LOADER
   294                              <1> linkinfo_data ext_aa_before_getline_handler
   295                              <1> linkinfo_data ext_aa_inject_handler
   296                              <1> linkinfo_data ext_aa_after_getline_handler
   297                              <1> %endif
   298                              <1> %if _CATCHINT2D
   299                              <1> linkinfo_data ext_amis_handler
   300                              <1> linkinfo_data amis_multiplex_number
   301                              <1> %endif
   302                              <1> linkinfo_data try_debugger_amis_multiplex_number
   303                              <1> linkinfo_data msg.in, lastcmd
   304                              <1> %if !_LOADER
   305                              <1> linkinfo_data firstmcb, firstumcb
   306                              <1> %endif
   307                              <1> linkinfo_data dpmi32
   308                              <1> linkinfo_data lastcmd_transfer_ext_address
   309                              <1> linkinfo_data lastcmd_transfer_ext_entry	; (not actually data but need it)
   310                              <1> linkinfo_data dmycmd				; (not actually data but need it)
   311                              <1> linkinfo_data has_87
   312                              <1> %if _MMXSUPP
   313                              <1> linkinfo_data has_mmx
   314                              <1> %endif
   315                              <1> linkinfo_data installflags, installformat
   316                              <1> linkinfo_data reg_eax, reg_ecx, reg_edx, reg_ebx, reg_esp, reg_ebp
   317                              <1> linkinfo_data reg_esi, reg_edi, reg_efl, reg_eip, reg_cs, reg_ds
   318                              <1> linkinfo_data reg_ss, reg_es, reg_fs, reg_gs
   319                              <1> linkinfo_data msg.not, msg.then
   320                              <1> %if _EXTENSIONS && _EXT_VARIABLES
   321                              <1> linkinfo_data ext_var, ext_var_amount, ext_var_format, ext_var_size
   322                              <1> linkinfo_data isvariable_morebyte_nameheaders.ext
   323                              <1> linkinfo_data var_ext_setup			; (not actually data)
   324                              <1> %endif
   325                              <1> linkinfo_data ext_handle
   326                              <1> linkinfo_data near_transfer_ext_entry		; not actually data
   327                              <1> linkinfo_data near_transfer_ext_address
   328                              <1> %if _BOOTLDR
   329                              <1> linkinfo_data load_data_lowest, load_data
   330                              <1> linkinfo_data load_yyname_input
   331                              <1> linkinfo_data handle_scan_dir_entry, handle_scan_dir_not_found
   332                              <1> linkinfo_data ..@boot_scan_dir_return_filenotfound		; not actually data
   333                              <1> linkinfo_data ..@boot_scan_dir_return_subdir_or_fat32_entry	; not actually data
   334                              <1> linkinfo_data ..@boot_scan_dir_return_fat16_root_entry		; not actually data
   335                              <1> linkinfo_data scan_dir_entry			; not actually data
   336                              <1> linkinfo_data load_check_dir_attr
   337                              <1> linkinfo_data load_yyname_next
   338                              <1> linkinfo_data load_yy_direntry
   339                              <1> linkinfo_data load_kernel_name
   340                              <1> linkinfo_data load_adr_dirbuf_segment
   341                              <1> %endif
   342                              <1> %if !_LOADER
   343                              <1> linkinfo_data execblk.cmdline
   344                              <1> %endif
   345                              <1> %if _CONFIG
   346                              <1> linkinfo_data configpath, configpath.dir_end
   347                              <1> linkinfo_data scriptspath, scriptspath.dir_end
   348                              <1> %endif
   349                              <1> build_option_PM equ !!_PM
   350                              <1> linkinfo_data build_option_PM
   351                              <1> linkinfo_data cmd3, cmd3_not_ext, puts_ext_done, puts_ext_next
   352                              <1> linkinfo_data puts_copyoutput_ext_done
   353                              <1> %if _EXT_PUTS_GETLINE
   354                              <1> linkinfo_data puts_getline_ext_done
   355                              <1> linkinfo_data in_getinput
   356                              <1> %endif
   357                              <1> linkinfo_data cmd3_preprocessed, cmd3_not_inject, cmd3_injected
   358                              <1> %if !_LOADER
   359                              <1> linkinfo_data aa_not_inject, aa_injected
   360                              <1> linkinfo_data aa_before_getline, aa_after_getline
   361                              <1> %endif
   362                              <1> linkinfo_data while_buffer, while_buffer.end, swch1
   363                              <1> linkinfo_data_as internalflags_with_tt_while, internalflags
   364                              <1> linkinfo_data yy_is_script
   365                              <1> linkinfo_data terminator_in_line_in.offset
   366                              <1> linkinfo_data terminator_in_line_in.value
   367                              <1> linkinfo_data ext_finish.bp_is_set
   368                              <1> linkinfo_data vregs, vregs.amount
   369                              <1> %if _DT
   370                              <1> linkinfo_data asciitablenames
   371                              <1> %endif
   372                              <1> linkinfo_data pm_2_86m_0
   373                              <1> %if _BOOTLDR
   374                              <1> linkinfo_data load_unit_flags
   375                              <1> %endif
   376                              <1> %if !_LOADER
   377                              <1> linkinfo_data sss_silent_count_used, sss_silent_count, search_results, sscounter
   378                              <1> linkinfo_data search_results_amount
   379                              <1> %endif
   380                              <1> linkinfo_data patcharea_run, patcharea_run.size, patcharea_run.segment
   381                              <1> %if !_LOADER
   382                              <1> linkinfo_data patcharea_intrtn, patcharea_intrtn.size, patcharea_intrtn.segment
   383                              <1> %endif
   384                              <1> %if _PM
   385                              <1> linkinfo_data patcharea_pm_exc, patcharea_pm_exc.size, patcharea_pm_exc.segment
   386                              <1> %endif
   387                              <1> linkinfo_data promptlen
   388                              <1> linkinfo_data indirect_array_errfix
   389                              <1> linkinfo_data priorrc, rc
   390                              <1> %if _BOOTLDR
   391                              <1> linkinfo_data boot_init_foundname
   392                              <1> %endif
   393                              <1> %if _DEVICE
   394                              <1> linkinfo_data device_quittable_regs, device_header_address
   395                              <1> %endif
   396                              <1> %if _EXECUTABLE
   397                              <1> linkinfo_data init_executable_pathname, init_executable_pathname.end
   398                              <1> %endif
   399                              <1> ;linkinfo_data 
   400                              <1> 
   401                              <1> 
   402                              <1> %assign LINKINFO_CODE_SEGMENT 0		; CODE1
   403                              <1> linkinfo_code puts, putsz, putc, putsline, putsline_crlf, trimputs
   404                              <1> linkinfo_code skipcomma, skipcomm0, skipwhite, skipwh0
   405                              <1> linkinfo_code isstring?, capitalise, chkeol, iseol?, iseol?.notsemicolon
   406                              <1> linkinfo_code_as "uppercase", capitalise
   407                              <1> linkinfo_code guard_auxbuff, guard_re, prephack, dohack, unhack
   408                              <1> linkinfo_code handle_serial_flags_ctrl_c
   409                              <1> linkinfo_code hexnyb, hexbyte, hexword, hexword_high, decword, decdword
   410                              <1> linkinfo_code dec_dword_minwidth
   411                              <1> linkinfo_code ispm, setes2dx, call_int2D
   412                              <1> linkinfo_code copy_single_counted_string
   413                              <1> linkinfo_code intchk
   414                              <1> linkinfo_code IsIISPEntry?
   415                              <1> linkinfo_code disp_dxax_times_cx_width_bx_size.store
   416                              <1> linkinfo_code cmd3, cmd3_not_ext, puts_ext_done, puts_ext_next
   417                              <1> linkinfo_code puts_copyoutput_ext_done
   418                              <1> %if _EXT_PUTS_GETLINE
   419                              <1> linkinfo_code puts_getline_ext_done
   420                              <1> %endif
   421                              <1> linkinfo_code cmd3_preprocessed, cmd3_not_inject, cmd3_injected
   422                              <1> linkinfo_code error
   423                              <1> linkinfo_code setds2si, setds2bx
   424                              <1> %if _PM
   425                              <1> linkinfo_code intcall_ext_return_es
   426                              <1> %endif
   427                              <1> linkinfo_code dd_store
   428                              <1> linkinfo_code InDOS, _doscall
   429                              <1> %if !_LOADER
   430                              <1> linkinfo_code yy_dos_parse_name
   431                              <1> %endif
   432                              <1> linkinfo_code yy_open_file, yy_check_lfn
   433                              <1> linkinfo_code yy_common_parse_name
   434                              <1> linkinfo_code yy_common_parse_name_bx_buffer
   435                              <1> linkinfo_code retry_open_scriptspath
   436                              <1> linkinfo_code near_transfer_ext_return
   437                              <1> %if _BOOTLDR
   438                              <1> linkinfo_code yy_boot_read.bx, yy_boot_seek_start.bx, yy_boot_seek_current.bx
   439                              <1> linkinfo_code_as yy_boot_parse_name2, yy_boot_parse_name
   440                              <1> linkinfo_code yy_boot_parse_name_bx_buffer
   441                              <1> linkinfo_code_as yy_boot_open_file2, yy_boot_open_file
   442                              <1> linkinfo_code scan_dir_aux, read_sector
   443                              <1> linkinfo_code_as yy_boot_init_dir2, yy_boot_init_dir
   444                              <1> linkinfo_code got_yyentry, scan_dir_entry
   445                              <1> linkinfo_code ..@yy_filename_empty
   446                              <1> linkinfo_code boot_parse_fn
   447                              <1> linkinfo_code init_bootcmd
   448                              <1> %endif
   449                              <1> linkinfo_code close_ext
   450                              <1> linkinfo_code yy_reset_buf
   451                              <1> %if !_LOADER
   452                              <1> linkinfo_code aa_not_inject, aa_injected
   453                              <1> linkinfo_code aa_before_getline, aa_after_getline
   454                              <1> %endif
   455                              <1> linkinfo_code doscall_extseg
   456                              <1> linkinfo_code test_d_b_bit, test_high_limit
   457                              <1> linkinfo_code setrc
   458                              <1> linkinfo_code skipequals
   459                              <1> %if !_LOADER
   460                              <1> %if _COUNT || _SCOUNT
   461                              <1> linkinfo_code count_store
   462                              <1> %endif
   463                              <1> %endif
   464                              <1> linkinfo_code hexdword
   465                              <1> %if _LOADER
   466                              <1> linkinfo_code loader_get_resident_address, loader_prepare_resident
   467                              <1> %endif
   468                              <1> linkinfo_code verifysegm_or_error, verifysegm
   469                              <1> ;linkinfo_code 
   470                              <1> 
   471                              <1> %if _DUALCODE && _EXPRDUALCODE
   472                              <1>  %assign LINKINFO_CODE_SEGMENT 1	; CODE2
   473                              <1> %else
   474                              <1>  %assign LINKINFO_CODE_SEGMENT 0	; CODE1
   475                              <1> %endif
   476                              <1> linkinfo_code isvariable?, isseparator?, get_value_range
   477                              <1> linkinfo_code getexpression, getdword, getword, getbyte
   478                              <1> linkinfo_code getaddr, getaddrX, getrange, getrangeX
   479                              <1> linkinfo_code get_length_keyword, getnyb
   480                              <1> linkinfo_code isoperator?, ..@call_operator_dispatchers
   481                              <1> %if _EXTENSIONS && _EXT_VARIABLES
   482                              <1> linkinfo_code var_ext_setup_done
   483                              <1> %endif
   484                              <1> linkinfo_code getstr
   485                              <1> ;linkinfo_code 
   486                              <1> 
   487                              <1> 
   488                              <1>  %assign LINKINFO_CODE_SEGMENT 2	; ENTRY
   489                              <1> linkinfo_code entry_retn
   490                              <1> ;linkinfo_code 
   491                              <1> 
   492                              <1> 
   493                              <1> 	align 4, db 0
   494                              <1> linkinfo:
   495                              <1> 	istruc ELD_LINKINFO
   496 00000000 D1E1                <1> at eldlSignature,	dw 0E1D1h
   497 00000002 00000000            <1> at eldlReserved,	dw 0, 0
   498 00000006 0100                <1> at eldlUseLinkHash,	dw !!_LINKHASH
   499 00000008 C100                <1> at eldlDataAmount,	dw LINKINFO_DATA_AMOUNT
   500 0000000A [1800]              <1> at eldlDataPrefixes,	dw linkinfo_data_table_prefixes
   501 0000000C [9A01]              <1> at eldlDataEntries,	dw linkinfo_data_table_entries
   502 0000000E [1C03]              <1> at eldlDataAddresses,	dw linkinfo_data_table_addresses
   503 00000010 6A00                <1> at eldlCodeAmount,	dw LINKINFO_CODE_AMOUNT
   504 00000012 [9E04]              <1> at eldlCodePrefixes,	dw linkinfo_code_table_prefixes
   505 00000014 [7205]              <1> at eldlCodeEntries,	dw linkinfo_code_table_entries
   506 00000016 [4606]              <1> at eldlCodeAddresses,	dw linkinfo_code_table_addresses
   507                              <1> 	iend
   508                              <1> 
   509                              <1> 
   510                              <1> 	align 2, db 0
   511                              <1> linkinfo_data_table_prefixes:
   512 00000018 FF7EFA7E2B856844D5- <1> .:	repeatdw LINKINFO_DATA_PREFIXES
   512 00000021 2D6A2BEB422BC8E7D3- <1>
   512 0000002A 2AAEF634B240FDFCFB- <1>
   512 00000033 FC0A0A89F2094A1FF2- <1>
   512 0000003C B49D899FC951CA51CB- <1>
   512 00000045 51CC51CD51CE517DB3- <1>
   512 0000004E 55BC56BC57BC58BC59- <1>
   512 00000057 BC5ABCC30B2F7A9C3C- <1>
   512 00000060 84E3A0398B00B0B220- <1>
   512 00000069 71DD03C6408D715440- <1>
   512 00000072 7DCFBC89AF9D913004- <1>
   512 0000007B 4A32081AF2DC62EAE5- <1>
   512 00000084 B0B267341E38892B14- <1>
   512 0000008D 0B6A5D8C61879FE77A- <1>
   512 00000096 DE037D4275AE31AA2A- <1>
   512 0000009F E7279BC36797B63B26- <1>
   512 000000A8 DB9FA2C09648AE24DD- <1>
   512 000000B1 30B9E195559C6CF235- <1>
   512 000000BA C001688CF09EF391C3- <1>
   512 000000C3 0BDD03C640C83E7EC0- <1>
   512 000000CC 7CC76B5D05D692B84D- <1>
   512 000000D5 18F10610324E326D32- <1>
   512 000000DE 2F32363427322F345E- <1>
   512 000000E7 329F3200333C3B5B3B- <1>
   512 000000F0 2C3D7A3B993BB83BC5- <1>
   512 000000F9 BF6BD7E8B48FC32E6B- <1>
   512 00000102 F8B4C4E26651C71CD6- <1>
   512 0000010B ED58B80F0882740EB5- <1>
   512 00000114 94C038D274B9384B9F- <1>
   512 0000011D 213F8592AA2F756C52- <1>
   512 00000126 75DD227F4F71282963- <1>
   512 0000012F BF8C8EC7805503BABD- <1>
   512 00000138 30CD1AB78B1ECF3F6F- <1>
   512 00000141 9D6DB1702A2258D5DA- <1>
   512 0000014A 9BF78E04A81B09B98F- <1>
   512 00000153 03FC152700D569A225- <1>
   512 0000015C F466F03E2229740812- <1>
   512 00000165 432A285265E47A8AF2- <1>
   512 0000016E 5235A08ABBCCD78EC0- <1>
   512 00000177 CD6FE305BDC88C6749- <1>
   512 00000180 0DF479A556F7BECB50- <1>
   512 00000189 8F26EB5A63F211EA53- <1>
   512 00000192 67A7EA1BD73B44EA    <1>
   513                              <1> .amount equ ($ - .) / 2
   514                              <1> %if .amount != LINKINFO_DATA_AMOUNT
   515                              <1>  %error Unexpected table size
   516                              <1> %endif
   517                              <1> 
   518                              <1> 	align 2, db 0
   519                              <1> linkinfo_data_table_entries:
   520 0000019A [EE07][F607][FE07]- <1> .:	repeatdw LINKINFO_DATA_ENTRIES
   520 000001A0 [0E08][1D08][2408]- <1>
   520 000001A6 [2D08][3608][4208]- <1>
   520 000001AC [4E08][5608][6308]- <1>
   520 000001B2 [7008][7708][7E08]- <1>
   520 000001B8 [8408][8A08][9308]- <1>
   520 000001BE [9D08][A808][B608]- <1>
   520 000001C4 [C508][D408][E308]- <1>
   520 000001CA [F208][0109][1009]- <1>
   520 000001D0 [1809][2109][2A09]- <1>
   520 000001D6 [3309][3C09][4509]- <1>
   520 000001DC [4E09][5609][5E09]- <1>
   520 000001E2 [6A09][7309][8009]- <1>
   520 000001E8 [9109][A609][C409]- <1>
   520 000001EE [CD09][D709][E309]- <1>
   520 000001F4 [F109][F909][070A]- <1>
   520 000001FA [120A][220A][2B0A]- <1>
   520 00000200 [350A][3F0A][4A0A]- <1>
   520 00000206 [5A0A][6F0A][7F0A]- <1>
   520 0000020C [8F0A][960A][9F0A]- <1>
   520 00000212 [A90A][B40A][CA0A]- <1>
   520 00000218 [E20A][F30A][040B]- <1>
   520 0000021E [120B][1F0B][2D0B]- <1>
   520 00000224 [330B][3D0B][510B]- <1>
   520 0000022A [640B][6B0B][730B]- <1>
   520 00000230 [8A0B][9B0B][B70B]- <1>
   520 00000236 [D00B][EE0B][040C]- <1>
   520 0000023C [210C][320C][480C]- <1>
   520 00000242 [6B0C][720C][7A0C]- <1>
   520 00000248 [830C][8D0C][940C]- <1>
   520 0000024E [B10C][CC0C][D30C]- <1>
   520 00000254 [DA0C][E20C][EF0C]- <1>
   520 0000025A [FD0C][050D][0D0D]- <1>
   520 00000260 [150D][1D0D][250D]- <1>
   520 00000266 [2D0D][350D][3D0D]- <1>
   520 0000026C [450D][4D0D][540D]- <1>
   520 00000272 [5B0D][620D][690D]- <1>
   520 00000278 [700D][770D][7F0D]- <1>
   520 0000027E [880D][900D][9F0D]- <1>
   520 00000284 [AE0D][BB0D][DF0D]- <1>
   520 0000028A [ED0D][F80D][100E]- <1>
   520 00000290 [2A0E][3B0E][450E]- <1>
   520 00000296 [570E][6D0E][870E]- <1>
   520 0000029C [AC0E][DA0E][030F]- <1>
   520 000002A2 [120F][260F][370F]- <1>
   520 000002A8 [480F][590F][710F]- <1>
   520 000002AE [810F][8C0F][9F0F]- <1>
   520 000002B4 [AB0F][BF0F][CF0F]- <1>
   520 000002BA [D40F][E10F][EF0F]- <1>
   520 000002C0 [FD0F][1610][2C10]- <1>
   520 000002C6 [3810][4A10][5A10]- <1>
   520 000002CC [6810][7610][8210]- <1>
   520 000002D2 [9410][A510][B210]- <1>
   520 000002D8 [C310][C910][E510]- <1>
   520 000002DE [F210][0F11][2B11]- <1>
   520 000002E4 [4011][4611][5311]- <1>
   520 000002EA [6311][6E11][7E11]- <1>
   520 000002F0 [9411][A511][B411]- <1>
   520 000002F6 [BE11][D411][E211]- <1>
   520 000002FC [F511][0B12][1C12]- <1>
   520 00000302 [3212][4B12][5C12]- <1>
   520 00000308 [7212][8B12][9512]- <1>
   520 0000030E [AB12][B312][B612]- <1>
   520 00000314 [CA12][E012][F612]- <1>
   520 0000031A [0F13]              <1>
   521                              <1> .amount equ ($ - .) / 2
   522                              <1> %if .amount != LINKINFO_DATA_AMOUNT
   523                              <1>  %error Unexpected table size
   524                              <1> %endif
   525                              <1> 
   526                              <1> 	align 2, db 0
   527                              <1> linkinfo_data_table_addresses:
   528 0000031C [0000][0000][0000]- <1> .:	repeatdw LINKINFO_DATA_ADDRESSES
   528 00000322 [0000][0000][0000]- <1>
   528 00000328 [0000][0000][0000]- <1>
   528 0000032E [0000][0000][0000]- <1>
   528 00000334 [0000][0000][0000]- <1>
   528 0000033A [0000][0000][0000]- <1>
   528 00000340 [0000][0000][0000]- <1>
   528 00000346 [0000][0000][0000]- <1>
   528 0000034C [0000][0000][0000]- <1>
   528 00000352 [0000][0000][0000]- <1>
   528 00000358 [0000][0000][0000]- <1>
   528 0000035E [0000][0000][0000]- <1>
   528 00000364 [0000][0000][0000]- <1>
   528 0000036A [0000][0000][0000]- <1>
   528 00000370 [0000][3A09][3809]- <1>
   528 00000376 [1000][0000][0000]- <1>
   528 0000037C [0000][0000][0000]- <1>
   528 00000382 [0000][0000][0200]- <1>
   528 00000388 [0000][0200][0000]- <1>
   528 0000038E [0000][0000][0000]- <1>
   528 00000394 [0000][0000][0000]- <1>
   528 0000039A [0000][0000][0000]- <1>
   528 000003A0 [0000]0200[0000]-   <1>
   528 000003A6 [0000][0000][0000]- <1>
   528 000003AC [0000][0000][0000]- <1>
   528 000003B2 [0000][0000][0000]- <1>
   528 000003B8 [0000][0000][0000]- <1>
   528 000003BE [0000][0000][0000]- <1>
   528 000003C4 [5D11][0000][0000]- <1>
   528 000003CA [0000][0000][0000]- <1>
   528 000003D0 [0000][0000][0000]- <1>
   528 000003D6 [0000][D020]0100-   <1>
   528 000003DC [0000][0000][0000]- <1>
   528 000003E2 [0000][0000][0000]- <1>
   528 000003E8 [0000][0000][0000]- <1>
   528 000003EE [0000][0000][0000]- <1>
   528 000003F4 [0000][0000][0000]- <1>
   528 000003FA [0000][0E0B][090B]- <1>
   528 00000400 [0000][0000][0000]- <1>
   528 00000406 [0000][0000][0000]- <1>
   528 0000040C [0000][0000][0000]- <1>
   528 00000412 [0000][0000][0000]- <1>
   528 00000418 [0000][0000][0000]- <1>
   528 0000041E [0000][0000][0000]- <1>
   528 00000424 [0000][0000][0000]- <1>
   528 0000042A [0000][0000][0000]- <1>
   528 00000430 [0000][0000][0000]- <1>
   528 00000436 [0000]0100[0000]-   <1>
   528 0000043C [0000][0000][0000]- <1>
   528 00000442 [0000][0000][0000]- <1>
   528 00000448 [0000][0000][0000]- <1>
   528 0000044E [0000][0000][0000]- <1>
   528 00000454 [0000][0000][0000]- <1>
   528 0000045A [0000][0000][0000]- <1>
   528 00000460 [0000][0000][0000]- <1>
   528 00000466 [0000][0000][0000]- <1>
   528 0000046C [0000][0000][0000]- <1>
   528 00000472 [0000][0000][0000]- <1>
   528 00000478 1000[0000][0000]-   <1>
   528 0000047E [0000][0000][0000]- <1>
   528 00000484 [0000][0000][0000]- <1>
   528 0000048A [0000][0000][0000]- <1>
   528 00000490 [0000][0000][0000]- <1>
   528 00000496 [0000][0000][0000]- <1>
   528 0000049C [0000]              <1>
   529                              <1> .amount equ ($ - .) / 2
   530                              <1> %if .amount != LINKINFO_DATA_AMOUNT
   531                              <1>  %error Unexpected table size
   532                              <1> %endif
   533                              <1> 
   534                              <1> 
   535                              <1> 	align 2, db 0
   536                              <1> linkinfo_code_table_prefixes:
   537 0000049E C5C65512B5C6398C6F- <1> .:	repeatdw LINKINFO_CODE_PREFIXES
   537 000004A7 A267B1D555A45529EF- <1>
   537 000004B0 7FAE03C3D430DDB9E8- <1>
   537 000004B9 3A8490F1231CE30E05- <1>
   537 000004C2 CFF16DC97B14DCF83D- <1>
   537 000004CB BA821B84817D67EBA6- <1>
   537 000004D4 AD1103AA2890B77421- <1>
   537 000004DD 30D0BB98693567ABFF- <1>
   537 000004E6 BABD30CD1AB78B1ECF- <1>
   537 000004EF 3F6F9D702A2258D5DA- <1>
   537 000004F8 A7AAF85EF85C2C9A63- <1>
   537 00000501 77629668310C21738E- <1>
   537 0000050A 9F9A8D9117D8B0CC4C- <1>
   537 00000513 04FF8BDA8663E44C4E- <1>
   537 0000051C F001109AD1C68ECB25- <1>
   537 00000525 D7FEFD3F8515272066- <1>
   537 0000052E 5A0B794CA5339BF78E- <1>
   537 00000537 04A81B09B98EF7E973- <1>
   537 00000540 8A0AB212BFBC100B34- <1>
   537 00000549 8AD9187225B84425A1- <1>
   537 00000552 650F0D38D9FA3FE83D- <1>
   537 0000055B 8226BDF2E7A83EB096- <1>
   537 00000564 5AA3221090B3D354BB- <1>
   537 0000056D 7A5C225B36          <1>
   538                              <1> .amount equ ($ - .) / 2
   539                              <1> %if .amount != LINKINFO_CODE_AMOUNT
   540                              <1>  %error Unexpected table size
   541                              <1> %endif
   542                              <1> 
   543                              <1> 	align 2, db 0
   544                              <1> linkinfo_code_table_entries:
   545 00000572 [2C13][3113][3713]- <1> .:	repeatdw LINKINFO_CODE_ENTRIES
   545 00000578 [3C13][4513][5313]- <1>
   545 0000057E [5C13][6613][7013]- <1>
   545 00000584 [7A13][8213][8C13]- <1>
   545 0000058A [9713][9E13][A513]- <1>
   545 00000590 [B913][C313][D113]- <1>
   545 00000596 [DA13][E313][EA13]- <1>
   545 0000059C [F113][0C14][1314]- <1>
   545 000005A2 [1B14][2314][3014]- <1>
   545 000005A8 [3814][4114][5414]- <1>
   545 000005AE [5914][6214][6D14]- <1>
   545 000005B4 [8814][8F14][9C14]- <1>
   545 000005BA [C314][C814][D514]- <1>
   545 000005C0 [E314][F114][0A15]- <1>
   545 000005C6 [2015][3215][4215]- <1>
   545 000005CC [5015][5615][5F15]- <1>
   545 000005D2 [6815][7E15][8715]- <1>
   545 000005D8 [8D15][9615][A815]- <1>
   545 000005DE [B515][C215][D715]- <1>
   545 000005E4 [F615][0D16][2616]- <1>
   545 000005EA [3616][4C16][6416]- <1>
   545 000005F0 [7816][9516][A816]- <1>
   545 000005F6 [B516][C116][D316]- <1>
   545 000005FC [DF16][EE16][0317]- <1>
   545 00000602 [1117][1E17][2817]- <1>
   545 00000608 [3517][4317][4F17]- <1>
   545 0000060E [6117][7217][8117]- <1>
   545 00000614 [8E17][9E17][A417]- <1>
   545 0000061A [AF17][BB17][C417]- <1>
   545 00000620 [D817][E317][EF17]- <1>
   545 00000626 [FC17][0C18][1A18]- <1>
   545 0000062C [2318][2B18][3318]- <1>
   545 00000632 [3B18][4418][4D18]- <1>
   545 00000638 [5718][6A18][7118]- <1>
   545 0000063E [7D18][9A18][AD18]- <1>
   545 00000644 [B418]              <1>
   546                              <1> .amount equ ($ - .) / 2
   547                              <1> %if .amount != LINKINFO_CODE_AMOUNT
   548                              <1>  %error Unexpected table size
   549                              <1> %endif
   550                              <1> 
   551                              <1> 	align 2, db 0
   552                              <1> linkinfo_code_table_addresses:
   553 00000646 [0000]0000[0000]00- <1> .:	repeatdw LINKINFO_CODE_ADDRESSES
   553 0000064D 00[0000]0000[0000]- <1>
   553 00000654 0000[0000]0000-     <1>
   553 0000065A [0000]0000[0000]00- <1>
   553 00000661 00[0000]0000[0000]- <1>
   553 00000668 0000[0000]0000-     <1>
   553 0000066E [0000]0000[0000]00- <1>
   553 00000675 00[0000]0000[0000]- <1>
   553 0000067C 0000[0000]0000-     <1>
   553 00000682 [0000]0000[0000]00- <1>
   553 00000689 00[0000]0000[0000]- <1>
   553 00000690 0000[0000]0000-     <1>
   553 00000696 [0000]0000[0000]00- <1>
   553 0000069D 00[0000]0000[0000]- <1>
   553 000006A4 0000[0000]0000-     <1>
   553 000006AA [0000]0000[0000]00- <1>
   553 000006B1 00[0000]0000[0000]- <1>
   553 000006B8 0000[0000]0000-     <1>
   553 000006BE [0000]0000[0000]00- <1>
   553 000006C5 00[0000]0000[0000]- <1>
   553 000006CC 0000[0000]0000-     <1>
   553 000006D2 [0000]0000[0000]00- <1>
   553 000006D9 00[0000]0000[0000]- <1>
   553 000006E0 0000[0000]0000-     <1>
   553 000006E6 [0000]0000[0000]00- <1>
   553 000006ED 00[0000]0000[0000]- <1>
   553 000006F4 0000[0000]0000-     <1>
   553 000006FA [0000]0000[0000]00- <1>
   553 00000701 00[0000]0000[0000]- <1>
   553 00000708 0000[0000]0000-     <1>
   553 0000070E [0000]0000[0000]00- <1>
   553 00000715 00[0000]0000[0000]- <1>
   553 0000071C 0000[0000]0000-     <1>
   553 00000722 [0000]0000[0000]00- <1>
   553 00000729 00[0000]0000[0000]- <1>
   553 00000730 0000[0000]0000-     <1>
   553 00000736 [0000]0000[0000]00- <1>
   553 0000073D 00[0000]0000[0000]- <1>
   553 00000744 0000[0000]0000-     <1>
   553 0000074A [0000]0000[0000]00- <1>
   553 00000751 00[0000]0000[0000]- <1>
   553 00000758 0000[0000]0000-     <1>
   553 0000075E [0000]0000[0000]00- <1>
   553 00000765 00[0000]0000[0000]- <1>
   553 0000076C 0000[0000]0000-     <1>
   553 00000772 [0000]0000[0000]00- <1>
   553 00000779 00[0000]0000[0000]- <1>
   553 00000780 0000[0000]0000-     <1>
   553 00000786 [0000]0000[0000]00- <1>
   553 0000078D 00[0000]0000[0000]- <1>
   553 00000794 0000[0000]0000-     <1>
   553 0000079A [0000]0000[0000]00- <1>
   553 000007A1 00[0000]0000[0000]- <1>
   553 000007A8 0100[0000]0100-     <1>
   553 000007AE [0000]0100[0000]01- <1>
   553 000007B5 00[0000]0100[0000]- <1>
   553 000007BC 0100[0000]0100-     <1>
   553 000007C2 [0000]0100[0000]01- <1>
   553 000007C9 00[0000]0100[0000]- <1>
   553 000007D0 0100[0000]0100-     <1>
   553 000007D6 [0000]0100[0000]01- <1>
   553 000007DD 00[0000]0100[0000]- <1>
   553 000007E4 0100[0000]0100-     <1>
   553 000007EA [0000]0200          <1>
   554                              <1> .amount equ ($ - .) / 4
   555                              <1> %if .amount != LINKINFO_CODE_AMOUNT
   556                              <1>  %error Unexpected table size
   557                              <1> %endif
   558                              <1> 
   559                              <1> 
   560 000007EE 076C696E6B73656C07- <1> 	dump_linkinfo_messages LINKINFO_DATA_MESSAGES, LINKINFO_CODE_MESSAGES
   560 000007F7 6C696E6B7365670F6C- <1>
   560 00000800 696E6B696E666F6164- <1>
   560 00000809 64726573730E6C696E- <1>
   560 00000812 6B63616C6C5F746162- <1>
   560 0000081B 6C6506657874736567- <1>
   560 00000824 08657874637373656C- <1>
   560 0000082D 08657874647373656C- <1>
   560 00000836 0B6578747365675F73- <1>
   560 0000083F 697A650B6578747365- <1>
   560 00000848 675F75736564076578- <1>
   560 00000851 74646174610C657874- <1>
   560 0000085A 646174615F73697A65- <1>
   560 00000863 0C657874646174615F- <1>
   560 0000086C 757365640670737064- <1>
   560 00000875 626706707370646265- <1>
   560 0000087E 05647373656C056373- <1>
   560 00000887 73656C08636F64655F- <1>
   560 00000890 73656C09636F646532- <1>
   560 00000899 5F73656C0A6D657373- <1>
   560 000008A2 61676573656C0D696E- <1>
   560 000008AB 7465726E616C666C61- <1>
   560 000008B4 67730E696E7465726E- <1>
   560 000008BD 616C666C616773320E- <1>
   560 000008C6 696E7465726E616C66- <1>
   560 000008CF 6C616773330E696E74- <1>
   560 000008D8 65726E616C666C6167- <1>
   560 000008E1 73340E696E7465726E- <1>
   560 000008EA 616C666C616773350E- <1>
   560 000008F3 696E7465726E616C66- <1>
   560 000008FC 6C616773360E696E74- <1>
   560 00000905 65726E616C666C6167- <1>
   560 0000090E 7337076F7074696F6E- <1>
   560 00000917 73086F7074696F6E73- <1>
   560 00000920 32086F7074696F6E73- <1>
   560 00000929 33086F7074696F6E73- <1>
   560 00000932 34086F7074696F6E73- <1>
   560 0000093B 35086F7074696F6E73- <1>
   560 00000944 36086F7074696F6E73- <1>
   560 0000094D 37076C617374636D64- <1>
   560 00000956 076C696E655F696E0B- <1>
   560 0000095F 6C696E655F696E2E65- <1>
   560 00000968 6E64086C696E655F6F- <1>
   560 00000971 75740C6C696E655F6F- <1>
   560 0000097A 75745F656E64106175- <1>
   560 00000983 78627566665F736567- <1>
   560 0000098C 6F7273656C14617578- <1>
   560 00000995 627566665F63757272- <1>
   560 0000099E 656E745F73697A651D- <1>
   560 000009A7 617578627566665F63- <1>
   560 000009B0 757272656E745F7369- <1>
   560 000009B9 7A655F6D696E75735F- <1>
   560 000009C2 32340866697273746D- <1>
   560 000009CB 636209666972737475- <1>
   560 000009D4 6D63620B6D73672E69- <1>
   560 000009DD 6E7374616C6C0D6D73- <1>
   560 000009E6 672E756E696E737461- <1>
   560 000009EF 6C6C076D73672E7275- <1>
   560 000009F8 6E0D656E7472797365- <1>
   560 00000A01 675F73697A650A6D65- <1>
   560 00000A0A 73736167657365670F- <1>
   560 00000A13 6D6573736167657365- <1>
   560 00000A1C 675F73697A6508636F- <1>
   560 00000A25 64655F73656709636F- <1>
   560 00000A2E 64655F73697A650963- <1>
   560 00000A37 6F6465325F7365670A- <1>
   560 00000A40 636F6465325F73697A- <1>
   560 00000A49 650F61757862756666- <1>
   560 00000A52 5F7365676D656E7414- <1>
   560 00000A5B 617578627566665F63- <1>
   560 00000A64 757272656E745F7369- <1>
   560 00000A6D 7A650F686973746F72- <1>
   560 00000A76 795F7365676D656E74- <1>
   560 00000A7F 0F686973746F727973- <1>
   560 00000A88 65675F73697A650665- <1>
   560 00000A91 6E7673656708656E76- <1>
   560 00000A9A 5F73697A6509616C6C- <1>
   560 00000AA3 6F635F7365670A616C- <1>
   560 00000AAC 6C6F635F73697A6515- <1>
   560 00000AB5 6E6578745F72657365- <1>
   560 00000ABE 727665645F7365676D- <1>
   560 00000AC7 656E7417616C6C6F63- <1>
   560 00000AD0 5F73697A655F6E6F74- <1>
   560 00000AD9 5F7265736572766564- <1>
   560 00000AE2 107265736572766564- <1>
   560 00000AEB 5F6164647265737310- <1>
   560 00000AF4 686973746F72792E73- <1>
   560 00000AFD 65676F7273656C0D68- <1>
   560 00000B06 6973746F72792E6669- <1>
   560 00000B0F 7273740C686973746F- <1>
   560 00000B18 72792E6C6173740D68- <1>
   560 00000B21 6973746F7279666F72- <1>
   560 00000B2A 6D617405737461636B- <1>
   560 00000B33 09737461636B5F656E- <1>
   560 00000B3C 64136578745F636F6D- <1>
   560 00000B45 6D616E645F68616E64- <1>
   560 00000B4E 6C6572126578745F69- <1>
   560 00000B57 6E6A6563745F68616E- <1>
   560 00000B60 646C65720673617665- <1>
   560 00000B69 7370077468726F7773- <1>
   560 00000B72 70166578745F707265- <1>
   560 00000B7B 70726F636573735F68- <1>
   560 00000B84 616E646C6572106578- <1>
   560 00000B8D 745F707574735F6861- <1>
   560 00000B96 6E646C65721B657874- <1>
   560 00000B9F 5F707574735F636F70- <1>
   560 00000BA8 796F75747075745F68- <1>
   560 00000BB1 616E646C6572186578- <1>
   560 00000BBA 745F707574735F6765- <1>
   560 00000BC3 746C696E655F68616E- <1>
   560 00000BCC 646C65721D6578745F- <1>
   560 00000BD5 61615F6265666F7265- <1>
   560 00000BDE 5F6765746C696E655F- <1>
   560 00000BE7 68616E646C65721565- <1>
   560 00000BF0 78745F61615F696E6A- <1>
   560 00000BF9 6563745F68616E646C- <1>
   560 00000C02 65721C6578745F6161- <1>
   560 00000C0B 5F61667465725F6765- <1>
   560 00000C14 746C696E655F68616E- <1>
   560 00000C1D 646C6572106578745F- <1>
   560 00000C26 616D69735F68616E64- <1>
   560 00000C2F 6C657215616D69735F- <1>
   560 00000C38 6D756C7469706C6578- <1>
   560 00000C41 5F6E756D6265722274- <1>
   560 00000C4A 72795F646562756767- <1>
   560 00000C53 65725F616D69735F6D- <1>
   560 00000C5C 756C7469706C65785F- <1>
   560 00000C65 6E756D626572066D73- <1>
   560 00000C6E 672E696E076C617374- <1>
   560 00000C77 636D64086669727374- <1>
   560 00000C80 6D6362096669727374- <1>
   560 00000C89 756D63620664706D69- <1>
   560 00000C92 33321C6C617374636D- <1>
   560 00000C9B 645F7472616E736665- <1>
   560 00000CA4 725F6578745F616464- <1>
   560 00000CAD 726573731A6C617374- <1>
   560 00000CB6 636D645F7472616E73- <1>
   560 00000CBF 6665725F6578745F65- <1>
   560 00000CC8 6E74727906646D7963- <1>
   560 00000CD1 6D64066861735F3837- <1>
   560 00000CDA 076861735F6D6D780C- <1>
   560 00000CE3 696E7374616C6C666C- <1>
   560 00000CEC 6167730D696E737461- <1>
   560 00000CF5 6C6C666F726D617407- <1>
   560 00000CFE 7265675F6561780772- <1>
   560 00000D07 65675F656378077265- <1>
   560 00000D10 675F65647807726567- <1>
   560 00000D19 5F656278077265675F- <1>
   560 00000D22 657370077265675F65- <1>
   560 00000D2B 6270077265675F6573- <1>
   560 00000D34 69077265675F656469- <1>
   560 00000D3D 077265675F65666C07- <1>
   560 00000D46 7265675F6569700672- <1>
   560 00000D4F 65675F637306726567- <1>
   560 00000D58 5F6473067265675F73- <1>
   560 00000D61 73067265675F657306- <1>
   560 00000D6A 7265675F6673067265- <1>
   560 00000D73 675F6773076D73672E- <1>
   560 00000D7C 6E6F74086D73672E74- <1>
   560 00000D85 68656E076578745F76- <1>
   560 00000D8E 61720E6578745F7661- <1>
   560 00000D97 725F616D6F756E740E- <1>
   560 00000DA0 6578745F7661725F66- <1>
   560 00000DA9 6F726D61740C657874- <1>
   560 00000DB2 5F7661725F73697A65- <1>
   560 00000DBB 236973766172696162- <1>
   560 00000DC4 6C655F6D6F72656279- <1>
   560 00000DCD 74655F6E616D656865- <1>
   560 00000DD6 61646572732E657874- <1>
   560 00000DDF 0D7661725F6578745F- <1>
   560 00000DE8 73657475700A657874- <1>
   560 00000DF1 5F68616E646C65176E- <1>
   560 00000DFA 6561725F7472616E73- <1>
   560 00000E03 6665725F6578745F65- <1>
   560 00000E0C 6E747279196E656172- <1>
   560 00000E15 5F7472616E73666572- <1>
   560 00000E1E 5F6578745F61646472- <1>
   560 00000E27 657373106C6F61645F- <1>
   560 00000E30 646174615F6C6F7765- <1>
   560 00000E39 7374096C6F61645F64- <1>
   560 00000E42 617461116C6F61645F- <1>
   560 00000E4B 79796E616D655F696E- <1>
   560 00000E54 7075741568616E646C- <1>
   560 00000E5D 655F7363616E5F6469- <1>
   560 00000E66 725F656E7472791968- <1>
   560 00000E6F 616E646C655F736361- <1>
   560 00000E78 6E5F6469725F6E6F74- <1>
   560 00000E81 5F666F756E64242E2E- <1>
   560 00000E8A 40626F6F745F736361- <1>
   560 00000E93 6E5F6469725F726574- <1>
   560 00000E9C 75726E5F66696C656E- <1>
   560 00000EA5 6F74666F756E642D2E- <1>
   560 00000EAE 2E40626F6F745F7363- <1>
   560 00000EB7 616E5F6469725F7265- <1>
   560 00000EC0 7475726E5F73756264- <1>
   560 00000EC9 69725F6F725F666174- <1>
   560 00000ED2 33325F656E74727928- <1>
   560 00000EDB 2E2E40626F6F745F73- <1>
   560 00000EE4 63616E5F6469725F72- <1>
   560 00000EED 657475726E5F666174- <1>
   560 00000EF6 31365F726F6F745F65- <1>
   560 00000EFF 6E7472790E7363616E- <1>
   560 00000F08 5F6469725F656E7472- <1>
   560 00000F11 79136C6F61645F6368- <1>
   560 00000F1A 65636B5F6469725F61- <1>
   560 00000F23 747472106C6F61645F- <1>
   560 00000F2C 79796E616D655F6E65- <1>
   560 00000F35 7874106C6F61645F79- <1>
   560 00000F3E 795F646972656E7472- <1>
   560 00000F47 79106C6F61645F6B65- <1>
   560 00000F50 726E656C5F6E616D65- <1>
   560 00000F59 176C6F61645F616472- <1>
   560 00000F62 5F6469726275665F73- <1>
   560 00000F6B 65676D656E740F6578- <1>
   560 00000F74 6563626C6B2E636D64- <1>
   560 00000F7D 6C696E650A636F6E66- <1>
   560 00000F86 69677061746812636F- <1>
   560 00000F8F 6E666967706174682E- <1>
   560 00000F98 6469725F656E640B73- <1>
   560 00000FA1 637269707473706174- <1>
   560 00000FAA 681373637269707473- <1>
   560 00000FB3 706174682E6469725F- <1>
   560 00000FBC 656E640F6275696C64- <1>
   560 00000FC5 5F6F7074696F6E5F50- <1>
   560 00000FCE 4D04636D64330C636D- <1>
   560 00000FD7 64335F6E6F745F6578- <1>
   560 00000FE0 740D707574735F6578- <1>
   560 00000FE9 745F646F6E650D7075- <1>
   560 00000FF2 74735F6578745F6E65- <1>
   560 00000FFB 787418707574735F63- <1>
   560 00001004 6F70796F7574707574- <1>
   560 0000100D 5F6578745F646F6E65- <1>
   560 00001016 15707574735F676574- <1>
   560 0000101F 6C696E655F6578745F- <1>
   560 00001028 646F6E650B696E5F67- <1>
   560 00001031 6574696E7075741163- <1>
   560 0000103A 6D64335F7072657072- <1>
   560 00001043 6F6365737365640F63- <1>
   560 0000104C 6D64335F6E6F745F69- <1>
   560 00001055 6E6A6563740D636D64- <1>
   560 0000105E 335F696E6A65637465- <1>
   560 00001067 640D61615F6E6F745F- <1>
   560 00001070 696E6A6563740B6161- <1>
   560 00001079 5F696E6A6563746564- <1>
   560 00001082 1161615F6265666F72- <1>
   560 0000108B 655F6765746C696E65- <1>
   560 00001094 1061615F6166746572- <1>
   560 0000109D 5F6765746C696E650C- <1>
   560 000010A6 7768696C655F627566- <1>
   560 000010AF 666572107768696C65- <1>
   560 000010B8 5F6275666665722E65- <1>
   560 000010C1 6E640573776368311B- <1>
   560 000010CA 696E7465726E616C66- <1>
   560 000010D3 6C6167735F77697468- <1>
   560 000010DC 5F74745F7768696C65- <1>
   560 000010E5 0C79795F69735F7363- <1>
   560 000010EE 726970741C7465726D- <1>
   560 000010F7 696E61746F725F696E- <1>
   560 00001100 5F6C696E655F696E2E- <1>
   560 00001109 6F66667365741B7465- <1>
   560 00001112 726D696E61746F725F- <1>
   560 0000111B 696E5F6C696E655F69- <1>
   560 00001124 6E2E76616C75651465- <1>
   560 0000112D 78745F66696E697368- <1>
   560 00001136 2E62705F69735F7365- <1>
   560 0000113F 740576726567730C76- <1>
   560 00001148 726567732E616D6F75- <1>
   560 00001151 6E740F617363696974- <1>
   560 0000115A 61626C656E616D6573- <1>
   560 00001163 0A706D5F325F38366D- <1>
   560 0000116C 5F300F6C6F61645F75- <1>
   560 00001175 6E69745F666C616773- <1>
   560 0000117E 157373735F73696C65- <1>
   560 00001187 6E745F636F756E745F- <1>
   560 00001190 75736564107373735F- <1>
   560 00001199 73696C656E745F636F- <1>
   560 000011A2 756E740E7365617263- <1>
   560 000011AB 685F726573756C7473- <1>
   560 000011B4 097373636F756E7465- <1>
   560 000011BD 72157365617263685F- <1>
   560 000011C6 726573756C74735F61- <1>
   560 000011CF 6D6F756E740D706174- <1>
   560 000011D8 6368617265615F7275- <1>
   560 000011E1 6E1270617463686172- <1>
   560 000011EA 65615F72756E2E7369- <1>
   560 000011F3 7A6515706174636861- <1>
   560 000011FC 7265615F72756E2E73- <1>
   560 00001205 65676D656E74107061- <1>
   560 0000120E 746368617265615F69- <1>
   560 00001217 6E7472746E15706174- <1>
   560 00001220 6368617265615F696E- <1>
   560 00001229 7472746E2E73697A65- <1>
   560 00001232 187061746368617265- <1>
   560 0000123B 615F696E7472746E2E- <1>
   560 00001244 7365676D656E741070- <1>
   560 0000124D 61746368617265615F- <1>
   560 00001256 706D5F657863157061- <1>
   560 0000125F 746368617265615F70- <1>
   560 00001268 6D5F6578632E73697A- <1>
   560 00001271 651870617463686172- <1>
   560 0000127A 65615F706D5F657863- <1>
   560 00001283 2E7365676D656E7409- <1>
   560 0000128C 70726F6D70746C656E- <1>
   560 00001295 15696E646972656374- <1>
   560 0000129E 5F61727261795F6572- <1>
   560 000012A7 72666978077072696F- <1>
   560 000012B0 72726302726313626F- <1>
   560 000012B9 6F745F696E69745F66- <1>
   560 000012C2 6F756E646E616D6515- <1>
   560 000012CB 6465766963655F7175- <1>
   560 000012D4 69747461626C655F72- <1>
   560 000012DD 656773156465766963- <1>
   560 000012E6 655F6865616465725F- <1>
   560 000012EF 616464726573731869- <1>
   560 000012F8 6E69745F6578656375- <1>
   560 00001301 7461626C655F706174- <1>
   560 0000130A 686E616D651C696E69- <1>
   560 00001313 745F65786563757461- <1>
   560 0000131C 626C655F706174686E- <1>
   560 00001325 616D652E656E640470- <1>
   560 0000132E 75747305707574737A- <1>
   560 00001337 047075746308707574- <1>
   560 00001340 736C696E650D707574- <1>
   560 00001349 736C696E655F63726C- <1>
   560 00001352 66087472696D707574- <1>
   560 0000135B 7309736B6970636F6D- <1>
   560 00001364 6D6109736B6970636F- <1>
   560 0000136D 6D6D3009736B697077- <1>
   560 00001376 6869746507736B6970- <1>
   560 0000137F 776830096973737472- <1>
   560 00001388 696E673F0A63617069- <1>
   560 00001391 74616C697365066368- <1>
   560 0000139A 6B656F6C066973656F- <1>
   560 000013A3 6C3F136973656F6C3F- <1>
   560 000013AC 2E6E6F7473656D6963- <1>
   560 000013B5 6F6C6F6E0975707065- <1>
   560 000013BE 72636173650D677561- <1>
   560 000013C7 72645F617578627566- <1>
   560 000013D0 660867756172645F72- <1>
   560 000013D9 650870726570686163- <1>
   560 000013E2 6B06646F6861636B06- <1>
   560 000013EB 756E6861636B1A6861- <1>
   560 000013F4 6E646C655F73657269- <1>
   560 000013FD 616C5F666C6167735F- <1>
   560 00001406 6374726C5F63066865- <1>
   560 0000140F 786E79620768657862- <1>
   560 00001418 79746507686578776F- <1>
   560 00001421 72640C686578776F72- <1>
   560 0000142A 645F68696768076465- <1>
   560 00001433 63776F726408646563- <1>
   560 0000143C 64776F726412646563- <1>
   560 00001445 5F64776F72645F6D69- <1>
   560 0000144E 6E7769647468046973- <1>
   560 00001457 706D08736574657332- <1>
   560 00001460 64780A63616C6C5F69- <1>
   560 00001469 6E7432441A636F7079- <1>
   560 00001472 5F73696E676C655F63- <1>
   560 0000147B 6F756E7465645F7374- <1>
   560 00001484 72696E6706696E7463- <1>
   560 0000148D 686B0C497349495350- <1>
   560 00001496 456E7472793F266469- <1>
   560 0000149F 73705F647861785F74- <1>
   560 000014A8 696D65735F63785F77- <1>
   560 000014B1 696474685F62785F73- <1>
   560 000014BA 697A652E73746F7265- <1>
   560 000014C3 04636D64330C636D64- <1>
   560 000014CC 335F6E6F745F657874- <1>
   560 000014D5 0D707574735F657874- <1>
   560 000014DE 5F646F6E650D707574- <1>
   560 000014E7 735F6578745F6E6578- <1>
   560 000014F0 7418707574735F636F- <1>
   560 000014F9 70796F75747075745F- <1>
   560 00001502 6578745F646F6E6515- <1>
   560 0000150B 707574735F6765746C- <1>
   560 00001514 696E655F6578745F64- <1>
   560 0000151D 6F6E6511636D64335F- <1>
   560 00001526 70726570726F636573- <1>
   560 0000152F 7365640F636D64335F- <1>
   560 00001538 6E6F745F696E6A6563- <1>
   560 00001541 740D636D64335F696E- <1>
   560 0000154A 6A6563746564056572- <1>
   560 00001553 726F72087365746473- <1>
   560 0000155C 327369087365746473- <1>
   560 00001565 32627815696E746361- <1>
   560 0000156E 6C6C5F6578745F7265- <1>
   560 00001577 7475726E5F65730864- <1>
   560 00001580 645F73746F72650549- <1>
   560 00001589 6E444F53085F646F73- <1>
   560 00001592 63616C6C1179795F64- <1>
   560 0000159B 6F735F70617273655F- <1>
   560 000015A4 6E616D650C79795F6F- <1>
   560 000015AD 70656E5F66696C650C- <1>
   560 000015B6 79795F636865636B5F- <1>
   560 000015BF 6C666E1479795F636F- <1>
   560 000015C8 6D6D6F6E5F70617273- <1>
   560 000015D1 655F6E616D651E7979- <1>
   560 000015DA 5F636F6D6D6F6E5F70- <1>
   560 000015E3 617273655F6E616D65- <1>
   560 000015EC 5F62785F6275666665- <1>
   560 000015F5 721672657472795F6F- <1>
   560 000015FE 70656E5F7363726970- <1>
   560 00001607 747370617468186E65- <1>
   560 00001610 61725F7472616E7366- <1>
   560 00001619 65725F6578745F7265- <1>
   560 00001622 7475726E0F79795F62- <1>
   560 0000162B 6F6F745F726561642E- <1>
   560 00001634 62781579795F626F6F- <1>
   560 0000163D 745F7365656B5F7374- <1>
   560 00001646 6172742E6278177979- <1>
   560 0000164F 5F626F6F745F736565- <1>
   560 00001658 6B5F63757272656E74- <1>
   560 00001661 2E62781379795F626F- <1>
   560 0000166A 6F745F70617273655F- <1>
   560 00001673 6E616D65321C79795F- <1>
   560 0000167C 626F6F745F70617273- <1>
   560 00001685 655F6E616D655F6278- <1>
   560 0000168E 5F6275666665721279- <1>
   560 00001697 795F626F6F745F6F70- <1>
   560 000016A0 656E5F66696C65320C- <1>
   560 000016A9 7363616E5F6469725F- <1>
   560 000016B2 6175780B726561645F- <1>
   560 000016BB 736563746F72117979- <1>
   560 000016C4 5F626F6F745F696E69- <1>
   560 000016CD 745F646972320B676F- <1>
   560 000016D6 745F7979656E747279- <1>
   560 000016DF 0E7363616E5F646972- <1>
   560 000016E8 5F656E747279142E2E- <1>
   560 000016F1 4079795F66696C656E- <1>
   560 000016FA 616D655F656D707479- <1>
   560 00001703 0D626F6F745F706172- <1>
   560 0000170C 73655F666E0C696E69- <1>
   560 00001715 745F626F6F74636D64- <1>
   560 0000171E 09636C6F73655F6578- <1>
   560 00001727 740C79795F72657365- <1>
   560 00001730 745F6275660D61615F- <1>
   560 00001739 6E6F745F696E6A6563- <1>
   560 00001742 740B61615F696E6A65- <1>
   560 0000174B 637465641161615F62- <1>
   560 00001754 65666F72655F676574- <1>
   560 0000175D 6C696E651061615F61- <1>
   560 00001766 667465725F6765746C- <1>
   560 0000176F 696E650E646F736361- <1>
   560 00001778 6C6C5F657874736567- <1>
   560 00001781 0C746573745F645F62- <1>
   560 0000178A 5F6269740F74657374- <1>
   560 00001793 5F686967685F6C696D- <1>
   560 0000179C 69740573657472630A- <1>
   560 000017A5 736B6970657175616C- <1>
   560 000017AE 730B636F756E745F73- <1>
   560 000017B7 746F72650868657864- <1>
   560 000017C0 776F72641376657269- <1>
   560 000017C9 66797365676D5F6F72- <1>
   560 000017D2 5F6572726F720A7665- <1>
   560 000017DB 726966797365676D0B- <1>
   560 000017E4 69737661726961626C- <1>
   560 000017ED 653F0C697373657061- <1>
   560 000017F6 7261746F723F0F6765- <1>
   560 000017FF 745F76616C75655F72- <1>
   560 00001808 616E67650D67657465- <1>
   560 00001811 787072657373696F6E- <1>
   560 0000181A 0867657464776F7264- <1>
   560 00001823 07676574776F726407- <1>
   560 0000182C 676574627974650767- <1>
   560 00001835 657461646472086765- <1>
   560 0000183E 746164647258086765- <1>
   560 00001847 7472616E6765096765- <1>
   560 00001850 7472616E6765581267- <1>
   560 00001859 65745F6C656E677468- <1>
   560 00001862 5F6B6579776F726406- <1>
   560 0000186B 6765746E79620B6973- <1>
   560 00001874 6F70657261746F723F- <1>
   560 0000187D 1C2E2E4063616C6C5F- <1>
   560 00001886 6F70657261746F725F- <1>
   560 0000188F 646973706174636865- <1>
   560 00001898 7273127661725F6578- <1>
   560 000018A1 745F73657475705F64- <1>
   560 000018AA 6F6E65066765747374- <1>
   560 000018B3 720A656E7472795F72- <1>
   560 000018BC 65746E              <1>
    75                                  %endif
    76                                  
    77                                  
    78                                  	usesection lDEBUG_DATA_ENTRY
    78          ------------------       note: usesection lDEBUG_DATA_ENTRY
    79                                  %if _LINK_COMPAT
    80                                  	align 4, db 0
    81                                  %endif
    82                                  
    83                                  msg:
    84                                  
    85                                  	align 2, db 0
    86                                  .help_array:
    87 00000000 [C725]                  	dw .build_nameversion + NONCOMPRESSEDFLAG
    88 00000002 [C118]                  	dw .help_header + NONCOMPRESSEDFLAG
    89 00000004 [D018]                  	dw .help_contents
    90                                  .help_array_amount: equ ($ - .help_array) / 2
    91                                  
    92                                  	usemessagesegment
    92          ------------------       note: usesection MESSAGESEGMENT
    93 000018BF 00                      	align 2, db 0
    94                                  .help_header:
    95 000018C0 2068656C7020736372-     	asciz " help screen",13,10
    95 000018C9 65656E0D0A00       
    96                                  .help_contents: helppage main
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 000018CF 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 000018D0 A605                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000018D2 <bin 5A6h>          <1>  incbin %%includename
    47                              <1> %%end:
    97                                  
    98                                  %if _EXTHELP
    99                                  	usesection lDEBUG_DATA_ENTRY
    99          ------------------       note: usesection lDEBUG_DATA_ENTRY
   100 00000006 534F5552434500          .source:asciz "SOURCE"
   101                                  
   102                                  	usemessagesegment
   102          ------------------       note: usesection MESSAGESEGMENT
   103                                  .help_source: helppage source
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 00001E78 FB00                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00001E7A <bin FBh>           <1>  incbin %%includename
    47                              <1> %%end:
   104                                  %endif
   105                                  
   106                                  %if !_LOADER
   107                                  	usesection lDEBUG_DATA_ENTRY
   107          ------------------       note: usesection lDEBUG_DATA_ENTRY
   108                                  .re:
   109 0000000D 524500                  	asciz "RE"
   110                                  
   111                                  	usemessagesegment
   111          ------------------       note: usesection MESSAGESEGMENT
   112                                  .help_re: helppage re
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00001F75 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00001F76 3403                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00001F78 <bin 334h>          <1>  incbin %%includename
    47                              <1> %%end:
   113                                  %endif
   114                                  
   115                                  	usesection lDEBUG_DATA_ENTRY
   115          ------------------       note: usesection lDEBUG_DATA_ENTRY
   116                                  .run:
   117 00000010 52554E00                	asciz "RUN"
   118                                  
   119                                  %if !_LOADER
   120                                  	usemessagesegment
   120          ------------------       note: usesection MESSAGESEGMENT
   121                                  .help_run: helppage run
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 000022AC 5C02                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000022AE <bin 25Ch>          <1>  incbin %%includename
    47                              <1> %%end:
   122                                  %endif
   123                                  
   124                                  	usesection lDEBUG_DATA_ENTRY
   124          ------------------       note: usesection lDEBUG_DATA_ENTRY
   125                                  
   126                                  	align 2, db 0
   127                                  .build_array:
   128 00000014 [C725]                  	dw .build_nameversion + NONCOMPRESSEDFLAG
   129 00000016 [E725]                  	dw .build_linebreak + NONCOMPRESSEDFLAG
   130                                  .build_version_amount: equ ($ - .build_array) / 2
   131 00000018 [1726]                  	dw .build_ldebug + NONCOMPRESSEDFLAG
   132 0000001A [5726]                  	dw .build_lmacros + NONCOMPRESSEDFLAG
   133                                  %if _SYMBOLIC
   134                                  	dw .build_symsnip + NONCOMPRESSEDFLAG
   135                                  %endif
   136                                  %if _BOOTLDR
   137 0000001C [9726]                  	dw .build_scanptab + NONCOMPRESSEDFLAG
   138                                  %endif
   139 0000001E [D726]                  	dw .build_inicomp + NONCOMPRESSEDFLAG
   140                                  %if (_BOOTLDR && _CHECKSUM) || _CHECKSUM_NEW
   141                                  	dw .build_inicheck + NONCOMPRESSEDFLAG
   142                                  %endif
   143                                  %if _BOOTLDR
   144 00000020 [1727]                  	dw .build_ldosboot + NONCOMPRESSEDFLAG
   145                                  %endif
   146                                  .build_short_amount: equ ($ - .build_array) / 2
   147                                  %if _EXTHELP
   148 00000022 [5627]                  	dw .build_long
   149                                  %endif
   150                                  .build_long_amount: equ ($ - .build_array) / 2
   151                                  
   152                                  %if _OPTIONS && _EXTHELP
   153                                  	align 2, db 0
   154                                  .options_array:
   155 00000024 [6A35]                  	dw .options_1
   156 00000026 [7638]                  	dw .options_2
   157 00000028 [7E3A]                  	dw .options_3
   158 0000002A [FA3C]                  	dw .options_4
   159 0000002C [F23D]                  	dw .options_5
   160 0000002E [FA3D]                  	dw .options_6
   161                                  .options_array_option_amount: equ ($ - .options_array) / 2
   162 00000030 [3840]                  	dw .flags_1
   163 00000032 [AE42]                  	dw .asmoptions_1
   164                                  .options_array_amount: equ ($ - .options_array) / 2
   165                                  
   166                                  .options_scan:
   167 00000034 313233343536            	db "123456"
   168                                  .options_scan_amount: equ ($ - .options_scan)
   169                                  %if .options_array_option_amount != .options_scan_amount
   170                                   %error Array size mismatch
   171                                  %endif
   172                                  
   173                                  .string_options:
   174 0000003A 4F5054494F4E5300        	asciz "OPTIONS"
   175                                  
   176                                  	usemessagesegment
   176          ------------------       note: usesection MESSAGESEGMENT
   177                                  .options_pages: helppage options
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 0000250A B900                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000250C <bin B9h>           <1>  incbin %%includename
    47                              <1> %%end:
   178                                  %endif
   179                                  
   180                                  	usesection lDEBUG_DATA_ENTRY
   180          ------------------       note: usesection lDEBUG_DATA_ENTRY
   181                                  .string_build:
   182 00000042 4255494C4400            	asciz "BUILD"
   183                                  .string_version:
   184 00000048 56455253494F4E00        	asciz "VERSION"
   185                                  
   186                                  	usemessagesegment
   186          ------------------       note: usesection MESSAGESEGMENT
   187 000025C5 00                      	align 2, db 0
   188                                  .build_nameversion:
   189 000025C6 44656275676761626C-     	asciz _PROGNAME,_VERSION
   189 000025CF 65206C446562756758-
   189 000025D8 2028323032362D3034-
   189 000025E1 2D31322900         
   190                                  
   191                                  	align 2, db 0
   192                                  .build_linebreak:
   193 000025E6 0D0A00                  	asciz 13,10
   194 000025E9 00<rep 2Dh>             	_fill_at_least 80, 0, .build_nameversion
   195                                  
   196                                  	align 2, db 0
   197                                  .build_ldebug:
   198                                  %ifnidn _REVISIONID,""
   199 00002616 536F7572636520436F-     	db "Source Control Revision ID: ",_REVISIONID,13,10
   199 0000261F 6E74726F6C20526576-
   199 00002628 6973696F6E2049443A-
   199 00002631 206867203530663630-
   199 0000263A 323561333939372028-
   199 00002643 3636383020616E6365-
   199 0000264C 73746F7273290D0A   
   200                                  %endif
   201 00002654 00                      	asciz
   202 00002655 00                      	_fill_at_least 64, 0, .build_ldebug
   203                                  
   204                                  	align 2, db 0
   205                                  .build_lmacros:
   206 00002656 55736573206C6D6163-     	fill_at_least 64, 0, asciz _REVISIONID_LMACROS
   206 0000265F 726F733A2020526576-
   206 00002668 6973696F6E20494420-
   206 00002671 686720646535336139-
   206 0000267A 363836666164202831-
   206 00002683 363720616E63657374-
   206 0000268C 6F7273290D0A0000-  
   206 0000268C <rep 3h>           
   207                                  
   208                                  %if _SYMBOLIC
   209                                  	align 2, db 0
   210                                  .build_symsnip:
   211                                  	fill_at_least 64, 0, asciz _REVISIONID_SYMSNIP
   212                                  %endif
   213                                  
   214                                  %if _BOOTLDR
   215                                  	align 2, db 0
   216                                  .build_scanptab:
   217 00002696 55736573207363616E-     	fill_at_least 64, 0, asciz _REVISIONID_SCANPTAB
   217 0000269F 707461623A20526576-
   217 000026A8 6973696F6E20494420-
   217 000026B1 686720353735666138-
   217 000026BA 396664363731202833-
   217 000026C3 3120616E636573746F-
   217 000026CC 7273290D0A0000-    
   217 000026CC <rep 4h>           
   218                                  %endif
   219                                  
   220                                  	align 2, db 0
   221                                  .build_inicomp:
   222 000026D6 5573657320696E6963-     	fill_at_least 64, 0, asciz _REVISIONID_INICOMP
   222 000026DF 6F6D703A2020526576-
   222 000026E8 6973696F6E20494420-
   222 000026F1 686720343837326236-
   222 000026FA 326236386333202836-
   222 00002703 363720616E63657374-
   222 0000270C 6F7273290D0A0000-  
   222 0000270C <rep 3h>           
   223                                  
   224                                  %if (_BOOTLDR && _CHECKSUM) || _CHECKSUM_NEW
   225                                  	align 2, db 0
   226                                  .build_inicheck:
   227                                  	fill_at_least 64, 0, asciz _REVISIONID_INICHECK
   228                                  %endif
   229                                  
   230                                  %if _BOOTLDR
   231                                  	align 2, db 0
   232                                  .build_ldosboot:
   233 00002716 55736573206C646F73-     	fill_at_least 64, 0, asciz _REVISIONID_LDOSBOOT
   233 0000271F 626F6F743A20526576-
   233 00002728 6973696F6E20494420-
   233 00002731 686720616665663734-
   233 0000273A 383534363062202831-
   233 00002743 30323220616E636573-
   233 0000274C 746F7273290D0A0000-
   233 0000274C <rep 2h>           
   234                                  %endif
   235                                  
   236                                  %if _EXTHELP
   237                                  .build_long: helppage build
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 00002756 1E02                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002758 <bin 21Eh>          <1>  incbin %%includename
    47                              <1> %%end:
   238                                  %endif
   239                                  %if ! _EXTHELP || _HELP_COMPRESSED
   240                                   %if _BOOTLDR
   241 00002976 00                      	asciz
   242                                  	; This message is used by mak.sh to detect that we
   243                                  	;  are building with boot load support.
   244 00002977 0D0A426F6F74206C6F-     	db 13,10,"Boot loader",13,10
   244 00002980 616465720D0A       
   245 00002986 00                      	asciz
   246                                   %endif
   247                                  %endif
   248                                  
   249                                  %if _EXTHELP
   250                                  	usemessagesegment
   250          ------------------       note: usesection MESSAGESEGMENT
   251                                  .license: helppage license
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00002987 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00002988 EE01                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000298A <bin 1EEh>          <1>  incbin %%includename
    47                              <1> %%end:
   252                                  
   253                                  	usemessagesegment
   253          ------------------       note: usesection MESSAGESEGMENT
   254                                  .reghelp: helppage regs
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 00002B78 2601                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002B7A <bin 126h>          <1>  incbin %%includename
    47                              <1> %%end:
   255                                  
   256                                  	usemessagesegment
   256          ------------------       note: usesection MESSAGESEGMENT
   257                                  .flaghelp: helppage flags
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 00002CA0 B801                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002CA2 <bin 1B8h>          <1>  incbin %%includename
    47                              <1> %%end:
   258                                  
   259                                   %if _COND
   260                                  	usemessagesegment
   260          ------------------       note: usesection MESSAGESEGMENT
   261                                  .condhelp: helppage cond
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 00002E5A C801                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002E5C <bin 1C8h>          <1>  incbin %%includename
    47                              <1> %%end:
   262                                   %endif
   263                                  
   264                                   %if _EXPRESSIONS
   265                                  	usemessagesegment
   265          ------------------       note: usesection MESSAGESEGMENT
   266                                  .expressionhelp: helppage expr
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 00003024 4305                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003026 <bin 543h>          <1>  incbin %%includename
    47                              <1> %%end:
   267                                   %endif
   268                                  
   269                                   %if _OPTIONS
   270                                  	usemessagesegment
   270          ------------------       note: usesection MESSAGESEGMENT
   271                                  .options_1: helppage options1
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00003569 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 0000356A 0903                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000356C <bin 309h>          <1>  incbin %%includename
    47                              <1> %%end:
   272                                  
   273                                  	usemessagesegment
   273          ------------------       note: usesection MESSAGESEGMENT
   274                                  .options_2: helppage options2
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00003875 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00003876 0502                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003878 <bin 205h>          <1>  incbin %%includename
    47                              <1> %%end:
   275                                  
   276                                  	usemessagesegment
   276          ------------------       note: usesection MESSAGESEGMENT
   277                                  .options_3: helppage options3
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00003A7D 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00003A7E 7902                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003A80 <bin 279h>          <1>  incbin %%includename
    47                              <1> %%end:
   278                                  
   279                                  	usemessagesegment
   279          ------------------       note: usesection MESSAGESEGMENT
   280                                  .options_4: helppage options4, 1
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00003CF9 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00003CFA F600                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003CFC <bin F6h>           <1>  incbin %%includename
    47                              <1> %%end:
   281                                  	; terminator is in .options_5
   282                                  
   283                                  	usemessagesegment
   283          ------------------       note: usesection MESSAGESEGMENT
   284                                  	align 2, db 0
   285                                  .options_5:
   286                                  %if _HELP_COMPRESSED
   287                                   %if _LZEXEDAT	; lzexedat:
   288 00003DF2 05000200000000          	countedw 2, 0, 0, 0, 0
   289                                  		; tag 0002h
   290                                  		; combined 0000h
   291                                  		; escaped 00h
   292                                   %else		; heatshrink:
   293                                  	dw 2		; length of compressed data (excluding itself)
   294                                  	db 10, 4	; parameters expected by depack, -w then -l
   295                                   %endif
   296                                  %else
   297                                  	asciz
   298                                  %endif
   299                                  
   300                                  	usemessagesegment
   300          ------------------       note: usesection MESSAGESEGMENT
   301                                  .options_6: helppage options6
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00003DF9 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00003DFA 3C02                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003DFC <bin 23Ch>          <1>  incbin %%includename
    47                              <1> %%end:
   302                                  
   303                                  	usemessagesegment
   303          ------------------       note: usesection MESSAGESEGMENT
   304                                  .flags_1: helppage optionsi
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 00004038 7302                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000403A <bin 273h>          <1>  incbin %%includename
    47                              <1> %%end:
   305                                  
   306                                  	usemessagesegment
   306          ------------------       note: usesection MESSAGESEGMENT
   307                                  .asmoptions_1: helppage optionsa
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 000042AD 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 000042AE 2802                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000042B0 <bin 228h>          <1>  incbin %%includename
    47                              <1> %%end:
   308                                   %endif
   309                                  
   310                                   %if _VARIABLES || _OPTIONS || _PSPVARIABLES
   311                                  	usemessagesegment
   311          ------------------       note: usesection MESSAGESEGMENT
   312                                  .varhelp: helppage vars
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 000044D8 6801                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000044DA <bin 168h>          <1>  incbin %%includename
    47                              <1> %%end:
   313                                   %endif
   314                                  %endif
   315                                  
   316                                  	usesection lDEBUG_DATA_ENTRY
   316          ------------------       note: usesection lDEBUG_DATA_ENTRY
   317 00000050 54686973206C446562-     .readonly:	asciz "This lDebug variable cannot be written to. See ?V.",13,10
   317 00000059 756720766172696162-
   317 00000062 6C652063616E6E6F74-
   317 0000006B 206265207772697474-
   317 00000074 656E20746F2E205365-
   317 0000007D 65203F562E0D0A00   
   318 00000085 54686973206D656D6F-     .readonly_mem:	asciz "This memory variable cannot be written to.",13,10
   318 0000008E 727920766172696162-
   318 00000097 6C652063616E6E6F74-
   318 000000A0 206265207772697474-
   318 000000A9 656E20746F2E0D0A00 
   319                                  %if _MMXSUPP
   320                                  .internal_error_no_mmx:
   321 000000B2 496E7465726E616C20-     		asciz "Internal error, MMX variables not supported.",13,10
   321 000000BB 6572726F722C204D4D-
   321 000000C4 58207661726961626C-
   321 000000CD 6573206E6F74207375-
   321 000000D6 70706F727465642E0D-
   321 000000DF 0A00               
   322                                  %endif
   323                                  %if _PM
   324                                  .readonly_verifysegm:
   325 000000E1 4D656D6F7279207573-     		db "Memory using selector "
   325 000000EA 696E672073656C6563-
   325 000000F3 746F7220           
   326                                  .readonly_verifysegm.selector:
   327 000000F7 2D2D2D2D2069732069-     		asciz "---- is inaccessible for writing.",13,10
   327 00000100 6E6163636573736962-
   327 00000109 6C6520666F72207772-
   327 00000112 6974696E672E0D0A00 
   328                                  %endif
   329 0000011B 5B6D6F72655D            .more:		db "[more]"
   330                                   .more_size equ $-.more
   331 00000121 0D                      .more_over:	db 13
   332 00000122 20<rep 6h>              		times .more_size db 32
   333 00000128 0D                      		db 13		; to overwrite previous prompt
   334                                   .more_over_size equ $-.more_over
   335 00000129 5E430D0A                .ctrlc:		db "^C",13,10
   336                                   .ctrlc_size equ $-.ctrlc
   337 0000012D 00                       		asciz
   338                                  .freedos_ctrlc_workaround:
   339 0000012E 20284F6C6420467265-     		asciz " (Old FreeDOS kernel Ctrl-C work around happened)",13,10
   339 00000137 65444F53206B65726E-
   339 00000140 656C204374726C2D43-
   339 00000149 20776F726B2061726F-
   339 00000152 756E64206861707065-
   339 0000015B 6E6564290D0A00     
   340                                  .not_while_indos:
   341 00000162 436F6D6D616E64206E-     		asciz "Command not supported while in InDOS mode.",13,10
   341 0000016B 6F7420737570706F72-
   341 00000174 746564207768696C65-
   341 0000017D 20696E20496E444F53-
   341 00000186 206D6F64652E0D0A00 
   342 0000018F 43757272656E74206D-     .rv_mode.before:	asciz "Current mode: "
   342 00000198 6F64653A2000       
   343                                  %if _PM
   344 0000019E 44504D492031362D62-     .rv_mode_dpmi_16:	asciz "DPMI 16-bit CS",13,10
   344 000001A7 69742043530D0A00   
   345 000001AF 44504D492033322D62-     .rv_mode_dpmi_32:	asciz "DPMI 32-bit CS",13,10
   345 000001B8 69742043530D0A00   
   346                                  %endif
   347 000001C0 5265616C203836204D-     .rv_mode_r86m:		asciz "Real 86 Mode",13,10
   347 000001C9 6F64650D0A00       
   348 000001CF 5669727475616C2038-     .rv_mode_v86m:		asciz "Virtual 86 Mode",13,10
   348 000001D8 36204D6F64650D0A00 
   349                                  
   350 000001E1 333836207265676973-     .regs386:	asciz "386 registers are "
   350 000001EA 746572732061726520-
   350 000001F3 00                 
   351 000001F4 6E6F7420                .regs386_off:db "not "
   352 000001F8 646973706C61796564-     .regs386_on:	asciz "displayed",13,10
   352 00000201 0D0A00             
   353                                  
   354                                  %if _EMS
   355                                  	usemessagesegment
   356                                  .xhelp: helppage ems
   357                                  %endif
   358                                  
   359                                  %if _PM
   360                                  	usesection lDEBUG_DATA_ENTRY
   360          ------------------       note: usesection lDEBUG_DATA_ENTRY
   361 00000204 4445534300              .desc:	asciz "DESC"
   362                                  	usemessagesegment
   362          ------------------       note: usesection MESSAGESEGMENT
   363                                  .deschelp: helppage desc
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 00004642 9200                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00004644 <bin 92h>           <1>  incbin %%includename
    47                              <1> %%end:
   364                                  %endif
   365                                  
   366                                  %ifn _MESSAGESEGMENT
   367                                  messagesegment_truncated_size equ 0
   368                                  	endarea messagesegment_truncated, 1
   369                                  messagesegment_nobits_truncated_size equ 0
   370                                  	endarea messagesegment_nobits_truncated, 1
   371                                  %endif
   372                                  
   373                                  %ifn _LINK
   374                                  %if !_BOOTLDR_DISCARD_HELP && _MESSAGESEGMENT
   375                                  messagesegment_truncated_size equ messagesegment_size
   376                                  	endarea messagesegment_truncated, 1
   377                                  messagesegment_nobits_truncated_size equ messagesegment_nobits_size
   378                                  	endarea messagesegment_nobits_truncated, 1
   379                                  %endif
   380                                  %if _EXTHELPBOOT
   381                                   %if _BOOTLDR
   382                                  	usemessagesegment
   383                                   %if _BOOTLDR_DISCARD_HELP
   384                                  	align 2, db 0
   385                                  messagesegment_truncated_size equ fromparas(paras($ - messagesegment_start + fromwords(imsg.boothelp_replacement_size_w)))
   386                                  	endarea messagesegment_truncated, 1
   387                                   %endif
   388                                  .boothelp: helppage boot
   389                                   %if _BOOTLDR_DISCARD_HELP
   390                                  
   391                                  truncated_message_last equ .boothelp + fromwords(imsg.boothelp_replacement_size_w)
   392                                  	absolute truncated_message_last
   393                                  %if _HELP_COMPRESSED
   394                                  	alignb 16
   395                                  truncated_hshrink_message_buffer: equ $
   396                                  		resb hshrink_message_buffer_size
   397                                  %endif
   398                                  
   399                                  	alignb 16
   400                                  messagesegment_nobits_truncated_size equ $ - $$
   401                                  	endarea messagesegment_nobits_truncated, 1
   402                                   %endif
   403                                   %endif
   404                                  %endif
   405                                  
   406                                  %else	; _LINK
   407                                  
   408                                   global behind_messagesegment_truncated
   409                                  
   410                                  %if !_BOOTLDR_DISCARD_HELP && _MESSAGESEGMENT
   411                                  behind_messagesegment_truncated equ behind_messagesegment
   412                                  behind_messagesegment_nobits_truncated equ behind_messagesegment_nobits
   413                                  %endif
   414                                  %if _EXTHELPBOOT
   415                                   %if _BOOTLDR
   416                                  	usemessagesegment
   416          ------------------       note: usesection MESSAGESEGMENT
   417                                   %if _BOOTLDR_DISCARD_HELP
   418                                  	align 2, db 0
   419                                  %push
   420                                  %define GET_MESSAGE_LENGTH
   421                                   %include "help/bootdisc.asm"
     1                              <1> %if 0
     2                              <1> 
     3                              <1> lDebug help message pages
     4                              <1> 
     5                              <1> Copyright (C) 1995-2003 Paul Vojta
     6                              <1> Copyright (C) 2008-2023 E. C. Masloch
     7                              <1> 
     8                              <1> Usage of the works is permitted provided that this
     9                              <1> instrument is retained with the works, so that any entity
    10                              <1> that uses the works is notified of this instrument.
    11                              <1> 
    12                              <1> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    13                              <1> 
    14                              <1> %endif
    15                              <1> 
    16                              <1> %define MESSAGE "This help page is only available in boot loaded mode.",13,10
    17                              <1> 
    18                              <1> %ifndef GET_MESSAGE_LENGTH
    19                              <1> %ifndef MESSAGE_INLINE
    20                              <1>  %include "debug.mac"
    21                              <1> %endif
    22                              <1> 
    23                              <1> 	db MESSAGE
    24                              <1> %else
    25                              <1> 	_strlen MESSAGE,0
    26                              <1> %endif
   422                                  %undef GET_MESSAGE_LENGTH
   423                                  bootldr_discard_help_page_length equ fromwords(words(%$len))
   424                                  %pop
   425                                  	absolute $
   426                                  	alignb 2
   427 000046D6 <res 38h>               	resb bootldr_discard_help_page_length
   428 0000470E ????                    	alignb 16
   429                                  behind_messagesegment_truncated: equ $
   430                                  	usemessagesegment
   430          ------------------       note: usesection MESSAGESEGMENT
   431                                   %endif
   432                                  .boothelp: helppage boot
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 000046D6 CC05                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000046D8 <bin 5CCh>          <1>  incbin %%includename
    47                              <1> %%end:
   433                                   %if _BOOTLDR_DISCARD_HELP
   434                                  
   435                                  truncated_message_last equ .boothelp + bootldr_discard_help_page_length
   436                                  	absolute truncated_message_last
   437                                  %if _HELP_COMPRESSED
   438 0000470E ????                    	alignb 16
   439                                  truncated_hshrink_message_buffer: equ $
   440 00004710 <res B0Ah>              		resb hshrink_message_buffer_size
   441                                  %endif
   442                                  
   443 0000521A ????????????            	alignb 16
   444                                  behind_messagesegment_nobits_truncated: equ $
   445                                   %endif
   446                                   %endif
   447                                  %endif
   448                                  
   449                                  	usesection MESSAGESEGMENT
   449          ------------------       note: usesection MESSAGESEGMENT
   450 00004CA4 00<rep Ch>              	align 16, db 0
   451                                  behind_messagesegment: equ $
   452                                  	absolute $
   453                                  %if _HELP_COMPRESSED
   454                                  	alignb 16
   455                                  nontruncated_hshrink_message_buffer: equ $
   456                                  hshrink_message_buffer: equ $
   457 00004CB0 <res B0Ah>              		resb hshrink_message_buffer_size
   458                                  %endif
   459 000057BA ????????????            	alignb 16
   460                                  behind_messagesegment_nobits: equ $
   461                                  %endif	; _LINK
   462                                  
   463                                  	usesection lDEBUG_DATA_ENTRY
   463          ------------------       note: usesection lDEBUG_DATA_ENTRY
   464                                  %if _TSR
   465 00000209 43616E6E6F7420676F-     .pspnotfound:	asciz "Cannot go resident, child PSP not found.",13,10
   465 00000212 207265736964656E74-
   465 0000021B 2C206368696C642050-
   465 00000224 5350206E6F7420666F-
   465 0000022D 756E642E0D0A00     
   466 00000234 43616E6E6F7420676F-     .psphooked:	asciz "Cannot go resident, child PSP parent return address hooked.",13,10
   466 0000023D 207265736964656E74-
   466 00000246 2C206368696C642050-
   466 0000024F 535020706172656E74-
   466 00000258 2072657475726E2061-
   466 00000261 64647265737320686F-
   466 0000026A 6F6B65642E0D0A00   
   467 00000272 506174636865642050-     .nowtsr1:	asciz "Patched PSP at "
   467 0000027B 53502061742000     
   468 00000282 2C206E6F7720726573-     .nowtsr2:	asciz ", now resident.",13,10
   468 0000028B 6964656E742E0D0A00 
   469 00000294 416C72656164792072-     .alreadytsr:	asciz "Already resident.",13,10
   469 0000029D 65736964656E742E0D-
   469 000002A6 0A00               
   470                                  .tsr_cannot_terminate_attached:
   471 000002A8 43616E6E6F74207465-     		asciz "Cannot terminate attached while resident.",13,10
   471 000002B1 726D696E6174652061-
   471 000002BA 747461636865642077-
   471 000002C3 68696C652072657369-
   471 000002CC 64656E742E0D0A00   
   472                                  .tsr_cannot_ll:
   473 000002D4 43616E6E6F74206C6F-     		asciz "Cannot load process while resident. Use R DCO7 CLR= ",_4digitshex(opt7_no_tsr_ll)," to override.",13,10
   473 000002DD 61642070726F636573-
   473 000002E6 73207768696C652072-
   473 000002EF 65736964656E742E20-
   473 000002F8 55736520522044434F-
   473 00000301 3720434C523D203230-
   473 0000030A 303020746F206F7665-
   473 00000313 72726964652E0D0A00 
   474                                  %endif
   475                                  %if _ATTACH
   476 0000031C 4E6F74207965742072-     .notyettsr:	asciz "Not yet resident. Cannot attach.",13,10
   476 00000325 65736964656E742E20-
   476 0000032E 43616E6E6F74206174-
   476 00000337 746163682E0D0A00   
   477 0000033F 496E76616C69642050-     .invalidpsp:	asciz "Invalid PSP specified. Cannot attach.",13,10
   477 00000348 535020737065636966-
   477 00000351 6965642E2043616E6E-
   477 0000035A 6F7420617474616368-
   477 00000363 2E0D0A00           
   478 00000367 53656C662D6F776E65-     .selfownedpsp:	asciz "Self-owned PSP specified. Cannot attach.",13,10
   478 00000370 642050535020737065-
   478 00000379 6369666965642E2043-
   478 00000382 616E6E6F7420617474-
   478 0000038B 6163682E0D0A00     
   479 00000392 506174636865642050-     .nowattached:	asciz "Patched PSP, now attached.",13,10
   479 0000039B 53502C206E6F772061-
   479 000003A4 747461636865642E0D-
   479 000003AD 0A00               
   480 000003AF 41545441434800          .attach:	asciz "ATTACH"
   481                                  %endif
   482                                  %if _PM && (_TSR || _BOOTLDR)
   483 000003B6 43616E6E6F74207175-     .cannotpmquit:	asciz "Cannot quit, still in protected mode.",13,10
   483 000003BF 69742C207374696C6C-
   483 000003C8 20696E2070726F7465-
   483 000003D1 63746564206D6F6465-
   483 000003DA 2E0D0A00           
   484                                  %endif
   485                                  %if _PM
   486 000003DE 50726F63657373206C-     .cannotpmload:	asciz "Process loading aborted: Still in protected mode.",13,10
   486 000003E7 6F6164696E67206162-
   486 000003F0 6F727465643A205374-
   486 000003F9 696C6C20696E207072-
   486 00000402 6F746563746564206D-
   486 0000040B 6F64652E0D0A00     
   487                                  %endif
   488                                  %if _BOOTLDR
   489 00000412 436F6D6D616E64206E-     .nobootsupp:	asciz "Command not supported in boot loaded mode.",13,10
   489 0000041B 6F7420737570706F72-
   489 00000424 74656420696E20626F-
   489 0000042D 6F74206C6F61646564-
   489 00000436 206D6F64652E0D0A00 
   490 0000043F 53687574646F776E20-     .boot_quit_fail:asciz "Shutdown not supported.",13,10
   490 00000448 6E6F7420737570706F-
   490 00000451 727465642E0D0A00   
   491 00000459 426F6F74206661696C-     .bootfail:	asciz "Boot failure: "
   491 00000462 7572653A2000       
   492 00000468 52656164696E672073-     .bootfail_read:	db "Reading sector failed (error "
   492 00000471 6563746F7220666169-
   492 0000047A 6C656420286572726F-
   492 00000483 7220               
   493 00000485 5F5F68292E0D0A00        .bootfail_read_errorcode:	asciz "__h).",13,10
   494 0000048D 426F6F742073656374-     .bootfail_sig:	asciz "Boot sector signature missing (is not AA55h).",13,10
   494 00000496 6F72207369676E6174-
   494 0000049F 757265206D69737369-
   494 000004A8 6E6720286973206E6F-
   494 000004B1 74204141353568292E-
   494 000004BA 0D0A00             
   495 000004BD 506172746974696F6E-     .bootfail_sig_parttable:	ascii "Partition table signature missing"
   495 000004C6 207461626C65207369-
   495 000004CF 676E6174757265206D-
   495 000004D8 697373696E67       
   496 000004DE 20286973206E6F7420-     				asciz " (is not AA55h).",13,10
   496 000004E7 4141353568292E0D0A-
   496 000004F0 00                 
   497 000004F1 426F6F742073656374-     .bootfail_code:	asciz "Boot sector code invalid (is 0000h).",13,10
   497 000004FA 6F7220636F64652069-
   497 00000503 6E76616C6964202869-
   497 0000050C 73203030303068292E-
   497 00000515 0D0A00             
   498                                  .bootfail_secsizediffer:
   499 00000518 425042204270532064-     		asciz "BPB BpS differs from actual sector size.",13,10
   499 00000521 696666657273206672-
   499 0000052A 6F6D2061637475616C-
   499 00000533 20736563746F722073-
   499 0000053C 697A652E0D0A00     
   500                                  .bootfail_stack_underflow:
   501 00000543 426F6F742073746163-     		asciz "Boot stack underflowed.",13,10
   501 0000054C 6B20756E646572666C-
   501 00000555 6F7765642E0D0A00   
   502                                  .bootfail_check_mismatch:
   503 0000055D 436865636B206D6973-     		db "Check mismatch, expected "
   503 00000566 6D617463682C206578-
   503 0000056F 70656374656420     
   504                                  .bootfail_check_mismatch.check_value:
   505 00000576 5F5F5F5F6820617420-     		db "____h at offset "
   505 0000057F 6F666673657420     
   506                                  .bootfail_check_mismatch.check_offset:
   507 00000586 5F5F5F5F6820627574-     		db "____h but has "
   507 0000058F 2068617320         
   508                                  .bootfail_check_mismatch.check_got:
   509 00000594 5F5F5F5F682E0D0A00      		asciz "____h.",13,10
   510 0000059D 4F7574206F66206D65-     .boot_out_of_memory_error:	asciz "Out of memory.", 13,10
   510 000005A6 6D6F72792E0D0A00   
   511 000005AE 546F6F206D616E7920-     .boot_too_many_partitions_error:asciz "Too many partitions (or a loop).",13,10
   511 000005B7 706172746974696F6E-
   511 000005C0 7320286F722061206C-
   511 000005C9 6F6F70292E0D0A00   
   512 000005D1 506172746974696F6E-     .boot_partition_cycle_error:	asciz "Partition table cycle detected.",13,10
   512 000005DA 207461626C65206379-
   512 000005E3 636C65206465746563-
   512 000005EC 7465642E0D0A00     
   513 000005F3 506172746974696F6E-     .boot_partition_not_found:	asciz "Partition not found.",13,10
   513 000005FC 206E6F7420666F756E-
   513 00000605 642E0D0A00         
   514 0000060A 52656164206572726F-     .boot_access_error:	asciz "Read error.", 13,10
   514 00000613 722E0D0A00         
   515 00000618 536563746F72207369-     .boot_sector_too_large:	asciz "Sector size too small (< 32 bytes).", 13,10
   515 00000621 7A6520746F6F20736D-
   515 0000062A 616C6C20283C203332-
   515 00000633 206279746573292E0D-
   515 0000063C 0A00               
   516 0000063E 536563746F72207369-     .boot_sector_too_small:	asciz "Sector size too large (> 8192 bytes).", 13,10
   516 00000647 7A6520746F6F206C61-
   516 00000650 72676520283E203831-
   516 00000659 393220627974657329-
   516 00000662 2E0D0A00           
   517 00000666 536563746F72207369-     .boot_sector_not_power:	asciz "Sector size not a power of two.", 13,10
   517 0000066F 7A65206E6F74206120-
   517 00000678 706F776572206F6620-
   517 00000681 74776F2E0D0A00     
   518 00000688 496E76616C69642067-     .boot_invalid_sectors:	asciz "Invalid geometry sectors.", 13,10
   518 00000691 656F6D657472792073-
   518 0000069A 6563746F72732E0D0A-
   518 000006A3 00                 
   519 000006A4 496E76616C69642067-     .boot_invalid_heads:	asciz "Invalid geometry heads.", 13,10
   519 000006AD 656F6D657472792068-
   519 000006B6 656164732E0D0A00   
   520 000006BE 46696C65206E6F7420-     .boot_file_not_found:	asciz "File not found.",13,10
   520 000006C7 666F756E642E0D0A00 
   521 000006D0 46696C6520746F6F20-     .boot_file_too_big_error:	asciz "File too big.",13,10
   521 000006D9 6269672E0D0A00     
   522 000006E0 46696C6520746F6F20-     .boot_file_too_small_error:	asciz "File too small.",13,10
   522 000006E9 736D616C6C2E0D0A00 
   523 000006F2 42616420616D6F756E-     .boot_badclusters:	asciz "Bad amount of clusters.",13,10
   523 000006FB 74206F6620636C7573-
   523 00000704 746572732E0D0A00   
   524 0000070C 42616420636C757374-     .boot_badchain:		asciz "Bad cluster chain.",13,10
   524 00000715 657220636861696E2E-
   524 0000071E 0D0A00             
   525 00000721 4261642046696C6520-     .boot_badfat:		asciz "Bad File Allocation Table.",13,10
   525 0000072A 416C6C6F636174696F-
   525 00000733 6E205461626C652E0D-
   525 0000073C 0A00               
   526 0000073E 496E76616C69642066-     .boot_invalid_filename:	asciz "Invalid filename.",13,10
   526 00000747 696C656E616D652E0D-
   526 00000750 0A00               
   527 00000752 43616E6E6F74207365-     .boot_cannot_set_both:	asciz "Cannot set both "
   527 0000075B 7420626F74682000   
   528 00000763 20616E642000            .boot_and:		asciz " and "
   529 00000769 2E0D0A00                .boot_dot_crlf:		asciz ".",13,10
   530 0000076D 2120496E7465726E61-     .boot_internal_error:	asciz "! Internal error !",13,10
   530 00000776 6C206572726F722021-
   530 0000077F 0D0A00             
   531 00000782 42504220616E64206C-     .boot_bpb_load_overlap:	asciz "BPB and load area overlap.",13,10
   531 0000078B 6F6164206172656120-
   531 00000794 6F7665726C61702E0D-
   531 0000079D 0A00               
   532 0000079F 5365676D656E742074-     .boot_segment_too_low:	asciz "Segment too low.",13,10
   532 000007A8 6F6F206C6F772E0D0A-
   532 000007B1 00                 
   533 000007B2 42504220746F6F206C-     .boot_bpb_too_low:	asciz "BPB too low.",13,10
   533 000007BB 6F772E0D0A00       
   534 000007C1 2120496E7465726E61-     .boot_auxbuff_crossing:	db "! Internal error !, "
   534 000007CA 6C206572726F722021-
   534 000007D3 2C20               
   535 000007D5 617578627566662063-     			asciz "auxbuff crosses 64 KiB boundary.",13,10
   535 000007DE 726F73736573203634-
   535 000007E7 204B694220626F756E-
   535 000007F0 646172792E0D0A00   
   536 000007F8 5245414400              .read:		asciz "READ"
   537 000007FD 575249544500            .write:		asciz "WRITE"
   538 00000803 48494444454E00          .hidden:	asciz "HIDDEN"
   539 0000080A 48494444454E414444-     .hiddenadd:	asciz "HIDDENADD"
   539 00000813 00                 
   540 00000814 44495200                .dir:		asciz "DIR"
   541 00000818 082020205B4449525D      .dirinsteadsize:countedb "   [DIR]"
   542 00000821 2F00                    .emptydirname:	asciz "/"
   543 00000823 424F4F5400              .boot:		asciz "BOOT"
   544 00000828 5155495400              .quit:		asciz "QUIT"
   545 0000082D 50524F544F434F4C00      .protocol:	asciz "PROTOCOL"
   546 00000836 5345474D454E5400        .segment:	asciz "SEGMENT"
   547 0000083E 454E54525900            .entry:		asciz "ENTRY"
   548 00000844 42504200                .bpb:		asciz "BPB"
   549 00000848 4D494E5041524100        .minpara:	asciz "MINPARA"
   550 00000850 4D41585041524100        .maxpara:	asciz "MAXPARA"
   551 00000858 434845434B4F464653-     .checkoffset:	asciz "CHECKOFFSET"
   551 00000861 455400             
   552 00000864 434845434B56414C55-     .checkvalue:	asciz "CHECKVALUE"
   552 0000086D 4500               
   553 0000086F 534543544F5200          .sector:	asciz "SECTOR"
   554 00000876 534543544F52414C54-     .sector_alt:	asciz "SECTORALT"
   554 0000087F 00                 
   555 00000880 4B45524E454C2E5359-     .freedos_kernel_name:	asciz "KERNEL.SYS"
   555 00000889 5300               
   556 0000088B 49504C2E53595300        .dosc_kernel_name:	asciz "IPL.SYS"
   557 00000893 445242494F2E535953-     .edrdos_kernel_name:	asciz "DRBIO.SYS"
   557 0000089C 00                 
   558 0000089D 4C444F532E434F4D00      .ldos_kernel_name:	asciz "LDOS.COM"
   559                                  .msdos7_kernel_name:
   560 000008A6 494F2E53595300          .msdos6_kernel_name:	asciz "IO.SYS"
   561 000008AD 4D53444F532E535953-     .msdos6_add_name:	asciz "MSDOS.SYS"
   561 000008B6 00                 
   562 000008B7 49424D42494F2E434F-     .ibmdos_kernel_name:	asciz "IBMBIO.COM"
   562 000008C0 4D00               
   563 000008C2 49424D444F532E434F-     .ibmdos_add_name:	asciz "IBMDOS.COM"
   563 000008CB 4D00               
   564 000008CD 4E544C445200            .ntldr_kernel_name:	asciz "NTLDR"
   565 000008D3 424F4F544D475200        .bootmgr_kernel_name:	asciz "BOOTMGR"
   566 000008DB 424F4F54534543542E-     .chain_kernel_name:	asciz "BOOTSECT.DOS"
   566 000008E4 444F5300           
   567 000008E8 5258444F5342494F2E-     .rxdos.0_kernel_name:	asciz "RXDOSBIO.SYS"
   567 000008F1 53595300           
   568 000008F5 525842494F2E535953-     .rxdos.1_kernel_name:	asciz "RXBIO.SYS"
   568 000008FE 00                 
   569                                  .rxdos.0_add_name:
   570 000008FF 5258444F532E535953-     .rxdos.1_add_name:	asciz "RXDOS.SYS"
   570 00000908 00                 
   571 00000909 5258444F532E434F4D-     .rxdos.2_kernel_name:	asciz "RXDOS.COM"
   571 00000912 00                 
   572 00000913 00                      .addname_empty:		asciz
   573 00000914 43616E6E6F74207175-     .cannotbootquit_memsizes:	asciz "Cannot quit, memory size changed.",13,10
   573 0000091D 69742C206D656D6F72-
   573 00000926 792073697A65206368-
   573 0000092F 616E6765642E0D0A00 
   574                                  %endif
   575 00000938 554E                    .uninstall:	db "UN"
   576 0000093A 494E5354414C4C00        .install:	asciz "INSTALL"
   577 00000942 544F47474C4500          .toggle:	asciz "TOGGLE"
   578 00000949 20697320616C726561-     .alreadyenabled:asciz " is already enabled.",13,10
   578 00000952 647920656E61626C65-
   578 0000095B 642E0D0A00         
   579 00000960 20697320616C726561-     .alreadydisabled:asciz " is already disabled.",13,10
   579 00000969 64792064697361626C-
   579 00000972 65642E0D0A00       
   580 00000978 3A20547279696E6720-     .tryenable:	asciz ": Trying to enable.",13,10
   580 00000981 746F20656E61626C65-
   580 0000098A 2E0D0A00           
   581 0000098E 3A20547279696E6720-     .trydisable:	asciz ": Trying to disable.",13,10
   581 00000997 746F2064697361626C-
   581 000009A0 652E0D0A00         
   582                                  %if _LOADER
   583                                  .move:		asciz "MOVE"
   584                                  .bottom:	asciz "BOTTOM"
   585                                  .isnow:		asciz "Now i"
   586                                  .isalready:	asciz "Already i"
   587                                  .isbottom:	asciz "Is resident at bottom.",13,10
   588                                  .istop:		asciz "Is resident at top.",13,10
   589                                  .ishidden:	asciz "Is resident beyond top (hidden).",13,10
   590                                  .move_empty:		asciz "Error: Empty N extension query!",13,10
   591                                  .move_must_be_bottom:	asciz "Error: Must be at bottom to install N extension!",13,10
   592                                  .move_rpl:		asciz "Error: RPL present!",13,10
   593                                  .move_nottop:		asciz "Error: NLDR not hidden at top!",13,10
   594                                  .move_oom:		asciz "Error: Out of memory!",13,10
   595                                  .move_ebdanottop:	asciz "Error: EBDA not at top of memory!",13,10
   596                                  .move_toolargeebda:	asciz "Error: EBDA too large!",13,10
   597                                  .unsupportedmove:	asciz "Error: This movement is not supported!",13,10
   598                                  .move_auxbuff_error:	asciz "Error: Auxiliary buffer cannot be placed!",13,10
   599                                  .move_auxup:		asciz "Auxiliary buffer moved up.",13,10
   600                                  .move_auxdown:		asciz "Auxiliary buffer moved down.",13,10
   601                                  .move_int_panic:	db "Critical "
   602                                  .move_int_error:	asciz "Error: An interrupt hook cannot be unhooked!",13,10
   603                                  .loader_bottom_not_allowed:
   604                                  	asciz "Error: Boot sector load disallowed while resident at bottom!",13,10
   605                                  .loader_too_low_load:
   606                                  	asciz "Error: Load segment intersects loader resident at bottom!",13,10
   607                                  .loader_error:
   608                                  	asciz "Error: Debugger load invariant broken, not supported!",13,10
   609                                  .godebug:		asciz "GODEBUG"
   610                                  .loader_must_be_hidden:
   611                                  	asciz "Error: Go Debug command must be run from hidden.",13,10
   612                                  .loader_extra:
   613                                  	asciz "Error: Extended lsvExtra entry not found.",13,10
   614                                  .loader_stack:
   615                                  	asciz "Error: Load Stack Variables allocation too small!",13,10
   616                                  .loader_loadseg_low:
   617                                  	asciz "Error: Load end segment in LSV too low.",13,10
   618                                  .loader_sign:
   619                                  	asciz "Error: Loader support signature not found.",13,10
   620                                  .loader_flag:
   621                                  	asciz "Error: Loader support unknown flag set.",13,10
   622                                  	align 4, db 0
   623                                  	dw 0		; make sure this is word-aligned but not para-aligned
   624                                  .loadsupportsignature:
   625                                  	db "LOAD","ERSU","PPOR","T00"	; signature and version
   626                                  .loadsupportsignature.size equ $ - .loadsupportsignature
   627                                  %endif
   628                                  %if _AREAS_HOOK_SERVER || (_AREAS && _AREAS_HOOK_CLIENT)
   629                                  .qqlate_areas_error:
   630 000009A5 496E7465726E616C20-     		asciz "Internal error in Q command uninstalling areas.",13,10
   630 000009AE 6572726F7220696E20-
   630 000009B7 5120636F6D6D616E64-
   630 000009C0 20756E696E7374616C-
   630 000009C9 6C696E672061726561-
   630 000009D2 732E0D0A00         
   631                                  %endif
   632                                  %if _AREAS && _AREAS_HOOK_CLIENT
   633 000009D7 417265617320696E73-     .areasinstalled:	asciz "Areas installed.",13,10
   633 000009E0 74616C6C65642E0D0A-
   633 000009E9 00                 
   634 000009EA 417265617320616C72-     .areasalreadyinstalled:	asciz "Areas already installed.",13,10
   634 000009F3 6561647920696E7374-
   634 000009FC 616C6C65642E0D0A00 
   635 00000A05 4172656173206E6F74-     .areasnodebuggerfound:	asciz "Areas not installed, no debugger AMIS interface found!",13,10
   635 00000A0E 20696E7374616C6C65-
   635 00000A17 642C206E6F20646562-
   635 00000A20 756767657220414D49-
   635 00000A29 5320696E7465726661-
   635 00000A32 636520666F756E6421-
   635 00000A3B 0D0A00             
   636 00000A3E 4172656173206E6F74-     .areasnotsupported:	asciz "Areas not installed, debugger AMIS interface does not support function!",13,10
   636 00000A47 20696E7374616C6C65-
   636 00000A50 642C20646562756767-
   636 00000A59 657220414D49532069-
   636 00000A62 6E7465726661636520-
   636 00000A6B 646F6573206E6F7420-
   636 00000A74 737570706F72742066-
   636 00000A7D 756E6374696F6E210D-
   636 00000A86 0A00               
   637 00000A88 4172656173206E6F74-     .areasnotinstalled:	db "Areas not installed, debugger returned code "
   637 00000A91 20696E7374616C6C65-
   637 00000A9A 642C20646562756767-
   637 00000AA3 65722072657475726E-
   637 00000AAC 656420636F646520   
   638 00000AB4 2D2D682E0D0A00          .areasnotinstalled.code:asciz "--h.",13,10
   639 00000ABB 417265617320616C72-     .areasalreadyuninstalled:	asciz "Areas already uninstalled.",13,10
   639 00000AC4 6561647920756E696E-
   639 00000ACD 7374616C6C65642E0D-
   639 00000AD6 0A00               
   640 00000AD8 417265617320756E69-     .areasuninstalled:		db "Areas uninstalled, debugger returned code "
   640 00000AE1 6E7374616C6C65642C-
   640 00000AEA 206465627567676572-
   640 00000AF3 2072657475726E6564-
   640 00000AFC 20636F646520       
   641 00000B02 2D2D682E0D0A00          .areasuninstalled.code:		asciz "--h.",13,10
   642                                  %endif
   643 00000B09 5448454E00              .then:		asciz "THEN"
   644 00000B0E 4E4F5400                .not:		asciz "NOT"
   645 00000B12 52565600                .rvv:		asciz "RVV"
   646 00000B16 52564D00                .rvm:		asciz "RVM"
   647 00000B1A 52565000                .rvp:		asciz "RVP"
   648 00000B1E 52564400                .rvd:		asciz "RVD"
   649                                  %if _MMXSUPP && _RM
   650                                  .rm:		asciz "RM"
   651                                  %endif
   652                                  %if _BOOTLDR
   653 00000B22 4D6F64653A20426F6F-     .rvp_boot:		ascizline "Mode: Boot loaded"
   653 00000B2B 74206C6F616465640D-
   653 00000B34 0A00               
   654                                  %endif
   655                                  %if _DEVICE
   656                                   %if _ATTACH
   657 00000B36 4D6F64653A20446576-     .rvp_device_attached:	ascizline "Mode: Device driver attached"
   657 00000B3F 696365206472697665-
   657 00000B48 722061747461636865-
   657 00000B51 640D0A00           
   658                                   %endif
   659 00000B55 4D6F64653A20446576-     .rvp_device:		ascizline "Mode: Device driver"
   659 00000B5E 696365206472697665-
   659 00000B67 720D0A00           
   660                                  %endif
   661                                  %if _APPLICATION
   662                                   %if _TSR
   663 00000B6B 4D6F64653A20417070-     .rvp_tsr:		ascizline "Mode: Application installed as TSR"
   663 00000B74 6C69636174696F6E20-
   663 00000B7D 696E7374616C6C6564-
   663 00000B86 206173205453520D0A-
   663 00000B8F 00                 
   664                                   %endif
   665 00000B90 4D6F64653A20417070-     .rvp_application:	ascizline "Mode: Application"
   665 00000B99 6C69636174696F6E0D-
   665 00000BA2 0A00               
   666                                  %endif
   667 00000BA4 0D436F646520736567-     .vm_codeseg:	counted "Code segment="
   667 00000BAD 6D656E743D         
   668                                  %if _DUALCODE
   669 00000BB2 0E436F646532207365-     .vm_code2seg:	counted "Code2 segment="
   669 00000BBB 676D656E743D       
   670                                  %endif
   671 00000BC1 0D4461746120736567-     .vm_dataseg:	counted "Data segment="
   671 00000BCA 6D656E743D         
   672 00000BCF 0E456E747279207365-     .vm_entryseg:	counted "Entry segment="
   672 00000BD8 676D656E743D       
   673                                  %if _MESSAGESEGMENT
   674 00000BDE 104D65737361676520-     .vm_messageseg:	counted "Message segment="
   674 00000BE7 7365676D656E743D   
   675                                  %endif
   676 00000BEF 104175786275666620-     .vm_auxseg:	counted "Auxbuff segment="
   676 00000BF8 7365676D656E743D   
   677                                  %if _HISTORY_SEPARATE_FIXED && _HISTORY
   678 00000C00 10486973746F727920-     .vm_hisseg:	counted "History segment="
   678 00000C09 7365676D656E743D   
   679                                  %endif
   680                                  %if _PM
   681 00000C11 0A2073656C6563746F-     .vm_selector:	counted " selector="
   681 00000C1A 723D               
   682                                  %endif
   683 00000C1C 0D436C69656E742020-     .vp_pspsegment:		counted "Client   PSP="
   683 00000C25 205053503D         
   684 00000C2A 0D4465627567676572-     .vp_dpspsegment:	counted "Debugger PSP="
   684 00000C33 205053503D         
   685                                  .vp_dparent:
   686 00000C38 0820506172656E743D      .vp_parent:		counted " Parent="
   687                                  .vp_dpra:
   688 00000C41 1720506172656E7420-     .vp_pra:		counted " Parent Return Address="
   688 00000C4A 52657475726E204164-
   688 00000C53 64726573733D       
   689                                  %if _PM
   690                                  .vp_dpspsel:
   691 00000C59 0E205053502053656C-     .vp_pspsel:		counted " PSP Selector="
   691 00000C62 6563746F723D       
   692                                  %endif
   693 00000C68 4E6F74206C6F616465-     .rvd_not_device:	asciz "Not loaded in device mode.",13,10
   693 00000C71 6420696E2064657669-
   693 00000C7A 6365206D6F64652E0D-
   693 00000C83 0A00               
   694                                  %if _DEVICE
   695 00000C85 114465766963652068-     .rvd_deviceheader:	counted "Device header at "
   695 00000C8E 656164657220617420 
   696 00000C97 212E20416D6F756E74-     .rvd_size:		counted ". Amount paragraphs allocated is "
   696 00000CA0 207061726167726170-
   696 00000CA9 687320616C6C6F6361-
   696 00000CB2 74656420697320     
   697                                  %endif
   698 00000CB9 546F6F206C6F6E6720-     .n_toolongtail:	asciz "Too long N command tail!",13,10
   698 00000CC2 4E20636F6D6D616E64-
   698 00000CCB 207461696C210D0A00 
   699 00000CD4 546F6F206C6F6E6720-     .n_toolongname:	asciz "Too long N command name!",13,10
   699 00000CDD 4E20636F6D6D616E64-
   699 00000CE6 206E616D65210D0A00 
   700 00000CEF 4E554D42455200          .number:	asciz "NUMBER"
   701 00000CF6 434F554E54455200        .counter:	asciz "COUNTER"
   702 00000CFE 494400                  .id:		asciz "ID"
   703 00000D01 5748454E00              .when:		asciz "WHEN"
   704 00000D06 4F464653455400          .offset:	asciz "OFFSET"
   705 00000D0D 3F00                    .questionmark:	asciz "?"
   706 00000D0F 4F                      .or:		db "O"
   707 00000D10 5200                    .r:		asciz "R"
   708 00000D12 4E4400                  .nd:		asciz "ND"
   709 00000D15 4C5200                  .lr:		asciz "LR"
   710 00000D18 52454D454D42455200      .remember:	asciz "REMEMBER"
   711 00000D21 474F544F00              .goto:		asciz "GOTO"
   712 00000D26 534F4600                .sof:		asciz "SOF"
   713 00000D2A 454F4600                .eof:		asciz "EOF"
   714 00000D2E 4572726F723A20474F-     .goto_not_file:	asciz "Error: GOTO command not supported when not reading a script.",13,10
   714 00000D37 544F20636F6D6D616E-
   714 00000D40 64206E6F7420737570-
   714 00000D49 706F72746564207768-
   714 00000D52 656E206E6F74207265-
   714 00000D5B 6164696E6720612073-
   714 00000D64 63726970742E0D0A00 
   715 00000D6D 4572726F723A20474F-     .goto_empty:	asciz "Error: GOTO needs a destination label.",13,10
   715 00000D76 544F206E6565647320-
   715 00000D7F 612064657374696E61-
   715 00000D88 74696F6E206C616265-
   715 00000D91 6C2E0D0A00         
   716 00000D96 4572726F723A20474F-     .goto_not_found.1:	asciz "Error: GOTO destination label ",'"'
   716 00000D9F 544F2064657374696E-
   716 00000DA8 6174696F6E206C6162-
   716 00000DB1 656C202200         
   717 00000DB6 22206E6F7420666F75-     .goto_not_found.2:	asciz '"'," not found.",13,10
   717 00000DBF 6E642E0D0A00       
   718 00000DC5 4572726F723A206175-     .guard_auxbuff_error:	asciz "Error: auxbuff already guarded!",13,10
   718 00000DCE 786275666620616C72-
   718 00000DD7 656164792067756172-
   718 00000DE0 646564210D0A00     
   719 00000DE7 4572726F723A20436F-     .guard_re_error:	asciz "Error: Command not supported while reading from RE buffer.",13,10
   719 00000DF0 6D6D616E64206E6F74-
   719 00000DF9 20737570706F727465-
   719 00000E02 64207768696C652072-
   719 00000E0B 656164696E67206672-
   719 00000E14 6F6D20524520627566-
   719 00000E1D 6665722E0D0A00     
   720 00000E24 4572726F723A20436F-     .guard_rc_error:	asciz "Error: Command not supported while reading from RC buffer.",13,10
   720 00000E2D 6D6D616E64206E6F74-
   720 00000E36 20737570706F727465-
   720 00000E3F 64207768696C652072-
   720 00000E48 656164696E67206672-
   720 00000E51 6F6D20524320627566-
   720 00000E5A 6665722E0D0A00     
   721 00000E61 4572726F723A20556E-     .unexpected_auxbuff_guard:	asciz "Error: Unexpected auxbuff guard!",13,10
   721 00000E6A 657870656374656420-
   721 00000E73 617578627566662067-
   721 00000E7C 75617264210D0A00   
   722                                  %if _SYMBOLIC
   723                                  .unexpected_nosymbols:		asciz "Error: Unexpected no symbols flag!",13,10
   724                                  %endif
   725 00000E84 4572726F723A20556E-     .unexpected_noneol_re:		asciz "Error: Unexpected non-EOL in RE processing!",13,10
   725 00000E8D 657870656374656420-
   725 00000E96 6E6F6E2D454F4C2069-
   725 00000E9F 6E2052452070726F63-
   725 00000EA8 657373696E67210D0A-
   725 00000EB1 00                 
   726 00000EB2 4572726F723A20556E-     .unexpected_noneol_rc:		asciz "Error: Unexpected non-EOL in RC processing!",13,10
   726 00000EBB 657870656374656420-
   726 00000EC4 6E6F6E2D454F4C2069-
   726 00000ECD 6E2052432070726F63-
   726 00000ED6 657373696E67210D0A-
   726 00000EDF 00                 
   727 00000EE0 5245504C41434500        .replace:	asciz "REPLACE"
   728 00000EE8 415050454E4400          .append:	asciz "APPEND"
   729 00000EEF 44                      .dword:		db "D"
   730 00000EF0 574F524400              .word:		asciz "WORD"
   731 00000EF5 33                      .3byte:		db "3"
   732 00000EF6 4259544500              .byte:		asciz "BYTE"
   733 00000EFB 4C494E455300            .lines:		asciz "LINES"
   734                                  %if _RH
   735 00000F01 524800                  .rh:		asciz "RH"
   736 00000F04 526567697374657220-     .rh_enabled:	asciz "Register dump history enabled.",13,10
   736 00000F0D 64756D702068697374-
   736 00000F16 6F727920656E61626C-
   736 00000F1F 65642E0D0A00       
   737 00000F25 526567697374657220-     .rh_disabled:	asciz "Register dump history disabled.",13,10
   737 00000F2E 64756D702068697374-
   737 00000F37 6F7279206469736162-
   737 00000F40 6C65642E0D0A00     
   738 00000F47 0A2020524820737465-     .rh_step.1:	counted "  RH step="
   738 00000F50 703D               
   739 00000F52 0B2020646563696D61-     .rh_step.2:	counted "  decimal: "
   739 00000F5B 6C3A20             
   740                                  %endif
   741                                  %if _HELP_COMPRESSED
   742 00000F5E 496E7465726E616C20-     .hshrink_error:	asciz "Internal error: Depack failure!",13,10
   742 00000F67 6572726F723A204465-
   742 00000F70 7061636B206661696C-
   742 00000F79 757265210D0A00     
   743                                  %endif
   744                                  %if _TEST_HELP_FILE
   745                                  .testhelp:	asciz "TESTHELP"
   746                                  %endif
   747                                  %if 1 || _STRNUM
   748 00000F80 415300                  .as:		asciz "AS"
   749                                  %endif
   750                                  %if _DTOP || _LOADER
   751 00000F83 544F5000                .top:		asciz "TOP"
   752                                  %endif
   753                                  %if _COUNT || _RH
   754 00000F87 434F554E5400            .count:		asciz "COUNT"
   755                                  %endif
   756                                  %if _CLEAR
   757 00000F8D 434C45415200            .clear:		asciz "CLEAR"
   758 00000F93 1B631B5B324A0D0A00      .clear_sequence:asciz 27,"c",27,"[2J",13,10
   759                                  	; Note that the first sequence will not have an effect
   760                                  	;  when writing to int 10h in non-dumb mode. Therefore,
   761                                  	;  it will advance the cursor to a nonzero column.
   762                                  	; This is required by the dumb mode detection code.
   763                                  %endif
   764                                  %if _HHDIVREMAIN
   765                                  .hh_div_remainder:
   766 00000F9C 0D72656D61696E6465-     		counted "remainder is "
   766 00000FA5 7220697320         
   767                                  %endif
   768                                  %if _CONFIG
   769 00000FAA 3A3A434F4E4649473A-     .configkeyword:	asciz "::CONFIG:"
   769 00000FB3 00                 
   770 00000FB4 3A3A53435249505453-     .scriptskeyword:asciz "::SCRIPTS:"
   770 00000FBD 3A00               
   771 00000FBF 3A3A454D5054593A00      .emptykeyword:	asciz "::EMPTY:"
   772                                  %endif
   773                                  %if _EXECUTABLE
   774 00000FC8 3A3A45584543555441-     .executablekeyword:	asciz "::EXECUTABLE:"
   774 00000FD1 424C453A00         
   775                                  %endif
   776                                  %if _EXTENSIONS
   777 00000FD6 496E7465726E616C20-     .ext_error_internal:	asciz "Internal error in EXT command.",13,10
   777 00000FDF 6572726F7220696E20-
   777 00000FE8 45585420636F6D6D61-
   777 00000FF1 6E642E0D0A00       
   778 00000FF7 45585420636F6D6D61-     .ext_error_io:		asciz "EXT command got I/O error.",13,10
   778 00001000 6E6420676F7420492F-
   778 00001009 4F206572726F722E0D-
   778 00001012 0A00               
   779 00001014 4E6F206F7220696E76-     .ext_error_invalid:	asciz "No or invalid Extension for lDebug header.",13,10
   779 0000101D 616C69642045787465-
   779 00001026 6E73696F6E20666F72-
   779 0000102F 206C44656275672068-
   779 00001038 65616465722E0D0A00 
   780 00001041 4F7574206F66206D65-     .ext_error_oom:		asciz "Out of memory in EXT command.",13,10
   780 0000104A 6D6F727920696E2045-
   780 00001053 585420636F6D6D616E-
   780 0000105C 642E0D0A00         
   781 00001061 45585400                .ext:		asciz "EXT"
   782 00001065 457874656E73696F6E-     .eld_load_error:db "Extension for lDebug had an error during loading. Code: "
   782 0000106E 20666F72206C446562-
   782 00001077 75672068616420616E-
   782 00001080 206572726F72206475-
   782 00001089 72696E67206C6F6164-
   782 00001092 696E672E20436F6465-
   782 0000109B 3A20               
   783 0000109D 2D2D2D2D2E0D0A00        .eld_error_code:asciz "----.",13,10
   784                                  %endif
   785 000010A5 47494200                .gib:		asciz "GIB"
   786 000010A9 4D494200                .mib:		asciz "MIB"
   787 000010AD 4B494200                .kib:		asciz "KIB"
   788 000010B1 504147455300            .pages:		asciz "PAGES"
   789 000010B7 504152414752415048-     .paragraphs:	asciz "PARAGRAPHS"
   789 000010C0 5300               
   790 000010C2 504152415300            .paras:		asciz "PARAS"
   791 000010C8 51574F52445300          .qwords:	asciz "QWORDS"
   792 000010CF 44                      .dwords:	db "D"
   793 000010D0 574F52445300            .words:		asciz "WORDS"
   794 000010D6 425954455300            .bytes:		asciz "BYTES"
   795 000010DC 4C454E47544800          .length:	asciz "LENGTH"
   796 000010E3 454E4400                .end:		asciz "END"
   797 000010E7 52414E474500            .range:		asciz "RANGE"
   798                                  %if _VXCHG
   799 000010ED 4F4E00                  .on:		asciz "ON"
   800 000010F0 4F464600                .off:		asciz "OFF"
   801                                  .vv_enable_failure:
   802 000010F4 556E61626C6520746F-     		asciz "Unable to enable video swapping.",13,10
   802 000010FD 20656E61626C652076-
   802 00001106 6964656F2073776170-
   802 0000110F 70696E672E0D0A00   
   803 00001117 566964656F20737761-     .vv_disabled:	asciz "Video swapping is disabled, use V ON to switch it on.",13,10
   803 00001120 7070696E6720697320-
   803 00001129 64697361626C65642C-
   803 00001132 207573652056204F4E-
   803 0000113B 20746F207377697463-
   803 00001144 68206974206F6E2E0D-
   803 0000114D 0A00               
   804                                  %endif
   805 0000114F 5245564552534500        .reverse:	asciz "REVERSE"
   806 00001157 56414C554500            .value:		asciz "VALUE"
   807 0000115D 494E00                  .in:		asciz "IN"
   808 00001160 4558495354494E4700      .existing:	asciz "EXISTING"
   809 00001169 46524F4D00              .from:		asciz "FROM"
   810 0000116E 544F00                  .to:		asciz "TO"
   811 00001171 455845435554494E47-     .executing:		asciz "EXECUTING"
   811 0000117A 00                 
   812 0000117B 46524F4D204C494E45-     .executing_value_range:	asciz "FROM LINEAR cs:cip LENGTH abo - cip"
   812 00001184 41522063733A636970-
   812 0000118D 204C454E4754482061-
   812 00001196 626F202D2063697000 
   813 0000119F 4C494E45415200          .linear:	asciz "LINEAR"
   814                                  %if _IMMASM
   815                                  .immasm_error_eip:
   816 000011A6 4572726F722C206272-     		asciz "Error, branch targets EIP beyond 64 KiB.",13,10
   816 000011AF 616E63682074617267-
   816 000011B8 657473204549502062-
   816 000011C1 65796F6E6420363420-
   816 000011CA 4B69422E0D0A00     
   817                                  %endif
   818                                  %if _PM
   819 000011D1 444553435459504500      .desctype:	asciz "DESCTYPE"
   820                                  %endif
   821 000011DA 4E4F54                  .nottaken:	db "NOT"
   822 000011DD 54414B454E00            .taken:		asciz "TAKEN"
   823 000011E3 4E                      .nt:		db "N"
   824 000011E4 5400                    .t:		asciz "T"
   825 000011E6 4241534500              .base:		asciz "BASE"
   826 000011EB 47524F555000            .group:		asciz "GROUP"
   827 000011F1 574944544800            .width:		asciz "WIDTH"
   828                                  %if _HISTORY
   829                                  .history_internal_error:
   830 000011F7 0D0A496E7465726E61-     		asciz 13,10,"Internal error in history handling!",13,10
   830 00001200 6C206572726F722069-
   830 00001209 6E20686973746F7279-
   830 00001212 2068616E646C696E67-
   830 0000121B 210D0A00           
   831                                  %endif
   832                                  %if _INT
   833                                  %include "dimsg.asm"
     1                              <1> 
     2                              <1> %if 0
     3                              <1> 
     4                              <1> lDebug DI command messages
     5                              <1> 
     6                              <1> Copyright (C) 2008-2023 E. C. Masloch
     7                              <1> 
     8                              <1> Usage of the works is permitted provided that this
     9                              <1> instrument is retained with the works, so that any entity
    10                              <1> that uses the works is notified of this instrument.
    11                              <1> 
    12                              <1> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    13                              <1> 
    14                              <1> %endif
    15                              <1> 
    16 0000121F 07204572726F7221    <1> .di_error:	counted " Error!"
    17 00001227 0768696464656E20    <1> .di_hidden:	counted "hidden "
    18 0000122F 0720284949535029    <1> .di_iisp:	counted " (IISP)"
    19 00001237 1320286E6F6E737461- <1> .di_nonstd_iisp:counted " (nonstandard IISP)"
    19 00001240 6E6461726420494953- <1>
    19 00001249 5029                <1>
    20 0000124B 132028756E696E7374- <1> .di_uninst_iisp:counted " (uninstalled IISP)"
    20 00001254 616C6C656420494953- <1>
    20 0000125D 5029                <1>
    21                              <1> .di_freedos_reloc:
    22 0000125F 1220284644206B6572- <1> 		counted " (FD kernel reloc)"
    22 00001268 6E656C2072656C6F63- <1>
    22 00001271 29                  <1>
    23 00001272 0E2028666172206A6D- <1> .di_jmpfar:	counted " (far jmp imm)"
    23 0000127B 7020696D6D29        <1>
    24                              <1> .di_jmpfarindirect:
    25 00001281 132028666172206A6D- <1> 		counted " (far jmp indirect)"
    25 0000128A 7020696E6469726563- <1>
    25 00001293 7429                <1>
    26 00001295 0C2028746573742068- <1> .di_testhook:	counted " (test hook)"
    26 0000129E 6F6F6B29            <1>
    27 000012A2 1C2028746F6F206D61- <1> .di_toomany:	counted " (too many chained handlers)"
    27 000012AB 6E7920636861696E65- <1>
    27 000012B4 642068616E646C6572- <1>
    27 000012BD 7329                <1>
    28 000012BF 0F20656D707479204D- <1> .di_empty:	counted " empty MCB name"
    28 000012C8 4342206E616D65      <1>
    29 000012CF 0B2073797374656D20- <1> .di_system_mcb:	counted " system MCB"
    29 000012D8 4D4342              <1>
    30                              <1> .di_system_upper:
    31 000012DB 0E2073797374656D20- <1> 		counted " system in UMA"
    31 000012E4 696E20554D41        <1>
    32 000012EA 0E2073797374656D20- <1> .di_system_low:	counted " system in LMA"
    32 000012F3 696E204C4D41        <1>
    33 000012F9 112068696768206D65- <1> .di_hma:	counted " high memory area"
    33 00001302 6D6F72792061726561  <1>
    34 0000130B 06205B6D70783A      <1> .di_multiplex.1:counted " [mpx:"
    35 00001312 0768206C6973743A    <1> .di_multiplex.2:counted "h list:"
    36 0000131A 02685D              <1> .di_multiplex.3:counted "h]"
    37                              <1> 
    38                              <1> %if _PM
    39                              <1> gatewrong:	equ $
    40 0000131D 67617465206E6F7420- <1> 		asciz "gate not accessible",13,10
    40 00001326 61636365737369626C- <1>
    40 0000132F 650D0A00            <1>
    41                              <1> %endif
   834                                  %endif
   835 00001333 68656164657200          .header:	asciz "header"
   836                                  .header.length:	equ $ - 1 - .header
   837 0000133A 747261696C657200        .trailer:	asciz "trailer"
   838                                  .trailer.length:equ $ - 1 - .trailer
   839 00001342 415400                  .at:		asciz "AT"
   840 00001345 5748494C4500            .while:		asciz "WHILE"
   841 0000134B 53494C454E5400          .silent:	asciz "SILENT"
   842 00001352 534C45455000            .sleep:		asciz "SLEEP"
   843 00001358 5345434F4E445300        .seconds:	asciz "SECONDS"
   844 00001360 5449434B5300            .ticks:		asciz "TICKS"
   845 00001366 52452070726F636573-     .re_limit_reached:	asciz "RE processing reached RELIMIT, aborting.",13,10
   845 0000136F 73696E672072656163-
   845 00001378 6865642052454C494D-
   845 00001381 49542C2061626F7274-
   845 0000138A 696E672E0D0A00     
   846 00001391 52432070726F636573-     .rc_limit_reached:	asciz "RC processing reached RCLIMIT, aborting.",13,10
   846 0000139A 73696E672072656163-
   846 000013A3 6865642052434C494D-
   846 000013AC 49542C2061626F7274-
   846 000013B5 696E672E0D0A00     
   847 000013BC 2120496E7465726E61-     .silent_error:	asciz "! Internal error during silent buffer handling !",13,10
   847 000013C5 6C206572726F722064-
   847 000013CE 7572696E672073696C-
   847 000013D7 656E74206275666665-
   847 000013E0 722068616E646C696E-
   847 000013E9 6720210D0A00       
   848 000013EF 5768696C6520636F6E-     .while_not_true:asciz "While condition not true, returning.",13,10
   848 000013F8 646974696F6E206E6F-
   848 00001401 7420747275652C2072-
   848 0000140A 657475726E696E672E-
   848 00001413 0D0A00             
   849 00001416 5768696C6520636F6E-     .while_terminated_before:	asciz "While condition ",'"'
   849 0000141F 646974696F6E202200 
   850 00001428 22206E6F206C6F6E67-     .while_terminated_after:	asciz '"'," no longer true.",13,10
   850 00001431 657220747275652E0D-
   850 0000143A 0A00               
   851 0000143C 4E6F2073657269616C-     .no_progress:	asciz "No serial comm progress after 5 seconds, giving up. (Keyboard enabled.)",13,10
   851 00001445 20636F6D6D2070726F-
   851 0000144E 677265737320616674-
   851 00001457 65722035207365636F-
   851 00001460 6E64732C2067697669-
   851 00001469 6E672075702E20284B-
   851 00001472 6579626F6172642065-
   851 0000147B 6E61626C65642E290D-
   851 00001484 0A00               
   852 00001486 0D0A44656275676761-     .serial_request_keep:	asciz 13,10,_PROGNAME," connected to serial port. Enter KEEP to confirm.",13,10
   852 0000148F 626C65206C44656275-
   852 00001498 675820636F6E6E6563-
   852 000014A1 74656420746F207365-
   852 000014AA 7269616C20706F7274-
   852 000014B3 2E20456E746572204B-
   852 000014BC 45455020746F20636F-
   852 000014C5 6E6669726D2E0D0A00 
   853 000014CE 4E6F204B454550206B-     .serial_no_keep_timer:	asciz "No KEEP keyword confirmation after timeout, giving up. (Keyboard enabled.)",13,10
   853 000014D7 6579776F726420636F-
   853 000014E0 6E6669726D6174696F-
   853 000014E9 6E2061667465722074-
   853 000014F2 696D656F75742C2067-
   853 000014FB 6976696E672075702E-
   853 00001504 20284B6579626F6172-
   853 0000150D 6420656E61626C6564-
   853 00001516 2E290D0A00         
   854 0000151B 4E6F204B454550206B-     .serial_no_keep_enter:	asciz "No KEEP keyword confirmation, enabling keyboard.",13,10
   854 00001524 6579776F726420636F-
   854 0000152D 6E6669726D6174696F-
   854 00001536 6E2C20656E61626C69-
   854 0000153F 6E67206B6579626F61-
   854 00001548 72642E0D0A00       
   855                                  %if _VXCHG
   856 0000154E 4E4F                    .nokeep:	db "NO"
   857                                  %endif
   858 00001550 4B45455000              .keep:		asciz "KEEP"
   859 00001555 4572726F723A20556E-     .cannot_hook_2D.invalid:	asciz "Error: Unable to hook interrupt 2Dh due to invalid handler.",13,10
   859 0000155E 61626C6520746F2068-
   859 00001567 6F6F6B20696E746572-
   859 00001570 727570742032446820-
   859 00001579 64756520746F20696E-
   859 00001582 76616C69642068616E-
   859 0000158B 646C65722E0D0A00   
   860 00001593 4572726F723A20556E-     .cannot_hook_2D.nofree:		asciz "Error: Unable to hook interrupt 2Dh, no free multiplex number.",13,10
   860 0000159C 61626C6520746F2068-
   860 000015A5 6F6F6B20696E746572-
   860 000015AE 72757074203244682C-
   860 000015B7 206E6F206672656520-
   860 000015C0 6D756C7469706C6578-
   860 000015C9 206E756D6265722E0D-
   860 000015D2 0A00               
   861 000015D4 5761726E696E673A20      .serial_cannot_unhook:		db "Warning: "
   862 000015DD 556E61626C6520746F-     .serial_cannot_unhook.nowarn:	db "Unable to unhook interrupt "
   862 000015E6 20756E686F6F6B2069-
   862 000015EF 6E7465727275707420 
   863 000015F8 2D2D682E0D0A00          .serial_cannot_unhook.int:	asciz "--h.",13,10
   864 000015FF 4572726F723A20556E-     .serial_cannot_hook:		db "Error: Unable to hook interrupt "
   864 00001608 61626C6520746F2068-
   864 00001611 6F6F6B20696E746572-
   864 0000161A 7275707420         
   865 0000161F 2D2D68206265636175-     .serial_cannot_hook.new_int:	db "--h because interrupt "
   865 00001628 736520696E74657272-
   865 00001631 75707420           
   866 00001635 2D2D68207374696C6C-     .serial_cannot_hook.old_int:	asciz "--h still hooked.",13,10
   866 0000163E 20686F6F6B65642E0D-
   866 00001647 0A00               
   867 00001649 537563636565646564-     .serial_late_unhook:		db "Succeeded in unhooking interrupt "
   867 00001652 20696E20756E686F6F-
   867 0000165B 6B696E6720696E7465-
   867 00001664 727275707420       
   868 0000166A 2D2D682E0D0A00          .serial_late_unhook.int:	asciz "--h.",13,10
   869 00001671 496E7465726E616C20-     .line_out_overflow:	asciz "Internal error, line_out buffer overflowed!",13,10
   869 0000167A 6572726F722C206C69-
   869 00001683 6E655F6F7574206275-
   869 0000168C 66666572206F766572-
   869 00001695 666C6F776564210D0A-
   869 0000169E 00                 
   870                                  %if _REGSHIGHLIGHT || _GETLINEHIGHLIGHT || _DHIGHLIGHT
   871 0000169F 041B5B376D              .highlight:	counted 27,"[7m"
   872                                   %if _GETLINEHIGHLIGHT || _DHIGHLIGHT
   873 000016A4 00                      		db 0
   874                                   %endif
   875 000016A5 031B5B6D                .unhighlight:	counted 27,"[m"
   876                                   %if _GETLINEHIGHLIGHT || _DHIGHLIGHT
   877 000016A9 00                      		db 0
   878                                   %endif
   879                                  %endif
   880 000016AA 206B4D475400            .prefixes:	asciz " kMGT"
   881 000016B0 50726F63657373206C-     .ll_unterm:	ascizline "Process loading aborted: Attached process didn't terminate!"
   881 000016B9 6F6164696E67206162-
   881 000016C2 6F727465643A204174-
   881 000016CB 746163686564207072-
   881 000016D4 6F6365737320646964-
   881 000016DD 6E2774207465726D69-
   881 000016E6 6E617465210D0A00   
   882 000016EE 43616E6E6F74207175-     .qq_unterm:	ascizline "Cannot quit, attached process didn't terminate!"
   882 000016F7 69742C206174746163-
   882 00001700 6865642070726F6365-
   882 00001709 7373206469646E2774-
   882 00001712 207465726D696E6174-
   882 0000171B 65210D0A00         
   883                                  %if _PM
   884 00001720 43616E6E6F74207175-     .qq_still_pm:	ascizline "Cannot quit, still in PM after attached process terminated!"
   884 00001729 69742C207374696C6C-
   884 00001732 20696E20504D206166-
   884 0000173B 746572206174746163-
   884 00001744 6865642070726F6365-
   884 0000174D 7373207465726D696E-
   884 00001756 61746564210D0A00   
   885                                  %endif
   886 0000175E 417474616368656420-     .qq_a_unterminated:	ascizline "Attached process didn't terminate."
   886 00001767 70726F636573732064-
   886 00001770 69646E277420746572-
   886 00001779 6D696E6174652E0D0A-
   886 00001782 00                 
   887 00001783 417474616368656420-     .qq_a_terminated:	ascizline "Attached process did terminate."
   887 0000178C 70726F636573732064-
   887 00001795 6964207465726D696E-
   887 0000179E 6174652E0D0A00     
   888 000017A5 43616E6E6F74206372-     .ensure_no_memory:	ascizline "Cannot create empty attached process, out of memory!"
   888 000017AE 6561746520656D7074-
   888 000017B7 792061747461636865-
   888 000017C0 642070726F63657373-
   888 000017C9 2C206F7574206F6620-
   888 000017D2 6D656D6F7279210D0A-
   888 000017DB 00                 
   889                                  %if _DEVICE
   890                                  .qq_device_none_selected:
   891 000017DC 43616E6E6F74207175-      ascizline "Cannot quit normally when loaded as device driver! Try QC or QD command."
   891 000017E5 6974206E6F726D616C-
   891 000017EE 6C79207768656E206C-
   891 000017F7 6F6164656420617320-
   891 00001800 646576696365206472-
   891 00001809 697665722120547279-
   891 00001812 205143206F72205144-
   891 0000181B 20636F6D6D616E642E-
   891 00001824 0D0A00             
   892                                  .qq_device_no_d:
   893 00001827 43616E6E6F74207175-      ascizline "Cannot quit to device driver initialisation, state modified!"
   893 00001830 697420746F20646576-
   893 00001839 696365206472697665-
   893 00001842 7220696E697469616C-
   893 0000184B 69736174696F6E2C20-
   893 00001854 7374617465206D6F64-
   893 0000185D 6966696564210D0A00 
   894                                  .qq_device_no_c:
   895 00001866 43616E6E6F74207175-      ascizline "Cannot quit from device driver container, not found!"
   895 0000186F 69742066726F6D2064-
   895 00001878 657669636520647269-
   895 00001881 76657220636F6E7461-
   895 0000188A 696E65722C206E6F74-
   895 00001893 20666F756E64210D0A-
   895 0000189C 00                 
   896                                   %if _PM
   897 0000189D 43616E6E6F74207175-     .qq_device_pm:		ascizline "Cannot quit device driver in PM!"
   897 000018A6 697420646576696365-
   897 000018AF 206472697665722069-
   897 000018B8 6E20504D210D0A00   
   898                                   %endif
   899                                  	align 2, db 0
   900 000018C0 4E554C20<rep 5h>        .NULblank:		fill 8, 32, db "NUL"
   901                                  %endif
   902 000018C8 4330                    .c0:	db "C0"
   903 000018CA 0D                      .cr:	db 13
   904                                  
   905 000018CB 41424F525400            .abort:			asciz "ABORT"
   906                                  %if _EXTENSIONS || _INPUT_FILE_HANDLES || _INPUT_FILE_BOOT
   907 000018D1 45584953545300          .exists:		asciz "EXISTS"
   908 000018D8 5900                    .y:			asciz "Y"
   909 000018DA 20636F6D6D616E6420-     .yy_requires_filename:	asciz " command requires a filename.",13,10
   909 000018E3 726571756972657320-
   909 000018EC 612066696C656E616D-
   909 000018F5 652E0D0A00         
   910 000018FA 20636F6D6D616E6420-     .yy_filename_empty:	asciz " command filename is empty.",13,10
   910 00001903 66696C656E616D6520-
   910 0000190C 697320656D7074792E-
   910 00001915 0D0A00             
   911 00001918 20636F6D6D616E6420-     .yy_too_many_handles:	asciz " command has too many open files.",13,10
   911 00001921 68617320746F6F206D-
   911 0000192A 616E79206F70656E20-
   911 00001933 66696C65732E0D0A00 
   912 0000193C 20636F6D6D616E6420-     .yy_error_file_open:	asciz " command failed to open file.",13,10
   912 00001945 6661696C656420746F-
   912 0000194E 206F70656E2066696C-
   912 00001957 652E0D0A00         
   913 0000195C 20636F6D6D616E6420-     .yy_no_file:		asciz " command limited to label only valid in script file.",13,10
   913 00001965 6C696D697465642074-
   913 0000196E 6F206C6162656C206F-
   913 00001977 6E6C792076616C6964-
   913 00001980 20696E207363726970-
   913 00001989 742066696C652E0D0A-
   913 00001992 00                 
   914                                  %endif
   915                                  %if _INPUT_FILE_HANDLES || _EXTENSIONS
   916 00001993 20636F6D6D616E6420-     .yy_no_dos:		asciz " command requires DOS to be available.",13,10
   916 0000199C 726571756972657320-
   916 000019A5 444F5320746F206265-
   916 000019AE 20617661696C61626C-
   916 000019B7 652E0D0A00         
   917                                  .yy_filename_missing_unquote:
   918 000019BC 20636F6D6D616E6420-     			asciz " command filename missing ending quote.",13,10
   918 000019C5 66696C656E616D6520-
   918 000019CE 6D697373696E672065-
   918 000019D7 6E64696E672071756F-
   918 000019E0 74652E0D0A00       
   919                                  %endif
   920                                  %if _INPUT_FILE_BOOT || _EXTENSIONS
   921 000019E6 20636F6D6D616E6420-     .yy_too_large:		asciz " command file too large.",13,10
   921 000019EF 66696C6520746F6F20-
   921 000019F8 6C617267652E0D0A00 
   922 00001A01 20636F6D6D616E6420-     .yy_empty:		asciz " command file empty.",13,10
   922 00001A0A 66696C6520656D7074-
   922 00001A13 792E0D0A00         
   923                                  %endif
   924                                  
   925                                  %if _SYMBOLIC
   926                                  .zz_switch_s_received:	asciz "Allocating symbol table buffer of "
   927                                  .zz_switch_s_received_xms:
   928                                  			asciz "Allocating XMS symbol table buffer (including transfer buffer) of "
   929                                  .zz_switch_s_freeing:	asciz "Freeing symbol table buffer.",13,10
   930                                  .zz_switch_s_indos:	db "Can't change symbol table buffer allocation"
   931                                  			asciz " while in DOS!",13,10
   932                                  %if _BOOTLDR
   933                                  .zz_switch_s_internal_error:
   934                                  	asciz "Internal error in Z /S switch handling!",13,10
   935                                  .zz_switch_s_boot_memsize_differ:
   936                                  	asciz "Cannot change symbol table buffer allocation, memory size changed!",13,10
   937                                  .zz_switch_s_boot_transfer_too_low:
   938                                  	asciz "Cannot enlarge symbol table buffer that much, transfer buffer too low!",13,10
   939                                  .zz_switch_s_boot_loaded_kernel:
   940                                  	asciz "Cannot change symbol table buffer allocation, kernel has been loaded!",13,10
   941                                  .zz_switch_s_boot_rpl:
   942                                  	asciz "Cannot change symbol table buffer allocation, RPL has been loaded!",13,10
   943                                  %endif
   944                                  .zz_s_cannot_alloc_transfer:	asciz "Cannot allocate transfer buffer!",13,10
   945                                  .zz_s_cannot_alloc_target:	asciz "Cannot allocate target buffer!",13,10
   946                                  .zz_too_full:	asciz "Symbol tables are too full for this reallocation.",13,10
   947                                  .zz_xms_not_freed_1:	asciz "Unable to free symbol table XMS handle = "
   948                                  .zz_xms_not_freed_2:	asciz "h.",13,10
   949                                  .invaliddata:		asciz "Invalid symbol table data!",13,10
   950                                   %if _SECOND_SLICE && (_XMS_SYMBOL_TABLE || _BUFFER_86MM_SLICE)
   951                                  .error_second_slice:	asciz "Invalid symbol table access slice usage!",13,10
   952                                   %endif
   953                                  .main_too_full:		asciz "Symbol main array is too full!",13,10
   954                                  .main_too_full_crit1:	asciz "Symbol main array is too full! Critical error. (Earlier check succeeded.)",13,10
   955                                  .hash_too_full_crit1:	asciz "Symbol hash array is too full! Critical error. (Earlier check succeeded.)",13,10
   956                                  .hash_too_full_crit2:	asciz "Symbol hash array is too full! Critical error. (Main has space.)",13,10
   957                                  .str_too_full:		asciz "Symbol string heap is too full!",13,10
   958                                  .str_too_long:		asciz "Symbol string is too long!",13,10
   959                                  .liststore.main.end.first:	asciz 13,10,"Main total:",9
   960                                  .liststore.main.free.first:	asciz "Main free:",9
   961                                  .liststore.main.used.first:	asciz "Main used:",9
   962                                  .liststore.hash.end.first:	asciz 13,10,"Hash total:",9
   963                                  .liststore.hash.free.first:	asciz "Hash free:",9
   964                                  .liststore.hash.used.first:	asciz "Hash used:",9
   965                                  .liststore.str.end.first:	asciz 13,10,"String total:",9
   966                                  .liststore.str.free.first:	asciz "String free:",9
   967                                  .liststore.str.used.first:	asciz "String used:",9
   968                                  .liststore.second:		asciz " in "
   969                                  .liststore.third.singular:	asciz " unit",13,10
   970                                  .liststore.third.plural:	asciz " units",13,10
   971                                  .liststore.str.first:	asciz "Strings size is "
   972                                  .liststore.str.unref.first:	asciz "Unreferenced strings size is "
   973                                  .liststore.str.unref.second:
   974                                  .liststore.str.second:	asciz " in "
   975                                  .liststore.str.unref.third.singular:
   976                                  .liststore.str.third.singular:	asciz " string.",13,10
   977                                  .liststore.str.unref.third.plural:
   978                                  .liststore.str.third.plural:	asciz " strings.",13,10
   979                                  .liststore.str.fourth:	asciz "Average string structure length is <= "
   980                                  .liststore.str.invalid:	asciz "Error: Average string structure length too large"
   981                                  .liststore.str.nofourth:asciz "Cannot calculate average string structure length, number of strings is zero"
   982                                  .liststore.str.last:	asciz ".",13,10
   983                                  .symhint:
   984                                  .symhint_store_string:	db "..@symhint_"
   985                                  .symhint_size:		equ $ - .symhint
   986                                  			db "store_string_"
   987                                  .symhint_store_string_size equ $ - .symhint_store_string
   988                                  .trace_caller:		db "trace_caller"
   989                                  .trace_caller_size: equ $ - .trace_caller
   990                                  .trace_here:		db "trace_here"
   991                                  .trace_here_size: equ $ - .trace_here
   992                                  .skip_caller:		db "skip_caller_"
   993                                  .skip_caller_size: equ $ - .skip_caller
   994                                  .skip_here:		db "skip_here_"
   995                                  .skip_here_size: equ $ - .skip_here
   996                                  .asciz:			asciz "ASCIZ"
   997                                  .zz_list_range_first:	asciz "Range: "
   998                                  .zz_list_range_second:	asciz "h--"
   999                                  .zz_list_range_third:	asciz "h"
  1000                                  .zz_list_add_none:	db ""
  1001                                  .zz_list_none:		asciz " No symbols found",13,10
  1002                                  .zz_list_start:		asciz 13,10
  1003                                  .zz_list_between:	asciz
  1004                                  .zz_list_first:		asciz " Linear="
  1005                                  .zz_list_second:	asciz " Offset="
  1006                                  .zz_list_middle:	asciz "h = ",'"'
  1007                                  .zz_list_last:		asciz '"',13,10
  1008                                  .zz_list_end:		asciz
  1009                                  .zz_list_add_range:	asciz "; "
  1010                                  .zz_list_add_first:	asciz "z add linear=("
  1011                                  .zz_list_base:		asciz " + v1"
  1012                                  .zz_list_base_symbol:	asciz " + sl."
  1013                                  .zz_list_add_second:	asciz ") offset="
  1014                                  .zz_list_add_middle:	asciz " symbol='"
  1015                                  .zz_list_add_last:	asciz "'",13,10
  1016                                  .zz_match_add_none:	db ";"
  1017                                  .zz_match_none:		asciz " No symbols found",13,10
  1018                                  .existing_block:	asciz "Symbol already exists and is being blocked.",13,10
  1019                                  .poison_block:		asciz "Symbol definition is poisoned and is being blocked.",13,10
  1020                                  .stat:			asciz "STAT"
  1021                                  .match:			asciz "MATCH"
  1022                                  .add:			asciz "ADD"
  1023                                  .commit:		asciz "COMMIT"
  1024                                  .del:			asciz "DEL"
  1025                                  .delete:		asciz "DELETE"
  1026                                  .unrefstring:		asciz "UNREFSTRING"
  1027                                  .reloc:			asciz "RELOC"
  1028                                  .relocate:		asciz "RELOCATE"
  1029                                  .symbol:		asciz "SYMBOL"
  1030                                  .flags:			asciz "FLAGS"
  1031                                  .sl:			asciz "SL"
  1032                                  .max:			asciz "MAX"
  1033                                  %if _XMS_SYMBOL_TABLE
  1034                                  .zz_no_xms:		asciz "No XMS driver detected!",13,10
  1035                                  .zz_fail_xms_alloc:	asciz "Failed to allocate XMS block!",13,10
  1036                                  .zz_fail_xms_access:	asciz "Failed to access XMS block!",13,10
  1037                                  %endif
  1038                                  .zz_main_hash_mismatch:	asciz "Compaction/expansion failed, differing amounts of hash and main entries.",13,10
  1039                                  .zz_main_not_first:	asciz "Compaction/expansion failed, main array is not first.",13,10
  1040                                  .zz_hash_not_second:	asciz "Compaction/expansion failed, hash array is not second.",13,10
  1041                                  .zz_str_not_third:	asciz "Compaction/expansion failed, string heap is not third.",13,10
  1042                                  .zz_table_not_full:	asciz "Compaction/expansion failed, table is not full.",13,10
  1043                                  .zz_too_much:		asciz "Symbol table size is too large. Internal error!",13,10
  1044                                  .zz_too_short:		asciz "Symbol table size is too short. Internal error!",13,10
  1045                                  .zz_str_overflow:	asciz "String symbol table got too large. Internal error!",13,10
  1046                                  .zz_length_mismatch:	asciz "Symbol table table size mismatch. Internal error!",13,10
  1047                                  .zz_too_small_str:	asciz "String symbol table target is too small.",13,10
  1048                                  .zz_too_small_hash:
  1049                                  .zz_too_small_mainhash:	asciz "Main/hash symbol table target is too small.",13,10
  1050                                  .zz_internal_error_expand:
  1051                                  			asciz "Internal error during symbol table expansion!",13,10
  1052                                  .zz_reloc_amount_none:	asciz "No symbols found in given source range.",13,10
  1053                                  .zz_del_amount_none:	asciz "Symbol not found!",13,10
  1054                                  .zz_reloc_amount_1:		asciz "Relocated "
  1055                                  .zz_del_amount_1:		asciz "Deleted "
  1056                                  .zz_reloc_amount_2.plural:
  1057                                  .zz_del_amount_2.plural:	asciz " symbols.",13,10
  1058                                  .zz_reloc_amount_2.singular:
  1059                                  .zz_del_amount_2.singular:	asciz " symbol.",13,10
  1060                                  .zz_reloc_overflow:	asciz "Cannot relocate, length of source range overflows!",13,10
  1061                                  .bb_sym_too_many:	asciz "Too many symbol breakpoints!",13,10
  1062                                  .bb_sym_beyond_linear:	asciz "Symbol breakpoint linear is beyond reach!",13,10
  1063                                  .bb_sym_beyond_offset:	asciz "Symbol breakpoint offset is beyond reach!",13,10
  1064                                  %endif
  1065                                  
  1066                                  %if _BREAKPOINTS
  1067 00001A18 414C4C00                .all:		asciz "ALL"
  1068 00001A1C 4E455700                .new:		asciz "NEW"
  1069 00001A20 4E6F20756E75736564-     .bb_no_new:	asciz "No unused breakpoint left!",13,10
  1069 00001A29 20627265616B706F69-
  1069 00001A32 6E74206C656674210D-
  1069 00001A3B 0A00               
  1070 00001A3D 19486974207065726D-     .bb_hit.1:	counted "Hit permanent breakpoint "
  1070 00001A46 616E656E7420627265-
  1070 00001A4F 616B706F696E7420   
  1071                                  .bb_hit.2.nocounter:
  1072 00001A57 020D0A                  		counted 13,10
  1073                                  %if _SYMBOLIC
  1074                                  .bb_sym_hit.1:	counted "Hit symbol breakpoint "
  1075                                  .bb_sym_hit.2.nocounter:
  1076                                  		counted 13,10
  1077                                  %endif
  1078 00001A5A 1C5061737365642070-     .bb_pass.1:	counted "Passed permanent breakpoint "
  1078 00001A63 65726D616E656E7420-
  1078 00001A6C 627265616B706F696E-
  1078 00001A75 7420               
  1079                                  .bb_hit.2.counter:
  1080 00001A77 0A2C20636F756E7465-     .bb_pass.2:	counted ", counter="
  1080 00001A80 723D               
  1081                                  .bb_hit.3.counter.no_id:
  1082                                  .bb_pass.3.no_id:
  1083                                  .bb_hitpass_id.after:
  1084 00001A82 020D0A                  		counted 13,10
  1085                                  .bb_hitpass_id.long:
  1086 00001A85 070D0A2049443A20        		counted 13,10," ID: "
  1087                                  .bb_hitpass_id.short:
  1088 00001A8D 062C2049443A20          		counted ", ID: "
  1089 00001A94 205748454E2000          .bb_when:	asciz " WHEN "
  1090                                  
  1091 00001A9B 42502000                .bp:		asciz "BP "
  1092 00001A9F 202B00                  .bpenabled:	asciz " +"
  1093 00001AA2 202D00                  .bpdisabled:	asciz " -"
  1094 00001AA5 20556E7573656400        .bpunused:	asciz " Unused"
  1095 00001AAD 204C696E3D00            .bpaddress:	asciz " Lin="
  1096 00001AB3 202800                  .bpcontent:	asciz " ("
  1097 00001AB6 2920436F756E746572-     .bpcounter:	asciz ") Counter="
  1097 00001ABF 3D00               
  1098                                  %if 0
  1099                                  BP 00 Unused
  1100                                  BP 00 + Lin=12345678 (CC) Counter=8000
  1101                                  1234567890123456789012345678901234567890
  1102                                  %endif
  1103 00001AC1 4E6F20627265616B70-     .bpnone:	asciz "No breakpoints set currently.",13,10
  1103 00001ACA 6F696E747320736574-
  1103 00001AD3 2063757272656E746C-
  1103 00001ADC 792E0D0A00         
  1104 00001AE1 4E6F20627265616B70-     .bpnone_at:	asciz "No breakpoint set at given address currently.",13,10
  1104 00001AEA 6F696E742073657420-
  1104 00001AF3 617420676976656E20-
  1104 00001AFC 616464726573732063-
  1104 00001B05 757272656E746C792E-
  1104 00001B0E 0D0A00             
  1105                                  %endif
  1106 00001B11 5468652000              .cant_bp_the:			asciz "The "
  1107 00001B16 70726F636565642062-     .cant_bp_type_proceed:		asciz "proceed breakpoint"
  1107 00001B1F 7265616B706F696E74-
  1107 00001B28 00                 
  1108 00001B29 7065726D616E656E74-     .cant_bp_type_permanent:	db    "permanent breakpoint "
  1108 00001B32 20627265616B706F69-
  1108 00001B3B 6E7420             
  1109 00001B3E 5F5F00                  .cant_bp_type_permanent.index:	asciz "__"
  1110                                  %if _SYMBOLIC
  1111                                  .cant_bp_type_symbol:		db    "symbol breakpoint "
  1112                                  .cant_bp_type_symbol.index:	asciz "__"
  1113                                  %endif
  1114 00001B41 204720627265616B70-     .cant_bp_type_gg:		asciz " G breakpoint"
  1114 00001B4A 6F696E7400         
  1115 00001B4F 20286C696E65617220      .cant_bp_linear:		db    " (linear "
  1116 00001B58 2D2D2D2D5F              .cant_bp_linear.address1:	db    "----_"
  1117 00001B5D 2D2D2D2D292000          .cant_bp_linear.address2:	asciz "----) "
  1118 00001B64 63616E6E6F74206265-     .cant_bp_write:			asciz "cannot be written."
  1118 00001B6D 207772697474656E2E-
  1118 00001B76 00                 
  1119 00001B77 63616E6E6F74206265-     .cant_bp_restore:		db    "cannot be restored to "
  1119 00001B80 20726573746F726564-
  1119 00001B89 20746F20           
  1120 00001B8D 5F5F2E00                .cant_bp_restore.value:		asciz "__."
  1121                                  %if 0
  1122                                  The 15th G breakpoint (linear 0010_FFFF) cannot be written.
  1123                                  The proceed breakpoint (linear 0010_FFFF) cannot be written.
  1124                                  The permanent breakpoint 0F (linear 0010_FFFF) cannot be written.
  1125                                  The permanent breakpoint 0F (linear 0010_FFFF) cannot be restored to __.
  1126                                  12345678901234567890123456789012345678901234567890123456789012345678901234567890
  1127                                  %endif
  1128 00001B91 0D0A20526561736F6E-     .cant_bp_reason:		asciz 13,10," Reason: "
  1128 00001B9A 3A2000             
  1129 00001B9D 4E6F206572726F722E-     .cant_bp_reason0:		asciz "No error. (Internal error, report!)",13,10
  1129 00001BA6 2028496E7465726E61-
  1129 00001BAF 6C206572726F722C20-
  1129 00001BB8 7265706F727421290D-
  1129 00001BC1 0A00               
  1130 00001BC3 497420697320726561-     .cant_bp_reason1:		asciz "It is read-only.",13,10
  1130 00001BCC 642D6F6E6C792E0D0A-
  1130 00001BD5 00                 
  1131 00001BD6 497420697320756E72-     .cant_bp_reason2:		asciz "It is unreachable.",13,10
  1131 00001BDF 6561636861626C652E-
  1131 00001BE8 0D0A00             
  1132 00001BEB 497420686173206265-     .cant_bp_reason3:		db    "It has been overwritten with "
  1132 00001BF4 656E206F7665727772-
  1132 00001BFD 697474656E20776974-
  1132 00001C06 6820               
  1133 00001C08 5F5F2E0D0A00            .cant_bp_reason3.value:		asciz "__.",13,10
  1134 00001C0E 556E6B6E6F776E2065-     .cant_bp_reasonu:		asciz "Unknown error. (Internal error, report!)",13,10
  1134 00001C17 72726F722E2028496E-
  1134 00001C20 7465726E616C206572-
  1134 00001C29 726F722C207265706F-
  1134 00001C32 727421290D0A00     
  1135                                  
  1136 00001C39 20202000                .list_bp.first:	asciz "   "
  1137 00001C3D 204720627265616B70-     .list_bp.second:db " G breakpoint, linear "
  1137 00001C46 6F696E742C206C696E-
  1137 00001C4F 65617220           
  1138                                  .list_bp.address1:
  1139 00001C53 2D2D2D2D5F              		db "----_"
  1140                                  .list_bp.address2:
  1141 00001C58 2D2D2D2D00              		asciz "----"
  1142 00001C5D 2C20636F6E74656E74-     .list_bp.third:	db ", content "
  1142 00001C66 20                 
  1143                                  .list_bp.value:
  1144 00001C67 5F5F00                  		asciz "__"
  1145                                  .list_bp_not_cseip: equ crlf
  1146                                  %if _PM
  1147                                  .list_bp_cseip_32:
  1148 00001C6A 202869732061742043-     		asciz " (is at CS:EIP)",13,10
  1148 00001C73 533A454950290D0A00 
  1149                                  %endif
  1150                                  .list_bp_csip_16:
  1151 00001C7C 202869732061742043-     		asciz " (is at CS:IP)",13,10
  1151 00001C85 533A4950290D0A00   
  1152                                  .list_bp_none:
  1153 00001C8D 546865204720627265-     		asciz "The G breakpoint list is empty.",13,10
  1153 00001C96 616B706F696E74206C-
  1153 00001C9F 69737420697320656D-
  1153 00001CA8 7074792E0D0A00     
  1154                                  %if 0
  1155                                     2nd G breakpoint, linear 0003_28D3 $3600:12345678, content CC (is at CS:EIP)
  1156                                  12345678901234567890123456789012345678901234567890123456789012345678901234567890
  1157                                  %endif
  1158 00001CAF 00                      .empty_message:	asciz
  1159 00001CB0 4C49535400              .list:		asciz "LIST"
  1160 00001CB5 414741494E00            .again:		asciz "AGAIN"
  1161                                  %if _SYMBOLIC
  1162                                  .wrt:		asciz "WRT"
  1163                                  %endif
  1164 00001CBB 52656163686564206C-     .uu_too_many_repeat:	asciz "Reached limit of repeating disassembly.",13,10
  1164 00001CC4 696D6974206F662072-
  1164 00001CCD 6570656174696E6720-
  1164 00001CD6 646973617373656D62-
  1164 00001CDF 6C792E0D0A00       
  1165 00001CE5 496E7465726E616C20-     .uu_internal_error:	asciz "Internal error in disassembler!",13,10
  1165 00001CEE 6572726F7220696E20-
  1165 00001CF7 646973617373656D62-
  1165 00001D00 6C6572210D0A00     
  1166 00001D07 496E7465726E616C20-     .aa_internal_error:	asciz "Internal error in assembler!",13,10
  1166 00001D10 6572726F7220696E20-
  1166 00001D19 617373656D626C6572-
  1166 00001D22 210D0A00           
  1167 00001D26 537461636B206F7665-     .stack_overflow:	db "Stack overflow occurred, IP="
  1167 00001D2F 72666C6F77206F6363-
  1167 00001D38 75727265642C204950-
  1167 00001D41 3D                 
  1168 00001D42 5F5F5F5F682C206475-     .stack_overflow.caller:	asciz "____h, due to "
  1168 00001D4B 6520746F2000       
  1169 00001D51 65787072657373696F-     .stack_overflow.indirection:	asciz "expression indirection.",13,10
  1169 00001D5A 6E20696E6469726563-
  1169 00001D63 74696F6E2E0D0A00   
  1170 00001D6B 65787072657373696F-     .stack_overflow.parens:		asciz "expression parentheses.",13,10
  1170 00001D74 6E20706172656E7468-
  1170 00001D7D 657365732E0D0A00   
  1171 00001D85 65787072657373696F-     .stack_overflow.precedence:	asciz "expression precedence.",13,10
  1171 00001D8E 6E2070726563656465-
  1171 00001D97 6E63652E0D0A00     
  1172 00001D9E 65787072657373696F-     .stack_overflow.value_in:	asciz "expression VALUE x IN y.",13,10
  1172 00001DA7 6E2056414C55452078-
  1172 00001DB0 20494E20792E0D0A00 
  1173 00001DB9 65787072657373696F-     .stack_overflow.linear:		asciz "expression LINEAR.",13,10
  1173 00001DC2 6E204C494E4541522E-
  1173 00001DCB 0D0A00             
  1174                                  %if _PM
  1175 00001DCE 65787072657373696F-     .stack_overflow.desctype:	asciz "expression DESCTYPE.",13,10
  1175 00001DD7 6E2044455343545950-
  1175 00001DE0 452E0D0A00         
  1176                                  %endif
  1177 00001DE5 65787072657373696F-     .stack_overflow.cond:		asciz "expression conditional ?? x :: y.",13,10
  1177 00001DEE 6E20636F6E64697469-
  1177 00001DF7 6F6E616C203F3F2078-
  1177 00001E00 203A3A20792E0D0A00 
  1178                                  %if _SYMBOLIC
  1179                                  .dd_after_symbol.non_wrt:
  1180                                  .uu_after_symbol.non_wrt:		 db ":"
  1181                                  .dd_after_symbol.2_wrt:
  1182                                  .memref_after_symbol.non_wrt:
  1183                                  .uu_after_symbol.wrt:
  1184                                  .memref_after_symbol.wrt:		asciz 13,10
  1185                                  .dd_after_symbol.1_wrt:
  1186                                  .uu_after_symbol_between_1.wrt:
  1187                                  .uu_between_symbol.wrt:			 db ":"
  1188                                  .memref_between_symbol.wrt:		asciz " wrt "
  1189                                  .uu_after_symbol_between_1.non_wrt:	 db ":"
  1190                                  .uu_after_symbol_between_2.wrt:		asciz " + "
  1191                                  .uu_after_symbol_between_3:		asciz 13,10
  1192                                  %endif
  1193                                  %if _MEMREF_AMOUNT
  1194                                   %if _DEBUG2 || _SYMBOLIC
  1195                                  .memrefs_branchdirect:	asciz 9, "direct branch target = "
  1196                                  .memrefs_stringsource:	asciz 9, "string source        = "
  1197                                  .memrefs_stringdest:	asciz 9, "string destination   = "
  1198                                  .memrefs_memsource:	asciz 9, "memory source        = "
  1199                                  .memrefs_memdest:	asciz 9, "memory destination   = "
  1200                                  .memrefs_memsourcedest:	asciz 9, "memory source/dest   = "
  1201                                  .memrefs_mem_unknown:	asciz 9, "memory (unknown)     = "
  1202                                  .memrefs_unknown:	asciz 9, "unknown mem ref type = "
  1203                                  .memrefs_length:	counted " length="
  1204                                   %endif
  1205                                  .memrefs_invalid_internal:
  1206 00001E09 496E7465726E616C20-     		asciz "Internal error, invalid use of too many memrefs!",13,10
  1206 00001E12 6572726F722C20696E-
  1206 00001E1B 76616C696420757365-
  1206 00001E24 206F6620746F6F206D-
  1206 00001E2D 616E79206D656D7265-
  1206 00001E36 6673210D0A00       
  1207                                  %endif
  1208                                  
  1209                                  %if 0
  1210                                  	align 2, db 0
  1211                                  .optiontable:	dw dispregs32, .r32off, .r32on
  1212                                  		dw traceints, .traceoff, .traceon
  1213                                  		dw cpdepchars, .cpoff, .cpon
  1214                                  		dw fakeindos, .dosoff, .doson
  1215                                  		dw nonpagingdevice, .nonpageoff, .nonpageon
  1216                                  		dw pagingdevice, .pageoff, .pageon
  1217                                  		dw hexrn, .readrnoff, .readrnon
  1218                                  		dw 0
  1219                                  
  1220                                  .r32off:	asciz "Dump 16-bit register set"
  1221                                  .r32on:		asciz "Dump 32-bit register set"
  1222                                  .traceoff:	asciz "Interrupts are traced"
  1223                                  .traceon:	asciz "Interrupts are processed"
  1224                                  .cpoff:		asciz "Extended ASCII characters replaced"
  1225                                  .cpon:		asciz "Extended ASCII characters displayed"
  1226                                  .dosoff:	asciz "InDOS is checked"
  1227                                  .doson:		asciz "InDOS assumed on"
  1228                                  		;asciz "InDOS assumed off"
  1229                                  .nonpageoff:	asciz
  1230                                  .nonpageon:	asciz "Paging disabled"
  1231                                  .pageoff:	asciz
  1232                                  .pageon:	asciz "Paging enabled"
  1233                                  .readrnoff:	asciz "Readable RN enabled"
  1234                                  .readrnon:	asciz "Readable RN disabled"
  1235                                  %endif
  1236                                  
  1237 00001E3C 5761726E696E673A20-     .warnprefix:	asciz "Warning: Prefixes in excess of 14, using trace flag.",13,10
  1237 00001E45 507265666978657320-
  1237 00001E4E 696E20657863657373-
  1237 00001E57 206F662031342C2075-
  1237 00001E60 73696E672074726163-
  1237 00001E69 6520666C61672E0D0A-
  1237 00001E72 00                 
  1238                                  
  1239                                  %if _DEBUG || _LOADER
  1240 00001E73 427265616B696E6720-     .bu:		asciz "Breaking to next instance.",13,10
  1240 00001E7C 746F206E6578742069-
  1240 00001E85 6E7374616E63652E0D-
  1240 00001E8E 0A00               
  1241                                   %if _DEBUG_COND
  1242                                  .bu_disabled:	db "Debuggable mode is disabled.",13,10
  1243                                  		asciz "Enable with this command: r DCO6 or= ",_4digitshex(opt6_debug_mode),13,10
  1244                                   %endif
  1245                                  %else
  1246                                  .notbu:		asciz "Already in topmost instance. (This is no debugging build of lDebug.)",13,10
  1247                                  %endif
  1248                                  %if _DUALCODE
  1249 00001E90 496E7465722D736567-     .bu_relocated:	db "Inter-segment calls work. Sign="
  1249 00001E99 6D656E742063616C6C-
  1249 00001EA2 7320776F726B2E2053-
  1249 00001EAB 69676E3D           
  1250                                  .bu_relocated.sign:
  1251 00001EAF 2D2D2D2D682E0D0A00      		asciz "----h.",13,10
  1252                                  %endif
  1253                                  %if _DT
  1254 00001EB8 4E                      .tableheader:	db .tableheader.end - .tableheader.start
  1255                                  .tableheader.start:
  1256                                   %assign ITERATION 0
  1257                                   %rep 8
  1258                                    %if ITERATION == 0
  1259                                    %elif ITERATION == 1 || ITERATION == 2
  1260                                  		times 4 db 32
  1261                                    %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1262                                  		times 2 db 32
  1263                                    %else
  1264                                  		times 3 db 32
  1265                                    %endif
  1266                                  		db "Dec Hex"
  1267                                    %assign ITERATION ITERATION + 1
  1268                                   %endrep
  1258                              <1>  %if ITERATION == 0
  1259                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1260                              <1>  times 4 db 32
  1261                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1262                              <1>  times 2 db 32
  1263                              <1>  %else
  1264                              <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001EB9 44656320486578      <1>  db "Dec Hex"
  1267                              <1>  %assign ITERATION ITERATION + 1
  1258                              <1>  %if ITERATION == 0
  1259                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1260 00001EC0 20<rep 4h>          <1>  times 4 db 32
  1261                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1262                              <1>  times 2 db 32
  1263                              <1>  %else
  1264                              <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001EC4 44656320486578      <1>  db "Dec Hex"
  1267                              <1>  %assign ITERATION ITERATION + 1
  1258                              <1>  %if ITERATION == 0
  1259                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1260 00001ECB 20<rep 4h>          <1>  times 4 db 32
  1261                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1262                              <1>  times 2 db 32
  1263                              <1>  %else
  1264                              <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001ECF 44656320486578      <1>  db "Dec Hex"
  1267                              <1>  %assign ITERATION ITERATION + 1
  1258                              <1>  %if ITERATION == 0
  1259                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1260                              <1>  times 4 db 32
  1261                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1262 00001ED6 20<rep 2h>          <1>  times 2 db 32
  1263                              <1>  %else
  1264                              <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001ED8 44656320486578      <1>  db "Dec Hex"
  1267                              <1>  %assign ITERATION ITERATION + 1
  1258                              <1>  %if ITERATION == 0
  1259                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1260                              <1>  times 4 db 32
  1261                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1262 00001EDF 20<rep 2h>          <1>  times 2 db 32
  1263                              <1>  %else
  1264                              <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001EE1 44656320486578      <1>  db "Dec Hex"
  1267                              <1>  %assign ITERATION ITERATION + 1
  1258                              <1>  %if ITERATION == 0
  1259                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1260                              <1>  times 4 db 32
  1261                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1262 00001EE8 20<rep 2h>          <1>  times 2 db 32
  1263                              <1>  %else
  1264                              <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001EEA 44656320486578      <1>  db "Dec Hex"
  1267                              <1>  %assign ITERATION ITERATION + 1
  1258                              <1>  %if ITERATION == 0
  1259                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1260                              <1>  times 4 db 32
  1261                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1262                              <1>  times 2 db 32
  1263                              <1>  %else
  1264 00001EF1 20<rep 3h>          <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001EF4 44656320486578      <1>  db "Dec Hex"
  1267                              <1>  %assign ITERATION ITERATION + 1
  1258                              <1>  %if ITERATION == 0
  1259                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1260                              <1>  times 4 db 32
  1261                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1262                              <1>  times 2 db 32
  1263                              <1>  %else
  1264 00001EFB 20<rep 3h>          <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001EFE 44656320486578      <1>  db "Dec Hex"
  1267                              <1>  %assign ITERATION ITERATION + 1
  1269 00001F05 0D0A                    		db 13,10
  1270                                  .tableheader.end:
  1271 00001F07 4F                      .tableheadertop:db .tableheadertop.end - .tableheadertop.start
  1272                                  .tableheadertop.start:
  1273                                   %assign ITERATION 0
  1274                                   %rep 8
  1275                                    %if ITERATION == 0
  1276                                    %else
  1277                                  		times 3 db 32
  1278                                    %endif
  1279                                  		db "Dec Hex"
  1280                                    %assign ITERATION ITERATION + 1
  1281                                   %endrep
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277                              <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001F08 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001F0F 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001F12 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001F19 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001F1C 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001F23 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001F26 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001F2D 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001F30 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001F37 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001F3A 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001F41 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001F44 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001F4B 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001F4E 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1282 00001F55 0D0A                    		db 13,10
  1283                                  .tableheadertop.end:
  1284                                  %endif
  1285                                  %if _PM
  1286 00001F57 43616E6E6F74206163-     .ofs32:		asciz "Cannot access 16-bit segment with 32-bit offset.",13,10
  1286 00001F60 636573732031362D62-
  1286 00001F69 6974207365676D656E-
  1286 00001F72 742077697468203332-
  1286 00001F7B 2D626974206F666673-
  1286 00001F84 65742E0D0A00       
  1287 00001F8A 416C6C6F6361746564-     .d.a_success:	db "Allocated descriptor with selector "
  1287 00001F93 206465736372697074-
  1287 00001F9C 6F7220776974682073-
  1287 00001FA5 656C6563746F7220   
  1288                                  .d.a_success_sel:
  1289 00001FAD 2D2D2D2D0D0A00          		asciz "----",13,10
  1290 00001FB4 4465616C6C6F636174-     .d.d_success:	asciz "Deallocated descriptor",13,10
  1290 00001FBD 656420646573637269-
  1290 00001FC6 70746F720D0A00     
  1291 00001FCD 536574206465736372-     .d.b_success:	asciz "Set descriptor base",13,10
  1291 00001FD6 6970746F7220626173-
  1291 00001FDF 650D0A00           
  1292 00001FE3 536574206465736372-     .d.l_success:	asciz "Set descriptor limit",13,10
  1292 00001FEC 6970746F72206C696D-
  1292 00001FF5 69740D0A00         
  1293 00001FFA 536574206465736372-     .d.t_success:	asciz "Set descriptor type",13,10
  1293 00002003 6970746F7220747970-
  1293 0000200C 650D0A00           
  1294 00002010 4572726F7220            .d.a_error:	db "Error "
  1295                                  .d.a_error_code:
  1296 00002016 2D2D2D2D0D0A00          		asciz "----",13,10
  1297                                  .d.d_error equ .d.a_error
  1298                                  .d.d_error_code equ .d.a_error_code
  1299                                  .d.b_error equ .d.a_error
  1300                                  .d.b_error_code equ .d.a_error_code
  1301                                  .d.l_error equ .d.a_error
  1302                                  .d.l_error_code equ .d.a_error_code
  1303                                  .d.t_error equ .d.a_error
  1304                                  .d.t_error_code equ .d.a_error_code
  1305                                  %endif
  1306                                  
  1307                                  %if _MCB
  1308                                   %if _MCBPOSITION
  1309                                  .keyword_position:	asciz "POSITION"
  1310                                   %endif
  1311                                   %if _MCBLIMIT
  1312                                  .keyword_limit:		asciz "LIMIT"
  1313                                   %endif
  1314                                   %if _SDSUB
  1315                                  .keyword_skipsd:	asciz "SKIPSD"
  1316                                   %endif
  1317                                   %assign ELD 0
  1318                                   %include "dmmsg.asm"
     1                              <1> %if 0
     2                              <1> 
     3                              <1> lDebug DM command messages
     4                              <1> 
     5                              <1> Copyright (C) 2008-2026 E. C. Masloch
     6                              <1> 
     7                              <1> Usage of the works is permitted provided that this
     8                              <1> instrument is retained with the works, so that any entity
     9                              <1> that uses the works is notified of this instrument.
    10                              <1> 
    11                              <1> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    12                              <1> 
    13                              <1> %endif
    14                              <1> 
    15 0000201D 456E64206F66206368- <1> .invmcbadr:	asciz "End of chain: invalid MCB address.",13,10
    15 00002026 61696E3A20696E7661- <1>
    15 0000202F 6C6964204D43422061- <1>
    15 00002038 6464726573732E0D0A- <1>
    15 00002041 00                  <1>
    16                              <1> 
    17                              <1> %define smcb_messages ..@notype,""
    18                              <1> 
    19                              <1> 	%imacro smcbtype 2.nolist
    20                              <1> 		dw %2, %%label
    21                              <1> %if ELD
    22                              <1> internaldatarelocation
    23                              <1> %endif
    24                              <1> %defstr %%str	%1
    25                              <1> %xdefine smcb_messages smcb_messages,%%label,%%str
    26                              <1> 	%endmacro
    27                              <1> 
    28                              <1> 	%imacro smcbmsg 2-*.nolist
    29                              <1> %if %0 & 1
    30                              <1>  %error Expected even number of parameters
    31                              <1> %endif
    32                              <1> %rotate 2
    33                              <1> %rep (%0 - 2) / 2
    34                              <1> %1:	asciz %2
    35                              <1> %rotate 2
    36                              <1> %endrep
    37                              <1> 	%endmacro
    38                              <1> 
    39 00002042 00<rep 2h>          <1> 	align 4, db 0
    40                              <1> smcbtypes:
    41 00002044 0000[F226]          <1> smcbtype S_OTHER,	00h
    42 00002048 0100[FA26]          <1> smcbtype S_DOSENTRY,	01h
    43 0000204C 0200[0527]          <1> smcbtype S_DOSCODE,	02h
    44 00002050 0300[0F27]          <1> smcbtype S_DOSDATA,	03h
    45 00002054 0400[1927]          <1> smcbtype S_IRQSCODE,	04h
    46 00002058 0500[2427]          <1> smcbtype S_IRQSDATA,	05h
    47 0000205C 0600[2F27]          <1> smcbtype S_CDS,		06h
    48 00002060 0700[3527]          <1> smcbtype S_LFNCDS,	07h
    49 00002064 0800[3E27]          <1> smcbtype S_DPB,		08h
    50 00002068 0900[4427]          <1> smcbtype S_UPB,		09h
    51 0000206C 0A00[4A27]          <1> smcbtype S_SFT,		0Ah
    52 00002070 0B00[5027]          <1> smcbtype S_FCBSFT,	0Bh
    53 00002074 0C00[5927]          <1> smcbtype S_CCB,		0Ch
    54 00002078 0D00[5F27]          <1> smcbtype S_IRT,		0Dh
    55 0000207C 0E00[6527]          <1> smcbtype S_SECTOR,	0Eh
    56 00002080 0F00[6E27]          <1> smcbtype S_NLS,		0Fh
    57 00002084 1000[7427]          <1> smcbtype S_EBDA,	10h
    58 00002088 1600[7B27]          <1> smcbtype S_INITFCBSFT,	16h
    59 0000208C 1700[8827]          <1> smcbtype S_INITSTACK,	17h
    60 00002090 1800[9427]          <1> smcbtype S_INITCDS,	18h
    61 00002094 1900[9E27]          <1> smcbtype S_INITCONFIG,	19h
    62 00002098 1A00[AB27]          <1> smcbtype S_INITFATSEG,	1Ah
    63 0000209C 1B00[B827]          <1> smcbtype S_INITSECTORSEG,	1Bh
    64 000020A0 1C00[C827]          <1> smcbtype S_INITSTACKBPB,1Ch
    65 000020A4 1D00[D727]          <1> smcbtype S_INITPSP,	1Dh
    66 000020A8 1E00[E127]          <1> smcbtype S_ENVIRONMENT,	1Eh
    67 000020AC 1F00[EF27]          <1> smcbtype S_INITIALISE,	1Fh
    68 000020B0 2000[FC27]          <1> smcbtype S_DEVICE,	20h					; Device
    69 000020B4 2100[0528]          <1> smcbtype S_DEVICEMEMORY,21h					; Allocated by device
    70 000020B8 3000[1428]          <1> smcbtype S_EXCLDUMA,	30h					; Excluded UMA
    71 000020BC 3100[1F28]          <1> smcbtype S_EXCLDUMASUB,	31h					; Excluded UMA with sub-chain of used MCBs
    72 000020C0 3200[2D28]          <1> smcbtype S_EXCLDLH,	32h					; Excluded by LH
    73 000020C4 3300[3728]          <1> smcbtype S_EXCLDDOS,	33h
    74 000020C8 3400[4228]          <1> smcbtype S_EXCLDALTAH,	34h
    75 000020CC FFFFFFFF            <1> 	dw -1, -1
    76                              <1> 
    77                              <1> %if _SDSUB
    78                              <1> sdsubmcbtypes:
    79                              <1> smcbtype DEVICE=, 'D'
    80                              <1> smcbtype DEVICE= appendage, 'E'
    81                              <1> smcbtype IFS or UPB, 'I'
    82                              <1> smcbtype FILES=, 'F'
    83                              <1> smcbtype FCBS=, 'X'
    84                              <1> smcbtype BUFFERS= EMS workspace, 'C'
    85                              <1> smcbtype BUFFERS=, 'B'
    86                              <1> smcbtype LASTDRIVE=, 'L'
    87                              <1> smcbtype STACKS=, 'S'
    88                              <1> smcbtype INSTALL= transient, 'T'
    89                              <1> smcbtype invalid, 0
    90                              <1> 	dw -1, -1
    91                              <1> %endif
  1319                                  %endif
  1320                                  
  1321                                  
  1322                                  %define INSTALLMESSAGES db ""
  1323                                  
  1324                                  %imacro installflag 6-*.nolist
  1325                                   %xdefine %%one %1
  1326                                   %xdefine %%two %2
  1327                                   %xdefine %%three %3
  1328                                   %ifempty %3
  1329                                    %define %%three install_trying
  1330                                   %endif
  1331                                   %xdefine %%four %4
  1332                                   %ifempty %4
  1333                                    %define %%four 0
  1334                                   %endif
  1335                                   %xdefine %%five %5
  1336                                  %ifnidn %%one, 0
  1337                                   %if ((%%two - 1) & %%two) == 0
  1338                                    %if %%two > 0FFFFh
  1339                                     %if %%two & 0FFFFh
  1340                                      %error Flag set in both upper and lower word
  1341                                     %endif
  1342                                     %assign %%two %%two >> 16
  1343                                     %xdefine %%one %%one + 2
  1344                                    %endif
  1345                                   %else
  1346                                    %if (%%two & 0FFFF_0000h) != 0FFFF_0000h
  1347                                     %if (%%two & 0FFFFh) != 0FFFFh
  1348                                      %error Flag clear in both upper and lower word
  1349                                     %endif
  1350                                     %assign %%two (%%two >> 16) & 0FFFFh
  1351                                     %xdefine %%one %%one + 2
  1352                                    %endif
  1353                                   %endif
  1354                                  %endif
  1355                                    %xdefine INSTALLMESSAGES INSTALLMESSAGES, %%message_five:, {asciz %%five}
  1356                                   %assign %%step 0
  1357                                   %rep %0 - 5
  1358                                    %xdefine INSTALLMESSAGES INSTALLMESSAGES, %%message_%[%%step]:, {asciz %6}
  1359                                  	dw %%message_%[%%step]
  1360                                  	dw %%message_five
  1361                                  	dw %%one, %%two, %%three, %%four
  1362                                    %rotate 1
  1363                                    %assign %%step %%step + 1
  1364                                   %endrep
  1365                                  %endmacro
  1366                                  
  1367                                  %imacro installmessages 0-*.nolist
  1368                                   %rep %0
  1369                                  	%1
  1370                                    %rotate 1
  1371                                   %endrep
  1372                                  %endmacro
  1373                                  
  1374                                  installformat equ 1
  1375                                  
  1376                                  
  1377                                  	align 4, db 0
  1378                                  installflags:
  1379                                  %if _PM
  1380 000020D0 [4423][2C23][0000]-     installflag options4, opt4_int_2F_hook,,, 	"Interrupt 2Fh DPMI hook", "INT2F", "DPMIHOOK"
  1380 000020D6 0200[0000]0000-    
  1380 000020DC [4A23][2C23][0000]-
  1380 000020E2 0200[0000]0000     
  1382                                  %endif
  1383                                  %if _CATCHINTFAULTCOND && (_CATCHINT0D || _CATCHINT0C)
  1384 000020E8 [6E23][5323][0000]-     installflag options4, opt4_int_fault_hook,,, 	"R86M fault interrupts hook", "FAULTS", "FAULT", "INTFAULTS", "INTFAULT"
  1384 000020EE 1000[0000]0000-    
  1384 000020F4 [7523][5323][0000]-
  1384 000020FA 1000[0000]0000-    
  1384 00002100 [7B23][5323][0000]-
  1384 00002106 1000[0000]0000-    
  1384 0000210C [8523][5323][0000]-
  1384 00002112 1000[0000]0000     
  1386                                  %endif
  1387                                  %if _CATCHINT08
  1388 00002118 [A523][8E23][0000]-     installflag options4, opt4_int_08_hook,,, 	"Interrupt 8 timer hook", "INT08", "INT8", "TIMER"
  1388 0000211E 0400[0000]0000-    
  1388 00002124 [AB23][8E23][0000]-
  1388 0000212A 0400[0000]0000-    
  1388 00002130 [B023][8E23][0000]-
  1388 00002136 0400[0000]0000     
  1390                                  %endif
  1391                                  %if _CATCHINT2D
  1392 0000213C [CE23][B623][0000]-     installflag options4, opt4_int_2D_hook,,, 	"Interrupt 2Dh AMIS hook", "INT2D", "AMIS"
  1392 00002142 0800[0000]0000-    
  1392 00002148 [D423][B623][0000]-
  1392 0000214E 0800[0000]0000     
  1394                                  %endif
  1395                                  %if _AREAS && _AREAS_HOOK_CLIENT
  1396 00002154 [DF23][D923]0000-       installflag 0, install_areas,,, 	"Areas", "AREAS"
  1396 0000215A [0000][0000]0000   
  1398                                  %endif
  1399 00002160 [F023][E523][0000]-     installflag options, enable_serial, dmycmd,, 	"Serial I/O", "SERIAL"
  1399 00002166 0040[0000]0000     
  1401 0000216C [0824][F723][0000]-     installflag options, fakeindos, dmycmd,, 	"Force InDOS mode", "INDOS"
  1401 00002172 0800[0000]0000     
  1403 00002178 [2424][0E24][0000]-     installflag options, opt_usegetinput, dmycmd,, 	"Use DOS getinput mode", "GETINPUT"
  1403 0000217E 0008[0000]0000     
  1405 00002184 [4C24][2D24][0200]-     installflag options3, opt3_r_highlight_full, dmycmd,, 	"R register change highlighting", "RHIGHLIGHT"
  1405 0000218A 0400[0000]0000     
  1407 00002190 [6224][5724][0200]-     installflag options3, ~ opt3_disable_autorepeat, dmycmd,, 	"Autorepeat", "AUTOREPEAT"
  1407 00002196 FFEF[0000]0000     
  1409 0000219C [7424][6D24][0000]-     installflag options, ~ nonpagingdevice, dmycmd,, 	"Paging", "PAGING"
  1409 000021A2 EFFF[0000]0000     
  1411 000021A8 [8B24][7B24][0000]-     installflag options6, opt6_bios_output, dmycmd,, 	"ROM-BIOS output", "BIOSOUT", "BIOSOUTPUT", "INT10OUT", "INT10OUTPUT"
  1411 000021AE 0002[0000]0000-    
  1411 000021B4 [9324][7B24][0000]-
  1411 000021BA 0002[0000]0000-    
  1411 000021C0 [9E24][7B24][0000]-
  1411 000021C6 0002[0000]0000-    
  1411 000021CC [A724][7B24][0000]-
  1411 000021D2 0002[0000]0000     
  1413 000021D8 [C924][B324][0000]-     installflag options6, opt6_flat_binary, dmycmd,, 	"Flat binary read mode", "FLAT", "FLATBIN", 	"FLATBINARY", "FSWITCH"
  1413 000021DE 0004[0000]0000-    
  1413 000021E4 [CE24][B324][0000]-
  1413 000021EA 0004[0000]0000-    
  1413 000021F0 [D624][B324][0000]-
  1413 000021F6 0004[0000]0000-    
  1413 000021FC [E124][B324][0000]-
  1413 00002202 0004[0000]0000     
  1416 00002208 [FF24][E924][0000]-     installflag options6, opt6_big_stack, dmycmd,, 	".BIG style stack mode", "BIG", "BIGSTACK", "ESWITCH"
  1416 0000220E 0008[0000]0000-    
  1416 00002214 [0325][E924][0000]-
  1416 0000221A 0008[0000]0000-    
  1416 00002220 [0C25][E924][0000]-
  1416 00002226 0008[0000]0000     
  1418                                  %if _RH
  1419 0000222C [2A25][1425][0200]-     installflag options6, opt6_rh_mode, dmycmd,, 	"Register dump history", "RH", "RHISTORY", "REGHISTORY"
  1419 00002232 1000[0000]0000-    
  1419 00002238 [2D25][1425][0200]-
  1419 0000223E 1000[0000]0000-    
  1419 00002244 [3625][1425][0200]-
  1419 0000224A 1000[0000]0000     
  1421                                  %endif
  1422                                  %if _DEBUG && _DEBUG_COND
  1423                                  installflag options6, opt6_debug_mode,,, 	"Debuggable mode", "DEBUG"
  1425                                  %endif
  1426 00002250 [5925][4125][0000]-     installflag options3, opt3_paging_rc, dmycmd,, 	"Paging RC commands mode", "PAGINGRC"
  1426 00002256 0010[0000]0000     
  1428 0000225C [7A25][6225][0000]-     installflag options3, opt3_paging_re, dmycmd,, 	"Paging RE commands mode", "PAGINGRE"
  1428 00002262 0040[0000]0000     
  1430 00002268 [A125][8325][0000]-     installflag options3, opt3_paging_yy, dmycmd,, 	"Paging Script for lDebug mode", "PAGINGY", "PAGINGYY", "PAGINGSCRIPT"
  1430 0000226E 0020[0000]0000-    
  1430 00002274 [A925][8325][0000]-
  1430 0000227A 0020[0000]0000-    
  1430 00002280 [B225][8325][0000]-
  1430 00002286 0020[0000]0000     
  1432                                  %ifn _ONLYNON386
  1433 0000228C [D625][BF25][0000]-     installflag options, dispregs32, dmycmd,, 	"386 register dump mode", "RX", "REGS386", "REGS32"
  1433 00002292 0100[0000]0000-    
  1433 00002298 [D925][BF25][0000]-
  1433 0000229E 0100[0000]0000-    
  1433 000022A4 [E125][BF25][0000]-
  1433 000022AA 0100[0000]0000     
  1435                                  %endif
  1436 000022B0 [FE25][E825][0000]-     installflag options, traceints, dmycmd,, 	"Trace interrupts Mode", "TM", "TRACEINTS", "TRACEINTERRUPTS"
  1436 000022B6 0200[0000]0000-    
  1436 000022BC [0126][E825][0000]-
  1436 000022C2 0200[0000]0000-    
  1436 000022C8 [0B26][E825][0000]-
  1436 000022CE 0200[0000]0000     
  1438 000022D4 [2826][1B26][0000]-     installflag options7, opt7_houdini, dmycmd,, 	"Houdini Mode", "HOUDINI"
  1438 000022DA 0001[0000]0000     
  1440 000022E0 [4A26][3026][0000]-     installflag options7, opt7_no_free_oneshot_eld, dmycmd,, 	"No free oneshot ELDs mode", "NOFREEONESHOT"
  1440 000022E6 0100[0000]0000     
  1442 000022EC [6A26][5826][0000]-     installflag options7, opt7_quiet_install, dmycmd,, 	"Quiet ELD install", "QUIETINSTALL"
  1442 000022F2 0400[0000]0000     
  1444 000022F8 [9426][7726][0000]-     installflag options7, opt7_debug_optional_link, dmycmd,, 	"Debug ELD optional link mode", "DEBUGOPTLINK"
  1444 000022FE 0200[0000]0000     
  1446 00002304 [AF26][A126][0000]-     installflag options7, opt7_quick_run, dmycmd,, 	"Quick ELD run", "QUICKRUN"
  1446 0000230A 0800[0000]0000     
  1448 00002310 [C626][B826][0000]-     installflag options7, opt7_debug_run, dmycmd,, 	"Debug ELD run", "DEBUGRUN"
  1448 00002316 0002[0000]0000     
  1450 0000231C [E926][CF26][0000]-     installflag options7, opt7_no_ensure, dmycmd,, 	"No ensure debuggee loaded", "NOENSURE"
  1450 00002322 0010[0000]0000     
  1452 00002328 00000000                	dw 0, 0
  1453                                  
  1454 0000232C 496E74657272757074-     installmessages INSTALLMESSAGES
  1454 00002335 203246682044504D49-
  1454 0000233E 20686F6F6B00494E54-
  1454 00002347 32460044504D49484F-
  1454 00002350 4F4B005238364D2066-
  1454 00002359 61756C7420696E7465-
  1454 00002362 72727570747320686F-
  1454 0000236B 6F6B004641554C5453-
  1454 00002374 004641554C5400494E-
  1454 0000237D 544641554C54530049-
  1454 00002386 4E544641554C540049-
  1454 0000238F 6E7465727275707420-
  1454 00002398 382074696D65722068-
  1454 000023A1 6F6F6B00494E543038-
  1454 000023AA 00494E54380054494D-
  1454 000023B3 455200496E74657272-
  1454 000023BC 757074203244682041-
  1454 000023C5 4D495320686F6F6B00-
  1454 000023CE 494E54324400414D49-
  1454 000023D7 530041726561730041-
  1454 000023E0 524541530053657269-
  1454 000023E9 616C20492F4F005345-
  1454 000023F2 5249414C00466F7263-
  1454 000023FB 6520496E444F53206D-
  1454 00002404 6F646500494E444F53-
  1454 0000240D 0055736520444F5320-
  1454 00002416 676574696E70757420-
  1454 0000241F 6D6F64650047455449-
  1454 00002428 4E5055540052207265-
  1454 00002431 676973746572206368-
  1454 0000243A 616E67652068696768-
  1454 00002443 6C69676874696E6700-
  1454 0000244C 52484947484C494748-
  1454 00002455 54004175746F726570-
  1454 0000245E 656174004155544F52-
  1454 00002467 455045415400506167-
  1454 00002470 696E6700504147494E-
  1454 00002479 4700524F4D2D42494F-
  1454 00002482 53206F757470757400-
  1454 0000248B 42494F534F55540042-
  1454 00002494 494F534F5554505554-
  1454 0000249D 00494E5431304F5554-
  1454 000024A6 00494E5431304F5554-
  1454 000024AF 50555400466C617420-
  1454 000024B8 62696E617279207265-
  1454 000024C1 6164206D6F64650046-
  1454 000024CA 4C415400464C415442-
  1454 000024D3 494E00464C41544249-
  1454 000024DC 4E4152590046535749-
  1454 000024E5 544348002E42494720-
  1454 000024EE 7374796C6520737461-
  1454 000024F7 636B206D6F64650042-
  1454 00002500 494700424947535441-
  1454 00002509 434B00455357495443-
  1454 00002512 480052656769737465-
  1454 0000251B 722064756D70206869-
  1454 00002524 73746F727900524800-
  1454 0000252D 52484953544F525900-
  1454 00002536 524547484953544F52-
  1454 0000253F 5900506167696E6720-
  1454 00002548 524320636F6D6D616E-
  1454 00002551 6473206D6F64650050-
  1454 0000255A 4147494E4752430050-
  1454 00002563 6167696E6720524520-
  1454 0000256C 636F6D6D616E647320-
  1454 00002575 6D6F64650050414749-
  1454 0000257E 4E4752450050616769-
  1454 00002587 6E6720536372697074-
  1454 00002590 20666F72206C446562-
  1454 00002599 7567206D6F64650050-
  1454 000025A2 4147494E4759005041-
  1454 000025AB 47494E475959005041-
  1454 000025B4 47494E475343524950-
  1454 000025BD 540033383620726567-
  1454 000025C6 69737465722064756D-
  1454 000025CF 70206D6F6465005258-
  1454 000025D8 005245475333383600-
  1454 000025E1 524547533332005472-
  1454 000025EA 61636520696E746572-
  1454 000025F3 7275707473204D6F64-
  1454 000025FC 6500544D0054524143-
  1454 00002605 45494E545300545241-
  1454 0000260E 4345494E5445525255-
  1454 00002617 50545300486F756469-
  1454 00002620 6E69204D6F64650048-
  1454 00002629 4F5544494E49004E6F-
  1454 00002632 2066726565206F6E65-
  1454 0000263B 73686F7420454C4473-
  1454 00002644 206D6F6465004E4F46-
  1454 0000264D 5245454F4E4553484F-
  1454 00002656 540051756965742045-
  1454 0000265F 4C4420696E7374616C-
  1454 00002668 6C005155494554494E-
  1454 00002671 5354414C4C00446562-
  1454 0000267A 756720454C44206F70-
  1454 00002683 74696F6E616C206C69-
  1454 0000268C 6E6B206D6F64650044-
  1454 00002695 454255474F50544C49-
  1454 0000269E 4E4B00517569636B20-
  1454 000026A7 454C442072756E0051-
  1454 000026B0 5549434B52554E0044-
  1454 000026B9 6562756720454C4420-
  1454 000026C2 72756E004445425547-
  1454 000026CB 52554E004E6F20656E-
  1454 000026D4 737572652064656275-
  1454 000026DD 67676565206C6F6164-
  1454 000026E6 6564004E4F454E5355-
  1454 000026EF 524500             
  1455                                  
  1456                                  
  1457                                  %if _MCB
  1458 000026F2 535F4F544845520053-     smcbmsg smcb_messages
  1458 000026FB 5F444F53454E545259-
  1458 00002704 00535F444F53434F44-
  1458 0000270D 4500535F444F534441-
  1458 00002716 544100535F49525153-
  1458 0000271F 434F444500535F4952-
  1458 00002728 51534441544100535F-
  1458 00002731 43445300535F4C464E-
  1458 0000273A 43445300535F445042-
  1458 00002743 00535F55504200535F-
  1458 0000274C 53465400535F464342-
  1458 00002755 53465400535F434342-
  1458 0000275E 00535F49525400535F-
  1458 00002767 534543544F5200535F-
  1458 00002770 4E4C5300535F454244-
  1458 00002779 4100535F494E495446-
  1458 00002782 434253465400535F49-
  1458 0000278B 4E4954535441434B00-
  1458 00002794 535F494E4954434453-
  1458 0000279D 00535F494E4954434F-
  1458 000027A6 4E46494700535F494E-
  1458 000027AF 495446415453454700-
  1458 000027B8 535F494E4954534543-
  1458 000027C1 544F5253454700535F-
  1458 000027CA 494E4954535441434B-
  1458 000027D3 42504200535F494E49-
  1458 000027DC 5450535000535F454E-
  1458 000027E5 5649524F4E4D454E54-
  1458 000027EE 00535F494E49544941-
  1458 000027F7 4C49534500535F4445-
  1458 00002800 5649434500535F4445-
  1458 00002809 564943454D454D4F52-
  1458 00002812 5900535F4558434C44-
  1458 0000281B 554D4100535F455843-
  1458 00002824 4C44554D4153554200-
  1458 0000282D 535F4558434C444C48-
  1458 00002836 00535F4558434C4444-
  1458 0000283F 4F5300535F4558434C-
  1458 00002848 44414C54414800     
  1459                                  
  1460 0000284F 756E6B6E6F776E00        smcbmsg_unknown:	asciz "unknown"
  1461                                  
  1462                                  %undef smcb_messages
  1463                                  %unimacro smcbtype 2.nolist
  1464                                  %unimacro smcbmsg 2-*.nolist
  1465                                  %endif
  1466                                  
  1467                                  
  1468 00002857 5E204572726F7207        errcarat:	db "^ Error",7
  1469 0000285F 0D0A00                  crlf:		asciz 13,10
  1470                                  
  1471                                  %if _SYMBOLIC
  1472                                  pre_str_list:
  1473                                  	db -1, "", 0
  1474                                  .end:
  1475                                  %endif
  1476                                  
  1477                                  
  1478 00002862 00<rep 2h>              	align 4, db 0
  1479                                  msgtable_value_range:
  1480 00002864 [7111][7B11]            	dw msg.executing, msg.executing_value_range
  1481                                  %if _ACCESS_VARIABLES_AMOUNT
  1482 00002868 [7A28][8228]            	dw .reading, .reading_range
  1483 0000286C [FD28][0529]            	dw .writing, .writing_range
  1484 00002870 [8029][8B29]            	dw .memoperand, .memoperand_range
  1485 00002874 [9C29][A629]            	dw .accessing, .accessing_range
  1486                                  %endif
  1487 00002878 0000                    	dw 0
  1488                                  
  1489                                  %if _ACCESS_VARIABLES_AMOUNT
  1490 0000287A 52454144494E4700        .reading:		asciz "READING"
  1491                                  .reading_range:
  1492                                   %assign iicounter 0
  1493                                   %define iiprefix ""
  1494                                   %rep _ACCESS_VARIABLES_AMOUNT
  1495                                  	_autohexitsstrdef IIDEF, iicounter
  1496                                  			db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1497                                   %assign iicounter iicounter + 1
  1498                                   %define iiprefix ", "
  1499                                   %endrep
  1495                              <1>  _autohexitsstrdef IIDEF, iicounter
  1496 00002882 46524F4D2072656164- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1496 0000288B 61647230204C454E47- <1>
  1496 00002894 544820726561646C65- <1>
  1496 0000289D 6E30                <1>
  1497                              <1>  %assign iicounter iicounter + 1
  1498                              <1>  %define iiprefix ", "
  1495                              <1>  _autohexitsstrdef IIDEF, iicounter
  1496 0000289F 2C2046524F4D207265- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1496 000028A8 616461647231204C45- <1>
  1496 000028B1 4E4754482072656164- <1>
  1496 000028BA 6C656E31            <1>
  1497                              <1>  %assign iicounter iicounter + 1
  1498                              <1>  %define iiprefix ", "
  1495                              <1>  _autohexitsstrdef IIDEF, iicounter
  1496 000028BE 2C2046524F4D207265- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1496 000028C7 616461647232204C45- <1>
  1496 000028D0 4E4754482072656164- <1>
  1496 000028D9 6C656E32            <1>
  1497                              <1>  %assign iicounter iicounter + 1
  1498                              <1>  %define iiprefix ", "
  1495                              <1>  _autohexitsstrdef IIDEF, iicounter
  1496 000028DD 2C2046524F4D207265- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1496 000028E6 616461647233204C45- <1>
  1496 000028EF 4E4754482072656164- <1>
  1496 000028F8 6C656E33            <1>
  1497                              <1>  %assign iicounter iicounter + 1
  1498                              <1>  %define iiprefix ", "
  1500 000028FC 00                      			asciz
  1501 000028FD 57524954494E4700        .writing:		asciz "WRITING"
  1502                                  .writing_range:
  1503                                   %assign iicounter 0
  1504                                   %define iiprefix ""
  1505                                   %rep _ACCESS_VARIABLES_AMOUNT
  1506                                  	_autohexitsstrdef IIDEF, iicounter
  1507                                  			db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1508                                   %assign iicounter iicounter + 1
  1509                                   %define iiprefix ", "
  1510                                   %endrep
  1506                              <1>  _autohexitsstrdef IIDEF, iicounter
  1507 00002905 46524F4D2077726974- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1507 0000290E 61647230204C454E47- <1>
  1507 00002917 544820777269746C65- <1>
  1507 00002920 6E30                <1>
  1508                              <1>  %assign iicounter iicounter + 1
  1509                              <1>  %define iiprefix ", "
  1506                              <1>  _autohexitsstrdef IIDEF, iicounter
  1507 00002922 2C2046524F4D207772- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1507 0000292B 697461647231204C45- <1>
  1507 00002934 4E4754482077726974- <1>
  1507 0000293D 6C656E31            <1>
  1508                              <1>  %assign iicounter iicounter + 1
  1509                              <1>  %define iiprefix ", "
  1506                              <1>  _autohexitsstrdef IIDEF, iicounter
  1507 00002941 2C2046524F4D207772- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1507 0000294A 697461647232204C45- <1>
  1507 00002953 4E4754482077726974- <1>
  1507 0000295C 6C656E32            <1>
  1508                              <1>  %assign iicounter iicounter + 1
  1509                              <1>  %define iiprefix ", "
  1506                              <1>  _autohexitsstrdef IIDEF, iicounter
  1507 00002960 2C2046524F4D207772- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1507 00002969 697461647233204C45- <1>
  1507 00002972 4E4754482077726974- <1>
  1507 0000297B 6C656E33            <1>
  1508                              <1>  %assign iicounter iicounter + 1
  1509                              <1>  %define iiprefix ", "
  1511 0000297F 00                      			asciz
  1512                                  
  1513 00002980 4D454D4F504552414E-     .memoperand:		asciz "MEMOPERAND"
  1513 00002989 4400               
  1514 0000298B 52454144494E472C20-     .memoperand_range:	asciz "READING, WRITING"
  1514 00002994 57524954494E4700   
  1515 0000299C 414343455353494E47-     .accessing:		asciz "ACCESSING"
  1515 000029A5 00                 
  1516 000029A6 52454144494E472C20-     .accessing_range:	asciz "READING, WRITING, EXECUTING"
  1516 000029AF 57524954494E472C20-
  1516 000029B8 455845435554494E47-
  1516 000029C1 00                 
  1517                                  %endif
  1518                                  
  1519                                  
  1520                                  %if _BOOTLDR
  1521                                  %define lot_list
  1522                                  %define lot_comma
  1523                                  %macro lot_entry 2.nolist
  1524                                  %ifn _LINK
  1525                                  LOAD_%2 equ %1
  1526                                  %endif
  1527                                  	dw LOAD_%2, .%2
  1528                                  %defstr %%string %2
  1529                                  %xdefine lot_list lot_list lot_comma .%2:, db %%string, db 0
  1530                                  %define lot_comma ,
  1531                                  %endmacro
  1532                                  
  1533                                  %macro lot_messages 0-*.nolist
  1534                                  %rep (%0 / 3)
  1535                                  %1
  1536                                  	%2
  1537                                  	%3
  1538                                  %rotate 3
  1539                                  %endrep
  1540                                  %endmacro
  1541                                  
  1542 000029C2 00<rep 2h>              	align 4, db 0
  1543                                  loadoptiontable:
  1544 000029C4 0100[302A]              	lot_entry    1, SET_DL_UNIT
  1545 000029C8 0200[3C2A]              	lot_entry    2, SET_BL_UNIT
  1546 000029CC 0400[482A]              	lot_entry    4, SET_SIDI_CLUSTER
  1547 000029D0 1000[592A]              	lot_entry  10h, SET_DSSI_DPT
  1548 000029D4 2000[662A]              	lot_entry  20h, PUSH_DPT
  1549 000029D8 4000[6F2A]              	lot_entry  40h, DATASTART_HIDDEN
  1550 000029DC 8000[802A]              	lot_entry  80h, SET_AXBX_DATASTART
  1551 000029E0 0001[932A]              	lot_entry 100h, SET_DSBP_BPB
  1552 000029E4 0002[A02A]              	lot_entry 200h, LBA_SET_TYPE
  1553 000029E8 0004[AD2A]              	lot_entry 400h, MESSAGE_TABLE
  1554 000029EC 0008[BB2A]              	lot_entry 800h, SET_AXBX_ROOT_HIDDEN
  1555 000029F0 0010[D02A]              	lot_entry 1000h, CMDLINE
  1556 000029F4 0020[D82A]              	lot_entry 2000h, NO_BPB
  1557 000029F8 0040[DF2A]              	lot_entry 4000h, SET_DSSI_PARTINFO
  1558 000029FC 00000000                	dw 0, 0
  1559                                  
  1560                                  .incompatible:
  1561 00002A00 02008000                	dw LOAD_SET_BL_UNIT, LOAD_SET_AXBX_DATASTART
  1562 00002A04 02000008                	dw LOAD_SET_BL_UNIT, LOAD_SET_AXBX_ROOT_HIDDEN
  1563 00002A08 80000008                	dw LOAD_SET_AXBX_DATASTART, LOAD_SET_AXBX_ROOT_HIDDEN
  1564 00002A0C 04001000                	dw LOAD_SET_SIDI_CLUSTER, LOAD_SET_DSSI_DPT
  1565 00002A10 00011000                	dw LOAD_SET_DSBP_BPB, LOAD_SET_DSSI_DPT
  1566 00002A14 00200001                	dw LOAD_NO_BPB, LOAD_SET_DSBP_BPB
  1567 00002A18 00200002                	dw LOAD_NO_BPB, LOAD_LBA_SET_TYPE
  1568 00002A1C 00200004                	dw LOAD_NO_BPB, LOAD_MESSAGE_TABLE
  1569 00002A20 00400400                	dw LOAD_SET_DSSI_PARTINFO, LOAD_SET_SIDI_CLUSTER
  1570 00002A24 00401000                	dw LOAD_SET_DSSI_PARTINFO, LOAD_SET_DSSI_DPT
  1571 00002A28 00400001                	dw LOAD_SET_DSSI_PARTINFO, LOAD_SET_DSBP_BPB
  1572 00002A2C 00000000                	dw 0, 0
  1573                                  
  1574 00002A30 5345545F444C5F554E-     lot_messages lot_list
  1574 00002A39 4954005345545F424C-
  1574 00002A42 5F554E495400534554-
  1574 00002A4B 5F534944495F434C55-
  1574 00002A54 53544552005345545F-
  1574 00002A5D 445353495F44505400-
  1574 00002A66 505553485F44505400-
  1574 00002A6F 444154415354415254-
  1574 00002A78 5F48494444454E0053-
  1574 00002A81 45545F415842585F44-
  1574 00002A8A 415441535441525400-
  1574 00002A93 5345545F445342505F-
  1574 00002A9C 425042004C42415F53-
  1574 00002AA5 45545F54595045004D-
  1574 00002AAE 4553534147455F5441-
  1574 00002AB7 424C45005345545F41-
  1574 00002AC0 5842585F524F4F545F-
  1574 00002AC9 48494444454E00434D-
  1574 00002AD2 444C494E45004E4F5F-
  1574 00002ADB 425042005345545F44-
  1574 00002AE4 5353495F5041525449-
  1574 00002AED 4E464F00           
  1575                                  
  1576                                  %unmacro lot_entry 2.nolist
  1577                                  %unmacro lot_messages 0-*.nolist
  1578                                  
  1579                                  
  1580                                  msdos7_message_table:
  1581                                  		; the first four bytes give displacements to the various
  1582                                  		;  messages. an ASCIZ message indicates that this was the
  1583                                  		;  last message. a message terminated by 0FFh indicates
  1584                                  		;  that the last message (displacement at table + 3) is
  1585                                  		;  to follow after this message.
  1586                                  		; the maximum allowed displacement is 7Fh. the minimum
  1587                                  		;  allowed displacement is 1, to avoid a zero displacement.
  1588                                  		; only the last message is terminated by a zero byte,
  1589                                  		;  as that zero byte indicates the end of the message table.
  1590                                  		;  (the entire table is treated as one ASCIZ string.)
  1591                                  		; MS-DOS 7.10 from MSW 98 SE seems to have at least 167h (359)
  1592                                  		;  bytes allocated to its buffer for these.
  1593                                  		;
  1594                                  		; this message table was discussed in a dosemu2 repo at
  1595                                  		;  https://github.com/stsp/dosemu2/issues/681
  1596 00002AF1 03                      .:	db .msg_invalid_system - ($ + 1)
  1597 00002AF2 13                      	db .msg_io_error - ($ + 1)
  1598 00002AF3 01                      	db .msg_invalid_system - ($ + 1)
  1599 00002AF4 1D                      	db .msg_press_any_key - ($ + 1)
  1600                                  
  1601                                  .msg_invalid_system:
  1602 00002AF5 0D0A496E76616C6964-     	db 13,10,"Invalid system", -1
  1602 00002AFE 2073797374656DFF   
  1603                                  
  1604                                  .msg_io_error:
  1605 00002B06 0D0A492F4F20657272-     	db 13,10,"I/O error", -1
  1605 00002B0F 6F72FF             
  1606                                  
  1607                                  .msg_press_any_key:
  1608 00002B12 0D0A4368616E676520-     	db 13,10,"Change disk and press any key",13,10,0
  1608 00002B1B 6469736B20616E6420-
  1608 00002B24 707265737320616E79-
  1608 00002B2D 206B65790D0A00     
  1609                                  .end:
  1610                                  .size: equ .end - .
  1611                                  
  1612                                  %if .size > 150h
  1613                                   %error Message table too large!
  1614                                  %endif
  1615                                  
  1616                                  
  1617                                  
  1618                                  	align 4, db 0
  1619                                  loadsettings:
  1620                                  	istruc LOADSETTINGS
  1621 00002B34 [9D08]                  at lsKernelName,	dw msg.ldos_kernel_name
  1622 00002B36 [1309]                  at lsAddName,		dw msg.addname_empty
  1623 00002B38 6000                    at lsMinPara,		dw 60h
  1624 00002B3A 0000                    at lsMaxPara,		dw 0
  1625 00002B3C 0010                    at lsOptions,		dw LOAD_CMDLINE
  1626 00002B3E 0002                    at lsSegment,		dw 200h
  1627 00002B40 00040000                at lsEntry,		dd 400h
  1628 00002B44 007CFFFF                at lsBPB,		dw 7C00h, -1
  1629 00002B48 FC03                    at lsCheckOffset,	dw 1020
  1630 00002B4A 6C44                    at lsCheckValue,	db "lD"
  1631 00002B4C 4C444F5300              at lsName,		asciz "LDOS"
  1632 00002B51 00<rep 3h>              	iend
  1633                                  	istruc LOADSETTINGS
  1634 00002B54 [8008]                  at lsKernelName,	dw msg.freedos_kernel_name
  1635 00002B56 [1309]                  at lsAddName,		dw msg.addname_empty
  1636 00002B58 2000                    at lsMinPara,		dw 20h
  1637 00002B5A FFFF                    at lsMaxPara,		dw -1
  1638 00002B5C 0300                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_BL_UNIT
  1639 00002B5E 6000                    at lsSegment,		dw 60h
  1640 00002B60 00000000                at lsEntry,		dd 0
  1641 00002B64 007CFFFF                at lsBPB,		dw 7C00h, -1
  1642 00002B68 00<rep 4h>46524545-     at lsName,		asciz "FREEDOS"
  1642 00002B70 444F5300           
  1643                                  	iend
  1644                                  	istruc LOADSETTINGS
  1645 00002B74 [8B08]                  at lsKernelName,	dw msg.dosc_kernel_name
  1646 00002B76 [1309]                  at lsAddName,		dw msg.addname_empty
  1647 00002B78 2000                    at lsMinPara,		dw 20h
  1648 00002B7A FFFF                    at lsMaxPara,		dw -1
  1649 00002B7C 0300                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_BL_UNIT
  1650 00002B7E 0020                    at lsSegment,		dw 2000h
  1651 00002B80 00000000                at lsEntry,		dd 0
  1652 00002B84 007C0000                at lsBPB,		dw 7C00h, 0
  1653 00002B88 00<rep 4h>444F5343-     at lsName,		asciz "DOSC"
  1653 00002B90 00                 
  1654 00002B91 00<rep 3h>              	iend
  1655                                  	istruc LOADSETTINGS
  1656 00002B94 [9308]                  at lsKernelName,	dw msg.edrdos_kernel_name
  1657 00002B96 [1309]                  at lsAddName,		dw msg.addname_empty
  1658 00002B98 2000                    at lsMinPara,		dw 20h
  1659 00002B9A FFFF                    at lsMaxPara,		dw -1
  1660 00002B9C 0301                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_BL_UNIT 			 | LOAD_SET_DSBP_BPB
  1662 00002B9E 7000                    at lsSegment,		dw 70h
  1663 00002BA0 00000000                at lsEntry,		dd 0
  1664 00002BA4 007CFFFF                at lsBPB,		dw 7C00h, -1
  1665 00002BA8 00<rep 4h>45445244-     at lsName,		asciz "EDRDOS"
  1665 00002BB0 4F5300             
  1666 00002BB3 00                      	iend
  1667                                  	istruc LOADSETTINGS
  1668 00002BB4 [A608]                  at lsKernelName,	dw msg.msdos6_kernel_name
  1669 00002BB6 [AD08]                  at lsAddName,		dw msg.msdos6_add_name
  1670 00002BB8 2000                    at lsMinPara,		dw 20h
  1671 00002BBA 6000                    at lsMaxPara,		dw 60h
  1672 00002BBC F100                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_DATASTART 			 | LOAD_DATASTART_HIDDEN | LOAD_SET_DSSI_DPT 			 | LOAD_PUSH_DPT
  1675 00002BBE 7000                    at lsSegment,		dw 70h
  1676 00002BC0 00000000                at lsEntry,		dd 0
  1677 00002BC4 007C0000                at lsBPB,		dw 7C00h, 0
  1678 00002BC8 00<rep 4h>4D53444F-     at lsName,		asciz "MSDOS6"
  1678 00002BD0 533600             
  1679 00002BD3 00                      	iend
  1680                                  	istruc LOADSETTINGS
  1681 00002BD4 [E808]                  at lsKernelName,	dw msg.rxdos.0_kernel_name
  1682 00002BD6 [FF08]                  at lsAddName,		dw msg.rxdos.0_add_name
  1683 00002BD8 2000                    at lsMinPara,		dw 20h
  1684 00002BDA 6000                    at lsMaxPara,		dw 60h
  1685 00002BDC 3108                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_ROOT_HIDDEN 			 | LOAD_SET_DSSI_DPT | LOAD_PUSH_DPT
  1687 00002BDE 7000                    at lsSegment,		dw 70h
  1688 00002BE0 00000000                at lsEntry,		dd 0
  1689 00002BE4 007C0000                at lsBPB,		dw 7C00h, 0
  1690 00002BE8 00<rep 4h>5258444F-     at lsName,		asciz "RXDOS.0"
  1690 00002BF0 532E3000           
  1691                                  	iend
  1692                                  	istruc LOADSETTINGS
  1693 00002BF4 [F508]                  at lsKernelName,	dw msg.rxdos.1_kernel_name
  1694 00002BF6 [FF08]                  at lsAddName,		dw msg.rxdos.1_add_name
  1695 00002BF8 2000                    at lsMinPara,		dw 20h
  1696 00002BFA 6000                    at lsMaxPara,		dw 60h
  1697 00002BFC 3108                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_ROOT_HIDDEN 			 | LOAD_SET_DSSI_DPT | LOAD_PUSH_DPT
  1699 00002BFE 7000                    at lsSegment,		dw 70h
  1700 00002C00 00000000                at lsEntry,		dd 0
  1701 00002C04 007C0000                at lsBPB,		dw 7C00h, 0
  1702 00002C08 00<rep 4h>5258444F-     at lsName,		asciz "RXDOS.1"
  1702 00002C10 532E3100           
  1703                                  	iend
  1704                                  	istruc LOADSETTINGS
  1705 00002C14 [0909]                  at lsKernelName,	dw msg.rxdos.2_kernel_name
  1706 00002C16 [1309]                  at lsAddName,		dw msg.addname_empty
  1707 00002C18 6000                    at lsMinPara,		dw 60h
  1708 00002C1A 0000                    at lsMaxPara,		dw 0
  1709 00002C1C 0010                    at lsOptions,		dw LOAD_CMDLINE
  1710 00002C1E 7000                    at lsSegment,		dw 70h
  1711 00002C20 00040000                at lsEntry,		dd 400h
  1712 00002C24 007CFFFF                at lsBPB,		dw 7C00h, -1
  1713 00002C28 00<rep 4h>5258444F-     at lsName,		asciz "RXDOS.2"
  1713 00002C30 532E3200           
  1714                                  	iend
  1715                                  	istruc LOADSETTINGS
  1716 00002C34 [0909]                  at lsKernelName,	dw msg.rxdos.2_kernel_name
  1717 00002C36 [1309]                  at lsAddName,		dw msg.addname_empty
  1718 00002C38 6000                    at lsMinPara,		dw 60h
  1719 00002C3A 0000                    at lsMaxPara,		dw 0
  1720 00002C3C 0010                    at lsOptions,		dw LOAD_CMDLINE
  1721 00002C3E 0002                    at lsSegment,		dw 200h
  1722 00002C40 00040000                at lsEntry,		dd 400h
  1723 00002C44 007CFFFF                at lsBPB,		dw 7C00h, -1
  1724 00002C48 FC03                    at lsCheckOffset,	dw 1020
  1725 00002C4A 6C44                    at lsCheckValue,	db "lD"
  1726 00002C4C 5258444F532E3300        at lsName,		asciz "RXDOS.3"
  1727                                  	iend
  1728                                  	istruc LOADSETTINGS
  1729 00002C54 [B708]                  at lsKernelName,	dw msg.ibmdos_kernel_name
  1730 00002C56 [C208]                  at lsAddName,		dw msg.ibmdos_add_name
  1731 00002C58 2000                    at lsMinPara,		dw 20h
  1732 00002C5A 8000                    at lsMaxPara,		dw 80h
  1733 00002C5C F100                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_DATASTART 			 | LOAD_DATASTART_HIDDEN | LOAD_SET_DSSI_DPT 			 | LOAD_PUSH_DPT
  1736 00002C5E 7000                    at lsSegment,		dw 70h
  1737 00002C60 00000000                at lsEntry,		dd 0
  1738 00002C64 007C0000                at lsBPB,		dw 7C00h, 0
  1739 00002C68 00<rep 4h>49424D44-     at lsName,		asciz "IBMDOS"
  1739 00002C70 4F5300             
  1740 00002C73 00                      	iend
  1741                                  	istruc LOADSETTINGS
  1742 00002C74 [B708]                  at lsKernelName,	dw msg.ibmdos_kernel_name
  1743 00002C76 [C208]                  at lsAddName,		dw msg.ibmdos_add_name
  1744 00002C78 2000                    at lsMinPara,		dw 20h
  1745 00002C7A FFFF                    at lsMaxPara,		dw -1
  1746 00002C7C F100                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_DATASTART 			 | LOAD_DATASTART_HIDDEN | LOAD_SET_DSSI_DPT 			 | LOAD_PUSH_DPT
  1749 00002C7E 7000                    at lsSegment,		dw 70h
  1750 00002C80 00000000                at lsEntry,		dd 0
  1751 00002C84 007C0000                at lsBPB,		dw 7C00h, 0
  1752 00002C88 00<rep 4h>4452444F-     at lsName,		asciz "DRDOS"
  1752 00002C90 5300               
  1753 00002C92 00<rep 2h>              	iend
  1754                                  	istruc LOADSETTINGS
  1755 00002C94 [A608]                  at lsKernelName,	dw msg.msdos7_kernel_name
  1756 00002C96 [1309]                  at lsAddName,		dw msg.addname_empty
  1757 00002C98 4000                    at lsMinPara,		dw 40h
  1758 00002C9A 8000                    at lsMaxPara,		dw 80h
  1759 00002C9C 6506                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_SIDI_CLUSTER 			 | LOAD_DATASTART_HIDDEN | LOAD_PUSH_DPT 			 | LOAD_LBA_SET_TYPE | LOAD_MESSAGE_TABLE
  1762 00002C9E 7000                    at lsSegment,		dw 70h
  1763 00002CA0 00020000                at lsEntry,		dd 200h
  1764 00002CA4 007CFFFF                at lsBPB,		dw 7C00h, -1
  1765 00002CA8 0002                    at lsCheckOffset,	dw 200h
  1766 00002CAA 424A                    at lsCheckValue,	db "BJ"
  1767 00002CAC 4D53444F533700          at lsName,		asciz "MSDOS7"
  1768 00002CB3 00                      	iend
  1769                                  	istruc LOADSETTINGS
  1770 00002CB4 [CD08]                  at lsKernelName,	dw msg.ntldr_kernel_name
  1771 00002CB6 [1309]                  at lsAddName,		dw msg.addname_empty
  1772 00002CB8 2000                    at lsMinPara,		dw 20h
  1773 00002CBA FFFF                    at lsMaxPara,		dw -1
  1774 00002CBC 4100                    at lsOptions,		dw LOAD_SET_DL_UNIT 			 | LOAD_DATASTART_HIDDEN
  1776 00002CBE 0020                    at lsSegment,		dw 2000h
  1777 00002CC0 00000000                at lsEntry,		dd 0
  1778 00002CC4 007C0000                at lsBPB,		dw 7C00h, 0
  1779 00002CC8 00<rep 4h>4E544C44-     at lsName,		asciz "NTLDR"
  1779 00002CD0 5200               
  1780 00002CD2 00<rep 2h>              	iend
  1781                                  	istruc LOADSETTINGS
  1782 00002CD4 [D308]                  at lsKernelName,	dw msg.bootmgr_kernel_name
  1783 00002CD6 [1309]                  at lsAddName,		dw msg.addname_empty
  1784 00002CD8 2000                    at lsMinPara,		dw 20h
  1785 00002CDA FFFF                    at lsMaxPara,		dw -1
  1786 00002CDC 4100                    at lsOptions,		dw LOAD_SET_DL_UNIT 			 | LOAD_DATASTART_HIDDEN
  1788 00002CDE 0020                    at lsSegment,		dw 2000h
  1789 00002CE0 00000000                at lsEntry,		dd 0
  1790 00002CE4 007C0000                at lsBPB,		dw 7C00h, 0
  1791 00002CE8 00<rep 4h>424F4F54-     at lsName,		asciz "BOOTMGR"
  1791 00002CF0 4D475200           
  1792                                  	iend
  1793                                  	istruc LOADSETTINGS
  1794 00002CF4 [DB08]                  at lsKernelName,	dw msg.chain_kernel_name
  1795 00002CF6 [1309]                  at lsAddName,		dw msg.addname_empty
  1796 00002CF8 2000                    at lsMinPara,		dw paras(512)
  1797 00002CFA 0002                    at lsMaxPara,		dw paras(8192)
  1798 00002CFC 0160                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_DSSI_PARTINFO 			 | LOAD_NO_BPB
  1800 00002CFE C007                    at lsSegment,		dw 7C0h
  1801 00002D00 007C40F8                at lsEntry,		dw 7C00h, -7C0h
  1802 00002D04 007C0000                at lsBPB,		dw 7C00h, 0
  1803 00002D08 FE01                    at lsCheckOffset,	dw 510
  1804 00002D0A 55AA                    at lsCheckValue,	dw 0AA55h
  1805 00002D0C 434841494E00            at lsName,		asciz "CHAIN"
  1806 00002D12 00<rep 2h>              	iend
  1807 00002D14 0000                    			dw 0
  1808                                  %endif
  1809                                  
  1810                                  
  1811                                  %if _APPLICATION || _DEVICE
  1812 00002D16 0D21                    dskerrs:	db dskerr0-dskerrs,dskerr1-dskerrs
  1813 00002D18 3444                    		db dskerr2-dskerrs,dskerr3-dskerrs
  1814 00002D1A 5494                    		db dskerr4-dskerrs,dskerr9-dskerrs
  1815 00002D1C 6570                    		db dskerr6-dskerrs,dskerr7-dskerrs
  1816 00002D1E 8394                    		db dskerr8-dskerrs,dskerr9-dskerrs
  1817 00002D20 A2AE                    		db dskerra-dskerrs,dskerrb-dskerrs
  1818 00002D22 B9                      		db dskerrc-dskerrs
  1819 00002D23 57726974652070726F-     dskerr0:	asciz "Write protect error"
  1819 00002D2C 74656374206572726F-
  1819 00002D35 7200               
  1820 00002D37 556E6B6E6F776E2075-     dskerr1:	asciz "Unknown unit error"
  1820 00002D40 6E6974206572726F72-
  1820 00002D49 00                 
  1821 00002D4A 4472697665206E6F74-     dskerr2:	asciz "Drive not ready"
  1821 00002D53 20726561647900     
  1822 00002D5A 556E6B6E6F776E2063-     dskerr3:	asciz "Unknown command"
  1822 00002D63 6F6D6D616E6400     
  1823 00002D6A 44617461206572726F-     dskerr4:	asciz "Data error (CRC)"
  1823 00002D73 7220284352432900   
  1824 00002D7B 5365656B206572726F-     dskerr6:	asciz "Seek error"
  1824 00002D84 7200               
  1825 00002D86 556E6B6E6F776E206D-     dskerr7:	asciz "Unknown media type"
  1825 00002D8F 656469612074797065-
  1825 00002D98 00                 
  1826 00002D99 536563746F72206E6F-     dskerr8:	asciz "Sector not found"
  1826 00002DA2 7420666F756E6400   
  1827 00002DAA 556E6B6E6F776E2065-     dskerr9:	asciz "Unknown error"
  1827 00002DB3 72726F7200         
  1828 00002DB8 577269746520666175-     dskerra:	asciz "Write fault"
  1828 00002DC1 6C7400             
  1829 00002DC4 52656164206661756C-     dskerrb:	asciz "Read fault"
  1829 00002DCD 7400               
  1830 00002DCF 47656E6572616C2066-     dskerrc:	asciz "General failure"
  1830 00002DD8 61696C75726500     
  1831 00002DDF 207265616400            reading:	asciz " read"
  1832 00002DE5 207772697400            writing:	asciz " writ"
  1833 00002DEB 696E67206472697665-     drive:		db "ing drive "
  1833 00002DF4 20                 
  1834 00002DF5 5F00                    driveno:	asciz "_"
  1835                                  %endif
  1836 00002DF7 383038362F383800        msg8088:	asciz "8086/88"
  1837 00002DFF 78383600                msgx86:		asciz "x86"
  1838 00002E03 20776974686F757420-     no_copr:	asciz " without coprocessor"
  1838 00002E0C 636F70726F63657373-
  1838 00002E15 6F7200             
  1839 00002E18 207769746820636F70-     has_copr:	asciz " with coprocessor"
  1839 00002E21 726F636573736F7200 
  1840 00002E2A 207769746820323837-     has_287:	asciz " with 287"
  1840 00002E33 00                 
  1841 00002E34 7472616365206D6F64-     tmodes:		db "trace mode is "
  1841 00002E3D 6520697320         
  1842 00002E42 5F202D20696E746572-     tmodev:		asciz "_ - interrupts are "
  1842 00002E4B 727570747320617265-
  1842 00002E54 2000               
  1843 00002E56 74726163656400          tmode1:		asciz "traced"
  1844 00002E5D 70726F636573736564-     tmode0:		asciz "processed"
  1844 00002E66 00                 
  1845 00002E67 2028756E7573656429-     unused:		asciz " (unused)"
  1845 00002E70 00                 
  1846                                  needsmsg:
  1847 00002E71 5B6E6565647320          .:		db "[needs "
  1848                                  .digit_x_ofs: equ $ - .
  1849 00002E78 7838                    		db "x8"
  1850                                  .digit_6_ofs: equ $ - .
  1851 00002E7A 365D                    		db "6]"
  1852                                  needsmsg_L:	equ $-needsmsg
  1853 00002E7C 5B6E65656473206D61-     needsmath:	db "[needs math coprocessor]"
  1853 00002E85 746820636F70726F63-
  1853 00002E8E 6573736F725D       
  1854                                  needsmath_L:	equ $-needsmath
  1855 00002E94 5B6F62736F6C657465-     obsolete:	db "[obsolete]"
  1855 00002E9D 5D                 
  1856                                  obsolete_L:	equ $-obsolete
  1857 00002E9E 446976696465206572-     int0msg:	asciz "Divide error",13,10
  1857 00002EA7 726F720D0A00       
  1858 00002EAD 556E65787065637465-     int1msg:	asciz "Unexpected single-step interrupt",13,10
  1858 00002EB6 642073696E676C652D-
  1858 00002EBF 7374657020696E7465-
  1858 00002EC8 72727570740D0A00   
  1859 00002ED0 556E65787065637465-     int3msg:	asciz "Unexpected breakpoint interrupt",13,10
  1859 00002ED9 6420627265616B706F-
  1859 00002EE2 696E7420696E746572-
  1859 00002EEB 727570740D0A00     
  1860                                  %if _CATCHINT06
  1861 00002EF2 496E76616C6964206F-     int6msg:	asciz "Invalid opcode",13,10
  1861 00002EFB 70636F64650D0A00   
  1862                                  %endif
  1863                                  %if _CATCHINT08
  1864 00002F03 446574656374656420-     int8msg:	asciz "Detected Control pressed for a while",13,10
  1864 00002F0C 436F6E74726F6C2070-
  1864 00002F15 72657373656420666F-
  1864 00002F1E 722061207768696C65-
  1864 00002F27 0D0A00             
  1865 00002F2A 446574656374656420-     int8_kbd_msg:	asciz "Detected Control pressed for a while (Keyboard enabled)",13,10
  1865 00002F33 436F6E74726F6C2070-
  1865 00002F3C 72657373656420666F-
  1865 00002F45 722061207768696C65-
  1865 00002F4E 20284B6579626F6172-
  1865 00002F57 6420656E61626C6564-
  1865 00002F60 290D0A00           
  1866                                  runint_ctrlc_msg:
  1867 00002F64 446574656374656420-     		asciz "Detected double Control-C via serial",13,10
  1867 00002F6D 646F75626C6520436F-
  1867 00002F76 6E74726F6C2D432076-
  1867 00002F7F 69612073657269616C-
  1867 00002F88 0D0A00             
  1868                                  %endif
  1869                                  %if _CATCHINT07
  1870                                  int7msg:	asciz "No x87 present",13,10
  1871                                  %endif
  1872                                  %if _CATCHINT0C
  1873 00002F8B 537461636B20666175-     int0Cmsg:	asciz "Stack fault (in R86M)",13,10
  1873 00002F94 6C742028696E205238-
  1873 00002F9D 364D290D0A00       
  1874                                  %endif
  1875                                  %if _CATCHINT0D
  1876 00002FA3 47656E6572616C2070-     int0Dmsg:	asciz "General protection fault (in R86M)",13,10
  1876 00002FAC 726F74656374696F6E-
  1876 00002FB5 206661756C74202869-
  1876 00002FBE 6E205238364D290D0A-
  1876 00002FC7 00                 
  1877                                  %endif
  1878                                  %if _CATCHINT18 || _LOADER
  1879 00002FC8 4469736B6C65737320-     int18msg:	asciz "Diskless boot hook called",13,10
  1879 00002FD1 626F6F7420686F6F6B-
  1879 00002FDA 2063616C6C65640D0A-
  1879 00002FE3 00                 
  1880                                  %endif
  1881                                  %if _CATCHINT19 || _LOADER
  1882 00002FE4 426F6F74206C6F6164-     int19msg:	asciz "Boot load called",13,10
  1882 00002FED 2063616C6C65640D0A-
  1882 00002FF6 00                 
  1883                                  %endif
  1884                                  %if _CATCHSYSREQ
  1885                                  sysreqmsg:	asciz "SysReq detected",13,10
  1886                                  %endif
  1887                                  %if _PM
  1888                                   %if _CATCHEXC06
  1889 00002FF7 496E76616C6964206F-     exc6msg:	asciz "Invalid opcode fault",13,10
  1889 00003000 70636F646520666175-
  1889 00003009 6C740D0A00         
  1890                                   %endif
  1891                                   %if _CATCHEXC0C
  1892 0000300E 537461636B20666175-     excCmsg:	asciz "Stack fault",13,10
  1892 00003017 6C740D0A00         
  1893                                   %endif
  1894 0000301C 47656E6572616C2070-     excDmsg:	asciz "General protection fault",13,10
  1894 00003025 726F74656374696F6E-
  1894 0000302E 206661756C740D0A00 
  1895                                  %endif
  1896                                  %if _PM || _CATCHINT07 || _CATCHINT0C || _CATCHINT0D
  1897                                   %if _EXCCSIP
  1898 00003037 43533A49503D            excloc:		db "CS:IP="
  1899 0000303D 202020203A20202020-     exccsip:	asciz "    :    ",13,10
  1899 00003046 0D0A00             
  1900                                   %endif
  1901                                   %if _AREAS
  1902                                  msg.area_hh_indirection_memory_access:
  1903 00003049 45787072657373696F-     		asciz "Expression indirection fault: "
  1903 00003052 6E20696E6469726563-
  1903 0000305B 74696F6E206661756C-
  1903 00003064 743A2000           
  1904                                  msg.area_rr_variable_read_access:
  1905 00003068 4D656D6F7279207661-     		asciz "Memory variable read access fault: "
  1905 00003071 726961626C65207265-
  1905 0000307A 616420616363657373-
  1905 00003083 206661756C743A2000 
  1906                                  msg.area_rr_variable_write_access:
  1907 0000308C 4D656D6F7279207661-     		asciz "Memory variable write access fault: "
  1907 00003095 726961626C65207772-
  1907 0000309E 697465206163636573-
  1907 000030A7 73206661756C743A20-
  1907 000030B0 00                 
  1908                                  msg.area_uu_referenced_memory_access:
  1909 000030B1 0D0A44697361737365-     		asciz 13,10,"Disassembly referenced memory fault: "
  1909 000030BA 6D626C792072656665-
  1909 000030C3 72656E636564206D65-
  1909 000030CC 6D6F7279206661756C-
  1909 000030D5 743A2000           
  1910                                  msg.area_uu_simulate_scas:
  1911 000030D9 446973617373656D62-     		asciz "Disassembly SCAS simulation fault: "
  1911 000030E2 6C7920534341532073-
  1911 000030EB 696D756C6174696F6E-
  1911 000030F4 206661756C743A2000 
  1912                                  msg.area_uu_simulate_cmps:
  1913 000030FD 446973617373656D62-     		asciz "Disassembly CMPS simulation fault: "
  1913 00003106 6C7920434D50532073-
  1913 0000310F 696D756C6174696F6E-
  1913 00003118 206661756C743A2000 
  1914                                  msg.area_aa_access:
  1915 00003121 417373656D626C7920-     		asciz "Assembly fault: "
  1915 0000312A 6661756C743A2000   
  1916                                  msg.area_dd_access:
  1917 00003132 44756D702064617461-     		asciz "Dump data fault: "
  1917 0000313B 206661756C743A2000 
  1918                                  msg.area_ee_interactive_access:
  1919 00003144 0D0A                    		db 13,10
  1920                                  msg.area_ee_access:
  1921 00003146 456E74657220646174-     		asciz "Enter data fault: "
  1921 0000314F 61206661756C743A20-
  1921 00003158 00                 
  1922                                  msg.area_rr_access:
  1923 00003159 526567697374657220-     		asciz "Register command fault: "
  1923 00003162 636F6D6D616E642066-
  1923 0000316B 61756C743A2000     
  1924                                  msg.area_sss_access:
  1925 00003172 53656172636820636F-     		asciz "Search command fault: "
  1925 0000317B 6D6D616E6420666175-
  1925 00003184 6C743A2000         
  1926                                  msg.area_run_access:
  1927 00003189 52756E20636F6D6D61-     		asciz "Run command fault: "
  1927 00003192 6E64206661756C743A-
  1927 0000319B 2000               
  1928                                  msg.area_uu_access:
  1929 0000319D 446973617373656D62-     		asciz "Disassembly fault: "
  1929 000031A6 6C79206661756C743A-
  1929 000031AF 2000               
  1930                                   %endif
  1931                                  %endif
  1932                                  %if _PM
  1933 000031B1 50616765206661756C-     excEmsg:	asciz "Page fault",13,10
  1933 000031BA 740D0A00           
  1934                                   %if _BREAK_INSTALLDPMI
  1935 000031BE 456E74657265642050-     installdpmimsg:	asciz "Entered Protected Mode",13,10
  1935 000031C7 726F74656374656420-
  1935 000031D0 4D6F64650D0A00     
  1936                                   %endif
  1937 000031D7 436F6D6D616E64206E-     nodosext:	asciz "Command not supported in protected mode without a DOS extender",13,10
  1937 000031E0 6F7420737570706F72-
  1937 000031E9 74656420696E207072-
  1937 000031F2 6F746563746564206D-
  1937 000031FB 6F646520776974686F-
  1937 00003204 7574206120444F5320-
  1937 0000320D 657874656E6465720D-
  1937 00003216 0A00               
  1938 00003218 436F6D6D616E64206E-     nopmsupp:	asciz "Command not supported in protected mode",13,10
  1938 00003221 6F7420737570706F72-
  1938 0000322A 74656420696E207072-
  1938 00003233 6F746563746564206D-
  1938 0000323C 6F64650D0A00       
  1939                                   %if _DISPHOOK
  1940 00003242 44504D4920656E7472-     dpmihook:	db "DPMI entry hooked, new entry="
  1940 0000324B 7920686F6F6B65642C-
  1940 00003254 206E657720656E7472-
  1940 0000325D 793D               
  1941 0000325F 5F5F5F5F3A              dpmihookcs:	db "____:"
  1942                                   %ifn _LINK
  1943                                  		db _4digitshex(mydpmientry+DATASECTIONFIXUP)
  1944                                   %else
  1945                                   wlcalc dword_itoa_2_00_10h
  1946 00003264 [00000000]              		dd mydpmientry
  1947                                   %endif
  1948 00003268 0D0A00                  		asciz 13,10
  1949                                    %if _DEBUG
  1950 0000326B 44504D4920656E7472-     dpmihookamis:	asciz "DPMI entry hooked by other debugger with AMIS callout",13,10
  1950 00003274 7920686F6F6B656420-
  1950 0000327D 6279206F7468657220-
  1950 00003286 646562756767657220-
  1950 0000328F 7769746820414D4953-
  1950 00003298 2063616C6C6F75740D-
  1950 000032A1 0A00               
  1951                                    %endif
  1952                                   %endif
  1953 000032A3 44504D4920656E7472-     msg.dpmi_no_hook:	asciz "DPMI entry cannot be hooked!",13,10
  1953 000032AC 792063616E6E6F7420-
  1953 000032B5 626520686F6F6B6564-
  1953 000032BE 210D0A00           
  1954 000032C2 7265736F7572636520-     nodesc:		asciz "resource not accessible in real mode",13,10
  1954 000032CB 6E6F74206163636573-
  1954 000032D4 7369626C6520696E20-
  1954 000032DD 7265616C206D6F6465-
  1954 000032E6 0D0A00             
  1955                                  ;descwrong:	asciz "descriptor not accessible",13,10
  1956 000032E9 4D532D444F5300          msg.msdos:	asciz "MS-DOS"
  1957 000032F0 2D2D2D2D2062617365-     descriptor:	db "---- base="
  1957 000032F9 3D                 
  1958 000032FA 2D2D2D2D2D2D2D2D20-     .base:		db "-------- limit="
  1958 00003303 6C696D69743D       
  1959 00003309 2D2D2D2D2D2D2D2D20-     .limit:		db "-------- attr="
  1959 00003312 617474723D         
  1960 00003317 2D2D2D2D0D0A            .attrib:	db "----",13,10
  1961 0000331D 00                      		asciz
  1962                                  %endif	; _PM
  1963 0000331E 4572726F7220696E20-     ph_msg:		asciz "Error in sequence of calls to hack.",13,10
  1963 00003327 73657175656E636520-
  1963 00003330 6F662063616C6C7320-
  1963 00003339 746F206861636B2E0D-
  1963 00003342 0A00               
  1964                                  
  1965 00003344 0D0A50726F6772616D-     progtrm:	db 13,10,"Program terminated normally ("
  1965 0000334D 207465726D696E6174-
  1965 00003356 6564206E6F726D616C-
  1965 0000335F 6C792028           
  1966 00003363 5F5F5F5F290D0A00        progexit:	asciz "____)",13,10
  1967                                  %if _APPLICATION || _DEVICE
  1968 0000336B 45584520616E642048-     nowhexe:	asciz "EXE and HEX files cannot be written",13,10
  1968 00003374 45582066696C657320-
  1968 0000337D 63616E6E6F74206265-
  1968 00003386 207772697474656E0D-
  1968 0000338F 0A00               
  1969 00003391 43616E6E6F74207772-     nownull:	asciz "Cannot write: no file name given",13,10
  1969 0000339A 6974653A206E6F2066-
  1969 000033A3 696C65206E616D6520-
  1969 000033AC 676976656E0D0A00   
  1970 000033B4 4572726F7220696E20-     msg.hexerror:	asciz "Error in HEX file",13,10
  1970 000033BD 4845582066696C650D-
  1970 000033C6 0A00               
  1971 000033C8 57726974696E672000      wwmsg1:		asciz "Writing "
  1972 000033D1 2062797465730D0A00      wwmsg2:		asciz " bytes",13,10
  1973 000033DA 4469736B2066756C6C-     diskful:	asciz "Disk full",13,10
  1973 000033E3 0D0A00             
  1974 000033E6 4572726F7220            openerr:	db "Error "
  1975 000033EC 5F5F5F5F206F70656E-     openerr1:	asciz "____ opening file",13,10
  1975 000033F5 696E672066696C650D-
  1975 000033FE 0A00               
  1976 00003400 46696C65206E6F7420-     doserr2:	asciz "File not found",13,10
  1976 00003409 666F756E640D0A00   
  1977 00003411 50617468206E6F7420-     doserr3:	asciz "Path not found",13,10
  1977 0000341A 666F756E640D0A00   
  1978 00003422 416363657373206465-     doserr5:	asciz "Access denied",13,10
  1978 0000342B 6E6965640D0A00     
  1979 00003432 496E73756666696369-     doserr8:	asciz "Insufficient memory",13,10
  1979 0000343B 656E74206D656D6F72-
  1979 00003444 790D0A00           
  1980 00003448 496E76616C69642066-     doserr11:	asciz "Invalid format",13,10
  1980 00003451 6F726D61740D0A00   
  1981                                  %endif
  1982                                  
  1983                                  %if _EMS
  1984                                   %define dw_emserr dw
  1985                                   %include "xxmsg.asm"
  1986                                  %endif
  1987                                  
  1988 00003459 00<rep 3h>              		align 4, db 0
  1989                                  flagbits:
  1990 0000345C 000800040002800040-     .:		dw 800h,400h,200h, 80h,040h,010h,004h,001h
  1990 00003465 00100004000100     
  1991                                  .amount: equ ($ - .) / 2
  1992 0000346C 4F56444E45494E475A-     flagson:	dw "OV","DN","EI","NG","ZR","AC","PE","CY"
  1992 00003475 52414350454359     
  1993 0000347C 4E5655504449504C4E-     flagsoff:	dw "NV","UP","DI","PL","NZ","NA","PO","NC"
  1993 00003485 5A4E41504F4E43     
  1994 0000348C 4F464446494653465A-     flagnames:	dw "OF","DF","IF","SF","ZF","AF","PF","CF"
  1994 00003495 46414650464346     
  1995                                  %if _REGSREADABLEFLAGS
  1996 0000349C 4F314431493153315A-     flagson_style23:dw "O1","D1","I1","S1","Z1","A1","P1","C1"
  1996 000034A5 31413150314331     
  1997 000034AC 4F304430493053305A-     flagsoff_style2:dw "O0","D0","I0","S0","Z0","A0","P0","C0"
  1997 000034B5 30413050304330     
  1998 000034BC 4F5F445F495F535F5A-     flagsoff_style3:dw "O_","D_","I_","S_","Z_","A_","P_","C_"
  1998 000034C5 5F415F505F435F     
  1999                                  %endif
  2000                                  %if _40COLUMNS
  2001                                  flagbits_for_40: equ 1____0____0____1____1____0____0____1b
  2002                                  flagbits_for_80: equ 1____1____1____1____1____1____1____1b
  2003                                  flagbits_for_shl: equ 16 - flagbits.amount
  2004                                  
  2005                                  		align 2, db 0
  2006                                  shortflagbits:
  2007 000034CC 00040002                .:		dw 400h, 200h
  2008                                  .amount: equ ($ - .) / 2
  2009 000034D0 44204520                shortflagson:	dw "D ", "E "
  2010 000034D4 55204420                shortflagsoff:	dw "U ", "D "
  2011                                  %endif
  2012                                  
  2013                                  		align 4, db 0
  2014                                  table_length_keywords:
  2015 000034D8 1E00[A510]              	dw 30, msg.gib
  2016 000034DC 1400[A910]              	dw 20, msg.mib
  2017 000034E0 0A00[AD10]              	dw 10, msg.kib
  2018 000034E4 0900[B110]              	dw 9, msg.pages
  2019 000034E8 0400[B710]              	dw 4, msg.paragraphs
  2020 000034EC 0400[C210]              	dw 4, msg.paras
  2021 000034F0 0300[C810]              	dw 3, msg.qwords
  2022 000034F4 0200[CF10]              	dw 2, msg.dwords
  2023 000034F8 0100[D010]              	dw 1, msg.words
  2024 000034FC 0000[D610]              	dw 0, msg.bytes		; end of table, shift count zero
  2025                                  
  2026 00003500 01                      flagvaron:	db 1
  2027 00003501 00                      flagvaroff:	db 0		; must be directly behind flagvaron
  2028                                  
  2029                                  %if _COND
  2030 00003502 6E6F7420                msg.condnotjump:db "not "
  2031 00003506 6A756D70696E6700        msg.condjump:	asciz "jumping"
  2032                                  %endif
  2033                                  
  2034 0000350E 206D6174636865730D-     msg.matches:	asciz " matches",13,10
  2034 00003517 0A00               
  2035                                  
  2036 00003519 00<rep 3h>              		align 4, db 0
  2037 0000351C 414C4148424C424843-     reg8names:	dw "AL","AH","BL","BH","CL","CH","DL","DH"
  2037 00003525 4C4348444C4448     
  2038                                  ; Even entries are xL registers, odd ones the xH ones.
  2039                                  ; Order matches that of the first four regs entries.
  2040                                  
  2041 0000352C 415842584358445853-     reg16names:	dw "AX","BX","CX","DX","SP","BP","SI","DI"
  2041 00003535 50425053494449     
  2042 0000353C 445345535353435346-     		dw "DS","ES","SS","CS","FS","GS","IP","FL"
  2042 00003545 5347534950464C     
  2043                                  ; 32-bit registers are the first eight and last two entries of
  2044                                  ;  reg16names with 'E', which are all non-segment registers.
  2045                                  ; Segment registers can be detected by the 'S' as second letter.
  2046                                  ; FS and GS are the fourth- and third-to-last entries.
  2047                                  ; Order matches that of the sixteen regs entries.
  2048                                  
  2049                                  %if _LOADER
  2050                                  ; struc MOVETABLEENTRY moved to debug.mac
  2051                                  
  2052                                  	align 2, db 0
  2053                                  movetable:			; used both as a table and as an array
  2054                                  .bottom:
  2055                                  	dw msg.bottom
  2056                                  	dw 0
  2057                                  	dw msg.isbottom
  2058                                  	dw moveloader.already
  2059                                  	dw moveloader.top_to_bottom
  2060                                  	dw moveloader.hidden_to_bottom
  2061                                  
  2062                                  	dw msg.top
  2063                                  	dw 1
  2064                                  	dw msg.istop
  2065                                  	dw moveloader.bottom_to_top
  2066                                  	dw moveloader.already
  2067                                  	dw moveloader.hidden_to_top
  2068                                  
  2069                                  	dw msg.hidden
  2070                                  	dw 2
  2071                                  	dw msg.ishidden
  2072                                  	dw moveloader.bottom_to_hidden
  2073                                  	dw moveloader.top_to_hidden
  2074                                  	dw moveloader.already
  2075                                  
  2076                                  	dw 0
  2077                                  
  2078                                  	align 2, db 0
  2079                                  movesegrefstable:
  2080                                  	dw code_seg
  2081                                  %if _MESSAGESEGMENT
  2082                                  	dw messageseg
  2083                                  %endif
  2084                                  %if _EXTENSIONS
  2085                                  	dw extseg
  2086                                  %endif
  2087                                  %if _APP_ENV_SIZE || _DEV_ENV_SIZE || _BOOT_ENV_SIZE
  2088                                  	dw envseg
  2089                                  %endif
  2090                                  	dw alloc_seg
  2091                                  	dw auxbuff_segorsel
  2092                                  	dw pspdbg
  2093                                  %if _HISTORY && _HISTORY_SEPARATE_FIXED
  2094                                  	dw history.segorsel
  2095                                  %endif
  2096                                  %if _HELP_COMPRESSED && ! _PM && _MESSAGESEGMENT
  2097                                  	dw hshrink_memory_source.segment
  2098                                  %endif
  2099                                  	dw 0
  2100                                  %endif	; !_LOADER
  2101                                  
  2102                                  
  2103                                  		; Table of recognised default (unsigned) types.
  2104                                  		;
  2105                                  		; If any number of characters match, use the type.
  2106                                  		; If an additional "S" is found in front of a valid
  2107                                  		;  type, the type is set to signed. (Word and byte
  2108                                  		;  types are sign-extended to a dword value.)
  2109                                  		;
  2110                                  		; Each odd entry is an alternative name for the even
  2111                                  		;  entry preceding it.
  2112                                  types:
  2113 0000354C 0442595445              	countedb "BYTE"		; ("B" is hexadecimal)
  2114 00003551 0443484152              	countedb "CHAR"		; ("C" is hexadecimal, "CH" is a register)
  2115 00003556 04574F5244              	countedb "WORD"
  2116 0000355B 0553484F5254            	countedb "SHORT"	; (signed "SS" is a register)
  2117 00003561 053342595445            	countedb "3BYTE"	; ("3" and "3B" are numeric)
  2118 00003567 053342595445            	countedb "3BYTE"
  2119 0000356D 0544574F5244            	countedb "DWORD"	; ("D" is hexadecimal)
  2120 00003573 044C4F4E47              	countedb "LONG"
  2121                                  .addresses:
  2122 00003578 07504F494E544552        	countedb "POINTER"
  2123 00003580 03505452                	countedb "PTR"
  2124 00003584 064F4646534554          	countedb "OFFSET"
  2125 0000358B 034F4653                	countedb "OFS"
  2126 0000358F 075345474D454E54        	countedb "SEGMENT"
  2127                                  .end:
  2128                                  .addresses_minus_end equ (.addresses - .end) & 0FFFFh
  2129                                  
  2130                                  ;maxtypesize equ 7		; size of "SEGMENT" and "POINTER"
  2131                                  ; moved to debug.mac
