Home
6802 Kit User`s Manual - Build Your Own Microcontroller Projects
Contents
1. 20 bo 02 01 02 54 03 Ut U9 U10 05 04 05 06 19 14 14 D7 D6 1D 1Q 18 G B 16 A gt B 16 A a 07 2D 20 M F C 13 8 C 13 8 D 3D 6 4D 40 i B sD E 551 9 5D 5Q arm 6D H 13 15 G 15 7D 7Q 12 D DP G DP G 8D 8Q L pe L1 pe a PORT gt e m pov ova VCC OE 6 u23 H x era LTC 4727JR E d d LTC 4727JR T 74 573 1 7 segment test 2 segment test 5 12 CON3 PCO 2D 20 1 PCD 3D 6 40 40 15 PC4 5D 50 14 PC5 10k RESISTOR SIP9 R7 60 13 PCG PCO 2 1 9 7D 12 PC7 SPEAKER gt gt BREAK 80 8Q PC2 PORTI LE 3 RESET o PC5 vec 4 74HC573 PC3 TXD PCO R8 51 52 53 54 55 56 SPEAKER 2 Qi T T D T T T U13 AD 4 7k ej 2 M A 8 S9 2610 gt 512 ys x I T I I I T
2. MON68 LST 2 11 2558 17 06 2958 CCOB 2959 CCOB Key posistion code to key internal code conversion table 2960 CCOB 2961 CCOB KEYTAB 2962 CCOB 03 KO BYTE 03H 3 2963 CCOC 07 K1 BYTE 07H 7 2964 CCOD OB K2 BYTE OBH HEX B 2965 CCOE OF BYTE OFH 2966 CCOF 20 20H NOT USED 2967 10 21 K5 BYTE 21H NOT USED 2968 CC11 02 BYTE 02H HEX_2 2969 CC12 06 K7 06H HEX_6 2970 CC13 0A K8 BYTE OAH HEX 2971 CC14 OE K9 BY OEH HEX_ 2972 22 KOA 22H N USED 2973 CC16 23 KOB BYTE 23H NOT USED 2974 CC17 01 KOC BYTE 1 2975 18 05 BYTE 05H 5 2976 CC19 09 KOE BYTE 09H 9 2977 CC1A OD ODH HEX D 2978 CC1B 13 K10 BYTE 13H STEP 2979 1F K11 BYTE 1FH TAPERD 2980 CC1D 00 K12 BYTE OOH 0 2981 04 K13 04H HEX 4 2982 CC1F 08 K14 BYTE 08H 8 2983 CC20 OC K15 OCH 2984 21 12 16 BYTE 12H 2985 22 K17 BYTE 1EH TAPEWR 2986 CC23 1A K18 BYTE 1AH CBR 2987 CC24 18 K19 BYTE 18H PC 2988 CC25 1B K1A BYTE 1BH REG 2989 CC26 19 K1B 19H ADDR
3. MON68 LST 2 11 2558 17 06 1673 C636 1674 C636 KEY_STEP 1675 C636 1676 C636 9F A1 STS SAVE SP SAVE SYSTEM STACK 1677 C638 1678 C638 NOW SWITCH TO USER STACK 1679 C638 1680 C638 9E DS USER SP NOW LOAD WITH USER STACK 1681 C63A 1682 C63A 96 97 LDAA DISPLAY 1 1683 C63C 36 PSHA 1684 C63D 96 96 LDAA DISPLAY PUSH PC 1685 C63F 36 PSHA 1686 C640 1687 C640 96 9D USER 1 1688 C642 36 PSHA 1689 C643 PUSH IX 1690 C643 96 9C USER 1691 C645 36 PSHA 1692 C646 1693 C646 96 9A USER A PUSH A 1694 C648 36 PSHA 1695 C649 1696 C649 96 9B USER PUSH 1697 C64B 36 PSHA 1698 64 1699 64 96 0 DDAA USER P PUSH CONDITION CODE REGISTER 1700 C64E 36 PSHA 1701 C64F 1702 C64F C6 FF LDAB SFF 1703 C651 F7 80 02 STAB NOW ENABLE 7415164 1704 C654 1705 C654 1706 C654 3B RTI 10 CYCLES 1707 C655 1708 C655 1709 C655 1710 C655 1711 C655 NMI SERVICE 655 1713 655 STAA 1 1714 C655 1715 C655 86 BF LDAA 1716 C657 B7 80 02 STAA STOP BREAK SIGNAL 1717 C65A 1718 C65A 20 00 BRA SWI SERVICE 1719 C65C 1720 C65C RTI 1721 C65C 1722 C65C 1723 C65C SAVE CPU REGISTERS TO USER REGISTERS 1724 C65C SWI INSTRUCTION 172
4. MON68 LST 2 11 2558 17 06 0913 C31D 26 03 BNE CHK STATES 0914 C31F 7E C7 6B JMP HEX REG 0915 C322 0916 C322 81 05 CHK STATE5 CMPA 5 0917 C324 26 03 BNE CHK_STATE6 0918 C326 7E C8 9C JMP HEX REI 0919 C329 0920 C329 81 06 CHK STATE6 CMPA 6 0921 C32B 26 03 BNE CHK STATE7 0922 C32D 7E C8 A8 JMP HEX REL6 0923 C330 0924 C330 81 07 CHK STATE7 CMPA 7 0925 C332 26 03 BNE CHK_STATE8 0926 C334 7E C8 D8 JMP HEX_SEND_FILE 0927 C337 0928 C337 81 08 CHK_STATE8 CMPA 8 0929 C339 26 03 BNE CHK_STATE9 0930 C33B 7E C8 D9 JMP HEX_SEND_FILE2 0931 0932 C33E 81 CHK STATE9 CMPA 30 0933 C340 26 03 BNE CHK STATE10 0934 C342 7E JMP HEX COPY31 0935 C345 0936 C345 81 1F CHK STATE10 CMPA 31 0937 C347 26 03 BNE CHK 5 11 0938 C349 7E C8 CO JMP HEX COPY32 0939 C34C 0940 C34C 81 20 CHK STATE11 CMPA 32 0941 C34E 26 03 BNE CHK STATE12 0942 C350 7E C8 CC JMP HEX 0943 C353 0944 C353 0945 C353 CHK STATE12 0946 C353 0947 C353 0948 C353 96 83 0949 C355 7 80 00 STAA GPIO1 0950 C358 86 O1 LDAA 1 INVALID KEY PRESSED 0951 C35A 97 92 STAA INVALID 0952 C35C 0953 C35C 0954 C35C 0955 C35C 0956 C35C 0957 C35C HEX KEY WAS PRESSED 0958 C35C 0959 C35C 0960 C35C 39 RTS 0961 C35D 0962 C35D 0963 C35D 0964 C35D 0965 C35D 0966 C35D 0967 C35D 0968 C35D
5. MON68 LST 2 11 2558 17 06 0305 COA9 8D D1 NEXT_BIT BSR BIT_DELAY 0306 COAB 0307 COAB 74 00 80 SR REG 0308 COAE 7A 00 81 DEC REG D 0309 1 26 E BNE CHK BIT 0310 0311 86 LDAA 0312 COB5 B7 80 02 STAA 0313 2 BSR BIT_DELAY 0314 COBA 0315 COBA 39 RTS 0316 COBB 0317 COBB 0318 COBB 0319 COBB RECEIVE BYTE FROM 2400 BIT S TERMINAL 0320 COBB EXIT A 0321 COBB 0322 COBB 6 80 01 LDAA PORTO 0323 COBE 84 80 ANDA 80H 0324 COCO 26 F9 BNE CIN 0325 COC2 0326 COC2 8D BE BSR BIT1 5 DELAY 0327 COCA 0328 COCA 86 07 LDAA 7 0329 COCO 97 81 STAA REG D 0330 COC8 86 00 LDAA 0 0331 COCA 97 80 STAA REG E 0332 COCC 0333 COCC 0334 COCE 0335 B6 80 01 CHK_BIT_RX LDAA PORTO 0336 COCF 84 80 ANDA 80H 0337 COD1 26 08 BNE BIT_IS_ONE 0338 0339 COD3 96 80 LDAA REG_E 0340 COD5 84 7 ANDA 7FH 0341 COD7 97 80 STAA REG_E 0342 COD9 20 08 BRA NEXT_BIT_RX 0343 CODB 0344 CODB 96 80 BIT_IS_ONE LDAA REG_E 0345 CODD 8A 80 ORAA 80H 0346 CODF 97 80 STAA REG_E 0347 COE1 20 00 BRA NEXT_BIT_RX 0348 0349 COE3 8D 97 NEXT_BIT_RX BSR BIT_DELAY 0350 5 0351 5 74 00 80 LSR 0352 0353 COE8 7A 00 81 DEC REG_D 0354 COEB 26 DF BNE CHK BIT RX 0355 COED 0356 COED 8D 8D BSR BIT DELAY CENTER OF STOP BIT 0357 COEF 0358 COE
6. LDAA KEY CMPA 4 1 BEQ UNTIL PRESS JSR DEBOUNCE JSR 5 1 LDAA KEY LDX KEYTAB STX TEMP16 ADDA 16 1 STAA TEMP16 1 LDAA 0 ADCA TEMP16 STAA TEMP16 16 LDAA 0 OPEN TABLE H STAA 1 IEST NOW A IS INTERNAL CODE RTS MAIN JSR SCANKEY Scan display and keypad JSR KEYEXE execute key that pressed JSR BEEP beep no beep after key executed BRA MAI repeat forever KEY PRESSED CALIBRATED 523Hz NEW FREQUENCY 673Hz TESTED 670Hz BEEP LDAA PORTO ANDA 40H BEQ NO_BEEP CHECK IF REPEAT KEY IS PRESSED THEN NO LDAA MUTE CMPA 0 BEQ BEEPON RTS IF MUTE 1 THEN NO BEEP BEEPON LDX 35h 2 BEEP_PERIOD BEEP2 LDAA 3FH STAA JSR BEEP_DELAY LDAA STAA JSR BEEP_DELAY DEX BNE BEEP2 NO_BEEP RTS BEEP DELAY LDAB 52H 78H 09BH CALIBRATED 524Hz Page 33 of 40 MON68 LST 2 11 2558 17 06 2509 9 4 5A LOOP DECB 2510 C9D5 26 FD BNE BEEP_LOOP 2541 9 7 39 RTS 2512 C9D8 2543 C9D8 2514 C9D8 2545 C9D8 2516 C9D8 TEST CODE 2
7. oon w NDA 1 C857 C857 C859 C85C C85D C85D C85D C85F C861 C861 C864 C866 C868 C86B C86B C86D C870 C871 C871 C871 C873 C875 C875 C878 C87A C87C C87F C87F C881 C884 C885 C885 C887 C889 C889 C88C C890 C893 C893 C895 C898 C899 C899 C899 C899 C89A C89A C89A C89A C89A C89A C89A C89A C89A C89A C89A C89B C89B C89B C89B C89B C89B C89B C89B C89B C89B C89B C89B C89B C89B C89B C89B C89B C89B C89C 86 BD 39 81 26 DF BD 86 BD 39 81 26 DE BD 86 BD 39 39 39 39 00 Cl 07 10 00 84 Cl 02 Cl 08 10 00 00 84 Cl 04 Cl 09 10 00 00 84 El 06 02 D1 04 D1 06 D1 CHK_RI CHK_RI CHK_RI CHK_RI EG8 EG9 EGA LDAA 0 JSR DATA DISPLAY RTS CMPA 7 BNE CHK REG8 LDX 2 LDX 0 X STX HL JSR ADDRESS DISPLAY LDAA 42 JSR DATA DISPLAY RTS CMPA
8. LDS 57 SYSTEM STACK LDX 7F00 STX USER_SP STORE USER STACK LDAA 0 STAA BUFFER STAA BUFFER 1 STAA INVALID CLEAR INVALID FLAG INSERT 6502 TEXT LDAA 0AFH STAA BUFFER 5 LDAA STAA BUFFER 4 LDAA 0BDH STAA BUFFER 3 LDAA 9BH STAA BUFFER 2 LDAA 0 STAA STATE INITIAL STATE STAA ZERO_FLAG LDAA 02 STAA DISPLAY STAA USER_PC LDAA 0 STAA DISPLAY 1 STAA USER 1 TPA STAA USER P LDAA DISPLAY STAA HL LDAA DISPLAY 1 STAA HL 1 LDX 35H STAA BEEP PERIOD LDAA 52H STAA BEEP FREO LDAA 0 STAA DEMO NO LDX COLD CPX 0AA55H Page 3 of 40 MON68 LST 2 11 2558 17 06 0229 CO5F 27 18 BEQ SKIP_COLD 0230 C061 0231 C061 COLD START 0232 C061 0233 C061 CE AA 55 LDX 0AA55H 0234 C064 DF AB STX COLD 0235 C066 0236 C066 86 00 LDAA 0 0237 C068 97 CA STAA MUTE BEEP IS ON 0238 C06A 0239 C06A 86 FF LDAA 0FFH 0240 CO6C B7 80 00 STAA 1 0241 0242 0243 CO6F BD C9 AD JSR BEEP 0244 C072 0245 C072 BD CB 43 JSR DISPLAY START MSG 0246 COTS 0247 COTS 0248 C075 4F CLRA 0249 C076 B7 80 00 STAA 1 0250 C079 0251 C079 0252 C079 0253 C079 SKIP COLD 0254 C079 0255 C079 LDX TEXT3 0256 C079 7 JSR PSTR PRINT TEXT3 TESTING 2400 TERMINAL 0257 079 0258 079 0259 079 0260 C079 7E C9 A2 JMP MAIN 0261 C07C 0262 C07C 0263 C07C 0264 CO7C 2400 BIT S SOFTWARE UART 0265 C07C one bit delay for 2400 bit s UART 0266 COTE 0
9. 18 DUMP MEMORY CONTENT 556950 21 EXPANSION BUS HEADER 22 MM 23 10ms TICK 2 04200 lt 2 0422 a ska 23 5232 24 DATA FRAME for UART 25 CONNECTING 25 LOGIC PROBE POWER SUPPLY 4 26 HARDWARE SCHEMATIC 27 PCB LAYOUT 31 MONITOR PROGRAM 35 OVERVIEW The 6802 Microprocessor kit is a new design single board computer using the early 1976 Motorola 6802 microprocessor This single board computer is a basic learning tool for programming the 6802 with low level instructions hex code The board has hex keypad and 7 segment display for entering the instruction hex code and test it directly Students will learn basic of the computer hardware and software of the 6802 easily The 6802 is software compatible with the 6800 microprocessor The instructions and addressing modes of 6802 microprocessor are good for learning the basic of microprocessor operations FUNCTIONAL BLOCK DIAGRAM Brownout reset Expansion
10. 64kB Memory Memory mapped I O ee System RAM 8000H GPIO1 0200H 8001H PORTO Ser RAM 80004 PORTI 8000H 8003H PORT2 9000H Input Output 9000H LCD command WR C000H 16kB Monitor ROM SUME LEGI data MTS 9002H LCD command RD 9003H LCD data RD INTERRUPT and RESET VECTORS The vectors for RESET and Interrupts are shown below Vector Description MS LS FFF8 FFF9 IRQ FFFA Software Interrupt FFFC FFFD NMI FFFE FFFF RESET Software interrupt vector is for SWI instruction Hex code for SWI instruction is 3FH User can put 3FH SWI instruction at the end of user program It will generate interrupt process return to the monitor program that saves CPU registers to user registers We can examine the program running easily NMI is reserved for Single Step running When press STEP key the NMI interrupt will be generated after user instruction was executed The service routine is the same as software interrupt saving CPU registers to user registers for later checking IRQ is prepared for user interrupt experiment The RAM vector 00F8H is put the IRQ vector in ROM CPU will jump to location 00F8H User can place the service routine for 9 IRQ at that location NOT THE VECTOR ITSELF See the program example of using IRQ in the 6802 Programming Book GETTING STARTED The kit accepts DC power supply with minimum voltage 7 5V It draws DC current
11. 1147 C43D 1148 C43D BD C1 JSR DATA DISPLAY 1149 C440 39 RTS 1150 C441 1151 c441 1152 c441 1153 c441 1154 C441 KEY PC SET CURRENT USER ADDRESS 1155 c441 1156 C441 86 02 KEY PC LDAA 2 1157 C443 97 94 STAA STATE STAATE 2 FOR DATA MODE 1158 C445 1159 C445 86 00 LDAA 0 1160 C447 97 95 STAA ZERO FLAG 1161 C449 1162 C449 96 98 DAA USER PC 1163 C44B 97 96 STAA DISPLAY 1164 C44D 96 99 DAA USER PC41 1165 97 97 STAA DISPLAY 1 1166 C451 JSR READ MEMORY 1167 C451 BD C4 06 JSR STILL_DATA 1168 C454 39 RTS 1169 C455 1170 455 KEY REGISTER 1171 C455 SET STATE TO 3 FOR REGISTER INPUT WITH HEX KEY 1172 C455 1173 C455 86 03 KEY REG DAA 43 1174 C457 97 94 STAA STATE STAATE 3 FOR REGISTER DISPLAY 1175 C459 1176 C459 86 03 LDAA 3 1177 C45B 97 91 STAA BUFFER45 1178 C45D 86 8F LDAA 8FH 1179 C45F 97 90 STAA BUFFER 4 1180 C461 86 BE LDAA 0BEH 1181 C463 97 8F STAA BUFFER 3 1182 C465 86 00 LDAA 0 1183 C467 97 8E STAA BUFFER 2 1184 C469 86 00 LDAA 0 1185 C46B 97 8D STAA BUFFER 1 1186 C46D 97 8C STAA BUFFER 1187 C46F 1188 C46F 39 RTS 1189 C470 1190 C470 INCREMENT CURRENT ADDRESS BY ONE 1191 C470 1192 C470 1193 C470 96 94 KEY INC LDAA STATE 1194 C472 81 14 CMPA 420 1195 C474 26 11 BNE SKIP_INC1 1196 C476 1197 C476 7C 00 C9 INC DEMO NO 1198 C479 96 c9 DAA DEMO NO 1199 C47B 81 CMPA 410 1200 C47D 2D 04 BLT 5 INC2 1201 86 00 LDAA 0
12. MON68 LST 2 11 2558 17 06 0533 C1AB DE BO 16 0534 C1AD 0535 C1AD A6 00 LDAA 0 GET 7 SEGMENT PATTERN 0536 C1AF 0537 39 RTS 0538 0539 1 0 CONVERT BYTE 7 SEGMENT PATTERN 0540 C1BO ENTRY A 0541 CIBO EXIT DE 0542 0543 C1BO 36 BYTE_7SEG PSHA 0544 C1B1 0545 1 1 84 OF ANDA 0 0546 C1B3 BD Cl 9C JSR NIBBLE 7SEG 0547 C1B6 97 86 STAA DE 0548 C1B8 0549 C1B8 32 PULA 0550 C1B9 0551 C1B9 44 LSRA 0552 44 LSRA 0553 C1BB 44 LSRA 0554 CIBC 44 LSRA 0555 C1BD 0556 C1BD BD Cl 9 JSR NIBBLE 7SEG 0557 C1CO 97 87 STAA 1 0558 C1C2 0559 C1C2 39 RTS 0560 C1C3 0561 C1C3 0562 GIC3 CONVERT BYTE TO 7 SEGMENT PATTERN AND SAVE TO DISPLAY BUFFER DATA FI 0563 C1C3 ENTRY A 0564 C1C3 0565 306 DATA DISPLAY PSHA SAVE ACCUMULATOR 0566 1 4 BD Cl BO JSR BYTE 7SEG 0567 C1C7 96 86 DAA DE 0568 1 9 91 STAA BUFFER 0569 C1CB 96 87 DAA DE 1 0570 C1CD 97 8D STAA BUFFER 1 0571 C1CF 32 PULA 0572 1 0 39 RTS 0573 cipi 0574 C1D1 CONVERT 16 BIT ADDRESS IN HL AND SAVE IT TO ADDRESS FILED DISPLAY BU 0575 C1D1 ENTRY HL 0576 C1D1 0577 C1D1 ADDRESS_DISPLAY 0578 C1D1 0579 1 96 84 LDAA HL 0580 C1D3 BD C1 BO JSR BYTE 7SEG 0581 C1D6 96 86 DAA DE 0582 C1D8 97 90 STAA BUFFER 4 0583 96 87 DAA DE 1 0584 97 91 STAA 5 0585 CIDE 96 85 LDAA HL 1 0586 C1EO BD BO JSR BYTE_7SEG 0587 C1E3 96 86 DAA DE 0588 1 5 97 STAA BUFFER
13. The test code has only two instructions The first instruction has two bytes machine code C6 and 01 The second instruction has three bytes F7 80 and 00 Enter the hex code to memory from 0200 to 0204 Then press PC and execute the instruction with single step by pressing key STEP The 2 press STEP key that executes instruction STAB 8000 will make the GPIO1 LED showing the contents of register B Try change the load value to register B and test the code Another example is with JUMP instruction The JUMP instruction will change the Program Counter to 0200 to repeat program running Now we use instruction that increments the Accumulator A After incrementing we write register A to location of GPIO1 at 8000H And with JMP LOOP instruction the program will be repeated 17 Address code Label Instruction comment 0200 4C LOOP INCA Increment Accumulator A 0201 B7 80 00 STAA 8000 Write A to GPIO1 8000H 0204 7E 02 00 JMP LOOP Jump back to loop Again enter the hex code to memory and test it with single step Now press key STEP and key REP together Every time when instruction STAA 8000 was executed did you see the binary number counting up Note the JUMP instruction has 3 bytes hex code but the BRA instruction has only 2 bytes CONNECTING 6802 KIT TO TERMINAL For LOAD key we can connect the 6802 kit to a terminal by RS232C cross cable You may download free terminal program teraterm
14. 1 Oy C0 O O O OO O S OO OO OOOO OOOO OO CO OOO C3 CO OOO OO C2 C2 OO OOO OO OO OO OO OOOO OKO OTATOU e C020 rS C O1 BAB COO COO GO OO OAD OAD OBO 0B2 0B2 0B4 084 0B6 0C6 0C7 0C9 OCA OCB OCC OCC OCC OCD OCF 000 0 1 0 1 0 2 003 003 003 command_read data_read EQU 9002H EQU 9003H page zero register definition LOCATION 00 7F ARE 128 BYTES FOR USER PROGRAM USI DSEG ORG 80H zero page memory definitions for monitor use REG_E BLOCK 1 REG D BLOCK 1 REG B BLOCK 1 REG C BLOCK 1 HL BLOCK 2 84H 1 85H H DE BLOCK 2 REG A BLOCK 1 ERROR BLOCK 1 ERROR FLAG FOR INTEL HEX FILE DOWNLOADINC BCC BLOCK 2 BYTE CHECK SUM BUFFER BLOCK 6 8BH 90H PAGE ZERO DISPLAY BUFFER INVALID BLOCK 1 INVALID KEY HAS BEEN PRESSED FLAG BIT 0 VALID 1 INVALID KEY BLOCK 1 STATE BLOCK 1
15. 93 90 BF 90 8F 8F UJ oo 96 97 85 STAA ZERO_FLAG STILL_ADDRESS JSR READ_MEMORY LDAA BUFFER 5 ORAA 40H STAA BUFFER 5 LDAA BUFFER 4 ORAA 40H STAA BUFFER 4 LDAA BUFFER 3 ORAA 40H STAA BUFFER 3 2 STAA BUFFER 2 LDAA BUFFER 1 STAA BUFFER 1 LDAA BUFFER ANDA 40H STAA BUFFER RTS KEY_DATA LDAA 2 STAA STATE STATE 2 FOR DATA MODE LDAA 0 STAA ZERO_FLAG STILL_DATA JSR READ_MEMORY LDAA BUFFER 5 ANDA 40H STAA BUFFER 5 LDAA BUFFER 4 ANDA 40H STAA BUFFER 4 LDAA BUFFER 3 STAA BUFFER 3 STAA BUFFER 2 LDAA BUFFER 1 ORAA 40H STAA BUFFER 1 LDAA BUFFER ORAA 40H STAA BUFFER READ MEMORY READ_MEMORY LDAA DISPLAY STAA HL LDAA DISPLAY 1 STAA HL 1 Page 15 of 40 MON68 LST 2 11 2558 17 1141 C436 BD Cl D1 JSR ADDRESS DISPLAY 1142 439 1143 C439 DE 84 LDX HL 1144 C43B 00 LDAA 0 X 1145 43 1146 8430 STAA
16. HARDWARE FEATURES The hardware features CPU Motorola 6802 NMOS 8 bit Microprocessor 1MHz clock Memory 32kB RAM 16kB EPROM Memory and I O Decoder chip Programmable Logic Device GAL16V8D Display high brightness 6 digit 7 segment LED Keyboard 36 keys 5232 port software controlled UART 2400 bit s 8n1 Debugging LED 8 bit GPIO1 LED at location 8000 Tick 10ms tick produced by 89C2051 for time trigger experiment Text LCD interface direct CPU bus interface text LCD Brownout reset KIA7042 reset chip for power brownout reset Expansion header 40 pin header MONITOR PROGRAM FEATURES The MONITOR program features Simple hex code entering Insert and Delete byte Single step running e User registers ACCA IX SP and Condition code registers for storing CPU status after program execution Page zero memory display Easy offset byte calculation for Relative addressing mode Copy block of memory Motorola s record or Intel hex file downloading Memory dump Beep ON OFF Demo programs MEMORY AND I O MAPS The first 32kB is RAM space from 0000 7FFFH Zero page is location 00 FFH User Stack space is set at 7F00H System Stack is set at 7FFFH User space is from 200H to 7000H The 6802 CPU uses memory space from 8000H BFFFH for I O ports Available user I O for lab experiment is AOOOH BFFFH The monitor ROM is located at COOOH FFFFH
17. SKIP_DIS JSR DEBOUNCE BRA SCANKEY PLAY5 IF REPE DISPLAY4 LDAA 20 STAA REPDE LAY JSR 5 1 DEC RE PDELAY BNE DISPLAY4 KEY_RELE ASED LDX 0 STX INVALID UNTIL_PR JSR SCA ESS 1 AT KEY WAS PRESSED SLOW DOWN IT THEN REPEAT KEY PRESS RESET INVALID FLAG Page 32 of 40 MO 2 11 2558 17 06 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 25 25 25 25 96 93 81 27 BD C9 BD C8 DF BO 9B Bl 97 Bl 86 00 99 BO 97 BO A6 00 39 BD C9 BD C3 BD C9 20 F5 B6 80 84 40 27 1D 96 CA 81 00 2101 CE 00 86 3F B7 80 BD C9 86 BF B7 80 BD C9 39 6 52 DA 54 03 AD 01 35 02 02 02 D2
18. header v 6802 16kB Microprocessor Monitor ROM 1MHz oscillator PLD 100Hz Tick Decoder Generator 6 Digit High brightness 2400 Bit s VT100 7 segment LED software UART Terminal Text LCD interface bus 8 bit Debugging LED 36 key for HEX code and Function keys Notes 1 UART is software control for low speed asynchronous communication 2 The kit has 8 bit LCD module interfacing bus 3 100Hz Tick generator is for interrupt experiment 4 Ports for display and keypad interfacing were built with discrete logic IC chips 5 Memory and Port decoders are made with Programmable Logic Device PLD 4 HARDWARE LAYOUT RS232C connector DB9 male DC jack 9VDC 5 O 62256 SRAM v2 1 ter gt a n gt a 7805 27C256 EPROM n 9 T 411 74 514 Riz m cio D4 EX 5 m Lil 74HC3573 B7 B BS 4 3 B2 C17 05 06 07 08 09 DIO 012 GPIO1 80001 013 20 pin Text header Selector for 10ms tick or IRQ key Important Notes 1 Plugging or removing the LCD module must be done when the kit is powered off 2 AC adapter should provide approx 9VDC higher voltage will cause the voltage regulator chip becomes hot 3 The kit has diode protection for wrong polarity of adapter j
19. 151 v a gery P 4 S 4 7 PAS 1 4 330 8 PAG 13 514 515 516 S17 518 SPEAKER O 519 45V T 4 2 4 RIO wes 4 i8 vec 520 8H 522 523 524 25 10 PORTO X 82 20 9 E gt 74 541 gt 1 T 1 10k RESISTOR SIP9 11 vec _ 100 2 1 9 526 527 528 529 4 49 T tT 4 wag on 45V vec 920 331 vec 4 4 Designed by Wichit Sirichote kswichit kmitl ac Title 6802 MICROPROCESSOR KIT Size Document Number Rev B lt Doc gt 1 Date Saturday September 26 2015 Sheet 2 of 3 1 DO 1 Di D3 02 D3 04 05 DS D6 U14 D7 D6 D7 D H8 2D 20 30 HE 4D 4Q 18 5D sar 6D 53 7D 70 2 8D GPIO1 gt LE RESET OE 05 07 08 09 014 012 74 573 4 w R8 ROR ROR D13 1N5236A 16x2 text LCD interface JR1 7 L7 RI2 49 8 bit Binary display LED x8 16 15 18 DG 12 05 5V 12 gt 11 D4 n D3 10 D2 TL 100 10V 104 013 9 8 DT C12 8 00 6 5 R W
20. 2 11 2558 17 06 ld p Bj B B BB B B B B EB B p B PPE PPE p i p i p i p i B i i i p p E p i p 68 LST 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 C4 00 C4 01 4 02 4 03 4 04 4 05 4 06 4 07 4 08 4 09 4 10 4 11 C4 12 C4 13 C4 14 C41 15 C4 16 C4 17 C41 18 C4 19 C4 120 C4 121 4 122 4 123 4 124 4 125 4 126 4 521 4 128 4 129 4 130 4 131 4 132 4 33 C4 134 4 E35 C4 136 C4 37 C4 138 C4 5339 C4 40 C4 D4 D6 SE BD 96 8A 97 96 97 96 8A 97 96 8A o ot WWWNHNNNNNN DN AN ONEKA J 97 96 9 96 84 97 39 86 97 86 97 BD 96 84 97 96 84 97 96 84 96 84 96 8A 97 96 8A 97 39 96 96 97 E UJ 02 94 00 95 4 91
21. 2917 7 2918 7 2919 7 2920 7 2921 CBA7 0D0A50726573DOWNLOAD 13 10 Press key GO 0 2921 CBAD 73206B657920474F00 2922 CBB6 0D0A436C6963DOWNLOAD2 BYTE 13 10 Click File gt Send File gt 0 2922 CBBC 6B2046696C653E53656E642046696C653E2E2E00 2923 ODOA4E6F2065COMPLETE BYTE 13 10 No error 0 2923 CBD6 72726F722E2E00 2924 CBDD 0D0A43686563ERROR FOUND BYTE 13 10 Checksum error 0 2924 6B73756D206572726F722100 2925 CBEF 2926 CBEF 00 START_MSG 0 2927 00 BYTE 0 2928 CBF1 9B BYTE 9BH 2929 CBF2 BD BYTE OBDH 2930 CBF3 BF BYTE OBFH 2931 4 AF BYTE OAFH 2932 CBF5 00 BYTE 0 2933 CBF6 00 BYTE 0 2934 CBF7 00 BYTE 0 2935 CBF8 00 BYTE 0 2936 CBF9 00 BYTE 0 2937 CBFA 00 BYTE 0 2938 CBFB 2939 CBFB 2940 CBFB BD SEGTA BYTE OBDH 2941 CBFC 30 BYTE SIND 2942 CBFD 9B BYTE O9BH 2943 CBFE 2944 36 BYTE 036H pas 2945 00 AE BYTE ole 2946 1 BYTE OAFH 2947 CCO2 38 BYTE 038H 2948 BYTE 2949 CC04 BE BYTE OBEH 9 2950 CC05 3F BYTE UAM 2951 06 A7 BYTE OA7H POPE 2952 07 8D BYTE O8DH 2953 B3 BYTE OB3H 2954 9 8F BYTE PUE 2955 CCOA OF BYTE OOFH POLES 2956 CCOB 2957 CCOB Page 39 of 40
22. 00 5 5 9 06 LDAA BNE OUT_OFF_RANGE STORE OFFSET TO THE 2ND IN_RANGE LDX START_ADDRESS INX LDAA OFFSET_BYTE 1 STAA 0 X STX DISPLAY JSR STILL_DATA LDAA 2 STAA STATE RTS OUT_OFF_RANGE LDAA 2 STAA BUFFER 5 LDAA 8FH FFER 4 D D Ww C FFER 3 E D D 2 D D ae STAA BUFFER 1 STAA BUFFER STAA STATE RTS SERVICE KEY GO FOR COPY KEY GO COPY MEMORY LDX DISPLAY STX DESTINATIO COPY1 LDX START_ADDR LDAA 0 X DX DESTINATIO STAA 0 X DX DESTINATIO INX STX DESTINATIO LDX START ADDR INX STX START ADDR ESS ESS ESS CPX END ADDRESS BNE COPY1 STORE LAST BYTE AS W ELL LDX START_ADDR LDAA 0 X ESS E OF BRANCH INSTRUCTION Page 21 of 40 MON68 LST 2 11 2558 17 06 1597 C601 DE A5 LDX DESTINATION 1598 C603 A7 00 STAA 0 X 1599 C605 1600 C605 1601 C605 1602 C605 BD C4 06 JS
23. 0969 C35D 0970 C35D 0971 C35D 0972 C35D 0973 C35D 0974 C35D 0975 C35D 0976 C35D 0977 C35D 0978 C35D 0979 C35D 0980 C35D 0981 C35D 0982 C35D FUNCTION KEY FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0983 C35D 0984 C35D FUNCTION_KEY 0985 C35D 0986 C35D 81 19 CMPA 19H KEY ADDR 0987 C35F 26 03 BNE CHK_FUNC1 0988 C361 7E C3 CE JMP KEY_ADDR Page 13 of 40 MON68 LST 2 11 2558 17 06 0989 C364 0990 C364 81 14 CHK_FUNC1 CMPA 14H KEY DATA 0991 C366 26 03 BNE CHK_FUNC2 0992 C368 7E C3 FE JMP KEY DATA 0993 C36B 0994 C36B 0995 C36B 0996 C36B 81 10 CHK FUNC2 CMPA 10H KEY 0997 C36D 26 03 BNE CHK FUNC3 0998 C36F 7E C4 70 JMP KEY INC 0999 C372 1000 C372 81 11 CHK FUNC3 CMPA 11H KEY 1001 C374 26 03 BNE CHK FUNCA 1002 C376 C5 JMP KEY DEC 1003 C379 1004 C379 81 18 FUNCA CMPA 18H 1005 C37B 26 03 BNE 5 1006 C37D 7E C4 41 JMP KEY PC 1007 C380 1008 C380 81 1B CHK_FUNC5 1BH 1009 C382 26 03 BNE CHK_FUNC6 1010 C384 7E C4 55 JMP KEY REG 1011 C387 1012 C387 81 12 FUNC6 12H 1013 C389 26 03
24. 2044 2045 C7E3 86 BD ZERO 2046 C7E5 97 8F STAA BUFFER 3 2047 C7E7 20 04 BRA NEXT BIT2 2048 C7E9 2049 C7E9 86 30 SHOW BIT5 LDAA 2050 C7EB 97 8F STAA BUFFER 3 2051 C7ED 2052 C7ED 86 30 NEXT BIT2 LDAA Page 27 of 40 lt o BO BO BO BO BO BO BO PO 68 LST 2 11 2558 17 06 053 C7EF 97 90 STAA BUFFER 4 054 CIEL 97 91 STAA BUFFER 5 055 056 86 8D LDAA 8DH STORE CH CONDITION CODE HIGH NIBBLE 057 C7F5 97 8D STAA BUFFER 1 058 C7F7 86 37 LDAA 37H 059 C7F9 97 8C STAA BUFFER 060 C7FB 061 C7FB 062 C7FB 39 RTS 063 C7FC 064 C7FC 065 C7FC 81 05 CHK REG5 CMPA 5 066 C7FE 26 49 BNE CHK REG6 067 C800 068 C800 CONDITION CODE DISPLAY FOR LOW NIBBLE NZVC 069 C800 070 C800 96 USER P 071 C802 84 80 ANDA 80 072 C804 26 06 BN
25. 8D 06 D6 D6 NORMAL INCREMENT CURRENT ADDRESS BY ONE BEQ SEND PA 30 EQ COPY KEY PRESSED 31 EQ COPY_KEY_PRESSED1 LDAA 2 STAA STATE STATE 2 FOR DATA MODE LDAA 0 STAA ZERO_FLAG LDX DISPLAY INX STX DISPLAY JSR READ_MEMORY JSR STILL_DATA RTS COPY_KEY_PRESSED1 Save ENDING address LDX DISPLAY STX END_ADDRESS LDAA 32 STATE 32 FOR KEY GO COPYING MEMORY STAA STATE LDAA 0 STAA ZERO_FLAG JSR STILL_ADDRESS LDAA 0B3H STAA BUFFER LDAA 2 STAA BUFFER 1 RTS COPY_KEY_PRESSED Save start address LDX DISPLAY STX START_ADDRESS LDAA 31 STAA STATE LDAA 0 STAA ZERO_FLAG JSR STILL_ADDRESS LDAA 08FH STAA BUFFER LDAA 2 STAA BUFFER 1 RTS REL_KEY_PRESSED Page 17 of 40 MON68 LST 2 11 2558 17 06 1293 C4DA Save start address 1294 C4DA 1295 C4DA 1296 C4DA DE 96 LDX DISPLAY 1297 C4DC DF A3 STX START_ADDRESS 1298 C4DE 1299 C4DE 86 06 LDAA 6 1300 C4E 97 94 STAA STATE 1301 C4E2 86 00 LDAA 0 1302 4 4 97 95 STAA ZERO_FLAG 1
26. lt LCD_E 015 KA VBI V 3 10uF 4 cr 5 amp 2 5 2 9 C14 C2 5 ol C15 9 r 14 11 CONN RECT 16 45V Sc TUN lt d 13 RIIN RIOUT lt RXD 1 mm 1 RIs SUB D 9 cross cable MAX232A 10K 5 C19 100nF VC a 45V vec lt signed by Wichit Sirichote kswichit kmitl Title 6802 MICROPROCESSOR KIT Size Document Number B lt Doc gt 1 Date Saturday September 26 2015 3 of Sheet 1 PARTS LIST Semiconductors UI 27C256 32kB EPROM 02 62256 32kB SRAM U3 AT89C2051 2kB Microcontroller U4 GALI16V8D PLD 74HC164 shift register U7 741 514 hex inverter U8 1 7805 voltage reguator U10 U9 LTC 4727JR common cathode LED U11 U12 U14 74HC573 8 bit Latch 013 74HC541 tri state buffer 015 232 RS232 level converter U16 6802 Motorola 8 bit Microprocessor U17 CD4076B D FF D2 TVSSV SODI23 D3 1N4007 rectifier diode D4 TONE LED D13 1 5236 zener diode Ql BC327 PNP transistor Q2 7045 reset chip Resistors all resistors are 1 8W 5 R1 680 R2 R3 R5 1k R8 R4 4 7k R13 R6 10k R11 R7 10k RESISTOR SIP 9 R9 330 R12 R10 10 Capacitors C1 22uF electrolytic C2 C13 C14 C15 C16 C17 10uF electrolytic C3 10uF 16V electrolytic C4 1000uF25V el
27. 1202 C481 97 C9 STAA DEMO NO 1203 C483 1204 C483 1205 C483 BD SKIP INC2 JSR DATA DISPLAY 1206 C486 39 RTS 1207 C487 1208 C487 1209 C487 1210 C487 1211 C487 1212 C487 96 94 SKIP INC1 LDAA STATE 1213 C489 81 05 CMPA 5 1214 C48B 27 4D BEQ REL KEY PRESSED 1215 C48D 1216 C48D 81 07 CMPA 7 Page 16 of 40 MON68 LST 2 11 2558 17 06 12557 C4 1218 C4 1219 C4 1220 C4 1221 4 1222 4 1223 4 1224 4 1225 C4 1226 C4 1227 C4 1228 C4 1229 C4 1230 C4 1231 C4 1232 C4 1233 C4 1234 C4 1235 C4 1236 C4 1237 C4 1238 C4 1239 C4 1240 C4 1241 C4 1242 C4 1243 C4 1244 C4 1245 C4 1246 C4 1247 C4 1248 C4 1249 C4 1250 C4 1251 C4 1252 C4 1253 C4 1254 C4 1255 C4 1256 C4 1251 4 1258 4 1259 4 1260 4 1261 4 1262 4 1263 4 1264 4 1265 4 1266 4 1267 4 1268 4 1269 4 1270 4 1271 4 1272 4 T273 C4 1274 C4 T2305 C4 1276 C4 1277 C4 1278 C4 1279 C4 1280 C4 1281 C4 1282 C4 1283 C4 1284 C4 1285 C4 1286 C4 1287 C4 1288 C4 1289 C4 1290 C4 1291 C4 1292 C4 AA AA AA AA AC AE AE BO B2 B4 6 6 B9 BB BD BF Cl C2 C2 C2 52 52 52 52 52 C4 C6 C6 C8 CA D1 D3 D5 D7 D9 DA DA DA DA DA 27 81 27 81 27 86 97 86 987 1 11 02 94 00 95 96 96 C4 96 A9 20 94 00 95 B3 8C 02 8D 96 A3 1F 94 00 95 8C 02
28. 18 of 40 MON68 LST 2 11 2558 17 06 1369 52 09 DEX 1370 C52D DF 96 STX DISPLAY 1371 52 JSR READ MEMORY 1372 C52F BD C4 06 JSR STILL_DATA 1373 C532 39 RTS 1374 C533 1375 C533 1376 C533 KEY GO WRITE USER REGISTERS TO STACK AND USE RTI TO JUMP TO USER PRC 1377 C533 1378 C533 1379 C533 KEY_GO 1380 C533 96 94 LDAA STATE 1381 C535 81 20 CMPA 32 1382 C537 27 38 BEQ GO_STATE32 GO FOR COPYING DATA 1383 C539 1384 C539 1385 C539 81 06 CMPA 6 1386 C53B 27 51 BEQ GO_STATE6 1387 C53D 1388 C53D 81 08 CMPA 8 1389 C53F 27 34 BEQ GO STATES 1390 C541 1391 C541 81 OA CMPA 10 1392 C543 27 31 BEQ SHORT GO STATE10 1393 C545 1394 C545 81 14 CMPA 20 1395 c547 26 31 BNE 5 01 1396 549 1397 C549 EXECUTE KEY GO STATE 20 DEMO PROGRAMS 1398 C549 1399 C549 96 C9 DAA DEMO NO CHECK SUB FUNCTION FOR STATE 20 1400 C54B 81 04 CMPA 44 1401 C54D 26 04 BNE DEMO2 1402 C54F BD CA 81 JSR DEMO LCD 1403 C552 39 RTS 1404 C553 1405 C553 81 01 DEMO2 1 1406 C555 26 04 BNE DEMO3 1407 C557 BD CA 98 JSR DEMO_LED 1408 C55A 39 RTS 1409 C55B 1410 C55B 81 00 DEMO3 CMPA 0 1411 C55D 26 03 BNE DEMO4 1412 C55F 7E CA AA JMP RUN_DOT 1413 562 1414 562 81 02 DEMO4 CMP
29. 2248 C8D1 97 8C STAA BUFFER 2249 C8D3 86 02 LDAA 2 22 50 C8D5 97 8D STAA BUFFER 1 2251 C8D7 39 RTS 2252 C8D8 2253 C8D8 2254 C8D8 2255 C8D8 2256 C8D8 2251 C8D8 39 HEX_SEND_FILE RTS 2258 C8D9 2259 C8D9 39 HEX_SEND_FILE2 RTS 2260 C8DA 2261 C8DA 2262 C8DA 2263 C8DA 2264 C8DA 2265 C8DA 2266 C8DA 2267 C8DA SCAN DISPLAY AND KEYBOARD 2268 C8DA ENTRY DISPLAY BUFFER IN PAGE 0 2269 C8DA EXIT KEY 1 NO KEY PRESSED 2270 C8DA KEY gt 0 KEY POSITION 2271 C8DA REGSITERS USED X A Y 2212 C8DA 2273 C8DA 5 1 2274 C8DA 00 8 LDX BUFFER 22515 C8DD 2276 C8DD 86 00 SCAN2 LDAA 0 2277 C8DF 97 83 STAA REG C 2278 2279 C8E1 86 FF LDAA 4 1 2280 C8E3 97 93 STAA KEY Page 30 of 40 MON68 LST 2 11 2558 17 06 2281 C8E5 2282 C8E5 86 01 LDAA 1 2283 C8E7 97 80 STAA REG_E 2284 C8E 2285 C8E9 86 06 LDAA 6 2286 C8EB 97 84 STAA HL 2287 C8ED 2288 C8ED to the active column 2289 C8ED 96 80 KCOL REG E 2290 C8EF 2291 C8EF 88 FF EORA 0FFH COMPLEMENT IT 2292 C8F1 2293 C8F1 84 BF ANDA 0 MUST BE LOW FOR BREAK 2294 2295 C8F3 B7 80 02 STAA DIGIT 2296 C8F6 2297 C8F6 A6 00 LDAA 0 X 2298 C8F8 B7 80 03 STAA SEG7 2299 C8FB 2300 C8FB automatic adjust for 1 3 segment display 2301
30. 2990 CC27 17 K1C BYTE 17H DEL 2991 CC28 1D K1D BYTE 1DH RELA 2992 29 15 K1E BYTE 15H SBR 2993 CC2A 11 BYTE 11H 2994 CC2B 14 K20 BYTE 14H DATA 2995 CC2C 10 K21 BYTE 10H 2996 CC2D 16 K22 BYTE 16H INS 2997 CC2E 1C K23 BYTE 1CH MOVE 2998 CC2F 2999 3000 2 3001 2 VECTOR NMI RESET AND IRQ 3002 2 3003 2 3004 ORG OFFF8H 3005 FFF8 3006 FFF8 00 F8 0 0F8H RELOCATE IRQ TO RAM VECTOR AT OOF8H 3007 FFFA 3008 FFFA 3009 FFFA ORG OFFFAH SWI VECTOR 3010 FFFA 3011 FFFA C6 5C BYTE SWI SERVICE 58 SWI SERVICES amp SFE 3012 FFFC 3013 FFFC 3014 FFFC ORG OFFFCH NMI VECTOR 3015 FFFC 3016 FFFC C6 55 5 gt gt 8 SERVICE amp SFF 3017 FFFE 3018 FFFE 3019 FFFE ORG OFFFEH 3020 FFFE 3021 FFFE CO 00 5 0 00 RESTART 3022 0000 3023 0000 3024 0000 3025 0000 3026 0000 3027 0000 3028 0000 3029 0000 tasm Number of errors 0 Page 40 of 40 NOTE
31. 4 bit of the Condition Code Register for Half carry flag and Interrupt flag 13 Press key 5 for lower half 4 bit of the Condition Code Register for Negative Zero Overflow and Carry flags M 11 LL a Press key 6 the 16 bit data at location 00 and 01 will show Shown 16 bit data 174C 17 is MS byte stored at address 0000 AC is LS byte stored at address 0001 if y Ou Lii a L OLI 4 16 is MS byte stored at address 0002 4A is LS byte stored at address 0003 OC is MS byte stored at address 0004 ap q lt 4 82 is LS byte stored at address 0005 84 is MS byte stored at address 0006 Put ri Li 54 is LS byte stored at address 0007 These user registers will be useful for program testing The page zero memory display each 16 bit will also be useful for checking Arithmetic and logical operations We will see the examples in the programming book TEST CODE RUNNING WITH SINGLE STEPPING Now get back to the program we have just entered Let us take a look again Address code Label Instruction comment 0200 86 01 MAIN LDAA 1 Load register A with 1 0202 B7 80 00 STAA 8000 Write A to GPIO1 8000H We will try test the program using single step running 14 Step 1 Press
32. And the following bytes will be entered at 0201 0202 0203 0204 Let us see how to enter these codes into the memory Step 1 Press key PC the display will show current memory address and its contents PW LI miui I Shown the location 0200 has data A4 There are small dots at the data field indicating the active field ready for modifying the hex contents Step 2 Press key 8 and key 6 The new hex code 86 will be entered to the location 0200 Oe Step 3 Press key to increment the location from 0200 to 0201 Then enter hex key 1 mor P LIE LOL Ly 12 Repeat Step 3 until completed for the last location We can verify the hex code with key or key To change the display location press key ADDR The dots will move to Address field Any hex key pressed will change the address USER REGISTERS DISPLAY Before we test the code running let us see how to use the user registers User registers are the memory block in RAM that used to save the contents of CPU registers after completing a given program running We can examine the user registers for checking our code running then Press key REG then press key 0 it will show Accumulator A has 14 Lui tu PIL Lge TJA 1 Press key 1 for Accumulator B rnm Press key 2 for Index register shown IX has 16 bit data COEF Press key 4 for upper half
33. BNE CHK FUNC7 1014 C38B 7E C5 33 JMP KEY GO 1015 C38E 1016 C38E 81 1D FUNC7 41DH 1017 C390 26 03 BNE FUNC8 1018 C392 7E C6 79 JMP KEY REL 1019 C395 1020 C395 81 1F FUNC8 1FH 1021 C397 26 03 BNE CHK FUNC9 1022 C399 C6 8D JMP KEY DOWNLOAD HEX 1023 C39C 1024 C39C 81 13 CHK_FUNC9 CMPA 13H 1025 C39E 26 03 BNE CHK_FUNC10 1026 C3A0 7E C6 36 JMP KEY STEP 1027 C3A3 1028 C3A3 1029 C3A3 81 16 FUNC10 16H 1030 C3A5 26 03 BNE CHK_FUNC11 1031 C3A7 7E C6 OD JMP KEY_INS 1032 C3AA 1033 81 17 CHK_FUNC11 417H 1034 C3AC 26 03 BNE CHK_FUNC12 1035 C3AE 7E C6 26 JMP KEY DEL 1036 C3B1 1037 1 81 15 FUNC12 CMPA 158 1038 C3B3 26 03 BNE FUNC13 1039 5 C6 JMP KEY DEMO CHANGE SBR KEY TO DEMO 1040 C3B8 1041 C3B8 1042 C3B8 81 1A FUNC13 1 1043 26 03 BNE CHK_FUNC14 1044 C3BC 7E C6 FD JMP KEY MUTE TURN BEEP ON OFF 1045 C3BF 1046 81 1C FUNC14 CMPA 1CH 1047 263 BNE CHK_FUNC15 1048 C3C3 7E C7 01 JMP KEY COPY 1049 C3C6 1050 C3C6 81 1E FUNC15 1 1051 C3C8 26 03 BNE CHK_FUNC16 1052 C3CA 7E Cl 72 JMP KEY DUMP LOSS C3CD 1054 C3CD CHK_FUNC16 1055 C3CD 1056 C3CD 1057 C3CD 39 RTS 1058 C3CE 1059 C3CE 1060 C3CE 1061 86 01 KEY ADDR LDAA 41 1062 C3DO 97 94 STAA STATE STAATE 1 FOR ADDRESS MODE 1063 C3D2 1064 C3D2 86 00 LDAA 0 Page 14 of 40 lt o
34. C8FB 2302 C8FB BD C9 34 JSR AUTOBRIGHTNESS 2303 C8FE 2304 C8FE 530 2305 C8FE DELAY3 DECB 2306 C8FE BNE DELAY3 2307 C8FE 2308 C8FE 2309 C8FE 86 00 LDAA 0 TURN LED OFF 2310 C900 B7 80 03 STAA SEG7 2311 C903 2312 903 32 LDAB 50 2313 C905 5A DELAY10 DECB 2314 C906 26 FD BNE DELAY10 2315 C908 2316 C908 2317 C908 86 06 LDAA 6 2318 C90A 97 82 STAA REG B 2319 C90C 2320 C90C B6 80 01 LDAA KI 2321 C90F 2322 C90F 97 81 STAA REG D 2323 C911 2324 C911 2325 C911 74 00 81 KROW LSR REG D Rotate D 1 bit right bit 0 2326 C914 of D will be rotated into 2327 C914 25 04 BCS NOKEY carry flag 2328 C916 2329 C916 96 83 LDAA REG C 2330 9T 93 STAA KEY 2331 C91A 2332 C91A 7C 00 83 NOKEY INC REG C Increase current key code by 1 2333 C91D 2334 C91D 7A 00 82 DEC REG B 2335 C920 26 EF BNE KROW 2336 C922 2337 C922 08 INX 2338 C923 2339 C923 96 80 LDAA REG E 2340 C925 48 ASLA 2341 C926 97 80 STAA REG E 2342 C928 2343 C928 2344 C928 7A 00 84 DEC HL 2345 C92B 26 CO BNE KCOL 2346 C92D 39 RTS 2347 C92E 2348 C92E 2349 C92E C6 C8 DEBOUNCE LDAB 200 2350 C930 5A DELAY4 DECB 2351 C931 26 FD BNE DELAY4 2352 C933 39 RTS 2353 C934 2354 C934 ADJUST TIME ON IF EQUAL OR LESS THAN 3 BITS ON 2355 C934 2356 C934 AUTOBRIGHTNESS Page 31 of 40 MON68 LST 2 11 2558 17 06 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2312 2373 2374 2375 2376 2377 2378 23
35. ZERO FLAG BLOCK 1 ZERO WHEN HEX KEY PRESSED FOR ADDRESS OF DISPLAY BLOCK 2 display address USER BLOCK 2 FOR SAVING CURRENT PC ON RESET IT SETS TO USER A BLOCK 1 USER B BLOCK 1 USER IX BLOCK 2 USER SF BLOCK 2 USER STACK POINTER BLOCK 1 PROGRAM STATUS REGISTER SAVE SP BLOCK 2 SAVE SYSTE STACK START ADDRESS BLOCK 2 DESTINATIO BLOCK 2 FOR OFFSET BYTE CALCULATION OFFSET BYTE BLOCK 2 OFFSET BYTE DESTINATION START ADDRESS END ADDRESS BLOCK 2 FOR COPY MEMORY FUNCTION COLD BLOCK 2 COLD BOOT OR WARM BOOT REPDELAY BLOCK 1 DEBUG BLOCK 2 FOR PROGRAM DEBUGGING TEMP16 BLOCK 2 REGISTER 16 BITS IX2 BLOCK 2 OFFSET BLOCK 2 FOR X INDEXT REGISTER USE BIN2SEG BLOCK 16 2 ABLE FOR 4 BINARY 7 SEGMENT PATTERN FREO BLOCK 1 STORE BEEP FREQUENCY BEEP PERIOD BLOCK 2 STORE BEEP PERIOD LOAD WITH IX DEMO NO BLOCK 1 FOR DEMO 0 9 MUTE BLOCK 1 TOGGLE MUTE FOR BEEP ON OFF 0 ON COUNTER BLOCK 1 COUNTER FOR BIT 1 TEST SEC100 BLOCK SEC BLOCK MIN BLOCK HOUR BLOCK RUNSTOP BLOCK K BLOCK J BLOCK VARIABLES FOR CLOCK PROGRAM PRP RPP p ENERAL PURPOSE REGISTERS Page 2 of 40 2 11 2558 17 06 MON68 LST 0153 00D3 0154 00D3 0155 00D3 0156 C000 0157 C000 0158 C000 0159 C000 0160 C000 0161 C000 86 BF 0162
36. key PC We see that the location 0200 has 86 Oe LIL LL Step 2 Press REG key then key 0 to check the Accumulator A Lui ul PUL Lured Step 3 Press PC then STEP key The instruction LDAA 1 will be executed morta or LIL LL LI The display will show next instruction to be executed that is STAA 8000 Step 4 Let check again register A with key REG and 0 We see that now the Accumulator A has 01 Lig i Step 5 Press PC then STEP the instruction STAA 800 will be executed The display will show next instruction to be executed uu AC LLLI LL We will see the contents of Accumulator register will be stored at GPIO1 LED To get back key PC to the location 0200 press RESET key then press PC We see that the single step running is useful for learning the operation of each instruction We can check the result with user registers easily 15 HOW TO FIND OFFSET BYTE The offset byte is signed number using two s complement It is the distant in number of byte length between destination address and current Program Counter The 6802 CPU uses it for relative addressing of the Branch instructions The monitor program has function key for finding the offset byte by entering the start and destination addresses Let us see the example how to find the offset byte XX from below program This program will increment the Accumulator A
37. store it to GPIO1 LED then branch back to loop The BRA LOOP instruction has machine code 20 The 2 byte is OFFSET byte Address code Label Instruction comment 0200 4C LOOP INCA Increment Accumulator A 0201 B7 80 00 STAA 8000 Write A to GPIO1 8000H 0204 20 XX BRA LOOP Jump back to loop Suppose we have entered the hex code from beginning to the location 0204 The display will show Press GO the offset byte FA or 6 will be entered to location 0205 automatically uiu Co LLLI If we count by hand we will see that the byte length will be 6 bytes backward We can test this program with key STEP and REP together We will see binary incrementing on the GPIO1 LED The program will jump back to loop with Branch Always instruction 16 GPIO1 LED The 6802 kit provides a useful 8 bit binary display It can be used to debug the program or code running demonstration The I O address is 8000H U14 is 8 bit data latch Logic 1 at the output will make LED lit 1Q 5 74 573 B bit Binary display LED 8 The LED can be used to display accumulator register easily Let us take a look the sample code below Address code Label Instruction comment 0200 C6 01 MAIN 1 Load register B with 1 0202 F7 80 00 STAB 8000 Write to 8000H
38. 0 0019 0000 14 September 2015 provide RAM vector for IRQ at location OOF8H 0020 0000 CPU will jump to OOF8H if IRQ was triggered and Ir 0021 0000 mask has been cleared 0022 0000 0023 0000 0024 0000 16 September 2015 Testing single step with 4076 0025 0000 4 bit D FF 4076 to provide 4 bit shifting 0026 0000 use with RTI 10 cycles to make NMI service 0027 0000 0028 0000 17 September 2015 Add register display page zero display 0029 0000 0030 0000 18 September 2015 test software UART at 2400 Hz found half bit 1207 0031 0000 H or 2414Hz error 0 6 0032 0000 H test receive hex fil 0033 0000 19 September 2015 add LCD drivers to monitor program 0034 0000 begin test monitor code in RAM 4000h 0035 0000 0036 0000 20 September 2015 add Motorola 5 record for hex file download comman 0037 0000 tested with tasm 68 g2 led asm 0038 0000 0039 0000 21 September 2015 fix s record lodaing check number of byte include 0040 0000 S record loading was tested with tasm g2 option 0041 0000 0042 0000 add key mute for beep on off 0043 0000 0044 0000 prepare to backup the source code 0045 0000 0046 0000 23 September 2015 add cold warm boot setup 0047 0000 0048 0000 25 September 2015 add function copy block of memory and cold message 0049 0000 add hex dump function for displaying hex contents 0050 0000 2400 terminal 0051 0000 28 Spetember 2015 fix rep key bouncing when pressed together with k 0052
39. 0 VDD m 45V Monitor Program 5 NV U3 TP1 CPU expansion connector 5V Ut u2 0 00 0 DO voc H 0 oo Hai 1 77 gt H y AD A1 O1 D At Di D X P3i TXD LED 1 N 8 13 6 P3 2 NTO 1 2 x 3 15 D 15 D 15 TEST POINT 03 Di Ad D3 07 P1 3 5 6 16 6 16 age 16 04 18 p X M H p P3 4 T0 P1 4 H 7 ci vss NS 5 05 NS 5 05 x H 5 1 P1 5 9 4 A6 H 18 18 XT 7 XT A6 D6 D P1 6 11 E A7 o A7 07 H2 17 H2 13 AB AB E S R 15 21 zT Bt A9 4 XTAL2 17 10 A10 RESET2 1 T TICK 19 712 11 11 pri RST VPP P3 7 21 A13 2 12 A13 2 1 12 E 23 A13 AM A13 vec 25 14 14 27 _ 0 20 AT89C2051 5 22 RAM WR 22 33 WE 35 L 5V PLD decoder logic 37 270256 HM62256B 39 14 u4 E HEADER 202 2 12 E RW 3 voa 1 RAM Di 00 10 GPIO1 bes D2 c21 5 15 RAM_WR D3 55 gt 27pF A12 6 16 LCD E D4 04 Yi 4 C20 us E 05 D4 27 55 811 H Q PORTI D2 D6 PORT2 TVS5V_SOD123 D7 39 10 0 1 TEST 4 1 EX2 t ue 4 1
40. 0 CA1B BD CO 88 JSR SEND_BYTE 2581 1 2582 1 DE 2 LDX 2 2583 CA20 08 INX 2584 CA21 20 F1 BRA PSTR Page 34 of 40 MON68 LST 2 11 2558 17 06 2585 CA23 2586 CA23 2587 CA23 2588 CA23 2589 CA23 2590 CA23 2591 CA23 2592 CA23 2593 CA23 2594 CA23 2595 CA23 2596 CA23 H HARDWARE DRIVERS 2597 CA23 IEXT MODE LCD DRIVERS 2598 CA23 2599 CA23 wait until LCD ready bit set 2600 CA23 2601 CA23 2602 CA23 36 LcdReady PSHA 2603 CA24 B6 90 02 ready LDAA command read 2604 CA27 84 80 ANDA BUSY 2605 CA29 26 F9 BNE ready loop if busy flag 1 2606 CA2B 32 PULA 2607 CA2C 39 RTS 2608 CA2D 2609 CA2D 2610 CA2D LCD command write 2611 CA2D BD CA 23 JSR LcdReady 2612 CA30 B7 90 00 STAA command write 2613 CA33 39 RTS 2614 CA34 2615 CA34 2616 CA34 BD CA 23 LCD data write JSR LcdReady 2617 CA37 B7 90 01 STAA data write 2618 CA3A 39 RTS 2619 CA3B 2620 CA3B 2621 CA3B BD CA 23 screen JSR LcdReady 2622 CA3E 86 01 LDAA 41 2623 CA40 BD CA 2D JSR LCD command write 2624 CA43 39 RTS 2625 CA44 2626 CA44 86 38 InitLcd LDAA 38H 2627 CA46 BD CA 2D JSR LCD_command_write 2628 49 86 LDAA 0CH 2629 CA4B BD CA 2D JSR LCD_command_write 2630 CA4E BD CA 3B JSR clr_screen 2631 CA51 86 00 LDAA 0 2632 CA53 6 00 LDAB 0 2633 CA55 BD CA 59 JSR goto_xy 2634 CA58 39 RTS 2635 59 2636 59 2637 59 goto_xy x y 2638 59 entry A x po
41. 0000 fix ASCII printing with key DUMP 0053 0000 0054 0000 address of the I O ports 0055 0000 0056 0000 0057 0000 1 EQU 8000H 0058 0000 PORTO EQU 8001H 0059 0000 PORT1 EQU 8002H 0060 0000 PORT2 EQU 8003H 0061 0000 0062 0000 DIGIT EQU 8002H 0063 0000 SEG7 EQU 8003H 0064 0000 KI EQU 8001H 0065 0000 0066 0000 0067 0000 ONE EQU 30H 0068 0000 ZERO EQU OBDH 0069 0000 0070 0000 0071 0000 BUSY EQU 80H 0072 0000 0073 0000 below LCD s registers are mapped into memory space 0074 0000 0075 0000 command write EQU 9000H 0076 0000 data write EQU 9001H Page 1 of 40 lt o 68 LST 2 11 2558 17 06 A Qs Ol OC Ose O S 077 078 XO XO XO XO CO CO CO CO OY O1 4S O1 CU X
42. 1 CD r AT89C2051 RITU C20 e 62 R7 ais Swi TICK 74HC573 ui2 74HC573 74 541 74HC573 S uit L z D13 iku U10 us co a is BS Bs B2 BO LTC4727 f LTC4727 17 07 08 09 010 011 012 80001 530 522 523 524 825 58 51 526 SWS S31 515 516 S17 514 52 527 544 32 S9 510 511 12 S13 S7 529 2 S33 53 54 S5 56 521 520 528 519 MONITOR PROGRAM LISTINGS MON68 LST 2 11 2558 17 06 0001 0000 MONITOR PROGRAM FOR 6802 MICROPROCESSOR KIT 0002 0000 COPYRIGHT 2015 BY WICHIT SIRICHOTE 0003 0000 0004 0000 Source code was translated tasm assembler with command 0005 0000 d tasm 68 mon68 asm mon68 hex 0006 0000 0007 0000 12 September 2015 fix 16 bit variable allocation 0008 0000 HIGH BYTE DISPLAY 0009 0000 LOW BYTE DISPLAY 1 0010 0000 0011 0000 13 September 2015 test single step with 7415164 0012 0000 E 8th clock will make NMI low 0013 0000 The number of clock must be 7 after the break sigr 0014 0000 A has been set So the 8th clock will make NMI low 0015 0000 User instruction will be fetched and executed at t 0016 0000 0017 0000 Add key INS and DEL 0018 000
43. 1986 C79A 97 90 STAA BUFFER 4 1987 C79C 86 3F LDAA 3FH 1988 C79E 97 91 STAA BUFFER 5 1989 39 RTS 1990 C7A1 1991 1 81 02 CHK REG2 CMPA 2 1992 C7A3 26 10 BNE CHK_REG3 1993 5 1994 5 DE 9C LDX USER_IX 1995 STAA 1 1996 1997 7 DF 84 STX HL 1998 9 1999 C7A9 BD Cl Dl JSR ADDRESS_DISPLAY 2000 2001 86 30 LDAA 30H 2002 97 8D STAA BUFFER 1 2003 C7BO 86 26 LDAA 26H REGISTER 2004 C7B2 97 8C STAA BUFFER 2005 C7B4 39 RTS 2006 C7B5 2007 C7B5 2008 C7B5 81 03 CHK_REG3 CMPA 3 2009 C7B7 26 10 BNE CHK_REG4 2010 C7B9 2011 C7B9 DE 9E LDX USER SP 2012 C7BB STAA 1 2013 C7BB DF 84 STX HL 2014 C7BD 2015 C7BD BD Cl Dl JSR ADDRESS_DISPLAY 2016 C7CO 86 AE LDAA 0AEH 2017 1 2 2 80 STAA BUFFER 1 2018 7 4 86 1 LDAA 1FH REGISTER SP 2019 C7C6 97 8C STAA BUFFER 2020 C7C8 39 RTS 2021 C7C9 2022 C7C9 2023 C7C9 2024 C7C9 81 04 CHK_REG4 CMPA 4 2025 C7CB 26 2F BNE REG5 2026 C7CD 2027 C7CD CONDITION CODE DISPLAY FOR HIGH NIBBLE 11 1 2028 C7CD 2029 C7CD 96 AO USER P 2030 C7CF 84 10 ANDA 10 2031 C7D1 26 06 BNE SHOW 2032 C7D3 2033 C7D3 86 BD DAA ZERO 2034 C7D5 97 8E STAA BUFFER 2 2035 C7D7 20 04 BRA NEXT 2036 C7D9 2037 C7D9 86 30 SHOW 4 LDAA 2038 C7DB 97 8E STAA BUFFER 2 2039 C7DD 2040 C7DD 96 AO NEXT_BIT1 LDAA USER_P 2041 C7DF 2042 C7DF 84 20 ANDA 20 2043 C7E1 26 06 BNE SHOW BIT5
44. 2 45V RESET M La M GALT6V8D R2 Mam HALT 5 5 SM 3 Tk 4d ina 16 AT 45V 13 00 4 ESP switch IRQ 3 MR 1 A8 12 p2 Qe 10ms Tick Tk 36 RE 8 A9 Us 1 p3 6 swi NMI Aio 29 L ifa QA 3 1 TICK 1 Ait 20 A 2 9 12 R15 412 22 ac Hi pu 104 8 x E A15 A15 E Book aF 8 00 2 15 RST IRQ test switch IRQ Do Di 7 cor HG CD4076B Po D2 74 164 PM E BREAK ba De 9 due o 977 05 gt D6 R6 016 06 07 NMI 1 10k u 6802 4 3 5 014 14 741514 1 741814 d C2 RESET 9 gt a 741814 TEST POINT POWER KIA7045 RESET ESET ab 4 T u8 J1 v 02 LM2490 5 0 b3 E Dp 4 4 3 VOUT VIN 1 2 4 1 1 5V VOLTAGE DIP RESET 10uF 16V 5 5 4 amp es 55 2 1N4007 DC Input wat O luF C10 C11 C4 ox Designed by Wichit Sirichote kswichit kmitl ac th C 2015 TPS 5 E 0 1uF 0 1uF if jm user t t t E Title 6802 MICROPROCESSOR KIT 7 Size Document Number Rev B lt Doc gt Date Saturday September 26 2015 1 of 3 Sheet 1
45. 2 0589 1 7 96 87 DAA DE 1 0590 1 9 97 STAA BUFFER 3 0591 1 39 RTS 0592 C1EC 0593 C1EC 0594 C1EC CONVERT ASCII TO HEX 0595 C1EC ENTRY 0596 C1EC 0597 ELEC TO_HEX 0598 80 30 SUBA 30H 0599 81 10 CMPA 10H 0600 C1FO 2D 04 BLT ZERO NINE 0601 1 2 84 DF ANDA 11011111B 0602 1 4 80 07 SUBA 7 0603 C1F6 0604 1 6 39 ZERO_NINE RTS 0605 C1F7 0606 1 7 CONVERT TWO ASCII LETTERS SINGLE BYTE 0607 7 EXIT A 0608 1 7 8 of 40 MON68 LST 2 11 2558 17 06 0609 BD BB GET_HEX JSR CIN 0610 BD EC JSR TO_HEX 0611 CIFD 48 ASLA 0612 48 ASLA 0613 CIFF 48 ASLA 0614 C200 48 ASLA 0615 C201 0616 C201 B7 80 00 STAA 1 0617 C204 0618 C204 97 88 STAA REG A 0619 C206 0620 C206 BD CO BB JSR CI 0621 C209 BD C1 EC JSR TO HEX 0622 C20C 9A 88 ORAA REG A 0623 C20E 0624 C20E 39 RTS 0625 C20F 0626 C20F 0627 C20F 9B 8A ADD BCC ADDA BCC 0628 C211 97 8A STAA BCC 0629 C213 39 RTS 0630 C214 0631 C214 0632 C214 0633 C214 0634 C214 get hex file for both Intel and Motorola s record automatically 0635 C214 0636 214 GET_RECORD READS INTEL HEX FILE AND SAVE MEMO
46. 267 CO7C C6 3D BIT_DELAY LDAB 61 1207 TESTED WITH 55H 1MHz 4MHz xtal 0268 CO7E 5A LOOP DECB 0269 CO7F 26 FD BNE LOOP 0270 C081 39 RTS 0271 C082 0272 C082 1 5 bit delay 0273 C082 0274 C082 C6 5C 5 DELAY LDAB 92 DELAY 1 5 BIT 0275 C084 5A 1 DECB 0276 C085 26 FD BNE LOOP1 0277 C087 39 RTS 0278 C088 0279 C088 SEND ASCII LETTER TO TERMINAL 0280 C088 ENTRY A 0281 C088 0282 C088 97 80 SEND BYTE STAA REG E SAVE ACCUMULATOR 0283 C08A 0284 86 LDAA 3FH start bit is zero 0285 08 B7 80 02 STAA 1 0286 CO8F 8D EB BSR BIT_DELAY delay one bit 0287 091 0288 C091 86 08 LDAA 8 8 data bit wil be sent 0289 C093 97 81 STAA REG D 0290 C095 0291 C095 96 80 CHK BIT LDAA REG F 0292 C097 84 01 ANDA 1 0293 C099 27 07 BEQ SEND ZERO 0294 CO9B 0295 CO9B 86 BF LDAA 40BFH 0296 CO9D B7 80 02 STAA 0297 0298 20 07 BRA NEXT 0299 C0A2 0300 C0A2 0301 C0A2 86 3F SEND ZERO LDAA 43FH 0302 COA4 B7 80 02 STAA 0303 COA7 20 00 BRA NEXT BIT 0304 9 Page 4 of 40
47. 303 C4E 1304 C4E6 BD C3 D6 JSR STILL_ADDRESS 1305 C4E9 86 B3 LDAA 0B3H 1306 C4EB 97 8C STAA BUFFER 1307 C4ED 86 02 LDAA 2 1308 C4EF 97 8D STAA BUFFER t 1 1309 4 1 39 RTS 1310 C4F2 1311 C4F2 1312 C4F2 SEND_INC1 Save start address 1313 C4F2 1314 C4F2 1315 C4F2 DE 96 LDX DISPLAY 1316 C4F4 DF STX START_ADDRESS 1317 CAF6 1318 C4F6 86 08 LDAA 48 1319 C4F8 97 94 STAA STATE 1320 C4FA 86 00 LDAA 0 1321 CAEC 97 95 STAA ZERO_FLAG 1322 4 1323 4 06 JSR STILL_ADDRESS 1324 C501 86 8F LDAA 08FH 1325 C503 97 8C STAA BUFFER 1326 C505 86 02 LDAA 2 1327 C507 97 8D STAA BUFFER t 1 1328 C509 39 RTS 1329 C50A 1330 C50A 1331 C50A 1332 C50A 1333 C50A 1334 C50A 1335 C50A 1336 C50A DECREMENT CURRENT ADDRESS BY ONE 1337 C50A 1338 C50A 1339 C50A 96 94 KEY DEC LDAA STATE 1340 C50C 81 14 CMPA 420 1341 C50E 26 12 BNE SKIP_DEC1 1342 C510 1343 C510 7A 00 C9 DEC DEMO_NO 1344 C513 796 C9 DEMO 1345 515 97 9 STAA DEMO NO 1346 C517 81 00 CMPA 40 1347 C51 9 2C v 08 BGE SKIP DEC2 1348 C51B 4F CLRA 1349 C5IG 9T STAA DEMO NO 1350 C51E 1351 C51E BD C1 SKIP_DEC2 JSR DATA_DISPLAY 1352 C521 1353 C521 1354 C521 39 RTS 1355 C522 1356 C522 1357 C522 SKIP_DEC1 1358 C522 1359 C522 1360 C522 1361 C522 86 02 LDAA 2 1362 C524 97 94 STAA STATE STAATE 2 FOR DATA MODE 1363 C526 1364 C526 86 00 LDAA 0 1365 C528 91 95 STAA ZERO_FLAG 1366 C52A 1367 C52A 1368 C52A DE 96 LDX DISPLAY Page
48. 48 ASLA 1942 C762 48 ASLA 1943 C763 9A 83 ORAA REG C 1944 C765 7 00 STAA 0 X 1945 C767 1946 C767 JSR READ MEMORY 1947 C767 BD C4 06 JSR STILL DATA 1948 C76A 39 RTS 1949 C76B 1950 C76B 1951 C76B GUN NOE Ke e E C ROC Spas ole HEX REGSITERS DISPLAY Ck ckckckckockck ck ck ckck ck ck ck kk 1952 C76B 1958 C76B DISPLAY USER REGSITERS 1954 C76B 1955 C76B 96 83 HEX REG LDAA REG C 1956 C76D 81 00 CMPA 0 1957 C76F 26 16 BNE 1958 C771 1959 C771 96 9A LDAA USER A 1960 C773 STAA 1 1961 C773 BD Cl C3 JSR DATA_DISPLAY 1962 C776 1963 C776 86 3F LDAA 3FH 1964 C778 97 8E STAA BUFFER 2 1965 C77A 86 8D LDAA 8DH REGISTER ACCA 1966 77 97 STAA BUFFER 3 1967 C77E 86 8D LDAA 8DH 1968 C780 97 90 STAA BUFFER 4 1969 C782 86 3F LDAA 3FH 1970 C784 97 91 STAA BUFFER 5 1971 C786 39 RTS 1972 C787 1973 C787 CHK REGI 1974 C787 81 01 CMPA 1 1975 C789 26 16 BNE CHK REG2 1976 C78B Page 26 of 40 MON68 LST 2 11 2558 17 06 1977 C78B 96 9B USER 1978 C78D STAA 1 1979 C78D 1980 C78D BD Cl C3 JSR DATA_DISPLAY 1981 C790 86 A7 LDAA 0A7H 1982 C792 97 8E STAA BUFFER 2 1983 C794 86 8D LDAA 8DH REGISTER ACCB 1984 C796 97 8F STAA BUFFER 3 1985 C798 86 8D LDAA 8DH
49. 5 C65C 1726 C65C 1727 C65C SWI SERVICE 1728 C65C 1729 C65C i POP CC 1730 C65C POP ACCB 1731 C65C POP ACCA 1732 C65C POP IXH 1733 C65C POP IXL 1734 C65C 5 1735 C65C POP PCL 1736 C65C 1737 C65C 32 PULA 1738 C65D 97 AO STAA USER SAVE CONDITION CODE REGISTER 1739 C65F 1740 C65F 32 PULA 1741 C660 97 9B STAA USER B 1742 C662 1743 C662 32 PULA 1744 C663 97 9A STAA USER A 1745 C665 1746 C665 32 PULA 1747 C666 97 9C STAA USER IX 1748 C668 Page 23 of 40 MON68 LST 2 11 2558 17 06 1749 C668 32 PULA 1750 C669 97 9D STAA USER 1 l751 C66B 32 PULA 1752 C66C 1758 C66C 97 98 STAA USER PC 1754 C66E 32 PULA 1755 C66F 97 99 STAA USER_PC 1 1756 671 1157 C671 1758 C671 1759 C671 9F 9E STS USER SP 1760 C673 1761 C673 9E A1 LDS SAVE SP RESTORE SYSTEM STACK AND GET BACK TO MONITOR 1762 C675 1763 C675 BD C4 41 JSR KEY PC DISPLAY CURRENT PC 1764 C678 1765 C678 39 RTS 1766 C679 1767 C679 1768 C679 1769 C679 86 05 KEY REI LDAA 5 1770 C67B 97 94 STAA STATE STATE 5 FOR RELATIVE BYTE CALCULATION 1771 C67D 1772 C67D 86 00 LDAA 0 1773 6 97 95 STAA ZERO_FLAG 1774 C681 BD 06 JSR STILL_ADDRESS 1775 C684 86 AE
50. 517 C9D8 2518 C9D8 2519 C9D8 4C TEST INCA 2520 C9D9 B7 80 00 STAA 1 2521 C9DC 8D 02 BSR DELAY LED 2522 C9DE 20 F8 BRA TEST 2523 C9E 2524 C9EO CE 07 DO DELAY LED LDX 2000 2525 C9E3 09 DELAY LED1 DEX 2526 9 4 26 FD BNE DELAY LED1 2527 9 6 39 RTS 2528 C9E7 2529 C9E7 2530 C9E7 TEST BEEP 2531 C9E7 2532 9 7 86 BEEP3 LDAA 3FH 2533 9 9 B7 80 02 STAA 2534 C9EC 8D OB BSR BEEP_DELAY1 2535 C9EE 86 BF LDAA 2536 C9FO B7 80 02 STAA 2537 C9F3 8D 04 BSR BEEP_DELAY1 2538 C9F5 26 FO BNE BEEP3 2539 9 7 20 BRA BEEP3 2540 C9F9 2541 9 9 2542 9 9 C6 AO BEEP_DELAY1 LDAB 0 2543 C9FB 5A LOOP1 DECB 2544 C9FC 26 FD BNE BEEP_LOOP1 2545 C9FE 39 RTS 2546 C9FF 2547 COFF 2548 2549 C9FF 2550 C9FF CLEAR DISPLAY 2551 C9FF 2552 C9FF CE 00 32 CLR SCREEN LDX 450 2553 02 2554 02 DF BO CLR_SCREEN1 STX 16 2555 04 2556 04 86 00 LDAA 13 2557 CA06 BD CO 88 JSR SEND BYTE 2558 CA09 86 0A LDAA 410 2559 CAOB BD CO 88 JSR SEND BYTE 2560 CAOE 2561 CAOE DE BO iX 16 2562 CA10 09 DEX 2563 11 26 EF BNE CLR SCREENI 2564 CA13 39 RTS 2565 CA14 2566 CA14 2567 CA14 2568 CA14 PRINT STRING TO TERMINAL USING 2400 UART 2569 CA14 ENTRY IX POINTED TO STRING 2570 CA14 2571 14 A6 00 PSTR LDAA 0 X 2572 CA16 26 01 BNE SEND STRING 2573 CA18 2574 CA18 39 RTS 2575 CA19 2516 CA19 SEND STRING 2571 CA19 2578 CA19 DF B2 STX IX2 2579 CA1B 258
51. 603 BNE NOERROR 0686 C259 0687 C259 SHOW ERROR ON LED 0688 C259 H JSR OUT OFF RANGE 0689 C259 0690 C259 B7 80 00 STAA 1 0691 C25C 0692 C25C NOERROR 0693 C25C 39 RTS 0694 C25D 0695 C25D DATA RECORD 0696 C25D 0697 C25D BD C1 F7 JSR GET HEX 0698 C260 DE 84 LDX HL 0699 C262 A7 00 STAA 0 X WRITE TO MEMORY 0700 C264 0701 C264 BD C2 OF JSR ADD BCC 0702 C267 0703 C267 B7 80 00 STAA 0704 C26A 0705 C26A 08 INX 0706 C26B DF 84 STX HL 0707 C26D 0708 C26D 7A 00 83 DEC REG C 0709 C270 26 EB BNE DATA RECORD UNTIL C 0 0710 C272 0711 C272 96 8A LDAA BCC 0712 C274 88 FF EORA ONE S COMPLEMENT 0713 C276 4C INCA 0714 C277 TWO S COMPLEMENT 0715 C277 97 8A STAA BCC 0716 C279 0717 C279 0718 C279 BD Cl F7 JSR GET_HEX GET BYTE CHECK SUM 0719 C27C 0720 C27C 91 8A CMPA BCC COMPARE WITH BYTE CHECK SUM 0721 C27E 27 04 BEQ SKIP11 0722 C280 0723 C280 86 01 LDAA 1 0724 C282 97 89 STAA ERROR ERROR FLAG 1 0725 C284 0726 C284 0727 C284 SKIP11 0728 C284 0729 C284 7 C2 18 JMP GET_RECORD1 NEXT LINE 0730 C287 0731 C287 0732 C287 0733 C287 0734 C287 Motorola s record downloading subrouitne 0735 C287 0736 C287 51 14 0200 860187800080034920 7000926 039 30 0737 C287 0738 287 S1 0A 0218 CE13880926FD39 OD 0739 C287 0740 287 59 03 0000 0741 C287 0742 287 14 is pair count for remaining pair 0743 C287 0744 C287 86 00 GET_S_RECORD LDAA 0 0745 C289 97 89 STAA ERROR 0746 C28B 0
52. 6802 Microprocessor Kib User s Manual mL AE UE _ 9 5 7 685 B3 2 BO 07 0000 QOCC 5 D D Dio 012 _ 1480003 __ us MUTE DEL USER CN ABBE M E 500 502 STEP IRQ SP ADDR GO REP Motorola 6802 Microprocessor Kit Rev 1 1 October 2015 6802 MICROPROCESSOR KIT CONTENTS OVERVIEW 4 FUNCTIONAL BLOCK 2222 0 4 HARDWARE LAYOUT 02 20 2024 40 vea ira uus 5 KEYBOARD CAV OUT 5 HARDWARE 8 MONITOR PROGRAM 8 MEMORY AND MAP Soe vcsivisecccevcrescssstiesseutiesddccecedaieessinwedcdssnvedensvsaese 9 INTERRUPT and RESET 9 GETTING 10 HOW TO ENTER PROGRAM USING HEX 12 USER REGISTERS DISPLAY 7 nian rica retira stra rus rk aas 13 TEST CODE RUNNING WITH SINGLE STEPPING 14 HOW TO FIND OFFSET BYTE 16 17 CONNECTING KIT
53. 7 C2C9 81 OD CMPA 0DH END OF LINE 0798 C2CB 26 F9 BNE END OF RECORD 0799 C2CD 0800 C2CD B7 80 00 STAA GPIO1 0801 C2D0 0802 C2D0 96 89 LDAA _ERROR 0803 C2D2 81 01 1 0804 204 26 03 BNE NOERROR2 0805 C2D6 0806 C2D6 SHOW ERROR ON LED 0807 C2D6 JSR OUT OFF RANGE 0808 C2D6 0809 C2D6 B7 80 00 STAA GPIO1 0810 C2D9 0811 C2D9 NOERROR2 0812 C2D9 39 RTS 0813 C2DA 0814 C2DA 0815 C2DA DATA_S_RECORD 0816 C2DA 0817 C2DA BD Cl JSR GET_HEX 0818 C2DD DE 84 LDX HL 0819 C2DF A7 00 STAA 0 X WRITE TO MEMORY 0820 C2E1 0821 C2E1 BD C2 OF JSR ADD_BCC 0822 C2E4 0823 C2E4 B7 80 00 STAA GPIO1 0824 C2E7 0825 C2E7 08 INX 0826 C2E8 DF 84 STX HL 0827 C2EA 0828 C2EA 7A 00 83 DEC REG_C 0829 C2ED 26 EB BNE DATA_S_RECORD UNTIL C 0 0830 C2EF 0831 C2EF 96 8A LDAA BCC 0832 C2F1 88 EORA 0 ONE S COMPLEMENT 0833 C2F3 97 8A STAA BCC 0834 2 5 0835 2 5 0836 2 5 BD F7 JSR BYTE CHECK SUM Page 11 of 40 MON68 LST 2 11 2558 17 06 0837 C2F8 0838 C2F8 91 8A CMPA BCC COMPARE WITH BYTE CHECK SUM 0839 C2FA 27 04 BEQ SKIP21 0840 C2FC 0841 C2FC 86 01 LDAA 1 0842 C2FE 97 89 STAA ERROR ERROR FLAG 1 0843 C300 0844 C300 0845 C300 SKIP21 0846 C300 0847 C300 7E C2 8B JMP S RE
54. 747 C28B 0748 C28B 0749 C28B 5 0750 C28B 0751 C28B BD CO BB JSR CIN 0752 C28E 81 53 CMPA S 0753 C290 26 F9 BNE S RECORDI 0754 C292 0755 C292 GET S RECORD2 0756 C292 0757 C292 BD CO BB JSR CIN 0758 C295 81 31 CMPA 1 0759 C297 27 06 BEQ GET S1 0760 C299 Page 10 of 40 MON68 LST 2 11 2558 17 06 0761 C299 81 39 CMPA 9 0762 C29B 27 29 BEQ END OF RECORD 0763 C29D 0764 C29D 20 EC BRA GET 5 RECORDI 0765 C29F 0766 C29F GET S1 0767 C29F 0768 C29F 86 00 LDAA 0 0769 2 1 97 STAA BCC 0770 C2A3 0771 C2A3 BD C1 F7 JSR GET HEX 0772 C2A6 97 83 STAA REG C GET NUMBER OF pairs 0773 C2A8 0774 C2A8 BD C2 OF JSR ADD_BCC 0775 C2AB 0776 C2AB BD Cl F7 JSR GET_HEX 0777 C2AE 97 84 STAA HL 0778 2 0 0779 2 0 7 00 83 0780 2 3 0781 C2B3 BD C2 OF JSR ADD_BCC 0782 C2B6 0783 C2B6 BD Cl F7 JSR GET_HEX 0784 C2B9 97 85 STAA HL 1 GET LOAD ADDRESS 0785 C2BB 0786 C2BB 7A 00 83 DEC REG_C 0787 C2BE 0788 C2BE BD C2 OF JSR ADD_BCC 0789 C2C1 0790 2 1 7A 00 83 DEC REG C BYTE COUNT 1 FOR BCC 0791 2 4 0792 2 4 20 14 BRA DATA_S_RECORD 0793 C2C6 0794 C2C6 END OF RECORD 0795 C2C6 0796 C2C6 BD CO BB JSR CIN 079
55. 79 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 241 241 241 241 241 241 241 241 241 241 24 24 24 24 24 24 24 24 24 24 24 24 24 rS CD WWNHNNNNNNNDN N C934 C934 C935 C937 C937 C939 C939 C93A C93C C93F C93F C93F C94 C94 C94 C94 C94 C94 C94 C94 C94 C94 C94 C94 C94 C94 C94 C94 Oy iS BNNO D7 C6 49 24 7C 5A 26 96 C6 5A 26 39 C6 5A 26 39 BD 96 81 2 B6 84 27 BD 20 86 97 BD TA 26 BD BD CB 08 03 00 F7 CB 03 E 06 03 FD 30 FD Wo 14 AD C8 F8 00 92 C9 C8 CB DA 01 DA AD DA CHECK BI _ ELAY20 NORMAL ELAY3 CLRB STAB COUNTER LDAB 48 1 BCC _BIT1 DECB BNE 1 GT NORMAL LDAB 3 DECB BNE DELAY20 RTS 30 RTS DELAY3 INC BIT1_COUNTER LDAA BIT1_COUNTER CMPA 3 DIMMING FOR lt 4 BITS THAT ON B tested with 20h 30 SCANKEY JSR 5 1 LDAA KEY CMPA 1 BEQ KEY_RELEASED LDAA PORTO ANDA 40H BEQ SKIP_DISPLAY5
56. 8 BNE CHK 9 LDX 4 LDX 0 X STX HL JSR ADDRESS DISPLAY LDAA 4 JSR DATA DISPLAY RTS CMPA 9 BNE CHK REGA LDX 6 LDX 0 X STX HL JSR ADDRESS DISPLAY LDAA 6 JSR DATA DISPLAY RTS RTS RTS RTS Page 29 of 40 MON68 LST 2 11 2558 17 06 2205 C89C 2206 C89C 2207 C89C 2208 C89C BD C7 15 HEX REL JSR HEX ADDR 2209 C89F 86 AE LDAA 2210 1 97 8C STAA BUFFER 221 86 02 LDAA 2 2212 C8A5 97 8D STAA BUFFER 1 2213 C8A7 39 RTS 2214 C8A8 2215 2216 2217 C8A8 BD C7 15 HEX REL6 JSR HEX ADDR 2218 C8AB 86 B3 LDAA 0B3H 2219 C8AD 97 8C STAA BUFFER 2220 C8AF 86 02 LDAA 2 2221 8 1 97 8D STAA BUFFER 1 2222 C8B3 39 RTS 2223 C8B4 2224 C8B4 2225 C8B4 HEX_COPY31 2226 C8B4 2227 C8B4 BD C7 15 JSR HEX_ADDR 2228 C8B7 86 AE LDAA 2229 C8B9 97 8C STAA BUFFER 2230 C8BB 86 02 LDAA 2 2231 C8BD 97 8D STAA BUFFER 1 2232 C8BF 39 RTS 2233 C8CO 2234 C8CO 2235 C8CO HEX COPY32 2236 C8CO 22 31 C8CO BD C7 15 JSR HEX ADDR 2238 C8C3 86 8F LDAA 08FH 2239 CICS Om BE STAA BUFFER 2240 C8C7 86 02 LDAA 2 2241 C8C9 97 8D STAA BUFFER 1 2242 C8CB 39 RTS 2243 C8CC 2244 C8CC HEX COPY33 2245 C8CC 2246 C8CC BD C7 15 JSR HEX ADDR 2247 C8CF 86 B3 LDAA 0B3H
57. 8 17 06 1825 C6CD CE CB DO LDX COMPLETE 1826 C6DO0 BD CA 14 JSR PSTR 1827 C6D3 20 06 BRA SKIP ERROR 1828 C6D5 1829 C6D5 CE CB DD FOUND ERROR DX ERROR FOUND 1830 C6D8 BD CA 14 JSR PSTR 1831 C6DB 1832 C6DB SKIP ERROR 1833 C6DB 1834 C6DB 86 02 LDAA 2 1835 C6DD 97 94 STAA STATE 1836 C6DF BD C4 06 JSR STILL_DATA 1837 C6E2 1838 C6E2 39 RTS 1839 C6E3 1840 C6E3 1841 C6E3 1842 C6E3 86 14 KEY DEMO LDAA 20 STATE 20 FOR KEY DEMO 1843 6 5 97 94 5 5 1844 C6E7 1845 C6E7 86 1F LDAA 1FH PRINT Prg 1846 C6E9 97 91 STAA BUFFER 5 1847 86 03 LDAA 03H 1848 C6ED 97 90 STAA BUFFER 4 1849 C6EF 1850 C6EF 86 BE LDAA 0BEH 1851 1 97 STAA BUFFER 3 1852 6 86 00 LDAA 0 1853 C6F5 97 8E STAA BUFFER 2 1854 C6F7 1855 C6F7 96 C9 DEMO NO 1856 C6F9 BD C1 C3 JSR DATA DISPLAY 1857 C6FC 39 RTS 1858 C6FD 1859 C6FD 1860 C6FD 1861 C6FD 1862 C6FD 1863 C6FD 73 00 KEY COM MUTE 1864 C700 39 RTS 1865 C701 1866 C701 1867 C701 1868 C701 86 1E KEY COPY LDAA 30 1869 C703 97 94 STAA STATE STATE 30 1870 C705 1871 C705 86 00 LDAA 0 1872 C707 97 95 STAA ZERO FLAG 1873 C709 1874 C709 BD C3 D6 JSR STILL ADDRESS 1875 C70C 86 AE LDAA 0AEH 1876 C70E 97 8C STAA BUFFER 1877 C710 86 02 LDAA 2 1878 C712 97 8D STAA BUFFER 1 1879 C714 39 RTS 1880 C715 1881 C715 1882 C715 1883 C715 1884 C715 1885 C715 1886 C715 HEX KEY FOR ADDRESS 1887 C715 1888 C715 96 95 HEX_ADDR LDAA ZERO_FLAG 1889 C717 81 00 CM
58. 86 BD 7A 26 39 86 97 96 B7 BD 7C 09 26 39 DE 9B 977 86 97 02 E BO BO 00 00 AB 96 84 Cl CO 84 96 C4 00 80 C1 00 F3 2 FD CB BO Bl Bl 00 BO BO 88 83 D2 18 F2 06 00 95 00 10 FB PRINT_IT PRINT IT LDAA JSR SEND BYTE DX TEMP16 STX TEMP16 DEC REG C BNE PRINT RTS EY_DUMP DEC J BNE PRINT_LINE1 LDAA SFF STAA MUTE TURN BEEP OFF LDX DISPLAY STX HL JSR PRINT_LINE JSR NEW_LINE LDX HL STX DISPLAY JSR STILL_DATA RTS LOOP2 DELAY DELAY1 NI SOFTWARE UART LDAA 0 STAA 1 JSR INC BRA DELAY 0 LOOP 2 10000 DELAY1 CONVERT LOW NIBBLE IN ACCUMULATOR TO 7 SEGMENT PATTERN ENTRY A EXIT A BBLE_7SEG LDX SEGTAB STX TEMP 16 ADDA TEMP16 1 STAA TEMP16 1 LDAA 0 ADCA TEMP16 STAA TEMP16 Page 7 of 40
59. 863 CB48 2864 CB48 86 06 LDAA 6 2865 CB4A 97 01 STAA K 2866 CBAC 2867 4 DISPLAY_MSG1 2868 CB4C 2869 CB4C 86 20 LDAA 520 2870 CB4E 2871 CB4E 97 D2 STAA J 2872 CB50 2873 CB50 2874 CB50 DISPLAY_START1 2875 CB50 2876 CB50 DE BO DX TEMP16 2877 CB52 BD C8 DD JSR SCAN2 2878 CB55 2879 CB55 7A 00 D2 DEC J 2880 CB58 26 F6 BNE DISPLAY STARTI 2881 CB5A 2882 CB5A DE BO DX TEMP16 2883 CB5C 09 DEX 2884 CB5D DF BO STX TEMP16 2885 5 2886 CB5F 7A 00 01 DEC K 2887 CB62 26 E BNE DISPLAY_MSG1 2888 CB64 Page 38 of 40 MON68 LST 2 11 2558 17 06 2889 CB64 39 RTS 2890 CB65 2891 CB65 2892 CB65 2893 CB65 2894 CB65 2895 CB65 2896 CB65 2897 CB65 2898 CB65 2899 CB65 2900 CB65 2901 CB65 2902 CB65 2903 CB65 2904 CB65 2905 CB65 2906 CB65 2907 CB65 2908 CB65 2909 CB65 SSSSSSSSSSSSSSSSSSSSSSSSSS STRINGS CONSTANT sssssssssssssssssssssssss 2910 CB65 2911 CB65 2912 65 20204D6F746FTEXT1 BYTE Motorola 6802 0 2912 CB6B 726F6C61203638303200 2913 75 4D6963726F70TEXT2 BYTE Microprocessor Kit 0 2913 CB7B 726F636573736F72204B697400 2914 CB88 2915 CB88 0D0A36383032TEXT3 BYTE 13 10 6802 MICROPROCESSOR KIT V1 0 0 2915 CB8E 204D4943524F50524F434553534F52204B49542056312E3000 2916 7
60. A 2 1415 C564 26 03 BNE DEMO5 1416 C566 7E CA JMP BCD_COUNTING 1417 C569 1418 C569 81 03 5 CMPA 3 1419 C56B 26 03 BNE DEMO6 1420 C56D 7E CA F7 JMP 1421 C570 1422 C570 DEMO6 1423 C570 1424 C570 1425 C570 1426 C570 39 RTS 1427 C571 1428 C571 1429 C571 7E C5 E3 GO STATE32 JMP COPY MEMORY 1430 C574 1431 C574 39 RTS 1432 Ch 1433 C575 1434 C575 39 GO RTS 1435 C576 1436 C576 1437 C576 1438 C576 1439 C576 SHORT STATE10 1440 C576 1441 C576 BD C6 B9 JSR GO STATE10 1442 C579 1443 C579 39 RTS 1444 C57A Page 19 of 40 2 11 2558 17 06 ENT PC TO TI ESS EMP16 TO 127 ROM BRANCH INSTRUC 007 MON68 LST 1445 C57A 1446 C57A 1447 C57A 1448 57 SKIP GO1 1449 57 1450 57 1451 1452 C57A 1453 57 1454 C57A 1455 1 STS SAVE SP SAVE SYST 1456 57 1457 C57C NOW SWITCH TO USER STACK 1458 57 1459 C57C 9E DS USER SP NOW LOAD WITH US 1460
61. ACO 2743 CACO 2744 CACO 96 CC LDAA SEC100 2745 CAC2 8B 01 ADDA 1 2746 CAC4 97 STAA SEC100 2747 CAC6 81 64 CMPA 100 2748 CAC8 26 2C BNE EXIT CLOCK 2749 CACA 2750 CACA 4F CLRA 2751 CACB 97 CC STAA SEC100 2752 CACD 2753 CACD 96 CD LDAA SEC 2754 CACF 8B 01 ADDA 1 2755 CAD1 19 DAA 2756 CAD2 97 CD STAA SEC 2757 CAD4 81 60 CMPA 60H 2758 CAD6 26 1E BNE EXIT_CLOCK 2759 CAD8 2760 CAD8 4F CLRA 2761 CAD9 97 CD STAA SEC 2762 CADB 2763 CADB 96 CE LDAA MI 2764 CADD 8B 01 ADDA 1 2765 CADF 19 DAA 2766 CAEO 97 CE STAA MI 2767 CAE2 81 60 CMPA 60H 2768 CAE4 26 10 BNE EXIT_CLOCK 2769 CAE6 4F CLRA 2770 CAE7 97 CE STAA MI 2771 CAE9 2772 CAE9 96 CF LDAA HOUR 2773 CAEB 8B 01 ADDA 1 2774 CAED 97 CF STAA HOUR 2775 CAEF 81 24 CMPA 24H 2776 CAF1 26 03 BNE EXIT_CLOCK 2777 CAF3 2778 CAF3 4F CLRA 2779 CAF4 97 CF STAA HOUR 2780 CAF6 2781 CAF 6 EXIT_CLOCK 2782 CAF 6 2783 CAF6 3B RTI 2784 CAF7 2785 CAF7 2786 CAF7 CLOCK PROGRAM 3 TEST 10ms TICK MAKING CLOCK DISPLAY 2787 CAF7 2788 CAF7 2789 CAF7 86 7E CLOCK LDAA 7EH INSERT HEX CODE FOR JMP SERVICE IRQ 2790 CAF9 97 F8 STAA SF8 2791 CAFB 2792 CAFB 86 CA LDAA SERVICE_IRQ gt gt 8 2793 CAFD 97 F9 STAA SF9 2794 CAFF 86 CO LDAA SERVICE_IRQ amp SFF 2795 01 97 5 SFA 2796 CB03 2797 CB03 4F CLRA 2798 CB04 97 CC STAA SEC100 2199 06 97 CD STAA SEC 2800 CB08 97 CE STAA MIN 2801 CBOA 97 CF STAA HOUR 2802 CBOC 97 DO STAA RUNSTOP 2803 CBOE 2804 CBOE 2805 CBOE OE GHI E
62. C002 B7 80 0163 C005 86 00 0164 C007 B7 80 0165 C00A 0166 C00A 0167 C00A 0168 C00A 0169 C00A CE 01 0170 09 0171 00 26 FD 0172 C010 0173 C010 0174 010 8E 7F 0175 C013 0176 C013 CE 0177 C016 DF 0178 C018 0179 C018 0180 C018 86 00 0181 1 97 8C 0182 01 97 8D 0183 COLE 97 92 0184 C020 0185 C020 0186 C020 0187 C020 86 AF 0188 C022 97 91 0189 C024 86 BF 0190 C026 97 90 0191 C028 86 BD 0192 97 0193 C02C 86 9B 0194 CO2E 97 8E 0195 C030 0196 C030 0197 C030 86 00 0198 C032 97 94 0199 C034 97 95 0200 C036 0201 C036 86 02 0202 C038 97 96 0203 C03A 97 98 0204 86 00 0205 COSE 97 97 0206 C040 97 99 0207 C042 0208 C042 07 0209 C043 97 AO 0210 C045 0211 C045 0212 C045 96 96 0213 C047 97 84 0214 C049 96 97 0215 4 97 85 0216 04 0217 C04D 0218 CO4D CE 00 0219 C050 97 C7 0220 C052 0221 C052 86 52 0222 C054 97 C6 0223 C056 0224 C056 86 00 0225 C058 97 C9 0226 C05A 0227 C05A DE AB 0228 C05C 8C AA 02 00 2C FF 00 35 55 CSE ORG OR START LDAA STAA LDAA STAA G 0C000H START ADDRESS FOR ROM G 4000H TEST IN RAM 5 1 DISABLE NMI BREAK SIGNAL 0 1 TEST DISPLAY power up delay POWER_UP_DELAY BNE POWER_UP_DELAY LDX 300 DEX
63. C57E 1461 57 96 97 LDAA DISPLAY 1 1462 C580 36 PSHA 1463 C581 96 96 LDAA DISPLAY 1464 C583 36 PSHA 1465 C584 96 AO USER P 1466 C586 06 TAP 1467 C587 DE 9C DX USER IX 1468 C589 D6 9B USER 1469 C58B 96 9A USER A 1470 C58D 39 RTS 1471 C58E 1472 58 1473 C58E 1474 C58E KEY GO WITH RELATIVE CALCULATION 1475 C58E FIND OFFSET BYTE 1476 C58E 1477 C58E STATE6 1478 C58E 1479 58 1480 58 DE 96 LDX DISPLAY 1481 C590 DF 5 STX DESTINATION 1482 C592 1483 C592 NOW COMPUTE OFFSET BYTE DESTINATION START ADDR 1484 C592 1485 C592 THE REAL PC WILL BE NEXT INTSRUCTION ADDR 1486 C592 1487 C592 1488 C592 DE LDX START ADDRESS 1489 C594 08 INX 1490 C595 08 INX 1491 C596 DF BO STX TEMP16 SAVE 1492 C598 1493 C598 1494 C598 1495 C598 96 A6 DAA DESTINATION 1 1496 C59A 90 B1 SUBA TEMP16 1 1497 59 97 STAA OFFSET_BYTE 1 1498 C59E 1499 59 96 5 DAA DESTINATIO 1500 C5A0 92 BO SBCA TEMP16 1501 C5A2 97 A7 STAA OFFSET_BYTE 1502 5 4 1503 1504 C5A4 1505 C5A4 CHECK IF THE OFFSET BYTE WAS BETW 1506 C5A4 IF BIT 7 OF THE OFFSET BYTE IS 0 E 1507 5 4 IF BIT 7 OF THE OFFSET BYTE IS 1 E 1508 C5A4 OTHERWISE THE OFFSET BYTE WAS OUT OF 1509 C5A4 1510 96 LDAA OFFSET 1 5 C5A6 84 80 ANDA 80H 1512 5 8 27 09 BEQ CHK_OFFSET_HIGH 1513 1514 CHECK HIGH BYTE MUST BE FF 1 1515 1516 5 96 A7 LDAA OFFSET B
64. CORDI NEXT LINE 0848 C303 0849 C303 0850 C303 0851 C303 0852 C303 0853 C303 0854 C303 0855 C303 0856 C303 0857 C303 0858 C303 0859 C303 0860 C303 0861 C303 0862 C303 0863 C303 0864 C303 0865 C303 0866 C303 0867 C303 0868 C303 0869 C303 0870 C303 0871 C303 0872 C303 0873 C303 0874 C303 0875 C303 0876 C303 0877 C303 0878 C303 0879 C303 0880 C303 0881 C303 0882 C303 0883 C303 0884 C303 0885 C303 0886 C303 0887 C303 0888 C303 GI SNO eK OR SK elo KR c e ARO ae aom oc o aUe 0889 C303 0890 C303 EXECUTE FUNCTIONS OR HEX KEY ENTERED 0891 C303 CHECK HEX KEY OR FUNCTIONS KEY 0892 C303 ENTRY A 0893 C303 0894 C303 81 10 KEYEXE CMPA 10H 0895 C305 2 56 BGE FUNCTION KEY 0896 C307 0897 C307 HHHHHHHHHHHHHHH KEY HEX ENTERED 0898 C307 0899 C307 97 83 STAA REG C SAVE HEX KEY 0900 C309 96 94 LDAA STATE 0901 C30B 0902 C30B 81 01 CMPA 1 0903 C30D 26 05 BNE CHK STATE2 0904 C30F 0905 C30F 96 83 LDAA REG C 0906 C311 7E C7 15 JMP HEX ADDR 0907 C314 0908 C314 81 02 CHK STATE2 CMPA 2 0909 C316 26 03 BNE CHK 0910 C318 7E C7 4B JMP HEX DATA 0911 C31B 0912 C31B 81 03 CHK STATE3 CMPA 3 Page 12 of 40
65. E SHOW BIT6 073 C806 074 C806 86 BD DAA ZERO 075 C808 97 91 STAA BUFFER 5 076 C80A 20 04 BRA NEXT_BIT3 077 C80C 078 C80C 86 30 SHOW BIT6 LDAA 079 C80E 97 91 STAA BUFFER 5 080 C810 081 C810 96 0 NEXT BIT3 LDAA USER P 082 C812 84 04 ANDA 4 083 C814 26 06 BNE SHOW BIT7 084 C816 085 C816 86 BD 2 086 C818 97 90 STAA BUFFER 4 087 C81A 20 04 BRA NEXT_BIT4 088 C81C 089 C81C 86 30 SHOW BIT7 LDAA 090 C81E 97 90 STAA BUFFER 4 091 C820 092 C820 96 NEXT 4 LDAA USER P 093 C822 84 02 ANDA 2 094 C824 26 06 BNE SHOW 8 095 C826 096 C826 86 BD ZERO 097 C828 97 8F STAA BUFFER 3 098 C82A 20 04 BRA NEXT BIT5 099 C82C 00 C82C 86 30 SHOW BIT8 LDAA 4 ONE 01 C82E 97 8F STAA BUFFER 3 02 C830 03 C830 96 NEXT BIT5 LDAA USER P 04 C832 84 01 ANDA 1 05 C834 26 06 BNE SHOW BIT9 06 C836 07 C836 86 BD ZERO 08 C838 97 8E STAA BUFFER 2 09 C83A 20 04 BRA NEXT_BIT6 10 C83C 11 C83C 86 30 SHOW BIT9 LDAA 4 ONE 12 C83E 97 8E STAA BUFFER 2 TS C840 14 C840 NEXT BIT6 15 C840 86 8D LDAA 8DH 16 C842 97 8D STAA BUFFER 1 17 C844 86 85 LDAA 85H 18 C846 97 8C STAA BUFFER 119 C848 39 RTS 120 C849 121 C849 122 C849 81 06 REG6 6 123 C84B 26 10 BNE CHK_REG7 124 C84D 125 C84D CE 00 00 LDX 0 126 C850 EE 00 LDX 0 X 127 C852 DF 84 STX HL 128 C854 BD Cl 01 JSR ADDRESS DISPLAY Page 28 of 40 MON68 LST 2 11 2558 17 06 129 130 31 132 133 134
66. F 96 80 LDAA REG E 0359 COF1 0360 1 39 RTS 0361 COF2 0362 COF2 0363 COF2 0364 COF2 CR EQU ODH 0365 COF2 LF EQU OAH 0366 COF2 EOS EQU 0 0367 COF2 0368 COF2 NEW LINE 0369 COF2 PRINT CR LF 0370 COF2 0371 COF2 86 OD NEW LI LDAA 0DH 0372 COF4 BD CO 88 JSR SEND BYTE 0373 COF7 86 0A LDAA 0AH 0374 COF9 BD CO 88 JSR SEND BYTE 0375 COFC 39 RTS 0376 COFD 0377 COFD 0378 COFD WRITE NIBBLE TO TERMINAL 0379 COFD 0380 COFD 84 OF OUT1X ANDA 0FH Page 5 of 40 MON68 LST 2 11 2558 17 06 0381 COFF 0382 COFF 8B 30 ADDA 30H 0383 C101 81 3A CMPA 3AH 0384 C103 2D 02 BLT OUT1X1 0385 C105 8B 07 ADDA 7 0386 C107 BD CO 88 OUT1X1 JSR SEND_BYTE 0387 C10A 39 RTS 0388 C10B 0389 C10B 0390 C10B 36 OUT2X PSHA 0391 C10C 0392 C10C 44 LSRA 0393 C10D 44 LSRA 0394 10 44 LSRA 0395 10 44 LSRA 0396 CIT 0397 C110 STAA 1 1 0398 C110 0399 C110 BD CO FD JSR OUTIX 0400 113 32 PULA 0401 C114 BD CO FD JSR OUTIX 0402 CTTT 39 RTS 0403 C118 0404 C118 PRINT LINE OF MEMORY POINTED TO HL 0405 C118 0406 C118 86 10 PRINT LINE LDAA 416 0407 C11A 97 D2 STAA J 0408 11 0409 PRINT_LINE1 0410 11 BD CO F2 JSR NEW LINE 0411 C11F 86 10 LDAA 16 0412 121 597183 STAA REG C 0413 2123 0414 C123 DE 84 LDX HL 0415 C125 DF B
67. LDAA 0AEH 1776 C686 97 STAA BUFFER 1777 C688 86 02 LDAA 2 1778 C68A 97 8D STAA BUFFER 1 1179 C68C 39 RTS 1780 C68D 1781 C68D 1782 C68D 1783 C68D KEY DOWNLOAD HEX 1784 C68D 1785 C68D 86 B3 LDAA 0B3H PRINT LOAD 1786 C68F 97 91 STAA BUFFER 5 1787 C691 86 85 LDAA 85H 1788 C693 97 91 STAA BUFFER 5 1789 C695 86 A3 LDAA 0A3H 1790 C697 97 90 STAA BUFFER 4 1791 C699 86 3F LDAA 3FH 1792 C69B 97 8F STAA BUFFER 3 1793 C69D 86 B3 LDAA 0B3H 1794 C69F 97 8E STAA BUFFER 2 1795 6 1 86 00 LDAA 0 1796 C6A3 97 8D STAA BUFFER 1 I397 C6A5 97 8C STAA BUFFER 1798 7 1799 C6A7 86 OA LDAA 10 1800 C6A9 97 94 STAA STATE 1801 C6AB 1802 C6AB BD C9 FF JSR CLR SCREEN 1803 C6AE CE CB A7 LDX DOWNLOAD 1804 C6B1 BD CA 14 JSR PSTR 1805 C6B4 1806 6 4 86 FF LDAA 5 1807 C6B6 97 CA STAA MUTE TURN OFF BEEP 1808 C6B8 1809 C6B8 39 RTS 1810 C6B9 1811 C6B9 1812 C6B9 86 01 GO STATE10 LDAA 1 1813 C6BB B7 80 00 STAA GPIO1 1814 C6BE 1815 C6BE CE CB B6 LDX DOWNLOAD2 1816 C6C1 BD CA 14 JSR PSTR 1817 C6C4 1818 C6C4 1819 C6C4 BD C2 14 JSR GET RECORD GET INTEL HEX FILE 1820 C6C7 1821 C6C7 96 89 LDAA ERROR 1822 C6C9 81 00 CMPA 0 1823 C6CB 26 08 BNE FOUND ERROR 1824 C6CD Page 24 of 40 MON68 LST 2 11 255
68. NABLE IRQ 2806 CBOF 2807 CBOF DISPLAY CLOCK 2808 CBOF 2809 CBOF 2810 CBOF 96 CC LDAA SEC100 2811 CB11 BD C1 C3 JSR DATA DISPLAY 2812 14 Page 37 of 40 MON68 LST 2 11 2558 17 06 2813 CB14 96 CD SEC 2814 CB16 97 85 STAA HL 1 2815 CB18 96 CE LDAA MIN 2816 CB1A 97 84 STAA HL 2817 CB1C BD Dl JSR ADDRESS DISPLAY 2818 2819 1 96 8E LDAA BUFFER 2 2820 CB21 8A 40 ORAA 40 2821 CB23 97 8E STAA BUFFER 2 2822 CB25 2823 CB25 96 9 LDAA BUFFER 4 2824 CB27 8A 40 ORAA 40 2825 CB29 97 90 STAA BUFFER 4 2826 CB2B 2827 CB2B 2828 CB2B 2829 CB2B BD C8 DA JSR 5 1 2830 CB2E 2831 CB2E 96 93 LDAA KEY 2832 CB30 81 FF CMPA 1 2833 CB32 27 OD BEQ SKIP_SHOW_KEY 2834 CB34 2835 CB34 81 21 CMPA 21H 2836 CB36 26 09 BNE SKIP_SHOW_KEY 2837 CB38 2838 CB38 CLRA 2839 CB39 97 CC STAA SEC100 2840 CB3B 97 CD STAA SEC 2841 CB3D 97 CE STAA MI 2842 CB3F 97 CF STAA HOUR 2843 41 2844 41 STAA GPIO1 2845 41 2846 41 SKIP_SHOW_KEY 2847 41 2848 41 20 BRA DISPLAY_CLOCK 2849 CB43 2850 CB43 2851 CB43 2852 CB43 CHECK KEY PRESSED 2853 CB43 Lh CODE 21H 2854 CB43 ADDR CODE 1BH 2855 CB43 GO CODE 16H 2856 CB43 2857 CB43 2858 CB43 DISPLAY_START_MSG 2859 CB43 2860 CB43 CE CB F5 LDX START_MSG 6 2861 CB46 DF BO STX TEMP16 2862 CB48 2
69. O STX TEMP16 FOR ASCII PRINTING 0416 C127 0417 C127 96 84 LDAA HL 0418 C129 BD Cl OB JSR OUT2X 0419 12 96 85 LDAA HL 1 0420 12 BD OB JSR OUT2X 0421 C131 0422 C131 86 3A LDAA 0423 C133 BD CO 88 JSR SEND BYTE 0424 C136 86 20 LDAA 0425 C138 BD CO 88 JSR SEND BYTE 0426 C13B 0427 C13B 0428 C13B DE 84 PRINT LINE2 DX HL 0429 C13D 0430 C13D A6 00 LDAA 0 X 0431 C13F 0432 C13F BD OB JSR OUT2X 0433 C142 0434 C142 86 20 LDAA 0435 C144 BD CO 88 JSR SEND BYTE 0436 C147 0437 C147 DE 84 LDX HL 0438 C149 08 INX 0439 C14A DF 84 STX HL 0440 C14C 0441 14 7A 00 83 DEC REG C 0442 14 0443 14 26 BNE PRINT_LINE2 0444 C151 7 0445 CES 0446 C151 PRINT ASCII CODE 0447 C151 0448 C151 0449 C151 86 10 LDAA 16 0450 C153 975 89 STAA REG C 0451 C155 PRINT 0452 C155 DE BO DX TEMP16 0453 C157 0454 C157 A6 00 LDAA 0 X 0455 C159 0456 C159 81 20 CMPA 20H Page 6 of 40 MON68 LST 2 11 2558 17 06 C15B C15D C15D 15 15 162 C162 C164 C165 C167 C167 C16A C16C C16C C16C C16C 16 171 171 171 172 172 172 174 176 176 176 178 17 17 C17D C17D C180 C180 C182 C184 C187 C187 C188 C188 C188 C188 C188 C188 C188 C188 C188 C18A C18D C190 C193 C195 195 C198 C199 C19B C19C C19C C19C C19C C19C C19C C19C C19C C19C C19C C19F C19F C1A3 C1A5 1 5 1 7 C1A9 1 2C
70. PA 0 1890 C719 26 OA BNE SHIFT_ADDRESS 1891 C71B 1892 C71B 86 O1 LDAA 1 1893 95 STAA ZERO_FLAG 1894 C71F 86 00 LDAA 0 1895 C721 97 96 STAA DISPLAY 1896 67239 94 STAA DISPLAY 1 1897 C725 1898 C725 SHIFT_ADDRESS CLC 1899 C726 79 00 97 ROL DISPLAY 1 1900 C729 79 00 96 ROL DISPLAY Page 25 of 40 MON68 LST 2 11 2558 17 06 1901 C72C 1902 C72C 0C CLC 1903 C72D 79 00 97 ROL DISPLAY 1 1904 C730 79 00 96 ROL DISPLAY 1905 C733 1906 C733 CLC 1907 C734 79 00 97 ROL DISPLAY 1 1908 C737 79 00 96 ROL DISPLAY 1909 C73A 1910 C73A CLC 1911 C73B 79 00 97 ROL DISPLAY 1 1912 C73E 79 00 96 ROL DISPLAY 1913 C741 1914 C741 96 97 LDAA DISPLAY 1 1915 C743 9A 83 ORAA REG_C 1916 C745 97 97 STAA DISPLAY 1 1917 C747 1918 C747 JSR READ_MEMORY 1919 C747 1920 C747 BD 06 JSR STILL_ADDRESS 1921 C74A 1922 C74A 39 RTS 1923 C74B EX KEY FOR DATA MODE 1924 C74B 1925 1926 C74B 96 95 HEX_DATA LDAA ZERO_FLAG 1927 C74D 81 00 CMPA 0 1928 C74F 26 OA BNE SHIFT_DATA 1929 C751 1930 C751 86 O1 LDAA 1 1931 C453 97 95 STAA ZERO FLAG 1932 C755 1933 C755 86 00 LDAA 0 1934 C757 DE 96 LDX DISPLAY 1935 C759 7 00 STAA 0 X 1936 C75B 1937 C75B DE 96 SHIFT DATA LDX DISPLAY 1938 C75D A6 00 LDAA 0 X 1939 C75F 48 ASLA 1940 C760 48 ASLA 1941 C761
71. R STILL DATA 1603 C608 1604 C608 86 02 LDAA 2 1605 C60A 97 94 STAA STATE 1606 C60C 39 RTS 1607 C60D 1608 C60D 1609 C60D 1610 C60D 1611 C60D 1612 C60D 1613 C60D 1614 C60D 1615 C60D 1616 C60D 1617 C60D 1618 C60D 1619 C60D 1620 C60D 1621 C60D 1622 C60D 1623 C60D 1624 C60D INSERT ONE BYTE WITHIN 256 BYTES 1625 C60D CURRENT LOCATION WILL BE DISPLAY 1 1626 C60D 1627 C60D 1628 C60D DE 96 KEY INS LDX DISPLAY GET CURRENT DISPLAY ADDRESS 1629 C60F 08 INX 1630 C610 DF 96 STX DISPLAY 1631 C612 1632 C612 C6 00 LDAB 0 1633 C614 1634 C614 A6 FE INSERT DAA OFEH X 1635 C616 A7 STAA OFFH X 1636 C618 09 DEX 1637 C619 1638 C619 5A DECB 1639 C61A 26 F8 BNE INSERT 1640 C61C 1641 C61C 1642 C61C 86 00 LDAA 0 1643 C61E 1644 C61E DE 96 LDX DISPLAY 1645 C620 A7 00 STAA 0 X 1646 C622 1647 C622 BD C4 06 JSR STILL DATA 1648 C625 1649 C625 39 RTS 1650 C626 1651 C626 DEL ONE BYTE AT CURRENT DISPLAY ADDRESS 1652 C626 SHIFTED UP 256 BYTES 1653 C626 1654 C626 DE 96 KEY DEI X DISPLAY GET CURRENT DISPLAY ADDRESS 1655 C628 1656 C628 C6 00 LDAB 0 1657 C62A 1658 C62A A6 01 DELETE DAA 1 X 1659 C62C A7 00 STAA 0 X 1660 C62E 08 INX 1661 C62F 1662 C62F 5A DECB 1663 C630 26 F8 BNE DELETE 1664 C632 1665 C632 1666 C632 BD C4 06 JSR STILL DATA 1667 C635 1668 C635 39 RTS 1669 C636 1670 C636 1671 C636 SINGLE STEP KEY 1672 C636 ENABLE BREAK SIGNAL SO AT THE 8TH OF E CLOCK THE NMI WILL PRODUCE Page 22 of 40
72. RESET2 Kr 1 7 RIW Ae 15 9 14 Ai 8 HEADER 20X2 22 REP KEY REP repeat key 519 is one bit active low key switch connected to bit 6 of Port 0 To test the logic of S19 we can use instruction LDAA 0000 and check bit 6 of the accumulator with test bit instruction REP key is used in monitor program together with key STEP or to provide automatic repeating U13 DO PAO PAZ 5 5 01 PAS NB 519 PORTO gt RXD 74HC541 C18 10ms TICK GENERATOR SW1 is a selector for interrupt source between key IRQ or 10ms tick produced by 89C2051 microcontroller Tick generator is software controlled using timer0 interrupt in 89C2051 chip The active low tick signal is sent to P3 7 For tick running indicator P1 7 drives D1 LED ESP switch 10ms Tick SW1 TICK IRQ 2077 IRQ 23 Tick is 10ms periodic signal for triggering 6802 IRQ pin When select SW1 to Tick the 6802 CPU can be triggered by a maskable interrupt The 100Hz tick or 10ms tick can be used to produce tasks that executed with multiple of tick The 6802 kit lab look will show how to use 10ms tick to make a digital timer gt gt 10ms 10ms 10ms RS232C PORT The RS232C port is for serial communication We can use a cross cable or null MODEM cable to connect between the kit and termin
73. RY 0637 C214 0638 C214 86 00 GET RECORD LDAA 0 0639 C216 97 89 STAA ERROR 0640 C218 0641 C218 BD CO BB GET RECORD1 JSR 0642 C21B 81 3A CMPA 0643 C21D 27 07 BEQ RECORD2 0644 C21F 0645 C21F 81 53 CMPA S if it was Motorola s record 0646 C221 26 F5 BNE 1 0647 223 0648 C223 TE C2 7 92 JMP GET S RECORD2 0649 C226 0650 C226 0651 C226 GET RECORD2 0652 C226 0653 C226 86 00 LDAA 0 0654 C228 97 8A STAA BCC 0655 C22A 0656 C22A BD Cl F7 JSR GET HEX 0657 C22D 97 83 STAA REG C GET NUMBER OF BYTE 0658 C22F 0659 C22F BD C2 OF JSR ADD BCC 0660 C232 0661 C232 BD C1 F7 JSR GET HEX 0662 C235 97 84 STAA HL 0663 C237 0664 C237 BD C2 OF JSR ADD BCC 0665 C23A 0666 C23A BD C1 F7 JSR GET HEX 0667 C23D 97 85 STAA HL 1 GET LOAD ADDRESS 0668 C23F 0669 C23F BD C2 OF JSR ADD BCC 0670 C242 0671 C242 BD Cl F7 JSR GET HEX 0672 C245 0673 C245 81 00 CMPA 0 0674 C247 0675 C247 27 14 BEQ DATA RECORD 0676 C249 0677 C249 BD CO BB WAIT CR JSR CIN 0678 C24C 81 OD CMPA 0DH 0679 C24E 26 F9 BNE WAIT CR 0680 C250 0681 C250 B7 80 00 STAA 1 0682 C253 0683 C253 96 89 LDAA _ERROR 0684 C255 81 01 CMPA 1 Page 9 of 40 MON68 LST 2 11 2558 17 06 0685 E257 2
74. YTE 1517 C5AC 81 FF 0FFH 1518 26 18 BNE OUT OFF RANGE 1519 C5BO 1520 C5BO C5 B7 JMP IN RANGE Gl 7 o DE H dum EN Page 20 of 40 MON68 LST 2 11 2558 17 06 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1581 1532 1533 1534 1535 1536 1537 1538 1539 154 154 154 154 154 154 154 154 154 154 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 IS CD C5B3 C5B3 C5B3 C5B5 C5B7 C5B7 C5B7 C5B7 C5B9 C5BA C5BA C5BC C5BE C5BE 5 0 5 0 C5C3 C5C3 C5C5 C5C7 C5C8 C5C8 C5C8 C5C8 C5CA C5CC C5CE C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 E2 E3 E3 E3 E3 E3 E3 E3 E3 E3 C5 C5 C5 C5 C5 C5 C5 C5 C5 5 5 C5 C5 C5 C5E E9 C5E C5 EF EF EF C5 C5 55 C5 DO D2 D4 D6 D8 DA DC DE DE EO E E2 E 96 26 96 DF BD 86 97 39 3 j B ED E CIEL C5F2 5 4 5 4 5 4 C5F6 C5F7 C5F9 5 9 5 9 CSFB CSFB C5FD C5FD C5FD C5FD C5FF 11 00 96 4 02 94 96 5 00 5
75. ack If the center pin is not the positive the diode will be reverse bias preventing wrong polarity feeding to voltage regulator REL DUMP KEYBOARD LAYOUT RESET 504 506 REG MUTE DEL USER 00 02 DATA STEP IRQ IX SP ADDR GO REP Motorola 6802 Microprocessor Kit HEX keys Hexadecimal number 0 to with associated user registers flag bits and page zero memory 00 to 06 use with key REG CPU control keys RESET Reset the CPU the 6802 will get reset vector from location FFFE and FFFF USER User key no connection IRQ Make IRQ pin to logic low used for experimenting with interrupt process Monitor function keys REP INS DEL STEP GO Repeat the key that pressed must be pressed together with REP key Insert one byte to the next location the 256 bytes will be shifted down Delete one byte at current display the next 256 bytes will be moved up Execute user code only single instruction and return to save CPU registers Jump from monitor program to user code Decrement current display address by one Increment current display address by one Set current display address with user Program Counter Display user registers flags or page zero 00 to 06 with HEX key 6 DATA ADDR COPY DUMP LOAD MUTE Prg ACCA Accumulator A ACCB Accumulator B IX 16 bit Index register SP 16 bit Stack Pointer register HI upper 4 bit co
76. al The connector for both sides are DB9 female We may build it or buying from computer stores 00000 DB9 Female DB9 Female For new PC or laptop computer without the RS232 port It has only USB port we may have the RS232C port by using the USB to RS232 converter 24 DATA FRAME for UART COMMUNICATION Serial data that communicated between kit and terminal is asynchronous format The 6802 kit has no UART chip instead it uses software controlled to produce bit rate of 2400 bit s The data frame is composed of start bit 8 data bit and stop bit For our kit period 1 2400 417 microseconds period 1 Baud Rate Stat Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit Stop Bit Eb msb Bit Since bit period is provided by machine cycle delay Thus to send receive serial data correctly all interrupts must be disabled CONNECTING LCD MODULE JR1 is 20 pin header for connecting the LCD module The example shows connecting the 16x2 lines text LCD module R12 is a current limit resistor for back light R13 is trimmer POT for contrast adjustment The LCD module is interfaced to the 6802 bus directly The command and data registers are located in I O space having address from 9000H to 9003H 1 5 Prg INS RH MUTE DEL cmm HI 02 DATA STEP Be advised that plugging or removing the LCD module must be done when the is powered off Text LCD module accepts ASCII c
77. approx 200mA However we can use 9VDC from any AC adapter The example of AC adapter is shown below The center pin is positive 10 AC DC ADAPTER MODEL KOL 091000 INPUT pe OUTPUT 2 07 1 04 9 CEE lt MADE IN CHINA If your adapter is adjustable output voltage try with approx 9V Higher voltage will make higher power loss at the voltage regulator 7805 Dropping voltage across 7805 is approx 2V get 5VDC for the kit we thus need DC input gt 7 5V When power up we will see the cold boot message 6802 running rim If there is no LED light up check the adapter polarity with multimeter HOW TO ENTER PROGRAM USING HEX CODE Let us try enter HEX CODE of the example program to memory and test it We write the program using 6802 instructions Address code Label Instruction comment 0200 86 01 MAIN LDAA 1 Load register A with 1 0202 B7 80 00 STAA 8000 Write to GPIO1 8000H Our test program has only two instructions The first instruction is LDAA Z1 Load Accumulator A with 8 bit constant 1 This instruction has two bytes hex code i e 86 is LDAA n and Zn is 01 The 2 instruction is STAA 8000 The instruction s machine code is B7 The location of GPIOI is 8000 16 bit data The total of hex codes for this small program is 5 bytes that are 86 01 B7 80 and 00 The first byte will be entered to location 0200
78. d File gt Step 5 On PC Click file gt Send File gt LED HEX 20 Edit Setup Control Mew connection Alt N Duplicate session Alt D Cygwin connection Alt G Log Transfer le SSH SCP Change directory Replay Log TTY Record TTY Replay Print Alt P The kit will read the hex file write to memory when completed if no checksum error the display will show the current address The kit accepts for both Motorola s record or Intel hex files automatically DUMP MEMORY CONTENTS With terminal connection we can use it to display the memory contents 256 bytes easily The monitor command is DUMP key When pressed the kit will send data stream to display the memory contents from current program counter In addition the ASCII code is also decoded for each line Li File Edit Setup Control Window Help Hk ra Ol PPP 6123456789 5 lt gt Mun Pcia a 2 xi P2 5 Duvo h2HP 1 G fjP62 H 21 EXPANSION BUS HEADER JP1 40 pin header provides CPU bus signals for expansion or I O interfacing Students may learn how to make the simple I O port interfacing to Analog to Digital Converter interfacing to stepper motor or AC power circuits CPU expansion connector 5 DO i J 34 C1 55 VMA DE 5 22uF 2 LJ 27 LJ i 59 4 IRQ 5
79. ectrolytic C5 C6 C7 C8 C9 0 1uF disc ceramic C10 C11 O 1uF disc ceramic C12 10uF 10V electrolytic C19 C18 100nF disc ceramic Additional parts JJP1 HEADER 20X2 JR1 CONN RECT 16 text LCD connector J1 DC Input J2 CON3 3 pin header 151 SPEAKER SW ESP switch SW2 IRQ SW3 RESET SWA user 51 52 53 54 55 56 57 58 59 510 511 512 513 814 switch 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 TP1 TP2 TP3 TEST POINT 4 5 TP5 GND SUB D 9 Male cross cable 4MHz Xtal PCB double side plate through hole LED cover Clear RED color acrylic plastic Keyboard sticker printable SVG file ond 6802 MICROPROCESSOR KIT 19 uis i 20 62256 SRAM 21 Ex m 252 A iC c14 D3 Tuy 4 i dee Cr DOWER B2 7805 27C256 EPROM 4 fa u7 Nt mo 741514 RIZ u n ed TP2 RESET 1 D4 5 u17 ai 74HC164 PN O C21 6802 CD4076 c D
80. from this URL http ttssh2 sourceforge jp index html en VT100 Terminal RS232C cross cable 6802 Kit The example shows connecting laptop with COMI port to RS232C port of the 6802 kit New laptop has no COM port we may use the USB RS232 adapter for converting the USB port to RS232 port To download Motorola s record or Intel hex file that generated from the assembler or c compiler set serial port speed to 2400 bit s 8 data bit no parity no flow control one stop bit Step 1 Run teraterm then click at Serial connection 18 Tera Term New connection Serial Port COM1 Communications Port COM1 Communications Port 1 Step 2 Click setup gt Serial port COM1 9600baud Tera Term File Edit Control Window Help Terminal Window Font Keyboard Proxy SSH SSH Authentication SSH Forwarding SSH KeyGenerator TCPJTP General Additional settings Save setup Restore setup Load key map 19 Step 3 Set serial port speed to 2400 and format as shown below Tera Term Serial port setup Port Baud rate 2400 Data Parity Stop Flow control Transmit delay 0 msec char msecjline Step 4 Press key LOAD then key GO The kit will wait for the data stream from terminal COM1 2400baud Tera Term File Edit Setup Control Window Help Press key GO Click File gt Sen
81. goto xy 2691 CA91 CE CB 75 DX TEXT2 2692 CA94 BD CA 72 JSR pstring 2693 CA97 2694 CA97 2695 CA97 39 RTS 2696 CA98 2697 CA98 2698 CA98 2699 CA98 BINARY COUNTING 41 2700 CA98 2701 CA98 86 00 DEMO LED LDAA 0 2102 CA9A 2703 CA9A B7 80 00 DEMOLOOP STAA 1 2704 CA9D 8D 04 BSR DEMODELAY 2705 CA9F 8B 01 ADDA 1 2706 1 20 BRA DEMOLOOP 2107 CAA3 2708 CAA3 2709 CAA3 CE 00 00 DEMODELAY LDX 0000 2710 CAA6 09 DEMODELAY1 DEX 2711 CAAT 26 FD BNE DEMODELAY1 2712 9 39 RTS 2113 2714 CAAA 2715 CAAA RUNNING DOT LED PRM 0 2716 CAAA 2717 CAAA 86 01 RUN_DOT LDAA 1 2718 CAAC 2119 7 80 00 RUN_DOT1 STAA 1 2720 CAAF 8D F2 BSR DEMODELAY 2721 1 49 ROLA 2122 CAB2 20 F8 BRA 1 2723 4 2724 CAB4 2725 CAB4 BCD COUNTING 2 2726 CAB4 2127 86 00 BCD_COUNTING LDAA 0 2728 CAB6 2729 CAB6 B7 80 00 BCD_COUNT1 STAA 1 2730 9 8D E BSR DEMODELAY 2731 CABB 8B 01 ADDA 1 2732 CABD 19 DAA 2733 CABE 20 F6 BRA BCD_COUNT1 2734 CACO 2135 2136 36 of 40 MON68 LST 2 11 2558 17 06 2737 CACO 2738 CACO UPDATE CLOCK VARIABLES 2739 CACO ENTER EVERY 10ms FROM IRQ INTERRUPT 2740 CACO 2741 CACO SERVICE_IRQ 2742 C
82. ntents of the Condition Code registers for Half Carry Flag and Interrupt flag NZVC lower 4 bit contents of the Condition Code register for Negative Zero Overflow and Carry flags 00 display 16 bit data location 00 high byte and 01 low byte 02 display 16 bit data location 02 high byte and 03 low byte 04 display 16 bit data location 04 high byte and 05 low byte 06 display 16 bit data location 06 high byte and 07 low byte Set entry mode of hex keys to Data field Set entry mode of hex keys to Address field Copy block of memory used with key for Start End Destination and with key GO Compute relative byte used with key for Start Destination and key GO Display 16 bytes x 16 lines memory contents by using 2400 bit s display terminal Load Motorola S record or Intel hex file at 2400 bit s using serial port Turn beep ON OFF Demonstration program 00 09 program number can be selected with key or Then press key GO to run it Available sample programs are 00 Rotate bit with instruction 01 Binary number counting from 00 to FF 02 BCD number counting from 00 to 99 03 Simple clock using 10ms tick for IRQ interrupt SW1 must select to Tick Key will clear the clock 04 Test LCD module Display message on the LCD display Caution Plugging removing the LCD module must do when the kit was POWER OFF 05 09 N A for this version User may add it in the monitor source code
83. odes for displaying the message on screen Without settings the LCD by software no characters will be displayed The first line will be black line by adjusting the R13 for contrast adjustment 25 LOGIC PROBE POWER SUPPLY The kit provides test points TP4 5V and TP5 GND for using the logic probe Students may learn digital logic signals with logic probe easily The important signals are RESET TP2 and E clock TP3 Tick signal however indicated by D1 LED blinking Logic probe can test it at P3 7 of the 89C2051 microcontroller directly Red clip is for 5V and Black clip for GND 5V at TP1 GND at TP1 26 HARDWARE SCHEMATIC PARTS LIST and PCB layout gt gt D 0 7 9 7 gt gt A 0 7 i 0xC000 0xFFFF 0x0000 0x7FFF 32kB Programmable system tick 68
84. sition 2639 59 position 2640 59 2641 CA59 00 goto_xy CMPB 0 2642 CA5B 26 06 BNE casel 2643 CA5D 8B 80 ADDA 80H 2644 CA5F BD CA 2D JSR LCD_command_write 2645 CA62 39 RTS 2646 CA63 2647 CA63 C1 01 casel CMPB 1 2648 CA65 26 06 BNE case2 2649 CA67 8B CO ADDA 0COH 2650 CA69 BD CA 2D JSR LCD command write 2651 CA6C 39 RTS 2652 CA6D 2653 CA6D 39 case2 RTS 2654 CA6E 2655 CA6E 2656 CA6E 2657 CA6E write ASCII code to LCD at current position 2658 CA6E entry 2659 CA6E 2660 CA6E BD CA 34 putch lcd JSR LCD data write Page 35 of 40 MON68 LST 2 11 2558 17 06 2661 CA71 39 RTS 2662 72 2663 72 2664 72 2665 72 2666 72 print strings the LCD 2667 CA72 entry IX pointed to string 2668 72 2669 72 2670 CA72 A6 00 pstring LDAA 0 X 2671 CA74 26 01 BNE PSTRINGI 2672 76 39 RTS 2673 77 2674 77 DF B2 PSTRINGI STX IX2 2675 CA79 BD CA 6E JSR putch lcd 2676 DE B2 LDX IX2 2677 CATE 08 INX 2678 CA7F 20 F1 BRA pstring 2679 CA81 2680 CA81 2681 CA81 DEMO LCD 20X2 BIG LETTERS LCD 2682 CA81 2683 CA81 BD CA 44 DEMO_LCD JSR InitLcd 2684 CA84 2685 CA84 CE CB 65 DX 1 2686 CA87 BD CA 72 JSR pstring 2687 CA8A 2688 CA8A 86 00 LDAA 0 2689 CA8C C6 01 LDAB 1 2690 CA8E BD CA 59 JSR
Download Pdf Manuals
Related Search
Related Contents
MANUAL DE INSTRUÇÕES Monitor de Válvula Analógico Manual de instruccion - Futurasmus KNX Group Operating Instructions KATflow 100 Samsung B2710 2" 116.12g Black iconManual Q-See qr404-414 User's Manual USER MANUAL for USB2.0 to Data Link USB2.0 Data Link Cable マイトスケーラ MS−340 取扱説明書 Copyright © All rights reserved.
Failed to retrieve file