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.




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

Похожие статьи:
Вступление - содержание номера.
Содержание - содержание газеты
Мини-анкета - Чего вы больше всего ждёте в новых версиях AC Edit.
Открытые письма Nemo №6.255
От автора - скоро день рождения газеты...

В этот день...   18 апреля