Convert to python3
This commit is contained in:
parent
8934c97938
commit
b717984056
26
applepy.py
26
applepy.py
|
@ -391,7 +391,7 @@ class Apple2:
|
|||
|
||||
rs, _, _ = select.select([listener], [], [], 2)
|
||||
if not rs:
|
||||
print >>sys.stderr, "CPU module did not start"
|
||||
print("CPU module did not start", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
self.cpu, _ = listener.accept()
|
||||
|
||||
|
@ -404,7 +404,7 @@ class Apple2:
|
|||
break
|
||||
cycle, rw, addr, val = struct.unpack("<IBHB", op)
|
||||
if rw == 0:
|
||||
self.cpu.send(chr(self.softswitches.read_byte(cycle, addr)))
|
||||
self.cpu.send(bytes([self.softswitches.read_byte(cycle, addr)]))
|
||||
elif rw == 1:
|
||||
self.display.update(addr, val)
|
||||
else:
|
||||
|
@ -415,7 +415,7 @@ class Apple2:
|
|||
quit = True
|
||||
|
||||
if event.type == pygame.KEYDOWN:
|
||||
key = ord(event.unicode) if event.unicode else 0
|
||||
key = ord(event.unicode.encode("ascii")) if event.unicode else 0
|
||||
if event.key == pygame.K_LEFT:
|
||||
key = 0x08
|
||||
if event.key == pygame.K_RIGHT:
|
||||
|
@ -435,16 +435,16 @@ class Apple2:
|
|||
|
||||
|
||||
def usage():
|
||||
print >>sys.stderr, "ApplePy - an Apple ][ emulator in Python"
|
||||
print >>sys.stderr, "James Tauber / http://jtauber.com/"
|
||||
print >>sys.stderr
|
||||
print >>sys.stderr, "Usage: applepy.py [options]"
|
||||
print >>sys.stderr
|
||||
print >>sys.stderr, " -c, --cassette Cassette wav file to load"
|
||||
print >>sys.stderr, " -R, --rom ROM file to use (default A2ROM.BIN)"
|
||||
print >>sys.stderr, " -r, --ram RAM file to load (default none)"
|
||||
print >>sys.stderr, " -p, --pc Initial PC value"
|
||||
print >>sys.stderr, " -q, --quiet Quiet mode, no sounds (default sounds)"
|
||||
print("ApplePy - an Apple ][ emulator in Python", file=sys.stderr)
|
||||
print("James Tauber / http://jtauber.com/", file=sys.stderr)
|
||||
print(file=sys.stderr)
|
||||
print("Usage: applepy.py [options]", file=sys.stderr)
|
||||
print(file=sys.stderr)
|
||||
print(" -c, --cassette Cassette wav file to load", file=sys.stderr)
|
||||
print(" -R, --rom ROM file to use (default A2ROM.BIN)", file=sys.stderr)
|
||||
print(" -r, --ram RAM file to load (default none)", file=sys.stderr)
|
||||
print(" -p, --pc Initial PC value", file=sys.stderr)
|
||||
print(" -q, --quiet Quiet mode, no sounds (default sounds)", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
|
|
|
@ -98,12 +98,12 @@ def run(win):
|
|||
|
||||
|
||||
def usage():
|
||||
print >>sys.stderr, "ApplePy - an Apple ][ emulator in Python"
|
||||
print >>sys.stderr, "James Tauber / http://jtauber.com/"
|
||||
print >>sys.stderr
|
||||
print >>sys.stderr, "Usage: applepy_curses.py [options]"
|
||||
print >>sys.stderr
|
||||
print >>sys.stderr, " -R, --rom ROM file to use (default A2ROM.BIN)"
|
||||
print("ApplePy - an Apple ][ emulator in Python", file=sys.stderr)
|
||||
print("James Tauber / http://jtauber.com/", file=sys.stderr)
|
||||
print(file=sys.stderr)
|
||||
print("Usage: applepy_curses.py [options]", file=sys.stderr)
|
||||
print(file=sys.stderr)
|
||||
print(" -R, --rom ROM file to use (default A2ROM.BIN)", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
|
|
32
control.py
32
control.py
|
@ -1,16 +1,16 @@
|
|||
import json
|
||||
import sys
|
||||
import urllib
|
||||
import urllib.request, urllib.parse, urllib.error
|
||||
|
||||
URL_PREFIX = "http://localhost:6502"
|
||||
|
||||
|
||||
def get(url):
|
||||
return json.loads(urllib.urlopen(URL_PREFIX + url).read())
|
||||
return json.loads(urllib.request.urlopen(URL_PREFIX + url).read())
|
||||
|
||||
|
||||
def post(url, data=None):
|
||||
return urllib.urlopen(URL_PREFIX + url, json.dumps(data) if data is not None else "")
|
||||
return urllib.request.urlopen(URL_PREFIX + url, json.dumps(data) if data is not None else "")
|
||||
|
||||
|
||||
def value(s):
|
||||
|
@ -45,7 +45,7 @@ def cmd_disassemble(a):
|
|||
addr = status["program_counter"]
|
||||
disasm = get("/disassemble/%d" % addr)
|
||||
for d in disasm:
|
||||
print format_disassemble(d)
|
||||
print(format_disassemble(d))
|
||||
|
||||
|
||||
def cmd_dump(a):
|
||||
|
@ -80,7 +80,7 @@ def cmd_dump(a):
|
|||
s += "."
|
||||
else:
|
||||
s += " "
|
||||
print s
|
||||
print(s)
|
||||
addr += 16
|
||||
|
||||
|
||||
|
@ -89,20 +89,20 @@ def cmd_help(a):
|
|||
if len(a) > 1:
|
||||
f = Commands.get(a[1])
|
||||
if f is not None:
|
||||
print f.__doc__
|
||||
print(f.__doc__)
|
||||
else:
|
||||
print "Unknown command:", a[1]
|
||||
print("Unknown command:", a[1])
|
||||
else:
|
||||
print "Commands:"
|
||||
print("Commands:")
|
||||
for c in sorted(Commands):
|
||||
print " ", c
|
||||
print(" ", c)
|
||||
|
||||
|
||||
def cmd_peek(a):
|
||||
"""Peek memory location"""
|
||||
addr = value(a[1])
|
||||
dump = get("/memory/%d" % addr)
|
||||
print "%04X: %02X" % (addr, dump[0])
|
||||
print("%04X: %02X" % (addr, dump[0]))
|
||||
|
||||
|
||||
def cmd_poke(a):
|
||||
|
@ -115,7 +115,7 @@ def cmd_poke(a):
|
|||
def cmd_status(a):
|
||||
"""CPU status"""
|
||||
status = get("/status")
|
||||
print "A=%02X X=%02X Y=%02X S=%02X PC=%04X F=%c%c0%c%c%c%c%c" % (
|
||||
print("A=%02X X=%02X Y=%02X S=%02X PC=%04X F=%c%c0%c%c%c%c%c" % (
|
||||
status["accumulator"],
|
||||
status["x_index"],
|
||||
status["y_index"],
|
||||
|
@ -128,9 +128,9 @@ def cmd_status(a):
|
|||
"I" if status["interrupt_disable_flag"] else "i",
|
||||
"Z" if status["zero_flag"] else "z",
|
||||
"C" if status["carry_flag"] else "c",
|
||||
)
|
||||
))
|
||||
disasm = get("/disassemble/%d" % status["program_counter"])
|
||||
print format_disassemble(disasm[0])
|
||||
print(format_disassemble(disasm[0]))
|
||||
|
||||
|
||||
def cmd_quit(a):
|
||||
|
@ -155,15 +155,15 @@ Commands = {
|
|||
|
||||
|
||||
def main():
|
||||
print "ApplePy control console"
|
||||
print("ApplePy control console")
|
||||
while True:
|
||||
s = raw_input("6502> ")
|
||||
s = input("6502> ")
|
||||
a = s.strip().split()
|
||||
f = Commands.get(a[0])
|
||||
if f is not None:
|
||||
f(a)
|
||||
else:
|
||||
print "Unknown command:", s
|
||||
print("Unknown command:", s)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
46
cpu6502.py
46
cpu6502.py
|
@ -3,7 +3,7 @@
|
|||
# originally written 2001, updated 2011
|
||||
|
||||
|
||||
import BaseHTTPServer
|
||||
import http.server
|
||||
import json
|
||||
import re
|
||||
import select
|
||||
|
@ -35,7 +35,7 @@ class ROM:
|
|||
def load_file(self, address, filename):
|
||||
with open(filename, "rb") as f:
|
||||
for offset, datum in enumerate(f.read()):
|
||||
self._mem[address - self.start + offset] = ord(datum)
|
||||
self._mem[address - self.start + offset] = datum
|
||||
|
||||
def read_byte(self, address):
|
||||
assert self.start <= address <= self.end
|
||||
|
@ -365,7 +365,7 @@ class Disassemble:
|
|||
return r, info[0]
|
||||
|
||||
|
||||
class ControlHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
||||
class ControlHandler(http.server.BaseHTTPRequestHandler):
|
||||
|
||||
def __init__(self, request, client_address, server, cpu):
|
||||
self.cpu = cpu
|
||||
|
@ -385,13 +385,13 @@ class ControlHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
|||
r"/reset$": self.post_reset,
|
||||
}
|
||||
|
||||
BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, request, client_address, server)
|
||||
http.server.BaseHTTPRequestHandler.__init__(self, request, client_address, server)
|
||||
|
||||
def log_request(self, code, size=0):
|
||||
pass
|
||||
|
||||
def dispatch(self, urls):
|
||||
for r, f in urls.items():
|
||||
for r, f in list(urls.items()):
|
||||
m = re.match(r, self.path)
|
||||
if m is not None:
|
||||
f(m)
|
||||
|
@ -439,7 +439,7 @@ class ControlHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
|||
end = int(e)
|
||||
else:
|
||||
end = addr
|
||||
self.response(json.dumps(list(map(self.cpu.read_byte, range(addr, end + 1)))))
|
||||
self.response(json.dumps(list(map(self.cpu.read_byte, list(range(addr, end + 1))))))
|
||||
|
||||
def get_status(self, m):
|
||||
self.response(json.dumps(dict((x, getattr(self.cpu, x)) for x in (
|
||||
|
@ -719,9 +719,9 @@ class CPU:
|
|||
op = self.read_pc_byte()
|
||||
func = self.ops[op]
|
||||
if func is None:
|
||||
print "UNKNOWN OP"
|
||||
print hex(self.program_counter - 1)
|
||||
print hex(op)
|
||||
print("UNKNOWN OP")
|
||||
print(hex(self.program_counter - 1))
|
||||
print(hex(op))
|
||||
break
|
||||
else:
|
||||
self.ops[op]()
|
||||
|
@ -736,9 +736,9 @@ class CPU:
|
|||
op = self.read_pc_byte()
|
||||
func = self.ops[op]
|
||||
if func is None:
|
||||
print "UNKNOWN OP"
|
||||
print hex(self.program_counter - 1)
|
||||
print hex(op)
|
||||
print("UNKNOWN OP")
|
||||
print(hex(self.program_counter - 1))
|
||||
print(hex(op))
|
||||
break
|
||||
else:
|
||||
self.ops[op]()
|
||||
|
@ -1172,15 +1172,15 @@ class CPU:
|
|||
|
||||
|
||||
def usage():
|
||||
print >>sys.stderr, "ApplePy - an Apple ][ emulator in Python"
|
||||
print >>sys.stderr, "James Tauber / http://jtauber.com/"
|
||||
print >>sys.stderr
|
||||
print >>sys.stderr, "Usage: cpu6502.py [options]"
|
||||
print >>sys.stderr
|
||||
print >>sys.stderr, " -b, --bus Bus port number"
|
||||
print >>sys.stderr, " -p, --pc Initial PC value"
|
||||
print >>sys.stderr, " -R, --rom ROM file to use (default A2ROM.BIN)"
|
||||
print >>sys.stderr, " -r, --ram RAM file to load (default none)"
|
||||
print("ApplePy - an Apple ][ emulator in Python", file=sys.stderr)
|
||||
print("James Tauber / http://jtauber.com/", file=sys.stderr)
|
||||
print(file=sys.stderr)
|
||||
print("Usage: cpu6502.py [options]", file=sys.stderr)
|
||||
print(file=sys.stderr)
|
||||
print(" -b, --bus Bus port number", file=sys.stderr)
|
||||
print(" -p, --pc Initial PC value", file=sys.stderr)
|
||||
print(" -R, --rom ROM file to use (default A2ROM.BIN)", file=sys.stderr)
|
||||
print(" -r, --ram RAM file to load (default none)", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
|
@ -1220,8 +1220,8 @@ def get_options():
|
|||
if __name__ == "__main__":
|
||||
options = get_options()
|
||||
if options.bus is None:
|
||||
print "ApplePy cpu core"
|
||||
print "Run applepy.py instead"
|
||||
print("ApplePy cpu core")
|
||||
print("Run applepy.py instead")
|
||||
sys.exit(0)
|
||||
|
||||
mem = Memory(options)
|
||||
|
|
Loading…
Reference in New Issue