[OpenBIOS] r678 - ofw/fs/jffs2

svn at openbios.org svn at openbios.org
Fri Oct 12 11:23:29 CEST 2007


Author: wmb
Date: 2007-10-12 11:23:29 +0200 (Fri, 12 Oct 2007)
New Revision: 678

Modified:
   ofw/fs/jffs2/jffs2.fth
Log:
Fixed a bug introduced by svn 674.



Modified: ofw/fs/jffs2/jffs2.fth
===================================================================
--- ofw/fs/jffs2/jffs2.fth	2007-10-12 09:03:59 UTC (rev 677)
+++ ofw/fs/jffs2/jffs2.fth	2007-10-12 09:23:29 UTC (rev 678)
@@ -551,7 +551,7 @@
    \ If the first encoded dirent is short-form, the pino is the same as
    \ before and thus matches.
    ax ax xor  0 [si] al mov         \ ax: b
-   ax shr  carry?  if               \ 1-byte form
+   al shr  carry?  if               \ 1-byte form
       2 # ax shl  ax 0 [dx] add     \ Update dirent-offset
       1 #     si  add               \ skip byte offset
       4 [sp]  si  xchg              \ Put adr back on stack and restore si
@@ -563,7 +563,7 @@
 
    op: 0 [si] ax mov                \ ax: w
    ax ax and  0<>  if               \ 2-byte form
-      2 # ax shl  ax 0 [dx] add     \ Update dirent-offset
+      1 # ax shl  ax 0 [dx] add     \ Update dirent-offset
       2 #     si  add               \ skip word offset
       4 [sp]  si  xchg              \ Put adr back on stack and restore si
       0 [dx]  bp  mov               \ bp: offset
@@ -575,14 +575,15 @@
 
    long-offsets on
    begin  
-      ax ax xor  0 [si] al mov         \ ax: b
-      ax shr  carry?  if               \ 1-byte form
+      ax ax xor
+      0 [si] al mov                    \ ax: b
+      al shr  carry?  if               \ 1-byte form
          2 # ax shl  ax 0 [dx] add     \ Update dirent-offset
          1 #     si  add               \ skip byte offset
       else
          op: 0 [si]  ax  mov           \ ax: w
          ax ax or  0<>  if                \ Short form
-            2 # ax shl  ax 0 [dx] add     \ Update dirent-offset
+            1 # ax shl  ax 0 [dx] add     \ Update dirent-offset
             2 #     si  add               \ skip word offset
          else
             d#  6 [si]  ax  mov   ax  0 [dx]  mov  \ Update dirent-offset
@@ -626,7 +627,7 @@
    drop                       ( adr )
 
    dup w@  ?dup  if           ( adr w )
-      /l* dirent-offset +!    ( adr )
+      /w* dirent-offset +!    ( adr )
       dirent-offset @         ( adr offset )
       swap  wa1+  swap        ( adr' offset )
       true                    ( adr offset true )
@@ -638,7 +639,7 @@
          2/ /l* dirent-offset +!     ( adr )
          ca1+                        ( adr' )
       w at + swap ?dup  if              ( adr' w )
-         /l* dirent-offset +!        ( adr' )
+         /w* dirent-offset +!        ( adr' )
       else                           ( adr' )
          l at + swap cur-pino !         ( adr' )
          l at + swap dirent-offset !    ( adr' )




More information about the OpenBIOS mailing list