For Your Inspection: Source Code For Photoshop 1.0
gbooch writes "With the permission of Adobe Systems, the Computer History Museum has made available the source code for Photoshop version 1.0.1, comprising about 128,000 lines of code within 179 files, most of which is in Pascal, the remainder in 68000 assembly language. This the kind of code I aspire to write. The Computer History Museum has earlier made available the source code to MacPaint."
I'll just compile and run it to see.
Well, it doesn't seem to show anythALL HAIL STEVE JOBS! STEVE JOBS IS MY MASTER!
Their site has been toast since yesterday and now you turn the /. hose at it? Poor IT guys gonna have a bad day.
... in this code.
503 Service Unavailable
No server is available to handle this request.
At least they still have servers available to tell us that they don't have servers available.
Better known as 318230.
Here, I'll post it here to save you time:
503 Service Unavailable
No server is available to handle this request.
Not sure what language that's in.
Do you have ESP?
This is a cool piece of history, though I wonder how much real functionality was in the original 1.0 version. Were they doing CMYK back then? Anyway, I want to check it out, but I don't anticipate seeing many technical marvels.
Engineering and the Ultimate
Turbo Pascal was pretty much the first decent IDE for Windows AFAIR.
Korma: Good
...and good. I miss those times.
I miss stuff which opened instantly and worked quickly. Where a faster PC actually meant things getting done quicker, rather than an opportunity to shim in another layer of crapware designed by a 3rd party half way across the world to find its way into your ever-less-steady stack of shit.
Windows 95 on a PC from 2000 runs way faster than XP on a 2010 PC, and both are faster than Windows Vista/7/8 on a modern PC. Why don't people make that effort any more? It's not as if using shitty pre-built components saves development time: learning all their quirks and bugs is often more time-consuming than just rewriting from scratch. Is it just that Twenty-First Century Capitalism thing where every useless leech has to take a cut, so it would be Unholy to properly develop in-house and on-shore?
PS 1 is from 1990 and was only available for Mac OS.
Photoshop 1 was only available on a Mac. I remember receiving the first "public beta" (Photoshop 0.9) some time in 1990 or so and it was awesome - jawdroppping awesome...
In any case, you would use MPW (Macintosh Programmer's Workshop) those days, which I think is still one of the best team-development tools. And the language-of-choice (well, in fact, nearly the only choice) for developing on a Mac at those days was Pascal + Assembler.
So, it makes sense that this code is Pascal.
by geeks around the world who think $700+ is a bit much for the latest version when they can hack on 1.0's source code for free.
Does this put the source code into the public domain - and thus now might it be possible to port it to other architectures?
Electronic Music Made Using Linux http://soundcloud.com/polyp
Interestingly this code is supposedly in there. (According to the comments on the page). Somebody should check the Adobe code...
Shouldn't be too much of a stretch since this was written using Free Pascal.
Hopefully the Gimp folks can make some use of this.
Turbo Pascal was also available for the Mac, although it was... rough might be the right word. I remember using it in high school. Many errors (divide by zero was one I remember well) would bomb the system. You learned to save before running your code pretty fast. I can't imagine writing something this complex in it without throwing a few machines across the room along the way.
I browse on +1 so AC's need not respond, I won't see it.
Apple made the choice. Pascal was the standard development language for Lisa and MacOS.
Do you even lift?
These aren't the 'roids you're looking for.
If its either, de-install Visual Studio please.
Non sequitur much?
Would Photoshop CS 6 (or wherever they are these days) still contain code from the 1.0 days?
I don't see anything about Mac Paint (or Adobe or Photoshop) anywhere on that page. And someone modded you up for that?
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
Has anybody run it in a 68k Mac emulator? It would be interesting to see a performance comparison between modern PhotoShop running natively and version 1 running on an emulator.
The world is made by those who show up for the job.
Actually it's pretty close (UCSD dialect) until you get to the OBJECT keyword. Apple made full use of their Memory Manager for Object Pascal, which had a linear address space and supported relocatable objects, while Borland had a horrible memory allocator and was stuck with the 80x86 real-mode memory model and 640k limit. So they implemented "Object Pascal" as some kind of horrible C++ish hack. It was really and truly awful compared to the Object Pascal that Apple had already produced, though I hear they filed down some of the worst warts by the time of Delphi.
Oddly, this code didn't make use of the Pascal UNIT system for its own code, instead using multiple levels of include files, with the main code for a unit in "foo.inc1.p". This was probably done to make it work well with makefiles. Back in the day it took long enough to compile that you really didn't want to re-compile anything you didn't have to, and if you did things the "proper" way, code and headers would be in the same file, causing a lot of unnecessary recompilation.
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
Okay, while we wait for the slag that was the hosts servers to cool and solidify-- why the heck did the paging on the home page change? It used to be going back a "day" would put use unique URL based on the date. So if I reloaded the page a day later, it would still show the same group of articles.
Now it has changed to ?page=1, where 1 means "1 page back from the most recent set of articles". So if I go back a page, then come back later and refresh-- I get a completely different set of articles-- somewhere between where I stopped reading last, and the new ones.
Isn't this a step backwards (no pun intended)?
UTF-8: There and Back Again
I love tapioca!
What would be required to actually build it? I already have a 68k Mac, so the hardware is covered.
"I use a Mac because I'm just better than you are."
Yeah, C++, C#, VB.NET and F# are ALL dying languages. Fucking moron.
F# ? I agree it's not dying, but only because it never lived.
More Twoson than Cupertino
Yup, remember also having that 'Barneyscan' version around the same time that Letraset introduced ColorStudio. Photoshop 'felt' quicker, so allowed more intuitive working (so, the way these things go, who remembers ColorStudio now?).
Was this a college CS assignment? I wonder who made the choice to use Pascal.
plenty of stuff from around that time was written in pascal + asm.
world was created 5 seconds before this post as it is.
503 Service Unavailable No server is available to handle this request..
Server=slag heap
Ever notice that Cobra Commander sounds an awful lot like Star scream?
Ran that sucker on a MacII with 8bit color at SVA's computer lab when it was on the East side 21st street...
Bruce Wands and Burt Monroy were both very excited about this product as it was much more powerful than "Digital Darkroom".
If telephones are outlawed, then only outlaws will have telephones.
Note that Photoshop 1.0 was a one-man app...and Knoll still works on Lightroom.
People today don't realize how mind-blowing Photoshop was back in the day. Nobody in real life did image editing - it was all airbrushing, paste-up, etc.
Anyway, good reading:
http://www.theverge.com/2013/2/13/3959868/photoshop-is-a-city-for-everyone-how-adobe-endlessly-rebuilds-its
Mac Pascal dialects implemented Objects not as pointers but as handles. But they tried to pretend they were still pointers which ended up causing other problems.
Do you even lift?
These aren't the 'roids you're looking for.
The Computer History museum has a quite interesting YouTube channel too.
It is pretty good, but does have bits like lines 81-87 of photoshop.r:
#ifdef Debugging
2048 * 1024,
1024 * 1024
#else
2048 * 1024,
1024 * 1024
#endif
Get me a meat pie floater!
The main reason for this is that the early versions of the Macintosh System was written in Pascal -- hence why you had to deal with tStrings and tChars when writing in *any* language on the Mac. IIRC, there was a slow migration from Pascal to C between 1992 and 1995. Then you had the headache of dealing with both tStrings and cStrings.
I still remember the awesome hack that let you run MPW as a server with remote login... once my SliP connection was established over 1200 baud dialup, I could remotely log in to my Mac and use an MPW terminal from anywhere on the Internet*
*"anywhere on the Internet" being pretty much limited to academic institutions in those days.
Supposedly it's in macpaint...according to the comments section of the story.
Source code on the internet? Not safe from Michael Hardy.
http://youfailit.net/?p=49
http://better-explorer.com/blog/a-word-about-michael-hardy-copycat/
This person likes to take peoples source code, recompile it with minimal changes (usually just taking the author out and putting in his name) and then sell it.
Recently hit the Apple II scene trying to pass off Byte Magazines Solitare Game as his own, asking how to make copyright materials then wanting the person who wrong Lemmings for the Apple IIGS to unprotect it for him. lol.
Anyways, great reading about a loser who profits via others work. But a source code thief and will find Michael Hardy's Photoshopped Photoshop 1.0 coming out soon!
Be seeing you...
A smart programmer. It's a shame that language-wise things have gone so far downhill since then.
Actually, that was Delphi. Turbo Pascal was one of the first IDEs for DOS.
Turbo Pascal rocked. Ignoring all the "it's pascal so it must suck" idiocy being posted, Turbo Pascal changed PC programming. The only compilers besides MASM were too expensive for a college student to touch and slower than Christmas to compile, but TP was $99 and screaming fast. I got a copy and that started a 25 year career in programming, almost exclusively using Borland products and building just about everything you can imagine with them. I get it that Photoshop was first written to run on Apple, but TP was more than just a hobby compiler, and really the best choice at the time for doing any serious work on a PC.
*** *** You're just jealous 'cause the voices talk to me... ***
As long as that serious work fit into tiny memory model. Turbo Pascal didn't support anything else. Turbo Pascal was a toy for people learning to program, serious work was done in Lattice C, and later in MSC (which originally was Lattice C).
Of course, by 1990 PCs were flooded with affordable compilers and Turbo Pascal was gone.
They didn't need the source code to Photoshop 1 to figure out how to do a single window mode, so I guess that counts for something.
I'm afraid that by reposting this code you are violating the terms of the license that you agreed to when you downloaded it. You are essentially sublicensing the code to third parties, which you don't have the right to do.
I've asked the gibhub poster to please take it down. Please tell the others who created mirrors to do likewise.
The Computer History Museum has negotiated for permission to release all kinds of historic source code, including Apple's MacPaint, IBM's APL programming language, and now Adobe's Photoshop. Others are in progress. Each such negotiation is tricky and time-consuming. If we, as a community, demonstrate that we are unwilling to play by the copyright owners' rules, it will kill the prospects of getting other historic source code released.
Let's keep the pipeline flowing.
Thanks,
Len Shustek, Chairman, Computer History Museum
I'm afraid that the community cares more about preservation of these historical items than the copyright owners' rules. The idea that archival copies of historical works is tantamount to unapproved sub-licensing is a completely ridiculous notion and the companies involved will have to eventually come to terms with that for any project on the scale of the Computer History Museum to truly succeed. Historical records cannot be owned and restricted in that manner and still be considered a historical record. Indeed, I feel that the very mission of the Museum includes bringing this level of understanding to those who would otherwise be turned off by it. This is history, not commerce. While it might make some unwilling to release, that is a problem with the angle they're coming at it from, and that needs to be well understood.
Len, the nature of the Internet is that it is a global network. In many parts of the world, people are not bound by the sorts of contracts that they are bound by in the United States. Even in the USA, it is not entirely clear if clickthrough EULAs are legally valid or enforceable. While I understand that you have a dedication to computer history, and that your livelihood is partially at stake as well here, you have to realize that once something's on the internet, it will remain out there despite the wishes of the copyright holder or their agents or licensees.
While this fact may bother you, it doesn't likely bother many other people - certainly not the people who copy and share these materials.
Using the word literally in an ironic manner to provide emphasis is something that has been done for well over a century now. I am aware that the good gatekeepers at the OED are reluctant to include the ironical definition of "literally" into their holy tome, but you can't change the trend of language by the power mere pedantry alone. Even the Oxford folks can not, and have not, stopped the ironic use of the word despite their attempts to ignore it.
It's not a mistake, though. It's an ironic use of a word, and one that has an agreed-upon definition in the ironic sense. People are not using the word "literally" in place of "figuratively" in error, they are doing it intentionally.