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

CHAPTER 3:

INSIDE THE 6502 ADDR HEX CODE 0213 95 10 0215 A9 61 0217 CA 0218 10 02 LABEL INSTRUCTION COMMENTS SO FAR THE PROCESSOR'S INTERNAL WORKINGS ARE STAZ X 10 3.1 THE ACCUMULATOR, PROGRAM COUNTER, STATUS REGISTER INSERT LDA#DUCK DEX BPLOLDX PUT NEW DUCK ON IN NEW POSITION BUT NOT OVER THE END OF THE DISPLAY 021A A2 07 021C 95 10 021E 86 20 0220 A2 0E LDX #07 STAZ X 10 STX Z 20 I A I ACCUMULATOR 0 BIT NUMBER OLDX 15 0 LDX #TIME - DISPLAY INTERVAL IS SET BY THE BYTE LOADED INTO X PC | PROGRAM COUNTER 0222 20 0C 0225 C5 20 0227 F0 05 0229 CA 022A D0 F6 022C F0 E1 022E A9 1C 0230 A6 20 0232 95 10 0234 A9 FF 0236 85 0E 0238 20 0C 023B 90 C3 023D 4C 04 023F FE WAIT JSR DISPLAY CMP Z 20 BEQ H1T DEX BNEWAIT BEQ REMOVE LDA #DEAD DUCK LDX Z 20 STAZ X10 - HIT?

~C~l CARRY FLAG F D I DECIMAL MODE FLAG HIT FINISHED WAITTIME PUTIN A DEAD DUCK FF \ LDA#F,F. ST&Z 0E JSR DISPLAY BCC BEGIN JMP RESTART THE CARRY & DECIMAL MODE FLAGS HAVE BEEN TREATED SEPARATELY TO DATE. THEY ARE ACTUALLY MEMBERS OF A SPECIAL REGISTER CALLED THE PROCESSOR STATUS REGISTER^. TEST FOR CONTINUATION OR BACK TO THE MONITOR INTERRUPT DISABLE 0 SOMETHING HAS BECOME 00) CARRY ZERO (THIS FLAG 1 WHEN MISCELLANEOUS 1 THE COUNTER PROGRAM COULD BE USED AS A SUBROUTINE IN A LONGER N V B D DECIMAL FLAG PROGRAM WHEN "JSR INCR" AND "JSR DECR" WOULD INCREMENT OR DECREMENT THE DISPLAY.

IF THE PROGRAM APPENDED IS ALSO ENTERED THE DISPLAY WILL INCREASE OR DECREASE RAPIDLY IF "UP" OF "DOWN" BREAK COMMAND EXECUTED OVERFLOW NEGATIVE KEYS ARE DEPRESSED. THIS Wl LL BE STOPPED BY ANY HEX KEY. IT Wl LL INCREMENT BY THE INDICATED AMOUNT IF KEYS 1-F ARE DEPRESSED AND WILL IGNORE ALL OTHER KEYS. YOU SHOULD PARTICULARLY NOTICE THAT A JSR DISPLAY RETURNS WITH THE CARRY BIT CLEAR AND THE ACCUMULATOR HOLDING THE VALUE OF THE KEY PRESSED FOR THE NUMERICAL KEYS, AND THE CARRY BIT SET AND THE VALUES 0-7 IN THE ACCUMULATOR FOR THE CONTROL KEYS. IF CAN WE, THEN, USE LDP & STP? NO, THEY DON'T EXIST EITHER.(FUME). IN ORDER TO SOLVE THIS PROBLEM WE MUST INTRODUCE THE STACK.

DID YOU WONDER JUST WHAT HAPPENED TO PC DURING A JSR? YOU WERE TOLD THAT IT WAS'SAVED'. WHERE? HOW? IT WOULD BE TERRIBLE TO HAVE TO SPECIFY WHERE IT HAD TO BE STORED. WHAT'S NEEDED IS SOME PLACE WHERE IT CAN BE PUT DOWN AND PICKED UP AGAIN. IT WOULD BE GOOD TO ALLOW NESTED SUBROUTINES: MEMORY LOCATION 0E, WHICH IS DEDICATED TO THE MONITOR AND SHOULD NOT NORMALLY BE USED IN PROGRAMS, HAS THE MOST SIGNIFICANT BIT CLEAR THEN JSR DISPLAY Wl LL SCAN ONLY ONCE, IF IT IS SET IT Wl LL WAIT FOR A KEY TO BE DEPRESSED BEFORE RETURNING TO THE PROGRAM. IT IS A GOOD IDEA TO LOAD IT WITH 'IF' IF YOU WISH TO USE THIS FACILITY AS OTHER VALUES MAY CAUSE YOU DIFFERENT PROBLEMS.

AGAIN SEE THE REST OF THIS MANUAL IF YOU REALLY WISH TO UNDERSTAND THE PROCESS.