Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
CICS
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Macro-level programming=== When CICS was first released, it only supported application transaction programs written in [[IBM Basic Assembly Language|IBM 360 Assembler]]. [[COBOL]] and [[PL/I]] support were added years later. Because of the initial assembler orientation, requests for CICS services were made using assembler-language [[macro instruction|macros]]. For example, the request to read a record from a file were made by a macro call to the "File Control Program" of CICS might look like this: DFHFC TYPE=READ,DATASET=myfile,TYPOPER=UPDATE,....etc. This gave rise to the later terminology "'''Macro-level''' CICS." When high-level language support was added, the macros were retained and the code was converted by a pre-compiler that expanded the macros to their COBOL or PL/I CALL statement equivalents. Thus preparing a [[high-level programming language|HLL]] application was effectively a "two-stage" [[compiler|compile]]{{snd}} output from the preprocessor fed into the HLL compiler as input. '''COBOL considerations''': unlike PL/I, IBM COBOL does not normally provide for the manipulation of pointers (addresses). In order to allow COBOL programmers to access CICS control blocks and dynamic storage the designers resorted to what was essentially a hack. The COBOL ''Linkage Section'' was normally used for inter-program communication, such as parameter passing. The compiler generates a list of addresses, each called a ''Base Locator for Linkage'' (BLL) which were set on entry to the called program. The first BLL corresponds to the first item in the Linkage Section and so on. CICS allows the programmer to access and manipulate these by passing the address of the list as the first argument to the program. The BLLs can then be dynamically set, either by CICS or by the application to allow access to the corresponding structure in the Linkage Section.<ref>{{cite book|last1=IBM Corporation|title=Customer Information Control System (CICS) Application Programmer's Reference Manual|date=1972|url=http://www.bitsavers.org/pdf/ibm/370/CICS/SH20-1047-4_CICS_Application_Programmers_Reference_Manual_Dec72.pdf|access-date=Jan 4, 2016|archive-date=May 29, 2019|archive-url=https://web.archive.org/web/20190529212914/http://bitsavers.org/pdf/ibm/370/CICS/SH20-1047-4_CICS_Application_Programmers_Reference_Manual_Dec72.pdf|url-status=live}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)