Files
wassembly/src/execute/interrupts.cpp

25 lines
700 B
C++

#include <cstdio>
#include <execute/interrupts.hpp>
namespace Execute
{
std::vector<InterruptFn> GetInterrupts()
{
return std::vector<InterruptFn>
{
// 0 print char
[](Execute::Registers & registers, std::vector<std::uint8_t> & memory) { std::putc(registers.A, stdout); },
// 1 print decimal integer
[](Execute::Registers & registers, std::vector<std::uint8_t> & memory) { std::printf("%i", registers.A); },
// 2 print string from memory
[](Execute::Registers & registers, std::vector<std::uint8_t> & memory)
{
unsigned const end = registers.A + registers.B;
for(unsigned i = registers.A; i < end; ++i)
{
std::putc(memory[i], stdout);
}
}
};
}
}