The use of defined subroutines and functions should reduce the need to add specialized features to MMBasic. For instance, there have been a few requests to add bit shifting functions to the language. Now you can do that yourself… this is the right shift function:
1 2 3 4 |
Function RShift(nbr, bits) If nbr < 0 or bits < 0 THEN ERROR "Invalid argument" RShift = nbr\(2^bits) End Function |
You can now use this function as if it is a part of the language:
1 2 |
a = &b11101001 b = RShift(a, 3) |
After running this fragment of code the variable b would have the binary value of 11101.
The defined subroutine and function is intended to be a portable lump of code that you can insert into any program. This is why MMBasic has the LIBRARY command which allows you to load files containing user defined subroutines and functions into memory. These functions/subroutines are then available to the running program and are indistinguishable from the built-in commands and functions.
So, it would be easy to create a library of bit manipulation functions like that described above and load them within any program that might need them. The same for specialized maths functions, drivers for special hardware and so on.
Leave a Reply