/*-------------------------------------------------------------------+ | | | S A S / C S A M P L E | | | | NAME: OSISPF | | LANGUAGE: C | | PURPOSE: Establishes ISPF macros to simplify calls | | INSTALLATION: #include "osispf.h" | | Where this PDS has the DDname H | | COMPILE: None | | LINK: None | | INPUT: None | | OUTPUT: None | | USAGE: At compile time for the routine using the header | | define the PDS containing this member as H and | | include as seen above. | | SYSTEM NOTES: Written for MVS only. | | MISC NOTES: BE SURE TO USE THE COMPILER OPTION - AT | | When using a dummy parm (ie: DUMMY/DUMNUM/other) | | be sure to use the correct type. If not an | | ABEND 0C4 can occur from ISPF. | | | | When calling VDEFINE for a "FIXED"-type variable | | the C variable name(the second argument to the | | VDEFINE macro) must be prefixed with the @-operator. | | | | | +-------------------------------------------------------------------*/ #eject /* misc names */ #define DUMMY " " #define DUMNUM 0 /* display services */ #define DISPLAY(panel, msgid, field) \ __asm_ISPLINK("DISPLAY ", panel, msgid, field) #define TBDISPL(table, panel, msgid, field) \ __asm_ISPLINK("TBDISPL ", table, panel, msgid, field) #define SETMSG(msgid) \ __asm_ISPLINK("SETMSG ", msgid) /* table services - general */ #define TBCREATE(table, keyname, name, access, type) \ __asm_ISPLINK("TBCREATE", table, keyname, name, access, type) #define TBOPEN(table, access) \ __asm_ISPLINK("TBOPEN ", table, access) #define TBQUERY(table, qkey, qvar, qrow, qkeyn, qname, qcrp) \ __asm_ISPLINK("TBQUERY ", table, qkey, qvar, qrow, qkeyn, qname, qcrp) #define TBSAVE(table, copy, alt, perc, libname) \ __asm_ISPLINK("TBSAVE ", table, copy, alt, @(perc), libname) #define TBCLOSE(table, copy, alt, perc, libname) \ __asm_ISPLINK("TBCLOSE ", table, copy, alt, @(perc), libname) #define TBEND(table) \ __asm_ISPLINK("TBEND ", table) #define TBERASE(table, libname) \ __asm_ISPLINK("TBERASE ", table, libname) /* table services - row operations */ #define TBADD(table, name) \ __asm_ISPLINK("TBADD ", table, name) #define TBDELETE(table) \ __asm_ISPLINK("TBDELETE", table) #define TBGET(table, var) \ __asm_ISPLINK("TBGET ", table, var) #define TBPUT(table, name) \ __asm_ISPLINK("TBPUT ", table, name) #define TBMOD(table, name) \ __asm_ISPLINK("TBMOD ", table, name) #define TBEXIST(table) \ __asm_ISPLINK("TBEXIST ", table) #define TBSCAN(table, name, var) \ __asm_ISPLINK("TBSCAN ", table, name, var) #define TBSARG(table, name) \ __asm_ISPLINK("TBSARG ", table, name) #define TBTOP(table) \ __asm_ISPLINK("TBTOP ", table) #define TBBOTTOM(table, var) \ __asm_ISPLINK("TBBOTTOM", table, var) #define TBSKIP(table, val, var) \ __asm_ISPLINK("TBSKIP ", table, @(val), var) #define TBVCLEAR(table) \ __asm_ISPLINK("TBVCLEAR", table) /* file tailoring services */ #define FTOPEN(name) \ __asm_ISPLINK("FTOPEN ", name) #define FTINCL(skel, opt) \ __asm_ISPLINK("FTINCL ", skel, opt) #define FTCLOSE(member, libname, opt) \ __asm_ISPLINK("FTCLOSE ", member, libname, opt) #define FTERASE(member, libname) \ __asm_ISPLINK("FTERASE ", member, libname) /* variable services */ #define VGET(name, opt) \ __asm_ISPLINK("VGET ", name, opt) #define VPUT(name, opt) \ __asm_ISPLINK("VPUT ", name, opt) #define VDEFINE(name, var, form, len, opt, udata) \ __asm_ISPLINK("VDEFINE ", name, var, form, @(len), opt, @(udata)) #define VDELETE(name) \ __asm_ISPLINK("VDELETE ", name) #define VCOPY(name, vlen, vval, opt) \ __asm_ISPLINK("VCOPY ", name, @(vlen), vval, opt) #define VREPLACE(name, vlen, vval) \ __asm_ISPLINK("VREPLACE", name, @(vlen), @(vval)) #define VRESET() \ __asm_ISPLINK("VRESET ") /* other services */ #define SELECT(len, buff) \ __asm_ISPLINK("SELECT ", @(len), buff) #define CONTROL(type, mode, line) \ __asm_ISPLINK("CONTROL ", type, mode, @(line)) #define BROWSE(dsname, serial, psw) \ __asm_ISPLINK("BROWSE ", dsname, serial, psw) #define EDIT(dsname, serial, psw) \ __asm_ISPLINK("EDIT ", dsname, serial, psw) #define LOG(msgid) \ __asm_ISPLINK("LOG ", msgid)