-
-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Undocumented Opcode Build Option #133
base: v2.1
Are you sure you want to change the base?
Conversation
Hi @lfantoniosi, thanks for your contribution. I'd like to request some changes, please:
3.1. Move the
3.2. Change the usage of the two macros that replace
Please ping me once you have addresses these changes. |
Hi @lfantoniosi, another thing I just noticed: your pull request includes changes in the |
hi, but there are few
ld iyl,1
how the macro should be in this case ?
…On Sat, Nov 18, 2023 at 12:00 PM Néstor Soriano ***@***.***> wrote:
Hi @lfantoniosi <https://github.com/lfantoniosi>, thanks for your
contribution. I'd like to request some changes, please:
1. Move the addition of the WonderTANG cartridge driver to a separate
pull request, to keep this one focused in the
undocumented-opcode-free-build feature exclusively.
2. Create a separate macro for each instruction, make the macro names
lowercase, and remove the comment indicating the replaced instruction. This
will increase the number of macros but will also make the code more
readable. So e.g. instead of LD_N_IYH a ;ld a,iyh it would be simply
ld_a_iyh, and the same for the other register combinations.
3. The code that is relocated in drv.mac can't go into 7BD0h, since as
the comment in the preceding line says, "Here goes the 1K free area at the
end of banks 0 and 3". An alternative could be the following (I haven't
tested these changes so please double check):
3.1. Move the IS_EMU routine to immediately before the ALIGN 7850h line,
and use HL instead of IY to make the code shorter:
IS_EMU:
push hl
ld hl,(DVB_TABLE##)
bit 7,(hl)
pop hl
scf
ret nz
ccf
ret
3.2. Change the usage of the two macros that replace ld a,iyh - or iyl to
the following (saves four consecutive ex (sp) instructions), you can do
this too in other places where there are two consecutive undocumented
instructions:
ifdef DISABLE_UNDOCUMENTED_OPCODES
ex (sp),iy
ex (sp),hl
ld a,h
or l
ex (sp),hl
ex (sp),iy
else
ld a,iyh
or iyl
endif
1. The "How to build Nextor" section of the README.md file should
mention the new opcode-free build option. I can add this myself if you want.
Please ping me once you have addresses these changes.
—
Reply to this email directly, view it on GitHub
<#133 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCJWU4SKCK6IKFP56VFFHDYFEHUTAVCNFSM6AAAAAA66QSUBOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJXGYZDAMBXGM>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Luis Felipe Antoniosi
|
Check my last commit: 26782a9 thxs |
In that particular case, yes, a |
Allow to build nextor and drives without undocumented op-codes to allow it to run in Z180 machines like Victor HC-95.
Related discussion: https://www.msx.org/forum/msx-talk/development/i-made-an-undoc-op-free-nextor-build
Tang driver for WonderTANG cartridge: https://github.com/lfantoniosi/WonderTANG