X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Ff4%2FFRTSRC%2Fonqib.ra;fp=sw%2Ff4%2FFRTSRC%2Fonqib.ra;h=23576978c7707e4ea20cf56cefffeea733cb13a6;hb=7af5ad59491ddf2066641aef1e0025a337c0f247;hp=0000000000000000000000000000000000000000;hpb=919757fd611e482003ce51f366f6783cab73dea3;p=pdp8.git diff --git a/sw/f4/FRTSRC/onqib.ra b/sw/f4/FRTSRC/onqib.ra new file mode 100644 index 0000000..2357697 --- /dev/null +++ b/sw/f4/FRTSRC/onqib.ra @@ -0,0 +1,102 @@ +/ +/ VERSION 5A 4/28/77 PT +/ + FIELD1 ONQI + 0 + JMP SETINT /SET UP #INT INITIALLY + ISZ ONQI /BUMP ARG POINTER + ISZ INTQ+1 /BUMP INTERRUPT Q POINTER + IOF /** + DCA% INTQ+1 /STICK IOT ONTO INT Q + TAD XSKP /FOLLOWED BY A SKIP + ISZ INTQ+1 + DCA% INTQ+1 /ONTO INT Q + ISZ ONQI /SKIP FIRST WORD OF ADDR + ISZ INTQ+1 +ONQISW, TAD% ONQI /GET INT HANDLER ADDRESS + ISZ ONQI + DCA% INTADR+1 /ONTO ADDRESS STACK + TAD INTADR+1 /NOW MAKE JMS% + AND L177 + TAD L4600 + DCA% INTQ+1 /ONTO INT Q + ISZ INTADR+1 + ION /:: + ISZ IQSIZE /ROOM FOR MORE ? + JMP% ONQI /YES + TAD .-1 /NO, CLOSE OUT THESUBR + DCA ONQI+1 + JMP% ONQI +SETINT, TAD ONQISW /DO THIS PART ONLY ONCE + DCA ONQI+1 + CDF + IOF /** + TAD XSKP /FIX UP #INT + DCA% XINT+1 + ISZ XINT+1 + TAD INTQ+1 + DCA% XINT+1 + ISZ XINT+1 + TAD CIFCDF + DCA% XINT+1 + ION /** +CIFCDF, CDF CIF 10 + JMP ONQI+1 /BACK TO ONQI + EXTERN #INT +XINT, ADDR #INT +INTQ, ADDR IHANDL +INTADR, ADDR IHADRS +IQSIZE, -5 +XSKP, SKP +L177, 177 +L4600, 4600 + CDF CIF + JMP% IHANDL +IHANDL, 0 + REPEAT 16 + JMP IHANDL-2 +IHADRS, 0;0;0;0;0 + + ENTRY ONQB +ONQB, 0 + JMP SETBAK /SETUP #IDLE + TAD% ONQB /GET ADDRESS OF IDLE JOB +ONQBSW, ISZ ONQB + DCA% BAKADR+1 /STORE ONTO BACKROUND JOB Q + TAD BAKADR+1 /MAKE A JMS% + ISZ BAKADR+1 + AND L177 + TAD L4600 + ISZ BAKQ+1 + DCA% BAKQ+1 + ISZ BQSIZE /MORE ROOM ? + JMP% ONQB /YES + TAD .-1 /NO, CLOSE THE DOOR + DCA ONQB+1 + JMP% ONQB +SETBAK, TAD ONQBSW /CLOSE OFF #IDLE INITIALIZATION + DCA ONQB+1 + CDF + TAD XSKP /FIX UP #IDLE + DCA% XIDLE+1 + TAD BAKQ+1 + ISZ XIDLE+1 + DCA% XIDLE+1 + ISZ XIDLE+1 + TAD CIFCDF + DCA% XIDLE+1 + CIF CDF 10 + JMP ONQB+1 + EXTERN #IDLE +XIDLE, ADDR #IDLE +BAKQ, ADDR BAKRND +BAKADR, ADDR BHADRS +BQSIZE, -5 + CDF CIF + JMP% BAKRND +BAKRND, 0 + REPEAT 6 + JMP BAKRND-2 +BHADRS, 0;0;0;0;0 + END +