/NAME : DO /FRIDO HANDLER MODULE /9-JULY-1975 J.M.S. /THIS MODULE HANDLES FRIDO INTERRUPS AND "FR" CALLS /CALL: / TAD (PR.FUNC.WORD / JMS MONITOR / CALL / "D^100+"O&3777 / BUZY RETURN / NORM.RETURN WITH STATE IN ACC /DEVICE FUNCTION WORD: / /------------------------------------------------- / I 0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 I /-------------------------------------------------- / ---UNUSED---I-1-I-UNIT--I-0=AMPL-MODES--I-H/CIPULS / 1=FILTR-MODES / 0=HDFILTR / 1=LDFILTR / / /PROGRAM FUNCTION WORD (CALLING WORD IN ACC) / /------------------------------------------------------- / I 0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 I /------------------------------------------------------- / W/R UNIT DEV STATE / / /BIT 6-8: /0=AMPLIFIER /1=HP FILTER /2=LP FILTER / / /BIT 9-11: / /STATE AMPL HPF LPF /--------------------------- /000 10 2 500 UV /010 100 50 5000 /011 --- --- /101 2000 --- -111 20000 --- --- /------- EJECT DBDI=6500 DBEI=6501 DBSK=6502 DBCI=6503 DBRI=6504 DBCO=6505 DBSO=6506 DBRO=6507 EJECT *200 DFUNC, "D^100+"O&3777 /NAME DO (FRI"DO") 201 /ONE PAGE , ONE CONNECT FRIDO /INTERTERRUPT LABEL 0 /END RY, DBDI / ENTRY POINT,S DCA DFUNC TAD DFUNT0=0=GET ; BIT0=1=SET JMP FRGET /NO SET, TAD DFUNC /CONVERTS A PROGR WORD TO A DEV WORD AND K300 /MASK UNIT NR TAD K400 /SET BIT 3 ; MUST ALWAYS DCA DEV TAD DFUNC AND K30 /DEV=0 SNA JMP AMPPD /YES - AMPLIFIER AND K20 /MASK BIT 7 TAD K40 /ITS A FILTER:SET BIT 6 TAD DEV DCA DEV TAD DFUNC AND C3 JMP .+3 AMPPD, TAD DFUNC AND K7 CLL RTL JMS FROUT JMP LEAVE FROUT, 0 /GIVES FUNC TO FRIDO TAD DEV DBSO /SET SOME OUTPUT BITS CMA DBCO /CLEAR OTHER BITS CLA IAC /GIVE A WRITE PULS ON BIT 11 DBSO K7, 7 /MAKES THE PULS A LITTLE LONGER K20, 20 K30, 30 CLA IAC DBCO CLA JMS LOCATE TAD DFUNC /SET FUNC IN TABLE AND K7 /STATE CDF MONFLD DCA I UNIT TAD I UNIT /RETURN WITH STATE IN ACC JMP I FROUT FRGET, JMS LOCATE CDF MONFLD TAD I UNIT /GET STATE JMP LEAVE /CONNECT INTERRUPT ENTRY DBINT, DBRI ///READ INPUT DCA DEV TAD DEV CLL RTR ///COMPUTER CONTROL ? SZL JMP QCKRET ///NO BIT///GIVE READ PULS ON BITMAKE THE PULS A LITTLE L400 CLA IAC DBCO C A DEV WORD TO A PROGR.WORD AND K300 ///MASK UNIT NR DCA DFUNC TAD DEV BSW ///BIT 6=0? SMA JMP AMPDP ///N0- AMPLIFIER RAL ///YES - BIT 7=0? SPA CLA IAC ///NO LPF=2 IAC ///YES HPF=1 CLL RTL TAD DFUNC DCA DFUNC D DEV RTR AND C3 //PDP, BSW ///AMPL=0 RT TAD DFUNC DCA DFUNC JMS FROUT ///SEND FUNC TO FRIDO QCKRET, CLA CIF MONFLD /// JMP I ZFSTEXT ///RETURN FROM INTERRUPT LOCATE, 0 TAD DFUNC BSW /MAX 4 UNITS AND C3 DCA TEMP /UNIT NUMBER * 3 TAD TEMP CLL RAL TAD TEMP TAD (COMMON /ADD TABLE POINTER ( TABLE =FREE MONITOR CORE DCA UNIT /GIVES UNIT PLACE IN TABLE TAD DFUNC RTR RAR AND C3 /DEV NUMBER TAD UNIT /ADD DEV DCA UNIT /UNIT DEV PLACE JMP I LOCATE LEAVE, DBEI /ENABLE INTERRUPS FROM FRIDO JMS MONITOR EXIT DEV, 0 UNIT, 0 TEMP, 0 $-$-$