;***************** ;Optimized rowread ;***************** ;C prototype: void opt_rowread (unsigned short row); ; ;unsigned char opt_rowread (register unsigned short row asm("%d0")); ; d0.w: keyboard row mask ; Outputs column mask in d0.b xdef opt_rowread opt_rowread: not.w d0 andi.w #$03FF,d0 move.w d0,($600018) move.w #23,d0 __rr_loop: dbf d0,__rr_loop ; Read value and store it in d0 move.b ($60001B),d0 not.b d0 rts