created SD_CARD branch meant to experiment with SD-card routines in BaS_gcc
This commit is contained in:
441
BaS_gcc/sources/ii_and.h
Normal file
441
BaS_gcc/sources/ii_and.h
Normal file
@@ -0,0 +1,441 @@
|
||||
//--------------------------------------------------------------------
|
||||
// and
|
||||
//--------------------------------------------------------------------
|
||||
/*****************************************************************************************/
|
||||
//--------------------------------------------------------------------
|
||||
// byt
|
||||
//--------------------------------------------------------------------
|
||||
//--------------------------------------------------------------------
|
||||
// and.b #im,dx
|
||||
//--------------------------------------------------------------------
|
||||
andbir_macro:.macro
|
||||
move.w (a0)+,d0
|
||||
extb.l d0
|
||||
mvs.b \2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.b d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and ea,dx
|
||||
//--------------------------------------------------------------------
|
||||
anddd:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
mvs.\3 \1,d0
|
||||
mvs.\3 \2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and ea(l)->dy(w),dx z.B. f<>r USP
|
||||
//--------------------------------------------------------------------
|
||||
andddd:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
move.l \1,a1
|
||||
mvs.\3 a1,d0
|
||||
mvs.\3 \2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and (ea)->dy,dx
|
||||
//--------------------------------------------------------------------
|
||||
anddda:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
move.l \1,a1
|
||||
mvs.\3 (a1),d0
|
||||
mvs.\3 \2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and ea->ay,(ay)+,dx
|
||||
//--------------------------------------------------------------------
|
||||
andddai:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
move.l \1,a1
|
||||
mvs.\3 (a1)+,d0
|
||||
move.l a1,\1
|
||||
mvs.\3 \2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and ea->ay,-(ay),dx
|
||||
//--------------------------------------------------------------------
|
||||
andddad:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
move.l \1,a1
|
||||
mvs.\3 -(a1),d0
|
||||
move.l a1,\1
|
||||
mvs.\3 \2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and d16(ay),dx
|
||||
//--------------------------------------------------------------------
|
||||
andd16ad:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
move.l \1,a1
|
||||
mvs.w (a0)+,d0
|
||||
add.l d0,a1
|
||||
mvs.\3 (a1),d0
|
||||
mvs.\3 \2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and d8(ay,dy),dx
|
||||
//--------------------------------------------------------------------
|
||||
andd8ad:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
move.l \1,a1
|
||||
jsr ewf
|
||||
.ifc \3,l
|
||||
move.l (a1),d0
|
||||
move.l \2,d1
|
||||
.else
|
||||
mvs.\3 (a1),d0
|
||||
mvs.\3 \2,d1
|
||||
.endif
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and xxx.w,dx
|
||||
//--------------------------------------------------------------------
|
||||
andxwd:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
move.w (a0)+,a1
|
||||
mvs.\3 (a1),d0
|
||||
mvs.\3 \2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and xxx.l,dx
|
||||
//--------------------------------------------------------------------
|
||||
andxld:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
move.l (a0)+,a1
|
||||
mvs.\3 (a1),d0
|
||||
mvs.\3 \2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and d16(pc),dx
|
||||
//--------------------------------------------------------------------
|
||||
andd16pcd:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
move.l a0,a1
|
||||
mvs.w (a0)+,d0
|
||||
add.l d0,a1
|
||||
mvs.\3 (a1),d0
|
||||
mvs.\3 \2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and d8(pc,dy),dx
|
||||
//--------------------------------------------------------------------
|
||||
andd8pcd:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
move.l a0,a1
|
||||
jsr ewf
|
||||
.ifc \3,l
|
||||
move.l (a1),d0
|
||||
move.l \2,d1
|
||||
.else
|
||||
mvs.\3 (a1),d0
|
||||
mvs.\3 \2,d1
|
||||
.endif
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// and dx,ea
|
||||
//--------------------------------------------------------------------
|
||||
//--------------------------------------------------------------------
|
||||
// // and dx,(ea)->dy
|
||||
//--------------------------------------------------------------------
|
||||
andeda:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
mvs.\3 \1,d0
|
||||
move.l \2,a1
|
||||
mvs.\3 (a1),d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,(a1)
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and dx,ea->ay,(ay)+
|
||||
//--------------------------------------------------------------------
|
||||
andedai:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
mvs.\3 \1,d0
|
||||
move.l \2,a1
|
||||
mvs.\3 (a1),d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,(a1)+
|
||||
move.l a1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and dx,ea->ay,(ay)+
|
||||
//--------------------------------------------------------------------
|
||||
andedaid:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
mvs.\3 \1,d0
|
||||
mvs.\3 \2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2+
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and dx,ea->ay,-(ay)
|
||||
//--------------------------------------------------------------------
|
||||
andedad:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
mvs.\3 \1,d0
|
||||
move.l \2,a1
|
||||
mvs.\3 -(a1),d1
|
||||
move.l a1,\2
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,(a1)
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and dx,ea->ay,-(ay)
|
||||
//--------------------------------------------------------------------
|
||||
andedadd:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
mvs.\3 \1,d0
|
||||
mvs.\3 -\2,d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,\2
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and dx,d16(ay)
|
||||
//--------------------------------------------------------------------
|
||||
ande16ad:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
mvs.\3 \1,d0
|
||||
move.l \2,a1
|
||||
mvs.w (a0)+,d1
|
||||
add.l d1,a1
|
||||
mvs.\3 (a1),d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,(a1)
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and.w dx,d8(ay,dy)
|
||||
//--------------------------------------------------------------------
|
||||
ande8ad:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
move.l \2,a1
|
||||
jsr ewf
|
||||
.ifc \3,l
|
||||
move.l (a1),d1
|
||||
move.l \1,d0
|
||||
.else
|
||||
mvs.\3 (a1),d1
|
||||
mvs.\3 \1,d0
|
||||
.endif
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,(a1)
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and dx,xxx.w
|
||||
//--------------------------------------------------------------------
|
||||
andxwe:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
mvs.\3 \1,d0
|
||||
move.w (a0)+,a1
|
||||
mvs.\3 (a1),d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,(a1)
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // and dx,xxx.l
|
||||
//--------------------------------------------------------------------
|
||||
andxle:.macro
|
||||
#ifdef halten_and
|
||||
halt
|
||||
#endif
|
||||
mvs.\3 \1,d0
|
||||
move.l (a0)+,a1
|
||||
mvs.\3 (a1),d1
|
||||
and.l d0,d1
|
||||
set_cc0
|
||||
move.\3 d1,(a1)
|
||||
ii_end
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.w ea,ax
|
||||
//--------------------------------------------------------------------
|
||||
andaw:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// and.w ea,usp
|
||||
//--------------------------------------------------------------------
|
||||
andawa7:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.w usp?,ax
|
||||
//--------------------------------------------------------------------
|
||||
andawu:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.w usp?,usp
|
||||
//--------------------------------------------------------------------
|
||||
andawua7:.macro
|
||||
andawu \1,\2
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.w d16(ay),ax
|
||||
//--------------------------------------------------------------------
|
||||
andawd16a:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.w d8(ay,dy),ax
|
||||
//--------------------------------------------------------------------
|
||||
andawd8a:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.w xxx.w,ax
|
||||
//--------------------------------------------------------------------
|
||||
andawxwax:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.w xxx.l,ax
|
||||
//--------------------------------------------------------------------
|
||||
andawxlax:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.w d16(pc),ax
|
||||
//--------------------------------------------------------------------
|
||||
andawd16pcax:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.w d8(pc,dy),ax
|
||||
//--------------------------------------------------------------------
|
||||
andawd8pcax:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.w #im,ax
|
||||
//--------------------------------------------------------------------
|
||||
andawim:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.l d8(ay,dy),ax
|
||||
//--------------------------------------------------------------------
|
||||
andald8a:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // anda.l d8(pc,dy),ax
|
||||
//--------------------------------------------------------------------
|
||||
andald8pcax:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//*****************************************************************************************
|
||||
// spezial addx subx etc.
|
||||
//--------------------------------------------------------------------
|
||||
//--------------------------------------------------------------------
|
||||
// // addx dy,dx
|
||||
//--------------------------------------------------------------------
|
||||
anddx:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
// // addx -(ay),-(ax)
|
||||
//--------------------------------------------------------------------
|
||||
anddax:.macro
|
||||
jmp ii_error
|
||||
.endm;
|
||||
//--------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user