home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-01-09 | 32.6 KB | 1,086 lines |
-
- cOMMODORE sEMICONDUCTOR gROUP csg65ce02 tECHNICAL rEFERENCE
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
-
- tHIS IS VERSION 0.9 OF THIS DOCUMENT, DATED 08 jAN 99.
- tHE AUTHOR IS mICHAEL sTEIL <MIST@C64.ORG>, <MICHAEL.STEIL@WRITEME.COM>.
- i GIVE NO WARRANTY THAT THE INFORMATION SUPPLIED HEREIN IS CORRECT. i
- APPRECIATE CORRECTIONS AND ADDITIONAL INFORMATION ON THE TOPIC DESCRIBED.
- tHIS DOCUMENT MAY BE REPUBLISHED IF IT IS FREE OF CHARGE AND NOT ALTERED
- IN ANY WAY. oTHERWISE MY WRITTEN PERMISSION IS REQUIRED. iF YOU FIND THE
- INFORMATION SUPPLIED IN THIS DOCUMENT USEFUL FOR YOUR OWN SOFTWARE, PLEASE
- REFER TO THIS DOCUMENT IN THE CREDITS OF YOUR SOFTWARE.
- tHE LATEST VERSION OF THIS DOCUMENT CAN BE DOWNLOADED VIA ANONYMOUS FTP
- FROM FTP://FTP.FUNET.FI/PUB/CBM/C65
-
-
- aBSTRACT
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- tHIS DOCUMENT DESCRIBES THE DIFFERENCES BETWEEN THE wdc 65c02 (rOCKWELL)
- AND THE csg65ce02 cpu USED IN THE 4510 MICRO CONTROLLER OF THE
- cOMMODORE c64dx/c65.
-
- tABLE OF cONTENTS
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- 1. iNTRODUCTION
- 2. gENERAL DIFFERENCES BETWEEN THE 65c02 AND THE 65ce02
- 2.1 eNHANCEMENTS OF THE 65sc02
- 2.1.1 bIT oPERATIONS
- 2.1.2 zERO pAGE tEST rELATIVE
- 2.1.3 rELATIVE sUBROUTINE aDDRESSING
- 2.1.4 eNHANCED bit INSTRUCTION
- 2.2 eNHANCEMENTS OF THE 65sc02
- 2.2.1 tHE z rEGISTER
- 2.2.2 dIRECT pAGE
- 2.2.3 16 bIT rEAD-mODIFY-wRITE
- 2.2.4 rELATIVE jUMP iNSTRUCTIONS
- 2.2.5 sTACK pOINTER rELATIVE aDDRESSING mODE
- 2.2.6 dIVERSE NEW ADDRESSING MODES AND ADD. MODE / INSTRUCTION COMBINATIONS
- 3. aLPHABETICAL mNEMONIC iNDEX
- 4. aSSUMPTIONS/eRRORS (important!)
- 5. rEFERENCES
-
-
- 1. iNTRODUCTION
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- tHE csg65ce02 IS A cpu CORE DEVELOPED BY cOMMODORE sEMICONDUCTOR gROUP
- (FORMERLY KNOWN AS cOMMODORE mos) THAT HAS BEEN USED IN THE csg4510
- MICRO CONTROLLER (THAT COMBINED A cpu AND SEVERAL i/o COMPONENTS) IN
- THE cOMMODORE c64dx/c65. aLTHOUGH THE cOMMODORE c64dx/c65 HAS NEVER BEEN
- RELEASED, SEVERAL HUNDRED TEST/DEMO MACHINES APPEARED ON THE MARKET IN 1994.
- tHIS DOCUMENT WILL MOST PROBABLY BE OF NO PRACTICAL USE TO PROGRAMMERS,
- BUT IT MAY HELP TO UNDERSTAND THE NEW IDEAS OF THE DESIGNERS OF THE 65ce02,
- THE WAY OF EVOLUTION OF THE 6502 CREATED 15 YEARS EARLIER BY THE SAME
- COMPANY.
- iT MAY BE USEFUL TO EMULATION PROGRAMMERS, IF SOMEONE SHOULD WANT TO WRITE
- A c65 EMULATOR ONE DAY.
-
- tHE FOLLOWING CHART SHOWS A PART OF THE 65XX cpu EVOLUTION TIMELINE:
-
- nec mos wdc
-
- 1975 6502
- \
- \
- \
- 1981[7] 65c02
- / {$7c}
- / {$7c}
- ???? ?gte65sc02? {$7c}
- 1984[7] / {$7c} 65816
- / {$7c} /?
- 1986 hUc6280 {$7c} /?
- 1990 65ce02
-
- aNNOTATIONS:
- 65c02: REFERRED TO AS "rOCKWELL" IN [1] (rOCKWELL WAS A POPULAR
- LICENSEE OF THE 65c02)
- 65ce02: THE c64 PRELIMINARY DOCUMENTATION HAS BEEN WRITTEN IN jANUARY 1991
-
- iN 1975, mos sEMICONDUCTORS INTRODUCED THE 6502. iT HAS BEEN REDESIGNED AND
- ENHANCED BY wESTERN dESIGN cENTER (wdc) IN 1981. iT IS UNKNOWN WHO DESIGNED
- THE 65sc02, AN ENHANCED 65c02 THAT HAS BEEN LICENSED BY gte. wdc DEVELOPED
- THE 16-BIT SUCCESSOR OF THE 65c02, WHICH DID NOT IMPLEMENT THE ADDITIONAL
- INSTRUCTIONS OF THE 65sc02. bUT THE 65sc02 IS THE BASE OF BOTH THE hUc6280
- BY nec USED IN THEIR VIDEO GAME CONSOLE tg-16 (pc-eNGINE) AND THE 65ce02
- BY cOMMODORE mos (csg). sOME INSTRUCTIONS SHOW THAT THE DESIGNERS OF THE
- 65ce02 HAVE ALSO BEEN INFLUENCED BY THE 65816. tHE PRELIMINARY
- "c64dx system specification" [1] SAYS THAT THE 65ce02 CONTAINED "NEW
- INSTRUCTIONS, INCLUDING rOCKWELL [65c02] AND gte [65sc02] EXTENSIONS".
-
- tHIS DOCUMENT ONLY SHOWS UP THE DIFFERENCES BETWEEN THE 65c02 AND THE
- 65ce02, AND ASSUMES THAT YOU ARE FAMILIAR WITH THE 65c02.
- iNFORMATION ABOUT THE 65c02 IS EASY TO FIND. [2] IS A GOOD BOOK ON 65c02
- PROGRAMMING.
-
- aLL INFORMATION CONTAINED IN THIS DOCUMENT IS HEAVILY BASED ON THE
- INFORMATION GAINED FROM THE "uNOFFICIAL pc-eNGINE REFERENCE" BY jENS cHR.
- rESTEMEIER [4], "pROGRAMMING THE 65816" BY dAVID eYES [2], THE OPCODE
- LIST AS SHOWN OF THE c64dx/c65 BUILT-IN MONITOR [3], AND GUESSWORK.
- tHERE HAVE BEEN FEW RELIABLE SOURCES, THEREFORE IT IS QUITE LIKELY
- THAT SOME OF THE INFORMATIONED CONTAINED HEREIN MAY BE FALSE. sEE cHAPTER 4
- FOR MORE DETAILS.
-
- 2. gENERAL DIFFERENCES BETWEEN THE 65c02 AND THE 65ce02
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- 2.1 eNHANCEMENTS OF THE 65sc02
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- 2.1.1 bIT oPERATIONS
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- bOTH THE 6502'S AND THE 65c02'S BIT OPERATION CAPABILITIES WERE POOR.
- tHIS CAN BE PROVEN BY THE FACT THAT HARDLY ANY BIT-ORIENTED COMPRESSION
- OR DECOMPRESSION PROGRAMS LIKE hUFFMAN COMPRESSION EXIST ON 6502/65c02
- BASED COMPUTERS.
- tHE 65sc02 THEREFORE INTRODUCED THESE BIT-ORIENTED COMMANDS:
-
- bbrI $NN,$NN If bRANCH ON bIT rESET
- bbsI $NN,$NN 80+If bRANCH ON bIT sET
- rmbI $NN I7 rESET mEMORY bIT I
- smbI $NN 80+I7 sET MEMORY bIT I
- trb $NN 14 tEST AND rESET mEMORY bITS aGAINST aCCUMULATOR
- $NNNN 1c
- tsb $NN 04 tEST AND sET mEMORY bITS aGAINST aCCUMULATOR
- $NNNN 0c
-
- oN A 6502/65c02, THESE INSTRUCTIONS WOULD HAVE TO BE REWRITTEN WITH
- SEVERAL INSTRUCTIONS EACH THAT WOULD HAVE BEEN A LOT SLOWER, ALL IN ALL.
-
- 2.1.2 zERO pAGE tEST rELATIVE
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- tHE bbrI AND bbsI INSTRUCTIONS INTRODUCED ANOTHER ADDRESSING MODE
- CALLED zERO pAGE tEST rELATIVE. iT NEEDS TWO ONE-BYTE OPERANDS, ONE FOR
- THE ZERO PAGE ADDRESS THAT IS USED FOR THE BIT TEST, AND ONE INDICATING
- THE SIGNED RELATIVE pc OFFSET IF THE BRANCH IS TAKEN.
- tHIS MAKES bbrI AND bbsI THE SINGLE INSTRUCTIONS WITH TWO EXPLICIT
- OPERANDS.
-
- 2.1.3 rELATIVE sUBROUTINE aDDRESSING
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- wITH THE 65sc02, THE bsr (bRANCH TO sUBROUTINE) COMMAND WAS INTRODUCED.
- iT ALLOWS TO WRITE MORE RELOCATIBLE CODE BY SPECIFYING RELATIVE
- SUBROUTINE ADDRESSES.
- tHIS WAY, THE 65sc02 ALSO INTRODUCED THE 16 bIT rELATIVE ADDRESSING MODE.
-
- 2.1.4 eNHANCED bit INSTRUCTION
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- tHE bit INSTRUCTION ALSO ALLOWS THE iMMEDIATE, zERO pAGE x iNDEXED AND
- aBSOLUTE iNDEXED ON THE 65sc02.
-
- 2.2 eNHANCEMENTS OF THE 65sc02
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- 2.2.1 tHE z rEGISTER
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- tHE 65ce02 HAS A THIRD INDEX REGISTER: THE z REGISTER. tHE ZERO PAGE
- INDIRECT ADDRESSING MODE HAS BEEN COMPLETELY REPLACED BY THE ZERO
- PAGE INDIRECT, z INDEXED ADDRESSING MODE. aS LONG AS THE z REGISTER
- IS NOT USED AND THEREFORE 0, THESE COMMANDS ARE FULLY
- BACKWARDS-COMPATIBLE.
-
- 2.2.2 dIRECT pAGE
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- jUST LIKE ON THE 65816, THE ZERO PAGE CAN BE RELOCATED TO ANY PAGE (BLOCK)
- WITHIN THE 64 kb OF MEMORY THAT ARE CURRENTLY "IN SIGHT" OF THE cpu.
- tHE b (BLOCK) REGISTER CAN BE LOADED WITH THE CONTENTS OF THE ACCUMULATOR,
- AND ITS CONTENTS CAN BE WRITTEN BACK INTO THE ACCUMULATOR, TOO.
-
- 2.2.3 16 bIT rEAD-mODIFY-wRITE
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- aLTHOUGH ALL REGISTERS ARE STILL JUST 8 BITS WIDE, THE 65ce02 PROVIDES
- SOME 16 BIT INSTRUCTIONS, MAINLY IN rED-mODIFY-wRITE INSTRUCTIONS:
-
- asw $NNNN cb aRITHMETIC sHIFT lEFT wORD
- dew $NNNN c3 dECREMENT wORD
- inw $NNNN e3 iNCREMENT wORD (error in 64net.opc?)
- phw #$NNNN f4 pUSH wORD
- $NNNN fc
- row $NNNN eb rOTATE rIGHT wORD
-
- nOTE THAT SOME OF THESE INSTRUCTIONS SUPPORT THE 16-BIT ROTATE/SHIFT
- INSTRUCTIONS OF THE 65sc02 MENTIONED ABOVE.
-
- 2.2.4 rELATIVE jUMP iNSTRUCTIONS
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- dUE TO OF THE EXISTENCE OF A RELATIVE VERSION OF jmp (16 BIT bra)
- SUPPORTING THE 65sc02 RELATIVE jsr (bsr), IT IS NOW POSSIBLE TO
- WRITE FULLY RELOCATIBLE CODE.
-
- 2.2.5 sTACK pOINTER rELATIVE aDDRESSING mODE
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- tHE 65ce02 PROVIDES A NEW ADDRESSING MODE CALLED sTACK pOINTER rELATIVE
- iNDIRECT y iNDEXED, WHICH LOOKS LIKE THIS: lda/sta ($NN,sp),y
- tHE SUM OF THE 8 BIT OPERAND AND THE STACK POINTER FORM THE INDIRECT
- ADDRESS. tHE EFFECTIVE ADDRESS IS THE SUM OF THE y REGISTER AND THE
- 16 BIT VALUE LOCATED AT THE INDIRECT ADDRESS.
- nOTE THAT THIS ADDRESSING MODE IS ALSO AVAILABLE ON THE 65816, BUT
- USING DIFFERENT OPCODES.
-
- 2.2.6 dIVERSE NEW ADDRESSING MODES AND ADD. MODE / INSTRUCTION COMBINATIONS
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- 16 BIT BRANCHES, IMMEDIATE AND INDEXED BIT TESTS (bit), INDEXED INDIRECT
- JUMPS AS WELL AS INDIRECT AND INDEXED INDIRECT jsr'S ARE POSSIBLE ON
- THE 65ce02.
-
- 3. aLPHABETICAL mNEMONIC iNDEX
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
-
- aLL 256 OPCODES ARE VALID ON THE 65ce02.
-
- adc
- aDD WITH cARRY
- oPERATION AS OF 65c02. nOTE THAT zERO pAGE iNDIRECT HAS BEEN REPLACED BY
- zERO pAGE iNDIRECT z iNDEXED.
-
- adc #$NN 69 6502
- adc $NN 65 6502
- adc $NN,x 75 6502
- adc $NNNN 6d 6502
- adc $NNNN,x 7d 6502
- adc $NNNN,y 79 6502
- adc ($NN),y 71 6502
- adc ($NN),z 72 65c02/65ce02
- adc ($NN,x) 61 6502
-
- and
- aND
- oPERATION AS OF 65c02. nOTE THAT zERO pAGE iNDIRECT HAS BEEN REPLACED BY
- zERO pAGE iNDIRECT z iNDEXED.
-
- and #$NN 29 6502
- and $NN 25 6502
- and $NN,x 35 6502
- and $NNNN 2d 6502
- and $NNNN,x 3d 6502
- and $NNNN,y 39 6502
- and ($NN),y 31 6502
- and ($NN),z 32 65c02/65ce02
- and ($NN,x) 21 6502
-
- asl
- aRITHMETIC sHIFT lEFT
- oPERATION AS OF 6502.
-
- asl a 0a 6502
- asl $NN 06 6502
- asl $NN,x 16 6502
- asl $NNNN 0e 6502
- asl $NNNN,x 1e 6502
-
- asr
- aRITHMETIC sHIFT rIGHT
- sHIFTS THE CONTENTS OF THE LOCATION SPECIFIED BY THE OPERAND RIGHT ONE BIT.
- bIT 0 IS TRANSFERRED INTO THE CARRY FLAG AND BIT 7 WILL KEEP ITS ORIGINAL
- VALUE, THUS NEGATIVE VALUES STAYING NEGATIVE.
- tHE ARITHMETIC RESULT OF THE OPERATION IS A SIGNED DIVISION BY TWO.
-
- 7 6 5 4 3 2 1 0 c
- BEFORE 1 0 1 1 0 0 1 1 ?
- AFTER 1 1 0 1 1 0 0 1 1
-
- fLAGS aFFECTED: N - - - - - Z C
-
- N sET IF MOST SIGNIFICANT BIT OF RESULT IS SET; ELSE
- CLEARED.
- Z sET IF RESULT IS ZERO; ELSE CLEARED.
- C bIT ZERO BECOMES CARRY.
-
- asr a 43 65ce02
- asr $NN 44 65ce02
- asr $NN,x 54 65ce02
-
- asw
- aRITHMETIC sHIFT lEFT wORD
-
- asw $NNNN cb 65ce02
-
- bbrI
- bRANCH ON bIT rESET [4]
- bIT I IN THE ZERO PAGE ADDRESS INDICATED BY THE FIRST OPERAND IS TESTED.
- iF IT IS CLEAR, A BRANCH IS TAKEN; IF IT IS SET, THE INSTRUCTION
- IMMEDIATELY FOLLOWING THE THREE-BYTE bbrI INSTRUCTION IS EXECUTED.
- iF THE BRANCH IS TAKEN, A ONE-BYTE SIGNED DISPLACEMENT, FETCHED FROM THE
- THIRD BYTE OF THE INSTRUCTION, IS SIGN-EXTENDED TO SIXTEEN BITS AND ADDED
- TO THE PROGRAM COUNTER. oNCE THE BRANCH ADDRESS HAS BEEN CALCULATED, THE
- RESULT IS LOADED INTO THE PROGRAM COUNTER, TRANSFERRING CONTROL TO THAT
- LOCATION.
- tHE ALLOWABLE RANGE OF THE DISPLACEMENT IS -128 TO +127 (FROM THE
- INSTRUCTION IMMEDIATELY FOLLOWING THE BRANCH).
-
- fLAGS aFFECTED: - - - - - - - -
-
- bbr0 $ZP,$NN 0f 65sc02
- bbr1 $ZP,$NN 1f 65sc02
- bbr2 $ZP,$NN 2f 65sc02
- bbr3 $ZP,$NN 3f 65sc02
- bbr4 $ZP,$NN 4f 65sc02
- bbr5 $ZP,$NN 5f 65sc02
- bbr6 $ZP,$NN 6f 65sc02
- bbr7 $ZP,$NN 7f 65sc02
-
- bbsI
- bRANCH ON bIT sET [4]
- bIT I IN THE ZERO PAGE ADDRESS INDICATED BY THE FIRST OPERAND IS TESTED.
- iF IT IS SET, A BRANCH IS TAKEN; IF IT IS CLEAR, THE INSTRUCTION
- IMMEDIATELY FOLLOWING THE THREE-BYTE bbsI INSTRUCTION IS EXECUTED.
- iF THE BRANCH IS TAKEN, A ONE-BYTE SIGNED DISPLACEMENT, FETCHED FROM THE
- THIRD BYTE OF THE INSTRUCTION, IS SIGN-EXTENDED TO SIXTEEN BITS AND ADDED
- TO THE PROGRAM COUNTER. oNCE THE BRANCH ADDRESS HAS BEEN CALCULATED, THE
- RESULT IS LOADED INTO THE PROGRAM COUNTER, TRANSFERRING CONTROL TO THAT
- LOCATION.
- tHE ALLOWABLE RANGE OF THE DISPLACEMENT IS -128 TO +127 (FROM THE
- INSTRUCTION IMMEDIATELY FOLLOWING THE BRANCH).
-
- fLAGS aFFECTED: - - - - - - - -
-
- bbs0 $NN,$NN 8f 65sc02
- bbs1 $NN,$NN 9f 65sc02
- bbs2 $NN,$NN af 65sc02
- bbs3 $NN,$NN bf 65sc02
- bbs4 $NN,$NN cf 65sc02
- bbs5 $NN,$NN df 65sc02
- bbs6 $NN,$NN ef 65sc02
- bbs7 $NN,$NN ff 65sc02
-
- bcc
- bRANCH ON cARRY cLEAR
- oPERATION AS OF 6502.
- nOTE THAT bcc ALSO EXISTS IN A 16-bIT rELATIVE ADDRESSING MODE.
- iF THE BRANCH IS TAKEN, A TWO-BYTE DISPLACEMENT, FETCHED
- FROM THE BYTES TWO TO THREE OF THE INSTRUCTION, IS ADDED TO THE PROGRAM
- COUNTER. oNCE THE BRANCH ADDRESS HAS BEEN CALCULATED, THE RESULT IS LOADED
- INTO THE PROGRAM COUNTER, TRANSFERRING CONTROL TO THAT LOCATION.
- tHE ALLOWABLE RANGE OF THE DISPLACEMENT IS 0 TO 65535, THUS ALLOWING
- BRANCHES OF UP TO 64 kb IN ANY DIRECTION.
-
- bcc $NN 90 6502
- bcc $NNNN 93 65ce02
-
- bcs
- bRANCH ON cARRY sET
- oPERATION AS OF 6502.
- nOTE THAT bcs ALSO EXISTS IN A 16-bIT rELATIVE ADDRESSING MODE.
- sEE bcc FOR FURTHER DETAILS.
-
- bcs $NN b0 6502
- bcs $NNNN b3 65ce02
-
- beq
- bRANCH ON eQUAL
- oPERATION AS OF 6502.
- nOTE THAT beq ALSO EXISTS IN A 16-bIT rELATIVE ADDRESSING MODE.
- sEE bcc FOR FURTHER DETAILS.
-
- beq $NN f0 6502
- beq $NNNN f3 65ce02
-
- bit
-
- bit #$NN 89 65sc02
- bit $NN 24 6502
- bit $NN,x 34 65sc02
- bit $NNNN 2c 6502
- bit $NNNN,x 3c 65sc02
-
- bmi
- bRANCH ON mINUS
- oPERATION AS OF 6502.
- nOTE THAT bmi ALSO EXISTS IN A 16-bIT rELATIVE ADDRESSING MODE.
- sEE bcc FOR FURTHER DETAILS.
-
- bmi $NN 30 6502
- bmi $NNNN 33 65ce02
-
- bne
- bRANCH ON nOT eQUAL
- oPERATION AS OF 6502.
- nOTE THAT bne ALSO EXISTS IN A 16-bIT rELATIVE ADDRESSING MODE.
- sEE bcc FOR FURTHER DETAILS.
-
- bne $NN d0 6502
- bne $NNNN d3 65ce02
-
- bpl
- bRANCH ON pLUS
- oPERATION AS OF 6502.
- nOTE THAT bpl ALSO EXISTS IN A 16-bIT rELATIVE ADDRESSING MODE.
- sEE bcc FOR FURTHER DETAILS.
-
- bpl $NN 10 6502
- bpl $NNNN 13 65ce02
-
- bra
- bRANCH aLWAYS
- oPERATION AS OF 6502.
- nOTE THAT bra ALSO EXISTS IN A 16-bIT rELATIVE ADDRESSING MODE.
- sEE bcc FOR FURTHER DETAILS.
- bra WITH A 16 BIT OPERAND ALLOWS AN UNLIMITED RELATIVE JUMP. tHIS WAY
- IT IS POSSIBLE TO WRITE FULLY RELOCATIBLE CODE. sEE ALSO bsr.
-
- bra $NN 80 65c02
- bra $NNNN 83 65ce02
-
- brk
- bREAK
- oPERATION AS OF 6502.
-
- brk 00 6502
-
- bsr
- bRANCH TO sUBROUTINE
-
- bsr $NNNN 63 65sc02
-
- bvc
- bRANCH ON
- oPERATION AS OF 6502.
- nOTE THAT bvc ALSO EXISTS IN A 16-bIT rELATIVE ADDRESSING MODE.
- sEE bcc FOR FURTHER DETAILS.
-
- bvc $NN 50 6502
- bvc $NNNN 53 65ce02
-
- bvs
- bRANCH ON
- oPERATION AS OF 6502.
- nOTE THAT bvs ALSO EXISTS IN A 16-bIT rELATIVE ADDRESSING MODE.
- sEE bcc FOR FURTHER DETAILS.
-
- bvs $NN 70 6502
- bvs $NNNN 73 65ce02
-
- clc
- cLEAR cARRY fLAG
- oPERATION AS OF 6502.
-
- clc 18 6502
-
- cld
- cLEAR dECIMAL fLAG
- oPERATION AS OF 6502.
-
- cld d8 6502
-
- cle
- cLEAR ??? fLAG
-
- cle 02 65ce02
-
- cli
- cLEAR iNTERRUPT dISABLE fLAG
- oPERATION AS OF 6502.
-
- cli 58 6502
-
- clv
- cLEAR oVERFLOW fLAG
- oPERATION AS OF 6502.
-
- clv b8 6502
-
- cmp
- cOMPARE
- oPERATION AS OF 65c02. nOTE THAT zERO pAGE iNDIRECT HAS BEEN REPLACED BY
- zERO pAGE iNDIRECT z iNDEXED.
-
- cmp #$NN c9 6502
- cmp $NN c5 6502
- cmp $NN,x d5 6502
- cmp $NNNN cd 6502
- cmp $NNNN,x dd 6502
- cmp $NNNN,y d9 6502
- cmp ($NN),y d1 6502
- cmp ($NN),z d2 65c02/65ce02
- cmp ($NN,x) c1 6502
-
- cpx
- cOMPARE x rEGISTER
- oPERATION AS OF 6502.
-
- cpx #$NN e0 6502
- cpx $NN e4 6502
- cpx $NNNN ec 6502
-
- cpy
- cOMPARE y rEGISTER
- oPERATION AS OF 6502.
-
- cpy #$NN c0 6502
- cpy $NN c4 6502
- cpy $NNNN cc 6502
-
- cpz
- cOMPARE z rEGISTER
-
- cpz #$NN c2 65ce02
- cpz $NN d4 65ce02
- cpz $NNNN dc 65ce02
-
- dec
- dECREMENT
-
- dec 3a 65c02
- dec $NN c6 6502
- dec $NN,x d6 6502
- dec $NNNN ce 6502
- dec $NNNN,x de 6502
-
- dew
- dECREMENT wORD
-
- dew $NN c3 65ce02
-
- dex
- dECREMENT x rEGISTER
-
- dex ca 6502
-
- dey
- dECREMENT y rEGISTER
-
- dey 88 6502
-
- dez
- dECREMENT z rEGISTER
-
- dez 3b 65ce02
-
- eor
- eXCLUSIVE oR
- oPERATION AS OF 65c02. nOTE THAT zERO pAGE iNDIRECT HAS BEEN REPLACED BY
- zERO pAGE iNDIRECT z iNDEXED.
-
- eor #$NN 49 6502
- eor $NN 45 6502
- eor $NN,x 55 6502
- eor $NNNN 4d 6502
- eor $NNNN,x 5d 6502
- eor $NNNN,y 59 6502
- eor ($NN),y 51 6502
- eor ($NN),z 52 65c02/65ce02
- eor ($NN,x) 41 6502
-
- inc
- iNCREMENT
- oPERATION AS OF 6502.
-
- inc 1a 65c02
- inc $NN e6 6502
- inc $NN,x f6 6502
- inc $NNNN ee 6502
- inc $NNNN,x fe 6502
-
- inw
- iNCREMENT wORD
-
- inw $NNNN e3 65ce02
-
- inx
- iNCREMENT x rEGISTER
- oPERATION AS OF 6502.
-
- inx e8 6502
-
- iny
- iNCREMENT y rEGISTER
- oPERATION AS OF 6502.
-
- iny c8 6502
-
- inz
- iNCREMENT z rEGISTER
-
- inz 1b 65ce02
-
- jmp
- jUMP
-
- jmp $NNNN 4c 6502
- jmp ($NNNN) 6c 6502
- jmp ($NNNN,x) 7c 65c02
-
- jsr
- jUMP TO sUBROUTINE
- nOTE THAT THE 65816 ALSO HAS THE jsr ($NNNN,x) INSTRUCTION, BUT ITS OPCODE
- IS $fc.
-
- jsr $NNNN 20 6502
- jsr ($NNNN) 22 65ce02
- jsr ($NNNN,x) 23 65ce02
-
- lda
- lOAD aCCUMULATOR
- oPERATION AS OF 65c02. nOTE THAT zERO pAGE iNDIRECT HAS BEEN REPLACED BY
- zERO pAGE iNDIRECT z iNDEXED, AND THERE IS THE A sTACK pOINTER rELATIVE
- ADDRESSING MORE.
-
- lda #$NN a9 6502
- lda $NN a5 6502
- lda $NN,x b5 6502
- lda $NNNN ad 6502
- lda $NNNN,x bd 6502
- lda $NNNN,y b9 6502
- lda ($NN),y b1 6502
- lda ($NN),z b2 65c02/65ce02
- lda ($NN,sp),y e2 65ce02
- lda ($NN,x) a1 6502
-
- ldx
- lOAD x rEGISTER
- oPERATION AS OF 6502.
-
- ldx #$NN a2 6502
- ldx $NN a6 6502
- ldx $NN,y b6 6502
- ldx $NNNN ae 6502
- ldx $NNNN,y be 6502
-
- ldy
- lOAD y rEGISTER
- oPERATION AS OF 6502.
-
- ldy #$NN a0 6502
- ldy $NN a4 6502
- ldy $NN,x b4 6502
- ldy $NNNN ac 6502
- ldy $NNNN,x bc 6502
-
- ldz
- lOAD z rEGISTER
-
- ldz #$NN a3 65ce02
- ldz $NNNN ab 65ce02
- ldz $NNNN,x bb 65ce02
-
- lsr
- lOGICAL sHIFT rIGHT
- oPERATION AS OF 6502.
-
- lsr $NN 46 6502
- lsr $NN,x 56 6502
- lsr $NNNN 4e 6502
- lsr $NNNN,x 5e 6502
- lsr a 4a 6502
-
- map
- ???
- iT IS UNKNOWN WHAT THIS INSTRUCTION DOES.
-
- map 5c 65ce02
-
- neg
- nEGATE aCCUMULATOR
-
- neg 42 65ce02
-
- nop
- nO oPERATION
- oPERATION AS OF 6502.
-
- nop ea 6502
-
- ora
- oR aCCUMULATOR
- oPERATION AS OF 65c02. nOTE THAT zERO pAGE iNDIRECT HAS BEEN REPLACED BY
- zERO pAGE iNDIRECT z iNDEXED.
-
- ora #$NN 09 6502
- ora $NN 05 6502
- ora $NN,x 15 6502
- ora $NNNN 0d 6502
- ora $NNNN,x 1d 6502
- ora $NNNN,y 19 6502
- ora ($NN),y 11 6502
- ora ($NN),z 12 65c02/65ce02
- ora ($NN,x) 01 6502
-
- pha
- pUSH aCCUMULATOR
- oPERATION AS OF 6502.
-
- pha 48 6502
-
- php
- pUSH pROCESSOR sTATUS rEGISTER
- oPERATION AS OF 6502.
-
- php 08 6502
-
- phw
- pUSH wORD
-
- phw #$NNNN f4 65ce02
- phw $NNNN fc 65ce02
-
- phx
- pUSH x rEGISTER
- oPERATION AS OF 65c02.
-
- phx da 65c02
-
- phy
- pUSH y rEGISTER
- oPERATION AS OF 65c02.
-
- phy 5a 65c02
-
- phz
- pUSH z rEGISTER
-
- phz db 65ce02
-
- pla
- pULL aCCUMULATOR
- oPERATION AS OF 6502.
-
- pla 68 6502
-
- plp
- pULL pROCESSOR sTATUS rEGISTER
- oPERATION AS OF 6502.
-
- plp 28 6502
-
- plx
- pULL x rEGISTER
- oPERATION AS OF 65c02.
-
- plx fa 65c02
-
- ply
- pULL y rEGISTER
- oPERATION AS OF 65c02.
-
- ply 7a 65c02
-
- plz
- pULL z REGISTER
-
- plz fb 65ce02
-
- rmb
- rESET mEMORY bIT I [4]
- cLEAR THE SPECIFIED BIT IN THE ZERO PAGE MEMORY LOCATION SPECIFIED IN THE
- OPERAND. tHE BIT TO CLEAR IS SPECIFIED BY A NUMBER CONCATENATED TO THE END
- OF THE MNEMONIC, RESULTING IN 8 DISTINCT OPCODES.
-
- rmb0 $NN 07 65sc02
- rmb1 $NN 17 65sc02
- rmb2 $NN 27 65sc02
- rmb3 $NN 37 65sc02
- rmb4 $NN 47 65sc02
- rmb5 $NN 57 65sc02
- rmb6 $NN 67 65sc02
- rmb7 $NN 77 65sc02
-
- rol
- rOTATE lEFT
- oPERATION AS OF 6502.
-
- rol $NN 26 6502
- rol $NN,x 36 6502
- rol $NNNN 2e 6502
- rol $NNNN,x 3e 6502
- rol a 2a 6502
-
- ror
- rOTATE rIGHT
- oPERATION AS OF 6502.
-
- ror $NN 66 6502
- ror $NN,x 76 6502
- ror $NNNN 6e 6502
- ror $NNNN,x 7e 6502
- ror a 6a 6502
-
- row
- rOTATE rIGHT wORD
-
- row $NNNN eb 65ce02
-
- rti
- rETURN FROM iNTERRUPT
- oPERATION AS OF 6502.
-
- rti 40 6502
-
- rts
- rETURN FROM sUBROUTINE
- oPERATION AS OF 6502. nOTE THE NEW ADDRESSING MODE. iT IS UNKNOWN HOW IT
- WORKS.
-
- rts 60 6502
- rts #$NN 62 65ce02
-
- sbc
- sUBTRACT WITH cARRY fLAG
- oPERATION AS OF 65c02. nOTE THAT zERO pAGE iNDIRECT HAS BEEN REPLACED BY
- zERO pAGE iNDIRECT z iNDEXED.
-
- sbc #$NN e9 6502
- sbc $NN e5 6502
- sbc $NN,x f5 6502
- sbc $NNNN ed 6502
- sbc $NNNN,x fd 6502
- sbc $NNNN,y f9 6502
- sbc ($NN),y f1 6502
- sbc ($NN),z f2 65c02/65ce02
- sbc ($NN,x) e1 6502
-
- sec
- sET cARRY fLAG
- oPERATION AS OF 6502.
-
- sec 38 6502
-
- sed
- sET dECIMAL fLAG
- oPERATION AS OF 6502.
-
- sed f8 6502
-
- see
- sET ??? fLAG
-
- see 03 65ce02
-
- sei
- sET iNTERRUPT dISABLE fLAG
- oPERATION AS OF 6502.
-
- sei 78 6502
-
- smb
- sET mEMORY bIT I [4]
- sET THE SPECIFIED BIT IN THE ZERO PAGE MEMORY LOCATION SPECIFIED IN THE
- OPERAND. tHE BIT TO SET IS SPECIFIED BY A NUMBER CONCATENATED TO THE END
- OF THE MNEMONIC, RESULTING IN 8 DISTINCT OPCODES.
-
- smb0 $NN 87 65sc02
- smb1 $NN 97 65sc02
- smb2 $NN a7 65sc02
- smb3 $NN b7 65sc02
- smb4 $NN c7 65sc02
- smb5 $NN d7 65sc02
- smb6 $NN e7 65sc02
- smb7 $NN f7 65sc02
-
- sta
- sTORE a rEGISTER TO mEMORY
- oPERATION AS OF 65c02. nOTE THAT zERO pAGE iNDIRECT HAS BEEN REPLACED BY
- zERO pAGE iNDIRECT z iNDEXED, AND THERE IS THE A sTACK pOINTER rELATIVE
- ADDRESSING MORE.
-
- sta $NN 85 6502
- sta $NN,x 95 6502
- sta $NNNN 8d 6502
- sta $NNNN,x 9d 6502
- sta $NNNN,y 99 6502
- sta ($NN),y 91 6502
- sta ($NN),z 92 65c02/65ce02
- sta ($NN,sp),y 82 65ce02
- sta ($NN,x) 81 6502
-
- stx
- sTORE x rEGISTER TO mEMORY
-
- stx $NN 86 6502
- stx $NN,y 96 6502
- stx $NNNN 8e 6502
- stx $NNNN,y 9b 65ce02
-
- sty
- sTORE y rEGISTER TO mEMORY
-
- sty $NN 84 6502
- sty $NN,x 94 6502
- sty $NNNN 8c 6502
- sty $NNNN,x 8b 65ce02
-
- stz
- sTORE z rEGISTER TO mEMORY
- nOTE THAT ON THE 65c02, THE stz INSTRUCTION DOES NOT STORE THE VALUE OF
- ZERO INTO MEMORY, BUT THE CONTENTS OF THE z rEGISTER. aS LONG AS THE z
- REGISTER IS NOT USED AND THEREFORE ZERO, THIS DOES NOT MAKE ANY DIFFERENCE,
- THOUGH.
-
- stz $NN 64 65c02/65ce02
- stz $NN,x 74 65c02/65ce02
- stz $NNNN 9c 65c02/65ce02
- stz $NNNN,x 9e 65c02/65ce02
-
- tab
- tRANSFER aCCUMULATOR TO b rEGISTER
- COMPARE 65816 tcd/tad
-
- tab 5b 65ce02
-
- tax
- tRANSFER aCCUMULATOR TO x rEGISTER
- oPERATION AS OF 6502.
-
- tax aa 6502
-
- tay
- tRANSFER aCCUMULATOR TO y rEGISTER
- oPERATION AS OF 6502.
-
- tay a8 6502
-
- taz
- tRANSFER aCCUMULATOR TO z rEGISTER
-
- taz 4b 65ce02
-
- tba
- tRANSFER b rEGISTER tO aCCUMULATOR
- COMPARE 65816 tdc/tda
-
- tba 7b 65ce02
-
- trb
- tEST AND rESET mEMORY bITS aGAINST aCCUMULATOR [4]
- bITWISE LOGICALLY and THE DATA LOCATED AT THE EFFECTIVE ADDRESS SPECIFIED
- BY THE OPERAND WITH THE COMPLEMENT OF THE CONTENTS OF THE ACCUMULATOR. tHE
- RESULT IS STORED AT THE MEMORY LOCATION.
- tHIS WAY, trb CLEARS THE BITS AT THE MEMORY LOCATION CORRESPONDING TO THE
- BITS SET IN THE ACCUMULATOR.
- tHE STATUS REGISTER IS AFFECTED JUST LIKE IT IS BY THE bit INSTRUCTION.
-
- fLAGS aFFECTED: N V - - - Z -
- N tAKES VALUE OF SEVENTH BIT OF RESULTING DATA
- V tAKES VALUE OF SIXTH BIT OF RESULTING DATA
- Z sET IF RESULT IS ZERO; ELSE CLEARED.
-
- trb $NN 14 65sc02
- trb $NNNN 1c 65sc02
-
- tsb
- tEST AND sET mEMORY bITS aGAINST aCCUMULATOR [4]
- bITWISE LOGICALLY or THE DATA LOCATED AT THE EFFECTIVE ADDRESS SPECIFIED BY
- THE OPERAND WITH THE CONTENTS OF THE ACCUMULATOR. tHE RESULT IS STORED AT
- THE MEMORY LOCATION.
- tHIS WAY, tsb SETS THE BITS AT THE MEMORY LOCATION CORRESPONDING TO THE
- BITS SET IN THE ACCUMULATOR.
- tHE STATUS REGISTER IS AFFECTED JUST LIKE IT IS BY THE bit INSTRUCTION.
-
- fLAGS aFFECTED: N V - - - Z -
- N tAKES VALUE OF SEVENTH BIT OF RESULTING DATA
- V tAKES VALUE OF SIXTH BIT OF RESULTING DATA
- Z sET IF RESULT IS ZERO; ELSE CLEARED.
-
- tsb $NN 04 65sc02
- tsb $NNNN 0c 65sc02
-
- tsx
- tRANSFER sTACK pOINTER TO x rEGISTER
- oPERATION AS OF 6502.
-
- tsx ba 6502
-
- tsy
- tRANSFER sTACK pOINTER TO y rEGISTER
-
- tsy 0b 65ce02
-
- txa
- tRANSFER x rEGISTER tO aCCUMULATOR
- oPERATION AS OF 6502.
-
- txa 8a 6502
-
- txs
- tRANSFER x rEGISTER TO sTACK pOINTER
- oPERATION AS OF 6502.
-
- txs 9a 6502
-
- tya
- tRANSFER y rEGISTER TO aCCUMULATOR
- oPERATION AS OF 6502.
-
- tya 98 6502
-
- tys
- tRANSFER y rEGISTER TO sTACK pOINTER
-
- tys 2b 65ce02
-
- tza
- tRANSFER z rEGISTER TO aCCUMULATOR
-
- tza 6b 65ce02
-
-
- 4. aSSUMPTIONS/eRRORS
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- sINCE i DO NOT HAVE A 65ce02 cpu, MUCH OF THIS INFORMATION IS BASED ON
- GUESSWORK.
- asw SHIFTS _LEFT_, BECAUSE THE ORIGINAL 6502 "aRITHMETIC sHIFT" COMMAND
- SHIFTS LEFT, TOO, AND THE aRITHMETIC sHIFT lEFT IS THE MORE COMMON
- WAY TO DO AN ARITHMETICAL SHIFT.
- row MUST BE A ROTATE RIGHT, SO THAT THERE IS A 16 BIT COMMAND BOTH FOR
- ROTATING/SHIFTING LEFT AND RIGHT.
- inw'S OPERAND AS DESCRIBED IN 64net.opc IS 8 BIT AND THEREFORE A ZEROPAGE
- ADDRESS. tHIS IS NOT CONSEQUENT WHEN COMPARED TO THE OTHER NEW rmw
- COMMANDS THAT HAVE 16 BIT ADDRESSES AS OPERANDS; THEREFORE IT WAS ASSUMED
- THAT THIS IS A MISTAKE IN 64net.opc.
- tab/tba COMMANDS COULD MEAN "tRANSFER bANK rEGISTER" IN THE SENSE OF THE BANK
- INDEX THE CURRENT DATA REFFERED TO BY MEMORY ADDRESSING IS STORED IN.
- tHIS MODEL WOULD IMPLY THAT DATA CAN BE STORED IN UP TO 256 BANKS OF
- 64 kb EACH (THAT IS A TOTAL OF 16 mb), BUT CODE CAN ONLY BE RUN IN BANK
- 0, AND A CROSS-BANK MOVE OF DATA WOULD MEAN MODIFYING THE b REGISTER
- TWICE PER BYTE COPIED (8+ CYCLES).
- sINCE THE 65ce02 HAS BEEN DESIGNED BY cOMMODORE, IT IS MORE LIKELY THAT
- THEY MAINTAINED THEIR CONVENTIONAL BANKING TECHNIQUES AS USED IN THE c64
- AND THE c128 WITH SWITCHABLE BANKS OF VARIABLE SIZE, CONTROLLED BY A
- SEPARATE ic. fURTHERMORE, THE c65 PRELIMINARY DOCUMENTATION [1] SAYS THAT
- THE c64dx/c65 CAN ONLY ADDRESS UP TO 1 mb OF MEMORY, AND THAT THE MEMORY
- MAPPER IS NOT PART OF THE cpu CORE.
- oN THE 65816, THE OPCODES OF tab AND tba STAND FOR tcd AND tdc (OR
- tad/tda)[8], THAT IS tRANSFER [16-BIT] aCCUMULATOR [c] TO dIRECT pAGE
- rEGISTER d (AND THE OTHER WAY ROUND). tHE 65ce02 HAS BEEN DESIGNED
- FAR AFTER THE wdc 65816 HAD APPEARED, AND BECAUSE THESE COMMANDS
- LOOK QUITE SIMILAR, IT IS QUITE LIKELY THAT b STANDS FOR THE BANK THE
- ZERO PAGE IS STORED IN, THUS MEANING THE 65ce02 WOULD ALSO HAVE DIRECT
- PAGE FUNCTIONS JUST LIKE THE 65816.
- (iT MIGHT HAVE BEEN BECAUSE OF "INTELLECTUAL PROPERTY" REASONS THAT
- THEY CALLED IT DIFFERENTLY.)
- tHE b COULD THEREFORE STAND FOR "bLOCK rEGISTER", BECAUSE cOMMODORE
- SOMETIMES USED TO CALL A PAGE OF MEMORY (THAT IS 256 BYTES) A BLOCK.
- iT IS THEREFORE ASSUMED THAT THE 65ce02 PROVIDES DIRECT PAGE FUNCTIONS.
- asr WITH THE OPCODE OF 43, AS LISTED IN 64net.opc IS MOST PROBABLY asr a
- (COMPARE TO asl a).
- fURTHERMORE, THE CORRECT OPERATION OF asr HASN'T BEEN DESCRIBED ANYWHERE.
- iT IS NOT JUST THE INVERSE OPERATION OF asl, BECAUSE lsr ALREDAY DOES
- THAT. mOST PROBABLY IT WORKS LIKE THE I8086 sar (sHIFT aRITHMETICALLY
- rIGHT) INSTRUCTION[9], WHICH WORKS JUST LIKE 6502 lsr, BUT DOESN'T CHANGE
- THE VALUE OF THE UPPERMOST BIT, THUS MAKING A SIGNED DIVISION BY TWO
- POSSIBLE. nOTE THAT THE I8086 sal IS ALSO EQUIVALENT TO 6502 asl.[9]
- lda'S OPCODE b2 SHOULD MEAN lda ($NN),z AND b1 SHOULD MEAN lda ($NN),y.
- iN 64net.opc, BOTH OPCODES ARE TRANSLATED INTO lda ($NN),y.
- neg'S OPERATION IS NOT DESCRIBED ANYWHERE, BUT BECAUSE OF ITS mNEMONIC
- IT HAS BEEN ASSUMED THAT IT OPERATES JUST LIKE THE I8086 neg INSTRUCTION.
- tHE OPERATION OF THE map, see AND cle INSTRUCTIONS ARE UNKNOWN, AS WELL AS
- THE OPERATION OF THE rts INSTRUCTION WITH AN IMMEDIATE OPERAND. iT MIGHT
- MODIFY THE STATUS REGISTER OR PULL ADDITIONAL BYTES FROM THE STACK BEFORE
- RETURNING (COMPARE I8086 ret).
- fURTHER RESEARCH, USING THE c64dx/c65 rom, WILL BE NECESSARY.
-
- 5. rEFERENCES
- {$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}{$7e}
- [1] c64dx system specification [PRELIMINARY]/ fRED bOWEN, pAUL lASSA, bILL
- gARDEI, vICTOR aNDRADE. oNLINE PUBLICATION, DATED jANUARY 31, 1991,
- FTP://FTP.FUNET.FI/PUB.CBM/C65/C65-PRE2.ZIP
- [2] eYES, dAVID: pROGRAMMING THE 65816: INCLUDING THE 6502, 65c02 AND 65802 /
- dAVID eYES AND rON lICHTY
- nEW yORK, ny: pRENTICE hALL, 1986. isbn: 0-89303-789-3
- [3] gARDNER-sTEPHEN, pAUL: 64net.opc
- sUPPORT FILE OF THE SAME AUTHOR'S 64net, PROBABLY BASED ON THE OUTPUT
- OF THE BUILT-IN ml MONITOR OF THE c64/c64dx.
- tHE DOCUMENT IN THE VERSION OF nOVEMBER 12, 1994 APPARENTLY CONTAINS
- SOME ERRORS.
- [4] rESTEMEIER, jENS cH.: uNOFFICIAL pc-eNGINE REFERENCE.
- oNLINE PUBLICATION, DATED jUNE 8, 1997
- [5] tHE vice eMULATOR / sIMULATOR fOR uNIX. pROGRAMMERS' rEVENGE mANUAL.
- sPECIAL FEATURES IN cbm 8-BIT EMULATION AND eMULATOR fILE cONVERSIONS.
- oNLINE PUBLICATION, DATED mAY 22, 1996.
- HTTP://WWW.TU-CHEMNITZ.DE/{$7e}FACHAT/VICE/OLDDOC/eMULATION.HTML
- [6] bAYKO, jOHN: gREAT mICROPROCESSORS OF THE pAST AND pRESENT (v 11.2.0)
- oNLINE PUBLICATION, DATED sEPTEMBER 1998.
- HTTP://INFOPAD.EECS.BERKELEY.EDU/cic/ARCHIVE/CPU_HISTORY.HTML
- [7] ip lICENSING. ip pROVIDER bUSINESS mODEL-cREATING a sTANDARD.
- oNLINE PUBLICATION.
- HTTP://WWW.WDESIGNC.COM/LICENSING.HTML
- [8] vALTA, jOUKO: g65sc802 / g65sc816 dATA sHEETS.
- oNLINE PUBLICATION DATED dECEMBER 4, 1995. (qUOTED PAGE DATED sEPTEMBER
- 12, 1994)
- FTP://FTP.FUNET.FI/PUB/CBM/DOCUMENTS/CHIPDATA/GTE65.ZIP
- [9] iNTEL 80386 pROGRAMMER'S rEFERENCE mANUAL
- oNLINE PUBLICATION, DATED mAY 26, 1987
- 386INTEL.TXT
-
- --------------------------------------------------------------------------------
- hELP ME MAKE THIS DOCUMENT GROW! gREETINGS TO rrby,ftgljrwuah,m
- --------------------------------------------------------------------------------
- eND OF "65ce02 tECHNICAL rEFERENCE", (c)mICHAEL sTEIL <MIST@C64.ORG>
-
-