25 CONTINUE GO TO (26, 27), LEFTRT 26 CONTINUE CALL MOTOR (IDIRR(2). 1) GO TO 28 27 CONTIMUE CALL MOTOR (IDIRL(2), 1) 28 CONTINUE CALL WAIT (500, 1, ERROR) 30 CONTINUE IANGLE * BEGIN/CONS CALL ENCODER (IUSE(3), 2) IF (IABS (IUSE(3) - IANGLE) .LT. 35) GO TO 40 IANGLE = IANGLE - CORR(IROT,LEFTRT) CALL MOTOR (IANGLE, 2) 40 CONTINUE STATE = 4 GO TO (45, 40, 7000), DONE 45 CONTINUE GO TO (100, 200), LEFTRT 100 CONTINUE CALL SCAN (ICOUNT, IBUF(11), IDIRR) LEFTRT = 2 GO TO 300 200 CONTINUE CALL SCAN (ICOUNT, IBUF(11), IDIRL) LEFTRT = 1 300 CONTINUE STATE = 5 CALL ENCODER (IANGLE, 2) ANGLE = FLOAT (IANGLE) 1 + FLOAT (ISIGN (ISHFT (IUSE(2), - 12), IANGLE) )/16,0 ANGLE = ANGLE*CONS CALL XMT (KEY, 2, $6000) IANGLE = ANGLE*10,0 + SIGN (.5, ANGLE) CALL COMVS (IANGLE, IOPSM(11) ) CALL ENCODER (IPPOS, 1) ISPOS = (IPPOS + ISIGN (50, IPPOS) )/100 CALL CONVS (IPPOS, IPOSM) CALL OPERAT (IPOSM, ICON1) GO TO (1900, 1950), IROT 1900 CONTINUE BEGIN = BEGIN + DELTAR IF (ENDD - BEGIN .LT. 0.00 GO TO 2005 GO TO 30 1950 CONTINUE BEGIN = BEGIN - DELTAR IF (ENDD - BEGIN .LE. 0.0) GO TO 30 2085 CONTINUE STATE = 6 GO TO (2010, 2005, 7000), DONE 2010 CONTINUE CALL XMT (KEY, 4, $6000) CALL OPERAT ("SCAN DONE", ICOM7) GO TO 1 3000 CONTINUE STATE = 7 GO TO (3010, 3000, 7000), DONE 3010 GONTINUE IF (ICOLD .EQ. "RE") GO TO 3015 CALL XMT (KEY, 5, $6000) 3015 IF (ICNEW .NE. "EX") GO TO 1 3017 CALL OPERAT ("EXIT REO. ", ICOM7) CALL WAIT (1000, 1, ERROR) 3020 CALL SPEBL ("$TTO", ERROR) CALL EXIT 6000 CONTINUE CALL OPERAT ("TASK ERROR", ICOM7) GO TO 3020 6400 CONTINUE CALL OPERAT (ONN, ICOM8) CALL OPERAT ("XRAY CYCLE", ICOM7) CALL XRAY (YESNO0 IF (YESNO .EQ. 0) GO TO 6 GO TO 4 7000 CONTINUE IF (IGNEW .EQ. "EX"0 GO TO 3017 GO TO 1 END ANNEXE A PARTIE II COMPILER NOSTACK TASK SCANO C SCAN OUTPUT TO TAPE SUBTASK C 10/9/75 RSMW C FIVE ENTRIES - FROM NOP - TO REWIND C 1 - NOP C 2 - SINGLE LOGICAL RECORD/THREE PHYSICAL RECORD - DATA C 3 - SINGLE LOGICAL RECORD/SNNGLE PHYSICAL RECORD - HEADER C 4 - EOF/EOF/BACKSPACE A FILE - LET'S HAVE A CLEAN ABORT 5 - REWIND TAPE C 6 - BACKSPACE A FILE - DO A (4) C INITIAL ENTRY PERFORMS OPEN FOR MTDIO COMMON/COMMUN/KEY, DONE, STATE, DRIVE, IUSE(10) COMMON/OUTFUT/UBUF, IBUF910511) INTEGER ERROR.STATUS, DUMMY, COMMAND(3), UBUF(256) 1, ICOM1(3) 1, DONE, STATE, DRIVE DATA COMMAND /4,1,16/, ICOM1 /4,7,6/ MAGT = 15 GO TO 110 100 CONTINUE CALL INIT ("MT0", 0, ERROR) IF ( (ERROR .NE. 1) .AND. (ERROR .NE. 40) ) GO TO 5000 CALL MTOPD (MAGT, "MT0:0", 0, ERROR) 50 CONTINUE DONE = 1 CALL MTDIO (MAGT. 010000K, DUMMY, STATUS, ERROR) 105 CONTINUE IF ( (ERROR .NE. 1) .AND. (ERROR .NE. 0) ) GO TO 5000 DONE = 1 110 CONTINUE CALL REC (KEY, MDTEST) DONE = 2 GO TO (100, 200, 300, 400, 50, 600), MDTEST 200 CONTINUE CALL MTDIO (MAGT, 057260K, IBUF(1), STATUS, ERROR) IBUF(3751) = IBUF(1) IBUF(3752) = IBUF(2) CALL MTDIO (MAGT, 057260K, IBUF(3751), STATUS, ERROR) IBUF(7501) = IBUF(1) IBUF(7502) = IBUF(2) CALL MTDIO (MAGT, 055702K. IBUF(7501), STATUS, ERROR) GO TO 105 300 CONTINUE CALL MTDIO (MAGT, 050400K, UBUF(A). STATUS, ERROR) GO TO 105 400 CONTINUE CALL MTDIO (MAGT, 060000K, DUMMY, STATUS, ERROR) CALL MTDIO (MAGT, 060000K, DUMMY, STATUS, ERROR) CALL MTDIO (MAGT, 040000K, DUMMY, STATUS, ERROR) GO TO 105 600 CONTINUE CALL MTDIO (MAGT, 040000K, DUMMY, STATUS, ERROR) GO TO 400 5000 CONTINUE DUMMY = ERROR CALL WAIT (1000, 1, ERROR) CALL OFERAT ("TAPE NOT READY", COMMAND) CALL CONV (DUMMY, IUSE(6) ) CALL OPERAT (IUSE(6).ICOM1) DONE = 3 GO TO 118 END Annexe A Partie I}I SUSROUTINE OPERAT (JARRAY, COMMAND) C DISPLAY GENERATION SUBROUTINE C 10/8/75 RSMW C SIX EHNTRIES - FROM INITIAL CLEAR AND BUILD - TD CLOCK UPDATE C 1 - BUILD C 2 - INPUT PATIENT DATA C 3 - OUTPUT OPERATOR MESSAGE WITH REPLY C 4 - OUTPUT OPERATOR MESSAGE/NO REPLY C 5 - OUTPUT MESSAGE ANYWHERE C 6 - CLOCK OUTPUT ONLY COMMON /OUTPUT/UBUF, IBUF (10511) COMMON /DISP/ IARRAY(250), OPMES(10), IDAT(24) COMMON /COMMUN/ KEY, DONE, STATE, DRIVE, IUSE (10) INTEGER ERROR, HOME, OPMES, COMMAND(3), JARRAY(1) 1, DONE, STATE, DRIVE, UBUF(256) DATA IDAT /"3AN FB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC "/ DATA OPMES /" ", 9*5012K/ DATA IARRAY/ 1 " VETERANS ADMINISTRATION HOSPITAL ", 2 "DATE: ,1972 TIME: ".