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