mirror of
https://gitlab.os-k.eu/os-k-team/kvisc.git
synced 2023-08-25 14:05:46 +02:00
47 lines
788 B
C
47 lines
788 B
C
// The OS/K Team licenses this file to you under the MIT license.
|
|
// See the LICENSE file in the project root for more information.
|
|
|
|
#include <in/instrs.h>
|
|
#include <pc/console.h>
|
|
|
|
IMPL_START_1(prn)
|
|
{
|
|
// Magic value? :)
|
|
if (__builtin_expect(v1 == 0xC15000AF, 0))
|
|
console_clear(ctx);
|
|
|
|
else
|
|
{
|
|
if (p1->mlen > 1) {
|
|
trace("prn warning: large access size\n");
|
|
}
|
|
console_putc(ctx, (char)v1);
|
|
}
|
|
}
|
|
IMPL_END
|
|
|
|
IMPL_START_0(prns)
|
|
{
|
|
uchar ch = readmemzx(ctx, R(p1->reg), 1);
|
|
|
|
COMPARE(ch, 0);
|
|
|
|
if ((rfx & ZF) == 0)
|
|
{
|
|
console_putc(ctx, ch);
|
|
|
|
if (rfx & DF)
|
|
R(p1->reg)--;
|
|
else
|
|
R(p1->reg)++;
|
|
}
|
|
}
|
|
IMPL_END
|
|
|
|
IMPL_START_1(scan)
|
|
{
|
|
v1 = console_scankeybuf(ctx);
|
|
}
|
|
IMPL_OUT;
|
|
|