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

User Tag List

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

Тема: Определение номера дисковода

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

    По умолчанию Определение номера дисковода

    Решил посоветоваться:
    как я понял в переменной TRDOS #5D16, хранится копия регистра #FF
    два младших бита указывают на номер дисковода
    начало лоадера получается примерно такое:

    A,(#5D16)
    AND #03
    OR #3C
    (LETTER),A

    LD A,D
    OR A
    RRA
    LD C,A
    LD A,(LETTER)
    JR NC,$+2
    RES 4,A
    IX,#2F4D ; установка головки ?
    ................
    всё правильно ???
    можно написать короче ???

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

  3. #2
    Activist Аватар для Spectre
    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy
    Решил посоветоваться:
    как я понял в переменной TRDOS #5D16, хранится копия регистра #FF
    два младших бита указывают на номер дисковода
    начало лоадера получается примерно такое:
    Там реально хранится номер дисковода, так что AND 3 можно и не делать. Но я на всякий случай делаю.

    Цитата Сообщение от goodboy
    A,(#5D16)
    AND #03
    OR #3C
    (LETTER),A

    LD A,D
    OR A
    RRA
    LD C,A
    LD A,(LETTER)
    JR NC,$+2
    RES 4,A
    IX,#2F4D ; установка головки ?
    ................
    всё правильно ???
    можно написать короче ???
    Можно.

    Код:
    	 LD A,(#5D16) 
    	 AND 3
    	 LD (DRIVE+1),A
    	 ...
    	 LD A,D
    	 RRA
    	 LD A,#2C
    	 JR NC,$+4
    	 LD A,#3C
    DRIVE	 OR 0
    	 ...
    Доки сейчас под рукой нет, поэтому могу где-нибудь ошибиться.

  4. #3
    Member Аватар для Faster
    Регистрация
    22.06.2005
    Адрес
    Ульяновск
    Сообщений
    161
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking

    Цитата Сообщение от Spectre
    Там реально хранится номер дисковода, так что AND 3 можно и не делать. Но я на всякий случай делаю.



    Можно.

    Код:
    	 LD A,(#5D16) 
    	 AND 3
    	 LD (DRIVE+1),A
    	 ...
    	 LD A,D
    	 RRA
    	 LD A,#2C
    	 JR NC,$+4
    	 LD A,#3C
    DRIVE	 OR 0
    	 ...
    Доки сейчас под рукой нет, поэтому могу где-нибудь ошибиться.


    Это делается еще круче:

    LD A,(#5CF6) ;дисковод
    OR #2C
    LD (DRIVE+#1),A
    ...
    LD A,D
    SRL A
    LD C,#7F
    LD SP,TABLE
    JP (HL) - выбор дорожки
    DRIVE LD A,#2C
    JR C,$+#4
    OR #10
    JP (HL) - вычисление стороны
    LABEL LD A,#18
    JP (HL) - позиционирование
    ...

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

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

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

Ваши права

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