User Tag List

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

Тема: Программная поддержка двух IDE-устройств на одном шлейфе (?)

Комбинированный просмотр

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

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Т.е., выдавать +2 команды АТА это меньше простого увеличения счетчика чтения байтов данных?
    Мне нужно закончить полезный цикл переноса данных из хдд в ОЗУ и начать отдельный бесполезный цикл холостого вычитывания. При этом ещё добавится код вычисления значения счётчика этих бесполезных байтов, т.к. у меня есть только счётчик полезных, который получен ранее исходя из длины файла. Понятное дело, что это будет 512 минус хвостик, но это вычитание двухбайтовых чисел, т.е. далеко не одна команда. Ещё же нужно обработать ситуацию, когда хвостик равен полному размеру сектора. Можно наоборот увеличивать хвостик и ждать равенства значению 512, но это тоже дофига кода.
    А так всего 9 байт на костыли - дёшево и, главное, быстро
    Последний раз редактировалось Denn; 26.03.2018 в 17:23.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

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

  3. #2
    HardWareMan
    Гость

    По умолчанию

    Denn, т.е. вариант с отсечением сохранения данных при выходе за пределы размера в том же цикле не учитывается? Ну да ладно, не мой проект, не мне и решать, как писать код.

  4. #3

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Arrow

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Denn, т.е. вариант с отсечением сохранения данных при выходе за пределы размера в том же цикле не учитывается?
    Это получается, что в цикле нужно делать две проверки (работать будет медленнее). А по фатку проверки будет четыре, т.к. байты вычитываются из двух разных портов по очереди (тобишь объём кода ощутимо возрастёт). Одни минусы.

    Вот причинный участок кода:
    Код:
    LDHDAT6:
    IN PT_IDE_DATL
    MOV C,A
    MOV A,B
    CALL SVBYTE
    INX H
    DCX D
    MOV A,D
    ORA E
    JZ LDHDAT7
    IN PT_IDE_DATH
    MOV C,A
    MOV A,B
    CALL SVBYTE
    INX H
    DCX D
    MOV A,D
    ORA E
    JNZ LDHDAT6
    
    LDHDAT7:
    ; ПРИНУДИТЕЛЬНОЕ ЗАВЕРШЕНИЕ ОПЕРАЦИИ
    MVI A,0E4h
    CALL SetCMD
    XRA A
    CALL SetCMD
    XRA A
    RET
    В [HL] адрес в ОЗУ куда складываем байты, в [B] номер страницы ОЗУ, в [DE] длина хвоста, регистр [C] используется для передачи записываемого байта процедуре записи в произвольную банку.
    Последний раз редактировалось Denn; 27.03.2018 в 14:07.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

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

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

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

Похожие темы

  1. Программная модель Intel 8080/КР580ВМ80А
    от svofski в разделе Эмуляторы отечественных компьютеров
    Ответов: 6
    Последнее: 18.08.2016, 00:24
  2. Ответов: 3
    Последнее: 29.05.2013, 18:03
  3. Два Slave-IDE на одном шнуре
    от Максагор в разделе Внешние накопители
    Ответов: 4
    Последнее: 31.01.2012, 18:00
  4. Программная документация.
    от fk0 в разделе Программирование
    Ответов: 7
    Последнее: 19.01.2006, 16:53

Ваши права

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