dsktool 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/dsktool.rb +14 -7
- data/doc/classes/AppleSoftFile.html +19 -18
- data/doc/classes/AppleSoftFile.src/M000011.html +4 -4
- data/doc/classes/AppleSoftFile.src/M000012.html +4 -4
- data/doc/classes/AppleSoftFile.src/M000013.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000014.html +18 -0
- data/doc/classes/BinaryFile.html +19 -18
- data/doc/classes/BinaryFile.src/M000024.html +4 -4
- data/doc/classes/BinaryFile.src/M000025.html +4 -5
- data/doc/classes/BinaryFile.src/M000026.html +19 -0
- data/doc/classes/BinaryFile.src/M000029.html +18 -0
- data/doc/classes/BinaryFile.src/M000030.html +18 -0
- data/doc/classes/BinaryFile.src/M000031.html +19 -0
- data/doc/classes/D65.html +10 -10
- data/doc/classes/D65.src/M000009.html +4 -50
- data/doc/classes/D65.src/M000010.html +18 -0
- data/doc/classes/D65.src/M000011.html +64 -0
- data/doc/classes/DOSDisk.html +15 -15
- data/doc/classes/DOSDisk.src/M000014.html +6 -5
- data/doc/classes/DOSDisk.src/M000015.html +6 -62
- data/doc/classes/DOSDisk.src/M000016.html +19 -0
- data/doc/classes/DOSDisk.src/M000017.html +76 -0
- data/doc/classes/DOSFile.html +19 -18
- data/doc/classes/DOSFile.src/M000027.html +8 -3
- data/doc/classes/DOSFile.src/M000028.html +3 -4
- data/doc/classes/DOSFile.src/M000029.html +18 -0
- data/doc/classes/DOSFile.src/M000032.html +22 -0
- data/doc/classes/DOSFile.src/M000033.html +17 -0
- data/doc/classes/DOSFile.src/M000034.html +18 -0
- data/doc/classes/DSK.html +35 -35
- data/doc/classes/DSK.src/M000017.html +8 -8
- data/doc/classes/DSK.src/M000018.html +8 -13
- data/doc/classes/DSK.src/M000019.html +8 -5
- data/doc/classes/DSK.src/M000020.html +20 -4
- data/doc/classes/DSK.src/M000021.html +4 -25
- data/doc/classes/DSK.src/M000022.html +4 -9
- data/doc/classes/DSK.src/M000023.html +40 -0
- data/doc/classes/DSK.src/M000024.html +23 -0
- data/doc/classes/IntegerBasicFile.html +19 -18
- data/doc/classes/IntegerBasicFile.src/M000005.html +4 -4
- data/doc/classes/IntegerBasicFile.src/M000006.html +4 -4
- data/doc/classes/IntegerBasicFile.src/M000007.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000008.html +18 -0
- data/doc/classes/RDoc.html +5 -5
- data/doc/classes/RDoc.src/M000033.html +40 -0
- data/doc/classes/RDoc.src/M000038.html +40 -0
- data/doc/classes/SCAsmFile.html +226 -0
- data/doc/classes/SCAsmFile.src/M000025.html +18 -0
- data/doc/classes/SCAsmFile.src/M000026.html +18 -0
- data/doc/classes/SCAsmFile.src/M000027.html +18 -0
- data/doc/classes/SCAsmFile.src/M000028.html +36 -0
- data/doc/classes/TestDOSDisks.html +31 -1
- data/doc/classes/TestDOSDisks.src/M000003.html +3 -21
- data/doc/classes/TestDOSDisks.src/M000004.html +41 -0
- data/doc/classes/TestDOSDisks.src/M000005.html +27 -0
- data/doc/classes/TestDisassembly.html +5 -5
- data/doc/classes/TestDisassembly.src/M000008.html +19 -0
- data/doc/classes/TestDisassembly.src/M000009.html +19 -0
- data/doc/classes/TextFile.html +19 -18
- data/doc/classes/TextFile.src/M000030.html +4 -4
- data/doc/classes/TextFile.src/M000031.html +4 -6
- data/doc/classes/TextFile.src/M000032.html +20 -0
- data/doc/classes/TextFile.src/M000035.html +18 -0
- data/doc/classes/TextFile.src/M000036.html +18 -0
- data/doc/classes/TextFile.src/M000037.html +20 -0
- data/doc/created.rid +1 -1
- data/doc/dot/f_3.dot +13 -0
- data/doc/dot/f_3.png +0 -0
- data/doc/files/bin/dsktool_rb.html +32 -22
- data/doc/files/lib/DOSDisk_rb.html +1 -1
- data/doc/files/lib/DOSFile_rb.html +5 -4
- data/doc/files/lib/DSK_rb.html +3 -1
- data/doc/files/test/tc_dos_disks_rb.html +1 -1
- data/doc/fr_class_index.html +1 -0
- data/doc/fr_method_index.html +36 -30
- data/lib/CHANGES.txt +5 -0
- data/lib/DOSDisk.rb +1 -1
- data/lib/DOSFile.rb +91 -0
- data/lib/DSK.rb +10 -2
- data/test/AAL_1.DSK +0 -0
- data/test/tc_dos_disks.rb +25 -3
- metadata +37 -1
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>file_type (TextFile)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSFile.rb, line 29</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">file_type</span>
|
15
|
+
<span class="ruby-value str">"T"</span>
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
17
|
+
</body>
|
18
|
+
</html>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>file_extension (TextFile)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSFile.rb, line 33</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">file_extension</span>
|
15
|
+
<span class="ruby-value str">".txt"</span>
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
17
|
+
</body>
|
18
|
+
</html>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>to_s (TextFile)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSFile.rb, line 37</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
15
|
+
<span class="ruby-identifier">s</span>=<span class="ruby-value str">""</span>
|
16
|
+
<span class="ruby-ivar">@contents</span>.<span class="ruby-identifier">each_byte</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span><span class="ruby-operator">+=</span>(<span class="ruby-identifier">b</span><span class="ruby-operator">%</span><span class="ruby-value">0x80</span>).<span class="ruby-identifier">chr</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value">0x0</span><span class="ruby-constant">D</span>.<span class="ruby-identifier">chr</span>,<span class="ruby-value str">"\n"</span>)}
|
17
|
+
<span class="ruby-identifier">s</span>
|
18
|
+
<span class="ruby-keyword kw">end</span></pre>
|
19
|
+
</body>
|
20
|
+
</html>
|
data/doc/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Sat Jun 16
|
1
|
+
Sat Jun 16 20:50:35 AUS Eastern Standard Time 2007
|
data/doc/dot/f_3.dot
CHANGED
@@ -28,6 +28,15 @@ digraph TopLevel {
|
|
28
28
|
label = "AppleSoftFile"
|
29
29
|
]
|
30
30
|
|
31
|
+
SCAsmFile [
|
32
|
+
fontcolor = black,
|
33
|
+
URL = "classes/SCAsmFile.html",
|
34
|
+
shape = ellipse,
|
35
|
+
color = palegoldenrod,
|
36
|
+
style = filled,
|
37
|
+
label = "SCAsmFile"
|
38
|
+
]
|
39
|
+
|
31
40
|
BinaryFile [
|
32
41
|
fontcolor = black,
|
33
42
|
URL = "classes/BinaryFile.html",
|
@@ -63,6 +72,10 @@ digraph TopLevel {
|
|
63
72
|
|
64
73
|
]
|
65
74
|
|
75
|
+
DOSFile -> SCAsmFile [
|
76
|
+
|
77
|
+
]
|
78
|
+
|
66
79
|
DOSFile -> BinaryFile [
|
67
80
|
|
68
81
|
]
|
data/doc/dot/f_3.png
CHANGED
Binary file
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</tr>
|
57
57
|
<tr class="top-aligned-row">
|
58
58
|
<td><strong>Last Update:</strong></td>
|
59
|
-
<td>Sat Jun 16
|
59
|
+
<td>Sat Jun 16 20:39:01 AUS Eastern Standard Time 2007</td>
|
60
60
|
</tr>
|
61
61
|
</table>
|
62
62
|
</div>
|
@@ -76,36 +76,41 @@
|
|
76
76
|
|
77
77
|
<div id="description">
|
78
78
|
<p>
|
79
|
-
dsktool
|
79
|
+
dsktool.rb
|
80
80
|
</p>
|
81
81
|
<h2>Synopsis</h2>
|
82
82
|
<p>
|
83
|
-
Manipulate <a href="../../classes/DSK.html">DSK</a> format files
|
83
|
+
Manipulate <a href="../../classes/DSK.html">DSK</a> format files (as used
|
84
|
+
by Apple 2 emulators)
|
84
85
|
</p>
|
85
86
|
<h2>Usage</h2>
|
86
87
|
<p>
|
87
88
|
dsktool.rb [switches] <filename.dsk>
|
88
89
|
</p>
|
89
90
|
<pre>
|
90
|
-
-c | --
|
91
|
-
-l | --list FILENAME monitor style listing (disassembles 65C02 opcodes)
|
91
|
+
-c | --log display catalog
|
92
92
|
-e | --extract FILENAME extract file by name (either to stdout,
|
93
93
|
or file specified by --output)
|
94
94
|
-h | --help display this message
|
95
|
+
-l | --list FILENAME monitor style listing (disassembles 65C02 opcodes)
|
95
96
|
-o | --output FILENAME specify name to save extracted file as
|
96
97
|
-x | --explode extract all files
|
97
98
|
-v | --version show version number
|
98
99
|
</pre>
|
99
100
|
<p>
|
101
|
+
Currently only works with DOS 3.3 format <a
|
102
|
+
href="../../classes/DSK.html">DSK</a> images can be
|
103
|
+
</p>
|
104
|
+
<p>
|
100
105
|
examples:
|
101
106
|
</p>
|
102
107
|
<pre>
|
103
|
-
dsktool -c DOS3MASTR.dsk
|
104
|
-
dsktool -l FID DOS3MASTR.dsk
|
105
|
-
dsktool
|
106
|
-
dsktool
|
107
|
-
dsktool -e HELLO -o HELLO.bas DOS3MASTR.dsk
|
108
|
-
dsktool -x DOS3MASTR.dsk
|
108
|
+
dsktool.rb -c DOS3MASTR.dsk.gz
|
109
|
+
dsktool.rb -l FID DOS3MASTR.dsk
|
110
|
+
dsktool.rb --list fid -o fid.asm DOS3MASTR.dsk
|
111
|
+
dsktool.rb --extract "COLOR DEMOSOFT" DOS3MASTR.dsk
|
112
|
+
dsktool.rb -e HELLO -o HELLO.bas DOS3MASTR.dsk
|
113
|
+
dsktool.rb -x DOS3MASTR.dsk.gz
|
109
114
|
</pre>
|
110
115
|
|
111
116
|
</div>
|
@@ -139,39 +144,44 @@ examples:
|
|
139
144
|
<tr class="top-aligned-row context-row">
|
140
145
|
<td class="context-item-name">DSKTOOL_VERSION</td>
|
141
146
|
<td>=</td>
|
142
|
-
<td class="context-item-value">"0.1.
|
147
|
+
<td class="context-item-value">"0.1.3"</td>
|
143
148
|
<td width="3em"> </td>
|
144
149
|
<td class="context-item-desc">
|
145
|
-
dsktool
|
150
|
+
dsktool.rb
|
146
151
|
|
147
152
|
<h2>Synopsis</h2>
|
148
153
|
<p>
|
149
|
-
Manipulate <a href="../../classes/DSK.html">DSK</a> format files
|
154
|
+
Manipulate <a href="../../classes/DSK.html">DSK</a> format files (as used
|
155
|
+
by Apple 2 emulators)
|
150
156
|
</p>
|
151
157
|
<h2>Usage</h2>
|
152
158
|
<p>
|
153
159
|
dsktool.rb [switches] <filename.dsk>
|
154
160
|
</p>
|
155
161
|
<pre>
|
156
|
-
-c | --
|
157
|
-
-l | --list FILENAME monitor style listing (disassembles 65C02 opcodes)
|
162
|
+
-c | --log display catalog
|
158
163
|
-e | --extract FILENAME extract file by name (either to stdout,
|
159
164
|
or file specified by --output)
|
160
165
|
-h | --help display this message
|
166
|
+
-l | --list FILENAME monitor style listing (disassembles 65C02 opcodes)
|
161
167
|
-o | --output FILENAME specify name to save extracted file as
|
162
168
|
-x | --explode extract all files
|
163
169
|
-v | --version show version number
|
164
170
|
</pre>
|
165
171
|
<p>
|
172
|
+
Currently only works with DOS 3.3 format <a
|
173
|
+
href="../../classes/DSK.html">DSK</a> images can be
|
174
|
+
</p>
|
175
|
+
<p>
|
166
176
|
examples:
|
167
177
|
</p>
|
168
178
|
<pre>
|
169
|
-
dsktool -c DOS3MASTR.dsk
|
170
|
-
dsktool -l FID DOS3MASTR.dsk
|
171
|
-
dsktool
|
172
|
-
dsktool
|
173
|
-
dsktool -e HELLO -o HELLO.bas DOS3MASTR.dsk
|
174
|
-
dsktool -x DOS3MASTR.dsk
|
179
|
+
dsktool.rb -c DOS3MASTR.dsk.gz
|
180
|
+
dsktool.rb -l FID DOS3MASTR.dsk
|
181
|
+
dsktool.rb --list fid -o fid.asm DOS3MASTR.dsk
|
182
|
+
dsktool.rb --extract "COLOR DEMOSOFT" DOS3MASTR.dsk
|
183
|
+
dsktool.rb -e HELLO -o HELLO.bas DOS3MASTR.dsk
|
184
|
+
dsktool.rb -x DOS3MASTR.dsk.gz
|
175
185
|
</pre>
|
176
186
|
</td>
|
177
187
|
</tr>
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</tr>
|
57
57
|
<tr class="top-aligned-row">
|
58
58
|
<td><strong>Last Update:</strong></td>
|
59
|
-
<td>Sat Jun 16
|
59
|
+
<td>Sat Jun 16 20:21:05 AUS Eastern Standard Time 2007</td>
|
60
60
|
</tr>
|
61
61
|
</table>
|
62
62
|
</div>
|
@@ -71,9 +71,10 @@
|
|
71
71
|
<map id="map" name="map">
|
72
72
|
<area shape="RECT" coords="5,101,109,149" href="../../classes/IntegerBasicFile.html" alt="IntegerBasicFile">
|
73
73
|
<area shape="RECT" coords="133,101,227,149" href="../../classes/AppleSoftFile.html" alt="AppleSoftFile">
|
74
|
-
<area shape="RECT" coords="251,101,
|
75
|
-
<area shape="RECT" coords="
|
76
|
-
<area shape="RECT" coords="
|
74
|
+
<area shape="RECT" coords="251,101,333,149" href="../../classes/SCAsmFile.html" alt="SCAsmFile">
|
75
|
+
<area shape="RECT" coords="357,101,432,149" href="../../classes/BinaryFile.html" alt="BinaryFile">
|
76
|
+
<area shape="RECT" coords="256,5,328,53" href="../../classes/DOSFile.html" alt="DOSFile">
|
77
|
+
<area shape="RECT" coords="456,101,528,149" href="../../classes/TextFile.html" alt="TextFile">
|
77
78
|
</map>
|
78
79
|
<img src="../../dot/f_3.png" usemap="#map" border=0 alt="TopLevel">
|
79
80
|
</div>
|
data/doc/files/lib/DSK_rb.html
CHANGED
@@ -56,7 +56,7 @@
|
|
56
56
|
</tr>
|
57
57
|
<tr class="top-aligned-row">
|
58
58
|
<td><strong>Last Update:</strong></td>
|
59
|
-
<td>Sat Jun 16
|
59
|
+
<td>Sat Jun 16 20:32:57 AUS Eastern Standard Time 2007</td>
|
60
60
|
</tr>
|
61
61
|
</table>
|
62
62
|
</div>
|
@@ -79,6 +79,8 @@
|
|
79
79
|
<h3 class="section-bar">Required files</h3>
|
80
80
|
|
81
81
|
<div class="name-list">
|
82
|
+
open-uri
|
83
|
+
zlib
|
82
84
|
<a href="../../classes/DOSDisk.html">DOSDisk</a>
|
83
85
|
</div>
|
84
86
|
</div>
|
data/doc/fr_class_index.html
CHANGED
@@ -28,6 +28,7 @@
|
|
28
28
|
<a href="classes/DSK.html">DSK</a><br />
|
29
29
|
<a href="classes/IntegerBasicFile.html">IntegerBasicFile</a><br />
|
30
30
|
<a href="classes/RDoc.html">RDoc</a><br />
|
31
|
+
<a href="classes/SCAsmFile.html">SCAsmFile</a><br />
|
31
32
|
<a href="classes/TestDOSDisks.html">TestDOSDisks</a><br />
|
32
33
|
<a href="classes/TestDisassembly.html">TestDisassembly</a><br />
|
33
34
|
<a href="classes/TextFile.html">TextFile</a><br />
|
data/doc/fr_method_index.html
CHANGED
@@ -20,38 +20,44 @@
|
|
20
20
|
<div id="index">
|
21
21
|
<h1 class="section-bar">Methods</h1>
|
22
22
|
<div id="index-entries">
|
23
|
-
<a href="classes/D65.html#
|
24
|
-
<a href="classes/
|
25
|
-
<a href="classes/
|
26
|
-
<a href="classes/
|
27
|
-
<a href="classes/
|
28
|
-
<a href="classes/DSK.html#
|
29
|
-
<a href="classes/
|
30
|
-
<a href="classes/
|
31
|
-
<a href="classes/
|
32
|
-
<a href="classes/
|
33
|
-
<a href="classes/
|
34
|
-
<a href="classes/AppleSoftFile.html#
|
35
|
-
<a href="classes/
|
36
|
-
<a href="classes/
|
37
|
-
<a href="classes/
|
38
|
-
<a href="classes/
|
39
|
-
<a href="classes/
|
40
|
-
<a href="classes/
|
41
|
-
<a href="classes/DSK.html#
|
42
|
-
<a href="classes/
|
43
|
-
<a href="classes/
|
44
|
-
<a href="classes/
|
45
|
-
<a href="classes/
|
23
|
+
<a href="classes/D65.html#M000010">annotations (D65)</a><br />
|
24
|
+
<a href="classes/SCAsmFile.html#M000028">can_be_scasm_file (SCAsmFile)</a><br />
|
25
|
+
<a href="classes/D65.html#M000011">disassemble (D65)</a><br />
|
26
|
+
<a href="classes/BinaryFile.html#M000031">disassembly (BinaryFile)</a><br />
|
27
|
+
<a href="classes/DOSDisk.html#M000015">dump_catalog (DOSDisk)</a><br />
|
28
|
+
<a href="classes/DSK.html#M000024">dump_disk (DSK)</a><br />
|
29
|
+
<a href="classes/DSK.html#M000023">dump_sector (DSK)</a><br />
|
30
|
+
<a href="classes/BinaryFile.html#M000030">file_extension (BinaryFile)</a><br />
|
31
|
+
<a href="classes/IntegerBasicFile.html#M000007">file_extension (IntegerBasicFile)</a><br />
|
32
|
+
<a href="classes/TextFile.html#M000036">file_extension (TextFile)</a><br />
|
33
|
+
<a href="classes/SCAsmFile.html#M000027">file_extension (SCAsmFile)</a><br />
|
34
|
+
<a href="classes/AppleSoftFile.html#M000014">file_extension (AppleSoftFile)</a><br />
|
35
|
+
<a href="classes/BinaryFile.html#M000029">file_type (BinaryFile)</a><br />
|
36
|
+
<a href="classes/AppleSoftFile.html#M000012">file_type (AppleSoftFile)</a><br />
|
37
|
+
<a href="classes/IntegerBasicFile.html#M000006">file_type (IntegerBasicFile)</a><br />
|
38
|
+
<a href="classes/TextFile.html#M000035">file_type (TextFile)</a><br />
|
39
|
+
<a href="classes/SCAsmFile.html#M000025">file_type (SCAsmFile)</a><br />
|
40
|
+
<a href="classes/DOSFile.html#M000033">file_type (DOSFile)</a><br />
|
41
|
+
<a href="classes/DSK.html#M000022">files (DSK)</a><br />
|
42
|
+
<a href="classes/DSK.html#M000021">get_sector (DSK)</a><br />
|
43
|
+
<a href="classes/DSK.html#M000018">is_dos33? (DSK)</a><br />
|
44
|
+
<a href="classes/DOSDisk.html#M000016">new (DOSDisk)</a><br />
|
45
|
+
<a href="classes/DSK.html#M000019">new (DSK)</a><br />
|
46
|
+
<a href="classes/DOSFile.html#M000032">new (DOSFile)</a><br />
|
47
|
+
<a href="classes/DSK.html#M000020">read (DSK)</a><br />
|
48
|
+
<a href="classes/DOSDisk.html#M000017">read_vtoc (DOSDisk)</a><br />
|
46
49
|
<a href="classes/TestDOSDisks.html#M000001">test_bad_dsks (TestDOSDisks)</a><br />
|
47
50
|
<a href="classes/TestDOSDisks.html#M000002">test_empty_dsk (TestDOSDisks)</a><br />
|
48
|
-
<a href="classes/
|
49
|
-
<a href="classes/TestDOSDisks.html#
|
50
|
-
<a href="classes/
|
51
|
-
<a href="classes/
|
52
|
-
<a href="classes/
|
53
|
-
<a href="classes/
|
54
|
-
<a href="classes/
|
51
|
+
<a href="classes/TestDOSDisks.html#M000003">test_open_url_to_compressed_dsk (TestDOSDisks)</a><br />
|
52
|
+
<a href="classes/TestDOSDisks.html#M000005">test_scasm_file (TestDOSDisks)</a><br />
|
53
|
+
<a href="classes/TestDisassembly.html#M000009">test_simple (TestDisassembly)</a><br />
|
54
|
+
<a href="classes/TestDOSDisks.html#M000004">test_simple_dos_dsk (TestDOSDisks)</a><br />
|
55
|
+
<a href="classes/SCAsmFile.html#M000026">to_s (SCAsmFile)</a><br />
|
56
|
+
<a href="classes/DOSFile.html#M000034">to_s (DOSFile)</a><br />
|
57
|
+
<a href="classes/IntegerBasicFile.html#M000008">to_s (IntegerBasicFile)</a><br />
|
58
|
+
<a href="classes/AppleSoftFile.html#M000013">to_s (AppleSoftFile)</a><br />
|
59
|
+
<a href="classes/TextFile.html#M000037">to_s (TextFile)</a><br />
|
60
|
+
<a href="classes/RDoc.html#M000038">usage_from_file (RDoc)</a><br />
|
55
61
|
</div>
|
56
62
|
</div>
|
57
63
|
</body>
|
data/lib/CHANGES.txt
ADDED
data/lib/DOSDisk.rb
CHANGED
@@ -136,7 +136,7 @@ class DOSDisk < DSK
|
|
136
136
|
|
137
137
|
@files[filename]= case file_type_code
|
138
138
|
when 0x00 then TextFile.new(filename,locked,sector_count,contents)
|
139
|
-
when 0x01 then IntegerBasicFile.new(filename,locked,sector_count,contents)
|
139
|
+
when 0x01 then SCAsmFile.can_be_scasm_file(contents)? SCAsmFile.new(filename,locked,sector_count,contents): IntegerBasicFile.new(filename,locked,sector_count,contents)
|
140
140
|
when 0x02 then AppleSoftFile.new(filename,locked,sector_count,contents)
|
141
141
|
when 0x04 then BinaryFile.new(filename,locked,sector_count,contents)
|
142
142
|
# when 0x08 then "S" #S type file
|
data/lib/DOSFile.rb
CHANGED
@@ -328,8 +328,99 @@ private
|
|
328
328
|
end
|
329
329
|
s
|
330
330
|
end
|
331
|
+
end
|
332
|
+
|
333
|
+
# Adapted from FID.C -- a utility to browse Apple II .DSK image files by Paul Schlyter (pausch@saaf.se)
|
334
|
+
#
|
335
|
+
# S-C Assembler file format:
|
336
|
+
#
|
337
|
+
# <Length_of_file> (16-bit little endian)
|
338
|
+
# <Line>
|
339
|
+
# ......
|
340
|
+
# <Line>
|
341
|
+
#
|
342
|
+
# where <Line> is:
|
343
|
+
# <Length> (8-bit: including length byte, line no, contents, zero>
|
344
|
+
# <Line no> (16-bit little endian: 0-65535)
|
345
|
+
# <Characters>
|
346
|
+
# <Zero byte> ($00, to mark the end of the S-C Asm source line)
|
347
|
+
#
|
348
|
+
# where <Characters> are an arbitrary sequence of:
|
349
|
+
# <Literal character>: $20 to $7E - literal characters
|
350
|
+
# <Compressed spaces>: $80 to $BF - represents 1 to 63 spaces
|
351
|
+
# <Compressed repetition>: $C0 <n> <ch> - represents <ch> n times
|
352
|
+
#
|
353
|
+
|
354
|
+
class SCAsmFile < DOSFile
|
355
|
+
def file_type
|
356
|
+
"I"
|
357
|
+
end
|
358
|
+
#display file with all tokens expanded
|
359
|
+
def to_s
|
360
|
+
SCAsmFile.buffer_as_scasm_file(@contents)
|
361
|
+
end
|
362
|
+
|
363
|
+
def file_extension
|
364
|
+
".asm"
|
365
|
+
end
|
366
|
+
|
367
|
+
def SCAsmFile.can_be_scasm_file(buffer)
|
368
|
+
length=buffer[0]+buffer[1]*256
|
369
|
+
index=2
|
370
|
+
s=""
|
371
|
+
while (index<length)
|
372
|
+
line_length=buffer[index]
|
373
|
+
line_no=buffer[index+1]+buffer[index+2]*256
|
374
|
+
index+=3 #skip over the "line number" field
|
375
|
+
#S-C Assembler lines always ends with a 0x00
|
376
|
+
if ( buffer[index+line_length-4] != 0x00 )
|
377
|
+
return false
|
378
|
+
end
|
379
|
+
buffer[index..index+line_length-3].each_byte do |b|
|
380
|
+
if b>0xc0 then
|
381
|
+
return false
|
382
|
+
end
|
383
|
+
end
|
384
|
+
index+= line_length-3
|
385
|
+
end
|
386
|
+
return true
|
387
|
+
end
|
388
|
+
|
389
|
+
private
|
390
|
+
def SCAsmFile.buffer_as_scasm_file(buffer)
|
391
|
+
length=buffer[0]+buffer[1]*256
|
392
|
+
index=2
|
393
|
+
s=""
|
394
|
+
while (index<length)
|
395
|
+
line_length=buffer[index]
|
396
|
+
line_no=buffer[index+1]+buffer[index+2]*256
|
397
|
+
s+=sprintf("%d ",line_no)
|
398
|
+
index+=3 #skip over the "line number" field
|
399
|
+
end_of_line=index+line_length-4
|
400
|
+
while(index<end_of_line)
|
401
|
+
b=buffer[index]
|
402
|
+
if (b==0xC0) then
|
403
|
+
repeat_count=buffer[index+1]
|
404
|
+
repeat_char=(buffer[index+2]).chr
|
405
|
+
s+=repeat_char*repeat_count
|
406
|
+
index+=3
|
407
|
+
elsif(b>=0x80) then
|
408
|
+
s+=" "*(b-0x80)
|
409
|
+
index+=1
|
410
|
+
else
|
411
|
+
s+=b.chr
|
412
|
+
index+=1
|
413
|
+
end
|
414
|
+
end
|
415
|
+
index+=1 #skip over end-of-line marker
|
416
|
+
s+="\n"
|
417
|
+
end
|
418
|
+
s
|
419
|
+
end
|
331
420
|
|
332
421
|
end
|
422
|
+
|
423
|
+
|
333
424
|
# == Author
|
334
425
|
# Jonno Downes (jonno@jamtronix.com)
|
335
426
|
#
|