home *** CD-ROM | disk | FTP | other *** search
- ;
- ; Iconstartup.i
- ;
- ; include this to allow startup from icon.
- ; Just code the rest of your program as if you were writing for CLI.
- ;
- ; You should also add these lines to your code:
- ;
- ; include "exec/exec_lib.i"
- ; include "exec/exec.i"
- ; include "libraries/dosextens.i
- ;
- ; or similar code for your assembler...
- ;
- ; If your assembler won't assemble this, throw it away and buy
- ; the excellent HISOFT DEVPAC 3.0 from Hisoft Software.
-
-
- movem.l d0/a0,-(sp)
-
- sub.l a1,a1
- move.l 4.w,a6
- jsr _LVOFindTask(a6)
-
- ; Could use ThisTask(a6) here, but we won't. The general rule
- ; is that if there is a system function to read a structure, use
- ; that rather than peeking the structure directly. This gives
- ; Commodore greater freedom to change things in the future...
-
- move.l d0,a4
-
- tst.l pr_CLI(a4) ; was it called from CLI?
- bne.s fromCLI ; if so, skip out this bit...
-
- lea pr_MsgPort(a4),a0
- move.l 4.w,a6
- jsr _LVOWaitPort(A6)
- lea pr_MsgPort(a4),a0
- jsr _LVOGetMsg(A6)
- move.l d0,returnMsg
-
- fromCLI
- movem.l (sp)+,d0/a0
-
- go_program
-
-
- bsr.s _main ; Calls your code..
-
- ; If your code does not allow exit, the following lines are
- ; not required
-
- move.l d0,-(sp)
-
- tst.l returnMsg ; Is there a message?
- beq.s exitToDOS ; if not, skip...
-
- move.l 4.w,a6
- jsr _LVOForbid(a6) ; note! No Permit needed!
-
- move.l returnMsg(pc),a1
- jsr _LVOReplyMsg(a6)
-
- exitToDOS
- move.l (sp)+,d0 ; exit code
- rts
-
- ; These next lines are required whether you want to exit or not!
-
-
- returnMsg dc.l 0
-
- even ;(or cnop 0,2)
- _main
-