.title rput Put a record .ident "V02.00" ;+ ; Index Put a record ; ; Usage ; ; rput(stream, buffer, bufsize, keybuf, keybufsz) ; int stream; /* Stream number from open/create */ ; char *buffer; /* Record to transfer */ ; int bufsize; /* Size of the buffer */ ; char *keybuf; /* Key buffer */ ; int keybufsz; /* Size of key buffer */ ; ; Description ; ; rput() transfers the contents of the user record buffer into ; a new record in the file. It returns 0 on error and 1 on ; success. ;- ; Edit History ; 19-Oct-82 TTC Rework of old CS library ; .MCALL FSDEF$ FSDEF$ .psect c$code rput:: mov #FS.PUT,fsqio+q.iofn ; Function: FS.PUT mov sp,r1 ; r1 -> passed parameters tst (r1)+ ; Skip over return address mov #fsqio+q.iopl,r0 ; r0 --> qio parameter list again mov (r1)+,(r0)+ ; Parameter #1: Stream Number mov (r1)+,(r0)+ ; Parameter #2: Buffer address mov (r1)+,(r0)+ ; Parameter #3: Buffer size mov (r1)+,(r0)+ ; Parameter #4: Key buffer addr mov (r1),(r0)+ ; Parameter #5: Key size clr (r0) ; Clear parameter #6 mov #fsqio,r0 ; r0 must = qio for xqiow call .xqiow ; execute qiow mov #1,r0 ; Assume success cmp $dsw,#is.suc ; How'd it go blo 10$ ; Not so good cmpb f.iosb,#is.suc beq 20$ 10$: clr r0 ; Branch here if error, r0 = 0 20$: return .end