dsktool 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
#
|