; The OS/K Team licenses this file to you under the MIT license. ; See the LICENSE file in the project root for more information. ; ; int putc(int ch) ; putc: prn ax0 mov rax, zero ret ; ; int printf(const char *fmt, ...) ; printf: mov ax2, ax0 mov ax0, putc mov ax1, STRLEN_MAX add ax3, rsp, 8 jmp doprnt ; ; int nprintf(const char *fmt, int n, ...) ; nprintf: mov ax2, ax0 mov ax0, putc add ax3, rsp, 8 jmp doprnt ; ; Print a string ; Guaranteed to only affect rcx and ax0 ; print: mov rcx, STRLEN_MAX b.z b[ax0], zero, .1 prns.rep.nz ax0 .1: ret ; ; Print exactly ax1 characters ; nprint: mov rcx, ax1 b.z b[ax0], zero, .1 prns.rep.nz ax0 .1: ret