Skip to content

Commit f1d6833

Browse files
committed
Bug fixes for PSHU and PULU.
Update the workflow to use latest Python version. Update actions to latest versions. Try to get version names correct.
1 parent 6f58550 commit f1d6833

File tree

4 files changed

+45
-9
lines changed

4 files changed

+45
-9
lines changed

.github/workflows/python-app.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@ name: Build Test Coverage
22
on: [push, pull_request]
33
jobs:
44
run:
5-
runs-on: ubuntu-latest
5+
runs-on: ubuntu-20.04
66
env:
7-
OS: ubuntu-latest
8-
PYTHON: '3.6.8'
7+
OS: ubuntu-20.04
8+
PYTHON: '3.8.10'
99
steps:
1010
- name: Checkout
11-
uses: actions/checkout@v2.3.4
11+
uses: actions/checkout@v3
1212
- name: Setup Python
13-
uses: actions/setup-python@v2.2.2
13+
uses: actions/setup-python@v4
1414
with:
15-
python-version: 3.6.8
15+
python-version: 3.8.10
1616
- name: Generate Report
1717
run: |
1818
pip install -r requirements.txt

cocoasm/instruction.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,9 @@ class Instruction(NamedTuple):
147147
Instruction(mnemonic="ORB", mode=Mode(imm=0xCA, imm_sz=2, dir=0xDA, dir_sz=2, ind=0xEA, ind_sz=2, ext=0xFA, ext_sz=3)),
148148
Instruction(mnemonic="ORCC", mode=Mode(imm=0x1A, imm_sz=2)),
149149
Instruction(mnemonic="PSHS", mode=Mode(imm=0x34, imm_sz=2), is_special=True),
150-
Instruction(mnemonic="PSHU", mode=Mode(imm=0x36, imm_sz=2)),
150+
Instruction(mnemonic="PSHU", mode=Mode(imm=0x36, imm_sz=2), is_special=True),
151151
Instruction(mnemonic="PULS", mode=Mode(imm=0x35, imm_sz=2), is_special=True),
152-
Instruction(mnemonic="PULU", mode=Mode(imm=0x37, imm_sz=2)),
152+
Instruction(mnemonic="PULU", mode=Mode(imm=0x37, imm_sz=2), is_special=True),
153153
Instruction(mnemonic="ROLA", mode=Mode(inh=0x49, inh_sz=1)),
154154
Instruction(mnemonic="ROLB", mode=Mode(inh=0x59, inh_sz=1)),
155155
Instruction(mnemonic="ROL", mode=Mode(dir=0x09, dir_sz=2, ind=0x69, ind_sz=2, ext=0x79, ext_sz=3)),

cocoasm/operands.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ def resolve_symbols(self, symbol_table):
258258
def translate(self):
259259
post_byte = 0x00
260260

261-
if self.instruction.mnemonic == "PSHS" or self.instruction.mnemonic == "PULS":
261+
if self.instruction.mnemonic in ["PSHS", "PSHU", "PULS", "PULU"]:
262262
if not self.operand_string:
263263
raise OperandTypeError("one or more registers must be specified")
264264

test/test_integration.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -864,6 +864,42 @@ def test_multi_word_declaration(self):
864864
program.translate_statements()
865865
self.assertEqual([0xDE, 0xAD, 0xBE, 0xEF, 0xCA, 0xFE], program.get_binary_array())
866866

867+
def test_pshu_regression(self):
868+
statements = [
869+
Statement(" PSHU A"),
870+
]
871+
program = Program()
872+
program.statements = statements
873+
program.translate_statements()
874+
self.assertEquals([0x36, 0x02], program.get_binary_array())
875+
876+
def test_pshu_multi_regression(self):
877+
statements = [
878+
Statement(" PSHU A,B"),
879+
]
880+
program = Program()
881+
program.statements = statements
882+
program.translate_statements()
883+
self.assertEquals([0x36, 0x06], program.get_binary_array())
884+
885+
def test_pulu_regression(self):
886+
statements = [
887+
Statement(" PULU A"),
888+
]
889+
program = Program()
890+
program.statements = statements
891+
program.translate_statements()
892+
self.assertEquals([0x37, 0x02], program.get_binary_array())
893+
894+
def test_pulu_multi_regression(self):
895+
statements = [
896+
Statement(" PULU A,B"),
897+
]
898+
program = Program()
899+
program.statements = statements
900+
program.translate_statements()
901+
self.assertEquals([0x37, 0x06], program.get_binary_array())
902+
867903
# M A I N #####################################################################
868904

869905

0 commit comments

Comments
 (0)