Development info related to Apollo Vampire Standalone (+) FPGA computer repurposed to Atari TOS applications / games under EmuTOS (,which is free, open-source implementation of Atari TOS found in all 16/32-bit Atari's).
To get more context about the device and manage expectations here is short write up by Olivier Landemarre (main developer behind MyAES) from Atari Forum "What V4SA is for and not". In short we can end up with nice Atari TOS clone (with potentially more not seen before features), but not 100% compatible with Atari ST or 'cycle accurate' with it.
As development is still ongoing and new things are added and start to work this page will be further updated, so watch this space!
Hardware detection (not fully settled):
Cpu is custom Apollo Computers FPGA cpu implementation based on Motorola MC68060 (called Apollo 68080 AMMX) with some extra SIMD like instruction set and 3D / multimedia graphics accelerator and more. All hardware registers are accessible (no Supervisor mode is needed ;( ), Amiga register map is remapped to remind Atari TOS layout (it's work in progress).
At this moment some functions / memory locations work the same way as on Atari TOS:
Atari TOS / FreeMint system calls reference. TODO verify what should work or not
Atari TOS hardware map reference
Additional features are accessible via usual Amiga / SAGA registers.
Additional information about SAGA sprite engine.
Development using usual Atari TOS compilers, cross development toolchains, currently only vasm supports Apollo 080 code generation officially. Most native debuggers will not work, so the only thing which remain is printf / serial debugging. Pure Debugger was patched (has disabled fpu register display, symbols are displayed only with PureC compiled programs http://gtello.free.fr/vampire.htm (adapted software)).
TODO Verify what is working on which FPGA core versions, add proper hardware registers map.
Atari V4SA links:
http://v4sa-atari.lutece.net
https://atari.gfabasic.net/htm/v4sa.htm
http://gtello.free.fr/vampire.htm
https://ptonthat.fr/category/atari-v4sa
To get more context about the device and manage expectations here is short write up by Olivier Landemarre (main developer behind MyAES) from Atari Forum "What V4SA is for and not". In short we can end up with nice Atari TOS clone (with potentially more not seen before features), but not 100% compatible with Atari ST or 'cycle accurate' with it.
As development is still ongoing and new things are added and start to work this page will be further updated, so watch this space!
Hardware detection (not fully settled):
- Check "_MCH" cookie for "0x60000", if it is found hardware is V4SA. Possibly in the future there will be separate cookie indicating presence of V4SA, along with model version and firmware version (if it will not be exposed via hardware register or system function call).
- VAMP VERSION($DFF3FC) address contains information about card version. Which can be used to determine if we are running program on v4sa or not.
- "_CPU" cookie contains value "40" (to make applications depending on it "more comfortable"), but it's more like 'extended' 060 with fpu and no MMU.
- "_VDO" is set to match Falcon. Surprising amount of applications use this to determine if they can use the Falcon video XBIOS calls, which were reimpemented for V4SA.
Cpu is custom Apollo Computers FPGA cpu implementation based on Motorola MC68060 (called Apollo 68080 AMMX) with some extra SIMD like instruction set and 3D / multimedia graphics accelerator and more. All hardware registers are accessible (no Supervisor mode is needed ;( ), Amiga register map is remapped to remind Atari TOS layout (it's work in progress).
At this moment some functions / memory locations work the same way as on Atari TOS:
- Most cleanly written AES / GEM applications should work fine
- YM2149 is emulated and properly located in memory map,
- Support of ST/e palette on usual addresses (rest can be emulated via SAGA registers),
- MFP timers A/B/C/D, System 200Hz timer acessible directly($114 vector) (or indirectly via cookie jar entry vector (to be verified)),
- Atari ST video modes via Xbios (Setscreen / Logbase / Physbase /Malloc/ VSync etc..),
- Atari Falcon video modes via Xbios ( Vsetscreen / VSetMode / Mxalloc ) etc.. Use VsetMode(mode), VsetScreen(-1, your_physbase,-1,-1), never use VsetScreen() for anything else, it reinitialises the VDI/AES/console and that's really bad if you don't explicitly want that (i.e multitasking).
- IKBD / ACIA support was hacked via software, partially works, but needs to be revised / cleaned up.
- Supervisor mode is not needed to access all registers (like on Amiga), but for sake of compatibility with original Atari TOS software, switching to Supervisor mode, shouldn't be ommited.
- No bus error cpu exceptions (like on Amiga) ;(...
- midi through serial port, so you either have midi or serial - data clash (like on Amiga), ;(
Atari TOS / FreeMint system calls reference. TODO verify what should work or not
Atari TOS hardware map reference
Additional features are accessible via usual Amiga / SAGA registers.
Additional information about SAGA sprite engine.
Development using usual Atari TOS compilers, cross development toolchains, currently only vasm supports Apollo 080 code generation officially. Most native debuggers will not work, so the only thing which remain is printf / serial debugging. Pure Debugger was patched (has disabled fpu register display, symbols are displayed only with PureC compiled programs http://gtello.free.fr/vampire.htm (adapted software)).
TODO Verify what is working on which FPGA core versions, add proper hardware registers map.
Atari V4SA links:
http://v4sa-atari.lutece.net
https://atari.gfabasic.net/htm/v4sa.htm
http://gtello.free.fr/vampire.htm
https://ptonthat.fr/category/atari-v4sa