fixed bad prodos date

This commit is contained in:
Denis Molony 2021-07-30 19:33:03 +10:00
parent 068f382c87
commit 4767c317d0
3 changed files with 14 additions and 5 deletions

View File

@ -26,7 +26,10 @@ public class CPMTextFile extends TextFile
{
String line = getLine (ptr);
text.append (line + "\n");
ptr += line.length () + 2;
ptr += line.length () + 1;
if (ptr < buffer.length && buffer[ptr - 1] == 0x0D && buffer[ptr] == 0x0A)
++ptr;
while (ptr < buffer.length && buffer[ptr] == 0)
++ptr;
}
@ -43,8 +46,8 @@ public class CPMTextFile extends TextFile
{
StringBuilder line = new StringBuilder ();
int max = buffer.length - 1;
while (ptr < max && buffer[ptr] != 0x0D && buffer[ptr + 1] != 0x0A)
// int max = buffer.length - 1;
while (ptr < buffer.length && buffer[ptr] != 0x0D && buffer[ptr] != 0x0A)
line.append ((char) (buffer[ptr++] & 0x7F));
return line.toString ();

View File

@ -217,8 +217,9 @@ class DirectoryEntry implements AppleFileSource
appleFile = new DefaultAppleFile (name, exactBuffer, "COM File");
else if ("DVR".equals (type))
appleFile = new DefaultAppleFile (name, exactBuffer, "DVR File");
else if ("ASM".equals (type) || "DOC".equals (type) || "TXT".equals (type)
|| "LET".equals (type) || "ALX".equals (type) || "SRC".equals (type)
else if ("ASM".equals (type) || "DOC".equals (type) || "COB".equals (type)
|| "HLP".equals (type) || "TXT".equals (type) || "LET".equals (type)
|| "ALX".equals (type) || "SRC".equals (type) || "H".equals (type)
|| exactBuffer[len - 1] == 0x1A)
appleFile = new CPMTextFile (name, exactBuffer);
else if ("BAS".equals (type))

View File

@ -231,6 +231,11 @@ public final class Utility
int minute = buffer[offset + 2] & 0x3F;
int hour = buffer[offset + 3] & 0x1F;
if (hour > 23)
hour = 0;
if (minute > 59)
minute = 0;
if (year < 70)
year += 2000;
else