home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 2
/
goldfish_vol2_cd1.bin
/
files
/
dev
/
asm
/
snma
/
arexx
/
shellasm.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1994-08-23
|
2KB
|
85 lines
/*
This little program assembles file using snma arexx host
It is quite similar to the Shell interface of SNMA.
If you want to pass in more argumets enclose them to quotes ("like this").
Feel free to add more commandline arguments in ASM command to fullfil
your needs.
*/
if arg() ~= 1 THEN DO
say 'Usage: rx ShellAsm.rexx "CMDLINE"'
exit 5
end
arg cmd
address SNMA
call Assemble(cmd)
call DisplayErrors
call DisplayWarnings
call DisplayInfo
'FREE' /* free source, errors...*/
exit
/*
Following routine will assemble and display information about it
Now this one takes one argument , commandline
"Ram Disk:"
*/
Assemble:
options RESULTS
arg cmd
cmd=strip(cmd,B,'"') /* strip leading and trailing "s */
mydir=pragma('d')
mydir=insert('"',mydir,0)
mydir=insert('"',mydir,length(mydir))
CHDIR mydir /* change the current directory of the snma */
say "Calling SNMA: ASM" cmd
ASM cmd /* assemble it */
INFO STAT /* get status information */
return /* End of Assemble */
DisplayInfo:
say 'Result:' STAT.STATUS'.' STAT.LINES 'lines assembled.'
if STAT.STATUS = 'FAIL' THEN say 'Failure: ' STAT.FAILSTR
ELSE
say "Err:" STAT.ERRORS "warn:" STAT.WARNINGS
say STAT.CODE 'code hunks. Total ' STAT.CODESIZE 'bytes'
say STAT.DATA 'data hunks. Total ' STAT.DATASIZE 'bytes'
say STAT.BSS 'bss hunks. Total ' STAT.BSSSIZE 'bytes'
return /* end of displayinfo */
/* following code displays all errors */
DisplayErrors:
enum = 1
if STAT.ERRORS > 0 THEN say "Errors..."
do while enum <= STAT.ERRORS
GETERR enum STEM UUR
say '================================================================= '
say UUR.ERRTXT 'in line' UUR.LINENUM 'of file' UUR.FILENAME
say UUR.LINETXT
if UUR.COLUMN > 0 then
say insert(' ','^',0,UUR.COLUMN-1)
else
say '^'
enum=enum+1
end
return /* end of Display Errors */
/* following code displays all warnings */
DisplayWarnings:
enum = 1
if STAT.WARNINGS > 0 THEN say "Warnings..."
do while enum <= STAT.WARNINGS
GETERR enum STEM UUR WARN
say '================================================================= '
say UUR.ERRTXT 'in line' UUR.LINENUM 'of file' UUR.FILENAME
say UUR.LINETXT
say insert(' ','^',0,UUR.COLUMN-1)
enum=enum+1
end
return /* end of DisplayWarnings */