Like the current Dr Who series with fixed moments in time, MWBASIC has also needed to grow its fixed ROM entry points.
This is to accommodate poor programming habits from 1st party & 3rd party software with their quest to improve performance, save space or both.
Here is an example list used as by the TELCOM ROM:
8245 SKIP_SPACES
8360 BIN2DEC
8761 TEXT2FLOAT
8BEC FLOAT_CALCSTACK_ADJUST_FOR_SDLENGTH
8C00 FLOAT_CALC_DESTADDR
8E2A FLOAT_PRINT
A1F0 MWB_ERROR_SYNTAX
A3E9 IO_DRV_KB_INKEY
A50A IO_DRV_KB_KEYPOLL
A62F IO_DRV_VDU_PUTCH
A7AD IO_DRV_CRTC_CURSOR_HIDE
A80F IO_DRV_PCG_INVERSE
AAAF TAPE_SCRATCH_CLEAR
B5F8 IO_DRV_PIO_USERPORT_OUT
The issue was exacerbated with WildCards Vol.1 where the published their own list of such entry points.
Chickenman identified a version of BASIC (6.28e) back in 1987 where one of these unofficial entry points drifted of their address and caused a bit of havoc. You can read about in 1987's Catcher Vol 5 No 7.
This is to accommodate poor programming habits from 1st party & 3rd party software with their quest to improve performance, save space or both.
Here is an example list used as by the TELCOM ROM:
8245 SKIP_SPACES
8360 BIN2DEC
8761 TEXT2FLOAT
8BEC FLOAT_CALCSTACK_ADJUST_FOR_SDLENGTH
8C00 FLOAT_CALC_DESTADDR
8E2A FLOAT_PRINT
A1F0 MWB_ERROR_SYNTAX
A3E9 IO_DRV_KB_INKEY
A50A IO_DRV_KB_KEYPOLL
A62F IO_DRV_VDU_PUTCH
A7AD IO_DRV_CRTC_CURSOR_HIDE
A80F IO_DRV_PCG_INVERSE
AAAF TAPE_SCRATCH_CLEAR
B5F8 IO_DRV_PIO_USERPORT_OUT
The issue was exacerbated with WildCards Vol.1 where the published their own list of such entry points.
Chickenman identified a version of BASIC (6.28e) back in 1987 where one of these unofficial entry points drifted of their address and caused a bit of havoc. You can read about in 1987's Catcher Vol 5 No 7.