From 66cdbe314cb1125be49ca06896ab596ec34850b5 Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Sat, 14 Oct 2023 02:06:46 -0700 Subject: [PATCH 1/7] Add support for "RDOS 3.3" disk format Uses 16 sectors, with ProDOS sector ordering. --- .../applecommander/storage/Disk.java | 15 +++++++++-- .../storage/os/rdos/RdosFormatDisk.java | 26 ++++++++++++++++++- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/Disk.java b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/Disk.java index b783c71..56eb21d 100644 --- a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/Disk.java +++ b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/Disk.java @@ -278,7 +278,7 @@ public class Disk { rc = 0; } else { imageOrder = proDosOrder; - if (knownProDOSOrder || isProdosFormat() || isDosFormat()) { + if (knownProDOSOrder || isProdosFormat() || isDosFormat() || isRdos33Format()) { rc = 0; } } @@ -791,9 +791,20 @@ public class Disk { if (!is140KbDisk()) return false; byte[] block = readSector(0, 0x0d); String id = AppleUtil.getString(block, 0xe0, 4); - return "RDOS".equals(id); //$NON-NLS-1$ + return "RDOS".equals(id) || isRdos33Format(); //$NON-NLS-1$ } + /** + * Test the disk format to see if this is a RDOS 33 formatted + * disk. + */ + public boolean isRdos33Format() { + if (!is140KbDisk()) return false; + byte[] block = readSector(1, 0x0); + String id = AppleUtil.getString(block, 0x0, 6); + return "RDOS 3".equals(id); //$NON-NLS-1$ + } + /** * Test the disk format to see if this is a WP formatted * disk. diff --git a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java index 7c7ef37..e961eb4 100644 --- a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java +++ b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java @@ -30,6 +30,7 @@ import com.webcodepro.applecommander.storage.FileEntry; import com.webcodepro.applecommander.storage.FormattedDisk; import com.webcodepro.applecommander.storage.StorageBundle; import com.webcodepro.applecommander.storage.physical.ImageOrder; +import com.webcodepro.applecommander.storage.physical.ProdosOrder; import com.webcodepro.applecommander.util.AppleUtil; import com.webcodepro.applecommander.util.TextBundle; @@ -170,6 +171,24 @@ public class RdosFormatDisk extends FormattedDisk { writeSector(track, sector, data); } + /** + * Read the block from the disk image. + */ + public byte[] readBlock(int block) { + int track = block / 16; + int sector = block % 16; + return getImageOrder().readSector(track, sector); + } + + /** + * Write the block to the disk image. + */ + public void writeBlock(int block, byte[] data) { + int track = block / 16; + int sector = block % 16; + getImageOrder().writeSector(track, sector, data); + } + /** * RDOS really does not have a disk name. Fake one. */ @@ -392,7 +411,12 @@ public class RdosFormatDisk extends FormattedDisk { byte[] fileData = new byte[rdosEntry.getSizeInBlocks() * SECTOR_SIZE]; int offset = 0; for (int blockOffset = 0; blockOffset < rdosEntry.getSizeInBlocks(); blockOffset++) { - byte[] blockData = readRdosBlock(startingBlock + blockOffset); + byte[] blockData; + if (getImageOrder() instanceof ProdosOrder) { + blockData = readBlock(startingBlock + blockOffset); + } else { + blockData = readRdosBlock(startingBlock + blockOffset); + } System.arraycopy(blockData, 0, fileData, offset, blockData.length); offset+= blockData.length; } From 2515c3f861ac45ec2807487608ecef5641d23c6d Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Sat, 14 Oct 2023 02:35:59 -0700 Subject: [PATCH 2/7] add test for RDOS 3.3 --- .../applecommander/storage/DiskHelperTest.java | 7 +++++++ .../src/test/resources/disks/RDOS_33_boot.dsk | Bin 0 -> 143360 bytes 2 files changed, 7 insertions(+) create mode 100644 lib/ac-api/src/test/resources/disks/RDOS_33_boot.dsk diff --git a/lib/ac-api/src/test/java/com/webcodepro/applecommander/storage/DiskHelperTest.java b/lib/ac-api/src/test/java/com/webcodepro/applecommander/storage/DiskHelperTest.java index 93ab10e..8b0e1c1 100644 --- a/lib/ac-api/src/test/java/com/webcodepro/applecommander/storage/DiskHelperTest.java +++ b/lib/ac-api/src/test/java/com/webcodepro/applecommander/storage/DiskHelperTest.java @@ -84,6 +84,13 @@ public class DiskHelperTest { showDirectory(config.getDiskDir() + "/RDOSboot.dsk"); //$NON-NLS-1$ } + @Test + public void testRdos33Boot() throws IOException, DiskException { + FormattedDisk[] disks = showDirectory(config.getDiskDir() + "/RDOS_33_boot.dsk"); //$NON-NLS-1$ + assertApplesoftFile(disks[0], "START"); //$NON-NLS-1$ + assertTextFile(disks[0], "SYSTEMBOOT"); //$NON-NLS-1$ + } + @Test public void testSsiSave() throws IOException, DiskException { showDirectory(config.getDiskDir() + "/SSIsave.dsk"); //$NON-NLS-1$ diff --git a/lib/ac-api/src/test/resources/disks/RDOS_33_boot.dsk b/lib/ac-api/src/test/resources/disks/RDOS_33_boot.dsk new file mode 100644 index 0000000000000000000000000000000000000000..51715ab2abfbe2eae3cd75c8e41d1456c339b2f9 GIT binary patch literal 143360 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 Lg)h%zJ&%fFpj8n0OFx%Y zKL@8oQ&-M_#u6J&=$h?$T!)DW$dYkQP5gDw)A&}gH~2;<(oOCq)ycdL*zF}t9gJP2 zhE9y4+2o)&P!8G$?SK^!7r4_yvqcwBW(RF;cF-1R2UNGr)g9J}R&3}_Qs+XEbv|7? zsn$7`zzU^Di%4j`y!#SlaO=3*hWbo;96fuu`%2viIZ48j4`oYngf#iq3xV_yCO)h% zLcrC=_NnfzI&R}T5mP?uz6C}W^icTlLG`UVcM1KkzC~x~Jv(f~jDcSnZ0Vu{3ww5; zeP*^~{aHE^m^6cw8swuBlLW%BXT4cRj(M0T(AFAVf(Q`V zqA@fCfGaLEHsTI0%MJw#rh`I)A(|9jXuRM(hYK%3qX}a?E>srE1YD>D#Q}3ztg4$D zyedzWpSa+7ed4{vn(_kbdsQRtX%Rs`0xiNMw7x~?zJe{02$+H9M2l+m!#!~WLRQ7S zLJ7@1_+RMCpl%svKTcE;J;6SEh4$Z)&62eC0_s>(K(efG;3P-uHxe^-LURd1L1r!u znwSqzBM~^&SwUuP4ndloW$Wv8orR%+IY3Sm{sE})pdtc%#`%|Y3?l&KqzST-cxTk! sojx?m@B1$Ot3spHZ1`_OqgXcl1))(|HxxsooV(#Pp;5MOC=HGBU%q>IApigX literal 0 HcmV?d00001 From 94bf05b57de744e9453b5476a1bb97794ed7f901 Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Fri, 20 Oct 2023 23:34:44 -0700 Subject: [PATCH 3/7] First item in catalog is OS, use it for disk name --- .../applecommander/storage/os/rdos/RdosFormatDisk.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java index e961eb4..e351a00 100644 --- a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java +++ b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java @@ -193,6 +193,10 @@ public class RdosFormatDisk extends FormattedDisk { * RDOS really does not have a disk name. Fake one. */ public String getDiskName() { + if (getImageOrder() instanceof ProdosOrder) { + byte[] block = readSector(1, 0x0); + return AppleUtil.getString(block, 0x0, 0x18); + } byte[] block = readRdosBlock(4); return AppleUtil.getString(block, 0xe0, 0x20); } From feed5172e0186944b9d534dbf577e36ee8349736 Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Fri, 20 Oct 2023 23:41:45 -0700 Subject: [PATCH 4/7] Display "RDOS 3.3" as format --- .../applecommander/storage/os/rdos/RdosFormatDisk.java | 3 +++ .../webcodepro/applecommander/storage/StorageBundle.properties | 1 + 2 files changed, 4 insertions(+) diff --git a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java index e351a00..3c62898 100644 --- a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java +++ b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java @@ -250,6 +250,9 @@ public class RdosFormatDisk extends FormattedDisk { * Identify the operating system format of this disk. */ public String getFormat() { + if (getImageOrder() instanceof ProdosOrder) { + return textBundle.get("RdosFormatDisk.Rdos33"); //$NON-NLS-1$ + } return textBundle.get("RdosFormatDisk.Rdos21"); //$NON-NLS-1$ } diff --git a/lib/ac-api/src/main/resources/com/webcodepro/applecommander/storage/StorageBundle.properties b/lib/ac-api/src/main/resources/com/webcodepro/applecommander/storage/StorageBundle.properties index 04b730b..d11b430 100644 --- a/lib/ac-api/src/main/resources/com/webcodepro/applecommander/storage/StorageBundle.properties +++ b/lib/ac-api/src/main/resources/com/webcodepro/applecommander/storage/StorageBundle.properties @@ -69,6 +69,7 @@ NibbleOrder.InvalidPhysicalSectorError=Unable to locate physical sector {0} on t # RdosFormatDisk RdosFormatDisk.Rdos21=RDOS 2.1 +RdosFormatDisk.Rdos33=RDOS 3.3 RdosFormatDisk.Size=Size RdosFormatDisk.StartingBlock=Starting Block RdosFormatDisk.Address=Address From b4b947dba7df7270518fa98bb5c594813ea8789f Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Sat, 21 Oct 2023 15:38:36 -0700 Subject: [PATCH 5/7] replace test disk for RDOS 3.3 --- .../storage/DiskHelperTest.java | 20 ++++++++++++------ .../src/test/resources/disks/PHANTA31.DSK | Bin 0 -> 143360 bytes .../disks/{RDOS_33_boot.dsk => PHANTA32.DSK} | Bin 143360 -> 143360 bytes 3 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 lib/ac-api/src/test/resources/disks/PHANTA31.DSK rename lib/ac-api/src/test/resources/disks/{RDOS_33_boot.dsk => PHANTA32.DSK} (95%) diff --git a/lib/ac-api/src/test/java/com/webcodepro/applecommander/storage/DiskHelperTest.java b/lib/ac-api/src/test/java/com/webcodepro/applecommander/storage/DiskHelperTest.java index 8b0e1c1..a45ccca 100644 --- a/lib/ac-api/src/test/java/com/webcodepro/applecommander/storage/DiskHelperTest.java +++ b/lib/ac-api/src/test/java/com/webcodepro/applecommander/storage/DiskHelperTest.java @@ -85,15 +85,23 @@ public class DiskHelperTest { } @Test - public void testRdos33Boot() throws IOException, DiskException { - FormattedDisk[] disks = showDirectory(config.getDiskDir() + "/RDOS_33_boot.dsk"); //$NON-NLS-1$ - assertApplesoftFile(disks[0], "START"); //$NON-NLS-1$ - assertTextFile(disks[0], "SYSTEMBOOT"); //$NON-NLS-1$ + public void testSsiSave() throws IOException, DiskException { + showDirectory(config.getDiskDir() + "/SSIsave.dsk"); //$NON-NLS-1$ } @Test - public void testSsiSave() throws IOException, DiskException { - showDirectory(config.getDiskDir() + "/SSIsave.dsk"); //$NON-NLS-1$ + public void testPhanta31() throws IOException, DiskException { + FormattedDisk[] disks = showDirectory(config.getDiskDir() + + "/PHANTA31.DSK"); //$NON-NLS-1$ + assertApplesoftFile(disks[0], "PHANTASIE III"); //$NON-NLS-1$ + assertBinaryFile(disks[0], "TWN31"); //$NON-NLS-1$ + assertTextFile(disks[0], "ITEM"); //$NON-NLS-1$ + assertGraphicsFile(disks[0], "ICE DRAGON"); //$NON-NLS-1$ + } + + @Test + public void testPhanta32() throws IOException, DiskException { + showDirectory(config.getDiskDir() + "/PHANTA32.DSK"); //$NON-NLS-1$ } @Test diff --git a/lib/ac-api/src/test/resources/disks/PHANTA31.DSK b/lib/ac-api/src/test/resources/disks/PHANTA31.DSK new file mode 100644 index 0000000000000000000000000000000000000000..1a3f028c6eac93411dcd7ef26619c2518588acce GIT binary patch literal 143360 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 z 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 ClUmLI literal 0 HcmV?d00001 diff --git a/lib/ac-api/src/test/resources/disks/RDOS_33_boot.dsk b/lib/ac-api/src/test/resources/disks/PHANTA32.DSK similarity index 95% rename from lib/ac-api/src/test/resources/disks/RDOS_33_boot.dsk rename to lib/ac-api/src/test/resources/disks/PHANTA32.DSK index 51715ab2abfbe2eae3cd75c8e41d1456c339b2f9..c7ca7ddbf47fb1d44a51f6fec6723d4c7d3da258 100644 GIT binary patch delta 1599 zcmZ{iZA@EL7{{N}%S#yu7YD*Lj%!0A7~F2#bV38!8Yts*tT5SxV9Z#u4`M=sGNwyR z3VyUUDZ8X!OiXPYlVFt>9b?IKw-nctmfH)o5J?ts#st4%VleT`Jf~;V4)EUO-t+vP z|MPOrc}BL3BU{GlQ(|>At=-oX$y9L96G4OcZ+Ho!+WiIP^U1P;NG}+xMH57nQL&;{ zEqll1F8+|Y6VbUnvD8$BL0o9?LsU`4iUMZ!8WdPnei1A3BO;7|7??w)sNj@F;%anh zIlZLCAIw()Hji_q&JNebKX5+gJ`tJ@@LdiWc(f8MzpJ$X-W=zBBiYB zYbZ+A;=yG#zO?#u9rY+O{w#cqXojFp7N2%fD+%Cp()3 z{$OA(3m90)w^`sY1K(wVY6fm)0UHDJS)i4H+gYF+Eo*bUY)XI`5Mn?9FUvuk0bZ5^ zjR9VkgB1pNSq@SR@Uk3iFu==lu*pDX%sd=CV7pz6#rK_eFoM1p5KJ)tn!0{~pI&&4 zcoXPl9yHc8{@%bY+-80nzwbhe9t#$jfF4YFT_jf?9?7`_bN~(-kRbQ}z;?h!uB<3! zpa*A&GBCqHJ_kRtc}Lf!l43okYAJP%ECmT6zPT5rUyUA6JjTZH=YT%m%lKLuMwh*o@eioJSMk(e^u8J>c%q^@>l4dc_wVYpfPpK#w!k62%60!2!&cSo z<8A!3@c&-#iSdrH(YHdceMo89k*T ziNyTkHpPY8WYeFwO&<8sb|%gKEPa&&>C9eWV4dx(PZ>#6hK^tIT*HUp#+2Cx0bByp zCuG@vhrOoGcBiAu+0@kSz~@bH10RKNZkk%$r<>c(m|z~)K#N;{SkvW*navI6T8Lu{ zgdf&4*y?Lnk}d8ji!8$?ZhRcn<#@vcMwf$`ow&KPz2m&eo>_aEP4??nyCT;$*wlIp z{n|gV)LUuv%dS=!?a?i=O;)W|*=nchdumtA^)}kA49%`iaMBKXYVBdCPO0XkT6xNB zk>N8}FU(4~RcdiJos+uToUc2ja}w^798${#_vsF|gxwV5<~GT2!Tr(L#27jmSVYI> JkLhUj;y>m(ppXCn delta 422 zcmZp8z|ru4V}pYL>*Xs4FI}0uaHTNkK~_eNBnCx>hRF}5#W@#*F>(kpr~!G60^+<2 zM6$g6_-Ys$psGbUm>D_r7$yLv4+;PkGZ%P9F--<(6%c1%Ai&VTATVt?<3vXG?E(`S zKeB;H0mexR{Cr^R7WFbfz-C#6#~gb699#^YR@1GNJUkVZfD$Z*mR6e-9DRKJ!xely zgF_S?{ah4+T!URh82&S`PSlrUJT}p9)8_x0j4bs!94rhwjSNk646Jq<8WIFusom04ra6x&QzG From 836917b283e9f6dcf2085e7163b7d4605023c305 Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Sat, 21 Oct 2023 15:42:23 -0700 Subject: [PATCH 6/7] document differences between 2.1/3.2 and 3.3 --- .../storage/os/rdos/RdosFormatDisk.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java index 3c62898..a1bd45a 100644 --- a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java +++ b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java @@ -37,14 +37,14 @@ import com.webcodepro.applecommander.util.TextBundle; /** * Manages a disk that is in the RDOS format. *

- * Note that the RDOS block interleave is different than the standard DOS 3.3 format. + * Note that the RDOS 2.1/3.2 block interleave is different than the standard DOS 3.3 format. * Thus, when the image is made, the sectors are skewed differently - use readRdosBlock * to read the appropriate block number. *

* Also note that the operating system is itself the first file. Block #0 is really * track 0, sector 0 - meaning that the first file should not (cannot) be deleted. *

- * RDOS appears to have been placed on 13 sector disks. This limits the number of blocks + * RDOS 2.1/3.2 was placed on 13 sector disks. This limits the number of blocks * to 455. It also may also cause incompatibilities with other formats and other cracks. *

* Date created: Oct 7, 2002 2:03:58 PM @@ -53,7 +53,7 @@ import com.webcodepro.applecommander.util.TextBundle; public class RdosFormatDisk extends FormattedDisk { private TextBundle textBundle = StorageBundle.getInstance(); /** - * The RDOS disks are structured in a different order than DOS 3.3. + * RDOS 2.1/3.2 disks are structured in a different order than DOS 3.3. * This table interpolates between the RDOS ordering and the DOS * ordering. It appears that RDOS may use the physical sector number * instead of the logical sector. @@ -142,12 +142,12 @@ public class RdosFormatDisk extends FormattedDisk { } /** - * Read an RDOS block. The sector skewing for RDOS seems to be different. + * Read an RDOS block. The sector skewing for RDOS 2.1/3.2 is different. * This routine will convert the block number to a DOS track and sector, * handling the sector change-over. The readSector method then should * take care of various image formats. *

- * Note that sectorSkew has the full 16 sectors, even though RDOS + * Note that sectorSkew has the full 16 sectors, even though RDOS 2.1/3.2 * itself is a 13 sector format. */ public byte[] readRdosBlock(int block) { @@ -157,7 +157,7 @@ public class RdosFormatDisk extends FormattedDisk { } /** - * Write an RDOS block. The sector skewing for RDOS seems to be different. + * Write an RDOS block. The sector skewing for RDOS2.1/3/2 is different. * This routine will convert the block number to a DOS track and sector, * handling the sector change-over. The writeSector method then should * take care of various image formats. @@ -438,6 +438,7 @@ public class RdosFormatDisk extends FormattedDisk { * would be) and executes that code for the directory. * AppleCommander will need to either clone the code or write * its own routine. This is RDOS block #25. + * FIXME - Doesn't handle native 16-sector (RDOS 3.3) format. * @see com.webcodepro.applecommander.storage.FormattedDisk#format() */ public void format() { From aa9dcd2695cc8a93891bb3d6b953a971ea9a8c26 Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Sat, 21 Oct 2023 16:23:37 -0700 Subject: [PATCH 7/7] Generalize differences of RDOS 2.1/3.2 vs RDOS 3.3 --- .../storage/os/rdos/RdosFormatDisk.java | 98 +++++++++++-------- 1 file changed, 55 insertions(+), 43 deletions(-) diff --git a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java index a1bd45a..8c9a03b 100644 --- a/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java +++ b/lib/ac-api/src/main/java/com/webcodepro/applecommander/storage/os/rdos/RdosFormatDisk.java @@ -67,15 +67,38 @@ public class RdosFormatDisk extends FormattedDisk { */ public static final int ENTRY_LENGTH = 0x20; /** - * Specifies the number of blocks on the disk. + * Specifies the number of tracks on the disk. * RDOS apparantly only worked on 5.25" disks. */ - public static final int BLOCKS_ON_DISK = 455; + public static final int TRACKS_ON_DISK = 35; + /** + * Number of sectors used by catalog. + * FIXME: some sources say 10, others say 11. RDOS 3.3 may support 16. + */ + public static final int CATALOG_SECTORS = 10; /** * The known filetypes for a RDOS disk. */ public static final String[] filetypes = { "B", "A", "T" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + /** + * 13 sectors for RDOS 2.1/3.2, native sectoring (16) for RDOS 3.3 + */ + private int SectorsPerTrack() { + if (getImageOrder() instanceof ProdosOrder) { + return getImageOrder().getSectorsPerTrack(); + } else { + return 13; + } + } + + /** + * 455 blocks for RDOS 2.1/3.2, 560 for RDOS 3.3 + */ + private int BlocksOnDisk() { + return TRACKS_ON_DISK * SectorsPerTrack(); + } + /** * Use this inner interface for managing the disk usage data. * This off-loads format-specific implementation to the implementing class. @@ -94,13 +117,13 @@ public class RdosFormatDisk extends FormattedDisk { private int location = -1; private BitSet bitmap = null; public boolean hasNext() { - return location == -1 || location < BLOCKS_ON_DISK - 1; + return location == -1 || location < BlocksOnDisk() - 1; } public void next() { if (bitmap == null) { - bitmap = new BitSet(BLOCKS_ON_DISK); + bitmap = new BitSet(BlocksOnDisk()); // mark all blocks as unused - for (int b=0; b16 sector conversion */ + byte[] block = readRdosBlock(4); + return AppleUtil.getString(block, 0xe0, 0x20); + } else { + /* Use the name of the OS (catalog entry zero) */ byte[] block = readSector(1, 0x0); return AppleUtil.getString(block, 0x0, 0x18); } - byte[] block = readRdosBlock(4); - return AppleUtil.getString(block, 0xe0, 0x20); } /** @@ -206,8 +222,8 @@ public class RdosFormatDisk extends FormattedDisk { */ public List getFiles() { List files = new ArrayList<>(); - for (int b=13; b<23; b++) { - byte[] data = readRdosBlock(b); + for (int b=0; b getDiskInformation() { List list = super.getDiskInformation(); - list.add(new DiskInformation(textBundle.get("TotalBlocks"), BLOCKS_ON_DISK)); //$NON-NLS-1$ + list.add(new DiskInformation(textBundle.get("TotalBlocks"), BlocksOnDisk())); //$NON-NLS-1$ list.add(new DiskInformation(textBundle.get("FreeBlocks"), getFreeBlocks())); //$NON-NLS-1$ list.add(new DiskInformation(textBundle.get("UsedBlocks"), getUsedBlocks())); //$NON-NLS-1$ return list; @@ -418,12 +435,7 @@ public class RdosFormatDisk extends FormattedDisk { byte[] fileData = new byte[rdosEntry.getSizeInBlocks() * SECTOR_SIZE]; int offset = 0; for (int blockOffset = 0; blockOffset < rdosEntry.getSizeInBlocks(); blockOffset++) { - byte[] blockData; - if (getImageOrder() instanceof ProdosOrder) { - blockData = readBlock(startingBlock + blockOffset); - } else { - blockData = readRdosBlock(startingBlock + blockOffset); - } + byte[] blockData = readRdosBlock(startingBlock + blockOffset); System.arraycopy(blockData, 0, fileData, offset, blockData.length); offset+= blockData.length; }