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
data/lib/DSK.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+ require 'open-uri'
3
4
 
4
5
  #
5
6
  # For manipulating DSK files, as created by ADT (http://adt.berlios.de) and ADTPRo (http://adtpro.sourceforge.net)
@@ -28,11 +29,18 @@ class DSK
28
29
  end
29
30
 
30
31
  #read in an existing DSK file (must exist)
31
- def DSK.read(filename)
32
- file_bytes=File.new(filename,"rb").read
32
+ def DSK.read(filename)
33
+ #is the file extension .gz?
34
+ if !(filename=~/\.gz$/).nil? then
35
+ require 'zlib'
36
+ file_bytes=Zlib::GzipReader.new(open(filename,"rb")).read
37
+ else
38
+ file_bytes=open(filename,"rb").read
39
+ end
33
40
  if (file_bytes.length!=DSK_FILE_LENGTH) then
34
41
  abort("#{filename} is not a valid DSK format file")
35
42
  end
43
+
36
44
  dsk=DSK.new(file_bytes)
37
45
  if (dsk.is_dos33?)
38
46
  require 'DOSDisk'
data/test/AAL_1.DSK ADDED
Binary file
data/test/tc_dos_disks.rb CHANGED
@@ -17,6 +17,17 @@ class TestDOSDisks <Test::Unit::TestCase
17
17
  assert(!dsk.is_dos33?,"empty DSK should not be DOS 3.3 format")
18
18
  end
19
19
 
20
+ def test_open_url_to_compressed_dsk
21
+ dskname="http://www.apple2.org.za/mirrors/ftp.apple.asimov.net/images/games/adventure/vaults_of_zurich.dsk.gz"
22
+ dsk=DSK.read(dskname)
23
+ assert(dsk.is_dos33?,"#{dskname} should be DOS 3.3 format")
24
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
25
+
26
+ hello_file=dsk.files["HELLO"]
27
+ assert(hello_file!=nil,"#{dskname} should have a file called HELLO")
28
+ assert(hello_file.instance_of?(AppleSoftFile),"HELLO should be an AppleSoft file")
29
+ end
30
+
20
31
  def test_simple_dos_dsk
21
32
  dskname=File.dirname(__FILE__)+"//dos33_with_adt.dsk"
22
33
  dsk=DSK.read(dskname)
@@ -41,9 +52,20 @@ class TestDOSDisks <Test::Unit::TestCase
41
52
  assert(integer_file!=nil,"#{dskname} should have a file called APPLESOFT")
42
53
  assert(integer_file.instance_of?(IntegerBasicFile),"HELLO should be an IntegetBasic file")
43
54
  assert(integer_file.to_s.length>0,"APPLESOFT should have non-zero length")
44
- assert(integer_file.to_s[0..5]=="10 REM","APPLESOFT should start '10 REM'")
45
-
55
+ assert(integer_file.to_s[0..5]=="10 REM","APPLESOFT should start '10 REM'")
56
+ end
46
57
 
58
+ def test_scasm_file
59
+ dskname=File.dirname(__FILE__)+"//AAL_1.DSK"
60
+ dsk=DSK.read(dskname)
61
+ assert(dsk.is_dos33?,"#{dskname} should be DOS 3.3 format")
62
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
63
+
64
+ asm_file=dsk.files["MORSE CODE"]
65
+ assert(asm_file!=nil,"#{dskname} should have a file called MORSE CODE")
66
+ assert(asm_file.instance_of?(SCAsmFile),"MORSE CODE should be an SCasm file")
67
+ assert(asm_file.to_s.length>0,"MORSE CODE should have non-zero length")
68
+ assert(!(asm_file.to_s=~/930\W*.LIST OFF/).nil?,"MORSE CODE should start '930 .LIST OFF'")
47
69
  end
48
-
70
+
49
71
  end
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: dsktool
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.2
6
+ version: 0.1.3
7
7
  date: 2007-06-16 00:00:00 +10:00
8
8
  summary: a command line tool + libraries for manipulating DSK format images as used by Apple 2 emulators
9
9
  require_paths:
@@ -53,6 +53,8 @@ files:
53
53
  - doc/classes/IntegerBasicFile.src
54
54
  - doc/classes/RDoc.html
55
55
  - doc/classes/RDoc.src
56
+ - doc/classes/SCAsmFile.html
57
+ - doc/classes/SCAsmFile.src
56
58
  - doc/classes/TestDisassembly.html
57
59
  - doc/classes/TestDisassembly.src
58
60
  - doc/classes/TestDOSDisks.html
@@ -66,6 +68,8 @@ files:
66
68
  - doc/classes/AppleSoftFile.src/M000010.html
67
69
  - doc/classes/AppleSoftFile.src/M000011.html
68
70
  - doc/classes/AppleSoftFile.src/M000012.html
71
+ - doc/classes/AppleSoftFile.src/M000013.html
72
+ - doc/classes/AppleSoftFile.src/M000014.html
69
73
  - doc/classes/BinaryFile.src/M000015.html
70
74
  - doc/classes/BinaryFile.src/M000020.html
71
75
  - doc/classes/BinaryFile.src/M000021.html
@@ -73,6 +77,10 @@ files:
73
77
  - doc/classes/BinaryFile.src/M000023.html
74
78
  - doc/classes/BinaryFile.src/M000024.html
75
79
  - doc/classes/BinaryFile.src/M000025.html
80
+ - doc/classes/BinaryFile.src/M000026.html
81
+ - doc/classes/BinaryFile.src/M000029.html
82
+ - doc/classes/BinaryFile.src/M000030.html
83
+ - doc/classes/BinaryFile.src/M000031.html
76
84
  - doc/classes/D65.src/M000002.html
77
85
  - doc/classes/D65.src/M000003.html
78
86
  - doc/classes/D65.src/M000004.html
@@ -81,6 +89,8 @@ files:
81
89
  - doc/classes/D65.src/M000007.html
82
90
  - doc/classes/D65.src/M000008.html
83
91
  - doc/classes/D65.src/M000009.html
92
+ - doc/classes/D65.src/M000010.html
93
+ - doc/classes/D65.src/M000011.html
84
94
  - doc/classes/DOSDisk.src/M000007.html
85
95
  - doc/classes/DOSDisk.src/M000008.html
86
96
  - doc/classes/DOSDisk.src/M000010.html
@@ -89,6 +99,8 @@ files:
89
99
  - doc/classes/DOSDisk.src/M000013.html
90
100
  - doc/classes/DOSDisk.src/M000014.html
91
101
  - doc/classes/DOSDisk.src/M000015.html
102
+ - doc/classes/DOSDisk.src/M000016.html
103
+ - doc/classes/DOSDisk.src/M000017.html
92
104
  - doc/classes/DOSFile.src/M000016.html
93
105
  - doc/classes/DOSFile.src/M000017.html
94
106
  - doc/classes/DOSFile.src/M000018.html
@@ -100,6 +112,10 @@ files:
100
112
  - doc/classes/DOSFile.src/M000026.html
101
113
  - doc/classes/DOSFile.src/M000027.html
102
114
  - doc/classes/DOSFile.src/M000028.html
115
+ - doc/classes/DOSFile.src/M000029.html
116
+ - doc/classes/DOSFile.src/M000032.html
117
+ - doc/classes/DOSFile.src/M000033.html
118
+ - doc/classes/DOSFile.src/M000034.html
103
119
  - doc/classes/DSK.src/M000009.html
104
120
  - doc/classes/DSK.src/M000010.html
105
121
  - doc/classes/DSK.src/M000011.html
@@ -114,17 +130,31 @@ files:
114
130
  - doc/classes/DSK.src/M000020.html
115
131
  - doc/classes/DSK.src/M000021.html
116
132
  - doc/classes/DSK.src/M000022.html
133
+ - doc/classes/DSK.src/M000023.html
134
+ - doc/classes/DSK.src/M000024.html
117
135
  - doc/classes/IntegerBasicFile.src/M000001.html
118
136
  - doc/classes/IntegerBasicFile.src/M000004.html
119
137
  - doc/classes/IntegerBasicFile.src/M000005.html
120
138
  - doc/classes/IntegerBasicFile.src/M000006.html
139
+ - doc/classes/IntegerBasicFile.src/M000007.html
140
+ - doc/classes/IntegerBasicFile.src/M000008.html
121
141
  - doc/classes/RDoc.src/M000032.html
142
+ - doc/classes/RDoc.src/M000033.html
143
+ - doc/classes/RDoc.src/M000038.html
144
+ - doc/classes/SCAsmFile.src/M000025.html
145
+ - doc/classes/SCAsmFile.src/M000026.html
146
+ - doc/classes/SCAsmFile.src/M000027.html
147
+ - doc/classes/SCAsmFile.src/M000028.html
122
148
  - doc/classes/TestDisassembly.src/M000005.html
123
149
  - doc/classes/TestDisassembly.src/M000006.html
124
150
  - doc/classes/TestDisassembly.src/M000007.html
151
+ - doc/classes/TestDisassembly.src/M000008.html
152
+ - doc/classes/TestDisassembly.src/M000009.html
125
153
  - doc/classes/TestDOSDisks.src/M000001.html
126
154
  - doc/classes/TestDOSDisks.src/M000002.html
127
155
  - doc/classes/TestDOSDisks.src/M000003.html
156
+ - doc/classes/TestDOSDisks.src/M000004.html
157
+ - doc/classes/TestDOSDisks.src/M000005.html
128
158
  - doc/classes/TextFile.src/M000019.html
129
159
  - doc/classes/TextFile.src/M000020.html
130
160
  - doc/classes/TextFile.src/M000024.html
@@ -134,6 +164,10 @@ files:
134
164
  - doc/classes/TextFile.src/M000029.html
135
165
  - doc/classes/TextFile.src/M000030.html
136
166
  - doc/classes/TextFile.src/M000031.html
167
+ - doc/classes/TextFile.src/M000032.html
168
+ - doc/classes/TextFile.src/M000035.html
169
+ - doc/classes/TextFile.src/M000036.html
170
+ - doc/classes/TextFile.src/M000037.html
137
171
  - doc/dot/f_0.dot
138
172
  - doc/dot/f_0.png
139
173
  - doc/dot/f_1.dot
@@ -165,10 +199,12 @@ files:
165
199
  - doc/files/test/test_dos_disks_rb.html
166
200
  - doc/files/test/ts_test_all_rb.html
167
201
  - lib/a2_symbols.yaml
202
+ - lib/CHANGES.txt
168
203
  - lib/D65.rb
169
204
  - lib/DOSDisk.rb
170
205
  - lib/DOSFile.rb
171
206
  - lib/DSK.rb
207
+ - test/AAL_1.DSK
172
208
  - test/dos33_with_adt.dsk
173
209
  - test/tc_disassembly.rb
174
210
  - test/tc_dos_disks.rb