;FROM A TAPE\r
SPACE=4 ;NUMBER OF BLOCKS SEPERATING CONTIGUOUS BLKS OF A FILE\r
\r
+\r
;DDB MAGIC CELLS\r
FSTBLK=13\r
DLOC=14\r
UDSD=100\r
LSTSAV=20000\r
\r
+\r
;FLAGS IN LH OF IOS\r
NOLINK=200\r
CHNGDR=400\r
RUNBIT=200000\r
RECKON=400000 ;THIS TAPE IS DEAD-RECKONING.\r
; (MUST BE SIGN BIT)\r
-\r
CPBIT=-1 ;FEATURE TEST TO ALLOW IO INTO USER AREA DIRECTLY\r
;IT WILL ONLY HAPPEN ON DUMP MODE WITH NON-STANDARD BIT\r
;(UDSD) ON\r
+\r
\f EXTERN JIFSEC\r
\r
INTERN DTAINT,DTADDB,DTAINI,DTADDS,DTADSP\r
EXP DTADSP\r
XWD 1107,154403\r
EXP 0,0\r
-\r
XWD PROG,0\r
XWD PROG,0\r
EXP 0,0,0\r
-\r
EXP DTADIR\r
EXP 0,0,0,0,0\r
-\r
-\r
DTADIR: BLOCK 200\r
-DTADDS=.-DTADDR\r
+DTADDS=.-DTADDB\r
+\r
\r
JRST DTAINI\r
JRST HUNGTP ;HUNG DEVICE\r
-DTADSP JRST UREL\r
+DTADSP: JRST UREL\r
JRST UCLS\r
JRST UOUT\r
JRST UIN\r
\f HRRZ TAC1,UUO ;MTAPE - GET OPERATION\r
CAIE TAC1,1 ;REWIND OR\r
CAIN TAC1,11 ;REWIND UNLOAD ARE LEGAL\r
- SOJA TAC1,MTA0\r
+ SOJA TAC1,MTAP0\r
POPJ PDP, ;OTHERS ARE NO-OPS\r
\r
+\r
;INITIALIZE DTC\r
DTAINI: CONO DTC,0\r
SETZM DISCON\r
\r
;COME HERE TO RENAME TO A REAL NEW NAME\r
RENAM2: MOVE DAT,TAC ;SAVE LOC OF NAME IN DIRECTORY\r
-\r
PUSHJ PDP,DSERCH ;SEARCH FOR NEW NAME\r
SKIPA ;NOT FOUND - GOOD\r
JRST RENER2 ;NAME ALREADY EXISTS - ERROR\r
MOVEM TAC1,DEVFIL(DEVDAT) ;STORE FOR RENAME AND SUPERSEDING\r
; SHARED SEGMENTS\r
CAMN TAC1,(TAC) ;TEST FOR MATCH\r
- AOJA UUOI,NMFOUN ;FOUND NAME, CHECK EXTENSION\r
+ AOJA UUO,NMFOUN ;FOUND NAME, CHECK EXTENSION\r
AOBJN TAC,.-2 ;TRY NEXT NAME\r
POPJ PDP, ;NOT FOUND\r
NMFOUN: HLLZ TAC1,@UUO ;PICK UP USER'S EXTENSION\r
SOJA DAT,CPOPJ\r
HRLI DAT,060500\r
SOJA DAT,CPOPJ\r
-\r
\f;COME HERE TO DELETE THE FILE WHOSE INDEX IS INN TAC\r
DLETE: MOVEI TAC1,0 ;SET TO DELETE BLOCKS\r
PUSHJ PDP,BLKSRC ;FIND A BLOCK BELONGING TO FILE\r
ENTR: TRNE IOS,UDSD ;NON STANDARD?\r
JRST CPOPJ1 ;YES. RETURN\r
PUSHJ PDP,DSERCH ;NO. LOOK FOR MATCH\r
- JRST NEWNT ;THIS IS A NEW ENTRY\r
+ JRST NEWENT ;THIS IS A NEW ENTRY\r
ENTR2: MOVE TAC1,@UUO ;PICK UP 2ND WORD (EXTENSSION)\r
AOS UUO ;POINT TO WORD 3\r
HRR TAC1,@UUO ;ADD DATE\r
HRLM TAC,OBLK(DEVDAT) ;SAVE INDEX IN DDB\r
\r
PUSHJ PDP,DLETE ;DELETE ALL BLOCKS BELONGING TO FILE\r
- AOJE AC3,FNTRD ;FIND FIRST FREE BLOCK ON TAPE IF THIS\r
+ AOJE AC3,ENTRD ;FIND FIRST FREE BLOCK ON TAPE IF THIS\r
;IS A SAVE FILE (UGETF DONE)\r
MOVEI BLK,DIRBLK ;NO. GET 1ST BLOCK CLOSE TO\r
TLO IOS,RVERSE ;DIRECTORY. GOING IN REVERSE\r
;;SET POINTER TO CORRECT DIRECTORY ENTRY\r
DRPTR: SUBI BLK,1 ;SET FOR ILDB OR IDPB\r
IDIVI BLK,7 ;COMPUTE WORD, POSITION\r
- ADD BLK,OLOC(DEVDAT) ;GET CORRECT ADDRESS\r
+ ADD BLK,DLOC(DEVDAT) ;GET CORRECT ADDRESS\r
HRLI BLK,440500 ;MAKE IT A BYTE POINTER\r
JUMPE DAT,CPOPJ ;CORRECT FOR POSITION IN WORD\r
IBP BLK\r
\r
;HERE FOR NEW FILE NAME ON ENTER\r
NEWENT: SUB TAC,[XWD 26,26];START AT BEGINNING OF DIRECT.\r
-\r
SKIPN (TAC) ;FIND A FREE SLOT\r
AOJA UUO,ENTR2 ;RETURN WITH UUO POINTING TO WRD 2\r
AOBJN TAC,.-2\r
POPJ PDP, ;NONE AVAILABLE.\r
\r
+\r
;SET UP LENGTH OF FILE IN DIRECTORY FOR A SAVE FILE\r
SETWD4: HLRE TAC1,@UUO ;GET -LENGTH\r
MOVNS TAC1 ;+LENGTH\r
MOVE TAC,BLK ;TELL USER THE BLOCK NUMBER\r
JRST STOTAC\r
\r
+\r
;GET NEXT (OR PREVIOUS) FREE BLOCK\r
USRFRE: MOVEI TEM,SPACE ;BLOCKS "SPACE" APART\r
LDB BLK,PIOMOD ;EXCEPT DUMP AND SAVMOD FILES\r
USLSTA: PUSHJ PDP,LSTFRE ;THIS ONE\r
JRST CALNXT+1\r
\r
+\r
;NO FREE BLOCKS AVAILABLE. GIVE HIGH BLOCK,SET IOBKTL LATER\r
NOBLKS: MOVEI BLK,TOPBLK+1 ;SET HIGH BLOCK\r
POPJ PDP,\r
MOVEM IOS,DEVIOS(DEVDAT) ;SAVE IOS\r
JRST OUT ;GO TO WRITE RECORD\r
\r
+\r
+\r
;HERE TO CLOSE A DUMP MODE FILE\r
-CLSDMP: TLO IOS,DMPOCLS+IO+DMPMOD ;SET SWITCHES\r
+CLSDMP: TLO IOS,DMPCLS+IO+DMPMOD ;SET SWITCHES\r
PUSHJ PDP,GETDT ;GET CONTROL\r
SETZM BUF ;ENSURE ZERO LINK,WORDCOUNT\r
SETZM BUF+1 ;MAKE SURE 0, SO CAN GET WITH 3 SERIES MON.\r
PUSHJ PDP,WRTBLK ;WRITE UT\r
PUSHJ PDP,WAIT1 ;WAIT TILL IT HAS BEEN WRITTEN\r
\r
+\r
UREL2: MOVE TAC,DEVIAD(DEVDAT) ;BITS 1,2 ARE COUNT OF CHANS\r
TLNE TAC,200000 ;DEV INITED ON ANOTHER CHANNEL TOO?\r
-\r
QUANTL: POPJ PDP,QUANT ;YES, DON'T ZAP IOS OR DDB\r
\r
;SOME BITS IN THE IOS WORD AND THE DDB WILL NORMALLY BE CHANGED ON THE\r
;IT WILL WORK (CHECK IS MADE AT ENTER)\r
SETZM FSTBLK(DEVDAT)\r
JRST STOIOS ;STORE IOS AND RETURN\r
+\r
+\r
\fGETDT0: PUSHJ PDP,SETACT ;WAIT TILL TAPE COMES OUT OF REWIND\r
PUSHJ PDP,WSYNC ;BEFORE DOING ANYTHING ELSE TO IT\r
;GET DEC TAPE CONTROLLER\r
JUMPE BLK,EOF ;0 MEANS EOF\r
PUSHJ PDP,BLKCHK ;CHECK LEGALITY OF BLOCK NUMBER\r
TLNN IOS,DMPMOD ;DUMP MODE?\r
-\r
CAIE BLK,DIRBLK ;TRYING TO READ DIRECTORY?\r
JRST READBF ;NO. GO READ\r
\r
JRST STOIOS\r
JRST DMPEOF ;GIVE UP CONTROL IF DUMP-MODE\r
\r
+\r
;ZERO USER'S CORE ON SAVE-MODE INPUT\r
ZERCOR: MOVEI TAC,JOBDDT(PROG) ;ZERO CORE\r
HRLI TAC,1(TAC)\r
HRRZ BLK,OBLK(DEVDAT)\r
CAIN BLK,DIRBLKK ;CHECK IF WRITING DIRECTORY\r
JRST COR2HM ;YES, WRITE CORE IMAGE\r
- JUMPE BLK,FAKAV ;DONT WRITE IF NO BLOCK GIVEN\r
-\r
+ JUMPE BLK,FAKADV ;DONT WRITE IF NO BLOCK GIVEN\r
PUSHJ PDP,BLKCHK ;CHECK FOR LEGAL BLOCK\r
UOUT2: TLNN IOS,DMPMOD ;ALREADY HAVE CONTROL IF DUMP-MODE\r
PUSHJ PDP,GETDT ;GET DEC TAPE CONTROLLER\r
OUTBL2: HRRZ BLK,OBLK(DEVDAT)\r
PUSHJ PDP,STOIOS\r
\r
+\r
WRTBLK: PUSHJ PDP,FNDBLK ;GO SEARCH FOR BLOCK\r
MOVE TAC1,[BLKO DTC,700] ;HERE WE ARE - GO WRITE\r
JRST RDWRT\r
JRST DMPTS1 ;YES. RETURN\r
IFN CPBIT, <\r
TRNE IOS,UDSD ;NO. NON-STD MODE?\r
- SOJA DAT,TDUSER ;YES. GO ELSEWHERE\r
+ SOJA DAT,TOUSER ;YES. GO ELSEWHERE\r
>\r
DMPST2: SOS UUO ;NO. SAVE START OF LIST (-1)\r
MOVEM UUO,DMPLST(DEVDAT)\r
DMPTS1: POP PDP,TAC\r
JRST THRUTD\r
\r
+\r
IFN CPBIT, <\r
;HERE TO START DUMP-MODE INTO USER AREA DIRECTLY\r
-TOUSRF: JUMPE AC2,NOBLK0 ;CANT READ BLK 0 IN NON-STD DUMP MODE\r
+TOUSER: JUMPE AC2,NOBLK0 ;CANT READ BLK 0 IN NON-STD DUMP MODE\r
ASH DAT,-7 ;NUMBER OF WRDS IN LIST /200\r
AOS DAT\r
MOVEM DAT,BLKCNT ;SAVE TO UPDATE POSITION\r
POP PDP,TAC ;WRITING - THIS WILL SAVE LOTS OF TIME\r
JRST OUTBL2\r
\r
+\r
NOBLK0: TRO IOS,IOIMPM\r
POP PDP,TAC ;RETURN TO UUOCON WITH ERROR BIT SET\r
JRST THRUTD\r
>\r
DMPFLB: PUSHJ PDP,NXTCOM ;GET NEXT COMMAND\r
JRST DMPOTH ;END OF LIST\r
-DMPLFA: MOVE TEM,(TAC) ;GET NEXT WORD\r
+DMPFLA: MOVE TEM,(TAC) ;GET NEXT WORD\r
MOVEM TEM,BUF+1(TAC1) ;INTO BUFFER\r
AOBJP TAC1,DMPOVR ;BUFFER FULL IF GOES\r
AOBJN TAC,.-3 ;GET NEXT WORD FROM COMMAND\r
MOVEM TAC,BUF ;WD CNT =177\r
JRST OUFULL ;GO WRITE PART OF STUFF\r
\r
+\r
;GET NEXT COMMAND FROM LIST\r
NXTCOM: SKIPN DMPLST(DEVDAT) ;END OF COMMANDS?\r
JRST NXTCM2 ;YES. RETURN\r
NXTCM1: HRRM TAC,DMPLST(DEVDAT) ;STORE GO-TO ADDRESS\r
MOVE TAC,@TAC ;GET COMMAND\r
JUMPE TAC,NXTCM2 ;END OF LIST\r
- JUMPG TAX,NXTCM1 ;GO-TO WORD\r
+ JUMPG TAC,NXTCM1 ;GO-TO WORD\r
ADDI TAC,(PROG) ;REAL COMMAND - ADD RELOCATION\r
AOJA TAC,CPOPJ1 ;AND RETURN\r
+\r
\f;END OF DUMP-MODE LIST\r
NXTCM2: SETZM SVDWRD(DEVDAT) ;ZERO POINTERS\r
SETZM DMPLST(DEVDAT)\r
POPJ PDP,\r
\r
+\r
DMPFLC: SKIPE TAC,SVDWRD(DEVDAT) ;IS THERE ANOTHER COMMAND\r
JRST DMPFLA ;YES. GET IT\r
JRST DMPTH2 ;NO. THROUGH\r
SKIPA TAC,BFPNTR ;NO. INTO BUF\r
HRR TAC,DLOC(DEVDAT) ;YES. LOC OF DIRECTORY\r
CONSZ DTC,100000 ;IN REVERSE?\r
-\r
JRST IORVRS ;YES\r
SOS TAC ;ADDRESS -1\r
MOVE TEM,IOWD ;GET IOWD\r
\f;HERE IF TAPE IS GOING IN REVERSE WHEN BLOCK NUMBER FOUND\r
IORVRS: ADDI TAC,176 ;START AT TOP OF BUFFER\r
MOVE TEM,[JSR RVERS]\r
- JRST TOGO ;COMPILCATED STUFF FOR EACH WORD\r
+ JRST IOGO ;COMPILCATED STUFF FOR EACH WORD\r
+\r
\r
;HERE FOR AY DATA WORD WITH TAPE IN REVERSE\r
RVERS: 0\r
MOVEI BLK,0 ;SEARCH FOR BLOCK 0\r
PUSHJ PDP,FNDBLK ;GO FIND BLOCK\r
\r
+\r
;CONTROL COMES HERE ON INTERRUPT CHANNEL WHEN THE BLOCK IS FOUND\r
TLNE IOS,RUNBIT ;REWIND UNLOAD?\r
JRST .+3 ;YES, CONTINUE\r
MOVE IOS,DEVIOS(DEVDAT) ;RESET IOS\r
JRST REWDUN ;DECREASE DTREQ. STOP TAP\r
\r
+\r
;HERE TO PUT C(TAC) IN THE CLOCK QUEUE\r
CLKREQ: 0\r
CONO PI,PIOFF ;TURN OFF PI\r
TLNE TAC,2000 ;IS CONTROL STILL ACTIVE?\r
JRST SRCHD ;YES. MUST BE IN "PSEUDO END-ZONE"\r
DATAI DTC,TAC ;NO. READ A BLOCK NUMBER\r
- TLZ TAC,-1 ;LEGAL BLOCK NUMBER>\r
+ TLZ TAC,-1 ;INSURANCE\r
+ CAILE TAC,TOPBLK ;LEGAL BLOCK NUMBER?\r
JRST SRCHB ;NO. SET ERROR SWITCH\r
SUB TAC,BLOCK ;NOW-WANTED\r
IFN CPBIT, <\r
SRCHA: CONSZ DTC,100000 ;IF TAPE IS IN REVERSE\r
MOVNS TAC ;SWITCH TURN-AROUND TEST\r
JUMPLE TAC,.+3 ;TEST FOR DISCONNECT IF DIRECTION IS CORRECT\r
-\r
;***\r
CONO DTC,DTTURN ;TURN AROUND\r
JRST SRCHXT ;AND GO AWAY\r
MOVMS TAC\r
CAILE TAC,MINDIS ;WORTH WHILE TO DISCONNECT TAPE?\r
- JRST BEKON ;YES. GO DISCONNECT\r
+ JRST REKON ;YES. GO DISCONNECT\r
SKIPLE DISCON ;NO. IS THERE A DISCON. TAPE\r
;WHICH HAS TIMED OUT?\r
CAIG TAC,2 ;YES. WILL THIS SEARCH TAKE LONG?\r
SETZM ALMSWT\r
JEN @SRCH ;AND DISMISS THE INTERRUPT\r
\f;HERE IF AN ILLEGAL BLOCK WAS READ FROM THE TAPE\r
-SRCHR: AOS TAC,ERRCNT ;BUMP ERROR COUNT\r
- CAIG TAC,DTTRV ;TRIED ENOUGH?\r
+SRCHB: AOS TAC,ERRCNT ;BUMP ERROR COUNT\r
+ CAIG TAC,DTTRY ;TRIED ENOUGH?\r
JRST SRCHXT ;NO. READ ANOTHER BLOCK NUMBER\r
SETOM BLOCK ;YES. BLOCK = -1 AS AN ERROR SWITCH\r
- CONO DTA,770001 ;FUNCTION STOP\r
+ CONO DTS,770001 ;FUNCTION STOP\r
JRST SRCHXT ;GO AWAY\r
\r
+\r
IFN CPBIT, <\r
SRCHC: CONSZ DTC,100000 ;GOING FORWARD?\r
TLCA TAC,400000 ;NO. SWITCH TURN AROUND TEST. ENSURE FORWARD\r
JUMPE TAC,FOUND ;GO IF FOUND FORWARD\r
- SKIPI TAC ;TURN AROUND?>\r
+ SKIPL TAC ;TURN AROUND?\r
CONO DTC,DTTURN ;YES\r
JRST SRCHXT ;READ ANOTHER BLOCK NUMBER\r
>\r
LDB TAC1,PJOBN ;ASSOCIATED JOB NUMBER\r
HRRM TAC1,MONB2 ;SAVE IN WD 2 OF MONITOR BUFFER\r
HRLM DEVDAT,MONB2 ;SAVE ADDRESS OF DTA\r
-\r
CONSZ DTC,200000\r
IMULI TAC,62 ;COMPUTE A TIME TO BLOCK\r
CONSZ DTC,100000 ;BASED ON 50 MSEC/BLOCK FORWARD\r
TIMREQ: XWD BACK,0\r
TIMRQ2: XWD BACKA,1\r
\r
+\r
IFN ALMACT,<\r
EXTERN PRIIN\r
;COME HERE ON THE CLOCK LEVEL TO BRING THE JOB ASSOCIATED WITH\r
ANDCAM TAC,DEVIOS(DEVDAT) ;ZAP BIT SO IT WONT BE SWAPPED OUT AGAIN\r
POPJ PDP,\r
\r
+\r
;HERE WHEN SWAPPER DOES GET THE JOB BACK INTO CORE\r
SWPBAK: MOVE IOS,DEVIOS(DEVDAT)\r
SETM MONB2 ;CLEAR JOB NO, FROM MON BUFFER\r
TLNN IOS,IOFST ;WAS JOB SWAPPED OUT WHEN DATA FINISHED?\r
POPJ PDP, ;NO. TRANSFER COMPLETED\r
- MOVE TAC,JBTSTS(ITEM) ;YES, WAS IO ABORTED?>\r
+ MOVE TAC,JBTSTS(ITEM) ;YES, WAS IO ABORTED?\r
TRNN TAC,ALBORT\r
JRST FAKINT ;NO. NOW TRANSFER DATA, ADVANCE BUFFERS\r
JRST THRUTP ;YES. FORGET REST OF OPERATION\r
HLRZ TAC1,IBLK(DEVDAT) ;BLOCK NEEDED\r
DPB TAC1,[POINT 10,BLOCK,35]\r
HRRZ TAC,CLOCK\r
-\r
HRLI TAC1,CPOPJ ;FIND CLOCK-QUEUE REFERENVCE TO BACKC\r
BACK3: CAIN TAC,CIPWTM\r
JRST BACKD ;NOT THERE, TAPE MUST HAVE BEEN STOPPED\r
EXCH TAC,DISCON ;UNIT TO CONNECT TO\r
JRST BACK2 ;GO RECONNECT\r
\r
+\r
;IF WE GET HERE THERE IS A SLOW TAPE ON THE SELECTED DRIVE\r
BACKC: CONO PI,PIOFF ;CANT RISK CHANGING THE INTERRUPT ENABLES HRE\r
CONI DTS,TAC ;READ IN ENABLE FLAGS\r
MOVEM TEM,RVERS\r
EXCH DEVDAT,USEWRD\r
EXCH IOS,DEVIOS(DEVDAT)\r
- ECHO PDP,FNDPDP\r
+ EXCH PDP,FNDPDP\r
PUSHJ PDP,@DISPAD(DEVDAT) ;GO TO DISPATCH LOCATION\r
EXCH PDP,FNDPDP ;RESTORE ACS\r
EXCH IOS,DEVIOS(DEVDAT)\r
FNDPDP: XWD -2,.\r
0\r
\r
+\r
IFN CPBIT, <\r
;HERE WHERE DUMP-MODE POINTER RUNS OUT\r
DMPADV: 0\r
CONSZ DTS,670000 ;AND NO ERRORS?\r
JRST ERRS ;NO. TOUGH LUCK\r
SKIPGE BLOCK ;BAD BLOCK NUMBER ON TAPE?\r
+ JRST DERR ;YES, TURN ON IODERR\r
DTAIN2: TLNE IOS,DMPMOD ;DUMP MODE?\r
JRST DMPTHR ;YES. GO ELSEWHERE\r
TLNN IOS,SINGL\r
JRST OUTHRU ;YES\r
\fEXTERN JBTSTS,PJOBN\r
\r
+\r
;HERE ON END OF AN INPUT BLOCK\r
HRROI TAC1,177 ;MASK OUT 1ST-BLK DATA\r
TRNN IOS,UDSD ;UNLESS IN NON-STD\r
HRRM BLK,IBLK(DEVDAT) ;DAVE IN DDB\r
TRNE IOS,IODTER+IODERR+IOIMPM\r
JRST THRUIN\r
- PUSHJ PDP,ADVBUFF ;GET NEXT BUFFER\r
+ PUSHJ PDP,ADVBFF ;GET NEXT BUFFER\r
JRST THRUIN ;EMPTY BUF NOT AVAILABLE\r
-\r
SKIPLE DISCON ;TAPE TIMED OUT?\r
JRST BACKB ;YES. GO RECONNECT\r
SKIPE BLK ;EXIT IF EOF OR BLOCK TOO LARGE\r
SKIPG DTREQ ;YES. ANYONE ELSE WANT IT?\r
JRST READBC ;NO. READ NEXT BLOCK\r
\r
+\r
THRUIN: HRRZ TAC,OBLK(DEVDAT) ;TAPE ALSO BEING WRITTEN?\r
JUMPN TAC,THRUTP ;YES. DONT CHANGE REVERSE BIT\r
TLZ IOS,RVERSE ;NO. SET IOS BIT TO CORRECT DIRECTION\r
THRUTD: SOSL DTREQ ;BUMP COUNT DOWN\r
SETOM DTAVAL ;TELL SCHEDULER\r
THRUTA: CONO DTC,10000 ;DESELECT CONTROL\r
- TLZ IOS,DMPMOD+NOBUF+DMPCLS+PEWBIT+RUNBIT\r
+ TLZ IOS,DMPMOD+NOBUF+DMPCLS+REWBIT+RUNBIT\r
SETZM USEWRD ;INDICATE CONTROL NOW FREE\r
JRST CLRACT ;RESET IOACT AND RETURN\r
\r
;WHEN THE TAPE TIMES OUT FNDBLK WILL RESET THE HUNG TIME, AND\r
;IF IT IS STILL HUNG AT ITS END THE ERROR MESSAGE WILL OCCUR\r
\r
+\r
INTERN FTSWAP\r
EXTERN SHFWAT\r
;HERE ON END OF BLOCK WHEN THE JOB IS STILL SWAPPED OUT\r
JRST FILBUF ;NO. GO WRITE NEXT BLOCK\r
JRST THRUTP ;YES. GIVE UP TAPE\r
\r
+\r
;TURN TAPE AROUND AFTER END-ZONE INTERRUPT\r
TURN: CONSZ DTC,500 ;READ BLOCK NUMBERS?\r
JRST DIREOF ;NO. END ZONE WHILE READING DATA\r
SUB TAC1,ONEONE ;SET UP TAC1 WITH COUNT\r
>\r
TLNN IOS,IO\r
- JRST SVOMIN ;INPUT FILE\r
+ JRST SVDMIN ;INPUT FILE\r
HRRZ BLK,OBLK(DEVDAT) ;OUTPUT FILE, NEXT BLOCK\r
- JUMPF BLK,DMPTHA ;LAST BLOCK\r
+ JUMPE BLK,DMPTHA ;LAST BLOCK\r
IFE CPBIT, <\r
TRNE IOS,UDSD ;IF NON-STD MODE\r
AOSA OBLK(DEVDAT) ;WRITE CONSECUTIVE BLOCKS\r
HRRM BLK,IBLK(DEVDAT) ;SAVE IN DDB\r
JRST CPOPJ1\r
\r
+\r
IFN CPBIT, <\r
;HERE WHEN THROUGH DUMP-MODE DIRECTLY TO USER\r
USDMTH: MOVEI TAC1,IBLK(DEVDAT)\r
JUMPE BLK,DMPEOF ;IF EOF - LIGHT BIT\r
RDNXT: CAIG BLK,TOPBLK ;BLOCK LEGAL?\r
JRST READBC ;GO READ BLOCK NUMBER\r
- TROA IOS,IOBLKT ;LIGHT ERROR BIT\r
+ TROA IOS,IOBKTL ;LIGHT ERROR BIT\r
\r
;EOF BEFORE ALL DATA IS IN - DUMP MODE\r
DMPEOF: TRO IOS,IODEND ;LIGHT EOF BIT\r
JRST DMPTH2 ;GIVE UP TAPE\r
-\fSVADER: PUSHJ PDP,DMPTH2 ;GIVE UP CONTROL\r
+\f\r
+\r
+SVADER: PUSHJ PDP,DMPTH2 ;GIVE UP CONTROL\r
JRST ADRERR ;TYPE ERROR MESSAGE\r
;COME HERE ON ERROR\r
ERRS: AOS TAC,ERRCNT ;BUMP COUNT\r
>\r
ERRS1: CONSO DTS,40000 ;IF ILLEGAL OP - DONT RETRY\r
CAILE TAC,DTTRY ;ENOUGH REREADS?\r
- JRST PERMET ;YES. PERMANENT ERROR\r
+ JRST PERMER ;YES. PERMANENT ERROR\r
JRST FNDBL2 ;NO. TRY AGAIN\r
\r
;PERMANENT ERROR\r
TRO IOS,IOIMPM ;ILLEGAL OP\r
TLNE IOS,DMPMOD ;DUMP MODE?\r
JRST DMPTHR ;YES. NOT THROUGH YET\r
- TLNN IOS,IO+RDDIR+SINGL\r
+ TLNN IOS,IO+RWDIR+SINGL\r
JRST DTAIN2\r
REWDUN: TLZE IOS,IOW\r
PUSHJ PDP,SETIOD ;NO. TAKE OUT OF IO WAIT\r
JRST THRUTP ;NO. RETURN TO USER\r
PUSHJ PDP,THRUTP ;YES. STOP TAPE\r
MOVSI TAC,DVDIRIN ;CLEAR DIRECTORY IN CORE BIT\r
- ANDCAM TAC,DEVMOND(DEVDAT)\r
+ ANDCAM TAC,DEVMOD(DEVDAT)\r
BDDIR: LDB ITEM,PJOBN ;NUMBER OF OFFENDING JOB\r
- JRST RADDIR ;GO PRINT ERROR MESSAGE\r
+ JRST BADDIR ;GO PRINT ERROR MESSAGE\r
\f INTERN DTABUF\r
BFPNTR: IOWD 200,BUF+1\r
ONEONE: XWD 1,1\r
IFN CPBIT, <\r
BLKCNT: 0\r
SVPNTR: 0\r
-\r
USPNTR: 0\r
-DIRCNT: 0\r
+DIRCTN: 0\r
>\r
;THIS IS THE MONITOR BUFFER\r
DTABUF:\r