Difference between revisions of "Amstrad CPC"
From SizeCoding
Line 45: | Line 45: | ||
They are at position 0x1c (36 bytes) and 0x45 (59 bytes) https://www.cpcwiki.eu/index.php?title=AMSDOS_Header. | They are at position 0x1c (36 bytes) and 0x45 (59 bytes) https://www.cpcwiki.eu/index.php?title=AMSDOS_Header. | ||
− | In some conditions we can access them : | + | In some conditions, we can access them : |
− | |||
− | |||
− | |||
− | |||
+ | * If the file (header included) is smaller than 2048-128 bytes, the header is available at address (0xBE7D) + 0xe4 (i.e. 0xbe7d contains an address and 0xe4 bytes later, you have the header). You have access to the two areas | ||
+ | * Otherwise, the BEGINNING of the header is available at address (0xBE7D) + 0x55, and you only have access to the 36 bytes at 0x1c relative position | ||
=== Additional Resources === | === Additional Resources === | ||
* 64 NOPs Amstrad CPC Tech Blog - https://64nops.wordpress.com/ | * 64 NOPs Amstrad CPC Tech Blog - https://64nops.wordpress.com/ |
Revision as of 15:29, 20 February 2024
Contents
Amstrad CPC
The Amstrad consists of a Z80A @ 3.5 MHz CPU
Setting up
- Native-assemblers:
- orgams - Definitvely the state-of-the-art assembler on Amstrad CPC
- Cross-Assemblers:
- The emulator Winape has an integrated assembler.
- cross-platform SjASMPlus assembler supports CPC snapshot and CDT files since v1.18.4.
- Rasm - extremely fast cross-platform Z80 assembler with many features.
- BASM - a modern Z80 assembler with many features borrowed to mainstream spectrum assemblers, maxam and rasm.
- Emulator(s):
- Winape is very accurate and includes an assembler / debugger
- Caprice gets very regular updates
- CPCEC is very fast
- JavaCPC offers many features
- Retro Virtual Machine is visually very impressive
- Ace-DL one of the most accurate emulators / UI is less ergonomic than Winape ATM, but it will improve with time
- Amspirit another accurate emulator
Video Display
No information yet
Sound
No information yet
Assumed state at start
If the intro is launched with RUN"intro, we can assume those facts
- CRTC R12/R13 = 0x3000
- 0xC000-0xFFFF is filled with byte 0x00
- screen mode is 1
On the use of Amsdos Header
In most competition, Amsdos header counts in the size of the binary. So 128 bytes are lost by definition. However, there are two small areas that are not used and can embed data ! They are at position 0x1c (36 bytes) and 0x45 (59 bytes) https://www.cpcwiki.eu/index.php?title=AMSDOS_Header.
In some conditions, we can access them :
- If the file (header included) is smaller than 2048-128 bytes, the header is available at address (0xBE7D) + 0xe4 (i.e. 0xbe7d contains an address and 0xe4 bytes later, you have the header). You have access to the two areas
- Otherwise, the BEGINNING of the header is available at address (0xBE7D) + 0x55, and you only have access to the 36 bytes at 0x1c relative position
Additional Resources
- 64 NOPs Amstrad CPC Tech Blog - https://64nops.wordpress.com/