Вот с таких драйверов и начинается код, который работает только на эмуляторах. Данный код багованый, и ошибка не воспроизводится ни на каком эмуляторе, только на реале. Суть ошибки в том, что после того, как вы сбросили B-DISK, первая команда, с которой должна начинаться работа с устройством - это команда восстановления. В данном драйвере, данная команда имеет место, но вызывается только один раз для диска по умолчанию (A). Вот только с этим диском драйвер и будет работать, на остальных любая операция будет возвращать ошибку. Это так и есть, проверено. Надо разбить код инициализации на две части. Вот так я сделал :

vg_init_drive

DI

ld a, E
ld (fd_drive_no), A
call fd_motor_on
call fd_res_head

EI

ret


vg_drv_init
call fd_inifdc
EI
RET

fd_inifdc:
di

call fd_clr_error

ld a,%00011000
ld c,255
call fd_out_c_a

ld a,%00011100
ld c, 255
call fd_out_c_a
ld hl,300
call fd_pause
ld a,208
ld c,31
call fd_out_c_a
ld hl,1000
call fd_pause

RET
И вызывать vg_init_drive перед первым использованием диска.