opcodes[]: global scope global { global scope implicit__FD { } type utf8str: type ucs1str: type ucs2str: type FD: void init ( FD¢ fd, NodeType nodetype, ucs1str¢ name, FD_Handlers¢ handlers ) { var FD¢ fd var NodeType nodetype var ucs1str¢ name var FD_Handlers¢ handlers lvar+0+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) lvar+6+2 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) poke ( FD_Handlers¢, FD_Handlers¢& -- ) lvar+2+0 "name" ( -- ucs1str¢& ) peek ( ucs1str¢& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) lvar+6+2 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+3 "name" ( -- ucs1str& ) poke ( ucs1str, ucs1str& -- ) lvar+4+0 "nodetype" ( -- NodeType& ) peek ( NodeType& -- NodeType ) lvar+6+2 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+2 "nodetype" ( -- NodeType& ) poke ( NodeType, NodeType& -- ) drop ( FD_Handlers¢ -- ) drop ( ucs1str¢ -- ) drop ( NodeType -- ) drop ( FD¢ -- ) } void kill ( FD¢ fd ) { var FD¢ fd lvar+0+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) dispose ( FD_Handlers -- ) lvar+0+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+3 "name" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) dispose ( ucs1str -- ) drop ( FD¢ -- ) } FD kill ( FD fd ) { var FD fd lvar+0+0 "fd" ( -- FD& ) peek ( FD& -- FD¢ ) lvar+0+2 "fd" ( -- FD& ) peek ( FD& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+20 "kill" ( -- void(FD¢)& ) peek ( void(FD¢)& -- void(FD¢) ) call_procptr ( FD¢, void(FD¢) ) } uint16 getctl ( FD¢ fd, uint8 fu ) { var FD¢ fd var uint8 fu lvar+2+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "fu" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+2+4 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+0 "getctl" ( -- uint16(FD¢, uint8)& ) peek ( uint16(FD¢, uint8)& -- uint16(FD¢, uint8) ) call_procptr ( FD¢, uint8, uint16(FD¢, uint8) -- uint16 ) tor ( uint16 -- ) drop ( uint8 -- ) drop ( FD¢ -- ) fromr ( -- uint16 ) } void setctl ( FD¢ fd, uint8 fu, uint16 n ) { var FD¢ fd var uint8 fu var uint16 n lvar+4+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+2+2 "fu" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+0+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+4+6 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+2 "setctl" ( -- void(FD¢, uint8, uint16)& ) peek ( void(FD¢, uint8, uint16)& -- void(FD¢, uint8, uint16) ) call_procptr ( FD¢, uint8, uint16, void(FD¢, uint8, uint16) ) drop ( uint16 -- ) drop ( uint8 -- ) drop ( FD¢ -- ) } uint16 avail_in ( FD¢ fd ) { var FD¢ fd lvar+0+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+4 "avail_in" ( -- uint16(FD¢)& ) peek ( uint16(FD¢)& -- uint16(FD¢) ) call_procptr ( FD¢, uint16(FD¢) -- uint16 ) tor ( uint16 -- ) drop ( FD¢ -- ) fromr ( -- uint16 ) } uint16 avail_out ( FD¢ fd ) { var FD¢ fd lvar+0+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+6 "avail_out" ( -- uint16(FD¢)& ) peek ( uint16(FD¢)& -- uint16(FD¢) ) call_procptr ( FD¢, uint16(FD¢) -- uint16 ) tor ( uint16 -- ) drop ( FD¢ -- ) fromr ( -- uint16 ) } ucs1char getc ( FD¢ fd ) { var FD¢ fd lvar+0+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+8 "getc" ( -- ucs1char(FD¢)& ) peek ( ucs1char(FD¢)& -- ucs1char(FD¢) ) call_procptr ( FD¢, ucs1char(FD¢) -- ucs1char ) tor ( ucs1char -- ) drop ( FD¢ -- ) fromr ( -- ucs1char ) } void putc ( FD¢ fd, ucs1char c ) { var FD¢ fd var ucs1char c lvar+2+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "c" ( -- ucs1char& ) peek ( ucs1char& -- ucs1char ) lvar+2+4 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+10 "putc" ( -- void(FD¢, ucs1char)& ) peek ( void(FD¢, ucs1char)& -- void(FD¢, ucs1char) ) call_procptr ( FD¢, ucs1char, void(FD¢, ucs1char) ) drop ( ucs1char -- ) drop ( FD¢ -- ) } ucs1str gets ( FD¢ fd, uint16 delimiters ) { var FD¢ fd var uint16 delimiters var ucs1char(FD¢) getc var uint16 n var uint16 i var ucs1str s local scope ANON var ucs1char c lvar+2+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+8 "getc" ( -- ucs1char(FD¢)& ) peek ( ucs1char(FD¢)& -- ucs1char(FD¢) ) 40 ( -- uint16 ) 0 ( -- uint16 ) lvar-4+6 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) alloc ( uint16 -- ucs1str ) call clear_error () L725: lvar+2+8 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar-2+10 "getc" ( -- ucs1char(FD¢)& ) peek ( ucs1char(FD¢)& -- ucs1char(FD¢) ) call_procptr ( FD¢, ucs1char(FD¢) -- ucs1char ) call error ( -- OSErr ) !! ( OSErr -- bool ) or1 ( bool -- ) -> L728 lvar-10+10 "c" ( -- ucs1char& ) peek ( ucs1char& -- ucs1char ) cast ( ucs1char -- uint8 ) 16 ( -- uint8 ) < ( uint8, uint8 -- bool ) and0 ( bool -- ) -> L728 1 ( -- uint16 ) lvar-10+12 "c" ( -- ucs1char& ) peek ( ucs1char& -- ucs1char ) cast ( ucs1char -- uint8 ) cast ( uint8 -- int16 ) << ( uint16, int16 -- uint16 ) lvar+0+12 "delimiters" ( -- uint16& ) peek ( uint16& -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) L728: jp_z ( bool -- ) -> L729 drop ( ucs1char -- ) jp ( -- ) -> L726 L729: lvar-6+10 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+12 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L730 40 ( -- uint16 ) lvar-4+12 "n" ( -- uint16& ) += ( uint16, uint16& -- ) lvar-8+10 "s" ( -- ucs1str& ) peek_nz ( ucs1str& -- ucs1str¢ ) lvar-4+12 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) grow ( ucs1str¢, uint16 -- ) jp ( -- ) -> L730 L730: lvar-10+10 "c" ( -- ucs1char& ) peek ( ucs1char& -- ucs1char ) lvar-8+12 "s" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-6+14 "i" ( -- uint16& ) peekpp ( uint16& -- uint16 ) atindex ( ucs1str¢, int16 -- ucs1char& ) poke ( ucs1char, ucs1char& -- ) drop ( ucs1char -- ) jp ( -- ) -> L725 L726: lvar-8+8 "s" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-6+10 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) shrink ( ucs1str¢, uint16 -- ) lvar-8+8 "s" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) tor ( ucs1str -- ) dispose ( ucs1str -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( ucs1char(FD¢) -- ) drop ( uint16 -- ) drop ( FD¢ -- ) fromr ( -- ucs1str ) local scope ANON { } } void puts ( FD¢ fd, ucs1str¢ s ) { var FD¢ fd var ucs1str¢ s lvar+2+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "s" ( -- ucs1str¢& ) peek ( ucs1str¢& -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lvar+2+8 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+14 "write" ( -- bool(FD¢, uint8[to])& ) peek ( bool(FD¢, uint8[to])& -- bool(FD¢, uint8[to]) ) call_procptr ( FD¢, uint8[to], bool(FD¢, uint8[to]) -- bool ) drop ( bool -- ) drop ( ucs1str¢ -- ) drop ( FD¢ -- ) } void puts ( FD¢ fd, ucs1str s ) { var FD¢ fd var ucs1str s lvar+2+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "s" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lvar+2+8 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+14 "write" ( -- bool(FD¢, uint8[to])& ) peek ( bool(FD¢, uint8[to])& -- bool(FD¢, uint8[to]) ) call_procptr ( FD¢, uint8[to], bool(FD¢, uint8[to]) -- bool ) drop ( bool -- ) dispose ( ucs1str -- ) drop ( FD¢ -- ) } void putnum ( FD¢ fd, uint16 n ) { var FD¢ fd var uint16 n lvar+0+0 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 10 ( -- uint16 ) >= ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L735 lvar+2+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) 10 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) call putnum ( FD¢, uint16 ) 10 ( -- uint16 ) lvar+0+2 "n" ( -- uint16& ) %= ( uint16, uint16& -- ) jp ( -- ) -> L735 L735: lvar+2+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) 48 ( -- ucs1char ) lvar+0+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint8 ) operator + ( ucs1char, uint8 -- ucs1char ) call putc ( FD¢, ucs1char ) drop ( uint16 -- ) drop ( FD¢ -- ) } void putnum ( FD¢ fd, int16 n ) { var FD¢ fd var int16 n lvar+0+0 "n" ( -- int16& ) peek ( int16& -- int16 ) 0 ( -- int16 ) < ( int16, int16 -- bool ) jp_z ( bool -- ) -> L738 lvar+2+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) 45 ( -- ucs1char ) call putc ( FD¢, ucs1char ) lvar+0+0 "n" ( -- int16& ) peek ( int16& -- int16 ) - ( int16 -- int16 ) lvar+0+2 "n" ( -- int16& ) poke ( int16, int16& -- ) jp ( -- ) -> L738 L738: lvar+2+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "n" ( -- int16& ) peek ( int16& -- int16 ) call putnum ( FD¢, uint16 ) drop ( int16 -- ) drop ( FD¢ -- ) } bool read ( FD¢ fd, uint8[to] bu ) { var FD¢ fd var uint8[to] bu lvar+6+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "bu" ( -- uint8[to]& ) peek ( uint8[to]& -- uint8[to] ) lvar+6+8 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+12 "read" ( -- bool(FD¢, uint8[to])& ) peek ( bool(FD¢, uint8[to])& -- bool(FD¢, uint8[to]) ) call_procptr ( FD¢, uint8[to], bool(FD¢, uint8[to]) -- bool ) tor ( bool -- ) drop ( uint8[to] -- ) drop ( FD¢ -- ) fromr ( -- bool ) } bool write ( FD¢ fd, uint8[to] bu ) { var FD¢ fd var uint8[to] bu lvar+6+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "bu" ( -- uint8[to]& ) peek ( uint8[to]& -- uint8[to] ) lvar+6+8 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+14 "write" ( -- bool(FD¢, uint8[to])& ) peek ( bool(FD¢, uint8[to])& -- bool(FD¢, uint8[to]) ) call_procptr ( FD¢, uint8[to], bool(FD¢, uint8[to]) -- bool ) tor ( bool -- ) drop ( uint8[to] -- ) drop ( FD¢ -- ) fromr ( -- bool ) } bool read_block ( FD¢ fd, uint32 blk, uint8[]¢ bu ) { var FD¢ fd var uint32 blk var uint8[]¢ bu lvar+6+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+2+2 "blk" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar+0+6 "bu" ( -- uint8[]¢& ) peek ( uint8[]¢& -- uint8[]¢ ) lvar+6+8 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+16 "read_block" ( -- bool(FD¢, uint32, uint8[]¢)& ) peek ( bool(FD¢, uint32, uint8[]¢)& -- bool(FD¢, uint32, uint8[]¢) ) call_procptr ( FD¢, uint32, uint8[]¢, bool(FD¢, uint32, uint8[]¢) -- bool ) tor ( bool -- ) drop ( uint8[]¢ -- ) drop ( uint32 -- ) drop ( FD¢ -- ) fromr ( -- bool ) } bool write_block ( FD¢ fd, uint32 blk, uint8[]¢ bu ) { var FD¢ fd var uint32 blk var uint8[]¢ bu lvar+6+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+2+2 "blk" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar+0+6 "bu" ( -- uint8[]¢& ) peek ( uint8[]¢& -- uint8[]¢ ) lvar+6+8 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+18 "write_block" ( -- bool(FD¢, uint32, uint8[]¢)& ) peek ( bool(FD¢, uint32, uint8[]¢)& -- bool(FD¢, uint32, uint8[]¢) ) call_procptr ( FD¢, uint32, uint8[]¢, bool(FD¢, uint32, uint8[]¢) -- bool ) tor ( bool -- ) drop ( uint8[]¢ -- ) drop ( uint32 -- ) drop ( FD¢ -- ) fromr ( -- bool ) } uint32 getfpos ( FD¢ fd ) { var FD¢ fd lvar+0+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+22 "getfpos" ( -- uint32(FD¢)& ) peek ( uint32(FD¢)& -- uint32(FD¢) ) call_procptr ( FD¢, uint32(FD¢) -- uint32 ) tor ( uint32 -- ) drop ( FD¢ -- ) fromr ( -- uint32 ) } bool setfpos ( FD¢ fd, uint32 fpos ) { var FD¢ fd var uint32 fpos lvar+4+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) lvar+0+2 "fpos" ( -- uint32& ) peek ( uint32& -- uint32 ) lvar+4+6 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+0 "handlers" ( -- FD_Handlers¢& ) peek ( FD_Handlers¢& -- FD_Handlers¢ ) item+24 "setfpos" ( -- bool(FD¢, uint32)& ) peek ( bool(FD¢, uint32)& -- bool(FD¢, uint32) ) call_procptr ( FD¢, uint32, bool(FD¢, uint32) -- bool ) tor ( bool -- ) drop ( uint32 -- ) drop ( FD¢ -- ) fromr ( -- bool ) } bool is_dir ( FD¢ fd ) { var FD¢ fd lvar+0+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+2 "nodetype" ( -- NodeType& ) peek ( NodeType& -- NodeType ) cast ( NodeType -- uint8 ) 2 ( -- uint8 ) == ( uint8, uint8 -- bool ) tor ( bool -- ) drop ( FD¢ -- ) fromr ( -- bool ) } bool is_file ( FD¢ fd ) { var FD¢ fd lvar+0+0 "fd" ( -- FD¢& ) peek ( FD¢& -- FD¢ ) item+2 "nodetype" ( -- NodeType& ) peek ( NodeType& -- NodeType ) cast ( NodeType -- uint8 ) 1 ( -- uint8 ) == ( uint8, uint8 -- bool ) tor ( bool -- ) drop ( FD¢ -- ) fromr ( -- bool ) } OSErr error () { ;return errno; push de ld a,(errno) jp ld_de_a_next } void clear_error () { ;errno = ok; xor a ld (errno),a jp next } void set_error ( OSErr e ) { var OSErr e ;errno = e; ld a,e ld (errno),a jp pop_de_next } bool yes_with_error ( OSErr e ) { var OSErr e ;errno = e; ld a,e ld (errno),a ;return yes; jp return_true } void* null_with_error ( OSErr e ) { var OSErr e ;errno = e; ld a,e ld (errno),a ;return null; jp return_false } uint16 no_avail_in ( FD¢ fd ) { var FD¢ fd 1 ( -- OSErr ) call set_error ( OSErr ) 0 ( -- uint16 ) tor ( uint16 -- ) drop ( FD¢ -- ) fromr ( -- uint16 ) } void no_putc ( FD¢ fd, ucs1char ) { var FD¢ fd var ucs1char ANON 1 ( -- OSErr ) call set_error ( OSErr ) drop ( ucs1char -- ) drop ( FD¢ -- ) } uint32 no_getfpos ( FD¢ fd ) { var FD¢ fd 1 ( -- OSErr ) call set_error ( OSErr ) 0 ( -- uint32 ) tor ( uint32 -- ) drop ( FD¢ -- ) fromr ( -- uint32 ) } bool no_setfpos ( FD¢ fd, uint32 ) { var FD¢ fd var uint32 ANON 1 ( -- OSErr ) call yes_with_error ( OSErr -- bool ) tor ( bool -- ) drop ( uint32 -- ) drop ( FD¢ -- ) fromr ( -- bool ) } bool no_read ( FD¢ fd, uint8[to] ) { var FD¢ fd var uint8[to] ANON 1 ( -- OSErr ) call yes_with_error ( OSErr -- bool ) tor ( bool -- ) drop ( uint8[to] -- ) drop ( FD¢ -- ) fromr ( -- bool ) } bool no_read_block ( FD¢ fd, uint32, uint8[]¢ ) { var FD¢ fd var uint32 ANON var uint8[]¢ ANON 1 ( -- OSErr ) call yes_with_error ( OSErr -- bool ) tor ( bool -- ) drop ( uint8[]¢ -- ) drop ( uint32 -- ) drop ( FD¢ -- ) fromr ( -- bool ) } uint16 avail_in () { ;return stdin.avail_in(); push de ld de,(stdin) jp FD.avail_in__2FDC_6uint16 } uint16 avail_out () { ;return stdout.avail_out(); push de ld de,(stdout) jp FD.avail_out__2FDC_6uint16 } ucs1char getc () { ;return stdin.getc (); push de ld de,(stdin) jp FD.getc__2FDC_8ucs1char } void putc ( ucs1char c ) { var ucs1char c ;stdout.putc (c); ld hl,(stdout) push hl jp FD.putc__2FDC_8ucs1char_ } ucs1str gets ( uint16 delimiters ) { var uint16 delimiters ;return stdin.gets (delimiters); ld hl,(stdin) push hl jp FD.gets__2FDC_6uint16_8ucs1charAE } void puts ( ucs1str¢ s ) { var ucs1str¢ s ;stdout.puts (s); ld hl,(stdout) push hl jp FD.puts__2FDC_8ucs1charAEC_ } void puts ( ucs1str s ) { var ucs1str s ;stdout.puts (s); ld hl,(stdout) push hl jp FD.puts__2FDC_8ucs1charAE_ } void putnum ( uint16 n ) { var uint16 n ;stdout.putnum (n); ld hl,(stdout) push hl jp FD.putnum__2FDC_6uint16_ } void putnum ( int16 n ) { var int16 n ;stdout.putnum (n); ld hl,(stdout) push hl jp FD.putnum__2FDC_5int16_ } bool read ( uint8[to] range ) { var uint8[to] range ;return stdin.read (range); ld hl,(stdin) ;pop de ; de = r.e pop af ; af = r.a ex hl,(sp) ; hl = r.handle, stack:stdin push hl push af ;push de jp FD.read__2FDC_5uint8ATOE_4bool } bool write ( uint8[to] range ) { var uint8[to] range ;return stdout.write(range); ld hl,(stdout) ;pop de ; de = r.e pop af ; af = r.a ex hl,(sp) ; hl = r.handle, stack:stdin push hl push af ;push de jp FD.write__2FDC_5uint8ATOE_4bool } type BlockDevice: type SerialDevice: type Range: type File: type Ranges: }