.TITLE VRW$VM - MAP VM BUFFER (READ/WRITE) .SBTTL VRW$VM - TITLE PAGE .PSECT VMX$$$,RO,I .IDENT /V01.01/ .ENABL LC ; ; ************************************************************************ ; * ; THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS ONLY. DIGITAL EQUIPMENT * ; COMPUTER USER'S SOCIETY, DIGITAL EQUIPMENT CORPORATION, MONSANTO, AND * ; THE AUTHOR DISCLAIM ALL WARRANTIES ON THE PROGRAM, INCLUDING WITHOUT * ; LIMITATION, ALL IMPLIED WARRANTIES OF MERCHANTABLITY AND FITNESS. * ; * ; FULL PERMISSION AND CONSENT IS HEREBY GIVEN TO DECUS AND TO THE DECUS * ; SPECIAL INTEREST GROUPS TO REPRODUCE, DISTRIBUTE, AND PUBLISH AND * ; PERMIT OTHERS TO REPRODUCE IN WHOLE OR IN PART, IN ANY FORM AND * ; WITHOUT RESTRICTION, THIS PROGRAM AND ANY INFORMATION RELATING TO IT. * ; * ; ************************************************************************ ; ; MAP VM BUFFER (READ/WRITE) ; ; VERSION: V01.01 ; ; AUTHOR: R.W. STAMERJOHN MAPC 03-NOV-81 ; ; MODIFICATION HISTORY: ; ; V01.01 RWS 03-NOV-81 INITIAL VERSION ; .SBTTL VRW$VM - DECLARATIONS .DSABL GBL .DSABL CRF ; ; MACRO LIBRARY CALLS: ; .MCALL CALLR ;Call subroutine and return ; ; GLOBAL DECLARATIONS: ; .GLOBL VRW$VM ;Module entry ; ; GLOBAL REFERENCES: ; ; VM subroutines. ; .GLOBL MRK$VI ;Mark VM buffer written .GLOBL S16$VI ;Check size value .GLOBL VIR$VI ;Map address to user .ENABL CRF .SBTTL VRW$VM * MAP VM BUFFER (READ/WRITE) ; ;+ ; This routine maps the specified virtual address to the specified ; user-space address. The mapping is for read/write access. ; ; INPUT: ; ; Call by: JSR PC,VRW$VM ; ; R0,R1 = Virtual address ; R3 = Size to map (bytes) ; R4 = User space address ; ; OUTPUT: ; ; Maps the VM address to the specified user-space address. ; ; REGISTERS: ; ; Uses: R0-R5 Saves: R0-R4 Stack: 1 words ;- VRW$VM:: ;Ref label CALL S16$VI ;Check size is within range CALL VIR$VI ;Map the virtual address to user CALLR MRK$VI ;Mark virtual address written .END