----------------------------------------------------------------
Итак, на дворе март 2024 года, а декомпилятор к ASM был написан
в 94-95 годах. Знатно тогда мы с Игоряном Зелененым (Phantom
LTD) потрудились, не спав ночами, когда кодили это чудо!
В период моей службы в армии, конечно же от не хрен делать, мной
был собран редактор ASM 2.0, в который я внедрил декомпиляцию
трека. Кто бы мог подумать, что там будут глюки
Итак, в районе 4-го марта 2024 я, испытывая чувство ностальгии
решил запустить редактор и поюзать декомпилятор. Треки я
предварительно подготовил Puhser'ом, ибо для подгрузки их в ASM,
надо чтоб был плеер.
И вот, загрузив трек Turtles от Лёхи Титова (Al Heather) я слышу
глюк! Проанализировав трек, я понял, что была использована
команда HLD SAMPLE, и при декомпиляции теряются данные о номере
сэмпла и имиджа. Три дня возился, но исправил сей досадный
трабл.
Внешний декомпилер не переносит LOOP, не работает правильное
зацикливание трека. Это всё потому, что IMPORT в TR-DOS формате
работает на версии формата музыки от ASM 0.12, а там не было
лупа.
Другого способа загрузить музыку в редактор через TR-DOS - нет!
#01C2 - длина одного сэмпла в памяти. Всего их 32. С адреса
#C000 - #3840
#003c - длина одного имиджа в памяти. Всего их 32. С адреса
#F880 - #0780
#0400 - длина одного паттерна. Всего их 32 по 16 штук в
странице.
#0064 - позиций (100)
! захуярить селектор файлов?
+ некорректно работает курсор в редакторе позиций
+ некорректно играет огибающая.
+ нет вывода каталога диска
+ загрузка музыки сама определяет тип и версию редактора,
производя декомпиляцию трека. Так же сама загружает модули в
пяти файловом формате ASM 0.12.
такие модули были в самой первой версии редактора, и в таком
формате выгружал декомпилированные треки The Pusher 4 и 5
версий.
+ надо сделать, чтоб загрузка треков сама перебирала регистр
имени файла, т.к. ASM вводит только большие символы, и хрен
загрузишь трек с именем в нижнем регистре.
+ подумать над поиском дубликатов имён в каталоге диска (копии в
памяти) с возможной переименовкой, чтоб дать шанс грузить все
файлы.
+ селектор имени файла в каталоге. Пока только показывает, надо
вводить имя вручную, что несомненно бесит.
+ после загрузки трека и выход в основной экран не показывает
данные LOOP, DELAY. Надо обновить вывод.
+ при загрузке файлов SAMPLES/IMAGES что там с таблицей адресов
смещение до них? По-моему, там пиздёшь!
+ необходимо добавить доработку имени трека по схеме
Бульба/Химик, благодаря которой, данные об авторе переносятся в
трек, а не в плеер.
09.03.2024
1. скомпилил диск с декомпелированными треками, вдруг кому будет
интересно послушать.
На диске есть оригинальный ASMv1.12, и он имеет штатный баг - не
работает дисковод B. Не может грузить с него по команде IMPORT.
Другая версия ASM1.12k — это компиляция от KVA/E-Mage. В ней с
диском нет проблем, но бордюр чёрный.
ASM 2.0 - полностью рабочий вариант редактора, со встроенным
декомпилятором. На диске есть хелп к нему.
24.03.24 - Победил глюк с некорректной работой огибающей. Неделю
я его не мог локализовать, сука.
Сегодня с Саней Сандровским подошли крайне близко к месту
генерации трабла, и вот, победа за нами! Глюк жёстко отпизжен!
25.03.24 - накодил алгоритм загрузки файла с диска с именем в
любом регистре, несмотря на то что ввод имени работает только в
верхнем регистре!
26.03.24 - исправил глюк с редактором позиций, курсор убегал за
границы, и всё глючило
Сделал показ каталога диска, и по клавише X переключение
страниц каталога, ну и кнопочка есть NEXT|PREV.
Сандровский вчера в пьяном видеочате кинул предъяву, что мой
алгоритм загрузки файлов с перебором регистров застрянет, если
на диске есть два файла, по сути, с одинаковым именем, но разным
регистром, т.е. TEST.C и test.C - для ASM это одно и тоже. Он
как бэ прав. Надо подумать.
27.03.24 - встроил маску каталога диска. Пока отображает все
файлы C и за одно T, типа кодовые файлы и один файл от 5-ти
файлового формата ASM 0.XX нашел несколько треков от версии ASM
ниже 0.12. Да, и такое есть. Они имеют крайне отличающийся
формат данных, и пока их импорт я не сделал. Может и не сделаю.
28.03.24 - написал селектор режима загрузки, ну там
SONG|PATTERNS|SAMPLE|IMAGE и так далее. Ничего пока не работает,
только переключалка появилась.
Сегодня мало кодил, что-то череп побаливает. Возможно, вчера
было корявое крафтовое пиво, ибо отмечал свой проф. праздник 27
марта, день ВВ МВД РФ. Кстати!
Именно в армии я накодил ASM 2.0 в которую был встроен
декомпилер. Прикольно.
29.03.24 - опять внёс коррективы в загрузку по имени. При выводе
каталога все спецсимволы заменялись на пробелы, а при попытке
загрузить файл - нет, поэтому файлы не находились. В общем все
огрехи вводилки символов в ASM исправлены за счет корректировки
каталога диска в памяти, на самом диске ничего не меняется.
Выкинул окно "Exit", которое хрен знает зачем нужно. Не, ну
если у вас компьютер за углом, и до него далеко идти, то да, у
вас проблемка

Сделал обработку фильтра каталога. Теперь переключает
отображение нужных категорий данных, и соответственно сделана
загрузка этих данных.
ALL CODE - выводит все файлы с расширением C, но т.к. это
основной рабочий режим, то тут за одно отображаются файлы с
расширением T, как вариант возможного файла от ASM в 5ти
файловом формате.
MODULES - покажет только файлы с расширением Т, как основной
файл трека.
PATTERNS - покажет файлы с расширением 1, как часть трека.
SAMPLES - ну файлы S

IMAGES - файлы с типом I, имиджи же
02.04.24 - прикрутил компилятор. Используется оригинальный, а
после него проходит мой алгоритм удаления дубликатов данных.
Трек может весьма прилично "похудеть".
Сандровский в это время работает над дизасмом оригинального
плеера мелодии, надо с ним кое-что пошаманить.
18.04.24
1. Сегодня весь день занимался расширением рабочего поля
редактора. Раньше было 7 строк, теперь их стало 19.
Не исключаю, что где-то есть глюки из-за этого, но пока не
встретил. Данная доработка повела по пезде весь редактор
инструментов, ну точнее он работает, а инфа под ним теперь
кривая. А может стоит и редактор инструментов расширить, чё
тупить?
19.04.24
1. Переделал работу с инструментами под новый "вместительный"
принцип вывода данных. Теперь 19 строк и тут.
2. При выборе квантизации (QUANT=DELAY) сделал возможность
крутить циферки по кругу, а не от 3х до 50ти.
22.04.2024
1. Сделал мигающий курсор при вводе текстовых данных, типа имени
файла и названия музыки.
04.05.2024
! ошибка в копировании сэмплов и имиджей. При копировании,
например сэмпла 3 в 31й вроде бы всё норм, но скопировав тот же
3й следом в 30й, в 31м сокращается длина сэмпла на 1, тоже самое
в имиджах.
12.05.2024
1. Праздники майские, и я нихера не делал.
15.05.24
1. Разобрался с маской шума в столбике ADD NOISE в редакторе.
Сначала был уверен, что там ошибка и маска не верно
обрабатывается, а после нескольких экспериментов понял, что
ошибка не в коде, а в описании Сендетского, и микшер управляется
иначе. В общем там восемь значений от 0 до 7, и вот как оно
управляет шумом:
(+ есть добавление шума в канал, - нет добавления)
0: A+ B+ C+ (добавляем во все каналы)
1: A- B+ C+ (блокируем А)
2: A+ B- C+ (блокируем В)
3: A- B- C+ (только C! вот тут начинается расхождение, ибо в
мануале написано, что запрещается шум в канале C, но играет в
других!)
4: A+ B+ C- (блокируем C)
5: A- B+ C- (только B)
6: A+ B- C- (только А)
7: A- B- C- (не добавляем)
05.06.24
1. Месяц почти тупил. Ничего не кодил. Отдыхал, наверное.
Сегодня полез в исходник компилятора, и немного его доработал.
Ничего не поменялось в модуле, я лишь убрал лишний код, и сделал
оптимизацию. По сути - причесал малость.
После основного компилятора ASM, проходит мой алгоритм, который
убирает дубликаты каналов, меняя лишь данные в таблице смещений
на существующую копию.
Благодаря такой обработке, мы получаем существенное сокращение
длины модуля. Ну я писал об этом, по-моему, в IzhNews, такая
доработка была и в ASM 2.0 и в The Pusher.
Ковыряясь в коде компилятора, я хотел внедрить этот алгоритм в
корневой процесс, но увы, не получилось. Все эти смещения на
каналы в паттернах появляются лишь после компиляции, а в самом
рабочем формате трека такого деления нет, и, следовательно,
разделить паттерны на каналы до компиляции нет возможности. Ну в
теории есть, но оно того не стоит
28.06.24
1. Запустил, собрал, работает. Довольный пошел дальше вату
катать
19.08.24
1. Сделал дисковое меню в инструментах. Теперь можно выгружать и
загружать каждый сэмпл или имидж отдельно. Вызывается из
редактора инструмента.
Название инструмента передается сразу как имя файла, ну и
наоборот.
2. Сделал в основном дисковом меню выгрузку всех сэмплов и
имиджей.
3. Доработал выводилку файлов, теперь она обрабатывает 3х
символьные свои же расширения
20.08.24
1. Загрузка/Выгрузка всех инструментов сохраняет их имена!
2. Введена фильтрация трехсимвольных расширений. Все рабочие
файлы ASM имеют свои расширения. Поддержка снепшота трека с
прошлых редакций с типом Z - не поддерживается!
Требуется переименовать файл в тип ZxZ.
3. Добавлена проверка на существование файла перед записью. Если
такой файл есть, выводится сообщение и операция прерывается.
Расширения файлов:
SAM - набор всех сэмплов трека. Последний сектор данных - имена.
8х32 bytes
IMS - набор всех имиджей трека. Последний сектор данных - имена.
8х32 bytes
SMP - сэмпл
IMG - имидж
ZxZ - Модуль ASM 1.13. Ну это как бэ снэпшот всех нужных страниц
памяти.
1,2,S,I,T - воспринимаются, как составные файлы в формате ASM
x.xx, которые грузились в оригинале через опцию IMPORT ASM 0.12.
В таком формате были треки первой известной версии ASM 0.12, а
также такие файлы делал The Pusher начиная с 4й версии при
декомпиляции ASM треков. Только так можно было загрузить треки в
сам редактор.
21.08.24
1. Все же накодил селектор файлов. Теперь нет необходимости
писать имя загружаемого файла, а можно его выбрать курсором
прямо по списку. Первый клик - копирует имя, аналог того, что вы
его ввели вручную, второй клик - выполняет команду LOAD на
выбранном файле.
22.08.24
1. Воткнул обратно часики, хотя Костя ZX-System сказал, что это
полнейшая ебанина. Кроме того, прикрутил RTC SMUC, и теперь часы
показывают реальное время, если конечно в вашей железке есть
доработка, ну или включена опция в эмуляторе. Долгое время не
мог заставить часы работать, а оказалось, что RTC в режиме
архитектуры PROFI не работают! Пришлось переключить эмуляцию на
PENTAGON 1024, и радоваться циферкам в часах

Честно скажу,
обработчик стырил из Quick Commander, и спасибо автору за код!
26.08.24
1. Провел массу тестов. Лазил туда-сюда, клацал кнопки там-сям.
Вроде глюки не замечены. Собираю пререлиз для тестинга.
15.09.24
1. Товарищ Sandrowski провёл тестирование, и нашел несколько
багов, а также предложил несколько доработок.
2. Теперь не обнуляется поле ввода имени файла или название
трека. Раньше всегда забивалось пробелами. Малость неудобно, ибо
в вводилке не предусмотрено управление курсором, но как уж есть.
3. В сборке случайно оказался отключен алгоритм копирования
данных для команды UNDO. Стёр канал и хрен вернешь! Сейчас
поправил. Кстати, в ASM это реализовано как-то коряво, и вернуть
можно только здесь и сейчас, т.е. если стёр канал и включил
воспроизведение – всё, данные уже не вернуть. Надо проверить
код, возможно это у меня руки из жопы.
4. Был трабл с выходом из главного экрана редактора. Ну как бы
выход был отключен, но комбинация клавиш сбивала курсор с
истинного пути.
5. Внёс небольшие коррективы в обработку ошибок диска.
[свернуть]