Lines Matching refs:virt
159 : vmem-alloc-prop ( size virt -- alloc-size virt )
160 2dup ['] vmem-alloc catch if ( size virt ??? ??? )
161 2drop ( size virt )
162 2dup begin ( size virt len adr )
163 over 32meg min >r ( size virt len adr r: alloc-sz )
164 r@ over vmem-alloc ( size virt len adr adr r: alloc-sz )
165 nip r@ + ( size virt len adr' r: alloc-sz )
166 swap r> - ( size virt adr len' )
167 swap over 0= ( size virt len' adr done? )
168 until ( size virt len' adr )
169 2drop nip 32meg ( virt 32meg )
170 else ( size virt virt )
171 nip nip 0 ( virt 0 )
172 then ( virt alloc-sz )
177 : read-file ( virt size fd -- failed? )
178 >r ( virt sz-left r: fd )
181 dup 4meg min ( virt sz-left read-sz r: fd )
182 3dup nip r@ fs-read ( virt sz-left read-sz size-read r: fd )
183 over <> if ( virt sz-left read-sz r: fd )
187 rot over + ( sz-left read-sz virt' r: fd )
188 -rot - ( virt' sz-left' r: fd )
195 \ if base==0, vmem-alloc will allocate virt
198 : get-file ( base fd -- [ alloc-sz virt size ] failed? )
200 dup rot vmem-alloc-prop ( size alloc-sz virt r: fd )
201 rot 2dup ( alloc-sz virt size virt size r: fd )
202 r> read-file if ( alloc-sz virt size )
205 h# 2000 roundup ( alloc-sz virt size' )
206 false ( alloc-sz virt size' succeeded )
603 : vmem-alloc-4mb ( size virt -- base )
630 : load-file ( -- virt )
633 loader-base over get-file if ( fd alloc-sz virt size )
636 to file-sz ( fd alloc-sz virt )
637 swap to rd-alloc-sz ( fd virt )
638 swap fs-close ( virt )
641 : setup-props ( virt -- virt )
649 : exec-file ( virt -- )
653 is-archive? if >bootblk then ( virt' )
669 load-file ( virt )