| Deutsch English Français Italiano |
|
<lm0hnrFmmqaU31@mid.individual.net> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.nobody.at!weretis.net!feeder8.news.weretis.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Bob Eager <news0009@eager.cx> Newsgroups: alt.folklore.computers,comp.os.linux.misc Subject: Re: The joy of FORTRAN-like languages Date: 30 Sep 2024 20:58:35 GMT Lines: 44 Message-ID: <lm0hnrFmmqaU31@mid.individual.net> References: <pan$96411$d204da43$cc34bb91$1fe98651@linux.rocks> <vd8o1s$178gk$5@dont-email.me> <llr46dFmeudU2@mid.individual.net> <vd9r10$1d6gq$4@dont-email.me> <vd9rub$18mq$2@gal.iecc.com> <vd9see$1d6gq$5@dont-email.me> <AF4KO.179529$1m96.177503@fx15.iad> <vdarvh$1l4ch$6@dont-email.me> <mddbk046f1m.fsf@panix5.panix.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net V2afFWfF0FQ3D5Q05d55Swua0HuQzVw3PhYnnV5ne/LILQfTNa Cancel-Lock: sha1:TyLPy2o3fBiniQCcc7AlJ34EP3g= sha256:NdejjlWrdmy16vx1wr1zYiZiuTey/rXQmyQqTlQGo5U= User-Agent: Pan/0.145 (Duplicitous mercenary valetism; d7e168a git.gnome.org/pan2) Bytes: 2576 On Mon, 30 Sep 2024 16:51:33 -0400, Rich Alderson wrote: > The Natural Philosopher <tnp@invalid.invalid> writes: > >> On 29/09/2024 05:26, Charlie Gibbs wrote: > >>> That's assuming your machine has a stack, which the IBM 360 didn't. > >> Well there are probably other ways to implement a stack than having it >> built into a computer. >> Like a having a general purpose register reserved for a stack pointer >> and manually creating push pop call and return as macros > > Or actual machine instruction codes, as on the PDP-6 and PDP-10: > > PUSH ac,address ;any accumulator can be a stack pointer POP ac,address > > PUSHJ ac,address ;address of next instruction on stack, jump to address > POPJ ac, ;pop address from stack and jump to it Unfortunately not well known, but the ICL 2900 series has a good stack implementation. It has a stack frame pointer (ONB, or Local Name Base), a stack front pointer (SF) as well as off stack bases. The accumulator is variable size (32, 64, 128). There are 32 address mode, including those that use the top of stack. So ST.T stores the accumulator at top of stack, and LSS.T (also LSD.T and LSQ.T for the larger sizes) to unstack. Most other instructions can equally well use top of stack in the same way. (yes, there's just one accumulator, but the stack etc. are heavily cached). -- Using UNIX since v6 (1975)... Use the BIG mirror service in the UK: http://www.mirrorservice.org