 | * BLOCK 0000 : PAUSE |
Total size : 3 bytes Pause : 10391 ms Duration block : 00 h 00 m 10 s |
  | * BLOCK 0001 : TURBO LOADING DATA |
Length of PILOT pulse : 2326 Length of SYNC First pulse : 1270 Length of SYNC Second pulse : 1032 Length of ZERO bit pulse : 1172 Length of ONE bit pulse : 2342 Length of PILOT tone : 4098 Used bits in last byte : 8 Data : 263 bytes Total size : 282 bytes
Sum DATA : 1 488
Duration : 4166 ms Pause After this block : 2577 ms Duration block + Pause : 6743 ms Duration block + Pause : 00 h 00 m 06 s | 000000: FC 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000100: 00 63 73 FF FF FF FF .cs....
|
  | * BLOCK 0002 : TURBO LOADING DATA |
Length of PILOT pulse : 2324 Length of SYNC First pulse : 1270 Length of SYNC Second pulse : 1032 Length of ZERO bit pulse : 1168 Length of ONE bit pulse : 2337 Length of PILOT tone : 4096 Used bits in last byte : 8 Data : 21935 bytes Total size : 21954 bytes
Sum DATA : 1 844 306
Duration : 166953 ms Pause After this block : 8099 ms Duration block + Pause : 175052 ms Duration block + Pause : 00 h 02 m 55 s | 000000: FB 06 58 2C 58 FE 7D 2D 58 31 58 3E 58 45 58 4F ..X,X.}-X1X>XEXO
000010: 58 56 58 5D 58 6A 58 71 58 7B 58 82 58 89 58 96 XVX]XjXqX{X.X.X.
000020: 58 9D 58 A7 58 B1 58 BB 58 C2 58 D8 58 00 00 45 X.X.X.X.X.X.X..E
000030: 80 01 00 DF 58 00 3C 5B 00 C4 5D 00 3D 5E 01 00 ....X.<[..].=^..
000040: C3 5E 02 9D 60 01 00 26 61 00 CA 63 00 64 66 01 .^..`..&a..c.df.
000050: 00 07 67 02 06 69 01 00 73 68 02 D1 67 01 00 AB ..g..i..sh..g...
000060: 69 00 92 6C 00 6E 6F 00 9B 70 01 00 C6 71 02 75 i..l.no..p...q.u
000070: 74 01 00 07 75 00 03 78 00 C7 78 01 00 E2 79 02 t...u..x..x...y.
000080: FB 7B 01 00 A4 7C 02 5A 7D 01 00 77 81 00 BA 83 .{...|.Z}..w....
000090: 00 39 86 00 E7 86 01 00 BF 88 02 93 8A 01 00 3C .9.............<
0000A0: 8B 00 79 8D 00 7F 8F 01 00 CE 91 00 02 95 06 76 ..y............v
0000B0: 9C 01 00 99 96 00 A8 98 00 B7 9A 01 00 B6 9B 06 ................
0000C0: 14 96 01 00 05 9D 00 63 9F 00 29 A1 00 D5 A2 00 .......c..).....
0000D0: CC A4 00 57 A6 00 5D A8 01 00 84 A9 02 3D AB 01 ...W..]......=..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 4A 55 4D 50 53 A0 A0 20 54 68 65 20 61 73 70 JUMPS.. The asp
000100: 65 7D A3 63 74 20 20 6F 66 20 61 20 63 6F 6D 70 e}£ct of a comp
000110: 75 74 65 72 20 74 68 61 74 20 6D 61 6B 65 73 20 uter that makes
000120: 69 74 6D 6F 72 65 20 74 68 61 6E 20 61 20 63 61 itmore than a ca
000130: 6C 63 75 6C 61 74 6F 72 20 69 73 20 69 74 73 20 lculator is its
000140: 61 62 69 6C 69 74 79 20 74 6F 63 68 61 6E 67 65 ability tochange
000150: 20 69 74 73 20 20 73 65 71 75 65 6E 63 65 20 6F its sequence o
000160: 66 20 6F 70 65 72 61 74 69 6F 6E 73 20 61 73 20 f operations as
000170: 20 61 72 65 73 75 6C 74 20 6F 66 20 20 65 61 72 aresult of ear
000180: 6C 69 65 72 20 69 6E 73 74 72 75 63 74 69 6F 6E lier instruction
000190: 73 2E 20 20 57 69 74 68 69 6E 74 68 65 20 5A 38 s. Withinthe Z8
0001A0: 30 20 20 74 68 65 72 65 20 20 69 73 20 61 20 63 0 there is a c
0001B0: 6F 75 6E 74 65 72 20 20 63 61 6C 6C 65 64 20 74 ounter called t
0001C0: 68 65 50 72 6F 67 72 61 6D 20 20 43 6F 75 6E 74 heProgram Count
0001D0: 65 72 20 20 6F 72 20 20 50 43 2E 20 20 54 68 69 er or PC. Thi
0001E0: 73 20 20 63 6F 75 6E 74 65 72 6B 65 65 70 73 20 s counterkeeps
0001F0: 20 74 72 61 63 6B 20 20 6F 66 20 20 77 68 69 63 track of whic
000200: 68 20 20 DE 22 69 6E 73 74 72 75 63 74 69 6F 6E h ."instruction
000210: 20 74 68 65 70 72 6F 63 65 73 73 6F 72 20 20 69 theprocessor i
000220: 73 20 20 74 6F 20 20 20 70 65 72 66 6F 72 6D 20 s to perform
000230: 20 20 6E 65 78 74 2E 20 20 20 42 79 6D 6F 64 69 next. Bymodi
000240: 66 79 69 6E 67 20 20 69 74 73 20 20 63 6F 6E 74 fying its cont
000250: 65 6E 74 73 2C 20 74 68 65 20 20 70 72 6F 63 65 ents, the proce
000260: 73 73 6F 72 63 61 6E 20 20 62 65 20 20 6A 75 6D ssorcan be jum
000270: 70 65 64 20 20 74 6F 20 20 61 6E 79 20 20 69 6E ped to any in
000280: 73 74 72 75 63 74 69 6F 6E 20 69 6E 6D 65 6D 6F struction inmemo
000290: 72 79 2E A0 A0 20 54 68 65 20 73 69 6D 70 6C 65 ry... The simple
0002A0: 73 74 20 6A 75 6D 70 20 69 73 20 4A 50 20 6E 6E st jump is JP nn
0002B0: 2C 20 77 68 65 72 65 20 6E 6E 20 69 73 74 68 65 , where nn isthe
0002C0: 20 61 64 64 72 65 73 73 20 74 6F 20 20 77 68 69 address to whi
0002D0: 63 68 20 74 68 65 20 20 70 72 6F 67 72 61 6D 20 ch the program
0002E0: 69 73 20 74 6F 6A 75 6D 70 2E 20 54 68 69 73 20 is tojump. This
0002F0: 69 73 20 61 6E 20 75 6E 63 6F 6E 64 69 74 69 6F is an unconditio
000300: 6E 61 6C 20 6A 14 89 75 6D 70 2C 20 74 68 65 50 nal j..ump, theP
000310: 72 6F 67 72 61 6D 20 20 43 6F 75 6E 74 65 72 20 rogram Counter
000320: 61 6C 77 61 79 73 20 6A 75 6D 70 69 6E 67 20 20 always jumping
000330: 74 6F 20 20 74 68 65 61 64 64 72 65 73 73 20 6E to theaddress n
000340: 6E 2E A3 20 54 68 65 20 20 20 6D 6F 72 65 20 20 n.£ The more
000350: 20 70 6F 77 65 72 66 75 6C 20 20 20 6A 75 6D 70 powerful jump
000360: 20 20 20 69 73 20 20 20 74 68 65 63 6F 6E 64 69 is thecondi
000370: 74 69 6F 6E 61 6C 20 20 6A 75 6D 70 2E 20 20 54 tional jump. T
000380: 68 65 20 20 70 72 6F 63 65 73 73 6F 72 20 74 65 he processor te
000390: 73 74 73 74 68 65 20 20 73 74 61 74 65 20 20 6F ststhe state o
0003A0: 66 20 20 61 20 20 66 6C 61 67 2C 20 20 62 65 66 f a flag, bef
0003B0: 6F 72 65 20 20 65 69 74 68 65 72 6A 75 6D 70 69 ore eitherjumpi
0003C0: 6E 67 20 6F 72 20 63 6F 6E 74 69 6E 75 69 6E 67 ng or continuing
0003D0: 20 69 6E 20 20 73 65 71 75 65 6E 63 65 2E A0 A0 in sequence...
0003E0: 20 54 68 65 20 20 63 6F 6E 64 69 74 69 6F 6E 61 The conditiona
0003F0: 6C 20 20 6A 75 6D 70 73 20 20 69 6E 76 6F 6C 76 l jumps involv
000400: 69 6E 67 20 20 74 68 12 9C 65 63 61 72 72 79 20 ing th..ecarry
000410: 61 6E 64 20 7A 65 72 6F 20 66 6C 61 67 73 20 61 and zero flags a
000420: 72 65 3A 2D A0 A0 4A 50 20 4E 43 2C 6E 6E 20 20 re:-..JP NC,nn
000430: 20 20 6A 75 6D 70 20 69 66 20 63 61 72 72 79 20 jump if carry
000440: 66 6C 61 67 20 6E 6F 74 20 73 65 74 A0 4A 50 20 flag not set.JP
000450: 43 2C 6E 6E 20 20 20 20 20 6A 75 6D 70 20 69 66 C,nn jump if
000460: 20 63 61 72 72 79 20 66 6C 61 67 20 73 65 74 A0 carry flag set.
000470: 4A 50 20 4E 5A 2C 6E 6E 20 20 20 20 6A 75 6D 70 JP NZ,nn jump
000480: 20 69 66 20 7A 65 72 6F 20 20 66 6C 61 67 20 6E if zero flag n
000490: 6F 74 20 73 65 74 A0 4A 50 20 5A 2C 6E 6E 20 20 ot set.JP Z,nn
0004A0: 20 20 20 6A 75 6D 70 20 69 66 20 7A 65 72 6F 20 jump if zero
0004B0: 20 66 6C 61 67 20 73 65 74 A0 A0 20 49 6E 64 69 flag set.. Indi
0004C0: 72 65 63 74 20 6A 75 6D 70 73 20 20 61 72 65 20 rect jumps are
0004D0: 20 61 6C 73 6F 20 20 61 76 61 69 6C 61 62 6C 65 also available
0004E0: 20 6F 6E 74 68 65 20 5A 38 30 20 75 73 69 6E 67 onthe Z80 using
0004F0: 20 20 74 68 65 20 20 48 4C 20 20 20 72 65 67 69 the HL regi
000500: 73 74 65 72 20 20 70 61 69 A4 CE 72 2E 54 68 65 ster pai..r.The
000510: 20 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 instruction
000520: 20 4A 50 20 28 48 4C 29 20 20 20 6C 6F 61 64 73 JP (HL) loads
000530: 20 20 74 68 65 70 72 6F 67 72 61 6D 20 63 6F 75 theprogram cou
000540: 6E 74 65 72 20 77 69 74 68 20 74 68 65 20 63 6F nter with the co
000550: 6E 74 65 6E 74 73 20 6F 66 20 74 68 65 48 4C 20 ntents of theHL
000560: 72 65 67 69 73 74 65 72 2E 20 20 54 68 75 73 20 register. Thus
000570: 20 74 68 65 20 61 64 64 72 65 73 73 20 20 6F 66 the address of
000580: 20 20 74 68 65 6E 65 78 74 20 20 69 6E 73 74 72 thenext instr
000590: 75 63 74 69 6F 6E 20 20 74 6F 20 20 62 65 20 20 uction to be
0005A0: 70 65 72 66 6F 72 6D 65 64 20 20 69 73 63 6F 6E performed iscon
0005B0: 74 61 69 6E 65 64 20 77 69 74 68 69 6E 20 74 68 tained within th
0005C0: 65 20 48 4C 20 72 65 67 69 73 74 65 72 2E A3 53 e HL register.£S
0005D0: 69 6E 63 65 20 20 74 68 65 20 63 6F 6E 74 65 6E ince the conten
0005E0: 74 73 20 6F 66 20 74 68 65 20 20 48 4C 20 20 72 ts of the HL r
0005F0: 65 67 69 73 74 65 72 70 61 69 72 20 20 20 63 61 egisterpair ca
000600: 6E 20 20 20 62 65 20 20 74 68 65 26 2D 20 20 72 n be the&- r
000610: 65 73 75 6C 74 20 20 20 6F 66 20 20 20 73 6F 6D esult of som
000620: 65 63 61 6C 63 75 6C 61 74 69 6F 6E 20 74 68 65 ecalculation the
000630: 20 6A 75 6D 70 20 63 61 6E 20 62 65 20 63 6F 6E jump can be con
000640: 64 69 74 69 6F 6E 61 6C 2E A3 20 53 75 6D 6D 61 ditional.£ Summa
000650: 72 79 20 2D 20 6A 75 6D 70 73 A0 A0 4A 50 20 6E ry - jumps..JP n
000660: 6E A0 4A 50 20 28 48 4C 29 A0 A0 4A 50 20 4E 43 n.JP (HL)..JP NC
000670: 2C 6E 6E 20 20 6A 75 6D 70 20 6F 6E 20 6E 6F 20 ,nn jump on no
000680: 63 61 72 72 79 A0 4A 50 20 43 2C 6E 6E 20 20 20 carry.JP C,nn
000690: 6A 75 6D 70 20 6F 6E 20 63 61 72 72 79 A0 4A 50 jump on carry.JP
0006A0: 20 4E 5A 2C 6E 6E 20 20 6A 75 6D 70 20 6F 6E 20 NZ,nn jump on
0006B0: 6E 6F 74 20 7A 65 72 6F A0 4A 50 20 5A 2C 6E 6E not zero.JP Z,nn
0006C0: 20 20 20 6A 75 6D 70 20 6F 6E 20 7A 65 72 6F A3 jump on zero£
0006D0: 20 20 20 20 20 20 20 20 20 45 58 41 4D 50 4C 45 EXAMPLE
0006E0: 53 20 4F 46 20 4A 55 4D 50 53 A0 A0 20 41 6C 74 S OF JUMPS.. Alt
0006F0: 68 6F 75 67 68 20 20 79 6F 75 20 20 63 61 6E 20 hough you can
000700: 20 65 6E 74 65 72 20 20 74 68 65 20 20 19 EB 61 enter the ..a
000710: 64 64 72 65 73 73 77 69 74 68 69 6E 20 74 68 65 ddresswithin the
000720: 20 6A 75 6D 70 20 69 6E 20 20 6E 75 6D 62 65 72 jump in number
000730: 20 20 66 6F 72 6D 2C 20 20 69 66 20 69 74 64 6F form, if itdo
000740: 65 73 20 6E 6F 74 20 65 71 75 61 6C 20 74 68 65 es not equal the
000750: 20 61 64 64 72 65 73 73 20 6F 66 20 20 74 68 65 address of the
000760: 20 73 74 61 72 74 6F 66 20 61 6E 20 20 69 6E 73 startof an ins
000770: 74 72 75 63 74 69 6F 6E 2C 20 20 74 68 65 20 73 truction, the s
000780: 69 6D 75 6C 61 74 6F 72 20 20 77 69 6C 6C 73 74 imulator willst
000790: 6F 70 20 61 74 20 74 68 65 20 20 4A 55 4D 50 2E op at the JUMP.
0007A0: 20 20 54 68 69 73 20 69 73 20 62 65 63 61 75 73 This is becaus
0007B0: 65 20 20 74 68 65 70 72 6F 63 65 73 73 6F 72 20 e theprocessor
0007C0: 77 6F 75 6C 64 20 70 65 72 66 6F 72 6D 20 20 74 would perform t
0007D0: 68 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 69 74 he instructionit
0007E0: 20 66 69 6E 64 73 20 20 61 74 20 20 74 68 61 74 finds at that
0007F0: 20 20 61 64 64 72 65 73 73 20 61 6E 64 20 61 6E address and an
000800: 79 74 68 69 6E 67 63 6F 75 6C 64 20 68 61 70 AD ythingcould hap.
000810: 26 70 65 6E 20 61 6E 64 20 75 73 75 61 6C 6C 79 &pen and usually
000820: 20 64 6F 65 73 2E A0 A0 20 54 6F 20 67 65 74 20 does... To get
000830: 72 6F 75 6E 64 20 74 68 69 73 20 70 72 6F 62 6C round this probl
000840: 65 6D 20 20 75 73 65 20 61 20 6C 61 62 65 6C 2C em use a label,
000850: 64 65 63 6C 61 72 69 6E 67 20 20 69 74 20 20 69 declaring it i
000860: 6E 20 20 74 68 65 20 20 6C 61 62 65 6C 20 20 63 n the label c
000870: 6F 6C 75 6D 6E 20 69 6E 66 72 6F 6E 74 20 6F 66 olumn infront of
000880: 20 74 68 65 20 20 69 6E 73 74 72 75 63 74 69 6F the instructio
000890: 6E 20 20 74 6F 20 77 68 69 63 68 20 20 79 6F 75 n to which you
0008A0: 77 69 73 68 20 74 6F 20 6A 75 6D 70 2E A3 20 4C wish to jump.£ L
0008B0: 44 20 48 4C 2C 53 54 4F 52 45 A0 20 20 4C 44 20 D HL,STORE. LD
0008C0: 41 2C 33 A0 20 4C 4F 4F 50 31 20 4C 44 20 28 48 A,3. LOOP1 LD (H
0008D0: 4C 29 2C 41 A0 20 20 49 4E 43 20 41 A0 20 20 43 L),A. INC A. C
0008E0: 50 20 38 A0 20 20 4A 50 20 4E 5A 2C 4C 4F 4F 50 P 8. JP NZ,LOOP
0008F0: 31 A0 20 20 A0 20 4C 4F 4F 50 32 20 44 45 43 20 1. . LOOP2 DEC
000900: 28 48 4C 29 A0 20 20 4A 50 20 4E 5A 2C 4C 4F 4F (HL). JP NZ,LOO
000910: 50 DB 71 32 A0 20 20 52 45 54 A0 20 20 A0 20 20 P.q2. RET. .
000920: A0 20 53 54 4F 52 45 20 44 45 46 42 20 30 A0 20 . STORE DEFB 0.
000930: 20 A0 20 20 A0 20 20 A0 20 20 20 20 20 20 20 20 . . .
000940: 20 20 20 20 52 45 4C 41 54 49 56 45 20 4A 55 4D RELATIVE JUM
000950: 50 53 A0 A0 20 4F 6E 65 20 64 69 66 66 69 63 75 PS.. One difficu
000960: 6C 74 79 20 77 69 74 68 20 74 68 65 20 20 61 62 lty with the ab
000970: 6F 76 65 20 74 79 70 65 73 20 6F 66 6A 75 6D 70 ove types ofjump
000980: 20 69 73 20 74 68 61 74 2C 20 20 69 66 20 20 74 is that, if t
000990: 68 65 20 20 73 74 61 72 74 20 61 64 64 72 65 73 he start addres
0009A0: 73 20 6F 66 74 68 65 20 70 72 6F 67 72 61 6D 20 s ofthe program
0009B0: 20 77 65 72 65 20 63 68 61 6E 67 65 64 2C 20 61 were changed, a
0009C0: 6C 6C 20 74 68 65 20 20 6A 75 6D 70 61 64 64 72 ll the jumpaddr
0009D0: 65 73 73 65 73 20 20 77 6F 75 6C 64 20 20 72 65 esses would re
0009E0: 71 75 69 72 65 20 20 6D 6F 64 69 66 69 63 61 74 quire modificat
0009F0: 69 6F 6E 2E 52 65 6C 61 74 69 76 65 20 20 6A 75 ion.Relative ju
000A00: 6D 70 73 20 20 64 6F 20 20 20 6E 6F 74 20 20 20 mps do not
000A10: 68 61 76 06 EE 65 20 20 20 20 74 68 69 73 64 69 hav..e thisdi
000A20: 66 66 69 63 75 6C 74 79 2E 20 54 68 65 20 61 62 fficulty. The ab
000A30: 73 6F 6C 75 74 65 20 61 64 64 72 65 73 73 20 69 solute address i
000A40: 73 20 20 6E 6F 74 73 74 6F 72 65 64 20 20 77 69 s notstored wi
000A50: 74 68 20 20 74 68 65 20 69 6E 73 74 72 75 63 74 th the instruct
000A60: 69 6F 6E 2E 20 49 74 20 69 73 20 74 68 65 64 69 ion. It is thedi
000A70: 66 66 65 72 65 6E 63 65 20 20 62 65 74 77 65 65 fference betwee
000A80: 6E 20 74 68 65 20 63 75 72 72 65 6E 74 20 63 6F n the current co
000A90: 6E 74 65 6E 74 73 6F 66 20 74 68 65 20 70 72 6F ntentsof the pro
000AA0: 67 72 61 6D 20 20 63 6F 75 6E 74 65 72 20 61 6E gram counter an
000AB0: 64 20 74 68 65 20 20 61 64 64 72 65 73 73 74 6F d the addressto
000AC0: 20 77 68 69 63 68 20 20 77 65 20 77 69 73 68 20 which we wish
000AD0: 74 6F 20 6A 75 6D 70 20 74 68 61 74 20 69 73 20 to jump that is
000AE0: 73 74 6F 72 65 64 77 69 74 68 69 6E 20 20 74 68 storedwithin th
000AF0: 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 2E 20 20 e instruction.
000B00: 52 65 6C 61 74 69 76 65 20 6A 75 6D 70 73 61 72 Relative jumpsar
000B10: 65 20 20 6C 69 6A 8B 6D 69 74 65 64 20 74 6F 20 e lij.mited to
000B20: 20 6A 75 6D 70 69 6E 67 20 20 62 61 63 6B 77 61 jumping backwa
000B30: 72 64 73 20 20 31 32 38 6C 6F 63 61 74 69 6F 6E rds 128location
000B40: 73 20 61 6E 64 20 66 6F 72 77 61 72 64 73 20 31 s and forwards 1
000B50: 32 37 20 6C 6F 63 61 74 69 6F 6E 73 2E A0 A0 20 27 locations...
000B60: 54 68 65 20 6D 6E 65 6D 6F 6E 69 63 20 66 6F 72 The mnemonic for
000B70: 20 20 72 65 6C 61 74 69 76 65 20 6A 75 6D 70 73 relative jumps
000B80: 20 69 73 20 20 4A 52 61 6E 64 20 63 61 6E 20 74 is JRand can t
000B90: 61 6B 65 20 61 6C 6C 20 74 68 65 20 66 6F 72 6D ake all the form
000BA0: 73 20 64 69 73 63 75 73 73 65 64 20 20 73 6F 66 s discussed sof
000BB0: 61 72 20 66 6F 72 20 4A 50 2C 20 69 2E 65 2E 20 ar for JP, i.e.
000BC0: 4A 52 20 2C 20 4A 52 20 4E 43 2C 20 4A 52 20 43 JR , JR NC, JR C
000BD0: 2C 20 4A 52 20 4E 5A 61 6E 64 20 4A 52 20 5A 2E , JR NZand JR Z.
000BE0: A3 20 54 68 65 72 65 20 20 69 73 20 6F 6E 65 20 £ There is one
000BF0: 70 61 72 74 69 63 75 6C 61 72 20 20 72 65 6C 61 particular rela
000C00: 74 69 76 65 20 6A 75 6D 70 69 6E 73 74 72 75 63 tive jumpinstruc
000C10: 74 69 6F 6E 20 74 68 8F F0 61 74 20 69 73 20 70 tion th..at is p
000C20: 61 72 74 69 63 75 6C 61 72 6C 79 20 20 75 73 65 articularly use
000C30: 66 75 6C 6E 61 6D 65 6C 79 20 20 44 65 63 72 65 fulnamely Decre
000C40: 6D 65 6E 74 20 20 61 6E 64 20 4A 75 6D 70 20 6F ment and Jump o
000C50: 6E 20 4E 6F 6E 2D 5A 65 72 6F 2C 6F 72 20 44 4A n Non-Zero,or DJ
000C60: 4E 5A 2E 20 20 20 54 68 65 20 42 20 72 65 67 69 NZ. The B regi
000C70: 73 74 65 72 20 69 73 20 64 65 63 72 65 6D 65 6E ster is decremen
000C80: 74 65 64 61 6E 64 2C 20 20 69 66 20 20 74 68 65 tedand, if the
000C90: 20 20 72 65 73 75 6C 74 20 20 69 73 20 20 6E 6F result is no
000CA0: 74 20 7A 65 72 6F 2C 20 74 68 65 70 72 6F 63 65 t zero, theproce
000CB0: 73 73 6F 72 20 20 70 65 72 66 6F 72 6D 73 20 20 ssor performs
000CC0: 61 20 72 65 6C 61 74 69 76 65 20 20 6A 75 6D 70 a relative jump
000CD0: 20 74 6F 74 68 65 20 63 6F 6D 70 75 74 65 64 20 tothe computed
000CE0: 6E 65 77 20 61 64 64 72 65 73 73 2E 20 49 66 20 new address. If
000CF0: 74 68 65 20 20 72 65 73 75 6C 74 69 73 20 20 7A the resultis z
000D00: 65 72 6F 20 20 74 68 65 6E 20 20 74 68 65 20 20 ero then the
000D10: 6E 65 78 74 20 69 6E 73 74 5A 4D 72 75 63 74 69 next instZMructi
000D20: 6F 6E 20 69 6E 73 65 71 75 65 6E 63 65 20 69 73 on insequence is
000D30: 20 74 61 6B 65 6E 2E 20 20 44 4A 4E 5A 20 20 61 taken. DJNZ a
000D40: 6C 6C 6F 77 73 20 20 75 73 20 20 74 6F 72 65 70 llows us torep
000D50: 65 61 74 20 61 20 73 65 72 69 65 73 20 6F 66 20 eat a series of
000D60: 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 61 20 70 instructions a p
000D70: 72 65 73 65 74 6E 75 6D 62 65 72 20 6F 66 20 74 resetnumber of t
000D80: 69 6D 65 73 2E 20 54 68 65 20 20 6E 75 6D 62 65 imes. The numbe
000D90: 72 20 6F 66 20 20 72 65 70 65 61 74 73 69 73 20 r of repeatsis
000DA0: 20 65 71 75 61 6C 20 20 74 6F 20 20 74 68 65 20 equal to the
000DB0: 20 63 6F 6E 74 65 6E 74 73 20 20 6F 66 20 20 74 contents of t
000DC0: 68 65 20 20 42 72 65 67 69 73 74 65 72 20 77 68 he Bregister wh
000DD0: 65 6E 20 74 68 65 20 20 6C 6F 6F 70 20 69 73 20 en the loop is
000DE0: 20 65 6E 74 65 72 65 64 2C 20 20 73 6F 6C 6F 6E entered, solon
000DF0: 67 20 20 61 73 20 20 74 68 65 20 20 42 20 20 72 g as the B r
000E00: 65 67 69 73 74 65 72 20 64 6F 65 73 20 6E 6F 74 egister does not
000E10: 20 66 6F 72 6D 70 61 72 74 20 6F FC 51 66 20 74 formpart o.Qf t
000E20: 68 65 20 73 65 72 69 65 73 20 6F 66 20 69 6E 73 he series of ins
000E30: 74 72 75 63 74 69 6F 6E 73 2E A0 A0 20 4E 6F 20 tructions... No
000E40: 20 66 6C 61 67 73 20 20 61 72 65 20 20 61 66 66 flags are aff
000E50: 65 63 74 65 64 20 20 62 79 20 20 61 6E 79 20 20 ected by any
000E60: 6A 75 6D 70 69 6E 73 74 72 75 63 74 69 6F 6E 73 jumpinstructions
000E70: 20 69 6E 63 6C 75 64 69 6E 67 20 44 4A 4E 5A 2E including DJNZ.
000E80: A3 20 53 75 6D 6D 61 72 79 20 2D 20 72 65 6C 61 £ Summary - rela
000E90: 74 69 76 65 20 6A 75 6D 70 73 A0 A0 4A 52 20 65 tive jumps..JR e
000EA0: 20 20 20 20 20 20 77 68 65 72 65 20 65 20 69 73 where e is
000EB0: 20 74 68 65 20 64 69 73 70 6C 61 63 65 6D 65 6E the displacemen
000EC0: 74 20 69 6E 4A 52 20 4E 43 2C 65 20 20 20 74 68 t inJR NC,e th
000ED0: 65 20 72 61 6E 67 65 20 31 32 37 20 74 6F 20 2D e range 127 to -
000EE0: 31 32 38 A0 4A 52 20 43 2C 65 A0 4A 52 20 4E 5A 128.JR C,e.JR NZ
000EF0: 2C 65 A0 4A 52 20 5A 2C 65 A0 A0 44 4A 4E 5A 20 ,e.JR Z,e..DJNZ
000F00: 65 20 20 20 20 64 65 63 72 65 6D 65 6E 74 20 61 e decrement a
000F10: 6E 64 20 6A 75 6D 70 20 6F 6E 20 6E 6F 05 E6 6E nd jump on no..n
000F20: 20 7A 65 72 6F A3 20 20 20 20 20 20 20 45 58 41 zero£ EXA
000F30: 4D 50 4C 45 20 4F 46 20 52 45 4C 41 54 49 56 45 MPLE OF RELATIVE
000F40: 20 4A 55 4D 50 53 A0 A0 20 41 6C 6C 20 61 73 73 JUMPS.. All ass
000F50: 65 6D 62 6C 65 72 73 20 20 63 61 6C 63 75 6C 61 emblers calcula
000F60: 74 65 20 74 68 65 20 64 69 73 70 6C 61 63 65 2D te the displace-
000F70: 6D 65 6E 74 20 66 6F 72 20 72 65 6C 61 74 69 76 ment for relativ
000F80: 65 20 6A 75 6D 70 73 2E 20 20 20 54 68 65 20 61 e jumps. The a
000F90: 73 73 65 6D 62 6C 65 72 77 69 74 68 69 6E 20 20 ssemblerwithin
000FA0: 20 74 68 69 73 20 20 54 55 54 4F 52 20 20 69 73 this TUTOR is
000FB0: 20 20 6E 6F 20 20 65 78 63 65 70 74 69 6F 6E 2E no exception.
000FC0: 52 65 6C 61 74 69 76 65 20 6A 75 6D 70 73 20 20 Relative jumps
000FD0: 73 68 6F 75 6C 64 20 20 62 65 20 20 65 6E 74 65 should be ente
000FE0: 72 65 64 20 77 69 74 68 6C 61 62 65 6C 73 2E A3 red withlabels.£
000FF0: 20 4C 44 20 48 4C 2C 53 54 4F 52 45 A0 20 20 4C LD HL,STORE. L
001000: 44 20 42 2C 28 48 4C 29 A0 20 20 49 4E 43 20 48 D B,(HL). INC H
001010: 4C A0 20 20 4C 44 20 45 2C 28 48 4C 29 A0 20 8A L. LD E,(HL). .
001020: 07 20 4C 44 20 48 4C 2C 30 A0 20 20 4C 44 20 44 . LD HL,0. LD D
001030: 2C 30 A0 20 4C 4F 4F 50 20 20 41 44 44 20 48 4C ,0. LOOP ADD HL
001040: 2C 44 45 A0 20 20 44 4A 4E 5A 20 4C 4F 4F 50 A0 ,DE. DJNZ LOOP.
001050: 20 20 4C 44 20 28 41 4E 53 29 2C 48 4C A0 20 20 LD (ANS),HL.
001060: 52 45 54 A0 20 20 A0 20 53 54 4F 52 45 20 44 45 RET. . STORE DE
001070: 46 42 20 36 A0 20 20 44 45 46 42 20 35 38 A0 20 FB 6. DEFB 58.
001080: 41 4E 53 20 20 20 44 45 46 57 20 30 A0 20 20 A0 ANS DEFW 0. .
001090: 20 20 A0 20 20 20 20 20 20 20 45 58 41 4D 50 4C . EXAMPL
0010A0: 45 20 4F 46 20 52 45 4C 41 54 49 56 45 20 4A 55 E OF RELATIVE JU
0010B0: 4D 50 53 A0 A0 20 54 68 69 73 20 20 65 78 61 6D MPS.. This exam
0010C0: 70 6C 65 20 20 69 6C 6C 75 73 74 72 61 74 65 73 ple illustrates
0010D0: 20 61 20 6D 65 74 68 6F 64 20 20 6F 66 6D 75 6C a method ofmul
0010E0: 74 69 70 6C 69 63 61 74 69 6F 6E 2E 20 20 54 68 tiplication. Th
0010F0: 65 72 65 20 61 72 65 20 20 6F 74 68 65 72 20 66 ere are other f
001100: 61 73 74 65 72 6D 65 74 68 6F 64 73 20 74 68 61 astermethods tha
001110: 74 20 77 69 6C 6C 20 62 65 20 73 68 6F 77 6E 20 t will be shown
001120: 6C F9 DD 61 74 65 72 2E A3 20 4C 44 20 41 2C 31 l..ater.£ LD A,1
001130: A0 20 4C 4F 4F 50 31 20 41 44 44 20 41 2C 41 A0 . LOOP1 ADD A,A.
001140: 20 20 4C 44 20 28 53 54 4F 52 45 29 2C 41 A0 20 LD (STORE),A.
001150: 20 4A 52 20 4E 43 2C 4C 4F 4F 50 31 A0 20 20 49 JR NC,LOOP1. I
001160: 4E 43 20 41 A0 20 20 4C 44 20 42 2C 37 A0 20 4C NC A. LD B,7. L
001170: 4F 4F 50 32 20 41 44 44 20 41 2C 41 A0 20 20 4C OOP2 ADD A,A. L
001180: 44 20 28 53 54 4F 52 45 29 2C 41 A0 20 20 49 4E D (STORE),A. IN
001190: 43 20 41 A0 20 20 4C 44 20 28 53 54 4F 52 45 29 C A. LD (STORE)
0011A0: 2C 41 A0 20 20 44 4A 4E 5A 20 4C 4F 4F 50 32 A0 ,A. DJNZ LOOP2.
0011B0: 20 20 52 45 54 A0 20 20 A0 20 53 54 4F 52 45 20 RET. . STORE
0011C0: 44 45 46 42 20 30 A0 20 20 A0 20 20 A0 20 20 20 DEFB 0. . .
0011D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 54 48 45 THE
0011E0: 20 53 54 41 43 4B A0 A0 20 54 68 65 20 53 74 61 STACK.. The Sta
0011F0: 63 6B 20 69 73 20 61 6E 20 61 72 65 61 20 6F 66 ck is an area of
001200: 20 65 78 74 65 72 6E 61 6C 20 52 61 6E 64 6F 6D external Random
001210: 41 63 63 65 73 73 20 4D 65 6D 6F 72 79 2C 20 20 Access Memory,
001220: 74 68 61 0E C2 74 20 69 73 20 75 73 65 64 20 61 tha..t is used a
001230: 73 20 61 20 73 65 72 69 65 73 6F 66 20 72 65 67 s a seriesof reg
001240: 69 73 74 65 72 20 70 61 69 72 73 2C 20 69 6E 20 ister pairs, in
001250: 63 6F 6E 6A 75 6E 63 74 69 6F 6E 20 77 69 74 68 conjunction with
001260: 20 61 53 74 61 63 6B 20 50 6F 69 6E 74 65 72 2E aStack Pointer.
001270: 20 54 68 65 20 53 74 61 63 6B 20 50 6F 69 6E 74 The Stack Point
001280: 65 72 20 28 53 50 29 20 69 73 69 73 20 73 69 6E er (SP) isis sin
001290: 67 6C 65 20 20 64 6F 75 62 6C 65 20 6C 65 6E 67 gle double leng
0012A0: 74 68 20 72 65 67 69 73 74 65 72 20 77 69 74 68 th register with
0012B0: 69 6E 74 68 65 20 5A 38 30 2C 20 63 61 70 61 62 inthe Z80, capab
0012C0: 6C 65 20 6F 66 20 68 6F 6C 64 69 6E 67 20 75 70 le of holding up
0012D0: 20 74 6F 20 36 35 33 33 35 2E A0 20 42 65 66 6F to 65335.. Befo
0012E0: 72 65 20 20 6C 6F 61 64 69 6E 67 20 20 20 74 68 re loading th
0012F0: 65 20 20 53 74 61 63 6B 20 20 66 72 6F 6D 20 20 e Stack from
001300: 61 6E 79 69 6E 74 65 72 6E 61 6C 20 20 20 72 65 anyinternal re
001310: 67 69 73 74 65 72 20 20 20 70 61 69 72 2C 20 20 gister pair,
001320: 20 74 68 65 20 0A D6 20 53 74 61 63 6B 50 6F 69 the .. StackPoi
001330: 6E 74 65 72 20 20 69 73 20 20 64 65 63 72 65 6D nter is decrem
001340: 65 6E 74 65 64 20 20 74 77 69 63 65 2C 20 20 28 ented twice, (
001350: 20 74 68 75 73 70 6F 69 6E 74 69 6E 67 20 20 74 thuspointing t
001360: 6F 20 74 68 65 20 20 6E 65 78 74 20 20 70 61 69 o the next pai
001370: 72 20 20 6F 66 20 20 6D 65 6D 6F 72 79 6C 6F 63 r of memoryloc
001380: 61 74 69 6F 6E 73 29 2E 20 54 68 65 20 63 6F 6E ations). The con
001390: 74 65 6E 74 73 20 6F 66 20 74 68 65 20 72 65 67 tents of the reg
0013A0: 69 73 74 65 72 69 73 20 74 68 65 6E 20 6C 6F 61 isteris then loa
0013B0: 64 65 64 20 69 6E 74 6F 20 74 68 65 20 53 74 61 ded into the Sta
0013C0: 63 6B 20 69 6E 64 69 72 65 63 74 6C 79 75 73 69 ck indirectlyusi
0013D0: 6E 67 20 74 68 65 20 53 50 20 72 65 67 69 73 74 ng the SP regist
0013E0: 65 72 20 61 73 20 74 68 65 20 61 64 64 72 65 73 er as the addres
0013F0: 73 2E A0 A0 20 54 68 65 20 69 6E 73 74 72 75 63 s... The instruc
001400: 74 69 6F 6E 20 69 73 20 50 55 53 48 20 64 64 2E tion is PUSH dd.
001410: 20 20 43 6F 6E 74 69 6E 75 69 6E 67 74 6F 20 50 Continuingto P
001420: 55 53 48 20 20 64 61 F2 D0 74 61 20 6F 6E 20 74 USH da..ta on t
001430: 6F 20 74 68 65 20 53 74 61 63 6B 20 72 65 73 75 o the Stack resu
001440: 6C 74 73 20 69 6E 74 68 65 20 20 64 61 74 61 20 lts inthe data
001450: 20 62 65 69 6E 67 20 70 75 73 68 65 64 20 69 6E being pushed in
001460: 20 61 74 20 74 68 65 20 62 6F 74 74 6F 6D 6F 66 at the bottomof
001470: 20 20 74 68 65 20 20 53 74 61 63 6B 20 20 61 6E the Stack an
001480: 64 20 20 74 68 65 20 20 53 74 61 63 6B 20 20 50 d the Stack P
001490: 6F 69 6E 74 65 72 77 6F 72 6B 69 6E 67 20 69 74 ointerworking it
0014A0: 73 20 77 61 79 20 64 6F 77 6E 20 74 68 72 6F 75 s way down throu
0014B0: 67 68 20 6D 65 6D 6F 72 79 2E A3 20 50 4F 50 20 gh memory.£ POP
0014C0: 64 64 20 20 72 65 74 72 69 65 76 65 73 20 20 64 dd retrieves d
0014D0: 61 74 61 20 20 66 72 6F 6D 20 74 68 65 20 53 74 ata from the St
0014E0: 61 63 6B 69 6E 74 6F 20 20 74 68 65 20 20 64 65 ackinto the de
0014F0: 66 69 6E 65 64 20 20 72 65 67 69 73 74 65 72 20 fined register
001500: 20 70 61 69 72 2E 20 20 54 68 65 72 65 67 69 73 pair. Theregis
001510: 74 65 72 20 20 20 70 61 69 72 20 20 69 73 20 20 ter pair is
001520: 6C 6F 61 64 65 64 20 20 20 46 75 77 69 74 68 20 loaded Fuwith
001530: 20 20 74 68 65 63 6F 6E 74 65 6E 74 73 20 6F 66 thecontents of
001540: 20 74 68 65 20 20 6D 65 6D 6F 72 79 20 6C 6F 63 the memory loc
001550: 61 74 69 6F 6E 20 70 6F 69 6E 74 65 64 74 6F 20 ation pointedto
001560: 62 79 20 53 50 20 72 65 67 69 73 74 65 72 2E 20 by SP register.
001570: 20 54 68 65 6E 20 20 74 68 65 20 53 50 20 69 73 Then the SP is
001580: 20 69 6E 63 2D 72 65 6D 65 6E 74 65 64 20 74 77 inc-remented tw
001590: 69 63 65 2E A0 A0 20 43 6F 6E 74 69 6E 75 69 6E ice... Continuin
0015A0: 67 20 20 74 6F 20 20 50 4F 50 20 64 61 74 61 20 g to POP data
0015B0: 66 72 6F 6D 20 74 68 65 20 53 74 61 63 6B 72 65 from the Stackre
0015C0: 73 75 6C 74 73 20 69 6E 20 69 6E 66 6F 72 6D 61 sults in informa
0015D0: 74 69 6F 6E 20 62 65 69 6E 67 20 50 4F 50 70 65 tion being POPpe
0015E0: 64 20 66 72 6F 6D 74 68 65 20 62 6F 74 74 6F 6D d fromthe bottom
0015F0: 20 20 6F 66 20 74 68 65 20 53 74 61 63 6B 20 61 of the Stack a
001600: 6E 64 20 20 74 68 65 20 20 53 74 61 63 6B 50 6F nd the StackPo
001610: 69 6E 74 65 72 20 77 6F 72 6B 69 6E 67 20 69 74 inter working it
001620: 73 20 77 61 79 20 62 61 63 6B 20 B0 EB 75 70 20 s way back ..up
001630: 20 74 68 72 6F 75 67 68 74 68 65 20 6D 65 6D 6F throughthe memo
001640: 72 79 2E A0 A0 20 49 66 20 20 61 20 20 73 65 72 ry... If a ser
001650: 69 65 73 20 6F 66 20 72 65 67 69 73 74 65 72 73 ies of registers
001660: 20 69 73 20 50 55 53 48 65 64 20 6F 6E 74 6F 20 is PUSHed onto
001670: 74 68 65 20 20 53 74 61 63 6B 2C 20 20 61 6E 64 the Stack, and
001680: 20 73 75 62 73 65 71 75 65 6E 74 6C 79 20 20 50 subsequently P
001690: 4F 50 70 65 64 6F 66 66 20 74 68 65 20 20 53 74 OPpedoff the St
0016A0: 61 63 6B 2C 20 20 20 74 68 65 79 20 20 72 65 61 ack, they rea
0016B0: 70 70 65 61 72 20 20 69 6E 20 74 68 65 72 65 76 ppear in therev
0016C0: 65 72 73 65 20 6F 72 64 65 72 2E A0 20 54 68 65 erse order.. The
0016D0: 20 20 42 43 2C 20 20 44 45 20 20 61 6E 64 20 20 BC, DE and
0016E0: 48 4C 20 20 72 65 67 69 73 74 65 72 73 20 6D 61 HL registers ma
0016F0: 79 20 62 65 50 55 53 48 65 64 20 6F 6E 20 74 6F y bePUSHed on to
001700: 20 61 6E 64 20 50 4F 50 70 65 64 20 66 72 6F 6D and POPped from
001710: 20 74 68 65 20 20 53 74 61 63 6B 2E 54 68 65 20 the Stack.The
001720: 41 63 63 75 6D 75 6C 61 74 6F 72 20 6D 81 7A 61 Accumulator m.za
001730: 79 20 61 6C 73 6F 20 62 65 20 50 55 53 48 65 64 y also be PUSHed
001740: 20 6F 6E 20 74 6F 74 68 65 20 20 53 74 61 63 6B on tothe Stack
001750: 2C 20 20 62 75 74 20 20 74 68 69 73 20 69 73 20 , but this is
001760: 20 64 6F 6E 65 20 77 69 74 68 20 74 68 65 66 6C done with thefl
001770: 61 67 20 72 65 67 69 73 74 65 72 20 46 2C 20 77 ag register F, w
001780: 68 69 63 68 20 77 69 6C 6C 20 62 65 20 64 69 73 hich will be dis
001790: 63 75 73 73 65 64 6C 61 74 65 72 2E A3 20 54 68 cussedlater.£ Th
0017A0: 65 20 20 53 74 61 63 6B 20 20 50 6F 69 6E 74 65 e Stack Pointe
0017B0: 72 20 20 63 61 6E 20 20 74 61 6B 65 20 20 70 61 r can take pa
0017C0: 72 74 20 69 6E 61 20 20 20 6E 75 6D 62 65 72 20 rt ina number
0017D0: 20 20 6F 66 20 20 20 69 6E 73 74 72 75 63 74 69 of instructi
0017E0: 6F 6E 73 20 20 20 61 6C 72 65 61 64 79 64 69 73 ons alreadydis
0017F0: 63 75 73 73 65 64 2E A0 20 54 68 65 79 20 61 72 cussed.. They ar
001800: 65 20 73 69 6D 70 6C 79 20 74 68 6F 73 65 20 69 e simply those i
001810: 6E 20 20 77 68 69 63 68 20 20 44 45 2C 20 6F 72 n which DE, or
001820: 42 43 20 20 20 63 61 6E 20 20 74 61 6B 65 20 B6 BC can take .
001830: 8F 20 70 61 72 74 2E 20 20 20 54 68 65 20 20 69 . part. The i
001840: 6E 73 74 72 75 63 74 69 6F 6E 65 71 75 69 76 61 nstructionequiva
001850: 6C 65 6E 74 20 20 20 74 6F 20 20 20 45 58 20 44 lent to EX D
001860: 45 2C 48 4C 20 20 20 69 73 20 20 68 6F 77 65 76 E,HL is howev
001870: 65 72 45 58 20 28 53 50 29 2C 48 4C 20 2C 20 74 erEX (SP),HL , t
001880: 68 61 74 20 45 58 63 68 61 6E 67 65 73 20 74 68 hat EXchanges th
001890: 65 20 63 6F 6E 74 65 6E 74 73 6F 66 20 20 74 68 e contentsof th
0018A0: 65 20 20 62 6F 74 74 6F 6D 20 6F 66 20 74 68 65 e bottom of the
0018B0: 20 53 74 61 63 6B 20 77 69 74 68 20 74 68 65 20 Stack with the
0018C0: 48 4C 72 65 67 69 73 74 65 72 2E A3 20 53 75 6D HLregister.£ Sum
0018D0: 6D 61 72 79 20 2D 20 74 68 65 20 53 74 61 63 6B mary - the Stack
0018E0: 20 61 6E 64 20 53 50 20 72 65 67 69 73 74 65 72 and SP register
0018F0: A0 A0 20 50 55 53 48 20 44 44 20 20 77 68 65 72 .. PUSH DD wher
001900: 65 20 44 44 20 69 73 20 41 46 2C 20 42 43 2C 20 e DD is AF, BC,
001910: 44 45 2C 20 6F 72 20 48 4C 2E 20 20 20 20 20 20 DE, or HL.
001920: 20 20 20 20 46 72 6F 6D 20 20 20 6E 6F 77 20 20 From now
001930: 20 A3 31 6F 6E 20 20 20 64 64 20 20 20 63 61 6E £1on dd can
001940: 20 20 62 65 20 20 20 20 20 20 20 20 20 20 63 6F be co
001950: 6E 73 69 64 65 72 65 64 20 61 73 20 72 65 70 72 nsidered as repr
001960: 65 73 65 6E 74 69 6E 67 A0 20 20 20 20 20 20 20 esenting.
001970: 20 20 20 42 43 2C 20 44 45 2C 20 48 4C 2C 6F 72 BC, DE, HL,or
001980: 20 53 50 2E A0 20 50 4F 50 20 44 44 A0 A0 20 4C SP.. POP DD.. L
001990: 44 20 53 50 2C 6E 6E A0 20 4C 44 20 53 50 2C 28 D SP,nn. LD SP,(
0019A0: 6E 6E 29 A0 20 4C 44 20 28 6E 6E 29 2C 53 50 A0 nn). LD (nn),SP.
0019B0: 20 4C 44 20 53 50 2C 48 4C A0 A0 20 41 44 44 20 LD SP,HL.. ADD
0019C0: 48 4C 2C 53 50 A0 20 41 44 43 20 48 4C 2C 53 50 HL,SP. ADC HL,SP
0019D0: A0 20 53 42 43 20 48 4C 2C 53 50 A0 20 49 4E 43 . SBC HL,SP. INC
0019E0: 20 53 50 A0 20 44 45 43 20 53 50 A0 A0 20 45 58 SP. DEC SP.. EX
0019F0: 20 28 53 50 29 2C 48 4C A3 20 20 20 20 20 20 20 (SP),HL£
001A00: 20 45 58 41 4D 50 4C 45 53 20 55 53 49 4E 47 20 EXAMPLES USING
001A10: 54 48 45 20 53 54 41 43 4B A0 A0 20 54 68 65 20 THE STACK.. The
001A20: 73 69 6D 75 6C 61 74 6F 72 20 75 73 65 73 20 74 simulator uses t
001A30: 68 65 20 75 F8 6D 65 6D 6F 72 79 20 61 72 65 61 he u.memory area
001A40: 20 33 38 34 30 74 6F 20 20 34 30 39 35 20 20 66 3840to 4095 f
001A50: 6F 72 20 20 74 68 65 20 20 70 75 70 69 6C 73 20 or the pupils
001A60: 70 72 6F 67 72 61 6D 73 2E 20 54 68 65 53 74 61 programs. TheSta
001A70: 63 6B 20 50 6F 69 6E 74 65 72 20 69 73 20 69 6E ck Pointer is in
001A80: 69 74 69 61 6C 6C 79 20 20 73 65 74 20 74 6F 20 itially set to
001A90: 34 30 39 34 2C 61 6E 64 20 20 77 6F 72 6B 73 20 4094,and works
001AA0: 20 69 74 73 20 20 77 61 79 20 20 64 6F 77 6E 20 its way down
001AB0: 20 74 6F 77 61 72 64 73 20 20 74 68 65 70 72 6F towards thepro
001AC0: 67 72 61 6D 20 61 72 65 61 2E 20 4B 65 65 70 20 gram area. Keep
001AD0: 74 68 65 20 53 50 20 61 74 20 74 68 65 20 74 6F the SP at the to
001AE0: 70 20 65 6E 64 6F 66 20 20 74 68 69 73 20 20 61 p endof this a
001AF0: 72 65 61 20 6F 66 20 20 6D 65 6D 6F 72 79 20 74 rea of memory t
001B00: 6F 20 65 6E 73 75 72 65 20 74 68 61 74 74 68 65 o ensure thatthe
001B10: 20 73 69 6D 75 6C 61 74 6F 72 20 64 6F 65 73 20 simulator does
001B20: 6E 6F 74 20 73 74 6F 70 2E A0 A0 20 54 68 65 20 not stop... The
001B30: 6C 61 73 74 20 57 01 66 6F 75 72 20 70 61 69 72 last W.four pair
001B40: 73 20 6F 66 20 6D 65 6D 6F 72 79 20 6C 6F 63 61 s of memory loca
001B50: 74 69 6F 6E 73 69 6E 20 74 68 65 20 53 74 61 63 tionsin the Stac
001B60: 6B 20 61 72 65 20 64 69 73 70 6C 61 79 65 64 20 k are displayed
001B70: 61 74 20 74 68 65 20 62 6F 74 74 6F 6D 72 69 67 at the bottomrig
001B80: 68 74 20 68 61 6E 64 20 63 6F 72 6E 65 72 20 6F ht hand corner o
001B90: 66 20 74 68 65 20 73 63 72 65 65 6E 2E 20 41 73 f the screen. As
001BA0: 20 77 69 74 68 74 68 65 20 20 50 72 6F 67 72 61 withthe Progra
001BB0: 6D 20 20 43 6F 75 6E 74 65 72 2C 20 20 74 68 65 m Counter, the
001BC0: 20 20 70 6F 73 69 74 69 6F 6E 20 74 6F 77 68 69 position towhi
001BD0: 63 68 20 20 74 68 65 20 53 74 61 63 6B 20 50 6F ch the Stack Po
001BE0: 69 6E 74 65 72 20 70 6F 69 6E 74 73 20 69 73 20 inter points is
001BF0: 73 68 6F 77 6E 69 6E 20 52 65 64 2E A0 A0 20 54 shownin Red... T
001C00: 68 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 he instruction
001C10: 49 4E 43 20 53 50 20 20 69 73 20 69 6E 63 6C 75 INC SP is inclu
001C20: 64 65 64 20 61 74 74 68 65 20 65 6E 64 20 6F 66 ded atthe end of
001C30: 20 74 68 65 20 70 72 CC A6 6F 67 72 61 6D 20 74 the pr..ogram t
001C40: 6F 20 65 6E 73 75 72 65 20 74 68 61 74 20 53 50 o ensure that SP
001C50: 69 73 20 64 69 73 70 6C 61 79 65 64 2E 20 54 68 is displayed. Th
001C60: 65 20 61 63 74 75 61 6C 20 76 61 6C 75 65 20 69 e actual value i
001C70: 6E 20 74 68 65 20 53 50 72 65 67 69 73 74 65 72 n the SPregister
001C80: 20 69 73 20 69 6D 6D 61 74 65 72 69 61 6C 20 66 is immaterial f
001C90: 6F 72 20 20 6D 6F 73 74 20 20 6F 66 20 69 74 73 or most of its
001CA0: 61 70 70 6C 69 63 61 74 69 6F 6E 73 2E A3 20 4C applications.£ L
001CB0: 44 20 48 4C 2C 35 36 37 38 39 A0 20 20 4C 44 20 D HL,56789. LD
001CC0: 44 45 2C 33 34 35 36 37 A0 20 20 4C 44 20 42 43 DE,34567. LD BC
001CD0: 2C 31 32 33 34 35 A0 20 20 50 55 53 48 20 48 4C ,12345. PUSH HL
001CE0: A0 20 20 50 55 53 48 20 42 43 A0 20 20 50 55 53 . PUSH BC. PUS
001CF0: 48 20 44 45 A0 20 20 45 58 20 28 53 50 29 2C 48 H DE. EX (SP),H
001D00: 4C A0 20 20 4C 44 20 42 43 2C 30 A0 20 20 50 4F L. LD BC,0. PO
001D10: 50 20 44 45 A0 20 20 50 4F 50 20 42 43 A0 20 20 P DE. POP BC.
001D20: 50 4F 50 20 48 4C A0 20 20 52 45 54 A0 20 20 A0 POP HL. RET. .
001D30: 20 20 A0 20 20 49 4E 43 20 9A 7A 53 50 A0 20 20 . INC .zSP.
001D40: A0 20 20 20 20 20 20 20 20 20 20 20 43 41 4C 4C . CALL
001D50: 53 20 54 4F 20 53 55 42 52 4F 55 54 49 4E 45 53 S TO SUBROUTINES
001D60: A0 A0 20 41 20 20 73 75 62 72 6F 75 74 69 6E 65 .. A subroutine
001D70: 20 69 73 20 20 61 20 20 70 61 72 74 20 6F 66 20 is a part of
001D80: 61 20 20 70 72 6F 67 72 61 6D 74 68 61 74 20 69 a programthat i
001D90: 73 20 63 61 6C 6C 65 64 20 66 72 6F 6D 20 74 68 s called from th
001DA0: 65 20 6D 61 69 6E 20 70 72 6F 67 72 61 6D 20 61 e main program a
001DB0: 6E 64 6F 6E 63 65 20 63 6F 6D 70 6C 65 74 65 64 ndonce completed
001DC0: 20 72 65 74 75 72 6E 73 20 62 61 63 6B 20 74 6F returns back to
001DD0: 20 74 68 65 20 20 6D 61 69 6E 70 72 6F 67 72 61 the mainprogra
001DE0: 6D 2E 20 20 54 68 65 20 20 20 73 75 62 72 6F 75 m. The subrou
001DF0: 74 69 6E 65 20 20 69 73 20 20 20 75 73 75 61 6C tine is usual
001E00: 6C 79 63 61 6C 6C 65 64 20 66 72 6F 6D 20 20 61 lycalled from a
001E10: 20 20 6E 75 6D 62 65 72 20 6F 66 20 20 70 6C 61 number of pla
001E20: 63 65 73 20 69 6E 20 74 68 65 70 72 6F 67 72 61 ces in theprogra
001E30: 6D 2E A0 A0 20 54 68 65 20 20 5A D1 52 38 30 20 m... The Z.R80
001E40: 20 61 6C 6C 6F 77 73 20 20 74 68 69 73 20 20 66 allows this f
001E50: 65 61 74 75 72 65 20 20 62 79 20 74 68 65 69 6E eature by thein
001E60: 73 74 72 75 63 74 69 6F 6E 20 20 43 41 4C 4C 2E struction CALL.
001E70: 20 20 54 68 65 20 43 41 4C 4C 20 69 6E 73 74 72 The CALL instr
001E80: 75 63 74 69 6F 6E 69 73 20 73 69 6D 69 6C 61 72 uctionis similar
001E90: 20 74 6F 20 74 68 65 20 20 4A 50 20 69 6E 73 74 to the JP inst
001EA0: 72 75 63 74 69 6F 6E 20 65 78 63 65 70 74 74 68 ruction exceptth
001EB0: 61 74 20 74 68 65 20 61 64 64 72 65 73 73 20 6F at the address o
001EC0: 66 20 74 68 65 20 6E 65 78 74 20 20 73 65 71 75 f the next sequ
001ED0: 65 6E 74 69 61 6C 69 6E 73 74 72 75 63 74 69 6F entialinstructio
001EE0: 6E 2C 20 68 65 6C 64 20 69 6E 20 74 68 65 20 50 n, held in the P
001EF0: 43 20 72 65 67 69 73 74 65 72 2C 20 69 73 50 55 C register, isPU
001F00: 53 48 65 64 20 6F 6E 74 6F 20 74 68 65 20 53 74 SHed onto the St
001F10: 61 63 6B 2C 20 70 72 69 6F 72 20 74 6F 20 74 68 ack, prior to th
001F20: 65 20 6A 75 6D 70 A0 20 54 68 65 20 20 72 65 74 e jump. The ret
001F30: 75 72 6E 20 20 69 6E 73 74 72 75 63 74 00 27 69 urn instruct.'i
001F40: 6F 6E 20 20 52 45 54 2C 20 50 4F 50 73 20 74 68 on RET, POPs th
001F50: 65 72 65 74 75 72 6E 20 61 64 64 72 65 73 73 20 ereturn address
001F60: 66 72 6F 6D 20 74 68 65 20 53 74 61 63 6B 2C 20 from the Stack,
001F70: 62 61 63 6B 20 69 6E 74 6F 74 68 65 20 50 43 20 back intothe PC
001F80: 72 65 67 69 73 74 65 72 2C 20 20 74 6F 20 63 6F register, to co
001F90: 6E 74 69 6E 75 65 20 77 68 65 72 65 20 20 74 68 ntinue where th
001FA0: 65 6D 61 69 6E 20 70 72 6F 67 72 61 6D 20 6C 65 emain program le
001FB0: 66 74 20 6F 66 66 2E 20 49 66 20 74 68 65 20 20 ft off. If the
001FC0: 6E 75 6D 62 65 72 20 6F 66 50 55 53 48 65 73 20 number ofPUSHes
001FD0: 20 61 6E 64 20 43 41 4C 4C 73 20 69 6E 20 74 68 and CALLs in th
001FE0: 65 20 73 75 62 72 6F 75 74 69 6E 65 20 64 6F 65 e subroutine doe
001FF0: 73 6E 6F 74 20 20 65 71 75 61 6C 20 20 74 68 65 snot equal the
002000: 20 20 20 6E 75 6D 62 65 72 20 20 6F 66 20 20 20 number of
002010: 50 4F 50 73 20 20 61 6E 64 52 45 54 75 72 6E 73 POPs andRETurns
002020: 2C 20 6F 62 76 69 6F 75 73 6C 79 20 74 68 69 73 , obviously this
002030: 20 77 69 6C 6C 20 6E 6F 74 20 68 61 70 70 65 0E will not happe.
002040: A7 6E 2E A3 20 42 6F 74 68 20 20 20 63 6F 6E 64 .n.£ Both cond
002050: 69 74 69 6F 6E 61 6C 20 20 61 6E 64 20 20 20 75 itional and u
002060: 6E 63 6F 6E 64 69 74 69 6F 6E 61 6C 43 41 4C 4C nconditionalCALL
002070: 73 20 20 61 6E 64 20 20 52 45 54 75 72 6E 73 20 s and RETurns
002080: 61 72 65 20 61 76 61 69 6C 61 62 6C 65 20 6F 6E are available on
002090: 20 74 68 65 5A 38 30 20 2E 20 20 41 6C 6C 20 20 theZ80 . All
0020A0: 66 6F 75 72 20 20 74 79 70 65 73 20 20 6F 66 20 four types of
0020B0: 20 20 63 6F 6E 64 69 74 69 6F 6E 73 61 6C 72 65 conditionsalre
0020C0: 61 64 79 20 63 6F 6E 73 69 64 65 72 65 64 20 20 ady considered
0020D0: 28 20 4E 43 2C 20 43 2C 20 4E 5A 20 61 6E 64 20 ( NC, C, NZ and
0020E0: 20 5A 20 29 63 61 6E 20 62 65 20 75 73 65 64 20 Z )can be used
0020F0: 77 69 74 68 20 43 41 4C 4C 73 20 61 6E 64 20 52 with CALLs and R
002100: 45 54 75 72 6E 73 2E A3 20 53 75 6D 6D 61 72 79 ETurns.£ Summary
002110: 20 2D 20 63 61 6C 6C 73 20 61 6E 64 20 72 65 74 - calls and ret
002120: 75 72 6E 73 A0 A0 20 20 20 43 41 4C 4C 20 4E 43 urns.. CALL NC
002130: 2C 6E 6E 20 20 20 20 20 20 52 45 54 20 4E 43 20 ,nn RET NC
002140: 20 EC A4 20 20 4E 6F 20 43 61 72 72 79 A0 A0 20 .. No Carry..
002150: 20 20 43 41 4C 4C 20 43 2C 6E 6E 20 20 20 20 20 CALL C,nn
002160: 20 20 52 45 54 20 43 20 20 20 20 20 43 61 72 72 RET C Carr
002170: 79 20 73 65 74 A0 A0 20 20 20 43 41 4C 4C 20 4E y set.. CALL N
002180: 5A 2C 6E 6E 20 20 20 20 20 20 52 45 54 20 4E 5A Z,nn RET NZ
002190: 20 20 20 20 4E 6F 74 20 5A 65 72 6F A0 A0 20 20 Not Zero..
0021A0: 20 43 41 4C 4C 20 5A 2C 6E 6E 20 20 20 20 20 20 CALL Z,nn
0021B0: 20 52 45 54 20 5A 20 20 20 20 20 5A 65 72 6F 20 RET Z Zero
0021C0: 73 65 74 A0 A0 20 49 66 20 20 74 68 65 20 20 63 set.. If the c
0021D0: 6F 6E 64 69 74 69 6F 6E 20 20 69 73 20 20 6E 6F ondition is no
0021E0: 74 20 20 20 6D 65 74 2C 20 20 74 68 65 70 72 6F t met, thepro
0021F0: 67 72 61 6D 20 77 69 6C 6C 20 6E 6F 74 20 43 41 gram will not CA
002200: 4C 4C 20 74 68 65 20 20 73 75 62 72 6F 75 74 69 LL the subrouti
002210: 6E 65 20 6F 72 52 45 54 75 72 6E 20 66 72 6F 6D ne orRETurn from
002220: 20 69 74 2E A3 20 20 20 20 20 45 58 41 4D 50 4C it.£ EXAMPL
002230: 45 20 4F 46 20 43 41 4C 4C 53 20 54 4F 20 53 55 E OF CALLS TO SU
002240: 42 52 4F AB E8 55 54 49 4E 45 A0 A0 20 49 74 20 BRO..UTINE.. It
002250: 6D 75 73 74 20 62 65 20 72 65 6D 65 6D 62 65 72 must be remember
002260: 65 64 20 74 68 61 74 20 61 20 73 75 62 72 6F 75 ed that a subrou
002270: 74 69 6E 65 6D 61 79 20 72 65 71 75 69 72 65 20 tinemay require
002280: 74 68 65 20 75 73 65 20 6F 66 20 61 20 20 72 65 the use of a re
002290: 67 69 73 74 65 72 20 77 68 6F 73 65 63 6F 6E 74 gister whosecont
0022A0: 65 6E 74 73 20 20 61 72 65 20 73 74 69 6C 6C 20 ents are still
0022B0: 72 65 71 75 69 72 65 64 20 69 6E 20 74 68 65 20 required in the
0022C0: 6D 61 69 6E 70 72 6F 67 72 61 6D 2E 20 20 49 74 mainprogram. It
0022D0: 73 20 63 6F 6E 74 65 6E 74 73 20 6D 75 73 74 20 s contents must
0022E0: 74 68 65 72 65 66 6F 72 65 20 62 65 50 55 53 48 therefore bePUSH
0022F0: 65 64 20 20 6F 6E 74 6F 20 20 20 74 68 65 20 20 ed onto the
002300: 73 74 61 63 6B 20 20 6F 72 20 20 6F 74 68 65 72 stack or other
002310: 77 69 73 65 73 74 6F 72 65 64 20 20 65 6C 73 65 wisestored else
002320: 77 68 65 72 65 2C 20 61 6E 64 20 20 72 65 74 72 where, and retr
002330: 69 65 76 65 64 20 61 74 20 74 68 65 65 6E 64 20 ieved at theend
002340: 6F 66 20 74 68 D1 98 65 20 73 75 62 72 6F 75 74 of th..e subrout
002350: 69 6E 65 2E A0 A0 20 54 68 65 20 66 6F 6C 6C 6F ine... The follo
002360: 77 69 6E 67 20 65 78 61 6D 70 6C 65 20 61 64 64 wing example add
002370: 73 20 74 6F 67 65 74 68 65 72 20 74 68 65 66 69 s together thefi
002380: 72 73 74 20 20 33 32 20 70 61 69 72 73 20 6F 66 rst 32 pairs of
002390: 20 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 69 6F 6E memory location
0023A0: 73 2E 20 54 68 65 72 65 73 75 6C 74 20 69 73 20 s. Theresult is
0023B0: 6C 65 66 74 20 69 6E 20 48 4C 2E 20 20 54 68 65 left in HL. The
0023C0: 20 73 74 61 63 6B 20 61 6E 64 20 74 68 65 48 4C stack and theHL
0023D0: 20 20 72 65 67 69 73 74 65 72 73 20 20 61 72 65 registers are
0023E0: 20 62 6F 74 68 20 75 73 65 64 20 61 73 20 20 73 both used as s
0023F0: 74 6F 72 61 67 65 69 6E 73 70 69 74 65 20 6F 66 torageinspite of
002400: 20 74 68 65 20 69 6E 74 65 72 66 65 72 65 6E 63 the interferenc
002410: 65 20 6F 66 20 74 68 65 20 43 41 4C 4C 2C 62 79 e of the CALL,by
002420: 20 75 73 69 6E 67 20 74 68 65 20 45 58 20 28 53 using the EX (S
002430: 50 29 2C 48 4C 20 69 6E 73 74 72 75 63 74 69 6F P),HL instructio
002440: 6E A3 20 4C 44 20 48 91 85 4C 2C 30 A0 20 20 4C n£ LD H..L,0. L
002450: 44 20 42 2C 33 32 A0 20 20 50 55 53 48 20 48 4C D B,32. PUSH HL
002460: A0 20 4C 4F 4F 50 31 20 4C 44 20 45 2C 28 48 4C . LOOP1 LD E,(HL
002470: 29 A0 20 20 49 4E 43 20 48 4C A0 20 20 4C 44 20 ). INC HL. LD
002480: 44 2C 28 48 4C 29 A0 20 20 49 4E 43 20 48 4C A0 D,(HL). INC HL.
002490: 20 20 45 58 20 28 53 50 29 2C 48 4C A0 20 20 43 EX (SP),HL. C
0024A0: 41 4C 4C 20 53 55 42 52 A0 20 20 45 58 20 28 53 ALL SUBR. EX (S
0024B0: 50 29 2C 48 4C A0 20 20 44 4A 4E 5A 20 4C 4F 4F P),HL. DJNZ LOO
0024C0: 50 31 A0 20 20 50 4F 50 20 48 4C A0 20 20 52 45 P1. POP HL. RE
0024D0: 54 A0 20 53 55 42 52 20 20 41 44 44 20 48 4C 2C T. SUBR ADD HL,
0024E0: 44 45 A0 20 20 52 45 54 A0 20 20 A0 20 20 20 20 DE. RET. .
0024F0: 20 20 45 58 41 4D 50 4C 45 20 4F 46 20 43 4F 4E EXAMPLE OF CON
002500: 44 49 54 49 4F 4E 41 4C 20 43 41 4C 4C 53 A0 A0 DITIONAL CALLS..
002510: 20 54 68 69 73 20 20 73 69 6D 70 6C 65 20 20 20 This simple
002520: 65 78 61 6D 70 6C 65 20 20 63 6F 75 6E 74 73 20 example counts
002530: 20 75 70 20 20 74 68 65 6E 75 6D 62 65 72 20 20 up thenumber
002540: 6F 66 20 20 6D 65 6D 6F 72 67 7D 79 20 20 6C 6F of memorg}y lo
002550: 63 61 74 69 6F 6E 73 20 20 68 6F 6C 64 69 6E 67 cations holding
002560: 20 61 6E 75 6D 62 65 72 20 61 62 6F 76 65 20 20 anumber above
002570: 31 39 32 20 20 61 6E 64 20 20 62 65 6C 6F 77 20 192 and below
002580: 20 36 34 20 69 6E 20 74 68 65 66 69 72 73 74 20 64 in thefirst
002590: 33 32 20 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 69 32 memory locati
0025A0: 6F 6E 73 2E A3 20 4C 44 20 48 4C 2C 30 A0 20 20 ons.£ LD HL,0.
0025B0: 4C 44 20 44 45 2C 30 A0 20 20 4C 44 20 42 2C 33 LD DE,0. LD B,3
0025C0: 32 A0 20 4C 4F 4F 50 20 20 4C 44 20 41 2C 28 48 2. LOOP LD A,(H
0025D0: 4C 29 A0 20 20 43 50 20 31 39 33 A0 20 20 43 41 L). CP 193. CA
0025E0: 4C 4C 20 4E 43 2C 41 42 4F 56 45 A0 20 20 43 50 LL NC,ABOVE. CP
0025F0: 20 36 34 A0 20 20 43 41 4C 4C 20 43 2C 42 45 4C 64. CALL C,BEL
002600: 4F 57 A0 20 20 49 4E 43 20 48 4C A0 20 20 44 4A OW. INC HL. DJ
002610: 4E 5A 20 4C 4F 4F 50 A0 20 20 52 45 54 A0 20 41 NZ LOOP. RET. A
002620: 42 4F 56 45 20 49 4E 43 20 45 A0 20 20 52 45 54 BOVE INC E. RET
002630: A0 20 42 45 4C 4F 57 20 49 4E 43 20 44 A0 20 20 . BELOW INC D.
002640: 52 45 54 A0 20 20 20 A0 20 20 20 2E 83 20 20 20 RET. . ..
002650: 20 20 20 20 20 20 20 20 20 4C 65 73 73 6F 6E 73 Lessons
002660: 20 31 30 20 2D 20 31 37 A0 A0 20 31 30 2E 20 43 10 - 17.. 10. C
002670: 6F 6E 64 69 74 69 6F 6E 61 6C 20 61 6E 64 20 75 onditional and u
002680: 6E 63 6F 6E 64 69 74 69 6F 6E 61 6C 20 4A 50 73 nconditional JPs
002690: A0 20 20 20 20 20 20 20 20 20 45 78 20 2D 20 6A . Ex - j
0026A0: 75 6D 70 73 A0 20 31 31 2E 20 52 65 6C 61 74 69 umps. 11. Relati
0026B0: 76 65 20 6A 75 6D 70 73 A0 20 20 20 20 20 20 20 ve jumps.
0026C0: 20 20 45 78 20 2D 20 72 65 6C 61 74 69 76 65 20 Ex - relative
0026D0: 6A 75 6D 70 73 20 31 A0 20 20 20 20 20 20 20 20 jumps 1.
0026E0: 20 45 78 20 2D 20 72 65 6C 61 74 69 76 65 20 6A Ex - relative j
0026F0: 75 6D 70 73 20 32 A0 20 31 32 2E 20 54 68 65 20 umps 2. 12. The
002700: 53 74 61 63 6B A0 20 20 20 20 20 20 20 20 20 45 Stack. E
002710: 78 20 2D 20 70 75 73 68 65 73 20 61 6E 64 20 70 x - pushes and p
002720: 6F 70 73 A0 20 31 33 2E 20 43 61 6C 6C 73 20 74 ops. 13. Calls t
002730: 6F 20 73 75 62 72 6F 75 74 69 6E 65 73 A0 20 20 o subroutines.
002740: 20 20 20 20 20 20 20 45 78 20 2D 20 75 D2 2D 6E Ex - u.-n
002750: 63 6F 6E 64 69 74 69 6F 6E 61 6C 20 63 61 6C 6C conditional call
002760: 73 20 26 20 72 65 74 73 20 20 20 20 20 20 20 20 s & rets
002770: 20 45 78 20 2D 20 63 6F 6E 64 69 74 69 6F 6E 61 Ex - conditiona
002780: 6C 20 63 61 6C 6C 73 A0 20 31 34 2E 20 42 69 6E l calls. 14. Bin
002790: 61 72 79 20 6E 6F 74 61 74 69 6F 6E A0 20 20 20 ary notation.
0027A0: 20 20 20 20 20 20 45 78 20 2D 20 62 69 6E 61 72 Ex - binar
0027B0: 79 20 6E 6F 74 61 74 69 6F 6E A0 20 31 35 2E 20 y notation. 15.
0027C0: 48 65 78 61 64 65 63 69 6D 61 6C 20 6E 6F 74 61 Hexadecimal nota
0027D0: 74 69 6F 6E A0 20 20 20 20 20 20 20 20 20 45 78 tion. Ex
0027E0: 20 2D 20 68 65 78 20 6E 6F 74 61 74 69 6F 6E A0 - hex notation.
0027F0: 20 31 36 2E 20 42 69 6E 61 72 79 20 43 6F 64 65 16. Binary Code
002800: 64 20 44 65 63 69 6D 61 6C 20 6E 6F 74 61 74 69 d Decimal notati
002810: 6F 6E A0 20 20 20 20 20 20 20 20 20 45 78 20 2D on. Ex -
002820: 20 42 43 44 20 6E 6F 74 61 74 69 6F 6E A0 20 31 BCD notation. 1
002830: 37 2E 20 50 6F 73 69 74 69 76 65 20 61 6E 64 20 7. Positive and
002840: 6E 65 67 61 74 69 76 65 20 6E 6F 74 61 74 69 C3 negative notati.
002850: 3A 6F 6E A0 20 20 20 20 20 20 20 20 20 45 78 20 :on. Ex
002860: 2D 20 2B 76 65 20 61 6E 64 20 2D 76 65 20 6E 75 - +ve and -ve nu
002870: 6D 62 65 72 73 A0 20 4C 6F 61 64 20 66 75 72 74 mbers. Load furt
002880: 68 65 72 20 6C 65 73 73 6F 6E 73 20 66 72 6F 6D her lessons from
002890: 20 74 61 70 65 A3 20 20 20 20 20 20 20 20 20 20 tape£
0028A0: 20 20 20 49 4E 54 52 4F 44 55 43 54 49 4F 4E A0 INTRODUCTION.
0028B0: A0 20 54 68 65 20 20 70 72 6F 63 65 73 73 6F 72 . The processor
0028C0: 2C 20 20 75 6E 64 65 72 20 74 68 65 20 70 72 6F , under the pro
0028D0: 67 72 61 6D 6D 65 72 27 73 64 69 72 65 63 74 69 grammer'sdirecti
0028E0: 6F 6E 2C 20 20 68 61 73 20 20 74 68 65 20 20 63 on, has the c
0028F0: 61 70 61 63 69 74 79 20 20 74 6F 20 20 6D 61 6B apacity to mak
002900: 65 64 65 63 69 73 69 6F 6E 73 2E 20 20 49 6E 20 edecisions. In
002910: 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 6C the following l
002920: 65 73 73 6F 6E 73 20 77 65 73 68 61 6C 6C 20 20 essons weshall
002930: 64 69 73 63 75 73 73 20 20 74 68 65 73 65 20 20 discuss these
002940: 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 74 68 61 instructions tha
002950: 74 36 83 6D 61 6B 65 20 20 61 20 20 20 63 6F 6D t6.make a com
002960: 70 75 74 65 72 20 20 20 6D 6F 72 65 20 20 74 68 puter more th
002970: 61 6E 20 20 6A 75 73 74 20 20 61 63 61 6C 63 75 an just acalcu
002980: 6C 61 74 6F 72 2E A0 A0 20 57 65 20 20 73 68 61 lator... We sha
002990: 6C 6C 20 20 74 68 65 6E 20 6C 6F 6F 6B 20 61 74 ll then look at
0029A0: 20 6E 75 6D 62 65 72 73 20 68 65 6C 64 20 69 6E numbers held in
0029B0: 72 65 67 69 73 74 65 72 73 20 69 6E 20 6D 6F 72 registers in mor
0029C0: 65 20 64 65 74 61 69 6C 2E A3 20 20 20 20 20 20 e detail.£
0029D0: 20 20 20 20 20 20 42 49 4E 41 52 59 20 4E 4F 54 BINARY NOT
0029E0: 41 54 49 4F 4E A0 A0 20 49 66 20 77 65 20 77 65 ATION.. If we we
0029F0: 72 65 20 74 6F 20 20 74 61 6B 65 20 74 68 65 20 re to take the
002A00: 20 74 6F 70 20 6F 66 66 20 61 20 20 5A 38 30 63 top off a Z80c
002A10: 68 69 70 20 20 61 6E 64 2C 20 75 73 69 6E 67 20 hip and, using
002A20: 20 61 20 70 6F 77 65 72 66 75 6C 20 6D 69 63 72 a powerful micr
002A30: 6F 73 63 6F 70 65 2C 6C 6F 6F 6B 20 61 74 20 61 oscope,look at a
002A40: 20 72 65 67 69 73 74 65 72 2C 20 77 65 20 77 6F register, we wo
002A50: 75 6C 64 FE DF 20 73 65 65 20 74 68 61 74 20 69 uld.. see that i
002A60: 74 63 6F 6E 73 69 73 74 73 20 6F 66 20 20 38 20 tconsists of 8
002A70: 63 65 6C 6C 73 2E 20 20 54 68 65 73 65 20 20 63 cells. These c
002A80: 65 6C 6C 73 20 20 61 72 65 63 61 70 61 62 6C 65 ells arecapable
002A90: 20 6F 66 20 62 65 69 6E 67 20 20 73 77 69 74 63 of being switc
002AA0: 68 65 64 20 20 62 65 74 77 65 65 6E 20 20 74 77 hed between tw
002AB0: 6F 64 69 66 66 65 72 65 6E 74 20 20 20 73 74 61 odifferent sta
002AC0: 74 65 73 2E 20 20 20 43 6F 6E 76 65 6E 74 69 6F tes. Conventio
002AD0: 6E 61 6C 6C 79 20 20 77 65 64 65 73 69 67 6E 61 nally wedesigna
002AE0: 74 65 20 6F 6E 65 20 73 74 61 74 65 20 61 73 20 te one state as
002AF0: 22 31 22 20 61 6E 64 20 74 68 65 20 6F 74 68 65 "1" and the othe
002B00: 72 61 73 20 22 30 22 2E 20 54 68 65 20 70 61 74 ras "0". The pat
002B10: 74 65 72 6E 20 6F 66 20 31 27 73 20 61 6E 64 20 tern of 1's and
002B20: 30 27 73 20 63 6F 75 6C 64 62 65 20 31 30 31 31 0's couldbe 1011
002B30: 31 30 30 30 20 73 61 79 2E A0 A0 20 48 6F 77 20 1000 say... How
002B40: 20 64 6F 20 77 65 20 20 69 6E 74 65 72 70 72 65 do we interpre
002B50: 74 20 74 68 69 53 71 73 20 70 61 74 74 65 72 6E t thiSqs pattern
002B60: 3F 20 54 68 65 61 6E 73 77 65 72 20 20 69 73 2C ? Theanswer is,
002B70: 20 20 61 6E 79 77 61 79 20 20 77 65 20 20 6C 69 anyway we li
002B80: 6B 65 2E 20 20 49 6E 20 20 74 68 69 73 6C 65 73 ke. In thisles
002B90: 73 6F 6E 20 77 65 20 73 68 6F 77 20 74 68 61 74 son we show that
002BA0: 20 74 68 69 73 20 20 70 61 74 74 65 72 6E 20 20 this pattern
002BB0: 63 6F 75 6C 64 62 65 20 31 38 34 2C 2D 37 32 2C couldbe 184,-72,
002BC0: 20 42 38 48 2C 20 61 6E 64 20 65 76 65 6E 20 43 B8H, and even C
002BD0: 50 20 42 2E 20 54 68 65 20 6F 6E 6C 79 6F 6E 65 P B. The onlyone
002BE0: 20 74 68 65 20 20 70 72 6F 63 65 73 73 6F 72 20 the processor
002BF0: 20 68 61 73 20 62 75 69 6C 74 20 69 6E 74 6F 20 has built into
002C00: 69 74 20 69 73 74 68 65 20 6C 61 74 74 65 72 2E it isthe latter.
002C10: A3 20 45 61 63 68 20 20 64 69 67 69 74 20 20 69 £ Each digit i
002C20: 6E 20 20 61 20 20 6E 75 6D 62 65 72 20 63 61 6E n a number can
002C30: 20 20 62 65 20 63 6F 6E 2D 73 69 64 65 72 65 64 be con-sidered
002C40: 20 74 6F 20 68 61 76 65 20 61 20 77 65 69 67 68 to have a weigh
002C50: 74 69 6E 67 2E 20 46 2C 26 6F 72 20 64 65 63 69 ting. F,&or deci
002C60: 6D 61 6C 6E 75 6D 62 65 72 73 20 74 68 65 73 65 malnumbers these
002C70: 20 77 65 69 67 68 74 69 6E 67 73 20 61 72 65 A0 weightings are.
002C80: 20 20 44 69 67 69 74 20 20 20 20 20 20 33 20 20 Digit 3
002C90: 20 20 32 20 20 20 20 31 20 20 20 20 20 30 A0 20 2 1 0.
002CA0: 20 20 20 20 20 20 20 20 20 20 31 30 30 30 20 20 1000
002CB0: 31 30 30 20 20 20 31 30 20 20 20 20 31 A0 A0 20 100 10 1..
002CC0: 73 69 6E 63 65 20 65 61 63 68 20 20 64 69 67 69 since each digi
002CD0: 74 20 20 63 61 6E 20 68 61 76 65 20 6F 6E 65 20 t can have one
002CE0: 20 6F 66 20 74 65 6E 73 74 61 74 65 73 2C 20 64 of tenstates, d
002CF0: 65 73 69 67 6E 61 74 65 64 20 30 20 2D 20 39 2E esignated 0 - 9.
002D00: A0 A0 20 49 6E 20 61 20 20 72 65 67 69 73 74 65 .. In a registe
002D10: 72 20 20 65 61 63 68 20 20 64 69 67 69 74 20 20 r each digit
002D20: 6F 72 20 62 69 74 20 68 61 73 6F 6E 6C 79 20 20 or bit hasonly
002D30: 20 74 77 6F 20 20 73 74 61 74 65 73 2E 20 20 20 two states.
002D40: 54 68 65 72 65 66 6F 72 65 20 20 77 65 20 20 63 Therefore we c
002D50: 61 6E 69 6E 74 65 72 70 72 9B B6 65 74 20 20 74 aninterpr..et t
002D60: 68 65 20 20 64 69 67 69 74 73 20 61 73 20 68 61 he digits as ha
002D70: 76 69 6E 67 20 77 65 69 67 68 74 2D 69 6E 67 73 ving weight-ings
002D80: 20 6F 66 A0 A0 20 62 69 74 20 20 20 20 37 20 20 of.. bit 7
002D90: 20 36 20 20 20 35 20 20 20 34 20 20 20 20 33 20 6 5 4 3
002DA0: 20 20 32 20 20 20 31 20 20 20 30 A0 20 20 20 20 2 1 0.
002DB0: 20 20 20 31 32 38 20 20 36 34 20 20 33 32 20 20 128 64 32
002DC0: 31 36 20 20 20 38 20 20 20 34 20 20 20 32 20 20 16 8 4 2
002DD0: 20 31 A0 A0 20 54 61 6B 69 6E 67 20 20 6F 75 72 1.. Taking our
002DE0: 20 6E 75 6D 62 65 72 20 31 30 31 31 31 30 30 30 number 10111000
002DF0: 20 66 6F 72 20 65 78 61 6D 70 6C 65 61 6E 64 20 for exampleand
002E00: 20 6E 6F 74 69 6E 67 20 20 74 68 61 74 20 20 20 noting that
002E10: 62 69 74 73 20 20 74 68 61 74 20 20 61 72 65 20 bits that are
002E20: 20 22 30 22 63 6F 6E 74 72 69 62 75 74 65 20 20 "0"contribute
002E30: 6E 6F 74 68 69 6E 67 20 74 6F 20 74 68 65 20 20 nothing to the
002E40: 6E 75 6D 62 65 72 2C 20 20 74 68 65 64 65 63 69 number, thedeci
002E50: 6D 61 6C 20 65 71 75 69 76 61 6C CE E6 65 6E 74 mal equival..ent
002E60: 20 6F 66 20 20 31 30 31 31 31 30 30 30 20 69 73 of 10111000 is
002E70: 20 67 69 76 65 6E 62 79 A0 20 20 20 20 20 20 20 givenby.
002E80: 20 20 20 20 20 31 32 38 2B 33 32 2B 31 36 2B 38 128+32+16+8
002E90: 3D 31 38 34 2E A3 20 54 68 65 20 6D 61 78 69 6D =184.£ The maxim
002EA0: 75 6D 20 20 6E 75 6D 62 65 72 20 74 68 61 74 20 um number that
002EB0: 63 61 6E 20 62 65 20 68 65 6C 64 20 69 6E 61 6E can be held inan
002EC0: 20 38 20 62 69 74 20 72 65 67 69 73 74 65 72 20 8 bit register
002ED0: 69 73 A0 A0 20 20 20 20 20 20 20 20 20 20 31 32 is.. 12
002EE0: 38 2B 36 34 2B 33 32 2B 31 36 2B 38 2B 34 2B 32 8+64+32+16+8+4+2
002EF0: 2B 31 3D 32 35 35 A0 A0 54 68 69 73 20 69 73 20 +1=255..This is
002F00: 74 68 65 20 6E 75 6D 62 65 72 20 77 65 20 6F 72 the number we or
002F10: 69 67 69 6E 61 6C 6C 79 20 61 73 73 75 6D 65 64 iginally assumed
002F20: 61 74 20 74 68 65 20 62 65 67 69 6E 6E 69 6E 67 at the beginning
002F30: 20 6F 66 20 6F 75 72 20 64 69 73 63 75 73 73 69 of our discussi
002F40: 6F 6E 2E A3 20 4A 75 73 74 20 20 61 73 20 20 20 on.£ Just as
002F50: 77 65 20 20 61 64 64 20 20 74 77 6F 20 DB 52 64 we add two .Rd
002F60: 65 63 69 6D 61 6C 20 6E 75 6D 62 65 72 73 74 6F ecimal numbersto
002F70: 67 65 74 68 65 72 2C 20 20 63 61 72 72 79 69 6E gether, carryin
002F80: 67 20 20 6F 6E 65 20 66 6F 72 77 61 72 64 20 20 g one forward
002F90: 69 66 20 74 68 65 73 75 6D 20 6F 66 20 74 77 6F if thesum of two
002FA0: 20 20 64 69 67 69 74 73 20 69 73 20 67 72 65 61 digits is grea
002FB0: 74 65 72 20 74 68 61 6E 20 39 2C 20 77 65 63 61 ter than 9, weca
002FC0: 6E 20 61 64 64 20 74 77 6F 20 62 69 6E 61 72 79 n add two binary
002FD0: 20 6E 75 6D 62 65 72 73 2E 20 20 49 66 20 20 74 numbers. If t
002FE0: 68 65 20 73 75 6D 69 73 20 61 62 6F 76 65 20 6F he sumis above o
002FF0: 6E 65 2C 20 61 20 6F 6E 65 20 69 73 20 63 61 72 ne, a one is car
003000: 72 69 65 64 20 66 6F 72 77 61 72 64 2E A0 A0 69 ried forward...i
003010: 2E 65 2E 20 63 61 72 72 79 20 20 20 27 20 27 20 .e. carry ' '
003020: 20 20 27 20 27 20 20 20 20 20 20 A0 20 20 20 20 ' ' .
003030: 20 20 20 20 20 20 20 20 20 30 20 31 20 31 20 30 0 1 1 0
003040: 20 31 20 31 20 31 20 30 A0 20 20 20 20 20 20 20 1 1 1 0.
003050: 20 20 20 2B 20 20 30 20 30 20 31 20 30 20 30 38 + 0 0 1 0 08
003060: EE 20 31 20 30 20 31 A0 20 20 67 69 76 65 73 20 . 1 0 1. gives
003070: 20 20 20 20 20 31 20 30 20 30 20 31 20 30 20 30 1 0 0 1 0 0
003080: 20 31 20 31 A0 A0 20 53 69 6D 69 6C 61 72 20 77 1 1.. Similar w
003090: 65 20 63 61 6E 20 70 65 72 66 6F 72 6D 20 73 75 e can perform su
0030A0: 62 74 72 61 63 74 69 6F 6E 2E A0 A0 69 2E 65 2E btraction...i.e.
0030B0: 20 62 6F 72 72 6F 77 20 20 20 20 30 20 31 20 31 borrow 0 1 1
0030C0: 20 32 20 20 20 30 20 32 A0 20 20 20 20 20 20 20 2 0 2.
0030D0: 20 20 20 20 20 20 30 20 31 20 31 20 30 20 30 20 0 1 1 0 0
0030E0: 31 20 31 20 30 A0 20 20 20 20 20 20 20 20 20 20 1 1 0.
0030F0: 2D 20 20 30 20 30 20 31 20 30 20 31 20 31 20 30 - 0 0 1 0 1 1 0
003100: 20 31 A0 20 20 67 69 76 65 73 20 20 20 20 20 20 1. gives
003110: 30 20 30 20 31 20 31 20 31 20 30 20 30 20 31 A3 0 0 1 1 1 0 0 1£
003120: 20 20 20 20 20 20 45 58 41 4D 50 4C 45 53 20 4F EXAMPLES O
003130: 46 20 42 49 4E 41 52 59 20 4E 4F 54 41 54 49 4F F BINARY NOTATIO
003140: 4E A0 A0 20 54 68 65 20 20 61 73 73 65 6D 62 6C N.. The assembl
003150: 65 72 2C 20 77 69 74 68 69 6E 20 20 74 68 69 73 er, within this
003160: 20 5E CB 74 75 74 6F 72 2C 20 68 61 73 6F 6E 65 ^.tutor, hasone
003170: 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 6E 6F 74 instruction not
003180: 20 6E 6F 72 6D 61 6C 6C 79 20 66 6F 75 6E 64 20 normally found
003190: 69 6E 20 61 6E 61 73 73 65 6D 62 6C 65 72 2C 20 in anassembler,
0031A0: 20 6E 61 6D 65 6C 79 20 20 42 49 4E 2E 20 20 54 namely BIN. T
0031B0: 68 65 20 20 61 73 73 65 6D 62 6C 65 72 61 6C 6C he assemblerall
0031C0: 6F 63 61 74 65 73 20 20 6F 6E 65 20 20 6D 65 6D ocates one mem
0031D0: 6F 72 79 20 20 6C 6F 63 61 74 69 6F 6E 20 20 74 ory location t
0031E0: 6F 20 74 68 65 6C 69 6E 65 2C 20 77 68 69 63 68 o theline, which
0031F0: 20 77 6F 75 6C 64 20 6E 6F 72 6D 61 6C 6C 79 20 would normally
003200: 62 65 20 20 6C 61 62 65 6C 6C 65 64 2E 49 74 20 be labelled.It
003210: 63 6F 6E 73 74 61 6E 74 6C 79 20 64 69 73 70 6C constantly displ
003220: 61 79 73 20 74 68 69 73 20 6C 6F 63 61 74 69 6F ays this locatio
003230: 6E 20 20 69 6E 62 69 6E 61 72 79 20 66 6F 72 6D n inbinary form
003240: 2E 20 54 68 65 20 6E 75 6D 62 65 72 20 61 66 74 . The number aft
003250: 65 72 20 42 49 4E 20 69 73 20 74 68 65 6E 75 6D er BIN is thenum
003260: 62 65 72 15 94 20 20 69 6E 69 74 69 61 6C 6C 79 ber.. initially
003270: 20 20 20 69 6E 73 65 72 74 65 64 20 20 69 6E 74 inserted int
003280: 6F 20 20 20 74 68 65 6C 6F 63 61 74 69 6F 6E 2E o thelocation.
003290: A0 A0 20 41 66 74 65 72 20 20 67 6F 69 6E 67 20 .. After going
0032A0: 20 20 74 68 72 6F 75 67 68 20 20 74 68 65 20 20 through the
0032B0: 20 66 6F 6C 6C 6F 77 69 6E 67 65 78 61 6D 70 6C followingexampl
0032C0: 65 20 20 74 72 79 20 6D 6F 64 69 66 79 69 6E 67 e try modifying
0032D0: 20 74 68 65 20 64 69 73 70 6C 61 79 69 6E 67 20 the displaying
0032E0: 6F 66 53 54 4F 52 45 20 69 6E 20 65 78 61 6D 70 ofSTORE in examp
0032F0: 6C 65 20 31 31 42 2E A3 20 4C 44 20 48 4C 2C 53 le 11B.£ LD HL,S
003300: 54 4F 52 45 A0 20 4C 4F 4F 50 20 20 44 45 43 20 TORE. LOOP DEC
003310: 28 48 4C 29 A0 20 20 4A 52 20 4E 5A 2C 4C 4F 4F (HL). JR NZ,LOO
003320: 50 A0 20 20 4C 44 20 41 2C 28 4E 55 4D 31 29 A0 P. LD A,(NUM1).
003330: 20 20 4C 44 20 48 4C 2C 4E 55 4D 32 A0 20 20 41 LD HL,NUM2. A
003340: 44 44 20 41 2C 28 48 4C 29 A0 20 20 4C 44 20 28 DD A,(HL). LD (
003350: 41 4E 53 29 2C 41 A0 20 20 52 45 54 A0 20 20 A0 ANS),A. RET. .
003360: 20 53 54 4F 52 B5 71 45 20 42 49 4E 20 31 35 A0 STOR.qE BIN 15.
003370: 20 20 A0 20 4E 55 4D 31 20 20 42 49 4E 20 38 31 . NUM1 BIN 81
003380: A0 20 4E 55 4D 32 20 20 42 49 4E 20 39 35 A0 20 . NUM2 BIN 95.
003390: 41 4E 53 20 20 20 42 49 4E 20 30 A0 20 20 A0 20 ANS BIN 0. .
0033A0: 20 A0 20 20 20 20 20 20 20 20 20 20 48 45 58 41 . HEXA
0033B0: 44 45 43 49 4D 41 4C 20 4E 4F 54 41 54 49 4F 4E DECIMAL NOTATION
0033C0: A0 A0 20 42 69 6E 61 72 79 20 20 6E 75 6D 62 65 .. Binary numbe
0033D0: 72 73 20 61 72 65 20 74 6F 6F 20 20 63 75 6D 62 rs are too cumb
0033E0: 65 72 73 6F 6D 65 20 61 6E 64 64 65 63 69 6D 61 ersome anddecima
0033F0: 6C 20 20 74 6F 6F 20 20 20 69 6E 63 6F 6E 76 65 l too inconve
003400: 6E 69 65 6E 74 20 20 74 6F 20 20 64 69 73 70 6C nient to displ
003410: 61 79 6D 75 6C 74 69 70 6C 65 20 20 72 65 67 69 aymultiple regi
003420: 73 74 65 72 20 6E 75 6D 62 65 72 73 2E 20 20 41 ster numbers. A
003430: 20 6D 65 74 68 6F 64 20 6F 66 70 72 65 73 65 6E method ofpresen
003440: 74 69 6E 67 20 20 20 62 69 6E 61 72 79 20 20 6E ting binary n
003450: 75 6D 62 65 72 73 20 20 68 61 73 20 20 20 62 65 umbers has be
003460: 65 6E 64 65 76 65 6C 71 F4 6F 70 65 64 20 20 74 endevelq.oped t
003470: 6F 20 67 65 74 20 72 6F 75 6E 64 20 20 74 68 65 o get round the
003480: 73 65 20 70 72 6F 62 6C 65 6D 73 2E 49 6E 73 74 se problems.Inst
003490: 65 61 64 20 6F 66 20 62 61 73 69 6E 67 20 74 68 ead of basing th
0034A0: 65 20 6E 75 6D 62 65 72 20 6F 6E 20 31 30 20 61 e number on 10 a
0034B0: 73 20 69 6E 64 65 63 69 6D 61 6C 20 6F 72 20 32 s indecimal or 2
0034C0: 20 61 73 20 69 6E 20 62 69 6E 61 72 79 2C 20 77 as in binary, w
0034D0: 65 20 62 61 73 65 20 69 74 20 6F 6E 31 36 2E 20 e base it on16.
0034E0: 20 54 68 69 73 20 20 6E 75 6D 62 65 72 69 6E 67 This numbering
0034F0: 20 20 73 79 73 74 65 6D 20 20 69 73 20 20 63 61 system is ca
003500: 6C 6C 65 64 48 65 78 61 64 65 63 69 6D 61 6C 2E lledHexadecimal.
003510: A0 A0 20 57 65 20 20 72 65 71 75 69 72 65 20 20 .. We require
003520: 20 31 36 20 20 64 69 66 66 65 72 65 6E 74 20 20 16 different
003530: 73 79 6D 62 6F 6C 73 20 74 6F 72 65 70 72 65 73 symbols torepres
003540: 65 6E 74 20 20 61 20 20 64 69 67 69 74 2E 20 20 ent a digit.
003550: 30 2D 39 20 20 67 69 76 65 73 20 20 75 73 20 74 0-9 gives us t
003560: 68 65 66 69 72 73 74 20 20 45 EF 31 30 20 20 61 hefirst E.10 a
003570: 6E 64 20 20 41 2D 46 20 20 74 68 65 20 66 69 6E nd A-F the fin
003580: 61 6C 20 36 2E 20 41 20 6C 69 73 74 6F 66 20 20 al 6. A listof
003590: 64 65 63 69 6D 61 6C 2C 20 20 20 62 69 6E 61 72 decimal, binar
0035A0: 79 2C 20 20 61 6E 64 20 20 68 65 78 61 64 65 63 y, and hexadec
0035B0: 69 6D 61 6C 65 71 75 69 76 61 6C 65 6E 74 73 20 imalequivalents
0035C0: 20 61 72 65 20 20 20 67 69 76 65 6E 20 20 6F 6E are given on
0035D0: 20 20 74 68 65 20 20 20 6E 65 78 74 73 63 72 65 the nextscre
0035E0: 65 6E 2E A3 20 20 20 20 44 65 63 69 6D 61 6C 20 en.£ Decimal
0035F0: 20 20 42 69 6E 61 72 79 20 20 20 20 48 65 78 61 Binary Hexa
003600: 64 65 63 69 6D 61 6C A0 A0 A0 20 20 20 20 20 20 decimal...
003610: 20 30 20 20 20 20 20 20 20 30 30 30 30 20 20 20 0 0000
003620: 20 20 20 20 20 20 30 A0 20 20 20 20 20 20 20 31 0. 1
003630: 20 20 20 20 20 20 20 30 30 30 31 20 20 20 20 20 0001
003640: 20 20 20 20 31 A0 20 20 20 20 20 20 20 32 20 20 1. 2
003650: 20 20 20 20 20 30 30 31 30 20 20 20 20 20 20 20 0010
003660: 20 20 32 A0 20 20 20 20 20 20 20 E3 B4 33 20 20 2. ..3
003670: 20 20 20 20 20 30 30 31 31 20 20 20 20 20 20 20 0011
003680: 20 20 33 A0 20 20 20 20 20 20 20 34 20 20 20 20 3. 4
003690: 20 20 20 30 31 30 30 20 20 20 20 20 20 20 20 20 0100
0036A0: 34 A0 20 20 20 20 20 20 20 35 20 20 20 20 20 20 4. 5
0036B0: 20 30 31 30 31 20 20 20 20 20 20 20 20 20 35 A0 0101 5.
0036C0: 20 20 20 20 20 20 20 36 20 20 20 20 20 20 20 30 6 0
0036D0: 31 31 30 20 20 20 20 20 20 20 20 20 36 A0 20 20 110 6.
0036E0: 20 20 20 20 20 37 20 20 20 20 20 20 20 30 31 31 7 011
0036F0: 31 20 20 20 20 20 20 20 20 20 37 A0 20 20 20 20 1 7.
003700: 20 20 20 38 20 20 20 20 20 20 20 31 30 30 30 20 8 1000
003710: 20 20 20 20 20 20 20 20 38 A0 20 20 20 20 20 20 8.
003720: 20 39 20 20 20 20 20 20 20 31 30 30 31 20 20 20 9 1001
003730: 20 20 20 20 20 20 39 A0 20 20 20 20 20 20 20 31 9. 1
003740: 30 20 20 20 20 20 20 31 30 31 30 20 20 20 20 20 0 1010
003750: 20 20 20 20 41 A0 20 20 20 20 20 20 20 31 31 20 A. 11
003760: 20 20 20 20 20 31 30 31 31 20 20 20 20 C4 67 20 1011 .g
003770: 20 20 20 20 42 A0 20 20 20 20 20 20 20 31 32 20 B. 12
003780: 20 20 20 20 20 31 31 30 30 20 20 20 20 20 20 20 1100
003790: 20 20 43 A0 20 20 20 20 20 20 20 31 33 20 20 20 C. 13
0037A0: 20 20 20 31 31 30 31 20 20 20 20 20 20 20 20 20 1101
0037B0: 44 A0 20 20 20 20 20 20 20 31 34 20 20 20 20 20 D. 14
0037C0: 20 31 31 31 30 20 20 20 20 20 20 20 20 20 45 A0 1110 E.
0037D0: 20 20 20 20 20 20 20 31 35 20 20 20 20 20 20 31 15 1
0037E0: 31 31 31 20 20 20 20 20 20 20 20 20 46 A3 20 41 111 F£ A
0037F0: 6C 6C 20 31 36 20 20 73 74 61 74 65 73 20 6F 66 ll 16 states of
003800: 20 74 68 65 20 34 20 62 69 6E 61 72 79 20 62 69 the 4 binary bi
003810: 74 73 20 61 72 65 63 6F 76 65 72 65 64 20 62 79 ts arecovered by
003820: 20 30 2D 46 2E 20 48 65 6E 63 65 20 6F 6E 6C 79 0-F. Hence only
003830: 20 32 20 68 65 78 61 64 65 63 69 6D 61 6C 64 69 2 hexadecimaldi
003840: 67 69 74 73 20 20 61 72 65 20 20 72 65 71 75 69 gits are requi
003850: 72 65 64 20 20 74 6F 20 20 64 69 73 70 6C 61 79 red to display
003860: 20 20 20 74 68 65 63 6F 6E 74 65 6E 74 73 20 20 thecontents
003870: 37 20 6F 66 20 20 61 6E 20 20 38 20 20 62 69 74 7 of an 8 bit
003880: 20 20 72 65 67 69 73 74 65 72 2E 20 20 4F 75 72 register. Our
003890: 65 78 61 6D 70 6C 65 20 20 20 31 30 31 31 31 30 example 101110
0038A0: 30 30 20 20 20 64 69 76 69 64 65 73 20 20 20 75 00 divides u
0038B0: 70 20 20 20 69 6E 74 6F 31 30 31 31 20 31 30 30 p into1011 100
0038C0: 30 20 6F 72 20 42 38 20 48 65 78 2E 20 20 41 20 0 or B8 Hex. A
0038D0: 20 64 6F 75 62 6C 65 20 72 65 67 69 73 74 65 72 double register
0038E0: 68 6F 6C 64 69 6E 67 20 73 61 79 20 20 31 31 30 holding say 110
0038F0: 30 31 30 30 31 20 31 30 31 31 31 30 30 30 20 20 01001 10111000
003900: 77 69 6C 6C 20 20 62 65 72 65 70 72 65 73 65 6E will berepresen
003910: 74 65 64 20 62 79 20 43 39 42 38 20 68 65 78 2E ted by C9B8 hex.
003920: A0 A0 20 43 6F 6E 76 65 72 73 69 6F 6E 20 20 6F .. Conversion o
003930: 66 20 20 61 20 20 68 65 78 20 20 6E 75 6D 62 65 f a hex numbe
003940: 72 20 20 74 6F 20 20 69 74 73 64 65 63 69 6D 61 r to itsdecima
003950: 6C 20 65 71 75 69 76 61 6C 65 6E 74 20 66 6F 6C l equivalent fol
003960: 6C 6F 77 73 20 74 68 65 20 20 73 74 61 6E 64 61 lows the standa
003970: 72 94 32 64 63 61 6C 63 75 6C 61 74 69 6F 6E 2E r.2dcalculation.
003980: A0 A0 69 2E 65 2E 20 20 42 38 20 68 65 78 20 3D ..i.e. B8 hex =
003990: 20 28 42 20 68 65 78 29 2A 20 31 36 2B 20 28 38 (B hex)* 16+ (8
0039A0: 29 2A 20 31 A0 20 20 20 20 20 20 20 20 20 20 20 )* 1.
0039B0: 20 20 3D 20 31 31 2A 31 36 2B 38 3D 31 38 34 A0 = 11*16+8=184.
0039C0: A0 20 41 6C 77 61 79 73 20 72 65 6D 65 6D 62 65 . Always remembe
0039D0: 72 20 74 68 61 74 20 61 20 68 65 78 20 6E 75 6D r that a hex num
0039E0: 62 65 72 20 68 61 73 20 61 62 61 73 65 20 6F 66 ber has abase of
0039F0: 20 31 36 20 64 65 63 69 6D 61 6C 2C 20 61 20 64 16 decimal, a d
003A00: 65 63 69 6D 61 6C 20 6E 75 6D 62 65 72 20 68 61 ecimal number ha
003A10: 73 61 20 62 61 73 65 20 6F 66 20 31 30 20 20 61 sa base of 10 a
003A20: 6E 64 20 61 20 62 69 6E 61 72 79 20 6E 75 6D 62 nd a binary numb
003A30: 65 72 20 61 20 62 61 73 65 62 61 73 65 20 32 2E er a basebase 2.
003A40: A3 20 20 20 20 45 58 41 4D 50 4C 45 53 20 4F 46 £ EXAMPLES OF
003A50: 20 48 45 58 41 44 45 43 49 4D 41 4C 20 4E 4F 54 HEXADECIMAL NOT
003A60: 41 54 49 4F 4E A0 A0 20 4E 6F 77 20 20 74 68 61 ATION.. Now tha
003A70: 74 20 20 1A 9B 68 65 78 20 6E 6F 74 61 74 69 6F t ..hex notatio
003A80: 6E 20 68 61 73 20 62 65 65 6E 20 69 6E 74 72 6F n has been intro
003A90: 2D 64 75 63 65 64 20 77 65 20 20 63 61 6E 20 64 -duced we can d
003AA0: 69 73 63 75 73 73 20 20 68 6F 77 20 20 74 68 65 iscuss how the
003AB0: 20 63 6F 6D 70 75 74 65 72 73 74 6F 72 65 73 20 computerstores
003AC0: 20 70 72 6F 67 72 61 6D 73 20 20 69 6E 20 20 6D programs in m
003AD0: 6F 72 65 20 20 64 65 74 61 69 6C 2E 20 20 20 41 ore detail. A
003AE0: 73 61 6C 72 65 61 64 79 20 20 20 6D 65 6E 74 69 salready menti
003AF0: 6F 6E 65 64 2C 20 20 74 68 65 20 20 20 69 6E 73 oned, the ins
003B00: 74 72 75 63 74 69 6F 6E 73 61 72 65 20 20 73 74 tructionsare st
003B10: 6F 72 65 64 20 20 20 6D 65 6D 6F 72 79 20 20 61 ored memory a
003B20: 73 20 20 6E 75 6D 62 65 72 73 2E 20 20 53 6F 6D s numbers. Som
003B30: 65 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 20 einstructions
003B40: 6F 6E 6C 79 20 20 20 72 65 71 75 69 72 65 20 20 only require
003B50: 61 20 20 73 69 6E 67 6C 65 6E 75 6D 62 65 72 2C a singlenumber,
003B60: 20 6F 74 68 65 72 73 20 72 65 71 75 69 72 65 20 others require
003B70: 6D 6F 72 65 2E EB 46 20 43 6F 6C 75 6D 6E 20 32 more..F Column 2
003B80: 20 6F 6E 74 68 65 20 53 69 6D 75 6C 61 74 6F 72 onthe Simulator
003B90: 20 64 69 73 70 6C 61 79 20 73 68 6F 77 73 20 20 display shows
003BA0: 74 68 65 20 20 6D 65 6D 6F 72 79 63 6F 6E 74 65 the memoryconte
003BB0: 6E 74 73 20 66 6F 72 20 74 68 65 20 69 6E 73 74 nts for the inst
003BC0: 72 75 63 74 69 6F 6E 73 20 69 6E 20 68 65 78 2E ructions in hex.
003BD0: A0 A0 20 41 6C 6C 20 74 68 65 20 20 6E 75 6D 62 .. All the numb
003BE0: 65 72 73 20 20 75 73 65 64 20 20 74 6F 20 20 64 ers used to d
003BF0: 65 73 63 72 69 62 65 20 61 6E 69 6E 73 74 72 75 escribe aninstru
003C00: 63 74 69 6F 6E 20 61 72 65 20 20 67 69 76 65 6E ction are given
003C10: 20 69 6E 20 73 65 71 75 65 6E 63 65 20 61 6C 6F in sequence alo
003C20: 6E 67 74 68 65 20 6C 69 6E 65 2E 20 20 4E 6F 74 ngthe line. Not
003C30: 69 63 65 20 74 68 61 74 20 6E 75 6D 62 65 72 73 ice that numbers
003C40: 20 63 61 6C 6C 65 64 20 75 70 69 6E 20 61 6E 20 called upin an
003C50: 69 6E 73 74 72 75 63 74 69 6F 6E 20 61 70 70 65 instruction appe
003C60: 61 72 20 74 6F 77 61 72 64 73 20 74 68 65 20 65 ar towards the e
003C70: 6E 64 6F 66 20 74 68 17 15 65 20 73 74 72 69 6E ndof th..e strin
003C80: 67 20 20 6F 66 20 20 6E 75 6D 62 65 72 73 2E 20 g of numbers.
003C90: 54 68 65 20 20 65 61 72 6C 69 65 72 6E 75 6D 62 The earliernumb
003CA0: 65 72 73 20 20 20 20 64 65 74 65 72 6D 69 6E 65 ers determine
003CB0: 20 20 20 20 74 68 65 20 20 20 74 79 70 65 20 20 the type
003CC0: 20 20 6F 66 69 6E 73 74 72 75 63 74 69 6F 6E 2E ofinstruction.
003CD0: 20 53 69 6E 63 65 20 74 68 65 20 20 74 6F 74 61 Since the tota
003CE0: 6C 20 20 6E 75 6D 62 65 72 20 6F 66 69 6E 73 74 l number ofinst
003CF0: 72 75 63 74 69 6F 6E 73 20 20 20 65 78 63 65 65 ructions excee
003D00: 64 20 20 20 32 35 36 2C 20 20 61 20 20 20 70 72 d 256, a pr
003D10: 65 66 69 78 6E 75 6D 62 65 72 20 69 73 20 75 73 efixnumber is us
003D20: 65 64 20 74 6F 20 20 70 72 6F 64 75 63 65 20 6F ed to produce o
003D30: 74 68 65 72 20 73 65 74 73 20 6F 66 69 6E 73 74 ther sets ofinst
003D40: 72 75 63 74 69 6F 6E 73 2E 20 54 68 65 20 70 72 ructions. The pr
003D50: 65 66 69 78 65 73 20 79 6F 75 20 77 69 6C 6C 20 efixes you will
003D60: 66 69 6E 64 61 72 65 20 45 44 2C 20 43 42 2C 20 findare ED, CB,
003D70: 44 44 20 61 6E 64 20 46 44 9C FA 2E A3 20 4C 75 DD and FD...£ Lu
003D80: 63 6B 69 6C 79 20 61 73 73 65 6D 62 6C 65 72 73 ckily assemblers
003D90: 20 74 61 6B 65 73 20 61 63 63 6F 75 6E 74 20 6F takes account o
003DA0: 66 20 61 6C 6C 74 68 65 73 65 20 20 63 6F 6D 70 f allthese comp
003DB0: 6C 65 78 69 74 69 65 73 2C 20 20 61 6E 64 20 20 lexities, and
003DC0: 79 6F 75 20 20 77 69 6C 6C 20 6E 6F 74 6E 65 65 you will notnee
003DD0: 64 20 20 74 6F 20 20 6C 65 61 72 6E 20 20 77 68 d to learn wh
003DE0: 69 63 68 20 6E 75 6D 62 65 72 73 20 72 65 70 72 ich numbers repr
003DF0: 65 73 65 6E 74 77 68 69 63 68 20 69 6E 73 74 72 esentwhich instr
003E00: 75 63 74 69 6F 6E 73 2E A0 A0 20 54 68 65 20 53 uctions... The S
003E10: 69 6D 75 6C 61 74 6F 72 20 20 63 61 6E 20 20 62 imulator can b
003E20: 65 20 73 77 69 74 63 68 65 64 20 62 65 74 77 65 e switched betwe
003E30: 65 6E 64 65 63 69 6D 61 6C 20 20 20 61 6E 64 20 endecimal and
003E40: 20 20 68 65 78 61 64 65 63 69 6D 61 6C 20 20 64 hexadecimal d
003E50: 69 73 70 6C 61 79 20 20 62 79 70 72 65 73 73 69 isplay bypressi
003E60: 6E 67 20 73 68 69 66 74 20 20 22 54 22 2C 20 20 ng shift "T",
003E70: 77 68 65 6E 20 61 20 70 72 6F 67 A5 E2 72 61 6D when a prog..ram
003E80: 20 20 69 73 6E 6F 74 20 72 75 6E 6E 69 6E 67 2E isnot running.
003E90: A3 20 4C 44 20 41 2C 32 35 48 A0 20 20 41 44 44 £ LD A,25H. ADD
003EA0: 20 41 2C 41 A0 20 20 44 41 41 A0 20 20 4C 44 20 A,A. DAA. LD
003EB0: 48 4C 2C 34 35 38 39 48 A0 20 20 4C 44 20 44 45 HL,4589H. LD DE
003EC0: 2C 33 38 31 32 48 A0 20 20 4C 44 20 41 2C 4C A0 ,3812H. LD A,L.
003ED0: 20 20 53 55 42 20 45 A0 20 20 44 41 41 A0 20 20 SUB E. DAA.
003EE0: 4C 44 20 4C 2C 41 A0 20 20 4C 44 20 41 2C 48 A0 LD L,A. LD A,H.
003EF0: 20 20 53 42 43 20 41 2C 44 A0 20 20 44 41 41 A0 SBC A,D. DAA.
003F00: 20 20 4C 44 20 48 2C 41 A0 20 20 52 45 54 A0 20 LD H,A. RET.
003F10: 20 A0 20 20 A0 20 20 20 20 20 20 42 49 4E 41 52 . . BINAR
003F20: 59 20 43 4F 44 45 44 20 44 45 43 49 4D 41 4C 20 Y CODED DECIMAL
003F30: 4E 4F 54 41 54 49 4F 4E A0 A0 20 57 65 20 20 77 NOTATION.. We w
003F40: 6F 75 6C 64 20 20 73 74 69 6C 6C 20 20 6C 69 6B ould still lik
003F50: 65 20 20 74 6F 20 20 62 65 20 20 61 62 6C 65 20 e to be able
003F60: 74 6F 70 65 72 66 6F 72 6D 20 63 61 6C 63 75 6C toperform calcul
003F70: 61 74 69 6F 6E 73 20 20 6F 6E 20 64 65 08 DC 63 ations on de..c
003F80: 69 6D 61 6C 20 6E 75 6D 62 65 72 73 77 69 74 68 imal numberswith
003F90: 6F 75 74 20 20 68 61 76 69 6E 67 20 20 74 6F 20 out having to
003FA0: 63 6F 6E 76 65 72 74 20 74 6F 20 62 69 6E 61 72 convert to binar
003FB0: 79 20 6F 72 68 65 78 61 64 65 63 69 6D 61 6C 20 y orhexadecimal
003FC0: 66 6F 72 6D 2E 20 48 65 78 69 64 65 63 69 6D 61 form. Hexidecima
003FD0: 6C 20 66 6F 72 6D 20 68 6F 6C 64 73 61 20 6B 65 l form holdsa ke
003FE0: 79 20 74 6F 20 61 20 6D 65 74 68 6F 64 20 6F 66 y to a method of
003FF0: 20 61 63 68 69 65 76 69 6E 67 20 74 68 69 73 2E achieving this.
004000: A0 A0 20 54 68 65 20 20 68 65 78 20 64 69 67 69 .. The hex digi
004010: 74 20 20 72 65 71 75 69 72 65 73 20 20 61 64 6A t requires adj
004020: 75 73 74 6D 65 6E 74 20 74 6F 61 76 6F 69 64 20 ustment toavoid
004030: 74 68 65 20 64 69 67 69 74 73 20 20 41 2D 46 2E the digits A-F.
004040: 20 20 41 64 64 69 6E 67 20 20 36 20 74 6F 20 74 Adding 6 to t
004050: 68 65 64 69 67 69 74 2C 20 69 66 20 74 68 65 73 hedigit, if thes
004060: 65 20 73 79 6D 62 6F 6C 73 20 61 70 70 65 61 72 e symbols appear
004070: 2C 20 20 72 65 73 75 6C 74 73 69 6E 20 63 6F B8 , resultsin co.
004080: 18 72 72 65 63 74 20 61 64 6A 75 73 74 6D 65 6E .rrect adjustmen
004090: 74 2E A0 A0 20 54 61 6B 65 20 20 74 68 65 20 20 t... Take the
0040A0: 68 65 78 20 20 6E 75 6D 62 65 72 20 20 43 20 20 hex number C
0040B0: 28 3D 20 31 32 20 64 65 63 2E 29 2E 41 64 64 69 (= 12 dec.).Addi
0040C0: 6E 67 20 20 36 20 20 67 69 76 65 73 20 20 31 38 ng 6 gives 18
0040D0: 20 20 64 65 63 69 6D 61 6C 20 6F 72 20 31 32 20 decimal or 12
0040E0: 68 65 78 2E 48 65 6E 63 65 20 74 68 65 20 68 65 hex.Hence the he
0040F0: 78 20 6E 75 6D 62 65 72 20 6C 6F 6F 6B 73 20 20 x number looks
004100: 69 64 65 6E 74 69 63 61 6C 20 74 6F 74 68 65 20 identical tothe
004110: 64 65 63 69 6D 61 6C 20 61 6E 73 77 65 72 20 72 decimal answer r
004120: 65 71 75 69 72 65 64 2E A3 20 45 61 63 68 20 64 equired.£ Each d
004130: 69 67 69 74 20 69 73 20 20 68 65 6C 64 20 20 69 igit is held i
004140: 6E 20 20 34 20 20 62 69 74 73 20 6F 66 20 74 68 n 4 bits of th
004150: 65 72 65 67 69 73 74 65 72 2E 20 20 20 54 68 65 eregister. The
004160: 73 65 20 20 34 20 20 62 69 74 73 20 61 72 65 20 se 4 bits are
004170: 63 61 6C 6C 65 64 20 20 61 6E 69 62 62 6C 65 2C called anibble,
004180: 20 D5 AB 74 68 65 20 77 68 6F 6C 65 20 38 20 62 ..the whole 8 b
004190: 69 74 20 77 6F 72 64 20 69 73 20 74 65 72 6D 65 it word is terme
0041A0: 64 20 61 62 79 74 65 2E 20 57 68 6F 20 73 61 69 d abyte. Who sai
0041B0: 64 20 70 72 6F 67 72 61 6D 6D 65 72 73 20 68 61 d programmers ha
0041C0: 76 65 20 6E 6F 20 73 65 6E 73 65 6F 66 20 68 75 ve no senseof hu
0041D0: 6D 6F 75 72 3F A0 A0 20 54 68 69 73 20 20 70 72 mour?.. This pr
0041E0: 65 73 65 6E 74 61 74 69 6F 6E 20 20 69 73 20 20 esentation is
0041F0: 74 65 72 6D 65 64 20 20 20 42 69 6E 61 72 79 43 termed BinaryC
004200: 6F 64 65 64 20 44 65 63 69 6D 61 6C 20 6F 72 20 oded Decimal or
004210: 42 43 44 2E A0 A0 20 54 68 65 20 20 20 5A 38 30 BCD... The Z80
004220: 20 20 20 20 61 63 63 6F 6D 6D 6F 64 61 74 65 73 accommodates
004230: 20 20 20 74 68 65 20 20 20 61 62 6F 76 65 61 64 the abovead
004240: 6A 75 73 74 6D 65 6E 74 2C 20 20 77 69 74 68 20 justment, with
004250: 74 68 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 the instruction
004260: 20 20 44 41 41 2C 6F 72 20 20 44 65 63 69 6D 61 DAA,or Decima
004270: 6C 20 20 41 64 6A 75 73 74 20 20 41 63 63 75 6D l Adjust Accum
004280: 75 6C 61 B2 D6 74 6F 72 2E 20 20 20 54 68 69 73 ula..tor. This
004290: 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 69 73 20 instruction is
0042A0: 20 75 73 65 64 20 20 61 66 74 65 72 20 20 61 6E used after an
0042B0: 20 20 38 20 20 62 69 74 41 44 44 2C 20 20 41 44 8 bitADD, AD
0042C0: 43 2C 20 20 53 55 42 2C 20 20 6F 72 20 20 53 42 C, SUB, or SB
0042D0: 43 20 20 74 6F 20 61 64 6A 75 73 74 20 74 68 65 C to adjust the
0042E0: 41 63 63 75 6D 75 6C 61 74 6F 72 20 63 6F 6E 74 Accumulator cont
0042F0: 65 6E 74 73 20 62 79 20 61 64 64 69 6E 67 20 36 ents by adding 6
004300: 20 20 74 6F 20 74 68 65 6E 69 62 62 6C 65 2C 20 to thenibble,
004310: 20 69 66 20 65 69 74 68 65 72 20 20 6E 69 62 62 if either nibb
004320: 6C 65 20 69 6E 20 74 68 65 20 61 6E 73 77 65 72 le in the answer
004330: 69 73 20 61 62 6F 76 65 20 39 2E A3 20 54 6F 20 is above 9.£ To
004340: 70 65 72 66 6F 72 6D 20 20 74 68 69 73 20 6F 70 perform this op
004350: 65 72 61 74 69 6F 6E 20 74 68 65 20 5A 38 30 20 eration the Z80
004360: 75 73 65 73 74 77 6F 20 66 75 72 74 68 65 72 20 usestwo further
004370: 66 6C 61 67 73 2C 20 74 68 65 20 20 48 20 20 66 flags, the H f
004380: 6C 61 67 20 28 43 8F 20 61 20 48 61 6C 66 63 61 lag (C. a Halfca
004390: 72 72 79 20 20 62 65 74 77 65 65 6E 20 20 6E 69 rry between ni
0043A0: 62 62 6C 65 73 20 29 2C 20 20 61 6E 64 20 20 4E bbles ), and N
0043B0: 20 20 66 6C 61 67 28 73 75 62 74 72 61 63 74 20 flag(subtract
0043C0: 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 70 65 instruction pe
0043D0: 72 66 6F 72 6D 65 64 20 6C 61 73 74 29 2E 53 69 rformed last).Si
0043E0: 6E 63 65 20 20 74 68 65 73 65 20 20 66 6C 61 67 nce these flag
0043F0: 73 20 20 63 61 6E 6E 6F 74 20 62 65 20 74 65 73 s cannot be tes
004400: 74 65 64 20 61 73 70 61 72 74 20 6F 66 20 61 20 ted aspart of a
004410: 63 6F 6E 64 69 74 69 6F 6E 61 6C 20 6A 75 6D 70 conditional jump
004420: 20 65 74 63 2E 20 74 68 65 79 20 61 72 65 6F 66 etc. they areof
004430: 20 6C 69 74 74 6C 65 20 75 73 65 2E A3 20 20 20 little use.£
004440: 20 20 45 58 41 4D 50 4C 45 53 20 4F 46 20 42 2E EXAMPLES OF B.
004450: 43 2E 44 2E 20 4E 4F 54 41 54 49 4F 4E A0 A0 20 C.D. NOTATION..
004460: 54 68 65 73 65 20 65 78 61 6D 70 6C 65 73 20 73 These examples s
004470: 68 6F 77 20 73 69 6D 70 6C 65 20 61 64 64 69 74 how simple addit
004480: 69 6F 6E 20 61 6E 64 72 75 73 75 62 74 72 61 63 ion andrusubtrac
004490: 74 69 6F 6E 20 69 6E 20 20 42 43 44 20 66 6F 72 tion in BCD for
0044A0: 6D 61 74 2E 20 20 52 65 6D 65 6D 62 65 72 20 74 mat. Remember t
0044B0: 6F 6B 65 65 70 20 20 69 6E 20 20 20 48 65 78 20 okeep in Hex
0044C0: 20 64 69 73 70 6C 61 79 20 20 20 6D 6F 64 65 20 display mode
0044D0: 20 20 6F 72 20 20 74 68 65 69 6C 6C 75 73 74 72 or theillustr
0044E0: 61 74 69 6F 6E 73 20 77 69 6C 6C 20 6E 6F 74 20 ations will not
0044F0: 61 70 70 65 61 72 20 69 6E 20 42 43 44 2E A3 20 appear in BCD.£
004500: 4C 44 20 41 2C 32 35 48 A0 20 20 4C 44 20 48 4C LD A,25H. LD HL
004510: 2C 53 54 4F 52 45 A0 20 20 4C 44 20 44 45 2C 32 ,STORE. LD DE,2
004520: 34 36 38 48 A0 20 20 49 4E 43 20 28 48 4C 29 A0 468H. INC (HL).
004530: 20 20 52 45 54 A0 20 20 A0 20 20 42 49 4E 20 36 RET. . BIN 6
004540: 35 48 A0 20 20 42 49 4E 20 38 37 48 A0 20 20 42 5H. BIN 87H. B
004550: 49 4E 20 39 41 48 A0 20 20 42 49 4E 20 44 46 48 IN 9AH. BIN DFH
004560: A0 20 20 42 49 4E 20 46 46 48 A0 20 20 42 49 4E . BIN FFH. BIN
004570: 20 36 34 48 A0 20 20 A0 20 53 54 4F 52 45 20 44 64H. . STORE D
004580: 45 46 42 20 36 34 A0 20 20 87 C2 A0 20 20 A0 20 EFB 64. ... .
004590: 20 20 50 4F 53 49 54 49 56 45 20 41 4E 44 20 4E POSITIVE AND N
0045A0: 45 47 41 54 49 56 45 20 4E 55 4D 42 45 52 20 4E EGATIVE NUMBER N
0045B0: 4F 54 41 54 49 4F 4E A0 A0 20 53 6F 20 66 61 72 OTATION.. So far
0045C0: 20 77 65 20 68 61 76 65 20 6F 6E 6C 79 20 64 65 we have only de
0045D0: 61 6C 74 20 77 69 74 68 20 70 6F 73 69 74 69 76 alt with positiv
0045E0: 65 6E 75 6D 62 65 72 73 2E 20 20 49 66 20 77 65 enumbers. If we
0045F0: 20 68 61 64 20 74 61 6B 65 6E 20 20 36 20 20 66 had taken 6 f
004600: 72 6F 6D 20 20 35 20 77 65 77 6F 75 6C 64 20 65 rom 5 wewould e
004610: 6E 64 20 20 75 70 20 77 69 74 68 20 20 74 68 65 nd up with the
004620: 20 61 6E 73 77 65 72 20 32 35 35 20 20 77 69 74 answer 255 wit
004630: 68 63 61 72 72 79 20 73 65 74 2E 20 54 68 65 72 hcarry set. Ther
004640: 65 20 69 73 20 61 6E 20 69 6E 74 65 72 70 72 65 e is an interpre
004650: 74 61 74 69 6F 6E 20 6F 66 6E 75 6D 62 65 72 73 tation ofnumbers
004660: 20 20 74 68 61 74 20 61 6C 6C 6F 77 73 20 75 73 that allows us
004670: 20 74 6F 20 63 6F 6E 73 69 64 65 72 20 74 68 69 to consider thi
004680: 73 61 6E 73 77 65 72 20 61 73 20 B8 DF 74 68 65 sanswer as ..the
004690: 20 6E 65 67 61 74 69 76 65 20 6E 75 6D 62 65 72 negative number
0046A0: 20 2D 31 2E A0 A0 20 49 6E 20 20 74 68 69 73 20 -1... In this
0046B0: 20 69 6E 74 65 72 70 72 65 74 61 74 69 6F 6E 20 interpretation
0046C0: 20 2D 31 20 6D 75 73 74 20 65 71 75 61 6C 32 35 -1 must equal25
0046D0: 35 20 6F 72 20 31 31 31 31 31 31 31 31 2C 20 6F 5 or 11111111, o
0046E0: 72 20 74 68 65 20 70 72 6F 63 65 73 73 6F 72 20 r the processor
0046F0: 20 77 6F 75 6C 64 6E 6F 74 20 62 65 20 61 62 6C wouldnot be abl
004700: 65 20 74 6F 20 74 61 6B 65 20 20 36 20 20 66 72 e to take 6 fr
004710: 6F 6D 20 20 35 20 20 61 6E 64 20 67 65 74 74 68 om 5 and getth
004720: 65 20 72 69 67 68 74 20 61 6E 73 77 65 72 2E 20 e right answer.
004730: 46 75 72 74 68 65 72 20 35 2D 37 20 3D 2D 32 20 Further 5-7 =-2
004740: 6F 72 20 32 35 34 6F 72 20 31 31 31 31 31 31 31 or 254or 1111111
004750: 30 2E 20 42 69 74 20 37 2C 20 74 68 65 20 6D 6F 0. Bit 7, the mo
004760: 73 74 20 73 69 67 6E 69 66 69 63 61 6E 74 62 69 st significantbi
004770: 74 2C 20 72 65 70 72 65 73 65 6E 74 73 20 20 74 t, represents t
004780: 68 65 20 73 69 67 6E 20 28 20 2B 20 6F 40 51 72 he sign ( + o@Qr
004790: 20 2D 20 29 20 20 6F 66 74 68 65 20 6E 75 6D 62 - ) ofthe numb
0047A0: 65 72 2E 20 57 68 65 6E 20 62 69 74 20 37 20 69 er. When bit 7 i
0047B0: 73 20 22 31 22 20 74 68 65 20 6E 75 6D 62 65 72 s "1" the number
0047C0: 69 73 20 6E 65 67 61 74 69 76 65 2C 20 20 61 6E is negative, an
0047D0: 64 20 77 68 65 6E 20 22 30 22 20 74 68 65 20 6E d when "0" the n
0047E0: 75 6D 62 65 72 20 69 73 70 6F 73 69 74 69 76 65 umber ispositive
0047F0: 2E A3 20 41 20 20 75 73 65 66 75 6C 20 6F 70 65 .£ A useful ope
004800: 72 61 74 69 6F 6E 20 77 6F 75 6C 64 20 20 62 65 ration would be
004810: 20 74 6F 20 6D 61 6B 65 20 61 70 6F 73 69 74 69 to make apositi
004820: 76 65 20 6E 75 6D 62 65 72 20 6E 65 67 61 74 69 ve number negati
004830: 76 65 2E 20 43 68 61 6E 67 69 6E 67 20 62 69 74 ve. Changing bit
004840: 20 37 64 6F 65 73 20 20 6E 6F 74 20 20 64 6F 20 7does not do
004850: 20 74 68 69 73 2E 20 20 54 61 6B 65 20 74 68 65 this. Take the
004860: 20 20 70 6F 73 69 74 69 76 65 6E 75 6D 62 65 72 positivenumber
004870: 20 20 32 20 6F 72 20 20 30 30 30 30 30 30 31 30 2 or 00000010
004880: 20 20 61 6E 64 20 69 74 73 20 6E 65 67 61 74 9C and its negat.
004890: 8E 69 76 65 65 71 75 69 76 61 6C 65 6E 74 20 2D .iveequivalent -
0048A0: 32 20 20 6F 72 20 31 31 31 31 31 31 31 30 20 20 2 or 11111110
0048B0: 66 6F 72 20 65 78 61 6D 70 6C 65 2E 49 6E 76 65 for example.Inve
0048C0: 72 74 69 6E 67 20 61 6C 6C 20 62 69 74 73 20 6F rting all bits o
0048D0: 66 20 74 68 65 20 20 62 69 6E 61 72 79 20 6E 75 f the binary nu
0048E0: 6D 62 65 72 6F 66 20 20 2B 32 20 20 67 69 76 65 mberof +2 give
0048F0: 73 20 20 31 31 31 31 31 31 30 31 2C 20 77 68 69 s 11111101, whi
004900: 63 68 20 69 73 20 31 20 6C 65 73 73 74 68 61 6E ch is 1 lessthan
004910: 20 74 68 61 74 20 20 66 6F 72 20 2D 32 2E A0 A0 that for -2...
004920: 48 65 6E 63 65 20 74 6F 20 6D 61 6B 65 20 61 20 Hence to make a
004930: 70 6F 73 69 74 69 76 65 20 6E 75 6D 62 65 72 20 positive number
004940: 6E 65 67 61 74 69 76 65 77 65 20 69 6E 76 65 72 negativewe inver
004950: 74 20 61 6C 6C 20 69 74 73 20 62 69 6E 61 72 79 t all its binary
004960: 20 62 69 74 73 2C 20 20 6B 6E 6F 77 6E 20 61 73 bits, known as
004970: 43 6F 6D 70 6C 69 6D 65 6E 74 69 6E 67 2C 20 61 Complimenting, a
004980: 6E 64 20 61 64 64 20 20 31 2E 20 20 54 68 65 20 nd add 1. The
004990: 6E 7A 68 6F 74 61 74 69 6F 6E 69 73 20 67 65 6E nzhotationis gen
0049A0: 65 72 61 6C 6C 79 20 74 65 72 6D 65 64 20 32 73 erally termed 2s
0049B0: 20 63 6F 6D 70 6C 65 6D 65 6E 74 A3 69 2E 65 2E complement£i.e.
0049C0: 20 20 20 20 20 20 20 20 20 30 20 30 20 30 20 30 0 0 0 0
0049D0: 20 30 20 31 20 30 20 31 20 20 20 20 2B 35 A0 20 0 1 0 1 +5.
0049E0: 20 20 20 69 6E 76 65 72 74 20 20 20 31 20 31 20 invert 1 1
0049F0: 31 20 31 20 31 20 30 20 31 20 30 A0 20 20 61 64 1 1 1 0 1 0. ad
004A00: 64 20 31 20 20 20 20 20 20 31 20 31 20 31 20 31 d 1 1 1 1 1
004A10: 20 31 20 30 20 31 20 31 20 20 20 20 2D 35 A0 20 1 0 1 1 -5.
004A20: 20 20 20 69 6E 76 65 72 74 20 20 20 30 20 30 20 invert 0 0
004A30: 30 20 30 20 30 20 31 20 30 20 30 A0 20 20 61 64 0 0 0 1 0 0. ad
004A40: 64 20 31 20 20 20 20 20 20 30 20 30 20 30 20 30 d 1 0 0 0 0
004A50: 20 30 20 31 20 30 20 31 20 20 20 20 2B 35 A0 A0 0 1 0 1 +5..
004A60: 20 54 68 65 20 20 6F 70 65 72 61 74 69 6F 6E 20 The operation
004A70: 20 6C 75 63 6B 69 6C 79 20 20 61 6C 73 6F 20 20 luckily also
004A80: 6D 61 6B 65 73 20 20 61 6E 65 67 61 74 69 76 65 makes anegative
004A90: 20 20 20 FF 60 6E 75 6D 62 65 72 20 20 20 20 70 .`number p
004AA0: 6F 73 69 74 69 76 65 2E 20 20 20 41 20 20 76 65 ositive. A ve
004AB0: 72 79 69 6D 70 6F 72 74 61 6E 74 20 70 6F 69 6E ryimportant poin
004AC0: 74 2E A0 A0 20 54 68 65 20 6C 61 72 67 65 73 74 t... The largest
004AD0: 20 70 6F 73 69 74 69 76 65 20 6E 75 6D 62 65 72 positive number
004AE0: 20 77 65 20 63 61 6E 20 68 6F 6C 64 69 6E 20 20 we can holdin
004AF0: 61 20 20 20 73 69 6E 67 6C 65 20 20 20 72 65 67 a single reg
004B00: 69 73 74 65 72 2C 20 20 75 73 69 6E 67 20 20 20 ister, using
004B10: 74 68 69 73 6E 6F 74 61 74 69 6F 6E 20 69 73 20 thisnotation is
004B20: 20 30 31 31 31 31 31 31 31 20 20 20 6F 72 20 20 01111111 or
004B30: 31 32 37 20 20 61 6E 64 20 74 68 65 6C 61 72 67 127 and thelarg
004B40: 65 73 74 20 20 6E 65 67 61 74 69 76 65 20 20 20 est negative
004B50: 6E 75 6D 62 65 72 20 20 31 30 30 30 30 30 30 30 number 10000000
004B60: 20 20 6F 72 2D 31 32 38 2E A3 20 54 68 65 20 20 or-128.£ The
004B70: 5A 38 30 20 20 68 61 73 20 74 77 6F 20 69 6E 73 Z80 has two ins
004B80: 74 72 75 63 74 69 6F 6E 73 20 74 68 61 74 20 6D tructions that m
004B90: 61 79 62 65 20 A2 2D 75 73 65 64 20 66 6F 72 20 aybe .-used for
004BA0: 74 68 65 73 65 20 6F 70 65 72 61 74 69 6F 6E 73 these operations
004BB0: A0 A0 20 43 50 4C 20 20 20 63 6F 6D 70 6C 65 6D .. CPL complem
004BC0: 65 6E 74 73 20 20 20 20 6F 72 20 20 20 69 6E 76 ents or inv
004BD0: 65 72 74 73 20 20 20 74 68 65 20 20 20 20 20 20 erts the
004BE0: 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 74 68 65 contents of the
004BF0: 20 41 63 63 75 6D 75 6C 61 74 6F 72 2E A0 A0 20 Accumulator...
004C00: 4E 45 47 20 20 20 6E 65 67 61 74 65 73 2C 20 20 NEG negates,
004C10: 6F 72 20 6D 61 6B 65 73 20 20 6E 65 67 61 74 69 or makes negati
004C20: 76 65 2C 20 74 68 65 20 20 20 20 20 20 20 63 6F ve, the co
004C30: 6E 74 65 6E 74 73 20 20 6F 66 20 20 74 68 65 20 ntents of the
004C40: 20 41 63 63 75 6D 75 6C 61 74 6F 72 20 62 79 20 Accumulator by
004C50: 20 20 20 20 20 20 63 6F 6D 70 6C 65 6D 65 6E 74 complement
004C60: 69 6E 67 20 61 6E 64 20 61 64 64 69 6E 67 20 31 ing and adding 1
004C70: 20 69 6E 20 6F 6E 65 20 20 20 20 20 20 20 6F 70 in one op
004C80: 65 72 61 74 69 6F 6E 2E A0 A0 20 41 20 53 69 67 eration... A Sig
004C90: 6E 20 66 6C 61 67 20 46 52 28 53 29 20 69 73 20 n flag FR(S) is
004CA0: 70 72 6F 76 69 64 65 64 20 6F 6E 20 74 68 65 20 provided on the
004CB0: 5A 38 30 2E 49 74 20 64 75 70 6C 69 63 61 74 65 Z80.It duplicate
004CC0: 73 20 20 74 68 65 20 73 69 67 6E 20 28 20 62 69 s the sign ( bi
004CD0: 74 20 37 20 29 20 6F 66 20 74 68 65 61 6E 73 77 t 7 ) of theansw
004CE0: 65 72 20 61 66 74 65 72 20 61 6E 79 20 61 72 69 er after any ari
004CF0: 74 68 6D 65 74 69 63 20 6F 70 65 72 61 74 69 6F thmetic operatio
004D00: 6E 20 6F 6E 74 68 65 20 41 63 63 75 6D 75 6C 61 n onthe Accumula
004D10: 74 6F 72 2E 20 20 54 68 65 20 20 73 69 67 6E 20 tor. The sign
004D20: 20 66 6C 61 67 20 69 73 20 22 30 22 66 6F 72 20 flag is "0"for
004D30: 20 61 20 20 70 6F 73 69 74 69 76 65 20 20 72 65 a positive re
004D40: 73 75 6C 74 20 20 61 6E 64 20 20 22 31 22 20 66 sult and "1" f
004D50: 6F 72 20 61 6E 65 67 61 74 69 76 65 20 72 65 73 or anegative res
004D60: 75 6C 74 2E A3 20 57 68 65 6E 20 70 65 72 66 6F ult.£ When perfo
004D70: 72 6D 69 6E 67 20 20 61 72 69 74 68 6D 65 74 69 rming arithmeti
004D80: 63 20 20 6F 70 65 72 61 74 69 6F 6E 73 77 68 69 c operationswhi
004D90: 63 68 20 20 77 65 20 20 77 A4 87 69 73 68 20 20 ch we w..ish
004DA0: 74 6F 20 69 6E 74 65 72 70 72 65 74 20 77 69 74 to interpret wit
004DB0: 68 69 6E 20 74 68 65 72 61 6E 67 65 20 20 2D 31 hin therange -1
004DC0: 32 38 20 74 6F 20 2B 31 32 37 2C 20 74 68 65 20 28 to +127, the
004DD0: 43 61 72 72 79 20 20 66 6C 61 67 20 20 6E 6F 6C Carry flag nol
004DE0: 6F 6E 67 65 72 20 20 73 69 67 6E 61 6C 73 20 20 onger signals
004DF0: 61 6E 20 6F 75 74 20 6F 66 20 72 61 6E 67 65 20 an out of range
004E00: 72 65 73 75 6C 74 2E 48 6F 77 65 76 65 72 20 61 result.However a
004E10: 6E 6F 74 68 65 72 20 66 6C 61 67 2C 20 74 68 65 nother flag, the
004E20: 20 6F 76 65 72 66 6C 6F 77 20 28 50 2F 56 29 66 overflow (P/V)f
004E30: 6C 61 67 20 20 64 6F 65 73 2E 20 20 49 74 20 20 lag does. It
004E40: 69 73 20 20 61 20 20 22 31 22 20 77 68 65 6E 65 is a "1" whene
004E50: 76 65 72 20 74 68 65 61 6E 73 77 65 72 20 69 73 ver theanswer is
004E60: 20 6F 75 74 73 69 64 65 20 74 68 65 20 72 61 6E outside the ran
004E70: 67 65 20 2D 31 32 38 20 74 6F 20 2B 31 32 37 61 ge -128 to +127a
004E80: 6E 64 20 20 22 30 22 20 20 77 69 74 68 69 6E 20 nd "0" within
004E90: 20 20 74 68 65 20 20 20 72 61 6E D5 E9 67 65 2E the ran..ge.
004EA0: 20 20 20 49 74 20 20 69 73 65 66 66 65 63 74 69 It iseffecti
004EB0: 76 65 6C 79 20 20 61 20 20 63 61 72 72 79 20 20 vely a carry
004EC0: 69 6E 74 6F 20 20 62 69 74 20 37 20 77 68 69 63 into bit 7 whic
004ED0: 68 77 6F 75 6C 64 20 6D 61 6B 65 20 74 68 65 20 hwould make the
004EE0: 73 69 67 6E 20 62 69 74 20 69 6E 63 6F 72 72 65 sign bit incorre
004EF0: 63 74 2E A3 20 54 68 65 72 65 20 20 69 73 20 20 ct.£ There is
004F00: 6E 6F 20 20 72 65 61 73 6F 6E 20 66 6F 72 20 73 no reason for s
004F10: 74 69 63 6B 69 6E 67 20 74 6F 20 38 62 69 74 73 ticking to 8bits
004F20: 20 20 75 73 69 6E 67 20 74 68 69 73 20 6D 65 74 using this met
004F30: 68 6F 64 2E 20 20 53 6F 20 6C 6F 6E 67 20 61 73 hod. So long as
004F40: 20 74 68 65 6E 75 6D 62 65 72 20 6F 66 20 20 62 thenumber of b
004F50: 69 74 73 20 69 73 20 20 73 75 66 66 69 63 69 65 its is sufficie
004F60: 6E 74 20 20 61 6E 64 20 20 74 68 65 6D 6F 73 74 nt and themost
004F70: 20 20 73 69 67 6E 69 66 69 63 61 6E 74 20 20 62 significant b
004F80: 69 74 20 20 69 73 20 20 74 61 6B 65 6E 20 61 73 it is taken as
004F90: 20 74 68 65 73 69 67 6E 20 20 62 69 74 03 EF 20 thesign bit..
004FA0: 20 61 6E 79 20 73 69 7A 65 20 70 6F 73 69 74 69 any size positi
004FB0: 76 65 20 6F 72 20 6E 65 67 61 74 69 76 65 6E 75 ve or negativenu
004FC0: 6D 62 65 72 20 63 61 6E 20 62 65 20 72 65 70 72 mber can be repr
004FD0: 65 73 65 6E 74 65 64 2E A0 A0 20 50 65 72 66 6F esented... Perfo
004FE0: 72 6D 69 6E 67 20 61 20 73 69 6D 69 6C 61 72 20 rming a similar
004FF0: 63 61 6C 63 75 6C 61 74 69 6F 6E 20 74 6F 20 74 calculation to t
005000: 68 65 61 62 6F 76 65 20 20 77 65 20 63 61 6E 20 heabove we can
005010: 20 73 68 6F 77 20 74 68 61 74 20 61 20 72 65 67 show that a reg
005020: 69 73 74 65 72 20 70 61 69 72 63 61 6E 20 20 72 ister paircan r
005030: 65 70 72 65 73 65 6E 74 20 20 61 20 20 6E 75 6D epresent a num
005040: 62 65 72 20 20 69 6E 20 74 68 65 20 20 72 61 6E ber in the ran
005050: 67 65 2B 33 32 37 36 37 20 74 6F 20 2D 33 32 37 ge+32767 to -327
005060: 36 38 2E A0 A0 20 54 68 65 20 20 53 69 67 6E 20 68... The Sign
005070: 61 6E 64 20 20 6F 76 65 72 66 6C 6F 77 20 20 66 and overflow f
005080: 6C 61 67 73 20 61 72 65 20 61 6C 73 6F 6F 70 65 lags are alsoope
005090: 72 61 74 69 76 65 20 61 66 74 65 72 20 20 41 76 rative after Av
0050A0: 5B 44 43 20 61 6E 64 20 53 42 43 20 69 6E 73 74 [DC and SBC inst
0050B0: 72 75 63 74 69 6F 6E 6F 6E 20 74 68 65 20 48 4C ructionon the HL
0050C0: 20 72 65 67 69 73 74 65 72 2E 20 49 74 20 72 65 register. It re
0050D0: 66 6C 65 63 74 73 20 74 68 65 20 31 35 74 68 62 flects the 15thb
0050E0: 69 74 20 28 6F 72 20 62 69 74 20 37 20 6F 66 20 it (or bit 7 of
0050F0: 48 20 72 65 67 69 73 74 65 72 29 20 2E A3 20 49 H register) .£ I
005100: 74 20 69 73 20 69 6D 70 6F 72 74 61 6E 74 20 20 t is important
005110: 74 6F 20 20 72 65 6D 65 6D 62 65 72 20 20 74 68 to remember th
005120: 61 74 20 74 68 65 5A 65 72 6F 2C 20 20 43 61 72 at theZero, Car
005130: 72 79 2C 20 20 53 69 67 6E 2C 20 61 6E 64 20 20 ry, Sign, and
005140: 6F 76 65 72 66 6C 6F 77 20 66 6C 61 67 73 61 72 overflow flagsar
005150: 65 20 61 6C 77 61 79 73 20 6F 70 65 72 61 74 69 e always operati
005160: 76 65 20 20 61 66 74 65 72 20 20 61 6E 20 20 20 ve after an
005170: 38 20 20 62 69 74 61 72 69 74 68 6D 65 74 69 63 8 bitarithmetic
005180: 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 20 instruction
005190: 6F 72 20 20 61 20 20 31 36 20 20 62 69 74 61 64 or a 16 bitad
0051A0: 64 14 8F 69 74 69 6F 6E 20 20 20 69 6E 76 6F 6C d..ition invol
0051B0: 76 69 6E 67 20 20 20 74 68 65 20 20 43 61 72 72 ving the Carr
0051C0: 79 2E 20 20 59 6F 75 72 69 6E 74 65 72 70 72 65 y. Yourinterpre
0051D0: 74 61 74 69 6F 6E 20 6F 66 20 74 68 65 20 20 72 tation of the r
0051E0: 65 73 75 6C 74 20 64 65 74 65 72 6D 69 6E 65 73 esult determines
0051F0: 69 6E 20 20 20 77 68 69 63 68 20 20 20 66 6C 61 in which fla
005200: 67 28 73 29 20 20 20 79 6F 75 20 20 20 73 68 6F g(s) you sho
005210: 75 6C 64 20 20 20 62 65 69 6E 74 65 72 65 73 74 uld beinterest
005220: 65 64 20 69 6E 2E A3 20 20 20 20 45 58 41 4D 50 ed in.£ EXAMP
005230: 4C 45 53 20 4F 46 20 2B 56 45 20 41 4E 44 20 2D LES OF +VE AND -
005240: 56 45 20 4E 4F 54 41 54 49 4F 4E A0 A0 20 41 6C VE NOTATION.. Al
005250: 74 68 6F 75 67 68 20 20 74 68 65 73 65 20 20 65 though these e
005260: 78 61 6D 70 6C 65 73 20 20 61 70 70 65 61 72 20 xamples appear
005270: 74 6F 20 62 65 61 6C 6C 20 70 6F 73 69 74 69 76 to beall positiv
005280: 65 2C 20 74 68 65 79 20 63 61 6E 20 62 65 20 76 e, they can be v
005290: 69 65 77 65 64 20 65 71 75 61 6C 6C 79 61 73 20 iewed equallyas
0052A0: 20 6E 65 65 25 67 61 74 69 76 65 20 20 77 68 65 nee%gative whe
0052B0: 72 65 20 61 70 70 72 6F 70 72 69 61 74 65 20 61 re appropriate a
0052C0: 6E 64 20 20 74 68 65 53 69 67 6E 20 20 20 61 6E nd theSign an
0052D0: 64 20 20 20 6F 76 65 72 66 6C 6F 77 20 20 20 66 d overflow f
0052E0: 6C 61 67 73 20 20 20 6F 62 73 65 72 76 65 64 6F lags observedo
0052F0: 70 65 72 61 74 69 6E 67 2E A0 A0 20 52 65 6D 65 perating... Reme
005300: 6D 62 65 72 20 20 61 20 20 20 6E 75 6D 62 65 72 mber a number
005310: 20 20 20 61 62 6F 76 65 20 20 20 31 32 38 20 20 above 128
005320: 20 69 73 6E 65 67 61 74 69 76 65 2E 20 53 69 6E isnegative. Sin
005330: 63 65 20 61 6C 6C 20 74 68 65 20 6E 65 67 61 74 ce all the negat
005340: 69 76 65 20 6E 75 6D 62 65 72 73 69 6E 20 74 68 ive numbersin th
005350: 65 20 65 78 61 6D 70 6C 65 73 20 61 72 65 20 73 e examples are s
005360: 6D 61 6C 6C 2C 20 20 74 68 65 79 20 20 63 61 6E mall, they can
005370: 20 62 65 73 65 65 6E 20 71 75 69 63 6B 6C 79 20 beseen quickly
005380: 61 6E 64 20 73 69 6D 70 6C 79 20 62 65 20 63 6F and simply be co
005390: 6E 76 65 72 74 65 64 20 20 62 79 73 75 62 74 72 nverted bysubtr
0053A0: 61 63 74 69 6E 7F 53 67 20 74 68 65 20 6E 75 6D actin.Sg the num
0053B0: 62 65 72 20 66 72 6F 6D 20 32 35 36 2E A0 A0 20 ber from 256...
0053C0: 69 2E 65 2E 20 20 2D 32 20 20 69 73 20 65 71 75 i.e. -2 is equ
0053D0: 69 76 61 6C 65 6E 74 20 74 6F 20 32 35 34 20 65 ivalent to 254 e
0053E0: 74 63 2E A3 20 4C 44 20 41 2C 32 35 34 A0 20 20 tc.£ LD A,254.
0053F0: 4E 45 47 A0 20 20 4E 45 47 A0 20 20 41 44 44 20 NEG. NEG. ADD
005400: 41 2C 32 A0 20 20 49 4E 43 20 41 A0 20 20 4C 44 A,2. INC A. LD
005410: 20 48 4C 2C 32 A0 20 20 4C 44 20 44 45 2C 46 46 HL,2. LD DE,FF
005420: 46 45 48 A0 20 20 41 44 44 20 48 4C 2C 44 45 A0 FEH. ADD HL,DE.
005430: 20 20 43 50 4C A0 20 20 4C 44 20 48 4C 2C 53 54 CPL. LD HL,ST
005440: 4F 52 45 A0 20 20 4C 44 20 28 48 4C 29 2C 37 46 ORE. LD (HL),7F
005450: 48 A0 20 20 49 4E 43 20 28 48 4C 29 A0 20 20 52 H. INC (HL). R
005460: 45 54 A0 20 20 A0 20 53 54 4F 52 45 20 42 49 4E ET. . STORE BIN
005470: 20 30 A0 20 20 A0 20 38 38 12 7C 90 28 24 22 38 0. . 88.|.($"8
005480: 38 90 7C 12 28 48 88 00 3C 18 3C 3C 3C 18 00 3C 8.|.(H..<.<<<..<
005490: FF FF 18 0C 18 30 18 18 3C 7E 18 18 7E 3C 18 00 .....0..<~..~<..
0054A0: 24 66 FF 66 24 00 00 2F 20 00 C9 C9 C9 C9 C9 C9 $f.f$../ .......
0054B0: C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 ................
0054C0: C9 C9 C9 C9 C9 00 FF 00 00 FF 00 00 00 84 FF FF ................
0054D0: 00 00 00 3F 88 80 03 00 00 FF FF 00 00 00 00 00 ...?............
0054E0: 00 FF FF 00 08 79 C8 FD 00 FF FF 00 00 FF FF 00 .....y..........
0054F0: 08 79 C8 FD 00 FF FF 00 00 FF FF 00 08 79 C8 FD .y...........y..
005500: 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 00 02 79 ...............y
005510: C8 FD FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 ................
005520: 04 79 C8 FD 00 FF FF 00 00 FF FF 00 00 FF DF 00 .y..............
005530: 00 00 08 79 C8 FD FF 00 00 FF FF 00 00 FF FF 00 ...y............
005540: 00 FF FF 00 10 79 C8 FD 00 FF FF 00 00 31 00 76 .....y.......1.v
005550: 65 20 22 54 45 58 54 31 22 2C 42 2C 26 35 38 30 e "TEXT1",B,&580
005560: 30 2C 26 35 35 30 30 00 30 00 54 45 52 22 00 61 0,&5500.0.TER".a
005570: 00 64 00 30 30 31 00 00 37 39 2C 26 65 64 2C 26 .d.001..79,&ed,&
005580: 37 38 2C 26 63 62 2C 26 34 37 00 26 31 62 2C 26 78,&cb,&47.&1b,&
005590: 37 61 2C 26 42 33 20 00 66 2C 26 30 00 FF FF 00 7a,&B3 .f,&0....
0055A0: 00 FF FF 00 00 FF FF 00 00 FC 6D FF FF FF FF ..........m....
|
  | * BLOCK 0003 : TURBO LOADING DATA |
Length of PILOT pulse : 2325 Length of SYNC First pulse : 1190 Length of SYNC Second pulse : 1111 Length of ZERO bit pulse : 1170 Length of ONE bit pulse : 2339 Length of PILOT tone : 4096 Used bits in last byte : 8 Data : 263 bytes Total size : 282 bytes
Sum DATA : 1 550
Duration : 4161 ms Pause After this block : 2578 ms Duration block + Pause : 6739 ms Duration block + Pause : 00 h 00 m 06 s | 000000: FC 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000100: 00 14 FE FF FF FF FF .......
|
  | * BLOCK 0004 : TURBO LOADING DATA |
Length of PILOT pulse : 2325 Length of SYNC First pulse : 1190 Length of SYNC Second pulse : 1032 Length of ZERO bit pulse : 1169 Length of ONE bit pulse : 2339 Length of PILOT tone : 4096 Used bits in last byte : 8 Data : 21935 bytes Total size : 21954 bytes
Sum DATA : 1 823 924
Duration : 166529 ms Pause After this block : 2578 ms Duration block + Pause : 169107 ms Duration block + Pause : 00 h 02 m 49 s | 000000: FB 06 58 26 58 05 83 27 58 2B 58 32 58 39 58 3D ..X&X..'X+X2X9X=
000010: 58 44 58 4B 58 52 58 62 58 69 58 79 58 80 58 90 XDXKXRXbXiXyX.X.
000020: 58 97 58 9E 58 AB 58 00 00 15 82 01 00 10 85 00 X.X.X.X.........
000030: BF 87 01 00 E3 89 00 DB 8B 01 00 AC 8C 01 00 84 ................
000040: 8E 02 E5 8F 01 00 62 59 00 DD 5B 01 00 B2 58 06 ......bY..[...X.
000050: 55 5C 01 00 F4 5C 00 96 5F 00 04 61 00 2F 63 00 U\...\.._..a./c.
000060: 8D 64 01 00 F5 64 06 C5 65 01 00 76 66 00 6D 67 .d...d..e..vf.mg
000070: 00 40 69 00 FC 6A 00 F7 6C 01 00 D8 6D 06 6A 6E .@i..j..l...m.jn
000080: 01 00 16 6F 00 A6 70 00 05 73 00 4F 75 00 72 77 ...o..p..s.Ou.rw
000090: 01 00 DF 78 06 A4 79 01 00 60 7A 02 A6 7B 01 00 ...x..y..`z..{..
0000A0: 49 7C 00 1F 7E 00 7D 7F 00 C1 80 01 00 21 81 06 I|..~.}......!..
0000B0: A5 81 01 20 20 20 20 20 20 45 58 41 4D 50 4C 45 ... EXAMPLE
0000C0: 53 20 4F 46 20 42 49 54 20 4D 41 4E 49 50 55 4C S OF BIT MANIPUL
0000D0: 41 54 49 4F 4E A0 A0 20 54 68 65 20 66 6F 6C 6C ATION.. The foll
0000E0: 6F 77 69 6E 67 20 69 6C 6C 75 73 74 72 61 74 65 owing illustrate
0000F0: 73 20 20 74 68 65 20 20 77 61 79 20 20 69 6E 77 s the way inw
000100: 68 B2 91 69 63 68 20 20 53 45 54 2C 20 52 45 53 h..ich SET, RES
000110: 2C 20 61 6E 64 20 20 42 49 54 20 63 61 6E 20 62 , and BIT can b
000120: 65 20 75 73 65 64 20 74 6F 6D 61 6E 69 70 75 6C e used tomanipul
000130: 61 74 65 20 69 6E 64 69 76 69 64 75 61 6C 20 62 ate individual b
000140: 69 74 73 20 6F 66 20 61 20 72 65 67 69 73 74 65 its of a registe
000150: 72 6F 72 20 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 ror memory locat
000160: 69 6F 6E 2E A3 20 20 20 20 20 20 20 20 20 20 20 ion.£
000170: 20 42 49 54 20 4D 41 4E 49 50 55 4C 41 54 49 4F BIT MANIPULATIO
000180: 4E A0 A0 20 57 65 20 68 61 76 65 20 73 6F 20 66 N.. We have so f
000190: 61 72 20 74 72 65 61 74 65 64 20 20 69 6E 66 6F ar treated info
0001A0: 72 6D 61 74 69 6F 6E 20 20 69 6E 74 68 65 20 66 rmation inthe f
0001B0: 6F 72 6D 20 6F 66 20 62 79 74 65 73 20 6F 72 20 orm of bytes or
0001C0: 77 6F 72 64 73 2E 20 54 68 65 20 5A 38 30 20 64 words. The Z80 d
0001D0: 6F 65 73 61 6C 6C 6F 77 20 61 20 6E 75 6D 62 65 oesallow a numbe
0001E0: 72 20 6F 66 20 6F 70 65 72 61 74 69 6F 6E 73 20 r of operations
0001F0: 6F 6E 20 73 65 70 61 72 61 74 65 6F 72 20 67 72 on separateor gr
000200: 6F 75 70 E1 FC 73 20 6F 66 20 62 69 74 73 20 77 oup..s of bits w
000210: 69 74 68 69 6E 20 6F 6E 65 20 62 79 74 65 A0 A0 ithin one byte..
000220: 20 41 6E 79 20 20 62 69 74 20 20 69 6E 20 20 20 Any bit in
000230: 61 20 20 72 65 67 69 73 74 65 72 2C 20 20 6F 72 a register, or
000240: 20 20 6D 65 6D 6F 72 79 6C 6F 63 61 74 69 6F 6E memorylocation
000250: 20 75 73 69 6E 67 20 28 48 4C 29 2C 20 20 63 61 using (HL), ca
000260: 6E 20 20 62 65 20 20 53 45 54 20 20 74 6F 20 61 n be SET to a
000270: 22 31 22 2E 20 57 65 20 63 61 6E 20 61 6C 73 6F "1". We can also
000280: 20 52 45 53 65 74 20 61 6E 79 20 62 69 74 20 74 RESet any bit t
000290: 6F 20 61 20 22 30 22 2E 54 6F 20 20 74 65 73 74 o a "0".To test
0002A0: 20 20 74 68 65 20 20 20 73 74 61 74 65 20 20 6F the state o
0002B0: 66 20 20 61 20 20 62 69 74 20 20 69 6E 20 20 61 f a bit in a
0002C0: 72 65 67 69 73 74 65 72 2C 20 6F 72 20 6D 65 6D register, or mem
0002D0: 6F 72 79 20 6C 6F 63 61 74 69 6F 6E 2C 20 77 65 ory location, we
0002E0: 20 63 61 6E 20 75 73 65 74 68 65 20 69 6E 73 74 can usethe inst
0002F0: 72 75 63 74 69 6F 6E 20 42 49 54 2E 20 49 6E 20 ruction BIT. In
000300: 74 68 69 73 20 FF D5 69 6E 73 74 72 75 63 74 69 this ..instructi
000310: 6F 6E 74 68 65 20 5A 65 72 6F 20 66 6C 61 67 20 onthe Zero flag
000320: 69 73 20 73 65 74 20 69 66 20 74 68 65 20 20 61 is set if the a
000330: 70 70 72 6F 70 72 69 61 74 65 62 69 74 20 69 73 ppropriatebit is
000340: 20 20 22 30 22 20 20 61 6E 64 20 72 65 73 65 74 "0" and reset
000350: 20 74 6F 20 61 20 20 22 30 22 20 20 69 66 20 74 to a "0" if t
000360: 68 65 61 70 70 72 6F 70 72 69 61 74 65 20 20 62 heappropriate b
000370: 69 74 20 20 69 73 20 22 31 22 2E 20 20 48 65 6E it is "1". Hen
000380: 63 65 20 77 65 20 20 63 61 6E 70 72 6F 64 75 63 ce we canproduc
000390: 65 20 6F 75 72 20 6F 77 6E 20 66 6C 61 67 73 20 e our own flags
0003A0: 74 6F 20 69 6E 64 69 63 61 74 65 20 65 76 65 6E to indicate even
0003B0: 74 73 61 6E 64 20 74 68 65 6E 20 20 61 63 74 20 tsand then act
0003C0: 20 75 70 6F 6E 20 20 74 68 65 6D 20 20 6C 61 74 upon them lat
0003D0: 65 72 20 69 6E 20 20 6F 75 72 70 72 6F 67 72 61 er in ourprogra
0003E0: 6D 73 2E A3 20 53 75 6D 6D 61 72 79 20 2D 20 62 ms.£ Summary - b
0003F0: 69 74 20 6D 61 6E 69 70 75 6C 61 74 69 6F 6E A0 it manipulation.
000400: A0 53 45 54 20 4E 2C 07 69 72 20 20 20 20 77 68 .SET N,.ir wh
000410: 65 72 65 20 4E 20 69 73 20 74 68 65 20 62 69 74 ere N is the bit
000420: 20 6E 75 6D 62 65 72 20 30 2D 37 53 45 54 20 4E number 0-7SET N
000430: 2C 28 48 4C 29 A0 A0 52 45 53 20 4E 2C 72 A0 52 ,(HL)..RES N,r.R
000440: 45 53 20 4E 2C 28 48 4C 29 A0 A0 42 49 54 20 4E ES N,(HL)..BIT N
000450: 2C 72 A0 42 49 54 20 4E 2C 28 48 4C 29 A3 20 4C ,r.BIT N,(HL)£ L
000460: 44 20 48 4C 2C 53 54 4F 52 45 A0 20 20 53 45 54 D HL,STORE. SET
000470: 20 36 2C 28 48 4C 29 A0 20 4C 4F 4F 50 20 20 49 6,(HL). LOOP I
000480: 4E 43 20 28 48 4C 29 A0 20 20 42 49 54 20 32 2C NC (HL). BIT 2,
000490: 28 48 4C 29 A0 20 20 4A 52 20 5A 2C 4C 4F 4F 50 (HL). JR Z,LOOP
0004A0: A0 20 20 52 45 53 20 33 2C 28 48 4C 29 A0 20 20 . RES 3,(HL).
0004B0: 4C 44 20 42 2C 35 A0 20 20 53 45 54 20 37 2C 42 LD B,5. SET 7,B
0004C0: A0 20 20 52 45 53 20 32 2C 42 A0 20 20 44 45 43 . RES 2,B. DEC
0004D0: 20 42 A0 20 20 42 49 54 20 35 2C 42 A0 20 20 52 B. BIT 5,B. R
0004E0: 45 54 20 5A A0 20 20 A0 20 53 54 4F 52 45 20 42 ET Z. . STORE B
0004F0: 49 4E 20 31 36 A0 20 20 A0 20 20 A0 20 20 20 20 IN 16. . .
000500: 20 20 20 20 20 20 4C 4F 47 E4 9C 49 43 41 4C 20 LOG..ICAL
000510: 49 4E 53 54 52 55 43 54 49 4F 4E 53 A0 A0 20 54 INSTRUCTIONS.. T
000520: 68 65 72 65 20 20 61 72 65 20 20 74 68 72 65 65 here are three
000530: 20 6C 6F 67 69 63 61 6C 20 20 69 6E 73 74 72 75 logical instru
000540: 63 74 69 6F 6E 73 61 76 61 69 6C 61 62 6C 65 20 ctionsavailable
000550: 20 6F 6E 20 20 74 68 65 20 20 5A 38 30 2E 20 20 on the Z80.
000560: 20 54 68 65 79 20 61 72 65 20 20 61 6C 6C 70 65 They are allpe
000570: 72 66 6F 72 6D 65 64 20 20 6F 6E 20 61 20 62 69 rformed on a bi
000580: 74 20 62 79 20 62 69 74 20 62 61 73 69 73 20 62 t by bit basis b
000590: 65 74 77 65 65 6E 74 68 65 20 41 63 63 75 6D 75 etweenthe Accumu
0005A0: 6C 61 74 6F 72 20 61 6E 64 20 61 20 20 6E 75 6D lator and a num
0005B0: 62 65 72 2C 20 72 65 67 69 73 74 65 72 2C 6F 72 ber, register,or
0005C0: 20 69 6E 64 69 72 65 63 74 6C 79 20 61 64 64 72 indirectly addr
0005D0: 65 73 73 65 64 20 20 6D 65 6D 6F 72 79 20 6C 6F essed memory lo
0005E0: 63 61 74 69 6F 6E 28 48 4C 29 2E 20 20 54 68 65 cation(HL). The
0005F0: 20 20 20 72 65 73 75 6C 74 20 20 20 69 73 20 20 result is
000600: 6C 65 66 74 20 20 20 69 6E 20 20 D4 1A 74 68 65 left in ..the
000610: 41 63 63 75 6D 75 6C 61 74 6F 72 2E A0 A0 20 49 Accumulator... I
000620: 6E 20 74 68 65 20 41 4E 44 20 69 6E 73 74 72 75 n the AND instru
000630: 63 74 69 6F 6E 2C 20 69 66 20 61 20 62 69 74 20 ction, if a bit
000640: 69 6E 20 74 68 65 41 63 63 75 6D 75 6C 61 74 6F in theAccumulato
000650: 72 20 20 41 4E 44 20 20 6F 74 68 65 72 20 6E 75 r AND other nu
000660: 6D 62 65 72 20 61 72 65 20 20 22 31 22 2C 74 68 mber are "1",th
000670: 65 6E 20 74 68 65 20 63 6F 72 72 65 73 70 6F 6E en the correspon
000680: 64 69 6E 67 20 62 69 74 20 69 6E 20 74 68 65 20 ding bit in the
000690: 72 65 73 75 6C 74 77 69 6C 6C 20 62 65 20 22 31 resultwill be "1
0006A0: 22 2E 20 49 66 20 6E 6F 74 20 69 74 20 77 69 6C ". If not it wil
0006B0: 6C 20 62 65 20 22 30 22 A0 A0 20 69 2E 65 2E 20 l be "0".. i.e.
0006C0: 20 20 20 20 20 30 31 31 30 31 31 30 30 A0 20 20 01101100.
0006D0: 20 20 20 20 20 20 20 20 20 30 31 30 31 30 31 31 0101011
0006E0: 30 20 20 20 41 4E 44 65 64 20 74 6F 67 65 74 68 0 ANDed togeth
0006F0: 65 72 A0 20 67 69 76 65 73 20 20 20 20 20 30 31 er. gives 01
000700: 30 30 30 31 30 30 A0 A0 20 41 73 20 77 27 B2 65 000100.. As w'.e
000710: 6C 6C 20 61 73 20 20 70 65 72 66 6F 72 6D 69 6E ll as performin
000720: 67 20 20 41 4E 44 73 20 6F 6E 20 6F 75 72 20 6F g ANDs on our o
000730: 77 6E 66 6C 61 67 73 2C 20 20 74 68 69 73 20 20 wnflags, this
000740: 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 69 73 20 instruction is
000750: 20 75 73 65 66 75 6C 20 69 6E 6D 61 73 6B 69 6E useful inmaskin
000760: 67 20 6F 66 66 20 61 72 65 61 73 20 6F 66 20 77 g off areas of w
000770: 6F 72 64 73 2C 20 6F 72 20 72 65 73 65 74 74 69 ords, or resetti
000780: 6E 67 67 72 6F 75 70 73 20 6F 66 20 62 69 74 73 nggroups of bits
000790: 20 69 6E 20 74 68 65 20 41 63 63 75 6D 75 6C 61 in the Accumula
0007A0: 74 6F 72 2E A3 20 49 6E 20 20 74 68 65 20 4F 52 tor.£ In the OR
0007B0: 20 69 6E 73 74 72 75 63 74 69 6F 6E 2C 20 69 66 instruction, if
0007C0: 20 61 20 62 69 74 20 69 6E 20 74 68 65 41 63 63 a bit in theAcc
0007D0: 75 6D 75 6C 61 74 6F 72 20 20 4F 52 20 69 6E 20 umulator OR in
0007E0: 74 68 65 20 6F 74 68 65 72 20 6E 75 6D 62 65 72 the other number
0007F0: 20 69 73 20 61 22 31 22 2C 20 74 68 65 20 63 6F is a"1", the co
000800: 72 72 65 73 70 6F 6E 64 69 6E 67 20 62 69 74 A1 rresponding bit.
000810: E3 20 69 6E 20 74 68 65 20 72 65 73 75 6C 74 77 . in the resultw
000820: 69 6C 6C 20 62 65 20 22 31 22 2E 20 49 66 20 6E ill be "1". If n
000830: 6F 74 20 69 74 20 77 69 6C 6C 20 62 65 20 22 30 ot it will be "0
000840: 22 A0 A0 20 69 2E 65 2E 20 20 20 20 20 20 30 31 ".. i.e. 01
000850: 31 30 31 31 30 30 A0 20 20 20 20 20 20 20 20 20 101100.
000860: 20 20 30 31 30 31 30 31 31 30 20 20 20 4F 52 65 01010110 ORe
000870: 64 20 74 6F 67 65 74 68 65 72 A0 20 67 69 76 65 d together. give
000880: 20 20 20 20 20 20 30 31 31 31 31 31 31 30 A0 A0 01111110..
000890: 20 41 73 20 77 65 6C 6C 20 61 73 20 70 65 72 66 As well as perf
0008A0: 6F 72 6D 69 6E 67 20 20 4F 52 20 6F 70 65 72 61 orming OR opera
0008B0: 74 69 6F 6E 73 20 6F 6E 6F 75 72 20 20 6F 77 6E tions onour own
0008C0: 20 20 66 6C 61 67 73 2C 20 20 20 74 68 69 73 20 flags, this
0008D0: 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 69 73 instruction is
0008E0: 75 73 65 66 75 6C 20 69 6E 20 53 45 54 74 69 6E useful in SETtin
0008F0: 67 20 61 20 67 72 6F 75 70 20 6F 66 20 62 69 74 g a group of bit
000900: 73 20 69 6E 20 74 68 65 41 63 63 75 6D 75 6C 61 s in theAccumula
000910: 74 48 9C 6F 72 2E A3 20 49 6E 20 74 68 65 20 58 tH.or.£ In the X
000920: 4F 52 20 20 28 65 58 63 6C 75 73 69 76 65 20 4F OR (eXclusive O
000930: 52 29 20 69 6E 73 74 72 75 63 74 69 6F 6E 2C 69 R) instruction,i
000940: 66 20 74 68 65 20 20 62 69 74 20 69 6E 20 74 68 f the bit in th
000950: 65 20 20 41 63 63 75 6D 75 6C 61 74 6F 72 20 20 e Accumulator
000960: 69 73 20 20 74 68 65 73 61 6D 65 20 61 73 20 74 is thesame as t
000970: 68 61 74 20 69 6E 20 74 68 65 20 20 6E 75 6D 62 hat in the numb
000980: 65 72 20 2C 20 20 74 68 65 6E 20 20 74 68 65 63 er , then thec
000990: 6F 72 72 65 73 70 6F 6E 64 69 6E 67 20 20 62 69 orresponding bi
0009A0: 74 20 69 6E 20 74 68 65 20 72 65 73 75 6C 74 20 t in the result
0009B0: 77 69 6C 6C 20 62 65 22 30 22 2E 20 20 49 66 20 will be"0". If
0009C0: 74 68 65 79 20 61 72 65 20 20 64 69 66 66 65 72 they are differ
0009D0: 65 6E 74 20 69 74 20 20 77 69 6C 6C 20 62 65 22 ent it will be"
0009E0: 31 22 2E 20 41 6E 6F 74 68 65 72 20 77 61 79 20 1". Another way
0009F0: 6F 66 20 6C 6F 6F 6B 69 6E 67 20 61 74 20 20 74 of looking at t
000A00: 68 65 20 20 58 4F 52 69 6E 73 74 72 75 63 74 69 he XORinstructi
000A10: 6F 6E 20 A6 5D 69 73 20 20 69 66 20 20 6F 6E 65 on .]is if one
000A20: 20 20 4F 52 20 74 68 65 20 6F 74 68 65 72 20 69 OR the other i
000A30: 73 22 31 22 20 62 75 74 20 20 4E 4F 54 20 20 62 s"1" but NOT b
000A40: 6F 74 68 2C 20 20 74 68 65 20 20 61 6E 73 77 65 oth, the answe
000A50: 72 20 77 69 6C 6C 20 62 65 22 31 22 2E A0 A0 20 r will be"1"...
000A60: 69 2E 65 2E 20 20 20 20 20 20 30 31 31 30 31 31 i.e. 011011
000A70: 30 30 A0 20 20 20 20 20 20 20 20 20 20 20 30 31 00. 01
000A80: 30 31 30 31 31 30 20 20 20 20 58 4F 52 65 64 20 010110 XORed
000A90: 74 6F 67 65 74 68 65 72 A0 20 67 69 76 65 20 20 together. give
000AA0: 20 20 20 20 30 30 31 31 31 30 31 30 A0 A0 20 41 00111010.. A
000AB0: 70 61 72 74 20 20 66 72 6F 6D 20 20 70 65 72 66 part from perf
000AC0: 6F 72 6D 69 6E 67 20 74 68 65 20 6C 6F 67 69 63 orming the logic
000AD0: 61 6C 20 58 4F 52 66 75 6E 63 74 69 6F 6E 20 20 al XORfunction
000AE0: 6F 6E 20 20 6F 75 72 20 20 6F 77 6E 20 20 66 6C on our own fl
000AF0: 61 67 73 20 20 20 74 68 65 20 20 58 4F 52 69 6E ags the XORin
000B00: 73 74 72 75 63 74 69 6F 6E 20 20 20 69 73 20 20 struction is
000B10: 75 73 65 66 75 FE 9C 6C 20 20 20 69 6E 20 20 69 usefu..l in i
000B20: 6E 76 65 72 74 69 6E 67 69 6E 64 69 76 69 64 75 nvertingindividu
000B30: 61 6C 20 6F 72 20 67 72 6F 75 70 73 20 6F 66 20 al or groups of
000B40: 62 69 74 73 2E A3 20 54 68 65 20 74 68 72 65 65 bits.£ The three
000B50: 20 6C 6F 67 69 63 61 6C 20 69 6E 73 74 72 75 63 logical instruc
000B60: 74 69 6F 6E 73 20 41 4E 44 2C 20 4F 52 2C 61 6E tions AND, OR,an
000B70: 64 20 20 58 4F 52 20 20 61 66 66 65 63 74 20 20 d XOR affect
000B80: 74 68 65 20 20 5A 65 72 6F 2C 20 20 53 69 67 6E the Zero, Sign
000B90: 2C 20 20 61 6E 64 50 61 72 69 74 79 20 66 6C 61 , andParity fla
000BA0: 67 73 2E 20 54 68 65 20 43 61 72 72 79 20 66 6C gs. The Carry fl
000BB0: 61 67 20 69 73 20 72 65 73 65 74 20 74 6F 22 30 ag is reset to"0
000BC0: 22 20 69 6E 20 61 6C 6C 20 63 61 73 65 73 2E 20 " in all cases.
000BD0: 54 68 75 73 20 74 68 65 20 6C 69 6D 69 74 61 74 Thus the limitat
000BE0: 69 6F 6E 20 6F 66 6E 6F 20 20 20 43 6C 65 61 72 ion ofno Clear
000BF0: 20 20 43 61 72 72 79 20 20 69 6E 73 74 72 75 63 Carry instruc
000C00: 74 69 6F 6E 20 20 20 63 61 6E 20 20 62 65 70 65 tion can bepe
000C10: 72 66 6F 72 6D 65 64 6C AF 20 62 79 20 61 20 6C rformedl. by a l
000C20: 6F 67 69 63 61 6C 20 69 6E 73 74 72 75 63 74 69 ogical instructi
000C30: 6F 6E 2E A0 A0 20 41 4E 44 20 41 20 6F 72 20 4F on... AND A or O
000C40: 52 20 41 20 77 69 6C 6C 20 63 6C 65 61 72 20 74 R A will clear t
000C50: 68 65 20 63 61 72 72 79 20 66 6C 61 67 61 6E 64 he carry flagand
000C60: 20 6E 6F 74 20 61 66 66 65 63 74 20 61 6E 79 20 not affect any
000C70: 72 65 67 69 73 74 65 72 73 2E 20 58 4F 52 20 41 registers. XOR A
000C80: 20 77 69 6C 6C 63 6C 65 61 72 20 43 61 72 72 79 willclear Carry
000C90: 20 61 6E 64 20 74 68 65 20 41 63 63 75 6D 75 6C and the Accumul
000CA0: 61 74 6F 72 2E A3 20 53 75 6D 6D 61 72 79 20 2D ator.£ Summary -
000CB0: 20 6C 6F 67 69 63 61 6C 20 69 6E 73 74 72 75 63 logical instruc
000CC0: 74 69 6F 6E 73 A0 A0 20 41 4E 44 20 6E A0 20 41 tions.. AND n. A
000CD0: 4E 44 20 72 A0 20 41 4E 44 20 28 48 4C 29 A0 A0 ND r. AND (HL)..
000CE0: 20 4F 52 20 6E A0 20 4F 52 20 72 A0 20 4F 52 20 OR n. OR r. OR
000CF0: 28 48 4C 29 A0 A0 20 58 4F 52 20 6E A0 20 58 4F (HL).. XOR n. XO
000D00: 52 20 72 A0 20 58 4F 52 20 28 48 4C 29 A3 20 20 R r. XOR (HL)£
000D10: 20 20 45 58 41 4D 50 4C 45 7B 6F 53 20 4F 46 20 EXAMPLE{oS OF
000D20: 4C 4F 47 49 43 41 4C 20 49 4E 53 54 52 55 43 54 LOGICAL INSTRUCT
000D30: 49 4F 4E 53 A0 A0 20 54 68 65 20 65 78 61 6D 70 IONS.. The examp
000D40: 6C 65 73 20 69 6C 6C 75 73 74 72 61 74 65 20 20 les illustrate
000D50: 74 68 65 20 20 6F 70 65 72 61 74 69 6F 6E 6F 66 the operationof
000D60: 20 20 74 68 65 20 20 6C 6F 67 69 63 20 20 69 6E the logic in
000D70: 73 74 72 75 63 74 69 6F 6E 73 2E 20 20 54 68 65 structions. The
000D80: 20 70 75 70 69 6C 73 68 6F 75 6C 64 20 20 20 74 pupilshould t
000D90: 65 73 74 20 20 20 68 69 73 2F 68 65 72 20 20 20 est his/her
000DA0: 20 75 6E 64 65 72 73 74 61 6E 64 69 6E 67 66 75 understandingfu
000DB0: 72 74 68 65 72 20 62 79 20 6D 6F 64 69 66 79 69 rther by modifyi
000DC0: 6E 67 20 74 68 65 20 63 6F 6E 74 65 6E 74 73 20 ng the contents
000DD0: 6F 66 20 74 68 65 33 20 73 74 6F 72 65 73 2E A3 of the3 stores.£
000DE0: 20 4C 44 20 48 4C 2C 53 54 32 A0 20 20 4C 44 20 LD HL,ST2. LD
000DF0: 41 2C 28 53 54 31 29 A0 20 20 41 4E 44 20 28 48 A,(ST1). AND (H
000E00: 4C 29 A0 20 20 4C 44 20 28 53 54 33 29 2C 41 A0 L). LD (ST3),A.
000E10: 20 20 4C 44 20 41 2C 28 53 54 31 92 E4 29 A0 20 LD A,(ST1..).
000E20: 20 4F 52 20 28 48 4C 29 A0 20 20 4C 44 20 28 53 OR (HL). LD (S
000E30: 54 33 29 2C 41 A0 20 20 4C 44 20 41 2C 28 53 54 T3),A. LD A,(ST
000E40: 31 29 A0 20 20 58 4F 52 20 28 48 4C 29 A0 20 20 1). XOR (HL).
000E50: 4C 44 20 28 53 54 33 29 2C 41 A0 20 20 52 45 54 LD (ST3),A. RET
000E60: A0 20 20 A0 20 53 54 31 20 20 20 42 49 4E 20 36 . . ST1 BIN 6
000E70: 35 48 A0 20 53 54 32 20 20 20 42 49 4E 20 46 48 5H. ST2 BIN FH
000E80: A0 20 53 54 33 20 20 20 42 49 4E 20 30 48 A0 20 . ST3 BIN 0H.
000E90: 20 A0 20 20 20 20 20 20 20 20 20 20 20 20 53 48 . SH
000EA0: 49 46 54 20 49 4E 53 54 52 55 43 54 49 4F 4E 53 IFT INSTRUCTIONS
000EB0: A0 A0 20 41 20 73 68 69 66 74 20 69 6E 73 74 72 .. A shift instr
000EC0: 75 63 74 69 6F 6E 20 69 73 20 6F 6E 65 20 69 6E uction is one in
000ED0: 20 77 68 69 63 68 20 74 68 65 62 69 74 73 20 6F which thebits o
000EE0: 66 20 20 61 20 20 72 65 67 69 73 74 65 72 20 6F f a register o
000EF0: 72 20 20 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 69 r memory locati
000F00: 6F 6E 61 72 65 20 6D 6F 76 65 64 20 73 69 64 65 onare moved side
000F10: 77 61 79 73 2C 20 6C 65 66 74 20 6F 72 C3 04 20 ways, left or..
000F20: 72 69 67 68 74 20 74 6F 20 74 68 65 61 64 6A 61 right to theadja
000F30: 63 65 6E 74 20 62 69 74 2E 20 20 41 73 20 20 77 cent bit. As w
000F40: 65 20 20 73 68 61 6C 6C 20 20 73 65 65 2C 20 20 e shall see,
000F50: 74 68 69 73 67 69 76 65 73 20 75 73 20 61 20 6D thisgives us a m
000F60: 65 61 6E 73 20 20 6F 66 20 64 69 76 69 73 69 6F eans of divisio
000F70: 6E 20 61 73 20 77 65 6C 6C 20 61 73 6D 75 6C 74 n as well asmult
000F80: 69 70 6C 69 63 61 74 69 6F 6E 2E A3 20 54 68 65 iplication.£ The
000F90: 20 20 53 52 41 20 72 2C 20 20 61 6E 64 20 20 53 SRA r, and S
000FA0: 52 41 20 28 48 4C 29 20 69 6E 73 74 72 75 63 74 RA (HL) instruct
000FB0: 69 6F 6E 73 73 68 69 66 74 20 74 68 65 20 20 72 ionsshift the r
000FC0: 65 67 69 73 74 65 72 2F 6D 65 6D 6F 72 79 20 6C egister/memory l
000FD0: 6F 63 61 74 69 6F 6E 20 28 48 4C 29 72 69 67 68 ocation (HL)righ
000FE0: 74 2C 20 20 73 68 69 66 74 69 6E 67 20 20 62 69 t, shifting bi
000FF0: 74 20 30 20 20 69 6E 74 6F 20 20 74 68 65 20 43 t 0 into the C
001000: 61 72 72 79 66 6C 61 67 20 61 6E 64 20 72 65 74 arryflag and ret
001010: 61 69 6E 69 6E 67 20 74 68 65 20 73 74 61 74 E1 aining the stat.
001020: 59 65 20 6F 66 20 62 69 74 20 37 2E A0 A0 20 69 Ye of bit 7... i
001030: 2E 65 2E 20 20 20 20 37 20 36 20 35 20 34 20 33 .e. 7 6 5 4 3
001040: 20 32 20 31 20 30 20 20 20 43 A0 20 20 20 20 20 2 1 0 C.
001050: 20 20 20 20 30 20 31 20 31 20 30 20 30 20 30 20 0 1 1 0 0 0
001060: 31 20 30 20 20 20 78 20 20 28 39 38 20 64 65 63 1 0 x (98 dec
001070: 2E 29 20 62 65 63 6F 6D 65 73 20 20 30 20 30 20 .) becomes 0 0
001080: 31 20 31 20 30 20 30 20 30 20 31 20 20 20 30 20 1 1 0 0 0 1 0
001090: 20 28 34 39 20 64 65 63 2E 29 20 A0 20 20 6F 72 (49 dec.) . or
0010A0: 20 20 20 20 20 31 20 31 20 31 20 30 20 30 20 30 1 1 1 0 0 0
0010B0: 20 31 20 30 20 20 20 78 20 20 28 2D 33 30 20 64 1 0 x (-30 d
0010C0: 65 63 2E 29 62 65 63 6F 6D 65 73 20 20 31 20 31 ec.)becomes 1 1
0010D0: 20 31 20 31 20 30 20 30 20 30 20 31 20 20 20 30 1 1 0 0 0 1 0
0010E0: 20 20 28 2D 31 35 20 64 65 63 2E 29 A0 20 48 65 (-15 dec.). He
0010F0: 6E 63 65 20 20 20 74 68 65 20 20 20 53 52 41 20 nce the SRA
001100: 20 20 6F 72 20 20 20 20 53 68 69 66 74 20 20 20 or Shift
001110: 52 69 67 68 74 41 72 69 74 68 6D 65 74 69 63 61 RightArithmetica
001120: 6C 38 80 6C 79 20 69 6E 73 74 72 75 63 74 69 6F l8.ly instructio
001130: 6E 20 64 69 76 69 64 65 73 20 20 62 6F 74 68 70 n divides bothp
001140: 6F 73 69 74 69 76 65 20 61 6E 64 20 6E 65 67 61 ositive and nega
001150: 74 69 76 65 20 6E 75 6D 62 65 72 73 20 62 79 20 tive numbers by
001160: 32 2E A3 20 54 68 65 20 20 53 52 4C 20 72 2C 20 2.£ The SRL r,
001170: 20 61 6E 64 20 20 53 52 4C 20 28 48 4C 29 20 69 and SRL (HL) i
001180: 6E 73 74 72 75 63 74 69 6F 6E 73 73 68 69 66 74 nstructionsshift
001190: 20 20 20 74 68 65 20 20 20 72 65 67 69 73 74 65 the registe
0011A0: 72 2F 6D 65 6D 6F 72 79 20 20 20 6C 6F 63 61 74 r/memory locat
0011B0: 69 6F 6E 63 6F 6E 74 65 6E 74 73 20 72 69 67 68 ioncontents righ
0011C0: 74 2C 20 73 68 69 66 74 69 6E 67 20 20 62 69 74 t, shifting bit
0011D0: 20 30 20 69 6E 74 6F 20 74 68 65 43 61 72 72 79 0 into theCarry
0011E0: 20 66 6C 61 67 20 61 6E 64 20 61 20 22 30 22 20 flag and a "0"
0011F0: 69 6E 74 6F 20 62 69 74 20 37 2E A0 A0 20 69 2E into bit 7... i.
001200: 65 2E 20 20 20 20 37 20 36 20 35 20 34 20 33 20 e. 7 6 5 4 3
001210: 32 20 31 20 30 20 20 20 43 A0 20 20 20 20 20 20 2 1 0 C.
001220: 20 20 20 46 35 31 20 30 20 31 20 31 20 30 20 31 F51 0 1 1 0 1
001230: 20 31 20 31 20 20 20 78 20 20 28 31 38 33 20 64 1 1 x (183 d
001240: 65 63 2E 29 62 65 63 6F 6D 65 73 20 20 30 20 31 ec.)becomes 0 1
001250: 20 30 20 31 20 31 20 30 20 31 20 31 20 20 20 31 0 1 1 0 1 1 1
001260: 20 20 28 39 31 20 64 65 63 2E 29 20 20 20 20 20 (91 dec.)
001270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001280: 20 20 20 20 20 20 20 20 20 20 61 6E 64 20 43 61 and Ca
001290: 72 72 79 20 A0 20 54 68 65 20 20 53 52 4C 20 20 rry . The SRL
0012A0: 20 6F 72 20 20 20 53 68 69 66 74 20 20 52 69 67 or Shift Rig
0012B0: 68 74 20 20 4C 6F 67 69 63 61 6C 6C 79 69 6E 73 ht Logicallyins
0012C0: 74 72 75 63 74 69 6F 6E 20 74 68 65 72 65 66 6F truction therefo
0012D0: 72 65 20 64 69 76 69 64 65 73 20 61 20 70 6F 73 re divides a pos
0012E0: 69 74 69 76 65 6E 75 6D 62 65 72 20 62 79 20 32 itivenumber by 2
0012F0: 2E 20 20 41 73 20 77 69 74 68 20 53 52 41 20 74 . As with SRA t
001300: 68 65 20 43 61 72 72 79 20 66 6C 61 67 69 6E 64 he Carry flagind
001310: 69 63 61 74 65 73 20 74 68 65 20 68 61 6C 66 2E icates the half.
001320: A3 20 54 68 65 CC 71 20 20 53 4C 41 20 72 2C 20 £ The.q SLA r,
001330: 20 61 6E 64 20 20 53 4C 41 20 28 48 4C 29 20 69 and SLA (HL) i
001340: 6E 73 74 72 75 63 74 69 6F 6E 73 73 68 69 66 74 nstructionsshift
001350: 20 20 74 68 65 20 72 65 67 69 73 74 65 72 2F 6D the register/m
001360: 65 6D 6F 72 79 20 63 6F 6E 74 65 6E 74 73 20 6C emory contents l
001370: 65 66 74 73 68 69 66 74 69 6E 67 20 61 20 22 30 eftshifting a "0
001380: 22 20 69 6E 74 6F 20 62 69 74 20 30 20 61 6E 64 " into bit 0 and
001390: 20 62 69 74 20 37 20 69 6E 74 6F 74 68 65 20 43 bit 7 intothe C
0013A0: 61 72 72 79 20 66 6C 61 67 2E A0 A0 20 69 2E 65 arry flag... i.e
0013B0: 2E 20 20 20 20 43 20 20 20 37 20 36 20 35 20 34 . C 7 6 5 4
0013C0: 20 33 20 32 20 31 20 30 A0 20 20 20 20 20 20 20 3 2 1 0.
0013D0: 20 20 78 20 20 20 30 20 31 20 31 20 30 20 30 20 x 0 1 1 0 0
0013E0: 30 20 31 20 30 20 20 28 39 38 20 64 65 63 2E 29 0 1 0 (98 dec.)
0013F0: A0 62 65 63 6F 6D 65 73 20 20 30 20 20 20 31 20 .becomes 0 1
001400: 31 20 30 20 30 20 30 20 31 20 30 20 30 20 20 28 1 0 0 0 1 0 0 (
001410: 31 39 36 20 64 65 63 2E 29 A0 20 48 65 6E 63 65 196 dec.). Hence
001420: 20 74 68 65 20 72 65 D0 B3 73 75 6C 74 20 6F 66 the re..sult of
001430: 20 74 68 65 20 69 6E 73 74 72 75 63 74 69 6F 6E the instruction
001440: 20 53 4C 41 6F 72 20 20 20 53 68 69 66 74 20 20 SLAor Shift
001450: 4C 65 66 74 20 20 41 72 69 74 68 6D 65 74 69 63 Left Arithmetic
001460: 61 6C 6C 79 20 20 69 73 20 20 74 6F 6D 75 6C 74 ally is tomult
001470: 69 70 6C 79 20 20 74 68 65 20 20 70 6F 73 69 74 iply the posit
001480: 69 76 65 20 6E 75 6D 62 65 72 20 62 79 20 32 2E ive number by 2.
001490: 20 54 68 65 43 61 72 72 79 20 20 69 6E 64 69 63 TheCarry indic
0014A0: 61 74 65 73 20 20 61 20 20 72 65 73 75 6C 74 20 ates a result
0014B0: 67 72 65 61 74 65 72 20 74 68 61 6E 32 35 35 2E greater than255.
0014C0: A0 A0 41 6C 6C 20 74 68 65 73 65 20 69 6E 73 74 ..All these inst
0014D0: 72 75 63 74 69 6F 6E 73 20 20 61 66 66 65 63 74 ructions affect
0014E0: 20 20 6E 6F 74 20 6F 6E 6C 79 74 68 65 20 43 61 not onlythe Ca
0014F0: 72 72 79 20 66 6C 61 67 2C 20 20 62 75 74 20 74 rry flag, but t
001500: 68 65 20 5A 65 72 6F 2C 20 53 69 67 6E 2C 20 61 he Zero, Sign, a
001510: 6E 64 50 61 72 69 74 79 20 66 6C 61 67 73 2E A3 ndParity flags.£
001520: 20 53 75 6D 6D 61 72 79 20 E0 FA 2D 20 73 68 69 Summary ..- shi
001530: 66 74 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 A0 ft instructions.
001540: A0 20 53 52 41 20 72 20 20 64 69 76 69 64 65 73 . SRA r divides
001550: 20 2B 76 65 20 61 6E 64 20 2D 76 65 20 6E 75 6D +ve and -ve num
001560: 62 65 72 73 20 62 79 20 32 A0 20 53 52 41 20 28 bers by 2. SRA (
001570: 48 4C 29 A0 A0 20 53 52 4C 20 72 20 20 64 69 76 HL).. SRL r div
001580: 69 64 65 73 20 2B 76 65 20 6E 75 6D 62 65 72 73 ides +ve numbers
001590: 20 30 20 2D 20 32 35 35 20 62 79 20 32 A0 20 53 0 - 255 by 2. S
0015A0: 52 4C 20 28 48 4C 29 A0 A0 20 53 4C 41 20 72 20 RL (HL).. SLA r
0015B0: 20 6D 75 6C 74 69 70 6C 69 65 73 20 2B 76 65 20 multiplies +ve
0015C0: 61 6E 64 20 2D 76 65 20 6E 75 6D 62 65 72 73 A0 and -ve numbers.
0015D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0015E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0015F0: 20 20 20 20 62 79 20 32 A0 20 53 4C 41 20 28 48 by 2. SLA (H
001600: 4C 29 A3 20 20 20 20 45 58 41 4D 50 4C 45 53 20 L)£ EXAMPLES
001610: 4F 46 20 53 48 49 46 54 20 49 4E 53 54 52 55 43 OF SHIFT INSTRUC
001620: 54 49 4F 4E 53 A0 A0 20 54 68 65 36 7F 20 20 20 TIONS.. The6.
001630: 74 68 72 65 65 20 20 20 73 68 69 66 74 20 20 69 three shift i
001640: 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 20 61 72 nstructions ar
001650: 65 69 6C 6C 75 73 74 72 61 74 65 64 20 20 75 73 eillustrated us
001660: 69 6E 67 20 61 20 66 69 78 65 64 20 69 6E 69 74 ing a fixed init
001670: 69 61 6C 20 76 61 6C 75 65 69 6E 20 74 68 65 20 ial valuein the
001680: 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 69 6F 6E 20 memory location
001690: 53 54 4F 52 45 2E A3 20 4C 44 20 48 4C 2C 53 54 STORE.£ LD HL,ST
0016A0: 4F 52 45 A0 20 20 4C 44 20 42 2C 35 A0 20 4C 4F ORE. LD B,5. LO
0016B0: 4F 50 31 20 53 52 41 20 28 48 4C 29 A0 20 20 44 OP1 SRA (HL). D
0016C0: 4A 4E 5A 20 4C 4F 4F 50 31 A0 20 20 4C 44 20 28 JNZ LOOP1. LD (
0016D0: 48 4C 29 2C 41 35 48 A0 20 20 4C 44 20 42 2C 35 HL),A5H. LD B,5
0016E0: A0 20 4C 4F 4F 50 32 20 53 4C 41 20 28 48 4C 29 . LOOP2 SLA (HL)
0016F0: A0 20 20 44 4A 4E 5A 20 4C 4F 4F 50 32 A0 20 20 . DJNZ LOOP2.
001700: 4C 44 20 42 2C 38 A0 20 4C 4F 4F 50 33 20 53 52 LD B,8. LOOP3 SR
001710: 4C 20 28 48 4C 29 A0 20 20 44 4A 4E 5A 20 4C 4F L (HL). DJNZ LO
001720: 4F 50 33 A0 20 20 52 45 54 A0 20 20 A0 A3 4D 20 OP3. RET. .£M
001730: 53 54 4F 52 45 20 42 49 4E 20 36 39 48 A0 20 20 STORE BIN 69H.
001740: A0 20 20 A0 20 20 20 20 20 20 20 20 20 20 20 20 . .
001750: 52 4F 54 41 54 45 20 49 4E 53 54 52 55 43 54 49 ROTATE INSTRUCTI
001760: 4F 4E 53 A0 A0 20 54 68 65 73 65 20 20 69 6E 73 ONS.. These ins
001770: 74 72 75 63 74 69 6F 6E 73 20 61 72 65 20 73 68 tructions are sh
001780: 69 66 74 20 69 6E 73 74 72 75 63 74 2D 69 6F 6E ift instruct-ion
001790: 73 20 69 6E 20 77 68 69 63 68 20 74 68 65 20 62 s in which the b
0017A0: 69 74 20 74 68 61 74 20 66 61 6C 6C 73 20 6F 75 it that falls ou
0017B0: 74 20 6F 6E 65 65 6E 64 20 6F 66 20 74 68 65 20 t oneend of the
0017C0: 72 65 67 69 73 74 65 72 20 20 6F 72 20 6D 65 6D register or mem
0017D0: 6F 72 79 20 20 6C 6F 63 61 74 69 6F 6E 69 73 20 ory locationis
0017E0: 70 75 73 68 65 64 20 62 61 63 6B 20 69 6E 74 6F pushed back into
0017F0: 20 74 68 65 20 20 6F 74 68 65 72 20 65 6E 64 2E the other end.
001800: 20 20 54 68 65 43 61 72 72 79 20 66 6C 61 67 20 TheCarry flag
001810: 20 65 69 74 68 65 72 20 20 66 6F 72 6D 73 20 20 either forms
001820: 70 61 72 74 20 20 6F 66 20 20 74 68 65 6E 75 9C part of thenu.
001830: 85 6D 62 65 72 20 73 68 69 66 74 65 64 2C 20 74 .mber shifted, t
001840: 68 65 72 65 62 79 20 6D 61 6B 69 6E 67 20 69 74 hereby making it
001850: 20 39 20 62 69 74 73 6C 6F 6E 67 2C 20 6F 72 20 9 bitslong, or
001860: 64 75 70 6C 69 63 61 74 65 73 20 74 68 65 20 73 duplicates the s
001870: 74 61 74 65 20 6F 66 20 74 68 65 20 62 69 74 74 tate of the bitt
001880: 68 61 74 20 66 65 6C 6C 20 6F 75 74 20 6F 66 20 hat fell out of
001890: 74 68 65 20 72 65 67 69 73 74 65 72 2E 20 54 68 the register. Th
0018A0: 65 72 65 20 61 72 65 74 68 65 72 65 66 6F 72 65 ere aretherefore
0018B0: 20 20 20 66 6F 75 72 20 20 20 64 69 66 66 65 72 four differ
0018C0: 65 6E 74 20 20 20 74 79 70 65 73 20 20 6F 66 72 ent types ofr
0018D0: 6F 74 61 74 65 2E A3 20 52 4C 43 20 72 2C 20 61 otate.£ RLC r, a
0018E0: 6E 64 20 52 4C 43 20 28 48 4C 29 20 28 6E 61 6D nd RLC (HL) (nam
0018F0: 65 6C 79 20 52 6F 74 61 74 65 20 4C 65 66 74 43 ely Rotate LeftC
001900: 61 72 72 79 20 64 75 70 6C 69 63 61 74 69 6E 67 arry duplicating
001910: 20 29 2C 20 73 68 69 66 74 73 20 74 68 65 20 63 ), shifts the c
001920: 6F 6E 74 65 6E 74 73 6C 65 66 74 2C 20 62 69 74 ontentsleft, bit
001930: 20 D9 55 37 20 72 6F 74 61 74 69 6E 67 20 69 6E .U7 rotating in
001940: 74 6F 20 62 69 74 20 30 2C 20 61 6E 64 20 74 68 to bit 0, and th
001950: 65 43 61 72 72 79 20 64 75 70 6C 69 63 61 74 69 eCarry duplicati
001960: 6E 67 20 74 68 65 20 74 72 61 6E 73 66 65 72 72 ng the transferr
001970: 65 64 20 62 69 74 2E A0 A0 20 69 2E 65 2E 20 20 ed bit... i.e.
001980: 20 20 43 20 20 37 20 36 20 35 20 34 20 33 20 32 C 7 6 5 4 3 2
001990: 20 31 20 30 A0 20 20 20 20 20 20 20 20 20 78 20 1 0. x
0019A0: 20 31 20 30 20 31 20 31 20 30 20 30 20 30 20 31 1 0 1 1 0 0 0 1
0019B0: A0 62 65 63 6F 6D 65 73 20 20 31 20 20 30 20 31 .becomes 1 0 1
0019C0: 20 31 20 30 20 30 20 30 20 31 20 31 20 20 6F 6C 1 0 0 0 1 1 ol
0019D0: 64 20 62 69 74 20 37 3D 31 A0 20 52 4C 20 72 2C d bit 7=1. RL r,
0019E0: 20 61 6E 64 20 52 4C 20 28 48 4C 29 20 20 52 6F and RL (HL) Ro
0019F0: 74 61 74 65 20 4C 65 66 74 2C 20 72 6F 74 61 74 tate Left, rotat
001A00: 65 73 74 68 65 20 20 72 65 67 69 73 74 65 72 2F esthe register/
001A10: 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 69 6F 6E 20 memory location
001A20: 20 77 69 74 68 20 20 74 68 65 43 61 72 72 79 20 with theCarry
001A30: 61 73 20 69 C2 61 20 39 74 68 20 62 69 74 2C 20 as i.a 9th bit,
001A40: 6C 65 66 74 2E A0 A0 20 69 2E 65 2E 20 20 20 20 left... i.e.
001A50: 43 20 20 37 20 36 20 35 20 34 20 33 20 32 20 31 C 7 6 5 4 3 2 1
001A60: 20 30 A0 20 20 20 20 20 20 20 20 20 63 20 20 31 0. c 1
001A70: 20 30 20 31 20 31 20 30 20 30 20 30 20 31 A0 62 0 1 1 0 0 0 1.b
001A80: 65 63 6F 6D 65 73 20 20 31 20 20 30 20 31 20 31 ecomes 1 0 1 1
001A90: 20 30 20 30 20 30 20 31 20 63 20 20 63 3D 6F 6C 0 0 0 1 c c=ol
001AA0: 64 20 43 61 72 72 79 A0 20 52 4C 20 20 69 6E 73 d Carry. RL ins
001AB0: 74 72 75 63 74 69 6F 6E 73 20 63 61 6E 20 62 65 tructions can be
001AC0: 20 73 74 72 75 6E 67 20 74 6F 67 65 74 68 65 72 strung together
001AD0: 74 6F 20 6D 75 6C 74 69 70 6C 79 20 20 61 6E 79 to multiply any
001AE0: 20 20 6C 65 6E 67 74 68 20 20 6E 75 6D 62 65 72 length number
001AF0: 20 20 62 79 20 20 32 2C 73 69 6E 63 65 20 74 68 by 2,since th
001B00: 65 20 20 43 61 72 72 79 20 20 69 73 20 74 72 61 e Carry is tra
001B10: 6E 73 66 65 72 72 65 64 20 62 65 74 77 65 65 6E nsferred between
001B20: 72 65 70 65 61 74 65 64 20 52 4C 20 69 6E 73 74 repeated RL inst
001B30: 72 75 63 74 69 FF C6 6F 6E 73 2E A3 20 52 52 43 ructi..ons.£ RRC
001B40: 20 72 2C 20 20 52 52 43 20 28 48 4C 29 20 20 69 r, RRC (HL) i
001B50: 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 28 52 6F nstructions (Ro
001B60: 74 61 74 65 52 69 67 68 74 20 43 61 72 72 79 20 tateRight Carry
001B70: 62 65 69 6E 67 20 64 75 70 6C 69 63 61 74 65 64 being duplicated
001B80: 29 20 69 73 20 73 69 6D 69 6C 61 72 74 6F 20 74 ) is similarto t
001B90: 68 65 20 20 52 4C 43 20 20 69 6E 73 74 72 75 63 he RLC instruc
001BA0: 74 69 6F 6E 20 20 62 75 74 20 69 73 20 61 20 72 tion but is a r
001BB0: 69 67 68 74 73 68 69 66 74 2E 20 20 42 69 74 20 ightshift. Bit
001BC0: 30 20 69 73 20 20 73 68 69 66 74 65 64 20 69 6E 0 is shifted in
001BD0: 74 6F 20 62 69 74 20 37 20 61 6E 64 74 68 65 20 to bit 7 andthe
001BE0: 43 61 72 72 79 20 64 75 70 6C 69 63 61 74 65 73 Carry duplicates
001BF0: 20 74 68 65 20 6F 6C 64 20 62 69 74 20 30 2E A0 the old bit 0..
001C00: A0 20 69 2E 65 2E 20 20 20 20 37 20 36 20 35 20 . i.e. 7 6 5
001C10: 34 20 33 20 32 20 31 20 30 20 20 43 A0 20 20 20 4 3 2 1 0 C.
001C20: 20 20 20 20 20 20 31 20 30 20 31 20 31 20 30 20 1 0 1 1 0
001C30: 30 20 30 20 31 20 20 E3 CE 78 A0 62 65 63 6F 6D 0 0 1 ..x.becom
001C40: 65 73 20 20 31 20 31 20 30 20 31 20 31 20 30 20 es 1 1 0 1 1 0
001C50: 30 20 30 20 20 31 20 20 6F 6C 64 20 62 69 74 20 0 0 1 old bit
001C60: 30 3D 31 A0 20 52 52 20 72 2C 20 61 6E 64 20 52 0=1. RR r, and R
001C70: 52 20 28 48 4C 29 20 69 6E 73 74 72 75 63 74 69 R (HL) instructi
001C80: 6F 6E 73 20 28 20 52 6F 74 61 74 65 52 69 67 68 ons ( RotateRigh
001C90: 74 20 29 20 69 73 20 73 69 6D 69 6C 61 72 20 74 t ) is similar t
001CA0: 6F 20 52 4C 20 65 78 63 65 70 74 20 74 68 61 74 o RL except that
001CB0: 20 74 68 65 73 68 69 66 74 20 61 72 6F 75 6E 64 theshift around
001CC0: 20 74 68 65 20 39 20 62 69 74 73 20 69 73 20 74 the 9 bits is t
001CD0: 6F 20 74 68 65 20 72 69 67 68 74 2E A0 20 69 2E o the right.. i.
001CE0: 65 2E 20 20 20 20 37 20 36 20 35 20 34 20 33 20 e. 7 6 5 4 3
001CF0: 32 20 31 20 30 20 20 43 A0 20 20 20 20 20 20 20 2 1 0 C.
001D00: 20 20 31 20 30 20 31 20 31 20 30 20 30 20 30 20 1 0 1 1 0 0 0
001D10: 31 20 20 63 A0 62 65 63 6F 6D 65 73 20 20 63 20 1 c.becomes c
001D20: 31 20 30 20 31 20 31 20 30 20 30 20 30 20 20 31 1 0 1 1 0 0 0 1
001D30: 20 20 63 3D 6F 6C 64 20 43 66 6A 61 72 72 79 A0 c=old Cfjarry.
001D40: 20 52 52 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 RR instructions
001D50: 20 63 61 6E 20 62 65 20 73 74 72 75 6E 67 20 20 can be strung
001D60: 74 6F 67 65 74 68 65 72 74 6F 20 64 69 76 69 64 togetherto divid
001D70: 65 20 61 6E 79 20 6C 65 6E 67 74 68 20 6E 75 6D e any length num
001D80: 62 65 72 20 62 79 20 32 2E A3 20 52 4C 43 20 61 ber by 2.£ RLC a
001D90: 6E 64 20 52 52 43 20 20 69 6E 73 74 72 75 63 74 nd RRC instruct
001DA0: 69 6F 6E 73 20 61 72 65 20 75 73 65 66 75 6C 20 ions are useful
001DB0: 69 6E 73 65 71 75 65 6E 74 69 61 6C 6C 79 20 20 insequentially
001DC0: 20 69 6E 74 65 72 72 6F 67 61 74 69 6E 67 20 20 interrogating
001DD0: 74 68 65 20 20 77 68 6F 6C 65 63 6F 6E 74 65 6E the wholeconten
001DE0: 74 73 20 6F 66 20 61 20 72 65 67 69 73 74 65 72 ts of a register
001DF0: 20 77 69 74 68 6F 75 74 20 20 63 6F 72 72 75 70 without corrup
001E00: 74 2D 69 6E 67 20 69 74 73 20 63 6F 6E 74 65 6E t-ing its conten
001E10: 74 73 2E A0 A0 20 41 6C 6C 20 74 68 65 20 61 62 ts... All the ab
001E20: 6F 76 65 20 72 6F 74 61 74 65 20 69 6E 73 74 72 ove rotate instr
001E30: 75 63 74 69 6F 6E 73 20 20 52 4C F7 97 43 2C 52 uctions RL..C,R
001E40: 4C 2C 20 20 52 52 43 2C 20 61 6E 64 20 20 52 52 L, RRC, and RR
001E50: 20 20 6E 6F 74 20 20 6F 6E 6C 79 20 20 61 66 66 not only aff
001E60: 65 63 74 20 74 68 65 43 61 72 72 79 20 66 6C 61 ect theCarry fla
001E70: 67 20 20 62 75 74 20 61 6C 73 6F 20 20 74 68 65 g but also the
001E80: 20 5A 65 72 6F 2C 20 53 69 67 6E 20 61 6E 64 50 Zero, Sign andP
001E90: 61 72 69 74 79 20 20 20 66 6C 61 67 73 2C 20 20 arity flags,
001EA0: 61 73 20 20 20 68 61 76 65 20 20 20 61 6C 6C 20 as have all
001EB0: 20 20 73 68 69 66 74 69 6E 73 74 72 75 63 74 69 shiftinstructi
001EC0: 6F 6E 73 20 64 69 73 63 75 73 73 65 64 2E A0 A0 ons discussed...
001ED0: 20 54 68 65 72 65 20 20 61 72 65 20 20 34 20 6F There are 4 o
001EE0: 74 68 65 72 20 72 6F 74 61 74 65 20 69 6E 73 74 ther rotate inst
001EF0: 72 75 63 74 69 6F 6E 73 74 68 61 74 20 20 69 6E ructionsthat in
001F00: 76 6F 6C 76 65 20 74 68 65 20 41 63 63 75 6D 75 volve the Accumu
001F10: 6C 61 74 6F 72 20 6F 6E 6C 79 2E 20 54 68 65 79 lator only. They
001F20: 61 72 65 20 52 4C 43 41 2C 20 20 52 4C 41 2C 20 are RLCA, RLA,
001F30: 20 52 52 43 41 2C 20 61 6E 64 20 52 52 23 67 41 RRCA, and RR#gA
001F40: 2E 20 54 68 65 79 20 61 72 65 69 64 65 6E 74 69 . They areidenti
001F50: 63 61 6C 20 74 6F 20 20 52 4C 43 20 41 2C 20 20 cal to RLC A,
001F60: 52 4C 20 41 2C 20 20 52 52 43 20 41 2C 20 20 61 RL A, RRC A, a
001F70: 6E 64 52 52 20 41 2C 20 62 75 74 20 6F 6E 6C 79 ndRR A, but only
001F80: 20 20 61 66 66 65 63 74 20 20 74 68 65 20 20 43 affect the C
001F90: 61 72 72 79 20 66 6C 61 67 2C 61 6E 64 20 61 72 arry flag,and ar
001FA0: 65 20 74 77 69 63 65 20 61 73 20 66 61 73 74 2E e twice as fast.
001FB0: A3 20 53 75 6D 6D 61 72 79 20 2D 20 72 6F 74 61 £ Summary - rota
001FC0: 74 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 A0 te instructions.
001FD0: A0 20 52 4C 43 20 72 20 20 72 6F 74 61 74 65 20 . RLC r rotate
001FE0: 72 20 6C 65 66 74 2C 20 63 61 72 72 79 20 20 64 r left, carry d
001FF0: 75 70 6C 69 63 61 74 65 73 20 52 4C 43 20 28 48 uplicates RLC (H
002000: 4C 29 A0 20 52 4C 43 41 20 20 20 72 6F 74 61 74 L). RLCA rotat
002010: 65 20 41 20 6C 65 66 74 2C 20 63 61 72 72 79 20 e A left, carry
002020: 20 64 75 70 6C 69 63 61 74 65 73 A0 20 52 4C 20 duplicates. RL
002030: 72 20 20 20 72 6F 74 61 74 65 20 72 20 61 6E DB r rotate r an.
002040: AF 64 20 63 61 72 72 79 20 6C 65 66 74 A0 20 52 .d carry left. R
002050: 4C 20 28 48 4C 29 A0 20 52 4C 41 20 20 20 20 72 L (HL). RLA r
002060: 6F 74 61 74 65 20 41 20 61 6E 64 20 63 61 72 72 otate A and carr
002070: 79 20 6C 65 66 74 A0 A0 20 52 52 43 20 72 20 20 y left.. RRC r
002080: 72 6F 74 61 74 65 20 72 20 72 69 67 68 74 2C 20 rotate r right,
002090: 63 61 72 72 79 20 64 75 70 6C 69 63 61 74 65 73 carry duplicates
0020A0: 20 52 52 43 20 28 48 4C 29 A0 20 52 52 43 41 20 RRC (HL). RRCA
0020B0: 20 20 72 6F 74 61 74 65 20 41 20 72 69 67 68 74 rotate A right
0020C0: 2C 20 63 61 72 72 79 20 64 75 70 6C 69 63 61 74 , carry duplicat
0020D0: 65 73 A0 20 52 52 20 72 20 20 20 72 6F 74 61 74 es. RR r rotat
0020E0: 65 20 72 20 61 6E 64 20 43 61 72 72 79 20 72 69 e r and Carry ri
0020F0: 67 68 74 A0 20 52 52 20 28 48 4C 29 A0 20 52 52 ght. RR (HL). RR
002100: 41 20 20 20 20 20 20 72 6F 74 61 74 65 20 41 20 A rotate A
002110: 61 6E 64 20 43 61 72 72 79 20 72 69 67 68 74 A3 and Carry right£
002120: 20 20 20 20 45 58 41 4D 50 4C 45 53 20 4F 46 20 EXAMPLES OF
002130: 52 4F 54 41 54 45 20 49 4E 53 54 52 55 43 54 49 ROTATE INSTRUCTI
002140: 4F 1A CD 4E 53 A0 A0 20 54 68 65 73 65 20 65 78 O..NS.. These ex
002150: 61 6D 70 6C 65 73 20 69 6C 6C 75 73 74 72 61 74 amples illustrat
002160: 65 20 74 68 65 20 6F 70 65 72 61 74 69 6F 6E 6F e the operationo
002170: 66 20 20 72 6F 74 61 74 65 20 20 20 69 6E 73 74 f rotate inst
002180: 72 75 63 74 69 6F 6E 73 2E 20 20 20 4D 6F 64 69 ructions. Modi
002190: 66 79 20 20 74 68 65 69 6E 69 74 69 61 6C 20 63 fy theinitial c
0021A0: 6F 6E 64 69 74 69 6F 6E 20 6F 66 20 74 68 65 20 ondition of the
0021B0: 6C 6F 63 61 74 69 6F 6E 20 20 53 54 4F 52 45 74 location STOREt
0021C0: 6F 20 69 6E 76 65 73 74 69 67 61 74 65 20 74 68 o investigate th
0021D0: 65 69 72 20 6F 70 65 72 61 74 69 6F 6E 20 66 75 eir operation fu
0021E0: 72 74 68 65 72 2E A3 20 4C 44 20 48 4C 2C 53 54 rther.£ LD HL,ST
0021F0: 4F 52 45 A0 20 20 4C 44 20 42 2C 38 A0 20 4C 4F ORE. LD B,8. LO
002200: 4F 50 31 20 52 4C 43 20 28 48 4C 29 A0 20 20 44 OP1 RLC (HL). D
002210: 4A 4E 5A 20 4C 4F 4F 50 31 A0 20 20 4C 44 20 42 JNZ LOOP1. LD B
002220: 2C 38 A0 20 4C 4F 4F 50 32 20 52 4C 20 28 48 4C ,8. LOOP2 RL (HL
002230: 29 A0 20 20 44 4A 4E 5A 20 4C 4F 4F 50 32 A0 20 ). DJNZ LOOP2.
002240: 20 4C 44 A5 09 20 42 2C 38 A0 20 4C 4F 4F 50 33 LD.. B,8. LOOP3
002250: 20 52 52 43 20 28 48 4C 29 A0 20 20 44 4A 4E 5A RRC (HL). DJNZ
002260: 20 4C 4F 4F 50 33 A0 20 20 4C 44 20 42 2C 38 A0 LOOP3. LD B,8.
002270: 20 4C 4F 4F 50 34 20 52 52 20 28 48 4C 29 A0 20 LOOP4 RR (HL).
002280: 20 44 4A 4E 5A 20 4C 4F 4F 50 34 A0 20 20 52 45 DJNZ LOOP4. RE
002290: 54 A0 20 53 54 4F 52 45 20 42 49 4E 20 36 39 48 T. STORE BIN 69H
0022A0: A0 20 20 20 A0 20 20 20 20 45 58 41 4D 50 4C 45 . . EXAMPLE
0022B0: 20 55 53 49 4E 47 20 52 4F 54 41 54 45 20 41 4E USING ROTATE AN
0022C0: 44 20 53 48 49 46 54 A0 A0 20 54 68 69 73 20 65 D SHIFT.. This e
0022D0: 78 61 6D 70 6C 65 20 20 75 73 65 73 20 20 73 68 xample uses sh
0022E0: 69 66 74 73 20 20 61 6E 64 20 20 72 6F 74 61 74 ifts and rotat
0022F0: 65 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 74 einstructions t
002300: 6F 20 20 6D 75 6C 74 69 70 6C 79 20 20 74 77 6F o multiply two
002310: 20 20 38 20 20 20 62 69 74 6E 75 6D 62 65 72 73 8 bitnumbers
002320: 20 74 6F 67 65 74 68 65 72 2E 20 20 4F 6E 65 20 together. One
002330: 6E 75 6D 62 65 72 20 69 73 20 72 6F 74 61 74 65 number is rotate
002340: 64 74 6F 20 65 5C D2 78 61 6D 69 6E 65 20 20 65 dto e\.xamine e
002350: 61 63 68 20 62 69 74 20 69 6E 20 74 75 72 6E 2E ach bit in turn.
002360: 20 20 54 68 65 20 6F 74 68 65 72 6E 75 6D 62 65 The othernumbe
002370: 72 20 69 73 20 61 6C 73 6F 20 73 68 69 66 74 65 r is also shifte
002380: 64 20 61 6E 64 20 20 61 64 64 65 64 20 74 6F 20 d and added to
002390: 74 68 65 74 6F 74 61 6C 20 69 66 20 74 68 65 20 thetotal if the
0023A0: 20 62 69 74 20 69 73 20 73 65 74 2E 20 54 68 69 bit is set. Thi
0023B0: 73 20 6D 65 74 68 6F 64 20 69 73 66 61 72 20 71 s method isfar q
0023C0: 75 69 63 6B 65 72 20 74 68 61 6E 20 74 68 65 20 uicker than the
0023D0: 20 6D 65 74 68 6F 64 20 6F 66 20 72 65 70 65 61 method of repea
0023E0: 74 65 64 61 64 64 69 74 69 6F 6E 2E A3 20 4C 44 tedaddition.£ LD
0023F0: 20 48 4C 2C 30 A0 20 20 4C 44 20 44 45 2C 28 4E HL,0. LD DE,(N
002400: 55 4D 32 29 A0 20 20 4C 44 20 41 2C 28 4E 55 4D UM2). LD A,(NUM
002410: 31 29 A0 20 4C 4F 4F 50 20 20 52 52 20 41 A0 20 1). LOOP RR A.
002420: 20 4A 52 20 4E 43 2C 4A 50 31 A0 20 20 41 44 44 JR NC,JP1. ADD
002430: 20 48 4C 2C 44 45 A0 20 4A 50 31 20 20 20 52 45 HL,DE. JP1 RE
002440: 54 20 5A A0 20 20 53 C6 F7 4C 41 20 45 A0 20 20 T Z. S..LA E.
002450: 52 4C 20 44 A0 20 20 4A 52 20 4C 4F 4F 50 A0 20 RL D. JR LOOP.
002460: 20 A0 20 4E 55 4D 31 20 20 44 45 46 42 20 32 31 . NUM1 DEFB 21
002470: 32 A0 20 4E 55 4D 32 20 20 44 45 46 42 20 32 30 2. NUM2 DEFB 20
002480: 33 A0 20 20 44 45 46 42 20 30 A0 20 20 A0 20 20 3. DEFB 0. .
002490: A0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0024A0: 44 45 43 49 4D 41 4C 20 52 4F 54 41 54 45 A0 A0 DECIMAL ROTATE..
0024B0: 20 54 68 65 20 20 5A 38 30 20 20 61 6C 6C 6F 77 The Z80 allow
0024C0: 73 20 20 75 73 20 74 6F 20 72 6F 74 61 74 65 20 s us to rotate
0024D0: 6C 65 66 74 20 61 6E 64 72 69 67 68 74 20 6E 69 left andright ni
0024E0: 62 62 6C 65 73 20 61 73 20 77 65 6C 6C 20 61 73 bbles as well as
0024F0: 20 62 69 74 73 2E A0 A0 20 52 4C 44 20 20 52 6F bits... RLD Ro
002500: 74 61 74 65 73 20 74 68 65 20 44 65 63 69 6D 61 tates the Decima
002510: 6C 20 6E 75 6D 62 65 72 20 4C 65 66 74 A0 20 52 l number Left. R
002520: 52 44 20 20 52 6F 74 61 74 65 73 20 74 68 65 20 RD Rotates the
002530: 44 65 63 69 6D 61 6C 20 6E 75 6D 62 65 72 20 52 Decimal number R
002540: 69 67 68 74 A0 A0 20 54 68 5B 20 65 20 20 20 62 ight.. Th[ e b
002550: 65 73 74 20 20 20 77 61 79 20 20 20 74 6F 20 20 est way to
002560: 20 64 65 73 63 72 69 62 65 20 20 74 68 65 73 65 describe these
002570: 6F 70 65 72 61 74 69 6F 6E 73 20 20 20 20 69 73 operations is
002580: 20 20 20 20 62 79 20 20 20 65 78 61 6D 70 6C 65 by example
002590: 2E 20 20 20 42 6F 74 68 69 6E 73 74 72 75 63 74 . Bothinstruct
0025A0: 69 6F 6E 73 20 20 69 6E 76 6F 6C 76 65 20 20 74 ions involve t
0025B0: 68 65 20 20 41 63 63 75 6D 75 6C 61 74 6F 72 2C he Accumulator,
0025C0: 61 6E 64 20 20 20 74 68 65 20 20 20 6D 65 6D 6F and the memo
0025D0: 72 79 20 20 6C 6F 63 61 74 69 6F 6E 20 20 28 48 ry location (H
0025E0: 4C 29 2E 20 20 54 68 65 65 78 61 6D 70 6C 65 73 L). Theexamples
0025F0: 20 61 72 65 20 69 6E 20 20 42 69 6E 61 72 79 20 are in Binary
002600: 43 6F 64 65 64 20 44 65 63 69 6D 61 6C 20 6F 66 Coded Decimal of
002610: 63 6F 75 72 73 65 2C 20 20 65 61 63 68 20 64 69 course, each di
002620: 67 69 74 20 74 61 6B 69 6E 67 20 75 70 20 6F 6E git taking up on
002630: 65 20 6E 69 62 62 6C 65 6F 72 20 20 66 6F 75 72 e nibbleor four
002640: 20 20 62 69 74 73 20 6F 66 20 74 5F 6E 68 65 20 bits of t_nhe
002650: 72 65 67 69 73 74 65 72 20 6F 72 20 6D 65 6D 6F register or memo
002660: 72 79 6C 6F 63 61 74 69 6F 6E 2E A3 20 20 20 20 rylocation.£
002670: 20 20 20 20 20 20 20 20 20 41 20 61 66 74 65 72 A after
002680: 20 20 20 28 48 4C 29 20 20 20 20 41 20 62 65 66 (HL) A bef
002690: 6F 72 65 20 A0 20 20 20 20 20 20 20 20 20 20 20 ore .
0026A0: 20 20 20 20 20 20 20 20 20 20 20 20 35 20 34 20 5 4
0026B0: 20 20 20 20 20 20 20 78 20 33 A0 20 61 66 74 65 x 3. afte
0026C0: 72 20 52 4C 44 20 20 20 20 20 78 20 35 20 20 20 r RLD x 5
0026D0: 20 20 34 20 33 A0 A0 77 68 65 72 65 20 20 78 20 4 3..where x
0026E0: 69 73 20 61 6E 79 20 6E 75 6D 62 65 72 20 61 6E is any number an
0026F0: 64 20 69 73 20 75 6E 61 66 66 65 63 74 65 64 62 d is unaffectedb
002700: 79 20 74 68 65 20 69 6E 73 74 72 75 63 74 69 6F y the instructio
002710: 6E 2E A0 A0 20 41 73 20 63 61 6E 20 62 65 20 20 n... As can be
002720: 73 65 65 6E 20 74 68 65 20 65 66 66 65 63 74 20 seen the effect
002730: 6F 66 20 73 74 72 69 6E 67 69 6E 67 74 6F 67 65 of stringingtoge
002740: 74 68 65 72 20 52 4C 44 20 69 6E 73 74 94 C0 72 ther RLD inst..r
002750: 75 63 74 69 6F 6E 73 20 69 73 20 74 6F 20 6D 75 uctions is to mu
002760: 6C 74 69 70 6C 79 61 20 20 64 65 63 69 6D 61 6C ltiplya decimal
002770: 20 20 6E 75 6D 62 65 72 20 20 62 79 20 20 31 30 number by 10
002780: 2E 20 20 49 74 20 69 73 20 20 61 6C 73 6F 75 73 . It is alsous
002790: 65 66 75 6C 20 69 6E 20 69 73 6F 6C 61 74 69 6E eful in isolatin
0027A0: 67 20 74 68 65 20 68 69 67 68 20 64 69 67 69 74 g the high digit
0027B0: 20 20 66 72 6F 6D 74 68 65 20 74 77 6F 20 64 69 fromthe two di
0027C0: 67 69 74 20 6E 75 6D 62 65 72 2E A3 20 20 20 20 git number.£
0027D0: 20 20 20 20 20 20 20 20 20 41 20 61 66 74 65 72 A after
0027E0: 20 20 20 28 48 4C 29 20 20 20 20 41 20 62 65 66 (HL) A bef
0027F0: 6F 72 65 20 A0 20 20 20 20 20 20 20 20 20 20 20 ore .
002800: 20 20 20 20 78 20 35 20 20 20 20 20 34 20 33 A0 x 5 4 3.
002810: 20 61 66 74 65 72 20 52 52 44 20 20 20 20 20 20 after RRD
002820: 20 20 20 20 20 20 20 35 20 34 20 20 20 20 20 20 5 4
002830: 20 78 20 33 A0 A0 20 54 68 65 20 20 52 52 44 20 x 3.. The RRD
002840: 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 74 68 97 instruction th.
002850: 8A 65 72 65 66 6F 72 65 20 64 69 76 69 64 65 73 .erefore divides
002860: 74 68 65 20 64 65 63 69 6D 61 6C 20 6E 75 6D 62 the decimal numb
002870: 65 72 20 62 79 20 31 30 2E 20 49 74 20 63 61 6E er by 10. It can
002880: 20 61 6C 73 6F 20 62 65 73 74 72 75 6E 67 20 74 also bestrung t
002890: 6F 67 65 74 68 65 72 20 74 6F 20 64 69 76 69 64 ogether to divid
0028A0: 65 20 61 6E 79 20 6C 65 6E 67 74 68 20 42 43 44 e any length BCD
0028B0: 6E 75 6D 62 65 72 20 20 62 79 20 31 30 2E 20 20 number by 10.
0028C0: 54 68 65 20 6C 6F 77 20 64 69 67 69 74 20 6F 66 The low digit of
0028D0: 20 74 68 65 20 74 77 6F 64 69 67 69 74 20 20 64 the twodigit d
0028E0: 65 63 69 6D 61 6C 20 6E 75 6D 62 65 72 20 63 61 ecimal number ca
0028F0: 6E 20 62 65 20 69 73 6F 6C 61 74 65 64 20 62 79 n be isolated by
002900: 74 68 69 73 20 69 6E 73 74 72 75 63 74 69 6F 6E this instruction
002910: 2E A3 20 53 75 6D 6D 61 72 79 20 2D 20 64 65 63 .£ Summary - dec
002920: 69 6D 61 6C 20 73 68 69 66 74 73 A0 A0 52 4C 44 imal shifts..RLD
002930: 20 20 20 20 52 6F 74 61 74 65 20 4C 65 66 74 20 Rotate Left
002940: 44 65 63 69 6D 61 6C 20 20 28 2A 31 30 29 A0 A0 Decimal (*10)..
002950: 52 BC 00 52 44 20 20 20 20 52 6F 74 61 74 65 20 R..RD Rotate
002960: 52 69 67 68 74 20 44 65 63 69 6D 61 6C 20 28 2F Right Decimal (/
002970: 31 30 29 A3 20 20 20 20 20 20 45 58 41 4D 50 4C 10)£ EXAMPL
002980: 45 53 20 4F 46 20 44 45 43 49 4D 41 4C 20 52 4F ES OF DECIMAL RO
002990: 54 41 54 49 4F 4E A0 A0 20 54 68 65 73 65 20 20 TATION.. These
0029A0: 20 20 20 65 78 61 6D 70 6C 65 73 20 20 20 20 69 examples i
0029B0: 6C 6C 75 73 74 72 61 74 65 20 20 20 20 74 68 65 llustrate the
0029C0: 6D 75 6C 74 69 70 6C 69 63 61 74 69 6F 6E 20 20 multiplication
0029D0: 20 61 6E 64 20 20 20 64 69 76 69 73 69 6F 6E 20 and division
0029E0: 20 6F 66 20 20 42 43 44 6E 75 6D 62 65 72 73 20 of BCDnumbers
0029F0: 62 79 20 74 65 6E 2E A3 20 4C 44 20 48 4C 2C 53 by ten.£ LD HL,S
002A00: 54 4F 52 45 A0 20 20 4C 44 20 41 2C 30 A0 20 20 TORE. LD A,0.
002A10: 52 4C 44 A0 20 20 49 4E 43 20 48 4C A0 20 20 52 RLD. INC HL. R
002A20: 4C 44 A0 20 20 A0 20 20 4C 44 20 41 2C 30 A0 20 LD. . LD A,0.
002A30: 20 52 52 44 A0 20 20 44 45 43 20 48 4C A0 20 20 RRD. DEC HL.
002A40: 52 52 44 A0 20 20 52 45 54 A0 20 20 A0 20 20 A0 RRD. RET. . .
002A50: 20 53 54 00 73 4F 52 45 20 44 45 46 57 20 32 35 ST.sORE DEFW 25
002A60: 34 48 A0 20 20 A0 20 20 A0 20 20 20 20 20 20 20 4H. . .
002A70: 20 20 20 20 20 20 20 49 4E 54 52 4F 44 55 43 54 INTRODUCT
002A80: 49 4F 4E A0 A0 20 54 68 69 73 20 20 67 72 6F 75 ION.. This grou
002A90: 70 20 20 6F 66 20 6C 65 73 73 6F 6E 73 20 77 69 p of lessons wi
002AA0: 6C 6C 20 20 69 6E 74 72 6F 64 75 63 65 74 68 65 ll introducethe
002AB0: 20 69 64 65 61 20 6F 66 20 62 69 74 20 6D 61 6E idea of bit man
002AC0: 69 70 75 6C 61 74 69 6F 6E 20 61 6E 64 20 69 74 ipulation and it
002AD0: 73 20 75 73 65 69 6E 20 20 66 6C 61 67 20 20 6F s usein flag o
002AE0: 70 65 72 61 74 69 6F 6E 73 20 20 61 6E 64 20 20 perations and
002AF0: 69 6E 20 20 70 72 6F 64 75 63 69 6E 67 66 61 73 in producingfas
002B00: 74 65 72 20 6D 65 74 68 6F 64 73 20 6F 66 20 6D ter methods of m
002B10: 75 6C 74 69 70 6C 69 63 61 74 69 6F 6E 2E A0 A0 ultiplication...
002B20: 20 42 75 74 20 66 69 72 73 74 20 20 77 65 20 73 But first we s
002B30: 68 61 6C 6C 20 6C 6F 6F 6B 20 66 75 72 74 68 65 hall look furthe
002B40: 72 20 61 74 20 74 68 65 70 72 6F 63 65 73 73 6F r at theprocesso
002B50: 72 73 20 66 6C 80 34 61 67 73 2E A3 20 20 20 20 rs fl.4ags.£
002B60: 20 20 20 20 20 20 20 20 20 4C 45 53 53 4F 4E 53 LESSONS
002B70: 20 20 31 38 20 2D 20 32 35 A0 A0 20 31 38 2E 20 18 - 25.. 18.
002B80: 20 50 61 72 69 74 79 A0 20 31 39 2E 20 20 54 68 Parity. 19. Th
002B90: 65 20 66 6C 61 67 20 72 65 67 69 73 74 65 72 20 e flag register
002BA0: 61 6E 64 20 41 46 A0 20 32 30 2E 20 20 53 20 61 and AF. 20. S a
002BB0: 6E 64 20 50 2F 56 20 66 6C 61 67 73 20 69 6E 20 nd P/V flags in
002BC0: 69 6E 73 74 72 75 63 74 69 6F 6E 73 A0 20 20 20 instructions.
002BD0: 20 20 20 20 20 20 20 20 20 20 45 78 20 2D 20 73 Ex - s
002BE0: 69 67 6E 20 61 6E 64 20 70 61 72 69 74 79 20 66 ign and parity f
002BF0: 6C 61 67 73 20 20 32 31 2E 20 20 42 69 74 20 6D lags 21. Bit m
002C00: 61 6E 69 70 75 6C 61 74 69 6F 6E A0 20 20 20 20 anipulation.
002C10: 20 20 20 20 20 20 20 45 78 20 2D 20 62 69 74 20 Ex - bit
002C20: 6D 61 6E 69 70 75 6C 61 74 69 6F 6E A0 20 32 32 manipulation. 22
002C30: 2E 20 20 4C 6F 67 69 63 61 6C 20 69 6E 73 74 72 . Logical instr
002C40: 75 63 74 69 6F 6E 73 A0 20 20 20 20 20 20 20 20 uctions.
002C50: 20 20 20 45 78 20 2D E4 CA 20 6C 6F 67 69 63 61 Ex -.. logica
002C60: 6C 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 A0 20 l instructions.
002C70: 32 33 2E 20 20 53 68 69 66 74 20 69 6E 73 74 72 23. Shift instr
002C80: 75 63 74 69 6F 6E 73 A0 20 20 20 20 20 20 20 20 uctions.
002C90: 20 20 20 45 78 20 2D 20 73 68 69 66 74 20 69 6E Ex - shift in
002CA0: 73 74 72 75 63 74 69 6F 6E 73 A0 20 32 34 2E 20 structions. 24.
002CB0: 20 52 6F 74 61 74 65 20 69 6E 73 74 72 75 63 74 Rotate instruct
002CC0: 69 6F 6E 73 A0 20 20 20 20 20 20 20 20 20 20 20 ions.
002CD0: 45 78 20 2D 20 72 6F 74 61 74 65 20 69 6E 73 74 Ex - rotate inst
002CE0: 72 75 63 74 69 6F 6E 73 20 31 A0 20 20 20 20 20 ructions 1.
002CF0: 20 20 20 20 20 20 45 78 20 2D 20 72 6F 74 61 74 Ex - rotat
002D00: 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 32 e instructions 2
002D10: A0 20 32 35 2E 20 20 44 65 63 69 6D 61 6C 20 72 . 25. Decimal r
002D20: 6F 74 61 74 69 6E 67 A0 20 20 20 20 20 20 20 20 otating.
002D30: 20 20 20 45 78 20 2D 20 64 65 63 69 6D 61 6C 20 Ex - decimal
002D40: 72 6F 74 61 74 69 6F 6E A0 20 4C 6F 61 64 20 66 rotation. Load f
002D50: 75 72 74 68 65 72 20 6C 65 1A F9 73 73 6F 6E 73 urther le..ssons
002D60: 20 66 72 6F 6D 20 74 61 70 65 A3 20 20 20 20 20 from tape£
002D70: 20 20 20 20 20 20 20 20 20 20 20 20 50 41 52 49 PARI
002D80: 54 59 A0 A0 20 57 68 65 6E 20 64 61 74 61 20 69 TY.. When data i
002D90: 73 20 74 72 61 6E 73 6D 69 74 74 65 64 20 66 72 s transmitted fr
002DA0: 6F 6D 20 6F 6E 65 20 70 6C 61 63 65 74 6F 20 61 om one placeto a
002DB0: 6E 6F 74 68 65 72 2C 20 69 74 20 69 73 20 70 6F nother, it is po
002DC0: 73 73 69 62 6C 65 20 66 6F 72 20 65 72 72 6F 72 ssible for error
002DD0: 73 20 74 6F 61 70 70 65 61 72 20 69 6E 20 74 68 s toappear in th
002DE0: 65 20 72 65 63 65 69 76 65 64 20 64 61 74 61 2E e received data.
002DF0: 20 50 61 72 69 74 79 20 69 73 20 61 73 69 6D 70 Parity is asimp
002E00: 6C 65 20 77 61 79 20 6F 66 20 64 65 74 65 63 74 le way of detect
002E10: 69 6E 67 20 73 69 6E 67 6C 65 20 65 72 72 6F 72 ing single error
002E20: 73 20 69 6E 64 61 74 61 2E 20 20 41 6E 20 61 64 s indata. An ad
002E30: 64 69 74 69 6F 6E 61 6C 20 62 69 74 20 69 73 20 ditional bit is
002E40: 61 64 64 65 64 20 74 6F 20 74 68 65 64 61 74 61 added to thedata
002E50: 20 74 68 61 74 20 6D 61 6B 65 73 49 F9 20 74 68 that makesI. th
002E60: 65 20 74 6F 74 61 6C 20 6E 75 6D 62 65 72 20 6F e total number o
002E70: 66 20 22 31 22 73 69 6E 20 74 68 65 20 20 77 6F f "1"sin the wo
002E80: 72 64 20 20 61 6E 20 20 65 76 65 6E 20 20 6E 75 rd an even nu
002E90: 6D 62 65 72 2E 20 20 20 49 66 20 74 68 65 72 65 mber. If there
002EA0: 63 65 69 76 65 64 20 20 77 6F 72 64 20 20 64 6F ceived word do
002EB0: 65 73 20 20 6E 6F 74 20 20 68 61 76 65 20 20 61 es not have a
002EC0: 6E 20 65 76 65 6E 6E 75 6D 62 65 72 20 20 6F 66 n evennumber of
002ED0: 20 22 31 22 73 20 69 6E 20 69 74 2C 20 74 68 65 "1"s in it, the
002EE0: 6E 20 61 6E 20 65 72 72 6F 72 20 68 61 73 6F 63 n an error hasoc
002EF0: 63 75 72 72 65 64 2E 20 20 20 49 6E 20 20 61 64 curred. In ad
002F00: 64 69 74 69 6F 6E 20 20 74 6F 20 20 74 68 69 73 dition to this
002F10: 20 20 65 76 65 6E 70 61 72 69 74 79 20 77 65 20 evenparity we
002F20: 63 6F 75 6C 64 20 75 73 65 20 20 6F 64 64 20 20 could use odd
002F30: 70 61 72 69 74 79 2C 20 20 77 68 65 72 65 74 68 parity, whereth
002F40: 65 20 77 6F 72 64 20 69 73 20 6D 61 64 65 20 74 e word is made t
002F50: 6F 20 68 61 76 65 20 20 61 6E 20 20 6F 14 E9 64 o have an o..d
002F60: 64 20 6E 75 6D 62 65 72 6F 66 20 22 31 22 73 20 d numberof "1"s
002F70: 69 6E 20 69 74 2E A0 A0 20 54 68 65 20 20 5A 38 in it... The Z8
002F80: 30 20 20 68 61 73 20 61 20 66 6C 61 67 20 74 68 0 has a flag th
002F90: 61 74 20 69 73 20 73 65 74 20 69 66 20 74 68 65 at is set if the
002FA0: 6E 75 6D 62 65 72 20 6F 66 20 22 31 22 73 20 69 number of "1"s i
002FB0: 6E 20 61 20 6E 75 6D 62 65 72 20 69 73 20 65 76 n a number is ev
002FC0: 65 6E 2E 20 54 68 69 73 66 6C 61 67 20 20 69 73 en. Thisflag is
002FD0: 20 69 6E 20 66 61 63 74 20 20 74 68 65 20 20 73 in fact the s
002FE0: 61 6D 65 20 66 6C 61 67 20 20 61 73 20 74 68 65 ame flag as the
002FF0: 6F 76 65 72 66 6C 6F 77 20 66 6C 61 67 2E 20 20 overflow flag.
003000: 49 74 20 20 69 73 20 20 74 65 72 6D 65 64 20 20 It is termed
003010: 74 68 65 20 20 50 2F 56 66 6C 61 67 2E A3 20 69 the P/Vflag.£ i
003020: 2E 65 2E A0 30 20 30 20 31 20 31 20 30 20 31 20 .e..0 0 1 1 0 1
003030: 30 20 30 20 20 20 70 61 72 69 74 79 20 66 6C 61 0 0 parity fla
003040: 67 20 69 73 20 6E 6F 74 20 73 65 74 20 20 20 20 g is not set
003050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 11 s.
003060: 27 69 6E 63 65 20 20 6E 75 6D 62 65 72 20 20 6F 'ince number o
003070: 66 20 22 31 22 73 20 20 20 20 20 20 20 20 20 20 f "1"s
003080: 20 20 20 20 20 20 20 20 69 73 20 33 2E 20 20 20 is 3.
003090: 69 2E 65 2E 20 6F 64 64 2E A0 A0 30 20 31 20 30 i.e. odd...0 1 0
0030A0: 20 30 20 30 20 31 20 31 20 31 20 20 20 70 61 72 0 0 1 1 1 par
0030B0: 69 74 79 20 20 66 6C 61 67 20 20 20 69 73 20 20 ity flag is
0030C0: 73 65 74 20 20 20 20 20 20 20 20 20 20 20 20 20 set
0030D0: 20 20 20 20 20 73 69 6E 63 65 20 20 6E 75 6D 62 since numb
0030E0: 65 72 20 20 6F 66 20 22 31 22 73 20 20 20 20 20 er of "1"s
0030F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 20 is
003100: 34 2E 20 20 20 69 2E 65 2E 20 65 76 65 6E 2E A0 4. i.e. even..
003110: A0 20 54 68 65 20 20 69 6E 73 74 72 75 63 74 69 . The instructi
003120: 6F 6E 20 20 70 65 72 66 6F 72 6D 65 64 20 20 64 on performed d
003130: 65 74 65 72 6D 69 6E 65 73 74 68 65 20 6D 65 61 eterminesthe mea
003140: 6E 69 6E 67 20 6F 66 20 74 68 65 20 50 2F 56 20 ning of the P/V
003150: 66 6C 61 67 2E A0 A0 20 4F 66 20 20 61 6C 6C 20 flag... Of all
003160: 20 77 24 74 68 65 20 69 6E 73 74 72 75 63 74 69 w$the instructi
003170: 6F 6E 73 20 20 64 65 73 63 72 69 62 65 64 20 74 ons described t
003180: 6F 64 61 74 65 20 20 6F 6E 6C 79 20 20 44 41 41 odate only DAA
003190: 20 20 74 72 65 61 74 73 20 20 69 74 20 20 61 73 treats it as
0031A0: 20 61 20 70 61 72 69 74 79 66 6C 61 67 2E 20 20 a parityflag.
0031B0: 41 6C 6C 20 6F 74 68 65 72 73 20 65 69 74 68 65 All others eithe
0031C0: 72 20 68 61 76 65 20 20 6E 6F 20 65 66 66 65 63 r have no effec
0031D0: 74 6F 6E 20 69 74 20 20 6F 72 20 75 73 65 20 69 ton it or use i
0031E0: 74 20 61 73 20 20 61 6E 20 20 6F 76 65 72 66 6C t as an overfl
0031F0: 6F 77 20 20 66 6C 61 67 2E 41 6C 6C 20 73 75 62 ow flag.All sub
003200: 73 65 71 75 65 6E 74 20 69 6E 73 74 72 75 63 74 sequent instruct
003210: 69 6F 6E 73 20 65 69 74 68 65 72 20 20 68 61 76 ions either hav
003220: 65 6E 6F 20 65 66 66 65 63 74 20 6F 6E 20 69 74 eno effect on it
003230: 20 6F 72 20 75 73 65 20 69 74 20 61 73 20 70 61 or use it as pa
003240: 72 69 74 79 2E A3 20 54 48 45 20 46 4C 41 47 20 rity.£ THE FLAG
003250: 52 45 47 49 53 54 45 52 20 41 4E 44 20 41 46 20 REGISTER AND AF
003260: 52 45 47 19 B2 49 53 54 45 52 20 50 41 49 52 A0 REG..ISTER PAIR.
003270: A0 20 57 65 20 20 68 61 76 65 20 20 64 69 73 63 . We have disc
003280: 75 73 73 65 64 20 66 6C 61 67 73 20 61 73 20 69 ussed flags as i
003290: 6E 64 69 76 69 64 75 61 6C 62 69 74 73 2E 20 20 ndividualbits.
0032A0: 54 68 69 73 20 69 73 20 74 68 65 20 77 61 79 20 This is the way
0032B0: 74 68 65 79 20 61 72 65 20 6E 6F 72 6D 61 6C 6C they are normall
0032C0: 79 75 73 65 64 2E 20 20 20 54 68 65 79 20 61 72 yused. They ar
0032D0: 65 20 68 6F 77 65 76 65 72 20 61 63 74 75 61 6C e however actual
0032E0: 6C 79 20 73 74 6F 72 65 64 69 6E 20 74 68 65 20 ly storedin the
0032F0: 5A 38 30 20 69 6E 20 61 20 72 65 67 69 73 74 65 Z80 in a registe
003300: 72 2C 20 64 65 73 69 67 6E 61 74 65 64 20 20 61 r, designated a
003310: 73 46 20 20 6F 72 20 20 66 6C 61 67 20 20 72 65 sF or flag re
003320: 67 69 73 74 65 72 2E 20 20 54 68 65 20 20 66 6C gister. The fl
003330: 61 67 73 20 20 20 61 72 65 61 72 72 61 6E 67 65 ags arearrange
003340: 64 20 61 73 20 66 6F 6C 6C 6F 77 73 20 3A 2D A0 d as follows :-.
003350: A0 20 20 20 62 69 74 20 20 30 20 20 20 20 20 20 . bit 0
003360: 43 20 20 20 20 7C 4A 43 61 72 72 79 A0 20 20 20 C |JCarry.
003370: 62 69 74 20 20 31 20 20 20 20 20 20 4E 20 20 20 bit 1 N
003380: 20 53 75 62 74 72 61 63 74 20 6C 61 73 74 A0 20 Subtract last.
003390: 20 20 62 69 74 20 20 32 20 20 20 20 20 50 2F 56 bit 2 P/V
0033A0: 20 20 20 50 61 72 69 74 79 20 61 6E 64 20 6F 76 Parity and ov
0033B0: 65 72 66 6C 6F 77 A0 20 20 20 62 69 74 20 20 33 erflow. bit 3
0033C0: 20 20 20 20 20 20 20 20 20 20 20 4E 6F 74 20 75 Not u
0033D0: 73 65 64 A0 20 20 20 62 69 74 20 20 34 20 20 20 sed. bit 4
0033E0: 20 20 20 48 20 20 20 20 48 61 6C 66 20 63 61 72 H Half car
0033F0: 72 79 A0 20 20 20 62 69 74 20 20 35 20 20 20 20 ry. bit 5
003400: 20 20 20 20 20 20 20 4E 6F 74 20 75 73 65 64 A0 Not used.
003410: 20 20 20 62 69 74 20 20 36 20 20 20 20 20 20 5A bit 6 Z
003420: 20 20 20 20 5A 65 72 6F A0 20 20 20 62 69 74 20 Zero. bit
003430: 20 37 20 20 20 20 20 20 53 20 20 20 20 53 69 67 7 S Sig
003440: 6E A3 20 54 68 65 20 46 6C 61 67 20 20 72 65 67 n£ The Flag reg
003450: 69 73 74 65 72 20 20 73 6F 6D 65 74 69 6D 65 73 ister sometimes
003460: 20 20 66 6F 72 6D 73 0A 31 20 20 61 72 65 67 69 forms.1 aregi
003470: 73 74 65 72 20 20 70 61 69 72 20 20 69 6E 20 20 ster pair in
003480: 63 6F 6E 6A 75 6E 63 74 69 6F 6E 20 77 69 74 68 conjunction with
003490: 20 74 68 65 41 63 63 75 6D 75 6C 61 74 6F 72 2E theAccumulator.
0034A0: 20 54 68 69 73 20 70 61 69 72 20 69 73 20 63 61 This pair is ca
0034B0: 6C 6C 65 64 20 41 46 2E 20 54 68 65 6F 6E 6C 79 lled AF. Theonly
0034C0: 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 70 instructions p
0034D0: 72 65 76 69 6F 75 73 6C 79 20 20 6D 65 6E 74 69 reviously menti
0034E0: 6F 6E 65 64 74 68 61 74 20 69 6E 76 6F 6C 76 65 onedthat involve
0034F0: 20 74 68 69 73 20 72 65 67 69 73 74 65 72 20 70 this register p
003500: 61 69 72 20 61 72 65 20 50 55 53 48 61 6E 64 20 air are PUSHand
003510: 50 4F 50 2E A3 20 20 20 20 20 53 20 61 6E 64 20 POP.£ S and
003520: 50 2F 56 20 46 4C 41 47 53 20 49 4E 20 49 4E 53 P/V FLAGS IN INS
003530: 54 52 55 43 54 49 4F 4E 53 A0 A0 20 54 68 65 20 TRUCTIONS.. The
003540: 73 69 67 6E 20 20 61 6E 64 20 20 70 61 72 69 74 sign and parit
003550: 79 20 66 6C 61 67 73 20 63 61 6E 20 62 65 20 75 y flags can be u
003560: 73 65 64 69 6E 20 20 61 6C F4 6A 6C 20 20 61 62 sedin al.jl ab
003570: 73 6F 6C 75 74 65 20 28 20 4E 4F 54 20 72 65 6C solute ( NOT rel
003580: 61 74 69 76 65 29 20 6A 75 6D 70 73 2C 63 61 6C ative) jumps,cal
003590: 6C 73 2C 20 61 6E 64 20 72 65 74 75 72 6E 73 2E ls, and returns.
0035A0: A0 A0 20 54 68 65 20 6E 6F 74 61 74 69 6F 6E 20 .. The notation
0035B0: 69 73 20 3A 2D A0 A0 20 4A 50 20 50 4F 2C 6E 6E is :-.. JP PO,nn
0035C0: 20 20 43 41 4C 4C 20 50 4F 2C 6E 6E 20 20 52 45 CALL PO,nn RE
0035D0: 54 20 50 4F A0 20 20 20 20 20 20 20 20 20 20 20 T PO.
0035E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0035F0: 50 61 72 69 74 79 20 6F 64 64 3D 30 20 A0 20 4A Parity odd=0 . J
003600: 50 20 50 45 2C 6E 6E 20 20 43 41 4C 4C 20 50 45 P PE,nn CALL PE
003610: 2C 6E 6E 20 20 52 45 54 20 50 45 A0 20 20 20 20 ,nn RET PE.
003620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003630: 20 20 20 20 20 20 20 50 61 72 69 74 79 20 65 76 Parity ev
003640: 65 6E 3D 31 A0 A0 20 4A 50 20 50 2C 6E 6E 20 20 en=1.. JP P,nn
003650: 20 43 41 4C 4C 20 50 2C 6E 6E 20 20 20 52 45 54 CALL P,nn RET
003660: 20 50 20 20 20 53 69 67 6E 20 2B 6B 43 76 65 A0 P Sign +kCve.
003670: 20 4A 50 20 4D 2C 6E 6E 20 20 20 43 41 4C 4C 20 JP M,nn CALL
003680: 4D 2C 6E 6E 20 20 20 52 45 54 20 4D 20 20 20 53 M,nn RET M S
003690: 69 67 6E 20 2D 76 65 A0 A0 20 49 66 20 74 68 65 ign -ve.. If the
0036A0: 20 63 6F 6E 64 69 74 69 6F 6E 20 69 73 20 6E 6F condition is no
0036B0: 74 20 6D 65 74 20 74 68 65 20 70 72 6F 67 72 61 t met the progra
0036C0: 6D 77 69 6C 6C 20 20 6E 6F 74 20 20 6A 75 6D 70 mwill not jump
0036D0: 2C 20 20 63 61 6C 6C 20 61 20 20 73 75 62 72 6F , call a subro
0036E0: 75 74 69 6E 65 2C 20 6F 72 72 65 74 75 72 6E 2E utine, orreturn.
0036F0: A3 20 20 20 20 20 20 20 20 45 58 41 4D 50 4C 45 £ EXAMPLE
003700: 20 4F 46 20 4A 55 4D 50 20 4F 4E 20 53 49 47 4E OF JUMP ON SIGN
003710: A0 A0 20 54 68 69 73 20 20 65 78 61 6D 70 6C 65 .. This example
003720: 20 20 69 73 20 61 20 73 69 6D 70 6C 65 20 20 70 is a simple p
003730: 72 6F 67 72 61 6D 20 20 74 6F 69 6C 6C 75 73 74 rogram toillust
003740: 72 61 74 65 20 20 4A 50 20 50 2C 6E 6E 20 2C 20 rate JP P,nn ,
003750: 61 6E 64 20 4A 50 20 4D 2C 6E 6E 3B 20 20 6A 75 and JP M,nn; ju
003760: 6D 70 69 66 20 70 6F 73 69 74 69 76 65 68 3B 20 mpif positiveh;
003770: 61 6E 64 20 6A 75 6D 70 20 69 66 20 6D 69 6E 75 and jump if minu
003780: 73 2E 20 4E 6F 74 65 20 74 68 61 74 74 68 65 20 s. Note thatthe
003790: 20 63 61 72 72 79 20 20 69 73 20 20 73 74 69 6C carry is stil
0037A0: 6C 20 20 20 6F 70 65 72 61 74 69 76 65 2C 20 20 l operative,
0037B0: 20 61 6E 64 74 68 65 72 65 66 6F 72 65 2C 20 69 andtherefore, i
0037C0: 66 20 79 6F 75 20 64 6F 20 6E 6F 74 20 63 6C 65 f you do not cle
0037D0: 61 72 20 69 74 20 62 65 66 6F 72 65 41 44 43 20 ar it beforeADC
0037E0: 20 61 6E 64 20 53 42 43 20 20 74 68 65 20 20 6C and SBC the l
0037F0: 61 74 65 72 20 6A 75 6D 70 20 20 63 6F 75 6C 64 ater jump could
003800: 20 20 62 65 75 6E 65 78 70 65 63 74 65 64 2E 20 beunexpected.
003810: 49 6E 20 74 68 69 73 20 65 78 61 6D 70 6C 65 20 In this example
003820: 74 68 65 20 63 61 72 72 79 20 69 73 6E 6F 74 20 the carry isnot
003830: 63 6C 65 61 72 65 64 2C 20 73 6F 20 22 6C 6F 6F cleared, so "loo
003840: 6B 20 62 65 66 6F 72 65 20 79 6F 75 20 6C 65 61 k before you lea
003850: 70 22 2E A3 20 4C 44 20 48 4C 2C 35 32 A0 20 20 p".£ LD HL,52.
003860: 4C 44 20 44 45 2C 33 33 A0 20 20 4C 44 20 42 21 LD DE,33. LD B!
003870: 6F 43 2C 35 A0 20 4C 4F 4F 50 31 20 53 42 43 20 oC,5. LOOP1 SBC
003880: 48 4C 2C 44 45 A0 20 20 4C 44 20 28 4C 52 45 47 HL,DE. LD (LREG
003890: 29 2C 48 4C A0 20 20 4A 50 20 50 2C 4C 4F 4F 50 ),HL. JP P,LOOP
0038A0: 31 A0 20 4C 4F 4F 50 32 20 41 44 43 20 48 4C 2C 1. LOOP2 ADC HL,
0038B0: 42 43 A0 20 20 4C 44 20 28 4C 52 45 47 29 2C 48 BC. LD (LREG),H
0038C0: 4C A0 20 20 4A 50 20 4D 2C 4C 4F 4F 50 32 A0 20 L. JP M,LOOP2.
0038D0: 20 52 45 54 20 5A A0 20 20 4A 52 20 4C 4F 4F 50 RET Z. JR LOOP
0038E0: 31 A0 20 20 A0 20 4C 52 45 47 20 20 42 49 4E 20 1. . LREG BIN
0038F0: 30 A0 20 48 52 45 47 20 20 42 49 4E 20 30 A0 20 0. HREG BIN 0.
003900: 20 A0 20 20 A0 20 62 65 72 65 70 72 65 73 65 6E . . berepresen
003910: 74 65 64 20 62 79 20 43 39 42 38 20 68 65 78 2E ted by C9B8 hex.
003920: A0 A0 20 43 6F 6E 76 65 72 73 69 6F 6E 20 20 6F .. Conversion o
003930: 66 20 20 61 20 20 68 65 78 20 20 6E 75 6D 62 65 f a hex numbe
003940: 72 20 20 74 6F 20 20 69 74 73 64 65 63 69 6D 61 r to itsdecima
003950: 6C 20 65 71 75 69 76 61 6C 65 6E 74 20 66 6F 6C l equivalent fol
003960: 6C 6F 77 73 20 74 68 65 20 20 73 74 61 6E 64 61 lows the standa
003970: 72 90 0A 64 63 61 6C 63 75 6C 61 74 69 6F 6E 2E r..dcalculation.
003980: A0 A0 69 2E 65 2E 20 20 42 38 20 68 65 78 20 3D ..i.e. B8 hex =
003990: 20 28 42 20 68 65 78 29 2A 20 31 36 2B 20 28 38 (B hex)* 16+ (8
0039A0: 29 2A 20 31 A0 20 20 20 20 20 20 20 20 20 20 20 )* 1.
0039B0: 20 20 3D 20 31 31 2A 31 36 2B 38 3D 31 38 34 A0 = 11*16+8=184.
0039C0: A0 20 41 6C 77 61 79 73 20 72 65 6D 65 6D 62 65 . Always remembe
0039D0: 72 20 74 68 61 74 20 61 20 68 65 78 20 6E 75 6D r that a hex num
0039E0: 62 65 72 20 68 61 73 20 61 62 61 73 65 20 6F 66 ber has abase of
0039F0: 20 31 36 20 64 65 63 69 6D 61 6C 2C 20 61 20 64 16 decimal, a d
003A00: 65 63 69 6D 61 6C 20 6E 75 6D 62 65 72 20 68 61 ecimal number ha
003A10: 73 61 20 62 61 73 65 20 6F 66 20 31 30 20 20 61 sa base of 10 a
003A20: 6E 64 20 61 20 62 69 6E 61 72 79 20 6E 75 6D 62 nd a binary numb
003A30: 65 72 20 61 20 62 61 73 65 62 61 73 65 20 32 2E er a basebase 2.
003A40: A3 20 20 20 20 45 58 41 4D 50 4C 45 53 20 4F 46 £ EXAMPLES OF
003A50: 20 48 45 58 41 44 45 43 49 4D 41 4C 20 4E 4F 54 HEXADECIMAL NOT
003A60: 41 54 49 4F 4E A0 A0 20 4E 6F 77 20 20 74 68 61 ATION.. Now tha
003A70: 74 20 20 1A 9B 68 65 78 20 6E 6F 74 61 74 69 6F t ..hex notatio
003A80: 6E 20 68 61 73 20 62 65 65 6E 20 69 6E 74 72 6F n has been intro
003A90: 2D 64 75 63 65 64 20 77 65 20 20 63 61 6E 20 64 -duced we can d
003AA0: 69 73 63 75 73 73 20 20 68 6F 77 20 20 74 68 65 iscuss how the
003AB0: 20 63 6F 6D 70 75 74 65 72 73 74 6F 72 65 73 20 computerstores
003AC0: 20 70 72 6F 67 72 61 6D 73 20 20 69 6E 20 20 6D programs in m
003AD0: 6F 72 65 20 20 64 65 74 61 69 6C 2E 20 20 20 41 ore detail. A
003AE0: 73 61 6C 72 65 61 64 79 20 20 20 6D 65 6E 74 69 salready menti
003AF0: 6F 6E 65 64 2C 20 20 74 68 65 20 20 20 69 6E 73 oned, the ins
003B00: 74 72 75 63 74 69 6F 6E 73 61 72 65 20 20 73 74 tructionsare st
003B10: 6F 72 65 64 20 20 20 6D 65 6D 6F 72 79 20 20 61 ored memory a
003B20: 73 20 20 6E 75 6D 62 65 72 73 2E 20 20 53 6F 6D s numbers. Som
003B30: 65 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 20 einstructions
003B40: 6F 6E 6C 79 20 20 20 72 65 71 75 69 72 65 20 20 only require
003B50: 61 20 20 73 69 6E 67 6C 65 6E 75 6D 62 65 72 2C a singlenumber,
003B60: 20 6F 74 68 65 72 73 20 72 65 71 75 69 72 65 20 others require
003B70: 6D 6F 72 65 2E EB 46 20 43 6F 6C 75 6D 6E 20 32 more..F Column 2
003B80: 20 6F 6E 74 68 65 20 53 69 6D 75 6C 61 74 6F 72 onthe Simulator
003B90: 20 64 69 73 70 6C 61 79 20 73 68 6F 77 73 20 20 display shows
003BA0: 74 68 65 20 20 6D 65 6D 6F 72 79 63 6F 6E 74 65 the memoryconte
003BB0: 6E 74 73 20 66 6F 72 20 74 68 65 20 69 6E 73 74 nts for the inst
003BC0: 72 75 63 74 69 6F 6E 73 20 69 6E 20 68 65 78 2E ructions in hex.
003BD0: A0 A0 20 41 6C 6C 20 74 68 65 20 20 6E 75 6D 62 .. All the numb
003BE0: 65 72 73 20 20 75 73 65 64 20 20 74 6F 20 20 64 ers used to d
003BF0: 65 73 63 72 69 62 65 20 61 6E 69 6E 73 74 72 75 escribe aninstru
003C00: 63 74 69 6F 6E 20 61 72 65 20 20 67 69 76 65 6E ction are given
003C10: 20 69 6E 20 73 65 71 75 65 6E 63 65 20 61 6C 6F in sequence alo
003C20: 6E 67 74 68 65 20 6C 69 6E 65 2E 20 20 4E 6F 74 ngthe line. Not
003C30: 69 63 65 20 74 68 61 74 20 6E 75 6D 62 65 72 73 ice that numbers
003C40: 20 63 61 6C 6C 65 64 20 75 70 69 6E 20 61 6E 20 called upin an
003C50: 69 6E 73 74 72 75 63 74 69 6F 6E 20 61 70 70 65 instruction appe
003C60: 61 72 20 74 6F 77 61 72 64 73 20 74 68 65 20 65 ar towards the e
003C70: 6E 64 6F 66 20 74 68 17 15 65 20 73 74 72 69 6E ndof th..e strin
003C80: 67 20 20 6F 66 20 20 6E 75 6D 62 65 72 73 2E 20 g of numbers.
003C90: 54 68 65 20 20 65 61 72 6C 69 65 72 6E 75 6D 62 The earliernumb
003CA0: 65 72 73 20 20 20 20 64 65 74 65 72 6D 69 6E 65 ers determine
003CB0: 20 20 20 20 74 68 65 20 20 20 74 79 70 65 20 20 the type
003CC0: 20 20 6F 66 69 6E 73 74 72 75 63 74 69 6F 6E 2E ofinstruction.
003CD0: 20 53 69 6E 63 65 20 74 68 65 20 20 74 6F 74 61 Since the tota
003CE0: 6C 20 20 6E 75 6D 62 65 72 20 6F 66 69 6E 73 74 l number ofinst
003CF0: 72 75 63 74 69 6F 6E 73 20 20 20 65 78 63 65 65 ructions excee
003D00: 64 20 20 20 32 35 36 2C 20 20 61 20 20 20 70 72 d 256, a pr
003D10: 65 66 69 78 6E 75 6D 62 65 72 20 69 73 20 75 73 efixnumber is us
003D20: 65 64 20 74 6F 20 20 70 72 6F 64 75 63 65 20 6F ed to produce o
003D30: 74 68 65 72 20 73 65 74 73 20 6F 66 69 6E 73 74 ther sets ofinst
003D40: 72 75 63 74 69 6F 6E 73 2E 20 54 68 65 20 70 72 ructions. The pr
003D50: 65 66 69 78 65 73 20 79 6F 75 20 77 69 6C 6C 20 efixes you will
003D60: 66 69 6E 64 61 72 65 20 45 44 2C 20 43 42 2C 20 findare ED, CB,
003D70: 44 44 20 61 6E 64 20 46 44 9C FA 2E A3 20 4C 75 DD and FD...£ Lu
003D80: 63 6B 69 6C 79 20 61 73 73 65 6D 62 6C 65 72 73 ckily assemblers
003D90: 20 74 61 6B 65 73 20 61 63 63 6F 75 6E 74 20 6F takes account o
003DA0: 66 20 61 6C 6C 74 68 65 73 65 20 20 63 6F 6D 70 f allthese comp
003DB0: 6C 65 78 69 74 69 65 73 2C 20 20 61 6E 64 20 20 lexities, and
003DC0: 79 6F 75 20 20 77 69 6C 6C 20 6E 6F 74 6E 65 65 you will notnee
003DD0: 64 20 20 74 6F 20 20 6C 65 61 72 6E 20 20 77 68 d to learn wh
003DE0: 69 63 68 20 6E 75 6D 62 65 72 73 20 72 65 70 72 ich numbers repr
003DF0: 65 73 65 6E 74 77 68 69 63 68 20 69 6E 73 74 72 esentwhich instr
003E00: 75 63 74 69 6F 6E 73 2E A0 A0 20 54 68 65 20 53 uctions... The S
003E10: 69 6D 75 6C 61 74 6F 72 20 20 63 61 6E 20 20 62 imulator can b
003E20: 65 20 73 77 69 74 63 68 65 64 20 62 65 74 77 65 e switched betwe
003E30: 65 6E 64 65 63 69 6D 61 6C 20 20 20 61 6E 64 20 endecimal and
003E40: 20 20 68 65 78 61 64 65 63 69 6D 61 6C 20 20 64 hexadecimal d
003E50: 69 73 70 6C 61 79 20 20 62 79 70 72 65 73 73 69 isplay bypressi
003E60: 6E 67 20 73 68 69 66 74 20 20 22 54 22 2C 20 20 ng shift "T",
003E70: 77 68 65 6E 20 61 20 70 72 6F 67 A5 E2 72 61 6D when a prog..ram
003E80: 20 20 69 73 6E 6F 74 20 72 75 6E 6E 69 6E 67 2E isnot running.
003E90: A3 20 4C 44 20 41 2C 32 35 48 A0 20 20 41 44 44 £ LD A,25H. ADD
003EA0: 20 41 2C 41 A0 20 20 44 41 41 A0 20 20 4C 44 20 A,A. DAA. LD
003EB0: 48 4C 2C 34 35 38 39 48 A0 20 20 4C 44 20 44 45 HL,4589H. LD DE
003EC0: 2C 33 38 31 32 48 A0 20 20 4C 44 20 41 2C 4C A0 ,3812H. LD A,L.
003ED0: 20 20 53 55 42 20 45 A0 20 20 44 41 41 A0 20 20 SUB E. DAA.
003EE0: 4C 44 20 4C 2C 41 A0 20 20 4C 44 20 41 2C 48 A0 LD L,A. LD A,H.
003EF0: 20 20 53 42 43 20 41 2C 44 A0 20 20 44 41 41 A0 SBC A,D. DAA.
003F00: 20 20 4C 44 20 48 2C 41 A0 20 20 52 45 54 A0 20 LD H,A. RET.
003F10: 20 A0 20 20 A0 20 20 20 20 20 20 42 49 4E 41 52 . . BINAR
003F20: 59 20 43 4F 44 45 44 20 44 45 43 49 4D 41 4C 20 Y CODED DECIMAL
003F30: 4E 4F 54 41 54 49 4F 4E A0 A0 20 57 65 20 20 77 NOTATION.. We w
003F40: 6F 75 6C 64 20 20 73 74 69 6C 6C 20 20 6C 69 6B ould still lik
003F50: 65 20 20 74 6F 20 20 62 65 20 20 61 62 6C 65 20 e to be able
003F60: 74 6F 70 65 72 66 6F 72 6D 20 63 61 6C 63 75 6C toperform calcul
003F70: 61 74 69 6F 6E 73 20 20 6F 6E 20 64 65 08 DC 63 ations on de..c
003F80: 69 6D 61 6C 20 6E 75 6D 62 65 72 73 77 69 74 68 imal numberswith
003F90: 6F 75 74 20 20 68 61 76 69 6E 67 20 20 74 6F 20 out having to
003FA0: 63 6F 6E 76 65 72 74 20 74 6F 20 62 69 6E 61 72 convert to binar
003FB0: 79 20 6F 72 68 65 78 61 64 65 63 69 6D 61 6C 20 y orhexadecimal
003FC0: 66 6F 72 6D 2E 20 48 65 78 69 64 65 63 69 6D 61 form. Hexidecima
003FD0: 6C 20 66 6F 72 6D 20 68 6F 6C 64 73 61 20 6B 65 l form holdsa ke
003FE0: 79 20 74 6F 20 61 20 6D 65 74 68 6F 64 20 6F 66 y to a method of
003FF0: 20 61 63 68 69 65 76 69 6E 67 20 74 68 69 73 2E achieving this.
004000: A0 A0 20 54 68 65 20 20 68 65 78 20 64 69 67 69 .. The hex digi
004010: 74 20 20 72 65 71 75 69 72 65 73 20 20 61 64 6A t requires adj
004020: 75 73 74 6D 65 6E 74 20 74 6F 61 76 6F 69 64 20 ustment toavoid
004030: 74 68 65 20 64 69 67 69 74 73 20 20 41 2D 46 2E the digits A-F.
004040: 20 20 41 64 64 69 6E 67 20 20 36 20 74 6F 20 74 Adding 6 to t
004050: 68 65 64 69 67 69 74 2C 20 69 66 20 74 68 65 73 hedigit, if thes
004060: 65 20 73 79 6D 62 6F 6C 73 20 61 70 70 65 61 72 e symbols appear
004070: 2C 20 20 72 65 73 75 6C 74 73 69 6E 20 63 6F B8 , resultsin co.
004080: 18 72 72 65 63 74 20 61 64 6A 75 73 74 6D 65 6E .rrect adjustmen
004090: 74 2E A0 A0 20 54 61 6B 65 20 20 74 68 65 20 20 t... Take the
0040A0: 68 65 78 20 20 6E 75 6D 62 65 72 20 20 43 20 20 hex number C
0040B0: 28 3D 20 31 32 20 64 65 63 2E 29 2E 41 64 64 69 (= 12 dec.).Addi
0040C0: 6E 67 20 20 36 20 20 67 69 76 65 73 20 20 31 38 ng 6 gives 18
0040D0: 20 20 64 65 63 69 6D 61 6C 20 6F 72 20 31 32 20 decimal or 12
0040E0: 68 65 78 2E 48 65 6E 63 65 20 74 68 65 20 68 65 hex.Hence the he
0040F0: 78 20 6E 75 6D 62 65 72 20 6C 6F 6F 6B 73 20 20 x number looks
004100: 69 64 65 6E 74 69 63 61 6C 20 74 6F 74 68 65 20 identical tothe
004110: 64 65 63 69 6D 61 6C 20 61 6E 73 77 65 72 20 72 decimal answer r
004120: 65 71 75 69 72 65 64 2E A3 20 45 61 63 68 20 64 equired.£ Each d
004130: 69 67 69 74 20 69 73 20 20 68 65 6C 64 20 20 69 igit is held i
004140: 6E 20 20 34 20 20 62 69 74 73 20 6F 66 20 74 68 n 4 bits of th
004150: 65 72 65 67 69 73 74 65 72 2E 20 20 20 54 68 65 eregister. The
004160: 73 65 20 20 34 20 20 62 69 74 73 20 61 72 65 20 se 4 bits are
004170: 63 61 6C 6C 65 64 20 20 61 6E 69 62 62 6C 65 2C called anibble,
004180: 20 D5 AB 74 68 65 20 77 68 6F 6C 65 20 38 20 62 ..the whole 8 b
004190: 69 74 20 77 6F 72 64 20 69 73 20 74 65 72 6D 65 it word is terme
0041A0: 64 20 61 62 79 74 65 2E 20 57 68 6F 20 73 61 69 d abyte. Who sai
0041B0: 64 20 70 72 6F 67 72 61 6D 6D 65 72 73 20 68 61 d programmers ha
0041C0: 76 65 20 6E 6F 20 73 65 6E 73 65 6F 66 20 68 75 ve no senseof hu
0041D0: 6D 6F 75 72 3F A0 A0 20 54 68 69 73 20 20 70 72 mour?.. This pr
0041E0: 65 73 65 6E 74 61 74 69 6F 6E 20 20 69 73 20 20 esentation is
0041F0: 74 65 72 6D 65 64 20 20 20 42 69 6E 61 72 79 43 termed BinaryC
004200: 6F 64 65 64 20 44 65 63 69 6D 61 6C 20 6F 72 20 oded Decimal or
004210: 42 43 44 2E A0 A0 20 54 68 65 20 20 20 5A 38 30 BCD... The Z80
004220: 20 20 20 20 61 63 63 6F 6D 6D 6F 64 61 74 65 73 accommodates
004230: 20 20 20 74 68 65 20 20 20 61 62 6F 76 65 61 64 the abovead
004240: 6A 75 73 74 6D 65 6E 74 2C 20 20 77 69 74 68 20 justment, with
004250: 74 68 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 the instruction
004260: 20 20 44 41 41 2C 6F 72 20 20 44 65 63 69 6D 61 DAA,or Decima
004270: 6C 20 20 41 64 6A 75 73 74 20 20 41 63 63 75 6D l Adjust Accum
004280: 75 6C 61 B2 D6 74 6F 72 2E 20 20 20 54 68 69 73 ula..tor. This
004290: 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 69 73 20 instruction is
0042A0: 20 75 73 65 64 20 20 61 66 74 65 72 20 20 61 6E used after an
0042B0: 20 20 38 20 20 62 69 74 41 44 44 2C 20 20 41 44 8 bitADD, AD
0042C0: 43 2C 20 20 53 55 42 2C 20 20 6F 72 20 20 53 42 C, SUB, or SB
0042D0: 43 20 20 74 6F 20 61 64 6A 75 73 74 20 74 68 65 C to adjust the
0042E0: 41 63 63 75 6D 75 6C 61 74 6F 72 20 63 6F 6E 74 Accumulator cont
0042F0: 65 6E 74 73 20 62 79 20 61 64 64 69 6E 67 20 36 ents by adding 6
004300: 20 20 74 6F 20 74 68 65 6E 69 62 62 6C 65 2C 20 to thenibble,
004310: 20 69 66 20 65 69 74 68 65 72 20 20 6E 69 62 62 if either nibb
004320: 6C 65 20 69 6E 20 74 68 65 20 61 6E 73 77 65 72 le in the answer
004330: 69 73 20 61 62 6F 76 65 20 39 2E A3 20 54 6F 20 is above 9.£ To
004340: 70 65 72 66 6F 72 6D 20 20 74 68 69 73 20 6F 70 perform this op
004350: 65 72 61 74 69 6F 6E 20 74 68 65 20 5A 38 30 20 eration the Z80
004360: 75 73 65 73 74 77 6F 20 66 75 72 74 68 65 72 20 usestwo further
004370: 66 6C 61 67 73 2C 20 74 68 65 20 20 48 20 20 66 flags, the H f
004380: 6C 61 67 20 28 43 8F 20 61 20 48 61 6C 66 63 61 lag (C. a Halfca
004390: 72 72 79 20 20 62 65 74 77 65 65 6E 20 20 6E 69 rry between ni
0043A0: 62 62 6C 65 73 20 29 2C 20 20 61 6E 64 20 20 4E bbles ), and N
0043B0: 20 20 66 6C 61 67 28 73 75 62 74 72 61 63 74 20 flag(subtract
0043C0: 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 70 65 instruction pe
0043D0: 72 66 6F 72 6D 65 64 20 6C 61 73 74 29 2E 53 69 rformed last).Si
0043E0: 6E 63 65 20 20 74 68 65 73 65 20 20 66 6C 61 67 nce these flag
0043F0: 73 20 20 63 61 6E 6E 6F 74 20 62 65 20 74 65 73 s cannot be tes
004400: 74 65 64 20 61 73 70 61 72 74 20 6F 66 20 61 20 ted aspart of a
004410: 63 6F 6E 64 69 74 69 6F 6E 61 6C 20 6A 75 6D 70 conditional jump
004420: 20 65 74 63 2E 20 74 68 65 79 20 61 72 65 6F 66 etc. they areof
004430: 20 6C 69 74 74 6C 65 20 75 73 65 2E A3 20 20 20 little use.£
004440: 20 20 45 58 41 4D 50 4C 45 53 20 4F 46 20 42 2E EXAMPLES OF B.
004450: 43 2E 44 2E 20 4E 4F 54 41 54 49 4F 4E A0 A0 20 C.D. NOTATION..
004460: 54 68 65 73 65 20 65 78 61 6D 70 6C 65 73 20 73 These examples s
004470: 68 6F 77 20 73 69 6D 70 6C 65 20 61 64 64 69 74 how simple addit
004480: 69 6F 6E 20 61 6E 64 72 75 73 75 62 74 72 61 63 ion andrusubtrac
004490: 74 69 6F 6E 20 69 6E 20 20 42 43 44 20 66 6F 72 tion in BCD for
0044A0: 6D 61 74 2E 20 20 52 65 6D 65 6D 62 65 72 20 74 mat. Remember t
0044B0: 6F 6B 65 65 70 20 20 69 6E 20 20 20 48 65 78 20 okeep in Hex
0044C0: 20 64 69 73 70 6C 61 79 20 20 20 6D 6F 64 65 20 display mode
0044D0: 20 20 6F 72 20 20 74 68 65 69 6C 6C 75 73 74 72 or theillustr
0044E0: 61 74 69 6F 6E 73 20 77 69 6C 6C 20 6E 6F 74 20 ations will not
0044F0: 61 70 70 65 61 72 20 69 6E 20 42 43 44 2E A3 20 appear in BCD.£
004500: 4C 44 20 41 2C 32 35 48 A0 20 20 4C 44 20 48 4C LD A,25H. LD HL
004510: 2C 53 54 4F 52 45 A0 20 20 4C 44 20 44 45 2C 32 ,STORE. LD DE,2
004520: 34 36 38 48 A0 20 20 49 4E 43 20 28 48 4C 29 A0 468H. INC (HL).
004530: 20 20 52 45 54 A0 20 20 A0 20 20 42 49 4E 20 36 RET. . BIN 6
004540: 35 48 A0 20 20 42 49 4E 20 38 37 48 A0 20 20 42 5H. BIN 87H. B
004550: 49 4E 20 39 41 48 A0 20 20 42 49 4E 20 44 46 48 IN 9AH. BIN DFH
004560: A0 20 20 42 49 4E 20 46 46 48 A0 20 20 42 49 4E . BIN FFH. BIN
004570: 20 36 34 48 A0 20 20 A0 20 53 54 4F 52 45 20 44 64H. . STORE D
004580: 45 46 42 20 36 34 A0 20 20 87 C2 A0 20 20 A0 20 EFB 64. ... .
004590: 20 20 50 4F 53 49 54 49 56 45 20 41 4E 44 20 4E POSITIVE AND N
0045A0: 45 47 41 54 49 56 45 20 4E 55 4D 42 45 52 20 4E EGATIVE NUMBER N
0045B0: 4F 54 41 54 49 4F 4E A0 A0 20 53 6F 20 66 61 72 OTATION.. So far
0045C0: 20 77 65 20 68 61 76 65 20 6F 6E 6C 79 20 64 65 we have only de
0045D0: 61 6C 74 20 77 69 74 68 20 70 6F 73 69 74 69 76 alt with positiv
0045E0: 65 6E 75 6D 62 65 72 73 2E 20 20 49 66 20 77 65 enumbers. If we
0045F0: 20 68 61 64 20 74 61 6B 65 6E 20 20 36 20 20 66 had taken 6 f
004600: 72 6F 6D 20 20 35 20 77 65 77 6F 75 6C 64 20 65 rom 5 wewould e
004610: 6E 64 20 20 75 70 20 77 69 74 68 20 20 74 68 65 nd up with the
004620: 20 61 6E 73 77 65 72 20 32 35 35 20 20 77 69 74 answer 255 wit
004630: 68 63 61 72 72 79 20 73 65 74 2E 20 54 68 65 72 hcarry set. Ther
004640: 65 20 69 73 20 61 6E 20 69 6E 74 65 72 70 72 65 e is an interpre
004650: 74 61 74 69 6F 6E 20 6F 66 6E 75 6D 62 65 72 73 tation ofnumbers
004660: 20 20 74 68 61 74 20 61 6C 6C 6F 77 73 20 75 73 that allows us
004670: 20 74 6F 20 63 6F 6E 73 69 64 65 72 20 74 68 69 to consider thi
004680: 73 61 6E 73 77 65 72 20 61 73 20 B8 DF 74 68 65 sanswer as ..the
004690: 20 6E 65 67 61 74 69 76 65 20 6E 75 6D 62 65 72 negative number
0046A0: 20 2D 31 2E A0 A0 20 49 6E 20 20 74 68 69 73 20 -1... In this
0046B0: 20 69 6E 74 65 72 70 72 65 74 61 74 69 6F 6E 20 interpretation
0046C0: 20 2D 31 20 6D 75 73 74 20 65 71 75 61 6C 32 35 -1 must equal25
0046D0: 35 20 6F 72 20 31 31 31 31 31 31 31 31 2C 20 6F 5 or 11111111, o
0046E0: 72 20 74 68 65 20 70 72 6F 63 65 73 73 6F 72 20 r the processor
0046F0: 20 77 6F 75 6C 64 6E 6F 74 20 62 65 20 61 62 6C wouldnot be abl
004700: 65 20 74 6F 20 74 61 6B 65 20 20 36 20 20 66 72 e to take 6 fr
004710: 6F 6D 20 20 35 20 20 61 6E 64 20 67 65 74 74 68 om 5 and getth
004720: 65 20 72 69 67 68 74 20 61 6E 73 77 65 72 2E 20 e right answer.
004730: 46 75 72 74 68 65 72 20 35 2D 37 20 3D 2D 32 20 Further 5-7 =-2
004740: 6F 72 20 32 35 34 6F 72 20 31 31 31 31 31 31 31 or 254or 1111111
004750: 30 2E 20 42 69 74 20 37 2C 20 74 68 65 20 6D 6F 0. Bit 7, the mo
004760: 73 74 20 73 69 67 6E 69 66 69 63 61 6E 74 62 69 st significantbi
004770: 74 2C 20 72 65 70 72 65 73 65 6E 74 73 20 20 74 t, represents t
004780: 68 65 20 73 69 67 6E 20 28 20 2B 20 6F 40 51 72 he sign ( + o@Qr
004790: 20 2D 20 29 20 20 6F 66 74 68 65 20 6E 75 6D 62 - ) ofthe numb
0047A0: 65 72 2E 20 57 68 65 6E 20 62 69 74 20 37 20 69 er. When bit 7 i
0047B0: 73 20 22 31 22 20 74 68 65 20 6E 75 6D 62 65 72 s "1" the number
0047C0: 69 73 20 6E 65 67 61 74 69 76 65 2C 20 20 61 6E is negative, an
0047D0: 64 20 77 68 65 6E 20 22 30 22 20 74 68 65 20 6E d when "0" the n
0047E0: 75 6D 62 65 72 20 69 73 70 6F 73 69 74 69 76 65 umber ispositive
0047F0: 2E A3 20 41 20 20 75 73 65 66 75 6C 20 6F 70 65 .£ A useful ope
004800: 72 61 74 69 6F 6E 20 77 6F 75 6C 64 20 20 62 65 ration would be
004810: 20 74 6F 20 6D 61 6B 65 20 61 70 6F 73 69 74 69 to make apositi
004820: 76 65 20 6E 75 6D 62 65 72 20 6E 65 67 61 74 69 ve number negati
004830: 76 65 2E 20 43 68 61 6E 67 69 6E 67 20 62 69 74 ve. Changing bit
004840: 20 37 64 6F 65 73 20 20 6E 6F 74 20 20 64 6F 20 7does not do
004850: 20 74 68 69 73 2E 20 20 54 61 6B 65 20 74 68 65 this. Take the
004860: 20 20 70 6F 73 69 74 69 76 65 6E 75 6D 62 65 72 positivenumber
004870: 20 20 32 20 6F 72 20 20 30 30 30 30 30 30 31 30 2 or 00000010
004880: 20 20 61 6E 64 20 69 74 73 20 6E 65 67 61 74 9C and its negat.
004890: 8E 69 76 65 65 71 75 69 76 61 6C 65 6E 74 20 2D .iveequivalent -
0048A0: 32 20 20 6F 72 20 31 31 31 31 31 31 31 30 20 20 2 or 11111110
0048B0: 66 6F 72 20 65 78 61 6D 70 6C 65 2E 49 6E 76 65 for example.Inve
0048C0: 72 74 69 6E 67 20 61 6C 6C 20 62 69 74 73 20 6F rting all bits o
0048D0: 66 20 74 68 65 20 20 62 69 6E 61 72 79 20 6E 75 f the binary nu
0048E0: 6D 62 65 72 6F 66 20 20 2B 32 20 20 67 69 76 65 mberof +2 give
0048F0: 73 20 20 31 31 31 31 31 31 30 31 2C 20 77 68 69 s 11111101, whi
004900: 63 68 20 69 73 20 31 20 6C 65 73 73 74 68 61 6E ch is 1 lessthan
004910: 20 74 68 61 74 20 20 66 6F 72 20 2D 32 2E A0 A0 that for -2...
004920: 48 65 6E 63 65 20 74 6F 20 6D 61 6B 65 20 61 20 Hence to make a
004930: 70 6F 73 69 74 69 76 65 20 6E 75 6D 62 65 72 20 positive number
004940: 6E 65 67 61 74 69 76 65 77 65 20 69 6E 76 65 72 negativewe inver
004950: 74 20 61 6C 6C 20 69 74 73 20 62 69 6E 61 72 79 t all its binary
004960: 20 62 69 74 73 2C 20 20 6B 6E 6F 77 6E 20 61 73 bits, known as
004970: 43 6F 6D 70 6C 69 6D 65 6E 74 69 6E 67 2C 20 61 Complimenting, a
004980: 6E 64 20 61 64 64 20 20 31 2E 20 20 54 68 65 20 nd add 1. The
004990: 6E 7A 68 6F 74 61 74 69 6F 6E 69 73 20 67 65 6E nzhotationis gen
0049A0: 65 72 61 6C 6C 79 20 74 65 72 6D 65 64 20 32 73 erally termed 2s
0049B0: 20 63 6F 6D 70 6C 65 6D 65 6E 74 A3 69 2E 65 2E complement£i.e.
0049C0: 20 20 20 20 20 20 20 20 20 30 20 30 20 30 20 30 0 0 0 0
0049D0: 20 30 20 31 20 30 20 31 20 20 20 20 2B 35 A0 20 0 1 0 1 +5.
0049E0: 20 20 20 69 6E 76 65 72 74 20 20 20 31 20 31 20 invert 1 1
0049F0: 31 20 31 20 31 20 30 20 31 20 30 A0 20 20 61 64 1 1 1 0 1 0. ad
004A00: 64 20 31 20 20 20 20 20 20 31 20 31 20 31 20 31 d 1 1 1 1 1
004A10: 20 31 20 30 20 31 20 31 20 20 20 20 2D 35 A0 20 1 0 1 1 -5.
004A20: 20 20 20 69 6E 76 65 72 74 20 20 20 30 20 30 20 invert 0 0
004A30: 30 20 30 20 30 20 31 20 30 20 30 A0 20 20 61 64 0 0 0 1 0 0. ad
004A40: 64 20 31 20 20 20 20 20 20 30 20 30 20 30 20 30 d 1 0 0 0 0
004A50: 20 30 20 31 20 30 20 31 20 20 20 20 2B 35 A0 A0 0 1 0 1 +5..
004A60: 20 54 68 65 20 20 6F 70 65 72 61 74 69 6F 6E 20 The operation
004A70: 20 6C 75 63 6B 69 6C 79 20 20 61 6C 73 6F 20 20 luckily also
004A80: 6D 61 6B 65 73 20 20 61 6E 65 67 61 74 69 76 65 makes anegative
004A90: 20 20 20 FF 60 6E 75 6D 62 65 72 20 20 20 20 70 .`number p
004AA0: 6F 73 69 74 69 76 65 2E 20 20 20 41 20 20 76 65 ositive. A ve
004AB0: 72 79 69 6D 70 6F 72 74 61 6E 74 20 70 6F 69 6E ryimportant poin
004AC0: 74 2E A0 A0 20 54 68 65 20 6C 61 72 67 65 73 74 t... The largest
004AD0: 20 70 6F 73 69 74 69 76 65 20 6E 75 6D 62 65 72 positive number
004AE0: 20 77 65 20 63 61 6E 20 68 6F 6C 64 69 6E 20 20 we can holdin
004AF0: 61 20 20 20 73 69 6E 67 6C 65 20 20 20 72 65 67 a single reg
004B00: 69 73 74 65 72 2C 20 20 75 73 69 6E 67 20 20 20 ister, using
004B10: 74 68 69 73 6E 6F 74 61 74 69 6F 6E 20 69 73 20 thisnotation is
004B20: 20 30 31 31 31 31 31 31 31 20 20 20 6F 72 20 20 01111111 or
004B30: 31 32 37 20 20 61 6E 64 20 74 68 65 6C 61 72 67 127 and thelarg
004B40: 65 73 74 20 20 6E 65 67 61 74 69 76 65 20 20 20 est negative
004B50: 6E 75 6D 62 65 72 20 20 31 30 30 30 30 30 30 30 number 10000000
004B60: 20 20 6F 72 2D 31 32 38 2E A3 20 54 68 65 20 20 or-128.£ The
004B70: 5A 38 30 20 20 68 61 73 20 74 77 6F 20 69 6E 73 Z80 has two ins
004B80: 74 72 75 63 74 69 6F 6E 73 20 74 68 61 74 20 6D tructions that m
004B90: 61 79 62 65 20 A2 2D 75 73 65 64 20 66 6F 72 20 aybe .-used for
004BA0: 74 68 65 73 65 20 6F 70 65 72 61 74 69 6F 6E 73 these operations
004BB0: A0 A0 20 43 50 4C 20 20 20 63 6F 6D 70 6C 65 6D .. CPL complem
004BC0: 65 6E 74 73 20 20 20 20 6F 72 20 20 20 69 6E 76 ents or inv
004BD0: 65 72 74 73 20 20 20 74 68 65 20 20 20 20 20 20 erts the
004BE0: 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 74 68 65 contents of the
004BF0: 20 41 63 63 75 6D 75 6C 61 74 6F 72 2E A0 A0 20 Accumulator...
004C00: 4E 45 47 20 20 20 6E 65 67 61 74 65 73 2C 20 20 NEG negates,
004C10: 6F 72 20 6D 61 6B 65 73 20 20 6E 65 67 61 74 69 or makes negati
004C20: 76 65 2C 20 74 68 65 20 20 20 20 20 20 20 63 6F ve, the co
004C30: 6E 74 65 6E 74 73 20 20 6F 66 20 20 74 68 65 20 ntents of the
004C40: 20 41 63 63 75 6D 75 6C 61 74 6F 72 20 62 79 20 Accumulator by
004C50: 20 20 20 20 20 20 63 6F 6D 70 6C 65 6D 65 6E 74 complement
004C60: 69 6E 67 20 61 6E 64 20 61 64 64 69 6E 67 20 31 ing and adding 1
004C70: 20 69 6E 20 6F 6E 65 20 20 20 20 20 20 20 6F 70 in one op
004C80: 65 72 61 74 69 6F 6E 2E A0 A0 20 41 20 53 69 67 eration... A Sig
004C90: 6E 20 66 6C 61 67 20 46 52 28 53 29 20 69 73 20 n flag FR(S) is
004CA0: 70 72 6F 76 69 64 65 64 20 6F 6E 20 74 68 65 20 provided on the
004CB0: 5A 38 30 2E 49 74 20 64 75 70 6C 69 63 61 74 65 Z80.It duplicate
004CC0: 73 20 20 74 68 65 20 73 69 67 6E 20 28 20 62 69 s the sign ( bi
004CD0: 74 20 37 20 29 20 6F 66 20 74 68 65 61 6E 73 77 t 7 ) of theansw
004CE0: 65 72 20 61 66 74 65 72 20 61 6E 79 20 61 72 69 er after any ari
004CF0: 74 68 6D 65 74 69 63 20 6F 70 65 72 61 74 69 6F thmetic operatio
004D00: 6E 20 6F 6E 74 68 65 20 41 63 63 75 6D 75 6C 61 n onthe Accumula
004D10: 74 6F 72 2E 20 20 54 68 65 20 20 73 69 67 6E 20 tor. The sign
004D20: 20 66 6C 61 67 20 69 73 20 22 30 22 66 6F 72 20 flag is "0"for
004D30: 20 61 20 20 70 6F 73 69 74 69 76 65 20 20 72 65 a positive re
004D40: 73 75 6C 74 20 20 61 6E 64 20 20 22 31 22 20 66 sult and "1" f
004D50: 6F 72 20 61 6E 65 67 61 74 69 76 65 20 72 65 73 or anegative res
004D60: 75 6C 74 2E A3 20 57 68 65 6E 20 70 65 72 66 6F ult.£ When perfo
004D70: 72 6D 69 6E 67 20 20 61 72 69 74 68 6D 65 74 69 rming arithmeti
004D80: 63 20 20 6F 70 65 72 61 74 69 6F 6E 73 77 68 69 c operationswhi
004D90: 63 68 20 20 77 65 20 20 77 A4 87 69 73 68 20 20 ch we w..ish
004DA0: 74 6F 20 69 6E 74 65 72 70 72 65 74 20 77 69 74 to interpret wit
004DB0: 68 69 6E 20 74 68 65 72 61 6E 67 65 20 20 2D 31 hin therange -1
004DC0: 32 38 20 74 6F 20 2B 31 32 37 2C 20 74 68 65 20 28 to +127, the
004DD0: 43 61 72 72 79 20 20 66 6C 61 67 20 20 6E 6F 6C Carry flag nol
004DE0: 6F 6E 67 65 72 20 20 73 69 67 6E 61 6C 73 20 20 onger signals
004DF0: 61 6E 20 6F 75 74 20 6F 66 20 72 61 6E 67 65 20 an out of range
004E00: 72 65 73 75 6C 74 2E 48 6F 77 65 76 65 72 20 61 result.However a
004E10: 6E 6F 74 68 65 72 20 66 6C 61 67 2C 20 74 68 65 nother flag, the
004E20: 20 6F 76 65 72 66 6C 6F 77 20 28 50 2F 56 29 66 overflow (P/V)f
004E30: 6C 61 67 20 20 64 6F 65 73 2E 20 20 49 74 20 20 lag does. It
004E40: 69 73 20 20 61 20 20 22 31 22 20 77 68 65 6E 65 is a "1" whene
004E50: 76 65 72 20 74 68 65 61 6E 73 77 65 72 20 69 73 ver theanswer is
004E60: 20 6F 75 74 73 69 64 65 20 74 68 65 20 72 61 6E outside the ran
004E70: 67 65 20 2D 31 32 38 20 74 6F 20 2B 31 32 37 61 ge -128 to +127a
004E80: 6E 64 20 20 22 30 22 20 20 77 69 74 68 69 6E 20 nd "0" within
004E90: 20 20 74 68 65 20 20 20 72 61 6E D5 E9 67 65 2E the ran..ge.
004EA0: 20 20 20 49 74 20 20 69 73 65 66 66 65 63 74 69 It iseffecti
004EB0: 76 65 6C 79 20 20 61 20 20 63 61 72 72 79 20 20 vely a carry
004EC0: 69 6E 74 6F 20 20 62 69 74 20 37 20 77 68 69 63 into bit 7 whic
004ED0: 68 77 6F 75 6C 64 20 6D 61 6B 65 20 74 68 65 20 hwould make the
004EE0: 73 69 67 6E 20 62 69 74 20 69 6E 63 6F 72 72 65 sign bit incorre
004EF0: 63 74 2E A3 20 54 68 65 72 65 20 20 69 73 20 20 ct.£ There is
004F00: 6E 6F 20 20 72 65 61 73 6F 6E 20 66 6F 72 20 73 no reason for s
004F10: 74 69 63 6B 69 6E 67 20 74 6F 20 38 62 69 74 73 ticking to 8bits
004F20: 20 20 75 73 69 6E 67 20 74 68 69 73 20 6D 65 74 using this met
004F30: 68 6F 64 2E 20 20 53 6F 20 6C 6F 6E 67 20 61 73 hod. So long as
004F40: 20 74 68 65 6E 75 6D 62 65 72 20 6F 66 20 20 62 thenumber of b
004F50: 69 74 73 20 69 73 20 20 73 75 66 66 69 63 69 65 its is sufficie
004F60: 6E 74 20 20 61 6E 64 20 20 74 68 65 6D 6F 73 74 nt and themost
004F70: 20 20 73 69 67 6E 69 66 69 63 61 6E 74 20 20 62 significant b
004F80: 69 74 20 20 69 73 20 20 74 61 6B 65 6E 20 61 73 it is taken as
004F90: 20 74 68 65 73 69 67 6E 20 20 62 69 74 03 EF 20 thesign bit..
004FA0: 20 61 6E 79 20 73 69 7A 65 20 70 6F 73 69 74 69 any size positi
004FB0: 76 65 20 6F 72 20 6E 65 67 61 74 69 76 65 6E 75 ve or negativenu
004FC0: 6D 62 65 72 20 63 61 6E 20 62 65 20 72 65 70 72 mber can be repr
004FD0: 65 73 65 6E 74 65 64 2E A0 A0 20 50 65 72 66 6F esented... Perfo
004FE0: 72 6D 69 6E 67 20 61 20 73 69 6D 69 6C 61 72 20 rming a similar
004FF0: 63 61 6C 63 75 6C 61 74 69 6F 6E 20 74 6F 20 74 calculation to t
005000: 68 65 61 62 6F 76 65 20 20 77 65 20 63 61 6E 20 heabove we can
005010: 20 73 68 6F 77 20 74 68 61 74 20 61 20 72 65 67 show that a reg
005020: 69 73 74 65 72 20 70 61 69 72 63 61 6E 20 20 72 ister paircan r
005030: 65 70 72 65 73 65 6E 74 20 20 61 20 20 6E 75 6D epresent a num
005040: 62 65 72 20 20 69 6E 20 74 68 65 20 20 72 61 6E ber in the ran
005050: 67 65 2B 33 32 37 36 37 20 74 6F 20 2D 33 32 37 ge+32767 to -327
005060: 36 38 2E A0 A0 20 54 68 65 20 20 53 69 67 6E 20 68... The Sign
005070: 61 6E 64 20 20 6F 76 65 72 66 6C 6F 77 20 20 66 and overflow f
005080: 6C 61 67 73 20 61 72 65 20 61 6C 73 6F 6F 70 65 lags are alsoope
005090: 72 61 74 69 76 65 20 61 66 74 65 72 20 20 41 76 rative after Av
0050A0: 5B 44 43 20 61 6E 64 20 53 42 43 20 69 6E 73 74 [DC and SBC inst
0050B0: 72 75 63 74 69 6F 6E 6F 6E 20 74 68 65 20 48 4C ructionon the HL
0050C0: 20 72 65 67 69 73 74 65 72 2E 20 49 74 20 72 65 register. It re
0050D0: 66 6C 65 63 74 73 20 74 68 65 20 31 35 74 68 62 flects the 15thb
0050E0: 69 74 20 28 6F 72 20 62 69 74 20 37 20 6F 66 20 it (or bit 7 of
0050F0: 48 20 72 65 67 69 73 74 65 72 29 20 2E A3 20 49 H register) .£ I
005100: 74 20 69 73 20 69 6D 70 6F 72 74 61 6E 74 20 20 t is important
005110: 74 6F 20 20 72 65 6D 65 6D 62 65 72 20 20 74 68 to remember th
005120: 61 74 20 74 68 65 5A 65 72 6F 2C 20 20 43 61 72 at theZero, Car
005130: 72 79 2C 20 20 53 69 67 6E 2C 20 61 6E 64 20 20 ry, Sign, and
005140: 6F 76 65 72 66 6C 6F 77 20 66 6C 61 67 73 61 72 overflow flagsar
005150: 65 20 61 6C 77 61 79 73 20 6F 70 65 72 61 74 69 e always operati
005160: 76 65 20 20 61 66 74 65 72 20 20 61 6E 20 20 20 ve after an
005170: 38 20 20 62 69 74 61 72 69 74 68 6D 65 74 69 63 8 bitarithmetic
005180: 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 20 instruction
005190: 6F 72 20 20 61 20 20 31 36 20 20 62 69 74 61 64 or a 16 bitad
0051A0: 64 14 8F 69 74 69 6F 6E 20 20 20 69 6E 76 6F 6C d..ition invol
0051B0: 76 69 6E 67 20 20 20 74 68 65 20 20 43 61 72 72 ving the Carr
0051C0: 79 2E 20 20 59 6F 75 72 69 6E 74 65 72 70 72 65 y. Yourinterpre
0051D0: 74 61 74 69 6F 6E 20 6F 66 20 74 68 65 20 20 72 tation of the r
0051E0: 65 73 75 6C 74 20 64 65 74 65 72 6D 69 6E 65 73 esult determines
0051F0: 69 6E 20 20 20 77 68 69 63 68 20 20 20 66 6C 61 in which fla
005200: 67 28 73 29 20 20 20 79 6F 75 20 20 20 73 68 6F g(s) you sho
005210: 75 6C 64 20 20 20 62 65 69 6E 74 65 72 65 73 74 uld beinterest
005220: 65 64 20 69 6E 2E A3 20 20 20 20 45 58 41 4D 50 ed in.£ EXAMP
005230: 4C 45 53 20 4F 46 20 2B 56 45 20 41 4E 44 20 2D LES OF +VE AND -
005240: 56 45 20 4E 4F 54 41 54 49 4F 4E A0 A0 20 41 6C VE NOTATION.. Al
005250: 74 68 6F 75 67 68 20 20 74 68 65 73 65 20 20 65 though these e
005260: 78 61 6D 70 6C 65 73 20 20 61 70 70 65 61 72 20 xamples appear
005270: 74 6F 20 62 65 61 6C 6C 20 70 6F 73 69 74 69 76 to beall positiv
005280: 65 2C 20 74 68 65 79 20 63 61 6E 20 62 65 20 76 e, they can be v
005290: 69 65 77 65 64 20 65 71 75 61 6C 6C 79 61 73 20 iewed equallyas
0052A0: 20 6E 65 65 25 67 61 74 69 76 65 20 20 77 68 65 nee%gative whe
0052B0: 72 65 20 61 70 70 72 6F 70 72 69 61 74 65 20 61 re appropriate a
0052C0: 6E 64 20 20 74 68 65 53 69 67 6E 20 20 20 61 6E nd theSign an
0052D0: 64 20 20 20 6F 76 65 72 66 6C 6F 77 20 20 20 66 d overflow f
0052E0: 6C 61 67 73 20 20 20 6F 62 73 65 72 76 65 64 6F lags observedo
0052F0: 70 65 72 61 74 69 6E 67 2E A0 A0 20 52 65 6D 65 perating... Reme
005300: 6D 62 65 72 20 20 61 20 20 20 6E 75 6D 62 65 72 mber a number
005310: 20 20 20 61 62 6F 76 65 20 20 20 31 32 38 20 20 above 128
005320: 20 69 73 6E 65 67 61 74 69 76 65 2E 20 53 69 6E isnegative. Sin
005330: 63 65 20 61 6C 6C 20 74 68 65 20 6E 65 67 61 74 ce all the negat
005340: 69 76 65 20 6E 75 6D 62 65 72 73 69 6E 20 74 68 ive numbersin th
005350: 65 20 65 78 61 6D 70 6C 65 73 20 61 72 65 20 73 e examples are s
005360: 6D 61 6C 6C 2C 20 20 74 68 65 79 20 20 63 61 6E mall, they can
005370: 20 62 65 73 65 65 6E 20 71 75 69 63 6B 6C 79 20 beseen quickly
005380: 61 6E 64 20 73 69 6D 70 6C 79 20 62 65 20 63 6F and simply be co
005390: 6E 76 65 72 74 65 64 20 20 62 79 73 75 62 74 72 nverted bysubtr
0053A0: 61 63 74 69 6E 7F 53 67 20 74 68 65 20 6E 75 6D actin.Sg the num
0053B0: 62 65 72 20 66 72 6F 6D 20 32 35 36 2E A0 A0 20 ber from 256...
0053C0: 69 2E 65 2E 20 20 2D 32 20 20 69 73 20 65 71 75 i.e. -2 is equ
0053D0: 69 76 61 6C 65 6E 74 20 74 6F 20 32 35 34 20 65 ivalent to 254 e
0053E0: 74 63 2E A3 20 4C 44 20 41 2C 32 35 34 A0 20 20 tc.£ LD A,254.
0053F0: 4E 45 47 A0 20 20 4E 45 47 A0 20 20 41 44 44 20 NEG. NEG. ADD
005400: 41 2C 32 A0 20 20 49 4E 43 20 41 A0 20 20 4C 44 A,2. INC A. LD
005410: 20 48 4C 2C 32 A0 20 20 4C 44 20 44 45 2C 46 46 HL,2. LD DE,FF
005420: 46 45 48 A0 20 20 41 44 44 20 48 4C 2C 44 45 A0 FEH. ADD HL,DE.
005430: 20 20 43 50 4C A0 20 20 4C 44 20 48 4C 2C 53 54 CPL. LD HL,ST
005440: 4F 52 45 A0 20 20 4C 44 20 28 48 4C 29 2C 37 46 ORE. LD (HL),7F
005450: 48 A0 20 20 49 4E 43 20 28 48 4C 29 A0 20 20 52 H. INC (HL). R
005460: 45 54 A0 20 20 A0 20 53 54 4F 52 45 20 42 49 4E ET. . STORE BIN
005470: 20 30 A0 20 20 A0 20 38 38 12 7C 90 28 24 22 38 0. . 88.|.($"8
005480: 38 90 7C 12 28 48 88 00 3C 18 3C 3C 3C 18 00 3C 8.|.(H..<.<<<..<
005490: FF FF 18 0C 18 30 18 18 3C 7E 18 18 7E 3C 18 00 .....0..<~..~<..
0054A0: 24 66 FF 66 24 00 00 2F 20 00 C9 C9 C9 C9 C9 C9 $f.f$../ .......
0054B0: C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 C9 ................
0054C0: C9 C9 C9 C9 C9 00 FF 00 00 FF 00 00 00 84 FF FF ................
0054D0: 00 00 00 3F 88 80 03 00 00 FF FF 00 00 00 00 00 ...?............
0054E0: 00 FF FF 00 08 79 C8 FD 00 FF FF 00 00 FF FF 00 .....y..........
0054F0: 08 79 C8 FD 00 FF FF 00 00 FF FF 00 08 79 C8 FD .y...........y..
005500: 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 00 02 79 ...............y
005510: C8 FD FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 ................
005520: 04 79 C8 FD 00 FF FF 00 00 FF FF 00 00 FF DF 00 .y..............
005530: 00 00 08 79 C8 FD FF 00 00 FF FF 00 00 FF FF 00 ...y............
005540: 00 FF FF 00 10 79 C8 FD 00 FF FF 00 00 32 00 76 .....y.......2.v
005550: 65 20 22 54 45 58 54 32 22 2C 42 2C 26 35 38 30 e "TEXT2",B,&580
005560: 30 2C 26 35 35 30 30 20 00 00 54 45 52 22 00 61 0,&5500 ..TER".a
005570: 00 64 00 30 30 31 00 00 37 39 2C 26 65 64 2C 26 .d.001..79,&ed,&
005580: 37 38 2C 26 63 62 2C 26 34 37 00 26 31 62 2C 26 78,&cb,&47.&1b,&
005590: 37 61 2C 26 42 33 20 00 66 2C 26 30 00 FF FF 00 7a,&B3 .f,&0....
0055A0: 00 FF FF 00 00 FF FF 00 00 7B B8 FF FF FF FF .........{.....
|
 |  |