Adds some improved standard library.

This commit is contained in:
Felix Queissner 2015-10-11 12:48:01 +02:00
parent c9dd9ac668
commit 125ffa4333
11 changed files with 321 additions and 220 deletions

16
Depfile
View file

@ -26,19 +26,21 @@ LDFLAGS=-g -m32 -nostdlib -fno-builtin -Tkernel.ld
-- --
TOOLS=/home/felix/projects/Electronics/build-Electronics-Clang-Debug/bin
obj/main.o: scripts/main.cu obj/main.o: scripts/main.cu
/home/felix/projects/Electronics/build-Electronics-Desktop-Debug/bin/copper \ $(TOOLS)/copper \
scripts/main.cu > \ scripts/main.cu > \
scripts/main.cu.spark scripts/main.cu.spark
/home/felix/projects/Electronics/build-Electronics-Desktop-Debug/bin/spark \ $(TOOLS)/spark \
scripts/main.cu.spark \ scripts/main.cu.spark \
obj/main.ca obj/main.in
objcopy -B i386 -I binary -O elf32-i386 \ objcopy -B i386 -I binary -O elf32-i386 \
obj/main.ca obj/main.o obj/main.in obj/main.o
objcopy \ objcopy \
--redefine-sym _binary_obj_main_ca_start=mainscript_start \ --redefine-sym _binary_obj_main_in_start=mainscript_start \
--redefine-sym _binary_obj_main_ca_end=mainscript_end \ --redefine-sym _binary_obj_main_in_end=mainscript_end \
--redefine-sym _binary_obj_main_ca_size=mainscript_size \ --redefine-sym _binary_obj_main_in_size=mainscript_size \
obj/main.o obj/main.o
.PHONY: run .PHONY: run

View file

@ -8,12 +8,13 @@ CXX = g++
LD = g++ LD = g++
LEX = flex LEX = flex
YACC = bison YACC = bison
TEMPLE = mono temple.exe
# File Lists # File Lists
SRCS_AS = asm/dynamic.S asm/intr_common_handler.S asm/multiboot.S asm/start.S SRCS_AS = asm/dynamic.S asm/intr_common_handler.S asm/multiboot.S asm/start.S
SRCS_CC = src/console.c src/init.c src/interrupts.c src/malloc.c src/pmm.c src/serial.c src/stdlib.c src/timer.c src/vmm.c SRCS_CC = src/console.c src/init.c src/interrupts.c src/malloc.c src/pmm.c src/serial.c src/stdlib.c src/timer.c src/vmm.c
SRCS_CXX = src/cplusplus.cpp src/cpp-test.cpp src/vm.cpp csl/cpustatetype.cpp SRCS_CXX = src/cplusplus.cpp src/cpp-test.cpp src/vm.cpp csl/casts.cpp csl/cpustatetype.cpp csl/io.cpp
OBJS = obj/dynamic.o obj/intr_common_handler.o obj/multiboot.o obj/start.o obj/console.o obj/init.o obj/interrupts.o obj/malloc.o obj/pmm.o obj/serial.o obj/stdlib.o obj/timer.o obj/vmm.o obj/cplusplus.o obj/cpp-test.o obj/vm.o obj/cpustatetype.o obj/main.o OBJS = obj/dynamic.o obj/intr_common_handler.o obj/multiboot.o obj/start.o obj/console.o obj/init.o obj/interrupts.o obj/malloc.o obj/pmm.o obj/serial.o obj/stdlib.o obj/timer.o obj/vmm.o obj/cplusplus.o obj/cpp-test.o obj/vm.o obj/casts.o obj/cpustatetype.o obj/io.o obj/main.o
# Flags # Flags
FLAGS = -m32 -DCIRCUIT_OS -Dnullptr=0 -D__cdecl="__attribute__((cdecl))" -mno-sse -mno-sse2 -mno-mmx -I/home/felix/projects/Electronics/Electronics/Conductance -I/home/felix/projects/Electronics/Electronics/Tools FLAGS = -m32 -DCIRCUIT_OS -Dnullptr=0 -D__cdecl="__attribute__((cdecl))" -mno-sse -mno-sse2 -mno-mmx -I/home/felix/projects/Electronics/Electronics/Conductance -I/home/felix/projects/Electronics/Electronics/Tools
@ -27,84 +28,92 @@ all: kernel
.PHONY: clean .PHONY: clean
clean: clean:
$(RM) obj/dynamic.o obj/intr_common_handler.o obj/multiboot.o obj/start.o obj/console.o obj/init.o obj/interrupts.o obj/malloc.o obj/pmm.o obj/serial.o obj/stdlib.o obj/timer.o obj/vmm.o obj/cplusplus.o obj/cpp-test.o obj/vm.o obj/cpustatetype.o obj/main.o $(RM) obj/dynamic.o obj/intr_common_handler.o obj/multiboot.o obj/start.o obj/console.o obj/init.o obj/interrupts.o obj/malloc.o obj/pmm.o obj/serial.o obj/stdlib.o obj/timer.o obj/vmm.o obj/cplusplus.o obj/cpp-test.o obj/vm.o obj/casts.o obj/cpustatetype.o obj/io.o obj/main.o
kernel: obj/dynamic.o obj/intr_common_handler.o obj/multiboot.o obj/start.o obj/console.o obj/init.o obj/interrupts.o obj/malloc.o obj/pmm.o obj/serial.o obj/stdlib.o obj/timer.o obj/vmm.o obj/cplusplus.o obj/cpp-test.o obj/vm.o obj/cpustatetype.o obj/main.o conductance/assembly.o conductance/compoundtype.o conductance/instructions.o conductance/opcodes.o conductance/process.o conductance/string.o conductance/thread.o conductance/virtualmachine.o conductance/vmpointertype.o conductance/vmprimitivetype.o conductance/vmtype.o conductance/vmvalue.o conductance/vmvoidtype.o kernel: obj/dynamic.o obj/intr_common_handler.o obj/multiboot.o obj/start.o obj/console.o obj/init.o obj/interrupts.o obj/malloc.o obj/pmm.o obj/serial.o obj/stdlib.o obj/timer.o obj/vmm.o obj/cplusplus.o obj/cpp-test.o obj/vm.o obj/casts.o obj/cpustatetype.o obj/io.o obj/main.o conductance/assembly.o conductance/compoundtype.o conductance/instructions.o conductance/opcodes.o conductance/process.o conductance/string.o conductance/thread.o conductance/virtualmachine.o conductance/vmpointertype.o conductance/vmprimitivetype.o conductance/vmtype.o conductance/vmvalue.o conductance/vmvoidtype.o
$(LD) $(FLAGS) $(LDFLAGS) -o $@ obj/dynamic.o obj/intr_common_handler.o obj/multiboot.o obj/start.o obj/console.o obj/init.o obj/interrupts.o obj/malloc.o obj/pmm.o obj/serial.o obj/stdlib.o obj/timer.o obj/vmm.o obj/cplusplus.o obj/cpp-test.o obj/vm.o obj/cpustatetype.o obj/main.o conductance/assembly.o conductance/compoundtype.o conductance/instructions.o conductance/opcodes.o conductance/process.o conductance/string.o conductance/thread.o conductance/virtualmachine.o conductance/vmpointertype.o conductance/vmprimitivetype.o conductance/vmtype.o conductance/vmvalue.o conductance/vmvoidtype.o $(LD) $(FLAGS) $(LDFLAGS) -o $@ obj/dynamic.o obj/intr_common_handler.o obj/multiboot.o obj/start.o obj/console.o obj/init.o obj/interrupts.o obj/malloc.o obj/pmm.o obj/serial.o obj/stdlib.o obj/timer.o obj/vmm.o obj/cplusplus.o obj/cpp-test.o obj/vm.o obj/casts.o obj/cpustatetype.o obj/io.o obj/main.o conductance/assembly.o conductance/compoundtype.o conductance/instructions.o conductance/opcodes.o conductance/process.o conductance/string.o conductance/thread.o conductance/virtualmachine.o conductance/vmpointertype.o conductance/vmprimitivetype.o conductance/vmtype.o conductance/vmvalue.o conductance/vmvoidtype.o
# src/console.c # src/console.c
obj/console.o: src/console.c include/console.h include/kstdlib.h \ obj/console.o: src/console.c include/console.h include/kstdlib.h \
include/varargs.h include/config.h include/malloc.h include/varargs.h include/config.h include/malloc.h
$(CC) $(FLAGS) $(CCFLAGS) -o $@ -c src/console.c $(CC) -iquoteobj $(FLAGS) $(CCFLAGS) -o $@ -c src/console.c
# src/init.c # src/init.c
obj/init.o: src/init.c include/kernel.h include/kstdlib.h include/varargs.h \ obj/init.o: src/init.c include/kernel.h include/kstdlib.h include/varargs.h \
include/config.h include/malloc.h include/console.h include/interrupts.h \ include/config.h include/malloc.h include/console.h include/interrupts.h \
include/cpustate.h include/pmm.h include/multiboot.h include/vmm.h \ include/cpustate.h include/pmm.h include/multiboot.h include/vmm.h \
include/timer.h include/serial.h include/timer.h include/serial.h
$(CC) $(FLAGS) $(CCFLAGS) -o $@ -c src/init.c $(CC) -iquoteobj $(FLAGS) $(CCFLAGS) -o $@ -c src/init.c
# src/interrupts.c # src/interrupts.c
obj/interrupts.o: src/interrupts.c include/interrupts.h include/cpustate.h \ obj/interrupts.o: src/interrupts.c include/interrupts.h include/cpustate.h \
include/console.h include/kstdlib.h include/varargs.h include/config.h \ include/console.h include/kstdlib.h include/varargs.h include/config.h \
include/malloc.h include/io.h src/intr_stubs.h include/malloc.h include/io.h src/intr_stubs.h
$(CC) $(FLAGS) $(CCFLAGS) -o $@ -c src/interrupts.c $(CC) -iquoteobj $(FLAGS) $(CCFLAGS) -o $@ -c src/interrupts.c
# src/malloc.c # src/malloc.c
obj/malloc.o: src/malloc.c include/config.h include/kernel.h \ obj/malloc.o: src/malloc.c include/config.h include/kernel.h \
include/kstdlib.h include/varargs.h include/malloc.h include/console.h \ include/kstdlib.h include/varargs.h include/malloc.h include/console.h \
include/serial.h include/serial.h
$(CC) $(FLAGS) $(CCFLAGS) -o $@ -c src/malloc.c $(CC) -iquoteobj $(FLAGS) $(CCFLAGS) -o $@ -c src/malloc.c
# src/pmm.c # src/pmm.c
obj/pmm.o: src/pmm.c include/pmm.h include/multiboot.h include/kernel.h \ obj/pmm.o: src/pmm.c include/pmm.h include/multiboot.h include/kernel.h \
include/kstdlib.h include/varargs.h include/config.h include/malloc.h \ include/kstdlib.h include/varargs.h include/config.h include/malloc.h \
include/console.h include/console.h
$(CC) $(FLAGS) $(CCFLAGS) -o $@ -c src/pmm.c $(CC) -iquoteobj $(FLAGS) $(CCFLAGS) -o $@ -c src/pmm.c
# src/serial.c # src/serial.c
obj/serial.o: src/serial.c include/io.h include/serial.h include/kstdlib.h \ obj/serial.o: src/serial.c include/io.h include/serial.h include/kstdlib.h \
include/varargs.h include/config.h include/malloc.h include/varargs.h include/config.h include/malloc.h
$(CC) $(FLAGS) $(CCFLAGS) -o $@ -c src/serial.c $(CC) -iquoteobj $(FLAGS) $(CCFLAGS) -o $@ -c src/serial.c
# src/stdlib.c # src/stdlib.c
obj/stdlib.o: src/stdlib.c include/kstdlib.h include/varargs.h \ obj/stdlib.o: src/stdlib.c include/kstdlib.h include/varargs.h \
include/config.h include/malloc.h include/kernel.h include/config.h include/malloc.h include/kernel.h
$(CC) $(FLAGS) $(CCFLAGS) -o $@ -c src/stdlib.c $(CC) -iquoteobj $(FLAGS) $(CCFLAGS) -o $@ -c src/stdlib.c
# src/timer.c # src/timer.c
obj/timer.o: src/timer.c include/timer.h include/kernel.h \ obj/timer.o: src/timer.c include/timer.h include/kernel.h \
include/interrupts.h include/cpustate.h include/interrupts.h include/cpustate.h
$(CC) $(FLAGS) $(CCFLAGS) -o $@ -c src/timer.c $(CC) -iquoteobj $(FLAGS) $(CCFLAGS) -o $@ -c src/timer.c
# src/vmm.c # src/vmm.c
obj/vmm.o: src/vmm.c include/config.h include/vmm.h include/pmm.h \ obj/vmm.o: src/vmm.c include/config.h include/vmm.h include/pmm.h \
include/multiboot.h include/kstdlib.h include/varargs.h include/malloc.h \ include/multiboot.h include/kstdlib.h include/varargs.h include/malloc.h \
include/console.h include/kernel.h include/console.h include/kernel.h
$(CC) $(FLAGS) $(CCFLAGS) -o $@ -c src/vmm.c $(CC) -iquoteobj $(FLAGS) $(CCFLAGS) -o $@ -c src/vmm.c
# src/cplusplus.cpp # src/cplusplus.cpp
obj/cplusplus.o: src/cplusplus.cpp include/kstdlib.h include/varargs.h \ obj/cplusplus.o: src/cplusplus.cpp include/kstdlib.h include/varargs.h \
include/config.h include/malloc.h include/console.h include/ker/new.hpp include/config.h include/malloc.h include/console.h include/ker/new.hpp
$(CXX) $(FLAGS) $(CXXFLAGS) -o $@ -c src/cplusplus.cpp $(CXX) -iquoteobj $(FLAGS) $(CXXFLAGS) -o $@ -c src/cplusplus.cpp
# src/cpp-test.cpp # src/cpp-test.cpp
obj/cpp-test.o: src/cpp-test.cpp include/console.h include/ker/string.hpp \ obj/cpp-test.o: src/cpp-test.cpp include/console.h include/ker/string.hpp \
include/ker/vector.hpp include/ker/dictionary.hpp include/kernel.h \ include/ker/vector.hpp include/ker/dictionary.hpp include/kernel.h \
include/ker/pair.hpp include/ker/pair.hpp
$(CXX) $(FLAGS) $(CXXFLAGS) -o $@ -c src/cpp-test.cpp $(CXX) -iquoteobj $(FLAGS) $(CXXFLAGS) -o $@ -c src/cpp-test.cpp
# src/vm.cpp # src/vm.cpp
obj/vm.o: src/vm.cpp include/kstdlib.h include/varargs.h include/config.h \ obj/vm.o: src/vm.cpp include/kstdlib.h include/varargs.h include/config.h \
include/malloc.h include/timer.h include/dynamic.h include/console.h \ include/malloc.h include/timer.h include/dynamic.h include/console.h \
include/interrupts.h include/cpustate.h src/../csl/cpustatetype.hpp \ include/interrupts.h include/cpustate.h src/../csl/cpustatetype.hpp \
include/io.h src/../csl/io.hpp src/../csl/casts.hpp include/io.h
$(CXX) $(FLAGS) $(CXXFLAGS) -o $@ -c src/vm.cpp $(CXX) -iquoteobj $(FLAGS) $(CXXFLAGS) -o $@ -c src/vm.cpp
# csl/casts.cpp
obj/casts.o: csl/casts.cpp csl/casts.hpp
$(CXX) -iquoteobj $(FLAGS) $(CXXFLAGS) -o $@ -c csl/casts.cpp
# csl/cpustatetype.cpp # csl/cpustatetype.cpp
obj/cpustatetype.o: csl/cpustatetype.cpp csl/cpustatetype.hpp \ obj/cpustatetype.o: csl/cpustatetype.cpp csl/cpustatetype.hpp \
include/cpustate.h include/console.h include/cpustate.h include/console.h
$(CXX) $(FLAGS) $(CXXFLAGS) -o $@ -c csl/cpustatetype.cpp $(CXX) -iquoteobj $(FLAGS) $(CXXFLAGS) -o $@ -c csl/cpustatetype.cpp
# csl/io.cpp
obj/io.o: csl/io.cpp include/io.h csl/io.hpp
$(CXX) -iquoteobj $(FLAGS) $(CXXFLAGS) -o $@ -c csl/io.cpp
# asm/dynamic.S # asm/dynamic.S
obj/dynamic.o: asm/dynamic.S obj/dynamic.o: asm/dynamic.S
@ -124,19 +133,21 @@ obj/start.o: asm/start.S
# Custom Targets # Custom Targets
TOOLS=/home/felix/projects/Electronics/build-Electronics-Clang-Debug/bin
obj/main.o: scripts/main.cu obj/main.o: scripts/main.cu
/home/felix/projects/Electronics/build-Electronics-Desktop-Debug/bin/copper \ $(TOOLS)/copper \
scripts/main.cu > \ scripts/main.cu > \
scripts/main.cu.spark scripts/main.cu.spark
/home/felix/projects/Electronics/build-Electronics-Desktop-Debug/bin/spark \ $(TOOLS)/spark \
scripts/main.cu.spark \ scripts/main.cu.spark \
obj/main.ca obj/main.in
objcopy -B i386 -I binary -O elf32-i386 \ objcopy -B i386 -I binary -O elf32-i386 \
obj/main.ca obj/main.o obj/main.in obj/main.o
objcopy \ objcopy \
--redefine-sym _binary_obj_main_ca_start=mainscript_start \ --redefine-sym _binary_obj_main_in_start=mainscript_start \
--redefine-sym _binary_obj_main_ca_end=mainscript_end \ --redefine-sym _binary_obj_main_in_end=mainscript_end \
--redefine-sym _binary_obj_main_ca_size=mainscript_size \ --redefine-sym _binary_obj_main_in_size=mainscript_size \
obj/main.o obj/main.o
.PHONY: run .PHONY: run

View file

@ -15,7 +15,7 @@ CXX = g++
DEFINES = -DCIRCUIT_OS DEFINES = -DCIRCUIT_OS
CFLAGS = -pipe -m32 -g -fPIC -Wall -W $(DEFINES) CFLAGS = -pipe -m32 -g -fPIC -Wall -W $(DEFINES)
CXXFLAGS = -pipe -g -Wall -Wextra -fno-stack-protector -fno-use-cxa-atexit -nostdlib -fno-builtin -fno-rtti -fno-exceptions -ffreestanding -m32 -fno-leading-underscore -g -fPIC -std=c++0x -Wall -W $(DEFINES) CXXFLAGS = -pipe -g -Wall -Wextra -fno-stack-protector -fno-use-cxa-atexit -nostdlib -fno-builtin -fno-rtti -fno-exceptions -ffreestanding -m32 -fno-leading-underscore -g -fPIC -std=c++0x -Wall -W $(DEFINES)
INCPATH = -I../../Electronics/Electronics/Conductance -I. -I../../Electronics/Electronics/Tools -I../include -I/usr/lib/qt/mkspecs/linux-g++ INCPATH = -I../../Electronics/Electronics/Conductance -I. -I../../Electronics/Electronics/Tools -I/home/felix/projects/trainOS/include -I/usr/lib/qt/mkspecs/linux-g++
QMAKE = /usr/lib/qt/bin/qmake QMAKE = /usr/lib/qt/bin/qmake
DEL_FILE = rm -f DEL_FILE = rm -f
CHK_DIR_EXISTS= test -d CHK_DIR_EXISTS= test -d
@ -33,7 +33,7 @@ MOVE = mv -f
TAR = tar -cf TAR = tar -cf
COMPRESS = gzip -9f COMPRESS = gzip -9f
DISTNAME = Conductance1.0.0 DISTNAME = Conductance1.0.0
DISTDIR = /home/felix/projects/trainOS/conductance/.tmp/Conductance1.0.0 DISTDIR = /data/projects/trainOS/conductance/.tmp/Conductance1.0.0
AR = ar cqs AR = ar cqs
RANLIB = RANLIB =
SED = sed SED = sed
@ -81,7 +81,6 @@ DIST = /usr/lib/qt/mkspecs/features/spec_pre.prf \
/usr/lib/qt/mkspecs/common/g++-unix.conf \ /usr/lib/qt/mkspecs/common/g++-unix.conf \
/usr/lib/qt/mkspecs/qconfig.pri \ /usr/lib/qt/mkspecs/qconfig.pri \
/usr/lib/qt/mkspecs/modules/qt_Attica.pri \ /usr/lib/qt/mkspecs/modules/qt_Attica.pri \
/usr/lib/qt/mkspecs/modules/qt_BluezQt.pri \
/usr/lib/qt/mkspecs/modules/qt_KActivities.pri \ /usr/lib/qt/mkspecs/modules/qt_KActivities.pri \
/usr/lib/qt/mkspecs/modules/qt_KArchive.pri \ /usr/lib/qt/mkspecs/modules/qt_KArchive.pri \
/usr/lib/qt/mkspecs/modules/qt_KAuth.pri \ /usr/lib/qt/mkspecs/modules/qt_KAuth.pri \
@ -117,8 +116,6 @@ DIST = /usr/lib/qt/mkspecs/features/spec_pre.prf \
/usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri \ /usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri \
/usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri \ /usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri \
/usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri \ /usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_bluetooth.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_bluetooth_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri \
@ -141,14 +138,8 @@ DIST = /usr/lib/qt/mkspecs/features/spec_pre.prf \
/usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_location.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_location.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_multimedia.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_multimedia_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_network.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_network.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_nfc.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_nfc_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri \
@ -163,7 +154,6 @@ DIST = /usr/lib/qt/mkspecs/features/spec_pre.prf \
/usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_quick.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_quick.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri \
@ -186,16 +176,8 @@ DIST = /usr/lib/qt/mkspecs/features/spec_pre.prf \
/usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_waylandclient.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_waylandclient_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webengine.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webengine_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webenginecore.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webenginecore_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri \
@ -302,7 +284,6 @@ Makefile: ../../Electronics/Electronics/Conductance/Conductance.pro /usr/lib/qt/
/usr/lib/qt/mkspecs/common/g++-unix.conf \ /usr/lib/qt/mkspecs/common/g++-unix.conf \
/usr/lib/qt/mkspecs/qconfig.pri \ /usr/lib/qt/mkspecs/qconfig.pri \
/usr/lib/qt/mkspecs/modules/qt_Attica.pri \ /usr/lib/qt/mkspecs/modules/qt_Attica.pri \
/usr/lib/qt/mkspecs/modules/qt_BluezQt.pri \
/usr/lib/qt/mkspecs/modules/qt_KActivities.pri \ /usr/lib/qt/mkspecs/modules/qt_KActivities.pri \
/usr/lib/qt/mkspecs/modules/qt_KArchive.pri \ /usr/lib/qt/mkspecs/modules/qt_KArchive.pri \
/usr/lib/qt/mkspecs/modules/qt_KAuth.pri \ /usr/lib/qt/mkspecs/modules/qt_KAuth.pri \
@ -338,8 +319,6 @@ Makefile: ../../Electronics/Electronics/Conductance/Conductance.pro /usr/lib/qt/
/usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri \ /usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri \
/usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri \ /usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri \
/usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri \ /usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_bluetooth.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_bluetooth_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri \
@ -362,14 +341,8 @@ Makefile: ../../Electronics/Electronics/Conductance/Conductance.pro /usr/lib/qt/
/usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_location.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_location.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_multimedia.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_multimedia_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_network.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_network.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_nfc.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_nfc_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri \
@ -384,7 +357,6 @@ Makefile: ../../Electronics/Electronics/Conductance/Conductance.pro /usr/lib/qt/
/usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_quick.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_quick.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri \
@ -407,16 +379,8 @@ Makefile: ../../Electronics/Electronics/Conductance/Conductance.pro /usr/lib/qt/
/usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_waylandclient.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_waylandclient_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webengine.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webengine_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webenginecore.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webenginecore_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri \
/usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri \ /usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri \
@ -465,7 +429,6 @@ Makefile: ../../Electronics/Electronics/Conductance/Conductance.pro /usr/lib/qt/
/usr/lib/qt/mkspecs/common/g++-unix.conf: /usr/lib/qt/mkspecs/common/g++-unix.conf:
/usr/lib/qt/mkspecs/qconfig.pri: /usr/lib/qt/mkspecs/qconfig.pri:
/usr/lib/qt/mkspecs/modules/qt_Attica.pri: /usr/lib/qt/mkspecs/modules/qt_Attica.pri:
/usr/lib/qt/mkspecs/modules/qt_BluezQt.pri:
/usr/lib/qt/mkspecs/modules/qt_KActivities.pri: /usr/lib/qt/mkspecs/modules/qt_KActivities.pri:
/usr/lib/qt/mkspecs/modules/qt_KArchive.pri: /usr/lib/qt/mkspecs/modules/qt_KArchive.pri:
/usr/lib/qt/mkspecs/modules/qt_KAuth.pri: /usr/lib/qt/mkspecs/modules/qt_KAuth.pri:
@ -501,8 +464,6 @@ Makefile: ../../Electronics/Electronics/Conductance/Conductance.pro /usr/lib/qt/
/usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri: /usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri:
/usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri: /usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri:
/usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri: /usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_bluetooth.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_bluetooth_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri: /usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri:
@ -525,14 +486,8 @@ Makefile: ../../Electronics/Electronics/Conductance/Conductance.pro /usr/lib/qt/
/usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_location.pri: /usr/lib/qt/mkspecs/modules/qt_lib_location.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_multimedia.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_multimedia_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_network.pri: /usr/lib/qt/mkspecs/modules/qt_lib_network.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_nfc.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_nfc_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri: /usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri: /usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri:
@ -547,7 +502,6 @@ Makefile: ../../Electronics/Electronics/Conductance/Conductance.pro /usr/lib/qt/
/usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri: /usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_quick.pri: /usr/lib/qt/mkspecs/modules/qt_lib_quick.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri:
@ -570,16 +524,8 @@ Makefile: ../../Electronics/Electronics/Conductance/Conductance.pro /usr/lib/qt/
/usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri: /usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri: /usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_waylandclient.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_waylandclient_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri: /usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_webengine.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_webengine_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_webenginecore.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_webenginecore_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri: /usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri: /usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri:
/usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri: /usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri:
@ -658,18 +604,18 @@ compiler_clean:
####### Compile ####### Compile
compoundtype.o: ../../Electronics/Electronics/Conductance/types/compoundtype.cpp ../../Electronics/Electronics/Conductance/types/compoundtype.hpp \ compoundtype.o: ../../Electronics/Electronics/Conductance/types/compoundtype.cpp ../../Electronics/Electronics/Conductance/types/compoundtype.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/kstdlib.h \ /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../../Electronics/Electronics/Conductance/vmtype.hpp \ ../../Electronics/Electronics/Conductance/vmtype.hpp \
../../Electronics/Electronics/Conductance/vmtypes.hpp \ ../../Electronics/Electronics/Conductance/vmtypes.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../../Electronics/Electronics/Conductance/vmvalue.hpp \ ../../Electronics/Electronics/Conductance/vmvalue.hpp \
../../Electronics/Electronics/Conductance/opcodes.hpp \ ../../Electronics/Electronics/Conductance/opcodes.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp ../../Electronics/Electronics/Tools/fixedstring.hpp
@ -678,68 +624,68 @@ compoundtype.o: ../../Electronics/Electronics/Conductance/types/compoundtype.cpp
vmpointertype.o: ../../Electronics/Electronics/Conductance/types/vmpointertype.cpp ../../Electronics/Electronics/Conductance/types/vmpointertype.hpp \ vmpointertype.o: ../../Electronics/Electronics/Conductance/types/vmpointertype.cpp ../../Electronics/Electronics/Conductance/types/vmpointertype.hpp \
../../Electronics/Electronics/Conductance/vmtype.hpp \ ../../Electronics/Electronics/Conductance/vmtype.hpp \
../../Electronics/Electronics/Conductance/vmtypes.hpp \ ../../Electronics/Electronics/Conductance/vmtypes.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../include/kstdlib.h \ /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../../Electronics/Electronics/Conductance/vmvalue.hpp \ ../../Electronics/Electronics/Conductance/vmvalue.hpp \
../../Electronics/Electronics/Conductance/opcodes.hpp \ ../../Electronics/Electronics/Conductance/opcodes.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp ../../Electronics/Electronics/Tools/fixedstring.hpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o vmpointertype.o ../../Electronics/Electronics/Conductance/types/vmpointertype.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o vmpointertype.o ../../Electronics/Electronics/Conductance/types/vmpointertype.cpp
vmprimitivetype.o: ../../Electronics/Electronics/Conductance/types/vmprimitivetype.cpp ../../Electronics/Electronics/Conductance/types/vmprimitivetype.hpp \ vmprimitivetype.o: ../../Electronics/Electronics/Conductance/types/vmprimitivetype.cpp ../../Electronics/Electronics/Conductance/types/vmprimitivetype.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../include/kstdlib.h \ /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../../Electronics/Electronics/Conductance/vmtype.hpp \ ../../Electronics/Electronics/Conductance/vmtype.hpp \
../../Electronics/Electronics/Conductance/vmtypes.hpp \ ../../Electronics/Electronics/Conductance/vmtypes.hpp \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../../Electronics/Electronics/Conductance/vmvalue.hpp \ ../../Electronics/Electronics/Conductance/vmvalue.hpp \
../../Electronics/Electronics/Conductance/opcodes.hpp \ ../../Electronics/Electronics/Conductance/opcodes.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp ../../Electronics/Electronics/Tools/fixedstring.hpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o vmprimitivetype.o ../../Electronics/Electronics/Conductance/types/vmprimitivetype.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o vmprimitivetype.o ../../Electronics/Electronics/Conductance/types/vmprimitivetype.cpp
vmvoidtype.o: ../../Electronics/Electronics/Conductance/types/vmvoidtype.cpp ../../Electronics/Electronics/Conductance/types/vmvoidtype.hpp \ vmvoidtype.o: ../../Electronics/Electronics/Conductance/types/vmvoidtype.cpp ../../Electronics/Electronics/Conductance/types/vmvoidtype.hpp \
../../Electronics/Electronics/Conductance/vmtype.hpp \ ../../Electronics/Electronics/Conductance/vmtype.hpp \
../../Electronics/Electronics/Conductance/vmtypes.hpp \ ../../Electronics/Electronics/Conductance/vmtypes.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../include/kstdlib.h \ /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../../Electronics/Electronics/Conductance/vmvalue.hpp \ ../../Electronics/Electronics/Conductance/vmvalue.hpp \
../../Electronics/Electronics/Conductance/opcodes.hpp \ ../../Electronics/Electronics/Conductance/opcodes.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp ../../Electronics/Electronics/Tools/fixedstring.hpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o vmvoidtype.o ../../Electronics/Electronics/Conductance/types/vmvoidtype.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o vmvoidtype.o ../../Electronics/Electronics/Conductance/types/vmvoidtype.cpp
assembly.o: ../../Electronics/Electronics/Conductance/assembly.cpp ../../Electronics/Electronics/Conductance/assembly.hpp \ assembly.o: ../../Electronics/Electronics/Conductance/assembly.cpp ../../Electronics/Electronics/Conductance/assembly.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/kstdlib.h \ /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../../Electronics/Electronics/Conductance/vmtypes.hpp \ ../../Electronics/Electronics/Conductance/vmtypes.hpp \
../../Electronics/Electronics/Tools/refcounted.hpp \ ../../Electronics/Electronics/Tools/refcounted.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp \ ../../Electronics/Electronics/Tools/fixedstring.hpp \
@ -748,33 +694,33 @@ assembly.o: ../../Electronics/Electronics/Conductance/assembly.cpp ../../Electro
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o assembly.o ../../Electronics/Electronics/Conductance/assembly.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o assembly.o ../../Electronics/Electronics/Conductance/assembly.cpp
opcodes.o: ../../Electronics/Electronics/Conductance/opcodes.cpp ../../Electronics/Electronics/Conductance/opcodes.hpp \ opcodes.o: ../../Electronics/Electronics/Conductance/opcodes.cpp ../../Electronics/Electronics/Conductance/opcodes.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/kstdlib.h \ /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp ../../Electronics/Electronics/Tools/fixedstring.hpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o opcodes.o ../../Electronics/Electronics/Conductance/opcodes.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o opcodes.o ../../Electronics/Electronics/Conductance/opcodes.cpp
virtualmachine.o: ../../Electronics/Electronics/Conductance/virtualmachine.cpp ../include/kstdlib.h \ virtualmachine.o: ../../Electronics/Electronics/Conductance/virtualmachine.cpp /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../../Electronics/Electronics/Conductance/vmtype.hpp \ ../../Electronics/Electronics/Conductance/vmtype.hpp \
../../Electronics/Electronics/Conductance/vmtypes.hpp \ ../../Electronics/Electronics/Conductance/vmtypes.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../../Electronics/Electronics/Conductance/vmvalue.hpp \ ../../Electronics/Electronics/Conductance/vmvalue.hpp \
../../Electronics/Electronics/Conductance/opcodes.hpp \ ../../Electronics/Electronics/Conductance/opcodes.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp \ ../../Electronics/Electronics/Tools/fixedstring.hpp \
../../Electronics/Electronics/Conductance/virtualmachine.hpp \ ../../Electronics/Electronics/Conductance/virtualmachine.hpp \
../../Electronics/Electronics/Tools/binaryreader.hpp \ ../../Electronics/Electronics/Tools/binaryreader.hpp \
@ -785,18 +731,18 @@ virtualmachine.o: ../../Electronics/Electronics/Conductance/virtualmachine.cpp .
vmtype.o: ../../Electronics/Electronics/Conductance/vmtype.cpp ../../Electronics/Electronics/Conductance/vmtype.hpp \ vmtype.o: ../../Electronics/Electronics/Conductance/vmtype.cpp ../../Electronics/Electronics/Conductance/vmtype.hpp \
../../Electronics/Electronics/Conductance/vmtypes.hpp \ ../../Electronics/Electronics/Conductance/vmtypes.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../include/kstdlib.h \ /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../../Electronics/Electronics/Conductance/vmvalue.hpp \ ../../Electronics/Electronics/Conductance/vmvalue.hpp \
../../Electronics/Electronics/Conductance/opcodes.hpp \ ../../Electronics/Electronics/Conductance/opcodes.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp \ ../../Electronics/Electronics/Tools/fixedstring.hpp \
../../Electronics/Electronics/Conductance/types/vmvoidtype.hpp \ ../../Electronics/Electronics/Conductance/types/vmvoidtype.hpp \
../../Electronics/Electronics/Conductance/types/vmprimitivetype.hpp ../../Electronics/Electronics/Conductance/types/vmprimitivetype.hpp
@ -804,42 +750,42 @@ vmtype.o: ../../Electronics/Electronics/Conductance/vmtype.cpp ../../Electronics
vmvalue.o: ../../Electronics/Electronics/Conductance/vmvalue.cpp ../../Electronics/Electronics/Conductance/vmvalue.hpp \ vmvalue.o: ../../Electronics/Electronics/Conductance/vmvalue.cpp ../../Electronics/Electronics/Conductance/vmvalue.hpp \
../../Electronics/Electronics/Conductance/vmtypes.hpp \ ../../Electronics/Electronics/Conductance/vmtypes.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../include/kstdlib.h \ /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../../Electronics/Electronics/Conductance/vmtype.hpp \ ../../Electronics/Electronics/Conductance/vmtype.hpp \
../../Electronics/Electronics/Conductance/opcodes.hpp \ ../../Electronics/Electronics/Conductance/opcodes.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp ../../Electronics/Electronics/Tools/fixedstring.hpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o vmvalue.o ../../Electronics/Electronics/Conductance/vmvalue.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o vmvalue.o ../../Electronics/Electronics/Conductance/vmvalue.cpp
string.o: ../ker/string.cpp ../include/ker/string.hpp \ string.o: ../ker/string.cpp ../include/ker/string.hpp \
../include/kstdlib.h \ /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h /home/felix/projects/trainOS/include/malloc.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o string.o ../ker/string.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o string.o ../ker/string.cpp
thread.o: ../../Electronics/Electronics/Conductance/thread.cpp ../include/kstdlib.h \ thread.o: ../../Electronics/Electronics/Conductance/thread.cpp /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../../Electronics/Electronics/Conductance/vmtype.hpp \ ../../Electronics/Electronics/Conductance/vmtype.hpp \
../../Electronics/Electronics/Conductance/vmtypes.hpp \ ../../Electronics/Electronics/Conductance/vmtypes.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../../Electronics/Electronics/Conductance/vmvalue.hpp \ ../../Electronics/Electronics/Conductance/vmvalue.hpp \
../../Electronics/Electronics/Conductance/opcodes.hpp \ ../../Electronics/Electronics/Conductance/opcodes.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp \ ../../Electronics/Electronics/Tools/fixedstring.hpp \
../../Electronics/Electronics/Conductance/virtualmachine.hpp \ ../../Electronics/Electronics/Conductance/virtualmachine.hpp \
../../Electronics/Electronics/Tools/binaryreader.hpp \ ../../Electronics/Electronics/Tools/binaryreader.hpp \
@ -848,20 +794,20 @@ thread.o: ../../Electronics/Electronics/Conductance/thread.cpp ../include/kstdli
../../Electronics/Electronics/Conductance/types/compoundtype.hpp ../../Electronics/Electronics/Conductance/types/compoundtype.hpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o thread.o ../../Electronics/Electronics/Conductance/thread.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o thread.o ../../Electronics/Electronics/Conductance/thread.cpp
process.o: ../../Electronics/Electronics/Conductance/process.cpp ../include/kstdlib.h \ process.o: ../../Electronics/Electronics/Conductance/process.cpp /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../../Electronics/Electronics/Conductance/vmtype.hpp \ ../../Electronics/Electronics/Conductance/vmtype.hpp \
../../Electronics/Electronics/Conductance/vmtypes.hpp \ ../../Electronics/Electronics/Conductance/vmtypes.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../../Electronics/Electronics/Conductance/vmvalue.hpp \ ../../Electronics/Electronics/Conductance/vmvalue.hpp \
../../Electronics/Electronics/Conductance/opcodes.hpp \ ../../Electronics/Electronics/Conductance/opcodes.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp \ ../../Electronics/Electronics/Tools/fixedstring.hpp \
../../Electronics/Electronics/Conductance/virtualmachine.hpp \ ../../Electronics/Electronics/Conductance/virtualmachine.hpp \
../../Electronics/Electronics/Tools/binaryreader.hpp \ ../../Electronics/Electronics/Tools/binaryreader.hpp \
@ -870,20 +816,20 @@ process.o: ../../Electronics/Electronics/Conductance/process.cpp ../include/kstd
../../Electronics/Electronics/Conductance/types/compoundtype.hpp ../../Electronics/Electronics/Conductance/types/compoundtype.hpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o process.o ../../Electronics/Electronics/Conductance/process.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o process.o ../../Electronics/Electronics/Conductance/process.cpp
instructions.o: ../../Electronics/Electronics/Conductance/instructions.cpp ../include/kstdlib.h \ instructions.o: ../../Electronics/Electronics/Conductance/instructions.cpp /home/felix/projects/trainOS/include/kstdlib.h \
../include/varargs.h \ /home/felix/projects/trainOS/include/varargs.h \
../include/config.h \ /home/felix/projects/trainOS/include/config.h \
../include/malloc.h \ /home/felix/projects/trainOS/include/malloc.h \
../../Electronics/Electronics/Conductance/vmtype.hpp \ ../../Electronics/Electronics/Conductance/vmtype.hpp \
../../Electronics/Electronics/Conductance/vmtypes.hpp \ ../../Electronics/Electronics/Conductance/vmtypes.hpp \
../include/ker/string.hpp \ /home/felix/projects/trainOS/include/ker/string.hpp \
../include/ker/vector.hpp \ /home/felix/projects/trainOS/include/ker/vector.hpp \
../include/ker/new.hpp \ /home/felix/projects/trainOS/include/ker/new.hpp \
../../Electronics/Electronics/Conductance/vmvalue.hpp \ ../../Electronics/Electronics/Conductance/vmvalue.hpp \
../../Electronics/Electronics/Conductance/opcodes.hpp \ ../../Electronics/Electronics/Conductance/opcodes.hpp \
../include/ker/dictionary.hpp \ /home/felix/projects/trainOS/include/ker/dictionary.hpp \
../include/kernel.h \ /home/felix/projects/trainOS/include/kernel.h \
../include/ker/pair.hpp \ /home/felix/projects/trainOS/include/ker/pair.hpp \
../../Electronics/Electronics/Tools/fixedstring.hpp \ ../../Electronics/Electronics/Tools/fixedstring.hpp \
../../Electronics/Electronics/Conductance/virtualmachine.hpp \ ../../Electronics/Electronics/Conductance/virtualmachine.hpp \
../../Electronics/Electronics/Tools/binaryreader.hpp \ ../../Electronics/Electronics/Tools/binaryreader.hpp \

34
csl/casts.cpp Normal file
View file

@ -0,0 +1,34 @@
#include "casts.hpp"
#include <vmtype.hpp>
namespace csl
{
#define CONVERT(_from, _to) if(source.type() == VMType::_from) { \
res = VMValue::_to(source.value<VM##_from>()); \
return ExceptionCode::None; \
}
#define TOINT(targetType) ExceptionCode to##targetType(VMValue &res, const VMArray &args) \
{ \
if(args.length() != 1) return ExceptionCode::InvalidArgument; \
const VMValue &source = args[0]; \
if(source.type() == VMType::targetType) { \
res = source; \
return ExceptionCode::None; \
} \
CONVERT(Int8, targetType) \
CONVERT(Int16, targetType) \
CONVERT(Int32, targetType) \
CONVERT(UInt8, targetType) \
CONVERT(UInt16, targetType) \
CONVERT(UInt32, targetType) \
return ExceptionCode::InvalidType; \
}
TOINT(Int8)
TOINT(Int16)
TOINT(Int32)
TOINT(UInt8)
TOINT(UInt16)
TOINT(UInt32)
}

17
csl/casts.hpp Normal file
View file

@ -0,0 +1,17 @@
#pragma once
#include <vmvalue.hpp>
namespace csl
{
ExceptionCode toInt8(VMValue &res, const VMArray &args);
ExceptionCode toInt16(VMValue &res, const VMArray &args);
ExceptionCode toInt32(VMValue &res, const VMArray &args);
ExceptionCode toUInt8(VMValue &res, const VMArray &args);
ExceptionCode toUInt16(VMValue &res, const VMArray &args);
ExceptionCode toUInt32(VMValue &res, const VMArray &args);
ExceptionCode toBool(VMValue &res, const VMArray &args);
ExceptionCode toText(VMValue &res, const VMArray &args);
}

36
csl/io.cpp Normal file
View file

@ -0,0 +1,36 @@
#include <io.h>
#include "io.hpp"
#include <vmtype.hpp>
namespace csl
{
ExceptionCode outb(VMValue &, const VMArray &args)
{
if(args.length() != 2)
return ExceptionCode::InvalidArgument;
if(args[0].type() != VMType::UInt16)
return ExceptionCode::InvalidArgument;
if(args[1].type() != VMType::UInt8)
return ExceptionCode::InvalidArgument;
::outb(args[0].value<VMUInt16>(), args[1].value<VMUInt8>());
return ExceptionCode::None;
}
ExceptionCode inb(VMValue &result, const VMArray &args)
{
if(args.length() != 1)
return ExceptionCode::InvalidArgument;
if(args[0].type() != VMType::UInt16)
return ExceptionCode::InvalidArgument;
result = VMValue::UInt8(
::inb(args[0].value<VMUInt16>()));
return ExceptionCode::None;
}
}

10
csl/io.hpp Normal file
View file

@ -0,0 +1,10 @@
#pragma once
#include <vmvalue.hpp>
namespace csl
{
ExceptionCode outb(VMValue &, const VMArray &args);
ExceptionCode inb(VMValue &result, const VMArray &args);
}

View file

@ -3,13 +3,24 @@ NATIVE print(...);
NATIVE outb(port : UINT16, value : UINT8); NATIVE outb(port : UINT16, value : UINT8);
NATIVE inb(port : UINT16) → UINT8; NATIVE inb(port : UINT16) → UINT8;
NATIVE toInt8(…) → INT8;
NATIVE toInt16(…) → INT16;
NATIVE toInt32(…) → INT32;
NATIVE toUInt8(…) → UINT8;
NATIVE toUInt16(…) → UINT16;
NATIVE toUInt32(…) → UINT32;
# NATIVE toBool(…) → BOOL;
# NATIVE toText(…) → TEXT;
PRI sendCommand(cmd : UINT8) PRI sendCommand(cmd : UINT8)
BEGIN BEGIN
# Warten bis die Tastatur bereit ist, und der Befehlspuffer leer ist # Warten bis die Tastatur bereit ist, und der Befehlspuffer leer ist
WHILE (inb(100u16) & 2u8) =/= 0u8 DO WHILE (inb(100u16) & 2u8) =/= 0u8 DO
END END
outb(96u16, cmd); outb(toUInt16(96), cmd);
END END
PRI initKeyboard() PRI initKeyboard()
@ -28,6 +39,8 @@ BEGIN
print("Initialize keyboard...\n"); print("Initialize keyboard...\n");
initKeyboard(); initKeyboard();
print(toInt8(16), "\n");
print("Hello World!\n"); print("Hello World!\n");
1 → i; 1 → i;
WHILE i <= 5 DO WHILE i <= 5 DO

View file

@ -1,11 +1,17 @@
; ============================================= ; =============================================
; compiled with Copper 1.0 ; compiled with Copper 1.0
; 2015-10-10 23:51:17 ; 2015-10-11 12:46:04
; ============================================= ; =============================================
; native method: print(…) ; native method: print(…)
; native method: outb(…) ; native method: outb(…)
; native method: inb(…) → UINT8 ; native method: inb(…) → UINT8
; native method: toInt8(…) → INT8
; native method: toInt16(…) → INT16
; native method: toInt32(…) → INT32
; native method: toUInt8(…) → UINT8
; native method: toUInt16(…) → UINT16
; native method: toUInt32(…) → UINT32
.type CpuState { .type CpuState {
eax : UINT32; eax : UINT32;
ebx : UINT32; ebx : UINT32;
@ -14,6 +20,12 @@
; 0, sendCommand ; 0, sendCommand
sendCommand: sendCommand:
pushnil ; return value pushnil ; return value
@ -29,7 +41,8 @@ _private_0:
_private_1: _private_1:
load -1 load -1
pushi 4 96 pushi 2 96
callnr toUInt16 1
calln outb 2 calln outb 2
ret ret
@ -65,6 +78,11 @@ main:
call initKeyboard 0 call initKeyboard 0
pusht "\n"
pushi 2 16
callnr toInt8 1
calln print 2
pusht "Hello World!\n" pusht "Hello World!\n"
calln print 1 calln print 1

View file

@ -10,6 +10,8 @@
#include <interrupts.h> #include <interrupts.h>
#include "../csl/cpustatetype.hpp" #include "../csl/cpustatetype.hpp"
#include "../csl/io.hpp"
#include "../csl/casts.hpp"
extern "C" { extern "C" {
extern const char mainscript_start; extern const char mainscript_start;
@ -138,6 +140,7 @@ const char *execptionName(ExceptionCode ex)
CASE(InvalidGlobal); CASE(InvalidGlobal);
CASE(NullPointer); CASE(NullPointer);
CASE(InvalidMember); CASE(InvalidMember);
CASE(InvalidArgument);
#undef CASE #undef CASE
default: return "Unknown"; default: return "Unknown";
} }
@ -151,8 +154,15 @@ extern "C" void vm_start()
VirtualMachine machine; VirtualMachine machine;
machine.type("CPUSTATE") = csl::CpuStateType; machine.type("CPUSTATE") = csl::CpuStateType;
machine.import("print") = printArguments; machine.import("print") = printArguments;
machine.import("inb") = vmInB; machine.import("inb") = csl::inb;
machine.import("outb") = vmOutB; machine.import("outb") = csl::outb;
machine.import("toInt8") = csl::toInt8;
machine.import("toInt16") = csl::toInt16;
machine.import("toInt32") = csl::toInt32;
machine.import("toUInt8") = csl::toUInt8;
machine.import("toUInt16") = csl::toUInt16;
machine.import("toUInt32") = csl::toUInt32;
Assembly *assembly = machine.load(mainAssembly.ptr, mainAssembly.size); Assembly *assembly = machine.load(mainAssembly.ptr, mainAssembly.size);
if(assembly == nullptr) { if(assembly == nullptr) {

View file

@ -16,7 +16,9 @@ SOURCES += \
src/vm.cpp \ src/vm.cpp \
src/serial.c \ src/serial.c \
src/cpp-test.cpp \ src/cpp-test.cpp \
csl/cpustatetype.cpp csl/cpustatetype.cpp \
csl/casts.cpp \
csl/io.cpp
HEADERS += \ HEADERS += \
include/console.h \ include/console.h \
@ -41,7 +43,9 @@ HEADERS += \
include/config.h \ include/config.h \
include/serial.h \ include/serial.h \
include/malloc.h \ include/malloc.h \
csl/cpustatetype.hpp csl/cpustatetype.hpp \
csl/casts.hpp \
csl/io.hpp
DISTFILES += \ DISTFILES += \
asm/intr_common_handler.S \ asm/intr_common_handler.S \