]> git.sesse.net Git - pistorm/blobdiff - a314/a314device/int_server.asm
Add A314 emulation
[pistorm] / a314 / a314device / int_server.asm
diff --git a/a314/a314device/int_server.asm b/a314/a314device/int_server.asm
new file mode 100644 (file)
index 0000000..2a7b866
--- /dev/null
@@ -0,0 +1,25 @@
+       XDEF    _IntServer
+       CODE
+
+COM_AREA       equ     $e90000
+
+SIGB_INT       equ     14
+SIGF_INT       equ     (1 << SIGB_INT)
+
+               ; a1 points to driver task
+_IntServer:    lea.l   COM_AREA,a5
+
+               move.b  0(a5),d0        ; A_EVENTS
+               and.b   1(a5),d0        ; A_ENABLE
+               beq.s   should_not_signal
+
+               move.b  #0,1(a5)
+
+               move.l  $4.w,a6
+               move.l  #SIGF_INT,d0
+               ; a1 = pointer to driver task
+               jsr     -324(a6)        ; Signal()
+
+should_not_signal:
+               moveq   #0,d0
+               rts