On Fri, 10 Feb 2023 at 01:32, Bill Shen <
coinst...@gmail.com> wrote:
>
> It is a complete mystery to me how screen-based CP/M software dealt with large assortments of terminals before cursor controls were standardized. There must be an assortment of helper software that users can configured to run with their particular brand of terminals. My fear is the interface protocol was proprietary and never published. I suppose if every one of these screen-based software can interface to VT100, then I don't need to know the proprietary interface, just work with VT100 protocol and convert it back to memory mapped video screen positions. But what a waste of computer resource--all that serial escape sequence to position cursor when hardware can do it easily with direct memory mapping. Oh well.
Most systems emulated adm3a, vt52 or later, sometimes vt100. It was a
problem - but not as big as you might think. Printers were at least as
bad if not worse.
- In earlier CP/M days all the disk formats were gloriously
incompatible so you'd generally not buy XYZ for CP/M but you bought a
disk in the format your machine could read, which was generally
pre-configured
- A lot of screen based software had a page in the manual that told
you where to ddt in the video strings with examples. Usually they'd
have a patch area low down. That was normal tech user understanding
level, and business users would be working through suppliers who did
it for them.
- Better apps had a configuration program (eg for Wordstar) that did
the patching in human-speak. Wordstar actually came as an install
package, not the way you find it today on CP/M installs.
It did become more of a problem later when disk formats got a bit more
sane and common, and machines more accessible - but things like the
Zsystem formalized the interface for terminal strings and some of the
banked bioses could flip between terminal emulations. Even then a lot
of software was still sold pre-configured for the common machine
types.
There were other tricks too - like loading a CP/M resident program
that patched the BIOS vectors and translated adm3a into whatever
weirdness your vendor inflicted on you and adm3a.
Doing it directly causes a whole replacement raft of problems, as the
8086 folks found out rather quickly when bypassing the BIOS
- Video might be character or bitmap based
- The size varies
- The font map varies
- The memory layout of many devices was 'interesting'
- There are a million different ways to lay out bitmaps
- You may or may not be able to access video memory all the time without noise
- Video memory is banked and page differently in different systems
which in practice very rapidly became "IBM PC with MDA, CGA or bust"