m68k: basic DOS syscall generation for human68k

This commit is contained in:
Karoly Balogh 2023-11-23 05:32:24 +01:00 committed by Charlie Balogh
parent a398da4c72
commit 439faf0da8
3 changed files with 22 additions and 2 deletions

View File

@ -115,6 +115,13 @@ implementation
else
internalerror(2017081201);
end;
system_m68k_human68k:
begin
if po_syscall in tprocdef(procdefinition).procoptions then
begin
current_asmdata.CurrAsmList.concat(tai_const.create_16bit(tprocdef(procdefinition).extnumber));
end;
end;
else
internalerror(2004042901);
end;

View File

@ -2207,6 +2207,7 @@ procedure pd_syscall(pd:tabstractprocdef);
case target_info.system of
system_arm_palmos,
system_m68k_palmos,
system_m68k_human68k,
system_m68k_atari,
system_m68k_amiga,
system_powerpc_amiga:
@ -2320,6 +2321,17 @@ begin
exit;
end;
if target_info.system = system_m68k_human68k then
begin
v:=get_intconst;
if ((v<$ff00) or (v>high(word))) then
message(parser_e_range_check_error)
else
tprocdef(pd).extnumber:=longint(v.svalue);
exit;
end;
if consume_sym(sym,symtable) then
if ((sym.typ=staticvarsym) or
(sym.typ=absolutevarsym) and (tabsolutevarsym(sym).abstyp=toaddr)) and

View File

@ -38,7 +38,7 @@ type
const
syscall_conventions: array[1..10] of tsyscallinfo = (
( token: NOTOKEN; procoption: po_syscall; validon: [system_m68k_atari,system_m68k_palmos,system_arm_palmos] ),
( token: NOTOKEN; procoption: po_syscall; validon: [system_m68k_atari,system_m68k_palmos,system_arm_palmos,system_m68k_human68k] ),
( token: _LEGACY; procoption: po_syscall_legacy; validon: [system_powerpc_morphos,system_m68k_amiga] ),
// old sysv naming, for compatibility only (on MorphOS/OS4)
( token: _SYSV; procoption: po_syscall_basenone; validon: [system_powerpc_morphos] ),
@ -72,10 +72,11 @@ type
end;
const
default_syscall_conventions: array[0..8] of tsyscalldefaultinfo = (
default_syscall_conventions: array[0..9] of tsyscalldefaultinfo = (
( system: system_arm_palmos; procoption: po_syscall ),
( system: system_m68k_palmos; procoption: po_syscall ),
( system: system_m68k_atari; procoption: po_syscall ),
( system: system_m68k_human68k; procoption: po_syscall ),
( system: system_m68k_amiga; procoption: po_syscall_legacy ),
( system: system_powerpc_amiga; procoption: po_syscall_basefirst ),
( system: system_powerpc_morphos; procoption: po_syscall_legacy ),