     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-05-13)"
    19                                   %include REVISIONMAC
     1                              <1> %define _REVISIONID	'hg 3f84ecab7938 (6685 ancestors)'
     2                              <1> %define _REVISIONID_LMACROS	'Uses lmacros:  Revision ID hg de53a9686fad (167 ancestors)',13,10
     3                              <1> %define _REVISIONID_INSTSECT	''
     4                              <1> %define _REVISIONID_SYMSNIP	''
     5                              <1> %define _REVISIONID_SCANPTAB	'Uses scanptab: Revision ID hg 575fa89fd671 (31 ancestors)',13,10
     6                              <1> %define _REVISIONID_INICOMP	'Uses inicomp:  Revision ID hg 4872b62b68c3 (667 ancestors)',13,10
     7                              <1> %define _REVISIONID_INICHECK	'Uses inicheck: Revision ID hg 99649f7ba4e5 (56 ancestors)',13,10
     8                              <1> %define _REVISIONID_LDOSBOOT	'Uses ldosboot: Revision ID hg afef7485460b (1022 ancestors)',13,10
    20                                   %include "debug.mac"
     1                              <1> [list -]
    14                              <3> [list -]
    14                              <2> [list -]
    86                              <1> [list -]
    86          ------------------  <1>  note: Disable usesection detection
    86          ------------------  <1>  note: usesection lDEBUG_DATA_ENTRY
    86          ------------------  <1>  note: usesection ASMTABLE1
    86          ------------------  <1>  note: usesection ASMTABLE2
    86          ------------------  <1>  note: usesection DATASTACKBASE
    86          ------------------  <1>  note: usesection MESSAGESEGMENT
    86          ------------------  <1>  note: usesection lDEBUG_CODE
    86          ------------------  <1>  note: usesection lDEBUG_CODE2
    86          ------------------  <1>  note: usesection INIT
    86          ------------------  <1>  note: usesection WLEMITALIGNINITEND
    86          ------------------  <1>  note: usesection DEVICESHIM
    86          ------------------  <1>  note: usesection WLEMITALIGNRELOCZERO
    68                              <2> %endif
    69                              <2> 
    70                              <2> 
    71                              <2> 	usesection lDEBUG_CODE
    71          ------------------  <2>  note: usesection lDEBUG_CODE
    72                              <2> section_of puts, trimputs, puts_ext_done, puts_ext_next
    73                              <2> section_of putsz_exthelp, code_retf
    74                              <2> section_of puts_getline_ext_done
    75                              <2> section_of puts_copyoutput_ext_done
    76                              <2> section_of guard_auxbuff, guard_re
    77                              <2> section_of handle_serial_flags_ctrl_c
    78                              <2> section_of hexword_high
    79                              <2> section_of call_int2D
    80                              <2> section_of copy_single_counted_string
    81                              <2> section_of intchk
    82                              <2> section_of IsIISPEntry?
    83                              <2> section_of dd_store
    84                              <2> section_of dohack, getsegmented, hexbyte, hexnyb, iseol?.notsemicolon
    85                              <2> section_of peekc, getc, prephack, readmem, setds2si, setds2bx, setes2dx
    86                              <2> section_of silence_get_start, silence_get_start.have_di, silence_count_zeroes
    87                              <2> section_of setrmlimit, skipcomm0, unhack
    88                              <2> section_of skipequals
    89                              <2> section_of to_errret_pop
    90                              <2> section_of cmd3.have_cx_convenience
    91                              <2> section_of verifysegm, verifysegm_or_error
    92                              <2> section_of pp16, resetmode, resetmode_and_test_d_b_bit
    93                              <2> section_of pp_fix32bitflags, proceedbreakpoint
    94                              <2> section_of putsz, hexword, skipcomma, cmd3, cmd3_not_ext, cmd3_preprocessed
    95                              <2> section_of hexdword
    96                              <2> section_of cmd3_not_inject, cmd3_injected
    97                              <2> section_of aa_not_inject, aa_injected, aa_before_getline, aa_after_getline
    98                              <2> section_of transfer_ext_cx_nearcall_from_code2
    99                              <2> section_of traceone, unexpectedinterrupt, dumpregs_no_disasm
   100                              <2> section_of aa_imm_entry, ia_restore_a_addr, ia_restore_u_addr, disasm
   101                              <2> section_of ia_restore_ds
   102                              <2> %ifn _SYMBOLIC
   103                              <2> section_of selector_to_segment
   104                              <2> %endif
   105                              <2> section_of disp_al, disp_al_hex, disp_al_nybble_hex, disp_ax_dec, disp_ax_hex
   106                              <2> section_of disp_dxax_times_cx_width_bx_size
   107                              <2> section_of disp_dxax_times_cx_width_bx_size.store
   108                              <2> section_of disp_message, disp_message_length_cx
   109                              <2> section_of ispm
   110                              <2> section_of setrc, error
   111                              <2> section_of _doscall, _doscall_return_es, _doscall_return_es_parameter_es_ds
   112                              <2> section_of intcall_ext_return_es, close_ext, doscall_extseg
   113                              <2> section_of yy_reset_buf
   114                              <2> section_of init_bootcmd
   115                              <2> 
   116                              <2> section_of InDOS, bootgetmemorysize
   117                              <2> section_of chkeol, decword, decdword
   118                              <2> section_of dec_dword_minwidth
   119                              <2> section_of getexpression.lit_isdigit?, getexpression.lit_ishexdigit?
   120                              <2> section_of getlinearaddr
   121                              <2> section_of getlinear_d_b
   122                              <2> section_of getlinear_high_limit
   123                              <2> section_of getlinear_32bit
   124                              <2> section_of getlinear_high_limit.do_not_use_test
   125                              <2> section_of getlinear_common
   126                              <2> section_of ifsep, iseol?, isseparator?, isstring?, movp
   127                              <2> section_of putc, putsline, putsline_crlf, putsz_error
   128                              <2> section_of setrmsegm
   129                              <2> section_of skipwh0, skipwhite
   130                              <2> section_of test_d_b_bit, test_high_limit, push_cxdx_or_edx
   131                              <2> section_of capitalise
   132                              <2> section_of setes2ax
   133                              <2> section_of zz_copy_strings_to_str_buffer
   134                              <2> section_of call_xms_move, zz_call_xms, zz_detect_xms
   135                              <2> section_of code2_to_code_ret_to_ext
   136                              <2> section_of yy_dos_parse_name, yy_open_file, yy_check_lfn
   137                              <2> section_of yy_common_parse_name
   138                              <2> section_of yy_common_parse_name_bx_buffer
   139                              <2> section_of retry_open_scriptspath
   140                              <2> section_of yy_boot_read.bx, yy_boot_seek_start.bx, yy_boot_seek_current.bx
   141                              <2> section_of yy_boot_parse_name, yy_boot_open_file
   142                              <2> section_of yy_boot_parse_name_bx_buffer
   143                              <2> section_of near_transfer_ext_return, scan_dir_aux, read_sector
   144                              <2> section_of yy_boot_init_dir, got_yyentry, scan_dir_entry
   145                              <2> section_of ..@yy_filename_empty, boot_parse_fn
   146                              <2> section_of count_store, count_store.maybe_0
   147                              <2> section_of loader_get_resident_address, loader_prepare_resident
   148                              <2> 
   149                              <2> 
   150                              <2>  %if _SYMBOLIC && _DUALCODE && _SYMBOLASMDUALCODE
   151                              <2> 	usesection lDEBUG_CODE2
   152                              <2>  %else
   153                              <2> 	usesection lDEBUG_CODE
   153          ------------------  <2>  note: usesection lDEBUG_CODE
   154                              <2>  %endif
   155                              <2> section_of bxcx_to_cx_paragraphs
   156                              <2> section_of zz_list_symbol.first, zz_list_symbol.subsequent
   157                              <2> section_of zz_xms_to_86mm, zz_xms_try_free, zz_xms_try_free_handle
   158                              <2> section_of zz_86mm_to_xms, zz_del_match.add_poison_entrypoint
   159                              <2> section_of zz_free_nonxms, zz_free_xms, zz_free_reset, zz_free_dos
   160                              <2> section_of zz_get_literal, zz_restore_strat, zz_save_strat
   161                              <2> section_of zz_switch_s, zz_transfer_buffer
   162                              <2> 
   163                              <2> 
   164                              <2> %if _SYMBOLIC
   165                              <2>  %if _DUALCODE && _SYMBOLICDUALCODE
   166                              <2> 	usesection lDEBUG_CODE2
   167                              <2>  %else
   168                              <2> 	usesection lDEBUG_CODE
   169                              <2>  %endif
   170                              <2> section_of shift_left_4_bxcx
   171                              <2> section_of selector_to_segment
   172                              <2> 
   173                              <2> section_of anti_normalise_pointer_with_displacement_bxcx, displaystring
   174                              <2> section_of getfarpointer.hash, getfarpointer.main, getfarpointer.str
   175                              <2> section_of move_delete_farpointer.hash, move_delete_farpointer.hash.sidi
   176                              <2> section_of move_delete_farpointer.main, move_delete_farpointer.str.sidi
   177                              <2> section_of move_insert_farpointer.hash, move_insert_farpointer.hash.sidi
   178                              <2> section_of move_insert_farpointer.main, move_insert_farpointer.main.sidi
   179                              <2> section_of move_insert_farpointer.str.sidi
   180                              <2> section_of normalise_pointer, normalise_pointer_with_displacement_bxcx
   181                              <2> section_of pointer_to_linear
   182                              <2> section_of save_slice_farpointer.hash, save_slice_farpointer.main
   183                              <2> section_of save_slice_farpointer.str
   184                              <2> section_of segment_to_selector
   185                              <2> section_of zz_insert, zz_match_symbol, zz_match_symbol.continue, zz_relocate
   186                              <2> 
   187                              <2> section_of binsearchhash, binsearchmain
   188                              <2> section_of check_second_slice
   189                              <2> section_of disp_size_hash, disp_size_main, disp_size_str
   190                              <2> section_of displayresult, getstring1, getstring2
   191                              <2> section_of increment_ss_ref_count
   192                              <2> section_of list_sym_storage_usage, str_index_to_pointer
   193                              <2> section_of zz_commit_insert, zz_compact, zz_compact_expand_check_nonxms
   194                              <2> section_of zz_compact_expand_check_xms
   195                              <2> section_of zz_delete_hash, zz_delete_main, zz_delete_main_and_its_hash
   196                              <2> section_of zz_delete_string, zz_expand, zz_expand_common
   197                              <2> section_of zz_get_symstr_length_bytes
   198                              <2> section_of zz_get_symstr_length_bytes.ssLength_in_cx
   199                              <2> section_of zz_get_symstr_length_indices
   200                              <2> section_of zz_get_symstr_length_indices.ssLength_in_cx
   201                              <2> section_of zz_hash, zz_hash.bx_init
   202                              <2> section_of zz_insert_main.linklist, zz_reloc_main, zz_reloc_str
   203                              <2> section_of zz_store_pre_str, zz_store_string, zz_store_string.hash_bx
   204                              <2> section_of zz_unlink_main_next
   205                              <2> %endif
   206                              <2> 
   207                              <2> %if _DUALCODE
   208                              <2> 	usesection lDEBUG_CODE2
   208          ------------------  <2>  note: usesection lDEBUG_CODE2
   209                              <2> %else
   210                              <2> 	usesection lDEBUG_CODE
   211                              <2> %endif
   212                              <2> section_of FloatToStr
   213                              <2> 
   214                              <2> 
   215                              <2>  %if _DUALCODE && _EXPRDUALCODE
   216                              <2> 	usesection lDEBUG_CODE2
   216          ------------------  <2>  note: usesection lDEBUG_CODE2
   217                              <2>  %else
   218                              <2> 	usesection lDEBUG_CODE
   219                              <2>  %endif
   220                              <2> 
   221                              <2> section_of getofsforbx, checkpointer, getrangeX
   222                              <2> section_of getrangeX_have_address_need_length
   223                              <2> section_of getrange, getaddr, getofsforbx_remember_bitness
   224                              <2> section_of remember_bitness, getaddr_taken
   225                              <2> section_of getstr, get_length, get_length_keyword
   226                              <2> section_of isbracketorunaryoperator?, isunaryoperator?, isoperator?
   227                              <2> section_of ..@call_operator_dispatchers
   228                              <2> section_of isseparator?, istype?, isunsignedtype?
   229                              <2> section_of handlesegment, handle3byte, handlebyte, handleword
   230                              <2> section_of handledword, handlepointer
   231                              <2> section_of uoh_abs, uoh_minus, calculate_minus_bxdx, uoh_plus
   232                              <2> section_of uoh_not_bitwise, uoh_not_boolean
   233                              <2> section_of od_minus, od_plus, od_multiply, od_divide, od_modulo, od_retn
   234                              <2> section_of od_above, od_below, od_equal, od_not, od_or, od_and, od_xor
   235                              <2> section_of od_cond, od_o, od_a, od_x, od_c, od_string_common
   236                              <2> section_of of_modulo, of_minus, of_plus, or_hhtype, of_multiply
   237                              <2> section_of set_hhtype, of_divide, of_power
   238                              <2> section_of of_compare_below_equal, of_compare_below, of_compare_not_equal
   239                              <2> section_of of_compare_equal, of_compare_above_equal, of_compare_above
   240                              <2> section_of toboolean, of_helper_compare_true, of_rightop, of_helper_compare
   241                              <2> section_of of_shift_right, of_shift_right_signed, of_shift_left
   242                              <2> section_of of_helper_getshiftdata, of_bit_mirror
   243                              <2> section_of of_or_bitwise, or_hhtype_1, of_or_boolean, of_clr_bitwise
   244                              <2> section_of of_and_bitwise, of_and_boolean, of_xor_bitwise, of_xor_boolean
   245                              <2> section_of of_helper_retbool, of_helper_getbool
   246                              <2> 
   247                              <2> section_of var_cip_setup, var_csp_setup, var_lfsr_setup, var_reverselfsr_setup
   248                              <2> section_of var_dpspsel_setup, var_seldbg_setup, var_mt_setup
   249                              <2> section_of var_ioi_setup, var_psps_setup, var_ppr_setup, var_ppi_setup
   250                              <2> section_of var_iok_setup, var_rhcount_setup
   251                              <2> section_of var_get_psp_segment, var_get_psp_selector
   252                              <2> section_of var_bootldpunit_setup, var_bootsdpunit_setup, var_bootydpunit_setup
   253                              <2> section_of var_bootldppart_setup, var_bootsdppart_setup, var_bootydppart_setup
   254                              <2> section_of var_bootunitflags_setup
   255                              <2> 
   256                              <2> section_of issymbol?, isvariable?, var_mm_setup, var_ri_setup, var_ysf_setup
   257                              <2> section_of default_variable_setup
   258                              <2> section_of var_ext_setup
   259                              <2> section_of var_ext_setup_done
   260                              <2> 
   261                              <2> section_of getstmmxdigit
   262                              <2> section_of getexpression.lit_ishexdigit?, getexpression.lit_isdigit?
   263                              <2> section_of of_cond, count_unary_operators, count_unary_operators_restrict
   264                              <2> section_of get3byte.checksignificantbits, getbyte, checksignificantbitscommon
   265                              <2> section_of getnyb, get_value_range
   266                              <2> 
   267                              <2> section_of getaddrX, getword, getdword, getexpression
   268                              <2> 
   269                              <2> section_of getrangeX.lines, getrangeX.ecx_and_0_valid
   270                              <2> section_of getrange.lines, getrange.ecx_and_0_valid, get_length.lines
   271                              <2> section_of getrangeX.lines_and_uu, getrange.lines_and_uu
   272                              <2> section_of isseparator?.except_L_or_dot, isvariable?.return_name
   273                              <2> section_of getword.checksignificantbits, getbyte.checksignificantbits
   274                              <2> 
   275                              <2> section_of seg_bx_to_sel
   276                              <2> section_of getexpression.countsignificantbits
   277                              <2> section_of ..@rr_checksignificantbits, ..@rr_operatordispatchers
   278                              <2> section_of ..@rr_operatorfunctions, ..@parsecm_getaddr
   279                              <2> section_of stack_check.internal
   280                              <2> 
   281                              <2> 
   282                              <2> 	usesection INIT
   282          ------------------  <2>  note: usesection INIT
   283                              <2> section_of init_capitalise
   284                              <2> section_of init_skipwhite, init_skipwh0
   285                              <2> section_of init_skipcomma, init_skipcomm0
   286                              <2> section_of init_skipequals
   287                              <2> 
   288                              <2> 
   289                              <2> 	usesection lDEBUG_DATA_ENTRY
   289          ------------------  <2>  note: usesection lDEBUG_DATA_ENTRY
   290                              <2> section_of entry_retn
   291                              <2> 
   292                              <2> 
   293                              <2> %if _LINK
   294                              <2>  %include "extern.mac"
     1                              <3> 
     2                              <3> ; expr.asm
     3                              <3>  extern PPLEN, PPLEN_ONLY_PREFIXES, a_addr, alloc_seg, alloc_size
     4                              <3>  extern amis_multiplex_number, asm_options, asm_startoptions
     5                              <3>  extern auxbuff_current_size, auxbuff_segorsel, behind_r_u_addr
     6                              <3>  extern bp_offset, code_seg, code_size, d_addr, dcount_addr
     7                              <3>  extern dcpm_addr, dd_default_length, dd_default_lines, dd_text_and
     8                              <3>  extern debuggerfunction, default_pp_count, default_tp_count
     9                              <3>  extern default_tt_count, device_header_address, device_mcb_paragraphs
    10                              <3>  extern dwcount_addr, dz_addr, e_addr, encodedmach87, entryseg_size
    11                              <3>  extern env_size, envseg, erc, errret
    12                              <3>  extern extdata, extdata_size, extdata_used, extseg, extseg_size
    13                              <3>  extern extseg_used, flagbits.amount, flagnames, flagvaron
    14                              <3>  extern getrange_is_uu, getrange_lines, has_mmx, hhresult
    15                              <3>  extern history.segorsel, historyseg_size, immseg, input_file_handles
    16                              <3>  extern input_file_handles.active, internalflags, internalflags2
    17                              <3>  extern internalflags3, intr8_limit, io_columns, io_columns_getline
    18                              <3>  extern io_end_buffer, io_flags, io_levels, io_rows, io_start_buffer
    19                              <3>  extern line_out, line_out_end, linkinfoaddress, load_data
    20                              <3>  extern load_input_file, load_input_file.active, load_unit_flags
    21                              <3>  extern loaddata_loadedfrom, machine, maxmachinetype, messageseg
    22                              <3>  extern messageseg_size, mmxbuff, msg.as, msg.end, msg.executing
    23                              <3>  extern msg.executing_value_range, msg.from, msg.in, msg.length
    24                              <3>  extern msg.linear, msg.lines, msg.lr, msg.nd, msg.nottaken
    25                              <3>  extern msg.nt, msg.or, msg.questionmark, msg.r, msg.stack_overflow
    26                              <3>  extern msg.stack_overflow.caller, msg.stack_overflow.cond
    27                              <3>  extern msg.stack_overflow.indirection, msg.stack_overflow.linear
    28                              <3>  extern msg.stack_overflow.parens, msg.stack_overflow.precedence
    29                              <3>  extern msg.stack_overflow.value_in, msg.t, msg.taken, msg.to
    30                              <3>  extern msg.value, msgtable_value_range, options, options2, parent
    31                              <3>  extern ppbytes, priorrc, psp22, pspdbe, pspdbg
    32                              <3>  extern qqtermcode, rc_count, rc_limit, re_count, re_limit
    33                              <3>  extern reading_access_variables, reg16names, reg8names, reg_cs
    34                              <3>  extern reg_ds, reg_efl, reg_eip, reg_esp, search_results
    35                              <3>  extern serial_columns, serial_fifo_size, serial_keep_timeout
    36                              <3>  extern serial_rows, serial_use_baseport, serial_use_dl
    37                              <3>  extern serial_use_fifo, serial_use_intnum, serial_use_irqmask
    38                              <3>  extern serial_use_params, serial_var_baseport, serial_var_dl
    39                              <3>  extern serial_var_fifo, serial_var_intnum, serial_var_irqmask
    40                              <3>  extern serial_var_params, sscounter, stack, startoptions
    41                              <3>  extern table_length_keywords, throwsp, transfer_ext_cx
    42                              <3>  extern try_amis_multiplex_number, try_debugger_amis_multiplex_number
    43                              <3>  extern types, types.addresses_minus_end, types.end, u_addr
    44                              <3>  extern usertermcode, uu_default_length, uu_default_lines, vregs
    45                              <3>  extern vregs.amount, writing_access_variables
    46                              <3>  extern flagbits, regs
    47                              <3> 
    48                              <3> ; run.asm
    49                              <3>  extern ..@aa_access_end, ..@aa_access_start, ..@dd_access_end
    50                              <3>  extern ..@dd_access_start, ..@ee_access_end, ..@ee_access_start
    51                              <3>  extern ..@ee_interactive_access_end, ..@ee_interactive_access_start
    52                              <3>  extern ..@hh_indirection_memory_access_end
    53                              <3>  extern ..@hh_indirection_memory_access_start
    54                              <3>  extern ..@readmem_fault_skip_4_near_call, ..@rr_access_end
    55                              <3>  extern ..@rr_access_start, ..@rr_variable_read_access_end
    56                              <3>  extern ..@rr_variable_read_access_start
    57                              <3>  extern ..@rr_variable_write_access_end
    58                              <3>  extern ..@rr_variable_write_access_start, ..@sss_access_end
    59                              <3>  extern ..@sss_access_start, ..@uu_access_end, ..@uu_access_start
    60                              <3>  extern ..@uu_referenced_memory_access_end
    61                              <3>  extern ..@uu_referenced_memory_access_start, ..@uu_simulate_cmps_end
    62                              <3>  extern ..@uu_simulate_cmps_start, ..@uu_simulate_scas_end
    63                              <3>  extern ..@uu_simulate_scas_start, InDOS_or_BIOS_IO, PPLEN_ONLY_STRING
    64                              <3>  extern auxbuff_behind_last_silent
    65                              <3>  extern auxbuff_start_silent, bInDbg, b_bplist.bp, b_bplist.counter
    66                              <3>  extern b_bplist.disabled_mask, b_bplist.idbuffer, b_bplist.used_mask
    67                              <3>  extern b_bplist.when, bb_deferred_message_in_lineout_behind
    68                              <3>  extern bp_display_offset, calcpointbit, cmd2_reset_re, cmd_goto
    69                              <3>  extern debug22.cleartraceflag, decbyte, dmycmd, dumpregs_extended
    70                              <3>  extern enable_rh, entry_to_code_seg, entry_to_code_segsel, eqflag
    71                              <3>  extern eqladdr, exccsip, exception_csip, exception_stack, excloc
    72                              <3>  extern g_bplist.bp, g_bplist.used_count, get_set_id_offset_length
    73                              <3>  extern getc_if_any, getcseipbyte, getint2324, getpsp
    74                              <3>  extern gg_deferred_message, gg_first_cseip_linear
    75                              <3>  extern gg_next_cseip_linear, guard_auxbuff.1_or_2, idle, in_getinput
    76                              <3>  extern int19msg, internalflags6, intr8_counter, lastcmd, msg.again
    77                              <3>  extern msg.alreadytsr, msg.area_aa_access, msg.area_dd_access
    78                              <3>  extern msg.area_ee_access, msg.area_ee_interactive_access
    79                              <3>  extern msg.area_hh_indirection_memory_access, msg.area_rr_access
    80                              <3>  extern msg.area_rr_variable_read_access
    81                              <3>  extern msg.area_rr_variable_write_access, msg.area_run_access
    82                              <3>  extern msg.area_sss_access, msg.area_uu_access
    83                              <3>  extern msg.area_uu_referenced_memory_access
    84                              <3>  extern msg.area_uu_simulate_cmps, msg.area_uu_simulate_scas
    85                              <3>  extern msg.bb_hit.1, msg.bb_hit.2.counter, msg.bb_hitpass_id.after
    86                              <3>  extern msg.bb_hitpass_id.long, msg.bb_hitpass_id.short, msg.bb_pass.1
    87                              <3>  extern msg.cant_bp_linear, msg.cant_bp_linear.address1
    88                              <3>  extern msg.cant_bp_reason, msg.cant_bp_reason0, msg.cant_bp_reason1
    89                              <3>  extern msg.cant_bp_reason2, msg.cant_bp_reason3
    90                              <3>  extern msg.cant_bp_reason3.value, msg.cant_bp_reasonu
    91                              <3>  extern msg.cant_bp_restore, msg.cant_bp_restore.value
    92                              <3>  extern msg.cant_bp_the, msg.cant_bp_type_gg
    93                              <3>  extern msg.cant_bp_type_permanent, msg.cant_bp_type_permanent.index
    94                              <3>  extern msg.cant_bp_type_proceed, msg.cant_bp_write, msg.ctrlc
    95                              <3>  extern msg.empty_message, msg.goto, msg.invalidpsp, msg.list
    96                              <3>  extern msg.list_bp.address1, msg.list_bp.first, msg.list_bp.second
    97                              <3>  extern msg.list_bp.third, msg.list_bp.value, msg.list_bp_csip_16
    98                              <3>  extern msg.list_bp_none, msg.list_bp_not_cseip, msg.notyettsr
    99                              <3>  extern msg.nowattached, msg.nowtsr1, msg.nowtsr2, msg.psphooked
   100                              <3>  extern msg.pspnotfound, msg.remember, msg.selfownedpsp, msg.silent
   101                              <3>  extern msg.warnprefix, msg.while, msg.while_not_true
   102                              <3>  extern msg.while_terminated_after, msg.while_terminated_before
   103                              <3>  extern oldcols, oldcrtp, oldcsrpos, oldmr, options3
   104                              <3>  extern options6, pp_instruction, pp_operand, progexit, progtrm
   105                              <3>  extern rc, reg_eax, reg_es, reg_gs, reg_ss
   106                              <3>  extern run_int, run_sp, run_sp_reserve, savesp, setcseipbyte
   107                              <3>  extern setint2324, setpsp, setpspdbg
   108                              <3>  extern showstring, silence_dump, spadjust, swapscreen
   109                              <3>  extern tmode0, tmode1, tmodes, tmodev, tpg_possible_breakpoint
   110                              <3>  extern tpg_proceed_bp, tt_silent_mode_number, vpage, vrows
   111                              <3>  extern while_buffer, while_buffer.length, writemem
   112                              <3> 
   113                              <3>  extern ..@getcseipbyte_fault_skip_2_near_call
   114                              <3>  extern ..@setcseipbyte_fault_skip_2_near_call
   115                              <3>  extern ..@writemem_fault_skip_4_near_call_a
   116                              <3>  extern ..@writemem_fault_skip_4_near_call_b, int0Cmsg, int0Dmsg
   117                              <3>  extern int0msg, int18msg, int1msg, int3msg, int6msg
   118                              <3>  extern int8_kbd_msg, int8msg, runint_ctrlc_msg, serial_flags
   119                              <3> 
   120                              <3> ; bb.asm
   121                              <3>  extern ..@bb_id_length, ..@bb_id_start, ..@bb_saved_linear
   122                              <3>  extern ..@bb_when_length, ..@bb_when_start, b_bplist.id
   123                              <3>  extern b_bplist.idbuffer.free
   124                              <3>  extern b_bplist.whenbuffer, b_bplist.whenbuffer.free
   125                              <3>  extern bootcmd, crlf, msg.all, msg.at
   126                              <3>  extern msg.bb_no_new, msg.bb_when, msg.boot, msg.bp, msg.bpaddress
   127                              <3>  extern msg.bpcontent, msg.bpcounter, msg.bpdisabled, msg.bpenabled
   128                              <3>  extern msg.bpnone, msg.bpnone_at, msg.bpunused, msg.counter
   129                              <3>  extern msg.existing, msg.id, msg.new, msg.notbu, msg.number
   130                              <3>  extern msg.offset, msg.when, prnquit
   131                              <3> 
   132                              <3> ; rr.asm
   133                              <3>  extern InDOS_or_BIOS_output, cmdline_buffer
   134                              <3>  extern cmdline_buffer.end, cmdline_buffer.position, disflags, ee0a
   135                              <3>  extern error_expr, flagbits_for_40, flagbits_for_80, flagsoff
   136                              <3>  extern flagsoff_style2, flagsoff_style3, flagson, flagson_style23
   137                              <3>  extern get_memref_index_bx, getline00, getline_reset_notatty
   138                              <3>  extern guard_rc, hexnyb.common, hhtype, hhvar, in_re
   139                              <3>  extern mask_4byte, masks, memrefs, memrefs.free, msg.3byte
   140                              <3>  extern msg.abort, msg.append, msg.byte, msg.count, msg.dword
   141                              <3>  extern msg.highlight, msg.internal_error_no_mmx, msg.readonly
   142                              <3>  extern msg.readonly_mem, msg.regs386, msg.regs386_off, msg.regs386_on
   143                              <3>  extern msg.replace, msg.rh, msg.rv_mode.before, msg.rv_mode_r86m
   144                              <3>  extern msg.rv_mode_v86m, msg.rvd, msg.rvd_deviceheader
   145                              <3>  extern msg.rvd_not_device, msg.rvd_size, msg.rvm, msg.rvp
   146                              <3>  extern msg.rvp_application, msg.rvp_boot, msg.rvp_device
   147                              <3>  extern msg.rvp_device_attached, msg.rvp_tsr, msg.rvv
   148                              <3>  extern msg.unexpected_auxbuff_guard, msg.unhighlight, msg.vm_auxseg
   149                              <3>  extern msg.vm_codeseg, msg.vm_dataseg, msg.vm_entryseg, msg.vm_hisseg
   150                              <3>  extern msg.vm_messageseg, msg.vp_dparent, msg.vp_dpra
   151                              <3>  extern msg.vp_dpspsegment, msg.vp_parent, msg.vp_pra
   152                              <3>  extern msg.vp_pspsegment, msg.word, operatorfunctions, psp_parent
   153                              <3>  extern psp_pra, puts_break_line_more, putsline_break_line, re_buffer
   154                              <3>  extern re_buffer.end, re_buffer.position, re_sp, regs_prior
   155                              <3>  extern regs_prior.size, retn_expr, rh_count_number
   156                              <3>  extern rh_display_with_count, shortflagbits, shortflagbits.amount
   157                              <3>  extern shortflagsoff, shortflagson, silence_dump.rh
   158                              <3>  extern silence_dump.rh.all, table_getline_prepare_ldebug
   159                              <3>  extern table_getline_prepare_ms_debug, terminate_silent_dump
   160                              <3>  extern terminate_silent_dump.if_nonnull
   161                              <3> 
   162                              <3> ; rr.asm
   163                              <3>  extern flagbits_for_shl, regs_prior.size_w
   164                              <3> 
   165                              <3> ; aa.asm
   166                              <3>  extern REP_LEN, SEGP_LEN, attach
   167                              <3>  extern ext_aa_after_getline_handler, ext_aa_before_getline_handler
   168                              <3>  extern ext_aa_inject_handler, immasm_length, immasm_rel1632_target
   169                              <3>  extern immasm_rel8_target, msg.aa_internal_error, msg.attach
   170                              <3>  extern prefixlist.after_segment, replist, segprfxtab, showmach
   171                              <3>  extern skipalpha, sm1
   172                              <3> 
   173                              <3> ; uu.asm
   174                              <3>  extern A32P_LEN, GROUP7, MN_DB, MN_LOCK, MN_LOOP
   175                              <3>  extern MN_LOOPNZ, MN_LOOPZ, MN_REP, MN_REPE, MN_REPNE
   176                              <3>  extern MN_SEG, MN_WAIT, N_LOCK, N_LTABA, N_LTABO
   177                              <3>  extern N_WTAB, O32P_AMOUNT, OPTYPES_BASE, REP_DIFF_LEN, REP_SAME_LEN
   178                              <3>  extern SFPGROUP3, SGROUP4, SPARSE_BASE, a32prfxtab, dismach
   179                              <3>  extern dmflags, has_87, immasm_far_target, immasm_imm16, locktab
   180                              <3>  extern ltaba1, ltabo1, mach_87, mnlist, mnlist_a_suffix_allowed
   181                              <3>  extern mnlist_o_suffix_allowed, mnlist_o_suffix_required
   182                              <3>  extern msg.condjump, msg.condnotjump, msg.memrefs_invalid_internal
   183                              <3>  extern msg.uninstall, msg.uu_internal_error, msg.uu_too_many_repeat
   184                              <3>  extern needsmath, needsmath_L, needsmsg, needsmsg.digit_6_ofs
   185                              <3>  extern needsmsg.digit_x_ofs, needsmsg_L, o32prfxtab, obsmach
   186                              <3>  extern obsolete, obsolete_L, opindex, opinfo, oplists
   187                              <3>  extern optypes, ppbytes.string, ppbytes.string_amount, reg_ebp
   188                              <3>  extern reg_ebx, reg_ecx, reg_edi, reg_esi, reg_fs
   189                              <3>  extern regmem, rgnam16, rgnam816, segrgnam, sibbyte
   190                              <3>  extern sqztab, tab_to, uninstall, unused, wtab1
   191                              <3> 
   192                              <3> ; uu.asm
   193                              <3>  extern reg_edx
   194                              <3> 
   195                              <3> ; uu.asm
   196                              <3>  extern MN_BSWAP, MN_O32
   197                              <3> 
   198                              <3> ; uu.asm
   199                              <3>  extern MN_A32
   200                              <3> 
   201                              <3> ; amis.asm
   202                              <3>  extern amisintr_offset, deviceshim_size, ext_amis_handler
   203                              <3> 
   204                              <3> ; boot.asm
   205                              <3>  extern boot_remember_seek_handle
   206                              <3>  extern boot_remember_seek_offset, chkeol_or_then, cmd_goto.yy_entry
   207                              <3>  extern display_y_or_ext, ext_cmdline, ext_finish.boot
   208                              <3>  extern if_exists_found_open, if_exists_not_found
   209                              <3>  extern if_exists_then_address, iseol?_or_then, loadoptiontable
   210                              <3>  extern loadoptiontable.incompatible, loadsettings
   211                              <3>  extern msdos7_message_table, msdos7_message_table.size
   212                              <3>  extern msg.boot_access_error, msg.boot_and, msg.boot_auxbuff_crossing
   213                              <3>  extern msg.boot_badchain, msg.boot_badclusters, msg.boot_badfat
   214                              <3>  extern msg.boot_bpb_load_overlap, msg.boot_bpb_too_low
   215                              <3>  extern msg.boot_cannot_set_both, msg.boot_dot_crlf
   216                              <3>  extern msg.boot_file_not_found, msg.boot_file_too_big_error
   217                              <3>  extern msg.boot_file_too_small_error, msg.boot_internal_error
   218                              <3>  extern msg.boot_invalid_filename, msg.boot_invalid_heads
   219                              <3>  extern msg.boot_invalid_sectors, msg.boot_out_of_memory_error
   220                              <3>  extern msg.boot_partition_cycle_error, msg.boot_partition_not_found
   221                              <3>  extern msg.boot_quit_fail, msg.boot_sector_not_power
   222                              <3>  extern msg.boot_sector_too_large, msg.boot_sector_too_small
   223                              <3>  extern msg.boot_segment_too_low, msg.boot_too_many_partitions_error
   224                              <3>  extern msg.bootfail, msg.bootfail_check_mismatch
   225                              <3>  extern msg.bootfail_check_mismatch.check_got
   226                              <3>  extern msg.bootfail_check_mismatch.check_offset
   227                              <3>  extern msg.bootfail_check_mismatch.check_value, msg.bootfail_code
   228                              <3>  extern msg.bootfail_read, msg.bootfail_read_errorcode
   229                              <3>  extern msg.bootfail_secsizediffer, msg.bootfail_sig
   230                              <3>  extern msg.bootfail_sig_parttable, msg.bootfail_stack_underflow
   231                              <3>  extern msg.bpb, msg.checkoffset, msg.checkvalue, msg.dir
   232                              <3>  extern msg.dirinsteadsize, msg.emptydirname, msg.entry
   233                              <3>  extern msg.guard_auxbuff_error, msg.hidden, msg.hiddenadd
   234                              <3>  extern msg.maxpara, msg.minpara, msg.protocol, msg.quit, msg.read
   235                              <3>  extern msg.sector, msg.sector_alt, msg.segment, msg.write
   236                              <3>  extern msg.yy_empty, msg.yy_filename_empty, msg.yy_no_file
   237                              <3>  extern msg.yy_requires_filename, msg.yy_too_large
   238                              <3>  extern msg.yy_too_many_handles, terminator_in_line_in.offset
   239                              <3>  extern terminator_in_line_in.value, throwret
   240                              <3>  extern yy_boot_attempt_open_pathname, yy_boot_attempt_open_stack
   241                              <3>  extern yy_is_script
   242                              <3> 
   243                              <3> ; cc.asm
   244                              <3>  extern count_var, hh.single, msg.clear, msg.clear_sequence
   245                              <3>  extern msg.range, parsecm
   246                              <3> 
   247                              <3> ; dd.asm
   248                              <3>  extern auxbuff_current_size_minus_24, charcounter
   249                              <3>  extern dstringaddr, dstringtype, firstmcb, firstumcb, intaddress
   250                              <3>  extern lastint, lastint_is_86m_and_mcb, msg.di_empty, msg.di_error
   251                              <3>  extern msg.di_freedos_reloc, msg.di_hidden, msg.di_hma, msg.di_iisp
   252                              <3>  extern msg.di_jmpfar, msg.di_jmpfarindirect, msg.di_multiplex.1
   253                              <3>  extern msg.di_multiplex.2, msg.di_multiplex.3, msg.di_nonstd_iisp
   254                              <3>  extern msg.di_system_low, msg.di_system_mcb, msg.di_system_upper
   255                              <3>  extern msg.di_testhook, msg.di_toomany, msg.di_uninst_iisp
   256                              <3>  extern msg.header, msg.header.length, msg.invmcbadr, msg.prefixes
   257                              <3>  extern msg.tableheader, msg.tableheadertop, msg.top, msg.trailer
   258                              <3>  extern msg.trailer.length, smcbmsg_unknown, smcbtypes
   259                              <3> 
   260                              <3> ; debug.asm
   261                              <3>  extern UnhookInterruptForce, UnhookInterruptForceSim, aa
   262                              <3>  extern adusetup, bb, boot_ebdaflag, boot_initcode
   263                              <3>  extern boot_new_memsizekib, boot_old_memsizekib, cc, code_start, ddd
   264                              <3>  extern device_initcode, driveno, dumpregs_extended.exit, ee
   265                              <3>  extern eld_linkcall.call_cmd3, end_of_ldebug_code, entry_int3_retf
   266                              <3>  extern errcarat, ff, get_86m_interrupt_handler_no_dos, get_columns
   267                              <3>  extern getline_close_file, getline_close_file.resetstuff, gg, hh
   268                              <3>  extern hh_depth, hh_depth_of_single_term, hhflag, ia_restore, ii
   269                              <3>  extern immasm, install_86m_interrupt_handler, int22, int2D, intr0
   270                              <3>  extern intr0C, intr0D, intr1, intr18, intr19
   271                              <3>  extern intr3, intr6, intr8, linkinfo, ll
   272                              <3>  extern ll3, ll_copy_cmdline_and_fcbs
   273                              <3>  extern ll_copy_cmdline_and_fcbs.have_cx
   274                              <3>  extern mm, msg.NULblank, msg.asmoptions_1, msg.boothelp
   275                              <3>  extern msg.build_array, msg.build_long_amount, msg.build_short_amount
   276                              <3>  extern msg.build_version_amount, msg.cannot_hook_2D.invalid
   277                              <3>  extern msg.cannot_hook_2D.nofree, msg.cannotbootquit_memsizes
   278                              <3>  extern msg.condhelp, msg.ensure_no_memory, msg.expressionhelp
   279                              <3>  extern msg.flaghelp, msg.flags_1, msg.guard_rc_error
   280                              <3>  extern msg.guard_re_error, msg.help_array, msg.help_array_amount
   281                              <3>  extern msg.help_re, msg.help_run, msg.help_source, msg.keep
   282                              <3>  extern msg.license, msg.line_out_overflow, msg.n_toolongname
   283                              <3>  extern msg.n_toolongtail, msg.nobootsupp, msg.options_array
   284                              <3>  extern msg.options_array_amount, msg.options_pages, msg.options_scan
   285                              <3>  extern msg.options_scan_amount, msg.qq_a_terminated
   286                              <3>  extern msg.qq_a_unterminated, msg.qq_device_no_c, msg.qq_device_no_d
   287                              <3>  extern msg.qq_device_none_selected, msg.qq_unterm
   288                              <3>  extern msg.rc_limit_reached, msg.re, msg.re_limit_reached
   289                              <3>  extern msg.reghelp, msg.rh_disabled, msg.rh_enabled, msg.run
   290                              <3>  extern msg.serial_cannot_hook, msg.serial_cannot_hook.new_int
   291                              <3>  extern msg.serial_cannot_hook.old_int, msg.serial_cannot_unhook
   292                              <3>  extern msg.serial_cannot_unhook.int, msg.serial_cannot_unhook.nowarn
   293                              <3>  extern msg.serial_late_unhook, msg.serial_late_unhook.int
   294                              <3>  extern msg.serial_no_keep_enter, msg.serial_no_keep_timer
   295                              <3>  extern msg.serial_request_keep, msg.source, msg.string_build
   296                              <3>  extern msg.string_options, msg.string_version
   297                              <3>  extern msg.tsr_cannot_terminate_attached, msg.varhelp, oo, ph_msg, pp
   298                              <3>  extern putrunint, putsz_exthelp, rr, run, section.DEVICESHIM.vstart
   299                              <3>  extern serial_clean_up, serial_clear_fifos, serial_eoi
   300                              <3>  extern serial_init_UART, serial_install_interrupt_handler
   301                              <3>  extern serial_interrupt_handler, serial_uninstall_interrupt_handler
   302                              <3>  extern set_irq, setscreen, sleep_delta_limit, sleep_highest_delta
   303                              <3>  extern sss, tpg_initialise_empty_auxbuff.reset
   304                              <3>  extern transfer_to_ext_puts_getline, tt, update_inttab_optional, uu
   305                              <3>  extern vv, vv_disable, vv_set, ww, yy
   306                              <3> 
   307                              <3> ; debug.asm
   308                              <3>  extern eld_linkcall
   309                              <3> 
   310                              <3> ; ee.asm
   311                              <3>  extern bufend, bufnext, fillbuf, fullbsout
   312                              <3>  extern getline_is_input_file?, line_in, linecounter, load_extension
   313                              <3>  extern msg.ext, notatty, prehak1, run2324
   314                              <3> 
   315                              <3> ; hh.asm
   316                              <3>  extern hh_div_active, hh_div_dividend, hh_div_divisor
   317                              <3>  extern msg.base, msg.group, msg.hh_div_remainder, msg.width
   318                              <3> 
   319                              <3> ; iioo.asm
   320                              <3>  extern if_exists_length, if_exists_si, if_exists_sp
   321                              <3>  extern install, msg.exists, msg.install, msg.not, msg.then
   322                              <3>  extern msg.y, resetrc, yy_or_ext_no_guard_re
   323                              <3> 
   324                              <3> ; immasm.asm
   325                              <3>  extern aa_ret, addrr, condmsg, error_mirror, index
   326                              <3>  extern msg.immasm_error_eip, presizeflags, reg32addr, segmnt
   327                              <3>  extern segrgaddr
   328                              <3> 
   329                              <3> ; msg.asm
   330                              <3>  extern ..@boot_scan_dir_return_fat16_root_entry
   331                              <3>  extern ..@boot_scan_dir_return_filenotfound
   332                              <3>  extern ..@boot_scan_dir_return_subdir_or_fat32_entry
   333                              <3>  extern alloc_size_not_reserved, asciitablenames, boot_init_foundname
   334                              <3>  extern configpath, configpath.dir_end, device_quittable_regs, dpmi32
   335                              <3>  extern execblk.cmdline, ext_command_handler, ext_finish.bp_is_set
   336                              <3>  extern ext_handle, ext_inject_handler, ext_preprocess_handler
   337                              <3>  extern ext_puts_copyoutput_handler, ext_puts_getline_handler
   338                              <3>  extern ext_puts_handler, ext_var, ext_var_amount, ext_var_format
   339                              <3>  extern ext_var_size, extcssel, extdssel, handle_scan_dir_entry
   340                              <3>  extern handle_scan_dir_not_found, history.first, history.last
   341                              <3>  extern indirect_array_errfix, init_executable_pathname
   342                              <3>  extern init_executable_pathname.end, internalflags4, internalflags5
   343                              <3>  extern internalflags7, isvariable_morebyte_nameheaders.ext
   344                              <3>  extern lastcmd_transfer_ext_address, lastcmd_transfer_ext_entry
   345                              <3>  extern line_in.end, linkcall_table, load_adr_dirbuf_segment
   346                              <3>  extern load_check_dir_attr, load_data_lowest, load_kernel_name
   347                              <3>  extern load_yy_direntry, load_yyname_input, load_yyname_next
   348                              <3>  extern near_transfer_ext_address, near_transfer_ext_entry
   349                              <3>  extern next_reserved_segment, options4, options5, options7
   350                              <3>  extern patcharea_intrtn, patcharea_intrtn.segment
   351                              <3>  extern patcharea_intrtn.size, patcharea_run, patcharea_run.segment
   352                              <3>  extern patcharea_run.size, pm_2_86m_0, promptlen, reserved_address
   353                              <3>  extern scriptspath, scriptspath.dir_end
   354                              <3>  extern sss_silent_count, sss_silent_count_used, stack_end, swch1
   355                              <3>  extern while_buffer.end
   356                              <3> 
   357                              <3> ; msg.asm
   358                              <3>  extern install_trying
   359                              <3> 
   360                              <3> ; init.asm
   361                              <3>  extern ..@init_behind, ..@init_first
   362                              <3>  extern ..@patch_no386_ds_6_DATA_ENTRY
   363                              <3>  extern ..@patch_no386_ds_code_or_entry
   364                              <3>  extern ..@patch_no386_iret_code_or_entry, behind_code_truncated
   365                              <3>  extern behind_init, behind_messagesegment_nobits
   366                              <3>  extern behind_messagesegment_nobits_truncated, debug22
   367                              <3>  extern device_header.next, devint23, devint24, entry_retf
   368                              <3>  extern execblk.fcb1, execblk.fcb2, ext_data_area, extcall_table.ret
   369                              <3>  extern extcall_table.segsel, fileext, hVdd, immasm_buffer, initcont
   370                              <3>  extern initcont.boot_entry, initcont.device, inttab, inttab.i06
   371                              <3>  extern inttab.i2D, inttab_number_variable, line_out_overflow
   372                              <3>  extern linkcall_table.code1, linkcall_table.entry
   373                              <3>  extern linkcall_table.init, oldmode, pInDOS, pSDA, regs.size
   374                              <3>  extern switchar, trim_overflow, var_addr_entries
   375                              <3>  extern var_addr_entries.amount
   376                              <3> 
   377                              <3> ; install.asm
   378                              <3>  extern installflags, msg.alreadydisabled
   379                              <3>  extern msg.alreadyenabled, msg.toggle, msg.trydisable, msg.tryenable
   380                              <3> 
   381                              <3> ; ints.asm
   382                              <3>  extern debuggeramissig, inttab_optional
   383                              <3> 
   384                              <3> ; lineio.asm
   385                              <3>  extern auxbuff_amount_silent, cmd3_set_options
   386                              <3>  extern determine_quiet_output, eldheader, getc_repeat_idle
   387                              <3>  extern getline_timer_func, handle_ctrl_c, if_exists_found_closed
   388                              <3>  extern if_exists_found_ext_open, indos_remember_seek_function
   389                              <3>  extern indos_remember_seek_handle, indos_remember_seek_offset
   390                              <3>  extern input_file_handles.to_close, msg.configkeyword
   391                              <3>  extern msg.eld_error_code, msg.eld_load_error, msg.emptykeyword
   392                              <3>  extern msg.eof, msg.executablekeyword, msg.ext_error_internal
   393                              <3>  extern msg.ext_error_invalid, msg.ext_error_io, msg.ext_error_oom
   394                              <3>  extern msg.freedos_ctrlc_workaround, msg.goto_empty
   395                              <3>  extern msg.goto_not_file, msg.goto_not_found.1, msg.goto_not_found.2
   396                              <3>  extern msg.history_internal_error, msg.more, msg.more_over
   397                              <3>  extern msg.more_over_size, msg.more_size, msg.rh_step.1
   398                              <3>  extern msg.rh_step.2, msg.scriptskeyword, msg.silent_error, msg.sof
   399                              <3>  extern msg.unexpected_noneol_rc, msg.unexpected_noneol_re
   400                              <3>  extern msg.yy_error_file_open, msg.yy_filename_missing_unquote
   401                              <3>  extern msg.yy_no_dos, qq, section.DATASTACK.vstart
   402                              <3>  extern serial_check_receive_char, serial_receive_char
   403                              <3>  extern serial_send_char, skip_rh, yy_boot
   404                              <3>  extern yy_boot_clear_remember_seek, yy_boot_close_file, yy_boot_read
   405                              <3>  extern yy_boot_remember_seek, yy_boot_seek_current
   406                              <3>  extern yy_boot_seek_start, yy_try_scriptspath
   407                              <3>  extern yy_try_scriptspath.didnotyettry
   408                              <3>  extern yy_try_scriptspath.nokeywordused
   409                              <3> 
   410                              <3> ; ll.asm
   411                              <3>  extern doserr8, ensuredebuggeeloaded, execblk, execblk.csip
   412                              <3>  extern execblk.sssp, msg.hexerror, msg.ll_unterm, msg.not_while_indos
   413                              <3>  extern msg.tsr_cannot_ll, parselw, reading
   414                              <3>  extern terminate_attached_process, ww1, ww15, zeroregs
   415                              <3> 
   416                              <3> ; mm.asm
   417                              <3>  extern has_287, has_copr, msg.c0, msg.cr, msg8088
   418                              <3>  extern msgx86, no_copr, parsecm_have_address
   419                              <3> 
   420                              <3> ; serialp.asm
   421                              <3>  extern baseport, msg.no_progress, rxfifo, rxhead
   422                              <3>  extern rxtail, serial_fcr_setting, serial_installed_intnum
   423                              <3>  extern serial_save_dl, serial_save_ier, serial_save_irq_mask
   424                              <3>  extern serial_save_irq_off, serial_save_lcr, serial_save_mcr, txfifo
   425                              <3>  extern txhead, txtail
   426                              <3> 
   427                              <3> ; ss.asm
   428                              <3>  extern msg.matches, msg.reverse, msg.seconds, msg.sleep
   429                              <3>  extern msg.ticks, sleep_repeat_idle
   430                              <3> 
   431                              <3> ; vv.asm
   432                              <3>  extern csrpos, msg.nokeep, msg.off, msg.on, msg.vv_disabled
   433                              <3>  extern msg.vv_enable_failure, xmsdrv, xmsmove
   434                              <3> 
   435                              <3> ; ww.asm
   436                              <3>  extern diskful, doserr11, doserr2, doserr3, doserr5
   437                              <3>  extern drive, drivenumber, dskerrs, not_while_indos, nowhexe
   438                              <3>  extern nownull, openerr, openerr1, writing, wwmsg1
   439                              <3>  extern wwmsg2
   440                              <3> 
   441                              <3> 
   442                              <3>  extern bCSAttr, lDEBUG_CODE_to_lDEBUG_CODE2_nearcall_helper
   443                              <3> 
   444                              <3>  extern hook2F.not_in_dos
   445                              <3> 
   446                              <3>  extern cmd4.int3, lDEBUG_CODE2_dualret_helper
   447                              <3>  extern lDEBUG_CODE2_to_lDEBUG_CODE_nearcall_helper
   448                              <3>  extern lDEBUG_CODE_to_lDEBUG_CODE2_dualcall_helper, msg.bu
   449                              <3>  extern msg.bu_relocated, msg.bu_relocated.sign
   450                              <3> 
   451                              <3>  extern nopmsupp
   452                              <3> 
   453                              <3>  extern bAddr32
   454                              <3> 
   455                              <3>  extern descriptor, descriptor.attrib, descriptor.base
   456                              <3>  extern descriptor.limit, gatewrong, msg.d.a_error, msg.d.a_error_code
   457                              <3>  extern msg.d.a_success, msg.d.a_success_sel, msg.d.b_error
   458                              <3>  extern msg.d.b_error_code, msg.d.b_success, msg.d.d_error
   459                              <3>  extern msg.d.d_error_code, msg.d.d_success, msg.d.l_error
   460                              <3>  extern msg.d.l_error_code, msg.d.l_success, msg.d.t_error
   461                              <3>  extern msg.d.t_error_code, msg.d.t_success, msg.deschelp, msg.ofs32
   462                              <3>  extern nodesc
   463                              <3> 
   464                              <3>  extern ..@patch_tsr_quit_run, areastruc_entry.qq_entry, cssel
   465                              <3>  extern ddebugareas.next, debug2F, dpmidisable, dpmientry, dpmihook
   466                              <3>  extern dpmihookamis, dpmihookcs, dpmiwatch, end_of_ldebug_code2
   467                              <3>  extern findinstalleddebugger, get_messagesegsel, handle_mode_changed
   468                              <3>  extern i23pm, msg.cannotpmquit, msg.desc, msg.dpmi_no_hook, msg.msdos
   469                              <3>  extern msg.qq_device_pm, msg.qq_still_pm, msg.qqlate_areas_error
   470                              <3>  extern msg.readonly_verifysegm, msg.readonly_verifysegm.selector
   471                              <3>  extern mydpmientry, nodosext, oldi2F, pm_reset_handlers, scratchsel
   472                              <3>  extern sr_state, switchmode, uninstall_areas.qq_entry
   473                              <3> 
   474                              <3>  extern i24pm
   475                              <3> 
   476                              <3>  extern auxbuff_switchbuffer_size, code2_seg, code2_sel, code2_size
   477                              <3>  extern code_sel, daresult, dssel, immsel
   478                              <3>  extern lDEBUG_CODE2_to_lDEBUG_CODE_dualcall_helper
   479                              <3>  extern lDEBUG_CODE_dualret_helper, messagesel, msg.desctype
   480                              <3>  extern msg.stack_overflow.desctype
   481                              <3> 
   482                              <3>  extern cmd3_mirror
   483                              <3> 
   484                              <3>  extern ..@patch_entry_seg, ..@patch_no386_ds_4, ..@patch_no386_ds_5
   485                              <3>  extern ..@patch_no386_ds_entry_pmint21_1
   486                              <3>  extern ..@patch_no386_ds_entry_pmint21_2, areas_fun, areas_sub
   487                              <3>  extern ddebugareas.prev, linkcall_table.code2
   488                              <3> 
   489                              <3>  extern areas_struc, msg.areasalreadyinstalled
   490                              <3>  extern msg.areasalreadyuninstalled, msg.areasinstalled
   491                              <3>  extern msg.areasnodebuggerfound, msg.areasnotinstalled
   492                              <3>  extern msg.areasnotinstalled.code, msg.areasnotsupported
   493                              <3>  extern msg.areasuninstalled, msg.areasuninstalled.code
   494                              <3> 
   495                              <3>  extern intcall_return_parameter_es_parameter_ds
   496                              <3>  extern lDEBUG_CODE_to_lDEBUG_CODE_dualcall_helper, pop_if, push_if
   497                              <3> 
   498                              <3>  extern isextenderavailable, msg.cannotpmload, nodosextinst
   499                              <3> 
   500                              <3>  extern install_areas, patcharea_pm_exc, patcharea_pm_exc.segment
   501                              <3>  extern patcharea_pm_exc.size
   502                              <3> 
   503                              <3>  extern pmint21
   504                              <3> 
   505                              <3>  extern debuggerexception, entry_to_code_sel, exc6msg, excCmsg
   506                              <3>  extern excDmsg, excEmsg, intrtn2_entry, pmintsave.int21
   507                              <3> 
   508                              <3>  extern convsegs, convsegs.amount_fixed, convsegs.end_fixed
   509                              <3>  extern dpmi_pm2rm, dpmi_pmsav, dpmi_rm2pm, dpmi_rmsav, endexctab
   510                              <3>  extern exc_first, exc_second, excsave, exctab, installdpmimsg
   511                              <3>  extern intrtn_entry.from_installdpmi, pmintsave, pminttab
   512                              <3>  extern pminttab.end, setrmaddr, silence_delete_one_string.internal
   513                              <3> 
   514                              <3>  extern msg.rv_mode_dpmi_16, msg.rv_mode_dpmi_32, msg.vm_code2seg
   515                              <3>  extern msg.vm_selector, msg.vp_dpspsel, msg.vp_pspsel, psp_selector
   516                              <3> 
   517                              <3>  extern ..@getcseipbyte_fault_skip_6_near_call
   518                              <3>  extern ..@hh_code1_indirection_memory_access_end
   519                              <3>  extern ..@hh_code1_indirection_memory_access_start
   520                              <3>  extern ..@readmem_fault_skip_2_near_call
   521                              <3>  extern ..@setcseipbyte_fault_skip_6_near_call
   522                              <3>  extern ..@writemem_fault_skip_2_near_call_a
   523                              <3>  extern ..@writemem_fault_skip_2_near_call_b, behind_code
   524                              <3>  extern behind_code2, convsegs.amount, ddebugareas
   525                              <3>  extern getline_extra_int22.cleartraceflag, msg.list_bp_cseip_32
   526                              <3> 
   527                              <3>  extern MN_O16
   528                              <3> 
   529                              <3>  extern MN_A16
   530                              <3> 
   531                              <3>  extern relocatedzero
   532                              <3> 
   533                              <3>  extern msg.bu_disabled
   534                              <3> 
   535                              <3>  extern reset_interrupts, set_interrupts
   536                              <3> 
   537                              <3>  extern startoptions6
   538                              <3> 
   539                              <3>  extern currentposition, msg.loader_bottom_not_allowed
   540                              <3>  extern msg.loader_too_low_load
   541                              <3> 
   542                              <3>  extern intr_loader_18, intr_loader_19, moveloader_hook_ints
   543                              <3> 
   544                              <3>  extern loader_query, loader_transfer_cmd3, loader_transfer_relocate
   545                              <3> 
   546                              <3>  extern cmd3_int_disable.set_bx_to_dx, cmd3_int_enable.set_bx_to_dx
   547                              <3>  extern ldebug_code_size, movesegrefstable, movetable
   548                              <3>  extern movetable.bottom, msg.isalready, msg.isnow, msg.loader_error
   549                              <3>  extern msg.move, msg.move_auxbuff_error, msg.move_auxdown
   550                              <3>  extern msg.move_auxup, msg.move_ebdanottop, msg.move_empty
   551                              <3>  extern msg.move_int_error, msg.move_int_panic
   552                              <3>  extern msg.move_must_be_bottom, msg.move_nottop, msg.move_oom
   553                              <3>  extern msg.move_rpl, msg.move_toolargeebda, msg.unsupportedmove
   554                              <3>  extern qq_int_unhook_sim.set_bx_to_dx
   555                              <3> 
   556                              <3>  extern moveloader.already, moveloader.bottom_to_hidden
   557                              <3>  extern moveloader.bottom_to_top, moveloader.hidden_to_bottom
   558                              <3>  extern moveloader.hidden_to_top, moveloader.top_to_bottom
   559                              <3>  extern moveloader.top_to_hidden
   560                              <3> 
   561                              <3>  extern moveloader.specificerror, moveloader_check_serial, msg.godebug
   562                              <3>  extern msg.loader_extra, msg.loader_flag, msg.loader_loadseg_low
   563                              <3>  extern msg.loader_must_be_hidden, msg.loader_sign, msg.loader_stack
   564                              <3>  extern msg.loadsupportsignature, msg.loadsupportsignature.size
   565                              <3> 
   566                              <3>  extern depack, hshrink_memory_source.offset
   567                              <3>  extern hshrink_memory_source.segment, indirect_hshrink_message_buffer
   568                              <3>  extern msg.hshrink_error, nontruncated_hshrink_message_buffer
   569                              <3> 
   570                              <3>  extern truncated_hshrink_message_buffer
   571                              <3> 
   572                              <3>  extern patch_boothelp_uncompressed
   573                              <3> 
   574                              <3>  extern msg.copybpb
   295                              <2> %endif
   710                              <1> %endif
   711                              <1> [list -]
   714                              <1> 
   715                              <1> %include "eld.mac"
     1                              <2> %if 0
     2                              <2> 
     3                              <2> Extensions for lDebug macros
     4                              <2> 
     5                              <2> Copyright (C) 2008-2025 E. C. Masloch
     6                              <2> 
     7                              <2> Usage of the works is permitted provided that this
     8                              <2> instrument is retained with the works, so that any entity
     9                              <2> that uses the works is notified of this instrument.
    10                              <2> 
    11                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    12                              <2> 
    13                              <2> %endif
    14                              <2> 
    15                              <2> %ifndef ELD_MAC
    16                              <2> %define ELD_MAC 1
    17                              <2> 
    18                              <2> %include "lmacros3.mac"
     1                              <3> [list -]
    19                              <2> 
    20                              <2> 		; ELD executable header
    21                              <2> 	struc ELD_HEADER
    22 00000000 ????????            <2> eldhSignature:		resb 4	; "ELD1"
    23 00000004 ??????              <2> 			resb 3	; reserved
    24 00000007 ??                  <2> 			resb 1	; 26 (Ctrl-Z)
    25 00000008 ????????            <2> eldhCodeOffset:		resd 1	; position displacement from eldhSignature
    26 0000000C ????                <2> eldhCodeImageLength:	resw 1	; amount bytes, at least 32
    27 0000000E ????                <2> eldhCodeAllocLength:	resw 1	; amount bytes, added to prior. sum < 64 KiB
    28 00000010 ????????            <2> eldhDataOffset:		resd 1
    29 00000014 ????                <2> eldhDataImageLength:	resw 1	; (zero allowed)
    30 00000016 ????                <2> eldhDataAllocLength:	resw 1	; (zero allowed)
    31 00000018 ????                <2> eldhCodeEntrypoint:	resw 1	; within code section, used as displacement
    32 0000001A ????????            <2> eldhReserved:		resb 4	; reserved
    33 0000001E ????                <2> eldhExtensionSize:	resw 1	; from eldhSignature, -> past eldhx fields in use
    34                              <2> 	endstruc
    35                              <2> 	endarea ELD_HEADER, 1
    36                              <2> 
    37                              <2> 	struc ELD_HEADERX
    38 00000000 <res 20h>           <2> eldhxHeader:		resb ELD_HEADER_size
    39 00000020 ????????            <2> eldhxDescriptionOffset:	resd 1	; zero if none, from eldhxHeader. <= 128 Bytes
    40 00000024 ????????            <2> eldhxHelpOffset:	resd 1	; zero if none, from eldhxHeader
    41 00000028 ????????            <2> eldhxLibTable:		resd 1	; zero if none, from eldhxHeader
    42 0000002C ????????            <2> eldhxDateTimeOffset:	resd 1	; zero if none, from eldhxHeader
    43                              <2> 	alignb 16
    44                              <2> 	endstruc
    45                              <2> 
    46                              <2> 	struc ELD_TRAILER_HEADER
    47 00000000 ????????????????    <2> eldthSignature:		resb 8	; "ELD1TAIL"
    48 00000008 ????????            <2> eldthHeaderOffset:	resd 1	; negative displacement from eldthSignature,
    49                              <2> 				;  add this dword to the seek offset
    50 0000000C ????                <2> eldthReserved:		resw 1	; reserved, must be initialised to zero
    51 0000000E ????                <2> eldthChecksum:		resw 1	; sum of all words in trailer header = 0
    52                              <2> 	endstruc
    53                              <2> 	endarea ELD_TRAILER_HEADER, 1
    54                              <2> 
    55                              <2> 	struc ELD_LIBTABLE
    56 00000000 ????                <2> eldltFormat:		resw 1
    57                              <2> 	; 0 = uncompressed
    58                              <2> 	; 2 = heatshrink compressed
    59                              <2> 	; 3 = lzexedat -4 compressed
    60                              <2> 	; 4 = lzexedat -4 -l compressed
    61 00000002 ????                <2> eldltAmount:		resw 1
    62 00000004 ????????            <2> eldltOffset:		resd 1	; from eldhxHeader
    63                              <2> eldltCompressedLength:		; (dword, only present if format 2, 3, or 4)
    64                              <2> 	endstruc
    65                              <2> 	endarea ELD_LIBTABLE, 1
    66                              <2> 
    67                              <2> 		; ELD instance header
    68                              <2> 	struc ELD_INSTANCE
    69 00000000 ????                <2> eldiStartCode:		resw 1	; -> this structure itself (para aligned)
    70 00000002 ????                <2> eldiEndCode:		resw 1	; -> behind memory used by instance (para aligned)
    71 00000004 ????                <2> eldiStartData:		resw 1	; -> data in data entry section (para aligned), or 0
    72 00000006 ????                <2> eldiEndData:		resw 1	; -> behind data (para aligned), or 0
    73 00000008 ????????????????    <2> eldiIdentifier:		resb 8	; blank-filled text
    74 00000010 ????                <2> eldiFlags:		resw 1	; flags
    75                              <2> eldiListing_size equ 14
    76 00000012 <res Eh>            <2> eldiListing:		resb eldiListing_size
    77                              <2> 				; ASCIZ listing file name
    78                              <2> 	endstruc
    79                              <2> 		; flags for eldiFlags:
    80                              <2> eldifResident:		equ 1
    81                              <2> 
    82                              <2> 		; ELD link info header
    83                              <2> 	struc ELD_LINKINFO
    84 00000000 ????                <2> eldlSignature:		resw 1	; 0E1D1h
    85 00000002 ????????            <2> eldlReserved:		resw 2
    86 00000006 ????                <2> eldlUseLinkHash:	resw 1
    87 00000008 ????                <2> eldlDataAmount:		resw 1
    88 0000000A ????                <2> eldlDataPrefixes:	resw 1
    89 0000000C ????                <2> eldlDataEntries:	resw 1
    90 0000000E ????                <2> eldlDataAddresses:	resw 1
    91 00000010 ????                <2> eldlCodeAmount:		resw 1
    92 00000012 ????                <2> eldlCodePrefixes:	resw 1
    93 00000014 ????                <2> eldlCodeEntries:	resw 1
    94 00000016 ????                <2> eldlCodeAddresses:	resw 1
    95                              <2> 	endstruc
    96                              <2> 
    97                              <2> 	numdef ELD_CODE_VSTART, 9001h
    98                              <2> 	numdef ELD_DATA_VSTART, 8000h
    99                              <2> 	numdef ELD_RELOC_VSTART, 8000h
   100                              <2> 
   101                              <2> 	numdef ELD_RECLAIM_HINT, 0
   102                              <2> 	strdef ELD_LISTING, ""
   103                              <2> 	numdef ELD_DATETIME, 0
   104                              <2> 
   105                              <2> %if _ELD_DATETIME
   106                              <2>  %define PUT_ELDHX_DATETIME_OFFSET at eldhxDateTimeOffset, dd DATAOFFSET + datetime - datastart
   107                              <2>  %macro PUT_ELD_DATETIME 0.nolist
   108                              <2> datetime:	asciz __UTC_DATE__,'T',__UTC_TIME__,'Z'
   109                              <2> 		asciz		; for future extension
   110                              <2>  %endmacro
   111                              <2> %else
   112                              <2>  %define PUT_ELDHX_DATETIME_OFFSET
   113                              <2>  %define PUT_ELD_DATETIME
   114                              <2> %endif
   115                              <2> 
   116                              <2> %endif
   716                              <1> 
   717                              <1> %include "install.mac"
     1                              <2> 
     2                              <2> %if 0
     3                              <2> 
     4                              <2> lDebug INSTALL command macros
     5                              <2> 
     6                              <2> Copyright (C) 2008-2023 E. C. Masloch
     7                              <2> 
     8                              <2> Usage of the works is permitted provided that this
     9                              <2> instrument is retained with the works, so that any entity
    10                              <2> that uses the works is notified of this instrument.
    11                              <2> 
    12                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    13                              <2> 
    14                              <2> %endif
    15                              <2> 
    16                              <2> 	struc INSTALLFLAG
    17 00000000 ????                <2> ifKeyword:	resw 1
    18 00000002 ????                <2> ifDescription:	resw 1
    19 00000004 ????                <2> ifOptions:	resw 1
    20 00000006 ????                <2> ifValue:	resw 1
    21 00000008 ????                <2> ifTrying:	resw 1
    22 0000000A ????                <2> ifReserved:	resw 1
    23                              <2> 	endstruc
    24                              <2> 
   718                              <1> 
   719                              <1> %if _SYMBOLIC
   720                              <1> 	defaulting 0			; disable defaulting
   721                              <1> %include "symbols.mac"
   722                              <1> [list -]
   723                              <1> 		; symbolic branch defines *without* defaulting!
   724                              <1> 	numdef ZZ_INSERT_TEMP, 1
   725                              <1> 	numdef XMS_SYMBOL_TABLE, 1
   726                              <1> 	numdef BUFFER_86MM_SLICE, 0
   727                              <1> 	numdef SECOND_SLICE, 0
   728                              <1> 
   729                              <1> 	defaulting 1			; re-enable defaulting
   730                              <1> 
   731                              <1> 		; symbolic branch defines
   732                              <1> 	numdef 86MM_SYMBOL_TABLE_MAX, 256, 256
   733                              <1> %endif
   734                              <1> 
   735                              <1> 	struc SEGADR
   736 00000000 ????????            <1> saOffset:	resd 1
   737 00000004 ????                <1> saSegSel:	resw 1
   738                              <1> %if _PM
   739 00000006 ????                <1> saSegment:	resw 1
   740 00000008 ????                <1> saSelector:	resw 1
   741                              <1> %endif
   742                              <1> 	endstruc
   743                              <1> 
   744                              <1> 	%macro segmentedaddress 0.nolist
   745                              <1> 	istruc SEGADR
   746                              <1> 	iend
   747                              <1> 	%endmacro
   748                              <1> 
   749                              <1> 	struc SEGOFS16ADR
   750 00000000 ????                <1> so16aOffset:	resw 1
   751 00000002 ????                <1> so16aSegSel:	resw 1
   752                              <1> %if _PM
   753 00000004 ????                <1> so16aSegment:	resw 1
   754 00000006 ????                <1> so16aSelector:	resw 1
   755                              <1> %endif
   756                              <1> 	endstruc
   757                              <1> 
   758                              <1> 	%macro segofs16address 0-1.nolist zero
   759                              <1> 	istruc SEGOFS16ADR
   760                              <1> %ifidni %1,zero
   761                              <1> %elifidni %1,minusone
   762                              <1> at so16aOffset,		dw -1
   763                              <1> at so16aSegSel,		dw -1
   764                              <1>  %if _PM
   765                              <1> at so16aSegment,	dw -1
   766                              <1> at so16aSelector,	dw -1
   767                              <1>  %endif
   768                              <1> %else
   769                              <1>  %error Unexpected initialiser keyword
   770                              <1> %endif
   771                              <1> 	iend
   772                              <1> 	%endmacro
   773                              <1> 
   774                              <1> 	struc SEGONLYADR
   775 00000000 ????                <1> soaSegSel:	resw 1
   776                              <1> %if _PM
   777 00000002 ????                <1> soaSegment:	resw 1
   778 00000004 ????                <1> soaSelector:	resw 1
   779                              <1> %endif
   780                              <1> 	endstruc
   781                              <1> 
   782                              <1> 	%macro segonlyaddress 0.nolist
   783                              <1> 	istruc SEGONLYADR
   784                              <1> 	iend
   785                              <1> 	%endmacro
   786                              <1> 
   787                              <1> 
   788                              <1> %if _LOADER
   789                              <1> 	struc MOVETABLEENTRY
   790                              <1> mteIdentifier:		resw 1
   791                              <1> mteArrayIndex:		resw 1
   792                              <1> mteStatusMessage:	resw 1
   793                              <1> mteFromArray:
   794                              <1> mteFromBottom:		resw 1
   795                              <1> mteFromTop:		resw 1
   796                              <1> mteFromHidden:		resw 1
   797                              <1> 	endstruc
   798                              <1> %endif
   799                              <1> 
   800                              <1> %if _BOOTLDR
   801                              <1>  %include "iniload.mac"
     1                              <2> %if 0
     2                              <2> 
     3                              <2> lDebug iniload/boot interfacing structs and macros
     4                              <2> 
     5                              <2> Copyright (C) 2008-2025 E. C. Masloch
     6                              <2> 
     7                              <2> Usage of the works is permitted provided that this
     8                              <2> instrument is retained with the works, so that any entity
     9                              <2> that uses the works is notified of this instrument.
    10                              <2> 
    11                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    12                              <2> 
    13                              <2> %endif
    14                              <2> 
    15                              <2> 
    16                              <2> 	struc BS
    17 00000000 ??????              <2> bsJump:	resb 3
    18 00000003 ????????????????    <2> bsOEM:	resb 8
    19                              <2> bsBPB:
    20                              <2> 	endstruc
    21                              <2> 
    22                              <2> 	struc EBPB		;        BPB sec
    23 00000000 ????                <2> bpbBytesPerSector:	resw 1	; offset 00h 0Bh
    24 00000002 ??                  <2> bpbSectorsPerCluster:	resb 1	; offset 02h 0Dh
    25 00000003 ????                <2> bpbReservedSectors:	resw 1	; offset 03h 0Eh
    26 00000005 ??                  <2> bpbNumFATs:		resb 1	; offset 05h 10h
    27 00000006 ????                <2> bpbNumRootDirEnts:	resw 1	; offset 06h 11h -- 0 for FAT32
    28 00000008 ????                <2> bpbTotalSectors:	resw 1	; offset 08h 13h
    29 0000000A ??                  <2> bpbMediaID:		resb 1	; offset 0Ah 15h
    30 0000000B ????                <2> bpbSectorsPerFAT:	resw 1	; offset 0Bh 16h -- 0 for FAT32
    31 0000000D ????                <2> bpbCHSSectors:		resw 1	; offset 0Dh 18h
    32 0000000F ????                <2> bpbCHSHeads:		resw 1	; offset 0Fh 1Ah
    33 00000011 ????????            <2> bpbHiddenSectors:	resd 1	; offset 11h 1Ch
    34 00000015 ????????            <2> bpbTotalSectorsLarge:	resd 1	; offset 15h 20h
    35                              <2> bpbNew:				; offset 19h 24h
    36                              <2> 
    37 00000019 ????????            <2> ebpbSectorsPerFATLarge:	resd 1	; offset 19h 24h
    38 0000001D ????                <2> ebpbFSFlags:		resw 1	; offset 1Dh 28h
    39 0000001F ????                <2> ebpbFSVersion:		resw 1	; offset 1Fh 2Ah
    40 00000021 ????????            <2> ebpbRootCluster:	resd 1	; offset 21h 2Ch
    41 00000025 ????                <2> ebpbFSINFOSector:	resw 1	; offset 25h 30h
    42 00000027 ????                <2> ebpbBackupSector:	resw 1	; offset 27h 32h
    43 00000029 <res Ch>            <2> ebpbReserved:		resb 12	; offset 29h 34h
    44                              <2> ebpbNew:			; offset 35h 40h
    45                              <2> 	endstruc
    46                              <2> 
    47                              <2> 	struc BPBN		; ofs B16 S16 B32 S32
    48 00000000 ??                  <2> bpbnBootUnit:		resb 1	; 00h 19h 24h 35h 40h
    49 00000001 ??                  <2> 			resb 1	; 01h 1Ah 25h 36h 41h
    50 00000002 ??                  <2> bpbnExtBPBSignature:	resb 1	; 02h 1Bh 26h 37h 42h -- 29h for valid BPBN
    51 00000003 ????????            <2> bpbnSerialNumber:	resd 1	; 03h 1Ch 27h 38h 43h
    52 00000007 <res Bh>            <2> bpbnVolumeLabel:	resb 11	; 07h 20h 2Bh 3Ch 47h
    53 00000012 ????????????????    <2> bpbnFilesystemID:	resb 8	; 12h 2Bh 36h 47h 52h
    54                              <2> 	endstruc		; 1Ah 33h 3Eh 4Fh 5Ah
    55                              <2> 
    56                              <2> 	struc DIRENTRY
    57 00000000 ????????????????    <2> deName:		resb 8
    58 00000008 ??????              <2> deExt:		resb 3
    59 0000000B ??                  <2> deAttrib:	resb 1
    60 0000000C ??                  <2> dePlusSize:	resb 1
    61 0000000D ??????????????      <2> 		resb 7
    62 00000014 ????                <2> deClusterHigh:	resw 1
    63 00000016 ????                <2> deTime:		resw 1
    64 00000018 ????                <2> deDate:		resw 1
    65 0000001A ????                <2> deClusterLow:	resw 1
    66 0000001C ????????            <2> deSize:		resd 1
    67                              <2> 	endstruc
    68                              <2> 
    69                              <2> ATTR_READONLY	equ 1
    70                              <2> ATTR_HIDDEN	equ 2
    71                              <2> ATTR_SYSTEM	equ 4
    72                              <2> ATTR_VOLLABEL	equ 8
    73                              <2> ATTR_DIRECTORY	equ 10h
    74                              <2> ATTR_ARCHIVE	equ 20h
    75                              <2> 
    76                              <2> lsvclSignature		equ "CL"
    77                              <2> lsvclBufferLength	equ 256
    78                              <2> 
    79                              <2> 	struc LOADSTACKVARS, -10h
    80 FFFFFFF0 ????????            <2> lsvFirstCluster:	resd 1
    81 FFFFFFF4 ????????            <2> lsvFATSector:		resd 1
    82 FFFFFFF8 ????                <2> lsvFATSeg:		resw 1
    83 FFFFFFFA ????                <2> lsvLoadSeg:		resw 1
    84 FFFFFFFC ????????            <2> lsvDataStart:		resd 1
    85                              <2> 	endstruc
    86                              <2> 
    87                              <2> 	struc LOADDATA, LOADSTACKVARS - 10h
    88 FFFFFFE0 ????                <2> ldMemoryTop:	resw 1
    89 FFFFFFE2 ????                <2> ldLoadTop:	resw 1
    90 FFFFFFE4 ????                <2> ldSectorSeg:	resw 1
    91 FFFFFFE6 ??                  <2> ldFATType:	resb 1
    92                              <2> ldFlags:
    93 FFFFFFE7 ??                  <2> ldHasLBA:	resb 1
    94 FFFFFFE8 ????                <2> ldClusterSize:	resw 1
    95 FFFFFFEA ????                <2> ldParaPerSector:resw 1
    96                              <2> ldDirCluster:			; dword
    97                              <2> ldLoadingSeg:		; word
    98                              <2> ldQueryPatchValue:	; word
    99                              <2> lsvCommandLine:		; word
   100                              <2> .start:		equ $ - lsvclBufferLength
   101 FFFFFFEC ????                <2> .signature:	resw 1
   102                              <2> ldLoadUntilSeg:		; word
   103                              <2> lsvExtra:		; word
   104 FFFFFFEE ??                  <2> .partition:	resb 1	; byte
   105 FFFFFFEF ??                  <2> .flags:		resb 1	; byte
   106                              <2> 	endstruc
   107                              <2> 
   108                              <2> ldhlfPreserveLoader	equ 4
   109                              <2> 
   110                              <2> lsvefNoDataStart	equ 1
   111                              <2> lsvefPartitionNumber	equ 2
   112                              <2> lsvefPreserveLoader	equ 4
   113                              <2> 
   114                              <2> %if lsvefPreserveLoader != ldhlfPreserveLoader
   115                              <2>  %error Unexpected flag values
   116                              <2> %endif
   117                              <2> 
   118                              <2> 	struc LOADCMDLINE, LOADDATA - lsvclBufferLength
   119                              <2> ldCommandLine:
   120 FFFFFEE0 <res 100h>          <2> .start:		resb lsvclBufferLength
   121                              <2> 	endstruc
   122                              <2> 
   123                              <2> ldfHasLBA:	equ 1
   124                              <2> ldfFATInvalid:	equ 2
   125                              <2> ldfFATBuffered:	equ 4
   126                              <2> ldfDataBuffered: equ 8
   127                              <2> 
   128                              <2> 	struc LOADDATA2, LOADDATA - 10h
   129 FFFFFFD0 ????????            <2> ldRootSector:		resd 1
   130 FFFFFFD4 ????                <2> ldEntriesPerSector:	resw 1
   131                              <2> ldDataSegment:		; word
   132 FFFFFFD6 ????                <2> ldLastAvailableSector:	resw 1
   133                              <2> ldDataSector:		; dword
   134 FFFFFFD8 ????                <2> ldParasLeft:		resw 1
   135 FFFFFFDA ????                <2> ldParasDone:		resw 1
   136                              <2> 	endstruc
   137                              <2> 
   138                              <2> 	struc LOADDATA3, LOADDATA2 - 10h
   139 FFFFFFC0 ????????            <2> ldMaxCluster:		resd 1
   140 FFFFFFC4 ????????            <2> ldFileSize:		resd 1
   141 FFFFFFC8 ????????            <2> ldCurrentCluster:	resd 1
   142 FFFFFFCC ????????            <2> ldCurrentSeek:		resd 1
   143                              <2> 	endstruc
   144                              <2> 
   145                              <2> 	struc LOADERIMAGEIDENT
   146 00000000 ????????            <2> liiSignature:		resb 4		; "NLDR"
   147 00000004 ????                <2> liiVersion:		resb 2		; "00"
   148 00000006 ????                <2> liiChecksum:		resw 1		; word sum of first 8 words = 0
   149 00000008 ????                <2> liiAmountParagraphs:	resw 1
   150 0000000A ????????????        <2> liiReserved:		resw 3
   151 00000010 ????                <2> liiEntryQuerySize:	resw 1		; 0 if not supported
   152                              <2> 		; INP:	cs => NLDR image ident
   153                              <2> 		;	ip = this word field content
   154                              <2> 		;	ax = 60h
   155                              <2> 		; OUT:	ax => behind memory requested (should be >= 60h)
   156                              <2> 		; CHG:	es, ds, di, si, bx, cx, dx
   157                              <2> 		; STT:	far called, UP, EI
   158 00000012 ????                <2> liiEntryRelocate:	resw 1		; 0 if not supported
   159                              <2> 		; INP:	cs => NLDR image ident
   160                              <2> 		;	ip = this word field content
   161                              <2> 		;	ax = 60h
   162                              <2> 		; OUT:	ax => relocated NLDR segment (usually 60h)
   163                              <2> 		; CHG:	es, ds, di, si, bx, cx, dx
   164                              <2> 		; STT:	far called, UP, EI
   165 00000014 ????                <2> liiEntryDebug:		resw 1		; 0 if not supported
   166                              <2> 		; INP:	es = ds = cs = ss => relocated NLDR
   167                              <2> 		;	ip = this word field content
   168                              <2> 		;	sp = next word field content
   169                              <2> 		; STT:	running as debuggee, UP, EI
   170 00000016 ????                <2> liiStackPointer:	resw 1
   171                              <2> 	endstruc
   172                              <2> 
   173                              <2> 	struc LBAPACKET
   174 00000000 ????                <2> lpSize:		resw 1
   175 00000002 ????                <2> lpCount:	resw 1
   176 00000004 ????????            <2> lpBuffer:	resd 1
   177 00000008 ????????????????    <2> lpSector:	resq 1
   178                              <2> 	endstruc
   179                              <2> 
   180                              <2> 	struc PARTINFO
   181 00000000 ??                  <2> piBoot:		resb 1
   182 00000001 ??????              <2> piStartCHS:	resb 3
   183 00000004 ??                  <2> piType:		resb 1
   184 00000005 ??????              <2> piEndCHS:	resb 3
   185 00000008 ????????            <2> piStart:	resd 1
   186 0000000C ????????            <2> piLength:	resd 1
   187                              <2> 	endstruc
   188                              <2> 
   189                              <2> ptEmpty:		equ 0
   190                              <2> ptFAT12:		equ 1
   191                              <2> ptFAT16_16BIT_CHS:	equ 4
   192                              <2> ptExtendedCHS:		equ 5
   193                              <2> ptFAT16_CHS:		equ 6
   194                              <2> ptFAT32_CHS:		equ 0Bh
   195                              <2> ptFAT32:		equ 0Ch
   196                              <2> ptFAT16:		equ 0Eh
   197                              <2> ptExtended:		equ 0Fh
   198                              <2> ptLinux:		equ 83h
   199                              <2> ptExtendedLinux:	equ 85h
   200                              <2> 
   201                              <2> 
   202                              <2> 		; Flags of load_unit_flags
   203                              <2> lufForceCHS:		equ 1
   204                              <2> lufForceLBA:		equ 2
   205                              <2> lufForceGeometry:	equ 4
   206                              <2> luf_mask_writable equ lufForceCHS | lufForceLBA | lufForceGeometry
   802                              <1> 
   803                              <1> LOAD_INPUT_FILE_SIZE equ fromparas(paras(-LOADDATA3 + bsBPB + ebpbNew + BPBN_size))
   804                              <1> 
   805                              <1> 	struc LOADSETTINGS
   806 00000000 ????                <1> lsKernelName:	resw 1	; -> kernel file default name
   807 00000002 ????                <1> lsAddName:	resw 1	; -> additional file default name, may be empty string
   808 00000004 ????                <1> lsMinPara:	resw 1	; how much to load at least, fail if file smaller
   809 00000006 ????                <1> lsMaxPara:	resw 1	; how much to load at most (will round up to sector size)
   810 00000008 ????                <1> lsOptions:	resw 1	; option flags
   811 0000000A ????                <1> lsSegment:	resw 1	; => where to load file
   812 0000000C ????????            <1> lsEntry:	resd 1	; relative segment for CS, value for IP
   813 00000010 ????????            <1> lsBPB:		resd 1	; segment for BPB (-1 auto-BPB), offset for BPB
   814 00000014 ????????            <1> lsCopyBPB:	resd 1	; if not all-zeroes, copy BPB to far pointer
   815 00000018 ????                <1> lsCheckOffset:	resw 1	; offset in file segment of word to check
   816 0000001A ????                <1> lsCheckValue:	resw 1	; value to check for word, 0 if unused
   817 0000001C ????????????????    <1> lsName:		resq 1	; ASCIZ load protocol name
   818                              <1> 	endstruc
   819                              <1> 
   820                              <1> 		numdef LUF_DEFAULT_DISKETTE, 0
   821                              <1> 		numdef LUF_DEFAULT_HARDDISK, 0
   822                              <1> %endif
   823                              <1> 
   824                              <1> 
   825                              <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
   826                              <1> 
   827                              <1> 
   828                              <1> 	struc INPUTFILEHANDLE
   829 00000000 ????                <1> ifhHandle:	resw 1
   830 00000002 ????                <1> ifhFlags:	resw 1
   831 00000004 ????????            <1> ifhParentSeek:	resd 1
   832                              <1> 	endstruc
   833                              <1> 
   834                              <1> ifhfIsDup:		equ  100h	; before closing, seek it back
   835                              <1> 	; same value as LBA flag for boot load input files
   836                              <1> ifhfTestReserved1:	equ 1000h
   837                              <1> ifhfTestReserved2:	equ 2000h
   838                              <1> ifhfQuietInput:		equ 4000h	; do not display prompt and input
   839                              <1> ifhfQuietOutput:	equ 8000h	; do not display normal output
   840                              <1> 	; these four are valid for both input file handles and
   841                              <1> 	;  boot load input files.
   842                              <1> 
   843                              <1> 
   844                              <1> 	struc AREASTRUC
   845 00000000 <res 18h>           <1> areastrucEntry:		resb 24
   846 00000018 ????????            <1> areastrucNext:		resd 1
   847 0000001C ????????            <1> areastrucPrev:		resd 1
   848 00000020 ????                <1> areastrucSubAmount:	resw 1
   849 00000022 ????                <1> areastrucSubOffset:	resw 1
   850 00000024 ????                <1> areastrucFunAmount:	resw 1
   851 00000026 ????                <1> areastrucFunOffset:	resw 1
   852                              <1> 	endstruc
   853                              <1> 
   854                              <1> 	struc AREASTRUCSUB
   855 00000000 ????????            <1> areastrucsubLinear:	resd 1
   856 00000004 ????????            <1> areastrucsubLinearEnd:	resd 1
   857 00000008 ????                <1> areastrucsubListOffset:	resw 1
   858 0000000A ????                <1> areastrucsubListAmount:	resw 1
   859                              <1> 	endstruc
   860                              <1> 
   861                              <1> 	struc AREASTRUCFUN
   862 00000000 ????????            <1> areastrucfunLinear:	resd 1
   863 00000004 ????????            <1> areastrucfunLinearEnd:	resd 1
   864 00000008 ????                <1> areastrucfunListOffset:	resw 1
   865 0000000A ????                <1> areastrucfunListAmount:	resw 1
   866                              <1> 	endstruc
   867                              <1> 
   868                              <1> 	struc AREA
   869 00000000 ????                <1> areastart:		resw 1
   870 00000002 ????                <1> areaend:		resw 1
   871 00000004 ????                <1> areamessage:		resw 1
   872 00000006 ????                <1> 			resw 1
   873                              <1> 	endstruc
   874                              <1> 
   875                              <1> 
   876                              <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
   877                              <1> 
   878                              <1> 
   879                              <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
   880                              <1> 
   881                              <1> 
   882                              <1> %if _VDD
   883                              <1> ; standard BOPs for communication with DEBXXVDD on NT platforms
   884                              <1> %macro RegisterModule 0.nolist
   885                              <1> 	db 0C4h, 0C4h, 58h, 0
   886                              <1> 	nop
   887                              <1> %endmacro
   888                              <1> %macro UnRegisterModule 0.nolist
   889                              <1> 	db 0C4h, 0C4h, 58h, 1
   890                              <1> 	nop
   891                              <1> %endmacro
   892                              <1> %macro DispatchCall 0.nolist
   893                              <1> 	db 0C4h, 0C4h, 58h, 2
   894                              <1> 	nop
   895                              <1> %endmacro
   896                              <1> %endif
   897                              <1> 
   898                              <1> %assign CODE_INSURE_COUNT 0
   899                              <1> 
   900                              <1> 		; The entry_to_code_seg/_sel dispatcher in lDEBUG_DATA_ENTRY
   901                              <1> 		;  detects mistaken debugger breakpoints in its
   902                              <1> 		;  in-code-parameter by checking for a low-byte
   903                              <1> 		;  value equal to 0CCh (one-byte int3 opcode).
   904                              <1> 		; Therefore, we insure that all destinations jumped to
   905                              <1> 		;  via that dispatcher do not happen to be located
   906                              <1> 		;  on an offset that gives 0CCh in the low byte.
   907                              <1> 	%imacro code_insure_low_byte_not_0CCh 0.nolist
   908                              <1> %ifn _LINK
   909                              <1>  %if (($ - _CURRENT_SECTION %+ _start) & 0FFh) == 0CCh
   910                              <1> 	nop
   911                              <1>   %assign CODE_INSURE_COUNT 1 + CODE_INSURE_COUNT
   912                              <1>  %endif
   913                              <1> %endif
   914                              <1> 	%endmacro
   915                              <1> 
   916                              <1> 
   917                              <1> 		; dual code segments
   918                              <1> %if _DUALCODE && _PM
   919                              <1> 
   920                              <1> %if _DEBUG
   921                              <1> %idefine dualfunction comment
   922                              <1> %else
   923                              <1> %idefine dualfunction code_insure_low_byte_not_0CCh
   924                              <1> %endif
   925                              <1> 
   926                              <1> %idefine dualreturn call _CURRENT_SECTION %+ _dualret_helper
   927                              <1> %idefine dualdistance far
   928                              <1> 	%imacro dualcall 1.nolist
   929                              <1> %ifndef SECTION_OF_%1
   930                              <1>  %error Unknown target section for symbol %1
   931                              <1> %endif
   932                              <1> 	call _CURRENT_SECTION %+ _to_ %+ %[SECTION_OF_%1] %+ _dualcall_helper
   933                              <1>  %if _DEBUG
   934                              <1> 	jmp strict short %%skipdata
   935                              <1>  %endif
   936                              <1> 	dw %1
   937                              <1> %%skipdata:
   938                              <1> 	%endmacro
   939                              <1> 	%imacro nearcall 1.nolist
   940                              <1> %ifndef SECTION_OF_%1
   941                              <1>  %error Unknown target section for symbol %1
   942                              <1> %endif
   943                              <1> %ifidni %[SECTION_OF_%1], _CURRENT_SECTION
   944                              <1> 	call %1
   945                              <1> %else
   946                              <1> 	call _CURRENT_SECTION %+ _to_ %+ %[SECTION_OF_%1] %+ _nearcall_helper
   947                              <1>  %if _DEBUG
   948                              <1> 	jmp strict short %%skipdata
   949                              <1>  %endif
   950                              <1> 	dw %1
   951                              <1> %%skipdata:
   952                              <1> %endif
   953                              <1> 	%endmacro
   954                              <1> 
   955                              <1> %elif _DUALCODE && ! _PM
   956                              <1> 
   957                              <1> %idefine dualfunction comment
   958                              <1> %idefine dualreturn
   959                              <1> %idefine dualdistance far
   960                              <1> 
   961                              <1> %ifn _LINK
   962                              <1> %define PATCH_RELOCATE_FROM_lDEBUG_CODE ""
   963                              <1> %define PATCH_RELOCATE_FROM_lDEBUG_CODE2 ""
   964                              <1> 	%imacro dualcall 1.nolist
   965                              <1> %ifndef SECTION_OF_%1
   966                              <1>  %error Unknown target section for symbol %1
   967                              <1> %endif
   968                              <1> %ifidni %[SECTION_OF_%1], _CURRENT_SECTION
   969                              <1> 	push cs
   970                              <1> 	call %1
   971                              <1> %else
   972                              <1> 	call relocatedzero:%1
   973                              <1> %push
   974                              <1> %assign %$entry ($ + _CURRENT_SECTION %+ FIXUP) - 2
   975                              <1> 	relocatelist _CURRENT_SECTION, %$entry
   976                              <1> %pop
   977                              <1> %endif
   978                              <1> 	%endmacro
   979                              <1> 	%imacro relocatelist 2.nolist
   980                              <1>  %define PATCH_RELOCATE_FROM_%1 %[PATCH_RELOCATE_FROM_%1],%2
   981                              <1> 	%endmacro
   982                              <1> %else		; _LINK
   983                              <1> 	%idefine dualcall dualcall_with_filename __FILE__,
   984                              <1> 	%imacro dualcall_with_filename 2.nolist
   985                              <1> %ifndef SECTION_OF_%2
   986                              <1>  %error Unknown target section for symbol %2
   987                              <1> %endif
   988                              <1> %ifidni %[SECTION_OF_%2], _CURRENT_SECTION
   989                              <1> 	push cs
   990                              <1> 	call %2
   991                              <1> %else
   992                              <1> 	call relocatedzero:%2
   993                              <1> %ifidn _CURRENT_SECTION, lDEBUG_CODE
   994                              <1>  wllist Lrelocate_from_code, equ $ - 2, %1
   995                              <1> %elifidn _CURRENT_SECTION, lDEBUG_CODE2
   996                              <1>  wllist Lrelocate_from_code2, equ $ - 2, %1
   997                              <1> %else
   998                              <1>  %error Wrong section
   999                              <1> %endif
  1000                              <1> %endif
  1001                              <1> 	%endmacro
  1002                              <1> %endif		; _LINK
  1003                              <1>  %if _DUALCODENEARDUAL
  1004                              <1> 
  1005                              <1> %if _LINK
  1006                              <1> 	%idefine nearcall nearcall_with_filename __FILE__,
  1007                              <1> 	%imacro nearcall_with_filename 2
  1008                              <1> %ifndef SECTION_OF_%2
  1009                              <1>  %error Unknown target section for symbol %2
  1010                              <1> %endif
  1011                              <1> %ifidni %[SECTION_OF_%2], _CURRENT_SECTION
  1012                              <1> 	call %2
  1013                              <1> %else
  1014                              <1>  %push
  1015                              <1>  %xdefine %$originalsection _CURRENT_SECTION
  1016                              <1>  %xdefine %$targetsection SECTION_OF_%2
  1017                              <1>  %deftok %%filenametoken SOURCEFILENAME
  1018                              <1>   %ifndef NEARCALL_THUNK_TO_%2%[%%filenametoken]
  1019                              <1> 	hiddenusesection %$targetsection
  1020                              <1> %define NEARCALL_THUNK_TO_%2%[%%filenametoken] %%nearcall_thunk_to_%2%[%%filenametoken]
  1021                              <1> section_of %%nearcall_thunk_to_%2%[%%filenametoken]
  1022                              <1> dualfunction
  1023                              <1> %%nearcall_thunk_to_%2%[%%filenametoken]:
  1024                              <1> 	call %2
  1025                              <1> 	dualreturn
  1026                              <1> 	retf
  1027                              <1> 
  1028                              <1> 	hiddenusesection %$originalsection
  1029                              <1>   %endif
  1030                              <1>  %pop
  1031                              <1> 	dualcall_with_filename %1, NEARCALL_THUNK_TO_%2%[%%filenametoken]
  1032                              <1> %endif
  1033                              <1> 	%endmacro
  1034                              <1> %elif _LINK_COMPAT	; _LINK
  1035                              <1> 	%imacro nearcall 1
  1036                              <1> %ifndef SECTION_OF_%1
  1037                              <1>  %error Unknown target section for symbol %1
  1038                              <1> %endif
  1039                              <1> %ifidni %[SECTION_OF_%1], _CURRENT_SECTION
  1040                              <1> 	call %1
  1041                              <1> %else
  1042                              <1>  %push
  1043                              <1>  %xdefine %$originalsection _CURRENT_SECTION
  1044                              <1>  %xdefine %$targetsection SECTION_OF_%1
  1045                              <1>  %deftok %%filenametoken SOURCEFILENAME
  1046                              <1>   %ifndef NEARCALL_THUNK_TO_%1%[%%filenametoken]
  1047                              <1> 	hiddenusesection %$targetsection
  1048                              <1> %define NEARCALL_THUNK_TO_%1%[%%filenametoken] %%nearcall_thunk_to_%1%[%%filenametoken]
  1049                              <1> section_of %%nearcall_thunk_to_%1%[%%filenametoken]
  1050                              <1> dualfunction
  1051                              <1> %%nearcall_thunk_to_%1%[%%filenametoken]:
  1052                              <1> 	call %1
  1053                              <1> 	dualreturn
  1054                              <1> 	retf
  1055                              <1> 
  1056                              <1> 	hiddenusesection %$originalsection
  1057                              <1>   %endif
  1058                              <1>  %pop
  1059                              <1> 	dualcall NEARCALL_THUNK_TO_%1%[%%filenametoken]
  1060                              <1> %endif
  1061                              <1> 	%endmacro
  1062                              <1> %else		; _LINK, _LINK_COMPAT
  1063                              <1> 	%imacro nearcall 1
  1064                              <1> %ifndef SECTION_OF_%1
  1065                              <1>  %error Unknown target section for symbol %1
  1066                              <1> %endif
  1067                              <1> %ifidni %[SECTION_OF_%1], _CURRENT_SECTION
  1068                              <1> 	call %1
  1069                              <1> %else
  1070                              <1>  %push
  1071                              <1>  %xdefine %$originalsection _CURRENT_SECTION
  1072                              <1>  %xdefine %$targetsection SECTION_OF_%1
  1073                              <1>   %ifndef NEARCALL_THUNK_TO_%1
  1074                              <1> 	hiddenusesection %$targetsection
  1075                              <1> %define NEARCALL_THUNK_TO_%1 %%nearcall_thunk_to_%1
  1076                              <1> section_of %%nearcall_thunk_to_%1
  1077                              <1> dualfunction
  1078                              <1> %%nearcall_thunk_to_%1:
  1079                              <1> 	call %1
  1080                              <1> 	dualreturn
  1081                              <1> 	retf
  1082                              <1> 
  1083                              <1> 	hiddenusesection %$originalsection
  1084                              <1>   %endif
  1085                              <1>  %pop
  1086                              <1> 	dualcall NEARCALL_THUNK_TO_%1
  1087                              <1> %endif
  1088                              <1> 	%endmacro
  1089                              <1> %endif		; _LINK, _LINK_COMPAT
  1090                              <1>  %else
  1091                              <1> 	%imacro nearcall 1.nolist
  1092                              <1> %ifndef SECTION_OF_%1
  1093                              <1>  %error Unknown target section for symbol %1
  1094                              <1> %endif
  1095                              <1> %ifidni %[SECTION_OF_%1], _CURRENT_SECTION
  1096                              <1> 	call %1
  1097                              <1> %else
  1098                              <1> 	call _CURRENT_SECTION %+ _to_ %+ %[SECTION_OF_%1] %+ _nearcall_helper
  1099                              <1>  %if _DEBUG
  1100                              <1> 	jmp strict short %%skipdata
  1101                              <1>  %endif
  1102                              <1> 	dw %1
  1103                              <1> %%skipdata:
  1104                              <1> %endif
  1105                              <1> 	%endmacro
  1106                              <1>  %endif
  1107                              <1> %elif ! _DUALCODE
  1108                              <1> 
  1109                              <1> %idefine dualfunction comment
  1110                              <1> %idefine dualreturn
  1111                              <1> %idefine dualdistance near
  1112                              <1> 	%imacro dualcall 1.nolist
  1113                              <1> 	call %1
  1114                              <1> 	%endmacro
  1115                              <1> 	%imacro nearcall 1.nolist
  1116                              <1> 	call %1
  1117                              <1> 	%endmacro
  1118                              <1> %assign _SYMBOLICDUALCODE 0
  1119                              <1> %assign _SYMBOLASMDUALCODE 0
  1120                              <1> 
  1121                              <1> %else
  1122                              <1>  %error Unexpected defines
  1123                              <1> %endif
  1124                              <1> 
  1125                              <1> %ifn _SYMBOLICDUALCODE
  1126                              <1>  %assign _SYMBOLASMDUALCODE 0
  1127                              <1> %endif
  1128                              <1> 
  1129                              <1>  %if _SYMBOLIC && _DUALCODE && _SYMBOLASMDUALCODE
  1130                              <1> %idefine dual2function	dualfunction
  1131                              <1> %idefine dual2return	dualreturn
  1132                              <1> %idefine dual2distance	dualdistance
  1133                              <1> %idefine dual2call	dualcall
  1134                              <1>  %else
  1135                              <1> %idefine dual2function comment
  1136                              <1> %idefine dual2return
  1137                              <1> %idefine dual2distance near
  1138                              <1> 	%imacro dual2call 1.nolist
  1139                              <1> 	call %1
  1140                              <1> 	%endmacro
  1141                              <1>  %endif
  1142                              <1> 
  1143                              <1> 
  1144                              <1> 	numdef CHECKSECTION, 0
  1145                              <1> 	numdef CHECKCALLSECTION, _CHECKSECTION
  1146                              <1> 	numdef CHECKJMPSECTION, _CHECKSECTION
  1147                              <1> 	numdef CHECKJCCSECTION, _CHECKSECTION
  1148                              <1> 
  1149                              <1> %if _CHECKCALLSECTION
  1150                              <1> 	%imacro call 1.nolist
  1151                              <1> 	%? %1
  1152                              <1> checksection %1, %?, call
  1153                              <1> 	%endmacro
  1154                              <1> %endif
  1155                              <1> %if _CHECKJMPSECTION
  1156                              <1> 	%imacro jmp 1.nolist
  1157                              <1> 	%? %1
  1158                              <1> checksection %1, %?, jmp
  1159                              <1> 	%endmacro
  1160                              <1> %endif
  1161                              <1> %if _CHECKJCCSECTION
  1162                              <1> 	%imacro je 1.nolist
  1163                              <1> 	%? %1
  1164                              <1> checksection %1, %?, jcc
  1165                              <1> 	%endmacro
  1166                              <1> 	%imacro jne 1.nolist
  1167                              <1> 	%? %1
  1168                              <1> checksection %1, %?, jcc
  1169                              <1> 	%endmacro
  1170                              <1> 	%imacro jz 1.nolist
  1171                              <1> 	%? %1
  1172                              <1> checksection %1, %?, jcc
  1173                              <1> 	%endmacro
  1174                              <1> 	%imacro jnz 1.nolist
  1175                              <1> 	%? %1
  1176                              <1> checksection %1, %?, jcc
  1177                              <1> 	%endmacro
  1178                              <1> 
  1179                              <1> 	%imacro jb 1.nolist
  1180                              <1> 	%? %1
  1181                              <1> checksection %1, %?, jcc
  1182                              <1> 	%endmacro
  1183                              <1> 	%imacro jnb 1.nolist
  1184                              <1> 	%? %1
  1185                              <1> checksection %1, %?, jcc
  1186                              <1> 	%endmacro
  1187                              <1> 	%imacro jbe 1.nolist
  1188                              <1> 	%? %1
  1189                              <1> checksection %1, %?, jcc
  1190                              <1> 	%endmacro
  1191                              <1> 	%imacro jnbe 1.nolist
  1192                              <1> 	%? %1
  1193                              <1> checksection %1, %?, jcc
  1194                              <1> 	%endmacro
  1195                              <1> 	%imacro jc 1.nolist
  1196                              <1> 	%? %1
  1197                              <1> checksection %1, %?, jcc
  1198                              <1> 	%endmacro
  1199                              <1> 	%imacro jnc 1.nolist
  1200                              <1> 	%? %1
  1201                              <1> checksection %1, %?, jcc
  1202                              <1> 	%endmacro
  1203                              <1> 	%imacro ja 1.nolist
  1204                              <1> 	%? %1
  1205                              <1> checksection %1, %?, jcc
  1206                              <1> 	%endmacro
  1207                              <1> 	%imacro jna 1.nolist
  1208                              <1> 	%? %1
  1209                              <1> checksection %1, %?, jcc
  1210                              <1> 	%endmacro
  1211                              <1> 	%imacro jae 1.nolist
  1212                              <1> 	%? %1
  1213                              <1> checksection %1, %?, jcc
  1214                              <1> 	%endmacro
  1215                              <1> 	%imacro jnae 1.nolist
  1216                              <1> 	%? %1
  1217                              <1> checksection %1, %?, jcc
  1218                              <1> 	%endmacro
  1219                              <1> 
  1220                              <1> 	%imacro jl 1.nolist
  1221                              <1> 	%? %1
  1222                              <1> checksection %1, %?, jcc
  1223                              <1> 	%endmacro
  1224                              <1> 	%imacro jnl 1.nolist
  1225                              <1> 	%? %1
  1226                              <1> checksection %1, %?, jcc
  1227                              <1> 	%endmacro
  1228                              <1> 	%imacro jle 1.nolist
  1229                              <1> 	%? %1
  1230                              <1> checksection %1, %?, jcc
  1231                              <1> 	%endmacro
  1232                              <1> 	%imacro jnle 1.nolist
  1233                              <1> 	%? %1
  1234                              <1> checksection %1, %?, jcc
  1235                              <1> 	%endmacro
  1236                              <1> 	%imacro jg 1.nolist
  1237                              <1> 	%? %1
  1238                              <1> checksection %1, %?, jcc
  1239                              <1> 	%endmacro
  1240                              <1> 	%imacro jng 1.nolist
  1241                              <1> 	%? %1
  1242                              <1> checksection %1, %?, jcc
  1243                              <1> 	%endmacro
  1244                              <1> 	%imacro jge 1.nolist
  1245                              <1> 	%? %1
  1246                              <1> checksection %1, %?, jcc
  1247                              <1> 	%endmacro
  1248                              <1> 	%imacro jnge 1.nolist
  1249                              <1> 	%? %1
  1250                              <1> checksection %1, %?, jcc
  1251                              <1> 	%endmacro
  1252                              <1> 
  1253                              <1> 	%imacro jo 1.nolist
  1254                              <1> 	%? %1
  1255                              <1> checksection %1, %?, jcc
  1256                              <1> 	%endmacro
  1257                              <1> 	%imacro jno 1.nolist
  1258                              <1> 	%? %1
  1259                              <1> checksection %1, %?, jcc
  1260                              <1> 	%endmacro
  1261                              <1> 	%imacro jp 1.nolist
  1262                              <1> 	%? %1
  1263                              <1> checksection %1, %?, jcc
  1264                              <1> 	%endmacro
  1265                              <1> 	%imacro jnp 1.nolist
  1266                              <1> 	%? %1
  1267                              <1> checksection %1, %?, jcc
  1268                              <1> 	%endmacro
  1269                              <1> 	%imacro jpe 1.nolist
  1270                              <1> 	%? %1
  1271                              <1> checksection %1, %?, jcc
  1272                              <1> 	%endmacro
  1273                              <1> 	%imacro jnpe 1.nolist
  1274                              <1> 	%? %1
  1275                              <1> checksection %1, %?, jcc
  1276                              <1> 	%endmacro
  1277                              <1> 	%imacro jpo 1.nolist
  1278                              <1> 	%? %1
  1279                              <1> checksection %1, %?, jcc
  1280                              <1> 	%endmacro
  1281                              <1> 	%imacro jnpo 1.nolist
  1282                              <1> 	%? %1
  1283                              <1> checksection %1, %?, jcc
  1284                              <1> 	%endmacro
  1285                              <1> 	%imacro js 1.nolist
  1286                              <1> 	%? %1
  1287                              <1> checksection %1, %?, jcc
  1288                              <1> 	%endmacro
  1289                              <1> 	%imacro jns 1.nolist
  1290                              <1> 	%? %1
  1291                              <1> checksection %1, %?, jcc
  1292                              <1> 	%endmacro
  1293                              <1> 
  1294                              <1> 	%imacro jcxz 1.nolist
  1295                              <1> 	%? %1
  1296                              <1> checksection %1, %?, jcc
  1297                              <1> 	%endmacro
  1298                              <1> 	%imacro jecxz 1.nolist
  1299                              <1> 	%? %1
  1300                              <1> checksection %1, %?, jcc
  1301                              <1> 	%endmacro
  1302                              <1> 	%imacro loop 1.nolist
  1303                              <1> 	%? %1
  1304                              <1> checksection %1, %?, jcc
  1305                              <1> 	%endmacro
  1306                              <1> 	%imacro loopz 1.nolist
  1307                              <1> 	%? %1
  1308                              <1> checksection %1, %?, jcc
  1309                              <1> 	%endmacro
  1310                              <1> 	%imacro loopnz 1.nolist
  1311                              <1> 	%? %1
  1312                              <1> checksection %1, %?, jcc
  1313                              <1> 	%endmacro
  1314                              <1> 	%imacro loope 1.nolist
  1315                              <1> 	%? %1
  1316                              <1> checksection %1, %?, jcc
  1317                              <1> 	%endmacro
  1318                              <1> 	%imacro loopne 1.nolist
  1319                              <1> 	%? %1
  1320                              <1> checksection %1, %?, jcc
  1321                              <1> 	%endmacro
  1322                              <1> %endif
  1323                              <1> 
  1324                              <1> 	%imacro checksection 3.nolist
  1325                              <1> %push
  1326                              <1>  %defstr %$string %1
  1327                              <1>  %substr %$shortword %$string 1, 5
  1328                              <1>  %substr %$shortsep %$string 6, 1
  1329                              <1>  %substr %$nearword %$string 1, 4
  1330                              <1>  %substr %$nearsep %$string 5, 1
  1331                              <1>  %substr %$farword %$string 1, 3
  1332                              <1>  %substr %$farsep %$string 4, 1
  1333                              <1>  %assign %$isshort 0
  1334                              <1>  %ifidni %$shortword, "short"
  1335                              <1>   %if %$shortsep == 32 || %$shortsep == 9
  1336                              <1>    %assign %$isshort 1
  1337                              <1>    %substr %$string %$string 7, -1
  1338                              <1>   %elif %$shortsep == '['
  1339                              <1>    %assign %$isshort 1
  1340                              <1>    %substr %$string %$string 6, -1
  1341                              <1>   %endif
  1342                              <1>  %endif
  1343                              <1>  %assign %$isnear 0
  1344                              <1>  %ifidni %$nearword, "near"
  1345                              <1>   %if %$nearsep == 32 || %$nearsep == 9
  1346                              <1>    %assign %$isnear 1
  1347                              <1>    %substr %$string %$string 6, -1
  1348                              <1>   %elif %$nearsep == '['
  1349                              <1>    %assign %$isnear 1
  1350                              <1>    %substr %$string %$string 5, -1
  1351                              <1>   %endif
  1352                              <1>  %endif
  1353                              <1>  %assign %$isfar 0
  1354                              <1>  %ifidni %$farword, "far"
  1355                              <1>   %if %$farsep == 32 || %$farsep == 9
  1356                              <1>    %assign %$isfar 1
  1357                              <1>    %substr %$string %$string 5, -1
  1358                              <1>   %elif %$farsep == '['
  1359                              <1>    %assign %$isfar 1
  1360                              <1>    %substr %$string %$string 4, -1
  1361                              <1>   %endif
  1362                              <1>  %endif
  1363                              <1> 
  1364                              <1>  %deftok %$token %$string
  1365                              <1> 
  1366                              <1>  %assign %$size 2
  1367                              <1>  %assign %$isreg 0
  1368                              <1>  %assign %$exit 0
  1369                              <1>  %rep 2
  1370                              <1>   %ifn %$exit
  1371                              <1>    %if %$size == 2
  1372                              <1>     %define %$regnames "ax  cx  dx  bx  sp  bp  si  di  "
  1373                              <1>    %elif %$size == 4
  1374                              <1>     %define %$regnames "eax ecx edx ebx esp ebp esi edi "
  1375                              <1>    %endif
  1376                              <1>    %assign %$index 0
  1377                              <1>    %rep 8
  1378                              <1>     %ifn %$exit
  1379                              <1>      %substr %$reg %$regnames %$index * 4 + 1, 4
  1380                              <1>      %deftok %$reg %$reg
  1381                              <1>      %ifnempty %$reg
  1382                              <1>       %ifidni %$reg, %$token
  1383                              <1>        %assign %$isreg %$size
  1384                              <1>        %assign %$exit 1
  1385                              <1>        %exitrep
  1386                              <1>       %endif
  1387                              <1>      %endif
  1388                              <1>     %endif
  1389                              <1>     %assign %$index %$index + 1
  1390                              <1>    %endrep
  1391                              <1>    %if %$exit
  1392                              <1>     %exitrep
  1393                              <1>    %endif
  1394                              <1>    %assign %$size %$size * 2
  1395                              <1>   %endif
  1396                              <1>  %endrep
  1397                              <1> 
  1398                              <1>  %assign %$ismulti 0
  1399                              <1>  %assign %$ismem 0
  1400                              <1>  %strlen %$length %$string
  1401                              <1>  %assign %$ii 0
  1402                              <1>  %rep %$length
  1403                              <1>   %substr %$point %$string %$ii + 1, 1
  1404                              <1>   %if %$point == 32 || %$point == 9
  1405                              <1>    %assign %$ismulti 1
  1406                              <1>   %endif
  1407                              <1>   %ifidn %$point, '['
  1408                              <1>    %assign %$ismem 1
  1409                              <1>   %endif
  1410                              <1>   %assign %$ii %$ii + 1
  1411                              <1>  %endrep
  1412                              <1> 
  1413                              <1>  %assign %$islocal 0
  1414                              <1>  %substr %$point %$string 1, 1
  1415                              <1>  %substr %$prefix %$string 1, 3
  1416                              <1>  %ifidn %$point, '.'
  1417                              <1>   %ifnidn %$prefix, '..@'
  1418                              <1>    %assign %$islocal 1
  1419                              <1>   %endif
  1420                              <1>  %endif
  1421                              <1> 
  1422                              <1>  %if %$isreg
  1423                              <1>   %if %$isreg == 4
  1424                              <1>    %warning 32-bit reg %3: %2 %1
  1425                              <1>   %else
  1426                              <1>    %warning 16-bit reg %3: %2 %1
  1427                              <1>   %endif
  1428                              <1>  %elif %$ismulti || %$ismem
  1429                              <1>   %warning not single %3: %2 %1
  1430                              <1>  %elif %$islocal
  1431                              <1>   %ifidni %3, call
  1432                              <1>    %warning local %3: %2 %1
  1433                              <1>   %endif
  1434                              <1>  %elifdef SECTION_OF_%[%$token]
  1435                              <1>   %ifnidni SECTION_OF_%[%$token], _CURRENT_SECTION
  1436                              <1>    %error Symbol %$token called wrongly: section_of=SECTION_OF_%[%$token], current=_CURRENT_SECTION
  1437                              <1>   %endif
  1438                              <1>  %endif
  1439                              <1> %pop
  1440                              <1> 	%endmacro
  1441                              <1> 
  1442                              <1> 
  1443                              <1> 	struc MEMREF
  1444 00000000 ????????            <1> mrLinear:		resd 1
  1445 00000004 ????????            <1> mrOffset:		resd 1
  1446 00000008 ????                <1> mrSegmentSelector:	resw 1
  1447 0000000A ????                <1> mrFlags:		resw 1
  1448 0000000C ????????            <1> mrLength:		resd 1
  1449                              <1> 	endstruc
  1450                              <1> 
  1451                              <1> 		; Currently only direct branches are allowed when
  1452                              <1> 		;  disassembling from the U command. (That is,
  1453                              <1> 		;  [disflags] & DIS_F_SHOW is clear.) All other
  1454                              <1> 		;  types of references depend on segment registers
  1455                              <1> 		;  and sometimes base and index registers, which are
  1456                              <1> 		;  not known ahead of time. They are only known for
  1457                              <1> 		;  the R command's disassembly. (DIS_F_SHOW set.)
  1458                              <1> 		; (When a mov ss or pop to ss will change ss, a
  1459                              <1> 		;  subsequent instruction using ss will not be
  1460                              <1> 		;  disassembled with the correct ss value.
  1461                              <1> 		;  This should be rare though. We may at a later
  1462                              <1> 		;  point detect this condition and not display
  1463                              <1> 		;  references with ss then.)
  1464                              <1> mrfBranchDirect:	equ    1
  1465                              <1> mrfMem:			equ    2
  1466                              <1> mrfMemSource:		equ    4
  1467                              <1> mrfMemDest:		equ    8
  1468                              <1> mrfA32:			equ   10h
  1469                              <1> mrfString:		equ   20h
  1470                              <1> mrfStringSource:	equ   40h
  1471                              <1> mrfStringDest:		equ   80h
  1472                              <1> mrfUsesSS:		equ  100h
  1473                              <1> mrfBranchIndirect:	equ  200h
  1474                              <1> 
  1475                              <1> 
  1476                              <1> %if _VXCHG && ! _VXCHGBIOS
  1477                              <1> 	struc XMSM
  1478 00000000 ????????            <1> .size_:		resd 1
  1479 00000004 ????                <1> .srchdl:	resw 1
  1480 00000006 ????????            <1> .srcadr:	resd 1
  1481 0000000A ????                <1> .dsthdl:	resw 1
  1482 0000000C ????????            <1> .dstadr:	resd 1
  1483                              <1> 	endstruc
  1484                              <1> %endif
  1485                              <1> 
  1486                              <1> 
  1487                              <1> 	; doscall is used by symbols.asm and run.asm and in
  1488                              <1> 	;  cmd3_close_handle, so define it prior
  1489                              <1> %if _PM && _NOEXTENDER
  1490                              <1> %macro doscall 0
  1491                              <1> 	nearcall _doscall
  1492                              <1> %endmacro
  1493                              <1> %else
  1494                              <1> 		; When we don't support non-extended DPMI all Int21 calls
  1495                              <1> 		; are either in Real Mode or extended (all are real Int21
  1496                              <1> 		; instructions).
  1497                              <1> %macro doscall 0
  1498                              <1> 	int 21h
  1499                              <1> %endmacro
  1500                              <1> %endif
  1501                              <1> 
  1502                              <1> 
  1503                              <1> %if _LINK
  1504                              <1> %imacro wlcalc 1-2.nolist
  1505                              <1> %deftok %%filenametoken __FILE__
  1506                              <1>  global wlcalc_%1?%[%%l]%[%%filenametoken]
  1507                              <1> wlcalc_%1?%[%%l]%[%%filenametoken]: %2
  1508                              <1> %endmacro
  1509                              <1> %endif
  1510                              <1> 
  1511                              <1> %if _BOOTLDR && _LINK
  1512                              <1> %macro lot_equate 2.nolist
  1513                              <1> LOAD_%2 equ %1
  1514                              <1> %endmacro
  1515                              <1> 
  1516                              <1> 	lot_equate    1, SET_DL_UNIT
  1517                              <1> 	lot_equate    2, SET_BL_UNIT
  1518                              <1> 	lot_equate    4, SET_SIDI_CLUSTER
  1519                              <1> 	lot_equate  10h, SET_DSSI_DPT
  1520                              <1> 	lot_equate  20h, PUSH_DPT
  1521                              <1> 	lot_equate  40h, DATASTART_HIDDEN
  1522                              <1> 	lot_equate  80h, SET_AXBX_DATASTART
  1523                              <1> 	lot_equate 100h, SET_DSBP_BPB
  1524                              <1> 	lot_equate 200h, LBA_SET_TYPE
  1525                              <1> 	lot_equate 400h, MESSAGE_TABLE
  1526                              <1> 	lot_equate 800h, SET_AXBX_ROOT_HIDDEN
  1527                              <1> 	lot_equate 1000h, CMDLINE
  1528                              <1> 	lot_equate 2000h, NO_BPB
  1529                              <1> 	lot_equate 4000h, SET_DSSI_PARTINFO
  1530                              <1> %endif
  1531                              <1> 
  1532                              <1> %if _HELP_COMPRESSED
  1533                              <1>  %assign NONCOMPRESSEDFLAG 1
  1534                              <1> %else
  1535                              <1>  %assign NONCOMPRESSEDFLAG 0
  1536                              <1> %endif
  1537                              <1> 
  1538                              <1> [list +]
  1539                              <1> 
  1540                              <1> %if _LINK
  1541                              <1>  %if _ONLY386
  1542                              <1> 	cpu 386
  1543                              <1>  %else
  1544                              <1> 	cpu 8086
  1545                              <1>  %endif
  1546                              <1> 
  1547                              <1> auxbuff_size: equ (_AUXBUFFSIZE+15) & ~15
  1548                              <1> 	endarea auxbuff, 1
  1549                              <1> 
  1550                              <1> auxbuff_max_size: equ (_AUXBUFFMAXSIZE+15) & ~15
  1551                              <1> 	endarea auxbuff_max, 1
  1552                              <1> 
  1553                              <1> %if _INIT_MAX
  1554                              <1>  auxbuff_init_size: equ (_AUXBUFFMAXSIZE+15) & ~15
  1555                              <1> %else
  1556                              <1>  auxbuff_init_size: equ (_AUXBUFFSIZE+15) & ~15
  1557                              <1> %endif
  1558                              <1> 	endarea auxbuff_init, 1
  1559                              <1> 
  1560                              <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
  1561                              <1> %endif
    21                                  %endif
    22                                  
    23                                  
    24                                  	numdef LZEXEDAT,	0
    25                                  
    26                                  %if _MESSAGESEGMENT
    27                                   %define usemessagesegment hiddenusesection MESSAGESEGMENT
    28                                  %else
    29                                   %define usemessagesegment hiddenusesection lDEBUG_DATA_ENTRY
    30                                  %endif
    31                                  
    32                                  %define MESSAGE_INLINE 1
    33                                  
    34                                  %if _HELP_EXTERNAL && _HELP_COMPRESSED
    35                                   %imacro helppage 1-2
    36                                    %defstr %%basename %1
    37                                    %if _LZEXEDAT
    38                                     %strcat %%includename %%basename, ".hlz"
    39                                    %else
    40                                     %strcat %%includename %%basename, ".hhs"
    41                                    %endif
    42                                  	align 2, db 0
    43                                  %00:
    44                                  	dw %%end - %%start
    45                                  %%start:
    46                                  	incbin %%includename
    47                                  %%end:
    48                                   %endmacro
    49                                  %elif _HELP_EXTERNAL
    50                                   %imacro helppage 1-2 0
    51                                    %defstr %%basename %1
    52                                    %strcat %%includename %%basename, ".txt"
    53                                  %00:
    54                                  	incbin %%includename
    55                                    %ifn %2
    56                                  	asciz
    57                                    %endif
    58                                   %endmacro
    59                                  %else
    60                                   %imacro helppage 1-2 0
    61                                    %defstr %%basename %1
    62                                    %strcat %%includename "help/", %%basename, ".asm"
    63                                  %00:
    64                                    %include %%includename
    65                                    %ifn %2
    66                                  	asciz
    67                                    %endif
    68                                   %endmacro
    69                                  %endif
    70                                  
    71                                  
    72                                  %if _ELDLINKINFO
    73                                  	usemessagesegment
    73          ------------------       note: usesection MESSAGESEGMENT
    74                                  %include "linkinfo.asm"
     1                              <1> 
     2                              <1> %if 0
     3                              <1> 
     4                              <1> Extensions for lDebug link info
     5                              <1> 
     6                              <1> Copyright (C) 2008-2026 E. C. Masloch
     7                              <1> 
     8                              <1> Usage of the works is permitted provided that this
     9                              <1> instrument is retained with the works, so that any entity
    10                              <1> that uses the works is notified of this instrument.
    11                              <1> 
    12                              <1> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    13                              <1> 
    14                              <1> %endif
    15                              <1> 
    16                              <1> 
    17                              <1> %if _LINKHASH
    18                              <1>  %include "nasmhash.mac"
     1                              <2> 
     2                              <2> %if 0
     3                              <2> 
     4                              <2> Hashing macros
     5                              <2>  by E. C. Masloch, 2019
     6                              <2> 
     7                              <2> Usage of the works is permitted provided that this
     8                              <2> instrument is retained with the works, so that any entity
     9                              <2> that uses the works is notified of this instrument.
    10                              <2> 
    11                              <2> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    12                              <2> 
    13                              <2> %endif
    14                              <2> 
    15                              <2> %ifndef __NASMHASH_MAC__
    16                              <2> %assign __NASMHASH_MAC__ 1
    17                              <2> 
    18                              <2> 
    19                              <2> 	%macro hashdef 2+.nolist
    20                              <2> %ifempty %2
    21                              <2>  %assign _%1 1
    22                              <2> %else
    23                              <2> %ifstr %2
    24                              <2>  %define %%string %2
    25                              <2> %elifid %2
    26                              <2>  %defstr %%string %2
    27                              <2> %elifnum %2
    28                              <2>  %defstr %%string %2
    29                              <2> %eliftok %2
    30                              <2>  %defstr %%string %2
    31                              <2> %else
    32                              <2>  %error Unknown input
    33                              <2> %endif
    34                              <2> %strlen %%length %%string
    35                              <2> %assign %%hash 1
    36                              <2> %assign %%index 1
    37                              <2> %rep %%length
    38                              <2>  %substr %%char %%string %%index
    39                              <2>  %assign %%hash (%%hash * 31 + %%char) & 0FFFFh
    40                              <2>  %assign %%index %%index + 1
    41                              <2> %endrep
    42                              <2> %assign _%1 %%hash
    43                              <2> %endif
    44                              <2> 	%endmacro
    45                              <2> 
    46                              <2> 
    47                              <2> %endif
    19                              <1> %endif
    20                              <1> 
    21                              <1> %define LINKINFO_DATA_PREFIXES ""
    22                              <1> %define LINKINFO_DATA_ENTRIES ""
    23                              <1> %define LINKINFO_DATA_ADDRESSES ""
    24                              <1> %define LINKINFO_DATA_MESSAGES db ""
    25                              <1> %assign LINKINFO_DATA_AMOUNT 0
    26                              <1> 
    27                              <1> %imacro linkinfo_data 1-*.nolist
    28                              <1> %rep %0
    29                              <1> 	linkinfo_data_as %1, %1
    30                              <1>   %rotate 1
    31                              <1> %endrep
    32                              <1> %endmacro
    33                              <1> 
    34                              <1> %imacro linkinfo_data_as 2.nolist
    35                              <1>  %push
    36                              <1>   %ifstr %1
    37                              <1>    %xdefine %$string %1
    38                              <1>    %define %$token %%token
    39                              <1>   %else
    40                              <1>    %defstr %$string %1
    41                              <1>    %xdefine %$token %1
    42                              <1>   %endif
    43                              <1>   %ifn _LINKHASH
    44                              <1>    %substr %$prefix %$string 1, 2
    45                              <1>    %substr %$suffix %$string 3, -1
    46                              <1>    %strlen %$length %$string
    47                              <1>    %if %$length < 2
    48                              <1>     %fatal Too short link info data name
    49                              <1>    %endif
    50                              <1>    %if %$length > 63 + 2
    51                              <1>     %fatal Too long link info data name
    52                              <1>    %endif
    53                              <1>    %xdefine LINKINFO_DATA_PREFIXES LINKINFO_DATA_PREFIXES, %$prefix
    54                              <1>    %xdefine LINKINFO_DATA_ENTRIES LINKINFO_DATA_ENTRIES, %%message_%[%$token]
    55                              <1>    %xdefine LINKINFO_DATA_ADDRESSES LINKINFO_DATA_ADDRESSES, %2
    56                              <1>    %xdefine LINKINFO_DATA_MESSAGES LINKINFO_DATA_MESSAGES, %%message_%[%$token]:, {counted %$suffix}
    57                              <1>   %else
    58                              <1>    %xdefine %$suffix %$string
    59                              <1> hashdef HASH, %$string
    60                              <1>    %strlen %$length %$string
    61                              <1>    %if %$length > 63 + 2
    62                              <1>     %fatal Too long link info data name
    63                              <1>    %endif
    64                              <1>    %xdefine LINKINFO_DATA_PREFIXES LINKINFO_DATA_PREFIXES, _HASH
    65                              <1>    %xdefine LINKINFO_DATA_ENTRIES LINKINFO_DATA_ENTRIES, %%message_%[%$token]
    66                              <1>    %xdefine LINKINFO_DATA_ADDRESSES LINKINFO_DATA_ADDRESSES, %2
    67                              <1>    %xdefine LINKINFO_DATA_MESSAGES LINKINFO_DATA_MESSAGES, %%message_%[%$token]:, {counted %$suffix}
    68                              <1>   %endif
    69                              <1>   %assign LINKINFO_DATA_AMOUNT LINKINFO_DATA_AMOUNT + 1
    70                              <1>   %rotate 1
    71                              <1>  %pop
    72                              <1> %endmacro
    73                              <1> 
    74                              <1> 
    75                              <1> %define LINKINFO_CODE_PREFIXES ""
    76                              <1> %define LINKINFO_CODE_ENTRIES ""
    77                              <1> %define LINKINFO_CODE_ADDRESSES ""
    78                              <1> %define LINKINFO_CODE_MESSAGES db ""
    79                              <1> %assign LINKINFO_CODE_AMOUNT 0
    80                              <1> 
    81                              <1> %imacro linkinfo_code 1-*.nolist
    82                              <1> %rep %0
    83                              <1> 	linkinfo_code_as %1, %1
    84                              <1>   %rotate 1
    85                              <1> %endrep
    86                              <1> %endmacro
    87                              <1> 
    88                              <1> %imacro linkinfo_code_as 2.nolist
    89                              <1>  %push
    90                              <1>   %if LINKINFO_CODE_SEGMENT == 0
    91                              <1>    %define %$section lDEBUG_CODE
    92                              <1>   %elif LINKINFO_CODE_SEGMENT == 1
    93                              <1>    %define %$section lDEBUG_CODE2
    94                              <1>   %elif LINKINFO_CODE_SEGMENT == 2
    95                              <1>    %define %$section lDEBUG_DATA_ENTRY
    96                              <1>   %else
    97                              <1>    %fatal Unknown link info code section
    98                              <1>   %endif
    99                              <1>   %ifndef SECTION_OF_%2
   100                              <1>    %error No section specified for link symbol %1
   101                              <1>   %elifnidni SECTION_OF_%2, %$section
   102                              <1>    %error Wrong section for link symbol %1: section_of=SECTION_OF_%1, current=%$section
   103                              <1>   %endif
   104                              <1>   %ifstr %1
   105                              <1>    %xdefine %$string %1
   106                              <1>    %define %$token %%token
   107                              <1>   %else
   108                              <1>    %defstr %$string %1
   109                              <1>    %xdefine %$token %1
   110                              <1>   %endif
   111                              <1>   %ifn _LINKHASH
   112                              <1>    %substr %$prefix %$string 1, 2
   113                              <1>    %substr %$suffix %$string 3, -1
   114                              <1>    %strlen %$length %$string
   115                              <1>    %if %$length < 2
   116                              <1>     %fatal Too short link info code name
   117                              <1>    %endif
   118                              <1>    %if %$length > 63 + 2
   119                              <1>     %fatal Too long link info code name
   120                              <1>    %endif
   121                              <1>    %xdefine LINKINFO_CODE_PREFIXES LINKINFO_CODE_PREFIXES, %$prefix
   122                              <1>    %xdefine LINKINFO_CODE_ENTRIES LINKINFO_CODE_ENTRIES, %%message_%[%$token]
   123                              <1>    %xdefine LINKINFO_CODE_ADDRESSES LINKINFO_CODE_ADDRESSES, %2, LINKINFO_CODE_SEGMENT
   124                              <1>    %xdefine LINKINFO_CODE_MESSAGES LINKINFO_CODE_MESSAGES, %%message_%[%$token]:, {counted %$suffix}
   125                              <1>   %else
   126                              <1>    %xdefine %$suffix %$string
   127                              <1> hashdef HASH, %$string
   128                              <1>    %strlen %$length %$string
   129                              <1>    %if %$length > 63 + 2
   130                              <1>     %fatal Too long link info code name
   131                              <1>    %endif
   132                              <1>    %xdefine LINKINFO_CODE_PREFIXES LINKINFO_CODE_PREFIXES, _HASH
   133                              <1>    %xdefine LINKINFO_CODE_ENTRIES LINKINFO_CODE_ENTRIES, %%message_%[%$token]
   134                              <1>    %xdefine LINKINFO_CODE_ADDRESSES LINKINFO_CODE_ADDRESSES, %2, LINKINFO_CODE_SEGMENT
   135                              <1>    %xdefine LINKINFO_CODE_MESSAGES LINKINFO_CODE_MESSAGES, %%message_%[%$token]:, {counted %$suffix}
   136                              <1>   %endif
   137                              <1>   %assign LINKINFO_CODE_AMOUNT LINKINFO_CODE_AMOUNT + 1
   138                              <1>  %pop
   139                              <1> %endmacro
   140                              <1> 
   141                              <1> 
   142                              <1> %imacro dump_linkinfo_messages 1-*.nolist
   143                              <1>  %rep %0
   144                              <1> 	%1
   145                              <1>   %rotate 1
   146                              <1>  %endrep
   147                              <1> %endmacro
   148                              <1> 
   149                              <1> 
   150                              <1> %if _MESSAGESEGMENT
   151                              <1>  %if _PM
   152                              <1> linksel equ messagesel
   153                              <1>  %else
   154                              <1> linksel equ linkseg
   155                              <1>  %endif
   156                              <1> linkseg equ messageseg
   157                              <1> %else
   158                              <1>  %if _PM
   159                              <1> linksel equ dssel
   160                              <1>  %else
   161                              <1> linksel equ linkseg
   162                              <1>  %endif
   163                              <1> linkseg equ pspdbg
   164                              <1> %endif
   165                              <1> 
   166                              <1> linkinfo_data linksel
   167                              <1> linkinfo_data linkseg
   168                              <1> linkinfo_data linkinfoaddress
   169                              <1> linkinfo_data linkcall_table
   170                              <1> linkinfo_data extseg, extcssel, extdssel, extseg_size, extseg_used
   171                              <1> linkinfo_data extdata, extdata_size, extdata_used
   172                              <1> linkinfo_data pspdbg
   173                              <1> %if !_LOADER
   174                              <1> linkinfo_data pspdbe
   175                              <1> %endif
   176                              <1> %ifn _LINK
   177                              <1>  %ifn _PM
   178                              <1> dssel equ pspdbg
   179                              <1>  %endif
   180                              <1> %endif
   181                              <1> linkinfo_data dssel
   182                              <1> %if _PM
   183                              <1> linkinfo_data cssel
   184                              <1> %if !_LOADER
   185                              <1> linkinfo_data code_sel
   186                              <1>  %if _DUALCODE
   187                              <1> linkinfo_data code2_sel
   188                              <1>  %endif
   189                              <1> %else
   190                              <1> linkinfo_data_as code_movable_sel, code_sel
   191                              <1>  %if _DUALCODE
   192                              <1> linkinfo_data_as code2_movable_sel, code2_sel
   193                              <1>  %endif
   194                              <1> %endif
   195                              <1>  %if _MESSAGESEGMENT
   196                              <1> linkinfo_data messagesel
   197                              <1>  %endif
   198                              <1> %endif
   199                              <1> linkinfo_data internalflags
   200                              <1> linkinfo_data internalflags2
   201                              <1> linkinfo_data internalflags3
   202                              <1> linkinfo_data internalflags4
   203                              <1> linkinfo_data internalflags5
   204                              <1> linkinfo_data internalflags6
   205                              <1> linkinfo_data internalflags7
   206                              <1> linkinfo_data options
   207                              <1> linkinfo_data options2
   208                              <1> linkinfo_data options3
   209                              <1> linkinfo_data options4
   210                              <1> linkinfo_data options5
   211                              <1> linkinfo_data options6
   212                              <1> linkinfo_data options7
   213                              <1> linkinfo_data lastcmd
   214                              <1> linkinfo_data line_in, line_in.end, line_out, line_out_end
   215                              <1> %if !_LOADER
   216                              <1> linkinfo_data auxbuff_segorsel
   217                              <1> linkinfo_data auxbuff_current_size, auxbuff_current_size_minus_24
   218                              <1> %else
   219                              <1> linkinfo_data_as auxbuff_movable_segorsel, auxbuff_segorsel
   220                              <1> linkinfo_data_as auxbuff_movable_current_size, auxbuff_current_size
   221                              <1> linkinfo_data_as auxbuff_movable_current_size_minus_24, auxbuff_current_size_minus_24
   222                              <1> %endif
   223                              <1> %if !_LOADER
   224                              <1> linkinfo_data firstmcb, firstumcb
   225                              <1> %endif
   226                              <1> linkinfo_data msg.install, msg.uninstall, msg.run
   227                              <1> linkinfo_data entryseg_size
   228                              <1> %if _MESSAGESEGMENT
   229                              <1> linkinfo_data messageseg, messageseg_size
   230                              <1> %endif
   231                              <1> %if !_LOADER
   232                              <1> linkinfo_data code_seg, code_size
   233                              <1> %if _DUALCODE
   234                              <1> linkinfo_data code2_seg, code2_size
   235                              <1> %endif
   236                              <1> %else
   237                              <1> linkinfo_data_as code_movable_seg, code_seg
   238                              <1> linkinfo_data_as code_movable_size, code_size
   239                              <1> %if _DUALCODE
   240                              <1> linkinfo_data_as code2_movable_seg, code2_seg
   241                              <1> linkinfo_data_as code2_movable_size, code2_size
   242                              <1> %endif
   243                              <1> %endif
   244                              <1> %if !_LOADER
   245                              <1> linkinfo_data auxbuff_segment, auxbuff_current_size
   246                              <1> %else
   247                              <1> linkinfo_data_as auxbuff_movable_segment, auxbuff_segment
   248                              <1> linkinfo_data_as auxbuff_movable_current_size, auxbuff_current_size
   249                              <1> %endif
   250                              <1>  %if _HISTORY_SEPARATE_FIXED && _HISTORY
   251                              <1> linkinfo_data history_segment, historyseg_size
   252                              <1>  %endif
   253                              <1> %if _PM
   254                              <1> auxbuff_segment equ auxbuff_segorsel + soaSegment
   255                              <1>  %if _HISTORY_SEPARATE_FIXED && _HISTORY
   256                              <1> history_segment equ history.segorsel + soaSegment
   257                              <1>  %endif
   258                              <1> %else
   259                              <1> auxbuff_segment equ auxbuff_segorsel
   260                              <1>  %if _HISTORY_SEPARATE_FIXED && _HISTORY
   261                              <1> history_segment equ history.segorsel
   262                              <1>  %endif
   263                              <1> %endif
   264                              <1> %if _APP_ENV_SIZE || _DEV_ENV_SIZE || _BOOT_ENV_SIZE
   265                              <1> linkinfo_data envseg, env_size
   266                              <1> %endif
   267                              <1> linkinfo_data alloc_seg, alloc_size
   268                              <1> %if !_LOADER
   269                              <1> linkinfo_data next_reserved_segment, alloc_size_not_reserved, reserved_address
   270                              <1> %endif
   271                              <1> %if _HISTORY
   272                              <1>  %if _HISTORY_SEPARATE_FIXED
   273                              <1> historyformat equ 2
   274                              <1> linkinfo_data history.segorsel
   275                              <1>  %else
   276                              <1> historyformat equ 1
   277                              <1> linkinfo_data historybuffer
   278                              <1> linkinfo_data historybuffer.end
   279                              <1>  %endif
   280                              <1> linkinfo_data history.first
   281                              <1> linkinfo_data history.last
   282                              <1> %else
   283                              <1> historyformat equ 0
   284                              <1> %endif
   285                              <1> linkinfo_data historyformat
   286                              <1> linkinfo_data stack, stack_end
   287                              <1> linkinfo_data ext_command_handler, ext_inject_handler, savesp, throwsp
   288                              <1> linkinfo_data ext_preprocess_handler, ext_puts_handler
   289                              <1> linkinfo_data ext_puts_copyoutput_handler
   290                              <1> %if _EXT_PUTS_GETLINE
   291                              <1> linkinfo_data ext_puts_getline_handler
   292                              <1> %endif
   293                              <1> %if !_LOADER
   294                              <1> linkinfo_data ext_aa_before_getline_handler
   295                              <1> linkinfo_data ext_aa_inject_handler
   296                              <1> linkinfo_data ext_aa_after_getline_handler
   297                              <1> %endif
   298                              <1> %if _CATCHINT2D
   299                              <1> linkinfo_data ext_amis_handler
   300                              <1> linkinfo_data amis_multiplex_number
   301                              <1> %endif
   302                              <1> linkinfo_data try_debugger_amis_multiplex_number
   303                              <1> linkinfo_data msg.in, lastcmd
   304                              <1> %if !_LOADER
   305                              <1> linkinfo_data firstmcb, firstumcb
   306                              <1> %endif
   307                              <1> linkinfo_data dpmi32
   308                              <1> linkinfo_data lastcmd_transfer_ext_address
   309                              <1> linkinfo_data lastcmd_transfer_ext_entry	; (not actually data but need it)
   310                              <1> linkinfo_data dmycmd				; (not actually data but need it)
   311                              <1> linkinfo_data has_87
   312                              <1> %if _MMXSUPP
   313                              <1> linkinfo_data has_mmx
   314                              <1> %endif
   315                              <1> linkinfo_data installflags, installformat
   316                              <1> linkinfo_data reg_eax, reg_ecx, reg_edx, reg_ebx, reg_esp, reg_ebp
   317                              <1> linkinfo_data reg_esi, reg_edi, reg_efl, reg_eip, reg_cs, reg_ds
   318                              <1> linkinfo_data reg_ss, reg_es, reg_fs, reg_gs
   319                              <1> linkinfo_data msg.not, msg.then
   320                              <1> %if _EXTENSIONS && _EXT_VARIABLES
   321                              <1> linkinfo_data ext_var, ext_var_amount, ext_var_format, ext_var_size
   322                              <1> linkinfo_data isvariable_morebyte_nameheaders.ext
   323                              <1> linkinfo_data var_ext_setup			; (not actually data)
   324                              <1> %endif
   325                              <1> linkinfo_data ext_handle
   326                              <1> linkinfo_data near_transfer_ext_entry		; not actually data
   327                              <1> linkinfo_data near_transfer_ext_address
   328                              <1> %if _BOOTLDR
   329                              <1> linkinfo_data load_data_lowest, load_data
   330                              <1> linkinfo_data load_yyname_input
   331                              <1> linkinfo_data handle_scan_dir_entry, handle_scan_dir_not_found
   332                              <1> linkinfo_data ..@boot_scan_dir_return_filenotfound		; not actually data
   333                              <1> linkinfo_data ..@boot_scan_dir_return_subdir_or_fat32_entry	; not actually data
   334                              <1> linkinfo_data ..@boot_scan_dir_return_fat16_root_entry		; not actually data
   335                              <1> linkinfo_data scan_dir_entry			; not actually data
   336                              <1> linkinfo_data load_check_dir_attr
   337                              <1> linkinfo_data load_yyname_next
   338                              <1> linkinfo_data load_yy_direntry
   339                              <1> linkinfo_data load_kernel_name
   340                              <1> linkinfo_data load_adr_dirbuf_segment
   341                              <1> %endif
   342                              <1> %if !_LOADER
   343                              <1> linkinfo_data execblk.cmdline
   344                              <1> %endif
   345                              <1> %if _CONFIG
   346                              <1> linkinfo_data configpath, configpath.dir_end
   347                              <1> linkinfo_data scriptspath, scriptspath.dir_end
   348                              <1> %endif
   349                              <1> build_option_PM equ !!_PM
   350                              <1> linkinfo_data build_option_PM
   351                              <1> linkinfo_data cmd3, cmd3_not_ext, puts_ext_done, puts_ext_next
   352                              <1> linkinfo_data puts_copyoutput_ext_done
   353                              <1> %if _EXT_PUTS_GETLINE
   354                              <1> linkinfo_data puts_getline_ext_done
   355                              <1> linkinfo_data in_getinput
   356                              <1> %endif
   357                              <1> linkinfo_data cmd3_preprocessed, cmd3_not_inject, cmd3_injected
   358                              <1> %if !_LOADER
   359                              <1> linkinfo_data aa_not_inject, aa_injected
   360                              <1> linkinfo_data aa_before_getline, aa_after_getline
   361                              <1> %endif
   362                              <1> linkinfo_data while_buffer, while_buffer.end, swch1
   363                              <1> linkinfo_data_as internalflags_with_tt_while, internalflags
   364                              <1> linkinfo_data yy_is_script
   365                              <1> linkinfo_data terminator_in_line_in.offset
   366                              <1> linkinfo_data terminator_in_line_in.value
   367                              <1> linkinfo_data ext_finish.bp_is_set
   368                              <1> linkinfo_data vregs, vregs.amount
   369                              <1> %if _DT
   370                              <1> linkinfo_data asciitablenames
   371                              <1> %endif
   372                              <1> linkinfo_data pm_2_86m_0
   373                              <1> %if _BOOTLDR
   374                              <1> linkinfo_data load_unit_flags
   375                              <1> %endif
   376                              <1> %if !_LOADER
   377                              <1> linkinfo_data sss_silent_count_used, sss_silent_count, search_results, sscounter
   378                              <1> linkinfo_data search_results_amount
   379                              <1> %endif
   380                              <1> linkinfo_data patcharea_run, patcharea_run.size, patcharea_run.segment
   381                              <1> %if !_LOADER
   382                              <1> linkinfo_data patcharea_intrtn, patcharea_intrtn.size, patcharea_intrtn.segment
   383                              <1> %endif
   384                              <1> %if _PM
   385                              <1> linkinfo_data patcharea_pm_exc, patcharea_pm_exc.size, patcharea_pm_exc.segment
   386                              <1> %endif
   387                              <1> linkinfo_data promptlen
   388                              <1> linkinfo_data indirect_array_errfix
   389                              <1> linkinfo_data priorrc, rc
   390                              <1> %if _BOOTLDR
   391                              <1> linkinfo_data boot_init_foundname
   392                              <1> %endif
   393                              <1> %if _DEVICE
   394                              <1> linkinfo_data device_quittable_regs, device_header_address
   395                              <1> %endif
   396                              <1> %if _EXECUTABLE
   397                              <1> linkinfo_data init_executable_pathname, init_executable_pathname.end
   398                              <1> %endif
   399                              <1> ;linkinfo_data 
   400                              <1> 
   401                              <1> 
   402                              <1> %assign LINKINFO_CODE_SEGMENT 0		; CODE1
   403                              <1> linkinfo_code puts, putsz, putc, putsline, putsline_crlf, trimputs
   404                              <1> linkinfo_code skipcomma, skipcomm0, skipwhite, skipwh0
   405                              <1> linkinfo_code isstring?, capitalise, chkeol, iseol?, iseol?.notsemicolon
   406                              <1> linkinfo_code_as "uppercase", capitalise
   407                              <1> linkinfo_code guard_auxbuff, guard_re, prephack, dohack, unhack
   408                              <1> linkinfo_code handle_serial_flags_ctrl_c
   409                              <1> linkinfo_code hexnyb, hexbyte, hexword, hexword_high, decword, decdword
   410                              <1> linkinfo_code dec_dword_minwidth
   411                              <1> linkinfo_code ispm, setes2dx, call_int2D
   412                              <1> linkinfo_code copy_single_counted_string
   413                              <1> linkinfo_code intchk
   414                              <1> linkinfo_code IsIISPEntry?
   415                              <1> linkinfo_code disp_dxax_times_cx_width_bx_size.store
   416                              <1> linkinfo_code cmd3, cmd3_not_ext, puts_ext_done, puts_ext_next
   417                              <1> linkinfo_code puts_copyoutput_ext_done
   418                              <1> %if _EXT_PUTS_GETLINE
   419                              <1> linkinfo_code puts_getline_ext_done
   420                              <1> %endif
   421                              <1> linkinfo_code cmd3_preprocessed, cmd3_not_inject, cmd3_injected
   422                              <1> linkinfo_code error
   423                              <1> linkinfo_code setds2si, setds2bx
   424                              <1> %if _PM
   425                              <1> linkinfo_code intcall_ext_return_es
   426                              <1> %endif
   427                              <1> linkinfo_code dd_store
   428                              <1> linkinfo_code InDOS, _doscall
   429                              <1> %if !_LOADER
   430                              <1> linkinfo_code yy_dos_parse_name
   431                              <1> %endif
   432                              <1> linkinfo_code yy_open_file, yy_check_lfn
   433                              <1> linkinfo_code yy_common_parse_name
   434                              <1> linkinfo_code yy_common_parse_name_bx_buffer
   435                              <1> linkinfo_code retry_open_scriptspath
   436                              <1> linkinfo_code near_transfer_ext_return
   437                              <1> %if _BOOTLDR
   438                              <1> linkinfo_code yy_boot_read.bx, yy_boot_seek_start.bx, yy_boot_seek_current.bx
   439                              <1> linkinfo_code_as yy_boot_parse_name2, yy_boot_parse_name
   440                              <1> linkinfo_code yy_boot_parse_name_bx_buffer
   441                              <1> linkinfo_code_as yy_boot_open_file2, yy_boot_open_file
   442                              <1> linkinfo_code scan_dir_aux, read_sector
   443                              <1> linkinfo_code_as yy_boot_init_dir2, yy_boot_init_dir
   444                              <1> linkinfo_code got_yyentry, scan_dir_entry
   445                              <1> linkinfo_code ..@yy_filename_empty
   446                              <1> linkinfo_code boot_parse_fn
   447                              <1> linkinfo_code init_bootcmd
   448                              <1> %endif
   449                              <1> linkinfo_code close_ext
   450                              <1> linkinfo_code yy_reset_buf
   451                              <1> %if !_LOADER
   452                              <1> linkinfo_code aa_not_inject, aa_injected
   453                              <1> linkinfo_code aa_before_getline, aa_after_getline
   454                              <1> %endif
   455                              <1> linkinfo_code doscall_extseg
   456                              <1> linkinfo_code test_d_b_bit, test_high_limit
   457                              <1> linkinfo_code setrc
   458                              <1> linkinfo_code skipequals
   459                              <1> %if !_LOADER
   460                              <1> %if _COUNT || _SCOUNT
   461                              <1> linkinfo_code count_store
   462                              <1> %endif
   463                              <1> %endif
   464                              <1> linkinfo_code hexdword
   465                              <1> %if _LOADER
   466                              <1> linkinfo_code loader_get_resident_address, loader_prepare_resident
   467                              <1> %endif
   468                              <1> linkinfo_code verifysegm_or_error, verifysegm
   469                              <1> ;linkinfo_code 
   470                              <1> 
   471                              <1> %if _DUALCODE && _EXPRDUALCODE
   472                              <1>  %assign LINKINFO_CODE_SEGMENT 1	; CODE2
   473                              <1> %else
   474                              <1>  %assign LINKINFO_CODE_SEGMENT 0	; CODE1
   475                              <1> %endif
   476                              <1> linkinfo_code isvariable?, isseparator?, get_value_range
   477                              <1> linkinfo_code getexpression, getdword, getword, getbyte
   478                              <1> linkinfo_code getaddr, getaddrX, getrange, getrangeX
   479                              <1> linkinfo_code get_length_keyword, getnyb
   480                              <1> linkinfo_code isoperator?, ..@call_operator_dispatchers
   481                              <1> %if _EXTENSIONS && _EXT_VARIABLES
   482                              <1> linkinfo_code var_ext_setup_done
   483                              <1> %endif
   484                              <1> linkinfo_code getstr
   485                              <1> ;linkinfo_code 
   486                              <1> 
   487                              <1> 
   488                              <1>  %assign LINKINFO_CODE_SEGMENT 2	; ENTRY
   489                              <1> linkinfo_code entry_retn
   490                              <1> ;linkinfo_code 
   491                              <1> 
   492                              <1> 
   493                              <1> 	align 4, db 0
   494                              <1> linkinfo:
   495                              <1> 	istruc ELD_LINKINFO
   496 00000000 D1E1                <1> at eldlSignature,	dw 0E1D1h
   497 00000002 00000000            <1> at eldlReserved,	dw 0, 0
   498 00000006 0100                <1> at eldlUseLinkHash,	dw !!_LINKHASH
   499 00000008 C100                <1> at eldlDataAmount,	dw LINKINFO_DATA_AMOUNT
   500 0000000A [1800]              <1> at eldlDataPrefixes,	dw linkinfo_data_table_prefixes
   501 0000000C [9A01]              <1> at eldlDataEntries,	dw linkinfo_data_table_entries
   502 0000000E [1C03]              <1> at eldlDataAddresses,	dw linkinfo_data_table_addresses
   503 00000010 6A00                <1> at eldlCodeAmount,	dw LINKINFO_CODE_AMOUNT
   504 00000012 [9E04]              <1> at eldlCodePrefixes,	dw linkinfo_code_table_prefixes
   505 00000014 [7205]              <1> at eldlCodeEntries,	dw linkinfo_code_table_entries
   506 00000016 [4606]              <1> at eldlCodeAddresses,	dw linkinfo_code_table_addresses
   507                              <1> 	iend
   508                              <1> 
   509                              <1> 
   510                              <1> 	align 2, db 0
   511                              <1> linkinfo_data_table_prefixes:
   512 00000018 FF7EFA7E2B856844D5- <1> .:	repeatdw LINKINFO_DATA_PREFIXES
   512 00000021 2D6A2BEB422BC8E7D3- <1>
   512 0000002A 2AAEF634B240FDFCFB- <1>
   512 00000033 FC0A0A89F2094A1FF2- <1>
   512 0000003C B49D899FC951CA51CB- <1>
   512 00000045 51CC51CD51CE517DB3- <1>
   512 0000004E 55BC56BC57BC58BC59- <1>
   512 00000057 BC5ABCC30B2F7A9C3C- <1>
   512 00000060 84E3A0398B00B0B220- <1>
   512 00000069 71DD03C6408D715440- <1>
   512 00000072 7DCFBC89AF9D913004- <1>
   512 0000007B 4A32081AF2DC62EAE5- <1>
   512 00000084 B0B267341E38892B14- <1>
   512 0000008D 0B6A5D8C61879FE77A- <1>
   512 00000096 DE037D4275AE31AA2A- <1>
   512 0000009F E7279BC36797B63B26- <1>
   512 000000A8 DB9FA2C09648AE24DD- <1>
   512 000000B1 30B9E195559C6CF235- <1>
   512 000000BA C001688CF09EF391C3- <1>
   512 000000C3 0BDD03C640C83E7EC0- <1>
   512 000000CC 7CC76B5D05D692B84D- <1>
   512 000000D5 18F10610324E326D32- <1>
   512 000000DE 2F32363427322F345E- <1>
   512 000000E7 329F3200333C3B5B3B- <1>
   512 000000F0 2C3D7A3B993BB83BC5- <1>
   512 000000F9 BF6BD7E8B48FC32E6B- <1>
   512 00000102 F8B4C4E26651C71CD6- <1>
   512 0000010B ED58B80F0882740EB5- <1>
   512 00000114 94C038D274B9384B9F- <1>
   512 0000011D 213F8592AA2F756C52- <1>
   512 00000126 75DD227F4F71282963- <1>
   512 0000012F BF8C8EC7805503BABD- <1>
   512 00000138 30CD1AB78B1ECF3F6F- <1>
   512 00000141 9D6DB1702A2258D5DA- <1>
   512 0000014A 9BF78E04A81B09B98F- <1>
   512 00000153 03FC152700D569A225- <1>
   512 0000015C F466F03E2229740812- <1>
   512 00000165 432A285265E47A8AF2- <1>
   512 0000016E 5235A08ABBCCD78EC0- <1>
   512 00000177 CD6FE305BDC88C6749- <1>
   512 00000180 0DF479A556F7BECB50- <1>
   512 00000189 8F26EB5A63F211EA53- <1>
   512 00000192 67A7EA1BD73B44EA    <1>
   513                              <1> .amount equ ($ - .) / 2
   514                              <1> %if .amount != LINKINFO_DATA_AMOUNT
   515                              <1>  %error Unexpected table size
   516                              <1> %endif
   517                              <1> 
   518                              <1> 	align 2, db 0
   519                              <1> linkinfo_data_table_entries:
   520 0000019A [EE07][F607][FE07]- <1> .:	repeatdw LINKINFO_DATA_ENTRIES
   520 000001A0 [0E08][1D08][2408]- <1>
   520 000001A6 [2D08][3608][4208]- <1>
   520 000001AC [4E08][5608][6308]- <1>
   520 000001B2 [7008][7708][7E08]- <1>
   520 000001B8 [8408][8A08][9308]- <1>
   520 000001BE [9D08][A808][B608]- <1>
   520 000001C4 [C508][D408][E308]- <1>
   520 000001CA [F208][0109][1009]- <1>
   520 000001D0 [1809][2109][2A09]- <1>
   520 000001D6 [3309][3C09][4509]- <1>
   520 000001DC [4E09][5609][5E09]- <1>
   520 000001E2 [6A09][7309][8009]- <1>
   520 000001E8 [9109][A609][C409]- <1>
   520 000001EE [CD09][D709][E309]- <1>
   520 000001F4 [F109][F909][070A]- <1>
   520 000001FA [120A][220A][2B0A]- <1>
   520 00000200 [350A][3F0A][4A0A]- <1>
   520 00000206 [5A0A][6F0A][7F0A]- <1>
   520 0000020C [8F0A][960A][9F0A]- <1>
   520 00000212 [A90A][B40A][CA0A]- <1>
   520 00000218 [E20A][F30A][040B]- <1>
   520 0000021E [120B][1F0B][2D0B]- <1>
   520 00000224 [330B][3D0B][510B]- <1>
   520 0000022A [640B][6B0B][730B]- <1>
   520 00000230 [8A0B][9B0B][B70B]- <1>
   520 00000236 [D00B][EE0B][040C]- <1>
   520 0000023C [210C][320C][480C]- <1>
   520 00000242 [6B0C][720C][7A0C]- <1>
   520 00000248 [830C][8D0C][940C]- <1>
   520 0000024E [B10C][CC0C][D30C]- <1>
   520 00000254 [DA0C][E20C][EF0C]- <1>
   520 0000025A [FD0C][050D][0D0D]- <1>
   520 00000260 [150D][1D0D][250D]- <1>
   520 00000266 [2D0D][350D][3D0D]- <1>
   520 0000026C [450D][4D0D][540D]- <1>
   520 00000272 [5B0D][620D][690D]- <1>
   520 00000278 [700D][770D][7F0D]- <1>
   520 0000027E [880D][900D][9F0D]- <1>
   520 00000284 [AE0D][BB0D][DF0D]- <1>
   520 0000028A [ED0D][F80D][100E]- <1>
   520 00000290 [2A0E][3B0E][450E]- <1>
   520 00000296 [570E][6D0E][870E]- <1>
   520 0000029C [AC0E][DA0E][030F]- <1>
   520 000002A2 [120F][260F][370F]- <1>
   520 000002A8 [480F][590F][710F]- <1>
   520 000002AE [810F][8C0F][9F0F]- <1>
   520 000002B4 [AB0F][BF0F][CF0F]- <1>
   520 000002BA [D40F][E10F][EF0F]- <1>
   520 000002C0 [FD0F][1610][2C10]- <1>
   520 000002C6 [3810][4A10][5A10]- <1>
   520 000002CC [6810][7610][8210]- <1>
   520 000002D2 [9410][A510][B210]- <1>
   520 000002D8 [C310][C910][E510]- <1>
   520 000002DE [F210][0F11][2B11]- <1>
   520 000002E4 [4011][4611][5311]- <1>
   520 000002EA [6311][6E11][7E11]- <1>
   520 000002F0 [9411][A511][B411]- <1>
   520 000002F6 [BE11][D411][E211]- <1>
   520 000002FC [F511][0B12][1C12]- <1>
   520 00000302 [3212][4B12][5C12]- <1>
   520 00000308 [7212][8B12][9512]- <1>
   520 0000030E [AB12][B312][B612]- <1>
   520 00000314 [CA12][E012][F612]- <1>
   520 0000031A [0F13]              <1>
   521                              <1> .amount equ ($ - .) / 2
   522                              <1> %if .amount != LINKINFO_DATA_AMOUNT
   523                              <1>  %error Unexpected table size
   524                              <1> %endif
   525                              <1> 
   526                              <1> 	align 2, db 0
   527                              <1> linkinfo_data_table_addresses:
   528 0000031C [0000][0000][0000]- <1> .:	repeatdw LINKINFO_DATA_ADDRESSES
   528 00000322 [0000][0000][0000]- <1>
   528 00000328 [0000][0000][0000]- <1>
   528 0000032E [0000][0000][0000]- <1>
   528 00000334 [0000][0000][0000]- <1>
   528 0000033A [0000][0000][0000]- <1>
   528 00000340 [0000][0000][0000]- <1>
   528 00000346 [0000][0000][0000]- <1>
   528 0000034C [0000][0000][0000]- <1>
   528 00000352 [0000][0000][0000]- <1>
   528 00000358 [0000][0000][0000]- <1>
   528 0000035E [0000][0000][0000]- <1>
   528 00000364 [0000][0000][0000]- <1>
   528 0000036A [0000][0000][0000]- <1>
   528 00000370 [0000][4909][4709]- <1>
   528 00000376 [1000][0000][0000]- <1>
   528 0000037C [0000][0000][0000]- <1>
   528 00000382 [0000][0000][0200]- <1>
   528 00000388 [0000][0200][0000]- <1>
   528 0000038E [0000][0000][0000]- <1>
   528 00000394 [0000][0000][0000]- <1>
   528 0000039A [0000][0000][0000]- <1>
   528 000003A0 [0000]0200[0000]-   <1>
   528 000003A6 [0000][0000][0000]- <1>
   528 000003AC [0000][0000][0000]- <1>
   528 000003B2 [0000][0000][0000]- <1>
   528 000003B8 [0000][0000][0000]- <1>
   528 000003BE [0000][0000][0000]- <1>
   528 000003C4 [3A10][0000][0000]- <1>
   528 000003CA [0000][0000][0000]- <1>
   528 000003D0 [0000][0000][0000]- <1>
   528 000003D6 [0000][CC1F]0100-   <1>
   528 000003DC [0000][0000][0000]- <1>
   528 000003E2 [0000][0000][0000]- <1>
   528 000003E8 [0000][0000][0000]- <1>
   528 000003EE [0000][0000][0000]- <1>
   528 000003F4 [0000][0000][0000]- <1>
   528 000003FA [0000][EB09][E609]- <1>
   528 00000400 [0000][0000][0000]- <1>
   528 00000406 [0000][0000][0000]- <1>
   528 0000040C [0000][0000][0000]- <1>
   528 00000412 [0000][0000][0000]- <1>
   528 00000418 [0000][0000][0000]- <1>
   528 0000041E [0000][0000][0000]- <1>
   528 00000424 [0000][0000][0000]- <1>
   528 0000042A [0000][0000][0000]- <1>
   528 00000430 [0000][0000][0000]- <1>
   528 00000436 [0000]0100[0000]-   <1>
   528 0000043C [0000][0000][0000]- <1>
   528 00000442 [0000][0000][0000]- <1>
   528 00000448 [0000][0000][0000]- <1>
   528 0000044E [0000][0000][0000]- <1>
   528 00000454 [0000][0000][0000]- <1>
   528 0000045A [0000][0000][0000]- <1>
   528 00000460 [0000][0000][0000]- <1>
   528 00000466 [0000][0000][0000]- <1>
   528 0000046C [0000][0000][0000]- <1>
   528 00000472 [0000][0000][0000]- <1>
   528 00000478 1000[0000][0000]-   <1>
   528 0000047E [0000][0000][0000]- <1>
   528 00000484 [0000][0000][0000]- <1>
   528 0000048A [0000][0000][0000]- <1>
   528 00000490 [0000][0000][0000]- <1>
   528 00000496 [0000][0000][0000]- <1>
   528 0000049C [0000]              <1>
   529                              <1> .amount equ ($ - .) / 2
   530                              <1> %if .amount != LINKINFO_DATA_AMOUNT
   531                              <1>  %error Unexpected table size
   532                              <1> %endif
   533                              <1> 
   534                              <1> 
   535                              <1> 	align 2, db 0
   536                              <1> linkinfo_code_table_prefixes:
   537 0000049E C5C65512B5C6398C6F- <1> .:	repeatdw LINKINFO_CODE_PREFIXES
   537 000004A7 A267B1D555A45529EF- <1>
   537 000004B0 7FAE03C3D430DDB9E8- <1>
   537 000004B9 3A8490F1231CE30E05- <1>
   537 000004C2 CFF16DC97B14DCF83D- <1>
   537 000004CB BA821B84817D67EBA6- <1>
   537 000004D4 AD1103AA2890B77421- <1>
   537 000004DD 30D0BB98693567ABFF- <1>
   537 000004E6 BABD30CD1AB78B1ECF- <1>
   537 000004EF 3F6F9D702A2258D5DA- <1>
   537 000004F8 A7AAF85EF85C2C9A63- <1>
   537 00000501 77629668310C21738E- <1>
   537 0000050A 9F9A8D9117D8B0CC4C- <1>
   537 00000513 04FF8BDA8663E44C4E- <1>
   537 0000051C F001109AD1C68ECB25- <1>
   537 00000525 D7FEFD3F8515272066- <1>
   537 0000052E 5A0B794CA5339BF78E- <1>
   537 00000537 04A81B09B98EF7E973- <1>
   537 00000540 8A0AB212BFBC100B34- <1>
   537 00000549 8AD9187225B84425A1- <1>
   537 00000552 650F0D38D9FA3FE83D- <1>
   537 0000055B 8226BDF2E7A83EB096- <1>
   537 00000564 5AA3221090B3D354BB- <1>
   537 0000056D 7A5C225B36          <1>
   538                              <1> .amount equ ($ - .) / 2
   539                              <1> %if .amount != LINKINFO_CODE_AMOUNT
   540                              <1>  %error Unexpected table size
   541                              <1> %endif
   542                              <1> 
   543                              <1> 	align 2, db 0
   544                              <1> linkinfo_code_table_entries:
   545 00000572 [2C13][3113][3713]- <1> .:	repeatdw LINKINFO_CODE_ENTRIES
   545 00000578 [3C13][4513][5313]- <1>
   545 0000057E [5C13][6613][7013]- <1>
   545 00000584 [7A13][8213][8C13]- <1>
   545 0000058A [9713][9E13][A513]- <1>
   545 00000590 [B913][C313][D113]- <1>
   545 00000596 [DA13][E313][EA13]- <1>
   545 0000059C [F113][0C14][1314]- <1>
   545 000005A2 [1B14][2314][3014]- <1>
   545 000005A8 [3814][4114][5414]- <1>
   545 000005AE [5914][6214][6D14]- <1>
   545 000005B4 [8814][8F14][9C14]- <1>
   545 000005BA [C314][C814][D514]- <1>
   545 000005C0 [E314][F114][0A15]- <1>
   545 000005C6 [2015][3215][4215]- <1>
   545 000005CC [5015][5615][5F15]- <1>
   545 000005D2 [6815][7E15][8715]- <1>
   545 000005D8 [8D15][9615][A815]- <1>
   545 000005DE [B515][C215][D715]- <1>
   545 000005E4 [F615][0D16][2616]- <1>
   545 000005EA [3616][4C16][6416]- <1>
   545 000005F0 [7816][9516][A816]- <1>
   545 000005F6 [B516][C116][D316]- <1>
   545 000005FC [DF16][EE16][0317]- <1>
   545 00000602 [1117][1E17][2817]- <1>
   545 00000608 [3517][4317][4F17]- <1>
   545 0000060E [6117][7217][8117]- <1>
   545 00000614 [8E17][9E17][A417]- <1>
   545 0000061A [AF17][BB17][C417]- <1>
   545 00000620 [D817][E317][EF17]- <1>
   545 00000626 [FC17][0C18][1A18]- <1>
   545 0000062C [2318][2B18][3318]- <1>
   545 00000632 [3B18][4418][4D18]- <1>
   545 00000638 [5718][6A18][7118]- <1>
   545 0000063E [7D18][9A18][AD18]- <1>
   545 00000644 [B418]              <1>
   546                              <1> .amount equ ($ - .) / 2
   547                              <1> %if .amount != LINKINFO_CODE_AMOUNT
   548                              <1>  %error Unexpected table size
   549                              <1> %endif
   550                              <1> 
   551                              <1> 	align 2, db 0
   552                              <1> linkinfo_code_table_addresses:
   553 00000646 [0000]0000[0000]00- <1> .:	repeatdw LINKINFO_CODE_ADDRESSES
   553 0000064D 00[0000]0000[0000]- <1>
   553 00000654 0000[0000]0000-     <1>
   553 0000065A [0000]0000[0000]00- <1>
   553 00000661 00[0000]0000[0000]- <1>
   553 00000668 0000[0000]0000-     <1>
   553 0000066E [0000]0000[0000]00- <1>
   553 00000675 00[0000]0000[0000]- <1>
   553 0000067C 0000[0000]0000-     <1>
   553 00000682 [0000]0000[0000]00- <1>
   553 00000689 00[0000]0000[0000]- <1>
   553 00000690 0000[0000]0000-     <1>
   553 00000696 [0000]0000[0000]00- <1>
   553 0000069D 00[0000]0000[0000]- <1>
   553 000006A4 0000[0000]0000-     <1>
   553 000006AA [0000]0000[0000]00- <1>
   553 000006B1 00[0000]0000[0000]- <1>
   553 000006B8 0000[0000]0000-     <1>
   553 000006BE [0000]0000[0000]00- <1>
   553 000006C5 00[0000]0000[0000]- <1>
   553 000006CC 0000[0000]0000-     <1>
   553 000006D2 [0000]0000[0000]00- <1>
   553 000006D9 00[0000]0000[0000]- <1>
   553 000006E0 0000[0000]0000-     <1>
   553 000006E6 [0000]0000[0000]00- <1>
   553 000006ED 00[0000]0000[0000]- <1>
   553 000006F4 0000[0000]0000-     <1>
   553 000006FA [0000]0000[0000]00- <1>
   553 00000701 00[0000]0000[0000]- <1>
   553 00000708 0000[0000]0000-     <1>
   553 0000070E [0000]0000[0000]00- <1>
   553 00000715 00[0000]0000[0000]- <1>
   553 0000071C 0000[0000]0000-     <1>
   553 00000722 [0000]0000[0000]00- <1>
   553 00000729 00[0000]0000[0000]- <1>
   553 00000730 0000[0000]0000-     <1>
   553 00000736 [0000]0000[0000]00- <1>
   553 0000073D 00[0000]0000[0000]- <1>
   553 00000744 0000[0000]0000-     <1>
   553 0000074A [0000]0000[0000]00- <1>
   553 00000751 00[0000]0000[0000]- <1>
   553 00000758 0000[0000]0000-     <1>
   553 0000075E [0000]0000[0000]00- <1>
   553 00000765 00[0000]0000[0000]- <1>
   553 0000076C 0000[0000]0000-     <1>
   553 00000772 [0000]0000[0000]00- <1>
   553 00000779 00[0000]0000[0000]- <1>
   553 00000780 0000[0000]0000-     <1>
   553 00000786 [0000]0000[0000]00- <1>
   553 0000078D 00[0000]0000[0000]- <1>
   553 00000794 0000[0000]0000-     <1>
   553 0000079A [0000]0000[0000]00- <1>
   553 000007A1 00[0000]0000[0000]- <1>
   553 000007A8 0100[0000]0100-     <1>
   553 000007AE [0000]0100[0000]01- <1>
   553 000007B5 00[0000]0100[0000]- <1>
   553 000007BC 0100[0000]0100-     <1>
   553 000007C2 [0000]0100[0000]01- <1>
   553 000007C9 00[0000]0100[0000]- <1>
   553 000007D0 0100[0000]0100-     <1>
   553 000007D6 [0000]0100[0000]01- <1>
   553 000007DD 00[0000]0100[0000]- <1>
   553 000007E4 0100[0000]0100-     <1>
   553 000007EA [0000]0200          <1>
   554                              <1> .amount equ ($ - .) / 4
   555                              <1> %if .amount != LINKINFO_CODE_AMOUNT
   556                              <1>  %error Unexpected table size
   557                              <1> %endif
   558                              <1> 
   559                              <1> 
   560 000007EE 076C696E6B73656C07- <1> 	dump_linkinfo_messages LINKINFO_DATA_MESSAGES, LINKINFO_CODE_MESSAGES
   560 000007F7 6C696E6B7365670F6C- <1>
   560 00000800 696E6B696E666F6164- <1>
   560 00000809 64726573730E6C696E- <1>
   560 00000812 6B63616C6C5F746162- <1>
   560 0000081B 6C6506657874736567- <1>
   560 00000824 08657874637373656C- <1>
   560 0000082D 08657874647373656C- <1>
   560 00000836 0B6578747365675F73- <1>
   560 0000083F 697A650B6578747365- <1>
   560 00000848 675F75736564076578- <1>
   560 00000851 74646174610C657874- <1>
   560 0000085A 646174615F73697A65- <1>
   560 00000863 0C657874646174615F- <1>
   560 0000086C 757365640670737064- <1>
   560 00000875 626706707370646265- <1>
   560 0000087E 05647373656C056373- <1>
   560 00000887 73656C08636F64655F- <1>
   560 00000890 73656C09636F646532- <1>
   560 00000899 5F73656C0A6D657373- <1>
   560 000008A2 61676573656C0D696E- <1>
   560 000008AB 7465726E616C666C61- <1>
   560 000008B4 67730E696E7465726E- <1>
   560 000008BD 616C666C616773320E- <1>
   560 000008C6 696E7465726E616C66- <1>
   560 000008CF 6C616773330E696E74- <1>
   560 000008D8 65726E616C666C6167- <1>
   560 000008E1 73340E696E7465726E- <1>
   560 000008EA 616C666C616773350E- <1>
   560 000008F3 696E7465726E616C66- <1>
   560 000008FC 6C616773360E696E74- <1>
   560 00000905 65726E616C666C6167- <1>
   560 0000090E 7337076F7074696F6E- <1>
   560 00000917 73086F7074696F6E73- <1>
   560 00000920 32086F7074696F6E73- <1>
   560 00000929 33086F7074696F6E73- <1>
   560 00000932 34086F7074696F6E73- <1>
   560 0000093B 35086F7074696F6E73- <1>
   560 00000944 36086F7074696F6E73- <1>
   560 0000094D 37076C617374636D64- <1>
   560 00000956 076C696E655F696E0B- <1>
   560 0000095F 6C696E655F696E2E65- <1>
   560 00000968 6E64086C696E655F6F- <1>
   560 00000971 75740C6C696E655F6F- <1>
   560 0000097A 75745F656E64106175- <1>
   560 00000983 78627566665F736567- <1>
   560 0000098C 6F7273656C14617578- <1>
   560 00000995 627566665F63757272- <1>
   560 0000099E 656E745F73697A651D- <1>
   560 000009A7 617578627566665F63- <1>
   560 000009B0 757272656E745F7369- <1>
   560 000009B9 7A655F6D696E75735F- <1>
   560 000009C2 32340866697273746D- <1>
   560 000009CB 636209666972737475- <1>
   560 000009D4 6D63620B6D73672E69- <1>
   560 000009DD 6E7374616C6C0D6D73- <1>
   560 000009E6 672E756E696E737461- <1>
   560 000009EF 6C6C076D73672E7275- <1>
   560 000009F8 6E0D656E7472797365- <1>
   560 00000A01 675F73697A650A6D65- <1>
   560 00000A0A 73736167657365670F- <1>
   560 00000A13 6D6573736167657365- <1>
   560 00000A1C 675F73697A6508636F- <1>
   560 00000A25 64655F73656709636F- <1>
   560 00000A2E 64655F73697A650963- <1>
   560 00000A37 6F6465325F7365670A- <1>
   560 00000A40 636F6465325F73697A- <1>
   560 00000A49 650F61757862756666- <1>
   560 00000A52 5F7365676D656E7414- <1>
   560 00000A5B 617578627566665F63- <1>
   560 00000A64 757272656E745F7369- <1>
   560 00000A6D 7A650F686973746F72- <1>
   560 00000A76 795F7365676D656E74- <1>
   560 00000A7F 0F686973746F727973- <1>
   560 00000A88 65675F73697A650665- <1>
   560 00000A91 6E7673656708656E76- <1>
   560 00000A9A 5F73697A6509616C6C- <1>
   560 00000AA3 6F635F7365670A616C- <1>
   560 00000AAC 6C6F635F73697A6515- <1>
   560 00000AB5 6E6578745F72657365- <1>
   560 00000ABE 727665645F7365676D- <1>
   560 00000AC7 656E7417616C6C6F63- <1>
   560 00000AD0 5F73697A655F6E6F74- <1>
   560 00000AD9 5F7265736572766564- <1>
   560 00000AE2 107265736572766564- <1>
   560 00000AEB 5F6164647265737310- <1>
   560 00000AF4 686973746F72792E73- <1>
   560 00000AFD 65676F7273656C0D68- <1>
   560 00000B06 6973746F72792E6669- <1>
   560 00000B0F 7273740C686973746F- <1>
   560 00000B18 72792E6C6173740D68- <1>
   560 00000B21 6973746F7279666F72- <1>
   560 00000B2A 6D617405737461636B- <1>
   560 00000B33 09737461636B5F656E- <1>
   560 00000B3C 64136578745F636F6D- <1>
   560 00000B45 6D616E645F68616E64- <1>
   560 00000B4E 6C6572126578745F69- <1>
   560 00000B57 6E6A6563745F68616E- <1>
   560 00000B60 646C65720673617665- <1>
   560 00000B69 7370077468726F7773- <1>
   560 00000B72 70166578745F707265- <1>
   560 00000B7B 70726F636573735F68- <1>
   560 00000B84 616E646C6572106578- <1>
   560 00000B8D 745F707574735F6861- <1>
   560 00000B96 6E646C65721B657874- <1>
   560 00000B9F 5F707574735F636F70- <1>
   560 00000BA8 796F75747075745F68- <1>
   560 00000BB1 616E646C6572186578- <1>
   560 00000BBA 745F707574735F6765- <1>
   560 00000BC3 746C696E655F68616E- <1>
   560 00000BCC 646C65721D6578745F- <1>
   560 00000BD5 61615F6265666F7265- <1>
   560 00000BDE 5F6765746C696E655F- <1>
   560 00000BE7 68616E646C65721565- <1>
   560 00000BF0 78745F61615F696E6A- <1>
   560 00000BF9 6563745F68616E646C- <1>
   560 00000C02 65721C6578745F6161- <1>
   560 00000C0B 5F61667465725F6765- <1>
   560 00000C14 746C696E655F68616E- <1>
   560 00000C1D 646C6572106578745F- <1>
   560 00000C26 616D69735F68616E64- <1>
   560 00000C2F 6C657215616D69735F- <1>
   560 00000C38 6D756C7469706C6578- <1>
   560 00000C41 5F6E756D6265722274- <1>
   560 00000C4A 72795F646562756767- <1>
   560 00000C53 65725F616D69735F6D- <1>
   560 00000C5C 756C7469706C65785F- <1>
   560 00000C65 6E756D626572066D73- <1>
   560 00000C6E 672E696E076C617374- <1>
   560 00000C77 636D64086669727374- <1>
   560 00000C80 6D6362096669727374- <1>
   560 00000C89 756D63620664706D69- <1>
   560 00000C92 33321C6C617374636D- <1>
   560 00000C9B 645F7472616E736665- <1>
   560 00000CA4 725F6578745F616464- <1>
   560 00000CAD 726573731A6C617374- <1>
   560 00000CB6 636D645F7472616E73- <1>
   560 00000CBF 6665725F6578745F65- <1>
   560 00000CC8 6E74727906646D7963- <1>
   560 00000CD1 6D64066861735F3837- <1>
   560 00000CDA 076861735F6D6D780C- <1>
   560 00000CE3 696E7374616C6C666C- <1>
   560 00000CEC 6167730D696E737461- <1>
   560 00000CF5 6C6C666F726D617407- <1>
   560 00000CFE 7265675F6561780772- <1>
   560 00000D07 65675F656378077265- <1>
   560 00000D10 675F65647807726567- <1>
   560 00000D19 5F656278077265675F- <1>
   560 00000D22 657370077265675F65- <1>
   560 00000D2B 6270077265675F6573- <1>
   560 00000D34 69077265675F656469- <1>
   560 00000D3D 077265675F65666C07- <1>
   560 00000D46 7265675F6569700672- <1>
   560 00000D4F 65675F637306726567- <1>
   560 00000D58 5F6473067265675F73- <1>
   560 00000D61 73067265675F657306- <1>
   560 00000D6A 7265675F6673067265- <1>
   560 00000D73 675F6773076D73672E- <1>
   560 00000D7C 6E6F74086D73672E74- <1>
   560 00000D85 68656E076578745F76- <1>
   560 00000D8E 61720E6578745F7661- <1>
   560 00000D97 725F616D6F756E740E- <1>
   560 00000DA0 6578745F7661725F66- <1>
   560 00000DA9 6F726D61740C657874- <1>
   560 00000DB2 5F7661725F73697A65- <1>
   560 00000DBB 236973766172696162- <1>
   560 00000DC4 6C655F6D6F72656279- <1>
   560 00000DCD 74655F6E616D656865- <1>
   560 00000DD6 61646572732E657874- <1>
   560 00000DDF 0D7661725F6578745F- <1>
   560 00000DE8 73657475700A657874- <1>
   560 00000DF1 5F68616E646C65176E- <1>
   560 00000DFA 6561725F7472616E73- <1>
   560 00000E03 6665725F6578745F65- <1>
   560 00000E0C 6E747279196E656172- <1>
   560 00000E15 5F7472616E73666572- <1>
   560 00000E1E 5F6578745F61646472- <1>
   560 00000E27 657373106C6F61645F- <1>
   560 00000E30 646174615F6C6F7765- <1>
   560 00000E39 7374096C6F61645F64- <1>
   560 00000E42 617461116C6F61645F- <1>
   560 00000E4B 79796E616D655F696E- <1>
   560 00000E54 7075741568616E646C- <1>
   560 00000E5D 655F7363616E5F6469- <1>
   560 00000E66 725F656E7472791968- <1>
   560 00000E6F 616E646C655F736361- <1>
   560 00000E78 6E5F6469725F6E6F74- <1>
   560 00000E81 5F666F756E64242E2E- <1>
   560 00000E8A 40626F6F745F736361- <1>
   560 00000E93 6E5F6469725F726574- <1>
   560 00000E9C 75726E5F66696C656E- <1>
   560 00000EA5 6F74666F756E642D2E- <1>
   560 00000EAE 2E40626F6F745F7363- <1>
   560 00000EB7 616E5F6469725F7265- <1>
   560 00000EC0 7475726E5F73756264- <1>
   560 00000EC9 69725F6F725F666174- <1>
   560 00000ED2 33325F656E74727928- <1>
   560 00000EDB 2E2E40626F6F745F73- <1>
   560 00000EE4 63616E5F6469725F72- <1>
   560 00000EED 657475726E5F666174- <1>
   560 00000EF6 31365F726F6F745F65- <1>
   560 00000EFF 6E7472790E7363616E- <1>
   560 00000F08 5F6469725F656E7472- <1>
   560 00000F11 79136C6F61645F6368- <1>
   560 00000F1A 65636B5F6469725F61- <1>
   560 00000F23 747472106C6F61645F- <1>
   560 00000F2C 79796E616D655F6E65- <1>
   560 00000F35 7874106C6F61645F79- <1>
   560 00000F3E 795F646972656E7472- <1>
   560 00000F47 79106C6F61645F6B65- <1>
   560 00000F50 726E656C5F6E616D65- <1>
   560 00000F59 176C6F61645F616472- <1>
   560 00000F62 5F6469726275665F73- <1>
   560 00000F6B 65676D656E740F6578- <1>
   560 00000F74 6563626C6B2E636D64- <1>
   560 00000F7D 6C696E650A636F6E66- <1>
   560 00000F86 69677061746812636F- <1>
   560 00000F8F 6E666967706174682E- <1>
   560 00000F98 6469725F656E640B73- <1>
   560 00000FA1 637269707473706174- <1>
   560 00000FAA 681373637269707473- <1>
   560 00000FB3 706174682E6469725F- <1>
   560 00000FBC 656E640F6275696C64- <1>
   560 00000FC5 5F6F7074696F6E5F50- <1>
   560 00000FCE 4D04636D64330C636D- <1>
   560 00000FD7 64335F6E6F745F6578- <1>
   560 00000FE0 740D707574735F6578- <1>
   560 00000FE9 745F646F6E650D7075- <1>
   560 00000FF2 74735F6578745F6E65- <1>
   560 00000FFB 787418707574735F63- <1>
   560 00001004 6F70796F7574707574- <1>
   560 0000100D 5F6578745F646F6E65- <1>
   560 00001016 15707574735F676574- <1>
   560 0000101F 6C696E655F6578745F- <1>
   560 00001028 646F6E650B696E5F67- <1>
   560 00001031 6574696E7075741163- <1>
   560 0000103A 6D64335F7072657072- <1>
   560 00001043 6F6365737365640F63- <1>
   560 0000104C 6D64335F6E6F745F69- <1>
   560 00001055 6E6A6563740D636D64- <1>
   560 0000105E 335F696E6A65637465- <1>
   560 00001067 640D61615F6E6F745F- <1>
   560 00001070 696E6A6563740B6161- <1>
   560 00001079 5F696E6A6563746564- <1>
   560 00001082 1161615F6265666F72- <1>
   560 0000108B 655F6765746C696E65- <1>
   560 00001094 1061615F6166746572- <1>
   560 0000109D 5F6765746C696E650C- <1>
   560 000010A6 7768696C655F627566- <1>
   560 000010AF 666572107768696C65- <1>
   560 000010B8 5F6275666665722E65- <1>
   560 000010C1 6E640573776368311B- <1>
   560 000010CA 696E7465726E616C66- <1>
   560 000010D3 6C6167735F77697468- <1>
   560 000010DC 5F74745F7768696C65- <1>
   560 000010E5 0C79795F69735F7363- <1>
   560 000010EE 726970741C7465726D- <1>
   560 000010F7 696E61746F725F696E- <1>
   560 00001100 5F6C696E655F696E2E- <1>
   560 00001109 6F66667365741B7465- <1>
   560 00001112 726D696E61746F725F- <1>
   560 0000111B 696E5F6C696E655F69- <1>
   560 00001124 6E2E76616C75651465- <1>
   560 0000112D 78745F66696E697368- <1>
   560 00001136 2E62705F69735F7365- <1>
   560 0000113F 740576726567730C76- <1>
   560 00001148 726567732E616D6F75- <1>
   560 00001151 6E740F617363696974- <1>
   560 0000115A 61626C656E616D6573- <1>
   560 00001163 0A706D5F325F38366D- <1>
   560 0000116C 5F300F6C6F61645F75- <1>
   560 00001175 6E69745F666C616773- <1>
   560 0000117E 157373735F73696C65- <1>
   560 00001187 6E745F636F756E745F- <1>
   560 00001190 75736564107373735F- <1>
   560 00001199 73696C656E745F636F- <1>
   560 000011A2 756E740E7365617263- <1>
   560 000011AB 685F726573756C7473- <1>
   560 000011B4 097373636F756E7465- <1>
   560 000011BD 72157365617263685F- <1>
   560 000011C6 726573756C74735F61- <1>
   560 000011CF 6D6F756E740D706174- <1>
   560 000011D8 6368617265615F7275- <1>
   560 000011E1 6E1270617463686172- <1>
   560 000011EA 65615F72756E2E7369- <1>
   560 000011F3 7A6515706174636861- <1>
   560 000011FC 7265615F72756E2E73- <1>
   560 00001205 65676D656E74107061- <1>
   560 0000120E 746368617265615F69- <1>
   560 00001217 6E7472746E15706174- <1>
   560 00001220 6368617265615F696E- <1>
   560 00001229 7472746E2E73697A65- <1>
   560 00001232 187061746368617265- <1>
   560 0000123B 615F696E7472746E2E- <1>
   560 00001244 7365676D656E741070- <1>
   560 0000124D 61746368617265615F- <1>
   560 00001256 706D5F657863157061- <1>
   560 0000125F 746368617265615F70- <1>
   560 00001268 6D5F6578632E73697A- <1>
   560 00001271 651870617463686172- <1>
   560 0000127A 65615F706D5F657863- <1>
   560 00001283 2E7365676D656E7409- <1>
   560 0000128C 70726F6D70746C656E- <1>
   560 00001295 15696E646972656374- <1>
   560 0000129E 5F61727261795F6572- <1>
   560 000012A7 72666978077072696F- <1>
   560 000012B0 72726302726313626F- <1>
   560 000012B9 6F745F696E69745F66- <1>
   560 000012C2 6F756E646E616D6515- <1>
   560 000012CB 6465766963655F7175- <1>
   560 000012D4 69747461626C655F72- <1>
   560 000012DD 656773156465766963- <1>
   560 000012E6 655F6865616465725F- <1>
   560 000012EF 616464726573731869- <1>
   560 000012F8 6E69745F6578656375- <1>
   560 00001301 7461626C655F706174- <1>
   560 0000130A 686E616D651C696E69- <1>
   560 00001313 745F65786563757461- <1>
   560 0000131C 626C655F706174686E- <1>
   560 00001325 616D652E656E640470- <1>
   560 0000132E 75747305707574737A- <1>
   560 00001337 047075746308707574- <1>
   560 00001340 736C696E650D707574- <1>
   560 00001349 736C696E655F63726C- <1>
   560 00001352 66087472696D707574- <1>
   560 0000135B 7309736B6970636F6D- <1>
   560 00001364 6D6109736B6970636F- <1>
   560 0000136D 6D6D3009736B697077- <1>
   560 00001376 6869746507736B6970- <1>
   560 0000137F 776830096973737472- <1>
   560 00001388 696E673F0A63617069- <1>
   560 00001391 74616C697365066368- <1>
   560 0000139A 6B656F6C066973656F- <1>
   560 000013A3 6C3F136973656F6C3F- <1>
   560 000013AC 2E6E6F7473656D6963- <1>
   560 000013B5 6F6C6F6E0975707065- <1>
   560 000013BE 72636173650D677561- <1>
   560 000013C7 72645F617578627566- <1>
   560 000013D0 660867756172645F72- <1>
   560 000013D9 650870726570686163- <1>
   560 000013E2 6B06646F6861636B06- <1>
   560 000013EB 756E6861636B1A6861- <1>
   560 000013F4 6E646C655F73657269- <1>
   560 000013FD 616C5F666C6167735F- <1>
   560 00001406 6374726C5F63066865- <1>
   560 0000140F 786E79620768657862- <1>
   560 00001418 79746507686578776F- <1>
   560 00001421 72640C686578776F72- <1>
   560 0000142A 645F68696768076465- <1>
   560 00001433 63776F726408646563- <1>
   560 0000143C 64776F726412646563- <1>
   560 00001445 5F64776F72645F6D69- <1>
   560 0000144E 6E7769647468046973- <1>
   560 00001457 706D08736574657332- <1>
   560 00001460 64780A63616C6C5F69- <1>
   560 00001469 6E7432441A636F7079- <1>
   560 00001472 5F73696E676C655F63- <1>
   560 0000147B 6F756E7465645F7374- <1>
   560 00001484 72696E6706696E7463- <1>
   560 0000148D 686B0C497349495350- <1>
   560 00001496 456E7472793F266469- <1>
   560 0000149F 73705F647861785F74- <1>
   560 000014A8 696D65735F63785F77- <1>
   560 000014B1 696474685F62785F73- <1>
   560 000014BA 697A652E73746F7265- <1>
   560 000014C3 04636D64330C636D64- <1>
   560 000014CC 335F6E6F745F657874- <1>
   560 000014D5 0D707574735F657874- <1>
   560 000014DE 5F646F6E650D707574- <1>
   560 000014E7 735F6578745F6E6578- <1>
   560 000014F0 7418707574735F636F- <1>
   560 000014F9 70796F75747075745F- <1>
   560 00001502 6578745F646F6E6515- <1>
   560 0000150B 707574735F6765746C- <1>
   560 00001514 696E655F6578745F64- <1>
   560 0000151D 6F6E6511636D64335F- <1>
   560 00001526 70726570726F636573- <1>
   560 0000152F 7365640F636D64335F- <1>
   560 00001538 6E6F745F696E6A6563- <1>
   560 00001541 740D636D64335F696E- <1>
   560 0000154A 6A6563746564056572- <1>
   560 00001553 726F72087365746473- <1>
   560 0000155C 327369087365746473- <1>
   560 00001565 32627815696E746361- <1>
   560 0000156E 6C6C5F6578745F7265- <1>
   560 00001577 7475726E5F65730864- <1>
   560 00001580 645F73746F72650549- <1>
   560 00001589 6E444F53085F646F73- <1>
   560 00001592 63616C6C1179795F64- <1>
   560 0000159B 6F735F70617273655F- <1>
   560 000015A4 6E616D650C79795F6F- <1>
   560 000015AD 70656E5F66696C650C- <1>
   560 000015B6 79795F636865636B5F- <1>
   560 000015BF 6C666E1479795F636F- <1>
   560 000015C8 6D6D6F6E5F70617273- <1>
   560 000015D1 655F6E616D651E7979- <1>
   560 000015DA 5F636F6D6D6F6E5F70- <1>
   560 000015E3 617273655F6E616D65- <1>
   560 000015EC 5F62785F6275666665- <1>
   560 000015F5 721672657472795F6F- <1>
   560 000015FE 70656E5F7363726970- <1>
   560 00001607 747370617468186E65- <1>
   560 00001610 61725F7472616E7366- <1>
   560 00001619 65725F6578745F7265- <1>
   560 00001622 7475726E0F79795F62- <1>
   560 0000162B 6F6F745F726561642E- <1>
   560 00001634 62781579795F626F6F- <1>
   560 0000163D 745F7365656B5F7374- <1>
   560 00001646 6172742E6278177979- <1>
   560 0000164F 5F626F6F745F736565- <1>
   560 00001658 6B5F63757272656E74- <1>
   560 00001661 2E62781379795F626F- <1>
   560 0000166A 6F745F70617273655F- <1>
   560 00001673 6E616D65321C79795F- <1>
   560 0000167C 626F6F745F70617273- <1>
   560 00001685 655F6E616D655F6278- <1>
   560 0000168E 5F6275666665721279- <1>
   560 00001697 795F626F6F745F6F70- <1>
   560 000016A0 656E5F66696C65320C- <1>
   560 000016A9 7363616E5F6469725F- <1>
   560 000016B2 6175780B726561645F- <1>
   560 000016BB 736563746F72117979- <1>
   560 000016C4 5F626F6F745F696E69- <1>
   560 000016CD 745F646972320B676F- <1>
   560 000016D6 745F7979656E747279- <1>
   560 000016DF 0E7363616E5F646972- <1>
   560 000016E8 5F656E747279142E2E- <1>
   560 000016F1 4079795F66696C656E- <1>
   560 000016FA 616D655F656D707479- <1>
   560 00001703 0D626F6F745F706172- <1>
   560 0000170C 73655F666E0C696E69- <1>
   560 00001715 745F626F6F74636D64- <1>
   560 0000171E 09636C6F73655F6578- <1>
   560 00001727 740C79795F72657365- <1>
   560 00001730 745F6275660D61615F- <1>
   560 00001739 6E6F745F696E6A6563- <1>
   560 00001742 740B61615F696E6A65- <1>
   560 0000174B 637465641161615F62- <1>
   560 00001754 65666F72655F676574- <1>
   560 0000175D 6C696E651061615F61- <1>
   560 00001766 667465725F6765746C- <1>
   560 0000176F 696E650E646F736361- <1>
   560 00001778 6C6C5F657874736567- <1>
   560 00001781 0C746573745F645F62- <1>
   560 0000178A 5F6269740F74657374- <1>
   560 00001793 5F686967685F6C696D- <1>
   560 0000179C 69740573657472630A- <1>
   560 000017A5 736B6970657175616C- <1>
   560 000017AE 730B636F756E745F73- <1>
   560 000017B7 746F72650868657864- <1>
   560 000017C0 776F72641376657269- <1>
   560 000017C9 66797365676D5F6F72- <1>
   560 000017D2 5F6572726F720A7665- <1>
   560 000017DB 726966797365676D0B- <1>
   560 000017E4 69737661726961626C- <1>
   560 000017ED 653F0C697373657061- <1>
   560 000017F6 7261746F723F0F6765- <1>
   560 000017FF 745F76616C75655F72- <1>
   560 00001808 616E67650D67657465- <1>
   560 00001811 787072657373696F6E- <1>
   560 0000181A 0867657464776F7264- <1>
   560 00001823 07676574776F726407- <1>
   560 0000182C 676574627974650767- <1>
   560 00001835 657461646472086765- <1>
   560 0000183E 746164647258086765- <1>
   560 00001847 7472616E6765096765- <1>
   560 00001850 7472616E6765581267- <1>
   560 00001859 65745F6C656E677468- <1>
   560 00001862 5F6B6579776F726406- <1>
   560 0000186B 6765746E79620B6973- <1>
   560 00001874 6F70657261746F723F- <1>
   560 0000187D 1C2E2E4063616C6C5F- <1>
   560 00001886 6F70657261746F725F- <1>
   560 0000188F 646973706174636865- <1>
   560 00001898 7273127661725F6578- <1>
   560 000018A1 745F73657475705F64- <1>
   560 000018AA 6F6E65066765747374- <1>
   560 000018B3 720A656E7472795F72- <1>
   560 000018BC 65746E              <1>
    75                                  %endif
    76                                  
    77                                  
    78                                  	usesection lDEBUG_DATA_ENTRY
    78          ------------------       note: usesection lDEBUG_DATA_ENTRY
    79                                  %if _LINK_COMPAT
    80                                  	align 4, db 0
    81                                  %endif
    82                                  
    83                                  msg:
    84                                  
    85                                  	align 2, db 0
    86                                  .help_array:
    87 00000000 [BB25]                  	dw .build_nameversion + NONCOMPRESSEDFLAG
    88 00000002 [C118]                  	dw .help_header + NONCOMPRESSEDFLAG
    89 00000004 [D018]                  	dw .help_contents
    90                                  .help_array_amount: equ ($ - .help_array) / 2
    91                                  
    92                                  	usemessagesegment
    92          ------------------       note: usesection MESSAGESEGMENT
    93 000018BF 00                      	align 2, db 0
    94                                  .help_header:
    95 000018C0 2068656C7020736372-     	asciz " help screen",13,10
    95 000018C9 65656E0D0A00       
    96                                  .help_contents: helppage main
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 000018CF 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 000018D0 9905                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000018D2 <bin 599h>          <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 00001E6B 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00001E6C FB00                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00001E6E <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 00001F69 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00001F6A 3403                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00001F6C <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 000022A0 5C02                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000022A2 <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 [BB25]                  	dw .build_nameversion + NONCOMPRESSEDFLAG
   129 00000016 [D125]                  	dw .build_linebreak + NONCOMPRESSEDFLAG
   130                                  .build_version_amount: equ ($ - .build_array) / 2
   131 00000018 [0B26]                  	dw .build_ldebug + NONCOMPRESSEDFLAG
   132 0000001A [4B26]                  	dw .build_lmacros + NONCOMPRESSEDFLAG
   133                                  %if _SYMBOLIC
   134                                  	dw .build_symsnip + NONCOMPRESSEDFLAG
   135                                  %endif
   136                                  %if _BOOTLDR
   137 0000001C [8B26]                  	dw .build_scanptab + NONCOMPRESSEDFLAG
   138                                  %endif
   139 0000001E [CB26]                  	dw .build_inicomp + NONCOMPRESSEDFLAG
   140                                  %if (_BOOTLDR && _CHECKSUM) || _CHECKSUM_NEW
   141                                  	dw .build_inicheck + NONCOMPRESSEDFLAG
   142                                  %endif
   143                                  %if _BOOTLDR
   144 00000020 [0B27]                  	dw .build_ldosboot + NONCOMPRESSEDFLAG
   145                                  %endif
   146                                  .build_short_amount: equ ($ - .build_array) / 2
   147                                  %if _EXTHELP
   148 00000022 [4A27]                  	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 [5A35]                  	dw .options_1
   156 00000026 [6638]                  	dw .options_2
   157 00000028 [6E3A]                  	dw .options_3
   158 0000002A [EA3C]                  	dw .options_4
   159 0000002C [E23D]                  	dw .options_5
   160 0000002E [EA3D]                  	dw .options_6
   161                                  .options_array_option_amount: equ ($ - .options_array) / 2
   162 00000030 [EC3F]                  	dw .flags_1
   163 00000032 [6242]                  	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 000024FE B900                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002500 <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 000025B9 00                      	align 2, db 0
   188                                  .build_nameversion:
   189 000025BA 6C4465627567582028-     	asciz _PROGNAME,_VERSION
   189 000025C3 323032362D30352D31-
   189 000025CC 332900             
   190                                  
   191 000025CF 00                      	align 2, db 0
   192                                  .build_linebreak:
   193 000025D0 0D0A00                  	asciz 13,10
   194 000025D3 00<rep 37h>             	_fill_at_least 80, 0, .build_nameversion
   195                                  
   196                                  	align 2, db 0
   197                                  .build_ldebug:
   198                                  %ifnidn _REVISIONID,""
   199 0000260A 536F7572636520436F-     	db "Source Control Revision ID: ",_REVISIONID,13,10
   199 00002613 6E74726F6C20526576-
   199 0000261C 6973696F6E2049443A-
   199 00002625 206867203366383465-
   199 0000262E 636162373933382028-
   199 00002637 3636383520616E6365-
   199 00002640 73746F7273290D0A   
   200                                  %endif
   201 00002648 00                      	asciz
   202 00002649 00                      	_fill_at_least 64, 0, .build_ldebug
   203                                  
   204                                  	align 2, db 0
   205                                  .build_lmacros:
   206 0000264A 55736573206C6D6163-     	fill_at_least 64, 0, asciz _REVISIONID_LMACROS
   206 00002653 726F733A2020526576-
   206 0000265C 6973696F6E20494420-
   206 00002665 686720646535336139-
   206 0000266E 363836666164202831-
   206 00002677 363720616E63657374-
   206 00002680 6F7273290D0A0000-  
   206 00002680 <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 0000268A 55736573207363616E-     	fill_at_least 64, 0, asciz _REVISIONID_SCANPTAB
   217 00002693 707461623A20526576-
   217 0000269C 6973696F6E20494420-
   217 000026A5 686720353735666138-
   217 000026AE 396664363731202833-
   217 000026B7 3120616E636573746F-
   217 000026C0 7273290D0A0000-    
   217 000026C0 <rep 4h>           
   218                                  %endif
   219                                  
   220                                  	align 2, db 0
   221                                  .build_inicomp:
   222 000026CA 5573657320696E6963-     	fill_at_least 64, 0, asciz _REVISIONID_INICOMP
   222 000026D3 6F6D703A2020526576-
   222 000026DC 6973696F6E20494420-
   222 000026E5 686720343837326236-
   222 000026EE 326236386333202836-
   222 000026F7 363720616E63657374-
   222 00002700 6F7273290D0A0000-  
   222 00002700 <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 0000270A 55736573206C646F73-     	fill_at_least 64, 0, asciz _REVISIONID_LDOSBOOT
   233 00002713 626F6F743A20526576-
   233 0000271C 6973696F6E20494420-
   233 00002725 686720616665663734-
   233 0000272E 383534363062202831-
   233 00002737 30323220616E636573-
   233 00002740 746F7273290D0A0000-
   233 00002740 <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 0000274A 1A02                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000274C <bin 21Ah>          <1>  incbin %%includename
    47                              <1> %%end:
   238                                  %endif
   239                                  %if ! _EXTHELP || _HELP_COMPRESSED
   240                                   %if _BOOTLDR
   241 00002966 00                      	asciz
   242                                  	; This message is used by mak.sh to detect that we
   243                                  	;  are building with boot load support.
   244 00002967 0D0A426F6F74206C6F-     	db 13,10,"Boot loader",13,10
   244 00002970 616465720D0A       
   245 00002976 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 00002977 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00002978 EE01                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000297A <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 00002B68 2601                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002B6A <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 00002C90 B801                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002C92 <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 00002E4A C801                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00002E4C <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 00003014 4305                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003016 <bin 543h>          <1>  incbin %%includename
    47                              <1> %%end:
   267                                   %endif
   268                                  
   269                                   %if _OPTIONS
   270                                  	usemessagesegment
   270          ------------------       note: usesection MESSAGESEGMENT
   271                                  .options_1: helppage options1
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00003559 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 0000355A 0903                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000355C <bin 309h>          <1>  incbin %%includename
    47                              <1> %%end:
   272                                  
   273                                  	usemessagesegment
   273          ------------------       note: usesection MESSAGESEGMENT
   274                                  .options_2: helppage options2
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00003865 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00003866 0502                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003868 <bin 205h>          <1>  incbin %%includename
    47                              <1> %%end:
   275                                  
   276                                  	usemessagesegment
   276          ------------------       note: usesection MESSAGESEGMENT
   277                                  .options_3: helppage options3
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00003A6D 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00003A6E 7902                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003A70 <bin 279h>          <1>  incbin %%includename
    47                              <1> %%end:
   278                                  
   279                                  	usemessagesegment
   279          ------------------       note: usesection MESSAGESEGMENT
   280                                  .options_4: helppage options4, 1
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00003CE9 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00003CEA F600                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003CEC <bin F6h>           <1>  incbin %%includename
    47                              <1> %%end:
   281                                  	; terminator is in .options_5
   282                                  
   283                                  	usemessagesegment
   283          ------------------       note: usesection MESSAGESEGMENT
   284                                  	align 2, db 0
   285                                  .options_5:
   286                                  %if _HELP_COMPRESSED
   287                                   %if _LZEXEDAT	; lzexedat:
   288 00003DE2 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 00003DE9 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00003DEA 0002                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003DEC <bin 200h>          <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 00003FEC 7302                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00003FEE <bin 273h>          <1>  incbin %%includename
    47                              <1> %%end:
   305                                  
   306                                  	usemessagesegment
   306          ------------------       note: usesection MESSAGESEGMENT
   307                                  .asmoptions_1: helppage optionsa
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42 00004261 00                  <1>  align 2, db 0
    43                              <1> %00:
    44 00004262 2802                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 00004264 <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 0000448C 6801                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000448E <bin 168h>          <1>  incbin %%includename
    47                              <1> %%end:
   313                                   %endif
   314                                  %endif
   315                                  
   316                                  	usesection lDEBUG_DATA_ENTRY
   316          ------------------       note: usesection lDEBUG_DATA_ENTRY
   317 00000050 54686973206C446562-     .readonly:	asciz "This lDebug variable cannot be written to. See ?V.",13,10
   317 00000059 756720766172696162-
   317 00000062 6C652063616E6E6F74-
   317 0000006B 206265207772697474-
   317 00000074 656E20746F2E205365-
   317 0000007D 65203F562E0D0A00   
   318 00000085 54686973206D656D6F-     .readonly_mem:	asciz "This memory variable cannot be written to.",13,10
   318 0000008E 727920766172696162-
   318 00000097 6C652063616E6E6F74-
   318 000000A0 206265207772697474-
   318 000000A9 656E20746F2E0D0A00 
   319                                  %if _MMXSUPP
   320                                  .internal_error_no_mmx:
   321 000000B2 496E7465726E616C20-     		asciz "Internal error, MMX variables not supported.",13,10
   321 000000BB 6572726F722C204D4D-
   321 000000C4 58207661726961626C-
   321 000000CD 6573206E6F74207375-
   321 000000D6 70706F727465642E0D-
   321 000000DF 0A00               
   322                                  %endif
   323                                  %if _PM
   324                                  .readonly_verifysegm:
   325 000000E1 4D656D6F7279207573-     		db "Memory using selector "
   325 000000EA 696E672073656C6563-
   325 000000F3 746F7220           
   326                                  .readonly_verifysegm.selector:
   327 000000F7 2D2D2D2D2069732069-     		asciz "---- is inaccessible for writing.",13,10
   327 00000100 6E6163636573736962-
   327 00000109 6C6520666F72207772-
   327 00000112 6974696E672E0D0A00 
   328                                  %endif
   329 0000011B 5B6D6F72655D            .more:		db "[more]"
   330                                   .more_size equ $-.more
   331 00000121 0D                      .more_over:	db 13
   332 00000122 20<rep 6h>              		times .more_size db 32
   333 00000128 0D                      		db 13		; to overwrite previous prompt
   334                                   .more_over_size equ $-.more_over
   335 00000129 5E430D0A                .ctrlc:		db "^C",13,10
   336                                   .ctrlc_size equ $-.ctrlc
   337 0000012D 00                       		asciz
   338                                  .freedos_ctrlc_workaround:
   339 0000012E 20284F6C6420467265-     		asciz " (Old FreeDOS kernel Ctrl-C work around happened)",13,10
   339 00000137 65444F53206B65726E-
   339 00000140 656C204374726C2D43-
   339 00000149 20776F726B2061726F-
   339 00000152 756E64206861707065-
   339 0000015B 6E6564290D0A00     
   340                                  .not_while_indos:
   341 00000162 436F6D6D616E64206E-     		asciz "Command not supported while in InDOS mode.",13,10
   341 0000016B 6F7420737570706F72-
   341 00000174 746564207768696C65-
   341 0000017D 20696E20496E444F53-
   341 00000186 206D6F64652E0D0A00 
   342 0000018F 43757272656E74206D-     .rv_mode.before:	asciz "Current mode: "
   342 00000198 6F64653A2000       
   343                                  %if _PM
   344 0000019E 44504D492031362D62-     .rv_mode_dpmi_16:	asciz "DPMI 16-bit CS",13,10
   344 000001A7 69742043530D0A00   
   345 000001AF 44504D492033322D62-     .rv_mode_dpmi_32:	asciz "DPMI 32-bit CS",13,10
   345 000001B8 69742043530D0A00   
   346                                  %endif
   347 000001C0 5265616C203836204D-     .rv_mode_r86m:		asciz "Real 86 Mode",13,10
   347 000001C9 6F64650D0A00       
   348 000001CF 5669727475616C2038-     .rv_mode_v86m:		asciz "Virtual 86 Mode",13,10
   348 000001D8 36204D6F64650D0A00 
   349                                  
   350 000001E1 333836207265676973-     .regs386:	asciz "386 registers are "
   350 000001EA 746572732061726520-
   350 000001F3 00                 
   351 000001F4 6E6F7420                .regs386_off:db "not "
   352 000001F8 646973706C61796564-     .regs386_on:	asciz "displayed",13,10
   352 00000201 0D0A00             
   353                                  
   354                                  %if _EMS
   355                                  	usemessagesegment
   356                                  .xhelp: helppage ems
   357                                  %endif
   358                                  
   359                                  %if _PM
   360                                  	usesection lDEBUG_DATA_ENTRY
   360          ------------------       note: usesection lDEBUG_DATA_ENTRY
   361 00000204 4445534300              .desc:	asciz "DESC"
   362                                  	usemessagesegment
   362          ------------------       note: usesection MESSAGESEGMENT
   363                                  .deschelp: helppage desc
    36                              <1>  %defstr %%basename %1
    37                              <1>  %if _LZEXEDAT
    38                              <1>  %strcat %%includename %%basename, ".hlz"
    39                              <1>  %else
    40                              <1>  %strcat %%includename %%basename, ".hhs"
    41                              <1>  %endif
    42                              <1>  align 2, db 0
    43                              <1> %00:
    44 000045F6 9200                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 000045F8 <bin 92h>           <1>  incbin %%includename
    47                              <1> %%end:
   364                                  %endif
   365                                  
   366                                  %ifn _MESSAGESEGMENT
   367                                  messagesegment_truncated_size equ 0
   368                                  	endarea messagesegment_truncated, 1
   369                                  messagesegment_nobits_truncated_size equ 0
   370                                  	endarea messagesegment_nobits_truncated, 1
   371                                  %endif
   372                                  
   373                                  %ifn _LINK
   374                                  %if !_BOOTLDR_DISCARD_HELP && _MESSAGESEGMENT
   375                                  messagesegment_truncated_size equ messagesegment_size
   376                                  	endarea messagesegment_truncated, 1
   377                                  messagesegment_nobits_truncated_size equ messagesegment_nobits_size
   378                                  	endarea messagesegment_nobits_truncated, 1
   379                                  %endif
   380                                  %if _EXTHELPBOOT
   381                                   %if _BOOTLDR
   382                                  	usemessagesegment
   383                                   %if _BOOTLDR_DISCARD_HELP
   384                                  	align 2, db 0
   385                                  messagesegment_truncated_size equ fromparas(paras($ - messagesegment_start + fromwords(imsg.boothelp_replacement_size_w)))
   386                                  	endarea messagesegment_truncated, 1
   387                                   %endif
   388                                  .boothelp: helppage boot
   389                                   %if _BOOTLDR_DISCARD_HELP
   390                                  
   391                                  truncated_message_last equ .boothelp + fromwords(imsg.boothelp_replacement_size_w)
   392                                  	absolute truncated_message_last
   393                                  %if _HELP_COMPRESSED
   394                                  	alignb 16
   395                                  truncated_hshrink_message_buffer: equ $
   396                                  		resb hshrink_message_buffer_size
   397                                  %endif
   398                                  
   399                                  	alignb 16
   400                                  messagesegment_nobits_truncated_size equ $ - $$
   401                                  	endarea messagesegment_nobits_truncated, 1
   402                                   %endif
   403                                   %endif
   404                                  %endif
   405                                  
   406                                  %else	; _LINK
   407                                  
   408                                   global behind_messagesegment_truncated
   409                                  
   410                                  %if !_BOOTLDR_DISCARD_HELP && _MESSAGESEGMENT
   411                                  behind_messagesegment_truncated equ behind_messagesegment
   412                                  behind_messagesegment_nobits_truncated equ behind_messagesegment_nobits
   413                                  %endif
   414                                  %if _EXTHELPBOOT
   415                                   %if _BOOTLDR
   416                                  	usemessagesegment
   416          ------------------       note: usesection MESSAGESEGMENT
   417                                   %if _BOOTLDR_DISCARD_HELP
   418                                  	align 2, db 0
   419                                  %push
   420                                  %define GET_MESSAGE_LENGTH
   421                                   %include "help/bootdisc.asm"
     1                              <1> %if 0
     2                              <1> 
     3                              <1> lDebug help message pages
     4                              <1> 
     5                              <1> Copyright (C) 1995-2003 Paul Vojta
     6                              <1> Copyright (C) 2008-2023 E. C. Masloch
     7                              <1> 
     8                              <1> Usage of the works is permitted provided that this
     9                              <1> instrument is retained with the works, so that any entity
    10                              <1> that uses the works is notified of this instrument.
    11                              <1> 
    12                              <1> DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
    13                              <1> 
    14                              <1> %endif
    15                              <1> 
    16                              <1> %define MESSAGE "This help page is only available in boot loaded mode.",13,10
    17                              <1> 
    18                              <1> %ifndef GET_MESSAGE_LENGTH
    19                              <1> %ifndef MESSAGE_INLINE
    20                              <1>  %include "debug.mac"
    21                              <1> %endif
    22                              <1> 
    23                              <1> 	db MESSAGE
    24                              <1> %else
    25                              <1> 	_strlen MESSAGE,0
    26                              <1> %endif
   422                                  %undef GET_MESSAGE_LENGTH
   423                                  bootldr_discard_help_page_length equ fromwords(words(%$len))
   424                                  %pop
   425                                  	absolute $
   426                                  	alignb 2
   427 0000468A <res 38h>               	resb bootldr_discard_help_page_length
   428 000046C2 <res Eh>                	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 0000468A CC05                <1>  dw %%end - %%start
    45                              <1> %%start:
    46 0000468C <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 000046C2 <res Eh>                	alignb 16
   439                                  truncated_hshrink_message_buffer: equ $
   440 000046D0 <res B0Ah>              		resb hshrink_message_buffer_size
   441                                  %endif
   442                                  
   443 000051DA ????????????            	alignb 16
   444                                  behind_messagesegment_nobits_truncated: equ $
   445                                   %endif
   446                                   %endif
   447                                  %endif
   448                                  
   449                                  	usesection MESSAGESEGMENT
   449          ------------------       note: usesection MESSAGESEGMENT
   450 00004C58 00<rep 8h>              	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 00004C60 <res B0Ah>              		resb hshrink_message_buffer_size
   458                                  %endif
   459 0000576A ????????????            	alignb 16
   460                                  behind_messagesegment_nobits: equ $
   461                                  %endif	; _LINK
   462                                  
   463                                  	usesection lDEBUG_DATA_ENTRY
   463          ------------------       note: usesection lDEBUG_DATA_ENTRY
   464                                  %if _TSR
   465 00000209 43616E6E6F7420676F-     .pspnotfound:	asciz "Cannot go resident, child PSP not found.",13,10
   465 00000212 207265736964656E74-
   465 0000021B 2C206368696C642050-
   465 00000224 5350206E6F7420666F-
   465 0000022D 756E642E0D0A00     
   466 00000234 43616E6E6F7420676F-     .psphooked:	asciz "Cannot go resident, child PSP parent return address hooked.",13,10
   466 0000023D 207265736964656E74-
   466 00000246 2C206368696C642050-
   466 0000024F 535020706172656E74-
   466 00000258 2072657475726E2061-
   466 00000261 64647265737320686F-
   466 0000026A 6F6B65642E0D0A00   
   467 00000272 506174636865642050-     .nowtsr1:	asciz "Patched PSP at "
   467 0000027B 53502061742000     
   468 00000282 2C206E6F7720726573-     .nowtsr2:	asciz ", now resident.",13,10
   468 0000028B 6964656E742E0D0A00 
   469 00000294 416C72656164792072-     .alreadytsr:	asciz "Already resident.",13,10
   469 0000029D 65736964656E742E0D-
   469 000002A6 0A00               
   470                                  .tsr_cannot_terminate_attached:
   471 000002A8 43616E6E6F74207465-     		asciz "Cannot terminate attached while resident.",13,10
   471 000002B1 726D696E6174652061-
   471 000002BA 747461636865642077-
   471 000002C3 68696C652072657369-
   471 000002CC 64656E742E0D0A00   
   472                                  .tsr_cannot_ll:
   473 000002D4 43616E6E6F74206C6F-     		asciz "Cannot load process while resident. Use R DCO7 CLR= ",_4digitshex(opt7_no_tsr_ll)," to override.",13,10
   473 000002DD 61642070726F636573-
   473 000002E6 73207768696C652072-
   473 000002EF 65736964656E742E20-
   473 000002F8 55736520522044434F-
   473 00000301 3720434C523D203230-
   473 0000030A 303020746F206F7665-
   473 00000313 72726964652E0D0A00 
   474                                  %endif
   475                                  %if _ATTACH
   476 0000031C 4E6F74207965742072-     .notyettsr:	asciz "Not yet resident. Cannot attach.",13,10
   476 00000325 65736964656E742E20-
   476 0000032E 43616E6E6F74206174-
   476 00000337 746163682E0D0A00   
   477 0000033F 496E76616C69642050-     .invalidpsp:	asciz "Invalid PSP specified. Cannot attach.",13,10
   477 00000348 535020737065636966-
   477 00000351 6965642E2043616E6E-
   477 0000035A 6F7420617474616368-
   477 00000363 2E0D0A00           
   478 00000367 53656C662D6F776E65-     .selfownedpsp:	asciz "Self-owned PSP specified. Cannot attach.",13,10
   478 00000370 642050535020737065-
   478 00000379 6369666965642E2043-
   478 00000382 616E6E6F7420617474-
   478 0000038B 6163682E0D0A00     
   479 00000392 506174636865642050-     .nowattached:	asciz "Patched PSP, now attached.",13,10
   479 0000039B 53502C206E6F772061-
   479 000003A4 747461636865642E0D-
   479 000003AD 0A00               
   480 000003AF 41545441434800          .attach:	asciz "ATTACH"
   481                                  %endif
   482                                  %if _PM && (_TSR || _BOOTLDR)
   483 000003B6 43616E6E6F74207175-     .cannotpmquit:	asciz "Cannot quit, still in protected mode.",13,10
   483 000003BF 69742C207374696C6C-
   483 000003C8 20696E2070726F7465-
   483 000003D1 63746564206D6F6465-
   483 000003DA 2E0D0A00           
   484                                  %endif
   485                                  %if _PM
   486 000003DE 50726F63657373206C-     .cannotpmload:	asciz "Process loading aborted: Still in protected mode.",13,10
   486 000003E7 6F6164696E67206162-
   486 000003F0 6F727465643A205374-
   486 000003F9 696C6C20696E207072-
   486 00000402 6F746563746564206D-
   486 0000040B 6F64652E0D0A00     
   487                                  %endif
   488                                  %if _BOOTLDR
   489 00000412 436F6D6D616E64206E-     .nobootsupp:	asciz "Command not supported in boot loaded mode.",13,10
   489 0000041B 6F7420737570706F72-
   489 00000424 74656420696E20626F-
   489 0000042D 6F74206C6F61646564-
   489 00000436 206D6F64652E0D0A00 
   490 0000043F 53687574646F776E20-     .boot_quit_fail:asciz "Shutdown not supported.",13,10
   490 00000448 6E6F7420737570706F-
   490 00000451 727465642E0D0A00   
   491 00000459 426F6F74206661696C-     .bootfail:	asciz "Boot failure: "
   491 00000462 7572653A2000       
   492 00000468 52656164696E672073-     .bootfail_read:	db "Reading sector failed (error "
   492 00000471 6563746F7220666169-
   492 0000047A 6C656420286572726F-
   492 00000483 7220               
   493 00000485 5F5F68292E0D0A00        .bootfail_read_errorcode:	asciz "__h).",13,10
   494 0000048D 426F6F742073656374-     .bootfail_sig:	asciz "Boot sector signature missing (is not AA55h).",13,10
   494 00000496 6F72207369676E6174-
   494 0000049F 757265206D69737369-
   494 000004A8 6E6720286973206E6F-
   494 000004B1 74204141353568292E-
   494 000004BA 0D0A00             
   495 000004BD 506172746974696F6E-     .bootfail_sig_parttable:	ascii "Partition table signature missing"
   495 000004C6 207461626C65207369-
   495 000004CF 676E6174757265206D-
   495 000004D8 697373696E67       
   496 000004DE 20286973206E6F7420-     				asciz " (is not AA55h).",13,10
   496 000004E7 4141353568292E0D0A-
   496 000004F0 00                 
   497 000004F1 426F6F742073656374-     .bootfail_code:	asciz "Boot sector code invalid (is 0000h).",13,10
   497 000004FA 6F7220636F64652069-
   497 00000503 6E76616C6964202869-
   497 0000050C 73203030303068292E-
   497 00000515 0D0A00             
   498                                  .bootfail_secsizediffer:
   499 00000518 425042204270532064-     		asciz "BPB BpS differs from actual sector size.",13,10
   499 00000521 696666657273206672-
   499 0000052A 6F6D2061637475616C-
   499 00000533 20736563746F722073-
   499 0000053C 697A652E0D0A00     
   500                                  .bootfail_stack_underflow:
   501 00000543 426F6F742073746163-     		asciz "Boot stack underflowed.",13,10
   501 0000054C 6B20756E646572666C-
   501 00000555 6F7765642E0D0A00   
   502                                  .bootfail_check_mismatch:
   503 0000055D 436865636B206D6973-     		db "Check mismatch, expected "
   503 00000566 6D617463682C206578-
   503 0000056F 70656374656420     
   504                                  .bootfail_check_mismatch.check_value:
   505 00000576 5F5F5F5F6820617420-     		db "____h at offset "
   505 0000057F 6F666673657420     
   506                                  .bootfail_check_mismatch.check_offset:
   507 00000586 5F5F5F5F6820627574-     		db "____h but has "
   507 0000058F 2068617320         
   508                                  .bootfail_check_mismatch.check_got:
   509 00000594 5F5F5F5F682E0D0A00      		asciz "____h.",13,10
   510 0000059D 4F7574206F66206D65-     .boot_out_of_memory_error:	asciz "Out of memory.", 13,10
   510 000005A6 6D6F72792E0D0A00   
   511 000005AE 546F6F206D616E7920-     .boot_too_many_partitions_error:asciz "Too many partitions (or a loop).",13,10
   511 000005B7 706172746974696F6E-
   511 000005C0 7320286F722061206C-
   511 000005C9 6F6F70292E0D0A00   
   512 000005D1 506172746974696F6E-     .boot_partition_cycle_error:	asciz "Partition table cycle detected.",13,10
   512 000005DA 207461626C65206379-
   512 000005E3 636C65206465746563-
   512 000005EC 7465642E0D0A00     
   513 000005F3 506172746974696F6E-     .boot_partition_not_found:	asciz "Partition not found.",13,10
   513 000005FC 206E6F7420666F756E-
   513 00000605 642E0D0A00         
   514 0000060A 52656164206572726F-     .boot_access_error:	asciz "Read error.", 13,10
   514 00000613 722E0D0A00         
   515 00000618 536563746F72207369-     .boot_sector_too_large:	asciz "Sector size too small (< 32 bytes).", 13,10
   515 00000621 7A6520746F6F20736D-
   515 0000062A 616C6C20283C203332-
   515 00000633 206279746573292E0D-
   515 0000063C 0A00               
   516 0000063E 536563746F72207369-     .boot_sector_too_small:	asciz "Sector size too large (> 8192 bytes).", 13,10
   516 00000647 7A6520746F6F206C61-
   516 00000650 72676520283E203831-
   516 00000659 393220627974657329-
   516 00000662 2E0D0A00           
   517 00000666 536563746F72207369-     .boot_sector_not_power:	asciz "Sector size not a power of two.", 13,10
   517 0000066F 7A65206E6F74206120-
   517 00000678 706F776572206F6620-
   517 00000681 74776F2E0D0A00     
   518 00000688 496E76616C69642067-     .boot_invalid_sectors:	asciz "Invalid geometry sectors.", 13,10
   518 00000691 656F6D657472792073-
   518 0000069A 6563746F72732E0D0A-
   518 000006A3 00                 
   519 000006A4 496E76616C69642067-     .boot_invalid_heads:	asciz "Invalid geometry heads.", 13,10
   519 000006AD 656F6D657472792068-
   519 000006B6 656164732E0D0A00   
   520 000006BE 46696C65206E6F7420-     .boot_file_not_found:	asciz "File not found.",13,10
   520 000006C7 666F756E642E0D0A00 
   521 000006D0 46696C6520746F6F20-     .boot_file_too_big_error:	asciz "File too big.",13,10
   521 000006D9 6269672E0D0A00     
   522 000006E0 46696C6520746F6F20-     .boot_file_too_small_error:	asciz "File too small.",13,10
   522 000006E9 736D616C6C2E0D0A00 
   523 000006F2 42616420616D6F756E-     .boot_badclusters:	asciz "Bad amount of clusters.",13,10
   523 000006FB 74206F6620636C7573-
   523 00000704 746572732E0D0A00   
   524 0000070C 42616420636C757374-     .boot_badchain:		asciz "Bad cluster chain.",13,10
   524 00000715 657220636861696E2E-
   524 0000071E 0D0A00             
   525 00000721 4261642046696C6520-     .boot_badfat:		asciz "Bad File Allocation Table.",13,10
   525 0000072A 416C6C6F636174696F-
   525 00000733 6E205461626C652E0D-
   525 0000073C 0A00               
   526 0000073E 496E76616C69642066-     .boot_invalid_filename:	asciz "Invalid filename.",13,10
   526 00000747 696C656E616D652E0D-
   526 00000750 0A00               
   527 00000752 43616E6E6F74207365-     .boot_cannot_set_both:	asciz "Cannot set both "
   527 0000075B 7420626F74682000   
   528 00000763 20616E642000            .boot_and:		asciz " and "
   529 00000769 2E0D0A00                .boot_dot_crlf:		asciz ".",13,10
   530 0000076D 2120496E7465726E61-     .boot_internal_error:	asciz "! Internal error !",13,10
   530 00000776 6C206572726F722021-
   530 0000077F 0D0A00             
   531 00000782 42504220616E64206C-     .boot_bpb_load_overlap:	asciz "BPB and load area overlap.",13,10
   531 0000078B 6F6164206172656120-
   531 00000794 6F7665726C61702E0D-
   531 0000079D 0A00               
   532 0000079F 5365676D656E742074-     .boot_segment_too_low:	asciz "Segment too low.",13,10
   532 000007A8 6F6F206C6F772E0D0A-
   532 000007B1 00                 
   533 000007B2 42504220746F6F206C-     .boot_bpb_too_low:	asciz "BPB too low.",13,10
   533 000007BB 6F772E0D0A00       
   534 000007C1 2120496E7465726E61-     .boot_auxbuff_crossing:	db "! Internal error !, "
   534 000007CA 6C206572726F722021-
   534 000007D3 2C20               
   535 000007D5 617578627566662063-     			asciz "auxbuff crosses 64 KiB boundary.",13,10
   535 000007DE 726F73736573203634-
   535 000007E7 204B694220626F756E-
   535 000007F0 646172792E0D0A00   
   536 000007F8 5245414400              .read:		asciz "READ"
   537 000007FD 575249544500            .write:		asciz "WRITE"
   538 00000803 48494444454E00          .hidden:	asciz "HIDDEN"
   539 0000080A 48494444454E414444-     .hiddenadd:	asciz "HIDDENADD"
   539 00000813 00                 
   540 00000814 44495200                .dir:		asciz "DIR"
   541 00000818 082020205B4449525D      .dirinsteadsize:countedb "   [DIR]"
   542 00000821 2F00                    .emptydirname:	asciz "/"
   543 00000823 424F4F5400              .boot:		asciz "BOOT"
   544 00000828 5155495400              .quit:		asciz "QUIT"
   545 0000082D 50524F544F434F4C00      .protocol:	asciz "PROTOCOL"
   546 00000836 5345474D454E5400        .segment:	asciz "SEGMENT"
   547 0000083E 454E54525900            .entry:		asciz "ENTRY"
   548 00000844 434F5059                .copybpb:	db "COPY"
   549 00000848 42504200                .bpb:		asciz "BPB"
   550 0000084C 4D494E5041524100        .minpara:	asciz "MINPARA"
   551 00000854 4D41585041524100        .maxpara:	asciz "MAXPARA"
   552 0000085C 434845434B4F464653-     .checkoffset:	asciz "CHECKOFFSET"
   552 00000865 455400             
   553 00000868 434845434B56414C55-     .checkvalue:	asciz "CHECKVALUE"
   553 00000871 4500               
   554 00000873 534543544F5200          .sector:	asciz "SECTOR"
   555 0000087A 534543544F52414C54-     .sector_alt:	asciz "SECTORALT"
   555 00000883 00                 
   556 00000884 4B45524E454C2E5359-     .freedos_kernel_name:	asciz "KERNEL.SYS"
   556 0000088D 5300               
   557 0000088F 49504C2E53595300        .dosc_kernel_name:	asciz "IPL.SYS"
   558 00000897 445242494F2E535953-     .edrdos_kernel_name:	asciz "DRBIO.SYS"
   558 000008A0 00                 
   559 000008A1 445242494F532E5359-     .drdos9_kernel_name:	asciz "DRBIOS.SYS"
   559 000008AA 5300               
   560 000008AC 4C444F532E434F4D00      .ldos_kernel_name:	asciz "LDOS.COM"
   561                                  .msdos7_kernel_name:
   562 000008B5 494F2E53595300          .msdos6_kernel_name:	asciz "IO.SYS"
   563 000008BC 4D53444F532E535953-     .msdos6_add_name:	asciz "MSDOS.SYS"
   563 000008C5 00                 
   564 000008C6 49424D42494F2E434F-     .ibmdos_kernel_name:	asciz "IBMBIO.COM"
   564 000008CF 4D00               
   565 000008D1 49424D444F532E434F-     .ibmdos_add_name:	asciz "IBMDOS.COM"
   565 000008DA 4D00               
   566 000008DC 4E544C445200            .ntldr_kernel_name:	asciz "NTLDR"
   567 000008E2 424F4F544D475200        .bootmgr_kernel_name:	asciz "BOOTMGR"
   568 000008EA 424F4F54534543542E-     .chain_kernel_name:	asciz "BOOTSECT.DOS"
   568 000008F3 444F5300           
   569 000008F7 5258444F5342494F2E-     .rxdos.0_kernel_name:	asciz "RXDOSBIO.SYS"
   569 00000900 53595300           
   570 00000904 525842494F2E535953-     .rxdos.1_kernel_name:	asciz "RXBIO.SYS"
   570 0000090D 00                 
   571                                  .rxdos.0_add_name:
   572 0000090E 5258444F532E535953-     .rxdos.1_add_name:	asciz "RXDOS.SYS"
   572 00000917 00                 
   573 00000918 5258444F532E434F4D-     .rxdos.2_kernel_name:	asciz "RXDOS.COM"
   573 00000921 00                 
   574 00000922 00                      .addname_empty:		asciz
   575 00000923 43616E6E6F74207175-     .cannotbootquit_memsizes:	asciz "Cannot quit, memory size changed.",13,10
   575 0000092C 69742C206D656D6F72-
   575 00000935 792073697A65206368-
   575 0000093E 616E6765642E0D0A00 
   576                                  %endif
   577 00000947 554E                    .uninstall:	db "UN"
   578 00000949 494E5354414C4C00        .install:	asciz "INSTALL"
   579 00000951 544F47474C4500          .toggle:	asciz "TOGGLE"
   580 00000958 20697320616C726561-     .alreadyenabled:asciz " is already enabled.",13,10
   580 00000961 647920656E61626C65-
   580 0000096A 642E0D0A00         
   581 0000096F 20697320616C726561-     .alreadydisabled:asciz " is already disabled.",13,10
   581 00000978 64792064697361626C-
   581 00000981 65642E0D0A00       
   582 00000987 3A20547279696E6720-     .tryenable:	asciz ": Trying to enable.",13,10
   582 00000990 746F20656E61626C65-
   582 00000999 2E0D0A00           
   583 0000099D 3A20547279696E6720-     .trydisable:	asciz ": Trying to disable.",13,10
   583 000009A6 746F2064697361626C-
   583 000009AF 652E0D0A00         
   584                                  %if _LOADER
   585                                  .move:		asciz "MOVE"
   586                                  .bottom:	asciz "BOTTOM"
   587                                  .isnow:		asciz "Now i"
   588                                  .isalready:	asciz "Already i"
   589                                  .isbottom:	asciz "Is resident at bottom.",13,10
   590                                  .istop:		asciz "Is resident at top.",13,10
   591                                  .ishidden:	asciz "Is resident beyond top (hidden).",13,10
   592                                  .move_empty:		asciz "Error: Empty N extension query!",13,10
   593                                  .move_must_be_bottom:	asciz "Error: Must be at bottom to install N extension!",13,10
   594                                  .move_rpl:		asciz "Error: RPL present!",13,10
   595                                  .move_nottop:		asciz "Error: NLDR not hidden at top!",13,10
   596                                  .move_oom:		asciz "Error: Out of memory!",13,10
   597                                  .move_ebdanottop:	asciz "Error: EBDA not at top of memory!",13,10
   598                                  .move_toolargeebda:	asciz "Error: EBDA too large!",13,10
   599                                  .unsupportedmove:	asciz "Error: This movement is not supported!",13,10
   600                                  .move_auxbuff_error:	asciz "Error: Auxiliary buffer cannot be placed!",13,10
   601                                  .move_auxup:		asciz "Auxiliary buffer moved up.",13,10
   602                                  .move_auxdown:		asciz "Auxiliary buffer moved down.",13,10
   603                                  .move_int_panic:	db "Critical "
   604                                  .move_int_error:	asciz "Error: An interrupt hook cannot be unhooked!",13,10
   605                                  .loader_bottom_not_allowed:
   606                                  	asciz "Error: Boot sector load disallowed while resident at bottom!",13,10
   607                                  .loader_too_low_load:
   608                                  	asciz "Error: Load segment intersects loader resident at bottom!",13,10
   609                                  .loader_error:
   610                                  	asciz "Error: Debugger load invariant broken, not supported!",13,10
   611                                  .godebug:		asciz "GODEBUG"
   612                                  .loader_must_be_hidden:
   613                                  	asciz "Error: Go Debug command must be run from hidden.",13,10
   614                                  .loader_extra:
   615                                  	asciz "Error: Extended lsvExtra entry not found.",13,10
   616                                  .loader_stack:
   617                                  	asciz "Error: Load Stack Variables allocation too small!",13,10
   618                                  .loader_loadseg_low:
   619                                  	asciz "Error: Load end segment in LSV too low.",13,10
   620                                  .loader_sign:
   621                                  	asciz "Error: Loader support signature not found.",13,10
   622                                  .loader_flag:
   623                                  	asciz "Error: Loader support unknown flag set.",13,10
   624                                  	align 4, db 0
   625                                  	dw 0		; make sure this is word-aligned but not para-aligned
   626                                  .loadsupportsignature:
   627                                  	db "LOAD","ERSU","PPOR","T00"	; signature and version
   628                                  .loadsupportsignature.size equ $ - .loadsupportsignature
   629                                  %endif
   630                                  %if _AREAS_HOOK_SERVER || (_AREAS && _AREAS_HOOK_CLIENT)
   631                                  .qqlate_areas_error:
   632 000009B4 496E7465726E616C20-     		asciz "Internal error in Q command uninstalling areas.",13,10
   632 000009BD 6572726F7220696E20-
   632 000009C6 5120636F6D6D616E64-
   632 000009CF 20756E696E7374616C-
   632 000009D8 6C696E672061726561-
   632 000009E1 732E0D0A00         
   633                                  %endif
   634                                  %if _AREAS && _AREAS_HOOK_CLIENT
   635                                  .areasinstalled:	asciz "Areas installed.",13,10
   636                                  .areasalreadyinstalled:	asciz "Areas already installed.",13,10
   637                                  .areasnodebuggerfound:	asciz "Areas not installed, no debugger AMIS interface found!",13,10
   638                                  .areasnotsupported:	asciz "Areas not installed, debugger AMIS interface does not support function!",13,10
   639                                  .areasnotinstalled:	db "Areas not installed, debugger returned code "
   640                                  .areasnotinstalled.code:asciz "--h.",13,10
   641                                  .areasalreadyuninstalled:	asciz "Areas already uninstalled.",13,10
   642                                  .areasuninstalled:		db "Areas uninstalled, debugger returned code "
   643                                  .areasuninstalled.code:		asciz "--h.",13,10
   644                                  %endif
   645 000009E6 5448454E00              .then:		asciz "THEN"
   646 000009EB 4E4F5400                .not:		asciz "NOT"
   647 000009EF 52565600                .rvv:		asciz "RVV"
   648 000009F3 52564D00                .rvm:		asciz "RVM"
   649 000009F7 52565000                .rvp:		asciz "RVP"
   650 000009FB 52564400                .rvd:		asciz "RVD"
   651                                  %if _MMXSUPP && _RM
   652                                  .rm:		asciz "RM"
   653                                  %endif
   654                                  %if _BOOTLDR
   655 000009FF 4D6F64653A20426F6F-     .rvp_boot:		ascizline "Mode: Boot loaded"
   655 00000A08 74206C6F616465640D-
   655 00000A11 0A00               
   656                                  %endif
   657                                  %if _DEVICE
   658                                   %if _ATTACH
   659 00000A13 4D6F64653A20446576-     .rvp_device_attached:	ascizline "Mode: Device driver attached"
   659 00000A1C 696365206472697665-
   659 00000A25 722061747461636865-
   659 00000A2E 640D0A00           
   660                                   %endif
   661 00000A32 4D6F64653A20446576-     .rvp_device:		ascizline "Mode: Device driver"
   661 00000A3B 696365206472697665-
   661 00000A44 720D0A00           
   662                                  %endif
   663                                  %if _APPLICATION
   664                                   %if _TSR
   665 00000A48 4D6F64653A20417070-     .rvp_tsr:		ascizline "Mode: Application installed as TSR"
   665 00000A51 6C69636174696F6E20-
   665 00000A5A 696E7374616C6C6564-
   665 00000A63 206173205453520D0A-
   665 00000A6C 00                 
   666                                   %endif
   667 00000A6D 4D6F64653A20417070-     .rvp_application:	ascizline "Mode: Application"
   667 00000A76 6C69636174696F6E0D-
   667 00000A7F 0A00               
   668                                  %endif
   669 00000A81 0D436F646520736567-     .vm_codeseg:	counted "Code segment="
   669 00000A8A 6D656E743D         
   670                                  %if _DUALCODE
   671 00000A8F 0E436F646532207365-     .vm_code2seg:	counted "Code2 segment="
   671 00000A98 676D656E743D       
   672                                  %endif
   673 00000A9E 0D4461746120736567-     .vm_dataseg:	counted "Data segment="
   673 00000AA7 6D656E743D         
   674 00000AAC 0E456E747279207365-     .vm_entryseg:	counted "Entry segment="
   674 00000AB5 676D656E743D       
   675                                  %if _MESSAGESEGMENT
   676 00000ABB 104D65737361676520-     .vm_messageseg:	counted "Message segment="
   676 00000AC4 7365676D656E743D   
   677                                  %endif
   678 00000ACC 104175786275666620-     .vm_auxseg:	counted "Auxbuff segment="
   678 00000AD5 7365676D656E743D   
   679                                  %if _HISTORY_SEPARATE_FIXED && _HISTORY
   680 00000ADD 10486973746F727920-     .vm_hisseg:	counted "History segment="
   680 00000AE6 7365676D656E743D   
   681                                  %endif
   682                                  %if _PM
   683 00000AEE 0A2073656C6563746F-     .vm_selector:	counted " selector="
   683 00000AF7 723D               
   684                                  %endif
   685 00000AF9 0D436C69656E742020-     .vp_pspsegment:		counted "Client   PSP="
   685 00000B02 205053503D         
   686 00000B07 0D4465627567676572-     .vp_dpspsegment:	counted "Debugger PSP="
   686 00000B10 205053503D         
   687                                  .vp_dparent:
   688 00000B15 0820506172656E743D      .vp_parent:		counted " Parent="
   689                                  .vp_dpra:
   690 00000B1E 1720506172656E7420-     .vp_pra:		counted " Parent Return Address="
   690 00000B27 52657475726E204164-
   690 00000B30 64726573733D       
   691                                  %if _PM
   692                                  .vp_dpspsel:
   693 00000B36 0E205053502053656C-     .vp_pspsel:		counted " PSP Selector="
   693 00000B3F 6563746F723D       
   694                                  %endif
   695 00000B45 4E6F74206C6F616465-     .rvd_not_device:	asciz "Not loaded in device mode.",13,10
   695 00000B4E 6420696E2064657669-
   695 00000B57 6365206D6F64652E0D-
   695 00000B60 0A00               
   696                                  %if _DEVICE
   697 00000B62 114465766963652068-     .rvd_deviceheader:	counted "Device header at "
   697 00000B6B 656164657220617420 
   698 00000B74 212E20416D6F756E74-     .rvd_size:		counted ". Amount paragraphs allocated is "
   698 00000B7D 207061726167726170-
   698 00000B86 687320616C6C6F6361-
   698 00000B8F 74656420697320     
   699                                  %endif
   700 00000B96 546F6F206C6F6E6720-     .n_toolongtail:	asciz "Too long N command tail!",13,10
   700 00000B9F 4E20636F6D6D616E64-
   700 00000BA8 207461696C210D0A00 
   701 00000BB1 546F6F206C6F6E6720-     .n_toolongname:	asciz "Too long N command name!",13,10
   701 00000BBA 4E20636F6D6D616E64-
   701 00000BC3 206E616D65210D0A00 
   702 00000BCC 4E554D42455200          .number:	asciz "NUMBER"
   703 00000BD3 434F554E54455200        .counter:	asciz "COUNTER"
   704 00000BDB 494400                  .id:		asciz "ID"
   705 00000BDE 5748454E00              .when:		asciz "WHEN"
   706 00000BE3 4F464653455400          .offset:	asciz "OFFSET"
   707 00000BEA 3F00                    .questionmark:	asciz "?"
   708 00000BEC 4F                      .or:		db "O"
   709 00000BED 5200                    .r:		asciz "R"
   710 00000BEF 4E4400                  .nd:		asciz "ND"
   711 00000BF2 4C5200                  .lr:		asciz "LR"
   712 00000BF5 52454D454D42455200      .remember:	asciz "REMEMBER"
   713 00000BFE 474F544F00              .goto:		asciz "GOTO"
   714 00000C03 534F4600                .sof:		asciz "SOF"
   715 00000C07 454F4600                .eof:		asciz "EOF"
   716 00000C0B 4572726F723A20474F-     .goto_not_file:	asciz "Error: GOTO command not supported when not reading a script.",13,10
   716 00000C14 544F20636F6D6D616E-
   716 00000C1D 64206E6F7420737570-
   716 00000C26 706F72746564207768-
   716 00000C2F 656E206E6F74207265-
   716 00000C38 6164696E6720612073-
   716 00000C41 63726970742E0D0A00 
   717 00000C4A 4572726F723A20474F-     .goto_empty:	asciz "Error: GOTO needs a destination label.",13,10
   717 00000C53 544F206E6565647320-
   717 00000C5C 612064657374696E61-
   717 00000C65 74696F6E206C616265-
   717 00000C6E 6C2E0D0A00         
   718 00000C73 4572726F723A20474F-     .goto_not_found.1:	asciz "Error: GOTO destination label ",'"'
   718 00000C7C 544F2064657374696E-
   718 00000C85 6174696F6E206C6162-
   718 00000C8E 656C202200         
   719 00000C93 22206E6F7420666F75-     .goto_not_found.2:	asciz '"'," not found.",13,10
   719 00000C9C 6E642E0D0A00       
   720 00000CA2 4572726F723A206175-     .guard_auxbuff_error:	asciz "Error: auxbuff already guarded!",13,10
   720 00000CAB 786275666620616C72-
   720 00000CB4 656164792067756172-
   720 00000CBD 646564210D0A00     
   721 00000CC4 4572726F723A20436F-     .guard_re_error:	asciz "Error: Command not supported while reading from RE buffer.",13,10
   721 00000CCD 6D6D616E64206E6F74-
   721 00000CD6 20737570706F727465-
   721 00000CDF 64207768696C652072-
   721 00000CE8 656164696E67206672-
   721 00000CF1 6F6D20524520627566-
   721 00000CFA 6665722E0D0A00     
   722 00000D01 4572726F723A20436F-     .guard_rc_error:	asciz "Error: Command not supported while reading from RC buffer.",13,10
   722 00000D0A 6D6D616E64206E6F74-
   722 00000D13 20737570706F727465-
   722 00000D1C 64207768696C652072-
   722 00000D25 656164696E67206672-
   722 00000D2E 6F6D20524320627566-
   722 00000D37 6665722E0D0A00     
   723 00000D3E 4572726F723A20556E-     .unexpected_auxbuff_guard:	asciz "Error: Unexpected auxbuff guard!",13,10
   723 00000D47 657870656374656420-
   723 00000D50 617578627566662067-
   723 00000D59 75617264210D0A00   
   724                                  %if _SYMBOLIC
   725                                  .unexpected_nosymbols:		asciz "Error: Unexpected no symbols flag!",13,10
   726                                  %endif
   727 00000D61 4572726F723A20556E-     .unexpected_noneol_re:		asciz "Error: Unexpected non-EOL in RE processing!",13,10
   727 00000D6A 657870656374656420-
   727 00000D73 6E6F6E2D454F4C2069-
   727 00000D7C 6E2052452070726F63-
   727 00000D85 657373696E67210D0A-
   727 00000D8E 00                 
   728 00000D8F 4572726F723A20556E-     .unexpected_noneol_rc:		asciz "Error: Unexpected non-EOL in RC processing!",13,10
   728 00000D98 657870656374656420-
   728 00000DA1 6E6F6E2D454F4C2069-
   728 00000DAA 6E2052432070726F63-
   728 00000DB3 657373696E67210D0A-
   728 00000DBC 00                 
   729 00000DBD 5245504C41434500        .replace:	asciz "REPLACE"
   730 00000DC5 415050454E4400          .append:	asciz "APPEND"
   731 00000DCC 44                      .dword:		db "D"
   732 00000DCD 574F524400              .word:		asciz "WORD"
   733 00000DD2 33                      .3byte:		db "3"
   734 00000DD3 4259544500              .byte:		asciz "BYTE"
   735 00000DD8 4C494E455300            .lines:		asciz "LINES"
   736                                  %if _RH
   737 00000DDE 524800                  .rh:		asciz "RH"
   738 00000DE1 526567697374657220-     .rh_enabled:	asciz "Register dump history enabled.",13,10
   738 00000DEA 64756D702068697374-
   738 00000DF3 6F727920656E61626C-
   738 00000DFC 65642E0D0A00       
   739 00000E02 526567697374657220-     .rh_disabled:	asciz "Register dump history disabled.",13,10
   739 00000E0B 64756D702068697374-
   739 00000E14 6F7279206469736162-
   739 00000E1D 6C65642E0D0A00     
   740 00000E24 0A2020524820737465-     .rh_step.1:	counted "  RH step="
   740 00000E2D 703D               
   741 00000E2F 0B2020646563696D61-     .rh_step.2:	counted "  decimal: "
   741 00000E38 6C3A20             
   742                                  %endif
   743                                  %if _HELP_COMPRESSED
   744 00000E3B 496E7465726E616C20-     .hshrink_error:	asciz "Internal error: Depack failure!",13,10
   744 00000E44 6572726F723A204465-
   744 00000E4D 7061636B206661696C-
   744 00000E56 757265210D0A00     
   745                                  %endif
   746                                  %if _TEST_HELP_FILE
   747                                  .testhelp:	asciz "TESTHELP"
   748                                  %endif
   749                                  %if 1 || _STRNUM
   750 00000E5D 415300                  .as:		asciz "AS"
   751                                  %endif
   752                                  %if _DTOP || _LOADER
   753 00000E60 544F5000                .top:		asciz "TOP"
   754                                  %endif
   755                                  %if _COUNT || _RH
   756 00000E64 434F554E5400            .count:		asciz "COUNT"
   757                                  %endif
   758                                  %if _CLEAR
   759 00000E6A 434C45415200            .clear:		asciz "CLEAR"
   760 00000E70 1B631B5B324A0D0A00      .clear_sequence:asciz 27,"c",27,"[2J",13,10
   761                                  	; Note that the first sequence will not have an effect
   762                                  	;  when writing to int 10h in non-dumb mode. Therefore,
   763                                  	;  it will advance the cursor to a nonzero column.
   764                                  	; This is required by the dumb mode detection code.
   765                                  %endif
   766                                  %if _HHDIVREMAIN
   767                                  .hh_div_remainder:
   768 00000E79 0D72656D61696E6465-     		counted "remainder is "
   768 00000E82 7220697320         
   769                                  %endif
   770                                  %if _CONFIG
   771 00000E87 3A3A434F4E4649473A-     .configkeyword:	asciz "::CONFIG:"
   771 00000E90 00                 
   772 00000E91 3A3A53435249505453-     .scriptskeyword:asciz "::SCRIPTS:"
   772 00000E9A 3A00               
   773 00000E9C 3A3A454D5054593A00      .emptykeyword:	asciz "::EMPTY:"
   774                                  %endif
   775                                  %if _EXECUTABLE
   776 00000EA5 3A3A45584543555441-     .executablekeyword:	asciz "::EXECUTABLE:"
   776 00000EAE 424C453A00         
   777                                  %endif
   778                                  %if _EXTENSIONS
   779 00000EB3 496E7465726E616C20-     .ext_error_internal:	asciz "Internal error in EXT command.",13,10
   779 00000EBC 6572726F7220696E20-
   779 00000EC5 45585420636F6D6D61-
   779 00000ECE 6E642E0D0A00       
   780 00000ED4 45585420636F6D6D61-     .ext_error_io:		asciz "EXT command got I/O error.",13,10
   780 00000EDD 6E6420676F7420492F-
   780 00000EE6 4F206572726F722E0D-
   780 00000EEF 0A00               
   781 00000EF1 4E6F206F7220696E76-     .ext_error_invalid:	asciz "No or invalid Extension for lDebug header.",13,10
   781 00000EFA 616C69642045787465-
   781 00000F03 6E73696F6E20666F72-
   781 00000F0C 206C44656275672068-
   781 00000F15 65616465722E0D0A00 
   782 00000F1E 4F7574206F66206D65-     .ext_error_oom:		asciz "Out of memory in EXT command.",13,10
   782 00000F27 6D6F727920696E2045-
   782 00000F30 585420636F6D6D616E-
   782 00000F39 642E0D0A00         
   783 00000F3E 45585400                .ext:		asciz "EXT"
   784 00000F42 457874656E73696F6E-     .eld_load_error:db "Extension for lDebug had an error during loading. Code: "
   784 00000F4B 20666F72206C446562-
   784 00000F54 75672068616420616E-
   784 00000F5D 206572726F72206475-
   784 00000F66 72696E67206C6F6164-
   784 00000F6F 696E672E20436F6465-
   784 00000F78 3A20               
   785 00000F7A 2D2D2D2D2E0D0A00        .eld_error_code:asciz "----.",13,10
   786                                  %endif
   787 00000F82 47494200                .gib:		asciz "GIB"
   788 00000F86 4D494200                .mib:		asciz "MIB"
   789 00000F8A 4B494200                .kib:		asciz "KIB"
   790 00000F8E 504147455300            .pages:		asciz "PAGES"
   791 00000F94 504152414752415048-     .paragraphs:	asciz "PARAGRAPHS"
   791 00000F9D 5300               
   792 00000F9F 504152415300            .paras:		asciz "PARAS"
   793 00000FA5 51574F52445300          .qwords:	asciz "QWORDS"
   794 00000FAC 44                      .dwords:	db "D"
   795 00000FAD 574F52445300            .words:		asciz "WORDS"
   796 00000FB3 425954455300            .bytes:		asciz "BYTES"
   797 00000FB9 4C454E47544800          .length:	asciz "LENGTH"
   798 00000FC0 454E4400                .end:		asciz "END"
   799 00000FC4 52414E474500            .range:		asciz "RANGE"
   800                                  %if _VXCHG
   801 00000FCA 4F4E00                  .on:		asciz "ON"
   802 00000FCD 4F464600                .off:		asciz "OFF"
   803                                  .vv_enable_failure:
   804 00000FD1 556E61626C6520746F-     		asciz "Unable to enable video swapping.",13,10
   804 00000FDA 20656E61626C652076-
   804 00000FE3 6964656F2073776170-
   804 00000FEC 70696E672E0D0A00   
   805 00000FF4 566964656F20737761-     .vv_disabled:	asciz "Video swapping is disabled, use V ON to switch it on.",13,10
   805 00000FFD 7070696E6720697320-
   805 00001006 64697361626C65642C-
   805 0000100F 207573652056204F4E-
   805 00001018 20746F207377697463-
   805 00001021 68206974206F6E2E0D-
   805 0000102A 0A00               
   806                                  %endif
   807 0000102C 5245564552534500        .reverse:	asciz "REVERSE"
   808 00001034 56414C554500            .value:		asciz "VALUE"
   809 0000103A 494E00                  .in:		asciz "IN"
   810 0000103D 4558495354494E4700      .existing:	asciz "EXISTING"
   811 00001046 46524F4D00              .from:		asciz "FROM"
   812 0000104B 544F00                  .to:		asciz "TO"
   813 0000104E 455845435554494E47-     .executing:		asciz "EXECUTING"
   813 00001057 00                 
   814 00001058 46524F4D204C494E45-     .executing_value_range:	asciz "FROM LINEAR cs:cip LENGTH abo - cip"
   814 00001061 41522063733A636970-
   814 0000106A 204C454E4754482061-
   814 00001073 626F202D2063697000 
   815 0000107C 4C494E45415200          .linear:	asciz "LINEAR"
   816                                  %if _IMMASM
   817                                  .immasm_error_eip:
   818 00001083 4572726F722C206272-     		asciz "Error, branch targets EIP beyond 64 KiB.",13,10
   818 0000108C 616E63682074617267-
   818 00001095 657473204549502062-
   818 0000109E 65796F6E6420363420-
   818 000010A7 4B69422E0D0A00     
   819                                  %endif
   820                                  %if _PM
   821 000010AE 444553435459504500      .desctype:	asciz "DESCTYPE"
   822                                  %endif
   823 000010B7 4E4F54                  .nottaken:	db "NOT"
   824 000010BA 54414B454E00            .taken:		asciz "TAKEN"
   825 000010C0 4E                      .nt:		db "N"
   826 000010C1 5400                    .t:		asciz "T"
   827 000010C3 4241534500              .base:		asciz "BASE"
   828 000010C8 47524F555000            .group:		asciz "GROUP"
   829 000010CE 574944544800            .width:		asciz "WIDTH"
   830                                  %if _HISTORY
   831                                  .history_internal_error:
   832 000010D4 0D0A496E7465726E61-     		asciz 13,10,"Internal error in history handling!",13,10
   832 000010DD 6C206572726F722069-
   832 000010E6 6E20686973746F7279-
   832 000010EF 2068616E646C696E67-
   832 000010F8 210D0A00           
   833                                  %endif
   834                                  %if _INT
   835                                  %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 000010FC 07204572726F7221    <1> .di_error:	counted " Error!"
    17 00001104 0768696464656E20    <1> .di_hidden:	counted "hidden "
    18 0000110C 0720284949535029    <1> .di_iisp:	counted " (IISP)"
    19 00001114 1320286E6F6E737461- <1> .di_nonstd_iisp:counted " (nonstandard IISP)"
    19 0000111D 6E6461726420494953- <1>
    19 00001126 5029                <1>
    20 00001128 132028756E696E7374- <1> .di_uninst_iisp:counted " (uninstalled IISP)"
    20 00001131 616C6C656420494953- <1>
    20 0000113A 5029                <1>
    21                              <1> .di_freedos_reloc:
    22 0000113C 1220284644206B6572- <1> 		counted " (FD kernel reloc)"
    22 00001145 6E656C2072656C6F63- <1>
    22 0000114E 29                  <1>
    23 0000114F 0E2028666172206A6D- <1> .di_jmpfar:	counted " (far jmp imm)"
    23 00001158 7020696D6D29        <1>
    24                              <1> .di_jmpfarindirect:
    25 0000115E 132028666172206A6D- <1> 		counted " (far jmp indirect)"
    25 00001167 7020696E6469726563- <1>
    25 00001170 7429                <1>
    26 00001172 0C2028746573742068- <1> .di_testhook:	counted " (test hook)"
    26 0000117B 6F6F6B29            <1>
    27 0000117F 1C2028746F6F206D61- <1> .di_toomany:	counted " (too many chained handlers)"
    27 00001188 6E7920636861696E65- <1>
    27 00001191 642068616E646C6572- <1>
    27 0000119A 7329                <1>
    28 0000119C 0F20656D707479204D- <1> .di_empty:	counted " empty MCB name"
    28 000011A5 4342206E616D65      <1>
    29 000011AC 0B2073797374656D20- <1> .di_system_mcb:	counted " system MCB"
    29 000011B5 4D4342              <1>
    30                              <1> .di_system_upper:
    31 000011B8 0E2073797374656D20- <1> 		counted " system in UMA"
    31 000011C1 696E20554D41        <1>
    32 000011C7 0E2073797374656D20- <1> .di_system_low:	counted " system in LMA"
    32 000011D0 696E204C4D41        <1>
    33 000011D6 112068696768206D65- <1> .di_hma:	counted " high memory area"
    33 000011DF 6D6F72792061726561  <1>
    34 000011E8 06205B6D70783A      <1> .di_multiplex.1:counted " [mpx:"
    35 000011EF 0768206C6973743A    <1> .di_multiplex.2:counted "h list:"
    36 000011F7 02685D              <1> .di_multiplex.3:counted "h]"
    37                              <1> 
    38                              <1> %if _PM
    39                              <1> gatewrong:	equ $
    40 000011FA 67617465206E6F7420- <1> 		asciz "gate not accessible",13,10
    40 00001203 61636365737369626C- <1>
    40 0000120C 650D0A00            <1>
    41                              <1> %endif
   836                                  %endif
   837 00001210 68656164657200          .header:	asciz "header"
   838                                  .header.length:	equ $ - 1 - .header
   839 00001217 747261696C657200        .trailer:	asciz "trailer"
   840                                  .trailer.length:equ $ - 1 - .trailer
   841 0000121F 415400                  .at:		asciz "AT"
   842 00001222 5748494C4500            .while:		asciz "WHILE"
   843 00001228 53494C454E5400          .silent:	asciz "SILENT"
   844 0000122F 534C45455000            .sleep:		asciz "SLEEP"
   845 00001235 5345434F4E445300        .seconds:	asciz "SECONDS"
   846 0000123D 5449434B5300            .ticks:		asciz "TICKS"
   847 00001243 52452070726F636573-     .re_limit_reached:	asciz "RE processing reached RELIMIT, aborting.",13,10
   847 0000124C 73696E672072656163-
   847 00001255 6865642052454C494D-
   847 0000125E 49542C2061626F7274-
   847 00001267 696E672E0D0A00     
   848 0000126E 52432070726F636573-     .rc_limit_reached:	asciz "RC processing reached RCLIMIT, aborting.",13,10
   848 00001277 73696E672072656163-
   848 00001280 6865642052434C494D-
   848 00001289 49542C2061626F7274-
   848 00001292 696E672E0D0A00     
   849 00001299 2120496E7465726E61-     .silent_error:	asciz "! Internal error during silent buffer handling !",13,10
   849 000012A2 6C206572726F722064-
   849 000012AB 7572696E672073696C-
   849 000012B4 656E74206275666665-
   849 000012BD 722068616E646C696E-
   849 000012C6 6720210D0A00       
   850 000012CC 5768696C6520636F6E-     .while_not_true:asciz "While condition not true, returning.",13,10
   850 000012D5 646974696F6E206E6F-
   850 000012DE 7420747275652C2072-
   850 000012E7 657475726E696E672E-
   850 000012F0 0D0A00             
   851 000012F3 5768696C6520636F6E-     .while_terminated_before:	asciz "While condition ",'"'
   851 000012FC 646974696F6E202200 
   852 00001305 22206E6F206C6F6E67-     .while_terminated_after:	asciz '"'," no longer true.",13,10
   852 0000130E 657220747275652E0D-
   852 00001317 0A00               
   853 00001319 4E6F2073657269616C-     .no_progress:	asciz "No serial comm progress after 5 seconds, giving up. (Keyboard enabled.)",13,10
   853 00001322 20636F6D6D2070726F-
   853 0000132B 677265737320616674-
   853 00001334 65722035207365636F-
   853 0000133D 6E64732C2067697669-
   853 00001346 6E672075702E20284B-
   853 0000134F 6579626F6172642065-
   853 00001358 6E61626C65642E290D-
   853 00001361 0A00               
   854 00001363 0D0A6C446562756758-     .serial_request_keep:	asciz 13,10,_PROGNAME," connected to serial port. Enter KEEP to confirm.",13,10
   854 0000136C 20636F6E6E65637465-
   854 00001375 6420746F2073657269-
   854 0000137E 616C20706F72742E20-
   854 00001387 456E746572204B4545-
   854 00001390 5020746F20636F6E66-
   854 00001399 69726D2E0D0A00     
   855 000013A0 4E6F204B454550206B-     .serial_no_keep_timer:	asciz "No KEEP keyword confirmation after timeout, giving up. (Keyboard enabled.)",13,10
   855 000013A9 6579776F726420636F-
   855 000013B2 6E6669726D6174696F-
   855 000013BB 6E2061667465722074-
   855 000013C4 696D656F75742C2067-
   855 000013CD 6976696E672075702E-
   855 000013D6 20284B6579626F6172-
   855 000013DF 6420656E61626C6564-
   855 000013E8 2E290D0A00         
   856 000013ED 4E6F204B454550206B-     .serial_no_keep_enter:	asciz "No KEEP keyword confirmation, enabling keyboard.",13,10
   856 000013F6 6579776F726420636F-
   856 000013FF 6E6669726D6174696F-
   856 00001408 6E2C20656E61626C69-
   856 00001411 6E67206B6579626F61-
   856 0000141A 72642E0D0A00       
   857                                  %if _VXCHG
   858 00001420 4E4F                    .nokeep:	db "NO"
   859                                  %endif
   860 00001422 4B45455000              .keep:		asciz "KEEP"
   861 00001427 4572726F723A20556E-     .cannot_hook_2D.invalid:	asciz "Error: Unable to hook interrupt 2Dh due to invalid handler.",13,10
   861 00001430 61626C6520746F2068-
   861 00001439 6F6F6B20696E746572-
   861 00001442 727570742032446820-
   861 0000144B 64756520746F20696E-
   861 00001454 76616C69642068616E-
   861 0000145D 646C65722E0D0A00   
   862 00001465 4572726F723A20556E-     .cannot_hook_2D.nofree:		asciz "Error: Unable to hook interrupt 2Dh, no free multiplex number.",13,10
   862 0000146E 61626C6520746F2068-
   862 00001477 6F6F6B20696E746572-
   862 00001480 72757074203244682C-
   862 00001489 206E6F206672656520-
   862 00001492 6D756C7469706C6578-
   862 0000149B 206E756D6265722E0D-
   862 000014A4 0A00               
   863 000014A6 5761726E696E673A20      .serial_cannot_unhook:		db "Warning: "
   864 000014AF 556E61626C6520746F-     .serial_cannot_unhook.nowarn:	db "Unable to unhook interrupt "
   864 000014B8 20756E686F6F6B2069-
   864 000014C1 6E7465727275707420 
   865 000014CA 2D2D682E0D0A00          .serial_cannot_unhook.int:	asciz "--h.",13,10
   866 000014D1 4572726F723A20556E-     .serial_cannot_hook:		db "Error: Unable to hook interrupt "
   866 000014DA 61626C6520746F2068-
   866 000014E3 6F6F6B20696E746572-
   866 000014EC 7275707420         
   867 000014F1 2D2D68206265636175-     .serial_cannot_hook.new_int:	db "--h because interrupt "
   867 000014FA 736520696E74657272-
   867 00001503 75707420           
   868 00001507 2D2D68207374696C6C-     .serial_cannot_hook.old_int:	asciz "--h still hooked.",13,10
   868 00001510 20686F6F6B65642E0D-
   868 00001519 0A00               
   869 0000151B 537563636565646564-     .serial_late_unhook:		db "Succeeded in unhooking interrupt "
   869 00001524 20696E20756E686F6F-
   869 0000152D 6B696E6720696E7465-
   869 00001536 727275707420       
   870 0000153C 2D2D682E0D0A00          .serial_late_unhook.int:	asciz "--h.",13,10
   871 00001543 496E7465726E616C20-     .line_out_overflow:	asciz "Internal error, line_out buffer overflowed!",13,10
   871 0000154C 6572726F722C206C69-
   871 00001555 6E655F6F7574206275-
   871 0000155E 66666572206F766572-
   871 00001567 666C6F776564210D0A-
   871 00001570 00                 
   872                                  %if _REGSHIGHLIGHT || _GETLINEHIGHLIGHT || _DHIGHLIGHT
   873 00001571 041B5B376D              .highlight:	counted 27,"[7m"
   874                                   %if _GETLINEHIGHLIGHT || _DHIGHLIGHT
   875 00001576 00                      		db 0
   876                                   %endif
   877 00001577 031B5B6D                .unhighlight:	counted 27,"[m"
   878                                   %if _GETLINEHIGHLIGHT || _DHIGHLIGHT
   879 0000157B 00                      		db 0
   880                                   %endif
   881                                  %endif
   882 0000157C 206B4D475400            .prefixes:	asciz " kMGT"
   883 00001582 50726F63657373206C-     .ll_unterm:	ascizline "Process loading aborted: Attached process didn't terminate!"
   883 0000158B 6F6164696E67206162-
   883 00001594 6F727465643A204174-
   883 0000159D 746163686564207072-
   883 000015A6 6F6365737320646964-
   883 000015AF 6E2774207465726D69-
   883 000015B8 6E617465210D0A00   
   884 000015C0 43616E6E6F74207175-     .qq_unterm:	ascizline "Cannot quit, attached process didn't terminate!"
   884 000015C9 69742C206174746163-
   884 000015D2 6865642070726F6365-
   884 000015DB 7373206469646E2774-
   884 000015E4 207465726D696E6174-
   884 000015ED 65210D0A00         
   885                                  %if _PM
   886 000015F2 43616E6E6F74207175-     .qq_still_pm:	ascizline "Cannot quit, still in PM after attached process terminated!"
   886 000015FB 69742C207374696C6C-
   886 00001604 20696E20504D206166-
   886 0000160D 746572206174746163-
   886 00001616 6865642070726F6365-
   886 0000161F 7373207465726D696E-
   886 00001628 61746564210D0A00   
   887                                  %endif
   888 00001630 417474616368656420-     .qq_a_unterminated:	ascizline "Attached process didn't terminate."
   888 00001639 70726F636573732064-
   888 00001642 69646E277420746572-
   888 0000164B 6D696E6174652E0D0A-
   888 00001654 00                 
   889 00001655 417474616368656420-     .qq_a_terminated:	ascizline "Attached process did terminate."
   889 0000165E 70726F636573732064-
   889 00001667 6964207465726D696E-
   889 00001670 6174652E0D0A00     
   890 00001677 43616E6E6F74206372-     .ensure_no_memory:	ascizline "Cannot create empty attached process, out of memory!"
   890 00001680 6561746520656D7074-
   890 00001689 792061747461636865-
   890 00001692 642070726F63657373-
   890 0000169B 2C206F7574206F6620-
   890 000016A4 6D656D6F7279210D0A-
   890 000016AD 00                 
   891                                  %if _DEVICE
   892                                  .qq_device_none_selected:
   893 000016AE 43616E6E6F74207175-      ascizline "Cannot quit normally when loaded as device driver! Try QC or QD command."
   893 000016B7 6974206E6F726D616C-
   893 000016C0 6C79207768656E206C-
   893 000016C9 6F6164656420617320-
   893 000016D2 646576696365206472-
   893 000016DB 697665722120547279-
   893 000016E4 205143206F72205144-
   893 000016ED 20636F6D6D616E642E-
   893 000016F6 0D0A00             
   894                                  .qq_device_no_d:
   895 000016F9 43616E6E6F74207175-      ascizline "Cannot quit to device driver initialisation, state modified!"
   895 00001702 697420746F20646576-
   895 0000170B 696365206472697665-
   895 00001714 7220696E697469616C-
   895 0000171D 69736174696F6E2C20-
   895 00001726 7374617465206D6F64-
   895 0000172F 6966696564210D0A00 
   896                                  .qq_device_no_c:
   897 00001738 43616E6E6F74207175-      ascizline "Cannot quit from device driver container, not found!"
   897 00001741 69742066726F6D2064-
   897 0000174A 657669636520647269-
   897 00001753 76657220636F6E7461-
   897 0000175C 696E65722C206E6F74-
   897 00001765 20666F756E64210D0A-
   897 0000176E 00                 
   898                                   %if _PM
   899 0000176F 43616E6E6F74207175-     .qq_device_pm:		ascizline "Cannot quit device driver in PM!"
   899 00001778 697420646576696365-
   899 00001781 206472697665722069-
   899 0000178A 6E20504D210D0A00   
   900                                   %endif
   901                                  	align 2, db 0
   902 00001792 4E554C20<rep 5h>        .NULblank:		fill 8, 32, db "NUL"
   903                                  %endif
   904 0000179A 4330                    .c0:	db "C0"
   905 0000179C 0D                      .cr:	db 13
   906                                  
   907 0000179D 41424F525400            .abort:			asciz "ABORT"
   908                                  %if _EXTENSIONS || _INPUT_FILE_HANDLES || _INPUT_FILE_BOOT
   909 000017A3 45584953545300          .exists:		asciz "EXISTS"
   910 000017AA 5900                    .y:			asciz "Y"
   911 000017AC 20636F6D6D616E6420-     .yy_requires_filename:	asciz " command requires a filename.",13,10
   911 000017B5 726571756972657320-
   911 000017BE 612066696C656E616D-
   911 000017C7 652E0D0A00         
   912 000017CC 20636F6D6D616E6420-     .yy_filename_empty:	asciz " command filename is empty.",13,10
   912 000017D5 66696C656E616D6520-
   912 000017DE 697320656D7074792E-
   912 000017E7 0D0A00             
   913 000017EA 20636F6D6D616E6420-     .yy_too_many_handles:	asciz " command has too many open files.",13,10
   913 000017F3 68617320746F6F206D-
   913 000017FC 616E79206F70656E20-
   913 00001805 66696C65732E0D0A00 
   914 0000180E 20636F6D6D616E6420-     .yy_error_file_open:	asciz " command failed to open file.",13,10
   914 00001817 6661696C656420746F-
   914 00001820 206F70656E2066696C-
   914 00001829 652E0D0A00         
   915 0000182E 20636F6D6D616E6420-     .yy_no_file:		asciz " command limited to label only valid in script file.",13,10
   915 00001837 6C696D697465642074-
   915 00001840 6F206C6162656C206F-
   915 00001849 6E6C792076616C6964-
   915 00001852 20696E207363726970-
   915 0000185B 742066696C652E0D0A-
   915 00001864 00                 
   916                                  %endif
   917                                  %if _INPUT_FILE_HANDLES || _EXTENSIONS
   918 00001865 20636F6D6D616E6420-     .yy_no_dos:		asciz " command requires DOS to be available.",13,10
   918 0000186E 726571756972657320-
   918 00001877 444F5320746F206265-
   918 00001880 20617661696C61626C-
   918 00001889 652E0D0A00         
   919                                  .yy_filename_missing_unquote:
   920 0000188E 20636F6D6D616E6420-     			asciz " command filename missing ending quote.",13,10
   920 00001897 66696C656E616D6520-
   920 000018A0 6D697373696E672065-
   920 000018A9 6E64696E672071756F-
   920 000018B2 74652E0D0A00       
   921                                  %endif
   922                                  %if _INPUT_FILE_BOOT || _EXTENSIONS
   923 000018B8 20636F6D6D616E6420-     .yy_too_large:		asciz " command file too large.",13,10
   923 000018C1 66696C6520746F6F20-
   923 000018CA 6C617267652E0D0A00 
   924 000018D3 20636F6D6D616E6420-     .yy_empty:		asciz " command file empty.",13,10
   924 000018DC 66696C6520656D7074-
   924 000018E5 792E0D0A00         
   925                                  %endif
   926                                  
   927                                  %if _SYMBOLIC
   928                                  .zz_switch_s_received:	asciz "Allocating symbol table buffer of "
   929                                  .zz_switch_s_received_xms:
   930                                  			asciz "Allocating XMS symbol table buffer (including transfer buffer) of "
   931                                  .zz_switch_s_freeing:	asciz "Freeing symbol table buffer.",13,10
   932                                  .zz_switch_s_indos:	db "Can't change symbol table buffer allocation"
   933                                  			asciz " while in DOS!",13,10
   934                                  %if _BOOTLDR
   935                                  .zz_switch_s_internal_error:
   936                                  	asciz "Internal error in Z /S switch handling!",13,10
   937                                  .zz_switch_s_boot_memsize_differ:
   938                                  	asciz "Cannot change symbol table buffer allocation, memory size changed!",13,10
   939                                  .zz_switch_s_boot_transfer_too_low:
   940                                  	asciz "Cannot enlarge symbol table buffer that much, transfer buffer too low!",13,10
   941                                  .zz_switch_s_boot_loaded_kernel:
   942                                  	asciz "Cannot change symbol table buffer allocation, kernel has been loaded!",13,10
   943                                  .zz_switch_s_boot_rpl:
   944                                  	asciz "Cannot change symbol table buffer allocation, RPL has been loaded!",13,10
   945                                  %endif
   946                                  .zz_s_cannot_alloc_transfer:	asciz "Cannot allocate transfer buffer!",13,10
   947                                  .zz_s_cannot_alloc_target:	asciz "Cannot allocate target buffer!",13,10
   948                                  .zz_too_full:	asciz "Symbol tables are too full for this reallocation.",13,10
   949                                  .zz_xms_not_freed_1:	asciz "Unable to free symbol table XMS handle = "
   950                                  .zz_xms_not_freed_2:	asciz "h.",13,10
   951                                  .invaliddata:		asciz "Invalid symbol table data!",13,10
   952                                   %if _SECOND_SLICE && (_XMS_SYMBOL_TABLE || _BUFFER_86MM_SLICE)
   953                                  .error_second_slice:	asciz "Invalid symbol table access slice usage!",13,10
   954                                   %endif
   955                                  .main_too_full:		asciz "Symbol main array is too full!",13,10
   956                                  .main_too_full_crit1:	asciz "Symbol main array is too full! Critical error. (Earlier check succeeded.)",13,10
   957                                  .hash_too_full_crit1:	asciz "Symbol hash array is too full! Critical error. (Earlier check succeeded.)",13,10
   958                                  .hash_too_full_crit2:	asciz "Symbol hash array is too full! Critical error. (Main has space.)",13,10
   959                                  .str_too_full:		asciz "Symbol string heap is too full!",13,10
   960                                  .str_too_long:		asciz "Symbol string is too long!",13,10
   961                                  .liststore.main.end.first:	asciz 13,10,"Main total:",9
   962                                  .liststore.main.free.first:	asciz "Main free:",9
   963                                  .liststore.main.used.first:	asciz "Main used:",9
   964                                  .liststore.hash.end.first:	asciz 13,10,"Hash total:",9
   965                                  .liststore.hash.free.first:	asciz "Hash free:",9
   966                                  .liststore.hash.used.first:	asciz "Hash used:",9
   967                                  .liststore.str.end.first:	asciz 13,10,"String total:",9
   968                                  .liststore.str.free.first:	asciz "String free:",9
   969                                  .liststore.str.used.first:	asciz "String used:",9
   970                                  .liststore.second:		asciz " in "
   971                                  .liststore.third.singular:	asciz " unit",13,10
   972                                  .liststore.third.plural:	asciz " units",13,10
   973                                  .liststore.str.first:	asciz "Strings size is "
   974                                  .liststore.str.unref.first:	asciz "Unreferenced strings size is "
   975                                  .liststore.str.unref.second:
   976                                  .liststore.str.second:	asciz " in "
   977                                  .liststore.str.unref.third.singular:
   978                                  .liststore.str.third.singular:	asciz " string.",13,10
   979                                  .liststore.str.unref.third.plural:
   980                                  .liststore.str.third.plural:	asciz " strings.",13,10
   981                                  .liststore.str.fourth:	asciz "Average string structure length is <= "
   982                                  .liststore.str.invalid:	asciz "Error: Average string structure length too large"
   983                                  .liststore.str.nofourth:asciz "Cannot calculate average string structure length, number of strings is zero"
   984                                  .liststore.str.last:	asciz ".",13,10
   985                                  .symhint:
   986                                  .symhint_store_string:	db "..@symhint_"
   987                                  .symhint_size:		equ $ - .symhint
   988                                  			db "store_string_"
   989                                  .symhint_store_string_size equ $ - .symhint_store_string
   990                                  .trace_caller:		db "trace_caller"
   991                                  .trace_caller_size: equ $ - .trace_caller
   992                                  .trace_here:		db "trace_here"
   993                                  .trace_here_size: equ $ - .trace_here
   994                                  .skip_caller:		db "skip_caller_"
   995                                  .skip_caller_size: equ $ - .skip_caller
   996                                  .skip_here:		db "skip_here_"
   997                                  .skip_here_size: equ $ - .skip_here
   998                                  .asciz:			asciz "ASCIZ"
   999                                  .zz_list_range_first:	asciz "Range: "
  1000                                  .zz_list_range_second:	asciz "h--"
  1001                                  .zz_list_range_third:	asciz "h"
  1002                                  .zz_list_add_none:	db ""
  1003                                  .zz_list_none:		asciz " No symbols found",13,10
  1004                                  .zz_list_start:		asciz 13,10
  1005                                  .zz_list_between:	asciz
  1006                                  .zz_list_first:		asciz " Linear="
  1007                                  .zz_list_second:	asciz " Offset="
  1008                                  .zz_list_middle:	asciz "h = ",'"'
  1009                                  .zz_list_last:		asciz '"',13,10
  1010                                  .zz_list_end:		asciz
  1011                                  .zz_list_add_range:	asciz "; "
  1012                                  .zz_list_add_first:	asciz "z add linear=("
  1013                                  .zz_list_base:		asciz " + v1"
  1014                                  .zz_list_base_symbol:	asciz " + sl."
  1015                                  .zz_list_add_second:	asciz ") offset="
  1016                                  .zz_list_add_middle:	asciz " symbol='"
  1017                                  .zz_list_add_last:	asciz "'",13,10
  1018                                  .zz_match_add_none:	db ";"
  1019                                  .zz_match_none:		asciz " No symbols found",13,10
  1020                                  .existing_block:	asciz "Symbol already exists and is being blocked.",13,10
  1021                                  .poison_block:		asciz "Symbol definition is poisoned and is being blocked.",13,10
  1022                                  .stat:			asciz "STAT"
  1023                                  .match:			asciz "MATCH"
  1024                                  .add:			asciz "ADD"
  1025                                  .commit:		asciz "COMMIT"
  1026                                  .del:			asciz "DEL"
  1027                                  .delete:		asciz "DELETE"
  1028                                  .unrefstring:		asciz "UNREFSTRING"
  1029                                  .reloc:			asciz "RELOC"
  1030                                  .relocate:		asciz "RELOCATE"
  1031                                  .symbol:		asciz "SYMBOL"
  1032                                  .flags:			asciz "FLAGS"
  1033                                  .sl:			asciz "SL"
  1034                                  .max:			asciz "MAX"
  1035                                  %if _XMS_SYMBOL_TABLE
  1036                                  .zz_no_xms:		asciz "No XMS driver detected!",13,10
  1037                                  .zz_fail_xms_alloc:	asciz "Failed to allocate XMS block!",13,10
  1038                                  .zz_fail_xms_access:	asciz "Failed to access XMS block!",13,10
  1039                                  %endif
  1040                                  .zz_main_hash_mismatch:	asciz "Compaction/expansion failed, differing amounts of hash and main entries.",13,10
  1041                                  .zz_main_not_first:	asciz "Compaction/expansion failed, main array is not first.",13,10
  1042                                  .zz_hash_not_second:	asciz "Compaction/expansion failed, hash array is not second.",13,10
  1043                                  .zz_str_not_third:	asciz "Compaction/expansion failed, string heap is not third.",13,10
  1044                                  .zz_table_not_full:	asciz "Compaction/expansion failed, table is not full.",13,10
  1045                                  .zz_too_much:		asciz "Symbol table size is too large. Internal error!",13,10
  1046                                  .zz_too_short:		asciz "Symbol table size is too short. Internal error!",13,10
  1047                                  .zz_str_overflow:	asciz "String symbol table got too large. Internal error!",13,10
  1048                                  .zz_length_mismatch:	asciz "Symbol table table size mismatch. Internal error!",13,10
  1049                                  .zz_too_small_str:	asciz "String symbol table target is too small.",13,10
  1050                                  .zz_too_small_hash:
  1051                                  .zz_too_small_mainhash:	asciz "Main/hash symbol table target is too small.",13,10
  1052                                  .zz_internal_error_expand:
  1053                                  			asciz "Internal error during symbol table expansion!",13,10
  1054                                  .zz_reloc_amount_none:	asciz "No symbols found in given source range.",13,10
  1055                                  .zz_del_amount_none:	asciz "Symbol not found!",13,10
  1056                                  .zz_reloc_amount_1:		asciz "Relocated "
  1057                                  .zz_del_amount_1:		asciz "Deleted "
  1058                                  .zz_reloc_amount_2.plural:
  1059                                  .zz_del_amount_2.plural:	asciz " symbols.",13,10
  1060                                  .zz_reloc_amount_2.singular:
  1061                                  .zz_del_amount_2.singular:	asciz " symbol.",13,10
  1062                                  .zz_reloc_overflow:	asciz "Cannot relocate, length of source range overflows!",13,10
  1063                                  .bb_sym_too_many:	asciz "Too many symbol breakpoints!",13,10
  1064                                  .bb_sym_beyond_linear:	asciz "Symbol breakpoint linear is beyond reach!",13,10
  1065                                  .bb_sym_beyond_offset:	asciz "Symbol breakpoint offset is beyond reach!",13,10
  1066                                  %endif
  1067                                  
  1068                                  %if _BREAKPOINTS
  1069 000018EA 414C4C00                .all:		asciz "ALL"
  1070 000018EE 4E455700                .new:		asciz "NEW"
  1071 000018F2 4E6F20756E75736564-     .bb_no_new:	asciz "No unused breakpoint left!",13,10
  1071 000018FB 20627265616B706F69-
  1071 00001904 6E74206C656674210D-
  1071 0000190D 0A00               
  1072 0000190F 19486974207065726D-     .bb_hit.1:	counted "Hit permanent breakpoint "
  1072 00001918 616E656E7420627265-
  1072 00001921 616B706F696E7420   
  1073                                  .bb_hit.2.nocounter:
  1074 00001929 020D0A                  		counted 13,10
  1075                                  %if _SYMBOLIC
  1076                                  .bb_sym_hit.1:	counted "Hit symbol breakpoint "
  1077                                  .bb_sym_hit.2.nocounter:
  1078                                  		counted 13,10
  1079                                  %endif
  1080 0000192C 1C5061737365642070-     .bb_pass.1:	counted "Passed permanent breakpoint "
  1080 00001935 65726D616E656E7420-
  1080 0000193E 627265616B706F696E-
  1080 00001947 7420               
  1081                                  .bb_hit.2.counter:
  1082 00001949 0A2C20636F756E7465-     .bb_pass.2:	counted ", counter="
  1082 00001952 723D               
  1083                                  .bb_hit.3.counter.no_id:
  1084                                  .bb_pass.3.no_id:
  1085                                  .bb_hitpass_id.after:
  1086 00001954 020D0A                  		counted 13,10
  1087                                  .bb_hitpass_id.long:
  1088 00001957 070D0A2049443A20        		counted 13,10," ID: "
  1089                                  .bb_hitpass_id.short:
  1090 0000195F 062C2049443A20          		counted ", ID: "
  1091 00001966 205748454E2000          .bb_when:	asciz " WHEN "
  1092                                  
  1093 0000196D 42502000                .bp:		asciz "BP "
  1094 00001971 202B00                  .bpenabled:	asciz " +"
  1095 00001974 202D00                  .bpdisabled:	asciz " -"
  1096 00001977 20556E7573656400        .bpunused:	asciz " Unused"
  1097 0000197F 204C696E3D00            .bpaddress:	asciz " Lin="
  1098 00001985 202800                  .bpcontent:	asciz " ("
  1099 00001988 2920436F756E746572-     .bpcounter:	asciz ") Counter="
  1099 00001991 3D00               
  1100                                  %if 0
  1101                                  BP 00 Unused
  1102                                  BP 00 + Lin=12345678 (CC) Counter=8000
  1103                                  1234567890123456789012345678901234567890
  1104                                  %endif
  1105 00001993 4E6F20627265616B70-     .bpnone:	asciz "No breakpoints set currently.",13,10
  1105 0000199C 6F696E747320736574-
  1105 000019A5 2063757272656E746C-
  1105 000019AE 792E0D0A00         
  1106 000019B3 4E6F20627265616B70-     .bpnone_at:	asciz "No breakpoint set at given address currently.",13,10
  1106 000019BC 6F696E742073657420-
  1106 000019C5 617420676976656E20-
  1106 000019CE 616464726573732063-
  1106 000019D7 757272656E746C792E-
  1106 000019E0 0D0A00             
  1107                                  %endif
  1108 000019E3 5468652000              .cant_bp_the:			asciz "The "
  1109 000019E8 70726F636565642062-     .cant_bp_type_proceed:		asciz "proceed breakpoint"
  1109 000019F1 7265616B706F696E74-
  1109 000019FA 00                 
  1110 000019FB 7065726D616E656E74-     .cant_bp_type_permanent:	db    "permanent breakpoint "
  1110 00001A04 20627265616B706F69-
  1110 00001A0D 6E7420             
  1111 00001A10 5F5F00                  .cant_bp_type_permanent.index:	asciz "__"
  1112                                  %if _SYMBOLIC
  1113                                  .cant_bp_type_symbol:		db    "symbol breakpoint "
  1114                                  .cant_bp_type_symbol.index:	asciz "__"
  1115                                  %endif
  1116 00001A13 204720627265616B70-     .cant_bp_type_gg:		asciz " G breakpoint"
  1116 00001A1C 6F696E7400         
  1117 00001A21 20286C696E65617220      .cant_bp_linear:		db    " (linear "
  1118 00001A2A 2D2D2D2D5F              .cant_bp_linear.address1:	db    "----_"
  1119 00001A2F 2D2D2D2D292000          .cant_bp_linear.address2:	asciz "----) "
  1120 00001A36 63616E6E6F74206265-     .cant_bp_write:			asciz "cannot be written."
  1120 00001A3F 207772697474656E2E-
  1120 00001A48 00                 
  1121 00001A49 63616E6E6F74206265-     .cant_bp_restore:		db    "cannot be restored to "
  1121 00001A52 20726573746F726564-
  1121 00001A5B 20746F20           
  1122 00001A5F 5F5F2E00                .cant_bp_restore.value:		asciz "__."
  1123                                  %if 0
  1124                                  The 15th G breakpoint (linear 0010_FFFF) cannot be written.
  1125                                  The proceed breakpoint (linear 0010_FFFF) cannot be written.
  1126                                  The permanent breakpoint 0F (linear 0010_FFFF) cannot be written.
  1127                                  The permanent breakpoint 0F (linear 0010_FFFF) cannot be restored to __.
  1128                                  12345678901234567890123456789012345678901234567890123456789012345678901234567890
  1129                                  %endif
  1130 00001A63 0D0A20526561736F6E-     .cant_bp_reason:		asciz 13,10," Reason: "
  1130 00001A6C 3A2000             
  1131 00001A6F 4E6F206572726F722E-     .cant_bp_reason0:		asciz "No error. (Internal error, report!)",13,10
  1131 00001A78 2028496E7465726E61-
  1131 00001A81 6C206572726F722C20-
  1131 00001A8A 7265706F727421290D-
  1131 00001A93 0A00               
  1132 00001A95 497420697320726561-     .cant_bp_reason1:		asciz "It is read-only.",13,10
  1132 00001A9E 642D6F6E6C792E0D0A-
  1132 00001AA7 00                 
  1133 00001AA8 497420697320756E72-     .cant_bp_reason2:		asciz "It is unreachable.",13,10
  1133 00001AB1 6561636861626C652E-
  1133 00001ABA 0D0A00             
  1134 00001ABD 497420686173206265-     .cant_bp_reason3:		db    "It has been overwritten with "
  1134 00001AC6 656E206F7665727772-
  1134 00001ACF 697474656E20776974-
  1134 00001AD8 6820               
  1135 00001ADA 5F5F2E0D0A00            .cant_bp_reason3.value:		asciz "__.",13,10
  1136 00001AE0 556E6B6E6F776E2065-     .cant_bp_reasonu:		asciz "Unknown error. (Internal error, report!)",13,10
  1136 00001AE9 72726F722E2028496E-
  1136 00001AF2 7465726E616C206572-
  1136 00001AFB 726F722C207265706F-
  1136 00001B04 727421290D0A00     
  1137                                  
  1138 00001B0B 20202000                .list_bp.first:	asciz "   "
  1139 00001B0F 204720627265616B70-     .list_bp.second:db " G breakpoint, linear "
  1139 00001B18 6F696E742C206C696E-
  1139 00001B21 65617220           
  1140                                  .list_bp.address1:
  1141 00001B25 2D2D2D2D5F              		db "----_"
  1142                                  .list_bp.address2:
  1143 00001B2A 2D2D2D2D00              		asciz "----"
  1144 00001B2F 2C20636F6E74656E74-     .list_bp.third:	db ", content "
  1144 00001B38 20                 
  1145                                  .list_bp.value:
  1146 00001B39 5F5F00                  		asciz "__"
  1147                                  .list_bp_not_cseip: equ crlf
  1148                                  %if _PM
  1149                                  .list_bp_cseip_32:
  1150 00001B3C 202869732061742043-     		asciz " (is at CS:EIP)",13,10
  1150 00001B45 533A454950290D0A00 
  1151                                  %endif
  1152                                  .list_bp_csip_16:
  1153 00001B4E 202869732061742043-     		asciz " (is at CS:IP)",13,10
  1153 00001B57 533A4950290D0A00   
  1154                                  .list_bp_none:
  1155 00001B5F 546865204720627265-     		asciz "The G breakpoint list is empty.",13,10
  1155 00001B68 616B706F696E74206C-
  1155 00001B71 69737420697320656D-
  1155 00001B7A 7074792E0D0A00     
  1156                                  %if 0
  1157                                     2nd G breakpoint, linear 0003_28D3 $3600:12345678, content CC (is at CS:EIP)
  1158                                  12345678901234567890123456789012345678901234567890123456789012345678901234567890
  1159                                  %endif
  1160 00001B81 00                      .empty_message:	asciz
  1161 00001B82 4C49535400              .list:		asciz "LIST"
  1162 00001B87 414741494E00            .again:		asciz "AGAIN"
  1163                                  %if _SYMBOLIC
  1164                                  .wrt:		asciz "WRT"
  1165                                  %endif
  1166 00001B8D 52656163686564206C-     .uu_too_many_repeat:	asciz "Reached limit of repeating disassembly.",13,10
  1166 00001B96 696D6974206F662072-
  1166 00001B9F 6570656174696E6720-
  1166 00001BA8 646973617373656D62-
  1166 00001BB1 6C792E0D0A00       
  1167 00001BB7 496E7465726E616C20-     .uu_internal_error:	asciz "Internal error in disassembler!",13,10
  1167 00001BC0 6572726F7220696E20-
  1167 00001BC9 646973617373656D62-
  1167 00001BD2 6C6572210D0A00     
  1168 00001BD9 496E7465726E616C20-     .aa_internal_error:	asciz "Internal error in assembler!",13,10
  1168 00001BE2 6572726F7220696E20-
  1168 00001BEB 617373656D626C6572-
  1168 00001BF4 210D0A00           
  1169 00001BF8 537461636B206F7665-     .stack_overflow:	db "Stack overflow occurred, IP="
  1169 00001C01 72666C6F77206F6363-
  1169 00001C0A 75727265642C204950-
  1169 00001C13 3D                 
  1170 00001C14 5F5F5F5F682C206475-     .stack_overflow.caller:	asciz "____h, due to "
  1170 00001C1D 6520746F2000       
  1171 00001C23 65787072657373696F-     .stack_overflow.indirection:	asciz "expression indirection.",13,10
  1171 00001C2C 6E20696E6469726563-
  1171 00001C35 74696F6E2E0D0A00   
  1172 00001C3D 65787072657373696F-     .stack_overflow.parens:		asciz "expression parentheses.",13,10
  1172 00001C46 6E20706172656E7468-
  1172 00001C4F 657365732E0D0A00   
  1173 00001C57 65787072657373696F-     .stack_overflow.precedence:	asciz "expression precedence.",13,10
  1173 00001C60 6E2070726563656465-
  1173 00001C69 6E63652E0D0A00     
  1174 00001C70 65787072657373696F-     .stack_overflow.value_in:	asciz "expression VALUE x IN y.",13,10
  1174 00001C79 6E2056414C55452078-
  1174 00001C82 20494E20792E0D0A00 
  1175 00001C8B 65787072657373696F-     .stack_overflow.linear:		asciz "expression LINEAR.",13,10
  1175 00001C94 6E204C494E4541522E-
  1175 00001C9D 0D0A00             
  1176                                  %if _PM
  1177 00001CA0 65787072657373696F-     .stack_overflow.desctype:	asciz "expression DESCTYPE.",13,10
  1177 00001CA9 6E2044455343545950-
  1177 00001CB2 452E0D0A00         
  1178                                  %endif
  1179 00001CB7 65787072657373696F-     .stack_overflow.cond:		asciz "expression conditional ?? x :: y.",13,10
  1179 00001CC0 6E20636F6E64697469-
  1179 00001CC9 6F6E616C203F3F2078-
  1179 00001CD2 203A3A20792E0D0A00 
  1180                                  %if _SYMBOLIC
  1181                                  .dd_after_symbol.non_wrt:
  1182                                  .uu_after_symbol.non_wrt:		 db ":"
  1183                                  .dd_after_symbol.2_wrt:
  1184                                  .memref_after_symbol.non_wrt:
  1185                                  .uu_after_symbol.wrt:
  1186                                  .memref_after_symbol.wrt:		asciz 13,10
  1187                                  .dd_after_symbol.1_wrt:
  1188                                  .uu_after_symbol_between_1.wrt:
  1189                                  .uu_between_symbol.wrt:			 db ":"
  1190                                  .memref_between_symbol.wrt:		asciz " wrt "
  1191                                  .uu_after_symbol_between_1.non_wrt:	 db ":"
  1192                                  .uu_after_symbol_between_2.wrt:		asciz " + "
  1193                                  .uu_after_symbol_between_3:		asciz 13,10
  1194                                  %endif
  1195                                  %if _MEMREF_AMOUNT
  1196                                   %if _DEBUG2 || _SYMBOLIC
  1197                                  .memrefs_branchdirect:	asciz 9, "direct branch target = "
  1198                                  .memrefs_stringsource:	asciz 9, "string source        = "
  1199                                  .memrefs_stringdest:	asciz 9, "string destination   = "
  1200                                  .memrefs_memsource:	asciz 9, "memory source        = "
  1201                                  .memrefs_memdest:	asciz 9, "memory destination   = "
  1202                                  .memrefs_memsourcedest:	asciz 9, "memory source/dest   = "
  1203                                  .memrefs_mem_unknown:	asciz 9, "memory (unknown)     = "
  1204                                  .memrefs_unknown:	asciz 9, "unknown mem ref type = "
  1205                                  .memrefs_length:	counted " length="
  1206                                   %endif
  1207                                  .memrefs_invalid_internal:
  1208 00001CDB 496E7465726E616C20-     		asciz "Internal error, invalid use of too many memrefs!",13,10
  1208 00001CE4 6572726F722C20696E-
  1208 00001CED 76616C696420757365-
  1208 00001CF6 206F6620746F6F206D-
  1208 00001CFF 616E79206D656D7265-
  1208 00001D08 6673210D0A00       
  1209                                  %endif
  1210                                  
  1211                                  %if 0
  1212                                  	align 2, db 0
  1213                                  .optiontable:	dw dispregs32, .r32off, .r32on
  1214                                  		dw traceints, .traceoff, .traceon
  1215                                  		dw cpdepchars, .cpoff, .cpon
  1216                                  		dw fakeindos, .dosoff, .doson
  1217                                  		dw nonpagingdevice, .nonpageoff, .nonpageon
  1218                                  		dw pagingdevice, .pageoff, .pageon
  1219                                  		dw hexrn, .readrnoff, .readrnon
  1220                                  		dw 0
  1221                                  
  1222                                  .r32off:	asciz "Dump 16-bit register set"
  1223                                  .r32on:		asciz "Dump 32-bit register set"
  1224                                  .traceoff:	asciz "Interrupts are traced"
  1225                                  .traceon:	asciz "Interrupts are processed"
  1226                                  .cpoff:		asciz "Extended ASCII characters replaced"
  1227                                  .cpon:		asciz "Extended ASCII characters displayed"
  1228                                  .dosoff:	asciz "InDOS is checked"
  1229                                  .doson:		asciz "InDOS assumed on"
  1230                                  		;asciz "InDOS assumed off"
  1231                                  .nonpageoff:	asciz
  1232                                  .nonpageon:	asciz "Paging disabled"
  1233                                  .pageoff:	asciz
  1234                                  .pageon:	asciz "Paging enabled"
  1235                                  .readrnoff:	asciz "Readable RN enabled"
  1236                                  .readrnon:	asciz "Readable RN disabled"
  1237                                  %endif
  1238                                  
  1239 00001D0E 5761726E696E673A20-     .warnprefix:	asciz "Warning: Prefixes in excess of 14, using trace flag.",13,10
  1239 00001D17 507265666978657320-
  1239 00001D20 696E20657863657373-
  1239 00001D29 206F662031342C2075-
  1239 00001D32 73696E672074726163-
  1239 00001D3B 6520666C61672E0D0A-
  1239 00001D44 00                 
  1240                                  
  1241                                  %if _DEBUG || _LOADER
  1242                                  .bu:		asciz "Breaking to next instance.",13,10
  1243                                   %if _DEBUG_COND
  1244                                  .bu_disabled:	db "Debuggable mode is disabled.",13,10
  1245                                  		asciz "Enable with this command: r DCO6 or= ",_4digitshex(opt6_debug_mode),13,10
  1246                                   %endif
  1247                                  %else
  1248 00001D45 416C72656164792069-     .notbu:		asciz "Already in topmost instance. (This is no debugging build of lDebug.)",13,10
  1248 00001D4E 6E20746F706D6F7374-
  1248 00001D57 20696E7374616E6365-
  1248 00001D60 2E2028546869732069-
  1248 00001D69 73206E6F2064656275-
  1248 00001D72 6767696E6720627569-
  1248 00001D7B 6C64206F66206C4465-
  1248 00001D84 6275672E290D0A00   
  1249                                  %endif
  1250                                  %if _DUALCODE
  1251 00001D8C 496E7465722D736567-     .bu_relocated:	db "Inter-segment calls work. Sign="
  1251 00001D95 6D656E742063616C6C-
  1251 00001D9E 7320776F726B2E2053-
  1251 00001DA7 69676E3D           
  1252                                  .bu_relocated.sign:
  1253 00001DAB 2D2D2D2D682E0D0A00      		asciz "----h.",13,10
  1254                                  %endif
  1255                                  %if _DT
  1256 00001DB4 4E                      .tableheader:	db .tableheader.end - .tableheader.start
  1257                                  .tableheader.start:
  1258                                   %assign ITERATION 0
  1259                                   %rep 8
  1260                                    %if ITERATION == 0
  1261                                    %elif ITERATION == 1 || ITERATION == 2
  1262                                  		times 4 db 32
  1263                                    %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1264                                  		times 2 db 32
  1265                                    %else
  1266                                  		times 3 db 32
  1267                                    %endif
  1268                                  		db "Dec Hex"
  1269                                    %assign ITERATION ITERATION + 1
  1270                                   %endrep
  1260                              <1>  %if ITERATION == 0
  1261                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1262                              <1>  times 4 db 32
  1263                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1264                              <1>  times 2 db 32
  1265                              <1>  %else
  1266                              <1>  times 3 db 32
  1267                              <1>  %endif
  1268 00001DB5 44656320486578      <1>  db "Dec Hex"
  1269                              <1>  %assign ITERATION ITERATION + 1
  1260                              <1>  %if ITERATION == 0
  1261                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1262 00001DBC 20<rep 4h>          <1>  times 4 db 32
  1263                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1264                              <1>  times 2 db 32
  1265                              <1>  %else
  1266                              <1>  times 3 db 32
  1267                              <1>  %endif
  1268 00001DC0 44656320486578      <1>  db "Dec Hex"
  1269                              <1>  %assign ITERATION ITERATION + 1
  1260                              <1>  %if ITERATION == 0
  1261                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1262 00001DC7 20<rep 4h>          <1>  times 4 db 32
  1263                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1264                              <1>  times 2 db 32
  1265                              <1>  %else
  1266                              <1>  times 3 db 32
  1267                              <1>  %endif
  1268 00001DCB 44656320486578      <1>  db "Dec Hex"
  1269                              <1>  %assign ITERATION ITERATION + 1
  1260                              <1>  %if ITERATION == 0
  1261                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1262                              <1>  times 4 db 32
  1263                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1264 00001DD2 20<rep 2h>          <1>  times 2 db 32
  1265                              <1>  %else
  1266                              <1>  times 3 db 32
  1267                              <1>  %endif
  1268 00001DD4 44656320486578      <1>  db "Dec Hex"
  1269                              <1>  %assign ITERATION ITERATION + 1
  1260                              <1>  %if ITERATION == 0
  1261                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1262                              <1>  times 4 db 32
  1263                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1264 00001DDB 20<rep 2h>          <1>  times 2 db 32
  1265                              <1>  %else
  1266                              <1>  times 3 db 32
  1267                              <1>  %endif
  1268 00001DDD 44656320486578      <1>  db "Dec Hex"
  1269                              <1>  %assign ITERATION ITERATION + 1
  1260                              <1>  %if ITERATION == 0
  1261                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1262                              <1>  times 4 db 32
  1263                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1264 00001DE4 20<rep 2h>          <1>  times 2 db 32
  1265                              <1>  %else
  1266                              <1>  times 3 db 32
  1267                              <1>  %endif
  1268 00001DE6 44656320486578      <1>  db "Dec Hex"
  1269                              <1>  %assign ITERATION ITERATION + 1
  1260                              <1>  %if ITERATION == 0
  1261                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1262                              <1>  times 4 db 32
  1263                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1264                              <1>  times 2 db 32
  1265                              <1>  %else
  1266 00001DED 20<rep 3h>          <1>  times 3 db 32
  1267                              <1>  %endif
  1268 00001DF0 44656320486578      <1>  db "Dec Hex"
  1269                              <1>  %assign ITERATION ITERATION + 1
  1260                              <1>  %if ITERATION == 0
  1261                              <1>  %elif ITERATION == 1 || ITERATION == 2
  1262                              <1>  times 4 db 32
  1263                              <1>  %elif ITERATION == 3 || ITERATION == 4 || ITERATION == 5
  1264                              <1>  times 2 db 32
  1265                              <1>  %else
  1266 00001DF7 20<rep 3h>          <1>  times 3 db 32
  1267                              <1>  %endif
  1268 00001DFA 44656320486578      <1>  db "Dec Hex"
  1269                              <1>  %assign ITERATION ITERATION + 1
  1271 00001E01 0D0A                    		db 13,10
  1272                                  .tableheader.end:
  1273 00001E03 4F                      .tableheadertop:db .tableheadertop.end - .tableheadertop.start
  1274                                  .tableheadertop.start:
  1275                                   %assign ITERATION 0
  1276                                   %rep 8
  1277                                    %if ITERATION == 0
  1278                                    %else
  1279                                  		times 3 db 32
  1280                                    %endif
  1281                                  		db "Dec Hex"
  1282                                    %assign ITERATION ITERATION + 1
  1283                                   %endrep
  1277                              <1>  %if ITERATION == 0
  1278                              <1>  %else
  1279                              <1>  times 3 db 32
  1280                              <1>  %endif
  1281 00001E04 44656320486578      <1>  db "Dec Hex"
  1282                              <1>  %assign ITERATION ITERATION + 1
  1277                              <1>  %if ITERATION == 0
  1278                              <1>  %else
  1279 00001E0B 20<rep 3h>          <1>  times 3 db 32
  1280                              <1>  %endif
  1281 00001E0E 44656320486578      <1>  db "Dec Hex"
  1282                              <1>  %assign ITERATION ITERATION + 1
  1277                              <1>  %if ITERATION == 0
  1278                              <1>  %else
  1279 00001E15 20<rep 3h>          <1>  times 3 db 32
  1280                              <1>  %endif
  1281 00001E18 44656320486578      <1>  db "Dec Hex"
  1282                              <1>  %assign ITERATION ITERATION + 1
  1277                              <1>  %if ITERATION == 0
  1278                              <1>  %else
  1279 00001E1F 20<rep 3h>          <1>  times 3 db 32
  1280                              <1>  %endif
  1281 00001E22 44656320486578      <1>  db "Dec Hex"
  1282                              <1>  %assign ITERATION ITERATION + 1
  1277                              <1>  %if ITERATION == 0
  1278                              <1>  %else
  1279 00001E29 20<rep 3h>          <1>  times 3 db 32
  1280                              <1>  %endif
  1281 00001E2C 44656320486578      <1>  db "Dec Hex"
  1282                              <1>  %assign ITERATION ITERATION + 1
  1277                              <1>  %if ITERATION == 0
  1278                              <1>  %else
  1279 00001E33 20<rep 3h>          <1>  times 3 db 32
  1280                              <1>  %endif
  1281 00001E36 44656320486578      <1>  db "Dec Hex"
  1282                              <1>  %assign ITERATION ITERATION + 1
  1277                              <1>  %if ITERATION == 0
  1278                              <1>  %else
  1279 00001E3D 20<rep 3h>          <1>  times 3 db 32
  1280                              <1>  %endif
  1281 00001E40 44656320486578      <1>  db "Dec Hex"
  1282                              <1>  %assign ITERATION ITERATION + 1
  1277                              <1>  %if ITERATION == 0
  1278                              <1>  %else
  1279 00001E47 20<rep 3h>          <1>  times 3 db 32
  1280                              <1>  %endif
  1281 00001E4A 44656320486578      <1>  db "Dec Hex"
  1282                              <1>  %assign ITERATION ITERATION + 1
  1284 00001E51 0D0A                    		db 13,10
  1285                                  .tableheadertop.end:
  1286                                  %endif
  1287                                  %if _PM
  1288 00001E53 43616E6E6F74206163-     .ofs32:		asciz "Cannot access 16-bit segment with 32-bit offset.",13,10
  1288 00001E5C 636573732031362D62-
  1288 00001E65 6974207365676D656E-
  1288 00001E6E 742077697468203332-
  1288 00001E77 2D626974206F666673-
  1288 00001E80 65742E0D0A00       
  1289 00001E86 416C6C6F6361746564-     .d.a_success:	db "Allocated descriptor with selector "
  1289 00001E8F 206465736372697074-
  1289 00001E98 6F7220776974682073-
  1289 00001EA1 656C6563746F7220   
  1290                                  .d.a_success_sel:
  1291 00001EA9 2D2D2D2D0D0A00          		asciz "----",13,10
  1292 00001EB0 4465616C6C6F636174-     .d.d_success:	asciz "Deallocated descriptor",13,10
  1292 00001EB9 656420646573637269-
  1292 00001EC2 70746F720D0A00     
  1293 00001EC9 536574206465736372-     .d.b_success:	asciz "Set descriptor base",13,10
  1293 00001ED2 6970746F7220626173-
  1293 00001EDB 650D0A00           
  1294 00001EDF 536574206465736372-     .d.l_success:	asciz "Set descriptor limit",13,10
  1294 00001EE8 6970746F72206C696D-
  1294 00001EF1 69740D0A00         
  1295 00001EF6 536574206465736372-     .d.t_success:	asciz "Set descriptor type",13,10
  1295 00001EFF 6970746F7220747970-
  1295 00001F08 650D0A00           
  1296 00001F0C 4572726F7220            .d.a_error:	db "Error "
  1297                                  .d.a_error_code:
  1298 00001F12 2D2D2D2D0D0A00          		asciz "----",13,10
  1299                                  .d.d_error equ .d.a_error
  1300                                  .d.d_error_code equ .d.a_error_code
  1301                                  .d.b_error equ .d.a_error
  1302                                  .d.b_error_code equ .d.a_error_code
  1303                                  .d.l_error equ .d.a_error
  1304                                  .d.l_error_code equ .d.a_error_code
  1305                                  .d.t_error equ .d.a_error
  1306                                  .d.t_error_code equ .d.a_error_code
  1307                                  %endif
  1308                                  
  1309                                  %if _MCB
  1310                                   %if _MCBPOSITION
  1311                                  .keyword_position:	asciz "POSITION"
  1312                                   %endif
  1313                                   %if _MCBLIMIT
  1314                                  .keyword_limit:		asciz "LIMIT"
  1315                                   %endif
  1316                                   %if _SDSUB
  1317                                  .keyword_skipsd:	asciz "SKIPSD"
  1318                                   %endif
  1319                                   %assign ELD 0
  1320                                   %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 00001F19 456E64206F66206368- <1> .invmcbadr:	asciz "End of chain: invalid MCB address.",13,10
    15 00001F22 61696E3A20696E7661- <1>
    15 00001F2B 6C6964204D43422061- <1>
    15 00001F34 6464726573732E0D0A- <1>
    15 00001F3D 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 00001F3E 00<rep 2h>          <1> 	align 4, db 0
    40                              <1> smcbtypes:
    41 00001F40 0000[D625]          <1> smcbtype S_OTHER,	00h
    42 00001F44 0100[DE25]          <1> smcbtype S_DOSENTRY,	01h
    43 00001F48 0200[E925]          <1> smcbtype S_DOSCODE,	02h
    44 00001F4C 0300[F325]          <1> smcbtype S_DOSDATA,	03h
    45 00001F50 0400[FD25]          <1> smcbtype S_IRQSCODE,	04h
    46 00001F54 0500[0826]          <1> smcbtype S_IRQSDATA,	05h
    47 00001F58 0600[1326]          <1> smcbtype S_CDS,		06h
    48 00001F5C 0700[1926]          <1> smcbtype S_LFNCDS,	07h
    49 00001F60 0800[2226]          <1> smcbtype S_DPB,		08h
    50 00001F64 0900[2826]          <1> smcbtype S_UPB,		09h
    51 00001F68 0A00[2E26]          <1> smcbtype S_SFT,		0Ah
    52 00001F6C 0B00[3426]          <1> smcbtype S_FCBSFT,	0Bh
    53 00001F70 0C00[3D26]          <1> smcbtype S_CCB,		0Ch
    54 00001F74 0D00[4326]          <1> smcbtype S_IRT,		0Dh
    55 00001F78 0E00[4926]          <1> smcbtype S_SECTOR,	0Eh
    56 00001F7C 0F00[5226]          <1> smcbtype S_NLS,		0Fh
    57 00001F80 1000[5826]          <1> smcbtype S_EBDA,	10h
    58 00001F84 1600[5F26]          <1> smcbtype S_INITFCBSFT,	16h
    59 00001F88 1700[6C26]          <1> smcbtype S_INITSTACK,	17h
    60 00001F8C 1800[7826]          <1> smcbtype S_INITCDS,	18h
    61 00001F90 1900[8226]          <1> smcbtype S_INITCONFIG,	19h
    62 00001F94 1A00[8F26]          <1> smcbtype S_INITFATSEG,	1Ah
    63 00001F98 1B00[9C26]          <1> smcbtype S_INITSECTORSEG,	1Bh
    64 00001F9C 1C00[AC26]          <1> smcbtype S_INITSTACKBPB,1Ch
    65 00001FA0 1D00[BB26]          <1> smcbtype S_INITPSP,	1Dh
    66 00001FA4 1E00[C526]          <1> smcbtype S_ENVIRONMENT,	1Eh
    67 00001FA8 1F00[D326]          <1> smcbtype S_INITIALISE,	1Fh
    68 00001FAC 2000[E026]          <1> smcbtype S_DEVICE,	20h					; Device
    69 00001FB0 2100[E926]          <1> smcbtype S_DEVICEMEMORY,21h					; Allocated by device
    70 00001FB4 3000[F826]          <1> smcbtype S_EXCLDUMA,	30h					; Excluded UMA
    71 00001FB8 3100[0327]          <1> smcbtype S_EXCLDUMASUB,	31h					; Excluded UMA with sub-chain of used MCBs
    72 00001FBC 3200[1127]          <1> smcbtype S_EXCLDLH,	32h					; Excluded by LH
    73 00001FC0 3300[1B27]          <1> smcbtype S_EXCLDDOS,	33h
    74 00001FC4 3400[2627]          <1> smcbtype S_EXCLDALTAH,	34h
    75 00001FC8 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
  1321                                  %endif
  1322                                  
  1323                                  
  1324                                  %define INSTALLMESSAGES db ""
  1325                                  
  1326                                  %imacro installflag 6-*.nolist
  1327                                   %xdefine %%one %1
  1328                                   %xdefine %%two %2
  1329                                   %xdefine %%three %3
  1330                                   %ifempty %3
  1331                                    %define %%three install_trying
  1332                                   %endif
  1333                                   %xdefine %%four %4
  1334                                   %ifempty %4
  1335                                    %define %%four 0
  1336                                   %endif
  1337                                   %xdefine %%five %5
  1338                                  %ifnidn %%one, 0
  1339                                   %if ((%%two - 1) & %%two) == 0
  1340                                    %if %%two > 0FFFFh
  1341                                     %if %%two & 0FFFFh
  1342                                      %error Flag set in both upper and lower word
  1343                                     %endif
  1344                                     %assign %%two %%two >> 16
  1345                                     %xdefine %%one %%one + 2
  1346                                    %endif
  1347                                   %else
  1348                                    %if (%%two & 0FFFF_0000h) != 0FFFF_0000h
  1349                                     %if (%%two & 0FFFFh) != 0FFFFh
  1350                                      %error Flag clear in both upper and lower word
  1351                                     %endif
  1352                                     %assign %%two (%%two >> 16) & 0FFFFh
  1353                                     %xdefine %%one %%one + 2
  1354                                    %endif
  1355                                   %endif
  1356                                  %endif
  1357                                    %xdefine INSTALLMESSAGES INSTALLMESSAGES, %%message_five:, {asciz %%five}
  1358                                   %assign %%step 0
  1359                                   %rep %0 - 5
  1360                                    %xdefine INSTALLMESSAGES INSTALLMESSAGES, %%message_%[%%step]:, {asciz %6}
  1361                                  	dw %%message_%[%%step]
  1362                                  	dw %%message_five
  1363                                  	dw %%one, %%two, %%three, %%four
  1364                                    %rotate 1
  1365                                    %assign %%step %%step + 1
  1366                                   %endrep
  1367                                  %endmacro
  1368                                  
  1369                                  %imacro installmessages 0-*.nolist
  1370                                   %rep %0
  1371                                  	%1
  1372                                    %rotate 1
  1373                                   %endrep
  1374                                  %endmacro
  1375                                  
  1376                                  installformat equ 1
  1377                                  
  1378                                  
  1379                                  	align 4, db 0
  1380                                  installflags:
  1381                                  %if _PM
  1382 00001FCC [3422][1C22][0000]-     installflag options4, opt4_int_2F_hook,,, 	"Interrupt 2Fh DPMI hook", "INT2F", "DPMIHOOK"
  1382 00001FD2 0200[0000]0000-    
  1382 00001FD8 [3A22][1C22][0000]-
  1382 00001FDE 0200[0000]0000     
  1384                                  %endif
  1385                                  %if _CATCHINTFAULTCOND && (_CATCHINT0D || _CATCHINT0C)
  1386 00001FE4 [5E22][4322][0000]-     installflag options4, opt4_int_fault_hook,,, 	"R86M fault interrupts hook", "FAULTS", "FAULT", "INTFAULTS", "INTFAULT"
  1386 00001FEA 1000[0000]0000-    
  1386 00001FF0 [6522][4322][0000]-
  1386 00001FF6 1000[0000]0000-    
  1386 00001FFC [6B22][4322][0000]-
  1386 00002002 1000[0000]0000-    
  1386 00002008 [7522][4322][0000]-
  1386 0000200E 1000[0000]0000     
  1388                                  %endif
  1389                                  %if _CATCHINT08
  1390 00002014 [9522][7E22][0000]-     installflag options4, opt4_int_08_hook,,, 	"Interrupt 8 timer hook", "INT08", "INT8", "TIMER"
  1390 0000201A 0400[0000]0000-    
  1390 00002020 [9B22][7E22][0000]-
  1390 00002026 0400[0000]0000-    
  1390 0000202C [A022][7E22][0000]-
  1390 00002032 0400[0000]0000     
  1392                                  %endif
  1393                                  %if _CATCHINT2D
  1394 00002038 [BE22][A622][0000]-     installflag options4, opt4_int_2D_hook,,, 	"Interrupt 2Dh AMIS hook", "INT2D", "AMIS"
  1394 0000203E 0800[0000]0000-    
  1394 00002044 [C422][A622][0000]-
  1394 0000204A 0800[0000]0000     
  1396                                  %endif
  1397                                  %if _AREAS && _AREAS_HOOK_CLIENT
  1398                                  installflag 0, install_areas,,, 	"Areas", "AREAS"
  1400                                  %endif
  1401 00002050 [D422][C922][0000]-     installflag options, enable_serial, dmycmd,, 	"Serial I/O", "SERIAL"
  1401 00002056 0040[0000]0000     
  1403 0000205C [EC22][DB22][0000]-     installflag options, fakeindos, dmycmd,, 	"Force InDOS mode", "INDOS"
  1403 00002062 0800[0000]0000     
  1405 00002068 [0823][F222][0000]-     installflag options, opt_usegetinput, dmycmd,, 	"Use DOS getinput mode", "GETINPUT"
  1405 0000206E 0008[0000]0000     
  1407 00002074 [3023][1123][0200]-     installflag options3, opt3_r_highlight_full, dmycmd,, 	"R register change highlighting", "RHIGHLIGHT"
  1407 0000207A 0400[0000]0000     
  1409 00002080 [4623][3B23][0200]-     installflag options3, ~ opt3_disable_autorepeat, dmycmd,, 	"Autorepeat", "AUTOREPEAT"
  1409 00002086 FFEF[0000]0000     
  1411 0000208C [5823][5123][0000]-     installflag options, ~ nonpagingdevice, dmycmd,, 	"Paging", "PAGING"
  1411 00002092 EFFF[0000]0000     
  1413 00002098 [6F23][5F23][0000]-     installflag options6, opt6_bios_output, dmycmd,, 	"ROM-BIOS output", "BIOSOUT", "BIOSOUTPUT", "INT10OUT", "INT10OUTPUT"
  1413 0000209E 0002[0000]0000-    
  1413 000020A4 [7723][5F23][0000]-
  1413 000020AA 0002[0000]0000-    
  1413 000020B0 [8223][5F23][0000]-
  1413 000020B6 0002[0000]0000-    
  1413 000020BC [8B23][5F23][0000]-
  1413 000020C2 0002[0000]0000     
  1415 000020C8 [AD23][9723][0000]-     installflag options6, opt6_flat_binary, dmycmd,, 	"Flat binary read mode", "FLAT", "FLATBIN", 	"FLATBINARY", "FSWITCH"
  1415 000020CE 0004[0000]0000-    
  1415 000020D4 [B223][9723][0000]-
  1415 000020DA 0004[0000]0000-    
  1415 000020E0 [BA23][9723][0000]-
  1415 000020E6 0004[0000]0000-    
  1415 000020EC [C523][9723][0000]-
  1415 000020F2 0004[0000]0000     
  1418 000020F8 [E323][CD23][0000]-     installflag options6, opt6_big_stack, dmycmd,, 	".BIG style stack mode", "BIG", "BIGSTACK", "ESWITCH"
  1418 000020FE 0008[0000]0000-    
  1418 00002104 [E723][CD23][0000]-
  1418 0000210A 0008[0000]0000-    
  1418 00002110 [F023][CD23][0000]-
  1418 00002116 0008[0000]0000     
  1420                                  %if _RH
  1421 0000211C [0E24][F823][0200]-     installflag options6, opt6_rh_mode, dmycmd,, 	"Register dump history", "RH", "RHISTORY", "REGHISTORY"
  1421 00002122 1000[0000]0000-    
  1421 00002128 [1124][F823][0200]-
  1421 0000212E 1000[0000]0000-    
  1421 00002134 [1A24][F823][0200]-
  1421 0000213A 1000[0000]0000     
  1423                                  %endif
  1424                                  %if _DEBUG && _DEBUG_COND
  1425                                  installflag options6, opt6_debug_mode,,, 	"Debuggable mode", "DEBUG"
  1427                                  %endif
  1428 00002140 [3D24][2524][0000]-     installflag options3, opt3_paging_rc, dmycmd,, 	"Paging RC commands mode", "PAGINGRC"
  1428 00002146 0010[0000]0000     
  1430 0000214C [5E24][4624][0000]-     installflag options3, opt3_paging_re, dmycmd,, 	"Paging RE commands mode", "PAGINGRE"
  1430 00002152 0040[0000]0000     
  1432 00002158 [8524][6724][0000]-     installflag options3, opt3_paging_yy, dmycmd,, 	"Paging Script for lDebug mode", "PAGINGY", "PAGINGYY", "PAGINGSCRIPT"
  1432 0000215E 0020[0000]0000-    
  1432 00002164 [8D24][6724][0000]-
  1432 0000216A 0020[0000]0000-    
  1432 00002170 [9624][6724][0000]-
  1432 00002176 0020[0000]0000     
  1434                                  %ifn _ONLYNON386
  1435 0000217C [BA24][A324][0000]-     installflag options, dispregs32, dmycmd,, 	"386 register dump mode", "RX", "REGS386", "REGS32"
  1435 00002182 0100[0000]0000-    
  1435 00002188 [BD24][A324][0000]-
  1435 0000218E 0100[0000]0000-    
  1435 00002194 [C524][A324][0000]-
  1435 0000219A 0100[0000]0000     
  1437                                  %endif
  1438 000021A0 [E224][CC24][0000]-     installflag options, traceints, dmycmd,, 	"Trace interrupts Mode", "TM", "TRACEINTS", "TRACEINTERRUPTS"
  1438 000021A6 0200[0000]0000-    
  1438 000021AC [E524][CC24][0000]-
  1438 000021B2 0200[0000]0000-    
  1438 000021B8 [EF24][CC24][0000]-
  1438 000021BE 0200[0000]0000     
  1440 000021C4 [0C25][FF24][0000]-     installflag options7, opt7_houdini, dmycmd,, 	"Houdini Mode", "HOUDINI"
  1440 000021CA 0001[0000]0000     
  1442 000021D0 [2E25][1425][0000]-     installflag options7, opt7_no_free_oneshot_eld, dmycmd,, 	"No free oneshot ELDs mode", "NOFREEONESHOT"
  1442 000021D6 0100[0000]0000     
  1444 000021DC [4E25][3C25][0000]-     installflag options7, opt7_quiet_install, dmycmd,, 	"Quiet ELD install", "QUIETINSTALL"
  1444 000021E2 0400[0000]0000     
  1446 000021E8 [7825][5B25][0000]-     installflag options7, opt7_debug_optional_link, dmycmd,, 	"Debug ELD optional link mode", "DEBUGOPTLINK"
  1446 000021EE 0200[0000]0000     
  1448 000021F4 [9325][8525][0000]-     installflag options7, opt7_quick_run, dmycmd,, 	"Quick ELD run", "QUICKRUN"
  1448 000021FA 0800[0000]0000     
  1450 00002200 [AA25][9C25][0000]-     installflag options7, opt7_debug_run, dmycmd,, 	"Debug ELD run", "DEBUGRUN"
  1450 00002206 0002[0000]0000     
  1452 0000220C [CD25][B325][0000]-     installflag options7, opt7_no_ensure, dmycmd,, 	"No ensure debuggee loaded", "NOENSURE"
  1452 00002212 0010[0000]0000     
  1454 00002218 00000000                	dw 0, 0
  1455                                  
  1456 0000221C 496E74657272757074-     installmessages INSTALLMESSAGES
  1456 00002225 203246682044504D49-
  1456 0000222E 20686F6F6B00494E54-
  1456 00002237 32460044504D49484F-
  1456 00002240 4F4B005238364D2066-
  1456 00002249 61756C7420696E7465-
  1456 00002252 72727570747320686F-
  1456 0000225B 6F6B004641554C5453-
  1456 00002264 004641554C5400494E-
  1456 0000226D 544641554C54530049-
  1456 00002276 4E544641554C540049-
  1456 0000227F 6E7465727275707420-
  1456 00002288 382074696D65722068-
  1456 00002291 6F6F6B00494E543038-
  1456 0000229A 00494E54380054494D-
  1456 000022A3 455200496E74657272-
  1456 000022AC 757074203244682041-
  1456 000022B5 4D495320686F6F6B00-
  1456 000022BE 494E54324400414D49-
  1456 000022C7 530053657269616C20-
  1456 000022D0 492F4F005345524941-
  1456 000022D9 4C00466F7263652049-
  1456 000022E2 6E444F53206D6F6465-
  1456 000022EB 00494E444F53005573-
  1456 000022F4 6520444F5320676574-
  1456 000022FD 696E707574206D6F64-
  1456 00002306 6500474554494E5055-
  1456 0000230F 540052207265676973-
  1456 00002318 746572206368616E67-
  1456 00002321 6520686967686C6967-
  1456 0000232A 6874696E6700524849-
  1456 00002333 47484C494748540041-
  1456 0000233C 75746F726570656174-
  1456 00002345 004155544F52455045-
  1456 0000234E 415400506167696E67-
  1456 00002357 00504147494E470052-
  1456 00002360 4F4D2D42494F53206F-
  1456 00002369 75747075740042494F-
  1456 00002372 534F55540042494F53-
  1456 0000237B 4F555450555400494E-
  1456 00002384 5431304F555400494E-
  1456 0000238D 5431304F5554505554-
  1456 00002396 00466C61742062696E-
  1456 0000239F 617279207265616420-
  1456 000023A8 6D6F646500464C4154-
  1456 000023B1 00464C415442494E00-
  1456 000023BA 464C415442494E4152-
  1456 000023C3 590046535749544348-
  1456 000023CC 002E42494720737479-
  1456 000023D5 6C6520737461636B20-
  1456 000023DE 6D6F64650042494700-
  1456 000023E7 424947535441434B00-
  1456 000023F0 455357495443480052-
  1456 000023F9 656769737465722064-
  1456 00002402 756D7020686973746F-
  1456 0000240B 727900524800524849-
  1456 00002414 53544F525900524547-
  1456 0000241D 484953544F52590050-
  1456 00002426 6167696E6720524320-
  1456 0000242F 636F6D6D616E647320-
  1456 00002438 6D6F64650050414749-
  1456 00002441 4E4752430050616769-
  1456 0000244A 6E6720524520636F6D-
  1456 00002453 6D616E6473206D6F64-
  1456 0000245C 6500504147494E4752-
  1456 00002465 4500506167696E6720-
  1456 0000246E 53637269707420666F-
  1456 00002477 72206C446562756720-
  1456 00002480 6D6F64650050414749-
  1456 00002489 4E475900504147494E-
  1456 00002492 47595900504147494E-
  1456 0000249B 475343524950540033-
  1456 000024A4 383620726567697374-
  1456 000024AD 65722064756D70206D-
  1456 000024B6 6F6465005258005245-
  1456 000024BF 475333383600524547-
  1456 000024C8 533332005472616365-
  1456 000024D1 20696E746572727570-
  1456 000024DA 7473204D6F64650054-
  1456 000024E3 4D005452414345494E-
  1456 000024EC 545300545241434549-
  1456 000024F5 4E5445525255505453-
  1456 000024FE 00486F7564696E6920-
  1456 00002507 4D6F646500484F5544-
  1456 00002510 494E49004E6F206672-
  1456 00002519 6565206F6E6573686F-
  1456 00002522 7420454C4473206D6F-
  1456 0000252B 6465004E4F46524545-
  1456 00002534 4F4E4553484F540051-
  1456 0000253D 7569657420454C4420-
  1456 00002546 696E7374616C6C0051-
  1456 0000254F 55494554494E535441-
  1456 00002558 4C4C00446562756720-
  1456 00002561 454C44206F7074696F-
  1456 0000256A 6E616C206C696E6B20-
  1456 00002573 6D6F64650044454255-
  1456 0000257C 474F50544C494E4B00-
  1456 00002585 517569636B20454C44-
  1456 0000258E 2072756E0051554943-
  1456 00002597 4B52554E0044656275-
  1456 000025A0 6720454C442072756E-
  1456 000025A9 00444542554752554E-
  1456 000025B2 004E6F20656E737572-
  1456 000025BB 652064656275676765-
  1456 000025C4 65206C6F6164656400-
  1456 000025CD 4E4F454E5355524500 
  1457                                  
  1458                                  
  1459                                  %if _MCB
  1460 000025D6 535F4F544845520053-     smcbmsg smcb_messages
  1460 000025DF 5F444F53454E545259-
  1460 000025E8 00535F444F53434F44-
  1460 000025F1 4500535F444F534441-
  1460 000025FA 544100535F49525153-
  1460 00002603 434F444500535F4952-
  1460 0000260C 51534441544100535F-
  1460 00002615 43445300535F4C464E-
  1460 0000261E 43445300535F445042-
  1460 00002627 00535F55504200535F-
  1460 00002630 53465400535F464342-
  1460 00002639 53465400535F434342-
  1460 00002642 00535F49525400535F-
  1460 0000264B 534543544F5200535F-
  1460 00002654 4E4C5300535F454244-
  1460 0000265D 4100535F494E495446-
  1460 00002666 434253465400535F49-
  1460 0000266F 4E4954535441434B00-
  1460 00002678 535F494E4954434453-
  1460 00002681 00535F494E4954434F-
  1460 0000268A 4E46494700535F494E-
  1460 00002693 495446415453454700-
  1460 0000269C 535F494E4954534543-
  1460 000026A5 544F5253454700535F-
  1460 000026AE 494E4954535441434B-
  1460 000026B7 42504200535F494E49-
  1460 000026C0 5450535000535F454E-
  1460 000026C9 5649524F4E4D454E54-
  1460 000026D2 00535F494E49544941-
  1460 000026DB 4C49534500535F4445-
  1460 000026E4 5649434500535F4445-
  1460 000026ED 564943454D454D4F52-
  1460 000026F6 5900535F4558434C44-
  1460 000026FF 554D4100535F455843-
  1460 00002708 4C44554D4153554200-
  1460 00002711 535F4558434C444C48-
  1460 0000271A 00535F4558434C4444-
  1460 00002723 4F5300535F4558434C-
  1460 0000272C 44414C54414800     
  1461                                  
  1462 00002733 756E6B6E6F776E00        smcbmsg_unknown:	asciz "unknown"
  1463                                  
  1464                                  %undef smcb_messages
  1465                                  %unimacro smcbtype 2.nolist
  1466                                  %unimacro smcbmsg 2-*.nolist
  1467                                  %endif
  1468                                  
  1469                                  
  1470 0000273B 5E204572726F7207        errcarat:	db "^ Error",7
  1471 00002743 0D0A00                  crlf:		asciz 13,10
  1472                                  
  1473                                  %if _SYMBOLIC
  1474                                  pre_str_list:
  1475                                  	db -1, "", 0
  1476                                  .end:
  1477                                  %endif
  1478                                  
  1479                                  
  1480 00002746 00<rep 2h>              	align 4, db 0
  1481                                  msgtable_value_range:
  1482 00002748 [4E10][5810]            	dw msg.executing, msg.executing_value_range
  1483                                  %if _ACCESS_VARIABLES_AMOUNT
  1484 0000274C [5E27][6627]            	dw .reading, .reading_range
  1485 00002750 [E127][E927]            	dw .writing, .writing_range
  1486 00002754 [6428][6F28]            	dw .memoperand, .memoperand_range
  1487 00002758 [8028][8A28]            	dw .accessing, .accessing_range
  1488                                  %endif
  1489 0000275C 0000                    	dw 0
  1490                                  
  1491                                  %if _ACCESS_VARIABLES_AMOUNT
  1492 0000275E 52454144494E4700        .reading:		asciz "READING"
  1493                                  .reading_range:
  1494                                   %assign iicounter 0
  1495                                   %define iiprefix ""
  1496                                   %rep _ACCESS_VARIABLES_AMOUNT
  1497                                  	_autohexitsstrdef IIDEF, iicounter
  1498                                  			db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1499                                   %assign iicounter iicounter + 1
  1500                                   %define iiprefix ", "
  1501                                   %endrep
  1497                              <1>  _autohexitsstrdef IIDEF, iicounter
  1498 00002766 46524F4D2072656164- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1498 0000276F 61647230204C454E47- <1>
  1498 00002778 544820726561646C65- <1>
  1498 00002781 6E30                <1>
  1499                              <1>  %assign iicounter iicounter + 1
  1500                              <1>  %define iiprefix ", "
  1497                              <1>  _autohexitsstrdef IIDEF, iicounter
  1498 00002783 2C2046524F4D207265- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1498 0000278C 616461647231204C45- <1>
  1498 00002795 4E4754482072656164- <1>
  1498 0000279E 6C656E31            <1>
  1499                              <1>  %assign iicounter iicounter + 1
  1500                              <1>  %define iiprefix ", "
  1497                              <1>  _autohexitsstrdef IIDEF, iicounter
  1498 000027A2 2C2046524F4D207265- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1498 000027AB 616461647232204C45- <1>
  1498 000027B4 4E4754482072656164- <1>
  1498 000027BD 6C656E32            <1>
  1499                              <1>  %assign iicounter iicounter + 1
  1500                              <1>  %define iiprefix ", "
  1497                              <1>  _autohexitsstrdef IIDEF, iicounter
  1498 000027C1 2C2046524F4D207265- <1>  db iiprefix,"FROM readadr",_IIDEF," LENGTH readlen",_IIDEF
  1498 000027CA 616461647233204C45- <1>
  1498 000027D3 4E4754482072656164- <1>
  1498 000027DC 6C656E33            <1>
  1499                              <1>  %assign iicounter iicounter + 1
  1500                              <1>  %define iiprefix ", "
  1502 000027E0 00                      			asciz
  1503 000027E1 57524954494E4700        .writing:		asciz "WRITING"
  1504                                  .writing_range:
  1505                                   %assign iicounter 0
  1506                                   %define iiprefix ""
  1507                                   %rep _ACCESS_VARIABLES_AMOUNT
  1508                                  	_autohexitsstrdef IIDEF, iicounter
  1509                                  			db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1510                                   %assign iicounter iicounter + 1
  1511                                   %define iiprefix ", "
  1512                                   %endrep
  1508                              <1>  _autohexitsstrdef IIDEF, iicounter
  1509 000027E9 46524F4D2077726974- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1509 000027F2 61647230204C454E47- <1>
  1509 000027FB 544820777269746C65- <1>
  1509 00002804 6E30                <1>
  1510                              <1>  %assign iicounter iicounter + 1
  1511                              <1>  %define iiprefix ", "
  1508                              <1>  _autohexitsstrdef IIDEF, iicounter
  1509 00002806 2C2046524F4D207772- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1509 0000280F 697461647231204C45- <1>
  1509 00002818 4E4754482077726974- <1>
  1509 00002821 6C656E31            <1>
  1510                              <1>  %assign iicounter iicounter + 1
  1511                              <1>  %define iiprefix ", "
  1508                              <1>  _autohexitsstrdef IIDEF, iicounter
  1509 00002825 2C2046524F4D207772- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1509 0000282E 697461647232204C45- <1>
  1509 00002837 4E4754482077726974- <1>
  1509 00002840 6C656E32            <1>
  1510                              <1>  %assign iicounter iicounter + 1
  1511                              <1>  %define iiprefix ", "
  1508                              <1>  _autohexitsstrdef IIDEF, iicounter
  1509 00002844 2C2046524F4D207772- <1>  db iiprefix,"FROM writadr",_IIDEF," LENGTH writlen",_IIDEF
  1509 0000284D 697461647233204C45- <1>
  1509 00002856 4E4754482077726974- <1>
  1509 0000285F 6C656E33            <1>
  1510                              <1>  %assign iicounter iicounter + 1
  1511                              <1>  %define iiprefix ", "
  1513 00002863 00                      			asciz
  1514                                  
  1515 00002864 4D454D4F504552414E-     .memoperand:		asciz "MEMOPERAND"
  1515 0000286D 4400               
  1516 0000286F 52454144494E472C20-     .memoperand_range:	asciz "READING, WRITING"
  1516 00002878 57524954494E4700   
  1517 00002880 414343455353494E47-     .accessing:		asciz "ACCESSING"
  1517 00002889 00                 
  1518 0000288A 52454144494E472C20-     .accessing_range:	asciz "READING, WRITING, EXECUTING"
  1518 00002893 57524954494E472C20-
  1518 0000289C 455845435554494E47-
  1518 000028A5 00                 
  1519                                  %endif
  1520                                  
  1521                                  
  1522                                  %if _BOOTLDR
  1523                                  %define lot_list
  1524                                  %define lot_comma
  1525                                  %macro lot_entry 2.nolist
  1526                                  %ifn _LINK
  1527                                  LOAD_%2 equ %1
  1528                                  %endif
  1529                                  	dw LOAD_%2, .%2
  1530                                  %defstr %%string %2
  1531                                  %xdefine lot_list lot_list lot_comma .%2:, db %%string, db 0
  1532                                  %define lot_comma ,
  1533                                  %endmacro
  1534                                  
  1535                                  %macro lot_messages 0-*.nolist
  1536                                  %rep (%0 / 3)
  1537                                  %1
  1538                                  	%2
  1539                                  	%3
  1540                                  %rotate 3
  1541                                  %endrep
  1542                                  %endmacro
  1543                                  
  1544 000028A6 00<rep 2h>              	align 4, db 0
  1545                                  loadoptiontable:
  1546 000028A8 0100[1429]              	lot_entry    1, SET_DL_UNIT
  1547 000028AC 0200[2029]              	lot_entry    2, SET_BL_UNIT
  1548 000028B0 0400[2C29]              	lot_entry    4, SET_SIDI_CLUSTER
  1549 000028B4 1000[3D29]              	lot_entry  10h, SET_DSSI_DPT
  1550 000028B8 2000[4A29]              	lot_entry  20h, PUSH_DPT
  1551 000028BC 4000[5329]              	lot_entry  40h, DATASTART_HIDDEN
  1552 000028C0 8000[6429]              	lot_entry  80h, SET_AXBX_DATASTART
  1553 000028C4 0001[7729]              	lot_entry 100h, SET_DSBP_BPB
  1554 000028C8 0002[8429]              	lot_entry 200h, LBA_SET_TYPE
  1555 000028CC 0004[9129]              	lot_entry 400h, MESSAGE_TABLE
  1556 000028D0 0008[9F29]              	lot_entry 800h, SET_AXBX_ROOT_HIDDEN
  1557 000028D4 0010[B429]              	lot_entry 1000h, CMDLINE
  1558 000028D8 0020[BC29]              	lot_entry 2000h, NO_BPB
  1559 000028DC 0040[C329]              	lot_entry 4000h, SET_DSSI_PARTINFO
  1560 000028E0 00000000                	dw 0, 0
  1561                                  
  1562                                  .incompatible:
  1563 000028E4 02008000                	dw LOAD_SET_BL_UNIT, LOAD_SET_AXBX_DATASTART
  1564 000028E8 02000008                	dw LOAD_SET_BL_UNIT, LOAD_SET_AXBX_ROOT_HIDDEN
  1565 000028EC 80000008                	dw LOAD_SET_AXBX_DATASTART, LOAD_SET_AXBX_ROOT_HIDDEN
  1566 000028F0 04001000                	dw LOAD_SET_SIDI_CLUSTER, LOAD_SET_DSSI_DPT
  1567 000028F4 00011000                	dw LOAD_SET_DSBP_BPB, LOAD_SET_DSSI_DPT
  1568 000028F8 00200001                	dw LOAD_NO_BPB, LOAD_SET_DSBP_BPB
  1569 000028FC 00200002                	dw LOAD_NO_BPB, LOAD_LBA_SET_TYPE
  1570 00002900 00200004                	dw LOAD_NO_BPB, LOAD_MESSAGE_TABLE
  1571 00002904 00400400                	dw LOAD_SET_DSSI_PARTINFO, LOAD_SET_SIDI_CLUSTER
  1572 00002908 00401000                	dw LOAD_SET_DSSI_PARTINFO, LOAD_SET_DSSI_DPT
  1573 0000290C 00400001                	dw LOAD_SET_DSSI_PARTINFO, LOAD_SET_DSBP_BPB
  1574 00002910 00000000                	dw 0, 0
  1575                                  
  1576 00002914 5345545F444C5F554E-     lot_messages lot_list
  1576 0000291D 4954005345545F424C-
  1576 00002926 5F554E495400534554-
  1576 0000292F 5F534944495F434C55-
  1576 00002938 53544552005345545F-
  1576 00002941 445353495F44505400-
  1576 0000294A 505553485F44505400-
  1576 00002953 444154415354415254-
  1576 0000295C 5F48494444454E0053-
  1576 00002965 45545F415842585F44-
  1576 0000296E 415441535441525400-
  1576 00002977 5345545F445342505F-
  1576 00002980 425042004C42415F53-
  1576 00002989 45545F54595045004D-
  1576 00002992 4553534147455F5441-
  1576 0000299B 424C45005345545F41-
  1576 000029A4 5842585F524F4F545F-
  1576 000029AD 48494444454E00434D-
  1576 000029B6 444C494E45004E4F5F-
  1576 000029BF 425042005345545F44-
  1576 000029C8 5353495F5041525449-
  1576 000029D1 4E464F00           
  1577                                  
  1578                                  %unmacro lot_entry 2.nolist
  1579                                  %unmacro lot_messages 0-*.nolist
  1580                                  
  1581                                  
  1582                                  msdos7_message_table:
  1583                                  		; the first four bytes give displacements to the various
  1584                                  		;  messages. an ASCIZ message indicates that this was the
  1585                                  		;  last message. a message terminated by 0FFh indicates
  1586                                  		;  that the last message (displacement at table + 3) is
  1587                                  		;  to follow after this message.
  1588                                  		; the maximum allowed displacement is 7Fh. the minimum
  1589                                  		;  allowed displacement is 1, to avoid a zero displacement.
  1590                                  		; only the last message is terminated by a zero byte,
  1591                                  		;  as that zero byte indicates the end of the message table.
  1592                                  		;  (the entire table is treated as one ASCIZ string.)
  1593                                  		; MS-DOS 7.10 from MSW 98 SE seems to have at least 167h (359)
  1594                                  		;  bytes allocated to its buffer for these.
  1595                                  		;
  1596                                  		; this message table was discussed in a dosemu2 repo at
  1597                                  		;  https://github.com/stsp/dosemu2/issues/681
  1598 000029D5 03                      .:	db .msg_invalid_system - ($ + 1)
  1599 000029D6 13                      	db .msg_io_error - ($ + 1)
  1600 000029D7 01                      	db .msg_invalid_system - ($ + 1)
  1601 000029D8 1D                      	db .msg_press_any_key - ($ + 1)
  1602                                  
  1603                                  .msg_invalid_system:
  1604 000029D9 0D0A496E76616C6964-     	db 13,10,"Invalid system", -1
  1604 000029E2 2073797374656DFF   
  1605                                  
  1606                                  .msg_io_error:
  1607 000029EA 0D0A492F4F20657272-     	db 13,10,"I/O error", -1
  1607 000029F3 6F72FF             
  1608                                  
  1609                                  .msg_press_any_key:
  1610 000029F6 0D0A4368616E676520-     	db 13,10,"Change disk and press any key",13,10,0
  1610 000029FF 6469736B20616E6420-
  1610 00002A08 707265737320616E79-
  1610 00002A11 206B65790D0A00     
  1611                                  .end:
  1612                                  .size: equ .end - .
  1613                                  
  1614                                  %if .size > 150h
  1615                                   %error Message table too large!
  1616                                  %endif
  1617                                  
  1618                                  
  1619                                  
  1620                                  	align 4, db 0
  1621                                  loadsettings:
  1622                                  	istruc LOADSETTINGS
  1623 00002A18 [AC08]                  at lsKernelName,	dw msg.ldos_kernel_name
  1624 00002A1A [2209]                  at lsAddName,		dw msg.addname_empty
  1625 00002A1C 6000                    at lsMinPara,		dw 60h
  1626 00002A1E 0000                    at lsMaxPara,		dw 0
  1627 00002A20 0010                    at lsOptions,		dw LOAD_CMDLINE
  1628 00002A22 0002                    at lsSegment,		dw 200h
  1629 00002A24 00040000                at lsEntry,		dd 400h
  1630 00002A28 007CFFFF                at lsBPB,		dw 7C00h, -1
  1631 00002A2C 00<rep 4h>FC03          at lsCheckOffset,	dw 1020
  1632 00002A32 6C44                    at lsCheckValue,	db "lD"
  1633 00002A34 4C444F5300              at lsName,		asciz "LDOS"
  1634 00002A39 00<rep 3h>              	iend
  1635                                  	istruc LOADSETTINGS
  1636 00002A3C [8408]                  at lsKernelName,	dw msg.freedos_kernel_name
  1637 00002A3E [2209]                  at lsAddName,		dw msg.addname_empty
  1638 00002A40 2000                    at lsMinPara,		dw 20h
  1639 00002A42 FFFF                    at lsMaxPara,		dw -1
  1640 00002A44 0300                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_BL_UNIT
  1641 00002A46 6000                    at lsSegment,		dw 60h
  1642 00002A48 00000000                at lsEntry,		dd 0
  1643 00002A4C 007CFFFF                at lsBPB,		dw 7C00h, -1
  1644 00002A50 00<rep 8h>46524545-     at lsName,		asciz "FREEDOS"
  1644 00002A5C 444F5300           
  1645                                  	iend
  1646                                  	istruc LOADSETTINGS
  1647 00002A60 [8F08]                  at lsKernelName,	dw msg.dosc_kernel_name
  1648 00002A62 [2209]                  at lsAddName,		dw msg.addname_empty
  1649 00002A64 2000                    at lsMinPara,		dw 20h
  1650 00002A66 FFFF                    at lsMaxPara,		dw -1
  1651 00002A68 0300                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_BL_UNIT
  1652 00002A6A 0020                    at lsSegment,		dw 2000h
  1653 00002A6C 00000000                at lsEntry,		dd 0
  1654 00002A70 007C0000                at lsBPB,		dw 7C00h, 0
  1655 00002A74 00<rep 8h>444F5343-     at lsName,		asciz "DOSC"
  1655 00002A80 00                 
  1656 00002A81 00<rep 3h>              	iend
  1657                                  	istruc LOADSETTINGS
  1658 00002A84 [9708]                  at lsKernelName,	dw msg.edrdos_kernel_name
  1659 00002A86 [2209]                  at lsAddName,		dw msg.addname_empty
  1660 00002A88 2000                    at lsMinPara,		dw 20h
  1661 00002A8A FFFF                    at lsMaxPara,		dw -1
  1662 00002A8C 0301                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_BL_UNIT 			 | LOAD_SET_DSBP_BPB
  1664 00002A8E 7000                    at lsSegment,		dw 70h
  1665 00002A90 00000000                at lsEntry,		dd 0
  1666 00002A94 007CFFFF                at lsBPB,		dw 7C00h, -1
  1667 00002A98 00<rep 8h>45445244-     at lsName,		asciz "EDRDOS"
  1667 00002AA4 4F5300             
  1668 00002AA7 00                      	iend
  1669                                  	istruc LOADSETTINGS
  1670 00002AA8 [A108]                  at lsKernelName,	dw msg.drdos9_kernel_name
  1671 00002AAA [2209]                  at lsAddName,		dw msg.addname_empty
  1672 00002AAC 4000                    at lsMinPara,		dw paras(2 * 512)
  1673 00002AAE 0002                    at lsMaxPara,		dw paras(16 * 512)
  1674 00002AB0 0301                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_BL_UNIT 			 | LOAD_SET_DSBP_BPB
  1676 00002AB2 7000                    at lsSegment,		dw 70h
  1677 00002AB4 00000000                at lsEntry,		dd 0
  1678 00002AB8 007C0000                at lsBPB,		dw 7C00h, 0
  1679 00002ABC 00050000                at lsCopyBPB,		dw 500h, 0
  1680 00002AC0 00<rep 4h>4452444F-     at lsName,		asciz "DRDOS9"
  1680 00002AC8 533900             
  1681 00002ACB 00                      	iend
  1682                                  	istruc LOADSETTINGS
  1683 00002ACC [B508]                  at lsKernelName,	dw msg.msdos6_kernel_name
  1684 00002ACE [BC08]                  at lsAddName,		dw msg.msdos6_add_name
  1685 00002AD0 2000                    at lsMinPara,		dw 20h
  1686 00002AD2 6000                    at lsMaxPara,		dw 60h
  1687 00002AD4 F100                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_DATASTART 			 | LOAD_DATASTART_HIDDEN | LOAD_SET_DSSI_DPT 			 | LOAD_PUSH_DPT
  1690 00002AD6 7000                    at lsSegment,		dw 70h
  1691 00002AD8 00000000                at lsEntry,		dd 0
  1692 00002ADC 007C0000                at lsBPB,		dw 7C00h, 0
  1693 00002AE0 00<rep 8h>4D53444F-     at lsName,		asciz "MSDOS6"
  1693 00002AEC 533600             
  1694 00002AEF 00                      	iend
  1695                                  	istruc LOADSETTINGS
  1696 00002AF0 [F708]                  at lsKernelName,	dw msg.rxdos.0_kernel_name
  1697 00002AF2 [0E09]                  at lsAddName,		dw msg.rxdos.0_add_name
  1698 00002AF4 2000                    at lsMinPara,		dw 20h
  1699 00002AF6 6000                    at lsMaxPara,		dw 60h
  1700 00002AF8 3108                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_ROOT_HIDDEN 			 | LOAD_SET_DSSI_DPT | LOAD_PUSH_DPT
  1702 00002AFA 7000                    at lsSegment,		dw 70h
  1703 00002AFC 00000000                at lsEntry,		dd 0
  1704 00002B00 007C0000                at lsBPB,		dw 7C00h, 0
  1705 00002B04 00<rep 8h>5258444F-     at lsName,		asciz "RXDOS.0"
  1705 00002B10 532E3000           
  1706                                  	iend
  1707                                  	istruc LOADSETTINGS
  1708 00002B14 [0409]                  at lsKernelName,	dw msg.rxdos.1_kernel_name
  1709 00002B16 [0E09]                  at lsAddName,		dw msg.rxdos.1_add_name
  1710 00002B18 2000                    at lsMinPara,		dw 20h
  1711 00002B1A 6000                    at lsMaxPara,		dw 60h
  1712 00002B1C 3108                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_ROOT_HIDDEN 			 | LOAD_SET_DSSI_DPT | LOAD_PUSH_DPT
  1714 00002B1E 7000                    at lsSegment,		dw 70h
  1715 00002B20 00000000                at lsEntry,		dd 0
  1716 00002B24 007C0000                at lsBPB,		dw 7C00h, 0
  1717 00002B28 00<rep 8h>5258444F-     at lsName,		asciz "RXDOS.1"
  1717 00002B34 532E3100           
  1718                                  	iend
  1719                                  	istruc LOADSETTINGS
  1720 00002B38 [1809]                  at lsKernelName,	dw msg.rxdos.2_kernel_name
  1721 00002B3A [2209]                  at lsAddName,		dw msg.addname_empty
  1722 00002B3C 6000                    at lsMinPara,		dw 60h
  1723 00002B3E 0000                    at lsMaxPara,		dw 0
  1724 00002B40 0010                    at lsOptions,		dw LOAD_CMDLINE
  1725 00002B42 7000                    at lsSegment,		dw 70h
  1726 00002B44 00040000                at lsEntry,		dd 400h
  1727 00002B48 007CFFFF                at lsBPB,		dw 7C00h, -1
  1728 00002B4C 00<rep 8h>5258444F-     at lsName,		asciz "RXDOS.2"
  1728 00002B58 532E3200           
  1729                                  	iend
  1730                                  	istruc LOADSETTINGS
  1731 00002B5C [1809]                  at lsKernelName,	dw msg.rxdos.2_kernel_name
  1732 00002B5E [2209]                  at lsAddName,		dw msg.addname_empty
  1733 00002B60 6000                    at lsMinPara,		dw 60h
  1734 00002B62 0000                    at lsMaxPara,		dw 0
  1735 00002B64 0010                    at lsOptions,		dw LOAD_CMDLINE
  1736 00002B66 0002                    at lsSegment,		dw 200h
  1737 00002B68 00040000                at lsEntry,		dd 400h
  1738 00002B6C 007CFFFF                at lsBPB,		dw 7C00h, -1
  1739 00002B70 00<rep 4h>FC03          at lsCheckOffset,	dw 1020
  1740 00002B76 6C44                    at lsCheckValue,	db "lD"
  1741 00002B78 5258444F532E3300        at lsName,		asciz "RXDOS.3"
  1742                                  	iend
  1743                                  	istruc LOADSETTINGS
  1744 00002B80 [C608]                  at lsKernelName,	dw msg.ibmdos_kernel_name
  1745 00002B82 [D108]                  at lsAddName,		dw msg.ibmdos_add_name
  1746 00002B84 2000                    at lsMinPara,		dw 20h
  1747 00002B86 8000                    at lsMaxPara,		dw 80h
  1748 00002B88 F100                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_DATASTART 			 | LOAD_DATASTART_HIDDEN | LOAD_SET_DSSI_DPT 			 | LOAD_PUSH_DPT
  1751 00002B8A 7000                    at lsSegment,		dw 70h
  1752 00002B8C 00000000                at lsEntry,		dd 0
  1753 00002B90 007C0000                at lsBPB,		dw 7C00h, 0
  1754 00002B94 00<rep 8h>49424D44-     at lsName,		asciz "IBMDOS"
  1754 00002BA0 4F5300             
  1755 00002BA3 00                      	iend
  1756                                  	istruc LOADSETTINGS
  1757 00002BA4 [C608]                  at lsKernelName,	dw msg.ibmdos_kernel_name
  1758 00002BA6 [D108]                  at lsAddName,		dw msg.ibmdos_add_name
  1759 00002BA8 2000                    at lsMinPara,		dw 20h
  1760 00002BAA FFFF                    at lsMaxPara,		dw -1
  1761 00002BAC F100                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_AXBX_DATASTART 			 | LOAD_DATASTART_HIDDEN | LOAD_SET_DSSI_DPT 			 | LOAD_PUSH_DPT
  1764 00002BAE 7000                    at lsSegment,		dw 70h
  1765 00002BB0 00000000                at lsEntry,		dd 0
  1766 00002BB4 007C0000                at lsBPB,		dw 7C00h, 0
  1767 00002BB8 00<rep 8h>4452444F-     at lsName,		asciz "DRDOS"
  1767 00002BC4 5300               
  1768 00002BC6 00<rep 2h>              	iend
  1769                                  	istruc LOADSETTINGS
  1770 00002BC8 [B508]                  at lsKernelName,	dw msg.msdos7_kernel_name
  1771 00002BCA [2209]                  at lsAddName,		dw msg.addname_empty
  1772 00002BCC 4000                    at lsMinPara,		dw 40h
  1773 00002BCE 8000                    at lsMaxPara,		dw 80h
  1774 00002BD0 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
  1777 00002BD2 7000                    at lsSegment,		dw 70h
  1778 00002BD4 00020000                at lsEntry,		dd 200h
  1779 00002BD8 007CFFFF                at lsBPB,		dw 7C00h, -1
  1780 00002BDC 00<rep 4h>0002          at lsCheckOffset,	dw 200h
  1781 00002BE2 424A                    at lsCheckValue,	db "BJ"
  1782 00002BE4 4D53444F533700          at lsName,		asciz "MSDOS7"
  1783 00002BEB 00                      	iend
  1784                                  	istruc LOADSETTINGS
  1785 00002BEC [DC08]                  at lsKernelName,	dw msg.ntldr_kernel_name
  1786 00002BEE [2209]                  at lsAddName,		dw msg.addname_empty
  1787 00002BF0 2000                    at lsMinPara,		dw 20h
  1788 00002BF2 FFFF                    at lsMaxPara,		dw -1
  1789 00002BF4 4100                    at lsOptions,		dw LOAD_SET_DL_UNIT 			 | LOAD_DATASTART_HIDDEN
  1791 00002BF6 0020                    at lsSegment,		dw 2000h
  1792 00002BF8 00000000                at lsEntry,		dd 0
  1793 00002BFC 007C0000                at lsBPB,		dw 7C00h, 0
  1794 00002C00 00<rep 8h>4E544C44-     at lsName,		asciz "NTLDR"
  1794 00002C0C 5200               
  1795 00002C0E 00<rep 2h>              	iend
  1796                                  	istruc LOADSETTINGS
  1797 00002C10 [E208]                  at lsKernelName,	dw msg.bootmgr_kernel_name
  1798 00002C12 [2209]                  at lsAddName,		dw msg.addname_empty
  1799 00002C14 2000                    at lsMinPara,		dw 20h
  1800 00002C16 FFFF                    at lsMaxPara,		dw -1
  1801 00002C18 4100                    at lsOptions,		dw LOAD_SET_DL_UNIT 			 | LOAD_DATASTART_HIDDEN
  1803 00002C1A 0020                    at lsSegment,		dw 2000h
  1804 00002C1C 00000000                at lsEntry,		dd 0
  1805 00002C20 007C0000                at lsBPB,		dw 7C00h, 0
  1806 00002C24 00<rep 8h>424F4F54-     at lsName,		asciz "BOOTMGR"
  1806 00002C30 4D475200           
  1807                                  	iend
  1808                                  	istruc LOADSETTINGS
  1809 00002C34 [EA08]                  at lsKernelName,	dw msg.chain_kernel_name
  1810 00002C36 [2209]                  at lsAddName,		dw msg.addname_empty
  1811 00002C38 2000                    at lsMinPara,		dw paras(512)
  1812 00002C3A 0002                    at lsMaxPara,		dw paras(8192)
  1813 00002C3C 0160                    at lsOptions,		dw LOAD_SET_DL_UNIT | LOAD_SET_DSSI_PARTINFO 			 | LOAD_NO_BPB
  1815 00002C3E C007                    at lsSegment,		dw 7C0h
  1816 00002C40 007C40F8                at lsEntry,		dw 7C00h, -7C0h
  1817 00002C44 007C0000                at lsBPB,		dw 7C00h, 0
  1818 00002C48 00<rep 4h>FE01          at lsCheckOffset,	dw 510
  1819 00002C4E 55AA                    at lsCheckValue,	dw 0AA55h
  1820 00002C50 434841494E00            at lsName,		asciz "CHAIN"
  1821 00002C56 00<rep 2h>              	iend
  1822 00002C58 0000                    			dw 0
  1823                                  %endif
  1824                                  
  1825                                  
  1826                                  %if _APPLICATION || _DEVICE
  1827 00002C5A 0D21                    dskerrs:	db dskerr0-dskerrs,dskerr1-dskerrs
  1828 00002C5C 3444                    		db dskerr2-dskerrs,dskerr3-dskerrs
  1829 00002C5E 5494                    		db dskerr4-dskerrs,dskerr9-dskerrs
  1830 00002C60 6570                    		db dskerr6-dskerrs,dskerr7-dskerrs
  1831 00002C62 8394                    		db dskerr8-dskerrs,dskerr9-dskerrs
  1832 00002C64 A2AE                    		db dskerra-dskerrs,dskerrb-dskerrs
  1833 00002C66 B9                      		db dskerrc-dskerrs
  1834 00002C67 57726974652070726F-     dskerr0:	asciz "Write protect error"
  1834 00002C70 74656374206572726F-
  1834 00002C79 7200               
  1835 00002C7B 556E6B6E6F776E2075-     dskerr1:	asciz "Unknown unit error"
  1835 00002C84 6E6974206572726F72-
  1835 00002C8D 00                 
  1836 00002C8E 4472697665206E6F74-     dskerr2:	asciz "Drive not ready"
  1836 00002C97 20726561647900     
  1837 00002C9E 556E6B6E6F776E2063-     dskerr3:	asciz "Unknown command"
  1837 00002CA7 6F6D6D616E6400     
  1838 00002CAE 44617461206572726F-     dskerr4:	asciz "Data error (CRC)"
  1838 00002CB7 7220284352432900   
  1839 00002CBF 5365656B206572726F-     dskerr6:	asciz "Seek error"
  1839 00002CC8 7200               
  1840 00002CCA 556E6B6E6F776E206D-     dskerr7:	asciz "Unknown media type"
  1840 00002CD3 656469612074797065-
  1840 00002CDC 00                 
  1841 00002CDD 536563746F72206E6F-     dskerr8:	asciz "Sector not found"
  1841 00002CE6 7420666F756E6400   
  1842 00002CEE 556E6B6E6F776E2065-     dskerr9:	asciz "Unknown error"
  1842 00002CF7 72726F7200         
  1843 00002CFC 577269746520666175-     dskerra:	asciz "Write fault"
  1843 00002D05 6C7400             
  1844 00002D08 52656164206661756C-     dskerrb:	asciz "Read fault"
  1844 00002D11 7400               
  1845 00002D13 47656E6572616C2066-     dskerrc:	asciz "General failure"
  1845 00002D1C 61696C75726500     
  1846 00002D23 207265616400            reading:	asciz " read"
  1847 00002D29 207772697400            writing:	asciz " writ"
  1848 00002D2F 696E67206472697665-     drive:		db "ing drive "
  1848 00002D38 20                 
  1849 00002D39 5F00                    driveno:	asciz "_"
  1850                                  %endif
  1851 00002D3B 383038362F383800        msg8088:	asciz "8086/88"
  1852 00002D43 78383600                msgx86:		asciz "x86"
  1853 00002D47 20776974686F757420-     no_copr:	asciz " without coprocessor"
  1853 00002D50 636F70726F63657373-
  1853 00002D59 6F7200             
  1854 00002D5C 207769746820636F70-     has_copr:	asciz " with coprocessor"
  1854 00002D65 726F636573736F7200 
  1855 00002D6E 207769746820323837-     has_287:	asciz " with 287"
  1855 00002D77 00                 
  1856 00002D78 7472616365206D6F64-     tmodes:		db "trace mode is "
  1856 00002D81 6520697320         
  1857 00002D86 5F202D20696E746572-     tmodev:		asciz "_ - interrupts are "
  1857 00002D8F 727570747320617265-
  1857 00002D98 2000               
  1858 00002D9A 74726163656400          tmode1:		asciz "traced"
  1859 00002DA1 70726F636573736564-     tmode0:		asciz "processed"
  1859 00002DAA 00                 
  1860 00002DAB 2028756E7573656429-     unused:		asciz " (unused)"
  1860 00002DB4 00                 
  1861                                  needsmsg:
  1862 00002DB5 5B6E6565647320          .:		db "[needs "
  1863                                  .digit_x_ofs: equ $ - .
  1864 00002DBC 7838                    		db "x8"
  1865                                  .digit_6_ofs: equ $ - .
  1866 00002DBE 365D                    		db "6]"
  1867                                  needsmsg_L:	equ $-needsmsg
  1868 00002DC0 5B6E65656473206D61-     needsmath:	db "[needs math coprocessor]"
  1868 00002DC9 746820636F70726F63-
  1868 00002DD2 6573736F725D       
  1869                                  needsmath_L:	equ $-needsmath
  1870 00002DD8 5B6F62736F6C657465-     obsolete:	db "[obsolete]"
  1870 00002DE1 5D                 
  1871                                  obsolete_L:	equ $-obsolete
  1872 00002DE2 446976696465206572-     int0msg:	asciz "Divide error",13,10
  1872 00002DEB 726F720D0A00       
  1873 00002DF1 556E65787065637465-     int1msg:	asciz "Unexpected single-step interrupt",13,10
  1873 00002DFA 642073696E676C652D-
  1873 00002E03 7374657020696E7465-
  1873 00002E0C 72727570740D0A00   
  1874 00002E14 556E65787065637465-     int3msg:	asciz "Unexpected breakpoint interrupt",13,10
  1874 00002E1D 6420627265616B706F-
  1874 00002E26 696E7420696E746572-
  1874 00002E2F 727570740D0A00     
  1875                                  %if _CATCHINT06
  1876 00002E36 496E76616C6964206F-     int6msg:	asciz "Invalid opcode",13,10
  1876 00002E3F 70636F64650D0A00   
  1877                                  %endif
  1878                                  %if _CATCHINT08
  1879 00002E47 446574656374656420-     int8msg:	asciz "Detected Control pressed for a while",13,10
  1879 00002E50 436F6E74726F6C2070-
  1879 00002E59 72657373656420666F-
  1879 00002E62 722061207768696C65-
  1879 00002E6B 0D0A00             
  1880 00002E6E 446574656374656420-     int8_kbd_msg:	asciz "Detected Control pressed for a while (Keyboard enabled)",13,10
  1880 00002E77 436F6E74726F6C2070-
  1880 00002E80 72657373656420666F-
  1880 00002E89 722061207768696C65-
  1880 00002E92 20284B6579626F6172-
  1880 00002E9B 6420656E61626C6564-
  1880 00002EA4 290D0A00           
  1881                                  runint_ctrlc_msg:
  1882 00002EA8 446574656374656420-     		asciz "Detected double Control-C via serial",13,10
  1882 00002EB1 646F75626C6520436F-
  1882 00002EBA 6E74726F6C2D432076-
  1882 00002EC3 69612073657269616C-
  1882 00002ECC 0D0A00             
  1883                                  %endif
  1884                                  %if _CATCHINT07
  1885                                  int7msg:	asciz "No x87 present",13,10
  1886                                  %endif
  1887                                  %if _CATCHINT0C
  1888 00002ECF 537461636B20666175-     int0Cmsg:	asciz "Stack fault (in R86M)",13,10
  1888 00002ED8 6C742028696E205238-
  1888 00002EE1 364D290D0A00       
  1889                                  %endif
  1890                                  %if _CATCHINT0D
  1891 00002EE7 47656E6572616C2070-     int0Dmsg:	asciz "General protection fault (in R86M)",13,10
  1891 00002EF0 726F74656374696F6E-
  1891 00002EF9 206661756C74202869-
  1891 00002F02 6E205238364D290D0A-
  1891 00002F0B 00                 
  1892                                  %endif
  1893                                  %if _CATCHINT18 || _LOADER
  1894 00002F0C 4469736B6C65737320-     int18msg:	asciz "Diskless boot hook called",13,10
  1894 00002F15 626F6F7420686F6F6B-
  1894 00002F1E 2063616C6C65640D0A-
  1894 00002F27 00                 
  1895                                  %endif
  1896                                  %if _CATCHINT19 || _LOADER
  1897 00002F28 426F6F74206C6F6164-     int19msg:	asciz "Boot load called",13,10
  1897 00002F31 2063616C6C65640D0A-
  1897 00002F3A 00                 
  1898                                  %endif
  1899                                  %if _CATCHSYSREQ
  1900                                  sysreqmsg:	asciz "SysReq detected",13,10
  1901                                  %endif
  1902                                  %if _PM
  1903                                   %if _CATCHEXC06
  1904 00002F3B 496E76616C6964206F-     exc6msg:	asciz "Invalid opcode fault",13,10
  1904 00002F44 70636F646520666175-
  1904 00002F4D 6C740D0A00         
  1905                                   %endif
  1906                                   %if _CATCHEXC0C
  1907 00002F52 537461636B20666175-     excCmsg:	asciz "Stack fault",13,10
  1907 00002F5B 6C740D0A00         
  1908                                   %endif
  1909 00002F60 47656E6572616C2070-     excDmsg:	asciz "General protection fault",13,10
  1909 00002F69 726F74656374696F6E-
  1909 00002F72 206661756C740D0A00 
  1910                                  %endif
  1911                                  %if _PM || _CATCHINT07 || _CATCHINT0C || _CATCHINT0D
  1912                                   %if _EXCCSIP
  1913 00002F7B 43533A49503D            excloc:		db "CS:IP="
  1914 00002F81 202020203A20202020-     exccsip:	asciz "    :    ",13,10
  1914 00002F8A 0D0A00             
  1915                                   %endif
  1916                                   %if _AREAS
  1917                                  msg.area_hh_indirection_memory_access:
  1918 00002F8D 45787072657373696F-     		asciz "Expression indirection fault: "
  1918 00002F96 6E20696E6469726563-
  1918 00002F9F 74696F6E206661756C-
  1918 00002FA8 743A2000           
  1919                                  msg.area_rr_variable_read_access:
  1920 00002FAC 4D656D6F7279207661-     		asciz "Memory variable read access fault: "
  1920 00002FB5 726961626C65207265-
  1920 00002FBE 616420616363657373-
  1920 00002FC7 206661756C743A2000 
  1921                                  msg.area_rr_variable_write_access:
  1922 00002FD0 4D656D6F7279207661-     		asciz "Memory variable write access fault: "
  1922 00002FD9 726961626C65207772-
  1922 00002FE2 697465206163636573-
  1922 00002FEB 73206661756C743A20-
  1922 00002FF4 00                 
  1923                                  msg.area_uu_referenced_memory_access:
  1924 00002FF5 0D0A44697361737365-     		asciz 13,10,"Disassembly referenced memory fault: "
  1924 00002FFE 6D626C792072656665-
  1924 00003007 72656E636564206D65-
  1924 00003010 6D6F7279206661756C-
  1924 00003019 743A2000           
  1925                                  msg.area_uu_simulate_scas:
  1926 0000301D 446973617373656D62-     		asciz "Disassembly SCAS simulation fault: "
  1926 00003026 6C7920534341532073-
  1926 0000302F 696D756C6174696F6E-
  1926 00003038 206661756C743A2000 
  1927                                  msg.area_uu_simulate_cmps:
  1928 00003041 446973617373656D62-     		asciz "Disassembly CMPS simulation fault: "
  1928 0000304A 6C7920434D50532073-
  1928 00003053 696D756C6174696F6E-
  1928 0000305C 206661756C743A2000 
  1929                                  msg.area_aa_access:
  1930 00003065 417373656D626C7920-     		asciz "Assembly fault: "
  1930 0000306E 6661756C743A2000   
  1931                                  msg.area_dd_access:
  1932 00003076 44756D702064617461-     		asciz "Dump data fault: "
  1932 0000307F 206661756C743A2000 
  1933                                  msg.area_ee_interactive_access:
  1934 00003088 0D0A                    		db 13,10
  1935                                  msg.area_ee_access:
  1936 0000308A 456E74657220646174-     		asciz "Enter data fault: "
  1936 00003093 61206661756C743A20-
  1936 0000309C 00                 
  1937                                  msg.area_rr_access:
  1938 0000309D 526567697374657220-     		asciz "Register command fault: "
  1938 000030A6 636F6D6D616E642066-
  1938 000030AF 61756C743A2000     
  1939                                  msg.area_sss_access:
  1940 000030B6 53656172636820636F-     		asciz "Search command fault: "
  1940 000030BF 6D6D616E6420666175-
  1940 000030C8 6C743A2000         
  1941                                  msg.area_run_access:
  1942 000030CD 52756E20636F6D6D61-     		asciz "Run command fault: "
  1942 000030D6 6E64206661756C743A-
  1942 000030DF 2000               
  1943                                  msg.area_uu_access:
  1944 000030E1 446973617373656D62-     		asciz "Disassembly fault: "
  1944 000030EA 6C79206661756C743A-
  1944 000030F3 2000               
  1945                                   %endif
  1946                                  %endif
  1947                                  %if _PM
  1948 000030F5 50616765206661756C-     excEmsg:	asciz "Page fault",13,10
  1948 000030FE 740D0A00           
  1949                                   %if _BREAK_INSTALLDPMI
  1950 00003102 456E74657265642050-     installdpmimsg:	asciz "Entered Protected Mode",13,10
  1950 0000310B 726F74656374656420-
  1950 00003114 4D6F64650D0A00     
  1951                                   %endif
  1952 0000311B 436F6D6D616E64206E-     nodosext:	asciz "Command not supported in protected mode without a DOS extender",13,10
  1952 00003124 6F7420737570706F72-
  1952 0000312D 74656420696E207072-
  1952 00003136 6F746563746564206D-
  1952 0000313F 6F646520776974686F-
  1952 00003148 7574206120444F5320-
  1952 00003151 657874656E6465720D-
  1952 0000315A 0A00               
  1953 0000315C 436F6D6D616E64206E-     nopmsupp:	asciz "Command not supported in protected mode",13,10
  1953 00003165 6F7420737570706F72-
  1953 0000316E 74656420696E207072-
  1953 00003177 6F746563746564206D-
  1953 00003180 6F64650D0A00       
  1954                                   %if _DISPHOOK
  1955 00003186 44504D4920656E7472-     dpmihook:	db "DPMI entry hooked, new entry="
  1955 0000318F 7920686F6F6B65642C-
  1955 00003198 206E657720656E7472-
  1955 000031A1 793D               
  1956 000031A3 5F5F5F5F3A              dpmihookcs:	db "____:"
  1957                                   %ifn _LINK
  1958                                  		db _4digitshex(mydpmientry+DATASECTIONFIXUP)
  1959                                   %else
  1960                                   wlcalc dword_itoa_2_00_10h
  1961 000031A8 [00000000]              		dd mydpmientry
  1962                                   %endif
  1963 000031AC 0D0A00                  		asciz 13,10
  1964                                    %if _DEBUG
  1965                                  dpmihookamis:	asciz "DPMI entry hooked by other debugger with AMIS callout",13,10
  1966                                    %endif
  1967                                   %endif
  1968 000031AF 44504D4920656E7472-     msg.dpmi_no_hook:	asciz "DPMI entry cannot be hooked!",13,10
  1968 000031B8 792063616E6E6F7420-
  1968 000031C1 626520686F6F6B6564-
  1968 000031CA 210D0A00           
  1969 000031CE 7265736F7572636520-     nodesc:		asciz "resource not accessible in real mode",13,10
  1969 000031D7 6E6F74206163636573-
  1969 000031E0 7369626C6520696E20-
  1969 000031E9 7265616C206D6F6465-
  1969 000031F2 0D0A00             
  1970                                  ;descwrong:	asciz "descriptor not accessible",13,10
  1971 000031F5 4D532D444F5300          msg.msdos:	asciz "MS-DOS"
  1972 000031FC 2D2D2D2D2062617365-     descriptor:	db "---- base="
  1972 00003205 3D                 
  1973 00003206 2D2D2D2D2D2D2D2D20-     .base:		db "-------- limit="
  1973 0000320F 6C696D69743D       
  1974 00003215 2D2D2D2D2D2D2D2D20-     .limit:		db "-------- attr="
  1974 0000321E 617474723D         
  1975 00003223 2D2D2D2D0D0A            .attrib:	db "----",13,10
  1976 00003229 00                      		asciz
  1977                                  %endif	; _PM
  1978 0000322A 4572726F7220696E20-     ph_msg:		asciz "Error in sequence of calls to hack.",13,10
  1978 00003233 73657175656E636520-
  1978 0000323C 6F662063616C6C7320-
  1978 00003245 746F206861636B2E0D-
  1978 0000324E 0A00               
  1979                                  
  1980 00003250 0D0A50726F6772616D-     progtrm:	db 13,10,"Program terminated normally ("
  1980 00003259 207465726D696E6174-
  1980 00003262 6564206E6F726D616C-
  1980 0000326B 6C792028           
  1981 0000326F 5F5F5F5F290D0A00        progexit:	asciz "____)",13,10
  1982                                  %if _APPLICATION || _DEVICE
  1983 00003277 45584520616E642048-     nowhexe:	asciz "EXE and HEX files cannot be written",13,10
  1983 00003280 45582066696C657320-
  1983 00003289 63616E6E6F74206265-
  1983 00003292 207772697474656E0D-
  1983 0000329B 0A00               
  1984 0000329D 43616E6E6F74207772-     nownull:	asciz "Cannot write: no file name given",13,10
  1984 000032A6 6974653A206E6F2066-
  1984 000032AF 696C65206E616D6520-
  1984 000032B8 676976656E0D0A00   
  1985 000032C0 4572726F7220696E20-     msg.hexerror:	asciz "Error in HEX file",13,10
  1985 000032C9 4845582066696C650D-
  1985 000032D2 0A00               
  1986 000032D4 57726974696E672000      wwmsg1:		asciz "Writing "
  1987 000032DD 2062797465730D0A00      wwmsg2:		asciz " bytes",13,10
  1988 000032E6 4469736B2066756C6C-     diskful:	asciz "Disk full",13,10
  1988 000032EF 0D0A00             
  1989 000032F2 4572726F7220            openerr:	db "Error "
  1990 000032F8 5F5F5F5F206F70656E-     openerr1:	asciz "____ opening file",13,10
  1990 00003301 696E672066696C650D-
  1990 0000330A 0A00               
  1991 0000330C 46696C65206E6F7420-     doserr2:	asciz "File not found",13,10
  1991 00003315 666F756E640D0A00   
  1992 0000331D 50617468206E6F7420-     doserr3:	asciz "Path not found",13,10
  1992 00003326 666F756E640D0A00   
  1993 0000332E 416363657373206465-     doserr5:	asciz "Access denied",13,10
  1993 00003337 6E6965640D0A00     
  1994 0000333E 496E73756666696369-     doserr8:	asciz "Insufficient memory",13,10
  1994 00003347 656E74206D656D6F72-
  1994 00003350 790D0A00           
  1995 00003354 496E76616C69642066-     doserr11:	asciz "Invalid format",13,10
  1995 0000335D 6F726D61740D0A00   
  1996                                  %endif
  1997                                  
  1998                                  %if _EMS
  1999                                   %define dw_emserr dw
  2000                                   %include "xxmsg.asm"
  2001                                  %endif
  2002                                  
  2003 00003365 00<rep 3h>              		align 4, db 0
  2004                                  flagbits:
  2005 00003368 000800040002800040-     .:		dw 800h,400h,200h, 80h,040h,010h,004h,001h
  2005 00003371 00100004000100     
  2006                                  .amount: equ ($ - .) / 2
  2007 00003378 4F56444E45494E475A-     flagson:	dw "OV","DN","EI","NG","ZR","AC","PE","CY"
  2007 00003381 52414350454359     
  2008 00003388 4E5655504449504C4E-     flagsoff:	dw "NV","UP","DI","PL","NZ","NA","PO","NC"
  2008 00003391 5A4E41504F4E43     
  2009 00003398 4F464446494653465A-     flagnames:	dw "OF","DF","IF","SF","ZF","AF","PF","CF"
  2009 000033A1 46414650464346     
  2010                                  %if _REGSREADABLEFLAGS
  2011 000033A8 4F314431493153315A-     flagson_style23:dw "O1","D1","I1","S1","Z1","A1","P1","C1"
  2011 000033B1 31413150314331     
  2012 000033B8 4F304430493053305A-     flagsoff_style2:dw "O0","D0","I0","S0","Z0","A0","P0","C0"
  2012 000033C1 30413050304330     
  2013 000033C8 4F5F445F495F535F5A-     flagsoff_style3:dw "O_","D_","I_","S_","Z_","A_","P_","C_"
  2013 000033D1 5F415F505F435F     
  2014                                  %endif
  2015                                  %if _40COLUMNS
  2016                                  flagbits_for_40: equ 1____0____0____1____1____0____0____1b
  2017                                  flagbits_for_80: equ 1____1____1____1____1____1____1____1b
  2018                                  flagbits_for_shl: equ 16 - flagbits.amount
  2019                                  
  2020                                  		align 2, db 0
  2021                                  shortflagbits:
  2022 000033D8 00040002                .:		dw 400h, 200h
  2023                                  .amount: equ ($ - .) / 2
  2024 000033DC 44204520                shortflagson:	dw "D ", "E "
  2025 000033E0 55204420                shortflagsoff:	dw "U ", "D "
  2026                                  %endif
  2027                                  
  2028                                  		align 4, db 0
  2029                                  table_length_keywords:
  2030 000033E4 1E00[820F]              	dw 30, msg.gib
  2031 000033E8 1400[860F]              	dw 20, msg.mib
  2032 000033EC 0A00[8A0F]              	dw 10, msg.kib
  2033 000033F0 0900[8E0F]              	dw 9, msg.pages
  2034 000033F4 0400[940F]              	dw 4, msg.paragraphs
  2035 000033F8 0400[9F0F]              	dw 4, msg.paras
  2036 000033FC 0300[A50F]              	dw 3, msg.qwords
  2037 00003400 0200[AC0F]              	dw 2, msg.dwords
  2038 00003404 0100[AD0F]              	dw 1, msg.words
  2039 00003408 0000[B30F]              	dw 0, msg.bytes		; end of table, shift count zero
  2040                                  
  2041 0000340C 01                      flagvaron:	db 1
  2042 0000340D 00                      flagvaroff:	db 0		; must be directly behind flagvaron
  2043                                  
  2044                                  %if _COND
  2045 0000340E 6E6F7420                msg.condnotjump:db "not "
  2046 00003412 6A756D70696E6700        msg.condjump:	asciz "jumping"
  2047                                  %endif
  2048                                  
  2049 0000341A 206D6174636865730D-     msg.matches:	asciz " matches",13,10
  2049 00003423 0A00               
  2050                                  
  2051 00003425 00<rep 3h>              		align 4, db 0
  2052 00003428 414C4148424C424843-     reg8names:	dw "AL","AH","BL","BH","CL","CH","DL","DH"
  2052 00003431 4C4348444C4448     
  2053                                  ; Even entries are xL registers, odd ones the xH ones.
  2054                                  ; Order matches that of the first four regs entries.
  2055                                  
  2056 00003438 415842584358445853-     reg16names:	dw "AX","BX","CX","DX","SP","BP","SI","DI"
  2056 00003441 50425053494449     
  2057 00003448 445345535353435346-     		dw "DS","ES","SS","CS","FS","GS","IP","FL"
  2057 00003451 5347534950464C     
  2058                                  ; 32-bit registers are the first eight and last two entries of
  2059                                  ;  reg16names with 'E', which are all non-segment registers.
  2060                                  ; Segment registers can be detected by the 'S' as second letter.
  2061                                  ; FS and GS are the fourth- and third-to-last entries.
  2062                                  ; Order matches that of the sixteen regs entries.
  2063                                  
  2064                                  %if _LOADER
  2065                                  ; struc MOVETABLEENTRY moved to debug.mac
  2066                                  
  2067                                  	align 2, db 0
  2068                                  movetable:			; used both as a table and as an array
  2069                                  .bottom:
  2070                                  	dw msg.bottom
  2071                                  	dw 0
  2072                                  	dw msg.isbottom
  2073                                  	dw moveloader.already
  2074                                  	dw moveloader.top_to_bottom
  2075                                  	dw moveloader.hidden_to_bottom
  2076                                  
  2077                                  	dw msg.top
  2078                                  	dw 1
  2079                                  	dw msg.istop
  2080                                  	dw moveloader.bottom_to_top
  2081                                  	dw moveloader.already
  2082                                  	dw moveloader.hidden_to_top
  2083                                  
  2084                                  	dw msg.hidden
  2085                                  	dw 2
  2086                                  	dw msg.ishidden
  2087                                  	dw moveloader.bottom_to_hidden
  2088                                  	dw moveloader.top_to_hidden
  2089                                  	dw moveloader.already
  2090                                  
  2091                                  	dw 0
  2092                                  
  2093                                  	align 2, db 0
  2094                                  movesegrefstable:
  2095                                  	dw code_seg
  2096                                  %if _MESSAGESEGMENT
  2097                                  	dw messageseg
  2098                                  %endif
  2099                                  %if _EXTENSIONS
  2100                                  	dw extseg
  2101                                  %endif
  2102                                  %if _APP_ENV_SIZE || _DEV_ENV_SIZE || _BOOT_ENV_SIZE
  2103                                  	dw envseg
  2104                                  %endif
  2105                                  	dw alloc_seg
  2106                                  	dw auxbuff_segorsel
  2107                                  	dw pspdbg
  2108                                  %if _HISTORY && _HISTORY_SEPARATE_FIXED
  2109                                  	dw history.segorsel
  2110                                  %endif
  2111                                  %if _HELP_COMPRESSED && ! _PM && _MESSAGESEGMENT
  2112                                  	dw hshrink_memory_source.segment
  2113                                  %endif
  2114                                  	dw 0
  2115                                  %endif	; !_LOADER
  2116                                  
  2117                                  
  2118                                  		; Table of recognised default (unsigned) types.
  2119                                  		;
  2120                                  		; If any number of characters match, use the type.
  2121                                  		; If an additional "S" is found in front of a valid
  2122                                  		;  type, the type is set to signed. (Word and byte
  2123                                  		;  types are sign-extended to a dword value.)
  2124                                  		;
  2125                                  		; Each odd entry is an alternative name for the even
  2126                                  		;  entry preceding it.
  2127                                  types:
  2128 00003458 0442595445              	countedb "BYTE"		; ("B" is hexadecimal)
  2129 0000345D 0443484152              	countedb "CHAR"		; ("C" is hexadecimal, "CH" is a register)
  2130 00003462 04574F5244              	countedb "WORD"
  2131 00003467 0553484F5254            	countedb "SHORT"	; (signed "SS" is a register)
  2132 0000346D 053342595445            	countedb "3BYTE"	; ("3" and "3B" are numeric)
  2133 00003473 053342595445            	countedb "3BYTE"
  2134 00003479 0544574F5244            	countedb "DWORD"	; ("D" is hexadecimal)
  2135 0000347F 044C4F4E47              	countedb "LONG"
  2136                                  .addresses:
  2137 00003484 07504F494E544552        	countedb "POINTER"
  2138 0000348C 03505452                	countedb "PTR"
  2139 00003490 064F4646534554          	countedb "OFFSET"
  2140 00003497 034F4653                	countedb "OFS"
  2141 0000349B 075345474D454E54        	countedb "SEGMENT"
  2142                                  .end:
  2143                                  .addresses_minus_end equ (.addresses - .end) & 0FFFFh
  2144                                  
  2145                                  ;maxtypesize equ 7		; size of "SEGMENT" and "POINTER"
  2146                                  ; moved to debug.mac
