/NULL HANDLER FOR OS/8 /TVIN HANDLER FOR FORTRAN IV / /WRITTEN BY / R. W. PHELPS / DEPT. RAD. BIOL. & BIOPHYSICS / UNIVERSITY OF ROCHESTER MEDICAL CENTER / ROCHESTER, NY 14642 / /DESIGNED FOR USR WITH SUBROUTINE . SEE WRITEUP /UNDER SEPARATE COVER. / / NOTE: BOTH BUFFERS MUST BE IN THE SAME FIELD. / TVIN CAN OPERATE ONLY WITH FORTRAN IV. / NULL CAN BE USED TO DUMMY ANY OUTPUT. / *0 -2 DEVICE NULL DEVICE NULL 1240 NULL&177 ZBLOCK 2 / DEVICE NULL DEVICE TVIN 2410 TVIN&177 ZBLOCK 2 / / *200 / /PUT CR AS LAST LOCATION TO FORCE CALLING /THIS HANDLER FOR NEXT READ REQUEST. / / SBFLD, 0 BFLD, HLT JMP I SBFLD / LCR, TAD BPNTR K377, AND (7400 TAD K377 DCA KNTR TAD (215 /PUT CR IN BUFFER AS LAST CHAR / (3RD CHAR OF LAST SET MUST BE NULL) DCA I KNTR ISZ PNTR /POINT TO CHR CTR IAC AND BPNTR /ODD OR EVEN? TAD (-3 /-2 IF ODD LCDF, CDF 0 DCA I PNTR / RETRN, TAD TVIN DCA NULL JMP NRETRN / /RUBOUT A CHARACTER / LRUB, TAD I TVIN CIA TAD BPNTR SPA SNA CLA /MORE CHARS TO RUBOUT? JMP L3 /NO CMA TAD BPNTR /MOVE POINTER BACK DCA BPNTR JMS SBFLD /TO BUFFER FIELD DCA I BPNTR /NULL OUT THE CHARACTER CDF 0 TAD BPNTR DCA I PNTR JMP L3 / PNTR, 0 KNTR=SBFLD BPNTR, 0 / / NULL, 0 TAD I NULL /GET BUFFER FIELD AND (70 TAD LCDF DCA BFLD ISZ NULL TAD I NULL JMS ZERO NRETRN, ISZ NULL ISZ NULL ISZ NULL JMP I NULL / / TVIN, 0 /ALWAYS CALLED FROM FIELD 0 IN FORTRAN / /FIND DSRN UNIT WITH ENTRY POINT 40 (NULL) / TAD (DSRN DCA PNTR TAD (-11 DCA KNTR L1, TAD I PNTR TAD (-5000-NULL SNA CLA JMP L2 TAD (11 TAD PNTR DCA PNTR ISZ KNTR JMP L1 JMP I (UE /USER ERROR - NO NULL HANDLER TO / MARK TV BUFFER / L2, ISZ PNTR /SKIPS HANDLER CODE WORD ISZ PNTR TAD I PNTR /GET BUFFER FIELD AND (70 TAD LCDF DCA BFLD TAD I PNTR CIA TAD I TVIN AND (70 SZA CLA JMP I (UE /BUFFERS NOT IN SAME FIELD ISZ PNTR TAD I PNTR /GET BUFFER LOCATION JMS ZERO /CLEAR JUNK FROM BUFFER IAC AND I PNTR SZA CLA ISZ I PNTR /START IN AN EVEN POSITION TAD I PNTR DCA BPNTR TAD BPNTR /STUFF BUFFER LOCATION -- TRICK ISZ TVIN / TO START MASSIO READ AT DCA I TVIN / THIS LOCATION. / L3, JMS I (HANG /WAIT FOR A CHARACTER TO BE TYPED KPUHNG TAD KBDCHR /GET THE CHARACTER TAD (-377 SNA JMP LRUB /RUBOUT TAD (-215+377 JMS SBFLD SNA CLA JMP LCR /CR - END OF LINE TAD KBDCHR DCA I BPNTR ISZ BPNTR CDF 0 ISZ I PNTR /BUMP POINTER FOR SCOPE DISPLAY JMP L3 /GO DO ANOTHER / ZERO, 0 /FILL BUFFER WITH ZERO TO END DCA BPNTR JMS SBFLD DCA I BPNTR ISZ BPNTR TAD BPNTR AND K377 SZA CLA JMP .-5 CDF 0 JMP I ZERO / / / UE=1415 /'DEVICE ERROR' DSRN=4244 HANG=0524 KPUHNG=0465 KBDCHR=0005 $