[Info-vax] 8-bit characters
Michael Moroney
moroney at world.std.spaamtrap.com
Fri Nov 12 15:30:59 EST 2021
On 11/12/2021 1:45 PM, Robert A. Brooks wrote:
> On 11/12/2021 1:28 PM, Simon Clubley wrote:
>> On 2021-11-11, Robert A. Brooks <FIRST.LAST at vmssoftware.com> wrote:
>>> On 11/11/2021 4:01 PM, Arne Vajhøj wrote:
>>>> On 11/11/2021 3:57 PM, Michael Moroney wrote:
>>>
>>>>> You remember correctly. The hardwired '24 line terminal' assumption
>>>>> pissed me
>>>>> off and a few times I looked at it I said no way I can fix that
>>>>> spaghetti
>>>>> code. But one day the planets were aligned or something, and I just
>>>>> did it.
>>>>
>>>> Macro-32 ?
>>>
>>> BLISS-32
>>>
>>
>> Same difference. :-)
>
> No, it's not. While it's true that one can write bad code in any language,
> BLISS, due its procedural nature, does not default to spaghetti code.
>
> While the EDT code can be confusing (due to lack of comments), the code
> flow
> isn't that bad.
>
> What can be confusing in BLISS is the use of nested macros, where a single
> BLISS "statement" can expand into several pages of code.
>
What made it difficult for me when first considering this were a few things:
1) I was relatively weak at BLISS. Almost everything I did in my VMS
career was C/MACRO-32 and some other languages.
2) I think the coding style threw me. Sometimes that does that. Even my
own! :-) Some of the code was trying to squeeze every byte out, as old
code almost always does.
3) There was no equivalent of C's .H file containing something like
'#define terminal_lines 24'. I went through ALL modules looking for
EVERY instance of the character string/constant '24'. EDT is split up
into many modules. I then had to look at EVERY instance of '23' and '22'
(number of lines of the edited file being displayed). I also looked at
'21' and '25'. There was much more but I forget.
My first pass was hardwiring everything to something like '40', that is
terminals all had 40 lines, not 24. Then I tried things in a fixed 40
line long terminal window. It mostly worked on the second attempt. Then
I went back to making things variable, based on terminal characteristics.
There is much more but I forget, it was some time ago that I did this.
More information about the Info-vax
mailing list