Class lz390
java.lang.Object
lz390
Class lz390 implements the linker (linkage editor / binder) part of z390
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) Filevariable(package private) BufferedWritervariable(package private) Stringvariable(package private) String[]variable(package private) byte[]variable(package private) ByteBuffervariable(package private) Datevariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) booleanvariable(package private) bytevariable(package private) bytevariable(package private) int[]variable(package private) String[]variable(package private) byte[]variable(package private) bytevariable(package private) SimpleDateFormatvariable(package private) Stringvariable(package private) Stringvariable(package private) Stringvariable(package private) intvariable(package private) RandomAccessFilevariable(package private) Stringvariable(package private) Stringvariable(package private) Stringvariable(package private) Stringvariable(package private) booleanvariable(package private) intvariable(package private) booleanvariable(package private) Filevariable(package private) BufferedWritervariable(package private) intvariable(package private) intvariable(package private) booleanvariable(package private) intvariable(package private) intvariable(package private) SimpleDateFormatvariable(package private) intvariable(package private) Stringvariable(package private) intvariable(package private) intvariable(package private) bytevariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) booleanvariable(package private) booleanvariable(package private) int[]variable(package private) int[]variable(package private) int[]variable(package private) String[]variable(package private) String[]variable(package private) RandomAccessFilevariable(package private) booleanvariable(package private) Stringvariable(package private) String[]variable(package private) int[]variable(package private) Stringvariable(package private) byte[]variable(package private) int[]variable(package private) longvariable(package private) longvariable(package private) longvariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) intvariable(package private) longvariable(package private) tz390variable(package private) byte[]variable(package private) ByteBuffervariable(package private) Stringvariable(package private) RandomAccessFilevariable(package private) Stringvariable(package private) JTextAreavariable -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidabort_error(int error, String msg) issue error msg to log with prefix and increment error totalprivate voidadd_gbl_cst(int obj_index1) add obj cst to gbl tableprivate voidadd_gbl_ent(int obj_index1) add obj entry to gbl tableprivate voidadd any new global esds foundprivate voidadd_gbl_ref(int obj_index1, byte esd_type) add ext or wxt ref to gbl tableprivate voidclose obj, lst, err, trlprivate voidcreate_alias_390(String alias, String pgm) create ascii 390 file named alias.390 containing ascii pgm nameprivate Stringconvert binary obj file record in obj_bin to ascii string text formatprivate voiddisplay total errors close files and exitprivate booleanfind next external esds file to load else return falseprivate booleanfind_gbl_esd(String esd_name) set cur_gbl_esd to entry for esd_name else return false abort if time exceededprivate voidoutput 390 load module in binary format skipping rlds for unresolved wxtrn'sprivate voidget next esd line from obj file else set obj_eodprivate voidinitialize arrays using opt_max??? limitsprivate voidinit_lz390(String[] args, JTextArea log_text) initialize log routing set options compile regular expression parsers open bal and obj buffered I/O filesprivate voidload all object code from files and build load module rldsprivate booleanload_obj_file(boolean esds_only) load object file esds only or entire file using obj_file_nameprivate voidissue error msg to log with prefix and increment error total suppress if not gen_obj and not tracestatic voidmain is entry when executed from command line Create instance of lz390class and pass parms to lz390 like z390 does.private voidSet trace file name for TRACEL TRACEALL Open 390 and lst filesprivate booleanopen_obj_file(String file) open object file and set type else return falseprivate voidprocess .LNK input commands INCLUDE name - load obj ENTRY name - set entry addr ALIAS name - gen stub NAME name - rename 390 If no .LNK try loading primary objintprocess_lz390(String[] args, JTextArea log_text) link 1 or more obj files into single 390 load module Note this may be called directly from z390 GUI or from main when lz370 run from windows command line.private voiddisplay lz390 version, timestamp, and copyright if running standaloneprivate voidWrite message to z390_log_text or console if running standaloneprivate voidput_lst_line(String msg) put line to listing fileprivate voidput_stat_line(String msg) routine statistics line to LST or STATS(file)private voiddisplay statistics as comments at end of balprivate voidreset ESD global data for next LNK name commandprivate voidsearch and load obj files for extrns until all found or no more can be resolved
-
Field Details
-
tz390
tz390 tz390variable -
msg_id
String msg_idvariable -
lz390_rc
int lz390_rcvariable -
lz390_errors
int lz390_errorsvariable -
lz390_recursive_abort
boolean lz390_recursive_abortvariable -
cur_date
Date cur_datevariable -
tod_start
long tod_startvariable -
tod_end
long tod_endvariable -
tot_sec
long tot_secvariable -
tot_obj_bytes
int tot_obj_bytesvariable -
tot_find_gbl_esd
int tot_find_gbl_esdvariable -
load_esds_only
boolean load_esds_onlyvariable -
max_obj_esd
int max_obj_esdvariable -
lkd_file_name
String lkd_file_namevariable -
lkd_file
RandomAccessFile lkd_filevariable -
lkd_cmd
String lkd_cmdvariable -
lkd_op
String lkd_opvariable -
lkd_parm
String lkd_parmvariable -
lkd_entry
String lkd_entryvariable -
lkd_entry_loc
int lkd_entry_locvariable -
lkd_alias
String lkd_aliasvariable -
lkd_name
String lkd_namevariable -
obj_file_name
String obj_file_namevariable -
obj_file_bin
boolean obj_file_binvariable -
obj_bin_id
byte obj_bin_idvariable -
obj_file
RandomAccessFile obj_filevariable -
obj_eod
boolean obj_eodvariable -
obj_end_entry_esd
int obj_end_entry_esdvariable -
obj_end_entry_loc
int obj_end_entry_locvariable -
obj_end_entry_last_loc
int obj_end_entry_last_locvariable -
z390_file
RandomAccessFile z390_filevariable -
lst_file
File lst_filevariable -
lst_file_buff
BufferedWriter lst_file_buffvariable -
tot_name
int tot_namevariable -
max_alias
int max_aliasvariable -
tot_alias
int tot_aliasvariable -
alias_name
String[] alias_namevariable -
alias_file
File alias_filevariable -
alias_file_name
String alias_file_namevariable -
alias_file_buff
BufferedWriter alias_file_buffvariable -
obj_line
String obj_linevariable -
obj_eof
boolean obj_eofvariable -
mmddyy
SimpleDateFormat mmddyyvariable -
hhmmss
SimpleDateFormat hhmmssvariable -
log_tod
boolean log_todvariable -
z390_log_text
JTextArea z390_log_textvariable -
tod_time_limit
long tod_time_limitvariable -
next_time_ins
int next_time_insvariable -
next_time_check
int next_time_checkvariable -
tot_csect
int tot_csectvariable -
tot_entry
int tot_entryvariable -
tot_missing_wxtrn
int tot_missing_wxtrnvariable -
tot_gbl_esd
int tot_gbl_esdvariable -
cur_gbl_esd
int cur_gbl_esdvariable -
cur_gbl_ext
int cur_gbl_extvariable -
gbl_esd_name
String[] gbl_esd_namevariable -
gbl_esd_loc
int[] gbl_esd_locvariable -
gbl_esd_type
byte[] gbl_esd_typevariable -
gbl_esd_ext
byte gbl_esd_extvariable -
gbl_esd_ent
byte gbl_esd_entvariable -
gbl_esd_wxt
byte gbl_esd_wxtvariable -
loc_ctr
int loc_ctrvariable -
mod_loc_ctr
int mod_loc_ctrvariable -
tot_obj_files
int tot_obj_filesvariable -
cur_obj_file
int cur_obj_filevariable -
obj_file_names
String[] obj_file_namesvariable -
bin_byte
byte[] bin_bytevariable -
bin_byte_buff
ByteBuffer bin_byte_buffvariable -
ext_found
boolean ext_foundvariable -
tot_obj_esd
int tot_obj_esdvariable -
cur_obj_esd
int cur_obj_esdvariable -
obj_esd
int[] obj_esdvariable -
obj_esd_name
String[] obj_esd_namevariable -
obj_esd_loc
int[] obj_esd_locvariable -
obj_esd_len
int[] obj_esd_lenvariable -
obj_esd_type
String[] obj_esd_typevariable -
obj_gbl_esd
int[] obj_gbl_esdvariable -
z390_code_ver
String z390_code_vervariable -
z390_flags
String z390_flagsvariable -
z390_code
byte[] z390_codevariable -
z390_code_buff
ByteBuffer z390_code_buffvariable -
tot_rld
int tot_rldvariable -
rld_loc
int[] rld_locvariable -
rld_len
byte[] rld_lenvariable
-
-
Constructor Details
-
lz390
public lz390()Dummy constructor - no initialization needed
-
-
Method Details
-
main
main is entry when executed from command line Create instance of lz390class and pass parms to lz390 like z390 does.- Parameters:
args- argument string - same as z390
-
process_lz390
link 1 or more obj files into single 390 load module Note this may be called directly from z390 GUI or from main when lz370 run from windows command line. if called from main, the log_text will be null and local put_log function will route to console instead of the z390 log window.- Parameters:
args- argument string - same as z390log_text- argument log text- Returns:
- standard returncode
-
init_lz390
- initialize log routing
- set options
- compile regular expression parsers
- open bal and obj buffered I/O files
- Parameters:
args- argument string - same as z390log_text- argument log text
-
init_arrays
private void init_arrays()initialize arrays using opt_max??? limits -
exit_lz390
private void exit_lz390()display total errors close files and exit -
put_stats
private void put_stats()display statistics as comments at end of bal -
put_stat_line
routine statistics line to LST or STATS(file)- Parameters:
msg- statistics message to report
-
close_files
private void close_files()close obj, lst, err, trl -
log_error
issue error msg to log with prefix and increment error total suppress if not gen_obj and not trace- Parameters:
error- error numbermsg- error message`
-
abort_error
issue error msg to log with prefix and increment error total- Parameters:
error- error numbermsg- error message`
-
put_copyright
private void put_copyright()display lz390 version, timestamp, and copyright if running standalone -
put_log
Write message to z390_log_text or console if running standalone- Parameters:
msg- message text
-
put_lst_line
put line to listing file- Parameters:
msg- listing line content
-
open_files
private void open_files()- Set trace file name for TRACEL TRACEALL
- Open 390 and lst files
-
process_lkd_cmds
private void process_lkd_cmds()process .LNK input commands- INCLUDE name - load obj
- ENTRY name - set entry addr
- ALIAS name - gen stub
- NAME name - rename 390
-
create_alias_390
create ascii 390 file named alias.390 containing ascii pgm name- Parameters:
alias- name of the filepgm- name of the program
-
resolve_esds
private void resolve_esds()search and load obj files for extrns until all found or no more can be resolved -
load_obj_file
private boolean load_obj_file(boolean esds_only) load object file esds only or entire file using obj_file_name- Parameters:
esds_only- ???- Returns:
- true if successful
-
get_obj_line
private void get_obj_line()get next esd line from obj file else set obj_eod -
cvt_obj_bin_to_hex
convert binary obj file record in obj_bin to ascii string text format- Returns:
- "text" data
-
add_gbl_esds
private void add_gbl_esds()add any new global esds found -
add_gbl_cst
private void add_gbl_cst(int obj_index1) add obj cst to gbl table- Parameters:
obj_index1- ???
-
add_gbl_ref
private void add_gbl_ref(int obj_index1, byte esd_type) add ext or wxt ref to gbl table- Parameters:
obj_index1- ???esd_type- esd type
-
add_gbl_ent
private void add_gbl_ent(int obj_index1) add obj entry to gbl table- Parameters:
obj_index1- ???
-
find_gbl_esd
set cur_gbl_esd to entry for esd_name else return false abort if time exceeded- Parameters:
esd_name- name of esd entry- Returns:
- true if found; false otherwise
-
find_ext_file
private boolean find_ext_file()find next external esds file to load else return false- Returns:
- true if found; false otherwise
-
open_obj_file
open object file and set type else return false- Parameters:
file- file designation- Returns:
- true if successful, false otherwise
-
load_obj_code
private void load_obj_code()load all object code from files and build load module rlds -
gen_load_module
private void gen_load_module()output 390 load module in binary format skipping rlds for unresolved wxtrn's -
reset_esds
private void reset_esds()reset ESD global data for next LNK name command
-