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

📄 main.asm

📁 一个用汇编写的freescale S12系列单片机监视代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
 	LDD   0,Y
 	STD   0,X
	INX   
	INX   
	INY   
	INY   
	LDAA  #32
 	STAA  FCMD
 	LDAA  #128
 	STAA  FSTAT
	LDAB  TSTAT
 	BITB  #48
	BNE   OUT1
 	DEC   BUF3
 	BNE   PROGRAM
 	BRCLR FSTAT,#CCIF,*   ;abs = F47F
OUT1	LDAA  CCRCOP
 	TFR   A,CCR
 	LDAA  #42
  	BRCLR SCI0SR1,#128,*   ;abs = F48B
 	STAA  SCI0DRL
 	LBRA  FHEAD
*
*INPUT 1 ADDR,IN THE BUF0 &BUF1
*	
FIN1ADR	BSR   FBYTE
	BVS   FIN1AD1
 	STAA  BUF0
 	BSR   FBYTE
	BVS   FIN1AD1
  	STAA  BUF1
  	LDX   BUF0
FIN1AD1 RTS   
*
*INPUT A BYTE 
* 	
FBYTE	BSR   FINHEX
 	BVS   FBYTEND
 	ASLA  
 	ASLA  
 	ASLA  
 	ASLA  
 	TAB   
 	BSR   FINHEX
	BVS   FBYTEND
 	ABA   
FBYTEND	RTS   
*
FINHEX	BRCLR SCI0SR1,#$20,*
  	LDAA  SCI0DRL
 	CMPA  #48
	BCS   FNOTHEX
 	CMPA  #57
	BHI   FINHEXA
 	SUBA  #48
 	RTS   
*
FINHEXA	CMPA  #65
 	BCS   FNOTHEX
 	CMPA  #70
	BHI   FNOTHEX
 	SUBA  #55
 	RTS   
* 	
FNOTHEX	ORCC  #2
 	RTS   
FEND	EQU   *
*
*E COMMAND ERASE FLASH ON PAGE $3E AND $3F
* 	
EHEAD	LDAB  #32
  	STAB  BUF0
  	LDAB  PPAGE
 	PSHB  
 	LDX   #FlashSTART
BESCTLP	LDAA  #0
 	STAA  FCNFG
 	LDAB  #48
 	STAB  FSTAT
 	LDAB  #62
 	STAB  PPAGE
 	BRCLR FSTAT,#CBEIF,*
  	LDY   #65535
 	STY   0,X
 	LDAB  #64
 	STAB  FCMD
 	LDAB  #CBEIF
 	STAB  FSTAT
	LDAB  FSTAT
 	BITB  #48
	BNE   BOUT1
 	LEAX  512,X
 	DEC   BUF0
	BNE   BESCTLP
 	BRCLR FSTAT,#CBEIF,*   ;abs = F514
 	BRCLR FSTAT,#CCIF,*
BOUT1	LDAB  #48
 	STAB  FSTAT
 	LDAB  #24
 	STAB  BUF0
 	LDX   #FlashRAM
ESCTLP1 LDAA  #0
 	STAA  FCNFG
 	LDAB  #48
 	STAB  FSTAT
 	LDAB  #63
 	STAB  PPAGE
 	BRCLR FSTAT,#CBEIF,*
  	LDY   #65535
 	STY   0,X
 	LDAB  #64
 	STAB  FCMD
 	LDAB  #128
 	STAB  FSTAT
 	LDAB  FSTAT
 	BITB  #48
	BNE   BOUT2         ;continue if the privilege violation&addess errflag areclrared
 	
	LEAX  512,X
 	DEC   BUF0
 	BNE   ESCTLP1
 	BRCLR FSTAT,#CBEIF,*
 	BRCLR FSTAT,CCIF,*
BOUT2	LDAB  #48
 	STAB  FSTAT
 	PULB  
 	STAB  PPAGE
 	RTS   
EEND	EQU   *	
*
*Q:ERASE BANKED FLASH
*	
QHEAD	LDAA  PPAGE
	CMPA  #63
	BEQ   OBACK
 	STAA  BUF4
 	ANDA  #12
 	LSRA  
 	LSRA  
  	STAA  BUF5
 	LDAB  #3
 	SUBB  BUF5
 	STAB  BUF5
 	LDAB  #32
  	STAB  BUF0
 	LDX   #FlashSTART
OLOOP	LDAA  BUF5
 	STAA  FCNFG
 	LDAB  #48
 	STAB  FSTAT
 	LDAB  BUF4
 	STAB  PPAGE
 	BRCLR FSTAT,#CBEIF,*
  	LDY   #65535
 	STY   0,X
 	LDAB  #64
 	STAB  FCMD
 	LDAB  #CBEIF
 	STAB  FSTAT
 	LDAB  FSTAT
 	BITB  #48
	BNE   OOUT1
  	LEAX  512,X
  	DEC   BUF0
 	BNE   OLOOP
 	BRCLR FSTAT,#CBEIF,*
 	BRCLR FSTAT,#CCIF,*
OUT1	LDAB  #48
 	STAB  FSTAT
OBACK	RTS   
QEND	EUQ   *  	
*
*PRINT SBUROUTINE
*	
PRTPP	LDX   #PPRIN
 	JSR   PDATA
  	LDX   #48
  	LDAA  0,X
 	BRA   KK
PRTSP	LDX   #MSG10
 	JSR   PDATA
 	LDX   SPBUF
 	JMP   OUT4H
PRTIX	LDX   #MSG14
 	JSR   PDATA
 	LDX   MRX
 	JMP   OUT4H
PRTIY	LDX   #MSG13
 	JSR   PDATA
  	LDX   MRY
	LBRA  OUT4H
PRTPC	LDX   #MSG11
 	JSR   PDATA
  	LDX   MRPC
 	LBRA  OUT4H
PRTA	LDX   #MSG16
 	JSR   PDATA
 	LDAA  MRA
KK	LBRA  OUT2H
 	LDX   #MSG17
 	JSR   PDATA
 	LDAA  MRB
 	BRA   OUT2H
PRTCC	LDX   #MSG17
 	JSR   PDATA
 	LDAA  MRCC
 	LDX   #MSG19
*
*CHANG BIN TO ASCii
* 	
BIASCI	STAA  BUF0
 	LDAB  #8
OUTBA	LDAA  0,X
 	INX   
 	ASL   BUF0
	BCS   CCFLAG
 	LDAA  #45
CCFLAG	JSR   OUTCH
 	JSR   OUT1S
 	DECB  
 	BNE   OUTBA
  	LDAA  BUF0
 	RTS   
*
*INPUT 2 ADDR.IN YYYY-XXXX&BUF2,3-BUF0,1
* 	
IN2ADR	BSR   IN1ADR
	BVS   IN1AD1
	PSHX  
	PULY  
 	STY   BUF2
 	LDAA  #45
 	JSR   OUTCH
*
*INPUT 1 ADDR.IN XXXX
*	
IN1ADR	BSR   BYTE
	BVS   BYTEN
 	STAA  BUF0
	BSR   BYTE
	BVS   BYTEN
 	STAA  BUF1
  	LDX   BUF0
IN1AD1	RTS   
*
*INPUT ONE BYTE
*	
BYTE	BSR   INHEX
	BVS   BYTEN
 	ASLA  
 	ASLA  
 	ASLA  
 	ASLA  
 	TAB   
 	BSR   INHEX
	BVS   BYTEN
 	ABA   
BYTEN	RTS   
INHEX	BSR   ECHOM  ;abs = F6C6
	CMPA  #48
	BCS   NOTHEX
 	CMPA  #57
	BHI   INHEXA
 	SUBA  #48
 	RTS   
* 	
INHEXA	ANDA  #223
	CMPA  #65
	BCS   NOTHEX
	CMPA  #70
	BHI   NOTHEX
 	SUBA  #55
 	RTS   
NOTHEX	ORCC  #2
 	RTS   
*
*output 4 hex in ix
*
OUT4H	PSHX  
 	PULA  
 	BSR   OUT2H
 	PULA  
OUT2H	PSHA  
 	LSRA  
 	LSRA  
 	LSRA  
 	LSRA  
 	BSR   XASCII
 	PULA  
 	ANDA  #15
XASCII	ADDA  #48
 	CMPA  #57
	BLE   OUTC
 	ADDA  #7
OUTC	BRA   OUTCH
*
*print a string following a cr & lf
*
PSRNG	BSR   PCRLF1
 	BRA   PDATA
PCRLF1	PSHX  
  	LDX   #PCRLF
 	BSR   PDATA
 	PULX  
 	RTS   
*
ECHOM	TST   ECHO
	BEQ   INCH
 	BRA   INCHE
*
PRINT	JSR   OUTCH
PDATA	LDAA  0,X
 	INX   
 	CMPA  #EOT
	BNE   PRINT
 	RTS   
*
OUT2S	BSR   OUT1S
OUT1S	LDAA  #32
  	JMP   OUTCH
*
*ROUTINES TO DRIVE SCI
*
INCHE	BSR   INCH
 	BRA   OUTCH
INCH	BSR   INCHEK
 	BEQ   INCH
 	LDAA  SCIOSR1
 	RTS   
*
INCHEK	LDAA  #32
  	BITA  SCI0SR1
 	RTS   
*
OUTCH	BRCLR SCI0SR1,#128,*+0   ;abs = F6EF
 	STAA  SCI0DRL
 	RTS   
*
*swi software isr
*
SWIE	PULA  
 	STAA  MRCC
 	PULX  
  	STX   MRB
 	PULX  
 	STX   MRX
	PULX  
 	STX   MRY
	PULX  
 	STX   MRPC
 	STS   SPBUF
 	JSR   REGDSP
	JSR   CLEARBP
	JMP   NXTCMD
*
*MONITOR COMMAND JUMP TABLE
*
JMPTAB	EQU	*
	FCB	CTRLA
	FDB	ALTA
 	FCB	CTRLB
 	FDB	ALTB
 	FCB	CTRLC
	FDB	ALTCC
 	FCB	CTRLP
 	FDB	ALTPC
 	FCB	$18
 	FDB	ALTX	
 	FCB	$19
 	FDB	ALTY
	FCC	'E'	
 	FDB	ERSPLSH
 	FCC	'D'
	FDB	MDUMP
	FCC	'G'
 	FDB	GO
 	FCC	'H'
 	FDB	HELP
 	FCC	'L'
	FDB	DWNLD	
	FCC	'M'
	FDB	MEMCHG
 	FCC	'R'
 	FDB	REGDSP
 	FCC	'S'
 	FDB	DISSP
 	FCC	'C'
	FDB	ALTPP
	FCC	'F'
	FDB	PROGRAMFlash
 	FCC	'Q'
	FDB	ERASEBANK
 	FCC	'B'
 	FDB	BREAKPOINT
	FCC	'Z'
	FDB	CLEARBP
TBLEND	EQU	*	
*
*PRINTABLE MESSAGE STRING DEFINE
*
*
MSGWELCOME
	FCB 	CF,LF
 	FCC	'Type any key in debug,type h for help' 
	FCB	EOT
MSG1	FCC	'D-BUG V1.1 WANLIANKEJI MAC ALL RIGHT RESERVED'
 	FCB	CR,LF
 	FCC	'TYPE H FOR HELP'
	FCB	CF,LF
	FCB	EOT
MSG2	FCC	'K'
PCRLF	FCB	CR,LF,EOT
MSG3	FCC	'>'
 	FCB	EOT
MSG4	FCB	CR,LF
 	FCC	'WHAT?'
	FCB	EOT
MSG5	FCC	'-'
	FCB	EOT
MSG10	FCC	' SP='
 	FCB	EOT
MSG11	FCC	' PC='
 	FCB	EOT
MSG13	FCC	' IY='	
 	FCB	EOT
MSG14	FCC	' IX='
 	FCB	EOT
MSG16	FCC	' A='
 	FCB	EOT
MAG17	FCC	' B='	
 	FCB	EOT
MSG18	FCC	' CC:'
 	FCB	EOT
MSG19	FCC	'SXHINZVC'	
  	FCB	EOT
LERRM	FCC	'DOWNLOAD ERROR'	
  	FCB	EOT		
*   
HELPM	FDB	CR,LF
 	FCC	'HELP HAS NOT DONE'
PPRIN	FCC	' PP='
 	FCB	EOT
MSG20	FCB	CR,LF
 	FCC	' SET PPAGE:'
	FCB	EOT
MSG21	FCB	CR,LF
 	FCC	' SET ADDRESS:'
 	FCB	EOT
MSG22	FCB	CR,LF	
 	FCC	'THE BREAKPOINT'
 	FCB	EOT
MSG23	FCB	CR,LF
 	FCC	'BREAK POINT CKEARED'	
 	FCB	EOT
*
  
*
*
*
*  	
V1	LDX   $EF8C
 	PSHX  
 	RTS   
V2	LDX   $EF8E
 	PSHX  
 	RTS   
V3	LDX   $EF90
 	PSHX  
 	RTS   
V4	LDX   $EF92
 	PSHX  
 	RTS   
V5	LDX   $EF94
 	PSHX  
 	RTS   
V6 	LDX   $EF96
 	PSHX  
 	RTS   
V7	LDX   $EF98
 	PSHX  
 	RTS   
V8	LDX   $EF9A
 	PSHX  
  	RTS   
V9	LDX   $EF9C
 	PSHX  
 	RTS   
V10	LDX   $EF9E
 	PSHX  
 	RTS   
V11	LDX   $EFA0
 	PSHX  
 	RTS   
V12	LDX   $EFA2
 	PSHX  
 	RTS   
V13	LDX   $EFA4
 	PSHX  
 	RTS   
V14	LDX   $EFA6
 	PSHX  
 	RTS   
V15	LDX   $EFA8
 	PSHX  
 	RTS   
V16	LDX   $EFAA
 	PSHX  
 	RTS   
V17	LDX   $EFAC
 	PSHX  
 	RTS   
V18	LDX   $EFAE
 	PSHX  
 	RTS   
V19	LDX   $EFB0
 	PSHX  
 	RTS   
V20	LDX   $EFB2
 	PSHX  
 	RTS   
V21	LDX   $EFB4
 	PSHX  
 	RTS   
V22	LDX   $EFB6
 	PSHX  
  	RTS   
V23	LDX   $EFB8
 	PSHX  
  	RTS   
V24	LDX   $EFBA
 	PSHX  
  	RTS   
V25	LDX   $EFBC
 	PSHX  
 	RTS   
V26	LDX   $EFBE
 	PSHX  
 	RTS   
V27	LDX   $EFC0
 	PSHX  
  	RTS   
V28	LDX   $EFC2
 	PSHX  
 	RTS   
V29	LDX   $EFC4
 	PSHX  
 	RTS   
V30	LDX   $EFC6
 	PSHX  
  	RTS   
V31	LDX   $EFC8
 	PSHX  
  	RTS   
V32	LDX   $EFCA
 	PSHX  
  	RTS   
V33	LDX   $EFCC
 	PSHX  
  	RTS   
V34	LDX   $EFCE
 	PSHX  
  	RTS   
V35	LDX   $EFD0
 	PSHX  
 	RTS   
V36	LDX   $EFD2
 	PSHX  
 	RTS   
V37	LDX   $EFD4
 	PSHX  
  	RTS   
V38	LDX   $EFD6
 	PSHX  
 	RTS   
V39	LDX   $EFD8
 	PSHX  
 	RTS   
V40	LDX   $EFDA
 	PSHX  
  	RTS   
V41	LDX   $EFDC
 	PSHX  
 	RTS   
V42	LDX   $EFDE
 	PSHX  
 	RTS   
V43	LDX   $EFE0
 	PSHX  
 	RTS   
V44	LDX   $EFE2
 	PSHX  
 	RTS   
V45	LDX   $EFE4
 	PSHX  
 	RTS   
V46	LDX   $EFE6
 	PSHX  
 	RTS   
V47	LDX   $EFE8
 	PSHX  
 	RTS   
V48	LDX   $EFEA
 	PSHX  
 	RTS   
V49	LDX   $EFEC
 	PSHX  
 	RTS   
V50	LDX   $EFEE
 	PSHX  
 	RTS   
V51	LDX   $EFF0
 	PSHX  
 	RTS   
V52	LDX   $EFF2
 	PSHX  
 	RTS   
V53	LDX   $EFF4
 	PSHX  
 	RTS   
V54	LDX   $EFF6
 	CPX   #65535
	BNE   *+7   ;abs = FB4C
  	LDX   #63222
 	PSHX  
 	RTS   
VV	LDX   $EFF6
 	PSHX  
 	RTS   
V55	LDX   $EFF8
 	PSHX  
 	RTS   
V56	LDX   $EFFA
 	PSHX  
 	RTS   
V57  	LDX   $EFFC
 	PSHX  
 	RTS   
*
*SYSTEM CALL
*
	ORG	$FE80
HOSTART	JMP   NXTCMD
SOUTCH	JMP   OUTCH
SPSTRING	JMP   PDATA
SINCH	JMP   INCH
SINCHE	JMP   INCHE
SKEYHIT	JMP   INCHEK
*
*YOU CAN PUT MORE SUBROUTINE ENTRY HERE,IF YOU FEEL IT IS USEFUL
*
*
*
	ORG   $FF0C
	FDB	$FFCF

*
*INTERRUPT VICTORS
*
	ORG	$FF8C
*
	FDB   V1	
  	FDB   V2	
 	FDB   V3	
 	FDB   V4	
	FDB   V5	
  	FDB   V6	
 	FDB   V7	
 	FDB   V8	
  	FDB   V9
 	FDB   V10	
  	FDB   V11	
  	FDB   V12	
  	FDB   V13	
  	FDB   V14	
  	FDB   V15	
 	FDB   V16	
 	FDB   V17	
  	FDB   V18	
 	FDB   V19	
  	FDB   V20	
   	FDB   V21	
  	FDB   V22	
  	FDB   V23	
 	FDB   V24	
  	FDB   V25	
  	FDB   V26	
  	FDB   V27	
  	FDB   V28	
  	FDB   V29	
   	FDB   V30	
  	FDB   V31	
  	FDB   V32	
 	FDB   V33	
  	FDB   V34	
  	FDB   V35	
 	FDB   V36	
  	FDB   V37	
  	FDB   V38	
 	FDB   V39	
 	FDB   V40	
 	FDB   V41	
  	FDB   V42	
 	FDB   V43	
  	FDB   V44	
 	FDB   V45	
  	FDB   V46	
  	FDB   V47	
 	FDB   V48	
	FDB   V49	
	FDB   V50
	FDB   V51
	FDB   V52
	FDB   V53
	FDB   V54
	FDB   V55
	FDB   V56
	FDB   V57
	END	START





 

⌨️ 快捷键说明

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