in maxas/MaxAs/MaxAsGrammar.pm [1398:1417]
sub readCtrl
{
my ($ctrl, $context) = @_;
my ($watdb, $readb, $wrtdb, $yield, $stall) = split ':', $ctrl;
$watdb = $watdb eq '--' ? 0 : hex $watdb;
$readb = $readb eq '-' ? 7 : $readb - 1;
$wrtdb = $wrtdb eq '-' ? 7 : $wrtdb - 1;
$yield = $yield eq 'y' || $yield eq 'Y' ? 0 : 1;
$stall = hex $stall;
die sprintf('wait dep out of range(0x00-0x3f): %x at %s', $watdb, $context) if $watdb != ($watdb & 0x3f);
return
$watdb << 11 |
$readb << 8 |
$wrtdb << 5 |
$yield << 4 |
$stall << 0;
}