Is it a lost cause?

Mia culpa... it is COMPUTED GOTO. There are a couple of COMPUTED GOTO's in the FORTRAN IV code for Colossal Cave Adventure... that dispatches the commands to the right section of code. Even BASIC has a form of COMPUTED GOTO, but *not* ASSIGNED GOTO.

I guess I chose the ASSIGNED GOTO because I had *never* used it before, and I have *never* used it since. ISTM that ASSIGNED GOTO is *no* longer supported since FORTRAN 90... (It is *not* just depricated... it's

*gone*!!!)
--

numerist at aquaporin4 dot com
Reply to
Charles Richmond
Loading thread data ...

The Harris chips (used much later, e.g. in the DECmate) did have some stack instructions (PPC, PAC, POP, RTN etc.)

--
Using UNIX since v6 (1975)... 

Use the BIG mirror service in the UK: 
 http://www.mirrorservice.org
Reply to
Bob Eager

I think it was both, over time. But I can't find my Gordon Bell book.

--
Using UNIX since v6 (1975)... 

Use the BIG mirror service in the UK: 
 http://www.mirrorservice.org
Reply to
Bob Eager

The first ICL[1] machine to have one was the ICL 2900, which was heavily stack based.

[1] Including ICT (1900 and earlier), Elliott (803, 903, 4100 etc.) and English Electric (System 4, IBM 360 clone).
--
Using UNIX since v6 (1975)... 

Use the BIG mirror service in the UK: 
 http://www.mirrorservice.org
Reply to
Bob Eager

To paraphrase, you're saying it's an index register, it just isn't a register.

*Lots* of computers didn't have a stack pointer register. There are even low-end embedded processors today that don't.
Reply to
Joe Pfeiffer

My Data General Nova 1200 was the same. Store the return address in the first word of the subroutine. This was a perfect system as there was no ROM, only core in those days. The ravages of time means I no longer can remember the Octal for the bootloader. I used to be able to toggle it in without thinking.

Reply to
mm0fmf

It was! In those days I didn't have access to a PDP-8 (I do now) but I did a lot of work on a DDP-516 (including modifying the CPU). In particular, I ported a strange, heavily recursive program onto it.

I saw various larger systems: Elliott 4130, ICT 1900, and PDP-10. The ICL

2900 was my first real stack based machine.
--
Using UNIX since v6 (1975)... 

Use the BIG mirror service in the UK: 
 http://www.mirrorservice.org
Reply to
Bob Eager

The original PDP-8 was DTL on multiple flip-chip plug in modules. Later reimplementations used SSI and eventually there was a one-chip version, but by that time nobody was interested other than a few legacy applications.

It didn't have a subtract instruction either.

This was a machine with 4096 words of 12 bit core memory, two registers, the program counter and the accumulator, and a one bit "link" that you could use to check for carries. That's it. The multiply/divide option (it was expensive and I never used it) provided a third MQ register.

It had indirect addressing, but we all knew the difference between that and index registers. The earlier and much more expensive PDP-6 had 36 bit words, 16 registers, indirect and indexed addressing, and instructions that let you use any register as a stack pointer. The later PDP-10 was better known and had nearly the same instruction set as the PDP-6.

Reply to
John Levine

So how do you feel about load-time relocation of dynamically loaded code?

Reply to
John Levine

I have a couple of those chips, in working systems!

But it did have a combined complement/increment instruction so you were halfway there (at a price)!

To be fair, you could use up to 32k words with some extra programming.

--
Using UNIX since v6 (1975)... 

Use the BIG mirror service in the UK: 
 http://www.mirrorservice.org
Reply to
Bob Eager

Even with mandatory comment per line that would be so much better with something like:

INX Next whatsit

--
Steve O'Hara-Smith                          |   Directable Mirror Arrays 
C:>WIN                                      | A better way to focus the sun 
The computer obeys and wins.                |    licences available see 
You lose and Bill collects.                 |    http://www.sohara.org/
Reply to
Ahem A Rivet's Shot

WARNING: Do not argue with John about this. Well, not until you've read his book!

--
Using UNIX since v6 (1975)... 

Use the BIG mirror service in the UK: 
 http://www.mirrorservice.org
Reply to
Bob Eager

I never used the Burroughs 700 series, but I worked with a woman who did. Its been a long time, but IIRC she said that when you started a program MCP spun up a virtual machine to suit it, so Algol 60 programs ran in a stack-based VM with memory organised in words, while COBOL programs got byte-addressed memory and a simpler stack, possibly holding little more than subroutine return addressses, and, for all I know, using BCD arithmetic rather than integers: that would certainly map nicely onto the way COBOL defines storage for numeric data.

The ICL 2900 was also my first large stack-based system, but I'd already got used to the stack-based life with 6800-based microcomputers before I saw a 2900.

--
martin@   | Martin Gregorie 
gregorie. | Essex, UK 
org       |
Reply to
Martin Gregorie

The S/360 has 16 general registers so implementing stacks is not hard. It has no dedicated stack instructions.

A series of articles in the IBM Systems Journal in 1964 described the design of S/360. They considered making it a stack machine like the Burroughs ones, but decided that registers would give better performance over the range of implementations they foresaw.

Reply to
John Levine

On Mon, 4 Jul 2016 15:33:35 -0400, Peter Flass declaimed the following:

Unless one came from a system where the destination came second

L 12,A

then becomes "load literal 12 into address A"

Sigma made register ops less confusing

LD,12 A ST,12 A

where the register was identified in the opcode field, and the address field was either a literal or an address. (Granted, addresses 0-15 /were/ the registers -- but one never found an address in the opcode field)

--
	Wulfraed                 Dennis Lee Bieber         AF6VN 
    wlfraed@ix.netcom.com    HTTP://wlfraed.home.netcom.com/
Reply to
Dennis Lee Bieber

I didn't recall the 360 having one, and checking the green card I don't see one. That apparently changed somewhere on the journey from 360 to Z.

Reply to
J. Clarke

On Mon, 4 Jul 2016 15:47:08 -0500, "Charles Richmond" declaimed the following:

According to my F90 text book, ASSIGN (and related GOTO var) were declared "obsolescent" in F90, but were still in the language. My F95 book implies that it was intended to be a small change level, so likely did not delete obsolescent features.

What is /now/ if Fortran, I don't know -- there have been at least two releases since F90/95.

--
	Wulfraed                 Dennis Lee Bieber         AF6VN 
    wlfraed@ix.netcom.com    HTTP://wlfraed.home.netcom.com/
Reply to
Dennis Lee Bieber

Indeed, though the ME29, which just squeaked in ahead of the general 2900 release, may have had a stack. I remember playing with one in 1980 that was set up to be a workstation with mouse and portrait-mode screen - the first system I ever saw with a WIMP user interface.

IIRC the ME29 also formed the guts of the 2900 DFC (Disk File Controller) and the earlier 2903, which was essentially an office furniture styled box with DFC hardware inside and a chunk of microcode added to make it run 1900 software. I used the 2903 quite a lot and liked it, but never got to find out what lay beneath the microcode layer.

--
martin@   | Martin Gregorie 
gregorie. | Essex, UK 
org       |
Reply to
Martin Gregorie

The R-series modules the original 8 was built with were discrete (or thick-film hybrid for some revs) transistors implementing DTL gates.

Later 8s used TTL logic in standard packages of the day.

Reply to
Lawrence Statton NK1G

I did wonder about that, but thought the ME29 was later than 1976, when I started on 2900.

First one I saw was also ICL - the PERQ.

Did it? I thought the original DFC (all three cabinets of it!) was a rebadged 1900 disk controller.

--
Using UNIX since v6 (1975)... 

Use the BIG mirror service in the UK: 
 http://www.mirrorservice.org
Reply to
Bob Eager

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.