📄 cpu01mon.lst
字号:
00547 *
00548 * NOT HEX
00549 *
00550 FABE 31 NO$IHY INS . FIX THE STACK
00551 FABF 0D NO$IHX SEC
00552 FAC0 39 RTS
00554 *
00555 * I/O INITIALIZATION
00556 *
00557 FAC1 86 03 IOSET LDAA #%00000011 . TRASH THE ACIA
00558 FAC3 97 10 STAA ACCTRL
00559 FAC5 B6 F8 1E LDAA ACINIT . GET THE INIT VALUE
00560 FAC8 97 10 STAA ACCTRL
00561 FACA 39 RTS
00563 *
00564 * EXAMINE MEMORY
00565 *
00566 FACB D6 97 EXAMIN LDAB VALUE . GET THE ADDRESS
00567 FACD 96 98 LDAA VALUE+1
00568 FACF 9B AA ADDA OFFSET+1 . ADD THE OFFSET
00569 FAD1 D9 A9 ADCB OFFSET
00570 FAD3 D7 90 STAB ADDRES . SAVE THE VALUE
00571 FAD5 97 91 STAA ADDRES+1
00573 *
00574 FAD7 BD FA 09 EX$LP0 JSR PCRLF
00575 FADA CE 00 90 LDX #ADDRES . POINT AT THE DATA ADDRESS
00576 FADD BD FA 6D JSR OUT4HS . PRINT THE ADDRESS
00577 FAE0 DE 90 EX$LP1 LDX ADDRES . POINT AT THE DATA
00578 FAE2 BD FA 6F JSR OUT2HS . PRINT THE DATA
00580 *
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003 Page 0011
Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
00581 * WAIT FOR COMMAND
00582 *
00583 FAE5 CE FA F4 EX$LP2 LDX #EXMTBL . POINT AT TABLE OF COMMANDS
00584 FAE8 BD F9 61 JSR GETCMD . GET A VALUE AND/OR A COMMAND
00585 FAEB 24 03 BCC EX$JMP . LEGAL?
00586 FAED 7E F9 58 JMP WHATER . NO!
00588 *
00589 * DO TO IT
00590 *
00591 FAF0 EE 01 EX$JMP LDX 1,X . GET TASK ADDRESS
00592 FAF2 6E 00 JMP 0,X . DO THE REQUEST
00594 *
00595 * COMMAND TABLE
00596 *
00597 FAF4 2F EXMTBL FCB '/ . DISPLAY SAME ADDRESS
00598 FAF5 FB 15 FDB EX$SAM
00599 FAF7 20 FCB SPACE . DISPLAY NEXT ADDRESS
00600 FAF8 FB 07 FDB EX$NXT
00601 FAFA 0A FCB LF . DISPLAY NEXT ADDRESS (ALT. METHOD)
00602 FAFB FB 07 FDB EX$NXT
00603 FAFD 5E FCB '^ . DISPLAY LAST ADDRESS
00604 FAFE FB 0E FDB EX$BAK
00605 FB00 0D FCB CR . RETURN TO MONITOR
00606 FB01 FB 34 FDB EX$RTS
00607 FB03 3B FCB '; . CALCULATE OFFSET
00608 FB04 FB 37 FDB EX$OFS
00609 FB06 00 FCB 0
00611 *
00612 * DISPLAY NEXT ADDRESS
00613 *
00614 FB07 8D 10 EX$NXT BSR EX$STR . TRY TO STORE VALUE
00615 FB09 08 INX
00616 FB0A DF 90 STX ADDRES
00617 FB0C 20 C9 BRA EX$LP0
00619 *
00620 * DISPLAY LAST ADDRESS
00621 *
00622 FB0E 8D 09 EX$BAK BSR EX$STR . TRY TO STORE THE CHAR.
00623 FB10 09 DEX
00624 FB11 DF 90 STX ADDRES . SAVE THE NEW VALUE
00625 FB13 20 C2 BRA EX$LP0
00627 *
00628 * DISPLAY SAME ADDRESS
00629 *
00630 FB15 8D 02 EX$SAM BSR EX$STR . TRY TO STORE THE CHAR.
00631 FB17 20 C7 BRA EX$LP1 . DON'T MOVE TO NEW LINE
00633 *
00634 * STORE THE VALUE
00635 *
00636 FB19 DE 90 EX$STR LDX ADDRES . POINT AT MEMORY
00637 FB1B 7D 00 96 TST VFLAG . SHOULD WE STORE IT?
00638 FB1E 27 08 BEQ EXNSTR . NO
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003 Page 0012
Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
00639 FB20 96 98 LDAA VALUE+1 . GET THE VALUE
00640 FB22 A7 00 STAA 0,X . STORE IT
00641 FB24 A1 00 CMPA 0,X . SEE IF GOOD MEMORY
00642 FB26 26 01 BNE EX$BEL . NO CHANGE
00643 FB28 39 EXNSTR RTS
00645 *
00646 * NO CHANGE IN MEMORY
00647 *
00648 FB29 DF B1 EX$BEL STX TMP$00 . SAVE ADDRESS
00649 FB2B CE F8 56 LDX #MEMERR . MEMORY ERROR
00650 FB2E BD F9 FD JSR PDATA1
00651 FB31 DE B1 LDX TMP$00 . RESTORE ADDRESS
00652 FB33 39 RTS
00654 *
00655 * RETURN TO THE MONITOR
00656 *
00657 FB34 8D E3 EX$RTS BSR EX$STR . TRY TO STORE THE VALUE
00658 FB36 39 RTS . RETURN TO THE MONITOR
00660 *
00661 * CALCULATE OFFSET TO ADDRESS
00662 *
00663 FB37 BD F9 DE EX$OFS JSR INCHNP . GET THE NEXT CHAR.
00664 FB3A 81 4F CMPA #'O . OFFSET?
00665 FB3C 26 2F BNE EX$OEX . NO
00666 FB3E BD FA 71 JSR OUTS . SEND A SPACE
00667 FB41 D6 97 LDAB VALUE . GET THE OFFSET VALUE
00668 FB43 96 98 LDAA VALUE+1
00669 FB45 90 91 SUBA ADDRES+1 . SUBTRACT THE CURRENT ADDRESS
00670 FB47 D2 90 SBCB ADDRES
00671 FB49 80 01 SUBA #1 . SAME ADDRES =-1
00672 FB4B C2 00 SBCB #0
00673 FB4D 36 PSHA . SAVE IT ON THE STACK
00674 FB4E 30 TSX . POINT AT LONG VALUE
00675 FB4F C1 00 CMPB #0 . IF A <> $FF OR $00 THEN ILLEGAL BRANCH
00676 FB51 26 06 BNE EX$SHX . MIGHT STILL BE GOOD
00677 FB53 85 80 BITA #$80 . MSB MUST BE 0
00678 FB55 27 12 BEQ EX$SHT . GOOD BRANCH
00679 FB57 20 08 BRA EX$LNG . INVALID
00680 FB59 C1 FF EX$SHX CMPB #$FF
00681 FB5B 26 04 BNE EX$LNG . GOOD SHORT
00682 FB5D 85 80 BITA #$80 . MSB MUST BE 1
00683 FB5F 26 08 BNE EX$SHT . GOOD BRANCH
00684 FB61 CE F8 37 EX$LNG LDX #INVAL . INVALID BRANCH
00685 FB64 BD F9 FD JSR PDATA1
00686 FB67 20 03 BRA EX$FST . GO FIX THE STACK
00687 FB69 BD FA 6F EX$SHT JSR OUT2HS . OUTPUT (SHORT) VALUE
00688 FB6C 31 EX$FST INS . FIX THE STACK
00689 FB6D 7E FA D7 EX$OEX JMP EX$LP0
00691 *
00692 * SUB-COMMANDS
00693 *
00694 FB70 CE FB 7F SUBPRG LDX #SUBTBL . POINT AT TABLE OF SUB-COMMANDS
00695 FB73 BD F9 78 JSR CHKCMD . GET THE REQUEST
00696 FB76 24 03 BCC SB$JMP . LEGAL?
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003 Page 0013
Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
00697 FB78 7E F9 58 JMP WHATER . ILLEGAL COMMAND
00699 *
00700 * GO DO IT
00701 *
00702 FB7B EE 01 SB$JMP LDX 1,X . GET THE TASK
00703 FB7D 6E 00 JMP 0,X . GO TO IT.
00705 *
00706 * TABLE OF SUB-COMANDS
00707 *
00708 FB7F 52 SUBTBL FCB 'R . DISPLAY REGISTERS
00709 FB80 FA 18 FDB DSPREG
00710 FB82 47 FCB 'G . GO TO USER'S PROGRAM
00711 FB83 FB A7 FDB GO$USR
00712 FB85 53 FCB 'S . GO TO USER'S SUB-ROUTINE
00713 FB86 FB BB FDB GO$SUB
00714 FB88 56 FCB 'V . SET/DISPLAY BREAK-POINTS
00715 FB89 FC 29 FDB SBKRTN
00716 FB8B 55 FCB 'U . CLEAR BREAK-POINTS
00717 FB8C FC 61 FDB CBKRTN
00718 FB8E 44 FCB 'D . DISPLAY MEMORY
00719 FB8F FD CC FDB DSPMEM
00720 FB91 50 FCB 'P . CONTINUE USER'S PROGRAM
00721 FB92 FC 08 FDB GO$CON
00722 FB94 46 FCB 'F . FILL MEMORY WITH CHAR.
00723 FB95 FC F7 FDB FILMEM
00724 FB97 43 FCB 'C . COMPARE MEMORY WITH CHAR.
00725 FB98 FD 27 FDB CMPMEM
00726 FB9A 4D FCB 'M . MOVE MEMORY
00727 FB9B FD 71 FDB MOVMEM
00728 FB9D 49 FCB 'I . SET/RESET/PRINT IRQ FLAG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -