User Tag List

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

Тема: Sprinter. Второе пришествие

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

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

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дмитрий, берём в пример процедуру получения идентификации блока рамдиска, для начала в трдос:
    Код:
                 ld a,0      ;код рамдиска, в данном случае диск Е
    	ld c,0ceh	; получить идентификатор блока от рамдиска
    	call 3d13h
    как ты думаешь, каким образом трдос это сделает? в трдосе нет функционала работы ни с рам диском (частично) ни с винтом и вапще, есть только редирект на биос:
    Код:
    REDIR_3D13:
    	BIT 7,C
    	JP NZ,EXP_FNS
    	BIT 6,C
    	JP Z,AUTO_283C
    	RES 6,C
    	JP HD_CMD
    ...
    HD_CMD:
    	PUSH AF
    	DI
    	LD A,D_ROM16ON
    	OUT (07Ch),A
    	POP AF
    	RET
    ...
    EXP_FNS:
    	PUSH AF
    	DI
    	XOR A	; D_ROM16OFF
    	OUT (07Ch),A
    	POP AF
    	RET
    в данном случае после выполнения куска HD_CMD, а точнее сразу после OUT (07Ch),A включается кусок биоса (взято из исходника EXP.asz):
    Код:
    EXP_FNS_RET:			; Возврат в TR-DOS
    	PUSH AF
    	LD A,D_ROM16OFF
    	OUT (SYS_PORT_OFF),A
    	JP EXP_FNS		; Вход из TR-DOS
    тут, кажется, комментарии не требуются. Таким образом при выполнении команд биоса через 3d13 мы оказываемся в биосе. Как сделать тоже самое, но в dss:
    Код:
                 ld a,0
    	ld c,0ceh	; получить идентификатор блока от рамдиска
    	rst 8
    вот и всё. у меня это всё работает из dss, но пока в виде раскиданных по отдельности файликам и пока трассирую что и как в эмуле. чуть позже выкачу в тест загрузчик для palsw. если говорить именно про загрузку самой альтеры, то тут возникает вопрос: я обратил внимание, что при переключении на пользовательскую конфу есть установка байта конфигурации (какие железки будут доступны). Байт конфигурации расположен в системной странице FEh, по смещению 0134h или 0138h, на память сходу не вспомню. туда закидывается инфа о конфе, типа наличие ковокса, ау, винта и прочее. поскольку трассировать в трдосе я не могу в эмуле, то приходится шарица на дизасме загрузчика от дума и версий этих загрузчиков я нашёл уже 3 штуки.
    Последний раз редактировалось Sayman; 28.12.2014 в 11:48.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

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

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

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

Похожие темы

  1. Sprinter
    от lvd в разделе Sprinter
    Ответов: 42
    Последнее: 12.07.2015, 20:18
  2. Sprinter resurrection
    от WingLion в разделе Sprinter
    Ответов: 52
    Последнее: 10.01.2009, 00:32
  3. Sprinter или монитор?
    от newart в разделе Sprinter
    Ответов: 1
    Последнее: 03.02.2007, 09:45

Ваши права

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