Using the BASIC Configuration File on Tech BASIC 5.0: GVG / last modified 26 October 1986 The BASIC 5.0 release for the IPC-V includes a capability that customers who upgraded from BASIC 1.0.x may not be aware of: they can now set parameters for BASIC to configure its operating characteristics - using a configuration file named ".bsc_config". This file must be stored in the directory from which the user calls BASIC ... allow me to illustrate. I have an IPC with a hard disc, and BASIC in ROM. The "home directory" that I usually operate out of is called "/usr/desk". To run BASIC, I type in: "/rom/basic"; in this case, BASIC will only find ".bsc_config" if it is stored in "/usr/desk". By the way, since ".bsc_config" has a leading "." in its name, it is an invisible file; it can't be seen in PAM and the only way to find it is use the "ls -a" (list all) command. The ".bsc_config" file contains four integers: The first integer gives the number of lines a user can deal with at one time in the BASIC window. Normally, BASIC allows the user to list and edit programs 32 lines at a time; this first number allows the user to specify a larger or smaller number. The second integer allows the user to allocate memory for BASIC programs. This requires a little explanation. When BASIC is invoked, it comes up with NO memory for loading a program. If a user then brings in a program, BASIC will allocate more memory for the program - as long as BASIC can find more memory CONTIGUOUS to the memory it was given initially. (The operating system may relocate the interpreter in memory to find a large enough block of contiguous memory.) Normally, that isn't a problem, since usually a user will load a BASIC program immediately after bringing up BASIC. However, if the user brings up BASIC, brings up another program (like, say, MemoMaker), and then tries to load a big BASIC program, BASIC will not be able to find more contiguous memory and will give a memory overflow error message. The second integer allows the user to allocate enough memory to bypass this problem. (The default value for this integer is 0.) The third integer specifies the line length for BASIC; it performs the same function as the CRT IS command ... which I need to explain before I go any further. Normally, the BASIC interpreter regards a line as 80 characters long; a user can change the line to its maximum length with CRT IS: CRT IS 1,160 - and change it back with: CRT IS 1,80 This third integer does exactly the SAME thing. The user can specify "160" to give the maximum line length, or "80" to specify the default value. (There really isn't any reason to use other values.) The fourth item is useful for those doing interrupt I/O transfers through an I/O buffer memory, and who want to monitor the progress of the transfer by checking the I/O buffer "fill pointer". However, by default, BASIC only updates the fill pointer every 256 bytes. The fourth number allows the user to specify fill pointer updates at any rate from 2 bytes per update to 2048 bytes per update. (Note that frequent updates may decrease I/O throughput.) For an example of ".bsc_config", if I want to edit 100 lines at a time, reserve 256 kilobytes of memory for a BASIC program, set the long line length, and specify that the I/O buffer count be adjusted with every two bytes transferred, I would create the ".bsc_config" file with the following values: 100 256 160 2 If a user wants to use ".bsc_config", but doesn't want to change some of the defaults, the default values should be used; ALL four numbers must to be specified in the file.