Higgins ZX Spectrum Emulator 8.10 alpha 3 available
Please write us to report a bug or request a feature.
Гениально !!!
пропал реальный глюк в бейсике.
10 PRINT 6
20 GOTO 10
RUN
раньше цикле так в десятом выдавал какой-нибудь глюк типа NONSENCE IN BASIC.
Теперь как часы - сколько не крути !!!
Но загрузчик автоматически пока не стартует - только со второго раза.
Последний раз редактировалось Lisitsin; 28.05.2014 в 08:11.
Higgins ZX Spectrum Emulator 8.10 alpha 3 available
Please write us to report a bug or request a feature.
В работе. А все 16-битные ADD, ADC, SBC так себя ведут, и что при этом происходит с флагом S ?
Спасибо ...
Higgins ZX Spectrum Emulator 8.10 alpha 3 available
Please write us to report a bug or request a feature.
Приветствую.
А ADD HL,rr копируют биты 3, 4 из старшего байта результата после операции сложения или из H до операции сложения? И ещё: я читал, что BIT 7,r влияет на S, копируя в него седьмой бит тестируемого байта. Правда ли сие? А остальные BIT n,r на него не влияют? Это я начитался "Z80 Undocumented Features (in software behaviour)" By Sean Young (sean@msxnet.org) (приложение)
Последний раз редактировалось Lisitsin; 28.05.2014 в 08:11.
А что такое результат до операции сложения?
ADD копирует биты 3 и 5 из старшей половины результата сложения. Разумеется, после самого сложения.
Да, "BIT 7, ..." копирует старший бит в S и остальные не влияют. То есть инструкции "BIT" ведут себя так, как если бы сначала формировалась битовая маска с взведенным разрядом в указанной позиции, которая затем применялась бы к операнду инструкции. Тогда в случае сброшенного тестируемого разряда получаем взведенные ZF (в результате применения маски получаем ноль) и PF (количество взведенных разрядов равно нулю, то есть их количество условно четно). А если тестируемый разряд взведен и это старший (знаковый) разряд, тогда взводится SF.
Хороший документ.
Higgins ZX Spectrum Emulator 8.10 alpha 3 available
Please write us to report a bug or request a feature.
А у Sean Young по поводу битов 5 и 3 при ADD HL,rr я читаю:ADD HL,xx (use high byte of HL, i.e. H, before the addition) - типа до сложения. Или у меня ещё и с английским туговато?
Последний раз редактировалось Lisitsin; 28.02.2011 в 19:07.
Полностью это выглядит так:
То есть "BIT n, (HL)" устанавливает P, Z и S как прочие инструкции "BIT", но флаги 3 и 5 устанавливает по-другому. И это правильно.BIT n,(HL) *Z*1**0-
P/V, Z, S set as the other BIT instructions, but the 5 and 3 flags are
different. Okay, brace yourself. They are a copy of an internal register of
the Z80, which is set as follows:
ADD HL,xx (use high byte of HL, i.e. H, before the addition)
Однако то, что говорится о самом внутреннем регистре не верно. Во-первых, читая эти слова можно подумать, что внутренний регистр 8-разрядный. Это не так, и "BIT n, (HL)" копирует биты 3 и 5 из старшей половины 16-разрядного внутреннего регистра, MEMPTR.
Во-вторых, "ADD HL, ..." присваивает внутреннему регистру не старшую половину H до сложения, а увеличенное на единицу значение HL. Это происходит действительно до сложения (то есть до копирования результата сложения в HL), но здесь речь идет не о выставлении флагов 3 и 5, а о значении MEMPTR после исполнения "ADD HL, ...". Сама эта инструкция -- "ADD HL, ..." -- копирует во флаги 3 и 5 соответствующие разряды старшей половины результата сложения.
К слову, это относится только к "BIT n, (HL)", но не к "BIT n, (i+d)", которые копируют 3 и 5 биты адреса (i+d) в F.
Higgins ZX Spectrum Emulator 8.10 alpha 3 available
Please write us to report a bug or request a feature.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)