summaryrefslogtreecommitdiffstats
path: root/oncology/dpfhack_display/src/p_start_pearl.s
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2011-08-24 01:59:20 +0200
committermakefu <github@syntax-fehler.de>2011-08-24 01:59:20 +0200
commit8951433431572bb3e3e2c7b77d97f49df7ce6170 (patch)
tree7938b56cee8d403b806044ed8fc92a56d388dc74 /oncology/dpfhack_display/src/p_start_pearl.s
parent1288c00ac6048b180e959b56d1834f927417c552 (diff)
parentf5d75883e517965fa025e7b88e790a13a3e9dc9b (diff)
Merge branch 'master' of github.com:krebscode/painload
Diffstat (limited to 'oncology/dpfhack_display/src/p_start_pearl.s')
-rw-r--r--oncology/dpfhack_display/src/p_start_pearl.s32
1 files changed, 32 insertions, 0 deletions
diff --git a/oncology/dpfhack_display/src/p_start_pearl.s b/oncology/dpfhack_display/src/p_start_pearl.s
new file mode 100644
index 00000000..dde8ef9a
--- /dev/null
+++ b/oncology/dpfhack_display/src/p_start_pearl.s
@@ -0,0 +1,32 @@
+; Patch for startup (mod37 on pearl)
+ .include 'dpf.inc'
+ .include 'dpf_int.inc'
+ .include 'hack.inc'
+
+ .area HOME (CODE)
+ .area BANK0 (CODE, ABS)
+
+ .org 0x1330
+
+ orl wdtcon,#0x20
+ mov a,i_G_f
+ jbc acc.3, usbact ; If this bit is 1, USB is plugged in.
+ sjmp continue
+usbact:
+ ljmp hack
+
+ .org 0x133c
+continue:
+
+ .org 0x15b0
+hack:
+ clr ea ; No IRQ
+ mov dptr, #(0x196a - 0x800)
+ mov a, #cloned_jumptable_offset >> 16
+ movx @dptr, a
+
+ ; Jump into own firmware:
+ mov a,#(54 - 1)
+ mov dptr,#entry_addr
+ ljmp tramp_jmp
+