changeset 1316:50e9ec54e7e6

Fixed a problem in OS-9 Level One SysGo
author boisy
date Thu, 04 Sep 2003 19:47:16 +0000
parents 23c681a015e1
children 5a18c9bf3def
files level1/modules/sysgo.asm
diffstat 1 files changed, 28 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/level1/modules/sysgo.asm	Thu Sep 04 19:11:31 2003 +0000
+++ b/level1/modules/sysgo.asm	Thu Sep 04 19:47:16 2003 +0000
@@ -3,14 +3,19 @@
 *
 * $Id$
 *
-* Ed.    Comments                                       Who YY/MM/DD
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
 * ------------------------------------------------------------------
-*   5    Taken from OS-9 L2 Tandy distribution and      BGP 98/10/12
-*        modified banner for V3
-*   5r2  Fixed fork behavior so that if 'shell startup' BGP 03/01/08
-*        fails, system doesn't jmp to Crash, but tries
-*        AutoEx instead.  Also changed /DD back to /H0
-*        for certain boot floppy cases.
+*   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.
 
 
          nam   SysGo
@@ -64,7 +69,7 @@
          fcb   C$CR,C$LF
 * For ROM version, cut down on verbage
          IFEQ  ROM
-         fcc   "Release Date: 00/01/2003"
+         fcc   "Release Date: 09/01/2003"
          fcb   C$CR,C$LF
          fcc   /"A CoCo Community Project"/
          fcb   C$CR,C$LF
@@ -92,20 +97,17 @@
          ENDC
 ExecDir  fcc   "CMDS"
          fcb   C$CR
-         fcc   ",,,,,"
          ENDC
 
 Shell    fcc   "Shell"
          fcb   C$CR
-         fcc   ",,,,,"
 AutoEx   fcc   "AutoEx"
          fcb   C$CR
-         fcc   ",,,,,"
 
          IFEQ  ROM
-Startup  fcc   "STARTUP -P"
+Startup  fcc   "startup -p"
          fcb   C$CR
-         fcc   ",,,,,"
+StartupL equ  *-Startup
          ENDC
 
 ShellPrm equ   *
@@ -164,6 +166,7 @@
 
 * Setup BASIC code
 L0125    equ   *
+         pshs  u,y
          IFEQ  Level-1
          leax  >BasicRst,pcr
          ldu   #D.CBStrt
@@ -173,7 +176,6 @@
          decb
          bne   CopyLoop
          ELSE
-         pshs  u,y
          os9   F$ID
          bcs   L01A9
          leax  ,u
@@ -204,7 +206,7 @@
          leax  >Shell,pcr
          leau  >Startup,pcr
          ldd   #256
-         ldy   #16
+         ldy   #StartupL
          os9   F$Fork
          bcs   DoAuto
          os9   F$Wait
@@ -217,8 +219,9 @@
          os9   F$Fork
          bcs   L0186
          os9   F$Wait
-L0186    puls  u,y
-         leax  >ShellPrm,pcr
+L0186    equ   *
+         puls  u,y
+FrkShell leax  >ShellPrm,pcr
          leay  ,u
          ldb   #ShellPL
 L0190    lda   ,x+
@@ -227,17 +230,21 @@
          bne   L0190
 * Fork final shell here
          leax  >Shell,pcr
-         ldd   #$0100
+         lda   #$01		D = 256 (B already 0 from above)
          ldy   #ShellPL
+         IFGT  Level-1
          os9   F$Chain
-         IFEQ  Level-1
-DeadEnd  bra   DeadEnd		dead loop
-         ELSE
          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