SRCDIR=src
BINDIR=build
-all: libmalice.o demo-printing
+all: libmalice.o demo-printing demo-input-char demo-input-int
libmalice.o: libmalice.asm
nasm $(NASMFLAGS) -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
+ ld $(LDFLAGS) -nostdlib -e _lmStart -o $@ $^
+
+demo-input-char: demo-input-char.o libmalice.o
+ ld $(LDFLAGS) -nostdlib -e _lmStart -o $@ $^
+
+demo-input-int: demo-input-int.o libmalice.o
+ ld $(LDFLAGS) -nostdlib -e _lmStart -o $@ $^
-demos: demo-printing
.PHONY : clean
clean:
rm -f *.o
rm -f demo-printing
+ rm -f demo-input-char
+ rm -f demo-input-int
--- /dev/null
+#include "libmalice.h"
+
+int lmMain(void)
+{
+ char c;
+
+ lmPrintString("This demo tests keyboard input for single characters.\n");
+
+ lmPrintString("Enter a letter and press return: ");
+ c = lmReadChar();
+ lmPrintString("You entered the letter ");
+ lmPrintChar(c);
+ lmPrintChar('.');
+ lmPrintChar('\n');
+
+ return 0;
+}
--- /dev/null
+#include "libmalice.h"
+
+int lmMain(void)
+{
+ int i;
+
+ lmPrintString("This demo tests keyboard input for integers.\n");
+
+ lmPrintString("Enter a number and press return: ");
+ i = lmReadInt32s();
+ lmPrintString("You entered the number ");
+ lmPrintInt32s(i);
+ lmPrintChar('.');
+ lmPrintChar('\n');
+
+ return 0;
+}