libgambatte: lcdc enable ds timing re work and simplification
Test LCD/PPU timing relative to LCD/PPU display enable and improve implementation accordingly. Also fix and test an apparent inconsistency between mode=0 IRQ trigger checks and event timing in the implementation. Temporarily disable a speed change test that fails after these changes.
This commit is contained in:
parent
dffa1523fb
commit
be3034c206
@ -250,11 +250,11 @@ unsigned long Memory::event(unsigned long cc) {
|
||||
|
||||
if (oamDmaPos_ < oam_size) {
|
||||
if (oamDmaPos_ == 0)
|
||||
startOamDma(lOamDmaUpdate - 1);
|
||||
startOamDma(lOamDmaUpdate);
|
||||
|
||||
ioamhram_[src & 0xFF] = data;
|
||||
} else if (oamDmaPos_ == oam_size) {
|
||||
endOamDma(lOamDmaUpdate - 1);
|
||||
endOamDma(lOamDmaUpdate);
|
||||
lOamDmaUpdate = disabled_time;
|
||||
}
|
||||
}
|
||||
@ -415,11 +415,11 @@ void Memory::updateOamDma(unsigned long const cc) {
|
||||
|
||||
if (oamDmaPos_ < oam_size) {
|
||||
if (oamDmaPos_ == 0)
|
||||
startOamDma(lastOamDmaUpdate_ - 1);
|
||||
startOamDma(lastOamDmaUpdate_);
|
||||
|
||||
ioamhram_[oamDmaPos_] = oamDmaSrc ? oamDmaSrc[oamDmaPos_] : cart_.rtcRead();
|
||||
} else if (oamDmaPos_ == oam_size) {
|
||||
endOamDma(lastOamDmaUpdate_ - 1);
|
||||
endOamDma(lastOamDmaUpdate_);
|
||||
lastOamDmaUpdate_ = disabled_time;
|
||||
break;
|
||||
}
|
||||
|
@ -66,12 +66,12 @@ unsigned long gbcToUyvy(unsigned const bgr15) {
|
||||
|
||||
// TODO: simplify cycle offsets.
|
||||
|
||||
long m1IrqFrameCycle(bool ds) { return 1l * lcd_vres * lcd_cycles_per_line - 2 + 2 * ds; }
|
||||
int m2IrqLineCycle(bool ds) { return lcd_cycles_per_line - 4 + 2 * ds; }
|
||||
int m2IrqLineCycleLy0(bool ds) { return lcd_cycles_per_line - 2 + 2 * ds; }
|
||||
long const mode1_irq_frame_cycle = 1l * lcd_vres * lcd_cycles_per_line - 2;
|
||||
int const mode2_irq_line_cycle = lcd_cycles_per_line - 4;
|
||||
int const mode2_irq_line_cycle_ly0 = lcd_cycles_per_line - 2;
|
||||
|
||||
unsigned long mode1IrqSchedule(LyCounter const &lyCounter, unsigned long cc) {
|
||||
return lyCounter.nextFrameCycle(m1IrqFrameCycle(lyCounter.isDoubleSpeed()), cc);
|
||||
return lyCounter.nextFrameCycle(mode1_irq_frame_cycle, cc);
|
||||
}
|
||||
|
||||
unsigned long mode2IrqSchedule(unsigned const statReg,
|
||||
@ -79,27 +79,16 @@ unsigned long mode2IrqSchedule(unsigned const statReg,
|
||||
if (!(statReg & lcdstat_m2irqen))
|
||||
return disabled_time;
|
||||
|
||||
bool const ds = lyCounter.isDoubleSpeed();
|
||||
unsigned long const lastM2Fc = (lcd_vres - 1l) * lcd_cycles_per_line + m2IrqLineCycle(ds);
|
||||
unsigned long const ly0M2Fc = (lcd_lines_per_frame - 1l) * lcd_cycles_per_line + m2IrqLineCycleLy0(ds);
|
||||
unsigned long const lastM2Fc = (lcd_vres - 1l) * lcd_cycles_per_line + mode2_irq_line_cycle;
|
||||
unsigned long const ly0M2Fc = (lcd_lines_per_frame - 1l) * lcd_cycles_per_line + mode2_irq_line_cycle_ly0;
|
||||
return lyCounter.frameCycles(cc) - lastM2Fc < ly0M2Fc - lastM2Fc || (statReg & lcdstat_m0irqen)
|
||||
? lyCounter.nextFrameCycle(ly0M2Fc, cc)
|
||||
: lyCounter.nextLineCycle(m2IrqLineCycle(ds), cc);
|
||||
}
|
||||
|
||||
unsigned long m0IrqTimeFromXpos166Time(unsigned long xpos166Time, bool cgb, bool ds) {
|
||||
return xpos166Time + cgb - ds;
|
||||
}
|
||||
|
||||
unsigned long hdmaTimeFromM0Time(unsigned long m0Time, bool ds) {
|
||||
return m0Time + 1 - ds;
|
||||
: lyCounter.nextLineCycle(mode2_irq_line_cycle, cc);
|
||||
}
|
||||
|
||||
unsigned long nextHdmaTime(unsigned long lastM0Time,
|
||||
unsigned long nextM0Time, unsigned long cc, bool ds) {
|
||||
return cc < hdmaTimeFromM0Time(lastM0Time, ds)
|
||||
? hdmaTimeFromM0Time(lastM0Time, ds)
|
||||
: hdmaTimeFromM0Time(nextM0Time, ds);
|
||||
unsigned long nextM0Time, unsigned long cc) {
|
||||
return cc < lastM0Time ? lastM0Time : nextM0Time;
|
||||
}
|
||||
|
||||
unsigned long m0TimeOfCurrentLine(
|
||||
@ -112,8 +101,9 @@ unsigned long m0TimeOfCurrentLine(
|
||||
bool isHdmaPeriod(LyCounter const &lyCounter,
|
||||
unsigned long m0TimeOfCurrentLy, unsigned long cc) {
|
||||
int timeToNextLy = lyCounter.time() - cc;
|
||||
return lyCounter.ly() < lcd_vres && timeToNextLy > 4
|
||||
&& cc >= hdmaTimeFromM0Time(m0TimeOfCurrentLy, lyCounter.isDoubleSpeed());
|
||||
return lyCounter.ly() < lcd_vres
|
||||
&& timeToNextLy > 4 + 4 * lyCounter.isDoubleSpeed()
|
||||
&& cc >= m0TimeOfCurrentLy;
|
||||
}
|
||||
|
||||
void doCgbColorChange(unsigned char *pdata,
|
||||
@ -179,14 +169,13 @@ void LCD::loadState(SaveState const &state, unsigned char const *const oamram) {
|
||||
nextM0Time_.predictNextM0Time(ppu_);
|
||||
lycIrq_.reschedule(ppu_.lyCounter(), ppu_.now());
|
||||
|
||||
eventTimes_.setm<memevent_oneshot_statirq>(
|
||||
state.ppu.pendingLcdstatIrq
|
||||
eventTimes_.setm<memevent_oneshot_statirq>(state.ppu.pendingLcdstatIrq
|
||||
? ppu_.now() + 1
|
||||
: static_cast<unsigned long>(disabled_time));
|
||||
: 1 * disabled_time);
|
||||
eventTimes_.setm<memevent_oneshot_updatewy2>(
|
||||
state.ppu.oldWy != state.mem.ioamhram.get()[0x14A]
|
||||
? ppu_.now() + 1
|
||||
: static_cast<unsigned long>(disabled_time));
|
||||
state.ppu.oldWy != state.mem.ioamhram.get()[0x14A]
|
||||
? ppu_.now() + 2 - isDoubleSpeed()
|
||||
: 1 * disabled_time);
|
||||
eventTimes_.set<event_ly>(ppu_.lyCounter().time());
|
||||
eventTimes_.setm<memevent_spritemap>(
|
||||
SpriteMapper::schedule(ppu_.lyCounter(), ppu_.now()));
|
||||
@ -196,11 +185,11 @@ void LCD::loadState(SaveState const &state, unsigned char const *const oamram) {
|
||||
mode2IrqSchedule(statReg_, ppu_.lyCounter(), ppu_.now()));
|
||||
eventTimes_.setm<memevent_m0irq>(statReg_ & lcdstat_m0irqen
|
||||
? ppu_.now() + state.ppu.nextM0Irq
|
||||
: static_cast<unsigned long>(disabled_time));
|
||||
: 1 * disabled_time);
|
||||
eventTimes_.setm<memevent_hdma>(state.mem.hdmaTransfer
|
||||
? nextHdmaTime(ppu_.lastM0Time(), nextM0Time_.predictedNextM0Time(),
|
||||
ppu_.now(), isDoubleSpeed())
|
||||
: static_cast<unsigned long>(disabled_time));
|
||||
ppu_.now())
|
||||
: 1 * disabled_time);
|
||||
} else for (int i = 0; i < num_memevents; ++i)
|
||||
eventTimes_.set(MemEvent(i), disabled_time);
|
||||
|
||||
@ -315,15 +304,12 @@ void LCD::speedChange(unsigned long const cc) {
|
||||
eventTimes_.setm<memevent_m1irq>(mode1IrqSchedule(ppu_.lyCounter(), cc));
|
||||
eventTimes_.setm<memevent_m2irq>(mode2IrqSchedule(statReg_, ppu_.lyCounter(), cc));
|
||||
|
||||
if (eventTimes_(memevent_m0irq) != disabled_time
|
||||
&& eventTimes_(memevent_m0irq) - cc > 1) {
|
||||
eventTimes_.setm<memevent_m0irq>(m0IrqTimeFromXpos166Time(
|
||||
ppu_.predictedNextXposTime(lcd_hres + 6), ppu_.cgb(), isDoubleSpeed()));
|
||||
if (eventTimes_(memevent_m0irq) != disabled_time) {
|
||||
eventTimes_.setm<memevent_m0irq>(ppu_.predictedNextXposTime(lcd_hres + 6));
|
||||
}
|
||||
|
||||
if (hdmaIsEnabled() && eventTimes_(memevent_hdma) - cc > 1) {
|
||||
if (hdmaIsEnabled()) {
|
||||
eventTimes_.setm<memevent_hdma>(nextHdmaTime(ppu_.lastM0Time(),
|
||||
nextM0Time_.predictedNextM0Time(), cc, isDoubleSpeed()));
|
||||
nextM0Time_.predictedNextM0Time(), cc));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -354,7 +340,7 @@ void LCD::enableHdma(unsigned long const cycleCounter) {
|
||||
|
||||
eventTimes_.setm<memevent_hdma>(nextHdmaTime(
|
||||
ppu_.lastM0Time(), nextM0Time_.predictedNextM0Time(),
|
||||
cycleCounter, isDoubleSpeed()));
|
||||
cycleCounter));
|
||||
}
|
||||
|
||||
void LCD::disableHdma(unsigned long const cycleCounter) {
|
||||
@ -371,8 +357,8 @@ bool LCD::vramAccessible(unsigned long const cc) {
|
||||
return !(ppu_.lcdc() & lcdc_en)
|
||||
|| ppu_.lyCounter().ly() >= lcd_vres
|
||||
|| ppu_.inactivePeriodAfterDisplayEnable(cc + 1 - ppu_.cgb() + isDoubleSpeed())
|
||||
|| ppu_.lyCounter().lineCycles(cc) < 80
|
||||
|| cc + isDoubleSpeed() - ppu_.cgb() + 2 >= m0TimeOfCurrentLine(cc);
|
||||
|| ppu_.lyCounter().lineCycles(cc) < 78
|
||||
|| cc + 2 >= m0TimeOfCurrentLine(cc);
|
||||
}
|
||||
|
||||
bool LCD::cgbpAccessible(unsigned long const cc) {
|
||||
@ -382,8 +368,8 @@ bool LCD::cgbpAccessible(unsigned long const cc) {
|
||||
return !(ppu_.lcdc() & lcdc_en)
|
||||
|| ppu_.lyCounter().ly() >= lcd_vres
|
||||
|| ppu_.inactivePeriodAfterDisplayEnable(cc)
|
||||
|| ppu_.lyCounter().lineCycles(cc) < 80u + isDoubleSpeed()
|
||||
|| cc >= m0TimeOfCurrentLine(cc) + 3 - isDoubleSpeed();
|
||||
|| ppu_.lyCounter().lineCycles(cc) < 80
|
||||
|| cc >= m0TimeOfCurrentLine(cc) + 2;
|
||||
}
|
||||
|
||||
void LCD::doCgbBgColorChange(unsigned index, unsigned data, unsigned long cc) {
|
||||
@ -407,11 +393,10 @@ bool LCD::oamReadable(unsigned long const cc) {
|
||||
if (cc >= eventTimes_.nextEventTime())
|
||||
update(cc);
|
||||
|
||||
if (ppu_.lyCounter().lineCycles(cc) + 4 - isDoubleSpeed() * 3 >= lcd_cycles_per_line)
|
||||
return ppu_.lyCounter().ly() >= lcd_vres - 1 && ppu_.lyCounter().ly() != lcd_lines_per_frame - 1;
|
||||
if (ppu_.lyCounter().lineCycles(cc) + 4 - isDoubleSpeed() >= lcd_cycles_per_line)
|
||||
return ppu_.lyCounter().ly() >= lcd_vres - 1 && ppu_.lyCounter().ly() < lcd_lines_per_frame - 1;
|
||||
|
||||
return ppu_.lyCounter().ly() >= lcd_vres
|
||||
|| cc + isDoubleSpeed() - ppu_.cgb() + 2 >= m0TimeOfCurrentLine(cc);
|
||||
return ppu_.lyCounter().ly() >= lcd_vres || cc + 2 >= m0TimeOfCurrentLine(cc);
|
||||
}
|
||||
|
||||
bool LCD::oamWritable(unsigned long const cc) {
|
||||
@ -421,41 +406,36 @@ bool LCD::oamWritable(unsigned long const cc) {
|
||||
if (cc >= eventTimes_.nextEventTime())
|
||||
update(cc);
|
||||
|
||||
if (ppu_.lyCounter().lineCycles(cc) + 3 + ppu_.cgb() - isDoubleSpeed() * 2 >= lcd_cycles_per_line)
|
||||
return ppu_.lyCounter().ly() >= lcd_vres - 1 && ppu_.lyCounter().ly() != lcd_lines_per_frame - 1;
|
||||
if (ppu_.lyCounter().lineCycles(cc) + 3 + ppu_.cgb() >= lcd_cycles_per_line)
|
||||
return ppu_.lyCounter().ly() >= lcd_vres - 1 && ppu_.lyCounter().ly() < lcd_lines_per_frame - 1;
|
||||
|
||||
return ppu_.lyCounter().ly() >= lcd_vres
|
||||
|| cc + isDoubleSpeed() - ppu_.cgb() + 2 >= m0TimeOfCurrentLine(cc);
|
||||
return ppu_.lyCounter().ly() >= lcd_vres || cc + 2 >= m0TimeOfCurrentLine(cc);
|
||||
}
|
||||
|
||||
void LCD::mode3CyclesChange() {
|
||||
bool const ds = isDoubleSpeed();
|
||||
nextM0Time_.invalidatePredictedNextM0Time();
|
||||
|
||||
if (eventTimes_(memevent_m0irq) != disabled_time
|
||||
&& eventTimes_(memevent_m0irq)
|
||||
> m0IrqTimeFromXpos166Time(ppu_.now(), ppu_.cgb(), ds)) {
|
||||
unsigned long t = m0IrqTimeFromXpos166Time(ppu_.predictedNextXposTime(lcd_hres + 6),
|
||||
ppu_.cgb(), ds);
|
||||
&& eventTimes_(memevent_m0irq) > ppu_.now()) {
|
||||
unsigned long t = ppu_.predictedNextXposTime(lcd_hres + 6);
|
||||
eventTimes_.setm<memevent_m0irq>(t);
|
||||
}
|
||||
|
||||
if (eventTimes_(memevent_hdma) != disabled_time
|
||||
&& eventTimes_(memevent_hdma) > hdmaTimeFromM0Time(ppu_.lastM0Time(), ds)) {
|
||||
&& eventTimes_(memevent_hdma) > ppu_.lastM0Time()) {
|
||||
nextM0Time_.predictNextM0Time(ppu_);
|
||||
eventTimes_.setm<memevent_hdma>(
|
||||
hdmaTimeFromM0Time(nextM0Time_.predictedNextM0Time(), ds));
|
||||
eventTimes_.setm<memevent_hdma>(nextM0Time_.predictedNextM0Time());
|
||||
}
|
||||
}
|
||||
|
||||
void LCD::wxChange(unsigned newValue, unsigned long cycleCounter) {
|
||||
update(cycleCounter + isDoubleSpeed() + 1);
|
||||
update(cycleCounter + 1 + ppu_.cgb());
|
||||
ppu_.setWx(newValue);
|
||||
mode3CyclesChange();
|
||||
}
|
||||
|
||||
void LCD::wyChange(unsigned const newValue, unsigned long const cc) {
|
||||
update(cc + 1);
|
||||
update(cc + 1 + ppu_.cgb() - isDoubleSpeed());
|
||||
ppu_.setWy(newValue);
|
||||
|
||||
// mode3CyclesChange();
|
||||
@ -464,7 +444,7 @@ void LCD::wyChange(unsigned const newValue, unsigned long const cc) {
|
||||
|
||||
// wy2 is a delayed version of wy for convenience (is this really simpler?).
|
||||
if (ppu_.cgb() && (ppu_.lcdc() & lcdc_en)) {
|
||||
eventTimes_.setm<memevent_oneshot_updatewy2>(cc + 5);
|
||||
eventTimes_.setm<memevent_oneshot_updatewy2>(cc + 6 - isDoubleSpeed());
|
||||
} else {
|
||||
update(cc + 2);
|
||||
ppu_.updateWy2();
|
||||
@ -473,13 +453,13 @@ void LCD::wyChange(unsigned const newValue, unsigned long const cc) {
|
||||
}
|
||||
|
||||
void LCD::scxChange(unsigned newScx, unsigned long cycleCounter) {
|
||||
update(cycleCounter + ppu_.cgb() + isDoubleSpeed());
|
||||
update(cycleCounter + 2 * ppu_.cgb());
|
||||
ppu_.setScx(newScx);
|
||||
mode3CyclesChange();
|
||||
}
|
||||
|
||||
void LCD::scyChange(unsigned newValue, unsigned long cycleCounter) {
|
||||
update(cycleCounter + ppu_.cgb() + isDoubleSpeed());
|
||||
update(cycleCounter + 2 * ppu_.cgb());
|
||||
ppu_.setScy(newValue);
|
||||
}
|
||||
|
||||
@ -501,9 +481,9 @@ void LCD::oamChange(unsigned char const *oamram, unsigned long cc) {
|
||||
|
||||
void LCD::lcdcChange(unsigned const data, unsigned long const cc) {
|
||||
unsigned const oldLcdc = ppu_.lcdc();
|
||||
update(cc);
|
||||
|
||||
if ((oldLcdc ^ data) & lcdc_en) {
|
||||
update(cc);
|
||||
ppu_.setLcdc(data, cc);
|
||||
|
||||
if (data & lcdc_en) {
|
||||
@ -524,43 +504,42 @@ void LCD::lcdcChange(unsigned const data, unsigned long const cc) {
|
||||
eventTimes_.setm<memevent_m2irq>(
|
||||
mode2IrqSchedule(statReg_, ppu_.lyCounter(), cc));
|
||||
if (statReg_ & lcdstat_m0irqen) {
|
||||
eventTimes_.setm<memevent_m0irq>(m0IrqTimeFromXpos166Time(
|
||||
ppu_.predictedNextXposTime(lcd_hres + 6), ppu_.cgb(), isDoubleSpeed()));
|
||||
eventTimes_.setm<memevent_m0irq>(ppu_.predictedNextXposTime(lcd_hres + 6));
|
||||
}
|
||||
if (hdmaIsEnabled()) {
|
||||
eventTimes_.setm<memevent_hdma>(nextHdmaTime(ppu_.lastM0Time(),
|
||||
nextM0Time_.predictedNextM0Time(), cc, isDoubleSpeed()));
|
||||
nextM0Time_.predictedNextM0Time(), cc));
|
||||
}
|
||||
} else for (int i = 0; i < num_memevents; ++i)
|
||||
eventTimes_.set(MemEvent(i), disabled_time);
|
||||
} else if (data & lcdc_en) {
|
||||
if (ppu_.cgb()) {
|
||||
ppu_.setLcdc((oldLcdc & ~static_cast<unsigned>(lcdc_tdsel | lcdc_obj2x))
|
||||
| (data & (lcdc_tdsel | lcdc_obj2x)), cc);
|
||||
|
||||
update(cc + 1);
|
||||
ppu_.setLcdc((oldLcdc & ~(1u * lcdc_tdsel)) | (data & lcdc_tdsel), cc + 1);
|
||||
update(cc + 2);
|
||||
ppu_.setLcdc(data, cc + 2);
|
||||
if ((oldLcdc ^ data) & lcdc_obj2x) {
|
||||
unsigned long t = SpriteMapper::schedule(ppu_.lyCounter(), cc);
|
||||
unsigned long t = SpriteMapper::schedule(ppu_.lyCounter(), cc + 2);
|
||||
eventTimes_.setm<memevent_spritemap>(t);
|
||||
}
|
||||
|
||||
update(cc + isDoubleSpeed() + 1);
|
||||
ppu_.setLcdc(data, cc + isDoubleSpeed() + 1);
|
||||
|
||||
if ((oldLcdc ^ data) & lcdc_we)
|
||||
mode3CyclesChange();
|
||||
} else {
|
||||
ppu_.setLcdc(data, cc);
|
||||
|
||||
update(cc);
|
||||
ppu_.setLcdc((oldLcdc & lcdc_obj2x) | (data & ~(1u * lcdc_obj2x)), cc);
|
||||
if ((oldLcdc ^ data) & lcdc_obj2x) {
|
||||
unsigned long t = SpriteMapper::schedule(ppu_.lyCounter(), cc);
|
||||
update(cc + 2);
|
||||
ppu_.setLcdc(data, cc + 2);
|
||||
unsigned long t = SpriteMapper::schedule(ppu_.lyCounter(), cc + 2);
|
||||
eventTimes_.setm<memevent_spritemap>(t);
|
||||
}
|
||||
|
||||
if ((oldLcdc ^ data) & (lcdc_we | lcdc_objen))
|
||||
mode3CyclesChange();
|
||||
}
|
||||
} else
|
||||
} else {
|
||||
update(cc);
|
||||
ppu_.setLcdc(data, cc);
|
||||
}
|
||||
}
|
||||
|
||||
namespace {
|
||||
@ -575,13 +554,11 @@ LyCnt const getLycCmpLy(LyCounter const &lyCounter, unsigned long cc) {
|
||||
int timeToNextLy = lyCounter.time() - cc;
|
||||
|
||||
if (ly == lcd_lines_per_frame - 1) {
|
||||
if (timeToNextLy - ((lcd_cycles_per_line - 8) << lyCounter.isDoubleSpeed()) > 0) {
|
||||
timeToNextLy -= ((lcd_cycles_per_line - 8) << lyCounter.isDoubleSpeed());
|
||||
} else {
|
||||
ly = 0;
|
||||
timeToNextLy += lyCounter.lineTime();
|
||||
}
|
||||
}
|
||||
int const lineTime = lyCounter.lineTime();
|
||||
if ((timeToNextLy -= (lineTime - 6 - 6 * lyCounter.isDoubleSpeed())) <= 0)
|
||||
ly = 0, timeToNextLy += lineTime;
|
||||
} else if ((timeToNextLy -= (2 + 2 * lyCounter.isDoubleSpeed())) <= 0)
|
||||
++ly, timeToNextLy += lyCounter.lineTime();
|
||||
|
||||
return LyCnt(ly, timeToNextLy);
|
||||
}
|
||||
@ -589,13 +566,16 @@ LyCnt const getLycCmpLy(LyCounter const &lyCounter, unsigned long cc) {
|
||||
bool statChangeTriggersM2IrqCgb(unsigned const old,
|
||||
unsigned const data, int const ly, int const timeToNextLy, bool const ds) {
|
||||
if ((old & lcdstat_m2irqen)
|
||||
|| (data & (lcdstat_m2irqen | lcdstat_m0irqen)) != lcdstat_m2irqen
|
||||
|| ly >= lcd_vres) {
|
||||
|| (data & (lcdstat_m2irqen | lcdstat_m0irqen)) != lcdstat_m2irqen) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return timeToNextLy == 2 * lcd_cycles_per_line
|
||||
|| (timeToNextLy <= 4 && ly < lcd_vres - 1 + ds);
|
||||
if (ly < lcd_vres - 1)
|
||||
return timeToNextLy <= 4;
|
||||
if (ly == lcd_vres - 1)
|
||||
return timeToNextLy <= 6 + 4 * ds && timeToNextLy > 4;
|
||||
if (ly == lcd_lines_per_frame - 1)
|
||||
return timeToNextLy <= 3 + ds;
|
||||
return false;
|
||||
}
|
||||
|
||||
unsigned incLy(unsigned ly) { return ly == lcd_lines_per_frame - 1 ? 0 : ly + 1; }
|
||||
@ -606,7 +586,13 @@ inline bool LCD::statChangeTriggersStatIrqDmg(unsigned const old, unsigned long
|
||||
LyCnt const lycCmp = getLycCmpLy(ppu_.lyCounter(), cc);
|
||||
|
||||
if (ppu_.lyCounter().ly() < lcd_vres) {
|
||||
if (cc + 1 < m0TimeOfCurrentLine(cc))
|
||||
int const m0_cycles_upper_bound = lcd_cycles_per_line - 80 - 160;
|
||||
unsigned long m0IrqTime = eventTimes_(memevent_m0irq);
|
||||
if (m0IrqTime == disabled_time && ppu_.lyCounter().time() - cc < m0_cycles_upper_bound) {
|
||||
update(cc);
|
||||
m0IrqTime = ppu_.predictedNextXposTime(lcd_hres + 6);
|
||||
}
|
||||
if (m0IrqTime == disabled_time || m0IrqTime < ppu_.lyCounter().time())
|
||||
return lycCmp.ly == lycIrq_.lycReg() && !(old & lcdstat_lycirqen);
|
||||
|
||||
return !(old & lcdstat_m0irqen)
|
||||
@ -622,10 +608,11 @@ inline bool LCD::statChangeTriggersM0LycOrM1StatIrqCgb(
|
||||
unsigned long const cc) {
|
||||
int const ly = ppu_.lyCounter().ly();
|
||||
int const timeToNextLy = ppu_.lyCounter().time() - cc;
|
||||
bool const ds = isDoubleSpeed();
|
||||
|
||||
if (ly < lcd_vres) {
|
||||
if (cc + isDoubleSpeed() * 2 < m0TimeOfCurrentLine(cc)
|
||||
|| (timeToNextLy <= 4 && ly < lcd_vres - isDoubleSpeed())) {
|
||||
if (ly < lcd_vres - 1 || (ly == lcd_vres - 1 && timeToNextLy > 3 + ds)) {
|
||||
if (eventTimes_(memevent_m0irq) < ppu_.lyCounter().time()
|
||||
|| timeToNextLy <= (ly < lcd_vres - 1 ? 6 + 4 * ds : 4)) {
|
||||
return lycperiod && (data & lcdstat_lycirqen);
|
||||
}
|
||||
|
||||
@ -636,11 +623,11 @@ inline bool LCD::statChangeTriggersM0LycOrM1StatIrqCgb(
|
||||
|| (lycperiod && (data & lcdstat_lycirqen));
|
||||
}
|
||||
|
||||
if (old & lcdstat_m1irqen)
|
||||
if (old & lcdstat_m1irqen && (ly < lcd_lines_per_frame - 1 || timeToNextLy > 3 + ds))
|
||||
return false;
|
||||
|
||||
return ((data & lcdstat_m1irqen)
|
||||
&& (ly < lcd_lines_per_frame - 1 || timeToNextLy > 4 - isDoubleSpeed() * 4))
|
||||
&& (ly < lcd_lines_per_frame - 1 || timeToNextLy > 4))
|
||||
|| (lycperiod && (data & lcdstat_lycirqen));
|
||||
}
|
||||
|
||||
@ -657,7 +644,7 @@ inline bool LCD::statChangeTriggersStatIrqCgb(
|
||||
int const timeToNextLy = ppu_.lyCounter().time() - cc;
|
||||
LyCnt const lycCmp = getLycCmpLy(ppu_.lyCounter(), cc);
|
||||
bool const lycperiod = lycCmp.ly == lycIrq_.lycReg()
|
||||
&& lycCmp.timeToNextLy > 4 - isDoubleSpeed() * 4;
|
||||
&& lycCmp.timeToNextLy > 2;
|
||||
if (lycperiod && (old & lcdstat_lycirqen))
|
||||
return false;
|
||||
|
||||
@ -680,17 +667,16 @@ void LCD::lcdstatChange(unsigned const data, unsigned long const cc) {
|
||||
lycIrq_.statRegChange(data, ppu_.lyCounter(), cc);
|
||||
|
||||
if (ppu_.lcdc() & lcdc_en) {
|
||||
if (statChangeTriggersStatIrq(old, data, cc))
|
||||
eventTimes_.flagIrq(2);
|
||||
|
||||
if ((data & lcdstat_m0irqen) && eventTimes_(memevent_m0irq) == disabled_time) {
|
||||
update(cc);
|
||||
eventTimes_.setm<memevent_m0irq>(m0IrqTimeFromXpos166Time(
|
||||
ppu_.predictedNextXposTime(lcd_hres + 6), ppu_.cgb(), isDoubleSpeed()));
|
||||
eventTimes_.setm<memevent_m0irq>(ppu_.predictedNextXposTime(lcd_hres + 6));
|
||||
}
|
||||
|
||||
eventTimes_.setm<memevent_m2irq>(mode2IrqSchedule(data, ppu_.lyCounter(), cc));
|
||||
eventTimes_.setm<memevent_lycirq>(lycIrq_.time());
|
||||
|
||||
if (statChangeTriggersStatIrq(old, data, cc))
|
||||
eventTimes_.flagIrq(2);
|
||||
}
|
||||
|
||||
mstatIrq_.statRegChange(data, eventTimes_(memevent_m0irq), eventTimes_(memevent_m1irq),
|
||||
@ -701,13 +687,13 @@ inline bool LCD::lycRegChangeStatTriggerBlockedByM0OrM1Irq(unsigned long const c
|
||||
int const timeToNextLy = ppu_.lyCounter().time() - cc;
|
||||
if (ppu_.lyCounter().ly() < lcd_vres) {
|
||||
return (statReg_ & lcdstat_m0irqen)
|
||||
&& cc >= m0TimeOfCurrentLine(cc)
|
||||
&& timeToNextLy > 4 + 4 * ppu_.cgb();
|
||||
&& eventTimes_(memevent_m0irq) > ppu_.lyCounter().time()
|
||||
&& timeToNextLy > 4 + 4 * ppu_.cgb() + 4 * isDoubleSpeed();
|
||||
}
|
||||
|
||||
return (statReg_ & lcdstat_m1irqen)
|
||||
&& !(ppu_.lyCounter().ly() == lcd_lines_per_frame - 1
|
||||
&& timeToNextLy <= 4 && ppu_.cgb() && !isDoubleSpeed());
|
||||
&& timeToNextLy <= 4 * ppu_.cgb());
|
||||
}
|
||||
|
||||
bool LCD::lycRegChangeTriggersStatIrq(
|
||||
@ -718,9 +704,8 @@ bool LCD::lycRegChangeTriggersStatIrq(
|
||||
}
|
||||
|
||||
LyCnt lycCmp = getLycCmpLy(ppu_.lyCounter(), cc);
|
||||
if (lycCmp.timeToNextLy <= 4 + 4 * ppu_.cgb()) {
|
||||
bool const ds = isDoubleSpeed();
|
||||
if (old == lycCmp.ly && !(lycCmp.timeToNextLy <= 4 && ppu_.cgb() && !ds))
|
||||
if (lycCmp.timeToNextLy <= 4 + 2 * ppu_.cgb() + 4 * isDoubleSpeed()) {
|
||||
if (old == lycCmp.ly && lycCmp.timeToNextLy > 2 * ppu_.cgb())
|
||||
return false; // simultaneous ly/lyc inc. lyc flag never goes low -> no trigger.
|
||||
|
||||
lycCmp.ly = incLy(lycCmp.ly);
|
||||
@ -762,20 +747,21 @@ unsigned LCD::getStat(unsigned const lycReg, unsigned long const cc) {
|
||||
|
||||
unsigned const ly = ppu_.lyCounter().ly();
|
||||
int const timeToNextLy = ppu_.lyCounter().time() - cc;
|
||||
if (ly >= lcd_vres) {
|
||||
if (ly < lcd_lines_per_frame - 1 || timeToNextLy > 4 - isDoubleSpeed() * 4)
|
||||
int const lineCycles = lcd_cycles_per_line - (timeToNextLy >> isDoubleSpeed());
|
||||
long const frameCycles = 1l * ly * lcd_cycles_per_line + lineCycles;
|
||||
if (frameCycles >= lcd_vres * lcd_cycles_per_line - 2 && frameCycles < lcd_cycles_per_frame - 2) {
|
||||
if (ly < lcd_lines_per_frame - 1 || timeToNextLy > 4)
|
||||
stat = 1;
|
||||
} else {
|
||||
int const lineCycles = lcd_cycles_per_line - (timeToNextLy >> isDoubleSpeed());
|
||||
if (lineCycles < 80) {
|
||||
if (!ppu_.inactivePeriodAfterDisplayEnable(cc))
|
||||
stat = 2;
|
||||
} else if (cc + isDoubleSpeed() - ppu_.cgb() + 2 < m0TimeOfCurrentLine(cc))
|
||||
} else if (lineCycles < 78 || lineCycles >= lcd_cycles_per_line - 2) {
|
||||
if (!ppu_.inactivePeriodAfterDisplayEnable(cc + 1))
|
||||
stat = 2;
|
||||
} else if (cc + 2 < m0TimeOfCurrentLine(cc)) {
|
||||
if (!ppu_.inactivePeriodAfterDisplayEnable(cc + 1))
|
||||
stat = 3;
|
||||
}
|
||||
|
||||
LyCnt const lycCmp = getLycCmpLy(ppu_.lyCounter(), cc);
|
||||
if (lycReg == lycCmp.ly && lycCmp.timeToNextLy > 4 - isDoubleSpeed() * 4)
|
||||
if (lycReg == lycCmp.ly && lycCmp.timeToNextLy > 2)
|
||||
stat |= lcdstat_lycflag;
|
||||
}
|
||||
|
||||
@ -783,7 +769,7 @@ unsigned LCD::getStat(unsigned const lycReg, unsigned long const cc) {
|
||||
}
|
||||
|
||||
inline void LCD::doMode2IrqEvent() {
|
||||
unsigned const ly = eventTimes_(event_ly) - eventTimes_(memevent_m2irq) < 8
|
||||
unsigned const ly = eventTimes_(event_ly) - eventTimes_(memevent_m2irq) < 16
|
||||
? incLy(ppu_.lyCounter().ly())
|
||||
: ppu_.lyCounter().ly();
|
||||
if (mstatIrq_.doM2Event(ly, statReg_, lycIrq_.lycReg()))
|
||||
@ -794,10 +780,10 @@ inline void LCD::doMode2IrqEvent() {
|
||||
if (!(statReg_ & lcdstat_m0irqen)) {
|
||||
next = lcd_cycles_per_line;
|
||||
if (ly == 0) {
|
||||
next -= m2IrqLineCycleLy0(ds) - m2IrqLineCycle(ds);
|
||||
next -= mode2_irq_line_cycle_ly0 - mode2_irq_line_cycle;
|
||||
} else if (ly == lcd_vres) {
|
||||
next += lcd_cycles_per_line * (lcd_lines_per_frame - lcd_vres - 1)
|
||||
+ m2IrqLineCycleLy0(ds) - m2IrqLineCycle(ds);
|
||||
+ mode2_irq_line_cycle_ly0 - mode2_irq_line_cycle;
|
||||
}
|
||||
}
|
||||
eventTimes_.setm<memevent_m2irq>(eventTimes_(memevent_m2irq) + (next << ds));
|
||||
@ -830,8 +816,7 @@ inline void LCD::event() {
|
||||
case memevent_hdma:
|
||||
eventTimes_.flagHdmaReq();
|
||||
nextM0Time_.predictNextM0Time(ppu_);
|
||||
eventTimes_.setm<memevent_hdma>(hdmaTimeFromM0Time(
|
||||
nextM0Time_.predictedNextM0Time(), isDoubleSpeed()));
|
||||
eventTimes_.setm<memevent_hdma>(nextM0Time_.predictedNextM0Time());
|
||||
break;
|
||||
|
||||
case memevent_m2irq:
|
||||
@ -843,9 +828,8 @@ inline void LCD::event() {
|
||||
eventTimes_.flagIrq(2, eventTimes_(memevent_m0irq));
|
||||
|
||||
eventTimes_.setm<memevent_m0irq>(statReg_ & lcdstat_m0irqen
|
||||
? m0IrqTimeFromXpos166Time(ppu_.predictedNextXposTime(lcd_hres + 6),
|
||||
ppu_.cgb(), isDoubleSpeed())
|
||||
: static_cast<unsigned long>(disabled_time));
|
||||
? ppu_.predictedNextXposTime(lcd_hres + 6)
|
||||
: 1 * disabled_time);
|
||||
break;
|
||||
|
||||
case memevent_oneshot_statirq:
|
||||
|
@ -117,15 +117,13 @@ public:
|
||||
update(cc);
|
||||
|
||||
lyReg = ppu_.lyCounter().ly();
|
||||
|
||||
if (lyReg == 153) {
|
||||
if (isDoubleSpeed()) {
|
||||
if (ppu_.lyCounter().time() - cc <= 456 * 2 - 8)
|
||||
lyReg = 0;
|
||||
} else
|
||||
if (lyReg == lcd_lines_per_frame - 1) {
|
||||
if (ppu_.lyCounter().time() - cc <= 2 * lcd_cycles_per_line - 4)
|
||||
lyReg = 0;
|
||||
} else if (ppu_.lyCounter().time() - cc <= 4)
|
||||
} else if (ppu_.lyCounter().time() - cc <= 8
|
||||
&& ppu_.lyCounter().time() - cc <= 4u * (1 + isDoubleSpeed())) {
|
||||
++lyReg;
|
||||
}
|
||||
}
|
||||
|
||||
return lyReg;
|
||||
|
@ -29,12 +29,11 @@ namespace {
|
||||
|
||||
unsigned long schedule(unsigned statReg,
|
||||
unsigned lycReg, LyCounter const &lyCounter, unsigned long cc) {
|
||||
bool const ds = lyCounter.isDoubleSpeed();
|
||||
return (statReg & lcdstat_lycirqen) && lycReg < lcd_lines_per_frame
|
||||
? lyCounter.nextFrameCycle(lycReg
|
||||
? 1l * lycReg * lcd_cycles_per_line - 2 + 2 * ds
|
||||
: (lcd_lines_per_frame - 1l) * lcd_cycles_per_line + 6 + 2 * ds, cc)
|
||||
: static_cast<unsigned long>(disabled_time);
|
||||
? 1l * lycReg * lcd_cycles_per_line - 2
|
||||
: (lcd_lines_per_frame - 1l) * lcd_cycles_per_line + 6, cc)
|
||||
: 1 * disabled_time;
|
||||
}
|
||||
|
||||
bool lycIrqBlockedByM2OrM1StatIrq(unsigned ly, unsigned statreg) {
|
||||
@ -79,9 +78,8 @@ bool LycIrq::doEvent(LyCounter const &lyCounter) {
|
||||
bool flagIrq = false;
|
||||
if ((statReg_ | statRegSrc_) & lcdstat_lycirqen) {
|
||||
unsigned const cmpLy = lyCounter.ly() == lcd_lines_per_frame - 1
|
||||
&& lyCounter.time() - time_ < lyCounter.lineTime()
|
||||
? 0
|
||||
: lyCounter.ly() + (lyCounter.time() - time_ < 4);
|
||||
: lyCounter.ly() + 1;
|
||||
flagIrq = lycReg_ == cmpLy && !lycIrqBlockedByM2OrM1StatIrq(lycReg_, statReg_);
|
||||
}
|
||||
|
||||
|
@ -100,7 +100,6 @@ enum { attr_cgbpalno = 0x07, attr_tdbank = 0x08, attr_dmgpalno = 0x10, attr_xfli
|
||||
attr_yflip = 0x40, attr_bgpriority = 0x80 };
|
||||
enum { win_draw_start = 1, win_draw_started = 2 };
|
||||
|
||||
int const m2_ds_offset = 3;
|
||||
int const max_m3start_cycles = 80;
|
||||
int const tile_bpp = 2;
|
||||
int const tile_bpp_mask = (1 << tile_bpp) - 1;
|
||||
@ -122,9 +121,10 @@ inline int lcdcObj2x(PPUPriv const &p) { return p.lcdc & lcdc_obj2x; }
|
||||
inline int lcdcObjEn(PPUPriv const &p) { return p.lcdc & lcdc_objen; }
|
||||
inline int lcdcBgEn( PPUPriv const &p) { return p.lcdc & lcdc_bgen; }
|
||||
|
||||
inline int weMasterCheckPriorToLyIncLineCycle(bool cgb) { return 450 - cgb; }
|
||||
inline int weMasterCheckAfterLyIncLineCycle(bool cgb) { return 454 - cgb; }
|
||||
inline int m3StartLineCycle(bool /*cgb*/) { return 83; }
|
||||
inline int weMasterCheckLy0LineCycle(bool /*cgb*/) { return 1; }
|
||||
inline int weMasterCheckPriorToLyIncLineCycle(bool /*cgb*/) { return 450; }
|
||||
inline int weMasterCheckAfterLyIncLineCycle(bool /*cgb*/) { return 454; }
|
||||
inline int m3StartLineCycle(bool cgb) { return 83 + cgb; }
|
||||
|
||||
inline void nextCall(int const cycles, PPUState const &state, PPUPriv &p) {
|
||||
int const c = p.cycles - cycles;
|
||||
@ -141,7 +141,7 @@ namespace M2_Ly0 {
|
||||
void f0(PPUPriv &p) {
|
||||
p.weMaster = lcdcWinEn(p) && 0 == p.wy;
|
||||
p.winYPos = 0xFF;
|
||||
nextCall(m3StartLineCycle(p.cgb), M3Start::f0_, p);
|
||||
nextCall(m3StartLineCycle(p.cgb) - weMasterCheckLy0LineCycle(p.cgb), M3Start::f0_, p);
|
||||
}
|
||||
}
|
||||
|
||||
@ -904,28 +904,20 @@ void plotPixelIfNoSprite(PPUPriv &p) {
|
||||
}
|
||||
|
||||
unsigned long nextM2Time(PPUPriv const &p) {
|
||||
unsigned long nextm2 = p.lyCounter.isDoubleSpeed()
|
||||
? p.lyCounter.time() + (weMasterCheckPriorToLyIncLineCycle(true) + m2_ds_offset) * 2
|
||||
- lcd_cycles_per_line * 2
|
||||
: p.lyCounter.time() + weMasterCheckPriorToLyIncLineCycle(p.cgb) - lcd_cycles_per_line;
|
||||
if (p.lyCounter.ly() == lcd_vres - 1) {
|
||||
nextm2 += (lcd_cycles_per_line * (lcd_lines_per_frame - lcd_vres + 1)
|
||||
- weMasterCheckPriorToLyIncLineCycle(p.cgb))
|
||||
<< p.lyCounter.isDoubleSpeed();
|
||||
}
|
||||
|
||||
return nextm2;
|
||||
int const nm2 = p.lyCounter.ly() < lcd_vres - 1
|
||||
? weMasterCheckPriorToLyIncLineCycle(p.cgb)
|
||||
: lcd_cycles_per_line * (lcd_lines_per_frame - p.lyCounter.ly())
|
||||
+ weMasterCheckLy0LineCycle(p.cgb);
|
||||
return p.lyCounter.time() - p.lyCounter.lineTime() + (nm2 << p.lyCounter.isDoubleSpeed());
|
||||
}
|
||||
|
||||
void xposEnd(PPUPriv &p) {
|
||||
p.lastM0Time = p.now - (p.cycles << p.lyCounter.isDoubleSpeed());
|
||||
|
||||
unsigned long const nextm2 = nextM2Time(p);
|
||||
|
||||
p.cycles = p.now >= nextm2
|
||||
? static_cast<long>((p.now - nextm2) >> p.lyCounter.isDoubleSpeed())
|
||||
: -static_cast<long>((nextm2 - p.now) >> p.lyCounter.isDoubleSpeed());
|
||||
|
||||
nextCall(0, p.lyCounter.ly() == lcd_vres - 1 ? M2_Ly0::f0_ : M2_LyNon0::f0_, p);
|
||||
}
|
||||
|
||||
@ -1497,8 +1489,8 @@ namespace M2_Ly0 {
|
||||
bool weMaster = lcdcWinEn(p) && 0 == p.wy;
|
||||
unsigned ly = 0;
|
||||
|
||||
return M3Start::predictCyclesUntilXpos_f0(p, ly, weMaster,
|
||||
winDrawState, targetx, cycles + m3StartLineCycle(p.cgb));
|
||||
return M3Start::predictCyclesUntilXpos_f0(p, ly, weMaster, winDrawState, targetx,
|
||||
cycles + m3StartLineCycle(p.cgb) - weMasterCheckLy0LineCycle(p.cgb));
|
||||
|
||||
}
|
||||
|
||||
@ -1701,15 +1693,12 @@ void PPU::loadState(SaveState const &ss, unsigned char const *const oamram) {
|
||||
PPUState const *const m3loopState = decodeM3LoopState(ss.ppu.state);
|
||||
long const videoCycles = std::min(ss.ppu.videoCycles, lcd_cycles_per_frame - 1ul);
|
||||
bool const ds = p_.cgb & ss.mem.ioamhram.get()[0x14D] >> 7;
|
||||
long const vcycs = videoCycles - ds * m2_ds_offset < 0
|
||||
? videoCycles - ds * m2_ds_offset + lcd_cycles_per_frame
|
||||
: videoCycles - ds * m2_ds_offset;
|
||||
long const lineCycles = static_cast<unsigned long>(vcycs) % lcd_cycles_per_line;
|
||||
long const lineCycles = static_cast<unsigned long>(videoCycles) % lcd_cycles_per_line;
|
||||
|
||||
p_.now = ss.cpu.cycleCounter;
|
||||
p_.lcdc = ss.mem.ioamhram.get()[0x140];
|
||||
p_.lyCounter.setDoubleSpeed(ds);
|
||||
p_.lyCounter.reset(std::min(ss.ppu.videoCycles, lcd_cycles_per_frame - 1ul), ss.cpu.cycleCounter);
|
||||
p_.lyCounter.reset(videoCycles, ss.cpu.cycleCounter);
|
||||
p_.spriteMapper.loadState(ss, oamram);
|
||||
p_.winYPos = ss.ppu.winYPos;
|
||||
p_.scy = ss.mem.ioamhram.get()[0x142];
|
||||
@ -1736,7 +1725,7 @@ void PPU::loadState(SaveState const &ss, unsigned char const *const oamram) {
|
||||
&& lineCycles + cyclesUntilM0Upperbound(p_) < weMasterCheckPriorToLyIncLineCycle(p_.cgb)) {
|
||||
p_.nextCallPtr = m3loopState;
|
||||
p_.cycles = -1;
|
||||
} else if (vcycs < (lcd_vres - 1l) * lcd_cycles_per_line + m3StartLineCycle(p_.cgb) + max_m3start_cycles) {
|
||||
} else if (videoCycles < (lcd_vres - 1l) * lcd_cycles_per_line + m3StartLineCycle(p_.cgb) + max_m3start_cycles) {
|
||||
CycleState const lineCycleStates[] = {
|
||||
{ &M3Start::f0_, m3StartLineCycle(p_.cgb) },
|
||||
{ &M3Start::f1_, m3StartLineCycle(p_.cgb) + max_m3start_cycles },
|
||||
@ -1756,7 +1745,7 @@ void PPU::loadState(SaveState const &ss, unsigned char const *const oamram) {
|
||||
p_.cycles = -1;
|
||||
}
|
||||
} else {
|
||||
p_.cycles = vcycs - lcd_cycles_per_frame;
|
||||
p_.cycles = videoCycles - lcd_cycles_per_frame - weMasterCheckLy0LineCycle(p_.cgb);
|
||||
p_.nextCallPtr = &M2_Ly0::f0_;
|
||||
}
|
||||
}
|
||||
@ -1784,13 +1773,6 @@ void PPU::speedChange(unsigned long const cycleCounter) {
|
||||
p_.lyCounter.setDoubleSpeed(!p_.lyCounter.isDoubleSpeed());
|
||||
p_.lyCounter.reset(videoCycles, p_.now);
|
||||
p_.spriteMapper.postSpeedChange(cycleCounter);
|
||||
|
||||
if (&M2_Ly0::f0_ == p_.nextCallPtr || &M2_LyNon0::f0_ == p_.nextCallPtr) {
|
||||
if (p_.lyCounter.isDoubleSpeed()) {
|
||||
p_.cycles -= m2_ds_offset;
|
||||
} else
|
||||
p_.cycles += m2_ds_offset;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned long PPU::predictedNextXposTime(unsigned xpos) const {
|
||||
@ -1807,7 +1789,7 @@ void PPU::setLcdc(unsigned const lcdc, unsigned long const cc) {
|
||||
p_.weMaster = (lcdc & lcdc_we) && 0 == p_.wy;
|
||||
p_.winDrawState = 0;
|
||||
p_.nextCallPtr = &M3Start::f0_;
|
||||
p_.cycles = -static_cast<int>(m3StartLineCycle(p_.cgb) + 2 + p_.lyCounter.isDoubleSpeed());
|
||||
p_.cycles = -(m3StartLineCycle(p_.cgb) + 2);
|
||||
} else if ((p_.lcdc ^ lcdc) & lcdc_we) {
|
||||
if (!(lcdc & lcdc_we)) {
|
||||
if (p_.winDrawState == win_draw_started || p_.xpos == xpos_end)
|
||||
|
@ -39,7 +39,7 @@ private:
|
||||
};
|
||||
|
||||
unsigned toPosCycles(unsigned long const cc, LyCounter const &lyCounter) {
|
||||
unsigned lc = lyCounter.lineCycles(cc) + 3 - lyCounter.isDoubleSpeed() * 3;
|
||||
unsigned lc = lyCounter.lineCycles(cc) + 1;
|
||||
if (lc >= lcd_cycles_per_line)
|
||||
lc -= lcd_cycles_per_line;
|
||||
|
||||
|
@ -0,0 +1,128 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 00
|
||||
|
||||
.text@247
|
||||
ltest_ly:
|
||||
ldff a, (44)
|
||||
cmp a, b
|
||||
jrnz lprint_b
|
||||
inc b
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_ly
|
||||
lprint_b:
|
||||
ld a, b
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,128 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 01
|
||||
|
||||
.text@248
|
||||
ltest_ly:
|
||||
ldff a, (44)
|
||||
cmp a, b
|
||||
jrnz lprint_b
|
||||
inc b
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_ly
|
||||
lprint_b:
|
||||
ld a, b
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,141 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld a, 02
|
||||
ldff(43), a
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
|
||||
.text@1e6
|
||||
ldff a, (0f)
|
||||
cmp a, e0
|
||||
jpnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
|
||||
.text@2c7
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e0
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,141 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld a, 02
|
||||
ldff(43), a
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
|
||||
.text@1e7
|
||||
ldff a, (0f)
|
||||
cmp a, e2
|
||||
jpnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
|
||||
.text@2c8
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e2
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,141 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld a, 03
|
||||
ldff(43), a
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
|
||||
.text@1e7
|
||||
ldff a, (0f)
|
||||
cmp a, e0
|
||||
jpnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
|
||||
.text@2c8
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e0
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,141 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld a, 03
|
||||
ldff(43), a
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
|
||||
.text@1e8
|
||||
ldff a, (0f)
|
||||
cmp a, e2
|
||||
jpnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
|
||||
.text@2c9
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e2
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,121 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
80
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 8f
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@1c5
|
||||
ldff a, (41)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 1b
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,121 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
80
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 8f
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@1c6
|
||||
ldff a, (41)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 1b
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
130
test/hwtests/enable_display/frame0_m1stat_ds_1_cgb04c_out80.asm
Normal file
130
test/hwtests/enable_display/frame0_m1stat_ds_1_cgb04c_out80.asm
Normal file
@ -0,0 +1,130 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 8f
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@242
|
||||
ldff a, (41)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
130
test/hwtests/enable_display/frame0_m1stat_ds_2_cgb04c_out81.asm
Normal file
130
test/hwtests/enable_display/frame0_m1stat_ds_2_cgb04c_out81.asm
Normal file
@ -0,0 +1,130 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 8f
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@243
|
||||
ldff a, (41)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,133 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 20
|
||||
ldff(41), a
|
||||
ld d, 98
|
||||
|
||||
.text@245
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e0
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
dec d
|
||||
jrnz ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,132 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 20
|
||||
ldff(41), a
|
||||
|
||||
.text@246
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e2
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,127 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 84
|
||||
|
||||
.text@248
|
||||
ltest_stat:
|
||||
ldff a, (41)
|
||||
cmp a, b
|
||||
jrnz lprint_ly
|
||||
ld b, 80
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
jr ltest_stat
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,126 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
|
||||
.text@249
|
||||
ltest_stat:
|
||||
ldff a, (41)
|
||||
cmp a, 82
|
||||
jrnz lprint_ly
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_stat
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,131 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
|
||||
.text@18d
|
||||
ldff a, (41)
|
||||
cmp a, 84
|
||||
jpnz lprint_ly
|
||||
|
||||
.text@26f
|
||||
ltest_stat:
|
||||
ldff a, (41)
|
||||
cmp a, 82
|
||||
jrnz lprint_ly
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_stat
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,131 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
|
||||
.text@18e
|
||||
ldff a, (41)
|
||||
cmp a, 87
|
||||
jpnz lprint_ly
|
||||
|
||||
.text@270
|
||||
ltest_stat:
|
||||
ldff a, (41)
|
||||
cmp a, 83
|
||||
jrnz lprint_ly
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_stat
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,149 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 98
|
||||
call lwait_b_ly_cycles
|
||||
ld b, 99
|
||||
|
||||
.text@244
|
||||
ldff a, (44)
|
||||
cmp a, b
|
||||
jpnz lprint_a
|
||||
ld b, 00
|
||||
|
||||
.text@408
|
||||
ltest_ly:
|
||||
ldff a, (44)
|
||||
cmp a, b
|
||||
jrnz lprint_b
|
||||
inc b
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_ly
|
||||
lprint_b:
|
||||
ld a, b
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,149 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 98
|
||||
call lwait_b_ly_cycles
|
||||
ld b, 00
|
||||
|
||||
.text@245
|
||||
ldff a, (44)
|
||||
cmp a, b
|
||||
jpnz lprint_b
|
||||
inc b
|
||||
|
||||
.text@409
|
||||
ltest_ly:
|
||||
ldff a, (44)
|
||||
cmp a, b
|
||||
jrnz lprint_b
|
||||
inc b
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_ly
|
||||
lprint_b:
|
||||
ld a, b
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,149 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld a, 02
|
||||
ldff(43), a
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 9a
|
||||
call lwait_b_ly_cycles
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
|
||||
.text@1df
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e0
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,149 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld a, 02
|
||||
ldff(43), a
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 9a
|
||||
call lwait_b_ly_cycles
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
|
||||
.text@1e0
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e2
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,149 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld a, 03
|
||||
ldff(43), a
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 9a
|
||||
call lwait_b_ly_cycles
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
|
||||
.text@1e0
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e0
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,149 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld a, 03
|
||||
ldff(43), a
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 9a
|
||||
call lwait_b_ly_cycles
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
|
||||
.text@1e1
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e2
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,123 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
80
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 9a
|
||||
call lwait_b_ly_cycles
|
||||
ld b, 8f
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@1bf
|
||||
ldff a, (41)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 1b
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,123 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
80
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 9a
|
||||
call lwait_b_ly_cycles
|
||||
ld b, 8f
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@1c0
|
||||
ldff a, (41)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 1b
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
132
test/hwtests/enable_display/frame1_m1stat_ds_1_cgb04c_out80.asm
Normal file
132
test/hwtests/enable_display/frame1_m1stat_ds_1_cgb04c_out80.asm
Normal file
@ -0,0 +1,132 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 9a
|
||||
call lwait_b_ly_cycles
|
||||
ld b, 8f
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@23c
|
||||
ldff a, (41)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
132
test/hwtests/enable_display/frame1_m1stat_ds_2_cgb04c_out81.asm
Normal file
132
test/hwtests/enable_display/frame1_m1stat_ds_2_cgb04c_out81.asm
Normal file
@ -0,0 +1,132 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 9a
|
||||
call lwait_b_ly_cycles
|
||||
ld b, 8f
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@23d
|
||||
ldff a, (41)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,155 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 99
|
||||
call lwait_b_ly_cycles
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 20
|
||||
ldff(41), a
|
||||
|
||||
.text@240
|
||||
ldff a, (0f)
|
||||
cmp a, e0
|
||||
jpnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld d, 98
|
||||
|
||||
.text@321
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e0
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
dec d
|
||||
jrnz ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,154 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 99
|
||||
call lwait_b_ly_cycles
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld a, 20
|
||||
ldff(41), a
|
||||
|
||||
.text@241
|
||||
ldff a, (0f)
|
||||
cmp a, e2
|
||||
jpnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
|
||||
.text@322
|
||||
ltest_if:
|
||||
ldff a, (0f)
|
||||
cmp a, e2
|
||||
jrnz lprint_ly
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ld c, 35
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_if
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,139 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
80
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 99
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@1c5
|
||||
ldff a, (41)
|
||||
cmp a, 84
|
||||
jpnz lprint_ly
|
||||
|
||||
.text@236
|
||||
ltest_stat:
|
||||
ldff a, (41)
|
||||
cmp a, 80
|
||||
jrnz lprint_ly
|
||||
ld c, 19
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
jr ltest_stat
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 1b
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,139 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
80
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 99
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@1c6
|
||||
ldff a, (41)
|
||||
cmp a, 86
|
||||
jpnz lprint_ly
|
||||
|
||||
.text@237
|
||||
ltest_stat:
|
||||
ldff a, (41)
|
||||
cmp a, 82
|
||||
jrnz lprint_ly
|
||||
ld c, 19
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
jr ltest_stat
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 1b
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,147 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 99
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@242
|
||||
ldff a, (41)
|
||||
cmp a, 85
|
||||
jpnz lprint_ly
|
||||
ld b, 84
|
||||
|
||||
.text@325
|
||||
ltest_stat:
|
||||
ldff a, (41)
|
||||
cmp a, b
|
||||
jrnz lprint_ly
|
||||
ld b, 80
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
jr ltest_stat
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,146 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 99
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@243
|
||||
ldff a, (41)
|
||||
cmp a, 86
|
||||
jpnz lprint_ly
|
||||
|
||||
.text@326
|
||||
ltest_stat:
|
||||
ldff a, (41)
|
||||
cmp a, 82
|
||||
jrnz lprint_ly
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_stat
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,146 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 9a
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@186
|
||||
ldff a, (41)
|
||||
cmp a, 86
|
||||
jpnz lprint_ly
|
||||
|
||||
.text@269
|
||||
ltest_stat:
|
||||
ldff a, (41)
|
||||
cmp a, 82
|
||||
jrnz lprint_ly
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_stat
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,146 @@
|
||||
.size 8000
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
ld a, 11
|
||||
ldff(40), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
ld b, 9a
|
||||
call lwait_b_ly_cycles
|
||||
|
||||
.text@187
|
||||
ldff a, (41)
|
||||
cmp a, 87
|
||||
jpnz lprint_ly
|
||||
|
||||
.text@26a
|
||||
ltest_stat:
|
||||
ldff a, (41)
|
||||
cmp a, 83
|
||||
jrnz lprint_ly
|
||||
ld c, 36
|
||||
lwait_nly:
|
||||
dec c
|
||||
jrnz lwait_nly
|
||||
nop
|
||||
jr ltest_stat
|
||||
lprint_ly:
|
||||
ldff a, (44)
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, 00
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
pop af
|
||||
ld b, a
|
||||
swap a
|
||||
and a, 0f
|
||||
ld(9800), a
|
||||
ld a, b
|
||||
and a, 0f
|
||||
ld(9801), a
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.text@7600
|
||||
lwait_b_ly_cycles:
|
||||
ld c, 37
|
||||
lwait_b_ly_cycles_wait_nly:
|
||||
dec c
|
||||
jrnz lwait_b_ly_cycles_wait_nly
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec b
|
||||
jrnz lwait_b_ly_cycles
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
00 00 08 08 22 22 41 41
|
||||
7f 7f 41 41 41 41 41 41
|
||||
00 00 7e 7e 41 41 41 41
|
||||
7e 7e 41 41 41 41 7e 7e
|
||||
00 00 3e 3e 41 41 40 40
|
||||
40 40 40 40 41 41 3e 3e
|
||||
00 00 7e 7e 41 41 41 41
|
||||
41 41 41 41 41 41 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 40 40 40 40 40 40
|
||||
|
@ -0,0 +1,132 @@
|
||||
.size 8000
|
||||
|
||||
.text@48
|
||||
jp lstatint
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
80
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld b, 90
|
||||
call lwaitly_b
|
||||
ld hl, fea0
|
||||
xor a, a
|
||||
lbegin_fill_oam:
|
||||
dec l
|
||||
ld(hl), a
|
||||
jrnz lbegin_fill_oam
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
inc l
|
||||
inc l
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
ld a, b7
|
||||
ldff(40), a
|
||||
ld a, a6
|
||||
ldff(4b), a
|
||||
ld c, 41
|
||||
ld b, 03
|
||||
lbegin_waitm3:
|
||||
ldff a, (c)
|
||||
and a, b
|
||||
cmp a, b
|
||||
jrnz lbegin_waitm3
|
||||
ld a, 20
|
||||
ldff(c), a
|
||||
ld a, 02
|
||||
ldff(ff), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ei
|
||||
|
||||
.text@1000
|
||||
lstatint:
|
||||
nop
|
||||
|
||||
.text@1032
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
ldff a, (0f)
|
||||
and a, 07
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
pop af
|
||||
ld(9800), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, a0
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
|
@ -0,0 +1,132 @@
|
||||
.size 8000
|
||||
|
||||
.text@48
|
||||
jp lstatint
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
80
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld b, 90
|
||||
call lwaitly_b
|
||||
ld hl, fea0
|
||||
xor a, a
|
||||
lbegin_fill_oam:
|
||||
dec l
|
||||
ld(hl), a
|
||||
jrnz lbegin_fill_oam
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
inc l
|
||||
inc l
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
ld a, b7
|
||||
ldff(40), a
|
||||
ld a, a6
|
||||
ldff(4b), a
|
||||
ld c, 41
|
||||
ld b, 03
|
||||
lbegin_waitm3:
|
||||
ldff a, (c)
|
||||
and a, b
|
||||
cmp a, b
|
||||
jrnz lbegin_waitm3
|
||||
ld a, 20
|
||||
ldff(c), a
|
||||
ld a, 02
|
||||
ldff(ff), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ei
|
||||
|
||||
.text@1000
|
||||
lstatint:
|
||||
nop
|
||||
|
||||
.text@1033
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
ldff a, (0f)
|
||||
and a, 07
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
pop af
|
||||
ld(9800), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, a0
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
|
@ -0,0 +1,132 @@
|
||||
.size 8000
|
||||
|
||||
.text@48
|
||||
jp lstatint
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
80
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld b, 90
|
||||
call lwaitly_b
|
||||
ld hl, fea0
|
||||
xor a, a
|
||||
lbegin_fill_oam:
|
||||
dec l
|
||||
ld(hl), a
|
||||
jrnz lbegin_fill_oam
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
inc l
|
||||
inc l
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
ld a, b7
|
||||
ldff(40), a
|
||||
ld a, a6
|
||||
ldff(4b), a
|
||||
ld c, 41
|
||||
ld b, 03
|
||||
lbegin_waitm3:
|
||||
ldff a, (c)
|
||||
and a, b
|
||||
cmp a, b
|
||||
jrnz lbegin_waitm3
|
||||
ld a, 20
|
||||
ldff(c), a
|
||||
ld a, 02
|
||||
ldff(ff), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ei
|
||||
|
||||
.text@1000
|
||||
lstatint:
|
||||
nop
|
||||
|
||||
.text@1034
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
ldff a, (0f)
|
||||
and a, 07
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
pop af
|
||||
ld(9800), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, a0
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
|
@ -0,0 +1,132 @@
|
||||
.size 8000
|
||||
|
||||
.text@48
|
||||
jp lstatint
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
80
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld b, 90
|
||||
call lwaitly_b
|
||||
ld hl, fea0
|
||||
xor a, a
|
||||
lbegin_fill_oam:
|
||||
dec l
|
||||
ld(hl), a
|
||||
jrnz lbegin_fill_oam
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
inc l
|
||||
inc l
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
ld a, b7
|
||||
ldff(40), a
|
||||
ld a, a6
|
||||
ldff(4b), a
|
||||
ld c, 41
|
||||
ld b, 03
|
||||
lbegin_waitm3:
|
||||
ldff a, (c)
|
||||
and a, b
|
||||
cmp a, b
|
||||
jrnz lbegin_waitm3
|
||||
ld a, 20
|
||||
ldff(c), a
|
||||
ld a, 02
|
||||
ldff(ff), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ei
|
||||
|
||||
.text@1000
|
||||
lstatint:
|
||||
nop
|
||||
|
||||
.text@1035
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
ldff a, (0f)
|
||||
and a, 07
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
pop af
|
||||
ld(9800), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, a0
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
|
139
test/hwtests/m0enable/enable_wxA6_2x_spxA7_ds_1_cgb04c_out2.asm
Normal file
139
test/hwtests/m0enable/enable_wxA6_2x_spxA7_ds_1_cgb04c_out2.asm
Normal file
@ -0,0 +1,139 @@
|
||||
.size 8000
|
||||
|
||||
.text@48
|
||||
jp lstatint
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 90
|
||||
call lwaitly_b
|
||||
ld hl, fea0
|
||||
xor a, a
|
||||
lbegin_fill_oam:
|
||||
dec l
|
||||
ld(hl), a
|
||||
jrnz lbegin_fill_oam
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
inc l
|
||||
inc l
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
ld a, b7
|
||||
ldff(40), a
|
||||
ld a, a6
|
||||
ldff(4b), a
|
||||
ld c, 41
|
||||
ld b, 03
|
||||
lbegin_waitm3:
|
||||
ldff a, (c)
|
||||
and a, b
|
||||
cmp a, b
|
||||
jrnz lbegin_waitm3
|
||||
ld a, 20
|
||||
ldff(c), a
|
||||
ld a, 02
|
||||
ldff(ff), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ei
|
||||
|
||||
.text@1000
|
||||
lstatint:
|
||||
nop
|
||||
|
||||
.text@1071
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
ldff a, (0f)
|
||||
and a, 07
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
pop af
|
||||
ld(9800), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, a0
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
|
139
test/hwtests/m0enable/enable_wxA6_2x_spxA7_ds_2_cgb04c_out2.asm
Normal file
139
test/hwtests/m0enable/enable_wxA6_2x_spxA7_ds_2_cgb04c_out2.asm
Normal file
@ -0,0 +1,139 @@
|
||||
.size 8000
|
||||
|
||||
.text@48
|
||||
jp lstatint
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 90
|
||||
call lwaitly_b
|
||||
ld hl, fea0
|
||||
xor a, a
|
||||
lbegin_fill_oam:
|
||||
dec l
|
||||
ld(hl), a
|
||||
jrnz lbegin_fill_oam
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
inc l
|
||||
inc l
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
ld a, b7
|
||||
ldff(40), a
|
||||
ld a, a6
|
||||
ldff(4b), a
|
||||
ld c, 41
|
||||
ld b, 03
|
||||
lbegin_waitm3:
|
||||
ldff a, (c)
|
||||
and a, b
|
||||
cmp a, b
|
||||
jrnz lbegin_waitm3
|
||||
ld a, 20
|
||||
ldff(c), a
|
||||
ld a, 02
|
||||
ldff(ff), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ei
|
||||
|
||||
.text@1000
|
||||
lstatint:
|
||||
nop
|
||||
|
||||
.text@1072
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
ldff a, (0f)
|
||||
and a, 07
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
pop af
|
||||
ld(9800), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, a0
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
|
139
test/hwtests/m0enable/enable_wxA6_2x_spxA7_ds_3_cgb04c_out2.asm
Normal file
139
test/hwtests/m0enable/enable_wxA6_2x_spxA7_ds_3_cgb04c_out2.asm
Normal file
@ -0,0 +1,139 @@
|
||||
.size 8000
|
||||
|
||||
.text@48
|
||||
jp lstatint
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 90
|
||||
call lwaitly_b
|
||||
ld hl, fea0
|
||||
xor a, a
|
||||
lbegin_fill_oam:
|
||||
dec l
|
||||
ld(hl), a
|
||||
jrnz lbegin_fill_oam
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
inc l
|
||||
inc l
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
ld a, b7
|
||||
ldff(40), a
|
||||
ld a, a6
|
||||
ldff(4b), a
|
||||
ld c, 41
|
||||
ld b, 03
|
||||
lbegin_waitm3:
|
||||
ldff a, (c)
|
||||
and a, b
|
||||
cmp a, b
|
||||
jrnz lbegin_waitm3
|
||||
ld a, 20
|
||||
ldff(c), a
|
||||
ld a, 02
|
||||
ldff(ff), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ei
|
||||
|
||||
.text@1000
|
||||
lstatint:
|
||||
nop
|
||||
|
||||
.text@1073
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
ldff a, (0f)
|
||||
and a, 07
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
pop af
|
||||
ld(9800), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, a0
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
|
139
test/hwtests/m0enable/enable_wxA6_2x_spxA7_ds_4_cgb04c_out2.asm
Normal file
139
test/hwtests/m0enable/enable_wxA6_2x_spxA7_ds_4_cgb04c_out2.asm
Normal file
@ -0,0 +1,139 @@
|
||||
.size 8000
|
||||
|
||||
.text@48
|
||||
jp lstatint
|
||||
|
||||
.text@100
|
||||
jp lbegin
|
||||
|
||||
.data@143
|
||||
c0
|
||||
|
||||
.text@150
|
||||
lbegin:
|
||||
ld a, 30
|
||||
ldff(00), a
|
||||
xor a, a
|
||||
ldff(ff), a
|
||||
inc a
|
||||
ldff(4d), a
|
||||
stop, 00
|
||||
ld b, 90
|
||||
call lwaitly_b
|
||||
ld hl, fea0
|
||||
xor a, a
|
||||
lbegin_fill_oam:
|
||||
dec l
|
||||
ld(hl), a
|
||||
jrnz lbegin_fill_oam
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
inc l
|
||||
inc l
|
||||
ld a, 10
|
||||
ld(hl), a
|
||||
inc l
|
||||
ld a, a7
|
||||
ld(hl), a
|
||||
ld a, b7
|
||||
ldff(40), a
|
||||
ld a, a6
|
||||
ldff(4b), a
|
||||
ld c, 41
|
||||
ld b, 03
|
||||
lbegin_waitm3:
|
||||
ldff a, (c)
|
||||
and a, b
|
||||
cmp a, b
|
||||
jrnz lbegin_waitm3
|
||||
ld a, 20
|
||||
ldff(c), a
|
||||
ld a, 02
|
||||
ldff(ff), a
|
||||
xor a, a
|
||||
ldff(0f), a
|
||||
ei
|
||||
|
||||
.text@1000
|
||||
lstatint:
|
||||
nop
|
||||
|
||||
.text@1074
|
||||
ld a, 08
|
||||
ldff(41), a
|
||||
ldff a, (0f)
|
||||
and a, 07
|
||||
jp lprint_a
|
||||
|
||||
.text@7000
|
||||
lprint_a:
|
||||
push af
|
||||
ld b, 91
|
||||
call lwaitly_b
|
||||
xor a, a
|
||||
ldff(40), a
|
||||
pop af
|
||||
ld(9800), a
|
||||
ld bc, 7a00
|
||||
ld hl, 8000
|
||||
ld d, a0
|
||||
lprint_copytiles:
|
||||
ld a, (bc)
|
||||
inc bc
|
||||
ld(hl++), a
|
||||
dec d
|
||||
jrnz lprint_copytiles
|
||||
ld a, c0
|
||||
ldff(47), a
|
||||
ld a, 80
|
||||
ldff(68), a
|
||||
ld a, ff
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
xor a, a
|
||||
ldff(69), a
|
||||
ldff(69), a
|
||||
ldff(43), a
|
||||
ld a, 91
|
||||
ldff(40), a
|
||||
lprint_limbo:
|
||||
jr lprint_limbo
|
||||
|
||||
.text@7400
|
||||
lwaitly_b:
|
||||
ld c, 44
|
||||
lwaitly_b_loop:
|
||||
ldff a, (c)
|
||||
cmp a, b
|
||||
jrnz lwaitly_b_loop
|
||||
ret
|
||||
|
||||
.data@7a00
|
||||
00 00 7f 7f 41 41 41 41
|
||||
41 41 41 41 41 41 7f 7f
|
||||
00 00 08 08 08 08 08 08
|
||||
08 08 08 08 08 08 08 08
|
||||
00 00 7f 7f 01 01 01 01
|
||||
7f 7f 40 40 40 40 7f 7f
|
||||
00 00 7f 7f 01 01 01 01
|
||||
3f 3f 01 01 01 01 7f 7f
|
||||
00 00 41 41 41 41 41 41
|
||||
7f 7f 01 01 01 01 01 01
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7e 7e 01 01 01 01 7e 7e
|
||||
00 00 7f 7f 40 40 40 40
|
||||
7f 7f 41 41 41 41 7f 7f
|
||||
00 00 7f 7f 01 01 02 02
|
||||
04 04 08 08 10 10 10 10
|
||||
00 00 3e 3e 41 41 41 41
|
||||
3e 3e 41 41 41 41 3e 3e
|
||||
00 00 7f 7f 41 41 41 41
|
||||
7f 7f 01 01 01 01 7f 7f
|
||||
|
Loading…
x
Reference in New Issue
Block a user