move quickdraw stuff to its own file

This commit is contained in:
Kelvin Sherlock 2013-02-14 23:08:38 -05:00
parent 0f7568a2ca
commit 04d878c300
3 changed files with 107 additions and 3 deletions

73
toolbox/qd.cpp Normal file
View File

@ -0,0 +1,73 @@
#include "qd.h"
#include "toolbox.h"
#include <cpu/defs.h>
#include <cpu/CpuModule.h>
#include <cpu/fmem.h>
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);
}
}
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;
sp = StackFrame(cursorID);
fprintf(stderr, "%04x GetCursor(%04x)\n", trap, cursorID);
ToolReturn(sp, 0);
return 0;
}
uint16_t SetCursor(uint16_t trap)
{
uint32_t sp;
uint32_t cursor;
sp = StackFrame(cursor);
fprintf(stderr, "%04x SetCursor(%08x)\n", trap, cursor);
return 0;
}
}

15
toolbox/qd.h Normal file
View File

@ -0,0 +1,15 @@
#ifndef __mpw_qd_h__
#define __mpw_qd_h__
#include <cstdint>
namespace QD
{
uint16_t ShowCursor(uint16_t trap);
uint16_t GetCursor(uint16_t trap);
uint16_t SetCursor(uint16_t trap);
}
#endif

View File

@ -11,6 +11,7 @@
#include "rm.h"
#include "mm.h"
#include "os.h"
#include "qd.h"
#include "mpw_time.h"
@ -90,13 +91,28 @@ namespace ToolBox {
d0 = RM::GetResource(trap);
break;
// quickdraw
// quickdraw (AsmIIgs ... )
// _ShowCursor();
case 0xA853:
d0 = 0;
d0 = QD::ShowCursor(trap);
break;
// GetCursor (cursorlD: INTEGER) : CursHandle;
case 0xA9B9:
d0 = QD::GetCursor(trap);
break;
//SetCursor (crsr: Cursor)
case 0xA851:
d0 = QD::SetCursor(trap);
break;
// GetFNum (fontName: Str255; VAR theNum: INTEGER);
case 0xa900:
d0 = QD::GetFNum(trap);
break;
default: