#pragma intel_syntax

import default_readword

inline asm void exit() {
    [$b4, 0, $cd, $21]
	? ret
}
inline asm void putchar (byte e) {
    [$b4, 2, $cd, $21]
	? ret
}

inline void new_line() {
	putchar(13)
	putchar(10)
}

inline asm byte getchar() {
    [$b4, 1, $cd, $21]
	? ret
}

array __readline_out[83]
const pointer readline_out = __readline_out.addr + 2

pointer readline() {
     __readline_out[0] = 81
     __readline_out[1] = 0
     asm {
        ? lxi d, __readline_out.addr
        [$b4, $0a, $cd, $21]
     }
     __readline_out[__readline_out[1] + 2] = 0
     new_line()
     return __readline_out + 2
}
