Acorn Computer Limited Acorn (6502) — Acorn Computer (6502) User & Service Manual PDF

025A 00 71 025D 50 00 025F 77 YOU SHOULD ENTER THE TWO PAIRS OF NUMBERS YOU WISH ADDED TOGETHER AS IF THEY FORMED AN ADDRESS. TERMINATING YOUR ENTRY WITH k INSTANTLY PRODUCES THE RESULT K. 5 05 0 100 THE RELOCATOR FIRST FETCHES THE THREE ADDRESSES IT REQUIRES, THE ADDRESSES OF THE START & END OF THE MEMORY SECTION TO BE MOVED, AND THE ADDRESS OF THE START OF THE AREA TO WHICH THE MOVE IS TO TAKE PLACE. THE PROMPTS ARE F., & t RESPECTIVELY. AFTER TERMINATING THE LAST ADDRESS, THE MOVE TAKES PLACE. MOVES UP BY LOOKING BACK OVER THE PROGRAM, AND EXAMINING THE MONITOR LISTING,WILLREVEALTHAT IT TOOK AD 1 6 (OR 173 1O ) BYTES OF CODE TO ACHI EVE THIS.

THE ACTUAL OPERATION USED 6 BYTES OF CODE (SED; CLC; LESS THAN THE LENGTH OF THE MATERIAL TO BE USED WILL NOT BE SUCCESSFUL (I.E. t - F ., IF POSITIVE, SHOULD BE GREATER THAN - t ) LDAZ; ADC Z) WHILE THE OTHER 167 1O ARE THERE 'MERELY'TO DISPLAY THE RESULT& FETCH THE INFORMATION NEATLY(THE CODE CALCULATIONS DO NOT CONSIDER THE 16 1O BYTES OF CHARACTER FONT OR THE 11 1 O BYTES OF TEMPORARY STORAGE ALSO USED) CHAPTER 4:

THE REMAINDER OF THE INSTRUCTION SET 4.1 BRANCHES THINKING ABOUT THE FE88 PROGRAM, YOU SHOULD REALIZE THAT IT DOES SOMETHING OF THE FORM RELOCATOR ADDR HEX CODE A2 86 A2 20 A2 86 A2 20 LABEL INSTRUCTION COMMENTS 0200 0202 0204 0206 0209 020B 020D 020 F F1 10 20 88 46 LDX #F1 STXZ D FE LDX #20 JSR QDATFET - SET UP FROM PROMPT F. - AND GET ADDRESS 10 22 88 LDX #46 STXZ D - SET UP END PROMPT FETCH NEXT KEY i f KEY IS A COMMAND KEY THEN RETURN THIS IS A CONDITIONAL TRANSFER OF CONTROL AND REPRESENTS SOME FE LDX #22 JSR QDATFET - AND GET SECOND ADDRESS- MOVE THE DATA BETWEEN THESE ADDRESSES NEW INSTRUCTIONS AND A DIFFERENT WAY OF CHANGING THE PROGRAM COUNTER.

AN OPERATION LIKE ADC DOES MORE THAN ADDING TWO BYTES AND THE CARRY FLAG TOGETHER AND OUTPUTTING A CARRY. IT ALSO SET! SOME OF THE OTHER FLAGS IN P: 0212 0214 0216 0218 A2 86 A2 20 78 10 24 88 LDX #78 STXZ D - SET UP TO PROMPT FE LDX #24 JSR QDATFET - AND GET BASE ADDRESS-MOVE TO HERE & SUCCESSIVE THE Ј FLAG IS SET IF THE RESULTING BYTE WAS ZERO THE V FLAG IS SET IFTHERE WAS A 2'S COMPLEMENT OVERFLOW THE N FLAG IS SET IF THE RESULT WAS A NEGATIVE 2'S COMPLEMENT 021B 021D 021 F 0221 0222 0224 0226 0229 022B 022D A2 A1 91 C8 D0 E6 20 D0 4C 1A 06 24 LDX #1A LDA (06,X) STA (24,Y) LOCATIONS NUMBER - I.E. BECOMES BIT 7 OF THE RESULT.

THESE FLAGS ARE ABLE TO CAUSE CONDITIONAL TRANSFER BY USING THE APPROPRIATE ONE OF THE EIGHT 'BRANCH' INSTRUCTIONS. THE MOVE - DO THE MOVE 02 25 A0 F2 04 INY BNE NOINC INC 2 25 JSR COM16 BNE MOVE JMP RESTART - INCREMENT THE TO ADDRESS MECHANISM EMPLOYED IS TO PERFORM A 2'S COMPLEMENT ADD BETWEEN THE PROGRAM COUNTER AND THE SECOND BYTE OF THE BRANCH FE NOINC - USECOM16TO DO THE LIMIT TES1 INSTRUCTION THUS PERMITTING THE TRANSFER TO BE -128. . . +127 BYTES FROM THE NEXT INSTRUCTION.

THIS IS CALLED 'RELATIVE ADDRESSING' AND IS A POSITION INDEPENDENT METHOD OF TRANSFER, THE EIGHT BRANCH INSTRUCTIONS ARE ASSOCIATED TWO TO EACH OF THE C, 2, V & N FLAGS, ONE OF WHICH BRANCHES IF THE FLAG IS SET, THE OTHER BRANCHES IF IT IS CLEAR. FF TO CLARIFY THIS LET'S LOOK AT AN EXAMPLE: "BRANCH IF CARRY SET" SET CARRY * + 0 ^BCS 03 * + 2 SEC * + 3 " ^ C S 0 1 * + 5 L i C L C CLEAR CARRY * + 6 U (THE ARROWS ARE PUT IN FOR CLARITY) WE'LL NEED TO CONSIDER THIS PROGRAM BOTH WITH THE CARRY SET & WITH IT CLEAR I CARRY IS CLEAR