Annotation of qemu/roms/SLOF/slof/fs/rmove.fs, revision 1.1

1.1     ! root        1: \ *****************************************************************************
        !             2: \ * Copyright (c) 2004, 2008 IBM Corporation
        !             3: \ * All rights reserved.
        !             4: \ * This program and the accompanying materials
        !             5: \ * are made available under the terms of the BSD License
        !             6: \ * which accompanies this distribution, and is available at
        !             7: \ * http://www.opensource.org/licenses/bsd-license.php
        !             8: \ *
        !             9: \ * Contributors:
        !            10: \ *     IBM Corporation - initial implementation
        !            11: \ ****************************************************************************/
        !            12: 
        !            13: defer '(r@)
        !            14: defer '(r!)
        !            15: 1 VALUE /(r)
        !            16: 
        !            17: 
        !            18: \ The rest of the code already implemented in prim.in
        !            19: \ In the end all of this should be moved over there and this file terminated
        !            20: 
        !            21: : (rfill) ( addr size pattern 'r! /r -- )
        !            22:        to /(r) to '(r!) ff and
        !            23:        dup 8 lshift or dup 10 lshift or dup 20 lshift or
        !            24:        -rot bounds ?do dup i '(r!) /(r) +loop drop
        !            25: ;
        !            26: 
        !            27: : (fwrmove) ( src dest size -- )
        !            28:        >r 0 -rot r> bounds ?do + dup '(r@) i '(r!) /(r) dup +loop 2drop
        !            29: ;
        !            30: 
        !            31: \ Move from main to device memory
        !            32: : mrmove ( src dest size -- )
        !            33:        3dup or or 7 AND CASE
        !            34:                0 OF ['] x@ ['] rx! /x ENDOF
        !            35:                4 OF ['] l@ ['] rl! /l ENDOF
        !            36:                2 OF ['] w@ ['] rw! /w ENDOF
        !            37:                dup OF ['] c@ ['] rb! /c ENDOF
        !            38:        ENDCASE
        !            39:        ( We already know that source and destination do not overlap )
        !            40:        to /(r) to '(r!) to '(r@) (fwrmove)
        !            41: ;
        !            42: 
        !            43: : rfill ( addr size pattern -- )
        !            44:        3dup drop or 7 AND CASE
        !            45:                0 OF ['] rx! /x ENDOF
        !            46:                4 OF ['] rl! /l ENDOF
        !            47:                2 OF ['] rw! /w ENDOF
        !            48:                dup OF ['] rb! /c ENDOF
        !            49:        ENDCASE (rfill)
        !            50: ;
        !            51: 
        !            52: 
        !            53: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.