Path: news.uiowa.edu!chi-news.cic.net!simtel!harbinger.cc.monash.edu.au!news.cs.su.oz.au!metro!news.ci.com.au!wabbit.cc.uow.edu.au!wabbit.cc.uow.edu.au!not-for-mail From: david@wraith.cc.uow.edu.au (David E A Wilson) Newsgroups: comp.emulators.apple2,comp.sys.apple2,comp.sys.apple2.programmer Subject: Re: 6502 false references? Date: 22 Oct 1995 12:04:19 +1000 Organization: University of Wollongong, NSW, Australia. Lines: 69 Message-ID: <46c8r3$ijr@wraith.cc.uow.edu.au> References: <45ulkp$ppd@post.gsfc.nasa.gov> <462ah4$as_001@news.usa.net> NNTP-Posting-Host: wraith.cs.uow.edu.au Xref: news.uiowa.edu comp.emulators.apple2:4091 comp.sys.apple2:94056 comp.sys.apple2.programmer:5613 >In article <45ulkp$ppd@post.gsfc.nasa.gov>, > klipsch@ssvs.gsfc.nasa.gov (Colin Klipsch) wrote: >>My question is: which 6502 instructions generate double references? More >>specifically, which instructions will hit the speaker twice instead of >>once, when applied to the speaker I/O addresses? I've looked in >>Leventhal's and Zak's 6502 books, but didn't find this information. From MOS Microcomputers Hardware Manual (publication number 6500-10A) Jan 1976: ASL,CLC,CLD,CLI,CLV,DEX,DEY,INX,INY,LSR,NOP,ROL,SEC,SED,SEI, TAX,TAY,TSX,TXA,TXS,TYA single byte instruction false read of following opcode ADC,AND,BIT,CMP,CPX,CPY,EOR,LDA,LDX,LDY,ORA,SBC indirect,x false read of 00nn before x is added to nn absolute,x or absolute,y false read if page crossing occurs zp,x or zp,y false read of 00nn before x/y is added to nn indirect,y false read if page crossing occurs STA,STX,STY indirect,x false read of 00nn before x is added to nn absolute,x or absolute,y false read zp,x or zp,y false read of 00nn before x/y is added to nn indirect,y false read ASL,DEC,INC,LSR,ROL,ROR zp or absolute false write of old data zp,x or abs,x false read of 00nn before x is added to nn false write of old data PHP,PHA false read of following opcode PLP,PLA false read of following opcode false read of stack (before stkptr incremented) JSR false read of stack BRK false read of following opcode RTI false read of following opcode false read of stack RTS false read of following opcode false read of stack false read of byte before next instruction to execute Bxx false read of PC+2+offset (no carry) if page crossed Hope this helps. Let me know if you need the full cycle by cycle details. -- David Wilson Dept CompSci Uni Wollongong Australia david@cs.uow.edu.au