Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Semigraphics

From Wikipedia, the free encyclopedia
Method used in early text mode video hardware to emulate raster graphics
icon
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Semigraphics" – news ·newspapers ·books ·scholar ·JSTOR
(September 2025) (Learn how and when to remove this message)

Image rendered usingMDA block graphics
Color image rendered usingTeletext semigraphic characters

Text-basedsemigraphics,pseudographics, orcharacter graphics is a primitive method used in earlytext mode video hardware to emulateraster graphics without having to implement the logic for such a display mode.

There are two different ways to accomplish the emulation of raster graphics. The first one is to create a low-resolutionall points addressable mode using a set of specialcharacters with all binary combinations of a certain subdivision matrix of the text mode character size; this method is referred to asblock graphics,[1] or sometimesmosaic graphics.[2][3]

The second one is to use special shapes instead ofglyphs (letters and figures) that appear as if drawn in raster graphics mode, sometimes referred to assemi- orpseudo-graphics; an important example of this isbox-drawing characters.

Semigraphical characters (including some block elements) are still incorporated into theBIOS of anyVGA compatible video card, so any PC can displaythese characters from the moment it is turned on, even when no operating system is yet loaded. Single and double lines are still often drawn with this method when the system uses text mode; for example when running the BIOS setup program.

Many of these historical ideas have been adopted intoUnicode, in, for example in theSymbols for Legacy Computing,Block Elements,Box Drawing andGeometric ShapesUnicode blocks.[4]

Block graphics

[edit]
Sample character set display showing block graphics as used in theTRS-80 Color Computer (CoCo),Laser 210 andDragon 32/64

For characters consisting of 8 vertical and 8 horizontal pixels (an 8x8 character) you would need 2^64 or 10^19 characters to contain every possible combination of the 64 pixels. Instead, if you divide the 8×8 character in 2×2 "pixels" calledquadrants[5] you only need 16 characters for every combination. This was, for example,used in the Sinclair ZX81).

Another example divided an 8×12 pixel character vertically in two halves and horizontally in three parts, and then assigning "ink" and "background" values to the elements of the matrix in a binary pattern, corresponding to the binary sequence of the position in the font table of a2×3block mosaic[6] matrix of so-calledsquots (square dots)[7] orsextants.[5] Less often used versions use a 1×6 "matrix", in which case these six "pixels" are sometimes referred to assixels.[8]

Sometimes the text semigraphical characters are simply incorporated into the systems font-set, sometimes special video hardware is used to directly convert the bit-pattern from video memory into the pixels. In rare cases a character matrix was not dividable vertically by three, for example in an 8×8 matrix the mosaic is sometimes divided so that it uses a 3:2:3 scan line scheme. TheGalaksija's graphics mode is an example, although with a 4:5:4 scheme the distortion effect was minimal.[9]

The seminal use of this technology was in theTRS-80 where the only way to get discrete pixels on the screen that could be turned on and off individually, (all points addressable) was by the use of a 2×3 pixel matrix of block graphics. In the case of the TRS-80 these block graphics were not incorporated into a font ROM, as later became the norm, but were generated directly from the logic pattern of six bits from the video RAM using a dedicated circuit made fromlogic gates.[10] An earlier system using the same pseudo-graphics array of a 2 by 3 matrix was the Video Terminal Interface (VTI) of thePoly-88 bypolymorphic systems, anS-100 bus based system predating the TRS-80.

If the system also supported color, the color resolution of the resulting pixels was normally equal to the text resolution, often leading toattribute clash as the color of a pixel could not be changed on a per pixel basis, but only to one "ink", and one "background" color for all pixels within a character position.

Sometimes the number of characters in the font, dedicated to block graphics, could be halved if the system also supported an "invert" attribute, as half the characters in a full block graphics font set are the logical inverse of the other half of the font set. Other tricks that were used to decrease the number of needed characters, was to use a space for the "all bits are zero" character, and to use character 7F hex for the "all bits are on" character, as character 7F hex (decimal 127) was often defined as an "all pixels on" character (this was because when usingpapertape punching out all seven holes, created the 7F hex "byte" which was considered to be the"DEL" or "rub-out" character).[citation needed] The assignment inASCII of the rub-out character (to the code point 127) led designers ofVDUs to use "rub-out" for a character square filled with "ink", which was often used to represent the cursor.[citation needed]

Examples of the use of block graphics

[edit]
Text block graphics set of the ZX-81

Other examples of systems that relied on the use of block graphics are:

  • TheZX80 andZX81 character sets, where a matrix of 2×2 pixels was used, with the space and invert attribute tricks to keep the number of characters in the ROM needed down to just 7 (of the necessary 16).[11] TheZX Spectrum also supported block graphics as well as "real" higher-resolution graphics. In addition, on the Spectrum the system font (stored in its ROM) could be easily and instantly changed to one stored in RAM, allowing programmers to define their own semigraphical characters to suit their needs.
  • Other systems that used a 2×2 matrix included thePanasonic JR-200 and theMattel Aquarius. The latter supported not just 2×2 matrix semigraphics but also 2×3 matrix semigraphics, albeit imperfectly, as the semigraphics pixels in a character's middle row were less tall than those in the top and bottom rows, due to imperfect division of the 8×8 pixel character matrix.
  • TheCommodore PET also had a few characters to support 2×2 text semigraphics in itsPETSCII character set. The PET was also one of the first systems to rely heavily onsemigraphical characters, to get any form of graphics on screen.
  • TheTRS-80 Color Computer, and theDragon 32/64 are good examples of systems using 2×2 matrix color semigraphics. But theirMotorola 6847VDC also supported a little used 6-block semigraphics mode.[12][13]
  • Videotex andteletext systems used a 2×3 matrix and one foreground ("ink"), and one background color, normally out of a set of eight colors (including black and white). Many systems used "Videotex graphics". One of the best known examples is the AcornBBC Micro's default graphics mode (mode 7).[14] Other systems which used "Videotex"-like graphics are: theABC 80, theGrundy NewBrain, many of theAcorn Eurocard systems, and thePhilips P2000T, which actually used aTeletext chip designed for their TV's.
  • TheMatra Alice 32,[15] Matra Alice 90[16] andPhilips VG5000[17] were based on theThomson EF9345 graphic chip, only capable of displayingalphanumeric andsemigraphic characters.[18]
  • ThePC-8001 managed to combine normal text with a full set of 256 text semigraphical "characters" in a 2×4 matrix; the system distinguished the set of 256 semigraphics patterns from the 256-character set used for "normal" fonts via characterattribute bytes.[19]
  • One of the last video systems where text semigraphics were a useful option was theColor Graphics Adapter (CGA). This graphics adapter for earlyIBM-PCs only supported four colors in its high-resolution graphics mode, but in text mode it could display 16 different colors. Although the CGA adapter's font ROM did not contain all of the otherwise typical text semigraphics characters, it was still possible to create a160 × 100 CGA text semigraphics mode using a semi-documented trick.[20]

Semigraphical characters

[edit]
Semigraphical characters used on the gameKingdom of Kroz
PETSCII Chart as displayed on the C64 in shifted and unshifted modes. (Not shown are control codes, as well as characters in the $C0–$FF range, which are the standard uppercase keycodes returned from the keyboard, and which are mirrored to the range $60–$7F.)
The keyboard of thePET 2001 has semigraphical characters indicated for easy entry

Semigraphical characters are also characters in a font that are intended to give the impression that a system can support high resolution graphics, while in fact the system operates in text mode. Characters such asbox-drawing characters, circles and dots,card symbols like ♠, ♣, ♥ and ♦, and "graphical building block"geometric shapes such as triangles gave such systems that appearance.

One of the first systems that used such characters, the canonical example that others followed, was theCommodore PET, which had many of them within itsPETSCII font set.[21] The original PET relied to such a degree on these characters that it printed them on its keyboard, as can be seen here, an example that other systems soon copied.

Another good example of a system that relied on semigraphical characters is the venerableSharp MZ80K, which had no high-resolution graphics, nor reprogrammable characters, but relied fully on an extended font set with many pseudo graphical characters.[22] With these it was still possible to generate games that looked like the system had high-resolution graphics.[23]

Some of the systems that had a programmable font set, but did not have a real high resolution raster graphics hardware, came with default character sets to be uploaded in character set RAM, and these sets often incorporated the ideas mentioned here, although it was often also the case that dedicated semigraphical characters were defined as needed.

Systems that relied on semigraphical characters

[edit]

Examples of systems that relied heavily on semigraphical characters for their graphics are:

See also

[edit]

References

[edit]
  1. ^"R.T.Russell: BBC BASIC for Windows".www.bbcbasic.co.uk.
  2. ^Freytag (c), Asmus (2020-10-13)."Teletext separated mosaic graphics".
  3. ^Enhanced Teletext specification(PDF). European Telecommunications Standards Institute. 1997. p. 6.
  4. ^The Unicode Standard, Version 15.1 - Geometric Shapes(PDF). Unicode, Inc. 2023.
  5. ^abEwell, Doug;Bettencourt, Rebecca G.; Bánffy, Ricardo;Everson, Michael; Silva, Eduardo Marín; Mårtenson, Elias; Shoulson, Mark; Steele, Shawn; Turner, Rebecca (2019-01-04). "5. Graphic characters".Proposal to add characters from legacy computers and teletext to the UCS(PDF). Terminals Working Group (TWG),International Organization for Standardization. p. 3. L2/19-25.Archived(PDF) from the original on 2020-12-24. Retrieved2021-01-11. p. 3:The word "sextant" is used in this document, by analogy with "quadrant"—a term used for certain UCS characters since 1999—to refer to a semigraphics block consisting of six smaller blocks or "cells" arranged in two columns and three rows. In the teletext specification, characters in this group could be displayed either with the cells joined together, as with the existing quadrant characters, or with a narrow space between cells. A teletext emulator could interpret the control character U+001A ("separated graphics") to display space between cells, or U+0019 ("contiguous graphics") to revert to the default, joined appearance{{cite book}}:|work= ignored (help)
  6. ^ETS 300 072 - Terminal Equipment (TE); Videotex presentation layer protocol Videotex presentation layer data syntax(PDF). European Telecommunications Standards Institute (published 1996). 1990.
  7. ^Goldklang, Ira (2015)."Graphic Tips & Tricks".Archived from the original on 2017-07-29. Retrieved2017-07-29.
  8. ^"JayceLand's Weekly Rochester Events #191: All White Sixel".jayceland.com.
  9. ^"OLD-COMPUTERS.COM Museum ~ GALAKSIJA Galaksija software & screenshots". See the second image from above. The image shows small difference in height of some "pixel"s. Retrieved2014-01-27.
  10. ^"Description of TRS-80 block graphics".
  11. ^Technical details ZX-81 character set and block graphics
  12. ^"CoCo Semi-graphics-6 display mode".
  13. ^"Semi-graphics-6 display mode". 2021-02-14. Archived fromthe original on 2021-02-14.
  14. ^"R.T.Russell: BBC BASIC for Windows".www.bbcbasic.co.uk.
  15. ^"MATRA HACHETTE > ALICE".old-computers.com.Archived from the original on 2021-10-03. Retrieved2021-10-03.
  16. ^"MATRA HACHETTE > ALICE 90".old-computers.com.Archived from the original on 2021-10-03. Retrieved2021-10-03.
  17. ^Hervier, Carl; Vanlierde, Stéphane (204)."le VG5000µ".La page des fans du VG5000µ.Archived from the original on 2021-08-21. Retrieved2021-10-03.
  18. ^EF9345 - HMOS2 SINGLE CHIP SEMI-GRAPHIC DISPLAY PROCESSOR(PDF). SGS-THOMSON Microelectronics. March 1995.
  19. ^PC-8801 Programing - VRAM Information (Source in Japanese; the relevant sentence is "アトリビュートに開始位置とセミグラフィック指定ビット=1 を立てて、テキスト VRAM には文字コードの代わりにドットパターンを書き込みます。" This roughly translates to"At the starting position of semigraphics mode, once the relevant attribute bit is set to one, a dot pattern will be written to the VRAM for the character code instead [of the default graphical letter].")
  20. ^IBM PC XT Technical Reference, IBM, 1983, p. 1-142, retrieved2018-08-24
  21. ^Commodore C64 Manual: Commodore 64 Programmers Reference Guide, Commodore, 1983, p. 379, retrieved2018-08-24
  22. ^"old-computers.com Entry on the Sharp MZ80K mentions the lack of graphics capabilities".
  23. ^"Sharp MZ80K - BASE ZERO game". 2010-01-29 – via www.youtube.com.
  24. ^"Mattel Aquarius Homecomputer system".www.vdsteenoven.com.
  25. ^"Games on the MZ-80K relied on its great set of semigraphical characters".
Retrieved from "https://en.wikipedia.org/w/index.php?title=Semigraphics&oldid=1311912511"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp