Small update about the advancement.
I'm working every days on software side. This is a long task...
I've performed many things now : various small or huge tools for developpement, and going very deep in IPL and Human68k disassembly. I now know about every things about the boot process, drivers development for Human68k and its filesystem.
Here is a list of some tools I have done or working on :
- Huge modifications on GCC 4.6.2, mostly to perform cross-compilation targetting x68000 binaries. It allows for example to create low level IPL syscalls (iocscalls) entirely in C. This is a special calling convention only used by X68000. Even the original gcc for human68k does not allow this ! A very nice feature, to perform various software mods and hacks. This gcc port is now pretty stable, and ready to be released soon.
- XFile backend for Binutils : allow to create XFile format, totally compatible with Human68k. Also allows to debug the binary with Hudson/Sharp DB.X and SCD.X.
- HudsonSoft debugger backend for GDB. This remote debugger embedded inside the IPLROM provides a way to debug any binary (even the IPL itself) over the serial line, but only in assembler. Having a GDB backend to communicate with this debugger allow to remote debug any binary in C or control the whole machine (uploading file, remote reset, testing memories, etc...)
- Newlib port for Human68k. Newlib is a lightweight, portable and trully ansi and posix compliant libc. A basic set of functions for C development and a must have to write applications for Human68k. Usable, but far to be finished, this is a very long task and I need volunteers to help me here...
- A small libc for SRAM based applications. To create nice and powerfull things that'll fit in the SRAM.
- An SRAM file writter for human68k.
- A developper bootloader for SRAM. This things will initialize the serial port to 38400bps, allow an SREC file to be uploaded anywhere in memory then to boot it. It also perform ERSA controller initialization and install low level functions as iocscalls for accesssing ATA drives. Plus various modules like a CRTC moding (force the CRTC to stay in 31khz mode, and redefine CRTC modelines to be compatible with LCD monitors. This, because the screen isn't centered on my vga monitor by default, annoying...).
And on ERSA side, most needed low level functions are done (Reset, Select ERSA channel and drive, perform single ata command, seek using LBA, read and write in pio mode, drive identification). I have started to program the bootloader, but realize that I need human68k driver at first (as it needs to be provided to the kernel on boot stage). It's mostly done.
About partitions and formatting, I will not provide tools. I intend to use MSDOS style of partitioning, and traditional FAT16.
A translation layer is written inside the driver. So partioning and formatting have to be done on a PC, and the drives will stay compatible on both system... Will simplify file transferts.
That's all, stay tuned !