User Tag List

Показано с 1 по 10 из 20

Тема: Автозапуск программ ОС СР/М на Корвете

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    06.04.2013
    Адрес
    г. Могилев, Беларусь
    Сообщений
    254
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    110
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    28 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serebriakov Посмотреть сообщение
    К сожалению, мне с ходу не удалось найти где в Корветном CP/M 2.2 биосе находится этот флаг.
    Вот образ: VADSOFT_GAMES11_COLD+WARM_AUTOSTART.zip, где флаг для «теплого старта» точно установлен - после выхода из программ снова стартует автозапуск.
    Я ошибся, в образе от VadSoft флага «теплого старта» для меню запуска игр (KTL5.COM) нет. Сработает автозапуск после выхода из программы или не сработает зависит только от самой программы - видимо есть разные способы завершить свою работу. Например, при выходе из Proffer Commander (PROF.COM) - снова запускается строка из автозапуска (даже если это не сам командер, а что-то другое), т.е. срабатывает «холодный старт» с автозапуском. Тоже самое и с меню для игр от VadSoft (KTL5.COM) - после выхода снова выполняется строка из автозапуска. А вот Клад (KLAD1.COM) всегда выбрасывает строго в командную строку A> , как при «теплом старте» без флага в BIOS CP/M (бита режима).

    Так же попробовал заставить Клад делать «холодный старт» принудительно вместо «теплого старта» - заменил в BIOS CP/M образа дискеты второй jmp на первый:
    Цитата Сообщение от Serebriakov Посмотреть сообщение
    Первые 6 байт - две точки входа (две jmp инструкции). Первая точка входа - это «холодный старт», которая будет выполнять любую команду в буфере команд. Вторая точка входа - «теплый старт» - она будет игнорировать любую команду, предварительно инициализированную в буфере.
    но не помогло. Все-равно вываливается в A>, как при «теплом старте» без флага в BIOS CP/M (бита режима).


    Ну и на последок поэкспериментировал со стандартными файлами автозапуска в CP/M-80 ($$$.SUB) и в МикроДОС (INITIAL.SUB). А так же с утилитой SUBMIT (SUBMIT.COM, SUBM.COM). Оказалось все эти способы запуска командных файлов ведут себя по разному и требуют немного разный формат файлов. С форматом запуска утилиты-компаньона XSUB (XSUB.СOM) для SUBMIT с ходу разобраться не удалось - в образах не нашлось примера вызова XSUB, но нашлась небольшая дока - размещу в конце поста. Остальные форматы расписал ниже.

    Итак, вот что удалось выяснить методом проб и ошибок:

    В CP/M-80 автоматически запускается командный файл $$$.SUB, при его наличие на дискете.
    После выполнения этот файл $$$.SUB автоматически удаляется.
    В файл можно поместить только одну команду.
    Формат файла:
    1 байт - любой символ кроме NULL - 00h. Например, пробел - 20h. Утилиты SUBMIT при создании файла $$$.SUB в автоматическом режиме, на место этого пробела обычно ставят символ с кодом - 05h, но это не критично, символ может быть любой кроме NULL.
    Далее со 2-го байта пишем нашу команду для автозапуска, например KLAD1.
    Символ конца строки или конца файла не требуется.

    Т.е. формат командного файла $$$.SUB выходит следующий


    Код:
    ПРОБЕЛKLAD1


    [свернуть]


    В МикроДОС автоматически запускается командный файл INITIAL.SUB, при его наличие на дискете.
    После выполнения этот файл INITIAL.SUB НЕ удаляется.
    В файл можно поместить несколько команд.
    Для этого с самого первого байта пишем КОМАНДУ1.
    Далее символ перехода на новую строку: либо только один возврат каретки (CR) с кодом 0Dh, либо возврат каретки+подача строки (CR+LF) с кодами 0Dh+0Ah.
    Далее пишем КОМАНДУ2 и так же символ перехода на новую строку.
    Символ конца файла не требуется.

    Т.е. формат командного файла INITIAL.SUB выходит следующий

    Код:
    KLAD1CR
    KLAD2CR


    [свернуть]


    Командный файл *.SUB запускается с помощью утилиты SUBMIT (SUBMIT.COM, SUBM.COM) командой: SUBMIT ИМЯ
    Например: SUBMIT 123.SUB
    После выполнения запускаемый SUB-файл НЕ удаляется.
    В файл можно поместить несколько команд.
    Для этого с самого первого байта пишем КОМАНДУ1.
    Далее символ перехода на новую строку: либо только один возврат каретки (CR) с кодом 0Dh, либо возврат каретки+подача строки (CR+LF) с кодами 0Dh+0Ah.
    Далее пишем КОМАНДУ2 и так же символ перехода на новую строку.
    После крайнего символа перехода на новую строку ОБЯЗАТЕЛЬНО ставим символ конца текстовых файлов или конца вводимых с консоли данных в CP/M (SUBSTITUTE) с кодом 1Ah .
    Без символа конца файла 1Ah командный файл *.SUB не выполнится, а SUBMIT.COM просто вернет управление в командную строку.

    Т.е. формат командного файла *.SUB выходит следующий

    Код:
    KLAD1CRCF
    KLAD2CRCF
    SUB


    [свернуть]
    При запуске SUB-файла через SUBMIT.COM, его содержимое автоматически копируется в $$$.SUB, что позволяет выполнить до конца список команд, например после спонтанной перезагрузки.


    А вот добавить SUBM.COM или SUBMIT.COM в автозапуск BIOSa CP/M через HEX, чтобы получить аналог AUTOEXEC.BAT из MS-DOS мне не удалось. Сама утилита SUBMIT запускается, но параметр с именем командного SUB-файла записанный дальше ни через пробел (20h) ни через NULL (00h) не опознает. Так же пробовал добавлять после имени SUB-файла в разных сочетаниях символы конца ввода SUBSTITUTE - 1Ah, символы каретки CR - 0Dh, подачи строки LF - 0Ah - все равно не стартует с разными сообщениями. Если у кого получится - пишите.

    Образы с настроенными автозапусками для экспериментов: KORVET-KDI-AUTOSTART-TESTS.7z


    Ну и немного информации по SUBMIT.COM и её компаньону XSUB.COM из официальной доки:
    Код:
    2.3  SUBMIT - запуск на выполнение командного файла
    ---------------------------------------------------
    
    Параметры запуска:
    
    		   SUBMIT filename a b c ...
    	Запуск  на  выполнение  командного  файла "filename" (с
    расширением  ".SUB")  с  предварительной   заменой   в   тексте
    параметров:
                      "$1" - значением "a"
                      "$2" - значением "b"
                      "$3" - значением "c" и т.д.
    
    
    2.4  XSUB - расширение программы "SUBMIT"
    -----------------------------------------
    
    	Эта  команда  размещается в командных файлах (с расшире
    нием ".SUB") для передачи команд и  данных  другим  программам,
    которые    запущены    на   выполнение   программой   "SUBMIT".
    Самостоятельно эта команда не используется.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	001-SSS.SUB.png 
Просмотров:	707 
Размер:	10.7 Кб 
ID:	75490   Нажмите на изображение для увеличения. 

Название:	002-INITIAL.SUB.png 
Просмотров:	750 
Размер:	13.3 Кб 
ID:	75491   Нажмите на изображение для увеличения. 

Название:	003-123.SUB.png 
Просмотров:	790 
Размер:	14.3 Кб 
ID:	75492   Нажмите на изображение для увеличения. 

Название:	004-SSS.SUB.jpg 
Просмотров:	707 
Размер:	23.5 Кб 
ID:	75493   Нажмите на изображение для увеличения. 

Название:	005-INITIAL.SUB.jpg 
Просмотров:	743 
Размер:	22.9 Кб 
ID:	75494  

    Нажмите на изображение для увеличения. 

Название:	006-INITIAL.SUB.jpg 
Просмотров:	722 
Размер:	21.3 Кб 
ID:	75495  
    Последний раз редактировалось Serebriakov; 28.05.2021 в 07:58.

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

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

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

Похожие темы

  1. BASIC на Корвете
    от Arix в разделе Корвет
    Ответов: 82
    Последнее: 16.10.2025, 10:08
  2. Ответов: 220
    Последнее: 23.05.2023, 08:09
  3. Ответов: 33
    Последнее: 05.12.2018, 09:00
  4. автозапуск .SCL в Spin & Spectaculator
    от ultra в разделе Эмуляторы
    Ответов: 0
    Последнее: 10.02.2008, 06:07

Ваши права

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