Автор Тема: Исходники Photoshop 1.0  (Прочитано 2720 раз)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Исходники Photoshop 1.0
« : Февраль 19, 2013, 11:01:13 am »
Опубликованы исходники первого фотошопа (1989 год примерно). Писан он на паскале и асме. Исходники весьма аккуратные. Пример (фрагмент):
PROGRAM Huffman;

TYPE
PNode = ^TNode;
TNode = RECORD
leaf: BOOLEAN;
code: INTEGER;
entry: INTEGER;
branch: ARRAY [0..1] OF PNode
END;

Str255 = STRING [255];

VAR
id: INTEGER;
root: PNode;
word: Str255;
code: INTEGER;
entry: INTEGER;

PROCEDURE AddCode (node: PNode; code: INTEGER; VAR word: Str255);

VAR
branch: INTEGER;

BEGIN

IF LENGTH (word) = 0 THEN
BEGIN

IF node^.leaf OR (node^.branch [0] <> NIL) OR
(node^.branch [1] <> NIL) THEN
BEGIN
WRITELN ('? Conflict for code ', code:1);
EXIT (PROGRAM)
END;

http://www.linux.org.ru/news/multimedia/8847021
Цитировать
Код опубликован Музеем компьютерной истории с разрешения компании Adobe и свободно доступен для некоммерческого использования. Версия от 1989 года, состоит из 179 файлов, в сумме набирающих примерно 128 тыс. строк кода. ~75% кода - паскаль, остальное ассемблер.

Брать тут: http://computerhistory.org/atchm/photoshop-license-agreement/ (размер архива - 588 Кб)
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Исходники Photoshop 1.0
« Ответ #1 : Февраль 19, 2013, 12:20:54 pm »
Я так понимаю, он был сделан под MacOS?
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Исходники Photoshop 1.0
« Ответ #2 : Февраль 19, 2013, 01:08:40 pm »
Я так понимаю, он был сделан под MacOS?
Точнее даже под System. Скорее всего под System 5 или System 6. Mac OS'ом это стало называться начиная с версии 8. (затем пришел юникс/next step и назвался Mac OS X, а затем и от этого названия отказались).

Изначально фотошопа под винду вообще не было, первая версия под винду была той же версией, что и первая версия под IRIX и Solaris - версия 2.5.
Y = λf.(λx.f (x x)) (λx.f (x x))