CP/M-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Memberlist || Home || Statistik || Kalender || Staff Willkommen Gast!
[ Unofficial CP/M Website ] [ Z80 Family Support Page ] [ Forum-Regeln ] [ Impressum/Kontakt ] [ Datenschutzerklärung ]

CP/M-Forum » CP/M 2.2 » Munk's CP/M 2.2 DiskImage mit libdsk lesen. » Threadansicht

Autor Thread - Seiten: -1-
000
09.11.2008, 15:35 Uhr
timetube

Avatar von timetube

Hai 8bitter,

Ich befasse mich mal wieder mit der Emulation von Z80 (CP/M 2.2). Habe mir auch eine CPU zusammen programmier (class z80cpu) und möchte nun gerne auch die Imaged von Munk's SIMCPM verwenden können. Das sind im prinzip 8" IBM Images, bei denen die ersten beiden Sectoren als non interlaceds Systemspuren fungieren und der Rest dann ein normales 77 spuren, 26 Sectoren zu 128 byte CP/M 2.2 Filesystem enthällt. Er verwendet, wie ich auch, das Original CBIOS Die Sektoren sind also mit Faktor 6 interlaced.

Also mit den Images habe ich keine Probleme, ich habe auch schon einen Driver für das libdsk zusammen programmiert, so dass ich auf diese Munk Images (Filename.CPM) nun zugreifen kann. (Eine simple Umprogrammierung des myz80 drivers)

Was aber nicht geht ist der libdsk drvrcpm driver, der ein normales (Windows/Linux) Directory, also kein Image, als CP/M Filesystem erscheinen lässt. Es hat nichts mit Munk zu tun, nur eben das er auch dieses alte IBM 8" Format aus dem original CBIOS verwendet und welches wohl vom libdsk nicht unterstützt wird. Das hätte ich aber gerne, Es gibt für dieses Driver zwei Spezialfiles .libdsk.boot und .libdsk.ini. Das erste enthält schlicht das, was Munk in die ersten beiden Sectroren seiner Images schreibt, also der Bootsektor und das CP/M selber. Das zweite ist einer Art von Disk-Parameter-Block. Und hier scheint sich die Katze in den Schwanz zu beißen ich bekomme es nicht hin das er das IBM Format richtig vortäuscht.

Ich habe da bis jetzt folgendes "raus experimentiert"

[RCPMFS]
BlockSize=1024
DirBlocks=2
TotalBlocks=243
SysTracks=2
Version=2
Description = CP/M 2.2
Sides = Alt
Cylinders = 77
Heads = 1
Sectors = 26
SecBase = 1
SecSize = 128
DataRate = DD
#RWGap = 12
#FmtGap = 23
fm = N
MultiTrack = N

Das klapp auch teilweise, wenn ich das Sektrorremapping im CBIOS ausschalte, was ich aber letztlich nicht will, was aber erst einmal dieses kleinere Problem beseitigt, da dass libdsk drvrcpm offenbar kein Remapping zu unterstützen scheint.

Im CP/M Bios sieht das also nun so aus

TRANS:
DEFB 1,2,3,4,5,6,7,8,9,10
DEFB 11,12,13,14,15,16,17,18,19,20
DEFB 21,22,23,24,25,26
; DEFB 1,7,13,19 ;sectors 1,2,3,4
; DEFB 25,5,11,17 ;sectors 5,6,7,8
; DEFB 23,3,9,15 ;sectors 9,10,11,12
; DEFB 21,2,8,14 ;sectors 13,14,15,16
; DEFB 20,26,6,12 ;sectors 17,18,19,20
; DEFB 18,24,4,10 ;sectors 21,22,23,24
; DEFB 16,22 ;sectors 25,26
;
; disk parameter block, common to all IBM 8" disks
;
DPBLK:
DEFW 26 ;128 bytes sectors per track
DEFB 3 ;block shift factor 1k
DEFB 7 ;block mask
DEFB 0 ;extent mask
DEFW 242 ;disk size-1 block
DEFW 63 ;directory max
DEFB 192 ;alloc 0
DEFB 0 ;alloc 1
DEFW 16 ;check size
DEFW 2 ;track offset

Was passiert nun. Na-ja, ich kann auf das Directory wie auf Munk's Image zugreifen und natürlich auch daraus booten, weil ich ja die .libdsk.boot herstelle. Ich kann also mit DIR alles richtig sehen und auch jedes Programm starten. Nur, wenn ich versuche was zu kopieren PIP oder so, dann geht das schief. Lauter BDOS Errors wegen angeblicher Read-Only oder Media changed oder auch mal Sector not Found. Bei PIP b:=a:*.* klappen mal ein paar Files bis der BDOS Error dann zu schlägt,

Hat jemand da eine Idee zu. Hat jemand den drvrcpm vom libdsk schon mal fehlerfrei, vielleicht für anderer Formate hin bekommen. Es kann nämlich auch ein genereller Fehler dieses Drivers sein, der extrem Trickreich programmiert wurde und sicher noch nicht fertig ist.


gruß
j.

PS:Auch ja, was ist mit dem z-fest 2009, ist da schon was durchgesickert, findet das wieder statt?
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
001
09.11.2008, 16:44 Uhr
timetube

Avatar von timetube


Zitat:
timetube postete

im prinzip 8" IBM Images, bei denen die ersten beiden Sectoren als non interlaceds Systemspuren

OK, es sind nicht die ersten beiden Soktoren sondern Tracls, die da als Systemspuren Verwendung finden Das war nur ein Typo und ist nicht das Problem )

j
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
002
16.11.2008, 14:41 Uhr
timetube

Avatar von timetube

Na ihr Schlafmützen, nun habe ich es doch noch ganz ohne Eure Hilfe geschafft. Es lag nicht am libdsk driver, jedenfalls nicht ausschliesslich

Dummer weise schaut der libdsk-rcpm-driver nicht nach der tatsächlichen Anzahl von Systemspuren im DPB sondern ermittelt die Länge des Files, dessen Inhalt in diesen reservierten Sectoren eingemapt werden soll. Da ich in meinem BootFile (.libdsk.boot) einen sector zuviel gespeichert gatte, es als einfach ein sector zu lang war, ging das natürlich schief mit dem den Systemspuren folgenden Directory.

Nun geht es aber und ich kann wieder CPM-ten.

Leider ist ein Sectorremapping aber immer noch nicht möglich, das CBIOS also noch kein 100% nativ system bios. Aber sagt doch mal, wem interessiert das alles hier überhaupt )))

mfg
j.


Quellcode:
jsievers@nadhhlt:~$ ./cpm

boot
  0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 0101 0102 0103 0104 0105 0106 0107 0108 0109 010A 010B 010C 010D 010E 010F 0110 0111 0112 0113 0114 0115 0116 0117 0118 0119

64K CP/M Vers. 2.2 CBIOS V1.0 for JSZ80-CP/M2.2,
Copyright 2008 by Juergen Sievers <jsievers@8bit-matrix.net>

a>sdir
sdir

Directory For Drive A:  User  0

    Name     Bytes   Recs   Attributes      Name     Bytes   Recs   Attributes
------------ ------ ------ ------------ ------------ ------ ------ ------------
ASM      COM     8k     64 Dir RW       ASM2     COM     8k     64 Dir RW      
CREF80   COM     4k     32 Dir RW       DDT      COM     5k     38 Dir RW      
DDTZ     COM    10k     79 Dir RW       ED       COM     7k     52 Dir RW      
L80      COM    11k     84 Dir RW       LIB      COM     7k     56 Dir RW      
LIB80    COM     5k     37 Dir RW       LINK     COM    16k    122 Dir RW      
LOAD     COM     2k     14 Dir RW       M80      COM    20k    157 Dir RW      
MAC      COM    12k     92 Dir RW       MLOAD    COM     3k     22 Dir RW      
RMAC     COM    14k    106 Dir RW       SDIR     COM    15k    119 Dir RW      
SID      COM     8k     61 Dir RW       STAT     COM     5k     40 Dir RW      
SURVEY   COM     2k      9 Dir RW       TRACE    UTL     2k     10 Dir RW      
WM       COM    11k     82 Dir RW       WM       HLP     3k     23 Dir RW      
XREF     COM    16k    121 Dir RW       ZAP      COM    10k     77 Dir RW      
ZTRAN    COM     4k     32 Dir RW      

Total Bytes     =    208k  Total Records =    1593  Files Found =   25
Total 1k Blocks =    208   Used/Max Dir Entries For Drive A:   26/  64

a>^C
a>



--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.

Dieser Post wurde am 16.11.2008 um 14:46 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
003
16.11.2008, 15:50 Uhr
Peter Dassow

Avatar von Peter Dassow


Zitat:
timetube postete
Na ihr Schlafmützen, nun habe ich es doch noch ganz ohne Eure Hilfe geschafft. Es lag nicht am libdsk driver, jedenfalls nicht ausschliesslich
[...]
64K CP/M Vers. 2.2 CBIOS V1.0 for JSZ80-CP/M2.2,
Copyright 2008 by Juergen Sievers <jsievers@8bit-matrix.net>

a>sdir
sdir

Directory For Drive A: User 0

Name Bytes Recs Attributes Name Bytes Recs Attributes
------------ ------ ------ ------------ ------------ ------ ------ ---------
ASM COM 8k 64 Dir RW ASM2 COM 8k 64 Dir RW
CREF80 COM 4k 32 Dir RW DDT COM 5k 38 Dir RW
DDTZ COM 10k 79 Dir RW ED COM 7k 52 Dir RW
L80 COM 11k 84 Dir RW LIB COM 7k 56 Dir RW
LIB80 COM 5k 37 Dir RW LINK COM 16k 122 Dir RW

Na liegt weniger am Schlafen denn an der fehlenden Zeit, oft im Forum nachzuschauen ;-)
Mich erinnern Deine Versuche stark an das hier:
http://www.moria.de/~michael/cpmtools/

Da gibt's doch auch ein "cpmls" - warum hast Du nicht einfach das benutzt ?

Gruss
Peter
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
004
16.11.2008, 21:03 Uhr
timetube

Avatar von timetube


Zitat:
Peter Dassow postete

Zitat:
timetube postete
> Na ihr Schlafmützen,
>...
Na liegt weniger am Schlafen denn an der fehlenden Zeit, oft im Forum nachzuschauen ;-)
Mich erinnern Deine Versuche stark an das hier:
http://www.moria.de/~michael/cpmtools/

Da gibt's doch auch ein "cpmls" - warum hast Du nicht einfach das benutzt ?

Gruss
Peter

Ja, die arbeiten mittlerweile auch mit den libdsk, eine wirklich feine Sachen wenn es darum geht auf alte und neue Disk-Formate zuzugreifen.

Ich habe ja einen eigenen Z80 und CP/M Emulator und der konnte nur auf Images zugreiffen. Die von munk und die raw-files von einigen anderen cp/m 2.2 images. Nun kann er Dateien aus und in ein normales Directory des Hostsystems (linux/widoof) verwenden.
Das Directory erscheint als Drive und die Dateinamen werden in CP/M Directrorystrukturen eingelesen. Die User werden durch vorangestellt 01..filename.com 02..filename.com u.s.w. unterschieden.


Quellcode:
jsievers@nadhhlt:~$ ls -l diski/
insgesamt 48
-rw-r--r-- 1 jsievers jsievers   128 2008-11-16 20:08 01..c.sub
-rw-r--r-- 1 jsievers jsievers  7168 2008-11-16 20:26 01..lib.com
-rw-r--r-- 1 jsievers jsievers 15616 2008-11-16 20:26 01..link.com
-r--r--r-- 1 jsievers jsievers  7424 1999-03-14 01:44 01..PIP.COM
-rw-r--r-- 1 jsievers jsievers     0 2008-11-16 20:07 01..plib.$$$
-rw-r--r-- 1 jsievers jsievers  7680 2008-11-16 20:26 01..pli.com
-rw-r--r-- 1 jsievers jsievers     0 2008-11-16 20:26 01..plilib.$$$
-rw-r--r-- 1 jsievers jsievers  1792 2008-11-16 20:09 01..update.$$$
jsievers@nadhhlt:~$

Ich kann also die CPM Dateien auch vom Gast aus normal bearbeiten und hin wie her kopieren. Und zwar ohne irgend welche Tools verwenden zu müssen, die auf ein Image arbeiten.
Das fand ich irgendwie praktisch.

j.


--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: -1-     [ CP/M 2.2 ]  



gaby.de

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek