From 2a0ebb88df74ee30400b96441f96c35229de3101 Mon Sep 17 00:00:00 2001 From: pjht Date: Tue, 28 Mar 2023 12:26:39 -0500 Subject: [PATCH] Add terminal card driver --- kernel/main.68k | 1 + kernel/term.68k | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 kernel/term.68k diff --git a/kernel/main.68k b/kernel/main.68k index a0d899b..c00fa96 100644 --- a/kernel/main.68k +++ b/kernel/main.68k @@ -1,6 +1,7 @@ .global main main: move.l #inital_stack, a7 | Load the initial stack pointer + jsr term_init jsr pmem_init move.l #0x1000, d0 jsr push_page diff --git a/kernel/term.68k b/kernel/term.68k new file mode 100644 index 0000000..30eea45 --- /dev/null +++ b/kernel/term.68k @@ -0,0 +1,33 @@ +.global term_init +term_init: +move.b #0x3, d0 | Get the pointer to the terminal card +jsr find_first_card +move.l a0, term_io_base +rts + +| Prints the string pointed to by a0 +| Clobbers d0, a1 +.global term_print +term_print: +move.l term_io_base, a1 +term_print_loop: +move.b (a0)+, d0 +cmpi.b #0, d0 +beq.b term_print_done +move.b d0, (a1) +bra.b term_print +term_print_done: +rts + +| Prints the string pointed to by a0 followed by a newline +| Clobbers d0, a1 +.global term_println +term_println: +bsr.b term_print +move.b #'\n, (a1) +rts + +.bss + +term_io_base: +.ds.b 4