Re: Raven. A homemade Atari-like computer
Posted: 04 Jan 2026 16:13
Ok, I've been at it with AI. Let's see if it's any good.
It thinks that the problem might be that the current code maps the framebuffer to ISA address 0x00400000 (4MB). However, ISA graphics cards typically decode their apertures much higher in memory space—commonly at '0x00C00000' (12MB) or '0x00E00000' (14MB). The ATI Mach64 BIOS documentation confirms the aperture location is software-configured during card initialization and stored in EEPROM, not hardwired.
Why It "Sometimes Works":
With the aperture mapped to the wrong ISA address:
- Most framebuffer writes hit unmapped space → no effect
- Occasional address decode quirks or ISA bus wraparound → pixels appear (low success rate)
- Inconsistent initialization → explains the unreliability and crashes
If the mapping was completely wrong, it would **never** display anything—the fact that it occasionally shows a desktop proves the TT driver itself is correct, just accessing the wrong physical location.
It's suggesting the following fixes:
The Corrected Mappings
Version 1: Try ISA aperture at 12MB:
Version 2: Try ISA aperture at 14MB:
@agranlund, is this nonsense? I'll have to try to set myself up to compile this myself at some point, but if its not nonsense, could I trouble you to spin a couple of versions of rvnova.prg?
It thinks that the problem might be that the current code maps the framebuffer to ISA address 0x00400000 (4MB). However, ISA graphics cards typically decode their apertures much higher in memory space—commonly at '0x00C00000' (12MB) or '0x00E00000' (14MB). The ATI Mach64 BIOS documentation confirms the aperture location is software-configured during card initialization and stored in EEPROM, not hardwired.
Why It "Sometimes Works":
With the aperture mapped to the wrong ISA address:
- Most framebuffer writes hit unmapped space → no effect
- Occasional address decode quirks or ISA bus wraparound → pixels appear (low success rate)
- Inconsistent initialization → explains the unreliability and crashes
If the mapping was completely wrong, it would **never** display anything—the fact that it occasionally shows a desktop proves the TT driver itself is correct, just accessing the wrong physical location.
It's suggesting the following fixes:
The Corrected Mappings
Version 1: Try ISA aperture at 12MB:
Code: Select all
rv->mmu_Redirect(0xFEC00000UL, 0x82C00000UL, 0x00100000UL); /* ISA 0x00C00000 */
rv->mmu_Redirect(0xFED00000UL, 0x82D00000UL, 0x00100000UL); /* ISA 0x00D00000 */
rv->mmu_Redirect(0xFEE00000UL, 0x82E00000UL, 0x00100000UL); /* ISA 0x00E00000 */
rv->mmu_Redirect(0xFEF00000UL, 0x82F00000UL, 0x00100000UL); /* ISA 0x00F00000 */Code: Select all
rv->mmu_Redirect(0xFEC00000UL, 0x82E00000UL, 0x00100000UL); /* ISA 0x00E00000 */
rv->mmu_Redirect(0xFED00000UL, 0x82F00000UL, 0x00100000UL); /* ISA 0x00F00000 */
rv->mmu_Redirect(0xFEE00000UL, 0x83000000UL, 0x00100000UL); /* ISA 0x01000000 - might wrap */
rv->mmu_Redirect(0xFEF00000UL, 0x83100000UL, 0x00100000UL)