X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/cda2ba6d27526e5ef6f27f7b3391cfb55055bf2e..8975ed2f727e4bb0190f22b1401821e5981cf7c2:/src/pltser.mac diff --git a/src/pltser.mac b/src/pltser.mac index 8af014f..ba07460 100644 --- a/src/pltser.mac +++ b/src/pltser.mac @@ -21,12 +21,13 @@ PLTADR: XWD PROG,0 PLTCTR: 0 ;OUTPUT BYTE COUNTER EXTERNAL OUT,SETACT,PLTCHN,PLTCHL,IOSET,ADVBFE,ADRERR,CPOPJ1 -EXTERNAL SETIOD,STOIOS,CLRACT,IULLINP,PLTSAV,IADRCK +EXTERNAL SETIOD,STOIOS,CLRACT,ILLINP,PLTSAV,IADRCK INTERN PLTDDB,PLTINT,PLTDSP - ;DISPATCH TABLE + +;DISPATCH TABLE - JRST PLTINT ;INITIALIZE + JRST PLTINI ;INITIALIZE JRST PLTHNG ;HUNG DEVICE ERROR PLTDSP: JRST PLTREL ;RELEASE JRST PLTCLS ;CLOSE @@ -43,7 +44,7 @@ PLTREL: CONO PLT,0 ;DEASSIGN PI CHANNEL, CLEAR DONE HLLZS PLTINT ;REMOVE PLOTTER FROM DEVICE CHAIN POPJ PDP, - ;HERE BEGINS THE "OUTPUT" UUO +;HERE BEGINS THE "OUTPUT" UUO PLTOUT: PUSHJ PDP,PLTSET ;SETUP BYTE POINTER AND COUNTER JRST ADRERR ;ADDRESS ERR RETURN FROM PLTSET @@ -56,7 +57,7 @@ PLTOUT: PUSHJ PDP,PLTSET ;SETUP BYTE POINTER AND COUNTER JRST .+3 ;NO MOVEI TAC,40 ;YES, START PLOTTER WITH PEN UP TLZ IOS,PLTUP ;INIT "CLOSE" BIT - MOVE IOS,PLTIOS + MOVEM IOS,PLTIOS DATAO PLT,TAC ;START PLOTTER BY SENDING 0 OR 40 POPJ PDP, ;FROM HERE THROUGH PLTOFF IS INTERRUPT SERVICE @@ -74,24 +75,25 @@ PLTINT: CONSO PLT,10 ;PLOTTER DONE FLAG SET? PLT1: JSR PLTSAV ;SAVE AC'S. SET UP PUSH DOWN POINTER MOVEI DEVDAT,PLTDDB PUSHJ PDP,IOSET ;SETS UP PROG AND IOS - PUSHJ PDP,ADVBFE ;ADVANCE AND LOOK AT NEXT BUFFERE + PUSHJ PDP,ADVBFE ;ADVANCE AND LOOK AT NEXT BUFFER JRST PLTOFF ;NO MORE DATA AVAILABLE PUSHJ PDP,PLTSET ;SETUP BYTE POINTER AND COUNTER JRST PLTOFF ;ADDRESS ERROR RET FROM PLTSET PLT2: TLZE IOS,IOW - PUSHJ PDP,SETIUOD ;LET JOB START AGAIN + PUSHJ PDP,SETIOD ;LET JOB START AGAIN JRST STOIOS ;EVENTUALLY DISMISS INTERRUPT. IF ADVBFE ;FOUND MORE DATA (IT SKIPPED), ANOTHER ;INTERRUPT WILL IMMEDIATELY OCCUR BUT ;IT WILL BE HANDLED WITHOUT GOING TO PLT1 PLTOFF: CONO PLT,0 ;SHUT DOWN PLOTTER - HLLSZ PLTINT ;REMOVE PLOTTER FROM CHAIN + HLLZS PLTINT ;REMOVE PLOTTER FROM CHAIN PUSHJ PDP,CLRACT TLZE IOS,PLTUP ;HAS THE "CLOSE" BEEN DONE? DATAO PLT,[40] ;YES, LIFT PEN JRST PLT2 - ;THIS SUBROUTINE CALCULATES A BYTE POINTER AND A BYTE COUNTER FOR + +;THIS SUBROUTINE CALCULATES A BYTE POINTER AND A BYTE COUNTER FOR ;THE BUFFER TO BE OUPUT, THE LAST WORD OF BUFFER IS ADR CHECKED TO BE IN USER AREA ; PUSHJ PDP,PLTSET ; RETURN 1 ;ADDRESS ERROR RETURN @@ -101,7 +103,7 @@ PLTSET: MOVEI TAC,@PLTADR ;GET ADDRESS OF CURRENT BUFFER ADD TAC,[POINT 6,1,35] ;CONVERT TO 6 BIT BYTE POINTER WITH ;ADDRESS OF BUFFER WORD COUNT TRNN IOS,16 ;IS THIS A TEST DATA MODE? - TLO TAC,[POINT 7,0,35] ;YES, CONVERT TO 7 BIT BYTE POINTER + TLO TAC,(POINT 7,0,35) ;YES, CONVERT TO 7 BIT BYTE POINTER MOVEM TAC,PLTPTR ;SAVE BYTE POINTER HRRZ TAC,@TAC ;GET BUFFER WORD COUNT MOVEM TAC,PLTCTR ;SAVE AS POSITIVE WORD COUNT