Cleanup more typos.
authorRichard Cornwell <rcornwell@github.com>
Fri, 9 Mar 2018 02:20:03 +0000 (21:20 -0500)
committerRichard Cornwell <rcornwell@github.com>
Fri, 9 Mar 2018 02:20:03 +0000 (21:20 -0500)
14 files changed:
src/cdrsr6.mac
src/cdrsrx.mac
src/errcon.mac
src/jobdat.mac
src/lptser.mac
src/mtasrx.mac
src/mtcsr6.mac
src/nulseg.mac
src/pltser.mac
src/ptpser.mac
src/ptrser.mac
src/ptysrf.mac
src/ptysrh.mac
src/sysmak.mac

index 68b70ce..bc5cc0a 100644 (file)
-TITLE  CDRSR6 - CARD READER SERVICE FOR PDP-6 CARD READER
-SUBTTL /TH TS3.17 18 OCT 67 V001
-XP     VCDRS6,001
-               ;PUT VERSION NUMBER IN GLOB LISTING AND LOADER STORAGE MAP
-
-       ;PARAMETERS
-
-       ;HARDWARE
-
-       CRDONE=10
-       CRBUSY=20
-       CRBIN=40
-       CRALL=100
-       CRMISS=200
-       CREOC=400
-       CREOFF=1000
-       CRERR=2000
-       CRNRED=4000
-
-       CRCONO=CRBUSY+CRBIN+CRALL
-       CDR=114
-
-       COD029=5252     ;029 CONTROL CARD IS 12-0-2-4-6-8!
-
-       ;IOS
-
-       CRMFST=40000    ;LH
-       CRMIMG=100000   ;LH
-       CRMBIN=200000   ;LH
-       CRM029=100      ;RH
-
-       MINHNG=^D15     ;NO. OF TIMES TO OBEY HUNG CODE BEFORE REALLY BECOMING HUNG
-
-CDRHNG:        CONSO CDR,CRERR         ;POWER OFF OR OTHER SUCH CATASTOPHE?
-       TLNN IO,IOFST           ;NO - CARD JAMMED?
-       JRST CDRINI             ;YES - PRINT HUNG MSG.
-       AOS (PDP)               ;NEVER ERROR RETURN
-       CONSZ CDR,CRMISS        ;FEEDCHECK?
-       CONSZ CDR,CRNRED        ;YES - READER READY?
-       SOSA TAC,LOPCNT         ;NO - PICK UP HUNG LOOP COUNTER
-       JRST CDRSTR             ;YES - GIVE ANOTHER CONO
-       JUMPGE TAC,STOIOS       ;COUNT NOT EXPIRED - LEAVE ACTIVE
-       SOS (PDP)               ;EXPIRED - PRINT HUNG MSG.
-
-CDRINI:        CONO CDR,0              ;CLEAR HARDWARE
-       HLLZS CDRCON            ;CLEAR CONSO BITS
-       POPJ PDP,0              ;RETURN
-
-\fINTERNAL FTCHECK,FTMONP
-
-IFN FTCHECK+FTMONP,<
-EXTERNAL CDRDDB,CRDIS,CRTEM,CDRCON,LOPCNT
->
-IFE FTCHECK+FTMONP,<
-;CDR  DEVICE DATA BLOCK
-       INTERN  CDRDDB
-CDRDDB:
-CDRDAT:        SIXBIT  /CDR/
-       XWD     2*HUNGST,34     ;BUFFER LONG ENOUGH FOR BINARY CARDS
-       0
-       EXP     CDRDSP
-       XWD     DVCDR+DVIN,14403
-       0
-       0
-       XWD     PROG,0
-       0
-       0
-CRDIS: JRST    .
-CRTEM: 0       ;TEMP FOR PARTIAL WORDS
-CDRCON:        0       ;CONSO FLAGS
-LOPCNT:        0
->
-\f
-ENTRY CDRSR6
-EXTERN CPOPJ1,ILLOUT,PIOMOD,SETACT,SETBYT,CDRCHN,PIOFF,PION,HNGSTP
-INTERN CDRDSP
-
-;CDR SERVICE DISPATCH TABLE (SHORT)
-
-       JRST CDRINI     ;INITILIZATION
-       JRST CDRHNG     ;HUNG DEVICE IS CHECKED
-CDRSR6:
-CDRDSP:        JRST CDRINI     ;RELEASE - CLEAR DEVICE
-       POPJ PDP,0      ;CLOSE - NOTHING SPECIAL
-       JRST ILLOUT     ;OUTPUT WON'T WORK
-                       ;INPUT IS OK
-       TLZN IOS,IOBEG  ;BEGINNING OF FILE? (NO MORE).
-       CONSO CDR,CREOFF        ;BUTTON PUSHED?
-       TLZA IOS,CRMBIN+CRMIMG  ;CLEAR TRASH
-       JRST CREOF      ;END OF FILE PUSHED WHILE IOACT WAS 0
-CDRIN1:        CONO CDR,0      ;CLEAR ANY SPURIOUS FLAGS
-       CONSO CDR,CRERR!CRMISS!CRNRED   ;POWER OFF,LEFT OVER FEED-CHECK OR NOT READY
-       JRST .+3                ;NO - OK
-       PUSHJ PDP,HNGSTP        ;YES - PRINT REMINDER & HALT JOB
-       JRST CDRIN1             ;GO TRY AGAIN WHEN USER TYPES 'CONT'
-       TLO IOS,IOFST+CRMFST    ;NEW OPERATION
-       LDB TAC,PIOMOD  ;SPEED UP TESTING OF MODE
-       CAIN TAC,B      ;..
-       TLO IOS,CRMBIN  ;BINARY MODE
-       CAIN TAC,I
-       TLO IOS,CRMIMG  ;IMAGE MODE
-       PUSHJ PDP,SETBYT        ;LH(TAC):=700+PROG OR 4400+PROG
-       MOVEM TAC,DEVPTR(DEVDAT)        ;SAVE BYTE SIZE
-CDRSTR:        MOVEI TAC,MINHNG        ;HERE TO RESTART CDR ON FEED-CHECK
-       MOVEM TAC,LOPCNT        ;RESET HUNG LOOP COUNTER
-       PUSHJ PDP,SETACT
-       MOVE TAC,[XWD CRDONE,CRCONO]
-       CONO PI,PIOFF
-       CONO CDR,CDRCHN(TAC)    ;START CDR
-       HLRM TAC,CDRCON         ;AND LOOK FOR IT
-       CONO PI,PION
-       POPJ PDP,0      ;RETURN TO UUOCON
-
-\f
-INTERN CDRINT
-EXTERN CDRSAV,IOSET,SETIOD,STOIOS,CDRCHN
-
-CDRINT:        CONSO CDR,@CDRCON
-       JRST CDRINT
-       JSR CDRSAV
-       MOVEI DEVDAT,CDRDDB
-       MOVE IOS,DEVIOS(DEVDAT)
-       PUSHJ PDP,IOSET
-       CONSZ CDR,CRMISS
-       TRO IOS,IODERR  ;DEVICE ERROR
-       CONSO CDR,CRERR+CREOFF+CREOC
-       JRST CRDATA     ;JUST A DATA INTERRUPT
-       CONSZ CDR,CRERR ;HARDWARE LOSS?
-       JRST CDRERR     ;YES
-       JRST CDREOC     ;NO. MUST BE END OF CARD
-CREOF: TLOA IOS,IOEND  ;MARK END,SKIP TO CROFF
-CDRERR:        TRO IOS,IODERR  ;CDR DEVICE ERROR HERE
-CROFF: PUSHJ PDP,CDRINI        ;STOP THE DEVICE
-       TRZ IOS,IOACT
-CRLST1:        MOVEI TAC,MINHNG
-       MOVEM TAC,LOPCNT        ;RESET HNG. LOOP CNT.
-       TLO IOS,IOFST+CRMFST
-       TLZE IOS,IOW    ;JOB WAITING FOR CDR?
-       PUSHJ PDP,SETIOD        ;YES. WAKE IT UP
-CREXIT:        MOVEM ITEM,DEVCTR(DEVDAT)
-       JRST STOIOS
-
-CRCONT:        MOVEI TAC,CDRCHN        ;PI CHANNEL
-       CONO CDR,CRCONO(TAC)    ;MAKE IT GO AGAIN
-       TLO IOS,CRMFST  ;FIRST COLUMN, BUT NOT FIRST IN BUFFER
-       JRST CREXIT     ;AND RETURN
-
-\f
-
-CRDATA:        DATAI CDR,DAT
-       TLZN IOS,CRMFST ;COLUMN 1?
-       XCT CRDIS       ;NO. SUBROUTINE HAS BEEN SET UP
-       TRNE IOS,IODERR ;POSSIBLE FEED CHECK?
-       CONSO CDR,CRNRED        ;YES - READER READY?
-       JRST .+4                ;YES - GENUINE DATA ERROR
-       TLO IOS,CRMFST          ;RESET 1ST COL. FLG.
-       TRZ IOS,IODERR          ;CLEAR ERROR INDICATION
-       JRST STOIOS             ;AND LET HUNG LOGIC SORT THINGS OUT
-       TLNE IOS,CRMIMG ;IMAGE MODE?
-       JRST CRFSTI     ;YES, DON'T CHECK FOR EOF CARD
-       TRC DAT,7400
-       TRCN DAT,7400   ;12,11,0 AND 1 PUNCH?
-       JRST CREOF1     ;YES. AN EOF CARD.
-       TLNE IOS,CRMBIN
-       JRST CRFSTB     ;BINARY CARD FIRST COLUMN
-       MOVEI TAC,CRASCI        ;HERE ON ASCII FIRST COLUMN
-       HRRM TAC,CRDIS  ;FOR SUCCEEDING COLUMN INTERRUPTS
-       CAIE DAT,COD029 ;029 CONTROL CARD?
-       JRST CRASCI     ;NO. PROCESS THE CARD.
-       TDO IOS, [XWD IOBEG,CRM029]     ;FLAG FOR EOC AND TRANSLATOR
-       JRST CRIGNOR    ;FLUSH REST OF THIS CARD
-
-CRASCI:        MOVEI TAC,0     ;CLEAR TAC
-       CAIN DAT,5000
-       MOVEI DAT,4202  ;12-0 => 12-8-2
-       CAIN DAT,3000
-       MOVEI DAT,2202  ;11-0 => 11-8-2
-       LDB TAC1,[XWD 110300,DAT]       ;12,11,0 ROWS TO TAC1
-       TRNE DAT,3      ;8 ZONE?
-       TRC TAC1,7      ;YES, PERMUTE TAC1
-       TRNE DAT,74     ;4 BIT?
-       TRO TAC1,10     ;YES
-       TRNE DAT,314    ;2 BIT?
-       TRO TAC,2       ;YES
-       TRNE DAT,525    ;1 BIT?
-       TRO TAC,1       ;YES
-       TRNN IOS,CRM029 ;HAS 029 CODE BEEN IMPLIED?
-       TRO TAC1,20     ;NO. MOVE UP TO 026 CODE TABLE
-       LDB DAT,CRCV2(TAC)      ;GET THE ASCII CHARACTER
-       PUSHJ PDP,CRSTOD        ;STORE IT
-       JRST CREXIT     ;AND RETURN
-
-CRCV2: POINT 7,CRCNV(TAC1),6
-       POINT 7,CRCNV(TAC1),13
-       POINT 7,CRCNV(TAC1),20
-       POINT 7,CRCNV(TAC1),27
-
-\f
-EXTERN CDRCHN
-
-CRFSTI:        LSH DAT,30
-       MOVEM DAT,CRTEM ;SAVE AS LEFT 12 BITS
-       JSP TAC,CREXI1  ;GET ANOTHER COLUMN
-       LSH DAT,14
-       IORM DAT,CRTEM  ;THROW IN MIDDLE 12 BITS
-       JSP TAC,CREXI1  ;ANOTHER COLUMN
-       IORB DAT,CRTEM  ;RIGHT 12. SAVE IN CRTEM FOR DEBUG
-CRBIN2:        PUSHJ PDP,CRSTOD        ;ENTRY HERE FROM BIN CARDS
-       MOVEI TAC,CRFSTI        ;ANOTHER 3 COLUMNS COME NEXT
-CREXI1:        HRRM TAC,CRDIS  ;WHERE TO GO FOR NEXT COLUMN
-       JRST CREXIT     ;RETURN FROM INTERRUPT
-
-CDREOC:        CONSO CDR,CREOFF
-       TLNE IOS,IOEND  ;END OF FILE?
-       JRST CREOF      ;YES. SHUT OFF CDR
-       TLNN IOS,CRMIMG+CRMBIN  ;IMAGE OR BIN?
-       JRST CRENDA     ;ASCII
-       TLNN IOS,CRMIMG ;IMAGE?
-       JRST CRENDB     ;BINARY.
-       MOVE DAT,CRTEM  ;HERE ON EOC AND IMAGE
-       PUSHJ PDP,CRSTOD        ;STORE LAST 2 COLUMNS IN BUFFER
-CRENDB:        PUSHJ PDP,CRADV1        ;ADVANCE BUFFER
-CRENDC:        MOVEI TAC,CDRCHN        ;PI CHANNEL
-       CONO CDR,CRCONO(TAC)    ;GO FOR NEXT CARD
-       JRST CRLST1     ;SET UP FOR NEXT CARD,DISMISS INTERRUPT,
-                       ;ALSO WAKE UP JOB IF IN IOW
-
-CRFSTB:        MOVEI TAC,-5(DAT)
-       TRNE TAC,17     ;ROWS 6-9=5?
-       TRO IOS,IOIMPM  ;NO. NOT A BIN CARD
-       LSH DAT,-4      ;GET COLUMNS 1-5
-       JUMPE DAT,CRIGNOR       ;IGNORE BINARY CARDS WITH 0 WORD COUNT
-       MOVEM DAT,CRTEM ;SAVE AS WORD COUNT
-       JSP TAC,CREXI1  ;GET COLUMN 2
-       HRL DAT,CRTEM   ;(COUNT)CKSUM
-       MOVSS DAT       ;(CKSUM)COUNT
-       JRST CRBIN2     ;STORE DAT AND GET REST OF CARD
-
-\f
-EXTERN STOSQD,STODAT,ADVBFF
-
-CRENDA:        TLZE IOS,IOBEG  ;WAS THIS A 029 CONTROL CARD?
-       JRST CRCONT     ;YES. NO CRLF.
-       MOVEI DAT,15    ;CARRIAGE RETURN
-       PUSHJ PDP,CRSTOD        ;STORE
-       MOVEI DAT,12    ;LINE FEED
-       PUSHJ PDP,CRSTOD        ;STORE
-       LDB TAC1,PIOMOD ;GET MODE
-       CAIN TAC1,AL            ;ASCII LINE?
-       JRST CRENDC             ;YES -WORD COUNT WILL HAVE BEEN COMPUTED & BUFFERS ADVANCED
-       CAIL ITEM,^D82  ;ROOM FOR ANOTHER CARD + CRLF?
-       JRST CRCONT     ;YES. DO SO
-       PUSHJ PDP,STOSQD        ;NO. STORE WORD COUNT
-       JRST CROFF      ;CAN'T RETURN HERE, BUT ...
-       JRST CRENDB     ;PROCEED TO ANOTHER BUFFER
-
-CREOF1:        TLO IOS,IOEND   ;HERE ON EOF CARD. MARK FOR EOC
-CRIGNOR:       JSP TAC,CREXI1  ;GET MORE COLUMNS
-       JRST .-1        ;AND IGNORE THEM.
-
-CRSTOD:        PUSHJ PDP,STODAT        ;STORE DAT IN BUFFER
-       JRST CRPOFF     ;ADDRESS CHECK,IOBKTL,IODTER (CKSUM)
-       JRST CRADV      ;BUFFER FULL OR BUFFER DONE
-       POPJ PDP,0      ;SIMPLE OK STORED RETURN
-
-CRADV: TLNE IOS,CRMBIN ;BINARY?
-       JRST CRIGNOR    ;WAIT FOR END OF CARD
-CRADV1:        TLNE IOS,IOFST  ;VIRGIN BUFFER?
-       POPJ PDP,0      ;YES. KEEP THIS ONE
-       PUSHJ PDP,ADVBFF        ;ADVANCE TO ANOTHER BUFFER
-       SKIPA   ;NO BUFFER AVAILABLE
-       POPJ PDP,0      ;OK. RETURN
-CRPOFF:        POP PDP,TAC
-       JRST CROFF
-
-\f
-;CODE CONVERSION FOR THE 029 KEYPUNCH
-
-;THE FOLLOWING EQUIVALENCES ARE ARTIFICIALLY DEFINED
-
-;029 KEYTOP    ;ASCII 35       ;ASCII 37
-;CENT          [               [
-;0-8-2         ]               ]
-;VERT BAR      ^               HAT = L.C. VERT BAR
-;UNDERBAR      _               UNDERBAR
-;NEGATION      \               TILDE = L.C. NEGATION
-
-       ;CHARACTERS     ;ZONE/DIGITS
-CRCNV: ASCII / 123/    ;N/N-3
-       ASCII .0/ST.    ;0/N-3
-       ASCII /-JKL/    ;11/N-3
-       ASCII /HI[./    ;12,8/N-3
-       ASCII /&ABC/    ;12/N-3
-       ASCII /QR!$/    ;11,8/N-3
-       ASCII /YZ],/    ;0,8/N-3
-       ASCII /89:#/    ;8/N-3
-       ASCII /4567/    ;N/4-7
-       ASCII /UVWX/    ;0/4-7
-       ASCII /MNOP/    ;11/4-7
-       ASCII /<(+^/    ;12,8/4-7
-       ASCII /DEFG/    ;12/4-7
-       ASCII /*);\/    ;11,8/4-7
-       ASCII /%_>?/    ;0,8/4-7
-       ASCII /@'="/    ;8/4-7
-
-;CODE FOR THE 026 KEYPUNCH A LA H HYMAN
-
-       ASCII / 123/    ;N/N-3
-       ASCII .0/ST.    ;0/N-3
-       ASCII /-JKL/    ;11/N-3
-       ASCII /HI?./    ;12,8/N-3
-       ASCII /+ABC/    ;12/N-3
-       ASCII /QR:$/    ;11,8/N-3
-       ASCII /YZ;,/    ;0,8/N-3
-       ASCII /89_=/    ;8/N-3
-       ASCII /4567/    ;N/4-7
-       ASCII /UVWX/    ;0/4-7
-       ASCII /MNOP/    ;11/4-7
-       ASCII /)]<!/    ;12,8/4-7
-       ASCII /DEFG/    ;12/4-7
-       ASCII /*[>&/    ;11,8/4-7
-       ASCII /("#%/    ;0,8/4-7
-       ASCII /@^'\/    ;8/4-7
-
-
-       END
-\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
\ No newline at end of file
+TITLE  CDRSR6 - CARD READER SERVICE FOR PDP-6 CARD READER\r
+SUBTTL /TH TS3.17 18 OCT 67 V001\r
+XP     VCDRS6,001\r
+               ;PUT VERSION NUMBER IN GLOB LISTING AND LOADER STORAGE MAP\r
+\r
+       ;PARAMETERS\r
+\r
+       ;HARDWARE\r
+\r
+       CRDONE=10\r
+       CRBUSY=20\r
+       CRBIN=40\r
+       CRALL=100\r
+       CRMISS=200\r
+       CREOC=400\r
+       CREOFF=1000\r
+       CRERR=2000\r
+       CRNRED=4000\r
+\r
+       CRCONO=CRBUSY+CRBIN+CRALL\r
+       CDR=114\r
+\r
+       COD029=5252     ;029 CONTROL CARD IS 12-0-2-4-6-8!\r
+\r
+       ;IOS\r
+\r
+       CRMFST=40000    ;LH\r
+       CRMIMG=100000   ;LH\r
+       CRMBIN=200000   ;LH\r
+       CRM029=100      ;RH\r
+\r
+       MINHNG=^D15     ;NO. OF TIMES TO OBEY HUNG CODE BEFORE REALLY BECOMING HUNG\r
+\r
+CDRHNG:        CONSO CDR,CRERR         ;POWER OFF OR OTHER SUCH CATASTOPHE?\r
+       TLNN IO,IOFST           ;NO - CARD JAMMED?\r
+       JRST CDRINI             ;YES - PRINT HUNG MSG.\r
+       AOS (PDP)               ;NEVER ERROR RETURN\r
+       CONSZ CDR,CRMISS        ;FEEDCHECK?\r
+       CONSZ CDR,CRNRED        ;YES - READER READY?\r
+       SOSA TAC,LOPCNT         ;NO - PICK UP HUNG LOOP COUNTER\r
+       JRST CDRSTR             ;YES - GIVE ANOTHER CONO\r
+       JUMPGE TAC,STOIOS       ;COUNT NOT EXPIRED - LEAVE ACTIVE\r
+       SOS (PDP)               ;EXPIRED - PRINT HUNG MSG.\r
+\r
+CDRINI:        CONO CDR,0              ;CLEAR HARDWARE\r
+       HLLZS CDRCON            ;CLEAR CONSO BITS\r
+       POPJ PDP,0              ;RETURN\r
+\r
+\fINTERNAL FTCHECK,FTMONP\r
+\r
+IFN FTCHECK+FTMONP,<\r
+EXTERNAL CDRDDB,CRDIS,CRTEM,CDRCON,LOPCNT\r
+>\r
+IFE FTCHECK+FTMONP,<\r
+;CDR  DEVICE DATA BLOCK\r
+       INTERN  CDRDDB\r
+CDRDDB:\r
+CDRDAT:        SIXBIT  /CDR/\r
+       XWD     2*HUNGST,34     ;BUFFER LONG ENOUGH FOR BINARY CARDS\r
+       0\r
+       EXP     CDRDSP\r
+       XWD     DVCDR+DVIN,14403\r
+       0\r
+       0\r
+       XWD     PROG,0\r
+       0\r
+       0\r
+CRDIS: JRST    .\r
+CRTEM: 0       ;TEMP FOR PARTIAL WORDS\r
+CDRCON:        0       ;CONSO FLAGS\r
+LOPCNT:        0\r
+>\r
+\f\r
+ENTRY CDRSR6\r
+EXTERN CPOPJ1,ILLOUT,PIOMOD,SETACT,SETBYT,CDRCHN,PIOFF,PION,HNGSTP\r
+INTERN CDRDSP\r
+\r
+;CDR SERVICE DISPATCH TABLE (SHORT)\r
+\r
+       JRST CDRINI     ;INITILIZATION\r
+       JRST CDRHNG     ;HUNG DEVICE IS CHECKED\r
+CDRSR6:\r
+CDRDSP:        JRST CDRINI     ;RELEASE - CLEAR DEVICE\r
+       POPJ PDP,0      ;CLOSE - NOTHING SPECIAL\r
+       JRST ILLOUT     ;OUTPUT WON'T WORK\r
+                       ;INPUT IS OK\r
+       TLZN IOS,IOBEG  ;BEGINNING OF FILE? (NO MORE).\r
+       CONSO CDR,CREOFF        ;BUTTON PUSHED?\r
+       TLZA IOS,CRMBIN+CRMIMG  ;CLEAR TRASH\r
+       JRST CREOF      ;END OF FILE PUSHED WHILE IOACT WAS 0\r
+CDRIN1:        CONO CDR,0      ;CLEAR ANY SPURIOUS FLAGS\r
+       CONSO CDR,CRERR!CRMISS!CRNRED   ;POWER OFF,LEFT OVER FEED-CHECK OR NOT READY\r
+       JRST .+3                ;NO - OK\r
+       PUSHJ PDP,HNGSTP        ;YES - PRINT REMINDER & HALT JOB\r
+       JRST CDRIN1             ;GO TRY AGAIN WHEN USER TYPES 'CONT'\r
+       TLO IOS,IOFST+CRMFST    ;NEW OPERATION\r
+       LDB TAC,PIOMOD  ;SPEED UP TESTING OF MODE\r
+       CAIN TAC,B      ;..\r
+       TLO IOS,CRMBIN  ;BINARY MODE\r
+       CAIN TAC,I\r
+       TLO IOS,CRMIMG  ;IMAGE MODE\r
+       PUSHJ PDP,SETBYT        ;LH(TAC):=700+PROG OR 4400+PROG\r
+       MOVEM TAC,DEVPTR(DEVDAT)        ;SAVE BYTE SIZE\r
+CDRSTR:        MOVEI TAC,MINHNG        ;HERE TO RESTART CDR ON FEED-CHECK\r
+       MOVEM TAC,LOPCNT        ;RESET HUNG LOOP COUNTER\r
+       PUSHJ PDP,SETACT\r
+       MOVE TAC,[XWD CRDONE,CRCONO]\r
+       CONO PI,PIOFF\r
+       CONO CDR,CDRCHN(TAC)    ;START CDR\r
+       HLRM TAC,CDRCON         ;AND LOOK FOR IT\r
+       CONO PI,PION\r
+       POPJ PDP,0      ;RETURN TO UUOCON\r
+\r
+\f\r
+INTERN CDRINT\r
+EXTERN CDRSAV,IOSET,SETIOD,STOIOS,CDRCHN\r
+\r
+CDRINT:        CONSO CDR,@CDRCON\r
+       JRST CDRINT\r
+       JSR CDRSAV\r
+       MOVEI DEVDAT,CDRDDB\r
+       MOVE IOS,DEVIOS(DEVDAT)\r
+       PUSHJ PDP,IOSET\r
+       CONSZ CDR,CRMISS\r
+       TRO IOS,IODERR  ;DEVICE ERROR\r
+       CONSO CDR,CRERR+CREOFF+CREOC\r
+       JRST CRDATA     ;JUST A DATA INTERRUPT\r
+       CONSZ CDR,CRERR ;HARDWARE LOSS?\r
+       JRST CDRERR     ;YES\r
+       JRST CDREOC     ;NO. MUST BE END OF CARD\r
+CREOF: TLOA IOS,IOEND  ;MARK END,SKIP TO CROFF\r
+CDRERR:        TRO IOS,IODERR  ;CDR DEVICE ERROR HERE\r
+CROFF: PUSHJ PDP,CDRINI        ;STOP THE DEVICE\r
+       TRZ IOS,IOACT\r
+CRLST1:        MOVEI TAC,MINHNG\r
+       MOVEM TAC,LOPCNT        ;RESET HNG. LOOP CNT.\r
+       TLO IOS,IOFST+CRMFST\r
+       TLZE IOS,IOW    ;JOB WAITING FOR CDR?\r
+       PUSHJ PDP,SETIOD        ;YES. WAKE IT UP\r
+CREXIT:        MOVEM ITEM,DEVCTR(DEVDAT)\r
+       JRST STOIOS\r
+\r
+CRCONT:        MOVEI TAC,CDRCHN        ;PI CHANNEL\r
+       CONO CDR,CRCONO(TAC)    ;MAKE IT GO AGAIN\r
+       TLO IOS,CRMFST  ;FIRST COLUMN, BUT NOT FIRST IN BUFFER\r
+       JRST CREXIT     ;AND RETURN\r
+\r
+\f\r
+\r
+CRDATA:        DATAI CDR,DAT\r
+       TLZN IOS,CRMFST ;COLUMN 1?\r
+       XCT CRDIS       ;NO. SUBROUTINE HAS BEEN SET UP\r
+       TRNE IOS,IODERR ;POSSIBLE FEED CHECK?\r
+       CONSO CDR,CRNRED        ;YES - READER READY?\r
+       JRST .+4                ;YES - GENUINE DATA ERROR\r
+       TLO IOS,CRMFST          ;RESET 1ST COL. FLG.\r
+       TRZ IOS,IODERR          ;CLEAR ERROR INDICATION\r
+       JRST STOIOS             ;AND LET HUNG LOGIC SORT THINGS OUT\r
+       TLNE IOS,CRMIMG ;IMAGE MODE?\r
+       JRST CRFSTI     ;YES, DON'T CHECK FOR EOF CARD\r
+       TRC DAT,7400\r
+       TRCN DAT,7400   ;12,11,0 AND 1 PUNCH?\r
+       JRST CREOF1     ;YES. AN EOF CARD.\r
+       TLNE IOS,CRMBIN\r
+       JRST CRFSTB     ;BINARY CARD FIRST COLUMN\r
+       MOVEI TAC,CRASCI        ;HERE ON ASCII FIRST COLUMN\r
+       HRRM TAC,CRDIS  ;FOR SUCCEEDING COLUMN INTERRUPTS\r
+       CAIE DAT,COD029 ;029 CONTROL CARD?\r
+       JRST CRASCI     ;NO. PROCESS THE CARD.\r
+       TDO IOS, [XWD IOBEG,CRM029]     ;FLAG FOR EOC AND TRANSLATOR\r
+       JRST CRIGNOR    ;FLUSH REST OF THIS CARD\r
+\r
+CRASCI:        MOVEI TAC,0     ;CLEAR TAC\r
+       CAIN DAT,5000\r
+       MOVEI DAT,4202  ;12-0 => 12-8-2\r
+       CAIN DAT,3000\r
+       MOVEI DAT,2202  ;11-0 => 11-8-2\r
+       LDB TAC1,[XWD 110300,DAT]       ;12,11,0 ROWS TO TAC1\r
+       TRNE DAT,3      ;8 ZONE?\r
+       TRC TAC1,7      ;YES, PERMUTE TAC1\r
+       TRNE DAT,74     ;4 BIT?\r
+       TRO TAC1,10     ;YES\r
+       TRNE DAT,314    ;2 BIT?\r
+       TRO TAC,2       ;YES\r
+       TRNE DAT,525    ;1 BIT?\r
+       TRO TAC,1       ;YES\r
+       TRNN IOS,CRM029 ;HAS 029 CODE BEEN IMPLIED?\r
+       TRO TAC1,20     ;NO. MOVE UP TO 026 CODE TABLE\r
+       LDB DAT,CRCV2(TAC)      ;GET THE ASCII CHARACTER\r
+       PUSHJ PDP,CRSTOD        ;STORE IT\r
+       JRST CREXIT     ;AND RETURN\r
+\r
+CRCV2: POINT 7,CRCNV(TAC1),6\r
+       POINT 7,CRCNV(TAC1),13\r
+       POINT 7,CRCNV(TAC1),20\r
+       POINT 7,CRCNV(TAC1),27\r
+\r
+\f\r
+EXTERN CDRCHN\r
+\r
+CRFSTI:        LSH DAT,30\r
+       MOVEM DAT,CRTEM ;SAVE AS LEFT 12 BITS\r
+       JSP TAC,CREXI1  ;GET ANOTHER COLUMN\r
+       LSH DAT,14\r
+       IORM DAT,CRTEM  ;THROW IN MIDDLE 12 BITS\r
+       JSP TAC,CREXI1  ;ANOTHER COLUMN\r
+       IORB DAT,CRTEM  ;RIGHT 12. SAVE IN CRTEM FOR DEBUG\r
+CRBIN2:        PUSHJ PDP,CRSTOD        ;ENTRY HERE FROM BIN CARDS\r
+       MOVEI TAC,CRFSTI        ;ANOTHER 3 COLUMNS COME NEXT\r
+CREXI1:        HRRM TAC,CRDIS  ;WHERE TO GO FOR NEXT COLUMN\r
+       JRST CREXIT     ;RETURN FROM INTERRUPT\r
+\r
+CDREOC:        CONSO CDR,CREOFF\r
+       TLNE IOS,IOEND  ;END OF FILE?\r
+       JRST CREOF      ;YES. SHUT OFF CDR\r
+       TLNN IOS,CRMIMG+CRMBIN  ;IMAGE OR BIN?\r
+       JRST CRENDA     ;ASCII\r
+       TLNN IOS,CRMIMG ;IMAGE?\r
+       JRST CRENDB     ;BINARY.\r
+       MOVE DAT,CRTEM  ;HERE ON EOC AND IMAGE\r
+       PUSHJ PDP,CRSTOD        ;STORE LAST 2 COLUMNS IN BUFFER\r
+CRENDB:        PUSHJ PDP,CRADV1        ;ADVANCE BUFFER\r
+CRENDC:        MOVEI TAC,CDRCHN        ;PI CHANNEL\r
+       CONO CDR,CRCONO(TAC)    ;GO FOR NEXT CARD\r
+       JRST CRLST1     ;SET UP FOR NEXT CARD,DISMISS INTERRUPT,\r
+                       ;ALSO WAKE UP JOB IF IN IOW\r
+\r
+CRFSTB:        MOVEI TAC,-5(DAT)\r
+       TRNE TAC,17     ;ROWS 6-9=5?\r
+       TRO IOS,IOIMPM  ;NO. NOT A BIN CARD\r
+       LSH DAT,-4      ;GET COLUMNS 1-5\r
+       JUMPE DAT,CRIGNOR       ;IGNORE BINARY CARDS WITH 0 WORD COUNT\r
+       MOVEM DAT,CRTEM ;SAVE AS WORD COUNT\r
+       JSP TAC,CREXI1  ;GET COLUMN 2\r
+       HRL DAT,CRTEM   ;(COUNT)CKSUM\r
+       MOVSS DAT       ;(CKSUM)COUNT\r
+       JRST CRBIN2     ;STORE DAT AND GET REST OF CARD\r
+\r
+\f\r
+EXTERN STOSQD,STODAT,ADVBFF\r
+\r
+CRENDA:        TLZE IOS,IOBEG  ;WAS THIS A 029 CONTROL CARD?\r
+       JRST CRCONT     ;YES. NO CRLF.\r
+       MOVEI DAT,15    ;CARRIAGE RETURN\r
+       PUSHJ PDP,CRSTOD        ;STORE\r
+       MOVEI DAT,12    ;LINE FEED\r
+       PUSHJ PDP,CRSTOD        ;STORE\r
+       LDB TAC1,PIOMOD ;GET MODE\r
+       CAIN TAC1,AL            ;ASCII LINE?\r
+       JRST CRENDC             ;YES -WORD COUNT WILL HAVE BEEN COMPUTED & BUFFERS ADVANCED\r
+       CAIL ITEM,^D82  ;ROOM FOR ANOTHER CARD + CRLF?\r
+       JRST CRCONT     ;YES. DO SO\r
+       PUSHJ PDP,STOSQD        ;NO. STORE WORD COUNT\r
+       JRST CROFF      ;CAN'T RETURN HERE, BUT ...\r
+       JRST CRENDB     ;PROCEED TO ANOTHER BUFFER\r
+\r
+CREOF1:        TLO IOS,IOEND   ;HERE ON EOF CARD. MARK FOR EOC\r
+CRIGNOR:       JSP TAC,CREXI1  ;GET MORE COLUMNS\r
+       JRST .-1        ;AND IGNORE THEM.\r
+\r
+CRSTOD:        PUSHJ PDP,STODAT        ;STORE DAT IN BUFFER\r
+       JRST CRPOFF     ;ADDRESS CHECK,IOBKTL,IODTER (CKSUM)\r
+       JRST CRADV      ;BUFFER FULL OR BUFFER DONE\r
+       POPJ PDP,0      ;SIMPLE OK STORED RETURN\r
+\r
+CRADV: TLNE IOS,CRMBIN ;BINARY?\r
+       JRST CRIGNOR    ;WAIT FOR END OF CARD\r
+CRADV1:        TLNE IOS,IOFST  ;VIRGIN BUFFER?\r
+       POPJ PDP,0      ;YES. KEEP THIS ONE\r
+       PUSHJ PDP,ADVBFF        ;ADVANCE TO ANOTHER BUFFER\r
+       SKIPA   ;NO BUFFER AVAILABLE\r
+       POPJ PDP,0      ;OK. RETURN\r
+CRPOFF:        POP PDP,TAC\r
+       JRST CROFF\r
+\r
+\f\r
+;CODE CONVERSION FOR THE 029 KEYPUNCH\r
+\r
+;THE FOLLOWING EQUIVALENCES ARE ARTIFICIALLY DEFINED\r
+\r
+;029 KEYTOP    ;ASCII 35       ;ASCII 37\r
+;CENT          [               [\r
+;0-8-2         ]               ]\r
+;VERT BAR      ^               HAT = L.C. VERT BAR\r
+;UNDERBAR      _               UNDERBAR\r
+;NEGATION      \               TILDE = L.C. NEGATION\r
+\r
+       ;CHARACTERS     ;ZONE/DIGITS\r
+CRCNV: ASCII / 123/    ;N/N-3\r
+       ASCII .0/ST.    ;0/N-3\r
+       ASCII /-JKL/    ;11/N-3\r
+       ASCII /HI[./    ;12,8/N-3\r
+       ASCII /&ABC/    ;12/N-3\r
+       ASCII /QR!$/    ;11,8/N-3\r
+       ASCII /YZ],/    ;0,8/N-3\r
+       ASCII /89:#/    ;8/N-3\r
+       ASCII /4567/    ;N/4-7\r
+       ASCII /UVWX/    ;0/4-7\r
+       ASCII /MNOP/    ;11/4-7\r
+       ASCII /<(+^/    ;12,8/4-7\r
+       ASCII /DEFG/    ;12/4-7\r
+       ASCII /*);\/    ;11,8/4-7\r
+       ASCII /%_>?/    ;0,8/4-7\r
+       ASCII /@'="/    ;8/4-7\r
+\r
+;CODE FOR THE 026 KEYPUNCH A LA H HYMAN\r
+\r
+       ASCII / 123/    ;N/N-3\r
+       ASCII .0/ST.    ;0/N-3\r
+       ASCII /-JKL/    ;11/N-3\r
+       ASCII /HI?./    ;12,8/N-3\r
+       ASCII /+ABC/    ;12/N-3\r
+       ASCII /QR:$/    ;11,8/N-3\r
+       ASCII /YZ;,/    ;0,8/N-3\r
+       ASCII /89_=/    ;8/N-3\r
+       ASCII /4567/    ;N/4-7\r
+       ASCII /UVWX/    ;0/4-7\r
+       ASCII /MNOP/    ;11/4-7\r
+       ASCII /)]<!/    ;12,8/4-7\r
+       ASCII /DEFG/    ;12/4-7\r
+       ASCII /*[>&/    ;11,8/4-7\r
+       ASCII /("#%/    ;0,8/4-7\r
+       ASCII /@^'\/    ;8/4-7\r
+\r
+\r
+       END\r
+\f\r
index 76b2c5e..9659c5c 100644 (file)
Binary files a/src/cdrsrx.mac and b/src/cdrsrx.mac differ
index fbcb102..0338ed0 100644 (file)
@@ -445,4 +445,3 @@ IFE FTTTYSER,<
 \r
 ERREND:        END\r
 \f\r
-\0\r
index f8835ec..c73431e 100644 (file)
Binary files a/src/jobdat.mac and b/src/jobdat.mac differ
index f5c3273..58a0ae2 100644 (file)
@@ -18,6 +18,7 @@ SUBTTL        T. W. MCMANUS /TNM   TS   20 MAY 69
 \r
        EXTERNAL ADVBFE, IOSET, OUT, SETACT, STOIOS\r
 \r
+\r
 ;THE FOLLOWING SYMBOLS ARE REFERENCED OUTSIDE OF LPTSER:\r
 \r
        INTERN LPTINT, LPTNXT, LPTECM, LPTDON, LPTDSP\r
@@ -35,11 +36,13 @@ LPTSER:
        LPTDCM=7B35                     ;DONE CHANNEL MASK\r
        LPTBDM=LPTBSY+LPTDON            ;BUSY/DONE FLAG MASK\r
 \r
+\r
 ;LINE PRINTER DEVICE DEPENDANT I/O STATUS MNEMONIC DEFINITIONS\r
 \r
        LPTEND=Z(1B10)                  ;CLOSE UUO HAS BEEN DONE\r
        LPTSYN=Z(1B11)                  ;CREF AFTER CLOSE UUO HAS BEEN SENT\r
 \r
+\r
 ;LINE PRINTER DEVICE DATA BLOCK ADDRESSING MNEMNIC DEFINITIONS\r
 \r
        LPTCON=-4                       ;RH = SKIP CHAIN MASK REGISTER\r
@@ -57,6 +60,7 @@ LPTSER:
        LPTDTO=27                       ;DATAO LP?,(TAC)\r
        LPTBKO=30                       ;BLKO  LP?,LP?PTR\r
 \r
+\r
 ;LINE PRINTER SERVICE DISPATCH TABLE\r
 \r
        JRST LPTINI                     ;INITIALIZE\r
@@ -106,6 +110,7 @@ LPTINI: MOVEI TAC,LPTCLR            ;CLEAR THE LINE PRINTER
        JRST CPOPJ1                     ;SKIP RETURN IF ENTERED AT LPTINI\r
                                        ; TO FORCE CALL FOR EACH LPT\r
 \r
+\r
 ;LINE PRINTER CLOSE UUO ROUTINE\r
 \r
 LPTCLS:        TLO IOS,LPTEND                  ;TURN ON THE END FLAG\r
@@ -223,9 +228,3 @@ LPTSET:     MOVEI TAC,@DEVOAD(DEVDAT)       ;GET ABS. ADDR. OF CURRENT BUFFER
 \r
 \r
        END\r
-\r
-\r
-\r
-\r
-       \r
-\0\0\0\0
\ No newline at end of file
index 93f2e20..ae4d2f2 100644 (file)
@@ -2,6 +2,7 @@
 SUBTTL T. WACHS/TH  TS  20 MAY 69\r
        XP      VMTASR,420      ;DEFINE VERSION NUMBER FOR LOADER STORAGE MAP\r
 \r
+\r
 ENTRY MTASRX\r
 MTASRX:\r
 \r
@@ -20,6 +21,7 @@ MTADSP:       JRST    MTAREL          ;RELEASE
        JRST    MTDMPI\r
        POPJ    PDP,            ;USETO\r
        POPJ    PDP,            ;USETI\r
+       POPJ    PDP,            ;UGETF\r
        JRST    CPOPJ1          ;RENAME\r
        POPJ    PDP,            ;CLOSE INPUT\r
        POPJ    PDP,            ;UTPCLR\r
@@ -28,6 +30,7 @@ MTADSP:       JRST    MTAREL          ;RELEASE
 MTC=340\r
 MTS=344\r
 \r
+\r
 ;MTACHN=FLAG CHANNEL\r
 ;MTOCHN=DATA CHANNEL\r
 ;MTFLAG=10*MTACHN + 400\r
@@ -40,9 +43,9 @@ MTS=344
        EXTERN  CPOPJ,CPOPJ1,PIOMOD,PUNIT,MTWAIT,JIFSC2,COMCHK\r
        EXTERN  PIOFF,PION,MTASAV,ADRERR,PDVCNT,MTSIZ,STOIOS,IADRCK\r
 \r
-COMPAT=1000                    ;IBM COMPATABLE 9-TRACK\r
-DMPMOD=20000                   ;DUMP MODE FLAG\r
-MTREW=40000                    ;MAGTAPE IS REWINDING\r
+COMPAT=10000                   ;IBM COMPATABLE 9-TRACK\r
+DMPMOD=200000                  ;DUMP MODE FLAG\r
+MTREW=400000                   ;MAGTAPE IS REWINDING\r
 \r
 MTTRY=3                                ;NO. OF TIMES TO RETRY ON AN ERROR\r
 QUANT=3                                ;NO. OF RECORDS TO READ UNINTERRUPTED\r
@@ -70,14 +73,13 @@ MTAINI:     SETOM   NMTREW          ;RESET FLAGS
 \r
 ;IF ENTER OR LOOKUP IN SAVE MODE - CHANGE TO MODE 16\r
 SAVCHK:        LDB     TAC,PIOMOD      ;GET MODE\r
-       CAIN    TAC,0           ;SAVE MODE?\r
+       CAIN    TAC,2           ;SAVE MODE?\r
        TRO     IOS,16          ;YES, CHANGE TO DUMP-MODE\r
        MOVEM   IOS,DEVIOS(DEVDAT)\r
        JRST    CPOPJ1          ;GIVE GOOD RETURN FROM LOOKUP/ENTER\r
 ;CLOSE\r
 MTCLOS:        TLNN    DEVDAT,OUTPB    ;OUTPUT BEEN DONE?\r
        POPJ    PDP,            ;NO. GO AWAY\r
-\r
        LDB     TAC,PIOMOD\r
        CAIGE   TAC,16          ;DUMP MODE?\r
        PUSHJ   PDP,OUT         ;NO. EMPTY LAST PARTIAL BUFFER\r
@@ -125,10 +127,12 @@ ONECT4:   MOVEI   TAC,TPREDY      ;SET DEVICE ACTIVE
        HRRM    TAC,-1(PDP)     ;AGAIN WHEN INACTIVE\r
        JRST    SETACT          ;SET DEVICE ACTIVE\r
 \r
+\r
 ;DELAY TILL TAPE COMES OUT OF IO WAIT, THEN GET CONTROL\r
 DLYRDY:        SETOM   MTAVAL\r
        PUSHJ   PDP,WSYNC       ;WAIT FOR IO TO STOP\r
 \r
+\r
 ;GET MTC, CONNECT TAPE TO CONTROL\r
 TPREDY:        AOSE    MTREQ           ;GET CONTROL\r
        PUSHJ   PDP,MTWAIT      ;WAIT FOR IT\r
@@ -137,6 +141,7 @@ TPREDY:     AOSE    MTREQ           ;GET CONTROL
 TPRDY2:        MOVEM   PROG,USEPRG\r
        PUSHJ   PDP,CONECT      ;CONECT CONTROL TO TAPE\r
 \r
+\r
 ;SET TP FOR THIS TAPE\r
 TPSET: LDB     TP,[POINT 2,IOS,28] ;PARITY\r
        SKIPN   TP              ;USE STANDARD IF 0\r
@@ -153,13 +158,14 @@ TPSET:    LDB     TP,[POINT 2,IOS,28] ;PARITY
        CONSZ   MTS,4           ;7 OR 9 TRACK?\r
        JRST    RDYCHK          ;7 TRACK\r
        TLNN    IOS,COMPAT      ;9 TRACK. CORE DUMP?\r
-       TROA    TP,20030        ;YES\r
+       TROA    TP,20000        ;YES\r
        TRO     TP,40300        ;NO. SET 800 BPI, ODD PARITY\r
 \f;MAKE SURE TAPE IS READY\r
 RDYCHK:        CONSZ   MTS,40          ;READY?\r
        POPJ    PDP,            ;YES\r
-       CONSO   MTS,20000       ;REWINDING?\r
+       CONSO   MTS,200000      ;REWINDING?\r
        POPJ    PDP,            ;NO. LET XPORT HUNG INTERRUPT HANDLE IT\r
+\r
        TLO     IOS,MTREW       ;YES. MUST BE REWINDING\r
        PUSHJ   PDP,SETACT      ;DEVICE ACTIVE\r
        AOS     NMTREW          ;BUMP COUNT OF REWINDING DRIVES\r
@@ -183,13 +189,12 @@ REWCKA:   CONSO   MTS,40          ;STILL REWINDING?
        JRST    REWCK1          ;YES\r
        TLZE    IOS,IOW         ;NO, TAKE OUT OF IO WAIT\r
        PUSHJ   PDP,SETIOD\r
-       TLZ     IOS,MTREQ\r
+       TLZ     IOS,MTREW\r
        PUSHJ   PDP,CLRACT      ;NO LONGER ACTIVE\r
        JRST    REWCK2\r
-       \r
 REWCK1:        AOS     NMTREW          ;COUNT REWINDING TAPE\r
        MOVEI   TAC,36  \r
-       CONSZ   MTS,20000       ;IF TAPE IS STILL REWINDING\r
+       CONSZ   MTS,200000      ;IF TAPE IS STILL REWINDING\r
        DPB     TAC,PDVCNT      ;MAKE SURE IT DOESN'T GET A HUNG DEVICE\r
 REWCK2:        HLRZ    DEVDAT,DEVSER(DEVDAT) ;NEXT DEVICE\r
        HLRZ    TAC,DEVNAM(DEVDAT) ;A MAG TAPE?\r
@@ -237,6 +242,7 @@ MTAGO:      DPB     TAC,[POINT 4,TP,26] ;PUT FUNCTION INTO COMMAND
        CONO    MTC,(TP)        ;START TAPE MOVING\r
        JRST    CLRACT          ;AND RETURN\r
 \r
+\r
 ;SET 9-TRACK TAPE\r
 SET9TK:        TRNE UUO,1\r
        TLOA    IOS,COMPAT      ;SET IBM COMPAT.\r
@@ -290,7 +296,6 @@ MTDTGO:     MOVEM   TAC,PNTR        ;SAVE BLKI/BLKO POINTER
        HRRI    TAC1,PNTR       ;BLKI/BLKO PNTR\r
        MOVEM   TAC1,MTALOC     ;INTO INTERRUPT LOC\r
        HRLM    TP,USEWRD       ;SAVE COMMAND\r
-\r
        CONO    MTC,(TP)        ;START TAPE MOVING\r
        TRO     IOS,IOACT       ;SETACT CLEARS IOW\r
        JRST    STOIOS          ;STORE IOS AND RETURN\r
@@ -304,11 +309,12 @@ MTIN1:    SETCM   TAC,@DEVIAD(DEVDAT) ;-LARGEST POSSIBLE WRD CNT
 MTIN2: TRO     TP,2000         ;FUNCTION = READ\r
        MOVSI   TAC1,(BLKI MTC,) ;SETUP BLKI\r
        JRST    MTDTGO          ;GO START TAPE\r
+\r
 \fMTAINT:       CONSO   MTS,440102      ;INTERRUPT FOR MAG TAPE?\r
        JRST    .               ;NO. GO AWAY\r
        CONSO   MTC,400         ;HAS CONTROL FREE ENABLED?\r
        CONSZ   MTS,440100      ;NO. CONTROL FREE ERRONEOUSLY ON?\r
-       JRST    +2              ;REAL MTA INTERRUPT\r
+       JRST    .+2             ;REAL MTA INTERRUPT\r
        JRST    MTAINT+1        ;THIS INTERRUPT NOT REALLY FOR MTA\r
        JSR     MTASAV          ;YES. SAVE ACS\r
        HRRZ    DEVDAT,USEWRD   ;RESET DEVDAT\r
@@ -354,6 +360,7 @@ THRUT3:     HLRZ    TP,USEWRD       ;GET UNIT
        HLLZS   MTAINT          ;DONT LOOK AT ANY MORE INTERRUPTS\r
        POPJ    PDP,            ;AND EXIT\r
 \r
+\r
 ;HERE WHEN BLKI/BLKO COUNTS DOWN TO ZERO\r
 MTDEND:        0\r
        CONO    MTS,1           ;GIVE A FUNCTION STOP\r
@@ -395,6 +402,7 @@ INPTND:     CONSZ   MTS,10000       ;EOF?
        JRST    THRUTP          ;NONE FREE\r
        JRST    NXTREC          ;CONTINUE WITH NEXT RECORD\r
 \r
+\r
 ; HERE AT THE END OF A DUMP MODE RECORD\r
 DMPEND:        HLRZ    TP,USEWRD       ;SET UP COMMAND AGAIN\r
        CONSO   MTS,14000       ;EOF OR EOT?\r
@@ -421,7 +429,6 @@ MTDMP2:     TLO     IOS,DMPMOD      ;INDICATE DUMP-MODE
        SOS     UUO             ;WILL COUNT IT UP LATER\r
        MOVEM   UUO,LSTLOC      ;SAVE LOC OF LIST\r
 DMPBLK:        PUSHJ   PDP,NXTCOM      ;GET NEXT COMMAND\r
-\r
        ADDI    TAC,(PROG)      ;ADD RELOCATION FACTOR\r
        TLNE    IOS,IO          ;WRITING?\r
        JRST    MTOUT2          ;YES. GO WRITE RECORD\r
@@ -524,7 +531,6 @@ NMTREW:     0
 USEWRD:        0\r
 USEPRG:        0\r
 CLKREQ:        0\r
-       \r
 UNIT:  0\r
 ERCNT: 0\r
 ERRFLG:        0\r
@@ -533,5 +539,3 @@ LSTLOC:     0
 PNTR:  0\r
 SVPNTR:        0\r
 MTAEND:        END\r
-\f\r
-\0\0\r
index 370a94e..019128a 100644 (file)
@@ -2,6 +2,7 @@ TITLE   MTCSR6 - MAGNETIC TAPE ROUTINES FOR 516 CONTROL
 SUBTTL C.WHITE 27-APR-69 V406\r
        XP      VMTCSR,406      ;DEFINE GLOBAL VERSION NUMBER FOR LOADER MAP\r
 \r
+\r
 ENTRY MTCSR6\r
 MTCSR6:\r
 INTERNAL FTCHECK,FTMONP\r
@@ -58,6 +59,7 @@ MTCDSP:       POPJ PDP,               ;RELEASE
        POPJ PDP,               ;UTPCLR\r
                                ;MTAPE UUO (FALL INTO THIS CODE WHICH FOLLOWS)\r
 \r
+\r
 DEFINE MTAPES (A)      ;MARCO TO DEFINE LEGAL MTAPES UUO EFFECTIVE ADDRESSES.\r
 <      CODES=0\r
        IRP     A, <\r
@@ -75,7 +77,8 @@ DEFINE        MTAPES (A)      ;MARCO TO DEFINE LEGAL MTAPES UUO EFFECTIVE ADDRESSES.
        TRZ IOS,776000          ;CLEAR ERROR BITS ,IOF.\r
                                ;IOACT, IOBOT AND IOTEND.\r
        SKIPA T,UUO             ;CALL MTAPE2\r
-\fMTAPE:        PUSHJ PDP,MTCHK2        ;CHECK IF MAG TAPE CONTROL AVAIL.\r
+\f\r
+MTAPE: PUSHJ PDP,MTCHK2        ;CHECK IF MAG TAPE CONTROL AVAIL.\r
 MTAPE2:        TDZ IOS,[XWD IODT!IOSEOF,IOACT]\r
        TRNN T,SLICE            ;SET SLICE LEVEL THIS UUO?\r
        JRST NOSET              ;NO\r
@@ -93,13 +96,13 @@ NOSET:
        CONSO 224,4000          ;AT LOAD POINT?\r
        JRST MTGO0              ;NO\r
        CAIE T,3400             ;YES, BACKSPACE RECORD?\r
-\r
        CAIN T,400              ;NO, REW?\r
        JRST MTFIN              ;YES\r
        CAIN T,7400             ;NO, BACKSPACE FILE?\r
        JRST MTFIN              ;YES\r
 MTGO0: MOVSI TAC,TCF           ;LOOK FOR TAPE CONTROL FREE ONLY\r
-\f;HERE FROM INPUT AND OUTPUT UUOS AND INTERRUPT TO DO NEXT RECORD.\r
+\f\r
+;HERE FROM INPUT AND OUTPUT UUOS AND INTERRUPT TO DO NEXT RECORD.\r
 \r
 MTGO1: LDB TAC1,PUNIT          ;UNIT\r
        DPB TAC1,[POINT 3,T,31] ;UNIT\r
@@ -137,7 +140,8 @@ MTIN1:      SETCM TAC,@DEVIAD(DEVDAT)       ;-SIZE-1
        MOVEI T,2400    ;READ\r
 MTIN2: MOVE TAC1,[BLKI DC,4000+MTDC*10]\r
        JRST MTINDC\r
-\f;IS SYSTEM AVAILABLE\r
+\f\r
+;IS SYSTEM AVAILABLE\r
 MTCHEK:        PUSHJ PDP,GETDCMT       ;GET DATA AND MAG TAPE CONTROLS\r
        AOSE MTREQ              ;ARGUMENT\r
        MOVE IOS,DEVIOS(DEVDAT)\r
@@ -155,7 +159,6 @@ MTCHK2:     AOSE MTREQ
 \r
 MTCHK4:        TLO IOS,HASMT           ;THIS JOB NOW HAS MTC\r
        TLZE IOS,IOBEG          ;FIRST OPERATION AFTER INIT OR SETSTS\r
-\r
        TLZ IOS,IOSLIC          ;YES, SET SLICE LEVEL TO 0.\r
        TLZ IOS,IOREW           ;CLEAR MAG TAPE REWINDING\r
        PUSHJ PDP,REWCK         ;CHECK IF REWINDING?\r
@@ -173,7 +176,9 @@ MTCHK4:     TLO IOS,HASMT           ;THIS JOB NOW HAS MTC
 \r
 QSTAT: PUSHJ PDP,DETMDC        ;DETACH MTC AND DC\r
        JRST HNGSTP             ;CHECK STATUS (PULL FINGERS OUT, ETC)\r
-\f;MTAPE 0 WAITS UNTIL THE CONTROL IS FREE\r
+\r
+\f\r
+;MTAPE 0 WAITS UNTIL THE CONTROL IS FREE\r
 ;THUS MTAPE 0 PROVIDES THE ONLY WAY FOR A USER TO WAIT UNTIL A SPACING OPERATION\r
 ; (I.E., SKIP, BACKSPACE, OR REWIND) IS COMPLETED.\r
 \r
@@ -182,6 +187,8 @@ MTP0:       PUSHJ   PDP,MTCHK2      ;WAIT FOR CONTROL TO BECOME FREE,
                                ; AND RETURN TO THE USER.\r
 \r
 \r
+\r
+\r
 ;DETMDC-\r
 ;      DETACH MTC, AND TURN OFF HASMT.\r
 ;      THEN (IFF IODT ON)\r
@@ -197,7 +204,7 @@ MTHUNG:
 DETDC: TLZN IOS,IODT           ;DOES JOB HAVE DATA CONTROL?\r
        JRST STOIOS             ;NO- EXIT\r
        CONO DC,0\r
-       CONO DC,DCOFF\r
+       CONO PI,DCOFF\r
        SOSL DCREQ              ;ANYONE ELSE WAITING FOR IT?\r
        SETOM DCAVAL            ;YES- FLAG AS JUST BECOME AVAILABLE\r
        JRST STOIOS             ;AND EXIT\r
@@ -206,7 +213,8 @@ RELCON:     CONO 220,0
        CONO 224,0\r
        SETZM MTCCON\r
        POPJ PDP,\r
-\f;ROUTINE TO SEE IF UNIT IS REWINDING\r
+\f\r
+;ROUTINE TO SEE IF UNIT IS REWINDING\r
 ;CALL  MOVE DEVDAT,ADDRESS OF DDB\r
 ;      PUSHJ PDP,REWCK\r
 ;      UNIT READY\r
@@ -225,6 +233,7 @@ REWCK:      LDB TAC,PUNIT
        AOS (PDP)\r
        POPJ PDP,               ;YES- RETURN TO CALL+1\r
 \r
+\r
 REPEAT 0,<\r
 THIS WORKS WITH THE FOLLOWING MOD TO 545 TRANSPORT:\r
 \r
@@ -238,7 +247,8 @@ THIS MODE SETS IOP22(1) WHILE MAGTAPE IS REWINDING OR SPACING FORWARD
 TO LOAD POINT- IF ENABLES THE PROCESSOR TO DISTINGUISH BETWEEN A\r
 TAPE WHICH IS AT THE END OF A REWIND COMMAND, AND A TAPE WHICH IS\r
 SWITCHED TO LOCAL, OR OFF>\r
-\f;WRITE\r
+\f\r
+;WRITE\r
 MTOUT: PUSHJ PDP,MTCHEK\r
        TLO IOS,IO              ;WRITING\r
 MTOUT1:        MOVEI TAC,@DEVOAD(DEVDAT)       ;BUFFER ADDRESS, PROG INCLUDED\r
@@ -262,6 +272,8 @@ MTINDC:     MOVEM TAC,MTDCCN        ;BLKO POINTER
        MOVSI TAC,XNC           ;NO. COME BACK WHEN COMMAND BUFFER IS EMPTY\r
        JRST MTGO1\r
 \r
+\r
+\r
 CHKLOK:        CONSO 224,200           ;WRITE LOCKED?\r
        JRST MTGO0              ;NO, DO MTAPE\r
        PUSHJ PDP,QSTAT\r
@@ -281,12 +293,14 @@ MWLEOT:   MOVEI T,3               ;WRITE EOF
        MOVEI T,7               ;BSP\r
        JRST MTAPE\r
 \r
+\r
 MTCINI:        PUSHJ PDP,RELCON\r
        SETOM MTREWN            ;SET CLOCK REQUEST COUNT TO -1\r
        JRST MTNIO1\r
 \r
 \r
 ;BLK COUNTED OUT\r
+\r
 IFE FTCHECK+FTMONP,<\r
 MTDCND:        0\r
 >\r
@@ -294,7 +308,9 @@ MTDCN1:     CONO PI,DCOFF           ;SHUT OFF DC CHANNEL
        CONSZ DC,10000\r
        SETOM MISSED\r
        JEN @MTDCND\r
-\f;FLAG FROM TAPE CONTROL. SET UP BY INSERT MACRO\r
+\r
+\f\r
+;FLAG FROM TAPE CONTROL. SET UP BY INSERT MACRO\r
 MTCINT:        CONSO 224,@MTCCON\r
        JRST .\r
        JSR MTCSAV              ;SAVE AC'S\r
@@ -335,7 +351,8 @@ MTEOF:      TLO IOS,IOEND
        SETZM MTEOFF            ;CLEAR EOF FLAG\r
 \r
 ;AND FALL INTO MTEND1\r
-\fMTEND1:       PUSHJ PDP,DETDC         ;DETACH DC (IF ASSIGNED)\r
+\f\r
+MTEND1:        PUSHJ PDP,DETDC         ;DETACH DC (IF ASSIGNED)\r
        PUSHJ PDP,ETCHK         ;CHECK FOR END OF TAPE (FOR DUMP MODE OUT)\r
        PUSHJ PDP,CLRACT\r
        CONSO 224,TCF           ;TAPE CONTROL FREE?\r
@@ -368,7 +385,7 @@ REWLP:      MOVE IOS,DEVIOS(DEVDAT)
        PUSHJ PDP,REWCK         ;YES,SEE IF FINISHED REW.\r
        JRST .+3                ;HAS FINISHED\r
        JRST REW1               ;OFF- LET HUNG LOGICA TAKE CARE OF IT\r
-       JRST REW2               ;STILL REWINDING\r
+       JRST REW0               ;STILL REWINDING\r
        TDZ IOS,[XWD IOREW,IOACT];GET JOB OUT OF IO WAIT\r
        TLZE IOS,IOW\r
        PUSHJ PDP,SETIOD        ;START JOB UP AGAIN\r
@@ -388,9 +405,10 @@ REW3:      POP PDP,DEVDAT
 ETCHK: CONSZ MTS1,10000        ;EOT SEEN?\r
        TRO IOS,IOIMPM+IOTEND   ;YES-SET FLAGS\r
        TDZ IOS,[XWD IOREW,IOBOT];NO LONGER REWINDING\r
-       CONSZ MTS1,24002        ;UNLESSS\r
+       CONSZ MTS1,24000        ;UNLESSS\r
        TRO IOS,IOBOT           ;IS REALLY REWINDING\r
        POPJ PDP,               ;EXIT\r
+\r
 \f;ROUTINE CALLED AT CLOCK LEVEL TO SEE IF ANY UNITS WHICH ARE IN A\r
 ;REW WAIT HAVE FINISHED REWIND.\r
 \r
@@ -410,8 +428,6 @@ EXTERNAL JIFSC2
 \r
 MTCLK: MOVEI TAC1,JIFSC2       ;CHECK EVERY HALF SECOND\r
        HRLI TAC1,MTCLOK        ;DISPATCH ADDRESS\r
-       \r
-\r
        CONO PI,400             ;TURN OFF PI\r
        IDPB TAC1,CLOCK         ;STORE CLOCK REQUEST\r
        CONO PI,200             ;TURN ON PI\r
@@ -436,6 +452,8 @@ MTNIO2:     HLRZ TAC,MTDEV          ;COMMAND
        CONSZ 224, 400          ;EOF?\r
        TDO IOS,[XWD IOSEOF,IODEND]\r
        JRST MTNIO              ;EXIT\r
+\r
+\r
 \fMTEOR:        MOVEI TAC,ERF\r
        CONSO 224,ERF           ;END OF RECORD FLAG ON?\r
        JRST MTIGN1             ;NO. WAIT FOR IT.\r
@@ -455,7 +473,6 @@ MTNIO2:     HLRZ TAC,MTDEV          ;COMMAND
        CONO DC,0               ;SHUT DOWN DC\r
        LSH TAC,44(TAC1)        ;SHIFT LAST CHARACTERS TO LEFT END\r
        JUMPG T,MTEOR1\r
-\r
        AOBJN T,.+1             ;BUMP DATA POINTER\r
        MOVEM TAC,(T)           ;STORE LAST WORD\r
        MOVEM T,DCWRD           ;AND BUMPED POINTER\r
@@ -483,7 +500,8 @@ MTEOR2:     SOS     MTIDSP          ;POINT TO ERROR ROUTINE
        TRO     T,1             ;YES, COUNT IN QUARTER 4\r
        ADDM    T,MTECNT(DEVDAT);ADD TO ERROR COUNTS FOR THIS DRIVE\r
        JRST    MTECON          ;CHECK EOF\r
-\fMTERR:        HLRZ TAC,MTDEV          ;COMMAND\r
+\f\r
+MTERR: HLRZ TAC,MTDEV          ;COMMAND\r
        ANDI TAC,7400\r
        TRNE IOS,IONRCK\r
        JRST MTERR2\r
@@ -523,7 +541,8 @@ MTBSP3:     TRNN TAC,1000           ;READING
        CONO 220,4400(TAC)      ;WRITE BLANK TAPE\r
        AOS     MTERCN\r
        JRST MTIGN\r
-\fMTC=220               ;MAG TAPE CONTROL DEVICE NUMBER\r
+\f\r
+MTC=220                ;MAG TAPE CONTROL DEVICE NUMBER\r
 \r
 MTS1=224               ;MAG TAPE CONTROL STATUS REG 1\r
 XNC=40000      ;TRANSFER NEW COMMAND\r
@@ -538,11 +557,12 @@ IOTEND=2000       ;EOT INDICATION
 IONRCK=100     ;DO NOT RE-TRY ON ERRORS\r
 IOBOT=4000     ;TAPE AT LOAD POINT\r
 IODT=10000     ;A 1 FOR A DATA TRANSFER TYPE COMMAND\r
-IOSLIC=2000    ;A 1 IF SLICE LEVEL IS 1, OTHERWISE 0.\r
-HASMT=4000     ;IF A 1, THIS JOB HAS THE MAG TAPE CONTROL\r
-IOREW=40000    ;A 1 IF UNIT IS REWINDING AND ANOTHER OPERATIONS\r
+IOSLIC=20000   ;A 1 IF SLICE LEVEL IS 1, OTHERWISE 0.\r
+HASMT=40000    ;IF A 1, THIS JOB HAS THE MAG TAPE CONTROL\r
+IOREW=400000   ;A 1 IF UNIT IS REWINDING AND ANOTHER OPERATIONS\r
                ;IS ATTEMPTED ON SAME UNIT. MUST BE SIGN BIT.\r
 \r
+\r
 EXTERNAL ADVBFF,ADVBFE,DCREQ,MTCSAV,SETACT,CLRACT,ORACT,GETDCMT\r
 EXTERNAL MTCRET, DCAVAL, MTAVAL, MTCCHN, MTREQ\r
 EXTERNAL MTWAIT,OUT,SETIOD,CLOCK,HNGSTP,MTSIZ\r
@@ -577,7 +597,8 @@ MTCCON:     0       ;INTERRUPT FLAGS
 MTIDSP:        JRST MTPDUN\r
 \r
 >\r
-\f;LOGICAL EBND OF TAPE LOOP\r
+\f\r
+;LOGICAL END OF TAPE LOOP\r
 MTLEOT:        MOVEI T,7               ;BACKSPACE\r
        PUSHJ PDP,MTAPE2\r
        PUSHJ PDP,MTCHK2        ;CALL INTERLOCK, PICKUP IOS\r
@@ -647,9 +668,10 @@ MTDPI1:    TRNE IOS,IODEND
        MOVEI T,2400            ;READ COMMAND\r
        JRST MTDMP1             ;DUMP\r
 ;ADDRESS ERROR\r
+\r
 MTDMP2:        PUSHJ PDP,MTEND1\r
        JRST ADRERR\r
 \r
+\r
        END\r
 \f\r
-\0
\ No newline at end of file
index f9f30f7..6a7e8d6 100644 (file)
Binary files a/src/nulseg.mac and b/src/nulseg.mac differ
index f7b68b1..ba07460 100644 (file)
@@ -24,9 +24,10 @@ EXTERNAL OUT,SETACT,PLTCHN,PLTCHL,IOSET,ADVBFE,ADRERR,CPOPJ1
 EXTERNAL SETIOD,STOIOS,CLRACT,ILLINP,PLTSAV,IADRCK\r
 \r
 INTERN PLTDDB,PLTINT,PLTDSP\r
-\f;DISPATCH TABLE\r
+\f\r
+;DISPATCH TABLE\r
 \r
-       JRST PLTINT             ;INITIALIZE\r
+       JRST PLTINI             ;INITIALIZE\r
        JRST PLTHNG             ;HUNG DEVICE ERROR\r
 PLTDSP:        JRST PLTREL             ;RELEASE\r
        JRST PLTCLS             ;CLOSE\r
@@ -43,7 +44,7 @@ PLTREL:       CONO PLT,0              ;DEASSIGN PI CHANNEL, CLEAR DONE
        HLLZS PLTINT            ;REMOVE PLOTTER FROM DEVICE CHAIN\r
        POPJ PDP,\r
 \r
-\f;HERE BEGINS THE "OUTPUT" UUO\r
+;HERE BEGINS THE "OUTPUT" UUO\r
 \r
 PLTOUT:        PUSHJ PDP,PLTSET        ;SETUP BYTE POINTER AND COUNTER\r
         JRST ADRERR            ;ADDRESS ERR RETURN FROM PLTSET\r
@@ -56,7 +57,7 @@ PLTOUT:       PUSHJ PDP,PLTSET        ;SETUP BYTE POINTER AND COUNTER
        JRST .+3                ;NO\r
        MOVEI TAC,40            ;YES, START PLOTTER WITH PEN UP\r
        TLZ IOS,PLTUP           ;INIT "CLOSE" BIT\r
-       MOVE IOS,PLTIOS\r
+       MOVEM IOS,PLTIOS\r
        DATAO PLT,TAC           ;START PLOTTER BY SENDING 0 OR 40\r
        POPJ PDP,\r
 \f;FROM HERE THROUGH PLTOFF IS INTERRUPT SERVICE\r
@@ -74,7 +75,7 @@ PLTINT:       CONSO PLT,10            ;PLOTTER DONE FLAG SET?
 PLT1:  JSR PLTSAV              ;SAVE AC'S. SET UP PUSH DOWN POINTER\r
        MOVEI DEVDAT,PLTDDB\r
        PUSHJ PDP,IOSET         ;SETS UP PROG AND IOS\r
-       PUSHJ PDP,ADVBFE        ;ADVANCE AND LOOK AT NEXT BUFFERE\r
+       PUSHJ PDP,ADVBFE        ;ADVANCE AND LOOK AT NEXT BUFFER\r
         JRST PLTOFF            ;NO MORE DATA AVAILABLE\r
        PUSHJ PDP,PLTSET        ;SETUP BYTE POINTER AND COUNTER\r
         JRST PLTOFF            ;ADDRESS ERROR RET FROM PLTSET\r
@@ -91,7 +92,8 @@ PLTOFF:       CONO PLT,0              ;SHUT DOWN PLOTTER
        TLZE IOS,PLTUP          ;HAS THE "CLOSE" BEEN DONE?\r
        DATAO PLT,[40]          ;YES, LIFT PEN\r
        JRST PLT2\r
-\f;THIS SUBROUTINE CALCULATES A BYTE POINTER AND A BYTE COUNTER FOR\r
+\f\r
+;THIS SUBROUTINE CALCULATES A BYTE POINTER AND A BYTE COUNTER FOR\r
 ;THE BUFFER TO BE OUPUT, THE LAST WORD OF BUFFER IS ADR CHECKED TO BE IN USER AREA\r
 ;      PUSHJ PDP,PLTSET\r
 ;         RETURN 1     ;ADDRESS ERROR RETURN\r
@@ -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\r
                                ;ADDRESS OF BUFFER WORD COUNT\r
        TRNN IOS,16             ;IS THIS A TEST DATA MODE?\r
-       TLO TAC,[POINT 7,0,35]  ;YES, CONVERT TO 7 BIT BYTE POINTER\r
+       TLO TAC,(POINT 7,0,35)  ;YES, CONVERT TO 7 BIT BYTE POINTER\r
        MOVEM TAC,PLTPTR        ;SAVE BYTE POINTER\r
        HRRZ TAC,@TAC           ;GET BUFFER WORD COUNT\r
        MOVEM TAC,PLTCTR        ;SAVE AS POSITIVE WORD COUNT\r
index 8a26d74..c26abd9 100644 (file)
Binary files a/src/ptpser.mac and b/src/ptpser.mac differ
index 0e26375..244d665 100644 (file)
Binary files a/src/ptrser.mac and b/src/ptrser.mac differ
index 22deebc..541b216 100644 (file)
Binary files a/src/ptysrf.mac and b/src/ptysrf.mac differ
index a98f4a9..08a5184 100644 (file)
@@ -7,12 +7,10 @@ ENTRY PTYSRH          ;DUMMY GLOBAL FOR FULL DUPLEX PTY
 PTYSRH:\r
 \r
 \r
-\r
 ;ACCUMULATOR ASSIGNMENTS\r
 \r
        DDB=DEVDAT\r
        LINE=TAC1\r
-\r
        CHREC=TEM\r
        SCNHAC=12\r
        PIOS=13\r
@@ -29,6 +27,7 @@ IOPTW=4000            ;OUTPUT WAIT (OBJ. JOB HAS DONE INPUT)
 IOPTRE=2000            ;PTY RESPONSE IS READY\r
 MONMOD=1000            ;PTY IS IN MONITOR MODE\r
 \r
+\r
 INTERNAL FTCHECK,FTMONP\r
 IFN FTCHECK+FTMONP,<\r
 EXTERNAL PTYDDB,PTYCSV,PTYSAC,PTYBND,PTYBM1,PTYDDS,PIOSAV,PDDSAV\r
@@ -47,6 +46,7 @@ PTYDDB:       SIXBIT  /PTY0/
        EXP     PTYDSP\r
        XWD     DVIN+DVOUT,3\r
        Z\r
+       Z\r
        XWD     PROG,0\r
        XWD     PROG,0\r
        Z\r
@@ -62,7 +62,8 @@ PTYSA2:       BLT     SCNHAC,0
 PIOSAV:        0\r
 PDDSAV:        0\r
 >\r
-\fINTERNAL PTYDSP\r
+\f\r
+INTERNAL PTYDSP\r
 EXTERNAL OUT\r
        POPJ    PDP,    ;INITIALIZE\r
        POPJ    PDP,            ;PRINT ERROR, STOP JOB\r
@@ -126,7 +127,7 @@ PTYOUT:     LDB LINE,PUNIT
        POPJ PDP,\r
 \r
 PTYOU6:        TLO     IOS,T37+IOFST   ;FORCE BUFFER RESET\r
-                               ;T37 SO TABS, ETC NOT TRNSLATED (TIMING ERRO OTHERWI)\r
+                               ;T37 SO TABS, ETC NOT TRNSLATED (TIMING ERROR OTHERWISE)\r
        MOVEM IOS,DEVIOS(DDB)\r
        JSR PTYRET              ;RESTORE ACS\r
 \r
@@ -145,6 +146,7 @@ PTYOU0:     TRNE    IOS,IOPTRE
        JUMPE ITEM,PTYOU8       ;BUFFER EMPTY>\r
 \f      PUSHJ PDP,ITMCNT\r
        MOVEM ITEM,DEVCTR(DDB)\r
+\r
 \fPTYOU1:       TRO IOS,IOACT\r
        TRZ IOS,IOPTRE\r
        JSR PTYSAV              ;SAVE ACS\r
@@ -164,7 +166,6 @@ PTYOU7:     PUSHJ PDP,TCOMM         ;SEND NEXT CHARACTER
        JRST    PTYOU3          ;YES, BUFFER NOT MOVED INTO OBJECT\r
                                ;JOB TTY IN BUFFER \r
        JRST PTYOU2             ;NO\r
-\r
 PTYOU4:        CAIE CHREC,"^"\r
        JRST PTYOU7\r
        MOVEM CHREC,PTYCSV(PDDB);YES. FLUSH OUTPUT\r
@@ -231,7 +232,9 @@ PTYIN5:     JUMPE ITEM,PTYI3A       ;IF COUNT RUNS OUT
        EXCH PDDB,DDB\r
        PUSH PDP,LINE\r
        JRST PTYIN4\r
-\fPTYI3A:       TRZ     IOS,IOBKTL\r
+\r
+\f\r
+PTYI3A:        TRZ     IOS,IOBKTL\r
        TRO     IOS,IOPTRE      ;INPUT READY\r
 PTYI3B:        PUSHJ PDP,STOSQD\r
        JRST    ADRERR\r
@@ -249,6 +252,8 @@ PTYI10:     TLZE IOS, IOW
        POP PDP, LINE\r
 PTYIN8:        MOVEM IOS, DEVIOS(DDB)\r
        POPJ PDP,\r
+\r
+\r
 \f;SAVE ACCUMULATORS\r
 ;CALL  MOVEI DDB,ADDRESS OF PTYDB\r
 ;      JSR PTYSAV\r
@@ -266,10 +271,12 @@ PTYSA0:   MOVEM SCNHAC,PTYBND(DDB)        ;SAVE HIGH AC
        MOVE PDDB,DDB\r
        JRST @PTYSAV\r
 \r
+\r
 ;RESTORE ACCUMULATORS\r
 ;CALL  MOVEI PDDB,PTY DATA BLOCK ADDRESS\r
 ;      JSR PTYRET\r
 \r
+\r
 IFE FTCHECK+FTMONP,<\r
 PTYRET:        0\r
 >\r
@@ -281,6 +288,7 @@ PTYRE0:     HRRZ SCNHAC,PDDB
 \r
 ;SAVE ONLY PIOS AND PDDB\r
 \r
+\r
 IFE FTCHECK+FTMONP,<\r
 PACSAV:        0\r
 >\r
@@ -310,7 +318,6 @@ PTYPE:      MOVE PDDB,LINE
 PTWAKE:        PUSH PDP,TEM\r
        PUSH    PDP,TAC1\r
        LDB     TAC,[POINT 6,DEVCHR(PDDB),5]    ;PTY JOB NR\r
-\r
        HRRZ    TAC1,CLOCK              ;LAST JOB IN CLOCK QUEUE\r
 PTWAK2:        CAIN    TAC1,CIPWTM1            ;LOOKED AT ALL JOBS\r
        JRST PTWAK1                     ;YES, WAS NOT SLEEPING\r
@@ -332,15 +339,16 @@ PTWAK1:   POP     PDP,TAC1
 \r
 INTERNAL PTYOW,PTMNMD,PTMNMZ\r
 \r
-PTMNMD:        PUSH    PDP,PIOS\r
+\r
+PTMNMD:        JSR     PACSAV          ;SAVE 2 AC'S\r
        MOVEI   PIOS,MONMOD     ;PTY INTO MONITOR MODE\r
        JRST    PTYSET\r
 \r
-PTMNMZ:        PUSH    PDP,PIOS\r
+PTMNMZ:        JSR     PACSAV          ;SAVE AC'S\r
        HRROI   PIOS,MONMOD     ;PTY OUT OF MONITOR MODE\r
        JRST    PTYSET\r
 \r
-PTYOW: PUSH    PDP,PIOS\r
+PTYOW: JSR     PACSAV\r
        MOVEI   PIOS,IOPTW      ;PTY IN OUTPUT WAIT\r
 \r
 PTYSET:        MOVE    PDDB,LINE\r
@@ -352,6 +360,5 @@ PTYSET:     MOVE    PDDB,LINE
        TRNE    PIOS,IOPTW      ;IS LINKED TTY JOB IN INPUT WAIT?\r
        PUSHJ PDP,PTWAKE        ;YES, WAKE UP CONTROL JOB\r
        JRST ACRET\r
+\r
 \f      END\r
-\f\r
-\0\0\0\0
\ No newline at end of file
index b945c4f..01ae22a 100644 (file)
Binary files a/src/sysmak.mac and b/src/sysmak.mac differ