Project for JW!

8 views
Skip to first unread message

HRM Resident

unread,
Nov 13, 2021, 12:43:00 PM11/13/21
to
You ought to be able to get this working on any Windows-7/8/10 PC,
any Linux box or any recent Apple computer. I picked a Raspberry Pi 4
($35 computer.)

Google and install DOSBox-x (or just plain DOSBox might work, I
didn't try it.) Install it as per the instruction with it . . .
probably easier on a Windows-10 system, but I honestly had it going in
less than an hour on a Linux based Pi.

This will give you a window with good old MS-DOS running in it.
Yes, DIR, EDIT, FORMAT, FDISK, XCOPY, ERASE, MKDIR, etc., all work just
like they did on an original 1980s Intel 8088 4.77 MHz based PC with
640K RAM. So did a dozen DOS-based games I managed to test. Finally,
you need to dedicate a small folder on your hard drive and map it C:\
for DOSBox-x . . . maybe 1 GB or less.

To see if DOSBox-x is REALLY as good an emulator as they claim, I
just wrote something in Turbo Pascal that alters the interrupt table.
It counts the clock ticks from the emulated "4.77 MHz" CPU (which kicks
the BIOS on an original PC 18.3 times a second.) Somehow this is all
duplicated on entirely different hardware running 314.4 times faster!
And it works. Given this, I have to assume one can run any MS-DOS-based
legacy software they can find.

If you are inclined, get DOSBox-x and put it on something. Then
run some old DOS programs. They work.

My acid test was to install Turbo Pascal. That worked fine with
the ubiquitous "Hello world" test. Then I put this on it, a mixture of
Pascal and assembly language. It just asks you to type your name (or
anything else you want), and it counts the 18.3/second "ticks" while you
are doing it. This allows it to calculate how long it took you to type
it. Have fun . . . it's stuck on the bottom of this post.

Also WordPerfect, Turbo C, Wordstar, Qbasic, Lotus 1-2-3, Harvard
Graphics, etc. Here's a good place to find DOS software:

<https://winworldpc.com/library/operating-systems#>

Look under the Application and System links on that page.

--
HRM Resident



{$R-,U-,C-}

Program Timer(input,output);

{****************************************************************************}
{*
*}
{* Program name: Timer ( Demonstrates the use of the system timer )
*}
{*
*}
{* Programmer: HRM Resident
*}
{*
*}
{* Date: 2021-11-13
*}
{*
*}
{* Language: TURBO Pascal Version 3.0
*}
{*
*}
{* Implementation: MS-DOS 5.0 Running on a Raspberry Pi in a
"Dosbox-x" *}
{* DOS installation for a Quad core Cortex-A72 (ARM
v8) *}
{* 64-bit CPU @ @ 1.5GHz emulating a 12 MHz to 40 MHz
*}
{* 80386 32-bit CPU.
*}
{*
*}
{*
*}
{* Function: This program modifies the interrupt vector table so that
*}
{* when the system timer generates an interrupt, a local
*}
{* interrupt service routine ( ISR ) is invoked rather than
*}
{* the standard MS-DOS timer ISR. This program then counts
*}
{* the number of interrupts ( which occur 18.3 times per
*}
{* second ) and uses this count to time events.
*}
{*
*}
{****************************************************************************}


const

{ DOS uses IRQ0 for the clock, IRQ1 for the keyboard, and IRQ6
for the }
{ NEC PD765 floppy disc controller. In addition, if a Winchester
disc }
{ is installed, IRQ5 is reserved for this purpose. Therefore,
IRQ2, }
{ IRQ3, IRQ4, and IRQ7 are available for user applications.
}

IRQ_CLK = 0;

{ When the 8259 PIC generates an interrupt vector address, it
produces }
{ a number equal to the IRQ line triggered plus a 5 bit offset
that is }
{ set by the host computer during initialization. On the IBM PC
this }
{ number is: 0 0 0 0 1 + x x x; where x x x is the IRQ
requesting }
{ service. Therefore, the vector table entry is 8 + IRQ_line.
}

IBM_PC_int_offset = 8; { 8259 offset used by IBM PC }

overhead = 7;


var

{ Vector table entries to be modified }

timer_vector_table_entry : integer;

{ Original vector table entries }

system_timer_offset : integer;
system_timer_segment : integer;

clock_ticks : integer;
real_clock_ticks : real;
elapsed_time : real;
name : string[80];
dsave : integer absolute cseg:$0006;






Procedure Get_Vector_Address(var offset, segment : integer;
vector : integer);

var
first_word, second_word : integer;

begin
first_word := vector * 4;
second_word := first_word + 2;
offset := memW[0000:first_word];
segment := memW[0000:second_word];
end;






Procedure Set_Vector_Address(offset, segment, vector : integer);

var
first_word, second_word : integer;

begin
first_word := vector * 4;
second_word := first_word + 2;

{ Disable interrupts while the vector table is modified }

inline($FA); { CLI }

memW[0000:first_word] := offset;
memW[0000:second_word] := segment;

inline($FB); { STI }
end;






Procedure Enable_IRQx(IRQx : byte);

{ The BIOS masks out all un-used interrupts upon initialization.
This }
{ mask must be cleared before hardware interrupts from IRQx will
be }
{ passed on to the CPU.
}

var
imr, mask : integer;

begin
mask := not ( 1 shl IRQx );
imr := port[$21]; { Get Interrupt Mask Register
from 8259 }
imr := imr and mask; { clear mask for IRQx ( bit x )
}
port[$21] := imr; { and return to interrupt
controller }
end;






Procedure Disable_IRQx(IRQx : byte);

{ Set IRQx mask bit so interrupts from this source will not be
passed }
{ on to the 8086.
}

var
imr, mask : integer;

begin
mask := 1 shl IRQx;
imr := port[$21];
imr := imr or mask;
port[$21] := imr;
end;






Procedure Timer_ISR;


{ Handles interrupts generated by the system timer }

begin

{ Save system state }

inline($FB { STI }
/$1E { PUSH DS }
/$50 { PUSH AX }
/$53 { PUSH BX }
/$51 { PUSH CX }
/$52 { PUSH DX }
/$57 { PUSH DI }
/$56 { PUSH SI }
/$06); { PUSH ES }

inline($8C/$C8/ { MOV AX,CS }
$8E/$D8/ { MOV DS,AX }
$A1/dsave/ { MOV AX,dsave }
$8E/$D8); { MOV DS,AX }


clock_ticks := clock_ticks + 1;

{ Non-specific EOI to 8259 }

inline($FA/ { CLI }

$B0/$20/ { MOV AL,020H }
$E6/$20); { OUT 020H,AL }

{ Restore system state before returning from interrupt. }

inline( $07 { POP ES }
/$5E { POP SI }
/$5F { POP DI }
/$5A { POP DX }
/$59 { POP CX }
/$5B { POP BX }
/$58 { POP AX }
/$1F { POP DS }
/$CF); { IRET }

{ IRET re-enables further interrrupts }

end;






Procedure Integrity_Check( off, seg : integer);

{ Because of the variable overhead generated by compiler directives }
{ an integrity check is performed to ensure that the vector address }
{ actually contains the ISR. }

const
ISR_preamble : array[0..8] of byte =
( $FB, { STI }
$1E, { PUSH DS }
$50, { PUSH AX }
$53, { PUSH BX }
$51, { PUSH CX }
$52, { PUSH DX }
$57, { PUSH DI }
$56, { PUSH SI }
$06 ); { PUSH ES }

var
index : integer;


Procedure ISR_Error;

begin
writeln('ISR vector is pointing to the wrong address.');
writeln;
writeln('Check compiler directives');
writeln;
writeln('Aborted ');
halt;
end;


begin
for index := 0 to 8 do
if not ( mem[seg:off + index] = ISR_preamble[index] ) then
ISR_Error;
end;






Procedure Set_Timer_Vector_Table;

{ This routine modifies the IBM PC interrupt vector table in low }
{ memory to point to the local service routine for the interrupt }
{ generated by the system timer chip ( IRQ0 ). }

var
local_offset, local_segment : integer;

begin

local_offset := ofs(Timer_ISR) + overhead;
local_segment := cseg;
Set_Vector_Address(local_offset,local_segment,
timer_vector_table_entry);
Integrity_Check(local_offset,local_segment);
end;








begin
dsave := Dseg;
timer_vector_table_entry := IRQ_CLK + IBM_PC_int_offset;
clock_ticks := 0;

Get_Vector_Address(system_timer_offset,
system_timer_segment,
timer_vector_table_entry);

Disable_IRQx(IRQ_CLK);

Set_Timer_Vector_Table;

clrscr;

Enable_IRQx(IRQ_CLK);
write('Please type your name: ');
readln(name);
Disable_IRQx(IRQ_CLK);

Set_Vector_Address(system_timer_offset,system_timer_segment,
timer_vector_table_entry);

Enable_IRQx(IRQ_CLK);

real_clock_ticks := clock_ticks;
elapsed_time := real_clock_ticks * 0.05493;
writeln;
writeln('It took you ',elapsed_time:4:2,' seconds.');
writeln;

end.

James Warren

unread,
Nov 13, 2021, 4:07:05 PM11/13/21
to
WOW! A lot of work for so little reward. :)

I see you were a DOS expert. Not me. I gave up programming
at that level after the LINC-8.

HRM Resident

unread,
Nov 14, 2021, 2:20:51 PM11/14/21
to
On 2021-11-13 5:06 p.m., James Warren wrote:

>snip<

>> <https://winworldpc.com/library/operating-systems#>
>>
>>      Look under the Application and System links on that page.
>>
>
> WOW! A lot of work for so little reward. :)
>
> I see you were a DOS expert. Not me. I gave up programming
> at that level after the LINC-8.
>

The reward is in the satisfaction of the doer! I ain't planning on
using DOS to grab interrupts or to run WordPerfect. BUT, I get the kick
out of installing and making things work. I was/am a programmer/systems
analyst, not a data processor. My "ah-ha" moment comes from getting it
to work. e.g. I want to write the program that the scientists tell me
gives the proper answer, not run 10,000 data files through the program
to get results. We had a guy who processed tapes for over 30 years . . .
BORING!

I us(ed) almost every kind of computer made since 1970 except
business-oriented things. No COBOL programs printing paychecks ever came
out of me!

When the IBM PC came out in 1981, we got one. I immediately took it
apart and stuck oscilloscopes, spectrum analyzers, and frequency
counters on the parts and figured out how it worked. They gave me 3
months to "play" with it and then bought a couple dozen for the data
analysts to use.

All I ever did was data acquisition (using HP minis, PCs,
microVAXes and custom-made computers,) operating systems and programming
to the point where it gave an answer that resulted in a thumbs up. Then
I moved on to the next project.

Speaking of WordPerfect, I just got version 6.1 working this morning
on a Raspberry Pi in the MS-DOS window. It's the journey, not the
destination. :-)

--
HRM Resident

James Warren

unread,
Nov 14, 2021, 3:48:17 PM11/14/21
to
On 2021-11-14 3:20 PM, HRM Resident wrote:
> On 2021-11-13 5:06 p.m., James Warren wrote:
>
>      >snip<
>
>>> <https://winworldpc.com/library/operating-systems#>
>>>
>>>      Look under the Application and System links on that page.
>>>
>>
>> WOW! A lot of work for so little reward. :)
>>
>> I see you were a DOS expert. Not me. I gave up programming
>> at that level after the LINC-8.
>>
>
>     The reward is in the satisfaction of the doer! I ain't planning on
> using DOS to grab interrupts or to run WordPerfect. BUT, I get the kick
> out of installing and making things work. I was/am a programmer/systems
> analyst, not a data processor. My "ah-ha" moment comes from getting it
> to work. e.g. I want to write the program that the scientists tell me
> gives the proper answer, not run 10,000 data files through the program
> to get results. We had a guy who processed tapes for over 30 years . . .
> BORING!

No! Exciting! :)

>
>     I us(ed) almost every kind of computer made since 1970 except
> business-oriented things. No COBOL programs printing paychecks ever came
> out of me!
>
>     When the IBM PC came out in 1981, we got one. I immediately took it
> apart and stuck oscilloscopes, spectrum analyzers, and frequency
> counters on the parts and figured out how it worked. They gave me 3
> months to "play" with it and then bought a couple dozen for the data
> analysts to use.

Changing computers was always a pain in the ass. It meant that I had to
make many tweaks to get my stuff to work as it should. BORING!

>
>      All I ever did was data acquisition (using HP minis, PCs,
> microVAXes and custom-made computers,) operating systems and programming
> to the point where it gave an answer that resulted in a thumbs up. Then
> I moved on to the next project.

We had a guy like that. I just wanted his output so that I could make
something of it.

>
>    Speaking of WordPerfect, I just got version 6.1 working this morning
> on a Raspberry Pi in the MS-DOS window. It's the journey, not the
> destination. :-)
>

I never used that kind of application unless I had to. Like when people
sent me files in those formats.

HRM Resident

unread,
Nov 15, 2021, 12:51:33 PM11/15/21
to
On 2021-11-14 4:48 p.m., James Warren wrote:
> On 2021-11-14 3:20 PM, HRM Resident wrote:
>> On 2021-11-13 5:06 p.m., James Warren wrote:
>>
>>       >snip<
>>
>>      The reward is in the satisfaction of the doer! I ain't planning
>> on using DOS to grab interrupts or to run WordPerfect. BUT, I get the
>> kick out of installing and making things work. I was/am a
>> programmer/systems analyst, not a data processor. My "ah-ha" moment
>> comes from getting it to work. e.g. I want to write the program that
>> the scientists tell me gives the proper answer, not run 10,000 data
>> files through the program to get results. We had a guy who processed
>> tapes for over 30 years . . . BORING!
>
> No! Exciting! :)
>



Yes, that's a plodder. They don't want to think or do research.
Those we dealt with this way:

"James, we get roughly 20,000 raw data files a year. They will always
be exactly the same because we are doing time series research. You run
each file through one of the programs our experts wrote. Bring me the
plots. If they look unusually, I'll get the programming experts to look
at the code, or discuss the oddity with my co-workers. We estimate
we'll get these data sets for 35 years. Your job is to run each one
through the same program and bring me the results every Friday at 1 PM.
Do that for the next 35 years. Process about 700,000 files, all
exactly the same. But don't think or look at the results. Arrive at 8
AM, bring a peanut butter sandwich lunch in a brown paper bag. Run the
data files through the same program every hour until 4 PM. That's your
career. You can retire in 35 years."



Then there were the innovators. The inventors. The researchers.
Those we dealt with this way:

"James! We are doing exciting research. I have decades of funding
promised from Health Canada. So every few months, we'll try data taken
in different ways. Also, data from a vast number of sources. As we get
the data, we'll discuss ways that we can 'mine' more information from
it. We'll look for trends, unexpected results and test if we can adjust
the algorithms and coefficients in the programs you wrote and look after
to see if we can solve heart issues. Between myself, you and our
colleagues in the field worldwide, we likely will have an exciting *new*
project (and resultant paper) about once a year. Maybe quicker if we
find any intriguing statistics or unexpected results. You can retire in
35 years, or keep doing this part-time indefinitely after 'official'
retirement."

Plod on! :-) I have often wondered if the "plodders" are happier
than the "innovators." They don't seem to care about much. "I get paid
the same regardless of whether I design a Mars rocket or mop the floor." :-)

--
HRM Resident

James Warren

unread,
Nov 15, 2021, 1:13:36 PM11/15/21
to
Oh please no!

>
>
>
>     Then there were the innovators.  The inventors.  The researchers.
> Those we dealt with this way:
>
> "James!  We are doing exciting research.  I have decades of funding
> promised from Health Canada. So every few months, we'll try data taken
> in different ways.  Also, data from a vast number of sources.  As we get
> the data, we'll discuss ways that we can 'mine' more information from
> it.  We'll look for trends, unexpected results and test if we can adjust
> the algorithms and coefficients in the programs you wrote and look after
> to see if we can solve heart issues.  Between myself, you and our
> colleagues in the field worldwide, we likely will have an exciting *new*
> project (and resultant paper) about once a year.  Maybe quicker if we
> find any intriguing statistics or unexpected results.  You can retire in
> 35 years, or keep doing this part-time indefinitely after 'official'
> retirement."

This looks like my life! Never a dull moment! :)

>
>     Plod on! :-)  I have often wondered if the "plodders" are happier
> than the "innovators."  They don't seem to care about much.  "I get paid
> the same regardless of whether I design a Mars rocket or mop the floor."
> :-)
>

Who cares about pay!? Give me novelty anytime! :)

HRM Resident

unread,
Nov 15, 2021, 4:35:01 PM11/15/21
to
James Warren <jwwar...@gmail.com> wrote:
> On 2021-11-15 1:51 PM, HRM Resident wrote:
>> On 2021-11-14 4:48 p.m., James Warren wrote:
>>> On 2021-11-14 3:20 PM, HRM Resident wrote:
>>>> On 2021-11-13 5:06 p.m., James Warren wrote:


>snip<

>
> This looks like my life! Never a dull moment! :)
>
>>
>>     Plod on! :-)  I have often wondered if the "plodders" are happier
>> than the "innovators."  They don't seem to care about much.  "I get paid
>> the same regardless of whether I design a Mars rocket or mop the floor."
>> :-)
>>
>
> Who cares about pay!? Give me novelty anytime! :)
>

Freddy, the wino, snuck into the SUB again. Someone gave him 5-6 cans
of those sardines in mustard sauce. He must have eaten them all before he
drove down that big jug of cheap wine. Anyway, he barfed all over the
place. Can you take your mop and a bucket over there and clean up the
mess? Remember to treat Freddy with respect. :-)


--
HRM Resident

James Warren

unread,
Nov 15, 2021, 5:59:02 PM11/15/21
to
Was Freddy you? I'll show you all the respect I can muster. :)

HRM Resident

unread,
Nov 16, 2021, 8:28:09 AM11/16/21
to
James Warren <jwwar...@gmail.com> wrote:

>snip<

>>Can you take your mop and a bucket over there and clean up the
>> mess? Remember to treat Freddy with respect. :-)
>>
>>
>
> Was Freddy you? I'll show you all the respect I can muster. :)
>

No, there's not even a person named Fred in my family. But you
changed the subject. You claimed that you didn't want to think on the job,
and as long as you got paid, it didn't matter what you did. Mopping up
barf or writing statistical programs both pay the same. Why add stress to
your life?

SUB is likely clean now. How about mopping the halls at the
residences?

--
HRM Resident

James Warren

unread,
Nov 16, 2021, 10:08:09 AM11/16/21
to
On 2021-11-16 9:28 AM, HRM Resident wrote:
> James Warren <jwwar...@gmail.com> wrote:
>
> >snip<
>
>>> Can you take your mop and a bucket over there and clean up the
>>> mess? Remember to treat Freddy with respect. :-)
>>>
>>>
>>
>> Was Freddy you? I'll show you all the respect I can muster. :)
>>
>
> No, there's not even a person named Fred in my family. But you
> changed the subject. You claimed that you didn't want to think on the job,
> and as long as you got paid, it didn't matter what you did. Mopping up
> barf or writing statistical programs both pay the same. Why add stress to
> your life?

Actually I claimed just the opposite. I said pay was much less important
than having something interesting to do. Once done, I want to go on to
the next thing. Never a dull moment.

HRM Resident

unread,
Nov 16, 2021, 10:50:00 AM11/16/21
to
James Warren <jwwar...@gmail.com> wrote:
> On 2021-11-16 9:28 AM, HRM Resident wrote:

>snip<

>
> Actually I claimed just the opposite. I said pay was much less important
> than having something interesting to do. Once done, I want to go on to
> the next thing. Never a dull moment.
>


As I recall, this started by my saying I like the data acquisition and
archive/retrieval of such. Then I opined I would bore easily if I had to
process tons of data. At which point you piped up with something similar
to, “That is me! I am the one who processes it.”

Our processors were pretty robotic. Put together a JCL job and submit
it. Computer operator (grade 11-12 tops) put matching 5-6 serial-numbered
9-track tape on a drive. If there was a typo on one of the punched cards,
everything failed, and they put the printout in said processor’s pigeon
hole. The processor gets printout, creates a new card, puts it in the job
deck and resubmits it. Some days they could get 2-3 tapes processed.
Other days they got nothing.

However, they never complained. They said what you did, “I get paid
the same either way.”

I think they were arguing on Usenet while waiting for the job results.
Isn't this what you did? :-)

--
HRM Resident

James Warren

unread,
Nov 16, 2021, 11:26:13 AM11/16/21
to
Nope. The wires got crossed somewhere.

I ran 10000 line programs BUT I wrote those programs. The object was to
see if there was useful information in the information on those tapes.
Reading those tapes was just a prelude to extracting information.

When done, on to the next interesting query.

HRM Resident

unread,
Nov 16, 2021, 2:18:46 PM11/16/21
to
On 2021-11-16 12:26 p.m., James Warren wrote:
> On 2021-11-16 11:49 AM, HRM Resident wrote:


>snip<


>>      I think they were arguing on Usenet while waiting for the job
>> results.
>> Isn't this what you did?  :-)
>>
>
> Nope. The wires got crossed somewhere.
>
> I ran 10000 line programs BUT I wrote those programs. The object was to
> see if there was useful information in the information on those tapes.
> Reading those tapes was just a prelude to extracting information.
>
> When done, on to the next interesting query.
>

OK. The 180-degree reversal in a few days! No problem. We're all
bored. Maybe your variable recollections are a side effect of Covid . .
. or the vaccine. :-)

I'm consistent. A "J*** of all IT trades," in a way. I think I hit
the field just as it expanded exponentially, and the universities were
not grinding out computer grads yet. One had to learn on the job.

We HAD to figure out how to make networks work. We HAD to decipher
oddball data when the acquisition systems and the instruments were
16-bit, and yet the floating-point data "words" in interleaved channels
were 20-bits, 12-bits, 16-bits, etc. You get four or five 16-bit binary
"words" per sampling cycle. Then re-arrange the bits in real-time into
VMS, RTE-6, or whatever native floats, and convert them to ASCII. Write
the plain ASCII numbers to 9-track. Once the "plodders" proved they
could read the ASCII numbers on a mainframe from the 9-track tapes, they
were left to use "off the shelf" stats and plotting packages. I (and
others) installed these packages and compilers, O/S patches, etc., on at
least 5-6 different architecture systems. Try getting MatLab to run on a
huge Sun UNIX server for a few hundred users when it reads the licensing
info off another Sun UNIX box. And stores the data in an Oracle
database running on a HP-UX server. Ya' gotta understand them all!


Our job was to collect weird data from satellite images,
custom-built instruments, commercial instruments, etc. We kept the
processing computers humming. Then it was the "plodders" job to pretty
it up. We moved on.

And yes, I too wrote 10,000 line programs now and then. I ran a
dozen test files through them, got results that made sense to the gurus,
and then turned the program over to the "plodders" to use. Sometimes I
never heard from them again. They just worked. Or . . . they came in
with a divide by zero error, or the scientists wanted a tweak. But
typically, when we turned a program over to the "plodders," we only
heard tell of it again once every few months.

However, there is, it seems, no end of data. So we had to find a
way to collect it and convert it to a standard ASCII format the
"plodders" could follow. Most didn't know a real from an integer or
ones-complement number from twos-complement number. They had a set of
4-5 lines of cheat notes on how to submit the jobs. 35-40 years of
doing that. Then they retired. Wow!

Good thing it wasn't given to me. I'd lose interest in a week and
reverse engineer the 10,000 lines Pascal or FORTRAN into Assembly or
binary code.

You "plodders" were the backbone of data processing, and we
appreciated you! There'd be no pretty plots or tables to put in papers
without "plodders." :-) Thanks! :-) :-)


--
HRM Resident

James Warren

unread,
Nov 16, 2021, 3:07:32 PM11/16/21
to
Better you than me. I want data but data was a stepping stone to
information - perhaps even wisdom if extremely lucky. :)

>
>
>     Our job was to collect weird data from satellite images,
> custom-built instruments, commercial instruments, etc. We kept the
> processing computers humming.  Then it was the "plodders" job to pretty
> it up.  We moved on.

I did some of this but it was not pleasant.

>
>     And yes, I too wrote 10,000 line programs now and then. I ran a
> dozen test files through them, got results that made sense to the gurus,
> and then turned the program over to the "plodders" to use. Sometimes I
> never heard from them again. They just worked. Or . . . they came in
> with a divide by zero error, or the scientists wanted a tweak. But
> typically, when we turned a program over to the "plodders," we only
> heard tell of it again once every few months.

There are two types of "plodders": those who do the same analyses
day in and day out and those who look for meaning in the data. I was
the second.

>
>     However, there is, it seems, no end of data. So we had to find a
> way to collect it and convert it to a standard ASCII format the
> "plodders" could follow. Most didn't know a real from an integer or
> ones-complement number from twos-complement number. They had a set of
> 4-5 lines of cheat notes on how to submit the jobs.  35-40 years of
> doing that. Then they retired.  Wow!
>
>     Good thing it wasn't given to me. I'd lose interest in a week and
> reverse engineer the 10,000 lines Pascal or FORTRAN into Assembly or
> binary code.

These days data is the life blood of AI. What is boring about that?

>
>     You "plodders" were the backbone of data processing, and we
> appreciated you! There'd be no pretty plots or tables to put in papers
> without "plodders." :-) Thanks! :-) :-)
>
>

Without us "plodders" there would be no reason to collect data. :)

HRM Resident

unread,
Nov 17, 2021, 8:54:38 PM11/17/21
to
James Warren <jwwar...@gmail.com> wrote:
>

>snip<

>
> Without us "plodders" there would be no reason to collect data. :)
>
>

That's true. Sort of like a bus driver complaining about the
passengers! “Plodders” are quite useful.

We didn't care because we got paid the same regardless of who used the
program.

--
HRM Resident
Reply all
Reply to author
Forward
0 new messages