The following article by Hans-Christof Tuchen was previously published in ABBUC Magazine number 50.
NS405: the heart of the XEP80
The Terminal Management Processor (TMP) in the 80 character upgrade vor the Atari 8 bit computers was developed by National Semiconductor Corporation. the chip is based on the architecture and command set of the 8048 microcontroller family. The version in the XEP80 does not contain any ROM.
The instructions come from the 8 kB ROM (2364) above the TMP; the 2364 below the TMP contains both Atari character sets. Next to it, you'll find an 8 kB SRAM chip that is used as screen memory. In the chip you'll find an additional 128 characters, among them a German 'ringel S' ('ß' often written as 'sz'). Unfortunately, the characters set can not be used in direct mode, as the screen is erase using multiple 'ä' (CHR$ $9B).
The system bus is 16 bits wide. Meaning one could use a maximum of 64k x 16 bits. (The 8048 family uses a multiplex bus, where addresses and data are sent and received over the same lines. Usually, the addresses are temporarily stored by external chips (latches), since there are few peripheral chips that have the same kind of bus.) The high byte (bits 8 to 15) of the video address is intended for use as attribute address - every character on screen could have it's own combination of attributes. But Atari left the second RAM, required for this feature, out. So we have to make due with both internal attribute addresses, who's functionality is further depreciated by the fact that the most significant bit of the character code is used to switch between normal and inverted characters. The two attribute addresses can only be used sensibly with the internal character set, which is only half as big. (In the data book from National Semiconductor from 1987 they even show show an application, that expends the external attribute memory in such a way, that a colour terminal can be build.) The additional attribute hardware is easily added, th big question here is whether the firmware and the handler allow their use. (Two registers have to be reprogrammed and their attributes have to be moved too.) In the manual there is mention of a DEBUG mode, with which an extra input port can be read, but there is no mention of how to activate it.
The format of the command code for the handler does not correspond with the respective TMP registers or certain opcodes. The reserved commands often lead to bizarre reactions, but whatever they do can only be determined by analyzing the 2 kB of Firmware. Let's see.
[Mathy: The data sheets to the NS405 can be found just below this text]