📄 cpu01mon.lst
字号:
00729 FB9E FD 99 FDB IRQ$RT
00730 FBA0 4F FCB 'O . SET OR RESET OFFSET
00731 FBA1 FC 14 FDB OFS$RT
00732 FBA3 4C FCB 'L . 'S1' RECORD LOADER
00733 FBA4 FE 44 FDB LOAD
00734 FBA6 00 FCB 0
00736 *
00737 * GO TO USER PROGRAM
00738 *
00739 FBA7 7D 00 96 GO$USR TST VFLAG . SEE IF VALID REQUEST
00740 FBAA 27 53 BEQ GO$BAD . CAN'T DO THAT
00741 FBAC 9E 80 LDS USTACK . GET USER'S STACK
00742 FBAE 30 TSX
00743 FBAF D6 97 LDAB VALUE . GET NEW ADDRESS
00744 FBB1 96 98 LDAA VALUE+1
00745 FBB3 E7 05 STAB 5,X . SET PC COUNTER
00746 FBB5 A7 06 STAA 6,X
00747 FBB7 BD FC 98 GOU$DO JSR SETBRK . GO SET THE BREAK POINTS
00748 FBBA 3B RTI
00750 *
00751 * GO TO USER'S SUB-ROUTINE
00752 *
00753 FBBB 7D 00 96 GO$SUB TST VFLAG . SEE IF ADDRESS SET
00754 FBBE 27 3F BEQ GO$BAD . CAN'T
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003 Page 0014
Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
00755 FBC0 9E 80 LDS USTACK . GET USER'S STACK
00757 *
00758 * MOVE STACK DOWN 2 PLACES
00759 *
00760 FBC2 34 DES . MAKE ROOM ON STACK FOR ADDRESS OF PART #2
00761 FBC3 34 DES
00762 FBC4 30 TSX . POINT AT DATA ON STACK
00763 FBC5 C6 07 LDAB #7 . 7 BYTES TO MOVE
00764 FBC7 A6 02 GO$SBL LDAA 2,X . GET A BYTE
00765 FBC9 A7 00 STAA 0,X
00766 FBCB 08 INX
00767 FBCC 5A DECB
00768 FBCD 26 F8 BNE GO$SBL
00769 FBCF CE FB E7 LDX #GO$SB2 . POINT AT PART #2
00770 FBD2 DF B1 STX TMP$00
00771 FBD4 30 TSX
00772 FBD5 D6 B1 LDAB TMP$00 . POINT AT PART #2 (MSB)
00773 FBD7 96 B2 LDAA TMP$00+1 . (LSB)
00774 FBD9 E7 07 STAB 7,X . SET 'RETURN' ADDRESS
00775 FBDB A7 08 STAA 8,X
00776 FBDD D6 97 LDAB VALUE . USER'S ADDRESS
00777 FBDF 96 98 LDAA VALUE+1
00778 FBE1 E7 05 STAB 5,X . SET 'PC'
00779 FBE3 A7 06 STAA 6,X
00780 FBE5 20 D0 BRA GOU$DO
00782 *
00783 * SUB-ROUTINE PART #2
00784 *
00785 FBE7 3F GO$SB2 SWI . CAUSE A BREAKPOINT CHECK
00786 FBE8 SUB$RK EQU *
00788 *
00789 * PART THREE OF SUB-ROUTINE CALL
00790 *
00791 FBE8 9F 80 GO$SB3 STS USTACK . RESTORE USER'S STACK
00792 FBEA 30 TSX
00793 FBEB 8E 00 FF LDS #STACK . GET THE DEBUG STACK
00794 FBEE D6 97 LDAB VALUE
00795 FBF0 96 98 LDAA VALUE+1
00796 FBF2 E7 05 STAB 5,X . PUT CALLED ADDRESS IN PC
00797 FBF4 A7 06 STAA 6,X
00798 FBF6 BD FA 13 JSR DSPRTS
00799 FBF9 BD FC B9 JSR CLRBRK . GO RESET THE BREAK POINTS
00800 FBFC 7E F9 32 JMP MON$
00802 *
00803 * CAN'T DO IT
00804 *
00805 FBFF 8E 00 FF GO$BAD LDS #STACK . RESET DEBUG STACK
00806 FC02 BD F9 58 JSR WHATER . CANT DO IT
00807 FC05 7E F9 32 JMP MON$
00809 *
00810 * CONTINUE WITH USER'S PROGRAM
00811 *
00812 FC08 DE 80 GO$CON LDX USTACK
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003 Page 0015
Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
00813 FC0A EE 06 LDX 6,X . GET USER'S PC
00814 FC0C 7C 00 96 INC VFLAG . SET THE FLAG
00815 FC0F DF 97 STX VALUE . SET PC
00816 FC11 7E FB A7 JMP GO$USR . GO TO USER'S PROGRAM
00818 *
00819 * SET/DISPLAY THE OFFSET
00820 *
00821 FC14 7D 00 96 OFS$RT TST VFLAG . SET OR DISPLAY
00822 FC17 27 05 BEQ OFS$DS . DISPLAY
00823 FC19 DE 97 LDX VALUE . GET THE NEW OFFSET
00824 FC1B DF A9 STX OFFSET
00825 FC1D 39 RTS
00827 *
00828 FC1E 86 3D OFS$DS LDAA #'= . SEND AN EQUAL SIGN
00829 FC20 BD F9 F0 JSR OUTCH
00830 FC23 CE 00 A9 LDX #OFFSET . POINT AT THE OFFSET VALUE
00831 FC26 7E FA 6D JMP OUT4HS
00833 *
00834 * SET/DISPLAY BREAK-POINTS
00835 *
00836 FC29 7D 00 96 SBKRTN TST VFLAG . SEE IF DISPLAY OR SET
00837 FC2C 27 1F BEQ BK$DSP
00839 *
00840 * SET A BREAK POINT
00841 *
00842 FC2E CE 00 99 LDX #BRKPTS . FIND EMPTY BREAK POINT AREA
00843 FC31 C6 03 LDAB #3 . 3 PLACES TO CHECK
00844 FC33 A6 00 BRK$L0 LDAA 0,X . SEE IF EMPTY
00845 FC35 AA 01 ORAA 1,X
00846 FC37 27 07 BEQ BRK$00
00847 FC39 08 INX . MOVE TO NEXT PLACE
00848 FC3A 08 INX
00849 FC3B 08 INX
00850 FC3C 08 INX
00851 FC3D 5A DECB
00852 FC3E 26 F3 BNE BRK$L0
00854 *
00855 FC40 D6 97 BRK$00 LDAB VALUE . POINT AT ADDRESS OF BREAK POINT
00856 FC42 96 98 LDAA VALUE+1
00857 FC44 E7 00 STAB 0,X . SAVE THIS AREA
00858 FC46 A7 01 STAA 1,X
00859 FC48 6F 02 CLR 2,X
00860 FC4A 6F 03 CLR 3,X
00861 FC4C 39 RTS
00863 *
00864 * DISPLAY THE BREAK POINTS
00865 *
00866 FC4D CE F8 92 BK$DSP LDX #BRKSTG . SEND THE STRING MESSAGE
00867 FC50 BD F9 FB JSR PDATA
00868 FC53 CE 00 99 LDX #BRKPTS . POINT AT THE BREAK POINT ADDRESSES
00869 FC56 C6 04 LDAB #4 . 4 TO DISPLAY
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003 Page 0016
Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
00871 *
00872 FC58 BD FA 6D BK$DL0 JSR OUT4HS . PRINT THE ADDRESS
00873 FC5B 08 INX
00874 FC5C 08 INX
00875 FC5D 5A DECB
00876 FC5E 26 F8 BNE BK$DL0
00877 FC60 39 RTS
00879 *
00880 * CLEAR BREAK POINTS
00881 *
00882 FC61 7D 00 96 CBKRTN TST VFLAG . DO ALL OR ONE?
00883 FC64 27 26 BEQ CBK$AL . ALL
00885 *
00886 * SEARCH FOR BREAK POINT ADDRESS
00887 *
00888 FC66 CE 00 99 LDX #BRKPTS . POINT AT THE TABLE
00889 FC69 C6 04 LDAB #4 . 4 PLACES TO CHECK
00890 FC6B 97 B1 STAA TMP$00
00891 FC6D D6 97 LDAB VALUE
00892 FC6F 96 98 LDAA VALUE+1
00893 FC71 E1 00 CBK$L0 CMPB 0,X . CHECK MSB
00894 FC73 26 04 BNE CBK$NX . NOT THIS ONE
00895 FC75 A1 01 CMPA 1,X . CHECK LSB
00896 FC77 27 0A BEQ CBK$CL . CLEAR THIS LOCATION
00897 FC79 08 CBK$NX INX . MOVE TO NEXT LOCATION
00898 FC7A 08 INX
00899 FC7B 08 INX
00900 FC7C 08 INX
00901 FC7D 7A 00 B1 DEC TMP$00 . DECR. COUNTER
00902 FC80 26 EF BNE CBK$L0
00903 FC82 39 RTS
00905 *
00906 FC83 6F 00 CBK$CL CLR 0,X . CLEAR THIS LOCATION
00907 FC85 6F 01 CLR 1,X
00908 FC87 6F 02 CLR 2,X
00909 FC89 6F 03
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -