![]() |
![]() |
![]() |
![]() |
![]() |
Make "quake.elf" work.
Posted on 2005-11-02 00:00:00 |
Fixed OS functions RFU060, RFU061 and EndOfHeap. EndOfHeap wasn't reporting the address representing the end of the heap area and that was preventing the memory allocation routines (malloc) from working correctly. This also fixed the problem with fopen since it was using malloc.
Implemented the "lseek" function in FILEIO IOP module. Also, the program tries to open the files with the "mode" bitfield set to 0. I didn't make a big deal out of this for now, but that might indicate that there's a bug somewhere. Implemented instructions PXOR, BC1T, C.LE.S, DIVU1. I'm getting some graphical output with all this stuff fixed: Half of the Quake background is invisible though. I'm not sure this is caused by a DMA problem, but I doubt it, because the console text at the bottom is visible but there's no background behind this text either. Might be another bug in the CPU. There's also some unaligned memory accesses occuring later on which I'll need to fix. This screen shot was taken with a build without optimisation that refreshes the screen a lot more than normally, hence the 60 fps rate. The optimized binary generated by the new compiler I'm using doesn't work great and I'm working on finding why it's not working. |