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