Hey guys. Need some help with this one...
In particular, this one is focused on the internals of Extended BASIC, So I know we have some guru's around here on the subject. (Hey Rich!) I'm disappointed that the TI Tech pages fail to have any memory dumps or extensive exploration of the Extended BASIC cartridge.
I forget where I got it from, but I found this method long ago to execute the start of an EA option #5 program through Extended BASIC:
100 F$="DSK1.PROG" :: ON ERROR 200 110 CALL INIT :: CALL LOAD(8196,251,214) :: CALL LINK("OPT5",F$) 200 PRINT "DEVICE ERROR!":"CORRECT AND PRESS A KEY" 210 CALL KEY(0,K,S) :: IF S=0 THEN 210 ELSE RETURN 100
Clearly it's linking to some subprogram that's part of Extended BASIC's initializations called OPT5... I'm not sure why it's loading >FBD6 to >2004, but I presume it's over-writing a utility vector of some kind, the value there upon INIT is >4000 initially.
Anyway, this method works fine with most option 5 programs, but fails with my CRPG loader.... Probably because I'm placing my load program in low memory. I have it at the >3000 mark, so it should be preserving the part of low RAM it needs, but it still fails and just cycles endlessly.
Can anyone describe exactly what the above routine is doing, and if there's anything I can do to make it work? I could see the XB utility only working in high memory, so I suppose in that case I'll just have to embed the assembly code using SYSTEX and execute it directly...