Denn, я на штатном Орионе успевал чуть-чуть более топорно:
Код:
;Управление Регистром
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-ДОРОЖКА
;Длинной в 512B
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,0F703H
    MVI  C,82H
IN0:LDA  0F700H
    ANA  C
    JZ   IN0
    LDAX D
    MOV  M,A
    INR  L
    JNZ  IN0
    INR  H
IN1:LDA  0F700H
    ANA  C
    JZ   IN1
    LDAX D
    MOV  M,A
    INR  L
    JNZ  IN1
    LDA  0F700H
    POP  B
    POP  D
    POP  H
    RET
Цикл пришлось разбивать из-за того, что обработку двух байт размера уже не успевал (+2 команды). А вот если бы штурманул был плотнее - сделал бы как у тебя. MS-DOS дискеты с FAT12 работали на ура. И да, он не зависла, если RDY снимался - просто забивал буфер последним статусом, который и возвращался для обработки ошибок.