3 "PATIENT NAME: AGE: SEX: 4 " CODE: - - ", 5 " STARTING SLICE: EHDING SLICE: 6 "CONTRAST MDIA *1: ,42: ,*3: 7 " X-RAY VOLTAGE: KV ", 8 " COMMEMTS: ", 9 " SYSTEM STATUS ** SCANNER STOPPD/LOA POINT ", 1 " TRAVERSE POSITION ** RING ANGLE ** ", 2 " X-RAY INTERLOCK ** OFF ", 3 : OPERATOR MESSAGES: , 4 " REPLIES : "/ IC = COMMAND (1) CALL TIME ( UBUF(4), ERROR) CALL DISPLAY (" ", 1) DO 30 1 = 1,3 CALL CONV (UBUF (1+3), IUSE) CALL DISPLAY (IUSE(3), 2) IF (1 .EQ. 3) GO TO 30 CALL DISPLAY (":", 1) 30 CONTINUE GO TO (100, 200, 300, 400, 500, 2000), IC 100 CONTINUE CALL DATE (UBUF (1), ERROR) I = UBUF (1)*2 - 1 IARRAY(34) = IDAT(1) IARRAY(35) = IDAT(1+1) CALL CONV (UBUF (2), IUSE) IARRAY(36) = IUSE(3) CALL CONV (UBUF (3), IUSE) IARRAY(39) = IUSE (3) CALL DISPLAY (16010K, 2) CALL DISPLAY (6036K, 2) CALL DISPLAY (IARRAY, 500) GO TO 2000 200 CONTINUE CALL DISPLAY (OPMES, 15) CALL DISPLAY (" TYPE PATIENT DATA ", 20) CALL DISPLAY (" XMIT GO WHEN FINISHED CALL RDISPLAY (COMMAMD (2), 2) IF (COMMAND (2) .NE. "GO") GO TO 200 CALL DISPLAY ( " )", 4) ICOUNT = 750 CALL RDISPLAY (JARRAY, ICOUNT) CALL DISPLAY (OPMES, 11) CALL DISPLAY ("PATIENT DATA ACCEPTED ", 22) GO TO 2000 300 CONTINUE CALL DISPLAY (OPMES, 16) CALL DISPLAY (" ", 2) CALL DISPLAY (JARRAY, COMMAND(3) ) CALL DISPLAY ("; ", 2) DO 310 1 = 1,10 CALL RDISPLAY (IUSE(1), 1) IUSE(1) = IUSE(1) .AND. 177490K IF (IUSE91) .EQ. 77200K) GO TO 330 IF (IUSE(1) .EQ. 6400K) GO TO 350 CALL DISPLAY (IUSE(1). 1) 310 CONTINUE 315 CONTINUE I = 1 + 1 CALL RDISPLAY (IUSE(10), 1) IUSE(10) = IUSE(10) .AND. 177400K IF (IUSE(10) .EQ. 77400K) GO TO 330 IF (IUSE(10) .EQ. 6400K) GO TO 350 CALL DISPLAY (IUSE(10), 1) GO TO 315 330 CONTINUE I = 1 - 2 IF (I .LT. 0) GO TO 330 CALL DISPLAY (" ", 3) IF (I .GT. 10) GO TO 315 GO TO 310 350 CONTINUE COMMAND(2) = IUSE(1) + IUSE(2)/256 GO TO 2000 400 CONTINUE CALL DISPLAY (OPMES.COMMAND(2) + 10) CALL DISPLAY (" ", 20 500 CONTINUE IF (COMMAND(3) .LE. 0) GO TO 2000 CALL DISPLAY (JARRAY, COMMAND(3) ) 2000 CONTINUE RETURN END Annexe A Partie IV SUBROUTINE CBREAK KEYBOARD CONTROL ROUTINE 10/8/75 RSMW CLERR SERRN AND EXIT COMMON/COMMUN/KEY, DONE, STATE, DRIVE, IUSE(10) IRTEGER DONE, STATE, DRIVE INTEGER COMMAND(3) DRIVE = 0 CALL NOXRAY COMMAND(1) = 4 COMMAND(2) = 7 COMMAND(3) = 18 CALL OPERAT ("CONTROL A WAS USED", COMMAND) CALL EXIT END Annexe A Partie V SUBROUTINE CBREAK C KEYBOARD CONTROL ROUTINE C 10/8/75 RSMW C CLEAR SCREEN AND EXIT COMMUN/COMMUN/KEY, DONE, STATE, DRIVE.IUSE(10) INTEGER DONE, STATE, DRIVE INTEGER ERROR, COMMAND(3) DRIVE = 0 CALL NOXRAY COMMAND(1) = 4 COMMAND(2) = 7 COMMAND(3) = 18 CALL DFILW ("BREAK.SV", ERROR) CALL OPERAT ("CONTROL C WAS USED", COMMAND) CALL EXIT END Annexe A Partie VI CONV.SR CONVFRT INTEGER TO ASCII RSMW NREL 1 10/13/75 CALL CONV (IN, IOUT(3) ) IN - INTEGER TO BE CONVERTED IOUT - INTEGER ARRAY OF THREE ASCII WORDS .TITLE CONV .ENT CONV,CONVS .EXTD .CPYL,.FRET,MPY,DVD .NREL 2 CONVS: ISZ SWITCH JMP .+2 2 CONV: JSR@ .CPYL LDA@ 1,-167,3 MOVL# 1,1,SNC JMP POSITIVE LDA 0,SWITCH MOV# 0,0,SNR JMP POSITIVE LDA 0,MINUS STA 0,ENDD NEG 1,1 JMP .+3 POSITIVE: LDA 0,HBLANK SA 0,ENDD LDA 2,-166,3 LDA 0,P3 ADD 0,2 STA 2, BUFAD STA 0,COUNT LDA 2,P10 LDA 0,SWITCH MOV 0,0,SNR JMP LOOP+1 SUBO 0,0 DVD LDA 3,PPT ADD 0,3 DSZ BUFAD STA@ 3,BUFAD DSZ COUNT LCOP: SUBO 0,0 DVD LDA 3,P60 ADD 0,3 MOV# 1,1,SNR JMP EXITI STA 3,TEMP SUBO 0,0 DVD LDA 3,P60 ADDS 0,3 LDA 0,TEMP ADD 0.3 DSZ SUFAD STA@3,BUFAD MDV# 1,1,SNR JMP EXIT2 DSZ COUNT JMP LOOP EXIT: SUBO 3,3 SA 3,SWITCH JSR@ ,FRET EXIT1: LDA 0,ENDD ADD 0,3 EXITLP; DSZ BUFAD STA@ 3,BUFAD SUBO 3,3 EXIT3: DSZ COUNT JMP EXITLP STA 3,SWITCH JSR@ .FRET EXIT2: LDA 3,ENDD MOVS 3,3 JMP EXIT3 BUFAD: 0 COUNT: 0 P3: 3 P10: 10.