diff --git a/l7801.lua b/l7801.lua index 7172b8e..9a21fb8 100644 --- a/l7801.lua +++ b/l7801.lua @@ -52,7 +52,7 @@ local Keywords_7801 = { local Registers_7801 = { a=8,b=8,c=8,d=8,e=8,h=8,l=8,v=8, - bc=16,de=16,hl=16,sp=16 + bc=16,de=16,hl=16,sp=16,va=16 } local function syntax7801(on) @@ -116,13 +116,14 @@ local opcode_reg_list = { e = lookupify{'mvi'}, h = lookupify{'mvi'}, l = lookupify{'mvi'}, - v = lookupify{'inrw','ldaw','dcrw','eqiw','mvi','mviw','pop','push','staw', + v = lookupify{'inrw','ldaw','dcrw','eqiw','mvi','mviw','staw', 'bit0','bit1','bit2','bit3','bit4','bit5','bit6','bit7', }, bc = lookupify{'ldax','lxi','mvix','pop','push','stax'}, de = lookupify{'ldax','ldaxd','ldaxi','lxi','mvix','pop','push','stax','staxd','staxi'}, hl = lookupify{'dcx','inx','ldax','ldaxd','ldaxi','lxi','mvix','pop','push','stax','staxd','staxi'}, sp = lookupify{'dcx','inx','lxi'}, + va = lookupify{'pop','push'}, } local opcode_reg_reg_list = { diff --git a/samples/scv_test.l65 b/samples/scv_test.l65 index adadbfc..1cb1c51 100644 --- a/samples/scv_test.l65 +++ b/samples/scv_test.l65 @@ -138,6 +138,6 @@ section{"rom", org=0x8000} pop hl pop de pop bc - push v - pop v + push va + pop va writebin(filename .. '.bin') \ No newline at end of file diff --git a/uPD7801.lua b/uPD7801.lua index 048f1c7..7d1e154 100644 --- a/uPD7801.lua +++ b/uPD7801.lua @@ -329,11 +329,11 @@ local op48r16={ pushbc=M.op(0x1e,17), pushde=M.op(0x2e,17), pushhl=M.op(0x3e,17), - pushv=M.op(0x0e,17), + pushva=M.op(0x0e,17), popbc=M.op(0x1f,15), popde=M.op(0x2f,15), pophl=M.op(0x3f,15), - popv=M.op(0x0f,15), + popva=M.op(0x0f,15), } M.op48r16 = op48r16 for k,v in pairs(op48r16) do M[k] = function()