3

In his book The Silicon Jungle David Rothman mentions several times the term "modifying" or "customizing" a software program.

e.g. Chapter 8:

And then the consultant didn’t even supply instructions to operate and modify the software.

You could customize the MDBS program in FORTRAN or BASIC.

Elsewhere:

You could have WordStar customized for your machine; but why not instead buy a computer that works well with it from the start?

What does he mean by this? Surely commercial programs like WordStar weren't sold as source code?

Is this modification and recompilation at the source code level? Or is he talking about "configuring".

(Asking this in RetroComputing because the book deals with computing technology from the early-1980s.)

  • 1
    I don't know who David Rothman is, but that book (now in the public domain) looks like journalism, not like technical literature. – Solomon Slow Mar 5 at 14:58
  • @Solomon Slow, yes it's more end-user and business-oriented rather than being for IT/technical people, which was all the more reason why I ask this question about what he means (sometimes he uses "simplified" i.e. non-technical language that today is equally difficult to understand). Anyway it was worth a read, being largely set well before I took an interest in computing. – Armes Pueppilein Mar 5 at 15:31
14

In his book The Silicon Jungle David Rothman mentions several times the term "modifying" or "customizing" a software program.

Just like today, usage of generic products have always needed customisation to be used: forms in word processors, queries in DB products and so on.

And then the consultant didn’t even supply instructions to operate and modify the software. You could customize the MDBS program in FORTRAN or BASIC.

MDBS is a database system - to make it useful, one has to add some DB application/queries/etc.

You could have WordStar customized for your machine; but why not instead buy a computer that works well with it from the start?

Wordstar is made to run on a wide variety of machines, which have different ways of accessing keyboard (*1) and screen (*2), so when buying a Wordstar, one had to select at least the configuration for your system - or create a new one if the target machine is not already listed. The whole process is similar to editing a Unix Termcap, which acts as a dynamic abstraction layer - except that with early programs it was done in a static way, with the configuration patched into the binary.

Other applications required the user to patch the binaries directly to adjust functionality. So there has been a wide variation of customization.

This has gone out of sight for most of the time today, as for one, keyboard hardware (encoding) is much the same everywhere (essentially PC style), but also OSes covering this by replacing hardware related encoding by symbolic layers.

What does he mean by this? Surely commercial programs like WordStar weren't sold as source code?

No, but they were made to be patched for customization.

In addition, it wasn't uncommon that software was also provided fully or partly as source. Depending on the product source code was seen as part of documentation, meant to allow the user to utilise every detail and/or to research details of operation not found in the 'written' documentation.

Is this modification and recompilation at the source code level? Or is he talking about "configuring".

All of that may apply. Software has to be configured, modified, and or supplemented to be used. Back then as well as today.


*1 - Keyboards (directly attached to computers as well as via terminals) had many different layouts and number of keys available, from straight TTY with no cursor and editing keys at all, all the way to luxurious monsters with special keys for everything imaginable. Also, different keyboards used different key codes for similar keys.

*2 - Screen control was (mostly) done by control sequences, but as with keyboards, different computers (and terminals as well) used different encodings for the same function.

| improve this answer | |
  • As far as I remember WordStar was one of the few programs smart enough to manipulate screen memory directly (as opposed to printing the characters the usual way). This gained quite a bit of speed. – Thorbjørn Ravn Andersen Mar 7 at 11:46
  • 1
    @ThorbjørnRavnAndersen That was in some versions of WordStar. But plenty wrote escape sequences using standard CP/M, CP/M-86, MS-DOS function calls, which could be configured for any character-mode ASCII terminal. – manassehkatz-Moving 2 Codidact Mar 9 at 14:27
2

WordStar for CP/M was extensively configurable by directly changing specific known locations in the executable (e.g. with the DDT tool and the SAVE command built into CP/M 2.2). As far as I know, at first this was supposed to be an in-house thing only; but end users, being ingenious, figured it out anyway. It was made official in later versions, and a configuration tool was included for doing it in a more intuitive way then by using a general-purpose debugger or hex editor.

Of course, back then, an application such as WordStar

  1. was tiny by modern standards
  2. had to run on many systems which shared the same CPU and OS but differed markedly in peripherals, such as screens/terminals, printers, and disk drives
  3. only existed in a relatively small number of well-understood published versions, since you couldn't just use some quick online updating process to distribute new ones at-will.
  4. was written in assembly, so that a couple hours of skilled use of a disassembler and some brains could give you something reasonably similar to the original human-readable source code.
  5. was sold in pre-configured variants for several of the more common machines of the day
  6. had to work hard to conserve RAM space and CPU cycles, so that including a built-in "preferences" menu and/or a real configuration file parser was deemed wasteful

All of this added together lead to the method of configuration given above - hex-editing of the executable.

| improve this answer | |
  • Thank you very much for this very interesting insight. I grew up with Windows 3.1 so am not so familiar with the systems and methods used back in the early-80s, and some of the points you listed would be unthinkable today. It's difficult to imagine "Joe User" in 2020 running a dissassembler on e.g. OpenOffice Writer to "customize" the application to his needs. How times have changed! – Armes Pueppilein Mar 10 at 10:04
  • @ArmesPueppilein: "Joe User" probably didn't disassemble anything in the early 1980s either, but many companies had some people who were not "Joes". Or you'd know somebody in a user group / computer club / whatever who wasn't. Or a magazine would tell you how to patch specific common pieces software. – TeaRex Mar 11 at 9:30
1

Sun's SunOS kernel was customizable by the user because it could be built (linked) from a number of modules including kernel modules (both binary and in compilable source form) from an ISV

The user could also choose if some type of modules should be included at all in the kernel image or how many serial line devices should be supported etc.

Some types of changes required as (the assembler) because the distributed system included some amount of assembler files (Motorola 68k/SPARC assembler)

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.