initial commit
[fifth.git] / util / fsimport.bas
1 DECLARE SUB bytew (fi&, d&, addr&)\r
2 DECLARE SUB byter (fi&, addr&, d&)\r
3 DECLARE SUB dwordw (fi&, b&, a&)\r
4 DEFLNG A-Z\r
5 \r
6 DECLARE SUB savepath ()\r
7 DECLARE SUB getson (a$)\r
8 DECLARE SUB start ()\r
9 \r
10 DIM SHARED mitus, sona$(1 TO 50)\r
11 DIM SHARED byte AS STRING * 1\r
12 DIM SHARED length\r
13 DIM SHARED srcfile$\r
14 \r
15 start\r
16 \r
17 OPEN "..\disk.raw" FOR BINARY AS #1\r
18 savepath\r
19 SEEK #1, 2000101\r
20 OPEN srcfile$ FOR BINARY AS #2\r
21 2\r
22 IF EOF(2) <> 0 THEN GOTO 1\r
23 GET #2, , byte\r
24 length = length + 1\r
25 PUT #1, , byte\r
26 GOTO 2\r
27 1\r
28 CLOSE #2\r
29 dwordw 1, length - 1, 2000000\r
30 CLOSE #1\r
31 \r
32 SYSTEM\r
33 \r
34 SUB byter (fi, addr, d)\r
35 SEEK #1, addr + 1\r
36 GET fi, , byte\r
37 d = ASC(byte)\r
38 END SUB\r
39 \r
40 SUB bytew (fi, d, addr)\r
41 SEEK #1, addr + 1\r
42 byte = CHR$(d)\r
43 PUT #1, , byte\r
44 END SUB\r
45 \r
46 SUB dwordr (fi, a, f)\r
47 byter fi, a, b\r
48 byter fi, a + 1, c\r
49 byter fi, a + 2, d\r
50 byter fi, a + 3, e\r
51 f = e * 16777216\r
52 f = f + d * 65536 + c * 256 + b\r
53 END SUB\r
54 \r
55 SUB dwordw (fi, b, a)\r
56 c = b\r
57 d = c \ 16777216\r
58 c = c - (d * 16777216)\r
59 \r
60 e = c \ 65536\r
61 c = c - (e * 65536)\r
62 \r
63 f = c \ 256\r
64 c = c - (f * 256)\r
65 \r
66 bytew fi, c, a\r
67 bytew fi, f, a + 1\r
68 bytew fi, e, a + 2\r
69 bytew fi, d, a + 3\r
70 END SUB\r
71 \r
72 DEFSNG A-Z\r
73 SUB getson (a$)\r
74 mitus = 0\r
75 \r
76 d = 1\r
77 FOR b = 1 TO LEN(a$)\r
78 c$ = RIGHT$(LEFT$(a$, b), 1)\r
79 IF c$ = " " THEN\r
80 d = 1\r
81 ELSE\r
82 IF d = 1 THEN\r
83 mitus = mitus + 1\r
84 sona$(mitus) = ""\r
85 d = 0\r
86 END IF\r
87 sona$(mitus) = sona$(mitus) + c$\r
88 END IF\r
89 NEXT b\r
90 END SUB\r
91 \r
92 SUB savepath\r
93 a$ = COMMAND$ + "\"\r
94 f$ = ""\r
95 ext$ = ""\r
96 t$ = ""\r
97 m = 0\r
98 FOR b = 1 TO LEN(a$)\r
99   c$ = RIGHT$(LEFT$(a$, b), 1)\r
100   IF c$ = "." THEN m = 1: GOTO 3\r
101   IF c$ = "\" THEN\r
102     IF ext$ = "" THEN ext$ = "list"\r
103 4   IF LEN(ext$) < 4 THEN ext$ = ext$ + "_": GOTO 4\r
104     t$ = t$ + ext$ + f$ + "\"\r
105     f$ = ""\r
106     ext$ = ""\r
107     GOTO 3\r
108   END IF\r
109   IF m = 0 THEN f$ = f$ + c$ ELSE ext$ = ext$ + c$\r
110 3\r
111 NEXT b\r
112 t$ = LEFT$(t$, LEN(t$) - 1)\r
113 \r
114 ' PRINT a$\r
115 ' PRINT t$\r
116 \r
117 t$ = t$ + CHR$(254)\r
118 SEEK #1, 2000005\r
119 PUT #1, , t$\r
120 \r
121 \r
122 \r
123 \r
124 END SUB\r
125 \r
126 SUB start\r
127 \r
128 IF COMMAND$ = "" THEN END\r
129 \r
130 srcfile$ = COMMAND$\r
131 \r
132 \r
133 END SUB\r
134 \r