ASMB,R,L,C * NAME: DBKLB * SOURCE: 92067-18339 * RELOC: 92067-16339 * PGMR: S.P.K. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM DBKLB,7 92067-16339 REV.2013 790309 ENT DBKLB DBKLB EQU * END DBKLB ASMB,R,L,C * NAME: BUFER * SOURCE: 92067-18339 * RELOC: 92067-16339 * PGMR: S.P.K. J.S.W * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM BUFER,7 92067-16339 REV.1903 790309 ENT BUFER ROUTINE TO FIND HIGH ADDR OF MAIN AND DETERMINE EXT COR.A # OF WORDS IN PROGRAM'S PARTITION AND BUFER NOP IN FREE AVAILABLE MEM IN PARTITION LDA 1717B ADDRESS OF ID SEG OF MAIN PROG JSB COR.A SYS ROUTINE TO GET FWA OF FREE MEM IN PARTITION LDB BUFER,I STA B,I ADDRESS OF FWA RETURNED IN A REG STA FWAVM LDA 1717B ADDR OF IDSEG OF CURRENT MAIN PROG ADA D14 ADDR OF 15TH WORD OF ID SEG LDA A,I VALUE OF 15 TH WORD OF ID SEG AND .17 FIND TYPE OF PROG IE.FG OR BG CPA D3 BG DISC RESIDENT? RSS JMP FG NO FOREGROUND DISC RESIDENT LDA 1777B YES, LWA MEM IN BG PARTITION STA LWA LDB 1754B FWA OF BG PARTITION STB FWA JMP BLEN FIND LENGTH OF AVMEM * FG LDA 1751B LWA+1 MEM IN FG PARTITION ADA N1 LWA IN FG PARTITION STA LWA LDB 1750B FWA OF FG PARTITION STB FWA * BLEN LDA NAME3 ADDRESS OF FIRST 2 CHARS OF NAME AND MASKU MASK OFF LOWER CHAR STA NAME3 LDA KEYWD TOP OF KEYWORD LIST STA KEY TN005 LDA KEY,I CHECK IF END OF LIST CCE,SZA,RSS JMP NOID END OF INSTR LIST, NO ID SEGMENT ADA D12 LDB A,I ID SEG ASCII NAME CHARS 1 & 2 CPB NAME1 COMPARE WITH CHAR 1 & 2 INA,RSS COMPARES JMP TN030 DOES NOT COMPARE, GO TO NEXT ID SEG LDB A,I ID SEG ASCII NAME 3,4 CPB NAME2 COMPARE WITH REQUESTED CHARS 3,4 INA,RSS COMPARES JMP TN030 DOES NOT COMPARE-GO TO NEXT ID SEG LDA A,I ID SEG ASCII NAME CHAR 5 STA B AND MASKU CPA NAME3 COMPARE CHAR 5 JMP TN040 COMPARES - SO ID SEG FOUND * TN030 ISZ KEY INCREMENT KEYWORD ADDRESS JMP TN005 GO TO COMPARE CHARACTERS TN040 LDB KEY,I ADDRESS OF ID SEGMENT LDA BPA1 RTE II OR III ? CPA D2 RSS RTE III JMP BLEN2 RTE II FIND BUFFER LENGTH ADB D21 POINT TO WORD 22 OF ID SEGMENT LDA B,I LOAD CONTENTS OF WORD 22 AND .76K CLE ELA,ALF ROTATE # OF PAGES TO RAL LOWER 6 BITS STA NAME1 SAVE IT ADA N19 IS IT LESS THAN 15 PAGES? SSA JMP BFLN2 YES, THEN CANNOT DO VERIFY WITH 6K BUFFER CLB,INB NO, B REG = 1 - CAN VERIFY WITH 6K BUFFER JMP BUFLN SEND VALUE OF B REG BACK TO MAIN PROG BFLN2 LDA NAME1 ADA N6 IS IT LESS THAN 7 PAGES? SSA CCB,RSS YES, THEN CANNOT VERIFY AT ALL CLB NO THEN CAN VERIFY WITH 2048 WORD BUF JMP BUFLN NOID CCB B REG = -1 - ID SEG NOT FOUND JMP BUFLN BLEN2 LDB FWA CMB,INB FIND PARTITION SIZE ADB LWA INB LWA-FWA+1 ADB N1350 ADD -13500 - -VE OF PARTITION SIZE REQD. SSB FOR VERIFY WITH 6144 WORD BUFFER CLB,RSS CANNOT VERIFY WITH 6144 WORD BUFFER CLB,INB VERIFY WITH 6K BUFFER POSSIBLE BUFLN ISZ BUFER LDA BUFER,I PASS BACK LENGTH OF PARTITION STB A,I LDA LWA FIND LENGTH OF AVMEM IN PARTITION LDB FWAVM CMB,INB B REG HAS FWA OF AVMEM ADB A INB LWA-FWAVM+1 ISZ BUFER LDA BUFER,I STB A,I # OF WORDS IN FREE AVMEM IN PARTITION ISZ BUFER JMP BUFER,I RETURN * A EQU 0 B EQU 1 FWAVM BSS 1 LWA BSS 1 FWA BSS 1 KEY BSS 1 MASKU OCT 177400 .76K OCT 76000 N1350 DEC -13500 N19 DEC -19 D21 DEC 21 BPA1 EQU 1742B KEYWD EQU 1657B VERFY ASC 6,VERFY NAME1 EQU VERFY NAME2 EQU VERFY+1 NAME3 EQU VERFY+2 D2 DEC 2 D3 DEC 3 N6 DEC -6 D12 DEC 12 D14 DEC 14 N1 DEC -1 .17 OCT 17 END FTN4,L C NAME: CHDLU C SOURCE: 92067-18339 C RELOC: 92067-16339 C PGMR: S.P.K. J.S.W C C *************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * C * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* C * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C *************************************************************** C SUBROUTINE CHDLU(ITLU,IDLU,ISUB,IDTYP X ),92067-16339 REV.1903 790512 DIMENSION ICHAR(2) EXTERNAL SUB,READU,MESG,ASCDC,DCASC,MEMGT CALL MEMGT(1653B,LUMAX) 10 IF ((IDLU.LT.1).OR.(IDLU.GT.64)) GO TO 530 CALL EXEC (13+100000B,IDLU,IEQT5) GO TO 530 C EQUIPMENT TYPE 32? 55 IF (IAND(IEQT5,37400B)-15000B) 115,130,530 C EQUIPMENT TYPE 31? 115 IF (IAND(IEQT5,37400B)-14400B) 530,140,530 130 IDTYP=7905 GO TO 150 140 IDTYP=7900 150 CALL SUB(IDLU,ISUB) RETURN 530 CALL MESG(ITLU,7) CALL DCASC (ICHAR,1,IDLU) CALL EXEC (2,ITLU,ICHAR,1) 540 ICHAR=2H CALL READU(ITLU,ICHAR,2) CALL ASCDC(ICHAR,1,IDLU) GO TO 10 END END$ FTN C NAME: CHUTP C SOURCE: 92067-18339 C RELOC: 92067-16339 C PGMR: S.P.K. J.S.W C C *************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * C * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* C * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C *************************************************************** C SUBROUTINE CHUTP(ITLU,IUNIT,IDTYP),92067-16339 REV.1903 790309 EXTERNAL MESG,ASCDC,READU,DCASC DIMENSION ICHAR2(2) 10 IF ((IDTYP.EQ.7900).OR.(IDTYP.EQ.7901)) GO TO 50 IF ((IDTYP.EQ.7905).OR.(IDTYP.EQ.7920).OR.(IDTYP.EQ.7906) X .OR.(IDTYP.EQ.7925)) GO TO 60 11 CALL MESG(ITLU,15) CALL DCASC (ICHAR2,2,IDTYP) CALL EXEC (2,ITLU,ICHAR2,2) CALL READU(ITLU,ICHAR2,2) CALL ASCDC (ICHAR2,2,IDTYP) GO TO 10 50 IDTYP=7900 IF ((IUNIT.LT.0).OR.(IUNIT.GT.3)) GO TO 505 RETURN 60 IF(IDTYP.EQ.7925) GO TO 66 IDTYP=7905 66 IF ((IUNIT.LT.0).OR.(IUNIT.GT.7)) GO TO 505 RETURN 505 CALL MESG(ITLU,6) CALL DCASC (ICHAR,1,IUNIT) CALL EXEC (2,ITLU,ICHAR,1) ICHAR=2H CALL READU(ITLU,ICHAR,1) CALL ASCDC(ICHAR,1,IUNIT) GO TO 10 END END$ FTN4,L,C C NAME: LUTRK C SOURCE: 92067-18339 C RELOC: 92067-16339 C PGMR: S.P.K.,J.S.W. C C *************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * C * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* C * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C *************************************************************** C SUBROUTINE LUTRK(ITLU,LIMIT,IUNIT,IDTYP,ITB30,MPST,ILUTR,LUFLG, C IEQT1),92067-16339 REV.2013 800103 C ROUTINE TO DECODE TRACK MAP TABLE AND BUILD TABLE FOR LU# AND C # OF TRACKS FOR THE DISC UNIT SPECIFIED BY IUNIT C C FORMAT OF TABLE IS: WORD 1 - LU# OF SUBCHANNEL 1 ON DISC 1 C WORD 2- # OF TRACKS FOR SUBCHANNEL 1 ON DISC 1, C WORD 3- LU# OF SUBCHANNEL 2 ON DISC 1 .............. C EXTERNAL MESG DIMENSION ITB30(1),ILUTR(1) LUFLG=0 IF (IDTYP.EQ.7900) GO TO 20 C FIND FIRST SUBCHANNEL # ON 7905 DISC UNIT C NSUB=-ITB30(MPST-1) ISUB=-1 10 IF (ISUB.EQ.NSUB) GO TO 150 ISUB=ISUB+1 C ISOLATE UNIT NUMBER FOR EVERY SUBCHANNEL ON TRACK MAP TABLE C UNTIL IT MATCHES IUNIT C IF (IAND(ITB30(MPST+ISUB*3+1),17B).NEQ.IUNIT) GO TO 10 GO TO 30 C C FIRST SUBCHANNEL # ON 7900 DISC UNIT 20 ISUB=IUNIT*2 30 IDLU=1 40 IEQT=0 IFLAG=0 C CALL ROUTINE TO GO THRU DEVICE REFERENCE TABLE AND FIND LU FOR C SUBCHANNEL D WRITE(1,5555) IUNIT,ISUB D5555 FORMAT("UNIT,SUB",2I5) CALL DRT (ISUB,IDLU,IEQT) C DRT RETURNS WITH LU=-1 IF SUBCHANNEL IS NOT ASSIGNED AN LU# IF (IDLU.EQ.-1) GO TO 200 C C CHECK EQUIPMENT# IN STATUS WORD TO MAKE SURE LU RETURNED IS FOR C THE RIGHT DISC UNIT TYPE C IAEQT5=(IAND(77B,IXGET(IXGET(1652B)+IDLU-1))-1)*15 X +IXGET(1650B)+4 C IEQT5=IXGET(IAEQT5) C IF ((IAND(IEQT5,37400B).EQ.15000B).AND.(IDTYP.EQ.7905).AND. C (IFDVR(IDLU).EQ.0)) GO TO 50 IF ((IAND(IEQT5,37400B).EQ.14400B).AND.(IDTYP.EQ.7900)) C GO TO 50 C THE EQUIPMENT TYPE IS NOT 31 OR 32, LU # NOT RIGHT, TRY AGAIN C IDLU=IDLU+1 GO TO 40 C FILL THE ILUTR TABLE WITH LU# AND # OF TRACKS 50 DO 90 ILU = 1,63,2 ILUTR(ILU)=IDLU IF (IDLU.EQ.2) LUFLG=1 C GET # OF TRACKS IF (IDTYP.EQ.7905) GO TO 60 ILUTR(ILU+1)=ITB30(MPST+ISUB+8) C ALL SUBCHANNELS FOR 7900 DISC UNIT DONE? IF (ISUB.EQ.IUNIT*2+1) GO TO 100 ISUB=ISUB+1 GO TO 80 60 ILUTR(ILU+1)=ITB30(MPST+ISUB*3+2) 70 IF (ISUB.EQ.NSUB-1) GO TO 100 ISUB=ISUB+1 IF (IAND(ITB30(MPST+ISUB*3+1),17B).NEQ.IUNIT) GO TO 70 80 IDLU=1 IFLAG=-1 C FIND LU# FOR GIVEN SUBCHANNEL AND EQT# CALL DRT(ISUB,IDLU,IEQT) IF (IDLU.EQ.-1) GO TO 200 90 CONTINUE C C END OF LIST OF LU #'S TO BE MARKED WITH -1 100 LIMIT=ILU IEQT1=IEQT RETURN C "IMPROPER TRACK MAP INFO. " 150 CALL MESG (ITLU,28) CALL MESG (ITLU,14) STOP C ERROR MESSAGE PRINTED - LU # NOT ASSIGNED TO FOLL. SUBCHNL 200 CALL MESG(ITLU,9) ICHAR=2H CALL DCASC(ICHAR,1,ISUB) CALL EXEC (2,ITLU,ICHAR,1) C ASSIGN LU# TO SUBCHANNEL AND RSTART UTILITY USIG RTE GO CMND CALL MESG (ITLU,11) PAUSE IF (IFLAG) 80,40 END END$ ASMB,R * NAME: MATCH * SOURCE: 92067-18339 * RELOC: 92067-16339 * PGMR: S.P.K. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM MATCH,7 92067-16339 REV.1903 790309 ENT MATCH ROUTINE TO MATCH TRACK MAP INFO FOR 2 DISC UNITS EXT MESG,EXEC,RMOVI,DRT,DCASC,EXEC MATCH NOP LDA MATCH,I STA RETRN SAVE RETURN ADDRESS CLA STA IWORD FETCH VALUES OF FIRST 8 ARGUMENTS LDB N7 STB ITEMP ITEMP IS COUNTER LOOP ISZ MATCH LOAD THEM IN BUF LDA MATCH,I ADDRESS OF ARGUMENT IN A REG LDA A,I VALUE IN A REG LDB ABUF LOAD ADDRESS OF BUFFER ADB IWORD DISPLACEMENT STA B,I ISZ IWORD ISZ ITEMP JMP LOOP LDB N3 STB ITEMP ITEMP IS COUNTER LOOP0 ISZ MATCH FETCH THE ADDRESSES OF 2 TRACK MAP TABLES LDA MATCH,I JSB RMOVI LDB ABUF ADDRESS OF BUFFER FOR PARAMETERS ADB IWORD INDEX INTO IT STA B,I STORE TABLE ADDRESS IN BUFFER ISZ IWORD ISZ ITEMP JMP LOOP0 LDA MPST1 ADJUST MAP START ADDRESS FOR ASSEMBLY ADA N1 STA MPST1 LDA MPST2 ADA N1 STA MPST2 LDA IDTYP CHECK DISC TYPE - 7900,7905 CPA D7905 7905 DISC? JMP M7905 YES,JUMP JSB M7900 NO,MATCH INFO, FOR 7900 DISC UNITS DEF D0 MATCH FIRST SUBCHNL STARTING TRACK # JSB M7900 DEF D1 MATCH SECOND SUBCHNL(REMOVABLE) STARTING TRACK # JSB M7900 DEF D8 MATCH FIRST SUBCHNL # OF TRACKS JSB M7900 DEF D9 MATCH SECOND SUBCHNL # OF TRACKS JMP RETRN,I TM INFO FOR BOTH 7900 UNITS MATCHES, RETURN M7905 LDA MPST1 DETERMINE NUMBER OF SUBCHNLS IN TRACK MAP TABLE ADA N1 ADA MAP1 LDA A,I CMA,INA NUMBER IS -VE SO MAKE IT +VE STA NSUB1 LDA MPST2 FIND # OF SUBCHANNELS IN MAP2 ADA N1 ADA MAP2 LDA A,I CMA,INA MAKE IT +VE STA NSUB2 # OF SUBCHANNELS IN MAP2 CLA STA ISUB1 SUBCHNL #'S FOR SOURCE DISC LOOP1 LDB MAP1 MAP ADDRESS OF SOUCE UNIT JSB CMPR IS ISUB1 ON IUNIT1? DEF MPST1 MAP START ADDR OF MAP1 DEF IUNT1 UNIT# OF SOURCE UNIT SZA A REG = 0 IF ISUB1 ON UNIT1 JMP ENDL3 NO,TRY NEXT SUBCHNL STB ITMP1 ADDR OF TRACK MAP INFO FOR ISUB1 STA ISUB2 YES, ISUB2 IS SUBCHNL FOR DEST DISC IUNIT2 LOOP2 LDB MAP2 MAP ADDRESS OF DEST DISC UNIT JSB CMPR ISUB2 ON IUNIT2? DEF MPST2 MAP START ADDR OF MAP2 DEF IUNT2 UNIT# OF SOURCE UNIT SZA A REG =0 SAYS ISUB2 IS ON IUNIT2 JMP ENDL2 NO, TRY NEXT SUBCHNL * TRACK MAP INFO FOR BOTH SUBCHANNELS MATCHES? STB ITMP2 ADDR OF TRACK MAP INFO FOR ISUB2 LDA ITMP1 BOTH SBCHNLS ARE ON DESIRED UNIT#'S LDA A,I START COMPARING - AREG HAS FIRST WORD LDB ITMP2 FIRST WORD FOR SUBCHNL ON 2ND DISC UNIT LDB B,I CPA B COMPARE RSS JMP ENDL2 DOES NOT MATCH - TRY WITH NEXT SUBCHNL LDA ITMP1 MATCH SECOND WORD FOR BOTH SUBCHANNELS INA LDA A,I BRING CONTENTS OF 2ND WORD AND .7776 MASK OUT THE UNIT# FROM WORD 2 OF SBCHNL ON UNIT1 STA ITEMP LDA ITMP2 POINTER TO BEG OF SUBCHNL INFO ON MAP 2 INA LDA A,I CONTENS OF WORD 2 AND .7776 MASK OUT UNIT# FROM WORD 2 OF SBCHNL ON UNIT2 CPA ITEMP COMPARE WORD INFO RSS JMP ENDL2 DO NOT MATCH - TRY WITH NEXT SUBCHNL LDA ITMP1 YES,COMPARE WORD 3 ADA D2 LDA A,I LDB ITMP2 FETCH CONTENTS OF WORD3 OF SUBCHNL ON UNIT2 ADB D2 LDB B,I CPA B JMP ENDL1 ENDL2 ISZ ISUB2 NO MATCH - TRY WITH NEXT SUBCHNL LDA ISUB2 INCREMENT AND TRY AGAIN CPA NSUB2 ALL SUBCHANNELS LOOKED AT? JMP ERROR YES - NO MATCH IN ENTIRE TMT - ERROR JMP LOOP2 NO - TRY AGAIN ENDL1 LDA ILUTR LU#-#TRACKS TABLE ADDR ADA ILU POINT TO NEXT ENTRY POINT IN IT INA # OF TRACKS ENTRY FOR ISUB2 STB A,I MTCH2 CLA STA ITEMP JSB DRT FIND LU# OF ISUB2 DEF *+4 DEF ISUB2 DEF ITEMP LU# DEF IEQT EQT # LDB ITEMP WAS SUBCHNL ENTRY MADE IN DRT? SSB,RSS JMP MTCH1 YES JSB MESG NO, LU# NOT ASSIGNED TO SUBCHNL DEF *+3 DEF ITLU DEF D9 ASSIGN LU# TO FOLL SUBCHNL JSB DCASC CONVERT SUBCHNL# TO ASCII DEF *+4 DEF ITEMP DEF D1 DEF ISUB JSB EXEC DISPLAY SUBCHANNEL # DEF *+5 DEF D2 DEF ITLU DEF ITEMP DEF D1 JSB MESG DEF *+3 DEF ITLU DEF D11 RESTART MESSAGE JSB EXEC DEF *+2 DEF D7 PAUSE JMP MTCH2 CONTINUE * MTCH1 LDA ILUTR ADDRESS OF LU-#TRACKS TABLE ADA ILU INDEX INTO TABLE STB A,I LU# ENTRY MADE IN TABLE LDA ILU INCREMENT ILU INDEX BY 2 ADA D2 STA ILU ENDL3 ISZ ISUB1 MATCH FOUND - NOW TRY WITH NEXT SUBCHNL LDA ISUB1 ON IUNIT1 CPA NSUB1 ALL SUBCHANNELS HAVE BEEN MATCHED? JMP RETRN,I YES-RETURN JMP LOOP1 NO - FIND NEXT ONE * *ERROR - SYSTEM LU TO BE RESTORED,SOURCE AND DEST TRCK MAP INFO * DOES NOT MATCH * ERROR JSB MESG DEF *+3 DEF ITLU DEF D16 JSB MESG DEF *+3 DEF ITLU DEF D14 JSB EXEC DEF *+2 DEF D6 * *SUBROUTINE TO COMPARE 1 WORD OF TRACK MAP INFO. FOR 7900 DISC UNITS * *CALLING SEQUENCE: *JSB M7900 *DEF DN DN IS THE DISPLACEMENT WITHIN TMT * M7900 NOP LDB M7900,I GET PARAMETER ADDRESS LDB B,I VALUE OF ARGUMENT STB ITEMP LDA IUNT1 ADA A ADA MPST1 POINTER TO BEG. OF INFO. FOR UNIT1 IN MAP 1 ADA MAP1 ADA ITEMP POINTER TO REQUIRED WORD IN MAP 1 LDA A,I FETCH CONTENTS OF WORD * LDB IUNT2 REPEAT PROCEDURE FOR WORD IN MAP 2 ADB B ADB MPST2 ADB MAP2 ADB ITEMP LDB B,I CPA B COMPARE INFO RSS JMP ERROR NO MATCH - ERROR ISZ M7900 MATCH, GET RETURN ADDRESS JMP M7900,I RETURN * *SUBROUTINE TO COMPARE UNIT# FOR GIVEN SBCHNL AND GIVEN DISC UNIT# * *CALLING SEQUENCE: *JSB CMPR *DEF MPST MAP START ADDR *DEF UNIT# * A REG=ISUB SUBCHNL # WHOSE UNIT # HAS TO BE COMPARED * B REG = MAP ADDRESS * RETURNS: A REG = 0 IF SUBCHNL IS ON UNIT * 1 OTHERWISE * B REG = IF A REG = 0 THEN ADDR OF TRACK MAP INFO FOR SUB * CMPR NOP STA ISUB ALS INDEX TO THE BEG OF SUBCHANNEL ENTRY ADA ISUB ISUB*3 ADA B ADDRESS OF MAP LDB CMPR,I GET MAP START ADDR LDB B,I ADA B STA ITEMP INA LDA A,I BRING CONTENTS OF 2ND WORD FOR SBCHNL AND .17 ISOLATE UNIT # ISZ CMPR LDB CMPR,I LDB B,I BRING UNIT # CPA B COMPARE UNIT #'S JMP EQUAL MATCH,JUMP LDA D1 DO NOT MATCH RETURN WITH 1 IN A REG JMP RCMPR EQUAL CLA RETURN WITH 0 IN A REG LDB ITEMP ADDR OF TRACK MAP INFO FOR SUB RCMPR ISZ CMPR RETURN ADDRESS JMP CMPR,I RETURN * * A EQU 0 B EQU 1 ABUF DEF BUF BUF BSS 10 ITLU EQU BUF IDTYP EQU BUF+1 DISC TYPE IEQT EQU BUF+2 EQT # OF DISC IUNT1 EQU BUF+3 UNIT # 1 IUNT2 EQU BUF+4 UNIT # 2 MPST1 EQU BUF+5 STARTING WORD # ON MAP 1 MPST2 EQU BUF+6 STARTING WORD # ON MAP 2 MAP1 EQU BUF+7 ADDR OF TRACK MAP TABLE OF SOURCE DISC MAP2 EQU BUF+8 ADDR OF TRACK MAP TABLE OF DEST DISC ILUTR EQU BUF+9 ADDR OF LU#-# OF TRACKS TABLE IWORD BSS 1 ILU DEC 0 RETRN BSS 1 ITEMP BSS 1 ITMP1 BSS 1 ITMP2 BSS 1 ISUB1 BSS 1 ISUB2 BSS 1 ISUB BSS 1 NSUB1 BSS 1 NSUB2 BSS 1 D0 DEC 0 D1 DEC 1 D2 DEC 2 D6 DEC 6 D7 DEC 7 D8 DEC 8 D9 DEC 9 D11 DEC 11 D14 DEC 14 D16 DEC 16 D96 DEC 96 D7905 DEC 7905 N1 DEC -1 N3 DEC -3 N7 DEC -7 .17 OCT 17 .7776 OCT 77760 END FTN4 C NAME: MPFND C SOURCE: 92067-18339 C RELOC: 92067-16339 C PGMR: S.P.K. J.S.W. C C *************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * C * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* C * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C *************************************************************** C SUBROUTINE MPFND(MPNAM,ITLU,IDTYP,ITMT,JB X ),92067-16339 REV.1903 790512 C FIND TRACK MAP TABLE BY LOOKING AT LIST OF ENTRY POINTS EXTERNAL DSCAD,MESG,MEMGT DIMENSION MPNAM(3),JB(1),ITMT(1) DATA ISIZE/2048/ MPNAM=2H$T MPNAM(2)=2HB3 C LOC 1762B HAS THE NO. OF ENTRY POINTS IN LIST C EACH ENTRY POINT IS FOUR WORDS LONG C IDSCLN IS NO. OF WORDS TAKEN UP BY THE ENTRY POINT LIST 140 CALL MEMGT(1762B,IDSCLN) IDSCLN=IDSCLN*4 C 1761B IS THE DISC ADRESS OF FW OF ENTRY POINT LIST CALL MEMGT(1761B,IPARM) C CONVERT DISC ADDRESS TO TRACK #, SECTOR # AND LU # CALL DSCAD (IPARM,ILU,ITRCK,ISECTR) C C MXSEC=96 IF(ILU.EQ.2) CALL MEMGT(1757B,MXSEC) IF(ILU.EQ.3) CALL MEMGT(1760B,MXSEC) C C ITEMP=MXSEC-ISECTR IF (ITEMP.GE.32) GO TO 145 JBUFL=ITEMP*64 GO TO 150 C MAX BUFFER LENGTH 145 JBUFL=ISIZE 150 IF (IDSCLN.LT.JBUFL) JBUFL=IDSCLN C READ JBUFL WORDS FROM ENTRY POINT LIST CALL EXEC (1,ILU,JB,JBUFL,ITRCK,ISECTR) C EACH ENTRY POINT HAS 4 WORDS - FIRST 5 CHARACTERS ASSIGNED TO C ENTRY POINT NAME, IF LOWER BYTE OF WORD 3 IS 1 THEN ROUTINE IS C ON DISC AND WORD 4 CONTAINS THE DISC ADDRESS OF ROUTINE - IF C LOWER BYTE OF WORD 3 IS NOT 1 THEN ROUTINE IS IN MEMORY AND C WORD 4 IS MEMORY ADDRESS OF ROUTINE C C GO THROUGH LIST TO FIND MATCHING ENTRY POINT NAME DO 147 IWORD=1,JBUFL,4 IF (JB(IWORD).NEQ.MPNAM) GO TO 147 IF (JB(IWORD+1).NEQ.MPNAM(2)) GO TO 147 IF ((IAND(JB(IWORD+2),177400B)+40B).EQ.MPNAM(3)) GO TO 230 147 CONTINUE IDSCLN=IDSCLN-JBUFL C IF NO MORE WORDS LEFT IN LIST THEN ERROR, ELSE TRY WITH NEXT BUF IF (IDSCLN) 700,700,200 200 ISECTR=ISECTR+32 C SET UP SECTOR & TRACK ADDRESS TO READ NEXT SET OF DATA FROM DISC ITEMP=MXSEC-ISECTR IF (ITEMP.GE.32) GO TO 145 IF (ITEMP.LE.0) GO TO 210 JBUFL=ITEMP*64 GO TO 150 210 ISECTR=0 ITRCK=ITRCK+1 GO TO 145 C IF LOWER BYTE OF WORD 3 IS 1 THEN DISC ADDRESS 230 IF (IAND(JB(IWORD+2),377B).EQ.1) GO TO 250 C GET MEMORY ADDRESS OF ROUTINE MPADR=JB(IWORD+3) IF (IDTYP.EQ.7905) GO TO 232 C C C M=17 C MOVE M WORDS OF TRACK MAP INTO BUFFER 237 DO 240 IWORD=1,M CALL MEMGT(MPADR+IWORD-1,ITMT(IWORD)) 240 CONTINUE RETURN C CONVERT DISC ADRESS INTO TRACK#,SECTOR# AND LU# 250 CALL DSCAD(JB(IWORD+3),ILU,ITRCK,ISECTR) M=17 IF (IDTYP.EQ.7905) GO TO 400 C READ M WORDS OF TRACK MAP FROM DISC CALL EXEC (1,ILU,ITMT,M,ITRCK,ISECTR) RETURN C ERROR - ROUTINE NAME CANNOT BE FOUND IN ENTRY POINT LIST 700 CALL MESG (ITLU,4) CALL EXEC (2,ITLU,MPNAM,3) CALL MESG (ITLU,14) STOP C C C C C C 400 CALL EXEC(1,ILU,JB,161,ITRCK,ISECTR) GO TO 310 C C 232 DO 255 IWORD=1,161 CALL MEMGT(MPADR+IWORD-1,JB(IWORD)) 255 CONTINUE C C 310 INDEX=1 IWORD=1 IF(JB(1).GE.0.AND.JB(2).LT.0) STOP 66 C C ITMT(1)=JB(1) DO 350 IS=1,32 DO 350 IW=1,5 IWORD=IWORD+1 IF(IW.EQ.1.OR.IW.EQ.5) GO TO 350 INDEX=INDEX+1 IF(IW.EQ.3) GO TO 330 ITMT(INDEX)=JB(IWORD) GO TO 350 330 ITEMP=IAND(JB(IWORD),176000B)*4 ITEMP=ITEMP+(IAND(JB(IWORD),1760B)*16) ITMT(INDEX)=ITEMP+IAND(JB(IWORD),17B) 350 CONTINUE C RETURN C C END END$ FTN4,L C NAME: PRNTH C SOURCE: 92067-18339 C RELOC: 92067-16339 C PGMR: S.P.K. J.S.W C C *************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * C * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* C * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C *************************************************************** C SUBROUTINE PRNTH (ITLU,IMLU,IBUF),92067-16339 REV.1903 790309 C SUBROUTINE TO READ HEADER RECORD AND PRINT TITLE AND TAPE # C DIMENSION IBUF(1),ITITL(4),ITAPE(5),IOK(7) EXTERNAL MESG,DCASC,READU DATA ITITL/2HFI,2HLE,2H I,2HD:/, C ITAPE,ITAPE(2),ITAPE(3),ITAPE(4)/2HTA,2HPE,2H#:,2H /, C IOK/2HOK,2H? ,2H (,2HYE,2HS/,2HNO,2H) / 10 CALL EXEC (1,IMLU,IBUF,140) CALL EXEC (2,ITLU,ITITL,4) CALL EXEC (2,ITLU,IBUF,36) CALL DCASC (ITAPE(5),1,IBUF(37)) CALL EXEC (2,ITLU,ITAPE,5) CALL EXEC (2,ITLU,IOK,7) CALL READU(ITLU,IYES,1) IF (IYES.EQ.2HYE) RETURN CALL MESG (ITLU,11) PAUSE IBUF=-1 RETURN END END$ FTN4 C NAME: TPPOS C SOURCE: 92067-18339 C RELOC: 92067-16339 C PGMR: S.P.K. C C *************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * C * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* C * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C *************************************************************** C SUBROUTINE TPPOS(ITLU,IMLU,IFILE,ITAPE),92067-16339 REV.1903 790309 X9 C ROUTINE TO POSITION MAG TAPE TO A DESIRED FILE # EXTERNAL ASCDC,READU,MESG EQUIVALENCE (REG,IA) IF (IFILE.GT.0) GO TO 25 10 CALL MESG (ITLU,5) CALL READU(ITLU,NFILE,1) CALL ASCDC (NFILE,1,IFILE) C CHECK IF FILE # > 0 AND <= 8 IF (IFILE.EQ.0) IFILE=1 IF ((IFILE.LT.1).OR.(IFILE.GT.8)) GO TO 100 15 REWIND IMLU C POSITION BY MOVING TAPE IFILE-1 FILES FORWARD IF (IFILE.EQ.1) RETURN DO 20 NFILE=1,IFILE-1 C FORWARD SPACE MAG TAPE BY 1 FILE CALL EXEC (3+100000B,1300B+IMLU) GO TO 120 C EOT MARK SEEN? IF YES, ERROR - FILE NOT FOUND 17 REG=EXEC(3,600B+IMLU) IF (IAND(IA,40B).EQ.40B) GO TO 120 20 CONTINUE RETURN C 25 IF (ITAPE.NEQ.1) GO TO 15 IF (IFILE.EQ.1) GO TO 15 CALL EXEC (3,200B+IMLU) CALL EXEC (3,1400B+IMLU) CALL EXEC (3,300B+IMLU) RETURN C C ERROR MESSAGES 100 CALL MESG(ITLU,18) GO TO 10 120 CALL MESG (ITLU,19) CALL MESG(ITLU,11) REWIND IMLU PAUSE GO TO 10 END END$ ASMB,R * NAME: ASCDC * SOURCE: 92067-18339 * RELOC: 92067-16339 * PGMR: S.P.K. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM ASCDC,7 92067-16339 REV.1903 790309 ENT ASCDC ROUTINE TO CONVERT ASCII TO DEC OR OCTAL ENT ASCOC ASCDC NOP ASCII TO DECIMAL LDA D9 STA RADIX SET UP RADIX JMP START ASCOC NOP ASCII TO OCTAL LDA ASCOC STA ASCDC LDA D7 STA RADIX SET UP RADIX TO 7 START CLA STA VAL VAL IS GOING TO ACCUMULATE INTEGER VALUE STA IWORD IWORD IS COUNTER FOR WORD IN BUF BEING CONVERTED LDA ASCDC,I STA RETRN SAVE RETURN ADDRESS ISZ ASCDC LDA ASCDC,I STA INAM SAVE ADDRESS OF CHARACTER STRING ISZ ASCDC LDA ASCDC,I LDA A,I ADA N1 STA NWORD SAVE # OF WORDS TO BE CONVERTED-1 LDA IWORD LOOP ADA INAM INDEX INTO CHARACTER STRING BUFFER LDA A,I FETCH CURRENT WORD IN STRING TO BE CONVERTED STA CWORD AND .1774 SEPERATE UPPER BYTE ALF,ALF CPA SPACE IF SPACE ENCOUNTERED IN FIRST BYTE IGNORE IT JMP IGNOR CLB CLEAR FLAG TO INDICATE UPPER BYTE OF CURRENT WORD STB IFLAG IS BEING CONVERTED CNVRT ADA .N60 CONVERT CMA,SSA,INA,RSS NEGATIVE NUMBER? JMP ERR YES,ERROR ADA RADIX CMA,SSA,INA,RSS INTEGER? JMP ERR NO,ERROR ADA RADIX BACK TO ORIGINAL NUMBER LDB RADIX CMB CLO ADA VAL ADD EXISTING VALUE TO THE NEW INTEGER 10 TIMES ISZ B JMP *-2 SOC IF OVERFLOW, ERROR JMP ERR STA VAL LDA IFLAG JUST CONVERTED UPPER BYTE? SZA JMP NEXT YES, GET NEXT BYTE IGNOR LDA CWORD NO, FETCH CURRENT WORD THAT IS BEING CONVERTED AND .377 EXTRACT LOWER BYTE CPA SPACE SPACE? JMP DONE YES, DONE ISZ IFLAG SET FLAG TO INDICATE CONVERTING LOWER BYTE JMP CNVRT NEXT LDA IWORD GET ASCII STRING COUNTER CPA NWORD ALL WORDS IN STRING CONVERTED? JMP DONE YES, DONE INA NO, SET POINTER TO CONVERT THE NEXT WORD STA IWORD JMP LOOP DONE ISZ ASCDC LDA ASCDC,I LDB VAL STB A,I JMP RETRN,I RETURN WITH CONVERTED VALUE ERR ISZ ASCDC RETURN WITH VALUE = -1 LDA ASCDC,I LDB N1 STB A,I JMP RETRN,I * A EQU 0 B EQU 1 N1 DEC -1 .N60 OCT -60 .1774 OCT 177400 .377 OCT 377 D9 DEC 9 D7 DEC 7 VAL BSS 1 RADIX BSS 1 RETRN BSS 1 IFLAG BSS 1 CWORD BSS 1 NWORD BSS 1 IWORD BSS 1 INAM BSS 1 SPACE OCT 00040 END ASMB,R * NAME: DCASC * SOURCE: 92067-18339 * RELOC: 92067-16339 * PGMR: S.P.K. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM DCASC,7 92067-16339 REV.1903 790309 ENT DCASC ROUTINE TO CONVERT DECIMAL INTEGERS TO ASCII DCASC NOP CLA STA IFLAG STA CWORD LDA DCASC,I STA RETRN ISZ DCASC LDA DCASC,I STA INAM BUFFER ADDRESS ISZ DCASC LDA DCASC,I LDA A,I ADA N1 STA NWORD LENGTH OF BUFFER-1 LDA INAM BUFFER TO BE BLANKED LOOP0 LDB SPACE STB A,I BLANK OUT A WORD IN BUFFER LDB CWORD USE CWORD AS COUNTER TO POINT IN TO BUFFER CPB NWORD ALL WORDS IN BUFFER DONE? JMP DCAS1 YES, GO ON INA ISZ CWORD INCREMENT COUNTER JMP LOOP0 DCAS1 ISZ DCASC LDA DCASC,I LDA A,I LOAD INTEGER TO BE CONVERTED LOOP CLB DIV D10 DIVIDE INTEGER BY BASE 10 STA QOTNT QOTNT IS USED TO EXTRACT REMAINING DIGITS ADB .60 B REG CONTAINS REMAINDER WHICH IS THE LATEST DIGIT * TO BE CONVERTED BY ADDING OCTAL 60 STB BYTE ASCII INTEGER SAVED LDA IFLAG CHECK TO SEE IF THIS IS A LOW ORDER BYTE SZA LOW ORDER BYTE IF IFLAG=0, ELSE HIGH ORDER BYTE JMP HIGH LDA BYTE STA CWORD STORE BYTE IN LOWER HALF OF CWORD LDA QOTNT GET READY TO EXTRACT AND CONVERT NEXT DIGIT ISZ IFLAG SET FLAG TO INDICATE WORKING ON HIGH ORDER BYTE JMP LOOP START CONVERSION AGAIN HIGH LDA BYTE BIT 0 NOT SET IF HIGH ORDER BYTE ALF,ALF STORE BYTE IN UPPER HALF OF CWORD ADA CWORD STA CWORD LDA NWORD ADA INAM REG A POINTS TO BUFFER WHERE CWORD IS PLACED LDB CWORD STB A,I LDA NWORD SZA,RSS HAS THE BUFFER BEEN FILLED? JMP RETRN,I YES,RETURN TO CALLING ROUTINE ADA N1 NO,DECREASE NWORD TO POINT TO NEXT WORD IN BUFFER STA NWORD CLA STA IFLAG CLEAR FLAG TO INDICATE WORKING ON LOW ORDER BYTE LDA QOTNT GET READY TO EXTRACT NEXT DIGIT SZA IF QOTNT=0 THEN NO MORE DIGITS LEFT TO CONVERT JMP LOOP JMP RETRN,I * A EQU 0 B EQU 1 RETRN BSS 1 NWORD BSS 1 CWORD BSS 1 IFLAG BSS 1 QOTNT BSS 1 BYTE BSS 1 N1 DEC -1 D10 DEC 10 .60 OCT 60 INAM BSS 1 SPACE ASC 1, END ASMB,R * NAME: DRT * SOURCE: 92067-18339 * RELOC: 92067-16339 * PGMR: S.P.K. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM DRT,7 92067-16339 REV.1903 790309 ENT DRT DEVICE REFERENCE TABLE IS SCANNED THROUGH TO FIND EXT RMOVI DRT NOP LU# FOR GIVEN SUBCHANNEL AND EQT# LDA DRT,I SAVE RETURN POINTER STA RETRN ISZ DRT LDA DRT,I PICK UP SUBCHANNEL # TO BE FOUND IN DRT LDA A,I STA ISUB ISZ DRT LDA DRT,I PICK UP LAST PLACE (LU) LOOKED AT IN DRT LDA A,I NON-ZERO IF EQT DID NOT SHOW RIGHT DEVICE TYPE STA ILU LDA DRT INA LDA A,I PICK UP EQT# PARAMETER. IF FIRST SUBCHNL EQT# PARM. JSB RMOVI STA IEQT WILL BE 0, ELSE >0 FOR NEXT SUBCHNLS LOOP LDB IDRT ADB ILU INDEX INTO DRT ADB N1 LDA B,I AND .174 FIND SUBCHNL # OF PARTICULAR DRT ENTRY ALF,RAL CPA ISUB JMP EQT JUMP IF MATCHING SUBCHNL # FOUND CHLU LDA ILU HAVE ALL THE ENTRIES IN DRT BEEN CHECKED? CPA LUMAX JMP ERR YES, THEREFORE ERROR ISZ ILU NO, THEREFORE INCREAMENT LU# AND TRY AGAIN JMP LOOP EQT LDB IDRT FIND EQT # FOR GIVEN SUBCHNL ADB ILU ADB N1 LDA B,I AND .77 LDB IEQT,I SZB IF LOOKING FOR SUBCHNL FIRST TIME, * RETURN EQT # TO CHECK FOR DEVICE JMP CHEQT IF LOOKING FOR NEXT SUBCHNL, CHECK IF EQT # MATCHES STA IEQT,I LU LDA DRT,I LDB ILU RETURN LU # FOR GIVEN SUBCHNL STB A,I JMP RETRN,I ERR LDA DRT,I NO LU # ASSIGNED TO GIVEN SUBCHNL LDB N1 STB A,I JMP RETRN,I CHEQT CPA B CHECK IF EQT #'S MATCH JMP LU YES. RETURN WITH LU # JMP CHLU NO. TRY WITH NEXT LU # RETRN BSS 1 ISUB BSS 1 IEQT BSS 1 ILU BSS 1 IDRT EQU 1652B FWA OF DRT LUMAX EQU 1653B # OF ENTRIES IN DRT A EQU 0 B EQU 1 .77 OCT 77 .174 OCT 174000 N1 DEC -1 END ASMB,R,L,C * NAME: DSCAD * SOURCE: 92067-18339 * RELOC: 92067-16339 * PGMR: S.P.K. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM DSCAD,7 92067-16339 REV.1903 790309 EXT EXEC ROUTINE TO FIND LU#, TRACK#, SECTOR # FROM ENT DSCAD DISC ADDRESS WORD. WHERE IF BIT 15=0 LU = 2, DSCAD NOP IF BIT 15=1, LU=3; BITS 7-14 IS TRACK NUMBER; LDA DSCAD,I BITS 0-6 IS SECTOR NUMBER STA RETRN SAVE RETURN POINTER ISZ DSCAD LDA DSCAD,I LDA A,I STA IDADR ISZ DSCAD LDB DSCAD,I STB T1 SSA JMP LU3 LDB D2 STB T1,I LU=2 JMP TRCK LU3 LDB D3 LU=3 STB T1,I TRCK AND .776 FIND TRACK # ISZ DSCAD LDB DSCAD,I ALF,ALF RAL STA B,I STA ITRCK LDA IDADR AND .177 FIND SECTOR # ISZ DSCAD LDB DSCAD,I STA B,I JMP RETRN,I RETURN TO CALLING ROUTINE IDADR BSS 1 T1 BSS 1 ITRCK BSS 1 RETRN BSS 1 MSG ASC 2,HERE D3 DEC 3 D2 DEC 2 D1 DEC 1 .776 OCT 77600 .177 OCT 177 A EQU 0 B EQU 1 END ASMB,R * NAME: MEMGT * SOURCE: 92067-18339 * RELOC: 92067-16339 * PGMR: S.P.K. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM MEMGT,7 92067-16339 REV.1903 790309 ENT MEMGT ROUTINE TO RETURN CONTENTS OF GIVEN LOC IN MEMORY MEMGT NOP ROUTINE TO GET CONTENTS OF GIVEN MEMORY LOCATION LDA MEMGT,I STA RETRN SAVE RETURN ADDRESS ISZ MEMGT LDA MEMGT,I LDA A,I A REG HAS CONTENTS ADDRESS OF LOCATION LDA A,I A REG HAS CONTENTS OF LOCATION ISZ MEMGT LDB MEMGT,I B REG HAS ADDRESS OF VARIABLE STA B,I JMP RETRN,I RETURN A EQU 0 B EQU 1 RETRN BSS 1 END ASMB,R * NAME: SUB * SOURCE: 92067-18339 * RELOC: 92067-16339 * PGMR: S.P.K. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM SUB,7 92067-16339 REV.1903 790309 ENT SUB ROUTINE TO DETERMINE SUBCHNL# OF GIVEN LU# SUB NOP LU# ENTRY IN DRT (BITS 11-15) IS USED LDA SUB,I STA RETRN SAVE RETURN ADDRESS ISZ SUB LDB SUB,I B HAS ADDRESS OF SUBCHANNEL LU LDB B,I LU # IN B REG ADB N1 ADB DRT ADDRESS OF FIRST WORD IN DRT LDA B,I DRT ENTRY IN A REG AND .1740 MASK OFF BITS 0-10 ALF,RAL ROTATE BITS 11-15 TO 0-4 POSITION ISZ SUB LDB SUB,I ADDRESS OF ISUB STA B,I PASS BACK SUBCHANNEL # JMP RETRN,I RETURN TO CALLING ROUTINE RETRN BSS 1 A EQU 0 B EQU 1 .1740 OCT 174000 N1 DEC -1 DRT EQU 1652B FWA OF DRT END FTN4 C NAME: READU C SOURCE: 92067-18339 C RELOC: 92067-16339 C PGMR: S.P.K. C C *************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * C * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* C * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C *************************************************************** C SUBROUTINE READU(ITLU,IBUF,ILEN),92067-16339 REV.1903 790309 DIMENSION IBUF(1),IREG(2) EQUIVALENCE (IREG(1),IA,REG),(IREG(2),IB) DATA IABRT/2HAB/,IQUES/2H??/ 5 DO 10 I=1,ILEN IBUF(I)=2H 10 CONTINUE REG = EXEC (1,ITLU+400B,IBUF,ILEN) LEN=IB IF (LEN.NEQ.0) GO TO 20 CALL EXEC (2,ITLU,IQUES,1) GO TO 5 20 IF (IBUF(1).NEQ.IABRT) RETURN CALL MESG (ITLU,14) STOP END END$ ASMB,R * NAME: RMOVI * SOURCE: 92067-18339 * RELOC: 92067-16339 * PGMR: S.P.K. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM RMOVI,7 92067-16339 REV.1903 790309 ENT RMOVI ROUTINE TO REMOVE INDIRECTS FROM GIVEN ADDRESS RMOVI NOP ROUTINE TO REMOVE INDIRECTS FROM DEF ADDRESSES RSS MOREI LDA A,I REG A HAS INDIRECT ADDRESS RAL,CLE,SLA,ERA JMP MOREI STILL AN INDIRECT ADDRESS JMP RMOVI,I * A EQU 0 END ASMB,Q,C * NAME: MESG * SOURCE: 92067-18339 * RELOC: 92067-16339 * PGMR: S.P.K. J.S.W * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM MESG,7 92067-16339 REV.2013 800104 ENT MESG,ITASK ROUTINE TO PRINT MESSAGES FOR EXT EXEC SAVE, RSTOR AND COPY EXT PNAME GET PROGRAM NAME ROUTINE MESG NOP SUP LDA MESG,I STA RETRN SAVE RETURN ADDRESS ISZ MESG LDA MESG,I LDB A,I STB ITLU ISZ MESG LDA MESG,I LDB A,I STB TEMP MESSAGE # CPB D50 IF MSG# IS 28 CONVERT IT TO 17 LDB D17 LDA MSG ADA B LDB A,I LDA B,I STA IBUFL INB STB MADDR JSB PNAME FIND THIS PROGRAM'S NAME DEF *+2 ADDR DEF NAME LDB MADDR GET THE ADDRESS OF MESSAGE LDA TEMP MESSAGE #? CPA D11 IS IT RESTART ------ BY ENTERING........? JMP MESG1 YES CPA D14 IS IT ----- ABORTED? JMP MESG2 CPA D25 IS IT MESG # 25? JMP MESG2 YES CPA D17 IS IT MESG # 17? JMP MESG3 YES CPA D50 USE DIFFERENT NAME ADDR FOR MESG 28 RSS JMP MESG5 LDA ADDR2 RSS MESG3 LDA ADDR1 ADB D7 JSB MOVE JMP MESG5 MESG2 LDA ADDR YES, THEN A REG HAS ADDR OF NAME JSB MOVE MOVE NAME MESSAGE INTO MESSAGE 14 JMP MESG5 SEND MESSAGE OUT TO TTY MESG1 LDA ADDR MESSAGE OF NAME ADB D4 INDEX INTO IT JSB MOVE MOVE APPROPRIATE NAME IN IT LDA ADDR MESSAGE OF NAME LDB MADDR ADB D15 INDEX FURTHER INTO MSG11 JSB MOVE MOVE WORDS MESG5 JSB EXEC DEF *+5 DEF ICODE DEF ITLU DEF MADDR,I DEF IBUFL JMP RETRN,I * MOVE NOP ROUTINE TO MOVE THREE WORDS FROM STA TEMP SAVE CONTENTS OF A REG LDA N3 STA COUNT COUNTER LOOP LDA TEMP LDA A,I STA B,I INB ISZ TEMP ISZ COUNT JMP LOOP JMP MOVE,I RETURN * MSG DEF MESGX MESGX DEF MSG0 DEF MSG1 DEF MSG2 DEF MSG3 DEF MSG4 DEF MSG5 DEF MSG6 DEF MSG7 DEF MSG8 DEF MSG9 DEF MSG10 DEF MSG11 DEF MSG12 DEF MSG13 DEF MSG14 DEF MSG15 DEF MSG16 DEF MSG17 DEF MSG18 DEF MSG19 DEF MSG20 DEF MSG21 DEF MSG22 DEF MSG23 DEF MSG24 DEF MSG25 DEF MSG26 DEF MSG27 DEF MSG28 * A EQU 0 B EQU 1 RETRN BSS 1 ITLU BSS 1 IBUFL BSS 1 ICODE DEC 2 MSG0 DEC 8 ASC 8,VERIFY? (YES/NO) MSG1 DEC 12 ASC 12,PARTITION SIZE TOO SMALL MSG2 DEC 17 ASC 21,TRACK SIZE BUFFER DESIRED?(YES/NO) MSG3 DEC 30 ASC 4,WARNING- ASC 26,PARTITION SIZE TOO SMALL FOR VERIFY W/ TRCK SIZE BUF MSG4 DEC 16 ASC 16,FOLLOWING TRCK MAP TBL NOT FOUND MSG5 DEC 3 ASC 3,FILE#? MSG6 DEC 21 ASC 21,FOLLOWING DISC DRIVE# IMPROPER,ENTER AGAIN MSG7 DEC 20 ASC 20,FOLLOWING DISC LU# IMPROPER, ENTER AGAIN MSG8 DEC 11 ASC 11,IMPROPER MT LU#, LU#=? MSG9 DEC 16 ASC 16,ASSIGN LU# TO FOLLOWING SUBCHNL MSG10 DEC 15 ASC 15,NO WRITE RING, WRITE ENABLE MT MSG11 DEC 19 ASC 19,RESTART BY ENTERING 'GO, ' MSG12 DEC 13 ASC 13,EOT REACHED,MOUNT NEW TAPE MSG13 DEC 17 ASC 17,DISC ERROR AT FOLLOWING TRCK & LU# MSG14 DEC 7 ASC 7, ABORTED MSG15 DEC 20 ASC 20,FOLLOWING DISC TYPE IMPROPER,ENTER AGAIN MSG16 DEC 22 ASC 22,SOURCE & DEST TRACK MAP INFO. NOT COMPATIBLE MSG17 DEC 16 ASC 16,DISC TYPE FOR DISC UNIT? MSG18 DEC 7 ASC 7,IMPROPER FILE# MSG19 DEC 7 ASC 7,FILE NOT FOUND MSG20 DEC 17 ASC 17,SAVE TYPE NOT SAME AS RESTORE TYPE MSG21 DEC 17 ASC 17,WARNING-WRITING ON PROTECTED TRCKS MSG22 DEC 13 ASC 13,DEST SUBCHNL IS LU2 OR LU3 MSG23 DEC 20 ASC 20,OFF-LINE SAVE,CANNOT BE RESTORED ON-LINE MSG24 DEC 7 ASC 7,MOUNT TAPE# 1 MSG25 DEC 14 ASC 14, WAITING FOR MT LU LOCK MSG26 DEC 18 ASC 18,MISSING REC FOR FOLLOWING TRCK & LU# MSG27 DEC 27 ASC 27,WARNING-VERFY NOT DEFINED OR PARTITION SIZE TOO SMALL MSG28 DEC 11 ASC 11,IMPROPER TRCK MAP INFO ADDR1 DEF *+1 ASC 3,SOURCE ADDR2 DEF *+1 ASC 3,DEST ITASK BSS 1 MADDR BSS 1 NAME BSS 3 D4 DEC 4 D7 EQU MSG14 D11 EQU MSG8 D14 EQU MSG25 D15 EQU MSG10 D17 EQU MSG2 D25 DEC 25 D50 DEC 50 N3 DEC -3 TEMP BSS 1 COUNT BSS 1 END