z80_disassembler 0.2.3 → 0.2.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7fda0599a6e835b5063fc6115dcdc364cfc895b2a7cbf1dba8f57965698526a5
4
- data.tar.gz: 705361c3aa8d088e967411643e9774a1d1cbc169a9e7ce57d8ffa8087a833f68
3
+ metadata.gz: 5fe96f8335ed977825007f7846ed1b5b515ee9bab79fad0c67976504926c827e
4
+ data.tar.gz: c9341766fb32cf922aea077fa5968755b05e05ac03b45d277b8cc9de023f5b46
5
5
  SHA512:
6
- metadata.gz: 6b2b887c58d4bf48e32094f9753e71520ff3b1c12d7d7ab46870c0179628005b3e13be8c191c0fd305e78004c3b2b630833536fceb77ff49f004ed19cb17b59e
7
- data.tar.gz: cfd8680fc373ed1031ffd89af3ad8ff7c1cdb67f6fa5e5aa53f15b9f1d4e172c7c5983f14d62914f2baa3e0d49249472f744cb851b69770c546205e51f3c4b5e
6
+ metadata.gz: 4fabf9e9a350e8ddedbc85acb8c8f738fd471e347591107f81a169c14c5d3dbca0f779f7706294ec6a3fde06895d6d5a429b6c6c48c8f9e5e84ba2de29097539
7
+ data.tar.gz: cc8e487897234f43ddc6962d1ce979704b9295a7f99551d592db7413acb5d985ccf0d394952b26d0e08e84caafb91e31a96b1a1abe94f48a154b2cc3332e9010
@@ -69,21 +69,39 @@ module Z80Disassembler
69
69
  del_links = []
70
70
  link_num = 0
71
71
  int_addrs = @org..(@org + @file_size)
72
- with_links = @result.select { |z| z[2] =~ /#[0-F]{4}/ && int_addrs.include?(z[2].split('#').last[0..3].hex) }
73
- with_links.each do |x|
72
+ @result.select { |z| z[2] =~ /#[0-F]{4}/ && int_addrs.include?(z[2].split('#').last[0..3].hex) }.each do |x|
74
73
  z = "##{x[2].split('#').last[0..3]}"
75
74
  hash_links[z] = "link_#{link_num += 1}" unless hash_links[z]
76
75
  end
77
-
76
+ @result.select { |z| z[2] =~ /\$/ }.each do |x|
77
+ z = "##{ (x[0] + x[2].split('$').last.to_i).to_s(16).upcase }"
78
+ hash_links[z] = "link_#{link_num += 1}" unless hash_links[z]
79
+ end
78
80
  code = @result.map do |addr, addr16, str, bytes, ascii|
79
81
  del_links << hash_links[addr16] if hash_links[addr16]
80
- link = (hash_links[addr16] || '').ljust(16, ' ')
81
- adr = '#' + str.split('#').last[0..3]
82
- string = hash_links.keys.include?(adr) ? str.sub(adr, hash_links[adr]) : str
82
+ link = (hash_links[addr16] ? (hash_links[addr16] + ':') : '').ljust(16, ' ')
83
+ substr, adr = if str.include?('$')
84
+ ["$#{str.split('$').last}", "##{(addr + str.split('$').last.to_i).to_s(16).upcase}"]
85
+ else
86
+ adr = "##{str.split('#').last[0..3]}"
87
+ [adr, adr]
88
+ end
89
+ string = hash_links.keys.include?(adr) ? str.sub(substr, hash_links[adr]) : str
90
+
83
91
  "#{link} #{string.ljust(16, ' ')}; #{addr16.ljust(5, ' ')} / #{addr.to_s.ljust(5, ' ')} ; #{bytes.ljust(14, ' ')} ; #{ascii.ljust(4, ' ')} ;"
84
92
  end.join("\n")
85
93
 
94
+ header = [
95
+ ";--- #{Date.today} --- https://rmda.su ",
96
+ '; _______ _/| __ ______ ____ ',
97
+ '; / __ // |/ \\\\ _ \ / \ ',
98
+ '; / _/ _// \\\\ \\\\ \\\\ \ \ ',
99
+ '; \___\ \\\\___\/___//______//__/\__\ ',
100
+ '; \__/ ',
101
+ ";--- size: #{@file_size} --- filename: #{@file_name} "
102
+ ]
86
103
  [
104
+ *header,
87
105
  ' device zxspectrum48',
88
106
  ' ORG #' + @org.to_s(16),
89
107
  hash_links.map { |key, val| "#{val.ljust(16, ' ')} equ #{key}" unless del_links.include?(val) }.compact.join("\n"),
@@ -122,7 +140,7 @@ module Z80Disassembler
122
140
  @xx = nil
123
141
  if resp.include?('JR') || resp.include?('DJNZ')
124
142
  z = resp.split('#')
125
- z[1] = z[1].hex < 127 ? "$+#{z[1].hex}" : "$-#{255 - z[1].hex}"
143
+ z[1] = z[1].hex < 127 ? "$+#{z[1].hex + 2}" : "$-#{255 - z[1].hex - 1}"
126
144
  resp = z.join
127
145
  end
128
146
  resp
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Z80Disassembler
4
- VERSION = '0.2.3'
4
+ VERSION = '0.2.4'
5
5
  end
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.3
4
+ version: 0.2.4
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-07 00:00:00.000000000 Z
11
+ date: 2021-06-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: