cfad47cfa3/t3compiler/tads3/test/data/bytarr2.t

4b825dc642cb6eb9a060e54bf8d69288fbee4904cfad47cfa334b206c65f22086bcc5d63e6f70944
1
#include <tads.h>
2
#include <bytearr.h>
3
4
main(args)
5
{
6
    local b;
7
    
8
    "--- integer writing ---\n";
9
    b = new ByteArray(200);
10
    b.fillValue(0, 1, 256);
11
    b.writeInt(001, FmtInt8, 200 /* 0xC8 */);
12
    b.writeInt(011, FmtInt8, -75 /* 0xB5 */);
13
    b.writeInt(021, FmtInt16LE, 41000 /* 0xA028 */);
14
    b.writeInt(031, FmtInt16LE, -21000 /* 0xADF8 */);
15
    b.writeInt(041, FmtInt16BE, 42000 /* 0xA410 */);
16
    b.writeInt(051, FmtInt16BE, -22000 /* 0xAA10 */);
17
    b.writeInt(061, FmtInt32LE, 600000 /* 0x000927C0 */);
18
    b.writeInt(071, FmtInt32LE, -600000 /* 0xFFF6D840 */);
19
    b.writeInt(0101, FmtInt32BE, 700000 /* 0x000AAE60 */);
20
    b.writeInt(0111, FmtInt32BE, -700000 /* 0xFFF551A0 */);
21
22
    for (local i = 1 ; i <= b.length() ; i += 8)
23
    {
24
        "<<fmtX(i, 8, 4)>>: ";
25
        for (local j = i ; j < i + 8 ; ++j)
26
            "<<fmtX(b[j], 16, 2)>> ";
27
        "\n";
28
    }
29
30
    "\b--- integer reading ---\n";
31
    "int8 - \n
32
        \tunsigned: <<b.readInt(001, FmtUInt8)>>\n
33
        \tsigned: <<b.readInt(011, FmtInt8)>>\n";
34
    "int16 - \n
35
        \tunsigned, LE: <<b.readInt(021, FmtUInt16LE)>>\n
36
        \tsigned, LE: <<b.readInt(031, FmtInt16LE)>>\n
37
        \tunsigned, BE: <<b.readInt(041, FmtUInt16BE)>>\n
38
        \tsigned, BE: <<b.readInt(051, FmtInt16BE)>>\n";
39
    "int32 - \n
40
        \tLE: <<b.readInt(0061, FmtInt32LE)>>\n
41
        \tLE: <<b.readInt(0071, FmtInt32LE)>>\n
42
        \tBE: <<b.readInt(0101, FmtInt32BE)>>\n
43
        \tBE: <<b.readInt(0111, FmtInt32BE)>>\n";
44
}
45
46
fmtX(val, radix, len)
47
{
48
    local str = toString(val, radix);
49
    local slen = str.length();
50
    if (slen < len)
51
        str = makeString('0', len - slen) + str;
52
    return str;
53
}