feature: character escape (you can now write text)

fix: cursor when changing screens
This commit is contained in:
2024-09-08 15:32:47 +02:00
parent cf617d6984
commit d0ddac4775
5 changed files with 125 additions and 109 deletions

View File

@ -1,62 +1,61 @@
BUILDDIR := build
SOURCEDIR := src
OBJECTDIR := obj
NAME := bozOS
AS := i386-elf-as
ASFLAGS :=
CC := i386-elf-gcc
CCFLAGS := -std=gnu99 -ffreestanding -O2 -Wall -Wextra -iquotelibbozo/headers -iquoteheaders -g
CFLAGS := -std=gnu99 -ffreestanding -O2 -Wall -Wextra -iquotelibbozo/headers -iquoteheaders -MMD -g
LD := $(CC)
LDFLAGS := -T boot/linker.ld -ffreestanding -O2 -nostdlib
LIBS := -L libbozo/build/ -lbozo -lgcc
SSRC := $(shell find $(SOURCEDIR) -name '*.s')
CSRC := $(shell find $(SOURCEDIR) -name '*.c')
OBJ := $(patsubst $(SOURCEDIR)/%.c,$(OBJECTDIR)/%.o,$(CSRC))\
$(patsubst $(SOURCEDIR)/%.s,$(OBJECTDIR)/%.o,$(SSRC))
SSRC := $(shell find src -name '*.s')
CSRC := $(shell find src -name '*.c')
OBJ := $(patsubst src/%.c,obj/%.o,$(CSRC))\
$(patsubst src/%.s,obj/%.o,$(SSRC))
DEP := $(patsubst %.o,%.d,$(OBJ))
all: $(NAME)
$(OBJECTDIR)/%.o: $(SOURCEDIR)/%.s
obj/%.o: src/%.s
mkdir -p $(dir $@)
$(AS) $(ASFLAGS) $< -o $@
$(OBJECTDIR)/%.o: $(SOURCEDIR)/%.c
obj/%.o: src/%.c
mkdir -p $(dir $@)
$(CC) $(CCFLAGS) -c $< -o $@
$(CC) $(CFLAGS) -c $< -o $@
$(NAME): $(OBJ)
make -C libbozo
mkdir -p $(BUILDDIR)/
$(LD) $(LDFLAGS) -o $(BUILDDIR)/$(NAME).bin $(OBJ) $(LIBS)
mkdir -p build
$(LD) $(LDFLAGS) -o build/$(NAME).bin $(OBJ) $(LIBS)
run: $(NAME)
qemu-system-i386 -kernel $(BUILDDIR)/$(NAME).bin
qemu-system-i386 -kernel build/$(NAME).bin
iso: $(NAME)
mkdir -p isodir/boot/grub
cp $(BUILDDIR)/$(NAME).bin isodir/boot/bozOS.bin
cp build/$(NAME).bin isodir/boot/$(NAME).bin
cp config/grub.cfg isodir/boot/grub/grub.cfg
grub-mkrescue -o $(BUILDDIR)/bozOS.iso isodir
grub-mkrescue -o build/$(NAME).iso isodir
rm -rf isodir
run_iso: iso
qemu-system-i386 -cdrom $(BUILDDIR)/bozOS.iso
run-iso: iso
qemu-system-i386 -cdrom build/$(NAME).iso
debug: iso
qemu-system-i386 -s -S $(BUILDDIR)/bozOS.iso
qemu-system-i386 -s -S build/$(NAME).iso
clean:
make -C libbozo clean
rm -rf $(OBJDIR)
rm -rf isodir
rm -rf obj
fclean: clean
make -C libbozo fclean
rm -rf $(BUILDDIR)/
rm -rf build
re: fclean all
.PHONY: all clean fclean re run iso run_iso
.PHONY: all clean fclean re run iso run-iso
-include $(DEP)