public void mount( ) { FCB fcb = new FCB( ); disk.mount( ); // Mark all block as not used for (int i = 0; i < blockUsed.Length; i++) { blockUsed[i] = false; } // Mark directory block as used for (int i = 0; i < 8; i++) { if ((dpb.alloc0 & (1 << (7 - i))) != 0) { blockUsed[i] = true; } if ((dpb.alloc1 & (1 << (7 - i))) != 0) { blockUsed[8 + i] = true; } } files = new ArrayList(); for (int i = 0; i <= dpb.drm; i++) { readFCB(i, fcb); if (fcb.getDeleted( )) { directoryUsed[i] = false; continue; } int user = fcb.getUser( ); int ext = fcb.getEX( ); int record = fcb.getRC( ); directoryUsed[i] = true; // Skip not valid user if (user > 31) { continue; } // Mark directory entry used directoryUsed[i] = true; String fileName = fcb.getFileName( ); CpmFile file = searchFile(user, fileName); if (file == null) { file = new CpmFile(dpb, user, fileName); files.Add(file); } file.AddFCB(i); // Read block number from FCB for (int j = 0; j < getFCBBlockCount( ); j++) { int b = getFCBBlock(fcb, j); if (b == 0) { break; } blockUsed[b] = true; file.AddBlock(b); } } }
public void mount( ) { FCB fcb = new FCB( ); disk.mount( ); // Mark all block as not used for ( int i = 0; i < blockUsed.Length; i++ ) blockUsed[i] = false; // Mark directory block as used for ( int i = 0; i < 8; i++ ) { if ( ( dpb.alloc0 & ( 1 << ( 7 - i ) ) ) != 0 ) blockUsed[i] = true; if ( ( dpb.alloc1 & ( 1 << ( 7 - i ) ) ) != 0 ) blockUsed[8 + i] = true; } files = new ArrayList(); for ( int i = 0; i <= dpb.drm; i++ ) { readFCB(i, fcb); if ( fcb.getDeleted( ) ) { directoryUsed[i] = false; continue; } int user = fcb.getUser( ); int ext = fcb.getEX( ); int record = fcb.getRC( ); directoryUsed[i] = true; // Skip not valid user if ( user > 31 ) { continue; } // Mark directory entry used directoryUsed[i] = true; String fileName = fcb.getFileName( ); CpmFile file = searchFile(user, fileName); if ( file == null ) { file = new CpmFile(dpb, user, fileName); files.Add(file); } file.AddFCB(i); // Read block number from FCB for ( int j = 0; j < getFCBBlockCount( ); j++ ) { int b = getFCBBlock(fcb, j); if ( b == 0 ) break; blockUsed[b] = true; file.AddBlock(b); } } }