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

📄 loads08.asm

📁 采用QT设计的S08仿真器程序 带源代码 使用串口方式,成本很低
💻 ASM
字号:
#INCLUDE "GT9S08Regs.inc"
;;-------------- carga el loader en RAM ----------

;----------- variables -------------
	ORG $00FC
;puestas aqui para hacer feliz al ensamblador
;OJO: NO PISAR $0100 que es el buffer de grabacion
Errores		ds	1                   ;cantidad de errores
ChgData		ds	1					;copia del valor grabado para verificar
RamPtr		ds	2  					;puntero al buffer en RAM
			
	ORG $0100
;----- buffer de datos a grabar ----
FlashDir	ds	2                   ;poner en 0100 la direccion en FLASH
Buffer		ds !16                  ;poner en 0102..0111 los datos a grabar

;----------- codigo ----------
	ORG $0080
HALT:
;---- se detiene al llegar aqui por el breakpoint ----
_TLoopLoads1:
	bra _TLoopLoads1
;_EndLoads1:
;;;---- aca comienza a ejecutar (0082) ----
GrabarFlash:
	mov		#'0',Errores			;por ahora sin error
	
	ldhx	#Buffer					;
	sthx	RamPtr					;RamPtr= comienzo de los datos
	
	ldhx	FlashDir				;HX=FlashDir
_DoTopLoads2:
		lda		,x					;contenido actual de la FLASH
		sta		COPCTL				;RESET COP
		ldhx	RamPtr              ;
		cmp ,x
		beq _ElseIfLoads3
			lda ,x					;dato a grabar
			cbeqa #$FF,_ElseIfLoads4
				sta		ChgData		;salva una copia para verificar grabacion
				ldhx	FlashDir	;latchea direccion 
				sta		,x			;y dato a GRABAR
				lda		#$20		;
				sta		FCMD		;comando FLASH = WRITE
				lda		#$80    	;
				sta		FSTAT		;clear error y start comando				
									
				;--pausa antes de verificar FSTAT (requiere 4 ciclos)
				brn		$
				brn		$
				
				;--espera el fin de la operacion
_DoTopLoads5:
					lda	FSTAT		;
					and #FSTAT_MASK	;
;			tsta
				beq _DoTopLoads5
				cbeqa #FSTAT_OK,_ElseIfLoads6
					inc Errores		;aumenta la cuenta de los errores
;			bra _EndIfLoads6
				bra _ElseIfLoads3
_ElseIfLoads6:
					lda ,x			;OK, verifica que sea lo pedido
					cbeq ChgData,_ElseIfLoads7
						inc Errores	;aumenta la cuenta de los errores
_ElseIfLoads7:
;_EndIfLoads6:
_ElseIfLoads4:
_ElseIfLoads3:
		
		;--avanza punteros--		;
		ldhx	FlashDir			;FlashDir++
		aix 	#1                  ;
		sthx	FlashDir			;HX=FlashDir

		inc		RamPtr+1			;RamPtr++
		lda		RamPtr+1			;
	cmp #Buffer+!16-$100
	bne _DoTopLoads2
	
	lda		Errores					;listo: carga A con la cantidad de errores
    bra		HALT					;"0" => OK  y termina por breakpoint

⌨️ 快捷键说明

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