0055 A659 PCLR .BLOCK 1 ;PROG CTR
0056 A65A PCHR .BLOCK 1
0057 A65B SR .BLOCK 1 ;STACK
0058 A65C FR .BLOCK 1 ;FLAGS
0059 A65D AR .BLOCK 1 ;AREG
0060 A65E XR .BLOCK 1 ;XREG
0061 A65F YR .BLOCK 1 ;YREG
0062 A660 ;
0063 A660 ; I/O VECTORS FOLLOW
0064 A660 ;
0065 A660 INVEC .BLOCK 3 ;IN CHAR
0066 A663 OUTVEC .BLOCK 3 ;OUT CHAR
0067 A666 INSVEC .BLOCK 3 ;IN STATUS
0068 A669 URSVEC .BLOCK 3 ;UNRECOGNIZED SYNTAX VECTOR
0069 A66C URCVEC .BLOCK 3 ;UNRECOGNIZED CMD/ERROR VECTOR
0070 A66F SCNVEC .BLOCK 3 ;SCAN ON-BOARD DISPLAY
0071 A672 ;
0072 A672 ; TRACE, INTERRUPT VECTORS
0073 A672 ;
0074 A672 EXEVEC .BLOCK 2 ; EXEC CMD ALTERNATE INVEC
0075 A674 TRCVEC .BLOCK 2 ;TRACE
0076 A676 UBRKVC .BLOCK 2 ;USER BRK AFTER MONITOR
0077 A678 UBRKV =UBRKVC
0078 A678 UIRQVC .BLOCK 2 ;USER NON-BRK IRQ AFTER MONITOR
0079 A67A UIRQV =UIRQVC
0080 A67A NMIVEC .BLOCK 2 ;NMI
0081 A67C RSTVEC .BLOCK 2 ;RESET
0082 A67E IRQVEC .BLOCK 2 ;IRQ
0083 A680 ;
0084 A680 ;
0085 A680 ;I/O REG DEFINITIONS
0086 A680 PADA =$A400 ;KEYBOARD/DISPLAY
0087 A680 PBDA =$A402 ;SERIAL I/O
0088 A680 OR3A =$AC01 ;WP, DBON, DBOFF
0089 A680 DDR3A =OR3A+2 ;DATA DIRECTION FOR SAME
0090 A680 OR1B =$A000
0091 A680 DDR1B =$A002
0092 A680 PCR1 =$A00C ; POR/TAPE REMOTE
0093 A680 ;
0094 A680 ; MONITOR MAINLINE
0095 A680 ;
0096 8000 *=$8000
0097 8000 4C 7C 8B MONITR JMP MONENT ;INIT S, CLD, GET ACCESS
0098 8003 20 FF 80 WARM JSR GETCOM ;GET COMMAND + PARMS (0-3)
0099 8006 20 4A 81 JSR DISPAT ;DISPATCH CMD,PARMS TO EXEC BLKS
0100 8009 20 71 81 JSR ERMSG ;DISP ER MSG IF CARRY SET
0101 800C 4C 03 80 JMP WARM ;AND CONTINUE
0102 800F ;
0103 800F ; TRACE AND INTERRUPT ROUTINES
0104 800F ;
0105 800F 08 IRQBRK PHP ;IRQ OR BRK ?
0106 8010 48 PHA
0107 8011 8A TXA
0108 8012 48 PHA
0109 8013 BA TSX
0110 8014 BD 04 01 LDA $0104,X ;PICK UP FLAGS
0111 8017 29 10 AND #$10
0112 8019 F0 07 BEQ DETIRQ
0113 801B 68 PLA ;BRK
0114 801C AA TAX
0115 801D 68 PLA
0116 801E 28 PLP