Mercurial > hg > Members > kono > nitros9-code
view level1/modules/sysgo.asm @ 2763:c03464c24b14
Fixed a minor typo in the arcadepak's makefile related to DriveWire3 and Becker.
Updated makefile with new option nightlytest. Run option is "make nightlytest".
You also need to test environment variable TESTSSHDIR and TESTSSHSERVER before using it.
Also updated the nightly option so if the SOURCEUSER environment variable is not set it will report it.
author | drencor-xeen |
---|---|
date | Wed, 16 Jan 2013 17:33:46 -0600 |
parents | 41313184bd78 |
children | 5944d79e3fe5 |
line wrap: on
line source
******************************************************************** * SysGo - Kickstart program module * * $Id$ * * Edt/Rev YYYY/MM/DD Modified by * Comment * ------------------------------------------------------------------ * 5 1998/10/12 Boisy G. Pitre * Taken from OS-9 L2 Tandy distribution and modified banner for V3. * * 5r2 2003/01/08 Boisy G. Pitre * Fixed fork behavior so that if 'shell startup' fails, system doesn't * jmp to Crash, but tries AutoEx instead. Also changed /DD back to /H0 * for certain boot floppy cases. * * 2003/09/04 Boisy G. Pitre * Back-ported to OS-9 Level One. * * 5r3 2003/12/14 Boisy G. Pitre * Added SHIFT key check to prevent startup/autoex from starting if * held down. Gene Heskett, this Bud's for you. nam SysGo ttl Kickstart program module IFP1 use defsfile ENDC tylg set Prgrm+Objct atrv set ReEnt+rev rev set $03 edition set $05 mod eom,name,tylg,atrv,start,size org 0 InitAddr rmb 2 rmb 250 size equ . name fcs /SysGo/ fcb edition * Default process priority DefPrior set 128 Banner equ * fcc /(C) 2012 The NitrOS-9 Project/ CrRtn fcb C$CR,C$LF IFEQ ROM IFNE NOS9DBG fcc "** DEVELOPMENT BUILD **" fcb C$CR,C$LF fcc "** NOT FOR DISTRIBUTION! **" fcb C$CR,C$LF ENDC dts fcb C$CR,C$LF fcc !http://www.nitros9.org! fcb C$CR,C$LF ENDC fcb C$LF BannLen equ *-Banner IFEQ ROM DefDev equ * IFNE DD fcc "/DD" ELSE fcc "/H0" ENDC fcb C$CR HDDev equ * IFNE DD fcc "/DD/" ELSE fcc "/H0/" ENDC ExecDir fcc "CMDS" fcb C$CR ENDC Shell fcc "Shell" fcb C$CR AutoEx fcc "AutoEx" fcb C$CR AutoExPr fcc "" fcb C$CR AutoExPrL equ *-AutoExPr IFEQ ROM Startup fcc "startup -p" fcb C$CR StartupL equ *-Startup ENDC ShellPrm equ * IFGT Level-1 fcc "i=/1" ENDC CRtn fcb C$CR ShellPL equ *-ShellPrm * Default time packet DefTime dtb IFEQ atari IFEQ Level-1 * BASIC reset code (CoCo port only) BasicRst fcb $55 neg <$0074 nop clr >PIA0Base+3 nop nop sta >$FFDF turn off ROM mode jmp >Bt.Start+2 jump to boot BasicRL equ *-BasicRst ENDC ENDC Init fcs /Init/ * Entry: X = pointer to start of nul terminated string * Exit: D = length of string strlen pshs x ldd #-1 go@ addd #$0001 tst ,x+ bne go@ puls x,pc WriteCR pshs y leax CrRtn,pcr ldy #$0001 os9 I$WritLn puls y,pc * SysGo Entry Point start leax >IcptRtn,pcr os9 F$Icpt * Set priority of this process os9 F$ID ldb #DefPrior os9 F$SPrior * Write OS name and Machine name strings leax Init,pcr clra pshs u os9 F$Link bcs SignOn stx <InitAddr ldd OSName,u point to OS name in INIT module leax d,u point to install name in INIT module bsr strlen tfr d,y lda #$01 os9 I$Write bsr WriteCR ldd InstallName,u leax d,u point to install name in INIT module bsr strlen tfr d,y lda #$01 os9 I$Write bsr WriteCR * Show rest of banner SignOn puls u leax >Banner,pcr ldy #BannLen lda #$01 standard output os9 I$Write write out banner * Set default time leax >DefTime,pcr os9 F$STime set time to default IFEQ ROM * Change EXEC and DATA dirs leax >ExecDir,pcr lda #EXEC. os9 I$ChgDir change exec. dir leax >DefDev,pcr * Made READ. so that no write occurs at boot (Boisy on Feb 5, 2012) * lda #READ.+WRITE. lda #READ. os9 I$ChgDir change data dir. bcs L0125 leax >HDDev,pcr lda #EXEC. os9 I$ChgDir change exec. dir to HD ENDC L0125 equ * pshs u,y IFEQ atari IFEQ Level-1 * Setup BASIC code (CoCo port only) leax >BasicRst,pcr ldu #D.CBStrt ldb #BasicRL CopyLoop lda ,x+ sta ,u+ decb bne CopyLoop ELSE os9 F$ID lbcs L01A9 leax ,u os9 F$GPrDsc lbcs L01A9 leay ,u ldx #$0000 ldb #$01 os9 F$MapBlk bcs L01A9 lda #$55 set flag for Color BASIC sta <D.CBStrt,u * Copy our default I/O ptrs to the system process ldd <D.SysPrc,u leau d,u leau <P$DIO,u leay <P$DIO,y ldb #DefIOSiz-1 L0151 lda b,y sta b,u decb bpl L0151 ENDC ENDC IFEQ ROM * Fork shell startup here IFEQ atari * Added 12/14/03: If SHIFT is held down, startup is not run (CoCo only) lda #$01 standard output ldb #SS.KySns os9 I$GetStt bcs DoStartup bita #SHIFTBIT SHIFT key down? bne L0186 Yes, don't to startup or autoex ENDC DoStartup leax >Shell,pcr leau >Startup,pcr ldd #256 ldy #StartupL os9 F$Fork bcs DoAuto os9 F$Wait ENDC * Fork AutoEx here DoAuto leax >AutoEx,pcr leau >CRtn,pcr ldd #$0100 ldy #$0001 os9 F$Fork bcs L0186 os9 F$Wait L0186 equ * puls u,y FrkShell leax >ShellPrm,pcr leay ,u ldb #ShellPL L0190 lda ,x+ sta ,y+ decb bne L0190 * Fork final shell here leax >Shell,pcr lda #$01 D = 256 (B already 0 from above) ldy #ShellPL IFGT Level-1 os9 F$Chain ldb #$06 bra Crash L01A9 ldb #$04 Crash clr >DPort+$08 turn off disk motor jmp <D.Crash ELSE os9 F$Fork bcs DeadEnd os9 F$Wait bcc FrkShell DeadEnd bra DeadEnd ENDC IcptRtn rti emod eom equ * end