По просьбам трудящихся mandala, решил продолжить свою эпопею по извращениям на вычислительной технике доступной в СССР в конце 80х годов.
часть 1: Интерпретатор языка для МК-61
часть 2: Многопоточность на ZX Spectrum
До того как я уже осознал, что такое параллельные процессы и тому подобные штуки в более «взрослых» компах, у меня было много этапов познания в работе доступного и практически единственного в пределах досягаемости аппарата который я называл «компьютер», хотя в народе он звался просто игровой приставкой «Sinclair». Но мы то, упоротые извращенцы, знали что это компьютер для извращений на ассемблере, на котором можно было ещё и поиграть.
Первое познание было то - что все вокруг считали меня дауноподобным задротом, который может часами без еды и вообще чего нибудь кроме воздуха, пялился в практически пустой экран, на котором почти ничего не менялось и жмакать руками между ног (у меня табуретка со Спектрумом стояла между ног) коробочку со скрипучими кнопками.
Всё это усугублялось тем, что в качестве монитора был единственный телевизор (хоть уже и цветной) «Славутич».
Особо большим задротом и дауном меня считал мой старший брат (есть пердположение, что он так и до сих пор думает), потому как я отбирал практически единственное развлечение у семьи. При этом делал какую-то непонятную хрень, от которой в его жизни ничего не улучшалось, а только ухудшалось без телека и усугублялось визжанием загружаемых или записываемых программ. Уверен, что он тогда хотел меня убить (предполагаю что и сейчас хочет), но тогда этому препятствовала мама, а сейчас препятсвую я, благодаря большей силе и размерам.
Я всю жизнь интересовался графикой, в любых проявлениях. от рисования летящей отвёртки и рисования стереопар цветными карандашами для просмотра через стереоскоп, до создания 3Д движков.
Потому сев впервые за спектрум я сразу же кинулся писать программы, рисующие всякие точки, прямые, круги и тому подобную хрень.
Люди пробовавшие это делать на встроенном бейсике поймут моё разачарование. Нарисовать что-то более менее симпатичное и движущееся было мягко сказать плохая идея. Особенно доставляло рисование круга, происходящее примерно со скорость как стандартный человек циркулем рисует круг на бумаге.
Имсенно поэтому я без сомнений сразу полез в ассемблер.
К счастью для меня, у моего брата был товарищ, который совершенно не программист, но его отец откуда-то достал, на время может с работы принёс какоую-то советскую поделку IBM-PC XT совместимую с EGA монитором и винтом! на 5 мегабат.
Суть была не в компе, а в том что его где-то отец ещё и книгу достал.
Книга зачётная! Она меня так сказать и вывела в люди. Называлась она: Robert Jourdain «Справочник программиста персональных компьютеров типа IBM PC, XT и AT» 1992 года издания перевода в Москве. Вот прямо сейчас с неё название и набирал.
Вобщем к их компу у меня особо доступа небыло, так как товарищь брата со своим братом постоянно залипали на нём в игры, а вот книгу они мне ПОДАРИЛИ!
Там хоть и не обсуждался ассемблер для ZX, но там были показаны методы оптимизации на ассемблере, алгоритмы на ассемблере.
Да там было практически всё, что нужно чтобы написать почти что угодно.
Конечно же там было не всё. 6514:17 12.05.201614:17 12.05.2016
По программированию графики, не пожалел маминых денег и купил 4х томник Аммерала по компьютерной графике на Си.
И ушёл на пару месяцев в запойчтение с небольшими перерывами пожмакать между ног стоящий спектрум.
Пока я придумывал как бы заюзать приходящие в осознание из книг алгоритмы на спектруме, у меня начали появлятся друзья со спектрумами и даже с 286 машинками.
Один из очень сообразительных парней, с которым мы начали вместе более тщательно и извращённо «жмакать» спектрумы, подкинул мне компиятор бейсика. Точно не помню, вроде это был «Laser Basic» ну не помню.
Из его шикарных возможностей была раз в 10(100?) большая призводительность и то что скомпилированная прога могла быть самостоятельным отдельным продуктом, но небыло вычислений с плавающей точкой (это меня не огорчало).
Я сразу же написал библиотеку гарфических примтивов и прорцедуры для работы с экраном. Помню что моя процедура по рисованию кругов рисовала круги размером на пол экрана штук по 10 в секунду. Рисование точек, линий и просто переброска и заливка байтами экрана тоже начинала воодушевлять. Просто в цикле залить весь экран байтами у меня занимало чуть более секунды.
Для закрепления практики работы с компилятором, написал игру «Colors War» (исходники на бейсике лежат в тетрадке рядом со мной если что). Игру придумал не сам, а просто сделал упрощённый клон игры для ИБМ подглядев у товарища с 286 машинкой.
Суть игры в том, чтобы из противоположных уголов занять наибольшее пространство с учётом рандомно раскиданных цветов по всему полю. игра удалась на славу. динамично и симпатично.