I just uploaded
a new, corrected and expanded PDF ebook edition of
FreePascal from Square One to my website. It's free,
and (remarkably) it's closing in on completion. It's laid out for
the A4 paper size, largely because there's so much Pascal activity
outside the US. You can read it on a screen, or else print it to
paper to put in a binder. It's currently at 294 pages, and when
complete I hope to keep it under 325 pages, since that's a
whole lot of paper to print, punch, and bind.
Still to be covered are the standard string functions, locality
and scope, and simple file/printer I/O. That's not a lot of
material, and some of it has already been rewritten and edited.
For those who haven't heard of it before, let me describe the
project: I've taken my 1993 book Borland Pascal 7 from Square
One and heavily rewritten parts of it for FreePascal.
Borland Pascal 7 from Square One was the fourth and last
edition of my very first technical book, Complete Turbo
Pascal, published in May, 1985. That title, by the way, was
forced on me by the (now extinct) publisher. Its original
manuscript title was Turbo Pascal from Square One. The
four editions taken together were in print for almost ten years and
sold about 125,000 copies back in the 80s and early 90s.
The book's mission is to be what Assembly Language Step By
Step is to assembly language: An absolute beginner's tutorial
on programming in Pascal. This includes people who have not yet
learned what programming is and have never written a line of code
in their lives. I start by explaining the ideas of programming, and
move from there to Pascal. FreePascal is my compiler of choice,
largely because it's free, but even more because it comes with the
Lazarus IDE, which contains a superb GUI builder very similar to
the one present in Delphi. FreePascal from Square One
doesn't cover Lazarus beyond installing it and using the code
editor. Specifically, it doesn't cover the GUI builder or Windows
programming generally. The example programs all run in the console
window.
More than half of the original book explains things that no
longer apply: DOS programming, overlays, the Borland Graphics
Interface, tinkering the interrupt vector table, and so on. All of
that is gone. I've made a decision to stop just before OOP, and
will begin a Lazarus book with a thorough explanation of OOP and
software components. I'm also leaving out pointers, since the topic
is heavily intertwingled (to use a wonderful Ted Nelsonism) with
OOP.
I intend to keep writing books of new material about Lazarus as
time allows, and will sell them as PDF ebooks and spiral-bound POD
paperbacks. No timetable; I'm trying to write SFF novels mostly,
and will work on Lazarus projects as time allows. We've spent the
last couple of years working on our Scottsdale house, but that's
largely finished, and I expect a lot more free time in the next few
years. So stay tuned. I may do one more "unfinished" upload, but
after that I expect to put the wraps on it.