Changes

KC Compact

1,850 bytes added, 08:59, 7 July 2024
/* Video */
''Note: Much of this article was originally written by [[Kevin Thacker]] and so any references in the first person ("I", "me", ''etc.'') are by him.
 
[[Image:Kcc top.jpg|right|thumb|250px|The East German KC Compact Computer]]
* Programs that rely on exact Interrupt mechanism of the CPC6128
* Programs that call direct into the operating system rom (these may work, because the changes to the operating system rom are minor)
* Programs that rely on a unofficial hardware feature (I do not know of all hardware details, so I cannot say the level of compatibility)  The disc interface has a modified AMSDOS rom.
== Hardware differences ==
* The colour palette is not cleared to black on reset
* The Amstrad unofficial graphics mode (bit 1=bit 0=1 of [[Gate Array]] mode register) 3 does not exist, black . The clock to the shift registers is stopped. The last colour is output.* The raster interrupt is generated in a different way by the CIO.
This section describes the known hardware differences. This information is not definitive. I do not know all differences,
== UA880 CPU (equivalent to Zilog Z80) ==
The KC compact uses a UA880 CPU , which is a Russian an East German clone of the [[Z80]]. Are It is not confirmed whether there are any actual differences compared to a real Z80?* The . In terms of documentation, the KC Compact System Handbook lists "the opcodes SLL" as documented opcode , INF [a.k.a. IN F,(which is undocumented on Z80C)* The Handbook also lists INF and OUTF opcodes], and describes them to input/output the FLAG register OUTF [a.k.a. OUT (as far as I knowC), the Z80 does NOT work like thatF], instead it'd output ZERO, or input NOTHING, wouldn't it?)whereas these have remained undocumented by Zilog.
== Video ==
* The [[CRTC]] should be more or less same as those used in CPCs.* The handbook and schematic say the CRTC is a CM 607(Bulgarian clone of 6845), but the CRTC in mine [=Kevin's] is an HD6845P.* The CRTC used on a real KC Compact clocks for each mode (0,1 and 2) are derived from the main 16MHz clock, these then drive the shift registers to output pixels to the display.* Graphics Mode 3 is hardwired to 5V, so it doesn't have a HD6845Pclock. The CIO shift registers are stopped and output the last colour they clocked in. Even if this mode was activated in way of connecting up the clock for Mode 0 it is not decoded the same as on the CPC: 8 colours are chosen from the 16 colour palette, instead of 4.*There may be a bug whereby if the border colour is changed rapidly there could* be used 1 pixel of another colour output. When loading a game which changes the colour of the border, I have seen moving "snow" on the screen. I have seen this effect, but I need to re-program confirm how it is generated.* The video output doesn't generate luminance, so the resolutionKC Compact can't be used with a GT64 or MM14. (see CIO description below)
== Colour-ROM ==
The hardware colour index (defined by the I/O write: A15="0", A14="1", D7="0", D6="1" D3-D0 define hardware colour index), is used as a look-up into the ROM.
Each colour-element (R, G or B) is defined using 2 bits and has the potential to define a total palette of 64 colours. The colour-rom only uses 3 of the 4 possible settings for each colour-element. Looking at the schematic, and it the potential is unknown if not realised, the two of signals for each colour use the settings give same resistors before being combined. This means that the bit combinations 10 and 01 produce the same result intensity.So this means only 27 colours are possible. 
{|{{Prettytable|width: 700px; font-size: 2em;}}
|0||0||Zero''
|-
|0||1||Half? (this setting is equivalent to CPC half intensitysame as 10)''
|-
|1||0||Half?(same as 01)''
|-
|1||1||Full''
=== Expansion socket ===
The KC compact has a real connector compared to the P.C.B. edge connector of an English CPC6128. The connector appears to be a PC Card connector. This connector is not the same as the one on a German CPC6128.
The expansion connector has more pins; 58 compared to 50 on an English CPC6128.
 
The connector is a 'K1520 bus' connector which is present on all East German microcomputers. Some details about it can be found on the Wikipedia page for 'VEB Robotron' and some more here https://www.robotrontechnik.de/html/standards/k1520.htm (in German)
I am in the process of making an adaptor so that I can test CPC hardware on the KC Compact.
With the default settings, the CIO will count 26 HSYNC transitions (52 lines of the display covered in this time) and generate a interrupt. At VSYNC the counter is reset so that the interrupts are synchronised.
I do not know the exact function of the counter's of Port B. I have looked at the schematics, and it appears to control the video hardware. Maybe the KC compact has a programmable pixel clock, if it does, then the base resolution can be changed.
CPC Interrupts:
Image:Kcc base right.jpg|Base Right
Image:Deepfb keyb size kcc.jpg|Dimensions
Image:KCCompact_PCB_Top.jpg|PCB Top
Image:KCCompact_PCB_Bottom.jpg|PCB Bottom
Image:KCCompact_Keyboard_Top.jpg|Keyboard Top
Image:KCCompact_Keyboard_Bottom.jpg|Keyboard bottom
</gallery>
 
== Pictures (Disc Interface) ==
 
<gallery caption="KC Compact Disc Interface (Amsdos Clone)">
Image:KC Compact AmsdosClone1.jpeg|Disc Interface
Image:KC Compact AmsdosClone2.jpeg|Disc Interface
Image:KC Compact AmsdosClone3.jpeg|Disc Interface
Image:KC Compact AmsdosClone4.jpeg|Disc Interface
Image:KC Compact AmsdosClone5.jpeg|Disc Interface
Image:KC Compact AmsdosClone6.jpeg|Disc Interface
</gallery>
* [[AMSDOS#BASDOS|BASDOS]] - AMSDOS clone
* [[CP/M#MicroDOS|MicroDOS]] - CP/M clone
* [[FutureOS]] - only with Revaldhinos RAM expansion (true RAM mode &C3)
== KC Compact Computer Resources and Links ==
* http://www.iee.et.tu-dresden.de/~kc-club/index.html - Retro site for east-german computers
* http://www.sax.de/~zander/index2h.html - KC Compact is found in the "Hobby" section
 [[Category:Non CPC Computers]][[Category:Clones]]
12,623
edits