mpw/toolbox/qd.cpp

92 lines
1.3 KiB
C++
Raw Normal View History

2013-02-15 04:08:38 +00:00
#include "qd.h"
#include "toolbox.h"
#include <cpu/defs.h>
#include <cpu/CpuModule.h>
#include <cpu/fmem.h>
2013-02-15 05:00:15 +00:00
#include "stackframe.h"
2013-02-15 04:08:38 +00:00
2013-02-15 05:00:15 +00:00
#if 0
2013-02-15 04:08:38 +00:00
namespace
{
uint32_t StackFrame(uint32_t &a)
{
uint32_t sp = cpuGetAReg(7);
a = memoryReadLong(sp); sp += 4;
cpuSetAReg(7, sp);
return sp;
}
uint32_t StackFrame(uint16_t &a)
{
uint32_t sp = cpuGetAReg(7);
a = memoryReadWord(sp); sp += 2;
cpuSetAReg(7, sp);
return sp;
}
void ToolReturn(uint32_t sp, uint32_t value)
{
memoryWriteLong(value, sp);
}
}
2013-02-15 05:00:15 +00:00
#endif
2013-02-15 04:08:38 +00:00
namespace QD {
uint16_t ShowCursor(uint16_t trap)
{
fprintf(stderr, "%04x ShowCursor()\n", trap);
return 0;
}
uint16_t GetCursor(uint16_t trap)
{
uint32_t sp;
uint16_t cursorID;
2013-02-15 05:00:15 +00:00
sp = StackFrame<2>(cursorID);
2013-02-15 04:08:38 +00:00
fprintf(stderr, "%04x GetCursor(%04x)\n", trap, cursorID);
2013-02-15 05:00:15 +00:00
ToolReturn<4>(sp, 0);
2013-02-15 04:08:38 +00:00
return 0;
}
uint16_t SetCursor(uint16_t trap)
{
uint32_t sp;
uint32_t cursor;
2013-02-15 05:00:15 +00:00
sp = StackFrame<4>(cursor);
2013-02-15 04:08:38 +00:00
fprintf(stderr, "%04x SetCursor(%08x)\n", trap, cursor);
return 0;
}
2013-02-15 05:00:15 +00:00
uint16_t GetFNum(uint16_t trap)
{
uint32_t sp;
uint32_t fontName;
uint32_t theNum;
sp = StackFrame<8>(fontName, theNum);
std::string sname = ToolBox::ReadPString(fontName);
fprintf(stderr, "%04x GetFNum(%s, %08x)\n", trap, sname.c_str(), theNum);
if (theNum) memoryWriteWord(0, theNum);
return 0;
}
2013-02-15 04:08:38 +00:00
}