
Denthor's Graphics Tutorials: Why I am a Programmer - alfiedotwtf
https://www.alfie.wtf/programming/why-i-am-a-programmer.html
======
cubano
I'm noticing a good deal of BBS references lately in HN stories, and I can't
help being amused by this...because, as it happens, the company I started in
1989 when I was fresh out of school wrote realtime interactive BBS software.

If you are so inclined, check out page 6 of this "ancient" scan of a
newsletter (yes, advertising for online software used to be done by newsletter
:) produced around 1993...my company, MagiComm, wrote an online search engine,
very nice ANSII realtime interactive games like Sub Striker and Backgammon
(with ELO ratings no less), and other pretty cool stuff.

[http://pdf.textfiles.com/zines/MAJORNEWS/majornewsv4i1.pdf](http://pdf.textfiles.com/zines/MAJORNEWS/majornewsv4i1.pdf)

Code was straight C, with BTREE tables (no SQL) on 386/486s and, in the
beginning, a 640k memory limit.

You may not approve of my development choices but you sure can't say I was
behind the times.

Anyway, it's super gratifying to read about kids being inspired by BBS
software, knowing I created a tiny part of it.

~~~
alfiedotwtf
Nice! Although BBS doors in C could have been risky _cough_.

> it's super gratifying to read about kids being inspired by BBS software

Inspired? Man... I remember one time I was online and the SysOp initiated chat
mode. After a while he told me he wrote some of the doors for his BBS. At
first I didn't believe him because he was one person and not a giant company
with fancy computers, but he convinced me and I was completely blown away.
Programmers were my heroes growing up.

~~~
cubano
No..it wasn't doors.

This was the MajorBBS, by a company called Galacticomm, which was the only BBS
system that allowed realtime interactions and gave developers the ability to
access shared memory that stored game state and player information.

~~~
alfiedotwtf
Hang on... you worked on MajorBBS? Wow that's cool!

I was fond of PCBoard though because most of the local l33t boards used it and
they had PPEs :)

Edit: sorry can't concentrate as I'm minding the kids and being distracted...
you STARTED Galacticomm? That's awesome. I'm so happy my post has brought in
the big guns to comment :)

~~~
cubano
No..I didn't start Galacticomm :)

That would be Tim Stryker, a true genius and a friend of mine, who sadly
succumbed to deep mental illness in the 90's.

My company, Magicomm, built add-ons and did deep custom modifications of the
GC codebase.

------
tdicola
Oh wow, I was thinking of writing a very similar post too. Denthor's tutorials
were one of my first introductions to programming, and I too fondly remember
typing them all into Turbo Pascal and trying to understand exactly what they
did. I've always wondered what Denthor / Grant Smith was up to in the years
after the tutorials, and if he ever thought about how many people he might
have helped get interested in programming.

If anyone's curious you can actually find Denthor's tutorials here:
[http://textfiles.com/programming/astrainer.txt](http://textfiles.com/programming/astrainer.txt)

I also searched around a bit and found this good thread that seems to indicate
Denthor is doing well these days and lives in England with a family:
[http://www.pouet.net/topic.php?which=7530&page=1](http://www.pouet.net/topic.php?which=7530&page=1)

~~~
tokenrove
When I was a kid, I spent a huge amount of time reading everything I could
find in the msdos programming archives on x2ftp.oulu.fi:
ftp://ftp.lanet.lv/pub/programming/mirror-x2ftp/

Denthor's tutorials were also included in the "PC Game Programmer's
Encyclopedia" (also on that site) which collected many useful documents. I had
been programming for a while, but Denthor's tutorials were among the first
that allowed me to go beyond simple text adventures and graphics with the BGI
(Borland Graphics Interface!).

All that stuff had a profound effect on me; not just the technical
information, but the idea of communicating that information for free in a way
that was comprehensible to novices.

~~~
tdicola
Oh yeah, I loved that FTP site! It was one of the only internet addresses I
had memorized by heart.

~~~
alfiedotwtf
There were also a ton of stuff on xs4all.nl

------
toast76
I started "programming" in the mid eighties during primary school. I made
little games, and made the PC play music and that sort of nonsense. As I got
older the games got more advanced, I even built a simple graphical OS so my
parents didn't have to use DOS.

Strangely I never considered my hobby as a possible career path.

It wasn't until 1997 that I realised I could make a living out of being a
developer. At the time I was working in my uncles PC store repairing computers
and doing some basic web development stuff (for free) for his customers.

One day my uncle introduced me to a guy in his late sixties. He was a farmer
that had taught himself to code and had written a piece of software called
FarmBase. He wanted my help to update the application for Windows (until then
it ran only in DOS). After talking at length he offered to sell me the
software for some nominal fee essentially as long as I promised to "do it
justice". At that time he was making good coin off the app, but couldn't keep
up the maintenance (he was earning 5-10x what he offered to sell it to me for,
so I'd make back the investment in 2-3 months). Sadly, I didn't have the money
and let the offer pass.

The upside is that until that moment I'd never considered "writing code" as
something that could be a real career. Not only was I inspired to write code
for a living, I was inspired to (eventually) run a software company.

~~~
alfiedotwtf
Yep :)

I've asked a lot of people throughout the years about how they got into
programming. And more than just a handful of people said that they got into
programming because of the demoscene, and more specifically, Denthor's
graphics tutorials. And only because it was fun and exciting, and something
they wanted to emulate. Some pursued it as a career, but a lot didn't (this
was pre-Internet bubble so computers weren't something you could get a job
with!).

------
gavanwoolery
This was the first demo I ever saw:

[http://www.youtube.com/watch?v=2suZ1KkZ9HI](http://www.youtube.com/watch?v=2suZ1KkZ9HI)

Which one of my brothers downloaded via BBS (amazingly, my small hometown had
a BBS when few people even had PCs). I had no idea what it was at the time,
but in retrospect it is pretty impressive - there were really no popular 3D
games at that time that I can recall.

A lot of the Spore (EA/Maxis) team was composed of demosceners - I was later
invited to work on it but never took up the offer (after reading some horror
stories about EA hours).

~~~
Jare
Arjan Brussee, the main coder of VectorDemo, went on to develop Jazz
Jackrabbit, made a few more obscure games, then founded Guerrilla Games of
Killzone fame. He recently rejoined Cliffyb and they are probably building
something awesome again. :)

Back then it was interesting to see many democoders try to make games on their
own, and fail due to the large amount of (comparatively) boring work required,
but Arjan was a pretty strong-willed individual.

~~~
royjacobs
Didn't you build a racing game around that time, too?

~~~
Jare
Yeah the ill-named Speed Haste, which unfortunately does not seem to work in
the recent Internet Archive DOSBox thing:

[https://archive.org/stream/msdos_Speed_Haste_1995/Speed_Hast...](https://archive.org/stream/msdos_Speed_Haste_1995/Speed_Haste_1995.zip?module=dosbox&scale=2)

For the record, the source code for the game is available on GitHub:

[https://github.com/TheJare/SpeedHasteSrc](https://github.com/TheJare/SpeedHasteSrc)

We were bit oddballs in the demoscene because we had been making games and
professional software for years, and we were 5-10 years older than most
sceners.

------
jasim
All I wanted to do was play shopkeeper. A kid of 8, I was a happy tester for
the inventory control software my dad wrote in the 1990s. I bought items and
sold them. I had brand-name goods in my inventory master, with MRPs and re-
order levels. Virtual lemonade stand. I still find that idea fun.

~~~
alfiedotwtf
Tinkering is where it starts. It's like a drug dealer telling you that the
first one is free. You give it a shot, have some fun, and get hooked!

------
BannedInSweden
Neat article.

About 20 years ago I saw a demo called 'Ambiance' by Tran (aka Thomas Pytel).
I became so taken with it (and the very humble readme file that accompanied
it) that I wanted to try my hand at creating something similar. This sent me
down a similar path of learning to program first from Denthor's files, and
then to a simpler technology I became fascinated by: HTML.

20 years and a successful web-app programming career later I've done some x86
demos for fun, but still haven't recreated anything as magical as that demo
was to me. I owe such a debt of inspiration to all the demo crews... maybe one
of these days I'll do a WebVR version of Tran's work to say thanks. 360 degree
Luminati?

I wonder if these folks know how valued they are to some of us?

~~~
alfiedotwtf
Thanks for the comment :)

> I wonder if these folks know how valued they are to some of us?

That's partly why I wanted to write the article - as a thank you to all the
people in the scene.

Shout outs to .-=+ The Humble Guys ~X~ Future Crew ~X~ Denthor +=-.

------
web007
These "tuts" are amazingly nostalgic.

Between this and Fravia I probably learned more about how computers worked
than any other course or article. I remember running through most of these to
build up my own personal GFX library. Silly things like "draw random lines"
versus "draw random lines REALLY FAST" kept me interested long beyond any
reasonable attention span. Thanks @tdicola for the link to the texts!

I'm only sad that I've forgotten so much, and that it's getting harder and
harder to make cool stuff like this - there are still ways to get a 1:1
array:pixel mapping and have at, but they're all more complicated than MOV AX,
13h; INT 10h; and $A000.

~~~
alfiedotwtf
Another gem from those times was "CRACKING 101" and "Cracking On the IBMpc"
both by Buckaroo Banzai.

> I'm only sad that I've forgotten so much, and that it's getting harder and
> harder to make cool stuff like this - there are still ways to get a 1:1
> array:pixel mapping and have at, but they're all more complicated than MOV
> AX, 13h; INT 10h; and $A000.

That's another blog post. Give me time :)

~~~
ersii
And for those who can't hold on to their hats until that lovely write up:

"CRACKING 101 - part 1":
[http://www.textfiles.com/piracy/CRACKING/c101-90.000](http://www.textfiles.com/piracy/CRACKING/c101-90.000)

"Cracking On the IBMpc - part 1":
[http://www.textfiles.com/piracy/CRACKING/copyprot.txt](http://www.textfiles.com/piracy/CRACKING/copyprot.txt)

The following parts are available at
[http://www.textfiles.com/piracy/CRACKING/](http://www.textfiles.com/piracy/CRACKING/)

------
oso2k
Besides the Asphyxia Trainers, back then there was also HelpPC [0], PCGPE [1],
RBIL [2], and mammon_'s work in ASM Journal [3] available on BBSes and early
interwebs.

[0] [http://stanislavs.org/helppc/](http://stanislavs.org/helppc/)

[1]
[http://www.oocities.org/siliconvalley/2151/pcgpe.html](http://www.oocities.org/siliconvalley/2151/pcgpe.html)

[2] [http://www.ctyme.com/rbrown.htm](http://www.ctyme.com/rbrown.htm)

[3]
[http://mattst88.com/programming/AssemblyProgrammersJournal](http://mattst88.com/programming/AssemblyProgrammersJournal)

------
snoonan
How to hook a 13 year old on a life-long love of bare metal:

I actually learned how to code in C and x86 asm mostly from Denthor's
tutorials discovered on some local Boston-area. It lead me to GCC (DJGPP),
Linux and love for low-level kernel hacking. I went in a different direction
career-wise, but what I learned at 13 from those tutorials taught me something
fundamental about computing hardware. I made fire. I mean, I made plasma
effects by talking directly to the hardware to put it in the mode I wanted,
kicking off inline asm to do the twiddly stuff. How fun is that?

~~~
alfiedotwtf
Although these days I'm living several layers above bare metal (Linux and
Perl), I do miss the DOS days as once you ran your code there was nothing
between you and the silicon.

------
pan69
Geez, completely forgot about FILE_ID.DIZ. When seeing it, it instantly
brought back heaps of memories!

~~~
alfiedotwtf
You don't know how much fun I had writing it. Each paragraph was an instant
flashback.

------
rottyguy
I doubt you could call this programming but I copied my first program from a
magazine called Nibble (Apple ][ mag) for a cheat editor (it was either for
Wizardry or Ultima, I don't recall) when I was 11 or 12. So many pokes and
peeks :-)

Ran a BBS in the 80's and hacked at the software a bit (anyone remember Forum-
PC, I think it was written by a 14yo!) that was written in Pascal. That was
probably my first taste of coding.

~~~
alfiedotwtf
> I doubt you could call this programming but I copied my first program from a
> magazine

We all had to start somewhere. I bet the typos you made while transcribing
from the magazine taught you something about getting your syntax right :)

------
bluedino
I still re-read these every few years for fun. At the time, I had two Pascal
compilers. Borland Turbo Pascal 2.0, and Microsft QuickPascal (not sure what
version).

The code didn't work out of the box in either compiler, someone on a newsgroup
showed me how to convert the asm calls over.

Later on I got an Andre Lamothe book and basically stalled out, trying to
learn C programming and game programming at the same time. Fun stuff.

~~~
alfiedotwtf
Andre's "Tricks of the Windows Game Programming Gurus"... now that brings back
memories. I leant it to a friend who didn't know programming... now he's a
programmer :)

------
dicroce
I learned a lot from Denthor... I even emailed him back in the day and asked
him about the first election after apartheid and if he voted (he was South
African) and he responded and said that he did. Seemed like a great guy.

I also learned a lot from a book called: Flights of Fantasy (taught you how to
build a flight simulator).

------
agentultra
That is basically my origin story too... only I was in a different part of the
world. I even read through that very same text file.

My story differs a bit in that I didn't have many friends and was making my
own games in BASIC on my Amiga 500 before I found BBSs and started my journey
there.

------
pbnjay
These tuts were how I got started too, only a bit later than BBS (I believe I
got them from the hornet archive, which I got a LOT of tutorials from). I
would never have gotten into coding if it hadn't been for all the awesome
demoscene tutorials that got me hooked.

------
gfodor
Wow, haven't thought of these in 20 years. At the time, I was thirteen or so
and remember being stumped by the use of sin and cos (pronounced as you'd
expect a kid to), magical functions that let you draw cubes.

~~~
alfiedotwtf
I took all the trig as rote, but stumbled hard once I hit the matrix maths in
TUT8.TXT

------
wtracy
Since nobody else seems to have advertised it here, there's a demoscene event
in San Jose this March!

[http://nv.scene.org/2015/](http://nv.scene.org/2015/)

~~~
alfiedotwtf
It was always my dream to fly to Helsinki and enter a demo in Assembly:

    
    
      http://www.assembly.org
    

Australia's demoscene is still alive with Flashback (Sydney) and Syntax Party
(Melbourne):

    
    
      http://auscene.org/

------
jgh
BBS demos also got me into programming, but I started with C even though
everyone was using Pascal. I don't recall why. Anyway I never made any BBS
demos haha.

~~~
alfiedotwtf
I'm willing to bet that a majority of demo coders were using Pascal because
they started learning with Denthor (which was Pascal) and didn't know any
other language! Meta.

------
bluesmoon
At my first job interning out of college, I named my box Denthor as a vote of
thanks to the person who showed me the difference between average and mind
blowing.

------
bayesianhorse
I got these tutorials on a CD that came with some kind of Book. I found them
to be quite inspiring.

It's a pity that nobody can figure out what became of Denthor.

~~~
bayesianhorse
Scratch that... looks like somebody found him.

~~~
alfiedotwtf
I think that given that a lot of people have put out the word to find him over
the years and he hasn't cropped up yet, he definitely wants his privacy.
Because of that, I specifically didn't put a call out to him... but by the
sounds of things, he's happy living life. Good on him!

------
rdudek
A bit off topic, I really like your website design. What did you design it
with?

~~~
alfiedotwtf
Ha thanks! I copied it off my Twitter profile, but it's forged with my bare
hands in Vim :)

------
MichaelCrawford
You brought a smile to my weary eyes.

I myself wanted to be a farmer. Everyone has to eat, you see, so I figured I
could charge as much money as I wanted to. I'd be rich!

~~~
alfiedotwtf
Thanks for the comment.

I had the post almost complete over the Christmas break but that C64 post
today made me smile :)

