User Tag List

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

Тема: Контроллер НГМД Орион-128: Cборка и настройка варианта 2011. ФАК

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

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

    По умолчанию

    Не знаю. Когда я делал свой дисковод из журнала Радио (это который потом с SP-DOS работал), я сделал только то, что было в статье (удлинение цикла обращения и предкомпенсация записи). Так вот, у меня все отлично работало на программном уровне на штатных 2,5МГц, впрочем как и с SPDOS.
    Код:
    ;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
    Пришлось разбить цикл на две части - второе условие уже вылазило за пределы таймингов. Ну и при чтении 1К сектора таких циклов естественно 4. А для спектрумских дискет вообще один:
    Код:
    ;Управление Регистром
    CTR:LDA  0F700H
        ANI  01H
        JNZ  CTR
        MOV  A,C
        STA  0F700H
        RET
    ;Запись данных с синхронизацией
    DAT:LDA  0F700H
        ANI  01H
        JNZ  DAT
        MOV  A,C
        STA  0F703H
        RET
    ;Чтение сектора SEC-СЕКТОР, TRK-ДОРОЖКА
    INS:PUSH H
        PUSH D
        PUSH B
        LDA  TRK
        ANI  1H
        ORI  0EH
        STA  0F602H
        LDA  TRK
        ANI  7EH
        RRC
        MOV  C,A
        CALL DAT
        MVI  C,18H
        CALL CTR
        LDA  SEC
        INR  A
        STA  0F702H
        CALL RED
        MVI  C,80H
        CALL CTR
        LXI  H,BUF
        LXI  D,0F700H
        MVI  C,82H
    IN0:LDAX D
        ANA  C
        JZ   IN0
        LDA  0F703H
        MOV  M,A
        INR  L
        JNZ  IN0
        LDA  0F700H
        POP  B
        POP  D
        POP  H
        RET
    ;Запись сектора SEC-СЕКТОР, TRK-ДОРОЖКА
    OTS:PUSH H
        PUSH D
        PUSH B
        LDA  TRK
        ANI  1H
        ORI  0EH
        STA  0F602H
        LDA  TRK
        ANI  7EH
        RRC
        MOV  C,A
        CALL DAT
        MVI  C,18H
        CALL CTR
        LDA  SEC
        INR  A
        STA  0F702H
        CALL RED
        MVI  C,0A0H
        CALL CTR
        LXI  H,BUF
        LXI  D,0F700H
        MVI  C,82H
    OT0:LDAX D
        ANA  C
        JZ   OT0
        MOV  A,M
        STA  0F703H
        INR  L
        JNZ  OT0
        LDA  0F700H
        POP  B
        POP  D
        POP  H
        RET
    Это все надежно работало с 800К дискетами и двумя дисководами Электроника (сдвоенная пачка от корвета, кстати) в далеких 90х...
    Последний раз редактировалось HardWareMan; 13.12.2011 в 09:13.

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

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

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

Похожие темы

  1. Ответов: 1012
    Последнее: 06.06.2024, 06:49
  2. Ответов: 506
    Последнее: 15.09.2023, 02:34
  3. Ответов: 133
    Последнее: 13.01.2022, 10:54
  4. Контроллер НГМД
    от MV1971 в разделе Внешние накопители
    Ответов: 2
    Последнее: 30.04.2010, 20:23

Ваши права

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