h68units: added some more IOCS calls, mostly related to hardware sprite handling

This commit is contained in:
Karoly Balogh 2024-07-29 14:23:12 +02:00
parent c20178b6e1
commit bcaf8d1409

View File

@ -23,7 +23,14 @@ procedure _iocs_b_curon;
procedure _iocs_b_curoff;
function _iocs_crtmod(mode: longint): longint;
procedure _iocs_g_clr_on;
function _iocs_gpalet(colnum: longint; color: word): longint;
function _iocs_vpage(page: longint): longint;
function _iocs_sp_init: longint;
procedure _iocs_sp_on;
procedure _iocs_sp_off;
function _iocs_sp_defcg(code: longint; size: longint; addr: pointer): longint;
function _iocs_sp_regst(spno: longint; mode: longint; x,y: longint; code: dword; prio: longint): longint;
function _iocs_spalet(mode: longint; block: longint; color: longint): longint;
implementation
@ -53,6 +60,16 @@ asm
trap #15
end;
function _iocs_gpalet(colnum: longint; color: word): longint; assembler; nostackframe;
asm
move.l d2,-(sp)
move.l d1,d2
move.l d0,d1
moveq.l #$ffffff94,d0
trap #15
move.l (sp)+,d2
end;
function _iocs_vpage(page: longint): longint; assembler; nostackframe;
asm
move.l d0,d1
@ -60,4 +77,57 @@ asm
trap #15
end;
function _iocs_sp_init: longint; assembler; nostackframe;
asm
moveq.l #$ffffffc0,d0
trap #15
end;
procedure _iocs_sp_on; assembler; nostackframe;
asm
moveq.l #$ffffffc1,d0
trap #15
end;
procedure _iocs_sp_off; assembler; nostackframe;
asm
moveq.l #$ffffffc2,d0
trap #15
end;
function _iocs_sp_defcg(code: longint; size: longint; addr: pointer): longint; assembler; nostackframe;
asm
move.l d2,-(sp)
move.l d1,d2
move.l d0,d1
move.l a0,a1
moveq #$ffffffc4,d0
trap #15
move.l (sp)+,d2
end;
function _iocs_sp_regst(spno: longint; mode: longint; x,y: longint; code: dword; prio: longint): longint; assembler; nostackframe;
asm
movem.l d2/d3/d4/d5,-(sp)
movem.l 20(sp),d2/d3/d4/d5
and.l #$80000000,d1
move.b d0,d1
moveq.l #$ffffffc6,d0
trap #15
movem.l (sp)+,d2/d3/d4/d5
end;
function _iocs_spalet(mode: longint; block: longint; color: longint): longint; assembler; nostackframe;
asm
move.l d2,-(sp)
move.l d3,-(sp)
move.l 12(sp),d3
move.l d1,d2
move.l d0,d1
moveq.l #$ffffffcf,d0
trap #15
move.l (sp)+,d3
move.l (sp)+,d2
end;
end.