rubygb 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.gitignore +5 -0
  4. data/.travis.yml +20 -0
  5. data/CHANGELOG.md +6 -0
  6. data/Gemfile +5 -0
  7. data/Gemfile.lock +23 -0
  8. data/MIT-LICENSE.txt +53 -0
  9. data/README.md +30 -0
  10. data/Rakefile +30 -0
  11. data/bin/rubygb +5 -0
  12. data/lib/galp/AND.GIF +0 -0
  13. data/lib/galp/ARROW.GIF +0 -0
  14. data/lib/galp/C.BAT +5 -0
  15. data/lib/galp/CHANGES.TXT +5 -0
  16. data/lib/galp/EXAMPLE.LNK +7 -0
  17. data/lib/galp/EXAMPLE1.TXT +266 -0
  18. data/lib/galp/GBHW.TXT +645 -0
  19. data/lib/galp/GBSPEC.TXT +1761 -0
  20. data/lib/galp/IBMPC1.TXT +2400 -0
  21. data/lib/galp/INDEX.HTM +23 -0
  22. data/lib/galp/INSTR.HTM +563 -0
  23. data/lib/galp/MEM1.HTM +199 -0
  24. data/lib/galp/MEMORY.TXT +160 -0
  25. data/lib/galp/OPCODES.HTM +351 -0
  26. data/lib/galp/OR.GIF +0 -0
  27. data/lib/galp/README.TXT +4 -0
  28. data/lib/galp/REGS.HTM +77 -0
  29. data/lib/galp/RL.GIF +0 -0
  30. data/lib/galp/RLC.GIF +0 -0
  31. data/lib/galp/RR.GIF +0 -0
  32. data/lib/galp/RRC.GIF +0 -0
  33. data/lib/galp/SETUP.BAT +7 -0
  34. data/lib/galp/SLA.GIF +0 -0
  35. data/lib/galp/SRA.GIF +0 -0
  36. data/lib/galp/SRL.GIF +0 -0
  37. data/lib/galp/START.HTM +24 -0
  38. data/lib/galp/SWAP.GIF +0 -0
  39. data/lib/galp/VID1.HTM +34 -0
  40. data/lib/galp/XOR.GIF +0 -0
  41. data/lib/rgbds/rgbasm +0 -0
  42. data/lib/rgbds/rgbfix +0 -0
  43. data/lib/rgbds/rgblink +0 -0
  44. data/lib/rubygb/cli.rb +11 -0
  45. data/lib/rubygb/rubygb.rb +15 -0
  46. data/lib/rubygb/version.rb +4 -0
  47. data/lib/rubygb.rb +7 -0
  48. data/rubygb.gemspec +23 -0
  49. data/scrap/basic.gb +0 -0
  50. data/scrap/basic.map +55 -0
  51. data/scrap/basic.obj +0 -0
  52. data/scrap/basic.s +176 -0
  53. data/scrap/basic.sym +8 -0
  54. data/spec/basic.s +176 -0
  55. data/spec/rubygb_spec.rb +19 -0
  56. metadata +129 -0
@@ -0,0 +1,23 @@
1
+ <!DOCTYPE HTML PUBLIC "-//SQ//DTD HTML 2.0 HoTMetaL + extensions//EN">
2
+ <HTML><HEAD><TITLE>GameBoy Assembly Language Primer - Index</TITLE></HEAD>
3
+ <BODY><CENTER><H2>GameBoy Assembly Language Primer (GALP) V1.0</H2><BR><H2>by
4
+ GABY (GAmeBoY)</H2></CENTER>
5
+ <HR>
6
+ <CENTER><H2>Table of Contents</H2></CENTER>
7
+ <UL>
8
+ <LI><A HREF="start.htm">What do I need to get started ?</A> </LI>
9
+ <LI>Examples<UL>
10
+ <LI><A HREF="example1.txt">#1 - Print &quot;Hello World!&quot; to the screen.</A></LI>
11
+ </UL> </LI>
12
+ <LI>GameBoy Architecture<UL>
13
+ <LI><A HREF="regs.htm">CPU Registers</A></LI>
14
+ <LI><A HREF="instr.htm">CPU Instructions (Detailed)</A></LI>
15
+ <LI><A HREF="opcodes.htm">CPU Instructions (Timing)</A></LI>
16
+ <LI><A HREF="mem1.htm">Memory Map</A></LI>
17
+ <LI><A HREF="gbspec.txt">kOOPa document, 11-Mar-98</A></LI></UL> </LI>
18
+ <LI>Library Include Files<UL>
19
+ <LI><A HREF="gbhw.txt">Hardware Defines</A></LI>
20
+ <LI><A HREF="memory.txt">Memory Routines</A></LI>
21
+ <LI><A HREF="ibmpc1.txt">IBM-PC Font Macro</A></LI></UL> </LI>
22
+ <LI><A HREF="changes.txt">What's new in this version GALP ?</A> </LI></UL>
23
+ <HR></BODY></HTML>
@@ -0,0 +1,563 @@
1
+ <!DOCTYPE HTML PUBLIC "-//SQ//DTD HTML 2.0 HoTMetaL + extensions//EN">
2
+ <HTML><HEAD><TITLE>GameBoy Assembly Language Primer - Instructions</TITLE></HEAD>
3
+ <BODY><CENTER><H2>GameBoy Assembly Language Primer</H2></CENTER>
4
+ <HR>
5
+ <CENTER><H2>GameBoy Instruction Set</H2></CENTER>
6
+ <PRE> <STRONG>ADC A,</STRONG>n - Add n + Carry flag to A.
7
+
8
+ n = <STRONG>A,B,C,D,E,H,L,[HL],</STRONG>#
9
+
10
+ Flags affected:
11
+ Z - Set if result is zero.
12
+ N - Reset.
13
+ H - Set if carry from bit 3.
14
+ C - Set if carry from bit 7.
15
+
16
+
17
+ <STRONG>ADD A,</STRONG>n - Add n to A.
18
+
19
+ n = <STRONG>A,B,C,D,E,H,L,[HL],</STRONG>#
20
+
21
+ Flags affected:
22
+ Z - Set if result is zero.
23
+ N - Reset.
24
+ H - Set if carry from bit 3.
25
+ C - Set if carry from bit 7.
26
+
27
+
28
+ <STRONG>ADD HL,</STRONG>nn - Add n to HL.
29
+
30
+ nn = <STRONG>BC,DE,HL</STRONG>
31
+
32
+ Flags affected:
33
+ Z - Not affected.
34
+ N - Reset.
35
+ H - Set if carry from bit 11.
36
+ C - Set if carry from bit 15.
37
+
38
+
39
+ <STRONG>ADD SP,</STRONG>n - Add n to Stack Pointer [SP].
40
+
41
+ n = one byte signed immediate value.
42
+
43
+ Flags affected:
44
+ Z - Reset.
45
+ N - Reset.
46
+ H - Set or reset according to operation.
47
+ C - Set or reset according to operation.
48
+
49
+
50
+ <STRONG>AND </STRONG>n - Logically AND n with A, result in A.
51
+
52
+ n = <STRONG>A,B,C,D,E,H,L,[HL],</STRONG>#
53
+
54
+ Flags affected:
55
+ Z - Set if result is zero.
56
+ N - Reset.
57
+ H - Set.
58
+ C - Reset.
59
+
60
+
61
+ <STRONG>BIT </STRONG>b,r - Test bit b in register r.
62
+
63
+ b = <STRONG>0</STRONG> - <STRONG>7</STRONG>, r = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
64
+
65
+ Flags affected:
66
+ Z - Set if bit b of register r is 0.
67
+ N - Reset.
68
+ H - Set.
69
+ C - Not affected.
70
+
71
+
72
+ <STRONG>CALL </STRONG>n - Push address of next instruction onto
73
+ stack and then jump to address n.
74
+
75
+
76
+ <STRONG>CALL </STRONG>cc,n - Call address n if following condition
77
+ is true:
78
+
79
+ cc = <STRONG>NZ</STRONG>, Call if Z flag is reset.
80
+ cc = <STRONG>Z</STRONG>, Call if Z flag is set.
81
+ cc = <STRONG>NC</STRONG>, Call if C flag is reset.
82
+ cc = <STRONG>C</STRONG>, Call if C flag is set.
83
+
84
+
85
+ <STRONG>CCF</STRONG> - Complement carry flag.
86
+
87
+ If C flag is set, then reset it.
88
+ If C flag is reset, then set it.
89
+
90
+
91
+ Flags affected:
92
+ Z - Not affected.
93
+ N - Reset.
94
+ H - Reset.
95
+ C - Complemented.
96
+
97
+
98
+ <STRONG>CP </STRONG>n - Compare A with n.
99
+
100
+ This is basically an A - n subtraction
101
+ instruction but the results are thrown away.
102
+
103
+ n = <STRONG>A,B,C,D,E,H,L,[HL],</STRONG>#
104
+
105
+ Flags affected:
106
+ Z - Set if result is zero. [Set if A = n.]
107
+ N - Set.
108
+ H - Set if no borrow from bit 4.
109
+ C - Set for no borrow. [Set if A &lt; n.]
110
+
111
+
112
+ <STRONG>CPL</STRONG> - Complement A register. [Flip all bits.]
113
+
114
+ Flags affected:
115
+ Z - Not affected.
116
+ N - Set.
117
+ H - Set.
118
+ C - Not affected.
119
+
120
+
121
+ <STRONG>DAA</STRONG> - Decimal adjust register A.
122
+
123
+ This instruction adjusts register A so that the
124
+ correct representation of Binary Coded Decimal
125
+ [BCD] is obtained.
126
+
127
+ Flags affected:
128
+ Z - Set if register A is zero.
129
+ N - Not affected.
130
+ H - Reset.
131
+ C - Set or reset according to operation.
132
+
133
+
134
+ <STRONG>DEC </STRONG>n - Decrement register n.
135
+
136
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
137
+
138
+ Flags affected:
139
+ Z - Set if reselt is zero.
140
+ N - Set.
141
+ H - Set if no borrow from bit 4.
142
+ C - Not affected.
143
+
144
+
145
+ <STRONG>DEC </STRONG>nn - Decrement register nn.
146
+
147
+ nn = <STRONG>BC,DE,HL,SP</STRONG>
148
+
149
+ Flags affected:
150
+ None
151
+
152
+
153
+ <STRONG>DI</STRONG> - Disable interrupts.
154
+
155
+ This intruction disables interrupts but not immediately.
156
+ Interrupts are disabled after instruction after DI is
157
+ executed.
158
+
159
+ Flags affected:
160
+ None.
161
+
162
+
163
+ <STRONG>EI</STRONG> - Enable interrupts.
164
+
165
+ This intruction enables interrupts but not immediately.
166
+ Interrupts are enabled after instruction after EI is
167
+ executed.
168
+
169
+ Flags affected:
170
+ None.
171
+
172
+
173
+ <STRONG>INC</STRONG> n - Increment register n.
174
+
175
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
176
+
177
+ Flags affected:
178
+ Z - Set if result is zero.
179
+ N - Reset.
180
+ H - Set if carry from bit 3.
181
+ C - Not affected.
182
+
183
+
184
+ <STRONG>INC</STRONG> nn - Increment register nn.
185
+
186
+ nn = <STRONG>BC,DE,HL,SP</STRONG>
187
+
188
+ Flags affected:
189
+ None.
190
+
191
+
192
+ <STRONG>JP</STRONG> n - Jump to address n.
193
+
194
+ n = two byte immediate value. [LS byte first.]
195
+
196
+
197
+ <STRONG>JP</STRONG> cc,n - Jump to address n if following condition
198
+ is true:
199
+
200
+ n = two byte immediate value. [LS byte first.]
201
+
202
+ cc = <STRONG>NZ</STRONG>, Jump if Z flag is reset.
203
+ cc = <STRONG>Z</STRONG>, Jump if Z flag is set.
204
+ cc = <STRONG>NC</STRONG>, Jump if C flag is reset.
205
+ cc = <STRONG>C</STRONG>, Jump if C flag is set.
206
+
207
+
208
+ <STRONG>JP [HL]</STRONG> - Jump to address contained in HL.
209
+
210
+
211
+ <STRONG>JR</STRONG> n - Add n to current address and jump to it.
212
+
213
+ n = one byte signed immediate value
214
+
215
+
216
+ <STRONG>JR</STRONG> cc,n - If following condition is true then
217
+ add n to current address and jump to it:
218
+
219
+ n = one byte signed immediate value
220
+
221
+ cc = <STRONG>NZ</STRONG>, Jump if Z flag is reset.
222
+ cc = <STRONG>Z</STRONG>, Jump if Z flag is set.
223
+ cc = <STRONG>NC</STRONG>, Jump if C flag is reset.
224
+ cc = <STRONG>C</STRONG>, Jump if C flag is set.
225
+
226
+
227
+ <STRONG>HALT</STRONG> - Power down CPU until an interrupt occurs.
228
+
229
+
230
+ <STRONG>LD A,</STRONG>n - Put value n into A.
231
+
232
+ n = <STRONG>A,B,C,D,E,H,L,[BC],[DE],[HL],[</STRONG>nnnn<STRONG>]</STRONG>,#
233
+
234
+
235
+ <STRONG>LD</STRONG> n<STRONG>,A</STRONG> - Put value A into n.
236
+
237
+ n = <STRONG>A,B,C,D,E,H,L,[BC],[DE],[HL],[</STRONG>nnnn<STRONG>]</STRONG>,#
238
+
239
+
240
+ <STRONG>LD A,[C]</STRONG> - Put value at address $FF00 + register C into A.
241
+
242
+
243
+ <STRONG>LD A,[HL+]</STRONG> - Same as LD A,[HLI].
244
+
245
+
246
+ <STRONG>LD A,[HL-]</STRONG> - Same as LD A,[HLD].
247
+
248
+
249
+ <STRONG>LD A,[HLI]</STRONG> - Put value at address HL into A. Increment HL.
250
+
251
+
252
+ <STRONG>LD A,[HLD]</STRONG> - Put value at address HL into A. Decrement HL.
253
+
254
+
255
+ <STRONG>LD [C],A</STRONG> - Put A into address $FF00 + register C.
256
+
257
+
258
+ <STRONG>LD [HL+],A</STRONG> - Same as LD [HLI],A.
259
+
260
+
261
+ <STRONG>LD [HL-],A</STRONG> - Same as LD [HLD],A.
262
+
263
+
264
+ <STRONG>LD [HLI],A</STRONG> - Put A into memory address HL. Increment HL.
265
+
266
+
267
+ <STRONG>LD [HLD],A</STRONG> - Put A into memory address HL. Decrement HL.
268
+
269
+
270
+ <STRONG>LD</STRONG> r1,r2 - Put value r2 into r1.
271
+
272
+ r1,r2 = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
273
+
274
+
275
+ <STRONG>LD</STRONG> n,nn - Put value nn into n.
276
+
277
+ n = <STRONG>BC,DE,HL,SP</STRONG>
278
+ nn = 16 bit immediate value
279
+
280
+
281
+ <STRONG>LD HL,SP+</STRONG>n - Same as LDHL SP,n.
282
+
283
+
284
+ <STRONG>LD SP,HL</STRONG> - Put HL into Stack Pointer [SP].
285
+
286
+
287
+ <STRONG>LD [</STRONG>n<STRONG>],SP</STRONG> - Put Stack Pointer [SP] at address n.
288
+
289
+ n = two byte immediate address.
290
+
291
+
292
+ <STRONG>LDD A,[HL]</STRONG> - Same as LD A,[HLD].
293
+
294
+
295
+ <STRONG>LDD [HL],A</STRONG> - Same as LD [HLD],A.
296
+
297
+
298
+ <STRONG>LDH [</STRONG>n<STRONG>],A</STRONG> - Put A into memory address $FF00+n.
299
+
300
+ n = one byte immediate value.
301
+
302
+
303
+ <STRONG>LDH A,[</STRONG>n<STRONG>]</STRONG> - Put memory address $FF00+n into A.
304
+
305
+ n = one byte immediate value.
306
+
307
+
308
+ <STRONG>LDHL SP,</STRONG>n - Put SP + n effective address into HL.
309
+
310
+ n = one byte signed immediate value.
311
+
312
+ Flags affected:
313
+ Z - Reset.
314
+ N - Reset.
315
+ H - Set or reset according to operation.
316
+ C - Set or reset according to operation.
317
+
318
+
319
+ <STRONG>LDI A,[HL]</STRONG> - Same as LD A,[HLI].
320
+
321
+
322
+ <STRONG>LDI [HL],A</STRONG> - Same as LD [HLI],A.
323
+
324
+
325
+ <STRONG>NOP</STRONG> - No operation.
326
+
327
+
328
+ <STRONG>OR</STRONG> n - Logical OR n with register A, result in A.
329
+
330
+ n = <STRONG>A,B,C,D,E,H,L,[HL],</STRONG>#
331
+
332
+ Flags affected:
333
+ Z - Set if result is zero.
334
+ N - Reset.
335
+ H - Reset.
336
+ C - Reset.
337
+
338
+
339
+ <STRONG>POP</STRONG> nn - Pop two bytes off stack into register pair nn.
340
+ Increment Stack Pointer [SP] twice.
341
+
342
+ nn = <STRONG>AF,BC,DE,HL</STRONG>
343
+
344
+
345
+ <STRONG>PUSH</STRONG> nn - Push register pair nn onto stack.
346
+ Decrement Stack Pointer [SP] twice.
347
+
348
+ nn = <STRONG>AF,BC,DE,HL</STRONG>
349
+
350
+
351
+ <STRONG>RES</STRONG> b,r - Reset bit b in register r.
352
+
353
+ b = <STRONG>0</STRONG> - <STRONG>7</STRONG>, r = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
354
+
355
+ Flags affected:
356
+ None.
357
+
358
+
359
+ <STRONG>RET</STRONG> - Pop two bytes from stack &amp; jump to that address.
360
+
361
+
362
+ <STRONG>RET</STRONG> cc - Return if following condition is true:
363
+
364
+ cc = <STRONG>NZ</STRONG>, Return if Z flag is reset.
365
+ cc = <STRONG>Z</STRONG>, Return if Z flag is set.
366
+ cc = <STRONG>NC</STRONG>, Return if C flag is reset.
367
+ cc = <STRONG>C</STRONG>, Return if C flag is set.
368
+
369
+
370
+ <STRONG>RETI</STRONG> - Pop two bytes from stack &amp; jump to that address
371
+ then enable interrupts.
372
+
373
+ <STRONG>RL</STRONG> n - Rotate n left through Carry flag.
374
+
375
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
376
+
377
+ Flags affected:
378
+ Z - Set if result is zero.
379
+ N - Reset.
380
+ H - Reset.
381
+ C - Contains old bit 7 data.
382
+
383
+
384
+ <STRONG>RLA</STRONG> - Rotate A left through Carry flag.
385
+
386
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
387
+
388
+ Flags affected:
389
+ Z - Reset.
390
+ N - Reset.
391
+ H - Reset.
392
+ C - Contains old bit 7 data.
393
+
394
+
395
+ <STRONG>RLC</STRONG> n - Rotate n left. Old bit 7 to Carry flag.
396
+
397
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
398
+
399
+ Flags affected:
400
+ Z - Set if result is zero.
401
+ N - Reset.
402
+ H - Reset.
403
+ C - Contains old bit 7 data.
404
+
405
+
406
+ <STRONG>RLCA</STRONG> - Rotate A left. Old bit 7 to Carry flag.
407
+
408
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
409
+
410
+ Flags affected:
411
+ Z - Reset.
412
+ N - Reset.
413
+ H - Reset.
414
+ C - Contains old bit 7 data.
415
+
416
+
417
+ <STRONG>RR</STRONG> n - Rotate n right through Carry flag.
418
+
419
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
420
+
421
+ Flags affected:
422
+ Z - Set if result is zero.
423
+ N - Reset.
424
+ H - Reset.
425
+ C - Contains old bit 0 data.
426
+
427
+
428
+ <STRONG>RRA</STRONG> - Rotate A right through Carry flag.
429
+
430
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
431
+
432
+ Flags affected:
433
+ Z - Reset.
434
+ N - Reset.
435
+ H - Reset.
436
+ C - Contains old bit 0 data.
437
+
438
+
439
+ <STRONG>RRC</STRONG> n - Rotate n right. Old bit 0 to Carry flag.
440
+
441
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
442
+
443
+ Flags affected:
444
+ Z - Set if result is zero.
445
+ N - Reset.
446
+ H - Reset.
447
+ C - Contains old bit 0 data.
448
+
449
+
450
+ <STRONG>RRCA</STRONG> - Rotate A right. Old bit 0 to Carry flag.
451
+
452
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
453
+
454
+ Flags affected:
455
+ Z - Reset.
456
+ N - Reset.
457
+ H - Reset.
458
+ C - Contains old bit 0 data.
459
+
460
+
461
+ <STRONG>RST</STRONG> n - Push present address onto stack.
462
+ Jump to address $0000 + n.
463
+
464
+ n = <STRONG>$00,$08,$10,$18,$20,$28,$30,$38</STRONG>
465
+
466
+
467
+ <STRONG>SBC A,</STRONG>n - Subtract n + Carry flag from A.
468
+
469
+ n = <STRONG>A,B,C,D,E,H,L,[HL],</STRONG>#
470
+
471
+ Flags affected:
472
+ Z - Set if result is zero.
473
+ N - Set.
474
+ H - Set if no borrow from bit 4.
475
+ C - Set if no borrow.
476
+
477
+
478
+ <STRONG>SCF</STRONG> - Set Carry flag.
479
+
480
+ Flags affected:
481
+ Z - Not affected.
482
+ N - Reset.
483
+ H - Reset.
484
+ C - Set.
485
+
486
+
487
+ <STRONG>SET</STRONG> b,r - Set bit b in register r.
488
+
489
+ b = <STRONG>0</STRONG> - <STRONG>7</STRONG>, r = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
490
+
491
+ Flags affected:
492
+ None.
493
+
494
+
495
+ <STRONG>SLA</STRONG> n - Shift n left into Carry. LSB of n set to 0.
496
+
497
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
498
+
499
+ Flags affected:
500
+ Z - Set if result is zero.
501
+ N - Reset.
502
+ H - Reset.
503
+ C - Contains old bit 7 data.
504
+
505
+
506
+ <STRONG>SRA</STRONG> n - Shift n right into Carry. MSB doesn't change.
507
+
508
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
509
+
510
+ Flags affected:
511
+ Z - Set if result is zero.
512
+ N - Reset.
513
+ H - Reset.
514
+ C - Contains old bit 0 data.
515
+
516
+
517
+ <STRONG>SRL</STRONG> n - Shift n right into Carry. MSB set to 0.
518
+
519
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
520
+
521
+ Flags affected:
522
+ Z - Set if result is zero.
523
+ N - Reset.
524
+ H - Reset.
525
+ C - Contains old bit 0 data.
526
+
527
+ <STRONG>STOP</STRONG> - Halt CPU &amp; LCD display until button press.
528
+
529
+
530
+ <STRONG>SUB</STRONG> n - Subtract n from A.
531
+
532
+ n = <STRONG>A,B,C,D,E,H,L,[HL],</STRONG>#
533
+
534
+ Flags affected:
535
+ Z - Set if result is zero.
536
+ N - Set.
537
+ H - Set if no borrow from bit 4.
538
+ C - Set if no borrow.
539
+
540
+
541
+ <STRONG>SWAP</STRONG> n - Swap upper &amp; lower bits of n.
542
+
543
+ n = <STRONG>A,B,C,D,E,H,L,[HL]</STRONG>
544
+
545
+ Flags affected:
546
+ Z - Set if result is zero.
547
+ N - Reset.
548
+ H - Reset.
549
+ C - Reset.
550
+
551
+
552
+ <STRONG>XOR</STRONG> n - Logical exclusive OR n with
553
+ register A, result in A.
554
+
555
+ n = <STRONG>A,B,C,D,E,H,L,[HL],</STRONG>#
556
+
557
+ Flags affected:
558
+ Z - Set if result is zero.
559
+ N - Reset.
560
+ H - Reset.
561
+ C - Reset.
562
+ </PRE>
563
+ <HR></BODY></HTML>