Diff for /gforth/arch/misc/prim.fs between versions 1.1 and 1.2

version 1.1, 1997/05/29 19:43:10 version 1.2, 1998/03/08 23:47:00
Line 2 Line 2
   
 $20 allot  $20 allot
   
 Label start     ahere $28 + , jmp ,  Label start     ahere $21 + , jmp ,
   
 Label #0        0 ,  Label #0        0 ,
 Label #1        1 ,  Label #1        1 ,
 Label #2        2 ,  
 Label #4        4 ,  
 Label #FF       $FF ,  
 Label #$8000    $8000 ,  
 Label #-1       -1 ,  
 Label RP        0 ,  Label RP        0 ,
 Label SP        0 ,  Label SP        0 ,
 Label UP        0 ,  Label UP        0 ,
 Label IP        0 ,  Label IP        0 ,
 Label W         0 ,  Label W         0 ,
   Label t0        0 ,
   Label t1        0 ,
   Label t2        0 ,
   Label t3        0 ,
   Label srcx      0 ,
   Label dstx      0 ,
   
   \ Up to here it's self modified
   \ If there's a gap here, add a jump to Next after dstx
   
 Label Next      #0 , add ,  Label Next      #0 , add ,
                 IP , shr ,                  IP , shr ,
                 sym Next                  sym Next
                 accu , 0 m ,                  *accu , W ,
                 0 r , W ,  
                 #1 , add ,                  #1 , add ,
                 accu , add ,                  accu , add ,
                 accu , IP ,                  accu , IP ,
 Label Next1     #0 , add ,  Label Next1     W , shr ,
                 W , shr ,                  *accu , shr ,
                 accu , 0 m ,  
                 #0 , add ,  
                 0 r , shr ,  
                 accu , jmp ,                  accu , jmp ,
 Label "Next"    Next ,  Label "Next"    Next ,
 Label "Next1"   Next1 ,  Label "Next1"   Next1 ,
   Label "xmov"    srcx ,
   
   Label #2        2 ,
   Label #4        4 ,
   Label #FF       $FF ,
   Label #$8000    $8000 ,
   Label #-1       -1 ,
   
 Label "0"       '< ,  Label "0"       '< ,
 Label "1"       '1 ,  Label "1"       '1 ,
Line 71  Code: :docol sym docol Line 79  Code: :docol sym docol
                 RP , accu ,                  RP , accu ,
                 #1 , sub ,                  #1 , sub ,
                 accu , RP ,                  accu , RP ,
                 accu , 0 m ,                  IP , *accu ,
                 IP , 0 r ,  
                 W , accu ,                  W , accu ,
                 #4 , add ,                  #4 , add ,
                 accu , IP ,                  accu , IP ,
Line 81  end-code Line 88  end-code
   
 Code: :docon    sym docon  Code: :docon    sym docon
 \               "1" , tx ,  \               "1" , tx ,
                 SP , accu ,  
                 #1 , sub ,  
                 accu , SP ,  
                 accu , 0 m ,  
                 #0 , add ,                  #0 , add ,
                 W , shr ,                  W , shr ,
                 #2 , add ,                  #2 , add ,
                 accu , 1 m ,                  *accu , t0 ,
                 1 r , 0 r ,                  SP , accu ,
                   #1 , sub ,
                   accu , SP ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code: :dovar    sym dovar  Code: :dovar    sym dovar
 \               "2" , tx ,  \               "2" , tx ,
                   W , accu ,
                   #4 , add ,
                   accu , t0 ,
                 SP , accu ,                  SP , accu ,
                 #1 , sub ,                  #1 , sub ,
                 accu , SP ,                  accu , SP ,
                 accu , 0 m ,                  t0 , *accu ,
                 W , accu ,  
                 #4 , add ,  
                 accu , 0 r ,  
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code: :douser   sym douser  Code: :douser   sym douser
 \               "3" , tx ,  \               "3" , tx ,
                 SP , accu ,  
                 #1 , sub ,  
                 accu , SP ,  
                 accu , 0 m ,  
                 #0 , add ,                  #0 , add ,
                 W , shr ,                  W , shr ,
                 #2 , add ,                  #2 , add ,
                 accu , 1 m ,                  *accu , accu ,
                 1 r , accu ,  
                 UP , add ,                  UP , add ,
                 accu , 0 r ,                  accu , t0 ,
                   SP , accu ,
                   #1 , sub ,
                   accu , SP ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
Line 126  Code: :dodefer sym dodefer Line 131  Code: :dodefer sym dodefer
                 #0 , add ,                  #0 , add ,
                 W , shr ,                  W , shr ,
                 #2 , add ,                  #2 , add ,
                 accu , 0 m ,                  *accu , W ,
                 0 r , W ,  
                 "Next1" , jmp ,                  "Next1" , jmp ,
 end-code  end-code
   
Line 136  Code: :dofield sym dofield Line 140  Code: :dofield sym dofield
                 #0 , add ,                  #0 , add ,
                 W , shr ,                  W , shr ,
                 #2 , add ,                  #2 , add ,
                 accu , 0 m ,                  *accu , accu ,
                 0 r , accu ,                  accu , t0 ,
                 SP , 0 m ,                  SP , accu ,
                 0 r , add ,                  *accu , accu ,
                 SP , 0 m ,                  t0 , add ,
                 accu , 0 r ,                  accu , t0 ,
                   SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
Line 150  Code: :dodoes sym dodoes Line 156  Code: :dodoes sym dodoes
                 RP , accu ,                  RP , accu ,
                 #1 , sub ,                  #1 , sub ,
                 accu , RP ,                  accu , RP ,
                 accu , 0 m ,                  IP , *accu ,
                 ip , 0 r ,                  W , accu ,
                   #4 , add ,
                   accu , t0 ,
                 SP , accu ,                  SP , accu ,
                 #1 , sub ,                  #1 , sub ,
                 accu , SP ,                  accu , SP ,
                 accu , 0 m ,                  t0 , *accu ,
                 W , accu ,                  t0 , accu ,
                 #4 , add ,  
                 accu , 0 r ,  
                 #2 , sub ,                  #2 , sub ,
                 #0 , add ,                  #0 , add ,
                 accu , shr ,                  accu , shr ,
                 accu , 0 m ,                  *accu , IP ,
                 0 r , IP ,  
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code !          sym !  Code !          sym !
 \               "A" , tx ,  \               "A" , tx ,
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , 1 m ,                  *accu , t1 ,
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 #0 , add ,                  t0 , shr ,
                 0 r , shr ,                  t1 , *accu ,
                 accu , 2 m ,  
                 1 r , 2 r ,  
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code @          sym @  Code @          sym @
 \               "B" , tx ,  \               "B" , tx ,
                 #0 , add ,                  #0 , add ,
                 SP , 0 m ,                  SP , accu ,
                 SP , 1 m ,                  *accu , shr ,
                 1 r , shr ,                  *accu , t0 ,
                 accu , 2 m ,                  SP , accu ,
                 2 r , 0 r ,                  t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code x!         sym x!  Code x!         sym x!
 \               "C" , tx ,  \               "C" , tx ,
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , dstx ,
                 #1 , add ,                  #1 , add ,
                 accu , 1 m ,                  accu , srcx ,
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 0 r , 2 m ,                  "xmov" , jmp ,
                 1 r , 2 r ,  
                 "Next" , jmp ,  
 end-code  end-code
                                   
 Code x@         sym x@  Code x@         sym x@
 \               "D" , tx ,  \               "D" , tx ,
                 SP , 0 m ,                  SP , accu ,
                 SP , 1 m ,                  *accu , srcx ,
                 1 r , 2 m ,                  accu , dstx ,
                 2 r , 0 r ,                  "xmov" , jmp ,
                 "Next" , jmp ,  
 end-code  end-code
   
 Code execute    sym execute  Code execute    sym execute
 \               "E" , tx ,  \               "E" , tx ,
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , W ,
                 0 r , W ,  
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 "Next1" , jmp ,                  "Next1" , jmp ,
Line 228  end-code Line 227  end-code
 Code ;s         sym ;s  Code ;s         sym ;s
 \               "F" , tx ,  \               "F" , tx ,
                 RP , accu ,                  RP , accu ,
                 accu , 0 m ,  
                 #1 , add ,                  #1 , add ,
                 accu , RP ,                  accu , RP ,
                 0 r , IP ,                  #1 , sub ,
                   *accu , IP ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
Line 239  Code ?branch sym ?branch Line 238  Code ?branch sym ?branch
 \               "?" , tx ,  \               "?" , tx ,
                 #0 , add ,                  #0 , add ,
                 IP , shr ,                  IP , shr ,
                 accu , 0 m ,                  accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , add ,                  accu , add ,
                 accu , IP ,                  accu , IP ,
Line 252  Code ?branch sym ?branch Line 251  Code ?branch sym ?branch
                 sym no-branch                  sym no-branch
                 "Next" , jmp ,                  "Next" , jmp ,
 \               "+" , tx ,  \               "+" , tx ,
                 0 r , accu ,                  t0 , accu ,
                   *accu , accu ,
 Label >branch   sym branch-o  Label >branch   sym branch-o
                 IP , add ,                  IP , add ,
                 #2 , sub ,                  #2 , sub ,
Line 266  Code branch sym branch Line 266  Code branch sym branch
 \               "/" , tx ,  \               "/" , tx ,
                 #0 , add ,                  #0 , add ,
                 IP , shr ,                  IP , shr ,
                 accu , 0 m ,                  *accu , accu ,
                 0 r , accu ,  
                 IP , add ,                  IP , add ,
                 accu , IP ,                  accu , IP ,
                 "Next" , jmp ,                  "Next" , jmp ,
Line 276  end-code Line 275  end-code
 Code (loop)     sym (loop)  Code (loop)     sym (loop)
                 #0 , add ,                  #0 , add ,
                 IP , shr ,                  IP , shr ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , add ,                  accu , add ,
                 accu , IP ,                  accu , IP ,
                 RP , accu ,                  RP , accu ,
                 accu , 1 m ,                  *accu , t2 ,
                 accu , 2 m ,  
                 #1 , add ,                  #1 , add ,
                 accu , 3 m ,                  *accu , t3 ,
                 2 r , accu ,                  t2 , accu ,
                 #1 , add ,                  #1 , add ,
                 accu , 1 r ,                  accu , t1 ,
                 3 r , sub ,                  RP , accu ,
                   t1 , *accu ,
                   t1 , accu ,
                   t3 , sub ,
                 "Next" , jz ,                  "Next" , jz ,
                 0 r , accu ,                  t0 , accu ,
                 "branch" , jmp ,                  "branch" , jmp ,
 end-code  end-code
                                   
 Code xor        sym xor  Code xor        sym xor
 \               "H" , tx ,  \               "H" , tx ,
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 accu , 1 m ,                  *accu , accu ,
                 accu , 2 m ,                  t0 , xor ,
                 0 r , accu ,                  accu , t0 ,
                 1 r , xor ,                  SP , accu ,
                 accu , 2 r ,                  t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code or         sym or  Code or         sym or
 \               "I" , tx ,  \               "I" , tx ,
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 accu , 1 m ,                  *accu , accu ,
                 accu , 2 m ,                  t0 , or ,
                 0 r , accu ,                  accu , t0 ,
                 1 r , or ,                  SP , accu ,
                 accu , 2 r ,                  t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code and        sym and  Code and        sym and
 \               "J" , tx ,  \               "J" , tx ,
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 accu , 1 m ,                  *accu , accu ,
                 accu , 2 m ,                  t0 , and ,
                 0 r , accu ,                  accu , t0 ,
                 1 r , and ,                  SP , accu ,
                 accu , 2 r ,                  t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code +          sym +  Code +          sym +
 \               "K" , tx ,  \               "K" , tx ,
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 accu , 1 m ,                  *accu , accu ,
                 accu , 2 m ,                  t0 , add ,
                 0 r , accu ,                  accu , t0 ,
                 1 r , add ,                  SP , accu ,
                 accu , 2 r ,                  t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code -          sym -  Code -          sym -
 \               "L" , tx ,  \               "L" , tx ,
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 accu , 1 m ,                  *accu , accu ,
                 accu , 2 m ,                  t0 , sub ,
                 0 r , accu ,                  accu , t0 ,
                 1 r , subr ,                  SP , accu ,
                 accu , 2 r ,                  t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code 2/         sym 2\/  Code 2/         sym 2\/
 \               "M" , tx ,  \               "M" , tx ,
                 #0 , add ,                  #0 , add ,
                 SP , 0 m ,                  SP , accu ,
                 SP , 1 m ,                  *accu , accu ,
                 0 r , accu ,  
                 PC+6 , js ,                  PC+6 , js ,
                 accu , shr ,                  accu , shr ,
                 PC+6 , jmp ,                  PC+6 , jmp ,
                 accu , shr ,                  accu , shr ,
                 #$8000 , or ,                  #$8000 , or ,
                 accu , 1 r ,                  accu , t0 ,
                   SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code 0=         sym 0=  Code 0=         sym 0=
                 SP , 0 m ,                  SP , accu ,
                 SP , 1 m ,                  *accu , accu ,
                 0 r , accu ,  
                 ZF , accu ,                  ZF , accu ,
                 #0 , subr ,                  #1 , xor ,
                 accu , 1 r ,                  #1 , sub ,
                   accu , t0 ,
                   SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code 0<>        sym 0<>  Code 0<>        sym 0<>
                 SP , 0 m ,                  SP , accu ,
                 SP , 1 m ,                  *accu , accu ,
                 0 r , accu ,  
                 ZF , accu ,                  ZF , accu ,
                 #0 , subr ,                  #1 , sub ,
                 #-1 , xor ,                  accu , t0 ,
                 accu , 1 r ,                  SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code =          sym =  Code =          sym =
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 accu , 1 m ,                  *accu , accu ,
                 accu , 2 m ,                  t0 , sub ,
                 0 r , accu ,  
                 1 r , sub ,  
                 ZF , accu ,                  ZF , accu ,
                 #0 , subr ,                  #1 , xor ,
                 accu , 2 r ,                  #1 , sub ,
                   accu , t0 ,
                   SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code u<         sym u<  Code u<         sym u<
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 accu , 1 m ,                  *accu , accu ,
                 accu , 2 m ,                  t0 , sub ,
                 1 r , accu ,  
                 0 r , sub ,  
                 CF , accu ,                  CF , accu ,
                 #0 , subr ,                  #1 , xor ,
                 accu , 2 r ,                  #1 , sub ,
                   accu , t0 ,
                   SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code 1+         sym 1+  Code 1+         sym 1+
                 SP , 0 m ,                  SP , accu ,
                 SP , 1 m ,                  *accu , accu ,
                 0 r , accu ,  
                 #1 , add ,                  #1 , add ,
                 accu , 1 r ,                  accu , t0 ,
                   SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code cell+      sym cell+  Code cell+      sym cell+
                 SP , 0 m ,                  SP , accu ,
                 SP , 1 m ,                  *accu , accu ,
                 0 r , accu ,  
                 #2 , add ,                  #2 , add ,
                 accu , 1 r ,                  accu , t0 ,
                   SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
Line 452  Code 8<< sym 8<< Line 460  Code 8<< sym 8<<
 \               "T" , tx ,  \               "T" , tx ,
                 #0 , add ,                  #0 , add ,
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , accu ,
                 0 r , accu ,  
                 accu , add ,                  accu , add ,
                 accu , add ,                  accu , add ,
                 accu , add ,                  accu , add ,
Line 462  Code 8<< sym 8<< Line 469  Code 8<< sym 8<<
                 accu , add ,                  accu , add ,
                 accu , add ,                  accu , add ,
                 accu , add ,                  accu , add ,
                 SP , 0 m ,                  accu , t0 ,
                 accu , 0 r ,                  SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
Line 471  Code 8>> sym 8>> Line 479  Code 8>> sym 8>>
 \               "T" , tx ,  \               "T" , tx ,
                 #0 , add ,                  #0 , add ,
                 SP , accu ,                  SP , accu ,
 Label c-even@   accu , 0 m ,  Label c-even@   *accu , shr ,
                 0 r , shr ,  
                 accu , shr ,                  accu , shr ,
                 accu , shr ,                  accu , shr ,
                 accu , shr ,                  accu , shr ,
Line 481  Label c-even@ accu , 0 m , Line 488  Label c-even@ accu , 0 m ,
                 accu , shr ,                  accu , shr ,
                 accu , shr ,                  accu , shr ,
                 #FF , and ,                  #FF , and ,
                 SP , 0 m ,                  accu , t0 ,
                 accu , 0 r ,                  SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 Label "c-even@" c-even@ ,  Label "c-even@" c-even@ ,
 end-code  end-code
   
 Code c@         sym c@  Code c@         sym c@
                 #0 , add ,                  #0 , add ,
                 SP , 0 m ,                  SP , accu ,
                 0 r , shr ,                  *accu , shr ,
                 PC+4 , jc ,                  PC+4 , jc ,
                 "c-even@" , jmp ,                  "c-even@" , jmp ,
                 accu , 0 m ,                  *accu , accu ,
                 0 r , accu ,  
                 #FF , and ,                  #FF , and ,
                 SP , 0 m ,                  accu , t0 ,
                 accu , 0 r ,                  SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
   
 Code 2*         sym 2*  Code 2*         sym 2*
 \               "N" , tx ,  \               "N" , tx ,
                 SP , 0 m ,                  SP , accu ,
                 SP , 1 m ,                  *accu , accu ,
                 0 r , accu ,  
                 accu , add ,                  accu , add ,
                 accu , 1 r ,                  accu , t0 ,
                   SP , accu ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code >r         sym >r  Code >r         sym >r
 \               "O" , tx ,  \               "O" , tx ,
                 RP , accu ,  
                 #1 , sub ,  
                 accu , RP ,  
                 accu , 0 m ,  
                 SP , accu ,                  SP , accu ,
                 accu , 1 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 1 r , 0 r ,                  RP , accu ,
                   #1 , sub ,
                   accu , RP ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code r>         sym r>  Code r>         sym r>
 \               "P" , tx ,  \               "P" , tx ,
                 RP , accu ,                  RP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , RP ,                  accu , RP ,
                 SP , accu ,                  SP , accu ,
                 #1 , sub ,                  #1 , sub ,
                 accu , SP ,                  accu , SP ,
                 accu , 1 m ,                  t0 , *accu ,
                 0 r , 1 r ,  
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code sp@        sym sp@  Code sp@        sym sp@
 \               "Q" , tx ,  \               "Q" , tx ,
                 SP , accu ,                  SP , accu ,
                   accu , add ,
                   accu , t0 ,
                   SP , accu ,
                 #1 , sub ,                  #1 , sub ,
                 accu , 0 m ,  
                 accu , SP ,                  accu , SP ,
                 #1 , add ,                  t0 , *accu ,
                 accu , add ,  
                 accu , 0 r ,  
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code sp!        sym sp!  Code sp!        sym sp!
                 #0 , add ,                  #0 , add ,
                 SP , 0 m ,                  SP , accu ,
                 0 r , shr ,                  *accu , shr ,
                 accu , SP ,                  accu , SP ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code rp@        sym rp@  Code rp@        sym rp@
 \               "R" , tx ,  \               "R" , tx ,
                   RP , accu ,
                   accu , add ,
                   accu , t0 ,
                 SP , accu ,                  SP , accu ,
                 #1 , sub ,                  #1 , sub ,
                 accu , 0 m ,  
                 accu , SP ,                  accu , SP ,
                 RP , accu ,                  t0 , *accu ,
                 accu , add ,  
                 accu , 0 r ,  
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code rp!        sym rp!  Code rp!        sym rp!
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , SP ,                  accu , SP ,
                 #0 , add ,                  #0 , add ,
                 0 r , shr ,                  t0 , shr ,
                 accu , RP ,                  accu , RP ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
Line 591  end-code Line 598  end-code
   
 Code lit        sym lit  Code lit        sym lit
 \               "#" , tx ,  \               "#" , tx ,
                 SP , accu ,  
                 #1 , sub ,  
                 accu , SP ,  
                 #0 , add ,  
                 accu , 0 m ,  
                 IP , shr ,                  IP , shr ,
                 accu , 1 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , add ,                  accu , add ,
                 accu , IP ,                  accu , IP ,
                 1 r , 0 r ,                  SP , accu ,
                   #1 , sub ,
                   accu , SP ,
                   t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code dup        sym dup  Code dup        sym dup
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , sub ,                  #1 , sub ,
                 accu , SP ,                  accu , SP ,
                 accu , 1 m ,                  t0 , *accu ,
                 0 r , 1 r ,  
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code I          sym r@  Code I          sym r@
                   RP , accu ,
                   *accu , t0 ,
                 SP , accu ,                  SP , accu ,
                 RP , 0 m ,  
                 #1 , sub ,                  #1 , sub ,
                 accu , SP ,                  accu , SP ,
                 accu , 1 m ,                  t0 , *accu ,
                 0 r , 1 r ,  
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code over       sym over  Code over       sym over
                 SP , accu ,                  SP , accu ,
                 #1 , add ,                  #1 , add ,
                 accu , 0 m ,                  *accu , t0 ,
                 #2 , sub ,                  #2 , sub ,
                 accu , 1 m ,  
                 accu , SP ,                  accu , SP ,
                 0 r , 1 r ,                  t0 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code swap       sym swap  Code swap       sym swap
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 accu , 1 m ,  
                 #1 , add ,                  #1 , add ,
                 accu , 2 m ,                  *accu , t1 ,
                 accu , 3 m ,                  t0 , *accu ,
                 0 r , accu ,    \ TOS -> accu                  #1 , sub ,
                 2 r , 1 r ,     \ NOS -> TOS                  t1 , *accu ,
                 accu , 3 r ,    \ accu -> NOS  
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Code d+         sym d+  Code d+         sym d+
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 #1 , add ,                  #1 , add ,
                 accu , 1 m ,                  *accu , t1 ,
                 #1 , add ,                  #1 , add ,
                   *accu , t2 ,
                 accu , SP ,                  accu , SP ,
                 accu , 2 m ,  
                 accu , 3 m ,  
                 #1 , add ,                  #1 , add ,
                 accu , 4 m ,                  *accu , accu ,
                 accu , 5 m ,                  t1 , add ,
                 1 r , accu ,                  accu , t1 ,
                 4 r , add ,  
                 accu , 5 r ,  
                 CF , accu ,                  CF , accu ,
                 0 r , add ,                  t2 , add ,
                 2 r , add ,                  t0 , add ,
                 accu , 3 r ,                  accu , t0 ,
                   SP , accu ,
                   t0 , *accu ,
                   #1 , add ,
                   t1 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
 Label cf1       0 ,  Label cf1       0 ,
 Code d2*+       sym d2*+  Code d2*+       sym d2*+
 Label >d2*+     SP , accu ,                  SP , accu ,
                 accu , 0 m ,  Label >d2*+     *accu , t0 ,
                 accu , 1 m ,  
                 #1 , add ,                  #1 , add ,
                 accu , 2 m ,                  *accu , t1 ,
                 accu , 3 m ,                  #1 , add ,
                 accu , 4 m ,                  *accu , t2 ,
                 accu , 5 m ,                  accu , t3 ,
                 #1 , add ,                  t0 , accu ,
                 accu , 6 m ,                  t2 , add ,
                 accu , 7 m ,                  t2 , add ,
                 6 r , accu ,                  accu , t2 ,
                 accu , add ,  
                 CF , cf1 ,  
                 0 r , add ,  
                 accu , 7 r ,  
                 5 r , accu ,  
                 #$8000 , and ,  
                 accu , 1 r ,  
                 CF , accu ,                  CF , accu ,
                 cf1 , add ,                  t1 , add ,
                 2 r , add ,                  t1 , add ,
                 3 r , add ,                  accu , t0 ,
                 accu , 4 r ,                  t1 , accu ,
                   #$8000 , and ,
                   accu , t1 ,
                   t3 , accu ,
                   t2 , *accu ,
                   #1 , sub ,
                   t0 , *accu ,
                   #1 , sub ,
                   t1 , *accu ,
                 "Next" , jmp ,                  "Next" , jmp ,
 end-code  end-code
   
Line 705  Label "d2*+" >d2*+ , Line 707  Label "d2*+" >d2*+ ,
 Code /modstep ( ud c R: u -- ud-?u 0/1 )  Code /modstep ( ud c R: u -- ud-?u 0/1 )
                 sym /modstep                  sym /modstep
                 SP , accu ,                  SP , accu ,
                 accu , 0 m ,                  *accu , t0 ,
                 accu , 1 m ,                  #1 , add ,
                   *accu , t1 ,
                 #1 , add ,                  #1 , add ,
                 accu , 2 m ,                  *accu , t2 ,
                 accu , 3 m ,                  t2 , accu ,
                 RP , 4 m ,                  t0 , sub ,
                 2 r , accu ,                  accu , t0 ,
                 4 r , sub ,  
                 accu , res1 ,  
                 CF , accu ,                  CF , accu ,
                 0 r , or ,                  t1 , or ,
                 PC+6 , JZ ,                  PC+6 , JZ ,
                 #0 , accu ,                  #0 , accu ,
                 PC+6 , jmp ,                  PC+6 , jmp ,
                 res1 , 3 r ,                  t0 , t2 ,
                 #1 , accu ,                  #1 , accu ,
                 accu , 1 r ,                  accu , t0 ,
                   SP , accu ,
                   #1 , add ,
                   t0 , *accu ,
                   #1 , add ,
                   t2 , *accu ,
                   #1 , sub ,
                 "d2*+" , jmp ,                  "d2*+" , jmp ,
 end-code  end-code
                                   

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>