From ccbfc47a66cc5b3c6ad9996353571acc680ca5bc Mon Sep 17 00:00:00 2001 From: Denis Molony Date: Tue, 4 May 2021 07:24:08 +1000 Subject: [PATCH] removed buffer parameter --- .../prodos/write/DirectoryHeader.java | 6 ++--- .../prodos/write/ExtendedKeyBlock.java | 10 +++---- .../diskbrowser/prodos/write/FileEntry.java | 4 +-- .../diskbrowser/prodos/write/FileWriter.java | 4 +-- .../diskbrowser/prodos/write/ProdosDisk.java | 27 ++++++------------- .../prodos/write/SubdirectoryHeader.java | 6 ++--- .../prodos/write/VolumeDirectoryHeader.java | 4 +-- 7 files changed, 23 insertions(+), 38 deletions(-) diff --git a/src/com/bytezone/diskbrowser/prodos/write/DirectoryHeader.java b/src/com/bytezone/diskbrowser/prodos/write/DirectoryHeader.java index e0facc2..cfe94f8 100644 --- a/src/com/bytezone/diskbrowser/prodos/write/DirectoryHeader.java +++ b/src/com/bytezone/diskbrowser/prodos/write/DirectoryHeader.java @@ -30,11 +30,11 @@ public class DirectoryHeader int fileCount; // ---------------------------------------------------------------------------------// - public DirectoryHeader (ProdosDisk disk, byte[] buffer, int ptr) + public DirectoryHeader (ProdosDisk disk, int ptr) // ---------------------------------------------------------------------------------// { this.disk = disk; - this.buffer = buffer; + this.buffer = disk.getBuffer (); this.ptr = ptr; } @@ -91,7 +91,7 @@ public class DirectoryHeader int nameLength = buffer[ptr] & 0x0F; if (nameLength != 0 && storageType < 0x0E) { - FileEntry fileEntry = new FileEntry (disk, buffer, ptr); + FileEntry fileEntry = new FileEntry (disk, ptr); fileEntry.read (); System.out.println (fileEntry.toText ()); } diff --git a/src/com/bytezone/diskbrowser/prodos/write/ExtendedKeyBlock.java b/src/com/bytezone/diskbrowser/prodos/write/ExtendedKeyBlock.java index 952a13d..8bd00ca 100644 --- a/src/com/bytezone/diskbrowser/prodos/write/ExtendedKeyBlock.java +++ b/src/com/bytezone/diskbrowser/prodos/write/ExtendedKeyBlock.java @@ -7,20 +7,16 @@ public class ExtendedKeyBlock // -----------------------------------------------------------------------------------// { private final ProdosDisk disk; - private final byte[] buffer; private final int ptr; - // int blockNo; - MiniEntry dataFork; MiniEntry resourceFork; // ---------------------------------------------------------------------------------// - public ExtendedKeyBlock (ProdosDisk disk, byte[] buffer, int ptr) + public ExtendedKeyBlock (ProdosDisk disk, int ptr) // ---------------------------------------------------------------------------------// { this.disk = disk; - this.buffer = buffer; this.ptr = ptr; } @@ -52,10 +48,10 @@ public class ExtendedKeyBlock // ---------------------------------------------------------------------------------// { if (dataFork != null) // else zero buffer?? - dataFork.write (buffer, ptr); + dataFork.write (disk.getBuffer (), ptr); if (resourceFork != null) - resourceFork.write (buffer, ptr + 0x100); + resourceFork.write (disk.getBuffer (), ptr + 0x100); } // ---------------------------------------------------------------------------------// diff --git a/src/com/bytezone/diskbrowser/prodos/write/FileEntry.java b/src/com/bytezone/diskbrowser/prodos/write/FileEntry.java index d58d227..7634e79 100644 --- a/src/com/bytezone/diskbrowser/prodos/write/FileEntry.java +++ b/src/com/bytezone/diskbrowser/prodos/write/FileEntry.java @@ -35,11 +35,11 @@ public class FileEntry int headerPointer; // ---------------------------------------------------------------------------------// - public FileEntry (ProdosDisk disk, byte[] buffer, int ptr) + public FileEntry (ProdosDisk disk, int ptr) // ---------------------------------------------------------------------------------// { this.disk = disk; - this.buffer = buffer; + this.buffer = disk.getBuffer (); this.ptr = ptr; } diff --git a/src/com/bytezone/diskbrowser/prodos/write/FileWriter.java b/src/com/bytezone/diskbrowser/prodos/write/FileWriter.java index 3a4f43a..6dc3b5d 100644 --- a/src/com/bytezone/diskbrowser/prodos/write/FileWriter.java +++ b/src/com/bytezone/diskbrowser/prodos/write/FileWriter.java @@ -21,11 +21,11 @@ public class FileWriter int eof; // ---------------------------------------------------------------------------------// - FileWriter (ProdosDisk disk, byte[] buffer) + FileWriter (ProdosDisk disk) // ---------------------------------------------------------------------------------// { this.disk = disk; - this.buffer = buffer; + this.buffer = disk.getBuffer (); } // ---------------------------------------------------------------------------------// diff --git a/src/com/bytezone/diskbrowser/prodos/write/ProdosDisk.java b/src/com/bytezone/diskbrowser/prodos/write/ProdosDisk.java index bbde3c7..932fbaa 100644 --- a/src/com/bytezone/diskbrowser/prodos/write/ProdosDisk.java +++ b/src/com/bytezone/diskbrowser/prodos/write/ProdosDisk.java @@ -97,7 +97,7 @@ public class ProdosDisk if (i == 0) { - volumeDirectoryHeader = new VolumeDirectoryHeader (this, buffer, ptr + 4); + volumeDirectoryHeader = new VolumeDirectoryHeader (this, ptr + 4); volumeDirectoryHeader.fileName = volumeName; volumeDirectoryHeader.totalBlocks = maxBlocks; volumeDirectoryHeader.creationDate = LocalDateTime.now (); @@ -187,7 +187,7 @@ public class ProdosDisk fileEntry.creationDate = created; fileEntry.modifiedDate = modified; - FileWriter fileWriter = new FileWriter (this, buffer); + FileWriter fileWriter = new FileWriter (this); fileWriter.writeFile (dataBuffer, dataBuffer.length); fileEntry.storageType = fileWriter.storageType; @@ -209,13 +209,12 @@ public class ProdosDisk throws DiskFullException // ---------------------------------------------------------------------------------// { - FileWriter fileWriter = new FileWriter (this, buffer); // create dummy FileEntry + FileWriter fileWriter = new FileWriter (this); // create resource fork fileWriter.writeFile (dataBuffer, eof); int blockNo = allocateNextBlock (); - ExtendedKeyBlock extendedKeyBlock = - new ExtendedKeyBlock (this, buffer, blockNo * BLOCK_SIZE); + ExtendedKeyBlock extendedKeyBlock = new ExtendedKeyBlock (this, blockNo * BLOCK_SIZE); extendedKeyBlock.addMiniEntry (1, fileEntry.storageType, fileEntry.keyPointer, fileEntry.blocksUsed, fileEntry.eof); @@ -350,7 +349,7 @@ public class ProdosDisk if (storageType < SUBDIRECTORY_HEADER && fileName.equals (new String (buffer, ptr + 1, nameLength))) { - FileEntry fileEntry = new FileEntry (this, buffer, ptr); + FileEntry fileEntry = new FileEntry (this, ptr); fileEntry.read (); return Optional.of (fileEntry); } @@ -393,7 +392,7 @@ public class ProdosDisk updateFileCount (fileEntry.headerPointer); SubdirectoryHeader subdirectoryHeader = - new SubdirectoryHeader (this, buffer, fileEntry.keyPointer * BLOCK_SIZE + 4); + new SubdirectoryHeader (this, fileEntry.keyPointer * BLOCK_SIZE + 4); subdirectoryHeader.fileName = name; subdirectoryHeader.creationDate = LocalDateTime.now (); @@ -424,16 +423,6 @@ public class ProdosDisk } } - // ---------------------------------------------------------------------------------// - // private int createExtendedKeyBlock (FileEntry fileEntry) throws DiskFullException - // // ---------------------------------------------------------------------------------// - // { - // int blockNo = allocateNextBlock (); - // ExtendedKeyBlock extendedKeyBlock = new ExtendedKeyBlock (blockNo); - // - // return blockNo; - // } - // ---------------------------------------------------------------------------------// int allocateNextBlock () throws DiskFullException // ---------------------------------------------------------------------------------// @@ -469,7 +458,7 @@ public class ProdosDisk for (int i = 0; i < ENTRIES_PER_BLOCK; i++) { if (buffer[ptr] == 0) // free slot - return new FileEntry (this, buffer, ptr); + return new FileEntry (this, ptr); ptr += ENTRY_SIZE; } @@ -492,7 +481,7 @@ public class ProdosDisk // update parent's file entry size (this is the subdirectory file entry subdirectoryHeader.updateParentFileEntry (); - return new FileEntry (this, buffer, ptr + 4); // first slot in new block + return new FileEntry (this, ptr + 4); // first slot in new block } // ---------------------------------------------------------------------------------// diff --git a/src/com/bytezone/diskbrowser/prodos/write/SubdirectoryHeader.java b/src/com/bytezone/diskbrowser/prodos/write/SubdirectoryHeader.java index da8fce2..8d61942 100644 --- a/src/com/bytezone/diskbrowser/prodos/write/SubdirectoryHeader.java +++ b/src/com/bytezone/diskbrowser/prodos/write/SubdirectoryHeader.java @@ -16,10 +16,10 @@ public class SubdirectoryHeader extends DirectoryHeader private byte parentEntryLength; // ---------------------------------------------------------------------------------// - public SubdirectoryHeader (ProdosDisk disk, byte[] buffer, int ptr) + public SubdirectoryHeader (ProdosDisk disk, int ptr) // ---------------------------------------------------------------------------------// { - super (disk, buffer, ptr); + super (disk, ptr); storageType = (byte) 0x0E; access = (byte) 0xC3; @@ -38,7 +38,7 @@ public class SubdirectoryHeader extends DirectoryHeader FileEntry getParentFileEntry () // ---------------------------------------------------------------------------------// { - FileEntry fileEntry = new FileEntry (disk, buffer, + FileEntry fileEntry = new FileEntry (disk, parentPointer * BLOCK_SIZE + (parentEntry - 1) * ENTRY_SIZE + 4); fileEntry.read (); diff --git a/src/com/bytezone/diskbrowser/prodos/write/VolumeDirectoryHeader.java b/src/com/bytezone/diskbrowser/prodos/write/VolumeDirectoryHeader.java index b900bfe..628f433 100644 --- a/src/com/bytezone/diskbrowser/prodos/write/VolumeDirectoryHeader.java +++ b/src/com/bytezone/diskbrowser/prodos/write/VolumeDirectoryHeader.java @@ -11,10 +11,10 @@ public class VolumeDirectoryHeader extends DirectoryHeader int totalBlocks; // ---------------------------------------------------------------------------------// - public VolumeDirectoryHeader (ProdosDisk disk, byte[] buffer, int ptr) + public VolumeDirectoryHeader (ProdosDisk disk, int ptr) // ---------------------------------------------------------------------------------// { - super (disk, buffer, ptr); + super (disk, ptr); storageType = (byte) 0x0F; }