opcodes.txt 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407
  1. ;- http://clrhome.org/table/
  2. ;--------------------- equ -----------------------------------------------------
  3. z80_regs equ $00
  4. z80_f equ $00
  5. z80_a equ $01
  6. z80_af equ z80_f
  7. z80_c equ $02
  8. z80_b equ $03
  9. z80_bc equ z80_c
  10. z80_e equ $04
  11. z80_d equ $05
  12. z80_de equ z80_e
  13. z80_l equ $06
  14. z80_h equ $07
  15. z80_hl equ z80_l
  16. z80_ixl equ $08
  17. z80_ixh equ $09
  18. z80_ix equ $08
  19. z80_iyl equ $0a
  20. z80_iyh equ $0b
  21. z80_iy equ $0a
  22. z80_fp equ $0c
  23. z80_ap equ $0d
  24. z80_cp equ $0e
  25. z80_bp equ $0f
  26. z80_bcp equ z80_cp
  27. z80_ep equ $10
  28. z80_dp equ $11
  29. z80_dep equ z80_ep
  30. z80_lp equ $12
  31. z80_hp equ $13
  32. z80_hlp equ z80_lp
  33. z80_sp equ $14
  34. z80_reg0 equ $16
  35. z80_reg1 equ $17
  36. z80_reg2 equ $18
  37. z80_reg3 equ $19
  38. z80_reg4 equ $1a
  39. z80_reg5 equ $1b
  40. z80_reg6 equ $1c
  41. z80_reg7 equ $1d
  42. z80_reg8 equ $1e
  43. z80_reg9 equ $1f
  44. ;-------------------------------------------------------------------------------
  45. ;-------------------------------------------------------------------------------
  46. ;--------------------- opcodes -------------------------------------------------
  47. ;0x00 - nop
  48. nop
  49. ;0x01 - ld bc,nn
  50. lda #<nn ;- ld bc,nn
  51. sta z80_c
  52. lda #>nn
  53. sta z80_b
  54. ;0x02 - ld (bc),nn
  55. ;0x03 - inc bc
  56. inc z80_c ;- inc bc
  57. bne *+4
  58. inc z80_b
  59. ;0x04 - inc b
  60. inc z80_b ;- inc b
  61. ;0x05 - dec b
  62. dec z80_b
  63. ;0x06 - ld b,n
  64. lda %n ;- ld b,n
  65. sta z80_b
  66. ;0x07 - rlca
  67. asl @ ;- RLCA: Warning: this copies bit 7 to bit 0"
  68. ;0x08 - ex af,af'
  69. ldx z80_ap ;- ex af,af'
  70. sta z80_ap
  71. txa
  72. ;0x09 - add hl,bc
  73. lda z80_l ;- add hl,bc
  74. clc
  75. adc z80_c
  76. sta z80_l
  77. lda z80_h
  78. adc z80_b
  79. sta z80_h
  80. ;0x0A - ld a,(bc)
  81. ldy #$00
  82. lda (z80_bc),y
  83. ;0x0B - dec bc
  84. lda z80_c ;- dec bc
  85. bne dec_bc_no_dec_b
  86. dec z80_b
  87. dec_bc_no_dec_b:
  88. dec z80_c
  89. ;rts
  90. ;0x0C - inc c
  91. inc z80_c ;- inc c
  92. ;0x0D - dec c
  93. dec z80_c ;- dec c
  94. ;0x0E - ld c,n
  95. lda #$%1
  96. sta z80_c
  97. ;0x0F - rrca
  98. ;0x10 - djnz n
  99. dec z80_b ;- djnz n
  100. jne n
  101. ;0x11 - ld de,nn
  102. lda #<nn ;- ld de,nn
  103. sta z80_e
  104. lda #>nn
  105. sta z80_d
  106. ;0x12 - ld (de),a
  107. ;0x13 - inc de
  108. inc z80_e ;- inc de
  109. bne *+4
  110. inc z80_d
  111. ;0x14 - inc d
  112. inc z80_d
  113. ;0x15 - dec d
  114. dec z80_d
  115. ;0x16 - ld d,n
  116. lda #n ;- ld d,n
  117. sta z80_d
  118. ;0x17 - rla
  119. ;0x18 - jr n
  120. jmp n ;- jr n
  121. ;0x19 - add hl,de
  122. clc ;- add hl,de
  123. lda z80_l
  124. adc z80_e
  125. sta z80_l
  126. lda z80_h
  127. adc z80_d
  128. sta z80_h
  129. ;0x1A - ld a,(de)
  130. ;0x1B - dec de
  131. ;dec_de:
  132. lda z80_e
  133. bne dec_de_no_dec_d
  134. dec z80_d
  135. dec_de_no_dec_d:
  136. dec z80_e
  137. ;rts
  138. ;0x1C - inc e
  139. inc z80_e
  140. ;0x1D - dec e
  141. dec z80_e
  142. ;0x1E - ld e,n
  143. lda #$%1
  144. sta z80_e
  145. ;0x1F - rra
  146. ror @
  147. ;0x20 - jr nz,n
  148. jne %1
  149. ;0x21 - ld hl,nn
  150. lda #<nn ;- ld hl,nn
  151. sta z80_l
  152. lda #>nn
  153. sta z80_h
  154. ;0x22 - ld (nn),hl
  155. lda z80_l ;- ld (nn),hl
  156. sta nn
  157. lda z80_h
  158. sta nn+1
  159. ;0x23 - inc hl
  160. inc z80_l ;- inc hl
  161. bne *+4
  162. inc z80_h
  163. ;0x24 - inc h
  164. inc z80_h ;- inc h
  165. ;0x25 - dec h
  166. dec z80_h
  167. ;0x26 - ld h,n
  168. lda #$%1
  169. sta z80_h
  170. ;0x27 - daa - decimal mode - irrelevant?
  171. ;0x28 - jr z,n
  172. jeq n
  173. ;0x29 - add hl,hl
  174. asl z80_l ;- add hl,hl
  175. rol z80_h
  176. ;0x2A - ld hl,(nn)
  177. lda nn ;- ld hl,(nn)
  178. sta z80_l
  179. lda nn+1
  180. sta z80_h
  181. ;0x2B - dec hl
  182. dec_hl:
  183. lda z80_l ;- dec_hl
  184. bne dec_hl_no_dec_h
  185. dec z80_h
  186. dec_hl_no_dec_h:
  187. dec z80_l
  188. ;rts
  189. ;0x2C - inc l
  190. inc z80_l ;- inc l
  191. ;0x2D - dec l
  192. dec z80_l
  193. ;0x2E - ld l,n
  194. lda #$%1
  195. sta z80_l
  196. ;0x2F - cpl
  197. eor #$ff ;- cpl
  198. ;0x30 - jr nc,n
  199. jcs %1
  200. ;0x31 - ld sp,nn
  201. ;0x32 - ld (nn),a
  202. sta %1
  203. ;0x33 - inc sp
  204. pla
  205. ;0x34 - inc (hl)
  206. ldy #$00 ;- inc (hl)
  207. lda (z80_hl),y
  208. clc
  209. adc #$01
  210. sta (z80_hl),y
  211. ;0x35 - dec (hl)
  212. ldy #$00 ;- dec (hl)
  213. lda (z80_hl),y
  214. sec
  215. sbc #$01
  216. sta (z80_hl),y
  217. ;0x36 - ld (hl),n
  218. lda #n ;- ld (hl),n
  219. ldy #$00
  220. sta (z80_hl),y
  221. ;0x37 - scf
  222. sec
  223. ;0x38 - jr c,n
  224. jcc %n
  225. ;0x39 - add hl,sp
  226. ;0x3A - ld a,(nn)
  227. lda %1
  228. ;0x3B - dec sp
  229. pha
  230. ;0x3C - inc a
  231. clc ;- inc a
  232. adc #$01
  233. ;0x3D - dec a
  234. sec ;- dec a
  235. sbc #$01
  236. ;0x3E - ld a,n
  237. lda #n ;- ld a,n
  238. ;0x3F - ccf
  239. ;0x40 - ld b,b
  240. lda z80_b ;- ld b,b
  241. sta z80_b
  242. ;0x41 - ld b,c
  243. lda z80_c ;- ld b,c
  244. sta z80_b
  245. ;0x42 - ld b,d
  246. lda z80_d ;- ld b,d
  247. sta z80_b
  248. ;0x43 - ld b,e
  249. lda z80_e
  250. sta z80_b
  251. ;0x44 - ld b,h
  252. lda z80_h ;- ld b,h
  253. sta z80_b
  254. ;0x45 - ld b,l
  255. lda z80_l ;- ld b,l
  256. sta z80_b
  257. ;0x46 - ld b,(hl)
  258. ldy #$00 ;- ld b,(hl)
  259. lda (z80_hl),y
  260. sta z80_b
  261. ;0x47 - ld b,a
  262. lda z80_a ;- ld b,a
  263. sta z80_b
  264. ;0x48 - ld c,b
  265. lda z80_b ;- ld c,b
  266. sta z80_c
  267. ;0x49 - ld c,c
  268. lda z80_c ;- ld c,c
  269. sta z80_c
  270. ;0x4A - ld c,d
  271. lda z80_d ;- ld c,d
  272. sta z80_c
  273. ;0x4B - ld c,e
  274. lda z80_e ;- ld c,e
  275. sta z80_c
  276. ;0x4C - ld c,h
  277. lda z80_h ;- ld c,h
  278. sta z80_c
  279. ;0x4D - ld c,l
  280. lda z80_l ;- ld c,l
  281. sta z80_c
  282. ;0x4E - ld c,(hl)
  283. ldy #$00 ;- ld c,(hl)
  284. lda (z80_hl),y
  285. sta z80_c
  286. ;0x4F - ld c,a
  287. lda z80_a ;- ld c,a
  288. sta z80_c
  289. ;0x50 - ld d,b
  290. lda z80_b ;- ld d,b
  291. sta z80_d
  292. ;0x51 - ld d,c
  293. lda z80_c ;- ld d,c
  294. sta z80_d
  295. ;0x52 - ld d,d
  296. lda z80_d ;-
  297. sta z80_d
  298. ;0x53 - ld d,e
  299. lda z80_e ;-
  300. sta z80_d
  301. ;0x54 - ld d,h
  302. lda z80_h ;- ld d,h
  303. sta z80_d
  304. ;0x55 - ld d,l
  305. lda z80_l
  306. sta z80_d
  307. ;0x56 - ld d,(hl)
  308. ldy #$00 ;- ld d,(hl)
  309. lda (z80_hl),y
  310. sta z80_d
  311. ;0x57 - ld d,a
  312. lda z80_a ;- ld d,a
  313. sta z80_d
  314. ;0x58 - ld e,b
  315. lda z80_b ;-
  316. sta z80_e
  317. ;0x59 - ld e,c
  318. lda z80_c ;- ld e,c
  319. sta z80_e
  320. ;0x5A - ld e,d
  321. lda z80_d ;-
  322. sta z80_e
  323. ;0x5B - ld e,e
  324. lda z80_e ;-
  325. sta z80_e
  326. ;0x5C - ld e,h
  327. lda z80_h ;- ld e,h
  328. sta z80_e
  329. ;0x5D - ld e,l
  330. lda z80_l ;- ld e,l
  331. sta z80_e
  332. ;0x5E - ld e,(hl)
  333. ldy #$00 ;- ld e,(hl)
  334. lda (z80_hl),y
  335. sta z80_e
  336. ;0x5F - ld e,a
  337. lda z80_a ;- ld e,a
  338. sta z80_e
  339. ;0x60 - ld h,b
  340. lda z80_b ;- ld h,b
  341. sta z80_h
  342. ;0x61 - ld h,c
  343. lda z80_c ;- ld h,c
  344. sta z80_h
  345. ;0x62 - ld h,d
  346. lda z80_d ;- ld h,d
  347. sta z80_h
  348. ;0x63 - ld h,e
  349. lda z80_e ;- ld h,e
  350. sta z80_h
  351. ;0x64 - ld h,h
  352. lda z80_h ;- ld h,h
  353. sta z80_h
  354. ;0x65 - ld h,l
  355. lda z80_l ;- ld h,l
  356. sta z80_h
  357. ;0x66 - ld h,(hl)
  358. ldy #$00 ;- ld h,(hl)
  359. lda (z80_hl),y
  360. sta z80_h
  361. ;0x67 - ld h,a
  362. lda z80_a ;- ld h,a
  363. sta z80_h
  364. ;0x68 - ld l,b
  365. lda z80_b ;- ld l,b
  366. sta z80_l
  367. ;0x69 - ld l,c
  368. lda z80_c ;- ld l,c
  369. sta z80_l
  370. ;0x6A - ld l,d
  371. lda z80_d ;- ld l,d
  372. sta z80_l
  373. ;0x6B - ld l,e
  374. lda z80_e ;- ld l,e
  375. sta z80_l
  376. ;0x6C - ld l,h
  377. lda z80_h ;- ld l,h
  378. sta z80_l
  379. ;0x6D - ld l,l
  380. lda z80_l ;- ld l,l
  381. sta z80_l
  382. ;0x6E - ld l,(hl)
  383. ldy #$00
  384. lda (z80_hl),y
  385. sta z80_l
  386. ;0x6F - ld l,a
  387. lda z80_a ;- ld l,a
  388. sta z80_l
  389. ;0x70 - ld (hl),b
  390. lda z80_b ;- ld (hl),b
  391. ldy #$00
  392. sta (z80_hl),y
  393. ;0x71 - ld (hl),c
  394. lda z80_c ;- ld (hl),c
  395. ldy #$00
  396. sta (z80_hl),y
  397. ;0x72 - ld (hl),d
  398. lda z80_d ;- ld (hl),d
  399. ldy #$00
  400. sta (z80_hl),y
  401. ;0x73 - ld (hl),e
  402. lda z80_e ;- ld (hl),e
  403. ldy #$00
  404. sta (z80_hl),y
  405. ;0x74 - ld (hl),h
  406. lda z80_h
  407. ldy #$00
  408. sta (z80_hl),y
  409. ;0x75 - ld (hl),l
  410. lda z80_l
  411. ldy #$00
  412. sta (z80_hl),y
  413. ;0x76 - ld (hl),(hl)
  414. nop
  415. ;0x77 - ld (hl),a
  416. lda z80_a ;- ld (hl),a
  417. ldy #$00
  418. sta (z80_hl),y
  419. ;0x78 - ld a,b
  420. lda z80_b ;- ld a,b
  421. sta z80_a
  422. ;0x79 - ld a,c
  423. lda z80_c ;- ld a,c
  424. sta z80_a
  425. ;0x7A - ld a,d
  426. lda z80_d ;- ld a,d
  427. sta z80_a
  428. ;0x7B - ld a,e
  429. lda z80_e ;- ld a,e
  430. sta z80_a
  431. ;0x7C - ld a,h
  432. lda z80_h ;- ld a,h
  433. sta z80_a
  434. ;0x7D - ld a,l
  435. lda z80_l ;- ld a,l
  436. sta z80_a
  437. ;0x7E - ld a,(hl)
  438. ldy #$00 ;- ld a,(hl)
  439. lda (z80_hl),y
  440. sta z80_a
  441. ;0x7F - ld a,a
  442. lda z80_a
  443. sta z80_a
  444. ;0x80 - add a,b
  445. clc
  446. adc z80_b
  447. ;0x81 - add a,c
  448. clc
  449. adc z80_c
  450. ;0x82 - add a,d
  451. clc
  452. adc z80_d
  453. ;0x83 - add a,e
  454. clc
  455. adc z80_e
  456. ;0x84 - add a,h
  457. clc ;- add a,h
  458. adc z80_h
  459. ;0x85 - add a,l
  460. clc
  461. adc z80_l
  462. ;0x86 - add a,(hl)
  463. ldy #$00
  464. clc
  465. adc (z80_hl),y
  466. ;0x87 - add a,a
  467. clc ;- add a,a
  468. adc z80_a
  469. ;0x88 - adc a,b
  470. adc z80_b
  471. ;0x89 - adc a,c
  472. adc z80_c
  473. ;0x8A - adc a,d
  474. adc z80_d
  475. ;0x8B - adc a,e
  476. adc z80_e
  477. ;0x8C - adc a,h
  478. adc z80_h
  479. ;0x8D - adc a,l
  480. adc z80_l
  481. ;0x8E - adc a,(hl)
  482. ;0x8F - adc a,a
  483. adc z80_a
  484. ;0x90 - sub b
  485. sec
  486. sbc z80_b
  487. ;0x91 - sub c
  488. sec
  489. sbc z80_c
  490. ;0x92 - sub d
  491. sec
  492. sbc z80_d
  493. ;0x93 - sub e
  494. sec
  495. sbc z80_e
  496. ;0x94 - sub h
  497. sec ;- sub h
  498. sbc z80_h
  499. ;0x95 - sub l
  500. sec ;- sub l
  501. sbc z80_l
  502. ;0x96 - sub (hl)
  503. ldy #$00
  504. sec
  505. sbc (z80_hl),y
  506. ;0x97 - sub a
  507. sec
  508. sbc z80_a
  509. ;0x98 - sbc a,b
  510. sec
  511. sbc z80_b
  512. ;0x99 - sbc a,c
  513. sec
  514. sbc z80_c
  515. ;0x9A - sbc a,d
  516. sec
  517. sbc z80_d
  518. ;0x9B - sbc a,e
  519. sec
  520. sbc z80_e
  521. ;0x9C - sbc a,h
  522. sec
  523. sbc z80_h
  524. ;0x9D - sbc a,l
  525. sec
  526. sbc z80_l
  527. ;0x9E - sbc a,(hl)
  528. ;0x9F - sbc a,a
  529. sec ;- sbc a,a
  530. sbc z80_a
  531. ;0xA0 - and b
  532. and z80_b
  533. ;0xA1 - and c
  534. and z80_c
  535. ;0xA2 - and d
  536. and z80_d
  537. ;0xA3 - and e
  538. and z80_e
  539. ;0xA4 - and h
  540. and z80_h
  541. ;0xA5 - and l
  542. and z80_l
  543. ;0xA6 - and (hl)
  544. ldy #$00
  545. and (z80_hl),y
  546. ;0xA7 - and a
  547. and z80_a ;- and a
  548. ;0xA8 - xor b
  549. eor z80_b ;- xor b
  550. ;0xA9 - xor c
  551. eor z80_c ;- xor c
  552. ;0xAA - xor d
  553. eor z80_d ;- xor d
  554. ;0xAB - xor e
  555. eor z80_e ;- xor e
  556. ;0xAC - xor h
  557. eor z80_h ;- xor h
  558. ;0xAD - xor l
  559. eor z80_l ;- xor l
  560. ;0xAE - xor (hl)
  561. ldy #$00
  562. eor (z80_hl),y
  563. ;0xAF - xor a
  564. eor z80_a ;- xor a
  565. ;0xB0 - or b
  566. ora z80_b ;- or b
  567. ;0xB1 - or c
  568. ora z80_c ;- or c
  569. ;0xB2 - or d
  570. ora z80_d ;- or d
  571. ;0xB3 - or e
  572. ora z80_e ;- or e
  573. ;0xB4 - or h
  574. ora z80_h ;- or h
  575. ;0xB5 - or l
  576. ora z80_l ;- or l
  577. ;0xB6 - or (hl)
  578. ldy #$00 ;- or (hl)
  579. ora (z80_hl),y
  580. ;0xB7 - or a
  581. ora z80_a ;- or a
  582. ;0xB8 - cp b
  583. cmp z80_b ;- cp b
  584. ;0xB9 - cp c
  585. cmp z80_c ;- cp c
  586. ;0xBA - cp d
  587. cmp z80_d
  588. ;0xBB - cp e
  589. cmp z80_e
  590. ;0xBC - cp h
  591. cmp z80_h
  592. ;0xBD - cp l
  593. cmp z80_l ;- cp l
  594. ;0xBE - cp (hl)
  595. ldy #$00 ;- cp (hl)
  596. cmp (z80_hl),y
  597. ;0xBF - cp a
  598. cmp z80_a
  599. ;0xC0 - ret nz
  600. beq *+3 ;- ret nz
  601. rts
  602. ;0xC1 - pop bc
  603. pla ;- pop bc
  604. sta z80_b
  605. pla
  606. sta z80_c
  607. ;0xC2 - jp nz,nn
  608. jne nn
  609. ;0xC3 - jp nn
  610. jmp nn
  611. ;0xC4 - call nz,nn
  612. beq *+5 ;- call nz,nn
  613. jsr nn
  614. ;0xC5 - push bc
  615. lda z80_c ;- push bc
  616. pha
  617. lda z80_b
  618. pha
  619. ;0xC6 - add a,n
  620. clc
  621. adc #$%1
  622. ;0xC7 - rst 00h
  623. ;0xC8 - ret z
  624. bne *+3 ;- ret z
  625. rts
  626. ;0xC9 - ret
  627. rts ;- ret
  628. ;0xCA - jp z,nn
  629. jeq nn ;- jp z,nn
  630. ;0xCC - call z,nn
  631. bne *+5
  632. jsr %1
  633. ;0xCD - call nn
  634. jsr nn
  635. ;0xCE - adc a,n
  636. ;0xCF - rst 08h
  637. ;0xD0 - ret nc
  638. bcc *+3 ;- ret nc
  639. rts
  640. ;0xD1 - pop de
  641. pla ;- pop de
  642. sta z80_d
  643. pla
  644. sta z80_e
  645. ;0xD2 - jp nc,nn
  646. jcs nn ;- jp nc,nn
  647. ;0xD3 - out (n),a
  648. ;0xD4 - call nc,nn
  649. bcc *+5
  650. jsr %1
  651. ;0xD5 - push de
  652. lda z80_e ;- push de
  653. pha
  654. lda z80_d
  655. pha
  656. ;0xD6 - sub n
  657. sec ;- sub n
  658. sbc #n
  659. ;0xD7 - rst 10h
  660. ;0xD8 - ret c
  661. bcs *+3 ;- ret c
  662. rts
  663. ;0xD9 - exx
  664. lda z80_c ;- exx
  665. ldx z80_cp
  666. stx z80_c
  667. sta z80_cp
  668. lda z80_b
  669. ldx z80_bp
  670. stx z80_b
  671. sta z80_bp
  672. lda z80_e
  673. ldx z80_ep
  674. stx z80_e
  675. sta z80_ep
  676. lda z80_d
  677. ldx z80_dp
  678. stx z80_d
  679. sta z80_dp
  680. lda z80_l
  681. ldx z80_lp
  682. stx z80_l
  683. sta z80_lp
  684. lda z80_h
  685. ldx z80_hp
  686. stx z80_h
  687. sta z80_hp
  688. ;0xDA - jp c,nn
  689. jcc %1
  690. ;0xDB - in a,(n)
  691. ;0xDC - call c,nn
  692. bcs *+5
  693. jsr %1
  694. ;0xDE - sbc a,n
  695. ;0xDF - rst 18h
  696. ;0xE0 - ret po
  697. ;0xE1 - pop hl
  698. pla ;- pop hl
  699. sta z80_h
  700. pla
  701. sta z80_l
  702. ;0xE2 - jp po,nn
  703. ;0xE3 - ex (sp),hl
  704. tsx ;- ex (sp),hl
  705. lda $0103,x
  706. ldy z80_h
  707. sta z80_h
  708. tya
  709. sta $0103,x
  710. lda $0104,x
  711. ldy z80_l
  712. sta z80_l
  713. tya
  714. sta $104,x
  715. ;0xE4 - call po,nn
  716. ;0xE5 - push hl
  717. lda z80_l ;- push hl
  718. pha
  719. lda z80_h
  720. pha
  721. ;0xE6 - and n
  722. and #n ;- and n
  723. ;0xE7 - rst 20h
  724. ;0xE8 - ret pe
  725. ;0xE9 - jp (hl)
  726. jmp (z80_hl) ;- jp (hl)
  727. ;0xEA - jp pe,nn
  728. ;0xEB - ex de,hl
  729. lda z80_e ;- ex de,hl
  730. ldx z80_l
  731. stx z80_e
  732. sta z80_l
  733. lda z80_d
  734. ldx z80_h
  735. stx z80_d
  736. sta z80_h
  737. ;0xEC - call pe,nn
  738. ;0xEE - xor n
  739. eor #n ;- xor n
  740. ;0xEF - rst 28h
  741. ;0xF0 - ret p
  742. bmi *+3 ;- ret p
  743. rts
  744. ;0xF1 - pop af
  745. plp ;- pop af
  746. pha
  747. ;0xF2 - jp p,nn
  748. jpl %nn
  749. ;0xF3 - di
  750. ;0xF4 - call p,nn
  751. ;0xF5 - push af
  752. pha ;- push af
  753. php
  754. ;0xF6 - or n
  755. ora #n ;- or n
  756. ;0xF7 - rst 30h
  757. ;0xF8 - ret m
  758. bpl *+3 ;- ret m
  759. rts
  760. ;0xF9 - ld sp,hl
  761. ;0xFA - jp m,nn
  762. jmi %nn ;- jp m,nn
  763. ;0xFB - ei
  764. ;0xFC - call m,nn
  765. ;0xFE - cp n
  766. cmp #n
  767. ;0xFF - rst 38h
  768. ;--------------------- extended opcodes - ED -----------------------------------
  769. ;0x40 - in b,(c)
  770. ;0x41 - out (c),b
  771. ;0x42 - sbc hl,bc
  772. lda z80_l ;- sbc hl,bc
  773. sbc z80_c
  774. sta z80_l
  775. lda z80_h
  776. sbc z80_b
  777. sta z80_h
  778. ;0x43 - ld (nn),bc
  779. lda z80_c ;- ld (nn),bc
  780. sta nn
  781. lda z80_b
  782. sta nn+1
  783. ;0x44 - neg
  784. eor #$ff ;- neg
  785. clc
  786. adc #$01
  787. ;0x45 - retn
  788. ;0x46 - im0
  789. ;0x47 - ld i,a
  790. ;0x48 - in c,(c)
  791. ;0x49 - out (c),c
  792. ;0x4A - adc hl,bc
  793. ;0x4B - ld bc,(nn)
  794. lda nn ;- ld bc,(nn)
  795. sta z80_c
  796. lda nn+1
  797. sta z80_b
  798. ;0x4C - neg
  799. eor #$ff ;- neg
  800. clc
  801. adc #$01
  802. ;0x4D - reti
  803. ;0x4E - im 0/1
  804. ;0x4F - ld r,a
  805. ;0x50 - in d,(c)
  806. ;0x51 - out (c),d
  807. ;0x52 - sbc hl,de
  808. lda z80_l ;- sbc hl,de
  809. sbc z80_e
  810. sta z80_l
  811. lda z80_h
  812. sbc z80_d
  813. sta z80_h
  814. ;0x53 - ld (nn),de
  815. lda z80_e ;- ld (nn),de
  816. sta nn
  817. lda z80_d
  818. sta nn+1
  819. ;0x54 - neg
  820. eor #$ff
  821. clc
  822. adc #$01
  823. ;0x55 - retn
  824. ;0x56 - im 1
  825. ;0x57 - ld a,i
  826. ;0x58 - in e,(c)
  827. ;0x59 - out (c),e
  828. ;0x5A - adc hl,de
  829. ;0x5B - ld de,(nn)
  830. lda nn ;- ld de,(nn)
  831. sta z80_e
  832. lda nn+1
  833. sta z80_d
  834. ;0x5C - neg
  835. eor #$ff
  836. clc
  837. adc #$01
  838. ;0x5D - retn
  839. ;0x5E - im 2
  840. ;0x5F - ld a,r
  841. ;0x60 - in h,(c)
  842. ;0x61 - out (c),h
  843. ;0x62 - sbc hl,hl
  844. ;0x63 - ld (nn),hl
  845. lda z80_l ;- ld (nn),hl
  846. sta nn
  847. lda z80_h
  848. sta nn+1
  849. ;0x64 - nec
  850. ;0x65 - retn
  851. ;0x66 - im 0
  852. ;0x67 - rrd
  853. ;0x68 - in l,(c)
  854. ;0x69 - out (c),l
  855. ;0x6A - adc hl,hl
  856. ;0x6B - ld hl,(nn)
  857. lda nn ;- ld hl,(nn)
  858. sta z80_l
  859. lda nn+1
  860. sta z80_h
  861. ;0x6C - neg
  862. eor #$ff ;- neg
  863. clc
  864. adc #$01
  865. ;0x6D - retn
  866. ;0x6E - im 0/1
  867. ;0x6F - rld
  868. ;0x70 - in (c)
  869. ;0x71 - out (c),0
  870. ;0x72 - sbc hl,sp
  871. ;0x73 - ld (nn),sp
  872. ;0x74 - neg
  873. ;0x75 - retn
  874. ;0x76 - im 1
  875. ;0x78 - in a,(c)
  876. ;0x79 - out (c),a
  877. ;0x7A - adc hl,sp
  878. ;0x7B - ld sp,(nn)
  879. ;0x7C - neg
  880. ;0x7D - retn
  881. ;0x7E - im 2
  882. ;0xA0 - ldi
  883. ;0xA1 - cpi
  884. ;0xA2 - ini
  885. ;0xA3 - outi
  886. ;0xA8 - ldd
  887. ;0xA9 - cpd
  888. ;0xAA - ind
  889. ;0xAB - outd
  890. ;0xB0 - ldir
  891. ;0xB1 - cpir
  892. ;0xB2 - inir
  893. ;0xB3 - otir
  894. ;0xB8 - lddr
  895. ;0xB9 - cpdr
  896. ;0xBA - indr
  897. ;0xBB - otdr
  898. ;-------------------------------------------------------------------------------
  899. ;--------------------- extended opcodes - CB -----------------------------------
  900. ;0x00 - rlc b
  901. ;0x01 - rlc c
  902. ;0x02 - rlc d
  903. ;0x03 - rlc e
  904. ;0x04 - rlc h
  905. ;0x05 - rlc l
  906. ;0x06 - rlc (hl)
  907. ;0x07 - rlc a
  908. ;0x08 - rrc b
  909. ;0x09 - rrc c
  910. ;0x0A - rrc d
  911. ;0x0B - rrc e
  912. ;0x0C - rrc h
  913. ;0x0D - rrc l
  914. ;0x0E - rrc (hl)
  915. ;0x0F - rrc a
  916. ;0x10 - rl b
  917. rol z80_b ;- rl b
  918. ;0x11 - rl c
  919. rol z80_c ;- rl c
  920. ;0x12 - rl d
  921. rol z80_d ;- rl d
  922. ;0x13 - rl e
  923. rol z80_e ;- rl e
  924. ;0x14 - rl h
  925. rol z80_h ;- rl h
  926. ;0x15 - rl l
  927. rol z80_l ;- rl l
  928. ;0x16 - rl (hl)
  929. lda z80_b ;- rl (hl)
  930. rol a
  931. ldy #$00
  932. sta (z80_hl),y
  933. ;0x17 - rl a
  934. rol z80_a ;- rl a
  935. ;0x18 - rr b
  936. ror z80_b ;- rr b
  937. ;0x19 - rr c
  938. ror z80_c ;- rr c
  939. ;0x1A - rr d
  940. ror z80_d ;- rr d
  941. ;0x1B - rr e
  942. ror z80_e ;- rr e
  943. ;0x1C - rr h
  944. ror z80_h ;- rr h
  945. ;0x1D - rr l
  946. ror z80_l ;- rr l
  947. ;0x1E - rr (hl)
  948. lda z80_b ;- rr (hl)
  949. ror a
  950. ldy #$00
  951. sta (z80_hl),y
  952. ;0x1F - rr a
  953. ror z80_a ;- rr a
  954. ;0x20 - sla b
  955. asl z80_b ;- sla b
  956. ;0x21 - sla c
  957. asl z80_c ;- sla c
  958. ;0x22 - sla d
  959. asl z80_d ;- sla d
  960. ;0x23 - sla e
  961. asl z80_e ;- sla e
  962. ;0x24 - sla h
  963. asl z80_h ;- sla h
  964. ;0x25 - sla l
  965. asl z80_l ;- sla l
  966. ;0x26 - sla (hl)
  967. lda (z80_hl) ;- sla (hl)
  968. asl a
  969. sta (z80_hl)
  970. ;0x27 - sla a
  971. asl z80_a ;- sla a
  972. ;0x28 - sra b
  973. ;0x29 - sra c
  974. ;0x2A - sra d
  975. ;0x2B - sra e
  976. ;0x2C - sra h
  977. ;0x2D - sra l
  978. ;0x2E - sra (hl)
  979. ;0x2F - sra a
  980. ;0x30 - sll b
  981. ;0x31 - sll c
  982. ;0x32 - sll d
  983. ;0x33 - sll e
  984. ;0x34 - sll h
  985. ;0x35 - sll l
  986. ;0x36 - sll (hl)
  987. ;0x37 - sll a
  988. ;0x38 - srl b
  989. lsr z80_b ;- srl b
  990. ;0x39 - srl c
  991. lsr z80_c ;- srl c
  992. ;0x3A - srl d
  993. lsr z80_d ;- srl d
  994. ;0x3B - srl e
  995. ;0x3C - srl h
  996. ;0x3D - srl l
  997. ;0x3E - srl (hl)
  998. ;0x3F - srl a
  999. ;0x40 - bit 0,b
  1000. lda z80_b ;- bit 0,b
  1001. bit 0
  1002. ;0x41 - bit 0,c
  1003. lda z80_c ;- bit 0,c
  1004. bit 0
  1005. ;0x42 - bit 0,d
  1006. lda z80_d ;- bit 0,d
  1007. bit 0
  1008. ;0x43 - bit 0,e
  1009. lda z80_e ;- bit 0,e
  1010. bit 0
  1011. ;0x44 - bit 0,h
  1012. lda z80_h ;- bit 0,h
  1013. bit 0
  1014. ;0x45 - bit 0,l
  1015. lda z80_l ;- bit 0,l
  1016. bit 0
  1017. ;0x46 - bit 0,(hl)
  1018. ;0x47 - bit 0,a
  1019. lda z80_a ;- bit 0,a
  1020. bit 0
  1021. ;0x48 - bit 1,b
  1022. ;0x49 - bit 1,c
  1023. ;0x4A - bit 1,d
  1024. ;0x4B - bit 1,e
  1025. ;0x4C - bit 1,h
  1026. ;0x4D - bit 1,l
  1027. ;0x4E - bit 1,(hl)
  1028. ;0x4F - bit 1,a
  1029. lda z80_a ;- bit 1,a
  1030. bit 1
  1031. ;0x50 - bit 2 b
  1032. ;0x51 - bit 2 c
  1033. ;0x52 - bit 2 d
  1034. ;0x53 - bit 2 e
  1035. ;0x54 - bit 2 h
  1036. ;0x55 - bit 2 l
  1037. ;0x56 - bit 2 (hl)
  1038. ;0x57 - bit 2 a
  1039. ;0x58 - bit 3 b
  1040. ;0x59 - bit 3 c
  1041. ;0x5A - bit 3 d
  1042. ;0x5B - bit 3 e
  1043. ;0x5C - bit 3 h
  1044. ;0x5D - bit 3 l
  1045. ;0x5E - bit 3 (hl)
  1046. ;0x5F - bit 3 a
  1047. ;0x60 - bit 4 b
  1048. ;0x61 - bit 4 c
  1049. ;0x62 - bit 4 d
  1050. ;0x63 - bit 4 e
  1051. ;0x64 - bit 4 h
  1052. ;0x65 - bit 4 l
  1053. ;0x66 - bit 4 (hl)
  1054. ;0x67 - bit 4 a
  1055. ;0x68 - bit 5 b
  1056. ;0x69 - bit 5 c
  1057. ;0x6A - bit 5 d
  1058. ;0x6B - bit 5 e
  1059. ;0x6C - bit 5 h
  1060. ;0x6D - bit 5 l
  1061. ;0x6E - bit 5 (hl)
  1062. ;0x6F - bit 5 a
  1063. ;0x70 - bit 6 b
  1064. ;0x71 - bit 6 c
  1065. ;0x72 - bit 6 d
  1066. ;0x73 - bit 6 e
  1067. ;0x74 - bit 6 h
  1068. ;0x75 - bit 6 l
  1069. ;0x76 - bit 6 (hl)
  1070. ;0x77 - bit 6 a
  1071. ;0x78 - bit 7 b
  1072. ;0x79 - bit 7 c
  1073. ;0x7A - bit 7,d
  1074. lda z80_d ;- bit 7,d
  1075. bit 7
  1076. ;0x7B - bit 7 e
  1077. ;0x7C - bit 7 h
  1078. lda z80_h ;- bit 7,h
  1079. bit 7
  1080. ;0x7D - bit 7 l
  1081. ;0x7E - bit 7 (hl)
  1082. ;0x7F - bit 7 a
  1083. ;0x80 - res 0,b
  1084. lda z80_b ;- res 0,b
  1085. and #$FF-$01
  1086. sta z80_b
  1087. ;0x81 - res 0 c
  1088. lda z80_c ;- res 0,c
  1089. and #$FF-$01
  1090. sta z80_c
  1091. ;0x82 - res 0 d
  1092. lda z80_d ;- res 0,d
  1093. and #$FF-$01
  1094. sta z80_d
  1095. ;0x83 - res 0 e
  1096. lda z80_e ;- res 0,e
  1097. and #$FF-$01
  1098. sta z80_e
  1099. ;0x84 - res 0 h
  1100. lda z80_h ;- res 0,h
  1101. and #$FF-$01
  1102. sta z80_h
  1103. ;0x85 - res 0 l
  1104. lda z80_l ;- res 0,l
  1105. and #$FF-$01
  1106. sta z80_l
  1107. ;0x86 - res 0 (hl)
  1108. ;0x87 - res 0 a
  1109. lda z80_a ;- res 0,a
  1110. and #$FF-$01
  1111. sta z80_a
  1112. ;0x88 - res 1 b
  1113. lda z80_b ;- res 1,b
  1114. and #$FF-$02
  1115. sta z80_b
  1116. ;0x89 - res 1 c
  1117. lda z80_c ;- res 1,c
  1118. and #$FF-$02
  1119. sta z80_c
  1120. ;0x8A - res 1 d
  1121. lda z80_d ;- res 1,d
  1122. and #$FF-$02
  1123. sta z80_d
  1124. ;0x8B - res 1 e
  1125. lda z80_e ;- res 1,e
  1126. and #$FF-$02
  1127. sta z80_e
  1128. ;0x8C - res 1 h
  1129. lda z80_h ;- res 1,h
  1130. and #$FF-$02
  1131. sta z80_h
  1132. ;0x8D - res 1 l
  1133. lda z80_l ;- res 1,l
  1134. and #$FF-$02
  1135. sta z80_l
  1136. ;0x8E - res 1 (hl)
  1137. ;0x8F - res 1 a
  1138. lda z80_a ;- res 1,a
  1139. and #$FF-$02
  1140. sta z80_a
  1141. ;0x90 - res 2 b
  1142. lda z80_b ;- res 2,b
  1143. and #$FB
  1144. sta z80_b
  1145. ;0x91 - res 2 c
  1146. lda z80_c ;- res 2,c
  1147. and #$FB
  1148. sta z80_c
  1149. ;0x92 - res 2 d
  1150. lda z80_d ;- res 2,d
  1151. and #$FB
  1152. sta z80_d
  1153. ;0x93 - res 2 e
  1154. lda z80_e ;- res 2,e
  1155. and #$FB
  1156. sta z80_e
  1157. ;0x94 - res 2 h
  1158. lda z80_h ;- res 2,h
  1159. and #$FB
  1160. sta z80_h
  1161. ;0x95 - res 2 l
  1162. lda z80_l ;- res 2,l
  1163. and #$FB
  1164. sta z80_l
  1165. ;0x96 - res 2,(hl)
  1166. ldy #$00 ;- res 2,(hl)
  1167. lda (z80_hl),y
  1168. and #$FB
  1169. sta (z80_hl),y
  1170. ;0x97 - res 2 a
  1171. lda z80_a ;- res 2,a
  1172. and #$FB
  1173. sta z80_a
  1174. ;0x98 - res 3 b
  1175. lda z80_b ;- res 3,b
  1176. and #$F7
  1177. sta z80_b
  1178. ;0x99 - res 3 c
  1179. lda z80_c ;- res 3,c
  1180. and #$F7
  1181. sta z80_c
  1182. ;0x9A - res 3,d
  1183. lda z80_d ;- res 3,d
  1184. and #$F7
  1185. sta z80_d
  1186. ;0x9B - res 3,e
  1187. lda z80_e ;- res 3,e
  1188. and #$F7
  1189. sta z80_e
  1190. ;0x9C - res 3,h
  1191. lda z80_h ;- res 3,h
  1192. and #$F7
  1193. sta z80_h
  1194. ;0x9D - res 3,l
  1195. lda z80_l ;- res 3,l
  1196. and #$F7
  1197. sta z80_l
  1198. ;0x9E - res 3,(hl)
  1199. ldy #$00 ;- res 3,(hl)
  1200. lda (z80_hl),y
  1201. and #$F7
  1202. sta (z80_hl),y
  1203. ;0x9F - res 3,a
  1204. lda z80_a ;- res 3,a
  1205. and #$F7
  1206. sta z80_a
  1207. ;0xA0 - res 4,b
  1208. lda z80_b ;- res 4,b
  1209. and #$EF
  1210. sta z80_b
  1211. ;0xA1 - res 4,c
  1212. lda z80_c ;- res 4,c
  1213. and #$EF
  1214. sta z80_c
  1215. ;0xA2 - res 4,d
  1216. lda z80_d ;- res 4,d
  1217. and #$EF
  1218. sta z80_d
  1219. ;0xA3 - res 4,e
  1220. lda z80_e ;- res 4,e
  1221. and #$EF
  1222. sta z80_e
  1223. ;0xA4 - res 4,h
  1224. lda z80_h ;- res 4,h
  1225. and #$EF
  1226. sta z80_h
  1227. ;0xA5 - res 4,l
  1228. lda z80_l ;- res 4,l
  1229. and #$EF
  1230. sta z80_l
  1231. ;0xA6 - res 4,(hl)
  1232. ldy #$00 ;- res 4,(hl)
  1233. lda (z80_hl),y
  1234. and #$EF
  1235. sta (z80_hl),y
  1236. ;0xA7 - res 4,a
  1237. lda z80_a ;- res 4,a
  1238. and #$EF
  1239. sta z80_a
  1240. ;0xA8 - res 5,b
  1241. lda z80_b ;- res 5,b
  1242. and #$DF
  1243. sta z80_b
  1244. ;0xA9 - res 5,c
  1245. lda z80_c ;- res 5,c
  1246. and #$DF
  1247. sta z80_c
  1248. ;0xAA - res 5,d
  1249. lda z80_d ;- res 5,d
  1250. and #$DF
  1251. sta z80_d
  1252. ;0xAB - res 5,e
  1253. lda z80_e ;- res 5,e
  1254. and #$DF
  1255. sta z80_e
  1256. ;0xAC - res 5,h
  1257. lda z80_h ;- res 5,h
  1258. and #$DF
  1259. sta z80_h
  1260. ;0xAD - res 5,l
  1261. lda z80_l ;- res 5,l
  1262. and #$DF
  1263. sta z80_l
  1264. ;0xAE - res 5,(hl)
  1265. ldy #$00 ;- res 5,(hl)
  1266. lda (z80_hl),y
  1267. and #$DF
  1268. sta (z80_hl),y
  1269. ;0xAF - res 5,a
  1270. lda z80_a ;- res 5,a
  1271. and #$DF
  1272. sta z80_a
  1273. ;0xB0 - res 6,b
  1274. lda z80_b ;- res 6,b
  1275. and #$FF-$40
  1276. sta z80_b
  1277. ;0xB1 - res 6,c
  1278. lda z80_c ;- res 6,c
  1279. and #$FF-$40
  1280. sta z80_c
  1281. ;0xB2 - res 6,d
  1282. lda z80_d ;- res 6,d
  1283. and #$FF-$40
  1284. sta z80_d
  1285. ;0xB3 - res 6,e
  1286. lda z80_e ;- res 6,e
  1287. and #$FF-$40
  1288. sta z80_e
  1289. ;0xB4 - res 6,h
  1290. lda z80_h ;- res 6,h
  1291. and #$FF-$40
  1292. sta z80_h
  1293. ;0xB5 - res 6,l
  1294. lda z80_l ;- res 6,l
  1295. and #$FF-$40
  1296. sta z80_l
  1297. ;0xB6 - res 6,(hl)
  1298. ;0xB7 - res 6,a
  1299. lda z80_a ;- res 6,a
  1300. and #$FF-$40
  1301. sta z80_a
  1302. ;0xB8 - res 7,b
  1303. lda z80_b ;- res 7,b
  1304. and #$FF-$80
  1305. sta z80_b
  1306. ;0xB9 - res 7,c
  1307. lda z80_c ;- res 7,c
  1308. and #$FF-$80
  1309. sta z80_c
  1310. ;0xBA - res 7,d
  1311. lda z80_d ;- res 7,d
  1312. and #$FF-$80
  1313. sta z80_d
  1314. ;0xBB - res 7,e
  1315. lda z80_e ;- res 7,e
  1316. and #$FF-$80
  1317. sta z80_e
  1318. ;0xBC - res 7,h
  1319. lda z80_h ;- res 7,h
  1320. and #$FF-$80
  1321. sta z80_h
  1322. ;0xBD - res 7,l
  1323. lda z80_l ;- res 7,l
  1324. and #$FF-$80
  1325. sta z80_l
  1326. ;0xBE - res 7,(hl)
  1327. ;0xBF - res 7,a
  1328. lda z80_a ;- res 7,a
  1329. and #$FF-$80
  1330. sta z80_a
  1331. ;0xC0 - set 0,b
  1332. lda z80_b ;- set 0,b
  1333. ora #$01
  1334. sta z80_b
  1335. ;0xC1 - set 0,c
  1336. lda z80_c ;- set 0,c
  1337. ora #$01
  1338. sta z80_c
  1339. ;0xC2 - set 0,d
  1340. lda z80_d ;- set 0,d
  1341. ora #$01
  1342. sta z80_d
  1343. ;0xC3 - set 0,e
  1344. lda z80_e ;- set 0,e
  1345. ora #$01
  1346. sta z80_e
  1347. ;0xC4 - set 0,h
  1348. lda z80_h ;- set 0,h
  1349. ora #$01
  1350. sta z80_h
  1351. ;0xC5 - set 0,l
  1352. lda z80_l ;- set 0,l
  1353. ora #$01
  1354. sta z80_l
  1355. ;0xC6 - set 0,(hl)
  1356. ldy #$00 ;- set 0,(hl)
  1357. lda (z80_hl),y
  1358. ora #$01
  1359. sta (z80_hl),y
  1360. ;0xC7 - set 0,a
  1361. lda z80_a ;- set 0,a
  1362. ora #$01
  1363. sta z80_a
  1364. ;0xC8 - set 1,b
  1365. lda z80_b ;- set 1,b
  1366. ora #$02
  1367. sta z80_b
  1368. ;0xC9 - set 1,c
  1369. lda z80_c ;- set 1,c
  1370. ora #$02
  1371. sta z80_c
  1372. ;0xCA - set 1,d
  1373. lda z80_d ;- set 1,d
  1374. ora #$02
  1375. sta z80_d
  1376. ;0xCB - set 1,e
  1377. lda z80_e ;- set 1,e
  1378. ora #$02
  1379. sta z80_e
  1380. ;0xCC - set 1,h
  1381. lda z80_h ;- set 1,h
  1382. ora #$02
  1383. sta z80_h
  1384. ;0xCD - set 1,l
  1385. lda z80_l ;- set 1,l
  1386. ora #$02
  1387. sta z80_l
  1388. ;0xCE - set 1,(hl)
  1389. ldy #$00 ;- set 1,(hl)
  1390. lda (z80_hl),y
  1391. ora #$02
  1392. sta (z80_hl),y
  1393. ;0xCF - set 1,a
  1394. lda z80_a ;- set 1,a
  1395. ora #$02
  1396. sta z80_a
  1397. ;0xD0 - set 2,b
  1398. lda z80_b ;- set 2,b
  1399. ora #$04
  1400. sta z80_b
  1401. ;0xD1 - set 2,c
  1402. lda z80_c ;- set 2,c
  1403. ora #$04
  1404. sta z80_c
  1405. ;0xD2 - set 2,d
  1406. lda z80_d ;- set 2,d
  1407. ora #$04
  1408. sta z80_d
  1409. ;0xD3 - set 2,e
  1410. lda z80_e ;- set 2,e
  1411. ora #$04
  1412. sta z80_e
  1413. ;0xD4 - set 2,h
  1414. lda z80_h ;- set 2,h
  1415. ora #$04
  1416. sta z80_h
  1417. ;0xD5 - set 2,l
  1418. lda z80_l ;- set 2,l
  1419. ora #$04
  1420. sta z80_l
  1421. ;0xD6 - set 2,(hl)
  1422. ldy #$00 ;- set 2,(hl)
  1423. lda (z80_hl),y
  1424. ora #$04
  1425. sta (z80_hl),y
  1426. ;0xD7 - set 2,a
  1427. lda z80_a ;- set 2,a
  1428. ora #$04
  1429. sta z80_a
  1430. ;0xD8 - set 3,b
  1431. lda z80_b ;- set 3,b
  1432. ora #$08
  1433. sta z80_b
  1434. ;0xD9 - set 3,c
  1435. lda z80_c ;- set 3,c
  1436. ora #$08
  1437. sta z80_c
  1438. ;0xDA - set 3,d
  1439. lda z80_d ;- set 3,d
  1440. ora #$08
  1441. sta z80_d
  1442. ;0xDB - set 3,e
  1443. lda z80_e ;- set 3,e
  1444. ora #$08
  1445. sta z80_e
  1446. ;0xDC - set 3,h
  1447. lda z80_h ;- set 3,h
  1448. ora #$08
  1449. sta z80_h
  1450. ;0xDD - set 3,l
  1451. lda z80_l ;- set 3,l
  1452. ora #$08
  1453. sta z80_l
  1454. ;0xDE - set 3,(hl)
  1455. ldy #$00 ;- set 3,(hl)
  1456. lda (z80_hl),y
  1457. ora #$08
  1458. sta (z80_hl),y
  1459. ;0xDF - set 3,a
  1460. lda z80_a ;- set 3,a
  1461. ora #$08
  1462. sta z80_a
  1463. ;0xE0 - set 4,b
  1464. lda z80_b ;- set 4,b
  1465. ora #$10
  1466. sta z80_b
  1467. ;0xE1 - set 4,c
  1468. lda z80_c ;- set 4,c
  1469. ora #$10
  1470. sta z80_c
  1471. ;0xE2 - set 4,d
  1472. lda z80_d ;- set 4,d
  1473. ora #$10
  1474. sta z80_d
  1475. ;0xE3 - set 4,e
  1476. lda z80_e ;- set 4,e
  1477. ora #$10
  1478. sta z80_e
  1479. ;0xE4 - set 4,h
  1480. lda z80_h ;- set 4,h
  1481. ora #$10
  1482. sta z80_h
  1483. ;0xE5 - set 4,l
  1484. lda z80_l ;- set 4,l
  1485. ora #$10
  1486. sta z80_l
  1487. ;0xE6 - set 4,(hl)
  1488. ldy #$00 ;- set 4,(hl)
  1489. lda (z80_hl),y
  1490. ora #$10
  1491. sta (z80_hl),y
  1492. ;0xE7 - set 4,a
  1493. lda z80_a ;- set 4,a
  1494. ora #$10
  1495. sta z80_a
  1496. ;0xE8 - set 5,b
  1497. lda z80_b ;- set 5,b
  1498. ora #$20
  1499. sta z80_b
  1500. ;0xE9 - set 5,c
  1501. lda z80_c ;- set 5,c
  1502. ora #$20
  1503. sta z80_c
  1504. ;0xEA - set 5,d
  1505. lda z80_d ;- set 5,d
  1506. ora #$20
  1507. sta z80_d
  1508. ;0xEB - set 5,e
  1509. lda z80_e ;- set 5,e
  1510. ora #$20
  1511. sta z80_e
  1512. ;0xEC - set 5,h
  1513. lda z80_h ;- set 5,h
  1514. ora #$20
  1515. sta z80_h
  1516. ;0xED - set 5,l
  1517. lda z80_l ;- set 5,l
  1518. ora #$20
  1519. sta z80_l
  1520. ;0xEE - set 5,(hl)
  1521. ldy #$00 ;- set 5,(hl)
  1522. lda (z80_hl),y
  1523. ora #$20
  1524. sta (z80_hl),y
  1525. ;0xEF - set 5,a
  1526. lda z80_a ;- set 5,a
  1527. ora #$20
  1528. sta z80_a
  1529. ;0xF0 - set 6,b
  1530. lda z80_b ;- set 6,b
  1531. ora #$40
  1532. sta z80_b
  1533. ;0xF1 - set 6,c
  1534. lda z80_c ;- set 6,c
  1535. ora #$40
  1536. sta z80_c
  1537. ;0xF2 - set 6,d
  1538. lda z80_d ;- set 6,d
  1539. ora #$40
  1540. sta z80_d
  1541. ;0xF3 - set 6,e
  1542. lda z80_e ;- set 6,e
  1543. ora #$40
  1544. sta z80_e
  1545. ;0xF4 - set 6,h
  1546. lda z80_h ;- set 6,h
  1547. ora #$40
  1548. sta z80_h
  1549. ;0xF5 - set 6,l
  1550. lda z80_l ;- set 6,l
  1551. ora #$40
  1552. sta z80_l
  1553. ;0xF6 - set 6,(hl)
  1554. ldy #$00 ;- set 6,(hl)
  1555. lda (z80_hl),y
  1556. ora #$40
  1557. sta (z80_hl),y
  1558. ;0xF7 - set 6,a
  1559. lda z80_a ;- set 6,a
  1560. ora #$40
  1561. sta z80_a
  1562. ;0xF8 - set 7,b
  1563. lda z80_b ;- set 7,b
  1564. ora #$80
  1565. sta z80_b
  1566. ;0xF9 - set 7,c
  1567. lda z80_c ;- set 7,c
  1568. ora #$80
  1569. sta z80_c
  1570. ;0xFA - set 7,d
  1571. lda z80_d ;- set 7,d
  1572. ora #$80
  1573. sta z80_d
  1574. ;0xFB - set 7,e
  1575. lda z80_e ;- set 7,e
  1576. ora #$80
  1577. sta z80_e
  1578. ;0xFC - set 7,h
  1579. lda z80_h ;- set 7,h
  1580. ora #$80
  1581. sta z80_h
  1582. ;0xFD - set 7,l
  1583. lda z80_l ;- set 7,l
  1584. ora #$80
  1585. sta z80_l
  1586. ;0xFE - set 7,(hl)
  1587. ldy #$00 ;- set 7,(hl)
  1588. lda (z80_hl),y
  1589. ora #$80
  1590. sta (z80_hl),y
  1591. ;0xFF - set 7,a
  1592. lda z80_a ;- set 7,a
  1593. ora #$80
  1594. sta z80_a
  1595. ;--------------------- extended opcodes - DD -----------------------------------
  1596. ;0x09 - add ix,bc
  1597. lda z80_ix ;- add ix,bc
  1598. clc
  1599. adc z80_c
  1600. sta z80_ix
  1601. lda z80_ix+1
  1602. adc z80_b
  1603. sta z80_ix+1
  1604. ;0x19 - add ix,de
  1605. lda z80_ix ;- add ix,de
  1606. clc
  1607. adc z80_e
  1608. sta z80_ix
  1609. lda z80_ix+1
  1610. adc z80_d
  1611. sta z80_ix+1
  1612. ;0x21 - ld ix,nn
  1613. lda #<nn ;- ld ix,nn
  1614. sta z80_ix
  1615. lda #>nn
  1616. sta z80_ix+1
  1617. ;0x22 - ld (nn),ix
  1618. lda z80_ix ;- ld (nn),hl
  1619. sta nn
  1620. lda z80_ix+1
  1621. sta nn+1
  1622. ;0x23 - inc ix
  1623. inc z80_ix ;- inc ix
  1624. bne *+4
  1625. inc z80_ix+1
  1626. ;0x24 - inc ixh
  1627. inc z80_ixh ;- inc ixh
  1628. ;0x25 - dec ixh
  1629. dec z80_ixh ;- dec ixh
  1630. ;0x26 - ld ixh,n
  1631. ;0x29 - add ix,ix
  1632. ;0x2A - ld ix,(nn)
  1633. ;0x2B - dec ix
  1634. ;0x2C - inc ixl
  1635. ;0x2D - dec ixl
  1636. ;0x2E - ld ixl,n
  1637. ;0x34 - inc (ix+n)
  1638. ;0x35 - dec (ix+n)
  1639. ;0x36 - ld (ix+n),n
  1640. ;0x39 - add ix,sp
  1641. ;0x44 - ld b,ixh
  1642. lda z80_ixh ;- ld b,ixh
  1643. sta z80_b
  1644. ;0x45 - ld b,ixl
  1645. lda z80_ixl ;- ld b,ixl
  1646. sta z80_b
  1647. ;0x46 - ld b,(ix+n)
  1648. ;0x4C - ld c,ixh
  1649. lda z80_ixh ;- ld c,ixh
  1650. sta z80_c
  1651. ;0x4D - ld c,ixl
  1652. lda z80_ixl ;- ld c,ixl
  1653. sta z80_c
  1654. ;0x4E - ld c,(ix+n)
  1655. ;0x54 - ld d,ixh
  1656. lda z80_ixh ;- ld d,ixh
  1657. sta z80_d
  1658. ;0x55 - ld d,ixl
  1659. lda z80_ixl ;- ld d,ixl
  1660. sta z80_d
  1661. ;0x56 - ld d,(ix+n)
  1662. ;0x5C - ld e,ixh
  1663. lda z80_ixh ;- ld e,ixh
  1664. sta z80_e
  1665. ;0x5D - ld e,ixl
  1666. lda z80_ixl ;- ld e,ixl
  1667. sta z80_e
  1668. ;0x5E - ld e,(ix+n)
  1669. ;0x60 - ld ixh,b
  1670. lda z80_b ;- ld ixh,b
  1671. sta z80_ixh
  1672. ;0x61 - ld ixh,c
  1673. lda z80_c ;- ld ixh,c
  1674. sta z80_ixh
  1675. ;0x62 - ld ixh,d
  1676. lda z80_d ;- ld ixh,d
  1677. sta z80_ixh
  1678. ;0x63 - ld ixh,e
  1679. lda z80_e ;- ld ixh,e
  1680. sta z80_ixh
  1681. ;0x64 - ld ixh,h
  1682. lda z80_h ;- ld ixh,h
  1683. sta z80_ixh
  1684. ;0x65 - ld ixh,l
  1685. lda z80_l ;- ld ixh,l
  1686. sta z80_ixh
  1687. ;0x66 - ld h,(ix+n)
  1688. ;0x67 - ld ixh,a
  1689. lda z80_a ;- ld ixh,a
  1690. sta z80_ixh
  1691. ;0x68 - ld ixl,b
  1692. lda z80_b ;- ld ixh,b
  1693. sta z80_ixl
  1694. ;0x69 - ld ixl,c
  1695. lda z80_c ;- ld ixh,c
  1696. sta z80_ixl
  1697. ;0x6A - ld ixl,d
  1698. lda z80_d ;- ld ixh,d
  1699. sta z80_ixl
  1700. ;0x6B - ld ixl,e
  1701. lda z80_e ;- ld ixh,e
  1702. sta z80_ixl
  1703. ;0x6C - ld ixl,h
  1704. lda z80_h ;- ld ixh,h
  1705. sta z80_ixl
  1706. ;0x6D - ld ixl,l
  1707. lda z80_l ;- ld ixh,l
  1708. sta z80_ixl
  1709. ;0x6E - ld l,(ix+n)
  1710. ;0x6F - ld ixl,a
  1711. lda z80_a ;- ld ixh,a
  1712. sta z80_ixl
  1713. ;0x70 - ld (ix+n),b
  1714. ;0x71 - ld (ix+n),c
  1715. ;0x72 - ld (ix+n),d
  1716. ;0x73 - ld (ix+n),e
  1717. ;0x74 - ld (ix+n),h
  1718. ;0x75 - ld (ix+n),l
  1719. ;0x77 - ld (ix+n),a
  1720. ;0x7C - ld a,ixh
  1721. ;0x7D - ld a,ixl
  1722. ;0x7E - ld a,(ix+n)
  1723. ;0x84 - add a,ixh
  1724. clc ;- add a,ixh
  1725. adc z80_ixh
  1726. ;0x85 - add a,ixl
  1727. ;0x86 - add a,(ix+n)
  1728. ;0x8C - adc a,ixh
  1729. ;0x8D - adc a,ixl
  1730. ;0x8E - adc a,(ix+n)
  1731. ;0x94 - sub ixh
  1732. ;0x95 - sub ixl
  1733. ;0x96 - sub (ix+n)
  1734. ;0x9C - sbc ixh
  1735. ;0x9D - sbc ixl
  1736. ;0x9E - sbc (ix+n)
  1737. ;0xA4 - and ixh
  1738. ;0xA5 - and ixl
  1739. ;0xA6 - and (ix+n)
  1740. ;0xAC - xor ixh
  1741. ;0xAD - xor ixl
  1742. ;0xAE - xor (ix+n)
  1743. ;0xB4 - or ixh
  1744. ;0xB5 - or ixl
  1745. ;0xB6 - or (ix+n)
  1746. ;0xBC - cp ixh
  1747. ;0xBD - cp ixl
  1748. ;0xBE - cp (ix+n)
  1749. ;0xE1 - pop ix
  1750. pla ;- pop ix
  1751. sta z80_ix+1
  1752. pla
  1753. sta z80_ix
  1754. ;0xE3 - ex (sp),ix
  1755. ;0xE5 - push ix
  1756. lda z80_ix ;- push ix
  1757. pha
  1758. lda z80_ix+1
  1759. pha
  1760. ;0xE9 - jp (ix)
  1761. ;0xF9 - ld sp,ix
  1762. ;--------------------- extended opcodes - DD CB --------------------------------
  1763. ;0x00 - rlc (ix+n),b
  1764. ;0x01 - rlc (ix+n),c
  1765. ;0x02 - rlc (ix+n),d
  1766. ;0x03 - rlc (ix+n),e
  1767. ;0x04 - rlc (ix+n),h
  1768. ;0x05 - rlc (ix+n),l
  1769. ;0x06 - rlc (ix+n)
  1770. ;0x07 - rlc (ix+n),a
  1771. ;0x08 - rrc (ix+n),b
  1772. ;0x09 - rrc (ix+n),c
  1773. ;0x0A - rrc (ix+n),d
  1774. ;0x0B - rrc (ix+n),e
  1775. ;0x0C - rrc (ix+n),h
  1776. ;0x0D - rrc (ix+n),l
  1777. ;0x0E - rrc (ix+n)
  1778. ;0x0F - rrc (ix+n),a
  1779. ;0x10 - rl (ix+n),b
  1780. ;0x11 - rl (ix+n),c
  1781. ;0x12 - rl (ix+n),d
  1782. ;0x13 - rl (ix+n),e
  1783. ;0x14 - rl (ix+n),h
  1784. ;0x15 - rl (ix+n),l
  1785. ;0x16 - rl (ix+n)
  1786. ;0x17 - rl (ix+n),a
  1787. ;0x18 - rr (ix+n),b
  1788. ;0x19 - rr (ix+n),c
  1789. ;0x0A - rr (ix+n),d
  1790. ;0x1B - rr (ix+n),e
  1791. ;0x1C - rr (ix+n),h
  1792. ;0x1D - rr (ix+n),l
  1793. ;0x1E - rr (ix+n)
  1794. ;0x1F - rr (ix+n),a
  1795. ;0x20 - sla (ix+n),b
  1796. ;0x21 - sla (ix+n),c
  1797. ;0x22 - sla (ix+n),d
  1798. ;0x23 - sla (ix+n),e
  1799. ;0x24 - sla (ix+n),h
  1800. ;0x25 - sla (ix+n),l
  1801. ;0x26 - sla (ix+n)
  1802. ;0x27 - sla (ix+n),a
  1803. ;0x28 - sra (ix+n),b
  1804. ;0x29 - sra (ix+n),c
  1805. ;0x2A - sra (ix+n),d
  1806. ;0x2B - sra (ix+n),e
  1807. ;0x2C - sra (ix+n),h
  1808. ;0x2D - sra (ix+n),l
  1809. ;0x2E - sra (ix+n)
  1810. ;0x2F - sra (ix+n),a
  1811. ;0x30 - sll (ix+n),b
  1812. ;0x31 - sll (ix+n),c
  1813. ;0x32 - sll (ix+n),d
  1814. ;0x33 - sll (ix+n),e
  1815. ;0x34 - sll (ix+n),h
  1816. ;0x35 - sll (ix+n),l
  1817. ;0x36 - sll (ix+n)
  1818. ;0x37 - sll (ix+n),a
  1819. ;0x38 - srl (ix+n),b
  1820. ;0x39 - srl (ix+n),c
  1821. ;0x3A - srl (ix+n),d
  1822. ;0x3B - srl (ix+n),e
  1823. ;0x3C - srl (ix+n),h
  1824. ;0x3D - srl (ix+n),l
  1825. ;0x3E - srl (ix+n)
  1826. ;0x3F - srl (ix+n),a
  1827. ;0x46 - bit 0,(ix+n)
  1828. ldy #n ;- bit 0,(ix+n)
  1829. lda (z80_ix),y
  1830. bit #$01
  1831. ;0x4E - bit 1,(ix+n)
  1832. ldy #n ;- bit 1,(ix+n)
  1833. lda (z80_ix),y
  1834. bit #$02
  1835. ;0x56 - bit 2,(ix+n)
  1836. ldy #n ;- bit 2,(ix+n)
  1837. lda (z80_ix),y
  1838. bit #$04
  1839. ;0x5E - bit 3,(ix+n)
  1840. ldy #n ;- bit 3,(ix+n)
  1841. lda (z80_ix),y
  1842. bit #$08
  1843. ;0x66 - bit 4,(ix+n)
  1844. ldy #n ;- bit 4,(ix+n)
  1845. lda (z80_ix),y
  1846. bit #$10
  1847. ;0x6E - bit 5,(ix+n)
  1848. ldy #n ;- bit 5,(ix+n)
  1849. lda (z80_ix),y
  1850. bit #$20
  1851. ;0x76 - bit 6,(ix+n)
  1852. ldy #n ;- bit 6,(ix+n)
  1853. lda (z80_ix),y
  1854. bit #$40
  1855. ;0x7E - bit 7,(ix+n)
  1856. ldy #n ;- bit 7,(ix+n)
  1857. lda (z80_ix),y
  1858. bit #$80
  1859. ;0x80 - res 0,(ix+n),b
  1860. ldy #n ;- res 0,(ix+n),b
  1861. lda (z80_ix),y
  1862. and #$FE
  1863. sta (z80_ix),y
  1864. sta z80_b
  1865. ;0x81 - res 0,(ix+n),c
  1866. ldy #n ;- res 0,(ix+n),c
  1867. lda (z80_ix),y
  1868. and #$FE
  1869. sta (z80_ix),y
  1870. sta z80_c
  1871. ;0x82 - res 0,(ix+n),d
  1872. ldy #n ;- res 0,(ix+n),d
  1873. lda (z80_ix),y
  1874. and #$FE
  1875. sta (z80_ix),y
  1876. sta z80_d
  1877. ;0x83 - res 0,(ix+n),e
  1878. ldy #n ;- res 0,(ix+n),e
  1879. lda (z80_ix),y
  1880. and #$FE
  1881. sta (z80_ix),y
  1882. sta z80_e
  1883. ;0x84 - res 0,(ix+n),h
  1884. ldy #n ;- res 0,(ix+n),h
  1885. lda (z80_ix),y
  1886. and #$FE
  1887. sta (z80_ix),y
  1888. sta z80_h
  1889. ;0x85 - res 0,(ix+n),l
  1890. ldy #n ;- res 0,(ix+n),l
  1891. lda (z80_ix),y
  1892. and #$FE
  1893. sta (z80_ix),y
  1894. sta z80_l
  1895. ;0x86 - res 0,(ix+n)
  1896. ldy #n ;- res 0,(ix+n)
  1897. lda (z80_ix),y
  1898. and #$FE
  1899. sta (z80_ix),y
  1900. ;0x87 - res 0,(ix+n),a
  1901. ldy #n ;- res 0,(ix+n),a
  1902. lda (z80_ix),y
  1903. and #$FE
  1904. sta (z80_ix),y
  1905. sta z80_a
  1906. ;0x88 - res 1,(ix+n),b
  1907. ldy #n ;- res 1,(ix+n),b
  1908. lda (z80_ix),y
  1909. and #$FD
  1910. sta (z80_ix),y
  1911. sta z80_b
  1912. ;0x89 - res 1,(ix+n),c
  1913. ldy #n ;- res 1,(ix+n),c
  1914. lda (z80_ix),y
  1915. and #$FD
  1916. sta (z80_ix),y
  1917. sta z80_c
  1918. ;0x8A - res 1,(ix+n),d
  1919. ldy #n ;- res 1,(ix+n),d
  1920. lda (z80_ix),y
  1921. and #$FD
  1922. sta (z80_ix),y
  1923. sta z80_d
  1924. ;0x8B - res 1,(ix+n),e
  1925. ldy #n ;- res 1,(ix+n),e
  1926. lda (z80_ix),y
  1927. and #$FD
  1928. sta (z80_ix),y
  1929. sta z80_e
  1930. ;0x8C - res 1,(ix+n),h
  1931. ldy #n ;- res 1,(ix+n),h
  1932. lda (z80_ix),y
  1933. and #$FD
  1934. sta (z80_ix),y
  1935. sta z80_h
  1936. ;0x8D - res 1,(ix+n),l
  1937. ldy #n ;- res 1,(ix+n),l
  1938. lda (z80_ix),y
  1939. and #$FD
  1940. sta (z80_ix),y
  1941. sta z80_l
  1942. ;0x8E - res 1,(ix+n)
  1943. ldy #n ;- res 1,(ix+n)
  1944. lda (z80_ix),y
  1945. and #$FD
  1946. sta (z80_ix),y
  1947. ;0x8F - res 1,(ix+n),a
  1948. ldy #n ;- res 1,(ix+n),a
  1949. lda (z80_ix),y
  1950. and #$FD
  1951. sta (z80_ix),y
  1952. sta z80_a
  1953. ;0x90 - res 2,(ix+n),b
  1954. ldy #n ;- res 2,(ix+n),b
  1955. lda (z80_ix),y
  1956. and #$FB
  1957. sta (z80_ix),y
  1958. sta z80_b
  1959. ;0x91 - res 2,(ix+n),c
  1960. ldy #n ;- res 2,(ix+n),c
  1961. lda (z80_ix),y
  1962. and #$FB
  1963. sta (z80_ix),y
  1964. sta z80_c
  1965. ;0x92 - res 2,(ix+n),d
  1966. ldy #n ;- res 2,(ix+n),d
  1967. lda (z80_ix),y
  1968. and #$FB
  1969. sta (z80_ix),y
  1970. sta z80_d
  1971. ;0x93 - res 2,(ix+n),e
  1972. ldy #n ;- res 2,(ix+n),e
  1973. lda (z80_ix),y
  1974. and #$FB
  1975. sta (z80_ix),y
  1976. sta z80_e
  1977. ;0x94 - res 2,(ix+n),h
  1978. ldy #n ;- res 2,(ix+n),h
  1979. lda (z80_ix),y
  1980. and #$FB
  1981. sta (z80_ix),y
  1982. sta z80_h
  1983. ;0x95 - res 2,(ix+n),l
  1984. ldy #n ;- res 2,(ix+n),l
  1985. lda (z80_ix),y
  1986. and #$FB
  1987. sta (z80_ix),y
  1988. sta z80_l
  1989. ;0x96 - res 2,(ix+n)
  1990. ldy #n ;- res 2,(ix+n)
  1991. lda (z80_ix),y
  1992. and #$FB
  1993. sta (z80_ix),y
  1994. ;0x97 - res 2,(ix+n),a
  1995. ldy #n ;- res 2,(ix+n),a
  1996. lda (z80_ix),y
  1997. and #$FB
  1998. sta (z80_ix),y
  1999. sta z80_a
  2000. ;0x98 - res 3,(ix+n),b
  2001. ldy #n ;- res 3,(ix+n),b
  2002. lda (z80_ix),y
  2003. and #$F7
  2004. sta (z80_ix),y
  2005. sta z80_b
  2006. ;0x99 - res 3,(ix+n),c
  2007. ldy #n ;- res 3,(ix+n),c
  2008. lda (z80_ix),y
  2009. and #$F7
  2010. sta (z80_ix),y
  2011. sta z80_c
  2012. ;0x9A - res 3,(ix+n),d
  2013. ldy #n ;- res 3,(ix+n),d
  2014. lda (z80_ix),y
  2015. and #$F7
  2016. sta (z80_ix),y
  2017. sta z80_d
  2018. ;0x9B - res 3,(ix+n),e
  2019. ldy #n ;- res 3,(ix+n),e
  2020. lda (z80_ix),y
  2021. and #$F7
  2022. sta (z80_ix),y
  2023. sta z80_e
  2024. ;0x9C - res 3,(ix+n),h
  2025. ldy #n ;- res 3,(ix+n),h
  2026. lda (z80_ix),y
  2027. and #$F7
  2028. sta (z80_ix),y
  2029. sta z80_h
  2030. ;0x9D - res 3,(ix+n),l
  2031. ldy #n ;- res 3,(ix+n),l
  2032. lda (z80_ix),y
  2033. and #$F7
  2034. sta (z80_ix),y
  2035. sta z80_l
  2036. ;0x9E - res 3,(ix+n)
  2037. ldy #n ;- res 3,(ix+n)
  2038. lda (z80_ix),y
  2039. and #$F7
  2040. sta (z80_ix),y
  2041. ;0x9F - res 3,(ix+n),a
  2042. ldy #n ;- res 3,(ix+n),a
  2043. lda (z80_ix),y
  2044. and #$F7
  2045. sta (z80_ix),y
  2046. sta z80_a
  2047. ;0xA0 - res 4,(ix+n),b
  2048. ldy #n ;- res 4,(ix+n),b
  2049. lda (z80_ix),y
  2050. and #$EF
  2051. sta (z80_ix),y
  2052. sta z80_b
  2053. ;0xA1 - res 4,(ix+n),c
  2054. ldy #n ;- res 4,(ix+n),c
  2055. lda (z80_ix),y
  2056. and #$EF
  2057. sta (z80_ix),y
  2058. sta z80_c
  2059. ;0xA2 - res 4,(ix+n),d
  2060. ldy #n ;- res 4,(ix+n),d
  2061. lda (z80_ix),y
  2062. and #$EF
  2063. sta (z80_ix),y
  2064. sta z80_d
  2065. ;0xA3 - res 4,(ix+n),e
  2066. ldy #n ;- res 4,(ix+n),e
  2067. lda (z80_ix),y
  2068. and #$EF
  2069. sta (z80_ix),y
  2070. sta z80_e
  2071. ;0xA4 - res 4,(ix+n),h
  2072. ldy #n ;- res 4,(ix+n),h
  2073. lda (z80_ix),y
  2074. and #$EF
  2075. sta (z80_ix),y
  2076. sta z80_h
  2077. ;0xA5 - res 4,(ix+n),l
  2078. ldy #n ;- res 4,(ix+n),l
  2079. lda (z80_ix),y
  2080. and #$EF
  2081. sta (z80_ix),y
  2082. sta z80_l
  2083. ;0xA6 - res 4,(ix+n)
  2084. ldy #n ;- res 4,(ix+n)
  2085. lda (z80_ix),y
  2086. and #$EF
  2087. sta (z80_ix),y
  2088. ;0xA7 - res 4,(ix+n),a
  2089. ldy #n ;- res 4,(ix+n),a
  2090. lda (z80_ix),y
  2091. and #$EF
  2092. sta (z80_ix),y
  2093. sta z80_a
  2094. ;0xA8 - res 5,(ix+n),b
  2095. ldy #n ;- res 5,(ix+n),b
  2096. lda (z80_ix),y
  2097. and #$DF
  2098. sta (z80_ix),y
  2099. sta z80_b
  2100. ;0xA9 - res 5,(ix+n),c
  2101. ldy #n ;- res 5,(ix+n),c
  2102. lda (z80_ix),y
  2103. and #$DF
  2104. sta (z80_ix),y
  2105. sta z80_c
  2106. ;0xAA - res 5,(ix+n),d
  2107. ldy #n ;- res 5,(ix+n),d
  2108. lda (z80_ix),y
  2109. and #$DF
  2110. sta (z80_ix),y
  2111. sta z80_d
  2112. ;0xAB - res 5,(ix+n),e
  2113. ldy #n ;- res 5,(ix+n),e
  2114. lda (z80_ix),y
  2115. and #$DF
  2116. sta (z80_ix),y
  2117. sta z80_e
  2118. ;0xAC - res 5,(ix+n),h
  2119. ldy #n ;- res 5,(ix+n),h
  2120. lda (z80_ix),y
  2121. and #$DF
  2122. sta (z80_ix),y
  2123. sta z80_h
  2124. ;0xAD - res 5,(ix+n),l
  2125. ldy #n ;- res 5,(ix+n),l
  2126. lda (z80_ix),y
  2127. and #$DF
  2128. sta (z80_ix),y
  2129. sta z80_l
  2130. ;0xAE - res 5,(ix+n)
  2131. ldy #n ;- res 5,(ix+n)
  2132. lda (z80_ix),y
  2133. and #$DF
  2134. sta (z80_ix),y
  2135. ;0xAF - res 5,(ix+n),a
  2136. ldy #n ;- res 5,(ix+n),a
  2137. lda (z80_ix),y
  2138. and #$DF
  2139. sta (z80_ix),y
  2140. sta z80_a
  2141. ;0xB0 - res 6,(ix+n),b
  2142. ldy #n ;- res 6,(ix+n),b
  2143. lda (z80_ix),y
  2144. and #$BF
  2145. sta (z80_ix),y
  2146. sta z80_b
  2147. ;0xB1 - res 6,(ix+n),c
  2148. ldy #n ;- res 6,(ix+n),c
  2149. lda (z80_ix),y
  2150. and #$BF
  2151. sta (z80_ix),y
  2152. sta z80_c
  2153. ;0xB2 - res 6,(ix+n),d
  2154. ldy #n ;- res 6,(ix+n),d
  2155. lda (z80_ix),y
  2156. and #$BF
  2157. sta (z80_ix),y
  2158. sta z80_d
  2159. ;0xB3 - res 6,(ix+n),e
  2160. ldy #n ;- res 6,(ix+n),e
  2161. lda (z80_ix),y
  2162. and #$BF
  2163. sta (z80_ix),y
  2164. sta z80_e
  2165. ;0xB4 - res 6,(ix+n),h
  2166. ldy #n ;- res 6,(ix+n),h
  2167. lda (z80_ix),y
  2168. and #$BF
  2169. sta (z80_ix),y
  2170. sta z80_h
  2171. ;0xB5 - res 6,(ix+n),l
  2172. ldy #n ;- res 6,(ix+n),l
  2173. lda (z80_ix),y
  2174. and #$BF
  2175. sta (z80_ix),y
  2176. sta z80_l
  2177. ;0xB6 - res 6,(ix+n)
  2178. ldy #n ;- res 6,(ix+n)
  2179. lda (z80_ix),y
  2180. and #$BF
  2181. sta (z80_ix),y
  2182. ;0xB7 - res 6,(ix+n),a
  2183. ldy #n ;- res 6,(ix+n),a
  2184. lda (z80_ix),y
  2185. and #$BF
  2186. sta (z80_ix),y
  2187. sta z80_a
  2188. ;0xB8 - res 7,(ix+n),b
  2189. ldy #n ;- res 7,(ix+n),b
  2190. lda (z80_ix),y
  2191. and #$7F
  2192. sta (z80_ix),y
  2193. sta z80_b
  2194. ;0xB9 - res 7,(ix+n),c
  2195. ldy #n ;- res 7,(ix+n),c
  2196. lda (z80_ix),y
  2197. and #$7F
  2198. sta (z80_ix),y
  2199. sta z80_c
  2200. ;0xBA - res 7,(ix+n),d
  2201. ldy #n ;- res 7,(ix+n),d
  2202. lda (z80_ix),y
  2203. and #$7F
  2204. sta (z80_ix),y
  2205. sta z80_d
  2206. ;0xBB - res 7,(ix+n),e
  2207. ldy #n ;- res 7,(ix+n),e
  2208. lda (z80_ix),y
  2209. and #$7F
  2210. sta (z80_ix),y
  2211. sta z80_e
  2212. ;0xBC - res 7,(ix+n),h
  2213. ldy #n ;- res 7,(ix+n),h
  2214. lda (z80_ix),y
  2215. and #$7F
  2216. sta (z80_ix),y
  2217. sta z80_h
  2218. ;0xBD - res 7,(ix+n),l
  2219. ldy #n ;- res 7,(ix+n),l
  2220. lda (z80_ix),y
  2221. and #$7F
  2222. sta (z80_ix),y
  2223. sta z80_l
  2224. ;0xBE - res 7,(ix+n)
  2225. ldy #n ;- res 7,(ix+n)
  2226. lda (z80_ix),y
  2227. and #$7F
  2228. sta (z80_ix),y
  2229. ;0xBF - res 7,(ix+n),a
  2230. ldy #n ;- res 7,(ix+n),a
  2231. lda (z80_ix),y
  2232. and #$7F
  2233. sta (z80_ix),y
  2234. sta z80_a
  2235. ;0xC0 - set 0,(ix+n),b
  2236. ldy #n ;- set 0,(ix+n),b
  2237. lda (z80_ix),y
  2238. ora $01
  2239. sta (z80_ix),y
  2240. sta z80_b
  2241. ;0xC1 - set 0,(ix+n),c
  2242. ldy #n ;- set 0,(ix+n),c
  2243. lda (z80_ix),y
  2244. ora $01
  2245. sta (z80_ix),y
  2246. sta z80_c
  2247. ;0xC2 - set 0,(ix+n),d
  2248. ldy #n ;- set 0,(ix+n),d
  2249. lda (z80_ix),y
  2250. ora $01
  2251. sta (z80_ix),y
  2252. sta z80_d
  2253. ;0xC3 - set 0,(ix+n),e
  2254. ldy #n ;- set 0,(ix+n),e
  2255. lda (z80_ix),y
  2256. ora $01
  2257. sta (z80_ix),y
  2258. sta z80_e
  2259. ;0xC4 - set 0,(ix+n),h
  2260. ldy #n ;- set 0,(ix+n),h
  2261. lda (z80_ix),y
  2262. ora $01
  2263. sta (z80_ix),y
  2264. sta z80_h
  2265. ;0xC5 - set 0,(ix+n),l
  2266. ldy #n ;- set 0,(ix+n),l
  2267. lda (z80_ix),y
  2268. ora $01
  2269. sta (z80_ix),y
  2270. sta z80_l
  2271. ;0xC6 - set 0,(ix+n)
  2272. ldy #n ;- set 0,(ix+n)
  2273. lda (z80_ix),y
  2274. ora $01
  2275. sta (z80_ix),y
  2276. ;0xC7 - set 0,(ix+n),a
  2277. ldy #n ;- set 0,(ix+n),a
  2278. lda (z80_ix),y
  2279. ora $01
  2280. sta (z80_ix),y
  2281. sta z80_a
  2282. ;0xC8 - set 1,(ix+n),b
  2283. ldy #n ;- set 1,(ix+n),b
  2284. lda (z80_ix),y
  2285. ora $02
  2286. sta (z80_ix),y
  2287. sta z80_b
  2288. ;0xC9 - set 1,(ix+n),c
  2289. ldy #n ;- set 1,(ix+n),c
  2290. lda (z80_ix),y
  2291. ora $02
  2292. sta (z80_ix),y
  2293. sta z80_c
  2294. ;0xCA - set 1,(ix+n),d
  2295. ldy #n ;- set 1,(ix+n),d
  2296. lda (z80_ix),y
  2297. ora $02
  2298. sta (z80_ix),y
  2299. sta z80_d
  2300. ;0xCB - set 1,(ix+n),e
  2301. ldy #n ;- set 1,(ix+n),e
  2302. lda (z80_ix),y
  2303. ora $02
  2304. sta (z80_ix),y
  2305. sta z80_e
  2306. ;0xCC - set 1,(ix+n),h
  2307. ldy #n ;- set 1,(ix+n),h
  2308. lda (z80_ix),y
  2309. ora $02
  2310. sta (z80_ix),y
  2311. sta z80_h
  2312. ;0xCD - set 1,(ix+n),l
  2313. ldy #n ;- set 1,(ix+n),l
  2314. lda (z80_ix),y
  2315. ora $02
  2316. sta (z80_ix),y
  2317. sta z80_l
  2318. ;0xCE - set 1,(ix+n)
  2319. ldy #n ;- set 1,(ix+n)
  2320. lda (z80_ix),y
  2321. ora $02
  2322. sta (z80_ix),y
  2323. ;0xCF - set 1,(ix+n),a
  2324. ldy #n ;- set 1,(ix+n),a
  2325. lda (z80_ix),y
  2326. ora $02
  2327. sta (z80_ix),y
  2328. sta z80_a
  2329. ;0xD0 - set 2,(ix+n),b
  2330. ldy #n ;- set 2,(ix+n),b
  2331. lda (z80_ix),y
  2332. ora $04
  2333. sta (z80_ix),y
  2334. sta z80_b
  2335. ;0xD1 - set 2,(ix+n),c
  2336. ldy #n ;- set 2,(ix+n),c
  2337. lda (z80_ix),y
  2338. ora $04
  2339. sta (z80_ix),y
  2340. sta z80_c
  2341. ;0xD2 - set 2,(ix+n),d
  2342. ldy #n ;- set 2,(ix+n),d
  2343. lda (z80_ix),y
  2344. ora $04
  2345. sta (z80_ix),y
  2346. sta z80_d
  2347. ;0xD3 - set 2,(ix+n),e
  2348. ldy #n ;- set 2,(ix+n),e
  2349. lda (z80_ix),y
  2350. ora $04
  2351. sta (z80_ix),y
  2352. sta z80_e
  2353. ;0xD4 - set 2,(ix+n),h
  2354. ldy #n ;- set 2,(ix+n),h
  2355. lda (z80_ix),y
  2356. ora $04
  2357. sta (z80_ix),y
  2358. sta z80_h
  2359. ;0xD5 - set 2,(ix+n),l
  2360. ldy #n ;- set 2,(ix+n),l
  2361. lda (z80_ix),y
  2362. ora $04
  2363. sta (z80_ix),y
  2364. sta z80_l
  2365. ;0xD6 - set 2,(ix+n)
  2366. ldy #n ;- set 2,(ix+n)
  2367. lda (z80_ix),y
  2368. ora $04
  2369. sta (z80_ix),y
  2370. ;0xD7 - set 2,(ix+n),a
  2371. ldy #n ;- set 2,(ix+n),a
  2372. lda (z80_ix),y
  2373. ora $04
  2374. sta (z80_ix),y
  2375. sta z80_a
  2376. ;0xD8 - set 3,(ix+n),b
  2377. ldy #n ;- set 3,(ix+n),b
  2378. lda (z80_ix),y
  2379. ora $08
  2380. sta (z80_ix),y
  2381. sta z80_b
  2382. ;0xD9 - set 3,(ix+n),c
  2383. ldy #n ;- set 3,(ix+n),c
  2384. lda (z80_ix),y
  2385. ora $08
  2386. sta (z80_ix),y
  2387. sta z80_c
  2388. ;0xDA - set 3,(ix+n),d
  2389. ldy #n ;- set 3,(ix+n),d
  2390. lda (z80_ix),y
  2391. ora $08
  2392. sta (z80_ix),y
  2393. sta z80_d
  2394. ;0xDB - set 3,(ix+n),e
  2395. ldy #n ;- set 3,(ix+n),e
  2396. lda (z80_ix),y
  2397. ora $08
  2398. sta (z80_ix),y
  2399. sta z80_e
  2400. ;0xDC - set 3,(ix+n),h
  2401. ldy #n ;- set 3,(ix+n),h
  2402. lda (z80_ix),y
  2403. ora $08
  2404. sta (z80_ix),y
  2405. sta z80_h
  2406. ;0xDD - set 3,(ix+n),l
  2407. ldy #n ;- set 3,(ix+n),l
  2408. lda (z80_ix),y
  2409. ora $08
  2410. sta (z80_ix),y
  2411. sta z80_l
  2412. ;0xDE - set 3,(ix+n)
  2413. ldy #n ;- set 3,(ix+n)
  2414. lda (z80_ix),y
  2415. ora $08
  2416. sta (z80_ix),y
  2417. ;0xDF - set 3,(ix+n),a
  2418. ldy #n ;- set 3,(ix+n),a
  2419. lda (z80_ix),y
  2420. ora $08
  2421. sta (z80_ix),y
  2422. sta z80_a
  2423. ;0xE0 - set 4,(ix+n),b
  2424. ldy #n ;- set 4,(ix+n),b
  2425. lda (z80_ix),y
  2426. ora $10
  2427. sta (z80_ix),y
  2428. sta z80_b
  2429. ;0xE1 - set 4,(ix+n),c
  2430. ldy #n ;- set 4,(ix+n),c
  2431. lda (z80_ix),y
  2432. ora $10
  2433. sta (z80_ix),y
  2434. sta z80_c
  2435. ;0xE2 - set 4,(ix+n),d
  2436. ldy #n ;- set 4,(ix+n),d
  2437. lda (z80_ix),y
  2438. ora $10
  2439. sta (z80_ix),y
  2440. sta z80_d
  2441. ;0xE3 - set 4,(ix+n),e
  2442. ldy #n ;- set 4,(ix+n),e
  2443. lda (z80_ix),y
  2444. ora $10
  2445. sta (z80_ix),y
  2446. sta z80_e
  2447. ;0xE4 - set 4,(ix+n),h
  2448. ldy #n ;- set 4,(ix+n),h
  2449. lda (z80_ix),y
  2450. ora $10
  2451. sta (z80_ix),y
  2452. sta z80_h
  2453. ;0xE5 - set 4,(ix+n),l
  2454. ldy #n ;- set 4,(ix+n),l
  2455. lda (z80_ix),y
  2456. ora $10
  2457. sta (z80_ix),y
  2458. sta z80_l
  2459. ;0xE6 - set 4,(ix+n)
  2460. ldy #n ;- set 4,(ix+n)
  2461. lda (z80_ix),y
  2462. ora $10
  2463. sta (z80_ix),y
  2464. ;0xE7 - set 4,(ix+n),a
  2465. ldy #n ;- set 4,(ix+n),a
  2466. lda (z80_ix),y
  2467. ora $10
  2468. sta (z80_ix),y
  2469. sta z80_a
  2470. ;0xE8 - set 5,(ix+n),b
  2471. ldy #n ;- set 5,(ix+n),b
  2472. lda (z80_ix),y
  2473. ora $20
  2474. sta (z80_ix),y
  2475. sta z80_b
  2476. ;0xE9 - set 5,(ix+n),c
  2477. ldy #n ;- set 5,(ix+n),c
  2478. lda (z80_ix),y
  2479. ora $20
  2480. sta (z80_ix),y
  2481. sta z80_c
  2482. ;0xEA - set 5,(ix+n),d
  2483. ldy #n ;- set 5,(ix+n),d
  2484. lda (z80_ix),y
  2485. ora $20
  2486. sta (z80_ix),y
  2487. sta z80_d
  2488. ;0xEB - set 5,(ix+n),e
  2489. ldy #n ;- set 5,(ix+n),e
  2490. lda (z80_ix),y
  2491. ora $20
  2492. sta (z80_ix),y
  2493. sta z80_e
  2494. ;0xEC - set 5,(ix+n),h
  2495. ldy #n ;- set 5,(ix+n),h
  2496. lda (z80_ix),y
  2497. ora $20
  2498. sta (z80_ix),y
  2499. sta z80_h
  2500. ;0xED - set 5,(ix+n),l
  2501. ldy #n ;- set 5,(ix+n),l
  2502. lda (z80_ix),y
  2503. ora $20
  2504. sta (z80_ix),y
  2505. sta z80_l
  2506. ;0xEE - set 5,(ix+n)
  2507. ldy #n ;- set 5,(ix+n)
  2508. lda (z80_ix),y
  2509. ora $20
  2510. sta (z80_ix),y
  2511. ;0xEF - set 5,(ix+n),a
  2512. ldy #n ;- set 5,(ix+n),a
  2513. lda (z80_ix),y
  2514. ora $20
  2515. sta (z80_ix),y
  2516. sta z80_a
  2517. ;0xF0 - set 6,(ix+n),b
  2518. ldy #n ;- set 6,(ix+n),b
  2519. lda (z80_ix),y
  2520. ora $40
  2521. sta (z80_ix),y
  2522. sta z80_b
  2523. ;0xF1 - set 6,(ix+n),c
  2524. ldy #n ;- set 6,(ix+n),c
  2525. lda (z80_ix),y
  2526. ora $40
  2527. sta (z80_ix),y
  2528. sta z80_c
  2529. ;0xF2 - set 6,(ix+n),d
  2530. ldy #n ;- set 6,(ix+n),d
  2531. lda (z80_ix),y
  2532. ora $40
  2533. sta (z80_ix),y
  2534. sta z80_d
  2535. ;0xF3 - set 6,(ix+n),e
  2536. ldy #n ;- set 6,(ix+n),e
  2537. lda (z80_ix),y
  2538. ora $40
  2539. sta (z80_ix),y
  2540. sta z80_e
  2541. ;0xF4 - set 6,(ix+n),h
  2542. ldy #n ;- set 6,(ix+n),h
  2543. lda (z80_ix),y
  2544. ora $40
  2545. sta (z80_ix),y
  2546. sta z80_h
  2547. ;0xF5 - set 6,(ix+n),l
  2548. ldy #n ;- set 6,(ix+n),l
  2549. lda (z80_ix),y
  2550. ora $40
  2551. sta (z80_ix),y
  2552. sta z80_l
  2553. ;0xF6 - set 6,(ix+n)
  2554. ldy #n ;- set 6,(ix+n)
  2555. lda (z80_ix),y
  2556. ora $40
  2557. sta (z80_ix),y
  2558. ;0xF7 - set 6,(ix+n),a
  2559. ldy #n ;- set 6,(ix+n),a
  2560. lda (z80_ix),y
  2561. ora $40
  2562. sta (z80_ix),y
  2563. sta z80_a
  2564. ;0xF8 - set 7,(ix+n),b
  2565. ldy #n ;- set 7,(ix+n),b
  2566. lda (z80_ix),y
  2567. ora $80
  2568. sta (z80_ix),y
  2569. sta z80_b
  2570. ;0xF9 - set 7,(ix+n),c
  2571. ldy #n ;- set 7,(ix+n),c
  2572. lda (z80_ix),y
  2573. ora $80
  2574. sta (z80_ix),y
  2575. sta z80_c
  2576. ;0xFA - set 7,(ix+n),d
  2577. ldy #n ;- set 7,(ix+n),d
  2578. lda (z80_ix),y
  2579. ora $80
  2580. sta (z80_ix),y
  2581. sta z80_d
  2582. ;0xFB - set 7,(ix+n),e
  2583. ldy #n ;- set 7,(ix+n),e
  2584. lda (z80_ix),y
  2585. ora $80
  2586. sta (z80_ix),y
  2587. sta z80_e
  2588. ;0xFC - set 7,(ix+n),h
  2589. ldy #n ;- set 7,(ix+n),h
  2590. lda (z80_ix),y
  2591. ora $80
  2592. sta (z80_ix),y
  2593. sta z80_h
  2594. ;0xFD - set 7,(ix+n),l
  2595. ldy #n ;- set 7,(ix+n),l
  2596. lda (z80_ix),y
  2597. ora $80
  2598. sta (z80_ix),y
  2599. sta z80_l
  2600. ;0xFE - set 7,(ix+n)
  2601. ldy #n ;- set 7,(ix+n)
  2602. lda (z80_ix),y
  2603. ora $80
  2604. sta (z80_ix),y
  2605. ;0xFF - set 7,(ix+n),a
  2606. ldy #n ;- set 7,(ix+n),a
  2607. lda (z80_ix),y
  2608. ora $80
  2609. sta (z80_ix),y
  2610. sta z80_a
  2611. ;--------------------- extended opcodes - FD -----------------------------------
  2612. ;0x09 - add iy,bc
  2613. ;0x19 - add iy,de
  2614. ;0x21 - ld iy,nn
  2615. ;0x22 - ld (nn),iy
  2616. ;0x23 - inc iy
  2617. ;0x24 - inc iyh
  2618. ;0x25 - dec iyh
  2619. ;0x26 - ld iyh,n
  2620. ;0x29 - add iy,iy
  2621. ;0x2A - ld iy,(nn)
  2622. ;0x2B - dec iy
  2623. ;0x2C - inc iyl
  2624. ;0x2D - dec iyl
  2625. ;0x2E - ld iyl,n
  2626. ;0x34 - inc (iy+n)
  2627. ;0x35 - dec (iy+n)
  2628. ;0x36 - ld (iy+n),n
  2629. ;0x39 - add iy,sp
  2630. ;0x44 - ld b,iyh
  2631. ;0x45 - ld b,iyl
  2632. ;0x46 - ld b,(iy+n)
  2633. ;0x4C - ld c,iyh
  2634. ;0x4D - ld c,iyl
  2635. ;0x4E - ld c,(iy+n)
  2636. ;0x54 - ld d,iyh
  2637. ;0x55 - ld d,iyl
  2638. ;0x56 - ld d,(iy+n)
  2639. ;0x5C - ld e,iyh
  2640. ;0x5D - ld e,iyl
  2641. ;0x5E - ld e,(iy+n)
  2642. ;0x60 - ld iyh,b
  2643. ;0x61 - ld iyh,c
  2644. ;0x62 - ld iyh,d
  2645. ;0x63 - ld iyh,e
  2646. ;0x64 - ld iyh,h
  2647. ;0x65 - ld iyh,l
  2648. ;0x66 - ld h,(iy+n)
  2649. ;0x67 - ld iyh,a
  2650. ;0x68 - ld iyl,b
  2651. ;0x69 - ld iyl,c
  2652. ;0x6A - ld iyl,d
  2653. ;0x6B - ld iyl,e
  2654. ;0x6C - ld iyl,h
  2655. ;0x6D - ld iyl,l
  2656. ;0x6E - ld l,(iy+n)
  2657. ;0x6F - ld iyl,a
  2658. ;0x70 - ld (iy+n),b
  2659. ;0x71 - ld (iy+n),c
  2660. ;0x72 - ld (iy+n),d
  2661. ;0x73 - ld (iy+n),e
  2662. ;0x74 - ld (iy+n),h
  2663. ;0x75 - ld (iy+n),l
  2664. ;0x77 - ld (iy+n),a
  2665. ;0x7C - ld a,iyh
  2666. ;0x7D - ld a,iyl
  2667. ;0x7E - ld a,(iy+n)
  2668. ;0x84 - add a,iyh
  2669. ;0x85 - add a,iyl
  2670. ;0x86 - add a,(iy+n)
  2671. ;0x8C - adc a,iyh
  2672. ;0x8D - adc a,iyl
  2673. ;0x8E - adc a,(iy+n)
  2674. ;0x94 - sub iyh
  2675. ;0x95 - sub iyl
  2676. ;0x96 - sub (iy+n)
  2677. ;0x9C - sbc iyh
  2678. ;0x9D - sbc iyl
  2679. ;0x9E - sbc (iy+n)
  2680. ;0xA4 - and iyh
  2681. ;0xA5 - and iyl
  2682. ;0xA6 - and (iy+n)
  2683. ;0xAC - xor iyh
  2684. ;0xAD - xor iyl
  2685. ;0xAE - xor (iy+n)
  2686. ;0xB4 - or iyh
  2687. ;0xB5 - or iyl
  2688. ;0xB6 - or (iy+n)
  2689. ;0xBC - cp iyh
  2690. ;0xBD - cp iyl
  2691. ;0xBE - cp (iy+n)
  2692. ;0xE1 - pop iy
  2693. ;0xE3 - ex (sp),iy
  2694. ;0xE5 - push iy
  2695. lda z80_iy ;- push iy
  2696. pha
  2697. lda z80_iy+1
  2698. pha
  2699. ;0xE9 - jp (iy)
  2700. ;0xF9 - ld sp,iy
  2701. ;--------------------- extended opcodes - FD CB --------------------------------
  2702. ;0x00 - rlc (iy+n),b
  2703. ;0x01 - rlc (iy+n),c
  2704. ;0x02 - rlc (iy+n),d
  2705. ;0x03 - rlc (iy+n),e
  2706. ;0x04 - rlc (iy+n),h
  2707. ;0x05 - rlc (iy+n),l
  2708. ;0x06 - rlc (iy+n)
  2709. ;0x07 - rlc (iy+n),a
  2710. ;0x08 - rrc (iy+n),b
  2711. ;0x09 - rrc (iy+n),c
  2712. ;0x0A - rrc (iy+n),d
  2713. ;0x0B - rrc (iy+n),e
  2714. ;0x0C - rrc (iy+n),h
  2715. ;0x0D - rrc (iy+n),l
  2716. ;0x0E - rrc (iy+n)
  2717. ;0x0F - rrc (iy+n),a
  2718. ;0x10 - rl (iy+n),b
  2719. ;0x11 - rl (iy+n),c
  2720. ;0x12 - rl (iy+n),d
  2721. ;0x13 - rl (iy+n),e
  2722. ;0x14 - rl (iy+n),h
  2723. ;0x15 - rl (iy+n),l
  2724. ;0x16 - rl (iy+n)
  2725. ;0x17 - rl (iy+n),a
  2726. ;0x18 - rr (iy+n),b
  2727. ;0x19 - rr (iy+n),c
  2728. ;0x0A - rr (iy+n),d
  2729. ;0x1B - rr (iy+n),e
  2730. ;0x1C - rr (iy+n),h
  2731. ;0x1D - rr (iy+n),l
  2732. ;0x1E - rr (iy+n)
  2733. ;0x1F - rr (iy+n),a
  2734. ;0x20 - sla (iy+n),b
  2735. ;0x21 - sla (iy+n),c
  2736. ;0x22 - sla (iy+n),d
  2737. ;0x23 - sla (iy+n),e
  2738. ;0x24 - sla (iy+n),h
  2739. ;0x25 - sla (iy+n),l
  2740. ;0x26 - sla (iy+n)
  2741. ;0x27 - sla (iy+n),a
  2742. ;0x28 - sra (iy+n),b
  2743. ;0x29 - sra (iy+n),c
  2744. ;0x2A - sra (iy+n),d
  2745. ;0x2B - sra (iy+n),e
  2746. ;0x2C - sra (iy+n),h
  2747. ;0x2D - sra (iy+n),l
  2748. ;0x2E - sra (iy+n)
  2749. ;0x2F - sra (iy+n),a
  2750. ;0x30 - sll (iy+n),b
  2751. ;0x31 - sll (iy+n),c
  2752. ;0x32 - sll (iy+n),d
  2753. ;0x33 - sll (iy+n),e
  2754. ;0x34 - sll (iy+n),h
  2755. ;0x35 - sll (iy+n),l
  2756. ;0x36 - sll (iy+n)
  2757. ;0x37 - sll (iy+n),a
  2758. ;0x38 - srl (iy+n),b
  2759. ;0x39 - srl (iy+n),c
  2760. ;0x3A - srl (iy+n),d
  2761. ;0x3B - srl (iy+n),e
  2762. ;0x3C - srl (iy+n),h
  2763. ;0x3D - srl (iy+n),l
  2764. ;0x3E - srl (iy+n)
  2765. ;0x3F - srl (iy+n),a
  2766. ;0x46 - bit 0,(iy+n)
  2767. ldy #n ;- bit 0,(iy+n)
  2768. lda (z80_iy),y
  2769. bit #$01
  2770. ;0x4E - bit 1,(iy+n)
  2771. ldy #n ;- bit 1,(iy+n)
  2772. lda (z80_iy),y
  2773. bit #$02
  2774. ;0x56 - bit 2,(iy+n)
  2775. ldy #n ;- bit 2,(iy+n)
  2776. lda (z80_iy),y
  2777. bit #$04
  2778. ;0x5E - bit 3,(iy+n)
  2779. ldy #n ;- bit 3,(iy+n)
  2780. lda (z80_iy),y
  2781. bit #$08
  2782. ;0x66 - bit 4,(iy+n)
  2783. ldy #n ;- bit 4,(iy+n)
  2784. lda (z80_iy),y
  2785. bit #$10
  2786. ;0x6E - bit 5,(iy+n)
  2787. ldy #n ;- bit 5,(iy+n)
  2788. lda (z80_iy),y
  2789. bit #$20
  2790. ;0x76 - bit 6,(iy+n)
  2791. ldy #n ;- bit 6,(iy+n)
  2792. lda (z80_iy),y
  2793. bit #$40
  2794. ;0x7E - bit 7,(iy+n)
  2795. ldy #n ;- bit 7,(iy+n)
  2796. lda (z80_iy),y
  2797. bit #$80
  2798. ;0x80 - res 0,(iy+n),b
  2799. ldy #n ;- res 0,(iy+n),b
  2800. lda (z80_iy),y
  2801. and #$FE
  2802. sta (z80_iy),y
  2803. sta z80_b
  2804. ;0x81 - res 0,(iy+n),c
  2805. ldy #n ;- res 0,(iy+n),c
  2806. lda (z80_iy),y
  2807. and #$FE
  2808. sta (z80_iy),y
  2809. sta z80_c
  2810. ;0x82 - res 0,(iy+n),d
  2811. ldy #n ;- res 0,(iy+n),d
  2812. lda (z80_iy),y
  2813. and #$FE
  2814. sta (z80_iy),y
  2815. sta z80_d
  2816. ;0x83 - res 0,(iy+n),e
  2817. ldy #n ;- res 0,(iy+n),e
  2818. lda (z80_iy),y
  2819. and #$FE
  2820. sta (z80_iy),y
  2821. sta z80_e
  2822. ;0x84 - res 0,(iy+n),h
  2823. ldy #n ;- res 0,(iy+n),h
  2824. lda (z80_iy),y
  2825. and #$FE
  2826. sta (z80_iy),y
  2827. sta z80_h
  2828. ;0x85 - res 0,(iy+n),l
  2829. ldy #n ;- res 0,(iy+n),l
  2830. lda (z80_iy),y
  2831. and #$FE
  2832. sta (z80_iy),y
  2833. sta z80_l
  2834. ;0x86 - res 0,(iy+n)
  2835. ldy #n ;- res 0,(iy+n)
  2836. lda (z80_iy),y
  2837. and #$FE
  2838. sta (z80_iy),y
  2839. ;0x87 - res 0,(iy+n),a
  2840. ldy #n ;- res 0,(iy+n),a
  2841. lda (z80_iy),y
  2842. and #$FE
  2843. sta (z80_iy),y
  2844. sta z80_a
  2845. ;0x88 - res 1,(iy+n),b
  2846. ldy #n ;- res 1,(iy+n),b
  2847. lda (z80_iy),y
  2848. and #$FD
  2849. sta (z80_iy),y
  2850. sta z80_b
  2851. ;0x89 - res 1,(iy+n),c
  2852. ldy #n ;- res 1,(iy+n),c
  2853. lda (z80_iy),y
  2854. and #$FD
  2855. sta (z80_iy),y
  2856. sta z80_c
  2857. ;0x8A - res 1,(iy+n),d
  2858. ldy #n ;- res 1,(iy+n),d
  2859. lda (z80_iy),y
  2860. and #$FD
  2861. sta (z80_iy),y
  2862. sta z80_d
  2863. ;0x8B - res 1,(iy+n),e
  2864. ldy #n ;- res 1,(iy+n),e
  2865. lda (z80_iy),y
  2866. and #$FD
  2867. sta (z80_iy),y
  2868. sta z80_e
  2869. ;0x8C - res 1,(iy+n),h
  2870. ldy #n ;- res 1,(iy+n),h
  2871. lda (z80_iy),y
  2872. and #$FD
  2873. sta (z80_iy),y
  2874. sta z80_h
  2875. ;0x8D - res 1,(iy+n),l
  2876. ldy #n ;- res 1,(iy+n),l
  2877. lda (z80_iy),y
  2878. and #$FD
  2879. sta (z80_iy),y
  2880. sta z80_l
  2881. ;0x8E - res 1,(iy+n)
  2882. ldy #n ;- res 1,(iy+n)
  2883. lda (z80_iy),y
  2884. and #$FD
  2885. sta (z80_iy),y
  2886. ;0x8F - res 1,(iy+n),a
  2887. ldy #n ;- res 1,(iy+n),a
  2888. lda (z80_iy),y
  2889. and #$FD
  2890. sta (z80_iy),y
  2891. sta z80_a
  2892. ;0x90 - res 2,(iy+n),b
  2893. ldy #n ;- res 2,(iy+n),b
  2894. lda (z80_iy),y
  2895. and #$FB
  2896. sta (z80_iy),y
  2897. sta z80_b
  2898. ;0x91 - res 2,(iy+n),c
  2899. ldy #n ;- res 2,(iy+n),c
  2900. lda (z80_iy),y
  2901. and #$FB
  2902. sta (z80_iy),y
  2903. sta z80_c
  2904. ;0x92 - res 2,(iy+n),d
  2905. ldy #n ;- res 2,(iy+n),d
  2906. lda (z80_iy),y
  2907. and #$FB
  2908. sta (z80_iy),y
  2909. sta z80_d
  2910. ;0x93 - res 2,(iy+n),e
  2911. ldy #n ;- res 2,(iy+n),e
  2912. lda (z80_iy),y
  2913. and #$FB
  2914. sta (z80_iy),y
  2915. sta z80_e
  2916. ;0x94 - res 2,(iy+n),h
  2917. ldy #n ;- res 2,(iy+n),h
  2918. lda (z80_iy),y
  2919. and #$FB
  2920. sta (z80_iy),y
  2921. sta z80_h
  2922. ;0x95 - res 2,(iy+n),l
  2923. ldy #n ;- res 2,(iy+n),l
  2924. lda (z80_iy),y
  2925. and #$FB
  2926. sta (z80_iy),y
  2927. sta z80_l
  2928. ;0x96 - res 2,(iy+n)
  2929. ldy #n ;- res 2,(iy+n)
  2930. lda (z80_iy),y
  2931. and #$FB
  2932. sta (z80_iy),y
  2933. ;0x97 - res 2,(iy+n),a
  2934. ldy #n ;- res 2,(iy+n),a
  2935. lda (z80_iy),y
  2936. and #$FB
  2937. sta (z80_iy),y
  2938. sta z80_a
  2939. ;0x98 - res 3,(iy+n),b
  2940. ldy #n ;- res 3,(iy+n),b
  2941. lda (z80_iy),y
  2942. and #$F7
  2943. sta (z80_iy),y
  2944. sta z80_b
  2945. ;0x99 - res 3,(iy+n),c
  2946. ldy #n ;- res 3,(iy+n),c
  2947. lda (z80_iy),y
  2948. and #$F7
  2949. sta (z80_iy),y
  2950. sta z80_c
  2951. ;0x9A - res 3,(iy+n),d
  2952. ldy #n ;- res 3,(iy+n),d
  2953. lda (z80_iy),y
  2954. and #$F7
  2955. sta (z80_iy),y
  2956. sta z80_d
  2957. ;0x9B - res 3,(iy+n),e
  2958. ldy #n ;- res 3,(iy+n),e
  2959. lda (z80_iy),y
  2960. and #$F7
  2961. sta (z80_iy),y
  2962. sta z80_e
  2963. ;0x9C - res 3,(iy+n),h
  2964. ldy #n ;- res 3,(iy+n),h
  2965. lda (z80_iy),y
  2966. and #$F7
  2967. sta (z80_iy),y
  2968. sta z80_h
  2969. ;0x9D - res 3,(iy+n),l
  2970. ldy #n ;- res 3,(iy+n),l
  2971. lda (z80_iy),y
  2972. and #$F7
  2973. sta (z80_iy),y
  2974. sta z80_l
  2975. ;0x9E - res 3,(iy+n)
  2976. ldy #n ;- res 3,(iy+n)
  2977. lda (z80_iy),y
  2978. and #$F7
  2979. sta (z80_iy),y
  2980. ;0x9F - res 3,(iy+n),a
  2981. ldy #n ;- res 3,(iy+n),a
  2982. lda (z80_iy),y
  2983. and #$F7
  2984. sta (z80_iy),y
  2985. sta z80_a
  2986. ;0xA0 - res 4,(iy+n),b
  2987. ldy #n ;- res 4,(iy+n),b
  2988. lda (z80_iy),y
  2989. and #$EF
  2990. sta (z80_iy),y
  2991. sta z80_b
  2992. ;0xA1 - res 4,(iy+n),c
  2993. ldy #n ;- res 4,(iy+n),c
  2994. lda (z80_iy),y
  2995. and #$EF
  2996. sta (z80_iy),y
  2997. sta z80_c
  2998. ;0xA2 - res 4,(iy+n),d
  2999. ldy #n ;- res 4,(iy+n),d
  3000. lda (z80_iy),y
  3001. and #$EF
  3002. sta (z80_iy),y
  3003. sta z80_d
  3004. ;0xA3 - res 4,(iy+n),e
  3005. ldy #n ;- res 4,(iy+n),e
  3006. lda (z80_iy),y
  3007. and #$EF
  3008. sta (z80_iy),y
  3009. sta z80_e
  3010. ;0xA4 - res 4,(iy+n),h
  3011. ldy #n ;- res 4,(iy+n),h
  3012. lda (z80_iy),y
  3013. and #$EF
  3014. sta (z80_iy),y
  3015. sta z80_h
  3016. ;0xA5 - res 4,(iy+n),l
  3017. ldy #n ;- res 4,(iy+n),l
  3018. lda (z80_iy),y
  3019. and #$EF
  3020. sta (z80_iy),y
  3021. sta z80_l
  3022. ;0xA6 - res 4,(iy+n)
  3023. ldy #n ;- res 4,(iy+n)
  3024. lda (z80_iy),y
  3025. and #$EF
  3026. sta (z80_iy),y
  3027. ;0xA7 - res 4,(iy+n),a
  3028. ldy #n ;- res 4,(iy+n),a
  3029. lda (z80_iy),y
  3030. and #$EF
  3031. sta (z80_iy),y
  3032. sta z80_a
  3033. ;0xA8 - res 5,(iy+n),b
  3034. ldy #n ;- res 5,(iy+n),b
  3035. lda (z80_iy),y
  3036. and #$DF
  3037. sta (z80_iy),y
  3038. sta z80_b
  3039. ;0xA9 - res 5,(iy+n),c
  3040. ldy #n ;- res 5,(iy+n),c
  3041. lda (z80_iy),y
  3042. and #$DF
  3043. sta (z80_iy),y
  3044. sta z80_c
  3045. ;0xAA - res 5,(iy+n),d
  3046. ldy #n ;- res 5,(iy+n),d
  3047. lda (z80_iy),y
  3048. and #$DF
  3049. sta (z80_iy),y
  3050. sta z80_d
  3051. ;0xAB - res 5,(iy+n),e
  3052. ldy #n ;- res 5,(iy+n),e
  3053. lda (z80_iy),y
  3054. and #$DF
  3055. sta (z80_iy),y
  3056. sta z80_e
  3057. ;0xAC - res 5,(iy+n),h
  3058. ldy #n ;- res 5,(iy+n),h
  3059. lda (z80_iy),y
  3060. and #$DF
  3061. sta (z80_iy),y
  3062. sta z80_h
  3063. ;0xAD - res 5,(iy+n),l
  3064. ldy #n ;- res 5,(iy+n),l
  3065. lda (z80_iy),y
  3066. and #$DF
  3067. sta (z80_iy),y
  3068. sta z80_l
  3069. ;0xAE - res 5,(iy+n)
  3070. ldy #n ;- res 5,(iy+n)
  3071. lda (z80_iy),y
  3072. and #$DF
  3073. sta (z80_iy),y
  3074. ;0xAF - res 5,(iy+n),a
  3075. ldy #n ;- res 5,(iy+n),a
  3076. lda (z80_iy),y
  3077. and #$DF
  3078. sta (z80_iy),y
  3079. sta z80_a
  3080. ;0xB0 - res 6,(iy+n),b
  3081. ldy #n ;- res 6,(iy+n),b
  3082. lda (z80_iy),y
  3083. and #$BF
  3084. sta (z80_iy),y
  3085. sta z80_b
  3086. ;0xB1 - res 6,(iy+n),c
  3087. ldy #n ;- res 6,(iy+n),c
  3088. lda (z80_iy),y
  3089. and #$BF
  3090. sta (z80_iy),y
  3091. sta z80_c
  3092. ;0xB2 - res 6,(iy+n),d
  3093. ldy #n ;- res 6,(iy+n),d
  3094. lda (z80_iy),y
  3095. and #$BF
  3096. sta (z80_iy),y
  3097. sta z80_d
  3098. ;0xB3 - res 6,(iy+n),e
  3099. ldy #n ;- res 6,(iy+n),e
  3100. lda (z80_iy),y
  3101. and #$BF
  3102. sta (z80_iy),y
  3103. sta z80_e
  3104. ;0xB4 - res 6,(iy+n),h
  3105. ldy #n ;- res 6,(iy+n),h
  3106. lda (z80_iy),y
  3107. and #$BF
  3108. sta (z80_iy),y
  3109. sta z80_h
  3110. ;0xB5 - res 6,(iy+n),l
  3111. ldy #n ;- res 6,(iy+n),l
  3112. lda (z80_iy),y
  3113. and #$BF
  3114. sta (z80_iy),y
  3115. sta z80_l
  3116. ;0xB6 - res 6,(iy+n)
  3117. ldy #n ;- res 6,(iy+n)
  3118. lda (z80_iy),y
  3119. and #$BF
  3120. sta (z80_iy),y
  3121. ;0xB7 - res 6,(iy+n),a
  3122. ldy #n ;- res 6,(iy+n),a
  3123. lda (z80_iy),y
  3124. and #$BF
  3125. sta (z80_iy),y
  3126. sta z80_a
  3127. ;0xB8 - res 7,(iy+n),b
  3128. ldy #n ;- res 7,(iy+n),b
  3129. lda (z80_iy),y
  3130. and #$7F
  3131. sta (z80_iy),y
  3132. sta z80_b
  3133. ;0xB9 - res 7,(iy+n),c
  3134. ldy #n ;- res 7,(iy+n),c
  3135. lda (z80_iy),y
  3136. and #$7F
  3137. sta (z80_iy),y
  3138. sta z80_c
  3139. ;0xBA - res 7,(iy+n),d
  3140. ldy #n ;- res 7,(iy+n),d
  3141. lda (z80_iy),y
  3142. and #$7F
  3143. sta (z80_iy),y
  3144. sta z80_d
  3145. ;0xBB - res 7,(iy+n),e
  3146. ldy #n ;- res 7,(iy+n),e
  3147. lda (z80_iy),y
  3148. and #$7F
  3149. sta (z80_iy),y
  3150. sta z80_e
  3151. ;0xBC - res 7,(iy+n),h
  3152. ldy #n ;- res 7,(iy+n),h
  3153. lda (z80_iy),y
  3154. and #$7F
  3155. sta (z80_iy),y
  3156. sta z80_h
  3157. ;0xBD - res 7,(iy+n),l
  3158. ldy #n ;- res 7,(iy+n),l
  3159. lda (z80_iy),y
  3160. and #$7F
  3161. sta (z80_iy),y
  3162. sta z80_l
  3163. ;0xBE - res 7,(iy+n)
  3164. ldy #n ;- res 7,(iy+n)
  3165. lda (z80_iy),y
  3166. and #$7F
  3167. sta (z80_iy),y
  3168. ;0xBF - res 7,(iy+n),a
  3169. ldy #n ;- res 7,(iy+n),a
  3170. lda (z80_iy),y
  3171. and #$7F
  3172. sta (z80_iy),y
  3173. sta z80_a
  3174. ;0xC0 - set 0,(iy+n),b
  3175. ldy #n ;- set 0,(iy+n),b
  3176. lda (z80_iy),y
  3177. ora $01
  3178. sta (z80_iy),y
  3179. sta z80_b
  3180. ;0xC1 - set 0,(iy+n),c
  3181. ldy #n ;- set 0,(iy+n),c
  3182. lda (z80_iy),y
  3183. ora $01
  3184. sta (z80_iy),y
  3185. sta z80_c
  3186. ;0xC2 - set 0,(iy+n),d
  3187. ldy #n ;- set 0,(iy+n),d
  3188. lda (z80_iy),y
  3189. ora $01
  3190. sta (z80_iy),y
  3191. sta z80_d
  3192. ;0xC3 - set 0,(iy+n),e
  3193. ldy #n ;- set 0,(iy+n),e
  3194. lda (z80_iy),y
  3195. ora $01
  3196. sta (z80_iy),y
  3197. sta z80_e
  3198. ;0xC4 - set 0,(iy+n),h
  3199. ldy #n ;- set 0,(iy+n),h
  3200. lda (z80_iy),y
  3201. ora $01
  3202. sta (z80_iy),y
  3203. sta z80_h
  3204. ;0xC5 - set 0,(iy+n),l
  3205. ldy #n ;- set 0,(iy+n),l
  3206. lda (z80_iy),y
  3207. ora $01
  3208. sta (z80_iy),y
  3209. sta z80_l
  3210. ;0xC6 - set 0,(iy+n)
  3211. ldy #n ;- set 0,(iy+n)
  3212. lda (z80_iy),y
  3213. ora $01
  3214. sta (z80_iy),y
  3215. ;0xC7 - set 0,(iy+n),a
  3216. ldy #n ;- set 0,(iy+n),a
  3217. lda (z80_iy),y
  3218. ora $01
  3219. sta (z80_iy),y
  3220. sta z80_a
  3221. ;0xC8 - set 1,(iy+n),b
  3222. ldy #n ;- set 1,(iy+n),b
  3223. lda (z80_iy),y
  3224. ora $02
  3225. sta (z80_iy),y
  3226. sta z80_b
  3227. ;0xC9 - set 1,(iy+n),c
  3228. ldy #n ;- set 1,(iy+n),c
  3229. lda (z80_iy),y
  3230. ora $02
  3231. sta (z80_iy),y
  3232. sta z80_c
  3233. ;0xCA - set 1,(iy+n),d
  3234. ldy #n ;- set 1,(iy+n),d
  3235. lda (z80_iy),y
  3236. ora $02
  3237. sta (z80_iy),y
  3238. sta z80_d
  3239. ;0xCB - set 1,(iy+n),e
  3240. ldy #n ;- set 1,(iy+n),e
  3241. lda (z80_iy),y
  3242. ora $02
  3243. sta (z80_iy),y
  3244. sta z80_e
  3245. ;0xCC - set 1,(iy+n),h
  3246. ldy #n ;- set 1,(iy+n),h
  3247. lda (z80_iy),y
  3248. ora $02
  3249. sta (z80_iy),y
  3250. sta z80_h
  3251. ;0xCD - set 1,(iy+n),l
  3252. ldy #n ;- set 1,(iy+n),l
  3253. lda (z80_iy),y
  3254. ora $02
  3255. sta (z80_iy),y
  3256. sta z80_l
  3257. ;0xCE - set 1,(iy+n)
  3258. ldy #n ;- set 1,(iy+n)
  3259. lda (z80_iy),y
  3260. ora $02
  3261. sta (z80_iy),y
  3262. ;0xCF - set 1,(iy+n),a
  3263. ldy #n ;- set 1,(iy+n),a
  3264. lda (z80_iy),y
  3265. ora $02
  3266. sta (z80_iy),y
  3267. sta z80_a
  3268. ;0xD0 - set 2,(iy+n),b
  3269. ldy #n ;- set 2,(iy+n),b
  3270. lda (z80_iy),y
  3271. ora $04
  3272. sta (z80_iy),y
  3273. sta z80_b
  3274. ;0xD1 - set 2,(iy+n),c
  3275. ldy #n ;- set 2,(iy+n),c
  3276. lda (z80_iy),y
  3277. ora $04
  3278. sta (z80_iy),y
  3279. sta z80_c
  3280. ;0xD2 - set 2,(iy+n),d
  3281. ldy #n ;- set 2,(iy+n),d
  3282. lda (z80_iy),y
  3283. ora $04
  3284. sta (z80_iy),y
  3285. sta z80_d
  3286. ;0xD3 - set 2,(iy+n),e
  3287. ldy #n ;- set 2,(iy+n),e
  3288. lda (z80_iy),y
  3289. ora $04
  3290. sta (z80_iy),y
  3291. sta z80_e
  3292. ;0xD4 - set 2,(iy+n),h
  3293. ldy #n ;- set 2,(iy+n),h
  3294. lda (z80_iy),y
  3295. ora $04
  3296. sta (z80_iy),y
  3297. sta z80_h
  3298. ;0xD5 - set 2,(iy+n),l
  3299. ldy #n ;- set 2,(iy+n),l
  3300. lda (z80_iy),y
  3301. ora $04
  3302. sta (z80_iy),y
  3303. sta z80_l
  3304. ;0xD6 - set 2,(iy+n)
  3305. ldy #n ;- set 2,(iy+n)
  3306. lda (z80_iy),y
  3307. ora $04
  3308. sta (z80_iy),y
  3309. ;0xD7 - set 2,(iy+n),a
  3310. ldy #n ;- set 2,(iy+n),a
  3311. lda (z80_iy),y
  3312. ora $04
  3313. sta (z80_iy),y
  3314. sta z80_a
  3315. ;0xD8 - set 3,(iy+n),b
  3316. ldy #n ;- set 3,(iy+n),b
  3317. lda (z80_iy),y
  3318. ora $08
  3319. sta (z80_iy),y
  3320. sta z80_b
  3321. ;0xD9 - set 3,(iy+n),c
  3322. ldy #n ;- set 3,(iy+n),c
  3323. lda (z80_iy),y
  3324. ora $08
  3325. sta (z80_iy),y
  3326. sta z80_c
  3327. ;0xDA - set 3,(iy+n),d
  3328. ldy #n ;- set 3,(iy+n),d
  3329. lda (z80_iy),y
  3330. ora $08
  3331. sta (z80_iy),y
  3332. sta z80_d
  3333. ;0xDB - set 3,(iy+n),e
  3334. ldy #n ;- set 3,(iy+n),e
  3335. lda (z80_iy),y
  3336. ora $08
  3337. sta (z80_iy),y
  3338. sta z80_e
  3339. ;0xDC - set 3,(iy+n),h
  3340. ldy #n ;- set 3,(iy+n),h
  3341. lda (z80_iy),y
  3342. ora $08
  3343. sta (z80_iy),y
  3344. sta z80_h
  3345. ;0xDD - set 3,(iy+n),l
  3346. ldy #n ;- set 3,(iy+n),l
  3347. lda (z80_iy),y
  3348. ora $08
  3349. sta (z80_iy),y
  3350. sta z80_l
  3351. ;0xDE - set 3,(iy+n)
  3352. ldy #n ;- set 3,(iy+n)
  3353. lda (z80_iy),y
  3354. ora $08
  3355. sta (z80_iy),y
  3356. ;0xDF - set 3,(iy+n),a
  3357. ldy #n ;- set 3,(iy+n),a
  3358. lda (z80_iy),y
  3359. ora $08
  3360. sta (z80_iy),y
  3361. sta z80_a
  3362. ;0xE0 - set 4,(iy+n),b
  3363. ldy #n ;- set 4,(iy+n),b
  3364. lda (z80_iy),y
  3365. ora $10
  3366. sta (z80_iy),y
  3367. sta z80_b
  3368. ;0xE1 - set 4,(iy+n),c
  3369. ldy #n ;- set 4,(iy+n),c
  3370. lda (z80_iy),y
  3371. ora $10
  3372. sta (z80_iy),y
  3373. sta z80_c
  3374. ;0xE2 - set 4,(iy+n),d
  3375. ldy #n ;- set 4,(iy+n),d
  3376. lda (z80_iy),y
  3377. ora $10
  3378. sta (z80_iy),y
  3379. sta z80_d
  3380. ;0xE3 - set 4,(iy+n),e
  3381. ldy #n ;- set 4,(iy+n),e
  3382. lda (z80_iy),y
  3383. ora $10
  3384. sta (z80_iy),y
  3385. sta z80_e
  3386. ;0xE4 - set 4,(iy+n),h
  3387. ldy #n ;- set 4,(iy+n),h
  3388. lda (z80_iy),y
  3389. ora $10
  3390. sta (z80_iy),y
  3391. sta z80_h
  3392. ;0xE5 - set 4,(iy+n),l
  3393. ldy #n ;- set 4,(iy+n),l
  3394. lda (z80_iy),y
  3395. ora $10
  3396. sta (z80_iy),y
  3397. sta z80_l
  3398. ;0xE6 - set 4,(iy+n)
  3399. ldy #n ;- set 4,(iy+n)
  3400. lda (z80_iy),y
  3401. ora $10
  3402. sta (z80_iy),y
  3403. ;0xE7 - set 4,(iy+n),a
  3404. ldy #n ;- set 4,(iy+n),a
  3405. lda (z80_iy),y
  3406. ora $10
  3407. sta (z80_iy),y
  3408. sta z80_a
  3409. ;0xE8 - set 5,(iy+n),b
  3410. ldy #n ;- set 5,(iy+n),b
  3411. lda (z80_iy),y
  3412. ora $20
  3413. sta (z80_iy),y
  3414. sta z80_b
  3415. ;0xE9 - set 5,(iy+n),c
  3416. ldy #n ;- set 5,(iy+n),c
  3417. lda (z80_iy),y
  3418. ora $20
  3419. sta (z80_iy),y
  3420. sta z80_c
  3421. ;0xEA - set 5,(iy+n),d
  3422. ldy #n ;- set 5,(iy+n),d
  3423. lda (z80_iy),y
  3424. ora $20
  3425. sta (z80_iy),y
  3426. sta z80_d
  3427. ;0xEB - set 5,(iy+n),e
  3428. ldy #n ;- set 5,(iy+n),e
  3429. lda (z80_iy),y
  3430. ora $20
  3431. sta (z80_iy),y
  3432. sta z80_e
  3433. ;0xEC - set 5,(iy+n),h
  3434. ldy #n ;- set 5,(iy+n),h
  3435. lda (z80_iy),y
  3436. ora $20
  3437. sta (z80_iy),y
  3438. sta z80_h
  3439. ;0xED - set 5,(iy+n),l
  3440. ldy #n ;- set 5,(iy+n),l
  3441. lda (z80_iy),y
  3442. ora $20
  3443. sta (z80_iy),y
  3444. sta z80_l
  3445. ;0xEE - set 5,(iy+n)
  3446. ldy #n ;- set 5,(iy+n)
  3447. lda (z80_iy),y
  3448. ora $20
  3449. sta (z80_iy),y
  3450. ;0xEF - set 5,(iy+n),a
  3451. ldy #n ;- set 5,(iy+n),a
  3452. lda (z80_iy),y
  3453. ora $20
  3454. sta (z80_iy),y
  3455. sta z80_a
  3456. ;0xF0 - set 6,(iy+n),b
  3457. ldy #n ;- set 6,(iy+n),b
  3458. lda (z80_iy),y
  3459. ora $40
  3460. sta (z80_iy),y
  3461. sta z80_b
  3462. ;0xF1 - set 6,(iy+n),c
  3463. ldy #n ;- set 6,(iy+n),c
  3464. lda (z80_iy),y
  3465. ora $40
  3466. sta (z80_iy),y
  3467. sta z80_c
  3468. ;0xF2 - set 6,(iy+n),d
  3469. ldy #n ;- set 6,(iy+n),d
  3470. lda (z80_iy),y
  3471. ora $40
  3472. sta (z80_iy),y
  3473. sta z80_d
  3474. ;0xF3 - set 6,(iy+n),e
  3475. ldy #n ;- set 6,(iy+n),e
  3476. lda (z80_iy),y
  3477. ora $40
  3478. sta (z80_iy),y
  3479. sta z80_e
  3480. ;0xF4 - set 6,(iy+n),h
  3481. ldy #n ;- set 6,(iy+n),h
  3482. lda (z80_iy),y
  3483. ora $40
  3484. sta (z80_iy),y
  3485. sta z80_h
  3486. ;0xF5 - set 6,(iy+n),l
  3487. ldy #n ;- set 6,(iy+n),l
  3488. lda (z80_iy),y
  3489. ora $40
  3490. sta (z80_iy),y
  3491. sta z80_l
  3492. ;0xF6 - set 6,(iy+n)
  3493. ldy #n ;- set 6,(iy+n)
  3494. lda (z80_iy),y
  3495. ora $40
  3496. sta (z80_iy),y
  3497. ;0xF7 - set 6,(iy+n),a
  3498. ldy #n ;- set 6,(iy+n),a
  3499. lda (z80_iy),y
  3500. ora $40
  3501. sta (z80_iy),y
  3502. sta z80_a
  3503. ;0xF8 - set 7,(iy+n),b
  3504. ldy #n ;- set 7,(iy+n),b
  3505. lda (z80_iy),y
  3506. ora $80
  3507. sta (z80_iy),y
  3508. sta z80_b
  3509. ;0xF9 - set 7,(iy+n),c
  3510. ldy #n ;- set 7,(iy+n),c
  3511. lda (z80_iy),y
  3512. ora $80
  3513. sta (z80_iy),y
  3514. sta z80_c
  3515. ;0xFA - set 7,(iy+n),d
  3516. ldy #n ;- set 7,(iy+n),d
  3517. lda (z80_iy),y
  3518. ora $80
  3519. sta (z80_iy),y
  3520. sta z80_d
  3521. ;0xFB - set 7,(iy+n),e
  3522. ldy #n ;- set 7,(iy+n),e
  3523. lda (z80_iy),y
  3524. ora $80
  3525. sta (z80_iy),y
  3526. sta z80_e
  3527. ;0xFC - set 7,(iy+n),h
  3528. ldy #n ;- set 7,(iy+n),h
  3529. lda (z80_iy),y
  3530. ora $80
  3531. sta (z80_iy),y
  3532. sta z80_h
  3533. ;0xFD - set 7,(iy+n),l
  3534. ldy #n ;- set 7,(iy+n),l
  3535. lda (z80_iy),y
  3536. ora $80
  3537. sta (z80_iy),y
  3538. sta z80_l
  3539. ;0xFE - set 7,(iy+n)
  3540. ldy #n ;- set 7,(iy+n)
  3541. lda (z80_iy),y
  3542. ora $80
  3543. sta (z80_iy),y
  3544. ;0xFF - set 7,(iy+n),a
  3545. ldy #n ;- set 7,(iy+n),a
  3546. lda (z80_iy),y
  3547. ora $80
  3548. sta (z80_iy),y
  3549. sta z80_a
  3550. ;---------------------------------------------------