📄 cpu01mon.lst
字号:
00363 F9DE 8D 03 INCHNP BSR INCH . GET A CHAR.
00364 F9E0 84 7F ANDA #$7F . REMOVE THE PARITY BIT
00365 F9E2 39 RTS
00367 *
00368 * INPUT 1 CHARACTER FROM ACIA W/PARITY
00369 *
00370 F9E3 96 10 INCH LDAA ACSTAT . CHECK FOR RDRF
00371 F9E5 85 01 BITA #RDRF
00372 F9E7 27 FA BEQ INCH
00373 F9E9 96 11 LDAA RXDATA . GET THE CHAR.
00374 F9EB 7D 00 92 TST AECHO . SHOULD WE ECHO THE CHAR.
00375 F9EE 26 0A BNE OUTRTS
00377 *
00378 * OUTPUT 1 CHARACTER
00379 *
00380 F9F0 37 OUTCH PSHB . SAVE B REG
00381 F9F1 D6 10 OUT$LP LDAB ACSTAT . WAIT FOR TDRE
00382 F9F3 C5 02 BITB #TDRE
00383 F9F5 27 FA BEQ OUT$LP
00384 F9F7 97 11 STAA TXDATA . OUTPUT THE CHAR.
00385 F9F9 33 PULB . RESTORE THE REGS
00386 F9FA 39 OUTRTS RTS
00388 *
00389 * PRINT <CR><LF>'STRING'
00390 *
00391 F9FB 8D 0C PDATA BSR PCRLF . PRINT A <CR><LF>
00392 F9FD A6 00 PDATA1 LDAA 0,X . GET A CHAR.
00393 F9FF 08 INX . MOVE TO NEXT CHAR.
00394 FA00 81 04 CMPA #4 . EOT?
00395 FA02 27 04 BEQ P$DONE . YES
00396 FA04 8D EA BSR OUTCH
00397 FA06 20 F5 BRA PDATA1
00398 FA08 39 P$DONE RTS
00400 *
00401 * PRINT A <CR><LF>
00402 *
00403 FA09 DF B5 PCRLF STX TMP$02 . SAVE THE XREG
00404 FA0B CE F8 A3 LDX #CRLF
00405 FA0E 8D ED BSR PDATA1 . SEND THIS STRING
00406 FA10 DE B5 LDX TMP$02 . RESTORE THE XREG
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003 Page 0008
Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
00407 FA12 39 RTS
00409 *
00410 * DISPLAY MPU REGISTERS
00411 *
00412 FA13 CE F8 AA DSPRTS LDX #RTSSTR
00413 FA16 20 19 BRA DSPRTN
00415 *
00416 FA18 CE F8 B1 DSPREG LDX #REGSTR
00417 FA1B 20 14 BRA DSPRTN
00419 *
00420 FA1D CE F8 B9 DSPSWI LDX #SWISTR
00421 FA20 20 0F BRA DSPRTN
00423 *
00424 FA22 CE F8 B5 DSPIRQ LDX #IRQSTR
00425 FA25 20 0A BRA DSPRTN
00427 *
00428 FA27 CE F8 C1 DSPBRK LDX #BRKSTR
00429 FA2A 20 05 BRA DSPRTN
00431 *
00432 FA2C CE F8 BD DSPNMI LDX #NMISTR
00433 FA2F 20 00 BRA DSPRTN
00435 *
00436 * DISPLAY THE REGISTERS
00437 *
00438 FA31 BD F9 FB DSPRTN JSR PDATA . PRINT THE STRING
00439 FA34 CE F8 C9 LDX #DSPSTR
00440 FA37 DF B3 STX TMP$01
00441 FA39 DE 80 LDX USTACK . POINT AT THE USER'S STACK
00442 FA3B 08 INX
00443 FA3C C6 03 LDAB #3 . PRINT THE 3, 2 BYTE REGISTERS
00444 FA3E 8D 1B BSR PRNT2B
00445 FA40 C6 02 LDAB #2 . PRINT THE 2, 4 BYTE REGISTERS
00446 FA42 8D 05 BSR PRNT4B
00447 FA44 CE 00 80 LDX #USTACK . POINT AT THE ADDRESS
00448 FA47 C6 01 LDAB #1 . PRINT THE STACK ADDRESS
00450 *
00451 * PRINT 4 BYTE REGISTER
00452 *
00453 FA49 DF B1 PRNT4B STX TMP$00
00454 FA4B DE B3 LDX TMP$01
00455 FA4D BD F9 FD JSR PDATA1 . PRINT THE STRING
00456 FA50 DF B3 STX TMP$01 . SWAP THE REGISTERS
00457 FA52 DE B1 LDX TMP$00
00458 FA54 BD FA 6D JSR OUT4HS . PRINT VALUE
00459 FA57 5A DECB
00460 FA58 26 EF BNE PRNT4B
00461 FA5A 39 RTS
00463 *
00464 * PRINT 2 BYTE REGISTER
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003 Page 0009
Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
00465 *
00466 FA5B DF B1 PRNT2B STX TMP$00
00467 FA5D DE B3 LDX TMP$01
00468 FA5F BD F9 FD JSR PDATA1 . PRINT THE STRING
00469 FA62 DF B3 STX TMP$01 . SWAP THE REGISTERS
00470 FA64 DE B1 LDX TMP$00
00471 FA66 BD FA 6F JSR OUT2HS . PRINT THE DATA
00472 FA69 5A DECB
00473 FA6A 26 EF BNE PRNT2B
00474 FA6C 39 RTS
00476 *
00477 * OUTPUT HEX CHARS W/SPACE
00478 *
00479 FA6D 8D 07 OUT4HS BSR OUT2H
00480 FA6F 8D 05 OUT2HS BSR OUT2H
00481 FA71 86 20 OUTS LDAA #SPACE . OUTPUT A SPACE
00482 FA73 7E F9 F0 JMP OUTCH
00484 *
00485 * OUTPUT 2 HEX CHAR.S
00486 *
00487 FA76 A6 00 OUT2H LDAA 0,X . GET THE CHAR.
00488 FA78 44 LSRA . MOVE MSN TO LSN
00489 FA79 44 LSRA
00490 FA7A 44 LSRA
00491 FA7B 44 LSRA
00492 FA7C 8D 03 BSR HEX$IT
00493 FA7E A6 00 LDAA 0,X . GET CHAR. AGAIN
00494 FA80 08 INX
00496 *
00497 * CONVERT 'A' REG TO BINARY (LSN) TO ASCII
00498 *
00499 FA81 84 0F HEX$IT ANDA #%1111 . SAVE ONLY LSN
00500 FA83 8A 30 ORAA #'0 . MAKE ASCII
00501 FA85 81 39 CMPA #'9
00502 FA87 23 02 BLS OUTHX . OUTPUT THE CHAR
00503 FA89 8B 07 ADDA #7 . MAKE ALFA
00504 FA8B 7E F9 F0 OUTHX JMP OUTCH
00506 *
00507 * INPUT 4 HEX CHARS
00508 *
00509 FA8E 8D 0E IN4HEX BSR IN2HEX
00510 FA90 25 2D BCS NO$IHX . WAS'NT HEX
00511 FA92 36 PSHA . SAVE THE MSB
00512 FA93 36 PSHA
00513 FA94 8D 08 BSR IN2HEX
00514 FA96 30 TSX . POINT AT RESULT
00515 FA97 A7 01 STAA 1,X . SAVE THE LSB
00516 FA99 EE 00 LDX 0,X . GET THE RESULT
00517 FA9B 31 INS . FIX THE STACK
00518 FA9C 31 INS
00519 FA9D 39 RTS
00521 *
00522 * INPUT 2 HEX CHARS
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003 Page 0010
Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
00523 *
00524 FA9E 8D 18 IN2HEX BSR INHEX . GET THE MSN
00525 FAA0 25 1D BCS NO$IHX . NOT HEX
00526 FAA2 48 ASLA . PUT IT IN THE MS NIBBLE
00527 FAA3 48 ASLA
00528 FAA4 48 ASLA
00529 FAA5 48 ASLA
00530 FAA6 97 B1 STAA TMP$00 . SAVE IT
00531 FAA8 8D 0E BSR INHEX . GET THE LSN
00532 FAAA 25 13 BCS NO$IHX . NOT HEX
00533 FAAC 9B B1 ADDA TMP$00 . ADD NIBBLES
00534 FAAE 97 B1 STAA TMP$00 . SAVE IT
00535 FAB0 9B 94 ADDA CHKSUM . ADD TO CHECK SUM
00536 FAB2 97 94 STAA CHKSUM
00537 FAB4 96 B1 LDAA TMP$00 . GET THE CHAR.
00538 FAB6 0C CLC
00539 FAB7 39 RTS
00541 *
00542 * INPUT 1 HEX CHAR. IN A
00543 *
00544 FAB8 BD F9 DE INHEX JSR INCHNP . GET A BYTE FROM USER
00545 FABB 7E F9 9C JMP CHKHEX . CHECK AND CONVERT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -