diff --git a/toolbox/os.h b/toolbox/os.h index 3cebd30..2579fb0 100644 --- a/toolbox/os.h +++ b/toolbox/os.h @@ -41,6 +41,7 @@ namespace OS uint16_t FlushVol(uint16_t trap); uint16_t GetFileInfo(uint16_t trap); + uint16_t HGetFileInfo(uint16_t trap); uint16_t SetFileInfo(uint16_t trap); uint16_t GetEOF(uint16_t trap); diff --git a/toolbox/os_hfs_dispatch.cpp b/toolbox/os_hfs_dispatch.cpp index 56ab75e..a8c7e91 100644 --- a/toolbox/os_hfs_dispatch.cpp +++ b/toolbox/os_hfs_dispatch.cpp @@ -204,6 +204,18 @@ namespace OS { return OS::Open(0xa000); } + + uint16_t PBHOpenDF(uint32_t paramBlock) + { + // PBHOpen... is identical to PBOpen... except + // that it accepts a directory ID in ioDirID. + + Log(" PBHOpenDF\n"); + // same as Open but slightly different handling of . files. + return OS::Open(0xa000); + } + + uint16_t FSDispatch(uint16_t trap) { @@ -219,16 +231,13 @@ namespace OS { switch (selector) { - //case 0x0009: - //return PBGetCatInfo(paramBlock); - //break; - case 0x1a: + case 0x001a: return PBOpenDF(paramBlock); break; default: - fprintf(stderr, "HFSDispatch: selector %08x not implemented\n", + fprintf(stderr, "FSDispatch: selector %08x not implemented\n", selector); exit(1); }