Сообщение от
Wlodek
Ну, я под TR DOS пишу с 1993 года (как появился Pentagon 128), и всё, абсолютно всё работает . Так что я типо знаю, чтО советую .
Wlodek, я совершенно не собирался (и не собираюсь) преуменьшать Ваши знания и навыки работы с TR-DOS. Просто столкнулся с проблемой, что функция #0A возвращает значение не только в регистре C, но и, почему-то, в переменной #5D0F.
Вот, если потрассировать данную программку в отладчике, то перед RET будет C=A=(#5D0F).
Код:
ORG 25000
LD HL,FILE
LD C,#13
CALL #3D13
LD A,9
LD (#5D06),A
LD HL,0
LD (#5D0F),HL
LD C,#0A
CALL #3D13
LD A,(#5D0F)
RET
FILE DB "FILENAMET"
Из-за этого получается непонятная ситуация. Например, при значении C=(#5D0F)=6 непонятно - или на дискете присутствует файл (имя.тип которого заданы в дескрипторе) и его номер 6, или в дисководе нет дискеты. Вопрос - как это можно обойти? Пока придумал только считывать всю область каталога в память и уже там искать нужный файл своей процедурой.