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