Commit | Line | Data |
---|---|---|
8e9db35f PB |
1 | \ Load a file into an allocated memory image. |
2 | \ | |
3 | \ Author: Phil Burk | |
4 | \ Copyright 3DO 1995 | |
5 | ||
6 | anew task-load_file.fth | |
7 | ||
8 | : $LOAD.FILE { $filename | fid numbytes numread err data -- data-addr 0 | 0 err } | |
9 | 0 -> data | |
10 | \ open file | |
11 | $filename count r/o open-file -> err -> fid | |
12 | err | |
13 | IF | |
14 | ." $LOAD.FILE - Could not open input file!" cr | |
15 | ELSE | |
16 | \ determine size of file | |
17 | fid file-size -> err -> numbytes | |
18 | err | |
19 | IF | |
20 | ." $LOAD.FILE - File size failed!" cr | |
21 | ELSE | |
22 | ." File size = " numbytes . cr | |
23 | \ allocate memory for sample, when done free memory using FREE | |
24 | numbytes allocate -> err -> data | |
25 | err | |
26 | IF | |
27 | ." $LOAD.FILE - Memory allocation failed!" cr | |
28 | ELSE | |
29 | \ read data | |
30 | data numbytes fid read-file -> err | |
31 | ." Read " . ." bytes from file " $filename count type cr | |
32 | THEN | |
33 | THEN | |
34 | fid close-file drop | |
35 | THEN | |
36 | data err | |
37 | ; | |
38 | ||
39 | \ Example: c" myfile" $load.file abort" Oops!" free . |