0% found this document useful (0 votes)
304 views39 pages

HLASM R3 Toolkit Functions Technical Overview

The document describes the IBM High Level Assembler Toolkit feature which provides six tools to enhance productivity when working with assembler language including a disassembler, cross-reference facility, program understanding tool, interactive debug facility, structured programming macros, and a file comparison utility.

Uploaded by

gborja8881331
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
304 views39 pages

HLASM R3 Toolkit Functions Technical Overview

The document describes the IBM High Level Assembler Toolkit feature which provides six tools to enhance productivity when working with assembler language including a disassembler, cross-reference facility, program understanding tool, interactive debug facility, structured programming macros, and a file comparison utility.

Uploaded by

gborja8881331
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

IBM High Level Assembler Release 3:

Toolkit Feature Technical Overview

SHARE 94 (Winter 2000), Session 8166

John R. Ehrman

IBM Santa Teresa Laboratory


555 Bailey Avenue
San Jose, CA 95141
[email protected]

 IBM Corporation 1995, 2000

March, 2000
High Level Assembler Toolkit Feature

 HLASM Toolkit: an optional priced feature of High Level Assembler


 Enhances productivity by providing six powerful tools:
1. A flexible Disassembler
– Creates symbolic Assembler Language source from object code
2. A powerful Source Cross-Reference Facility
– Analyzes code, summarizes symbol and macro use, locates specific tokens
3. A workstation-based Program Understanding Tool
– Provides graphic displays of control flow within and among programs
4. A powerful and sophisticated Interactive Debug Facility (IDF)
– Supports a rich set of diagnostic and display facilities and commands
5. A complete set of Structured Programming Macros
– Do, Do-While, Do-Until, If-Then-Else, Search, Case, Select, etc.
6. A versatile File Comparison Utility (“Enhanced SuperC”)
– Includes special date-handling capabilities

 A comprehensive tool set for Assembler Language applications


HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-1
HLASM Toolkit Publications

GC26-8709 Toolkit Feature Interactive Debug Facility User's Guide


The reference document for all IDF facilities, commands,
windows and messages.
GC26-8710 Toolkit Feature User's Guide
Reference and usage information for the Disassembler,
the Cross-Reference Facility, the Program Understanding
Tool, the File Comparison Utility, and the Structured
Programming Macros
GC26-8711 Toolkit Feature Installation and Customization Guide
Information needed to install all Toolkit Feature
components
GC26-8712 Toolkit Feature Interactive Debug Facility Reference
Summary
Quick-reference summary, with syntax of all commands
and a list of all options; for experienced ASMIDF users.

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-2


HLASM Toolkit Disassembler

 Converts object code to Assembler Language source


 Supports latest processor instructions
 Input files:
– Object modules; MVS load modules and program objects; CMS
modules; VSE phases
– Control statements (including a COPYLIB)
 Output files:
LISTING control records, messages, source listing, etc.
PUNCH assembler-ready source file, to re-create the object
 Limitations:
– 16MB upper limit on size of module being disassembled
– MVS: no Program Objects containing non-standard classes
– No Generalized Object File Format (GOFF) object files
– VSE: phases have no ESD; cannot extract individual CSECTs
– SYM-record information not used, even if present
 GC26-8710, High Level Assembler Toolkit User's Guide
HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-3
Disassembler Operation

 Copyright protection and the COPYRIGHTOK option

 Control statements add symbolic and structure information

DATA, INSTR, DS
designate data, code, and empty areas
DSECT provides symbolic mappings of structures
ULABL assigns user labels to points in the program
USING provides basing data to allow symbolic references in place
of explicit base-displacement operands
COPY includes previously created control statements

 Symbolic names automatically provided for all registers


– Access, Control, Floating-Point, General Purpose, and Vector

 Informative comments on SVCs, STM, EX, BAL, BALR, etc.

 Listing contains ESD, RLD, other useful information

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-4


Disassembler Usage Examples

 Initial disassembly

– Specify the module and CSECT to be disassembled

 Add USING records

– Specify base registers, contents, and USING ranges

 Add other control records

– Specify areas used for instructions, data, and “empty space”

– Assign your own labels to known instructions, data areas, work areas

– Map data structures with DSECT statements

 Can place control records in separate files, include them with COPY
statements

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-5


HLASM Toolkit Cross-Reference Facility

 Scans source, macros, and COPY files for


– symbols, macros, and user-specified character strings (“tokens”)
 Full support for Assembler, C/C++, PL/I, REXX
– Extensive support for many other languages, including
COBOL, FORTRAN, JCL, CLIST, ISPF, RPG, SCRIPT, SQL, etc.
 Produces up to six reports
– Control Flow (CF)
– Lines of Code (LOC)
— Lines of OO code (LOOC) for C/C++
– Macro-Where-Used (MWU)
– Symbol-Where-Used (SWU)
– Token-Where-Used (TWU)
— Supports generic (wild-character) matching, “exclusion” tokens
– Spreadsheet-Oriented (SOR)
— Same info as TWU, but in a format useful for identifying critical modules and
estimating conversion effort

 Can create a source file with token matches “tagged”


– Useful as input to Program Understanding tool
HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-6
HLASM Toolkit Program Understanding Tool

 Detailed analysis of Assembler Language programs


– Supports latest processor-family instructions
– Creates annotated listings
– Displays graphic control flow for single programs and “linked” modules

 Assemble programs with ADATA option


– Download SYSADATA file (in binary) to workstation .XAA files

 ASMPUT analyzes the SYSADATA (.XAA) files


– Creates component lists, simulated listing, graphs, external linkages

 Grapher displays many levels of detail, with zoom capability


– Inter-program relationships
– Major program structures
– Full details of internal control flows

 Online tutorial, extensive HELPs throughout


 Installed from downloaded host files (not diskettes)

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-7


HLASM Toolkit Interactive Debug Facility (IDF)

 Primarily for Assembler Language programs


– Supports latest processor family instructions and additional registers
– Also usable for programs in other languages
 Multiple selectable “windows” for address stops, breakpoints,
register displays, disassembled code, register histories, etc.
– Breakpoints include “watchpoints” (break on specified condition)
– Windows may be used in any order or combination
 Execution stepping: displays disassembled code (and source, if
available)
– Per instruction, or between breakpoints or routines
– Instruction counting, execution “history”
 Exit routines (in REXX or other language) invokable at breakpoints
– Capture, analyze, and respond to program conditions
 Storage and register modification by over-typing
 Record/playback facility to re-execute debugging sessions
 Extensive tailoring capabilities
HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-8
Interactive Debug Facility (IDF) Overview

 Components
– Base Debugger: ASMIDF can be used without source-language support
— On CMS, includes interface module
– ASMLANGX (Extraction Utility) prepares HLASM ADATA files

 Two breakpoint types: SVC97, invalid opcodes (X'01xx')


 System considerations
– TSO: naming conventions; etc.
— Supports DFSMS/MVS Binder Program Objects (standard classes)
— SVC97 option if application uses ESPIE/ESTAE; subtask of IDF
— NOSVC97 option if application uses TSO TEST; same task as IDF
– CMS: Invalid opcodes only (NOSVC97); PER support
– VSE: Link with ASMLKEDT, specify VTAM terminal
– ISPF: TSOEXEC command (IDF “owns” the screen)
– CICS, DB2, IMS with some limitations
– Debugging authorized code: not supported!
– LE: specify NOSPIE, NOSTAE (or TRAP(OFF))

 GC26-8709, High Level Assembler Toolkit Interactive Debug Facility


User's Guide

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-9


ASMIDF: Preparing a Debug Session

 Without source level facilities


– On CMS: LOAD MAP file required

– On VSE: link edit with ASMLKEDT

 With source level facilities


1. Assemble with High Level Assembler's ADATA option

2. Run ASMLANGX extraction program against SYSADATA file

3. Keep the ASMLANGX extraction file


– Can generate the file on TSO, CMS, or VSE, and ship to the others

4. Create target module from object file(s)


– Require LOAD MAP file on CMS; phasename.MAP on VSE

– No need to retain listing or SYSADATA files

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-10


ASMIDF: Invocation

 Invocation options vs. dynamic options


– Almost all options may be changed dynamically

 Plan for storage utilization by applications and IDF


 Basic syntax for invoking IDF:
ASMIDF <module> (<ASMIDF options> / <module parameters and options>

– Example: debugging HLASM's CMS interface module:


ASMIDF ASMAHL ( AMODE31 NOPROF / TESTASM (SIZE(1M)

 IDF gains control on program checks, ABENDs, breakpoints,


program completion, break-in interrupts, etc.
 Trace “unknown” modules with deferred breakpoints
 ISPF invocation: Under option 6, use TSOEXEC command

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-11


ASMIDF: Useful Options

PROFILE/NOPROFIL
IDF by default looks for PROFILE ASM (a REXX exec)

AMODE24/AMODE31
Sets initial AMODE of target program

AUTOSIZE/NOAUTOSZ
Controls automatic window resizing

PATH, FASTPATH
Counts number of instruction executions

LIBE Specifies library containing target application module

CMDLOG, RLOG
Create or append to or replay command log file

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-12


ASMIDF: Debugger Windows

 Command Window (always displayed)


 Current Registers
– APFR for 16 floating-point and Floating-Point Control registers
 Old Registers
 Break (breakpoints and watchpoints)
 Disassembly (multiple)
 Dump (multiple)
 Language Support Module Information
 Minimized Window Viewer
 Options
 Skipped Subroutines
 Target Status
 ADSTOPS (CMS only: uses PER; supports REGSTOPS also)

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-13


ASMIDF: Useful Debugger Commands

 BREAK: Set a breakpoint, or display the Break Window


 DBREAK: Set a deferred (“sticky”) breakpoint
 DUMP: Display storage in symbolic or “dump” format
 FIND/LOCATE: Locate and display given strings in storage
 HISTORY: Display previously executed instructions
 WATCH: Specify a break-test condition at a “watchpoint”
 DISASM: Disassemble a specified area of storage
 STEP/STMTSTEP/RUN: Control instruction-execution rates
 FOLLOW: Dynamically track contents of a register or word in storage
 LANGUAGE LOAD: Load specified language-extraction files
 HIDE/SHOW: Control display detail of source and disassembly data
 UNTIL: Execute instructions up to a specified address
 ...and many, MANY more!

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-14


ASMIDF: Debugger Macros

 REXX (interpreted or compiled)

 Default address

 EXTRACT command (almost 90 different items available to macros)

 IMPMacro option for automatic macro search (ON by default)

 MRUN/MSTEP commands to control execution from macros

 PROFILE macro to customize your environment

 EXIT routine may gain control at specified events

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-15


ASMIDF: Debugger Macros, Example 1

/%==================================================================\
TRAP macro: uses DBREAK to load and break on the entry point of
a loadable module
PARAMETERS: name ─ module name
symbol ─ external symbol to set break point on
\==================================================================%/

arg name symbol .


if name == '' then exit 99
if symbol == '' then symbol = name
'DBREAK ('name'.'symbol')' /% Issue DBREAK at start of CSECT %/
'MRUN' /% Program will run until DBREAK is matched %/
'QUAL' name /% Change qualifier %/
'LAN LOAD' symbol /% Load extraction file %/
'BREAK' symbol /% Remove breakpoint at module start %/
exit

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-16


ASMIDF: Debugger Macros, Example 2

/%REXX ────────────────────────────────────────────────────────────%/
/% REGS ─ Toggle the current registers window. %/
/% %/
/% When the REGS window is opened, it will be moved on the ASMIDF %/
/% display so that it is the first window. %/
/%─────────────────────────────────────────────────────────────────%/

'REGS' /% Toggle REGS window %/

'Extract Cursor' /% Obtain window information %/


n = Find(display,'REGS') /% Is REGS window present? %/
If n ¬= C Then /% Yes? Force to be 1st window %/
'ORDER ='n

Exit

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-17


HLASM Toolkit Structured Programming Macros

 Macro sets can help eliminate test/branch instructions, simplify


program structures:
1. If-Then-Else, If-Then (IF/ELSE/ENDIF)
2. Do, Do-While, Do-Until (DO/ENDDO)
– supports forward/backward indexing, FROM-TO-BY values, etc.

3. Search (STRTSRCH/ORELSE/ENDLOOP/ENDSRCH)
– supports flexible and powerful choices of loop controls and test conditions

4. Case (CASENTRY/CASE/ENDCASE)
– provides rapid switching via N-way branch to specified cases

5. Select (SELECT/WHEN/OTHRWISE/ENDSEL)
– allows general choices among cases using sequential tests

 All macro sets may be (properly) nested in any order, to any level

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-18


Structured Programming Macros: Usage

 All macros are contained in a single member, ASMMSP

– Use COPY ASMMSP statement to initialize

– Or specify PROFILE(ASMMSP) option

– Packaging dictated by IBM naming rules/conventions

 User macros have meaningful mnemonics

– Internal (non-user) macro names begin with ASMM

 GC26-8710, High Level Assembler Toolkit User's Guide

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-19


Structured Programming Macros: IF-THEN-ELSE Set

IF (x) THEN IF(x) THEN


Process Code A Process Code A
ENDIF ELSE
Process Code B
ENDIF

┌─────┐ ┌─────┐
┌──────,│ A ├────┐ ┌───────,│ A ├────┐
│true └─────┘ │ │true └─────┘ │
┌──┴──┐ 4 ┌──┴──┐ 4
───,│if(x)├──────────────,8───, ───,│if(x)│ 8───,
└─────┘ false └──┬──┘ :
│false ┌─────┐ │
└───────,│ B ├────┘
└─────┘

 The THEN keyword is not syntactic; only a comment


 The (x) operand is usually a list of items

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-20


Structured Programming Macros: Example 1

 Add absolute value of c(R4) to c(R5); don't change R4

 Unstructured:
LTR R4,R4 Set CC
BM LABEL1 Negative? Branch
AR R5,R4 Positive or zero ─ add to R5
B LABEL2 Skip the negative case
LABEL1 DS CH
SR R5,R4 Subtract negative value
LABEL2 DS CH

 Structured:
IF LTR,R4,R4,NM THEN Test R4 for non─negative
AR R5,R4 Positive or zero ─ add to R5
ELSE ,
SR R5,R4 Subtract negative value
ENDIF

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-21


Structured Programming Macros: DO Set

 Do, Do-While, Do-Until predicates support mixtures of WHILE,


UNTIL, forward/backward indexing, FROM-TO-BY values, etc.

– A very rich and flexible set of facilities

 Simple flow diagrams for DO-WHILE and DO-UNTIL:

DO WHILE=(condition) DO UNTIL=(condition)
Process Code A Process Code A
ENDDO ENDDO

┌─────┐
┌────┤ A ├────┐
│ └─────┘ : ┌────────────────────┐
│ │true │ :false
4 ┌───────────┴─┐ 4 ┌─────┐ ┌──────┴──────┐
──,8──,│ condition ├──, ──,8──┤ A ├───,│ condition ├──,
└─────────────┘false └─────┘ └─────────────┘true

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-22


Structured Programming Macros: Example 2

 Search a string for first blank character, or end of string

 Unstructured:
L R5,=A(Start─1) Address start─1 of expression
Top_of_Loop DS CH
C R5,End Test for end of expression
BNL Leave_Loop and exit if we've reached end
LA R5,1(,R5) Move along one byte
CLI C(R5),C' ' Test for a blank
BNE Top_of_Loop not yet, repeat loop
Leave_Loop DS CH

 Structured:
L R5,=A(Start─1) Address start─1 of expression
DO WHILE=(C,R5,LT,End),UNTIL=(CLI,C(R5),EQ,C' ')
LA R5,1(,R5) Move along one byte
ENDDO

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-23


Structured Programming Macros: SEARCH Set

STRTSRCH (any DO loop operands)


Process Code A
EXITIF (any IF type operands)
Process Code B
ORELSE
Process Code C
ENDLOOP
Process Code D
ENDSRCH

┌───────────────────────────────────────┐
│ ┌────┴────┐
4 ┌───┐ ┌───────────┐ ┌───┐ │test for │ ┌───┐ ENDSRCH
────,8─,│ A ├──,│EXITIF (x) ├──,│ C ├──,│end loop ├──,│ D ├──,8───,
STRTSRCH └───┘ └─────┬─────┘ └───┘ │condition│ └───┘ :
4 true ORELSE └─────────┘ │
┌─────┐ ENDLOOP │
│ B ├────────────────────────────────────┘
└─────┘

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-24


Structured Programming Macros: CASE Set

CASENTRY register │ Example: CASENTRY R1


CASE n1,n2,... │ CASE (1,2,3,5,7)
Process Code A │ MVI Flag,Prime
CASE n3,n4,... │ CASE (4,6,8)
Process Code B │ MVI Flag,NotPrime
─ ─ ─ ─ │
ENDCASE │ ENDCASE

n1,n2.. ┌─────┐
┌────────,│ A ├──────┐
│ └─────┘ │
│n3,n4.. ┌─────┐ │
├────────,│ B ├──────┤
┌───────┐ │ └─────┘ 4
───,│case(x)├───,│ : : 8────,
└───────┘ │ : : :
│ ┌─────┐ │
└────────,│ K ├──────┘
└─────┘

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-25


Structured Programming Macros: SELECT Set

SELECT (comparison) Compare instruction & condition


WHEN (list─of─values─1) Values for this comparison
<statements─1> Statements for these cases
WHEN (list─of─values─2) Values for this comparison
<statements─2> Statements for these cases
L L L
WHEN (list─of─values─n) Values for last comparison
<statements─n> Statements for these cases
OTHRWISE
<statements> Executed if no matching WHEN
ENDSEL
────────────────────────────────────────────────────────────────
Example: SELECT C,R1,Eq
WHEN (=F'1',=F'2',=F'3',=F'5',=F'7')
MVI Flag,Prime
WHEN (=F'4',=F'6',=F'8')
MVI Flag,NotPrime
OTHRWISE
MVI Flag,Unknown
ENDSEL

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-26


Structured Programming Macros: SELECT Set ...

┌──────────────────┐ ┌──────────────┐ true ┌────┐


──,│SELECT(comparison)├──,│WHEN(values─1)├─────,│ S1 ├──,┐
└──────────────────┘ └──────┬───────┘ └────┘ │
4false │
┌──────────────┐ true ┌────┐ │
│WHEN(values─2)├─────,│ S2 ├──,┤
└──────┬───────┘ └────┘ │
4false :
: :
┌──────┴───────┐ true ┌────┐ │
│WHEN(values─n)├─────,│ Sn ├──,┤
└──────┬───────┘ └────┘ │
4false │
┌──────────────┐ ┌────┐ 4
│ OTHRWISE ├─────,│code├──,8──,
└──────────────┘ └────┘ ENDSEL

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-27


Structured Programming Macros: Example 3

 An elaborate example is provided in the text

– Illustrates all of the macros, and all their options

– Nested in various combinations

Source See Appendix A, “Sample structured macro program”

Listing See Appendix B, “Listing of sample program”

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-28


Structured Programming Macros: Notes

 Continuation statements
– Be very careful about continuations! (Run with FLAG(CONT) option)

 Boolean expressions partially optimized


– Evaluated only as far as necessary to determine result
– Can sometimes be simplified: NOT (A AND B) = ((NOT A) OR (NOT B))

 Limitation to at most 50 operands on any one macro


– Parentheses in operands are optional, but helpful

 Some macro operand “keys” not safely usable as program symbols:


P, M, O, Z, H, L, E, NP, NM, NO, NZ, NH, NL, NE,
GT, LE, EQ, LT, GE, AND, OR, ANDIF, ORIF

 Base register required for generated code


– Relative branch instructions not generated

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-29


HLASM Toolkit Feature File Comparison Utility

 File Comparison Utility (“Enhanced SuperC”)


– A powerful and general file comparison and search utility
– Batch mode on MVS and VSE; panel or command line on CMS

 Compares entire files, or individual lines, words, or bytes


– Include and exclude selected data types, lines, columns, rows, etc.

 Search facility supports one or more search strings


– Search strings may be words, prefixes, or suffixes
– Multiple strings may be forced to match only on single lines

 Date-management support includes


– Fixed or sliding windows
– Multiple date formats and representations
– Automatic “aging” of specified date fields

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-30


HLASM Toolkit Feature Usage Scenarios

1. Recovery from object/load modules (if original source is lost)


 Disassembler initially produces “raw” Assembler source from “binary”
 Control statements define code, data, USINGs, labels, DSECTs, etc.
 Repeat disassembly/analysis/description/assembly cycle until satisfied

2. Analysis and understanding of Assembler Language source


programs
a. ASMXREF cross-reference token scanner
 Locates important symbols, user-selected “tokens”
 Creates “impact-analysis” spreadsheet-input file for effort estimation

b. ASMPUT Program Understanding tool


 Graphic displays of program structure, control flow, with any level of detail
 Can be used to help reconstruct (lost) source in HLLs!

3. Modification, testing, and validation of updated programs


 Interactive Debug Facility speeds and simplifies program testing
 Structured Programming Macros clarify program coding logic
 File Comparison Utility tracks before/after status of source, outputs

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-31


HLASM Toolkit Feature: Recovery and Reconstruction

┌───────────┐ ┌──────────────┐ ┌───────────┐ Recovered


│Lost source│ │ │ │ Assembler │ Assembler
│(object or ├──┬─,│ Disassembler ├──,│ Language ├─,─┬──, Language
│executable)│ │ │ │ │ Source │ │ Source Code
└───────────┘ │ └──────────────┘ └───────────┘ │
: 4
│ ┌────────────────────┐ ┌────┴────┐
│ │ Inspect assembly, │ │ │
└─U──┤ create appropriate │U─────┤ HLASM │
│ control statements │ │ │
└────────────────────┘ └─────────┘

 Start with object code (object files or executables)


 Disassemble and inspect; create control statements to describe the
program more fully
 Repeat this cycle as more of the program is understood
 Readable source is used as input to later phases

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-32


HLASM Toolkit Feature: Analysis and Understanding

┌────────────────┐
│ control stmts, │
│ token lists │
└───────┬────────┘
┌───────────┐ 4
│ Assembler │ ┌────┴────┐ ┌──────────┐ ┌────────┐ List of
│ Language ├──┬─,│ ASMXREF ├──,│ ASMPUT ├──,│ ASMIDF ├──,Desired
│ Source │ │ └────┬────┘ └────┬─────┘ └───┬────┘ Changes
└───────────┘ │ 4 : :
│ Tagged ├─────────────┘
│ Source ADATA
│ │ :
4 4 ┌────┴─────┐
└─,─────┴───────,│ HLASM │
└──────────┘

 ASMXREF scans assembler source programs, identifies key items


– Create “tagged” source file identifying important “tokens”

 Assemble; ASMPUT uses ADATA to analyze control flows


– Make immediate updates on workstation with ASMPUT editor

 Use IDF to trace data flows in detail

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-33


HLASM Toolkit Feature: Modification and Testing

┌─────────────────┐
│ Structured Pro─ │
│ gramming Macros │
└────────┬────────┘
┌───────────┐ 4 ┌───────────┐
│ Assembler │ ┌──────┴──────┐ ┌───────┐ ┌────────┐ │Completed, │
│ Language ├─,┬─,│ Source Mods ├──,│ HLASM ├──,│ ASMIDF ├─,┬─,│Revised │
│ Source │ │ └─────────────┘ └───┬───┘ └────┬───┘ │ │Application│
└─────┬─────┘ │ 4 : │ └─────┬─────┘
│ : └──,ADATA───,┘ 4 │
│ │ │ │
│ └U───── modify/assemble/test cycle U─────────┘ │
│ │
│ ┌──────────────────────────────────┐ │
└────────────,│ File Comparison Utility (SuperC) │U────────────┘
└──────────────────────────────────┘

 Modify Assembler Language source at desired points


 Assemble and execute the program, test with IDF
 Make indicated modifications until result is satisfactory
 Compare original and updated source files to validate changes

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-34


HLASM Toolkit Feature: Validation

U── Present Date ───, U─── Future Date ────,


┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐
│Old Data│ │Old Data│ │Old Data│ │New Data│
└───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘
4 4 4 4
┌───┴────┐ ┌───┴────┐ ┌───┴────┐ ┌───┴────┐
│Original│ │Updated │ │Updated │ │Updated │
│Applicn.│ │Applicn.│ │Applicn.│ │Applicn.│
└───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘
4 4 4 4
┌───┴────┐ ┌───┴────┐ ┌───┴────┐ ┌───┴────┐
│BaseLog1│ │BaseLog2│ │BaseLog3│ │BaseLog4│
└───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘
│ │ │ │
4 ┌──────┐ 4 ┌───────┐ 4 ┌───────┐ 4
└─,│SuperC│U──┴───,│SuperC │U──┴─,│SuperC │U─┘
└──────┘ │w/Aging│ │w/Aging│
└───────┘ └───────┘

 Create “base logs” with original and updated application, current


and “future” dates, and old and modified data
 Compare results at each stage using “Aging” facilities as needed

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-35


HLASM Toolkit Feature: Scenario Summary

 The Toolkit Feature's components support all phases of Assembler


Language development, maintenance, and migration:
┌───────────┐ ┌───────────────┐ ┌─────────┐ ┌─────────┐
│Lost source│ ┌─────,│Enhanced SuperC│U──────┐ │ SP macs │ │Test Data│
│(obj,load) │ │ └───────────────┘ │ └────┬────┘ └──┬─┬─┬──┘
└─────┬─────┘ : : 4 4 4 4
┌─────4──────┐ │ ┌──────┐ ┌──────┐ │ ┌───┴───┐ ┌─────┐ Updated
│Disassembler├──,Source──,│ XRef ├──,│P.U.t.├──,Updated─,│ HLASM ├─,│ IDF │─, Applic'n
└───┬───┬────┘ Code └──┬───┘ └───┬──┘ Source └───┬───┘ └┬─┬──┘ 4 4 4
: 4 4 4 : : 4 : │ ┌──┴─┴─┴──┐
┌─┴───┴─┐ │ ┌──┴──┐ │ │ └─ADATA─┘ 4 │Base Logs│
│ HLASM │ └────,│HLASM├──ADATA─┘ │ │ └──┬─┬─┬──┘
└───────┘ └─────┘ └── modifications ──┘ 4 4 4
┌─────────┐
│ SuperC │
└─────────┘

U──Recovery──, U─── Analysis ────, U───── Modify/Test/Validation ─────,


Phase Phase Phase

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-36


HLASM Toolkit Feature: Full-Spectrum Application Support

Activity Toolkit Feature Components


Inventory, assessment Disassembler helps recover programs
Locating key fields Cross-Reference Facility pinpoints fields, localizes
references
Application Program Understanding Tool provides insights
understanding into
program structures and control flows;
Interactive Debug Facility monitors instruction and
data flows at any level of detail
Decide on fixes ...
Implement changes Structured Programming Macros clarify source
code; Enhanced SuperC helps validate source
changes
Unit test Interactive Debug Facility provides powerful
debugging and tracing capabilities
Debug Interactive Debug Facility debugs complete
applications, including loaded modules
Validation Enhanced SuperC checks regressions, validates
correctness of updates

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-37


HLASM Toolkit: Summary

 HLASM Toolkit Feature provides a powerful, flexible toolset:

1. Disassembler

2. Cross-Reference Facility

3. Program Understanding Tool

4. Interactive Debug Facility

5. Structured Programming Macros

6. File Comparison Utility (Enhanced SuperC)

 Supports almost all development and maintenance tasks

– On OS/390, MVS/ESA, VM/ESA, and VSE/ESA

HLASM Toolkit  IBM Corporation 1995, 2000 TKIT-38


Rev. 28 Feb 00 1100 Fmt. 28 Feb 00, 1103

You might also like