-moved all includes into "include" directory -extracted "wait...()"-routines into separate files
443 lines
11 KiB
C
443 lines
11 KiB
C
//--------------------------------------------------------------------
|
|
// or
|
|
//--------------------------------------------------------------------
|
|
/*****************************************************************************************/
|
|
//--------------------------------------------------------------------
|
|
// byt
|
|
//--------------------------------------------------------------------
|
|
//--------------------------------------------------------------------
|
|
// or.b #im,dx
|
|
//--------------------------------------------------------------------
|
|
orbir_macro:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
move.w (a0)+,d0
|
|
extb.l d0
|
|
mvs.b \2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.b d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or ea,dx
|
|
//--------------------------------------------------------------------
|
|
ordd:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
mvs.\3 \1,d0
|
|
mvs.\3 \2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or ea(l)->dy(w),dx z.B. für USP
|
|
//--------------------------------------------------------------------
|
|
orddd:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
move.l \1,a1
|
|
mvs.\3 a1,d0
|
|
mvs.\3 \2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or (ea)->dy,dx
|
|
//--------------------------------------------------------------------
|
|
ordda:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
move.l \1,a1
|
|
mvs.\3 (a1),d0
|
|
mvs.\3 \2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or ea->ay,(ay)+,dx
|
|
//--------------------------------------------------------------------
|
|
orddai:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
move.l \1,a1
|
|
mvs.\3 (a1)+,d0
|
|
move.l a1,\1
|
|
mvs.\3 \2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or ea->ay,-(ay),dx
|
|
//--------------------------------------------------------------------
|
|
orddad:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
move.l \1,a1
|
|
mvs.\3 -(a1),d0
|
|
move.l a1,\1
|
|
mvs.\3 \2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or d16(ay),dx
|
|
//--------------------------------------------------------------------
|
|
ord16ad:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
move.l \1,a1
|
|
mvs.w (a0)+,d0
|
|
add.l d0,a1
|
|
mvs.\3 (a1),d0
|
|
mvs.\3 \2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or d8(ay,dy),dx
|
|
//--------------------------------------------------------------------
|
|
ord8ad:.macro
|
|
#ifdef halten_or
|
|
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
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or xxx.w,dx
|
|
//--------------------------------------------------------------------
|
|
orxwd:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
move.w (a0)+,a1
|
|
mvs.\3 (a1),d0
|
|
mvs.\3 \2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or xxx.l,dx
|
|
//--------------------------------------------------------------------
|
|
orxld:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
move.l (a0)+,a1
|
|
mvs.\3 (a1),d0
|
|
mvs.\3 \2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or d16(pc),dx
|
|
//--------------------------------------------------------------------
|
|
ord16pcd:.macro
|
|
halt
|
|
move.l a0,a1
|
|
mvs.w (a0)+,d0
|
|
add.l d0,a1
|
|
mvs.\3 (a1),d0
|
|
mvs.\3 \2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or d8(pc,dy),dx
|
|
//--------------------------------------------------------------------
|
|
ord8pcd:.macro
|
|
#ifdef halten_or
|
|
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
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// or dy,ea
|
|
//--------------------------------------------------------------------
|
|
//--------------------------------------------------------------------
|
|
// // or (ea)->dy,dx
|
|
//--------------------------------------------------------------------
|
|
oreda:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
mvs.\3 \1,d0
|
|
move.l \2,a1
|
|
mvs.\3 (a1),d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,(a1)
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or dx,ea->ay,(ay)+
|
|
//--------------------------------------------------------------------
|
|
oredai:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
mvs.\3 \1,d0
|
|
move.l \2,a1
|
|
mvs.\3 (a1),d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,(a1)+
|
|
move.l a1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or dx,ea->ay,(ay)+
|
|
//--------------------------------------------------------------------
|
|
oredaid:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
mvs.\3 \1,d0
|
|
mvs.\3 \2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2+
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or dx,ea->ay,-(ay)
|
|
//--------------------------------------------------------------------
|
|
oredad:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
mvs.\3 \1,d0
|
|
move.l \2,a1
|
|
mvs.\3 -(a1),d1
|
|
move.l a1,\2
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,(a1)
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or dx,ea->ay,-(ay)
|
|
//--------------------------------------------------------------------
|
|
oredadd:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
mvs.\3 \1,d0
|
|
mvs.\3 -\2,d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,\2
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or dx,d16(ay)
|
|
//--------------------------------------------------------------------
|
|
ore16ad:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
mvs.\3 \1,d0
|
|
move.l \2,a1
|
|
mvs.w (a0)+,d1
|
|
add.l d1,a1
|
|
mvs.\3 (a1),d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,(a1)
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or.w dx,d8(ay,dy)
|
|
//--------------------------------------------------------------------
|
|
ore8ad:.macro
|
|
#ifdef halten_or
|
|
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
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,(a1)
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or dx,xxx.w
|
|
//--------------------------------------------------------------------
|
|
orxwe:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
mvs.\3 \1,d0
|
|
move.w (a0)+,a1
|
|
mvs.\3 (a1),d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,(a1)
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // or dx,xxx.l
|
|
//--------------------------------------------------------------------
|
|
orxle:.macro
|
|
#ifdef halten_or
|
|
halt
|
|
#endif
|
|
mvs.\3 \1,d0
|
|
move.l (a0)+,a1
|
|
mvs.\3 (a1),d1
|
|
or.l d0,d1
|
|
set_cc0
|
|
move.\3 d1,(a1)
|
|
ii_end
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.w ea,ax
|
|
//--------------------------------------------------------------------
|
|
oraw:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// or.w ea,usp
|
|
//--------------------------------------------------------------------
|
|
orawa7:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.w usp?,ax
|
|
//--------------------------------------------------------------------
|
|
orawu:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.w usp?,usp
|
|
//--------------------------------------------------------------------
|
|
orawua7:.macro
|
|
orawu \1,\2
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.w d16(ay),ax
|
|
//--------------------------------------------------------------------
|
|
orawd16a:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.w d8(ay,dy),ax
|
|
//--------------------------------------------------------------------
|
|
orawd8a:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.w xxx.w,ax
|
|
//--------------------------------------------------------------------
|
|
orawxwax:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.w xxx.l,ax
|
|
//--------------------------------------------------------------------
|
|
orawxlax:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.w d16(pc),ax
|
|
//--------------------------------------------------------------------
|
|
orawd16pcax:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.w d8(pc,dy),ax
|
|
//--------------------------------------------------------------------
|
|
orawd8pcax:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.w #im,ax
|
|
//--------------------------------------------------------------------
|
|
orawim:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.l d8(ay,dy),ax
|
|
//--------------------------------------------------------------------
|
|
orald8a:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // ora.l d8(pc,dy),ax
|
|
//--------------------------------------------------------------------
|
|
orald8pcax:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//*****************************************************************************************
|
|
// spezial addx subx etc.
|
|
//--------------------------------------------------------------------
|
|
//--------------------------------------------------------------------
|
|
// // addx dy,dx
|
|
//--------------------------------------------------------------------
|
|
ordx:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|
|
// // addx -(ay),-(ax)
|
|
//--------------------------------------------------------------------
|
|
ordax:.macro
|
|
jmp ii_error
|
|
.endm;
|
|
//--------------------------------------------------------------------
|