X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/d693caac75dd25e668e43e85c29205bfc8dea06e..4004a326545fc294821707378dd8e6b026df8be1:/src/ptysrh.mac diff --git a/src/ptysrh.mac b/src/ptysrh.mac index a98f4a9..08a5184 100644 --- a/src/ptysrh.mac +++ b/src/ptysrh.mac @@ -7,12 +7,10 @@ ENTRY PTYSRH ;DUMMY GLOBAL FOR FULL DUPLEX PTY PTYSRH: - ;ACCUMULATOR ASSIGNMENTS DDB=DEVDAT LINE=TAC1 - CHREC=TEM SCNHAC=12 PIOS=13 @@ -29,6 +27,7 @@ IOPTW=4000 ;OUTPUT WAIT (OBJ. JOB HAS DONE INPUT) IOPTRE=2000 ;PTY RESPONSE IS READY MONMOD=1000 ;PTY IS IN MONITOR MODE + INTERNAL FTCHECK,FTMONP IFN FTCHECK+FTMONP,< EXTERNAL PTYDDB,PTYCSV,PTYSAC,PTYBND,PTYBM1,PTYDDS,PIOSAV,PDDSAV @@ -47,6 +46,7 @@ PTYDDB: SIXBIT /PTY0/ EXP PTYDSP XWD DVIN+DVOUT,3 Z + Z XWD PROG,0 XWD PROG,0 Z @@ -62,7 +62,8 @@ PTYSA2: BLT SCNHAC,0 PIOSAV: 0 PDDSAV: 0 > - INTERNAL PTYDSP + +INTERNAL PTYDSP EXTERNAL OUT POPJ PDP, ;INITIALIZE POPJ PDP, ;PRINT ERROR, STOP JOB @@ -126,7 +127,7 @@ PTYOUT: LDB LINE,PUNIT POPJ PDP, PTYOU6: TLO IOS,T37+IOFST ;FORCE BUFFER RESET - ;T37 SO TABS, ETC NOT TRNSLATED (TIMING ERRO OTHERWI) + ;T37 SO TABS, ETC NOT TRNSLATED (TIMING ERROR OTHERWISE) MOVEM IOS,DEVIOS(DDB) JSR PTYRET ;RESTORE ACS @@ -145,6 +146,7 @@ PTYOU0: TRNE IOS,IOPTRE JUMPE ITEM,PTYOU8 ;BUFFER EMPTY> PUSHJ PDP,ITMCNT MOVEM ITEM,DEVCTR(DDB) + PTYOU1: TRO IOS,IOACT TRZ IOS,IOPTRE JSR PTYSAV ;SAVE ACS @@ -164,7 +166,6 @@ PTYOU7: PUSHJ PDP,TCOMM ;SEND NEXT CHARACTER JRST PTYOU3 ;YES, BUFFER NOT MOVED INTO OBJECT ;JOB TTY IN BUFFER JRST PTYOU2 ;NO - PTYOU4: CAIE CHREC,"^" JRST PTYOU7 MOVEM CHREC,PTYCSV(PDDB);YES. FLUSH OUTPUT @@ -231,7 +232,9 @@ PTYIN5: JUMPE ITEM,PTYI3A ;IF COUNT RUNS OUT EXCH PDDB,DDB PUSH PDP,LINE JRST PTYIN4 - PTYI3A: TRZ IOS,IOBKTL + + +PTYI3A: TRZ IOS,IOBKTL TRO IOS,IOPTRE ;INPUT READY PTYI3B: PUSHJ PDP,STOSQD JRST ADRERR @@ -249,6 +252,8 @@ PTYI10: TLZE IOS, IOW POP PDP, LINE PTYIN8: MOVEM IOS, DEVIOS(DDB) POPJ PDP, + + ;SAVE ACCUMULATORS ;CALL MOVEI DDB,ADDRESS OF PTYDB ; JSR PTYSAV @@ -266,10 +271,12 @@ PTYSA0: MOVEM SCNHAC,PTYBND(DDB) ;SAVE HIGH AC MOVE PDDB,DDB JRST @PTYSAV + ;RESTORE ACCUMULATORS ;CALL MOVEI PDDB,PTY DATA BLOCK ADDRESS ; JSR PTYRET + IFE FTCHECK+FTMONP,< PTYRET: 0 > @@ -281,6 +288,7 @@ PTYRE0: HRRZ SCNHAC,PDDB ;SAVE ONLY PIOS AND PDDB + IFE FTCHECK+FTMONP,< PACSAV: 0 > @@ -310,7 +318,6 @@ PTYPE: MOVE PDDB,LINE PTWAKE: PUSH PDP,TEM PUSH PDP,TAC1 LDB TAC,[POINT 6,DEVCHR(PDDB),5] ;PTY JOB NR - HRRZ TAC1,CLOCK ;LAST JOB IN CLOCK QUEUE PTWAK2: CAIN TAC1,CIPWTM1 ;LOOKED AT ALL JOBS JRST PTWAK1 ;YES, WAS NOT SLEEPING @@ -332,15 +339,16 @@ PTWAK1: POP PDP,TAC1 INTERNAL PTYOW,PTMNMD,PTMNMZ -PTMNMD: PUSH PDP,PIOS + +PTMNMD: JSR PACSAV ;SAVE 2 AC'S MOVEI PIOS,MONMOD ;PTY INTO MONITOR MODE JRST PTYSET -PTMNMZ: PUSH PDP,PIOS +PTMNMZ: JSR PACSAV ;SAVE AC'S HRROI PIOS,MONMOD ;PTY OUT OF MONITOR MODE JRST PTYSET -PTYOW: PUSH PDP,PIOS +PTYOW: JSR PACSAV MOVEI PIOS,IOPTW ;PTY IN OUTPUT WAIT PTYSET: MOVE PDDB,LINE @@ -352,6 +360,5 @@ PTYSET: MOVE PDDB,LINE TRNE PIOS,IOPTW ;IS LINKED TTY JOB IN INPUT WAIT? PUSHJ PDP,PTWAKE ;YES, WAKE UP CONTROL JOB JRST ACRET + END - - \ No newline at end of file