Added 0x4Cxx MOV instructions.

This commit is contained in:
mooz 2018-11-15 19:25:57 +01:00
parent c09a04964a
commit 0d66e70a69
4 changed files with 50 additions and 11 deletions

View File

@ -52,7 +52,8 @@ local Keywords_7801 = {
} }
local Registers_7801 = { local Registers_7801 = {
a=8,b=8,c=8,d=8,e=8,h=8,l=8,v=8, a=8,b=8,c=8,d=8,e=8,h=8,l=8,v=8,
bc=16,de=16,hl=16,sp=16,va=16 bc=16,de=16,hl=16,sp=16,va=16,
pa=8,pb=8,pc=8,mk=8,mb=8,mc=8,tm0=8,tm1=8,s=8,
} }
local Interrupts_7801 = lookupify{ local Interrupts_7801 = lookupify{
'f0','ft','f1','f2','fs' 'f0','ft','f1','f2','fs'
@ -140,6 +141,15 @@ local opcode_reg_reg_list = {
e = lookupify{'mov'}, e = lookupify{'mov'},
h = lookupify{'mov'}, h = lookupify{'mov'},
l = lookupify{'mov'}, l = lookupify{'mov'},
pa = lookupify{'mov'},
pb = lookupify{'mov'},
pc = lookupify{'mov'},
mk = lookupify{'mov'},
mb = lookupify{'mov'},
mc = lookupify{'mov'},
tm0 = lookupify{'mov'},
tm1 = lookupify{'mov'},
s = lookupify{'mov'},
}, },
b = { b = {
a = lookupify{'mov'}, a = lookupify{'mov'},

View File

@ -6,29 +6,29 @@ section{"rom", org=0x8000}
di di
lxi sp,0xFFD2 lxi sp,0xFFD2
ei ei
calt 0x8C calt 0x8C
lxi hl,vdc_data lxi hl,vdc_data
lxi de,0x3400 lxi de,0x3400
mvi c,0x03 mvi c,0x03
block block
lxi hl,message lxi hl,message
lxi de,0x3044 lxi de,0x3044
lxi bc,0x01ff lxi bc,0x01ff
@loop_0 @loop_0
block block
dcr b dcr b
jr loop_0 jr loop_0
-- beep -- beep
lxi hl,0x3600 lxi hl,0x3600
calf 0xfb0 calf 0xfb0
@loop_1 @loop_1
nop nop
jr loop_1 jr loop_1
section{"vdc_data", org=0x8030} section{"vdc_data", org=0x8030}
dc.b 0xC0,0x00,0x00,0xF2 dc.b 0xC0,0x00,0x00,0xF2
@ -37,4 +37,4 @@ section{"message", org=0x8040}
dc.b "\t\t\t\t Hello world! \t\t\t\t" dc.b "\t\t\t\t Hello world! \t\t\t\t"
dc.b 0x00 dc.b 0x00
writebin(filename .. '.bin') writebin(filename .. '.bin')

View File

@ -168,5 +168,14 @@ section{"rom", org=0x8000}
out 0x00 out 0x00
out 0x5a out 0x5a
out 0xbf out 0xbf
mov a,pa
mov a,pb
mov a,pc
mov a,mk
mov a,mb
mov a,mc
mov a,tm0
mov a,tm1
mov a,s
writebin(filename .. '.bin') writebin(filename .. '.bin')

View File

@ -412,12 +412,32 @@ for k,v in pairs(opinout) do
end end
end end
local op4car8={
movapa=M.op(0xc0,10),
movapb=M.op(0xc1,10),
movapc=M.op(0xc2,10),
movamk=M.op(0xc3,10),
movamb=M.op(0xc4,10),
movamc=M.op(0xc5,10),
movatm0=M.op(0xc6,10),
movatm1=M.op(0xc7,10),
movas=M.op(0xc8,10),
} M.op4car8 = op4car8
for k,v in pairs(op4car8) do
M[k] = function()
table.insert(M.section_current.instructions, { size=2, cycles=v.cycles, bin={ 0x4c, v.opc } })
end
end
return M return M
--[[ [todo] --[[ [todo]
16 bits instructions: 16 bits instructions:
0x4cxx 0x4cxx
0x4dxx 0x4dxx
0x60xx 0x60xx
0x64xx 0x64xx