     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-03-28)"
    19                                   %include REVISIONMAC
     1                              <1> %define _REVISIONID	'hg 921b0637b19e (6676 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 1d5b71d420de (1019 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
   209                              <2> %else
   210                              <2> 	usesection lDEBUG_CODE
   210          ------------------  <2>  note: 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
   217                              <2>  %else
   218                              <2> 	usesection lDEBUG_CODE
   218          ------------------  <2>  note: 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                              <1> saSegment:	resw 1
   740                              <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                              <1> so16aSegment:	resw 1
   754                              <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                              <1> soaSegment:	resw 1
   778                              <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 B800                <1> at eldlDataAmount,	dw LINKINFO_DATA_AMOUNT
   500 0000000A [1800]              <1> at eldlDataPrefixes,	dw linkinfo_data_table_prefixes
   501 0000000C [8801]              <1> at eldlDataEntries,	dw linkinfo_data_table_entries
   502 0000000E [F802]              <1> at eldlDataAddresses,	dw linkinfo_data_table_addresses
   503 00000010 6900                <1> at eldlCodeAmount,	dw LINKINFO_CODE_AMOUNT
   504 00000012 [6804]              <1> at eldlCodePrefixes,	dw linkinfo_code_table_prefixes
   505 00000014 [3A05]              <1> at eldlCodeEntries,	dw linkinfo_code_table_entries
   506 00000016 [0C06]              <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 FC0A0A899FC951CA51- <1>
   512 0000003C CB51CC51CD51CE517D- <1>
   512 00000045 B355BC56BC57BC58BC- <1>
   512 0000004E 59BC5ABCC30B2F7A9C- <1>
   512 00000057 3C84E3A0398B00B0B2- <1>
   512 00000060 2071DD03C6408D7154- <1>
   512 00000069 407DCFBC89AF9D9130- <1>
   512 00000072 044A3208EAE5B0B267- <1>
   512 0000007B 341E38892B140B6A5D- <1>
   512 00000084 8C61879FE77ADE037D- <1>
   512 0000008D 4275AE31AA2AE7279B- <1>
   512 00000096 C36797B63B26DB9FA2- <1>
   512 0000009F C09648AE24DD30B9E1- <1>
   512 000000A8 95559C6CF235C00168- <1>
   512 000000B1 8CF09EF391C30BDD03- <1>
   512 000000BA C640C83E7EC07CC76B- <1>
   512 000000C3 5D05D692B84D18F106- <1>
   512 000000CC 10324E326D322F3236- <1>
   512 000000D5 3427322F345E329F32- <1>
   512 000000DE 00333C3B5B3B2C3D7A- <1>
   512 000000E7 3B993BB83BC5BF6BD7- <1>
   512 000000F0 E8B48FC32E6BF8B4C4- <1>
   512 000000F9 E26651C71CD6ED58B8- <1>
   512 00000102 0F0882740EB594C038- <1>
   512 0000010B D274B9384B9F213F85- <1>
   512 00000114 92AA2F756C5275DD22- <1>
   512 0000011D 7F4F71282963BF8C8E- <1>
   512 00000126 C7805503BABD30CD1A- <1>
   512 0000012F B78B1ECF3F6F9D6DB1- <1>
   512 00000138 702A2258D5DA9BF78E- <1>
   512 00000141 04A81B09B98F03FC15- <1>
   512 0000014A 2700D569A225F466F0- <1>
   512 00000153 3E2229740812432A28- <1>
   512 0000015C 5265E47A8AF25235A0- <1>
   512 00000165 8ABBCCD78EC0CD6FE3- <1>
   512 0000016E 05BDC88C67490DF450- <1>
   512 00000177 8F26EB5A63F211EA53- <1>
   512 00000180 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 00000188 [B007][B807][C007]- <1> .:	repeatdw LINKINFO_DATA_ENTRIES
   520 0000018E [D007][DF07][E607]- <1>
   520 00000194 [EF07][F807][0408]- <1>
   520 0000019A [1008][1808][2508]- <1>
   520 000001A0 [3208][3908][4008]- <1>
   520 000001A6 [4608][5408][6308]- <1>
   520 000001AC [7208][8108][9008]- <1>
   520 000001B2 [9F08][AE08][B608]- <1>
   520 000001B8 [BF08][C808][D108]- <1>
   520 000001BE [DA08][E308][EC08]- <1>
   520 000001C4 [F408][FC08][0809]- <1>
   520 000001CA [1109][1E09][2F09]- <1>
   520 000001D0 [4409][6209][6B09]- <1>
   520 000001D6 [7509][8109][8F09]- <1>
   520 000001DC [9709][A509][B009]- <1>
   520 000001E2 [C009][C909][D309]- <1>
   520 000001E8 [E309][F809][080A]- <1>
   520 000001EE [180A][1F0A][280A]- <1>
   520 000001F4 [320A][3D0A][530A]- <1>
   520 000001FA [6B0A][7C0A][8D0A]- <1>
   520 00000200 [9B0A][A80A][B60A]- <1>
   520 00000206 [BC0A][C60A][DA0A]- <1>
   520 0000020C [ED0A][F40A][FC0A]- <1>
   520 00000212 [130B][240B][400B]- <1>
   520 00000218 [590B][770B][8D0B]- <1>
   520 0000021E [AA0B][BB0B][D10B]- <1>
   520 00000224 [F40B][FB0B][030C]- <1>
   520 0000022A [0C0C][160C][1D0C]- <1>
   520 00000230 [3A0C][550C][5C0C]- <1>
   520 00000236 [630C][6B0C][780C]- <1>
   520 0000023C [860C][8E0C][960C]- <1>
   520 00000242 [9E0C][A60C][AE0C]- <1>
   520 00000248 [B60C][BE0C][C60C]- <1>
   520 0000024E [CE0C][D60C][DD0C]- <1>
   520 00000254 [E40C][EB0C][F20C]- <1>
   520 0000025A [F90C][000D][080D]- <1>
   520 00000260 [110D][190D][280D]- <1>
   520 00000266 [370D][440D][680D]- <1>
   520 0000026C [760D][810D][990D]- <1>
   520 00000272 [B30D][C40D][CE0D]- <1>
   520 00000278 [E00D][F60D][100E]- <1>
   520 0000027E [350E][630E][8C0E]- <1>
   520 00000284 [9B0E][AF0E][C00E]- <1>
   520 0000028A [D10E][E20E][FA0E]- <1>
   520 00000290 [0A0F][150F][280F]- <1>
   520 00000296 [340F][480F][580F]- <1>
   520 0000029C [5D0F][6A0F][780F]- <1>
   520 000002A2 [860F][9F0F][B50F]- <1>
   520 000002A8 [C10F][D30F][E30F]- <1>
   520 000002AE [F10F][FF0F][0B10]- <1>
   520 000002B4 [1D10][2E10][3B10]- <1>
   520 000002BA [4C10][5210][6E10]- <1>
   520 000002C0 [7B10][9810][B410]- <1>
   520 000002C6 [C910][CF10][DC10]- <1>
   520 000002CC [EC10][F710][0711]- <1>
   520 000002D2 [1D11][2E11][3D11]- <1>
   520 000002D8 [4711][5D11][6B11]- <1>
   520 000002DE [7E11][9411][A511]- <1>
   520 000002E4 [BB11][D411][DE11]- <1>
   520 000002EA [F411][FC11][FF11]- <1>
   520 000002F0 [1312][2912][3F12]- <1>
   520 000002F6 [5812]              <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 000002F8 [0000][0000][0000]- <1> .:	repeatdw LINKINFO_DATA_ADDRESSES
   528 000002FE [0000][0000][0000]- <1>
   528 00000304 [0000][0000][0000]- <1>
   528 0000030A [0000][0000][0000]- <1>
   528 00000310 [0000][0000][0000]- <1>
   528 00000316 [0000][0000][0000]- <1>
   528 0000031C [0000][0000][0000]- <1>
   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 [7D08][7B08][1000]- <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]0200[0000]-   <1>
   528 00000376 [0000][0000][0000]- <1>
   528 0000037C [0000][0000][0000]- <1>
   528 00000382 [0000][0000][0000]- <1>
   528 00000388 [0000][0000][0000]- <1>
   528 0000038E [0000][0000][0000]- <1>
   528 00000394 [130F][0000][0000]- <1>
   528 0000039A [0000][0000][0000]- <1>
   528 000003A0 [0000][0000][0000]- <1>
   528 000003A6 [0000][401D]0100-   <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 [0000][0000][0000]- <1>
   528 000003CA [0000][ED08][E808]- <1>
   528 000003D0 [0000][0000][0000]- <1>
   528 000003D6 [0000][0000][0000]- <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][0000][0000]- <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][0000][0000]- <1>
   528 0000043C [0000][0000][0000]- <1>
   528 00000442 [0000][0000][0000]- <1>
   528 00000448 1000[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]              <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 00000468 C5C65512B5C6398C6F- <1> .:	repeatdw LINKINFO_CODE_PREFIXES
   537 00000471 A267B1D555A45529EF- <1>
   537 0000047A 7FAE03C3D430DDB9E8- <1>
   537 00000483 3A8490F1231CE30E05- <1>
   537 0000048C CFF16DC97B14DCF83D- <1>
   537 00000495 BA821B84817D67EBA6- <1>
   537 0000049E AD1103AA2890B77421- <1>
   537 000004A7 30D0BB98693567ABFF- <1>
   537 000004B0 BABD30CD1AB78B1ECF- <1>
   537 000004B9 3F6F9D702A2258D5DA- <1>
   537 000004C2 A7AAF85EF85C637762- <1>
   537 000004CB 9668310C21738E9F9A- <1>
   537 000004D4 8D9117D8B0CC4C04FF- <1>
   537 000004DD 8BDA8663E44C4EF001- <1>
   537 000004E6 109AD1C68ECB25D7FE- <1>
   537 000004EF FD3F85152720665A0B- <1>
   537 000004F8 794CA5339BF78E04A8- <1>
   537 00000501 1B09B98EF7E9738A0A- <1>
   537 0000050A B212BFBC100B348AD9- <1>
   537 00000513 187225B84425A1650F- <1>
   537 0000051C 0D38D9FA3FE83D8226- <1>
   537 00000525 BDF2E7A83EB0965AA3- <1>
   537 0000052E 221090B3D354BB7A5C- <1>
   537 00000537 225B36              <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 0000053A [7512][7A12][8012]- <1> .:	repeatdw LINKINFO_CODE_ENTRIES
   545 00000540 [8512][8E12][9C12]- <1>
   545 00000546 [A512][AF12][B912]- <1>
   545 0000054C [C312][CB12][D512]- <1>
   545 00000552 [E012][E712][EE12]- <1>
   545 00000558 [0213][0C13][1A13]- <1>
   545 0000055E [2313][2C13][3313]- <1>
   545 00000564 [3A13][5513][5C13]- <1>
   545 0000056A [6413][6C13][7913]- <1>
   545 00000570 [8113][8A13][9D13]- <1>
   545 00000576 [A213][AB13][B613]- <1>
   545 0000057C [D113][D813][E513]- <1>
   545 00000582 [0C14][1114][1E14]- <1>
   545 00000588 [2C14][3A14][5314]- <1>
   545 0000058E [6914][7B14][8B14]- <1>
   545 00000594 [9914][9F14][A814]- <1>
   545 0000059A [B114][BA14][C014]- <1>
   545 000005A0 [C914][DB14][E814]- <1>
   545 000005A6 [F514][0A15][2915]- <1>
   545 000005AC [4015][5915][6915]- <1>
   545 000005B2 [7F15][9715][AB15]- <1>
   545 000005B8 [C815][DB15][E815]- <1>
   545 000005BE [F415][0616][1216]- <1>
   545 000005C4 [2116][3616][4416]- <1>
   545 000005CA [5116][5B16][6816]- <1>
   545 000005D0 [7616][8216][9416]- <1>
   545 000005D6 [A516][B416][C116]- <1>
   545 000005DC [D116][D716][E216]- <1>
   545 000005E2 [EE16][F716][0B17]- <1>
   545 000005E8 [1617][2217][2F17]- <1>
   545 000005EE [3F17][4D17][5617]- <1>
   545 000005F4 [5E17][6617][6E17]- <1>
   545 000005FA [7717][8017][8A17]- <1>
   545 00000600 [9D17][A417][B017]- <1>
   545 00000606 [CD17][E017][E717]  <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 0000060C [0000]0000[0000]00- <1> .:	repeatdw LINKINFO_CODE_ADDRESSES
   553 00000613 00[0000]0000[0000]- <1>
   553 0000061A 0000[0000]0000-     <1>
   553 00000620 [0000]0000[0000]00- <1>
   553 00000627 00[0000]0000[0000]- <1>
   553 0000062E 0000[0000]0000-     <1>
   553 00000634 [0000]0000[0000]00- <1>
   553 0000063B 00[0000]0000[0000]- <1>
   553 00000642 0000[0000]0000-     <1>
   553 00000648 [0000]0000[0000]00- <1>
   553 0000064F 00[0000]0000[0000]- <1>
   553 00000656 0000[0000]0000-     <1>
   553 0000065C [0000]0000[0000]00- <1>
   553 00000663 00[0000]0000[0000]- <1>
   553 0000066A 0000[0000]0000-     <1>
   553 00000670 [0000]0000[0000]00- <1>
   553 00000677 00[0000]0000[0000]- <1>
   553 0000067E 0000[0000]0000-     <1>
   553 00000684 [0000]0000[0000]00- <1>
   553 0000068B 00[0000]0000[0000]- <1>
   553 00000692 0000[0000]0000-     <1>
   553 00000698 [0000]0000[0000]00- <1>
   553 0000069F 00[0000]0000[0000]- <1>
   553 000006A6 0000[0000]0000-     <1>
   553 000006AC [0000]0000[0000]00- <1>
   553 000006B3 00[0000]0000[0000]- <1>
   553 000006BA 0000[0000]0000-     <1>
   553 000006C0 [0000]0000[0000]00- <1>
   553 000006C7 00[0000]0000[0000]- <1>
   553 000006CE 0000[0000]0000-     <1>
   553 000006D4 [0000]0000[0000]00- <1>
   553 000006DB 00[0000]0000[0000]- <1>
   553 000006E2 0000[0000]0000-     <1>
   553 000006E8 [0000]0000[0000]00- <1>
   553 000006EF 00[0000]0000[0000]- <1>
   553 000006F6 0000[0000]0000-     <1>
   553 000006FC [0000]0000[0000]00- <1>
   553 00000703 00[0000]0000[0000]- <1>
   553 0000070A 0000[0000]0000-     <1>
   553 00000710 [0000]0000[0000]00- <1>
   553 00000717 00[0000]0000[0000]- <1>
   553 0000071E 0000[0000]0000-     <1>
   553 00000724 [0000]0000[0000]00- <1>
   553 0000072B 00[0000]0000[0000]- <1>
   553 00000732 0000[0000]0000-     <1>
   553 00000738 [0000]0000[0000]00- <1>
   553 0000073F 00[0000]0000[0000]- <1>
   553 00000746 0000[0000]0000-     <1>
   553 0000074C [0000]0000[0000]00- <1>
   553 00000753 00[0000]0000[0000]- <1>
   553 0000075A 0000[0000]0000-     <1>
   553 00000760 [0000]0000[0000]00- <1>
   553 00000767 00[0000]0000[0000]- <1>
   553 0000076E 0000[0000]0000-     <1>
   553 00000774 [0000]0000[0000]00- <1>
   553 0000077B 00[0000]0000[0000]- <1>
   553 00000782 0000[0000]0000-     <1>
   553 00000788 [0000]0000[0000]00- <1>
   553 0000078F 00[0000]0000[0000]- <1>
   553 00000796 0000[0000]0000-     <1>
   553 0000079C [0000]0000[0000]00- <1>
   553 000007A3 00[0000]0000[0000]- <1>
   553 000007AA 0000[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 000007B0 076C696E6B73656C07- <1> 	dump_linkinfo_messages LINKINFO_DATA_MESSAGES, LINKINFO_CODE_MESSAGES
   560 000007B9 6C696E6B7365670F6C- <1>
   560 000007C2 696E6B696E666F6164- <1>
   560 000007CB 64726573730E6C696E- <1>
   560 000007D4 6B63616C6C5F746162- <1>
   560 000007DD 6C6506657874736567- <1>
   560 000007E6 08657874637373656C- <1>
   560 000007EF 08657874647373656C- <1>
   560 000007F8 0B6578747365675F73- <1>
   560 00000801 697A650B6578747365- <1>
   560 0000080A 675F75736564076578- <1>
   560 00000813 74646174610C657874- <1>
   560 0000081C 646174615F73697A65- <1>
   560 00000825 0C657874646174615F- <1>
   560 0000082E 757365640670737064- <1>
   560 00000837 626706707370646265- <1>
   560 00000840 05647373656C0D696E- <1>
   560 00000849 7465726E616C666C61- <1>
   560 00000852 67730E696E7465726E- <1>
   560 0000085B 616C666C616773320E- <1>
   560 00000864 696E7465726E616C66- <1>
   560 0000086D 6C616773330E696E74- <1>
   560 00000876 65726E616C666C6167- <1>
   560 0000087F 73340E696E7465726E- <1>
   560 00000888 616C666C616773350E- <1>
   560 00000891 696E7465726E616C66- <1>
   560 0000089A 6C616773360E696E74- <1>
   560 000008A3 65726E616C666C6167- <1>
   560 000008AC 7337076F7074696F6E- <1>
   560 000008B5 73086F7074696F6E73- <1>
   560 000008BE 32086F7074696F6E73- <1>
   560 000008C7 33086F7074696F6E73- <1>
   560 000008D0 34086F7074696F6E73- <1>
   560 000008D9 35086F7074696F6E73- <1>
   560 000008E2 36086F7074696F6E73- <1>
   560 000008EB 37076C617374636D64- <1>
   560 000008F4 076C696E655F696E0B- <1>
   560 000008FD 6C696E655F696E2E65- <1>
   560 00000906 6E64086C696E655F6F- <1>
   560 0000090F 75740C6C696E655F6F- <1>
   560 00000918 75745F656E64106175- <1>
   560 00000921 78627566665F736567- <1>
   560 0000092A 6F7273656C14617578- <1>
   560 00000933 627566665F63757272- <1>
   560 0000093C 656E745F73697A651D- <1>
   560 00000945 617578627566665F63- <1>
   560 0000094E 757272656E745F7369- <1>
   560 00000957 7A655F6D696E75735F- <1>
   560 00000960 32340866697273746D- <1>
   560 00000969 636209666972737475- <1>
   560 00000972 6D63620B6D73672E69- <1>
   560 0000097B 6E7374616C6C0D6D73- <1>
   560 00000984 672E756E696E737461- <1>
   560 0000098D 6C6C076D73672E7275- <1>
   560 00000996 6E0D656E7472797365- <1>
   560 0000099F 675F73697A650A6D65- <1>
   560 000009A8 73736167657365670F- <1>
   560 000009B1 6D6573736167657365- <1>
   560 000009BA 675F73697A6508636F- <1>
   560 000009C3 64655F73656709636F- <1>
   560 000009CC 64655F73697A650F61- <1>
   560 000009D5 7578627566665F7365- <1>
   560 000009DE 676D656E7414617578- <1>
   560 000009E7 627566665F63757272- <1>
   560 000009F0 656E745F73697A650F- <1>
   560 000009F9 686973746F72795F73- <1>
   560 00000A02 65676D656E740F6869- <1>
   560 00000A0B 73746F72797365675F- <1>
   560 00000A14 73697A6506656E7673- <1>
   560 00000A1D 656708656E765F7369- <1>
   560 00000A26 7A6509616C6C6F635F- <1>
   560 00000A2F 7365670A616C6C6F63- <1>
   560 00000A38 5F73697A65156E6578- <1>
   560 00000A41 745F72657365727665- <1>
   560 00000A4A 645F7365676D656E74- <1>
   560 00000A53 17616C6C6F635F7369- <1>
   560 00000A5C 7A655F6E6F745F7265- <1>
   560 00000A65 736572766564107265- <1>
   560 00000A6E 7365727665645F6164- <1>
   560 00000A77 647265737310686973- <1>
   560 00000A80 746F72792E7365676F- <1>
   560 00000A89 7273656C0D68697374- <1>
   560 00000A92 6F72792E6669727374- <1>
   560 00000A9B 0C686973746F72792E- <1>
   560 00000AA4 6C6173740D68697374- <1>
   560 00000AAD 6F7279666F726D6174- <1>
   560 00000AB6 05737461636B097374- <1>
   560 00000ABF 61636B5F656E641365- <1>
   560 00000AC8 78745F636F6D6D616E- <1>
   560 00000AD1 645F68616E646C6572- <1>
   560 00000ADA 126578745F696E6A65- <1>
   560 00000AE3 63745F68616E646C65- <1>
   560 00000AEC 720673617665737007- <1>
   560 00000AF5 7468726F7773701665- <1>
   560 00000AFE 78745F70726570726F- <1>
   560 00000B07 636573735F68616E64- <1>
   560 00000B10 6C6572106578745F70- <1>
   560 00000B19 7574735F68616E646C- <1>
   560 00000B22 65721B6578745F7075- <1>
   560 00000B2B 74735F636F70796F75- <1>
   560 00000B34 747075745F68616E64- <1>
   560 00000B3D 6C6572186578745F70- <1>
   560 00000B46 7574735F6765746C69- <1>
   560 00000B4F 6E655F68616E646C65- <1>
   560 00000B58 721D6578745F61615F- <1>
   560 00000B61 6265666F72655F6765- <1>
   560 00000B6A 746C696E655F68616E- <1>
   560 00000B73 646C6572156578745F- <1>
   560 00000B7C 61615F696E6A656374- <1>
   560 00000B85 5F68616E646C65721C- <1>
   560 00000B8E 6578745F61615F6166- <1>
   560 00000B97 7465725F6765746C69- <1>
   560 00000BA0 6E655F68616E646C65- <1>
   560 00000BA9 72106578745F616D69- <1>
   560 00000BB2 735F68616E646C6572- <1>
   560 00000BBB 15616D69735F6D756C- <1>
   560 00000BC4 7469706C65785F6E75- <1>
   560 00000BCD 6D626572227472795F- <1>
   560 00000BD6 64656275676765725F- <1>
   560 00000BDF 616D69735F6D756C74- <1>
   560 00000BE8 69706C65785F6E756D- <1>
   560 00000BF1 626572066D73672E69- <1>
   560 00000BFA 6E076C617374636D64- <1>
   560 00000C03 0866697273746D6362- <1>
   560 00000C0C 096669727374756D63- <1>
   560 00000C15 620664706D6933321C- <1>
   560 00000C1E 6C617374636D645F74- <1>
   560 00000C27 72616E736665725F65- <1>
   560 00000C30 78745F616464726573- <1>
   560 00000C39 731A6C617374636D64- <1>
   560 00000C42 5F7472616E73666572- <1>
   560 00000C4B 5F6578745F656E7472- <1>
   560 00000C54 7906646D79636D6406- <1>
   560 00000C5D 6861735F3837076861- <1>
   560 00000C66 735F6D6D780C696E73- <1>
   560 00000C6F 74616C6C666C616773- <1>
   560 00000C78 0D696E7374616C6C66- <1>
   560 00000C81 6F726D617407726567- <1>
   560 00000C8A 5F656178077265675F- <1>
   560 00000C93 656378077265675F65- <1>
   560 00000C9C 6478077265675F6562- <1>
   560 00000CA5 78077265675F657370- <1>
   560 00000CAE 077265675F65627007- <1>
   560 00000CB7 7265675F6573690772- <1>
   560 00000CC0 65675F656469077265- <1>
   560 00000CC9 675F65666C07726567- <1>
   560 00000CD2 5F656970067265675F- <1>
   560 00000CDB 6373067265675F6473- <1>
   560 00000CE4 067265675F73730672- <1>
   560 00000CED 65675F657306726567- <1>
   560 00000CF6 5F6673067265675F67- <1>
   560 00000CFF 73076D73672E6E6F74- <1>
   560 00000D08 086D73672E7468656E- <1>
   560 00000D11 076578745F7661720E- <1>
   560 00000D1A 6578745F7661725F61- <1>
   560 00000D23 6D6F756E740E657874- <1>
   560 00000D2C 5F7661725F666F726D- <1>
   560 00000D35 61740C6578745F7661- <1>
   560 00000D3E 725F73697A65236973- <1>
   560 00000D47 7661726961626C655F- <1>
   560 00000D50 6D6F7265627974655F- <1>
   560 00000D59 6E616D656865616465- <1>
   560 00000D62 72732E6578740D7661- <1>
   560 00000D6B 725F6578745F736574- <1>
   560 00000D74 75700A6578745F6861- <1>
   560 00000D7D 6E646C65176E656172- <1>
   560 00000D86 5F7472616E73666572- <1>
   560 00000D8F 5F6578745F656E7472- <1>
   560 00000D98 79196E6561725F7472- <1>
   560 00000DA1 616E736665725F6578- <1>
   560 00000DAA 745F61646472657373- <1>
   560 00000DB3 106C6F61645F646174- <1>
   560 00000DBC 615F6C6F7765737409- <1>
   560 00000DC5 6C6F61645F64617461- <1>
   560 00000DCE 116C6F61645F79796E- <1>
   560 00000DD7 616D655F696E707574- <1>
   560 00000DE0 1568616E646C655F73- <1>
   560 00000DE9 63616E5F6469725F65- <1>
   560 00000DF2 6E7472791968616E64- <1>
   560 00000DFB 6C655F7363616E5F64- <1>
   560 00000E04 69725F6E6F745F666F- <1>
   560 00000E0D 756E64242E2E40626F- <1>
   560 00000E16 6F745F7363616E5F64- <1>
   560 00000E1F 69725F72657475726E- <1>
   560 00000E28 5F66696C656E6F7466- <1>
   560 00000E31 6F756E642D2E2E4062- <1>
   560 00000E3A 6F6F745F7363616E5F- <1>
   560 00000E43 6469725F7265747572- <1>
   560 00000E4C 6E5F7375626469725F- <1>
   560 00000E55 6F725F66617433325F- <1>
   560 00000E5E 656E747279282E2E40- <1>
   560 00000E67 626F6F745F7363616E- <1>
   560 00000E70 5F6469725F72657475- <1>
   560 00000E79 726E5F66617431365F- <1>
   560 00000E82 726F6F745F656E7472- <1>
   560 00000E8B 790E7363616E5F6469- <1>
   560 00000E94 725F656E747279136C- <1>
   560 00000E9D 6F61645F636865636B- <1>
   560 00000EA6 5F6469725F61747472- <1>
   560 00000EAF 106C6F61645F79796E- <1>
   560 00000EB8 616D655F6E65787410- <1>
   560 00000EC1 6C6F61645F79795F64- <1>
   560 00000ECA 6972656E747279106C- <1>
   560 00000ED3 6F61645F6B65726E65- <1>
   560 00000EDC 6C5F6E616D65176C6F- <1>
   560 00000EE5 61645F6164725F6469- <1>
   560 00000EEE 726275665F7365676D- <1>
   560 00000EF7 656E740F6578656362- <1>
   560 00000F00 6C6B2E636D646C696E- <1>
   560 00000F09 650A636F6E66696770- <1>
   560 00000F12 61746812636F6E6669- <1>
   560 00000F1B 67706174682E646972- <1>
   560 00000F24 5F656E640B73637269- <1>
   560 00000F2D 707473706174681373- <1>
   560 00000F36 637269707473706174- <1>
   560 00000F3F 682E6469725F656E64- <1>
   560 00000F48 0F6275696C645F6F70- <1>
   560 00000F51 74696F6E5F504D0463- <1>
   560 00000F5A 6D64330C636D64335F- <1>
   560 00000F63 6E6F745F6578740D70- <1>
   560 00000F6C 7574735F6578745F64- <1>
   560 00000F75 6F6E650D707574735F- <1>
   560 00000F7E 6578745F6E65787418- <1>
   560 00000F87 707574735F636F7079- <1>
   560 00000F90 6F75747075745F6578- <1>
   560 00000F99 745F646F6E65157075- <1>
   560 00000FA2 74735F6765746C696E- <1>
   560 00000FAB 655F6578745F646F6E- <1>
   560 00000FB4 650B696E5F67657469- <1>
   560 00000FBD 6E70757411636D6433- <1>
   560 00000FC6 5F70726570726F6365- <1>
   560 00000FCF 737365640F636D6433- <1>
   560 00000FD8 5F6E6F745F696E6A65- <1>
   560 00000FE1 63740D636D64335F69- <1>
   560 00000FEA 6E6A65637465640D61- <1>
   560 00000FF3 615F6E6F745F696E6A- <1>
   560 00000FFC 6563740B61615F696E- <1>
   560 00001005 6A6563746564116161- <1>
   560 0000100E 5F6265666F72655F67- <1>
   560 00001017 65746C696E65106161- <1>
   560 00001020 5F61667465725F6765- <1>
   560 00001029 746C696E650C776869- <1>
   560 00001032 6C655F627566666572- <1>
   560 0000103B 107768696C655F6275- <1>
   560 00001044 666665722E656E6405- <1>
   560 0000104D 73776368311B696E74- <1>
   560 00001056 65726E616C666C6167- <1>
   560 0000105F 735F776974685F7474- <1>
   560 00001068 5F7768696C650C7979- <1>
   560 00001071 5F69735F7363726970- <1>
   560 0000107A 741C7465726D696E61- <1>
   560 00001083 746F725F696E5F6C69- <1>
   560 0000108C 6E655F696E2E6F6666- <1>
   560 00001095 7365741B7465726D69- <1>
   560 0000109E 6E61746F725F696E5F- <1>
   560 000010A7 6C696E655F696E2E76- <1>
   560 000010B0 616C7565146578745F- <1>
   560 000010B9 66696E6973682E6270- <1>
   560 000010C2 5F69735F7365740576- <1>
   560 000010CB 726567730C76726567- <1>
   560 000010D4 732E616D6F756E740F- <1>
   560 000010DD 61736369697461626C- <1>
   560 000010E6 656E616D65730A706D- <1>
   560 000010EF 5F325F38366D5F300F- <1>
   560 000010F8 6C6F61645F756E6974- <1>
   560 00001101 5F666C616773157373- <1>
   560 0000110A 735F73696C656E745F- <1>
   560 00001113 636F756E745F757365- <1>
   560 0000111C 64107373735F73696C- <1>
   560 00001125 656E745F636F756E74- <1>
   560 0000112E 0E7365617263685F72- <1>
   560 00001137 6573756C7473097373- <1>
   560 00001140 636F756E7465721573- <1>
   560 00001149 65617263685F726573- <1>
   560 00001152 756C74735F616D6F75- <1>
   560 0000115B 6E740D706174636861- <1>
   560 00001164 7265615F72756E1270- <1>
   560 0000116D 61746368617265615F- <1>
   560 00001176 72756E2E73697A6515- <1>
   560 0000117F 706174636861726561- <1>
   560 00001188 5F72756E2E7365676D- <1>
   560 00001191 656E74107061746368- <1>
   560 0000119A 617265615F696E7472- <1>
   560 000011A3 746E15706174636861- <1>
   560 000011AC 7265615F696E747274- <1>
   560 000011B5 6E2E73697A65187061- <1>
   560 000011BE 746368617265615F69- <1>
   560 000011C7 6E7472746E2E736567- <1>
   560 000011D0 6D656E740970726F6D- <1>
   560 000011D9 70746C656E15696E64- <1>
   560 000011E2 69726563745F617272- <1>
   560 000011EB 61795F657272666978- <1>
   560 000011F4 077072696F72726302- <1>
   560 000011FD 726313626F6F745F69- <1>
   560 00001206 6E69745F666F756E64- <1>
   560 0000120F 6E616D651564657669- <1>
   560 00001218 63655F717569747461- <1>
   560 00001221 626C655F7265677315- <1>
   560 0000122A 6465766963655F6865- <1>
   560 00001233 616465725F61646472- <1>
   560 0000123C 65737318696E69745F- <1>
   560 00001245 65786563757461626C- <1>
   560 0000124E 655F706174686E616D- <1>
   560 00001257 651C696E69745F6578- <1>
   560 00001260 6563757461626C655F- <1>
   560 00001269 706174686E616D652E- <1>
   560 00001272 656E64047075747305- <1>
   560 0000127B 707574737A04707574- <1>
   560 00001284 6308707574736C696E- <1>
   560 0000128D 650D707574736C696E- <1>
   560 00001296 655F63726C66087472- <1>
   560 0000129F 696D7075747309736B- <1>
   560 000012A8 6970636F6D6D610973- <1>
   560 000012B1 6B6970636F6D6D3009- <1>
   560 000012BA 736B69707768697465- <1>
   560 000012C3 07736B697077683009- <1>
   560 000012CC 6973737472696E673F- <1>
   560 000012D5 0A6361706974616C69- <1>
   560 000012DE 73650663686B656F6C- <1>
   560 000012E7 066973656F6C3F1369- <1>
   560 000012F0 73656F6C3F2E6E6F74- <1>
   560 000012F9 73656D69636F6C6F6E- <1>
   560 00001302 097570706572636173- <1>
   560 0000130B 650D67756172645F61- <1>
   560 00001314 757862756666086775- <1>
   560 0000131D 6172645F7265087072- <1>
   560 00001326 65706861636B06646F- <1>
   560 0000132F 6861636B06756E6861- <1>
   560 00001338 636B1A68616E646C65- <1>
   560 00001341 5F73657269616C5F66- <1>
   560 0000134A 6C6167735F6374726C- <1>
   560 00001353 5F63066865786E7962- <1>
   560 0000135C 076865786279746507- <1>
   560 00001365 686578776F72640C68- <1>
   560 0000136E 6578776F72645F6869- <1>
   560 00001377 676807646563776F72- <1>
   560 00001380 640864656364776F72- <1>
   560 00001389 64126465635F64776F- <1>
   560 00001392 72645F6D696E776964- <1>
   560 0000139B 7468046973706D0873- <1>
   560 000013A4 657465733264780A63- <1>
   560 000013AD 616C6C5F696E743244- <1>
   560 000013B6 1A636F70795F73696E- <1>
   560 000013BF 676C655F636F756E74- <1>
   560 000013C8 65645F737472696E67- <1>
   560 000013D1 06696E7463686B0C49- <1>
   560 000013DA 7349495350456E7472- <1>
   560 000013E3 793F26646973705F64- <1>
   560 000013EC 7861785F74696D6573- <1>
   560 000013F5 5F63785F7769647468- <1>
   560 000013FE 5F62785F73697A652E- <1>
   560 00001407 73746F726504636D64- <1>
   560 00001410 330C636D64335F6E6F- <1>
   560 00001419 745F6578740D707574- <1>
   560 00001422 735F6578745F646F6E- <1>
   560 0000142B 650D707574735F6578- <1>
   560 00001434 745F6E657874187075- <1>
   560 0000143D 74735F636F70796F75- <1>
   560 00001446 747075745F6578745F- <1>
   560 0000144F 646F6E651570757473- <1>
   560 00001458 5F6765746C696E655F- <1>
   560 00001461 6578745F646F6E6511- <1>
   560 0000146A 636D64335F70726570- <1>
   560 00001473 726F6365737365640F- <1>
   560 0000147C 636D64335F6E6F745F- <1>
   560 00001485 696E6A6563740D636D- <1>
   560 0000148E 64335F696E6A656374- <1>
   560 00001497 6564056572726F7208- <1>
   560 000014A0 736574647332736908- <1>
   560 000014A9 736574647332627808- <1>
   560 000014B2 64645F73746F726505- <1>
   560 000014BB 496E444F53085F646F- <1>
   560 000014C4 7363616C6C1179795F- <1>
   560 000014CD 646F735F7061727365- <1>
   560 000014D6 5F6E616D650C79795F- <1>
   560 000014DF 6F70656E5F66696C65- <1>
   560 000014E8 0C79795F636865636B- <1>
   560 000014F1 5F6C666E1479795F63- <1>
   560 000014FA 6F6D6D6F6E5F706172- <1>
   560 00001503 73655F6E616D651E79- <1>
   560 0000150C 795F636F6D6D6F6E5F- <1>
   560 00001515 70617273655F6E616D- <1>
   560 0000151E 655F62785F62756666- <1>
   560 00001527 65721672657472795F- <1>
   560 00001530 6F70656E5F73637269- <1>
   560 00001539 70747370617468186E- <1>
   560 00001542 6561725F7472616E73- <1>
   560 0000154B 6665725F6578745F72- <1>
   560 00001554 657475726E0F79795F- <1>
   560 0000155D 626F6F745F72656164- <1>
   560 00001566 2E62781579795F626F- <1>
   560 0000156F 6F745F7365656B5F73- <1>
   560 00001578 746172742E62781779- <1>
   560 00001581 795F626F6F745F7365- <1>
   560 0000158A 656B5F63757272656E- <1>
   560 00001593 742E62781379795F62- <1>
   560 0000159C 6F6F745F7061727365- <1>
   560 000015A5 5F6E616D65321C7979- <1>
   560 000015AE 5F626F6F745F706172- <1>
   560 000015B7 73655F6E616D655F62- <1>
   560 000015C0 785F62756666657212- <1>
   560 000015C9 79795F626F6F745F6F- <1>
   560 000015D2 70656E5F66696C6532- <1>
   560 000015DB 0C7363616E5F646972- <1>
   560 000015E4 5F6175780B72656164- <1>
   560 000015ED 5F736563746F721179- <1>
   560 000015F6 795F626F6F745F696E- <1>
   560 000015FF 69745F646972320B67- <1>
   560 00001608 6F745F7979656E7472- <1>
   560 00001611 790E7363616E5F6469- <1>
   560 0000161A 725F656E747279142E- <1>
   560 00001623 2E4079795F66696C65- <1>
   560 0000162C 6E616D655F656D7074- <1>
   560 00001635 790D626F6F745F7061- <1>
   560 0000163E 7273655F666E0C696E- <1>
   560 00001647 69745F626F6F74636D- <1>
   560 00001650 6409636C6F73655F65- <1>
   560 00001659 78740C79795F726573- <1>
   560 00001662 65745F6275660D6161- <1>
   560 0000166B 5F6E6F745F696E6A65- <1>
   560 00001674 63740B61615F696E6A- <1>
   560 0000167D 65637465641161615F- <1>
   560 00001686 6265666F72655F6765- <1>
   560 0000168F 746C696E651061615F- <1>
   560 00001698 61667465725F676574- <1>
   560 000016A1 6C696E650E646F7363- <1>
   560 000016AA 616C6C5F6578747365- <1>
   560 000016B3 670C746573745F645F- <1>
   560 000016BC 625F6269740F746573- <1>
   560 000016C5 745F686967685F6C69- <1>
   560 000016CE 6D6974057365747263- <1>
   560 000016D7 0A736B697065717561- <1>
   560 000016E0 6C730B636F756E745F- <1>
   560 000016E9 73746F726508686578- <1>
   560 000016F2 64776F726413766572- <1>
   560 000016FB 6966797365676D5F6F- <1>
   560 00001704 725F6572726F720A76- <1>
   560 0000170D 65726966797365676D- <1>
   560 00001716 0B6973766172696162- <1>
   560 0000171F 6C653F0C6973736570- <1>
   560 00001728 617261746F723F0F67- <1>
   560 00001731 65745F76616C75655F- <1>
   560 0000173A 72616E67650D676574- <1>
   560 00001743 65787072657373696F- <1>
   560 0000174C 6E0867657464776F72- <1>
   560 00001755 6407676574776F7264- <1>
   560 0000175E 076765746279746507- <1>
   560 00001767 676574616464720867- <1>
   560 00001770 657461646472580867- <1>
   560 00001779 657472616E67650967- <1>
   560 00001782 657472616E67655812- <1>
   560 0000178B 6765745F6C656E6774- <1>
   560 00001794 685F6B6579776F7264- <1>
   560 0000179D 066765746E79620B69- <1>
   560 000017A6 736F70657261746F72- <1>
   560 000017AF 3F1C2E2E4063616C6C- <1>
   560 000017B8 5F6F70657261746F72- <1>
   560 000017C1 5F6469737061746368- <1>
   560 000017CA 657273127661725F65- <1>
   560 000017D3 78745F73657475705F- <1>
   560 000017DC 646F6E650667657473- <1>
   560 000017E5 74720A656E7472795F- <1>
   560 000017EE 7265746E            <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 [8324]                  	dw .build_nameversion + NONCOMPRESSEDFLAG
    88 00000002 [F317]                  	dw .help_header + NONCOMPRESSEDFLAG
    89 00000004 [0218]                  	dw .help_contents
    90                                  .help_array_amount: equ ($ - .help_array) / 2
    91                                  
    92                                  	usemessagesegment
    92          ------------------       note: usesection MESSAGESEGMENT
    93                                  	align 2, db 0
    94                                  .help_header:
    95 000017F2 2068656C7020736372-     	asciz " help screen",13,10
    95 000017FB 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 00001801 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00001802 3005                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00001804 <bin 530h>          <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 00001D34 FB00                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00001D36 <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 00001E31 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00001E32 3403                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00001E34 <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 00002168 5C02                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000216A <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 [8324]                  	dw .build_nameversion + NONCOMPRESSEDFLAG
   129 00000016 [AB24]                  	dw .build_linebreak + NONCOMPRESSEDFLAG
   130                                  .build_version_amount: equ ($ - .build_array) / 2
   131 00000018 [D324]                  	dw .build_ldebug + NONCOMPRESSEDFLAG
   132 0000001A [1325]                  	dw .build_lmacros + NONCOMPRESSEDFLAG
   133                                  %if _SYMBOLIC
   134                                  	dw .build_symsnip + NONCOMPRESSEDFLAG
   135                                  %endif
   136                                  %if _BOOTLDR
   137 0000001C [5325]                  	dw .build_scanptab + NONCOMPRESSEDFLAG
   138                                  %endif
   139 0000001E [9325]                  	dw .build_inicomp + NONCOMPRESSEDFLAG
   140                                  %if (_BOOTLDR && _CHECKSUM) || _CHECKSUM_NEW
   141                                  	dw .build_inicheck + NONCOMPRESSEDFLAG
   142                                  %endif
   143                                  %if _BOOTLDR
   144 00000020 [D325]                  	dw .build_ldosboot + NONCOMPRESSEDFLAG
   145                                  %endif
   146                                  .build_short_amount: equ ($ - .build_array) / 2
   147                                  %if _EXTHELP
   148 00000022 [1226]                  	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 [B033]                  	dw .options_1
   156 00000026 [B036]                  	dw .options_2
   157 00000028 [9C38]                  	dw .options_3
   158 0000002A [E83A]                  	dw .options_4
   159 0000002C [C43B]                  	dw .options_5
   160 0000002E [CC3B]                  	dw .options_6
   161                                  .options_array_option_amount: equ ($ - .options_array) / 2
   162 00000030 [403E]                  	dw .flags_1
   163 00000032 [5840]                  	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 000023C6 B900                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000023C8 <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 00002481 00                      	align 2, db 0
   188                                  .build_nameversion:
   189 00002482 436F6E64746E6C2E20-     	asciz _PROGNAME,_VERSION
   189 0000248B 44656275676761626C-
   189 00002494 65206C446562756720-
   189 0000249D 28323032362D30332D-
   189 000024A6 32382900           
   190                                  
   191                                  	align 2, db 0
   192                                  .build_linebreak:
   193 000024AA 0D0A00                  	asciz 13,10
   194 000024AD 00<rep 25h>             	_fill_at_least 80, 0, .build_nameversion
   195                                  
   196                                  	align 2, db 0
   197                                  .build_ldebug:
   198                                  %ifnidn _REVISIONID,""
   199 000024D2 536F7572636520436F-     	db "Source Control Revision ID: ",_REVISIONID,13,10
   199 000024DB 6E74726F6C20526576-
   199 000024E4 6973696F6E2049443A-
   199 000024ED 206867203932316230-
   199 000024F6 363337623139652028-
   199 000024FF 3636373620616E6365-
   199 00002508 73746F7273290D0A   
   200                                  %endif
   201 00002510 00                      	asciz
   202 00002511 00                      	_fill_at_least 64, 0, .build_ldebug
   203                                  
   204                                  	align 2, db 0
   205                                  .build_lmacros:
   206 00002512 55736573206C6D6163-     	fill_at_least 64, 0, asciz _REVISIONID_LMACROS
   206 0000251B 726F733A2020526576-
   206 00002524 6973696F6E20494420-
   206 0000252D 686720646535336139-
   206 00002536 363836666164202831-
   206 0000253F 363720616E63657374-
   206 00002548 6F7273290D0A0000-  
   206 00002548 <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 00002552 55736573207363616E-     	fill_at_least 64, 0, asciz _REVISIONID_SCANPTAB
   217 0000255B 707461623A20526576-
   217 00002564 6973696F6E20494420-
   217 0000256D 686720353735666138-
   217 00002576 396664363731202833-
   217 0000257F 3120616E636573746F-
   217 00002588 7273290D0A0000-    
   217 00002588 <rep 4h>           
   218                                  %endif
   219                                  
   220                                  	align 2, db 0
   221                                  .build_inicomp:
   222 00002592 5573657320696E6963-     	fill_at_least 64, 0, asciz _REVISIONID_INICOMP
   222 0000259B 6F6D703A2020526576-
   222 000025A4 6973696F6E20494420-
   222 000025AD 686720343837326236-
   222 000025B6 326236386333202836-
   222 000025BF 363720616E63657374-
   222 000025C8 6F7273290D0A0000-  
   222 000025C8 <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 000025D2 55736573206C646F73-     	fill_at_least 64, 0, asciz _REVISIONID_LDOSBOOT
   233 000025DB 626F6F743A20526576-
   233 000025E4 6973696F6E20494420-
   233 000025ED 686720316435623731-
   233 000025F6 643432306465202831-
   233 000025FF 30313920616E636573-
   233 00002608 746F7273290D0A0000-
   233 00002608 <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 00002612 AD01                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002614 <bin 1ADh>          <1>  incbin %%includename
    47                              <1> %%end:
   238                                  %endif
   239                                  %if ! _EXTHELP || _HELP_COMPRESSED
   240                                   %if _BOOTLDR
   241 000027C1 00                      	asciz
   242                                  	; This message is used by mak.sh to detect that we
   243                                  	;  are building with boot load support.
   244 000027C2 0D0A426F6F74206C6F-     	db 13,10,"Boot loader",13,10
   244 000027CB 616465720D0A       
   245 000027D1 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                              <1>  align 2, db 0
    43                              <1> %00:
    44 000027D2 EE01                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000027D4 <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 000029C2 2601                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000029C4 <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 00002AEA B801                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002AEC <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 00002CA4 C801                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002CA6 <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 00002E6E 4005                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002E70 <bin 540h>          <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                              <1>  align 2, db 0
    43                              <1> %00:
    44 000033B0 FD02                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000033B2 <bin 2FDh>          <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 000036AF 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 000036B0 EA01                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000036B2 <bin 1EAh>          <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                              <1>  align 2, db 0
    43                              <1> %00:
    44 0000389C 4902                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000389E <bin 249h>          <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 00003AE7 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00003AE8 D900                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003AEA <bin D9h>           <1>  incbin %%includename
    47                              <1> %%end:
   281                                  	; terminator is in .options_5
   282                                  
   283                                  	usemessagesegment
   283          ------------------       note: usesection MESSAGESEGMENT
   284 00003BC3 00                      	align 2, db 0
   285                                  .options_5:
   286                                  %if _HELP_COMPRESSED
   287                                   %if _LZEXEDAT	; lzexedat:
   288 00003BC4 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 00003BCB 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00003BCC 7202                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003BCE <bin 272h>          <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 00003E40 1502                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003E42 <bin 215h>          <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 00004057 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00004058 2802                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000405A <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 00004282 4101                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00004284 <bin 141h>          <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                                  		db "Memory using selector "
   326                                  .readonly_verifysegm.selector:
   327                                  		asciz "---- is inaccessible for writing.",13,10
   328                                  %endif
   329 000000E1 5B6D6F72655D            .more:		db "[more]"
   330                                   .more_size equ $-.more
   331 000000E7 0D                      .more_over:	db 13
   332 000000E8 20<rep 6h>              		times .more_size db 32
   333 000000EE 0D                      		db 13		; to overwrite previous prompt
   334                                   .more_over_size equ $-.more_over
   335 000000EF 5E430D0A                .ctrlc:		db "^C",13,10
   336                                   .ctrlc_size equ $-.ctrlc
   337 000000F3 00                       		asciz
   338                                  .freedos_ctrlc_workaround:
   339 000000F4 20284F6C6420467265-     		asciz " (Old FreeDOS kernel Ctrl-C work around happened)",13,10
   339 000000FD 65444F53206B65726E-
   339 00000106 656C204374726C2D43-
   339 0000010F 20776F726B2061726F-
   339 00000118 756E64206861707065-
   339 00000121 6E6564290D0A00     
   340                                  .not_while_indos:
   341 00000128 436F6D6D616E64206E-     		asciz "Command not supported while in InDOS mode.",13,10
   341 00000131 6F7420737570706F72-
   341 0000013A 746564207768696C65-
   341 00000143 20696E20496E444F53-
   341 0000014C 206D6F64652E0D0A00 
   342 00000155 43757272656E74206D-     .rv_mode.before:	asciz "Current mode: "
   342 0000015E 6F64653A2000       
   343                                  %if _PM
   344                                  .rv_mode_dpmi_16:	asciz "DPMI 16-bit CS",13,10
   345                                  .rv_mode_dpmi_32:	asciz "DPMI 32-bit CS",13,10
   346                                  %endif
   347 00000164 5265616C203836204D-     .rv_mode_r86m:		asciz "Real 86 Mode",13,10
   347 0000016D 6F64650D0A00       
   348 00000173 5669727475616C2038-     .rv_mode_v86m:		asciz "Virtual 86 Mode",13,10
   348 0000017C 36204D6F64650D0A00 
   349                                  
   350 00000185 333836207265676973-     .regs386:	asciz "386 registers are "
   350 0000018E 746572732061726520-
   350 00000197 00                 
   351 00000198 6E6F7420                .regs386_off:db "not "
   352 0000019C 646973706C61796564-     .regs386_on:	asciz "displayed",13,10
   352 000001A5 0D0A00             
   353                                  
   354                                  %if _EMS
   355                                  	usemessagesegment
   356                                  .xhelp: helppage ems
   357                                  %endif
   358                                  
   359                                  %if _PM
   360                                  	usesection lDEBUG_DATA_ENTRY
   361                                  .desc:	asciz "DESC"
   362                                  	usemessagesegment
   363                                  .deschelp: helppage desc
   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 000043C5 00                      	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 000043C6 <res 38h>               	resb bootldr_discard_help_page_length
   428 000043FE ????                    	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 000043C6 CC05                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000043C8 <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 000043FE ????                    	alignb 16
   439                                  truncated_hshrink_message_buffer: equ $
   440 00004400 <res B0Ah>              		resb hshrink_message_buffer_size
   441                                  %endif
   442                                  
   443 00004F0A ????????????            	alignb 16
   444                                  behind_messagesegment_nobits_truncated: equ $
   445                                   %endif
   446                                   %endif
   447                                  %endif
   448                                  
   449                                  	usesection MESSAGESEGMENT
   449          ------------------       note: usesection MESSAGESEGMENT
   450 00004994 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 000049A0 <res B0Ah>              		resb hshrink_message_buffer_size
   458                                  %endif
   459 000054AA ????????????            	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 000001A8 43616E6E6F7420676F-     .pspnotfound:	asciz "Cannot go resident, child PSP not found.",13,10
   465 000001B1 207265736964656E74-
   465 000001BA 2C206368696C642050-
   465 000001C3 5350206E6F7420666F-
   465 000001CC 756E642E0D0A00     
   466 000001D3 43616E6E6F7420676F-     .psphooked:	asciz "Cannot go resident, child PSP parent return address hooked.",13,10
   466 000001DC 207265736964656E74-
   466 000001E5 2C206368696C642050-
   466 000001EE 535020706172656E74-
   466 000001F7 2072657475726E2061-
   466 00000200 64647265737320686F-
   466 00000209 6F6B65642E0D0A00   
   467 00000211 506174636865642050-     .nowtsr1:	asciz "Patched PSP at "
   467 0000021A 53502061742000     
   468 00000221 2C206E6F7720726573-     .nowtsr2:	asciz ", now resident.",13,10
   468 0000022A 6964656E742E0D0A00 
   469 00000233 416C72656164792072-     .alreadytsr:	asciz "Already resident.",13,10
   469 0000023C 65736964656E742E0D-
   469 00000245 0A00               
   470                                  .tsr_cannot_terminate_attached:
   471 00000247 43616E6E6F74207465-     		asciz "Cannot terminate attached while resident.",13,10
   471 00000250 726D696E6174652061-
   471 00000259 747461636865642077-
   471 00000262 68696C652072657369-
   471 0000026B 64656E742E0D0A00   
   472                                  .tsr_cannot_ll:
   473 00000273 43616E6E6F74206C6F-     		asciz "Cannot load process while resident. Use R DCO7 CLR= ",_4digitshex(opt7_no_tsr_ll)," to override.",13,10
   473 0000027C 61642070726F636573-
   473 00000285 73207768696C652072-
   473 0000028E 65736964656E742E20-
   473 00000297 55736520522044434F-
   473 000002A0 3720434C523D203230-
   473 000002A9 303020746F206F7665-
   473 000002B2 72726964652E0D0A00 
   474                                  %endif
   475                                  %if _ATTACH
   476 000002BB 4E6F74207965742072-     .notyettsr:	asciz "Not yet resident. Cannot attach.",13,10
   476 000002C4 65736964656E742E20-
   476 000002CD 43616E6E6F74206174-
   476 000002D6 746163682E0D0A00   
   477 000002DE 496E76616C69642050-     .invalidpsp:	asciz "Invalid PSP specified. Cannot attach.",13,10
   477 000002E7 535020737065636966-
   477 000002F0 6965642E2043616E6E-
   477 000002F9 6F7420617474616368-
   477 00000302 2E0D0A00           
   478 00000306 53656C662D6F776E65-     .selfownedpsp:	asciz "Self-owned PSP specified. Cannot attach.",13,10
   478 0000030F 642050535020737065-
   478 00000318 6369666965642E2043-
   478 00000321 616E6E6F7420617474-
   478 0000032A 6163682E0D0A00     
   479 00000331 506174636865642050-     .nowattached:	asciz "Patched PSP, now attached.",13,10
   479 0000033A 53502C206E6F772061-
   479 00000343 747461636865642E0D-
   479 0000034C 0A00               
   480 0000034E 41545441434800          .attach:	asciz "ATTACH"
   481                                  %endif
   482                                  %if _PM && (_TSR || _BOOTLDR)
   483                                  .cannotpmquit:	asciz "Cannot quit, still in protected mode.",13,10
   484                                  %endif
   485                                  %if _PM
   486                                  .cannotpmload:	asciz "Process loading aborted: Still in protected mode.",13,10
   487                                  %endif
   488                                  %if _BOOTLDR
   489 00000355 436F6D6D616E64206E-     .nobootsupp:	asciz "Command not supported in boot loaded mode.",13,10
   489 0000035E 6F7420737570706F72-
   489 00000367 74656420696E20626F-
   489 00000370 6F74206C6F61646564-
   489 00000379 206D6F64652E0D0A00 
   490 00000382 53687574646F776E20-     .boot_quit_fail:asciz "Shutdown not supported.",13,10
   490 0000038B 6E6F7420737570706F-
   490 00000394 727465642E0D0A00   
   491 0000039C 426F6F74206661696C-     .bootfail:	asciz "Boot failure: "
   491 000003A5 7572653A2000       
   492 000003AB 52656164696E672073-     .bootfail_read:	db "Reading sector failed (error "
   492 000003B4 6563746F7220666169-
   492 000003BD 6C656420286572726F-
   492 000003C6 7220               
   493 000003C8 5F5F68292E0D0A00        .bootfail_read_errorcode:	asciz "__h).",13,10
   494 000003D0 426F6F742073656374-     .bootfail_sig:	asciz "Boot sector signature missing (is not AA55h).",13,10
   494 000003D9 6F72207369676E6174-
   494 000003E2 757265206D69737369-
   494 000003EB 6E6720286973206E6F-
   494 000003F4 74204141353568292E-
   494 000003FD 0D0A00             
   495 00000400 506172746974696F6E-     .bootfail_sig_parttable:	ascii "Partition table signature missing"
   495 00000409 207461626C65207369-
   495 00000412 676E6174757265206D-
   495 0000041B 697373696E67       
   496 00000421 20286973206E6F7420-     				asciz " (is not AA55h).",13,10
   496 0000042A 4141353568292E0D0A-
   496 00000433 00                 
   497 00000434 426F6F742073656374-     .bootfail_code:	asciz "Boot sector code invalid (is 0000h).",13,10
   497 0000043D 6F7220636F64652069-
   497 00000446 6E76616C6964202869-
   497 0000044F 73203030303068292E-
   497 00000458 0D0A00             
   498                                  .bootfail_secsizediffer:
   499 0000045B 425042204270532064-     		asciz "BPB BpS differs from actual sector size.",13,10
   499 00000464 696666657273206672-
   499 0000046D 6F6D2061637475616C-
   499 00000476 20736563746F722073-
   499 0000047F 697A652E0D0A00     
   500                                  .bootfail_stack_underflow:
   501 00000486 426F6F742073746163-     		asciz "Boot stack underflowed.",13,10
   501 0000048F 6B20756E646572666C-
   501 00000498 6F7765642E0D0A00   
   502                                  .bootfail_check_mismatch:
   503 000004A0 436865636B206D6973-     		db "Check mismatch, expected "
   503 000004A9 6D617463682C206578-
   503 000004B2 70656374656420     
   504                                  .bootfail_check_mismatch.check_value:
   505 000004B9 5F5F5F5F6820617420-     		db "____h at offset "
   505 000004C2 6F666673657420     
   506                                  .bootfail_check_mismatch.check_offset:
   507 000004C9 5F5F5F5F6820627574-     		db "____h but has "
   507 000004D2 2068617320         
   508                                  .bootfail_check_mismatch.check_got:
   509 000004D7 5F5F5F5F682E0D0A00      		asciz "____h.",13,10
   510 000004E0 4F7574206F66206D65-     .boot_out_of_memory_error:	asciz "Out of memory.", 13,10
   510 000004E9 6D6F72792E0D0A00   
   511 000004F1 546F6F206D616E7920-     .boot_too_many_partitions_error:asciz "Too many partitions (or a loop).",13,10
   511 000004FA 706172746974696F6E-
   511 00000503 7320286F722061206C-
   511 0000050C 6F6F70292E0D0A00   
   512 00000514 506172746974696F6E-     .boot_partition_cycle_error:	asciz "Partition table cycle detected.",13,10
   512 0000051D 207461626C65206379-
   512 00000526 636C65206465746563-
   512 0000052F 7465642E0D0A00     
   513 00000536 506172746974696F6E-     .boot_partition_not_found:	asciz "Partition not found.",13,10
   513 0000053F 206E6F7420666F756E-
   513 00000548 642E0D0A00         
   514 0000054D 52656164206572726F-     .boot_access_error:	asciz "Read error.", 13,10
   514 00000556 722E0D0A00         
   515 0000055B 536563746F72207369-     .boot_sector_too_large:	asciz "Sector size too small (< 32 bytes).", 13,10
   515 00000564 7A6520746F6F20736D-
   515 0000056D 616C6C20283C203332-
   515 00000576 206279746573292E0D-
   515 0000057F 0A00               
   516 00000581 536563746F72207369-     .boot_sector_too_small:	asciz "Sector size too large (> 8192 bytes).", 13,10
   516 0000058A 7A6520746F6F206C61-
   516 00000593 72676520283E203831-
   516 0000059C 393220627974657329-
   516 000005A5 2E0D0A00           
   517 000005A9 536563746F72207369-     .boot_sector_not_power:	asciz "Sector size not a power of two.", 13,10
   517 000005B2 7A65206E6F74206120-
   517 000005BB 706F776572206F6620-
   517 000005C4 74776F2E0D0A00     
   518 000005CB 496E76616C69642067-     .boot_invalid_sectors:	asciz "Invalid geometry sectors.", 13,10
   518 000005D4 656F6D657472792073-
   518 000005DD 6563746F72732E0D0A-
   518 000005E6 00                 
   519 000005E7 496E76616C69642067-     .boot_invalid_heads:	asciz "Invalid geometry heads.", 13,10
   519 000005F0 656F6D657472792068-
   519 000005F9 656164732E0D0A00   
   520 00000601 46696C65206E6F7420-     .boot_file_not_found:	asciz "File not found.",13,10
   520 0000060A 666F756E642E0D0A00 
   521 00000613 46696C6520746F6F20-     .boot_file_too_big_error:	asciz "File too big.",13,10
   521 0000061C 6269672E0D0A00     
   522 00000623 46696C6520746F6F20-     .boot_file_too_small_error:	asciz "File too small.",13,10
   522 0000062C 736D616C6C2E0D0A00 
   523 00000635 42616420616D6F756E-     .boot_badclusters:	asciz "Bad amount of clusters.",13,10
   523 0000063E 74206F6620636C7573-
   523 00000647 746572732E0D0A00   
   524 0000064F 42616420636C757374-     .boot_badchain:		asciz "Bad cluster chain.",13,10
   524 00000658 657220636861696E2E-
   524 00000661 0D0A00             
   525 00000664 4261642046696C6520-     .boot_badfat:		asciz "Bad File Allocation Table.",13,10
   525 0000066D 416C6C6F636174696F-
   525 00000676 6E205461626C652E0D-
   525 0000067F 0A00               
   526 00000681 496E76616C69642066-     .boot_invalid_filename:	asciz "Invalid filename.",13,10
   526 0000068A 696C656E616D652E0D-
   526 00000693 0A00               
   527 00000695 43616E6E6F74207365-     .boot_cannot_set_both:	asciz "Cannot set both "
   527 0000069E 7420626F74682000   
   528 000006A6 20616E642000            .boot_and:		asciz " and "
   529 000006AC 2E0D0A00                .boot_dot_crlf:		asciz ".",13,10
   530 000006B0 2120496E7465726E61-     .boot_internal_error:	asciz "! Internal error !",13,10
   530 000006B9 6C206572726F722021-
   530 000006C2 0D0A00             
   531 000006C5 42504220616E64206C-     .boot_bpb_load_overlap:	asciz "BPB and load area overlap.",13,10
   531 000006CE 6F6164206172656120-
   531 000006D7 6F7665726C61702E0D-
   531 000006E0 0A00               
   532 000006E2 5365676D656E742074-     .boot_segment_too_low:	asciz "Segment too low.",13,10
   532 000006EB 6F6F206C6F772E0D0A-
   532 000006F4 00                 
   533 000006F5 42504220746F6F206C-     .boot_bpb_too_low:	asciz "BPB too low.",13,10
   533 000006FE 6F772E0D0A00       
   534 00000704 2120496E7465726E61-     .boot_auxbuff_crossing:	db "! Internal error !, "
   534 0000070D 6C206572726F722021-
   534 00000716 2C20               
   535 00000718 617578627566662063-     			asciz "auxbuff crosses 64 KiB boundary.",13,10
   535 00000721 726F73736573203634-
   535 0000072A 204B694220626F756E-
   535 00000733 646172792E0D0A00   
   536 0000073B 5245414400              .read:		asciz "READ"
   537 00000740 575249544500            .write:		asciz "WRITE"
   538 00000746 48494444454E00          .hidden:	asciz "HIDDEN"
   539 0000074D 48494444454E414444-     .hiddenadd:	asciz "HIDDENADD"
   539 00000756 00                 
   540 00000757 44495200                .dir:		asciz "DIR"
   541 0000075B 082020205B4449525D      .dirinsteadsize:countedb "   [DIR]"
   542 00000764 2F00                    .emptydirname:	asciz "/"
   543 00000766 424F4F5400              .boot:		asciz "BOOT"
   544 0000076B 5155495400              .quit:		asciz "QUIT"
   545 00000770 50524F544F434F4C00      .protocol:	asciz "PROTOCOL"
   546 00000779 5345474D454E5400        .segment:	asciz "SEGMENT"
   547 00000781 454E54525900            .entry:		asciz "ENTRY"
   548 00000787 42504200                .bpb:		asciz "BPB"
   549 0000078B 4D494E5041524100        .minpara:	asciz "MINPARA"
   550 00000793 4D41585041524100        .maxpara:	asciz "MAXPARA"
   551 0000079B 434845434B4F464653-     .checkoffset:	asciz "CHECKOFFSET"
   551 000007A4 455400             
   552 000007A7 434845434B56414C55-     .checkvalue:	asciz "CHECKVALUE"
   552 000007B0 4500               
   553 000007B2 534543544F5200          .sector:	asciz "SECTOR"
   554 000007B9 534543544F52414C54-     .sector_alt:	asciz "SECTORALT"
   554 000007C2 00                 
   555 000007C3 4B45524E454C2E5359-     .freedos_kernel_name:	asciz "KERNEL.SYS"
   555 000007CC 5300               
   556 000007CE 49504C2E53595300        .dosc_kernel_name:	asciz "IPL.SYS"
   557 000007D6 445242494F2E535953-     .edrdos_kernel_name:	asciz "DRBIO.SYS"
   557 000007DF 00                 
   558 000007E0 4C444F532E434F4D00      .ldos_kernel_name:	asciz "LDOS.COM"
   559                                  .msdos7_kernel_name:
   560 000007E9 494F2E53595300          .msdos6_kernel_name:	asciz "IO.SYS"
   561 000007F0 4D53444F532E535953-     .msdos6_add_name:	asciz "MSDOS.SYS"
   561 000007F9 00                 
   562 000007FA 49424D42494F2E434F-     .ibmdos_kernel_name:	asciz "IBMBIO.COM"
   562 00000803 4D00               
   563 00000805 49424D444F532E434F-     .ibmdos_add_name:	asciz "IBMDOS.COM"
   563 0000080E 4D00               
   564 00000810 4E544C445200            .ntldr_kernel_name:	asciz "NTLDR"
   565 00000816 424F4F544D475200        .bootmgr_kernel_name:	asciz "BOOTMGR"
   566 0000081E 424F4F54534543542E-     .chain_kernel_name:	asciz "BOOTSECT.DOS"
   566 00000827 444F5300           
   567 0000082B 5258444F5342494F2E-     .rxdos.0_kernel_name:	asciz "RXDOSBIO.SYS"
   567 00000834 53595300           
   568 00000838 525842494F2E535953-     .rxdos.1_kernel_name:	asciz "RXBIO.SYS"
   568 00000841 00                 
   569                                  .rxdos.0_add_name:
   570 00000842 5258444F532E535953-     .rxdos.1_add_name:	asciz "RXDOS.SYS"
   570 0000084B 00                 
   571 0000084C 5258444F532E434F4D-     .rxdos.2_kernel_name:	asciz "RXDOS.COM"
   571 00000855 00                 
   572 00000856 00                      .addname_empty:		asciz
   573 00000857 43616E6E6F74207175-     .cannotbootquit_memsizes:	asciz "Cannot quit, memory size changed.",13,10
   573 00000860 69742C206D656D6F72-
   573 00000869 792073697A65206368-
   573 00000872 616E6765642E0D0A00 
   574                                  %endif
   575 0000087B 554E                    .uninstall:	db "UN"
   576 0000087D 494E5354414C4C00        .install:	asciz "INSTALL"
   577 00000885 544F47474C4500          .toggle:	asciz "TOGGLE"
   578 0000088C 20697320616C726561-     .alreadyenabled:asciz " is already enabled.",13,10
   578 00000895 647920656E61626C65-
   578 0000089E 642E0D0A00         
   579 000008A3 20697320616C726561-     .alreadydisabled:asciz " is already disabled.",13,10
   579 000008AC 64792064697361626C-
   579 000008B5 65642E0D0A00       
   580 000008BB 3A20547279696E6720-     .tryenable:	asciz ": Trying to enable.",13,10
   580 000008C4 746F20656E61626C65-
   580 000008CD 2E0D0A00           
   581 000008D1 3A20547279696E6720-     .trydisable:	asciz ": Trying to disable.",13,10
   581 000008DA 746F2064697361626C-
   581 000008E3 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                                  		asciz "Internal error in Q command uninstalling areas.",13,10
   631                                  %endif
   632                                  %if _AREAS && _AREAS_HOOK_CLIENT
   633                                  .areasinstalled:	asciz "Areas installed.",13,10
   634                                  .areasalreadyinstalled:	asciz "Areas already installed.",13,10
   635                                  .areasnodebuggerfound:	asciz "Areas not installed, no debugger AMIS interface found!",13,10
   636                                  .areasnotsupported:	asciz "Areas not installed, debugger AMIS interface does not support function!",13,10
   637                                  .areasnotinstalled:	db "Areas not installed, debugger returned code "
   638                                  .areasnotinstalled.code:asciz "--h.",13,10
   639                                  .areasalreadyuninstalled:	asciz "Areas already uninstalled.",13,10
   640                                  .areasuninstalled:		db "Areas uninstalled, debugger returned code "
   641                                  .areasuninstalled.code:		asciz "--h.",13,10
   642                                  %endif
   643 000008E8 5448454E00              .then:		asciz "THEN"
   644 000008ED 4E4F5400                .not:		asciz "NOT"
   645 000008F1 52565600                .rvv:		asciz "RVV"
   646 000008F5 52564D00                .rvm:		asciz "RVM"
   647 000008F9 52565000                .rvp:		asciz "RVP"
   648 000008FD 52564400                .rvd:		asciz "RVD"
   649                                  %if _MMXSUPP && _RM
   650                                  .rm:		asciz "RM"
   651                                  %endif
   652                                  %if _BOOTLDR
   653 00000901 4D6F64653A20426F6F-     .rvp_boot:		ascizline "Mode: Boot loaded"
   653 0000090A 74206C6F616465640D-
   653 00000913 0A00               
   654                                  %endif
   655                                  %if _DEVICE
   656                                   %if _ATTACH
   657 00000915 4D6F64653A20446576-     .rvp_device_attached:	ascizline "Mode: Device driver attached"
   657 0000091E 696365206472697665-
   657 00000927 722061747461636865-
   657 00000930 640D0A00           
   658                                   %endif
   659 00000934 4D6F64653A20446576-     .rvp_device:		ascizline "Mode: Device driver"
   659 0000093D 696365206472697665-
   659 00000946 720D0A00           
   660                                  %endif
   661                                  %if _APPLICATION
   662                                   %if _TSR
   663 0000094A 4D6F64653A20417070-     .rvp_tsr:		ascizline "Mode: Application installed as TSR"
   663 00000953 6C69636174696F6E20-
   663 0000095C 696E7374616C6C6564-
   663 00000965 206173205453520D0A-
   663 0000096E 00                 
   664                                   %endif
   665 0000096F 4D6F64653A20417070-     .rvp_application:	ascizline "Mode: Application"
   665 00000978 6C69636174696F6E0D-
   665 00000981 0A00               
   666                                  %endif
   667 00000983 0D436F646520736567-     .vm_codeseg:	counted "Code segment="
   667 0000098C 6D656E743D         
   668                                  %if _DUALCODE
   669                                  .vm_code2seg:	counted "Code2 segment="
   670                                  %endif
   671 00000991 0D4461746120736567-     .vm_dataseg:	counted "Data segment="
   671 0000099A 6D656E743D         
   672 0000099F 0E456E747279207365-     .vm_entryseg:	counted "Entry segment="
   672 000009A8 676D656E743D       
   673                                  %if _MESSAGESEGMENT
   674 000009AE 104D65737361676520-     .vm_messageseg:	counted "Message segment="
   674 000009B7 7365676D656E743D   
   675                                  %endif
   676 000009BF 104175786275666620-     .vm_auxseg:	counted "Auxbuff segment="
   676 000009C8 7365676D656E743D   
   677                                  %if _HISTORY_SEPARATE_FIXED && _HISTORY
   678 000009D0 10486973746F727920-     .vm_hisseg:	counted "History segment="
   678 000009D9 7365676D656E743D   
   679                                  %endif
   680                                  %if _PM
   681                                  .vm_selector:	counted " selector="
   682                                  %endif
   683 000009E1 0D436C69656E742020-     .vp_pspsegment:		counted "Client   PSP="
   683 000009EA 205053503D         
   684 000009EF 0D4465627567676572-     .vp_dpspsegment:	counted "Debugger PSP="
   684 000009F8 205053503D         
   685                                  .vp_dparent:
   686 000009FD 0820506172656E743D      .vp_parent:		counted " Parent="
   687                                  .vp_dpra:
   688 00000A06 1720506172656E7420-     .vp_pra:		counted " Parent Return Address="
   688 00000A0F 52657475726E204164-
   688 00000A18 64726573733D       
   689                                  %if _PM
   690                                  .vp_dpspsel:
   691                                  .vp_pspsel:		counted " PSP Selector="
   692                                  %endif
   693 00000A1E 4E6F74206C6F616465-     .rvd_not_device:	asciz "Not loaded in device mode.",13,10
   693 00000A27 6420696E2064657669-
   693 00000A30 6365206D6F64652E0D-
   693 00000A39 0A00               
   694                                  %if _DEVICE
   695 00000A3B 114465766963652068-     .rvd_deviceheader:	counted "Device header at "
   695 00000A44 656164657220617420 
   696 00000A4D 212E20416D6F756E74-     .rvd_size:		counted ". Amount paragraphs allocated is "
   696 00000A56 207061726167726170-
   696 00000A5F 687320616C6C6F6361-
   696 00000A68 74656420697320     
   697                                  %endif
   698 00000A6F 546F6F206C6F6E6720-     .n_toolongtail:	asciz "Too long N command tail!",13,10
   698 00000A78 4E20636F6D6D616E64-
   698 00000A81 207461696C210D0A00 
   699 00000A8A 546F6F206C6F6E6720-     .n_toolongname:	asciz "Too long N command name!",13,10
   699 00000A93 4E20636F6D6D616E64-
   699 00000A9C 206E616D65210D0A00 
   700 00000AA5 4E554D42455200          .number:	asciz "NUMBER"
   701 00000AAC 434F554E54455200        .counter:	asciz "COUNTER"
   702 00000AB4 494400                  .id:		asciz "ID"
   703 00000AB7 5748454E00              .when:		asciz "WHEN"
   704 00000ABC 4F464653455400          .offset:	asciz "OFFSET"
   705 00000AC3 3F00                    .questionmark:	asciz "?"
   706 00000AC5 4F                      .or:		db "O"
   707 00000AC6 5200                    .r:		asciz "R"
   708 00000AC8 4E4400                  .nd:		asciz "ND"
   709 00000ACB 4C5200                  .lr:		asciz "LR"
   710 00000ACE 52454D454D42455200      .remember:	asciz "REMEMBER"
   711 00000AD7 474F544F00              .goto:		asciz "GOTO"
   712 00000ADC 534F4600                .sof:		asciz "SOF"
   713 00000AE0 454F4600                .eof:		asciz "EOF"
   714 00000AE4 4572726F723A20474F-     .goto_not_file:	asciz "Error: GOTO command not supported when not reading a script.",13,10
   714 00000AED 544F20636F6D6D616E-
   714 00000AF6 64206E6F7420737570-
   714 00000AFF 706F72746564207768-
   714 00000B08 656E206E6F74207265-
   714 00000B11 6164696E6720612073-
   714 00000B1A 63726970742E0D0A00 
   715 00000B23 4572726F723A20474F-     .goto_empty:	asciz "Error: GOTO needs a destination label.",13,10
   715 00000B2C 544F206E6565647320-
   715 00000B35 612064657374696E61-
   715 00000B3E 74696F6E206C616265-
   715 00000B47 6C2E0D0A00         
   716 00000B4C 4572726F723A20474F-     .goto_not_found.1:	asciz "Error: GOTO destination label ",'"'
   716 00000B55 544F2064657374696E-
   716 00000B5E 6174696F6E206C6162-
   716 00000B67 656C202200         
   717 00000B6C 22206E6F7420666F75-     .goto_not_found.2:	asciz '"'," not found.",13,10
   717 00000B75 6E642E0D0A00       
   718 00000B7B 4572726F723A206175-     .guard_auxbuff_error:	asciz "Error: auxbuff already guarded!",13,10
   718 00000B84 786275666620616C72-
   718 00000B8D 656164792067756172-
   718 00000B96 646564210D0A00     
   719 00000B9D 4572726F723A20436F-     .guard_re_error:	asciz "Error: Command not supported while reading from RE buffer.",13,10
   719 00000BA6 6D6D616E64206E6F74-
   719 00000BAF 20737570706F727465-
   719 00000BB8 64207768696C652072-
   719 00000BC1 656164696E67206672-
   719 00000BCA 6F6D20524520627566-
   719 00000BD3 6665722E0D0A00     
   720 00000BDA 4572726F723A20436F-     .guard_rc_error:	asciz "Error: Command not supported while reading from RC buffer.",13,10
   720 00000BE3 6D6D616E64206E6F74-
   720 00000BEC 20737570706F727465-
   720 00000BF5 64207768696C652072-
   720 00000BFE 656164696E67206672-
   720 00000C07 6F6D20524320627566-
   720 00000C10 6665722E0D0A00     
   721 00000C17 4572726F723A20556E-     .unexpected_auxbuff_guard:	asciz "Error: Unexpected auxbuff guard!",13,10
   721 00000C20 657870656374656420-
   721 00000C29 617578627566662067-
   721 00000C32 75617264210D0A00   
   722                                  %if _SYMBOLIC
   723                                  .unexpected_nosymbols:		asciz "Error: Unexpected no symbols flag!",13,10
   724                                  %endif
   725 00000C3A 4572726F723A20556E-     .unexpected_noneol_re:		asciz "Error: Unexpected non-EOL in RE processing!",13,10
   725 00000C43 657870656374656420-
   725 00000C4C 6E6F6E2D454F4C2069-
   725 00000C55 6E2052452070726F63-
   725 00000C5E 657373696E67210D0A-
   725 00000C67 00                 
   726 00000C68 4572726F723A20556E-     .unexpected_noneol_rc:		asciz "Error: Unexpected non-EOL in RC processing!",13,10
   726 00000C71 657870656374656420-
   726 00000C7A 6E6F6E2D454F4C2069-
   726 00000C83 6E2052432070726F63-
   726 00000C8C 657373696E67210D0A-
   726 00000C95 00                 
   727 00000C96 5245504C41434500        .replace:	asciz "REPLACE"
   728 00000C9E 415050454E4400          .append:	asciz "APPEND"
   729 00000CA5 44                      .dword:		db "D"
   730 00000CA6 574F524400              .word:		asciz "WORD"
   731 00000CAB 33                      .3byte:		db "3"
   732 00000CAC 4259544500              .byte:		asciz "BYTE"
   733 00000CB1 4C494E455300            .lines:		asciz "LINES"
   734                                  %if _RH
   735 00000CB7 524800                  .rh:		asciz "RH"
   736 00000CBA 526567697374657220-     .rh_enabled:	asciz "Register dump history enabled.",13,10
   736 00000CC3 64756D702068697374-
   736 00000CCC 6F727920656E61626C-
   736 00000CD5 65642E0D0A00       
   737 00000CDB 526567697374657220-     .rh_disabled:	asciz "Register dump history disabled.",13,10
   737 00000CE4 64756D702068697374-
   737 00000CED 6F7279206469736162-
   737 00000CF6 6C65642E0D0A00     
   738 00000CFD 0A2020524820737465-     .rh_step.1:	counted "  RH step="
   738 00000D06 703D               
   739 00000D08 0B2020646563696D61-     .rh_step.2:	counted "  decimal: "
   739 00000D11 6C3A20             
   740                                  %endif
   741                                  %if _HELP_COMPRESSED
   742 00000D14 496E7465726E616C20-     .hshrink_error:	asciz "Internal error: Depack failure!",13,10
   742 00000D1D 6572726F723A204465-
   742 00000D26 7061636B206661696C-
   742 00000D2F 757265210D0A00     
   743                                  %endif
   744                                  %if _TEST_HELP_FILE
   745                                  .testhelp:	asciz "TESTHELP"
   746                                  %endif
   747                                  %if 1 || _STRNUM
   748 00000D36 415300                  .as:		asciz "AS"
   749                                  %endif
   750                                  %if _DTOP || _LOADER
   751 00000D39 544F5000                .top:		asciz "TOP"
   752                                  %endif
   753                                  %if _COUNT || _RH
   754 00000D3D 434F554E5400            .count:		asciz "COUNT"
   755                                  %endif
   756                                  %if _CLEAR
   757 00000D43 434C45415200            .clear:		asciz "CLEAR"
   758 00000D49 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 00000D52 0D72656D61696E6465-     		counted "remainder is "
   766 00000D5B 7220697320         
   767                                  %endif
   768                                  %if _CONFIG
   769 00000D60 3A3A434F4E4649473A-     .configkeyword:	asciz "::CONFIG:"
   769 00000D69 00                 
   770 00000D6A 3A3A53435249505453-     .scriptskeyword:asciz "::SCRIPTS:"
   770 00000D73 3A00               
   771 00000D75 3A3A454D5054593A00      .emptykeyword:	asciz "::EMPTY:"
   772                                  %endif
   773                                  %if _EXECUTABLE
   774 00000D7E 3A3A45584543555441-     .executablekeyword:	asciz "::EXECUTABLE:"
   774 00000D87 424C453A00         
   775                                  %endif
   776                                  %if _EXTENSIONS
   777 00000D8C 496E7465726E616C20-     .ext_error_internal:	asciz "Internal error in EXT command.",13,10
   777 00000D95 6572726F7220696E20-
   777 00000D9E 45585420636F6D6D61-
   777 00000DA7 6E642E0D0A00       
   778 00000DAD 45585420636F6D6D61-     .ext_error_io:		asciz "EXT command got I/O error.",13,10
   778 00000DB6 6E6420676F7420492F-
   778 00000DBF 4F206572726F722E0D-
   778 00000DC8 0A00               
   779 00000DCA 4E6F206F7220696E76-     .ext_error_invalid:	asciz "No or invalid Extension for lDebug header.",13,10
   779 00000DD3 616C69642045787465-
   779 00000DDC 6E73696F6E20666F72-
   779 00000DE5 206C44656275672068-
   779 00000DEE 65616465722E0D0A00 
   780 00000DF7 4F7574206F66206D65-     .ext_error_oom:		asciz "Out of memory in EXT command.",13,10
   780 00000E00 6D6F727920696E2045-
   780 00000E09 585420636F6D6D616E-
   780 00000E12 642E0D0A00         
   781 00000E17 45585400                .ext:		asciz "EXT"
   782 00000E1B 457874656E73696F6E-     .eld_load_error:db "Extension for lDebug had an error during loading. Code: "
   782 00000E24 20666F72206C446562-
   782 00000E2D 75672068616420616E-
   782 00000E36 206572726F72206475-
   782 00000E3F 72696E67206C6F6164-
   782 00000E48 696E672E20436F6465-
   782 00000E51 3A20               
   783 00000E53 2D2D2D2D2E0D0A00        .eld_error_code:asciz "----.",13,10
   784                                  %endif
   785 00000E5B 47494200                .gib:		asciz "GIB"
   786 00000E5F 4D494200                .mib:		asciz "MIB"
   787 00000E63 4B494200                .kib:		asciz "KIB"
   788 00000E67 504147455300            .pages:		asciz "PAGES"
   789 00000E6D 504152414752415048-     .paragraphs:	asciz "PARAGRAPHS"
   789 00000E76 5300               
   790 00000E78 504152415300            .paras:		asciz "PARAS"
   791 00000E7E 51574F52445300          .qwords:	asciz "QWORDS"
   792 00000E85 44                      .dwords:	db "D"
   793 00000E86 574F52445300            .words:		asciz "WORDS"
   794 00000E8C 425954455300            .bytes:		asciz "BYTES"
   795 00000E92 4C454E47544800          .length:	asciz "LENGTH"
   796 00000E99 454E4400                .end:		asciz "END"
   797 00000E9D 52414E474500            .range:		asciz "RANGE"
   798                                  %if _VXCHG
   799 00000EA3 4F4E00                  .on:		asciz "ON"
   800 00000EA6 4F464600                .off:		asciz "OFF"
   801                                  .vv_enable_failure:
   802 00000EAA 556E61626C6520746F-     		asciz "Unable to enable video swapping.",13,10
   802 00000EB3 20656E61626C652076-
   802 00000EBC 6964656F2073776170-
   802 00000EC5 70696E672E0D0A00   
   803 00000ECD 566964656F20737761-     .vv_disabled:	asciz "Video swapping is disabled, use V ON to switch it on.",13,10
   803 00000ED6 7070696E6720697320-
   803 00000EDF 64697361626C65642C-
   803 00000EE8 207573652056204F4E-
   803 00000EF1 20746F207377697463-
   803 00000EFA 68206974206F6E2E0D-
   803 00000F03 0A00               
   804                                  %endif
   805 00000F05 5245564552534500        .reverse:	asciz "REVERSE"
   806 00000F0D 56414C554500            .value:		asciz "VALUE"
   807 00000F13 494E00                  .in:		asciz "IN"
   808 00000F16 4558495354494E4700      .existing:	asciz "EXISTING"
   809 00000F1F 46524F4D00              .from:		asciz "FROM"
   810 00000F24 544F00                  .to:		asciz "TO"
   811 00000F27 455845435554494E47-     .executing:		asciz "EXECUTING"
   811 00000F30 00                 
   812 00000F31 46524F4D204C494E45-     .executing_value_range:	asciz "FROM LINEAR cs:cip LENGTH abo - cip"
   812 00000F3A 41522063733A636970-
   812 00000F43 204C454E4754482061-
   812 00000F4C 626F202D2063697000 
   813 00000F55 4C494E45415200          .linear:	asciz "LINEAR"
   814                                  %if _IMMASM
   815                                  .immasm_error_eip:
   816 00000F5C 4572726F722C206272-     		asciz "Error, branch targets EIP beyond 64 KiB.",13,10
   816 00000F65 616E63682074617267-
   816 00000F6E 657473204549502062-
   816 00000F77 65796F6E6420363420-
   816 00000F80 4B69422E0D0A00     
   817                                  %endif
   818                                  %if _PM
   819                                  .desctype:	asciz "DESCTYPE"
   820                                  %endif
   821 00000F87 4E4F54                  .nottaken:	db "NOT"
   822 00000F8A 54414B454E00            .taken:		asciz "TAKEN"
   823 00000F90 4E                      .nt:		db "N"
   824 00000F91 5400                    .t:		asciz "T"
   825 00000F93 4241534500              .base:		asciz "BASE"
   826 00000F98 47524F555000            .group:		asciz "GROUP"
   827 00000F9E 574944544800            .width:		asciz "WIDTH"
   828                                  %if _HISTORY
   829                                  .history_internal_error:
   830 00000FA4 0D0A496E7465726E61-     		asciz 13,10,"Internal error in history handling!",13,10
   830 00000FAD 6C206572726F722069-
   830 00000FB6 6E20686973746F7279-
   830 00000FBF 2068616E646C696E67-
   830 00000FC8 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 00000FCC 07204572726F7221    <1> .di_error:	counted " Error!"
    17 00000FD4 0768696464656E20    <1> .di_hidden:	counted "hidden "
    18 00000FDC 0720284949535029    <1> .di_iisp:	counted " (IISP)"
    19 00000FE4 1320286E6F6E737461- <1> .di_nonstd_iisp:counted " (nonstandard IISP)"
    19 00000FED 6E6461726420494953- <1>
    19 00000FF6 5029                <1>
    20 00000FF8 132028756E696E7374- <1> .di_uninst_iisp:counted " (uninstalled IISP)"
    20 00001001 616C6C656420494953- <1>
    20 0000100A 5029                <1>
    21                              <1> .di_freedos_reloc:
    22 0000100C 1220284644206B6572- <1> 		counted " (FD kernel reloc)"
    22 00001015 6E656C2072656C6F63- <1>
    22 0000101E 29                  <1>
    23 0000101F 0E2028666172206A6D- <1> .di_jmpfar:	counted " (far jmp imm)"
    23 00001028 7020696D6D29        <1>
    24                              <1> .di_jmpfarindirect:
    25 0000102E 132028666172206A6D- <1> 		counted " (far jmp indirect)"
    25 00001037 7020696E6469726563- <1>
    25 00001040 7429                <1>
    26 00001042 0C2028746573742068- <1> .di_testhook:	counted " (test hook)"
    26 0000104B 6F6F6B29            <1>
    27 0000104F 1C2028746F6F206D61- <1> .di_toomany:	counted " (too many chained handlers)"
    27 00001058 6E7920636861696E65- <1>
    27 00001061 642068616E646C6572- <1>
    27 0000106A 7329                <1>
    28 0000106C 0F20656D707479204D- <1> .di_empty:	counted " empty MCB name"
    28 00001075 4342206E616D65      <1>
    29 0000107C 0B2073797374656D20- <1> .di_system_mcb:	counted " system MCB"
    29 00001085 4D4342              <1>
    30                              <1> .di_system_upper:
    31 00001088 0E2073797374656D20- <1> 		counted " system in UMA"
    31 00001091 696E20554D41        <1>
    32 00001097 0E2073797374656D20- <1> .di_system_low:	counted " system in LMA"
    32 000010A0 696E204C4D41        <1>
    33 000010A6 112068696768206D65- <1> .di_hma:	counted " high memory area"
    33 000010AF 6D6F72792061726561  <1>
    34 000010B8 06205B6D70783A      <1> .di_multiplex.1:counted " [mpx:"
    35 000010BF 0768206C6973743A    <1> .di_multiplex.2:counted "h list:"
    36 000010C7 02685D              <1> .di_multiplex.3:counted "h]"
    37                              <1> 
    38                              <1> %if _PM
    39                              <1> gatewrong:	equ $
    40                              <1> 		asciz "gate not accessible",13,10
    41                              <1> %endif
   834                                  %endif
   835 000010CA 68656164657200          .header:	asciz "header"
   836                                  .header.length:	equ $ - 1 - .header
   837 000010D1 747261696C657200        .trailer:	asciz "trailer"
   838                                  .trailer.length:equ $ - 1 - .trailer
   839 000010D9 415400                  .at:		asciz "AT"
   840 000010DC 5748494C4500            .while:		asciz "WHILE"
   841 000010E2 53494C454E5400          .silent:	asciz "SILENT"
   842 000010E9 534C45455000            .sleep:		asciz "SLEEP"
   843 000010EF 5345434F4E445300        .seconds:	asciz "SECONDS"
   844 000010F7 5449434B5300            .ticks:		asciz "TICKS"
   845 000010FD 52452070726F636573-     .re_limit_reached:	asciz "RE processing reached RELIMIT, aborting.",13,10
   845 00001106 73696E672072656163-
   845 0000110F 6865642052454C494D-
   845 00001118 49542C2061626F7274-
   845 00001121 696E672E0D0A00     
   846 00001128 52432070726F636573-     .rc_limit_reached:	asciz "RC processing reached RCLIMIT, aborting.",13,10
   846 00001131 73696E672072656163-
   846 0000113A 6865642052434C494D-
   846 00001143 49542C2061626F7274-
   846 0000114C 696E672E0D0A00     
   847 00001153 2120496E7465726E61-     .silent_error:	asciz "! Internal error during silent buffer handling !",13,10
   847 0000115C 6C206572726F722064-
   847 00001165 7572696E672073696C-
   847 0000116E 656E74206275666665-
   847 00001177 722068616E646C696E-
   847 00001180 6720210D0A00       
   848 00001186 5768696C6520636F6E-     .while_not_true:asciz "While condition not true, returning.",13,10
   848 0000118F 646974696F6E206E6F-
   848 00001198 7420747275652C2072-
   848 000011A1 657475726E696E672E-
   848 000011AA 0D0A00             
   849 000011AD 5768696C6520636F6E-     .while_terminated_before:	asciz "While condition ",'"'
   849 000011B6 646974696F6E202200 
   850 000011BF 22206E6F206C6F6E67-     .while_terminated_after:	asciz '"'," no longer true.",13,10
   850 000011C8 657220747275652E0D-
   850 000011D1 0A00               
   851 000011D3 4E6F2073657269616C-     .no_progress:	asciz "No serial comm progress after 5 seconds, giving up. (Keyboard enabled.)",13,10
   851 000011DC 20636F6D6D2070726F-
   851 000011E5 677265737320616674-
   851 000011EE 65722035207365636F-
   851 000011F7 6E64732C2067697669-
   851 00001200 6E672075702E20284B-
   851 00001209 6579626F6172642065-
   851 00001212 6E61626C65642E290D-
   851 0000121B 0A00               
   852 0000121D 0D0A436F6E64746E6C-     .serial_request_keep:	asciz 13,10,_PROGNAME," connected to serial port. Enter KEEP to confirm.",13,10
   852 00001226 2E2044656275676761-
   852 0000122F 626C65206C44656275-
   852 00001238 6720636F6E6E656374-
   852 00001241 656420746F20736572-
   852 0000124A 69616C20706F72742E-
   852 00001253 20456E746572204B45-
   852 0000125C 455020746F20636F6E-
   852 00001265 6669726D2E0D0A00   
   853 0000126D 4E6F204B454550206B-     .serial_no_keep_timer:	asciz "No KEEP keyword confirmation after timeout, giving up. (Keyboard enabled.)",13,10
   853 00001276 6579776F726420636F-
   853 0000127F 6E6669726D6174696F-
   853 00001288 6E2061667465722074-
   853 00001291 696D656F75742C2067-
   853 0000129A 6976696E672075702E-
   853 000012A3 20284B6579626F6172-
   853 000012AC 6420656E61626C6564-
   853 000012B5 2E290D0A00         
   854 000012BA 4E6F204B454550206B-     .serial_no_keep_enter:	asciz "No KEEP keyword confirmation, enabling keyboard.",13,10
   854 000012C3 6579776F726420636F-
   854 000012CC 6E6669726D6174696F-
   854 000012D5 6E2C20656E61626C69-
   854 000012DE 6E67206B6579626F61-
   854 000012E7 72642E0D0A00       
   855                                  %if _VXCHG
   856 000012ED 4E4F                    .nokeep:	db "NO"
   857                                  %endif
   858 000012EF 4B45455000              .keep:		asciz "KEEP"
   859 000012F4 4572726F723A20556E-     .cannot_hook_2D.invalid:	asciz "Error: Unable to hook interrupt 2Dh due to invalid handler.",13,10
   859 000012FD 61626C6520746F2068-
   859 00001306 6F6F6B20696E746572-
   859 0000130F 727570742032446820-
   859 00001318 64756520746F20696E-
   859 00001321 76616C69642068616E-
   859 0000132A 646C65722E0D0A00   
   860 00001332 4572726F723A20556E-     .cannot_hook_2D.nofree:		asciz "Error: Unable to hook interrupt 2Dh, no free multiplex number.",13,10
   860 0000133B 61626C6520746F2068-
   860 00001344 6F6F6B20696E746572-
   860 0000134D 72757074203244682C-
   860 00001356 206E6F206672656520-
   860 0000135F 6D756C7469706C6578-
   860 00001368 206E756D6265722E0D-
   860 00001371 0A00               
   861 00001373 5761726E696E673A20      .serial_cannot_unhook:		db "Warning: "
   862 0000137C 556E61626C6520746F-     .serial_cannot_unhook.nowarn:	db "Unable to unhook interrupt "
   862 00001385 20756E686F6F6B2069-
   862 0000138E 6E7465727275707420 
   863 00001397 2D2D682E0D0A00          .serial_cannot_unhook.int:	asciz "--h.",13,10
   864 0000139E 4572726F723A20556E-     .serial_cannot_hook:		db "Error: Unable to hook interrupt "
   864 000013A7 61626C6520746F2068-
   864 000013B0 6F6F6B20696E746572-
   864 000013B9 7275707420         
   865 000013BE 2D2D68206265636175-     .serial_cannot_hook.new_int:	db "--h because interrupt "
   865 000013C7 736520696E74657272-
   865 000013D0 75707420           
   866 000013D4 2D2D68207374696C6C-     .serial_cannot_hook.old_int:	asciz "--h still hooked.",13,10
   866 000013DD 20686F6F6B65642E0D-
   866 000013E6 0A00               
   867 000013E8 537563636565646564-     .serial_late_unhook:		db "Succeeded in unhooking interrupt "
   867 000013F1 20696E20756E686F6F-
   867 000013FA 6B696E6720696E7465-
   867 00001403 727275707420       
   868 00001409 2D2D682E0D0A00          .serial_late_unhook.int:	asciz "--h.",13,10
   869 00001410 496E7465726E616C20-     .line_out_overflow:	asciz "Internal error, line_out buffer overflowed!",13,10
   869 00001419 6572726F722C206C69-
   869 00001422 6E655F6F7574206275-
   869 0000142B 66666572206F766572-
   869 00001434 666C6F776564210D0A-
   869 0000143D 00                 
   870                                  %if _REGSHIGHLIGHT || _GETLINEHIGHLIGHT || _DHIGHLIGHT
   871 0000143E 041B5B376D              .highlight:	counted 27,"[7m"
   872                                   %if _GETLINEHIGHLIGHT || _DHIGHLIGHT
   873 00001443 00                      		db 0
   874                                   %endif
   875 00001444 031B5B6D                .unhighlight:	counted 27,"[m"
   876                                   %if _GETLINEHIGHLIGHT || _DHIGHLIGHT
   877 00001448 00                      		db 0
   878                                   %endif
   879                                  %endif
   880 00001449 206B4D475400            .prefixes:	asciz " kMGT"
   881 0000144F 50726F63657373206C-     .ll_unterm:	ascizline "Process loading aborted: Attached process didn't terminate!"
   881 00001458 6F6164696E67206162-
   881 00001461 6F727465643A204174-
   881 0000146A 746163686564207072-
   881 00001473 6F6365737320646964-
   881 0000147C 6E2774207465726D69-
   881 00001485 6E617465210D0A00   
   882 0000148D 43616E6E6F74207175-     .qq_unterm:	ascizline "Cannot quit, attached process didn't terminate!"
   882 00001496 69742C206174746163-
   882 0000149F 6865642070726F6365-
   882 000014A8 7373206469646E2774-
   882 000014B1 207465726D696E6174-
   882 000014BA 65210D0A00         
   883                                  %if _PM
   884                                  .qq_still_pm:	ascizline "Cannot quit, still in PM after attached process terminated!"
   885                                  %endif
   886 000014BF 417474616368656420-     .qq_a_unterminated:	ascizline "Attached process didn't terminate."
   886 000014C8 70726F636573732064-
   886 000014D1 69646E277420746572-
   886 000014DA 6D696E6174652E0D0A-
   886 000014E3 00                 
   887 000014E4 417474616368656420-     .qq_a_terminated:	ascizline "Attached process did terminate."
   887 000014ED 70726F636573732064-
   887 000014F6 6964207465726D696E-
   887 000014FF 6174652E0D0A00     
   888 00001506 43616E6E6F74206372-     .ensure_no_memory:	ascizline "Cannot create empty attached process, out of memory!"
   888 0000150F 6561746520656D7074-
   888 00001518 792061747461636865-
   888 00001521 642070726F63657373-
   888 0000152A 2C206F7574206F6620-
   888 00001533 6D656D6F7279210D0A-
   888 0000153C 00                 
   889                                  %if _DEVICE
   890                                  .qq_device_none_selected:
   891 0000153D 43616E6E6F74207175-      ascizline "Cannot quit normally when loaded as device driver! Try QC or QD command."
   891 00001546 6974206E6F726D616C-
   891 0000154F 6C79207768656E206C-
   891 00001558 6F6164656420617320-
   891 00001561 646576696365206472-
   891 0000156A 697665722120547279-
   891 00001573 205143206F72205144-
   891 0000157C 20636F6D6D616E642E-
   891 00001585 0D0A00             
   892                                  .qq_device_no_d:
   893 00001588 43616E6E6F74207175-      ascizline "Cannot quit to device driver initialisation, state modified!"
   893 00001591 697420746F20646576-
   893 0000159A 696365206472697665-
   893 000015A3 7220696E697469616C-
   893 000015AC 69736174696F6E2C20-
   893 000015B5 7374617465206D6F64-
   893 000015BE 6966696564210D0A00 
   894                                  .qq_device_no_c:
   895 000015C7 43616E6E6F74207175-      ascizline "Cannot quit from device driver container, not found!"
   895 000015D0 69742066726F6D2064-
   895 000015D9 657669636520647269-
   895 000015E2 76657220636F6E7461-
   895 000015EB 696E65722C206E6F74-
   895 000015F4 20666F756E64210D0A-
   895 000015FD 00                 
   896                                   %if _PM
   897                                  .qq_device_pm:		ascizline "Cannot quit device driver in PM!"
   898                                   %endif
   899                                  	align 2, db 0
   900 000015FE 4E554C20<rep 5h>        .NULblank:		fill 8, 32, db "NUL"
   901                                  %endif
   902 00001606 4330                    .c0:	db "C0"
   903 00001608 0D                      .cr:	db 13
   904                                  
   905 00001609 41424F525400            .abort:			asciz "ABORT"
   906                                  %if _EXTENSIONS || _INPUT_FILE_HANDLES || _INPUT_FILE_BOOT
   907 0000160F 45584953545300          .exists:		asciz "EXISTS"
   908 00001616 5900                    .y:			asciz "Y"
   909 00001618 20636F6D6D616E6420-     .yy_requires_filename:	asciz " command requires a filename.",13,10
   909 00001621 726571756972657320-
   909 0000162A 612066696C656E616D-
   909 00001633 652E0D0A00         
   910 00001638 20636F6D6D616E6420-     .yy_filename_empty:	asciz " command filename is empty.",13,10
   910 00001641 66696C656E616D6520-
   910 0000164A 697320656D7074792E-
   910 00001653 0D0A00             
   911 00001656 20636F6D6D616E6420-     .yy_too_many_handles:	asciz " command has too many open files.",13,10
   911 0000165F 68617320746F6F206D-
   911 00001668 616E79206F70656E20-
   911 00001671 66696C65732E0D0A00 
   912 0000167A 20636F6D6D616E6420-     .yy_error_file_open:	asciz " command failed to open file.",13,10
   912 00001683 6661696C656420746F-
   912 0000168C 206F70656E2066696C-
   912 00001695 652E0D0A00         
   913 0000169A 20636F6D6D616E6420-     .yy_no_file:		asciz " command limited to label only valid in script file.",13,10
   913 000016A3 6C696D697465642074-
   913 000016AC 6F206C6162656C206F-
   913 000016B5 6E6C792076616C6964-
   913 000016BE 20696E207363726970-
   913 000016C7 742066696C652E0D0A-
   913 000016D0 00                 
   914                                  %endif
   915                                  %if _INPUT_FILE_HANDLES || _EXTENSIONS
   916 000016D1 20636F6D6D616E6420-     .yy_no_dos:		asciz " command requires DOS to be available.",13,10
   916 000016DA 726571756972657320-
   916 000016E3 444F5320746F206265-
   916 000016EC 20617661696C61626C-
   916 000016F5 652E0D0A00         
   917                                  .yy_filename_missing_unquote:
   918 000016FA 20636F6D6D616E6420-     			asciz " command filename missing ending quote.",13,10
   918 00001703 66696C656E616D6520-
   918 0000170C 6D697373696E672065-
   918 00001715 6E64696E672071756F-
   918 0000171E 74652E0D0A00       
   919                                  %endif
   920                                  %if _INPUT_FILE_BOOT || _EXTENSIONS
   921 00001724 20636F6D6D616E6420-     .yy_too_large:		asciz " command file too large.",13,10
   921 0000172D 66696C6520746F6F20-
   921 00001736 6C617267652E0D0A00 
   922 0000173F 20636F6D6D616E6420-     .yy_empty:		asciz " command file empty.",13,10
   922 00001748 66696C6520656D7074-
   922 00001751 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 00001756 414C4C00                .all:		asciz "ALL"
  1068 0000175A 4E455700                .new:		asciz "NEW"
  1069 0000175E 4E6F20756E75736564-     .bb_no_new:	asciz "No unused breakpoint left!",13,10
  1069 00001767 20627265616B706F69-
  1069 00001770 6E74206C656674210D-
  1069 00001779 0A00               
  1070 0000177B 19486974207065726D-     .bb_hit.1:	counted "Hit permanent breakpoint "
  1070 00001784 616E656E7420627265-
  1070 0000178D 616B706F696E7420   
  1071                                  .bb_hit.2.nocounter:
  1072 00001795 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 00001798 1C5061737365642070-     .bb_pass.1:	counted "Passed permanent breakpoint "
  1078 000017A1 65726D616E656E7420-
  1078 000017AA 627265616B706F696E-
  1078 000017B3 7420               
  1079                                  .bb_hit.2.counter:
  1080 000017B5 0A2C20636F756E7465-     .bb_pass.2:	counted ", counter="
  1080 000017BE 723D               
  1081                                  .bb_hit.3.counter.no_id:
  1082                                  .bb_pass.3.no_id:
  1083                                  .bb_hitpass_id.after:
  1084 000017C0 020D0A                  		counted 13,10
  1085                                  .bb_hitpass_id.long:
  1086 000017C3 070D0A2049443A20        		counted 13,10," ID: "
  1087                                  .bb_hitpass_id.short:
  1088 000017CB 062C2049443A20          		counted ", ID: "
  1089 000017D2 205748454E2000          .bb_when:	asciz " WHEN "
  1090                                  
  1091 000017D9 42502000                .bp:		asciz "BP "
  1092 000017DD 202B00                  .bpenabled:	asciz " +"
  1093 000017E0 202D00                  .bpdisabled:	asciz " -"
  1094 000017E3 20556E7573656400        .bpunused:	asciz " Unused"
  1095 000017EB 204C696E3D00            .bpaddress:	asciz " Lin="
  1096 000017F1 202800                  .bpcontent:	asciz " ("
  1097 000017F4 2920436F756E746572-     .bpcounter:	asciz ") Counter="
  1097 000017FD 3D00               
  1098                                  %if 0
  1099                                  BP 00 Unused
  1100                                  BP 00 + Lin=12345678 (CC) Counter=8000
  1101                                  1234567890123456789012345678901234567890
  1102                                  %endif
  1103 000017FF 4E6F20627265616B70-     .bpnone:	asciz "No breakpoints set currently.",13,10
  1103 00001808 6F696E747320736574-
  1103 00001811 2063757272656E746C-
  1103 0000181A 792E0D0A00         
  1104 0000181F 4E6F20627265616B70-     .bpnone_at:	asciz "No breakpoint set at given address currently.",13,10
  1104 00001828 6F696E742073657420-
  1104 00001831 617420676976656E20-
  1104 0000183A 616464726573732063-
  1104 00001843 757272656E746C792E-
  1104 0000184C 0D0A00             
  1105                                  %endif
  1106 0000184F 5468652000              .cant_bp_the:			asciz "The "
  1107 00001854 70726F636565642062-     .cant_bp_type_proceed:		asciz "proceed breakpoint"
  1107 0000185D 7265616B706F696E74-
  1107 00001866 00                 
  1108 00001867 7065726D616E656E74-     .cant_bp_type_permanent:	db    "permanent breakpoint "
  1108 00001870 20627265616B706F69-
  1108 00001879 6E7420             
  1109 0000187C 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 0000187F 204720627265616B70-     .cant_bp_type_gg:		asciz " G breakpoint"
  1114 00001888 6F696E7400         
  1115 0000188D 20286C696E65617220      .cant_bp_linear:		db    " (linear "
  1116 00001896 2D2D2D2D5F              .cant_bp_linear.address1:	db    "----_"
  1117 0000189B 2D2D2D2D292000          .cant_bp_linear.address2:	asciz "----) "
  1118 000018A2 63616E6E6F74206265-     .cant_bp_write:			asciz "cannot be written."
  1118 000018AB 207772697474656E2E-
  1118 000018B4 00                 
  1119 000018B5 63616E6E6F74206265-     .cant_bp_restore:		db    "cannot be restored to "
  1119 000018BE 20726573746F726564-
  1119 000018C7 20746F20           
  1120 000018CB 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 000018CF 0D0A20526561736F6E-     .cant_bp_reason:		asciz 13,10," Reason: "
  1128 000018D8 3A2000             
  1129 000018DB 4E6F206572726F722E-     .cant_bp_reason0:		asciz "No error. (Internal error, report!)",13,10
  1129 000018E4 2028496E7465726E61-
  1129 000018ED 6C206572726F722C20-
  1129 000018F6 7265706F727421290D-
  1129 000018FF 0A00               
  1130 00001901 497420697320726561-     .cant_bp_reason1:		asciz "It is read-only.",13,10
  1130 0000190A 642D6F6E6C792E0D0A-
  1130 00001913 00                 
  1131 00001914 497420697320756E72-     .cant_bp_reason2:		asciz "It is unreachable.",13,10
  1131 0000191D 6561636861626C652E-
  1131 00001926 0D0A00             
  1132 00001929 497420686173206265-     .cant_bp_reason3:		db    "It has been overwritten with "
  1132 00001932 656E206F7665727772-
  1132 0000193B 697474656E20776974-
  1132 00001944 6820               
  1133 00001946 5F5F2E0D0A00            .cant_bp_reason3.value:		asciz "__.",13,10
  1134 0000194C 556E6B6E6F776E2065-     .cant_bp_reasonu:		asciz "Unknown error. (Internal error, report!)",13,10
  1134 00001955 72726F722E2028496E-
  1134 0000195E 7465726E616C206572-
  1134 00001967 726F722C207265706F-
  1134 00001970 727421290D0A00     
  1135                                  
  1136 00001977 20202000                .list_bp.first:	asciz "   "
  1137 0000197B 204720627265616B70-     .list_bp.second:db " G breakpoint, linear "
  1137 00001984 6F696E742C206C696E-
  1137 0000198D 65617220           
  1138                                  .list_bp.address1:
  1139 00001991 2D2D2D2D5F              		db "----_"
  1140                                  .list_bp.address2:
  1141 00001996 2D2D2D2D00              		asciz "----"
  1142 0000199B 2C20636F6E74656E74-     .list_bp.third:	db ", content "
  1142 000019A4 20                 
  1143                                  .list_bp.value:
  1144 000019A5 5F5F00                  		asciz "__"
  1145                                  .list_bp_not_cseip: equ crlf
  1146                                  %if _PM
  1147                                  .list_bp_cseip_32:
  1148                                  		asciz " (is at CS:EIP)",13,10
  1149                                  %endif
  1150                                  .list_bp_csip_16:
  1151 000019A8 202869732061742043-     		asciz " (is at CS:IP)",13,10
  1151 000019B1 533A4950290D0A00   
  1152                                  .list_bp_none:
  1153 000019B9 546865204720627265-     		asciz "The G breakpoint list is empty.",13,10
  1153 000019C2 616B706F696E74206C-
  1153 000019CB 69737420697320656D-
  1153 000019D4 7074792E0D0A00     
  1154                                  %if 0
  1155                                     2nd G breakpoint, linear 0003_28D3 $3600:12345678, content CC (is at CS:EIP)
  1156                                  12345678901234567890123456789012345678901234567890123456789012345678901234567890
  1157                                  %endif
  1158 000019DB 00                      .empty_message:	asciz
  1159 000019DC 4C49535400              .list:		asciz "LIST"
  1160 000019E1 414741494E00            .again:		asciz "AGAIN"
  1161                                  %if _SYMBOLIC
  1162                                  .wrt:		asciz "WRT"
  1163                                  %endif
  1164 000019E7 52656163686564206C-     .uu_too_many_repeat:	asciz "Reached limit of repeating disassembly.",13,10
  1164 000019F0 696D6974206F662072-
  1164 000019F9 6570656174696E6720-
  1164 00001A02 646973617373656D62-
  1164 00001A0B 6C792E0D0A00       
  1165 00001A11 496E7465726E616C20-     .uu_internal_error:	asciz "Internal error in disassembler!",13,10
  1165 00001A1A 6572726F7220696E20-
  1165 00001A23 646973617373656D62-
  1165 00001A2C 6C6572210D0A00     
  1166 00001A33 496E7465726E616C20-     .aa_internal_error:	asciz "Internal error in assembler!",13,10
  1166 00001A3C 6572726F7220696E20-
  1166 00001A45 617373656D626C6572-
  1166 00001A4E 210D0A00           
  1167 00001A52 537461636B206F7665-     .stack_overflow:	db "Stack overflow occurred, IP="
  1167 00001A5B 72666C6F77206F6363-
  1167 00001A64 75727265642C204950-
  1167 00001A6D 3D                 
  1168 00001A6E 5F5F5F5F682C206475-     .stack_overflow.caller:	asciz "____h, due to "
  1168 00001A77 6520746F2000       
  1169 00001A7D 65787072657373696F-     .stack_overflow.indirection:	asciz "expression indirection.",13,10
  1169 00001A86 6E20696E6469726563-
  1169 00001A8F 74696F6E2E0D0A00   
  1170 00001A97 65787072657373696F-     .stack_overflow.parens:		asciz "expression parentheses.",13,10
  1170 00001AA0 6E20706172656E7468-
  1170 00001AA9 657365732E0D0A00   
  1171 00001AB1 65787072657373696F-     .stack_overflow.precedence:	asciz "expression precedence.",13,10
  1171 00001ABA 6E2070726563656465-
  1171 00001AC3 6E63652E0D0A00     
  1172 00001ACA 65787072657373696F-     .stack_overflow.value_in:	asciz "expression VALUE x IN y.",13,10
  1172 00001AD3 6E2056414C55452078-
  1172 00001ADC 20494E20792E0D0A00 
  1173 00001AE5 65787072657373696F-     .stack_overflow.linear:		asciz "expression LINEAR.",13,10
  1173 00001AEE 6E204C494E4541522E-
  1173 00001AF7 0D0A00             
  1174                                  %if _PM
  1175                                  .stack_overflow.desctype:	asciz "expression DESCTYPE.",13,10
  1176                                  %endif
  1177 00001AFA 65787072657373696F-     .stack_overflow.cond:		asciz "expression conditional ?? x :: y.",13,10
  1177 00001B03 6E20636F6E64697469-
  1177 00001B0C 6F6E616C203F3F2078-
  1177 00001B15 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 00001B1E 496E7465726E616C20-     		asciz "Internal error, invalid use of too many memrefs!",13,10
  1206 00001B27 6572726F722C20696E-
  1206 00001B30 76616C696420757365-
  1206 00001B39 206F6620746F6F206D-
  1206 00001B42 616E79206D656D7265-
  1206 00001B4B 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 00001B51 5761726E696E673A20-     .warnprefix:	asciz "Warning: Prefixes in excess of 14, using trace flag.",13,10
  1237 00001B5A 507265666978657320-
  1237 00001B63 696E20657863657373-
  1237 00001B6C 206F662031342C2075-
  1237 00001B75 73696E672074726163-
  1237 00001B7E 6520666C61672E0D0A-
  1237 00001B87 00                 
  1238                                  
  1239                                  %if _DEBUG || _LOADER
  1240 00001B88 427265616B696E6720-     .bu:		asciz "Breaking to next instance.",13,10
  1240 00001B91 746F206E6578742069-
  1240 00001B9A 6E7374616E63652E0D-
  1240 00001BA3 0A00               
  1241                                   %if _DEBUG_COND
  1242 00001BA5 44656275676761626C-     .bu_disabled:	db "Debuggable mode is disabled.",13,10
  1242 00001BAE 65206D6F6465206973-
  1242 00001BB7 2064697361626C6564-
  1242 00001BC0 2E0D0A             
  1243 00001BC3 456E61626C65207769-     		asciz "Enable with this command: r DCO6 or= ",_4digitshex(opt6_debug_mode),13,10
  1243 00001BCC 746820746869732063-
  1243 00001BD5 6F6D6D616E643A2072-
  1243 00001BDE 2044434F36206F723D-
  1243 00001BE7 20303130300D0A00   
  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                                  .bu_relocated:	db "Inter-segment calls work. Sign="
  1250                                  .bu_relocated.sign:
  1251                                  		asciz "----h.",13,10
  1252                                  %endif
  1253                                  %if _DT
  1254 00001BEF 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 00001BF0 44656320486578      <1>  db "Dec Hex"
  1267                              <1>  %assign ITERATION ITERATION + 1
  1258                              <1>  %if ITERATION == 0
  1259                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1260 00001BF7 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 00001BFB 44656320486578      <1>  db "Dec Hex"
  1267                              <1>  %assign ITERATION ITERATION + 1
  1258                              <1>  %if ITERATION == 0
  1259                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1260 00001C02 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 00001C06 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 00001C0D 20<rep 2h>          <1>  times 2 db 32
  1263                              <1>  %else
  1264                              <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001C0F 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 00001C16 20<rep 2h>          <1>  times 2 db 32
  1263                              <1>  %else
  1264                              <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001C18 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 00001C1F 20<rep 2h>          <1>  times 2 db 32
  1263                              <1>  %else
  1264                              <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001C21 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 00001C28 20<rep 3h>          <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001C2B 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 00001C32 20<rep 3h>          <1>  times 3 db 32
  1265                              <1>  %endif
  1266 00001C35 44656320486578      <1>  db "Dec Hex"
  1267                              <1>  %assign ITERATION ITERATION + 1
  1269 00001C3C 0D0A                    		db 13,10
  1270                                  .tableheader.end:
  1271 00001C3E 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 00001C3F 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001C46 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001C49 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001C50 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001C53 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001C5A 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001C5D 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001C64 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001C67 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001C6E 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001C71 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001C78 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001C7B 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1275                              <1>  %if ITERATION == 0
  1276                              <1>  %else
  1277 00001C82 20<rep 3h>          <1>  times 3 db 32
  1278                              <1>  %endif
  1279 00001C85 44656320486578      <1>  db "Dec Hex"
  1280                              <1>  %assign ITERATION ITERATION + 1
  1282 00001C8C 0D0A                    		db 13,10
  1283                                  .tableheadertop.end:
  1284                                  %endif
  1285                                  %if _PM
  1286                                  .ofs32:		asciz "Cannot access 16-bit segment with 32-bit offset.",13,10
  1287                                  .d.a_success:	db "Allocated descriptor with selector "
  1288                                  .d.a_success_sel:
  1289                                  		asciz "----",13,10
  1290                                  .d.d_success:	asciz "Deallocated descriptor",13,10
  1291                                  .d.b_success:	asciz "Set descriptor base",13,10
  1292                                  .d.l_success:	asciz "Set descriptor limit",13,10
  1293                                  .d.t_success:	asciz "Set descriptor type",13,10
  1294                                  .d.a_error:	db "Error "
  1295                                  .d.a_error_code:
  1296                                  		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 00001C8E 456E64206F66206368- <1> .invmcbadr:	asciz "End of chain: invalid MCB address.",13,10
    15 00001C97 61696E3A20696E7661- <1>
    15 00001CA0 6C6964204D43422061- <1>
    15 00001CA9 6464726573732E0D0A- <1>
    15 00001CB2 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 00001CB3 00                  <1> 	align 4, db 0
    40                              <1> smcbtypes:
    41 00001CB4 0000[2D23]          <1> smcbtype S_OTHER,	00h
    42 00001CB8 0100[3523]          <1> smcbtype S_DOSENTRY,	01h
    43 00001CBC 0200[4023]          <1> smcbtype S_DOSCODE,	02h
    44 00001CC0 0300[4A23]          <1> smcbtype S_DOSDATA,	03h
    45 00001CC4 0400[5423]          <1> smcbtype S_IRQSCODE,	04h
    46 00001CC8 0500[5F23]          <1> smcbtype S_IRQSDATA,	05h
    47 00001CCC 0600[6A23]          <1> smcbtype S_CDS,		06h
    48 00001CD0 0700[7023]          <1> smcbtype S_LFNCDS,	07h
    49 00001CD4 0800[7923]          <1> smcbtype S_DPB,		08h
    50 00001CD8 0900[7F23]          <1> smcbtype S_UPB,		09h
    51 00001CDC 0A00[8523]          <1> smcbtype S_SFT,		0Ah
    52 00001CE0 0B00[8B23]          <1> smcbtype S_FCBSFT,	0Bh
    53 00001CE4 0C00[9423]          <1> smcbtype S_CCB,		0Ch
    54 00001CE8 0D00[9A23]          <1> smcbtype S_IRT,		0Dh
    55 00001CEC 0E00[A023]          <1> smcbtype S_SECTOR,	0Eh
    56 00001CF0 0F00[A923]          <1> smcbtype S_NLS,		0Fh
    57 00001CF4 1000[AF23]          <1> smcbtype S_EBDA,	10h
    58 00001CF8 1600[B623]          <1> smcbtype S_INITFCBSFT,	16h
    59 00001CFC 1700[C323]          <1> smcbtype S_INITSTACK,	17h
    60 00001D00 1800[CF23]          <1> smcbtype S_INITCDS,	18h
    61 00001D04 1900[D923]          <1> smcbtype S_INITCONFIG,	19h
    62 00001D08 1A00[E623]          <1> smcbtype S_INITFATSEG,	1Ah
    63 00001D0C 1B00[F323]          <1> smcbtype S_INITSECTORSEG,	1Bh
    64 00001D10 1C00[0324]          <1> smcbtype S_INITSTACKBPB,1Ch
    65 00001D14 1D00[1224]          <1> smcbtype S_INITPSP,	1Dh
    66 00001D18 1E00[1C24]          <1> smcbtype S_ENVIRONMENT,	1Eh
    67 00001D1C 1F00[2A24]          <1> smcbtype S_INITIALISE,	1Fh
    68 00001D20 2000[3724]          <1> smcbtype S_DEVICE,	20h					; Device
    69 00001D24 2100[4024]          <1> smcbtype S_DEVICEMEMORY,21h					; Allocated by device
    70 00001D28 3000[4F24]          <1> smcbtype S_EXCLDUMA,	30h					; Excluded UMA
    71 00001D2C 3100[5A24]          <1> smcbtype S_EXCLDUMASUB,	31h					; Excluded UMA with sub-chain of used MCBs
    72 00001D30 3200[6824]          <1> smcbtype S_EXCLDLH,	32h					; Excluded by LH
    73 00001D34 3300[7224]          <1> smcbtype S_EXCLDDOS,	33h
    74 00001D38 3400[7D24]          <1> smcbtype S_EXCLDALTAH,	34h
    75 00001D3C 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                                  installflag options4, opt4_int_2F_hook,,, 	"Interrupt 2Fh DPMI hook", "INT2F", "DPMIHOOK"
  1382                                  %endif
  1383                                  %if _CATCHINTFAULTCOND && (_CATCHINT0D || _CATCHINT0C)
  1384 00001D40 [9F1F][841F][0000]-     installflag options4, opt4_int_fault_hook,,, 	"R86M fault interrupts hook", "FAULTS", "FAULT", "INTFAULTS", "INTFAULT"
  1384 00001D46 1000[0000]0000-    
  1384 00001D4C [A61F][841F][0000]-
  1384 00001D52 1000[0000]0000-    
  1384 00001D58 [AC1F][841F][0000]-
  1384 00001D5E 1000[0000]0000-    
  1384 00001D64 [B61F][841F][0000]-
  1384 00001D6A 1000[0000]0000     
  1386                                  %endif
  1387                                  %if _CATCHINT08
  1388 00001D70 [D61F][BF1F][0000]-     installflag options4, opt4_int_08_hook,,, 	"Interrupt 8 timer hook", "INT08", "INT8", "TIMER"
  1388 00001D76 0400[0000]0000-    
  1388 00001D7C [DC1F][BF1F][0000]-
  1388 00001D82 0400[0000]0000-    
  1388 00001D88 [E11F][BF1F][0000]-
  1388 00001D8E 0400[0000]0000     
  1390                                  %endif
  1391                                  %if _CATCHINT2D
  1392 00001D94 [FF1F][E71F][0000]-     installflag options4, opt4_int_2D_hook,,, 	"Interrupt 2Dh AMIS hook", "INT2D", "AMIS"
  1392 00001D9A 0800[0000]0000-    
  1392 00001DA0 [0520][E71F][0000]-
  1392 00001DA6 0800[0000]0000     
  1394                                  %endif
  1395                                  %if _AREAS && _AREAS_HOOK_CLIENT
  1396                                  installflag 0, install_areas,,, 	"Areas", "AREAS"
  1398                                  %endif
  1399 00001DAC [1520][0A20][0000]-     installflag options, enable_serial, dmycmd,, 	"Serial I/O", "SERIAL"
  1399 00001DB2 0040[0000]0000     
  1401 00001DB8 [2D20][1C20][0000]-     installflag options, fakeindos, dmycmd,, 	"Force InDOS mode", "INDOS"
  1401 00001DBE 0800[0000]0000     
  1403 00001DC4 [4920][3320][0000]-     installflag options, opt_usegetinput, dmycmd,, 	"Use DOS getinput mode", "GETINPUT"
  1403 00001DCA 0008[0000]0000     
  1405 00001DD0 [7120][5220][0200]-     installflag options3, opt3_r_highlight_full, dmycmd,, 	"R register change highlighting", "RHIGHLIGHT"
  1405 00001DD6 0400[0000]0000     
  1407 00001DDC [8720][7C20][0200]-     installflag options3, ~ opt3_disable_autorepeat, dmycmd,, 	"Autorepeat", "AUTOREPEAT"
  1407 00001DE2 FFEF[0000]0000     
  1409 00001DE8 [9920][9220][0000]-     installflag options, ~ nonpagingdevice, dmycmd,, 	"Paging", "PAGING"
  1409 00001DEE EFFF[0000]0000     
  1411 00001DF4 [B020][A020][0000]-     installflag options6, opt6_bios_output, dmycmd,, 	"ROM-BIOS output", "BIOSOUT", "BIOSOUTPUT", "INT10OUT", "INT10OUTPUT"
  1411 00001DFA 0002[0000]0000-    
  1411 00001E00 [B820][A020][0000]-
  1411 00001E06 0002[0000]0000-    
  1411 00001E0C [C320][A020][0000]-
  1411 00001E12 0002[0000]0000-    
  1411 00001E18 [CC20][A020][0000]-
  1411 00001E1E 0002[0000]0000     
  1413 00001E24 [EE20][D820][0000]-     installflag options6, opt6_flat_binary, dmycmd,, 	"Flat binary read mode", "FLAT", "FLATBIN", 	"FLATBINARY", "FSWITCH"
  1413 00001E2A 0004[0000]0000-    
  1413 00001E30 [F320][D820][0000]-
  1413 00001E36 0004[0000]0000-    
  1413 00001E3C [FB20][D820][0000]-
  1413 00001E42 0004[0000]0000-    
  1413 00001E48 [0621][D820][0000]-
  1413 00001E4E 0004[0000]0000     
  1416 00001E54 [2421][0E21][0000]-     installflag options6, opt6_big_stack, dmycmd,, 	".BIG style stack mode", "BIG", "BIGSTACK", "ESWITCH"
  1416 00001E5A 0008[0000]0000-    
  1416 00001E60 [2821][0E21][0000]-
  1416 00001E66 0008[0000]0000-    
  1416 00001E6C [3121][0E21][0000]-
  1416 00001E72 0008[0000]0000     
  1418                                  %if _RH
  1419 00001E78 [4F21][3921][0200]-     installflag options6, opt6_rh_mode, dmycmd,, 	"Register dump history", "RH", "RHISTORY", "REGHISTORY"
  1419 00001E7E 1000[0000]0000-    
  1419 00001E84 [5221][3921][0200]-
  1419 00001E8A 1000[0000]0000-    
  1419 00001E90 [5B21][3921][0200]-
  1419 00001E96 1000[0000]0000     
  1421                                  %endif
  1422                                  %if _DEBUG && _DEBUG_COND
  1423 00001E9C [7621][6621][0000]-     installflag options6, opt6_debug_mode,,, 	"Debuggable mode", "DEBUG"
  1423 00001EA2 0001[0000]0000     
  1425                                  %endif
  1426 00001EA8 [9421][7C21][0000]-     installflag options3, opt3_paging_rc, dmycmd,, 	"Paging RC commands mode", "PAGINGRC"
  1426 00001EAE 0010[0000]0000     
  1428 00001EB4 [B521][9D21][0000]-     installflag options3, opt3_paging_re, dmycmd,, 	"Paging RE commands mode", "PAGINGRE"
  1428 00001EBA 0040[0000]0000     
  1430 00001EC0 [DC21][BE21][0000]-     installflag options3, opt3_paging_yy, dmycmd,, 	"Paging Script for lDebug mode", "PAGINGY", "PAGINGYY", "PAGINGSCRIPT"
  1430 00001EC6 0020[0000]0000-    
  1430 00001ECC [E421][BE21][0000]-
  1430 00001ED2 0020[0000]0000-    
  1430 00001ED8 [ED21][BE21][0000]-
  1430 00001EDE 0020[0000]0000     
  1432                                  %ifn _ONLYNON386
  1433 00001EE4 [1122][FA21][0000]-     installflag options, dispregs32, dmycmd,, 	"386 register dump mode", "RX", "REGS386", "REGS32"
  1433 00001EEA 0100[0000]0000-    
  1433 00001EF0 [1422][FA21][0000]-
  1433 00001EF6 0100[0000]0000-    
  1433 00001EFC [1C22][FA21][0000]-
  1433 00001F02 0100[0000]0000     
  1435                                  %endif
  1436 00001F08 [3922][2322][0000]-     installflag options, traceints, dmycmd,, 	"Trace interrupts Mode", "TM", "TRACEINTS", "TRACEINTERRUPTS"
  1436 00001F0E 0200[0000]0000-    
  1436 00001F14 [3C22][2322][0000]-
  1436 00001F1A 0200[0000]0000-    
  1436 00001F20 [4622][2322][0000]-
  1436 00001F26 0200[0000]0000     
  1438 00001F2C [6322][5622][0000]-     installflag options7, opt7_houdini, dmycmd,, 	"Houdini Mode", "HOUDINI"
  1438 00001F32 0001[0000]0000     
  1440 00001F38 [8522][6B22][0000]-     installflag options7, opt7_no_free_oneshot_eld, dmycmd,, 	"No free oneshot ELDs mode", "NOFREEONESHOT"
  1440 00001F3E 0100[0000]0000     
  1442 00001F44 [A522][9322][0000]-     installflag options7, opt7_quiet_install, dmycmd,, 	"Quiet ELD install", "QUIETINSTALL"
  1442 00001F4A 0400[0000]0000     
  1444 00001F50 [CF22][B222][0000]-     installflag options7, opt7_debug_optional_link, dmycmd,, 	"Debug ELD optional link mode", "DEBUGOPTLINK"
  1444 00001F56 0200[0000]0000     
  1446 00001F5C [EA22][DC22][0000]-     installflag options7, opt7_quick_run, dmycmd,, 	"Quick ELD run", "QUICKRUN"
  1446 00001F62 0800[0000]0000     
  1448 00001F68 [0123][F322][0000]-     installflag options7, opt7_debug_run, dmycmd,, 	"Debug ELD run", "DEBUGRUN"
  1448 00001F6E 0002[0000]0000     
  1450 00001F74 [2423][0A23][0000]-     installflag options7, opt7_no_ensure, dmycmd,, 	"No ensure debuggee loaded", "NOENSURE"
  1450 00001F7A 0010[0000]0000     
  1452 00001F80 00000000                	dw 0, 0
  1453                                  
  1454 00001F84 5238364D206661756C-     installmessages INSTALLMESSAGES
  1454 00001F8D 7420696E7465727275-
  1454 00001F96 70747320686F6F6B00-
  1454 00001F9F 4641554C5453004641-
  1454 00001FA8 554C5400494E544641-
  1454 00001FB1 554C545300494E5446-
  1454 00001FBA 41554C5400496E7465-
  1454 00001FC3 727275707420382074-
  1454 00001FCC 696D657220686F6F6B-
  1454 00001FD5 00494E54303800494E-
  1454 00001FDE 54380054494D455200-
  1454 00001FE7 496E74657272757074-
  1454 00001FF0 2032446820414D4953-
  1454 00001FF9 20686F6F6B00494E54-
  1454 00002002 324400414D49530053-
  1454 0000200B 657269616C20492F4F-
  1454 00002014 0053455249414C0046-
  1454 0000201D 6F72636520496E444F-
  1454 00002026 53206D6F646500494E-
  1454 0000202F 444F53005573652044-
  1454 00002038 4F5320676574696E70-
  1454 00002041 7574206D6F64650047-
  1454 0000204A 4554494E5055540052-
  1454 00002053 207265676973746572-
  1454 0000205C 206368616E67652068-
  1454 00002065 6967686C6967687469-
  1454 0000206E 6E670052484947484C-
  1454 00002077 49474854004175746F-
  1454 00002080 726570656174004155-
  1454 00002089 544F52455045415400-
  1454 00002092 506167696E67005041-
  1454 0000209B 47494E4700524F4D2D-
  1454 000020A4 42494F53206F757470-
  1454 000020AD 75740042494F534F55-
  1454 000020B6 540042494F534F5554-
  1454 000020BF 50555400494E543130-
  1454 000020C8 4F555400494E543130-
  1454 000020D1 4F555450555400466C-
  1454 000020DA 61742062696E617279-
  1454 000020E3 2072656164206D6F64-
  1454 000020EC 6500464C415400464C-
  1454 000020F5 415442494E00464C41-
  1454 000020FE 5442494E4152590046-
  1454 00002107 535749544348002E42-
  1454 00002110 4947207374796C6520-
  1454 00002119 737461636B206D6F64-
  1454 00002122 650042494700424947-
  1454 0000212B 535441434B00455357-
  1454 00002134 495443480052656769-
  1454 0000213D 737465722064756D70-
  1454 00002146 20686973746F727900-
  1454 0000214F 52480052484953544F-
  1454 00002158 525900524547484953-
  1454 00002161 544F52590044656275-
  1454 0000216A 676761626C65206D6F-
  1454 00002173 646500444542554700-
  1454 0000217C 506167696E67205243-
  1454 00002185 20636F6D6D616E6473-
  1454 0000218E 206D6F646500504147-
  1454 00002197 494E47524300506167-
  1454 000021A0 696E6720524520636F-
  1454 000021A9 6D6D616E6473206D6F-
  1454 000021B2 646500504147494E47-
  1454 000021BB 524500506167696E67-
  1454 000021C4 205363726970742066-
  1454 000021CD 6F72206C4465627567-
  1454 000021D6 206D6F646500504147-
  1454 000021DF 494E47590050414749-
  1454 000021E8 4E4759590050414749-
  1454 000021F1 4E4753435249505400-
  1454 000021FA 333836207265676973-
  1454 00002203 7465722064756D7020-
  1454 0000220C 6D6F64650052580052-
  1454 00002215 454753333836005245-
  1454 0000221E 475333320054726163-
  1454 00002227 6520696E7465727275-
  1454 00002230 707473204D6F646500-
  1454 00002239 544D00545241434549-
  1454 00002242 4E5453005452414345-
  1454 0000224B 494E54455252555054-
  1454 00002254 5300486F7564696E69-
  1454 0000225D 204D6F646500484F55-
  1454 00002266 44494E49004E6F2066-
  1454 0000226F 726565206F6E657368-
  1454 00002278 6F7420454C4473206D-
  1454 00002281 6F6465004E4F465245-
  1454 0000228A 454F4E4553484F5400-
  1454 00002293 517569657420454C44-
  1454 0000229C 20696E7374616C6C00-
  1454 000022A5 5155494554494E5354-
  1454 000022AE 414C4C004465627567-
  1454 000022B7 20454C44206F707469-
  1454 000022C0 6F6E616C206C696E6B-
  1454 000022C9 206D6F646500444542-
  1454 000022D2 55474F50544C494E4B-
  1454 000022DB 00517569636B20454C-
  1454 000022E4 442072756E00515549-
  1454 000022ED 434B52554E00446562-
  1454 000022F6 756720454C44207275-
  1454 000022FF 6E0044454255475255-
  1454 00002308 4E004E6F20656E7375-
  1454 00002311 726520646562756767-
  1454 0000231A 6565206C6F61646564-
  1454 00002323 004E4F454E53555245-
  1454 0000232C 00                 
  1455                                  
  1456                                  
  1457                                  %if _MCB
  1458 0000232D 535F4F544845520053-     smcbmsg smcb_messages
  1458 00002336 5F444F53454E545259-
  1458 0000233F 00535F444F53434F44-
  1458 00002348 4500535F444F534441-
  1458 00002351 544100535F49525153-
  1458 0000235A 434F444500535F4952-
  1458 00002363 51534441544100535F-
  1458 0000236C 43445300535F4C464E-
  1458 00002375 43445300535F445042-
  1458 0000237E 00535F55504200535F-
  1458 00002387 53465400535F464342-
  1458 00002390 53465400535F434342-
  1458 00002399 00535F49525400535F-
  1458 000023A2 534543544F5200535F-
  1458 000023AB 4E4C5300535F454244-
  1458 000023B4 4100535F494E495446-
  1458 000023BD 434253465400535F49-
  1458 000023C6 4E4954535441434B00-
  1458 000023CF 535F494E4954434453-
  1458 000023D8 00535F494E4954434F-
  1458 000023E1 4E46494700535F494E-
  1458 000023EA 495446415453454700-
  1458 000023F3 535F494E4954534543-
  1458 000023FC 544F5253454700535F-
  1458 00002405 494E4954535441434B-
  1458 0000240E 42504200535F494E49-
  1458 00002417 5450535000535F454E-
  1458 00002420 5649524F4E4D454E54-
  1458 00002429 00535F494E49544941-
  1458 00002432 4C49534500535F4445-
  1458 0000243B 5649434500535F4445-
  1458 00002444 564943454D454D4F52-
  1458 0000244D 5900535F4558434C44-
  1458 00002456 554D4100535F455843-
  1458 0000245F 4C44554D4153554200-
  1458 00002468 535F4558434C444C48-
  1458 00002471 00535F4558434C4444-
  1458 0000247A 4F5300535F4558434C-
  1458 00002483 44414C54414800     
  1459                                  
  1460 0000248A 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 00002492 5E204572726F7207        errcarat:	db "^ Error",7
  1469 0000249A 0D0A00                  crlf:		asciz 13,10
  1470                                  
  1471                                  %if _SYMBOLIC
  1472                                  pre_str_list:
  1473                                  	db -1, "", 0
  1474                                  .end:
  1475                                  %endif
  1476                                  
  1477                                  
  1478 0000249D 00<rep 3h>              	align 4, db 0
  1479                                  msgtable_value_range:
  1480 000024A0 [270F][310F]            	dw msg.executing, msg.executing_value_range
  1481                                  %if _ACCESS_VARIABLES_AMOUNT
  1482 000024A4 [B624][BE24]            	dw .reading, .reading_range
  1483 000024A8 [3925][4125]            	dw .writing, .writing_range
  1484 000024AC [BC25][C725]            	dw .memoperand, .memoperand_range
  1485 000024B0 [D825][E225]            	dw .accessing, .accessing_range
  1486                                  %endif
  1487 000024B4 0000                    	dw 0
  1488                                  
  1489                                  %if _ACCESS_VARIABLES_AMOUNT
  1490 000024B6 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 000024BE 46524F4D2072656164- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1496 000024C7 61647230204C454E47- <1>
  1496 000024D0 544820726561646C65- <1>
  1496 000024D9 6E30                <1>
  1497                              <1>  %assign iicounter iicounter + 1
  1498                              <1>  %define iiprefix ", "
  1495                              <1>  _autohexitsstrdef IIDEF, iicounter
  1496 000024DB 2C2046524F4D207265- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1496 000024E4 616461647231204C45- <1>
  1496 000024ED 4E4754482072656164- <1>
  1496 000024F6 6C656E31            <1>
  1497                              <1>  %assign iicounter iicounter + 1
  1498                              <1>  %define iiprefix ", "
  1495                              <1>  _autohexitsstrdef IIDEF, iicounter
  1496 000024FA 2C2046524F4D207265- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1496 00002503 616461647232204C45- <1>
  1496 0000250C 4E4754482072656164- <1>
  1496 00002515 6C656E32            <1>
  1497                              <1>  %assign iicounter iicounter + 1
  1498                              <1>  %define iiprefix ", "
  1495                              <1>  _autohexitsstrdef IIDEF, iicounter
  1496 00002519 2C2046524F4D207265- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1496 00002522 616461647233204C45- <1>
  1496 0000252B 4E4754482072656164- <1>
  1496 00002534 6C656E33            <1>
  1497                              <1>  %assign iicounter iicounter + 1
  1498                              <1>  %define iiprefix ", "
  1500 00002538 00                      			asciz
  1501 00002539 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 00002541 46524F4D2077726974- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1507 0000254A 61647230204C454E47- <1>
  1507 00002553 544820777269746C65- <1>
  1507 0000255C 6E30                <1>
  1508                              <1>  %assign iicounter iicounter + 1
  1509                              <1>  %define iiprefix ", "
  1506                              <1>  _autohexitsstrdef IIDEF, iicounter
  1507 0000255E 2C2046524F4D207772- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1507 00002567 697461647231204C45- <1>
  1507 00002570 4E4754482077726974- <1>
  1507 00002579 6C656E31            <1>
  1508                              <1>  %assign iicounter iicounter + 1
  1509                              <1>  %define iiprefix ", "
  1506                              <1>  _autohexitsstrdef IIDEF, iicounter
  1507 0000257D 2C2046524F4D207772- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1507 00002586 697461647232204C45- <1>
  1507 0000258F 4E4754482077726974- <1>
  1507 00002598 6C656E32            <1>
  1508                              <1>  %assign iicounter iicounter + 1
  1509                              <1>  %define iiprefix ", "
  1506                              <1>  _autohexitsstrdef IIDEF, iicounter
  1507 0000259C 2C2046524F4D207772- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1507 000025A5 697461647233204C45- <1>
  1507 000025AE 4E4754482077726974- <1>
  1507 000025B7 6C656E33            <1>
  1508                              <1>  %assign iicounter iicounter + 1
  1509                              <1>  %define iiprefix ", "
  1511 000025BB 00                      			asciz
  1512                                  
  1513 000025BC 4D454D4F504552414E-     .memoperand:		asciz "MEMOPERAND"
  1513 000025C5 4400               
  1514 000025C7 52454144494E472C20-     .memoperand_range:	asciz "READING, WRITING"
  1514 000025D0 57524954494E4700   
  1515 000025D8 414343455353494E47-     .accessing:		asciz "ACCESSING"
  1515 000025E1 00                 
  1516 000025E2 52454144494E472C20-     .accessing_range:	asciz "READING, WRITING, EXECUTING"
  1516 000025EB 57524954494E472C20-
  1516 000025F4 455845435554494E47-
  1516 000025FD 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 000025FE 00<rep 2h>              	align 4, db 0
  1543                                  loadoptiontable:
  1544 00002600 0100[6C26]              	lot_entry    1, SET_DL_UNIT
  1545 00002604 0200[7826]              	lot_entry    2, SET_BL_UNIT
  1546 00002608 0400[8426]              	lot_entry    4, SET_SIDI_CLUSTER
  1547 0000260C 1000[9526]              	lot_entry  10h, SET_DSSI_DPT
  1548 00002610 2000[A226]              	lot_entry  20h, PUSH_DPT
  1549 00002614 4000[AB26]              	lot_entry  40h, DATASTART_HIDDEN
  1550 00002618 8000[BC26]              	lot_entry  80h, SET_AXBX_DATASTART
  1551 0000261C 0001[CF26]              	lot_entry 100h, SET_DSBP_BPB
  1552 00002620 0002[DC26]              	lot_entry 200h, LBA_SET_TYPE
  1553 00002624 0004[E926]              	lot_entry 400h, MESSAGE_TABLE
  1554 00002628 0008[F726]              	lot_entry 800h, SET_AXBX_ROOT_HIDDEN
  1555 0000262C 0010[0C27]              	lot_entry 1000h, CMDLINE
  1556 00002630 0020[1427]              	lot_entry 2000h, NO_BPB
  1557 00002634 0040[1B27]              	lot_entry 4000h, SET_DSSI_PARTINFO
  1558 00002638 00000000                	dw 0, 0
  1559                                  
  1560                                  .incompatible:
  1561 0000263C 02008000                	dw LOAD_SET_BL_UNIT, LOAD_SET_AXBX_DATASTART
  1562 00002640 02000008                	dw LOAD_SET_BL_UNIT, LOAD_SET_AXBX_ROOT_HIDDEN
  1563 00002644 80000008                	dw LOAD_SET_AXBX_DATASTART, LOAD_SET_AXBX_ROOT_HIDDEN
  1564 00002648 04001000                	dw LOAD_SET_SIDI_CLUSTER, LOAD_SET_DSSI_DPT
  1565 0000264C 00011000                	dw LOAD_SET_DSBP_BPB, LOAD_SET_DSSI_DPT
  1566 00002650 00200001                	dw LOAD_NO_BPB, LOAD_SET_DSBP_BPB
  1567 00002654 00200002                	dw LOAD_NO_BPB, LOAD_LBA_SET_TYPE
  1568 00002658 00200004                	dw LOAD_NO_BPB, LOAD_MESSAGE_TABLE
  1569 0000265C 00400400                	dw LOAD_SET_DSSI_PARTINFO, LOAD_SET_SIDI_CLUSTER
  1570 00002660 00401000                	dw LOAD_SET_DSSI_PARTINFO, LOAD_SET_DSSI_DPT
  1571 00002664 00400001                	dw LOAD_SET_DSSI_PARTINFO, LOAD_SET_DSBP_BPB
  1572 00002668 00000000                	dw 0, 0
  1573                                  
  1574 0000266C 5345545F444C5F554E-     lot_messages lot_list
  1574 00002675 4954005345545F424C-
  1574 0000267E 5F554E495400534554-
  1574 00002687 5F534944495F434C55-
  1574 00002690 53544552005345545F-
  1574 00002699 445353495F44505400-
  1574 000026A2 505553485F44505400-
  1574 000026AB 444154415354415254-
  1574 000026B4 5F48494444454E0053-
  1574 000026BD 45545F415842585F44-
  1574 000026C6 415441535441525400-
  1574 000026CF 5345545F445342505F-
  1574 000026D8 425042004C42415F53-
  1574 000026E1 45545F54595045004D-
  1574 000026EA 4553534147455F5441-
  1574 000026F3 424C45005345545F41-
  1574 000026FC 5842585F524F4F545F-
  1574 00002705 48494444454E00434D-
  1574 0000270E 444C494E45004E4F5F-
  1574 00002717 425042005345545F44-
  1574 00002720 5353495F5041525449-
  1574 00002729 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 0000272D 03                      .:	db .msg_invalid_system - ($ + 1)
  1597 0000272E 13                      	db .msg_io_error - ($ + 1)
  1598 0000272F 01                      	db .msg_invalid_system - ($ + 1)
  1599 00002730 1D                      	db .msg_press_any_key - ($ + 1)
  1600                                  
  1601                                  .msg_invalid_system:
  1602 00002731 0D0A496E76616C6964-     	db 13,10,"Invalid system", -1
  1602 0000273A 2073797374656DFF   
  1603                                  
  1604                                  .msg_io_error:
  1605 00002742 0D0A492F4F20657272-     	db 13,10,"I/O error", -1
  1605 0000274B 6F72FF             
  1606                                  
  1607                                  .msg_press_any_key:
  1608 0000274E 0D0A4368616E676520-     	db 13,10,"Change disk and press any key",13,10,0
  1608 00002757 6469736B20616E6420-
  1608 00002760 707265737320616E79-
  1608 00002769 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 00002770 [E007]                  at lsKernelName,	dw msg.ldos_kernel_name
  1622 00002772 [5608]                  at lsAddName,		dw msg.addname_empty
  1623 00002774 6000                    at lsMinPara,		dw 60h
  1624 00002776 0000                    at lsMaxPara,		dw 0
  1625 00002778 0010                    at lsOptions,		dw LOAD_CMDLINE
  1626 0000277A 0002                    at lsSegment,		dw 200h
  1627 0000277C 00040000                at lsEntry,		dd 400h
  1628 00002780 007CFFFF                at lsBPB,		dw 7C00h, -1
  1629 00002784 FC03                    at lsCheckOffset,	dw 1020
  1630 00002786 6C44                    at lsCheckValue,	db "lD"
  1631 00002788 4C444F5300              at lsName,		asciz "LDOS"
  1632 0000278D 00<rep 3h>              	iend
  1633                                  	istruc LOADSETTINGS
  1634 00002790 [C307]                  at lsKernelName,	dw msg.freedos_kernel_name
  1635 00002792 [5608]                  at lsAddName,		dw msg.addname_empty
  1636 00002794 2000                    at lsMinPara,		dw 20h
  1637 00002796 FFFF                    at lsMaxPara,		dw -1
  1638 00002798 0300                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_BL_UNIT
  1639 0000279A 6000                    at lsSegment,		dw 60h
  1640 0000279C 00000000                at lsEntry,		dd 0
  1641 000027A0 007CFFFF                at lsBPB,		dw 7C00h, -1
  1642 000027A4 00<rep 4h>46524545-     at lsName,		asciz "FREEDOS"
  1642 000027AC 444F5300           
  1643                                  	iend
  1644                                  	istruc LOADSETTINGS
  1645 000027B0 [CE07]                  at lsKernelName,	dw msg.dosc_kernel_name
  1646 000027B2 [5608]                  at lsAddName,		dw msg.addname_empty
  1647 000027B4 2000                    at lsMinPara,		dw 20h
  1648 000027B6 FFFF                    at lsMaxPara,		dw -1
  1649 000027B8 0300                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_BL_UNIT
  1650 000027BA 0020                    at lsSegment,		dw 2000h
  1651 000027BC 00000000                at lsEntry,		dd 0
  1652 000027C0 007C0000                at lsBPB,		dw 7C00h, 0
  1653 000027C4 00<rep 4h>444F5343-     at lsName,		asciz "DOSC"
  1653 000027CC 00                 
  1654 000027CD 00<rep 3h>              	iend
  1655                                  	istruc LOADSETTINGS
  1656 000027D0 [D607]                  at lsKernelName,	dw msg.edrdos_kernel_name
  1657 000027D2 [5608]                  at lsAddName,		dw msg.addname_empty
  1658 000027D4 2000                    at lsMinPara,		dw 20h
  1659 000027D6 FFFF                    at lsMaxPara,		dw -1
  1660 000027D8 0301                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_BL_UNIT 			 | LOAD_SET_DSBP_BPB
  1662 000027DA 7000                    at lsSegment,		dw 70h
  1663 000027DC 00000000                at lsEntry,		dd 0
  1664 000027E0 007CFFFF                at lsBPB,		dw 7C00h, -1
  1665 000027E4 00<rep 4h>45445244-     at lsName,		asciz "EDRDOS"
  1665 000027EC 4F5300             
  1666 000027EF 00                      	iend
  1667                                  	istruc LOADSETTINGS
  1668 000027F0 [E907]                  at lsKernelName,	dw msg.msdos6_kernel_name
  1669 000027F2 [F007]                  at lsAddName,		dw msg.msdos6_add_name
  1670 000027F4 2000                    at lsMinPara,		dw 20h
  1671 000027F6 6000                    at lsMaxPara,		dw 60h
  1672 000027F8 F100                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_DATASTART 			 | LOAD_DATASTART_HIDDEN | LOAD_SET_DSSI_DPT 			 | LOAD_PUSH_DPT
  1675 000027FA 7000                    at lsSegment,		dw 70h
  1676 000027FC 00000000                at lsEntry,		dd 0
  1677 00002800 007C0000                at lsBPB,		dw 7C00h, 0
  1678 00002804 00<rep 4h>4D53444F-     at lsName,		asciz "MSDOS6"
  1678 0000280C 533600             
  1679 0000280F 00                      	iend
  1680                                  	istruc LOADSETTINGS
  1681 00002810 [2B08]                  at lsKernelName,	dw msg.rxdos.0_kernel_name
  1682 00002812 [4208]                  at lsAddName,		dw msg.rxdos.0_add_name
  1683 00002814 2000                    at lsMinPara,		dw 20h
  1684 00002816 6000                    at lsMaxPara,		dw 60h
  1685 00002818 3108                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_ROOT_HIDDEN 			 | LOAD_SET_DSSI_DPT | LOAD_PUSH_DPT
  1687 0000281A 7000                    at lsSegment,		dw 70h
  1688 0000281C 00000000                at lsEntry,		dd 0
  1689 00002820 007C0000                at lsBPB,		dw 7C00h, 0
  1690 00002824 00<rep 4h>5258444F-     at lsName,		asciz "RXDOS.0"
  1690 0000282C 532E3000           
  1691                                  	iend
  1692                                  	istruc LOADSETTINGS
  1693 00002830 [3808]                  at lsKernelName,	dw msg.rxdos.1_kernel_name
  1694 00002832 [4208]                  at lsAddName,		dw msg.rxdos.1_add_name
  1695 00002834 2000                    at lsMinPara,		dw 20h
  1696 00002836 6000                    at lsMaxPara,		dw 60h
  1697 00002838 3108                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_ROOT_HIDDEN 			 | LOAD_SET_DSSI_DPT | LOAD_PUSH_DPT
  1699 0000283A 7000                    at lsSegment,		dw 70h
  1700 0000283C 00000000                at lsEntry,		dd 0
  1701 00002840 007C0000                at lsBPB,		dw 7C00h, 0
  1702 00002844 00<rep 4h>5258444F-     at lsName,		asciz "RXDOS.1"
  1702 0000284C 532E3100           
  1703                                  	iend
  1704                                  	istruc LOADSETTINGS
  1705 00002850 [4C08]                  at lsKernelName,	dw msg.rxdos.2_kernel_name
  1706 00002852 [5608]                  at lsAddName,		dw msg.addname_empty
  1707 00002854 6000                    at lsMinPara,		dw 60h
  1708 00002856 0000                    at lsMaxPara,		dw 0
  1709 00002858 0010                    at lsOptions,		dw LOAD_CMDLINE
  1710 0000285A 7000                    at lsSegment,		dw 70h
  1711 0000285C 00040000                at lsEntry,		dd 400h
  1712 00002860 007CFFFF                at lsBPB,		dw 7C00h, -1
  1713 00002864 00<rep 4h>5258444F-     at lsName,		asciz "RXDOS.2"
  1713 0000286C 532E3200           
  1714                                  	iend
  1715                                  	istruc LOADSETTINGS
  1716 00002870 [4C08]                  at lsKernelName,	dw msg.rxdos.2_kernel_name
  1717 00002872 [5608]                  at lsAddName,		dw msg.addname_empty
  1718 00002874 6000                    at lsMinPara,		dw 60h
  1719 00002876 0000                    at lsMaxPara,		dw 0
  1720 00002878 0010                    at lsOptions,		dw LOAD_CMDLINE
  1721 0000287A 0002                    at lsSegment,		dw 200h
  1722 0000287C 00040000                at lsEntry,		dd 400h
  1723 00002880 007CFFFF                at lsBPB,		dw 7C00h, -1
  1724 00002884 FC03                    at lsCheckOffset,	dw 1020
  1725 00002886 6C44                    at lsCheckValue,	db "lD"
  1726 00002888 5258444F532E3300        at lsName,		asciz "RXDOS.3"
  1727                                  	iend
  1728                                  	istruc LOADSETTINGS
  1729 00002890 [FA07]                  at lsKernelName,	dw msg.ibmdos_kernel_name
  1730 00002892 [0508]                  at lsAddName,		dw msg.ibmdos_add_name
  1731 00002894 2000                    at lsMinPara,		dw 20h
  1732 00002896 8000                    at lsMaxPara,		dw 80h
  1733 00002898 F100                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_DATASTART 			 | LOAD_DATASTART_HIDDEN | LOAD_SET_DSSI_DPT 			 | LOAD_PUSH_DPT
  1736 0000289A 7000                    at lsSegment,		dw 70h
  1737 0000289C 00000000                at lsEntry,		dd 0
  1738 000028A0 007C0000                at lsBPB,		dw 7C00h, 0
  1739 000028A4 00<rep 4h>49424D44-     at lsName,		asciz "IBMDOS"
  1739 000028AC 4F5300             
  1740 000028AF 00                      	iend
  1741                                  	istruc LOADSETTINGS
  1742 000028B0 [FA07]                  at lsKernelName,	dw msg.ibmdos_kernel_name
  1743 000028B2 [0508]                  at lsAddName,		dw msg.ibmdos_add_name
  1744 000028B4 2000                    at lsMinPara,		dw 20h
  1745 000028B6 FFFF                    at lsMaxPara,		dw -1
  1746 000028B8 F100                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_DATASTART 			 | LOAD_DATASTART_HIDDEN | LOAD_SET_DSSI_DPT 			 | LOAD_PUSH_DPT
  1749 000028BA 7000                    at lsSegment,		dw 70h
  1750 000028BC 00000000                at lsEntry,		dd 0
  1751 000028C0 007C0000                at lsBPB,		dw 7C00h, 0
  1752 000028C4 00<rep 4h>4452444F-     at lsName,		asciz "DRDOS"
  1752 000028CC 5300               
  1753 000028CE 00<rep 2h>              	iend
  1754                                  	istruc LOADSETTINGS
  1755 000028D0 [E907]                  at lsKernelName,	dw msg.msdos7_kernel_name
  1756 000028D2 [5608]                  at lsAddName,		dw msg.addname_empty
  1757 000028D4 4000                    at lsMinPara,		dw 40h
  1758 000028D6 8000                    at lsMaxPara,		dw 80h
  1759 000028D8 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 000028DA 7000                    at lsSegment,		dw 70h
  1763 000028DC 00020000                at lsEntry,		dd 200h
  1764 000028E0 007CFFFF                at lsBPB,		dw 7C00h, -1
  1765 000028E4 0002                    at lsCheckOffset,	dw 200h
  1766 000028E6 424A                    at lsCheckValue,	db "BJ"
  1767 000028E8 4D53444F533700          at lsName,		asciz "MSDOS7"
  1768 000028EF 00                      	iend
  1769                                  	istruc LOADSETTINGS
  1770 000028F0 [1008]                  at lsKernelName,	dw msg.ntldr_kernel_name
  1771 000028F2 [5608]                  at lsAddName,		dw msg.addname_empty
  1772 000028F4 2000                    at lsMinPara,		dw 20h
  1773 000028F6 FFFF                    at lsMaxPara,		dw -1
  1774 000028F8 4100                    at lsOptions,		dw LOAD_SET_DL_UNIT 			 | LOAD_DATASTART_HIDDEN
  1776 000028FA 0020                    at lsSegment,		dw 2000h
  1777 000028FC 00000000                at lsEntry,		dd 0
  1778 00002900 007C0000                at lsBPB,		dw 7C00h, 0
  1779 00002904 00<rep 4h>4E544C44-     at lsName,		asciz "NTLDR"
  1779 0000290C 5200               
  1780 0000290E 00<rep 2h>              	iend
  1781                                  	istruc LOADSETTINGS
  1782 00002910 [1608]                  at lsKernelName,	dw msg.bootmgr_kernel_name
  1783 00002912 [5608]                  at lsAddName,		dw msg.addname_empty
  1784 00002914 2000                    at lsMinPara,		dw 20h
  1785 00002916 FFFF                    at lsMaxPara,		dw -1
  1786 00002918 4100                    at lsOptions,		dw LOAD_SET_DL_UNIT 			 | LOAD_DATASTART_HIDDEN
  1788 0000291A 0020                    at lsSegment,		dw 2000h
  1789 0000291C 00000000                at lsEntry,		dd 0
  1790 00002920 007C0000                at lsBPB,		dw 7C00h, 0
  1791 00002924 00<rep 4h>424F4F54-     at lsName,		asciz "BOOTMGR"
  1791 0000292C 4D475200           
  1792                                  	iend
  1793                                  	istruc LOADSETTINGS
  1794 00002930 [1E08]                  at lsKernelName,	dw msg.chain_kernel_name
  1795 00002932 [5608]                  at lsAddName,		dw msg.addname_empty
  1796 00002934 2000                    at lsMinPara,		dw paras(512)
  1797 00002936 0002                    at lsMaxPara,		dw paras(8192)
  1798 00002938 0160                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_DSSI_PARTINFO 			 | LOAD_NO_BPB
  1800 0000293A C007                    at lsSegment,		dw 7C0h
  1801 0000293C 007C40F8                at lsEntry,		dw 7C00h, -7C0h
  1802 00002940 007C0000                at lsBPB,		dw 7C00h, 0
  1803 00002944 FE01                    at lsCheckOffset,	dw 510
  1804 00002946 55AA                    at lsCheckValue,	dw 0AA55h
  1805 00002948 434841494E00            at lsName,		asciz "CHAIN"
  1806 0000294E 00<rep 2h>              	iend
  1807 00002950 0000                    			dw 0
  1808                                  %endif
  1809                                  
  1810                                  
  1811                                  %if _APPLICATION || _DEVICE
  1812 00002952 0D21                    dskerrs:	db dskerr0-dskerrs,dskerr1-dskerrs
  1813 00002954 3444                    		db dskerr2-dskerrs,dskerr3-dskerrs
  1814 00002956 5494                    		db dskerr4-dskerrs,dskerr9-dskerrs
  1815 00002958 6570                    		db dskerr6-dskerrs,dskerr7-dskerrs
  1816 0000295A 8394                    		db dskerr8-dskerrs,dskerr9-dskerrs
  1817 0000295C A2AE                    		db dskerra-dskerrs,dskerrb-dskerrs
  1818 0000295E B9                      		db dskerrc-dskerrs
  1819 0000295F 57726974652070726F-     dskerr0:	asciz "Write protect error"
  1819 00002968 74656374206572726F-
  1819 00002971 7200               
  1820 00002973 556E6B6E6F776E2075-     dskerr1:	asciz "Unknown unit error"
  1820 0000297C 6E6974206572726F72-
  1820 00002985 00                 
  1821 00002986 4472697665206E6F74-     dskerr2:	asciz "Drive not ready"
  1821 0000298F 20726561647900     
  1822 00002996 556E6B6E6F776E2063-     dskerr3:	asciz "Unknown command"
  1822 0000299F 6F6D6D616E6400     
  1823 000029A6 44617461206572726F-     dskerr4:	asciz "Data error (CRC)"
  1823 000029AF 7220284352432900   
  1824 000029B7 5365656B206572726F-     dskerr6:	asciz "Seek error"
  1824 000029C0 7200               
  1825 000029C2 556E6B6E6F776E206D-     dskerr7:	asciz "Unknown media type"
  1825 000029CB 656469612074797065-
  1825 000029D4 00                 
  1826 000029D5 536563746F72206E6F-     dskerr8:	asciz "Sector not found"
  1826 000029DE 7420666F756E6400   
  1827 000029E6 556E6B6E6F776E2065-     dskerr9:	asciz "Unknown error"
  1827 000029EF 72726F7200         
  1828 000029F4 577269746520666175-     dskerra:	asciz "Write fault"
  1828 000029FD 6C7400             
  1829 00002A00 52656164206661756C-     dskerrb:	asciz "Read fault"
  1829 00002A09 7400               
  1830 00002A0B 47656E6572616C2066-     dskerrc:	asciz "General failure"
  1830 00002A14 61696C75726500     
  1831 00002A1B 207265616400            reading:	asciz " read"
  1832 00002A21 207772697400            writing:	asciz " writ"
  1833 00002A27 696E67206472697665-     drive:		db "ing drive "
  1833 00002A30 20                 
  1834 00002A31 5F00                    driveno:	asciz "_"
  1835                                  %endif
  1836 00002A33 383038362F383800        msg8088:	asciz "8086/88"
  1837 00002A3B 78383600                msgx86:		asciz "x86"
  1838 00002A3F 20776974686F757420-     no_copr:	asciz " without coprocessor"
  1838 00002A48 636F70726F63657373-
  1838 00002A51 6F7200             
  1839 00002A54 207769746820636F70-     has_copr:	asciz " with coprocessor"
  1839 00002A5D 726F636573736F7200 
  1840 00002A66 207769746820323837-     has_287:	asciz " with 287"
  1840 00002A6F 00                 
  1841 00002A70 7472616365206D6F64-     tmodes:		db "trace mode is "
  1841 00002A79 6520697320         
  1842 00002A7E 5F202D20696E746572-     tmodev:		asciz "_ - interrupts are "
  1842 00002A87 727570747320617265-
  1842 00002A90 2000               
  1843 00002A92 74726163656400          tmode1:		asciz "traced"
  1844 00002A99 70726F636573736564-     tmode0:		asciz "processed"
  1844 00002AA2 00                 
  1845 00002AA3 2028756E7573656429-     unused:		asciz " (unused)"
  1845 00002AAC 00                 
  1846                                  needsmsg:
  1847 00002AAD 5B6E6565647320          .:		db "[needs "
  1848                                  .digit_x_ofs: equ $ - .
  1849 00002AB4 7838                    		db "x8"
  1850                                  .digit_6_ofs: equ $ - .
  1851 00002AB6 365D                    		db "6]"
  1852                                  needsmsg_L:	equ $-needsmsg
  1853 00002AB8 5B6E65656473206D61-     needsmath:	db "[needs math coprocessor]"
  1853 00002AC1 746820636F70726F63-
  1853 00002ACA 6573736F725D       
  1854                                  needsmath_L:	equ $-needsmath
  1855 00002AD0 5B6F62736F6C657465-     obsolete:	db "[obsolete]"
  1855 00002AD9 5D                 
  1856                                  obsolete_L:	equ $-obsolete
  1857 00002ADA 446976696465206572-     int0msg:	asciz "Divide error",13,10
  1857 00002AE3 726F720D0A00       
  1858 00002AE9 556E65787065637465-     int1msg:	asciz "Unexpected single-step interrupt",13,10
  1858 00002AF2 642073696E676C652D-
  1858 00002AFB 7374657020696E7465-
  1858 00002B04 72727570740D0A00   
  1859 00002B0C 556E65787065637465-     int3msg:	asciz "Unexpected breakpoint interrupt",13,10
  1859 00002B15 6420627265616B706F-
  1859 00002B1E 696E7420696E746572-
  1859 00002B27 727570740D0A00     
  1860                                  %if _CATCHINT06
  1861 00002B2E 496E76616C6964206F-     int6msg:	asciz "Invalid opcode",13,10
  1861 00002B37 70636F64650D0A00   
  1862                                  %endif
  1863                                  %if _CATCHINT08
  1864 00002B3F 446574656374656420-     int8msg:	asciz "Detected Control pressed for a while",13,10
  1864 00002B48 436F6E74726F6C2070-
  1864 00002B51 72657373656420666F-
  1864 00002B5A 722061207768696C65-
  1864 00002B63 0D0A00             
  1865 00002B66 446574656374656420-     int8_kbd_msg:	asciz "Detected Control pressed for a while (Keyboard enabled)",13,10
  1865 00002B6F 436F6E74726F6C2070-
  1865 00002B78 72657373656420666F-
  1865 00002B81 722061207768696C65-
  1865 00002B8A 20284B6579626F6172-
  1865 00002B93 6420656E61626C6564-
  1865 00002B9C 290D0A00           
  1866                                  runint_ctrlc_msg:
  1867 00002BA0 446574656374656420-     		asciz "Detected double Control-C via serial",13,10
  1867 00002BA9 646F75626C6520436F-
  1867 00002BB2 6E74726F6C2D432076-
  1867 00002BBB 69612073657269616C-
  1867 00002BC4 0D0A00             
  1868                                  %endif
  1869                                  %if _CATCHINT07
  1870                                  int7msg:	asciz "No x87 present",13,10
  1871                                  %endif
  1872                                  %if _CATCHINT0C
  1873 00002BC7 537461636B20666175-     int0Cmsg:	asciz "Stack fault (in R86M)",13,10
  1873 00002BD0 6C742028696E205238-
  1873 00002BD9 364D290D0A00       
  1874                                  %endif
  1875                                  %if _CATCHINT0D
  1876 00002BDF 47656E6572616C2070-     int0Dmsg:	asciz "General protection fault (in R86M)",13,10
  1876 00002BE8 726F74656374696F6E-
  1876 00002BF1 206661756C74202869-
  1876 00002BFA 6E205238364D290D0A-
  1876 00002C03 00                 
  1877                                  %endif
  1878                                  %if _CATCHINT18 || _LOADER
  1879 00002C04 4469736B6C65737320-     int18msg:	asciz "Diskless boot hook called",13,10
  1879 00002C0D 626F6F7420686F6F6B-
  1879 00002C16 2063616C6C65640D0A-
  1879 00002C1F 00                 
  1880                                  %endif
  1881                                  %if _CATCHINT19 || _LOADER
  1882 00002C20 426F6F74206C6F6164-     int19msg:	asciz "Boot load called",13,10
  1882 00002C29 2063616C6C65640D0A-
  1882 00002C32 00                 
  1883                                  %endif
  1884                                  %if _CATCHSYSREQ
  1885                                  sysreqmsg:	asciz "SysReq detected",13,10
  1886                                  %endif
  1887                                  %if _PM
  1888                                   %if _CATCHEXC06
  1889                                  exc6msg:	asciz "Invalid opcode fault",13,10
  1890                                   %endif
  1891                                   %if _CATCHEXC0C
  1892                                  excCmsg:	asciz "Stack fault",13,10
  1893                                   %endif
  1894                                  excDmsg:	asciz "General protection fault",13,10
  1895                                  %endif
  1896                                  %if _PM || _CATCHINT07 || _CATCHINT0C || _CATCHINT0D
  1897                                   %if _EXCCSIP
  1898 00002C33 43533A49503D            excloc:		db "CS:IP="
  1899 00002C39 202020203A20202020-     exccsip:	asciz "    :    ",13,10
  1899 00002C42 0D0A00             
  1900                                   %endif
  1901                                   %if _AREAS
  1902                                  msg.area_hh_indirection_memory_access:
  1903 00002C45 45787072657373696F-     		asciz "Expression indirection fault: "
  1903 00002C4E 6E20696E6469726563-
  1903 00002C57 74696F6E206661756C-
  1903 00002C60 743A2000           
  1904                                  msg.area_rr_variable_read_access:
  1905 00002C64 4D656D6F7279207661-     		asciz "Memory variable read access fault: "
  1905 00002C6D 726961626C65207265-
  1905 00002C76 616420616363657373-
  1905 00002C7F 206661756C743A2000 
  1906                                  msg.area_rr_variable_write_access:
  1907 00002C88 4D656D6F7279207661-     		asciz "Memory variable write access fault: "
  1907 00002C91 726961626C65207772-
  1907 00002C9A 697465206163636573-
  1907 00002CA3 73206661756C743A20-
  1907 00002CAC 00                 
  1908                                  msg.area_uu_referenced_memory_access:
  1909 00002CAD 0D0A44697361737365-     		asciz 13,10,"Disassembly referenced memory fault: "
  1909 00002CB6 6D626C792072656665-
  1909 00002CBF 72656E636564206D65-
  1909 00002CC8 6D6F7279206661756C-
  1909 00002CD1 743A2000           
  1910                                  msg.area_uu_simulate_scas:
  1911 00002CD5 446973617373656D62-     		asciz "Disassembly SCAS simulation fault: "
  1911 00002CDE 6C7920534341532073-
  1911 00002CE7 696D756C6174696F6E-
  1911 00002CF0 206661756C743A2000 
  1912                                  msg.area_uu_simulate_cmps:
  1913 00002CF9 446973617373656D62-     		asciz "Disassembly CMPS simulation fault: "
  1913 00002D02 6C7920434D50532073-
  1913 00002D0B 696D756C6174696F6E-
  1913 00002D14 206661756C743A2000 
  1914                                  msg.area_aa_access:
  1915 00002D1D 417373656D626C7920-     		asciz "Assembly fault: "
  1915 00002D26 6661756C743A2000   
  1916                                  msg.area_dd_access:
  1917 00002D2E 44756D702064617461-     		asciz "Dump data fault: "
  1917 00002D37 206661756C743A2000 
  1918                                  msg.area_ee_interactive_access:
  1919 00002D40 0D0A                    		db 13,10
  1920                                  msg.area_ee_access:
  1921 00002D42 456E74657220646174-     		asciz "Enter data fault: "
  1921 00002D4B 61206661756C743A20-
  1921 00002D54 00                 
  1922                                  msg.area_rr_access:
  1923 00002D55 526567697374657220-     		asciz "Register command fault: "
  1923 00002D5E 636F6D6D616E642066-
  1923 00002D67 61756C743A2000     
  1924                                  msg.area_sss_access:
  1925 00002D6E 53656172636820636F-     		asciz "Search command fault: "
  1925 00002D77 6D6D616E6420666175-
  1925 00002D80 6C743A2000         
  1926                                  msg.area_run_access:
  1927 00002D85 52756E20636F6D6D61-     		asciz "Run command fault: "
  1927 00002D8E 6E64206661756C743A-
  1927 00002D97 2000               
  1928                                  msg.area_uu_access:
  1929 00002D99 446973617373656D62-     		asciz "Disassembly fault: "
  1929 00002DA2 6C79206661756C743A-
  1929 00002DAB 2000               
  1930                                   %endif
  1931                                  %endif
  1932                                  %if _PM
  1933                                  excEmsg:	asciz "Page fault",13,10
  1934                                   %if _BREAK_INSTALLDPMI
  1935                                  installdpmimsg:	asciz "Entered Protected Mode",13,10
  1936                                   %endif
  1937                                  nodosext:	asciz "Command not supported in protected mode without a DOS extender",13,10
  1938                                  nopmsupp:	asciz "Command not supported in protected mode",13,10
  1939                                   %if _DISPHOOK
  1940                                  dpmihook:	db "DPMI entry hooked, new entry="
  1941                                  dpmihookcs:	db "____:"
  1942                                   %ifn _LINK
  1943                                  		db _4digitshex(mydpmientry+DATASECTIONFIXUP)
  1944                                   %else
  1945                                   wlcalc dword_itoa_2_00_10h
  1946                                  		dd mydpmientry
  1947                                   %endif
  1948                                  		asciz 13,10
  1949                                    %if _DEBUG
  1950                                  dpmihookamis:	asciz "DPMI entry hooked by other debugger with AMIS callout",13,10
  1951                                    %endif
  1952                                   %endif
  1953                                  msg.dpmi_no_hook:	asciz "DPMI entry cannot be hooked!",13,10
  1954                                  nodesc:		asciz "resource not accessible in real mode",13,10
  1955                                  ;descwrong:	asciz "descriptor not accessible",13,10
  1956                                  msg.msdos:	asciz "MS-DOS"
  1957                                  descriptor:	db "---- base="
  1958                                  .base:		db "-------- limit="
  1959                                  .limit:		db "-------- attr="
  1960                                  .attrib:	db "----",13,10
  1961                                  		asciz
  1962                                  %endif	; _PM
  1963 00002DAD 4572726F7220696E20-     ph_msg:		asciz "Error in sequence of calls to hack.",13,10
  1963 00002DB6 73657175656E636520-
  1963 00002DBF 6F662063616C6C7320-
  1963 00002DC8 746F206861636B2E0D-
  1963 00002DD1 0A00               
  1964                                  
  1965 00002DD3 0D0A50726F6772616D-     progtrm:	db 13,10,"Program terminated normally ("
  1965 00002DDC 207465726D696E6174-
  1965 00002DE5 6564206E6F726D616C-
  1965 00002DEE 6C792028           
  1966 00002DF2 5F5F5F5F290D0A00        progexit:	asciz "____)",13,10
  1967                                  %if _APPLICATION || _DEVICE
  1968 00002DFA 45584520616E642048-     nowhexe:	asciz "EXE and HEX files cannot be written",13,10
  1968 00002E03 45582066696C657320-
  1968 00002E0C 63616E6E6F74206265-
  1968 00002E15 207772697474656E0D-
  1968 00002E1E 0A00               
  1969 00002E20 43616E6E6F74207772-     nownull:	asciz "Cannot write: no file name given",13,10
  1969 00002E29 6974653A206E6F2066-
  1969 00002E32 696C65206E616D6520-
  1969 00002E3B 676976656E0D0A00   
  1970 00002E43 4572726F7220696E20-     msg.hexerror:	asciz "Error in HEX file",13,10
  1970 00002E4C 4845582066696C650D-
  1970 00002E55 0A00               
  1971 00002E57 57726974696E672000      wwmsg1:		asciz "Writing "
  1972 00002E60 2062797465730D0A00      wwmsg2:		asciz " bytes",13,10
  1973 00002E69 4469736B2066756C6C-     diskful:	asciz "Disk full",13,10
  1973 00002E72 0D0A00             
  1974 00002E75 4572726F7220            openerr:	db "Error "
  1975 00002E7B 5F5F5F5F206F70656E-     openerr1:	asciz "____ opening file",13,10
  1975 00002E84 696E672066696C650D-
  1975 00002E8D 0A00               
  1976 00002E8F 46696C65206E6F7420-     doserr2:	asciz "File not found",13,10
  1976 00002E98 666F756E640D0A00   
  1977 00002EA0 50617468206E6F7420-     doserr3:	asciz "Path not found",13,10
  1977 00002EA9 666F756E640D0A00   
  1978 00002EB1 416363657373206465-     doserr5:	asciz "Access denied",13,10
  1978 00002EBA 6E6965640D0A00     
  1979 00002EC1 496E73756666696369-     doserr8:	asciz "Insufficient memory",13,10
  1979 00002ECA 656E74206D656D6F72-
  1979 00002ED3 790D0A00           
  1980 00002ED7 496E76616C69642066-     doserr11:	asciz "Invalid format",13,10
  1980 00002EE0 6F726D61740D0A00   
  1981                                  %endif
  1982                                  
  1983                                  %if _EMS
  1984                                   %define dw_emserr dw
  1985                                   %include "xxmsg.asm"
  1986                                  %endif
  1987                                  
  1988                                  		align 4, db 0
  1989                                  flagbits:
  1990 00002EE8 000800040002800040-     .:		dw 800h,400h,200h, 80h,040h,010h,004h,001h
  1990 00002EF1 00100004000100     
  1991                                  .amount: equ ($ - .) / 2
  1992 00002EF8 4F56444E45494E475A-     flagson:	dw "OV","DN","EI","NG","ZR","AC","PE","CY"
  1992 00002F01 52414350454359     
  1993 00002F08 4E5655504449504C4E-     flagsoff:	dw "NV","UP","DI","PL","NZ","NA","PO","NC"
  1993 00002F11 5A4E41504F4E43     
  1994 00002F18 4F464446494653465A-     flagnames:	dw "OF","DF","IF","SF","ZF","AF","PF","CF"
  1994 00002F21 46414650464346     
  1995                                  %if _REGSREADABLEFLAGS
  1996 00002F28 4F314431493153315A-     flagson_style23:dw "O1","D1","I1","S1","Z1","A1","P1","C1"
  1996 00002F31 31413150314331     
  1997 00002F38 4F304430493053305A-     flagsoff_style2:dw "O0","D0","I0","S0","Z0","A0","P0","C0"
  1997 00002F41 30413050304330     
  1998 00002F48 4F5F445F495F535F5A-     flagsoff_style3:dw "O_","D_","I_","S_","Z_","A_","P_","C_"
  1998 00002F51 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 00002F58 00040002                .:		dw 400h, 200h
  2008                                  .amount: equ ($ - .) / 2
  2009 00002F5C 44204520                shortflagson:	dw "D ", "E "
  2010 00002F60 55204420                shortflagsoff:	dw "U ", "D "
  2011                                  %endif
  2012                                  
  2013                                  		align 4, db 0
  2014                                  table_length_keywords:
  2015 00002F64 1E00[5B0E]              	dw 30, msg.gib
  2016 00002F68 1400[5F0E]              	dw 20, msg.mib
  2017 00002F6C 0A00[630E]              	dw 10, msg.kib
  2018 00002F70 0900[670E]              	dw 9, msg.pages
  2019 00002F74 0400[6D0E]              	dw 4, msg.paragraphs
  2020 00002F78 0400[780E]              	dw 4, msg.paras
  2021 00002F7C 0300[7E0E]              	dw 3, msg.qwords
  2022 00002F80 0200[850E]              	dw 2, msg.dwords
  2023 00002F84 0100[860E]              	dw 1, msg.words
  2024 00002F88 0000[8C0E]              	dw 0, msg.bytes		; end of table, shift count zero
  2025                                  
  2026 00002F8C 01                      flagvaron:	db 1
  2027 00002F8D 00                      flagvaroff:	db 0		; must be directly behind flagvaron
  2028                                  
  2029                                  %if _COND
  2030 00002F8E 6E6F7420                msg.condnotjump:db "not "
  2031 00002F92 6A756D70696E6700        msg.condjump:	asciz "jumping"
  2032                                  %endif
  2033                                  
  2034 00002F9A 206D6174636865730D-     msg.matches:	asciz " matches",13,10
  2034 00002FA3 0A00               
  2035                                  
  2036 00002FA5 00<rep 3h>              		align 4, db 0
  2037 00002FA8 414C4148424C424843-     reg8names:	dw "AL","AH","BL","BH","CL","CH","DL","DH"
  2037 00002FB1 4C4348444C4448     
  2038                                  ; Even entries are xL registers, odd ones the xH ones.
  2039                                  ; Order matches that of the first four regs entries.
  2040                                  
  2041 00002FB8 415842584358445853-     reg16names:	dw "AX","BX","CX","DX","SP","BP","SI","DI"
  2041 00002FC1 50425053494449     
  2042 00002FC8 445345535353435346-     		dw "DS","ES","SS","CS","FS","GS","IP","FL"
  2042 00002FD1 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 00002FD8 0442595445              	countedb "BYTE"		; ("B" is hexadecimal)
  2114 00002FDD 0443484152              	countedb "CHAR"		; ("C" is hexadecimal, "CH" is a register)
  2115 00002FE2 04574F5244              	countedb "WORD"
  2116 00002FE7 0553484F5254            	countedb "SHORT"	; (signed "SS" is a register)
  2117 00002FED 053342595445            	countedb "3BYTE"	; ("3" and "3B" are numeric)
  2118 00002FF3 053342595445            	countedb "3BYTE"
  2119 00002FF9 0544574F5244            	countedb "DWORD"	; ("D" is hexadecimal)
  2120 00002FFF 044C4F4E47              	countedb "LONG"
  2121                                  .addresses:
  2122 00003004 07504F494E544552        	countedb "POINTER"
  2123 0000300C 03505452                	countedb "PTR"
  2124 00003010 064F4646534554          	countedb "OFFSET"
  2125 00003017 034F4653                	countedb "OFS"
  2126 0000301B 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
