src/cpu_tables.pas66.4 KB · ObjectPascal
Raw
   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
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
unit cpu_tables;

interface

Const
 PARITY:array[0..255] of byte=
 (4, 0, 0, 4, 0, 4, 4, 0, 0, 4, 4, 0, 4, 0, 0, 4,
  0, 4, 4, 0, 4, 0, 0, 4, 4, 0, 0, 4, 0, 4, 4, 0,
  0, 4, 4, 0, 4, 0, 0, 4, 4, 0, 0, 4, 0, 4, 4, 0,
  4, 0, 0, 4, 0, 4, 4, 0, 0, 4, 4, 0, 4, 0, 0, 4,
  0, 4, 4, 0, 4, 0, 0, 4, 4, 0, 0, 4, 0, 4, 4, 0,
  4, 0, 0, 4, 0, 4, 4, 0, 0, 4, 4, 0, 4, 0, 0, 4,
  4, 0, 0, 4, 0, 4, 4, 0, 0, 4, 4, 0, 4, 0, 0, 4,
  0, 4, 4, 0, 4, 0, 0, 4, 4, 0, 0, 4, 0, 4, 4, 0,
  0, 4, 4, 0, 4, 0, 0, 4, 4, 0, 0, 4, 0, 4, 4, 0,
  4, 0, 0, 4, 0, 4, 4, 0, 0, 4, 4, 0, 4, 0, 0, 4,
  4, 0, 0, 4, 0, 4, 4, 0, 0, 4, 4, 0, 4, 0, 0, 4,
  0, 4, 4, 0, 4, 0, 0, 4, 4, 0, 0, 4, 0, 4, 4, 0,
  4, 0, 0, 4, 0, 4, 4, 0, 0, 4, 4, 0, 4, 0, 0, 4,
  0, 4, 4, 0, 4, 0, 0, 4, 4, 0, 0, 4, 0, 4, 4, 0,
  0, 4, 4, 0, 4, 0, 0, 4, 4, 0, 0, 4, 0, 4, 4, 0,
  4, 0, 0, 4, 0, 4, 4, 0, 0, 4, 4, 0, 4, 0, 0, 4);

 RRA_F:Array[0..255] of Byte=(
  $00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,
  $01,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,
  $08,$09,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,
  $01,$00,$01,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,
  $08,$09,$08,$09,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,
  $21,$20,$21,$20,$21,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,
  $28,$29,$28,$29,$28,$29,$20,$21,$20,$21,$20,$21,$20,$21,$20,
  $21,$20,$21,$20,$21,$20,$21,$28,$29,$28,$29,$28,$29,$28,$29,
  $28,$29,$28,$29,$28,$29,$28,$29,$00,$01,$00,$01,$00,$01,$00,
  $01,$00,$01,$00,$01,$00,$01,$00,$01,$08,$09,$08,$09,$08,$09,
  $08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$00,$01,$00,$01,$00,
  $01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$08,$09,$08,$09,
  $08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$20,$21,$20,
  $21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$28,$29,
  $28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$20,
  $21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,
  $28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,
  $29);

 RLCR_F:Array[0..255] of Byte=(
  $44,$00,$00,$04,$08,$0C,$0C,$08,$00,$04,$04,$00,$0C,$08,$08,
  $0C,$20,$24,$24,$20,$2C,$28,$28,$2C,$24,$20,$20,$24,$28,$2C,
  $2C,$28,$00,$04,$04,$00,$0C,$08,$08,$0C,$04,$00,$00,$04,$08,
  $0C,$0C,$08,$24,$20,$20,$24,$28,$2C,$2C,$28,$20,$24,$24,$20,
  $2C,$28,$28,$2C,$80,$84,$84,$80,$8C,$88,$88,$8C,$84,$80,$80,
  $84,$88,$8C,$8C,$88,$A4,$A0,$A0,$A4,$A8,$AC,$AC,$A8,$A0,$A4,
  $A4,$A0,$AC,$A8,$A8,$AC,$84,$80,$80,$84,$88,$8C,$8C,$88,$80,
  $84,$84,$80,$8C,$88,$88,$8C,$A0,$A4,$A4,$A0,$AC,$A8,$A8,$AC,
  $A4,$A0,$A0,$A4,$A8,$AC,$AC,$A8,$01,$05,$05,$01,$0D,$09,$09,
  $0D,$05,$01,$01,$05,$09,$0D,$0D,$09,$25,$21,$21,$25,$29,$2D,
  $2D,$29,$21,$25,$25,$21,$2D,$29,$29,$2D,$05,$01,$01,$05,$09,
  $0D,$0D,$09,$01,$05,$05,$01,$0D,$09,$09,$0D,$21,$25,$25,$21,
  $2D,$29,$29,$2D,$25,$21,$21,$25,$29,$2D,$2D,$29,$85,$81,$81,
  $85,$89,$8D,$8D,$89,$81,$85,$85,$81,$8D,$89,$89,$8D,$A1,$A5,
  $A5,$A1,$AD,$A9,$A9,$AD,$A5,$A1,$A1,$A5,$A9,$AD,$AD,$A9,$81,
  $85,$85,$81,$8D,$89,$89,$8D,$85,$81,$81,$85,$89,$8D,$8D,$89,
  $A5,$A1,$A1,$A5,$A9,$AD,$AD,$A9,$A1,$A5,$A5,$A1,$AD,$A9,$A9,
  $AD);

 RLCR_A:Array[0..255] of Byte=(
  $00,$02,$04,$06,$08,$0A,$0C,$0E,$10,$12,$14,$16,$18,$1A,$1C,
  $1E,$20,$22,$24,$26,$28,$2A,$2C,$2E,$30,$32,$34,$36,$38,$3A,
  $3C,$3E,$40,$42,$44,$46,$48,$4A,$4C,$4E,$50,$52,$54,$56,$58,
  $5A,$5C,$5E,$60,$62,$64,$66,$68,$6A,$6C,$6E,$70,$72,$74,$76,
  $78,$7A,$7C,$7E,$80,$82,$84,$86,$88,$8A,$8C,$8E,$90,$92,$94,
  $96,$98,$9A,$9C,$9E,$A0,$A2,$A4,$A6,$A8,$AA,$AC,$AE,$B0,$B2,
  $B4,$B6,$B8,$BA,$BC,$BE,$C0,$C2,$C4,$C6,$C8,$CA,$CC,$CE,$D0,
  $D2,$D4,$D6,$D8,$DA,$DC,$DE,$E0,$E2,$E4,$E6,$E8,$EA,$EC,$EE,
  $F0,$F2,$F4,$F6,$F8,$FA,$FC,$FE,$01,$03,$05,$07,$09,$0B,$0D,
  $0F,$11,$13,$15,$17,$19,$1B,$1D,$1F,$21,$23,$25,$27,$29,$2B,
  $2D,$2F,$31,$33,$35,$37,$39,$3B,$3D,$3F,$41,$43,$45,$47,$49,
  $4B,$4D,$4F,$51,$53,$55,$57,$59,$5B,$5D,$5F,$61,$63,$65,$67,
  $69,$6B,$6D,$6F,$71,$73,$75,$77,$79,$7B,$7D,$7F,$81,$83,$85,
  $87,$89,$8B,$8D,$8F,$91,$93,$95,$97,$99,$9B,$9D,$9F,$A1,$A3,
  $A5,$A7,$A9,$AB,$AD,$AF,$B1,$B3,$B5,$B7,$B9,$BB,$BD,$BF,$C1,
  $C3,$C5,$C7,$C9,$CB,$CD,$CF,$D1,$D3,$D5,$D7,$D9,$DB,$DD,$DF,
  $E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF,$F1,$F3,$F5,$F7,$F9,$FB,$FD,
  $FF);

 SLA_F:Array[0..255] of Byte=(
  $44,$00,$00,$04,$08,$0C,$0C,$08,$00,$04,$04,$00,$0C,$08,$08,
  $0C,$20,$24,$24,$20,$2C,$28,$28,$2C,$24,$20,$20,$24,$28,$2C,
  $2C,$28,$00,$04,$04,$00,$0C,$08,$08,$0C,$04,$00,$00,$04,$08,
  $0C,$0C,$08,$24,$20,$20,$24,$28,$2C,$2C,$28,$20,$24,$24,$20,
  $2C,$28,$28,$2C,$80,$84,$84,$80,$8C,$88,$88,$8C,$84,$80,$80,
  $84,$88,$8C,$8C,$88,$A4,$A0,$A0,$A4,$A8,$AC,$AC,$A8,$A0,$A4,
  $A4,$A0,$AC,$A8,$A8,$AC,$84,$80,$80,$84,$88,$8C,$8C,$88,$80,
  $84,$84,$80,$8C,$88,$88,$8C,$A0,$A4,$A4,$A0,$AC,$A8,$A8,$AC,
  $A4,$A0,$A0,$A4,$A8,$AC,$AC,$A8,$45,$01,$01,$05,$09,$0D,$0D,
  $09,$01,$05,$05,$01,$0D,$09,$09,$0D,$21,$25,$25,$21,$2D,$29,
  $29,$2D,$25,$21,$21,$25,$29,$2D,$2D,$29,$01,$05,$05,$01,$0D,
  $09,$09,$0D,$05,$01,$01,$05,$09,$0D,$0D,$09,$25,$21,$21,$25,
  $29,$2D,$2D,$29,$21,$25,$25,$21,$2D,$29,$29,$2D,$81,$85,$85,
  $81,$8D,$89,$89,$8D,$85,$81,$81,$85,$89,$8D,$8D,$89,$A5,$A1,
  $A1,$A5,$A9,$AD,$AD,$A9,$A1,$A5,$A5,$A1,$AD,$A9,$A9,$AD,$85,
  $81,$81,$85,$89,$8D,$8D,$89,$81,$85,$85,$81,$8D,$89,$89,$8D,
  $A1,$A5,$A5,$A1,$AD,$A9,$A9,$AD,$A5,$A1,$A1,$A5,$A9,$AD,$AD,
  $A9);

 SRA_F:Array[0..255] of Byte=(
  $44,$45,$00,$01,$00,$01,$04,$05,$00,$01,$04,$05,$04,$05,$00,
  $01,$08,$09,$0C,$0D,$0C,$0D,$08,$09,$0C,$0D,$08,$09,$08,$09,
  $0C,$0D,$00,$01,$04,$05,$04,$05,$00,$01,$04,$05,$00,$01,$00,
  $01,$04,$05,$0C,$0D,$08,$09,$08,$09,$0C,$0D,$08,$09,$0C,$0D,
  $0C,$0D,$08,$09,$20,$21,$24,$25,$24,$25,$20,$21,$24,$25,$20,
  $21,$20,$21,$24,$25,$2C,$2D,$28,$29,$28,$29,$2C,$2D,$28,$29,
  $2C,$2D,$2C,$2D,$28,$29,$24,$25,$20,$21,$20,$21,$24,$25,$20,
  $21,$24,$25,$24,$25,$20,$21,$28,$29,$2C,$2D,$2C,$2D,$28,$29,
  $2C,$2D,$28,$29,$28,$29,$2C,$2D,$84,$85,$80,$81,$80,$81,$84,
  $85,$80,$81,$84,$85,$84,$85,$80,$81,$88,$89,$8C,$8D,$8C,$8D,
  $88,$89,$8C,$8D,$88,$89,$88,$89,$8C,$8D,$80,$81,$84,$85,$84,
  $85,$80,$81,$84,$85,$80,$81,$80,$81,$84,$85,$8C,$8D,$88,$89,
  $88,$89,$8C,$8D,$88,$89,$8C,$8D,$8C,$8D,$88,$89,$A0,$A1,$A4,
  $A5,$A4,$A5,$A0,$A1,$A4,$A5,$A0,$A1,$A0,$A1,$A4,$A5,$AC,$AD,
  $A8,$A9,$A8,$A9,$AC,$AD,$A8,$A9,$AC,$AD,$AC,$AD,$A8,$A9,$A4,
  $A5,$A0,$A1,$A0,$A1,$A4,$A5,$A0,$A1,$A4,$A5,$A4,$A5,$A0,$A1,
  $A8,$A9,$AC,$AD,$AC,$AD,$A8,$A9,$AC,$AD,$A8,$A9,$A8,$A9,$AC,
  $AD);

 SRA_A:Array[0..255] of Byte=(
  $00,$00,$01,$01,$02,$02,$03,$03,$04,$04,$05,$05,$06,$06,$07,
  $07,$08,$08,$09,$09,$0A,$0A,$0B,$0B,$0C,$0C,$0D,$0D,$0E,$0E,
  $0F,$0F,$10,$10,$11,$11,$12,$12,$13,$13,$14,$14,$15,$15,$16,
  $16,$17,$17,$18,$18,$19,$19,$1A,$1A,$1B,$1B,$1C,$1C,$1D,$1D,
  $1E,$1E,$1F,$1F,$20,$20,$21,$21,$22,$22,$23,$23,$24,$24,$25,
  $25,$26,$26,$27,$27,$28,$28,$29,$29,$2A,$2A,$2B,$2B,$2C,$2C,
  $2D,$2D,$2E,$2E,$2F,$2F,$30,$30,$31,$31,$32,$32,$33,$33,$34,
  $34,$35,$35,$36,$36,$37,$37,$38,$38,$39,$39,$3A,$3A,$3B,$3B,
  $3C,$3C,$3D,$3D,$3E,$3E,$3F,$3F,$C0,$C0,$C1,$C1,$C2,$C2,$C3,
  $C3,$C4,$C4,$C5,$C5,$C6,$C6,$C7,$C7,$C8,$C8,$C9,$C9,$CA,$CA,
  $CB,$CB,$CC,$CC,$CD,$CD,$CE,$CE,$CF,$CF,$D0,$D0,$D1,$D1,$D2,
  $D2,$D3,$D3,$D4,$D4,$D5,$D5,$D6,$D6,$D7,$D7,$D8,$D8,$D9,$D9,
  $DA,$DA,$DB,$DB,$DC,$DC,$DD,$DD,$DE,$DE,$DF,$DF,$E0,$E0,$E1,
  $E1,$E2,$E2,$E3,$E3,$E4,$E4,$E5,$E5,$E6,$E6,$E7,$E7,$E8,$E8,
  $E9,$E9,$EA,$EA,$EB,$EB,$EC,$EC,$ED,$ED,$EE,$EE,$EF,$EF,$F0,
  $F0,$F1,$F1,$F2,$F2,$F3,$F3,$F4,$F4,$F5,$F5,$F6,$F6,$F7,$F7,
  $F8,$F8,$F9,$F9,$FA,$FA,$FB,$FB,$FC,$FC,$FD,$FD,$FE,$FE,$FF,
  $FF);

 SLL_F:Array[0..255] of Byte=(
  $00,$04,$04,$00,$0C,$08,$08,$0C,$04,$00,$00,$04,$08,$0C,$0C,
  $08,$24,$20,$20,$24,$28,$2C,$2C,$28,$20,$24,$24,$20,$2C,$28,
  $28,$2C,$04,$00,$00,$04,$08,$0C,$0C,$08,$00,$04,$04,$00,$0C,
  $08,$08,$0C,$20,$24,$24,$20,$2C,$28,$28,$2C,$24,$20,$20,$24,
  $28,$2C,$2C,$28,$84,$80,$80,$84,$88,$8C,$8C,$88,$80,$84,$84,
  $80,$8C,$88,$88,$8C,$A0,$A4,$A4,$A0,$AC,$A8,$A8,$AC,$A4,$A0,
  $A0,$A4,$A8,$AC,$AC,$A8,$80,$84,$84,$80,$8C,$88,$88,$8C,$84,
  $80,$80,$84,$88,$8C,$8C,$88,$A4,$A0,$A0,$A4,$A8,$AC,$AC,$A8,
  $A0,$A4,$A4,$A0,$AC,$A8,$A8,$AC,$01,$05,$05,$01,$0D,$09,$09,
  $0D,$05,$01,$01,$05,$09,$0D,$0D,$09,$25,$21,$21,$25,$29,$2D,
  $2D,$29,$21,$25,$25,$21,$2D,$29,$29,$2D,$05,$01,$01,$05,$09,
  $0D,$0D,$09,$01,$05,$05,$01,$0D,$09,$09,$0D,$21,$25,$25,$21,
  $2D,$29,$29,$2D,$25,$21,$21,$25,$29,$2D,$2D,$29,$85,$81,$81,
  $85,$89,$8D,$8D,$89,$81,$85,$85,$81,$8D,$89,$89,$8D,$A1,$A5,
  $A5,$A1,$AD,$A9,$A9,$AD,$A5,$A1,$A1,$A5,$A9,$AD,$AD,$A9,$81,
  $85,$85,$81,$8D,$89,$89,$8D,$85,$81,$81,$85,$89,$8D,$8D,$89,
  $A5,$A1,$A1,$A5,$A9,$AD,$AD,$A9,$A1,$A5,$A5,$A1,$AD,$A9,$A9,
  $AD);

 SLL_A:Array[0..255] of Byte=(
  $01,$03,$05,$07,$09,$0B,$0D,$0F,$11,$13,$15,$17,$19,$1B,$1D,
  $1F,$21,$23,$25,$27,$29,$2B,$2D,$2F,$31,$33,$35,$37,$39,$3B,
  $3D,$3F,$41,$43,$45,$47,$49,$4B,$4D,$4F,$51,$53,$55,$57,$59,
  $5B,$5D,$5F,$61,$63,$65,$67,$69,$6B,$6D,$6F,$71,$73,$75,$77,
  $79,$7B,$7D,$7F,$81,$83,$85,$87,$89,$8B,$8D,$8F,$91,$93,$95,
  $97,$99,$9B,$9D,$9F,$A1,$A3,$A5,$A7,$A9,$AB,$AD,$AF,$B1,$B3,
  $B5,$B7,$B9,$BB,$BD,$BF,$C1,$C3,$C5,$C7,$C9,$CB,$CD,$CF,$D1,
  $D3,$D5,$D7,$D9,$DB,$DD,$DF,$E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF,
  $F1,$F3,$F5,$F7,$F9,$FB,$FD,$FF,$01,$03,$05,$07,$09,$0B,$0D,
  $0F,$11,$13,$15,$17,$19,$1B,$1D,$1F,$21,$23,$25,$27,$29,$2B,
  $2D,$2F,$31,$33,$35,$37,$39,$3B,$3D,$3F,$41,$43,$45,$47,$49,
  $4B,$4D,$4F,$51,$53,$55,$57,$59,$5B,$5D,$5F,$61,$63,$65,$67,
  $69,$6B,$6D,$6F,$71,$73,$75,$77,$79,$7B,$7D,$7F,$81,$83,$85,
  $87,$89,$8B,$8D,$8F,$91,$93,$95,$97,$99,$9B,$9D,$9F,$A1,$A3,
  $A5,$A7,$A9,$AB,$AD,$AF,$B1,$B3,$B5,$B7,$B9,$BB,$BD,$BF,$C1,
  $C3,$C5,$C7,$C9,$CB,$CD,$CF,$D1,$D3,$D5,$D7,$D9,$DB,$DD,$DF,
  $E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF,$F1,$F3,$F5,$F7,$F9,$FB,$FD,
  $FF);

 SRL_F:Array[0..255] of Byte=(
  $44,$45,$00,$01,$00,$01,$04,$05,$00,$01,$04,$05,$04,$05,$00,
  $01,$08,$09,$0C,$0D,$0C,$0D,$08,$09,$0C,$0D,$08,$09,$08,$09,
  $0C,$0D,$00,$01,$04,$05,$04,$05,$00,$01,$04,$05,$00,$01,$00,
  $01,$04,$05,$0C,$0D,$08,$09,$08,$09,$0C,$0D,$08,$09,$0C,$0D,
  $0C,$0D,$08,$09,$20,$21,$24,$25,$24,$25,$20,$21,$24,$25,$20,
  $21,$20,$21,$24,$25,$2C,$2D,$28,$29,$28,$29,$2C,$2D,$28,$29,
  $2C,$2D,$2C,$2D,$28,$29,$24,$25,$20,$21,$20,$21,$24,$25,$20,
  $21,$24,$25,$24,$25,$20,$21,$28,$29,$2C,$2D,$2C,$2D,$28,$29,
  $2C,$2D,$28,$29,$28,$29,$2C,$2D,$00,$01,$04,$05,$04,$05,$00,
  $01,$04,$05,$00,$01,$00,$01,$04,$05,$0C,$0D,$08,$09,$08,$09,
  $0C,$0D,$08,$09,$0C,$0D,$0C,$0D,$08,$09,$04,$05,$00,$01,$00,
  $01,$04,$05,$00,$01,$04,$05,$04,$05,$00,$01,$08,$09,$0C,$0D,
  $0C,$0D,$08,$09,$0C,$0D,$08,$09,$08,$09,$0C,$0D,$24,$25,$20,
  $21,$20,$21,$24,$25,$20,$21,$24,$25,$24,$25,$20,$21,$28,$29,
  $2C,$2D,$2C,$2D,$28,$29,$2C,$2D,$28,$29,$28,$29,$2C,$2D,$20,
  $21,$24,$25,$24,$25,$20,$21,$24,$25,$20,$21,$20,$21,$24,$25,
  $2C,$2D,$28,$29,$28,$29,$2C,$2D,$28,$29,$2C,$2D,$2C,$2D,$28,
  $29);

 SRL_A:Array[0..255] of Byte=(
  $00,$00,$01,$01,$02,$02,$03,$03,$04,$04,$05,$05,$06,$06,$07,
  $07,$08,$08,$09,$09,$0A,$0A,$0B,$0B,$0C,$0C,$0D,$0D,$0E,$0E,
  $0F,$0F,$10,$10,$11,$11,$12,$12,$13,$13,$14,$14,$15,$15,$16,
  $16,$17,$17,$18,$18,$19,$19,$1A,$1A,$1B,$1B,$1C,$1C,$1D,$1D,
  $1E,$1E,$1F,$1F,$20,$20,$21,$21,$22,$22,$23,$23,$24,$24,$25,
  $25,$26,$26,$27,$27,$28,$28,$29,$29,$2A,$2A,$2B,$2B,$2C,$2C,
  $2D,$2D,$2E,$2E,$2F,$2F,$30,$30,$31,$31,$32,$32,$33,$33,$34,
  $34,$35,$35,$36,$36,$37,$37,$38,$38,$39,$39,$3A,$3A,$3B,$3B,
  $3C,$3C,$3D,$3D,$3E,$3E,$3F,$3F,$40,$40,$41,$41,$42,$42,$43,
  $43,$44,$44,$45,$45,$46,$46,$47,$47,$48,$48,$49,$49,$4A,$4A,
  $4B,$4B,$4C,$4C,$4D,$4D,$4E,$4E,$4F,$4F,$50,$50,$51,$51,$52,
  $52,$53,$53,$54,$54,$55,$55,$56,$56,$57,$57,$58,$58,$59,$59,
  $5A,$5A,$5B,$5B,$5C,$5C,$5D,$5D,$5E,$5E,$5F,$5F,$60,$60,$61,
  $61,$62,$62,$63,$63,$64,$64,$65,$65,$66,$66,$67,$67,$68,$68,
  $69,$69,$6A,$6A,$6B,$6B,$6C,$6C,$6D,$6D,$6E,$6E,$6F,$6F,$70,
  $70,$71,$71,$72,$72,$73,$73,$74,$74,$75,$75,$76,$76,$77,$77,
  $78,$78,$79,$79,$7A,$7A,$7B,$7B,$7C,$7C,$7D,$7D,$7E,$7E,$7F,
  $7F);

 SLA_A:Array[0..255] of Byte=(
  $00,$02,$04,$06,$08,$0A,$0C,$0E,$10,$12,$14,$16,$18,$1A,$1C,
  $1E,$20,$22,$24,$26,$28,$2A,$2C,$2E,$30,$32,$34,$36,$38,$3A,
  $3C,$3E,$40,$42,$44,$46,$48,$4A,$4C,$4E,$50,$52,$54,$56,$58,
  $5A,$5C,$5E,$60,$62,$64,$66,$68,$6A,$6C,$6E,$70,$72,$74,$76,
  $78,$7A,$7C,$7E,$80,$82,$84,$86,$88,$8A,$8C,$8E,$90,$92,$94,
  $96,$98,$9A,$9C,$9E,$A0,$A2,$A4,$A6,$A8,$AA,$AC,$AE,$B0,$B2,
  $B4,$B6,$B8,$BA,$BC,$BE,$C0,$C2,$C4,$C6,$C8,$CA,$CC,$CE,$D0,
  $D2,$D4,$D6,$D8,$DA,$DC,$DE,$E0,$E2,$E4,$E6,$E8,$EA,$EC,$EE,
  $F0,$F2,$F4,$F6,$F8,$FA,$FC,$FE,$00,$02,$04,$06,$08,$0A,$0C,
  $0E,$10,$12,$14,$16,$18,$1A,$1C,$1E,$20,$22,$24,$26,$28,$2A,
  $2C,$2E,$30,$32,$34,$36,$38,$3A,$3C,$3E,$40,$42,$44,$46,$48,
  $4A,$4C,$4E,$50,$52,$54,$56,$58,$5A,$5C,$5E,$60,$62,$64,$66,
  $68,$6A,$6C,$6E,$70,$72,$74,$76,$78,$7A,$7C,$7E,$80,$82,$84,
  $86,$88,$8A,$8C,$8E,$90,$92,$94,$96,$98,$9A,$9C,$9E,$A0,$A2,
  $A4,$A6,$A8,$AA,$AC,$AE,$B0,$B2,$B4,$B6,$B8,$BA,$BC,$BE,$C0,
  $C2,$C4,$C6,$C8,$CA,$CC,$CE,$D0,$D2,$D4,$D6,$D8,$DA,$DC,$DE,
  $E0,$E2,$E4,$E6,$E8,$EA,$EC,$EE,$F0,$F2,$F4,$F6,$F8,$FA,$FC,
  $FE);

 RRCR_F:Array[0..255] of Byte=(
  $44,$81,$00,$85,$00,$85,$04,$81,$00,$85,$04,$81,$04,$81,$00,
  $85,$08,$8D,$0C,$89,$0C,$89,$08,$8D,$0C,$89,$08,$8D,$08,$8D,
  $0C,$89,$00,$85,$04,$81,$04,$81,$00,$85,$04,$81,$00,$85,$00,
  $85,$04,$81,$0C,$89,$08,$8D,$08,$8D,$0C,$89,$08,$8D,$0C,$89,
  $0C,$89,$08,$8D,$20,$A5,$24,$A1,$24,$A1,$20,$A5,$24,$A1,$20,
  $A5,$20,$A5,$24,$A1,$2C,$A9,$28,$AD,$28,$AD,$2C,$A9,$28,$AD,
  $2C,$A9,$2C,$A9,$28,$AD,$24,$A1,$20,$A5,$20,$A5,$24,$A1,$20,
  $A5,$24,$A1,$24,$A1,$20,$A5,$28,$AD,$2C,$A9,$2C,$A9,$28,$AD,
  $2C,$A9,$28,$AD,$28,$AD,$2C,$A9,$00,$85,$04,$81,$04,$81,$00,
  $85,$04,$81,$00,$85,$00,$85,$04,$81,$0C,$89,$08,$8D,$08,$8D,
  $0C,$89,$08,$8D,$0C,$89,$0C,$89,$08,$8D,$04,$81,$00,$85,$00,
  $85,$04,$81,$00,$85,$04,$81,$04,$81,$00,$85,$08,$8D,$0C,$89,
  $0C,$89,$08,$8D,$0C,$89,$08,$8D,$08,$8D,$0C,$89,$24,$A1,$20,
  $A5,$20,$A5,$24,$A1,$20,$A5,$24,$A1,$24,$A1,$20,$A5,$28,$AD,
  $2C,$A9,$2C,$A9,$28,$AD,$2C,$A9,$28,$AD,$28,$AD,$2C,$A9,$20,
  $A5,$24,$A1,$24,$A1,$20,$A5,$24,$A1,$20,$A5,$20,$A5,$24,$A1,
  $2C,$A9,$28,$AD,$28,$AD,$2C,$A9,$28,$AD,$2C,$A9,$2C,$A9,$28,
  $AD);

 RRCR_A:Array[0..255] of Byte=(
  $00,$80,$01,$81,$02,$82,$03,$83,$04,$84,$05,$85,$06,$86,$07,
  $87,$08,$88,$09,$89,$0A,$8A,$0B,$8B,$0C,$8C,$0D,$8D,$0E,$8E,
  $0F,$8F,$10,$90,$11,$91,$12,$92,$13,$93,$14,$94,$15,$95,$16,
  $96,$17,$97,$18,$98,$19,$99,$1A,$9A,$1B,$9B,$1C,$9C,$1D,$9D,
  $1E,$9E,$1F,$9F,$20,$A0,$21,$A1,$22,$A2,$23,$A3,$24,$A4,$25,
  $A5,$26,$A6,$27,$A7,$28,$A8,$29,$A9,$2A,$AA,$2B,$AB,$2C,$AC,
  $2D,$AD,$2E,$AE,$2F,$AF,$30,$B0,$31,$B1,$32,$B2,$33,$B3,$34,
  $B4,$35,$B5,$36,$B6,$37,$B7,$38,$B8,$39,$B9,$3A,$BA,$3B,$BB,
  $3C,$BC,$3D,$BD,$3E,$BE,$3F,$BF,$40,$C0,$41,$C1,$42,$C2,$43,
  $C3,$44,$C4,$45,$C5,$46,$C6,$47,$C7,$48,$C8,$49,$C9,$4A,$CA,
  $4B,$CB,$4C,$CC,$4D,$CD,$4E,$CE,$4F,$CF,$50,$D0,$51,$D1,$52,
  $D2,$53,$D3,$54,$D4,$55,$D5,$56,$D6,$57,$D7,$58,$D8,$59,$D9,
  $5A,$DA,$5B,$DB,$5C,$DC,$5D,$DD,$5E,$DE,$5F,$DF,$60,$E0,$61,
  $E1,$62,$E2,$63,$E3,$64,$E4,$65,$E5,$66,$E6,$67,$E7,$68,$E8,
  $69,$E9,$6A,$EA,$6B,$EB,$6C,$EC,$6D,$ED,$6E,$EE,$6F,$EF,$70,
  $F0,$71,$F1,$72,$F2,$73,$F3,$74,$F4,$75,$F5,$76,$F6,$77,$F7,
  $78,$F8,$79,$F9,$7A,$FA,$7B,$FB,$7C,$FC,$7D,$FD,$7E,$FE,$7F,
  $FF);

 INC_F:Array[0..255] of Byte=(
  $00,$00,$00,$00,$00,$00,$00,$08,$08,$08,$08,$08,$08,$08,$08,
  $10,$00,$00,$00,$00,$00,$00,$00,$08,$08,$08,$08,$08,$08,$08,
  $08,$30,$20,$20,$20,$20,$20,$20,$20,$28,$28,$28,$28,$28,$28,
  $28,$28,$30,$20,$20,$20,$20,$20,$20,$20,$28,$28,$28,$28,$28,
  $28,$28,$28,$10,$00,$00,$00,$00,$00,$00,$00,$08,$08,$08,$08,
  $08,$08,$08,$08,$10,$00,$00,$00,$00,$00,$00,$00,$08,$08,$08,
  $08,$08,$08,$08,$08,$30,$20,$20,$20,$20,$20,$20,$20,$28,$28,
  $28,$28,$28,$28,$28,$28,$30,$20,$20,$20,$20,$20,$20,$20,$28,
  $28,$28,$28,$28,$28,$28,$28,$94,$80,$80,$80,$80,$80,$80,$80,
  $88,$88,$88,$88,$88,$88,$88,$88,$90,$80,$80,$80,$80,$80,$80,
  $80,$88,$88,$88,$88,$88,$88,$88,$88,$B0,$A0,$A0,$A0,$A0,$A0,
  $A0,$A0,$A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8,$B0,$A0,$A0,$A0,$A0,
  $A0,$A0,$A0,$A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8,$90,$80,$80,$80,
  $80,$80,$80,$80,$88,$88,$88,$88,$88,$88,$88,$88,$90,$80,$80,
  $80,$80,$80,$80,$80,$88,$88,$88,$88,$88,$88,$88,$88,$B0,$A0,
  $A0,$A0,$A0,$A0,$A0,$A0,$A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8,$B0,
  $A0,$A0,$A0,$A0,$A0,$A0,$A0,$A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8,
  $50);

 DEC_F:Array[0..255] of Byte=(
  $BA,$42,$02,$02,$02,$02,$02,$02,$02,$0A,$0A,$0A,$0A,$0A,$0A,
  $0A,$1A,$02,$02,$02,$02,$02,$02,$02,$02,$0A,$0A,$0A,$0A,$0A,
  $0A,$0A,$1A,$22,$22,$22,$22,$22,$22,$22,$22,$2A,$2A,$2A,$2A,
  $2A,$2A,$2A,$3A,$22,$22,$22,$22,$22,$22,$22,$22,$2A,$2A,$2A,
  $2A,$2A,$2A,$2A,$3A,$02,$02,$02,$02,$02,$02,$02,$02,$0A,$0A,
  $0A,$0A,$0A,$0A,$0A,$1A,$02,$02,$02,$02,$02,$02,$02,$02,$0A,
  $0A,$0A,$0A,$0A,$0A,$0A,$1A,$22,$22,$22,$22,$22,$22,$22,$22,
  $2A,$2A,$2A,$2A,$2A,$2A,$2A,$3A,$22,$22,$22,$22,$22,$22,$22,
  $22,$2A,$2A,$2A,$2A,$2A,$2A,$2A,$3E,$82,$82,$82,$82,$82,$82,
  $82,$82,$8A,$8A,$8A,$8A,$8A,$8A,$8A,$9A,$82,$82,$82,$82,$82,
  $82,$82,$82,$8A,$8A,$8A,$8A,$8A,$8A,$8A,$9A,$A2,$A2,$A2,$A2,
  $A2,$A2,$A2,$A2,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$BA,$A2,$A2,$A2,
  $A2,$A2,$A2,$A2,$A2,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$BA,$82,$82,
  $82,$82,$82,$82,$82,$82,$8A,$8A,$8A,$8A,$8A,$8A,$8A,$9A,$82,
  $82,$82,$82,$82,$82,$82,$82,$8A,$8A,$8A,$8A,$8A,$8A,$8A,$9A,
  $A2,$A2,$A2,$A2,$A2,$A2,$A2,$A2,$AA,$AA,$AA,$AA,$AA,$AA,$AA,
  $BA,$A2,$A2,$A2,$A2,$A2,$A2,$A2,$A2,$AA,$AA,$AA,$AA,$AA,$AA,
  $AA);

 BIT_F0:Array[0..255] of Byte=(
  $54,$10,$54,$10,$54,$10,$54,$10,$5C,$18,$5C,$18,$5C,$18,$5C,
  $18,$54,$10,$54,$10,$54,$10,$54,$10,$5C,$18,$5C,$18,$5C,$18,
  $5C,$18,$74,$30,$74,$30,$74,$30,$74,$30,$7C,$38,$7C,$38,$7C,
  $38,$7C,$38,$74,$30,$74,$30,$74,$30,$74,$30,$7C,$38,$7C,$38,
  $7C,$38,$7C,$38,$54,$10,$54,$10,$54,$10,$54,$10,$5C,$18,$5C,
  $18,$5C,$18,$5C,$18,$54,$10,$54,$10,$54,$10,$54,$10,$5C,$18,
  $5C,$18,$5C,$18,$5C,$18,$74,$30,$74,$30,$74,$30,$74,$30,$7C,
  $38,$7C,$38,$7C,$38,$7C,$38,$74,$30,$74,$30,$74,$30,$74,$30,
  $7C,$38,$7C,$38,$7C,$38,$7C,$38,$54,$10,$54,$10,$54,$10,$54,
  $10,$5C,$18,$5C,$18,$5C,$18,$5C,$18,$54,$10,$54,$10,$54,$10,
  $54,$10,$5C,$18,$5C,$18,$5C,$18,$5C,$18,$74,$30,$74,$30,$74,
  $30,$74,$30,$7C,$38,$7C,$38,$7C,$38,$7C,$38,$74,$30,$74,$30,
  $74,$30,$74,$30,$7C,$38,$7C,$38,$7C,$38,$7C,$38,$54,$10,$54,
  $10,$54,$10,$54,$10,$5C,$18,$5C,$18,$5C,$18,$5C,$18,$54,$10,
  $54,$10,$54,$10,$54,$10,$5C,$18,$5C,$18,$5C,$18,$5C,$18,$74,
  $30,$74,$30,$74,$30,$74,$30,$7C,$38,$7C,$38,$7C,$38,$7C,$38,
  $74,$30,$74,$30,$74,$30,$74,$30,$7C,$38,$7C,$38,$7C,$38,$7C,
  $38);

 BIT_F1:Array[0..255] of Byte=(
  $54,$54,$10,$10,$54,$54,$10,$10,$5C,$5C,$18,$18,$5C,$5C,$18,
  $18,$54,$54,$10,$10,$54,$54,$10,$10,$5C,$5C,$18,$18,$5C,$5C,
  $18,$18,$74,$74,$30,$30,$74,$74,$30,$30,$7C,$7C,$38,$38,$7C,
  $7C,$38,$38,$74,$74,$30,$30,$74,$74,$30,$30,$7C,$7C,$38,$38,
  $7C,$7C,$38,$38,$54,$54,$10,$10,$54,$54,$10,$10,$5C,$5C,$18,
  $18,$5C,$5C,$18,$18,$54,$54,$10,$10,$54,$54,$10,$10,$5C,$5C,
  $18,$18,$5C,$5C,$18,$18,$74,$74,$30,$30,$74,$74,$30,$30,$7C,
  $7C,$38,$38,$7C,$7C,$38,$38,$74,$74,$30,$30,$74,$74,$30,$30,
  $7C,$7C,$38,$38,$7C,$7C,$38,$38,$54,$54,$10,$10,$54,$54,$10,
  $10,$5C,$5C,$18,$18,$5C,$5C,$18,$18,$54,$54,$10,$10,$54,$54,
  $10,$10,$5C,$5C,$18,$18,$5C,$5C,$18,$18,$74,$74,$30,$30,$74,
  $74,$30,$30,$7C,$7C,$38,$38,$7C,$7C,$38,$38,$74,$74,$30,$30,
  $74,$74,$30,$30,$7C,$7C,$38,$38,$7C,$7C,$38,$38,$54,$54,$10,
  $10,$54,$54,$10,$10,$5C,$5C,$18,$18,$5C,$5C,$18,$18,$54,$54,
  $10,$10,$54,$54,$10,$10,$5C,$5C,$18,$18,$5C,$5C,$18,$18,$74,
  $74,$30,$30,$74,$74,$30,$30,$7C,$7C,$38,$38,$7C,$7C,$38,$38,
  $74,$74,$30,$30,$74,$74,$30,$30,$7C,$7C,$38,$38,$7C,$7C,$38,
  $38);

 BIT_F2:Array[0..255] of Byte=(
  $54,$54,$54,$54,$10,$10,$10,$10,$5C,$5C,$5C,$5C,$18,$18,$18,
  $18,$54,$54,$54,$54,$10,$10,$10,$10,$5C,$5C,$5C,$5C,$18,$18,
  $18,$18,$74,$74,$74,$74,$30,$30,$30,$30,$7C,$7C,$7C,$7C,$38,
  $38,$38,$38,$74,$74,$74,$74,$30,$30,$30,$30,$7C,$7C,$7C,$7C,
  $38,$38,$38,$38,$54,$54,$54,$54,$10,$10,$10,$10,$5C,$5C,$5C,
  $5C,$18,$18,$18,$18,$54,$54,$54,$54,$10,$10,$10,$10,$5C,$5C,
  $5C,$5C,$18,$18,$18,$18,$74,$74,$74,$74,$30,$30,$30,$30,$7C,
  $7C,$7C,$7C,$38,$38,$38,$38,$74,$74,$74,$74,$30,$30,$30,$30,
  $7C,$7C,$7C,$7C,$38,$38,$38,$38,$54,$54,$54,$54,$10,$10,$10,
  $10,$5C,$5C,$5C,$5C,$18,$18,$18,$18,$54,$54,$54,$54,$10,$10,
  $10,$10,$5C,$5C,$5C,$5C,$18,$18,$18,$18,$74,$74,$74,$74,$30,
  $30,$30,$30,$7C,$7C,$7C,$7C,$38,$38,$38,$38,$74,$74,$74,$74,
  $30,$30,$30,$30,$7C,$7C,$7C,$7C,$38,$38,$38,$38,$54,$54,$54,
  $54,$10,$10,$10,$10,$5C,$5C,$5C,$5C,$18,$18,$18,$18,$54,$54,
  $54,$54,$10,$10,$10,$10,$5C,$5C,$5C,$5C,$18,$18,$18,$18,$74,
  $74,$74,$74,$30,$30,$30,$30,$7C,$7C,$7C,$7C,$38,$38,$38,$38,
  $74,$74,$74,$74,$30,$30,$30,$30,$7C,$7C,$7C,$7C,$38,$38,$38,
  $38);

 BIT_F3:Array[0..255] of Byte=(
  $54,$54,$54,$54,$54,$54,$54,$54,$18,$18,$18,$18,$18,$18,$18,
  $18,$54,$54,$54,$54,$54,$54,$54,$54,$18,$18,$18,$18,$18,$18,
  $18,$18,$74,$74,$74,$74,$74,$74,$74,$74,$38,$38,$38,$38,$38,
  $38,$38,$38,$74,$74,$74,$74,$74,$74,$74,$74,$38,$38,$38,$38,
  $38,$38,$38,$38,$54,$54,$54,$54,$54,$54,$54,$54,$18,$18,$18,
  $18,$18,$18,$18,$18,$54,$54,$54,$54,$54,$54,$54,$54,$18,$18,
  $18,$18,$18,$18,$18,$18,$74,$74,$74,$74,$74,$74,$74,$74,$38,
  $38,$38,$38,$38,$38,$38,$38,$74,$74,$74,$74,$74,$74,$74,$74,
  $38,$38,$38,$38,$38,$38,$38,$38,$54,$54,$54,$54,$54,$54,$54,
  $54,$18,$18,$18,$18,$18,$18,$18,$18,$54,$54,$54,$54,$54,$54,
  $54,$54,$18,$18,$18,$18,$18,$18,$18,$18,$74,$74,$74,$74,$74,
  $74,$74,$74,$38,$38,$38,$38,$38,$38,$38,$38,$74,$74,$74,$74,
  $74,$74,$74,$74,$38,$38,$38,$38,$38,$38,$38,$38,$54,$54,$54,
  $54,$54,$54,$54,$54,$18,$18,$18,$18,$18,$18,$18,$18,$54,$54,
  $54,$54,$54,$54,$54,$54,$18,$18,$18,$18,$18,$18,$18,$18,$74,
  $74,$74,$74,$74,$74,$74,$74,$38,$38,$38,$38,$38,$38,$38,$38,
  $74,$74,$74,$74,$74,$74,$74,$74,$38,$38,$38,$38,$38,$38,$38,
  $38);

 BIT_F4:Array[0..255] of Byte=(
  $54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,
  $5C,$10,$10,$10,$10,$10,$10,$10,$10,$18,$18,$18,$18,$18,$18,
  $18,$18,$74,$74,$74,$74,$74,$74,$74,$74,$7C,$7C,$7C,$7C,$7C,
  $7C,$7C,$7C,$30,$30,$30,$30,$30,$30,$30,$30,$38,$38,$38,$38,
  $38,$38,$38,$38,$54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,$5C,
  $5C,$5C,$5C,$5C,$5C,$10,$10,$10,$10,$10,$10,$10,$10,$18,$18,
  $18,$18,$18,$18,$18,$18,$74,$74,$74,$74,$74,$74,$74,$74,$7C,
  $7C,$7C,$7C,$7C,$7C,$7C,$7C,$30,$30,$30,$30,$30,$30,$30,$30,
  $38,$38,$38,$38,$38,$38,$38,$38,$54,$54,$54,$54,$54,$54,$54,
  $54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$10,$10,$10,$10,$10,$10,
  $10,$10,$18,$18,$18,$18,$18,$18,$18,$18,$74,$74,$74,$74,$74,
  $74,$74,$74,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$30,$30,$30,$30,
  $30,$30,$30,$30,$38,$38,$38,$38,$38,$38,$38,$38,$54,$54,$54,
  $54,$54,$54,$54,$54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$10,$10,
  $10,$10,$10,$10,$10,$10,$18,$18,$18,$18,$18,$18,$18,$18,$74,
  $74,$74,$74,$74,$74,$74,$74,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,
  $30,$30,$30,$30,$30,$30,$30,$30,$38,$38,$38,$38,$38,$38,$38,
  $38);

 BIT_F5:Array[0..255] of Byte=(
  $54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,
  $5C,$54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,$5C,$5C,$5C,$5C,
  $5C,$5C,$30,$30,$30,$30,$30,$30,$30,$30,$38,$38,$38,$38,$38,
  $38,$38,$38,$30,$30,$30,$30,$30,$30,$30,$30,$38,$38,$38,$38,
  $38,$38,$38,$38,$54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,$5C,
  $5C,$5C,$5C,$5C,$5C,$54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,
  $5C,$5C,$5C,$5C,$5C,$5C,$30,$30,$30,$30,$30,$30,$30,$30,$38,
  $38,$38,$38,$38,$38,$38,$38,$30,$30,$30,$30,$30,$30,$30,$30,
  $38,$38,$38,$38,$38,$38,$38,$38,$54,$54,$54,$54,$54,$54,$54,
  $54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$54,$54,$54,$54,$54,$54,
  $54,$54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$30,$30,$30,$30,$30,
  $30,$30,$30,$38,$38,$38,$38,$38,$38,$38,$38,$30,$30,$30,$30,
  $30,$30,$30,$30,$38,$38,$38,$38,$38,$38,$38,$38,$54,$54,$54,
  $54,$54,$54,$54,$54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$54,$54,
  $54,$54,$54,$54,$54,$54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$30,
  $30,$30,$30,$30,$30,$30,$30,$38,$38,$38,$38,$38,$38,$38,$38,
  $30,$30,$30,$30,$30,$30,$30,$30,$38,$38,$38,$38,$38,$38,$38,
  $38);

 BIT_F6:Array[0..255] of Byte=(
  $54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,
  $5C,$54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,$5C,$5C,$5C,$5C,
  $5C,$5C,$74,$74,$74,$74,$74,$74,$74,$74,$7C,$7C,$7C,$7C,$7C,
  $7C,$7C,$7C,$74,$74,$74,$74,$74,$74,$74,$74,$7C,$7C,$7C,$7C,
  $7C,$7C,$7C,$7C,$10,$10,$10,$10,$10,$10,$10,$10,$18,$18,$18,
  $18,$18,$18,$18,$18,$10,$10,$10,$10,$10,$10,$10,$10,$18,$18,
  $18,$18,$18,$18,$18,$18,$30,$30,$30,$30,$30,$30,$30,$30,$38,
  $38,$38,$38,$38,$38,$38,$38,$30,$30,$30,$30,$30,$30,$30,$30,
  $38,$38,$38,$38,$38,$38,$38,$38,$54,$54,$54,$54,$54,$54,$54,
  $54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$54,$54,$54,$54,$54,$54,
  $54,$54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$5C,$74,$74,$74,$74,$74,
  $74,$74,$74,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$74,$74,$74,$74,
  $74,$74,$74,$74,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$10,$10,$10,
  $10,$10,$10,$10,$10,$18,$18,$18,$18,$18,$18,$18,$18,$10,$10,
  $10,$10,$10,$10,$10,$10,$18,$18,$18,$18,$18,$18,$18,$18,$30,
  $30,$30,$30,$30,$30,$30,$30,$38,$38,$38,$38,$38,$38,$38,$38,
  $30,$30,$30,$30,$30,$30,$30,$30,$38,$38,$38,$38,$38,$38,$38,
  $38);

 BIT_F7:Array[0..255] of Byte=(
  $54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,$5C,$5C,$5C,$5C,$5C,
  $5C,$54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,$5C,$5C,$5C,$5C,
  $5C,$5C,$74,$74,$74,$74,$74,$74,$74,$74,$7C,$7C,$7C,$7C,$7C,
  $7C,$7C,$7C,$74,$74,$74,$74,$74,$74,$74,$74,$7C,$7C,$7C,$7C,
  $7C,$7C,$7C,$7C,$54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,$5C,
  $5C,$5C,$5C,$5C,$5C,$54,$54,$54,$54,$54,$54,$54,$54,$5C,$5C,
  $5C,$5C,$5C,$5C,$5C,$5C,$74,$74,$74,$74,$74,$74,$74,$74,$7C,
  $7C,$7C,$7C,$7C,$7C,$7C,$7C,$74,$74,$74,$74,$74,$74,$74,$74,
  $7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$90,$90,$90,$90,$90,$90,$90,
  $90,$98,$98,$98,$98,$98,$98,$98,$98,$90,$90,$90,$90,$90,$90,
  $90,$90,$98,$98,$98,$98,$98,$98,$98,$98,$B0,$B0,$B0,$B0,$B0,
  $B0,$B0,$B0,$B8,$B8,$B8,$B8,$B8,$B8,$B8,$B8,$B0,$B0,$B0,$B0,
  $B0,$B0,$B0,$B0,$B8,$B8,$B8,$B8,$B8,$B8,$B8,$B8,$90,$90,$90,
  $90,$90,$90,$90,$90,$98,$98,$98,$98,$98,$98,$98,$98,$90,$90,
  $90,$90,$90,$90,$90,$90,$98,$98,$98,$98,$98,$98,$98,$98,$B0,
  $B0,$B0,$B0,$B0,$B0,$B0,$B0,$B8,$B8,$B8,$B8,$B8,$B8,$B8,$B8,
  $B0,$B0,$B0,$B0,$B0,$B0,$B0,$B0,$B8,$B8,$B8,$B8,$B8,$B8,$B8,
  $B8);

 RRA_A:Array[0..1,0..255] of Byte=(
 ($00,$00,$01,$01,$02,$02,$03,$03,$04,$04,$05,$05,$06,$06,$07,
  $07,$08,$08,$09,$09,$0A,$0A,$0B,$0B,$0C,$0C,$0D,$0D,$0E,$0E,
  $0F,$0F,$10,$10,$11,$11,$12,$12,$13,$13,$14,$14,$15,$15,$16,
  $16,$17,$17,$18,$18,$19,$19,$1A,$1A,$1B,$1B,$1C,$1C,$1D,$1D,
  $1E,$1E,$1F,$1F,$20,$20,$21,$21,$22,$22,$23,$23,$24,$24,$25,
  $25,$26,$26,$27,$27,$28,$28,$29,$29,$2A,$2A,$2B,$2B,$2C,$2C,
  $2D,$2D,$2E,$2E,$2F,$2F,$30,$30,$31,$31,$32,$32,$33,$33,$34,
  $34,$35,$35,$36,$36,$37,$37,$38,$38,$39,$39,$3A,$3A,$3B,$3B,
  $3C,$3C,$3D,$3D,$3E,$3E,$3F,$3F,$40,$40,$41,$41,$42,$42,$43,
  $43,$44,$44,$45,$45,$46,$46,$47,$47,$48,$48,$49,$49,$4A,$4A,
  $4B,$4B,$4C,$4C,$4D,$4D,$4E,$4E,$4F,$4F,$50,$50,$51,$51,$52,
  $52,$53,$53,$54,$54,$55,$55,$56,$56,$57,$57,$58,$58,$59,$59,
  $5A,$5A,$5B,$5B,$5C,$5C,$5D,$5D,$5E,$5E,$5F,$5F,$60,$60,$61,
  $61,$62,$62,$63,$63,$64,$64,$65,$65,$66,$66,$67,$67,$68,$68,
  $69,$69,$6A,$6A,$6B,$6B,$6C,$6C,$6D,$6D,$6E,$6E,$6F,$6F,$70,
  $70,$71,$71,$72,$72,$73,$73,$74,$74,$75,$75,$76,$76,$77,$77,
  $78,$78,$79,$79,$7A,$7A,$7B,$7B,$7C,$7C,$7D,$7D,$7E,$7E,$7F,
  $7F),
 ($80,$80,$81,$81,$82,$82,$83,$83,$84,$84,$85,$85,$86,$86,$87,
  $87,$88,$88,$89,$89,$8A,$8A,$8B,$8B,$8C,$8C,$8D,$8D,$8E,$8E,
  $8F,$8F,$90,$90,$91,$91,$92,$92,$93,$93,$94,$94,$95,$95,$96,
  $96,$97,$97,$98,$98,$99,$99,$9A,$9A,$9B,$9B,$9C,$9C,$9D,$9D,
  $9E,$9E,$9F,$9F,$A0,$A0,$A1,$A1,$A2,$A2,$A3,$A3,$A4,$A4,$A5,
  $A5,$A6,$A6,$A7,$A7,$A8,$A8,$A9,$A9,$AA,$AA,$AB,$AB,$AC,$AC,
  $AD,$AD,$AE,$AE,$AF,$AF,$B0,$B0,$B1,$B1,$B2,$B2,$B3,$B3,$B4,
  $B4,$B5,$B5,$B6,$B6,$B7,$B7,$B8,$B8,$B9,$B9,$BA,$BA,$BB,$BB,
  $BC,$BC,$BD,$BD,$BE,$BE,$BF,$BF,$C0,$C0,$C1,$C1,$C2,$C2,$C3,
  $C3,$C4,$C4,$C5,$C5,$C6,$C6,$C7,$C7,$C8,$C8,$C9,$C9,$CA,$CA,
  $CB,$CB,$CC,$CC,$CD,$CD,$CE,$CE,$CF,$CF,$D0,$D0,$D1,$D1,$D2,
  $D2,$D3,$D3,$D4,$D4,$D5,$D5,$D6,$D6,$D7,$D7,$D8,$D8,$D9,$D9,
  $DA,$DA,$DB,$DB,$DC,$DC,$DD,$DD,$DE,$DE,$DF,$DF,$E0,$E0,$E1,
  $E1,$E2,$E2,$E3,$E3,$E4,$E4,$E5,$E5,$E6,$E6,$E7,$E7,$E8,$E8,
  $E9,$E9,$EA,$EA,$EB,$EB,$EC,$EC,$ED,$ED,$EE,$EE,$EF,$EF,$F0,
  $F0,$F1,$F1,$F2,$F2,$F3,$F3,$F4,$F4,$F5,$F5,$F6,$F6,$F7,$F7,
  $F8,$F8,$F9,$F9,$FA,$FA,$FB,$FB,$FC,$FC,$FD,$FD,$FE,$FE,$FF,
  $FF));

 RLCA_F:Array[0..1,0..255] of Byte=(
 ($00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,$00,$08,$08,$08,
  $08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,$20,$20,$28,$28,
  $28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,$00,$08,
  $08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,$20,$20,
  $28,$28,$28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,
  $00,$08,$08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,
  $20,$20,$28,$28,$28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,
  $00,$00,$00,$08,$08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,
  $20,$20,$20,$20,$28,$28,$28,$28,$01,$01,$01,$01,$09,$09,$09,
  $09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,$21,$21,$29,$29,
  $29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,$01,$01,$01,$09,
  $09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,$21,$21,
  $29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,$01,$01,
  $01,$09,$09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,
  $21,$21,$29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,
  $01,$01,$01,$09,$09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,
  $21,$21,$21,$21,$29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,
  $29),
 ($00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,$00,$08,$08,$08,
  $08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,$20,$20,$28,$28,
  $28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,$00,$08,
  $08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,$20,$20,
  $28,$28,$28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,
  $00,$08,$08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,
  $20,$20,$28,$28,$28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,
  $00,$00,$00,$08,$08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,
  $20,$20,$20,$20,$28,$28,$28,$28,$01,$01,$01,$01,$09,$09,$09,
  $09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,$21,$21,$29,$29,
  $29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,$01,$01,$01,$09,
  $09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,$21,$21,
  $29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,$01,$01,
  $01,$09,$09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,
  $21,$21,$29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,
  $01,$01,$01,$09,$09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,
  $21,$21,$21,$21,$29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,
  $29));

 RLCA_A:Array[0..1,0..255] of Byte=(
 ($00,$02,$04,$06,$08,$0A,$0C,$0E,$10,$12,$14,$16,$18,$1A,$1C,
  $1E,$20,$22,$24,$26,$28,$2A,$2C,$2E,$30,$32,$34,$36,$38,$3A,
  $3C,$3E,$40,$42,$44,$46,$48,$4A,$4C,$4E,$50,$52,$54,$56,$58,
  $5A,$5C,$5E,$60,$62,$64,$66,$68,$6A,$6C,$6E,$70,$72,$74,$76,
  $78,$7A,$7C,$7E,$80,$82,$84,$86,$88,$8A,$8C,$8E,$90,$92,$94,
  $96,$98,$9A,$9C,$9E,$A0,$A2,$A4,$A6,$A8,$AA,$AC,$AE,$B0,$B2,
  $B4,$B6,$B8,$BA,$BC,$BE,$C0,$C2,$C4,$C6,$C8,$CA,$CC,$CE,$D0,
  $D2,$D4,$D6,$D8,$DA,$DC,$DE,$E0,$E2,$E4,$E6,$E8,$EA,$EC,$EE,
  $F0,$F2,$F4,$F6,$F8,$FA,$FC,$FE,$01,$03,$05,$07,$09,$0B,$0D,
  $0F,$11,$13,$15,$17,$19,$1B,$1D,$1F,$21,$23,$25,$27,$29,$2B,
  $2D,$2F,$31,$33,$35,$37,$39,$3B,$3D,$3F,$41,$43,$45,$47,$49,
  $4B,$4D,$4F,$51,$53,$55,$57,$59,$5B,$5D,$5F,$61,$63,$65,$67,
  $69,$6B,$6D,$6F,$71,$73,$75,$77,$79,$7B,$7D,$7F,$81,$83,$85,
  $87,$89,$8B,$8D,$8F,$91,$93,$95,$97,$99,$9B,$9D,$9F,$A1,$A3,
  $A5,$A7,$A9,$AB,$AD,$AF,$B1,$B3,$B5,$B7,$B9,$BB,$BD,$BF,$C1,
  $C3,$C5,$C7,$C9,$CB,$CD,$CF,$D1,$D3,$D5,$D7,$D9,$DB,$DD,$DF,
  $E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF,$F1,$F3,$F5,$F7,$F9,$FB,$FD,
  $FF),
 ($00,$02,$04,$06,$08,$0A,$0C,$0E,$10,$12,$14,$16,$18,$1A,$1C,
  $1E,$20,$22,$24,$26,$28,$2A,$2C,$2E,$30,$32,$34,$36,$38,$3A,
  $3C,$3E,$40,$42,$44,$46,$48,$4A,$4C,$4E,$50,$52,$54,$56,$58,
  $5A,$5C,$5E,$60,$62,$64,$66,$68,$6A,$6C,$6E,$70,$72,$74,$76,
  $78,$7A,$7C,$7E,$80,$82,$84,$86,$88,$8A,$8C,$8E,$90,$92,$94,
  $96,$98,$9A,$9C,$9E,$A0,$A2,$A4,$A6,$A8,$AA,$AC,$AE,$B0,$B2,
  $B4,$B6,$B8,$BA,$BC,$BE,$C0,$C2,$C4,$C6,$C8,$CA,$CC,$CE,$D0,
  $D2,$D4,$D6,$D8,$DA,$DC,$DE,$E0,$E2,$E4,$E6,$E8,$EA,$EC,$EE,
  $F0,$F2,$F4,$F6,$F8,$FA,$FC,$FE,$01,$03,$05,$07,$09,$0B,$0D,
  $0F,$11,$13,$15,$17,$19,$1B,$1D,$1F,$21,$23,$25,$27,$29,$2B,
  $2D,$2F,$31,$33,$35,$37,$39,$3B,$3D,$3F,$41,$43,$45,$47,$49,
  $4B,$4D,$4F,$51,$53,$55,$57,$59,$5B,$5D,$5F,$61,$63,$65,$67,
  $69,$6B,$6D,$6F,$71,$73,$75,$77,$79,$7B,$7D,$7F,$81,$83,$85,
  $87,$89,$8B,$8D,$8F,$91,$93,$95,$97,$99,$9B,$9D,$9F,$A1,$A3,
  $A5,$A7,$A9,$AB,$AD,$AF,$B1,$B3,$B5,$B7,$B9,$BB,$BD,$BF,$C1,
  $C3,$C5,$C7,$C9,$CB,$CD,$CF,$D1,$D3,$D5,$D7,$D9,$DB,$DD,$DF,
  $E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF,$F1,$F3,$F5,$F7,$F9,$FB,$FD,
  $FF));

 RRCA_F:Array[0..1,0..255] of Byte=(
 ($00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,
  $01,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,
  $08,$09,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,
  $01,$00,$01,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,
  $08,$09,$08,$09,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,
  $21,$20,$21,$20,$21,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,
  $28,$29,$28,$29,$28,$29,$20,$21,$20,$21,$20,$21,$20,$21,$20,
  $21,$20,$21,$20,$21,$20,$21,$28,$29,$28,$29,$28,$29,$28,$29,
  $28,$29,$28,$29,$28,$29,$28,$29,$00,$01,$00,$01,$00,$01,$00,
  $01,$00,$01,$00,$01,$00,$01,$00,$01,$08,$09,$08,$09,$08,$09,
  $08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$00,$01,$00,$01,$00,
  $01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$08,$09,$08,$09,
  $08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$20,$21,$20,
  $21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$28,$29,
  $28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$20,
  $21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,
  $28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,
  $29),
 ($00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,
  $01,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,
  $08,$09,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,
  $01,$00,$01,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,
  $08,$09,$08,$09,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,
  $21,$20,$21,$20,$21,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,
  $28,$29,$28,$29,$28,$29,$20,$21,$20,$21,$20,$21,$20,$21,$20,
  $21,$20,$21,$20,$21,$20,$21,$28,$29,$28,$29,$28,$29,$28,$29,
  $28,$29,$28,$29,$28,$29,$28,$29,$00,$01,$00,$01,$00,$01,$00,
  $01,$00,$01,$00,$01,$00,$01,$00,$01,$08,$09,$08,$09,$08,$09,
  $08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$00,$01,$00,$01,$00,
  $01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$08,$09,$08,$09,
  $08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$08,$09,$20,$21,$20,
  $21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$28,$29,
  $28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$20,
  $21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,$20,$21,
  $28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,$29,$28,
  $29));

 RRCA_A:Array[0..1,0..255] of Byte=(
 ($00,$80,$01,$81,$02,$82,$03,$83,$04,$84,$05,$85,$06,$86,$07,
  $87,$08,$88,$09,$89,$0A,$8A,$0B,$8B,$0C,$8C,$0D,$8D,$0E,$8E,
  $0F,$8F,$10,$90,$11,$91,$12,$92,$13,$93,$14,$94,$15,$95,$16,
  $96,$17,$97,$18,$98,$19,$99,$1A,$9A,$1B,$9B,$1C,$9C,$1D,$9D,
  $1E,$9E,$1F,$9F,$20,$A0,$21,$A1,$22,$A2,$23,$A3,$24,$A4,$25,
  $A5,$26,$A6,$27,$A7,$28,$A8,$29,$A9,$2A,$AA,$2B,$AB,$2C,$AC,
  $2D,$AD,$2E,$AE,$2F,$AF,$30,$B0,$31,$B1,$32,$B2,$33,$B3,$34,
  $B4,$35,$B5,$36,$B6,$37,$B7,$38,$B8,$39,$B9,$3A,$BA,$3B,$BB,
  $3C,$BC,$3D,$BD,$3E,$BE,$3F,$BF,$40,$C0,$41,$C1,$42,$C2,$43,
  $C3,$44,$C4,$45,$C5,$46,$C6,$47,$C7,$48,$C8,$49,$C9,$4A,$CA,
  $4B,$CB,$4C,$CC,$4D,$CD,$4E,$CE,$4F,$CF,$50,$D0,$51,$D1,$52,
  $D2,$53,$D3,$54,$D4,$55,$D5,$56,$D6,$57,$D7,$58,$D8,$59,$D9,
  $5A,$DA,$5B,$DB,$5C,$DC,$5D,$DD,$5E,$DE,$5F,$DF,$60,$E0,$61,
  $E1,$62,$E2,$63,$E3,$64,$E4,$65,$E5,$66,$E6,$67,$E7,$68,$E8,
  $69,$E9,$6A,$EA,$6B,$EB,$6C,$EC,$6D,$ED,$6E,$EE,$6F,$EF,$70,
  $F0,$71,$F1,$72,$F2,$73,$F3,$74,$F4,$75,$F5,$76,$F6,$77,$F7,
  $78,$F8,$79,$F9,$7A,$FA,$7B,$FB,$7C,$FC,$7D,$FD,$7E,$FE,$7F,
  $FF),
 ($00,$80,$01,$81,$02,$82,$03,$83,$04,$84,$05,$85,$06,$86,$07,
  $87,$08,$88,$09,$89,$0A,$8A,$0B,$8B,$0C,$8C,$0D,$8D,$0E,$8E,
  $0F,$8F,$10,$90,$11,$91,$12,$92,$13,$93,$14,$94,$15,$95,$16,
  $96,$17,$97,$18,$98,$19,$99,$1A,$9A,$1B,$9B,$1C,$9C,$1D,$9D,
  $1E,$9E,$1F,$9F,$20,$A0,$21,$A1,$22,$A2,$23,$A3,$24,$A4,$25,
  $A5,$26,$A6,$27,$A7,$28,$A8,$29,$A9,$2A,$AA,$2B,$AB,$2C,$AC,
  $2D,$AD,$2E,$AE,$2F,$AF,$30,$B0,$31,$B1,$32,$B2,$33,$B3,$34,
  $B4,$35,$B5,$36,$B6,$37,$B7,$38,$B8,$39,$B9,$3A,$BA,$3B,$BB,
  $3C,$BC,$3D,$BD,$3E,$BE,$3F,$BF,$40,$C0,$41,$C1,$42,$C2,$43,
  $C3,$44,$C4,$45,$C5,$46,$C6,$47,$C7,$48,$C8,$49,$C9,$4A,$CA,
  $4B,$CB,$4C,$CC,$4D,$CD,$4E,$CE,$4F,$CF,$50,$D0,$51,$D1,$52,
  $D2,$53,$D3,$54,$D4,$55,$D5,$56,$D6,$57,$D7,$58,$D8,$59,$D9,
  $5A,$DA,$5B,$DB,$5C,$DC,$5D,$DD,$5E,$DE,$5F,$DF,$60,$E0,$61,
  $E1,$62,$E2,$63,$E3,$64,$E4,$65,$E5,$66,$E6,$67,$E7,$68,$E8,
  $69,$E9,$6A,$EA,$6B,$EB,$6C,$EC,$6D,$ED,$6E,$EE,$6F,$EF,$70,
  $F0,$71,$F1,$72,$F2,$73,$F3,$74,$F4,$75,$F5,$76,$F6,$77,$F7,
  $78,$F8,$79,$F9,$7A,$FA,$7B,$FB,$7C,$FC,$7D,$FD,$7E,$FE,$7F,
  $FF));

 RLA_F:Array[0..1,0..255] of Byte=(
 ($00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,$00,$08,$08,$08,
  $08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,$20,$20,$28,$28,
  $28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,$00,$08,
  $08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,$20,$20,
  $28,$28,$28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,
  $00,$08,$08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,
  $20,$20,$28,$28,$28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,
  $00,$00,$00,$08,$08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,
  $20,$20,$20,$20,$28,$28,$28,$28,$01,$01,$01,$01,$09,$09,$09,
  $09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,$21,$21,$29,$29,
  $29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,$01,$01,$01,$09,
  $09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,$21,$21,
  $29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,$01,$01,
  $01,$09,$09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,
  $21,$21,$29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,
  $01,$01,$01,$09,$09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,
  $21,$21,$21,$21,$29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,
  $29),
 ($00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,$00,$08,$08,$08,
  $08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,$20,$20,$28,$28,
  $28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,$00,$08,
  $08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,$20,$20,
  $28,$28,$28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,$00,$00,
  $00,$08,$08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,$20,$20,
  $20,$20,$28,$28,$28,$28,$00,$00,$00,$00,$08,$08,$08,$08,$00,
  $00,$00,$00,$08,$08,$08,$08,$20,$20,$20,$20,$28,$28,$28,$28,
  $20,$20,$20,$20,$28,$28,$28,$28,$01,$01,$01,$01,$09,$09,$09,
  $09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,$21,$21,$29,$29,
  $29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,$01,$01,$01,$09,
  $09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,$21,$21,
  $29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,$01,$01,
  $01,$09,$09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,$21,$21,
  $21,$21,$29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,$29,$01,
  $01,$01,$01,$09,$09,$09,$09,$01,$01,$01,$01,$09,$09,$09,$09,
  $21,$21,$21,$21,$29,$29,$29,$29,$21,$21,$21,$21,$29,$29,$29,
  $29));

 RLA_A:Array[0..1,0..255] of Byte=(
 ($00,$02,$04,$06,$08,$0A,$0C,$0E,$10,$12,$14,$16,$18,$1A,$1C,
  $1E,$20,$22,$24,$26,$28,$2A,$2C,$2E,$30,$32,$34,$36,$38,$3A,
  $3C,$3E,$40,$42,$44,$46,$48,$4A,$4C,$4E,$50,$52,$54,$56,$58,
  $5A,$5C,$5E,$60,$62,$64,$66,$68,$6A,$6C,$6E,$70,$72,$74,$76,
  $78,$7A,$7C,$7E,$80,$82,$84,$86,$88,$8A,$8C,$8E,$90,$92,$94,
  $96,$98,$9A,$9C,$9E,$A0,$A2,$A4,$A6,$A8,$AA,$AC,$AE,$B0,$B2,
  $B4,$B6,$B8,$BA,$BC,$BE,$C0,$C2,$C4,$C6,$C8,$CA,$CC,$CE,$D0,
  $D2,$D4,$D6,$D8,$DA,$DC,$DE,$E0,$E2,$E4,$E6,$E8,$EA,$EC,$EE,
  $F0,$F2,$F4,$F6,$F8,$FA,$FC,$FE,$00,$02,$04,$06,$08,$0A,$0C,
  $0E,$10,$12,$14,$16,$18,$1A,$1C,$1E,$20,$22,$24,$26,$28,$2A,
  $2C,$2E,$30,$32,$34,$36,$38,$3A,$3C,$3E,$40,$42,$44,$46,$48,
  $4A,$4C,$4E,$50,$52,$54,$56,$58,$5A,$5C,$5E,$60,$62,$64,$66,
  $68,$6A,$6C,$6E,$70,$72,$74,$76,$78,$7A,$7C,$7E,$80,$82,$84,
  $86,$88,$8A,$8C,$8E,$90,$92,$94,$96,$98,$9A,$9C,$9E,$A0,$A2,
  $A4,$A6,$A8,$AA,$AC,$AE,$B0,$B2,$B4,$B6,$B8,$BA,$BC,$BE,$C0,
  $C2,$C4,$C6,$C8,$CA,$CC,$CE,$D0,$D2,$D4,$D6,$D8,$DA,$DC,$DE,
  $E0,$E2,$E4,$E6,$E8,$EA,$EC,$EE,$F0,$F2,$F4,$F6,$F8,$FA,$FC,
  $FE),
 ($01,$03,$05,$07,$09,$0B,$0D,$0F,$11,$13,$15,$17,$19,$1B,$1D,
  $1F,$21,$23,$25,$27,$29,$2B,$2D,$2F,$31,$33,$35,$37,$39,$3B,
  $3D,$3F,$41,$43,$45,$47,$49,$4B,$4D,$4F,$51,$53,$55,$57,$59,
  $5B,$5D,$5F,$61,$63,$65,$67,$69,$6B,$6D,$6F,$71,$73,$75,$77,
  $79,$7B,$7D,$7F,$81,$83,$85,$87,$89,$8B,$8D,$8F,$91,$93,$95,
  $97,$99,$9B,$9D,$9F,$A1,$A3,$A5,$A7,$A9,$AB,$AD,$AF,$B1,$B3,
  $B5,$B7,$B9,$BB,$BD,$BF,$C1,$C3,$C5,$C7,$C9,$CB,$CD,$CF,$D1,
  $D3,$D5,$D7,$D9,$DB,$DD,$DF,$E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF,
  $F1,$F3,$F5,$F7,$F9,$FB,$FD,$FF,$01,$03,$05,$07,$09,$0B,$0D,
  $0F,$11,$13,$15,$17,$19,$1B,$1D,$1F,$21,$23,$25,$27,$29,$2B,
  $2D,$2F,$31,$33,$35,$37,$39,$3B,$3D,$3F,$41,$43,$45,$47,$49,
  $4B,$4D,$4F,$51,$53,$55,$57,$59,$5B,$5D,$5F,$61,$63,$65,$67,
  $69,$6B,$6D,$6F,$71,$73,$75,$77,$79,$7B,$7D,$7F,$81,$83,$85,
  $87,$89,$8B,$8D,$8F,$91,$93,$95,$97,$99,$9B,$9D,$9F,$A1,$A3,
  $A5,$A7,$A9,$AB,$AD,$AF,$B1,$B3,$B5,$B7,$B9,$BB,$BD,$BF,$C1,
  $C3,$C5,$C7,$C9,$CB,$CD,$CF,$D1,$D3,$D5,$D7,$D9,$DB,$DD,$DF,
  $E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF,$F1,$F3,$F5,$F7,$F9,$FB,$FD,
  $FF));

 RLR_F:Array[0..1,0..255] of Byte=(
 ($44,$00,$00,$04,$08,$0C,$0C,$08,$00,$04,$04,$00,$0C,$08,$08,
  $0C,$20,$24,$24,$20,$2C,$28,$28,$2C,$24,$20,$20,$24,$28,$2C,
  $2C,$28,$00,$04,$04,$00,$0C,$08,$08,$0C,$04,$00,$00,$04,$08,
  $0C,$0C,$08,$24,$20,$20,$24,$28,$2C,$2C,$28,$20,$24,$24,$20,
  $2C,$28,$28,$2C,$80,$84,$84,$80,$8C,$88,$88,$8C,$84,$80,$80,
  $84,$88,$8C,$8C,$88,$A4,$A0,$A0,$A4,$A8,$AC,$AC,$A8,$A0,$A4,
  $A4,$A0,$AC,$A8,$A8,$AC,$84,$80,$80,$84,$88,$8C,$8C,$88,$80,
  $84,$84,$80,$8C,$88,$88,$8C,$A0,$A4,$A4,$A0,$AC,$A8,$A8,$AC,
  $A4,$A0,$A0,$A4,$A8,$AC,$AC,$A8,$45,$01,$01,$05,$09,$0D,$0D,
  $09,$01,$05,$05,$01,$0D,$09,$09,$0D,$21,$25,$25,$21,$2D,$29,
  $29,$2D,$25,$21,$21,$25,$29,$2D,$2D,$29,$01,$05,$05,$01,$0D,
  $09,$09,$0D,$05,$01,$01,$05,$09,$0D,$0D,$09,$25,$21,$21,$25,
  $29,$2D,$2D,$29,$21,$25,$25,$21,$2D,$29,$29,$2D,$81,$85,$85,
  $81,$8D,$89,$89,$8D,$85,$81,$81,$85,$89,$8D,$8D,$89,$A5,$A1,
  $A1,$A5,$A9,$AD,$AD,$A9,$A1,$A5,$A5,$A1,$AD,$A9,$A9,$AD,$85,
  $81,$81,$85,$89,$8D,$8D,$89,$81,$85,$85,$81,$8D,$89,$89,$8D,
  $A1,$A5,$A5,$A1,$AD,$A9,$A9,$AD,$A5,$A1,$A1,$A5,$A9,$AD,$AD,
  $A9),
 ($00,$04,$04,$00,$0C,$08,$08,$0C,$04,$00,$00,$04,$08,$0C,$0C,
  $08,$24,$20,$20,$24,$28,$2C,$2C,$28,$20,$24,$24,$20,$2C,$28,
  $28,$2C,$04,$00,$00,$04,$08,$0C,$0C,$08,$00,$04,$04,$00,$0C,
  $08,$08,$0C,$20,$24,$24,$20,$2C,$28,$28,$2C,$24,$20,$20,$24,
  $28,$2C,$2C,$28,$84,$80,$80,$84,$88,$8C,$8C,$88,$80,$84,$84,
  $80,$8C,$88,$88,$8C,$A0,$A4,$A4,$A0,$AC,$A8,$A8,$AC,$A4,$A0,
  $A0,$A4,$A8,$AC,$AC,$A8,$80,$84,$84,$80,$8C,$88,$88,$8C,$84,
  $80,$80,$84,$88,$8C,$8C,$88,$A4,$A0,$A0,$A4,$A8,$AC,$AC,$A8,
  $A0,$A4,$A4,$A0,$AC,$A8,$A8,$AC,$01,$05,$05,$01,$0D,$09,$09,
  $0D,$05,$01,$01,$05,$09,$0D,$0D,$09,$25,$21,$21,$25,$29,$2D,
  $2D,$29,$21,$25,$25,$21,$2D,$29,$29,$2D,$05,$01,$01,$05,$09,
  $0D,$0D,$09,$01,$05,$05,$01,$0D,$09,$09,$0D,$21,$25,$25,$21,
  $2D,$29,$29,$2D,$25,$21,$21,$25,$29,$2D,$2D,$29,$85,$81,$81,
  $85,$89,$8D,$8D,$89,$81,$85,$85,$81,$8D,$89,$89,$8D,$A1,$A5,
  $A5,$A1,$AD,$A9,$A9,$AD,$A5,$A1,$A1,$A5,$A9,$AD,$AD,$A9,$81,
  $85,$85,$81,$8D,$89,$89,$8D,$85,$81,$81,$85,$89,$8D,$8D,$89,
  $A5,$A1,$A1,$A5,$A9,$AD,$AD,$A9,$A1,$A5,$A5,$A1,$AD,$A9,$A9,
  $AD));

 RLR_A:Array[0..1,0..255] of Byte=(
 ($00,$02,$04,$06,$08,$0A,$0C,$0E,$10,$12,$14,$16,$18,$1A,$1C,
  $1E,$20,$22,$24,$26,$28,$2A,$2C,$2E,$30,$32,$34,$36,$38,$3A,
  $3C,$3E,$40,$42,$44,$46,$48,$4A,$4C,$4E,$50,$52,$54,$56,$58,
  $5A,$5C,$5E,$60,$62,$64,$66,$68,$6A,$6C,$6E,$70,$72,$74,$76,
  $78,$7A,$7C,$7E,$80,$82,$84,$86,$88,$8A,$8C,$8E,$90,$92,$94,
  $96,$98,$9A,$9C,$9E,$A0,$A2,$A4,$A6,$A8,$AA,$AC,$AE,$B0,$B2,
  $B4,$B6,$B8,$BA,$BC,$BE,$C0,$C2,$C4,$C6,$C8,$CA,$CC,$CE,$D0,
  $D2,$D4,$D6,$D8,$DA,$DC,$DE,$E0,$E2,$E4,$E6,$E8,$EA,$EC,$EE,
  $F0,$F2,$F4,$F6,$F8,$FA,$FC,$FE,$00,$02,$04,$06,$08,$0A,$0C,
  $0E,$10,$12,$14,$16,$18,$1A,$1C,$1E,$20,$22,$24,$26,$28,$2A,
  $2C,$2E,$30,$32,$34,$36,$38,$3A,$3C,$3E,$40,$42,$44,$46,$48,
  $4A,$4C,$4E,$50,$52,$54,$56,$58,$5A,$5C,$5E,$60,$62,$64,$66,
  $68,$6A,$6C,$6E,$70,$72,$74,$76,$78,$7A,$7C,$7E,$80,$82,$84,
  $86,$88,$8A,$8C,$8E,$90,$92,$94,$96,$98,$9A,$9C,$9E,$A0,$A2,
  $A4,$A6,$A8,$AA,$AC,$AE,$B0,$B2,$B4,$B6,$B8,$BA,$BC,$BE,$C0,
  $C2,$C4,$C6,$C8,$CA,$CC,$CE,$D0,$D2,$D4,$D6,$D8,$DA,$DC,$DE,
  $E0,$E2,$E4,$E6,$E8,$EA,$EC,$EE,$F0,$F2,$F4,$F6,$F8,$FA,$FC,
  $FE),
 ($01,$03,$05,$07,$09,$0B,$0D,$0F,$11,$13,$15,$17,$19,$1B,$1D,
  $1F,$21,$23,$25,$27,$29,$2B,$2D,$2F,$31,$33,$35,$37,$39,$3B,
  $3D,$3F,$41,$43,$45,$47,$49,$4B,$4D,$4F,$51,$53,$55,$57,$59,
  $5B,$5D,$5F,$61,$63,$65,$67,$69,$6B,$6D,$6F,$71,$73,$75,$77,
  $79,$7B,$7D,$7F,$81,$83,$85,$87,$89,$8B,$8D,$8F,$91,$93,$95,
  $97,$99,$9B,$9D,$9F,$A1,$A3,$A5,$A7,$A9,$AB,$AD,$AF,$B1,$B3,
  $B5,$B7,$B9,$BB,$BD,$BF,$C1,$C3,$C5,$C7,$C9,$CB,$CD,$CF,$D1,
  $D3,$D5,$D7,$D9,$DB,$DD,$DF,$E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF,
  $F1,$F3,$F5,$F7,$F9,$FB,$FD,$FF,$01,$03,$05,$07,$09,$0B,$0D,
  $0F,$11,$13,$15,$17,$19,$1B,$1D,$1F,$21,$23,$25,$27,$29,$2B,
  $2D,$2F,$31,$33,$35,$37,$39,$3B,$3D,$3F,$41,$43,$45,$47,$49,
  $4B,$4D,$4F,$51,$53,$55,$57,$59,$5B,$5D,$5F,$61,$63,$65,$67,
  $69,$6B,$6D,$6F,$71,$73,$75,$77,$79,$7B,$7D,$7F,$81,$83,$85,
  $87,$89,$8B,$8D,$8F,$91,$93,$95,$97,$99,$9B,$9D,$9F,$A1,$A3,
  $A5,$A7,$A9,$AB,$AD,$AF,$B1,$B3,$B5,$B7,$B9,$BB,$BD,$BF,$C1,
  $C3,$C5,$C7,$C9,$CB,$CD,$CF,$D1,$D3,$D5,$D7,$D9,$DB,$DD,$DF,
  $E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF,$F1,$F3,$F5,$F7,$F9,$FB,$FD,
  $FF));

 RRR_F:Array[0..1,0..255] of Byte=(
 ($44,$45,$00,$01,$00,$01,$04,$05,$00,$01,$04,$05,$04,$05,$00,
  $01,$08,$09,$0C,$0D,$0C,$0D,$08,$09,$0C,$0D,$08,$09,$08,$09,
  $0C,$0D,$00,$01,$04,$05,$04,$05,$00,$01,$04,$05,$00,$01,$00,
  $01,$04,$05,$0C,$0D,$08,$09,$08,$09,$0C,$0D,$08,$09,$0C,$0D,
  $0C,$0D,$08,$09,$20,$21,$24,$25,$24,$25,$20,$21,$24,$25,$20,
  $21,$20,$21,$24,$25,$2C,$2D,$28,$29,$28,$29,$2C,$2D,$28,$29,
  $2C,$2D,$2C,$2D,$28,$29,$24,$25,$20,$21,$20,$21,$24,$25,$20,
  $21,$24,$25,$24,$25,$20,$21,$28,$29,$2C,$2D,$2C,$2D,$28,$29,
  $2C,$2D,$28,$29,$28,$29,$2C,$2D,$00,$01,$04,$05,$04,$05,$00,
  $01,$04,$05,$00,$01,$00,$01,$04,$05,$0C,$0D,$08,$09,$08,$09,
  $0C,$0D,$08,$09,$0C,$0D,$0C,$0D,$08,$09,$04,$05,$00,$01,$00,
  $01,$04,$05,$00,$01,$04,$05,$04,$05,$00,$01,$08,$09,$0C,$0D,
  $0C,$0D,$08,$09,$0C,$0D,$08,$09,$08,$09,$0C,$0D,$24,$25,$20,
  $21,$20,$21,$24,$25,$20,$21,$24,$25,$24,$25,$20,$21,$28,$29,
  $2C,$2D,$2C,$2D,$28,$29,$2C,$2D,$28,$29,$28,$29,$2C,$2D,$20,
  $21,$24,$25,$24,$25,$20,$21,$24,$25,$20,$21,$20,$21,$24,$25,
  $2C,$2D,$28,$29,$28,$29,$2C,$2D,$28,$29,$2C,$2D,$2C,$2D,$28,
  $29),
 ($80,$81,$84,$85,$84,$85,$80,$81,$84,$85,$80,$81,$80,$81,$84,
  $85,$8C,$8D,$88,$89,$88,$89,$8C,$8D,$88,$89,$8C,$8D,$8C,$8D,
  $88,$89,$84,$85,$80,$81,$80,$81,$84,$85,$80,$81,$84,$85,$84,
  $85,$80,$81,$88,$89,$8C,$8D,$8C,$8D,$88,$89,$8C,$8D,$88,$89,
  $88,$89,$8C,$8D,$A4,$A5,$A0,$A1,$A0,$A1,$A4,$A5,$A0,$A1,$A4,
  $A5,$A4,$A5,$A0,$A1,$A8,$A9,$AC,$AD,$AC,$AD,$A8,$A9,$AC,$AD,
  $A8,$A9,$A8,$A9,$AC,$AD,$A0,$A1,$A4,$A5,$A4,$A5,$A0,$A1,$A4,
  $A5,$A0,$A1,$A0,$A1,$A4,$A5,$AC,$AD,$A8,$A9,$A8,$A9,$AC,$AD,
  $A8,$A9,$AC,$AD,$AC,$AD,$A8,$A9,$84,$85,$80,$81,$80,$81,$84,
  $85,$80,$81,$84,$85,$84,$85,$80,$81,$88,$89,$8C,$8D,$8C,$8D,
  $88,$89,$8C,$8D,$88,$89,$88,$89,$8C,$8D,$80,$81,$84,$85,$84,
  $85,$80,$81,$84,$85,$80,$81,$80,$81,$84,$85,$8C,$8D,$88,$89,
  $88,$89,$8C,$8D,$88,$89,$8C,$8D,$8C,$8D,$88,$89,$A0,$A1,$A4,
  $A5,$A4,$A5,$A0,$A1,$A4,$A5,$A0,$A1,$A0,$A1,$A4,$A5,$AC,$AD,
  $A8,$A9,$A8,$A9,$AC,$AD,$A8,$A9,$AC,$AD,$AC,$AD,$A8,$A9,$A4,
  $A5,$A0,$A1,$A0,$A1,$A4,$A5,$A0,$A1,$A4,$A5,$A4,$A5,$A0,$A1,
  $A8,$A9,$AC,$AD,$AC,$AD,$A8,$A9,$AC,$AD,$A8,$A9,$A8,$A9,$AC,
  $AD));

 RRR_A:Array[0..1,0..255] of Byte=(
 ($00,$00,$01,$01,$02,$02,$03,$03,$04,$04,$05,$05,$06,$06,$07,
  $07,$08,$08,$09,$09,$0A,$0A,$0B,$0B,$0C,$0C,$0D,$0D,$0E,$0E,
  $0F,$0F,$10,$10,$11,$11,$12,$12,$13,$13,$14,$14,$15,$15,$16,
  $16,$17,$17,$18,$18,$19,$19,$1A,$1A,$1B,$1B,$1C,$1C,$1D,$1D,
  $1E,$1E,$1F,$1F,$20,$20,$21,$21,$22,$22,$23,$23,$24,$24,$25,
  $25,$26,$26,$27,$27,$28,$28,$29,$29,$2A,$2A,$2B,$2B,$2C,$2C,
  $2D,$2D,$2E,$2E,$2F,$2F,$30,$30,$31,$31,$32,$32,$33,$33,$34,
  $34,$35,$35,$36,$36,$37,$37,$38,$38,$39,$39,$3A,$3A,$3B,$3B,
  $3C,$3C,$3D,$3D,$3E,$3E,$3F,$3F,$40,$40,$41,$41,$42,$42,$43,
  $43,$44,$44,$45,$45,$46,$46,$47,$47,$48,$48,$49,$49,$4A,$4A,
  $4B,$4B,$4C,$4C,$4D,$4D,$4E,$4E,$4F,$4F,$50,$50,$51,$51,$52,
  $52,$53,$53,$54,$54,$55,$55,$56,$56,$57,$57,$58,$58,$59,$59,
  $5A,$5A,$5B,$5B,$5C,$5C,$5D,$5D,$5E,$5E,$5F,$5F,$60,$60,$61,
  $61,$62,$62,$63,$63,$64,$64,$65,$65,$66,$66,$67,$67,$68,$68,
  $69,$69,$6A,$6A,$6B,$6B,$6C,$6C,$6D,$6D,$6E,$6E,$6F,$6F,$70,
  $70,$71,$71,$72,$72,$73,$73,$74,$74,$75,$75,$76,$76,$77,$77,
  $78,$78,$79,$79,$7A,$7A,$7B,$7B,$7C,$7C,$7D,$7D,$7E,$7E,$7F,
  $7F),
 ($80,$80,$81,$81,$82,$82,$83,$83,$84,$84,$85,$85,$86,$86,$87,
  $87,$88,$88,$89,$89,$8A,$8A,$8B,$8B,$8C,$8C,$8D,$8D,$8E,$8E,
  $8F,$8F,$90,$90,$91,$91,$92,$92,$93,$93,$94,$94,$95,$95,$96,
  $96,$97,$97,$98,$98,$99,$99,$9A,$9A,$9B,$9B,$9C,$9C,$9D,$9D,
  $9E,$9E,$9F,$9F,$A0,$A0,$A1,$A1,$A2,$A2,$A3,$A3,$A4,$A4,$A5,
  $A5,$A6,$A6,$A7,$A7,$A8,$A8,$A9,$A9,$AA,$AA,$AB,$AB,$AC,$AC,
  $AD,$AD,$AE,$AE,$AF,$AF,$B0,$B0,$B1,$B1,$B2,$B2,$B3,$B3,$B4,
  $B4,$B5,$B5,$B6,$B6,$B7,$B7,$B8,$B8,$B9,$B9,$BA,$BA,$BB,$BB,
  $BC,$BC,$BD,$BD,$BE,$BE,$BF,$BF,$C0,$C0,$C1,$C1,$C2,$C2,$C3,
  $C3,$C4,$C4,$C5,$C5,$C6,$C6,$C7,$C7,$C8,$C8,$C9,$C9,$CA,$CA,
  $CB,$CB,$CC,$CC,$CD,$CD,$CE,$CE,$CF,$CF,$D0,$D0,$D1,$D1,$D2,
  $D2,$D3,$D3,$D4,$D4,$D5,$D5,$D6,$D6,$D7,$D7,$D8,$D8,$D9,$D9,
  $DA,$DA,$DB,$DB,$DC,$DC,$DD,$DD,$DE,$DE,$DF,$DF,$E0,$E0,$E1,
  $E1,$E2,$E2,$E3,$E3,$E4,$E4,$E5,$E5,$E6,$E6,$E7,$E7,$E8,$E8,
  $E9,$E9,$EA,$EA,$EB,$EB,$EC,$EC,$ED,$ED,$EE,$EE,$EF,$EF,$F0,
  $F0,$F1,$F1,$F2,$F2,$F3,$F3,$F4,$F4,$F5,$F5,$F6,$F6,$F7,$F7,
  $F8,$F8,$F9,$F9,$FA,$FA,$FB,$FB,$FC,$FC,$FD,$FD,$FE,$FE,$FF,
  $FF));

 DAA_F:Array[0..7,0..255] of Byte=(
 ($44,$00,$00,$04,$00,$04,$04,$00,$08,$0C,$10,$14,$14,$10,$14,
  $10,$00,$04,$04,$00,$04,$00,$00,$04,$0C,$08,$30,$34,$34,$30,
  $34,$30,$20,$24,$24,$20,$24,$20,$20,$24,$2C,$28,$34,$30,$30,
  $34,$30,$34,$24,$20,$20,$24,$20,$24,$24,$20,$28,$2C,$10,$14,
  $14,$10,$14,$10,$00,$04,$04,$00,$04,$00,$00,$04,$0C,$08,$14,
  $10,$10,$14,$10,$14,$04,$00,$00,$04,$00,$04,$04,$00,$08,$0C,
  $34,$30,$30,$34,$30,$34,$24,$20,$20,$24,$20,$24,$24,$20,$28,
  $2C,$30,$34,$34,$30,$34,$30,$20,$24,$24,$20,$24,$20,$20,$24,
  $2C,$28,$90,$94,$94,$90,$94,$90,$80,$84,$84,$80,$84,$80,$80,
  $84,$8C,$88,$94,$90,$90,$94,$90,$94,$84,$80,$80,$84,$80,$84,
  $84,$80,$88,$8C,$55,$11,$11,$15,$11,$15,$45,$01,$01,$05,$01,
  $05,$05,$01,$09,$0D,$11,$15,$15,$11,$15,$11,$01,$05,$05,$01,
  $05,$01,$01,$05,$0D,$09,$31,$35,$35,$31,$35,$31,$21,$25,$25,
  $21,$25,$21,$21,$25,$2D,$29,$35,$31,$31,$35,$31,$35,$25,$21,
  $21,$25,$21,$25,$25,$21,$29,$2D,$11,$15,$15,$11,$15,$11,$01,
  $05,$05,$01,$05,$01,$01,$05,$0D,$09,$15,$11,$11,$15,$11,$15,
  $05,$01,$01,$05,$01,$05,$05,$01,$09,$0D,$35,$31,$31,$35,$31,
  $35),
 ($25,$21,$21,$25,$21,$25,$25,$21,$29,$2D,$31,$35,$35,$31,$35,
  $31,$21,$25,$25,$21,$25,$21,$21,$25,$2D,$29,$91,$95,$95,$91,
  $95,$91,$81,$85,$85,$81,$85,$81,$81,$85,$8D,$89,$95,$91,$91,
  $95,$91,$95,$85,$81,$81,$85,$81,$85,$85,$81,$89,$8D,$B5,$B1,
  $B1,$B5,$B1,$B5,$A5,$A1,$A1,$A5,$A1,$A5,$A5,$A1,$A9,$AD,$B1,
  $B5,$B5,$B1,$B5,$B1,$A1,$A5,$A5,$A1,$A5,$A1,$A1,$A5,$AD,$A9,
  $95,$91,$91,$95,$91,$95,$85,$81,$81,$85,$81,$85,$85,$81,$89,
  $8D,$91,$95,$95,$91,$95,$91,$81,$85,$85,$81,$85,$81,$81,$85,
  $8D,$89,$B1,$B5,$B5,$B1,$B5,$B1,$A1,$A5,$A5,$A1,$A5,$A1,$A1,
  $A5,$AD,$A9,$B5,$B1,$B1,$B5,$B1,$B5,$A5,$A1,$A1,$A5,$A1,$A5,
  $A5,$A1,$A9,$AD,$55,$11,$11,$15,$11,$15,$45,$01,$01,$05,$01,
  $05,$05,$01,$09,$0D,$11,$15,$15,$11,$15,$11,$01,$05,$05,$01,
  $05,$01,$01,$05,$0D,$09,$31,$35,$35,$31,$35,$31,$21,$25,$25,
  $21,$25,$21,$21,$25,$2D,$29,$35,$31,$31,$35,$31,$35,$25,$21,
  $21,$25,$21,$25,$25,$21,$29,$2D,$11,$15,$15,$11,$15,$11,$01,
  $05,$05,$01,$05,$01,$01,$05,$0D,$09,$15,$11,$11,$15,$11,$15,
  $05,$01,$01,$05,$01,$05,$05,$01,$09,$0D,$35,$31,$31,$35,$31,
  $35),
 ($46,$02,$02,$06,$02,$06,$06,$02,$0A,$0E,$02,$06,$06,$02,$0A,
  $0E,$02,$06,$06,$02,$06,$02,$02,$06,$0E,$0A,$06,$02,$02,$06,
  $0E,$0A,$22,$26,$26,$22,$26,$22,$22,$26,$2E,$2A,$26,$22,$22,
  $26,$2E,$2A,$26,$22,$22,$26,$22,$26,$26,$22,$2A,$2E,$22,$26,
  $26,$22,$2A,$2E,$02,$06,$06,$02,$06,$02,$02,$06,$0E,$0A,$06,
  $02,$02,$06,$0E,$0A,$06,$02,$02,$06,$02,$06,$06,$02,$0A,$0E,
  $02,$06,$06,$02,$0A,$0E,$26,$22,$22,$26,$22,$26,$26,$22,$2A,
  $2E,$22,$26,$26,$22,$2A,$2E,$22,$26,$26,$22,$26,$22,$22,$26,
  $2E,$2A,$26,$22,$22,$26,$2E,$2A,$82,$86,$86,$82,$86,$82,$82,
  $86,$8E,$8A,$86,$82,$82,$86,$8E,$8A,$86,$82,$82,$86,$82,$86,
  $86,$82,$8A,$8E,$23,$27,$27,$23,$2B,$2F,$03,$07,$07,$03,$07,
  $03,$03,$07,$0F,$0B,$07,$03,$03,$07,$0F,$0B,$07,$03,$03,$07,
  $03,$07,$07,$03,$0B,$0F,$03,$07,$07,$03,$0B,$0F,$27,$23,$23,
  $27,$23,$27,$27,$23,$2B,$2F,$23,$27,$27,$23,$2B,$2F,$23,$27,
  $27,$23,$27,$23,$23,$27,$2F,$2B,$27,$23,$23,$27,$2F,$2B,$83,
  $87,$87,$83,$87,$83,$83,$87,$8F,$8B,$87,$83,$83,$87,$8F,$8B,
  $87,$83,$83,$87,$83,$87,$87,$83,$8B,$8F,$83,$87,$87,$83,$8B,
  $8F),
 ($A7,$A3,$A3,$A7,$A3,$A7,$A7,$A3,$AB,$AF,$A3,$A7,$A7,$A3,$AB,
  $AF,$A3,$A7,$A7,$A3,$A7,$A3,$A3,$A7,$AF,$AB,$A7,$A3,$A3,$A7,
  $AF,$AB,$87,$83,$83,$87,$83,$87,$87,$83,$8B,$8F,$83,$87,$87,
  $83,$8B,$8F,$83,$87,$87,$83,$87,$83,$83,$87,$8F,$8B,$87,$83,
  $83,$87,$8F,$8B,$A3,$A7,$A7,$A3,$A7,$A3,$A3,$A7,$AF,$AB,$A7,
  $A3,$A3,$A7,$AF,$AB,$A7,$A3,$A3,$A7,$A3,$A7,$A7,$A3,$AB,$AF,
  $A3,$A7,$A7,$A3,$AB,$AF,$47,$03,$03,$07,$03,$07,$07,$03,$0B,
  $0F,$03,$07,$07,$03,$0B,$0F,$03,$07,$07,$03,$07,$03,$03,$07,
  $0F,$0B,$07,$03,$03,$07,$0F,$0B,$23,$27,$27,$23,$27,$23,$23,
  $27,$2F,$2B,$27,$23,$23,$27,$2F,$2B,$27,$23,$23,$27,$23,$27,
  $27,$23,$2B,$2F,$23,$27,$27,$23,$2B,$2F,$03,$07,$07,$03,$07,
  $03,$03,$07,$0F,$0B,$07,$03,$03,$07,$0F,$0B,$07,$03,$03,$07,
  $03,$07,$07,$03,$0B,$0F,$03,$07,$07,$03,$0B,$0F,$27,$23,$23,
  $27,$23,$27,$27,$23,$2B,$2F,$23,$27,$27,$23,$2B,$2F,$23,$27,
  $27,$23,$27,$23,$23,$27,$2F,$2B,$27,$23,$23,$27,$2F,$2B,$83,
  $87,$87,$83,$87,$83,$83,$87,$8F,$8B,$87,$83,$83,$87,$8F,$8B,
  $87,$83,$83,$87,$83,$87,$87,$83,$8B,$8F,$83,$87,$87,$83,$8B,
  $8F),
 ($04,$00,$08,$0C,$0C,$08,$0C,$08,$08,$0C,$10,$14,$14,$10,$14,
  $10,$00,$04,$0C,$08,$08,$0C,$08,$0C,$0C,$08,$30,$34,$34,$30,
  $34,$30,$20,$24,$2C,$28,$28,$2C,$28,$2C,$2C,$28,$34,$30,$30,
  $34,$30,$34,$24,$20,$28,$2C,$2C,$28,$2C,$28,$28,$2C,$10,$14,
  $14,$10,$14,$10,$00,$04,$0C,$08,$08,$0C,$08,$0C,$0C,$08,$14,
  $10,$10,$14,$10,$14,$04,$00,$08,$0C,$0C,$08,$0C,$08,$08,$0C,
  $34,$30,$30,$34,$30,$34,$24,$20,$28,$2C,$2C,$28,$2C,$28,$28,
  $2C,$30,$34,$34,$30,$34,$30,$20,$24,$2C,$28,$28,$2C,$28,$2C,
  $2C,$28,$90,$94,$94,$90,$94,$90,$80,$84,$8C,$88,$88,$8C,$88,
  $8C,$8C,$88,$94,$90,$90,$94,$90,$94,$84,$80,$88,$8C,$8C,$88,
  $8C,$88,$88,$8C,$55,$11,$11,$15,$11,$15,$05,$01,$09,$0D,$0D,
  $09,$0D,$09,$09,$0D,$11,$15,$15,$11,$15,$11,$01,$05,$0D,$09,
  $09,$0D,$09,$0D,$0D,$09,$31,$35,$35,$31,$35,$31,$21,$25,$2D,
  $29,$29,$2D,$29,$2D,$2D,$29,$35,$31,$31,$35,$31,$35,$25,$21,
  $29,$2D,$2D,$29,$2D,$29,$29,$2D,$11,$15,$15,$11,$15,$11,$01,
  $05,$0D,$09,$09,$0D,$09,$0D,$0D,$09,$15,$11,$11,$15,$11,$15,
  $05,$01,$09,$0D,$0D,$09,$0D,$09,$09,$0D,$35,$31,$31,$35,$31,
  $35),
 ($25,$21,$29,$2D,$2D,$29,$2D,$29,$29,$2D,$31,$35,$35,$31,$35,
  $31,$21,$25,$2D,$29,$29,$2D,$29,$2D,$2D,$29,$91,$95,$95,$91,
  $95,$91,$81,$85,$8D,$89,$89,$8D,$89,$8D,$8D,$89,$95,$91,$91,
  $95,$91,$95,$85,$81,$89,$8D,$8D,$89,$8D,$89,$89,$8D,$B5,$B1,
  $B1,$B5,$B1,$B5,$A5,$A1,$A9,$AD,$AD,$A9,$AD,$A9,$A9,$AD,$B1,
  $B5,$B5,$B1,$B5,$B1,$A1,$A5,$AD,$A9,$A9,$AD,$A9,$AD,$AD,$A9,
  $95,$91,$91,$95,$91,$95,$85,$81,$89,$8D,$8D,$89,$8D,$89,$89,
  $8D,$91,$95,$95,$91,$95,$91,$81,$85,$8D,$89,$89,$8D,$89,$8D,
  $8D,$89,$B1,$B5,$B5,$B1,$B5,$B1,$A1,$A5,$AD,$A9,$A9,$AD,$A9,
  $AD,$AD,$A9,$B5,$B1,$B1,$B5,$B1,$B5,$A5,$A1,$A9,$AD,$AD,$A9,
  $AD,$A9,$A9,$AD,$55,$11,$11,$15,$11,$15,$05,$01,$09,$0D,$0D,
  $09,$0D,$09,$09,$0D,$11,$15,$15,$11,$15,$11,$01,$05,$0D,$09,
  $09,$0D,$09,$0D,$0D,$09,$31,$35,$35,$31,$35,$31,$21,$25,$2D,
  $29,$29,$2D,$29,$2D,$2D,$29,$35,$31,$31,$35,$31,$35,$25,$21,
  $29,$2D,$2D,$29,$2D,$29,$29,$2D,$11,$15,$15,$11,$15,$11,$01,
  $05,$0D,$09,$09,$0D,$09,$0D,$0D,$09,$15,$11,$11,$15,$11,$15,
  $05,$01,$09,$0D,$0D,$09,$0D,$09,$09,$0D,$35,$31,$31,$35,$31,
  $35),
 ($BE,$BA,$BE,$BA,$BA,$BE,$46,$02,$02,$06,$02,$06,$06,$02,$0A,
  $0E,$1E,$1A,$1E,$1A,$1A,$1E,$02,$06,$06,$02,$06,$02,$02,$06,
  $0E,$0A,$1A,$1E,$1A,$1E,$1E,$1A,$22,$26,$26,$22,$26,$22,$22,
  $26,$2E,$2A,$3A,$3E,$3A,$3E,$3E,$3A,$26,$22,$22,$26,$22,$26,
  $26,$22,$2A,$2E,$3E,$3A,$3E,$3A,$3A,$3E,$02,$06,$06,$02,$06,
  $02,$02,$06,$0E,$0A,$1A,$1E,$1A,$1E,$1E,$1A,$06,$02,$02,$06,
  $02,$06,$06,$02,$0A,$0E,$1E,$1A,$1E,$1A,$1A,$1E,$26,$22,$22,
  $26,$22,$26,$26,$22,$2A,$2E,$3E,$3A,$3E,$3A,$3A,$3E,$22,$26,
  $26,$22,$26,$22,$22,$26,$2E,$2A,$3A,$3E,$3A,$3E,$3E,$3A,$82,
  $86,$86,$82,$86,$82,$82,$86,$8E,$8A,$9A,$9E,$9A,$9E,$9E,$9A,
  $86,$82,$82,$86,$23,$27,$27,$23,$2B,$2F,$3F,$3B,$3F,$3B,$3B,
  $3F,$03,$07,$07,$03,$07,$03,$03,$07,$0F,$0B,$1B,$1F,$1B,$1F,
  $1F,$1B,$07,$03,$03,$07,$03,$07,$07,$03,$0B,$0F,$1F,$1B,$1F,
  $1B,$1B,$1F,$27,$23,$23,$27,$23,$27,$27,$23,$2B,$2F,$3F,$3B,
  $3F,$3B,$3B,$3F,$23,$27,$27,$23,$27,$23,$23,$27,$2F,$2B,$3B,
  $3F,$3B,$3F,$3F,$3B,$83,$87,$87,$83,$87,$83,$83,$87,$8F,$8B,
  $9B,$9F,$9B,$9F,$9F,$9B,$87,$83,$83,$87,$83,$87,$87,$83,$8B,
  $8F),
 ($9F,$9B,$9F,$9B,$9B,$9F,$A7,$A3,$A3,$A7,$A3,$A7,$A7,$A3,$AB,
  $AF,$BF,$BB,$BF,$BB,$BB,$BF,$A3,$A7,$A7,$A3,$A7,$A3,$A3,$A7,
  $AF,$AB,$BB,$BF,$BB,$BF,$BF,$BB,$87,$83,$83,$87,$83,$87,$87,
  $83,$8B,$8F,$9F,$9B,$9F,$9B,$9B,$9F,$83,$87,$87,$83,$87,$83,
  $83,$87,$8F,$8B,$9B,$9F,$9B,$9F,$9F,$9B,$A3,$A7,$A7,$A3,$A7,
  $A3,$A3,$A7,$AF,$AB,$BB,$BF,$BB,$BF,$BF,$BB,$A7,$A3,$A3,$A7,
  $A3,$A7,$A7,$A3,$AB,$AF,$BF,$BB,$BF,$BB,$BB,$BF,$47,$03,$03,
  $07,$03,$07,$07,$03,$0B,$0F,$1F,$1B,$1F,$1B,$1B,$1F,$03,$07,
  $07,$03,$07,$03,$03,$07,$0F,$0B,$1B,$1F,$1B,$1F,$1F,$1B,$23,
  $27,$27,$23,$27,$23,$23,$27,$2F,$2B,$3B,$3F,$3B,$3F,$3F,$3B,
  $27,$23,$23,$27,$23,$27,$27,$23,$2B,$2F,$3F,$3B,$3F,$3B,$3B,
  $3F,$03,$07,$07,$03,$07,$03,$03,$07,$0F,$0B,$1B,$1F,$1B,$1F,
  $1F,$1B,$07,$03,$03,$07,$03,$07,$07,$03,$0B,$0F,$1F,$1B,$1F,
  $1B,$1B,$1F,$27,$23,$23,$27,$23,$27,$27,$23,$2B,$2F,$3F,$3B,
  $3F,$3B,$3B,$3F,$23,$27,$27,$23,$27,$23,$23,$27,$2F,$2B,$3B,
  $3F,$3B,$3F,$3F,$3B,$83,$87,$87,$83,$87,$83,$83,$87,$8F,$8B,
  $9B,$9F,$9B,$9F,$9F,$9B,$87,$83,$83,$87,$83,$87,$87,$83,$8B,
  $8F));

 DAA_A:Array[0..7,0..255] of Byte=(
 ($00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,
  $15,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,
  $24,$25,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,
  $33,$34,$35,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,
  $42,$43,$44,$45,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,
  $51,$52,$53,$54,$55,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,
  $60,$61,$62,$63,$64,$65,$60,$61,$62,$63,$64,$65,$66,$67,$68,
  $69,$70,$71,$72,$73,$74,$75,$70,$71,$72,$73,$74,$75,$76,$77,
  $78,$79,$80,$81,$82,$83,$84,$85,$80,$81,$82,$83,$84,$85,$86,
  $87,$88,$89,$90,$91,$92,$93,$94,$95,$90,$91,$92,$93,$94,$95,
  $96,$97,$98,$99,$00,$01,$02,$03,$04,$05,$00,$01,$02,$03,$04,
  $05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$15,$10,$11,$12,$13,
  $14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$20,$21,$22,
  $23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$30,$31,
  $32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$40,
  $41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,
  $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,
  $65),
 ($60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$70,$71,$72,$73,$74,
  $75,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,$81,$82,$83,
  $84,$85,$80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$90,$91,$92,
  $93,$94,$95,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$A0,$A1,
  $A2,$A3,$A4,$A5,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$B0,
  $B1,$B2,$B3,$B4,$B5,$B0,$B1,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9,
  $C0,$C1,$C2,$C3,$C4,$C5,$C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,
  $C9,$D0,$D1,$D2,$D3,$D4,$D5,$D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,
  $D8,$D9,$E0,$E1,$E2,$E3,$E4,$E5,$E0,$E1,$E2,$E3,$E4,$E5,$E6,
  $E7,$E8,$E9,$F0,$F1,$F2,$F3,$F4,$F5,$F0,$F1,$F2,$F3,$F4,$F5,
  $F6,$F7,$F8,$F9,$00,$01,$02,$03,$04,$05,$00,$01,$02,$03,$04,
  $05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$15,$10,$11,$12,$13,
  $14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$20,$21,$22,
  $23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$30,$31,
  $32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$40,
  $41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,
  $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,
  $65),
 ($00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$04,$05,$06,$07,$08,
  $09,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$14,$15,$16,$17,
  $18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$24,$25,$26,
  $27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$34,$35,
  $36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$44,
  $45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,
  $54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,$68,
  $69,$64,$65,$66,$67,$68,$69,$70,$71,$72,$73,$74,$75,$76,$77,
  $78,$79,$74,$75,$76,$77,$78,$79,$80,$81,$82,$83,$84,$85,$86,
  $87,$88,$89,$84,$85,$86,$87,$88,$89,$90,$91,$92,$93,$94,$95,
  $96,$97,$98,$99,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,
  $45,$46,$47,$48,$49,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,
  $54,$55,$56,$57,$58,$59,$54,$55,$56,$57,$58,$59,$60,$61,$62,
  $63,$64,$65,$66,$67,$68,$69,$64,$65,$66,$67,$68,$69,$70,$71,
  $72,$73,$74,$75,$76,$77,$78,$79,$74,$75,$76,$77,$78,$79,$80,
  $81,$82,$83,$84,$85,$86,$87,$88,$89,$84,$85,$86,$87,$88,$89,
  $90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$94,$95,$96,$97,$98,
  $99),
 ($A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$A4,$A5,$A6,$A7,$A8,
  $A9,$B0,$B1,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9,$B4,$B5,$B6,$B7,
  $B8,$B9,$C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$C4,$C5,$C6,
  $C7,$C8,$C9,$D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$D4,$D5,
  $D6,$D7,$D8,$D9,$E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7,$E8,$E9,$E4,
  $E5,$E6,$E7,$E8,$E9,$F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7,$F8,$F9,
  $F4,$F5,$F6,$F7,$F8,$F9,$00,$01,$02,$03,$04,$05,$06,$07,$08,
  $09,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$15,$16,$17,
  $18,$19,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,
  $27,$28,$29,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,
  $36,$37,$38,$39,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,
  $45,$46,$47,$48,$49,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,
  $54,$55,$56,$57,$58,$59,$54,$55,$56,$57,$58,$59,$60,$61,$62,
  $63,$64,$65,$66,$67,$68,$69,$64,$65,$66,$67,$68,$69,$70,$71,
  $72,$73,$74,$75,$76,$77,$78,$79,$74,$75,$76,$77,$78,$79,$80,
  $81,$82,$83,$84,$85,$86,$87,$88,$89,$84,$85,$86,$87,$88,$89,
  $90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$94,$95,$96,$97,$98,
  $99),
 ($06,$07,$08,$09,$0A,$0B,$0C,$0D,$0E,$0F,$10,$11,$12,$13,$14,
  $15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F,$20,$21,$22,$23,
  $24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F,$30,$31,$32,
  $33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F,$40,$41,
  $42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F,$50,
  $51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$5F,
  $60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,
  $6F,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$7B,$7C,$7D,
  $7E,$7F,$80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8A,$8B,$8C,
  $8D,$8E,$8F,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$9A,$9B,
  $9C,$9D,$9E,$9F,$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,
  $0B,$0C,$0D,$0E,$0F,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,
  $1A,$1B,$1C,$1D,$1E,$1F,$20,$21,$22,$23,$24,$25,$26,$27,$28,
  $29,$2A,$2B,$2C,$2D,$2E,$2F,$30,$31,$32,$33,$34,$35,$36,$37,
  $38,$39,$3A,$3B,$3C,$3D,$3E,$3F,$40,$41,$42,$43,$44,$45,$46,
  $47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F,$50,$51,$52,$53,$54,$55,
  $56,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$5F,$60,$61,$62,$63,$64,
  $65),
 ($66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6F,$70,$71,$72,$73,$74,
  $75,$76,$77,$78,$79,$7A,$7B,$7C,$7D,$7E,$7F,$80,$81,$82,$83,
  $84,$85,$86,$87,$88,$89,$8A,$8B,$8C,$8D,$8E,$8F,$90,$91,$92,
  $93,$94,$95,$96,$97,$98,$99,$9A,$9B,$9C,$9D,$9E,$9F,$A0,$A1,
  $A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF,$B0,
  $B1,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9,$BA,$BB,$BC,$BD,$BE,$BF,
  $C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,
  $CF,$D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$DB,$DC,$DD,
  $DE,$DF,$E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7,$E8,$E9,$EA,$EB,$EC,
  $ED,$EE,$EF,$F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7,$F8,$F9,$FA,$FB,
  $FC,$FD,$FE,$FF,$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,
  $0B,$0C,$0D,$0E,$0F,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,
  $1A,$1B,$1C,$1D,$1E,$1F,$20,$21,$22,$23,$24,$25,$26,$27,$28,
  $29,$2A,$2B,$2C,$2D,$2E,$2F,$30,$31,$32,$33,$34,$35,$36,$37,
  $38,$39,$3A,$3B,$3C,$3D,$3E,$3F,$40,$41,$42,$43,$44,$45,$46,
  $47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F,$50,$51,$52,$53,$54,$55,
  $56,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$5F,$60,$61,$62,$63,$64,
  $65),
 ($FA,$FB,$FC,$FD,$FE,$FF,$00,$01,$02,$03,$04,$05,$06,$07,$08,
  $09,$0A,$0B,$0C,$0D,$0E,$0F,$10,$11,$12,$13,$14,$15,$16,$17,
  $18,$19,$1A,$1B,$1C,$1D,$1E,$1F,$20,$21,$22,$23,$24,$25,$26,
  $27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F,$30,$31,$32,$33,$34,$35,
  $36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F,$40,$41,$42,$43,$44,
  $45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F,$50,$51,$52,$53,
  $54,$55,$56,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$5F,$60,$61,$62,
  $63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6F,$70,$71,
  $72,$73,$74,$75,$76,$77,$78,$79,$7A,$7B,$7C,$7D,$7E,$7F,$80,
  $81,$82,$83,$84,$85,$86,$87,$88,$89,$8A,$8B,$8C,$8D,$8E,$8F,
  $90,$91,$92,$93,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,
  $3F,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,
  $4E,$4F,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C,
  $5D,$5E,$5F,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,
  $6C,$6D,$6E,$6F,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,
  $7B,$7C,$7D,$7E,$7F,$80,$81,$82,$83,$84,$85,$86,$87,$88,$89,
  $8A,$8B,$8C,$8D,$8E,$8F,$90,$91,$92,$93,$94,$95,$96,$97,$98,
  $99),
 ($9A,$9B,$9C,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8,
  $A9,$AA,$AB,$AC,$AD,$AE,$AF,$B0,$B1,$B2,$B3,$B4,$B5,$B6,$B7,
  $B8,$B9,$BA,$BB,$BC,$BD,$BE,$BF,$C0,$C1,$C2,$C3,$C4,$C5,$C6,
  $C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF,$D0,$D1,$D2,$D3,$D4,$D5,
  $D6,$D7,$D8,$D9,$DA,$DB,$DC,$DD,$DE,$DF,$E0,$E1,$E2,$E3,$E4,
  $E5,$E6,$E7,$E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF,$F0,$F1,$F2,$F3,
  $F4,$F5,$F6,$F7,$F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF,$00,$01,$02,
  $03,$04,$05,$06,$07,$08,$09,$0A,$0B,$0C,$0D,$0E,$0F,$10,$11,
  $12,$13,$14,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F,$20,
  $21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F,
  $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,
  $3F,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,
  $4E,$4F,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C,
  $5D,$5E,$5F,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,
  $6C,$6D,$6E,$6F,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,
  $7B,$7C,$7D,$7E,$7F,$80,$81,$82,$83,$84,$85,$86,$87,$88,$89,
  $8A,$8B,$8C,$8D,$8E,$8F,$90,$91,$92,$93,$94,$95,$96,$97,$98,
  $99));

 implementation
 end.