Path: utzoo!mnetor!uunet!husc6!bu-cs!spike From: spike@bu-cs.BU.EDU (Spike) Newsgroups: comp.sys.apple Subject: Re: Block moves Message-ID: <21774@bu-cs.BU.EDU> Date: 18 Apr 88 17:10:41 GMT References: <8804172225.aa09835@SMOKE.BRL.ARPA> Reply-To: spike@bu-it.bu.edu (Joe Ilacqua) Followup-To: comp.sys.apple Organization: Boston University Distributed Systems Group Lines: 68 In article <8804172225.aa09835@SMOKE.BRL.ARPA> STEIN@UCONNVM.BITNET writes: on the 65816? < >I know that you put the starting address (lower 16 bits) in X, in the accumulator and then include the instruction < >mvp sourcebank,destbank < >but I'm not certain how to put the source and destination banks dest ds 500 Well, the operands are the 8bit addresses of banks of 64K. They can not be bigger than 255. The example from Eyes & Lichty is along these lines: lda count ;load C number of bytes to be moved minus 1 ldx source ;load the source address into X ldy dest ;load the destination address Y mvn s_bank,d_bank ;move a block ;$2000 bytes from $2000 to $4000 on bank 0 rts count dc A'$1FFF' ;$2000 - 1 source dc A'$2000' ;Source address dest dc A'$4000' ;destination address s_bank dc I1'0' ;source bank d_bank dc I1'0' ;destinaton bank source+60 to a location starting at dest+90 I can do something like Change this to what ever d_bank dc I1'0' ;destinaton bank ->you are working on "You'll laugh, you'll cry, you'll kiss 3 bucks goodbye." UUCP: ...!harvard!bu-cs!bu-it!spike INTERNET: spike@bu-it.bu.edu CSNET: spike%bu-it@bu-cs BITNET: engemnc@bostonu "VPS sucks" -- ->Spike