If you are going to build Photoshop from the distributed files, you need a Macintosh Object Pascal compiler, its associated libraries, and the appropriate version of the MacApp class library.
I found a web page that explains how to compile the old Photoshop version. It says:Indeed. Note FPC supports -Mmacpas but it may be that not all dependencies can be resolved against anything other than a Macintosh OS. As I understand the first Windows version was written in mspascal/quickpascal which is TP compatible (including bugs!). That would be 16 bit Windows.....QuoteIf you are going to build Photoshop from the distributed files, you need a Macintosh Object Pascal compiler, its associated libraries, and the appropriate version of the MacApp class library.
http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/Entries/2013/3/30_Building_Photoshop.html (http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/Entries/2013/3/30_Building_Photoshop.html)
1. What is advantage of using "Object" rather than "Class"I'm answering from TP/FPC POV, not MacPas. Object is allocated on the stack, class is always on the heap. Object will be freed automatically when the function goes out of scope, class requires either garbage collection or explicit deallocation.
2. What is difference between "Object" and "TObject" ?Object is a reserved word, it's mean to signify that a type is... well... an object. TObject is the root class (or object) of all other defined classes / objects.
3. Was there OOP implementation in the day Photoshop 1.0 being written ?No idea, but the first Object Pascal proposal is from 1982, while Photoshop 1.0 was born in 1990. Note that the proposal was never finalized, so it's unknown whether there's a compiler implemeting it that day.
3.b) if it was, why they were using Object instead of Class ?No idea again, you might want to just read the proposal: http://www.pascal-central.com/OOE-stds.html
4. How can we compile the source code (using cross-compile or whatever) ?Answered above, in short: it's hard to find the dependencies.
5. What the compiler they use to build/compile ?MacPas compiler of that day for sure.
6. Am I right: I think the fpc is not available yet in that day?No, FPC was first started in 1992, when Borland said there will be no TP 8. First public release I believe it was around 1998. Florian should be able to confirm, my first encounter with FPC was at version 1.0.2 around 2000.
Read more: http://wiki.freepascal.org/TObjectthen this too: http://wiki.freepascal.org/Object
MacPas, I found nothing about it except that in fpc there is compiler-compatible-mod {$mode macpas}.1. What is advantage of using "Object" rather than "Class"I'm answering from TP/FPC POV, not MacPas. Object is allocated on the stack, class is always on the heap. Object will be freed automatically when the function goes out of scope, class requires either garbage collection or explicit deallocation.5. What the compiler they use to build/compile ?MacPas compiler of that day for sure.
1. What is advantage of using "Object" rather than "Class"
3.b) if it was, why they were using Object instead of Class ?
Object types are supported for backward compatibility only. Their use is not recommended.
Objects can be declared with fields and methods, similar to Classes, but have no constructors or destructors, and are not allocated.Сarried away by belittling the capabilities of the object type? They can have a constructor and a destructor.
From Delphi docs:
Objects can be declared with fields and methods, similar to Classes, but have no constructors or destructors, and are not allocated.Сarried away by belittling the capabilities of the object type? They can have a constructor and a destructor.
Useless since Mac Pascal "object" is not necessary to object in other modes (including TP/Delphi), as the following program demonstrates: