TIP: Click on subject to list as thread! ANSI
echo: rberrypi
to: MARTIN GREGORIE
from: SCOTT LURNDAL
date: 2018-03-12 16:11:00
subject: Re: Compile Assembly and

Martin Gregorie  writes:
>On Sat, 10 Mar 2018 13:16:18 -0600, Michael J. Mahon wrote:
>
>> Scott Lurndal  wrote:
>>> Jack Fearnley  writes:
>>>> On Fri, 09 Mar 2018 18:29:25 +0000, Scott Lurndal wrote:
>>>>
>>>>> Dennis Lee Bieber  writes:
>>>>>> On Fri, 09 Mar 2018 17:16:19 +0100, David Brown
>>>>>> 
>>>>>> declaimed the following:
>>>>>
>>>>>> 
>>>>>>
>>>>>> There is always the convention used by Xerox Sigma Fortran-IV.
>>>>>> Non-recursive, non-stack...
>>>>>>
>>>>>> Arguments were passed by putting them immediately after the CALL
>>>>>> (branch and link opcode, and referenced by return address (saved in
>>>>>> a register; I think 15 was the standard) + index.
>>>>>
>>>>> This was very common in the 1970s.   The PDP-8 had similar parameter
>>>>> passing as did the Burroughs B2500 and descendents until the early
>>>>> 80's when a re-entrant call (Virtual Enter (VEN)) was added to the
>>>>> architecture.
>>>>>
>>>>> Unix system calls (UnixV6 on the PDP-11) embedded the system call
>>>>> arguments in the instruction stream following the system call
>>>>> instruction.
>>>>>
>>>>> The B2500 system call instruction (BCT) had the following general
>>>>> form:
>>>>>
>>>>> BCT NNNN           # NNNN selects the system call BUN +Skip # Branch
>>>>> Unconditional to after the parameters ACON label         # first
>>>>> parameter (address constant)
>>>>> DATA 2 UN 01       # second parameter, two digit numeric, value 01
>>>>> .Skip
>>>>>
>>>>> The operating system would bump the return address by the size of the
>>>>> branch instruction (8 or 10 digits) to get the parameters.
>>>>
>>>> Even further back. This was the standard method in the IBM1401 which I
>>>> was programming in 1960.
>>>
>>> The B2500 dates back to 1965, and it did have a 1401 compability mode
>>> :-)
>>>
>>>
>> Not a compatibility mode, but a software emulator (which was little used
>> by 1967).
>
>From what I've been told about the B2xxx and B3xxx mainframes by people

Burroughs had three lines of mainframes:

  Small Systems (B1700/B1800/B1900)
  Medium Systems (B2x00/B3x00/B4x00)
  Large Systems (B5x00/B6x00/B7x00)

>who were developers on them they went a lot further than that -
>effectively providing a set of VMs for running applications in, e.g.
>Fortran programs ran in a stack-based environment with word addressed
>memory while COBOL programs ran in a (possibly) stack-free environment
>with byte-addressed memory. So, if they used VMs that way internally, it
>would seem natural if they had a 1401 VM (ant several others for other
>architecture

You're describing the small systems architecture which came along
in the 70's.

The B3500 (derived in part from the B300, which history includes the
electrodata 220) was the first system in the Medium Systems line
(a BCD machine addressed to the digit, designed to run COBOL).

The B5500 (follow on to the famous B5000) was the first system in
the large systems line (36-bit word, stack-based capability architecture;
buffer overflows are impossible!).

The Large systems lives on today in the Unisys Clearpath machines
(emulated on x86).

>
>Me? I've never even set eyes on a Burroughs B-series mainframe.

I worked on the medium systems MCP for 7 years, wrote the software
stack from power-on to system idle, and the data communications stack.

--- SoupGate-Win32 v1.05
* Origin: Agency HUB, Dunedin - New Zealand | FidoUsenet Gateway (3:770/3)

SOURCE: echomail via QWK@docsplace.org

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.