TITLE DTCSRN - NEW FORMAT DECTAPE SERVICE FOR 551 (PDP-6)\r
SUBTTL DTA551 A.WACHS/TW/RCC 01 JUN 69 V012\r
- XP VDTASR,012 ;GLOBAL VERSION NUMBER FOIR LOADER STORAGE MAP.\r
+ XP VDTASR,012 ;GLOBAL VERSION NUMBER FOR LOADER STORAGE MAP.\r
\r
ENTRY DTCSRN ;ENTRY POINT FOR SELECTIVE LOAD BY BUILD\r
DTCSRN:\r
EXTERNAL TPOPJ,TPOPJ1,DTCCHL,DCOUT,DCIN,DCON,DCOFF\r
-EXTERNAL STOIOS,STOTAC,SETACT,CLRACT,OUT,DTASAV,PIOMOD\r
+EXTERNAL STOIOS,STOTAC,SETACT,CLRACT,OUT,DTCSAV,PIOMOD\r
\r
EXTERNAL DTAVAL,DTREQ,SETIOD,THSDAT,PUNIT,GETDCDT\r
EXTERNAL ADVBFE,ADVBFF,ADRERR,WAIT1,CPOPJ,CPOPJ1,BADDIR\r
\r
JRST DTCINI\r
JRST THRUTP ;HUNG DEVICE\r
-DTADSP JRST UREL\r
+DTCDSP: JRST UREL\r
JRST UCLS\r
JRST UOUT\r
JRST UIN\r
TLO IOS,SINGL ;JUST READ 1 RECORD\r
MOVEI BLK,DIRBLK ;NO, FIND FIRST MENTION OF BLOCK\r
PUSHJ PDP,LSTFRE+1 ;NEAR DIRECTORY\r
- JUMPN BLK,LOOKE ;FOUND IF BLK NOT =0\r
+ JUMPN BLK,.+3 ;FOUND IF BLK NOT =0\r
LOOKD: PUSHJ PDP,BLKSRC ;FIND FIRST MENTION IN DIRECTORY\r
JRST BDDIR ;NOT THERE - ERROR\r
-LOOKE: PUSHJ PDP,RDBLUK ;GO READ IT\r
+ PUSHJ PDP,READBF ;GO READ IT\r
PUSHJ PDP,WAIT1 ;WAIT TILL IT'S IN\r
HRLM AC1,IBLK(DEVDAT) ;SAVE INDEX ON INPUT FILE FOR LATER\r
;TEST ON ENTER - WONT ALLOW ENTER\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
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
JRST SETACT ;LIGHT IOACT AND RETURN\r
\r
;HERE TO CLOSE A DUMP MODE FILE\r
-CLSDMP: TLO IOS,DMPOCLS+IO+DMPMOD ;SET SWITCHES\r
+CLSDMP: TLO IOS,CLSDMP ;SET SWITCHES\r
PUSHJ PDP,GETDT ;GET CONTROL\r
SETZM BUF ;ENSURE LINK, WORDCOUNT=0\r
JRST OUFULL ;GO WRITE THE BLOCK\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
+ 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
\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
\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
>\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
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
;END OF DUMP-MODE LIST\r
CONO DTC,360000(TAC) ;START DATA FLOW\r
JRST SRCHXT ;AND LEAVE\r
\r
-IORVS: MOVEI TAC,10000 ;SET IO FOR REVERSE\r
+IORVRS: MOVEI TAC,10000 ;SET IO FOR REVERSE\r
ORM TAC,COMAND\r
MOVEI TAC,177\r
ADDM TAC,PNTR ;READ FROM TOP OF BUFFER DOWN\r
CONSZ DTS,1 ;JOB DONE LIT?\r
CONSZ DTS,116 ;AND NO ERORS?\r
JRST ERRS ;NO. ERROR\r
- SKIPF ERRFLG ;DATA MISSED?\r
+ SKIPE ERRFLG ;DATA MISSED?\r
JRST ERRS ;YES. TOO BAD\r
\r
;DATA WAS READ IN OR WRITTEN OUT FINE\r
HRRM BLK,IBLK(DEVDAT) ;SAVE IN DDB\r
TRNE IOS,IODTER+IODERR+IOIMPM ;WAS THERE AN INPUT ERROR?\r
JRST THRUIN ;YES. DONT ADVANCE BUFFERS\r
- PUSHJ PDP,ADVBUFF ;GET NEXT BUFFER\r
+ PUSHJ PDP,ADVBFF ;GET NEXT BUFFER\r
JRST THRUIN ;EMPTY BUF NOT AVAILABLE\r
\r
SKIPE BLK ;EXIT IF EOF OR BLOCK TOO LARGE\r
SOSL DTREQ ;GIVE UP DECTAPE CONTROL\r
SETOM DTAVAL \r
CONO DC,0 ;SHUT OFF DATA CONTROL\r
- CONO PI,DOFF ;AN TURN OF ITS PI CHANNEL\r
+ CONO PI,DCOFF ;AN TURN OF ITS PI CHANNEL\r
CONO DTC,0 ;SHUT DOWN DATA CONTROL\r
HLLZS DTCINT\r
POPJ PDP, ;AND LEAVE\r
JRST FILBUF ;NO. GO WRITE NEXT BLOCK\r
JRST THRUTP ;YES. GIVE UP TAPE\r
\r
+;TURN TAPE AROUND AFTER END-ZONE INTERUPT\r
+TURN: MOVEM TAC,TEMPA ;SAVE TAC\r
+ MOVE TAC,UNIT ;UNIT AND CHANNEL\r
+ CONSO DTC,10000 ;IN REVERSE?\r
+ TRO TAC,10000 ;NO. NO WILL BE\r
+ CONO DTC,322200(TAC);READ BLOCK NOS IN OPPOSITE DIRECTION\r
+ MOVE TAC,TEMPA ;RESTORE TAC\r
+ JEN @DTCCHL ;AND EXIT THE INTERRUPT\r
+\r
TIMINT: CONSO DTS,20 ;TIME FLAG INTERRUPT ON?\r
JRST SPRIUS ;NO. THIS IS A SPURIOUS INTERRUPT\r
EXCH TAC,TIMREQ ;ANOTHER TAPE CAN NOT BE\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
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 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
-\f INTERN DTABUF\r
-BFPNTR: IOWD 200,BUF+1\r
+ JRST BADDIR ;GO PRINT ERROR MESSAGE\r
+\fBFPNTR: IOWD 200,BUF+1\r
ONEONE: XWD 1,1\r
USEWRD: 0\r
USEPRG: 0\r
SVPNTR: 0\r
USPNTR: 0\r
ADRPRG: 0\r
-DIRCNT: 0\r
+DIRCTN: 0\r
>\r
BUF: BLOCK 200\r
DTAEND: END\r
\f\r
+\0\0\0\0
\ No newline at end of file