⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpu01mon.lst

📁 一个简单的cpu的VHDL源码描述
💻 LST
📖 第 1 页 / 共 5 页
字号:
00180   F8E3 CE 00 DB                           LDX        #U$STK           . POINT AT THE USER'S STACK
00181   F8E6 DF 80                              STX        USTACK           . SET USER'S STACK
00182   F8E8 BD FA C1                           JSR        IOSET            . INIT THE PORTS

00184                          *
00185                          *    RESET THE VECTORS
00186                          *
00187   F8EB CE FF 6E                           LDX        #VECTBL          . POINT AT THE TABLE
00188   F8EE DF B1                              STX        TMP$00           . SAVE THE SOURCE
00189   F8F0 CE 00 82                           LDX        #VECBUF          . POINT AT THE BUFFER
00190   F8F3 DF B3                              STX        TMP$01           . SAVE THE DESTINATION
00191   F8F5 C6 0E                              LDAB       #2*7             . 14 BYTES TO MOVE
00192   F8F7 DE B1             VCTLP0           LDX        TMP$00           . GET THE POINTER
00193   F8F9 A6 00                              LDAA       0,X              . GET A BYTE
00194   F8FB 08                                 INX                         
00195   F8FC DF B1                              STX        TMP$00           
00196   F8FE DE B3                              LDX        TMP$01           . GET THE DESTINATION
00197   F900 A7 00                              STAA       0,X              
00198   F902 08                                 INX                         
00199   F903 DF B3                              STX        TMP$01           
00200   F905 5A                                 DECB                        
00201   F906 26 EF                              BNE        VCTLP0           . LOOP UNTIL FULL

00203                          *
00204                          *    CLEAR THE BREAK POINT TABLE
00205                          *
00206   F908 CE 00 99                           LDX        #BRKPTS          . POINT AT THE TABLE
00207   F90B C6 10                              LDAB       #4*4             
00208   F90D 6F 00             C$BRK            CLR        0,X              
00209   F90F 08                                 INX                         
00210   F910 5A                                 DECB                        
00211   F911 26 FA                              BNE        C$BRK            
00212   F913 86 01                              LDAA       #1               . SET THE IRQ BIT
00213   F915 97 95                              STAA       IRQFLG           . CLR THE IRQ FLAG
00214   F917 7F 00 A9                           CLR        OFFSET           . RESET THE ADDRESS OFFSET
00215   F91A 7F 00 AA                           CLR        OFFSET+1         

00217                          *
00218                          *    PREPARE TO TALK TO THE USER
00219                          *
00220   F91D CE F8 1F                           LDX        #HEADER          . SEND SIGN-ON MESSAGE
00221   F920 BD F9 FB                           JSR        PDATA            

00223                          *
00224                          *    CLEAR THE USER'S STACK
00225                          *
00226   F923 DE 80                              LDX        USTACK           
00227   F925 08                                 INX                         
00228   F926 86 07                              LDAA       #7               
00229   F928 6F 00             CL$STK           CLR        0,X              . CLEAR THIS BYTE
00230   F92A 08                                 INX                         
00231   F92B 4A                                 DECA                        
00232   F92C 26 FA                              BNE        CL$STK           
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003                                                         Page 0005
 Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
 

00233   F92E 9E 80                              LDS        USTACK           . POINT AT USER'S STACK

00235                          *
00236                          *    W A R M   S T A R T   E N T R Y   P O I N T
00237                          *
00238   F930 9F 80             WARM$            STS        USTACK           . SAVE THE USER'S STACK

00240                          *
00241                          *     H O T   S T A R T   E N T R Y   P O I N T
00242                          *
00243   F932 8E 00 FF          MON$             LDS        #STACK           . RESET MONITOR STACK
00244   F935 CE F8 31                           LDX        #PRMT            . SEND PROMPT TO USER
00245   F938 BD F9 FB                           JSR        PDATA            
00246   F93B 7F 00 92                           CLR        AECHO            . RESET THE ECHO FLAG
00247   F93E D6 95                              LDAB       IRQFLG           . SEE IF WE SHOULD SET/RESET IRQ BIT
00248   F940 C4 01                              ANDB       #1               . ISOLATE THE BIT
00249   F942 58                                 ASLB                        
00250   F943 58                                 ASLB                        
00251   F944 58                                 ASLB                        
00252   F945 58                                 ASLB                        . PUT THE BIT IN IT'S PLACE
00253   F946 07                                 TPA                         . GET THE CC'S
00254   F947 84 EF                              ANDA       #%11101111       . ISOLATE THE IRQ BIT
00255   F949 1B                                 ABA                         . ADD THE BIT
00256   F94A 06                                 TAP                         . RESTORE THE CC'S
00257   F94B CE F9 92                           LDX        #CMDTBL          . POINT AT TABLE OF COMMANDS
00258   F94E 8D 11                              BSR        GETCMD           
00259   F950 25 06                              BCS        WHATER           
00260   F952 EE 01                              LDX        1,X              . DO THE COMMAND
00261   F954 AD 00                              JSR        0,X              
00262   F956 20 DA                              BRA        MON$             

00264                          *
00265                          *   SEND A 'WHAT' TO USER
00266                          *
00267   F958 CE F8 63          WHATER           LDX        #WHAT            
00268   F95B BD F9 FD                           JSR        PDATA1           
00269   F95E 7E F9 32                           JMP        MON$             

00271                          *
00272                          *    GET USER'S REQUEST
00273                          *
00274   F961 DF B7             GETCMD           STX        TMP$03           . SAVE TABLE ADDRESS
00275   F963 CE 00 00          CMDLOP           LDX        #0               . ZERO OUT VALUE
00276   F966 DF 97                              STX        VALUE            
00277   F968 7F 00 96                           CLR        VFLAG            
00278   F96B BD F9 DE          CMDLP0           JSR        INCHNP           . GET A CHAR. FROM THE USER
00279   F96E BD F9 9C                           JSR        CHKHEX           . IS IT A HEX CHAR
00280   F971 25 0A                              BCS        CHKCM0           . CHECK FOR COMMAND
00281   F973 BD F9 B8                           JSR        ADDHEX           . ADD TO 'VALUE' A HEX NUMBER
00282   F976 20 F3                              BRA        CMDLP0           . RETURN TO LOOP

00284                          *
00285                          *     CHECK FOR COMMAND
00286                          *
00287   F978 BD F9 DE          CHKCMD           JSR        INCHNP           . GET A CHAR.
00288   F97B DF B7                              STX        TMP$03           . SAVE THE POINTER
00289   F97D DE B7             CHKCM0           LDX        TMP$03           . POINT AT TABLE OF LEGAL COMMANDS
00290   F97F 6D 00                              TST        0,X              . SEE IF DUMMY TABLE
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003                                                         Page 0006
 Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
 

00291   F981 27 0B                              BEQ        CHKDUM           . JUST EXIT
00292   F983 A1 00             CHKCL0           CMPA       0,X              . THIS COMMAND?
00293   F985 27 09                              BEQ        CMD$DO           . YES
00294   F987 08                                 INX                         . MOVE TO NEXT COMMAND
00295   F988 08                                 INX                         
00296   F989 08                                 INX                         
00297   F98A 6D 00                              TST        0,X              . END OF TABLE?
00298   F98C 26 F5                              BNE        CHKCL0           . NO KEEP GOING
00299   F98E 0D                CHKDUM           SEC                         . SET FOR ILLEGAL COMMAND
00300   F98F 39                                 RTS                         

00302                          *
00303                          *    GOOD COMMAND
00304                          *
00305   F990 0C                CMD$DO           CLC                         . SET FOR LEGAL COMMAND RECEIVED
00306   F991 39                                 RTS                         

00308                          *
00309                          *    TABLE OF LEGAL COMMANDS
00310                          *
00311   F992 2F                CMDTBL           FCB        '/               . EXAMINE MEMORY
00312   F993 FA CB                              FDB        EXAMIN           
00313   F995 3B                                 FCB        ';               . SUB-PROGRAM ROUTINE
00314   F996 FB 70                              FDB        SUBPRG           
00315   F998 0D                                 FCB        CR               . DUMMY COMMAND (IGNORE)
00316   F999 F9 8E                              FDB        CHKDUM           
00317   F99B 00                                 FCB        0                . END OF TABLE

00319                          *
00320                          *    CHECK CHARACTER IN 'A' FOR HEX
00321                          *
00322   F99C 81 30             CHKHEX           CMPA       #'0              . SEE IF NUMERIC
00323   F99E 2D 0C                              BLT        CHKHNO           
00324   F9A0 81 39                              CMPA       #'9              
00325   F9A2 23 0A                              BLS        CISHEX           
00326   F9A4 81 41                              CMPA       #'A              . ALFA?
00327   F9A6 2D 04                              BLT        CHKHNO           
00328   F9A8 81 46                              CMPA       #'F              
00329   F9AA 23 02                              BLS        CISHEX           
00330   F9AC 0D                CHKHNO           SEC                         
00331   F9AD 39                                 RTS                         

00333                          *
00334   F9AE 80 30             CISHEX           SUBA       #'0              
00335   F9B0 81 09                              CMPA       #9               . DONE?
00336   F9B2 23 02                              BLS        CHKHDN           
00337   F9B4 80 07                              SUBA       #7               . ALFA
00338   F9B6 0C                CHKHDN           CLC                         
00339   F9B7 39                                 RTS                         

00341                          *
00342                          *      ADD A HEX NUMBER IN 'A' TO 'VALUE'
00343                          *
00344   F9B8 78 00 98          ADDHEX           ASL        VALUE+1          . MULTIPLY VALUE BY 16
00345   F9BB 79 00 97                           ROL        VALUE            
00346   F9BE 78 00 98                           ASL        VALUE+1          
00347   F9C1 79 00 97                           ROL        VALUE            
00348   F9C4 78 00 98                           ASL        VALUE+1          
Macro Cross Assembler RMCA6800 (3.11) - Mon Dec 22 07:46:02 2003                                                         Page 0007
 Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
 

00349   F9C7 79 00 97                           ROL        VALUE            
00350   F9CA 78 00 98                           ASL        VALUE+1          
00351   F9CD 79 00 97                           ROL        VALUE            
00352   F9D0 9B 98                              ADDA       VALUE+1          
00353   F9D2 97 98                              STAA       VALUE+1          
00354   F9D4 24 03                              BCC        ADDONE           
00355   F9D6 7C 00 97                           INC        VALUE            
00356   F9D9 86 01             ADDONE           LDAA       #1               . SET FLAG
00357   F9DB 97 96                              STAA       VFLAG            
00358   F9DD 39                                 RTS                         

00360                          *
00361                          *    INPUT 1 CHARACTER FROM ACIA WO/PARITY
00362                          *

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -