Нашёл, что виноваты мои кривые руки. Была ошибочка в коде.
Вид для печати
А вотбыл случайкакая особенность: различается логика при работе с реальными дискетами и виртуальными.
Если вставить дискету в B: и обращаться к TRDOS через 3D13, то работает. По переменку можно считывать секторы через rst 8 с раздела CPM, который примонтирован к D:.
А вот если в B: виртуальная дискетка, то после обращения к D: он типа становится по умолчанию и вызовы через 3d13 уже читают жёсткий диск. Ну я так подозреваю. В общем, уже всё идёт наперекосяк.
Это ещё в старой прошивке 5.00 так работает.
если работа идет с реальной дискетой, то работают процедуры tr-dos.
если в подключен образ, то все вызовы перенаправляются на rst 8, а там тоже есть такое понятие как текущий дисковод. вызывайте функцию #01 перед обращением к дисководу
LW, Подскажите, в профПЗУ есть код которые проверяет наличие контроллера прерываний на SMUC контроллере, можете рассказать как он его проверяет, и есть ли еще какие-нибудь процедуры для работы с ним?
есть
как-то так
Код:;#1572 определение наличия interrupt controller
x1572 ld bc,#FFBA
ld a,(xDFF0) ;состояние порта #FFBA
and #F7
out (c),a
ld (xDFF0),a
ld bc,#7EBE
ld a,#F3
out (c),a
nop
ld b,#7F
ld a,#C5
out (c),a
nop
ld a,#01
out (c),a
nop
nop
in a,(c)
or a
jr z,x15A1
cp #01
jr z,x15A5
x159D ld a,#24 ;сообщение: interrupt controller not found
scf
ret
x15A1 set 4,(iy+#1B)
x15A5 ld b,#7E
ld a,#F2
out (c),a
nop
ld b,#7F
ld a,#C5
out (c),a
nop
ld a,#FF
out (c),a
nop
nop
in a,(c)
cp #FF
jr nz,x159D
set 4,(iy+#1A)
xor a
ld a,#25 ;сообщение: interrupt controller found
ret
[свернуть]
на 4.23 gmx commander не видит подмаунчиные через смук диски и при выходе из теневика обратно в меню (станлдартное спек128) зависон, речь о версии под gmx, на обычном не пробовал
У меня GMX Comm с прошивкой 23 вообще не хочет запускаться. А HDD Comm не все диски видит, scboot не открывает разделы ).
Маунт конечно с mfs, кстати в 21 теже грабли, только не виснет при выходе из теневика в меню, а ещё слышал про 24 и вкусности :v2_dizzy_punk::v2_dizzy_punk: