$f = fopen($mod256k[1], 'r');
    fread($f, 64);
    // skip crt header
    for ($i = 0; $i < $o_banks; $i++) {
        fread($f, 16);
        // skip chip header
        $CHIPS[$i >> 4][$i] = fread($f, 8 * 1024);
    }
}
// CREATE DIR
if ($config['sort_dir']) {
    usort($DIR, 'sort_dir');
}
$dir = '';
foreach ($DIR as $D) {
    $dir .= repair_case(str_pad(rtrim(substr($D[0], 0, 16)), 16, chr(0)));
    // name
    $dir .= chr($D[2]);
    // type
    $dir .= chr($D[1]);
    // bank
    $dir .= chr(0x0);
    // pad
    $dir .= pack('v', $D[4]);
    // offset, unused for crt
    $dir .= substr(pack('V', $D[3]), 0, 3);
    // size (encode 32, take 24)
}
// padding with 255 means also type 255 = EOF
$dir = str_pad($dir, 8 * 1024, chr(0xff));
//if($MODE[3]){
Пример #2
0
$msg = preg_replace('!■(.)!e', 'chr(0x80 + ord("\\1"))', $msg);
$msg = explode("\n", $msg);
foreach ($help as $k => $v) {
    $kk = $k + 7;
    $t[$kk] = substr($t[$kk], 0, 26) . str_pad($v, 13, ' ') . substr($t[$kk], -1);
}
foreach ($msg as $k => $v) {
    $kk = $k + 10;
    $t[$kk] = substr($t[$kk], 0, 5) . str_pad($v, 15, ' ') . substr($t[$kk], 5 + 15);
}
foreach (array(2 * 40 + 27 => array_merge(range(0x14, 0x18), array(0x20), range(0x19, 0x1d)), 3 * 40 + 27 => array_merge(range(0x94, 0x98), array(0x20), range(0x99, 0x9d)), 5 * 40 + 27 => range(0x85, 0x8f), 22 * 40 + 27 => array_merge(range(0x90, 0x93), range(0x6, 0xb)), 23 * 40 + 27 => range(0xc, 0x13)) as $o1 => $data) {
    foreach ($data as $o2 => $val) {
        $t[$o1 / 40][$o1 % 40 + $o2] = chr($val);
    }
}
$screen = repair_case(implode('', $t));
// $screen = the screen ($400-$7e7)
/*
** ENCODE COLORS
*/
$cols = '';
foreach ($col_pattern as $ln) {
    $cols .= chr($ofs[$ln] & 0xff);
    // just lower byte
}
asort($ofs);
foreach ($ofs as $na => $dummy) {
    if (isset($LINE[$na])) {
        $cols .= $LINE[$na];
    }
}