[OpenBIOS] r655 - cpu/x86 cpu/x86/build forth/lib

svn at openbios.org svn at openbios.org
Sun Sep 30 20:03:33 CEST 2007


Author: wmb
Date: 2007-09-30 20:03:33 +0200 (Sun, 30 Sep 2007)
New Revision: 655

Modified:
   cpu/x86/build/builder.dic
   cpu/x86/disassem.fth
   forth/lib/util.fth
Log:
Fixed address calculation bug in disassembler (16-bit mode only),
made dis16 and dis32 appear in the forth vocabulary,
add "mib" and "kib" for convenience.


Modified: cpu/x86/build/builder.dic
===================================================================
(Binary files differ)

Modified: cpu/x86/disassem.fth
===================================================================
--- cpu/x86/disassem.fth	2007-09-29 20:03:38 UTC (rev 654)
+++ cpu/x86/disassem.fth	2007-09-30 18:03:33 UTC (rev 655)
@@ -21,11 +21,14 @@
 : op16@  ( -- w )  op8@   op8@   bwjoin  ;
 : op32@  ( -- l )  op16@  op16@  wljoin  ;
 
+: bext  ( b -- l )  d# 24 <<  d# 24 >>a  ;
+: wext  ( w -- l )  d# 16 <<  d# 16 >>a  ;
+
 \ change size of data
 true value op32?
 : opv@  ( -- l | w )  op32?  if  op32@  else  op16@  then  ;
 true value ad32?
-: adv@  ( -- l | w )  ad32?  if  op32@  else  op16@  then  ;
+: adv@  ( -- l | w )  ad32?  if  op32@  else  op16@ wext  then  ;
 : dis16  ( -- )  false is op32?  false is ad32?  ;
 : dis32  ( -- )  true  is op32?  true  is ad32?  ;
 \ XXX We should also change the register names e.g. from "eax" to "ax"
@@ -42,9 +45,6 @@
 : midbits  ( -- n )  3 3 ibits  ;
 : hibits   ( -- n )  6 2 ibits  ;
 
-: bext  ( b -- l )  d# 24 <<  d# 24 >>a  ;
-: wext  ( w -- l )  d# 16 <<  d# 16 >>a  ;
-
 hex
 
 : .,  ( -- )  ." ,"  ;
@@ -594,6 +594,8 @@
 alias pc!dis1 pc!dis1
 alias +dis +dis
 alias dis dis
+alias dis16 dis16
+alias dis32 dis32
 
 previous previous previous definitions
 \ LICENSE_BEGIN

Modified: forth/lib/util.fth
===================================================================
--- forth/lib/util.fth	2007-09-29 20:03:38 UTC (rev 654)
+++ forth/lib/util.fth	2007-09-30 18:03:33 UTC (rev 655)
@@ -72,6 +72,9 @@
 : bits  ( n bit# #bits -- bits )  -rot rshift  swap lowbits  ;
 : bit  ( n bit# -- )  1 bits  ;
 
+: kib  ( n -- nkib )  d# 10 lshift  ;  \ Convert to kilobytes
+: mib  ( n -- nmib )  d# 20 lshift  ;  \ Convert to megabytes
+
 : log2  ( n -- log2-of-n )
    0  begin        ( n log )
       swap  2/     ( log n' )




More information about the OpenBIOS mailing list