|
@@ -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.
|