--- /dev/null
+ .text
+
+#include "hwregs.h"
+ .include "z80.inc"
+
+ .globl pad_init
+pad_init:
+ move.b #IO_BIT_TH, %d0
+ move.b %d0, IO_CTL1_PORT
+ move.b %d0, IO_DATA1_PORT
+ move.b %d0, IO_CTL2_PORT
+ move.b %d0, IO_DATA2_PORT
+ move.b %d0, IO_CTL3_PORT
+ move.b %d0, IO_DATA3_PORT
+ rts
+
+ .globl pad_read
+pad_read:
+ | Z80 busreq to avoid messing up its wait states (bulletin #4)
+ z80_grab_wait
+ move.l 4(%sp), %d0
+ lsl.l #1, %d0
+ add.l #IO_DATA1_PORT, %d0
+ move.l %d0, %a0
+ move.b #IO_BIT_TH, (%a0)
+ clr.l %d0
+ nop
+ move.b (%a0), %d0
+ move.b #0, (%a0)
+ and.b #0x3f, %d0
+ move.b (%a0), %d1
+ lsl.b #2, %d1
+ and.b #0xc0, %d1
+ or.b %d1, %d0
+ not.b %d0
+ z80_release
+ rts
+
+ .bss
+ .globl bnstate
+ .globl bndiff
+bnstate: .word 0
+bndiff: .word 0
+
+| vi:ft=gas68k: