Class tz390


public class tz390 extends Object
tz390 is the shared table component of z390.
  • Field Details

    • version

      String version
      variable
    • dcb_id_ver

      String dcb_id_ver
      variable
    • acb_id_ver

      byte acb_id_ver
      variable
    • java_vendor

      String java_vendor
      variable
    • java_version

      String java_version
      variable
    • os_name

      String os_name
      variable
    • z390_os_type

      byte z390_os_type
      variable
    • z390_os_win

      byte z390_os_win
      variable
    • z390_os_linux

      byte z390_os_linux
      variable
    • z390_font

      String z390_font
      variable
    • timeout

      boolean timeout
      variable
    • z390_abort

      boolean z390_abort
      variable
    • tz390_recursive_abort

      boolean tz390_recursive_abort
      variable
    • invalid_options

      String invalid_options
      variable
    • opt_align

      boolean opt_align
      variable
    • opt_allow

      boolean opt_allow
      variable
    • opt_amode24

      boolean opt_amode24
      variable
    • opt_amode31

      boolean opt_amode31
      variable
    • opt_ascii

      boolean opt_ascii
      variable
    • opt_asm

      boolean opt_asm
      variable
    • opt_assist

      boolean opt_assist
      variable
    • opt_bal

      boolean opt_bal
      variable
    • opt_bs2000

      boolean opt_bs2000
      variable
    • opt_cics

      boolean opt_cics
      variable
    • opt_codepage

      boolean opt_codepage
      variable
    • opt_comment

      boolean opt_comment
      variable
    • opt_con

      boolean opt_con
      variable
    • force_nocon

      boolean force_nocon
      variable
    • opt_dump

      boolean opt_dump
      variable
    • opt_edf

      boolean opt_edf
      variable
    • opt_epilog

      boolean opt_epilog
      variable
    • opt_errsum

      boolean opt_errsum
      variable
    • opt_extend

      boolean opt_extend
      variable
    • opt_guam

      boolean opt_guam
      variable
    • opt_init

      boolean opt_init
      variable
    • codepage

      String codepage
      variable
    • opt_float

      String opt_float
      variable
    • opt_ipl

      String opt_ipl
      variable
    • opt_install_loc

      String opt_install_loc
      variable
    • opt_list

      boolean opt_list
      variable
    • opt_listcall

      boolean opt_listcall
      variable
    • opt_listuse

      boolean opt_listuse
      variable
    • opt_loadhigh

      boolean opt_loadhigh
      variable
    • opt_machine

      String opt_machine
      variable
    • opt_machine_optable

      String opt_machine_optable
      variable
    • opt_mcall

      boolean opt_mcall
      variable
    • opt_mod

      boolean opt_mod
      variable
    • opt_obj

      boolean opt_obj
      variable
    • opt_objhex

      boolean opt_objhex
      variable
    • opt_optable

      String opt_optable
      variable
    • opt_optable_list

      String opt_optable_list
      variable
    • opt_optable_optable

      String opt_optable_optable
      variable
    • opt_optable_optb_nr

      int opt_optable_optb_nr
      variable
    • opt_parm

      String opt_parm
      variable
    • opt_pc

      boolean opt_pc
      variable
    • opt_pcopt

      boolean opt_pcopt
      variable
    • opt_pdsmem8

      boolean opt_pdsmem8
      variable
    • opt_printall

      boolean opt_printall
      variable
    • opt_profile

      String opt_profile
      variable
    • opt_prolog

      boolean opt_prolog
      variable
    • opt_protect

      boolean opt_protect
      variable
    • opt_r64

      boolean opt_r64
      variable
    • opt_reformat

      boolean opt_reformat
      variable
    • opt_regs

      boolean opt_regs
      variable
    • opt_rmode24

      boolean opt_rmode24
      variable
    • opt_rmode31

      boolean opt_rmode31
      variable
    • opt_stats

      boolean opt_stats
      variable
    • opt_sysparm

      String opt_sysparm
      variable
    • opt_test

      boolean opt_test
      variable
    • opt_thread

      boolean opt_thread
      variable
    • opt_time

      boolean opt_time
      variable
    • opt_timing

      boolean opt_timing
      variable
    • opt_trace

      boolean opt_trace
      variable
    • opt_tracea

      boolean opt_tracea
      variable
    • opt_traceall

      boolean opt_traceall
      variable
    • opt_tracec

      boolean opt_tracec
      variable
    • opt_traceg

      boolean opt_traceg
      variable
    • opt_tracei

      boolean opt_tracei
      variable
    • opt_tracel

      boolean opt_tracel
      variable
    • opt_tracem

      boolean opt_tracem
      variable
    • opt_tracep

      boolean opt_tracep
      variable
    • opt_traceq

      boolean opt_traceq
      variable
    • opt_traces

      boolean opt_traces
      variable
    • opt_tracet

      boolean opt_tracet
      variable
    • opt_tracev

      boolean opt_tracev
      variable
    • opt_trap

      boolean opt_trap
      variable
    • opt_trunc

      boolean opt_trunc
      variable
    • opt_ts

      boolean opt_ts
      variable
    • opt_vcb

      boolean opt_vcb
      variable
    • opt_vector

      boolean opt_vector
      variable
    • opt_vsectsize

      int opt_vsectsize
      variable
    • opt_vpartsums

      int opt_vpartsums
      variable
    • opt_warn

      boolean opt_warn
      variable
    • opt_writenonprintable

      boolean opt_writenonprintable
      variable
    • opt_xref

      boolean opt_xref
      variable
    • opt_zstrmac

      boolean opt_zstrmac
      variable
    • opt_zvsam

      int opt_zvsam
      variable
    • max_cmd_queue_exceeded

      boolean max_cmd_queue_exceeded
      variable
    • cmd_parms

      String cmd_parms
      variable
    • cmd_parms_len

      int cmd_parms_len
      variable
    • max_cmd_parms_line

      int max_cmd_parms_line
      variable
    • test_ddname

      String test_ddname
      variable
    • z390_amode31

      char z390_amode31
      variable
    • z390_rmode31

      char z390_rmode31
      variable
    • opt_chkmac

      int opt_chkmac
      variable
    • opt_chksrc

      int opt_chksrc
      variable
    • opt_maxcall

      int opt_maxcall
      variable
    • opt_maxdisplay

      int opt_maxdisplay
      variable
    • opt_maxesd

      int opt_maxesd
      variable
    • opt_maxfile

      int opt_maxfile
      variable
    • opt_maxgbl

      int opt_maxgbl
      variable
    • opt_maxlcl

      int opt_maxlcl
      variable
    • opt_maxline

      int opt_maxline
      variable
    • opt_maxlog

      int opt_maxlog
      variable
    • opt_maxparm

      int opt_maxparm
      variable
    • opt_maxpass

      int opt_maxpass
      variable
    • opt_maxpc

      int opt_maxpc
      variable
    • opt_maxque

      int opt_maxque
      variable
    • opt_maxrld

      int opt_maxrld
      variable
    • opt_maxsym

      int opt_maxsym
      variable
    • opt_mnote

      int opt_mnote
      variable
    • z390_acrobat

      String z390_acrobat
      variable
    • z390_browser

      String z390_browser
      variable
    • z390_command

      String z390_command
      variable
    • z390_procdir

      String z390_procdir
      variable
    • z390_editor

      String z390_editor
      variable
    • max_mnote_warning

      int max_mnote_warning
      variable
    • max_errors

      int max_errors
      variable
    • max_main_width

      int max_main_width
      variable
    • max_main_height

      int max_main_height
      variable
    • min_main_width

      int min_main_width
      variable
    • min_main_height

      int min_main_height
      variable
    • max_line_len

      int max_line_len
      variable
    • max_file_size

      long max_file_size
      variable
    • max_rba_size

      int max_rba_size
      variable
    • max_time_seconds

      long max_time_seconds
      variable
    • monitor_wait

      int monitor_wait
      variable
    • max_mem

      int max_mem
      variable
    • trace_options

      String trace_options
      variable
    • sdf_MMddyy

      SimpleDateFormat sdf_MMddyy
      variable
    • sdf_HHmmss

      SimpleDateFormat sdf_HHmmss
      variable
    • pgm_name

      String pgm_name
      variable
    • pgm_type

      String pgm_type
      variable
    • file_dir

      String file_dir
      variable
    • file_type

      String file_type
      variable
    • ada_type

      String ada_type
      variable
    • bal_type

      String bal_type
      variable
    • cpy_type

      String cpy_type
      variable
    • dat_type

      String dat_type
      variable
    • err_type

      String err_type
      variable
    • log_type

      String log_type
      variable
    • lkd_type

      String lkd_type
      variable
    • lst_type

      String lst_type
      variable
    • lkd_ignore

      Boolean lkd_ignore
      variable
    • mac_type

      String mac_type
      variable
    • mlc_type

      String mlc_type
      variable
    • mod_type

      String mod_type
      variable
    • obj_type

      String obj_type
      variable
    • opt_type

      String opt_type
      variable
    • pch_type

      String pch_type
      variable
    • prn_type

      String prn_type
      variable
    • sta_type

      String sta_type
      variable
    • tra_type

      String tra_type
      variable
    • tre_type

      String tre_type
      variable
    • trl_type

      String trl_type
      variable
    • trm_type

      String trm_type
      variable
    • z390_type

      String z390_type
      variable
    • dir_390

      String dir_390
      variable
    • dir_bal

      String dir_bal
      variable
    • dir_cpy

      String dir_cpy
      variable
    • dir_cur

      String dir_cur
      variable
    • dir_dat

      String dir_dat
      variable
    • dir_err

      String dir_err
      variable
    • dir_log

      String dir_log
      variable
    • dir_lst

      String dir_lst
      variable
    • dir_mac

      String dir_mac
      variable
    • dir_mlc

      String dir_mlc
      variable
    • dir_pch

      String dir_pch
      variable
    • dir_pgm

      String dir_pgm
      variable
    • dir_prn

      String dir_prn
      variable
    • dir_obj

      String dir_obj
      variable
    • dir_opt

      String dir_opt
      variable
    • dir_trc

      String dir_trc
      variable
    • max_opsyn

      int max_opsyn
      variable
    • tot_opsyn

      int tot_opsyn
      variable
    • opsyn_index

      int opsyn_index
      variable
    • opsyn_new_name

      String[] opsyn_new_name
      variable
    • opsyn_old_name

      String[] opsyn_old_name
      variable
    • cur_bal_line_num

      int cur_bal_line_num
      variable
    • prev_bal_cont_lines

      int prev_bal_cont_lines
      variable
    • bal_ictl_start

      int bal_ictl_start
      variable
    • bal_ictl_end

      int bal_ictl_end
      variable
    • bal_ictl_cont

      int bal_ictl_cont
      variable
    • bal_ictl_cont_tot

      int bal_ictl_cont_tot
      variable
    • systerm_start

      long systerm_start
      variable
    • systerm_sec

      String systerm_sec
      variable
    • systerm_mem

      String systerm_mem
      variable
    • systerm_file_name

      String systerm_file_name
      variable
    • systerm_file

      RandomAccessFile systerm_file
      variable
    • systerm_prefix

      String systerm_prefix
      variable
    • systerm_io

      int systerm_io
      variable
    • systerm_ins

      long systerm_ins
      variable
    • started_msg

      String started_msg
      variable
    • ended_msg

      String ended_msg
      variable
    • stats_file_name

      String stats_file_name
      variable
    • stats_file

      RandomAccessFile stats_file
      variable
    • log_file_name

      String log_file_name
      variable
    • trace_file_name

      String trace_file_name
      variable
    • trace_file

      File trace_file
      variable
    • trace_file_buff

      BufferedWriter trace_file_buff
      variable
    • tot_log_msg

      int tot_log_msg
      variable
    • tot_log_text

      int tot_log_text
      variable
    • log_text_added

      boolean log_text_added
      variable
    • ts_nano_start

      long ts_nano_start
      variable
    • ts_nano_now

      long ts_nano_now
      variable
    • ts_mic_start

      long ts_mic_start
      variable
    • ts_mic_dif

      long ts_mic_dif
      variable
    • ts_mic_now

      long ts_mic_now
      variable
    • ts_nano_digits

      String ts_nano_digits
      variable
    • find_non_space_pattern

      Pattern find_non_space_pattern
      variable
    • find_bslash

      Pattern find_bslash
      variable
    • match_bslash

      Matcher match_bslash
      variable
    • find_slash

      Pattern find_slash
      variable
    • match_slash

      Matcher match_slash
      variable
    • find_dash

      Pattern find_dash
      variable
    • match_dash

      Matcher match_dash
      variable
    • find_squote

      Pattern find_squote
      variable
    • match_squote

      Matcher match_squote
      variable
    • find_dsquote

      Pattern find_dsquote
      variable
    • match_dsquote

      Matcher match_dsquote
      variable
    • find_dquote

      Pattern find_dquote
      variable
    • match_dquote

      Matcher match_dquote
      variable
    • find_ddquote

      Pattern find_ddquote
      variable
    • match_ddquote

      Matcher match_ddquote
      variable
    • find_amp

      Pattern find_amp
      variable
    • match_amp

      Matcher match_amp
      variable
    • find_damp

      Pattern find_damp
      variable
    • match_damp

      Matcher match_damp
      variable
    • find_parm_match

      Matcher find_parm_match
      variable
    • parm_pattern

      Pattern parm_pattern
      variable
    • parm_match

      Matcher parm_match
      variable
    • split_first

      boolean split_first
      variable
    • split_cont

      boolean split_cont
      variable
    • split_comment

      boolean split_comment
      variable
    • exec_line

      boolean exec_line
      variable
    • split_label

      String split_label
      variable
    • split_op

      String split_op
      variable
    • split_op_index

      int split_op_index
      variable
    • split_op_type

      int split_op_type
      variable
    • split_parms

      String split_parms
      variable
    • split_parms_index

      int split_parms_index
      variable
    • split_level

      int split_level
      variable
    • split_quote_text

      String split_quote_text
      variable
    • split_quote

      boolean split_quote
      variable
    • split_quote_last

      boolean split_quote_last
      variable
    • pad_spaces_len

      int pad_spaces_len
      variable
    • pad_spaces

      char[] pad_spaces
      variable
    • dup_char_len

      int dup_char_len
      variable
    • dup_char

      char[] dup_char
      variable
    • ascii_min_char

      String ascii_min_char
      variable
    • newline

      String newline
      variable
    • alarm_bell

      char alarm_bell
      variable
    • sdt_char_int

      int sdt_char_int
      variable
    • ascii_table

      String ascii_table
      variable
    • ascii_dump_table

      String ascii_dump_table
      variable
    • ebcdic_table

      String ebcdic_table
      variable
    • ebcdic_dump_table

      String ebcdic_dump_table
      variable
    • ascii_to_ebcdic

      byte[] ascii_to_ebcdic
      variable
    • ascii_to_ebcdic_hex

      String ascii_to_ebcdic_hex
      variable
    • ebcdic_to_ascii

      byte[] ebcdic_to_ascii
      variable
    • ebcdic_to_ascii_hex

      String ebcdic_to_ascii_hex
      variable
    • prtAscii

      String prtAscii
      Printable ASCII table and printable EBCIC table; for SNAP/dump output
    • prtEbcdic

      String prtEbcdic
      IBM1947 and IBM037 common values; omit cent sign, caret, and not sign
    • default_charset_name

      String default_charset_name
      variable
    • ascii_charset_name

      String ascii_charset_name
      variable
    • ebcdic_charset_name

      String ebcdic_charset_name
      variable
    • list_charset_map

      boolean list_charset_map
      variable
    • test_ascii

      String test_ascii
      variable
    • test_ebcdic

      String test_ebcdic
      variable
    • test_char

      char test_char
      variable
    • init_charset_bytes

      byte[] init_charset_bytes
      variable
    • fp_type

      byte fp_type
      variable
    • fp_db_type

      byte fp_db_type
      variable
    • fp_dd_type

      byte fp_dd_type
      variable
    • fp_dh_type

      byte fp_dh_type
      variable
    • fp_eb_type

      byte fp_eb_type
      variable
    • fp_ed_type

      byte fp_ed_type
      variable
    • fp_eh_type

      byte fp_eh_type
      variable
    • fp_lb_type

      byte fp_lb_type
      variable
    • fp_ld_type

      byte fp_ld_type
      variable
    • fp_lh_type

      byte fp_lh_type
      variable
    • fp_lq_type

      byte fp_lq_type
      variable
    • fp_db_digits

      byte fp_db_digits
      variable
    • fp_dd_digits

      byte fp_dd_digits
      variable
    • fp_dh_digits

      byte fp_dh_digits
      variable
    • fp_eb_digits

      byte fp_eb_digits
      variable
    • fp_ed_digits

      byte fp_ed_digits
      variable
    • fp_eh_digits

      byte fp_eh_digits
      variable
    • fp_lb_digits

      byte fp_lb_digits
      variable
    • fp_ld_digits

      byte fp_ld_digits
      variable
    • fp_lh_digits

      byte fp_lh_digits
      variable
    • fp_guard_digits

      byte fp_guard_digits
      variable
    • fp_work_reg_byte

      byte[] fp_work_reg_byte
      variable
    • fp_work_reg

      ByteBuffer fp_work_reg
      variable
    • fp_precision

      int[] fp_precision
      Note: The fp_precision big decimal precision array is used in both az390 and ez390. Should be maintained consistently as it is used for rounding during conversions between types.
    • fp_digits_max

      int[] fp_digits_max
      variable
    • fp_sign_bit

      int[] fp_sign_bit
      variable
    • fp_one_bit_adj

      int[] fp_one_bit_adj
      variable
    • fp_exp_bias

      int[] fp_exp_bias
      variable
    • fp_exp_max

      int[] fp_exp_max
      variable
    • fp_man_bits

      int[] fp_man_bits
      variable
    • fp_sign

      int fp_sign
      variable
    • fp_exp

      int fp_exp
      variable
    • dfp_digits

      String dfp_digits
      variable
    • dfp_dec_index

      int dfp_dec_index
      variable
    • dfp_exp_index

      int dfp_exp_index
      variable
    • dfp_exp

      int dfp_exp
      variable
    • dfp_scf

      int dfp_scf
      variable
    • dfp_preferred_exp

      int dfp_preferred_exp
      variable
    • dfp_work

      byte[] dfp_work
      variable
    • dfp_exp_bcd_to_cf5

      byte[] dfp_exp_bcd_to_cf5
      dfp_exp_bcd_to_cf5 returns CF5 5 bit combination field using index made up of high 2 bits of bias exponent plus 4 bit BCDnibble for first digit.
    • dfp_bcd_to_dpd

      int[] dfp_bcd_to_dpd
      dfp_bcd_to_dpd returns 10 bit densely packed decimal indexed by 3 digit value 0-999
    • dfp_cf5_to_exp2

      int[] dfp_cf5_to_exp2
      dfp_cf5_to_exp2 returns 2 high bits of biased exponent indexed by 5 bit combined field
    • dfp_cf5_to_bcd

      long[] dfp_cf5_to_bcd
      dfp_cf5_to_bcd returns decimal digit 0-9 indexed by 5 bit combination field value
    • dfp_dpd_to_bcd

      long[] dfp_dpd_to_bcd
      dfp_dpd_to_bcd returns 3 digit decimal value 0-999 using 10 bit densely packed decimal index value. Notes:
      1. Redundent values in (...)
      2. Java interprets leading 08 as octal number like 0x is hex so any leading 0's should be removed
    • optable_option_nr

      int[] optable_option_nr
      variable
    • optable_option_id

      String[] optable_option_id
      variable
    • optables_optable

      String[] optables_optable
      variable
    • optable_optable_equivalence

      static final String[] optable_optable_equivalence
      variable optable_optable_equivalence defines the primary optables and the secondaries. The secondaries are connected to a primary (which is named after the = sign. The primaries are defined by specifying the same identifier before and after the = sign. The numeric values used internally are defined in ArchLevel.java
    • machine_option_nr

      int[] machine_option_nr
      variable
    • machine_option_id

      String[] machine_option_id
      variable
    • machines_optable

      String[] machines_optable
      variable
    • machine_optable_equivalence

      static final String[] machine_optable_equivalence
      variable machine_optable_equivalence defines all allowable values for the MACHINE option and equates each MACHINE option to its equivalent primary OPTABLE option. The equivalence defintions use the logical names, as defined in optable_optable_equivalence. The internal optable codes are restricted to the ArchLevel.java module.
    • op_type_name

      String[] op_type_name
      variable
    • op_type_len

      int[] op_type_len
      variable
    • op_type_src_format

      String[] op_type_src_format
      variable
    • op_type_obj_format

      String[] op_type_obj_format
      variable
    • op_name

      String[] op_name
      variable
    • op_type_oattribute

      String[] op_type_oattribute
      variable
    • max_op_type_offset

      int max_op_type_offset
      variable
    • max_ins_type

      static final int max_ins_type
      variable
      See Also:
    • max_asm_type

      static final int max_asm_type
      variable
      See Also:
    • max_mac_type

      static final int max_mac_type
      variable
      See Also:
    • op_type

      int[] op_type
      variable
    • op_code_index

      int op_code_index
      variable
    • op_code

      String[] op_code
      variable
    • op_code_count

      int op_code_count
      variable
    • op_directives_count

      int op_directives_count
      variable
    • op_trace_type

      int[] op_trace_type
      variable
    • opcode_formats

      static final String[] opcode_formats
      The opcode_formats table defines all opcode formats and their lengths. The format of the definitions is as follows:
      formatname[$variant],length:operand_list[,object_format]
      • formatname can be suffixed with a $-sign followed by an internal identifier to differentiate between variants
      • length is the length of the instruction in bytes
      • operand_list is the list of operands as listed in the overview of supported opcodes
      • instruction_format is a representation of the format of the object code
    • op_table_start

      static final String[] op_table_start
      Table with initial opcode - valid for all optables
    • op_table_360_20

      static final String[] op_table_360_20
      table op_table_360_20 has the instructions that are supported for both DOS and the S360/20 as defined in publication A26-5847-3 IBM System 360 Model 20 Functional Characteristics and in publication A22-6821-7 IBM System 360 Principles of Operation
    • op_table_360_20_only

      static final String[] op_table_360_20_only
      table op_table_360_20_only defines five instructions unique to the S360/20 and two that share syntax (but not semantics) with 370 The difference in semantics make for their definition here, which is okay since S360/20 and 370 cannot be combined.
    • op_table_360_20_directives

      static final String[] op_table_360_20_directives
      table op_table_360_20_directives has the directives that are supported for both DOS and the S360/20
      Incompatibilites:
      1. GBLx/LCLx not supported for S360/20: difference is encoded in variable names! see S360/20 docs
      2. Syntax may be shared between optable(DOS) and optable(360-20) but semantics may differ. We implement semantics for DOS even when optable(360-20) or machine(S360-20) is specified
    • op_table_360_20_only_directives

      static final String[] op_table_360_20_only_directives
      table op_table_360_20_only_directives defines two directives unique to the S360/20
      Incompatibilites:
      1. DCCW aligns on halfword, but we align on Fullword
      2. XFR is not the same as ENTRY, yet we process it as such
    • op_table_DOS

      static final String[] op_table_DOS
      op_table_DOS contains the instructions NOT shared with S360/20. as defined in publication A26-5847-3 IBM System 360 Model 20 Functional Characteristics and in publication A22-6821-7 IBM System 360 Principles of Operation
    • op_table_DOS_370

      static final String[] op_table_DOS_370
      op_table_DOS_370 contains the instructions valid from S360-S370 as defined in publication GA22-7000-4 IBM System 370 Principles of Operation
    • op_table_DOS_directives

      static final String[] op_table_DOS_directives
      op_table_DOS_directives contains the directives NOT shared with S360/20
    • op_table_vector

      static final String[] op_table_vector
      op_table_vector contains the instructions for the old vector facility as defined in publication SA22-7125-3 ESA370 Vector Operations and in publication SA22-7207-00 ESA390 Vector Operations
      The (optional) vector facility was available in addition to the 370 and 390 architectures In z390 the old vector facility can be used with z/Architecture opcode tables up to SA22-7832-09 zArchitecture Principles of Operation (aka z12)
      With the z13 SA22-7832-10 zArchitecture Principles of Operation the new vector facility was introduced and the old vector facility could not be carried forward anymore
    • op_table_370

      static final String[] op_table_370
      op_table_370 contains the instructions valid from S370 as defined in publication GA22-7000-4 IBM System 370 Principles of Operation
    • op_table_370_only

      static final String[] op_table_370_only
      Instruction definitions for optable 370 only
    • op_table_370_directives

      static final String[] op_table_370_directives
      Directives valid from optable 370
    • op_table_XA

      static final String[] op_table_XA
      op_table_XA contains the instructions valid from S370-XA as defined in publication (IBM publication code unknown)
    • op_table_ESA

      static final String[] op_table_ESA
      op_table_ESA contains the instructions valid from S390 as defined in publication SA22-7201-08 ESA390 Principles of Operation
    • op_table_ESA_only

      static final String[] op_table_ESA_only
      Opcodes valid for ESA only
    • op_table_ESA_allow

      static final String[] op_table_ESA_allow
      Instructions PGIN and PGOUT were introduced with the ESA architecture. But HLASM has never supported these instructions See Jonathan Scott's contribution to the ASSEMBLER-LIST 2024-04-06 z390 supports assembly (but not execution) of these instructions in allow mode only.
    • op_table_ZOP

      static final String[] op_table_ZOP
      op_table_ZOP contains the instructions valid from z Architecture as defined in publication SA22-7832-00 zArchitecture Principles of Operation and publication SA22-7832-01 zArchitecture Principles of Operation
    • op_table_YOP

      static final String[] op_table_YOP
      op_table_YOP contains the instructions valid from z Architecture as defined in publication SA22-7832-02 zArchitecture Principles of Operation and publication SA22-7832-03 zArchitecture Principles of Operation
    • op_table_YOP_Z16

      static final String[] op_table_YOP_Z16
      Opcode definitions valid for YOP thru Z16; with the advent of z17 the definitions changed
    • op_table_Z9

      static final String[] op_table_Z9
      op_table_Z9 contains the instructions valid from z Architecture as defined in publication SA22-7832-04 zArchitecture Principles of Operation and publication SA22-7832-05 zArchitecture Principles of Operation
    • op_table_Z10

      static final String[] op_table_Z10
      op_table_Z10 contains the instructions valid from z Architecture as defined in publication SA22-7832-06 zArchitecture Principles of Operation and publication SA22-7832-07 zArchitecture Principles of Operation
    • op_table_Z11

      static final String[] op_table_Z11
      op_table_Z11 contains the instructions valid from z Architecture as defined in publication SA22-7832-08 zArchitecture Principles of Operation
    • op_table_Z11_Z12

      static final String[] op_table_Z11_Z12
      Opcode definitions valid for ZS5 and ZS6. ZS7 ff have a broader definition.
    • op_table_Z12

      static final String[] op_table_Z12
      op_table_Z12 contains the instructions valid from z Architecture as defined in publication SA22-7832-09 zArchitecture Principles of Operation
    • op_table_Z13

      static final String[] op_table_Z13
      op_table_Z13 contains the instructions valid from z Architecture as defined in publication SA22-7832-10 zArchitecture Principles of Operation
    • op_table_Z14

      static final String[] op_table_Z14
      op_table_Z14 contains the instructions valid from z Architecture as defined in publication SA22-7832-11 zArchitecture Principles of Operation
    • op_table_Z14_only

      static final String[] op_table_Z14_only
      Opcode definitions for z14 only
    • op_table_Z14_Z16

      static final String[] op_table_Z14_Z16
      Opcode definition for z14 through z16
    • op_table_Z15

      static final String[] op_table_Z15
      op_table_Z15 contains the instructions valid from z Architecture as defined in publication SA22-7832-12 zArchitecture Principles of Operation
    • op_table_Z16

      static final String[] op_table_Z16
      op_table_Z16 contains the instructions valid from z Architecture as defined in publication SA22-7832-13 zArchitecture Principles of Operation
    • op_table_Z17

      static final String[] op_table_Z17
      op_table_Z17 contains the instructions valid from z Architecture as defined in publication SA22-7832-14 zArchitecture Principles of Operation
    • op_table_ASSIST

      static final String[] op_table_ASSIST
      Opcode defintitions for ASSIST extension
    • op_table_z390

      static final String[] op_table_z390
      Opcode defintitions for z390 extensions (not supported by HLASM)
    • op_table_DFLT_directives

      static final String[] op_table_DFLT_directives
      z390-specific assembler directive - not available with HLASM, and only with DFLT opcode table in z390
    • op_table_z390_directives

      static final String[] op_table_z390_directives
      z390-specific assembler directive - not available with HLASM
    • opcode_masks

      static final String[] opcode_masks
      opcode masks - the full set
    • opcode_masks_short

      static final String[] opcode_masks_short
      opcode masks - the short set for instructions that do not support the full set
    • mask_opcode

      String[] mask_opcode
      variable
    • mask_mnemonic

      String[] mask_mnemonic
      variable
    • last_key_op

      int last_key_op
      variable
    • key_not_found

      int key_not_found
      variable
    • key_found

      int key_found
      variable
    • max_key_root

      int max_key_root
      variable
    • max_key_tab

      int max_key_tab
      variable
    • tot_key_tab

      int tot_key_tab
      variable
    • tot_key

      int tot_key
      variable
    • key_type

      char key_type
      variable
    • key_text

      String key_text
      variable
    • key_index

      int key_index
      variable
    • key_index_last

      int key_index_last
      variable
    • key_hash

      int key_hash
      variable
    • tot_key_comp

      int tot_key_comp
      variable
    • avg_key_comp

      int avg_key_comp
      variable
    • cur_key_comp

      int cur_key_comp
      variable
    • max_key_comp

      int max_key_comp
      variable
    • key_tab_type

      char[] key_tab_type
      variable
    • key_tab_key

      String[] key_tab_key
      variable
    • key_tab_hash

      int[] key_tab_hash
      variable
    • key_tab_index

      int[] key_tab_index
      variable
    • key_tab_low

      int[] key_tab_low
      variable
    • key_tab_high

      int[] key_tab_high
      variable
    • optfilenames

      HashMap<String,String> optfilenames
      variable
    • prevoptfilename

      String prevoptfilename
      variable
  • Constructor Details

    • tz390

      public tz390()
      Dummy constructor - no initialization needed
  • Method Details

    • init_tz390

      public void init_tz390()
      initialize shared data and tables
    • init_option_tables

      public void init_option_tables()
      Valid options for MACHINE and OPTABLE are stored as id=value pairs This routine sets up the translation tables we need
    • create_opcodes

      public void create_opcodes()
       Create_opcodes builds the following arrays to define opcode formats:
       op_type_name
       op_type_len
       op_type_src_format
       op_type_obj_format
       Create_opcodes builds the following arrays to define valid opcodes:
       - op_name
       - op_code
       - op_type
       - op_trace_type
       The content of the arrays is determined by the assembler options OPTABLE/MACHINE
       
    • process_opcodes

      public void process_opcodes(String[] op_tables)
      process a single table of opcode definitions
      Parameters:
      op_tables - [] a single table of opcode definitions
    • init_opcodes

      private void init_opcodes()
      init opcodes
    • init_pat

      private void init_pat()
      init patterns for use by opcode and options routines
    • init_os_type

      private void init_os_type()
      init os type
    • init_os_util

      private void init_os_util()
      init os dependant utilities
    • init_options

      public void init_options(String[] args, String pgm_type)
      parse and set options

      Notes:

      1. These use () vs = because bat removes =
        • syslog(ddname)
        • sys390(ddname)
        • systerm(filename)
        • test(ddname)
        • time(seconds)
      2. Add options check for consistency
        • NOASM - requires chkmac(0) - RPI 1053
      Parameters:
      args - - argument string
      pgm_type - - type of program
    • check_options

      private void check_options()
      check options for consistency
    • process_option

      private void process_option(String opt_file_name, int opt_file_line, String token)
      process option from command line or from @file optionsfile line.
      Parameters:
      opt_file_name - - String - name of options file
      opt_file_line - - int - line nr within options file
      token - - String
    • set_trace_options

      public void set_trace_options(String trace_options)
      set trace options (called by init and by mz390 when SYSTRACE is updated.
      Parameters:
      trace_options - - trace options
    • add_invalid_option

      private void add_invalid_option(String opt_file_name, int opt_file_line, String option)
      collect invalid options for single error
      Parameters:
      opt_file_name - - String name of options file
      opt_file_line - - int - nr of line in error
      option - - String - option having an error
    • process_options_file

      private void process_options_file(String file_name, boolean required)
      process option file as follows:
      1. Default suffix .OPT
      2. Uses SYSOPT path which defaults to program path
      3. Comments starting with * to end of line
      4. @file option can be nested.
      Parameters:
      file_name - - String - name of the file to process
      required - - boolean
    • open_systerm

      public void open_systerm(String z390_pgm)
      open systerm file and sta statistics file positions to add to end of existing files.
      Parameters:
      z390_pgm - - program name (used to determine default output file names)
    • put_systerm

      public void put_systerm(String msg)
      log error to systerm file
      Parameters:
      msg - - message text
    • put_stat_line

      public void put_stat_line(String msg)
      mod stat record on stats.sta file
      Parameters:
      msg - - message text
    • close_systerm

      public void close_systerm(int rc)
      close systerm error file if open
      Parameters:
      rc - - return code
    • set_ended_msg

      public void set_ended_msg(int rc)
      set ended_msg for use by mz390, az390, lz390, and ez390.
      Parameters:
      rc - - return code
    • close_trace_file

      public void close_trace_file()
      close trace file if open RPI 484
    • get_mem_usage

      public int get_mem_usage()
      return max memory usage by J2SE in MB
      Returns:
      integer
    • get_short_file_name

      private String get_short_file_name(String file_name)
      return shortest file name possible with quotes if LSN
      Parameters:
      file_name - - name of the file
      Returns:
      file_name - short name of the file
    • abort_error

      public void abort_error(int error, String msg)
      display options error on system out and exit with rc 16.
      Parameters:
      error - - error code
      msg - - message text
    • init_ascii_ebcdic

      private void init_ascii_ebcdic()
      init ascii/ebcdic conversion tables
    • find_key_index

      public int find_key_index(char user_key_type, String user_key)
      return user_key_index for user_key else -1 and set following for possible add_key_index:
      1. key_text = user_key
      2. key_hash = hash code for key
      3. key_index_last = last search entry
      Notes:
      1. Usage by mz390
        1. "A:" - ago gbla table pointer
        2. "C:" - copy file found RPI 970
        3. "F:" - macro and copybook files
        4. "G:" - global set variables
        5. "M:" - loaded macros
        6. "O:" - opcode table (init_opcode_name_keys)
        7. "R:" - opcode and macro opsyn
        8. "S:" - ordinary symbols
        9. "X:" - executable macro command
        10. "Z:" - ZSTRMAC opcodes and apm names RPI 902
      2. Usage by az390
        1. "L:" - literals
        2. "O:" - opcode table (init_opcode_name_keys)
        3. "R:" - opcode opsyn
        4. "S:" - ordinary symbols
        5. "U:" - USING labels
        6. "V:" - extrn symbol
      3. Usage by lz390
        1. "G:" - global ESD's
      4. Usage by ez390
        1. "H:" - opcodes by hex key
        2. "H:BR:" - branch opocodes by hex key
        3. "O:" - opcodes by name (init_opcode_name_keys)
        4. "P:" - CDE program name lookup
        5. "R:" - OPSYN opcode/macro substitution
      5. See find_lcl_key_index in mz390 with local key types KBPL
      6. Optimize by using separate user_key_type char to avoid extra string concat and avoid string compare if not desired type. RPI 409 (all calls changed)
      Parameters:
      user_key_type - - type of item to search for
      user_key - - name or label of item to search for
      Returns:
      integer - index of item if found, -1 otherwise
    • add_key_index

      public boolean add_key_index(int user_index)
      add user_index entry based on key_text, key_hash, and key_index_last set by prior find_key_index
      Parameters:
      user_index - -
      Returns:
      boolean - true if success, false on failure
    • update_key_index

      public boolean update_key_index(int user_key)
      update previously found key index
      Parameters:
      user_key - -
      Returns:
      boolean -true if update okay, false if update not possible
    • get_file_name

      public String get_file_name(String file_dir, String file_name, String file_type)
      1. Strip quotes if found from path and file.
      2. Replace . and ..\ with current directory
      3. Check for overriding path in filename and ignore default path
      4. Check for overriding filename in path and ignore default filename
      5. Add directory, name, and/or type if not specified
      6. Replace \ with / if Linux
      Parameters:
      file_dir - - relative or absolute path
      file_name - - file name
      file_type - - file type
      Returns:
      string - complete path and file name
    • fix_file_separators

      public String fix_file_separators(String name)
      1. Replace \ with / if Linux else / with |
      2. Replace ..\ or ../ with parent path
      3. Remove embedded ./ or .\
      Parameters:
      name - - full path and file name
      Returns:
      string - corrected path and file name
    • find_file_name

      public String find_file_name(String parm_dir_list, String file_name, String file_type_def, String dir_cur)
      search for existing file in one or more dirs and return file name or null if not found

      Note:

      1. The separator for multiple files may be ; or + (plus sign) versus semi-colon is used in BAT parms to avoid conflict with Windows BAT parsing.
      2. If file_name has type, use it. else if directory path has *.type use the type instead of default file_type.
      Parameters:
      parm_dir_list - - list of paths
      file_name - - file name (may include file type)
      file_type_def - - default file type
      dir_cur - - current path
      Returns:
      string - path to file if found, null otherwise
    • exec_cmd

      public boolean exec_cmd(String cmd)
      exec command as separate task
      Parameters:
      cmd - - command string to be executed
      Returns:
      boolean - true if command executed successfully, false otherwise
    • init_opcode_name_keys

      public boolean init_opcode_name_keys()
      add all opcodes to key index table
      Returns:
      boolean - true if method executed successfully, false otherwise
    • set_pgm_dir_name_type

      public boolean set_pgm_dir_name_type(String file_name, String file_type)
      set pgm_dir, pgm_name, pgm_type from parm

      Notes:

      1. Only allow file type override for MLC.
      2. Set lkd_ignore true if explicit .OBJ found RPI 735
      Parameters:
      file_name - - file name
      file_type - - file type
      Returns:
      boolean
    • reset_opsyn

      public void reset_opsyn()
      reset op_code key table indexes changed by opsyn during previous pass if any.
    • update_opsyn

      public boolean update_opsyn(String new_name, String old_name)
      Update opsyn table as follows:
      1. Add new alias name for opcode
      2. Add null entry to cancel opcode // RPI 306
      3. Restore opcode to previous alias and remove any cancel entry. // RPI 404
      Notes:
      1. Indexes pointing to new name entries in opsyn table are only added once.
      2. az390 uses reset_opsyn() to reset old = new for multiple passes so opcodes prior to first OPSYN statement will map to std. opcode. mz390 only makes one pass so its not an issue.
      Parameters:
      new_name - - new mnemonic
      old_name - - old mnemonic
      Returns:
      boolean - true if successful, false otherwise
    • get_hex

      public String get_hex(int work_int, int req_hex_digits)
      Format int into 1-16 hex digit string
      Parameters:
      work_int - - integer value to convert into hex
      req_hex_digits - - nr of hex digits to produce
      Returns:
      string - hex representation, or null of conversion failed
    • get_long_hex

      public String get_long_hex(long work_long, int req_hex_digits)
      Format long into 1-16 hex digit string
      Parameters:
      work_long - - integer value to convert into hex
      req_hex_digits - - nr of hex digits to produce
      Returns:
      string - hex representation, or null of conversion failed
    • get_sdt_char_int

      public boolean get_sdt_char_int(String sdt)
      set sdt_char_int to value of character string else false
      • C'....' EBCDIC/ASCII (rep ''|&& with'|&)
      • C"...." ASCII (rep ""|''|&& with "|'|&)
      • C!....! EBCDIC (rep !!|''|&& with !|'|&)
      • CA'...' ASCII
      • CE'...' EBCDIC
      Note: sdt = self-defining term
      Parameters:
      sdt - - self-defining term
      Returns:
      boolean - true if successful, false otherwise
    • verify_ascii_source

      public boolean verify_ascii_source(String temp_line)
      Verify ascii source code and length <= 80 if not * in col 1.
      Parameters:
      temp_line - - string to be validated
      Returns:
      boolean - true if input is a valid Ascii source line, false otherwise
    • left_justify

      public String left_justify(String text, int padded_len)
      return text left justified in field if field larger than text
      Parameters:
      text - - input text
      padded_len - - desired string length
      Returns:
      string - input string with appended blanks to fill up to requested length
    • pad_spaces

      public String pad_spaces(int n)
      return n space characters
      Parameters:
      n - - nr of spaces to return
      Returns:
      string - consisting of requested nr of spaces
    • right_justify

      public String right_justify(String text, int padded_len)
      return text right justified in field if field larger than text
      Parameters:
      text - - input text to be padded
      padded_len - - length of desired output string
      Returns:
      String - input text prefixed with blanks to right-align to requested length
    • init_pad_spaces

      private void init_pad_spaces(int new_pad_len)
      initialize new pad_spaces byte array used by left and right justify
      Parameters:
      new_pad_len - -
    • get_dup_string

      public String get_dup_string(String text, int dup_count)
      return string with text duplicated dup_count times
      Parameters:
      text - - input text to be duplicated
      dup_count - - nr of duplications to produce
      Returns:
      String - duplicated input text
    • trim_trailing_spaces

      public String trim_trailing_spaces(String line, int max_text)
      remove trailing spaces from non-continued source line
      Parameters:
      line - - input source line
      max_text - - max nr of chacters to be used
      Returns:
      String - usabel section of input with trailing spaces removed
    • trim_continue

      public String trim_continue(String line, boolean first_line, int ictl_end, int ictl_cont)
      Trim line to comma delimiter or end of line recognizing whether line is continuation of quoted string or not.

      Notes:

      1. Allow ", " to appear in quotes which may be split across lines.
      2. Allow spaces within (...) on macro statements but not opcodes
      3. Handle quoted string continued on one or more continuation lines. RPI 463.
      4. Remove leading spaces from continuations.
      Parameters:
      line - - source line
      first_line - - true if first line of statement
      ictl_end - - ICTL-defined end column
      ictl_cont - - ICTL-defined continue column
      Returns:
      String - modified source line
    • split_line

      public void split_line(String line)
      split line into 3 strings:
      1. split_label
      2. split_op
      3. split_parms
      using precompiled patterm RPI 313

      Note: fields are null if none

      Parameters:
      line - - input source line
    • get_first_dir

      public String get_first_dir(String dirs)
      return first directory in list
      Parameters:
      dirs - - list of directories
      Returns:
      String - first directry from the list
    • put_trace

      public void put_trace(String text)
      open trace file if trace options on for M, A, L, E
      Parameters:
      text - - message to be written to trace file
    • inc_cur_bal_line_num

      public void inc_cur_bal_line_num(String text_line)
      1. increment cur_bal_line_num by 1 plus previous continuations.
      2. Set number of continuation lines for next call.
      Parameters:
      text_line - - current surce statement ??
    • get_cur_bal_line_id

      public String get_cur_bal_line_id(int file_num, int file_line_num, int bal_line_num, boolean mac_gen, char line_type)
      return unique BAL line id consisting of: // RPI 549
      1. FID file id number (See list of files in stats at end of BAL)
      2. FLN file Line number within file
      3. GSN Generated statement number for BAL line
      4. Type code:
        1. ' ' main source code
        2. '+' generated macro code
        3. '=' included copybook code
      Notes:
      1. If FLN is 0 only GSN is returned for az standalone mode.
      2. If GSN is 0 only (FID/FLN) is returned for mz trace.
      Parameters:
      file_num - - file id (open sequence number)
      file_line_num - - line number within file
      bal_line_num - - assembler assigned line number
      mac_gen - - true if line was generted from a macro
      line_type - - line type
      Returns:
      String - string representation of complete line id
    • jar_file_dir

      public String jar_file_dir()
      Return the directory containing the jar file (Contributed by Martin Ward)
      Returns:
      String - path to executing jar file
    • fp_get_dfp_bin

      public boolean fp_get_dfp_bin(int dfp_type, BigDecimal dfp_bd)
      store binary DD,ED, or LD format in fp_work_reg. Return true if value within range.

      Notes:

      1. Set DFP exponent to explicit decimal point else preferred exponent is 0.
      Parameters:
      dfp_type - - type of decimal floating point data
      dfp_bd - - address of floating point field in base-displacement format
      Returns:
      Boolean - true if data within range, false otherwise
    • get_dfp_ccf_digits

      private long get_dfp_ccf_digits(int tot_digits, int digit_offset, int digit_count)
      return long with 1 to 6 DPD densly packed decimal triplets. Each triplet consists of 10 bits representing 3 decial digits
      Parameters:
      tot_digits - - int - not used (could be a bug, might coincide with dfp_digits??)
      digit_offset - - int - offset into source string of digits
      digit_count - - int - nr of digits to convert
      Returns:
      long - holding converted dfp value
    • get_timestamp

      public String get_timestamp()
      return current JDBC time stamp string with 9 digit fractional nanosecond forrmat: yyyy-mm-dd hh:mm:ss.nnnnnnnnn (29 characters)

      Note: only the first 3 millisecond digits are returned by current JDBC TimeStamp constructor so System.nanotime() method is used to add remaining 6 digits of nanosecond fraction.

      Returns:
      Timestamp - current timestamp
    • get_window_size

      public void get_window_size()
      set max_main_height and max_main_width
    • init_errsum

      public void init_errsum()
      turn on ERRSUM option either by user request or if missing COPY or MACRO error detected during pass 1 of az390. Notes:
      1. ASM required
      2. Any error limit can prevent finding all the missing copybooks and macros due to pre-mature abort on error limit. There may still be additional nesting missing macros and copybooks requiring multiple passes after including missing files listed.
    • ascii_printable_char

      public char ascii_printable_char(int mem_byte)
      return printable ascii char from byte RPI 947
      Parameters:
      mem_byte - - byte value to be converted
      Returns:
      char - ascii character representation for byte value
    • ascii_printable_string

      public String ascii_printable_string(String text)
      return printable ascii string from string that may have non-printable ascii codes RPI 938
      Parameters:
      text - - raw iput string
      Returns:
      String - printable ascii text
    • get_ascii_printable_string

      public String get_ascii_printable_string(byte[] byte_array, int addr, int len)
      return printable ascii string from byte array RPI 947
      Parameters:
      byte_array - - virtual memory byte array
      addr - - start address of string in byte array
      len - - length of string in byte array
      Returns:
      String - ascii representation of string from virtual memory
    • get_ascii_dump_printable_string

      public String get_ascii_dump_printable_string(byte[] byte_array, int addr, int len)
      Return printable ascii string from byte array.

      Restricted set of ascii characters used for "printable char" portion of dump output.

      Parameters:
      byte_array - virtual memory byte array
      addr - start address of string in byte array
      len - length of string
      Returns:
      printable ascii string string from byte array
    • get_ascii_var_string

      public String get_ascii_var_string(byte[] byte_array, int mem_addr, int max_len)
      return ascii variable length string delimited by null or double quotes which are stripped off along with leading or trailing spaces.
      Parameters:
      byte_array - - virtual memory byte array
      mem_addr - - start address of string in byte array
      max_len - - maximum length of sting
      Returns:
      String - ascii representation of string from virtual memory
    • log_text_append

      public void log_text_append(JTextArea log_text, String msg)
      append msg to visible log textarea and reduce size by 50% when it exceeds opt_maxlog byte limit.
      Parameters:
      log_text - - TextArea where message is to be displayed
      msg - - message to display
    • sleep_now

      public void sleep_now(long mills)
      sleep for 1 monitor wait interval
      Parameters:
      mills - - nr of milliseconds to wait
    • set_path_option

      private String set_path_option(String old_path, String new_path)
      if new path starts with +, concat with existing path else replace existing path option.
      Parameters:
      old_path - - String holding current path concatenation
      new_path - - String holding new path specification
      Returns:
      String - holding result path
    • put_stat_final_options

      public void put_stat_final_options()
      list final value of all changed options on stats file
    • add_final_opt

      private void add_final_opt(String token)
      add final option value to final_option formatted string.
      Parameters:
      token - - String holding option to be reported
    • abort_case

      public void abort_case()
      abort case with invalide index RPI 849 used by pz390, mz390
    • cur_date

      public String cur_date()
      return MM/DD/YY or constant if notiming
      Returns:
      String - current date, unless notiming is in effect
    • cur_time

      public String cur_time(boolean space_pad)
      return HH:MM:SS with or without space or 0 length string if notiming
      Parameters:
      space_pad - - whether or not to add a trailing space
      Returns:
      String - current time, unless notiming is in effect
    • init_codepage

      public void init_codepage(String codepage_parm)
      initialize ascii and ebcdic translate tables using specified Unicode codepages. If list is on display mapping between ascii Unicode table and the corresponding ascii and ebcdic byte values in hex and list available ascii and ebcdic charset codepages. If either of the names are not valid, a list of the current ascii default and all available Charset codepages will be listed. The two codepages will be verified to have the required minimum ebcdic code mapping for z390 assembler A-Z,a-z,0-9,@#$, blank, and &'()*+-./:=_. Any characters that have mapping // RPI 1529 will attempt to print otherwise they will appear as periods.
      Parameters:
      codepage_parm - - name of codepage
    • fixCharset

      private String fixCharset(String charset, String charsetName)
      Some Charsets have errors not fixed by Oracle. Fix them here.

      List of Charsets requiring changes.

      1. IBM037

      Parameters:
      charset - the 256 character string of characters that might need fixing
      charsetName - the name of the Charset
      Returns:
      the fixed 256 character string of characters; the original string if no fix is needed
    • getReaderForCharset

      public BufferedReader getReaderForCharset(File file, String charsetName) throws FileNotFoundException, UnsupportedEncodingException
      Gets a BufferedReader for a file using specified Charset name.

      No Charset is used if charsetName is null or the empty string.

      Parameters:
      file - existing File object
      charsetName - the name of the Charset to use. If null or empty string, no Charset is used.
      Returns:
      the BufferedReader
      Throws:
      FileNotFoundException - if file does not exist.
      UnsupportedEncodingException - if charsetName encoding is not supported
    • getReaderForDefaultCharset

      public BufferedReader getReaderForDefaultCharset(File file) throws Exception
      Gets a BufferedReader for a file using the default Charset name.
      The default Charset name is in variable ascii_charset_name. It is possible that the default Charset name is the empty string.
      Parameters:
      file - existing file object
      Returns:
      the BufferedReader
      Throws:
      Exception - if an error occurs creating the BufferedReader
      See Also:
    • getWriterForCharset

      public BufferedWriter getWriterForCharset(File file, String charsetName) throws FileNotFoundException, UnsupportedEncodingException, IOException
      Gets a BufferedWriter for a file using specified Charset name.
      No Charset is used if charsetName is null or the empty string.
      Parameters:
      file - existing File object for the BufferedWriter
      charsetName - the name of the Charset to use. If null or empty string, no Charset is used.
      Returns:
      the BufferedWriter
      Throws:
      IOException - (FileWriter) if file exists but is a directory; does not exist but cannot be created; or cannot be opened for any other reason
      FileNotFoundException - if file does not exist.
      UnsupportedEncodingException - if charsetName encoding is not supported.
    • getWriterForDefaultCharset

      public BufferedWriter getWriterForDefaultCharset(File file) throws Exception
      Gets a BufferedWriter for a file using the default Charset name.

      The default Charset name is in variable ascii_charset_name.

      Parameters:
      file - existing File object for the BUfferedWriter
      Returns:
      BufferedWriter handle
      Throws:
      Exception - if an error occurs creating the BufferedWriter
      See Also:
    • isPrintableChar

      private boolean isPrintableChar(char c, String charsetName)
      Determines whether a character is a printable character.
      Returns true if the character is printable and false if the character is non-printable. The determination is done using the Charset whose name is the charsetName argument. If charsetName is not one of the checked names, US-ASCII is used.
      Parameters:
      c - character to check
      charsetName - the name of the charset to use for check
      Returns:
      true if the character is printable and false if the character is non-printable.
    • replaceNonPrintableDumpChars

      private String replaceNonPrintableDumpChars(String text, String prtChar)
      Replaces non-printable characters with '.'.
      Parameters:
      text - string of characters
      prtChar - string of all printable characters allowed in dumps
      Returns:
      the input string with non-printable characters changed to '.'
    • replaceNonPrintableChars

      public String replaceNonPrintableChars(String text, String charsetName)
      Returns a string that is the input text with non-printable characters replaced by '.'. The text argument is a string containing possible non-printable characters. The charsetName argument contains the name of the Charset used for the text argument. If no Charset was used, an empty string, "", must be used.
      Parameters:
      text - string containing possible non-printable characters
      charsetName - name of the Charset to use for the string; "" if none
      Returns:
      the input string with all non-printable characters replaced by '.'.
    • isPrintableChar_ISO_8859_1

      private boolean isPrintableChar_ISO_8859_1(char c)
      Determines whether a character is a printable character when using the ISO-8859-1 Charset.
      Parameters:
      c - character to check
      Returns:
      true if printable, false if non-printable.
    • isPrintableChar_US_ASCII

      private boolean isPrintableChar_US_ASCII(char c)
      Determines whether a character is a printable character when using the US-ASCII Charset.
      Parameters:
      c - character to check
      Returns:
      true if printable, false if non-printable.
    • init_charset_tables

      private void init_charset_tables()
      1. copy test tables to live tables
      2. initialize translate tables
      3. initialize printable character table
    • report_codepage_error

      private void report_codepage_error(String msg)
      report codepage parm error
      Parameters:
      msg - String message text
    • list_ebcdic_ascii_unicode

      private void list_ebcdic_ascii_unicode()
      list unicode, char, ascii hex, ebcdic hex
    • map_text

      private String map_text(int index)
      map text function
      Parameters:
      index - for codepoint
      Returns:
      text index,hex-ebcdic,hex-ascii,char,U+hex
    • list_available_charsets

      private void list_available_charsets()
      list available character sets to systerm file
    • check_test_ascii

      private boolean check_test_ascii()
      return true if test_ascii charset meets the following tests:
      1. Length 256
      2. hex char
        • 20 space
        • 30 zero
        • 39 nine
        • 41 A
        • 5A Z
        • 61 a
        • 7A z
      Returns:
      boolean - to indicate whether or not coditions are met
    • check_test_ebcdic

      private boolean check_test_ebcdic()
      return true if test_ebcdic charset meets minimum character requirements
      Returns:
      Boolean - indicating success (true) or failure (false)
    • list_hex_ascii_ebcdic

      public void list_hex_ascii_ebcdic()
      list ascii to ebcdic and ebcdic to aascii conversion tables in hex for debugging
    • load_ebcdic_charset_hex_file

      private boolean load_ebcdic_charset_hex_file()
      load ebcdic_charset_name as alternate source for system defiend ebcdic_charset_name
      Returns:
      Boolean - indicates success (true) or failure (false)
    • check_java_version

      public boolean check_java_version()
      verify version is from known vendor and version is 1.6+
      Returns:
      boolean - always returns true
    • getVersion

      public String getVersion()
      get version number as a string value
      Returns:
      version number (as a string)