Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
646 lines (629 sloc) 24.2 KB
unit MBF.Displays.UC1610;
{
This file is part of Pascal Microcontroller Board Framework (MBF)
Copyright (c) 2015 - Michael Ring
based on Pascal eXtended Library (PXL)
Copyright (c) 2000 - 2015 Yuriy Kotsarenko
This program is free software: you can redistribute it and/or modify it under the terms of the FPC modified GNU
Library General Public License for more
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the FPC modified GNU Library General Public
License for more details.
}
{$INCLUDE MBF.Config.inc }
interface
uses
MBF.Displays.CustomDisplay,
MBF.Types;
type
TFont16x24Record = record
CharName : Char;
Data : array[0..95] of byte;
end;
const
Font16x24: array[0..16] of TFont16x24Record =
(
(
CharName:'0';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%10101111,%00000001,%10010000,
%11111110,%11111111,%11111111,%00000001,
%00000000,%00000000,%11100000,%11111111,
%00111111,%01000000,%10101010,%01101010,
%00000000,%11111111,%00001111,%11111101,
%11111111,%11111111,%00011111,%11111100,
%01001011,%11111111,%11111111,%11111111,
%01111111,%11111000,%11000111,%11111111,
%11111111,%11111111,%11111111,%11110100,
%11000011,%11111111,%11111111,%11111111,
%11111111,%11110000,%11000111,%11111111,
%11111111,%11111111,%11111111,%11110100,
%01001011,%11111111,%11111111,%11111111,
%01111111,%11111000,%00001111,%11111101,
%11111111,%11111111,%00011111,%11111100,
%00111111,%01000000,%10101010,%01101010,
%00000000,%11111111,%11111111,%00000010,
%00000000,%00000000,%11010000,%11111111,
%11111111,%10111111,%00000010,%10010000,
%11111110,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'1';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111011,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11100001,%11111111,%11111111,
%11111111,%11111111,%10111111,%11110100,
%11111111,%11111111,%11111111,%11111111,
%00101111,%11111100,%11111111,%11111111,
%11111111,%11111111,%00001111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%00000111,%00000000,%00000000,%00000000,
%00000000,%11110000,%00000011,%00000000,
%00000000,%00000000,%00000000,%11110000,
%10101011,%10101010,%10101010,%10101010,
%10101010,%11111010,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'2';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%10111111,%11111111,%11111111,%11111111,
%10111111,%11110000,%00101111,%11111101,
%11111111,%11111111,%00011111,%11110000,
%00001111,%11111111,%11111111,%11111111,
%00000111,%11110000,%01001011,%11111111,
%11111111,%11111111,%10010001,%11110000,
%11000111,%11111111,%11111111,%01111111,
%11110100,%11110000,%11000011,%11111111,
%11111111,%00011111,%11111101,%11110000,
%11000011,%11111111,%11111111,%01000011,
%11111111,%11110000,%10000111,%11111111,
%10111111,%11010000,%11111111,%11110000,
%01001011,%11111111,%00011111,%11111000,
%11111111,%11110000,%00001111,%10100100,
%00000001,%11111110,%11111111,%11110000,
%00111111,%00000000,%11010000,%11111111,
%11111111,%11110000,%11111111,%01000110,
%11111110,%11111111,%11111111,%11110000,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11110000,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'3';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%10111111,%11111111,%11111111,%11111111,
%00111111,%11111100,%00011111,%11111110,
%11111111,%11111111,%01111111,%11111100,
%00001111,%11111111,%11111111,%11111111,
%10111111,%11111000,%10001011,%11111111,
%00001111,%11111111,%11111111,%11110100,
%11000111,%11111111,%00001111,%11111111,
%11111111,%11110000,%11000011,%11111111,
%00001111,%11111111,%11111111,%11110000,
%11000011,%11111111,%00001111,%11111111,
%11111111,%11110000,%11000111,%11111111,
%00011011,%11111110,%11111111,%11110100,
%01001011,%11111111,%01100011,%11111101,
%10111111,%11111000,%00001111,%01101000,
%10110000,%11111000,%00101111,%11111100,
%00101111,%00000000,%11111000,%10010000,
%00000110,%11111110,%11111111,%01000001,
%11111111,%00000010,%01000000,%11111111,
%11111111,%11111111,%11111111,%00011111,
%11100100,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'4';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%00101111,%11111100,%11111111,
%11111111,%11111111,%11111111,%00000111,
%11111100,%11111111,%11111111,%11111111,
%10111111,%00010000,%11111100,%11111111,
%11111111,%11111111,%00011111,%00111000,
%11111100,%11111111,%11111111,%11111111,
%01000010,%00111111,%11111100,%11111111,
%11111111,%01111111,%11100000,%00111111,
%11111100,%11111111,%11111111,%00001011,
%11111101,%00111111,%11111100,%11111111,
%11111111,%10000001,%11111111,%00111111,
%11111100,%11111111,%00101111,%11111000,
%11111111,%00111111,%11111100,%11111111,
%01000111,%10101010,%10101010,%00101010,
%10101000,%11111010,%00000011,%00000000,
%00000000,%00000000,%00000000,%11110000,
%00000011,%00000000,%00000000,%00000000,
%00000000,%11110000,%11111111,%11111111,
%11111111,%00111111,%11111100,%11111111,
%11111111,%11111111,%11111111,%00111111,
%11111100,%11111111,%11111111,%11111111,
%11111111,%00111111,%11111100,%11111111
)
),
(
CharName:'5';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%10111111,%10101010,%11010110,%11111111,
%00111111,%11111100,%00000011,%00000000,
%10000000,%11111111,%01111111,%11111000,
%00000011,%10101001,%11000110,%11111111,
%10111111,%11111000,%11000011,%11111111,
%11000111,%11111111,%11111111,%11110100,
%11000011,%11111111,%11000011,%11111111,
%11111111,%11110000,%11000011,%11111111,
%11000011,%11111111,%11111111,%11110000,
%11000011,%11111111,%11000011,%11111111,
%11111111,%11110000,%11000011,%11111111,
%10000111,%11111111,%11111111,%11111000,
%11000011,%11111111,%01001011,%11111111,
%01111111,%11111000,%11000011,%11111111,
%00001111,%11111110,%00101111,%11111100,
%11000011,%11111111,%00101111,%10100100,
%00000110,%11111110,%11111111,%11111111,
%01111111,%00000000,%10000000,%11111111,
%11111111,%11111111,%11111111,%00000110,
%11111001,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'6';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%00011010,%10000000,
%11111110,%11111111,%11111111,%00001011,
%00000000,%00000000,%11010000,%11111111,
%11111111,%00000000,%01101000,%10100100,
%00000001,%11111111,%00111111,%11100100,
%00101111,%11111111,%00011111,%11111100,
%00011111,%11111101,%10001111,%11111111,
%01111111,%11111000,%01001111,%11111111,
%11001011,%11111111,%11111111,%11110100,
%10001011,%11111111,%11000011,%11111111,
%11111111,%11110000,%11000011,%11111111,
%11000011,%11111111,%11111111,%11110000,
%11000011,%11111111,%11000111,%11111111,
%10111111,%11110100,%11000011,%11111111,
%01001011,%11111111,%00111111,%11111100,
%11000111,%11111111,%00011111,%10101000,
%00000110,%11111101,%11111111,%11111111,
%01111111,%00000000,%01000000,%11111111,
%11111111,%11111111,%11111111,%00000110,
%11111001,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'7';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11000011,%11111111,%11111111,%11111111,
%11111111,%11111111,%11000011,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11000011,%11111111,%11111111,%11111111,
%11111111,%11111111,%11000011,%11111111,
%11111111,%11111111,%11111111,%11110111,
%11000011,%11111111,%11111111,%11111111,
%01101111,%11110000,%11000011,%11111111,
%11111111,%11111111,%00000001,%11110100,
%11000011,%11111111,%11111111,%00001011,
%10000000,%11111111,%11000011,%11111111,
%01111111,%00000000,%11111101,%11111111,
%11000011,%11111111,%00000010,%11100100,
%11111111,%11111111,%11000011,%00011011,
%10000000,%11111111,%11111111,%11111111,
%01000011,%00000000,%11111001,%11111111,
%11111111,%11111111,%00000011,%11100000,
%11111111,%11111111,%11111111,%11111111,
%01000011,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'8';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%01101111,
%11100100,%11111111,%11111111,%10000001,
%11111111,%00000111,%00000000,%11111111,
%00101111,%00000000,%11111000,%10010001,
%00011010,%11111101,%00001111,%01101001,
%10100000,%11110100,%01111111,%11111000,
%10001011,%11111111,%00000010,%11111101,
%11111111,%11110100,%11000011,%11111111,
%00001011,%11111111,%11111111,%11110000,
%11000011,%11111111,%00001111,%11111111,
%11111111,%11110000,%11000011,%11111111,
%00001011,%11111110,%11111111,%11110000,
%10001011,%11111111,%00010011,%11111100,
%10111111,%11111000,%00001111,%01101001,
%10110000,%11110100,%01111111,%11111100,
%00101111,%00000000,%11111000,%10010001,
%00001010,%11111101,%11111111,%10000001,
%11111111,%00000111,%01000000,%11111111,
%11111111,%11111111,%11111111,%01101111,
%11100100,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'9';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%00011011,%11100100,%11111111,
%11111111,%11111111,%01111111,%00000000,
%01000000,%11111111,%11111111,%11111111,
%00011111,%10100100,%00001010,%11111100,
%11111111,%11110100,%00001111,%11111111,
%01111111,%11111000,%11111111,%11110000,
%10000111,%11111111,%11111111,%11110100,
%11111111,%11110000,%11000011,%11111111,
%11111111,%11110000,%11111111,%11110000,
%11000011,%11111111,%11111111,%11110000,
%11111111,%11111000,%11000111,%11111111,
%11111111,%11111000,%01111111,%11111100,
%01001011,%11111111,%10111111,%11111100,
%00011111,%11111101,%00001111,%11111101,
%00101111,%11111110,%00000110,%11111111,
%00111111,%10010000,%01000110,%00001010,
%11000000,%11111111,%11111111,%00000001,
%00000000,%00000000,%11111000,%11111111,
%11111111,%10101111,%00000000,%11101001,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'+';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%10111111,%11111110,
%11111111,%11111111,%11111111,%11111111,
%00111111,%11111100,%11111111,%11111111,
%11111111,%11111111,%00111111,%11111100,
%11111111,%11111111,%11111111,%11111111,
%00111111,%11111100,%11111111,%11111111,
%11111111,%11111111,%00111111,%11111100,
%11111111,%11111111,%11111111,%11111111,
%00111111,%11111100,%11111111,%11111111,
%11111111,%00001011,%00000000,%00000000,
%11100000,%11111111,%11111111,%00001011,
%00000000,%00000000,%11100000,%11111111,
%11111111,%11111111,%00111111,%11111100,
%11111111,%11111111,%11111111,%11111111,
%00111111,%11111100,%11111111,%11111111,
%11111111,%11111111,%00111111,%11111100,
%11111111,%11111111,%11111111,%11111111,
%00111111,%11111100,%11111111,%11111111,
%11111111,%11111111,%00111111,%11111100,
%11111111,%11111111,%11111111,%11111111,
%10111111,%11111110,%11111111,%11111111
)
),
(
CharName:'-';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%10000011,
%11111111,%11111111,%11111111,%11111111,
%11111111,%10000011,%11111111,%11111111,
%11111111,%11111111,%11111111,%10000011,
%11111111,%11111111,%11111111,%11111111,
%11111111,%10000011,%11111111,%11111111,
%11111111,%11111111,%11111111,%10000011,
%11111111,%11111111,%11111111,%11111111,
%11111111,%10000011,%11111111,%11111111,
%11111111,%11111111,%11111111,%10000011,
%11111111,%11111111,%11111111,%11111111,
%11111111,%10000011,%11111111,%11111111,
%11111111,%11111111,%11111111,%10000011,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'.';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%00011111,%11111101,%11111111,%11111111,
%11111111,%11111111,%00000111,%11110100,
%11111111,%11111111,%11111111,%11111111,
%00000111,%11110100,%11111111,%11111111,
%11111111,%11111111,%00011111,%11111101,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'m';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111111,%00001111,
%00000000,%00000000,%00000000,%11110000,
%11111111,%00001111,%00000000,%00000000,
%00000000,%11110000,%11111111,%11111111,
%10100101,%10101010,%10101010,%11111010,
%11111111,%01111111,%11111110,%11111111,
%11111111,%11111111,%11111111,%00011111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%00001111,%11111110,%11111111,
%11111111,%11111111,%11111111,%00101111,
%00000000,%00000000,%00000000,%11110000,
%11111111,%10111111,%00000000,%00000000,
%00000000,%11110000,%11111111,%11111111,
%10100001,%10101010,%10101010,%11111010,
%11111111,%01111111,%11111110,%11111111,
%11111111,%11111111,%11111111,%00011111,
%11111111,%11111111,%11111111,%11111111,
%11111111,%00001111,%11111111,%11111111,
%11111111,%11111111,%11111111,%00011111,
%10101000,%10101010,%10101010,%11111010,
%11111111,%00111111,%00000000,%00000000,
%00000000,%11110000,%11111111,%11111111,
%00000110,%00000000,%00000000,%11110000
)
),
(
CharName:'X';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11111011,%11111111,
%11111111,%11111111,%11111111,%11111011,
%10000011,%11111111,%11111111,%11111111,
%10111111,%11110000,%00000011,%11111101,
%11111111,%11111111,%00011011,%11110100,
%00101111,%11010000,%11111111,%11111111,
%01000001,%11111110,%11111111,%00000010,
%11111110,%00101111,%11100000,%11111111,
%11111111,%00011111,%11100000,%00000010,
%11111110,%11111111,%11111111,%10111111,
%00000001,%11100000,%11111111,%11111111,
%11111111,%11111111,%00000111,%11110100,
%11111111,%11111111,%11111111,%11111111,
%00000001,%11010000,%11111111,%11111111,
%11111111,%00011111,%11100100,%00000010,
%11111101,%11111111,%11111111,%00000010,
%11111110,%00101111,%11010000,%11111111,
%00101111,%11100000,%11111111,%11111111,
%00000001,%11111110,%00000111,%11111101,
%11111111,%11111111,%00011011,%11110000,
%10000011,%11111111,%11111111,%11111111,
%10111111,%11110000,%11111011,%11111111,
%11111111,%11111111,%11111111,%11111011
)
),
(
CharName:'Y';
Data:
(
%11111011,%11111111,%11111111,%11111111,
%11111111,%11111111,%10000011,%11111111,
%11111111,%11111111,%11111111,%11111111,
%00000011,%11111000,%11111111,%11111111,
%11111111,%11111111,%00101111,%10010000,
%11111111,%11111111,%11111111,%11111111,
%11111111,%00000010,%11111101,%11111111,
%11111111,%11111111,%11111111,%00101111,
%11010000,%11111111,%11111111,%11111111,
%11111111,%11111111,%00000010,%11111101,
%11111111,%11111111,%11111111,%11111111,
%00101111,%00000000,%00000000,%11110000,
%11111111,%11111111,%10111111,%00000000,
%00000000,%11110000,%11111111,%11111111,
%00011011,%10100100,%10101010,%11111010,
%11111111,%11111111,%01000001,%11111110,
%11111111,%11111111,%11111111,%00011111,
%11100000,%11111111,%11111111,%11111111,
%11111111,%00000010,%11111110,%11111111,
%11111111,%11111111,%00101111,%11010000,
%11111111,%11111111,%11111111,%11111111,
%00000011,%11111001,%11111111,%11111111,
%11111111,%11111111,%10000011,%11111111,
%11111111,%11111111,%11111111,%11111111
)
),
(
CharName:'Z';
Data:
(
%11111111,%11111111,%11111111,%11111111,
%11111111,%11111111,%11000011,%11111111,
%11111111,%11111111,%10111111,%11110000,
%11000011,%11111111,%11111111,%11111111,
%00011111,%11110000,%11000011,%11111111,
%11111111,%11111111,%00000010,%11110000,
%11000011,%11111111,%11111111,%10111111,
%11010000,%11110000,%11000011,%11111111,
%11111111,%00011111,%11111000,%11110000,
%11000011,%11111111,%11111111,%01000010,
%11111111,%11110000,%11000011,%11111111,
%01111111,%11100000,%11111111,%11110000,
%11000011,%11111111,%00001111,%11111100,
%11111111,%11110000,%11000011,%11111111,
%01000010,%11111111,%11111111,%11110000,
%11000011,%01111111,%11100000,%11111111,
%11111111,%11110000,%11000011,%00001011,
%11111101,%11111111,%11111111,%11110000,
%11000011,%10000001,%11111111,%11111111,
%11111111,%11110000,%00000011,%11100000,
%11111111,%11111111,%11111111,%11110000,
%00000011,%11111101,%11111111,%11111111,
%11111111,%11110000,%10000011,%11111111,
%11111111,%11111111,%11111111,%11110000
)
)
);
type
TUC1610 = object(TCustomSPIDisplay)
public
const
LCD160x104: TScreenInfo = (Width: 160; Height : 104; Depth: TDisplayBitDepth.TwoBits);
LCD104x160: TScreenInfo = (Width: 104; Height : 160; Depth: TDisplayBitDepth.TwoBits);
procedure InitSequence;
procedure clearScreen(Inverse : boolean=false);
procedure Write(aChar : Char;x,y:longWord);
procedure Write(aString : String;x,y:longWord);
end;
var
UC1610 : TCustomSPIDisplay;
implementation
procedure TUC1610.InitSequence;
begin
Reset;
WriteCommand($E2);
WriteCommand($F1); //Set last COM electrode to 103
WriteCommand($67); //Set last COM electrode to 103
WriteCommand($C0); //Set (colums) and COM (row) normal --> MY=0 MX=0 LC0=0
//WriteCommand($C4); //Set (colums) and COM (row) normal --> MY=0 MX=0 LC0=0
WriteCommand($40); //Set Display Startline to 0 LSB
WriteCommand($50); //Set Display StartLine to 0 MSB
WriteCommand($2B); //Set Panelloading
WriteCommand($EB); //Set Bias
WriteCommand($81); //Set Contrast
WriteCommand($5F); //Set Contrast
WriteCommand($8B); //Set Autoincrement --> AC2=0 AC1=1 (row increment) AC0=1
WriteCommand($AF); //Set Display On
end;
procedure TUC1610.clearScreen(Inverse : boolean = false);
var
i : longWord;
begin
writeCommand($00); //Set Column to 0
writeCommand($10);
writeCommand($60); //Set Memory Block to 0
WriteCommand($f8); //Turn off Window Mode
WriteCommand([$f4,0]);
WriteCommand([$f5,0]);
WriteCommand([$f6,ScreenInfo.Width-1]);
WriteCommand([$f7,((ScreenInfo.Height-1) div 4)]);
WriteCommand($f9);
if inverse then
for i := 1 to (ScreenInfo.Width*ScreenInfo.Height*longWord(ScreenInfo.Depth)) div 8 do
writeData($ff)
else
for i := 1 to (ScreenInfo.Width*ScreenInfo.Height*longWord(ScreenInfo.Depth)) div 8 do
writeData($00);
writeCommand($00);
writeCommand($10);
writeCommand($60);
end;
procedure TUC1610.Write(aChar:Char;x,y:longWord);
var
i : integer;
begin
WriteCommand($f8);
WriteCommand([$f4,(x div 16)*16]);
WriteCommand([$f5,y div 4]);
WriteCommand([$f6,(x div 16)*16+15]);
WriteCommand([$f7,(y div 4)+5]);
WriteCommand($f9);
for i := 0 to Length(Font16x24)-1 do
if Font16x24[i].CharName = aChar then
begin
writeData(Font16x24[i].Data);
break;
end;
end;
procedure TUC1610.Write(aString:String;x,y:longWord);
var
i,j : integer;
begin
for j := 1 to length(aString) do
begin
WriteCommand($f8);
WriteCommand([$f4,(x div 16)*16]);
WriteCommand([$f5,y div 4]);
WriteCommand([$f6,(x div 16)*16+15]);
WriteCommand([$f7,(y div 4)+5]);
WriteCommand($f9);
for i := 0 to Length(Font16x24)-1 do
if Font16x24[i].CharName = aString[j] then
begin
writeData(Font16x24[i].Data);
x := x+16;
break;
end;
end;
end;
end.