CPC+ ASIC's part number is 40489
==Emulated chips==
CPC+ ASIC emulated the following chips :
*CRTC 6845
*Gate Array
*PAL (memory paging)
*8255 PPI
==New features==
This Amstrad Plus ASIC perform many additional features that the old CPC series couldn't: the "Plus Features".
*Hardware Sprites.
*[[Soft scrolling (in complement with register 12&13 of the CRTC]] emulation.)*Hardware Scrolling.Screen splitting *Maybe some interactions with the [[Amstrad Cartridge Identification Device|ACID]] chip in cartridges.Programmable and vectorised interrupts*DMA sound channels.*Many many more.Specific ROM switching
== Known Flaws==
Yet this was a bit flawed.
*Despite removing some tasks from the CPU ([[Z80]]), the ASIC had registers are mapped onto memory from #4000 to use specific central #7FFF range prior to other type of memory addresses, so "took away" this memory from the CPU... This was not that important for a 64KB (RAM system (464+ and GX4000or ROM) yet .That means this memory range is a serious limitation not accessible when dealing with Extra memory (6128+ and Extra RAM peripheral)ASIC registers are paged.
*There's a DMA bug (Help PPI emulation is not correct as the original 8255 does not need validation.On ASIC emulation , this validation is needed)so some programs written for "old CPCs" will not be able to get keyboard state.
*Some argue that Z80 IM2 mode is bugged.In this mode , the Z80 I register gives the high word for vector table.ASIC simply badly emulates an old CPC, but it gives the low word from IVR and the devices that generate interrupt (raster and DMAs channels).ASIC generates sometimes a bad values and the raster interrupt routine is not really onecalled instead of DMA0 routine. The colours reasons of this bug are slightly different and some software (games) couldn't work until modified (patches for such old CPC games often exist now)not known.
*There is a conflict between programmable interrupts and some CRTC settings (line screen split).That will cause the RAM refresh to stop and the memory content will be quickly corrupted causing machine crash.
As a result*Reducing Horizontal BLanking could cause another internal conflict when using DMA lists.In the worst case , some people say that this conflict can cause irreversible damage to the Plus is not a CPCASIC.
*Original CPC colors emulation is not correct.
==Internal Links==