From 20ac18e7adb5f692ca888e13890c50c7e8e0e695 Mon Sep 17 00:00:00 2001 From: norly Date: Thu, 27 Oct 2011 20:03:29 +0100 Subject: [PATCH] Added C header and printing demo. --- .gitignore | 1 + Makefile | 25 +++++++++++++++++-------- demo-printing.c | 12 ++++++++++++ libmalice.h | 16 ++++++++++++++++ 4 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 demo-printing.c create mode 100644 libmalice.h diff --git a/.gitignore b/.gitignore index 5761abc..2c5af63 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ *.o +demo-printing diff --git a/Makefile b/Makefile index cdd89df..8cdac42 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,26 @@ NASMFLAGS = -f elf +CINCLUDE= +CWARNS=-Wall -Wpointer-arith -Wnested-externs +CFLAGS=$(CINCLUDE) $(CWARNS) -O2 +LDFLAGS= -all: libmalice.o +SRCDIR=src +BINDIR=build + +all: libmalice.o demo-printing libmalice.o: libmalice.asm nasm $(NASMFLAGS) -o $@ $< +.c.o: + cc $(CFLAGS) -c -o $@ $< + +demo-printing: demo-printing.o libmalice.o + ld $(LDFLAGS) -nostdlib -e _lmStart -o demo-printing demo-printing.o libmalice.o + +demos: demo-printing + .PHONY : clean clean: rm -f *.o - -.PHONY : distclean -distclean: clean - rm -f *~ - -.PHONY : test -test: all + rm -f demo-printing diff --git a/demo-printing.c b/demo-printing.c new file mode 100644 index 0000000..1399e58 --- /dev/null +++ b/demo-printing.c @@ -0,0 +1,12 @@ +#include "libmalice.h" + +int lmMain(void) +{ + lmPrintString("Goodbye cruel world, I had too much "); + lmPrintInt32s(-559038737); + lmPrintChar('.'); + lmPrintChar('\n'); + lmPrintString("Oh my, I'm still here... ok, I'll exit now.\n"); + + return 42; +} \ No newline at end of file diff --git a/libmalice.h b/libmalice.h new file mode 100644 index 0000000..b8715dc --- /dev/null +++ b/libmalice.h @@ -0,0 +1,16 @@ +#ifndef _LIBMALICE_H_ +#define _LIBMALICE_H_ + +void _lmStart(void); +int lmMain(void); + +void lmExit(int exitstatus); + +void lmPrintChar(int chr); +void lmPrintString(char *string); +void lmPrintInt32s(int num); + +int lmReadChar(void); +int lmReadInt32s(void); + +#endif -- 2.30.2