X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/d693caac75dd25e668e43e85c29205bfc8dea06e..0000ed8f3efcdbf411f6c91517909089e5d7ef5d:/src/scnsrf.mac diff --git a/src/scnsrf.mac b/src/scnsrf.mac index 37d1861..56a0e9e 100644 --- a/src/scnsrf.mac +++ b/src/scnsrf.mac @@ -165,6 +165,7 @@ INTERNAL T35,T37,FULTWX,LGLSET,KILMSK,XON LINE=TAC1 ;SCANNER LINE NUMBER HPOS=ITEM ;HORIZONTAL POSITION OF TTY,(0-71) + ;SPECIAL SYMBOLS PION=200 ;TURN PI ON BIT @@ -173,8 +174,10 @@ INTERNAL T35,T37,FULTWX,LGLSET,KILMSK,XON IDLECH=1 ;DELAY CHAR FOR TABS, ETC, ; SHOULD BE ^V, BUT FOR 37'S + ;BYTE POINTERS + INTERNAL TPCJOBN,TYPX,FULTWX,TYPE,TAKR,BREAKB PHPOS: POINT 7,DEVIAD(DEVDAT),12 ;HORIZONTAL POSITION @@ -254,6 +257,7 @@ SCN3: HRRM TAC,LINTAB(TAC1) ;SET LOG. LINE NUMBERS HLLM TAC,LINTAB(TAC1) ;LEAVING REST OF BITS AS THEY WERE AOBJN TAC1,SCN2 POPJ PDP, + ;ROUTINES TO SET UP BUFFERS INTERNAL TSETBF,SETBFI,PUTCHI @@ -276,6 +280,7 @@ SETBF0: MOVE TAC,BUF(DAT) MOVEM TAC,PCTR(DAT) HLRZ TAC,BUF(DAT) ;CHARACTER COUNT MOVEM TAC,FCTR(DAT) ;UPDATE FREE CHARACTER COUNT + POPJ PDP, ;ROUTINE TO PUT A CHARACTER INTO A BUFFER (FOR INPUT,MERTPO, AND ONCE) ;CALL MOVEI DAT,TTYBUF(DDB) ;TO SPECIFY BUFFER @@ -336,6 +341,7 @@ GETCH1: TDZA CHREC,CHREC ;RETURN 0 INDICATING END OF BUFFER PUTCI0: AOS FCTR(DAT) ;READJUST FREE COUNTER POPJ PDP, + ;ROUTINE TO PLACE A CHARACTER INTO THE OUTPUT BUFFER ;CALLED AT INTERRUPT LEVEL ;CALL MOVE CHREC,CHARACTER TO PLACE INTO BUFFER @@ -502,7 +508,7 @@ DDTOUT: PUSHJ PDP,TTYFNU DDT5: MOVSI IOS,IO+DDTM IORB IOS,DEVIOS(DDB) HRLI UUO,PROG ;POINT TO USER AC - HRRI UUO,-1(PROG) ;COMPENSATE FOR GETWD1 + HRRI UUO,-1(UUO) ;COMPENSATE FOR GETWD1 DDT2: MOVE DAT,[XWD 440700,TAC] ;BYTE POINTER TO TAC PUSHJ PDP,GETWD1 ;GET THE USER'S WORD DDT3: TLNN DAT,760000 ;ANY CHARS LEFT? @@ -593,7 +599,7 @@ OUTC1A: ;HERE ON OUTPUT OF SLOW CHARS TO SMART TTY ;TO ADJUST HPOS FOR OUTPUT OF CHREC ;SKIPS IF SPCHECK SAYS SPECIAL CHAR -ADJHP: CAIL CHREC,174 ;HIGH SPECIALS? +ADJHP: CAILE CHREC,174 ;HIGH SPECIALS? JRST SPCHEK ;YES, NO HPOS MOTION CAIL CHREC,40 ;CONTROL CHARACTERS? AOJA HPOS,SPCHEK ;NO. COUNT HPOS FOR PRINT CHAR @@ -1204,11 +1210,13 @@ INTERNAL TTYFNU,TTYFND,TTYERP EXTERNAL JOB + TTYFNU: MOVE ITEM,JOB TTYFND: PUSHJ PDP,TTYSRC TTYDAT: MOVEI DAT,TTOBUF(DDB) POPJ PDP, + ;PUT JOB IN IO WAIT IF TTY BUFFER NOT EMPTY ;CALLED BY NON ERROR MESSAGE ROUTINES AT UUO LEVEL @@ -1392,7 +1400,6 @@ TTYTLK: PUSHJ PDP,GETDDB ;IN CASE NOT SET UP POPJ PDP, MOVE IOS,DEVIOS(DEVDAT) ;IS TTY IN MONITOR MODE AND LEFT HAND MARGIN? MOVE TAC1,-3(PDP) ;TTY GIVING TALK COMMAND - MOVE TAC1,DEVNAM(TAC1) ;ITS NAME MOVE TAC,DEVNAM(DEVDAT) ;OPR IS NEVER TOO BUSY... CAME TAC1,DEVOPR ;EITHER ONE OPR? @@ -1629,7 +1636,6 @@ XMTIN4: MOVEI IOS,MERTPO ;OTHERWISE, DDB ONLY USED TO TYPE A JRST TTYKIL ;MESSAGE; KILL TTY DDB - XMTIN2: CONO PI,PION PUSHJ PDP,GETCHR ;NO, GET NEXT CHAR. IN BUFFER JUMPE CHREC,XMTIN1 ;IGNORE NULLS @@ -1762,7 +1768,6 @@ RUBOU2: PUSHJ PDP,RUBOU4 ;NOT A BREAK AFTER ALL AOJDPX: AOJA HPOS,DUPLX1 ;OUTPUT AND COUNT HPOS RUBOU1: TLZE LINE,ROBTPD ;END OF INPUT STREAM REACHED - PUSHJ PDP,BSECHO ;OUTPUT A BACKSLASH JRST CRLFEC ;AND A CR LF @@ -1777,6 +1782,7 @@ SIMFF1: PUSHJ PDP,DUPLX1 ;OUTPUT ECHO OF LF OR IDL TRNE TAC,17 ;DONE YET? SOJA TAC,.-2 ;NO. OUTPUT MORE POPJ PDP,0 ;DONE + SIMFF: TLO TAC,ECHSUP ;DON'T OUTPUT FF OR VT TO A 33 PUSHJ PDP,TTIPUT ;PUT IT IN BUFFER MOVEI CHREC,12 ;SIMULATE WITH LF'S @@ -2015,7 +2021,6 @@ DDBSRC: HRRZ TAC,LINE ;NUMBER OF LINE ONLY HLRZ DEVDAT,DEVSER(DEVDAT) ;CHAIN THRU DDBS TDNE TAC,DEVMOD(DEVDAT) ;USE,ATTACH OR ASSIGN BITS ON? AOBJN IOS,.-2 ;YES. DONE? - JUMPGE IOS,CPOPJ ;YES. DEVICE DATA BLOCK FOUND? MOVSI TAC,TOIP ;CLEAR TOIP IN DDB ANDCAM TAC,TTYPTR(DDB) ;IN CASE OF PREVIOUS DETACH