summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-04-27 13:46:59 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-04-27 13:46:59 +0200
commit55fe269eaa3bd3f63b8672119aa1e96ae30f26db (patch)
tree21255fd990a2001e9bf7a91e7144f76947bd14e8 /doc
parenta7fb48922dee006339747d128d83fafbe9dfe79a (diff)
downloadabaos-55fe269eaa3bd3f63b8672119aa1e96ae30f26db.tar.gz
abaos-55fe269eaa3bd3f63b8672119aa1e96ae30f26db.tar.bz2
moved and added docu on picoc and xv6
Diffstat (limited to 'doc')
-rw-r--r--doc/README.Wyoos28
-rw-r--r--doc/README.xv69
2 files changed, 37 insertions, 0 deletions
diff --git a/doc/README.Wyoos b/doc/README.Wyoos
new file mode 100644
index 0000000..fa96fc8
--- /dev/null
+++ b/doc/README.Wyoos
@@ -0,0 +1,28 @@
+IDT interupt descriptor table
+
+GDT global descriptor table
+- set up segments
+- code segments, RX, never W
+- data segments, RW, never X
+- 16-bit compatibility on Intel, so quite a nightmare
+- asm( LGDT ) needed
+=> we do GTD all in assembly, not really readable! Ideal would be to
+ do as much as possible in C/C++ (even with some zero-overhead
+ C++17 crazyness maybe) and then call a pure assembly function with
+ a pointer to the GTD doing the 'LGDT' assembly operation
+
+types:
+- have local typedefs for DWORD32 or uint32_t (as Windows and POSIX did
+ it)
+
+keyboard:
+- 0x20 PIC
+- asm( outb( port, byte)), outb function => better have ports knowing
+ their own bandwith.
+ SlowPort8, slowing down assembly code
+
+interrupts:
+- assember stubs translating calling conventions to static C++ function
+ handling the interrupt number NO
+
+
diff --git a/doc/README.xv6 b/doc/README.xv6
new file mode 100644
index 0000000..c5b9395
--- /dev/null
+++ b/doc/README.xv6
@@ -0,0 +1,9 @@
+xv6 is nice, but requires gcc
+
+picoc: github.com/Prashant47/picoc
+guy had the same idea of a self-hosting and self-compiling
+cc in xv6.
+
+No perl, no make, and no funny business in the C compiler.
+One issue will be the linker. Either go back to binary or
+a.out format or using ELF (juck).