@@ -21,9 +21,9 @@ public class CDROM
2121 SectorMode sectorMode = data . GetSectorMode ( ) ;
2222 return sectorMode switch
2323 {
24- SectorMode . MODE0 => null , // TODO: Create data sector for Mode0
24+ SectorMode . MODE0 => ParseMode0 ( data ) ,
2525 SectorMode . MODE1 => ParseMode1 ( data ) ,
26- SectorMode . MODE2 => null , // TODO: Create a data sector for Mode2 formless
26+ SectorMode . MODE2 => ParseMode2Formless ( data ) ,
2727 SectorMode . MODE2_FORM1 => ParseMode2Form1 ( data ) ,
2828 SectorMode . MODE2_FORM2 => ParseMode2Form2 ( data ) ,
2929
@@ -32,6 +32,24 @@ public class CDROM
3232 } ;
3333 }
3434
35+ /// <summary>
36+ /// Parse a Stream into a Mode0
37+ /// </summary>
38+ /// <param name="data">Stream to parse</param>
39+ /// <returns>Filled Mode0 on success, null on error</returns>
40+ public static Mode0 ParseMode0 ( Stream data )
41+ {
42+ var obj = new Mode0 ( ) ;
43+
44+ obj . SyncPattern = data . ReadBytes ( 12 ) ;
45+ obj . Address = data . ReadBytes ( 3 ) ;
46+ obj . Mode = data . ReadByteValue ( ) ;
47+
48+ obj . UserData = data . ReadBytes ( 2336 ) ;
49+
50+ return obj ;
51+ }
52+
3553 /// <summary>
3654 /// Parse a Stream into a Mode1
3755 /// </summary>
@@ -53,6 +71,24 @@ public static Mode1 ParseMode1(Stream data)
5371 return obj ;
5472 }
5573
74+ /// <summary>
75+ /// Parse a Stream into a Mode2Formless
76+ /// </summary>
77+ /// <param name="data">Stream to parse</param>
78+ /// <returns>Filled Mode2Formless on success, null on error</returns>
79+ public static Mode2Formless ParseMode2Formless ( Stream data )
80+ {
81+ var obj = new Mode2Formless ( ) ;
82+
83+ obj . SyncPattern = data . ReadBytes ( 12 ) ;
84+ obj . Address = data . ReadBytes ( 3 ) ;
85+ obj . Mode = data . ReadByteValue ( ) ;
86+
87+ obj . UserData = data . ReadBytes ( 2336 ) ;
88+
89+ return obj ;
90+ }
91+
5692 /// <summary>
5793 /// Parse a Stream into a Mode2Form1
5894 /// </summary>
0 commit comments