<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Am 13.11.2013 11:32, schrieb Frederic
      Da Vitoria:<br>
    </div>
    <blockquote
cite="mid:CANe_y9Q68oePA-yLEpE7mV2e5HYnXvkGzEByDGg_KmV-x6X77Q@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">2013/11/13 Sven Barth <span
              dir="ltr"><<a moz-do-not-send="true"
                href="mailto:pascaldragon@googlemail.com"
                target="_blank">pascaldragon@googlemail.com</a>></span><br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div text="#000000" bgcolor="#FFFFFF">
                <div>Am 13.11.2013 11:07, schrieb Frederic Da Vitoria:<br>
                </div>
                <div>
                  <div class="h5">
                    <blockquote type="cite">
                      <div dir="ltr">
                        <div class="gmail_extra">
                          <div class="gmail_quote">2013/11/13 Rainer
                            Stratmann <span dir="ltr"><<a
                                moz-do-not-send="true"
                                href="mailto:rainerstratmann@t-online.de"
                                target="_blank">rainerstratmann@t-online.de</a>></span><br>
                            <blockquote class="gmail_quote"
                              style="margin:0px 0px 0px
                              0.8ex;border-left:1px solid
                              rgb(204,204,204);padding-left:1ex">  On
                              Wednesday 13 November 2013 10:52:23 you
                              wrote:<br>
                              <div>> 2013/11/13 Rainer Stratmann <<a
                                  moz-do-not-send="true"
                                  href="mailto:rainerstratmann@t-online.de"
                                  target="_blank">rainerstratmann@t-online.de</a>><br>
                                > > Is there a description of the
                                behaviour of const and var in this case?<br>
                                > > Why is it not both const or
                                both var?<br>
                                ><br>
                                > "source" is where the data "comes
                                from", so the procedure won't modify it<br>
                                > (if there is no memory overlap
                                between source and dest), so it is
                                declared<br>
                                > as "const"<br>
                                > "dest" is where the data is copied
                                to, so the procedure will necessarily<br>
                                > modify it (if "count" is <>
                                0), and the procedure should modify so
                                it is<br>
                                > declared as "var". Actually, IMO it
                                could be declared as "out", this would<br>
                                > avoid a meaningless warning.<br>
                                <br>
                              </div>
                              But why does it work without specifying
                              the vars more exactly like in other<br>
                              cases?<br>
                            </blockquote>
                          </div>
                          <br>
                        </div>
                        <div class="gmail_extra">You mean, how can it
                          work without using typed variables? In Pascal,
                          you don't have to give the type of a
                          parameter, although 99.99% of the times you
                          should do it. If you don't do it, you could as
                          well use assembly :-) Actually, that's
                          probably how Move is written: in assembly
                          language. Of course, since the types were not
                          given in the parameter declaration of Move,
                          the compiler can't know the size of the data,
                          and you have to give the compiler some
                          indication. That's what "count" is for. Move
                          considers the memory as 2 big arrays of bytes,
                          one starting at "source", and the second at
                          "dest".<br clear="all">
                        </div>
                      </div>
                    </blockquote>
                  </div>
                </div>
                The fallback implementation (for new architectures) is
                written in Pascal. See $fpcdir\rtl\inc\generic.inc.<br>
              </div>
            </blockquote>
          </div>
          <br>
        </div>
        <div class="gmail_extra">Of course it is, I should have guessed
          it, Lazarus/FPC is multi-platform. I keep thinking as if I was
          using a Windows-only development tool.<br clear="all">
        </div>
      </div>
    </blockquote>
    Most architectures do have a (often much shorter) implementation in
    assembly language though which is located in
    $fpcdir\rtl\$cpu\$cpu.inc.<br>
    <br>
    Regards,<br>
    Sven<br>
  </body>
</html>