NOTE: Screen shots of SPF running on Vista
SPF/PC
1
2
SPF/PC v4 
1
2
SPF/PRO v5
1
2
- SPF/SE (98/ME/W2K/XP/Vista) - Web Site - Images:
1
2
3
4
5
6
7
SPF/SE is an SPF editor and file manager. The display appearance is flexible allowing several choices on how menus and options will look from windows GUI to the old "DOS" or "Legacy" menu style.
SPF/SE is the first SPF editor to use a built-in C interpreter which is easy to use having sufficent capability to do most macro operations. The interpreter allows you to include macro source code at run-time (put the #include statement after main function).
The interpreter minimizes variable house-keeping overhead taking a traditional string oriented approach instead of treating strings as character arrays.
The trace("on"); and MSG() functions provide feedback needed to find the bug. When the interpreter encounters an error the code is displayed with the error message just above the code.
REXX: There is a perception that SPF/SE can not work with REXX. While SPF/SE does not use REXX as it's macro language as did SPF/PC v3/4/PRO it takes just a few lines of code call a REXX interpreter and pass/return parms.
This allows internal (data manipulation etc) and external operations (helps, ftp etc.). You could also use BASIC, Pearl, PHP, Python etc. as well.
Code shows how to call any REXX macro: Command===> SPF dir2html
void spf(void) {
char *trexx = "h:\\u\\pcdos\\rexx.exe h:\\u\\spfpc40\\macros\\"; //Set Location of REXX Interpreter and macro
char *tcmd;
int i;
strcat(trexx,argv[1]); //Get Name of REXX macro to execute passed from Edit command line
strcat(trexx,".spf "); //Could leave this off or change to REX/CMD etc.
i = 2;
while (i < argc) { strcat(trexx,StrCompose(" ",argv[i])); ++i; }//wend Get rest of parms (if any)
tcmd = strcompose("system NOBATCH NOSTOP ",trexx); //Build OS Command
spfservice("cmd",tcmd); //Send it to OS
}//spf
Code to call REXX macro passing it the name of the edit file: Command===> ftpsend
//FTPSEND.SPF contains code to build FTP command sequence
void ftpsend(void){
char *tcmd;
char *tfilespec;
tfilespec = spfservice("query","filespec"); //Get filespec being edited from SPF/SE
tcmd = strcompose("system ","h:\\u\\pcdos\\rexx.exe h:\\u\\spfpc40\\macros\\ftpsend.spf ",tfilespec);
spfservice("cmd",tcmd); //Send to OS
}//ftpsend
As you can see from these two examples, it doesn't take much effort to use REXX with SPF/SE.
- SPF/SE C Macros (Right click/Save as to download)
CALC.C - Pops up Windows calculator.
DBLCLICK.C - Place cursor on keyword, double click left mouse button, info for the keyword is displayed in a window.
Requires H3.SPF and one of the help indexes listed under H3.SPF. You can use the keys (0.k) menu/primary command to set a function key to call this macro.
DBLCLICKC.C - Does the same as DBLCLICK.C - Is 100% SPFSE C. Requires x.c functions.
FTPSEND.C - Sends filespec to BFTPSEND.SPF to put code/file on server. Requires BFTPSEND.SPF macro.
RDOS.C - Performs DOS command, returns results in new edit session.
SPF.C - Sends .SPF REXX code to REXX interpreter for execution.
SUB.C - Submits code to SUB.SPF for execution.
SUB2.C - Submitt edit code to system for execution. 100% SPFSE C. Requires x.c functions.
Works with ASM BAS BAT CMD CPP FTP GIF HTM HTML JBS JPG JPEG LBS PBS PDB PDF PHP PRG REX REXX VBS ZBS
NOTE: Some of these macros require use of a REXX interpreter as a REXX macro is used to do the heavy lifting (meaning I am too lazy to write the C code). See macros further down on this page.
- SPF/SE Colormaps (Right click/Save as to download)
ASM
C
COBOL
HTML
JCL
MFCOBOL
PowerBASIC
RealiaCOBOL
REXX
- SPF/SE Edit Profiles (Right click/Save as to download)
ASF
COM
FLI
FLV
GIF
HTM
ISO
JPEG
JPG
MP3
PDF
PNG
PPT
RAR
RPM
RTF
SWF
WAV
WMV
ZIP
- SPF/SE C Functions (Right click/Save as to download) - These functions are my attempt to make writting SPF/SE macros a little easier from a die-hard REXX programmer's perspective. Usage info in header comment of macro.
X.C - Contains the following macros:
CENTER.C - Returns string centered in n pad char. char = xcenter(string,length,padchar);
COPIES.C - Returns string with n copies of string. char = xcopies(string,n);
FILESPEC.C - Returns specified parts of a fully qualified filespec. char = xfilespec(string,opt);
LASTPOS.C - Returns last col in which needle appear in haystack. int = xlastpos(needle, haystack);
LENGTH.C - Returns length of string. int = xlength(x);
LEFT.C - Returns Left chars of string padded as needed. char = xleft(string, cols, padchar);
LOWER.C - Returns string converted to all lower case. char = xlower(string);
POS.C - Returns start of needle in haystack begining at startcol. char = xpos(needle, haystack,start);
REXXSERVICE.C - Sends command to REXX interpreter, returns results. char = rexxservice(opt,string);
Example: T = rexxservice("cmd","54243.001 +2"); == "54245.001" You now have REXX math capability with SPF/SE's C interpreter and other REXX functions.
Example: T = rexxservice("cmd","XRANGE('a','z')''XRANGE('A','Z')"); == "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" .
Example: T = rexxservice("exec","filespec"); allows you to directly execute REXX code from within a C maro.
Any one line REXX command can be executed and result returned. Just be sure to use ticks ' to enclose strings in REXX command. It is not the same as having an embedded REXX interpreter but it will execute a REXX instruction and return the result. If the return string is "REXXERROR" then you had a REXX instruction syntax error.
You could write a more complex function to perform ramdom file I/O by writing a macro that accepts filespec and fseek values as parms saving the retrieved results in a file to be read by SPF/SE C macro. Who says you can't have REXX in SPF/SE?
RIGHT.C - Returns Right chars of string padded as needed. char = xright(string,cols,pad);
SPACE.C - Returns string with n fill chars between char words. char = xspace(string,padchar,padcnt,delim);
STRIP.C - Returns string with Leading/Trailing/Both chars lopped from string. char = xstrip(string,opt,stripchar);
SUBSTR.C - Returns string with from string starting at specified col for n cols with n cols padded as specified.
char = xsubstr(string,startcol,length,padchar);
TRANSLATE.C - Returns string where individual chars are translated as specified in output and input strings.
char = xtranslate(string,tableout,tablein);
TRIML.C - Returns string with n chars lopped off left end of string. char = xtriml(string,n);
TRIMR.C - Returns string with n chars lopped off right end of string. char = xtrimr(string,n);
UPPER.C - Returns string converted to all upper case. char = xupper(string);
WORD.C - Returns nth char delimited word. char = xword(string,n,delim);
WORDLENGTH.C - Returns length of n char delimited word in string. int = xwordlength(x,n,delim);
WORDPOS.C - Returns word number of matching char delimited Word after specified start word number.
int = xwordpos(word, string, start, delim);
WORDS.C - Returns number of char delimited words. int = xwords(string,delimchar);
- SPF/PRO - (95/98/ME/NT/W2K/XP/Vista) Feature List - Screen Images:
1
2
3
4
5
6
7
8
The best of the SPF file manager/editors with syntax colorization, REXX macro language, extensible ISPF Panel/command system, comprehensive built-in manual, column/row cut/paste, etc. Runs well in a windows emmulator (VM and VPC).
Need to edit/sort four million line data/code files or perform search/edits on 2,000 HTML files at once? No problem. I was relieved to see it working on Vista (95 compatability).
- SPFPRO Reference
- Colormaps (SPFPRO, SPFPC 4.x) - (Right click/Save as to download)
370
ADSO
BAT
C
COBOL
DL6
HTML
JCL
LBS
PAN
PBC
PBS
PHP
REXX
ZBS
- Edit Profiles - (Right click/Save as to download)
ASF
COM
EXE
FLI
FLV
GIF
ISO
JPG
JPEG
JS
MP3
PDB
PHP
PDF
PPT
PNG
RAR
RPM
RTF
SWF
WAV
WMV
ZIP
- Macros for SPFPCv3/4, SPFPRO Some macros will work with SPF/PC, SPF/SE and XE using an external DOS or Windows REXX Interpreter such as:
DOSREXX
OOREXX
R4
Reginald
Regina
roo
ABSTRACT.SPF - Shows how to create a HTML document for IE to display and print. I create a lot of reports and have found it is easier to have REXX build the report into a web page, using IE (or whatever) to display/print the report.
Works with SPFPC, SPFPRO.
BACKBOX.SPF - CTC - (Assign to keys) Background Box Drawing Edit Macro.
Works with SPFPC, SPFPRO.
BFTPSEND.SPF - Send ANY file to web site(s) defined in list. My second most used macro. I use it to upload HTML/CSS/JAVA/REXX code, FLI, FLV, GIF, JPG/JPEG, PDF, MP3, SWF, WMA, WMV, WAV etc. to web sites I mantain without having to remember the address, userid, password etc. Will also send a copy to a mirror site if specified in list.
Works with SPFLite, SPF/PC, SPFPC, SPFPRO, SPF/SE(see comment), XE.
BFTPGET.SPF - Sometimes you just have to get the code back from the server. To use initiate an Edit session on the file you want to overlay with the web version and BFTPGET will retrieve the file. Macro shows how to specify ftp info.
Works with SPFPC, SPFPRO.
BOX.SPF - CTC - Box Drawing Edit Macro.
Works with SPFPC, SPFPRO.
CALC.SPF - Bring up windows calculator within SPF.
Works with SPFPC, SPFPRO, SPF/SE(see comment), XE
CAP.SPF - Make 1st letter of each sentence text upper case.
Works with SPFPC, SPFPRO.
CENTER.SPF - CTC - Center text in line.
Works with SPFPC, SPFPRO.
CHECK.SPF - Validates HTML, Java or PHP code (syntax). Uses Tidy for html, JLint for Java and PHP windows binary for PHP.
Works with SPFPC, SPFPRO.
COMP.SPF - Call compiler based on file name extension (.ext). Compile errors are returned to the source code edit session as a NOTE just above the buggy code. Works with DOS Batch, PowerBASIC, C, Visual BASIC, Clipper, PHP, MicroFocus/Realia COBOL, ZBASIC.
Works with SPFPC, SPFPRO.
COUNTSTR.SPF - CTC - Counts string occurance in text.
Works with SPFPC, SPFPRO.
CSA.SPF - CTC - Calls CTC COBOL Explorer.
Works with SPFPC, SPFPRO.
DELWORD.SPF - CTC - (Assign to key) Deletes the word at the cursor position. The cursor is positioned where the word began before it was deleted.
Works with SPFPC, SPFPRO.
DIR.SPF - Excutes the OS DIR command returning result (C:\TEMP\DRET.TXT) in a new edit session. Remember that SPF has to wait for DOS/Emmulator to get done processing the command.
Works with SPFPC, SPFPRO.
DIR2HTML.SPF - Takes Directory Listing and Creates HTML page. Expects the input file to be C:\TEMP\DRET.TXT and the Output file will be C:\TEMP\DRET.HTM
Works with SPF/PC, SPFPC, SPFPRO, SPF/SE(see comment), XE.
DIR2SITEMAP.SPF - Takes Directory Listing (C:\TEMP\DRET.TXT) and Creates a XML Google compliant site map file. Really fast. Output file will be C:\TEMP\DRET.XML (Sample). Edit to change Windows/DOS slashes to internet linux slashes.
Works with SPFLite, SPF/PC SPFPC, SPFPRO SPF/SE(see comment), XE.
EDITFILE.SPF - CTC - (Assign to a key) EDITFILE is best used when assigned to a key, like CTRL-E. It allows you to be inside a source module that makes reference to a copy book or a C include file and, by positioning the cursor on top of the name of the file and hitting the assigned key, edit the file with a single keystroke.
Works with SPFPC, SPFPRO.
FLOWTXT.SPF - Flow text to aid in creation of text (book size) web page or for conversion to a PALM document.
Works with SPFPC, SPFPRO.
GETVAR.SPF - CTC - Get an OS environment variable value.
H1.SPF - How to call a PC program passing it the word the cursor is on.
Works with SPFPC, SPFPRO.
H3.SPF - (Assign to key and/or mouse) This macro is designed to provide a help screen when you place cursor over key word and double-click or use assigned function key. Having to program in one of ten languages on a given day, I needed a system to refresh memory. This macro uses indexes to determine where to find the info for the keyword. Calls 3 types of help files: Text, WebPage and Windows CHM. In SPFPC/SPFPRO place cursor on keyword and press assigned key. When a text file is used, the keyword syntax is displayed one line above the keyword. When viewing a web page or windows help (CHM) the internet browser (IE or another) is invoked passing the location of the CHM help file. Press ALT F4 to close window and return to SPF.
NOTE: For SPFPRO users, when editing SPF or ISP macros H3 will call the buit-in SPFPRO help system for the keyword.
For SPFPCv3/4 users the SPFPRO.BDX index will be used to call an indexed web version of the SPFPRO help file.
For non-SPFPRO/SPFPCv3/4 (such as SPF/PC 2.1, SPF/SE, XE). This macro will work when called from the command
line with parms passed through your Windows or DOS REXX interpreter.
Screen Shots: SPFLite SPF/PC, XE
Here are some help files to get you started:
ADSO - IDMS ADSO Main Frame/PC calls manmrk web page
ASM(PC) - PC Assembly Language using ASM.BDX file for info
C - Language (no extensions) uses C.BDX file for info
COBOL - Language calls manmrk web pages or Download Pages
HTML - HTML Tags - Calls W3C web pages for info
LB - Liberty Basic - Calls manmrk web pages
OOREXX - calls manmrk web pages or Download Pages
PHP - PHP Functions/Syntax - Displays compliled web page from .CHM file Download PHP-CHM-HelpFile
PowerBasic for DOS - calls manmrk web page
PowerBasic Console Compiler v4 - calls manmrk web pages or Download Pages
PowerBasic Console Compiler v5 - calls manmrk web pages or Download Pages
PowerBasic Windows v8 - calls manmrk web pages or Download Pages
PowerBasic Windows v9 - calls manmrk web pages or Download Pages
REXX - uses REXX.BDX file for info (file I created for Personal REXX)
REXXC - Classic REXX help - calls manmrk mirror of KREXX Pages or Download Pages
SPFPRO - Help for SPFPCv4 - calls manmrk web page
Works with SPFLite, SPF/PC, SPFPC, SPFPRO, SPF/SE(see comment, DBLCLICK.C), XE.
HAPI.SPF - Shows how to call a Windows Help DLL from within SPF.
Works with SPFPC, SPFPRO.
LENGTH.SPF - CTC (Assign to key) Determines the length of word under cursor.
Works with SPFPC, SPFPRO.
MARKSRTN.SPF - Mark's REXX Subroutines
MATCH.SPF - CTC - Find matching ()[]{}<> character.
Works with SPFPC, SPFPRO.
NEXTWORD.SPF - CTC - (Assign to a key) This macro finds the next occurrence of the word at the current cursor position. This elimiates the need to enter a find command on the command line when you wish to find other occurrences of a program variable.
Works with SPFPC, SPFPRO.
ONLY.SPF - CTC - Performs converse of EXCLUDE command, where the current edit session is searched and all lines that DO NOT contain the specified search criterion are excluded.
Works with SPFPC, SPFPRO.
PREVWORD.SPF - CTC - (Assign to a key) Finds the previous occurrence of the word at the current cursor position. Elimiates the need to enter a find command on the command line when you wish to find other occurrences of a program variable.
Works with SPFPC, SPFPRO.
RDOS.SPF - Excute DOS command/program returning results to a new edit session.
Works with SPFPC, SPFPRO.
SUB.SPF - Submit programs/files for execution on PC. My most used macro. Sends HTML, GIF, JPG, SWF, PDF files to IE for display.
Using SPFPC/SPFPRO Sub can execute SPF/ISP macros and SPFPC/SPFPRO Dialog/Panels. SPF/SE C macros are sent to SPF/SE for execution.
When compiler source (BASIC/ZBASIC/POWERBASIC, COBOL, etc is sumbitted, SUB swaps the filespec exnt (.bas .c .pbc .pbs etc) for .com/.exe and attempts to execute such in the source code home directory.
SUB can execute REXX macros using your favorite REXX interpreter.
DBase/XBase source is sent to the DB engine for execution. PalmDOC files are sent to DOCREADER for execution. See comment for list of support languages.
Works with SPFLite, SPF/PC, SPFPC, SPFPRO, SPF/SE(see SUB.C under SPF/SE C macros), XE.
WIN.SPF - Execute Windows programs from within SPFPRO or SPFPC 4.x.
Works with SPFPC, SPFPRO.
- Macro Subroutines - Most will work with any REXX interpreter
XDETREXX.SPF - Determines REXX Interpreter (PCDOS/R4/REXXIBM/PersonalREXX/SPFPCv4/SPFPR/OOREXX)
XFILESPEC.SPF - Retrieve components of file name (uses LTRIM)
XFLIP.SPF - Swap text around a comma
XGETPARM.SPF - Get parms bounded by ticks '' in string
XISLIKE.SPF - Do pattern matching on a string (like DOS wildcards)
XMSGBOX.SPF - Uses WMSGBOX.EXE to display OK message box in windows
XOSCMD.SPF - Sends commands to System OS based on REXX interpreter
XTRIM.SPF - Trim left n or right n characters from a string
XUCWORDS.SPF - Make 1st letter of each word upper case
XWORDS.SPF - Perform 'WORD' string handling on strings using characters other than a space
XZEROFILES.SPF - Zeros out a file (REXX can not). Uses WZEROFILE.EXE
- SPF History
SPF/SE 6.0 (released 9/06)
SPF/SE 5.0 (released 6/05)
SPF/SE 4.5 (released 10/02)
SPF/SE 4.0 (released 10/01)
SPF/SE 3.5 (released 11/00)
SPF/SE 3.0 (released 4/00)
SPF/SE 2.5 (released 3/99)
SPF/SE 2.0 (released 3/98)
SPF/SE 1.0 (released 3/97) - First to use C interpreter for Macro language instead of REXX. (98/ME/NT/W2K/XP/VISTA)
SPF/PRO 5.03 Image - Feature List (released 4/96) Last using REXX (95/98/ME/NT/W2K/XP/Vista)
Vista Images: 1 2
SPF/Win 1.0 (released 5/95)
SPF/Shell for XDB (released 3/95)
SPF/Shell for DB2 (released 3/95)
SPF/Shell for MicroFocus (released 1/95)
SPF/PC 4.07 Image - Feature List (released 6/94 - Last DOS version - DOS/95/98/ME/NT/W2K/XP/Vista)
Vista Images: 1
2
SPF/PC 3.0 (released 3/93) - First version to include REXX and ISPF panels
SPF/2 2.0 (released 5/92)
SPF/2 1.0 (released 10/90)
SPF/PC 2.1 Image(released 1/90 - Last Small DOS version - DOS/95/98/ME/NT/W2K/XP/Vista)
Vista images: 1
2
SPF/PC 2.0 (released 3/88)
SPF/PC 1.82 Image (released 12/87)
GML/PC 1.0 (released 9/86)
SPF/PC 1.0 (released 6/84)
|