ASMB,R,L,C ** RTE-IV PRIVILEGED MAPPING SUBROUTINE ** HED RTE-IV PRIVILEGED DRIVER'S MAPPING SUBROUTINE * DATE: 8/17/77 * NAME: PVMP4 * SOURCE: 92067-18001 * RELOC: 92067-16001 * PGMR: E.J.W. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. 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 PVMP4,8 92067-16001 REV.1805 771219 ENT $PVMP EXT $DVPT,$MATA,$MRMP A EQU 0 B EQU 1 * * * * ****************** NOTICE ********************** * ** $PVMP IS DESIGNED FOR USE BY PRIVILEGED ** * ** DRIVERS. EXTREME CAUTION SHOULD BE TAKEN ** * ** BY THE DRIVER WHEN CHANGING THE USER MAP. ** * ** ** * ** THE USER MAP MUST BE SAVED BEFORE CALLING ** * ** $PVMP AND THEN RESTORED BEFORE RETURNING ** * ** CONTROL TO THE POINT OF INTERRUPT!!! ** * ****************** NOTICE ********************** * * CALLING SEQUENCE: * * LDA IDADR (A) HAS ID SEG ADDR * JSB $PVMP CALL SUBROUTINE TO MAP USER * (A)=0 ERROR, PROG NOT IN PTTN * (A)#0 OK, PROGRAM MAPPED * * * * $PVMP NOP CALLED ONLY BY PRIVILEGED DRIVERS STA XIDA TEMP SAVE OF ID ADDR LDB A ADA D8 LDA A,I GET PROG'S POINT OF SUSPENSION SZA,RSS IF IT IS ZERO, TAKE JMP $PVMP,I ERROR EXIT, (A)=0 * ADB D14 LDA B,I AND D15 IS PROG MEM RES CPA D1 JMP MRPV YES,GO SET MEM RES MAP * ADB D7 GET MPID WORD LDA B,I AND B77 MPY MATSZ ADA $MATA GET PTTN ADDR STA XMAT SAVE MAT ENTRY ADDR ADA D2 LDA A,I CPA XIDA IS PROG STILL IN PARTITION? JMP XDMOK YES ,CONTINUE * CLA NO, ERROR JMP $PVMP,I RETURN (A)=0 * XDMOK CCA CAX (X)=-1 READ 1 REG LDA $DVPT (A)=REG # OF DRIVER PARTITION LDB DFDMR (B)=ADDR OF SAVE AREA XMM SAVE REG USED FOR MAPPING USER BP * LDB XMAT (B)=MATA ENTRY ADDR ADB D3 FOR SAVE & RESTORE MAP REGS LDA B,I GET PTTN'S FIRST PAGE # AND B1777 WHICH IS THE PHYSICAL BP STA B (B) = PAGE # OF BP CLA,INA CAX (X) = 1 TO SET ONE REGISTER LDA $DVPT (A)=REG # OF DRIVER PARTITION XMS MAP IN THE PHYSICAL BP * LDA $DVPT GET DRIVER PTTN PAGE # ALF,ALF SHIFT TO BITS 10-14 RAL,RAL TO FORM LOGICAL ADDRESS IOR B1740 OFFSET TO BP COPY AREA USA SET USER MAP REGISTERS * CLA,INA CAX (X)=1 WRITE 1 REG LDA $DVPT (A)=REG # OF DRIVER PARTITION LDB DVMPR (B)=SAVED DRIVER PTTN REG VALUE XMS RESTORE REG USED FOR MAPPING USER BP JMP $PVMP,I RETURN (A)=NONZERO * MRPV LDA $MRMP USA SET MEM RES MAP JMP $PVMP,I RETURN (A)=NONZERO * * D1 DEC 1 D2 DEC 2 D3 DEC 3 D7 DEC 7 D8 DEC 8 D14 DEC 14 D15 DEC 15 B77 OCT 77 B1740 OCT 1740 B1777 OCT 1777 MATSZ EQU D7 XIDA NOP XMAT NOP DFDMR DEF DVMPR ADDR OF STORAGE FOR DRIVER MAP REG DVMPR NOP DRIVER MAP REGISTER CONTENTS * BSS 0 SIZE OF SUBROUTINE END