1 Отредактировано Sertik (07-04-2025 11:59)

Тема: Apple Assembly Line

Американский программист вероятно с английскими корнями Bob Sander Cederlof, автор S-C Disassambler и журнала Apple Assembly Line. C 1980 г. издавал журнал по ассемблеру 6502 и постоянно писал программы на ассемблере для Apple II и последующих машин.

Самостоятельно дизассемблировал код DOS 3.3 и Basic AppleSoft и подробно прокомментировал их.

В частности много занимался темой расширения возможностей Basic AppleSoft через амперсанд (&) и написал много подпрограмм для &. Почему я не знал этого человека раньше ?
Легендарная личность.

Его архив можно видеть здесь https://www.txbobsc.com/

Часть архива, посвящена Apple Assembly Line https://www.txbobsc.com/aal/index.html
Тем, кто серьезно интересуется ассемблером 6502, Бейсиком и ДОС очень советую изучить.

2 Отредактировано Voldemar0 (05-03-2025 09:21)

Re: Apple Assembly Line

Наш хламовник с бейсиками, конечно, было бы полезно привести к более-менее сортированному виду.
Я был бы не против иметь исходники хоть какой нибудь версии агатовского бейсика с хорошими комментариями, хоть на русском хоть на английском.

Это был бы первый этап, который бы уже позволил взять, например, какие нибудь две версии бейсика и, просмотрев таблицу побайтовых различий, сразу понять - на что эти различия влияют.

Потом ещё выбрать наименее забагованные бинарные версии и привести к ним исходники (или наоборот - найти наименее забагованные исходники и скомпилировать бинарники из них).

Чтобы получить какую нибудь гарантированно правильную версию с исправленными багами, которые постепенно набираются на нашем форуме.

Я больше с Бейсик-60 работал, чем c ИКП,  и точно знаю, что у него разные глюки есть. Например, нередко проявляющийся глюк, который на реальной машине выглядел по разному, но в эмуле быстро удалось отследить, что когда он возникает, некий кусок кода шарится по памяти, пока не вылетит за пределы ОЗУ и не начнёт щёлкать регистрами C040, включая таймер. Так как обработчик таймера не задан, дальше происходит любой треш, часто оканчивающийся бесконечной перезаписью аппаратного стека. И, как правило, из такого состояния УПР-СБР уже не может вывести. Но я не знаю ни что это за код ни почему он выходит за пределы ОЗУ.

===

И ещё интересное: например, если знать структуры хранения переменных можно было бы прицепить какой-нибудь отладочный монитор для отдельной переменной или для всех, какие сейчас есть в памяти.

3 Отредактировано Sertik (07-04-2025 12:01)

Re: Apple Assembly Line

Я бы тоже "не против" иметь прокомментированный исходник Бейсика для Агата. Тем более, что я гонялся за ним с 1990 по 1995 гг., когда нужен был и так и не нашёл ... Не нашли его и до сих пор.
Сейчас я занимаюсь тем, что выуживаю из архива Седерлофа точки входа в подпрограммы Basic AppleSoft, нахожу аналогичные в Бейсик Агат и составляю таблицу. Эту работу доведу до конца и выложу. Но сваять исходник Бейсика Агата не берусь. Хотя это уже имеет лишь историческое значение - будет не так сложно. Был бы дизассемблированный код Бейсика Агата - сравнить его с AppleSoft Basic и перенести комментарии. Тут и вылезут куски несоответствия, которые уже внесли наши программисты типа Кривцова ...
С современными инструментами это сделать не так трудно ...

4 Отредактировано Sertik (07-04-2025 12:01)

Re: Apple Assembly Line

И ещё интересное: например, если знать структуры хранения переменных можно было бы прицепить какой-нибудь отладочный монитор для отдельной переменной или для всех, какие сейчас есть в памяти.

Это вообще не сложно сделать из самого Бейсика с помощью его же подпрограмм. Можно перебрать все (или по имени) переменные, вывести на экран их имена, значения, локализацию в памяти и т.д... Делается несколькими строками на Ассемблере. В Эппле так делали, потом покажу как ...

Вам может легко помочь вот эта заметка Седерлофа в его журнале за март 1983 г.

All About PTRGET & GETARYPT https://www.txbobsc.com/aal/1983/aal8303.html#a1

В ней подробно разобрано где и как хранятся переменные и массивы программы Basic AppleSoft и как их достать.
Совсем не трудно найти PTRGET и GATARYPT в Бейсике Агата ...

А тут приведен полный листинг программы сканирования переменных. Она вообще будет работать на любом Бейсике Apple и Агата, так как не обращается к их подпрограммам, а всё вычисляет сама, единственно Вам придется заменить адреса подпрограмм монитора (всего 4 адреса), чтобы она заработала в Бейсиках Агата. Вешается на &

VARIABLE CROSS REFERENCEFOR APPLESOFT PROGRAMS
https://www.txbobsc.com/aal/1983/aal8310.html#a2

5 Отредактировано Sertik (05-03-2025 12:16)

Re: Apple Assembly Line

Общий смысл тут такой: как всегда у иностранцев полный порядок - цель, задачи, разработка, подробная документация - всё для того, чтобы легко продолжить дальше.
У нас ничего - ни четкой цели, ни порядка, ни какой (почти) или совсем убогая зато "по ГОСТу" документация - всё для того чтобы никто из нормальных людей, ценящих время своей жизни и деньги не мог ничего продолжить ...

Кто в этом виноват ? Это очень длинный вопрос. Но опять же характер и деньги. Когда у них программисты могли в 70е-80е спокойно работать, у нас именно в это время с учётом ещё нашего отставания на 10-20 лет, многие программисты (которых и так были ещё единицы) ушли торговать в Перестройку на рынки ...

Сейчас в меня полетят грязные тряпки и рассуждения о том, что у нас "свой собственный путь", зато мы русские и т.д...

Я тоже в это верил (и до сих пор верю), сам этот путь прошёл, потратя кучу времени не известно на что, так что знаю о чём пишу на собственной шкуре, но продолжаю наш путь ...

6 Отредактировано Voldemar0 (05-03-2025 14:25)

Re: Apple Assembly Line

Тапков не будет, потому что для этого надо будет менять раздел, топик, а заодно и форум :)
Да и вопрос очень обширный.
Мне же интереснее обсуждать то, что не обсуждают больше нигде.


> Это вообще не сложно сделать из самого Бейсика с помощью его же подпрограмм.

Дело не в том, чтобы сделать это сейчас.
Дело в том, чтобы иметь достаточно комментариев/информации, чтобы было очевидно, как это или нечто подобное сделать тогда, когда понадобится.


> Хотя это уже имеет лишь историческое значение - будет не так сложно.

Ценность этого действия может быть совсем не только исторической:

1) Хобби - это переключение от других дел, вид отдыха и сам результат может быть вторичен. Мне доставляет удовольствие просто копаться в этих текстах, ассемблере и устройстве программ.

2) Иногда что-то, подсмотренное в старом софте, может натолкнуть на решение задачи в нынешней реальности.
Структура программы, структура электронной схемы...

3) Иногда глубокий уход в какое -то хобби может расширить круг общения, а это, в свою очередь, может открыть и новые горизонты в жизни.

7

Re: Apple Assembly Line

Со всем согласен ...