亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cpu01mon.sa

?? 一個簡單的cpu的VHDL源碼描述
?? SA
?? 第 1 頁 / 共 2 頁
字號:
**===========================================================================**
**
**  D E B U G G E R    CPU01 Debug Monitor
**
**  www.OpenCores.Org - August 2003
**  This software adheres to the GNU public license  
**
** File name      : cpu01mon.sa
**
** Purpose        : Implements a built-in Debug monitor
**                  for the System6801 compatible CPU core
**
** Author         : Michael L. Hasenfratz Sr.
**
**===========================================================================**
**
** Revision History:
**
** Date:		Revision	Author
**===========================================================================**
** 12 Oct 2003		0.1		Michael L. Hasenfratz Sr.
**
 NAM CPU01MON
 TTL Sunday, October 12, 2003 (mlh) DEBUG MONITOR FOR System6801
 SPC 1
*
*    This is a debug monitor for use with
*    the OpenCore System6801 CPU 
*    Or MOTOROLA MC6800 MICROPROCESSORS
*
 SPC 1
*
*    PROGRAM START ADDRESS
*
ROMSTR EQU $F800 . ROM START ADDRESS
RAMSTR EQU $0080 . RAM START ADDRESS
RAMEND EQU $0100 . RAM END ADDRESS
IO$STR EQU $0000 . INTERNAL REGISTERS
 SPC 1
*
*      wb_acia (ACIA) SERIAL PORT ADDRESS DEFINITION
*
ACIA$S EQU IO$STR+$10 . Start of the ACIA
ACCTRL EQU ACIA$S+0 . ACIA CONTROL
ACSTAT EQU ACIA$S+0 . ACIA STATUS
RXDATA EQU ACIA$S+1 . RECEIVE DATA PORT
TXDATA EQU ACIA$S+1 . TRANSMIT DATA PORT
RDRF   EQU %00000001 . RCV DATA REG FULL
TDRE   EQU %00000010 . TX DATA REG EMPTY
 SPC 1
*
*    SOME ASCII CHARACTER DEFINITIONS
*
CR EQU $0D . <CR>
LF EQU $0A . <LF>
SPACE EQU $20 . <SPACE>
BELL EQU $07 . <BELL/BEEP>
 SPC 1
*
*     RAM LOCATIONS REQUIRED 
*
       ORG RAMSTR
VARSTR EQU *
USTACK RMB 2 . USER'S STACK POINTER
 SPC 1
*
*      VECTOR BUFFER
*
VECBUF EQU *
IRQSCI RMB 2 . 'SCI' VECTOR
IRQTOF RMB 2 . 'TOF' VECTOR
IRQOCF RMB 2 . 'OCF' VECTOR
IRQICF RMB 2 . 'ICF' VECTOR
IRQ$VC RMB 2 . IRQ VECTOR
SWI$VC RMB 2 . SWI #1 VECTOR
NMI$VC RMB 2 . NMI VECTOR
 SPC 1
*
*      MISC. REGISTERS
*
ADDRES RMB 2 . ADDRESS TEMPORARY STORAGE
AECHO RMB 1 . ECHO FLAG
BYTECT RMB 1 . BYTE COUNT (LOADER)
CHKSUM RMB 1 . CHECK-SUM (LOADER)
IRQFLG RMB 1 . IRQ FLAG 0=STOP IRQ
VFLAG RMB 1 . VALUE FLAG 0=NO ENTRY
VALUE RMB 2 . BINARY VALUE ENTERED
BRKPTS RMB 4*4 . 4 BREAK-POINTS MAY BE SET
OFFSET RMB 2 . OFFSET TO BE ADDED TO ADDRESSES
DB$STK RMB 2 . DEBUG STACK
BEGADR RMB 2 . BEGIN ADDRESS
ENDADR RMB 2 . END ADDRESS
TMP$00 RMB 2 . SOME TEMPORARY STORAGE
TMP$01 RMB 2
TMP$02 RMB 2
TMP$03 RMB 2
VAREND EQU *
 SPC 1
U$STK EQU (VAREND+((RAMEND-VAREND)/2))-1 . USER'S STACK
STACK EQU RAMEND-1
 SPC 1
*
*    ROM START (JUMP TABLE)
*
 ORG ROMSTR
 JMP INCH . INPUT 1 CHAR FROM CONSOLE (W/PARITY)
 JMP INCHNP . INPUT 1 CHAR FROM CONSOLE (WO/PARITY)
 JMP OUTCH . OUTPUT 1 CHAR TO CONSOLE
 JMP PDATA . PRINT <CR>,<LF>,<NULLS> & STRING (TO EOT)
 JMP PDATA1 . PRINT STRING (TO EOT)
 JMP PCRLF . PRINT <CR>,<LF>,<NULLS>
 JMP GO$SB2 . RE-ENTER MONITOR (WO/INITIALIZATION)
 JMP BEGEND . GET BEGIN/END ADDRESSES
 JMP OUT2HS . PRINT 2 HEX CHARS & <SP>
 JMP OUT4HS . PRINT 4 HEX CHARS & <SP>
 SPC 1
*
*   (wb_acia) ACIA INITIALIZATION VALUE
*
ACINIT FCB %00010101 . NO RCV IRQ, NO XMIT IRQ, 8 BIT, NO PARITY, 1 STOP, 9600 BAUD (CNTL)
 SPC 1
*
*    S T R I N G S   A N D   T H I N G S
*
HEADER FCC /CPU01MON Ver. 2.2/
 FCB 4
PRMT FCB 0,0,0,0,'>,4
INVAL FCC / - INV/
 FCB 4
BEGMSG FCC /BEG ADDR - /
 FCB 4
ENDMSG FCC /END ADDR - /
 FCB 4
MEMERR FCB $13 . READER OFF
 FCC / - NO CHANGE/
WHAT FCB BELL,4
CMPMSG FCC /NO COMPARE @/
 FCB BELL,4
CHKERR FCB $13 . READER OFF
 FCC / - CHK SUM ERR/
 FCB BELL,4
LOADER FCB $13 . READER OFF
 FCC / - LOAD ERR/
 FCB BELL,4
BRKSTG FCC /   BREAK - POINTS/
CRLF FCB CR,LF,0,0,0,0,4
RTSSTR FCC /RETURN/
 FCB 4
REGSTR FCC /REG/
 FCB 4
IRQSTR FCC /IRQ/
 FCB 4
SWISTR FCC /SWI/
 FCB 4
NMISTR FCC /NMI/
 FCB 4
BRKSTR FCC /BRK PNT/
 FCB 4
DSPSTR FCC / - CC=/ . REGISTER DUMP STRING
 FCB 4
 FCC /B=/
 FCB 4
 FCC /A=/
 FCB 4
 FCC /X=/
 FCB 4
 FCC /PC=/
 FCB 4
 FCC /S=/
 FCB 4
 SPC 1
*
*    R E S T A R T   E N T R Y   P O I N T
*
COLD$ LDS #STACK . SET THE STACK
 SPC 1
*
*       SET UP USERS STACK
*
 LDX #U$STK . POINT AT THE USER'S STACK
 STX USTACK . SET USER'S STACK
 JSR IOSET . INIT THE PORTS
 SPC 1
*
*    RESET THE VECTORS
*
 LDX #VECTBL . POINT AT THE TABLE
 STX TMP$00 . SAVE THE SOURCE
 LDX #VECBUF . POINT AT THE BUFFER
 STX TMP$01 . SAVE THE DESTINATION
 LDAB #2*7 . 14 BYTES TO MOVE
VCTLP0 LDX TMP$00 . GET THE POINTER
 LDAA 0,X . GET A BYTE
 INX
 STX TMP$00
 LDX TMP$01 . GET THE DESTINATION
 STAA 0,X
 INX
 STX TMP$01
 DECB
 BNE VCTLP0 . LOOP UNTIL FULL
 SPC 1
*
*    CLEAR THE BREAK POINT TABLE
*
 LDX #BRKPTS . POINT AT THE TABLE
 LDAB #4*4
C$BRK CLR 0,X
 INX
 DECB
 BNE C$BRK
 LDAA #1 . SET THE IRQ BIT
 STAA IRQFLG . CLR THE IRQ FLAG
 CLR OFFSET . RESET THE ADDRESS OFFSET
 CLR OFFSET+1
 SPC 1
*
*    PREPARE TO TALK TO THE USER
*
 LDX #HEADER . SEND SIGN-ON MESSAGE
 JSR PDATA
 SPC 1
*
*    CLEAR THE USER'S STACK
*
 LDX USTACK
 INX
 LDAA #7
CL$STK CLR 0,X . CLEAR THIS BYTE
 INX
 DECA
 BNE CL$STK
 LDS USTACK . POINT AT USER'S STACK
 SPC 1
*
*    W A R M   S T A R T   E N T R Y   P O I N T
*
WARM$ STS USTACK . SAVE THE USER'S STACK
 SPC 1
*
*     H O T   S T A R T   E N T R Y   P O I N T
*
MON$ LDS #STACK . RESET MONITOR STACK
 LDX #PRMT . SEND PROMPT TO USER
 JSR PDATA
 CLR AECHO . RESET THE ECHO FLAG
 LDAB IRQFLG . SEE IF WE SHOULD SET/RESET IRQ BIT
 ANDB #1 . ISOLATE THE BIT
 ASLB
 ASLB
 ASLB
 ASLB . PUT THE BIT IN IT'S PLACE
 TPA . GET THE CC'S
 ANDA #%11101111 . ISOLATE THE IRQ BIT
 ABA . ADD THE BIT
 TAP . RESTORE THE CC'S
 LDX #CMDTBL . POINT AT TABLE OF COMMANDS
 BSR GETCMD
 BCS WHATER
 LDX 1,X . DO THE COMMAND
 JSR 0,X
 BRA MON$
 SPC 1
*
*   SEND A 'WHAT' TO USER
*
WHATER LDX #WHAT
 JSR PDATA1
 JMP MON$
 SPC 1
*
*    GET USER'S REQUEST
*
GETCMD STX TMP$03 . SAVE TABLE ADDRESS
CMDLOP LDX #0 . ZERO OUT VALUE
 STX VALUE
 CLR VFLAG
CMDLP0 JSR INCHNP . GET A CHAR. FROM THE USER
 JSR CHKHEX . IS IT A HEX CHAR
 BCS CHKCM0 . CHECK FOR COMMAND
 JSR ADDHEX . ADD TO 'VALUE' A HEX NUMBER
 BRA CMDLP0 . RETURN TO LOOP
 SPC 1
*
*     CHECK FOR COMMAND
*
CHKCMD JSR INCHNP . GET A CHAR.
 STX TMP$03 . SAVE THE POINTER
CHKCM0 LDX TMP$03 . POINT AT TABLE OF LEGAL COMMANDS
 TST 0,X . SEE IF DUMMY TABLE
 BEQ CHKDUM . JUST EXIT
CHKCL0 CMPA 0,X . THIS COMMAND?
 BEQ CMD$DO . YES
 INX . MOVE TO NEXT COMMAND
 INX
 INX
 TST 0,X . END OF TABLE?
 BNE CHKCL0 . NO KEEP GOING
CHKDUM SEC . SET FOR ILLEGAL COMMAND
 RTS
 SPC 1
*
*    GOOD COMMAND
*
CMD$DO CLC . SET FOR LEGAL COMMAND RECEIVED
 RTS
 SPC 1
*
*    TABLE OF LEGAL COMMANDS
*
CMDTBL FCB '/ . EXAMINE MEMORY
 FDB EXAMIN
 FCB '; . SUB-PROGRAM ROUTINE
 FDB SUBPRG
 FCB CR . DUMMY COMMAND (IGNORE)
 FDB CHKDUM
 FCB 0 . END OF TABLE
 SPC 1
*
*    CHECK CHARACTER IN 'A' FOR HEX
*
CHKHEX CMPA #'0 . SEE IF NUMERIC
 BLT CHKHNO
 CMPA #'9
 BLS CISHEX
 CMPA #'A . ALFA?
 BLT CHKHNO
 CMPA #'F 
 BLS CISHEX
CHKHNO SEC
 RTS
 SPC 1
*
CISHEX SUBA #'0
 CMPA #9 . DONE?
 BLS CHKHDN
 SUBA #7 . ALFA
CHKHDN CLC
 RTS
 SPC 1
*
*      ADD A HEX NUMBER IN 'A' TO 'VALUE'
*
ADDHEX ASL VALUE+1 . MULTIPLY VALUE BY 16
 ROL VALUE
 ASL VALUE+1
 ROL VALUE
 ASL VALUE+1
 ROL VALUE
 ASL VALUE+1
 ROL VALUE
 ADDA VALUE+1
 STAA VALUE+1
 BCC ADDONE
 INC VALUE
ADDONE LDAA #1 . SET FLAG
 STAA VFLAG
 RTS
 SPC 1
*
*    INPUT 1 CHARACTER FROM ACIA WO/PARITY
*
INCHNP BSR INCH . GET A CHAR.
 ANDA #$7F . REMOVE THE PARITY BIT
 RTS
 SPC 1
*
*    INPUT 1 CHARACTER FROM ACIA W/PARITY
*
INCH LDAA ACSTAT . CHECK FOR RDRF
 BITA #RDRF
 BEQ INCH
 LDAA RXDATA . GET THE CHAR.
 TST AECHO . SHOULD WE ECHO THE CHAR.
 BNE OUTRTS
 SPC 1
*
*    OUTPUT 1 CHARACTER
*
OUTCH PSHB . SAVE B REG
OUT$LP LDAB ACSTAT . WAIT FOR TDRE
 BITB #TDRE
 BEQ OUT$LP
 STAA TXDATA . OUTPUT THE CHAR.
 PULB . RESTORE THE REGS
OUTRTS RTS
 SPC 1
*
*     PRINT <CR><LF>'STRING'
*
PDATA BSR PCRLF . PRINT A <CR><LF>
PDATA1 LDAA 0,X . GET A CHAR.
 INX . MOVE TO NEXT CHAR.
 CMPA #4 . EOT?
 BEQ P$DONE . YES
 BSR OUTCH
 BRA PDATA1
P$DONE RTS
 SPC 1
*
*   PRINT A <CR><LF>
*
PCRLF STX TMP$02 . SAVE THE XREG
 LDX #CRLF
 BSR PDATA1 . SEND THIS STRING
 LDX TMP$02 . RESTORE THE XREG
 RTS
 SPC 1
*
*    DISPLAY MPU REGISTERS
*
DSPRTS LDX #RTSSTR
 BRA DSPRTN
 SPC 1
*
DSPREG LDX #REGSTR
 BRA DSPRTN
 SPC 1
*
DSPSWI LDX #SWISTR
 BRA DSPRTN
 SPC 1
*
DSPIRQ LDX #IRQSTR
 BRA DSPRTN
 SPC 1
*
DSPBRK LDX #BRKSTR
 BRA DSPRTN
 SPC 1
*
DSPNMI LDX #NMISTR
 BRA DSPRTN
 SPC 1
*
*    DISPLAY THE REGISTERS
*
DSPRTN JSR PDATA . PRINT THE STRING
 LDX #DSPSTR
 STX TMP$01
 LDX USTACK . POINT AT THE USER'S STACK
 INX
 LDAB #3 . PRINT THE 3, 2 BYTE REGISTERS
 BSR PRNT2B
 LDAB #2 . PRINT THE 2, 4 BYTE REGISTERS
 BSR PRNT4B
 LDX #USTACK . POINT AT THE ADDRESS
 LDAB #1 . PRINT THE STACK ADDRESS
 SPC 1
*
*    PRINT 4 BYTE REGISTER
*
PRNT4B STX TMP$00
 LDX TMP$01
 JSR PDATA1 . PRINT THE STRING
 STX TMP$01 . SWAP THE REGISTERS
 LDX TMP$00
 JSR OUT4HS . PRINT VALUE
 DECB
 BNE PRNT4B
 RTS
 SPC 1
*
*    PRINT 2 BYTE REGISTER
*
PRNT2B STX TMP$00
 LDX TMP$01
 JSR PDATA1 . PRINT THE STRING
 STX TMP$01 . SWAP THE REGISTERS
 LDX TMP$00
 JSR OUT2HS . PRINT THE DATA
 DECB
 BNE PRNT2B
 RTS
 SPC 1
*
*     OUTPUT HEX CHARS W/SPACE
*
OUT4HS BSR OUT2H
OUT2HS BSR OUT2H
OUTS LDAA #SPACE . OUTPUT A SPACE
 JMP OUTCH
 SPC 1
*
*     OUTPUT 2 HEX CHAR.S
*
OUT2H LDAA 0,X . GET THE CHAR.
 LSRA . MOVE MSN TO LSN
 LSRA
 LSRA
 LSRA
 BSR HEX$IT
 LDAA 0,X . GET CHAR. AGAIN
 INX
 SPC 1
*
*     CONVERT 'A' REG TO BINARY (LSN) TO ASCII
*
HEX$IT ANDA #%1111 . SAVE ONLY LSN
 ORAA #'0 . MAKE ASCII
 CMPA #'9
 BLS OUTHX . OUTPUT THE CHAR
 ADDA #7 . MAKE ALFA
OUTHX JMP OUTCH
 SPC 1
*
*     INPUT 4 HEX CHARS
*
IN4HEX BSR IN2HEX
 BCS NO$IHX . WAS'NT HEX
 PSHA . SAVE THE MSB
 PSHA
 BSR IN2HEX
 TSX . POINT AT RESULT
 STAA 1,X . SAVE THE LSB
 LDX 0,X . GET THE RESULT
 INS . FIX THE STACK
 INS
 RTS
 SPC 1
*
*    INPUT 2 HEX CHARS
*
IN2HEX BSR INHEX . GET THE MSN
 BCS NO$IHX . NOT HEX
 ASLA . PUT IT IN THE MS NIBBLE
 ASLA
 ASLA
 ASLA
 STAA TMP$00 . SAVE IT
 BSR INHEX . GET THE LSN
 BCS NO$IHX . NOT HEX
 ADDA TMP$00 . ADD NIBBLES
 STAA TMP$00 . SAVE IT
 ADDA CHKSUM . ADD TO CHECK SUM
 STAA CHKSUM
 LDAA TMP$00 . GET THE CHAR.
 CLC
 RTS
 SPC 1
*
*     INPUT 1 HEX CHAR. IN A
*
INHEX JSR INCHNP . GET A BYTE FROM USER
 JMP CHKHEX . CHECK AND CONVERT
 SPC 1
*
*     NOT HEX
*
NO$IHY INS . FIX THE STACK
NO$IHX SEC
 RTS
 SPC 1
*
*     I/O INITIALIZATION
*
IOSET LDAA #%00000011 . TRASH THE ACIA
 STAA ACCTRL
 LDAA ACINIT . GET THE INIT VALUE
 STAA ACCTRL
 RTS
 SPC 1
*
*     EXAMINE MEMORY
*
EXAMIN LDAB VALUE . GET THE ADDRESS
 LDAA VALUE+1
 ADDA OFFSET+1 . ADD THE OFFSET
 ADCB OFFSET
 STAB ADDRES . SAVE THE VALUE
 STAA ADDRES+1
 SPC 1  
*
EX$LP0 JSR PCRLF
 LDX #ADDRES . POINT AT THE DATA ADDRESS
 JSR OUT4HS . PRINT THE ADDRESS
EX$LP1 LDX ADDRES . POINT AT THE DATA
 JSR OUT2HS . PRINT THE DATA
 SPC 1
*
*     WAIT FOR COMMAND
*
EX$LP2 LDX #EXMTBL . POINT AT TABLE OF COMMANDS
 JSR GETCMD . GET A VALUE AND/OR A COMMAND
 BCC EX$JMP . LEGAL?
 JMP WHATER . NO!
 SPC 1
*
*    DO TO IT
*
EX$JMP LDX 1,X . GET TASK ADDRESS
 JMP 0,X . DO THE REQUEST
 SPC 1
*
*     COMMAND TABLE
*
EXMTBL FCB '/ . DISPLAY SAME ADDRESS
 FDB EX$SAM
 FCB SPACE . DISPLAY NEXT ADDRESS
 FDB EX$NXT
 FCB LF . DISPLAY NEXT ADDRESS (ALT. METHOD)
 FDB EX$NXT
 FCB '^ . DISPLAY LAST ADDRESS
 FDB EX$BAK
 FCB CR . RETURN TO MONITOR
 FDB EX$RTS
 FCB '; . CALCULATE OFFSET
 FDB EX$OFS
 FCB 0
 SPC 1
*
*    DISPLAY NEXT ADDRESS
*
EX$NXT BSR EX$STR . TRY TO STORE VALUE
 INX
 STX ADDRES
 BRA EX$LP0
 SPC 1
*
*    DISPLAY LAST ADDRESS
*
EX$BAK BSR EX$STR . TRY TO STORE THE CHAR.
 DEX
 STX ADDRES . SAVE THE NEW VALUE
 BRA EX$LP0
 SPC 1
*
*    DISPLAY SAME ADDRESS
*
EX$SAM BSR EX$STR . TRY TO STORE THE CHAR.
 BRA EX$LP1 . DON'T MOVE TO NEW LINE
 SPC 1
*
*   STORE THE VALUE
*
EX$STR LDX ADDRES . POINT AT MEMORY
 TST VFLAG . SHOULD WE STORE IT?
 BEQ EXNSTR . NO
 LDAA VALUE+1 . GET THE VALUE
 STAA 0,X . STORE IT
 CMPA 0,X . SEE IF GOOD MEMORY
 BNE EX$BEL . NO CHANGE
EXNSTR RTS
 SPC 1
*
*   NO CHANGE IN MEMORY
*
EX$BEL STX TMP$00 . SAVE ADDRESS
 LDX #MEMERR . MEMORY ERROR
 JSR PDATA1
 LDX TMP$00 . RESTORE ADDRESS
 RTS
 SPC 1
*
*    RETURN TO THE MONITOR
*
EX$RTS BSR EX$STR . TRY TO STORE THE VALUE
 RTS . RETURN TO THE MONITOR
 SPC 1
*
*    CALCULATE OFFSET TO ADDRESS
*
EX$OFS JSR INCHNP . GET THE NEXT CHAR.
 CMPA #'O . OFFSET?
 BNE EX$OEX . NO
 JSR OUTS . SEND A SPACE
 LDAB VALUE . GET THE OFFSET VALUE
 LDAA VALUE+1
 SUBA ADDRES+1 . SUBTRACT THE CURRENT ADDRESS
 SBCB ADDRES
 SUBA #1 . SAME ADDRES =-1
 SBCB #0
 PSHA . SAVE IT ON THE STACK
 TSX . POINT AT LONG VALUE
 CMPB #0 . IF A <> $FF OR $00 THEN ILLEGAL BRANCH
 BNE EX$SHX . MIGHT STILL BE GOOD
 BITA #$80 . MSB MUST BE 0
 BEQ EX$SHT . GOOD BRANCH
 BRA EX$LNG . INVALID
EX$SHX CMPB #$FF
 BNE EX$LNG . GOOD SHORT
 BITA #$80 . MSB MUST BE 1
 BNE EX$SHT . GOOD BRANCH
EX$LNG LDX #INVAL . INVALID BRANCH
 JSR PDATA1
 BRA EX$FST . GO FIX THE STACK
EX$SHT JSR OUT2HS . OUTPUT (SHORT) VALUE
EX$FST INS . FIX THE STACK
EX$OEX JMP EX$LP0
 SPC 1
*
*    SUB-COMMANDS
*
SUBPRG LDX #SUBTBL . POINT AT TABLE OF SUB-COMMANDS
 JSR CHKCMD . GET THE REQUEST
 BCC SB$JMP . LEGAL?
 JMP WHATER . ILLEGAL COMMAND
 SPC 1
*
*    GO DO IT
*
SB$JMP LDX 1,X . GET THE TASK
 JMP 0,X . GO TO IT.
 SPC 1
*
*     TABLE OF SUB-COMANDS
*
SUBTBL FCB 'R . DISPLAY REGISTERS
 FDB DSPREG
 FCB 'G . GO TO USER'S PROGRAM
 FDB GO$USR
 FCB 'S . GO TO USER'S SUB-ROUTINE
 FDB GO$SUB
 FCB 'V . SET/DISPLAY BREAK-POINTS
 FDB SBKRTN
 FCB 'U . CLEAR BREAK-POINTS
 FDB CBKRTN
 FCB 'D . DISPLAY MEMORY
 FDB DSPMEM
 FCB 'P . CONTINUE USER'S PROGRAM
 FDB GO$CON
 FCB 'F . FILL MEMORY WITH CHAR.
 FDB FILMEM
 FCB 'C . COMPARE MEMORY WITH CHAR.
 FDB CMPMEM
 FCB 'M . MOVE MEMORY
 FDB MOVMEM
 FCB 'I . SET/RESET/PRINT IRQ FLAG
 FDB IRQ$RT
 FCB 'O . SET OR RESET OFFSET
 FDB OFS$RT
 FCB 'L . 'S1' RECORD LOADER
 FDB LOAD
 FCB 0
 SPC 1
*
*     GO TO USER PROGRAM
*
GO$USR TST VFLAG . SEE IF VALID REQUEST
 BEQ GO$BAD . CAN'T DO THAT
 LDS USTACK . GET USER'S STACK
 TSX
 LDAB VALUE . GET NEW ADDRESS
 LDAA VALUE+1
 STAB 5,X . SET PC COUNTER
 STAA 6,X
GOU$DO JSR SETBRK . GO SET THE BREAK POINTS
 RTI
 SPC 1
*
*     GO TO USER'S SUB-ROUTINE
*
GO$SUB TST VFLAG . SEE IF ADDRESS SET
 BEQ GO$BAD . CAN'T
 LDS USTACK . GET USER'S STACK
 SPC 1
*

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品久久只有精品| 国产精品久久久久久久久久久免费看| 亚洲乱码精品一二三四区日韩在线| 成人性生交大片| 亚洲色图19p| 欧美性大战久久久| 日本不卡在线视频| 精品国产乱码久久久久久1区2区 | av中文字幕在线不卡| 国产精品不卡一区二区三区| 日本乱人伦一区| 日韩av中文字幕一区二区| 欧美α欧美αv大片| 不卡电影一区二区三区| 亚洲午夜免费电影| 久久一区二区三区四区| 色综合久久九月婷婷色综合| 午夜精品福利视频网站| 精品999久久久| 99精品国产一区二区三区不卡| 亚洲综合色成人| 日韩一区二区中文字幕| youjizz久久| 天堂久久久久va久久久久| 久久亚洲精品小早川怜子| 成人精品小蝌蚪| 三级在线观看一区二区| 国产午夜亚洲精品午夜鲁丝片| 日本久久一区二区| 韩国欧美国产1区| 亚洲午夜在线电影| 国产精品网站在线观看| 6080yy午夜一二三区久久| 粉嫩在线一区二区三区视频| 亚洲成人午夜电影| 国产精品久久久久影院亚瑟| 91精品在线免费观看| 99久久精品国产一区| 美女视频一区二区| 亚洲综合视频在线观看| 国产日韩欧美在线一区| 欧美一区二区免费观在线| 91丨porny丨国产| 久久99精品久久久久久动态图 | 亚洲午夜影视影院在线观看| 欧美精品一区二区三区高清aⅴ | 亚洲成人av一区| 国产精品美女久久久久久久久 | 日本女人一区二区三区| 亚洲精品免费在线播放| 久久尤物电影视频在线观看| 欧美群妇大交群的观看方式| 91在线免费视频观看| 国产99久久久国产精品免费看| 免费成人你懂的| 亚洲福利视频导航| 亚洲免费高清视频在线| 国产精品高潮久久久久无| 久久久国产精品不卡| 日韩精品一区二区在线| 91精品国产手机| 欧美精品第1页| 欧美日本在线观看| 欧美亚洲愉拍一区二区| 色哟哟在线观看一区二区三区| 粉嫩一区二区三区性色av| 激情久久久久久久久久久久久久久久| 亚洲地区一二三色| 午夜视频一区在线观看| 亚洲第一激情av| 亚洲国产欧美在线| 亚洲电影你懂得| 午夜精品福利在线| 日日欢夜夜爽一区| 麻豆精品久久久| 国产一区二三区| 激情都市一区二区| 国产精品一区二区免费不卡| 国产精选一区二区三区| 国产成人精品亚洲777人妖| 国产suv精品一区二区883| 盗摄精品av一区二区三区| 成人一道本在线| 一本久道久久综合中文字幕| 一本久久精品一区二区| 欧美性videosxxxxx| 欧美精品自拍偷拍动漫精品| 91精品国产色综合久久不卡电影| 日韩精品专区在线| 久久久久久久av麻豆果冻| 国产精品免费人成网站| 一区二区免费看| 日韩成人免费在线| 国产精品一区二区三区网站| www.亚洲精品| 欧美天堂一区二区三区| 日韩女同互慰一区二区| 久久久久久久精| 一区二区在线免费| 日韩综合小视频| 国产精品一区在线观看乱码| 成人av免费网站| 欧美精三区欧美精三区| 国产色91在线| 亚洲另类春色校园小说| 美女久久久精品| av午夜精品一区二区三区| 欧美男男青年gay1069videost | 亚洲色图视频网站| 性感美女久久精品| 国产高清视频一区| 欧美日韩视频专区在线播放| 亚洲精品一线二线三线| 一二三四区精品视频| 久久爱www久久做| 日本道在线观看一区二区| 精品久久久久久久久久久院品网| 综合婷婷亚洲小说| 久久99精品国产91久久来源 | 欧美网站大全在线观看| 精品剧情v国产在线观看在线| 自拍偷拍亚洲激情| 韩国三级电影一区二区| 欧美视频完全免费看| 国产偷国产偷精品高清尤物 | 欧美性猛片aaaaaaa做受| 久久伊人蜜桃av一区二区| 亚洲成av人**亚洲成av**| 国产精品一区二区在线观看网站| 欧美性猛片aaaaaaa做受| 中文av字幕一区| 久久精品av麻豆的观看方式| 欧美视频在线一区二区三区 | 欧美精品v国产精品v日韩精品| 久久精品日产第一区二区三区高清版| 亚洲一区二区三区激情| 丁香激情综合国产| 精品88久久久久88久久久| 香蕉乱码成人久久天堂爱免费| 91香蕉视频在线| 日本一区二区免费在线| 精油按摩中文字幕久久| 欧美日韩精品一区二区三区| 亚洲天堂成人在线观看| 国产精品影视天天线| 欧美va亚洲va香蕉在线| 日韩高清在线不卡| 欧美日韩视频在线观看一区二区三区| 亚洲国产电影在线观看| 国产精华液一区二区三区| 日韩欧美国产1| 日韩高清不卡在线| 欧美日韩和欧美的一区二区| 亚洲精品高清在线观看| 99久久精品国产精品久久| 国产精品系列在线| 成人精品免费网站| 欧美国产精品专区| 成人午夜视频福利| 国产精品免费aⅴ片在线观看| 国产一区二区按摩在线观看| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 精品成人在线观看| 黄一区二区三区| 精品国产一区久久| 国产一区二区在线观看视频| 欧美成人精精品一区二区频| 热久久免费视频| 日韩女优av电影| 国产精品中文欧美| 日本一区二区三区在线不卡| 粉嫩aⅴ一区二区三区四区五区| 国产亲近乱来精品视频| 国产九色sp调教91| 国产精品久久毛片| 91日韩一区二区三区| 亚洲精品久久7777| 欧美午夜精品久久久久久超碰| 亚洲成人自拍网| 精品国产乱码久久久久久图片| 国产精品中文字幕一区二区三区| 亚洲国产成人在线| 在线视频一区二区三区| 日韩av一级电影| www成人在线观看| 成人性生交大片| 亚洲国产精品久久久男人的天堂| 欧美日韩久久久久久| 裸体健美xxxx欧美裸体表演| 久久久久一区二区三区四区| 99精品视频在线免费观看| 亚洲五月六月丁香激情| 精品国产污网站| 99国产精品久久久久久久久久久| 亚洲自拍与偷拍| 精品粉嫩aⅴ一区二区三区四区 | 国产福利一区二区| 亚洲日本在线看| 日韩免费一区二区三区在线播放| 国产麻豆欧美日韩一区|