GDSX Manual
APPLS Requester Listing
Extended General Device Support (GDSX) Manual–134303
A-2
APPLS Listing
CALL READUPDATE(RCV^FILE,STARTUP^MSG,2*BUF^WDS,CT^RD);
IF <> THEN CALL DEBUG;
CALL REPLY(,,,,0);
IF <> THEN CALL DEBUG;
CALL OPEN(STARTUP^MSG[OUTFILE],MSG^FILE,0); ! WAITED I/O
IF <> THEN
BEGIN
CALL FILEINFO(-1,FERR);
CALL DEBUG;
END;
WHILE (-1) DO
BEGIN
PID := MYPID;
CPU := PID.<4:7>;
PIN := PID.<8:15>;
CALL NUMOUT(S^MSG^BUF[0],CPU,10,3);
S^MSG^BUF[3] := ",";
CALL NUMOUT(S^MSG^BUF[4],PIN,10,3);
S^MSG^BUF[7] := "-";
CALL WRITEREAD(MSG^FILE,MSG^BUF,8,70,CT^RD);
CALL FILEINFO(MSG^FILE,FERR);
IF (FERR = 0) THEN
BEGIN ! NORMAL COMPLETION
IF (CT^RD > 0) THEN
BEGIN
CALL REVERSE^STRING;
WT^CT := CT^RD+8;
S^MSG^BUF[CT^RD+7] '=:' S^MSG^BUF[CT^RD-1] FOR CT^RD
& [8*[" "]];
END
ELSE
BEGIN
WT^CT := 12;
S^MSG^BUF[0] ':=' 8*[" "] & ["****"];
END;
CALL WRITE(MSG^FILE,MSG^BUF,WT^CT);
IF <> THEN
BEGIN ! CONTINUE ON GDSX SWITCHOVER
CALL FILEINFO(MSG^FILE,FERR);
IF (FERR <> 210) THEN CALL DEBUG;
END;
END
ELSE IF (FERR = 1) THEN
BEGIN ! USER TYPED CTRL/Y
WT^CT := 28;
S^MSG^BUF ':=' 8*[" "] & ["APPLICATION STOPPING"];
CALL WRITE(MSG^FILE,MSG^BUF,WT^CT);
IF <> THEN CALL DEBUG;
CALL CLOSE(MSG^FILE);
IF <> THEN CALL DEBUG;
CALL STOP;
END
ELSE IF ((FERR = 66) OR (FERR = 201)) THEN
BEGIN ! DEVICE DOWNED (D^H TASK ABORTED OR
! GDSX PROCESS STOPPED)
CALL CLOSE(MSG^FILE);
IF <> THEN CALL DEBUG;
CALL STOP;
END
ELSE IF (FERR = 210) THEN
BEGIN ! OUTFILE SWITCHED TO BACKUP, CONTINUE