Class ez390

All Implemented Interfaces:
Runnable

public class ez390 extends Object implements Runnable
ez390 is the emulator component of z390 which can be called from z390 gui interface or from command line to execute 390 load module files.
  • Field Details

    • tz390

      tz390 tz390
      variable
    • pz390

      pz390 pz390
      variable
    • sz390

      sz390 sz390
      variable
    • vz390

      vz390 vz390
      variable
    • pz390_thread

      Thread pz390_thread
      variable
    • pz390_running

      boolean pz390_running
      variable
    • load_file_name

      String load_file_name
      variable
    • exit_request

      boolean exit_request
      variable
    • ins_count

      int ins_count
      variable
    • io_count

      int io_count
      variable
    • monitor_timer

      Timer monitor_timer
      variable
    • monitor_cmd_time_total

      long monitor_cmd_time_total
      variable
    • monitor_last_time

      long monitor_last_time
      variable
    • monitor_next_time

      long monitor_next_time
      variable
    • monitor_cur_interval

      long monitor_cur_interval
      variable
    • monitor_last_ins_count

      int monitor_last_ins_count
      variable
    • monitor_next_ins_count

      int monitor_next_ins_count
      variable
    • monitor_last_io_count

      int monitor_last_io_count
      variable
    • monitor_next_io_count

      int monitor_next_io_count
      variable
    • monitor_cur_ins

      long monitor_cur_ins
      variable
    • monitor_cur_int

      long monitor_cur_int
      variable
    • monitor_cur_rate

      long monitor_cur_rate
      variable
    • cmd_read_line

      String cmd_read_line
      variable
    • cur_date_MMddyy

      SimpleDateFormat cur_date_MMddyy
      variable
    • cur_tod_hhmmss

      SimpleDateFormat cur_tod_hhmmss
      variable
    • cur_tod_hhmmss00

      SimpleDateFormat cur_tod_hhmmss00
      variable
    • cur_date_yyyy

      SimpleDateFormat cur_date_yyyy
      variable
    • cur_date_MM

      SimpleDateFormat cur_date_MM
      variable
    • cur_date_dd

      SimpleDateFormat cur_date_dd
      variable
    • cur_date_HH

      SimpleDateFormat cur_date_HH
      variable
    • cur_date_mm

      SimpleDateFormat cur_date_mm
      variable
    • cur_date_ss

      SimpleDateFormat cur_date_ss
      variable
    • cur_date_ms

      SimpleDateFormat cur_date_ms
      variable
    • cur_date_yyddd

      SimpleDateFormat cur_date_yyddd
      variable
    • cur_date_yyyyddd

      SimpleDateFormat cur_date_yyyyddd
      variable
    • cur_date_MMddyyyy

      SimpleDateFormat cur_date_MMddyyyy
      variable
    • cur_date_ddMMyyyy

      SimpleDateFormat cur_date_ddMMyyyy
      variable
    • cur_date_yyyyMMdd

      SimpleDateFormat cur_date_yyyyMMdd
      variable
    • cur_date_year

      int cur_date_year
      variable
    • cur_date_month

      int cur_date_month
      variable
    • cur_date_day

      int cur_date_day
      variable
    • tod_hour

      int tod_hour
      variable
    • tod_min

      int tod_min
      variable
    • tod_sec

      int tod_sec
      variable
    • tod_msec

      int tod_msec
      variable
    • time_mil

      long time_mil
      variable
    • cur_date_cal

      Calendar cur_date_cal
      variable
    • tod_start_day

      long tod_start_day
      variable
    • tod_start_pgm

      long tod_start_pgm
      variable
    • tod_end_pgm

      long tod_end_pgm
      variable
    • tot_sec

      long tot_sec
      variable
    • tod_time_limit

      long tod_time_limit
      variable
    • next_time_ins

      int next_time_ins
      variable
    • next_time_check

      int next_time_check
      variable
    • log_tod

      boolean log_tod
      variable
    • z390_log_text

      JTextArea z390_log_text
      variable
    • z390_command_text

      JTextField z390_command_text
      variable
  • Constructor Details

    • ez390

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

    • main

      public static void main(String[] args)
      main is entry when executed from command line Create instance of ez390 class and pass parms to ez390 like z390 does.
      Parameters:
      args - - argument string - same as z390
    • process_ez390

      public void process_ez390(String[] args, JTextArea log_text, JTextField command_text)
      execute 390 load module file passed as first arg 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 balect will be null and local put_log function will route to console instead of the z390 log window.
      Parameters:
      args - - argument string (same as z390)
      log_text - -
      command_text - -
    • run_pgm

      private void run_pgm(int zcvt_pgm_addr)
      execute IPL pgm and/or application pgm
      Parameters:
      zcvt_pgm_addr - - address of 8 byte field containing name of program to run
    • exec_pz390

      private void exec_pz390()
      1. Check for trace msg and log if found
      2. Execute test commands if test mode
      3. Dump registers if reqister trace option
      4. Run pz390 to next interrupt
      5. Check for trace msg and log if found
      6. If svc interrupt, exec svc
      7. else
        1. if psw_check if svc_exit exit normally
        2. else psw_handler for abend or espie/estae restart
    • init_ez390

      private void init_ez390(String[] args, JTextArea log_text, JTextField command_text)
      Logic:
      1. initialize log routing
      2. init ascii to ebcdic table
      3. init reqular expression paser for test
      4. set options
      5. initialize memory
      6. set runtime hooks for cancel
      7. start monitor for cmd processor and timeout, and cpu rate statistics
      Parameters:
      args - - text - argument string
      log_text - - JTextArea -
      command_text - - JTextField -
    • monitor_startup

      private void monitor_startup()
      start monitor to terminate cmd command if timeout limit reached
    • monitor_update

      private void monitor_update()
      1. At monitor_wait intervals, update the the cpu instruction rate and monitor cmd processes if running with timeout
      2. If CMD running and monitor_wait_total > timeout_interval then abort cmd process with timeout
      3. If current time beyond timeout terminate.
      4. If WTOR pending, check for reply and post ecb.
      5. If stimer_exit_addr set, check for stimer_Exit_tod passed and take exit if tod passed:
        1. Save r13-r15 and PSW for restore at end of exit
        2. Set r13 to save, r14 to svc 3 instr, and r15 to exit
        3. Set stimer_exit_pending for svc 3
        4. change PSW to r15 exit addr
      6. If GUAM TN3270 screen active, process pending typed keys
    • run

      public void run()
      run method
      Specified by:
      run in interface Runnable
    • put_copyright

      private void put_copyright()
      display ez390 version, timestamp, and copyright if running standalone