X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/cda2ba6d27526e5ef6f27f7b3391cfb55055bf2e..e6cdcf9f28fd4956d9c22090b705d9d8396b5cde:/src/lptser.mac diff --git a/src/lptser.mac b/src/lptser.mac index 05dade0..95304f0 100644 --- a/src/lptser.mac +++ b/src/lptser.mac @@ -16,7 +16,8 @@ SUBTTL T. W. MCMANUS /TNM TS 20 MAY 69 ;THE FOLLOWING EXTERNAL SYMBOLS ARE DEFINED IN UUCON: - EXTERNAL ADVBFE, IDSET, OUT, SETACT, STOIOS + EXTERNAL ADVBFE, IOSET, OUT, SETACT, STOIOS + ;THE FOLLOWING SYMBOLS ARE REFERENCED OUTSIDE OF LPTSER: @@ -35,11 +36,13 @@ LPTSER: LPTDCM=7B35 ;DONE CHANNEL MASK LPTBDM=LPTBSY+LPTDON ;BUSY/DONE FLAG MASK + ;LINE PRINTER DEVICE DEPENDANT I/O STATUS MNEMONIC DEFINITIONS LPTEND=Z(1B10) ;CLOSE UUO HAS BEEN DONE LPTSYN=Z(1B11) ;CREF AFTER CLOSE UUO HAS BEEN SENT + ;LINE PRINTER DEVICE DATA BLOCK ADDRESSING MNEMNIC DEFINITIONS LPTCON=-4 ;RH = SKIP CHAIN MASK REGISTER @@ -57,6 +60,7 @@ LPTSER: LPTDTO=27 ;DATAO LP?,(TAC) LPTBKO=30 ;BLKO LP?,LP?PTR + ;LINE PRINTER SERVICE DISPATCH TABLE JRST LPTINI ;INITIALIZE @@ -106,6 +110,7 @@ LPTINI: MOVEI TAC,LPTCLR ;CLEAR THE LINE PRINTER JRST CPOPJ1 ;SKIP RETURN IF ENTERED AT LPTINI ; TO FORCE CALL FOR EACH LPT + ;LINE PRINTER CLOSE UUO ROUTINE LPTCLS: TLO IOS,LPTEND ;TURN ON THE END FLAG @@ -168,7 +173,7 @@ LPTWCK: TLZE IOS,IOW ;IS JOB WAITING FOR I/O COMPLETION? LPTEX2: JRST STOIOS ;SAVE IOS, RESET HUNG DEVICE COUNT ; AND DISMISS INTERRUPT -LTPOFF: TLNN IOS,LPTEND ;SKIP IF CLOSE HAS BEEN DONE +LPTOFF: TLNN IOS,LPTEND ;SKIP IF CLOSE HAS BEEN DONE JRST LPTOF1 ; GO TURN PRINTER OFF UNTIL NEXT OUTPUT TLON IOS,LPTSYN ;HAS FINAL CRFF BEEN OUTPUT? JRST LPTBG2 ; NO, SO GO DO IT @@ -189,19 +194,19 @@ LPTER1: MOVEM TAC,LPTSV2(DEVDAT) ;SAVE TAC IN DDB MOVEI TAC,LPTLOV ;GET LINE OVERFLOW ERROR MASK XCT LPTCSO(DEVDAT) ;SKIP IF LINE OVERFLOW FLAG IS ON JRST LPTER2 ; GO CHECK IF PREVIOUS ERROR OCCURRED - MOVN TAC,[EXP 100001] ;DECREMENT BLK0 POINTER + MOVN TAC,[EXP 1000001] ;DECREMENT BLK0 POINTER ADDM TAC,LPTPTR(DEVDAT) MOVE TAC,[EXP 15B6+12B13] ;PRINT CRLF XCT LPTDTO(DEVDAT) JRST LPTER4 -LPTER4: XCT LPTECH(DEVDAT) ;SKIP IF ERROR INTERRUPT NOT ASSIGNED +LPTER2: XCT LPTECH(DEVDAT) ;SKIP IF ERROR INTERRUPT NOT ASSIGNED JRST LPTER5 ; ERROR CONDITION DETECTED MOVE TAC,LPTCH(DEVDAT) ;GET INTERRUPT CHANNEL ASSIGNMENTS ANDI TAC,LPTDCM ;MASK OUT ERROR CHANNEL IORI TAC,LPTBSY ;SET THE BUSY FLAG XCT LPTCNO(DEVDAT) ;SEND IT OUT TO THE LPT - MOVEI TAC,LPTRLOV+LPTERR+LPTDON ;ENABLE FOR ALL INTERRUPTS + MOVEI TAC,LPTLOV+LPTERR+LPTDON ;ENABLE FOR ALL INTERRUPTS LPTER3: HRRM TAC,LPTCON(DEVDAT) ;SAVE SKIP CHAIN MASK FLAGS LPTER4: MOVE TAC,LPTSV2(DEVDAT) ;RESTORE SAVED ACCUMULATOR JRST LPTEX1(DEVDAT) ; AND GO DISMISS INTERRUPT @@ -223,8 +228,3 @@ LPTSET: MOVEI TAC,@DEVOAD(DEVDAT) ;GET ABS. ADDR. OF CURRENT BUFFER END - - - - - \ No newline at end of file