From a7d5b2e230876821ee3758fa8705286935fe3999 Mon Sep 17 00:00:00 2001 From: suve Date: Sun, 15 Jun 2025 12:02:10 +0200 Subject: [PATCH 1/5] Add SDL3_gfx (imageFilter part) --- units/SDL3_gfx.pas | 51 ++++++++++++++++ units/SDL3_imageFilter.inc | 122 +++++++++++++++++++++++++++++++++++++ 2 files changed, 173 insertions(+) create mode 100644 units/SDL3_gfx.pas create mode 100644 units/SDL3_imageFilter.inc diff --git a/units/SDL3_gfx.pas b/units/SDL3_gfx.pas new file mode 100644 index 0000000..052f5c8 --- /dev/null +++ b/units/SDL3_gfx.pas @@ -0,0 +1,51 @@ +unit SDL3_gfx; + +{ + This file is part of: + + SDL3 for Pascal + (https://github.com/PascalGameDevelopment/SDL3-for-Pascal) + SPDX-License-Identifier: Zlib +} + +{$I sdl.inc} + +Interface + uses + {$IFDEF FPC} + ctypes, + {$ENDIF} + SDL3; + +const + {$IFDEF WINDOWS} + GFX_LibName = 'SDL3_gfx.dll'; + {$ENDIF} + + {$IFDEF UNIX} + {$IFDEF DARWIN} + GFX_LibName = 'libSDL3_gfx.dylib'; + {$IFDEF FPC} + {$LINKLIB libSDL3_gfx} + {$ENDIF} + {$ELSE} + {$IFDEF FPC} + GFX_LibName = 'libSDL3_gfx.so'; + {$ELSE} + GFX_LibName = 'libSDL3_gfx.so.0'; + {$ENDIF} + {$ENDIF} + {$ENDIF} + + {$IFDEF MACOS} + GFX_LibName = 'SDL3_gfx'; + {$IFDEF FPC} + {$linklib libSDL3_gfx} + {$ENDIF} + {$ENDIF} + +{$INCLUDE SDL3_imageFilter.inc} + +Implementation + +End. diff --git a/units/SDL3_imageFilter.inc b/units/SDL3_imageFilter.inc new file mode 100644 index 0000000..6f65474 --- /dev/null +++ b/units/SDL3_imageFilter.inc @@ -0,0 +1,122 @@ +{ + This file is part of: + + SDL3 for Pascal + (https://github.com/PascalGameDevelopment/SDL3-for-Pascal) + SPDX-License-Identifier: Zlib +} + +// +// All routines return: +// 0 OK +// -1 Error (internal error, parameter error) +// + +// SDL_imageFilterAdd: D = saturation255(S1 + S2) +function SDL_imageFilterAdd(Src1, Src2, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterAdd' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterMean: D = S1/2 + S2/2 +function SDL_imageFilterMean(Src1, Src2, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterMean' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterSub: D = saturation0(S1 - S2) +function SDL_imageFilterSub(Src1, Src2, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterSub' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterAbsDiff: D = | S1 - S2 | +function SDL_imageFilterAbsDiff(Src1, Src2, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterAbsDiff' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterMult: D = saturation(S1 * S2) +function SDL_imageFilterMult(Src1, Src2, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterMult' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterMultNor: D = S1 * S2 +function SDL_imageFilterMultNor(Src1, Src2, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterMultNor' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterMultDivby2: D = saturation255(S1/2 * S2) +function SDL_imageFilterMultDivby2(Src1, Src2, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterMultDivby2' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterMultDivby4: D = saturation255(S1/2 * S2/2) +function SDL_imageFilterMultDivby4(Src1, Src2, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterMultDivby4' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterBitAnd: D = S1 & S2 +function SDL_imageFilterBitAnd(Src1, Src2, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterBitAnd' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterBitOr: D = S1 | S2 +function SDL_imageFilterBitOr(Src1, Src2, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterBitOr' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterDiv: D = S1 / S2 +function SDL_imageFilterDiv(Src1, Src2, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterDiv' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterBitNegation: D = !S +function SDL_imageFilterBitNegation(Src1, Dest: pcuint8; length: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterBitNegation' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterAddByte: D = saturation255(S + C) +function SDL_imageFilterAddByte(Src1, Dest: pcuint8; length: cuint; C: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterAddByte' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterAddUint: D = saturation255(S + (uint)C) +function SDL_imageFilterAddUint(Src1, Dest: pcuint8; length, bpp, C: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterAddUint' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterAddByteToHalf: D = saturation255(S/2 + C) +function SDL_imageFilterAddByteToHalf(Src1, Dest: pcuint8; length: cuint; C: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterAddByteToHalf' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterSubByte: D = saturation0(S - C) +function SDL_imageFilterSubByte(Src1, Dest: pcuint8; length: cuint; C: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterSubByte' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterSubUint: D = saturation0(S - (uint)C) +function SDL_imageFilterSubUint(Src1, Dest: pcuint8; length, bpp, C: cuint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterSubUint' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterShiftRight: D = saturation0(S >> N) +function SDL_imageFilterShiftRight(Src1, Dest: pcuint8; length: cuint; N: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterShiftRight' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterShiftRightUint: D = saturation0((uint)S >> N) +function SDL_imageFilterShiftRightUint(Src1, Dest: pcuint8; length: cuint; N: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterShiftRightUint' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterMultByByte: D = saturation255(S * C) +function SDL_imageFilterMultByByte(Src1, Dest: pcuint8; length: cuint; C: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterMultByByte' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterShiftRightAndMultByByte: D = saturation255((S >> N) * C) +function SDL_imageFilterShiftRightAndMultByByte(Src1, Dest: pcuint8; length: cuint; N, C: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterShiftRightAndMultByByte' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterShiftLeftByte: D = (S << N) +function SDL_imageFilterShiftLeftByte(Src1, Dest: pcuint8; length: cuint; N: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterShiftLeftByte' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterShiftLeftUint: D = ((uint)S << N) +function SDL_imageFilterShiftLeftUint(Src1, Dest: pcuint8; length: cuint; N: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterShiftLeftUint' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterShiftLeft: D = saturation255(S << N) +function SDL_imageFilterShiftLeft(Src1, Dest: pcuint8; length: cuint; N: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterShiftLeft' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterBinarizeUsingThreshold: D = S >= T ? 255:0 +function SDL_imageFilterBinarizeUsingThreshold(Src1, Dest: pcuint8; length: cuint; T: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterBinarizeUsingThreshold' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterClipToRange: D = (S >= Tmin) & (S <= Tmax) 255:0 +function SDL_imageFilterClipToRange(Src1, Dest: pcuint8; length: cuint; Tmin, Tmax: cuint8): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterClipToRange' {$ENDIF} {$ENDIF}; + +// SDL_imageFilterNormalizeLinear: D = saturation255((Nmax - Nmin)/(Cmax - Cmin)*(S - Cmin) + Nmin) +function SDL_imageFilterNormalizeLinear(Src, Dest: pcuint8; length: cuint; Cmin, Cmax, Nmin, Nmax: cint): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_imageFilterNormalizeLinear' {$ENDIF} {$ENDIF}; + From 499067d53d3e7baa2154afd6073fff7f61749e5d Mon Sep 17 00:00:00 2001 From: suve Date: Sun, 15 Jun 2025 12:07:05 +0200 Subject: [PATCH 2/5] Add SDL3_gfx (rotozoom part) --- units/SDL3_gfx.pas | 1 + units/SDL3_rotozoom.inc | 42 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 units/SDL3_rotozoom.inc diff --git a/units/SDL3_gfx.pas b/units/SDL3_gfx.pas index 052f5c8..8396f1b 100644 --- a/units/SDL3_gfx.pas +++ b/units/SDL3_gfx.pas @@ -45,6 +45,7 @@ {$ENDIF} {$INCLUDE SDL3_imageFilter.inc} +{$INCLUDE SDL3_rotozoom.inc} Implementation diff --git a/units/SDL3_rotozoom.inc b/units/SDL3_rotozoom.inc new file mode 100644 index 0000000..9f83c30 --- /dev/null +++ b/units/SDL3_rotozoom.inc @@ -0,0 +1,42 @@ +{ + This file is part of: + + SDL3 for Pascal + (https://github.com/PascalGameDevelopment/SDL3-for-Pascal) + SPDX-License-Identifier: Zlib +} + +Const + {*! + \brief Disable anti-aliasing (no smoothing). + *} + SMOOTHING_OFF = 0; + + {*! + \brief Enable anti-aliasing (smoothing). + *} + SMOOTHING_ON = 1; + +function rotozoomSurface(src: PSDL_Surface; angle, zoom: cdouble; smooth: cint): PSDL_Surface; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_rotozoomSurface' {$ENDIF} {$ENDIF}; + +function rotozoomSurfaceXY(src: PSDL_Surface; angle, zoomx, zoomy: cdouble; smooth: cint): PSDL_Surface; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_rotozoomSurfaceXY' {$ENDIF} {$ENDIF}; + +procedure rotozoomSurfaceSize(width, height: cint; angle, zoom: cdouble; dstwidth, dstheight: pcint); cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_rotozoomSurfaceSize' {$ENDIF} {$ENDIF}; + +procedure rotozoomSurfaceSizeXY(width, height: cint; angle, zoomx, zoomy: cdouble; dstwidth, dstheight: pcint); cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_rotozoomSurfaceSizeXY' {$ENDIF} {$ENDIF}; + +function zoomSurface(src: PSDL_Surface; zoomx, zoomy: cdouble; smooth: cint): PSDL_Surface; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_zoomSurface' {$ENDIF} {$ENDIF}; + +procedure zoomSurfaceSize(width, height: cint; zoomx, zoomy: cdouble; dstwidth, dstheight: pcint); cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_zoomSurfaceSize' {$ENDIF} {$ENDIF}; + +function shrinkSurface(src: PSDL_Surface; factorx, factory: cint): PSDL_Surface; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_shrinkSurface' {$ENDIF} {$ENDIF}; + +function rotateSurface90Degrees(src: PSDL_Surface; numClockwiseTurns: cint): PSDL_Surface; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_rotateSurface90Degrees' {$ENDIF} {$ENDIF}; From d3ed319d089773c8bcae008aa1c6d03d9c20797b Mon Sep 17 00:00:00 2001 From: suve Date: Sun, 15 Jun 2025 12:13:14 +0200 Subject: [PATCH 3/5] Add SDL3_gfx (framerate part) --- units/SDL3_framerate.inc | 54 ++++++++++++++++++++++++++++++++++++++++ units/SDL3_gfx.pas | 1 + 2 files changed, 55 insertions(+) create mode 100644 units/SDL3_framerate.inc diff --git a/units/SDL3_framerate.inc b/units/SDL3_framerate.inc new file mode 100644 index 0000000..eed17bc --- /dev/null +++ b/units/SDL3_framerate.inc @@ -0,0 +1,54 @@ +{ + This file is part of: + + SDL3 for Pascal + (https://github.com/PascalGameDevelopment/SDL3-for-Pascal) + SPDX-License-Identifier: Zlib +} + +Const + {*! + \brief Highest possible rate supported by framerate controller in Hz (1/s). + *} + FPS_UPPER_LIMIT = 200; + + {*! + \brief Lowest possible rate supported by framerate controller in Hz (1/s). + *} + FPS_LOWER_LIMIT = 1; + + {*! + \brief Default rate of framerate controller in Hz (1/s). + *} + FPS_DEFAULT = 30; + +Type + {*! + \brief Structure holding the state and timing information of the framerate controller. + *} + PPFPSmanager = ^PFPSmanager; + PFPSmanager = ^TFPSmanager; + TFPSmanager = record + framecount: cuint32; + rateticks: cfloat; + baseticks: cuint64; + lastticks: cuint64; + rate: cuint32; + end; + +{* Functions return 0 or value for sucess and -1 for error *} + +procedure SDL_initFramerate(manager: PFPSmanager); cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_initFramerate' {$ENDIF} {$ENDIF}; + +function SDL_setFramerate(manager: PFPSmanager; rate: cuint32): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_setFramerate' {$ENDIF} {$ENDIF}; + +function SDL_getFramerate(manager: PFPSmanager): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_getFramerate' {$ENDIF} {$ENDIF}; + +function SDL_getFramecount(manager: PFPSmanager): cint; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_getFramecount' {$ENDIF} {$ENDIF}; + +function SDL_framerateDelay(manager: PFPSmanager): cuint64; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_framerateDelay' {$ENDIF} {$ENDIF}; diff --git a/units/SDL3_gfx.pas b/units/SDL3_gfx.pas index 8396f1b..93b7f7b 100644 --- a/units/SDL3_gfx.pas +++ b/units/SDL3_gfx.pas @@ -44,6 +44,7 @@ {$ENDIF} {$ENDIF} +{$INCLUDE SDL3_framerate.inc} {$INCLUDE SDL3_imageFilter.inc} {$INCLUDE SDL3_rotozoom.inc} From 53ac72463ddd05e7640593c52b47a8aedac734ff Mon Sep 17 00:00:00 2001 From: suve Date: Sun, 15 Jun 2025 12:38:46 +0200 Subject: [PATCH 4/5] Add SDL3_gfx (gfxPrimitives part) --- units/SDL3_gfx.pas | 1 + units/SDL3_gfxPrimitives.inc | 216 +++++++++++++++++++++++++++++++++++ 2 files changed, 217 insertions(+) create mode 100644 units/SDL3_gfxPrimitives.inc diff --git a/units/SDL3_gfx.pas b/units/SDL3_gfx.pas index 93b7f7b..c9b5b9e 100644 --- a/units/SDL3_gfx.pas +++ b/units/SDL3_gfx.pas @@ -45,6 +45,7 @@ {$ENDIF} {$INCLUDE SDL3_framerate.inc} +{$INCLUDE SDL3_gfxPrimitives.inc} {$INCLUDE SDL3_imageFilter.inc} {$INCLUDE SDL3_rotozoom.inc} diff --git a/units/SDL3_gfxPrimitives.inc b/units/SDL3_gfxPrimitives.inc new file mode 100644 index 0000000..0c34954 --- /dev/null +++ b/units/SDL3_gfxPrimitives.inc @@ -0,0 +1,216 @@ +{ + This file is part of: + + SDL3 for Pascal + (https://github.com/PascalGameDevelopment/SDL3-for-Pascal) + SPDX-License-Identifier: Zlib +} + +Const + SDL3_GFXPRIMITIVES_MAJOR = 1; + SDL3_GFXPRIMITIVES_MINOR = 0; + SDL3_GFXPRIMITIVES_MICRO = 0; + +{* Note: all ___Color routines expect the color to be in format 0xRRGGBBAA *} + +{* Pixel *} + +function pixelColor(renderer: PSDL_Renderer; x, y: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_pixelColor' {$ENDIF} {$ENDIF}; +function pixelRGBA(renderer: PSDL_Renderer; x, y: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_pixelRGBA' {$ENDIF} {$ENDIF}; + +{* Horizontal line *} + +function hlineColor(renderer: PSDL_Renderer; x1, x2, y: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_hlineColor' {$ENDIF} {$ENDIF}; +function hlineRGBA(renderer: PSDL_Renderer; x1, x2, y: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_hlineRGBA' {$ENDIF} {$ENDIF}; + +{* Vertical line *} + +function vlineColor(renderer: PSDL_Renderer; x, y1, y2: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_vlineColor' {$ENDIF} {$ENDIF}; +function vlineRGBA(renderer: PSDL_Renderer; x, y1, y2: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_vlineRGBA' {$ENDIF} {$ENDIF}; + +{* Rectangle *} + +function rectangleColor(renderer: PSDL_Renderer; x1, y1, x2, y2: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_rectangleColor' {$ENDIF} {$ENDIF}; +function rectangleRGBA(renderer: PSDL_Renderer; x1, y1, x2, y2: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_rectangleRGBA' {$ENDIF} {$ENDIF}; + +{* Rounded-Corner Rectangle *} + +function roundedRectangleColor(renderer: PSDL_Renderer; x1, y1, x2, y2, rad: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_roundedRectangleColor' {$ENDIF} {$ENDIF}; +function roundedRectangleRGBA(renderer: PSDL_Renderer; x1, y1, x2, y2, rad: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_roundedRectangleRGBA' {$ENDIF} {$ENDIF}; + +{* Filled rectangle (Box) *} + +function boxColor(renderer: PSDL_Renderer; x1, y1, x2, y2: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_boxColor' {$ENDIF} {$ENDIF}; +function boxRGBA(renderer: PSDL_Renderer; x1, y1, x2, y2: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_boxRGBA' {$ENDIF} {$ENDIF}; + +{* Rounded-Corner Filled rectangle (Box) *} + +function roundedBoxColor(renderer: PSDL_Renderer; x1, y1, x2, y2, rad: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_roundedBoxColor' {$ENDIF} {$ENDIF}; +function roundedBoxRGBA(renderer: PSDL_Renderer; x1, y1, x2, y2, rad: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_roundedBoxRGBA' {$ENDIF} {$ENDIF}; + +{* Line *} + +function lineColor(renderer: PSDL_Renderer; x1, y1, x2, y2: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_lineColor' {$ENDIF} {$ENDIF}; +function lineRGBA(renderer: PSDL_Renderer; x1, y1, x2, y2: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_lineRGBA' {$ENDIF} {$ENDIF}; + +{* AA Line *} + +function aalineColor(renderer: PSDL_Renderer; x1, y1, x2, y2: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_aalineColor' {$ENDIF} {$ENDIF}; +function aalineRGBA(renderer: PSDL_Renderer; x1, y1, x2, y2: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_aalineRGBA' {$ENDIF} {$ENDIF}; + +{* Thick Line *} + +function thickLineColor(renderer: PSDL_Renderer; x1, y1, x2, y2: cint16; width: cuint8; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_thickLineColor' {$ENDIF} {$ENDIF}; +function thickLineRGBA(renderer: PSDL_Renderer; x1, y1, x2, y2: cint16; width, r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_thickLineRGBA' {$ENDIF} {$ENDIF}; + +{* Circle *} + +function circleColor(renderer: PSDL_Renderer; x, y, rad: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_circleColor' {$ENDIF} {$ENDIF}; +function circleRGBA(renderer: PSDL_Renderer; x, y, rad: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_circleRGBA' {$ENDIF} {$ENDIF}; + +{* Arc *} + +function arcColor(renderer: PSDL_Renderer; x, y, rad, start, end_: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_arcColor' {$ENDIF} {$ENDIF}; +function arcRGBA(renderer: PSDL_Renderer; x, y, rad, start, end_: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_arcRGBA' {$ENDIF} {$ENDIF}; + +{* AA Circle *} + +function aacircleColor(renderer: PSDL_Renderer; x, y, rad: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_aacircleColor' {$ENDIF} {$ENDIF}; +function aacircleRGBA(renderer: PSDL_Renderer; x, y, rad: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_aacircleRGBA' {$ENDIF} {$ENDIF}; + +{* Filled Circle *} + +function filledCircleColor(renderer: PSDL_Renderer; x, y, r: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_filledCircleColor' {$ENDIF} {$ENDIF}; +function filledCircleRGBA(renderer: PSDL_Renderer; x, y, rad: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_filledCircleRGBA' {$ENDIF} {$ENDIF}; + +{* Ellipse *} + +function ellipseColor(renderer: PSDL_Renderer; x, y, rx, ry: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_ellipseColor' {$ENDIF} {$ENDIF}; +function ellipseRGBA(renderer: PSDL_Renderer; x, y, rx, ry: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_ellipseRGBA' {$ENDIF} {$ENDIF}; + +{* AA Ellipse *} + +function aaellipseColor(renderer: PSDL_Renderer; x, y, rx, ry: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_aaellipseColor' {$ENDIF} {$ENDIF}; +function aaellipseRGBA(renderer: PSDL_Renderer; x, y, rx, ry: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_aaellipseRGBA' {$ENDIF} {$ENDIF}; + +{* Filled Ellipse *} + +function filledEllipseColor(renderer: PSDL_Renderer; x, y, rx, ry: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_filledEllipseColor' {$ENDIF} {$ENDIF}; +function filledEllipseRGBA(renderer: PSDL_Renderer; x, y, rx, ry: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_filledEllipseRGBA' {$ENDIF} {$ENDIF}; + +{* Pie *} + +function pieColor(renderer: PSDL_Renderer; x, y, rad, start, end_: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_pieColor' {$ENDIF} {$ENDIF}; +function pieRGBA(renderer: PSDL_Renderer; x, y, rad, start, end_: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_pieRGBA' {$ENDIF} {$ENDIF}; + +{* Filled Pie *} + +function filledPieColor(renderer: PSDL_Renderer; x, y, rad, start, end_: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_filledPieColor' {$ENDIF} {$ENDIF}; +function filledPieRGBA(renderer: PSDL_Renderer; x, y, rad, start, end_: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_filledPieRGBA' {$ENDIF} {$ENDIF}; + +{* Trigon *} + +function trigonColor(renderer: PSDL_Renderer; x1, y1, x2, y2, x3, y3: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_trigonColor' {$ENDIF} {$ENDIF}; +function trigonRGBA(renderer: PSDL_Renderer; x1, y1, x2, y2, x3, y3: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_trigonRGBA' {$ENDIF} {$ENDIF}; + +{* AA-Trigon *} + +function aatrigonColor(renderer: PSDL_Renderer; x1, y1, x2, y2, x3, y3: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_aatrigonColor' {$ENDIF} {$ENDIF}; +function aatrigonRGBA(renderer: PSDL_Renderer; x1, y1, x2, y2, x3, y3: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_aatrigonRGBA' {$ENDIF} {$ENDIF}; + +{* Filled Trigon *} + +function filledTrigonColor(renderer: PSDL_Renderer; x1, y1, x2, y2, x3, y3: cint16; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_filledTrigonColor' {$ENDIF} {$ENDIF}; +function filledTrigonRGBA(renderer: PSDL_Renderer; x1, y1, x2, y2, x3, y3: cint16; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_filledTrigonRGBA' {$ENDIF} {$ENDIF}; + +{* Polygon *} + +function polygonColor(renderer: PSDL_Renderer; const vx, vy: pcint16; n: cint; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_polygonColor' {$ENDIF} {$ENDIF}; +function polygonRGBA(renderer: PSDL_Renderer; const vx, vy: pcint16; n: cint; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_polygonRGBA' {$ENDIF} {$ENDIF}; + +{* AA-Polygon *} + +function aapolygonColor(renderer: PSDL_Renderer; const vx, vy: pcint16; n: cint; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_aapolygonColor' {$ENDIF} {$ENDIF}; +function aapolygonRGBA(renderer: PSDL_Renderer; const vx, vy: pcint16; n: cint; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_aapolygonRGBA' {$ENDIF} {$ENDIF}; + +{* Filled Polygon *} + +function filledPolygonColor(renderer: PSDL_Renderer; const vx, vy: pcint16; n: cint; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_filledPolygonColor' {$ENDIF} {$ENDIF}; +function filledPolygonRGBA(renderer: PSDL_Renderer; const vx, vy: pcint16; n: cint; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_filledPolygonRGBA' {$ENDIF} {$ENDIF}; + +{* Textured Polygon *} + +function texturedPolygon(renderer: PSDL_Renderer; const vx, vy: pcint16; n: cint; texture: PSDL_Surface; texture_dx: cint; texture_dy: cint): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_texturedPolygon' {$ENDIF} {$ENDIF}; + +{* Bezier *} + +function bezierColor(renderer: PSDL_Renderer; const vx, vy: pcint16; n, s: cint; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_bezierColor' {$ENDIF} {$ENDIF}; +function bezierRGBA(renderer: PSDL_Renderer; const vx, vy: pcint16; n, s: cint; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_bezierRGBA' {$ENDIF} {$ENDIF}; + +{* Characters/Strings *} + +procedure gfxPrimitivesSetFont(const fontdata: Pointer; cw, ch: cuint32); cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_gfxPrimitivesSetFont' {$ENDIF} {$ENDIF}; +procedure gfxPrimitivesSetFontRotation(rotation: cuint32); cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_gfxPrimitivesSetFontRotation' {$ENDIF} {$ENDIF}; +function characterColor(renderer: PSDL_Renderer; x, y: cint16; c: cuint8; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_characterColor' {$ENDIF} {$ENDIF}; +function characterRGBA(renderer: PSDL_Renderer; x, y: cint16; c, r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_characterRGBA' {$ENDIF} {$ENDIF}; +function stringColor(renderer: PSDL_Renderer; x, y: cint16; const s: pcuint8; color: cuint32): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_stringColor' {$ENDIF} {$ENDIF}; +function stringRGBA(renderer: PSDL_Renderer; x, y: cint16; const s: pcuint8; r, g, b, a: cuint8): Boolean; cdecl; + external GFX_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_stringRGBA' {$ENDIF} {$ENDIF}; From cc7129b6684252ce3a9dfbf9892164686fac7768 Mon Sep 17 00:00:00 2001 From: suve Date: Sun, 15 Jun 2025 12:50:29 +0200 Subject: [PATCH 5/5] Add SDL3_gfx (gfxPrimitives_font part) --- units/SDL3_gfx.pas | 1 + units/SDL3_gfxPrimitives_font.inc | 2572 +++++++++++++++++++++++++++++ 2 files changed, 2573 insertions(+) create mode 100644 units/SDL3_gfxPrimitives_font.inc diff --git a/units/SDL3_gfx.pas b/units/SDL3_gfx.pas index c9b5b9e..f1372b1 100644 --- a/units/SDL3_gfx.pas +++ b/units/SDL3_gfx.pas @@ -46,6 +46,7 @@ {$INCLUDE SDL3_framerate.inc} {$INCLUDE SDL3_gfxPrimitives.inc} +{$INCLUDE SDL3_gfxPrimitives_font.inc} {$INCLUDE SDL3_imageFilter.inc} {$INCLUDE SDL3_rotozoom.inc} diff --git a/units/SDL3_gfxPrimitives_font.inc b/units/SDL3_gfxPrimitives_font.inc new file mode 100644 index 0000000..584fae7 --- /dev/null +++ b/units/SDL3_gfxPrimitives_font.inc @@ -0,0 +1,2572 @@ +{ + This file is part of: + + SDL3 for Pascal + (https://github.com/PascalGameDevelopment/SDL3-for-Pascal) + SPDX-License-Identifier: Zlib +} + +Const + GFX_FONTDATAMAX = (8*256); + + gfxPrimitivesFontdata: Array[0..(GFX_FONTDATAMAX-1)] of Byte = ( + (* 0 $00 '^@' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 1 $01 '^A' *) + $7e, { 01111110 } + $81, { 10000001 } + $a5, { 10100101 } + $81, { 10000001 } + $bd, { 10111101 } + $99, { 10011001 } + $81, { 10000001 } + $7e, { 01111110 } + + (* 2 $02 '^B' *) + $7e, { 01111110 } + $ff, { 11111111 } + $db, { 11011011 } + $ff, { 11111111 } + $c3, { 11000011 } + $e7, { 11100111 } + $ff, { 11111111 } + $7e, { 01111110 } + + (* 3 $03 '^C' *) + $6c, { 01101100 } + $fe, { 11111110 } + $fe, { 11111110 } + $fe, { 11111110 } + $7c, { 01111100 } + $38, { 00111000 } + $10, { 00010000 } + $00, { 00000000 } + + (* 4 $04 '^D' *) + $10, { 00010000 } + $38, { 00111000 } + $7c, { 01111100 } + $fe, { 11111110 } + $7c, { 01111100 } + $38, { 00111000 } + $10, { 00010000 } + $00, { 00000000 } + + (* 5 $05 '^E' *) + $38, { 00111000 } + $7c, { 01111100 } + $38, { 00111000 } + $fe, { 11111110 } + $fe, { 11111110 } + $d6, { 11010110 } + $10, { 00010000 } + $38, { 00111000 } + + (* 6 $06 '^F' *) + $10, { 00010000 } + $38, { 00111000 } + $7c, { 01111100 } + $fe, { 11111110 } + $fe, { 11111110 } + $7c, { 01111100 } + $10, { 00010000 } + $38, { 00111000 } + + (* 7 $07 '^G' *) + $00, { 00000000 } + $00, { 00000000 } + $18, { 00011000 } + $3c, { 00111100 } + $3c, { 00111100 } + $18, { 00011000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 8 $08 '^H' *) + $ff, { 11111111 } + $ff, { 11111111 } + $e7, { 11100111 } + $c3, { 11000011 } + $c3, { 11000011 } + $e7, { 11100111 } + $ff, { 11111111 } + $ff, { 11111111 } + + (* 9 $09 '^I' *) + $00, { 00000000 } + $3c, { 00111100 } + $66, { 01100110 } + $42, { 01000010 } + $42, { 01000010 } + $66, { 01100110 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 10 $0a '^J' *) + $ff, { 11111111 } + $c3, { 11000011 } + $99, { 10011001 } + $bd, { 10111101 } + $bd, { 10111101 } + $99, { 10011001 } + $c3, { 11000011 } + $ff, { 11111111 } + + (* 11 $0b '^K' *) + $0f, { 00001111 } + $07, { 00000111 } + $0f, { 00001111 } + $7d, { 01111101 } + $cc, { 11001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $78, { 01111000 } + + (* 12 $0c '^L' *) + $3c, { 00111100 } + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $3c, { 00111100 } + $18, { 00011000 } + $7e, { 01111110 } + $18, { 00011000 } + + (* 13 $0d '^M' *) + $3f, { 00111111 } + $33, { 00110011 } + $3f, { 00111111 } + $30, { 00110000 } + $30, { 00110000 } + $70, { 01110000 } + $f0, { 11110000 } + $e0, { 11100000 } + + (* 14 $0e '^N' *) + $7f, { 01111111 } + $63, { 01100011 } + $7f, { 01111111 } + $63, { 01100011 } + $63, { 01100011 } + $67, { 01100111 } + $e6, { 11100110 } + $c0, { 11000000 } + + (* 15 $0f '^O' *) + $18, { 00011000 } + $db, { 11011011 } + $3c, { 00111100 } + $e7, { 11100111 } + $e7, { 11100111 } + $3c, { 00111100 } + $db, { 11011011 } + $18, { 00011000 } + + (* 16 $10 '^P' *) + $80, { 10000000 } + $e0, { 11100000 } + $f8, { 11111000 } + $fe, { 11111110 } + $f8, { 11111000 } + $e0, { 11100000 } + $80, { 10000000 } + $00, { 00000000 } + + (* 17 $11 '^Q' *) + $02, { 00000010 } + $0e, { 00001110 } + $3e, { 00111110 } + $fe, { 11111110 } + $3e, { 00111110 } + $0e, { 00001110 } + $02, { 00000010 } + $00, { 00000000 } + + (* 18 $12 '^R' *) + $18, { 00011000 } + $3c, { 00111100 } + $7e, { 01111110 } + $18, { 00011000 } + $18, { 00011000 } + $7e, { 01111110 } + $3c, { 00111100 } + $18, { 00011000 } + + (* 19 $13 '^S' *) + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $00, { 00000000 } + $66, { 01100110 } + $00, { 00000000 } + + (* 20 $14 '^T' *) + $7f, { 01111111 } + $db, { 11011011 } + $db, { 11011011 } + $7b, { 01111011 } + $1b, { 00011011 } + $1b, { 00011011 } + $1b, { 00011011 } + $00, { 00000000 } + + (* 21 $15 '^U' *) + $3e, { 00111110 } + $61, { 01100001 } + $3c, { 00111100 } + $66, { 01100110 } + $66, { 01100110 } + $3c, { 00111100 } + $86, { 10000110 } + $7c, { 01111100 } + + (* 22 $16 '^V' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $7e, { 01111110 } + $7e, { 01111110 } + $7e, { 01111110 } + $00, { 00000000 } + + (* 23 $17 '^W' *) + $18, { 00011000 } + $3c, { 00111100 } + $7e, { 01111110 } + $18, { 00011000 } + $7e, { 01111110 } + $3c, { 00111100 } + $18, { 00011000 } + $ff, { 11111111 } + + (* 24 $18 '^X' *) + $18, { 00011000 } + $3c, { 00111100 } + $7e, { 01111110 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + + (* 25 $19 '^Y' *) + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $7e, { 01111110 } + $3c, { 00111100 } + $18, { 00011000 } + $00, { 00000000 } + + (* 26 $1a '^Z' *) + $00, { 00000000 } + $18, { 00011000 } + $0c, { 00001100 } + $fe, { 11111110 } + $0c, { 00001100 } + $18, { 00011000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 27 $1b '^[' *) + $00, { 00000000 } + $30, { 00110000 } + $60, { 01100000 } + $fe, { 11111110 } + $60, { 01100000 } + $30, { 00110000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 28 $1c '^\' *) + $00, { 00000000 } + $00, { 00000000 } + $c0, { 11000000 } + $c0, { 11000000 } + $c0, { 11000000 } + $fe, { 11111110 } + $00, { 00000000 } + $00, { 00000000 } + + (* 29 $1d '^]' *) + $00, { 00000000 } + $24, { 00100100 } + $66, { 01100110 } + $ff, { 11111111 } + $66, { 01100110 } + $24, { 00100100 } + $00, { 00000000 } + $00, { 00000000 } + + (* 30 $1e '^^' *) + $00, { 00000000 } + $18, { 00011000 } + $3c, { 00111100 } + $7e, { 01111110 } + $ff, { 11111111 } + $ff, { 11111111 } + $00, { 00000000 } + $00, { 00000000 } + + (* 31 $1f '^_' *) + $00, { 00000000 } + $ff, { 11111111 } + $ff, { 11111111 } + $7e, { 01111110 } + $3c, { 00111100 } + $18, { 00011000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 32 $20 ' ' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 33 $21 '!' *) + $18, { 00011000 } + $3c, { 00111100 } + $3c, { 00111100 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + $18, { 00011000 } + $00, { 00000000 } + + (* 34 $22 '"' *) + $66, { 01100110 } + $66, { 01100110 } + $24, { 00100100 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 35 $23 '#' *) + $6c, { 01101100 } + $6c, { 01101100 } + $fe, { 11111110 } + $6c, { 01101100 } + $fe, { 11111110 } + $6c, { 01101100 } + $6c, { 01101100 } + $00, { 00000000 } + + (* 36 $24 '$' *) + $18, { 00011000 } + $3e, { 00111110 } + $60, { 01100000 } + $3c, { 00111100 } + $06, { 00000110 } + $7c, { 01111100 } + $18, { 00011000 } + $00, { 00000000 } + + (* 37 $25 '%' *) + $00, { 00000000 } + $c6, { 11000110 } + $cc, { 11001100 } + $18, { 00011000 } + $30, { 00110000 } + $66, { 01100110 } + $c6, { 11000110 } + $00, { 00000000 } + + (* 38 $26 '&' *) + $38, { 00111000 } + $6c, { 01101100 } + $38, { 00111000 } + $76, { 01110110 } + $dc, { 11011100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 39 $27 ''' *) + $18, { 00011000 } + $18, { 00011000 } + $30, { 00110000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 40 $28 '(' *) + $0c, { 00001100 } + $18, { 00011000 } + $30, { 00110000 } + $30, { 00110000 } + $30, { 00110000 } + $18, { 00011000 } + $0c, { 00001100 } + $00, { 00000000 } + + (* 41 $29 ')' *) + $30, { 00110000 } + $18, { 00011000 } + $0c, { 00001100 } + $0c, { 00001100 } + $0c, { 00001100 } + $18, { 00011000 } + $30, { 00110000 } + $00, { 00000000 } + + (* 42 $2a '*' *) + $00, { 00000000 } + $66, { 01100110 } + $3c, { 00111100 } + $ff, { 11111111 } + $3c, { 00111100 } + $66, { 01100110 } + $00, { 00000000 } + $00, { 00000000 } + + (* 43 $2b '+' *) + $00, { 00000000 } + $18, { 00011000 } + $18, { 00011000 } + $7e, { 01111110 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 44 $2c ',' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $18, { 00011000 } + $18, { 00011000 } + $30, { 00110000 } + + (* 45 $2d '-' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $7e, { 01111110 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 46 $2e '.' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + + (* 47 $2f '/' *) + $06, { 00000110 } + $0c, { 00001100 } + $18, { 00011000 } + $30, { 00110000 } + $60, { 01100000 } + $c0, { 11000000 } + $80, { 10000000 } + $00, { 00000000 } + + (* 48 $30 '0' *) + $38, { 00111000 } + $6c, { 01101100 } + $c6, { 11000110 } + $d6, { 11010110 } + $c6, { 11000110 } + $6c, { 01101100 } + $38, { 00111000 } + $00, { 00000000 } + + (* 49 $31 '1' *) + $18, { 00011000 } + $38, { 00111000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $7e, { 01111110 } + $00, { 00000000 } + + (* 50 $32 '2' *) + $7c, { 01111100 } + $c6, { 11000110 } + $06, { 00000110 } + $1c, { 00011100 } + $30, { 00110000 } + $66, { 01100110 } + $fe, { 11111110 } + $00, { 00000000 } + + (* 51 $33 '3' *) + $7c, { 01111100 } + $c6, { 11000110 } + $06, { 00000110 } + $3c, { 00111100 } + $06, { 00000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 52 $34 '4' *) + $1c, { 00011100 } + $3c, { 00111100 } + $6c, { 01101100 } + $cc, { 11001100 } + $fe, { 11111110 } + $0c, { 00001100 } + $1e, { 00011110 } + $00, { 00000000 } + + (* 53 $35 '5' *) + $fe, { 11111110 } + $c0, { 11000000 } + $c0, { 11000000 } + $fc, { 11111100 } + $06, { 00000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 54 $36 '6' *) + $38, { 00111000 } + $60, { 01100000 } + $c0, { 11000000 } + $fc, { 11111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 55 $37 '7' *) + $fe, { 11111110 } + $c6, { 11000110 } + $0c, { 00001100 } + $18, { 00011000 } + $30, { 00110000 } + $30, { 00110000 } + $30, { 00110000 } + $00, { 00000000 } + + (* 56 $38 '8' *) + $7c, { 01111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 57 $39 '9' *) + $7c, { 01111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $7e, { 01111110 } + $06, { 00000110 } + $0c, { 00001100 } + $78, { 01111000 } + $00, { 00000000 } + + (* 58 $3a ':' *) + $00, { 00000000 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + $00, { 00000000 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + + (* 59 $3b ';' *) + $00, { 00000000 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + $00, { 00000000 } + $18, { 00011000 } + $18, { 00011000 } + $30, { 00110000 } + + (* 60 $3c '<' *) + $06, { 00000110 } + $0c, { 00001100 } + $18, { 00011000 } + $30, { 00110000 } + $18, { 00011000 } + $0c, { 00001100 } + $06, { 00000110 } + $00, { 00000000 } + + (* 61 $3d '=' *) + $00, { 00000000 } + $00, { 00000000 } + $7e, { 01111110 } + $00, { 00000000 } + $00, { 00000000 } + $7e, { 01111110 } + $00, { 00000000 } + $00, { 00000000 } + + (* 62 $3e '>' *) + $60, { 01100000 } + $30, { 00110000 } + $18, { 00011000 } + $0c, { 00001100 } + $18, { 00011000 } + $30, { 00110000 } + $60, { 01100000 } + $00, { 00000000 } + + (* 63 $3f '?' *) + $7c, { 01111100 } + $c6, { 11000110 } + $0c, { 00001100 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + $18, { 00011000 } + $00, { 00000000 } + + (* 64 $40 '@' *) + $7c, { 01111100 } + $c6, { 11000110 } + $de, { 11011110 } + $de, { 11011110 } + $de, { 11011110 } + $c0, { 11000000 } + $78, { 01111000 } + $00, { 00000000 } + + (* 65 $41 'A' *) + $38, { 00111000 } + $6c, { 01101100 } + $c6, { 11000110 } + $fe, { 11111110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $00, { 00000000 } + + (* 66 $42 'B' *) + $fc, { 11111100 } + $66, { 01100110 } + $66, { 01100110 } + $7c, { 01111100 } + $66, { 01100110 } + $66, { 01100110 } + $fc, { 11111100 } + $00, { 00000000 } + + (* 67 $43 'C' *) + $3c, { 00111100 } + $66, { 01100110 } + $c0, { 11000000 } + $c0, { 11000000 } + $c0, { 11000000 } + $66, { 01100110 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 68 $44 'D' *) + $f8, { 11111000 } + $6c, { 01101100 } + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $6c, { 01101100 } + $f8, { 11111000 } + $00, { 00000000 } + + (* 69 $45 'E' *) + $fe, { 11111110 } + $62, { 01100010 } + $68, { 01101000 } + $78, { 01111000 } + $68, { 01101000 } + $62, { 01100010 } + $fe, { 11111110 } + $00, { 00000000 } + + (* 70 $46 'F' *) + $fe, { 11111110 } + $62, { 01100010 } + $68, { 01101000 } + $78, { 01111000 } + $68, { 01101000 } + $60, { 01100000 } + $f0, { 11110000 } + $00, { 00000000 } + + (* 71 $47 'G' *) + $3c, { 00111100 } + $66, { 01100110 } + $c0, { 11000000 } + $c0, { 11000000 } + $ce, { 11001110 } + $66, { 01100110 } + $3a, { 00111010 } + $00, { 00000000 } + + (* 72 $48 'H' *) + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $fe, { 11111110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $00, { 00000000 } + + (* 73 $49 'I' *) + $3c, { 00111100 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 74 $4a 'J' *) + $1e, { 00011110 } + $0c, { 00001100 } + $0c, { 00001100 } + $0c, { 00001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $78, { 01111000 } + $00, { 00000000 } + + (* 75 $4b 'K' *) + $e6, { 11100110 } + $66, { 01100110 } + $6c, { 01101100 } + $78, { 01111000 } + $6c, { 01101100 } + $66, { 01100110 } + $e6, { 11100110 } + $00, { 00000000 } + + (* 76 $4c 'L' *) + $f0, { 11110000 } + $60, { 01100000 } + $60, { 01100000 } + $60, { 01100000 } + $62, { 01100010 } + $66, { 01100110 } + $fe, { 11111110 } + $00, { 00000000 } + + (* 77 $4d 'M' *) + $c6, { 11000110 } + $ee, { 11101110 } + $fe, { 11111110 } + $fe, { 11111110 } + $d6, { 11010110 } + $c6, { 11000110 } + $c6, { 11000110 } + $00, { 00000000 } + + (* 78 $4e 'N' *) + $c6, { 11000110 } + $e6, { 11100110 } + $f6, { 11110110 } + $de, { 11011110 } + $ce, { 11001110 } + $c6, { 11000110 } + $c6, { 11000110 } + $00, { 00000000 } + + (* 79 $4f 'O' *) + $7c, { 01111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 80 $50 'P' *) + $fc, { 11111100 } + $66, { 01100110 } + $66, { 01100110 } + $7c, { 01111100 } + $60, { 01100000 } + $60, { 01100000 } + $f0, { 11110000 } + $00, { 00000000 } + + (* 81 $51 'Q' *) + $7c, { 01111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $ce, { 11001110 } + $7c, { 01111100 } + $0e, { 00001110 } + + (* 82 $52 'R' *) + $fc, { 11111100 } + $66, { 01100110 } + $66, { 01100110 } + $7c, { 01111100 } + $6c, { 01101100 } + $66, { 01100110 } + $e6, { 11100110 } + $00, { 00000000 } + + (* 83 $53 'S' *) + $3c, { 00111100 } + $66, { 01100110 } + $30, { 00110000 } + $18, { 00011000 } + $0c, { 00001100 } + $66, { 01100110 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 84 $54 'T' *) + $7e, { 01111110 } + $7e, { 01111110 } + $5a, { 01011010 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 85 $55 'U' *) + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 86 $56 'V' *) + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $6c, { 01101100 } + $38, { 00111000 } + $00, { 00000000 } + + (* 87 $57 'W' *) + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $d6, { 11010110 } + $d6, { 11010110 } + $fe, { 11111110 } + $6c, { 01101100 } + $00, { 00000000 } + + (* 88 $58 'X' *) + $c6, { 11000110 } + $c6, { 11000110 } + $6c, { 01101100 } + $38, { 00111000 } + $6c, { 01101100 } + $c6, { 11000110 } + $c6, { 11000110 } + $00, { 00000000 } + + (* 89 $59 'Y' *) + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $3c, { 00111100 } + $18, { 00011000 } + $18, { 00011000 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 90 $5a 'Z' *) + $fe, { 11111110 } + $c6, { 11000110 } + $8c, { 10001100 } + $18, { 00011000 } + $32, { 00110010 } + $66, { 01100110 } + $fe, { 11111110 } + $00, { 00000000 } + + (* 91 $5b '[' *) + $3c, { 00111100 } + $30, { 00110000 } + $30, { 00110000 } + $30, { 00110000 } + $30, { 00110000 } + $30, { 00110000 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 92 $5c '\' *) + $c0, { 11000000 } + $60, { 01100000 } + $30, { 00110000 } + $18, { 00011000 } + $0c, { 00001100 } + $06, { 00000110 } + $02, { 00000010 } + $00, { 00000000 } + + (* 93 $5d ']' *) + $3c, { 00111100 } + $0c, { 00001100 } + $0c, { 00001100 } + $0c, { 00001100 } + $0c, { 00001100 } + $0c, { 00001100 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 94 $5e '^' *) + $10, { 00010000 } + $38, { 00111000 } + $6c, { 01101100 } + $c6, { 11000110 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 95 $5f '_' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $ff, { 11111111 } + + (* 96 $60 '`' *) + $30, { 00110000 } + $18, { 00011000 } + $0c, { 00001100 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 97 $61 'a' *) + $00, { 00000000 } + $00, { 00000000 } + $78, { 01111000 } + $0c, { 00001100 } + $7c, { 01111100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 98 $62 'b' *) + $e0, { 11100000 } + $60, { 01100000 } + $7c, { 01111100 } + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $dc, { 11011100 } + $00, { 00000000 } + + (* 99 $63 'c' *) + $00, { 00000000 } + $00, { 00000000 } + $7c, { 01111100 } + $c6, { 11000110 } + $c0, { 11000000 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 100 $64 'd' *) + $1c, { 00011100 } + $0c, { 00001100 } + $7c, { 01111100 } + $cc, { 11001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 101 $65 'e' *) + $00, { 00000000 } + $00, { 00000000 } + $7c, { 01111100 } + $c6, { 11000110 } + $fe, { 11111110 } + $c0, { 11000000 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 102 $66 'f' *) + $3c, { 00111100 } + $66, { 01100110 } + $60, { 01100000 } + $f8, { 11111000 } + $60, { 01100000 } + $60, { 01100000 } + $f0, { 11110000 } + $00, { 00000000 } + + (* 103 $67 'g' *) + $00, { 00000000 } + $00, { 00000000 } + $76, { 01110110 } + $cc, { 11001100 } + $cc, { 11001100 } + $7c, { 01111100 } + $0c, { 00001100 } + $f8, { 11111000 } + + (* 104 $68 'h' *) + $e0, { 11100000 } + $60, { 01100000 } + $6c, { 01101100 } + $76, { 01110110 } + $66, { 01100110 } + $66, { 01100110 } + $e6, { 11100110 } + $00, { 00000000 } + + (* 105 $69 'i' *) + $18, { 00011000 } + $00, { 00000000 } + $38, { 00111000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 106 $6a 'j' *) + $06, { 00000110 } + $00, { 00000000 } + $06, { 00000110 } + $06, { 00000110 } + $06, { 00000110 } + $66, { 01100110 } + $66, { 01100110 } + $3c, { 00111100 } + + (* 107 $6b 'k' *) + $e0, { 11100000 } + $60, { 01100000 } + $66, { 01100110 } + $6c, { 01101100 } + $78, { 01111000 } + $6c, { 01101100 } + $e6, { 11100110 } + $00, { 00000000 } + + (* 108 $6c 'l' *) + $38, { 00111000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 109 $6d 'm' *) + $00, { 00000000 } + $00, { 00000000 } + $ec, { 11101100 } + $fe, { 11111110 } + $d6, { 11010110 } + $d6, { 11010110 } + $d6, { 11010110 } + $00, { 00000000 } + + (* 110 $6e 'n' *) + $00, { 00000000 } + $00, { 00000000 } + $dc, { 11011100 } + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $00, { 00000000 } + + (* 111 $6f 'o' *) + $00, { 00000000 } + $00, { 00000000 } + $7c, { 01111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 112 $70 'p' *) + $00, { 00000000 } + $00, { 00000000 } + $dc, { 11011100 } + $66, { 01100110 } + $66, { 01100110 } + $7c, { 01111100 } + $60, { 01100000 } + $f0, { 11110000 } + + (* 113 $71 'q' *) + $00, { 00000000 } + $00, { 00000000 } + $76, { 01110110 } + $cc, { 11001100 } + $cc, { 11001100 } + $7c, { 01111100 } + $0c, { 00001100 } + $1e, { 00011110 } + + (* 114 $72 'r' *) + $00, { 00000000 } + $00, { 00000000 } + $dc, { 11011100 } + $76, { 01110110 } + $60, { 01100000 } + $60, { 01100000 } + $f0, { 11110000 } + $00, { 00000000 } + + (* 115 $73 's' *) + $00, { 00000000 } + $00, { 00000000 } + $7e, { 01111110 } + $c0, { 11000000 } + $7c, { 01111100 } + $06, { 00000110 } + $fc, { 11111100 } + $00, { 00000000 } + + (* 116 $74 't' *) + $30, { 00110000 } + $30, { 00110000 } + $fc, { 11111100 } + $30, { 00110000 } + $30, { 00110000 } + $36, { 00110110 } + $1c, { 00011100 } + $00, { 00000000 } + + (* 117 $75 'u' *) + $00, { 00000000 } + $00, { 00000000 } + $cc, { 11001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 118 $76 'v' *) + $00, { 00000000 } + $00, { 00000000 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $6c, { 01101100 } + $38, { 00111000 } + $00, { 00000000 } + + (* 119 $77 'w' *) + $00, { 00000000 } + $00, { 00000000 } + $c6, { 11000110 } + $d6, { 11010110 } + $d6, { 11010110 } + $fe, { 11111110 } + $6c, { 01101100 } + $00, { 00000000 } + + (* 120 $78 'x' *) + $00, { 00000000 } + $00, { 00000000 } + $c6, { 11000110 } + $6c, { 01101100 } + $38, { 00111000 } + $6c, { 01101100 } + $c6, { 11000110 } + $00, { 00000000 } + + (* 121 $79 'y' *) + $00, { 00000000 } + $00, { 00000000 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $7e, { 01111110 } + $06, { 00000110 } + $fc, { 11111100 } + + (* 122 $7a 'z' *) + $00, { 00000000 } + $00, { 00000000 } + $7e, { 01111110 } + $4c, { 01001100 } + $18, { 00011000 } + $32, { 00110010 } + $7e, { 01111110 } + $00, { 00000000 } + + (* 123 $7b '{' *) + $0e, { 00001110 } + $18, { 00011000 } + $18, { 00011000 } + $70, { 01110000 } + $18, { 00011000 } + $18, { 00011000 } + $0e, { 00001110 } + $00, { 00000000 } + + (* 124 $7c '|' *) + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + + (* 125 $7d '}' *) + $70, { 01110000 } + $18, { 00011000 } + $18, { 00011000 } + $0e, { 00001110 } + $18, { 00011000 } + $18, { 00011000 } + $70, { 01110000 } + $00, { 00000000 } + + (* 126 $7e '~' *) + $76, { 01110110 } + $dc, { 11011100 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 127 $7f '' *) + $00, { 00000000 } + $10, { 00010000 } + $38, { 00111000 } + $6c, { 01101100 } + $c6, { 11000110 } + $c6, { 11000110 } + $fe, { 11111110 } + $00, { 00000000 } + + (* 128 $80 '€' *) + $7c, { 01111100 } + $c6, { 11000110 } + $c0, { 11000000 } + $c0, { 11000000 } + $c6, { 11000110 } + $7c, { 01111100 } + $0c, { 00001100 } + $78, { 01111000 } + + (* 129 $81 '' *) + $cc, { 11001100 } + $00, { 00000000 } + $cc, { 11001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 130 $82 '‚' *) + $0c, { 00001100 } + $18, { 00011000 } + $7c, { 01111100 } + $c6, { 11000110 } + $fe, { 11111110 } + $c0, { 11000000 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 131 $83 'ƒ' *) + $7c, { 01111100 } + $82, { 10000010 } + $78, { 01111000 } + $0c, { 00001100 } + $7c, { 01111100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 132 $84 '„' *) + $c6, { 11000110 } + $00, { 00000000 } + $78, { 01111000 } + $0c, { 00001100 } + $7c, { 01111100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 133 $85 '…' *) + $30, { 00110000 } + $18, { 00011000 } + $78, { 01111000 } + $0c, { 00001100 } + $7c, { 01111100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 134 $86 '†' *) + $30, { 00110000 } + $30, { 00110000 } + $78, { 01111000 } + $0c, { 00001100 } + $7c, { 01111100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 135 $87 '‡' *) + $00, { 00000000 } + $00, { 00000000 } + $7e, { 01111110 } + $c0, { 11000000 } + $c0, { 11000000 } + $7e, { 01111110 } + $0c, { 00001100 } + $38, { 00111000 } + + (* 136 $88 'ˆ' *) + $7c, { 01111100 } + $82, { 10000010 } + $7c, { 01111100 } + $c6, { 11000110 } + $fe, { 11111110 } + $c0, { 11000000 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 137 $89 '‰' *) + $c6, { 11000110 } + $00, { 00000000 } + $7c, { 01111100 } + $c6, { 11000110 } + $fe, { 11111110 } + $c0, { 11000000 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 138 $8a 'Š' *) + $30, { 00110000 } + $18, { 00011000 } + $7c, { 01111100 } + $c6, { 11000110 } + $fe, { 11111110 } + $c0, { 11000000 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 139 $8b '‹' *) + $66, { 01100110 } + $00, { 00000000 } + $38, { 00111000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 140 $8c 'Œ' *) + $7c, { 01111100 } + $82, { 10000010 } + $38, { 00111000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 141 $8d '' *) + $30, { 00110000 } + $18, { 00011000 } + $00, { 00000000 } + $38, { 00111000 } + $18, { 00011000 } + $18, { 00011000 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 142 $8e 'Ž' *) + $c6, { 11000110 } + $38, { 00111000 } + $6c, { 01101100 } + $c6, { 11000110 } + $fe, { 11111110 } + $c6, { 11000110 } + $c6, { 11000110 } + $00, { 00000000 } + + (* 143 $8f '' *) + $38, { 00111000 } + $6c, { 01101100 } + $7c, { 01111100 } + $c6, { 11000110 } + $fe, { 11111110 } + $c6, { 11000110 } + $c6, { 11000110 } + $00, { 00000000 } + + (* 144 $90 '' *) + $18, { 00011000 } + $30, { 00110000 } + $fe, { 11111110 } + $c0, { 11000000 } + $f8, { 11111000 } + $c0, { 11000000 } + $fe, { 11111110 } + $00, { 00000000 } + + (* 145 $91 '‘' *) + $00, { 00000000 } + $00, { 00000000 } + $7e, { 01111110 } + $18, { 00011000 } + $7e, { 01111110 } + $d8, { 11011000 } + $7e, { 01111110 } + $00, { 00000000 } + + (* 146 $92 '’' *) + $3e, { 00111110 } + $6c, { 01101100 } + $cc, { 11001100 } + $fe, { 11111110 } + $cc, { 11001100 } + $cc, { 11001100 } + $ce, { 11001110 } + $00, { 00000000 } + + (* 147 $93 '“' *) + $7c, { 01111100 } + $82, { 10000010 } + $7c, { 01111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 148 $94 '”' *) + $c6, { 11000110 } + $00, { 00000000 } + $7c, { 01111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 149 $95 '•' *) + $30, { 00110000 } + $18, { 00011000 } + $7c, { 01111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 150 $96 '–' *) + $78, { 01111000 } + $84, { 10000100 } + $00, { 00000000 } + $cc, { 11001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 151 $97 '—' *) + $60, { 01100000 } + $30, { 00110000 } + $cc, { 11001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 152 $98 '˜' *) + $c6, { 11000110 } + $00, { 00000000 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $7e, { 01111110 } + $06, { 00000110 } + $fc, { 11111100 } + + (* 153 $99 '™' *) + $c6, { 11000110 } + $38, { 00111000 } + $6c, { 01101100 } + $c6, { 11000110 } + $c6, { 11000110 } + $6c, { 01101100 } + $38, { 00111000 } + $00, { 00000000 } + + (* 154 $9a 'š' *) + $c6, { 11000110 } + $00, { 00000000 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 155 $9b '›' *) + $18, { 00011000 } + $18, { 00011000 } + $7e, { 01111110 } + $c0, { 11000000 } + $c0, { 11000000 } + $7e, { 01111110 } + $18, { 00011000 } + $18, { 00011000 } + + (* 156 $9c 'œ' *) + $38, { 00111000 } + $6c, { 01101100 } + $64, { 01100100 } + $f0, { 11110000 } + $60, { 01100000 } + $66, { 01100110 } + $fc, { 11111100 } + $00, { 00000000 } + + (* 157 $9d '' *) + $66, { 01100110 } + $66, { 01100110 } + $3c, { 00111100 } + $7e, { 01111110 } + $18, { 00011000 } + $7e, { 01111110 } + $18, { 00011000 } + $18, { 00011000 } + + (* 158 $9e 'ž' *) + $f8, { 11111000 } + $cc, { 11001100 } + $cc, { 11001100 } + $fa, { 11111010 } + $c6, { 11000110 } + $cf, { 11001111 } + $c6, { 11000110 } + $c7, { 11000111 } + + (* 159 $9f 'Ÿ' *) + $0e, { 00001110 } + $1b, { 00011011 } + $18, { 00011000 } + $3c, { 00111100 } + $18, { 00011000 } + $d8, { 11011000 } + $70, { 01110000 } + $00, { 00000000 } + + (* 160 $a0 ' ' *) + $18, { 00011000 } + $30, { 00110000 } + $78, { 01111000 } + $0c, { 00001100 } + $7c, { 01111100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 161 $a1 '¡' *) + $0c, { 00001100 } + $18, { 00011000 } + $00, { 00000000 } + $38, { 00111000 } + $18, { 00011000 } + $18, { 00011000 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 162 $a2 '¢' *) + $0c, { 00001100 } + $18, { 00011000 } + $7c, { 01111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $7c, { 01111100 } + $00, { 00000000 } + + (* 163 $a3 '£' *) + $18, { 00011000 } + $30, { 00110000 } + $cc, { 11001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $cc, { 11001100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 164 $a4 '¤' *) + $76, { 01110110 } + $dc, { 11011100 } + $00, { 00000000 } + $dc, { 11011100 } + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $00, { 00000000 } + + (* 165 $a5 '¥' *) + $76, { 01110110 } + $dc, { 11011100 } + $00, { 00000000 } + $e6, { 11100110 } + $f6, { 11110110 } + $de, { 11011110 } + $ce, { 11001110 } + $00, { 00000000 } + + (* 166 $a6 '¦' *) + $3c, { 00111100 } + $6c, { 01101100 } + $6c, { 01101100 } + $3e, { 00111110 } + $00, { 00000000 } + $7e, { 01111110 } + $00, { 00000000 } + $00, { 00000000 } + + (* 167 $a7 '§' *) + $38, { 00111000 } + $6c, { 01101100 } + $6c, { 01101100 } + $38, { 00111000 } + $00, { 00000000 } + $7c, { 01111100 } + $00, { 00000000 } + $00, { 00000000 } + + (* 168 $a8 '¨' *) + $18, { 00011000 } + $00, { 00000000 } + $18, { 00011000 } + $18, { 00011000 } + $30, { 00110000 } + $63, { 01100011 } + $3e, { 00111110 } + $00, { 00000000 } + + (* 169 $a9 '©' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $fe, { 11111110 } + $c0, { 11000000 } + $c0, { 11000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 170 $aa 'ª' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $fe, { 11111110 } + $06, { 00000110 } + $06, { 00000110 } + $00, { 00000000 } + $00, { 00000000 } + + (* 171 $ab '«' *) + $63, { 01100011 } + $e6, { 11100110 } + $6c, { 01101100 } + $7e, { 01111110 } + $33, { 00110011 } + $66, { 01100110 } + $cc, { 11001100 } + $0f, { 00001111 } + + (* 172 $ac '¬' *) + $63, { 01100011 } + $e6, { 11100110 } + $6c, { 01101100 } + $7a, { 01111010 } + $36, { 00110110 } + $6a, { 01101010 } + $df, { 11011111 } + $06, { 00000110 } + + (* 173 $ad '­' *) + $18, { 00011000 } + $00, { 00000000 } + $18, { 00011000 } + $18, { 00011000 } + $3c, { 00111100 } + $3c, { 00111100 } + $18, { 00011000 } + $00, { 00000000 } + + (* 174 $ae '®' *) + $00, { 00000000 } + $33, { 00110011 } + $66, { 01100110 } + $cc, { 11001100 } + $66, { 01100110 } + $33, { 00110011 } + $00, { 00000000 } + $00, { 00000000 } + + (* 175 $af '¯' *) + $00, { 00000000 } + $cc, { 11001100 } + $66, { 01100110 } + $33, { 00110011 } + $66, { 01100110 } + $cc, { 11001100 } + $00, { 00000000 } + $00, { 00000000 } + + (* 176 $b0 '°' *) + $22, { 00100010 } + $88, { 10001000 } + $22, { 00100010 } + $88, { 10001000 } + $22, { 00100010 } + $88, { 10001000 } + $22, { 00100010 } + $88, { 10001000 } + + (* 177 $b1 '±' *) + $55, { 01010101 } + $aa, { 10101010 } + $55, { 01010101 } + $aa, { 10101010 } + $55, { 01010101 } + $aa, { 10101010 } + $55, { 01010101 } + $aa, { 10101010 } + + (* 178 $b2 '²' *) + $77, { 01110111 } + $dd, { 11011101 } + $77, { 01110111 } + $dd, { 11011101 } + $77, { 01110111 } + $dd, { 11011101 } + $77, { 01110111 } + $dd, { 11011101 } + + (* 179 $b3 '³' *) + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 180 $b4 '´' *) + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $f8, { 11111000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 181 $b5 'µ' *) + $18, { 00011000 } + $18, { 00011000 } + $f8, { 11111000 } + $18, { 00011000 } + $f8, { 11111000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 182 $b6 '¶' *) + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $f6, { 11110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 183 $b7 '·' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $fe, { 11111110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 184 $b8 '¸' *) + $00, { 00000000 } + $00, { 00000000 } + $f8, { 11111000 } + $18, { 00011000 } + $f8, { 11111000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 185 $b9 '¹' *) + $36, { 00110110 } + $36, { 00110110 } + $f6, { 11110110 } + $06, { 00000110 } + $f6, { 11110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 186 $ba 'º' *) + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 187 $bb '»' *) + $00, { 00000000 } + $00, { 00000000 } + $fe, { 11111110 } + $06, { 00000110 } + $f6, { 11110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 188 $bc '¼' *) + $36, { 00110110 } + $36, { 00110110 } + $f6, { 11110110 } + $06, { 00000110 } + $fe, { 11111110 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 189 $bd '½' *) + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $fe, { 11111110 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 190 $be '¾' *) + $18, { 00011000 } + $18, { 00011000 } + $f8, { 11111000 } + $18, { 00011000 } + $f8, { 11111000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 191 $bf '¿' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $f8, { 11111000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 192 $c0 'À' *) + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $1f, { 00011111 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 193 $c1 'Á' *) + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $ff, { 11111111 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 194 $c2 'Â' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $ff, { 11111111 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 195 $c3 'Ã' *) + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $1f, { 00011111 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 196 $c4 'Ä' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $ff, { 11111111 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 197 $c5 'Å' *) + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $ff, { 11111111 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 198 $c6 'Æ' *) + $18, { 00011000 } + $18, { 00011000 } + $1f, { 00011111 } + $18, { 00011000 } + $1f, { 00011111 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 199 $c7 'Ç' *) + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $37, { 00110111 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 200 $c8 'È' *) + $36, { 00110110 } + $36, { 00110110 } + $37, { 00110111 } + $30, { 00110000 } + $3f, { 00111111 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 201 $c9 'É' *) + $00, { 00000000 } + $00, { 00000000 } + $3f, { 00111111 } + $30, { 00110000 } + $37, { 00110111 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 202 $ca 'Ê' *) + $36, { 00110110 } + $36, { 00110110 } + $f7, { 11110111 } + $00, { 00000000 } + $ff, { 11111111 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 203 $cb 'Ë' *) + $00, { 00000000 } + $00, { 00000000 } + $ff, { 11111111 } + $00, { 00000000 } + $f7, { 11110111 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 204 $cc 'Ì' *) + $36, { 00110110 } + $36, { 00110110 } + $37, { 00110111 } + $30, { 00110000 } + $37, { 00110111 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 205 $cd 'Í' *) + $00, { 00000000 } + $00, { 00000000 } + $ff, { 11111111 } + $00, { 00000000 } + $ff, { 11111111 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 206 $ce 'Î' *) + $36, { 00110110 } + $36, { 00110110 } + $f7, { 11110111 } + $00, { 00000000 } + $f7, { 11110111 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 207 $cf 'Ï' *) + $18, { 00011000 } + $18, { 00011000 } + $ff, { 11111111 } + $00, { 00000000 } + $ff, { 11111111 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 208 $d0 'Ð' *) + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $ff, { 11111111 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 209 $d1 'Ñ' *) + $00, { 00000000 } + $00, { 00000000 } + $ff, { 11111111 } + $00, { 00000000 } + $ff, { 11111111 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 210 $d2 'Ò' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $ff, { 11111111 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 211 $d3 'Ó' *) + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $3f, { 00111111 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 212 $d4 'Ô' *) + $18, { 00011000 } + $18, { 00011000 } + $1f, { 00011111 } + $18, { 00011000 } + $1f, { 00011111 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 213 $d5 'Õ' *) + $00, { 00000000 } + $00, { 00000000 } + $1f, { 00011111 } + $18, { 00011000 } + $1f, { 00011111 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 214 $d6 'Ö' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $3f, { 00111111 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 215 $d7 '×' *) + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $ff, { 11111111 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + + (* 216 $d8 'Ø' *) + $18, { 00011000 } + $18, { 00011000 } + $ff, { 11111111 } + $18, { 00011000 } + $ff, { 11111111 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 217 $d9 'Ù' *) + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $f8, { 11111000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 218 $da 'Ú' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $1f, { 00011111 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 219 $db 'Û' *) + $ff, { 11111111 } + $ff, { 11111111 } + $ff, { 11111111 } + $ff, { 11111111 } + $ff, { 11111111 } + $ff, { 11111111 } + $ff, { 11111111 } + $ff, { 11111111 } + + (* 220 $dc 'Ü' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $ff, { 11111111 } + $ff, { 11111111 } + $ff, { 11111111 } + $ff, { 11111111 } + + (* 221 $dd 'Ý' *) + $f0, { 11110000 } + $f0, { 11110000 } + $f0, { 11110000 } + $f0, { 11110000 } + $f0, { 11110000 } + $f0, { 11110000 } + $f0, { 11110000 } + $f0, { 11110000 } + + (* 222 $de 'Þ' *) + $0f, { 00001111 } + $0f, { 00001111 } + $0f, { 00001111 } + $0f, { 00001111 } + $0f, { 00001111 } + $0f, { 00001111 } + $0f, { 00001111 } + $0f, { 00001111 } + + (* 223 $df 'ß' *) + $ff, { 11111111 } + $ff, { 11111111 } + $ff, { 11111111 } + $ff, { 11111111 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 224 $e0 'à' *) + $00, { 00000000 } + $00, { 00000000 } + $76, { 01110110 } + $dc, { 11011100 } + $c8, { 11001000 } + $dc, { 11011100 } + $76, { 01110110 } + $00, { 00000000 } + + (* 225 $e1 'á' *) + $78, { 01111000 } + $cc, { 11001100 } + $cc, { 11001100 } + $d8, { 11011000 } + $cc, { 11001100 } + $c6, { 11000110 } + $cc, { 11001100 } + $00, { 00000000 } + + (* 226 $e2 'â' *) + $fe, { 11111110 } + $c6, { 11000110 } + $c0, { 11000000 } + $c0, { 11000000 } + $c0, { 11000000 } + $c0, { 11000000 } + $c0, { 11000000 } + $00, { 00000000 } + + (* 227 $e3 'ã' *) + $00, { 00000000 } + $00, { 00000000 } + $fe, { 11111110 } + $6c, { 01101100 } + $6c, { 01101100 } + $6c, { 01101100 } + $6c, { 01101100 } + $00, { 00000000 } + + (* 228 $e4 'ä' *) + $fe, { 11111110 } + $c6, { 11000110 } + $60, { 01100000 } + $30, { 00110000 } + $60, { 01100000 } + $c6, { 11000110 } + $fe, { 11111110 } + $00, { 00000000 } + + (* 229 $e5 'å' *) + $00, { 00000000 } + $00, { 00000000 } + $7e, { 01111110 } + $d8, { 11011000 } + $d8, { 11011000 } + $d8, { 11011000 } + $70, { 01110000 } + $00, { 00000000 } + + (* 230 $e6 'æ' *) + $00, { 00000000 } + $00, { 00000000 } + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $66, { 01100110 } + $7c, { 01111100 } + $c0, { 11000000 } + + (* 231 $e7 'ç' *) + $00, { 00000000 } + $76, { 01110110 } + $dc, { 11011100 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + + (* 232 $e8 'è' *) + $7e, { 01111110 } + $18, { 00011000 } + $3c, { 00111100 } + $66, { 01100110 } + $66, { 01100110 } + $3c, { 00111100 } + $18, { 00011000 } + $7e, { 01111110 } + + (* 233 $e9 'é' *) + $38, { 00111000 } + $6c, { 01101100 } + $c6, { 11000110 } + $fe, { 11111110 } + $c6, { 11000110 } + $6c, { 01101100 } + $38, { 00111000 } + $00, { 00000000 } + + (* 234 $ea 'ê' *) + $38, { 00111000 } + $6c, { 01101100 } + $c6, { 11000110 } + $c6, { 11000110 } + $6c, { 01101100 } + $6c, { 01101100 } + $ee, { 11101110 } + $00, { 00000000 } + + (* 235 $eb 'ë' *) + $0e, { 00001110 } + $18, { 00011000 } + $0c, { 00001100 } + $3e, { 00111110 } + $66, { 01100110 } + $66, { 01100110 } + $3c, { 00111100 } + $00, { 00000000 } + + (* 236 $ec 'ì' *) + $00, { 00000000 } + $00, { 00000000 } + $7e, { 01111110 } + $db, { 11011011 } + $db, { 11011011 } + $7e, { 01111110 } + $00, { 00000000 } + $00, { 00000000 } + + (* 237 $ed 'í' *) + $06, { 00000110 } + $0c, { 00001100 } + $7e, { 01111110 } + $db, { 11011011 } + $db, { 11011011 } + $7e, { 01111110 } + $60, { 01100000 } + $c0, { 11000000 } + + (* 238 $ee 'î' *) + $1e, { 00011110 } + $30, { 00110000 } + $60, { 01100000 } + $7e, { 01111110 } + $60, { 01100000 } + $30, { 00110000 } + $1e, { 00011110 } + $00, { 00000000 } + + (* 239 $ef 'ï' *) + $00, { 00000000 } + $7c, { 01111100 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $c6, { 11000110 } + $00, { 00000000 } + + (* 240 $f0 'ð' *) + $00, { 00000000 } + $fe, { 11111110 } + $00, { 00000000 } + $fe, { 11111110 } + $00, { 00000000 } + $fe, { 11111110 } + $00, { 00000000 } + $00, { 00000000 } + + (* 241 $f1 'ñ' *) + $18, { 00011000 } + $18, { 00011000 } + $7e, { 01111110 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + $7e, { 01111110 } + $00, { 00000000 } + + (* 242 $f2 'ò' *) + $30, { 00110000 } + $18, { 00011000 } + $0c, { 00001100 } + $18, { 00011000 } + $30, { 00110000 } + $00, { 00000000 } + $7e, { 01111110 } + $00, { 00000000 } + + (* 243 $f3 'ó' *) + $0c, { 00001100 } + $18, { 00011000 } + $30, { 00110000 } + $18, { 00011000 } + $0c, { 00001100 } + $00, { 00000000 } + $7e, { 01111110 } + $00, { 00000000 } + + (* 244 $f4 'ô' *) + $0e, { 00001110 } + $1b, { 00011011 } + $1b, { 00011011 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + + (* 245 $f5 'õ' *) + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $18, { 00011000 } + $d8, { 11011000 } + $d8, { 11011000 } + $70, { 01110000 } + + (* 246 $f6 'ö' *) + $00, { 00000000 } + $18, { 00011000 } + $00, { 00000000 } + $7e, { 01111110 } + $00, { 00000000 } + $18, { 00011000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 247 $f7 '÷' *) + $00, { 00000000 } + $76, { 01110110 } + $dc, { 11011100 } + $00, { 00000000 } + $76, { 01110110 } + $dc, { 11011100 } + $00, { 00000000 } + $00, { 00000000 } + + (* 248 $f8 'ø' *) + $38, { 00111000 } + $6c, { 01101100 } + $6c, { 01101100 } + $38, { 00111000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 249 $f9 'ù' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $18, { 00011000 } + $18, { 00011000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 250 $fa 'ú' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $18, { 00011000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 251 $fb 'û' *) + $0f, { 00001111 } + $0c, { 00001100 } + $0c, { 00001100 } + $0c, { 00001100 } + $ec, { 11101100 } + $6c, { 01101100 } + $3c, { 00111100 } + $1c, { 00011100 } + + (* 252 $fc 'ü' *) + $6c, { 01101100 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $36, { 00110110 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 253 $fd 'ý' *) + $78, { 01111000 } + $0c, { 00001100 } + $18, { 00011000 } + $30, { 00110000 } + $7c, { 01111100 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + + (* 254 $fe 'þ' *) + $00, { 00000000 } + $00, { 00000000 } + $3c, { 00111100 } + $3c, { 00111100 } + $3c, { 00111100 } + $3c, { 00111100 } + $00, { 00000000 } + $00, { 00000000 } + + (* 255 $ff ' ' *) + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00, { 00000000 } + $00 { 00000000 } + );