symbols[]: global scope global global scope implicit__File Ranges kill ( Ranges ) BlockDevice kill ( BlockDevice ) File[] kill ( File[] ) type int8 = int8 type uint8 = uint8 type int16 = int16 type uint16 = uint16 type int32 = int32 type uint32 = uint32 type int64 = int64 type uint64 = uint64 type float64 = float32 type offs = int16 type addr = uint16 type void = void type byte = int8 type ubyte = uint8 type short = int16 type ushort = uint16 type long = int32 type ulong = uint32 type int = int16 type uint = uint16 type utf8char = enum uint8 type ucs1char = enum uint8 type ucs2char = enum uint16 type ucs4char = enum uint32 type utf8str = utf8char[] utf8str spacestr ( uint16 ) utf8str spacestr ( uint16, utf8char ) utf8str charstr ( uint16 ) ucs1char hexchar ( uint16 ) utf8str hexstr ( uint8 ) utf8str hexstr ( uint16 ) utf8str hexstr ( uint32 ) utf8str hexstr ( uint16, uint16 digits ) utf8str hexstr ( uint32, uint16 digits ) utf8str binstr ( uint8 ) utf8str binstr ( uint16 ) utf8str binstr ( uint32 ) utf8str binstr ( uint16, uint16 digits ) utf8str binstr ( uint32, uint16 digits ) utf8str binstr ( uint16, utf8str¢ o, utf8str¢ l ) utf8str binstr ( uint32, utf8str¢ o, utf8str¢ l ) utf8str numstr ( int16 ) utf8str numstr ( uint16 ) utf8str numstr ( int32 ) utf8str numstr ( uint32 ) utf8str toupper ( utf8str¢ ) utf8str tolower ( utf8str¢ ) utf8str escape ( utf8str¢, ucs1char leftquote ) utf8str unescape ( utf8str¢ ) utf8str urlencode ( utf8str¢ ) utf8str urldecode ( utf8str¢ ) utf8str entab ( utf8str¢, uint16 tabwidth ) utf8str detab ( utf8str¢, uint16 tabwidth ) utf8str toupper ( utf8char[to] ) utf8str tolower ( utf8char[to] ) utf8str escape ( utf8char[to], ucs1char leftquote ) utf8str unescape ( utf8char[to] ) utf8str urlencode ( utf8char[to] ) utf8str urldecode ( utf8char[to] ) utf8str entab ( utf8char[to], uint16 tabwidth ) utf8str detab ( utf8char[to], uint16 tabwidth ) ucs1str toucs1 ( utf8str¢ ) ucs2str toucs2 ( utf8str¢ ) utf8str toutf8 ( utf8str¢ ) ucs1str toucs1 ( utf8char[to] ) ucs2str toucs2 ( utf8char[to] ) utf8str toutf8 ( utf8char[to] ) utf8str min ( utf8str, utf8str ) utf8str min ( utf8str, utf8str¢ ) utf8str min ( utf8str¢, utf8str ) utf8str¢ min ( utf8str¢, utf8str¢ ) utf8str¢ min ( utf8str[]¢ ) utf8str¢ min ( utf8str[to] ) utf8str max ( utf8str, utf8str ) utf8str max ( utf8str, utf8str¢ ) utf8str max ( utf8str¢, utf8str ) utf8str¢ max ( utf8str¢, utf8str¢ ) utf8str¢ max ( utf8str[]¢ ) utf8str¢ max ( utf8str[to] ) void flip ( utf8str[to] ) void rol ( utf8str[to] ) void ror ( utf8str[to] ) void sort ( utf8str[to] ) void rsort ( utf8str[to] ) void shuffle ( utf8str[to] ) void revert ( utf8str[to] ) type ucs1str = ucs1char[] ucs1str spacestr ( uint16 ) ucs1str spacestr ( uint16, ucs1char ) ucs1str charstr ( uint16 ) ucs1char hexchar ( uint16 ) ucs1str hexstr ( uint8 ) ucs1str hexstr ( uint16 ) ucs1str hexstr ( uint32 ) ucs1str hexstr ( uint16, uint16 digits ) ucs1str hexstr ( uint32, uint16 digits ) ucs1str binstr ( uint8 ) ucs1str binstr ( uint16 ) ucs1str binstr ( uint32 ) ucs1str binstr ( uint16, uint16 digits ) ucs1str binstr ( uint32, uint16 digits ) ucs1str binstr ( uint16, ucs1str¢ o, ucs1str¢ l ) ucs1str binstr ( uint32, ucs1str¢ o, ucs1str¢ l ) ucs1str numstr ( int16 ) ucs1str numstr ( uint16 ) ucs1str numstr ( int32 ) ucs1str numstr ( uint32 ) ucs1str toupper ( ucs1str¢ ) ucs1str tolower ( ucs1str¢ ) ucs1str escape ( ucs1str¢, ucs1char leftquote ) ucs1str unescape ( ucs1str¢ ) ucs1str urlencode ( ucs1str¢ ) ucs1str urldecode ( ucs1str¢ ) ucs1str entab ( ucs1str¢, uint16 tabwidth ) ucs1str detab ( ucs1str¢, uint16 tabwidth ) ucs1str toupper ( ucs1char[to] ) ucs1str tolower ( ucs1char[to] ) ucs1str escape ( ucs1char[to], ucs1char leftquote ) ucs1str unescape ( ucs1char[to] ) ucs1str urlencode ( ucs1char[to] ) ucs1str urldecode ( ucs1char[to] ) ucs1str entab ( ucs1char[to], uint16 tabwidth ) ucs1str detab ( ucs1char[to], uint16 tabwidth ) ucs1str toucs1 ( ucs1str¢ ) ucs2str toucs2 ( ucs1str¢ ) utf8str toutf8 ( ucs1str¢ ) ucs1str toucs1 ( ucs1char[to] ) ucs2str toucs2 ( ucs1char[to] ) utf8str toutf8 ( ucs1char[to] ) ucs1str min ( ucs1str, ucs1str ) ucs1str min ( ucs1str, ucs1str¢ ) ucs1str min ( ucs1str¢, ucs1str ) ucs1str¢ min ( ucs1str¢, ucs1str¢ ) ucs1str¢ min ( ucs1str[]¢ ) ucs1str¢ min ( ucs1str[to] ) ucs1str max ( ucs1str, ucs1str ) ucs1str max ( ucs1str, ucs1str¢ ) ucs1str max ( ucs1str¢, ucs1str ) ucs1str¢ max ( ucs1str¢, ucs1str¢ ) ucs1str¢ max ( ucs1str[]¢ ) ucs1str¢ max ( ucs1str[to] ) void flip ( ucs1str[to] ) void rol ( ucs1str[to] ) void ror ( ucs1str[to] ) void sort ( ucs1str[to] ) void rsort ( ucs1str[to] ) void shuffle ( ucs1str[to] ) void revert ( ucs1str[to] ) type ucs2str = ucs2char[] ucs2str spacestr ( uint16 ) ucs2str spacestr ( uint16, ucs2char ) ucs2str charstr ( uint16 ) ucs2char hexchar ( uint16 ) ucs2str hexstr ( uint8 ) ucs2str hexstr ( uint16 ) ucs2str hexstr ( uint32 ) ucs2str hexstr ( uint16, uint16 digits ) ucs2str hexstr ( uint32, uint16 digits ) ucs2str binstr ( uint8 ) ucs2str binstr ( uint16 ) ucs2str binstr ( uint32 ) ucs2str binstr ( uint16, uint16 digits ) ucs2str binstr ( uint32, uint16 digits ) ucs2str binstr ( uint16, ucs2str¢ o, ucs2str¢ l ) ucs2str binstr ( uint32, ucs2str¢ o, ucs2str¢ l ) ucs2str numstr ( int16 ) ucs2str numstr ( uint16 ) ucs2str numstr ( int32 ) ucs2str numstr ( uint32 ) ucs2str toupper ( ucs2str¢ ) ucs2str tolower ( ucs2str¢ ) ucs2str escape ( ucs2str¢, ucs2char leftquote ) ucs2str unescape ( ucs2str¢ ) ucs2str urlencode ( ucs2str¢ ) ucs2str urldecode ( ucs2str¢ ) ucs2str entab ( ucs2str¢, uint16 tabwidth ) ucs2str detab ( ucs2str¢, uint16 tabwidth ) ucs2str toupper ( ucs2char[to] ) ucs2str tolower ( ucs2char[to] ) ucs2str escape ( ucs2char[to], ucs2char leftquote ) ucs2str unescape ( ucs2char[to] ) ucs2str urlencode ( ucs2char[to] ) ucs2str urldecode ( ucs2char[to] ) ucs2str entab ( ucs2char[to], uint16 tabwidth ) ucs2str detab ( ucs2char[to], uint16 tabwidth ) ucs1str toucs1 ( ucs2str¢ ) ucs2str toucs2 ( ucs2str¢ ) utf8str toutf8 ( ucs2str¢ ) ucs1str toucs1 ( ucs2char[to] ) ucs2str toucs2 ( ucs2char[to] ) utf8str toutf8 ( ucs2char[to] ) ucs2str min ( ucs2str, ucs2str ) ucs2str min ( ucs2str, ucs2str¢ ) ucs2str min ( ucs2str¢, ucs2str ) ucs2str¢ min ( ucs2str¢, ucs2str¢ ) ucs2str¢ min ( ucs2str[]¢ ) ucs2str¢ min ( ucs2str[to] ) ucs2str max ( ucs2str, ucs2str ) ucs2str max ( ucs2str, ucs2str¢ ) ucs2str max ( ucs2str¢, ucs2str ) ucs2str¢ max ( ucs2str¢, ucs2str¢ ) ucs2str¢ max ( ucs2str[]¢ ) ucs2str¢ max ( ucs2str[to] ) void flip ( ucs2str[to] ) void rol ( ucs2str[to] ) void ror ( ucs2str[to] ) void sort ( ucs2str[to] ) void rsort ( ucs2str[to] ) void shuffle ( ucs2str[to] ) void revert ( ucs2str[to] ) type ucs4str = ucs4char[] type char = enum uint8 type bool = enum uint8 type float = float32 type str = ucs1char[] type Thread = {} type Mutex = {} type Sema = {} type Irpt = {} type Object = {} type Stream = {} type FileInfo = {} type FD = { FD_Handlers¢ handlers, NodeType nodetype, ucs1str name, init ( FD¢, NodeType, ucs1str¢ name, FD_Handlers¢ ), kill ( FD¢ ), ill ( FD ), 16 getctl ( FD¢, uint8 fu ), setctl ( FD¢, uint8 fu, uint16 n ), 16 avail_in ( FD¢ ), 16 avail_out ( FD¢ ), char getc ( FD¢ ), putc ( FD¢, ucs1char c ), str gets ( FD¢, uint16 delimiters ), puts ( FD¢, ucs1str¢ ), puts ( FD¢, ucs1str ), putnum ( FD¢, uint16 ), putnum ( FD¢, int16 ), read ( FD¢, uint8[to] ), write ( FD¢, uint8[to] ), read_block ( FD¢, uint32 blk, uint8[]¢ ), write_block ( FD¢, uint32 blk, uint8[]¢ ), 32 getfpos ( FD¢ ), setfpos ( FD¢, uint32 fpos ), is_dir ( FD¢ ), is_file ( FD¢ ) } var FD_Handlers¢ handlers var NodeType nodetype var ucs1str name void init ( FD¢, NodeType, ucs1str¢ name, FD_Handlers¢ ) void kill ( FD¢ ) FD kill ( FD ) uint16 getctl ( FD¢, uint8 fu ) void setctl ( FD¢, uint8 fu, uint16 n ) uint16 avail_in ( FD¢ ) uint16 avail_out ( FD¢ ) ucs1char getc ( FD¢ ) void putc ( FD¢, ucs1char c ) ucs1str gets ( FD¢, uint16 delimiters ) void puts ( FD¢, ucs1str¢ ) void puts ( FD¢, ucs1str ) void putnum ( FD¢, uint16 ) void putnum ( FD¢, int16 ) bool read ( FD¢, uint8[to] ) bool write ( FD¢, uint8[to] ) bool read_block ( FD¢, uint32 blk, uint8[]¢ ) bool write_block ( FD¢, uint32 blk, uint8[]¢ ) uint32 getfpos ( FD¢ ) bool setfpos ( FD¢, uint32 fpos ) bool is_dir ( FD¢ ) bool is_file ( FD¢ ) const bool yes = 1 const bool no = 0 const bool true = 1 const bool false = 0 uint8 msbit ( uint16 ) uint8 msbit ( uint32 ) int16 sign ( int16 ) int16 sign ( int32 ) uint16 abs ( int16 ) uint32 abs ( int32 ) uint16 swap_bytes ( uint16 ) uint32 revert_bytes ( uint32 ) uint32 swap_words ( uint32 ) uint16 random () uint32 mul_wwl ( uint16, uint16 ) void flip ( int8[to] ) = opcode flip void rol ( int8[to] ) = opcode rol void ror ( int8[to] ) = opcode ror void sort ( int8[to] ) = opcode sort void rsort ( int8[to] ) = opcode rsort void shuffle ( int8[to] ) = opcode shuffle void revert ( int8[to] ) = opcode revert int8[] join ( int8[][]¢, int8 ) = opcode join int8[] join ( int8[][]¢, int8[]¢ ) = opcode join int8[][] split ( int8[]¢, int8 ) = opcode split int8[][] split ( int8[]¢, int8[]¢ ) = opcode split int8 min ( int8, int8 ) int8 min ( int8, int8, int8 ) int8 min ( int8[to] ) int8 max ( int8, int8 ) int8 max ( int8, int8, int8 ) int8 max ( int8[to] ) uint16 find ( int8[to], int8 ) = opcode find uint16 find ( int8[to], int8[]¢ ) = opcode find uint16 rfind ( int8[to], int8 ) = opcode rfind uint16 rfind ( int8[to], int8[]¢ ) = opcode rfind void shrinktofit ( int8[]& ) int8[to] substr ( int8[]¢, uint16 a, uint16 e ) int8[to] midstr ( int8[]¢, uint16 i, uint16 n ) int8[to] leftstr ( int8[]¢, uint16 n ) int8[to] rightstr ( int8[]¢, uint16 n ) int8 numval ( utf8str¢ ) int8 numval ( ucs1str¢ ) int8 numval ( ucs2str¢ ) void flip ( uint8[to] ) = opcode flip void rol ( uint8[to] ) = opcode rol void ror ( uint8[to] ) = opcode ror void sort ( uint8[to] ) = opcode sort void rsort ( uint8[to] ) = opcode rsort void shuffle ( uint8[to] ) = opcode shuffle void revert ( uint8[to] ) = opcode revert uint8[] join ( uint8[][]¢, uint8 ) = opcode join uint8[] join ( uint8[][]¢, uint8[]¢ ) = opcode join uint8[][] split ( uint8[]¢, uint8 ) = opcode split uint8[][] split ( uint8[]¢, uint8[]¢ ) = opcode split uint8 min ( uint8, uint8 ) uint8 min ( uint8, uint8, uint8 ) uint8 min ( uint8[to] ) uint8 max ( uint8, uint8 ) uint8 max ( uint8, uint8, uint8 ) uint8 max ( uint8[to] ) uint16 find ( uint8[to], uint8 ) = opcode find uint16 find ( uint8[to], uint8[]¢ ) = opcode find uint16 rfind ( uint8[to], uint8 ) = opcode rfind uint16 rfind ( uint8[to], uint8[]¢ ) = opcode rfind void shrinktofit ( uint8[]& ) uint8[to] substr ( uint8[]¢, uint16 a, uint16 e ) uint8[to] midstr ( uint8[]¢, uint16 i, uint16 n ) uint8[to] leftstr ( uint8[]¢, uint16 n ) uint8[to] rightstr ( uint8[]¢, uint16 n ) uint8 numval ( utf8str¢ ) uint8 numval ( ucs1str¢ ) uint8 numval ( ucs2str¢ ) void flip ( int16[to] ) = opcode flip void rol ( int16[to] ) = opcode rol void ror ( int16[to] ) = opcode ror void sort ( int16[to] ) = opcode sort void rsort ( int16[to] ) = opcode rsort void shuffle ( int16[to] ) = opcode shuffle void revert ( int16[to] ) = opcode revert int16[] join ( int16[][]¢, int16 ) = opcode join int16[] join ( int16[][]¢, int16[]¢ ) = opcode join int16[][] split ( int16[]¢, int16 ) = opcode split int16[][] split ( int16[]¢, int16[]¢ ) = opcode split int16 min ( int16, int16 ) int16 min ( int16, int16, int16 ) int16 min ( int16[to] ) int16 max ( int16, int16 ) int16 max ( int16, int16, int16 ) int16 max ( int16[to] ) uint16 find ( int16[to], int16 ) = opcode find uint16 find ( int16[to], int16[]¢ ) = opcode find uint16 rfind ( int16[to], int16 ) = opcode rfind uint16 rfind ( int16[to], int16[]¢ ) = opcode rfind void shrinktofit ( int16[]& ) int16[to] substr ( int16[]¢, uint16 a, uint16 e ) int16[to] midstr ( int16[]¢, uint16 i, uint16 n ) int16[to] leftstr ( int16[]¢, uint16 n ) int16[to] rightstr ( int16[]¢, uint16 n ) int16 numval ( utf8str¢ ) int16 numval ( ucs1str¢ ) int16 numval ( ucs2str¢ ) void flip ( uint16[to] ) = opcode flip void rol ( uint16[to] ) = opcode rol void ror ( uint16[to] ) = opcode ror void sort ( uint16[to] ) = opcode sort void rsort ( uint16[to] ) = opcode rsort void shuffle ( uint16[to] ) = opcode shuffle void revert ( uint16[to] ) = opcode revert uint16[] join ( uint16[][]¢, uint16 ) = opcode join uint16[] join ( uint16[][]¢, uint16[]¢ ) = opcode join uint16[][] split ( uint16[]¢, uint16 ) = opcode split uint16[][] split ( uint16[]¢, uint16[]¢ ) = opcode split uint16 min ( uint16, uint16 ) uint16 min ( uint16, uint16, uint16 ) uint16 min ( uint16[to] ) uint16 max ( uint16, uint16 ) uint16 max ( uint16, uint16, uint16 ) uint16 max ( uint16[to] ) uint16 find ( uint16[to], uint16 ) = opcode find uint16 find ( uint16[to], uint16[]¢ ) = opcode find uint16 rfind ( uint16[to], uint16 ) = opcode rfind uint16 rfind ( uint16[to], uint16[]¢ ) = opcode rfind void shrinktofit ( uint16[]& ) uint16[to] substr ( uint16[]¢, uint16 a, uint16 e ) uint16[to] midstr ( uint16[]¢, uint16 i, uint16 n ) uint16[to] leftstr ( uint16[]¢, uint16 n ) uint16[to] rightstr ( uint16[]¢, uint16 n ) uint16 numval ( utf8str¢ ) uint16 numval ( ucs1str¢ ) uint16 numval ( ucs2str¢ ) void flip ( int32[to] ) = opcode flip void rol ( int32[to] ) = opcode rol void ror ( int32[to] ) = opcode ror void sort ( int32[to] ) = opcode sort void rsort ( int32[to] ) = opcode rsort void shuffle ( int32[to] ) = opcode shuffle void revert ( int32[to] ) = opcode revert int32[] join ( int32[][]¢, int32 ) = opcode join int32[] join ( int32[][]¢, int32[]¢ ) = opcode join int32[][] split ( int32[]¢, int32 ) = opcode split int32[][] split ( int32[]¢, int32[]¢ ) = opcode split int32 min ( int32, int32 ) int32 min ( int32, int32, int32 ) int32 min ( int32[to] ) int32 max ( int32, int32 ) int32 max ( int32, int32, int32 ) int32 max ( int32[to] ) uint16 find ( int32[to], int32 ) = opcode find uint16 find ( int32[to], int32[]¢ ) = opcode find uint16 rfind ( int32[to], int32 ) = opcode rfind uint16 rfind ( int32[to], int32[]¢ ) = opcode rfind void shrinktofit ( int32[]& ) int32[to] substr ( int32[]¢, uint16 a, uint16 e ) int32[to] midstr ( int32[]¢, uint16 i, uint16 n ) int32[to] leftstr ( int32[]¢, uint16 n ) int32[to] rightstr ( int32[]¢, uint16 n ) int32 numval ( utf8str¢ ) int32 numval ( ucs1str¢ ) int32 numval ( ucs2str¢ ) void flip ( uint32[to] ) = opcode flip void rol ( uint32[to] ) = opcode rol void ror ( uint32[to] ) = opcode ror void sort ( uint32[to] ) = opcode sort void rsort ( uint32[to] ) = opcode rsort void shuffle ( uint32[to] ) = opcode shuffle void revert ( uint32[to] ) = opcode revert uint32[] join ( uint32[][]¢, uint32 ) = opcode join uint32[] join ( uint32[][]¢, uint32[]¢ ) = opcode join uint32[][] split ( uint32[]¢, uint32 ) = opcode split uint32[][] split ( uint32[]¢, uint32[]¢ ) = opcode split uint32 min ( uint32, uint32 ) uint32 min ( uint32, uint32, uint32 ) uint32 min ( uint32[to] ) uint32 max ( uint32, uint32 ) uint32 max ( uint32, uint32, uint32 ) uint32 max ( uint32[to] ) uint16 find ( uint32[to], uint32 ) = opcode find uint16 find ( uint32[to], uint32[]¢ ) = opcode find uint16 rfind ( uint32[to], uint32 ) = opcode rfind uint16 rfind ( uint32[to], uint32[]¢ ) = opcode rfind void shrinktofit ( uint32[]& ) uint32[to] substr ( uint32[]¢, uint16 a, uint16 e ) uint32[to] midstr ( uint32[]¢, uint16 i, uint16 n ) uint32[to] leftstr ( uint32[]¢, uint16 n ) uint32[to] rightstr ( uint32[]¢, uint16 n ) uint32 numval ( utf8str¢ ) uint32 numval ( ucs1str¢ ) uint32 numval ( ucs2str¢ ) void flip ( utf8char[to] ) = opcode flip void rol ( utf8char[to] ) = opcode rol void ror ( utf8char[to] ) = opcode ror void sort ( utf8char[to] ) = opcode sort void rsort ( utf8char[to] ) = opcode rsort void shuffle ( utf8char[to] ) = opcode shuffle void revert ( utf8char[to] ) = opcode revert utf8str join ( utf8str[]¢, utf8char ) = opcode join utf8str join ( utf8str[]¢, utf8str¢ ) = opcode join utf8str[] split ( utf8str¢, utf8char ) = opcode split utf8str[] split ( utf8str¢, utf8str¢ ) = opcode split utf8char min ( utf8char, utf8char ) utf8char min ( utf8char, utf8char, utf8char ) utf8char min ( utf8char[to] ) utf8char max ( utf8char, utf8char ) utf8char max ( utf8char, utf8char, utf8char ) utf8char max ( utf8char[to] ) uint16 find ( utf8char[to], utf8char ) = opcode find uint16 find ( utf8char[to], utf8str¢ ) = opcode find uint16 rfind ( utf8char[to], utf8char ) = opcode rfind uint16 rfind ( utf8char[to], utf8str¢ ) = opcode rfind void shrinktofit ( utf8str& ) utf8char[to] substr ( utf8str¢, uint16 a, uint16 e ) utf8char[to] midstr ( utf8str¢, uint16 i, uint16 n ) utf8char[to] leftstr ( utf8str¢, uint16 n ) utf8char[to] rightstr ( utf8str¢, uint16 n ) utf8char numval ( utf8str¢ ) utf8char numval ( ucs1str¢ ) utf8char numval ( ucs2str¢ ) void flip ( ucs1char[to] ) = opcode flip void rol ( ucs1char[to] ) = opcode rol void ror ( ucs1char[to] ) = opcode ror void sort ( ucs1char[to] ) = opcode sort void rsort ( ucs1char[to] ) = opcode rsort void shuffle ( ucs1char[to] ) = opcode shuffle void revert ( ucs1char[to] ) = opcode revert ucs1str join ( ucs1str[]¢, ucs1char ) = opcode join ucs1str join ( ucs1str[]¢, ucs1str¢ ) = opcode join ucs1str[] split ( ucs1str¢, ucs1char ) = opcode split ucs1str[] split ( ucs1str¢, ucs1str¢ ) = opcode split ucs1char min ( ucs1char, ucs1char ) ucs1char min ( ucs1char, ucs1char, ucs1char ) ucs1char min ( ucs1char[to] ) ucs1char max ( ucs1char, ucs1char ) ucs1char max ( ucs1char, ucs1char, ucs1char ) ucs1char max ( ucs1char[to] ) uint16 find ( ucs1char[to], ucs1char ) = opcode find uint16 find ( ucs1char[to], ucs1str¢ ) = opcode find uint16 rfind ( ucs1char[to], ucs1char ) = opcode rfind uint16 rfind ( ucs1char[to], ucs1str¢ ) = opcode rfind void shrinktofit ( ucs1str& ) ucs1char[to] substr ( ucs1str¢, uint16 a, uint16 e ) ucs1char[to] midstr ( ucs1str¢, uint16 i, uint16 n ) ucs1char[to] leftstr ( ucs1str¢, uint16 n ) ucs1char[to] rightstr ( ucs1str¢, uint16 n ) ucs1char numval ( utf8str¢ ) ucs1char numval ( ucs1str¢ ) ucs1char numval ( ucs2str¢ ) void flip ( ucs2char[to] ) = opcode flip void rol ( ucs2char[to] ) = opcode rol void ror ( ucs2char[to] ) = opcode ror void sort ( ucs2char[to] ) = opcode sort void rsort ( ucs2char[to] ) = opcode rsort void shuffle ( ucs2char[to] ) = opcode shuffle void revert ( ucs2char[to] ) = opcode revert ucs2str join ( ucs2str[]¢, ucs2char ) = opcode join ucs2str join ( ucs2str[]¢, ucs2str¢ ) = opcode join ucs2str[] split ( ucs2str¢, ucs2char ) = opcode split ucs2str[] split ( ucs2str¢, ucs2str¢ ) = opcode split ucs2char min ( ucs2char, ucs2char ) ucs2char min ( ucs2char, ucs2char, ucs2char ) ucs2char min ( ucs2char[to] ) ucs2char max ( ucs2char, ucs2char ) ucs2char max ( ucs2char, ucs2char, ucs2char ) ucs2char max ( ucs2char[to] ) uint16 find ( ucs2char[to], ucs2char ) = opcode find uint16 find ( ucs2char[to], ucs2str¢ ) = opcode find uint16 rfind ( ucs2char[to], ucs2char ) = opcode rfind uint16 rfind ( ucs2char[to], ucs2str¢ ) = opcode rfind void shrinktofit ( ucs2str& ) ucs2char[to] substr ( ucs2str¢, uint16 a, uint16 e ) ucs2char[to] midstr ( ucs2str¢, uint16 i, uint16 n ) ucs2char[to] leftstr ( ucs2str¢, uint16 n ) ucs2char[to] rightstr ( ucs2str¢, uint16 n ) ucs2char numval ( utf8str¢ ) ucs2char numval ( ucs1str¢ ) ucs2char numval ( ucs2str¢ ) bool is_letter ( ucs1char ) bool is_bin_digit ( ucs1char ) bool is_dec_digit ( ucs1char ) bool is_hex_digit ( ucs1char ) uint16 digit_value ( ucs1char ) float32 round ( float32 ) float32 floor ( float32 ) float32 ceil ( float32 ) float32 integ ( float32 ) float32 fract ( float32 ) int16 sign ( float32 ) float32 abs ( float32 ) float32 min ( float32, float32 ) float32 max ( float32, float32 ) float32 min ( float32, float32, float32 ) float32 max ( float32, float32, float32 ) float32 random () float32 random ( float32 ) float32 sin ( float32 ) float32 cos ( float32 ) float32 tan ( float32 ) float32 asin ( float32 ) float32 acos ( float32 ) float32 atan ( float32 ) float32 sinh ( float32 ) float32 cosh ( float32 ) float32 tanh ( float32 ) float32 exp10 ( float32 ) float32 log10 ( float32 ) float32 exp2 ( float32 ) float32 log2 ( float32 ) float32 expe ( float32 ) float32 loge ( float32 ) float32 exp ( float32, float32 ) float32 log ( float32, float32 ) float32 pow ( float32, int16 ) float32 sqrt ( float32 ) ucs1str numstr ( float32 ) float32 numval ( ucs1str¢ ) float32 min ( float32[]¢ ) float32 min ( float32[to] ) float32 max ( float32[]¢ ) float32 max ( float32[to] ) ucs1str spacestr ( uint16 ) ucs1str spacestr ( uint16, ucs1char ) ucs1str charstr ( uint16 ) ucs1char hexchar ( uint16 ) ucs1str hexstr ( uint8 ) ucs1str hexstr ( uint16 ) ucs1str hexstr ( uint32 ) ucs1str hexstr ( uint16, uint16 digits ) ucs1str hexstr ( uint32, uint16 digits ) ucs1str binstr ( uint8 ) ucs1str binstr ( uint16 ) ucs1str binstr ( uint32 ) ucs1str binstr ( uint16, uint16 digits ) ucs1str binstr ( uint32, uint16 digits ) ucs1str binstr ( uint16, ucs1str¢ o, ucs1str¢ l ) ucs1str binstr ( uint32, ucs1str¢ o, ucs1str¢ l ) ucs1str numstr ( int16 ) ucs1str numstr ( uint16 ) ucs1str numstr ( int32 ) ucs1str numstr ( uint32 ) ucs1str toupper ( ucs1str¢ ) ucs1str tolower ( ucs1str¢ ) ucs1str escape ( ucs1str¢, ucs1char leftquote ) ucs1str unescape ( ucs1str¢ ) ucs1str urlencode ( ucs1str¢ ) ucs1str urldecode ( ucs1str¢ ) ucs1str entab ( ucs1str¢, uint16 tabwidth ) ucs1str detab ( ucs1str¢, uint16 tabwidth ) ucs1str toupper ( ucs1char[to] ) ucs1str tolower ( ucs1char[to] ) ucs1str escape ( ucs1char[to], ucs1char leftquote ) ucs1str unescape ( ucs1char[to] ) ucs1str urlencode ( ucs1char[to] ) ucs1str urldecode ( ucs1char[to] ) ucs1str entab ( ucs1char[to], uint16 tabwidth ) ucs1str detab ( ucs1char[to], uint16 tabwidth ) ucs1str toucs1 ( ucs1str¢ ) ucs2str toucs2 ( ucs1str¢ ) utf8str toutf8 ( ucs1str¢ ) ucs1str toucs1 ( ucs1char[to] ) ucs2str toucs2 ( ucs1char[to] ) utf8str toutf8 ( ucs1char[to] ) ucs1str min ( ucs1str, ucs1str ) ucs1str min ( ucs1str, ucs1str¢ ) ucs1str min ( ucs1str¢, ucs1str ) ucs1str¢ min ( ucs1str¢, ucs1str¢ ) ucs1str¢ min ( ucs1str[]¢ ) ucs1str¢ min ( ucs1str[to] ) ucs1str max ( ucs1str, ucs1str ) ucs1str max ( ucs1str, ucs1str¢ ) ucs1str max ( ucs1str¢, ucs1str ) ucs1str¢ max ( ucs1str¢, ucs1str¢ ) ucs1str¢ max ( ucs1str[]¢ ) ucs1str¢ max ( ucs1str[to] ) void flip ( ucs1str[to] ) void rol ( ucs1str[to] ) void ror ( ucs1str[to] ) void sort ( ucs1str[to] ) void rsort ( ucs1str[to] ) void shuffle ( ucs1str[to] ) void revert ( ucs1str[to] ) const uint16 tm_utc = 0 const uint16 tm_localtime = 1 const uint16 tm_time = 2 const uint16 tm_date = 4 const uint16 tm_timezone = 8 const uint16 tm_sec = 16 const uint16 tm_msec = 32 float32 now () ucs1str timestr ( float32 seconds, uint16 flags ) float32 timeval ( ucs1str¢, uint16 flags ) const uint8 c_reset = 0 const uint8 c_speed = 1 const uint8 c_hwhsk = 2 const uint8 c_swhsk = 3 const uint8 c_flushin = 4 const uint8 c_availin = 4 const uint8 c_flushout = 5 const uint8 c_availout = 5 const uint8 c_clk_hsk = 6 const uint8 c_log2blocksize = 7 const uint8 c_totalblocks_lo = 8 const uint8 c_totalblocks_hi = 9 const uint8 c_reserved2 = 10 type OSErr = enum uint8 const OSErr ok = 0 const OSErr parameter_error = 1 const OSErr function_not_supported = 1 const OSErr io_error = 2 const OSErr device_not_responding = 3 const OSErr file_error = 4 const OSErr filesystem_invalid = 5 const OSErr device_not_found = 6 const OSErr directory_not_found = 7 const OSErr file_not_found = 8 const OSErr not_a_directory = 9 const OSErr is_a_directory = 10 const OSErr file_already_open_for_writing = 11 const OSErr file_already_open = 12 const OSErr file_exists = 13 const OSErr file_not_writable = 14 const OSErr end_of_file = 15 const OSErr disk_full = 16 const OSErr directory_corrupted = 17 const OSErr filesystem_corrupted = 18 var OSErr errno OSErr error () void clear_error () void set_error ( OSErr ) bool yes_with_error ( OSErr ) void* null_with_error ( OSErr ) type NodeType = enum uint8 NodeType operator | ( NodeType, NodeType ) = opcode | NodeType operator & ( NodeType, NodeType ) = opcode & const NodeType t_endmarker = 0 const NodeType t_file = 1 const NodeType t_dir = 2 const NodeType t_ser = 3 const NodeType t_block = 4 const NodeType m_erased = 128 type FD_Handlers = { uint16(FD¢, uint8) getctl, void(FD¢, uint8, uint16) setctl, uint16(FD¢) avail_in, uint16(FD¢) avail_out, ucs1char(FD¢) getc, void(FD¢, ucs1char) putc, bool(FD¢, uint8[to]) read, bool(FD¢, uint8[to]) write, bool(FD¢, uint32, uint8[]¢) read_block, bool(FD¢, uint32, uint8[]¢) write_block, void(FD¢) kill, uint32(FD¢) getfpos, bool(FD¢, uint32) setfpos } var uint16(FD¢, uint8) getctl var void(FD¢, uint8, uint16) setctl var uint16(FD¢) avail_in var uint16(FD¢) avail_out var ucs1char(FD¢) getc var void(FD¢, ucs1char) putc var bool(FD¢, uint8[to]) read var bool(FD¢, uint8[to]) write var bool(FD¢, uint32, uint8[]¢) read_block var bool(FD¢, uint32, uint8[]¢) write_block var void(FD¢) kill var uint32(FD¢) getfpos var bool(FD¢, uint32) setfpos uint16 no_avail_in ( FD¢ ) uint16 no_avail_out ( FD¢ ) ucs1char no_getc ( FD¢ ) void no_putc ( FD¢, ucs1char ) uint32 no_getfpos ( FD¢ ) bool no_setfpos ( FD¢, uint32 ) bool no_read ( FD¢, uint8[to] ) bool no_write ( FD¢, uint8[to] ) bool no_read_block ( FD¢, uint32, uint8[]¢ ) bool no_write_block ( FD¢, uint32, uint8[]¢ ) uint16 avail_in () uint16 avail_out () extern const uint16 delimiters = 13329 ucs1char getc () void putc ( ucs1char c ) ucs1str gets ( uint16 delimiters ) void puts ( ucs1str¢ ) void puts ( ucs1str ) void putnum ( uint16 ) void putnum ( int16 ) bool read ( uint8[to] ) bool write ( uint8[to] ) extern const bool option_a5 = 1 extern const uint8 bSIO_SELECT = 1 extern const uint8 bIDE_SELECT = 2 extern const uint8 mSIO_SELECT = 253 extern const uint8 mIDE_SELECT = 251 type BlockDevice = FD + { uint16 blocksize, uint16 blockmask, uint8 log2blocksize, uint32 totalblocks, bool wide, File[] open_files, init ( BlockDevice¢, NodeType, ucs1str¢ name, FD_Handlers¢, uint8 log2blksz, uint32 totalblocks ), kill ( BlockDevice¢ ), 16 getctl ( BlockDevice¢ fd, uint8 fu ), setctl ( BlockDevice¢ fd, uint8 fu, uint16 n ), e allocate_blocks ( BlockDevice¢ bdev, uint32 maxnum, uint32 bestpos ) } var uint16 blocksize var uint16 blockmask var uint8 log2blocksize var uint32 totalblocks var bool wide var File[] open_files void init ( BlockDevice¢, NodeType, ucs1str¢ name, FD_Handlers¢, uint8 log2blksz, uint32 totalblocks ) void kill ( BlockDevice¢ ) uint16 getctl ( BlockDevice¢ fd, uint8 fu ) void setctl ( BlockDevice¢ fd, uint8 fu, uint16 n ) Range allocate_blocks ( BlockDevice¢ bdev, uint32 maxnum, uint32 bestpos ) type IdeBlockDevice = {} type I2cBlockDevice = {} type SerialDevice = {} type Range = { uint32 start, uint32 count, 32 ende ( Range¢ r ) } var uint32 start var uint32 count uint32 ende ( Range¢ r ) type File = BlockDevice + { uint32 parent, BlockDevice device, uint32 fsize, Ranges ranges, bool writable, bool file_dirty, bool buffer_dirty, bool buffer_valid, uint8[] buffer, uint32 blkno, uint32 fpos, uint16 ri, uint32 bi, kill ( File ), kill ( File¢ fd ), 16 getctl ( File¢ fd, uint8 fu ), setctl ( File¢ this, uint8 fu, uint16 value ), 16 bu_free ( File¢ fd ), 16 bu_avail ( File¢ fd ), 16 avail_in ( File¢ ), 16 avail_out ( File¢ ), 32 getfpos ( File¢ fd ), 32 getfsize ( File¢ fd ), 32 getfavail ( File¢ fd ), setfpos ( File¢ fd, uint32 newfpos ), rewind ( File¢ fd ), seek_end ( File¢ fd ), skip ( File¢ fd, int32 n ), truncate ( File¢ fd ), readbyte ( File¢ fd, uint8& n ), writebyte ( File¢ fd, uint8 n ), char getc ( File¢ fd ), putc ( File¢ fd, ucs1char c ), puts ( File¢ fd, ucs1str¢ s ), puts ( File¢ fd, ucs1str s ), write ( File¢ fd, uint8[]¢ bu, uint16 a, uint16 e ), read ( File¢ fd, uint8[]¢ bu, uint16 a, uint16 e ), write ( File¢, uint8[to] ), read ( File¢, uint8[to] ), write_block ( File¢ fd, uint32 fblk, uint8[]¢ bu ), read_block ( File¢ fd, uint32 fblk, uint8[]¢ bu ), copy_block ( File¢ fd, uint32 z, uint32 q, uint32 n ), open_gap ( File¢ fd, uint32 start, uint32 size ), close_gap ( File¢ fd, uint32 start, uint32 size ), sync ( File¢ ), purge_buffer ( File¢ fd ), 32 block0 ( File¢ fd ), _rewind ( File¢ fd ), _increment_ribi_for_fpos ( File¢ fd ), _copy_block ( File¢ fd, uint32 z, uint32 q, uint16 n, uint8[]¢ bu ), 32 diskblock_for_fileblock ( File¢ fd, uint32 fblk ), append_blocks ( File¢ fd, uint32 num ), write_buffer_to_disk ( File¢ fd ), set_buffer_to_fpos ( File¢ fd ), read_buffer_from_disk ( File¢ fd ) } var uint32 parent var BlockDevice device var uint32 fsize var Ranges ranges var bool writable var bool file_dirty var bool buffer_dirty var bool buffer_valid var uint8[] buffer var uint32 blkno var uint32 fpos var uint16 ri var uint32 bi File kill ( File ) void kill ( File¢ fd ) uint16 getctl ( File¢ fd, uint8 fu ) void setctl ( File¢ this, uint8 fu, uint16 value ) uint16 bu_free ( File¢ fd ) uint16 bu_avail ( File¢ fd ) var uint32 favail uint16 avail_in ( File¢ ) uint16 avail_out ( File¢ ) uint32 getfpos ( File¢ fd ) uint32 getfsize ( File¢ fd ) uint32 getfavail ( File¢ fd ) bool setfpos ( File¢ fd, uint32 newfpos ) local scope ANON local scope ANON var uint32 n bool rewind ( File¢ fd ) bool seek_end ( File¢ fd ) bool skip ( File¢ fd, int32 n ) bool truncate ( File¢ fd ) bool readbyte ( File¢ fd, uint8& n ) bool writebyte ( File¢ fd, uint8 n ) ucs1char getc ( File¢ fd ) void putc ( File¢ fd, ucs1char c ) void puts ( File¢ fd, ucs1str¢ s ) void puts ( File¢ fd, ucs1str s ) bool write ( File¢ fd, uint8[]¢ bu, uint16 a, uint16 e ) local scope ANON var uint16 m var uint16 n bool read ( File¢ fd, uint8[]¢ bu, uint16 a, uint16 e ) local scope ANON var uint16 m var uint16 n bool write ( File¢, uint8[to] ) bool read ( File¢, uint8[to] ) bool write_block ( File¢ fd, uint32 fblk, uint8[]¢ bu ) bool read_block ( File¢ fd, uint32 fblk, uint8[]¢ bu ) bool copy_block ( File¢ fd, uint32 z, uint32 q, uint32 n ) var uint16 blocksize var uint8[] bu local scope ANON var uint16 m local scope ANON var uint16 m bool open_gap ( File¢ fd, uint32 start, uint32 size ) bool close_gap ( File¢ fd, uint32 start, uint32 size ) bool sync ( File¢ ) bool purge_buffer ( File¢ fd ) uint32 block0 ( File¢ fd ) void _rewind ( File¢ fd ) void _increment_ribi_for_fpos ( File¢ fd ) bool _copy_block ( File¢ fd, uint32 z, uint32 q, uint16 n, uint8[]¢ bu ) uint32 diskblock_for_fileblock ( File¢ fd, uint32 fblk ) var uint16 ri local scope ANON var Range¢ range bool append_blocks ( File¢ fd, uint32 num ) local scope ANON var Range¢ last var uint32 best var Range r local scope ANON var Range r bool write_buffer_to_disk ( File¢ fd ) bool set_buffer_to_fpos ( File¢ fd ) bool read_buffer_from_disk ( File¢ fd ) var uint8 k1_irpt_mask var uint8 sysflags var uint32 systemtime var uint16 period var uint32 timestamp var uint16 tsmsec var ucs1char* romdate var ucs1char* romtime var FD[] devs var File[] fds var FD stdin var FD stdout var SerialDevice sio1A var SerialDevice sio1B var IdeBlockDevice ide2A var IdeBlockDevice ide2B var I2cBlockDevice sio1rom var I2cBlockDevice ide2rom void di () void ei () void ei_all () void select ( uint8 ) uint8 in ( uint8 ) void out ( uint8, uint8 ) void wait () void memcpy ( void* z, void* q, uint16 cnt ) void memset ( void* z, uint16 c, uint16 cnt ) void memclr ( void* z, uint16 cnt ) void set_red_led () void set_yellow_led () void set_both_leds () void clear_both_leds () OSErr lock_eeprom () OSErr unlock_eeprom () void write_eeprom ( void* q, void* z, uint16 cnt ) void download_firmware () void abort () = opcode abort void panic ( uint8 blinkcode ) void assert1 ( bool ) void assert0 ( bool ) uint16 mem_get_free () uint16 mem_get_free_total () uint8 fd_function_not_supported () void sio_init_channel ( SerialDevice¢, ucs1str¢ name, uint8 devselbit, uint8 ch ) void ide_init_blockdevice ( BlockDevice¢ ) void i2c_init_blockdevice ( BlockDevice¢ ) Range new ( uint32 start, uint32 count ) var Range this type Ranges = Range[] uint32 totalblocks ( Ranges¢ ranges ) var uint32 n var uint16 i Range pop ( Ranges¢ ranges ) Ranges new ( Range range ) var Ranges ranges Ranges new ( uint32 start, uint32 count ) type FileType = enum uint8 var FD_Handlers file_handlers