[Atari800-users] 65816 module progress and more
Brought to you by:
joy
|
From: Nathan H. <ma...@ma...> - 2001-12-06 00:07:07
|
As a few may be aware, I have been working on porting the 65816 CPU emulation from the XGS/32 (Apple IIgs emulator) project. I seem to have it done, but I have discovered a flaw with my plan. The current Atari800 project relies upon unused opcode values in order to use native C code to emulate certain functions of the Atari system. There are no unused opcode values in the 65816 CPU, so all of those "escape" functions have to be disabled. There is the possibility of somehow tying these "escape" functions to the COP instruction, but I have not looked into anything like that. Instead, seeing as how the only "escape" functions that are being added are to enhance screen/keyboard/disk I/O, handle printing, and introduce an H: device (that doesn't work with any version of SpartaDOS that I've tried), I was thinking of adding a virtual PBI device (similar to the MIO or BlackBox). Being a virtual PBI device, activating the appropriate device bit could trigger "intercept" routines that perform the appropriate functions in native C. Of course, a dummy PBI ROM would be coded to allow software to "see" it and respond accordingly. For that matter, the MIO/BlackBox ROM image could be used for this function. Instead of partitions on a real hard drive, individual ATR files could be used to represent each partition. Also, I've noticed that the current antic.c code is not written to display the entire 228 color clock scanline as the ANTIC/GTIA actually create it. Is there any reason why we clip the left and right sides? It'd be cool, but not required I guess, if the entire display (including the full borders) was available for those of us capable of and/or willing to enable a large enough display. 512x384 would cover it as 228 color clocks expands out to 456 "pixels", and NTSC/PAL goes to 262/312 scanlines. Anyone else interested in the full display? |