Path: ...!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Lawrence D'Oliveiro Newsgroups: comp.arch Subject: Re: ancient OS history, ARM is sort of channeling the IBM 360 Date: Wed, 26 Jun 2024 21:22:33 -0000 (UTC) Organization: A noiseless patient Spider Lines: 32 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Wed, 26 Jun 2024 23:22:33 +0200 (CEST) Injection-Info: dont-email.me; posting-host="d3e70b79bcb23d33c66caba9f2139d60"; logging-data="2457271"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+o91zYsVZ/LqGE7nsEM/uC" User-Agent: Pan/0.158 (Avdiivka; ) Cancel-Lock: sha1:LtgwTB2HkNSyTG2l8BnHaBG/6U0= Bytes: 2490 On Wed, 26 Jun 2024 16:12:58 -0000 (UTC), John Levine wrote: > According to Lawrence D'Oliveiro : > >>possible to request “locate mode”, where it returns the address of a >>record directly within its internal buffers. But there are many >>restrictions on this, among other things: >> >>* It only works for reads, not for writes > > It works fine for writes on IBM systems. PL/I even has a LOCATE > statement to get a buffer to write into. I found this manual . On page 96, it says The LOCATE Statement -------------------- The LOCATE statement can be used only with a BUFFERED OUTPUT SEQUENTIAL or TRANSIENT file. (Note: A program that uses a TRANSIENT file cannot be executed on TSS/360.) It allocates storage within an output buffer for a based variable, setting a pointer to the location in the buffer as it does so. This pointer can then be used to refer to the allocation so that data can be moved into the buffer. The record is written out automatically, during executiong of a subsequent WRITE or LOCATE statement for the file, or when the file is closed. So it has its own limitations on applicability. For example, it only seems to work for writes, not reads.