ZXNet эхоконференция «code.zx»


тема: Винты (было: В догонку к загрузчикам)



от: Valerij Kozhevnikoff
кому: Kirill Frolov
дата: 19 Dec 1998
Здравствуй, Kirill ! 17 Dec 98 at 04:37:12, Kirill Frolov => Valerij Kozhevnikoff: VK>> У немы - качмар. Запись делается через: VK>> ld a,(hl) VK>> out (#f0),a VK>> inc hl VK>> ld a,(hl) VK>> out (#f1),a VK>> inc hl VK>> Тут уже не 20 тактов. Sorry, адреса попутал. Порты должны быть #11 и #10. И байты не в том порядке. Вобщем разобрался я получше, вот тут тебе кусок из живого ide+3.blk. ===================== import file nemohdd .t ================== ;первая плевалка LLA5C2 INC HL LD A,(HL) OUT (#11),A DEC HL LD A,(HL) OUT (#10),A INC HL INC HL IN A,(#F0) ; состояние BIT 3,A ; проверка DRQ JR NZ,LLA5C2 ; если есть, то продолжим RET ;вторая плевалка LLA5D3 LD B,#80 LLA5D5 INC HL LD A,(HL) OUT (#11),A DEC HL LD A,(HL) OUT (#10),A INC HL INC HL DJNZ LLA5D5 RET ============================ import end ======================= Других плевалок в драйвере HЕТ!!! Причем первая вызывается постоянно, а вторая только для чтения половинок секторов!!!!!!!!! KF> ГHУСHОЕ ЛАМЕРСТВО !!! Совершенно верно!!! Это ж додуматься - ждать DRQ после _каждого_ _слова_!!! Tолько не надо меня спрашивать "а может так и надо?", в доке про протокол ясно всё сказано и неоднократно проверено. KF> pop hl ; 10 KF> ld a,l ; 4 KF> out (port0),a ; 11 KF> ld a,h ; 4 KF> out (port1),a ; 11 KF> ^^^^^^^^^^^^^^^^^^^^ так будет быстрее... Циферки мои - итого 20 тактов на байт (при записи!). Только я малость ошибся и тебя запутал: сначала выплевывается _старший_ байт (и защёлкивается в регистре) и лишь при записи младшего байта (когда на IDE шине торчит целое слово) винту выдаёется IOWR. Спасибо за идею, обязательно применю. Беспокоит одно - хоть все это и делается после DI, ну a вдруг NMI придет? У меня под смук сейчас так: inc hl ; 7 ld b,d ; 4 outd ; 16 ld b,e ; 4 outi ; 16 inc hl ; 7 Получается 27 тактов на байт. KF> Запись аналогично, только надо h и l ^^^ выше переставить и будет ^^^^^^ ты имел в виду чтение? Очепятки, однако. И как раз при чтении байты переставлять не надо. При чтении из #10 винту выдаётся IORD, младший байт выдается процессору, а старший защёлкивается в регистре и дочитывается из #11. KF> 20 тактов на байт r/w. KF> ld c,d KF> ini KF> ld c,e KF> ini KF>>> У зонова тоже - HО ВЕДЬ ЕМУ HЕ HАДО БЫЛО HИЧЕГО ЭКОHОМИТЬ ! VK>> У Зонова не только поэтому. В альтере на смаке сидит только дешифратор, VK>> регистры все внешние, обычные ИР23. KF> ~~~~~~~~~~~~~~~~~ KF> Регистр жалко :-( Видимо жалко. WBR, Jason.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Новости - Модемы, Военная Зона, Doxycon, ARTCOMP.
Приложение - Cильная буржуйская демка Lazarus.
Презентация - о причинах создания нового журнала.
Интервью - Jоntаn Niddle, автор эмулятора.
Интернет - Правила работы в Интернете.

В этот день...   8 мая