Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!sri-spam!ames!sdcsvax!ucbvax!eg.ti.COM!BOLTHOUSE%MCOPN1 From: BOLTHOUSE%MCOPN1@eg.ti.COM Newsgroups: comp.os.vms Subject: VAXC RTL "bug" Message-ID: <8706090257.AA28467@ucbvax.Berkeley.EDU> Date: Mon, 8-Jun-87 10:34:00 EDT Article-I.D.: ucbvax.8706090257.AA28467 Posted: Mon Jun 8 10:34:00 1987 Date-Received: Thu, 11-Jun-87 06:13:23 EDT Sender: daemon@ucbvax.BERKELEY.EDU Distribution: world Organization: The ARPA Internet Lines: 22 it doesn't seem like much of a "bug" to me to have the RTL only read() 64K bytes at a time. that's a standard VAX number for the size of the largest string you can manipulate. look at the VAX architecture manual at the MOVC5 instruction, for example. you'll notice that the srclen and dstlen parts of the instruction are *words*, not longwords. that's about 64K. you can bet RMS (which is what read() eventually calls...) uses movc5/movc3 to get the stuff read from system space into your P0 space... also, in the $qio(w) system call, the largest space available in the IOSB for transfer count is 16 bits (64K...), probably for the same reasons. 'taint a bug, 'tis a feature. you wouldn't want RMS to have a tight for loop to move data around when it can be done with one instruction... david l. bolthouse texas instruments defense electronics information systems VAX system suport (and a bad typist...sigh) mckinney, texas ma bell: 214.952.2059 internet: bolthouse%mcopn1@ti-eg.com