dsktool 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/bin/dsktool.rb +14 -7
  2. data/doc/classes/AppleSoftFile.html +19 -18
  3. data/doc/classes/AppleSoftFile.src/M000011.html +4 -4
  4. data/doc/classes/AppleSoftFile.src/M000012.html +4 -4
  5. data/doc/classes/AppleSoftFile.src/M000013.html +18 -0
  6. data/doc/classes/AppleSoftFile.src/M000014.html +18 -0
  7. data/doc/classes/BinaryFile.html +19 -18
  8. data/doc/classes/BinaryFile.src/M000024.html +4 -4
  9. data/doc/classes/BinaryFile.src/M000025.html +4 -5
  10. data/doc/classes/BinaryFile.src/M000026.html +19 -0
  11. data/doc/classes/BinaryFile.src/M000029.html +18 -0
  12. data/doc/classes/BinaryFile.src/M000030.html +18 -0
  13. data/doc/classes/BinaryFile.src/M000031.html +19 -0
  14. data/doc/classes/D65.html +10 -10
  15. data/doc/classes/D65.src/M000009.html +4 -50
  16. data/doc/classes/D65.src/M000010.html +18 -0
  17. data/doc/classes/D65.src/M000011.html +64 -0
  18. data/doc/classes/DOSDisk.html +15 -15
  19. data/doc/classes/DOSDisk.src/M000014.html +6 -5
  20. data/doc/classes/DOSDisk.src/M000015.html +6 -62
  21. data/doc/classes/DOSDisk.src/M000016.html +19 -0
  22. data/doc/classes/DOSDisk.src/M000017.html +76 -0
  23. data/doc/classes/DOSFile.html +19 -18
  24. data/doc/classes/DOSFile.src/M000027.html +8 -3
  25. data/doc/classes/DOSFile.src/M000028.html +3 -4
  26. data/doc/classes/DOSFile.src/M000029.html +18 -0
  27. data/doc/classes/DOSFile.src/M000032.html +22 -0
  28. data/doc/classes/DOSFile.src/M000033.html +17 -0
  29. data/doc/classes/DOSFile.src/M000034.html +18 -0
  30. data/doc/classes/DSK.html +35 -35
  31. data/doc/classes/DSK.src/M000017.html +8 -8
  32. data/doc/classes/DSK.src/M000018.html +8 -13
  33. data/doc/classes/DSK.src/M000019.html +8 -5
  34. data/doc/classes/DSK.src/M000020.html +20 -4
  35. data/doc/classes/DSK.src/M000021.html +4 -25
  36. data/doc/classes/DSK.src/M000022.html +4 -9
  37. data/doc/classes/DSK.src/M000023.html +40 -0
  38. data/doc/classes/DSK.src/M000024.html +23 -0
  39. data/doc/classes/IntegerBasicFile.html +19 -18
  40. data/doc/classes/IntegerBasicFile.src/M000005.html +4 -4
  41. data/doc/classes/IntegerBasicFile.src/M000006.html +4 -4
  42. data/doc/classes/IntegerBasicFile.src/M000007.html +18 -0
  43. data/doc/classes/IntegerBasicFile.src/M000008.html +18 -0
  44. data/doc/classes/RDoc.html +5 -5
  45. data/doc/classes/RDoc.src/M000033.html +40 -0
  46. data/doc/classes/RDoc.src/M000038.html +40 -0
  47. data/doc/classes/SCAsmFile.html +226 -0
  48. data/doc/classes/SCAsmFile.src/M000025.html +18 -0
  49. data/doc/classes/SCAsmFile.src/M000026.html +18 -0
  50. data/doc/classes/SCAsmFile.src/M000027.html +18 -0
  51. data/doc/classes/SCAsmFile.src/M000028.html +36 -0
  52. data/doc/classes/TestDOSDisks.html +31 -1
  53. data/doc/classes/TestDOSDisks.src/M000003.html +3 -21
  54. data/doc/classes/TestDOSDisks.src/M000004.html +41 -0
  55. data/doc/classes/TestDOSDisks.src/M000005.html +27 -0
  56. data/doc/classes/TestDisassembly.html +5 -5
  57. data/doc/classes/TestDisassembly.src/M000008.html +19 -0
  58. data/doc/classes/TestDisassembly.src/M000009.html +19 -0
  59. data/doc/classes/TextFile.html +19 -18
  60. data/doc/classes/TextFile.src/M000030.html +4 -4
  61. data/doc/classes/TextFile.src/M000031.html +4 -6
  62. data/doc/classes/TextFile.src/M000032.html +20 -0
  63. data/doc/classes/TextFile.src/M000035.html +18 -0
  64. data/doc/classes/TextFile.src/M000036.html +18 -0
  65. data/doc/classes/TextFile.src/M000037.html +20 -0
  66. data/doc/created.rid +1 -1
  67. data/doc/dot/f_3.dot +13 -0
  68. data/doc/dot/f_3.png +0 -0
  69. data/doc/files/bin/dsktool_rb.html +32 -22
  70. data/doc/files/lib/DOSDisk_rb.html +1 -1
  71. data/doc/files/lib/DOSFile_rb.html +5 -4
  72. data/doc/files/lib/DSK_rb.html +3 -1
  73. data/doc/files/test/tc_dos_disks_rb.html +1 -1
  74. data/doc/fr_class_index.html +1 -0
  75. data/doc/fr_method_index.html +36 -30
  76. data/lib/CHANGES.txt +5 -0
  77. data/lib/DOSDisk.rb +1 -1
  78. data/lib/DOSFile.rb +91 -0
  79. data/lib/DSK.rb +10 -2
  80. data/test/AAL_1.DSK +0 -0
  81. data/test/tc_dos_disks.rb +25 -3
  82. 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">&quot;T&quot;</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">&quot;.txt&quot;</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">&quot;&quot;</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">&quot;\n&quot;</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 14:52:09 AUS Eastern Standard Time 2007
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 14:49:29 AUS Eastern Standard Time 2007</td>
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] &lt;filename.dsk&gt;
88
89
  </p>
89
90
  <pre>
90
- -c | --catalog display catalog
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 -d fid -o fid.asm DOS3MASTR.dsk
106
- dsktool -e &quot;COLOR DEMOSOFT&quot; DOS3MASTR.dsk
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 &quot;COLOR DEMOSOFT&quot; 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">&quot;0.1.1&quot;</td>
147
+ <td class="context-item-value">&quot;0.1.3&quot;</td>
143
148
  <td width="3em">&nbsp;</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] &lt;filename.dsk&gt;
154
160
  </p>
155
161
  <pre>
156
- -c | --catalog display catalog
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 -d fid -o fid.asm DOS3MASTR.dsk
172
- dsktool -e &quot;COLOR DEMOSOFT&quot; DOS3MASTR.dsk
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 &quot;COLOR DEMOSOFT&quot; 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 11:36:31 AUS Eastern Standard Time 2007</td>
59
+ <td>Sat Jun 16 19:46:43 AUS Eastern Standard Time 2007</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -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 12:27:43 AUS Eastern Standard Time 2007</td>
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,325,149" href="../../classes/BinaryFile.html" alt="BinaryFile">
75
- <area shape="RECT" coords="197,5,269,53" href="../../classes/DOSFile.html" alt="DOSFile">
76
- <area shape="RECT" coords="349,101,421,149" href="../../classes/TextFile.html" alt="TextFile">
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>
@@ -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 11:36:24 AUS Eastern Standard Time 2007</td>
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&nbsp;&nbsp;
83
+ zlib&nbsp;&nbsp;
82
84
  <a href="../../classes/DOSDisk.html">DOSDisk</a>&nbsp;&nbsp;
83
85
  </div>
84
86
  </div>
@@ -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 13:53:50 AUS Eastern Standard Time 2007</td>
59
+ <td>Sat Jun 16 20:33:34 AUS Eastern Standard Time 2007</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -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 />
@@ -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#M000008">annotations (D65)</a><br />
24
- <a href="classes/D65.html#M000009">disassemble (D65)</a><br />
25
- <a href="classes/BinaryFile.html#M000025">disassembly (BinaryFile)</a><br />
26
- <a href="classes/DOSDisk.html#M000013">dump_catalog (DOSDisk)</a><br />
27
- <a href="classes/DSK.html#M000022">dump_disk (DSK)</a><br />
28
- <a href="classes/DSK.html#M000021">dump_sector (DSK)</a><br />
29
- <a href="classes/AppleSoftFile.html#M000012">file_extension (AppleSoftFile)</a><br />
30
- <a href="classes/IntegerBasicFile.html#M000005">file_extension (IntegerBasicFile)</a><br />
31
- <a href="classes/TextFile.html#M000030">file_extension (TextFile)</a><br />
32
- <a href="classes/BinaryFile.html#M000024">file_extension (BinaryFile)</a><br />
33
- <a href="classes/TextFile.html#M000029">file_type (TextFile)</a><br />
34
- <a href="classes/AppleSoftFile.html#M000010">file_type (AppleSoftFile)</a><br />
35
- <a href="classes/IntegerBasicFile.html#M000004">file_type (IntegerBasicFile)</a><br />
36
- <a href="classes/DOSFile.html#M000027">file_type (DOSFile)</a><br />
37
- <a href="classes/BinaryFile.html#M000023">file_type (BinaryFile)</a><br />
38
- <a href="classes/DSK.html#M000020">files (DSK)</a><br />
39
- <a href="classes/DSK.html#M000019">get_sector (DSK)</a><br />
40
- <a href="classes/DSK.html#M000016">is_dos33? (DSK)</a><br />
41
- <a href="classes/DSK.html#M000017">new (DSK)</a><br />
42
- <a href="classes/DOSFile.html#M000026">new (DOSFile)</a><br />
43
- <a href="classes/DOSDisk.html#M000014">new (DOSDisk)</a><br />
44
- <a href="classes/DSK.html#M000018">read (DSK)</a><br />
45
- <a href="classes/DOSDisk.html#M000015">read_vtoc (DOSDisk)</a><br />
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/TestDisassembly.html#M000007">test_simple (TestDisassembly)</a><br />
49
- <a href="classes/TestDOSDisks.html#M000003">test_simple_dos_dsk (TestDOSDisks)</a><br />
50
- <a href="classes/AppleSoftFile.html#M000011">to_s (AppleSoftFile)</a><br />
51
- <a href="classes/DOSFile.html#M000028">to_s (DOSFile)</a><br />
52
- <a href="classes/IntegerBasicFile.html#M000006">to_s (IntegerBasicFile)</a><br />
53
- <a href="classes/TextFile.html#M000031">to_s (TextFile)</a><br />
54
- <a href="classes/RDoc.html#M000032">usage_from_file (RDoc)</a><br />
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
@@ -0,0 +1,5 @@
1
+ V0.1.3
2
+
3
+ 2007-07-16 Added support for gzipped files (assumes .gz extension)
4
+ 2007-07-16 Added support for S-C Assembler files
5
+ 2007-07-16 Added support for opening URIs
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
  #