Есть немецкий пакет утилит cpmtools, который позволят работать с образами дисков CP/M из командной строки. Но разумеется он ни чего не знает о образах в формате *.pro.
В наличие есть конфигурационный файл, в котором можно его прописать. Что я и попробовал сделать. Получилось прочитать каталог, скопировать файлы из образа, удалить файл в образе. Но не могу корректно записать файл в образ. Файл пишется, но имеет бешено большой размер.
Исходный описание форматов образов выглядит так
Код:
diskdef ibm-3740
seclen 128
tracks 77
sectrk 26
blocksize 1024
maxdir 64
skew 6
boottrk 2
os 2.2
end
Вот описание образа pro из другой программы.
Код:
# PRO (Profi Disk Image, CP/M) - image size strictly (!) 819200 bytes:
# 5 x 1024b sectors, double density, 80 tracks, 4k catalog, 0 system tracks, 16k extents
#
# PROFI_5x1024x2x80= 01010301050050002800040F008E017F00C00020000000
# 0101
# len: $03; // размер сектора 0=128, 1=256, 2=512, 3=1024 - orion(korvet) feature - must be defined!
# den: $01; // плотность (или стороны ?): 0=НДМЮ, 1=ДБЕ - orion(korvet) feature - must be defined!
# sec: $0005; // phisical sectors per track - this and items below are standard CPM features
# trk: $0050; // phisical tracks on disk (one side)
# spt: $0028; // logical sectors (128b) per track
# bsh: $04; // Block Shift - Block Size is given by 128 * 2^(BSH). Here BlockSize=2048
# blm: $0F; // Block Mask - Block Size is given by 128 * (BLM +1). Here BlockSize=2048
# exm: $00; // Extent Mask (0=16k, 1=32k, 3=64k, 7=128k)
# dsm: $018E; // user space size in 2048b blocks = SEC * (TRK-OFF) - (CKS/8)
# drm: $007F; // max quantity of file records (FCBs) in catalog -1
# al: $00C0; // 16-bit Directory Allocation Pattern
# cks: $0020; // Directory Check Sum = catalog size (in logical blocks)
# off: $0000; // system tracks
Вот что подправил я
Код:
diskdef pro
seclen 1024
tracks 80
sectrk 5
blocksize 2048
maxdir 127
skew 0
boottrk 0
os 2.2
end
Получится, что где-то ошибся. но не пойму где.
Может кто сможет понять где я ошибся?