By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Problem with @INT[ value] in V26

To test an upgrade fom v19 to v26, strange thing happened.
Wen starting TCC, it normaly displays a logo on top of the window, but under v26 it displays something started with "USAGE: DRAWBOX...
Aha.. something changed in V26? No, my code is absolutely right. Ok, lets start the debugger.
kidding? In the debugger, it works fine:

@echo off
set cols=160
set line=** %ostype *** TCC %_version%.%_build **
set left=%@int[%@eval[%cols/2 - %@len[%line]/2]]
set right=%@int[%@eval[%left+%@len[%line]+4]]
drawbox 0 %left 4 %right 2 BRIGHT WHITE ON BLUE FILL BLUE
Scrput 2 %@eval[%left+3] bright White on Blue %line
REM to show what happens
echo %left %right

This is what happens. Under the debugger %left and %right show the correct integer value. But when start normally, the function @INT simply does nothing.

Even from the command prompt:
echo INT@[4,3] returns 4,3
Last edited:
That looks like a problem with the decimal separator. Type OPTION at the prompt, then select the advanced tab and check what is set for the decimal separator:

Thus it is a bug in the debugger? Or you just dit nor read my post..
Yes I did read your post, did you try my suggestion?

I've no idea if there's a bug in the debugger; I'm not associated with JP Software, I'm just another user trying to be helpful. You reported that @INT[4,3] isn't working at the prompt, and that looks like a decimal separator problem. If it is, and you fix it, does the problem go away? If it does, your immediate issue would seem to be solved to me. In slower time a possible issue with the debugger could be checked out.
No, I will not try that. If someone uses the symbol for digit grouping, the function would just ignore and remove it. The fact that under the debugger everthing is ok, and @INT worked perfect in at least the last 20 years, makes clear it is a bug.
Your batch file, and the @INT function, work fine here, debugger or no.

The contents of your 4START.BTM and TCMD.INI files may be relevant to figuring out why debugger vs. no debugger differs for you.
v:\> type dbdb.btm
option DecimalChar
echo %@int[4,3]

In the debugger or not, I get something that doesn't look right.

Here good old 4START.BTM is called tcstart.btm and I started trouble shooting by temporary remove both tcstart.btm and tcmd.ini.
Ok, the problem is gone.
Restore tcmd.ini
Ok, still no problem yet
thus tcstart should be the prime suspect? Impossible, as it is the same I used for TCC v11 and TCC v19 for years..
However, YES Found de buggy bug. ;-)

The bug is in SETDOS /G,.
When using that, both Decimal and Thousands are set to comma, while SETDOS /G., wil set both Decimal and Thousands to Period. Thus always the first character.

The instruction is no longer needed today, thus removing is not a problem. But o course, it still is a bug in TCC v26
[Post deleted] OK, I see what Ruud is saying. With OPTION setting the decimal and thousands chars, @INT is OK.

v:\> option //decimalchar=,

v:\> option //ThousandsChar=.

v:\> echo %@int[4,3]

v:\> option //decimalchar=.

v:\> option //ThousandsChar=,

v:\> echo %@int[4.3]

As Ruud said, SETDOS sets both to the same character.

v:\> setdos /G,.

v:\> option DecimalChar

v:\> option ThousandsChar

v:\> setdos /G.,

v:\> option DecimalChar

v:\> option ThousandsChar

Similar threads