CPBIT=-1 ;CONDITIONAL ASSEMBLY PARAMETER FOR I/O DIRECTLY\r
;TO USER. IF -1 THE I/O IN DUMP MODE WITH\r
;BIT 29 ON IN INIT WILL DO IO DIRECTLY TO USER\r
- ;WIUTHOUT DIRECT CONSIDERATION OF BLOCK BOUNDRIES\r
+ ;WITHOUT DIRECT CONSIDERATION OF BLOCK BOUNDRIES\r
\r
\f INTERN DTCINT,DTCDDB,DTCINI,DTCDDS\r
\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
- POPJ PDP,USLSTA\r
+ PUSHJ PDP,USLSTA\r
CAILE BLK,TOPBLK ;BLOCK LEGAL?\r
POPJ PDP, ;NO. ERROR RETURN\r
ENTRC: MOVEM BLK,FSTBLK(DEVDAT) ;SAVE AS 1ST BLOCK\r
JRST UOUT2 ;YES\r
PUSHJ PDP,DIRCHK ;NO. MAKE SURE DIRECTORY IS IN CORE\r
HRRZ BLK,OBLK(DEVDAT)\r
- CAIN BLK,DIRBLKK ;CHECK IF WRITING DIRECTORY\r
+ CAIN BLK,DIRBLK ;CHECK IF WRITING DIRECTORY\r
JRST COR2HM ;YES, WRITE CORE IMAGE\r
JUMPE BLK,FAKADV ;DONT WRITE IF NO BLOCK GIVEN\r
PUSHJ PDP,BLKCHK ;CHECK FOR LEGAL BLOCK\r
HLRE BLK,BUF ;IS IT?\r
JUMPL BLK,LSTBLK ;YES, - LAST BLOCK OF FILE\r
JUMPN BLK,OUTBLK ;IF NON-0 - YES\r
- TLNE IOS,DMPCLS ;NO. LAST BLOCK OF A DUMPO FILE?\r
+ TLZE IOS,DMPCLS ;NO. LAST BLOCK OF A DUMPO FILE?\r
JRST OUTBLK ;YES. LINK MUST STAY 0\r
OUCOMP: PUSHJ PDP,USRFRE ;COMPUTE NEXT BLOCK\r
TLO IOS,NOLINK ;THIS BLOCK NOT LINKED\r
\r
\r
WRTBLK: PUSHJ PDP,FNDBLK ;GO SEARCH FOR BLOCK\r
- MOVE TAC1,[BLKO DTC,700] ;HERE WE ARE - GO WRITE\r
+ MOVE TAC1,[BLKO DC,700] ;HERE WE ARE - GO WRITE\r
JRST RDWRT\r
\f;WRITE LAST BLOCK\r
LSTBLK: MOVEI BLK,0 ;LINK=0\r
MOVEI TAC1,177(TAC)\r
BLT TAC,(TAC1)\r
TLO IOS,CHNGDR ;REMEMBER TO WRITE IT OUT\r
- MOVSI TAC1,DVDIRI\r
+ MOVSI TAC1,400000\r
ORM TAC1,DEVMOD(DEVDAT) ;DIR. IS NOW IN CORE\r
-FAKADV: TLZN IOS,DMPMOD ;DUMP MODE?\r
+FAKADV: TLZN IOS,DMPMOD\r
PUSHJ PDP,ADVBFE ;ADVANCE BUFFERS\r
JFCL\r
TLZ IOS,NOLINK ;DIRECTORY BLOCK IS NOT LINKED\r
HRLI UUO,PROG\r
PUSHJ PDP,COMCHK ;CHECK VALIDITY OF LIST\r
JRST SVADER ;NG. GIVE ADRESS ERROR\r
- SKIPL TAC,@UUO ;OK. NULL LIST?\r
+ SKIPN TAC,@UUO ;OK. NULL LIST?\r
JRST DMPTS1 ;YES. RETURN\r
IFN CPBIT, <\r
TRNE IOS,UDSD ;NO. NON-STD MODE?\r
MOVEM UUO,SVPNTR\r
ADDI TAC,(PROG) ;RELOCATE ADDRESS OF 1ST IOWD\r
MOVEM TAC,PNTR ;AND SAVE IT\r
- MOVE TAC,[JSP DMPADV] ;SET UP LOC FOR WHEN\r
+ MOVE TAC,[JSR DMPADV] ;SET UP LOC FOR WHEN\r
MOVEM TAC,DCLOC1 ;IOWD IS EXHAUSTED\r
HRRZM PROG,ADRPRG ;SAVE JUST ADDRESS OF PROG\r
TLO IOS,NOBUF ;INDICATE DIRECTLY TO USER\r
PUSHJ PDP,GETDT ;GET DT CONTROL\r
\r
READBC: PUSHJ PDP,FNDBLK ;SEARCH FOR RIGHT BLOCK\r
- MOVE TAC1,[BLKI DTC,300] ;FOUND IT - START READING\r
+ MOVE TAC1,[BLKI DC,300] ;FOUND IT - START READING\r
\r
;HERE WITH BLK=BLOCK NUMBER, TAC1=FUNCTION, START SEARCH\r
RDWRT: PUSH PDP,TAC\r
OR TAC1,UNIT ;UNIT AND PI CHAN\r
MOVEM TAC1,COMAND ;SAVE COMMAND FOR READ OR WRITE\r
POP PDP,TAC ;RESTORE SEARCH COMMAND\r
- CONO DC,DCIN ;SET DATA CONTROL TO REAF\r
+ CONO DC,DCIN ;SET DATA CONTROL TO READ\r
CONO PI,DCON ;TURN ON DC PI CHANNEL\r
- HLRI TAC,37\r
+ HRLI TAC,37\r
CONO PI,PIOFF\r
CONO DTC,(TAC) ;START TAPE MOVING\r
HLRM TAC,DTCINT\r
\r
;HERE FOR ANY DATA WORD WITH TAPE IN REVERSE\r
RVERS: 0\r
-IOWD: BLKI DTC,PNTR ;READ (WRITE) A WORD\r
+IOWD: BLKI DC,PNTR ;READ (WRITE) A WORD\r
JRST RVTHRU ;POINTER RAN OUT\r
SOS PNTR ;POINTER HAS TO BACK UP\r
SOS PNTR\r
CONSZ DC,10000 ;DATA MISSED?\r
SETOM ERRFLG ;YES. SET SWITCH\r
CONSO DTC,400 ;READING?\r
- CONO DC,0 ;YES. TERN OFF DC\r
+ CONO DC,0 ;YES. TURN OFF DC\r
CONO PI,DCOFF ;TURN OFF DC PI\r
JRST @SHUTDN\r
\f;COME HERE TO START READING BLOCK NUMBERS\r
\f;INTERRUPT HERE TO READ A BLOCK NUMBER\r
SRCH: 0 \r
MOVEM TAC,TEMP ;SAVE TAC\r
- DATAI DTC,TAC ;NO. READ A BLOCK NUMBER\r
+ DATAI DC,TAC ;NO. READ A BLOCK NUMBER\r
SUB TAC,BLOCK ;;PRESENT BLOCK - TARGET BLOCK\r
IFN CPBIT, <\r
SKIPE DIRCTN ;IF DIRECT IO\r
\f;INTERRUPT HERE FOR FLAG CHANNEL\r
DTCINT: CONSO DTS,37 ;INTERRUPT FOR DECTAPE?\r
JRST . ;NO, GO AWAY\r
- CONSZ DTS,40000 ;YES. JOB DONE ENABLED?\r
+ CONSO DTC,40000 ;YES. JOB DONE ENABLED?\r
JRST BLKNUM ;NO. READING BLOCK NUMBERS\r
CONSZ DTC,4000 ;YES. TIME FLAG ENABLED?\r
JRST TIMINT ;YES. CHECK IF THIS IS A TIME INTERRUPT\r
MOVEI TAC1,177(TAC)\r
BLT TAC,(TAC1) ;TRANSFER IT\r
HLRZ BLK,BUF ;NEXT BLOCK TO READ\r
- TRNE IOS,UDSD ;IF NON-STD\r
- AOSA BLK,IBLK(DEVDAT);READ SEQUENTIAL BLOCKS\r
+ TRNE IOS,UDSD\r
+ AOSA BLK,IBLK(DEVDAT) ;READ SEQUENTIAL BLOCKS\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
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
- CONSZ DTC,100000\r
+ CONSZ DTC,10000\r
TLO IOS,RVERSE\r
\f;HERE WHEN TAPE IS DONE\r
-THRUTP: CONSO DTC,200000 ;ON INTERRUPT LEVEL?\r
+THRUTP: CONSO DTC,20000 ;ON INTERRUPT LEVEL?\r
JRST THRUTD ;NO. TAPE IS NOT MOVING\r
MOVE TAC,UNIT ;SET TO STOP TAPE\r
CONSZ DTC,10000 ;GOING REVERSE?\r
TRO TAC,10000 ;YES\r
CONO DTC,245000(TAC) ;STOP TAPE, WITH TIME FLAG INTERRUPT ON\r
;ENABLE JOB DONE AS A FLAG FOR DTCINT\r
-THRUTA: SOSL DTREQ ;GIVE UP DATA CONTROL (DECTAPE CONTROL\r
- SETOM DTAVAL ;WILL BE GIVEN UP AT NEXT INTERRUPT\r
+THRUTA: SOSL DCREQ ;GIVE UP DATA CONTROL (DECTAPE CONTROL\r
+ SETOM DCAVAL ;WILL BE GIVEN UP AT NEXT INTERRUPT\r
TLZ IOS,DMPMOD+NOBUF ;RESET DUMP-MODE BIT\r
JRST CLRACT ;RESET IOACT AND RETURN\r
\r
\r
\r
;TURN TAPE AROUND AFTER END-ZONE INTERUPT\r
-TURN: MOVEM TAC,TEMPA ;SAVE TAC\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
+ 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
TLZN IOS,RWDIR+SINGL ;DIRECTORY OPERATION?\r
JRST THRUTP ;NO. RETURN TO USER\r
PUSHJ PDP,THRUTP ;YES. STOP TAPE\r
- MOVSI TAC,DVDIRIN ;CLEAR DIRECTORY IN CORE BIT\r
+ MOVSI TAC,400000 ;CLEAR DIRECTORY IN CORE BIT\r
ANDCAM TAC,DEVMOD(DEVDAT)\r
-BDDIR: LDB ITEM,PJOBN ;NUMBER OF OFFENDING JOB\r
+BDDIR: LDB BLK,PJOBN ;NUMBER OF OFFENDING JOB\r
JRST BADDIR ;GO PRINT ERROR MESSAGE\r
\fBFPNTR: IOWD 200,BUF+1\r
ONEONE: XWD 1,1\r
ERRFLG: 0\r
IFN CPBIT, <\r
BLKCNT: 0\r
-SVPNTR: 0\r
USPNTR: 0\r
+SVPNTR: 0\r
ADRPRG: 0\r
DIRCTN: 0\r
>\r