How to intercept hardware error handling under DOS2 in BASIC calling F37D

By Eugeny_Brychkov

Paragon (1169)

Eugeny_Brychkov's picture

01-08-2020, 22:00

See subject. Setting F323 does not work (it is DOS1 error handler). Setting F300 does not work too as when entering BDOS system resets my custom vector back to its own. Function 63h says that it does not work when calling F37D from BASIC environment. The purpose for interception is that I need to perform a task (shut MCU command down) before terminating the disk I/O access to BASIC.

Login or register to post comments

By Eugeny_Brychkov

Paragon (1169)

Eugeny_Brychkov's picture

06-08-2020, 21:22

Implemented successfully. F323 and F325 work, my difficulty was that code was running from the Nextor ROM drive page. It is not possible to use $SECBUF to store data as it is temporarily used by the kernel to load FAT.
Thus solution was to allocate the space for code, FCB and one sector out of stack checking F6C6 allowing minimum of 0a0h bytes free for the remaining stack (took this value from the BASIC interpreter).