PDA

Просмотр полной версии : XAS. Формат исходников



Black Cat / Era CG
17.07.2020, 11:55
Добрый день.
Понадобилось тут поковырять исходники в формате асма XAS.
В принципе все более-менее ясно. Там токены, все дела. Не совсем только понял, как определить начало самого исходника и его конец. Вроде бы должны быть какие-то маркеры. Никто не в курсе случайно?

Barmaley_m
18.07.2020, 22:00
Когда-то я делал конвертор XAS->TXT для целей преобразования исходников XAS в формат ассемблера M80 для CP/M. Выкладываю исходники (компилируются под CP/M ассемблером M80). Надеюсь, разберёшься. Сам я уже давно забыл, что там и как, но могу поразбираться, уточнить. Если будут вопросы - пиши.

Могу отдельно выложить скомпилированный проект конвертора. Он работает на 128К и уверенно конвертирует исходники XAS в текстовый формат. Одно но: там драйвер клавиатуры "Орель БК-08", некоторые символы, такие, как точка и запятая, ввести под обычным эмулятором не получится. Но, думаю, без них можно обойтись для целей запуска и конвертации исходников.

Black Cat / Era CG
18.07.2020, 22:15
Спасибо. Там все просто отловить не могу только окончание текста.

- - - Добавлено - - -

https://pic.maxiol.com/images2/1595099654.2989615885.screenshot2.png
Вот так. Показывает примерно.

Barmaley_m
19.07.2020, 15:39
Ну вот посмотри мои исходники. Конкретно надо смотреть файл CNVEXE.MAC, по метке CNVXAS начинается конверсия всего файла.

Глянул бегло. Получается, что первая часть файла содержит комментарий фиксированной длины. Потом идут строки. Строки могут заканчиваться в определённых местах следующими символами:

0DH
09H
0CH

Если же после конца строки идёт байт 00H - то это конец файла.

У меня там довольно накрученная логика, к сожалению. Уж не знаю, почему. То ли там действительно куча краевых случаев, то ли я в те времена так плохо программировал. Так или иначе, алгоритм работает; на всех исходниках, которые я им конвертировал, сбоев не было.