Paul Kimpel <
paul....@digm.com> writes:
>Scott Lurndal wrote:
>> Paul Kimpel <
paul....@digm.com> writes:
>>
>>> That 100K+ program I mentioned a few posts ago was a monetary
>>> transaction handler for a financial system. It was the product of a
>>> PROGENI expansion, coming from a 44K base source. I had to convert that
>>> sucker from V Series to A Series about 20 years ago, and it was not fun.
>>
>> From COBOL9? Or COBOL-74? V-Series cobol9 programs sometimes used
>> ENTER SYMBOLIC to embed assembler into the cobol code - that I could
>> well believe was problematic to port to A-series. Was this before
>> or after EVA?
>
>This was 1990-1991. I think the customer was still using a couple of
>B3900s.
I visited a customer a couple of years ago that was decomissioning a
V340 (2010). They ended up replacing it with 24 windows boxes. The
V340 had been powered off for the last two years, recently one of the
FE's tried to bring it back up, but no dice. Need to swap around
some cards, I think.
> As I recall, the app was a mix of COBOL-74 and an older
>compiler,
That would be COBOL9, the only compiler that supported ENTER SYMBOLIC.
>which I think was used only in core parts of the on-line
>infrastructure. There was a little bit of ENTER SYMBOLIC, but not much.
>EVA did not come along until towards the end of the project, so we
>didn't use it.
>
>As I recall, the big problems in the conversion (aside from the size of
>some of the programs and many fine examples of '60s spaghetti code) were
>the Core-to-Core and STOQUE IPC mechanisms, the ZIP-like tasking
Ah yes, C2C and STOQUE. Nice innovative IPC features, for the time.
STOQUE-style publish/subscribe interfaces still exist in modern transaction processing
subsystems like tuxedo & heirs.
>mechanism (and the way you could monitor and control completely
>independent tasks from any other task on V Series), digit program
>switches (they are binary on A Series), and the (expletive deleted)
>six-character file names.
Weren't particularly popular at the time, either, but a remnant
of small address space systems (until 1984, the V-series
were limited to 150kbytes of OS code, part of which was an overlay
area for MCP overlays). All kinds of tricks were invented in the 70's
to ameliorate this limit (e.g. an overlay pool so a memory-to-memory
copy was used instead of a disk I/O to load a frequently used overlay).
With Omega architecture (MCP/VS 2.0) in 1984, the OS size was basically unlimited.
It would have been quite, hmm difficult, to expand the file name
without a completely new MCP API (which we were set to do with the
hypercall interface that replaced BCT's in Omega) which was OBE.
>The data flow through the on-line system was a
>mess, so another big problem was figuring out how to take the
>combination of the SWITCH DCH interface, tasking, and data flow, and
>torquing that into something that A Series COMS could handle.
SWITCH. A mag-tape DLP talking to an HP-2000 line processor (CP3680).
I much preferred the B974 myself, but we used B874's in Pasadena for all
the engineers TD830's.
[snip]
>We actually got this mess to work, and work quite well. It ran initially
>on an A6, which the customer later upgraded to an A11. The A Series
>version ran for several years until my customer's relationship with the
>vendor soured, eventually collapsing into lawsuits that had nothing to
>do with the technical merits of either the V or A Series versions of the
>app, and everything to do with halfwits in suits.
As usual :-)
>>
>>> I think the reason for these very large source programs is primarily
>>> historical, at least on the Burroughs side of the house. We have had a
>>> tradition of relatively fast compilers that would (a) more or less
>>> automatically segment the compiled code and (b) produce object files
>>> that were ready to run -- no separate link-editing step or merging with
>>> external libraries was necessary. In fact, the B5500 and Medium Systems
>>> didn't even have a link editor.
>>
>> By the late 70's, medium systems had the BINDER, which was used to
>> bind BPL subroutines into COBOL/Fortran/Pascal codefiles. By
>> the mid-80's we had LINKER as well to produce Omega codefiles.
>>
>I knew that V Series eventually had some sort of linking capability, and
>dynamically-bound libraries, but as I understand it, BINDER could not
>link COBOL-to-COBOL, which is the case that is relevant to this thread.
I'm pretty sure that you could bind cobol to cobol, at least by the
early 90's with the COBOL-74, and probably COBOL-85 compilers.
From the BINDER Prog Ref:
<blockquote>
Three kinds of ICMs can be created with COBOL:
� The first kind of ICM is created from the main program and contains
the program entry pointor first executable code.
� The second kind is created from a source that contains only
sections that are referenced with the CALL MODULE statement. This
kind of ICM is created by specifying $RESET MAIN.
� The third kind is created from a source that contains only code
that is referenced with the IPC mechanism. This kind of ICM is
created by specifying $RESET MAIN and $RESET LEV2IPC. If $RESET
LEV2IPC is used in one module, it must be used in all modules used
to create a single program.
To save an ICM created by the COBOL ANSI-74 compiler, the $ICM option
must be set, naming the ICM to be saved. The module-name for a COBOL ICM
is the name in the PROGRAM-ID paragraph
Any reference between modules must be done with either the CALL MODULE
statement or the IPC CALL statement. A PERFORM or GO TO statement cannot
refer to a paragraph or section that is not part of the same ICM. Any
data blocks that are to be shared between modules must be declared in
identical 01-level items and must use the COMMON clause. The IPC
mechanism can be used for parameter passing.
</blockquote>
>In any case, the point I was trying to make was that by the time in the
>early '80s that more modern program abstraction facilities began to
>penetrate the consciousness of developers in the Burroughs environment,
>the architecture of most apps was pretty well set, and in most cases,
>not going to change.
Now that's truth. Much work went into Omega to ensure that codefiles
from the B3500-B4800 systems would still run unmodified.
scott