Changeset 20178 for lang

Show
Ignore:
Timestamp:
09/29/08 09:48:31 (5 years ago)
Author:
fujidig
Message:

wpeek, lpeek を実装

Location:
lang/javascript/hsp-on-js/trunk/src
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/hsp-on-js/trunk/src/builtin-funcs.js

    r20137 r20178  
    310310                return new IntValue(v.getbyte(n)); 
    311311        }, 
     312        0x00a: function wpeek(v, n) { 
     313                this.scanArgs(arguments, 'vN'); 
     314                n = n ? n.toIntValue()._value : 0; 
     315                if(n < 0) { 
     316                        throw new HSPError(ErrorCode.ILLEGAL_FUNCTION); 
     317                } 
     318                return new IntValue(v.getbyte(n) | v.getbyte(n + 1) << 8); 
     319        }, 
     320        0x00b: function lpeek(v, n) { 
     321                this.scanArgs(arguments, 'vN'); 
     322                n = n ? n.toIntValue()._value : 0; 
     323                if(n < 0) { 
     324                        throw new HSPError(ErrorCode.ILLEGAL_FUNCTION); 
     325                } 
     326                return new IntValue(v.getbyte(n) | v.getbyte(n + 1) << 8 | v.getbyte(n + 2) << 16 | v.getbyte(n + 3) << 24); 
     327        }, 
    312328        0x00d: function varuse(v) { 
    313329                this.scanArgs(arguments, 'v'); 
     
    329345                return new IntValue(Math.min(Math.max(min, val), max)); 
    330346        }, 
    331         0x100: function str(val) { 
    332                 this.scanArgs(arguments, '.'); 
     347        0x100: function str(val, base) { 
     348                this.scanArgs(arguments, '.N'); 
     349                if(base) { 
     350                        // 16 進数の変換用。strf を実装するまでのつなぎ 
     351                        val = val.toIntValue()._value; 
     352                        base = base.toIntValue()._value; 
     353                        if(val < 0) val += 0x100000000; 
     354                        return new StrValue(val.toString(base)); 
     355                } 
    333356                return val.toStrValue(); 
    334357        }, 
  • lang/javascript/hsp-on-js/trunk/src/run-in-shell.js

    r20137 r20178  
    2121function main(){ 
    2222        var data = [ 
    23 '\x48\x53\x50\x33\x01\x03\x00\x00\x01\x00\x00\x00\xe1\x00\x00\x00', 
    24 '\x60\x00\x00\x00\x5c\x00\x00\x00\xbc\x00\x00\x00\x08\x00\x00\x00', 
    25 '\xc4\x00\x00\x00\x08\x00\x00\x00\xcc\x00\x00\x00\x15\x00\x00\x00', 
    26 '\xe1\x00\x00\x00\x00\x00\x00\x00\xe1\x00\x00\x00\x00\x00\x00\x00', 
    27 '\xe1\x00\x00\x00\x00\x00\x00\x00\xe1\x00\x00\x00\x00\x00\x00\x00', 
    28 '\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 
    29 '\x01\x20\x00\x00\x00\x00\x08\x00\x04\x80\xaf\xbe\xad\xde\x0f\x20', 
    30 '\x04\x00\x07\x00\x00\x00\x04\x00\x04\x00\x09\x20\x0f\x00\x0d\x00', 
    31 '\x09\x00\x00\x00\x28\x00\x01\x00\x00\x00\x0e\x40\x04\x00\x00\x00', 
    32 '\x29\x00\x0f\x20\x05\x00\x09\x20\x0f\x00\x0d\x00\x09\x00\x00\x00', 
    33 '\x28\x00\x01\x00\x00\x00\x04\xc0\xff\xff\xff\xff\x00\x00\x29\x00', 
    34 '\x0f\x20\x11\x00\x0f\x20\x00\x00\x07\x00\x01\x00\x74\x2e\x68\x73', 
    35 '\x70\x00\x61\x00\x1b\x00\x00\x00\x28\x00\x00\x00\xfe\x00\x00\x00', 
    36 '\x00\x00\x00\x07\x06\x0c\x02\x0d\x06\xfd\x06\x00\x00\x00\x00\xff', 
    37 '\xff' 
     23'\x48\x53\x50\x33\x01\x03\x00\x00\x01\x00\x00\x00\xe4\x03\x00\x00', 
     24'\x60\x00\x00\x00\x48\x03\x00\x00\xa8\x03\x00\x00\x08\x00\x00\x00', 
     25'\xb0\x03\x00\x00\x04\x00\x00\x00\xb4\x03\x00\x00\x30\x00\x00\x00', 
     26'\xe4\x03\x00\x00\x00\x00\x00\x00\xe4\x03\x00\x00\x00\x00\x00\x00', 
     27'\xe4\x03\x00\x00\x00\x00\x00\x00\xe4\x03\x00\x00\x00\x00\x00\x00', 
     28'\xe4\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 
     29'\x01\x20\x00\x00\x00\x00\x08\x00\x04\x80\x11\x22\x33\x44\x04\xc0', 
     30'\x55\x66\x77\x88\x09\x20\x0f\x00\x0d\x00\x00\x01\x00\x00\x28\x00', 
     31'\x0d\x00\x09\x00\x00\x00\x28\x00\x01\x00\x00\x00\x04\x40\x00\x00', 
     32'\x00\x00\x29\x00\x04\x40\x10\x00\x00\x00\x29\x00\x09\x20\x0f\x00', 
     33'\x0d\x00\x00\x01\x00\x00\x28\x00\x0d\x00\x09\x00\x00\x00\x28\x00', 
     34'\x01\x00\x00\x00\x04\x40\x01\x00\x00\x00\x29\x00\x04\x40\x10\x00', 
     35'\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x00\x01\x00\x00\x28\x00', 
     36'\x0d\x00\x09\x00\x00\x00\x28\x00\x01\x00\x00\x00\x04\x40\x02\x00', 
     37'\x00\x00\x29\x00\x04\x40\x10\x00\x00\x00\x29\x00\x09\x20\x0f\x00', 
     38'\x0d\x00\x00\x01\x00\x00\x28\x00\x0d\x00\x09\x00\x00\x00\x28\x00', 
     39'\x01\x00\x00\x00\x04\x40\x03\x00\x00\x00\x29\x00\x04\x40\x10\x00', 
     40'\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x00\x01\x00\x00\x28\x00', 
     41'\x0d\x00\x09\x00\x00\x00\x28\x00\x01\x00\x00\x00\x04\x40\x04\x00', 
     42'\x00\x00\x29\x00\x04\x40\x10\x00\x00\x00\x29\x00\x09\x20\x0f\x00', 
     43'\x0d\x00\x00\x01\x00\x00\x28\x00\x0d\x00\x09\x00\x00\x00\x28\x00', 
     44'\x01\x00\x00\x00\x04\x40\x05\x00\x00\x00\x29\x00\x04\x40\x10\x00', 
     45'\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x00\x01\x00\x00\x28\x00', 
     46'\x0d\x00\x09\x00\x00\x00\x28\x00\x01\x00\x00\x00\x04\x40\x06\x00', 
     47'\x00\x00\x29\x00\x04\x40\x10\x00\x00\x00\x29\x00\x09\x20\x0f\x00', 
     48'\x0d\x00\x00\x01\x00\x00\x28\x00\x0d\x00\x09\x00\x00\x00\x28\x00', 
     49'\x01\x00\x00\x00\x04\x40\x07\x00\x00\x00\x29\x00\x04\x40\x10\x00', 
     50'\x00\x00\x29\x00\x09\x20\x0f\x00\x09\x20\x0f\x00\x0d\x00\x00\x01', 
     51'\x00\x00\x28\x00\x0d\x00\x0a\x00\x00\x00\x28\x00\x01\x00\x00\x00', 
     52'\x04\x40\x00\x00\x00\x00\x29\x00\x04\x40\x10\x00\x00\x00\x29\x00', 
     53'\x09\x20\x0f\x00\x0d\x00\x00\x01\x00\x00\x28\x00\x0d\x00\x0a\x00', 
     54'\x00\x00\x28\x00\x01\x00\x00\x00\x04\x40\x01\x00\x00\x00\x29\x00', 
     55'\x04\x40\x10\x00\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x00\x01', 
     56'\x00\x00\x28\x00\x0d\x00\x0a\x00\x00\x00\x28\x00\x01\x00\x00\x00', 
     57'\x04\x40\x02\x00\x00\x00\x29\x00\x04\x40\x10\x00\x00\x00\x29\x00', 
     58'\x09\x20\x0f\x00\x0d\x00\x00\x01\x00\x00\x28\x00\x0d\x00\x0a\x00', 
     59'\x00\x00\x28\x00\x01\x00\x00\x00\x04\x40\x03\x00\x00\x00\x29\x00', 
     60'\x04\x40\x10\x00\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x00\x01', 
     61'\x00\x00\x28\x00\x0d\x00\x0a\x00\x00\x00\x28\x00\x01\x00\x00\x00', 
     62'\x04\x40\x04\x00\x00\x00\x29\x00\x04\x40\x10\x00\x00\x00\x29\x00', 
     63'\x09\x20\x0f\x00\x0d\x00\x00\x01\x00\x00\x28\x00\x0d\x00\x0a\x00', 
     64'\x00\x00\x28\x00\x01\x00\x00\x00\x04\x40\x05\x00\x00\x00\x29\x00', 
     65'\x04\x40\x10\x00\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x00\x01', 
     66'\x00\x00\x28\x00\x0d\x00\x0a\x00\x00\x00\x28\x00\x01\x00\x00\x00', 
     67'\x04\x40\x06\x00\x00\x00\x29\x00\x04\x40\x10\x00\x00\x00\x29\x00', 
     68'\x09\x20\x0f\x00\x09\x20\x0f\x00\x0d\x00\x00\x01\x00\x00\x28\x00', 
     69'\x0d\x00\x0b\x00\x00\x00\x28\x00\x01\x00\x00\x00\x04\x40\x00\x00', 
     70'\x00\x00\x29\x00\x04\x40\x10\x00\x00\x00\x29\x00\x09\x20\x0f\x00', 
     71'\x0d\x00\x00\x01\x00\x00\x28\x00\x0d\x00\x0b\x00\x00\x00\x28\x00', 
     72'\x01\x00\x00\x00\x04\x40\x01\x00\x00\x00\x29\x00\x04\x40\x10\x00', 
     73'\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x00\x01\x00\x00\x28\x00', 
     74'\x0d\x00\x0b\x00\x00\x00\x28\x00\x01\x00\x00\x00\x04\x40\x02\x00', 
     75'\x00\x00\x29\x00\x04\x40\x10\x00\x00\x00\x29\x00\x09\x20\x0f\x00', 
     76'\x0d\x00\x00\x01\x00\x00\x28\x00\x0d\x00\x0b\x00\x00\x00\x28\x00', 
     77'\x01\x00\x00\x00\x04\x40\x03\x00\x00\x00\x29\x00\x04\x40\x10\x00', 
     78'\x00\x00\x29\x00\x09\x20\x0f\x00\x0d\x00\x00\x01\x00\x00\x28\x00', 
     79'\x0d\x00\x0b\x00\x00\x00\x28\x00\x01\x00\x00\x00\x04\x40\x04\x00', 
     80'\x00\x00\x29\x00\x04\x40\x10\x00\x00\x00\x29\x00\x0f\x20\x11\x00', 
     81'\x0f\x20\x00\x00\x07\x00\x00\x00\x74\x2e\x68\x73\x70\x00\x61\x00', 
     82'\x9e\x01\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a', 
     83'\x14\x14\x14\x14\x14\x14\x14\x14\x00\x02\x00\x14\x14\x14\x14\x14', 
     84'\x14\x14\x00\x02\x00\x14\x14\x14\x14\x14\x00\x06\xfd\x06\x00\x00', 
     85'\x00\x00\xff\xff' 
    3886        ].join(''); 
    3987 
  • lang/javascript/hsp-on-js/trunk/src/t.hsp

    r20137 r20178  
    1 a = $deadbeaf 
    2 repeat 4 
    3         mes peek(a, cnt) 
    4 loop 
    5 mes peek(a, -1) 
     1;#define hex(%1) strf("%%x", %1) 
     2#define hex(%1) str(%1, 16) 
     3 
     4 
     5a = $44332211, $88776655 
     6mes hex(peek(a,0)) 
     7mes hex(peek(a,1)) 
     8mes hex(peek(a,2)) 
     9mes hex(peek(a,3)) 
     10mes hex(peek(a,4)) 
     11mes hex(peek(a,5)) 
     12mes hex(peek(a,6)) 
     13mes hex(peek(a,7)) 
     14 
     15mes  
     16 
     17mes hex(wpeek(a,0)) 
     18mes hex(wpeek(a,1)) 
     19mes hex(wpeek(a,2)) 
     20mes hex(wpeek(a,3)) 
     21mes hex(wpeek(a,4)) 
     22mes hex(wpeek(a,5)) 
     23mes hex(wpeek(a,6)) 
     24 
     25mes  
     26 
     27mes hex(lpeek(a,0)) 
     28mes hex(lpeek(a,1)) 
     29mes hex(lpeek(a,2)) 
     30mes hex(lpeek(a,3)) 
     31mes hex(lpeek(a,4)) 
     32