Konamiman / Nextor

A disk operating system for MSX computers, forked from MSX-DOS 2.31
Other
183 stars 33 forks source link

Pressing CTRL-STOP on initialization or OS load hangs/reboots the system #1

Closed Eugeny1 closed 5 years ago

Eugeny1 commented 5 years ago

Simple test: create AUTOEXEC.BAT with contents "basic autoexec.bas", and then create AUTOEXEC.BAS file with contents "10 defusr=0:a=usr(0)". This will cause machine to reboot in loop.

When Nextor initializes or loads the NEXTOR.SYS press CTRL-STOP, and machine misbehaves - may hang or reboot.

Problem is not present in MSX-DOS2 as far as I tested, DOS2 properly handles CRTL-STOP by "eating" some display characters (displaying "SX DOS version ..." instead of full "MSX DOS version ...", but saying "***Crtl-STOP pressed" and "Terminate batch file (Y/N)?".

This issue should be very closely related to the one I reported some time ago: when you load OS and run PING.COM, and press CTRL-STOP instead of any other key when it asks, PING terminates abnormally and any subsequent DOS command gives "Redirection error: xxx" where xxx is a garbage characters.

That time I have troubleshooted this PING issue to the PING not restoring original slot in CPU bank 1 (4000-7FFF) before calling CHGET BDOS routine, thus when CHGET gets break character, it jumps to abortion routine, and it then jumps to CPU bank 1 which has incorrect slot and thus unexpected code in it. Either application (PING) must restore slots before making ANY BDOS calls, or abnormal termination routine must ensure that slots are restored before jumping.

I use version with "Nextor BASIC version 2.01 beta 1 2018.03.20", but it was confirmed that issue is present in latest build.

Here's the screen shot for PING issue. 061020184559-800x600