Stephen Powell's Macro Library
Stephen Powell created an extensive library of macros to extend the
functionality of Assembler XF running under z/VM. He has made his library
available for use by others who wish to assemble programs written for later
architectures, but are limited to the public domain assemblers.
The macros are distributed free of charge, free of service, free of support,
and free of liability. Use at your own risk. They come with
ABSOLUTELY NO WARRANTY, including the implied warranties of merchantability and
suitableness for a particular purpose, etc. You may do anything with them
that you want, including addition, modification, deletion, redistribution, and
incorporation into a derivative work. You may not, however, restrict what
anyone else can do with them in any way. In other words, this is public
domain material.
The library contains the following 610 macros:
ADB CLGFI JO LZXR SETR
ADBR CLGFR JP MAD SFPC
AEB CLGR JXH MADB SG
AEBR CLIY JXLE MADBR SGF
AFI CLMH JZ MADR SGFR
AG CLMY KDB MAE SGR
AGF CLRCH KDBR MAEB SHY
AGFI CLST KEB MAEBR SIE
AGFR CLY KEBR MAER SIGA
AGHI CMPSC KIMD MAY SLAG
AGR CONCS KLMD MAYH SLB
AHI CPYA KM MAYHR SLBG
AHY CSCH KMAC MAYL SLBGR
ALC CSG KMC MAYLR SLBR
ALCG CSP KXBR MAYR SLFI
ALCGR CSPG LAE MDB SLG
ALCR CSY LAM MDBR SLGF
ALFI CUSE LAMY MDE SLGFI
ALG CUTFU LARL MDEB SLGFR
ALGF CUUTF LASP MDEBR SLGR
ALGFI CU12 LAY MDER SLLG
ALGFR CU14 LB MEE SLY
ALGR CU21 LBR MEEB SPCS
ALY CU24 LCDBR MEEBR SQD
AMODE CU41 LCEBR MEER SQDB
AXBR CU42 LCGFR MGHI SQDBR
AY CVBG LCGR MHI SQDR
BAKR CVBY LCTLG ML SQE
BAS CVDG LCXBR MLG SQEB
BASR CVDY LCXR MLGR SQEBR
BASSM CXBR LDE MLR SQER
BCTG CXFBR LDEB MS SQXBR
BCTGR CXFR LDEBR MSCH SQXR
BRAS CXGBR LDER MSD SRAG
BRASL CXGR LDXBR MSDB SRLG
BRC CXR LDXR MSDBR SRNM
BRCL CY LDY MSDR SRST
BRCT DDB LEDBR MSE SRSTU
BRCTG DDBR LEDR MSEB SSAIR
BRE DEB LEXBR MSEBR SSAR
BREL DEBR LEXR MSER SSCH
BRH DIAG LEY MSG SSKE
BRHL DIDBR LFPC MSGF STAM
BRL DIEBR LG MSGFR STAMY
BRLL DISCS LGB MSGR STCKE
BRM DL LGBR MSR STCKF
BRML DLG LGF MSTA STCMH
BRNE DLGR LGFI MSY STCMY
BRNEL DLR LGFR MVCDK STCPS
BRNH DSG LGH MVCIN STCRW
BRNHL DSGF LGHI MVCK STCTG
BRNL DSGFR LGHR MVCLE STCY
BRNLL DSGR LGR MVCLU STDY
BRNM DXBR LHI MVCP STETR
BRNML DXR LHR MVCS STEY
BRNO EAR LHY MVCSK STFL
BRNOL EFPC LLC MVIY STFLE
BRNP EPAIR LLCR MVPG STFPC
BRNPL EPAR LLGC MVST STG
BRNZ EPSW LLGCR MXBR STHY
BRNZL EREG LLGF MXDB STMG
BRO EREGG LLGFR MXDBR STMH
BROL ESAIR LLGH MY STMY
BRP ESAR LLGHR MYH STPCS
BRPL ESEA LLGT MYHR STPQ
BRU ESTA LLGTR MYL STRAG
BRUL FIDBR LLH MYLR STRV
BRXH FIDR LLHR MYR STRVG
BRXHG FIEBR LLIHF NG STRVH
BRXLE FIER LLIHH NGR STSCH
BRXLG FIXBR LLIHL NIHF STSI
BRZ FIXR LLILF NIHH STURA
BRZL FLOGR LLILH NIHL STURG
BSA HSCH LLILL NILF STY
BSG IAC LMD NILH STZP
BSM ICMH LMG NILL SVS
BXHG ICMY LMH NIY SXBR
BXLEG ICY LMY NY SY
CCW0 IDTE LNDBR OG SZP
CCW1 IIHF LNEBR OGR TAM
CDB IIHH LNGFR OIHF TAR
CDBR IIHL LNGR OIHH TB
CDFBR IILF LNXBR OIHL TBDR
CDFR IILH LNXR OILF TBEDR
CDGBR IILL LPDBR OILH TCDB
CDGR IPM LPEBR OILL TCEB
CDSG IPTE LPGFR OIY TCXB
CDSY ISKE LPGR OY THDER
CEB IUCV LPQ PALB THDR
CEBR IVSK LPSWE PC TMH
CEFBR J LPTEA PCF TMHH
CEFR JAS LPXBR PGIN TMHL
CEGBR JASL LPXR PGOUT TML
CEGR JCT LRAG PKA TMLH
CFC JE LRAY PKU TMLL
CFDBR JH LRV PLO TMY
CFDR JL LRVG PR TP
CFEBR JLE LRVGR PT TPI
CFER JLH LRVH PTFF TPROT
CFI JLL LRVR PTI TPZI
CFXBR JLM LT RCHP TRACE
CFXR JLNE LTDBR RIO TRACG
CG JLNH LTEBR RLL TRAP2
CGDBR JLNL LTG RLLG TRAP4
CGDR JLNM LTGFR RMODE TRE
CGEBR JLNO LTGR RP TROO
CGER JLNOP LTXBR RRBE TROT
CGF JLNP LTXR RSCH TRTO
CGFI JLNZ LURA SAC TRTR
CGFR JLO LURAG SACF TRTT
CGHI JLP LXD SAL TSCH
CGR JLU LXDB SAM24 TVS
CGXBR JLZ LXDBR SAM31 UNPKA
CGXR JM LXDR SAM64 UNPKU
CHI JNE LXE SAR UPT
CHY JNH LXEB SCHM XG
CKSM JNL LXEBR SCKPF XGR
CLCLE JNM LXER SDB XIHF
CLCLU JNO LXR SDBR XILF
CLFI JNOP LY SEB XIY
CLG JNP LZDR SEBR XSCH
CLGF JNZ LZER SERVC XY
|
Installation
I have packaged the files in two archives - opcodes.tgz
[MD5: 89D0C0317914339EF25D53B1B3483D87] and opcodes.zip
[MD5: E046FA2D945FFCCF79145B3E821A082C]. The contents
of the two archives are functionally identical, however opcodes.tgz was created
using tar+gzip and the text files contained therein are in Linux format (lines
terminated by x'0a'), while opcodes.zip was created using WinZip and the text
files contained therein are in Windows format (lines terminated by x'0d'x'0a').
The files contained in the archives are:
- opcodes1.bin - [EBCDIC] IEBUPDTE jobstream to create a PDS under MVS.
- opcodes1.txt - [ASCII] same content as opcodes1.bin
- opcodes2.bin - [EBCDIC] CMS MACLIB in packed format
- opcodes3.bin - [EBCDIC] documentation, installation instructions, etc.
- opcodes3.txt - [ASCII] same content as opcodes3.bin
- opcodes4.bin - [EBCDIC] assembler source for installation verification
program
- opcodes4.txt - [ASCII] same content as opcodes4.bin
Download the archive appropriate to your Hercules' host system, extract the
contents, and read/follow the instructions in opcodes3.txt.
Note for VM users: opcodes2.bin is a CMS MACLIB in a packed
format. Transfer it to a CMS system as a fixed-length file with a record
length of 1024 and a block size of 1024. Then use COPYFILE with the UNPACK
option to convert it back to a MACLIB. For example:
COPYFILE OPCODES2 BIN A OPCODES MACLIB A ( UNPACK
Even though a MACLIB has fixed-length records, I packed it to avoid problems
with the internal end-of-file indicators which separate members from causing
problems when using OS copy methods, such as are used by MOVEFILE. Note
that this MACLIB is in the newer LIBPDS format, rather than the older DMSLIB
format. Very old versions of CMS may not understand this MACLIB
format. In that case, I suggest they get the MVS job stream (opcodes1.bin)
and write an EXEC to separate the members and build their own MACLIB in DMSLIB
format.
I hope that you have found my instructions useful. If you have
questions that I can answer to help expand upon my explanations and examples
shown here, please don't hesitate to send them to me:

This page was last updated on April 22, 2008
. |