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