Zilog Z80/Система команд/DAA

Материал из Emuverse
Перейти к: навигация, поиск
Creative-Commons.png Этот документ создан для Emuverse и распространяется на условиях лицензии CC-BY-SA-3.0.

Команда DAA производит операцию «десятичной коррекции аккумулятора», смысл которой в том, чтобы восстановить правильное двоично-десятичное значение после арифметических операций. Параметрами команды DAA являются:

  • Флаг N — тип предыдущей операции (сложение/вычитание);
  • Флаг CY — перенос;
  • Флаг HC — частичный перенос;
  • Значение в аккумуляторе A.

Смысл команды заключается в том, что она прибавляет к аккумулятору некоторое значение, вычисляемое на основе исходных данных. Эмуляцию DAA можно осуществить двумя методами — обычными if/else по таблице, приведенной в документации, либо вычислить значения коррекции заранее и свести их в таблицу. Ниже рассмотрены оба метода.

Обычный метод

  • Достоинство: Экономия памяти
  • Недостаток: Время исполнения, сложность кода

В документации на процессор приведена следующая таблица коррекции:

N CY Старший полубайт HC Младший полубайт Прибавляемое значение CY после DAA
0 0 0-9 0 0-9 00 0
0-8 A-F 06
0-9 1 0-3
A-F 0 0-9 60 1
9-F A-F 66
A-F 1 0-3
1 0-2 0 0-9 60
A-F 66
0-3 1 0-3
1 0 0-9 0 0-9 00 0
0-8 1 6-F FA
1 7-F 0 0-9 A0 1
6-F 1 6-F 9A

Использование массива

  • Достоинство: Быстрая работа, простота кода
  • Недостаток: Необходимость хранить 4к данных;
    Value := A + DAA_adjust[(N SHL 10) + (CY SHL 9) + (HC SHL 8) + A];
    NewA := Value AND $FF;
    NewCY := (Value SHR 8) AND 1;

Подразумевается, что значения переменных, обозначающих флаги, могут принимать только значения 0 и 1, а массив DAA_adjust описан следующим образом:

const DAA_adjust: array [0..4095] of Byte =
($00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $06, $06, $06, $06, $06,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$06, $06, $06, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$60, $60, $60, $60, $60, $60, $60, $60, $60, $60, $66, $66, $66, $66, $66, $66,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA, $FA,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A,
$00, $00, $00, $00, $00, $00, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A, $9A);