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.
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
  #