unit CIA; INTERFACE uses Exec; var CiaBase: pLibrary; const CIAANAME = 'ciaa.resource'; CIABNAME = 'ciab.resource'; function AddICRVector (resource: pLibrary; iCRBit: integer; interrupt: pInterrupt): pInterrupt; procedure RemICRVector (resource: pLibrary; iCRBit: integer; interrupt: pInterrupt); function AbleICR (resource: pLibrary; mask: integer): integer; function SetICR (resource: pLibrary; mask: integer): integer; IMPLEMENTATION function AddICRVector; xassembler; asm movem.l a6,-(sp) lea 8(sp),a6 move.l (a6)+,a1 move.w (a6)+,d0 move.l (a6)+,a6 jsr -6(a6) move.l d0,$12(sp) movem.l (sp)+,a6 end; procedure RemICRVector; xassembler; asm movem.l a6,-(sp) lea 8(sp),a6 move.l (a6)+,a1 move.w (a6)+,d0 move.l (a6)+,a6 jsr -$C(a6) movem.l (sp)+,a6 end; function AbleICR; xassembler; asm movem.l a6,-(sp) lea 8(sp),a6 move.w (a6)+,d0 move.l (a6)+,a6 jsr -$12(a6) move.w d0,$E(sp) movem.l (sp)+,a6 end; function SetICR; xassembler; asm movem.l a6,-(sp) lea 8(sp),a6 move.w (a6)+,d0 move.l (a6)+,a6 jsr -$18(a6) move.w d0,$E(sp) movem.l (sp)+,a6 end; end.