SysGo module
The SysGo module starts the first process and restarts it if it dies.
nam SysGo ttl SysGo - system bootstrap startup module * Copyright 1980 by Motorola, Inc., and Microware Systems Corp., * Reproduced Under License * * This source code is the proprietary confidential property of * Microware Systems Corporation, and is provided to licensee * solely for documentation and educational purposes. Reproduction, * publication, or distribution in any form to any party other than * the licensee is strictly prohibited! * use defsfile ***** * * Coldstart Module * * Starts Cmd Module On Path "/Term" * Type set SYSTM+OBJCT Revs set REENT+1 mod CldEnd,CldNam,Type,Revs,CldEnt,CldMem CldNam fcs /SysGo/ fcb 5 Edition number rmb 256 stack space CldMem equ . DirStr fcc "Cmds" fcb $D fcc ",,,,,,,,,," room for patch CMDSTR fcc "Shell" fcb $D fcc ",,,,,,,,,," room for patch SHLFUN fcc "STARTUP -p" fcb $D FUNSIZ equ *-SHLFUN fcc ",,,,,,,,,," room for patch CldEnt leax CLICPT,PCR Set up signal intercept OS9 F$ICPT leax DirStr,PCR Get directory name ptr lda #EXEC. Get execution mode OS9 I$ChgDir Change execution directory * NOTE: do not test for error, at least system will boot leax CMDSTR,PCR Get ptr to "shell" leau SHLFUN,PCR Get ptr to startup file name ldd #OBJCT*256 Get type ldy #FUNSIZ Size of parameters OS9 F$FORK Execute startup file bcs CLDERR Branch if error OS9 F$WAIT Wait for it CLDM10 leax CMDSTR,PCR Get command name ptr ldd #OBJCT*256 ldy #0 No parameters OS9 F$FORK Start new process bcs CLDERR OS9 F$WAIT Wait for it to die bcc CLDM10 CLDERR jmp [$FFFE] CLICPT rti COLDSTART Intercept routine emod Module Crc CldEnd equ * end