dsktool 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
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
|
-
|
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.
|
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
|