X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/cda2ba6d27526e5ef6f27f7b3391cfb55055bf2e..0000ed8f3efcdbf411f6c91517909089e5d7ef5d:/src/dtcsrn.mac diff --git a/src/dtcsrn.mac b/src/dtcsrn.mac index d8286ce..8d0970e 100644 --- a/src/dtcsrn.mac +++ b/src/dtcsrn.mac @@ -1,11 +1,11 @@ TITLE DTCSRN - NEW FORMAT DECTAPE SERVICE FOR 551 (PDP-6) SUBTTL DTA551 A.WACHS/TW/RCC 01 JUN 69 V012 - XP VDTASR,012 ;GLOBAL VERSION NUMBER FOIR LOADER STORAGE MAP. + XP VDTASR,012 ;GLOBAL VERSION NUMBER FOR LOADER STORAGE MAP. ENTRY DTCSRN ;ENTRY POINT FOR SELECTIVE LOAD BY BUILD DTCSRN: EXTERNAL TPOPJ,TPOPJ1,DTCCHL,DCOUT,DCIN,DCON,DCOFF -EXTERNAL STOIOS,STOTAC,SETACT,CLRACT,OUT,DTASAV,PIOMOD +EXTERNAL STOIOS,STOTAC,SETACT,CLRACT,OUT,DTCSAV,PIOMOD EXTERNAL DTAVAL,DTREQ,SETIOD,THSDAT,PUNIT,GETDCDT EXTERNAL ADVBFE,ADVBFF,ADRERR,WAIT1,CPOPJ,CPOPJ1,BADDIR @@ -74,7 +74,7 @@ DTCDDS=.-DTCDDB JRST DTCINI JRST THRUTP ;HUNG DEVICE -DTADSP JRST UREL +DTCDSP: JRST UREL JRST UCLS JRST UOUT JRST UIN @@ -125,10 +125,10 @@ STOWD4: IMUL TAC1,[-177] ;-NUMBER OF WORDS IF ALL BLOCKS FULL TLO IOS,SINGL ;JUST READ 1 RECORD MOVEI BLK,DIRBLK ;NO, FIND FIRST MENTION OF BLOCK PUSHJ PDP,LSTFRE+1 ;NEAR DIRECTORY - JUMPN BLK,LOOKE ;FOUND IF BLK NOT =0 + JUMPN BLK,.+3 ;FOUND IF BLK NOT =0 LOOKD: PUSHJ PDP,BLKSRC ;FIND FIRST MENTION IN DIRECTORY JRST BDDIR ;NOT THERE - ERROR -LOOKE: PUSHJ PDP,RDBLUK ;GO READ IT + PUSHJ PDP,READBF ;GO READ IT PUSHJ PDP,WAIT1 ;WAIT TILL IT'S IN HRLM AC1,IBLK(DEVDAT) ;SAVE INDEX ON INPUT FILE FOR LATER ;TEST ON ENTER - WONT ALLOW ENTER @@ -189,7 +189,7 @@ NMLOOK: SKIPN TAC1,@UUO ;GET NAME MOVEM TAC1,DEVFIL(DEVDAT) ;STORE FOR RENAME AND SUPERSEDING ; SHARED SEGMENTS CAMN TAC1,(TAC) ;TEST FOR MATCH - AOJA UUOI,NMFOUN ;FOUND NAME, CHECK EXTENSION + AOJA UUO,NMFOUN ;FOUND NAME, CHECK EXTENSION AOBJN TAC,.-2 ;TRY NEXT NAME POPJ PDP, ;NOT FOUND NMFOUN: HLLZ TAC1,@UUO ;PICK UP USER'S EXTENSION @@ -277,7 +277,7 @@ DLETE: MOVEI TAC1,0 ;SET TO DELETE BLOCKS ENTR: TRNE IOS,UDSD ;NON STANDARD? JRST CPOPJ1 ;YES. RETURN PUSHJ PDP,DSERCH ;NO. LOOK FOR MATCH - JRST NEWNT ;THIS IS A NEW ENTRY + JRST NEWENT ;THIS IS A NEW ENTRY ENTR2: MOVE TAC1,@UUO ;PICK UP 2ND WORD (EXTENSSION) AOS UUO ;POINT TO WORD 3 HRR TAC1,@UUO ;ADD DATE @@ -298,7 +298,7 @@ ENTRA: SUBI UUO,2 ;NO. POINT TO NAME HRLM TAC,OBLK(DEVDAT) ;SAVE INDEX IN DDB PUSHJ PDP,DLETE ;DELETE ALL BLOCKS BELONGING TO FILE - AOJE AC3,FNTRD ;FIND FIRST FREE BLOCK ON TAPE IF THIS + AOJE AC3,ENTRD ;FIND FIRST FREE BLOCK ON TAPE IF THIS ;IS A SAVE FILE (UGETF DONE) MOVEI BLK,DIRBLK ;NO. GET 1ST BLOCK CLOSE TO TLO IOS,RVERSE ;DIRECTORY. GOING IN REVERSE @@ -323,7 +323,7 @@ MARKDR: PUSHJ PDP,DRPTR ;SET POINTER TO BLOCK IN DIR ;;SET POINTER TO CORRECT DIRECTORY ENTRY DRPTR: SUBI BLK,1 ;SET FOR ILDB OR IDPB IDIVI BLK,7 ;COMPUTE WORD, POSITION - ADD BLK,OLOC(DEVDAT) ;GET CORRECT ADDRESS + ADD BLK,DLOC(DEVDAT) ;GET CORRECT ADDRESS HRLI BLK,440500 ;MAKE IT A BYTE POINTER JUMPE DAT,CPOPJ ;CORRECT FOR POSITION IN WORD IBP BLK @@ -456,7 +456,7 @@ GETDT: PUSHJ PDP,GETDCDT ;GET DATA CONTROL. DECTAPE CONTROL JRST SETACT ;LIGHT IOACT AND RETURN ;HERE TO CLOSE A DUMP MODE FILE -CLSDMP: TLO IOS,DMPOCLS+IO+DMPMOD ;SET SWITCHES +CLSDMP: TLO IOS,CLSDMP ;SET SWITCHES PUSHJ PDP,GETDT ;GET CONTROL SETZM BUF ;ENSURE LINK, WORDCOUNT=0 JRST OUFULL ;GO WRITE THE BLOCK @@ -529,7 +529,7 @@ UOUT: TLO IOS,IO HRRZ BLK,OBLK(DEVDAT) CAIN BLK,DIRBLKK ;CHECK IF WRITING DIRECTORY JRST COR2HM ;YES, WRITE CORE IMAGE - JUMPE BLK,FAKAV ;DONT WRITE IF NO BLOCK GIVEN + JUMPE BLK,FAKADV ;DONT WRITE IF NO BLOCK GIVEN PUSHJ PDP,BLKCHK ;CHECK FOR LEGAL BLOCK UOUT2: TLNN IOS,DMPMOD ;ALREADY HAVE CONTROL IF DUMP-MODE @@ -594,7 +594,7 @@ DMPSET: TLO IOS,DMPMOD ;LIGHT BIT JRST DMPTS1 ;YES. RETURN IFN CPBIT, < TRNE IOS,UDSD ;NO. NON-STD MODE? - SOJA DAT,TDUSER ;YES. GO ELSEWHERE + SOJA DAT,TOUSER ;YES. GO ELSEWHERE > DMPST2: SOS UUO ;NO. SAVE START OF LIST (-1) MOVEM UUO,DMPLST(DEVDAT) @@ -605,7 +605,7 @@ DMPTS1: POP PDP,TAC IFN CPBIT, < ;HERE TO START DUMP-MODE INTO USER AREA DIRECTLY -TOUSRF: JUMPE AC2,NOBLK0 ;CANT READ BLK 0 IN NON-STD DUMP MODE +TOUSER: JUMPE AC2,NOBLK0 ;CANT READ BLK 0 IN NON-STD DUMP MODE ASH DAT,-7 ;NUMBER OF WRDS IN LIST /200 AOS DAT MOVEM DAT,BLKCNT ;SAVE TO UPDATE POSITION @@ -631,7 +631,7 @@ DMPFIL: MOVSI TAC1,-177 > DMPFLB: PUSHJ PDP,NXTCOM ;GET NEXT COMMAND JRST DMPOTH ;END OF LIST -DMPLFA: MOVE TEM,(TAC) ;GET NEXT WORD +DMPFLA: MOVE TEM,(TAC) ;GET NEXT WORD MOVEM TEM,BUF+1(TAC1) ;INTO BUFFER AOBJP TAC1,DMPOVR ;BUFFER FULL IF GOES AOBJN TAC,.-3 ;GET NEXT WORD FROM COMMAND @@ -670,7 +670,7 @@ NXTCOM: SKIPN DMPLST(DEVDAT) ;END OF COMMANDS? NXTCM1: HRRM TAC,DMPLST(DEVDAT) ;STORE GO-TO ADDRESS MOVE TAC,@TAC ;GET COMMAND JUMPE TAC,NXTCM2 ;END OF LIST - JUMPG TAX,NXTCM1 ;GO-TO WORD + JUMPG TAC,NXTCM1 ;GO-TO WORD ADDI TAC,(PROG) ;REAL COMMAND - ADD RELOCATION AOJA TAC,CPOPJ1 ;AND RETURN ;END OF DUMP-MODE LIST @@ -826,7 +826,7 @@ FND1: MOVEM TAC,DCLOC CONO DTC,360000(TAC) ;START DATA FLOW JRST SRCHXT ;AND LEAVE -IORVS: MOVEI TAC,10000 ;SET IO FOR REVERSE +IORVRS: MOVEI TAC,10000 ;SET IO FOR REVERSE ORM TAC,COMAND MOVEI TAC,177 ADDM TAC,PNTR ;READ FROM TOP OF BUFFER DOWN @@ -847,7 +847,7 @@ DTCIN1: CONO DC,0 ;NO. TURN OFF DATA CONTROL CONSZ DTS,1 ;JOB DONE LIT? CONSZ DTS,116 ;AND NO ERORS? JRST ERRS ;NO. ERROR - SKIPF ERRFLG ;DATA MISSED? + SKIPE ERRFLG ;DATA MISSED? JRST ERRS ;YES. TOO BAD ;DATA WAS READ IN OR WRITTEN OUT FINE @@ -881,7 +881,7 @@ DTCIN2: TLNE IOS,DMPMOD ;DUMP MODE? HRRM BLK,IBLK(DEVDAT) ;SAVE IN DDB TRNE IOS,IODTER+IODERR+IOIMPM ;WAS THERE AN INPUT ERROR? JRST THRUIN ;YES. DONT ADVANCE BUFFERS - PUSHJ PDP,ADVBUFF ;GET NEXT BUFFER + PUSHJ PDP,ADVBFF ;GET NEXT BUFFER JRST THRUIN ;EMPTY BUF NOT AVAILABLE SKIPE BLK ;EXIT IF EOF OR BLOCK TOO LARGE @@ -913,7 +913,7 @@ THRUTD: PUSHJ PDP,THRUTA ;GIVE UP DATA CONTROL SOSL DTREQ ;GIVE UP DECTAPE CONTROL SETOM DTAVAL CONO DC,0 ;SHUT OFF DATA CONTROL - CONO PI,DOFF ;AN TURN OF ITS PI CHANNEL + CONO PI,DCOFF ;AN TURN OF ITS PI CHANNEL CONO DTC,0 ;SHUT DOWN DATA CONTROL HLLZS DTCINT POPJ PDP, ;AND LEAVE @@ -932,6 +932,15 @@ OUTHRU: PUSHJ PDP,ADVBFE ;GET NEXT BUFFER JRST FILBUF ;NO. GO WRITE NEXT BLOCK JRST THRUTP ;YES. GIVE UP TAPE +;TURN TAPE AROUND AFTER END-ZONE INTERUPT +TURN: MOVEM TAC,TEMPA ;SAVE TAC + MOVE TAC,UNIT ;UNIT AND CHANNEL + CONSO DTC,10000 ;IN REVERSE? + TRO TAC,10000 ;NO. NO WILL BE + CONO DTC,322200(TAC);READ BLOCK NOS IN OPPOSITE DIRECTION + MOVE TAC,TEMPA ;RESTORE TAC + JEN @DTCCHL ;AND EXIT THE INTERRUPT + TIMINT: CONSO DTS,20 ;TIME FLAG INTERRUPT ON? JRST SPRIUS ;NO. THIS IS A SPURIOUS INTERRUPT EXCH TAC,TIMREQ ;ANOTHER TAPE CAN NOT BE @@ -970,9 +979,9 @@ SVDMTH: IFN CPBIT, < SUB TAC1,ONEONE ;SET UP TAC1 WITH COUNT > TLNN IOS,IO - JRST SVOMIN ;INPUT FILE + JRST SVDMIN ;INPUT FILE HRRZ BLK,OBLK(DEVDAT) ;OUTPUT FILE, NEXT BLOCK - JUMPF BLK,DMPTHA ;LAST BLOCK + JUMPE BLK,DMPTHA ;LAST BLOCK IFE CPBIT, < TRNE IOS,UDSD ;IF NON-STD MODE AOSA OBLK(DEVDAT) ;WRITE CONSECUTIVE BLOCKS @@ -1028,7 +1037,7 @@ DMIFLB: MOVE TEM,BUF+1(TAC1) ;NEXT DATA WORD JUMPE BLK,DMPEOF ;IF EOF - LIGHT BIT RDNXT: CAIG BLK,TOPBLK ;BLOCK LEGAL? JRST READBC ;GO READ BLOCK NUMBER - TROA IOS,IOBLKT ;LIGHT ERROR BIT + TROA IOS,IOBKTL ;LIGHT ERROR BIT ;EOF BEFORE ALL DATA IS IN - DUMP MODE DMPEOF: TRO IOS,IODEND ;LIGHT EOF BIT @@ -1070,11 +1079,10 @@ NOBLK0: TRO IOS,IOIMPM ;ILLEGAL OP JRST THRUTP ;NO. RETURN TO USER PUSHJ PDP,THRUTP ;YES. STOP TAPE MOVSI TAC,DVDIRIN ;CLEAR DIRECTORY IN CORE BIT - ANDCAM TAC,DEVMOND(DEVDAT) + ANDCAM TAC,DEVMOD(DEVDAT) BDDIR: LDB ITEM,PJOBN ;NUMBER OF OFFENDING JOB - JRST RADDIR ;GO PRINT ERROR MESSAGE - INTERN DTABUF -BFPNTR: IOWD 200,BUF+1 + JRST BADDIR ;GO PRINT ERROR MESSAGE + BFPNTR: IOWD 200,BUF+1 ONEONE: XWD 1,1 USEWRD: 0 USEPRG: 0 @@ -1093,8 +1101,9 @@ BLKCNT: 0 SVPNTR: 0 USPNTR: 0 ADRPRG: 0 -DIRCNT: 0 +DIRCTN: 0 > BUF: BLOCK 200 DTAEND: END + \ No newline at end of file