File: DINODA.RA of Disk: Disks/MyPDP/m8-backup-rka1-rkb1
(Source file text)
/FILE DINODA.RA 3-OCT-80 /SUBROUTINE DINP /PURPOSE /------- / READ DR8-EA 12-BIT INPUT/OUTPUT INTERFACE /USAGE /----- / CALL DINP(IUNIT,MASK,IERR,INPUT) /OR / INPUT=DINP(IUNIT,MASK,IERR,INPUT) /DESCRIPTION OF PARAMETERS /------------------------- / / IUNIT: INTERFACE NUMBER (IMPLEMENTED 1 & 2) / / MASK: BIT MASK SELECTING INPUT BITS READ / / IERR: 0: OK / 2: BAD UNIT NUMBER / 16: RUNNING UNDER OS/8 / / INPUT: RESULT MASKED WITH MASK / RESULT BITS CLEAR INPUT BITS / /REMARKS /------- / ROUTINE WORKS ONLY IN MULTI-8 BACKGROUND /SUBROUTINES REQUIRED /-------------------- / NONE /METHODS /------- / RALF ROUTINE MAKES GIANT IOT CALL (CODE 21,22) TO D1.TK,D2.TK / FORMAT: TAD (21,22 / 6770 / JMP .+4 / 0000 / MASK / DATA /SUBROUTINE DOUT /PURPOSE /------- / SET DR8-EA 12-BIT INPUT/OUTPUT INTERFACE /USAGE /----- / CALL DOUT(IUNIT,MASK,IERR,IDATA) /OR / IOUT=DOUT(IUNIT,MASK,IERR,IDATA) /DESCRIPTION OF PARAMETERS /------------------------- / / IUNIT: INTERFACE NUMBER (IMPLEMENTED 1 & 2) / / MASK: BIT MASK SELECTING BITS ALLOWED TO CHANGE / / IERR: 0: OK / 1: BAD INTERFACE (ONLY UNIT 1) / 2: BAD UNIT NUMBER / 16: RUNNING UNDER OS/8 / / IDATA: BIT VALUES SETTING (BIT=1) OR CLEARING (BIT=0) / ONLY BITS IN MASK RANGE CHANGE OUTPUT / / IOUT: CONTENTS OF NEW OUTPUT REGISTER /REMARKS /------- / ROUTINE WORKS ONLY IN MULTI-8 BACKGROUND /SUBROUTINES REQUIRED /-------------------- / NONE /METHODS /------- / RALF ROUTINE MAKES GIANT IOT CALL (CODE 21,22) TO D1.TK,D2.TK / FORMAT: TAD (21,22 / 6770 / JMP .+4 / 0001 / MASK / DATA /FUNCTION DAC /PURPOSE /------- / SET DAC 9-BIT DIGITAL TO ANALOG CONVERTER /USAGE /----- / IOUT=DAC(IUNIT,MASK,IERR,IDATA) / /DESCRIPTION OF PARAMETERS /------------------------- / / IUNIT: INTERFACE NUMBER (IMPLEMENTED 1 , 2 & 3) / / MASK: BIT MASK SELECTING BITS ALLOWED TO CHANGE / / IERR: 0: OK / 1: BAD INTERFACE (FLAG NOT SETTING) / 2: BAD UNIT NUMBER / 16: RUNNING UNDER OS/8 / / IDATA: BIT VALUES SETTING ANALOG VALUE / ONLY BITS IN MASK RANGE CHANGE OUTPUT / / IOUT: MASKED VALUE COMES BACK (TRUNCATED TO 9 BITS) /REMARKS /------- / ROUTINE WORKS ONLY IN MULTI-8 BACKGROUND /SUBROUTINES REQUIRED /-------------------- / NONE /METHODS /------- / RALF ROUTINE MAKES GIANT IOT CALL (CODE 23) TO DA.TK / FORMAT: TAD (23 / 6770 / JMP .+4 / 0000 / UNIT / DATA SECT DINP JA #ST /JUMP TO START OF SUBROUTINE #XR, 0 /FOR TRACEBACK ORG .+7 /RESERVE FOR AUTOINDEX TEXT +DINODA+ /ERROR TRACE BACK #RET, SETX #XR /SET MY WORLD AFTER FOREIGN JSR SETB #BASE JA .+3 #BASE, ORG .+3 #ARGS, ORG .+3 IUNIT, ORG .+3 MASK, ORG .+3 IERR, ORG .+3 IDATA, ORG .+3 F4096, F 4096. F1, F 1. ORG #BASE+30 FNOP JA #RET FNOP #GOBAK, 0;0 BASE 0 SETUP, JA . STARTD FLDA 10*3 FSTA #GOBAK,0 FLDA 0 SETX #XR SETB #BASE BASE #BASE LDX 0,1 FSTA #BASE FLDA% #BASE,1+ FSTA IUNIT FLDA% #BASE,1+ FSTA MASK FLDA% #BASE,1+ FSTA IERR FLDA% #BASE,1+ FSTA IDATA SETX DIO8 STARTF FLDA% IUNIT ATX 2 /IUNIT IN XR2 FLDA% MASK ATX 3 /MASK IN XR3 FLDA% IDATA ATX 4 /IDATA FOR DOUT IN XR4 JA SETUP WRAPUP, XTA 5 /ERROR IN XR5 FSTA% IERR FLDA #ARGS /GET FUNCTION RETURN JA #GOBAK #ST, JSA SETUP /ENTRY DINP TRAP4 DIN8 /GO TO 8 CODE XTA 4 JGE INP FADD F4096 INP, FSTA #ARGS /SAVE FOR FUNCTION RETURN FSTA% IDATA /ALSO FP JA WRAPUP ENTRY DOUT DOUT, JSA SETUP /ENTRY DOUT TRAP4 DOU8 XTA 4 /OLD REG FOR FUNCTION JGE OUP FADD F4096 OUP, FSTA #ARGS JA WRAPUP ENTRY DAC DAC, JSA SETUP /ENTRY DAC TRAP4 DAC8 XTA 4 /MASKED VALUE ALWAYS POSITIVE JA OUP SECT8 DIN8 0 /ENTRY POINT 8-MODE DIG. IN CLA DCA IOCOMM /INPUT COMMAND JMS GIOT /GOTO COMMON CODE CIF CDF 0 JMP% DIN8 DOU8, 0 /ENTRY POINT 8-MODE DIG. OUT CLA IAC DCA IOCOMM /OUTPUT COMMAND JMS GIOT /COMMON CODE CIF CDF 0 JMP% DOU8 DIO8, 0 /COVER PDP8 XR'S !!!!!! 0 UNIT8, 0 MASK8, 0 DATA8, 0 IERR8, 0 0 0 DAC8, 0 /ENTRY POINT 8-MODE DAC CLA DCA IOCOMM /CLEAR ERROR ALWAYS COMMAND 0 TAD DATA8 AND MASK8 /APPLY MASK HERE AND P777 /ONLY 9 BITS DCA DATA8 TAD UNIT8 DCA MASK8 /TRANSFER UNIT # CLA CLL CML IAC RAL /3 DCA UNIT8 /SET UNIT = 3 FOR GIOT 23 JMS GIOT /CALL COMMON CODE CIF CDF 0 JMP% DAC8 GIOT, 0 TAD MASK8 DCA IOMASK /TO FOREGROUND TAD DATA8 DCA IODATA /TO FOREGROUND TAD UNIT8 SPA SNA JMP UNERR /BAD UNIT TAD M3 SMA SZA CLA JMP UNERR /BAD UNIT TAD UNIT8 TAD P20 6770 /GIANT IOT TO MULTI8 (CODE 21,22) JMP .+4 IOCOMM, 0 IOMASK, 0 IODATA, 0 SZA CLA /WAS IT MULTI8 ? TAD P20 /NO, RETURN WITH ERROR 16 TAD IOCOMM /+FOREGROUND ERROR DCA IERR8 /SET ERROR XR TAD IODATA DCA DATA8 /COPY IODATA FOR RESULT JMP% GIOT UNERR, CLA CLL CML RTL /2 6254 /SKP ON M8 TAD P20 DCA IERR8 JMP% GIOT M3, -3 P20, 20 P777, 777 END