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

TO SET Y TO 5, THUS SAVING A WHOLE BYTE! (BUT NO TIME, THE TWO THE Fl RST PROGRAM, TEST, IS TRIVIAL: IT JUST SENDS A PARTICULAR BYTE TO TAPE REPETETIVELY. IT MUST BE STOPPED BY RESET. RECORD A FEW MINUTES OF THIS,THEN LOAD IT USING LOAD. DEVIATIONS FROM THE STATIONARY PATTERN ARE EASY TO SEE. THE SECOND PROGRAM, RETAG, INSTRUCTIONS ARE EXECUTED IN THE SAME TIME, 2/xS). THE COMPLETE PROGRAM IS 002 F F8 0030 18 0031 A5 21 0033 65 20 0035 08 0036 20 60 0039 68 003A29 01 003C 88 003D20 7AFE 0040 4C04FF SED CLC IS RELOCATABLE. IT ACTS JUST LIKE THE MONITOR'S STORE ROUTINE, EXCEPT THAT IT ASKS FOR AN EXTRA ADDRESS.

THE DATA WHICH IS STORED IS THAT STARTING AT THIS LAST ADDRESS, IT PRETENDS TO BE SITUATED BETWEEN THE FIRST TWO ADDRESSES. INCORPORATE THE LDA Ј21 ADC Z 20 PHP JSR FE60 FE PLA AND # 0 1 REQUIRED STATE OF ZERO PAGE REGISTERS IN FRONT OF YOUR DATA, THEN TOAD AND AUTO RUN' PROGRAMS MAY BE CREATED.

DEY JSR FE7A JMP FF04 NOT RELOCATABLE TAPE PROGRAMS ADDR HEX LABEL CODE 0200 A9 55 TEST 0202 20 B1 FE 0205 4C 00 02 0208 A9 F1 RETAG 020A 85 10 020C A2 06 020E 20 88 FE 0211 A2 08 0213 86 10 0215 20 88 FE 0218 A9 46 021A 85 10 021C A2 20 021E 20 88 FE INSTRUCTION COMMENTS AND SO, AT LAST, WE FIND THE ANSWER TO50 1O + 50 1O IS LDA #55 JSR PUTBYTE JMP TEST - THE TEST BYTE - SEND IT - KEEP SENDING IT - F. PROMPT K. 002F 100 LDA#F1 STAD PERHAPS WE SHOULD HAVE CLEARED THE DISPLAY? OR MADE IT SHOW THE NUMBERS TO BE ADDED TOGETHER? OR ACTUALLY FETCHED THE TWO NUMBERS USING KEYBOARD AND DISPLAY LIKE THE MONITOR DOES? OR SOME COMBINATION OF THESE?

LDX #06 JSR QDATFET LDX #08 STX D JSR QDATFET FIRST ADDRESS PROMPT SECOND ADDRESS 3.4 MAKING OUR PROGRAM 'FRIENDLY' USING THE MONITOR SUBROUTINE AT FE88 IT IS EASY TO DO THE THIRD OPTION. FE88 IS THE ROUTINE WHICH FETCHES 4 DIGIT NUMBERS, TERMINATED BY ANY COMMAND KEY, INTO THE TWO BYTES IN ZERO PAGE X & X + 1 [i.e. IF X CONTAINS 20, INTO 0020 (LOW BYTE = RH PAIR OF NUMBERS) & 0021] JUST WHAT WE NEED! 002A 002B 002D 0030 0031 0033 0035 0036 0039 003A 003C 003D 0040 LDA #46 STAD LDX #20 JSR QDATFE7 PROMPT - LAST ADDRESS:

ACTUAL DATA START 0221 A2 04 0223 B5 05 ADRSS 0225 20 B1 FE 0228 CA 0229 D0 F8 022B A0 00 DATAS 022D B1 20 022F E6 20 LDX #04 LDA Z,X 05 JSR PUTBYTE DEX BNE ADDRSS LDY #00 LDA(20),Y INC 20 - SEND FAKE ADDRESSES F8 A2 20 20 88FE LDX# 20 JSR FE88 CLC SED PROPER DATA INCREMENT PROPER DATA COUNTER 18 A5 21 65 20 08 2060 FE 68 29 01 88 20 7AFE 4C04 FF LDAZ21 ADC Z 20 PHP JSR FE60 0231 D0 02 0233 E6 21 0235 20 B1 FE NOI1NC 0238 20 A0 FE 023B D0 EE 023D 4C 04 FF 0240 BNENOINC INC 21 JSR PUTBYTE JSR COM16 BNE DATAS JMP RESTART PLA AND#01 SEND DATA CHECK FAKE ADDRESSES FOR END DEY JSR FE7A JMP FF04 ONCE AGAIN THE PROGRAM HAS BEEN EXTENDED BACKWARDS SINCE THE GREATER PART OF IT HAS ALREADY BEEN ENTERED (UNLESS YOU'VE SWITCHED OFF AND LOST IT ALL) RUNNING THIS PROGRAME (G0,0,2,A, k ) PRODUCES THE SCROLL PROGRAM SHIFTS THE WHOLE DISPLAY ONE LEFT, AND ENTERS THE NEW INFORMATION, IN A, ON THE FAR RIGHT.

SCROLL ^DDR HEX CODE LABEL INSTRUCTION COMMENTS 0200 0202 0204 0206 A2 00 B4 11 94 10 E8 LDX #00 LDY ZX D + 1 STY ZX D - MUST GO FORWARDS - PICK-UP DATA ON RIGHT - & MOVE IT ONE LEFT K. 5 05 0 (ON THE ASSUMPTION THAT 0020 &0021 STILL CONTAIN THE 50S ADDED TOGETHER AS BEFORE) LOOP INX