changeset 1331:0a3500c747de

Fixed ANOTHER bug
author boisy
date Sun, 07 Sep 2003 00:53:51 +0000
parents 4f42a5a604d3
children 80f15c027ebb
files level1/cmds/merge.asm
diffstat 1 files changed, 18 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/level1/cmds/merge.asm	Sun Sep 07 00:41:30 2003 +0000
+++ b/level1/cmds/merge.asm	Sun Sep 07 00:53:51 2003 +0000
@@ -44,6 +44,22 @@
 name     fcs   /Merge/
          fcb   edition    change to 6, as merge 5 has problems?
 
+* Here's how registers are set when this process is forked:
+*
+*   +-----------------+  <--  Y          (highest address)
+*   !   Parameter     !
+*   !     Area        !
+*   +-----------------+  <-- X, SP
+*   !   Data Area     !
+*   +-----------------+
+*   !   Direct Page   !
+*   +-----------------+  <-- U, DP       (lowest address)
+*
+*   D = parameter area size
+*  PC = module entry point abs. address 
+*  CC = F=0, I=0, others undefined 
+
+* The start of the program is here. 
 start    subd  #$0001     if this becomes zero,
          beq   Exit       we have no parameters
 
@@ -54,7 +70,8 @@
          subd  ,s++       get size of space between buff and X
          subd  #STACKSZ+PARMSZ subtract out our stack/param size
          std   <d.size    save size of data buffer
-         leau  d.buffer,u point to some data
+         leay  d.buffer,u point to some data
+         sty   <d.ptr
 
 do.opts  ldx   <param     get first option
 do.opts2 lbsr  space