z80_disassembler 0.2.4 → 0.2.5
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.
- checksums.yaml +4 -4
- data/lib/z80_disassembler.rb +10 -7
- data/lib/z80_disassembler/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9970749ade07cf2808e1e6792d3c45f26d8325e6fc2fd492d6b3f88c4d843c40
|
4
|
+
data.tar.gz: ebbfd99ccff00c4e86e5a8e09e31774359c7798d13ed847c65d1b0e95ccf04e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8455ef820171b02eb4e886a7a37ef4dc43679c0c8bf4b777d9dc73e93732c4ec8899da13b4ea73d38f4704d5b8487ba42ab722cda462b11a7a33f7b46f68eefc
|
7
|
+
data.tar.gz: cecc4ee2168d08c0e1a373209f472cc78936f69e8f6ad067b04e9632e44c9d7291b3027215c5a6329d2226dfeb8a208b1aa28adb9c2ba6b56e400785f74e51c2
|
data/lib/z80_disassembler.rb
CHANGED
@@ -26,7 +26,7 @@ module Z80Disassembler
|
|
26
26
|
].freeze
|
27
27
|
|
28
28
|
def initialize(file, org = 32_768)
|
29
|
-
@file = file; @org = org.to_i
|
29
|
+
@file = file; @org = 25108 # org.to_i
|
30
30
|
if file.original_filename[-3..-1] == '.$C'
|
31
31
|
File.open(@file) do |f|
|
32
32
|
z = f.read(17)
|
@@ -131,13 +131,15 @@ module Z80Disassembler
|
|
131
131
|
when 1
|
132
132
|
resp = @lambda.call(@arg, byte.to_s(16).rjust(2, '0').upcase)
|
133
133
|
@prefix = nil; temp = @temp; @temp = nil
|
134
|
-
if temp && resp.include?(')')
|
135
|
-
resp
|
134
|
+
if temp && resp.include?('(HL)')
|
135
|
+
resp += temp
|
136
|
+
elsif temp && resp.include?(')')
|
137
|
+
# resp = @xx ? displacement(temp.hex, resp) :
|
138
|
+
resp = resp.sub(')', "#{temp})").sub('(', '(#')
|
136
139
|
elsif temp
|
137
140
|
resp += temp
|
138
141
|
end
|
139
142
|
resp = hl_to_xx(resp, @xx) unless @xx.nil?
|
140
|
-
@xx = nil
|
141
143
|
if resp.include?('JR') || resp.include?('DJNZ')
|
142
144
|
z = resp.split('#')
|
143
145
|
z[1] = z[1].hex < 127 ? "$+#{z[1].hex + 2}" : "$-#{255 - z[1].hex - 1}"
|
@@ -149,6 +151,7 @@ module Z80Disassembler
|
|
149
151
|
end
|
150
152
|
|
151
153
|
def hl_to_xx(temp, reg)
|
154
|
+
@xx = nil
|
152
155
|
if temp.include?('HL')
|
153
156
|
temp.sub('HL', reg)
|
154
157
|
elsif temp.include?(' L')
|
@@ -167,7 +170,7 @@ module Z80Disassembler
|
|
167
170
|
def displacement(byte, temp)
|
168
171
|
@prefix = nil
|
169
172
|
byte -= 256 if byte > 127
|
170
|
-
des = ['', "+#{byte.to_s
|
173
|
+
des = ['', "+#{byte.to_s}", byte.to_s][byte <=> 0]
|
171
174
|
temp.sub('HL', @xx + des)
|
172
175
|
end
|
173
176
|
|
@@ -252,8 +255,8 @@ module Z80Disassembler
|
|
252
255
|
if @temp&.include?('(')
|
253
256
|
@prefix = 'xx'; nil
|
254
257
|
elsif ['dd', 'fd'].include?(@prev) && @temp
|
255
|
-
temp = @temp; @temp = nil; @prefix = nil
|
256
|
-
hl_to_xx(temp, xx)
|
258
|
+
temp = @temp; @temp = nil; @prefix = nil
|
259
|
+
hl_to_xx(temp, @xx)
|
257
260
|
elsif @lambda && !@arg&.include?('HL')
|
258
261
|
@prefix = 1; @temp
|
259
262
|
else
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: z80_disassembler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dvitvitskiy
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06-
|
11
|
+
date: 2021-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|