File: PP.TK of Tape: Sources/Multi8/multi8-1
(Source file text)
/******* MULTI8 PTP DRIVER ******* /LAST EDIT 30-MAR-79, ES /LAST CHANGE: IF THERE WAS NO POWER ON THE PUNCH, THIS WAS /ENDLESSLY WAITING FOR AN INTERRUPT, EVEN WHEN THE POWER /WAS SWITCHED ON LATER. NOW THIS TASK WAITS TILL THE POWER /IS ON. ADDITIONALLY THIS TASK BECOMES A DUMMY DRIVER WHEN /THE POWER IS SWITCHED OFF DURING PUNCHING... / PPCHAR, "P^100+"P&3777 200 PPCA, 0 PP, SNA /CLOSE ? JMP PPCLOSE DCA PPCHAR /SAVE POINTER TO REQUEST TAD I PPCHAR /FETCH FIRST ARGUMENT SMA /READ OR WRITE ? JMP PPERR /CAN'T READ FROM THE PUNCHER AND C3700 /GET LENGTH BITS CIA /WORDCOUNT IS NEGATIVE DCA PPWC TAD I PPCHAR /GET FIELDBITS, R/W TO LINK AND C70 TAD C6201 DCA PPCDF ISZ PPCHAR /ADVANCE POINTER TO BUFFERADDRESS TAD I PPCHAR DCA PPCA /BUFFER ADDRESS JMS MONITOR RESERV RETURN CONTINUE DCA PPSLOT /COMPLETION EVENT # JMS PPOUT /DUMMY CALL, SET FLAG DCA PPRUND /NOT ACTIVE YET PPCDF, CDF /OVERLAID WITH CDF TO BUFFER FIELD PPLOOP, TAD I PPCA /FETCH A WORD JMS PPOUT /PUNCH THE FIRST PPCHAR TAD I PPCA ISZ PPCA AND C7400 DCA PPCDF /HOLD UPPER FOUR BITS TAD I PPCA /SECOND WORD JMS PPOUT TAD I PPCA ISZ PPCA AND C7400 CLL RTR RTR TAD PPCDF /ADD IN HIGHORDER BITS RTR RTR JMS PPOUT ISZ PPWC JMP PPLOOP JMS MONITOR SIGNAL HALT PPSLOT, 0 PPCLOSE,ACM1 JMS MONITOR RETURN CONTINUE JMS PPOUT /OUTPUT 200 BLANKS ISZ PPCNT JMP .-2 JMS MONITOR HALT CLEAR SWPOUT PPERR, TAD (-HRDERR-1 JMS MONITOR EXIT SWPOUT PPOUT, 0 DCA PPCHAR PPW3, TAD (-DGNTICK /DON'T WAIT TOO LONG /WILL BE JMP I PPOUT IF 2ND TIMOUT JMS MONITOR WAIT PTP SZA CLA /SEE IF TIMOUT JMP PPWAIT TAD PPCHAR /NO TIMOUT PLS /PUNCH CLA CLL IAC DCA PPRUND /SET ACTIVE FLAG JMP I PPOUT PPWAIT, TAD PPRUND /SEE IF PUNCHER ACTIVE SNA CLA JMP PPW2 /NO,TRY TO SET FLAG AND WAIT TAD PPINS /YES, CAUSE DUMMY OUTPUT DCA PPW3 PPINS, JMP I PPOUT /RETURN PPW2, PLS /TRY TO SET THE FLAG JMP PPW3 /WAIT AGAIN PPCNT, -200 /200 BLANKS FOR TRAILER PPWC, 0 PPRUND, 0 /1 IF PUNCH ACTIVE $