ASMB,R,L,C,Z HED (FMGR) CR.LU: CONVERT -LU/+CRN INTO +LU * NAME: CR.LU * SOURCE: 92071-18056 * RELOC: 92071-16056 * PGMR: M.L.K. * MOD: E.D.B. * * *************************************************************** * * (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 CR.LU,7 92071-1X056 REV.2041 800421 * ENT CR.LU * EXT .ENTR, .XLA IFZ *** L/20 CODE *** EXT $CDA, $CD#, $CDSZ XIF IFN *** L/10 CODE *** EXT $CDIR, $MDSP XIF SUP SKP * * DESCRIPTION * * THIS ROUTINE IS USED TO CONVERT A NEGATIVE LU OR A * POSITIVE CRN INTO THE CORRESPONDING DISC LU. IF THE * REQUESTED LU OR CRN IS NOT FOUND, A=0 AND E=1 (FRETURN). * * CALLING SEQUENCE: * * LU = CR.LU(CRNLU,LUN,LTRAK,CRN,LWORD) * * WHERE: * * CRNLU IS THE NEGATIVE LU NUMBER OR POSITIVE CRN * * LU WILL BE THE POSITIVE LU NUMBER * * LUN WILL BE THE POSITIVE LOGICAL UNIT NUMBER * * LTRAK WILL BE THE LAST TRACK USED ON CARTRIDGE * * CRN WILL BE THE POSITIVE CARTRIDGE REFERENCE NUMBER * * LWORD WILL BE THE LOCK WORD OF THE CARTRIDGE * * SPECIAL ASSEMBLY INSTRUCTIONS: * THIS FILE CONTAINS SOURCE CODE FOR BOTH THE RTE-L AND RTE-L/20 * CR.LU ROUTINES. ASSEMBLY THE CODE WITH THE N OPTION TO CREATE * THE RTE-L VERSION, AND WITH THE Z OPTION TO CREATE THE * RTE-L/20 VERSION. SKP * * ENTRY * CR.LU NOP LDA DFDM GET DUMMY ADDRESS STA LU STA LTRAK STA CRN STA LWORD LDA CR.LU STA DR.LU JMP DR.LU+1 * CRNLU NOP LU DEF DUM LTRAK DEF DUM CRN DEF DUM LWORD DEF DUM * DR.LU NOP JSB .ENTR SET UP PARAMETERS DEF CRNLU * * PROCESS REQUEST * IFN *** L/10 CODE *** LDA $CDA GET CARTRIDGE DIRECTORY START ADDRESS CMA,INA SUBTRACT FROM ADA $MDSP CARTRIDGE DIRECTORY END ADDRESS CLB CLEAR FOR DIVIDE DIV $CDSZ DIVIDE BY ENTRY SIZE STA $CD# SAVE NUMBER OF ENTRIES XIF * LDA CRNLU,I GET CRN OR LU CLB DEFAULT OFFSET TO ZERO (FOR LU) SSA IF GIVEN LU CMA,INA,RSS THEN SET POSITIVE AND USE DEFAULT OFFSET LDB N2 ELSE USE OFFSET STB OFSET SAVE OFFSET FOR LATER * CMB,INB NEGATE FOR PROPER OFFSET STA CRNLU SAVE LU OR CRN CCE,SZA,RSS IF ZERO LU JMP ZFOUN THEN TAKE FAILURE EXIT * JSB .XLA GET CARTRIDGE DIRECTORY ADDRESS DEF $CDA+0 ADB A ADD OFFSET * LOOP JSB .XLA GET LU OR CRN DEF B,I SZA,RSS END OF LIST? JMP DR.LU,I YES, EXIT NOT FOUND * CPA CRNLU THIS THE ONE WE'RE LOOKING FOR? JMP FOUND YES, GO GET LU JSB .XLA DEF $CDSZ+0 ADB A NO, TRY NEXT ONE JMP LOOP SKP * * SET VARIABLES FOR FOUND CARTRIDGE * FOUND ADB OFSET BACK UP IF NECESSARY * JSB .XLA GET LOGICAL UNIT NUMBER DEF B,I STA LU,I SAVE IT STA OFSET SAVE FOR RETURN * INB JSB .XLA GET LAST TRACK DEF B,I STA LTRAK,I SAVE IT * INB JSB .XLA GET CARTRIDGE REFERENCE NUMBER DEF B,I STA CRN,I SAVE IT * INB JSB .XLA GET LOCK WORD DEF B,I STA LWORD,I SAVE IT * LDA OFSET GET LU FOR RETURN CLE SET FOR SUCCESSFUL EXIT (SPL) * ZFOUN JMP DR.LU,I AND EXIT SKP * * STORAGE * N2 DEC -2 * DFDM DEF DUM * OFSET NOP DUM NOP * IFN *** L/10 CODE *** $CDA DEF $CDIR+0 $CDSZ DEC 4 $CD# NOP XIF * A EQU 0 B EQU 1 * END EQU * * END