z80_disassembler 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -7
- data/lib/z80_disassembler.rb +13 -12
- data/lib/z80_disassembler/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9531e2820a522fbeac575e6abbfa981605c0e844a6d5089867bc4f2e0570b9e3
|
4
|
+
data.tar.gz: 5396c8c1afa4d9de805a7a2c40aecbb635ede8f365540f106135b76bb902e77a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8884e1eda23ad1b24a87f04b10395007376c2356b75c010ac2ed9df5b25167e2dfc1746745b155358aa6ebd2489e0eb021a47aa42eca9b9b89a0102bec6ec3cb
|
7
|
+
data.tar.gz: 7f174c3374e042f5265b179db3a4d302aa7fae2a6489275dc41a90228224bc05e74267aff4724e56c82ee145836a54d25f3e89f7af33f653d581984acc075335
|
data/README.md
CHANGED
@@ -20,16 +20,20 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
|
24
|
-
```bash
|
25
|
-
sjasmplus parse.asm
|
26
|
-
```
|
23
|
+
* Example: zxn.ru/disasm - DEMO button
|
27
24
|
|
28
|
-
- example: parse.C >> parse.C.txt and compare with parse.txt
|
29
25
|
```ruby
|
30
26
|
z = Z80Disassembler::Disassembler.new(params[:file], 32768)
|
31
|
-
z.start
|
32
|
-
z.
|
27
|
+
text = z.start
|
28
|
+
z.file_size
|
29
|
+
z.org
|
30
|
+
file_name = 'tmp/disasm'
|
31
|
+
file = Tempfile.new(file_name)
|
32
|
+
file.write(text)
|
33
|
+
file.write(Z80Disassembler::Disassembler.compile_text(file_name))
|
34
|
+
file.close
|
35
|
+
compiled = system "sjasmplus --nologo #{file.path} 2> #{file_name}.log"
|
36
|
+
logs = File.open("#{file_name}.log").read.split("\n")
|
33
37
|
```
|
34
38
|
## Development
|
35
39
|
|
data/lib/z80_disassembler.rb
CHANGED
@@ -45,13 +45,13 @@ module Z80Disassembler
|
|
45
45
|
@lambda = nil; @prefix = nil; @prev = nil
|
46
46
|
@hash_links = {}; @del_links = []
|
47
47
|
@rmda = """
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
48
|
+
;--- #{Date.today} --- https://rmda.su
|
49
|
+
; _______ _/| __ ______ ____
|
50
|
+
; / __ // |/ \\\\ _ \\ / \\
|
51
|
+
; / _/ _// \\\\ \\\\ \\\\ \\ \\
|
52
|
+
; \\___\\ \\\\___\\/___//______//__/\\__\\
|
53
|
+
; \\__/
|
54
|
+
;--- size: #{@file_size}b #{"--- filename: #{@file_name}" if @file_name}
|
55
55
|
|
56
56
|
"""
|
57
57
|
end
|
@@ -99,7 +99,7 @@ module Z80Disassembler
|
|
99
99
|
"#{link} #{string.ljust(16, ' ')}; #{addr16.ljust(5, ' ')} / #{addr_.to_s.ljust(5, ' ')} ; #{ascii_.ljust(4, ' ')} ; #{defb}"
|
100
100
|
end.join("\n")
|
101
101
|
[
|
102
|
-
|
102
|
+
@rmda,
|
103
103
|
' device zxspectrum128',
|
104
104
|
' ORG #' + @org.to_s(16),
|
105
105
|
@hash_links.map { |key, val| "#{(val + ':').ljust(16, ' ')} EQU #{key}" unless @del_links.include?(val) }.compact.join("\n"),
|
@@ -111,6 +111,7 @@ module Z80Disassembler
|
|
111
111
|
end
|
112
112
|
|
113
113
|
def self.compile_text(file_name)
|
114
|
+
name = file_name.split('/').last
|
114
115
|
[
|
115
116
|
'length equ end - begin',
|
116
117
|
'CODE = #AF',
|
@@ -136,11 +137,11 @@ module Z80Disassembler
|
|
136
137
|
'linlen = $ - linzac',
|
137
138
|
'baslen = $ - baszac',
|
138
139
|
" emptytap '#{file_name}.tap'",
|
139
|
-
" savetap '#{file_name}.tap', BASIC, '#{
|
140
|
-
" savetap '#{file_name}.tap', CODE, '#{
|
140
|
+
" savetap '#{file_name}.tap', BASIC, '#{name}', baszac, baslen, 1",
|
141
|
+
" savetap '#{file_name}.tap', CODE, '#{name}', begin, length, begin",
|
141
142
|
" savesna '#{file_name}.sna', begin",
|
142
|
-
" savebin '#{file_name}.
|
143
|
-
" savehob '#{file_name}.$C', '#{file_name}.
|
143
|
+
" savebin '#{file_name}.bin', begin, length",
|
144
|
+
" savehob '#{file_name}.$C', '#{file_name}.bin', begin, length",
|
144
145
|
''
|
145
146
|
].join("\n")
|
146
147
|
end
|