X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/d693caac75dd25e668e43e85c29205bfc8dea06e..HEAD:/src/mtasrx.mac diff --git a/src/mtasrx.mac b/src/mtasrx.mac index 93f2e20..ae4d2f2 100644 --- a/src/mtasrx.mac +++ b/src/mtasrx.mac @@ -2,6 +2,7 @@ SUBTTL T. WACHS/TH TS 20 MAY 69 XP VMTASR,420 ;DEFINE VERSION NUMBER FOR LOADER STORAGE MAP + ENTRY MTASRX MTASRX: @@ -20,6 +21,7 @@ MTADSP: JRST MTAREL ;RELEASE JRST MTDMPI POPJ PDP, ;USETO POPJ PDP, ;USETI + POPJ PDP, ;UGETF JRST CPOPJ1 ;RENAME POPJ PDP, ;CLOSE INPUT POPJ PDP, ;UTPCLR @@ -28,6 +30,7 @@ MTADSP: JRST MTAREL ;RELEASE MTC=340 MTS=344 + ;MTACHN=FLAG CHANNEL ;MTOCHN=DATA CHANNEL ;MTFLAG=10*MTACHN + 400 @@ -40,9 +43,9 @@ MTS=344 EXTERN CPOPJ,CPOPJ1,PIOMOD,PUNIT,MTWAIT,JIFSC2,COMCHK EXTERN PIOFF,PION,MTASAV,ADRERR,PDVCNT,MTSIZ,STOIOS,IADRCK -COMPAT=1000 ;IBM COMPATABLE 9-TRACK -DMPMOD=20000 ;DUMP MODE FLAG -MTREW=40000 ;MAGTAPE IS REWINDING +COMPAT=10000 ;IBM COMPATABLE 9-TRACK +DMPMOD=200000 ;DUMP MODE FLAG +MTREW=400000 ;MAGTAPE IS REWINDING MTTRY=3 ;NO. OF TIMES TO RETRY ON AN ERROR QUANT=3 ;NO. OF RECORDS TO READ UNINTERRUPTED @@ -70,14 +73,13 @@ MTAINI: SETOM NMTREW ;RESET FLAGS ;IF ENTER OR LOOKUP IN SAVE MODE - CHANGE TO MODE 16 SAVCHK: LDB TAC,PIOMOD ;GET MODE - CAIN TAC,0 ;SAVE MODE? + CAIN TAC,2 ;SAVE MODE? TRO IOS,16 ;YES, CHANGE TO DUMP-MODE MOVEM IOS,DEVIOS(DEVDAT) JRST CPOPJ1 ;GIVE GOOD RETURN FROM LOOKUP/ENTER ;CLOSE MTCLOS: TLNN DEVDAT,OUTPB ;OUTPUT BEEN DONE? POPJ PDP, ;NO. GO AWAY - LDB TAC,PIOMOD CAIGE TAC,16 ;DUMP MODE? PUSHJ PDP,OUT ;NO. EMPTY LAST PARTIAL BUFFER @@ -125,10 +127,12 @@ ONECT4: MOVEI TAC,TPREDY ;SET DEVICE ACTIVE HRRM TAC,-1(PDP) ;AGAIN WHEN INACTIVE JRST SETACT ;SET DEVICE ACTIVE + ;DELAY TILL TAPE COMES OUT OF IO WAIT, THEN GET CONTROL DLYRDY: SETOM MTAVAL PUSHJ PDP,WSYNC ;WAIT FOR IO TO STOP + ;GET MTC, CONNECT TAPE TO CONTROL TPREDY: AOSE MTREQ ;GET CONTROL PUSHJ PDP,MTWAIT ;WAIT FOR IT @@ -137,6 +141,7 @@ TPREDY: AOSE MTREQ ;GET CONTROL TPRDY2: MOVEM PROG,USEPRG PUSHJ PDP,CONECT ;CONECT CONTROL TO TAPE + ;SET TP FOR THIS TAPE TPSET: LDB TP,[POINT 2,IOS,28] ;PARITY SKIPN TP ;USE STANDARD IF 0 @@ -153,13 +158,14 @@ TPSET: LDB TP,[POINT 2,IOS,28] ;PARITY CONSZ MTS,4 ;7 OR 9 TRACK? JRST RDYCHK ;7 TRACK TLNN IOS,COMPAT ;9 TRACK. CORE DUMP? - TROA TP,20030 ;YES + TROA TP,20000 ;YES TRO TP,40300 ;NO. SET 800 BPI, ODD PARITY ;MAKE SURE TAPE IS READY RDYCHK: CONSZ MTS,40 ;READY? POPJ PDP, ;YES - CONSO MTS,20000 ;REWINDING? + CONSO MTS,200000 ;REWINDING? POPJ PDP, ;NO. LET XPORT HUNG INTERRUPT HANDLE IT + TLO IOS,MTREW ;YES. MUST BE REWINDING PUSHJ PDP,SETACT ;DEVICE ACTIVE AOS NMTREW ;BUMP COUNT OF REWINDING DRIVES @@ -183,13 +189,12 @@ REWCKA: CONSO MTS,40 ;STILL REWINDING? JRST REWCK1 ;YES TLZE IOS,IOW ;NO, TAKE OUT OF IO WAIT PUSHJ PDP,SETIOD - TLZ IOS,MTREQ + TLZ IOS,MTREW PUSHJ PDP,CLRACT ;NO LONGER ACTIVE JRST REWCK2 - REWCK1: AOS NMTREW ;COUNT REWINDING TAPE MOVEI TAC,36 - CONSZ MTS,20000 ;IF TAPE IS STILL REWINDING + CONSZ MTS,200000 ;IF TAPE IS STILL REWINDING DPB TAC,PDVCNT ;MAKE SURE IT DOESN'T GET A HUNG DEVICE REWCK2: HLRZ DEVDAT,DEVSER(DEVDAT) ;NEXT DEVICE HLRZ TAC,DEVNAM(DEVDAT) ;A MAG TAPE? @@ -237,6 +242,7 @@ MTAGO: DPB TAC,[POINT 4,TP,26] ;PUT FUNCTION INTO COMMAND CONO MTC,(TP) ;START TAPE MOVING JRST CLRACT ;AND RETURN + ;SET 9-TRACK TAPE SET9TK: TRNE UUO,1 TLOA IOS,COMPAT ;SET IBM COMPAT. @@ -290,7 +296,6 @@ MTDTGO: MOVEM TAC,PNTR ;SAVE BLKI/BLKO POINTER HRRI TAC1,PNTR ;BLKI/BLKO PNTR MOVEM TAC1,MTALOC ;INTO INTERRUPT LOC HRLM TP,USEWRD ;SAVE COMMAND - CONO MTC,(TP) ;START TAPE MOVING TRO IOS,IOACT ;SETACT CLEARS IOW JRST STOIOS ;STORE IOS AND RETURN @@ -304,11 +309,12 @@ MTIN1: SETCM TAC,@DEVIAD(DEVDAT) ;-LARGEST POSSIBLE WRD CNT MTIN2: TRO TP,2000 ;FUNCTION = READ MOVSI TAC1,(BLKI MTC,) ;SETUP BLKI JRST MTDTGO ;GO START TAPE + MTAINT: CONSO MTS,440102 ;INTERRUPT FOR MAG TAPE? JRST . ;NO. GO AWAY CONSO MTC,400 ;HAS CONTROL FREE ENABLED? CONSZ MTS,440100 ;NO. CONTROL FREE ERRONEOUSLY ON? - JRST +2 ;REAL MTA INTERRUPT + JRST .+2 ;REAL MTA INTERRUPT JRST MTAINT+1 ;THIS INTERRUPT NOT REALLY FOR MTA JSR MTASAV ;YES. SAVE ACS HRRZ DEVDAT,USEWRD ;RESET DEVDAT @@ -354,6 +360,7 @@ THRUT3: HLRZ TP,USEWRD ;GET UNIT HLLZS MTAINT ;DONT LOOK AT ANY MORE INTERRUPTS POPJ PDP, ;AND EXIT + ;HERE WHEN BLKI/BLKO COUNTS DOWN TO ZERO MTDEND: 0 CONO MTS,1 ;GIVE A FUNCTION STOP @@ -395,6 +402,7 @@ INPTND: CONSZ MTS,10000 ;EOF? JRST THRUTP ;NONE FREE JRST NXTREC ;CONTINUE WITH NEXT RECORD + ; HERE AT THE END OF A DUMP MODE RECORD DMPEND: HLRZ TP,USEWRD ;SET UP COMMAND AGAIN CONSO MTS,14000 ;EOF OR EOT? @@ -421,7 +429,6 @@ MTDMP2: TLO IOS,DMPMOD ;INDICATE DUMP-MODE SOS UUO ;WILL COUNT IT UP LATER MOVEM UUO,LSTLOC ;SAVE LOC OF LIST DMPBLK: PUSHJ PDP,NXTCOM ;GET NEXT COMMAND - ADDI TAC,(PROG) ;ADD RELOCATION FACTOR TLNE IOS,IO ;WRITING? JRST MTOUT2 ;YES. GO WRITE RECORD @@ -524,7 +531,6 @@ NMTREW: 0 USEWRD: 0 USEPRG: 0 CLKREQ: 0 - UNIT: 0 ERCNT: 0 ERRFLG: 0 @@ -533,5 +539,3 @@ LSTLOC: 0 PNTR: 0 SVPNTR: 0 MTAEND: END - -