.TITLE GET$VM - TRANSFER VM BUFFER TO USER .SBTTL GET$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. * ; * ; ************************************************************************ ; ; TRANSFER VM BUFFER TO USER ; ; VERSION: V01.01 ; ; AUTHOR: R.W. STAMERJOHN MAPC 03-NOV-81 ; ; MODIFICATION HISTORY: ; ; V01.01 RWS 03-NOV-81 INITIAL VERSION ; .SBTTL GET$VM - DECLARATIONS .DSABL GBL .DSABL CRF ; ; MACRO LIBRARY CALLS: ; .MCALL CALLR ;Call subroutine and return ; ; GLOBAL DECLARATIONS: ; .GLOBL GET$VM ;Module entry ; ; GLOBAL REFERENCES: ; ; VM subroutines. ; .GLOBL MAP$VI ;Map address .GLOBL S16$VI ;Check legal size (16-bits) .GLOBL XFR$VI ;Transfer from VM to user .ENABL CRF .SBTTL GET$VM * TRANSFER VM BUFFER TO USER ; ;+ ; This routine maps the specified virtual address and transfers from ; the virtual space to the user space the buffer of the given size. ; ; INPUT: ; ; Call by: JSR PC,GET$VM ; ; R0,R1 = Virtual address ; R3 = Size to transfer (bytes) ; R4 = User address ; ; OUTPUT: ; ; The contents of the virtual address are transfered starting ; at the given user address. ; ; REGISTERS: ; ; Uses: R0-R5 Saves: R0-R4 Stack: 1 words ;- GET$VM:: ;Ref label CALL S16$VI ;Check legal size (16-bits) CALL MAP$VI ;Map the virtual address (in R5) CALLR XFR$VI ;Transfer the buffer .END