mirror of
https://github.com/ksherlock/mpw.git
synced 2025-01-09 13:30:34 +00:00
GetFPos (SC)
This commit is contained in:
parent
be3c728185
commit
722aa2e18a
@ -581,6 +581,35 @@ namespace OS
|
|||||||
return d0;
|
return d0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16_t GetFPos(uint16_t trap)
|
||||||
|
{
|
||||||
|
uint32_t d0;
|
||||||
|
|
||||||
|
uint32_t parm = cpuGetAReg(0);
|
||||||
|
|
||||||
|
Log("%04x GetFPos(%08x)\n", trap, parm);
|
||||||
|
|
||||||
|
//uint32_t ioCompletion = memoryReadLong(parm + 12);
|
||||||
|
uint16_t ioRefNum = memoryReadWord(parm + 24);
|
||||||
|
|
||||||
|
int rv = ::lseek(ioRefNum, 0, SEEK_CUR);
|
||||||
|
if (rv < 0)
|
||||||
|
{
|
||||||
|
d0 = errno_to_oserr(errno);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memoryWriteLong(0, parm + 36); // ioReqCount
|
||||||
|
memoryWriteLong(0, parm + 40); // ioActCount
|
||||||
|
memoryWriteWord(0, parm + 44); // ioPosMode
|
||||||
|
memoryWriteLong(rv, parm + 46); // ioPosOffset
|
||||||
|
d0 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
memoryWriteWord(d0, parm + 16);
|
||||||
|
return d0;
|
||||||
|
}
|
||||||
|
|
||||||
uint16_t SetFPos(uint16_t trap)
|
uint16_t SetFPos(uint16_t trap)
|
||||||
{
|
{
|
||||||
uint32_t d0;
|
uint32_t d0;
|
||||||
|
@ -46,6 +46,7 @@ namespace OS
|
|||||||
uint16_t GetEOF(uint16_t trap);
|
uint16_t GetEOF(uint16_t trap);
|
||||||
uint16_t SetEOF(uint16_t trap);
|
uint16_t SetEOF(uint16_t trap);
|
||||||
|
|
||||||
|
uint16_t GetFPos(uint16_t trap);
|
||||||
uint16_t SetFPos(uint16_t trap);
|
uint16_t SetFPos(uint16_t trap);
|
||||||
|
|
||||||
uint16_t GetVol(uint16_t trap);
|
uint16_t GetVol(uint16_t trap);
|
||||||
|
@ -80,6 +80,10 @@ namespace ToolBox {
|
|||||||
d0 = OS::HGetVol(trap);
|
d0 = OS::HGetVol(trap);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 0xa018:
|
||||||
|
d0 = OS::GetFPos(trap);
|
||||||
|
break;
|
||||||
|
|
||||||
case 0xa044:
|
case 0xa044:
|
||||||
d0 = OS::SetFPos(trap);
|
d0 = OS::SetFPos(trap);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user