James Hunkins wrote: > Has anyone setup C68 wrappers for the Home thing? Also, any sample C > code using it?
I wanted to, but didn't find the time. I only did a wrapper for setting the directory (see below), which I used in Qascade. However, the other functions can be wrapped accordingly. Marcel ;/*---------------------------------------------------------------------. ;| home.s | ;| | ;| Copyright (c) 2005 Jonathan Hudson & Wolfgang Lenerz & Marcel Kilgus| ;| | ;| You may distribute under the terms of either the GNU General Public | ;| License or the Artistic License, as specified in the README file. | ;£---------------------------------------------------------------------*/ .text .even .globl _sethome ; (char * fnam, int jobID) thing_name: dc.w 4 dc.b 'HOME' NAMESPACE equ 64 ; Size of space to reserve for name _sethome: link a5,#-NAMESPACE ; reserve space for file name movem.l a2-a4/d2-d7,-(sp) ; save lots of registers moveq #$28,d0 ; use thing lea thing_name,a0 moveq #-1,d1 ; parameter moveq #-1,d3 ; ditto move.l #$53455448,d2 ; extension to use "SETH" jsr ThingTrap ; ... do it bne fin ; disaster .... move.l a1,d7 ; save thing address move.l 4+4(a5),-(a7) ; file name pea.l -NAMESPACE(a5) ; space jsr __cstr_to_ql ; convert to qlstr addq.l #8,a7 ; restore stack sub.w #12,a7 ; some more work space move.l a7,a1 move.l 8+4(a5),(a1) ; jobID move.l #$c1000000,4(a1) ; thp.call+thp.str move.l d0,8(a1) ; filename move.l d7,a0 jsr $18(a0) ; call extension (thh_code) add.w #12,a7 moveq #$29,d0 ; un use lea thing_name,a0 moveq #-1,d1 ; parameter moveq #-1,d3 ; parameter jsr ThingTrap ; ... do it moveq #0,d0 ; ignore error fin: movem.l (sp)+,a2-a4/d2-d7 ; unsave lots of registers unlk a5 rts end _______________________________________________ QL-Users Mailing List http://www.q-v-d.demon.co.uk/smsqe.htm