User Tag List

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

Тема: Орион-128: Контроллер дисковода

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

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

    По умолчанию

    Цитата Сообщение от makbar Посмотреть сообщение
    ...господа, я же пояснил это рисунком 3 в журнале 12 1992г )))
    400 нс!!! Wait нужен не процу как таковому, а ВГ93, чтобы проц помедленнее его опрашивал.
    Если верить написанному выше, то значит я таки тоже в вашей банде! Собирал его, пользовался не DOS а просто обменником. Контроллер в полной обвязке: тормозилка, ФАПЧ + мои личные доработки, не касающихся критических узлов оригинальной схемы. Впечатления следующие (это плюсы):
    1. Несколько раз по глупости портил дискету - восстанавливал все руками сам. (реверс по данным из журнала + анализ данных на самой дискете).
    2. Контроллер работал как часы: даже когда я добыл связку из двух 80ти дорожечных дискогрыза с электромагнитами загрузки взамен 40ка дорожечного болгарина.
    3. Писал обменник на спектрумскую хобету - работало. Правда не сразу понял, что при форматировании следует правильно указывать номер стороны: контроллер PC не мог игнорировать сей флаг, в отличии от ВГ93.
    4. Намучившись с хобетой писал именно к этому дискогрызу обменник между FAT12 и квазидиском ORDOSа, все работало, причем лучше чем с хобетой, в том числе был и форматтер.
    5. Весь цикл жизни ни одна из моих не самых качественных дискет не испоганилась от хранения как такового. Первые дискеты без использования сроком около 9 лет считались в последствии нормально.

    Про пункт №4 я уже писал и желающие могут посмотреть этот опус. Напомню, 97 год, писалось на самом Орионе, так что ногами не пинать. Но посмотрите, как сделана низкоуровневая работа с ВГшкой!
    Код:
    ;FDC CONTROL REGISTER
    CTR:PUSH PSW
    CT0:LDA  0F700H
        ANI  1H
        JNZ  CT0
        POP  PSW
        STA  0F700H
        RET
    ;WAITING FOR DRIVE READY
    RED:LDA  0F700H
        ANI  80H
        JNZ  RED
        RET
    RWR:LDA  0F700H
        ANI  82H
        JNZ  RWR
        RET
    ;LOAD SECTOR 512 BYTES WITH CHECKING CHECKSUMM
    ;10H TRIES, [HL] - ADR...
    INS:PUSH D
        PUSH B
        MVI  B,10H
    IS0:PUSH B
        LDA  TRK
        ANI  1H
        MOV  C,A
        LDA  DRV
        ORA  C
        STA  0F602H
        LDA  TRK
        RRC
        ANI  7FH
        STA  0F703H
        XRA  A
        MOV  B,A
        MVI  A,18H
        CALL CTR
        CALL RWR
        LDA  SEC
        INR  A
        STA  0F702H
        MVI  A,80H
        CALL CTR
        MVI  C,82H
        LXI  D,0F700H
    IS1:LDAX D
        ANA  C
        JZ   IS1
        LDA  0F703H
        MOV  M,A
        INX  H
        INR  B
        JNZ  IS1
    IS2:LDAX D
        ANA  C
        JZ   IS2
        LDA  0F703H
        MOV  M,A
        INX  H
        INR  B
        JNZ  IS2
        POP  B
        LDA  0F700H
        MOV  C,A
        ANI  80H
        JNZ  IS3
        MOV  A,C
        ANI  08H
        JZ   IS4
        DCR  B
        JNZ  IS0
        MVI  A,08H
        JMP  IS5
    IS3:MVI  A,80H
        JMP  IS5
    IS4:XRA  A
    IS5:STA  BER
        POP  B
        POP  D
        RET
    ;SAVE SECTOR 512 BYTES
    ;[HL] - ADR...
    OTS:PUSH D
        PUSH B
        LDA  TRK
        ANI  1H
        MOV  C,A
        LDA  DRV
        ORA  C
        STA  0F602H
        LDA  TRK
        RRC
        ANI  7FH
        STA  0F703H
        MVI  A,18H
        CALL CTR
        XRA  A
        MOV  B,A
        LXI  D,0F700H
        CALL RED
        MVI  C,82H
        LDA  SEC
        INR  A
        STA  0F702H
        MVI  A,0A0H
        CALL CTR
    OS0:LDAX D
        ANA  C
        JZ   OS0
        MOV  A,M
        STA  0F703H
        INX  H
        DCR  B
        JNZ  OS0
    OS1:LDAX D
        ANA  C
        JZ   OS1
        MOV  A,M
        STA  0F703H
        INX  H
        DCR  B
        JNZ  OS1
        LDA  0F700H
        ANI  80H
        STA  BER
        POP  B
        POP  D
        RET
    И оно не зависало, если внезапно сектор не найден - вываливалось с текущей ошибкой (заполнив буфер одним из байтов при чтении).
    В общем, я уже и не помню, почему я выбрал именно этот контроллер (Радио №12'92), но его работа мне очень нравилась, не смотря что он сначала был на макетке и только потом на саморазведенной плате. Собирался без осцилла, чисто с помощью Цшки. Не могу сказать подобного про Специалистовский: тот из-за особенности софта и схемного решения часто вис. И дискеты свои же портил. К сожалению, не могу знать, чья разработка он был.
    Последний раз редактировалось HardWareMan; 06.06.2016 в 07:54.

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

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

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

Похожие темы

  1. Контроллер дисковода
    от andrew76 в разделе Внешние накопители
    Ответов: 55
    Последнее: 12.04.2024, 16:33
  2. Ответов: 302
    Последнее: 18.09.2023, 12:45
  3. ПК8000 - Контроллер дисковода
    от Mick в разделе ПК8000
    Ответов: 286
    Последнее: 02.12.2018, 23:08
  4. Ответов: 24
    Последнее: 30.04.2016, 23:47
  5. Орион-128: Контроллер IDE
    от Ewgeny7 в разделе Орион
    Ответов: 90
    Последнее: 08.04.2016, 17:23

Ваши права

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