Acorn Computer Limited · Acorn (6502) · 40 стр.

Acorn Computer (6502) User & Service Manual PDF (EN)

Оригинальное название: Acorn Computer (6502) User & Service Manual PDF

Читать онлайн

Текст документа

CONTENTS PART1 CHAPTER 1: AN INTRODUCTION TO THE BINARY NUMBER SYSTEM 1.1 BINARY NUMBERS 1.2 LOGICAL MANIPULATIONS 1.3 ARITHMETIC MANIPULATIONS 1.4 BINARY CODED DECIMAL (BCD) ARITHMETIC CHAPTER 2: WELCOME TO THE MACHINE 2.1 HOW THE ACORN MICROPROCESSOR WORKS 2.2 THE MONITOR COMMANDS M, t, I. 2.3 AT LAST, A PROGRAM, 2.3.1 ASSEMBLY LANGUAGE, MACHINE LANGUAGE, THE INSTRUCTIONS LOAD, STORE andJUMP 2.3.2 ENTERING A PROGRAM, THE GO COMMAND 2.3.3 INSTRUCTIONS JMP,JSR 2.3.4 LOGIC INSTRUCTIONS ORA AND EOR. 2.3.5 ARITHMETIC OPERATIONS: ADC, SEC, CLC CHAPTER 3:

INSIDE THE 6502 3.1 THE ACCUMULATOR, PROGRAM COUNTER, STATUS REGISTER 3.2 THE STACK POINTER, 3.3 THE INTERNAL REGISTERS X & Y 3.4 MAKING OUR PROGRAM 'FRIENDLY' CHAPTER 4: THE REMAINDER OF THE INSTRUCTION SET 4.1 BRANCHES 4.2 INDEXING 4.3 INDIRECTION 4.4 READ-MODIFY-WRITE INSTRUCTIONS 4.5 MISCELLANEOUS REMAINING INSTRUCTIONS CHAPTER 5: ACORN HARDWARE 5.1 CHIP LAYOUT AND BUS 5.2 RESET, INTERRUPT REQUEST AND NON-MASKABLE INTERRUPT 5.3 6502 INTERNAL ARCHITECTURE 5.4 PROMS, EPROMS, RAM, RAM I/O 5.5 THE KEYBOARD AND TAPE INTERFACE 5.6 POWER SUPPLY CHAPTER 6:

FIRMWARE 6.1 THE TAPE STORE AND LOAD 6.2 THE BREAKPOINT AND RESTORE COMMAND 6.3 THE SINGLE STEPPING FACILITY 6.4 THE MONITOR LISTING PART 2 APPLICATION PROGRAMS APPENDICES APPENDIX A: 64 CHARACTER ASCI I ON ACORN'S 7 SEGMENT DISPLAY APPENDIX B: INSTRUCTION SET APPENDIX C: HEXADECIMAL TO DECIMAL CONVERSION TABLE APPENDIX D: ACORN MONITOR ADDRESS INFORMATION GLOSSARY

Стр. 3

PART1 CHAPTER 1: AN INTRODUCTION TO THE BINARY NUMBER SYSTEM 1.1 BINARY NUMBERS: NUMBERS IN EVERY DAY USE ARE WRITTEN IN THE DECIMAL SYSTEM, THAT IS, TO THE NUMBER BASE 10. A POSITIONAL NOTATION IS USED REPRESENTING ONE "I00's; TWO "I0's & EIGHT T s AS THE SYMBOL 128. THE RIGHTMOST (i.e. LEAST SIGNIFICANT) DIGIT IS IN THE "UNITS" COLUMN, THE 2 INTHE 'TENS" COLUMN, THE 1 INTHE "HUNDREDS" COLUMN, AND THE VALUE OF THE SYMBOL '128' IS EVALUATED AS 1x100+2x10 + 8x1 = 128.

SIMILARLY '1024' IS EVALUATED AS 1x1000 + 0x100 + 2x10 + 4x1 = 1024, WHICH IS MORE CONVENIENTLY WRITTEN AS 1x10 3 +0x10 2 + 2x10* 4x10° = 1024, USING THE MATHEMATICAL SHORTHAND FOR 1000= 10x10x10= 10 3 ,AND THE CONVENTION "ANY NUMBER TO THE POWER ZERO IS 1 " TO GIVE A CONSISTENT METHOD OF EVALUATING SUCH SYMBOLS. SO 1024 CAN BE WRITTEN IN COLUMNS 3 2 1 0 1 0 2 4 AND EVALUATED AS 1x10 3 +0x10 2 + 2x10* +4x10° TO THE BASE 10. TO THE BASE 8,1024 WOULD MEAN 1x8 3 + 0x8 2 + 2x8* +4x8° WHICH IS THE DECIMAL NUMBER 532. TO THE BASE 16,1024 WOULD MEAN 1x16 3 + 0x16 2 + 2x16 1 +4x16° WHICH IS THE DECIMAL NUMBER 4132.

TO DISTINGUISH THE BASE TO WHICH A NUMBER IS WRITTEN WE'LL WRITE ITS' BASE AFTER IT AS A SUBSCRIPT: 1024 1O AND NOW WE CAN WRITE 1024* = 532 1O | 1024 16 =4132 l 0 | 10000000 2 = 128! o JUST AS BASE TEN HAS THE NAME 'DECIMAL', BASE SIXTEEN HAS THE NAME 'HEXADECIMAL', BASE EIGHT HAS THE NAME 'OCTAL' AND BASE TWO 'BINARY'. THESE FOUR BASES ARE IN COMMON USE WITH MODERN COMPUTERS, ESPECIALLY HEXADECIMAL (HEX) AND BINARY. CONVERSION BETWEEN BINARY, OCTAL & HEX NUMBERS IS VERY SIMPLE. SINCE THEY ARE ALL POWERS OF TWO, NUMBERS JUST NEED DIVIDING UP:- 100000002= 1100011 00001! 6 = 80 i 6 = I010||000II000» 6 =200 8 - EACH HEX DIGIT IS FOUR BINARY DIGITS (BITS) & EACH OCTAL DIGIT IS 3 BITS.

OCTAL DIGITS ARE 0 , 1 , 2, 3, 4, 5, 6, 7. HEX DIGITSARE0,1,2,3 / 4,5,6,7,8,9,A,B,C,D,E / F A....F ARE USED INSTEAD OF 10....15 TO ALLOW UNRESTRICTED USE OF THE POSITIONAL SYSTEM.

Стр. 4

PROGRAM COUNTER: 16 BIT REGISTER WHICH CONTAINS THE ADDRESS OF CONVERSION DECIMAL TABLE PROGRAM COUNTER ISSTEPPEDUPTOPOINTATTHE NEXT INSTRUCTION. PROM: PROGRAMMABLE READ ONLY MEMORY. THIS TYPE OF MEMORY THE INSTRUCTION BEING EXECUTED. DURING EXECUTION THE HEX 0 0 OCTAL 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 40 100 144 200 400 BINARY 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 ARRIVES BLANK. IT CAN BE PROGRAMMED BY THE USER WITH THE 1 2 3 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 32 64 100 128 256 HELP OF A SPECIAL PROM BLOWER. ONCE THIS PROGRAM HAS BEEN PUT IN, IT CANNOT BE CHANGED. RAM: RANDOM ACCESS MEMORY. THIS IS THE STANDARD READ/WRITE MEMORY.

DATA (AND PROGRAMS) ARE LOST WHEN THE POWER IS SWITCHED OFF. REGISTER: STORAGE LOCATION IN THE MICROPROCESSOR ITSELF. THERE 5 6 7 8 9 A ARE INTERNAL REGISTERS A, X, Y, PC, S, P. • ROM: READ ONLY MEMORY. THIS IS MEMORY THAT HAS A PROGRAM PUT IN DURING PRODUCTION. THIS PROGRAM CANNOT EVER BE CHANGED, IT CAN ONLY BE READ. STORE: TRANSFERS DATA FROM AN INTERNAL REGISTER TO MEMORY. XTAL: THE CRYSTAL IN THE ACORN OSCILLIATES AT 1 MHZ. i.e. ONE B C D 1110 1111 10000 100000 1000000 1100100 10000000 100000000 THE ACORN MICROPROCESSOR IS DESIGNED TO DEAL WITH 8 BITS AT A TIME. THE COLLECTION OF 8 BITS IS GIVEN THE SPECIAL NAME 'BYTE', AND IS NORMALLY WRITTEN IN HEXADECIMAL OR BINARY.

A BYTE THUS IS 0....FF 16 ; 0....11111111 2 OR 0....255io. THE MICROPROCESSOR CAN CARRY OUT LOGICAL AND ARITHMETICAL MANIPULATIONS ON BYTES. 1.2 LOGICAL MANIPULATIONS THE MICROPROCESSOR CAN IMMEDIATELY CARRY OUT THE LOGICAL AND, E F 10 20 40 64 80 100 MILLION TIMES A SECOND. IT DOES THIS WITH GREAT ACCURACY. SO YOU CAN BUILD A CLOCK FROM YOUR ACORN. EXCLUSIVE - OR & OR FUNCTIONS ON ALL 8 BITS SIMULTANEOUSLY, USING THE FOLLOWING TRUTH TABLES FOR EACH BIT (SYMBOL V ) AND ( A ) EXCLUSIVE - OR ( V ) OR ( V ) bi 0 0 1 1 b 2 0 result 0 0 0 bi 0 0 1 1 b 2 0 result 0 bi 0 0 b 2 0 result 0 1 0 1 0 1 1 0 1 .

0 1 1 1 1 1 1 1 1 1 EXAMPLE OPERANDS 00111100 00111100 01011010 AND 01011010 (OPERATOR) 00011000 RESULT 01100110 00111100 01011010 OR E-OR 01111110

Стр. 5

1.3 ARITHMETIC MANIPULATIONS GLOSSARY - ACCUMULATOR: 8-BIT CENTRAL REGISTER IN THE MICROPROCESSOR. BINARY ADDITION WITH CARRY OUTPUT b, 0 0 b 2 0 SUM CARRY MOST INFORMATION HAS TO GO THROUGH IT. - ADDRESS: 16 BIT POINTER TO A MEMORY LOCATION. THE 6502 MICRO- 1 0 0 1 1 0 0 0 0 PROCESSOR CAN ADDRESS 65, 536 SUCH LOCATIONS (WHICH IS2 16 ). - ARITHMETIC LOGIC UNIT (A.L.U.): A SECTION OF THE MICROPROCESSOR 1 1 1 1 WHICH CARRIES OUT ARITHMETIC (ADDITION,SUBTRACTION, BINARY ADDITION WITH CARRY FROM RIGHT INCREMENT, DECREMENT & COMPARE) AND LOGIC ("AND","EOR", "OR", & BIT SHIFTS) MANIPULATIONS. THIS IS THE ONLY PART OF ' THE MICROPROCESSOR WHICH ALTERS DATA. - COMMAND:

THE MONITOR FUNCTIONS M,G,P,R,L,S,t',l. - DATA: INFORMATION FOR THE PROCESSOR THAT DOES NOT HAVE TO BE INPUT CARRY SUM OUTPUT CARRY TO LEFT bi 0 0 b 2 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 TRANSLATED, e.g. "AD" AS DATA ACTUALLY MEANS 10x16+13x1 = 173 1O WHEREAS THE INSTRUCTION "AD" GETS TRANSLATED INTO THE 1 0 1 1 1 1 1 0 0 1 0 OPERATION "LOAD ACCUMULATOR ABSOLUTE". - EPROM: ERASABLE PROGRAMMABLE READ ONLY MEMORY. THIS TYPE 1 1 1 0 1 1 1 EXPOSING THE CHIP TO ULTRAVIOLET LIGHT. - FLAGS: ONE BIT INTERNAL REGISTERS. ALL SEVEN FLAGS CAN ALSO BE OF MEMORY IS LIKE A PROM, BUT CAN AGAIN BE ERASED BY 1 1 TREATED AS SEPARATE BITS OF THE P REGISTER (PROCESSOR STATUS). - INDEX REGISTER:

A REGISTER WHICH CAN BE USED TO MODIFY AN EXAMPLE: 00111100 3C 16 60i O 01011010+ 5A 16 + 90io + 10010110 96 16 150,0 IN ORDER TO MAKE LONGER ADDITIONS EASIER TO PROGRAM,THE MICROPROCESSOR HAS A CARRY BIT (FLAG). AT THE START OF AN ADDITION THIS IS TREATED AS THE INPUT CARRY, AND AT THE END IT ADDRESS (USED IN REFERRING TO DATA) BY BEING ADDED TO IT, THUS ACCESSING A CERTAIN ELEMENT OF A TABLE. THE 6502 HAS TWO INDEX REGISTERS CALLED X & Y . - INSTRUCTION: A FUNCTION OF THE MICROPROCESSOR LIKE LOAD AND RECEIVES THE CARRY OUT FROM THE SUM AT BIT 7: ASSUMING WE HAVE A CARRY INPUT: STORE. - I/O: INPUT/OUTPUT.

THIS CHIP ALLOWS YOU TO COMMUNICATE WITH THE 195,0 165,0 _Jio+ 361,0 CARRY OUT QJ 01101001 SUBSTRACTION OPERATES IN A SIMILAR MANNER, EXCEPT THAT THE CARRY (OR BORROW) FLAG OPERATES UPSIDE DOWN: A 0 CARRY FLAG IS TREATED AS REPRESENTING A BORROW FROM THE PREVIOUS STAGE: 11000011 10100101 CARRY IN C3 16 A5 16 - l i e 169,6 LINES WHICH CAN EITHER BE OUTPUTS OR INPUTS. IT ALSO HAS 128 BYTES OF RAM. - IRQ: INTERRUPT REQUEST. IF FLAG I (INTERRUPT DISABLE) IS CLEAR AND OUTSIDE WORLD. IN THE ACORN THE I/O CHIP HAS 16 PROGRAMMABLE A REQUEST IS MADE THE PROCESSOR WILL ATTEND TO IT AFTER SETTING FLAG I AND STORING THE PROGRAM COUNTER AND STATUS REGISTER. - JUMP:

THE PROGRAM COUNTER IS LOADED WITH A NEW ADDRESS. THE 11111111 FF 16 255 10 00, 6 000, 0 J 010 510io Q] 11111110 1FE 16 NOT QUITE THE RESULTS ONE MIGHT HAVE WISHED FOR! (SUPERFICIALLY) THIS OCCURS BECAUSE OF THE HARDWARE IMPLEMENTATION OF SUBTRACTION A SUBTRACTION, (P-Q), IS REGARDED BY THE MICRO- PROCESSOR AS THE EQUIVALENT (P+(-Q)), BECAUSE THERE IS A SIMPLE WAY TO GENERATE THE NEGATIVE OF A NUMBER. THE 'ONES-COMPLEMENT'OF A BINARY NUMBER IS SIMPLY GENERATED BY EXECUTION OF THE PROGRAM, WHICH IS NORMALLY USING CONSECUTIVE ADDRESSES, CONTINUES (JUMPS) AT THIS NEW ADDRESS. - LOAD: TRANSFERS THE DATA OF A MEMORY LOCATION TO AN INTERNAL REGISTER. - MNEMONIC:

SUGGESTIVE ABBREVIATION OF AN INSTRUCTION e.g. THE INSTRUCTION "LOAD ACCUMULATOR ABSOLUTE" HAS THE MNEMONIC "LDA". -NMI: NON MASKABLE INTERRUPT WHEN THE NON MASKABLE INTERRUPT IS ACTIVATED THE PROCESS Wl LL SET FLAG I, STORE AWAY ITS PROGRAM COUNTER AND STATUS REGISTER AND THEN IMMEDIATELY ATTEND TO THE INTERRUPT. THERE IS NO WAY OF PREVENTING THIS EXCHANGING '0's & Ts: T s 000011002 0Cie 12,o COMPLEMENT 11110011 2 F3 16 243 10 IF THIS ONE'S-COMPLEMENT IS TO BE THE NEGATIVE OF A NUMBER, WE SHOULD GET 0 ON ADDITION: INTERRUPT. IT HAS PRIORITY OVER IRQ. -OPCODE: HEXADECIMAL REPRESENTATION OF AN INSTRUCTION.e.g.

THE INSTRUCTION "LOAD ACCUMULATOR ABSOLUTE" HAS THE MNEMONIC "LDA" AND THE OPCODE "AD".

Стр. 6