From 06f240dd6dd5f6eaaf934c6a4d765a69a3c2b383 Mon Sep 17 00:00:00 2001 From: giomba Date: Fri, 13 Oct 2023 09:08:22 +0200 Subject: [PATCH] Mix C and assembly, minor modifications to print routines. --- Makefile | 3 ++- src/ceda_print.h | 5 +++-- src/ceda_print_a.asm | 26 ++++++++++++++++++++++++++ src/{ceda_print.c => ceda_print_c.c} | 0 src/main.c | 1 + 5 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 src/ceda_print_a.asm rename src/{ceda_print.c => ceda_print_c.c} (100%) diff --git a/Makefile b/Makefile index 94d36b5..7eacd99 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,8 @@ PROJECT := demo SRC = \ - src/ceda_print.c \ + src/ceda_print_a.asm \ + src/ceda_print_c.c \ src/main.c \ \ diff --git a/src/ceda_print.h b/src/ceda_print.h index b2c7767..ca08a5e 100644 --- a/src/ceda_print.h +++ b/src/ceda_print.h @@ -1,7 +1,8 @@ #ifndef CEDA_PRINT_H #define CEDA_PRINT_H -void ceda_print(const char* s); +void ceda_cls(void); + +void ceda_print(const char *s); #endif // CEDA_PRINT_H - diff --git a/src/ceda_print_a.asm b/src/ceda_print_a.asm new file mode 100644 index 0000000..3e14e15 --- /dev/null +++ b/src/ceda_print_a.asm @@ -0,0 +1,26 @@ +SECTION code +PUBLIC _ceda_cls + +_ceda_cls: + push af + push bc + push de + push hl + + ld hl,$d000 + ld de,2000 + ld c,$20 +_ceda_cls_loop: + ld (hl),c + inc hl + dec de + ld a,d + or e + jp nz,_ceda_cls_loop + + pop hl + pop de + pop bc + pop af + + ret diff --git a/src/ceda_print.c b/src/ceda_print_c.c similarity index 100% rename from src/ceda_print.c rename to src/ceda_print_c.c diff --git a/src/main.c b/src/main.c index 1675533..66c64de 100644 --- a/src/main.c +++ b/src/main.c @@ -4,6 +4,7 @@ int globalvar = 0x7777; int main(void) { ceda_print("Hello world!"); + ceda_cls(); return 0; }