Type your ugBASIC program here (remember: keywords like PRINT must be UPPERCASE!).
Click on Build menu to select the target: you will download the compiled binary file!

PROCEDURE example ON ALL BUT VIC20 CLS ' ****************************************************************** ' ******** destination: signed byte ******************************** ' ****************************************************************** DIM sb AS SIGNED BYTE ' source underflow -> destination underflow ' ' -42 = 11010110 -> 11010110 -> -42 sb = -42 PRINT "signed byte(-42) = "; sb; " (exp ";"-42";" )" ' source overflow [with unsigned byte] -> destination approximation ' ' 200 = 11001000 -> 01001000 -> +72 sb = 200 PRINT "signed byte(200) = "; sb; " (exp ";"72";" )" ' source overflow [with signed word] -> destination approximation ' ' -500 = 1111111000001100 -> 000111110100 -> 11110100 -> -116 sb = -500 PRINT "signed byte(-500) = "; sb; " (exp ";"-116";" )" ' source overflow [with unsigned word] -> destination approximation ' ' 20000 = 0100111000100000 -> 00100000 -> +32 sb = 20000 PRINT "signed byte(20000) = "; sb; " (exp ";"32";" )" ' source overflow [with signed dword] -> destination approximation ' ' -100500 = 11111111111111100111011101101100 -> 00011000100010010100 -> 10010100 sb = -100500 PRINT "signed byte(-100500) = "; sb; " (exp ";"-20";" )" ' source overflow [with unsigned dword] -> destination approximation sb = 10020000 PRINT "signed byte(10020000) = "; sb; " (exp ";"32";" )" ' ****************************************************************** ' ****************************************************************** ' ****************************************************************** WAIT KEY RELEASE : PRINT ' ****************************************************************** ' ******** destination: unsigned byte ****************************** ' ****************************************************************** DIM b AS BYTE ' source underflow -> destination underflow ' ' 42 = 11010110 -> 11010110 -> 42 b = 42 PRINT "byte(42) = "; b; " (exp ";"42";" )" ' source overflow [with unsigned byte] -> destination unsigned ' ' -42 = 11010110 -> 01001000 -> +42 b = -42 PRINT "byte(-42) = "; b; " (exp ";"42";" )" ' source overflow [with signed word] -> destination approximation ' ' -500 = 1111111000001100 -> 000111110100 -> 11110100 -> -116 b = -500 PRINT "byte(-500) = "; b; " (exp ";"12";" )" ' source overflow [with unsigned word] -> destination approximation ' ' 20000 = 0100111000100000 -> 00100000 -> +32 b = 20000 PRINT "byte(20000) = "; b; " (exp ";"32";" )" ' source overflow [with signed dword] -> destination approximation ' ' -100500 = 11111111111111100111011101101100 -> 00011000100010010100 -> 10010100 b = -100500 PRINT "byte(-100500) = "; b; " (exp ";"148";" )" ' source overflow [with unsigned dword] -> destination approximation b = 10020000 PRINT "byte(10020000) = "; b; " (exp ";"160";" )" ' ****************************************************************** ' ****************************************************************** ' ****************************************************************** WAIT KEY RELEASE : PRINT ' **************************************************************** ' ******** destination: signed word ****************************** ' **************************************************************** DIM sw AS SIGNED WORD ' source underflow -> destination underflow ' ' 42 = 11010110 -> 11010110 -> 42 sw = 42 PRINT "signed word(42) = "; sw; " (exp ";"42";" )" ' source underflow [with unsigned byte] -> destination underflow ' ' -42 = 11010110 -> -42 sw = -42 PRINT "signed word(-42) = "; sw; " (exp ";"-42";" )" ' source underfow [with signed word] -> destination underflow ' ' -500 = 1111111000001100 -> -500 sw = -500 PRINT "signed word(-500) = "; sw; " (exp ";"-500";" )" ' source overflow [with unsigned word] -> destination approximation ' ' 40000 = 0100111000100000 -> 00100000 -> 7232 sw = 40000 PRINT "signed word(40000) = "; sw; " (exp ";"7232";" )" ' source overflow [with signed dword] -> destination approximation ' ' -100500 = 11111111111111100111011101101100 -> 00011000100010010100 -> 10010100 sw = -100500 PRINT "signed word(-100500) = "; sw; " (exp ";"-2196";" )" ' source overflow [with unsigned dword] -> destination approximation sw = 10020000 PRINT "signed word(10020000) = "; sw; " (exp ";"25760";" )" ' ****************************************************************** ' ****************************************************************** ' ****************************************************************** WAIT KEY RELEASE : PRINT ' ****************************************************************** ' ******** destination: unsigned word ****************************** ' ****************************************************************** DIM w AS WORD ' source underflow -> destination underflow ' ' 42 = 11010110 -> 11010110 -> 42 w = 42 PRINT "word(42) = "; w; " (exp ";"42";" )" ' source underflow [with unsigned byte] -> destination underflow ' ' -42 = 11010110 -> -42 w = -42 PRINT "word(-42) = "; w; " (exp ";"42";" )" ' source underfow [with signed word] -> destination underflow ' ' -500 = 1111111000001100 -> -500 w = -500 PRINT "word(-500) = "; w; " (exp ";"500";" )" ' source overflow [with unsigned word] -> destination underflow ' ' 40000 = 0100111000100000 -> 00100000 -> 7232 w = 40000 PRINT "word(40000) = "; w; " (exp ";"40000";" )" ' source overflow [with signed dword] -> destination approximation ' ' -100500 = 11111111111111100111011101101100 -> 00011000100010010100 -> 10010100 w = -100500 PRINT "word(-100500) = "; w; " (exp ";"30752";" )" ' source overflow [with unsigned dword] -> destination approximation w = 10020000 PRINT "word(10020000) = "; w; " (exp ";"58528";" )" ' ****************************************************************** ' ****************************************************************** ' ****************************************************************** WAIT KEY RELEASE : PRINT ' ***************************************************************** ' ******** destination: signed dword ****************************** ' ***************************************************************** DIM dw AS SIGNED DWORD ' source underflow -> destination underflow ' ' 42 = 11010110 -> 11010110 -> 42 dw = 42 PRINT "signed dword(42) = "; dw; " (exp ";"42";" )" ' source underflow [with unsigned byte] -> destination underflow ' ' -42 = 11010110 -> -42 dw = -42 PRINT "signed dword(-42) = "; dw; " (exp ";"-42";" )" ' source underfow [with signed word] -> destination underflow ' ' -500 = 1111111000001100 -> -500 dw = -500 PRINT "signed dword(-500) = "; dw; " (exp ";"-500";" )" ' source underflow [with unsigned word] -> destination underflow ' ' 40000 = 0100111000100000 -> 00100000 -> 7232 dw = 40000 PRINT "signed dword(40000) = "; dw; " (exp ";"40000";" )" ' source underflow [with signed dword] -> destination underflow ' ' -100500 = 11111111111111100111011101101100 -> 00011000100010010100 -> 10010100 dw = -100500 PRINT "signed dword(-100500) = "; dw; " (exp ";"-100500";" )" ' source underflow [with unsigned dword] -> destination approximation dw = 10020000 PRINT "signed dword(10020000) = "; sw; " (exp ";"25760";" )" ' ****************************************************************** ' ****************************************************************** ' ****************************************************************** WAIT KEY RELEASE : PRINT ' ****************************************************************** ' ******** destination: unsigned word ****************************** ' ****************************************************************** DIM udw AS DWORD ' source underflow -> destination underflow ' ' 42 = 11010110 -> 11010110 -> 42 udw = 42 PRINT "unsigned dword(42) = "; udw; " (exp ";"42";" )" ' source underflow [with unsigned byte] -> destination underflow ' ' -42 = 11010110 -> -42 udw = -42 PRINT "unsigned dword(-42) = "; udw; " (exp ";"42";" )" ' source underfow [with signed word] -> destination underflow ' ' -500 = 1111111000001100 -> -500 udw = -500 PRINT "unsigned dword(-500) = "; udw; " (exp ";"500";" )" ' source underflow [with unsigned word] -> destination underflow ' ' 40000 = 0100111000100000 -> 00100000 -> 7232 udw = 40000 PRINT "unsigned dword(40000) = "; udw; " (exp ";"40000";" )" ' source underflow [with signed dword] -> destination underflow ' ' -100500 = 11111111111111100111011101101100 -> 00011000100010010100 -> 10010100 udw = -100500 PRINT "unsigned dword(-100500) = "; udw; " (exp ";"-100500";" )" ' source underflow [with unsigned dword] -> destination underflow udw = 10020000 PRINT "unsigned dword(10020000) = "; udw; " (exp ";"10020000";" )" END PROCEDURE example[] ON ALL BUT VIC20

Welcome to the ugBASIC sandbox!

This tool was designed to quickly test whether the code you are writing compiles correctly and determines the desired results. Since the source is compiled thanks to dedicated servers, separate from the browser you are using, some commands are not available: for example, you cannot load external files or resources by using the LOAD command. If you need to develop a program with a complete tool, we recommend installing the executables or the UGBASIC-IDE.

Unless required by applicable law or agreed to in writing, this website is given on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.