Orange'S
The current version of Orange'S.
If you are reading my books, click here.
Develop Orange'S in Mac OS X
Install the Mac version "gcc":
- install Xcode
- in Xcode: Preferences > Downloads > Components > Command Line Tools > install
Build cross-compilers:
$ tar vxjf binutils-2.22.tar.bz2 $ cd binutils-2.22 $ ./configure --target=i686-elf --disable-nls $ make all $ make install $ tar vxjf gcc-4.6.3.tar.bz2 $ cd gcc-4.6.3 $ ./configure --target=i686-elf --disable-nls --enable-languages=c,c++ --without-headers $ make all-gcc $ make install-gcc
Tip: how to know what have been installed:
$ make DESTDIR=/tmp/binutils install $ make DESTDIR=/tmp/gcc install-gcc
Change Makefile:
-DASM = objdump -CC = gcc -LD = ld +DASM = i686-elf-objdump +CC = i686-elf-gcc +LD = i686-elf-ld +AR = i686-elf-ar -LDFLAGS = -Ttext $(ENTRYPOINT) -Map krnl.map +LDFLAGS = -Ttext $(ENTRYPOINT) -Map krnl.map -m elf_i386 - sudo mount -o loop a.img /mnt/floppy/ + hdiutil mount -mountpoint /mnt/floppy a.img
Install Bochs:
$ tar vxzf bochs-2.5.1.tar.gz $ cd bochs-2.5.1 $ ./configure --with-x11 $ make
we don't have to really "make install" it. creating a symbol link will suffice:
$ cd .. $ mv bochs-2.5.1 /opt/ $ ln -s /opt/bochs-2.5.1/bochs /opt/bin/
Change bochsrc:
-romimage: file=/usr/share/bochs/BIOS-bochs-latest -vgaromimage: file=/usr/share/vgabios/vgabios.bin +romimage: file=/opt/bochs-2.5.1/bios/BIOS-bochs-latest +vgaromimage: file=/opt/bochs-2.5.1/bios/VGABIOS-elpin-2.40 -keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map +keyboard_mapping: enabled=1, map=/opt/bochs-2.5.1/gui/keymaps/x11-pc-us.map
Make sure /opt/bin is in $PATH. If not, append a line in ~/.bashrc:
export PATH=/opt/bin:$PATH
Run Orange'S:
$ cd /path/to/Orange'S/ $ make image $ bochs