. .. ... The Syntiac Pages ... .. .
[Home] [Synthesizers] [Software Proj] [Hardware Proj] [Pinball]
   |
[Games] [PerlWeb] [4Tron] [MPForth] [Video Compression]

   |
[About] [Language] [Developers] [i386] [6502] [Research] [Ideas] [Download]


4Tron

i386 Implementation details


resetch()

1. Kernel internals

1.1. Register allocation

 EAX = TOS = Top Of DataStack
 EBX =     = Work register
 ECX =     = Counter / Work register
 EDX =     = Work register
 ESI = DSP = Data stack pointer
 EDI = xxx = not assigned
 EBP = xxx = not assigned
 ESP = RSP = Return stack pointer
  PC =  PC = Instruction Pointer
  CS =     = Points to code segment
  DS =     = Points to code segment
  ES =     = Points to dictionary segment

Using ESI for the datastack is a little problem. Because the default segment is the DS segment. I would like to use the SS segment for the stacks. In realmode the segment limit is only 64k. Using two segment pointers for the stacks is a little wastefull. Using EBP instead always forces a offset, taking up a extra byte increasing the kernel size and execution speed.

2. Boot compiler

System will start with a small compiler located in the bootsector. This will load source from the floppy and will compile this. After enough code is compiled the just compiled code takes over. This is a full implementation of the 4Tron compiler. This compiler will function as system compiler, command language and operating system.

Because of its small size, the boot compiler will stay resident. This makes a instant restart possible of the system during debugging without going through the slow BIOS boot each time.



The Syntiac Pages -- www.syntiac.com
For website questions mail to: webmaster@syntiac.com
"/4tron_i386" is last updated on Mon Nov 3 01:03:08 2003