6100 ADCCP Programming Manual

ADCCP Programming Example Using Transaction Application Language (TAL)
B–16 069225 Tandem Computers Incorporated
return;
end
else if ptr = "s" or ptr ="S" then
begin !must be the SEC parm
startup^says^sabm := false;
startup^pri^sec^parm := true;
while ptr <> " " and ptr <> 0 do !blank out the parm
begin
ptr := " ";
@ptr := @ptr[1];
end;
return;
end
else
begin
scan ptr until " " -> @ptr;
if $carry then return;
end;
end;
end;
These lines get the addresses of the primary and secondary substations from the
startup message. The address of the local primary substation is later used in the
DEFINELIST request. The address of the local secondary substation is used in the
SET CONFIGURATION request.
!
!The address parameter is in the startup message in the form:
!ADDRESS(x,y) or ADDR(x,y) or A(x,y)
!After the address parameter has been found, it is blanked from
!the startup message to make further parameter parsing easier.
!
int subproc get^addrs;
begin
int a1,a2;
scan startup^msg.params until "a" -> @ptr;
if $carry then scan startup^msg.params until "A" -> @ptr;
if $carry then return false;
scan ptr until "(" -> @ptr2;
if $carry then return false;
scan ptr2[1] while " " -> @ptr2;
call numin(ptr2,a1,10,status);
if status then return false;
scan ptr2[1] until "," -> @ptr2;
if $carry then return false;
scan ptr2[1] while " " -> @ptr2;
if $carry then return false;
call numin(ptr2,a2,10,status);
if status then return false;
scan ptr until ")" -> @ptr2;
if $carry then return false;
ptr ':=' " " & ptr for @ptr2 '-' @ptr;
Local primary substation.
addresses.<0:7> := a1;
Local secondary substation.
addresses.<8:15> := a2;
return true;
end;