Skip to content
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

VDU command crashes hard on VDU 23 & VDU 25 #19

Closed
ukscone opened this issue Feb 22, 2023 · 4 comments
Closed

VDU command crashes hard on VDU 23 & VDU 25 #19

ukscone opened this issue Feb 22, 2023 · 4 comments
Labels
bug Something isn't working

Comments

@ukscone
Copy link

ukscone commented Feb 22, 2023

1 parameter VDU functions such as CLS seem to be fine but errors in the VDU 23 & VDU 25 (think it's the ;'s) cause the Agon to freeze up such that a warm boot doesn't work and needs to be power cycled either by pulling the plug or pressing the reset button. Sometime it seems that correct VDU 23 & VDU 25 also freeze up too but can't confirm that 100% yet

@breakintoprogram breakintoprogram added the bug Something isn't working label Mar 29, 2023
@breakintoprogram
Copy link
Owner

breakintoprogram commented Mar 29, 2023

No safeguards on badly formed VDU commands.
To replicate:

  • Type VDU 23 or VDU 25 either in BASIC or MOS

@breakintoprogram
Copy link
Owner

OK, getting stuck waiting for a VDP protocol that may not come back

// Get the current screen dimensions from the VDU
//
void getModeInformation() {
	vpd_protocol_flags &= 0xEF;					// Clear the semaphore flag
	putch(23);
	putch(0);
	putch(VDP_mode);
	while((vpd_protocol_flags & 0x10) == 0);	// Wait until the semaphore has been set
}

It's the last while that's the problem. Need to put a timeout in there as a minimum, possibly a retrry.

@breakintoprogram
Copy link
Owner

Added timeout to MOS - just need to add timeouts to VDP now.

@breakintoprogram
Copy link
Owner

All possible interactive VDU statements in VDP now timeout if incomplete data is sent to them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Released
Development

No branches or pull requests

2 participants