Commit 4206f5fd authored by kollo's avatar kollo

version 1.22 (unvollstaendig)

parent 3f0ea8b4
......@@ -5,13 +5,14 @@
' Ported to X11-Basic
'
' latest modified: 2011-08-10 for X11-Basic V.1.18
' latest modified: 2013-03-10 for X11-Basic V.1.20
'
DIM pxU(4),pyU(4)
if SENSOR?>0 ! is probably an Android device
IF SENSOR?>0 ! is probably an Android device
imgpath$="/storage/tmp/"
else
ELSE
imgpath$="/tmp/"
endif
ENDIF
meldung$="WSHOW (c) Markus Hoffmann 1989 - 2001"
maxfl=80000
sortstart=0
......@@ -25,19 +26,19 @@ DIM dist(maxfl)
DIM index%(maxfl)
'
'
weiss=GET_COLOR(65535,65535,65535)
schwarz=GET_COLOR(0,0,0)
grau=GET_COLOR(32000,32000,32000)
gelb=GET_COLOR(65535,65535,32000)
blau=GET_COLOR(32000,32000,65535)
rot=GET_COLOR(32000,0,0)
weiss=COLOR_RGB(1,1,1)
schwarz=COLOR_RGB(0,0,0)
grau=COLOR_RGB(0.5,0.5,0.5)
gelb=COLOR_RGB(1,1,0.5)
blau=COLOR_RGB(0.5,0.5,1)
rot=COLOR_RGB(0.5,0,0)
bildcount=1
bx%=0
by%=0
bw%=600
bh%=400
get_geometry 1,bx%,by%,bw%,bh%
GET_GEOMETRY 1,bx%,by%,bw%,bh%
CLIP bx%,by%,bw%,bh%
' Koordinaten:
'
......@@ -91,7 +92,7 @@ WHILE EXIST(imgpath$+"bild"+STR$(bildcount,3,3,1)+".xpm")
BGET #1,VARPTR(t$),LEN(t$)
CLOSE #1
PUT 0,0,t$
VSYNC
SHOWPAGE
PAUSE 0.01
film$(bildcount)=t$
INC bildcount
......@@ -102,7 +103,7 @@ IF bildcount>=72
DO
FOR i=0 TO bildcount-1
PUT 0,0,film$(i)
VSYNC
SHOWPAGE
PAUSE 0.02
NEXT i
LOOP
......@@ -140,7 +141,7 @@ DO
COLOR gelb
PBOX 400,170,400+sortzeit*50,178
PBOX 400,190,400+plotzeit*20,198
VSYNC
SHOWPAGE
SAVEWINDOW imgpath$+"bild"+STR$(bildcount,3,3,1)+".xpm"
INC bildcount
EXIT IF stwink>2*pi
......@@ -187,7 +188,7 @@ RETURN
PROCEDURE calc
LOCAL z,zz,zzz,x,y,x,yy,t
PRINT "calculate surfaces ..."
VSYNC
SHOWPAGE
t=CTIMER
' goto kug
FOR y=y2 DOWNTO y1 STEP sy
......@@ -201,7 +202,7 @@ PROCEDURE calc
NEXT x
NEXT y
PRINT anzfl;" elements in ";CTIMER-t;" Sekunden."
VSYNC
SHOWPAGE
kug:
LOCAL r,spsp,st,phi,theta,x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
......@@ -224,7 +225,7 @@ kug:
torus:
GPRINT anzfl;" Flchen. in ";CTIMER-t;" Sekunden."
VSYNC
SHOWPAGE
RETURN
PROCEDURE sort
......@@ -259,7 +260,7 @@ PROCEDURE sort
@progress(anzfl,i)
print
PRINT "in ";ctimer-t;" Sekunden."
VSYNC
SHOWPAGE
RETURN
PROCEDURE save
OPEN "O",#1,imgpath$+"welt.xxx"
......@@ -279,7 +280,7 @@ PROCEDURE load
PRINT meldung$
BGET #1,VARPTR(welt(0)),anzfl*8*13
CLOSE #1
VSYNC
SHOWPAGE
RETURN
PROCEDURE plot
plottime=TIMER
......@@ -355,14 +356,14 @@ PROCEDURE plot
pyU(3)=@ky(welt(9+13*i),welt(10+13*i),welt(11+13*i))
POLYFILL 4,pxU(),pyU()
IF TIMER-ptimer>1
VSYNC
SHOWPAGE
@progress(anzfl,i)
ptimer=TIMER
ENDIF
ENDIF
NEXT i
@progress(anzfl,i)
VSYNC
SHOWPAGE
PRINT "Plotted in ";ROUND(TIMER-plottime);" sec."
RETURN
'
......@@ -425,5 +426,5 @@ FUNCTION ky(x,y,z)
ENDFUNC
procedure progress(a,b)
PRINT chr$(13);"[";string$(b/a*32,"-");">";string$((1.03-b/a)*32,"-");"| ";str$(int(b/a*100),3,3);"% ]";
flush
FLUSH
RETURN
......@@ -7,8 +7,9 @@
<H1>Index of /examples/3D-graphics</H1>
<HR>
<pre>
<A HREF="../">Parent Directory</A>
<A HREF="3Dshow.bas">3Dshow.bas</A> 9k<A HREF="../../screenshots/3Dshow.png">(Screenshot)</A>
<A HREF="../">Parent Directory</A>
10k 1993-08-10 <A HREF="3Dshow.bas">3Dshow.bas</A> calculates and draws 3 dimentional Objects<A HREF="../../screenshots/3Dshow.png">(Screenshot)</A>
3k 1990-08-10 <A HREF="wkug.bas">wkug.bas</A> Calculates Surfaces of two hollow Balls and saves it into a file
</PRE><HR>
</BODY></HTML>
......@@ -2,7 +2,7 @@
' It then can be displayed with 3Dshow.bas
' (c) Markus Hoffmann 1990
PRINT "MAKE-WORLD (c) Markus Hoffmann"
PRINT "MAKE-WORLD (c) Markus Hoffmann 1990"
meldung$="Surfaces of two hollow Balls"+chr$(0)
maxworld%=10000
mf%=maxworld%*13*8
......@@ -36,7 +36,7 @@ st=PI/15
FOR phi=0 TO 2*PI STEP spsp
FOR theta=0.05 TO PI STEP st
PRINT chr$(13);"Flchen:"'anzworld%;
flush
FLUSH
@polar1(r,theta,phi)
@polar2(r,theta+st,phi)
@polar3(r,theta+st,phi+spsp)
......@@ -59,7 +59,7 @@ FOR phi=0 TO 2*PI STEP spsp
@add4fl(16,x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4)
NEXT theta
NEXT phi
print
PRINT
'
PRINT "Welt: ";anzworld%;" Elemente..."
@saveworld
......@@ -119,5 +119,5 @@ RETURN
'
PROCEDURE ende
FREE world%
quit
QUIT
RETURN
' It is possible to modify the X11-Basic preferences under Android by
' reading or writing the the files under this directory:
' chdir "/data/data/net/sourceforge/x11basic"
a$=FSFIRST$("/data/data/net.sourceforge.x11basic")
f$="net.sourceforge.x11basic_preferences.xml"
while len(a$)
print a$
a$=FSNEXT$()
wend
print system$("cd /data/data/net.sourceforge.x11basic/shared_prefs ; cat myappraterdialog.xml")
print "------"
print system$("cd /data/data/net.sourceforge.x11basic/shared_prefs ; cat "+f$)
print "------"
print system$("cd /data/data/net.sourceforge.x11basic/shared_prefs ; ls ")
print "------"
print system$("cd /data/data/net.sourceforge.x11basic ; cat cache/* ")
' Disassembler for the M68000 Processor by Markus Hoffmann 1999
' (maybe also useful for the coldfire architecture)
'
'
' still buggy
DIM bef$(400),mask%(400),typ$(400),txt$(400),cmp%(400)
DIM symbol%(1000)
CLR anzsymbol%
ARRAYFILL mask%(),0
ARRAYFILL cmp%(),0
CLR i%
RESTORE mc68000_data
DO
READ bef$(i%)
EXIT IF bef$(i%)="***"
FOR gu=0 TO LEN(bef$(i%))-1
IF PEEK(VARPTR(bef$(i%))+gu)=ASC("0")
mask%(i%)=BSET(mask%(i%),15-gu)
cmp%(i%)=BCLR(cmp%(i%),15-gu)
ELSE IF PEEK(VARPTR(bef$(i%))+gu)=ASC("1")
mask%(i%)=BSET(mask%(i%),15-gu)
cmp%(i%)=BSET(cmp%(i%),15-gu)
ELSE
cmp%(i%)=BCLR(cmp%(i%),15-gu)
mask%(i%)=BCLR(mask%(i%),15-gu)
ENDIF
NEXT gu
READ typ$(i%)
READ txt$(i%)
INC i%
LOOP
cond$()=["F","SR","HI","LS","CC","CS","NE","EQ","VC","VS","PL","MI","GE","LT","GT","LE"]
size$()=["size0","b","l","w"]
print "read ";i%;" commands."
anzu=i%
'
OPEN "I",#1,"/work/CDs/ATARI-ST_v_2/atari/disks/Projekte/sp_sek/sp-sek.q/rdskatom.b"
memory$=INPUT$(#1,LOF(#1))
CLOSE #1
pcl=VARPTR(memory$) !+28
memlen=len(memory$)
memdump pcl,memlen
'
DO
pcsl=pcl
ccc%=@DPEEK(pcl)
' print hex$(ccc%)
ADD pcl,2
bll=2
CLR flb
eacount=0
FOR iu=0 TO anzu-1
IF (ccc% AND mask%(iu))=cmp%(iu)
' PRINT BIN$(ccc%,16)''BIN$(mask%(iu),16)''
t$=txt$(iu)
posl=INSTR(t$,"$")
WHILE posl>0
car$=MID$(t$,posl+1,1)
al=@wert(car$,iu)
tf$=@typ$(car$,iu)
IF tf$="Cond"
replace$=cond$(al)
ELSE IF tf$="Areg"
replace$=@areg$(al)
ELSE IF tf$="Dreg"
replace$="d"+STR$(al)
ELSE IF tf$="Ea(AM_DA)"
replace$=@ea$(al)
ELSE IF tf$="Ea(AM_D)"
replace$=@ea$(al)
ELSE IF tf$="IEa(AM_DA)"
replace$=@ea$(al)
ELSE IF tf$="Ea(AM_MA)"
replace$=@ea$(al)
ELSE IF tf$="Ea(AM_DB)"
replace$=@ea$(al)
ELSE IF tf$="Ea(AM_C)"
replace$=@ea$(al)
ELSE IF tf$="Ea(AM_DNI)"
replace$=@ea$(al)
ELSE IF tf$="Ea(*)"
replace$=@ea$(al)
ELSE IF tf$="Size"
replace$=size$(al)
ELSE IF tf$="Size1"
replace$=size$(ABS(al=1)*2+0)
ELSE IF tf$="PCrel"
replace$="L"+HEX$(pcl+al,8,8)
ELSE IF tf$="S8"
IF ABS(BYTE(al))>15
replace$="$"+HEX$(BYTE(al),2,2)
ELSE
replace$=STR$(BYTE(al))
ENDIF
ELSE IF tf$="SI"
replace$="$"+HEX$(@DPEEK(pcl),4,4)
ADD pcl,2
ADD bll,2
ELSE IF tf$="SI32"
replace$=@value$(@LPEEK(pcl))
ADD pcl,4
ADD bll,4
ELSE IF tf$="SI16" or tf$="SI8"
replace$=HEX$(@DPEEK(pcl),4,4)
ADD pcl,2
ADD bll,2
ELSE IF tf$="PCrel16"
replace$="L"+HEX$(pcl+@DPEEK(pcl),8,8)
ADD pcl,2
ADD bll,2
ELSE IF tf$="Q3"
replace$=STR$(al)
ELSE IF tf$="U4"
replace$=STR$(al)
ELSE IF tf$="U12"
replace$="$"+HEX$(al,4,4)
ELSE
PRINT car$''tf$''al
replace$="EEE"+STR$(al)
ENDIF
t$=LEFT$(t$,posl-1)+replace$+RIGHT$(t$,LEN(t$)-posl-1)
posl=INSTR(t$,"$",posl+LEN(replace$))
' print posl,t$
WEND
PRINT "$"+HEX$(pcl,8,8)''
if @is_symbol(pcl)
PRINT "L"+HEX$(pcl,8,8)+": ";
else
print space$(10);
endif
FOR hl=pcsl TO pcsl+bll-2 STEP 2
PRINT HEX$(@DPEEK(hl),4,4);
NEXT hl
PRINT SPACE$(2*(10-bll))+t$
flb=TRUE
EXIT IF TRUE
ENDIF
NEXT iu
IF NOT flb
CLR flb
PRINT "$"+HEX$(pcl,8,8)''
if @is_symbol(pcl)
PRINT "L"+HEX$(pcl,8,8)+": ";
else
print space$(10);
endif
FOR hl=pcsl TO pcsl+bll-2 STEP 2
PRINT HEX$(@DPEEK(hl),4,4);
NEXT hl
PRINT ,"DC.W $"+HEX$(ccc%,4,4)
ENDIF
exit if pcl-varptr(memory$)>memlen
LOOP
'
print "Symbols: ";anzsymbol%
QUIT
'
'
FUNCTION wert(t$,i%)
LOCAL pos%,w%
CLR w%
' print "WERT: ";bef$(i%);" ";t$;" ";
pos%=INSTR(bef$(i%),t$)
WHILE pos%>0
w%=SHL(w%,1)
w%=w% OR ABS(BTST(ccc%,16-pos%))
pos%=INSTR(bef$(i%),t$,pos%+1)
WEND
' print "--> ";bin$(w%,tally(bef$(i%),t$))
RETURN w%
ENDFUNC
FUNCTION typ$(t$,iu)
LOCAL posl,w$
w$="undef"
FOR posl=1 TO LEN(typ$(iu))
IF MID$(typ$(iu),posl,1)=t$
posl=INSTR(typ$(iu),":",posl)
IF posl=0
RETURN w$+"1"
ENDIF
IF posl=LEN(typ$(iu))
RETURN w$+"2"
ENDIF
RETURN MID$(typ$(iu),posl+1,INSTR(typ$(iu),";",posl)-posl-1)
ELSE IF MID$(typ$(iu),posl,1)=":"
posl=INSTR(typ$(iu),";",posl)
IF posl=0
RETURN w$+"3"
ENDIF
IF posl=LEN(typ$(iu))
RETURN w$+"4"
ENDIF
ELSE IF MID$(typ$(iu),posl,1)=";"
RETURN w$+"5"
ENDIF
NEXT posl
RETURN w$+"6"
ENDFUNC
'
PROCEDURE bitschiebe
' ASL/ASR LSL/LSR ROXL/ROXR ROL/ROR (ea) (Dn,Dn) (#k,ea)
' 1110 kkky bbef ghhh
IF @bits(cu,3,2)=0
dis$="AS"
ELSE IF @bits(cu,3,2)=1
dis$="LS"
ELSE IF @bits(cu,3,2)=2
dis$="ROX"
ELSE IF @bits(cu,3,2)=3
dis$="RO"
ENDIF
IF BTST(8,cu)
dis$=dis$+"L"
ELSE
dis$=dis$+"R"
ENDIF
IF @bits(cu,6,2)=&X11
dis$=dis$+" "+@ea$
ELSE
dis$=dis$+@bwl$+" "
IF BTST(cu,5)
@dndn
ELSE
@kkea
ENDIF
ENDIF
RETURN
PROCEDURE linef
dis$="DC.W $"+HEX$(cu,4,4)+" ; LINE-F"
RETURN
PROCEDURE linea
dis$="DC.W $"+HEX$(cu,4,4)+" ; LINE-A"
RETURN
'
'
PROCEDURE kkea
dis$=dis$+" #"
IF @bits(cu,9,3)=0
dis$=dis$+"8"
ELSE
dis$=dis$+STR$(@bits(cu,9,3))
ENDIF
dis$=dis$+","+@ea$
RETURN
PROCEDURE eadn
dis$=dis$+" "+@ea$+",D"+STR$(@bits(cu,9,3))
RETURN
PROCEDURE dndn
dis$=dis$+" D"+STR$(@bits(cu,9,3))+",D"+STR$(@bits(cu,0,3))
RETURN
PROCEDURE dnea
dis$=dis$+" D"+STR$(@bits(cu,9,3))+","+@ea$
RETURN
FUNCTION bits(cu,au,su)
RETURN SHR(cu,au) AND (2^su)-1
ENDFUNC
PROCEDURE 1ea(t$,cu,flb)
dis$=t$+@bwl$+" "+@ea$
RETURN
FUNCTION ea$(wu)
if tf$="IEa(AM_DA)"
wu=SHL(@bits(wu,0,3),3) OR @bits(wu,3,3)
endif
PRINT "EA:"'BIN$(wu,6)''
SELECT wu
CASE 0,1,2,3,4,5,6,7 ! Dn
RETURN "D"+STR$(wu AND 7)
CASE 8,9,10,11,12,13,14,15 ! An
RETURN "A"+STR$(wu AND 7)
CASE 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17 ! (An)
RETURN "(A"+STR$(wu AND 7)+")"
CASE 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e ! (An)+
RETURN "(A"+STR$(wu AND 7)+")+"
CASE 0x1F ! (SP)+
RETURN "(SP)+"
CASE 0x20,0x21,0x22,0x23,0x24,0x25,0x26 ! -(An)
RETURN "-(A"+STR$(wu AND 7)+")"
CASE 0x27
RETURN "-(SP)"
CASE 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2F
ADD bll,2
ADD pcl,2
IF ABS(@DPEEK(pcl-2))<256
RETURN STR$(@DPEEK(pcl-2))+"(A"+STR$(wu AND 7)+")"
ELSE
RETURN "$"+HEX$(@DPEEK(pcl-2),4,4)+"(A"+STR$(wu AND 7)+")"
ENDIF
CASE 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37
ADD bll,2
ADD pcl,2
RETURN STR$(@dpeek(pcl-2) AND 0xFFF)+"(A"+STR$(wu AND 7)+","+CHR$(ASC("A")+(ASC("D")-ASC("A"))*ABS(NOT BTST(15,@dpeek(pcl-2))))+STR$(SHR(@dpeek(pcl-2) AND 0xF000,12) AND 7)+".W)"
CASE 0x38
ADD bll,2
ADD pcl,2
@add_symbol(@dpeek(pcl-2))
RETURN "$"+HEX$(@dpeek(pcl-2),4,4)+".s"
CASE 0x39
ADD bll,4
ADD pcl,4
@add_symbol(@lpeek(pcl-4))
RETURN "$"+HEX$(@lpeek(pcl-4),8,8)
CASE 0x3a
ADD bll,2
ADD pcl,2
@add_symbol(pcl-2+@dpeek(pcl-2))
RETURN "L"+HEX$(pcl-2+@dpeek(pcl-2),8,8)+"(pc)"
CASE 0x3b
ADD bll,2
ADD pcl,2
RETURN STR$(@dpeek(pcl-2) AND 0xFFF)+"(pc,"+CHR$(ASC("A")+ABS(NOT BTST(@dpeek(pcl-2),15))*(ASC("D")-ASC("A")))+".W)"
CASE 0x3c
if tf$="Ea(AM_D)" or tf$="Ea(*)"
ADD pcl,4
ADD bll,4
return @value$(@lPEEK(pcl-4))
else
ADD pcl,2
ADD bll,2
RETURN @value$(@DPEEK(pcl-2))
endif
DEFAULT
RETURN "ERROR"
ENDSELECT
ENDFUNC
FUNCTION bwl$
wu=SHR(wu AND 0xc0,6)
IF flb=0
RETURN ""
ENDIF
SELECT wu
CASE 0
RETURN ".B"
CASE 1
RETURN "" !".W"
CASE 2
RETURN ".L"
DEFAULT
RETURN "-BWL-ERROR-"
ENDSELECT
ENDFUNC
FUNCTION bwl2$
wu=@bits(cu,12,2)
SELECT wu
CASE 1
RETURN ".B"
CASE 3
RETURN "" !".W"
CASE 2
RETURN ".L"
DEFAULT
RETURN "-BWL2-ERROR-"
ENDSELECT
ENDFUNC
FUNCTION reg$
LOCAL ru,r$
CLR r$,db
cb=TRUE
ru=@DPEEK(pcl)
db=0
FOR iu=0 TO 15
reg$=CHR$(ASC("A")+ABS(NOT BTST(iu,3))*3)+STR$(iu AND 7)
IF BTST(ru,iu)<>db
r$=r$+reg$
IF db AND iu<15
r$=r$+"/"
ENDIF
db=NOT db
CLR cb
ELSE
IF cb=0
r$=r$+"-"
cb=TRUE
ENDIF
ENDIF
NEXT iu
IF db
r$=r$+reg$
ENDIF
ADD offsu,2
RETURN r$
ENDFUNC
FUNCTION areg$(i%)
IF i%=7
RETURN "sp"
ELSE
RETURN "a"+STR$(i%)
ENDIF
ENDFUNC
'
function dpeek(adr%)
return (peek(adr%) and 0xff)*256+(peek(adr%+1) and 0xff)
endfunction
function lpeek(adr%)
return (peek(adr%) and 255)*256*256*256+(peek(adr%+1) and 255)*256*256+(peek(adr%+2) and 255)*256+(peek(adr%+3) and 255)
endfunction
procedure add_symbol(adr%)
symbol%(anzsymbol%)=adr%
inc anzsymbol%
return
function is_symbol(adr%)
local i
if anzsymbol%=0
return 0
endif
for i=0 to anzsymbol%-1
if symbol%(i)=adr%
return true
endif
next i
return false
endfunction
function value$(val%)
LOCAL t$,s$,i,a,fl
fl=0
s$=""
for i=0 to 3
a=SHR(val% and SHL(0xff,(3-i)*8),(3-i)*8)
if a>=asc(" ") and a<127
s$=s$+chr$(a)
else
if a<>0 or len(s$)>0
fl=1
endif
endif
next i
if fl=0
return "#'"+s$+"'"
endif
if val%>0 AND val%<32
return "#"+str$(val%)
endif
if val%>0 AND val%<1024
return "#"+str$(val%)
endif
if val%>0 AND val%<=0xffff
return "#$"+hex$(val%,4,4)
endif
return "#$"+hex$(val%,8,8)
endfunction
'
mc68000_data:
DATA "0000000000111100","i:SI8;","ORI.B $i,ccr"
DATA "0000000001111100","i:SI16;","ORI.W $i,sr"
DATA "00000000sseeeeee","s:Size;e:Ea(AM_DA);i:SI;","ORI.$s $i,$e"
DATA "0000001000111100","i:SI8;","ANDI_CCR $i"
DATA "0000001001111100","i:SI16;","ANDI.W $i,sr"
DATA "00000010sseeeeee","s:Size;e:Ea(AM_DA);i:SI;","ANDI.$s $i $e"
DATA "00000100sseeeeee","s:Size;e:Ea(AM_DA);i:SI;","SUBI.$s $i,$e"
DATA "00000110sseeeeee","s:Size;e:Ea(AM_DA);i:SI;","ADDI.$s $i,$e"
DATA "0000100000000rrr","r:Dreg;i:SI8;","BTST.L_SR $i,$r"
DATA "0000100000eeeeee","e:Ea(AM_M);i:SI8;","BTST.B_SM $i,$e"
DATA "0000100001000rrr","r:Dreg;i:SI8;","BCHG_SR.L $i,$r"
DATA "0000100001eeeeee","e:Ea(AM_MA);i:SI8;","BCHG_SM.B $i,$e"
DATA "0000100010000rrr","r:Dreg;i:SI8;","BCLR $i,$r"
DATA "0000100010eeeeee","e:Ea(AM_MA);i:SI8;","BCLR_SM.B $i,$e"
DATA "0000100011000rrr","r:Dreg;i:SI8;","BSET.L_SR $i,$r"
DATA "0000100011eeeeee","e:Ea(AM_MA);i:SI8;","BSET_SM.B $i,$e"
DATA "0000101000111100","i:SI8;","EORI.B _CCR $i"
DATA "0000101001111100","i:SI16;","EORI.W $i,sr"
DATA "00001010sseeeeee","s:Size;e:Ea(AM_DA);i:SI;","EORI.$s $i,$e"
DATA "00001100sseeeeee","s:Size;i:SI32;e:Ea(AM_D);","CMPI.$s $i,$e"
DATA "0000rrr100000ddd","rd:Dreg;","BTST.l $r,$d"
DATA "0000rrr100eeeeee","r:Dreg;e:Ea(AM_DB);","BTST.b $r,$e"
DATA "0000rrr101000ddd","rd:Dreg;","BCHG.l $r,$d"
DATA "0000ddd10s001aaa","d:Dreg;a:Areg;s:Size1;i:SI16;","MOVEP_MR.$s $i $a,$d"
DATA "0000rrr101eeeeee","r:Dreg;e:Ea(AM_MA);","BCHG.b $r,$e"
DATA "0000rrr110000ddd","rd:Dreg;","BCLR.l $r,$d"
DATA "0000rrr110eeeeee","r:Dreg;e:Ea(AM_MA);","BCLR.b $r,$e"
DATA "0000rrr111000ddd","rd:Dreg;","BSET.l $r,$d"
DATA "0000ddd11s001aaa","d:Dreg;a:Areg;s:Size1;i:SI16;","MOVEP_RM.$s $i,$d,$a"
DATA "0000rrr111eeeeee","r:Dreg;e:Ea(AM_MA);","BSET.b $r,$e"
'
DATA "0001rrr001eeeeee","r:Areg;e:Ea(*);","ILLEGAL"
DATA "00ssrrr001eeeeee","s:Size;r:Areg;e:Ea(*);","MOVEA.$s $e,$r"
DATA "00sseeeeeeffffff","s:Size;e:IEa(AM_DA);f:Ea(*);","MOVE.$s $f,$e"
'
DATA "0100000011eeeeee","e:Ea(AM_DA);","MOVE.w sr,$e"
DATA "01000000sseeeeee","s:Size;e:Ea(AM_DA);","NEGX.$s $e"
DATA "01000010sseeeeee","s:Size;e:Ea(AM_DA);","CLR.$s $e"
DATA "0100010011eeeeee","e:Ea(AM_D);","MOVE.W $e,ccr"
DATA "01000100sseeeeee","s:Size;e:Ea(AM_DA);","NEG.$s $e"
DATA "0100011011eeeeee","e:Ea(AM_D);","MOVE.W $e,sr"
DATA "01000110sseeeeee","s:Size;e:Ea(AM_DA);","NOT.$s $e"
DATA "0100100000eeeeee","e:Ea(AM_DA);","NBCD $e"