Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming > #8467

Re: Compile Assembly and C files together

Newsgroups comp.sys.raspberry-pi, comp.lang.c, comp.programming
Subject Re: Compile Assembly and C files together
From Michael J. Mahon <mjmahon@aol.com>
References (10 earlier) <9oAoC.108778$CZ2.96131@fx39.iad> <p7um12$8mm$1@dont-email.me> <I1BoC.204046$d03.194880@fx37.iad> <AZ6dnUtGy_OfsjnHnZ2dnUU7-KvNnZ2d@giganews.com> <0AxpC.70438$4z5.70256@fx17.iad>
Message-ID <XImdnXXCUPRqRjvHnZ2dnUU7-RXNnZ2d@giganews.com> (permalink)
Date 2018-03-12 14:58 -0500

Cross-posted to 3 groups.

Show all headers | View raw


Scott Lurndal <scott@slp53.sl.home> wrote:
> Michael J. Mahon <mjmahon@aol.com> writes:
>> Scott Lurndal <scott@slp53.sl.home> wrote:
>>> Jack Fearnley <jack@alcor.concordia.ca> writes:
>>>> On Fri, 09 Mar 2018 18:29:25 +0000, Scott Lurndal wrote:
>>>> 
>>>>> Dennis Lee Bieber <wlfraed@ix.netcom.com> writes:
>>>>>> On Fri, 09 Mar 2018 17:16:19 +0100, David Brown
>>>>>> <david.brown@hesbynett.no>
>>>>>> declaimed the following:
>>>>> 
>>>>>> <HEH>
>>>>>> 
>>>>>> 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). 
> 
> Hm...
> 
>  B2500/B3500:
>   "The central processors incorporated extremely fast read-only storage. This storage
>    device is wired with interpretive routines which are executed with a 50
>    nanosecond cycle time. These routines are called microprograms. The great
>    advantage of microprograms is that various different routines may be wired in,
>    allowing the emulation of other systems. This same technique was used by IBM
>    in achieving compatibility between System/360 and the 1400/7000 series
>    computers. Burroughs used this emulation technique to emulate its own 200
>    and 300 systems as well as the IBM 1401 series machines. "
> 
> http://bitsavers.trailing-edge.com/pdf/computersAndAutomation/196604.pdf
> 
> B4700 used the software emulator.
> 

Sorry, that reference is incorrect as it relates to emulation on the B2500
et. al. line. The microcode of the B2500/B3500 was fixed, and distributed
throughout much of the logic of the machines. There was never any
“alternate” microcode for these machines. 

Not all references are trustworthy. The short article seems to be the usual
result of a marketing rep talking with a tech writer. And the Burroughs ad
describes plans for a system still months from shipment. Plans change. 

And my apologies for wandering far afield...  ;-)

Calling conventions have come a long way from the original “Clear and Add
the address of this instruction, Branch to subroutine”. As the value of
general purpose register files have become clear, and optimizing compilers
more common, calling conventions have had to deal with caller/callee saves
registers, “leaf” subroutines, and more—often constrained by
characteristics of older conventions. 

If it were not for the need to support separate compilation, we could let
compilers do whatever made sense when calling a subroutine! ;-)

-- 
-michael - NadaNet 3.1 and AppleCrate II:  http://michaeljmahon.com

Back to comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: Compile Assembly and C files together "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2018-03-06 19:20 +0800
  Re: Compile Assembly and C files together druck <news@druck.org.uk> - 2018-03-06 13:53 +0000
    Re: Compile Assembly and C files together Rob Morley <nospam@ntlworld.com> - 2018-03-06 14:59 +0000
      Re: Compile Assembly and C files together David Brown <david.brown@hesbynett.no> - 2018-03-06 16:35 +0100
    Re: Compile Assembly and C files together "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2018-03-06 23:01 +0800
  Re: Compile Assembly and C files together ray carter <ray@zianet.com> - 2018-03-06 15:44 +0000
    Re: Compile Assembly and C files together "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2018-03-07 00:07 +0800
      Re: Compile Assembly and C files together Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2018-03-07 22:39 +0200
        Re: Compile Assembly and C files together "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2018-03-08 18:18 +0800
          Re: Compile Assembly and C files together Martin Gregorie <martin@mydomain.invalid> - 2018-03-08 12:37 +0000
            Re: Compile Assembly and C files together Martin Gregorie <martin@mydomain.invalid> - 2018-03-08 13:13 +0000
              Re: Compile Assembly and C files together The Natural Philosopher <tnp@invalid.invalid> - 2018-03-08 13:34 +0000
                Re: Compile Assembly and C files together Martin Gregorie <martin@mydomain.invalid> - 2018-03-08 15:27 +0000
                Re: Compile Assembly and C files together mm0fmf <none@invalid.com> - 2018-03-08 17:33 +0000
                Re: Compile Assembly and C files together The Natural Philosopher <tnp@invalid.invalid> - 2018-03-09 09:06 +0000
                Re: Compile Assembly and C files together Richard Kettlewell <invalid@invalid.invalid> - 2018-03-09 09:17 +0000
                Re: Compile Assembly and C files together The Natural Philosopher <tnp@invalid.invalid> - 2018-03-09 09:30 +0000
                Re: Compile Assembly and C files together Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2018-03-09 15:56 +0200
                Re: Compile Assembly and C files together bartc <bc@freeuk.com> - 2018-03-09 14:13 +0000
                Re: Compile Assembly and C files together Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2018-03-09 11:14 -0500
                Re: Compile Assembly and C files together The Natural Philosopher <tnp@invalid.invalid> - 2018-03-09 17:44 +0000
                Re: Compile Assembly and C files together David Brown <david.brown@hesbynett.no> - 2018-03-09 17:16 +0100
                Re: Compile Assembly and C files together Robert Wessel <robertwessel2@yahoo.com> - 2018-03-09 11:19 -0600
                Re: Compile Assembly and C files together bartc <bc@freeuk.com> - 2018-03-09 18:11 +0000
                Re: Compile Assembly and C files together Robert Wessel <robertwessel2@yahoo.com> - 2018-03-09 13:41 -0600
                Re: Compile Assembly and C files together David Brown <david.brown@hesbynett.no> - 2018-03-09 19:20 +0100
                Re: Compile Assembly and C files together Robert Wessel <robertwessel2@yahoo.com> - 2018-03-09 13:48 -0600
                Re: Compile Assembly and C files together Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2018-03-09 13:16 -0500
                Re: Compile Assembly and C files together scott@slp53.sl.home (Scott Lurndal) - 2018-03-09 18:29 +0000
                Re: Compile Assembly and C files together Jack Fearnley <jack@alcor.concordia.ca> - 2018-03-09 19:07 +0000
                Re: Compile Assembly and C files together scott@slp53.sl.home (Scott Lurndal) - 2018-03-09 19:13 +0000
                Re: Compile Assembly and C files together Michael J. Mahon <mjmahon@aol.com> - 2018-03-10 13:16 -0600
                Re: Compile Assembly and C files together Martin Gregorie <martin@mydomain.invalid> - 2018-03-11 19:39 +0000
                Re: Compile Assembly and C files together Michael J. Mahon <mjmahon@aol.com> - 2018-03-12 01:16 -0500
                Re: Compile Assembly and C files together David Taylor <david-taylor@blueyonder.co.uk.invalid> - 2018-03-12 06:39 +0000
                Re: Compile Assembly and C files together Martin Gregorie <martin@mydomain.invalid> - 2018-03-12 20:49 +0000
                Re: Compile Assembly and C files together scott@slp53.sl.home (Scott Lurndal) - 2018-03-12 16:11 +0000
                Re: Compile Assembly and C files together Michael J. Mahon <mjmahon@aol.com> - 2018-03-12 14:58 -0500
                Re: Compile Assembly and C files together scott@slp53.sl.home (Scott Lurndal) - 2018-03-12 20:38 +0000
                Re: Compile Assembly and C files together scott@slp53.sl.home (Scott Lurndal) - 2018-03-12 16:06 +0000
                Re: Compile Assembly and C files together Michael J. Mahon <mjmahon@aol.com> - 2018-03-12 14:58 -0500
                Re: Compile Assembly and C files together Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2018-03-09 21:27 +0200
                Re: Compile Assembly and C files together The Natural Philosopher <tnp@invalid.invalid> - 2018-03-09 17:40 +0000
                Re: Compile Assembly and C files together Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2018-03-09 21:30 +0200
                Re: Compile Assembly and C files together Richard Damon <Richard@Damon-Family.org> - 2018-03-09 13:16 -0500
                Re: Compile Assembly and C files together Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2018-03-09 21:33 +0200
                Re: Compile Assembly and C files together mm0fmf <none@invalid.com> - 2018-03-09 17:40 +0000
                Re: Compile Assembly and C files together The Natural Philosopher <tnp@invalid.invalid> - 2018-03-09 17:47 +0000
                Re: Compile Assembly and C files together mm0fmf <none@invalid.com> - 2018-03-09 18:05 +0000
                Re: Compile Assembly and C files together The Natural Philosopher <tnp@invalid.invalid> - 2018-03-09 09:05 +0000
                Re: Compile Assembly and C files together Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2018-03-09 16:01 +0200
          Re: Compile Assembly and C files together Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2018-03-08 17:25 +0200
  Re: Compile Assembly and C files together The Natural Philosopher <tnp@invalid.invalid> - 2018-03-07 07:36 +0000

csiph-web