Coverage for MC6809/components/MC6809data/CPU6809csv_export.py: 100%

0 statements  

« prev     ^ index     » next       coverage.py v7.2.1, created at 2023-03-06 19:50 +0100

1# """ 

2# 6809 instruction set data 

3# ~~~~~~~~~~~~~~~~~~~~~~~~~ 

4# 

5# data from: 

6# * http://www.maddes.net/m6809pm/sections.htm#sec4_4 

7# * http://www.burgins.com/m6809.html 

8# * http://www.maddes.net/m6809pm/appendix_a.htm#appA 

9# 

10# :copyleft: 2013 by Jens Diemer 

11# :license: GNU GPL v3 or above, see LICENSE for more details. 

12# """ 

13# 

14# from __future__ import absolute_import, division, print_function 

15# 

16# 

17# import pprint 

18# import sys 

19# 

20# from .MC6809_data_raw import INSTRUCTION_INFO, OP_DATA 

21# from MC6809data.MC6809_data_raw import MEM_ACCESS_BYTE, MEM_ACCESS_WORD 

22# 

23# 

24# keys = list(OP_DATA[0].keys()) 

25# keys.insert(3, "opcode_hex") 

26# keys.sort() 

27# 

28# FROM_INSTRUCTION_INFO = ['HNZVC', 'instr_desc'] 

29# 

30# 

31# MEM_ACCESS_MAP = { 

32# MEM_ACCESS_BYTE: "byte", 

33# MEM_ACCESS_WORD: "word", 

34# } 

35# 

36# 

37# import csv 

38# with open('CPU6809_opcodes.csv', 'wb') as csvfile: 

39# w = csv.writer(csvfile, 

40# delimiter='\t', 

41# quotechar='|', quoting=csv.QUOTE_MINIMAL 

42# ) 

43# 

44# w.writerow(keys + FROM_INSTRUCTION_INFO) 

45# 

46# for op_data in OP_DATA: 

47# row = [] 

48# 

49# op_data["opcode_hex"] = hex(op_data["opcode"]) 

50# 

51# for key in keys: 

52# data = op_data.get(key, "-") 

53# if key == "mem_access" and data != "-": 

54# data = MEM_ACCESS_MAP[data] 

55# 

56# if isinstance(data, str): 

57# data = data.replace("\t", " ") 

58# row.append(data) 

59# 

60# instr_info_key = op_data["instr_info_key"] 

61# instr_info = INSTRUCTION_INFO[instr_info_key] 

62# for key in FROM_INSTRUCTION_INFO: 

63# row.append( 

64# instr_info.get(key, "").replace("\n", " ").replace("\t", " ") 

65# ) 

66# 

67# print(row) 

68# w.writerow(row) 

69# 

70# print(" -- END -- ")