http://ukncbtl.googlecode.com/files/...33-Windows.zip
Ещё одна порция свистелок и перделок.
Собственно в этом релизе скриптовое API несколько доработано.
Напомню, было всего три метода:
emulator.reset(); -- сброс машины
emulator.run(100); -- работа эмулятора в течение 100 фреймов, каждый фрейм это 1/25 секунды
emulator.saveScreenshot("test.png"); -- сохранение скриншота в формате PNG
Дальше что добавилось:
emulator.attachCartridge(1, 'romctr_basic.bin'); -- подключение картриджа
emulator.detachCartridge(1); -- отключение картриджа
emulator.attachFloppy(0, 'sys1002.dsk'); -- подключение диска
emulator.detachFloppy(0); -- отключение диска
emulator.attachHard(1, 'WDC170inv.img'); -- подключение харда, работает только если уже подключена прошивка через emulator.attachCartridge
emulator.detachHard(1);
emulator.getUptime(); либо свойство emulator.uptime -- возвращает number количество секунд работы эмулируемой машины, по emulator.reset() сбрасывается в 0
emulator.keyScan(0153); -- нажимает клавишу (задаётся скан-код), прогон 3 фрейма, отпускает, прогон 3 фрейма
emulator.keyScan(0153, 6); -- то же но задаётся интервал (фреймов) от нажатия до отжатия
emulator.keyScanShift(0013); -- нажатие SHIFT, 2 фрейма, нажатие клавиши, 3 фрейма, отжатие клавиши, 2 фрейма, отжатие SHIFT, 3 фрейма -- т.е. комбинация для ввода символа в другом регистре
emulator.keyString('1\n'); -- ввод серии символов; для каждого ASCII-символа ищется скан-код, если нужно используется нажатие SHIFT
emulator.getCPU() либо emulator.cpu -- получение объекта для ЦП
emulator.getPPU() либо emulator.ppu -- получение объекта для ПП
Дальше описываю в примерах для ПП, для ЦП то же самое:
emulator.ppu.getName() либо emulator.ppu.name -- название процессора, "CPU" либо "PPU"
emulator.ppu.getReg(0) либо emulator.ppu.r(0) -- значение в регистре 0..7
emulator.ppu.getPC() либо emulator.ppu.pc -- значение в регистре 7
emulator.ppu.getSP() либо emulator.ppu.sp -- значение в регистре 6
emulator.ppu.getPSW() либо emulator.ppu.psw -- значение в PSW
emulator.ppu.isHalt() либо emulator.ppu.halt -- признак HALT/USER режима
emulator.ppu.readWord(0160304) -- прочитать слово из памяти процессора
emulator.ppu.disassemble(0160304) -- дизассемблирует одну инструкцию по заданному адресу, возвращает массив из четырёх элементов: { address, instruction, arguments, instruction length }
Актуальный справочник по скриптовому API лежит здесь: http://code.google.com/p/ukncbtl/wiki/Scripting




Ответить с цитированием