Please enable JavaScript to view this site.

A-Shell Development History

Compiler edit 651 implements two new dot functions:

.ARGTYP(argno)

.ARGSIZ(argno)

These return the type and size of the specified argument passed to the current SBX, function, or procedure. If the specified argno is invalid, the return value will be -1. The argument types are made up of the following bits:

Symbol

Value

Description

ARGTYP_MASK

&h000f

mask for types X,S,F,B,I

ARGTYP_X

&h0000

X type (mutually exclusive)

ARGTYP_S

&h0002

S type ("  "   ")

ARGTYP_F

&h0004

F type ("  "   ")

ARGTYP_B

&h0006

B type ("  "   ")

ARGTYP_I

&h0008f

I type ("  "   ")

 

Symbol

Value

Description

ARGTYP_ARRAY

&h0010

! array

ARGTYP_NOSURR

&h0020

! no surrogate

ARGTYP_DYN

&h0040

! dynamic variable

ARGTYP_LOCAL

&h0080

! local dynamic variable

ARGTYP_SBR

&h0100

! variable within SBX or xcall AMOS

 

Warning: These new functions are not recognized by runtime versions prior to 6.1.1373.0, and will simply return the value of the argno passed. You could use this fact to test if the feature is supported at runtime by passing an illegal argno, such as 999 or -2, to .ARGTYP(argno). If supported, the return value will be -1 (error); else if will match the argno passed.