
Сообщение от
BYTEMAN
на орионе же есть...
Орион - это совсем другой компьютер. Цветной графический режим, видеоадаптер на рассыпухе, 128 Кб ОЗУ.
Тут даже Корвет ближе. У него 64 Кб основной памяти и текстовый режим есть.
---------- Post added at 14:35 ---------- Previous post was at 14:28 ----------
Я вот понять не могу. Образ диска Корвета размером 819200 байт.
Размер сектора 128 байт.
20 секторов на дорожке.
2 зарезервированных дорожки (заняты CP/M)
128*2*20 = 5120 (1400h)
Но корневой каталог в образе начинается с адреса 10240 (2800h)
В самом CP/M зашит формат диска
Код:
RAM:DA8B DPBA: dw 20 ; SPT - количество секторов (по 128 байт) на дорожку
RAM:DA8D db 4 ; BSH - количество бит, на которое необходимо сдвинуть размер логического сектора, чтобы получить размер кластера
RAM:DA8E db 0Fh ; BLM - маска кластера - (размер_кластера/128)-1
RAM:DA8F db 1 ; ЕХМ - маска директорной записи : если ЕХМ=0), то максимальный размер, адресуемый одной директорной записью, равен 16К; если ЕХМ=1, то - 32К и т.д.
RAM:DA8F ; Если DSM < 256, то размер кластера в директорной записи задается байтом, а если DSM > 256, то словом
RAM:DA90 dw 0C3h ; DSM - количество BLS -1 (не считая системных дорожек)
RAM:DA92 dw 7Fh ; DRM - количество входов в директорию -1
RAM:DA94 db 0C0h ; L ; AL0 - битовая шкала занятости BLS директорией. Начало шкалы - бит 7 AL0, конец - бит 0 AL1. Количество единиц, заполняющих AL0 (от начала шкалы) - (DRM+BLS/32)/(BLS/32)
RAM:DA95 db 0 ; AL1
RAM:DA96 dw 20h ; CKS - размер области CSV в DPH. Для сменных дисков - (DRM+1)/4, для не сменных - 0.
RAM:DA98 db 2 ; OFF - количество зарезервированных дорожек на диске (с системой например).
И сам CP/M последовательно читает:
дорожка 2, сектор 1
дорожка 2, сектор 2
дорожка 2, сектор 3
дорожка 2, сектор 4
..
дорожка 2, сектор 20
дорожка 3, сектор 1
То есть секторов действительно 20. Я поставил пропуск 4-х дорожек, вместо 2-х, что бы читался каталог.