Length of PILOT pulse : 2309 Length of SYNC First pulse : 1032 Length of SYNC Second pulse : 1190 Length of ZERO bit pulse : 1162 Length of ONE bit pulse : 2324 Length of PILOT tone : 4096 Used bits in last byte : 8 Data : 21935 bytes Total size : 21954 bytes
Sum DATA : 1 893 941
Duration : 167472 ms Pause After this block : 7113 ms Duration block + Pause : 174585 ms Duration block + Pause : 00 h 02 m 54 s | 000000: FB 06 58 28 58 CC 9F 28 58 2C 58 39 58 40 58 44 ..X(X..(X,X9X@XD
000010: 58 4B 58 58 58 5C 58 63 58 73 58 7A 58 81 58 88 XKXXX\XcXsXzX.X.
000020: 58 8F 58 9F 58 A6 58 B9 58 00 B2 9E 01 00 C0 58 X.X.X.X.X......X
000030: 00 E2 5A 00 97 5D 00 A9 5E 01 00 7D 60 02 17 61 ..Z..]..^..}`..a
000040: 01 00 BE 61 01 00 C5 63 02 87 64 01 00 2B 65 00 ...a...c..d..+e.
000050: 8C 67 00 C5 68 00 FD 6A 01 00 95 6B 01 00 CE 6D .g..h..j...k...m
000060: 00 FB 6F 01 00 F5 70 00 24 72 00 5E 74 00 0E 77 ..o...p.$r.^t..w
000070: 00 7D 78 01 00 69 79 06 8F 7A 01 00 28 7B 00 DA .}x..iy..z..({..
000080: 7D 01 00 C4 7E 06 53 7F 01 00 EA 7F 00 99 81 01 }...~.S.........
000090: 00 A3 83 00 08 86 00 8B 88 00 64 8A 00 6B 8C 01 .£........d..k..
0000A0: 00 07 8D 02 47 8F 01 00 8C 8F 00 4D 92 00 5F 94 ....G......M.._.
0000B0: 00 5C 96 00 31 99 00 F2 99 01 00 BA 9B 00 82 9E .\..1...........
0000C0: 01 20 20 20 20 20 20 20 20 20 20 20 20 20 49 4E . IN
0000D0: 44 45 58 20 52 45 47 49 53 54 45 52 53 A0 A0 20 DEX REGISTERS..
0000E0: 57 65 20 6E 6F 77 20 69 6E 74 72 6F 64 75 63 65 We now introduce
0000F0: 20 74 77 6F 20 6E 65 77 20 72 65 67 69 73 74 65 two new registe
000100: 72 AF 2E 73 2C 20 74 68 65 69 6E 64 65 78 20 72 r..s, theindex r
000110: 65 67 69 73 74 65 72 73 20 20 49 58 20 61 6E 64 egisters IX and
000120: 20 20 49 59 2E 20 20 20 54 68 65 73 65 20 74 77 IY. These tw
000130: 6F 72 65 67 69 73 74 65 72 73 20 20 61 72 65 20 oregisters are
000140: 20 69 64 65 6E 74 69 63 61 6C 20 69 6E 20 20 65 identical in e
000150: 76 65 72 79 20 77 61 79 2E 57 68 61 74 20 20 61 very way.What a
000160: 70 70 6C 69 65 73 20 20 74 6F 20 20 6F 6E 65 20 pplies to one
000170: 20 61 70 70 6C 69 65 73 20 20 74 6F 20 20 74 68 applies to th
000180: 65 6F 74 68 65 72 2E A0 A0 20 54 68 65 79 20 20 eother... They
000190: 63 61 6E 20 20 74 61 6B 65 20 20 74 68 65 20 70 can take the p
0001A0: 6C 61 63 65 20 20 6F 66 20 20 74 68 65 20 20 48 lace of the H
0001B0: 4C 72 65 67 69 73 74 65 72 20 20 69 6E 20 20 6D Lregister in m
0001C0: 6F 73 74 20 20 69 6E 73 74 72 75 63 74 69 6F 6E ost instruction
0001D0: 73 2E 20 20 49 74 20 69 73 73 69 6D 70 6C 65 72 s. It issimpler
0001E0: 20 20 74 6F 20 20 6C 69 73 74 20 74 68 65 20 20 to list the
0001F0: 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 74 68 61 instructions tha
000200: 74 63 61 C9 9C 6E 20 62 65 20 70 65 72 66 6F 72 tca..n be perfor
000210: 6D 65 64 20 62 79 20 74 68 65 20 48 4C 20 72 65 med by the HL re
000220: 67 69 73 74 65 72 20 20 62 75 74 6E 6F 74 20 69 gister butnot i
000230: 6E 64 65 78 20 72 65 67 69 73 74 65 72 73 3A 2D ndex registers:-
000240: A0 A0 41 44 43 20 20 48 4C 2C 64 64 20 20 20 53 ..ADC HL,dd S
000250: 42 43 20 48 4C 2C 64 64 20 20 61 6E 64 20 45 58 BC HL,dd and EX
000260: 20 44 45 2C 48 4C 20 61 72 65 74 68 65 20 6F 6E DE,HL arethe on
000270: 6C 79 20 65 78 63 65 70 74 69 6F 6E 73 2E A0 A0 ly exceptions...
000280: 20 54 68 65 79 20 63 61 6E 6E 6F 74 20 62 65 20 They cannot be
000290: 65 78 63 68 61 6E 67 65 64 20 66 6F 72 20 48 4C exchanged for HL
0002A0: 20 69 66 20 74 68 61 74 72 65 67 69 73 74 65 72 if thatregister
0002B0: 20 20 70 61 69 72 20 69 73 20 20 6F 6E 6C 79 20 pair is only
0002C0: 20 69 6D 70 6C 69 65 64 20 20 69 6E 20 74 68 65 implied in the
0002D0: 69 6E 73 74 72 75 63 74 69 6F 6E 2C 20 69 2E 65 instruction, i.e
0002E0: 2E 20 52 52 44 2E A3 20 54 68 65 20 20 20 67 72 . RRD.£ The gr
0002F0: 65 61 74 20 20 20 61 64 76 61 6E 74 61 67 65 20 eat advantage
000300: 20 6F 66 20 20 6B FC 74 68 65 20 20 69 6E 64 65 of k.the inde
000310: 78 72 65 67 69 73 74 65 72 73 20 20 20 68 6F 77 xregisters how
000320: 65 76 65 72 20 20 20 69 73 20 20 74 68 61 74 20 ever is that
000330: 20 69 6E 64 69 72 65 63 74 61 64 64 72 65 73 73 indirectaddress
000340: 69 6E 67 20 20 69 73 20 20 6E 6F 74 20 20 20 73 ing is not s
000350: 69 6D 70 6C 79 20 20 28 48 4C 29 20 20 20 62 75 imply (HL) bu
000360: 74 28 49 58 2B 64 29 2E 20 20 20 20 54 68 65 20 t(IX+d). The
000370: 20 20 69 6E 64 69 72 65 63 74 20 20 20 61 64 64 indirect add
000380: 72 65 73 73 20 20 20 69 73 63 61 6C 63 75 6C 61 ress iscalcula
000390: 74 65 64 20 61 73 20 74 68 65 20 20 73 75 6D 20 ted as the sum
0003A0: 20 6F 66 20 74 68 65 20 20 63 6F 6E 74 65 6E 74 of the content
0003B0: 73 6F 66 20 74 68 65 20 20 49 58 2F 49 59 20 72 sof the IX/IY r
0003C0: 65 67 69 73 74 65 72 20 61 6E 64 20 74 68 65 20 egister and the
0003D0: 6F 66 66 73 65 74 20 20 64 73 70 65 63 69 66 69 offset dspecifi
0003E0: 65 64 20 20 20 69 6E 20 20 74 68 65 20 20 69 6E ed in the in
0003F0: 73 74 72 75 63 74 69 6F 6E 2E A0 A0 20 49 74 20 struction... It
000400: 69 73 20 65 61 73 69 45 84 65 72 20 74 6F 20 75 is easiE.er to u
000410: 73 65 20 74 68 65 20 69 6E 64 65 78 20 72 65 67 se the index reg
000420: 69 73 74 65 72 73 74 6F 20 20 69 6E 74 65 72 72 istersto interr
000430: 6F 67 61 74 65 20 20 74 61 62 6C 65 73 20 74 68 ogate tables th
000440: 61 6E 20 20 75 73 69 6E 67 20 20 48 4C 2E 54 68 an using HL.Th
000450: 65 20 6F 66 66 73 65 74 20 20 63 61 6E 20 64 65 e offset can de
000460: 66 69 6E 65 20 74 68 65 20 63 6F 6C 75 6D 6E 20 fine the column
000470: 69 6E 20 74 68 65 74 61 62 6C 65 20 20 61 6E 64 in thetable and
000480: 20 20 49 58 2F 49 59 20 20 72 65 67 69 73 74 65 IX/IY registe
000490: 72 20 70 6F 69 6E 74 20 74 6F 20 74 68 65 62 65 r point to thebe
0004A0: 67 69 6E 6E 69 6E 67 20 20 6F 66 20 20 74 68 65 ginning of the
0004B0: 20 20 6C 69 6E 65 2E 20 20 41 20 20 73 75 62 72 line. A subr
0004C0: 6F 75 74 69 6E 65 63 6F 75 6C 64 20 20 6D 61 6E outinecould man
0004D0: 69 70 75 6C 61 74 65 20 20 74 68 65 20 20 64 61 ipulate the da
0004E0: 74 61 20 20 77 69 74 68 69 6E 20 74 68 65 6C 69 ta within theli
0004F0: 6E 65 2C 20 20 75 73 69 6E 67 20 20 61 20 20 63 ne, using a c
000500: 6F 6E 73 74 61 6E 74 20 49 1A 94 58 2F 49 59 20 onstant I..X/IY
000510: 70 6F 69 6E 74 65 72 2E 53 75 62 73 65 71 75 65 pointer.Subseque
000520: 6E 74 20 6C 69 6E 65 73 20 63 61 6E 20 74 68 65 nt lines can the
000530: 6E 20 62 65 20 6D 61 6E 69 70 75 6C 61 74 65 64 n be manipulated
000540: 73 69 6D 70 6C 79 20 20 62 79 20 75 73 69 6E 67 simply by using
000550: 20 74 68 65 20 73 61 6D 65 20 73 75 62 72 6F 75 the same subrou
000560: 74 69 6E 65 20 61 6E 64 63 68 61 6E 67 69 6E 67 tine andchanging
000570: 20 74 68 65 20 20 49 58 2F 49 59 20 72 65 67 69 the IX/IY regi
000580: 73 74 65 72 20 74 6F 20 70 6F 69 6E 74 20 74 6F ster to point to
000590: 61 20 64 69 66 66 65 72 65 6E 74 20 6C 69 6E 65 a different line
0005A0: 2E A3 20 54 68 65 20 20 6F 6E 6C 79 20 69 6E 73 .£ The only ins
0005B0: 74 72 75 63 74 69 6F 6E 20 20 66 6F 72 20 20 77 truction for w
0005C0: 68 69 63 68 20 20 28 48 4C 29 63 61 6E 6E 6F 74 hich (HL)cannot
0005D0: 20 20 62 65 20 20 73 75 62 73 74 69 74 75 74 65 be substitute
0005E0: 64 20 20 62 79 20 20 28 49 58 2B 64 29 20 20 20 d by (IX+d)
0005F0: 6F 72 28 49 59 2B 64 29 20 69 73 20 4A 50 20 28 or(IY+d) is JP (
000600: 48 4C 29 2E 20 20 4A 50 20 28 49 46 28 58 29 20 HL). JP (IF(X)
000610: 61 6E 64 20 20 4A 50 20 28 49 59 29 61 72 65 20 and JP (IY)are
000620: 61 76 61 69 6C 61 62 6C 65 20 68 6F 77 65 76 65 available howeve
000630: 72 2E A0 A0 20 54 68 65 20 20 73 75 6D 6D 61 72 r... The summar
000640: 79 20 20 20 6C 69 73 74 73 20 20 20 61 6C 6C 20 y lists all
000650: 69 6E 73 74 72 75 63 74 69 6F 6E 73 61 76 61 69 instructionsavai
000660: 6C 61 62 6C 65 20 20 75 73 69 6E 67 20 20 74 68 lable using th
000670: 65 20 20 49 58 20 72 65 67 69 73 74 65 72 2E 20 e IX register.
000680: 54 68 69 73 6C 69 73 74 20 20 20 63 61 6E 20 20 Thislist can
000690: 20 62 65 20 20 72 65 70 65 61 74 65 64 20 20 66 be repeated f
0006A0: 6F 72 20 20 74 68 65 20 20 20 49 59 72 65 67 69 or the IYregi
0006B0: 73 74 65 72 2E A3 20 53 75 6D 6D 61 72 79 20 2D ster.£ Summary -
0006C0: 20 69 6E 64 65 78 20 72 65 67 69 73 74 65 72 73 index registers
0006D0: A0 A0 4C 44 20 72 2C 28 49 58 2B 64 29 20 20 20 ..LD r,(IX+d)
0006E0: 4C 44 20 49 58 2C 6E 6E 20 20 20 20 20 4C 44 20 LD IX,nn LD
0006F0: 53 50 2C 49 58 A0 4C 44 20 28 49 58 2B 64 29 2C SP,IX.LD (IX+d),
000700: 72 20 20 20 4C 44 20 49 58 2C 28 6E 6E 19 3A 29 r LD IX,(nn.:)
000710: A0 4C 44 20 28 49 58 2B 64 29 2C 6E 20 20 20 4C .LD (IX+d),n L
000720: 44 20 28 6E 6E 29 2C 49 58 20 20 20 45 58 20 28 D (nn),IX EX (
000730: 53 50 29 2C 49 58 A0 A0 41 44 44 20 41 2C 28 49 SP),IX..ADD A,(I
000740: 58 2B 64 29 20 20 49 4E 43 20 28 49 58 2B 64 29 X+d) INC (IX+d)
000750: 20 20 20 41 4E 44 20 28 49 58 2B 64 29 A0 41 44 AND (IX+d).AD
000760: 43 20 41 2C 28 49 58 2B 64 29 20 20 44 45 43 20 C A,(IX+d) DEC
000770: 28 49 58 2B 64 29 20 20 20 4F 52 20 28 49 58 2B (IX+d) OR (IX+
000780: 64 29 A0 53 55 42 20 28 49 58 2B 64 29 20 20 20 d).SUB (IX+d)
000790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 58 4F XO
0007A0: 52 20 28 49 58 2B 64 29 A0 53 42 43 20 41 2C 28 R (IX+d).SBC A,(
0007B0: 49 58 2B 64 29 20 20 43 50 20 28 49 58 2B 64 29 IX+d) CP (IX+d)
0007C0: A0 A0 41 44 44 20 49 58 2C 64 64 20 20 20 20 20 ..ADD IX,dd
0007D0: 49 4E 43 20 49 58 20 20 20 20 20 20 20 44 45 43 INC IX DEC
0007E0: 20 49 58 A0 A0 53 4C 41 20 28 49 58 2B 64 29 20 IX..SLA (IX+d)
0007F0: 20 20 20 53 52 41 20 28 49 58 2B 64 29 20 20 20 SRA (IX+d)
000800: 53 52 4C 20 28 49 58 2B 64 29 A0 52 4C 43 20 4E SRL (IX+d).RLC N
000810: D4 28 49 58 2B 64 29 20 20 20 20 52 4C 20 28 49 .(IX+d) RL (I
000820: 58 2B 64 29 20 20 20 20 52 52 43 20 28 49 58 2B X+d) RRC (IX+
000830: 64 29 A0 52 52 20 20 28 49 58 2B 64 29 A0 A0 53 d).RR (IX+d)..S
000840: 45 54 20 4E 20 28 49 58 2B 64 29 20 20 52 45 53 ET N (IX+d) RES
000850: 20 4E 2C 28 49 58 2B 64 29 20 42 49 54 20 4E 2C N,(IX+d) BIT N,
000860: 28 49 58 2B 64 29 A0 A0 4A 50 20 28 49 58 29 A0 (IX+d)..JP (IX).
000870: A0 57 69 74 68 20 61 6E 20 69 64 65 6E 74 69 63 .With an identic
000880: 61 6C 20 73 65 74 20 66 6F 72 20 49 59 A3 20 20 al set for IY£
000890: 20 20 20 45 58 41 4D 50 4C 45 20 4F 46 20 55 53 EXAMPLE OF US
0008A0: 45 20 4F 46 20 49 4E 44 45 58 20 52 45 47 49 53 E OF INDEX REGIS
0008B0: 54 45 52 A0 A0 20 54 68 65 20 65 78 61 6D 70 6C TER.. The exampl
0008C0: 65 20 20 75 73 65 73 20 20 74 68 65 20 49 58 20 e uses the IX
0008D0: 72 65 67 69 73 74 65 72 20 61 73 20 61 70 6F 69 register as apoi
0008E0: 6E 74 65 72 20 74 6F 20 61 20 74 61 62 6C 65 20 nter to a table
0008F0: 6F 66 20 74 77 6F 20 20 62 79 74 65 20 6E 75 6D of two byte num
000900: 62 65 72 73 2E 45 61 63 68 20 6E 75 6D 62 65 72 bers.Each number
000910: 20 5E 08 69 73 20 74 6F 20 62 65 20 64 69 76 69 ^.is to be divi
000920: 64 65 64 20 62 79 20 32 2E A3 20 4C 44 20 42 2C ded by 2.£ LD B,
000930: 36 A0 20 20 4C 44 20 49 58 2C 49 54 45 4D 31 A0 6. LD IX,ITEM1.
000940: 20 4C 4F 4F 50 20 20 53 52 4C 20 28 49 58 2B 31 LOOP SRL (IX+1
000950: 29 A0 20 20 52 52 20 28 49 58 2B 30 29 A0 20 20 ). RR (IX+0).
000960: 49 4E 43 20 49 58 A0 20 20 49 4E 43 20 49 58 A0 INC IX. INC IX.
000970: 20 20 44 4A 4E 5A 20 4C 4F 4F 50 A0 20 20 52 45 DJNZ LOOP. RE
000980: 54 A0 20 20 A0 20 49 54 45 4D 31 20 44 45 46 57 T. . ITEM1 DEFW
000990: 20 35 36 30 A0 20 20 44 45 46 57 20 31 36 A0 20 560. DEFW 16.
0009A0: 20 44 45 46 57 20 39 36 33 34 A0 20 20 44 45 46 DEFW 9634. DEF
0009B0: 57 20 31 38 37 A0 20 20 44 45 46 57 20 38 38 34 W 187. DEFW 884
0009C0: A0 20 20 44 45 46 57 20 35 39 33 37 A0 20 20 A0 . DEFW 5937. .
0009D0: 20 20 20 20 54 48 45 20 41 4C 54 45 52 4E 41 54 THE ALTERNAT
0009E0: 49 56 45 20 53 45 54 20 4F 46 20 52 45 47 49 53 IVE SET OF REGIS
0009F0: 54 45 52 53 A0 A0 20 54 68 65 20 20 20 5A 38 30 TERS.. The Z80
000A00: 20 20 20 68 61 73 20 20 20 77 69 74 68 69 6E 20 has within
000A10: 20 74 68 8F D8 65 20 20 63 68 69 70 20 20 61 6E th..e chip an
000A20: 61 6C 74 65 72 6E 61 74 69 76 65 20 73 65 74 20 alternative set
000A30: 6F 66 20 74 68 65 20 70 72 69 6D 61 72 79 20 72 of the primary r
000A40: 65 67 69 73 74 65 72 73 41 46 2C 20 42 43 2C 20 egistersAF, BC,
000A50: 44 45 20 20 61 6E 64 20 48 4C 2E 20 20 54 68 65 DE and HL. The
000A60: 73 65 20 20 61 72 65 20 6E 6F 72 6D 61 6C 6C 79 se are normally
000A70: 64 65 73 69 67 6E 61 74 65 64 20 61 73 20 20 41 designated as A
000A80: 46 27 2C 20 20 42 43 27 2C 20 20 44 45 27 20 61 F', BC', DE' a
000A90: 6E 64 20 20 48 4C 27 2E 41 6C 74 68 6F 75 67 68 nd HL'.Although
000AA0: 20 20 6E 6F 20 6F 70 65 72 61 74 69 6F 6E 73 20 no operations
000AB0: 63 61 6E 20 62 65 20 70 65 72 66 6F 72 6D 65 64 can be performed
000AC0: 6F 6E 20 74 68 65 73 65 20 72 65 67 69 73 74 65 on these registe
000AD0: 72 73 2C 20 20 74 68 65 79 20 63 61 6E 20 62 65 rs, they can be
000AE0: 20 75 73 65 64 20 61 73 61 20 66 61 73 74 20 6D used asa fast m
000AF0: 65 74 68 6F 64 20 6F 66 20 73 74 6F 72 61 67 65 ethod of storage
000B00: 2E A0 A0 A0 20 54 68 65 72 65 20 20 20 61 72 65 .... There are
000B10: 20 20 20 6F 6E 2D EE 6C 79 20 20 20 74 77 6F 20 on-.ly two
000B20: 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 69 6E instructionsin
000B30: 76 6F 6C 76 69 6E 67 20 74 68 65 20 61 6C 74 65 volving the alte
000B40: 72 6E 61 74 69 76 65 20 72 65 67 69 73 74 65 72 rnative register
000B50: 73 2E A0 A0 20 45 58 20 41 46 2C 41 46 27 20 20 s... EX AF,AF'
000B60: 65 78 63 68 61 6E 67 65 73 20 74 68 65 20 63 6F exchanges the co
000B70: 6E 74 65 6E 74 73 20 6F 66 20 41 46 20 20 20 20 ntents of AF
000B80: 20 20 20 20 20 20 20 20 61 6E 64 20 41 46 27 A0 and AF'.
000B90: A0 20 45 58 58 20 20 20 20 20 20 20 20 65 78 63 . EXX exc
000BA0: 68 61 6E 67 65 73 20 42 43 2C 44 45 20 61 6E 64 hanges BC,DE and
000BB0: 20 48 4C 2C 20 77 69 74 68 20 20 20 20 20 20 20 HL, with
000BC0: 20 20 20 20 20 42 43 27 2C 20 44 45 27 20 61 6E BC', DE' an
000BD0: 64 20 48 4C 27 20 72 65 73 70 2E A3 20 20 20 20 d HL' resp.£
000BE0: 45 58 41 4D 50 4C 45 20 55 53 49 4E 47 20 54 48 EXAMPLE USING TH
000BF0: 45 20 41 4C 54 45 52 4E 41 54 49 56 45 20 53 45 E ALTERNATIVE SE
000C00: 54 A0 A0 20 54 68 65 20 20 65 78 61 6D 70 6C 65 T.. The example
000C10: 20 6C 6F 61 64 73 20 07 C1 61 6C 6C 20 72 65 67 loads ..all reg
000C20: 69 73 74 65 72 73 2C 20 20 74 68 65 6E 73 77 6F isters, thenswo
000C30: 70 73 20 20 74 68 65 6D 20 20 77 69 74 68 20 20 ps them with
000C40: 74 68 65 20 61 6C 74 65 72 6E 61 74 69 76 65 20 the alternative
000C50: 20 73 65 74 2E 48 61 76 69 6E 67 20 72 65 2D 6C set.Having re-l
000C60: 6F 61 64 65 64 20 74 68 65 20 72 65 67 69 73 74 oaded the regist
000C70: 65 72 73 20 61 20 66 75 72 74 68 65 72 73 77 6F ers a furtherswo
000C80: 70 20 72 65 74 75 72 6E 73 20 74 68 65 20 6F 72 p returns the or
000C90: 69 67 69 6E 61 6C 20 6E 75 6D 62 65 72 73 2E A3 iginal numbers.£
000CA0: 20 4C 44 20 41 2C 33 30 A0 20 20 4C 44 20 42 43 LD A,30. LD BC
000CB0: 2C 31 30 32 34 A0 20 20 4C 44 20 44 45 2C 38 30 ,1024. LD DE,80
000CC0: 30 30 A0 20 20 4C 44 20 48 4C 2C 36 34 30 30 30 00. LD HL,64000
000CD0: A0 20 20 45 58 58 A0 20 20 45 58 20 41 46 2C 41 . EXX. EX AF,A
000CE0: 46 27 A0 20 20 4C 44 20 41 2C 36 30 A0 20 20 4C F'. LD A,60. L
000CF0: 44 20 42 43 2C 31 32 38 30 A0 20 20 4C 44 20 44 D BC,1280. LD D
000D00: 45 2C 32 30 30 A0 20 20 4C 44 20 48 4C 2C 33 32 E,200. LD HL,32
000D10: 31 30 30 A0 20 4C 4F 4F 50 40 CC 20 20 45 58 58 100. LOOP@. EXX
000D20: A0 20 20 45 58 20 41 46 2C 41 46 27 A0 20 20 44 . EX AF,AF'. D
000D30: 4A 4E 5A 20 4C 4F 4F 50 A0 20 20 52 45 54 A0 20 JNZ LOOP. RET.
000D40: 20 A0 20 20 A0 20 20 20 20 20 20 20 49 4E 50 55 . . INPU
000D50: 54 20 41 4E 44 20 4F 55 54 50 55 54 20 49 4E 53 T AND OUTPUT INS
000D60: 54 52 55 43 54 49 4F 4E 53 A0 A0 20 53 6F 20 66 TRUCTIONS.. So f
000D70: 61 72 20 77 65 20 68 61 76 65 20 20 6D 61 6E 69 ar we have mani
000D80: 70 75 6C 61 74 65 64 20 64 61 74 61 20 77 69 74 pulated data wit
000D90: 68 69 6E 74 68 65 20 70 72 6F 63 65 73 73 6F 72 hinthe processor
000DA0: 20 61 6E 64 20 69 74 73 20 61 73 73 6F 63 69 61 and its associa
000DB0: 74 65 64 20 6D 65 6D 6F 72 79 2E 20 49 66 20 61 ted memory. If a
000DC0: 20 20 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 69 6F memory locatio
000DD0: 6E 20 69 73 20 75 73 65 64 20 20 64 69 72 65 63 n is used direc
000DE0: 74 6C 79 62 79 20 20 61 20 20 65 78 74 65 72 6E tlyby a extern
000DF0: 61 6C 20 20 64 65 76 69 63 65 2C 20 20 74 68 65 al device, the
000E00: 20 20 64 65 76 69 63 65 20 69 73 74 65 72 6D 65 device isterme
000E10: 64 20 20 6D 65 6D 6F 72 79 20 61 2C 19 64 64 72 d memory a,.ddr
000E20: 65 73 73 20 6D 61 70 70 65 64 2E 20 20 54 68 65 ess mapped. The
000E30: 20 20 5A 38 30 61 6C 73 6F 20 73 75 70 70 6F 72 Z80also suppor
000E40: 74 73 20 20 32 35 36 20 20 6F 75 74 70 75 74 20 ts 256 output
000E50: 61 6E 64 20 32 35 36 20 69 6E 70 75 74 70 6F 72 and 256 inputpor
000E60: 74 73 2C 20 6F 72 20 20 20 38 20 20 62 69 74 20 ts, or 8 bit
000E70: 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 20 73 6F 75 information sou
000E80: 72 63 65 73 2C 65 78 74 65 72 6E 61 6C 20 74 6F rces,external to
000E90: 20 6D 65 6D 6F 72 79 2E A0 A0 20 57 65 20 20 63 memory... We c
000EA0: 61 6E 20 20 69 6E 70 75 74 20 20 64 61 74 61 20 an input data
000EB0: 20 64 69 72 65 63 74 6C 79 20 69 6E 74 6F 20 74 directly into t
000EC0: 68 65 61 63 63 75 6D 75 6C 61 74 6F 72 20 77 69 heaccumulator wi
000ED0: 74 68 20 49 4E 20 41 2C 28 6E 29 20 77 68 65 72 th IN A,(n) wher
000EE0: 65 20 6E 20 69 73 20 74 68 65 6E 75 6D 62 65 72 e n is thenumber
000EF0: 20 20 6F 66 20 20 74 68 65 20 69 6E 70 75 74 20 of the input
000F00: 70 6F 72 74 20 62 65 74 77 65 65 6E 20 30 20 61 port between 0 a
000F10: 6E 64 32 35 35 2E 20 20 20 53 69 6D 69 D1 D9 6C nd255. Simi..l
000F20: 61 72 6C 79 20 77 65 20 63 61 6E 20 6F 75 74 70 arly we can outp
000F30: 75 74 20 64 61 74 61 20 66 72 6F 6D 74 68 65 20 ut data fromthe
000F40: 41 63 63 75 6D 75 6C 61 74 6F 72 20 20 74 6F 20 Accumulator to
000F50: 20 70 6F 72 74 20 20 6E 20 20 75 73 69 6E 67 20 port n using
000F60: 20 74 68 65 69 6E 73 74 72 75 63 74 69 6F 6E 20 theinstruction
000F70: 20 20 4F 55 54 20 28 6E 29 2C 41 2E 20 20 4E 6F OUT (n),A. No
000F80: 20 20 66 6C 61 67 73 20 20 61 72 65 61 66 66 65 flags areaffe
000F90: 63 74 65 64 20 62 79 20 74 68 65 73 65 20 69 6E cted by these in
000FA0: 73 74 72 75 63 74 69 6F 6E 73 A3 20 57 65 20 63 structions£ We c
000FB0: 61 6E 20 61 6C 73 6F 20 20 69 6E 70 75 74 20 20 an also input
000FC0: 64 61 74 61 20 74 6F 20 61 6E 79 20 20 38 20 20 data to any 8
000FD0: 62 69 74 72 65 67 69 73 74 65 72 20 20 75 73 69 bitregister usi
000FE0: 6E 67 20 20 74 68 65 20 20 42 20 61 6E 64 20 43 ng the B and C
000FF0: 20 72 65 67 69 73 74 65 72 73 2E 54 68 65 20 69 registers.The i
001000: 6E 73 74 72 75 63 74 69 6F 6E 20 20 49 4E 20 72 nstruction IN r
001010: 2C 28 43 29 2C 20 74 72 61 6E 73 6D 69 74 73 70 ,(C), transmitsp
001020: BE 20 74 68 65 63 6F 6E 74 65 6E 74 73 20 20 6F . thecontents o
001030: 66 20 20 74 68 65 20 42 20 72 65 67 69 73 74 65 f the B registe
001040: 72 20 74 6F 20 74 68 65 20 70 6F 72 74 77 68 6F r to the portwho
001050: 73 65 20 20 6E 75 6D 62 65 72 20 20 69 73 20 69 se number is i
001060: 6E 20 74 68 65 20 43 20 72 65 67 69 73 74 65 72 n the C register
001070: 2E 20 54 68 65 70 6F 72 74 20 20 6D 61 79 20 20 . Theport may
001080: 20 6F 72 20 20 6D 61 79 20 20 6E 6F 74 20 20 61 or may not a
001090: 63 74 20 20 75 70 6F 6E 20 74 68 69 73 69 6E 66 ct upon thisinf
0010A0: 6F 72 6D 61 74 69 6F 6E 2E 20 20 54 68 65 20 72 ormation. The r
0010B0: 65 74 75 72 6E 65 64 20 64 61 74 61 20 66 72 6F eturned data fro
0010C0: 6D 20 74 68 65 70 6F 72 74 20 69 73 20 20 6C 6F m theport is lo
0010D0: 61 64 65 64 20 69 6E 74 6F 20 72 65 67 69 73 74 aded into regist
0010E0: 65 72 20 72 2E A3 20 49 4E 20 72 2C 20 28 43 29 er r.£ IN r, (C)
0010F0: 20 20 61 66 66 65 63 74 20 74 68 65 20 20 5A 65 affect the Ze
001100: 72 6F 2C 20 20 53 69 67 6E 2C 20 61 6E 64 50 61 ro, Sign, andPa
001110: 72 69 74 79 20 66 6C 61 67 73 2E 20 20 54 68 65 rity flags. The
001120: 20 45 65 69 6E 73 74 72 75 63 74 69 6F 6E 20 49 Eeinstruction I
001130: 4E 20 46 2C 20 28 43 29 69 73 20 74 68 65 20 6F N F, (C)is the o
001140: 6E 6C 79 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 nly instruction
001150: 74 68 61 74 20 20 64 65 61 6C 73 20 77 69 74 68 that deals with
001160: 74 68 65 20 46 6C 61 67 20 72 65 67 69 73 74 65 the Flag registe
001170: 72 20 73 65 70 61 72 61 74 65 6C 79 2E 20 20 4F r separately. O
001180: 6E 6C 79 20 20 74 68 65 66 6C 61 67 73 20 61 72 nly theflags ar
001190: 65 20 61 66 66 65 63 74 65 64 20 62 79 20 20 74 e affected by t
0011A0: 68 69 73 20 20 69 6E 73 74 72 75 63 74 69 6F 6E his instruction
0011B0: 61 6E 64 20 20 6E 6F 20 20 64 61 74 61 20 20 69 and no data i
0011C0: 73 20 20 74 72 61 6E 73 66 65 72 72 65 64 20 20 s transferred
0011D0: 69 6E 74 6F 20 74 68 65 70 72 6F 63 65 73 73 6F into theprocesso
0011E0: 72 2E A0 A0 20 4F 55 54 20 28 43 29 2C 20 72 20 r... OUT (C), r
0011F0: 69 73 20 61 20 20 73 69 6D 69 6C 61 72 20 69 6E is a similar in
001200: 73 74 72 75 63 74 69 6F 6E 20 74 6F 49 4E 20 72 struction toIN r
001210: 2C 28 43 29 2C 20 20 62 75 74 20 20 20 74 68 65 ,(C), but the
001220: 20 20 20 2E C9 63 6F 6E 74 65 6E 74 73 20 20 6F ..contents o
001230: 66 20 20 74 68 65 72 65 67 69 73 74 65 72 20 72 f theregister r
001240: 20 69 73 20 6C 6F 61 64 65 64 20 69 6E 74 6F 20 is loaded into
001250: 70 6F 72 74 20 28 43 29 2E A0 A0 20 54 68 65 20 port (C)... The
001260: 41 4D 53 54 52 41 44 20 20 43 50 43 20 34 36 34 AMSTRAD CPC 464
001270: 20 20 75 73 65 73 20 74 68 65 20 49 4E 20 72 2C uses the IN r,
001280: 28 43 29 61 6E 64 20 4F 55 54 20 28 43 29 2C 72 (C)and OUT (C),r
001290: 20 66 6F 72 6D 73 20 6F 66 20 49 2F 4F 20 69 6E forms of I/O in
0012A0: 73 74 72 75 63 74 69 6F 6E 73 2C 62 65 63 61 75 structions,becau
0012B0: 73 65 20 20 6F 66 20 20 74 68 65 20 20 63 6F 6E se of the con
0012C0: 66 69 67 75 72 61 74 69 6F 6E 20 20 6F 66 20 20 figuration of
0012D0: 74 68 65 69 6E 74 65 72 66 61 63 65 73 20 20 49 theinterfaces I
0012E0: 2F 4F 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 /O instructions
0012F0: 6F 66 20 74 68 65 20 66 6F 72 6D 49 4E 20 41 2C of the formIN A,
001300: 28 6E 29 20 6F 72 20 20 4F 55 54 20 28 6E 29 2C (n) or OUT (n),
001310: 41 20 63 61 6E 6E 6F 74 20 62 65 20 75 73 65 64 A cannot be used
001320: 2E A3 20 53 75 21 61 6D 6D 61 72 79 20 2D 20 73 .£ Su!ammary - s
001330: 69 6D 70 6C 65 20 69 6E 70 75 74 2F 6F 75 74 70 imple input/outp
001340: 75 74 A0 A0 49 4E 20 41 2C 28 6E 29 20 20 20 20 ut..IN A,(n)
001350: 77 68 65 72 65 20 6E 20 69 73 20 74 68 65 20 6E where n is the n
001360: 75 6D 62 65 72 20 6F 66 20 74 68 65 20 20 20 20 umber of the
001370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001380: 20 20 69 6E 70 75 74 20 70 6F 72 74 20 28 30 2D input port (0-
001390: 32 35 35 29 A0 49 4E 20 72 2C 28 43 29 A0 49 4E 255).IN r,(C).IN
0013A0: 20 46 2C 28 6E 29 A0 A0 4F 55 54 20 28 6E 29 2C F,(n)..OUT (n),
0013B0: 41 A0 4F 55 54 20 28 43 29 2C 72 A3 20 20 45 58 A.OUT (C),r£ EX
0013C0: 41 4D 50 4C 45 53 20 4F 46 20 49 4E 50 55 54 2F AMPLES OF INPUT/
0013D0: 4F 55 54 50 55 54 20 49 4E 53 54 52 55 43 54 49 OUTPUT INSTRUCTI
0013E0: 4F 4E 53 A0 A0 20 4F 6E 20 74 68 65 20 41 4D 53 ONS.. On the AMS
0013F0: 54 52 41 44 20 61 6C 6C 20 75 73 65 66 75 6C 20 TRAD all useful
001400: 49 2F 4F 20 61 64 64 72 65 73 73 65 73 61 72 65 I/O addressesare
001410: 20 20 20 20 61 6C 6C 6F 63 61 74 65 64 20 20 20 allocated
001420: 20 74 6F 20 20 20 64 BE 01 72 69 76 65 20 20 20 to d..rive
001430: 76 61 72 69 6F 75 73 70 65 72 69 70 68 65 72 61 variousperiphera
001440: 6C 20 64 65 76 69 63 65 73 2C 20 73 75 63 68 20 l devices, such
001450: 61 73 20 74 68 65 20 50 61 72 61 6C 6C 65 6C 49 as the ParallelI
001460: 6E 70 75 74 2F 4F 75 74 70 75 74 20 20 20 20 63 nput/Output c
001470: 68 69 70 20 20 20 28 20 50 49 4F 20 29 20 20 6F hip ( PIO ) o
001480: 72 20 20 20 43 52 54 43 6F 6E 74 72 6F 6C 6C 65 r CRTControlle
001490: 72 20 20 63 68 69 70 20 20 65 74 63 2E 20 20 54 r chip etc. T
0014A0: 68 65 20 20 64 72 69 76 69 6E 67 20 20 6F 66 74 he driving oft
0014B0: 68 65 73 65 20 63 68 69 70 73 20 69 73 20 6F 75 hese chips is ou
0014C0: 74 73 69 64 65 20 74 68 65 20 73 63 6F 70 65 20 tside the scope
0014D0: 6F 66 20 74 68 69 73 54 55 54 4F 52 2E 20 20 20 of thisTUTOR.
0014E0: 53 69 6E 63 65 20 65 72 72 6F 6E 65 6F 75 73 20 Since erroneous
0014F0: 6F 75 74 70 75 74 20 74 6F 20 74 68 65 73 65 64 output to thesed
001500: 65 76 69 63 65 73 20 63 61 6E 20 72 65 73 75 6C evices can resul
001510: 74 20 69 6E 20 73 79 73 74 65 6D 20 63 72 61 73 t in system cras
001520: 68 2C 20 74 68 69 73 53 49 B9 13 4D 55 4C 41 54 h, thisSI..MULAT
001530: 4F 52 20 20 20 63 61 6E 6E 6F 74 20 20 73 61 66 OR cannot saf
001540: 65 6C 79 20 73 75 70 70 6F 72 74 20 6D 65 61 6E ely support mean
001550: 2D 69 6E 67 66 75 6C 20 49 2F 4F 20 20 69 6E 73 -ingful I/O ins
001560: 74 72 75 63 74 69 6F 6E 73 2E 20 20 20 49 66 20 tructions. If
001570: 74 68 65 20 70 75 70 69 6C 77 69 73 68 65 73 20 the pupilwishes
001580: 20 74 6F 20 20 70 72 6F 63 65 65 64 20 20 20 66 to proceed f
001590: 75 72 74 68 65 72 20 20 69 6E 20 20 20 74 68 69 urther in thi
0015A0: 73 64 69 72 65 63 74 69 6F 6E 2C 20 69 74 20 69 sdirection, it i
0015B0: 73 20 72 65 63 6F 6D 6D 65 6E 64 65 64 20 74 6F s recommended to
0015C0: 20 72 65 61 64 20 74 68 65 43 50 43 34 36 34 20 read theCPC464
0015D0: 20 46 49 52 4D 57 41 52 45 20 20 20 4D 61 6E 75 FIRMWARE Manu
0015E0: 61 6C 20 20 70 75 62 6C 69 73 68 65 64 20 20 62 al published b
0015F0: 79 41 4D 53 4F 46 54 2E A3 20 20 20 20 20 20 20 yAMSOFT.£
001600: 20 20 20 20 42 4C 4F 43 4B 20 49 4E 53 54 52 55 BLOCK INSTRU
001610: 43 54 49 4F 4E 53 A0 A0 20 54 68 65 72 65 20 61 CTIONS.. There a
001620: 72 65 20 66 6F 75 72 20 67 72 6F 51 8E 75 70 73 re four groQ.ups
001630: 20 6F 66 20 20 66 6F 75 72 20 74 79 70 65 73 20 of four types
001640: 6F 66 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 ofinstructions
001650: 74 68 61 74 20 70 65 72 66 6F 72 6D 20 6F 70 65 that perform ope
001660: 72 61 74 69 6F 6E 73 20 6F 6E 62 6C 6F 63 6B 73 rations onblocks
001670: 20 20 20 20 6F 66 20 20 20 20 6D 65 6D 6F 72 79 of memory
001680: 2E 20 20 20 20 53 69 6E 63 65 20 20 20 74 68 65 . Since the
001690: 73 65 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 68 seinstructions h
0016A0: 61 76 65 20 73 69 6D 69 6C 61 72 69 74 69 65 73 ave similarities
0016B0: 2C 20 74 68 65 79 20 61 72 65 69 6E 74 72 6F 64 , they areintrod
0016C0: 75 63 65 64 20 74 6F 67 65 74 68 65 72 2E A0 A0 uced together...
0016D0: 20 41 6C 6C 20 62 6C 6F 63 6B 20 69 6E 73 74 72 All block instr
0016E0: 75 63 74 69 6F 6E 73 20 75 73 65 20 20 72 65 67 uctions use reg
0016F0: 69 73 74 65 72 28 73 29 61 73 20 61 20 70 6F 69 ister(s)as a poi
001700: 6E 74 65 72 28 73 29 20 20 74 6F 20 20 73 63 61 nter(s) to sca
001710: 6E 20 74 68 6F 75 67 68 20 61 20 62 6C 6F 63 6B n though a block
001720: 6F 66 20 6D 65 6D 6F 72 79 20 61 6E 64 57 1E 20 of memory andW.
001730: 61 6E 6F 74 68 65 72 20 61 73 20 61 20 63 6F 75 another as a cou
001740: 6E 74 65 72 2E A0 A0 20 41 6C 6C 20 20 62 6C 6F nter... All blo
001750: 63 6B 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 ck instructions
001760: 20 20 68 61 76 65 20 20 73 69 6D 69 6C 61 72 6D have similarm
001770: 6E 65 6D 6F 6E 69 63 73 2E 20 20 20 20 49 20 20 nemonics. I
001780: 20 69 6E 64 69 63 61 74 65 73 20 20 20 74 68 61 indicates tha
001790: 74 20 20 20 74 68 65 70 6F 69 6E 74 65 72 28 73 t thepointer(s
0017A0: 29 20 20 61 72 65 20 20 49 6E 63 72 65 6D 65 6E ) are Incremen
0017B0: 74 65 64 2C 20 20 20 44 20 20 20 74 68 61 74 74 ted, D thatt
0017C0: 68 65 20 20 70 6F 69 6E 74 65 72 28 73 29 20 61 he pointer(s) a
0017D0: 72 65 20 20 44 65 63 72 65 6D 65 6E 74 65 64 2C re Decremented,
0017E0: 20 61 6E 64 20 20 52 74 68 61 74 20 20 74 68 65 and Rthat the
0017F0: 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 69 73 20 instruction is
001800: 74 6F 20 62 65 20 20 72 65 70 65 61 74 65 64 75 to be repeatedu
001810: 6E 74 69 6C 20 74 68 65 20 63 6F 75 6E 74 65 72 ntil the counter
001820: 20 69 73 20 7A 65 72 6F 2E A3 20 54 68 65 20 DF is zero.£ The .
001830: 25 74 6F 74 61 6C 20 6C 69 73 74 20 69 73 A0 A0 %total list is..
001840: 20 54 72 61 6E 73 66 65 72 73 20 4C 44 20 2E 2E Transfers LD ..
001850: 2E 2E 2E 4C 44 49 2C 4C 44 49 52 2C 4C 44 44 2C ...LDI,LDIR,LDD,
001860: 4C 44 44 52 A0 A0 20 43 6F 6D 70 61 72 65 20 20 LDDR.. Compare
001870: 20 43 50 20 2E 2E 2E 2E 2E 43 50 49 2C 43 50 49 CP .....CPI,CPI
001880: 52 2C 43 50 44 2C 43 50 44 52 A0 A0 20 49 6E 70 R,CPD,CPDR.. Inp
001890: 75 74 20 20 20 20 20 49 4E 20 2E 2E 2E 2E 2E 49 ut IN .....I
0018A0: 4E 49 2C 49 4E 49 52 2C 49 4E 44 2C 49 4E 44 52 NI,INIR,IND,INDR
0018B0: A0 A0 20 4F 75 74 70 75 74 20 20 20 20 4F 55 54 .. Output OUT
0018C0: 2F 4F 54 2E 2E 4F 55 54 49 2C 4F 54 44 52 2C 4F /OT..OUTI,OTDR,O
0018D0: 55 54 44 2C 4F 54 44 52 A0 A0 20 54 68 65 20 20 UTD,OTDR.. The
0018E0: 55 20 20 69 6E 20 4F 55 54 20 69 73 20 64 72 6F U in OUT is dro
0018F0: 70 70 65 64 20 20 74 6F 20 6B 65 65 70 20 20 74 pped to keep t
001900: 68 65 6D 6E 65 6D 6F 6E 69 63 20 74 6F 20 61 20 hemnemonic to a
001910: 6D 61 78 69 6D 75 6D 20 6F 66 20 34 20 6C 65 74 maximum of 4 let
001920: 74 65 72 73 2E A3 20 20 20 20 20 20 42 4C 4F 43 ters.£ BLOC
001930: 4B 0A AC 20 54 52 41 4E 53 46 45 52 20 49 4E 53 K.. TRANSFER INS
001940: 54 52 55 43 54 49 4F 4E 53 A0 A0 20 42 6C 6F 63 TRUCTIONS.. Bloc
001950: 6B 20 20 74 72 61 6E 73 66 65 72 20 20 69 6E 73 k transfer ins
001960: 74 72 75 63 74 69 6F 6E 73 20 20 74 72 61 6E 73 tructions trans
001970: 66 65 72 74 68 65 20 20 63 6F 6E 74 65 6E 74 73 ferthe contents
001980: 20 20 6F 66 20 20 61 6E 20 61 72 65 61 20 20 6F of an area o
001990: 66 20 6D 65 6D 6F 72 79 20 74 6F 61 6E 6F 74 68 f memory toanoth
0019A0: 65 72 20 61 72 65 61 2E 20 54 77 6F 20 70 6F 69 er area. Two poi
0019B0: 6E 74 65 72 73 20 61 72 65 20 75 73 65 64 2E 20 nters are used.
0019C0: 54 68 65 48 4C 20 72 65 67 69 73 74 65 72 20 68 TheHL register h
0019D0: 6F 6C 64 73 20 74 68 65 20 73 6F 75 72 63 65 20 olds the source
0019E0: 61 64 64 72 65 73 73 20 61 6E 64 74 68 65 20 44 address andthe D
0019F0: 45 20 72 65 67 69 73 74 65 72 20 74 68 65 20 64 E register the d
001A00: 65 73 74 69 6E 61 74 69 6F 6E 20 61 64 64 72 65 estination addre
001A10: 73 73 2E 54 68 65 20 73 69 7A 65 20 6F 66 20 74 ss.The size of t
001A20: 68 65 20 62 6C 6F 63 6B 20 74 6F 20 62 65 20 20 he block to be
001A30: 74 72 61 6F 69 6E 73 66 65 72 72 65 64 69 73 20 traoinsferredis
001A40: 68 65 6C 64 20 69 6E 20 74 68 65 20 42 43 20 72 held in the BC r
001A50: 65 67 69 73 74 65 72 2E A3 20 4C 44 49 20 20 74 egister.£ LDI t
001A60: 72 61 6E 73 66 65 72 73 20 28 48 4C 29 20 74 6F ransfers (HL) to
001A70: 20 28 44 45 29 2C 20 69 6E 63 72 65 6D 65 6E 74 (DE), increment
001A80: 73 62 6F 74 68 20 20 70 6F 69 6E 74 65 72 73 2C sboth pointers,
001A90: 20 20 61 6E 64 20 20 64 65 63 72 65 6D 65 6E 74 and decrement
001AA0: 73 20 42 43 2E 20 20 49 66 42 43 3D 30 20 74 68 s BC. IfBC=0 th
001AB0: 65 20 50 2F 56 20 66 6C 61 67 20 69 73 20 30 20 e P/V flag is 0
001AC0: 20 28 69 2E 65 2E 20 65 71 75 69 76 61 6C 65 6E (i.e. equivalen
001AD0: 74 74 6F 20 70 61 72 69 74 79 20 62 65 69 6E 67 tto parity being
001AE0: 20 6F 64 64 20 29 2E 20 49 66 20 20 42 43 20 20 odd ). If BC
001AF0: 64 6F 65 73 20 20 6E 6F 74 65 71 75 61 6C 20 30 does notequal 0
001B00: 20 74 68 65 20 50 2F 56 20 66 6C 61 67 20 69 73 the P/V flag is
001B10: 20 31 20 28 70 61 72 69 74 79 20 65 76 65 6E 29 1 (parity even)
001B20: 2E 4C 44 49 20 74 68 65 72 65 66 6F 72 65 20 70 .LDI therefore p
001B30: 65 72 66 6F 72 AB DA 6D 73 20 6F 6E 6C 79 20 20 erfor..ms only
001B40: 6F 6E 65 20 73 74 65 70 20 6F 66 74 68 65 20 74 one step ofthe t
001B50: 72 61 6E 73 66 65 72 20 20 20 6F 66 20 20 74 68 ransfer of th
001B60: 65 20 20 62 6C 6F 63 6B 2C 20 20 61 6C 6C 6F 77 e block, allow
001B70: 69 6E 67 69 6E 74 65 72 6D 65 64 69 61 74 65 20 ingintermediate
001B80: 20 6F 70 65 72 61 74 69 6F 6E 73 20 74 6F 20 62 operations to b
001B90: 65 20 70 65 72 66 6F 72 6D 65 64 62 65 66 6F 72 e performedbefor
001BA0: 65 20 74 68 65 20 69 6E 73 74 72 75 63 74 69 6F e the instructio
001BB0: 6E 20 69 73 20 72 65 70 65 61 74 65 64 2E A0 A0 n is repeated...
001BC0: 20 4C 44 49 52 20 20 69 73 20 73 69 6D 69 6C 61 LDIR is simila
001BD0: 72 20 74 6F 20 20 4C 44 49 2C 20 20 74 72 61 6E r to LDI, tran
001BE0: 73 66 65 72 72 69 6E 67 64 61 74 61 20 66 72 6F sferringdata fro
001BF0: 6D 20 28 48 4C 29 20 74 6F 20 28 44 45 29 20 61 m (HL) to (DE) a
001C00: 6E 64 20 20 69 6E 63 72 65 6D 65 6E 74 69 6E 67 nd incrementing
001C10: 74 68 65 20 70 6F 69 6E 74 65 72 73 2C 20 20 20 the pointers,
001C20: 62 75 74 20 20 20 74 68 69 73 20 20 20 69 6E 73 but this ins
001C30: 74 72 75 63 74 69 6F 18 62 6E 61 75 74 6F 6D 61 tructio.bnautoma
001C40: 74 69 63 61 6C 6C 79 20 20 20 72 65 70 65 61 74 tically repeat
001C50: 73 20 20 20 74 68 65 20 20 6F 70 65 72 61 74 69 s the operati
001C60: 6F 6E 75 6E 74 69 6C 20 20 42 43 3D 30 20 20 20 onuntil BC=0
001C70: 61 6E 64 20 20 74 68 65 20 20 77 68 6F 6C 65 20 and the whole
001C80: 20 62 6C 6F 63 6B 20 20 69 73 74 72 61 6E 73 66 block istransf
001C90: 65 72 72 65 64 2E A3 20 4C 44 44 20 20 69 73 20 erred.£ LDD is
001CA0: 73 69 6D 69 6C 61 72 20 74 6F 20 20 4C 44 49 20 similar to LDI
001CB0: 65 78 63 65 70 74 20 74 68 61 74 20 74 68 65 70 except that thep
001CC0: 6F 69 6E 74 65 72 73 20 61 72 65 20 44 65 63 72 ointers are Decr
001CD0: 65 6D 65 6E 74 65 64 2E 20 54 68 75 73 20 48 4C emented. Thus HL
001CE0: 20 61 6E 64 20 44 45 73 74 61 72 74 20 20 61 74 and DEstart at
001CF0: 20 20 74 68 65 20 20 74 6F 70 20 20 6F 66 20 20 the top of
001D00: 74 68 65 20 20 72 65 73 70 65 63 74 69 76 65 62 the respectiveb
001D10: 6C 6F 63 6B 73 20 6F 66 20 6D 65 6D 6F 72 79 2E locks of memory.
001D20: A0 A0 20 4C 44 44 52 20 20 52 65 70 65 61 74 73 .. LDDR Repeats
001D30: 20 20 4C 44 44 20 75 6E 74 44 03 69 6C 20 42 43 LDD untD.il BC
001D40: 3D 30 20 61 73 20 69 6E 20 74 68 65 4C 44 49 52 =0 as in theLDIR
001D50: 20 69 6E 73 74 72 75 63 74 69 6F 6E 2E A0 A0 20 instruction...
001D60: 42 6F 74 68 20 20 70 61 69 72 73 20 20 6F 66 20 Both pairs of
001D70: 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 28 4C instructions (L
001D80: 44 49 52 20 61 6E 64 4C 44 44 52 29 20 20 61 72 DIR andLDDR) ar
001D90: 65 20 20 72 65 71 75 69 72 65 64 2E A0 A0 20 54 e required... T
001DA0: 61 6B 65 20 74 68 65 20 65 78 61 6D 70 6C 65 20 ake the example
001DB0: 6F 66 20 61 6E 20 4C 44 49 52 20 69 6E 73 74 72 of an LDIR instr
001DC0: 75 63 74 69 6F 6E 77 69 74 68 20 74 68 65 20 72 uctionwith the r
001DD0: 65 67 69 73 74 65 72 73 20 69 6E 69 74 69 61 6C egisters initial
001DE0: 6C 79 20 73 65 74 20 74 6F 3A 2D A0 48 4C 20 3D ly set to:-.HL =
001DF0: 20 31 30 30 30 20 20 44 45 20 3D 20 31 35 30 30 1000 DE = 1500
001E00: 20 20 61 6E 64 20 20 42 43 20 3D 20 31 30 30 30 and BC = 1000
001E10: 2E A0 54 68 65 20 20 20 69 6E 73 74 72 75 63 74 ..The instruct
001E20: 69 6F 6E 20 20 73 68 6F 75 6C 64 20 20 74 72 61 ion should tra
001E30: 6E 73 66 65 72 20 20 74 68 65 63 84 BB 6F 6E 74 nsfer thec..ont
001E40: 65 6E 74 73 20 6F 66 20 74 68 65 20 20 62 6C 6F ents of the blo
001E50: 63 6B 20 6F 66 20 20 6D 65 6D 6F 72 79 20 20 31 ck of memory 1
001E60: 30 30 30 2D 32 30 30 30 20 20 20 74 6F 20 20 6D 000-2000 to m
001E70: 65 6D 6F 72 79 20 20 6C 6F 63 61 74 69 6F 6E 73 emory locations
001E80: 20 20 31 35 30 30 2D 32 35 30 30 2E 55 6E 66 6F 1500-2500.Unfo
001E90: 72 74 75 6E 61 74 65 6C 79 20 20 74 68 65 20 66 rtunately the f
001EA0: 69 72 73 74 20 73 74 65 70 20 20 74 72 61 6E 73 irst step trans
001EB0: 66 65 72 73 74 68 65 20 20 63 6F 6E 74 65 6E 74 fersthe content
001EC0: 73 20 20 6F 66 20 20 31 30 30 30 20 74 6F 20 31 s of 1000 to 1
001ED0: 35 30 30 2E 20 20 42 79 20 74 68 65 74 69 6D 65 500. By thetime
001EE0: 20 69 74 20 69 73 20 74 68 65 20 74 75 72 6E 20 it is the turn
001EF0: 6F 66 20 6C 6F 63 61 74 69 6F 6E 20 20 31 35 30 of location 150
001F00: 30 20 74 6F 62 65 20 74 72 61 6E 73 66 65 72 72 0 tobe transferr
001F10: 65 64 20 20 20 20 69 74 20 20 68 61 73 20 20 61 ed it has a
001F20: 6C 72 65 61 64 79 20 20 62 65 65 6E 6F 76 65 72 lready beenover
001F30: 77 72 69 74 74 65 6E 20 69 6E 20 74 68 33 F7 65 written in th3.e
001F40: 20 66 69 72 73 74 20 73 74 65 70 2E A3 20 54 61 first step.£ Ta
001F50: 6B 69 6E 67 20 74 68 65 20 69 6E 69 74 69 61 6C king the initial
001F60: 20 63 6F 6E 64 69 74 69 6F 6E 73 20 3A 2D A0 48 conditions :-.H
001F70: 4C 20 3D 31 39 39 39 20 20 20 44 45 20 3D 20 32 L =1999 DE = 2
001F80: 34 39 39 20 61 6E 64 20 20 42 43 20 3D 20 31 30 499 and BC = 10
001F90: 30 30 20 20 61 6E 64 75 73 69 6E 67 20 20 74 68 00 andusing th
001FA0: 65 20 20 4C 44 44 52 20 20 69 6E 73 74 72 75 63 e LDDR instruc
001FB0: 74 69 6F 6E 2C 20 20 74 68 65 20 73 61 6D 65 62 tion, the sameb
001FC0: 6C 6F 63 6B 20 77 69 6C 6C 20 20 62 65 20 20 74 lock will be t
001FD0: 72 61 6E 73 66 65 72 72 65 64 20 20 74 6F 20 74 ransferred to t
001FE0: 68 65 20 73 61 6D 65 6D 65 6D 6F 72 79 20 6C 6F he samememory lo
001FF0: 63 61 74 69 6F 6E 73 20 77 69 74 68 6F 75 74 20 cations without
002000: 74 68 69 73 20 70 72 6F 62 6C 65 6D 2E A0 A0 20 this problem...
002010: 49 6E 20 20 67 65 6E 65 72 61 6C 2C 20 20 69 66 In general, if
002020: 20 74 68 65 20 74 77 6F 20 62 6C 6F 63 6B 73 20 the two blocks
002030: 6F 76 65 72 6C 61 70 75 73 65 20 74 68 65 20 03 overlapuse the .
002040: BD 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 74 . instruction t
002050: 68 61 74 20 20 65 6E 73 75 72 65 73 20 20 74 68 hat ensures th
002060: 65 69 6E 69 74 69 61 6C 20 20 66 69 67 75 72 65 einitial figure
002070: 20 69 6E 20 74 68 65 20 20 48 4C 20 72 65 67 69 in the HL regi
002080: 73 74 65 72 20 6C 69 65 73 77 69 74 68 69 6E 20 ster lieswithin
002090: 74 68 65 20 20 62 6C 6F 63 6B 20 74 6F 20 77 68 the block to wh
0020A0: 69 63 68 20 64 61 74 61 20 69 73 20 74 6F 20 62 ich data is to b
0020B0: 65 74 72 61 6E 73 66 65 72 72 65 64 2E A3 20 53 etransferred.£ S
0020C0: 75 6D 6D 61 72 79 20 2D 20 62 6C 6F 63 6B 20 74 ummary - block t
0020D0: 72 61 6E 73 66 65 72 A0 A0 4C 44 49 20 20 20 20 ransfer..LDI
0020E0: 20 70 6F 69 6E 74 65 72 20 69 6E 63 72 65 6D 65 pointer increme
0020F0: 6E 74 65 64 A0 A0 4C 44 49 52 20 20 20 20 70 6F nted..LDIR po
002100: 69 6E 74 65 72 20 69 6E 63 72 65 6D 65 6E 74 65 inter incremente
002110: 64 20 61 6E 64 20 72 65 70 65 61 74 65 64 20 20 d and repeated
002120: 20 20 20 20 20 20 75 6E 74 69 6C 20 6E 75 6D 62 until numb
002130: 65 72 20 66 6F 75 6E 64 20 6F 72 20 42 43 3D 30 er found or BC=0
002140: A0 AE FD A0 4C 44 44 20 20 20 20 20 70 6F 69 6E ....LDD poin
002150: 74 65 72 20 64 65 63 72 65 6D 65 6E 74 65 64 A0 ter decremented.
002160: A0 4C 44 44 52 20 20 20 20 70 6F 69 6E 74 65 72 .LDDR pointer
002170: 20 64 65 63 72 65 6D 65 6E 74 65 64 20 61 6E 64 decremented and
002180: 20 72 65 70 65 61 74 65 64 20 20 20 20 20 20 20 repeated
002190: 20 75 6E 74 69 6C 20 6E 75 6D 62 65 72 20 66 6F until number fo
0021A0: 75 6E 64 20 6F 72 20 42 43 3D 30 A3 20 20 20 20 und or BC=0£
0021B0: 20 20 20 45 58 41 4D 50 4C 45 20 4F 46 20 42 4C EXAMPLE OF BL
0021C0: 4F 43 4B 20 54 52 41 4E 53 46 45 52 A0 A0 20 54 OCK TRANSFER.. T
0021D0: 68 65 20 65 78 61 6D 70 6C 65 20 75 73 65 73 20 he example uses
0021E0: 74 68 65 20 20 4C 44 49 52 20 20 69 6E 73 74 72 the LDIR instr
0021F0: 75 63 74 69 6F 6E 74 6F 20 20 74 72 61 6E 73 66 uctionto transf
002200: 65 72 20 20 74 68 65 20 20 70 72 6F 67 72 61 6D er the program
002210: 20 20 20 64 6F 77 6E 20 20 74 6F 20 20 61 6D 65 down to ame
002220: 6D 6F 72 79 20 61 72 65 61 2E A0 A0 20 54 68 65 mory area... The
002230: 20 70 6F 77 65 72 20 6F 66 20 74 68 65 73 65 20 power of these
002240: 69 6E 73 56 75 74 72 75 63 74 69 6F 6E 73 20 69 insVutructions i
002250: 73 20 77 65 6C 6C 69 6C 6C 75 73 74 72 61 74 65 s wellillustrate
002260: 64 20 62 79 20 74 68 65 20 73 69 6D 70 6C 65 20 d by the simple
002270: 6F 70 65 72 61 74 69 6F 6E 2E A0 A0 20 54 68 65 operation... The
002280: 73 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 se instructions
002290: 63 61 6E 20 20 62 65 20 75 73 65 64 20 61 6C 73 can be used als
0022A0: 6F 20 74 6F 66 69 6C 6C 20 20 61 20 20 62 6C 6F o tofill a blo
0022B0: 63 6B 20 20 6F 66 20 20 6D 65 6D 6F 72 79 20 77 ck of memory w
0022C0: 69 74 68 20 61 20 73 69 6E 67 6C 65 6E 75 6D 62 ith a singlenumb
0022D0: 65 72 2E A3 20 4C 44 20 48 4C 2C 46 30 30 48 A0 er.£ LD HL,F00H.
0022E0: 20 20 4C 44 20 44 45 2C 53 54 31 A0 20 20 4C 44 LD DE,ST1. LD
0022F0: 20 42 43 2C 42 48 A0 20 20 4C 44 49 52 A0 20 20 BC,BH. LDIR.
002300: 52 45 54 A0 20 53 54 31 20 20 20 44 45 46 42 20 RET. ST1 DEFB
002310: 30 A0 20 20 44 45 46 42 20 30 A0 20 20 44 45 46 0. DEFB 0. DEF
002320: 42 20 30 A0 20 20 44 45 46 42 20 30 A0 20 20 44 B 0. DEFB 0. D
002330: 45 46 42 20 30 A0 20 20 44 45 46 42 20 30 A0 20 EFB 0. DEFB 0.
002340: 20 44 45 46 42 BE 15 20 30 A0 20 20 44 45 46 42 DEFB.. 0. DEFB
002350: 20 30 A0 20 20 44 45 46 42 20 30 A0 20 20 44 45 0. DEFB 0. DE
002360: 46 42 20 30 A0 20 20 44 45 46 42 20 30 A0 20 20 FB 0. DEFB 0.
002370: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 4C 4F BLO
002380: 43 4B 20 53 45 41 52 43 48 A0 A0 20 41 73 20 79 CK SEARCH.. As y
002390: 6F 75 20 6D 61 79 20 6E 6F 77 20 62 65 20 61 62 ou may now be ab
0023A0: 6C 65 20 74 6F 20 69 6E 66 65 72 2C 20 74 68 65 le to infer, the
0023B0: 20 43 50 67 72 6F 75 70 20 20 43 6F 6D 70 61 72 CPgroup Compar
0023C0: 65 73 20 20 74 68 65 20 63 6F 6E 74 65 6E 74 20 es the content
0023D0: 20 6F 66 20 20 6D 65 6D 6F 72 79 6C 6F 63 61 74 of memorylocat
0023E0: 69 6F 6E 73 20 69 6E 20 61 20 20 62 6C 6F 63 6B ions in a block
0023F0: 20 6F 66 20 20 6D 65 6D 6F 72 79 20 20 77 69 74 of memory wit
002400: 68 20 61 70 72 65 64 65 74 65 72 6D 69 6E 65 64 h apredetermined
002410: 20 20 20 6E 75 6D 62 65 72 2E 20 20 20 48 4C 20 number. HL
002420: 20 68 6F 6C 64 73 20 20 74 68 65 70 6F 69 6E 74 holds thepoint
002430: 65 72 20 61 6E 64 20 20 74 68 65 20 20 42 43 20 er and the BC
002440: 72 65 67 69 73 74 65 F8 1D 72 20 74 68 65 20 6C registe..r the l
002450: 65 6E 67 74 68 6F 66 20 20 74 68 65 20 20 20 62 engthof the b
002460: 6C 6F 63 6B 20 20 74 6F 20 20 62 65 20 20 73 65 lock to be se
002470: 61 72 63 68 65 64 2E 20 20 20 54 68 65 41 63 63 arched. TheAcc
002480: 75 6D 75 6C 61 74 6F 72 20 20 68 6F 6C 64 73 20 umulator holds
002490: 74 68 65 20 6E 75 6D 62 65 72 20 66 6F 72 20 20 the number for
0024A0: 77 68 69 63 68 74 68 65 20 20 69 6E 73 74 72 75 whichthe instru
0024B0: 63 74 69 6F 6E 20 20 77 69 6C 6C 20 20 73 65 61 ction will sea
0024C0: 72 63 68 2E 20 20 49 66 20 20 74 68 65 6E 75 6D rch. If thenum
0024D0: 62 65 72 20 20 69 73 20 20 66 6F 75 6E 64 20 20 ber is found
0024E0: 74 68 65 6E 20 74 68 65 20 5A 65 72 6F 20 66 6C then the Zero fl
0024F0: 61 67 20 69 73 73 65 74 2E 20 20 41 73 20 20 62 ag isset. As b
002500: 65 66 6F 72 65 20 20 74 68 65 20 50 2F 56 20 66 efore the P/V f
002510: 6C 61 67 20 69 6E 64 69 63 61 74 65 73 77 68 65 lag indicateswhe
002520: 74 68 65 72 20 42 43 3D 30 2E A0 A0 20 54 68 65 ther BC=0... The
002530: 20 20 62 6C 6F 63 6B 20 69 6E 73 74 72 75 63 74 block instruct
002540: 69 6F 6E 73 20 73 74 6F 70 BF 76 2C 20 6E 6F 74 ions stop.v, not
002550: 20 20 77 69 74 68 74 68 65 20 70 6F 69 6E 74 65 withthe pointe
002560: 72 28 73 29 20 70 6F 69 6E 74 69 6E 67 20 61 74 r(s) pointing at
002570: 20 74 68 65 20 61 64 64 72 65 73 73 65 73 6A 75 the addressesju
002580: 73 74 20 6F 70 65 72 61 74 65 64 20 6F 6E 2C 20 st operated on,
002590: 20 62 75 74 20 74 6F 20 74 68 6F 73 65 20 61 62 but to those ab
0025A0: 6F 75 74 20 74 6F 62 65 20 70 72 6F 63 65 73 73 out tobe process
0025B0: 65 64 2E 20 48 65 6E 63 65 20 69 66 20 65 71 75 ed. Hence if equ
0025C0: 61 6C 69 74 79 20 69 73 20 66 6F 75 6E 64 74 68 ality is foundth
0025D0: 65 79 20 20 70 6F 69 6E 74 20 74 6F 20 74 68 65 ey point to the
0025E0: 20 20 6E 65 78 74 20 61 64 64 72 65 73 73 20 61 next address a
0025F0: 6E 64 20 6E 6F 74 74 68 65 20 20 6D 65 6D 6F 72 nd notthe memor
002600: 79 20 20 6C 6F 63 61 74 69 6F 6E 20 20 69 6E 20 y location in
002610: 20 77 68 69 63 68 20 20 69 74 20 77 61 73 66 6F which it wasfo
002620: 75 6E 64 2E A3 20 53 75 6D 6D 61 72 79 20 2D 20 und.£ Summary -
002630: 62 6C 6F 63 6B 20 73 65 61 72 63 68 A0 A0 43 50 block search..CP
002640: 49 20 20 20 20 20 70 6F 69 6E 74 EF 5C 65 72 20 I point.\er
002650: 69 6E 63 72 65 6D 65 6E 74 65 64 A0 A0 43 50 49 incremented..CPI
002660: 52 20 20 20 20 70 6F 69 6E 74 65 72 20 69 6E 63 R pointer inc
002670: 72 65 6D 65 6E 74 65 64 20 61 6E 64 20 72 65 70 remented and rep
002680: 65 61 74 65 64 20 20 20 20 20 20 20 20 75 6E 74 eated unt
002690: 69 6C 20 6E 75 6D 62 65 72 20 66 6F 75 6E 64 20 il number found
0026A0: 6F 72 20 42 43 3D 30 A0 A0 43 50 44 20 20 20 20 or BC=0..CPD
0026B0: 20 70 6F 69 6E 74 65 72 20 64 65 63 72 65 6D 65 pointer decreme
0026C0: 6E 74 65 64 A0 A0 43 50 44 52 20 20 20 20 70 6F nted..CPDR po
0026D0: 69 6E 74 65 72 20 64 65 63 72 65 6D 65 6E 74 65 inter decremente
0026E0: 64 20 61 6E 64 20 72 65 70 65 61 74 65 64 20 20 d and repeated
0026F0: 20 20 20 20 20 20 75 6E 74 69 6C 20 6E 75 6D 62 until numb
002700: 65 72 20 66 6F 75 6E 64 20 6F 72 20 42 43 3D 30 er found or BC=0
002710: A3 20 20 20 20 20 20 20 45 58 41 4D 50 4C 45 20 £ EXAMPLE
002720: 4F 46 20 42 4C 4F 43 4B 20 53 45 41 52 43 48 A0 OF BLOCK SEARCH.
002730: A0 20 49 6E 20 74 68 69 73 20 65 78 61 6D 70 6C . In this exampl
002740: 65 20 74 68 65 20 20 70 72 6F 67 72 61 A9 88 6D e the progra..m
002750: 20 69 74 73 65 6C 66 20 20 69 73 73 65 61 72 63 itself issearc
002760: 68 65 64 20 74 68 72 6F 75 67 68 20 75 6E 74 69 hed through unti
002770: 6C 20 74 68 65 20 6E 75 6D 62 65 72 20 43 39 48 l the number C9H
002780: 20 69 73 66 6F 75 6E 64 20 28 43 39 48 20 63 6F isfound (C9H co
002790: 72 72 65 73 70 6F 6E 64 73 20 74 6F 20 52 45 54 rresponds to RET
0027A0: 29 A3 20 4C 44 20 41 2C 43 39 48 A0 20 53 54 41 )£ LD A,C9H. STA
0027B0: 52 54 20 4C 44 20 42 43 2C 31 30 30 A0 20 20 4C RT LD BC,100. L
0027C0: 44 20 48 4C 2C 53 54 41 52 54 A0 20 20 43 50 49 D HL,START. CPI
0027D0: 52 A0 20 20 44 45 43 20 48 4C A0 20 20 4C 44 20 R. DEC HL. LD
0027E0: 41 2C 46 46 48 A0 20 20 43 50 49 52 A0 20 20 44 A,FFH. CPIR. D
0027F0: 45 43 20 48 4C A0 20 20 4C 44 20 41 2C 28 48 4C EC HL. LD A,(HL
002800: 29 A0 20 20 52 45 54 A0 20 20 A0 20 20 44 45 46 ). RET. . DEF
002810: 42 20 36 48 A0 20 20 44 45 46 42 20 30 48 A0 20 B 6H. DEFB 0H.
002820: 20 44 45 46 42 20 46 46 48 A0 20 20 44 45 46 42 DEFB FFH. DEFB
002830: 20 38 38 48 A0 20 20 A0 20 20 20 20 20 42 4C 4F 88H. . BLO
002840: 43 4B 20 49 4E 50 55 54 2F 4F 55 54 50 55 54 2C CK INPUT/OUTPUT,
002850: 67 20 49 4E 53 54 52 55 43 54 49 4F 4E 53 A0 A0 g INSTRUCTIONS..
002860: 20 54 68 65 20 20 49 4E 20 20 20 67 72 6F 75 70 The IN group
002870: 20 20 6F 66 20 20 62 6C 6F 63 6B 20 69 6E 73 74 of block inst
002880: 72 75 63 74 69 6F 6E 73 69 6E 70 75 74 20 64 61 ructionsinput da
002890: 74 61 20 66 72 6F 6D 20 74 68 65 20 69 6E 70 75 ta from the inpu
0028A0: 74 20 70 6F 72 74 20 73 70 65 63 69 66 69 65 64 t port specified
0028B0: 62 79 20 74 68 65 20 20 63 6F 6E 74 65 6E 74 73 by the contents
0028C0: 20 6F 66 20 74 68 65 20 43 20 20 72 65 67 69 73 of the C regis
0028D0: 74 65 72 20 69 6E 74 6F 61 20 20 62 6C 6F 63 6B ter intoa block
0028E0: 20 20 6F 66 20 20 20 6D 65 6D 6F 72 79 20 20 73 of memory s
0028F0: 74 61 72 74 69 6E 67 20 20 61 74 20 20 74 68 65 tarting at the
002900: 61 64 64 72 65 73 73 20 20 68 65 6C 64 20 20 69 address held i
002910: 6E 20 20 74 68 65 20 20 48 4C 20 72 65 67 69 73 n the HL regis
002920: 74 65 72 2C 20 74 68 65 6C 65 6E 67 74 68 20 20 ter, thelength
002930: 6F 66 20 20 77 68 69 63 68 20 20 69 73 20 69 6E of which is in
002940: 20 74 68 65 20 42 20 72 65 67 69 73 74 65 72 2E the B register.
002950: 41 FB 04 6C 6C 20 66 6F 72 6D 73 20 6F 66 20 49 A..ll forms of I
002960: 4E 20 61 70 70 6C 79 3A 2D A0 A0 20 69 2E 65 2E N apply:-.. i.e.
002970: 20 20 49 4E 49 20 69 6E 63 72 65 6D 65 6E 74 69 INI incrementi
002980: 6E 67 20 A0 20 20 20 20 20 20 20 49 4E 49 52 20 ng . INIR
002990: 69 6E 63 72 65 6D 65 6E 74 69 6E 67 20 61 6E 64 incrementing and
0029A0: 20 72 65 70 65 61 74 69 6E 67 A0 A0 20 20 20 20 repeating..
0029B0: 20 20 20 49 4E 44 20 20 64 65 63 72 65 6D 65 6E IND decremen
0029C0: 74 69 6E 67 A0 20 20 20 20 20 20 20 49 4E 44 52 ting. INDR
0029D0: 20 64 65 63 72 65 6D 65 6E 74 69 6E 67 20 61 6E decrementing an
0029E0: 64 20 72 65 70 65 61 74 69 6E 67 A3 20 54 68 65 d repeating£ The
0029F0: 20 20 4F 55 54 20 20 20 67 72 6F 75 70 20 69 73 OUT group is
002A00: 20 69 64 65 6E 74 69 63 61 6C 20 74 6F 20 74 68 identical to th
002A10: 65 20 49 4E 67 72 6F 75 70 2C 20 62 75 74 20 64 e INgroup, but d
002A20: 61 74 61 20 66 72 6F 6D 20 6D 65 6D 6F 72 79 20 ata from memory
002A30: 69 73 20 6F 75 74 70 75 74 20 74 6F 70 6F 72 74 is output toport
002A40: 20 20 20 28 43 29 20 20 69 6E 20 20 73 65 71 75 (C) in sequ
002A50: 65 6E 63 A5 13 65 20 20 20 66 72 6F 6D 20 20 20 enc..e from
002A60: 6D 65 6D 6F 72 79 62 65 67 69 6E 6E 69 6E 67 20 memorybeginning
002A70: 61 74 20 6C 6F 63 61 74 69 6F 6E 20 28 48 4C 29 at location (HL)
002A80: A0 A0 20 54 68 65 20 20 42 20 72 65 67 69 73 74 .. The B regist
002A90: 65 72 20 69 73 20 75 73 65 64 20 61 73 20 61 20 er is used as a
002AA0: 63 6F 75 6E 74 65 72 20 61 73 74 68 65 20 49 4E counter asthe IN
002AB0: 20 67 72 6F 75 70 2E A0 A0 20 4F 55 54 49 20 20 group... OUTI
002AC0: 20 20 20 69 6E 63 72 65 6D 65 6E 74 69 6E 67 A0 incrementing.
002AD0: 20 4F 54 49 52 20 20 20 20 20 69 6E 63 72 65 6D OTIR increm
002AE0: 65 6E 74 69 6E 67 20 61 6E 64 20 72 65 70 65 61 enting and repea
002AF0: 74 69 6E 67 A0 A0 20 4F 55 54 44 20 20 20 20 20 ting.. OUTD
002B00: 64 65 63 72 65 6D 65 6E 74 69 6E 67 A0 20 4F 54 decrementing. OT
002B10: 44 52 20 20 20 20 20 64 65 63 72 65 6D 65 6E 74 DR decrement
002B20: 69 6E 67 20 61 6E 64 20 72 65 70 65 61 74 69 6E ing and repeatin
002B30: 67 A0 A0 20 54 68 65 20 20 5A 65 72 6F 20 20 66 g.. The Zero f
002B40: 6C 61 67 20 69 6E 64 69 63 61 74 65 73 20 20 42 lag indicates B
002B50: 3D 30 20 69 6E FE 90 20 74 68 65 73 65 63 61 73 =0 in.. thesecas
002B60: 65 73 A0 A0 20 53 69 6E 63 65 20 20 74 68 65 20 es.. Since the
002B70: 20 41 4D 53 54 52 41 44 20 20 75 73 65 73 20 74 AMSTRAD uses t
002B80: 68 65 20 64 61 74 61 20 73 65 6E 74 6F 75 74 20 he data sentout
002B90: 66 72 6F 6D 20 74 68 65 20 20 42 20 72 65 67 69 from the B regi
002BA0: 73 74 65 72 20 61 73 20 50 6F 72 74 20 61 64 64 ster as Port add
002BB0: 72 65 73 73 69 6E 20 20 49 2F 4F 20 20 69 6E 73 ressin I/O ins
002BC0: 74 72 75 63 74 69 6F 6E 73 2C 20 69 74 20 63 61 tructions, it ca
002BD0: 6E 6E 6F 74 20 73 75 70 70 6F 72 74 74 68 65 73 nnot supportthes
002BE0: 65 20 62 6C 6F 63 6B 20 49 2F 4F 20 69 6E 73 74 e block I/O inst
002BF0: 72 75 63 74 69 6F 6E 73 2E A3 20 20 20 20 20 50 ructions.£ P
002C00: 52 4F 43 45 53 53 4F 52 20 43 4F 4E 54 52 4F 4C ROCESSOR CONTROL
002C10: 20 49 4E 53 54 52 55 43 54 49 4F 4E 53 A0 A0 20 INSTRUCTIONS..
002C20: 54 68 69 73 20 20 67 72 6F 75 70 20 20 6F 66 20 This group of
002C30: 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 2C 20 74 instructions, t
002C40: 6F 67 65 74 68 65 72 77 69 74 68 20 74 68 65 20 ogetherwith the
002C50: 69 6E 74 65 72 72 75 DA 32 70 74 20 69 6E 73 74 interru.2pt inst
002C60: 72 75 63 74 69 6F 6E 73 2C 20 63 6F 6E 74 72 6F ructions, contro
002C70: 6C 74 68 65 20 61 63 74 69 6F 6E 20 6F 66 20 74 lthe action of t
002C80: 68 65 20 70 72 6F 63 65 73 73 6F 72 2E A0 A0 20 he processor...
002C90: 4E 4F 50 20 20 20 6F 72 20 20 20 4E 6F 20 20 4F NOP or No O
002CA0: 50 65 72 61 74 69 6F 6E 20 20 20 63 61 75 73 65 Peration cause
002CB0: 73 20 20 20 74 68 65 70 72 6F 63 65 73 73 6F 72 s theprocessor
002CC0: 20 20 74 6F 20 20 64 6F 20 20 6E 6F 74 68 69 6E to do nothin
002CD0: 67 20 66 6F 72 20 6F 6E 65 20 73 74 65 70 2E 53 g for one step.S
002CE0: 69 6E 63 65 20 69 74 73 20 63 6F 64 65 20 69 73 ince its code is
002CF0: 20 20 30 20 2C 20 20 61 20 63 6C 65 61 72 65 64 0 , a cleared
002D00: 20 6D 65 6D 6F 72 79 61 72 65 61 20 77 69 6C 6C memoryarea will
002D10: 20 62 65 20 73 65 71 75 65 6E 63 65 64 20 20 74 be sequenced t
002D20: 68 72 6F 75 67 68 20 75 6E 74 69 6C 20 20 61 6E hrough until an
002D30: 6F 6E 2D 7A 65 72 6F 20 69 6E 73 74 72 75 63 74 on-zero instruct
002D40: 69 6F 6E 20 69 73 20 66 6F 75 6E 64 2E A0 A0 20 ion is found...
002D50: 48 41 4C 54 20 20 20 73 74 38 81 6F 70 73 20 20 HALT st8.ops
002D60: 20 74 68 65 20 20 20 73 65 71 75 65 6E 63 69 6E the sequencin
002D70: 67 20 20 6F 66 20 74 68 65 70 72 6F 63 65 73 73 g of theprocess
002D80: 6F 72 20 75 6E 74 69 6C 20 61 6E 20 69 6E 74 65 or until an inte
002D90: 72 72 75 70 74 20 69 73 20 72 65 63 65 69 76 65 rrupt is receive
002DA0: 64 28 20 73 65 65 20 6E 65 78 74 20 6C 65 73 73 d( see next less
002DB0: 6F 6E 20 29 2E 20 41 66 74 65 72 20 74 68 65 20 on ). After the
002DC0: 69 6E 74 65 72 72 75 70 74 68 61 73 20 20 62 65 interrupthas be
002DD0: 65 6E 20 20 64 65 61 6C 74 20 20 77 69 74 68 2C en dealt with,
002DE0: 20 20 74 68 65 20 69 6E 73 74 72 75 63 74 69 6F the instructio
002DF0: 6E 61 66 74 65 72 20 74 68 65 20 20 48 41 4C 54 nafter the HALT
002E00: 20 20 69 73 20 20 70 65 72 66 6F 72 6D 65 64 2E is performed.
002E10: 20 54 68 75 73 20 74 68 65 70 72 6F 67 72 61 6D Thus theprogram
002E20: 20 20 20 63 61 6E 20 20 20 62 65 20 20 20 73 79 can be sy
002E30: 6E 63 68 72 6F 6E 69 73 65 64 20 20 20 77 69 74 nchronised wit
002E40: 68 6F 70 65 72 61 74 69 6F 6E 73 20 6F 75 74 73 hoperations outs
002E50: 69 64 65 20 74 68 65 20 70 72 6F D4 83 63 65 73 ide the pro..ces
002E60: 73 6F 72 2E A3 20 41 73 20 20 20 77 65 6C 6C 20 sor.£ As well
002E70: 20 20 61 73 20 20 20 74 68 65 20 20 20 73 74 61 as the sta
002E80: 6E 64 61 72 64 20 20 20 20 43 41 4C 4C 69 6E 73 ndard CALLins
002E90: 74 72 75 63 74 69 6F 6E 73 20 20 69 6E 63 6F 72 tructions incor
002EA0: 70 6F 72 61 74 69 6E 67 20 20 74 68 65 20 61 64 porating the ad
002EB0: 64 72 65 73 73 74 6F 20 77 68 69 63 68 20 20 74 dressto which t
002EC0: 68 65 20 70 72 6F 63 65 73 73 6F 72 20 20 69 73 he processor is
002ED0: 20 74 6F 20 6A 75 6D 70 2C 20 74 68 65 5A 38 30 to jump, theZ80
002EE0: 20 20 20 68 61 73 20 20 69 6E 73 74 72 75 63 74 has instruct
002EF0: 69 6F 6E 73 20 20 69 6E 20 20 77 68 69 63 68 20 ions in which
002F00: 20 20 74 68 65 61 64 64 72 65 73 73 20 20 6F 66 theaddress of
002F10: 20 20 74 68 65 20 20 43 41 4C 4C 20 20 69 73 20 the CALL is
002F20: 20 69 6D 70 6C 69 65 64 2E 20 54 68 65 69 6E 73 implied. Theins
002F30: 74 72 75 63 74 69 6F 6E 73 20 20 20 52 53 54 20 tructions RST
002F40: 6E 20 28 20 77 68 65 72 65 20 6E 3D 30 30 48 2C n ( where n=00H,
002F50: 20 30 38 48 2C 31 30 48 2C 20 31 38 48 36 00 2C 08H,10H, 18H6.,
002F60: 20 32 30 48 2C 20 32 38 48 2C 20 33 30 48 2C 20 20H, 28H, 30H,
002F70: 33 38 48 20 29 20 63 61 6C 6C 73 20 74 68 65 72 38H ) calls ther
002F80: 6F 75 74 69 6E 65 20 61 74 20 30 30 6E 20 48 20 outine at 00n H
002F90: 20 64 69 72 65 63 74 6C 79 2E 20 69 2E 65 2E 20 directly. i.e.
002FA0: 52 53 54 20 32 38 48 69 73 20 20 65 71 75 69 76 RST 28His equiv
002FB0: 61 6C 65 6E 74 20 74 6F 20 43 41 4C 4C 20 30 30 alent to CALL 00
002FC0: 32 38 48 A0 A0 20 54 68 65 69 72 20 20 70 72 69 28H.. Their pri
002FD0: 6D 65 20 20 75 73 65 20 20 6F 6E 20 20 73 6F 6D me use on som
002FE0: 65 20 20 73 79 73 74 65 6D 73 20 69 73 74 6F 20 e systems isto
002FF0: 20 61 6C 6C 6F 77 20 20 65 78 74 65 72 6E 61 6C allow external
003000: 20 20 68 61 72 64 77 61 72 65 20 20 74 6F 20 20 hardware to
003010: 66 6F 72 63 65 74 68 65 20 20 73 69 6E 67 6C 65 forcethe single
003020: 20 20 62 79 74 65 20 20 69 6E 73 74 72 75 63 74 byte instruct
003030: 69 6F 6E 73 20 69 6E 74 6F 20 74 68 65 70 72 6F ions into thepro
003040: 63 65 73 73 6F 72 2C 20 20 74 68 75 73 20 20 6D cessor, thus m
003050: 61 6B 69 6E 67 20 20 69 74 20 20 74 68 69 6E F8 aking it thin.
003060: 3C 6B 20 20 69 74 73 6E 65 78 74 20 20 20 69 6E <k itsnext in
003070: 73 74 72 75 63 74 69 6F 6E 20 20 20 69 73 20 20 struction is
003080: 61 6E 20 20 52 53 54 20 6E 2E 20 20 20 49 74 74 an RST n. Itt
003090: 68 65 72 65 66 6F 72 65 20 66 6F 72 6D 73 20 61 herefore forms a
0030A0: 20 6D 65 74 68 6F 64 20 6F 66 20 69 6E 74 65 72 method of inter
0030B0: 72 75 70 74 69 6E 67 74 68 65 20 20 70 72 6F 63 ruptingthe proc
0030C0: 65 73 73 6F 72 2E 20 20 20 28 20 73 65 65 20 20 essor. ( see
0030D0: 74 68 65 20 20 6C 65 73 73 6F 6E 20 20 6F 6E 69 the lesson oni
0030E0: 6E 74 65 72 72 75 70 74 73 29 2E A3 20 41 6C 6C nterrupts).£ All
0030F0: 20 62 75 74 20 6F 6E 65 20 52 53 54 20 63 61 6C but one RST cal
003100: 6C 20 61 72 65 20 20 73 70 65 63 69 66 69 65 64 l are specified
003110: 20 20 6F 6E 74 68 65 20 41 4D 53 54 52 41 44 20 onthe AMSTRAD
003120: 28 20 74 68 65 20 43 50 43 34 36 34 20 46 49 52 ( the CPC464 FIR
003130: 4D 57 41 52 45 20 6D 61 6E 75 61 6C 64 65 66 69 MWARE manualdefi
003140: 6E 65 73 20 20 74 68 65 6D 20 20 61 6C 6C 20 20 nes them all
003150: 69 6E 20 20 64 65 74 61 69 6C 20 29 2E 20 20 20 in detail ).
003160: 4D 90 8D 6F 73 74 61 66 66 65 63 74 20 20 74 68 M..ostaffect th
003170: 65 20 20 73 79 73 74 65 6D 20 20 63 6F 6E 66 69 e system confi
003180: 67 75 72 61 74 69 6F 6E 20 20 65 74 63 2E 69 2E guration etc.i.
003190: 65 2E 20 52 53 54 20 30 30 48 20 20 69 73 20 65 e. RST 00H is e
0031A0: 71 75 69 76 61 6C 65 6E 74 20 74 6F 20 4E 45 57 quivalent to NEW
0031B0: 2C 20 74 68 61 74 63 6C 65 61 72 73 20 20 6F 75 , thatclears ou
0031C0: 74 20 20 20 61 6C 6C 20 20 74 68 65 20 20 6D 65 t all the me
0031D0: 6D 6F 72 79 20 20 61 6E 64 20 20 72 65 2D 65 73 mory and re-es
0031E0: 74 61 62 6C 69 73 68 65 73 20 20 74 68 65 20 20 tablishes the
0031F0: 73 79 73 74 65 6D 2E 20 20 20 4E 65 65 64 6C 65 system. Needle
003200: 73 73 20 20 74 6F 73 61 79 20 20 74 68 65 20 73 ss tosay the s
003210: 69 6D 75 6C 61 74 6F 72 20 64 6F 65 73 20 6E 6F imulator does no
003220: 74 20 70 65 72 66 6F 72 6D 20 20 52 53 54 69 6E t perform RSTin
003230: 73 74 72 75 63 74 69 6F 6E 73 2E A0 A0 20 54 68 structions... Th
003240: 65 72 65 20 20 61 72 65 20 6F 6E 6C 79 20 20 74 ere are only t
003250: 77 6F 20 20 6D 6F 72 65 20 72 65 67 69 73 74 65 wo more registe
003260: 72 73 20 50 F5 69 6E 74 68 65 20 5A 38 30 20 74 rs P.inthe Z80 t
003270: 6F 20 64 69 73 63 75 73 73 2C 20 74 68 65 20 20 o discuss, the
003280: 49 20 6F 72 20 20 49 6E 74 65 72 72 75 70 74 72 I or Interruptr
003290: 65 67 69 73 74 65 72 20 28 73 65 65 20 6E 65 78 egister (see nex
0032A0: 74 20 6C 65 73 73 6F 6E 29 2C 20 61 6E 64 20 74 t lesson), and t
0032B0: 68 65 20 52 20 6F 72 52 65 66 72 65 73 68 20 72 he R orRefresh r
0032C0: 65 67 69 73 74 65 72 2E A3 20 54 68 65 20 20 52 egister.£ The R
0032D0: 65 66 72 65 73 68 20 20 72 65 67 69 73 74 65 72 efresh register
0032E0: 20 69 73 20 75 73 65 64 20 20 62 79 20 73 6F 6D is used by som
0032F0: 65 66 6F 72 6D 73 20 20 6F 66 20 20 52 61 6E 64 eforms of Rand
003300: 6F 6D 20 20 41 63 63 65 73 73 20 20 4D 65 6D 6F om Access Memo
003310: 72 79 20 20 77 68 69 63 68 72 65 71 75 69 72 65 ry whichrequire
003320: 20 20 63 6F 6E 74 69 6E 75 6F 75 73 20 20 77 72 continuous wr
003330: 69 74 69 6E 67 20 74 6F 20 6D 61 69 6E 74 61 69 iting to maintai
003340: 6E 69 74 73 20 20 69 6E 66 6F 72 6D 61 74 69 6F nits informatio
003350: 6E 2E 20 20 20 54 68 65 20 20 52 20 20 72 65 67 n. The R reg
003360: 69 73 74 65 72 AB D4 20 20 69 73 69 6E 63 72 65 ister.. isincre
003370: 6D 65 6E 74 65 64 20 61 75 74 6F 6D 61 74 69 63 mented automatic
003380: 61 6C 6C 79 20 65 76 65 72 79 20 74 69 6D 65 20 ally every time
003390: 74 68 65 70 72 6F 63 65 73 73 6F 72 20 20 20 66 theprocessor f
0033A0: 65 74 63 68 65 73 20 20 20 65 61 63 68 20 20 20 etches each
0033B0: 70 61 72 74 20 20 6F 66 20 61 6E 69 6E 73 74 72 part of aninstr
0033C0: 75 63 74 69 6F 6E 20 20 66 72 6F 6D 20 20 6D 65 uction from me
0033D0: 6D 6F 72 79 2E 20 54 68 69 73 20 70 72 6F 76 69 mory. This provi
0033E0: 64 65 73 74 68 65 20 70 72 6F 67 72 61 6D 6D 65 desthe programme
0033F0: 72 20 20 77 69 74 68 20 20 61 20 20 72 65 67 69 r with a regi
003400: 73 74 65 72 20 20 77 68 6F 73 65 63 6F 6E 74 65 ster whoseconte
003410: 6E 74 73 20 6D 61 79 20 62 65 20 20 63 6F 6E 73 nts may be cons
003420: 69 64 65 72 65 64 20 20 72 61 6E 64 6F 6D 20 20 idered random
003430: 66 6F 72 73 6F 6D 65 20 61 70 70 6C 69 63 61 74 forsome applicat
003440: 69 6F 6E 73 2E A0 A0 20 54 68 65 20 20 52 20 20 ions... The R
003450: 61 6E 64 20 20 49 20 20 72 65 67 69 73 74 65 72 and I register
003460: 73 20 63 61 6E 20 62 89 08 65 20 6C 6F 61 64 65 s can b..e loade
003470: 64 66 72 6F 6D 20 20 74 68 65 20 20 41 63 63 75 dfrom the Accu
003480: 6D 75 6C 61 74 6F 72 2E 20 54 68 65 20 69 6E 73 mulator. The ins
003490: 74 72 75 63 74 69 6F 6E 73 69 6E 76 6F 6C 76 65 tructionsinvolve
0034A0: 64 20 61 72 65 20 73 69 6D 70 6C 79 20 20 4C 44 d are simply LD
0034B0: 20 41 2C 52 20 3A 20 20 4C 44 20 52 2C 41 20 20 A,R : LD R,A
0034C0: 3A 4C 44 20 41 2C 49 20 61 6E 64 20 4C 44 20 49 :LD A,I and LD I
0034D0: 2C 41 2E A3 53 75 6D 6D 61 72 79 20 2D 20 70 72 ,A.£Summary - pr
0034E0: 6F 63 65 73 73 6F 72 20 63 6F 6E 74 72 6F 6C 20 ocessor control
0034F0: 69 6E 73 74 72 75 63 74 69 6F 6E 73 A0 4E 4F 50 instructions.NOP
003500: 20 A0 48 41 4C 54 A0 A0 52 53 54 20 6E 20 20 77 .HALT..RST n w
003510: 68 65 72 65 20 6E 20 3D 30 30 48 2C 20 30 38 48 here n =00H, 08H
003520: 2C 20 31 30 48 2C 20 31 38 48 2C 20 32 30 48 2C , 10H, 18H, 20H,
003530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003540: 32 38 48 2C 20 33 30 48 2C 20 6F 72 20 33 38 48 28H, 30H, or 38H
003550: 2E A0 A0 4C 44 20 41 2C 52 A0 4C 44 20 52 2C 41 ...LD A,R.LD R,A
003560: A0 A0 4C 44 20 41 2C 49 A0 00 37 4C 44 20 49 2C ..LD A,I..7LD I,
003570: 41 A3 20 20 20 45 58 41 4D 50 4C 45 20 4F 46 20 A£ EXAMPLE OF
003580: 55 53 45 20 4F 46 20 52 45 46 52 45 53 48 20 52 USE OF REFRESH R
003590: 45 47 49 53 54 45 52 A0 A0 20 4D 6F 73 74 20 6F EGISTER.. Most o
0035A0: 66 20 74 68 65 20 69 6E 73 74 72 75 63 74 69 6F f the instructio
0035B0: 6E 20 69 6E 20 74 68 69 73 20 61 6E 64 20 74 68 n in this and th
0035C0: 65 6C 61 73 74 20 20 6C 65 73 73 6F 6E 20 20 69 elast lesson i
0035D0: 6E 76 6F 6C 76 65 20 20 73 74 65 70 73 20 74 68 nvolve steps th
0035E0: 61 74 20 63 68 61 6E 67 65 74 68 65 20 65 6E 76 at changethe env
0035F0: 69 72 6F 6E 6D 65 6E 74 20 69 6E 20 77 68 69 63 ironment in whic
003600: 68 20 74 68 65 20 20 20 70 72 6F 63 65 73 73 6F h the processo
003610: 72 6F 70 65 72 61 74 65 73 2E 20 20 49 74 20 69 roperates. It i
003620: 73 20 20 74 68 65 72 65 66 6F 72 65 20 64 69 66 s therefore dif
003630: 66 69 63 75 6C 74 20 74 6F 73 69 6D 75 6C 61 74 ficult tosimulat
003640: 65 20 74 68 65 73 65 20 69 6E 73 74 72 75 63 74 e these instruct
003650: 69 6F 6E 73 2E 20 20 4C 69 74 74 6C 65 20 63 61 ions. Little ca
003660: 6E 62 65 20 6C 65 61 72 6E 74 20 E8 CE 66 72 6F nbe learnt ..fro
003670: 6D 20 20 73 69 6E 67 6C 65 20 73 74 65 70 70 69 m single steppi
003680: 6E 67 20 20 74 68 72 6F 75 67 68 61 6E 20 20 65 ng throughan e
003690: 78 61 6D 70 6C 65 2E 20 20 48 6F 77 65 76 65 72 xample. However
0036A0: 20 63 68 61 6E 67 69 6E 67 20 69 6E 74 65 72 72 changing interr
0036B0: 75 70 74 65 74 63 2E 20 28 20 73 65 65 20 6E 65 uptetc. ( see ne
0036C0: 78 74 20 6C 65 73 73 6F 6E 20 29 20 20 6F 6E 20 xt lesson ) on
0036D0: 20 61 20 50 65 72 73 6F 6E 61 6C 43 6F 6D 70 75 a PersonalCompu
0036E0: 74 65 72 20 69 73 20 20 61 64 76 61 6E 63 65 64 ter is advanced
0036F0: 20 20 70 72 6F 67 72 61 6D 6D 69 6E 67 2E 20 20 programming.
003700: 54 72 79 67 61 69 6E 69 6E 67 20 20 20 65 78 70 Trygaining exp
003710: 65 72 69 65 6E 63 65 20 20 20 6F 6E 20 20 6D 61 erience on ma
003720: 63 68 69 6E 65 20 20 63 6F 64 65 70 72 6F 67 72 chine codeprogr
003730: 61 6D 6D 69 6E 67 20 20 62 65 66 6F 72 65 20 20 amming before
003740: 76 65 6E 74 75 72 69 6E 67 20 69 6E 74 6F 20 74 venturing into t
003750: 68 69 73 66 69 65 6C 64 2E A0 A0 20 54 68 65 20 hisfield... The
003760: 20 65 78 61 6D 70 6C 65 20 20 73 68 6F 81 EF 77 example sho..w
003770: 73 20 20 74 68 65 20 20 75 73 65 20 20 6F 66 20 s the use of
003780: 20 20 74 68 65 52 65 66 72 65 73 68 20 20 72 65 theRefresh re
003790: 67 69 73 74 65 72 20 20 61 73 20 61 20 73 6F 75 gister as a sou
0037A0: 72 63 65 20 6F 66 20 72 61 6E 64 6F 6D 6E 75 6D rce of randomnum
0037B0: 62 65 72 73 2E A3 20 4E 4F 50 A0 20 4C 4F 4F 50 bers.£ NOP. LOOP
0037C0: 20 20 4C 44 20 41 2C 52 A0 20 20 4A 52 20 4C 4F LD A,R. JR LO
0037D0: 4F 50 A0 20 20 A0 20 20 A0 20 20 A0 20 20 A0 20 OP. . . . .
0037E0: 20 A0 20 20 A0 20 20 A0 20 20 A0 20 20 A0 20 20 . . . . .
0037F0: A0 20 20 A0 20 20 A0 20 20 A0 20 20 20 20 20 20 . . . .
003800: 20 20 20 20 20 20 20 20 20 49 4E 54 45 52 52 55 INTERRU
003810: 50 54 53 A0 A0 20 41 6E 20 20 69 6E 74 65 72 72 PTS.. An interr
003820: 75 70 74 20 20 6F 72 69 67 69 6E 61 74 65 73 20 upt originates
003830: 66 72 6F 6D 20 20 6F 75 74 73 69 64 65 74 68 65 from outsidethe
003840: 20 70 72 6F 63 65 73 73 6F 72 2C 20 20 72 65 71 processor, req
003850: 75 65 73 74 69 6E 67 20 20 69 74 20 20 74 6F 20 uesting it to
003860: 62 72 65 61 6B 6F 66 66 20 69 74 73 20 63 75 39 breakoff its cu9
003870: 7B 72 72 65 6E 74 20 20 73 65 71 75 65 6E 63 65 {rrent sequence
003880: 20 6F 66 20 20 6F 70 65 72 61 74 69 6F 6E 73 61 of operationsa
003890: 6E 64 20 64 65 61 6C 20 77 69 74 68 20 73 6F 6D nd deal with som
0038A0: 65 20 6F 74 68 65 72 20 66 75 6E 63 74 69 6F 6E e other function
0038B0: 2E A0 A0 20 49 6E 74 65 72 72 75 70 74 73 20 20 ... Interrupts
0038C0: 66 61 6C 6C 20 69 6E 74 6F 20 20 74 77 6F 20 74 fall into two t
0038D0: 79 70 65 73 2C 20 20 4E 6F 6E 2D 4D 61 73 6B 61 ypes, Non-Maska
0038E0: 62 6C 65 20 49 6E 74 65 72 72 75 70 74 73 20 28 ble Interrupts (
0038F0: 4E 4D 49 29 20 20 61 6E 64 20 20 4D 61 73 6B 61 NMI) and Maska
003900: 62 6C 65 49 6E 74 65 72 72 75 70 74 73 20 28 4D bleInterrupts (M
003910: 49 29 2E 20 20 4D 61 73 6B 61 62 6C 65 20 69 6E I). Maskable in
003920: 74 65 72 72 75 70 74 20 63 61 6E 62 65 20 20 69 terrupt canbe i
003930: 67 6E 6F 72 65 64 20 20 62 79 20 20 74 68 65 20 gnored by the
003940: 20 73 6F 66 74 77 61 72 65 2C 20 62 75 74 20 4E software, but N
003950: 4D 49 73 63 61 6E 6E 6F 74 2E A0 A0 20 4F 6E 65 MIscannot... One
003960: 20 4E 6F 6E 2D 4D 61 73 6B 61 62 6C 65 20 49 6E Non-Maskable In
003970: 74 87 A2 65 72 72 75 70 74 20 69 73 20 61 76 61 t..errupt is ava
003980: 69 6C 61 62 6C 65 6F 6E 20 20 74 68 65 20 20 20 ilableon the
003990: 5A 38 30 20 20 20 63 68 69 70 2E 20 20 20 20 54 Z80 chip. T
0039A0: 68 65 20 20 20 69 6E 74 65 72 72 75 70 74 61 75 he interruptau
0039B0: 74 6F 6D 61 74 69 63 61 6C 6C 79 20 70 65 72 66 tomatically perf
0039C0: 6F 72 6D 73 20 61 6E 20 52 53 54 20 6F 72 20 43 orms an RST or C
0039D0: 41 4C 4C 20 74 6F 61 64 64 72 65 73 73 20 20 30 ALL toaddress 0
0039E0: 30 36 36 48 20 20 6F 6E 20 20 63 6F 6D 70 6C 65 066H on comple
0039F0: 74 69 6F 6E 20 20 6F 66 20 20 20 74 68 65 63 75 tion of thecu
003A00: 72 72 65 6E 74 20 20 69 6E 73 74 72 75 63 74 69 rrent instructi
003A10: 6F 6E 73 2E 20 20 54 68 65 20 20 72 6F 75 74 69 ons. The routi
003A20: 6E 65 20 20 61 74 30 30 36 36 48 20 69 73 20 70 ne at0066H is p
003A30: 65 72 66 6F 72 6D 65 64 2E 20 54 68 65 20 69 6E erformed. The in
003A40: 73 74 72 75 63 74 69 6F 6E 20 52 45 54 4E 6F 72 struction RETNor
003A50: 20 52 45 54 75 72 6E 20 66 72 6F 6D 20 20 20 4E RETurn from N
003A60: 6F 6E 2D 6D 61 73 6B 61 62 6C 65 20 20 69 6E 74 on-maskable int
003A70: 65 72 72 CB FA 75 70 74 72 65 74 75 72 6E 73 20 err..uptreturns
003A80: 20 63 6F 6E 74 72 6F 6C 20 62 61 63 6B 20 74 6F control back to
003A90: 20 74 68 65 20 69 6E 74 65 72 72 75 70 74 65 64 the interrupted
003AA0: 72 6F 75 74 69 6E 65 20 61 74 20 69 74 73 20 6E routine at its n
003AB0: 65 78 74 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 ext instruction
003AC0: 2E A3 54 68 65 20 70 72 6F 67 72 61 6D 6D 65 72 .£The programmer
003AD0: 20 63 61 6E 20 61 72 72 61 6E 67 65 20 74 68 61 can arrange tha
003AE0: 74 20 6D 61 73 6B 61 62 6C 65 69 6E 74 65 72 72 t maskableinterr
003AF0: 75 70 74 73 20 20 28 4D 49 29 20 61 72 65 20 69 upts (MI) are i
003B00: 67 6E 6F 72 65 64 2E 20 57 69 74 68 69 6E 20 74 gnored. Within t
003B10: 68 65 5A 38 30 20 20 74 68 65 72 65 20 20 69 73 heZ80 there is
003B20: 20 20 61 20 20 66 6C 61 67 2C 20 20 74 68 65 20 a flag, the
003B30: 20 69 6E 74 65 72 72 75 70 74 65 6E 61 62 6C 65 interruptenable
003B40: 20 20 66 6C 61 67 2C 20 20 20 74 68 61 74 20 20 flag, that
003B50: 63 61 6E 20 20 62 65 20 20 73 65 74 20 20 20 61 can be set a
003B60: 6E 64 63 6C 65 61 72 65 64 2E 20 20 20 44 65 70 ndcleared. Dep
003B70: 65 6E 64 69 6E A4 C5 67 20 20 75 70 6F 6E 20 20 endin..g upon
003B80: 74 68 65 20 73 74 61 74 65 20 6F 66 74 68 69 73 the state ofthis
003B90: 20 20 66 6C 61 67 20 20 20 4D 49 73 20 20 77 69 flag MIs wi
003BA0: 6C 6C 20 20 62 65 20 20 61 63 63 65 70 74 65 64 ll be accepted
003BB0: 20 20 6F 72 69 67 6E 6F 72 65 64 2E A0 A0 20 54 orignored... T
003BC0: 68 65 20 20 74 77 6F 20 20 69 6E 73 74 72 75 63 he two instruc
003BD0: 74 69 6F 6E 73 20 20 74 68 61 74 20 6D 61 6E 69 tions that mani
003BE0: 70 75 6C 61 74 65 74 68 69 73 20 66 6C 61 67 20 pulatethis flag
003BF0: 61 72 65 A0 A0 20 45 49 20 20 20 45 6E 61 62 6C are.. EI Enabl
003C00: 65 20 49 6E 74 65 72 72 75 70 74 73 2E 20 20 41 e Interrupts. A
003C10: 66 74 65 72 20 6F 6E 65 20 6D 6F 72 65 20 20 20 fter one more
003C20: 20 20 20 73 69 6E 67 6C 65 20 20 62 79 74 65 20 single byte
003C30: 20 69 6E 73 74 72 75 63 74 69 6F 6E 2C 20 66 75 instruction, fu
003C40: 72 74 68 65 72 20 20 20 20 20 20 69 6E 74 65 72 rther inter
003C50: 72 75 70 74 73 20 61 72 65 20 61 63 63 65 70 74 rupts are accept
003C60: 65 64 2E A0 A0 20 44 49 20 20 20 44 69 73 61 62 ed... DI Disab
003C70: 6C 65 20 49 6E 74 65 EE 76 72 72 75 70 74 73 20 le Inte.vrrupts
003C80: 69 6D 6D 65 64 69 61 74 65 6C 79 2E A0 A0 20 45 immediately... E
003C90: 6E 74 72 79 20 20 20 69 6E 74 6F 20 20 20 61 20 ntry into a
003CA0: 20 20 6D 61 73 6B 61 62 6C 65 20 20 20 69 6E 74 maskable int
003CB0: 65 72 72 75 70 74 61 75 74 6F 6D 61 74 69 63 61 erruptautomatica
003CC0: 6C 6C 79 20 64 69 73 61 62 6C 65 73 20 69 6E 74 lly disables int
003CD0: 65 72 72 75 70 74 2E A3 54 68 72 65 65 20 20 20 errupt.£Three
003CE0: 74 79 70 65 73 2C 20 20 6F 72 20 20 6D 6F 64 65 types, or mode
003CF0: 73 2C 20 20 6F 66 20 20 6D 61 73 6B 61 62 6C 65 s, of maskable
003D00: 69 6E 74 65 72 72 75 70 74 73 20 61 72 65 20 61 interrupts are a
003D10: 76 61 69 6C 61 62 6C 65 2E A0 A0 20 4D 4F 44 45 vailable... MODE
003D20: 20 30 20 69 73 20 73 65 74 20 62 79 20 74 68 65 0 is set by the
003D30: 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 49 4D instruction IM
003D40: 20 30 2E 54 68 69 73 20 20 20 6D 6F 64 65 20 20 0.This mode
003D50: 20 69 73 20 20 20 74 68 65 20 20 20 6F 6E 65 20 is the one
003D60: 20 20 64 65 73 63 72 69 62 65 64 70 72 65 76 69 describedprevi
003D70: 6F 75 73 6C 79 2C 20 20 77 B5 19 68 65 72 65 20 ously, w..here
003D80: 74 68 65 20 52 53 54 20 6E 20 69 6E 73 74 72 75 the RST n instru
003D90: 63 74 69 6F 6E 69 73 20 66 6F 72 63 65 64 20 6F ctionis forced o
003DA0: 6E 74 6F 20 74 68 65 20 64 61 74 61 20 68 69 67 nto the data hig
003DB0: 68 77 61 79 20 74 6F 20 20 66 6F 6F 6C 74 68 65 hway to foolthe
003DC0: 20 20 70 72 6F 63 65 73 73 6F 72 20 20 20 69 6E processor in
003DD0: 74 6F 20 20 20 70 65 72 66 6F 72 6D 69 6E 67 20 to performing
003DE0: 20 20 74 68 65 72 65 73 74 61 72 74 2E A0 A0 20 therestart...
003DF0: 4D 4F 44 45 20 31 20 69 73 20 74 68 65 20 20 6F MODE 1 is the o
003E00: 6E 65 20 20 75 73 65 64 20 62 79 20 74 68 65 20 ne used by the
003E10: 41 4D 53 54 52 41 44 73 79 73 74 65 6D 20 52 4F AMSTRADsystem RO
003E20: 4D 2E 20 49 74 20 69 73 20 73 65 74 20 62 79 20 M. It is set by
003E30: 74 68 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 49 the instructionI
003E40: 4D 20 31 2E 20 20 54 68 69 73 20 6D 6F 64 65 20 M 1. This mode
003E50: 69 73 20 73 69 6D 69 6C 61 72 20 69 6E 20 6F 70 is similar in op
003E60: 65 72 61 74 69 6F 6E 74 6F 20 20 74 68 65 20 20 erationto the
003E70: 4E 6F 6E 20 4D 61 73 6B 61 62 6C 9D 4D 65 20 20 Non Maskabl.Me
003E80: 49 6E 74 65 72 72 75 70 74 20 20 65 78 63 65 70 Interrupt excep
003E90: 74 74 68 61 74 20 20 70 72 6F 63 65 73 73 6F 72 tthat processor
003EA0: 20 69 73 20 20 72 65 73 74 61 72 74 65 64 20 20 is restarted
003EB0: 61 74 20 20 30 30 33 38 48 69 6E 73 74 65 61 64 at 0038Hinstead
003EC0: 20 6F 66 20 30 30 36 36 48 20 61 73 20 69 6E 20 of 0066H as in
003ED0: 74 68 65 20 4E 4D 49 2E A3 20 4D 4F 44 45 20 32 the NMI.£ MODE 2
003EE0: 20 20 69 73 20 20 74 68 65 20 20 6D 6F 73 74 20 is the most
003EF0: 20 20 66 6C 65 78 69 62 6C 65 2C 20 20 20 74 68 flexible, th
003F00: 65 61 64 64 72 65 73 73 20 74 6F 20 77 68 69 63 eaddress to whic
003F10: 68 20 74 68 65 20 70 72 6F 63 65 73 73 6F 72 20 h the processor
003F20: 69 73 20 66 6F 72 63 65 64 69 73 20 74 68 65 20 is forcedis the
003F30: 69 6E 64 69 72 65 63 74 20 61 64 64 72 65 73 73 indirect address
003F40: 20 68 65 6C 64 20 69 6E 20 61 20 6D 65 6D 6F 72 held in a memor
003F50: 79 6C 6F 63 61 74 69 6F 6E 2E 20 20 20 54 68 65 ylocation. The
003F60: 20 61 64 64 72 65 73 73 20 20 6F 66 20 74 68 69 address of thi
003F70: 73 20 20 6D 65 6D 6F 72 79 6C 6F 63 61 89 B0 74 s memoryloca..t
003F80: 69 6F 6E 20 20 69 73 20 63 6F 6D 70 75 74 65 64 ion is computed
003F90: 20 66 72 6F 6D 20 20 74 68 65 20 20 63 6F 6E 74 from the cont
003FA0: 65 6E 74 6F 66 20 74 68 65 20 20 49 20 72 65 67 entof the I reg
003FB0: 69 73 74 65 72 2C 20 20 77 68 69 63 68 20 20 70 ister, which p
003FC0: 72 6F 76 69 64 65 73 20 74 68 65 68 69 67 68 20 rovides thehigh
003FD0: 20 62 79 74 65 20 61 6E 64 20 20 74 68 65 20 20 byte and the
003FE0: 69 6E 74 65 72 72 75 70 74 69 6E 67 20 64 65 76 interrupting dev
003FF0: 69 63 65 77 68 69 63 68 20 20 70 72 6F 76 69 64 icewhich provid
004000: 65 73 20 20 74 68 65 20 20 6C 6F 77 20 20 20 62 es the low b
004010: 79 74 65 2E 20 20 53 69 6E 63 65 74 68 65 20 20 yte. Sincethe
004020: 69 6E 74 65 72 72 75 70 74 20 20 72 6F 75 74 69 interrupt routi
004030: 6E 65 20 20 20 69 73 20 20 20 61 64 64 72 65 73 ne is addres
004040: 73 65 64 69 6E 64 69 72 65 63 74 6C 79 20 20 74 sedindirectly t
004050: 68 65 20 20 69 6E 74 65 72 72 75 70 74 73 20 20 he interrupts
004060: 61 72 65 20 20 74 65 72 6D 65 64 76 65 63 74 6F are termedvecto
004070: 72 65 64 20 69 6E 74 65 72 72 75 70 74 73 2E D0 red interrupts..
004080: EE A0 A0 20 41 6E 20 20 69 6E 74 65 72 72 75 70 ... An interrup
004090: 74 20 20 63 61 6E 20 20 6F 63 63 75 72 20 61 74 t can occur at
0040A0: 20 61 6E 79 20 20 74 69 6D 65 2E 49 74 20 20 20 any time.It
0040B0: 66 6F 6C 6C 6F 77 73 20 20 20 74 68 65 72 65 66 follows theref
0040C0: 6F 72 65 20 20 74 68 61 74 20 20 20 69 66 20 20 ore that if
0040D0: 74 68 65 69 6E 74 65 72 72 75 70 74 65 64 20 20 theinterrupted
0040E0: 70 72 6F 67 72 61 6D 20 69 73 20 74 6F 20 62 65 program is to be
0040F0: 20 20 63 6F 6E 74 69 6E 75 65 64 28 20 69 2E 65 continued( i.e
004100: 2E 20 62 65 20 72 65 2D 65 6E 74 65 72 65 64 20 . be re-entered
004110: 29 2C 20 20 74 68 65 20 63 6F 6E 74 65 6E 74 73 ), the contents
004120: 20 6F 66 61 6E 79 20 72 65 67 69 73 74 65 72 20 ofany register
004130: 74 68 61 74 20 74 68 65 20 20 69 6E 74 65 72 72 that the interr
004140: 75 70 74 20 72 6F 75 74 69 6E 65 75 73 65 73 20 upt routineuses
004150: 20 6D 75 73 74 20 20 62 65 20 73 74 6F 72 65 64 must be stored
004160: 20 6F 72 20 70 75 73 68 65 64 20 6F 6E 74 6F 20 or pushed onto
004170: 74 68 65 73 74 61 63 6B 2C 20 61 6E 64 20 72 65 thestack, and re
004180: 6C 82 2C 6F 61 64 65 64 20 6F 72 20 50 4F 50 70 l.,oaded or POPp
004190: 65 64 20 20 66 72 6F 6D 20 20 74 68 65 73 74 61 ed from thesta
0041A0: 63 6B 20 62 65 66 6F 72 65 20 72 65 74 75 72 6E ck before return
0041B0: 69 6E 67 A3 20 54 6F 20 20 65 6E 73 75 72 65 20 ing£ To ensure
0041C0: 20 74 68 61 74 20 20 20 6E 6F 20 20 6F 74 68 65 that no othe
0041D0: 72 20 20 69 6E 74 65 72 72 75 70 74 6F 63 63 75 r interruptoccu
0041E0: 72 73 20 64 75 72 69 6E 67 20 74 68 69 73 20 70 rs during this p
0041F0: 65 72 69 6F 64 20 61 6E 64 20 20 74 68 65 72 65 eriod and there
004200: 66 6F 72 65 63 6F 72 72 75 70 74 73 20 20 74 68 forecorrupts th
004210: 65 20 20 72 65 67 69 73 74 65 72 20 20 63 6F 6E e register con
004220: 74 65 6E 74 73 20 62 65 66 6F 72 65 74 68 65 79 tents beforethey
004230: 20 20 20 61 72 65 20 20 73 61 66 65 2C 20 20 74 are safe, t
004240: 68 65 20 20 69 6E 74 65 72 72 75 70 74 73 20 20 he interrupts
004250: 20 61 72 65 64 69 61 62 6C 65 64 20 64 75 72 69 arediabled duri
004260: 6E 67 20 74 68 65 73 65 20 6F 70 65 72 61 74 69 ng these operati
004270: 6F 6E 73 2E A3 20 57 65 20 20 6D 75 73 74 20 20 ons.£ We must
004280: 20 72 65 66 8A 74 75 72 6E 20 20 66 72 6F 6D 20 ref.turn from
004290: 20 61 6E 20 20 20 69 6E 74 65 72 72 75 70 74 72 an interruptr
0042A0: 6F 75 74 69 6E 65 20 20 77 69 74 68 20 20 20 74 outine with t
0042B0: 68 65 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 he instruction
0042C0: 20 20 20 52 45 54 49 28 20 52 45 54 75 72 6E 20 RETI( RETurn
0042D0: 66 72 6F 6D 20 49 6E 74 65 72 72 75 70 74 20 29 from Interrupt )
0042E0: 20 61 6E 64 20 6E 6F 74 20 52 45 54 2E A0 A0 20 and not RET...
0042F0: 48 65 6E 63 65 20 69 6E 74 65 72 72 75 70 74 20 Hence interrupt
004300: 72 6F 75 74 69 6E 65 20 74 61 6B 65 20 74 68 65 routine take the
004310: 20 66 6F 72 6D 3A 2D A0 28 31 29 20 45 6E 74 65 form:-.(1) Ente
004320: 72 20 6D 61 73 6B 61 62 6C 65 20 69 6E 74 65 72 r maskable inter
004330: 72 75 70 74 2C 20 69 6E 74 65 72 72 75 70 74 73 rupt, interrupts
004340: 20 20 20 20 61 72 65 20 64 69 73 61 62 6C 65 64 are disabled
004350: 20 61 74 20 74 68 69 73 20 74 69 6D 65 2E A0 28 at this time..(
004360: 32 29 20 50 55 53 48 20 6F 72 20 45 58 63 68 61 2) PUSH or EXcha
004370: 6E 67 65 20 72 65 71 75 69 72 65 64 20 72 65 67 nge required reg
004380: 69 73 74 65 72 15 29 65 64 28 33 29 20 45 6E 61 ister.)ed(3) Ena
004390: 62 6C 65 73 20 69 6E 74 65 72 72 75 70 74 20 69 bles interrupt i
0043A0: 66 20 72 65 71 75 69 72 65 64 2E A0 28 34 29 20 f required..(4)
0043B0: 44 6F 20 69 6E 74 65 72 72 75 70 74 20 72 6F 75 Do interrupt rou
0043C0: 74 69 6E 65 2E A0 28 35 29 20 44 69 73 61 62 6C tine..(5) Disabl
0043D0: 65 20 69 6E 74 65 72 72 75 70 74 20 69 66 20 72 e interrupt if r
0043E0: 65 71 75 69 72 65 64 2E A0 28 36 29 20 50 4F 50 equired..(6) POP
0043F0: 20 6F 72 20 45 58 63 68 61 6E 67 65 20 72 65 67 or EXchange reg
004400: 69 73 74 65 72 73 2E A0 28 37 29 20 45 6E 61 62 isters..(7) Enab
004410: 6C 65 73 20 69 6E 74 65 72 72 75 70 74 73 A0 28 les interrupts.(
004420: 38 29 20 52 65 74 75 72 6E 20 66 72 6F 6D 20 69 8) Return from i
004430: 6E 74 65 72 72 75 70 74 20 28 52 45 54 49 29 2E nterrupt (RETI).
004440: A3 20 54 68 69 73 20 20 20 63 6F 6D 70 6C 65 74 £ This complet
004450: 65 73 20 20 61 20 20 73 74 75 64 79 20 20 6F 66 es a study of
004460: 20 20 61 6C 6C 20 74 68 65 69 6E 73 74 72 75 63 all theinstruc
004470: 74 69 6F 6E 73 20 61 76 61 69 6C 61 62 6C 65 20 tions available
004480: 6F 6E 20 74 68 65 20 F7 21 5A 38 30 20 63 68 69 on the .!Z80 chi
004490: 70 2E A0 20 59 6F 75 20 20 73 68 6F 75 6C 64 20 p.. You should
0044A0: 20 6E 6F 77 20 20 62 65 20 20 61 62 6C 65 20 74 now be able t
0044B0: 6F 20 75 73 65 20 6F 74 68 65 72 61 73 73 65 6D o use otherassem
0044C0: 62 6C 65 72 73 20 20 74 6F 20 20 77 72 69 74 65 blers to write
0044D0: 20 79 6F 75 72 20 6F 77 6E 20 70 72 6F 67 72 61 your own progra
0044E0: 6D 73 2E 59 6F 75 20 20 77 69 6C 6C 20 20 66 69 ms.You will fi
0044F0: 6E 64 20 20 74 68 61 74 20 20 6D 6F 73 74 20 20 nd that most
004500: 61 72 65 20 20 6E 6F 74 20 73 6F 75 73 65 72 20 are not souser
004510: 66 72 69 65 6E 64 6C 79 2C 20 20 61 6E 64 20 20 friendly, and
004520: 74 68 61 74 20 20 79 6F 75 20 20 77 69 6C 6C 20 that you will
004530: 6E 6F 74 62 65 20 20 61 62 6C 65 20 20 74 6F 20 notbe able to
004540: 20 6F 6E 65 20 20 73 74 65 70 20 20 65 61 73 69 one step easi
004550: 6C 79 20 20 74 68 72 6F 75 67 68 69 6E 73 74 72 ly throughinstr
004560: 75 63 74 69 6F 6E 73 2E 20 20 20 44 6F 6E 27 74 uctions. Don't
004570: 20 20 64 65 73 70 61 69 72 2E 20 20 59 6F 75 20 despair. You
004580: 63 61 6E 61 6C 77 61 79 73 98 D6 20 20 72 65 74 canalways.. ret
004590: 75 72 6E 20 74 6F 20 74 68 69 73 20 54 75 74 6F urn to this Tuto
0045A0: 72 20 74 6F 20 73 69 6D 75 6C 61 74 65 79 6F 75 r to simulateyou
0045B0: 72 20 70 72 6F 62 6C 65 6D 2E A0 20 53 69 6E 63 r problem.. Sinc
0045C0: 65 20 74 68 65 20 20 41 4D 53 54 52 41 44 20 43 e the AMSTRAD C
0045D0: 50 43 20 34 36 34 20 70 72 6F 63 65 73 73 6F 72 PC 464 processor
0045E0: 20 69 73 73 75 72 72 6F 75 6E 64 65 64 20 20 77 issurrounded w
0045F0: 69 74 68 20 69 6E 74 65 72 66 61 63 65 20 63 68 ith interface ch
004600: 69 70 73 20 20 41 4D 53 4F 46 54 72 65 63 6F 6D ips AMSOFTrecom
004610: 6D 65 6E 64 20 20 74 68 65 20 20 6D 61 63 68 69 mend the machi
004620: 6E 65 20 20 63 6F 64 65 20 70 72 6F 67 72 61 6D ne code program
004630: 6D 65 72 74 6F 20 20 61 64 64 72 65 73 73 20 20 merto address
004640: 74 68 65 73 65 20 20 64 65 76 69 63 65 73 20 20 these devices
004650: 74 68 72 6F 75 67 68 20 74 68 65 73 6F 66 74 77 through thesoftw
004660: 61 72 65 20 20 72 65 73 69 64 65 6E 74 20 20 77 are resident w
004670: 69 74 68 69 6E 20 74 68 65 20 52 4F 4D 73 2E 20 ithin the ROMs.
004680: 54 68 65 41 4D 53 54 52 41 44 20 09 4A 43 50 43 TheAMSTRAD .JCPC
004690: 34 36 34 20 46 49 52 4D 57 41 52 45 20 4D 41 4E 464 FIRMWARE MAN
0046A0: 55 41 4C 20 70 75 62 6C 69 73 68 65 64 62 79 20 UAL publishedby
0046B0: 41 4D 53 4F 46 54 20 64 65 66 69 6E 65 73 20 69 AMSOFT defines i
0046C0: 6E 20 64 65 74 61 69 6C 20 6E 6F 74 20 6F 6E 6C n detail not onl
0046D0: 79 20 74 68 65 76 61 72 69 6F 75 73 20 43 41 4C y thevarious CAL
0046E0: 4C 73 20 20 61 76 61 69 6C 61 62 6C 65 20 20 62 Ls available b
0046F0: 75 74 20 20 74 68 65 20 74 6F 74 61 6C 73 79 73 ut the totalsys
004700: 74 65 6D 20 73 74 72 75 63 74 75 72 65 2E A3 A0 tem structure.£.
004710: A0 A0 A0 A0 A0 A0 A0 A0 A0 20 20 20 47 4F 4F 44 ......... GOOD
004720: 20 20 4C 55 43 4B 20 20 61 6E 64 20 48 41 50 50 LUCK and HAPP
004730: 59 20 20 50 52 4F 47 52 41 4D 4D 49 4E 47 A3 20 Y PROGRAMMING£
004740: 20 20 20 20 20 20 20 20 20 20 20 20 49 4E 54 52 INTR
004750: 4F 44 55 43 54 49 4F 4E A0 A0 20 54 68 65 20 20 ODUCTION.. The
004760: 66 69 6E 61 6C 20 20 73 65 74 20 20 6F 66 20 20 final set of
004770: 6C 65 73 73 6F 6E 73 20 69 6E 74 72 6F 64 75 63 lessons introduc
004780: 65 73 6D 6F 72 65 20 73 70 65 63 69 61 62 C6 6C esmore speciab.l
004790: 69 73 65 64 20 72 65 67 69 73 74 65 72 73 20 61 ised registers a
0047A0: 6E 64 20 69 6E 73 74 72 75 63 74 2D 69 6F 6E 73 nd instruct-ions
0047B0: 2C 20 20 61 6E 64 20 20 6C 6F 6F 6B 73 20 61 74 , and looks at
0047C0: 20 74 68 65 20 77 61 79 20 74 68 65 20 5A 38 30 the way the Z80
0047D0: 20 63 61 6E 74 61 6C 6B 20 77 69 74 68 20 74 68 cantalk with th
0047E0: 65 20 6F 75 74 73 69 64 65 20 77 6F 72 6C 64 2E e outside world.
0047F0: A0 A0 20 54 68 65 20 6C 61 73 74 20 6C 65 73 73 .. The last less
004800: 6F 6E 73 20 64 65 61 6C 20 77 69 74 68 20 69 6E ons deal with in
004810: 73 74 72 75 63 74 69 6F 6E 73 74 68 61 74 20 20 structionsthat
004820: 20 61 6C 6C 6F 77 20 20 20 74 68 65 20 20 20 6F allow the o
004830: 75 74 73 69 64 65 20 20 77 6F 72 6C 64 20 20 20 utside world
004840: 74 6F 69 6E 74 65 72 72 75 70 74 20 74 68 65 20 tointerrupt the
004850: 70 72 6F 63 65 73 73 6F 72 2E A3 20 20 20 20 20 processor.£
004860: 20 20 20 20 20 20 20 4C 45 53 53 4F 4E 53 20 20 LESSONS
004870: 32 36 20 2D 20 33 35 A0 A0 20 32 36 2E 20 20 54 26 - 35.. 26. T
004880: 68 65 20 69 6E 64 65 78 20 72 65 67 69 73 74 62 he index registb
004890: 77 65 72 73 A0 20 20 20 20 20 20 20 20 20 20 20 wers.
0048A0: 20 20 45 78 20 2D 20 75 73 65 20 6F 66 20 69 6E Ex - use of in
0048B0: 64 65 78 20 72 65 67 69 73 74 65 72 73 20 32 37 dex registers 27
0048C0: 2E 20 20 54 68 65 20 61 6C 74 65 72 6E 61 74 69 . The alternati
0048D0: 76 65 20 73 65 74 20 6F 66 20 72 65 67 69 73 74 ve set of regist
0048E0: 65 72 73 A0 20 20 20 20 20 20 20 20 20 20 20 20 ers.
0048F0: 20 45 78 20 2D 20 75 73 69 6E 67 20 61 6C 74 65 Ex - using alte
004900: 72 6E 61 74 69 76 65 20 73 65 74 A0 20 32 38 2E rnative set. 28.
004910: 20 20 49 6E 70 75 74 2F 4F 75 74 70 75 74 20 69 Input/Output i
004920: 6E 73 74 72 75 63 74 69 6F 6E 73 A0 20 20 20 20 nstructions.
004930: 20 20 20 20 20 20 20 20 20 45 78 20 2D 20 49 2F Ex - I/
004940: 4F 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 A0 20 O instructions.
004950: 32 39 2E 20 20 42 6C 6F 63 6B 20 69 6E 73 74 72 29. Block instr
004960: 75 63 74 69 6F 6E 73 20 2D 20 69 6E 74 72 6F 64 uctions - introd
004970: 75 63 74 69 6F 6E A0 20 33 30 2E 20 20 42 6C 6F uction. 30. Blo
004980: 63 6B 20 74 72 61 6E 66 65 72 20 69 6E 73 74 72 ck tranfer instr
004990: 75 13 CB 63 74 69 6F 6E 73 A0 20 20 20 20 20 20 u..ctions.
0049A0: 20 20 20 20 20 20 20 45 78 20 2D 20 62 6C 6F 63 Ex - bloc
0049B0: 6B 20 74 72 61 6E 73 66 65 72 A0 20 33 31 2E 20 k transfer. 31.
0049C0: 20 42 6C 6F 63 6B 20 73 65 61 72 63 68 20 69 6E Block search in
0049D0: 73 74 72 75 63 74 69 6F 6E 73 A0 20 20 20 20 20 structions.
0049E0: 20 20 20 20 20 20 20 20 45 78 20 2D 20 62 6C 6F Ex - blo
0049F0: 63 6B 20 73 65 61 72 63 68 A0 20 33 32 2E 20 20 ck search. 32.
004A00: 42 6C 6F 63 6B 20 49 2F 4F 20 69 6E 73 74 72 75 Block I/O instru
004A10: 63 74 69 6F 6E 73 A0 20 33 33 2E 20 20 50 72 6F ctions. 33. Pro
004A20: 63 65 73 73 6F 72 20 63 6F 6E 74 72 6F 6C 20 69 cessor control i
004A30: 6E 73 74 72 75 63 74 69 6F 6E 73 A0 20 20 20 20 nstructions.
004A40: 20 20 20 20 20 20 20 20 20 45 78 20 2D 20 63 6F Ex - co
004A50: 6E 74 72 6F 6C 20 69 6E 73 74 72 75 63 74 69 6F ntrol instructio
004A60: 6E 73 A0 20 33 34 2E 20 20 49 6E 74 65 72 72 75 ns. 34. Interru
004A70: 70 74 73 A0 20 33 35 2E 20 20 46 69 6E 61 6C 65 pts. 35. Finale
004A80: A0 20 20 20 20 20 20 4C 6F 61 64 20 65 61 72 6C . Load earl
004A90: 69 65 72 1D A6 20 6C 65 73 73 6F 6E 73 20 66 6F ier.. lessons fo
004AA0: 72 20 72 65 76 69 73 69 6F 6E A3 41 20 20 76 65 r revision£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 BD 9D 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 33 00 76 .....y.......3.v
005550: 65 20 22 54 45 58 54 33 22 2C 42 2C 26 35 38 30 e "TEXT3",B,&580
005560: 30 2C 26 35 35 30 30 00 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 0E 4D FF FF FF FF ..........M....
|
Length of PILOT pulse : 2310 Length of SYNC First pulse : 1111 Length of SYNC Second pulse : 1270 Length of ZERO bit pulse : 1163 Length of ONE bit pulse : 2325 Length of PILOT tone : 4095 Used bits in last byte : 8 Data : 21935 bytes Total size : 21954 bytes
Sum DATA : 1 726 123
Duration : 163101 ms Pause After this block : 2564 ms Duration block + Pause : 165665 ms Duration block + Pause : 00 h 02 m 45 s | 000000: FB 06 58 2E 58 EF 84 2F 58 33 58 37 58 44 58 51 ..X.X../X3X7XDXQ
000010: 58 5E 58 65 58 6F 58 76 58 83 58 8A 58 91 58 9B X^XeXoXvX.X.X.X.
000020: 58 A2 58 A9 58 B0 58 B7 58 BE 58 C5 58 CF 58 00 X.X.X.X.X.X.X.X.
000030: 00 74 87 01 00 D6 58 01 00 CB 5B 00 77 5E 00 4E .t....X...[.w^.N
000040: 61 00 76 62 01 00 CD 89 00 92 8C 00 1A 8E 02 7B a.vb...........{
000050: 90 01 00 57 63 00 F6 65 00 EE 68 00 F5 6B 01 00 ...Wc..e..h..k..
000060: 26 91 02 92 93 01 00 C3 6C 00 7D 6F 00 F6 6F 01 &.......l.}o..o.
000070: 00 3C 94 02 0A 95 01 00 91 70 00 74 73 00 B3 76 .<.......p.ts..v
000080: 00 31 77 01 00 B9 95 02 7A 97 01 00 0F 98 02 BC .1w.....z.......
000090: 98 01 00 FF 77 00 A7 7A 00 DD 7C 01 00 6A 99 02 ....w..z..|..j..
0000A0: 93 9A 01 00 3A 9B 02 4D 9D 01 00 04 7E 00 D7 80 ....:..M....~...
0000B0: 01 00 19 9E 02 EA 9E 01 00 28 81 00 ED 82 01 00 .........(......
0000C0: 7A 9F 02 0D A0 01 00 93 A0 00 CA A2 00 A8 A3 01 z.............£.
0000D0: 00 5D A4 02 3F A5 01 20 20 20 20 20 20 20 20 20 .]..?..
0000E0: 52 45 47 49 53 54 45 52 53 20 61 6E 64 20 4D 45 REGISTERS and ME
0000F0: 4D 4F 52 59 A0 A0 20 52 65 67 69 73 74 65 72 73 MORY.. Registers
000100: 20 01 45 20 61 72 65 20 20 6C 69 6B 65 20 20 70 .E are like p
000110: 69 67 65 6F 6E 20 20 68 6F 6C 65 73 20 20 69 6E igeon holes in
000120: 77 68 69 63 68 20 20 6E 75 6D 62 65 72 73 20 20 which numbers
000130: 63 61 6E 20 62 65 20 73 74 6F 72 65 64 2E 20 20 can be stored.
000140: 41 20 73 69 6E 67 6C 65 72 65 67 69 73 74 65 72 A singleregister
000150: 20 63 61 6E 20 73 74 6F 72 65 20 20 61 6E 79 20 can store any
000160: 20 6E 75 6D 62 65 72 20 20 62 65 74 77 65 65 6E number between
000170: 30 20 61 6E 64 20 20 32 35 35 2E 20 20 54 68 65 0 and 255. The
000180: 20 20 5A 38 30 20 20 68 61 73 20 20 20 6D 61 6E Z80 has man
000190: 79 20 20 20 73 75 63 68 72 65 67 69 73 74 65 72 y suchregister
0001A0: 73 2E 20 20 49 6E 69 74 69 61 6C 6C 79 20 20 77 s. Initially w
0001B0: 65 20 73 68 61 6C 6C 20 63 6F 6E 73 69 64 65 72 e shall consider
0001C0: 6F 6E 6C 79 20 74 68 65 20 6D 6F 72 65 20 20 67 only the more g
0001D0: 65 6E 65 72 61 6C 20 6F 6E 65 73 3A 20 20 64 65 eneral ones: de
0001E0: 73 69 67 6E 61 74 65 64 41 2C 42 2C 43 2C 44 2C signatedA,B,C,D,
0001F0: 45 2C 48 20 61 6E 64 20 4C 2E 20 20 54 68 65 20 E,H and L. The
000200: 41 20 20 A1 AB 72 65 67 69 73 74 65 72 20 28 20 A ..register (
000210: 6F 72 41 63 63 75 6D 75 6C 61 74 6F 72 20 29 20 orAccumulator )
000220: 20 69 73 20 20 74 68 65 20 20 6D 6F 73 74 20 20 is the most
000230: 69 6D 70 6F 72 74 61 6E 74 2C 73 69 6E 63 65 20 important,since
000240: 20 6D 6F 72 65 20 20 69 6E 73 74 72 75 63 74 69 more instructi
000250: 6F 6E 73 20 20 69 6E 76 6F 6C 76 65 20 20 74 68 ons involve th
000260: 69 73 72 65 67 69 73 74 65 72 20 74 68 61 6E 20 isregister than
000270: 61 6E 79 20 6F 74 68 65 72 2E A0 A0 20 54 68 65 any other... The
000280: 20 73 74 65 70 20 62 79 20 73 74 65 70 20 69 6E step by step in
000290: 73 74 72 75 63 74 69 6F 6E 73 20 6D 61 6B 69 6E structions makin
0002A0: 67 20 75 70 61 20 70 72 6F 67 72 61 6D 20 61 72 g upa program ar
0002B0: 65 20 73 74 6F 72 65 64 20 69 6E 20 6D 65 6D 6F e stored in memo
0002C0: 72 79 2C 20 61 20 73 65 72 69 65 73 6F 66 20 20 ry, a seriesof
0002D0: 20 73 69 6D 69 6C 61 72 20 20 20 20 72 65 67 69 similar regi
0002E0: 73 74 65 72 73 20 20 20 20 6F 72 20 20 20 6D 65 sters or me
0002F0: 6D 6F 72 79 6C 6F 63 61 74 69 6F 6E 73 20 20 65 morylocations e
000300: 78 74 65 72 6E CF 3B 61 6C 20 20 74 6F 20 20 74 xtern.;al to t
000310: 68 65 20 20 5A 38 30 20 20 63 68 69 70 2E 36 35 he Z80 chip.65
000320: 35 33 36 20 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 536 memory locat
000330: 69 6F 6E 73 20 63 61 6E 20 62 65 20 20 61 63 63 ions can be acc
000340: 65 73 73 65 64 2E 54 68 65 79 20 20 61 72 65 20 essed.They are
000350: 20 64 65 73 69 67 6E 61 74 65 64 20 20 62 79 20 designated by
000360: 20 74 68 65 69 72 20 20 6E 75 6D 62 65 72 62 65 their numberbe
000370: 74 77 65 65 6E 20 30 20 61 6E 64 20 36 35 35 33 tween 0 and 6553
000380: 35 2E 20 20 49 74 20 20 74 61 6B 65 73 20 20 74 5. It takes t
000390: 68 65 20 5A 38 30 6C 6F 6E 67 65 72 20 20 74 6F he Z80longer to
0003A0: 20 20 61 63 63 65 73 73 20 20 6D 65 6D 6F 72 79 access memory
0003B0: 20 20 74 68 61 6E 20 69 74 73 20 6F 77 6E 69 6E than its ownin
0003C0: 74 65 72 6E 61 6C 20 72 65 67 69 73 74 65 72 73 ternal registers
0003D0: 2E A3 20 20 20 20 20 20 20 53 49 4D 50 4C 45 20 .£ SIMPLE
0003E0: 4C 4F 41 44 20 49 4E 53 54 52 55 43 54 49 4F 4E LOAD INSTRUCTION
0003F0: 53 A0 A0 20 50 65 72 68 61 70 73 20 20 61 20 20 S.. Perhaps a
000400: 62 65 74 74 65 72 20 27 F4 20 64 65 73 63 72 69 better '. descri
000410: 70 74 69 6F 6E 20 6F 66 20 6C 6F 61 64 74 68 61 ption of loadtha
000420: 6E 20 74 68 65 20 63 6F 6E 76 65 6E 74 69 6F 6E n the convention
000430: 61 6C 20 6F 6E 65 20 69 73 20 63 6F 70 79 2C 20 al one is copy,
000440: 73 69 6E 63 65 61 20 6C 6F 61 64 20 20 69 6E 73 sincea load ins
000450: 74 72 75 63 74 69 6F 6E 20 20 63 6F 70 69 65 73 truction copies
000460: 20 20 74 68 65 20 20 6E 75 6D 62 65 72 68 65 6C the numberhel
000470: 64 20 69 6E 20 61 20 72 65 67 69 73 74 65 72 20 d in a register
000480: 20 6F 72 20 20 6D 65 6D 6F 72 79 20 20 6C 6F 63 or memory loc
000490: 61 74 69 6F 6E 69 6E 74 6F 20 20 20 61 6E 6F 74 ationinto anot
0004A0: 68 65 72 20 20 20 20 72 65 67 69 73 74 65 72 20 her register
0004B0: 20 20 6F 72 20 20 20 6D 65 6D 6F 72 79 6C 6F 63 or memoryloc
0004C0: 61 74 69 6F 6E 2E 20 20 20 41 73 20 20 20 77 69 ation. As wi
0004D0: 74 68 20 20 61 6C 6C 20 20 63 6F 70 79 69 6E 67 th all copying
0004E0: 20 20 74 68 65 6F 72 69 67 69 6E 61 6C 20 72 65 theoriginal re
0004F0: 6D 61 69 6E 73 20 75 6E 63 68 61 6E 67 65 64 2E mains unchanged.
000500: A0 A0 20 54 68 65 20 20 20 4B BE 6C 6F 61 64 20 .. The K.load
000510: 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 20 69 instruction i
000520: 73 20 20 20 6E 6F 72 6D 61 6C 6C 79 61 62 62 72 s normallyabbr
000530: 65 76 69 61 74 65 64 20 74 6F 20 4C 44 2E 20 20 eviated to LD.
000540: 54 68 65 20 73 69 6D 70 6C 65 73 74 20 66 6F 72 The simplest for
000550: 6D 20 6F 66 6C 6F 61 64 20 20 63 6F 70 69 65 73 m ofload copies
000560: 20 64 61 74 61 20 66 72 6F 6D 20 20 6F 6E 65 20 data from one
000570: 20 72 65 67 69 73 74 65 72 20 74 6F 61 6E 6F 74 register toanot
000580: 68 65 72 2C 20 69 2E 65 2E 20 4C 44 20 41 2C 42 her, i.e. LD A,B
000590: 20 20 2E A0 A0 20 49 6E 20 20 74 68 65 73 65 20 ... In these
0005A0: 20 61 62 62 72 65 76 69 61 74 69 6F 6E 65 64 20 abbreviationed
0005B0: 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 28 20 6D instructions( m
0005C0: 6E 65 6D 6F 6E 69 63 73 20 29 2C 20 69 74 20 69 nemonics ), it i
0005D0: 73 20 63 6F 6E 76 65 6E 74 69 6F 6E 61 6C 20 74 s conventional t
0005E0: 6F 20 70 75 74 74 68 65 20 72 65 67 69 73 74 65 o putthe registe
0005F0: 72 20 61 66 66 65 63 74 65 64 20 66 69 72 73 74 r affected first
000600: 2C 20 66 6F 6C 6C 6F 77 65 64 20 90 D0 62 79 74 , followed ..byt
000610: 68 65 20 72 65 67 69 73 74 65 72 20 66 72 6F 6D he register from
000620: 20 77 68 69 63 68 20 20 74 68 65 20 69 6E 66 6F which the info
000630: 72 6D 61 74 69 6F 6E 69 73 20 20 63 6F 70 69 65 rmationis copie
000640: 64 2E 20 20 20 48 65 6E 63 65 20 20 4C 44 20 41 d. Hence LD A
000650: 2C 42 20 20 63 6F 70 69 65 73 20 20 74 68 65 63 ,B copies thec
000660: 6F 6E 74 65 6E 74 73 20 6F 66 20 42 20 69 6E 74 ontents of B int
000670: 6F 20 41 20 6F 72 20 41 63 63 75 6D 75 6C 61 74 o A or Accumulat
000680: 6F 72 2E A3 20 57 65 20 20 63 61 6E 20 20 61 6C or.£ We can al
000690: 73 6F 20 6C 6F 61 64 20 61 6E 79 20 6F 66 20 74 so load any of t
0006A0: 68 65 20 72 65 67 69 73 74 65 72 73 77 69 74 68 he registerswith
0006B0: 20 20 61 20 20 6E 75 6D 62 65 72 2C 20 20 6E 2C a number, n,
0006C0: 20 62 65 74 77 65 65 6E 20 20 30 20 20 61 6E 64 between 0 and
0006D0: 20 32 35 35 64 69 72 65 63 74 6C 79 20 2C 20 20 255directly ,
0006E0: 20 77 69 74 68 20 20 20 20 69 6E 73 74 72 75 63 with instruc
0006F0: 74 69 6F 6E 73 20 20 20 6C 69 6B 65 4C 44 20 43 tions likeLD C
000700: 2C 31 32 33 2E 20 57 65 20 20 73 68 61 8D 52 6C ,123. We sha.Rl
000710: 6C 20 20 64 69 73 63 75 73 73 20 6C 61 74 65 72 l discuss later
000720: 20 20 66 72 6F 6D 77 68 65 72 65 20 20 74 68 65 fromwhere the
000730: 20 6E 75 6D 62 65 72 20 20 69 73 20 63 6F 70 69 number is copi
000740: 65 64 2E 20 53 75 66 66 69 63 65 20 74 6F 73 61 ed. Suffice tosa
000750: 79 20 61 74 20 74 68 69 73 20 20 73 74 61 67 65 y at this stage
000760: 2C 20 20 20 74 68 61 74 20 20 69 6E 73 74 72 75 , that instru
000770: 63 74 69 6F 6E 73 61 72 65 20 73 74 6F 72 65 64 ctionsare stored
000780: 20 61 73 20 20 6E 75 6D 62 65 72 73 2E 20 20 69 as numbers. i
000790: 2E 65 2E 20 20 4C 44 20 41 2C 42 20 69 73 73 74 .e. LD A,B isst
0007A0: 6F 72 65 64 20 61 73 20 20 37 38 2E 20 20 53 6F ored as 78. So
0007B0: 6D 65 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 me instructions
0007C0: 20 20 6C 69 6B 65 4C 44 20 41 2C 42 20 61 72 65 likeLD A,B are
0007D0: 20 73 74 6F 72 65 64 20 61 73 20 6F 6E 65 20 6E stored as one n
0007E0: 75 6D 62 65 72 2C 20 20 6F 74 68 65 72 73 74 61 umber, othersta
0007F0: 6B 65 20 75 70 20 74 6F 20 66 6F 75 72 2E A0 A0 ke up to four...
000800: 20 54 68 65 20 74 77 6F 20 74 79 70 65 73 20 E7 The two types .
000810: 0D 6F 66 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 .of instructions
000820: 20 64 69 73 63 75 73 73 65 64 28 20 4C 44 20 72 discussed( LD r
000830: 2C 72 27 20 61 6E 64 20 20 4C 44 20 72 2C 6E 20 ,r' and LD r,n
000840: 29 20 20 63 61 6E 20 69 6E 76 6F 6C 76 65 20 61 ) can involve a
000850: 6E 79 6F 66 20 74 68 65 20 20 72 65 67 69 73 74 nyof the regist
000860: 65 72 73 20 63 6F 6E 73 69 64 65 72 65 64 2E 20 ers considered.
000870: 20 4F 6E 6C 79 20 20 74 68 65 41 20 20 72 65 67 Only theA reg
000880: 69 73 74 65 72 20 20 20 63 61 6E 20 20 62 65 20 ister can be
000890: 20 6C 6F 61 64 65 64 20 20 77 69 74 68 20 20 74 loaded with t
0008A0: 68 65 63 6F 6E 74 65 6E 74 73 20 20 6F 66 20 20 hecontents of
0008B0: 61 20 20 6D 65 6D 6F 72 79 20 20 6C 6F 63 61 74 a memory locat
0008C0: 69 6F 6E 2E 20 20 20 54 68 65 69 6E 73 74 72 75 ion. Theinstru
0008D0: 63 74 69 6F 6E 73 20 6F 66 20 74 68 65 20 66 6F ctions of the fo
0008E0: 72 6D 20 4C 44 20 41 2C 28 6E 6E 29 20 6C 6F 61 rm LD A,(nn) loa
0008F0: 64 73 6F 72 20 20 63 6F 70 69 65 73 20 20 74 68 dsor copies th
000900: 65 20 20 20 63 6F 6E 74 65 6E 74 73 20 20 20 6F e contents o
000910: 66 8A F3 20 20 20 6D 65 6D 6F 72 79 6C 6F 63 61 f.. memoryloca
000920: 74 69 6F 6E 20 6E 6E 20 20 28 20 61 20 20 6E 75 tion nn ( a nu
000930: 6D 62 65 72 20 20 62 65 74 77 65 65 6E 20 20 30 mber between 0
000940: 20 61 6E 64 36 35 35 33 35 20 29 20 69 6E 74 6F and65535 ) into
000950: 20 74 68 65 20 41 20 72 65 67 69 73 74 65 72 2E the A register.
000960: A3 20 57 65 20 63 61 6E 20 61 6C 73 6F 20 6C 6F £ We can also lo
000970: 61 64 20 61 20 6D 65 6D 6F 72 79 20 6C 6F 63 61 ad a memory loca
000980: 74 69 6F 6E 20 77 69 74 68 74 68 65 20 20 63 6F tion withthe co
000990: 6E 74 65 6E 74 73 20 20 6F 66 20 20 74 68 65 20 ntents of the
0009A0: 20 41 63 63 75 6D 75 6C 61 74 6F 72 20 77 69 74 Accumulator wit
0009B0: 68 4C 44 20 28 6E 6E 29 2C 41 20 20 20 77 68 65 hLD (nn),A whe
0009C0: 72 65 20 20 6E 6E 20 20 69 73 20 20 74 68 65 20 re nn is the
0009D0: 6E 75 6D 62 65 72 20 6F 72 61 64 64 72 65 73 73 number oraddress
0009E0: 20 6F 66 20 74 68 65 20 6D 65 6D 6F 72 79 20 6C of the memory l
0009F0: 6F 63 61 74 69 6F 6E 2E A0 A0 20 41 6C 6C 20 20 ocation... All
000A00: 6F 74 68 65 72 20 73 69 6E 67 6C 65 20 20 72 65 other single re
000A10: 67 69 73 0E 0A 74 65 72 73 20 20 63 61 6E 6E 6F gis..ters canno
000A20: 74 20 62 65 6C 6F 61 64 65 64 20 20 64 69 72 65 t beloaded dire
000A30: 63 74 6C 79 20 66 72 6F 6D 20 61 20 6D 65 6D 6F ctly from a memo
000A40: 72 79 20 6C 6F 63 61 74 69 6F 6E 2E 54 77 6F 20 ry location.Two
000A50: 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 instructions
000A60: 20 69 6E 76 6F 6C 76 69 6E 67 20 20 20 74 68 65 involving the
000A70: 20 20 20 41 72 65 67 69 73 74 65 72 20 61 72 65 Aregister are
000A80: 20 72 65 71 75 69 72 65 64 2E A3 20 20 20 53 75 required.£ Su
000A90: 6D 6D 61 72 79 20 2D 20 4C 6F 61 64 69 6E 67 20 mmary - Loading
000AA0: 73 69 6E 67 6C 65 20 72 65 67 69 73 74 65 72 73 single registers
000AB0: A0 A0 4C 44 20 72 2C 72 27 20 20 20 20 77 68 65 ..LD r,r' whe
000AC0: 72 65 20 72 20 61 6E 64 20 72 27 20 61 72 65 20 re r and r' are
000AD0: 61 6E 79 20 6F 66 20 74 68 65 20 20 20 20 20 20 any of the
000AE0: 20 20 20 20 20 66 6F 6C 6C 6F 77 69 6E 67 3A 20 following:
000AF0: 41 2C 42 2C 43 2C 44 2C 45 2C 48 20 61 6E 64 20 A,B,C,D,E,H and
000B00: 4C 2E 4C 44 20 72 2C 6E 20 20 20 20 20 77 68 65 L.LD r,n whe
000B10: 72 65 20 6E 20 B5 09 69 73 20 61 20 6E 75 6D 62 re n ..is a numb
000B20: 65 72 20 30 20 2D 20 32 35 35 A0 A0 4C 44 20 41 er 0 - 255..LD A
000B30: 2C 28 6E 6E 29 20 20 77 68 65 72 65 20 6E 6E 20 ,(nn) where nn
000B40: 69 73 20 61 20 6E 75 6D 62 65 72 20 20 20 30 20 is a number 0
000B50: 74 6F A0 20 20 20 20 20 20 20 20 20 20 20 36 35 to. 65
000B60: 35 33 35 A0 4C 44 20 28 6E 6E 29 2C 41 A3 20 20 535.LD (nn),A£
000B70: 20 20 20 20 20 20 20 20 20 20 52 45 47 49 53 54 REGIST
000B80: 45 52 20 50 41 49 52 53 A0 A0 20 54 68 65 20 66 ER PAIRS.. The f
000B90: 61 63 74 20 74 68 61 74 20 20 61 20 20 73 69 6E act that a sin
000BA0: 67 6C 65 20 20 72 65 67 69 73 74 65 72 20 20 63 gle register c
000BB0: 61 6E 6F 6E 6C 79 20 68 6F 6C 64 20 20 6E 75 6D anonly hold num
000BC0: 62 65 72 73 20 20 75 70 20 20 74 6F 20 32 35 35 bers up to 255
000BD0: 20 20 61 6E 64 20 20 74 68 65 74 6F 74 61 6C 20 and thetotal
000BE0: 6D 65 6D 6F 72 79 20 20 61 76 61 69 6C 61 62 6C memory availabl
000BF0: 65 20 20 69 73 20 75 70 20 74 6F 20 36 35 35 33 e is up to 6553
000C00: 35 2C 69 73 20 61 20 6C 69 6D 69 74 61 74 69 6F 5,is a limitatio
000C10: 6E 2E 20 20 46 6F 72 30 78 20 20 74 68 69 73 20 n. For0x this
000C20: 72 65 61 73 6F 6E 20 74 68 65 72 65 61 72 65 20 reason thereare
000C30: 61 20 20 77 68 6F 6C 65 20 20 73 65 74 20 6F 66 a whole set of
000C40: 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 6F 6E instructions on
000C50: 20 74 68 65 5A 38 30 20 20 74 68 61 74 20 64 65 theZ80 that de
000C60: 61 6C 20 77 69 74 68 20 20 72 65 67 69 73 74 65 al with registe
000C70: 72 73 20 69 6E 20 70 61 69 72 73 2E 54 68 65 20 rs in pairs.The
000C80: 70 61 69 72 73 20 61 72 65 20 20 42 43 2C 20 20 pairs are BC,
000C90: 44 45 2C 20 61 6E 64 20 20 48 4C 20 72 65 67 69 DE, and HL regi
000CA0: 73 74 65 72 70 61 69 72 73 2E A0 A0 20 54 68 65 sterpairs... The
000CB0: 20 74 77 6F 20 72 65 67 69 73 74 65 72 73 20 68 two registers h
000CC0: 6F 6C 64 20 20 64 69 66 66 65 72 65 6E 74 20 70 old different p
000CD0: 61 72 74 73 6F 66 20 61 20 6E 75 6D 62 65 72 2E artsof a number.
000CE0: 20 43 6F 6E 73 69 64 65 72 20 74 68 65 20 64 65 Consider the de
000CF0: 63 69 6D 61 6C 20 6E 75 6D 62 65 72 32 37 2E 20 cimal number27.
000D00: 57 65 20 20 63 61 6E 20 74 68 69 6E 6B 20 6F 66 We can think of
000D10: 20 74 68 69 73 20 61 73 20 20 58 20 68 61 76 69 this as X havi
000D20: 6E 67 20 74 77 6F 70 61 72 74 73 3B 20 74 68 65 ng twoparts; the
000D30: 20 68 69 67 68 20 70 61 72 74 20 28 20 6F 72 20 high part ( or
000D40: 62 79 74 65 29 20 69 73 20 74 68 65 20 32 73 69 byte) is the 2si
000D50: 6E 63 65 20 69 74 20 72 65 70 72 65 73 65 6E 74 nce it represent
000D60: 73 20 20 32 2A 31 30 20 2C 20 74 68 65 20 6C 6F s 2*10 , the lo
000D70: 77 20 70 61 72 74 28 20 6F 72 20 20 62 79 74 65 w part( or byte
000D80: 20 29 20 20 69 73 20 20 74 68 65 20 37 2C 20 20 ) is the 7,
000D90: 20 73 69 6E 63 65 20 69 74 20 6F 6E 6C 79 72 65 since it onlyre
000DA0: 70 6C 65 73 65 6E 74 73 20 20 37 2A 31 20 2E 20 plesents 7*1 .
000DB0: 20 54 68 65 20 20 74 6F 74 61 6C 20 20 6E 75 6D The total num
000DC0: 62 65 72 20 69 73 32 2A 31 30 20 2B 20 37 2A 31 ber is2*10 + 7*1
000DD0: 20 3D 20 32 37 2E 20 20 45 61 63 68 20 64 69 67 = 27. Each dig
000DE0: 69 74 20 63 61 6E 20 6F 6E 6C 79 20 62 65 30 20 it can only be0
000DF0: 2D 20 39 20 20 69 2E 65 2E 20 31 30 20 20 64 69 - 9 i.e. 10 di
000E00: 66 66 65 72 65 6E 74 20 6E 75 6D 62 65 72 73 2E fferent numbers.
000E10: A3 20 41 20 20 73 69 6E 67 6C 65 AF 00 20 72 65 £ A single.. re
000E20: 67 69 73 74 65 72 20 63 61 6E 20 68 6F 6C 64 20 gister can hold
000E30: 20 30 2D 32 35 35 2C 20 32 35 36 64 69 66 66 65 0-255, 256diffe
000E40: 72 65 6E 74 20 20 20 6E 75 6D 62 65 72 73 2E 20 rent numbers.
000E50: 20 20 49 66 20 20 77 65 20 20 20 70 75 74 20 20 If we put
000E60: 74 77 6F 72 65 67 69 73 74 65 72 73 20 73 69 64 tworegisters sid
000E70: 65 20 62 79 20 73 69 64 65 2C 20 69 2E 65 2E 20 e by side, i.e.
000E80: 20 48 4C 20 2C 20 74 68 65 20 48 72 65 67 69 73 HL , the Hregis
000E90: 74 65 72 20 68 6F 6C 64 69 6E 67 20 74 68 65 20 ter holding the
000EA0: 48 69 67 68 20 62 79 74 65 20 61 6E 64 20 74 68 High byte and th
000EB0: 65 20 4C 68 6F 6C 64 69 6E 67 20 74 68 65 20 20 e Lholding the
000EC0: 4C 6F 77 20 20 62 79 74 65 2C 20 74 68 65 6E 20 Low byte, then
000ED0: 77 65 20 63 61 6E 20 68 6F 6C 64 69 6E 20 74 68 we can holdin th
000EE0: 65 20 72 65 67 69 73 74 65 72 20 70 61 69 72 20 e register pair
000EF0: 20 48 2A 32 35 36 20 2B 20 4C 2A 31 20 69 6E 20 H*256 + L*1 in
000F00: 74 68 65 73 61 6D 65 20 77 61 79 20 61 73 20 32 thesame way as 2
000F10: 37 20 3D 20 32 2A 31 30 20 2B 20 37 2A E8 4F 31 7 = 2*10 + 7*.O1
000F20: 2E 20 54 68 65 20 6D 61 78 69 6D 75 6D 74 68 61 . The maximumtha
000F30: 74 20 63 61 6E 20 20 62 65 20 20 68 65 6C 64 20 t can be held
000F40: 20 69 6E 20 61 20 20 72 65 67 69 73 74 65 72 20 in a register
000F50: 20 70 61 69 72 69 73 20 20 74 68 65 72 65 66 6F pairis therefo
000F60: 72 65 20 20 20 32 35 35 20 2A 20 32 35 36 20 2B re 255 * 256 +
000F70: 20 32 35 35 20 3D 20 36 35 35 33 35 2E 42 79 20 255 = 65535.By
000F80: 63 6F 6E 76 65 6E 74 69 6F 6E 20 20 74 68 65 20 convention the
000F90: 20 68 69 67 68 20 20 62 79 74 65 20 69 73 20 73 high byte is s
000FA0: 74 6F 72 65 64 69 6E 20 20 74 68 65 20 20 66 69 toredin the fi
000FB0: 72 73 74 20 20 72 65 67 69 73 74 65 72 20 69 6E rst register in
000FC0: 20 74 68 65 20 72 65 67 69 73 74 65 72 70 61 69 the registerpai
000FD0: 72 20 6E 61 6D 65 2E A0 A0 20 57 65 20 20 63 61 r name... We ca
000FE0: 6E 20 20 6C 6F 61 64 20 61 6E 79 20 6F 66 20 74 n load any of t
000FF0: 68 65 20 72 65 67 69 73 74 65 72 20 70 61 69 72 he register pair
001000: 73 77 69 74 68 20 61 20 6E 75 6D 62 65 72 20 62 swith a number b
001010: 65 74 77 65 65 6E 20 30 20 2D 20 36 35 35 33 F1 etween 0 - 6553.
001020: BA 35 20 64 69 72 65 63 74 6C 79 75 73 69 6E 67 .5 directlyusing
001030: 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 6C 69 instructions li
001040: 6B 65 20 4C 44 20 48 4C 2C 6E 6E 2E A0 A0 20 4A ke LD HL,nn... J
001050: 75 73 74 20 61 73 20 77 65 20 63 61 6E 20 63 6F ust as we can co
001060: 6D 62 69 6E 65 20 74 77 6F 20 72 65 67 69 73 74 mbine two regist
001070: 65 72 73 20 74 6F 68 6F 6C 64 20 6E 75 6D 62 65 ers tohold numbe
001080: 72 73 20 75 70 20 74 6F 20 36 35 35 33 35 2C 20 rs up to 65535,
001090: 77 65 20 63 61 6E 20 63 6F 6D 62 69 6E 65 61 64 we can combinead
0010A0: 6A 61 63 65 6E 74 20 20 20 20 20 6D 65 6D 6F 72 jacent memor
0010B0: 79 20 20 20 20 20 6C 6F 63 61 74 69 6F 6E 73 2E y locations.
0010C0: 20 20 20 20 42 79 63 6F 6E 76 65 6E 74 69 6F 6E Byconvention
0010D0: 20 74 68 65 20 20 4C 6F 77 20 20 62 79 74 65 20 the Low byte
0010E0: 69 73 20 68 65 6C 64 20 69 6E 20 74 68 65 6C 6F is held in thelo
0010F0: 63 61 74 69 6F 6E 20 77 69 74 68 20 74 68 65 20 cation with the
001100: 4C 6F 77 65 72 20 61 64 64 72 65 73 73 2E A3 20 Lower address.£
001110: 57 65 20 20 63 61 6E 20 20 74 68 65 72 65 66 6F We can therefo
001120: 72 19 C9 65 20 6C 6F 61 64 20 61 20 72 65 67 69 r..e load a regi
001130: 73 74 65 72 20 70 61 69 72 77 69 74 68 20 20 74 ster pairwith t
001140: 68 65 20 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 he contents of
001150: 61 20 20 70 61 69 72 20 6F 66 20 6D 65 6D 6F 72 a pair of memor
001160: 79 6C 6F 63 61 74 69 6F 6E 73 2C 20 20 20 77 69 ylocations, wi
001170: 74 68 20 20 20 69 6E 73 74 72 75 63 74 69 6F 6E th instruction
001180: 73 20 20 20 20 6C 69 6B 65 4C 44 20 44 45 2C 28 s likeLD DE,(
001190: 6E 6E 29 20 2E 20 20 20 20 54 68 69 73 20 20 20 nn) . This
0011A0: 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 20 20 69 instruction i
0011B0: 73 65 71 75 69 76 61 6C 65 6E 74 20 74 6F 20 74 sequivalent to t
0011C0: 68 65 20 6E 6F 6E 2D 76 61 6C 69 64 20 69 6E 73 he non-valid ins
0011D0: 74 72 75 63 74 69 6F 6E 73 4C 44 20 45 2C 28 6E tructionsLD E,(n
0011E0: 6E 29 20 61 6E 64 20 20 4C 44 20 44 2C 28 6E 6E n) and LD D,(nn
0011F0: 2B 31 29 2E A0 A0 20 53 69 6D 69 6C 61 72 6C 79 +1)... Similarly
001200: 2C 20 20 77 65 20 63 61 6E 20 6C 6F 61 64 20 74 , we can load t
001210: 68 65 20 63 6F 6E 74 65 6E 74 73 20 6F 66 61 20 he contents ofa
001220: 72 65 67 82 24 69 73 74 65 72 20 70 61 69 72 20 reg.$ister pair
001230: 69 6E 74 6F 20 20 61 20 70 61 69 72 20 20 6F 66 into a pair of
001240: 20 20 6D 65 6D 6F 72 79 6C 6F 63 61 74 69 6F 6E memorylocation
001250: 73 2C 20 20 69 2E 65 2E 20 20 20 4C 44 20 28 6E s, i.e. LD (n
001260: 6E 29 2C 42 43 20 20 77 68 69 63 68 20 20 69 73 n),BC which is
001270: 65 71 75 69 76 61 6C 65 6E 74 20 20 20 74 6F 20 equivalent to
001280: 20 20 74 68 65 20 20 20 20 74 77 6F 20 20 20 6E the two n
001290: 6F 6E 2D 76 61 6C 69 64 69 6E 73 74 72 75 63 74 on-validinstruct
0012A0: 69 6F 6E 73 20 4C 44 20 28 6E 6E 29 2C 43 20 61 ions LD (nn),C a
0012B0: 6E 64 20 20 4C 44 20 28 6E 6E 2B 31 29 2C 42 2E nd LD (nn+1),B.
0012C0: 20 54 68 65 72 65 20 20 20 61 72 65 20 20 6E 6F There are no
0012D0: 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 instructions
0012E0: 74 6F 20 20 6C 6F 61 64 72 65 67 69 73 74 65 72 to loadregister
0012F0: 20 20 70 61 69 72 73 20 20 77 69 74 68 20 20 74 pairs with t
001300: 68 65 20 20 63 6F 6E 74 65 6E 74 73 20 20 6F 66 he contents of
001310: 61 6E 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 another register
001320: 20 70 61 69 72 F3 6B 2E 20 20 54 77 6F 20 69 6E pair.k. Two in
001330: 73 74 72 75 63 74 69 6F 6E 73 74 68 65 20 66 6F structionsthe fo
001340: 72 6D 20 20 4C 44 20 72 2C 72 27 20 20 61 72 65 rm LD r,r' are
001350: 20 20 75 73 75 61 6C 6C 79 20 20 75 73 65 64 20 usually used
001360: 74 6F 70 65 72 66 6F 72 6D 20 73 75 63 68 20 61 toperform such a
001370: 6E 20 6F 70 65 72 61 74 69 6F 6E 2E A0 A0 20 54 n operation... T
001380: 68 65 72 65 20 20 69 73 20 20 6F 6E 65 20 20 69 here is one i
001390: 6E 73 74 72 75 63 74 69 6F 6E 20 20 73 69 6D 69 nstruction simi
0013A0: 6C 61 72 20 74 6F 74 68 69 73 20 74 79 70 65 3A lar tothis type:
0013B0: 20 20 45 58 20 44 45 2C 48 4C 2E 20 20 49 74 20 EX DE,HL. It
0013C0: 20 45 58 63 68 61 6E 67 65 73 20 74 68 65 63 6F EXchanges theco
0013D0: 6E 74 65 6E 74 73 20 6F 66 20 74 68 65 20 20 44 ntents of the D
0013E0: 45 20 20 72 65 67 69 73 74 65 72 20 20 70 61 69 E register pai
0013F0: 72 20 77 69 74 68 74 68 65 20 63 6F 6E 74 65 6E r withthe conten
001400: 74 73 20 6F 66 20 74 68 65 20 48 4C 20 72 65 67 ts of the HL reg
001410: 69 73 74 65 72 20 70 61 69 72 2E A3 20 20 53 75 ister pair.£ Su
001420: 6D 6D 61 72 79 20 2D 87 B9 20 6C 6F 61 64 69 6E mmary -.. loadin
001430: 67 20 72 65 67 69 73 74 65 72 20 70 61 69 72 73 g register pairs
001440: A0 A0 4C 44 20 64 64 2C 6E 6E 20 20 20 77 68 65 ..LD dd,nn whe
001450: 72 65 20 64 64 20 69 73 20 61 6E 79 20 72 65 67 re dd is any reg
001460: 69 73 74 65 72 20 70 61 69 72 20 20 20 20 20 20 ister pair
001470: 20 20 20 20 20 42 43 2C 20 44 45 2C 20 61 6E 64 BC, DE, and
001480: 20 48 4C 2E A0 20 20 20 20 20 20 20 20 20 20 20 HL..
001490: 20 6E 6E 20 20 69 73 20 61 20 6E 75 6D 62 65 72 nn is a number
0014A0: 20 30 20 2D 20 36 35 35 33 35 A0 A0 4C 44 20 64 0 - 65535..LD d
0014B0: 64 2C 28 6E 6E 29 A0 A0 4C 44 20 28 6E 6E 29 2C d,(nn)..LD (nn),
0014C0: 64 64 A0 A0 45 58 20 44 45 2C 48 4C 20 20 20 20 dd..EX DE,HL
0014D0: 65 78 63 68 61 6E 67 65 73 20 72 65 67 69 73 74 exchanges regist
0014E0: 65 72 20 63 6F 6E 74 65 6E 74 73 A3 20 20 20 20 er contents£
0014F0: 20 20 20 20 20 49 4E 44 49 52 45 43 54 20 41 44 INDIRECT AD
001500: 44 52 45 53 53 49 4E 47 A0 A0 20 55 70 20 20 20 DRESSING.. Up
001510: 74 6F 20 20 6E 6F 77 20 20 20 20 77 65 20 20 20 to now we
001520: 68 61 76 65 20 20 20 6F 6E 46 EF 6C 79 20 20 20 have onF.ly
001530: 75 73 65 64 69 6E 73 74 72 75 63 74 69 6F 6E 73 usedinstructions
001540: 20 69 6E 20 77 68 69 63 68 20 20 6D 65 6D 6F 72 in which memor
001550: 79 20 20 6C 6F 63 61 74 69 6F 6E 73 68 61 76 65 y locationshave
001560: 20 20 62 65 65 6E 20 20 73 70 65 63 69 66 69 65 been specifie
001570: 64 20 20 64 69 72 65 63 74 6C 79 20 20 69 6E 20 d directly in
001580: 20 74 68 65 69 6E 73 74 72 75 63 74 69 6F 6E 2E theinstruction.
001590: 20 41 6E 6F 74 68 65 72 20 20 75 73 65 66 75 6C Another useful
0015A0: 20 20 6D 65 74 68 6F 64 20 20 6F 66 73 70 65 63 method ofspec
0015B0: 69 66 79 69 6E 67 20 61 20 6D 65 6D 6F 72 79 20 ifying a memory
0015C0: 6C 6F 63 61 74 69 6F 6E 20 69 73 20 74 6F 20 75 location is to u
0015D0: 73 65 20 61 6E 75 6D 62 65 72 20 68 65 6C 64 20 se anumber held
0015E0: 69 6E 20 61 20 72 65 67 69 73 74 65 72 20 20 70 in a register p
0015F0: 61 69 72 2C 20 20 20 6B 6E 6F 77 6E 61 73 20 69 air, knownas i
001600: 6E 64 69 72 65 63 74 20 61 64 64 72 65 73 73 69 ndirect addressi
001610: 6E 67 2E 20 20 54 68 65 20 69 6E 73 74 72 75 63 ng. The instruc
001620: 74 69 6F 6E 4C 44 20 42 2C 28 48 C4 4A 4C 29 20 tionLD B,(H.JL)
001630: 66 6F 72 20 65 78 61 6D 70 6C 65 20 20 61 6C 6C for example all
001640: 6F 77 73 20 75 73 20 74 6F 20 6C 6F 61 64 6F 72 ows us to loador
001650: 20 63 6F 70 79 20 74 6F 20 74 68 65 20 20 42 20 copy to the B
001660: 20 72 65 67 69 73 74 65 72 20 74 68 65 20 63 6F register the co
001670: 6E 74 65 6E 74 73 6F 66 20 74 68 65 20 6D 65 6D ntentsof the mem
001680: 6F 72 79 20 6C 6F 63 61 74 69 6F 6E 20 77 68 6F ory location who
001690: 73 65 20 20 61 64 64 72 65 73 73 20 69 73 69 6E se address isin
0016A0: 20 74 68 65 20 48 4C 20 72 65 67 69 73 74 65 72 the HL register
0016B0: 20 70 61 69 72 2E A0 A0 20 41 6C 6C 20 20 73 69 pair... All si
0016C0: 6E 67 6C 65 20 20 72 65 67 69 73 74 65 72 73 20 ngle registers
0016D0: 20 63 61 6E 20 20 62 65 20 20 6C 6F 61 64 65 64 can be loaded
0016E0: 75 73 69 6E 67 20 74 68 65 20 48 4C 20 72 65 67 using the HL reg
0016F0: 69 73 74 65 72 20 70 61 69 72 20 61 73 20 61 20 ister pair as a
001700: 70 6F 69 6E 74 65 72 2E A0 20 53 69 6D 69 6C 61 pointer.. Simila
001710: 72 6C 79 20 2C 20 20 6D 65 6D 6F 72 79 20 20 6C rly , memory l
001720: 6F 63 61 74 69 6F 6E 73 20 20 63 61 6E 45 1B 20 ocations canE.
001730: 20 62 65 6C 6F 61 64 65 64 20 20 20 69 6E 64 69 beloaded indi
001740: 72 65 63 74 6C 79 20 20 66 72 6F 6D 20 20 20 61 rectly from a
001750: 6E 79 20 20 20 73 69 6E 67 6C 65 72 65 67 69 73 ny singleregis
001760: 74 65 72 20 75 73 69 6E 67 20 74 68 65 20 63 6F ter using the co
001770: 6E 74 65 6E 74 73 20 20 6F 66 20 20 74 68 65 20 ntents of the
001780: 20 48 4C 72 65 67 69 73 74 65 72 20 70 61 69 72 HLregister pair
001790: 20 61 73 20 61 64 64 72 65 73 73 20 69 2E 65 2E as address i.e.
0017A0: 20 4C 44 20 28 48 4C 29 2C 43 2E A3 20 55 73 65 LD (HL),C.£ Use
0017B0: 20 6F 66 20 20 74 68 65 20 20 42 43 20 20 61 6E of the BC an
0017C0: 64 20 20 44 45 20 20 72 65 67 69 73 74 65 72 73 d DE registers
0017D0: 20 66 6F 72 69 6E 64 69 72 65 63 74 20 61 64 64 forindirect add
0017E0: 72 65 73 73 69 6E 67 20 69 73 20 6C 69 6D 69 74 ressing is limit
0017F0: 65 64 20 74 6F 20 74 68 65 20 20 41 72 65 67 69 ed to the Aregi
001800: 73 74 65 72 2E 20 69 2E 65 2E 20 4C 44 20 28 44 ster. i.e. LD (D
001810: 45 29 2C 41 20 3B 4C 44 20 41 2C 28 42 43 29 20 E),A ;LD A,(BC)
001820: 65 74 63 2E A3 20 20 20 53 75 6D 6D 61 72 79 13 etc.£ Summary.
001830: 62 20 2D 20 20 69 6E 64 69 72 65 63 74 20 61 64 b - indirect ad
001840: 64 72 65 73 73 69 6E 67 A0 A0 4C 44 20 72 2C 28 dressing..LD r,(
001850: 48 4C 29 20 77 68 65 72 65 20 72 20 69 73 20 61 HL) where r is a
001860: 6E 79 20 73 69 6E 67 6C 65 20 72 65 67 69 73 74 ny single regist
001870: 65 72 20 20 20 20 20 20 20 20 20 20 41 2C 42 2C er A,B,
001880: 43 2C 44 2C 45 2C 48 2C 20 6F 72 20 4C 2E A0 4C C,D,E,H, or L..L
001890: 44 20 28 48 4C 29 2C 72 A0 A0 4C 44 20 41 2C 28 D (HL),r..LD A,(
0018A0: 42 43 29 A0 4C 44 20 41 2C 28 44 45 29 A0 4C 44 BC).LD A,(DE).LD
0018B0: 20 28 42 43 29 2C 41 A0 4C 44 20 28 44 45 29 2C (BC),A.LD (DE),
0018C0: 41 A3 20 20 20 20 20 20 41 44 44 49 54 49 4F 4E A£ ADDITION
0018D0: 53 20 41 4E 44 20 54 48 45 20 43 41 52 52 59 20 S AND THE CARRY
0018E0: 46 4C 41 47 A0 A0 20 42 6F 74 68 20 73 69 6E 67 FLAG.. Both sing
0018F0: 6C 65 20 20 72 65 67 69 73 74 65 72 20 61 6E 64 le register and
001900: 20 72 65 67 69 73 74 65 72 20 70 61 69 72 61 64 register pairad
001910: 64 69 74 69 6F 6E 20 61 72 65 20 70 6F 73 73 69 dition are possi
001920: 62 6C 65 20 6F 6E 20 74 68 65 20 5A 38 30 2E A0 ble on the Z80..
001930: A0 16 A8 20 41 6C 6C 20 20 20 73 69 6E 67 6C 65 ... All single
001940: 20 20 20 72 65 67 69 73 74 65 72 20 20 61 64 64 register add
001950: 69 74 69 6F 6E 73 20 20 61 72 65 70 65 72 66 6F itions areperfo
001960: 72 6D 65 64 20 77 69 74 68 20 74 68 65 20 41 63 rmed with the Ac
001970: 63 75 6D 75 6C 61 74 6F 72 2E 20 41 20 6E 75 6D cumulator. A num
001980: 62 65 72 28 20 69 2E 65 2E 20 20 41 44 44 20 41 ber( i.e. ADD A
001990: 2C 36 20 29 2C 20 20 74 68 65 20 20 63 6F 6E 74 ,6 ), the cont
0019A0: 65 6E 74 73 20 20 6F 66 20 20 61 72 65 67 69 73 ents of aregis
0019B0: 74 65 72 20 28 69 2E 65 2E 20 41 44 44 20 41 2C ter (i.e. ADD A,
0019C0: 42 29 2C 20 6F 72 20 74 68 65 20 63 6F 6E 74 65 B), or the conte
0019D0: 6E 74 73 6F 66 20 20 61 6E 20 20 20 69 6E 64 69 ntsof an indi
0019E0: 72 65 63 74 6C 79 20 20 20 61 64 64 72 65 73 73 rectly address
0019F0: 65 64 20 20 20 6D 65 6D 6F 72 79 6C 6F 63 61 74 ed memorylocat
001A00: 69 6F 6E 20 20 75 73 69 6E 67 20 20 74 68 65 20 ion using the
001A10: 20 48 4C 20 20 72 65 67 69 73 74 65 72 20 20 70 HL register p
001A20: 61 69 72 28 69 2E 65 2E 20 41 44 44 20 41 2C 28 air(i.e. ADD A,(
001A30: 48 4C 29 06 1D 20 29 20 63 61 6E 20 62 65 20 61 HL).. ) can be a
001A40: 64 64 65 64 20 20 74 6F 20 20 74 68 65 41 63 63 dded to theAcc
001A50: 75 6D 75 6C 61 74 6F 72 2E 20 54 68 65 20 72 65 umulator. The re
001A60: 73 75 6C 74 20 20 69 73 20 20 68 65 6C 64 20 69 sult is held i
001A70: 6E 20 74 68 65 41 63 63 75 6D 75 6C 61 74 6F 72 n theAccumulator
001A80: 2E 20 20 54 68 65 20 73 6F 75 72 63 65 20 6F 66 . The source of
001A90: 20 74 68 65 20 61 64 64 69 74 69 6F 6E 69 73 20 the additionis
001AA0: 75 6E 61 66 66 65 63 74 65 64 2E A0 A0 20 52 65 unaffected... Re
001AB0: 67 69 73 74 65 72 20 20 70 61 69 72 20 61 64 64 gister pair add
001AC0: 69 74 69 6F 6E 20 69 73 20 70 65 72 66 6F 72 6D ition is perform
001AD0: 65 64 20 69 6E 63 6F 6E 6A 75 6E 63 74 69 6F 6E ed inconjunction
001AE0: 20 20 77 69 74 68 20 20 74 68 65 20 48 4C 20 72 with the HL r
001AF0: 65 67 69 73 74 65 72 20 70 61 69 72 2C 61 6E 64 egister pair,and
001B00: 20 20 63 61 6E 20 20 6F 6E 6C 79 20 20 69 6E 76 can only inv
001B10: 6F 6C 76 65 20 20 42 43 20 6F 72 20 44 45 20 28 olve BC or DE (
001B20: 20 69 2E 65 2E 41 44 44 20 48 4C 2C 42 43 20 20 i.e.ADD HL,BC
001B30: 6F 72 20 20 41 1C 87 44 44 20 48 4C 2C 44 45 20 or A..DD HL,DE
001B40: 29 2E 20 20 20 41 67 61 69 6E 20 20 74 68 65 74 ). Again thet
001B50: 68 65 20 20 72 65 73 75 6C 74 20 69 73 20 68 65 he result is he
001B60: 6C 64 20 69 6E 20 20 74 68 65 20 20 48 4C 20 72 ld in the HL r
001B70: 65 67 69 73 74 65 72 70 61 69 72 2C 20 20 61 6E egisterpair, an
001B80: 64 20 20 74 68 65 20 6F 74 68 65 72 20 20 72 65 d the other re
001B90: 67 69 73 74 65 72 20 20 70 61 69 72 20 69 73 75 gister pair isu
001BA0: 6E 61 66 66 65 63 74 65 64 2E A3 20 53 69 6E 67 naffected.£ Sing
001BB0: 6C 65 20 20 61 6E 64 20 20 64 6F 75 62 6C 65 20 le and double
001BC0: 20 72 65 67 69 73 74 65 72 20 61 64 64 69 74 69 register additi
001BD0: 6F 6E 73 77 69 6C 6C 20 20 6F 62 76 69 6F 75 73 onswill obvious
001BE0: 6C 79 20 20 6F 6E 6C 79 20 20 67 69 76 65 20 20 ly only give
001BF0: 74 68 65 20 63 6F 72 72 65 63 74 72 65 73 75 6C the correctresul
001C00: 74 20 20 69 66 20 20 74 68 65 20 20 61 6E 73 77 t if the answ
001C10: 65 72 20 69 73 20 6C 65 73 73 20 74 68 61 6E 20 er is less than
001C20: 74 68 65 6D 61 78 69 6D 75 6D 20 6E 75 6D 62 65 themaximum numbe
001C30: 72 20 74 68 65 20 72 09 57 65 67 69 73 74 65 72 r the r.Wegister
001C40: 28 73 29 20 63 61 6E 20 68 6F 6C 64 2E 49 66 20 (s) can hold.If
001C50: 69 74 20 69 73 20 67 72 65 61 74 65 72 20 74 68 it is greater th
001C60: 61 6E 20 74 68 69 73 20 20 61 20 20 63 61 72 72 an this a carr
001C70: 79 20 20 69 73 67 65 6E 65 72 61 74 65 64 2E 20 y isgenerated.
001C80: 20 54 68 65 20 70 72 6F 63 65 73 73 6F 72 20 20 The processor
001C90: 20 68 6F 6C 64 73 20 20 20 74 68 69 73 73 69 6E holds thissin
001CA0: 67 6C 65 20 20 62 69 74 20 20 6F 66 20 20 69 6E gle bit of in
001CB0: 66 6F 72 6D 61 74 69 6F 6E 20 6F 72 20 66 6C 61 formation or fla
001CC0: 67 2C 20 73 6F 74 68 61 74 20 20 61 63 74 69 6F g, sothat actio
001CD0: 6E 20 20 20 63 61 6E 20 20 62 65 20 20 74 61 6B n can be tak
001CE0: 65 6E 20 20 6F 76 65 72 20 20 74 68 65 6F 63 63 en over theocc
001CF0: 75 72 72 65 6E 63 65 20 6F 66 20 74 68 65 20 63 urrence of the c
001D00: 61 72 72 79 2E 20 20 20 49 66 20 74 68 65 72 65 arry. If there
001D10: 20 20 68 61 73 62 65 65 6E 20 20 61 20 20 63 61 hasbeen a ca
001D20: 72 72 79 20 20 6F 6E 20 20 74 68 65 20 20 6C 61 rry on the la
001D30: 73 74 20 61 72 69 74 68 6D 1E 0E 65 74 69 63 6F st arithm..etico
001D40: 70 65 72 61 74 69 6F 6E 20 74 68 65 20 63 61 72 peration the car
001D50: 72 79 20 69 73 20 73 61 69 64 20 74 6F 20 62 65 ry is said to be
001D60: 20 73 65 74 20 74 6F 61 20 20 22 31 22 20 2E 20 set toa "1" .
001D70: 20 49 66 20 6E 6F 74 20 73 65 74 20 20 69 74 20 If not set it
001D80: 69 73 20 73 61 69 64 20 74 6F 20 62 65 20 61 22 is said to be a"
001D90: 30 22 2E A0 A0 20 41 20 73 65 63 6F 6E 64 20 66 0"... A second f
001DA0: 6F 72 6D 20 6F 66 20 61 64 64 69 74 69 6F 6E 20 orm of addition
001DB0: 69 73 20 20 61 76 61 69 6C 61 62 6C 65 6F 6E 20 is availableon
001DC0: 20 74 68 65 20 20 5A 38 30 20 2C 20 20 20 66 6F the Z80 , fo
001DD0: 72 20 20 20 62 6F 74 68 20 20 73 69 6E 67 6C 65 r both single
001DE0: 20 20 61 6E 64 6D 75 6C 74 69 70 6C 65 20 72 65 andmultiple re
001DF0: 67 69 73 74 65 72 73 2C 20 20 6B 6E 6F 77 6E 20 gisters, known
001E00: 20 61 73 20 20 61 64 64 20 77 69 74 68 63 61 72 as add withcar
001E10: 72 79 3B 20 20 61 62 62 72 65 76 69 61 74 65 64 ry; abbreviated
001E20: 20 20 74 6F 20 20 41 44 43 2E 20 20 20 54 68 65 to ADC. The
001E30: 79 20 61 72 65 73 69 6D 69 6C 61 BC 0A 72 20 74 y aresimila..r t
001E40: 6F 20 41 44 44 20 20 65 78 63 65 70 74 20 74 68 o ADD except th
001E50: 61 74 20 69 66 20 74 68 65 20 43 61 72 72 79 66 at if the Carryf
001E60: 6C 61 67 20 20 69 73 20 20 73 65 74 20 20 62 65 lag is set be
001E70: 66 6F 72 65 20 20 74 68 65 20 20 61 64 64 69 74 fore the addit
001E80: 69 6F 6E 20 74 68 65 72 65 73 75 6C 74 20 69 73 ion theresult is
001E90: 20 20 69 6E 63 72 65 6D 65 6E 74 65 64 20 20 20 incremented
001EA0: 62 79 20 20 20 6F 6E 65 2E 20 20 20 41 6C 6C 70 by one. Allp
001EB0: 72 65 76 69 6F 75 73 6C 79 20 6D 65 6E 74 69 6F reviously mentio
001EC0: 6E 65 64 20 20 20 41 44 44 20 20 69 6E 73 74 72 ned ADD instr
001ED0: 75 63 74 69 6F 6E 73 63 61 6E 20 62 65 20 70 65 uctionscan be pe
001EE0: 72 66 6F 72 6D 65 64 20 61 73 20 41 44 43 2E A3 rformed as ADC.£
001EF0: 20 41 44 43 20 69 6E 73 74 72 75 63 74 69 6F 6E ADC instruction
001F00: 73 20 63 61 6E 20 62 65 20 73 74 72 75 6E 67 20 s can be strung
001F10: 74 6F 67 65 74 68 65 72 74 6F 20 70 65 72 66 6F togetherto perfo
001F20: 72 6D 20 20 74 68 65 20 20 61 64 64 69 74 69 6F rm the additio
001F30: 6E 20 6F 66 20 74 77 6F 20 6E 75 6D 62 B0 D5 65 n of two numb..e
001F40: 72 73 6F 66 20 61 6E 79 20 20 6C 65 6E 67 74 68 rsof any length
001F50: 2C 20 20 61 73 20 20 74 68 65 20 20 65 78 61 6D , as the exam
001F60: 70 6C 65 73 20 20 77 69 6C 6C 73 68 6F 77 2E A3 ples willshow.£
001F70: 20 20 20 53 75 6D 6D 61 72 79 20 2D 20 20 61 64 Summary - ad
001F80: 64 69 74 69 6F 6E A0 A0 41 44 44 20 41 2C 6E 20 dition..ADD A,n
001F90: 20 20 20 77 68 65 72 65 20 6E 20 69 73 20 61 20 where n is a
001FA0: 6E 75 6D 62 65 72 20 30 20 2D 20 32 35 35 A0 A0 number 0 - 255..
001FB0: 41 44 44 20 41 2C 72 20 20 20 20 77 68 65 72 65 ADD A,r where
001FC0: 20 20 72 20 20 69 73 20 20 61 6E 79 20 20 20 73 r is any s
001FD0: 69 6E 67 6C 65 A0 20 20 20 20 20 20 20 20 20 20 ingle.
001FE0: 20 72 65 67 69 73 74 65 72 A0 41 44 44 20 41 2C register.ADD A,
001FF0: 28 48 4C 29 A0 A0 41 44 44 20 48 4C 2C 42 43 A0 (HL)..ADD HL,BC.
002000: 41 44 44 20 48 4C 2C 44 45 A0 A0 A0 41 44 43 20 ADD HL,DE...ADC
002010: 41 2C 6E A0 A0 41 44 43 20 41 2C 72 A0 A0 41 44 A,n..ADC A,r..AD
002020: 43 20 41 2C 28 48 4C 29 A0 A0 41 44 43 20 48 4C C A,(HL)..ADC HL
002030: 2C 42 43 A0 41 44 43 20 48 4C 2C 44 45 A3 20 D2 ,BC.ADC HL,DE£ .
002040: AE 20 20 20 53 55 42 54 52 41 43 54 49 4F 4E 20 . SUBTRACTION
002050: 41 4E 44 20 54 48 45 20 43 41 52 52 59 20 46 4C AND THE CARRY FL
002060: 41 47 A0 A0 20 53 69 6E 67 6C 65 20 72 65 67 69 AG.. Single regi
002070: 73 74 65 72 20 73 75 62 74 72 61 63 74 69 6F 6E ster subtraction
002080: 20 74 61 6B 65 73 20 70 6C 61 63 65 77 69 74 68 takes placewith
002090: 20 74 68 65 20 41 63 63 75 6D 75 6C 61 74 6F 72 the Accumulator
0020A0: 2E 20 20 41 6C 6C 20 20 74 68 65 20 66 6F 72 6D . All the form
0020B0: 73 20 6F 66 41 44 44 20 20 63 61 6E 20 20 62 65 s ofADD can be
0020C0: 20 20 20 75 73 65 64 20 20 69 6E 20 20 20 73 75 used in su
0020D0: 62 74 72 61 63 74 2E 20 20 54 68 65 61 62 62 72 btract. Theabbr
0020E0: 65 76 69 61 74 69 6F 6E 20 20 6F 72 20 20 6D 6E eviation or mn
0020F0: 65 6D 6F 6E 69 63 20 53 55 42 20 69 73 20 61 6C emonic SUB is al
002100: 77 61 79 73 77 72 69 74 74 65 6E 20 77 69 74 68 wayswritten with
002110: 6F 75 74 20 74 68 65 20 41 2C 20 77 68 69 63 68 out the A, which
002120: 20 69 73 20 69 6D 70 6C 69 65 64 2E 48 65 6E 63 is implied.Henc
002130: 65 20 74 68 65 20 69 6E 73 74 72 75 63 74 69 6F e the instructio
002140: 6E FE 61 73 20 61 72 65 20 53 55 42 20 6E 2C 20 n.as are SUB n,
002150: 53 55 42 20 72 2C 61 6E 64 20 53 55 42 20 28 48 SUB r,and SUB (H
002160: 4C 29 2E 20 20 20 41 67 61 69 6E 20 74 68 65 20 L). Again the
002170: 72 65 73 75 6C 74 20 69 73 20 68 65 6C 64 69 6E result is heldin
002180: 20 74 68 65 20 41 63 63 75 6D 75 6C 61 74 6F 72 the Accumulator
002190: 2E 20 20 20 54 68 65 20 20 63 61 72 72 79 20 66 . The carry f
0021A0: 6C 61 67 20 69 73 73 65 74 20 74 6F 20 61 20 22 lag isset to a "
0021B0: 31 22 20 20 69 66 20 74 68 65 20 20 72 65 73 75 1" if the resu
0021C0: 6C 74 20 69 73 20 20 6F 75 74 73 69 64 65 74 68 lt is outsideth
0021D0: 65 20 72 61 6E 67 65 20 20 30 20 2D 20 32 35 35 e range 0 - 255
0021E0: 2E A0 A0 54 68 65 72 65 20 20 61 72 65 20 20 20 ...There are
0021F0: 6E 6F 20 20 64 6F 75 62 6C 65 20 20 20 72 65 67 no double reg
002200: 69 73 74 65 72 20 20 20 53 55 42 69 6E 73 74 72 ister SUBinstr
002210: 75 63 74 69 6F 6E 73 2E A0 A0 41 6C 6C 20 20 63 uctions...All c
002220: 6F 6E 66 69 67 75 72 61 74 69 6F 6E 73 20 6F 66 onfigurations of
002230: 20 20 41 44 43 20 69 6E 73 74 72 75 63 74 69 6F ADC instructio
002240: 6E 73 63 B4 83 61 6E 20 62 65 20 75 73 65 64 20 nsc..an be used
002250: 20 77 69 74 68 20 53 42 43 20 6F 72 20 20 53 75 with SBC or Su
002260: 42 74 72 61 63 74 20 20 77 69 74 68 43 61 72 72 Btract withCarr
002270: 79 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 2E y instructions.
002280: 20 20 54 68 65 20 6F 70 65 72 61 74 69 6F 6E 20 The operation
002290: 20 20 69 73 73 69 6D 69 6C 61 72 20 74 6F 20 53 issimilar to S
0022A0: 55 42 2C 20 20 65 78 63 65 70 74 20 74 68 61 74 UB, except that
0022B0: 20 74 68 65 20 20 72 65 73 75 6C 74 69 73 20 64 the resultis d
0022C0: 65 63 72 65 6D 65 6E 74 65 64 20 20 62 79 20 6F ecremented by o
0022D0: 6E 65 20 69 66 20 74 68 65 20 63 61 72 72 79 20 ne if the carry
0022E0: 66 6C 61 67 69 73 20 73 65 74 2E A3 20 4C 69 6B flagis set.£ Lik
0022F0: 65 20 20 41 44 43 20 69 6E 73 74 72 75 63 74 69 e ADC instructi
002300: 6F 6E 73 20 53 42 43 20 69 6E 73 74 72 75 63 74 ons SBC instruct
002310: 69 6F 6E 73 63 61 6E 20 62 65 20 20 73 74 72 75 ionscan be stru
002320: 6E 67 20 74 6F 67 65 74 68 65 72 20 74 6F 20 20 ng together to
002330: 73 75 62 74 72 61 63 74 20 61 6E 79 6C 65 6E 67 subtract anyleng
002340: 74 68 20 6E 75 17 A2 6D 62 65 72 2E A0 A0 20 53 th nu..mber... S
002350: 69 6E 63 65 20 20 64 6F 75 62 6C 65 20 72 65 67 ince double reg
002360: 69 73 74 65 72 20 20 73 75 62 74 72 61 63 74 69 ister subtracti
002370: 6F 6E 20 63 61 6E 6F 6E 6C 79 20 62 65 20 70 65 on canonly be pe
002380: 72 66 6F 72 6D 65 64 20 77 69 74 68 20 63 61 72 rformed with car
002390: 72 79 2C 20 20 74 68 65 20 73 74 61 74 65 6F 66 ry, the stateof
0023A0: 20 74 68 65 20 20 63 61 72 72 79 20 66 6C 61 67 the carry flag
0023B0: 20 20 70 72 69 6F 72 20 74 6F 20 20 53 42 43 20 prior to SBC
0023C0: 48 4C 2C 42 43 2C 61 6E 64 20 53 42 43 20 48 4C HL,BC,and SBC HL
0023D0: 2C 44 45 20 69 73 20 69 6D 70 6F 72 74 61 6E 74 ,DE is important
0023E0: 2C 20 20 61 6E 64 20 20 73 68 6F 75 6C 64 62 65 , and shouldbe
0023F0: 20 22 30 22 2E A0 20 54 68 65 20 63 61 72 72 79 "0".. The carry
002400: 20 66 6C 61 67 20 63 61 6E 20 62 65 20 73 65 74 flag can be set
002410: 20 74 6F 20 61 20 22 31 22 20 77 69 74 68 74 68 to a "1" withth
002420: 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 53 e instruction S
002430: 43 46 20 6F 72 20 53 65 74 20 43 61 72 72 79 20 CF or Set Carry
002440: 20 46 6C 61 67 2E 41 97 1B 6C 74 68 6F 75 67 68 Flag.A..lthough
002450: 20 20 20 74 68 65 72 65 20 20 20 61 72 65 20 20 there are
002460: 20 20 6E 6F 20 20 20 20 73 70 65 63 69 66 69 63 no specific
002470: 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 74 6F instructions to
002480: 20 63 6C 65 61 72 20 74 68 65 20 63 61 72 72 79 clear the carry
002490: 20 66 6C 61 67 20 74 6F 22 30 22 20 74 68 65 72 flag to"0" ther
0024A0: 65 20 69 73 20 61 6E 20 69 6E 73 74 72 75 63 74 e is an instruct
0024B0: 69 6F 6E 20 74 6F 20 69 6E 76 65 72 74 20 69 74 ion to invert it
0024C0: 43 43 46 20 6F 72 20 20 43 6F 6D 70 6C 69 6D 65 CCF or Complime
0024D0: 6E 74 20 43 61 72 72 79 20 46 6C 61 67 2E 20 20 nt Carry Flag.
0024E0: 57 65 20 73 68 61 6C 6C 73 65 65 20 6C 61 74 65 We shallsee late
0024F0: 72 20 74 68 61 74 20 61 6C 6C 20 6C 6F 67 69 63 r that all logic
002500: 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 64 6F instructions do
002510: 63 6C 65 61 72 20 74 68 65 20 63 61 72 72 79 20 clear the carry
002520: 66 6C 61 67 2E A3 20 53 55 4D 4D 41 52 59 20 2D flag.£ SUMMARY -
002530: 20 73 75 62 74 72 61 63 74 20 77 69 74 68 20 63 subtract with c
002540: 61 72 72 79 A0 A0 53 55 42 76 04 20 6E 20 20 20 arry..SUBv. n
002550: 20 20 29 A0 53 55 42 20 72 20 20 20 20 20 29 20 ).SUB r )
002560: 20 53 55 42 74 72 61 63 74 20 66 72 6F 6D 20 41 SUBtract from A
002570: 2C 20 6E 2C 20 72 2C 20 6F 72 A0 53 55 42 20 28 , n, r, or.SUB (
002580: 48 4C 29 20 20 29 20 20 20 20 20 20 20 20 20 20 HL) )
002590: 20 20 20 20 20 20 20 20 28 48 4C 29 A0 A0 53 42 (HL)..SB
0025A0: 43 20 41 2C 6E 20 20 20 29 A0 53 42 43 20 41 2C C A,n ).SBC A,
0025B0: 72 20 20 20 29 20 20 53 75 42 74 72 61 63 74 20 r ) SuBtract
0025C0: 66 72 6F 6D 20 41 20 20 77 69 74 68 20 63 61 72 from A with car
0025D0: 72 79 53 42 43 20 41 2C 28 48 4C 29 29 A0 A0 53 rySBC A,(HL))..S
0025E0: 42 43 20 48 4C 2C 42 43 20 29 20 20 53 75 42 74 BC HL,BC ) SuBt
0025F0: 72 61 63 74 20 66 72 6F 6D 20 48 4C 20 77 69 74 ract from HL wit
002600: 68 20 63 61 72 72 79 53 42 43 20 48 4C 2C 44 45 h carrySBC HL,DE
002610: 20 29 A0 A0 53 43 46 20 20 20 20 20 20 20 20 53 )..SCF S
002620: 65 74 20 43 61 72 72 79 20 46 6C 61 67 A0 43 43 et Carry Flag.CC
002630: 46 20 20 20 20 20 20 20 20 43 6F 6D 70 6C 69 6D F Complim
002640: 65 6E 74 20 43 61 72 72 79 20 46 1B 91 6C 61 67 ent Carry F..lag
002650: A3 20 20 49 4E 43 52 45 4D 45 4E 54 20 41 4E 44 £ INCREMENT AND
002660: 20 44 45 43 52 45 4D 45 4E 54 20 49 4E 53 54 52 DECREMENT INSTR
002670: 55 43 54 49 4F 4E 53 A0 A0 20 54 68 65 20 6C 61 UCTIONS.. The la
002680: 73 74 20 61 72 69 74 68 6D 65 74 69 63 20 69 6E st arithmetic in
002690: 73 74 72 75 63 74 69 6F 6E 73 20 74 6F 20 20 62 structions to b
0026A0: 65 64 69 73 63 75 73 73 65 64 20 63 61 6E 20 62 ediscussed can b
0026B0: 65 20 70 65 72 66 6F 72 6D 65 64 20 6F 6E 20 61 e performed on a
0026C0: 6E 79 20 73 69 6E 67 6C 65 6F 72 20 64 6F 75 62 ny singleor doub
0026D0: 6C 65 20 72 65 67 69 73 74 65 72 28 73 29 2E 20 le register(s).
0026E0: 54 68 65 73 65 20 61 72 65 20 49 4E 43 20 61 6E These are INC an
0026F0: 64 44 45 43 2E 20 20 49 4E 43 20 69 6E 63 72 65 dDEC. INC incre
002700: 6D 65 6E 74 73 20 28 6F 72 20 20 69 6E 63 72 65 ments (or incre
002710: 61 73 65 73 29 20 74 68 65 63 6F 6E 74 65 6E 74 ases) thecontent
002720: 73 20 20 6F 66 20 20 74 68 65 20 20 72 65 67 69 s of the regi
002730: 73 74 65 72 2C 20 20 6F 72 20 20 6D 65 6D 6F 72 ster, or memor
002740: 79 6C 6F 63 61 74 69 6F 6E 20 69 6E 64 85 87 69 ylocation ind..i
002750: 72 65 63 74 6C 79 20 20 61 64 64 72 65 73 73 65 rectly addresse
002760: 64 20 62 79 20 74 68 65 20 48 4C 72 65 67 69 73 d by the HLregis
002770: 74 65 72 20 70 61 69 72 2C 20 20 62 79 20 6F 6E ter pair, by on
002780: 65 2E 20 20 20 44 45 43 20 64 65 63 72 65 6D 65 e. DEC decreme
002790: 6E 74 73 28 20 6F 72 20 20 64 65 63 72 65 61 73 nts( or decreas
0027A0: 65 73 20 29 20 20 74 68 65 20 20 63 6F 6E 74 65 es ) the conte
0027B0: 6E 74 73 20 20 6F 66 20 74 68 65 72 65 67 69 73 nts of theregis
0027C0: 74 65 72 20 6F 72 20 20 6D 65 6D 6F 72 79 20 20 ter or memory
0027D0: 6C 6F 63 61 74 69 6F 6E 20 69 6E 64 69 72 65 63 location indirec
0027E0: 74 6C 79 61 64 64 72 65 73 73 65 64 20 62 79 20 tlyaddressed by
0027F0: 74 68 65 20 20 48 4C 20 72 65 67 69 73 74 65 72 the HL register
002800: 20 20 70 61 69 72 2C 20 20 62 79 20 54 68 65 20 pair, by The
002810: 20 63 61 72 72 79 20 20 66 6C 61 67 20 20 69 73 carry flag is
002820: 20 20 6E 6F 74 20 20 61 66 66 65 63 74 65 64 20 not affected
002830: 20 62 79 65 69 74 68 65 72 20 6F 66 20 74 68 65 byeither of the
002840: 73 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 8B se instructions.
002850: 0B 2E A0 A0 20 54 68 65 73 65 20 69 6E 73 74 72 .... These instr
002860: 75 63 74 69 6F 6E 73 20 20 61 72 65 20 20 70 72 uctions are pr
002870: 69 6D 61 72 69 6C 79 20 75 73 65 64 77 68 65 72 imarily usedwher
002880: 65 20 20 20 63 6F 75 6E 74 65 72 73 20 20 20 61 e counters a
002890: 72 65 20 20 20 72 65 71 75 69 72 65 64 2E 20 20 re required.
0028A0: 20 54 68 65 6F 70 65 72 61 74 69 6F 6E 20 20 6F Theoperation o
0028B0: 6E 20 20 72 65 67 69 73 74 65 72 20 20 70 61 69 n register pai
0028C0: 72 73 20 20 69 73 20 20 61 6C 73 6F 75 73 65 66 rs is alsousef
0028D0: 75 6C 20 20 69 6E 20 20 20 73 65 71 75 65 6E 74 ul in sequent
0028E0: 69 61 6C 20 20 6F 70 65 72 61 74 69 6F 6E 73 20 ial operations
0028F0: 20 20 6F 6E 6D 65 6D 6F 72 79 20 20 20 6C 6F 63 onmemory loc
002900: 61 74 69 6F 6E 73 20 20 75 74 69 6C 69 73 69 6E ations utilisin
002910: 67 20 20 20 69 6E 64 69 72 65 63 74 61 64 64 72 g indirectaddr
002920: 65 73 73 69 6E 67 2E A3 20 53 75 6D 6D 61 72 79 essing.£ Summary
002930: 20 2D 20 69 6E 63 72 65 6D 65 6E 74 20 61 6E 64 - increment and
002940: 20 64 65 63 72 65 6D 65 6E 74 A0 A0 49 4E 43 20 decrement..INC
002950: 72 FD EF A0 49 4E 43 20 28 48 4C 29 A0 49 4E 43 r...INC (HL).INC
002960: 20 64 64 A0 A0 44 45 43 20 72 A0 44 45 43 20 28 dd..DEC r.DEC (
002970: 48 4C 29 A0 44 45 43 20 64 64 A3 20 20 20 20 20 HL).DEC dd£
002980: 20 20 20 20 20 20 54 48 45 20 5A 45 52 4F 20 46 THE ZERO F
002990: 4C 41 47 A0 A0 20 41 6E 6F 74 68 65 72 20 20 76 LAG.. Another v
0029A0: 65 72 79 20 20 75 73 65 66 75 6C 20 20 66 6C 61 ery useful fla
0029B0: 67 20 69 6E 63 6C 75 64 65 64 20 69 6E 61 6C 6C g included inall
0029C0: 20 20 70 72 6F 63 65 73 73 6F 72 73 20 69 73 20 processors is
0029D0: 20 74 68 65 20 5A 65 72 6F 20 66 6C 61 67 2E 20 the Zero flag.
0029E0: 20 54 68 69 73 66 6C 61 67 20 69 73 20 73 65 74 Thisflag is set
0029F0: 20 74 6F 20 22 31 22 20 20 69 66 20 74 68 65 20 to "1" if the
002A00: 72 65 73 75 6C 74 20 6F 66 20 61 6E 79 73 69 6E result of anysin
002A10: 67 6C 65 20 72 65 67 69 73 74 65 72 20 61 72 69 gle register ari
002A20: 74 68 6D 65 74 69 63 20 6F 70 65 72 61 74 69 6F thmetic operatio
002A30: 6E 20 20 69 73 7A 65 72 6F 2E 20 4F 74 68 65 72 n iszero. Other
002A40: 77 69 73 65 20 69 74 20 69 73 20 63 6C 65 61 72 wise it is clear
002A50: 65 64 20 6E 3A 74 6F 20 22 30 22 2E A0 A0 20 49 ed n:to "0"... I
002A60: 74 20 69 73 20 20 6F 6E 6C 79 20 61 66 66 65 63 t is only affec
002A70: 74 65 64 20 62 79 20 64 6F 75 62 6C 65 20 72 65 ted by double re
002A80: 67 69 73 74 65 72 61 72 69 74 68 6D 65 74 69 63 gisterarithmetic
002A90: 20 20 20 6F 70 65 72 61 74 69 6F 6E 73 20 20 20 operations
002AA0: 69 6E 76 6F 6C 76 69 6E 67 20 20 74 68 65 63 61 involving theca
002AB0: 72 72 79 20 20 66 6C 61 67 20 2C 20 20 20 69 2E rry flag , i.
002AC0: 65 2E 20 20 6F 6E 6C 79 20 20 61 66 66 65 63 74 e. only affect
002AD0: 65 64 20 20 62 79 41 44 43 20 48 4C 2C 64 64 20 ed byADC HL,dd
002AE0: 20 6F 72 20 20 53 42 43 20 48 4C 2C 64 64 2E A0 or SBC HL,dd..
002AF0: A0 20 54 68 65 20 20 7A 65 72 6F 20 66 6C 61 67 . The zero flag
002B00: 2C 20 6C 69 6B 65 20 74 68 65 20 63 61 72 72 79 , like the carry
002B10: 20 66 6C 61 67 2C 20 69 73 75 6E 61 66 66 65 63 flag, isunaffec
002B20: 74 65 64 20 62 79 20 61 6E 79 20 4C 44 20 6F 72 ted by any LD or
002B30: 20 45 58 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 EX instructions
002B40: 2E A3 20 53 75 6D 6D 61 72 79 20 2D 20 7A 65 72 .£ Summary - zer
002B50: 6F 20 61 6E 64 45 C9 20 63 61 72 72 79 20 66 6C o andE. carry fl
002B60: 61 67 73 A0 A0 69 6E 73 74 72 75 63 74 69 6F 6E ags..instruction
002B70: 20 20 20 20 20 20 43 61 72 72 79 20 20 20 20 20 Carry
002B80: 20 20 20 5A 65 72 6F A0 20 20 20 20 20 20 20 20 Zero.
002B90: 20 20 20 20 20 20 20 20 72 20 20 20 20 64 64 20 r dd
002BA0: 20 20 20 20 20 72 20 20 20 64 64 A0 A0 20 20 4C r dd.. L
002BB0: 44 20 20 20 20 20 20 20 20 20 20 20 20 2E 20 20 D .
002BC0: 20 20 20 2E 20 20 20 20 20 20 2E 20 20 20 20 2E . . .
002BD0: A0 20 20 45 58 20 20 20 20 20 20 20 20 20 20 20 . EX
002BE0: 6E 2F 76 20 20 20 20 2E 20 20 20 20 20 6E 2F 76 n/v . n/v
002BF0: 20 20 20 2E A0 A0 20 20 41 44 44 20 20 20 20 20 ... ADD
002C00: 20 20 20 20 20 20 2A 20 20 20 20 20 2A 20 20 20 * *
002C10: 20 20 20 2A 20 20 20 20 2E A0 20 20 41 44 43 20 * .. ADC
002C20: 20 20 20 20 20 20 20 20 20 20 2A 20 20 20 20 20 *
002C30: 2A 20 20 20 20 20 20 2A 20 20 20 20 2A A0 20 20 * * *.
002C40: 53 55 42 20 20 20 20 20 20 20 20 20 20 20 2A 20 SUB *
002C50: 20 20 20 6E 2F 76 20 7E E1 20 20 20 20 2A 20 20 n/v ~. *
002C60: 20 6E 2F 76 A0 20 20 53 42 43 20 20 20 20 20 20 n/v. SBC
002C70: 20 20 20 20 20 2A 20 20 20 20 20 2A 20 20 20 20 * *
002C80: 20 20 2A 20 20 20 20 2A A0 A0 20 20 49 4E 43 20 * *.. INC
002C90: 20 20 20 20 20 20 20 20 20 20 2E 20 20 20 20 20 .
002CA0: 2E 20 20 20 20 20 20 2A 20 20 20 20 2E A0 20 20 . * ..
002CB0: 44 45 43 20 20 20 20 20 20 20 20 20 20 20 2E 20 DEC .
002CC0: 20 20 20 20 2E 20 20 20 20 20 20 2A 20 20 20 20 . *
002CD0: 2E A0 A0 A0 72 20 73 69 6E 67 6C 65 20 72 65 67 ....r single reg
002CE0: 69 73 74 65 72 20 20 20 64 64 20 20 64 6F 75 62 ister dd doub
002CF0: 6C 65 20 72 65 67 69 73 74 65 72 20 A0 2A 20 66 le register .* f
002D00: 6C 61 67 20 61 66 66 65 63 74 65 64 20 20 20 20 lag affected
002D10: 20 20 2E 20 66 6C 61 67 20 6E 6F 74 20 61 66 66 . flag not aff
002D20: 65 63 74 65 64 A0 20 20 20 20 20 6E 2F 76 20 20 ected. n/v
002D30: 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 6E 6F instruction no
002D40: 74 20 76 61 6C 69 64 A3 20 20 20 20 20 20 20 20 t valid£
002D50: 20 20 20 20 4C 65 73 73 6F 27 D5 6E 73 20 31 20 Lesso'.ns 1
002D60: 2D 20 39 A0 A0 20 31 2E 20 20 52 65 67 69 73 74 - 9.. 1. Regist
002D70: 65 72 73 20 61 6E 64 20 4D 65 6D 6F 72 79 A0 20 ers and Memory.
002D80: 32 2E 20 20 53 69 6D 70 6C 65 20 4C 6F 61 64 20 2. Simple Load
002D90: 49 6E 73 74 72 75 63 74 69 6F 6E 73 A0 20 20 20 Instructions.
002DA0: 20 20 20 20 20 20 45 78 20 2D 20 73 69 6D 70 6C Ex - simpl
002DB0: 65 20 6C 6F 61 64 20 69 6E 73 74 72 75 63 74 69 e load instructi
002DC0: 6F 6E 73 A0 20 33 2E 20 20 52 65 67 69 73 74 65 ons. 3. Registe
002DD0: 72 20 50 61 69 72 73 A0 20 20 20 20 20 20 20 20 r Pairs.
002DE0: 20 45 78 20 2D 20 72 65 67 69 73 74 65 72 20 70 Ex - register p
002DF0: 61 69 72 20 6C 6F 61 64 69 6E 67 A0 20 34 2E 20 air loading. 4.
002E00: 20 49 6E 64 69 72 65 63 74 20 41 64 64 72 65 73 Indirect Addres
002E10: 73 69 6E 67 A0 20 20 20 20 20 20 20 20 20 45 78 sing. Ex
002E20: 20 2D 20 69 6E 64 69 72 65 63 74 20 61 64 64 72 - indirect addr
002E30: 65 73 73 69 6E 67 A0 20 35 2E 20 20 41 64 64 69 essing. 5. Addi
002E40: 74 69 6F 6E 20 61 6E 64 20 74 68 65 20 43 61 72 tion and the Car
002E50: 72 79 20 46 6C 61 67 A0 20 20 20 E0 A4 20 20 20 ry Flag. ..
002E60: 20 20 20 45 78 20 2D 20 73 69 6E 67 6C 65 20 72 Ex - single r
002E70: 65 67 69 73 74 65 72 20 61 64 64 69 74 69 6F 6E egister addition
002E80: A0 20 20 20 20 20 20 20 20 20 45 78 20 2D 20 72 . Ex - r
002E90: 65 67 69 73 74 65 72 20 70 61 69 72 20 61 64 64 egister pair add
002EA0: 69 74 69 6F 6E A0 20 36 2E 20 20 53 75 62 74 72 ition. 6. Subtr
002EB0: 61 63 74 69 6F 6E 20 61 6E 64 20 74 68 65 20 43 action and the C
002EC0: 61 72 72 79 20 46 6C 61 67 A0 20 20 20 20 20 20 arry Flag.
002ED0: 20 20 20 45 78 20 2D 20 72 65 67 69 73 74 65 72 Ex - register
002EE0: 20 73 75 62 74 72 61 63 74 69 6F 6E A0 20 20 20 subtraction.
002EF0: 20 20 20 20 20 20 45 78 20 2D 20 72 65 67 69 73 Ex - regis
002F00: 74 65 72 20 70 61 69 72 20 73 75 62 74 72 61 63 ter pair subtrac
002F10: 74 69 6F 6E A0 20 37 2E 20 20 49 6E 63 72 65 6D tion. 7. Increm
002F20: 65 6E 74 20 61 6E 64 20 44 65 63 72 65 6D 65 6E ent and Decremen
002F30: 74 A0 20 20 20 20 20 20 20 20 20 45 78 20 2D 20 t. Ex -
002F40: 69 6E 63 20 61 6E 64 20 64 65 63 20 69 6E 73 74 inc and dec inst
002F50: 72 75 63 74 69 6F 6E 73 A0 20 38 2E 20 2C 0F 20 ructions. 8. ,.
002F60: 5A 65 72 6F 20 46 6C 61 67 A0 20 20 20 20 20 20 Zero Flag.
002F70: 20 20 20 45 78 20 2D 20 7A 65 72 6F 20 66 6C 61 Ex - zero fla
002F80: 67 A0 20 39 2E 20 20 43 6F 6D 70 61 72 65 A0 20 g. 9. Compare.
002F90: 20 20 20 20 20 20 45 78 20 2D 20 63 6F 6D 70 61 Ex - compa
002FA0: 72 69 73 6F 6E 20 69 6E 73 74 72 75 63 74 69 6F rison instructio
002FB0: 6E 73 A0 20 4C 6F 61 64 20 66 75 72 74 68 65 72 ns. Load further
002FC0: 20 6C 65 73 73 6F 6E 73 20 66 72 6F 6D 20 74 61 lessons from ta
002FD0: 70 65 A3 20 20 20 20 20 20 20 20 20 20 20 49 4E pe£ IN
002FE0: 54 52 4F 44 55 43 54 49 4F 4E A0 A0 20 54 68 65 TRODUCTION.. The
002FF0: 20 20 5A 38 30 20 69 73 20 20 74 68 65 20 6D 69 Z80 is the mi
003000: 63 72 6F 70 72 6F 63 65 73 73 6F 72 20 20 61 74 croprocessor at
003010: 20 74 68 65 68 65 61 72 74 20 6F 66 20 79 6F 75 theheart of you
003020: 72 20 41 6D 73 74 72 61 64 2E 20 54 68 69 73 20 r Amstrad. This
003030: 70 72 6F 67 72 61 6D 20 77 69 6C 6C 74 65 61 63 program willteac
003040: 68 20 20 20 79 6F 75 20 20 20 74 68 65 20 20 20 h you the
003050: 75 73 65 20 20 20 6F 66 20 20 20 61 6C 6C 20 86 use of all .
003060: A3 20 20 74 68 65 69 6E 73 74 72 75 63 74 69 6F £ theinstructio
003070: 6E 73 20 61 76 61 69 6C 61 62 6C 65 20 20 6F 6E ns available on
003080: 20 20 74 68 65 20 5A 38 30 2C 20 20 69 6E 61 20 the Z80, ina
003090: 73 65 72 69 65 73 20 6F 66 20 73 69 6D 70 6C 65 series of simple
0030A0: 20 20 70 72 6F 67 72 65 73 73 69 76 65 20 6C 65 progressive le
0030B0: 73 73 6F 6E 73 2E A0 20 20 41 66 74 65 72 20 20 ssons.. After
0030C0: 65 61 63 68 20 20 20 6C 65 73 73 6F 6E 2C 20 20 each lesson,
0030D0: 20 73 74 65 70 20 20 62 79 20 20 73 74 65 70 65 step by stepe
0030E0: 78 61 6D 70 6C 65 73 20 61 72 65 20 67 69 76 65 xamples are give
0030F0: 6E 2E 20 20 54 6F 20 66 75 72 74 68 65 72 20 20 n. To further
003100: 69 6D 70 72 6F 76 65 79 6F 75 72 20 75 6E 64 65 improveyour unde
003110: 72 73 74 61 6E 64 69 6E 67 20 6F 66 20 74 68 65 rstanding of the
003120: 20 74 6F 70 69 63 2C 20 79 6F 75 20 6D 61 79 74 topic, you mayt
003130: 68 65 6E 20 6D 6F 64 69 66 79 20 6F 72 20 72 65 hen modify or re
003140: 77 72 69 74 65 20 74 68 65 20 65 78 61 6D 70 6C write the exampl
003150: 65 73 2C 20 61 6E 64 72 75 6E 20 74 68 65 6D 20 es, andrun them
003160: 20 70 D6 77 69 74 68 6F 75 74 20 20 66 65 61 72 p.without fear
003170: 20 6F 66 20 20 63 72 61 73 68 69 6E 67 20 74 68 of crashing th
003180: 65 73 79 73 74 65 6D 2E A0 A0 20 50 72 6F 63 65 esystem... Proce
003190: 65 64 20 20 74 68 72 6F 75 67 68 20 20 74 68 65 ed through the
0031A0: 20 6D 65 6E 75 20 62 79 20 20 70 72 65 73 73 69 menu by pressi
0031B0: 6E 67 45 4E 54 45 52 20 74 6F 20 62 65 67 69 6E ngENTER to begin
0031C0: 20 74 68 65 20 68 69 67 68 6C 69 67 68 74 65 64 the highlighted
0031D0: 20 6C 65 73 73 6F 6E 20 6F 72 65 78 61 6D 70 6C lesson orexampl
0031E0: 65 2C 20 61 6E 64 20 20 53 50 41 43 45 20 74 6F e, and SPACE to
0031F0: 20 6A 75 6D 70 20 74 6F 20 74 68 65 20 6E 65 78 jump to the nex
003200: 74 2E 41 74 20 61 6E 79 74 69 6D 65 20 42 52 45 t.At anytime BRE
003210: 41 4B 20 77 69 6C 6C 20 72 65 74 75 72 6E 20 79 AK will return y
003220: 6F 75 20 20 74 6F 20 74 68 65 6D 65 6E 75 2E A3 ou to themenu.£
003230: 20 20 20 20 49 4E 54 52 4F 44 55 43 54 49 4F 4E INTRODUCTION
003240: 20 54 4F 20 52 55 4E 4E 49 4E 47 20 53 49 4D 55 TO RUNNING SIMU
003250: 4C 41 54 4F 52 A0 A0 20 41 6C 6C 20 20 20 65 78 LATOR.. All ex
003260: 61 6D 70 72 6A 6C 65 73 20 20 20 61 72 65 20 20 amprjles are
003270: 20 72 75 6E 20 20 20 75 73 69 6E 67 20 20 74 68 run using th
003280: 65 53 69 6D 75 6C 61 74 6F 72 2E 20 41 74 20 74 eSimulator. At t
003290: 68 69 73 20 73 74 61 67 65 20 74 68 65 20 6F 6E his stage the on
0032A0: 6C 79 20 20 61 72 65 61 73 6F 66 20 74 68 65 20 ly areasof the
0032B0: 73 69 6D 75 6C 61 74 6F 72 20 73 63 72 65 65 6E simulator screen
0032C0: 20 74 6F 20 63 6F 6E 73 69 64 65 72 20 20 61 72 to consider ar
0032D0: 65 74 68 65 20 53 6F 75 72 63 65 20 20 43 6F 64 ethe Source Cod
0032E0: 65 20 28 20 74 68 65 20 74 68 69 72 64 20 63 6F e ( the third co
0032F0: 6C 75 6D 6E 20 74 68 61 74 68 6F 6C 64 73 20 74 lumn thatholds t
003300: 68 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 he instructions
003310: 29 20 61 6E 64 20 74 68 65 20 61 72 65 61 20 61 ) and the area a
003320: 74 74 68 65 20 62 6F 74 74 6F 6D 20 6F 66 20 74 tthe bottom of t
003330: 68 65 20 73 63 72 65 65 6E 2C 20 77 68 69 63 68 he screen, which
003340: 20 64 69 73 70 6C 61 79 73 74 68 65 20 63 6F 6E displaysthe con
003350: 74 65 6E 74 73 20 20 6F 66 20 20 74 68 65 20 20 tents of the
003360: 72 65 67 69 73 76 25 74 65 72 73 2E 20 20 4F 74 regisv%ters. Ot
003370: 68 65 72 61 72 65 61 73 20 20 77 69 6C 6C 20 20 herareas will
003380: 62 65 20 20 64 65 73 63 72 69 62 65 64 20 20 61 be described a
003390: 73 20 20 74 68 65 79 20 61 72 65 72 65 71 75 69 s they arerequi
0033A0: 72 65 64 2E A0 A0 20 54 68 65 20 61 73 73 65 6D red... The assem
0033B0: 62 6C 65 72 2C 20 74 68 61 74 20 63 6F 6E 76 65 bler, that conve
0033C0: 72 74 73 20 20 69 6E 73 74 72 75 63 74 2D 69 6F rts instruct-io
0033D0: 6E 73 20 20 69 6E 74 6F 20 20 20 6D 61 63 68 69 ns into machi
0033E0: 6E 65 20 20 63 6F 64 65 2C 20 77 69 6C 6C 20 20 ne code, will
0033F0: 61 63 63 65 70 74 4C 61 62 65 6C 73 2E 20 49 6E acceptLabels. In
003400: 73 74 65 61 64 20 20 6F 66 20 20 70 75 74 74 69 stead of putti
003410: 6E 67 20 20 61 6E 20 61 64 64 72 65 73 73 69 6E ng an addressin
003420: 74 6F 20 74 68 65 20 70 72 6F 67 72 61 6D 2C 20 to the program,
003430: 77 65 20 63 61 6E 20 67 69 76 65 20 69 74 20 61 we can give it a
003440: 20 6E 61 6D 65 2E 54 68 65 20 20 61 73 73 65 6D name.The assem
003450: 62 6C 65 72 20 20 77 69 6C 6C 20 20 20 74 68 65 bler will the
003460: 6E 20 20 61 6C 6C 6F A2 A1 63 61 74 65 20 20 61 n allo..cate a
003470: 6D 65 6D 6F 72 79 20 20 6C 6F 63 61 74 69 6F 6E memory location
003480: 20 74 6F 20 69 74 2E 20 54 68 65 20 6E 61 6D 65 to it. The name
003490: 20 6D 75 73 74 20 62 65 63 61 6C 6C 65 64 20 20 must becalled
0034A0: 75 70 20 20 69 6E 20 20 74 68 65 20 20 70 72 6F up in the pro
0034B0: 67 72 61 6D 20 20 77 69 74 68 20 20 20 69 74 73 gram with its
0034C0: 69 6E 69 74 69 61 6C 20 63 6F 6E 64 69 74 69 6F initial conditio
0034D0: 6E 20 75 73 69 6E 67 20 20 74 68 65 20 69 6E 73 n using the ins
0034E0: 74 72 75 63 74 69 6F 6E 44 45 46 42 2C 20 44 45 tructionDEFB, DE
0034F0: 46 69 6E 65 20 42 79 74 65 2E A3 20 44 45 46 42 Fine Byte.£ DEFB
003500: 20 69 73 20 61 6E 20 20 61 73 73 65 6D 62 6C 65 is an assemble
003510: 72 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 6E 6F r instruction no
003520: 74 20 61 5A 38 30 20 20 69 6E 73 74 72 75 63 74 t aZ80 instruct
003530: 69 6F 6E 2E 20 20 54 68 65 20 61 6C 6C 6F 63 61 ion. The alloca
003540: 74 65 64 20 20 6D 65 6D 6F 72 79 61 64 64 72 65 ted memoryaddre
003550: 73 73 20 69 73 20 67 69 76 65 6E 20 69 6E 20 74 ss is given in t
003560: 68 65 20 66 69 72 73 74 20 A9 1C 63 6F 6C 75 6D he first ..colum
003570: 6E 2E A0 A0 20 54 68 65 20 73 69 6D 75 6C 61 74 n... The simulat
003580: 6F 72 20 77 69 6C 6C 20 64 69 73 70 6C 61 79 20 or will display
003590: 74 68 65 20 63 6F 6E 74 65 6E 74 73 6F 66 20 74 the contentsof t
0035A0: 68 69 73 20 20 6D 65 6D 6F 72 79 20 6C 6F 63 61 his memory loca
0035B0: 74 69 6F 6E 2C 20 69 6E 20 64 65 63 69 6D 61 6C tion, in decimal
0035C0: 2C 20 69 6E 74 68 65 20 73 65 63 6F 6E 64 20 63 , inthe second c
0035D0: 6F 6C 75 6D 6E 2E A0 A0 20 42 65 66 6F 72 65 20 olumn... Before
0035E0: 65 61 63 68 20 69 6E 73 74 72 75 63 74 69 6F 6E each instruction
0035F0: 20 69 73 20 65 78 65 63 75 74 65 64 20 74 68 65 is executed the
003600: 69 6E 73 74 72 75 63 74 69 6F 6E 20 69 73 20 64 instruction is d
003610: 65 73 63 72 69 62 65 64 20 69 6E 20 45 4E 47 4C escribed in ENGL
003620: 49 53 48 2E 20 54 72 79 74 6F 20 77 6F 72 6B 20 ISH. Tryto work
003630: 6F 75 74 20 77 68 61 74 20 20 73 68 6F 75 6C 64 out what should
003640: 20 20 68 61 70 70 65 6E 20 20 62 65 66 6F 72 65 happen before
003650: 70 72 65 73 73 69 6E 67 20 20 61 6E 79 20 20 6B pressing any k
003660: 65 79 20 20 20 74 6F 20 20 20 70 B9 CB 65 72 66 ey to p..erf
003670: 6F 72 6D 20 20 20 20 74 68 65 69 6E 73 74 72 75 orm theinstru
003680: 63 74 69 6F 6E 2E A3 20 59 6F 75 20 6D 61 79 20 ction.£ You may
003690: 67 6F 20 20 74 68 72 6F 75 67 68 20 74 68 65 20 go through the
0036A0: 65 78 61 6D 70 6C 65 20 61 73 20 6D 61 6E 79 74 example as manyt
0036B0: 69 6D 65 73 20 61 73 20 79 6F 75 20 6C 69 6B 65 imes as you like
0036C0: 2C 20 75 6E 74 69 6C 20 79 6F 75 20 20 75 6E 64 , until you und
0036D0: 65 72 73 74 61 6E 64 69 74 2E 20 49 66 20 79 6F erstandit. If yo
0036E0: 75 20 73 74 69 6C 6C 20 66 69 6E 64 20 20 64 69 u still find di
0036F0: 66 66 69 63 75 6C 74 79 2C 20 70 72 65 73 73 45 fficulty, pressE
003700: 53 43 2C 20 73 6B 69 70 20 20 6F 76 65 72 20 74 SC, skip over t
003710: 68 65 20 6C 65 73 73 6F 6E 73 20 61 6E 64 20 72 he lessons and r
003720: 65 2D 45 4E 54 45 52 74 68 65 20 6C 65 73 73 6F e-ENTERthe lesso
003730: 6E 20 20 77 69 74 68 20 77 68 69 63 68 20 20 79 n with which y
003740: 6F 75 20 20 61 72 65 20 20 68 61 76 69 6E 67 64 ou are havingd
003750: 69 66 66 69 63 75 6C 74 79 2E 20 54 68 65 20 6D ifficulty. The m
003760: 61 6E 75 61 6C 20 68 6F 77 65 76 65 72 8B D4 20 anual however..
003770: 20 67 69 76 65 73 20 61 6E 6F 75 74 6C 69 6E 65 gives anoutline
003780: 20 6F 66 20 65 61 63 68 20 6C 65 73 73 6F 6E 2E of each lesson.
003790: A0 A0 20 57 68 65 6E 20 20 79 6F 75 20 20 64 6F .. When you do
0037A0: 20 20 75 6E 64 65 72 73 74 61 6E 64 20 20 74 68 understand th
0037B0: 65 20 65 78 61 6D 70 6C 65 73 67 69 76 65 6E 20 e examplesgiven
0037C0: 20 74 72 79 20 20 6D 6F 64 69 66 79 69 6E 67 20 try modifying
0037D0: 20 74 68 65 6D 20 20 20 75 73 69 6E 67 20 20 74 them using t
0037E0: 68 65 65 64 69 74 6F 72 2E 20 20 54 68 65 6E 20 heeditor. Then
0037F0: 20 74 72 79 20 20 65 6E 74 65 72 69 6E 67 20 20 try entering
003800: 20 79 6F 75 72 20 20 6F 77 6E 70 72 6F 67 72 61 your ownprogra
003810: 6D 73 2E 20 20 41 6C 6C 20 20 70 72 6F 67 72 61 ms. All progra
003820: 6D 73 20 73 68 6F 75 6C 64 20 65 6E 64 20 77 69 ms should end wi
003830: 74 68 52 45 54 20 28 20 6F 72 20 72 65 74 75 72 thRET ( or retur
003840: 6E 20 29 2E 20 20 20 44 6F 6E 27 74 20 20 77 6F n ). Don't wo
003850: 72 72 79 20 69 66 20 79 6F 75 66 6F 72 67 65 74 rry if youforget
003860: 2C 20 74 68 65 20 73 69 6D 75 6C 61 74 6F 72 9A , the simulator.
003870: A7 20 77 69 6C 6C 20 74 65 6C 6C 20 79 6F 75 2E . will tell you.
003880: A0 A0 20 52 65 6D 65 6D 62 65 72 2C 20 20 69 74 .. Remember, it
003890: 20 20 69 73 20 20 20 69 6D 70 6F 73 73 69 62 6C is impossibl
0038A0: 65 20 20 66 6F 72 20 20 20 61 70 72 6F 67 72 61 e for aprogra
0038B0: 6D 20 74 6F 20 64 65 73 74 72 6F 79 20 79 6F 75 m to destroy you
0038C0: 72 20 63 6F 6D 70 75 74 65 72 2E 20 59 6F 75 27 r computer. You'
0038D0: 6C 6C 6E 65 65 64 20 61 20 68 61 6D 6D 65 72 20 llneed a hammer
0038E0: 74 6F 20 64 6F 20 74 68 61 74 21 A3 20 4C 44 20 to do that!£ LD
0038F0: 41 2C 33 34 A0 20 20 4C 44 20 42 2C 41 A0 20 20 A,34. LD B,A.
003900: 4C 44 20 28 33 38 36 37 29 2C 41 A0 20 20 4C 44 LD (3867),A. LD
003910: 20 41 2C 28 53 54 4F 52 45 29 A0 20 20 4C 44 20 A,(STORE). LD
003920: 28 33 38 36 37 29 2C 41 A0 20 20 4C 44 20 41 2C (3867),A. LD A,
003930: 42 A0 20 20 4C 44 20 28 53 54 4F 52 45 29 2C 41 B. LD (STORE),A
003940: A0 20 20 4C 44 20 43 2C 42 A0 20 20 4C 44 20 41 . LD C,B. LD A
003950: 2C 28 33 38 36 37 29 A0 20 20 4C 44 20 41 2C 36 ,(3867). LD A,6
003960: 37 A0 20 20 4C 44 20 28 33 38 36 36 29 2C 41 A0 7. LD (3866),A.
003970: 20 DF 86 20 52 45 54 A0 20 20 A0 20 53 54 4F 52 .. RET. . STOR
003980: 45 20 44 45 46 42 20 31 32 34 A0 20 20 44 45 46 E DEFB 124. DEF
003990: 42 20 30 A0 20 20 20 A0 20 20 20 20 20 20 20 20 B 0. .
0039A0: 20 52 45 47 49 53 54 45 52 20 50 41 49 52 20 45 REGISTER PAIR E
0039B0: 58 41 4D 50 4C 45 53 A0 A0 20 54 68 65 20 20 65 XAMPLES.. The e
0039C0: 78 61 6D 70 6C 65 20 69 6C 6C 75 73 74 72 61 74 xample illustrat
0039D0: 65 73 20 20 65 61 63 68 20 20 74 79 70 65 20 6F es each type o
0039E0: 66 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 74 68 finstruction th
0039F0: 61 74 20 20 6C 6F 61 64 73 20 72 65 67 69 73 74 at loads regist
003A00: 65 72 20 70 61 69 72 73 2E 49 74 20 61 6C 73 6F er pairs.It also
003A10: 20 20 64 65 6D 6F 6E 73 74 72 61 74 65 73 20 20 demonstrates
003A20: 74 68 61 74 20 61 20 20 72 65 67 69 73 74 65 72 that a register
003A30: 2F 6D 65 6D 6F 72 79 20 20 70 61 69 72 20 20 61 /memory pair a
003A40: 72 65 20 20 73 74 69 6C 6C 20 20 74 77 6F 20 69 re still two i
003A50: 6E 64 69 76 69 64 75 61 6C 72 65 67 69 73 74 65 ndividualregiste
003A60: 72 73 20 6F 72 20 6D 65 6D 6F 72 79 20 6C 6F 63 rs or memory loc
003A70: 61 74 69 56 30 6F 6E 73 20 61 6E 64 20 63 61 6E atiV0ons and can
003A80: 20 62 65 74 72 65 61 74 65 64 20 61 73 20 73 75 betreated as su
003A90: 63 68 2E A0 A0 20 41 6E 6F 74 68 65 72 20 20 20 ch... Another
003AA0: 20 61 73 73 65 6D 62 6C 65 72 20 20 20 20 69 6E assembler in
003AB0: 73 74 72 75 63 74 69 6F 6E 20 20 69 73 69 6E 74 struction isint
003AC0: 72 6F 64 75 63 65 64 2C 20 20 74 68 65 20 20 44 roduced, the D
003AD0: 45 46 57 20 20 69 6E 73 74 72 75 63 74 69 6F 6E EFW instruction
003AE0: 2E 20 54 68 65 61 73 73 65 6D 62 6C 65 72 20 61 . Theassembler a
003AF0: 6C 6C 6F 63 61 74 65 73 20 20 32 20 20 6D 65 6D llocates 2 mem
003B00: 6F 72 79 20 6C 6F 63 61 74 69 6F 6E 73 74 6F 20 ory locationsto
003B10: 74 68 65 20 20 61 73 73 6F 63 69 61 74 65 64 20 the associated
003B20: 20 6C 61 62 65 6C 2E 20 20 54 68 65 20 20 20 6E label. The n
003B30: 75 6D 62 65 72 61 66 74 65 72 20 20 74 68 65 20 umberafter the
003B40: 20 20 44 45 46 57 20 20 20 73 65 74 73 20 20 20 DEFW sets
003B50: 74 68 65 20 20 20 69 6E 69 74 69 61 6C 63 6F 6E the initialcon
003B60: 64 69 74 69 6F 6E 73 2E A0 A0 20 54 68 65 20 61 ditions... The a
003B70: 64 64 72 65 73 E1 1E 73 20 69 6E 20 74 68 65 20 ddres..s in the
003B80: 66 69 72 73 74 20 20 63 6F 6C 75 6D 6E 20 69 73 first column is
003B90: 20 74 68 65 6C 6F 77 20 20 62 79 74 65 20 61 64 thelow byte ad
003BA0: 64 72 65 73 73 2E 20 20 54 68 65 20 20 73 65 63 dress. The sec
003BB0: 6F 6E 64 20 20 20 63 6F 6C 75 6D 6E 64 69 73 70 ond columndisp
003BC0: 6C 61 79 73 20 20 74 68 65 20 20 63 6F 6E 74 65 lays the conte
003BD0: 6E 74 73 20 20 6F 66 20 20 74 68 65 20 70 61 69 nts of the pai
003BE0: 72 20 6F 66 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 r ofmemory locat
003BF0: 69 6F 6E 73 20 61 73 20 61 20 73 69 6E 67 6C 65 ions as a single
003C00: 20 6E 75 6D 62 65 72 2E A3 20 4C 44 20 44 45 2C number.£ LD DE,
003C10: 32 35 36 A0 20 20 4C 44 20 45 2C 34 A0 20 20 4C 256. LD E,4. L
003C20: 44 20 28 53 54 4F 52 45 29 2C 44 45 A0 20 20 4C D (STORE),DE. L
003C30: 44 20 28 4C 4F 57 29 2C 44 45 A0 20 20 4C 44 20 D (LOW),DE. LD
003C40: 41 2C 32 A0 20 20 4C 44 20 28 48 49 47 48 29 2C A,2. LD (HIGH),
003C50: 41 A0 20 20 4C 44 20 48 4C 2C 28 4C 4F 57 29 A0 A. LD HL,(LOW).
003C60: 20 20 45 58 20 44 45 2C 48 4C A0 20 20 4C 44 20 EX DE,HL. LD
003C70: 44 2C 30 A0 20 20 52 EC 57 45 54 A0 20 20 A0 20 D,0. R.WET. .
003C80: 53 54 4F 52 45 20 44 45 46 57 20 33 32 30 30 30 STORE DEFW 32000
003C90: A0 20 4C 4F 57 20 20 20 44 45 46 42 20 30 A0 20 . LOW DEFB 0.
003CA0: 48 49 47 48 20 20 44 45 46 42 20 30 A0 20 20 A0 HIGH DEFB 0. .
003CB0: 20 20 20 A0 20 20 20 20 20 45 58 41 4D 50 4C 45 . EXAMPLE
003CC0: 53 20 4F 46 20 49 4E 44 49 52 45 43 54 20 41 44 S OF INDIRECT AD
003CD0: 44 52 45 53 53 49 4E 47 A0 A0 20 20 54 68 65 73 DRESSING.. Thes
003CE0: 65 20 20 65 78 61 6D 70 6C 65 73 20 20 69 6C 6C e examples ill
003CF0: 75 73 74 72 61 74 65 20 20 20 69 6E 64 69 72 65 ustrate indire
003D00: 63 74 61 64 64 72 65 73 73 69 6E 67 2E 20 20 20 ctaddressing.
003D10: 41 74 20 20 20 74 68 69 73 20 20 20 73 74 61 67 At this stag
003D20: 65 20 20 69 74 20 20 20 69 73 69 6D 70 6F 73 73 e it isimposs
003D30: 69 62 6C 65 20 74 6F 20 20 64 65 6D 6F 6E 73 74 ible to demonst
003D40: 72 61 74 65 20 20 69 74 73 20 20 75 73 65 66 75 rate its usefu
003D50: 6C 2D 6E 65 73 73 2E 20 20 49 74 20 69 73 20 65 l-ness. It is e
003D60: 6D 70 6C 6F 79 65 64 20 65 78 74 65 6E 73 69 76 mployed extensiv
003D70: 65 20 69 6E 20 6C 61 74 65 0E B5 72 65 78 61 6D e in late..rexam
003D80: 70 6C 65 73 A3 20 4C 44 20 48 4C 2C 4C 4F 57 A0 ples£ LD HL,LOW.
003D90: 20 20 4C 44 20 43 2C 28 48 4C 29 A0 20 20 4C 44 LD C,(HL). LD
003DA0: 20 48 4C 2C 48 49 47 48 A0 20 20 4C 44 20 42 2C HL,HIGH. LD B,
003DB0: 28 48 4C 29 A0 20 20 4C 44 20 41 2C 28 42 43 29 (HL). LD A,(BC)
003DC0: A0 20 20 4C 44 20 44 45 2C 33 38 36 30 A0 20 20 . LD DE,3860.
003DD0: 4C 44 20 28 44 45 29 2C 41 A0 20 20 4C 44 20 28 LD (DE),A. LD (
003DE0: 48 4C 29 2C 30 A0 20 20 4C 44 20 42 43 2C 33 38 HL),0. LD BC,38
003DF0: 36 32 A0 20 20 4C 44 20 28 42 43 29 2C 41 A0 20 62. LD (BC),A.
003E00: 20 52 45 54 A0 20 20 A0 20 4C 4F 57 20 20 20 44 RET. . LOW D
003E10: 45 46 42 20 32 31 A0 20 48 49 47 48 20 20 44 45 EFB 21. HIGH DE
003E20: 46 42 20 31 35 A0 20 20 44 45 46 42 20 30 A0 20 FB 15. DEFB 0.
003E30: 20 20 A0 20 20 20 45 58 41 4D 50 4C 45 53 20 4F . EXAMPLES O
003E40: 46 20 53 49 4E 47 4C 45 20 52 45 47 49 53 54 45 F SINGLE REGISTE
003E50: 52 20 41 44 44 49 54 49 4F 4E A0 A0 20 54 68 65 R ADDITION.. The
003E60: 20 20 65 78 61 6D 70 6C 65 20 20 61 64 64 73 20 example adds
003E70: 20 74 6F 67 65 74 68 65 72 20 20 57 67 20 74 68 together Wg th
003E80: 65 20 20 74 77 6F 6E 75 6D 62 65 72 73 20 20 38 e twonumbers 8
003E90: 37 34 30 20 20 61 6E 64 20 20 31 32 36 30 20 20 740 and 1260
003EA0: 20 75 73 69 6E 67 20 20 73 69 6E 67 6C 65 72 65 using singlere
003EB0: 67 69 73 74 65 72 20 20 20 61 64 64 69 74 69 6F gister additio
003EC0: 6E 20 20 6F 6E 6C 79 2E 20 20 20 54 68 65 20 20 n only. The
003ED0: 64 6F 75 62 6C 65 6C 65 6E 67 74 68 20 20 6E 75 doublelength nu
003EE0: 6D 62 65 72 73 20 61 72 65 20 68 65 6C 64 20 69 mbers are held i
003EF0: 6E 20 42 43 20 61 6E 64 20 44 45 20 73 6F 74 68 n BC and DE soth
003F00: 61 74 20 20 74 68 65 20 20 72 65 73 75 6C 74 73 at the results
003F10: 20 20 63 61 6E 20 20 20 62 65 20 20 20 64 69 73 can be dis
003F20: 70 6C 61 79 65 64 65 61 73 69 6C 79 2E 20 20 20 playedeasily.
003F30: 54 68 69 73 20 6D 65 74 68 6F 64 20 6F 66 20 61 This method of a
003F40: 64 64 69 74 69 6F 6E 20 63 61 6E 20 62 65 70 65 ddition can bepe
003F50: 72 66 6F 72 6D 65 64 20 75 73 69 6E 67 20 72 65 rformed using re
003F60: 67 69 73 74 65 72 20 70 61 69 72 20 20 61 64 64 gister pair add
003F70: 69 74 69 6F 6E 2C 61 73 20 77 65 6C 6C E4 44 2C ition,as well.D,
003F80: 20 20 74 6F 20 61 64 64 20 74 6F 67 65 74 68 65 to add togethe
003F90: 72 20 6E 75 6D 62 65 72 73 20 6F 66 20 61 6E 79 r numbers of any
003FA0: 6C 65 6E 67 74 68 2E A0 A0 20 54 68 65 20 73 74 length... The st
003FB0: 61 74 65 20 20 6F 66 20 20 74 68 65 20 69 6E 64 ate of the ind
003FC0: 69 76 69 64 75 61 6C 20 66 6C 61 67 73 20 61 72 ividual flags ar
003FD0: 65 64 69 73 70 6C 61 79 65 64 20 74 6F 20 74 68 edisplayed to th
003FE0: 65 20 6C 65 66 74 20 6F 66 20 74 68 65 20 72 65 e left of the re
003FF0: 67 69 73 74 65 72 73 2E A3 20 4C 44 20 44 45 2C gisters.£ LD DE,
004000: 38 37 34 30 A0 20 20 4C 44 20 42 43 2C 31 32 36 8740. LD BC,126
004010: 30 A0 20 20 4C 44 20 41 2C 45 A0 20 20 41 44 44 0. LD A,E. ADD
004020: 20 41 2C 43 A0 20 20 4C 44 20 43 2C 41 A0 20 20 A,C. LD C,A.
004030: 4C 44 20 41 2C 44 A0 20 20 41 44 43 20 41 2C 42 LD A,D. ADC A,B
004040: A0 20 20 4C 44 20 42 2C 41 A0 20 20 A0 20 20 4C . LD B,A. . L
004050: 44 20 48 4C 2C 53 54 4F 52 45 A0 20 20 4C 44 20 D HL,STORE. LD
004060: 41 2C 31 35 A0 20 20 41 44 44 20 41 2C 28 48 4C A,15. ADD A,(HL
004070: 29 A0 20 20 52 45 54 A0 20 20 A0 20 53 54 4F 10 ). RET. . STO.
004080: 11 52 45 20 44 45 46 42 20 32 35 A0 20 20 A0 20 .RE DEFB 25. .
004090: 20 20 20 45 58 41 4D 50 4C 45 20 4F 46 20 52 45 EXAMPLE OF RE
0040A0: 47 49 53 54 45 52 20 50 41 49 52 20 41 44 44 49 GISTER PAIR ADDI
0040B0: 54 49 4F 4E A0 A0 20 54 68 69 73 20 20 65 78 61 TION.. This exa
0040C0: 6D 70 6C 65 20 20 65 66 66 65 63 74 69 76 65 6C mple effectivel
0040D0: 79 20 6D 75 6C 74 69 70 6C 69 65 73 20 61 6E 75 y multiplies anu
0040E0: 6D 62 65 72 20 20 68 65 6C 64 20 69 6E 20 74 68 mber held in th
0040F0: 65 20 20 48 4C 20 72 65 67 69 73 74 65 72 20 70 e HL register p
004100: 61 69 72 20 62 79 31 30 20 20 75 73 69 6E 67 20 air by10 using
004110: 20 20 61 64 64 69 74 69 6F 6E 20 20 20 74 6F 20 addition to
004120: 20 20 73 75 63 63 65 73 73 69 76 65 6C 79 6D 75 successivelymu
004130: 6C 74 69 70 6C 79 20 62 79 20 32 2E A3 20 4C 44 ltiply by 2.£ LD
004140: 20 48 4C 2C 28 53 54 4F 52 45 29 A0 20 20 41 44 HL,(STORE). AD
004150: 44 20 48 4C 2C 48 4C A0 20 20 41 44 44 20 48 4C D HL,HL. ADD HL
004160: 2C 48 4C A0 20 20 4C 44 20 44 45 2C 28 53 54 4F ,HL. LD DE,(STO
004170: 52 45 29 A0 20 20 41 44 44 20 48 4C 2C 44 45 A0 RE). ADD HL,DE.
004180: 20 C2 68 20 41 44 44 20 48 4C 2C 48 4C A0 20 20 .h ADD HL,HL.
004190: 4C 44 20 28 53 54 4F 52 45 29 2C 48 4C A0 20 20 LD (STORE),HL.
0041A0: A0 20 20 4C 44 20 48 4C 2C 31 30 30 30 A0 20 20 . LD HL,1000.
0041B0: 4C 44 20 41 2C 32 35 35 A0 20 20 41 44 44 20 41 LD A,255. ADD A
0041C0: 2C 31 A0 20 20 41 44 43 20 48 4C 2C 48 4C A0 20 ,1. ADC HL,HL.
0041D0: 20 52 45 54 A0 20 20 A0 20 53 54 4F 52 45 20 44 RET. . STORE D
0041E0: 45 46 57 20 36 30 30 30 A0 20 20 A0 20 20 45 58 EFW 6000. . EX
0041F0: 41 4D 50 4C 45 20 4F 46 20 53 49 4E 47 4C 45 20 AMPLE OF SINGLE
004200: 52 45 47 49 53 54 45 52 20 53 55 42 54 52 41 43 REGISTER SUBTRAC
004210: 54 49 4F 4E A0 A0 20 54 68 69 73 20 65 78 61 6D TION.. This exam
004220: 70 6C 65 20 73 75 62 74 72 61 63 74 73 20 20 31 ple subtracts 1
004230: 32 36 30 20 20 66 72 6F 6D 20 38 37 34 30 75 73 260 from 8740us
004240: 69 6E 67 20 20 6F 6E 6C 79 20 73 69 6E 67 6C 65 ing only single
004250: 20 72 65 67 69 73 74 65 72 20 73 75 62 74 72 61 register subtra
004260: 63 74 69 6F 6E 2E 54 68 65 20 20 74 77 6F 20 20 ction.The two
004270: 6E 75 6D 62 65 72 73 20 20 61 72 65 20 68 65 6C numbers are hel
004280: 64 20 69 F0 1C 6E 20 61 6C 6C 6F 63 61 74 65 64 d i..n allocated
004290: 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 69 6F 6E 73 memory locations
0042A0: 20 74 68 69 73 20 74 69 6D 65 2E A0 A0 20 54 68 this time... Th
0042B0: 69 73 20 20 6D 65 74 68 6F 64 20 20 20 6F 66 20 is method of
0042C0: 20 73 75 62 74 72 61 63 74 69 6F 6E 20 20 63 61 subtraction ca
0042D0: 6E 20 20 62 65 65 78 74 65 6E 64 65 64 20 20 20 n beextended
0042E0: 74 6F 20 20 61 6E 79 20 20 6C 65 6E 67 74 68 20 to any length
0042F0: 20 20 6E 75 6D 62 65 72 20 20 61 6E 64 72 65 67 number andreg
004300: 69 73 74 65 72 20 70 61 69 72 20 73 75 62 74 72 ister pair subtr
004310: 61 63 74 69 6F 6E 2E A3 20 4C 44 20 48 4C 2C 4E action.£ LD HL,N
004320: 55 4D 31 A0 20 20 4C 44 20 44 45 2C 4E 55 4D 32 UM1. LD DE,NUM2
004330: A0 20 20 4C 44 20 41 2C 28 44 45 29 A0 20 20 53 . LD A,(DE). S
004340: 55 42 20 28 48 4C 29 A0 20 20 4C 44 20 28 44 45 UB (HL). LD (DE
004350: 29 2C 41 A0 20 20 4C 44 20 45 2C 31 38 A0 20 20 ),A. LD E,18.
004360: 4C 44 20 4C 2C 32 30 A0 20 20 4C 44 20 41 2C 28 LD L,20. LD A,(
004370: 44 45 29 A0 20 20 53 42 43 20 41 2C 28 48 4C 29 DE). SBC A,(HL)
004380: A0 20 20 4C 44 07 80 20 28 44 45 29 2C 41 A0 20 . LD.. (DE),A.
004390: 20 52 45 54 A0 20 20 A0 20 4E 55 4D 32 20 20 44 RET. . NUM2 D
0043A0: 45 46 57 20 38 37 34 30 A0 20 4E 55 4D 31 20 20 EFW 8740. NUM1
0043B0: 44 45 46 57 20 31 32 36 30 A0 20 20 A0 20 20 A0 DEFW 1260. . .
0043C0: 20 20 45 58 41 4D 50 4C 45 20 55 53 49 4E 47 20 EXAMPLE USING
0043D0: 52 45 47 49 53 54 45 52 20 50 41 49 52 20 53 55 REGISTER PAIR SU
0043E0: 42 54 52 41 43 54 49 4F 4E A0 A0 20 54 68 69 73 BTRACTION.. This
0043F0: 20 65 78 61 6D 70 6C 65 20 69 6C 6C 75 73 74 72 example illustr
004400: 61 74 65 73 20 73 75 62 74 72 61 63 74 69 6F 6E ates subtraction
004410: 20 6F 66 72 65 67 69 73 74 65 72 20 70 61 69 72 ofregister pair
004420: 73 2E 20 20 49 74 20 73 75 62 74 72 61 63 74 73 s. It subtracts
004430: 20 20 31 35 33 36 20 66 72 6F 6D 36 35 35 33 36 1536 from65536
004440: 2E 20 20 20 41 74 20 20 6C 65 61 73 74 20 33 20 . At least 3
004450: 62 79 74 65 73 20 6F 66 20 6D 65 6D 6F 72 79 20 bytes of memory
004460: 61 72 65 72 65 71 75 69 72 65 64 20 20 74 6F 20 arerequired to
004470: 20 68 6F 6C 64 20 20 74 68 65 20 20 6C 61 74 74 hold the latt
004480: 65 72 20 20 6E 75 6D B7 D9 62 65 72 2C 74 68 65 er num..ber,the
004490: 20 68 69 67 68 65 73 74 20 62 79 74 65 20 20 72 highest byte r
0044A0: 65 70 72 65 73 65 6E 74 69 6E 67 20 36 35 35 33 epresenting 6553
0044B0: 36 2E A0 A0 20 41 6C 74 68 6F 75 67 68 20 20 41 6... Although A
0044C0: 44 43 20 61 6E 64 20 20 53 42 43 20 20 6D 61 79 DC and SBC may
0044D0: 20 72 65 71 75 69 72 65 20 74 68 65 43 61 72 72 require theCarr
0044E0: 79 20 20 66 6C 61 67 20 74 6F 20 20 62 65 20 63 y flag to be c
0044F0: 6C 65 61 72 65 64 20 66 69 72 73 74 2C 20 69 66 leared first, if
004500: 20 74 68 65 70 72 65 76 69 6F 75 73 20 63 61 6C theprevious cal
004510: 63 75 6C 61 74 69 6F 6E 20 20 4E 45 56 45 52 20 culation NEVER
004520: 72 65 73 75 6C 74 73 20 69 6E 20 61 63 61 72 72 results in acarr
004530: 79 20 62 65 69 6E 67 20 20 67 65 6E 65 72 61 74 y being generat
004540: 65 64 2C 20 74 68 69 73 20 73 74 65 70 20 6D 61 ed, this step ma
004550: 79 20 62 65 6F 6D 69 74 74 65 64 2E 20 20 48 6F y beomitted. Ho
004560: 77 65 76 65 72 20 69 74 20 69 73 20 6F 66 74 65 wever it is ofte
004570: 6E 20 20 62 65 74 74 65 72 20 74 6F 62 65 20 73 n better tobe s
004580: 61 66 65 20 61 6E 64 20 69 18 D3 6E 63 6C 75 64 afe and i..nclud
004590: 65 20 69 74 2C 20 20 74 68 61 6E 20 20 6C 6F 6F e it, than loo
0045A0: 6B 20 20 66 6F 72 74 68 65 20 72 61 6E 64 6F 6D k forthe random
0045B0: 6C 79 20 6F 63 63 75 72 72 69 6E 67 20 66 61 75 ly occurring fau
0045C0: 6C 74 20 74 68 61 74 20 69 74 20 63 61 6E 67 65 lt that it cange
0045D0: 6E 65 72 61 74 65 2E A3 20 4C 44 20 48 4C 2C 28 nerate.£ LD HL,(
0045E0: 4E 55 4D 31 4C 29 A0 20 20 4C 44 20 44 45 2C 28 NUM1L). LD DE,(
0045F0: 4E 55 4D 32 4C 29 A0 20 20 53 42 43 20 48 4C 2C NUM2L). SBC HL,
004600: 44 45 A0 20 20 4C 44 20 28 41 4E 53 4C 29 2C 48 DE. LD (ANSL),H
004610: 4C A0 20 20 4C 44 20 48 4C 2C 28 4E 55 4D 31 48 L. LD HL,(NUM1H
004620: 29 A0 20 20 4C 44 20 44 45 2C 30 A0 20 20 53 42 ). LD DE,0. SB
004630: 43 20 48 4C 2C 44 45 A0 20 20 4C 44 20 28 41 4E C HL,DE. LD (AN
004640: 53 48 29 2C 48 4C A0 20 20 52 45 54 A0 20 20 A0 SH),HL. RET. .
004650: 20 4E 55 4D 31 4C 20 44 45 46 57 20 30 A0 20 4E NUM1L DEFW 0. N
004660: 55 4D 31 48 20 44 45 46 57 20 31 20 2A 36 35 35 UM1H DEFW 1 *655
004670: 33 36 A0 20 4E 55 4D 32 4C 20 44 45 46 57 20 31 36. NUM2L DEFW 1
004680: 35 33 36 A0 20 41 4E 53 4C 20 20 B9 84 44 45 46 536. ANSL ..DEF
004690: 57 20 30 A0 20 41 4E 53 48 20 20 44 45 46 57 20 W 0. ANSH DEFW
0046A0: 30 A0 20 20 A0 20 20 20 20 45 58 41 4D 50 4C 45 0. . EXAMPLE
0046B0: 20 4F 46 20 49 4E 43 52 45 4D 45 4E 54 20 41 4E OF INCREMENT AN
0046C0: 44 20 44 45 43 52 45 4D 45 4E 54 A0 A0 20 41 74 D DECREMENT.. At
0046D0: 20 20 70 72 65 73 65 6E 74 20 20 74 68 65 20 20 present the
0046E0: 70 72 6F 67 72 61 6D 73 20 74 68 61 74 20 63 61 programs that ca
0046F0: 6E 20 20 62 65 77 72 69 74 74 65 6E 20 61 72 65 n bewritten are
004700: 20 73 6F 6D 65 77 68 61 74 20 6C 69 6D 69 74 65 somewhat limite
004710: 64 2E A0 20 49 4E 43 20 20 61 6E 64 20 20 44 45 d.. INC and DE
004720: 43 20 72 65 61 6C 6C 79 20 6F 6E 6C 79 20 62 65 C really only be
004730: 63 6F 6D 65 20 75 73 65 66 75 6C 69 6E 20 63 6F come usefulin co
004740: 6E 6A 75 6E 63 74 69 6F 6E 20 77 69 74 68 20 69 njunction with i
004750: 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 74 6F 20 nstructions to
004760: 20 62 65 69 6E 74 72 6F 64 75 63 65 64 20 73 68 beintroduced sh
004770: 6F 72 74 6C 79 2E A3 20 4C 44 20 43 2C 35 A0 20 ortly.£ LD C,5.
004780: 20 4C 44 20 48 4C 2C 53 54 4F 52 45 A0 B4 A6 20 LD HL,STORE...
004790: 20 4C 44 20 28 48 4C 29 2C 43 A0 20 20 49 4E 43 LD (HL),C. INC
0047A0: 20 43 A0 20 20 49 4E 43 20 48 4C A0 20 20 4C 44 C. INC HL. LD
0047B0: 20 28 48 4C 29 2C 43 A0 20 20 44 45 43 20 43 A0 (HL),C. DEC C.
0047C0: 20 20 49 4E 43 20 4C A0 20 20 4C 44 20 28 48 4C INC L. LD (HL
0047D0: 29 2C 43 A0 20 20 49 4E 43 20 48 A0 20 20 52 45 ),C. INC H. RE
0047E0: 54 A0 20 20 A0 20 53 54 4F 52 45 20 44 45 46 42 T. . STORE DEFB
0047F0: 20 30 A0 20 20 44 45 46 42 20 30 A0 20 20 44 45 0. DEFB 0. DE
004800: 46 42 20 30 A0 20 20 A0 20 20 20 20 20 20 20 20 FB 0. .
004810: 20 45 58 41 4D 50 4C 45 53 20 4F 46 20 5A 45 52 EXAMPLES OF ZER
004820: 4F 20 46 4C 41 47 A0 A0 20 57 68 69 6C 65 20 20 O FLAG.. While
004830: 20 72 75 6E 6E 69 6E 67 20 20 74 68 69 73 20 20 running this
004840: 65 78 61 6D 70 6C 65 20 20 74 72 79 20 20 74 6F example try to
004850: 70 72 65 64 69 63 74 20 74 68 65 20 73 74 61 74 predict the stat
004860: 65 20 6F 66 20 74 68 65 20 5A 65 72 6F 20 66 6C e of the Zero fl
004870: 61 67 20 61 66 74 65 72 74 68 65 20 69 6E 73 74 ag afterthe inst
004880: 72 75 63 74 69 6F 6E 20 68 61 73 20 62 65 65 C5 ruction has bee.
004890: 1C 6E 20 70 65 72 66 6F 72 6D 65 64 2E A3 20 4C .n performed.£ L
0048A0: 44 20 48 4C 2C 32 35 37 A0 20 20 44 45 43 20 4C D HL,257. DEC L
0048B0: A0 20 20 4C 44 20 41 2C 32 33 A0 20 20 53 55 42 . LD A,23. SUB
0048C0: 20 32 33 A0 20 20 4C 44 20 44 45 2C 32 35 36 A0 23. LD DE,256.
0048D0: 20 20 49 4E 43 20 41 A0 20 20 53 42 43 20 48 4C INC A. SBC HL
0048E0: 2C 44 45 A0 20 20 49 4E 43 20 48 A0 20 20 53 55 ,DE. INC H. SU
0048F0: 42 20 32 A0 20 20 53 42 43 20 48 4C 2C 44 45 A0 B 2. SBC HL,DE.
004900: 20 20 4C 44 20 48 4C 2C 31 A0 20 20 44 45 43 20 LD HL,1. DEC
004910: 48 4C A0 20 20 52 45 54 A0 20 20 A0 20 20 A0 20 HL. RET. . .
004920: 20 20 A0 20 20 20 20 20 20 20 20 20 20 20 20 20 .
004930: 20 20 43 4F 4D 50 41 52 45 A0 A0 20 20 53 6F 20 COMPARE.. So
004940: 20 66 61 72 20 20 20 61 6C 6C 20 20 69 6E 73 74 far all inst
004950: 72 75 63 74 69 6F 6E 73 20 20 77 65 20 20 20 68 ructions we h
004960: 61 76 65 64 69 73 63 75 73 73 65 64 20 20 74 68 avediscussed th
004970: 61 74 20 20 61 66 66 65 63 74 20 20 74 68 65 20 at affect the
004980: 20 43 61 72 72 79 20 20 20 6F 72 5A 65 72 6F 20 Carry orZero
004990: 66 50 AF 6C 61 67 73 20 20 61 6C 73 6F 20 20 61 fP.lags also a
0049A0: 66 66 65 63 74 20 20 74 68 65 20 20 20 72 65 67 ffect the reg
0049B0: 69 73 74 65 72 63 6F 6E 63 65 72 6E 65 64 2E 20 isterconcerned.
0049C0: 54 68 65 72 65 20 61 72 65 20 61 20 6E 75 6D 62 There are a numb
0049D0: 65 72 20 20 6F 66 20 75 73 65 66 75 6C 69 6E 73 er of usefulins
0049E0: 74 72 75 63 74 69 6F 6E 73 20 74 68 61 74 20 6F tructions that o
0049F0: 6E 6C 79 20 61 66 66 65 63 74 20 66 6C 61 67 73 nly affect flags
004A00: 2E 20 54 68 65 63 6F 6D 70 61 72 65 20 6F 72 20 . Thecompare or
004A10: 20 43 50 20 20 69 6E 73 74 72 75 63 74 69 6F 6E CP instruction
004A20: 20 20 69 73 20 20 6F 6E 65 20 20 6F 66 74 68 65 is one ofthe
004A30: 73 65 2E A0 A0 20 43 50 20 20 20 63 6F 6D 70 61 se... CP compa
004A40: 72 65 73 20 20 74 68 65 20 20 63 6F 6E 74 65 6E res the conten
004A50: 74 73 20 20 6F 66 20 74 68 65 20 20 41 72 65 67 ts of the Areg
004A60: 69 73 74 65 72 20 77 69 74 68 20 20 61 20 6E 75 ister with a nu
004A70: 6D 62 65 72 20 20 28 43 50 20 6E 29 2C 20 61 6E mber (CP n), an
004A80: 6F 74 68 65 72 72 65 67 69 73 74 65 72 20 20 28 otherregister (
004A90: 43 50 20 82 88 72 29 2C 20 6F 72 20 61 6E 79 20 CP ..r), or any
004AA0: 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 69 6F 6E 69 memory locationi
004AB0: 6E 64 69 72 65 63 74 6C 79 20 20 61 64 64 72 65 ndirectly addre
004AC0: 73 73 65 64 20 20 74 68 72 6F 75 67 68 20 20 74 ssed through t
004AD0: 68 65 20 20 20 48 4C 72 65 67 69 73 74 65 72 20 he HLregister
004AE0: 20 70 61 69 72 20 20 28 20 43 50 20 28 48 4C 29 pair ( CP (HL)
004AF0: 20 29 2E 20 54 68 65 20 63 6F 6D 70 61 72 65 69 ). The comparei
004B00: 6E 73 74 72 75 63 74 69 6F 6E 20 69 73 20 65 66 nstruction is ef
004B10: 66 65 63 74 69 76 65 6C 79 20 20 53 55 42 20 20 fectively SUB
004B20: 62 75 74 20 74 68 65 72 65 73 75 6C 74 20 20 64 but theresult d
004B30: 6F 65 73 20 6E 6F 74 20 61 66 66 65 63 74 20 20 oes not affect
004B40: 74 68 65 20 63 6F 6E 74 65 6E 74 73 20 6F 66 74 the contents oft
004B50: 68 65 20 41 20 72 65 67 69 73 74 65 72 2E A3 20 he A register.£
004B60: 49 66 20 20 6E 20 20 69 73 20 20 74 68 65 20 20 If n is the
004B70: 6E 75 6D 62 65 72 20 20 77 69 74 68 20 77 68 69 number with whi
004B80: 63 68 20 41 20 69 73 63 6F 6D 70 61 72 65 64 2C ch A iscompared,
004B90: 20 74 68 65 6E 3D E0 20 74 68 65 20 66 6F 6C 6C then=. the foll
004BA0: 6F 77 69 6E 67 20 72 65 73 75 6C 74 73 20 3A 2D owing results :-
004BB0: 20 A0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
004BC0: 20 20 20 20 20 20 43 61 72 72 79 20 20 20 20 20 Carry
004BD0: 20 5A 65 72 6F A0 20 20 41 20 3E 20 6E 20 20 20 Zero. A > n
004BE0: 20 20 20 20 20 20 20 20 20 20 20 20 30 20 20 20 0
004BF0: 20 20 20 20 20 20 20 30 A0 20 20 41 20 3D 20 6E 0. A = n
004C00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 0
004C10: 20 20 20 20 20 20 20 20 20 20 31 A0 20 20 41 20 1. A
004C20: 3C 20 6E 20 20 20 20 20 20 20 20 20 20 20 20 20 < n
004C30: 20 20 31 20 20 20 20 20 20 20 20 20 20 30 A3 20 1 0£
004C40: 53 75 6D 6D 61 72 79 20 2D 20 63 6F 6D 70 61 72 Summary - compar
004C50: 69 73 6F 6E 73 A0 A0 43 50 20 6E 20 20 20 20 20 isons..CP n
004C60: 43 6F 6D 70 61 72 65 73 20 41 20 77 69 74 68 20 Compares A with
004C70: 6E 20 28 20 30 20 2D 20 32 35 35 29 A0 A0 43 50 n ( 0 - 255)..CP
004C80: 20 72 20 20 20 20 20 43 6F 6D 70 61 72 65 73 20 r Compares
004C90: 41 20 77 69 74 68 20 3F D4 72 65 67 69 73 74 65 A with ?.registe
004CA0: 72 20 72 A0 A0 43 50 20 28 48 4C 29 20 20 43 6F r r..CP (HL) Co
004CB0: 6D 70 61 72 65 73 20 41 20 77 69 74 68 20 6D 65 mpares A with me
004CC0: 6D 6F 72 79 20 6C 6F 63 61 74 69 6F 6E 20 20 20 mory location
004CD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004CE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004CF0: 20 28 48 4C 29 A3 20 20 20 20 20 20 20 20 20 20 (HL)£
004D00: 45 58 41 4D 50 4C 45 53 20 4F 46 20 43 4F 4D 50 EXAMPLES OF COMP
004D10: 41 52 45 A0 A0 20 54 72 79 20 20 74 6F 20 20 70 ARE.. Try to p
004D20: 72 65 64 69 63 74 20 20 74 68 65 20 73 74 61 74 redict the stat
004D30: 65 20 6F 66 20 74 68 65 20 5A 65 72 6F 61 6E 64 e of the Zeroand
004D40: 20 43 61 72 72 79 20 20 66 6C 61 67 73 20 62 65 Carry flags be
004D50: 66 6F 72 65 20 20 70 65 72 66 6F 72 6D 69 6E 67 fore performing
004D60: 20 20 74 68 65 63 6F 6D 70 61 72 69 73 6F 6E 2E thecomparison.
004D70: 20 20 49 6E 20 74 68 65 20 6E 65 78 74 20 6C 65 In the next le
004D80: 73 73 6F 6E 73 20 77 65 20 77 69 6C 6C 62 65 20 ssons we willbe
004D90: 20 75 73 69 6E 67 20 20 74 57 35 68 65 73 65 20 using tW5hese
004DA0: 20 66 6C 61 67 73 20 20 65 78 74 65 6E 73 69 76 flags extensiv
004DB0: 65 6C 79 2C 20 74 6F 70 72 6F 64 75 63 65 20 6D ely, toproduce m
004DC0: 6F 72 65 20 69 6E 74 65 72 65 73 74 69 6E 67 20 ore interesting
004DD0: 65 78 61 6D 70 6C 65 73 2E A3 20 4C 44 20 41 2C examples.£ LD A,
004DE0: 35 A0 20 20 43 50 20 34 A0 20 20 43 50 20 35 A0 5. CP 4. CP 5.
004DF0: 20 20 43 50 20 36 A0 20 20 4C 44 20 42 2C 33 A0 CP 6. LD B,3.
004E00: 20 20 43 50 20 42 A0 20 20 4C 44 20 48 4C 2C 53 CP B. LD HL,S
004E10: 54 4F 52 45 A0 20 20 43 50 20 28 48 4C 29 A0 20 TORE. CP (HL).
004E20: 20 44 45 43 20 28 48 4C 29 A0 20 20 43 50 20 28 DEC (HL). CP (
004E30: 48 4C 29 A0 20 20 41 44 44 20 41 2C 32 33 30 A0 HL). ADD A,230.
004E40: 20 20 43 50 20 28 48 4C 29 A0 20 20 52 45 54 A0 CP (HL). RET.
004E50: 20 20 A0 20 53 54 4F 52 45 20 44 45 46 42 20 36 . STORE DEFB 6
004E60: A0 20 20 A0 20 00 00 00 00 00 00 00 00 00 00 00 . . ...........
004E70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004E90: 00 00 00 00 00 00 00 00 00 00 00 B9 E1 00 00 00 ................
004EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004F00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004F10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004F20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004F30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004F40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004F50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004F60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004F70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004F80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004F90: 00 00 00 00 00 00 00 00 00 00 00 00 00 BE 17 00 ................
004FA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004FB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004FC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004FD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004FE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004FF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BE ................
0050A0: 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0050B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0050C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0050D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0050E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0050F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0051A0: 00 BE 17 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0051B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0051C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0051D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0051E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0051F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0052A0: 00 00 00 BE 17 00 00 00 00 00 00 00 00 00 00 00 ................
0052B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0052C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0052D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0052E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0052F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0053A0: 00 00 00 00 00 BE 17 00 00 00 00 00 00 00 00 00 ................
0053B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0053C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0053D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0053E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0053F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005420: 00 00 00 00 00 00 00 18 3C 7E FF 18 18 18 18 18 ........<~......
005430: 18 18 18 FF 7E 3C 18 10 30 70 FF FF 70 30 10 08 ....~<..0p..p0..
005440: 0C 0E FF FF 0E 0C 08 00 00 18 3C 7E FF FF 00 00 ..........<~....
005450: 00 FF FF 7E 3C 18 00 80 E0 F8 FE F8 E0 80 00 02 ...~<...........
005460: 0E 3E FE 3E 0E 02 00 38 38 92 7C 10 28 28 28 38 .>.>...88.|.(((8
005470: 38 10 FE 10 28 44 82 38 38 12 7C 90 28 24 22 38 8...(D.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 9E 32 00 C9 C9 C9 C9 C9 C9 $f.f$...2.......
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 30 00 76 .....y.......0.v
005550: 65 20 22 54 45 58 54 30 22 2C 42 2C 26 35 38 30 e "TEXT0",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 8B 51 FF FF FF FF ..........Q....
|