Stories
Slash Boxes
Comments

SoylentNews is people

Log In

Log In

Create Account  |  Retrieve Password


cafebabe (894)

cafebabe
(email not shown publicly)

Journal of cafebabe (894)

The Fine Print: The following are owned by whoever posted them. We are not responsible for them in any way.
Tuesday October 31, 17
01:46 PM
Hardware

(This is the 38th of many promised articles which explain an idea in isolation. It is hoped that ideas may be adapted, linked together and implemented.)

It is possible for a micro-controller to drive a VGA display. I was aware that there is a competitive graphics demo category for such systems. However, I hadn't considered a system in detail.

Simple eight bit computers, such as early Sinclair Spectrum models or a Galaksija use a memory-mapped 4021 logic chip shift register or suchlike for screen output. A 4MHz Z80 or suchlike spends about 80% of its processing power loading data into the shift register. This is horrendously inefficient but it significantly reduced the cost of early home computers. To maximize functionality in Spectrum designs, all Z80 alternate registers were reserved for rastering. Whereas, in Galaksija designs, the unrolled loop in ROM used timing-compatible Z80 opcodes which also provided QWERTY keyboard decode.

With an 84MHz Atmel SAM ARM processor in an Arduino Due, every pixel can be set directly from software without shift registers. For maximum resolution, especially at VGA resolution rather than NTSC or PAL, an unrolled loop remains beneficial. However, rather than being hand-rolled assembly, possibly with ancillary functions, it merely requires a C compiler and a tweaked Makefile to ensure display.o or suchlike contains a long, unrolled loop. With an 84MHz processor and 31kHz HSync, there are approximately 2700 processor cycles per line. Allowing for border and HSync, 640×480 display can be implemented with three instructions per pixel.

Furthermore, with a 32 bit micro-controller, it is possible to set 32 I/O lines simultaneously. These could represent HSync, VSync and 10 bits per channel for RGB color. Or it is possible to have two screen with five bits per channel per screen. Or five screens with two bits per channel per screen. Or 10 screens with one bit per channel per screen. Or 30 screens with one bit per pixel output. Unfortunately, driving VGA quickly exhausts RAM. An Atmel SAM has a minimum of three 32KB banks RAM. However, 640×480 is 307200 pixels. Per pixel-plane per screen, this is 38400 bytes RAM (37.5KB). So, two bits per pixel is the baseline functionality unless some form of compression or indirection is used. The most obvious technique is tiling such as a character mode where some or all of the available characters are user defined. For example, seven bit ASCII from 32 to 127 could be fixed and the remaining 160 code-points could be programmable. With a 16 bit character field, it may be possible to have eight bit Latin1 symbols plus 768 programmable code-points. Or maybe more.

It is particularly annoying for such arrangements to become practical after NTSC, PAL, SCART and VGA are considered deprecated. However, it you want to implement trustworthy computing, do not discard any of this equipment. After my recent experience of HDMI replacing SCART, I certainly won't be discarding anything with a SCART or VGA connector.

I have a friend who closely follows one soap opera, The Apprentice, business pitch shows and political news. He has anything in background when he writes Java Swing applications. He has a CRT television with a SCART connector which receives from a terrestrial digital decoder. The latter stopped working without warning and no obvious cause of failure. He hurridly replaced one digital decoder with another. However, the old decoder has two SCART connectors and the new decoder has one SCART connector and one HDMI connector. He only uses one SCART connector but he wasn't happy to lose the potential redundancy of a second SCART socket.

Many devices have multiple SCART sockets and this allows N devices to be daisy-chained with N-1 cables. Any device can take a lead and devices up and down the chain will follow. I presume that a device with one SCART socket and one HDMI socket implements similar functionality while also bridging between analog and digital. Unfortunately, I'm hugely unimpressed with HDMI functionality. With the exception of VCR recording, most SCART devices worked with NTSC and PAL. Such interoperability doesn't apply with the new-fangled digital equivalent.

I thought that he gained the potential to use his new decoder with his LCD computer display. Unfortnately, this completely fails because the minimum resolution of the digital decoder is 1920×1080 pixels and the maximum resolution of the LCD screen is 1280×1024 pixels. They have completely incompatible horizontal and vertical resolution! I know that the vertical resolution of SCART is poor but this type of incompatibility rarely occurred.

I'm most unimpressed that HDMI 4.0 provides full, unfiltered InterNet Protocol tunneling between devices. A shockingly typical configuration would be a subset of NewsCorp digital satellite decoder connected to a Samsung voice and/or gesture recognition television connected to a Windows 10 keylogger and/or game console with camera and NSA key connected to an ADSL router with a hidden route. What could possibly go wrong?

Whereas, you've got eight processor registers and three instruction cycles on a Harvard bus to assemble an arbitrary bit pattern for VGA display. And there's no data-path for any funny business.

Display Options Threshold/Breakthrough Reply to Article Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.