/* FaxScript For GPFax And ZVT					*/
/* Start/Listen GPFax, Recieve Fax, Exit/Unlisten GPFax		*/

ADDRESS VOIXELPORT
options results

signal on break_c
signal on halt
signal on syntax

options failat 50

say "FaxScript For GPFax And ZVT"

ADDRESS COMMAND "WFP REXX_GPFAX 0"

if rc>0 then
	do
		ADDRESS COMMAND "run >nil: <nil: GPFax:GPFax -z -W -NP -Q"
		ADDRESS COMMAND "WFP REXX_GPFAX 30"
		if rc>0 then
		do
			call setVars(rc)
			exit
		end
		ADDRESS rexx_gpfax recfax
		call setVars(rc)
		ADDRESS rexx_gpfax quitfax
    end
else
	do
		ADDRESS rexx_gpfax openserial
		ADDRESS rexx_gpfax recfax
		call setVars(rc)
		ADDRESS rexx_gpfax closeserial
	end
exit


setVars: procedure
	parse arg error

	if error=0 then
		do
		address rexx_gpfax 'reportlog' 6
		address zvt.1 'setlength ' || result
		address rexx_gpfax 'reportlog' 1
		address zvt.1 'setname ' || result
		end
	else
		do
		address rexx_gpfax 'reportlog' 6
		address zvt.1 'setlength ' || 0
		address zvt.1 'setname no_file'
		end
	return rc


error:
	call Debug("Error" rc "at line" sigl)
	return rc

break_c:
halt:
	call Debug("CTRL_C at line" sigl)
	exit 20

syntax:
	call Debug("Syntax error" rc "at line" sigl)
	return rc


Debug: procedure
	parse arg info

	firstLine = sourceline(1)
	parse var firstLine '/*' title '*/'
	say title ':' info
	return
