Да, я увидел вызовы на С377, чтение по одному байту, для чтения с SD это не проблема, при вызове F_READ в ВС размер запрашиваемых данных, а при последующем вызове будут читаться данные дальше, с этим все ОК. Проблема в другом, как запросить нужный файл, те ввести имя файла. что то вида MLOAD BAS_FL.RKS, тк сейчас то такой вызов есть, но он это имя файла ищет в заголовке бейсик файла, а надо это имя искать на SD.
вот какие вызовы и параметры в SDOS:
;CALL FS_FNDF ; DE - name of file for finding, out HL - string FAT record of file, C==1 if file not founded
;CALL F_OPEN ; DE - name of file for opening, out C==1 if error
;CALL F_READ ; HL - addr for store readed data, BC - size of readed data, out A -last readed byte
те надо вызвать FS_FNDF, найти наш BAS_FL.RKS, затем вызвать F_OPEN, и только после вызывать F_READ с ВС=1, вместо С377.
Может ввести некий служебный оператор SETFNAME ? Тогда все решится просто и красиво, что на чтение, и, вероятно, на запись. Запись не смотрел, но, предполагаю, там аналогично.
Да, еще надо будет вызвать SD_ON и SD_OFF, соответственно.
SETFNAME: SD_ON, FS_FNDF, F_OPEN, SD_OFF
замена вызова С377 на F_READ с ВС=1
только нужно еще SD_ON и SD_OFF вставить, ну или пока на что не заморачиваться, пусть всегда SD_ON.
Для разных версий SDOS адреса функций свои, это вносит сложность, но все решаемо.