home *** CD-ROM | disk | FTP | other *** search
- INCLUDE "macros.i"
- INCLUDE "exec/types.i"
- INCLUDE "exec/ables.i"
- INCLUDE "exec/execbase.i"
- INCLUDE "libraries/dosextens.i"
- INCLUDE "libraries/arpbase.i"
-
- ExecBase EQU 4
-
- xref LinkerDB,_BSSBAS,_BSSLEN
- xref run,cmdline,cmdlen
-
- csect _STARTUP,0,0,0,4
-
- start RESIDENT 2000
- lea LinkerDB,a4
- tst.l d0
- beq.s nocmd
- move.l d0,cmdlen
- lea cmdline,a1
- bra.s cpy1
- cpy_cmd move.b (a0)+,(a1)+
- cpy1 dbf d0,cpy_cmd
- bra.s cont
-
- nocmd move.w $1000,cmdline
- moveq.l #1,d0
- move.l d0,cmdlen
-
- cont lea _BSSBAS,a3
- moveq.l #0,d1
- move.l #_BSSLEN,d0
- bra.s clr_lp
- clr_bss move.l d1,(a3)+
- clr_lp dbf d0,clr_bss
-
- move.l ExecBase.w,a6
- lea Arp,a1
- moveq.l #ArpVersion,d0
- Call OpenLibrary
- move.l d0,ArpBase(a4)
- beq noarp
- move.l d0,a0
- move.l ab_IntuiBase(a0),IntuitionBase(a4)
- move.l ab_DosBase(a0),d0
- move.l d0,DOSBase(a4)
-
- move.l ThisTask(a6),a3
- move.l pr_CurrentDir(a3),d1
- move.l d0,a6
- Call DupLock
- move.l d0,curdir(a4)
-
- lea pcb,a2
- move.l #2000,pcb_StackSize(a2)
- move.b LN_PRI(a3),pcb_Pri(a2)
- move.b #PRF_CLOSESPLAT,pcb_Control(a2)
-
- move.l #CON,d1
- move.l #MODE_OLDFILE,d2
- move.l DOSBase(a4),a6
- Call Open
- move.l d0,pcb_Output(a2)
- move.l d0,pcb_Input(a2)
-
- lea start-4(pc),a3
- move.l (a3),pcb_LoadedCode(a2)
- move.l (a3),seglist(a4)
- move.l ExecBase.w,a6
- FORBID
- suba.l a1,a1
- lea name(pc),a0
- move.l ArpBase(a4),a6
- Call ASyncRun
-
- lea args(pc),a1
-
- tst.l d0
- bmi.s starterr
-
- clr.l (a3)
- move.w d0,4(a1)
- lea startmess(pc),a0
- Call Printf
- bra.s noclose
-
- starterr lea error(pc),a0
- Call Printf
- move.l curdir(a4),d1
- Call UnLock
- movea.l a6,a1
- move.l ExecBase.w,a6
- Call CloseLibrary
- noclose move.l ExecBase.w,a6
- ; Call Permit
-
- noarp rts
-
- args dc.l name
- num dc.w 0
-
- pcb ds.b pcb_SIZEOF
- name dc.b "AmiCron",0
- CON dc.b "NIL:",0
-
- Arp dc.b "arp.library",0
- error dc.b "Could not create %s-process!",10,0
- startmess dc.b "%s started at background shell %d",10,0
-
- csect __MERGED,1,0,0,4
-
- xdef IntuitionBase,ArpBase,DOSBase,curdir,seglist
-
- seglist dc.l 0
- curdir dc.l 0
- ArpBase dc.l 0
- DOSBase dc.l 0
- IntuitionBase
- dc.l 0
- END
-