Важная информация

User Tag List

Показано с 1 по 9 из 9

Тема: Создать +3DOS заголовки к bas-файлу для запуска на esxDOS

  1. #1
    Activist Аватар для nihirash
    Регистрация
    22.05.2005
    Адрес
    г. Санкт-Петербург
    Сообщений
    394
    Записей в дневнике
    20
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    62 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Question Создать +3DOS заголовки к bas-файлу для запуска на esxDOS

    Доброго дня!

    Пытался гуглить, возможно плохо, но не нашел.

    Можно ли чем-нибудь на PC выдать +3DOS заголовок к бейсик-файлу, чтобы тот мог прозрачно грузиться из esxDOS?
    Люблю компьютеры на Z80, не люблю срачи на пустом месте.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Сибирский антропоморфн Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,554
    Спасибо Благодарностей отдано 
    922
    Спасибо Благодарностей получено 
    871
    Поблагодарили
    635 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  4. #3
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,767
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    1,173
    Поблагодарили
    770 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а что мешает сохранить программу из бейсика ?

  5. #4
    Сибирский антропоморфн Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,554
    Спасибо Благодарностей отдано 
    922
    Спасибо Благодарностей получено 
    871
    Поблагодарили
    635 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да. Такой вопрос: а откуда дровишки? откуда файлик без заголовка взялся?
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  6. #5
    Activist Аватар для nihirash
    Регистрация
    22.05.2005
    Адрес
    г. Санкт-Петербург
    Сообщений
    394
    Записей в дневнике
    20
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    62 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Black Cat / Era CG Посмотреть сообщение
    Да. Такой вопрос: а откуда дровишки? откуда файлик без заголовка взялся?

    Вытащил из tap-файла с помощью TapeX. Возможно, что то делаю не так.

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

    Цитата Сообщение от goodboy Посмотреть сообщение
    а что мешает сохранить программу из бейсика ?
    Да вроде ничего, но интересно, может есть какой-нибудь готовый инструмент.
    Люблю компьютеры на Z80, не люблю срачи на пустом месте.

  7. #6
    Сибирский антропоморфн Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,554
    Спасибо Благодарностей отдано 
    922
    Спасибо Благодарностей получено 
    871
    Поблагодарили
    635 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем для начала кусочек теории. На всякий случай, лишней не будет поди.
    Чтоб получить рабочий файлик, по сути нам требуется знать три параметра:
    - Длина (всего) файла в байтах,
    - Номер строки автостарта (если надо),
    - Длина программы без переменных.
    По идее на пц все это можно узнать, просто посмотрев tap-файл в хексе. Вот формат (нас интересует то, что выделено жирным):

    Формат TAP

    Код:
        .TAP-файлы:    -----------
    
    
        Эти файлы содержат блоки данных, сохраненных как бы на ленту. Все
        блоки начинаются с двух байтов, в которых указано сколько байтов за
        ними следует (не считая этих двух байтов). Затем идут сами данные,
        включающие флаговый байт и байт контрольной суммы. Байт контрольной
        суммы получается в результате последовательной операции XOR для всех
        байтов, включая флаговый байт. Например, если вы захотите выгрузить
        пару байтов из ПЗУ командой: SAVE "ROM" CODE 0,2, то получите в
        результате:
    
    
                 |-----Данные, генерируемые Спектрумом--|       |---------|
    
    
           13 00 00 03 52 4f 4d 7x20 02 00 00 00 00 80 f1 04 00 ff f3 af a3
    
    
           ^^^^^...... длина первого блока (19б.=17б.хэдер+флаг+контр.сумма)
                 ^^... флаговый байт (00 для хэдера, ff для блока данных)
                    ^^ первый байт хэдера, указывающий на тип данных
    
    
           имя файла ..^^^^^^^^^^^^^
           информация в хэдере.......^^^^^^^^^^^^^^^^^
           к.с. хэдера.................................^^
           длина второго блока............................^^^^^
           флаговый байт 2-го блока..............................^^
           первые два байта ПЗУ....................................^^^^^
           контрольная сумма первых двух байтов и флагового байта........^^
    
    
    
    
        Эмулятор всегда считывает байты с начала блока. Если загружается
        меньше байтов, чем есть в наличии, то лишние байты пропускаются и
        последний загруженный байт рассматривается как контрольная сумма. Если
        запрашивается на загрузку больше байтов, чем есть в наличии, то
        загружающая процедура прерывается с включением флага,
        свидетельствующего об ошибке ввода с ленты. Обработку ошибки
        производит вызываемая Z80 процедура.
    
    
        Обратите внимание на то, что можно объединять .ТАР-файлы простым
        "пристегиванием" их друг к другу, например так:
    
    
                    COPY /B FILE1.TAP + FILE2.TAP ALL.TAP
    
    
        Для полноты картины я включу сюда же и структуру хэдера. Он всегда
        состоит из 17 байтов:
    
    
            Байт    Длина   Описание
            0       1       Тип файла (0,1,2 или 3)
            1       10      Имя файла (если меньше 10 символов, вставляются
                                       пробелы )
            11      2       Длина блока данных
            13      2       Параметр 1
            15      2       Параметр 2
    
    
        Тип файла 0,1,2,3 соответствует: программе, числовому массиву,
        символьному массиву, блоку кодов. Экранные файлы SCREEN$
        рассматриваются как файлы кодов, начинающиеся в 16384 и имеющие длину
        6912 байтов. Если файл является программой, то параметр-1 содержит
        номер строки автостарта или число, большее, чем 32768, если номер
        строки автостарта не указан. параметр-2 содержит смещение адреса
        программных переменных относительно адреса начала программы. Для блока
        кодов параметр-1 содержит адрес, из которого этот блок выгружался, а
        параметр 2 содержит число 32768. Для файлов данных (массивов) байт,
        расположенный в позиции 14 содержит имя переменной.
    [свернуть]

    Далее идем сюда: http://www.worldofspectrum.org/ZXSpe...pter8pt27.html
    Там видим доку по +3 DOS, а в ней:

    Формат заголовка +3 DOS файла

    Код:
    The format of the header record is as follows:
        Bytes 0...7    - +3DOS signature - 'PLUS3DOS'
        Byte 8        - 1Ah (26) Soft-EOF (end of file)
        Byte 9        - Issue number
        Byte 10        - Version number
        Bytes 11...14    - Length of the file in bytes, 32 bit number,
                    least significant byte in lowest address
        Bytes 15...22    - +3 BASIC header data
        Bytes 23...126    - Reserved (set to 0)  Byte 127    - Checksum (sum of bytes 0...126 modulo 256)
    [свернуть]
    и

    Еще чуть-чуть

    Код:
    +---------------+-------+-------+-------+-------+-------+-------+-------+| BYTE        |   0    |   1    |   2    |   3    |   4    |   5    |   6    |
    +---------------+-------+-------+-------+-------+-------+-------+-------+
    | Program        0    file length    8000h or LINE    offset to prog    |
    | Numeric array        1    file length    xxx    name    xxx    xxx    |
    | Character array   2    file length    xxx    name    xxx    xxx    |
    | CODE or SCREEN$   3    file length    load address    xxx    xxx    |
    +-----------------------------------------------------------------------+
    
    (xxx = doesn't matter)
    [свернуть]
    Этой информации достаточно, чтобы сваять простенькую утилитку.

    Однако, если интересует именно готовое решение, то есть два пути:
    - Простой - поискать что-то подходящее на wos (думаю, там что-то есть),
    - Простой для меня - воспользоваться утилитой, ссылка на которую у меня в подписи. Но это такое себе решение.

    Про второй вариант подробнее.

    Длинный мануал. Achtung! Много букаф

    - Скачиваем утилиту отсюда: http://era-cg.su/steinblume/#downloads в понравившемся виде (должно быть достаточно light-комплекта в zip-архиве, потом удалите),
    - Запускаем сие,
    - Идем в "Опции - Настройки" на вкладку "+3 DOS",
    - Снимаем галочку "Вырезать заголовки...",
    - Ставим галочку "Добавлять заголовки...",
    - Жмем "ОК",
    - Идем в "Файл - Создать",
    - Выбираем слева "Amstrad DSK",
    - Жмем "OK" (что выбрано сверху не важно, так как сам образ нам нужен не будет),
    - Получился пустой +3,
    - Мышью кидаем в него наш "безголовый" файл,
    - Жмем "Да",
    - Кликаем по файлу в образе, на панели станет активной кнопочка "+3",
    - Щелкаем по ней,
    - Откроется редактор заголовков +3 DOS,
    - Там ставим галку "Разрешить редактирование",
    - Выбираем тип "Program" и вводим "Размер без переменных",
    - Жмем "OK", получаем файл с правильным заголовком,
    - Посмотреть, вышло ли правильно, можно, просмотрев файл по F3,
    - Если все нормально, вытягиваем полученный "головастый" файл наружу (в проводник, TC...) мышью,
    - Радуемся (или пишем мне с матами, что ничего не пашет).
    [свернуть]
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  8. #7
    Activist Аватар для nihirash
    Регистрация
    22.05.2005
    Адрес
    г. Санкт-Петербург
    Сообщений
    394
    Записей в дневнике
    20
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    62 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Отлично! Спасибо за столь подробную информацию!
    Люблю компьютеры на Z80, не люблю срачи на пустом месте.

  9. #8
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,767
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    1,173
    Поблагодарили
    770 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Black Cat / Era CG Посмотреть сообщение
    поискать что-то подходящее на wos
    ZXBlockEditor позволяет менять заголовки для tap/dsk/trd/scl
    http://zx-modules.de/

  10. #9
    Сибирский антропоморфн Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,554
    Спасибо Благодарностей отдано 
    922
    Спасибо Благодарностей получено 
    871
    Поблагодарили
    635 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    ZXBlockEditor позволяет менять заголовки для tap/dsk/trd/scl
    http://zx-modules.de/
    Ну вот об этом я и говорил. Он, по-моему, ваще много что умеет.
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Софт для +3DOS
    от Vadim в разделе Софт
    Ответов: 37
    Последнее: 09.07.2020, 01:13
  2. Ответов: 23
    Последнее: 20.07.2018, 21:14
  3. boot ZYX, для +3DOS
    от Vadim в разделе Программирование
    Ответов: 77
    Последнее: 23.11.2017, 13:37
  4. Утилиты для +3DOS
    от Addison в разделе Утилиты
    Ответов: 6
    Последнее: 15.05.2015, 22:59

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •