added debug output on exceptions
[mdlife] / src / pad.S
1         .text
2
3 #include "hwregs.h"
4 #include "z80.inc"
5
6         .globl pad_init
7 pad_init:
8         move.b #IO_BIT_TH, %d0
9         move.b %d0, IO_CTL1_PORT
10         move.b %d0, IO_DATA1_PORT
11         move.b %d0, IO_CTL2_PORT
12         move.b %d0, IO_DATA2_PORT
13         move.b %d0, IO_CTL3_PORT
14         move.b %d0, IO_DATA3_PORT
15         rts
16
17         .globl pad_read
18 pad_read:
19         | Z80 busreq to avoid messing up its wait states (bulletin #4)
20         z80_grab_wait
21         move.l 4(%sp), %d0
22         lsl.l #1, %d0
23         add.l #IO_DATA1_PORT, %d0
24         move.l %d0, %a0
25         move.b #IO_BIT_TH, (%a0)
26         clr.l %d0
27         nop
28         move.b (%a0), %d0
29         move.b #0, (%a0)
30         and.b #0x3f, %d0
31         move.b (%a0), %d1
32         lsl.b #2, %d1
33         and.b #0xc0, %d1
34         or.b %d1, %d0
35         not.b %d0
36         z80_release
37         rts
38
39         .bss
40         .globl bnstate
41         .globl bndiff
42 bnstate: .word 0
43 bndiff: .word 0
44
45 | vi:ft=gas68k: