Owain F Carter
Computer Songs and Poems
Humour
Title : A Visit from Saint Woz
Original : The Night Before Christmas (A Visit from St. Nick?)
Group : ?
Author : Marty Knight
Intro :
Song :
A VISIT FROM SAINT WOZ
by Marty Knight
'Twas the night before Christmas, no sound in the house.
My GS is dusty and so is my mouse.
My dealer's gone Mac; he's too brainwashed to care.
Apple marketing smells like that old dairy-air.
My children are nestled, all snug in their beds,
while visions of Mac LCs (ugh) dance in their heads.
The GS is dead, I've heard them all say.
They might just be right; things look pretty gray.
When all of a sudden a great noise I did hear.
I woke with a start and fell flat on my rear.
Awakened from slumber I jumped up to see
tripped over the cat and twisted my knee.
The moon brightly shone on the new fallen snow.
I looked but saw nothing, then turning to go,
stopped short... What's that?... Is that synthLAB I hear?
Why yes! Yes it is! That's good reason to cheer!
I jumped and I shouted and I danced then because
I knew right away that it must be Saint Woz.
More rapid than Zip Chip, old Wozniak came.
He whistled and shouted and called out by name:
"Now Quickie! Now Allison! Now AppleWorks GS!
Go Claris! On SuperConvert! I love you Vitesse!
Platinum Paint is so cool! Twilight Screen Blanker rules!
Who needs those old Macs when you've got Apple IIs?
"If you have been true I've got presents to dole,
but if you're like inCider you'll get lumps of coal."
So up to the housetop with the Green Team he flew;
Jim Merritt, Andy Nicholas, and Saint Wozniak, too.
I kept very quiet so that I might hear
SoundSmith tunes softly playing, spreading Apple II cheer.
Then I heard a slight scrape and as I turned 'round
down the chimney Saint Wozniak came with a bound.
He wore blue jeans and sneakers and a T-shirt that said
II-Infinitum ... II-Forever... I had nothing to dread!
A sack of great software he had slung on his back
and he looked like a hacker there searching his pack.
His eyes twinkled brightly, his dimples so merry,
his cheeks red as apples, his nose like a cherry.
His droll little mouth smiled a smile oh so grand.
And a full bearded chin, GDL labels in hand.
A thick slice of pizza he held tight in his teeth
and the steam from it circled his head like a wreath.
A plump little face and a round little belly.
He laughed and it shook like a bowl of grape jelly.
He was chubby and plump; a right jolly old elf.
I laughed when I saw him, for he looked like myself.
He winked right at me then he twisted his head,
so I knew deep inside I had nothing to dread.
He said not a word. He went straight to work
programming in ORCA, then he turned with a jerk.
Then placing his finger on top of that mess,
and giving a nod... GAMES for the GS!
He jumped to his sleigh and it rose from the ground.
But before it took off I saw him turn 'round
and I heard him exclaim, 'ere he flew out of sight,
"Apple II Forever, and to all a good night!"
Copyright 1990 by Marty Knight
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Title : BBN Superlisp
Original : Jesus Christ Superstar
Group : from Jesus Christ Superstar
Author : Guy L. Steele Jr.
Intro :
Song :
BBN Superlisp
[to be sung to the tune of
Jesus Christ Superstar]
Every time I look at you I don't understand
Why you think "Do What I Mean" is so cool and grand;
You'd have managed better if you'd thought it through,
Why'd you pick such an awkward way your bugs to undo?
Your hairy feature will not be the last revolution,
It's clear "Mean What I Do" is the ultimate solution!
Don't you get me wrong,
Don't you get me wrong,
Don't you get me wrong, now,
Don't you get me wrong,
I only want to hack,
I only want to hack,
I only want to hack,
I only want to hack.
BBN! BBN! Some people think you're the living end!
BBN! BBN! Some people think you're the living end!
BBN! SuperLISP! Can "Do What I Mean" measure up to this?
BBN! SuperLISP! Can "Do What I Mean" measure up to this?
Tell us what you think about your friends at the top,
Who d'you think besides yourself's the pick of the crop?
Is LISP 1.5 where it's at? Is it where you are?
Does Stanford's LISP have features too or is that just PR?
Do you have the breakpoint scheme that MACLISP is known for,
Or is that just the kind of kludge the user's on his own for?
Don't you get me wrong,
Don't you get me wrong,
Don't you get me wrong, now,
Don't you get me wrong,
I only want to hack,
I only want to hack,
I only want to hack,
I only want to hack.
BBN! BBN! Some people think you're the living end!
BBN! BBN! Some people think you're the living end!
BBN! SuperLISP! Can "Do What I Mean" measure up to this?
BBN! SuperLISP! Can "Do What I Mean" measure up to this?
-- The Great Quux
(with apologies to
Rice and Webber)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Title : Berkelian Rhapsody
Original : Bohemian Rhapsody
Group : Queen
Author : R. Anderson
Intro : I have a real gem for you, if you're familiar at all with Queen's
"Bohemian Rhapsody", recently re-popularized over here in the
states by the movie "Wayne's World", a cinematic production with
which most Europeans will not identify, being culturally different
than we are (and, I might add, more advanced in their cultures).
Song :
BERKELIAN RHAPSODY
(to the tune of "Bohemian Rhapsody")
Is this in real time? Is this in memory?
Caught in a for(;;) loop, no escape from this subroutine...
open() your files, branch through the do{}while()s and see
I'm just the kernel, I need no libraries
Because you boot me up, load and go
Branch from high, store to low
Any way the thread flows
Doesn't really matter to me
To me.
unlink() just killed a file
Filled it's data up with NULLs, cleared the inode, closed the holes
vfork(), life had just begun
Then kill(0, SIGKILL) blew it all away
mmap(), ooooooh, didn't mean to make it die
if (the parent process doesn't fork again) {
carry on, carry on, as if nothing really matters;
}
Too late, init has died
Flush my buffers out from core, then reboot() and try once more
panic ("freeing free block"); I've got to crash
Got to enter kdb and see the truth
Init, ooooooooh (Any way the thread flows)
I've lost my tty
I wish my page hadn't been swapped out at all...
I see the signal trap vectors into core
Interrupt! Overrun! It will do a fandango
Data's skrogged like lightning, very very frightening me
Dennis Ritchie? Kenneth Thompson? Kirk McKusick? Eric Allman
Someone help me! Robert Pike?
Oh, Kernighan (-an -an -an -an -an)
I'm just a quick hack, nobody uses me
He just makes sockets in his address family
Spare him a buffer in high memory
bind(); accept(); msg_send(); will it let me go?
munmap(); NO! It will not let you go (LET IT GO!)
munmap() just will not let you go (LET IT GO!)
munmap() just will not let you go (LET IT GO!)
Will not let you go (LET IT GO!)
Will not let you go
Will not let you go oh, oh, oh, oh
No, no, no, no, no, no, no!
kill(0, SIGKILL), exit(0); exit(0); let me go!
BSDi has a daemon set aside for me, for me, for meeeeeeeeeeeeee
So you think you can stomp on my stack space and text?
.. Skrog my image and data by calling exec()?
Ohh, page-d, can't do this to me page-d
Just gotta switch out, just context switch right out of here
Nothing really hashes, anyone can see
Every process thrashes, every disk drive crashes
On me
Any way the thread flows...
- Music by Queen
Lyrics by R. Anderson
with posthumous apologies
to Freddie Mercury
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Title : Berkeley California
Original : Hotel California
Group : The Eagles
Author : David Barr (barr@pop.psu.edu)
Intro : I remember getting a collection of computer songs of yours
a while ago. Here's a song 3 of us made up recently in light of the
recent lawsuit between AT&T and BSDI, as well as the shift by Sun
(and others) away from Good Ol' BSD towards System V.
Song :
"Berkeley California"
(Sung to the tune "Hotel California" by the Eagles)
In a dark dim machine room
Cool A/C in my hair
Warm smell of silicon
Rising up through the air
Up ahead in the distance
I saw a Solarian(tm) light
My kernel grew heavy, and my disk grew slim
I had to halt(8) for the night
The backup spun in the tape drive
I heard a terminal bell
And I was thinking to myself
This could be BSD or USL
Then they started a lawsuit
And they showed me the way
There were salesmen down the corridor
I thought I heard them say
Welcome to Berkeley California
Such a lovely place
Such a lovely place (backgrounded)
Such a lovely trace(1)
Plenty of jobs at Berkeley California
Any time of year
Any time of year (backgrounded)
You can find one here
You can find one here
Their code was definately twisted
But they've got the stock market trends
They've got a lot of pretty, pretty lawyers
That they call friends
How they dance in the courtroom
See BSDI sweat
Some sue to remember
Some sue to forget
So I called up Kernighan
Please bring me ctime(3)
He said
We haven't had that tm_year since 1969
And still those functions are calling from far away
Wake up Jobs in the middle of the night
Just to hear them say
Welcome to Berkeley California
Such a lovely Place
Such a lovely Place (backgrounded)
Such a lovely trace(1)
They're livin' it up suing Berkeley California
What a nice surprise
What a nice surprise (backgrounded)
Bring your alibies
Windows NT a dreaming
Pink OS on ice
And they said
We are all just prisoners here
Of a marketing device
And in the judges's chambers
They gathered for the feast
They diff(1)'d the source code listings
But they can't kill -9 the beast
Last thing I remember
I was restore(8)'ing | more(1)
I had to find the soft link back to the path I was before
sleep(3) said the pagedaemon
We are programmed to recv(2)
You can swap out any time you like
But you can never leave(1)
[ substitute whirring of disk and tape drives for guitar solo ]
Written by David Barr (barr@pop.psu.edu)
and Ken Hornstein (kenh@physci.psu.edu)
and a little help from Greg Nagy (nagy@cs.psu.edu)
and thanks to the lyrics archive at cs.uwp.edu
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Title : Berkeley 4.3
Original : Yellow Submarine
Group : Beatles
Author : Jim Finnis
Intro : [fragment]
Song :
In the RAM
where I was forked,
lived a ROM,
who sailed the C...
And he told,
me of his life,
in the Berkeley,
4.3...
We all live in the Berkeley 4.3,
Berkeley 4.3, Berkeley 4.3.
We all live in the Berkeley 4.3,
Berkeley 4.3, Berkeley 4.3.
((c) White the Wizard productions Ltd, 1987)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Title : Boot It
Original : Beat it
Group : Michael Jackson
Author : ?
Intro :
Song :
Boot It
You're processing some words when your keyboard goes dead,
Ten pages in the buffer, should have gone to bed,
The system just crashed, but don't lose your head,
Just BOOT IT, just BOOT IT.
Better think fast, better do what you can,
Read the manual or call your system man,
Don't want to fall behind in the race with Japan,
So BOOT IT,
Get the system manager to BOOT IT, BOOT IT,
Even though you'd rather shoot it.
Don't be upset, it's only some glitch.
All that you do is flip a little switch.
BOOT IT, BOOT IT,
Get right down and restitute it.
Don't get excited, all is not lost.
CP/M, UNIX or MS/DOS Just BOOT IT, boot it, boot it, boot it...
You gotta have your printout for the meeting at two,
The system says your jobs at the head of the queue,
Right then the thing dies but you know what to do, BOOT IT.
You always get so worried when the system runs slow,
And when it finally crashes,
man you feel so low,
But computers make mistakes (they're only human you know)
So BOOT IT, Call the local guru to BOOT IT, BOOT IT,
Go ahead re-institute it.
If you're not lucky,
get the book off the shelf,
But if you are, it'll do itself.
BOOT IT, BOOT IT,
Then go find the guy who screwed it!
Operating systems are built to bounce back,
Whether it's a Cray or a Radio Shack.
BOOT IT, BOOT IT
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Title : Both Ways, Now
Original : Both Sides, Now
Group : Joni Mitchell
Author : Guy L. Steele Jr.
Intro :
Song :
Both Ways, Now
[to be sung to the tune of
Both Sides, Now]
Decimal digits in a row,
Just set the dials and let 'er go.
The ENIAC was grossly slow --
I used to code that way,
But then this Fortran came along;
I danced and sang a happy song:
So natural -- what could go wrong?
I little knew, that day!
I've looked at Fortran both ways, now,
At II and IV, and still somehow,
It's rows of numbers I recall;
I really don't know Fortran at all.
Fortran IV is real good stuff,
But business hackers have it tough;
For them this Fortran's not enough --
Then Cobol saved the day!
But now I sing a sad refrain;
This Cobol loss is no one's gain,
And writing programs is a pain
(I get writer's cramp that way!)
I've looked at Cobol both ways, now,
I code in it, and still somehow,
It's FORMAT statements I recall;
I really don't know Cobol at all.
Cobol will for business do;
Accounts and payroll make it through
(And bills for zero dollars too --
I get them every day!)
But those who hack symbolic frobs
Cannot make do with Cobol jobs,
And now I sing through anguished sobs,
But Lisp is here to stay.
I've looked at Lisp code both ways, now,
At lambda forms, and still somehow,
It's Cobol statements I recall;
I really don't know Lisp at all.
-- The Great Quux
(with apologies to
Joni Mitchell)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Title : The Boys of HP
Original : The Boys of Summer
Group : Don Henley
Author : Adam Sah (aos@max.physics.sunysb.edu)
Intro : This reminds me of something we printed here in C.S. Major Magazine
regarding our beloved Hewlett-Packard 300 Series...
Song :
The Boys of HP (sung to the tune 'The Boys of Summer' by Don Henley)
--------------
(csfs1 = Comp. Sci File Server 1)
Nobody in the room
no cursor on the screen
I feel it in the air
'csfs1 not responding'
empty disk, empty screen,
the server goes down alone
I was logged into my account
and I know you have no phone.
I can see it
the workstation's collecting dust
You've got your 'console long:'
and your blank screen, baby.
And I can tell you
I'll never get my source by dawn
once the boys from HP have gone.
I'll never forget those night.
I wonder if I ever got to sleep?
Remember how you made me crazy
Remember how _you_ made _me_ scream?
I don't understand what happened to my source
If I can't ever get it back,
I'm sure you have no remorse.
I can see it
the system crashing on me
you've got your pinstriped suit
and your corporate paranoia, baby.
And I can tell you
my love for this will still be strong
after the boys of HP have gone
Out in the corridors I saw
a bunch of lost programmers
A little voice inside my head say,
"Don't buy more,
you should never buy more"
I thought I knew where my source was
What did I know?
Those servers are gone forever,
I should just let them go, but-
I can see it-
your drives eating my work
You've got that salesman's pitch
and your demo running baby.
and I can tell you-
my love for CS will still be strong
even after the boys from HP have gone.
(c) 1991 by Adam Sah
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Title : The Bug Came Back
Original : The Cat Came Back
Group : Harry Miller
Author : Joel Polowin
Intro : I'd like to submit the following for your consideration.
Copyright (C) 1991 by Joel Polowin. Permission is hereby granted to
reproduce this material in any non-profit medium provided that its
content is not altered and that this notice is appended. I would
appreciate receiving a copy of any publication in which it appears:
Joel Polowin / 205 Toronto St. / Kingston,Ontario / CANADA / K7L 4A9
polowin@silicon.chem.QueensU.CA, polowinj@qucdn.QueensU.CA
Song :
The Bug Came Back
-----------------
(Copyright 1991 by Joel Polowin. Music: "The Cat Came Back" by Harry Miller)
The program wasn't complex, and it wasn't very long,
Though it seemed a bit erratic, its results were seldom wrong.
But that little error nagged us, so we stayed up late one night -
Found a missing comma, and we thought that fixed it right -
(Chorus:)
But the bug came back, the very next day
The bug came back, we thought it was a gonner
But the bug came back, it just wouldn't stay away.
We put away our documents, rewrote the code from scratch
To find out where the new and older versions didn't match.
A subtle shift of logic showed where we had gone astray;
We felt a bit embarrassed, but at least it ran okay -
(Chorus)
We wrote in other languages, from FORTH to APL
And ev'ry one ran ev'ry time - just sometimes not too well.
Translation to assembler didn't give us any clue;
The COBOL version crashed on ev'ry system it went through -
(Chorus)
We gave it to the hacker squad - the folks who code for fun -
And asked them if they couldn't get the stupid thing to run.
But less than one week later, they no longer wished to play -
Three paranoids... one suicide... and six who ran away...
(Chorus)
We got a summer student in to check the code by hand,
With paper, pen and calculator, run through each command,
But suddenly the lights went out -- the air went thin and queer --
A sudden FLASH! of lightning -- and the student... disappeared..?
(Chorus)
(Last verse and corresponding alternate chorus are optional:)
We set up an experiment that Schrodinger inspired:
A box; a cat; some poison; a computer system wired
Such that IF the program failed, the little moggy would be gassed.
A quasar was - almost - the only remnant of the blast...
But the cat came back the very next day
The bug came back, we thought they were a gonner
But they both came back, they just wouldn't stay away
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Title : Bye Bye, Unix
Original : American Pie
Group : Don Mclean
Author : Cathy Flint, Eric Griswold, Scott Neugroschl
Intro : I went back to my old alma-mader, UC Santa Cruz, a week ago.
Things there always seem to be getting worse, although everybody
admits it's still better than Berkeley. Anyway, the current
rage is to make fun of the CIS (Computer & Informational Sciences)
department political situation through song verses. The following
is a typical example, even though some of it isn't true......
Song :
American Pie --- Hacker Style
Long, long, time ago, I can still remember
How UNIX used to make me smile...
And I knew that with a login name
That I could play those UNIX games
And maybe hack some programs for a while.
But February made me shiver
With every program I'd deliver
Bad news on the doorstep,
I couldn't take one more spec...
I can't remember getting smashed
When I heard about the system crash
And all the passwords got rehashed
The Day That UNIX Died...
And I was singing:
Bye, bye, nroff, rogue and vi
Gave my program to Phil Levy but Phil Levy was high,
The boys on the board were sayin' "fuck this, goodbye."
Singin' this'll be the day that I die...
This'll be the day that I die
Did you write the new games shell
And do you have faith in the manual?
If b:dennie tells you so...
Well, do you believe in UNIX C
Can hacking save you memory
And can you tell me why vi's so slow
Well, I know that you're in love with C
'Cause I saw your code on UNIX B
You just kicked off your shoes
Man, you cleaned up every kludge!
I was a lonely young computer geek
With a program due 'most every week
But I guess that I was meant to freak
The Day That UNIX Died
And I was singin:
(chorus)
Well, for ten weeks we've been in this class
The professor really is an ass.
But that's not how it used to be...
When Ira Pohl taught in CIS 12
And user limits could go to hell
And there was still space on UNIX C.
And while the board was looking 'round
The Chancellor brought the budget down
The classes were adjourned
Evaluations weren't returned
And while Huffman read a book by Pohl
The CIS board made some prof's heads roll
And we wrote programs that weren't whole
The Day That UNIX Died
And we were singin'...
(chorus)
Helter skelter in the summer swelter
I went in the lab to find some shelter
Ninety degrees and risin' faaaaaasst!!!
C stayed up for ten whole days
The hackers really were amazed
Wonderin' how long it all would last.
Well, both the forums were really great
Nobody got us all irate
We had a stroke of luck
The system was not fucked
'Cause the hackers kept their code real clean
The UNDR-shell was really keen
Do you recall what was the scene
The Day That UNIX Died
And we were singin...
(chorus)
Our programs were all in one place,
UNIX had run out of space
With no time left to start again...
So, Jack be nimble, Jack be quick,
Use every programming trick
'Cause UNIX may soon crash again...
And as I watched the system fill
My login process would be killed.
The system just went down
Consternation up at Crown!!!!
The hours went on into the night
And all that we could do was rite
I saw Dennie laughing with delight
The Day That UNIX Died
And he was singin'...
(chorus)
I met a girl who sang the blues
And I asked her for some stat lab news
But she just cursed and said "grow up"
I went down through the stat lab door
Where I'd learned of UNIX years before
But the man there said that UNIX wasn't up
And in the halls the students screamed,
The majors cried and the hackers dreamed,
But not a word was spoken
The Vaxes all were broken
And the three folks I admire most
The Father, Frank, and a.g.'s ghost
They caught the last train for the coast
The Day That UNIX Died
And they were singin...
So bye, bye, nroff, rogue and vi
Gave my program to Phil Levy but Phil Levy was high.
The boys on the board were sayin' "fuck this, goodbye"
Singin' this'll be the day that I die...
(with apologies to Don McLean)
-- Cathy Flint
Eric Griswold
Scott Neugroschl
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Title: CAMM (Crustified Ancient of Main Memory)
Original: Justified Ancients of Moo Moo
Groyp: KLF
Author: Jonathan Dursi (dursi@clavius.stmarys.ca)
Intro: C CAMM - Crustified Ancient of Main Memory.
C
C This came out of the depths of despair while I was modifying
C A *really* old, *really* big (IMHO) FORTRAN program, that
C is CPU intensive and *seriously* inefficient.
C
C It just sort of appeared in my editor while I was working
C on the thing. And it produced fewer compilation errors
C than the rest of it...
C
C My sincerest of apologies to the KLF.
C - Jonathan Dursi
C dursi@clavius.stmarys.ca
Song:
Over a Meg of old FORTRAN!
Over a Meg of old FORTRAN!
Hey!
Hey, Hey!
Over a Meg of old FORTRAN!
(cruftified!)
Hey, Hey!
Over a Meg of old FORTRAN!
It's cruftified, and it's ancient,
and it loves to use up RAM.
(from 1K to the top!)
It's cruftified, and it's ancient,
and it's code I don't understand.
(and it's big, and it's BIG, and it's *BIG* now!)
He pulled me out of class, you see,
He said, "Dursi, _you_ know FORTRAN!
I doubt that you'll like what you're *going* to do,
But you'd better start now, because we need it soon!"
(Bring my 'C' back!)
Hey, Hey!
Over a Meg of old FORTRAN!
(cruftified!)
Hey, Hey!
Over a Meg of old FORTRAN!
old FORTRAN!
old FORTRAN!
Over a Meg of old FORTRAN!
It's cruftified, and it's ancient,
and it eats CPU, that CAMM...
(at least a GigaFLOP!)
It's cruftified, and it's ancient,
"But sir, I had other plans..."
(That's too bad, that's too bad, that's too bad now!)
The last compile started half hour ago,
And the users are starting to mob!
Over a Meg of old FORTRAN,
Then someone started screaming, turn off that job!
(give the keyboard back!)
Hey, Hey!
Over a Meg of old FORTRAN!
(cruftified!)
Hey, Hey!
Over a Meg of old FORTRAN!
(Cruftified and ancient,
Ancient and it's cruftified,
Will not compile though I've tried and tried,
With the errors in the go-tos,
Common Blocks and Do-loops
In the hundred thousand lines of the CAMM.
I'd really like to take a nap,
'Cuz I know what time it is,
But I think it will compile if I change this line...
Oops, well, guess not, looks like I'll be
Fishing through the listings all night.
Fishing through the listings all night!
Hey!
Fishing through the listings all night!
Hey!
Fishing through the listings,
Fishing through the listings,
Fishing through the listings all night!
Hey!
VAX Pascal!
Starting to look pretty good.
VAX FORTRAN?
Bring my 'C' Back!)
Hey, Hey!
Over a Meg of old FORTRAN!
Hey, Hey!
Over a Meg of old FORTRAN!
old FORTRAN!
old FORTRAN!
Over a Meg of old FORTRAN!
old FORTRAN!
old FORTRAN!
Over a Meg of old FORTRAN!
old FORTRAN!
old FORTRAN!
Over a Meg of old FORTRAN!