All pastes #941971 Raw Edit

Stuff

public text v1 · immutable
·published 2008-03-14 03:15 UTC
rendered paste body
RAMTST: SEI ;disable interrupts, we don't want monitor calls made while the rom is switched out
	LDA $C083 ;switches out rom for ram
	LDA $C083
	LDA #$00 ;woohoo, register initialization!
	LDX #$00
DEP:	STA $E000,X ;the magic loop for zeroing out the ram, stores register A in $E0000+index register X 
	INX ;increment register X for the next address
	CPX #$FF ;see if we've hit $E0FF yet
	BNE DEP ;if we haven't, repeat the process
	LDX #$00 ;nao for reading it back!
RDR:	LDA #$00 ;initializing registers again
	CMP $E000,X ;compare A to $E000+X
	BNE ERR ;if its not equal, branch to the error routine
	INX ;increment X for the next address
	CPX #$FF ;see if we've hit $E0FF
	BNE RDR ;if not, repeat process
	CLI ;turn interrupts back on
	LDA $C081 ;swap it all back in
	RTS ;return back to the monitor
ERR:	CLI ;error handler, switches interrupts back on, swaps rom back in
	LDA $C081
	JSR $FF2D ;calls the routine in the monitor that makes it beep, and display "ERR" on the display
	RTS
.END