-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUNICODE.PAS
executable file
·108 lines (88 loc) · 4.97 KB
/
UNICODE.PAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
Unit Unicode;
{$A-}
INTERFACE
const page00 : array[0..255] of char = (
#$00, #$01, #$02, #$03, #$04, #$05, #$06, #$07, { #00-#07 }
#$08, #$09, #$0A, #$0B, #$0C, #$0D, #$0E, #$0F, { #08-#0F }
#$10, #$11, #$12, #$13, #$14, #$15, #$16, #$17, { #10-#17 }
#$18, #$19, #$1A, #$1B, #$1C, #$1D, #$1E, #$1F, { #18-#1F }
#$20, #$21, #$22, #$23, #$24, #$25, #$26, #$27, { #20-#27 }
#$28, #$29, #$2A, #$2B, #$2C, #$2D, #$2E, #$2F, { #28-#2F }
#$30, #$31, #$32, #$33, #$34, #$35, #$36, #$37, { #30-#37 }
#$38, #$39, #$3A, #$3B, #$3C, #$3D, #$3E, #$3F, { #38-#3F }
#$40, #$41, #$42, #$43, #$44, #$45, #$46, #$47, { #40-#47 }
#$48, #$49, #$4A, #$4B, #$4C, #$4D, #$4E, #$4F, { #48-#4F }
#$50, #$51, #$52, #$53, #$54, #$55, #$56, #$57, { #50-#57 }
#$58, #$59, #$5A, #$5B, #$5C, #$5D, #$5E, #$5F, { #58-#5F }
#$60, #$61, #$62, #$63, #$64, #$65, #$66, #$67, { #60-#67 }
#$68, #$69, #$6A, #$6B, #$6C, #$6D, #$6E, #$6F, { #68-#6F }
#$70, #$71, #$72, #$73, #$74, #$75, #$76, #$77, { #70-#77 }
#$78, #$79, #$7A, #$7B, #$7C, #$7D, #$7E, #$7F, { #78-#7F }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #80-#87 }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #88-#8F }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #90-#97 }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$92, { #98-#9F }
#$FF, #$AD, #$BD, #$9C, #$CF, #$BE, #$DD, #$F5, { #A0-#A7 }
#$F9, #$B8, #$A6, #$AE, #$AA, #$F0, #$A9, #$EE, { #A8-#AF }
#$F8, #$F1, #$FD, #$FC, #$EF, #$E6, #$F4, #$FA, { #B0-#B7 }
#$F7, #$FB, #$F8, #$AF, #$AC, #$AB, #$F3, #$A8, { #B8-#BF }
#$B7, #$B5, #$B6, #$C7, #$8E, #$8F, #$92, #$80, { #C0-#C7 }
#$D4, #$90, #$D2, #$D3, #$DE, #$D6, #$D7, #$D8, { #C8-#CF }
#$D1, #$A5, #$E3, #$E0, #$E2, #$E5, #$99, #$9E, { #D0-#D7 }
#$9D, #$EB, #$E9, #$EA, #$9A, #$ED, #$E8, #$E1, { #D8-#DF }
#$85, #$A0, #$83, #$C6, #$84, #$86, #$91, #$87, { #E0-#E7 }
#$8A, #$82, #$88, #$89, #$8D, #$A1, #$8C, #$8B, { #E8-#EF }
#$D0, #$A4, #$95, #$A2, #$93, #$E4, #$94, #$F6, { #F0-#F7 }
#$9B, #$97, #$A3, #$96, #$81, #$EC, #$E7, #$98 { #F8-#FF }
);
const page25 : array[0..255] of char = (
#$C4, #$00, #$B3, #$00, #$00, #$00, #$00, #$00, { #00-#07 }
#$00, #$00, #$00, #$00, #$DA, #$00, #$00, #$00, { #08-#0F }
#$BF, #$00, #$00, #$00, #$C0, #$00, #$00, #$00, { #10-#17 }
#$D9, #$00, #$00, #$00, #$C3, #$00, #$00, #$00, { #18-#1F }
#$00, #$00, #$00, #$00, #$B4, #$00, #$00, #$00, { #20-#27 }
#$00, #$00, #$00, #$00, #$C2, #$00, #$00, #$00, { #28-#2F }
#$00, #$00, #$00, #$00, #$C1, #$00, #$00, #$00, { #30-#37 }
#$00, #$00, #$00, #$00, #$C5, #$00, #$00, #$00, { #38-#3F }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #40-#47 }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #48-#4F }
#$CD, #$BA, #$00, #$00, #$C9, #$00, #$00, #$BB, { #50-#57 }
#$00, #$00, #$C8, #$00, #$00, #$BC, #$00, #$00, { #58-#5F }
#$CC, #$00, #$00, #$B9, #$00, #$00, #$CB, #$00, { #60-#67 }
#$00, #$CA, #$00, #$00, #$CE, #$00, #$00, #$00, { #68-#6F }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #70-#77 }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #78-#7F }
#$DF, #$00, #$00, #$00, #$DC, #$00, #$00, #$00, { #80-#87 }
#$DB, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #88-#8F }
#$00, #$B0, #$B1, #$B2, #$00, #$00, #$00, #$00, { #90-#97 }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #98-#9F }
#$FE, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #A0-#A7 }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #A8-#AF }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #B0-#B7 }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #B8-#BF }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #C0-#C7 }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #C8-#CF }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #D0-#D7 }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #D8-#DF }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #E0-#E7 }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #E8-#EF }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00, { #F0-#F7 }
#$00, #$00, #$00, #$00, #$00, #$00, #$00, #$00 { #F8-#FF }
);
function Uni2char(x : word) : char;
IMPLEMENTATION
{ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ}
function Uni2char;
const ur : array[$0410..$0450] of char = '€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬®¯àáâãäåæçèéêëìíîï';
begin
if hi(x)=$00 then uni2char := page00[lo(x)] else
if hi(x)=$25 then uni2char := page25[lo(x)] else
begin
if (x>=$0410) and (x<=$0450) then Uni2char:=ur[x] else
if (x=$0401) then Uni2char:=#240 else
if (x=$0451) then Uni2char:='ñ'
else Uni2char:=chr(lo(x));
end;
end;
END.
... and Justice 4 all. (c) MetallicA