Memory map: Difference between revisions
No edit summary |
No edit summary |
||
Line 32: | Line 32: | ||
| || || || | | || || || | ||
|- | |- | ||
| C011 Link|| 0xFFFAC0|| | | C011 Link|| 0xFFFAC0|| 0xDFFA80|| 0xFEFFFAC0 | ||
|- | |- | ||
| CPLD version|| 0xFFFAD8|| | | CPLD version|| 0xFFFAD8|| 0xDFFA98|| 0xFEFFFAD8 | ||
|} | |} |
Latest revision as of 18:30, 12 May 2025
All services of the ATW800/2 are memory mapped. So, reading/writing to a specific address in memory, you can e.g. communicate with the Transputer(s) or draw to the screen. This is the memory map depending on the Atari system used
ATW800/2 | Mega-ST | Mega-STe | TT |
---|---|---|---|
VidMem | 0xC00000 | 0xA00000 | 0xFEC00000 |
SharedMem | 0xDF4000 | 0xBF4000 | 0xFEDF4000 |
ATWinfo | 0xDFDC00 | 0xBFDC00 | 0xFEDFDC00 |
CLUT shadow | 0xDFDE00 | 0xBFDE00 | 0xFEDFDE00 |
VDI caches | 0xDFE000 | 0xBFE000 | 0xFEDFE000 |
FPGA LUT | 0xDFF000 | 0xBFF000 | 0xFEDFF000 |
FPGA Info | 0xDFF200 | 0xBFF200 | 0xFEDFF200 |
FPGA VTG | 0xDFF800 | 0xBFF800 | 0xFEDFF800 |
FPGA Blit | 0xDFF900 | 0xBFF900 | 0xFEDFF900 |
FPGA link | 0xDFFAC0 | 0xBFFAC0 | 0xFEDFFAC0 |
C011 Link | 0xFFFAC0 | 0xDFFA80 | 0xFEFFFAC0 |
CPLD version | 0xFFFAD8 | 0xDFFA98 | 0xFEFFFAD8 |
VidMem
This is where ATW800/2’s video memory starts. For the default firmware, this covers a range of 2 megabytes.
Serves for fast data exchange between Atari and the synthetic Transputer in parallel operation.
ATWInfo
An info structure, created by NVDI/XVDI. Helios, for example, can use it to calculate its video RAM or to exit a Transputer program in an orderly manner.
struct nanoxk_atwinfo { long kennung_a; /*[0] 'ATW8' -> 0x41545738 */ long kennung_b; /*[4] 'XVDI' -> 0x58564449 / 'NVDI' -> 0x4E564449 */ long version; /*[8] z.B '0100' -> 0x30313030 , struct version, *NOT* VDI-version */ long version_fpga; /*[12] z.B '0106' -> 0x30313036 */ long vdi_memstart; /*[16] Startaddress videomem for VDI */ long vdi_memsize; /*[20] Videomemory used by Atari, often vdi_stride * vdi_height * byteperpixel */ int vdi_vstride; /*[24] # of bytes per line */ int vdi_bpp; /*[26] bit per pixel 1(monochrome), 8, 15, 16 */ int vdi_width; /*[28] width used by VDI */ int vdi_height; /*[30] hight used by VDI */ int vtg[16]; /*[32] shadow VTG register, as set by VDI - used for re-init after running a Transputer program */ int endmagic; /*[64] currently 0x4711 - prevents using corrupted data */ int stuffing /*[66] alignment to 32-Bit, currently also 0x4711 */ /* everything else until byte 511 is currently reserved */ };
CLUT shadow
This contains a shadow of the VDI color look-up table (CLUT). It needs to be kept up-to-date by the VDI. It’s important if the Transputer is used e.g as an accelerator for the Atari.
VDI caches
This can be used for e.g. fill patterns for VDI acceleration - currently only used by XVDI - total size: 4kB
FPGA LUT / VTG / Blit
These addresses provide means to control the video-output.
FPGA Link / C011 Link
These are the addresses which can be used to communicate with the virtual Transputer inside the FPGA or a real Transputer(s) plugged into the ATW800/2 TRAM sockets.
FPGA Info / CPLD Version
These addresses return information about the currently programmed firmware inside the FPGA and CPLD.