dilwyn wrote: Fri Mar 14, 2025 9:20 pm
Good news. If it was a simple fix, could we see an example piece of code of how you worked around this?
You have to declare a new function:
Code: Select all
31520 DEFine FuNction _HOME_DIR$
31530 LOCal ads
31540 ads=BASIC_ADR(BASIC_INDEX%("HOME_DIR$"))
31550 IF ads <> 0 THEN POKE_L TURBO_V(TURBO_DUMMY$),ads: ELSE RETurn "win1_qlc227_": END IF
31560 :
31570 RETurn TURBO_DUMMY$
31580 :
31590 END DEFine _HOME_DIR$
31600 :
In main program then you call _HOME_DIR$
On Minerva, line 31540 checks that Home_Dir$ doesn't exists in the name table, so at next line will return what is on ELSE
On SMSQE, line 31540 checks that Home_Dir$ exists in the name table, so it swaps the address of TURBO_DUMMY$ with the address of the actual Home_Dir$, so Home_Dir$ gets executed !
It's all documented in Simon's QL Turbo Manual, with examples, in CHAPTER S - ERROR TRAPPING AND RECOVERY, DEBUG and TURBO_V - Turbo_V section, pages 78 to 80.
The hard part is to pay attention to what you read and then cross-reference it with Simon's QL Turbo Toolkit User Manual.
There, in chapter 7, page 22, you find that BASIC_INDEX% is case sensitive and, for example "Home_Dir$" will not match "HOME_DIR$" !!!
dilwyn wrote: Fri Mar 14, 2025 9:20 pm
Any questions on Turbo, Andrew's your man. Not only read the manual, but read it 10 times
Not really. I'm sure there are many more knowlegeable, but probably they were too busy or too modest to reply to this thread.