Discussion:
OK, a war story (sort of)
(too old to reply)
Bob Eager
2024-02-22 10:38:27 UTC
Permalink
In my first year as an undergraduate, we were taught BASIC - it was the
only language available online, as opposed to in 'batch' mode via punched
cards and printer (I ended up teaching that course myself some years
later).

After a few weeks of BASIC, I decided to learn assembly language for the
mainframe - an ICL 4130, which was a 24 bit word oriented machine with
96kW of memory. In practice, the best type of target program was a
'subsystem' for KOS, the online facility. Users had only 1536 words of
working memory (excluding the code itself), and about 600 of those were
used for the I/O system and other services. Nevertheless, I wrote a simple
linear regression program (mirroring the one we had done in BASIC for an
assessment).

Running a subsystem was something for which one had to get permission, as
a fault could stop the online system (although a simple operator command
would continue it from the stop point). Once I had proved myself, I was
allowed to write more programs.

However, I (and others) became increasingly ambitious, and did some
naughty things. Fairly early on, I 'acquired' a copy of the (assembler)
source code for the online system, KOS. My first venture into the
'naughty' area was to write a program that would simulate the effect of
Ctrl-C (well, its equivalent in those days) on a specified terminal. I was
able to do this by modifying a status bit in the terminal multiplexer
device driver (I had previously found a way to write anywhere in the
entire machine's memory, subverting the memory management). Later, I
discovered that I could remotely log someone out as well.

Various other programs followed, and a few of us decided it would be a
good idea to be able to submit batch work to the batch queue via a
terminal, instead of on punched cards. One could then use other languages
such as Algol and FORTRAN, which were not available in the on-line system.

This wasn't too difficult:

- Load a program that inserted itself between the executive card reader
driver and the batch system.
- Fulfil requests for 'next card' by getting one from the card reader
driver and passing it on - until an end of job card was detected.
- Pass on the end of job card, but follow it with card images taken from a
previously prepared file.
- At the end of that file, reconnect the batch system to the card reader
driver and exit the program.

It worked perfectly. Except ... when the computer operators came to
collect up all the punched cards for the completed jobs, and reconcile
them with their associated printouts ... there were no cards for one lot
of printout! They spent some time looking for them, and to avoid further
suspicion, action was taken. Cards were quickly typed for the 'phantom'
job, and dropped down the back of the table that held the trays of
returned cards. Then: "Oh look, what's that down there?".

We got away with that one. Over time we encountered restrictions on
running subsystems, and had to write a loader. That is another story.
--
Using UNIX since v6 (1975)...

Use the BIG mirror service in the UK:
http://www.mirrorservice.org
Bob Eager
2024-02-22 14:56:39 UTC
Permalink
Brilliant!

I'll post another soon.
Thank you for sharing! =)
I'll add a story about a brilliant joke. It's not mine, but still a good
story!
An acquaintance of mine was working for a low-level/hardware consultancy
firm, and one summer someone at the company decided to have a bit of fun
with the CEO.
So what to do?
Since this was a company good with low-level stuff and hardware, he
decided to create a little mod for the CEOs keyboard. So when the CEO
was on vacation they opened his keyboard and installed the little chip.
So what did it do?
It contained a randomizer and a list of naughty words, so each n:th
keypress (n randomly determined), the chip would insert a naughty word.
So once the CEO was back in office, everything started out great, but
all of a sudden a meeting invitation had this weird naughty word in it,
a presentation had one and so on.
The CEO ran antivirus, didn't find anything, rebooted, didn't work,
re-installed his PC, didn't work, and before his frustration reached
dangerous levels, the keyboard was switched back.
That's the amount of fun and power you can have with low-level hardware
knowledge! ;)
Best regards,
Daniel
Post by Bob Eager
In my first year as an undergraduate, we were taught BASIC - it was the
only language available online, as opposed to in 'batch' mode via
punched cards and printer (I ended up teaching that course myself some
years later).
After a few weeks of BASIC, I decided to learn assembly language for
the mainframe - an ICL 4130, which was a 24 bit word oriented machine
with 96kW of memory. In practice, the best type of target program was a
'subsystem' for KOS, the online facility. Users had only 1536 words of
working memory (excluding the code itself), and about 600 of those were
used for the I/O system and other services. Nevertheless, I wrote a
simple linear regression program (mirroring the one we had done in
BASIC for an assessment).
Running a subsystem was something for which one had to get permission,
as a fault could stop the online system (although a simple operator
command would continue it from the stop point). Once I had proved
myself, I was allowed to write more programs.
However, I (and others) became increasingly ambitious, and did some
naughty things. Fairly early on, I 'acquired' a copy of the (assembler)
source code for the online system, KOS. My first venture into the
'naughty' area was to write a program that would simulate the effect of
Ctrl-C (well, its equivalent in those days) on a specified terminal. I
was able to do this by modifying a status bit in the terminal
multiplexer device driver (I had previously found a way to write
anywhere in the entire machine's memory, subverting the memory
management). Later, I discovered that I could remotely log someone out
as well.
Various other programs followed, and a few of us decided it would be a
good idea to be able to submit batch work to the batch queue via a
terminal, instead of on punched cards. One could then use other
languages such as Algol and FORTRAN, which were not available in the
on-line system.
- Load a program that inserted itself between the executive card reader
driver and the batch system.
- Fulfil requests for 'next card' by getting one from the card reader
driver and passing it on - until an end of job card was detected.
- Pass on the end of job card, but follow it with card images taken
from a previously prepared file.
- At the end of that file, reconnect the batch system to the card
reader driver and exit the program.
It worked perfectly. Except ... when the computer operators came to
collect up all the punched cards for the completed jobs, and reconcile
them with their associated printouts ... there were no cards for one
lot of printout! They spent some time looking for them, and to avoid
further suspicion, action was taken. Cards were quickly typed for the
'phantom' job, and dropped down the back of the table that held the
trays of returned cards. Then: "Oh look, what's that down there?".
We got away with that one. Over time we encountered restrictions on
running subsystems, and had to write a loader. That is another story.
--
Using UNIX since v6 (1975)...

Use the BIG mirror service in the UK:
http://www.mirrorservice.org
Charlie Gibbs
2024-02-22 19:46:09 UTC
Permalink
Post by Bob Eager
Brilliant!
I'll post another soon.
Hooray! a.f.c is back to life again!

Here's a story of mine...

I was working in a small service bureau, and occasionaly we'd get a
programming request was just plain outlandish. "What do they expect
us to do, make the machine sing _Old MacDonald_?" a co-worker would
typically gripe. Meanwhile, one of my after-hours playtime activities
was to place a transistor radio inside the computer near the backplane,
where it would pick up radiation from the circuitry. Inspired by a
demo I had seen on an IBM 1620 several years before, I wrote a program
that ran loops at frequencies that caused audible tones to come out
of the radio. I had it read cards specifying pitches and durations
so I could program it to play whatever I wanted. The day after I got
it going after hours, I called my co-worker over to the machine and
said, "Remember how you gripe about us being asked to make the machine
play _Old MacDonald_?" Then I hit the START button...
--
/~\ Charlie Gibbs | The Internet is like a big city:
\ / <***@kltpzyxm.invalid> | it has plenty of bright lights and
X I'm really at ac.dekanfrus | excitement, but also dark alleys
/ \ if you read it the right way. | down which the unwary get mugged.
D
2024-02-22 22:00:08 UTC
Permalink
Post by Charlie Gibbs
Post by Bob Eager
Brilliant!
I'll post another soon.
Hooray! a.f.c is back to life again!
Here's a story of mine...
I was working in a small service bureau, and occasionaly we'd get a
programming request was just plain outlandish. "What do they expect
us to do, make the machine sing _Old MacDonald_?" a co-worker would
typically gripe. Meanwhile, one of my after-hours playtime activities
was to place a transistor radio inside the computer near the backplane,
where it would pick up radiation from the circuitry. Inspired by a
demo I had seen on an IBM 1620 several years before, I wrote a program
that ran loops at frequencies that caused audible tones to come out
of the radio. I had it read cards specifying pitches and durations
so I could program it to play whatever I wanted. The day after I got
it going after hours, I called my co-worker over to the machine and
said, "Remember how you gripe about us being asked to make the machine
play _Old MacDonald_?" Then I hit the START button...
Reminds me of novell! I've heard or read somewhere that the alarm bell was
tuned to the pitch of an infant crying in the hope of it activating some
kind of biological drive to check on the problem in the admin! ;)
Jim Jackson
2024-02-22 22:15:34 UTC
Permalink
Post by Charlie Gibbs
Post by Bob Eager
Brilliant!
I'll post another soon.
Hooray! a.f.c is back to life again!
Here's a story of mine...
I was working in a small service bureau, and occasionaly we'd get a
programming request was just plain outlandish. "What do they expect
us to do, make the machine sing _Old MacDonald_?" a co-worker would
typically gripe. Meanwhile, one of my after-hours playtime activities
was to place a transistor radio inside the computer near the backplane,
where it would pick up radiation from the circuitry. Inspired by a
demo I had seen on an IBM 1620 several years before, I wrote a program
that ran loops at frequencies that caused audible tones to come out
of the radio. I had it read cards specifying pitches and durations
so I could program it to play whatever I wanted. The day after I got
it going after hours, I called my co-worker over to the machine and
said, "Remember how you gripe about us being asked to make the machine
play _Old MacDonald_?" Then I hit the START button...
We had a lineprinter service engineer (honeywell I think) who would
have print jobs that would make the lineprinter play tunes.

And other printouts - nudge, nudge!!!!

Ahem A Rivet's Shot
2024-02-22 14:33:20 UTC
Permalink
On Thu, 22 Feb 2024 14:45:49 +0100
It contained a randomizer and a list of naughty words, so each n:th
keypress (n randomly determined), the chip would insert a naughty word.
So once the CEO was back in office, everything started out great, but all
of a sudden a meeting invitation had this weird naughty word in it, a
presentation had one and so on.
Sweet - at a PPOE a colleague introduced a small piece of code into
the keyboard handler on a number of machines. It randomly substituted
characters for one adjacent on the keyboard - with a probability that
depended on the time intervals between the last few characters. Type slowly
and everything is fine, type fast and you mistupe thongs quite
realistixally getting worse the faster you tyoe/
--
Steve O'Hara-Smith
Odds and Ends at http://www.sohara.org/
For forms of government let fools contest
Whate're is best administered is best - Alexander Pope
D
2024-02-22 16:31:54 UTC
Permalink
Post by Ahem A Rivet's Shot
On Thu, 22 Feb 2024 14:45:49 +0100
It contained a randomizer and a list of naughty words, so each n:th
keypress (n randomly determined), the chip would insert a naughty word.
So once the CEO was back in office, everything started out great, but all
of a sudden a meeting invitation had this weird naughty word in it, a
presentation had one and so on.
Sweet - at a PPOE a colleague introduced a small piece of code into
the keyboard handler on a number of machines. It randomly substituted
characters for one adjacent on the keyboard - with a probability that
depended on the time intervals between the last few characters. Type slowly
and everything is fine, type fast and you mistupe thongs quite
realistixally getting worse the faster you tyoe/
Ahh! Nice one!
Charlie Gibbs
2024-02-22 19:46:09 UTC
Permalink
Post by D
Post by Ahem A Rivet's Shot
On Thu, 22 Feb 2024 14:45:49 +0100
It contained a randomizer and a list of naughty words, so each n:th
keypress (n randomly determined), the chip would insert a naughty word.
So once the CEO was back in office, everything started out great, but all
of a sudden a meeting invitation had this weird naughty word in it, a
presentation had one and so on.
Sweet - at a PPOE a colleague introduced a small piece of code into
the keyboard handler on a number of machines. It randomly substituted
characters for one adjacent on the keyboard - with a probability that
depended on the time intervals between the last few characters. Type slowly
and everything is fine, type fast and you mistupe thongs quite
realistixally getting worse the faster you tyoe/
Ahh! Nice one!
Now a standard feature on Windows I believe.
At least after NT. In fact, in Charles Petzold's _Programming
Windows 3.1_ there is a paragraph stating that mouse clicks will
be ignored if Windows is busy doing other things. This was fixed
in NT, which as a result felt a lot less flaky. (Well, a bit
less flaky, at least...)
--
/~\ Charlie Gibbs | Microsoft is a dictatorship.
\ / <***@kltpzyxm.invalid> | Apple is a cult.
X I'm really at ac.dekanfrus | Linux is anarchy.
/ \ if you read it the right way. | Pick your poison.
Loading...