File: os-dbt.S

package info (click to toggle)
insight 6.1%2Bcvs.2004.08.11-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 150,436 kB
  • ctags: 171,195
  • sloc: ansic: 1,431,500; exp: 89,955; tcl: 56,199; asm: 47,136; makefile: 42,498; sh: 27,919; yacc: 8,337; cpp: 5,534; perl: 5,281; lisp: 2,204; lex: 895; pascal: 663; awk: 443; sed: 339; objc: 134; ada: 15; java: 14; fortran: 5
file content (38 lines) | stat: -rw-r--r-- 672 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
	.globl _start
	#
	# NOTE:	Registers r10-r11 are reserved for the interrupt handler
	#	while the others can be used by the main loop/start code.

_start:		
	# patch the DBT handler
	add r1, r0, handler
	ldw r2, @(r1, 0)
	ldw r3, @(r1, 4)
	# DBT vector address
	add r1, r0, 0xfffff120
	stw r2, @(r1, 0)
	stw r3, @(r1, 4)

	# try out the breakpoint/return
	add r2, r0, 47
	#dbt
	nop
	.long 0x00b00000
	nop

	# exit with what ever the breakpoint hander set r2 to.
	nop
	.long 0x0e000004
	nop

handler:
	jmp real_handler
	
	# The Breakpoint handler sets r2 to 0 if PSW was set correctly.
real_handler:
	mvfsys r2, cr0
	sub r2, r0, 0x08000000
	#rtd
	nop
	.long 0x00a00000
	nop