Fixed the problem of freezing when outputting line feeds to the console on MSX-DOS in Kanji display mode.#2634
Merged
suborb merged 1 commit intoz88dk:masterfrom Oct 24, 2024
miyamoto999:master
Merged
Fixed the problem of freezing when outputting line feeds to the console on MSX-DOS in Kanji display mode.#2634suborb merged 1 commit intoz88dk:masterfrom miyamoto999:master
suborb merged 1 commit intoz88dk:masterfrom
miyamoto999:master
Conversation
…for MSX-DOS freezes when executed on DOS with Kanji display enabled.
Member
|
Thank you for the contribution and fix. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On MSX2+ or later models, start in MSX-DOS, use the BASIC command to start BASIC, then execute CALL KANJI to enter Kanji display mode. Then, when executing CALL SYSTEM to return to DOS and execute a program that outputs a newline to the console, it freezes.
When '\n' is output in fputc_cons_native, 0x0a and 0x0d are called twice in BIOS CHPUT by interslot call. fputc_cons_native sets the address of CHPUT in the IX register only before the first CHPUT. CHPUT does not change the IX register in ANK mode, but in Kanji display mode, the IX register is changed. Therefore, the second call to CHPUT will fail.
Before the second CHPUT, the address of the CHPUT is changed to set the address of the CHPUT in the IX register.