2019-05-30 12:44:56 +02:00
|
|
|
// The OS/K Team licenses this file to you under the MIT license.
|
2019-05-29 16:57:22 +02:00
|
|
|
// See the LICENSE file in the project root for more information.
|
|
|
|
|
2019-06-20 12:31:36 +02:00
|
|
|
#include <unistd.h>
|
2019-06-05 12:53:09 +02:00
|
|
|
#include <in/instrs.h>
|
2019-06-20 17:44:48 +02:00
|
|
|
#include <pc/console.h>
|
2019-05-29 16:57:22 +02:00
|
|
|
|
2019-06-19 23:16:30 +02:00
|
|
|
IMPL_START_0(hlt)
|
|
|
|
{
|
2019-06-20 12:31:36 +02:00
|
|
|
CHK_SUPERV();
|
|
|
|
SDL_Event evt;
|
|
|
|
|
|
|
|
while (1)
|
|
|
|
{
|
|
|
|
if (SDL_WaitEvent(&evt) == 1)
|
|
|
|
{
|
|
|
|
if (evt.type == SDL_QUIT)
|
|
|
|
die(0);
|
|
|
|
}
|
|
|
|
}
|
2019-06-19 23:16:30 +02:00
|
|
|
}
|
|
|
|
IMPL_END;
|
2019-05-29 16:57:22 +02:00
|
|
|
|
|
|
|
IMPL_START_0(cli)
|
|
|
|
{
|
|
|
|
CHK_SUPERV();
|
2019-06-18 12:58:26 +02:00
|
|
|
cr0 &= ~IF;
|
2019-05-29 16:57:22 +02:00
|
|
|
}
|
|
|
|
IMPL_END;
|
|
|
|
|
|
|
|
IMPL_START_0(sti)
|
|
|
|
{
|
|
|
|
CHK_SUPERV();
|
2019-06-18 12:58:26 +02:00
|
|
|
cr0 |= IF;
|
2019-05-29 16:57:22 +02:00
|
|
|
}
|
|
|
|
IMPL_END;
|
|
|
|
|
|
|
|
IMPL_START_0(stop)
|
|
|
|
{
|
2019-06-02 16:33:28 +02:00
|
|
|
CHK_SUPERV();
|
2019-05-29 16:57:22 +02:00
|
|
|
_except(ctx, E_SHT, "STOP INSTR");
|
|
|
|
}
|
|
|
|
IMPL_END;
|
|
|
|
|