mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 18:09:27 +02:00
h68units: added some more IOCS calls, mostly related to hardware sprite handling
This commit is contained in:
parent
c20178b6e1
commit
bcaf8d1409
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user