Вах, если кому интересно сообщаю итоги моих экспериментов.
Загрузить файлы из ассемблера именно в виде файла просто по его имени наиболее простой и логичной командой с = #0E у меня не получилось ни в каком виде. 2 вечера бесплотных попыток. Причем и сам файл находился с помощью c = #0A и дискриптор его считывался по c = #08, а грузить по с = #0E - никак. Так и не понял в чем дело.
В итоге выход нашелся благодаря Яндексу, этому форуму и сообщению jerri от 2011г. (спасибо ему заочно). Теперь гружу файлы по-секторно, предварительно всеми вышеуказанными функциями узнав его физическое местоположение на диске. Выглядит так (вдруг еще кому пригодится):
LD HL,FILENAME ; по этому адресу имя загружаемого файла 8 байт и расширение (у меня "FNT00000C")
LD C,#13 ; переносим имя и тип файла в область системных переменных ТР-ДОС
CALL #3D13 ;
LD C,#0A ; По перенесенному имени и типу файла ищем его в каталоге
CALL #3D13 ; номер файла получаем в регистре С
LD A,C ; Копируем полученный номер файла в каталоге в А
LD C,#08 ; и по его номеру считываем из каталога в область системных переменных
CALL #3D13 ; полные данные о файле
LD HL,26000 ; в HL - адрес куда будем считывать файл
LD DE,(#5CEB) ; в DE - из сист.переменных берем начальную дорожку и сектор файла
LD A,(#5CEA) ; в B через А заносим длину файла в секторах
LD B,A ;
LD C,5 ; читаем!!!
CALL #3D13
Надеюсь никого не оскорбил сим опусом...




Ответить с цитированием