diff --git a/src/com/bytezone/diskbrowser/applefile/OriginalHiResImage.java b/src/com/bytezone/diskbrowser/applefile/OriginalHiResImage.java index e88dce7..8fb5f2c 100755 --- a/src/com/bytezone/diskbrowser/applefile/OriginalHiResImage.java +++ b/src/com/bytezone/diskbrowser/applefile/OriginalHiResImage.java @@ -39,6 +39,8 @@ public class OriginalHiResImage extends HiResImage // https://github.com/Michaelangel007/apple2_hgr_font_tutorial // hgr[ y ] = 0x2000 + (y/64)*0x28 + (y%8)*0x400 + ((y/8)&7)*0x80; + // or... Y = aabbbccc + // address = BASE + aa * 0x28 + bb * 0x80 + ccc * 0x0400 + X @Override protected void createMonochromeImage () diff --git a/src/com/bytezone/diskbrowser/infocom/InfocomDisk.java b/src/com/bytezone/diskbrowser/infocom/InfocomDisk.java index cb0a4d6..a39881d 100755 --- a/src/com/bytezone/diskbrowser/infocom/InfocomDisk.java +++ b/src/com/bytezone/diskbrowser/infocom/InfocomDisk.java @@ -93,9 +93,10 @@ public class InfocomDisk extends AbstractFormattedDisk sectorTypes[48] = headerSector; - setSectorTypes (header.abbreviationsTable, header.objectTableOffset, abbreviationsSector, - abbreviationsNode); - setSectorTypes (header.objectTableOffset, header.globalsOffset, objectsSector, objectNode); + setSectorTypes (header.abbreviationsTable, header.objectTableOffset, + abbreviationsSector, abbreviationsNode); + setSectorTypes (header.objectTableOffset, header.globalsOffset, objectsSector, + objectNode); setSectorTypes (header.globalsOffset, header.staticMemory, globalsSector, globalsNode); setSectorTypes (header.staticMemory, header.dictionaryOffset, grammarSector, @@ -232,7 +233,7 @@ public class InfocomDisk extends AbstractFormattedDisk int abbreviationsTable = HexFormatter.intValue (buffer[25], buffer[24]); int fileLength = HexFormatter.intValue (buffer[27], buffer[26]); - if (false) + if (true) { System.out.printf ("Version %,6d%n", version); System.out.printf ("Abbreviations %,6d%n", abbreviationsTable); @@ -247,8 +248,8 @@ public class InfocomDisk extends AbstractFormattedDisk if (abbreviationsTable >= objectTable) return false; - if (objectTable >= globals) - return false; + // if (objectTable >= globals) + // return false; if (globals >= staticMemory) return false; if (staticMemory >= dictionary) diff --git a/src/com/bytezone/diskbrowser/prodos/FileEntry.java b/src/com/bytezone/diskbrowser/prodos/FileEntry.java index e45ac5a..72a46fe 100755 --- a/src/com/bytezone/diskbrowser/prodos/FileEntry.java +++ b/src/com/bytezone/diskbrowser/prodos/FileEntry.java @@ -361,6 +361,10 @@ class FileEntry extends CatalogEntry implements ProdosConstants } break; + case FILE_TYPE_FNT: + file = new FontFile (name, exactBuffer); + break; + case FILE_TYPE_FONT: file = new QuickDrawFont (name, exactBuffer, fileType, auxType); break; @@ -423,7 +427,7 @@ class FileEntry extends CatalogEntry implements ProdosConstants private DataSource getRandomAccessTextFile () { - // Text files with aux (reclen) > 0 are random access, possibly with + // Text files with aux (reclen) > 0 are random access, possibly with // non-contiguous records, so they need to be handled differently switch (storageType) diff --git a/src/com/bytezone/diskbrowser/prodos/ProdosConstants.java b/src/com/bytezone/diskbrowser/prodos/ProdosConstants.java index 97dbb0a..7a033be 100755 --- a/src/com/bytezone/diskbrowser/prodos/ProdosConstants.java +++ b/src/com/bytezone/diskbrowser/prodos/ProdosConstants.java @@ -2,8 +2,11 @@ package com.bytezone.diskbrowser.prodos; public interface ProdosConstants { + int FILE_TYPE_PCD = 0x02; int FILE_TYPE_TEXT = 0x04; + int FILE_TYPE_PDA = 0x05; int FILE_TYPE_BINARY = 0x06; + int FILE_TYPE_FNT = 0x07; int FILE_TYPE_FOT = 0x08; // was Apple /// FotoFile int FILE_TYPE_DIRECTORY = 0x0F; int FILE_TYPE_ADB = 0x19; @@ -87,7 +90,7 @@ public interface ProdosConstants } /* http://www.kreativekorp.com/miscpages/a2info/filetypes.shtml - * + * * $00 UNK Unknown * $01 BAD Bad Block File * $02 PCD Pascal Code @@ -217,33 +220,33 @@ public interface ProdosConstants /* * https://groups.google.com/forum/#!topic/comp.sys.apple2/waoYCIbkJKs - * - * There are a number of disk utilities available that store images of disks that - * utilize file systems that are not ProDOS, at the end of a ProDOS volume. - * There's DOS Master, by Glen Bredon, that stores images of DOS 3.3 disks at the - * end of a ProDOS volume. Similarly, Pro/Part, by Steven Hirsch, stores images - * of CP/M volumes. Also, there's Pascal Partition Manager (PPM) that stores - * images of UCSD Pascal volumes. I've decided to refer to the area used to store - * volume images, by all three of these systems, as a Foreign Volume Area or FVA. - * All three of these systems modify the Block Allocation Map of a ProDOS volume - * to keep ProDOS from assigning blocks used by FVAs for use by files being - * written by ProDOS. Pascal Partition Manager is different from the other two - * in that it has a file type ($EF) and file kind (4) assigned to it by Apple. - * A directory listing of a ProODS volume containing an FVA managed by PPM will - * show a file name of "PASCAL.AREA". A directory listing of a ProDOS volume - * containing an FVA managed by DOS Master or Pro/Part will show absolutely nothing. - * Running a popular utility named "MR.FIXIT", also by Glen Bredon, against a - * ProDOS volume containing an FVA will report an error. Specifically, "MR.FIXIT" - * will complain that all the blocks used by an FVA as allocated but not in use. - * To solve this problem for Pro/Part I wrote a Foreign Volume Area utility - * program that generates a directory entry for the Pro/Part area. That entry has - * file kind 4, file type $EF, file name "PROPART.AREA" and an auxiliary file - * type $4853 (Steven Hirsch's initials). Today I realized that it's likely that - * the same thing could be done for DOS Master. Study of the source code for - * DOS Master will reveal it that's true. If it is, I propose that "DOS33.AREA" - * be used as the file name and $4247 as the auxiliary type (Glen Bredon's initials). - * As I compose the text of this message I realize that another solution is to - * modify "MR.FIXIT" to be aware of FVAs. But doing that would not allow someone - * doing a directory listing of a ProDOS volume containing an FVA to be aware + * + * There are a number of disk utilities available that store images of disks that + * utilize file systems that are not ProDOS, at the end of a ProDOS volume. + * There's DOS Master, by Glen Bredon, that stores images of DOS 3.3 disks at the + * end of a ProDOS volume. Similarly, Pro/Part, by Steven Hirsch, stores images + * of CP/M volumes. Also, there's Pascal Partition Manager (PPM) that stores + * images of UCSD Pascal volumes. I've decided to refer to the area used to store + * volume images, by all three of these systems, as a Foreign Volume Area or FVA. + * All three of these systems modify the Block Allocation Map of a ProDOS volume + * to keep ProDOS from assigning blocks used by FVAs for use by files being + * written by ProDOS. Pascal Partition Manager is different from the other two + * in that it has a file type ($EF) and file kind (4) assigned to it by Apple. + * A directory listing of a ProODS volume containing an FVA managed by PPM will + * show a file name of "PASCAL.AREA". A directory listing of a ProDOS volume + * containing an FVA managed by DOS Master or Pro/Part will show absolutely nothing. + * Running a popular utility named "MR.FIXIT", also by Glen Bredon, against a + * ProDOS volume containing an FVA will report an error. Specifically, "MR.FIXIT" + * will complain that all the blocks used by an FVA as allocated but not in use. + * To solve this problem for Pro/Part I wrote a Foreign Volume Area utility + * program that generates a directory entry for the Pro/Part area. That entry has + * file kind 4, file type $EF, file name "PROPART.AREA" and an auxiliary file + * type $4853 (Steven Hirsch's initials). Today I realized that it's likely that + * the same thing could be done for DOS Master. Study of the source code for + * DOS Master will reveal it that's true. If it is, I propose that "DOS33.AREA" + * be used as the file name and $4247 as the auxiliary type (Glen Bredon's initials). + * As I compose the text of this message I realize that another solution is to + * modify "MR.FIXIT" to be aware of FVAs. But doing that would not allow someone + * doing a directory listing of a ProDOS volume containing an FVA to be aware * that the FVA exists. */ \ No newline at end of file