Bug #20
closedBugs in DAS OMEN Demo
Added by ndary over 7 years ago. Updated over 7 years ago.
0%
Description
tested the DAS OMEN Demo
1. the speech (DAS OMEN) at the 3rd part does not play
2. Music stops after a while and the DEMO Crash
Files
dasomen2.xex (50.1 KB) dasomen2.xex | ndary, 05/30/2017 03:39 PM | ||
$boot.bin (512 Bytes) $boot.bin | ndary, 05/30/2017 11:36 PM | ||
picodos.sys (4.83 KB) picodos.sys | ndary, 05/30/2017 11:36 PM |
Updated by foft over 7 years ago
Uh-oh, good spot. Did you check it with aspeqt too? I find that the .xex support (sdrive port) can be a bit iffy at times. I'm not sure if there are better xex loaders we can switch to?
Can someone pick this up and look into the root cause please? Then I can fix the issue with the core.
Updated by ndary over 7 years ago
- File $boot.bin $boot.bin added
- File picodos.sys picodos.sys added
i just confirmed that the problem is with the XEX loader of EclairXL, can you use the PICODOS loader from HIASOFT? from my experience it works well with most files.
Updated by foft over 7 years ago
We can try it. Do you know c? There is atari_drive_emulator.c in the firmware which has a copy of the xex loader. Its an sdrive port and I didn't ever look into the xex side much.
Updated by ndary over 7 years ago
6502 assembly only here :)
XXL posted that he can do a loader and PICODOS source is on Github
https://github.com/Masq666/PicoDOS/blob/master/picodos.asm
Nir
Updated by foft over 7 years ago
We could add another 6502 for the firmware to replace the zpu. I'd like that but don't have time to spend on that.
Quite a job though to rewrite the firmware.
It contains sd card access, fat filesystem, file browsing and a usb stack.
Updated by xxl over 7 years ago
foft wrote:
We can try it. Do you know c? There is atari_drive_emulator.c in the firmware which has a copy of the xex loader. Its an sdrive port and I didn't ever look into the xex side much.
Are you using this loader?
#ifdef XEX_IMAGES
// The KBoot loader was written by Ken Siders (atari@columbus.rr.com)
byte KBOOT_LOADER[] = {
0x00,0x03,0x00,0x07,0x14,0x07,0x4c,0x14,0x07,0xAA,0xBB,0x00,0x00,0xa9,0x46,0x8d,0xc6,0x02,0xd0,0xfe,0xa0,0x00,0xa9,0x6b,
0x91,0x58,0x20,0xd9,0x07,0xb0,0xee,0x20,0xc4,0x07,0xad,0x7a,0x08,0x0d,0x76,0x08,0xd0,0xe3,0xa5,0x80,0x8d,0xe0,0x02,0xa5,
0x81,0x8d,0xe1,0x02,0xa9,0x00,0x8d,0xe2,0x02,0x8d,0xe3,0x02,0x20,0xeb,0x07,0xb0,0xcc,0xa0,0x00,0x91,0x80,0xa5,0x80,0xc5,
0x82,0xd0,0x06,0xa5,0x81,0xc5,0x83,0xf0,0x08,0xe6,0x80,0xd0,0x02,0xe6,0x81,0xd0,0xe3,0xad,0x76,0x08,0xd0,0xaf,0xad,0xe2,
0x02,0x8d,0x70,0x07,0x0d,0xe3,0x02,0xf0,0x0e,0xad,0xe3,0x02,0x8d,0x71,0x07,0x20,0xff,0xff,0xad,0x7a,0x08,0xd0,0x13,0xa9,
0x00,0x8d,0xe2,0x02,0x8d,0xe3,0x02,0x20,0xae,0x07,0xad,0x7a,0x08,0xd0,0x03,0x4c,0x3c,0x07,0xa9,0x00,0x85,0x80,0x85,0x81,
0x85,0x82,0x85,0x83,0xad,0xe0,0x02,0x85,0x0a,0x85,0x0c,0xad,0xe1,0x02,0x85,0x0b,0x85,0x0d,0xa9,0x01,0x85,0x09,0xa9,0x00,
0x8d,0x44,0x02,0x6c,0xe0,0x02,0x20,0xeb,0x07,0x85,0x80,0x20,0xeb,0x07,0x85,0x81,0xa5,0x80,0xc9,0xff,0xd0,0x10,0xa5,0x81,
0xc9,0xff,0xd0,0x0a,0x20,0xeb,0x07,0x85,0x80,0x20,0xeb,0x07,0x85,0x81,0x20,0xeb,0x07,0x85,0x82,0x20,0xeb,0x07,0x85,0x83,
0x60,0x20,0xeb,0x07,0xc9,0xff,0xd0,0x09,0x20,0xeb,0x07,0xc9,0xff,0xd0,0x02,0x18,0x60,0x38,0x60,0xad,0x09,0x07,0x0d,0x0a,
0x07,0x0d,0x0b,0x07,0xf0,0x79,0xac,0x79,0x08,0x10,0x50,0xee,0x77,0x08,0xd0,0x03,0xee,0x78,0x08,0xa9,0x31,0x8d,0x00,0x03,
0xa9,0x01,0x8d,0x01,0x03,0xa9,0x52,0x8d,0x02,0x03,0xa9,0x40,0x8d,0x03,0x03,0xa9,0x80,0x8d,0x04,0x03,0xa9,0x08,0x8d,0x05,
0x03,0xa9,0x1f,0x8d,0x06,0x03,0xa9,0x80,0x8d,0x08,0x03,0xa9,0x00,0x8d,0x09,0x03,0xad,0x77,0x08,0x8d,0x0a,0x03,0xad,0x78,
0x08,0x8d,0x0b,0x03,0x20,0x59,0xe4,0xad,0x03,0x03,0xc9,0x02,0xb0,0x22,0xa0,0x00,0x8c,0x79,0x08,0xb9,0x80,0x08,0xaa,0xad,
0x09,0x07,0xd0,0x0b,0xad,0x0a,0x07,0xd0,0x03,0xce,0x0b,0x07,0xce,0x0a,0x07,0xce,0x09,0x07,0xee,0x79,0x08,0x8a,0x18,0x60,
0xa0,0x01,0x8c,0x76,0x08,0x38,0x60,0xa0,0x01,0x8c,0x7a,0x08,0x38,0x60,0x00,0x03,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00
};
#endif
It may not work properly. I wrote a similar loader for the SIO2WiFi project, I can share it.
Updated by foft over 7 years ago
Using this one:
uint8_t boot_xex_loader179 = {
0x72,0x02,0x5f,0x07,0xf8,0x07,0xa9,0x00,0x8d,0x04,0x03,0x8d,0x44,0x02,0xa9,0x07,
0x8d,0x05,0x03,0xa9,0x70,0x8d,0x0a,0x03,0xa9,0x01,0x8d,0x0b,0x03,0x85,0x09,0x60,
0x7d,0x8a,0x48,0x20,0x53,0xe4,0x88,0xd0,0xfa,0x68,0xaa,0x8c,0x8e,0x07,0xad,0x7d,
0x07,0xee,0x8e,0x07,0x60,0xa9,0x93,0x8d,0xe2,0x02,0xa9,0x07,0x8d,0xe3,0x02,0xa2,
0x02,0x20,0xda,0x07,0x95,0x43,0x20,0xda,0x07,0x95,0x44,0x35,0x43,0xc9,0xff,0xf0,
0xf0,0xca,0xca,0x10,0xec,0x30,0x06,0xe6,0x45,0xd0,0x02,0xe6,0x46,0x20,0xda,0x07,
0xa2,0x01,0x81,0x44,0xb5,0x45,0xd5,0x43,0xd0,0xed,0xca,0x10,0xf7,0x20,0xd2,0x07,
0x4c,0x94,0x07,0xa9,0x03,0x8d,0x0f,0xd2,0x6c,0xe2,0x02,0xad,0x8e,0x07,0xcd,0x7f,
0x07,0xd0,0xab,0xee,0x0a,0x03,0xd0,0x03,0xee,0x0b,0x03,0xad,0x7d,0x07,0x0d,0x7e,
0x07,0xd0,0x8e,0x20,0xd2,0x07,0x6c,0xe0,0x02,0x20,0xda,0x07,0x8d,0xe0,0x02,0x20,
0xda,0x07,0x8d,0xe1,0x02,0x2d,0xe0,0x02,0xc9,0xff,0xf0,0xed,0xa9,0x00,0x8d,0x8e,
0x07,0xf0,0x82 };
// relokacni tabulka neni potreba, meni se vsechny hodnoty 0x07
// (melo by byt PRESNE 20 vyskytu! pokud je jich vic, pak bacha!!!)
This (http://www.64kib.com/atarixlfpga_svn/trunk/atari_800xl/firmware/atari_drive_emulator.c) is not the latest code (need the svn branch, this is easier for me to link...), but it shows how it does the xex access.
Updated by foft over 7 years ago
I'm wondering about splitting the firmware up and running on more smaller cpus (such as 6503). e.g. one instance for drive emulation, one for the screen stuff, one for USB access. Using a single CPU there are latency concerns which got quit fiddly after USB introduction. Though I guess that is mostly solved now by the fifo setup for SIO.
Updated by foft over 7 years ago
- Related to Feature #28: XEX boot loader replacement added