Python 希望将旧的6502源代码十六进制行转换为.byte$00行

Python 希望将旧的6502源代码十六进制行转换为.byte$00行,python,converters,6502,Python,Converters,6502,我需要你的帮助,就像标题上说的,我正在尝试转换大量的源代码,我的很多旧源代码都有大量的汇编代码行(6502),我无法再在Windows上使用 例如,我可以进行大量搜索和替换以更改所有操作码!字节转换为.byte或DCB转换为.byte,DCW转换为.word等,但当我有一行又一行的十六进制代码需要转换为.byte(例如)时,我就卡住了,也就是说,我有 HEX 0000000000000000 HEX 0000000002000000 我想和你在一起 .byte $00,$00,$00,$0

我需要你的帮助,就像标题上说的,我正在尝试转换大量的源代码,我的很多旧源代码都有大量的汇编代码行(6502),我无法再在Windows上使用

例如,我可以进行大量搜索和替换以更改所有操作码!字节转换为.byte或DCB转换为.byte,DCW转换为.word等,但当我有一行又一行的十六进制代码需要转换为.byte(例如)时,我就卡住了,也就是说,我有

HEX 0000000000000000 
HEX 0000000002000000 
我想和你在一起

.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$02,$00,$00,$00
现在,如果我只有2行代码,我可以手工完成,但是当我打开有100行代码的源代码时,这将是一个乏味的过程,并且需要很长的时间


我考虑过Python,我考虑过vb脚本甚至批处理脚本,但大部分都涉及到将代码复制到一个文件中,用语言(互联网上的弗兰肯斯坦代码)解析文件,然后得到结果并重新加载,我想一定有办法(可能是使用vbscript,就像我以前玩VBA和VB6一样,但我太老了,已经生锈了,现在连想都不敢想)要弹出两个框,左框,十六进制的原始副本,右框。字节输出?甚至一个文本输入框,我复制并粘贴到下面的结果,然后我可以复制并粘贴回我的源代码。

您可以将原始字符串的相关部分切成两个字符的块,并使用列表理解将其转换为所需格式:

def convert(s):
  codes = s[4:]
  return ".byte {}".format(",".join("${}".format(codes[i*2:i*2+2]) for i in range(len(codes)//2)))
然后

将打印

.byte $01,$23,$45,$67,$89,$AB,$CD,$EF
然后,您应该能够在客户端应用程序(如
tkinter
)或简单的web应用程序(如
flask
)中使用此功能


请注意,您还可以找到MOS6502的交叉编译器。

您可以使用惯用的python方法对数字进行分组

cin = [
    "HEX 0000000000000000",
    "HEX 0000000002000000",
]

cout = [
 '.byte'+ ''.join(
  " ${}".format(''.join(d)) 
  for d in zip(*[iter(c[4:])]*2)
 )
 for c in cin
]
哪个产生了这个列表

[
 '.byte $00 $00 $00 $00 $00 $00 $00 $00',
 '.byte $00 $00 $00 $00 $02 $00 $00 $00'
]
[
 '.byte $00 $00 $00 $00 $00 $00 $00 $00',
 '.byte $00 $00 $00 $00 $02 $00 $00 $00'
]