Hi Andrew
I have yet to try running your file-manager, but have been successful in compiling with Turbo - at least as far as no compilation errors.
One of the more confusing topics when moving from interpreted to Turbo'd SB is how Arrays are passed as parameters.
Turbo can't handle passing Arrays 'by value' which is how it handles all other parameters by default - unless explicitly flagged as 'by reference' using the REFERENCE directive immediately before the DEFine with the formal parameter list including the array.
I count 10 such instances in your source-code all referencing FileList$, and by adding the following directive in front of each PROC/FN, Turbo happily compiles without error:
As you'll read in the Turbo manual, the three '0' indices are just place-holders, indicating the dimensions of the expected array-parameter - the actual values are ignored and only the number of indices are counted.
Nice manual - I look forward to trying out the program later.
====
Another tip when preparing your SB program for Turbo is to add standard directives at the beginning - the following are examples:
Code: Select all
1000 REMark *** TURBO Directives...
1010 TURBO_locstr "R"
1020 TURBO_windo 2
1030 TURBO_optim "B"
1040 TURBO_model 1
1050 TURBO_struct "S"
1060 TURBO_diags "I"
1070 TURBO_list "YES"
1080 TURBO_sound "YES"
1090 TURBO_objdat 16
1100 TURBO_buffersz 16
1110 TURBO_objstk 512
1120 TURBO_taskn "QLC v0.9a"
1130 TURBO_objfil "ram1_QLC_QLC_v09a_exe"
1140 TURBO_repfil "dos2_QLC_QLC_v09a_rpt.txt"
The 'windo' directive of zero can be useful when you intend to OPEN and define all your own windows (rather than copying Job-0's three standard windows). Also, if you typically prepare your programs in an emulator (QPC, for example) and compile there with larger windows, you will likely hit problems running the compiled job in another environment (e.g. a real QL) with smaller displays unless you choose NOT to copy SB windows (with windo 0) or else first reduce the emulator's windows to be within the standard sizes before CHARGE'ing.
God luck!