Код:
x08D4 call x084F ;R8DOS #07(7)
call x0344 ;hl адрес кода, определяющего тип дискеты в текущем дисководе
ld a,(hl)
and %01000011
dec a
ld a,#10
jp nz,x04D1 ;ошибка #10. дискета не соответствует формату tr-dos
ld de,#0008
ld b,#01
ld hl,(xFFE7) ;адрес рабочего буфера для функции
ld a,h
or l
ld a,#12
jp z,x04D1 ;ошибка #12. не открыт рабочий буфер
call x0553 ;R8DOS #05(5) чтение служебного сектора
ld ix,(xFFE7) ;адрес рабочего буфера для функции
ld de,#00E1
add ix,de ;начало служебной информации
ld a,#10
cp (ix+#06) ;идентификационный код TR-DOS (#10)
jp nz,x04D1 ;ошибка #10. дискета не соответствует формату tr-dos
call x0349 ;hl адрес кода, определяющего тип текущего дисковода
ld e,(hl)
call x0344 ;hl адрес кода, определяющего тип дискеты в текущем дисководе
inc a
res 7,(hl) ;односторонняя дискета
bit 2,(ix+#02) ;тип дискеты
jr z,x0918 ;односторонняя
set 7,(hl) ;двухсторонняя
x0918 res 5,(hl) ;40 дорожек на диске
bit 0,(ix+#02) ;кол-во дорожек
ret nz ;40 дорожек
set 5,(hl) ;80 дорожек
ret