I have now tested my test program for hps_openOver()-function in a MultiBASIC (SBASIC) job (not 0,0) and there it is working (all tests passed). I will now delete parts of the program (SB-Library) where the (fatal SB-Interpreter) error occures to find out, what the problem is.
First result: The following program crashes SBASIC (MultiBASIC; not even CTRL-SPACE is working) but runs in first SBASIC (0,0) job (load program and then enter: test):
Code: Select all
1 REMark hps_slb - my (hps) SuperBasic Library
2 REMark ^^^ ^ ^ ^
3 REMark Last updated 2025-02-12 Wed
9 :
10 REMark GO TO 32752 is used instead of STOP, which may have problems on some VER$
19 :
20 REMark Required Toolkits:
21 REMark SuperToolkit II, TurboToolkit
40 REMark EDLINE$ function improved from me (hps), see:
41 REMark http://peter-sulzer.bplaced.net/htdocs/index.php?pagefile=ql%2fqldownloadEN.php
90 :
98 REMark U N D E R C O N S T R U C T I O N !
99 :
100 REMark Following line eventually needed (delete if not needed):
101 c%=1:f%=4:REMark c%: Console channel - f%: File channel
19996 :
20000 REMark Library procedures and functions
20004 REMark Required: SuperToolkit II, TurboToolkit
20008 :
20100 DEFine PROCedure test
20110 PRINT 'In PROCedure "test"'
20120 END DEFine
20588 :
20592 DEFine FuNction hps_openOver%(c%,fnam$):REMark Opens device for writing
20596 REMark Commented function and tests see in SUPERBASIC_DIRECTORY_test_
20600 REMark (e.g. WIN1_home_hps_bas_test_) the file hpsOpenOver_bas.
20604 :
20608 IF DEVICE_STATUS(0,fnam$)>=0:DELETE fnam$
20612 IF DEVICE_STATUS(1,DATAD$&fnam$)>=0:RETurn -15:REMark A fully qualified
20616 REMark filename must be passed to this function!
20620 RETurn FOP_NEW(#c%,fnam$)
20624 END DEFine :REMark hps_openOver()
32750 :
32751 REMark Use GO TO 32752 instead of STOP. STOP may not work on all ROM versions!)
32752 REMark END OF PROGRAM (NO LINES MUST follow, some ROMs may not allow line numbers >= 32752!
It seems the MultiBASIC of SMSQ/E is not as stable as the one of Minerva. I cannot remember (in my old days, where I have had just Minerva), that there were such problems.
EDIT: If I change the first parameter of hps_openOver() (c%) to just c (i.e. a floating point variable instead of an integer) then the procedure "test" works also in an SMSQ/E MultiBASIC job. Strange...