000000: 45 58 54 45 4E 44 45 44 20 43 50 43 20 44 53 4B EXTENDED CPC DSK
000010: 20 46 69 6C 65 0D 0A 44 69 73 6B 2D 49 6E 66 6F File..Disk-Info
000020: 0D 0A 53 41 4D 64 69 73 6B 31 32 30 34 31 37 00 ..SAMdisk120417.
000030: 28 01 00 00 13 13 13 13 13 13 13 13 13 13 13 13 (...............
000040: 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ................
000050: 13 13 13 13 13 13 13 13 13 13 13 13 00 00 00 00 ................
000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
000110: 00 00 00 00 02 09 50 E5 00 00 C1 02 00 00 00 02 ......P.........
000120: 00 00 C2 02 00 00 00 02 00 00 C3 02 00 00 00 02 ................
000130: 00 00 C4 02 00 00 00 02 00 00 C5 02 00 00 00 02 ................
000140: 00 00 C6 02 00 00 00 02 00 00 C7 02 00 00 00 02 ................
000150: 00 00 C8 02 00 00 00 02 00 00 C9 02 00 00 00 02 ................
000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000200: 00 43 48 41 50 2D 31 35 20 D0 31 35 00 00 00 71 .CHAP-15 .15...q
000210: 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 ................
000220: 00 43 48 41 50 2D 31 35 20 D0 31 36 00 00 00 80 .CHAP-15 .16....
000230: 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 ...............
000240: 00 43 48 41 50 2D 31 35 20 D0 31 36 01 00 00 04 .CHAP-15 .16....
000250: 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 !...............
000260: 00 43 48 41 50 2D 31 35 20 D0 31 37 00 00 00 80 .CHAP-15 .17....
000270: 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 "#$%&'()*+,-./01
000280: 00 43 48 41 50 2D 31 35 20 D0 31 37 01 00 00 01 .CHAP-15 .17....
000290: 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2...............
0002A0: 00 43 48 41 50 2D 31 35 20 D0 31 38 00 00 00 7D .CHAP-15 .18...}
0002B0: 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 3456789:;<=>?@AB
0002C0: 00 43 48 41 50 2D 31 35 20 D0 31 39 00 00 00 80 .CHAP-15 .19....
0002D0: 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 CDEFGHIJKLMNOPQR
0002E0: 00 43 48 41 50 2D 31 35 20 D0 31 39 01 00 00 02 .CHAP-15 .19....
0002F0: 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 S...............
000300: 00 43 48 41 50 2D 31 35 20 D0 32 30 00 00 00 80 .CHAP-15 .20....
000310: 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 TUVWXYZ[\]^_`abc
000320: 00 43 48 41 50 2D 31 35 20 D0 32 30 01 00 00 08 .CHAP-15 .20....
000330: 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d...............
000340: 00 43 48 41 50 2D 31 35 20 D0 32 31 00 00 00 80 .CHAP-15 .21....
000350: 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 efghijklmnopqrst
000360: 00 43 48 41 50 2D 31 35 20 D0 32 31 01 00 00 03 .CHAP-15 .21....
000370: 75 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 u...............
000380: 00 43 48 41 50 2D 31 35 20 D0 32 32 00 00 00 3D .CHAP-15 .22...=
000390: 76 77 78 79 7A 7B 7C 7D 00 00 00 00 00 00 00 00 vwxyz{|}........
0003A0: 00 43 48 41 50 2D 31 36 20 D0 31 20 00 00 00 80 .CHAP-16 .1 ....
0003B0: 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D ~...............
0003C0: 00 43 48 41 50 2D 31 36 20 D0 31 20 01 00 00 05 .CHAP-16 .1 ....
0003D0: 8E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0003E0: 00 43 48 41 50 2D 31 36 20 D0 32 20 00 00 00 42 .CHAP-16 .2 ...B
0003F0: 8F 90 91 92 93 94 95 96 97 00 00 00 00 00 00 00 ................
000400: 00 43 48 41 50 2D 31 37 20 A0 20 20 00 00 00 80 .CHAP-17 . ....
000410: 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 ...........£....
000420: 00 43 48 41 50 2D 31 37 20 A0 20 20 01 00 00 08 .CHAP-17 . ....
000430: A8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000A10: 20 20 20 54 68 65 20 70 72 6F 6D 70 74 20 6D 65 The prompt me
000A20: 73 73 61 67 65 73 20 61 72 65 20 74 75 72 6E 65 ssages are turne
000A30: 64 20 6F 6E 20 28 73 65 65 20 43 41 53 20 4E 4F d on (see CAS NO
000A40: 49 53 59 29 20 62 79 20 74 68 69 73 20 72 6F 75 ISY) by this rou
000A50: 74 69 6E 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tine.......
000A60: 20 20 57 68 65 6E 20 63 61 74 61 6C 6F 67 75 69 When catalogui
000A70: 6E 67 20 74 68 65 20 43 61 73 73 65 74 74 65 20 ng the Cassette
000A80: 4D 61 6E 61 67 65 72 20 72 65 61 64 73 20 74 68 Manager reads th
000A90: 65 20 68 65 61 64 65 72 20 72 65 63 6F 72 64 2C e header record,
000AA0: 20 20 70 72 69 6E 74 73 0D 0A 20 20 20 20 20 20 prints..
000AB0: 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 66 72 6F information fro
000AC0: 6D 20 69 74 20 61 6E 64 20 74 68 65 6E 20 72 65 m it and then re
000AD0: 61 64 73 20 74 68 65 20 64 61 74 61 20 72 65 63 ads the data rec
000AE0: 6F 72 64 2E 20 54 68 69 73 20 63 79 63 6C 65 20 ord. This cycle
000AF0: 72 65 70 65 61 74 73 0D 0A 20 20 20 20 20 20 20 repeats..
000B00: 75 6E 74 69 6C 20 74 68 65 20 75 73 65 72 20 68 until the user h
000B10: 69 74 73 20 74 68 65 20 65 73 63 61 70 65 20 6B its the escape k
000B20: 65 79 2E 20 20 54 68 65 20 20 69 6E 66 6F 72 6D ey. The inform
000B30: 61 74 69 6F 6E 20 20 70 72 69 6E 74 65 64 20 20 ation printed
000B40: 69 73 20 20 61 73 0D 0A 20 20 20 20 20 20 20 66 is as.. f
000B50: 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ollows:......
000B60: 20 20 20 20 20 20 20 20 20 20 20 20 20 46 49 4C FIL
000B70: 45 4E 41 4D 45 20 62 6C 6F 63 6B 20 4E 20 54 20 ENAME block N T
000B80: 4F 6B 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 Ok...... F
000B90: 49 4C 45 4E 41 4D 45 20 69 73 20 74 68 65 20 6E ILENAME is the n
000BA0: 61 6D 65 20 6F 66 20 74 68 65 20 66 69 6C 65 20 ame of the file
000BB0: 6F 6E 20 74 68 65 20 74 61 70 65 2C 20 6F 72 20 on the tape, or
000BC0: 27 55 6E 6E 61 6D 65 64 20 66 69 6C 65 27 20 69 'Unnamed file' i
000BD0: 66 20 74 68 65 0D 0A 20 20 20 20 20 20 20 66 69 f the.. fi
000BE0: 6C 65 6E 61 6D 65 20 73 74 61 72 74 73 20 77 69 lename starts wi
000BF0: 74 68 20 61 20 6E 75 6C 6C 20 28 63 68 61 72 61 th a null (chara
000C00: 63 74 65 72 20 23 30 30 29 2E 0D 0A 0D 0A 0D 0A cter #00).......
000C10: 20 20 20 20 20 20 20 4E 20 69 73 20 74 68 65 20 N is the
000C20: 62 6C 6F 63 6B 2E 20 42 6C 6F 63 6B 20 31 20 69 block. Block 1 i
000C30: 73 20 6E 6F 72 6D 61 6C 6C 79 20 74 68 65 20 66 s normally the f
000C40: 69 72 73 74 20 62 6C 6F 63 6B 20 69 6E 20 61 20 irst block in a
000C50: 66 69 6C 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 file.......
000C60: 20 20 54 20 69 73 20 61 20 72 65 70 72 65 73 65 T is a represe
000C70: 6E 74 61 74 69 6F 6E 20 6F 66 20 74 68 65 20 66 ntation of the f
000C80: 69 6C 65 20 74 79 70 65 20 6F 66 20 74 68 65 20 ile type of the
000C90: 66 69 6C 65 2E 20 49 74 20 20 69 73 20 20 66 6F file. It is fo
000CA0: 72 6D 65 64 20 20 62 79 0D 0A 20 20 20 20 20 20 rmed by..
000CB0: 20 61 64 64 69 6E 67 20 23 32 34 20 28 74 68 65 adding #24 (the
000CC0: 20 63 68 61 72 61 63 74 65 72 20 27 24 27 29 20 character '$')
000CD0: 74 6F 20 74 68 65 20 66 69 6C 65 20 74 79 70 65 to the file type
000CE0: 20 62 79 74 65 20 6D 61 73 6B 65 64 20 20 77 69 byte masked wi
000CF0: 74 68 20 20 23 30 46 0D 0A 20 20 20 20 20 20 20 th #0F..
000D00: 28 74 6F 20 72 65 6D 6F 76 65 20 74 68 65 20 76 (to remove the v
000D10: 65 72 73 69 6F 6E 20 6E 75 6D 62 65 72 20 66 69 ersion number fi
000D20: 65 6C 64 29 2E 20 20 54 68 65 20 20 73 74 61 6E eld). The stan
000D30: 64 61 72 64 20 20 66 69 6C 65 20 20 74 79 70 65 dard file type
000D40: 73 20 20 61 72 65 0D 0A 20 20 20 20 20 20 20 74 s are.. t
000D50: 68 75 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 hus:......
000D60: 20 20 20 20 20 20 20 20 20 20 24 20 20 20 20 20 $
000D70: 20 20 20 20 61 20 42 41 53 49 43 20 70 72 6F 67 a BASIC prog
000D80: 72 61 6D 20 66 69 6C 65 0D 0A 20 20 20 20 20 20 ram file..
000D90: 20 20 20 20 20 20 20 20 20 20 25 20 20 20 20 20 %
000DA0: 20 20 20 20 61 20 70 72 6F 74 65 63 74 65 64 20 a protected
000DB0: 42 41 53 49 43 20 70 72 6F 67 72 61 6D 20 66 69 BASIC program fi
000DC0: 6C 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 le..
000DD0: 20 20 20 20 2A 20 20 20 20 20 20 20 20 20 61 6E * an
000DE0: 20 41 53 43 49 49 20 74 65 78 74 20 66 69 6C 65 ASCII text file
000DF0: 20 28 64 65 66 61 75 6C 74 20 66 69 6C 65 20 74 (default file t
000E00: 79 70 65 29 0D 0A 20 20 20 20 20 20 20 20 20 20 ype)..
000E10: 20 20 20 20 20 20 26 20 20 20 20 20 20 20 20 20 &
000E20: 61 20 62 69 6E 61 72 79 20 66 69 6C 65 2E 0D 0A a binary file...
000E30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000E40: 27 20 20 20 20 20 20 20 20 20 61 20 70 72 6F 74 ' a prot
000E50: 65 63 74 65 64 20 62 69 6E 61 72 79 20 66 69 6C ected binary fil
000E60: 65 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4F 74 e...... Ot
000E70: 68 65 72 20 66 69 6C 65 20 74 79 70 65 73 20 61 her file types a
000E80: 72 65 20 70 6F 73 73 69 62 6C 65 20 62 75 74 20 re possible but
000E90: 77 69 6C 6C 20 6E 6F 74 20 68 61 76 65 20 62 65 will not have be
000EA0: 65 6E 20 20 77 72 69 74 74 65 6E 20 20 62 79 20 en written by
000EB0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 42 41 53 the.. BAS
000EC0: 49 43 20 69 6E 20 20 74 68 65 20 6F 6E 2D 62 6F IC in the on-bo
000ED0: 61 72 64 20 52 4F 4D 2E 20 53 65 65 20 73 65 63 ard ROM. See sec
000EE0: 74 69 6F 6E 20 38 2E 34 20 66 6F 72 20 61 20 64 tion 8.4 for a d
000EF0: 65 73 63 72 69 70 74 69 6F 6E 20 20 6F 66 20 20 escription of
000F00: 74 68 65 0D 0A 20 20 20 20 20 20 20 66 69 6C 65 the.. file
000F10: 20 74 79 70 65 20 62 79 74 65 2E 0D 0A 0D 0A 0D type byte......
000F20: 0A 20 20 20 20 20 20 20 4F 6B 20 69 73 20 70 72 . Ok is pr
000F30: 69 6E 74 65 64 20 61 66 74 65 72 20 74 68 65 20 inted after the
000F40: 65 6E 64 20 6F 66 20 74 68 65 20 64 61 74 61 20 end of the data
000F50: 72 65 63 6F 72 64 2E 20 54 68 69 73 20 20 73 68 record. This sh
000F60: 6F 77 73 20 20 74 68 61 74 20 20 74 68 65 0D 0A ows that the..
000F70: 20 20 20 20 20 20 20 64 61 74 61 20 77 61 73 20 data was
000F80: 72 65 61 64 20 77 69 74 68 6F 75 74 20 65 72 72 read without err
000F90: 6F 72 73 20 61 6E 64 20 61 6C 73 6F 20 73 65 72 ors and also ser
000FA0: 76 65 73 20 74 6F 20 69 6E 64 69 63 61 74 65 20 ves to indicate
000FB0: 20 74 68 65 20 20 65 6E 64 20 20 6F 66 0D 0A 20 the end of..
000FC0: 20 20 20 20 20 20 74 68 65 20 64 61 74 61 20 6F the data o
000FD0: 6E 20 74 61 70 65 20 28 74 6F 20 68 65 6C 70 20 n tape (to help
000FE0: 61 76 6F 69 64 20 6F 76 65 72 2D 72 65 63 6F 72 avoid over-recor
000FF0: 64 69 6E 67 20 61 20 74 61 70 65 20 66 69 6C 65 ding a tape file
001000: 29 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ).........
001010: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
001020: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 41 :...... CA
001030: 53 20 43 41 54 41 4C 4F 47 20 28 44 49 53 43 29 S CATALOG (DISC)
001040: 0D 0A 20 20 20 20 20 20 20 43 41 53 20 4E 4F 49 .. CAS NOI
001050: 53 59 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A SY..............
001060: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
001070: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
001080: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
001090: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
0010A0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
0010B0: 20 31 35 2E 31 36 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.160.........
0010C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 33 37 3A ..... 137:
0010D0: 20 43 41 53 20 43 41 54 41 4C 4F 47 20 28 44 49 CAS CATALOG (DI
0010E0: 53 43 29 20 20 20 20 20 20 20 20 20 20 20 20 20 SC)
0010F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001100: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 #BC
001110: 39 42 0D 0A 0D 0A 20 20 20 20 20 20 20 44 69 73 9B.... Dis
001120: 70 6C 61 79 20 74 68 65 20 64 69 73 63 20 64 69 play the disc di
001130: 72 65 63 74 6F 72 79 0D 0A 0D 0A 20 20 20 20 20 rectory....
001140: 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 Action:....
001150: 20 20 20 20 44 69 73 70 6C 61 79 20 74 68 65 20 Display the
001160: 64 69 73 63 20 64 69 72 65 63 74 6F 72 79 20 66 disc directory f
001170: 6F 72 20 74 68 65 20 63 75 72 72 65 6E 74 20 64 or the current d
001180: 72 69 76 65 20 61 6E 64 20 63 75 72 72 65 6E 74 rive and current
001190: 20 75 73 65 72 2E 20 54 68 65 0D 0A 0D 0A 20 20 user. The....
0011A0: 20 20 20 20 20 64 69 72 65 63 74 6F 72 79 20 69 directory i
0011B0: 73 20 73 6F 72 74 65 64 20 69 6E 74 6F 20 61 6C s sorted into al
0011C0: 70 68 61 62 65 74 69 63 61 6C 20 6F 72 64 65 72 phabetical order
0011D0: 20 61 6E 64 20 64 69 73 70 6C 61 79 65 64 20 69 and displayed i
0011E0: 6E 20 20 61 73 20 20 6D 61 6E 79 0D 0A 20 20 20 n as many..
0011F0: 20 20 20 20 63 6F 6C 75 6D 6E 73 20 61 73 20 77 columns as w
001200: 69 6C 6C 20 66 69 74 20 69 6E 20 74 68 65 20 63 ill fit in the c
001210: 75 72 72 65 6E 74 20 74 65 78 74 20 77 69 6E 64 urrent text wind
001220: 6F 77 20 28 73 74 72 65 61 6D 23 30 29 2E 20 54 ow (stream#0). T
001230: 68 65 20 73 69 7A 65 20 69 6E 0D 0A 20 20 20 20 he size in..
001240: 20 20 20 4B 62 79 74 65 73 20 69 73 20 73 68 6F Kbytes is sho
001250: 77 6E 20 61 6C 6F 6E 67 20 73 69 64 65 20 65 61 wn along side ea
001260: 63 68 20 66 69 6C 65 2E 20 54 68 65 20 74 6F 74 ch file. The tot
001270: 61 6C 20 61 6D 6F 75 6E 74 20 6F 66 20 20 66 72 al amount of fr
001280: 65 65 20 20 73 70 61 63 65 0D 0A 20 20 20 20 20 ee space..
001290: 20 20 6F 6E 20 74 68 65 20 64 69 73 63 20 69 73 on the disc is
0012A0: 20 61 6C 73 6F 20 73 68 6F 77 6E 2E 0D 0A 0D 0A also shown.....
0012B0: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
0012C0: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
0012D0: 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 DE contains t
0012E0: 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 61 20 he address of a
0012F0: 32 4B 20 62 75 66 66 65 72 20 74 6F 20 75 73 65 2K buffer to use
001300: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
001310: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
001320: 20 20 20 20 20 20 20 49 66 20 74 68 65 20 63 61 If the ca
001330: 74 61 6C 6F 67 69 6E 67 20 77 65 6E 74 20 4F 4B taloging went OK
001340: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 :....
001350: 20 20 20 20 20 43 61 72 72 79 20 74 72 75 65 2E Carry true.
001360: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
001370: 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 Zero false...
001380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
001390: 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 20 corrupt.....
0013A0: 20 20 20 20 49 66 20 66 61 69 6C 65 64 20 66 6F If failed fo
0013B0: 72 20 61 6E 79 20 72 65 61 73 6F 6E 3A 0D 0A 0D r any reason:...
0013C0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0013D0: 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 Carry false...
0013E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5A Z
0013F0: 65 72 6F 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 ero true...
001400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
001410: 01 00 00 00 02 09 50 E5 01 00 C1 02 00 00 00 02 ......P.........
001420: 01 00 C2 02 00 00 00 02 01 00 C3 02 00 00 00 02 ................
001430: 01 00 C4 02 00 00 00 02 01 00 C5 02 00 00 00 02 ................
001440: 01 00 C6 02 00 00 00 02 01 00 C7 02 00 00 00 02 ................
001450: 01 00 C8 02 00 00 00 02 01 00 C9 02 00 00 00 02 ................
001460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001500: 20 20 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E A con
001510: 74 61 69 6E 73 20 61 6E 20 65 72 72 6F 72 20 6E tains an error n
001520: 75 6D 62 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 umber.....
001530: 20 41 6C 77 61 79 73 0D 0A 0D 0A 20 20 20 20 20 Always....
001540: 20 20 20 20 20 20 20 20 20 20 20 42 43 2C 44 45 BC,DE
001550: 2C 48 4C 2C 49 58 20 61 6E 64 20 6F 74 68 65 72 ,HL,IX and other
001560: 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D flags corrupt..
001570: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
001580: 20 41 6C 6C 20 72 65 67 69 73 74 65 72 73 20 70 All registers p
001590: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 reserved.....
0015A0: 20 20 20 20 4E 4F 54 45 53 3A 0D 0A 0D 0A 20 20 NOTES:....
0015B0: 20 20 20 20 20 46 69 6C 65 73 20 6D 61 72 6B 65 Files marke
0015C0: 64 20 53 59 53 20 61 72 65 20 6E 6F 74 20 73 68 d SYS are not sh
0015D0: 6F 77 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 own.......
0015E0: 20 46 69 6C 65 73 20 6D 61 72 6B 65 64 20 52 2F Files marked R/
0015F0: 4F 20 61 72 65 20 73 68 6F 77 6E 20 77 69 74 68 O are shown with
001600: 20 61 20 27 2A 27 20 61 66 74 65 72 20 74 68 65 a '*' after the
001610: 20 66 69 6C 65 6E 61 6D 65 2E 0D 0A 0D 0A 0D 0A filename.......
001620: 20 20 20 20 20 20 20 55 6E 6C 69 6B 65 20 74 68 Unlike th
001630: 65 20 63 61 73 73 65 74 74 65 20 76 65 72 73 69 e cassette versi
001640: 6F 6E 20 6F 66 20 74 68 69 73 20 72 6F 75 74 69 on of this routi
001650: 6E 65 2C 20 74 68 65 20 64 69 73 63 20 69 6E 70 ne, the disc inp
001660: 75 74 20 73 74 72 65 61 6D 20 20 69 73 0D 0A 20 ut stream is..
001670: 20 20 20 20 20 20 6E 6F 74 20 72 65 71 75 69 72 not requir
001680: 65 64 2E 20 28 4E 6F 74 65 3A 20 42 41 53 49 43 ed. (Note: BASIC
001690: 20 61 62 61 6E 64 6F 6E 73 20 62 6F 74 68 20 74 abandons both t
0016A0: 68 65 20 69 6E 70 75 74 20 61 6E 64 20 6F 75 74 he input and out
0016B0: 70 75 74 20 20 73 74 72 65 61 6D 73 0D 0A 20 20 put streams..
0016C0: 20 20 20 20 20 77 68 65 6E 20 67 65 6E 65 72 61 when genera
0016D0: 74 69 6E 67 20 74 68 65 20 63 61 74 61 6C 6F 67 ting the catalog
0016E0: 75 65 2E 29 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ue.)........
0016F0: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
001700: 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 41 es:.... CA
001710: 53 20 43 41 54 41 4C 4F 47 0D 0A 20 20 20 20 20 S CATALOG..
001720: 20 20 7C 44 49 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A |DIR..........
001730: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
001740: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
001750: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
001760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001770: 20 20 20 20 70 61 67 65 20 31 35 2E 31 36 31 0D page 15.161.
001780: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
001790: 20 20 20 20 31 33 38 3A 20 43 41 53 20 57 52 49 138: CAS WRI
0017A0: 54 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 TE
0017B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0017C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0017D0: 20 20 20 20 20 23 42 43 39 45 0D 0A 0D 0A 20 20 #BC9E....
0017E0: 20 20 20 20 20 57 72 69 74 65 20 61 20 72 65 63 Write a rec
0017F0: 6F 72 64 20 74 6F 20 74 61 70 65 2E 0D 0A 0D 0A ord to tape.....
001800: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 2E 0D 0A Action...
001810: 0D 0A 20 20 20 20 20 20 20 57 72 69 74 65 20 61 .. Write a
001820: 20 72 65 63 6F 72 64 20 74 6F 20 74 68 65 20 63 record to the c
001830: 61 73 73 65 74 74 65 2E 20 54 68 69 73 20 72 6F assette. This ro
001840: 75 74 69 6E 65 20 69 73 20 20 75 73 65 64 20 20 utine is used
001850: 62 79 20 20 74 68 65 20 20 68 69 67 68 65 72 0D by the higher.
001860: 0A 20 20 20 20 20 20 20 6C 65 76 65 6C 20 72 6F . level ro
001870: 75 74 69 6E 65 73 20 28 43 41 53 20 4F 55 54 20 utines (CAS OUT
001880: 43 48 41 52 2C 20 43 41 53 20 4F 55 54 20 44 49 CHAR, CAS OUT DI
001890: 52 45 43 54 20 61 6E 64 20 20 43 41 53 20 20 4F RECT and CAS O
0018A0: 55 54 20 20 43 4C 4F 53 45 29 20 20 74 6F 0D 0A UT CLOSE) to..
0018B0: 20 20 20 20 20 20 20 77 72 69 74 65 20 74 68 65 write the
0018C0: 20 68 65 61 64 65 72 20 61 6E 64 20 64 61 74 61 header and data
0018D0: 20 72 65 63 6F 72 64 73 20 74 68 61 74 20 6D 61 records that ma
0018E0: 6B 65 20 75 70 20 61 20 74 61 70 65 20 66 69 6C ke up a tape fil
0018F0: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 e..... Ent
001900: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
001910: 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 .. HL cont
001920: 61 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 ains the address
001930: 20 6F 66 20 74 68 65 20 64 61 74 61 20 74 6F 20 of the data to
001940: 77 72 69 74 65 2E 0D 0A 20 20 20 20 20 20 20 44 write... D
001950: 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 6C E contains the l
001960: 65 6E 67 74 68 20 6F 66 20 74 68 65 20 64 61 74 ength of the dat
001970: 61 20 74 6F 20 77 72 69 74 65 2E 0D 0A 20 20 20 a to write...
001980: 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 A contains t
001990: 68 65 20 73 79 6E 63 20 63 68 61 72 61 63 74 65 he sync characte
0019A0: 72 20 74 6F 20 77 72 69 74 65 20 61 74 20 74 68 r to write at th
0019B0: 65 20 65 6E 64 20 6F 66 20 74 68 65 20 6C 65 61 e end of the lea
0019C0: 64 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 der..... E
0019D0: 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D xit conditions:.
0019E0: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
0019F0: 20 72 65 63 6F 72 64 20 77 61 73 20 77 72 69 74 record was writ
001A00: 74 65 6E 20 4F 4B 3A 0D 0A 0D 0A 20 20 20 20 20 ten OK:....
001A10: 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 Carry
001A20: 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 true...
001A30: 20 20 20 20 20 20 20 20 41 20 63 6F 72 72 75 70 A corrup
001A40: 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 t..... If
001A50: 61 6E 20 65 72 72 6F 72 20 6F 63 63 75 72 72 65 an error occurre
001A60: 64 20 6F 72 20 74 68 65 20 75 73 65 72 20 68 69 d or the user hi
001A70: 74 20 65 73 63 61 70 65 3A 0D 0A 0D 0A 20 20 20 t escape:....
001A80: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 Car
001A90: 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 ry false...
001AA0: 20 20 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E A con
001AB0: 74 61 69 6E 73 20 61 6E 20 65 72 72 6F 72 20 63 tains an error c
001AC0: 6F 64 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ode..... A
001AD0: 6C 77 61 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 lways:....
001AE0: 20 20 20 20 20 20 20 20 20 20 42 43 2C 20 44 45 BC, DE
001AF0: 2C 20 48 4C 2C 20 49 58 20 63 6F 72 72 75 70 74 , HL, IX corrupt
001B00: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
001B10: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
001B20: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
001B30: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
001B40: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 s:...... A
001B50: 20 64 61 74 61 20 6C 65 6E 67 74 68 20 6F 66 20 data length of
001B60: 30 20 70 61 73 73 65 64 20 74 6F 20 74 68 69 73 0 passed to this
001B70: 20 72 6F 75 74 69 6E 65 20 69 73 20 74 61 6B 65 routine is take
001B80: 6E 20 74 6F 20 6D 65 61 6E 20 36 35 35 33 36 20 n to mean 65536
001B90: 62 79 74 65 73 0D 0A 20 20 20 20 20 20 20 61 6E bytes.. an
001BA0: 64 20 61 6C 6C 20 6F 66 20 74 68 65 20 6D 65 6D d all of the mem
001BB0: 6F 72 79 20 77 69 6C 6C 20 62 65 20 77 72 69 74 ory will be writ
001BC0: 74 65 6E 20 74 6F 20 74 61 70 65 2E 20 28 54 68 ten to tape. (Th
001BD0: 69 73 20 69 73 20 75 6E 6C 69 6B 65 6C 79 20 74 is is unlikely t
001BE0: 6F 20 62 65 0D 0A 20 20 20 20 20 20 20 75 73 65 o be.. use
001BF0: 66 75 6C 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ful).......
001C00: 20 20 54 68 65 20 64 61 74 61 20 74 6F 20 62 65 The data to be
001C10: 20 77 72 69 74 74 65 6E 20 6D 61 79 20 6C 69 65 written may lie
001C20: 20 61 6E 79 77 68 65 72 65 20 69 6E 20 52 41 4D anywhere in RAM
001C30: 2C 20 65 76 65 6E 20 75 6E 64 65 72 6E 65 61 74 , even underneat
001C40: 68 20 61 20 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 20 20 h a ROM.......
001C50: 20 20 20 20 20 54 68 65 20 73 79 6E 63 20 63 68 The sync ch
001C60: 61 72 61 63 74 65 72 20 69 73 20 75 73 65 64 20 aracter is used
001C70: 74 6F 20 64 69 73 74 69 6E 67 75 69 73 68 20 68 to distinguish h
001C80: 65 61 64 65 72 20 72 65 63 6F 72 64 73 20 28 73 eader records (s
001C90: 79 6E 63 20 69 73 20 23 32 43 29 0D 0A 20 20 20 ync is #2C)..
001CA0: 20 20 20 20 66 72 6F 6D 20 64 61 74 61 20 72 65 from data re
001CB0: 63 6F 72 64 73 20 28 73 79 6E 63 20 69 73 20 23 cords (sync is #
001CC0: 31 36 29 2E 20 4F 74 68 65 72 20 73 79 6E 63 20 16). Other sync
001CD0: 63 68 61 72 61 63 74 65 72 73 20 63 6F 75 6C 64 characters could
001CE0: 20 20 62 65 20 20 75 73 65 64 0D 0A 20 20 20 20 be used..
001CF0: 20 20 20 62 75 74 20 74 68 65 20 72 65 73 75 6C but the resul
001D00: 74 69 6E 67 20 72 65 63 6F 72 64 20 77 6F 75 6C ting record woul
001D10: 64 20 72 65 71 75 69 72 65 20 73 70 65 63 69 61 d require specia
001D20: 6C 20 61 63 74 69 6F 6E 20 74 6F 20 62 65 20 20 l action to be
001D30: 74 61 6B 65 6E 20 20 74 6F 0D 0A 20 20 20 20 20 taken to..
001D40: 20 20 72 65 61 64 20 69 74 2E 0D 0A 0D 0A 0D 0A read it.......
001D50: 20 20 20 20 20 20 20 54 68 65 20 65 72 72 6F 72 The error
001D60: 20 63 6F 64 65 73 20 72 65 74 75 72 6E 65 64 20 codes returned
001D70: 62 79 20 74 68 69 73 20 72 6F 75 74 69 6E 65 20 by this routine
001D80: 61 72 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 are:....
001D90: 20 20 20 20 20 20 20 20 30 20 20 20 20 42 72 65 0 Bre
001DA0: 61 6B 20 20 20 20 20 20 20 20 20 20 54 68 65 20 ak The
001DB0: 75 73 65 72 20 68 69 74 20 74 68 65 20 65 73 63 user hit the esc
001DC0: 61 70 65 20 6B 65 79 2E 0D 0A 20 20 20 20 20 20 ape key...
001DD0: 20 20 20 20 20 20 20 20 20 20 31 20 20 20 20 4F 1 O
001DE0: 76 65 72 72 75 6E 20 20 20 20 20 20 20 20 54 68 verrun Th
001DF0: 65 20 43 61 73 73 65 74 74 65 20 4D 61 6E 61 67 e Cassette Manag
001E00: 65 72 20 77 61 73 20 20 75 6E 61 62 6C 65 20 20 er was unable
001E10: 74 6F 20 20 67 65 74 0D 0A 20 20 20 20 20 20 20 to get..
001E20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001E30: 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 bac
001E40: 6B 20 74 6F 20 77 72 69 74 69 6E 67 20 61 20 62 k to writing a b
001E50: 69 74 20 66 61 73 74 20 65 6E 6F 75 67 68 2E 0D it fast enough..
001E60: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
001E70: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
001E80: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
001E90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001EA0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
001EB0: 31 35 2E 31 36 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.162..........
001EC0: 0D 0A 0D 0A 20 20 20 20 20 20 20 42 65 63 61 75 .... Becau
001ED0: 73 65 20 20 72 65 61 64 69 6E 67 20 20 61 6E 64 se reading and
001EE0: 20 20 77 72 69 74 69 6E 67 20 20 74 68 65 20 20 writing the
001EF0: 74 61 70 65 20 20 72 65 71 75 69 72 65 73 20 20 tape requires
001F00: 73 74 72 69 6E 67 65 6E 74 20 20 74 69 6D 69 6E stringent timin
001F10: 67 0D 0A 20 20 20 20 20 20 20 63 6F 6E 73 69 64 g.. consid
001F20: 65 72 61 74 69 6F 6E 73 20 69 6E 74 65 72 72 75 erations interru
001F30: 70 74 73 20 20 61 72 65 20 20 64 69 73 61 62 6C pts are disabl
001F40: 65 64 20 20 77 68 69 6C 73 74 20 20 74 68 65 20 ed whilst the
001F50: 20 74 61 70 65 20 20 69 73 20 20 62 65 69 6E 67 tape is being
001F60: 0D 0A 20 20 20 20 20 20 20 77 72 69 74 74 65 6E .. written
001F70: 20 28 70 6F 74 65 6E 74 69 61 6C 6C 79 20 20 61 (potentially a
001F80: 20 20 70 65 72 69 6F 64 20 20 6F 66 20 20 6F 76 period of ov
001F90: 65 72 20 20 35 20 20 6D 69 6E 75 74 65 73 29 2E er 5 minutes).
001FA0: 20 20 49 74 20 20 77 6F 75 6C 64 20 20 62 65 0D It would be.
001FB0: 0A 20 20 20 20 20 20 20 75 6E 70 6C 65 61 73 61 . unpleasa
001FC0: 6E 74 20 74 6F 20 68 61 76 65 20 74 68 65 20 73 nt to have the s
001FD0: 6F 75 6E 64 20 63 68 69 70 20 6D 61 6B 69 6E 67 ound chip making
001FE0: 20 61 20 6E 6F 69 73 65 20 66 6F 72 20 61 6C 6C a noise for all
001FF0: 20 74 68 69 73 20 74 69 6D 65 20 20 73 6F 0D 0A this time so..
002000: 20 20 20 20 20 20 20 74 68 65 20 53 6F 75 6E 64 the Sound
002010: 20 4D 61 6E 61 67 65 72 20 69 73 20 73 68 75 74 Manager is shut
002020: 20 64 6F 77 6E 20 28 53 4F 55 4E 44 20 52 45 53 down (SOUND RES
002030: 45 54 29 2E 20 57 68 65 6E 20 77 72 69 74 69 6E ET). When writin
002040: 67 20 74 6F 20 74 68 65 20 74 61 70 65 0D 0A 20 g to the tape..
002050: 20 20 20 20 20 20 68 61 73 20 66 69 6E 69 73 68 has finish
002060: 65 64 20 69 6E 74 65 72 72 75 70 74 73 20 61 72 ed interrupts ar
002070: 65 20 72 65 2D 65 6E 61 62 6C 65 64 2E 0D 0A 0D e re-enabled....
002080: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
002090: 63 61 73 73 65 74 74 65 20 6D 6F 74 6F 72 20 69 cassette motor i
0020A0: 73 20 73 74 61 72 74 65 64 20 62 79 20 74 68 69 s started by thi
0020B0: 73 20 20 72 6F 75 74 69 6E 65 20 20 28 69 6E 20 s routine (in
0020C0: 20 63 61 73 65 20 20 69 74 20 20 69 73 20 20 6E case it is n
0020D0: 6F 74 0D 0A 20 20 20 20 20 20 20 61 6C 72 65 61 ot.. alrea
0020E0: 64 79 20 6F 6E 29 20 61 6E 64 20 20 72 65 73 74 dy on) and rest
0020F0: 6F 72 65 64 20 20 74 6F 20 20 69 74 73 20 20 70 ored to its p
002100: 72 65 76 69 6F 75 73 20 20 73 74 61 74 65 20 20 revious state
002110: 77 68 65 6E 20 20 77 72 69 74 69 6E 67 20 20 69 when writing i
002120: 73 0D 0A 20 20 20 20 20 20 20 63 6F 6D 70 6C 65 s.. comple
002130: 74 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ted...........
002140: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
002150: 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 ries:........
002160: 20 20 20 20 43 41 53 20 43 48 45 43 4B 0D 0A 20 CAS CHECK..
002170: 20 20 20 20 20 20 43 41 53 20 52 45 41 44 0D 0A CAS READ..
002180: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
002190: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0021A0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0021B0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0021C0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
0021D0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
0021E0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
0021F0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
002200: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
002210: 20 31 35 2E 31 36 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.163.........
002220: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 33 39 3A ..... 139:
002230: 20 43 41 53 20 52 45 41 44 20 20 20 20 20 20 20 CAS READ
002240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002260: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 #BC
002270: 41 31 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 61 A1.... Rea
002280: 64 20 61 20 72 65 63 6F 72 64 20 66 72 6F 6D 20 d a record from
002290: 74 61 70 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 tape.....
0022A0: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 Action:....
0022B0: 20 20 52 65 61 64 20 61 20 77 68 6F 6C 65 20 72 Read a whole r
0022C0: 65 63 6F 72 64 20 66 72 6F 6D 20 74 68 65 20 63 ecord from the c
0022D0: 61 73 73 65 74 74 65 2E 20 54 68 69 73 20 72 6F assette. This ro
0022E0: 75 74 69 6E 65 20 20 69 73 20 20 75 73 65 64 20 utine is used
0022F0: 20 62 79 20 20 74 68 65 0D 0A 20 20 20 20 20 20 by the..
002300: 20 68 69 67 68 65 72 20 6C 65 76 65 6C 20 72 6F higher level ro
002310: 75 74 69 6E 65 73 20 28 43 41 53 20 49 4E 20 43 utines (CAS IN C
002320: 48 41 52 2C 20 43 41 53 20 20 49 4E 20 20 44 49 HAR, CAS IN DI
002330: 52 45 43 54 20 20 61 6E 64 20 20 43 41 53 20 20 RECT and CAS
002340: 43 41 54 41 4C 4F 47 0D 0A 20 20 20 20 20 20 20 CATALOG..
002350: 61 6D 6F 6E 67 73 74 20 6F 74 68 65 72 73 29 20 amongst others)
002360: 74 6F 20 72 65 61 64 20 74 68 65 20 68 65 61 64 to read the head
002370: 65 72 20 61 6E 64 20 64 61 74 61 20 72 65 63 6F er and data reco
002380: 72 64 73 20 20 74 68 61 74 20 20 6D 61 6B 65 20 rds that make
002390: 20 75 70 20 20 61 0D 0A 20 20 20 20 20 20 20 66 up a.. f
0023A0: 69 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 ile..... E
0023B0: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
0023C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 6F .... HL co
0023D0: 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 65 ntains the addre
0023E0: 73 73 20 74 6F 20 70 75 74 20 74 68 65 20 64 61 ss to put the da
0023F0: 74 61 20 72 65 61 64 2E 0D 0A 20 20 20 20 20 20 ta read...
002400: 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 DE contains the
002410: 20 6C 65 6E 67 74 68 20 6F 66 20 74 68 65 20 64 length of the d
002420: 61 74 61 20 74 6F 20 72 65 61 64 2E 0D 0A 20 20 ata to read...
002430: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
002440: 74 68 65 20 73 79 6E 63 20 63 68 61 72 61 63 74 the sync charact
002450: 65 72 20 65 78 70 65 63 74 65 64 20 61 74 20 74 er expected at t
002460: 68 65 20 65 6E 64 20 6F 66 20 74 68 65 20 6C 65 he end of the le
002470: 61 64 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ader.....
002480: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
002490: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 72 65 .... If re
0024A0: 63 6F 72 64 20 77 61 73 20 72 65 61 64 20 4F 4B cord was read OK
0024B0: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 :....
0024C0: 20 20 20 20 20 43 61 72 72 79 20 74 72 75 65 2E Carry true.
0024D0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0024E0: 20 20 41 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A A corrupt.....
0024F0: 20 20 20 20 20 20 20 49 66 20 61 6E 20 65 72 72 If an err
002500: 6F 72 20 6F 63 63 75 72 72 65 64 20 6F 72 20 74 or occurred or t
002510: 68 65 20 75 73 65 72 20 68 69 74 20 65 73 63 61 he user hit esca
002520: 70 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 pe:....
002530: 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C Carry fal
002540: 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 se...
002550: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
002560: 61 6E 20 65 72 72 6F 72 20 63 6F 64 65 2E 0D 0A an error code...
002570: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 79 .... Alway
002580: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s:....
002590: 20 20 20 20 20 20 42 43 2C 20 44 45 2C 20 48 4C BC, DE, HL
0025A0: 2C 20 49 58 20 61 6E 64 20 6F 74 68 65 72 20 66 , IX and other f
0025B0: 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 lags corrupt...
0025C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
0025D0: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
0025E0: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
0025F0: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
002600: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 64 ...... A d
002610: 61 74 61 20 6C 65 6E 67 74 68 20 6F 66 20 30 20 ata length of 0
002620: 70 61 73 73 65 64 20 74 6F 20 74 68 69 73 20 20 passed to this
002630: 72 6F 75 74 69 6E 65 20 20 69 73 20 20 74 61 6B routine is tak
002640: 65 6E 20 20 74 6F 20 20 6D 65 61 6E 20 20 36 35 en to mean 65
002650: 35 33 36 0D 0A 20 20 20 20 20 20 20 62 79 74 65 536.. byte
002660: 73 2E 20 28 54 68 69 73 20 69 73 20 6E 6F 74 20 s. (This is not
002670: 75 73 65 66 75 6C 29 2E 0D 0A 0D 0A 0D 0A 20 20 useful).......
002680: 20 20 20 20 20 49 74 20 69 73 20 6E 6F 74 20 6E It is not n
002690: 65 63 65 73 73 61 72 79 20 74 6F 20 72 65 61 64 ecessary to read
0026A0: 20 61 20 77 68 6F 6C 65 20 72 65 63 6F 72 64 20 a whole record
0026B0: 66 72 6F 6D 20 74 61 70 65 2E 20 20 49 66 20 20 from tape. If
0026C0: 74 68 65 20 20 6C 65 6E 67 74 68 0D 0A 20 20 20 the length..
0026D0: 20 20 20 20 70 61 73 73 65 64 20 69 73 20 6C 65 passed is le
0026E0: 73 73 20 74 68 61 6E 20 74 68 65 20 61 63 74 75 ss than the actu
0026F0: 61 6C 20 6C 65 6E 67 74 68 20 6F 66 20 20 74 68 al length of th
002700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
002710: 02 00 00 00 02 09 50 E5 02 00 C1 02 00 00 00 02 ......P.........
002720: 02 00 C2 02 00 00 00 02 02 00 C3 02 00 00 00 02 ................
002730: 02 00 C4 02 00 00 00 02 02 00 C5 02 00 00 00 02 ................
002740: 02 00 C6 02 00 00 00 02 02 00 C7 02 00 00 00 02 ................
002750: 02 00 C8 02 00 00 00 02 02 00 C9 02 00 00 00 02 ................
002760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002800: 65 20 20 72 65 63 6F 72 64 20 20 74 68 65 6E 20 e record then
002810: 20 6F 6E 6C 79 20 20 74 68 65 0D 0A 20 20 20 20 only the..
002820: 20 20 20 6E 75 6D 62 65 72 20 6F 66 20 62 79 74 number of byt
002830: 65 73 20 77 69 6C 6C 20 62 65 20 72 65 61 64 2E es will be read.
002840: 20 54 72 79 69 6E 67 20 74 6F 20 72 65 61 64 20 Trying to read
002850: 6D 6F 72 65 20 62 79 74 65 73 20 66 72 6F 6D 20 more bytes from
002860: 61 20 20 72 65 63 6F 72 64 0D 0A 20 20 20 20 20 a record..
002870: 20 20 74 68 61 6E 20 77 65 72 65 20 77 72 69 74 than were writ
002880: 74 65 6E 20 77 69 6C 6C 20 70 72 6F 64 75 63 65 ten will produce
002890: 20 61 6E 20 65 72 72 6F 72 2C 20 20 75 73 75 61 an error, usua
0028A0: 6C 6C 79 20 20 61 6E 20 20 6F 76 65 72 66 6C 6F lly an overflo
0028B0: 77 20 20 65 72 72 6F 72 0D 0A 20 20 20 20 20 20 w error..
0028C0: 20 28 73 65 65 20 62 65 6C 6F 77 29 2E 0D 0A 0D (see below)....
0028D0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 79 ... The sy
0028E0: 6E 63 20 63 68 61 72 61 63 74 65 72 20 69 73 20 nc character is
0028F0: 75 73 65 64 20 74 6F 20 64 69 73 74 69 6E 67 75 used to distingu
002900: 69 73 68 20 68 65 61 64 65 72 20 72 65 63 6F 72 ish header recor
002910: 64 73 20 28 73 79 6E 63 20 69 73 20 23 32 43 29 ds (sync is #2C)
002920: 0D 0A 20 20 20 20 20 20 20 66 72 6F 6D 20 64 61 .. from da
002930: 74 61 20 72 65 63 6F 72 64 73 20 28 73 79 6E 63 ta records (sync
002940: 20 69 73 20 23 31 36 29 2E 20 4F 74 68 65 72 20 is #16). Other
002950: 73 79 6E 63 20 63 68 61 72 61 63 74 65 72 73 20 sync characters
002960: 63 6F 75 6C 64 20 20 62 65 20 20 75 73 65 64 0D could be used.
002970: 0A 20 20 20 20 20 20 20 69 66 20 74 68 65 20 72 . if the r
002980: 65 63 6F 72 64 20 77 61 73 20 77 72 69 74 74 65 ecord was writte
002990: 6E 20 74 68 61 74 20 77 61 79 2E 0D 0A 0D 0A 0D n that way......
0029A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0029B0: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
0029C0: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
0029D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0029E0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
0029F0: 31 35 2E 31 36 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.164..........
002A00: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 65 .... The e
002A10: 72 72 6F 72 20 63 6F 64 65 73 20 72 65 74 75 72 rror codes retur
002A20: 6E 65 64 20 62 79 20 74 68 69 73 20 72 6F 75 74 ned by this rout
002A30: 69 6E 65 20 61 72 65 3A 0D 0A 0D 0A 0D 0A 20 20 ine are:......
002A40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 0
002A50: 20 20 20 42 72 65 61 6B 20 20 20 20 20 20 20 20 Break
002A60: 20 20 54 68 65 20 75 73 65 72 20 68 69 74 20 74 The user hit t
002A70: 68 65 20 65 73 63 61 70 65 20 6B 65 79 2E 0D 0A he escape key...
002A80: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
002A90: 20 20 20 20 31 20 20 20 20 4F 76 65 72 66 6C 6F 1 Overflo
002AA0: 77 20 20 20 20 20 20 20 54 68 65 20 43 61 73 73 w The Cass
002AB0: 65 74 74 65 20 4D 61 6E 61 67 65 72 20 66 6F 75 ette Manager fou
002AC0: 6E 64 20 61 20 62 69 74 20 74 68 61 74 20 77 61 nd a bit that wa
002AD0: 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 s..
002AE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002AF0: 20 20 20 20 20 20 20 74 6F 6F 20 6C 6F 6E 67 20 too long
002B00: 74 6F 20 72 65 61 64 2E 0D 0A 0D 0A 0D 0A 20 20 to read.......
002B10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 20 2
002B20: 20 20 20 43 52 43 20 20 20 20 20 20 20 20 20 20 CRC
002B30: 20 20 41 20 43 52 43 20 66 61 69 6C 75 72 65 20 A CRC failure
002B40: 77 61 73 20 64 65 74 65 63 74 65 64 2E 0D 0A 0D was detected....
002B50: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 63 61 ... The ca
002B60: 73 73 65 74 74 65 20 6D 6F 74 6F 72 20 69 73 20 ssette motor is
002B70: 73 74 61 72 74 65 64 20 62 79 20 74 68 69 73 20 started by this
002B80: 20 72 6F 75 74 69 6E 65 20 20 28 69 6E 20 20 63 routine (in c
002B90: 61 73 65 20 20 69 74 20 20 69 73 20 20 6E 6F 74 ase it is not
002BA0: 0D 0A 20 20 20 20 20 20 20 61 6C 72 65 61 64 79 .. already
002BB0: 20 6F 6E 29 20 61 6E 64 20 20 72 65 73 74 6F 72 on) and restor
002BC0: 65 64 20 20 74 6F 20 20 69 74 73 20 20 70 72 65 ed to its pre
002BD0: 76 69 6F 75 73 20 20 73 74 61 74 65 20 20 77 68 vious state wh
002BE0: 65 6E 20 20 72 65 61 64 69 6E 67 20 20 69 73 0D en reading is.
002BF0: 0A 20 20 20 20 20 20 20 63 6F 6D 70 6C 65 74 65 . complete
002C00: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 42 d....... B
002C10: 65 63 61 75 73 65 20 20 72 65 61 64 69 6E 67 20 ecause reading
002C20: 20 74 68 65 20 20 74 61 70 65 20 20 72 65 71 75 the tape requ
002C30: 69 72 65 73 20 20 73 74 72 69 6E 67 65 6E 74 20 ires stringent
002C40: 20 74 69 6D 69 6E 67 20 20 63 6F 6E 73 74 72 61 timing constra
002C50: 69 6E 74 73 2C 0D 0A 20 20 20 20 20 20 20 69 6E ints,.. in
002C60: 74 65 72 72 75 70 74 73 20 61 72 65 20 64 69 73 terrupts are dis
002C70: 61 62 6C 65 64 20 77 68 69 6C 73 74 20 74 68 65 abled whilst the
002C80: 20 74 61 70 65 20 69 73 20 62 65 69 6E 67 20 72 tape is being r
002C90: 65 61 64 20 20 28 70 6F 74 65 6E 74 69 61 6C 6C ead (potentiall
002CA0: 79 20 20 61 0D 0A 20 20 20 20 20 20 20 70 65 72 y a.. per
002CB0: 69 6F 64 20 6F 66 20 6F 76 65 72 20 35 20 6D 69 iod of over 5 mi
002CC0: 6E 75 74 65 73 29 2E 20 49 74 20 77 6F 75 6C 64 nutes). It would
002CD0: 20 62 65 20 75 6E 70 6C 65 61 73 61 6E 74 20 74 be unpleasant t
002CE0: 6F 20 20 68 61 76 65 20 20 74 68 65 20 20 73 6F o have the so
002CF0: 75 6E 64 0D 0A 20 20 20 20 20 20 20 63 68 69 70 und.. chip
002D00: 20 6D 61 6B 69 6E 67 20 61 20 6E 6F 69 73 65 20 making a noise
002D10: 66 6F 72 20 61 6C 6C 20 74 68 69 73 20 74 69 6D for all this tim
002D20: 65 20 73 6F 20 74 68 65 20 20 53 6F 75 6E 64 20 e so the Sound
002D30: 20 4D 61 6E 61 67 65 72 20 20 69 73 20 20 73 68 Manager is sh
002D40: 75 74 0D 0A 20 20 20 20 20 20 20 64 6F 77 6E 20 ut.. down
002D50: 28 53 4F 55 4E 44 20 52 45 53 45 54 29 2E 20 57 (SOUND RESET). W
002D60: 68 65 6E 20 72 65 61 64 69 6E 67 20 66 72 6F 6D hen reading from
002D70: 20 74 68 65 20 74 61 70 65 20 68 61 73 20 66 69 the tape has fi
002D80: 6E 69 73 68 65 64 20 69 6E 74 65 72 72 75 70 74 nished interrupt
002D90: 73 0D 0A 20 20 20 20 20 20 20 61 72 65 20 72 65 s.. are re
002DA0: 2D 65 6E 61 62 6C 65 64 2E 0D 0A 0D 0A 0D 0A 0D -enabled........
002DB0: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
002DC0: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A d entries:......
002DD0: 20 20 20 20 20 20 20 43 41 53 20 43 48 45 43 4B CAS CHECK
002DE0: 0D 0A 20 20 20 20 20 20 20 43 41 53 20 57 52 49 .. CAS WRI
002DF0: 54 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A TE..............
002E00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
002E10: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
002E20: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
002E30: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
002E40: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
002E50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002E60: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
002E70: 35 2E 31 36 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 5.165...........
002E80: 0A 0D 0A 20 20 20 20 20 20 20 31 34 30 3A 20 43 ... 140: C
002E90: 41 53 20 43 48 45 43 4B 20 20 20 20 20 20 20 20 AS CHECK
002EA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002EB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002EC0: 20 20 20 20 20 20 20 20 20 20 20 23 42 43 41 34 #BCA4
002ED0: 0D 0A 0D 0A 20 20 20 20 20 20 20 43 6F 6D 70 61 .... Compa
002EE0: 72 65 20 61 20 72 65 63 6F 72 64 20 6F 6E 20 74 re a record on t
002EF0: 61 70 65 20 77 69 74 68 20 74 68 65 20 63 6F 6E ape with the con
002F00: 74 65 6E 74 73 20 6F 66 20 73 74 6F 72 65 2E 0D tents of store..
002F10: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
002F20: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 68 65 63 :.... Chec
002F30: 6B 20 74 68 61 74 20 61 20 74 61 70 65 20 72 65 k that a tape re
002F40: 63 6F 72 64 20 20 63 6F 6E 74 61 69 6E 73 20 20 cord contains
002F50: 61 20 20 63 6F 72 72 65 63 74 20 20 76 65 72 73 a correct vers
002F60: 69 6F 6E 20 20 6F 66 20 20 74 68 65 20 20 64 61 ion of the da
002F70: 74 61 0D 0A 20 20 20 20 20 20 20 73 75 70 70 6C ta.. suppl
002F80: 69 65 64 2E 20 54 68 69 73 20 72 6F 75 74 69 6E ied. This routin
002F90: 65 20 69 73 20 69 6E 74 65 6E 64 65 64 20 74 6F e is intended to
002FA0: 20 62 65 20 75 73 65 64 20 61 66 74 65 72 20 77 be used after w
002FB0: 72 69 74 69 6E 67 20 72 65 63 6F 72 64 73 20 74 riting records t
002FC0: 6F 0D 0A 20 20 20 20 20 20 20 63 68 65 63 6B 20 o.. check
002FD0: 74 68 61 74 20 74 68 65 79 20 77 65 72 65 20 77 that they were w
002FE0: 72 69 74 74 65 6E 20 63 6F 72 72 65 63 74 6C 79 ritten correctly
002FF0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
003000: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
003010: 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 . HL conta
003020: 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 ins the address
003030: 6F 66 20 74 68 65 20 64 61 74 61 20 74 6F 20 63 of the data to c
003040: 68 65 63 6B 2E 0D 0A 20 20 20 20 20 20 20 44 45 heck... DE
003050: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 6C 65 contains the le
003060: 6E 67 74 68 20 6F 66 20 74 68 65 20 64 61 74 61 ngth of the data
003070: 20 74 6F 20 63 68 65 63 6B 2E 0D 0A 20 20 20 20 to check...
003080: 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 A contains th
003090: 65 20 73 79 6E 63 20 63 68 61 72 61 63 74 65 72 e sync character
0030A0: 20 65 78 70 65 63 74 65 64 20 61 74 20 74 68 65 expected at the
0030B0: 20 65 6E 64 20 6F 66 20 74 68 65 20 6C 65 61 64 end of the lead
0030C0: 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 er..... Ex
0030D0: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
0030E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 .... If th
0030F0: 65 20 72 65 63 6F 72 64 20 63 68 65 63 6B 65 64 e record checked
003100: 20 4F 4B 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 OK:....
003110: 20 20 20 20 20 20 20 20 43 61 72 72 79 20 74 72 Carry tr
003120: 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ue...
003130: 20 20 20 20 20 41 20 63 6F 72 72 75 70 74 2E 0D A corrupt..
003140: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 61 6E 20 ... If an
003150: 65 72 72 6F 72 20 6F 63 63 75 72 72 65 64 20 6F error occurred o
003160: 72 20 74 68 65 20 75 73 65 72 20 68 69 74 20 65 r the user hit e
003170: 73 63 61 70 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 scape:....
003180: 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 Carry
003190: 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 false...
0031A0: 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 A contai
0031B0: 6E 73 20 61 6E 20 65 72 72 6F 72 20 63 6F 64 65 ns an error code
0031C0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C ....... Al
0031D0: 77 61 79 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ways:......
0031E0: 20 20 20 20 20 20 20 20 20 20 20 42 43 2C 20 44 BC, D
0031F0: 45 2C 20 48 4C 2C 20 49 58 20 61 6E 64 20 6F 74 E, HL, IX and ot
003200: 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 her flags corrup
003210: 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 t...
003220: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
003230: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
003240: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 d..... Not
003250: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
003260: 41 20 64 61 74 61 20 6C 65 6E 67 74 68 20 6F 66 A data length of
003270: 20 30 20 70 61 73 73 65 64 20 74 6F 20 74 68 69 0 passed to thi
003280: 73 20 20 72 6F 75 74 69 6E 65 20 20 69 73 20 20 s routine is
003290: 74 61 6B 65 6E 20 20 74 6F 20 20 6D 65 61 6E 20 taken to mean
0032A0: 20 36 35 35 33 36 0D 0A 20 20 20 20 20 20 20 62 65536.. b
0032B0: 79 74 65 73 2E 20 28 54 68 69 73 20 69 73 20 62 ytes. (This is b
0032C0: 6F 75 6E 64 20 74 6F 20 70 72 6F 64 75 63 65 20 ound to produce
0032D0: 61 20 63 68 65 63 6B 20 66 61 69 6C 75 72 65 29 a check failure)
0032E0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 74 ....... It
0032F0: 20 69 73 20 6E 6F 74 20 6E 65 63 65 73 73 61 72 is not necessar
003300: 79 20 74 6F 20 63 68 65 63 6B 20 74 68 65 20 77 y to check the w
003310: 68 6F 6C 65 20 6F 66 20 61 20 72 65 63 6F 72 64 hole of a record
003320: 20 20 6F 6E 20 20 74 61 70 65 2E 20 20 49 66 20 on tape. If
003330: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 6C 65 6E the.. len
003340: 67 74 68 20 70 61 73 73 65 64 20 69 73 20 6C 65 gth passed is le
003350: 73 73 20 74 68 61 6E 20 74 68 65 20 61 63 74 75 ss than the actu
003360: 61 6C 20 6C 65 6E 67 74 68 20 6F 66 20 74 68 65 al length of the
003370: 20 72 65 63 6F 72 64 20 20 74 68 65 6E 20 20 6F record then o
003380: 6E 6C 79 0D 0A 20 20 20 20 20 20 20 74 68 65 20 nly.. the
003390: 6E 75 6D 62 65 72 20 6F 66 20 62 79 74 65 73 20 number of bytes
0033A0: 77 69 6C 6C 20 62 65 20 63 68 65 63 6B 65 64 2E will be checked.
0033B0: 20 54 72 79 69 6E 67 20 74 6F 20 63 68 65 63 6B Trying to check
0033C0: 20 6D 6F 72 65 20 62 79 74 65 73 20 20 69 6E 20 more bytes in
0033D0: 20 61 0D 0A 20 20 20 20 20 20 20 72 65 63 6F 72 a.. recor
0033E0: 64 20 74 68 61 6E 20 77 65 72 65 20 77 72 69 74 d than were writ
0033F0: 74 65 6E 20 77 69 6C 6C 20 70 72 6F 64 75 63 65 ten will produce
003400: 20 20 61 6E 20 20 65 72 72 6F 72 20 20 6F 66 20 an error of
003410: 20 73 6F 6D 65 20 20 73 6F 72 74 20 20 28 73 65 some sort (se
003420: 65 0D 0A 20 20 20 20 20 20 20 62 65 6C 6F 77 29 e.. below)
003430: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
003440: 65 20 64 61 74 61 20 74 6F 20 62 65 20 63 68 65 e data to be che
003450: 63 6B 65 64 20 6D 61 79 20 6C 69 65 20 61 6E 79 cked may lie any
003460: 77 68 65 72 65 20 69 6E 20 52 41 4D 2C 20 65 76 where in RAM, ev
003470: 65 6E 20 75 6E 64 65 72 6E 65 61 74 68 20 61 20 en underneath a
003480: 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ROM.......
003490: 20 54 68 65 20 73 79 6E 63 20 63 68 61 72 61 63 The sync charac
0034A0: 74 65 72 20 69 73 20 75 73 65 64 20 74 6F 20 64 ter is used to d
0034B0: 69 73 74 69 6E 67 75 69 73 68 20 68 65 61 64 65 istinguish heade
0034C0: 72 20 72 65 63 6F 72 64 73 20 28 73 79 6E 63 20 r records (sync
0034D0: 69 73 20 23 32 43 29 0D 0A 20 20 20 20 20 20 20 is #2C)..
0034E0: 66 72 6F 6D 20 64 61 74 61 20 72 65 63 6F 72 64 from data record
0034F0: 73 20 28 73 79 6E 63 20 69 73 20 23 31 36 29 2E s (sync is #16).
003500: 20 4F 74 68 65 72 20 73 79 6E 63 20 63 68 61 72 Other sync char
003510: 61 63 74 65 72 73 20 63 6F 75 6C 64 20 62 65 20 acters could be
003520: 75 73 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 used...........
003530: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
003540: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
003550: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
003560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003570: 20 70 61 67 65 20 31 35 2E 31 36 36 0D 0A 0D 0A page 15.166....
003580: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
003590: 20 54 68 65 20 65 72 72 6F 72 20 63 6F 64 65 73 The error codes
0035A0: 20 72 65 74 75 72 6E 65 64 20 62 79 20 74 68 69 returned by thi
0035B0: 73 20 72 6F 75 74 69 6E 65 20 61 72 65 3A 0D 0A s routine are:..
0035C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
0035D0: 20 20 20 20 30 20 20 20 20 42 72 65 61 6B 20 20 0 Break
0035E0: 20 20 20 20 20 20 20 20 54 68 65 20 75 73 65 72 The user
0035F0: 20 68 69 74 20 74 68 65 20 65 73 63 61 70 65 20 hit the escape
003600: 6B 65 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 key.......
003610: 20 20 20 20 20 20 20 20 20 20 31 20 20 20 20 4F 1 O
003620: 76 65 72 72 75 6E 20 20 20 20 20 20 20 20 54 68 verrun Th
003630: 65 20 43 61 73 73 65 74 74 65 20 4D 61 6E 61 67 e Cassette Manag
003640: 65 72 20 66 6F 75 6E 64 20 61 20 62 69 74 20 74 er found a bit t
003650: 68 61 74 20 77 61 73 0D 0A 20 20 20 20 20 20 20 hat was..
003660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003670: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6F 6F too
003680: 20 6C 6F 6E 67 20 74 6F 20 72 65 61 64 2E 0D 0A long to read...
003690: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
0036A0: 20 20 20 20 32 20 20 20 20 43 52 43 20 20 20 20 2 CRC
0036B0: 20 20 20 20 20 20 20 20 41 20 43 52 43 20 66 61 A CRC fa
0036C0: 69 6C 75 72 65 20 77 61 73 20 64 65 74 65 63 74 ilure was detect
0036D0: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
0036E0: 20 20 20 20 20 20 20 20 20 33 20 20 20 20 44 69 3 Di
0036F0: 66 66 65 72 65 6E 74 20 20 20 20 20 20 54 68 65 fferent The
003700: 20 64 61 74 61 20 72 65 61 64 20 66 72 6F 6D 20 data read from
003710: 20 74 61 70 65 20 20 64 69 64 20 20 6E 6F 74 20 tape did not
003720: 20 61 67 72 65 65 0D 0A 20 20 20 20 20 20 20 20 agree..
003730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003740: 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 with
003750: 20 74 68 61 74 20 69 6E 20 6D 65 6D 6F 72 79 2E that in memory.
003760: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
003770: 20 63 61 73 73 65 74 74 65 20 6D 6F 74 6F 72 20 cassette motor
003780: 69 73 20 73 74 61 72 74 65 64 20 62 79 20 74 68 is started by th
003790: 69 73 20 20 72 6F 75 74 69 6E 65 20 20 28 69 6E is routine (in
0037A0: 20 20 63 61 73 65 20 20 69 74 20 20 69 73 20 20 case it is
0037B0: 6E 6F 74 0D 0A 20 20 20 20 20 20 20 61 6C 72 65 not.. alre
0037C0: 61 64 79 20 6F 6E 29 20 61 6E 64 20 72 65 73 74 ady on) and rest
0037D0: 6F 72 65 64 20 20 74 6F 20 20 69 74 73 20 20 70 ored to its p
0037E0: 72 65 76 69 6F 75 73 20 20 73 74 61 74 65 20 20 revious state
0037F0: 77 68 65 6E 20 20 63 68 65 63 6B 69 6E 67 20 20 when checking
003800: 69 73 0D 0A 20 20 20 20 20 20 20 63 6F 6D 70 6C is.. compl
003810: 65 74 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 eted.......
003820: 20 20 42 65 63 61 75 73 65 20 20 72 65 61 64 69 Because readi
003830: 6E 67 20 20 74 68 65 20 20 74 61 70 65 20 20 72 ng the tape r
003840: 65 71 75 69 72 65 73 20 20 73 74 72 69 6E 67 65 equires stringe
003850: 6E 74 20 20 74 69 6D 69 6E 67 20 20 63 6F 6E 73 nt timing cons
003860: 74 72 61 69 6E 74 73 2C 0D 0A 20 20 20 20 20 20 traints,..
003870: 20 69 6E 74 65 72 72 75 70 74 73 20 61 72 65 20 interrupts are
003880: 64 69 73 61 62 6C 65 64 20 77 68 69 6C 73 74 20 disabled whilst
003890: 74 68 65 20 74 61 70 65 20 69 73 20 62 65 69 6E the tape is bein
0038A0: 67 20 63 68 65 63 6B 65 64 20 20 28 70 6F 74 65 g checked (pote
0038B0: 6E 74 69 61 6C 6C 79 0D 0A 20 20 20 20 20 20 20 ntially..
0038C0: 61 20 70 65 72 69 6F 64 20 6F 66 20 6F 76 65 72 a period of over
0038D0: 20 35 20 6D 69 6E 75 74 65 73 29 2E 20 49 74 20 5 minutes). It
0038E0: 77 6F 75 6C 64 20 62 65 20 75 6E 70 6C 65 61 73 would be unpleas
0038F0: 61 6E 74 20 74 6F 20 68 61 76 65 20 74 68 65 20 ant to have the
003900: 20 73 6F 75 6E 64 0D 0A 20 20 20 20 20 20 20 63 sound.. c
003910: 68 69 70 20 6D 61 6B 69 6E 67 20 61 20 6E 6F 69 hip making a noi
003920: 73 65 20 66 6F 72 20 61 6C 6C 20 74 68 69 73 20 se for all this
003930: 74 69 6D 65 20 73 6F 20 74 68 65 20 20 53 6F 75 time so the Sou
003940: 6E 64 20 20 4D 61 6E 61 67 65 72 20 20 69 73 20 nd Manager is
003950: 20 73 68 75 74 0D 0A 20 20 20 20 20 20 20 64 6F shut.. do
003960: 77 6E 20 20 28 53 4F 55 4E 44 20 20 52 45 53 45 wn (SOUND RESE
003970: 54 29 2E 20 20 57 68 65 6E 20 20 63 68 65 63 6B T). When check
003980: 69 6E 67 20 20 68 61 73 20 20 66 69 6E 69 73 68 ing has finish
003990: 65 64 20 20 69 6E 74 65 72 72 75 70 74 73 20 20 ed interrupts
0039A0: 20 61 72 65 0D 0A 20 20 20 20 20 20 20 72 65 2D are.. re-
0039B0: 65 6E 61 62 6C 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A enabled.........
0039C0: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
0039D0: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 entries:......
0039E0: 20 20 20 20 20 20 43 41 53 20 52 45 41 44 0D 0A CAS READ..
0039F0: 20 20 20 20 20 20 20 43 41 53 20 57 52 49 54 45 CAS WRITE
003A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
003A10: 03 00 00 00 02 09 50 E5 03 00 C1 02 00 00 00 02 ......P.........
003A20: 03 00 C2 02 00 00 00 02 03 00 C3 02 00 00 00 02 ................
003A30: 03 00 C4 02 00 00 00 02 03 00 C5 02 00 00 00 02 ................
003A40: 03 00 C6 02 00 00 00 02 03 00 C7 02 00 00 00 02 ................
003A50: 03 00 C8 02 00 00 00 02 03 00 C9 02 00 00 00 02 ................
003A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003B00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
003B10: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
003B20: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
003B30: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
003B40: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
003B50: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
003B60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003B70: 70 61 67 65 20 31 35 2E 31 36 37 0D 0A 0D 0A 0D page 15.167.....
003B80: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
003B90: 31 34 31 3A 20 53 4F 55 4E 44 20 52 45 53 45 54 141: SOUND RESET
003BA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003BB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003BC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003BD0: 20 23 42 43 41 37 0D 0A 0D 0A 0D 0A 20 20 20 20 #BCA7......
003BE0: 20 20 20 52 65 73 65 74 20 74 68 65 20 53 6F 75 Reset the Sou
003BF0: 6E 64 20 4D 61 6E 61 67 65 72 2E 0D 0A 0D 0A 0D nd Manager......
003C00: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
003C10: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 2D 69 ..... Re-i
003C20: 6E 69 74 69 61 6C 69 7A 65 20 74 68 65 20 53 6F nitialize the So
003C30: 75 6E 64 20 4D 61 6E 61 67 65 72 20 2D 20 73 68 und Manager - sh
003C40: 75 74 20 74 68 65 20 73 6F 75 6E 64 20 63 68 69 ut the sound chi
003C50: 70 20 75 70 20 61 6E 64 20 63 6C 65 61 72 20 61 p up and clear a
003C60: 6C 6C 0D 0A 20 20 20 20 20 20 20 71 75 65 75 65 ll.. queue
003C70: 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 s.........
003C80: 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E Entry condition
003C90: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E s:...... N
003CA0: 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D o conditions....
003CB0: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
003CC0: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
003CD0: 20 20 20 20 20 20 20 41 46 2C 20 42 43 2C 20 44 AF, BC, D
003CE0: 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 E and HL corrupt
003CF0: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
003D00: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
003D10: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
003D20: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
003D30: 0A 20 20 20 20 20 20 20 54 68 65 20 73 6F 75 6E . The soun
003D40: 64 20 71 75 65 75 65 73 20 61 72 65 20 63 6C 65 d queues are cle
003D50: 61 72 65 64 2E 0D 0A 20 20 20 20 20 20 20 41 6E ared... An
003D60: 79 20 63 75 72 72 65 6E 74 20 73 6F 75 6E 64 20 y current sound
003D70: 69 73 20 73 74 6F 70 70 65 64 2E 0D 0A 20 20 20 is stopped...
003D80: 20 20 20 20 54 68 65 20 73 6F 75 6E 64 20 67 65 The sound ge
003D90: 6E 65 72 61 74 6F 72 20 63 68 69 70 20 69 73 20 nerator chip is
003DA0: 73 69 6C 65 6E 63 65 64 2E 0D 0A 0D 0A 0D 0A 20 silenced.......
003DB0: 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 This routi
003DC0: 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E 74 65 72 ne enables inter
003DD0: 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A rupts...........
003DE0: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
003DF0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
003E00: 20 20 20 20 53 4F 55 4E 44 20 48 4F 4C 44 0D 0A SOUND HOLD..
003E10: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
003E20: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
003E30: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
003E40: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
003E50: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
003E60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003E70: 70 61 67 65 20 31 35 2E 31 36 38 0D 0A 0D 0A 0D page 15.168.....
003E80: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
003E90: 31 34 32 3A 20 53 4F 55 4E 44 20 51 55 45 55 45 142: SOUND QUEUE
003EA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003EB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003EC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003ED0: 20 23 42 43 41 41 0D 0A 0D 0A 20 20 20 20 20 20 #BCAA....
003EE0: 20 41 64 64 20 61 20 73 6F 75 6E 64 20 74 6F 20 Add a sound to
003EF0: 61 20 73 6F 75 6E 64 20 71 75 65 75 65 2E 0D 0A a sound queue...
003F00: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
003F10: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 72 79 20 74 .... Try t
003F20: 6F 20 61 64 64 20 61 20 73 6F 75 6E 64 20 74 6F o add a sound to
003F30: 20 74 68 65 20 73 6F 75 6E 64 20 71 75 65 75 65 the sound queue
003F40: 20 6F 66 20 6F 6E 65 20 6F 72 20 6D 6F 72 65 20 of one or more
003F50: 63 68 61 6E 6E 65 6C 73 2E 20 49 66 20 20 74 68 channels. If th
003F60: 65 0D 0A 20 20 20 20 20 20 20 73 6F 75 6E 64 20 e.. sound
003F70: 71 75 65 75 65 20 6F 66 20 61 6E 79 20 6F 66 20 queue of any of
003F80: 74 68 65 20 63 68 61 6E 6E 65 6C 73 20 69 73 20 the channels is
003F90: 20 66 75 6C 6C 20 20 74 68 65 6E 20 20 6E 6F 20 full then no
003FA0: 20 73 6F 75 6E 64 20 20 77 69 6C 6C 20 20 62 65 sound will be
003FB0: 0D 0A 20 20 20 20 20 20 20 69 73 73 75 65 64 20 .. issued
003FC0: 74 6F 20 61 6E 79 20 63 68 61 6E 6E 65 6C 2E 0D to any channel..
003FD0: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
003FE0: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
003FF0: 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E HL contain
004000: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 s the address of
004010: 20 61 20 73 6F 75 6E 64 20 20 70 72 6F 67 72 61 a sound progra
004020: 6D 20 20 77 68 69 63 68 20 20 6D 75 73 74 20 20 m which must
004030: 6C 69 65 20 20 69 6E 20 20 74 68 65 0D 0A 20 20 lie in the..
004040: 20 20 20 20 20 63 65 6E 74 72 61 6C 20 33 32 4B central 32K
004050: 20 6F 66 20 52 41 4D 2E 0D 0A 0D 0A 20 20 20 20 of RAM.....
004060: 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F Exit conditio
004070: 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 ns:.... If
004080: 20 74 68 65 20 73 6F 75 6E 64 20 77 61 73 20 61 the sound was a
004090: 64 64 65 64 20 74 6F 20 74 68 65 20 71 75 65 75 dded to the queu
0040A0: 65 28 73 29 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 e(s):....
0040B0: 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 74 Carry t
0040C0: 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 rue...
0040D0: 20 20 20 20 20 20 48 4C 20 63 6F 72 72 75 70 74 HL corrupt
0040E0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 61 ..... If a
0040F0: 74 20 6C 65 61 73 74 20 6F 6E 65 20 71 75 65 75 t least one queu
004100: 65 20 77 61 73 20 66 75 6C 6C 3A 0D 0A 0D 0A 20 e was full:....
004110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
004120: 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 arry false...
004130: 20 20 20 20 20 20 20 20 20 20 20 20 20 48 4C 20 HL
004140: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 preserved.....
004150: 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A Always:....
004160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004170: 41 2C 20 42 43 2C 20 44 45 2C 20 49 58 20 61 6E A, BC, DE, IX an
004180: 64 20 6F 74 68 65 72 20 66 6C 61 67 73 20 63 6F d other flags co
004190: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 rrupt...
0041A0: 20 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 All othe
0041B0: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
0041C0: 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 erved.....
0041D0: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 Notes:....
0041E0: 20 20 54 68 65 20 73 6F 75 6E 64 20 70 72 6F 67 The sound prog
0041F0: 72 61 6D 20 69 73 20 6C 61 69 64 20 6F 75 74 20 ram is laid out
004200: 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 as follows:....
004210: 20 20 20 20 20 20 20 20 20 20 42 79 74 65 20 30 Byte 0
004220: 3A 20 20 20 20 20 20 20 20 20 20 20 20 20 43 68 : Ch
004230: 61 6E 6E 65 6C 73 20 74 6F 20 75 73 65 20 61 6E annels to use an
004240: 64 20 72 65 6E 64 65 7A 76 6F 75 73 20 72 65 71 d rendezvous req
004250: 75 69 72 65 6D 65 6E 74 73 2E 0D 0A 0D 0A 20 20 uirements.....
004260: 20 20 20 20 20 20 20 20 20 42 79 74 65 20 31 3A Byte 1:
004270: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 6D 70 Amp
004280: 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 65 20 litude envelope
004290: 74 6F 20 75 73 65 2E 0D 0A 20 20 20 20 20 20 20 to use...
0042A0: 20 20 20 20 42 79 74 65 20 32 3A 20 20 20 20 20 Byte 2:
0042B0: 20 20 20 20 20 20 20 20 54 6F 6E 65 20 65 6E 76 Tone env
0042C0: 65 6C 6F 70 65 20 74 6F 20 75 73 65 2E 0D 0A 20 elope to use...
0042D0: 20 20 20 20 20 20 20 20 20 20 42 79 74 65 73 20 Bytes
0042E0: 33 2E 2E 34 3A 20 20 20 20 20 20 20 20 20 54 6F 3..4: To
0042F0: 6E 65 20 70 65 72 69 6F 64 2E 0D 0A 20 20 20 20 ne period...
004300: 20 20 20 20 20 20 20 42 79 74 65 20 35 3A 20 20 Byte 5:
004310: 20 20 20 20 20 20 20 20 20 20 20 4E 6F 69 73 65 Noise
004320: 20 70 65 72 69 6F 64 2E 0D 0A 20 20 20 20 20 20 period...
004330: 20 20 20 20 20 42 79 74 65 20 36 3A 20 20 20 20 Byte 6:
004340: 20 20 20 20 20 20 20 20 20 49 6E 69 74 69 61 6C Initial
004350: 20 61 6D 70 6C 69 74 75 64 65 2E 0D 0A 20 20 20 amplitude...
004360: 20 20 20 20 20 20 20 20 42 79 74 65 73 20 37 2E Bytes 7.
004370: 2E 38 3A 20 20 20 20 20 20 20 20 20 44 75 72 61 .8: Dura
004380: 74 69 6F 6E 20 6F 72 20 65 6E 76 65 6C 6F 70 65 tion or envelope
004390: 20 72 65 70 65 61 74 20 63 6F 75 6E 74 2E 0D 0A repeat count...
0043A0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 76 61 6C .. All val
0043B0: 75 65 73 20 69 6E 20 74 68 65 20 73 6F 75 6E 64 ues in the sound
0043C0: 20 70 72 6F 67 72 61 6D 20 61 72 65 20 6D 61 73 program are mas
0043D0: 6B 65 64 20 69 6E 74 6F 20 74 68 65 20 61 70 70 ked into the app
0043E0: 72 6F 70 72 69 61 74 65 20 20 72 61 6E 67 65 0D ropriate range.
0043F0: 0A 20 20 20 20 20 20 20 62 65 66 6F 72 65 20 62 . before b
004400: 65 69 6E 67 20 75 73 65 64 2E 0D 0A 0D 0A 20 20 eing used.....
004410: 20 20 20 20 20 54 68 65 20 63 68 61 6E 6E 65 6C The channel
004420: 73 20 74 6F 20 69 73 73 75 65 20 74 68 65 20 73 s to issue the s
004430: 6F 75 6E 64 20 6F 6E 20 61 72 65 20 65 6E 63 6F ound on are enco
004440: 64 65 64 20 69 6E 74 6F 20 62 79 74 65 20 30 20 ded into byte 0
004450: 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 as follows:....
004460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 B
004470: 69 74 20 30 3A 20 20 20 20 49 73 73 75 65 20 6F it 0: Issue o
004480: 6E 20 63 68 61 6E 6E 65 6C 20 41 2E 0D 0A 20 20 n channel A...
004490: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 Bi
0044A0: 74 20 31 3A 20 20 20 20 49 73 73 75 65 20 6F 6E t 1: Issue on
0044B0: 20 63 68 61 6E 6E 65 6C 20 42 2E 0D 0A 20 20 20 channel B...
0044C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 Bit
0044D0: 20 32 3A 20 20 20 20 49 73 73 75 65 20 6F 6E 20 2: Issue on
0044E0: 63 68 61 6E 6E 65 6C 20 43 2E 0D 0A 0D 0A 0D 0A channel C.......
0044F0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
004500: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
004510: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
004520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004530: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
004540: 35 2E 31 36 39 0D 0A 1A 67 65 20 31 35 2E 31 37 5.169...ge 15.17
004550: 30 0D 0A 1A 20 20 20 20 20 20 20 20 20 20 20 20 0...
004560: 42 69 74 20 33 3A 20 20 20 20 52 65 6E 64 65 7A Bit 3: Rendez
004570: 76 6F 75 73 20 77 69 74 68 20 63 68 61 6E 6E 65 vous with channe
004580: 74 69 6F 6E 20 6F 72 20 65 6E 76 65 6C 6F 70 65 tion or envelope
004590: 20 72 65 70 65 61 74 20 63 6F 75 6E 74 2E 0D 0A repeat count...
0045A0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 76 61 6C .. All val
0045B0: 75 65 73 20 69 6E 20 74 68 65 20 73 6F 75 6E 64 ues in the sound
0045C0: 20 70 72 6F 67 72 61 6D 20 61 72 65 20 6D 61 73 program are mas
0045D0: 6B 65 64 20 69 6E 74 6F 20 74 68 65 20 61 70 70 ked into the app
0045E0: 72 6F 70 72 69 61 74 65 20 20 72 61 6E 67 65 0D ropriate range.
0045F0: 0A 20 20 20 20 20 20 20 62 65 66 6F 72 65 20 62 . before b
004600: 65 69 6E 67 20 75 73 65 64 2E 0D 0A 0D 0A 20 20 eing used.....
004610: 20 20 20 20 20 54 68 65 20 63 68 61 6E 6E 65 6C The channel
004620: 73 20 74 6F 20 69 73 73 75 65 20 74 68 65 20 73 s to issue the s
004630: 6F 75 6E 64 20 6F 6E 20 61 72 65 20 65 6E 63 6F ound on are enco
004640: 64 65 64 20 69 6E 74 6F 20 62 79 74 65 20 30 20 ded into byte 0
004650: 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 as follows:....
004660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 B
004670: 69 74 20 30 3A 20 20 20 20 49 73 73 75 65 20 6F it 0: Issue o
004680: 6E 20 63 68 61 6E 6E 65 6C 20 41 2E 0D 0A 20 20 n channel A...
004690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 Bi
0046A0: 74 20 31 3A 20 20 20 20 49 73 73 75 65 20 6F 6E t 1: Issue on
0046B0: 20 63 68 61 6E 6E 65 6C 20 42 2E 0D 0A 20 20 20 channel B...
0046C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 Bit
0046D0: 20 32 3A 20 20 20 20 49 73 73 75 65 20 6F 6E 20 2: Issue on
0046E0: 63 68 61 6E 6E 65 6C 20 43 2E 0D 0A 0D 0A 0D 0A channel C.......
0046F0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
004700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0047A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0047B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0047C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0047D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0047E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0047F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0048A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0048B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0048C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0048D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0048E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0048F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
004900: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
004910: 20 20 20 54 68 65 20 72 65 6E 64 65 7A 76 6F 75 The rendezvou
004920: 73 20 72 65 71 75 69 72 65 6D 65 6E 74 73 20 61 s requirements a
004930: 72 65 20 65 6E 63 6F 64 65 64 20 69 6E 74 6F 20 re encoded into
004940: 62 79 74 65 20 30 20 61 73 20 66 6F 6C 6C 6F 77 byte 0 as follow
004950: 73 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 s:..
004960: 20 20 20 20 42 69 74 20 33 3A 20 20 20 20 52 65 Bit 3: Re
004970: 6E 64 65 7A 76 6F 75 73 20 77 69 74 68 20 63 68 ndezvous with ch
004980: 61 6E 6E 65 6C 20 41 2E 0D 0A 20 20 20 20 20 20 annel A...
004990: 20 20 20 20 20 20 20 20 20 20 42 69 74 20 34 3A Bit 4:
0049A0: 20 20 20 20 52 65 6E 64 65 7A 76 6F 75 73 20 77 Rendezvous w
0049B0: 69 74 68 20 63 68 61 6E 6E 65 6C 20 42 2E 0D 0A ith channel B...
0049C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0049D0: 42 69 74 20 35 3A 20 20 20 20 52 65 6E 64 65 7A Bit 5: Rendez
0049E0: 76 6F 75 73 20 77 69 74 68 20 63 68 61 6E 6E 65 vous with channe
0049F0: 6C 20 43 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 l C...
004A00: 20 20 20 20 20 20 42 69 74 20 36 3A 20 20 20 20 Bit 6:
004A10: 48 6F 6C 64 20 75 6E 74 69 6C 20 72 65 6C 65 61 Hold until relea
004A20: 73 65 64 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 sed...
004A30: 20 20 20 20 20 20 42 69 74 20 37 3A 20 20 20 20 Bit 7:
004A40: 46 6C 75 73 68 20 71 75 65 75 65 2E 0D 0A 20 20 Flush queue...
004A50: 20 20 20 20 20 41 20 63 68 61 6E 6E 65 6C 20 77 A channel w
004A60: 69 6C 6C 20 69 67 6E 6F 72 65 20 61 6E 20 20 6F ill ignore an o
004A70: 72 64 65 72 20 20 74 6F 20 20 72 65 6E 64 65 7A rder to rendez
004A80: 76 6F 75 73 20 20 77 69 74 68 20 20 69 74 73 65 vous with itse
004A90: 6C 66 2E 20 20 53 6F 75 6E 64 73 0D 0A 20 20 20 lf. Sounds..
004AA0: 20 20 20 20 69 73 73 75 65 64 20 6F 6E 20 6D 75 issued on mu
004AB0: 6C 74 69 70 6C 65 20 63 68 61 6E 6E 65 6C 73 20 ltiple channels
004AC0: 69 6D 70 6C 69 63 69 74 6C 79 20 20 72 65 6E 64 implicitly rend
004AD0: 65 7A 76 6F 75 73 20 20 77 69 74 68 20 20 65 61 ezvous with ea
004AE0: 63 68 20 20 6F 74 68 65 72 2E 0D 0A 20 20 20 20 ch other...
004AF0: 20 20 20 53 6F 75 6E 64 73 20 74 68 61 74 20 61 Sounds that a
004B00: 72 65 20 6F 72 64 65 72 65 64 20 74 6F 20 72 65 re ordered to re
004B10: 6E 64 65 7A 76 6F 75 73 20 77 69 6C 6C 20 20 62 ndezvous will b
004B20: 65 20 20 69 73 73 75 65 64 20 20 74 6F 20 20 74 e issued to t
004B30: 68 65 20 20 73 6F 75 6E 64 0D 0A 20 20 20 20 20 he sound..
004B40: 20 20 67 65 6E 65 72 61 74 6F 72 20 73 74 61 72 generator star
004B50: 74 69 6E 67 20 61 74 20 74 68 65 20 73 61 6D 65 ting at the same
004B60: 20 74 69 6D 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 time.....
004B70: 20 53 65 74 74 69 6E 67 20 74 68 65 20 68 6F 6C Setting the hol
004B80: 64 20 62 69 74 20 70 72 65 76 65 6E 74 73 20 74 d bit prevents t
004B90: 68 65 20 20 73 6F 75 6E 64 20 20 66 72 6F 6D 20 he sound from
004BA0: 20 72 75 6E 6E 69 6E 67 20 20 75 6E 74 69 6C 20 running until
004BB0: 20 69 74 20 20 69 73 0D 0A 20 20 20 20 20 20 20 it is..
004BC0: 72 65 6C 65 61 73 65 64 20 62 79 20 63 61 6C 6C released by call
004BD0: 69 6E 67 20 53 4F 55 4E 44 20 52 45 4C 45 41 53 ing SOUND RELEAS
004BE0: 45 20 20 28 6F 72 20 20 61 20 20 72 6F 75 74 69 E (or a routi
004BF0: 6E 65 20 20 68 61 76 69 6E 67 20 20 61 20 20 73 ne having a s
004C00: 69 6D 69 6C 61 72 0D 0A 20 20 20 20 20 20 20 65 imilar.. e
004C10: 66 66 65 63 74 29 2E 20 53 65 74 74 69 6E 67 20 ffect). Setting
004C20: 74 68 65 20 66 6C 75 73 68 20 62 69 74 20 77 69 the flush bit wi
004C30: 6C 6C 20 65 6D 70 74 79 20 74 68 65 20 71 75 65 ll empty the que
004C40: 75 65 20 20 61 6E 64 20 20 61 62 61 6E 64 6F 6E ue and abandon
004C50: 20 20 61 6E 79 0D 0A 20 20 20 20 20 20 20 63 75 any.. cu
004C60: 72 72 65 6E 74 6C 79 20 20 61 63 74 69 76 65 20 rrently active
004C70: 20 73 6F 75 6E 64 20 20 74 68 75 73 20 20 61 6C sound thus al
004C80: 6C 6F 77 69 6E 67 20 20 74 68 65 20 20 6E 65 77 lowing the new
004C90: 20 20 73 6F 75 6E 64 20 20 20 74 6F 20 20 20 73 sound to s
004CA0: 74 61 72 74 0D 0A 20 20 20 20 20 20 20 69 6D 6D tart.. imm
004CB0: 65 64 69 61 74 65 6C 79 2E 0D 0A 0D 0A 20 20 20 ediately.....
004CC0: 20 20 20 20 54 68 65 20 61 6D 70 6C 69 74 75 64 The amplitud
004CD0: 65 20 65 6E 76 65 6C 6F 70 65 20 69 73 20 69 6E e envelope is in
004CE0: 20 74 68 65 20 72 61 6E 67 65 20 30 2E 2E 31 35 the range 0..15
004CF0: 2E 20 45 6E 76 65 6C 6F 70 65 73 20 31 2E 2E 31 . Envelopes 1..1
004D00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
004D10: 04 00 00 00 02 09 50 E5 04 00 C1 02 00 00 00 02 ......P.........
004D20: 04 00 C2 02 00 00 00 02 04 00 C3 02 00 00 00 02 ................
004D30: 04 00 C4 02 00 00 00 02 04 00 C5 02 00 00 00 02 ................
004D40: 04 00 C6 02 00 00 00 02 04 00 C7 02 00 00 00 02 ................
004D50: 04 00 C8 02 00 00 00 02 04 00 C9 02 00 00 00 02 ................
004D60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004E00: 35 20 61 72 65 20 20 74 68 65 0D 0A 20 20 20 20 5 are the..
004E10: 20 20 20 61 6D 70 6C 69 74 75 64 65 20 65 6E 76 amplitude env
004E20: 65 6C 6F 70 65 73 20 20 74 68 61 74 20 20 63 61 elopes that ca
004E30: 6E 20 20 62 65 20 20 73 65 74 20 20 75 73 69 6E n be set usin
004E40: 67 20 20 53 4F 55 4E 44 20 20 41 4D 50 4C 20 20 g SOUND AMPL
004E50: 45 4E 56 45 4C 4F 50 45 2E 0D 0A 20 20 20 20 20 ENVELOPE...
004E60: 20 20 45 6E 76 65 6C 6F 70 65 20 30 20 6D 65 61 Envelope 0 mea
004E70: 6E 73 20 75 73 65 20 6E 6F 20 61 6D 70 6C 69 74 ns use no amplit
004E80: 75 64 65 20 65 6E 76 65 6C 6F 70 65 2C 20 73 69 ude envelope, si
004E90: 6D 70 6C 79 20 20 68 6F 6C 64 20 20 74 68 65 20 mply hold the
004EA0: 20 69 6E 69 74 69 61 6C 0D 0A 20 20 20 20 20 20 initial..
004EB0: 20 61 6D 70 6C 69 74 75 64 65 20 66 6F 72 20 32 amplitude for 2
004EC0: 20 73 65 63 6F 6E 64 73 20 6F 72 20 74 68 65 20 seconds or the
004ED0: 64 75 72 61 74 69 6F 6E 20 73 70 65 63 69 66 69 duration specifi
004EE0: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ed..... Th
004EF0: 65 20 74 6F 6E 65 20 65 6E 76 65 6C 6F 70 65 20 e tone envelope
004F00: 69 73 20 69 6E 20 74 68 65 20 72 61 6E 67 65 20 is in the range
004F10: 30 2E 2E 31 35 2E 20 45 6E 76 65 6C 6F 70 65 73 0..15. Envelopes
004F20: 20 31 2E 2E 31 35 20 61 72 65 20 74 68 65 20 20 1..15 are the
004F30: 74 6F 6E 65 0D 0A 20 20 20 20 20 20 20 65 6E 76 tone.. env
004F40: 65 6C 6F 70 65 73 20 74 68 61 74 20 63 61 6E 20 elopes that can
004F50: 62 65 20 73 65 74 20 75 73 69 6E 67 20 53 4F 55 be set using SOU
004F60: 4E 44 20 54 4F 4E 45 20 45 4E 56 45 4C 4F 50 45 ND TONE ENVELOPE
004F70: 2E 20 45 6E 76 65 6C 6F 70 65 20 30 20 20 6D 65 . Envelope 0 me
004F80: 61 6E 73 0D 0A 20 20 20 20 20 20 20 75 73 65 20 ans.. use
004F90: 6E 6F 20 74 6F 6E 65 20 65 6E 76 65 6C 6F 70 65 no tone envelope
004FA0: 2C 20 73 69 6D 70 6C 79 20 68 6F 6C 64 20 74 68 , simply hold th
004FB0: 65 20 69 6E 69 74 69 61 6C 20 74 6F 6E 65 2E 0D e initial tone..
004FC0: 0A 0D 0A 20 20 20 20 20 20 20 41 20 74 6F 6E 65 ... A tone
004FD0: 20 70 65 72 69 6F 64 20 6F 66 20 30 20 6D 65 61 period of 0 mea
004FE0: 6E 73 20 64 6F 20 6E 6F 74 20 67 65 6E 65 72 61 ns do not genera
004FF0: 74 65 20 61 6E 79 20 74 6F 6E 65 2E 20 54 6F 6E te any tone. Ton
005000: 65 20 70 65 72 69 6F 64 73 20 69 6E 20 74 68 65 e periods in the
005010: 0D 0A 20 20 20 20 20 20 20 72 61 6E 67 65 20 31 .. range 1
005020: 2E 2E 34 30 39 35 20 73 70 65 63 69 66 79 20 74 ..4095 specify t
005030: 68 65 20 70 65 72 69 6F 64 20 6F 66 20 74 68 65 he period of the
005040: 20 74 6F 6E 65 20 69 6E 20 38 20 6D 69 63 72 6F tone in 8 micro
005050: 73 65 63 6F 6E 64 20 75 6E 69 74 73 2E 0D 0A 0D second units....
005060: 0A 20 20 20 20 20 20 20 54 68 65 20 6E 6F 69 73 . The nois
005070: 65 20 70 65 72 69 6F 64 20 69 73 20 69 6E 20 74 e period is in t
005080: 68 65 20 72 61 6E 67 65 20 30 2E 2E 33 31 2E 20 he range 0..31.
005090: 4E 6F 69 73 65 20 20 70 65 72 69 6F 64 73 20 20 Noise periods
0050A0: 31 2E 2E 33 31 20 20 73 70 65 63 69 66 79 0D 0A 1..31 specify..
0050B0: 20 20 20 20 20 20 20 74 68 65 20 70 65 72 69 6F the perio
0050C0: 64 20 6F 66 20 74 68 65 20 6E 6F 69 73 65 20 63 d of the noise c
0050D0: 6F 6D 70 6F 6E 65 6E 74 20 6F 66 20 61 20 73 6F omponent of a so
0050E0: 75 6E 64 2E 20 20 41 20 20 6E 6F 69 73 65 20 20 und. A noise
0050F0: 70 65 72 69 6F 64 20 20 6F 66 20 20 30 0D 0A 20 period of 0..
005100: 20 20 20 20 20 20 6D 65 61 6E 73 20 75 73 65 20 means use
005110: 6E 6F 20 6E 6F 69 73 65 2E 0D 0A 0D 0A 20 20 20 no noise.....
005120: 20 20 20 20 54 68 65 20 69 6E 69 74 69 61 6C 20 The initial
005130: 61 6D 70 6C 69 74 75 64 65 20 69 73 20 69 6E 20 amplitude is in
005140: 74 68 65 20 72 61 6E 67 65 20 20 30 2E 2E 31 35 the range 0..15
005150: 2E 20 20 41 6D 70 6C 69 74 75 64 65 20 20 30 20 . Amplitude 0
005160: 20 62 65 69 6E 67 20 20 6E 6F 0D 0A 20 20 20 20 being no..
005170: 20 20 20 69 6E 69 74 69 61 6C 20 73 6F 75 6E 64 initial sound
005180: 2C 20 61 6D 70 6C 69 74 75 64 65 20 31 35 20 62 , amplitude 15 b
005190: 65 69 6E 67 20 74 68 65 20 6D 61 78 69 6D 75 6D eing the maximum
0051A0: 20 76 6F 6C 75 6D 65 2E 0D 0A 0D 0A 20 20 20 20 volume.....
0051B0: 20 20 20 42 79 74 65 73 20 37 20 61 6E 64 20 38 Bytes 7 and 8
0051C0: 20 73 74 6F 72 65 20 74 68 65 20 73 6F 75 6E 64 store the sound
0051D0: 20 74 69 6D 65 2E 20 49 66 20 74 68 69 73 20 69 time. If this i
0051E0: 73 20 7A 65 72 6F 20 74 68 65 6E 20 74 68 65 20 s zero then the
0051F0: 61 6D 70 6C 69 74 75 64 65 0D 0A 20 20 20 20 20 amplitude..
005200: 20 20 65 6E 76 65 6C 6F 70 65 20 69 73 20 6F 62 envelope is ob
005210: 65 79 65 64 20 6F 6E 63 65 2E 20 49 66 20 20 74 eyed once. If t
005220: 68 65 20 20 73 6F 75 6E 64 20 20 74 69 6D 65 20 he sound time
005230: 20 69 73 20 20 6E 65 67 61 74 69 76 65 20 20 74 is negative t
005240: 68 65 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 hen the..
005250: 20 61 6D 70 6C 69 74 75 64 65 20 65 6E 76 65 6C amplitude envel
005260: 6F 70 65 20 69 73 20 6F 62 65 79 65 64 20 6D 69 ope is obeyed mi
005270: 6E 75 73 20 74 68 65 20 20 73 6F 75 6E 64 20 20 nus the sound
005280: 74 69 6D 65 20 20 6E 75 6D 62 65 72 20 20 6F 66 time number of
005290: 20 20 74 69 6D 65 73 0D 0A 20 20 20 20 20 20 20 times..
0052A0: 28 69 2E 65 2E 20 31 2E 2E 33 32 37 36 38 20 74 (i.e. 1..32768 t
0052B0: 69 6D 65 73 29 2E 20 49 66 20 74 68 65 20 73 6F imes). If the so
0052C0: 75 6E 64 20 74 69 6D 65 20 69 73 20 70 6F 73 69 und time is posi
0052D0: 74 69 76 65 20 62 75 74 20 6E 6F 74 20 7A 65 72 tive but not zer
0052E0: 6F 20 74 68 65 6E 0D 0A 20 20 20 20 20 20 20 69 o then.. i
0052F0: 74 20 69 73 20 74 61 6B 65 6E 20 74 6F 20 62 65 t is taken to be
005300: 20 74 68 65 20 64 75 72 61 74 69 6F 6E 20 6F 66 the duration of
005310: 20 74 68 65 20 73 6F 75 6E 64 20 69 6E 20 31 2F the sound in 1/
005320: 31 30 30 73 20 6F 66 20 61 20 73 65 63 6F 6E 64 100s of a second
005330: 2E 0D 0A 20 20 20 20 20 20 20 49 66 20 61 20 64 ... If a d
005340: 75 72 61 74 69 6F 6E 20 69 73 20 73 70 65 63 69 uration is speci
005350: 66 69 65 64 20 77 68 65 6E 20 61 6E 20 61 6D 70 fied when an amp
005360: 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 65 20 litude envelope
005370: 69 73 20 69 6E 20 20 75 73 65 20 20 74 68 65 6E is in use then
005380: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 64 75 72 .. the dur
005390: 61 74 69 6F 6E 20 67 69 76 65 6E 20 73 65 74 73 ation given sets
0053A0: 20 74 68 65 20 6C 65 6E 67 74 68 20 6F 66 20 74 the length of t
0053B0: 68 65 20 73 6F 75 6E 64 2E 20 49 66 20 20 74 68 he sound. If th
0053C0: 65 20 20 64 75 72 61 74 69 6F 6E 20 20 69 73 0D e duration is.
0053D0: 0A 20 20 20 20 20 20 20 6C 6F 6E 67 65 72 20 74 . longer t
0053E0: 68 61 6E 20 74 68 65 20 65 6E 76 65 6C 6F 70 65 han the envelope
0053F0: 20 74 68 65 6E 20 74 68 65 20 66 69 6E 61 6C 20 then the final
005400: 61 6D 70 6C 69 74 75 64 65 20 6F 66 20 74 68 65 amplitude of the
005410: 20 20 65 6E 76 65 6C 6F 70 65 20 20 69 73 0D 0A envelope is..
005420: 20 20 20 20 20 20 20 73 75 73 74 61 69 6E 65 64 sustained
005430: 20 75 6E 74 69 6C 20 74 68 65 20 64 75 72 61 74 until the durat
005440: 69 6F 6E 20 65 78 70 69 72 65 73 2E 20 54 6F 6E ion expires. Ton
005450: 65 20 65 6E 76 65 6C 6F 70 65 73 20 20 61 72 65 e envelopes are
005460: 20 20 74 72 65 61 74 65 64 20 20 69 6E 0D 0A 20 treated in..
005470: 20 20 20 20 20 20 6D 75 63 68 20 74 68 65 20 73 much the s
005480: 61 6D 65 20 77 61 79 20 20 61 73 20 20 61 6D 70 ame way as amp
005490: 6C 69 74 75 64 65 20 20 65 6E 76 65 6C 6F 70 65 litude envelope
0054A0: 73 20 20 65 78 63 65 70 74 20 20 74 68 61 74 20 s except that
0054B0: 20 74 68 65 79 20 20 6E 65 76 65 72 0D 0A 20 20 they never..
0054C0: 20 20 20 20 20 73 70 65 63 69 66 79 20 74 68 65 specify the
0054D0: 20 6C 65 6E 67 74 68 20 6F 66 20 74 68 65 20 73 length of the s
0054E0: 6F 75 6E 64 2E 0D 0A 20 20 20 20 20 20 20 54 68 ound... Th
0054F0: 65 20 73 6F 75 6E 64 20 65 76 65 6E 74 20 74 68 e sound event th
005500: 61 74 20 69 73 20 72 75 6E 20 77 68 65 6E 20 61 at is run when a
005510: 20 73 6F 75 6E 64 20 71 75 65 75 65 20 20 68 61 sound queue ha
005520: 73 20 20 61 20 20 66 72 65 65 20 20 73 6C 6F 74 s a free slot
005530: 20 20 69 73 0D 0A 20 20 20 20 20 20 20 64 69 73 is.. dis
005540: 61 72 6D 65 64 20 6F 6E 20 74 68 65 20 63 68 61 armed on the cha
005550: 6E 6E 65 6C 73 20 73 70 65 63 69 66 69 65 64 20 nnels specified
005560: 69 6E 20 74 68 69 73 20 63 6F 6D 6D 61 6E 64 2E in this command.
005570: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 73 6F 75 .. All sou
005580: 6E 64 73 20 63 75 72 72 65 6E 74 6C 79 20 68 65 nds currently he
005590: 6C 64 20 62 79 20 53 4F 55 4E 44 20 20 48 4F 4C ld by SOUND HOL
0055A0: 44 20 20 61 72 65 20 20 61 75 74 6F 6D 61 74 69 D are automati
0055B0: 63 61 6C 6C 79 20 20 72 65 6C 65 61 73 65 64 0D cally released.
0055C0: 0A 20 20 20 20 20 20 20 77 68 65 6E 20 74 68 69 . when thi
0055D0: 73 20 72 6F 75 74 69 6E 65 20 69 73 20 63 61 6C s routine is cal
0055E0: 6C 65 64 2E 20 41 6C 73 6F 2C 20 74 68 65 20 73 led. Also, the s
0055F0: 6F 75 6E 64 20 71 75 65 75 65 20 65 76 65 6E 74 ound queue event
005600: 20 20 69 73 20 20 64 69 73 61 72 6D 65 64 0D 0A is disarmed..
005610: 20 20 20 20 20 20 20 28 73 65 65 20 53 4F 55 4E (see SOUN
005620: 44 20 41 52 4D 20 45 56 45 4E 54 29 2E 0D 0A 20 D ARM EVENT)...
005630: 20 20 20 20 20 20 53 4F 55 4E 44 20 51 55 45 55 SOUND QUEU
005640: 45 20 6D 61 79 20 65 6E 61 62 6C 65 20 69 6E 74 E may enable int
005650: 65 72 72 75 70 74 73 2E 0D 0A 0D 0A 20 20 20 20 errupts.....
005660: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
005670: 65 73 3A 0D 0A 20 20 20 20 20 20 20 53 4F 55 4E es:.. SOUN
005680: 44 20 41 52 4D 20 45 56 45 4E 54 0D 0A 20 20 20 D ARM EVENT..
005690: 20 20 20 20 53 4F 55 4E 44 20 43 48 45 43 4B 0D SOUND CHECK.
0056A0: 0A 20 20 20 20 20 20 20 53 4F 55 4E 44 20 52 45 . SOUND RE
0056B0: 4C 45 41 53 45 0D 0A 0D 0A 20 20 20 20 20 20 20 LEASE....
0056C0: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
0056D0: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
0056E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0056F0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
005700: 31 35 2E 31 37 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.170..........
005710: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 34 33 3A 20 .... 143:
005720: 53 4F 55 4E 44 20 43 48 45 43 4B 20 20 20 20 20 SOUND CHECK
005730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005750: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 41 #BCA
005760: 44 0D 0A 0D 0A 20 20 20 20 20 20 20 41 73 6B 20 D.... Ask
005770: 69 66 20 74 68 65 72 65 20 69 73 20 73 70 61 63 if there is spac
005780: 65 20 69 6E 20 61 20 73 6F 75 6E 64 20 71 75 65 e in a sound que
005790: 75 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 ue..... Ac
0057A0: 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 tion:....
0057B0: 41 73 6B 20 74 68 65 20 73 74 61 74 65 20 6F 66 Ask the state of
0057C0: 20 61 20 73 6F 75 6E 64 20 63 68 61 6E 6E 65 6C a sound channel
0057D0: 2E 20 54 68 65 20 73 74 61 74 75 73 20 69 6E 63 . The status inc
0057E0: 6C 75 64 65 73 20 20 74 68 65 20 20 6E 75 6D 62 ludes the numb
0057F0: 65 72 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 66 er of.. f
005800: 72 65 65 20 73 70 61 63 65 73 20 69 6E 20 74 68 ree spaces in th
005810: 65 20 73 6F 75 6E 64 20 71 75 65 75 65 20 61 6E e sound queue an
005820: 64 20 77 68 65 74 68 65 72 20 74 68 65 20 63 68 d whether the ch
005830: 61 6E 6E 65 6C 20 69 73 20 68 65 6C 64 2E 0D 0A annel is held...
005840: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
005850: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
005860: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
005870: 74 68 65 20 62 69 74 20 66 6F 72 20 74 68 65 20 the bit for the
005880: 63 68 61 6E 6E 65 6C 20 74 6F 20 74 65 73 74 2E channel to test.
005890: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
0058A0: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
0058B0: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
0058C0: 20 74 68 65 20 63 68 61 6E 6E 65 6C 20 73 74 61 the channel sta
0058D0: 74 75 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 42 tus..... B
0058E0: 43 2C 20 44 45 2C 20 48 4C 20 61 6E 64 20 66 6C C, DE, HL and fl
0058F0: 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 ags corrupt...
005900: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
005910: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
005920: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ed..... No
005930: 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 tes:.... T
005940: 68 65 20 63 68 61 6E 6E 65 6C 20 74 6F 20 61 73 he channel to as
005950: 6B 20 74 68 65 20 73 74 61 74 75 73 20 6F 66 20 k the status of
005960: 69 73 20 65 6E 63 6F 64 65 64 20 61 73 20 66 6F is encoded as fo
005970: 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 llows:....
005980: 20 20 20 20 20 20 20 20 20 20 42 69 74 20 30 3A Bit 0:
005990: 20 20 20 20 41 73 6B 20 61 62 6F 75 74 20 63 68 Ask about ch
0059A0: 61 6E 6E 65 6C 20 41 2E 0D 0A 20 20 20 20 20 20 annel A...
0059B0: 20 20 20 20 20 20 20 20 20 20 42 69 74 20 31 3A Bit 1:
0059C0: 20 20 20 20 41 73 6B 20 61 62 6F 75 74 20 63 68 Ask about ch
0059D0: 61 6E 6E 65 6C 20 42 2E 0D 0A 20 20 20 20 20 20 annel B...
0059E0: 20 20 20 20 20 20 20 20 20 20 42 69 74 20 32 3A Bit 2:
0059F0: 20 20 20 20 41 73 6B 20 61 62 6F 75 74 20 63 68 Ask about ch
005A00: 61 6E 6E 65 6C 20 43 2E 0D 0A 0D 0A 20 20 20 20 annel C.....
005A10: 20 20 20 49 66 20 6D 6F 72 65 20 74 68 61 6E 20 If more than
005A20: 6F 6E 65 20 62 69 74 20 69 73 20 73 65 74 20 74 one bit is set t
005A30: 68 65 6E 20 74 68 65 20 73 74 61 74 75 73 20 6F hen the status o
005A40: 66 20 20 6F 6E 6C 79 20 20 6F 6E 65 20 20 63 68 f only one ch
005A50: 61 6E 6E 65 6C 20 20 69 73 0D 0A 20 20 20 20 20 annel is..
005A60: 20 20 72 65 74 75 72 6E 65 64 2E 20 54 68 65 20 returned. The
005A70: 63 68 61 6E 6E 65 6C 73 20 61 72 65 20 74 65 73 channels are tes
005A80: 74 65 64 20 69 6E 20 74 68 65 20 6F 72 64 65 72 ted in the order
005A90: 20 67 69 76 65 6E 20 61 62 6F 76 65 2E 0D 0A 0D given above....
005AA0: 0A 20 20 20 20 20 20 20 54 68 65 20 73 74 61 74 . The stat
005AB0: 75 73 20 72 65 74 75 72 6E 65 64 20 69 73 20 65 us returned is e
005AC0: 6E 63 6F 64 65 64 20 61 73 20 66 6F 6C 6C 6F 77 ncoded as follow
005AD0: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s:....
005AE0: 42 69 74 73 20 30 2E 2E 32 3A 20 20 20 20 20 43 Bits 0..2: C
005AF0: 6F 6E 74 61 69 6E 20 74 68 65 20 6E 75 6D 62 65 ontain the numbe
005B00: 72 20 6F 66 20 66 72 65 65 20 73 6C 6F 74 73 20 r of free slots
005B10: 69 6E 20 20 74 68 65 20 20 63 68 61 6E 6E 65 6C in the channel
005B20: 27 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 's..
005B30: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6F 75 sou
005B40: 6E 64 20 71 75 65 75 65 2E 0D 0A 20 20 20 20 20 nd queue...
005B50: 20 20 20 20 20 42 69 74 20 33 3A 20 20 20 20 20 Bit 3:
005B60: 20 20 20 20 54 68 65 20 63 68 61 6E 6E 65 6C 20 The channel
005B70: 69 73 20 61 77 61 69 74 69 6E 67 20 61 20 72 65 is awaiting a re
005B80: 6E 64 65 7A 76 6F 75 73 20 77 69 74 68 20 63 68 ndezvous with ch
005B90: 61 6E 6E 65 6C 20 41 2E 0D 0A 20 20 20 20 20 20 annel A...
005BA0: 20 20 20 20 42 69 74 20 34 3A 20 20 20 20 20 20 Bit 4:
005BB0: 20 20 20 54 68 65 20 63 68 61 6E 6E 65 6C 20 69 The channel i
005BC0: 73 20 61 77 61 69 74 69 6E 67 20 61 20 72 65 6E s awaiting a ren
005BD0: 64 65 7A 76 6F 75 73 20 77 69 74 68 20 63 68 61 dezvous with cha
005BE0: 6E 6E 65 6C 20 42 2E 0D 0A 20 20 20 20 20 20 20 nnel B...
005BF0: 20 20 20 42 69 74 20 35 3A 20 20 20 20 20 20 20 Bit 5:
005C00: 20 20 54 68 65 20 63 68 61 6E 6E 65 6C 20 69 73 The channel is
005C10: 20 61 77 61 69 74 69 6E 67 20 61 20 72 65 6E 64 awaiting a rend
005C20: 65 7A 76 6F 75 73 20 77 69 74 68 20 63 68 61 6E ezvous with chan
005C30: 6E 65 6C 20 43 2E 0D 0A 20 20 20 20 20 20 20 20 nel C...
005C40: 20 20 42 69 74 20 36 3A 20 20 20 20 20 20 20 20 Bit 6:
005C50: 20 54 68 65 20 63 68 61 6E 6E 65 6C 20 69 73 20 The channel is
005C60: 68 65 6C 64 2E 0D 0A 20 20 20 20 20 20 20 20 20 held...
005C70: 20 42 69 74 20 37 3A 20 20 20 20 20 20 20 20 20 Bit 7:
005C80: 54 68 65 20 63 68 61 6E 6E 65 6C 20 69 73 20 61 The channel is a
005C90: 63 74 69 76 65 20 28 70 72 6F 64 75 63 69 6E 67 ctive (producing
005CA0: 20 61 20 73 6F 75 6E 64 29 2E 0D 0A 0D 0A 0D 0A a sound).......
005CB0: 20 20 20 20 20 20 20 43 61 6C 6C 69 6E 67 20 74 Calling t
005CC0: 68 69 73 20 72 6F 75 74 69 6E 65 20 64 69 73 61 his routine disa
005CD0: 72 6D 73 20 74 68 65 20 73 6F 75 6E 64 20 71 75 rms the sound qu
005CE0: 65 75 65 20 65 76 65 6E 74 20 20 74 68 61 74 20 eue event that
005CF0: 20 6F 63 63 75 72 73 20 20 77 68 65 6E 0D 0A 20 occurs when..
005D00: 20 20 20 20 20 20 74 68 65 20 71 75 65 75 65 20 the queue
005D10: 68 61 73 20 61 20 66 72 65 65 20 73 6C 6F 74 20 has a free slot
005D20: 66 6F 72 20 74 68 65 20 20 63 68 61 6E 6E 65 6C for the channel
005D30: 20 20 72 65 74 75 72 6E 65 64 20 20 28 73 65 65 returned (see
005D40: 20 20 53 4F 55 4E 44 20 20 41 52 4D 0D 0A 20 20 SOUND ARM..
005D50: 20 20 20 20 20 45 56 45 4E 54 29 2E 0D 0A 0D 0A EVENT).....
005D60: 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F .. This ro
005D70: 75 74 69 6E 65 20 6D 61 79 20 65 6E 61 62 6C 65 utine may enable
005D80: 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D 0A interrupts.....
005D90: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
005DA0: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D ed entries:.....
005DB0: 0A 20 20 20 20 20 20 20 53 4F 55 4E 44 20 41 52 . SOUND AR
005DC0: 4D 20 45 56 45 4E 54 0D 0A 20 20 20 20 20 20 20 M EVENT..
005DD0: 53 4F 55 4E 44 20 51 55 45 55 45 0D 0A 0D 0A 0D SOUND QUEUE.....
005DE0: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
005DF0: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
005E00: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
005E10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005E20: 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 37 31 page 15.171
005E30: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
005E40: 20 20 20 20 20 31 34 34 3A 20 53 4F 55 4E 44 20 144: SOUND
005E50: 41 52 4D 20 45 56 45 4E 54 20 20 20 20 20 20 20 ARM EVENT
005E60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005E70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005E80: 20 20 20 20 20 20 23 42 43 42 30 0D 0A 0D 0A 20 #BCB0....
005E90: 20 20 20 20 20 20 53 65 74 20 75 70 20 61 6E 20 Set up an
005EA0: 65 76 65 6E 74 20 74 6F 20 62 65 20 72 75 6E 20 event to be run
005EB0: 77 68 65 6E 20 61 20 73 6F 75 6E 64 20 71 75 65 when a sound que
005EC0: 75 65 20 62 65 63 6F 6D 65 73 20 65 6D 70 74 79 ue becomes empty
005ED0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
005EE0: 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 on:......
005EF0: 41 72 6D 20 74 68 65 20 73 6F 75 6E 64 20 65 76 Arm the sound ev
005F00: 65 6E 74 20 74 6F 20 62 65 20 72 75 6E 20 77 68 ent to be run wh
005F10: 65 6E 20 61 20 66 72 65 65 20 73 6C 6F 74 20 6F en a free slot o
005F20: 63 63 75 72 73 20 69 6E 20 20 61 20 20 63 68 61 ccurs in a cha
005F30: 6E 6E 65 6C 27 73 0D 0A 20 20 20 20 20 20 20 73 nnel's.. s
005F40: 6F 75 6E 64 20 71 75 65 75 65 2E 0D 0A 0D 0A 20 ound queue.....
005F50: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
005F60: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
005F70: 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 A contains the
005F80: 20 62 69 74 20 66 6F 72 20 74 68 65 20 63 68 61 bit for the cha
005F90: 6E 6E 65 6C 20 74 6F 20 61 72 6D 2E 0D 0A 20 20 nnel to arm...
005FA0: 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 HL contains
005FB0: 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 the address of
005FC0: 61 6E 20 65 76 65 6E 74 20 62 6C 6F 63 6B 2E 0D an event block..
005FD0: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
005FE0: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
005FF0: 20 20 20 20 20 41 46 2C 20 42 43 2C 20 44 45 20 AF, BC, DE
006000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
006010: 05 00 00 00 02 09 50 E5 05 00 C1 02 00 00 00 02 ......P.........
006020: 05 00 C2 02 00 00 00 02 05 00 C3 02 00 00 00 02 ................
006030: 05 00 C4 02 00 00 00 02 05 00 C5 02 00 00 00 02 ................
006040: 05 00 C6 02 00 00 00 02 05 00 C7 02 00 00 00 02 ................
006050: 05 00 C8 02 00 00 00 02 05 00 C9 02 00 00 00 02 ................
006060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006100: 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D and HL corrupt..
006110: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 . All othe
006120: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
006130: 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 erved.....
006140: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 Notes:....
006150: 20 20 54 68 65 20 63 68 61 6E 6E 65 6C 20 66 6F The channel fo
006160: 72 20 77 68 69 63 68 20 74 6F 20 61 72 6D 20 74 r which to arm t
006170: 68 65 20 65 76 65 6E 74 20 69 73 20 65 6E 63 6F he event is enco
006180: 64 65 64 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D ded as follows:.
006190: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
0061A0: 20 20 20 42 69 74 20 30 3A 20 20 20 20 41 72 6D Bit 0: Arm
0061B0: 20 63 68 61 6E 6E 65 6C 20 41 2E 0D 0A 20 20 20 channel A...
0061C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 Bit
0061D0: 20 31 3A 20 20 20 20 41 72 6D 20 63 68 61 6E 6E 1: Arm chann
0061E0: 65 6C 20 42 2E 0D 0A 20 20 20 20 20 20 20 20 20 el B...
0061F0: 20 20 20 20 20 20 20 42 69 74 20 32 3A 20 20 20 Bit 2:
006200: 20 41 72 6D 20 63 68 61 6E 6E 65 6C 20 43 2E 0D Arm channel C..
006210: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 6D ..... If m
006220: 6F 72 65 20 74 68 61 6E 20 6F 6E 65 20 62 69 74 ore than one bit
006230: 20 69 73 20 73 65 74 20 20 74 68 65 6E 20 20 6F is set then o
006240: 6E 6C 79 20 20 6F 6E 65 20 20 63 68 61 6E 6E 65 nly one channe
006250: 6C 20 20 69 73 20 20 61 72 6D 65 64 2E 20 20 54 l is armed. T
006260: 68 65 0D 0A 20 20 20 20 20 20 20 63 68 61 6E 6E he.. chann
006270: 65 6C 73 20 61 72 65 20 61 72 6D 65 64 20 69 6E els are armed in
006280: 20 74 68 65 20 6F 72 64 65 72 20 67 69 76 65 6E the order given
006290: 20 61 62 6F 76 65 2E 0D 0A 0D 0A 20 20 20 20 20 above.....
0062A0: 20 20 54 68 65 20 65 76 65 6E 74 20 62 6C 6F 63 The event bloc
0062B0: 6B 20 70 61 73 73 65 64 20 6D 75 73 74 20 62 65 k passed must be
0062C0: 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 28 62 79 initialized (by
0062D0: 20 4B 4C 20 49 4E 49 54 20 45 56 45 4E 54 29 2E KL INIT EVENT).
0062E0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
0062F0: 20 65 76 65 6E 74 20 77 69 6C 6C 20 62 65 20 27 event will be '
006300: 6B 69 63 6B 65 64 27 20 77 68 65 6E 20 61 20 66 kicked' when a f
006310: 72 65 65 20 73 6C 6F 74 20 6F 63 63 75 72 73 20 ree slot occurs
006320: 69 6E 20 20 74 68 65 20 20 71 75 65 75 65 2E 20 in the queue.
006330: 20 49 66 0D 0A 20 20 20 20 20 20 20 74 68 65 72 If.. ther
006340: 65 20 69 73 20 61 20 66 72 65 65 20 73 6C 6F 74 e is a free slot
006350: 20 69 6E 20 74 68 65 20 71 75 65 75 65 20 77 68 in the queue wh
006360: 65 6E 20 74 68 69 73 20 72 6F 75 74 69 6E 65 20 en this routine
006370: 69 73 20 63 61 6C 6C 65 64 20 74 68 65 6E 20 74 is called then t
006380: 68 65 0D 0A 20 20 20 20 20 20 20 65 76 65 6E 74 he.. event
006390: 20 77 69 6C 6C 20 62 65 20 27 6B 69 63 6B 65 64 will be 'kicked
0063A0: 27 20 69 6D 6D 65 64 69 61 74 65 6C 79 2E 0D 0A ' immediately...
0063B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 .... The s
0063C0: 6F 75 6E 64 20 65 76 65 6E 74 20 69 73 20 64 69 ound event is di
0063D0: 73 61 72 6D 65 64 20 61 75 74 6F 6D 61 74 69 63 sarmed automatic
0063E0: 61 6C 6C 79 20 77 68 65 6E 20 53 4F 55 4E 44 20 ally when SOUND
0063F0: 20 51 55 45 55 45 20 20 6F 72 20 20 53 4F 55 4E QUEUE or SOUN
006400: 44 0D 0A 20 20 20 20 20 20 20 43 48 45 43 4B 20 D.. CHECK
006410: 69 73 20 63 61 6C 6C 65 64 2E 20 49 74 20 69 73 is called. It is
006420: 20 61 6C 73 6F 20 64 69 73 61 72 6D 65 64 20 77 also disarmed w
006430: 68 65 6E 20 74 68 65 20 65 76 65 6E 74 20 69 73 hen the event is
006440: 20 72 75 6E 2E 20 54 68 75 73 2C 20 20 74 68 65 run. Thus, the
006450: 0D 0A 20 20 20 20 20 20 20 65 76 65 6E 74 20 72 .. event r
006460: 6F 75 74 69 6E 65 20 77 69 6C 6C 20 6E 65 65 64 outine will need
006470: 20 74 6F 20 72 65 61 72 6D 20 74 68 65 20 73 6F to rearm the so
006480: 75 6E 64 20 76 65 6E 74 20 20 74 6F 20 20 6B 65 und vent to ke
006490: 65 70 20 20 69 74 20 20 72 75 6E 6E 69 6E 67 0D ep it running.
0064A0: 0A 20 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 6F . continuo
0064B0: 75 73 6C 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 usly.......
0064C0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 6D This routine m
0064D0: 61 79 20 65 6E 61 62 6C 65 20 69 6E 74 65 72 72 ay enable interr
0064E0: 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 upts.........
0064F0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
006500: 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B ies:.... K
006510: 4C 20 49 4E 49 54 20 45 56 45 4E 54 0D 0A 20 20 L INIT EVENT..
006520: 20 20 20 20 20 53 4F 55 4E 44 20 43 48 45 43 4B SOUND CHECK
006530: 0D 0A 20 20 20 20 20 20 20 53 4F 55 4E 44 20 51 .. SOUND Q
006540: 55 45 55 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 UEUE..........
006550: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
006560: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
006570: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
006580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006590: 70 61 67 65 20 31 35 2E 31 37 32 0D 0A 0D 0A 0D page 15.172.....
0065A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0065B0: 31 34 35 3A 20 53 4F 55 4E 44 20 52 45 4C 45 41 145: SOUND RELEA
0065C0: 53 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 SE
0065D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0065E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0065F0: 20 23 42 43 42 33 0D 0A 0D 0A 0D 0A 20 20 20 20 #BCB3......
006600: 20 20 20 41 6C 6C 6F 77 20 73 6F 75 6E 64 73 20 Allow sounds
006610: 77 68 69 63 68 20 61 72 65 20 69 6E 64 69 76 69 which are indivi
006620: 64 75 61 6C 6C 79 20 68 65 6C 64 20 74 6F 20 73 dually held to s
006630: 74 61 72 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tart.......
006640: 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 Action:......
006650: 20 20 20 20 20 20 52 65 6C 65 61 73 65 20 68 65 Release he
006660: 6C 64 20 73 6F 75 6E 64 73 20 6F 6E 20 61 20 6E ld sounds on a n
006670: 75 6D 62 65 72 20 6F 66 20 63 68 61 6E 6E 65 6C umber of channel
006680: 73 2E 20 54 68 69 73 20 61 6C 6C 6F 77 73 20 20 s. This allows
006690: 73 6F 75 6E 64 73 20 20 74 68 61 74 0D 0A 20 20 sounds that..
0066A0: 20 20 20 20 20 77 65 72 65 20 6D 61 72 6B 65 64 were marked
0066B0: 20 77 69 74 68 20 61 20 68 6F 6C 64 20 62 69 74 with a hold bit
0066C0: 20 77 68 65 6E 20 74 68 65 79 20 77 65 72 65 20 when they were
0066D0: 73 65 74 20 75 70 20 62 79 20 20 53 4F 55 4E 44 set up by SOUND
0066E0: 20 20 51 55 45 55 45 20 20 74 6F 0D 0A 20 20 20 QUEUE to..
0066F0: 20 20 20 20 73 74 61 72 74 20 28 6F 74 68 65 72 start (other
006700: 20 66 61 63 74 6F 72 73 20 77 69 6C 6C 69 6E 67 factors willing
006710: 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 )....... E
006720: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
006730: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 ...... A c
006740: 6F 6E 74 61 69 6E 73 20 62 69 74 73 20 66 6F 72 ontains bits for
006750: 20 74 68 65 20 63 68 61 6E 6E 65 6C 73 20 74 6F the channels to
006760: 20 72 65 6C 65 61 73 65 2E 0D 0A 0D 0A 0D 0A 20 release.......
006770: 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 Exit condi
006780: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
006790: 20 20 20 41 46 2C 20 42 43 2C 20 44 45 2C 20 48 AF, BC, DE, H
0067A0: 4C 20 61 6E 64 20 49 58 20 63 6F 72 72 75 70 74 L and IX corrupt
0067B0: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
0067C0: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
0067D0: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
0067E0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
0067F0: 0A 20 20 20 20 20 20 20 54 68 65 20 63 68 61 6E . The chan
006800: 6E 65 6C 73 20 74 6F 20 72 65 6C 65 61 73 65 20 nels to release
006810: 61 72 65 20 65 6E 63 6F 64 65 64 20 61 73 20 66 are encoded as f
006820: 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ollows:......
006830: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 Bit
006840: 20 30 3A 20 20 20 20 52 65 6C 65 61 73 65 20 63 0: Release c
006850: 68 61 6E 6E 65 6C 20 41 2E 0D 0A 20 20 20 20 20 hannel A...
006860: 20 20 20 20 20 20 20 20 20 20 20 42 69 74 20 31 Bit 1
006870: 3A 20 20 20 20 52 65 6C 65 61 73 65 20 63 68 61 : Release cha
006880: 6E 6E 65 6C 20 42 2E 0D 0A 20 20 20 20 20 20 20 nnel B...
006890: 20 20 20 20 20 20 20 20 20 42 69 74 20 32 3A 20 Bit 2:
0068A0: 20 20 20 52 65 6C 65 61 73 65 20 63 68 61 6E 6E Release chann
0068B0: 65 6C 20 43 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 el C.......
0068C0: 20 20 41 6C 6C 20 63 68 61 6E 6E 65 6C 73 20 74 All channels t
0068D0: 68 61 74 20 61 72 65 20 73 70 65 63 69 66 69 65 hat are specifie
0068E0: 64 20 61 72 65 20 72 65 6C 65 61 73 65 64 2E 0D d are released..
0068F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 ..... All
006900: 73 6F 75 6E 64 73 20 63 75 72 72 65 6E 74 6C 79 sounds currently
006910: 20 68 65 6C 64 20 62 79 20 53 4F 55 4E 44 20 48 held by SOUND H
006920: 4F 4C 44 20 61 72 65 20 61 75 74 6F 6D 61 74 69 OLD are automati
006930: 63 61 6C 6C 79 20 72 65 6C 65 61 73 65 64 2E 0D cally released..
006940: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
006950: 20 72 6F 75 74 69 6E 65 20 6D 61 79 20 65 6E 61 routine may ena
006960: 62 6C 65 20 69 6E 74 65 72 72 75 70 74 73 2E 0D ble interrupts..
006970: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 ....... Re
006980: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
006990: 0D 0A 0D 0A 20 20 20 20 20 20 20 53 4F 55 4E 44 .... SOUND
0069A0: 20 51 55 45 55 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A QUEUE..........
0069B0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
0069C0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
0069D0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
0069E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0069F0: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
006A00: 31 37 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 173.............
006A10: 0A 20 20 20 20 20 20 20 31 34 36 3A 20 53 4F 55 . 146: SOU
006A20: 4E 44 20 48 4F 4C 44 20 20 20 20 20 20 20 20 20 ND HOLD
006A30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006A40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006A50: 20 20 20 20 20 20 20 20 20 23 42 43 42 36 0D 0A #BCB6..
006A60: 0D 0A 20 20 20 20 20 20 20 53 74 6F 70 20 61 6C .. Stop al
006A70: 6C 20 73 6F 75 6E 64 73 20 69 6E 20 6D 69 64 66 l sounds in midf
006A80: 6C 69 67 68 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 light.....
006A90: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 Action:....
006AA0: 20 20 20 54 68 69 73 20 73 74 6F 70 73 20 61 6C This stops al
006AB0: 6C 20 73 6F 75 6E 64 73 20 69 6D 6D 65 64 69 61 l sounds immedia
006AC0: 74 65 6C 79 2E 20 54 68 65 20 73 6F 75 6E 64 73 tely. The sounds
006AD0: 20 63 61 6E 20 62 65 20 73 74 61 72 74 65 64 20 can be started
006AE0: 61 67 61 69 6E 20 20 62 79 0D 0A 20 20 20 20 20 again by..
006AF0: 20 20 63 61 6C 6C 69 6E 67 20 53 4F 55 4E 44 20 calling SOUND
006B00: 43 4F 4E 54 49 4E 55 45 2E 0D 0A 0D 0A 20 20 20 CONTINUE.....
006B10: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
006B20: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
006B30: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A No conditions...
006B40: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
006B50: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
006B60: 20 20 20 20 49 66 20 61 20 73 6F 75 6E 64 20 77 If a sound w
006B70: 61 73 20 61 63 74 69 76 65 3A 0D 0A 0D 0A 0D 0A as active:......
006B80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006B90: 43 61 72 72 79 20 74 72 75 65 2E 0D 0A 0D 0A 0D Carry true......
006BA0: 0A 20 20 20 20 20 20 20 49 66 20 6E 6F 20 73 6F . If no so
006BB0: 75 6E 64 20 77 61 73 20 61 63 74 69 76 65 3A 0D und was active:.
006BC0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
006BD0: 20 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 Carry false
006BE0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C ....... Al
006BF0: 77 61 79 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ways:......
006C00: 20 20 20 20 20 20 20 20 20 20 20 41 2C 20 42 43 A, BC
006C10: 2C 20 48 4C 20 61 6E 64 20 6F 74 68 65 72 20 66 , HL and other f
006C20: 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 lags corrupt...
006C30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
006C40: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
006C50: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
006C60: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
006C70: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 6F 75 ...... Sou
006C80: 6E 64 73 20 74 68 61 74 20 61 72 65 20 68 65 6C nds that are hel
006C90: 64 20 62 79 20 74 68 69 73 20 72 6F 75 74 69 6E d by this routin
006CA0: 65 20 61 72 65 20 61 75 74 6F 6D 61 74 69 63 61 e are automatica
006CB0: 6C 6C 79 20 72 65 73 74 61 72 74 65 64 20 20 77 lly restarted w
006CC0: 68 65 6E 0D 0A 20 20 20 20 20 20 20 53 4F 55 4E hen.. SOUN
006CD0: 44 20 51 55 45 55 45 20 6F 72 20 53 4F 55 4E 44 D QUEUE or SOUND
006CE0: 20 52 45 4C 45 41 53 45 20 61 72 65 20 63 61 6C RELEASE are cal
006CF0: 6C 65 64 20 61 73 20 77 65 6C 6C 20 61 73 20 77 led as well as w
006D00: 68 65 6E 20 53 4F 55 4E 44 20 43 4F 4E 54 49 4E hen SOUND CONTIN
006D10: 55 45 0D 0A 20 20 20 20 20 20 20 69 74 73 65 6C UE.. itsel
006D20: 66 20 69 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A f is called.....
006D30: 20 20 20 20 20 20 20 54 68 65 20 73 6F 75 6E 64 The sound
006D40: 20 69 73 20 73 74 6F 70 70 65 64 20 62 79 20 20 is stopped by
006D50: 68 61 6C 74 69 6E 67 20 20 74 68 65 20 20 65 78 halting the ex
006D60: 65 63 75 74 69 6F 6E 20 20 6F 66 20 20 73 6F 75 ecution of sou
006D70: 6E 64 20 20 61 6E 64 20 20 74 6F 6E 65 0D 0A 20 nd and tone..
006D80: 20 20 20 20 20 20 65 6E 76 65 6C 6F 70 65 73 20 envelopes
006D90: 61 6E 64 20 73 65 74 74 69 6E 67 20 74 68 65 20 and setting the
006DA0: 73 6F 75 6E 64 20 63 68 69 70 20 76 6F 6C 75 6D sound chip volum
006DB0: 65 20 74 6F 20 7A 65 72 6F 20 66 6F 72 20 61 6C e to zero for al
006DC0: 6C 20 20 63 68 61 6E 6E 65 6C 73 2E 0D 0A 20 20 l channels...
006DD0: 20 20 20 20 20 57 68 65 6E 20 74 68 65 20 73 6F When the so
006DE0: 75 6E 64 20 69 73 20 72 65 73 74 61 72 74 65 64 und is restarted
006DF0: 20 69 74 20 77 69 6C 6C 20 63 6F 6E 74 69 6E 75 it will continu
006E00: 65 20 66 72 6F 6D 20 61 73 20 6E 65 61 72 20 77 e from as near w
006E10: 68 65 72 65 20 69 74 20 77 61 73 0D 0A 0D 0A 20 here it was....
006E20: 20 20 20 20 20 20 73 74 6F 70 70 65 64 20 61 73 stopped as
006E30: 20 69 73 20 70 6F 73 73 69 62 6C 65 2E 0D 0A 0D is possible....
006E40: 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 . This rou
006E50: 74 69 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E 74 tine enables int
006E60: 65 72 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 errupts.......
006E70: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
006E80: 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ries:....
006E90: 53 4F 55 4E 44 20 43 4F 4E 54 49 4E 55 45 0D 0A SOUND CONTINUE..
006EA0: 20 20 20 20 20 20 20 53 4F 55 4E 44 20 52 45 53 SOUND RES
006EB0: 45 54 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ET............
006EC0: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
006ED0: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
006EE0: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
006EF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006F00: 70 61 67 65 20 31 35 2E 31 37 34 0D 0A 0D 0A 0D page 15.174.....
006F10: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
006F20: 31 34 37 3A 20 53 4F 55 4E 44 20 43 4F 4E 54 49 147: SOUND CONTI
006F30: 4E 55 45 20 20 20 20 20 20 20 20 20 20 20 20 20 NUE
006F40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006F50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006F60: 20 23 42 43 42 39 0D 0A 0D 0A 0D 0A 20 20 20 20 #BCB9......
006F70: 20 20 20 52 65 73 74 61 72 74 20 73 6F 75 6E 64 Restart sound
006F80: 73 20 61 66 74 65 72 20 74 68 65 79 20 68 61 76 s after they hav
006F90: 65 20 61 6C 6C 20 62 65 65 6E 20 68 65 6C 64 2E e all been held.
006FA0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 ...... Act
006FB0: 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion:......
006FC0: 20 41 6C 6C 6F 77 73 20 73 6F 75 6E 64 73 20 74 Allows sounds t
006FD0: 68 61 74 20 68 61 76 65 20 62 65 65 6E 20 68 65 hat have been he
006FE0: 6C 64 20 62 79 20 63 61 6C 6C 69 6E 67 20 53 4F ld by calling SO
006FF0: 55 4E 44 20 48 4F 4C 44 20 74 6F 20 63 6F 6E 74 UND HOLD to cont
007000: 69 6E 75 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 inue.......
007010: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
007020: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
007030: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A No conditions...
007040: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
007050: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
007060: 0A 20 20 20 20 20 20 20 41 46 2C 20 42 43 2C 20 . AF, BC,
007070: 44 45 20 61 6E 64 20 49 58 20 63 6F 72 72 75 70 DE and IX corrup
007080: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
007090: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
0070A0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
0070B0: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
0070C0: 0D 0A 20 20 20 20 20 20 20 49 66 20 6E 6F 20 73 .. If no s
0070D0: 6F 75 6E 64 73 20 61 72 65 20 68 65 6C 64 20 74 ounds are held t
0070E0: 68 65 6E 20 6E 6F 20 61 63 74 69 6F 6E 20 69 73 hen no action is
0070F0: 20 74 61 6B 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 taken.......
007100: 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 This routine
007110: 20 6D 61 79 20 65 6E 61 62 6C 65 20 69 6E 74 65 may enable inte
007120: 72 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 rrupts.........
007130: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
007140: 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tries:......
007150: 20 20 20 53 4F 55 4E 44 20 48 4F 4C 44 0D 0A 20 SOUND HOLD..
007160: 20 20 20 20 20 20 53 4F 55 4E 44 20 52 45 4C 45 SOUND RELE
007170: 41 53 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ASE.............
007180: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
007190: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
0071A0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
0071B0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
0071C0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
0071D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
0071E0: 65 20 31 35 2E 31 37 35 0D 0A 0D 0A 0D 0A 0D 0A e 15.175........
0071F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 34 38 ...... 148
007200: 3A 20 53 4F 55 4E 44 20 41 4D 50 4C 20 45 4E 56 : SOUND AMPL ENV
007210: 45 4C 4F 50 45 20 20 20 20 20 20 20 20 20 20 20 ELOPE
007220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
007240: 43 42 43 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 CBC.... Se
007250: 74 20 75 70 20 61 6E 20 61 6D 70 6C 69 74 75 64 t up an amplitud
007260: 65 20 65 6E 76 65 6C 6F 70 65 2E 0D 0A 0D 0A 20 e envelope.....
007270: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
007280: 0A 20 20 20 20 20 20 20 53 65 74 20 75 70 20 6F . Set up o
007290: 6E 65 20 6F 66 20 74 68 65 20 31 35 20 75 73 65 ne of the 15 use
0072A0: 72 20 70 72 6F 67 72 61 6D 6D 61 62 6C 65 20 61 r programmable a
0072B0: 6D 70 6C 69 74 75 64 65 20 28 76 6F 6C 75 6D 65 mplitude (volume
0072C0: 29 20 65 6E 76 65 6C 6F 70 65 73 2E 0D 0A 0D 0A ) envelopes.....
0072D0: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
0072E0: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
0072F0: 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E A contains an
007300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
007310: 06 00 00 00 02 09 50 E5 06 00 C1 02 00 00 00 02 ......P.........
007320: 06 00 C2 02 00 00 00 02 06 00 C3 02 00 00 00 02 ................
007330: 06 00 C4 02 00 00 00 02 06 00 C5 02 00 00 00 02 ................
007340: 06 00 C6 02 00 00 00 02 06 00 C7 02 00 00 00 02 ................
007350: 06 00 C8 02 00 00 00 02 06 00 C9 02 00 00 00 02 ................
007360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007400: 20 65 6E 76 65 6C 6F 70 65 20 6E 75 6D 62 65 72 envelope number
007410: 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E ... HL con
007420: 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 tains the addres
007430: 73 20 6F 66 20 61 6E 20 61 6D 70 6C 69 74 75 64 s of an amplitud
007440: 65 20 64 61 74 61 20 62 6C 6F 63 6B 2E 0D 0A 0D e data block....
007450: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
007460: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
007470: 20 20 20 49 66 20 65 6E 76 65 6C 6F 70 65 20 68 If envelope h
007480: 61 73 20 62 65 65 6E 20 73 65 74 20 4F 4B 3A 0D as been set OK:.
007490: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
0074A0: 20 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A Carry true...
0074B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0074C0: 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 HL contains the
0074D0: 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 64 address of the d
0074E0: 61 74 61 20 62 6C 6F 63 6B 20 2B 20 31 36 2E 0D ata block + 16..
0074F0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
007500: 20 41 20 61 6E 64 20 42 43 20 63 6F 72 72 75 70 A and BC corrup
007510: 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 t..... If
007520: 74 68 65 20 65 6E 76 65 6C 6F 70 65 20 6E 75 6D the envelope num
007530: 62 65 72 20 69 73 20 69 6E 76 61 6C 69 64 3A 0D ber is invalid:.
007540: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
007550: 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D Carry false..
007560: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
007570: 20 41 2C 20 42 20 61 6E 64 20 48 4C 20 70 72 65 A, B and HL pre
007580: 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 served.....
007590: 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A 20 20 20 Always:....
0075A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 44 45 20 DE
0075B0: 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 73 20 and other flags
0075C0: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
0075D0: 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 All ot
0075E0: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
0075F0: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 eserved.....
007600: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 Notes:....
007610: 20 20 20 20 54 68 65 20 65 6E 76 65 6C 6F 70 65 The envelope
007620: 20 74 6F 20 73 65 74 20 75 70 20 69 73 20 73 70 to set up is sp
007630: 65 63 69 66 69 65 64 20 62 79 20 61 20 6E 75 6D ecified by a num
007640: 62 65 72 20 69 6E 20 74 68 65 20 72 61 6E 67 65 ber in the range
007650: 20 31 2E 2E 31 35 2E 20 20 4E 0D 0A 20 20 20 20 1..15. N..
007660: 20 20 20 65 6E 76 65 6C 6F 70 65 20 69 73 20 73 envelope is s
007670: 65 74 20 75 70 20 69 66 20 61 20 6E 75 6D 62 65 et up if a numbe
007680: 72 20 6F 75 74 73 69 64 65 20 74 68 69 73 20 72 r outside this r
007690: 61 6E 67 65 20 69 73 20 70 61 73 73 65 64 2E 0D ange is passed..
0076A0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 61 6D ... The am
0076B0: 70 6C 69 74 75 64 65 20 64 61 74 61 20 62 6C 6F plitude data blo
0076C0: 63 6B 20 69 73 20 63 6F 70 69 65 64 20 69 6E 74 ck is copied int
0076D0: 6F 20 74 68 65 20 20 61 6D 70 6C 69 74 75 64 65 o the amplitude
0076E0: 20 20 65 6E 76 65 6C 6F 70 65 2E 20 20 54 68 65 envelope. The
0076F0: 0D 0A 20 20 20 20 20 20 20 64 61 74 61 20 62 6C .. data bl
007700: 6F 63 6B 20 6D 61 79 20 6C 69 65 20 69 6E 20 52 ock may lie in R
007710: 4F 4D 20 6F 72 20 69 6E 20 52 41 4D 2E 20 49 74 OM or in RAM. It
007720: 20 6D 61 79 20 20 6E 6F 74 20 20 6C 69 65 20 20 may not lie
007730: 69 6E 20 20 52 41 4D 20 20 68 69 64 64 65 6E 0D in RAM hidden.
007740: 0A 20 20 20 20 20 20 20 75 6E 64 65 72 6E 65 61 . undernea
007750: 74 68 20 61 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 th a ROM.....
007760: 20 20 20 20 54 68 65 20 61 6D 70 6C 69 74 75 64 The amplitud
007770: 65 20 64 61 74 61 20 62 6C 6F 63 6B 20 68 61 73 e data block has
007780: 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 6C the following l
007790: 61 79 6F 75 74 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 ayout:......
0077A0: 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 65 Byte
0077B0: 20 30 3A 20 20 20 20 20 20 20 20 20 20 20 20 20 0:
0077C0: 43 6F 75 6E 74 20 6F 66 20 73 65 63 74 69 6F 6E Count of section
0077D0: 73 20 69 6E 20 74 68 65 20 65 6E 76 65 6C 6F 70 s in the envelop
0077E0: 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 e...
0077F0: 20 20 20 20 42 79 74 65 73 20 31 2E 2E 33 3A 20 Bytes 1..3:
007800: 20 20 20 20 20 20 20 20 46 69 72 73 74 20 73 65 First se
007810: 63 74 69 6F 6E 20 6F 66 20 74 68 65 20 65 6E 76 ction of the env
007820: 65 6C 6F 70 65 2E 0D 0A 20 20 20 20 20 20 20 20 elope...
007830: 20 20 20 20 20 20 20 20 42 79 74 65 73 20 34 2E Bytes 4.
007840: 2E 36 3A 20 20 20 20 20 20 20 20 20 53 65 63 6F .6: Seco
007850: 6E 64 20 73 65 63 74 69 6F 6E 20 6F 66 20 74 68 nd section of th
007860: 65 20 65 6E 76 65 6C 6F 70 65 2E 0D 0A 20 20 20 e envelope...
007870: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 Byt
007880: 65 73 20 37 2E 2E 39 3A 20 20 20 20 20 20 20 20 es 7..9:
007890: 20 54 68 69 72 64 20 73 65 63 74 69 6F 6E 20 6F Third section o
0078A0: 66 20 74 68 65 20 65 6E 76 65 6C 6F 70 65 2E 0D f the envelope..
0078B0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0078C0: 20 42 79 74 65 73 20 31 30 2E 2E 31 32 3A 20 20 Bytes 10..12:
0078D0: 20 20 20 20 20 46 6F 75 72 74 68 20 73 65 63 74 Fourth sect
0078E0: 69 6F 6E 20 6F 66 20 74 68 65 20 65 6E 76 65 6C ion of the envel
0078F0: 6F 70 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 ope...
007900: 20 20 20 20 20 20 42 79 74 65 73 20 31 33 2E 2E Bytes 13..
007910: 31 35 3A 20 20 20 20 20 20 20 46 69 66 74 68 20 15: Fifth
007920: 73 65 63 74 69 6F 6E 20 6F 66 20 74 68 65 20 65 section of the e
007930: 6E 76 65 6C 6F 70 65 2E 0D 0A 0D 0A 0D 0A 20 20 nvelope.......
007940: 20 20 20 20 20 54 68 65 20 66 69 72 73 74 20 62 The first b
007950: 79 74 65 20 6F 66 20 74 68 65 20 61 6D 70 6C 69 yte of the ampli
007960: 74 75 64 65 20 64 61 74 61 20 62 6C 6F 63 6B 20 tude data block
007970: 20 73 70 65 63 69 66 69 65 73 20 20 74 68 65 20 specifies the
007980: 20 6E 75 6D 62 65 72 20 20 6F 66 0D 0A 20 20 20 number of..
007990: 20 20 20 20 73 65 63 74 69 6F 6E 73 20 75 73 65 sections use
0079A0: 64 20 69 6E 20 74 68 65 20 65 6E 76 65 6C 6F 70 d in the envelop
0079B0: 65 2E 20 53 65 63 74 69 6F 6E 73 20 6E 6F 74 20 e. Sections not
0079C0: 75 73 65 64 20 6E 65 65 64 20 6E 6F 74 20 62 65 used need not be
0079D0: 20 20 73 65 74 20 20 75 70 2E 0D 0A 20 20 20 20 set up...
0079E0: 20 20 20 41 6E 20 65 6E 76 65 6C 6F 70 65 20 75 An envelope u
0079F0: 73 69 6E 67 20 6E 6F 20 73 65 63 74 69 6F 6E 73 sing no sections
007A00: 20 68 61 73 20 61 20 73 70 65 63 69 61 6C 20 6D has a special m
007A10: 65 61 6E 69 6E 67 20 2D 20 68 6F 6C 64 20 61 20 eaning - hold a
007A20: 20 63 6F 6E 73 74 61 6E 74 0D 0A 20 20 20 20 20 constant..
007A30: 20 20 76 6F 6C 75 6D 65 20 6C 61 73 74 69 6E 67 volume lasting
007A40: 20 66 6F 72 20 32 20 73 65 63 6F 6E 64 73 2E 0D for 2 seconds..
007A50: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
007A60: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
007A70: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
007A80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007A90: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
007AA0: 31 35 2E 31 37 36 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.176..........
007AB0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6E .... The n
007AC0: 75 6D 62 65 72 20 6F 66 20 73 65 63 74 69 6F 6E umber of section
007AD0: 73 20 74 6F 20 75 73 65 20 69 73 20 6E 6F 74 20 s to use is not
007AE0: 63 68 65 63 6B 65 64 2C 20 69 66 20 61 20 6E 75 checked, if a nu
007AF0: 6D 62 65 72 20 6F 75 74 73 69 64 65 20 20 74 68 mber outside th
007B00: 65 0D 0A 20 20 20 20 20 20 20 72 61 6E 67 65 20 e.. range
007B10: 30 2E 2E 35 20 69 73 20 73 75 70 70 6C 69 65 64 0..5 is supplied
007B20: 20 74 68 65 6E 20 74 68 69 73 20 77 69 6C 6C 20 then this will
007B30: 68 61 76 65 20 75 6E 70 72 65 64 69 63 74 61 62 have unpredictab
007B40: 6C 65 20 65 66 66 65 63 74 73 2E 20 54 68 69 73 le effects. This
007B50: 0D 0A 20 20 20 20 20 20 20 73 68 6F 75 6C 64 20 .. should
007B60: 62 65 20 61 76 6F 69 64 65 64 2E 0D 0A 0D 0A 20 be avoided.....
007B70: 20 20 20 20 20 20 45 61 63 68 20 73 65 63 74 69 Each secti
007B80: 6F 6E 20 6F 66 20 74 68 65 20 61 6D 70 6C 69 74 on of the amplit
007B90: 75 64 65 20 64 61 74 61 20 62 6C 6F 63 6B 20 63 ude data block c
007BA0: 61 6E 20 73 70 65 63 69 66 79 20 65 69 74 68 65 an specify eithe
007BB0: 72 20 61 20 68 61 72 64 77 61 72 65 0D 0A 20 20 r a hardware..
007BC0: 20 20 20 20 20 6F 72 20 61 20 73 6F 66 74 77 61 or a softwa
007BD0: 72 65 20 65 6E 76 65 6C 6F 70 65 2E 20 54 68 69 re envelope. Thi
007BE0: 73 20 69 73 20 69 6E 64 69 63 61 74 65 64 20 62 s is indicated b
007BF0: 79 20 74 68 65 20 20 66 69 72 73 74 20 20 62 79 y the first by
007C00: 74 65 20 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 te of the..
007C10: 20 20 20 20 73 65 63 74 69 6F 6E 2E 0D 0A 0D 0A section.....
007C20: 20 20 20 20 20 20 20 41 20 73 6F 66 74 77 61 72 A softwar
007C30: 65 20 65 6E 76 65 6C 6F 70 65 20 73 65 63 74 69 e envelope secti
007C40: 6F 6E 20 69 73 20 6C 61 69 64 20 6F 75 74 20 61 on is laid out a
007C50: 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 20 s follows:....
007C60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 79 By
007C70: 74 65 20 30 3A 20 20 20 53 74 65 70 20 63 6F 75 te 0: Step cou
007C80: 6E 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 nt...
007C90: 20 20 20 20 20 42 79 74 65 20 31 3A 20 20 20 53 Byte 1: S
007CA0: 74 65 70 20 73 69 7A 65 2E 0D 0A 20 20 20 20 20 tep size...
007CB0: 20 20 20 20 20 20 20 20 20 20 20 42 79 74 65 20 Byte
007CC0: 32 3A 20 20 20 50 61 75 73 65 20 74 69 6D 65 2E 2: Pause time.
007CD0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 .... The f
007CE0: 61 63 74 20 74 68 61 74 20 74 68 69 73 20 69 73 act that this is
007CF0: 20 20 61 20 20 73 6F 66 74 77 61 72 65 20 20 65 a software e
007D00: 6E 76 65 6C 6F 70 65 20 20 73 65 63 74 69 6F 6E nvelope section
007D10: 20 20 72 61 74 68 65 72 20 20 74 68 61 6E 20 20 rather than
007D20: 61 0D 0A 20 20 20 20 20 20 20 68 61 72 64 77 61 a.. hardwa
007D30: 72 65 20 65 6E 76 65 6C 6F 70 65 20 73 65 63 74 re envelope sect
007D40: 69 6F 6E 20 69 73 20 69 6E 64 69 63 61 74 65 64 ion is indicated
007D50: 20 62 79 20 62 79 74 65 20 30 20 6E 6F 74 20 68 by byte 0 not h
007D60: 61 76 69 6E 67 20 62 69 74 20 37 20 73 65 74 2E aving bit 7 set.
007D70: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 .... If th
007D80: 65 20 73 74 65 70 20 63 6F 75 6E 74 20 69 73 20 e step count is
007D90: 69 6E 20 74 68 65 20 72 61 6E 67 65 20 31 2E 2E in the range 1..
007DA0: 32 37 20 74 68 65 6E 20 74 68 65 20 73 74 65 70 27 then the step
007DB0: 20 73 69 7A 65 20 69 73 20 61 64 64 65 64 20 74 size is added t
007DC0: 6F 0D 0A 20 20 20 20 20 20 20 74 68 65 20 76 6F o.. the vo
007DD0: 6C 75 6D 65 20 74 68 61 74 20 6E 75 6D 62 65 72 lume that number
007DE0: 20 6F 66 20 74 69 6D 65 73 20 77 69 74 68 20 61 of times with a
007DF0: 20 77 61 69 74 20 65 71 75 61 6C 20 74 6F 20 74 wait equal to t
007E00: 68 65 20 70 61 75 73 65 20 74 69 6D 65 20 69 6E he pause time in
007E10: 0D 0A 20 20 20 20 20 20 20 31 2F 31 30 30 73 20 .. 1/100s
007E20: 6F 66 20 61 20 73 65 63 6F 6E 64 20 61 66 74 65 of a second afte
007E30: 72 20 65 61 63 68 20 61 64 64 69 74 69 6F 6E 2E r each addition.
007E40: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 .... If th
007E50: 65 20 73 74 65 70 20 63 6F 75 6E 74 20 69 73 20 e step count is
007E60: 7A 65 72 6F 20 74 68 65 20 73 74 65 70 20 73 69 zero the step si
007E70: 7A 65 20 69 73 20 74 61 6B 65 6E 20 20 74 6F 20 ze is taken to
007E80: 20 62 65 20 20 61 6E 20 20 61 62 73 6F 6C 75 74 be an absolut
007E90: 65 0D 0A 20 20 20 20 20 20 20 76 6F 6C 75 6D 65 e.. volume
007EA0: 20 73 65 74 74 69 6E 67 2E 20 41 20 73 69 6E 67 setting. A sing
007EB0: 6C 65 20 77 61 69 74 20 6F 66 20 74 68 65 20 70 le wait of the p
007EC0: 61 75 73 65 20 74 69 6D 65 20 69 6E 20 31 2F 31 ause time in 1/1
007ED0: 30 30 73 20 6F 66 20 61 20 20 73 65 63 6F 6E 64 00s of a second
007EE0: 0D 0A 20 20 20 20 20 20 20 69 73 20 6D 61 64 65 .. is made
007EF0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 66 ....... Af
007F00: 74 65 72 20 63 61 6C 63 75 6C 61 74 69 6E 67 20 ter calculating
007F10: 74 68 65 20 6E 65 77 20 76 6F 6C 75 6D 65 20 74 the new volume t
007F20: 68 69 73 20 69 73 20 6D 61 72 6B 65 64 20 77 69 his is marked wi
007F30: 74 68 20 23 30 46 20 74 6F 20 6D 61 6B 65 20 20 th #0F to make
007F40: 73 75 72 65 0D 0A 20 20 20 20 20 20 20 69 74 20 sure.. it
007F50: 69 73 20 6C 65 67 61 6C 2E 20 54 68 75 73 2C 20 is legal. Thus,
007F60: 61 6C 6C 20 61 72 69 74 68 6D 65 74 69 63 20 6F all arithmetic o
007F70: 6E 20 74 68 65 20 76 6F 6C 75 6D 65 20 69 73 20 n the volume is
007F80: 63 61 72 72 69 65 64 20 6F 75 74 20 20 6D 6F 64 carried out mod
007F90: 75 6C 6F 0D 0A 20 20 20 20 20 20 20 31 36 2E 0D ulo.. 16..
007FA0: 0A 0D 0A 20 20 20 20 20 20 20 41 20 70 61 75 73 ... A paus
007FB0: 65 20 74 69 6D 65 20 6F 66 20 30 20 69 73 20 74 e time of 0 is t
007FC0: 61 6B 65 6E 20 74 6F 20 6D 65 61 6E 20 32 35 36 aken to mean 256
007FD0: 20 31 2F 31 30 30 73 20 6F 66 20 61 20 73 65 63 1/100s of a sec
007FE0: 6F 6E 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ond..... A
007FF0: 20 68 61 72 64 77 61 72 65 20 65 6E 76 65 6C 6F hardware envelo
008000: 70 65 20 73 65 63 74 69 6F 6E 20 69 73 20 6C 61 pe section is la
008010: 69 64 20 6F 75 74 20 61 73 20 66 6F 6C 6C 6F 77 id out as follow
008020: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s:....
008030: 20 20 20 20 20 20 42 79 74 65 20 30 3A 20 20 20 Byte 0:
008040: 20 20 20 20 45 6E 76 65 6C 6F 70 65 20 73 68 61 Envelope sha
008050: 70 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 pe...
008060: 20 20 20 20 20 42 79 74 65 20 31 2E 2E 32 3A 20 Byte 1..2:
008070: 20 20 20 45 6E 76 65 6C 6F 70 65 20 70 65 72 69 Envelope peri
008080: 6F 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 od..... Th
008090: 65 20 66 61 63 74 20 74 68 61 74 20 74 68 69 73 e fact that this
0080A0: 20 69 73 20 20 61 20 20 68 61 72 64 77 61 72 65 is a hardware
0080B0: 20 20 65 6E 76 65 6C 6F 70 65 20 20 73 65 63 74 envelope sect
0080C0: 69 6F 6E 20 20 72 61 74 68 65 72 20 20 74 68 61 ion rather tha
0080D0: 6E 20 20 61 0D 0A 20 20 20 20 20 20 20 73 6F 66 n a.. sof
0080E0: 74 77 61 72 65 20 65 6E 76 65 6C 6F 70 65 20 73 tware envelope s
0080F0: 65 63 74 69 6F 6E 20 69 73 20 69 6E 64 69 63 61 ection is indica
008100: 74 65 64 20 62 79 20 62 79 74 65 20 30 20 68 61 ted by byte 0 ha
008110: 76 69 6E 67 20 62 69 74 20 37 20 73 65 74 2E 0D ving bit 7 set..
008120: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 65 6E ... The en
008130: 76 65 6C 6F 70 65 20 73 68 61 70 65 20 28 6D 61 velope shape (ma
008140: 73 6B 65 64 20 77 69 74 68 20 23 37 46 29 20 69 sked with #7F) i
008150: 73 20 73 65 6E 74 20 74 6F 20 20 72 65 67 69 73 s sent to regis
008160: 74 65 72 20 20 31 33 20 20 6F 66 20 20 74 68 65 ter 13 of the
008170: 0D 0A 20 20 20 20 20 20 20 73 6F 75 6E 64 20 67 .. sound g
008180: 65 6E 65 72 61 74 6F 72 2E 20 54 68 69 73 20 73 enerator. This s
008190: 65 74 20 74 68 65 20 20 73 68 61 70 65 20 20 6F et the shape o
0081A0: 66 20 20 74 68 65 20 20 68 61 72 64 77 61 72 65 f the hardware
0081B0: 20 20 65 6E 76 65 6C 6F 70 65 20 20 61 6E 64 0D envelope and.
0081C0: 0A 20 20 20 20 20 20 20 77 68 65 74 68 65 72 20 . whether
0081D0: 69 74 20 72 65 70 65 61 74 73 20 28 73 65 65 20 it repeats (see
0081E0: 41 70 70 65 6E 64 69 78 20 49 58 20 66 6F 72 20 Appendix IX for
0081F0: 64 65 74 61 69 6C 73 29 2E 0D 0A 0D 0A 20 20 20 details).....
008200: 20 20 20 20 54 68 65 20 65 6E 76 65 6C 6F 70 65 The envelope
008210: 20 70 65 72 69 6F 64 20 69 73 20 73 65 6E 74 20 period is sent
008220: 74 6F 20 20 72 65 67 69 73 74 65 72 73 20 20 31 to registers 1
008230: 31 20 20 61 6E 64 20 20 31 32 20 20 6F 66 20 20 1 and 12 of
008240: 74 68 65 20 20 73 6F 75 6E 64 0D 0A 20 20 20 20 the sound..
008250: 20 20 20 67 65 6E 65 72 61 74 6F 72 2E 20 54 68 generator. Th
008260: 65 73 65 20 73 65 74 20 74 68 65 20 6C 65 6E 67 ese set the leng
008270: 74 68 20 6F 66 20 74 68 65 20 68 61 72 64 77 61 th of the hardwa
008280: 72 65 20 65 6E 76 65 6C 6F 70 65 20 28 73 65 65 re envelope (see
008290: 20 41 70 70 65 6E 64 69 78 0D 0A 20 20 20 20 20 Appendix..
0082A0: 20 20 49 58 20 66 6F 72 20 64 65 74 61 69 6C 73 IX for details
0082B0: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 )..... The
0082C0: 20 73 65 63 74 69 6F 6E 20 61 66 74 65 72 20 61 section after a
0082D0: 20 68 61 72 64 77 61 72 65 20 73 65 63 74 69 6F hardware sectio
0082E0: 6E 20 73 68 6F 75 6C 64 20 62 65 20 61 20 70 61 n should be a pa
0082F0: 75 73 65 20 6C 6F 6E 67 20 65 6E 6F 75 67 68 20 use long enough
008300: 20 74 6F 0D 0A 20 20 20 20 20 20 20 61 6C 6C 6F to.. allo
008310: 77 20 74 68 65 20 68 61 72 64 77 61 72 65 20 65 w the hardware e
008320: 6E 76 65 6C 6F 70 65 20 74 6F 20 6F 70 65 72 61 nvelope to opera
008330: 74 65 2E 20 41 20 20 70 61 75 73 65 20 20 63 61 te. A pause ca
008340: 6E 20 20 62 65 20 20 63 6F 6E 73 74 72 75 63 74 n be construct
008350: 65 64 0D 0A 20 20 20 20 20 20 20 75 73 69 6E 67 ed.. using
008360: 20 61 20 73 6F 66 74 77 61 72 65 20 65 6E 76 65 a software enve
008370: 6C 6F 70 65 20 77 69 74 68 20 61 20 73 74 65 70 lope with a step
008380: 20 73 69 7A 65 20 6F 66 20 30 20 61 6E 64 20 20 size of 0 and
008390: 77 69 74 68 20 20 74 68 65 20 20 72 65 70 65 61 with the repea
0083A0: 74 0D 0A 20 20 20 20 20 20 20 63 6F 75 6E 74 20 t.. count
0083B0: 61 6E 64 20 70 61 75 73 65 20 74 69 6D 65 20 6A and pause time j
0083C0: 75 67 67 6C 69 6E 67 20 74 6F 20 67 69 76 65 20 uggling to give
0083D0: 74 68 65 20 72 69 67 68 74 20 74 6F 74 61 6C 20 the right total
0083E0: 74 69 6D 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 time.....
0083F0: 54 68 65 72 65 20 69 73 20 6E 6F 20 70 72 6F 74 There is no prot
008400: 65 63 74 69 6F 6E 20 61 67 61 69 6E 73 74 20 63 ection against c
008410: 68 61 6E 67 69 6E 67 20 61 6E 20 65 6E 76 65 6C hanging an envel
008420: 6F 70 65 20 77 68 69 6C 73 74 20 20 69 74 20 20 ope whilst it
008430: 69 73 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 75 is in.. u
008440: 73 65 2E 20 54 68 69 73 20 63 6F 75 6C 64 20 68 se. This could h
008450: 61 76 65 20 75 6E 70 72 65 64 69 63 74 61 62 6C ave unpredictabl
008460: 65 20 65 66 66 65 63 74 73 20 61 6E 64 20 73 68 e effects and sh
008470: 6F 75 6C 64 20 62 65 20 61 76 6F 69 64 65 64 2E ould be avoided.
008480: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
008490: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
0084A0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
0084B0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
0084C0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
0084D0: 20 31 35 2E 31 37 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.177.........
0084E0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
0084F0: 6C 65 6E 67 74 68 20 6F 66 20 74 68 65 20 73 6F length of the so
008500: 75 6E 64 20 63 61 6E 20 20 65 69 74 68 65 72 20 und can either
008510: 20 62 65 20 20 64 65 74 65 72 6D 69 6E 65 64 20 be determined
008520: 20 62 79 20 20 74 68 65 20 20 64 75 72 61 74 69 by the durati
008530: 6F 6E 0D 0A 20 20 20 20 20 20 20 73 75 70 70 6C on.. suppl
008540: 69 65 64 20 77 68 65 6E 20 74 68 65 20 73 6F 75 ied when the sou
008550: 6E 64 20 69 73 20 71 75 65 75 65 64 20 6F 72 20 nd is queued or
008560: 62 79 20 74 68 65 20 65 6E 76 65 6C 6F 70 65 20 by the envelope
008570: 74 65 72 6D 69 6E 61 74 69 6E 67 20 20 28 73 65 terminating (se
008580: 65 0D 0A 20 20 20 20 20 20 20 53 4F 55 4E 44 20 e.. SOUND
008590: 51 55 45 55 45 29 2E 20 49 66 20 61 20 64 75 72 QUEUE). If a dur
0085A0: 61 74 69 6F 6E 20 69 73 20 73 65 74 20 74 68 61 ation is set tha
0085B0: 74 20 69 73 20 73 68 6F 72 74 65 72 20 74 68 61 t is shorter tha
0085C0: 6E 20 20 74 68 65 20 20 65 6E 76 65 6C 6F 70 65 n the envelope
0085D0: 0D 0A 20 20 20 20 20 20 20 74 68 65 6E 20 74 68 .. then th
0085E0: 65 20 65 6E 76 65 6C 6F 70 65 20 69 73 20 74 72 e envelope is tr
0085F0: 75 6E 63 61 74 65 64 2E 20 49 66 20 74 68 65 20 uncated. If the
008600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
008610: 07 00 00 00 02 09 50 E5 07 00 C1 02 00 00 00 02 ......P.........
008620: 07 00 C2 02 00 00 00 02 07 00 C3 02 00 00 00 02 ................
008630: 07 00 C4 02 00 00 00 02 07 00 C5 02 00 00 00 02 ................
008640: 07 00 C6 02 00 00 00 02 07 00 C7 02 00 00 00 02 ................
008650: 07 00 C8 02 00 00 00 02 07 00 C9 02 00 00 00 02 ................
008660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008700: 64 75 72 61 74 69 6F 6E 20 20 69 73 20 20 6C 6F duration is lo
008710: 6E 67 65 72 20 20 74 68 61 6E 20 20 74 68 65 0D nger than the.
008720: 0A 20 20 20 20 20 20 20 65 6E 76 65 6C 6F 70 65 . envelope
008730: 20 74 68 65 6E 20 20 74 68 65 20 20 66 69 6E 61 then the fina
008740: 6C 20 20 76 6F 6C 75 6D 65 20 20 69 73 20 20 73 l volume is s
008750: 75 73 74 61 69 6E 65 64 20 20 75 6E 74 69 6C 20 ustained until
008760: 20 74 68 65 20 20 64 75 72 61 74 69 6F 6E 0D 0A the duration..
008770: 20 20 20 20 20 20 20 65 78 70 69 72 65 73 2E 0D expires..
008780: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
008790: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
0087A0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 4F 55 ...... SOU
0087B0: 4E 44 20 41 20 41 44 44 52 45 53 53 0D 0A 20 20 ND A ADDRESS..
0087C0: 20 20 20 20 20 53 4F 55 4E 44 20 54 4F 4E 45 20 SOUND TONE
0087D0: 45 4E 56 45 4C 4F 50 45 0D 0A 0D 0A 0D 0A 0D 0A ENVELOPE........
0087E0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0087F0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
008800: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
008810: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
008820: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
008830: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
008840: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
008850: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
008860: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
008870: 20 20 20 20 70 61 67 65 20 31 35 2E 31 37 38 0D page 15.178.
008880: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
008890: 20 20 20 20 31 34 39 3A 20 53 4F 55 4E 44 20 54 149: SOUND T
0088A0: 4F 4E 45 20 45 4E 56 45 4C 4F 50 45 20 20 20 20 ONE ENVELOPE
0088B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0088C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0088D0: 20 20 20 20 20 23 42 43 42 46 0D 0A 0D 0A 20 20 #BCBF....
0088E0: 20 20 20 20 20 53 65 74 20 75 70 20 61 20 74 6F Set up a to
0088F0: 6E 65 20 65 6E 76 65 6C 6F 70 65 2E 0D 0A 0D 0A ne envelope.....
008900: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
008910: 0D 0A 20 20 20 20 20 20 20 53 65 74 20 75 70 20 .. Set up
008920: 6F 6E 65 20 6F 66 20 74 68 65 20 31 35 20 75 73 one of the 15 us
008930: 65 72 20 70 72 6F 67 72 61 6D 6D 61 62 6C 65 20 er programmable
008940: 74 6F 6E 65 20 65 6E 76 65 6C 6F 70 65 73 2E 0D tone envelopes..
008950: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
008960: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
008970: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
008980: 20 61 6E 20 65 6E 76 65 6C 6F 70 65 20 6E 75 6D an envelope num
008990: 62 65 72 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 ber... HL
0089A0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 contains the add
0089B0: 72 65 73 73 20 6F 66 20 61 20 74 6F 6E 65 20 64 ress of a tone d
0089C0: 61 74 61 20 62 6C 6F 63 6B 2E 0D 0A 0D 0A 0D 0A ata block.......
0089D0: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
0089E0: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
0089F0: 20 20 20 20 49 66 20 74 68 65 20 65 6E 76 65 6C If the envel
008A00: 6F 70 65 20 68 61 73 20 62 65 65 6E 20 73 65 74 ope has been set
008A10: 20 75 70 20 4F 4B 3A 0D 0A 0D 0A 20 20 20 20 20 up OK:....
008A20: 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 Carry
008A30: 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 true...
008A40: 20 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 HL conta
008A50: 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 ins the address
008A60: 6F 66 20 74 68 65 20 64 61 74 61 20 62 6C 6F 63 of the data bloc
008A70: 6B 20 2B 20 31 36 2E 0D 0A 20 20 20 20 20 20 20 k + 16...
008A80: 20 20 20 20 20 20 20 20 20 41 20 61 6E 64 20 42 A and B
008A90: 43 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 C corrupt.....
008AA0: 20 20 20 20 20 49 66 20 74 68 65 20 65 6E 76 65 If the enve
008AB0: 6C 6F 70 65 20 6E 75 6D 62 65 72 20 69 73 20 69 lope number is i
008AC0: 6E 76 61 6C 69 64 3A 0D 0A 0D 0A 20 20 20 20 20 nvalid:....
008AD0: 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 Carry
008AE0: 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 false...
008AF0: 20 20 20 20 20 20 20 20 20 41 2C 20 42 43 20 61 A, BC a
008B00: 6E 64 20 48 4C 20 70 72 65 73 65 72 76 65 64 2E nd HL preserved.
008B10: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 79 .... Alway
008B20: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 s:......
008B30: 20 20 20 20 20 20 20 20 44 45 20 61 6E 64 20 6F DE and o
008B40: 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 ther flags corru
008B50: 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 pt...
008B60: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
008B70: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
008B80: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
008B90: 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 Notes:......
008BA0: 20 20 20 54 68 65 20 65 6E 76 65 6C 6F 70 65 20 The envelope
008BB0: 74 6F 20 73 65 74 20 75 70 20 69 73 20 73 70 65 to set up is spe
008BC0: 63 69 66 69 65 64 20 62 79 20 61 20 6E 75 6D 62 cified by a numb
008BD0: 65 72 20 69 6E 20 74 68 65 20 72 61 6E 67 65 20 er in the range
008BE0: 31 2E 2E 31 35 2E 20 4E 6F 0D 0A 20 20 20 20 20 1..15. No..
008BF0: 20 20 65 6E 76 65 6C 6F 70 65 20 69 73 20 73 65 envelope is se
008C00: 74 20 75 70 20 69 66 20 61 20 6E 75 6D 62 65 72 t up if a number
008C10: 20 6F 75 74 73 69 64 65 20 74 68 69 73 20 72 61 outside this ra
008C20: 6E 67 65 20 69 73 20 70 61 73 73 65 64 2E 0D 0A nge is passed...
008C30: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 74 .... The t
008C40: 6F 6E 65 20 64 61 74 61 20 62 6C 6F 63 6B 20 69 one data block i
008C50: 73 20 63 6F 70 69 65 64 20 69 6E 74 6F 20 74 68 s copied into th
008C60: 65 20 74 6F 6E 65 20 65 6E 76 65 6C 6F 70 65 2E e tone envelope.
008C70: 20 54 68 65 20 20 64 61 74 61 20 20 62 6C 6F 63 The data bloc
008C80: 6B 0D 0A 20 20 20 20 20 20 20 6D 61 79 20 6C 69 k.. may li
008C90: 65 20 69 6E 20 52 4F 4D 20 6F 72 20 69 6E 20 52 e in ROM or in R
008CA0: 41 4D 2E 20 49 74 20 6D 61 79 20 6E 6F 74 20 6C AM. It may not l
008CB0: 69 65 20 69 6E 20 52 41 4D 20 75 6E 64 65 72 6E ie in RAM undern
008CC0: 65 61 74 68 20 61 20 52 4F 4D 2E 0D 0A 0D 0A 0D eath a ROM......
008CD0: 0A 20 20 20 20 20 20 20 54 68 65 20 74 6F 6E 65 . The tone
008CE0: 20 64 61 74 61 20 62 6C 6F 63 6B 20 68 61 73 20 data block has
008CF0: 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 6C 61 the following la
008D00: 79 6F 75 74 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 yout:......
008D10: 20 20 20 20 20 20 20 20 20 20 20 42 79 74 65 20 Byte
008D20: 30 3A 20 20 20 20 20 20 20 20 20 20 20 20 20 43 0: C
008D30: 6F 75 6E 74 20 6F 66 20 73 65 63 74 69 6F 6E 73 ount of sections
008D40: 20 69 6E 20 74 68 65 20 65 6E 76 65 6C 6F 70 65 in the envelope
008D50: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
008D60: 20 20 20 42 79 74 65 73 20 31 2E 2E 33 3A 20 20 Bytes 1..3:
008D70: 20 20 20 20 20 20 20 46 69 72 73 74 20 73 65 63 First sec
008D80: 74 69 6F 6E 20 6F 66 20 74 68 65 20 65 6E 76 65 tion of the enve
008D90: 6C 6F 70 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 lope...
008DA0: 20 20 20 20 20 20 20 42 79 74 65 73 20 34 2E 2E Bytes 4..
008DB0: 36 3A 20 20 20 20 20 20 20 20 20 53 65 63 6F 6E 6: Secon
008DC0: 64 20 73 65 63 74 69 6F 6E 20 6F 66 20 74 68 65 d section of the
008DD0: 20 65 6E 76 65 6C 6F 70 65 2E 0D 0A 20 20 20 20 envelope...
008DE0: 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 65 Byte
008DF0: 73 20 37 2E 2E 39 3A 20 20 20 20 20 20 20 20 20 s 7..9:
008E00: 54 68 69 72 64 20 73 65 63 74 69 6F 6E 20 6F 66 Third section of
008E10: 20 74 68 65 20 65 6E 76 65 6C 6F 70 65 2E 0D 0A the envelope...
008E20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
008E30: 42 79 74 65 73 20 31 30 2E 2E 31 32 3A 20 20 20 Bytes 10..12:
008E40: 20 20 20 20 46 6F 75 72 74 68 20 73 65 63 74 69 Fourth secti
008E50: 6F 6E 20 6F 66 20 74 68 65 20 65 6E 76 65 6C 6F on of the envelo
008E60: 70 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 pe...
008E70: 20 20 20 20 20 42 79 74 65 73 20 31 33 2E 2E 31 Bytes 13..1
008E80: 35 3A 20 20 20 20 20 20 20 46 69 66 74 68 20 73 5: Fifth s
008E90: 65 63 74 69 6F 6E 20 6F 66 20 74 68 65 20 65 6E ection of the en
008EA0: 76 65 6C 6F 70 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D velope..........
008EB0: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
008EC0: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
008ED0: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
008EE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
008EF0: 20 20 20 70 61 67 65 20 31 35 2E 31 37 39 0D 0A page 15.179..
008F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0090A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0090B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0090C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0090D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0090E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0090F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009100: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
009110: 20 20 20 54 68 65 20 66 69 72 73 74 20 62 79 74 The first byt
009120: 65 20 6F 66 20 74 68 65 20 74 6F 6E 65 20 64 61 e of the tone da
009130: 74 61 20 62 6C 6F 63 6B 20 28 6D 61 73 6B 65 64 ta block (masked
009140: 20 77 69 74 68 20 23 37 46 29 20 73 70 65 63 69 with #7F) speci
009150: 66 69 65 73 20 20 74 68 65 0D 0A 20 20 20 20 20 fies the..
009160: 20 20 6E 75 6D 62 65 72 20 6F 66 20 73 65 63 74 number of sect
009170: 69 6F 6E 73 20 75 73 65 64 20 69 6E 20 74 68 65 ions used in the
009180: 20 65 6E 76 65 6C 6F 70 65 2E 20 53 65 63 74 69 envelope. Secti
009190: 6F 6E 73 20 6E 6F 74 20 75 73 65 64 20 6E 65 65 ons not used nee
0091A0: 64 20 6E 6F 74 20 62 65 0D 0A 20 20 20 20 20 20 d not be..
0091B0: 20 73 65 74 20 75 70 2E 20 41 6E 20 65 6E 76 65 set up. An enve
0091C0: 6C 6F 70 65 20 75 73 69 6E 67 20 6E 6F 20 73 65 lope using no se
0091D0: 63 74 69 6F 6E 73 20 77 69 6C 6C 20 6E 6F 74 20 ctions will not
0091E0: 61 6C 74 65 72 20 74 68 65 20 74 6F 6E 65 20 28 alter the tone (
0091F0: 69 2E 65 2E 20 6E 6F 0D 0A 20 20 20 20 20 20 20 i.e. no..
009200: 65 6E 76 65 6C 6F 70 69 6E 67 29 2E 20 54 68 65 enveloping). The
009210: 20 6E 75 6D 62 65 72 20 6F 66 20 73 65 63 74 69 number of secti
009220: 6F 6E 73 20 74 6F 20 75 73 65 20 69 73 20 6E 6F ons to use is no
009230: 74 20 63 68 65 63 6B 65 64 2C 20 69 66 20 61 20 t checked, if a
009240: 6E 75 6D 62 65 72 0D 0A 20 20 20 20 20 20 20 6F number.. o
009250: 75 74 73 69 64 65 20 74 68 65 20 72 61 6E 67 65 utside the range
009260: 20 30 2E 2E 35 20 69 73 20 73 75 70 70 6C 69 65 0..5 is supplie
009270: 64 20 74 68 65 6E 20 74 68 69 73 20 77 69 6C 6C d then this will
009280: 20 20 68 61 76 65 20 20 75 6E 70 72 65 64 69 63 have unpredic
009290: 74 61 62 6C 65 0D 0A 20 20 20 20 20 20 20 65 66 table.. ef
0092A0: 66 65 63 74 73 2E 20 54 68 69 73 20 73 68 6F 75 fects. This shou
0092B0: 6C 64 20 62 65 20 61 76 6F 69 64 65 64 2E 0D 0A ld be avoided...
0092C0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 74 6F 70 .. The top
0092D0: 20 62 69 74 2C 20 62 69 74 20 37 2C 20 6F 66 20 bit, bit 7, of
0092E0: 74 68 65 20 63 6F 75 6E 74 20 20 69 73 20 20 75 the count is u
0092F0: 73 65 64 20 20 74 6F 20 20 69 6E 64 69 63 61 74 sed to indicat
009300: 65 20 20 61 20 20 72 65 70 65 61 74 69 6E 67 0D e a repeating.
009310: 0A 20 20 20 20 20 20 20 65 6E 76 65 6C 6F 70 65 . envelope
009320: 2E 20 49 66 20 74 68 69 73 20 62 69 74 20 69 73 . If this bit is
009330: 20 20 73 65 74 20 20 74 68 65 6E 20 20 77 68 65 set then whe
009340: 6E 20 20 74 68 65 20 20 6C 61 73 74 20 20 73 65 n the last se
009350: 63 74 69 6F 6E 20 20 6F 66 20 20 74 68 65 0D 0A ction of the..
009360: 20 20 20 20 20 20 20 65 6E 76 65 6C 6F 70 65 20 envelope
009370: 66 69 6E 69 73 68 65 73 20 74 68 65 20 66 69 72 finishes the fir
009380: 73 74 20 77 69 6C 6C 20 62 65 20 75 73 65 64 20 st will be used
009390: 61 67 61 69 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 again.....
0093A0: 20 45 61 63 68 20 73 65 63 74 69 6F 6E 20 6F 66 Each section of
0093B0: 20 74 68 65 20 74 6F 6E 65 20 64 61 74 61 20 62 the tone data b
0093C0: 6C 6F 63 6B 20 69 73 20 6C 61 69 64 20 6F 75 74 lock is laid out
0093D0: 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A as follows:....
0093E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0093F0: 42 79 74 65 20 30 3A 20 20 20 53 74 65 70 20 63 Byte 0: Step c
009400: 6F 75 6E 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 ount...
009410: 20 20 20 20 20 20 20 42 79 74 65 20 31 3A 20 20 Byte 1:
009420: 20 53 74 65 70 20 73 69 7A 65 2E 0D 0A 20 20 20 Step size...
009430: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 Byt
009440: 65 20 32 3A 20 20 20 50 61 75 73 65 20 74 69 6D e 2: Pause tim
009450: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 e..... If
009460: 74 68 65 20 73 74 65 70 20 63 6F 75 6E 74 20 6C the step count l
009470: 69 65 73 20 69 6E 20 74 68 65 20 72 61 6E 67 65 ies in the range
009480: 20 23 30 30 2E 2E 23 45 46 20 74 68 65 6E 20 20 #00..#EF then
009490: 74 68 65 20 20 73 65 63 74 69 6F 6E 20 20 69 73 the section is
0094A0: 20 20 61 0D 0A 20 20 20 20 20 20 20 72 65 6C 61 a.. rela
0094B0: 74 69 76 65 20 73 65 63 74 69 6F 6E 2E 20 54 68 tive section. Th
0094C0: 65 20 73 74 65 70 20 73 69 7A 65 20 69 73 20 73 e step size is s
0094D0: 69 67 6E 20 65 78 74 65 6E 64 65 64 20 28 62 69 ign extended (bi
0094E0: 74 20 37 20 69 73 20 20 63 6F 70 69 65 64 20 20 t 7 is copied
0094F0: 74 6F 0D 0A 20 20 20 20 20 20 20 62 69 74 73 20 to.. bits
009500: 38 2E 2E 31 35 29 20 61 6E 64 20 69 73 20 61 64 8..15) and is ad
009510: 64 65 64 20 74 6F 20 74 68 65 20 63 75 72 72 65 ded to the curre
009520: 6E 74 20 20 74 6F 6E 65 20 20 70 65 72 69 6F 64 nt tone period
009530: 20 20 74 68 65 20 20 6E 75 6D 62 65 72 20 20 6F the number o
009540: 66 0D 0A 20 20 20 20 20 20 20 74 69 6D 65 73 20 f.. times
009550: 73 70 65 63 69 66 69 65 64 20 62 79 20 74 68 65 specified by the
009560: 20 73 74 65 70 20 63 6F 75 6E 74 2E 20 41 66 74 step count. Aft
009570: 65 72 20 65 61 63 68 20 61 64 64 69 74 69 6F 6E er each addition
009580: 20 61 20 77 61 69 74 20 20 6F 66 20 20 74 68 65 a wait of the
009590: 0D 0A 20 20 20 20 20 20 20 70 61 75 73 65 20 74 .. pause t
0095A0: 69 6D 65 20 69 6E 20 31 2F 31 30 30 73 20 6F 66 ime in 1/100s of
0095B0: 20 61 20 73 65 63 6F 6E 64 20 69 73 20 6D 61 64 a second is mad
0095C0: 65 2E 20 54 68 65 20 73 6F 75 6E 64 20 63 68 69 e. The sound chi
0095D0: 70 20 6F 6E 6C 79 20 75 73 65 73 20 74 68 65 0D p only uses the.
0095E0: 0A 0D 0A 20 20 20 20 20 20 20 6C 6F 77 65 72 20 ... lower
0095F0: 31 32 20 62 69 74 73 20 6F 66 20 74 68 65 20 74 12 bits of the t
009600: 6F 6E 65 20 70 65 72 69 6F 64 20 73 6F 20 20 61 one period so a
009610: 6C 6C 20 20 61 72 69 74 68 6D 65 74 69 63 20 20 ll arithmetic
009620: 69 73 20 20 63 61 72 72 69 65 64 20 20 6F 75 74 is carried out
009630: 0D 0A 20 20 20 20 20 20 20 6D 6F 64 75 6C 6F 20 .. modulo
009640: 23 31 30 30 30 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 #1000.......
009650: 20 20 20 41 20 73 74 65 70 20 63 6F 75 6E 74 20 A step count
009660: 6F 66 20 30 20 69 73 20 74 61 6B 65 6E 20 74 6F of 0 is taken to
009670: 20 6D 65 61 6E 20 31 20 73 74 65 70 20 77 68 69 mean 1 step whi
009680: 6C 73 74 20 61 20 70 61 75 73 65 20 74 69 6D 65 lst a pause time
009690: 20 6F 66 20 30 20 20 69 73 0D 0A 20 20 20 20 20 of 0 is..
0096A0: 20 20 74 61 6B 65 6E 20 74 6F 20 6D 65 61 6E 20 taken to mean
0096B0: 32 35 36 20 31 2F 31 30 30 73 20 6F 66 20 61 20 256 1/100s of a
0096C0: 73 65 63 6F 6E 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 second.......
0096D0: 20 20 20 20 49 66 20 74 68 65 20 73 74 65 70 20 If the step
0096E0: 63 6F 75 6E 74 20 6C 69 65 73 20 69 6E 20 74 68 count lies in th
0096F0: 65 20 72 61 6E 67 65 20 23 46 30 2E 2E 23 46 46 e range #F0..#FF
009700: 20 74 68 65 6E 20 74 68 65 20 20 73 65 63 74 69 then the secti
009710: 6F 6E 20 20 69 73 20 20 61 6E 0D 0A 20 20 20 20 on is an..
009720: 20 20 20 61 62 73 6F 6C 75 74 65 20 73 65 63 74 absolute sect
009730: 69 6F 6E 2E 20 54 68 65 20 6C 65 61 73 74 20 73 ion. The least s
009740: 69 67 6E 69 66 69 63 61 6E 74 20 66 6F 75 72 20 ignificant four
009750: 62 69 74 73 20 6F 66 20 20 74 68 65 20 20 73 74 bits of the st
009760: 65 70 20 20 63 6F 75 6E 74 0D 0A 20 20 20 20 20 ep count..
009770: 20 20 61 72 65 20 74 61 6B 65 6E 20 74 6F 20 62 are taken to b
009780: 65 20 74 68 65 20 6D 6F 73 74 20 73 69 67 6E 69 e the most signi
009790: 66 69 63 61 6E 74 20 62 79 74 65 20 6F 66 20 74 ficant byte of t
0097A0: 68 65 20 74 6F 6E 65 20 70 65 72 69 6F 64 20 20 he tone period
0097B0: 61 6E 64 20 20 74 68 65 0D 0A 20 20 20 20 20 20 and the..
0097C0: 20 73 74 65 70 20 73 69 7A 65 20 69 73 20 74 61 step size is ta
0097D0: 6B 65 6E 20 74 6F 20 62 65 20 74 68 65 20 6C 65 ken to be the le
0097E0: 61 73 74 20 73 69 67 6E 69 66 69 63 61 6E 74 20 ast significant
0097F0: 62 79 74 65 2E 20 54 68 69 73 20 74 6F 6E 65 20 byte. This tone
009800: 20 70 65 72 69 6F 64 0D 0A 20 20 20 20 20 20 20 period..
009810: 69 73 20 73 65 74 20 69 6D 6D 65 64 69 61 74 65 is set immediate
009820: 6C 79 20 61 6E 64 20 69 73 20 66 6F 6C 6C 6F 77 ly and is follow
009830: 65 64 20 62 79 20 61 20 70 61 75 73 65 20 77 68 ed by a pause wh
009840: 6F 73 65 20 6C 65 6E 67 74 68 20 69 73 20 20 73 ose length is s
009850: 65 74 20 20 62 79 0D 0A 20 20 20 20 20 20 20 74 et by.. t
009860: 68 65 20 70 61 75 73 65 20 74 69 6D 65 20 69 6E he pause time in
009870: 20 31 2F 31 30 30 73 20 6F 66 20 61 20 73 65 63 1/100s of a sec
009880: 6F 6E 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ond.......
009890: 20 54 68 65 72 65 20 69 73 20 6E 6F 20 70 72 6F There is no pro
0098A0: 74 65 63 74 69 6F 6E 20 61 67 61 69 6E 73 74 20 tection against
0098B0: 63 68 61 6E 67 69 6E 67 20 61 6E 20 65 6E 76 65 changing an enve
0098C0: 6C 6F 70 65 20 77 68 69 6C 73 74 20 20 69 74 20 lope whilst it
0098D0: 20 69 73 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 is in..
0098E0: 75 73 65 2E 20 54 68 69 73 20 63 6F 75 6C 64 20 use. This could
0098F0: 68 61 76 65 20 75 6E 70 72 65 64 69 63 74 61 62 have unpredictab
009900: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
009910: 08 00 00 00 02 09 50 E5 08 00 C1 02 00 00 00 02 ......P.........
009920: 08 00 C2 02 00 00 00 02 08 00 C3 02 00 00 00 02 ................
009930: 08 00 C4 02 00 00 00 02 08 00 C5 02 00 00 00 02 ................
009940: 08 00 C6 02 00 00 00 02 08 00 C7 02 00 00 00 02 ................
009950: 08 00 C8 02 00 00 00 02 08 00 C9 02 00 00 00 02 ................
009960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009A00: 6C 65 20 65 66 66 65 63 74 73 20 61 6E 64 20 73 le effects and s
009A10: 68 6F 75 6C 64 20 62 65 20 61 76 6F 69 64 65 64 hould be avoided
009A20: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 ....... If
009A30: 20 74 68 65 20 74 6F 6E 65 20 65 6E 76 65 6C 6F the tone envelo
009A40: 70 65 20 66 69 6E 69 73 68 65 73 20 62 65 66 6F pe finishes befo
009A50: 72 65 20 74 68 65 20 65 6E 64 20 6F 66 20 74 68 re the end of th
009A60: 65 20 73 6F 75 6E 64 20 28 61 73 20 73 65 74 20 e sound (as set
009A70: 77 68 65 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 when.. the
009A80: 20 73 6F 75 6E 64 20 77 61 73 20 71 75 65 75 65 sound was queue
009A90: 64 29 20 74 68 65 6E 20 74 68 65 20 66 69 6E 61 d) then the fina
009AA0: 6C 20 20 74 6F 6E 65 20 20 69 73 20 20 68 65 6C l tone is hel
009AB0: 64 2E 20 20 69 2E 65 2E 20 20 54 68 65 20 20 74 d. i.e. The t
009AC0: 6F 6E 65 0D 0A 20 20 20 20 20 20 20 65 6E 76 65 one.. enve
009AD0: 6C 6F 70 65 20 64 6F 65 73 20 6E 6F 74 20 61 66 lope does not af
009AE0: 66 65 63 74 20 74 68 65 20 6C 65 6E 67 74 68 20 fect the length
009AF0: 6F 66 20 74 68 65 20 73 6F 75 6E 64 2E 0D 0A 0D of the sound....
009B00: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
009B10: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
009B20: 0D 0A 20 20 20 20 20 20 20 53 4F 55 4E 44 20 41 .. SOUND A
009B30: 4D 50 4C 20 45 4E 56 45 4C 4F 50 45 0D 0A 20 20 MPL ENVELOPE..
009B40: 20 20 20 20 20 53 4F 55 4E 44 20 54 20 41 44 44 SOUND T ADD
009B50: 52 45 53 53 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A RESS............
009B60: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
009B70: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
009B80: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
009B90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
009BA0: 20 20 70 61 67 65 20 31 35 2E 31 38 30 0D 0A 0D page 15.180...
009BB0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
009BC0: 20 20 31 35 30 3A 20 53 4F 55 4E 44 20 41 20 41 150: SOUND A A
009BD0: 44 44 52 45 53 53 20 20 20 20 20 20 20 20 20 20 DDRESS
009BE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
009BF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
009C00: 20 20 20 23 42 43 43 32 0D 0A 0D 0A 0D 0A 20 20 #BCC2......
009C10: 20 20 20 20 20 47 65 74 20 74 68 65 20 61 64 64 Get the add
009C20: 72 65 73 73 20 6F 66 20 61 6E 20 61 6D 70 6C 69 ress of an ampli
009C30: 74 75 64 65 20 65 6E 76 65 6C 6F 70 65 2E 0D 0A tude envelope...
009C40: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F .... Actio
009C50: 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 n:...... A
009C60: 73 6B 20 77 68 65 72 65 20 74 68 65 20 64 61 74 sk where the dat
009C70: 61 20 61 72 65 61 20 66 6F 72 20 61 6E 20 61 6D a area for an am
009C80: 70 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 65 plitude envelope
009C90: 20 69 73 20 73 74 6F 72 65 64 2E 0D 0A 0D 0A 0D is stored......
009CA0: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
009CB0: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
009CC0: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
009CD0: 20 61 6E 20 65 6E 76 65 6C 6F 70 65 20 6E 75 6D an envelope num
009CE0: 62 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ber.......
009CF0: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
009D00: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 :...... If
009D10: 20 74 68 65 20 65 6E 76 65 6C 6F 70 65 20 77 61 the envelope wa
009D20: 73 20 66 6F 75 6E 64 20 4F 4B 3A 0D 0A 0D 0A 0D s found OK:.....
009D30: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
009D40: 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A 20 20 Carry true...
009D50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 4C HL
009D60: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 contains the ad
009D70: 64 72 65 73 73 20 6F 66 20 74 68 65 20 61 6D 70 dress of the amp
009D80: 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 65 2E litude envelope.
009D90: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
009DA0: 20 20 42 43 20 63 6F 6E 74 61 69 6E 73 20 74 68 BC contains th
009DB0: 65 20 6C 65 6E 67 74 68 20 6F 66 20 61 6E 20 65 e length of an e
009DC0: 6E 76 65 6C 6F 70 65 20 28 31 36 20 62 79 74 65 nvelope (16 byte
009DD0: 73 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 s).......
009DE0: 49 66 20 74 68 65 20 65 6E 76 65 6C 6F 70 65 20 If the envelope
009DF0: 6E 75 6D 62 65 72 20 77 61 73 20 69 6E 76 61 6C number was inval
009E00: 69 64 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 id:......
009E10: 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 66 Carry f
009E20: 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 alse...
009E30: 20 20 20 20 20 20 20 48 4C 20 63 6F 72 72 75 70 HL corrup
009E40: 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 t...
009E50: 20 20 20 20 42 43 20 70 72 65 73 65 72 76 65 64 BC preserved
009E60: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C ....... Al
009E70: 77 61 79 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ways:......
009E80: 20 20 20 20 20 20 20 20 20 20 20 41 20 61 6E 64 A and
009E90: 20 6F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 other flags cor
009EA0: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 rupt...
009EB0: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
009EC0: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
009ED0: 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rved.......
009EE0: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
009EF0: 20 20 20 20 20 54 68 65 20 65 6E 76 65 6C 6F 70 The envelop
009F00: 65 20 69 73 20 6C 61 69 64 20 6F 75 74 20 61 73 e is laid out as
009F10: 20 64 65 73 63 72 69 62 65 64 20 69 6E 20 53 4F described in SO
009F20: 55 4E 44 20 41 4D 50 4C 20 45 4E 56 45 4C 4F 50 UND AMPL ENVELOP
009F30: 45 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 E.........
009F40: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
009F50: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 4F 55 4E :.... SOUN
009F60: 44 20 41 4D 50 4C 20 45 4E 56 45 4C 4F 50 45 0D D AMPL ENVELOPE.
009F70: 0A 20 20 20 20 20 20 20 53 4F 55 4E 44 20 54 20 . SOUND T
009F80: 41 44 44 52 45 53 53 0D 0A 0D 0A 0D 0A 0D 0A 0D ADDRESS.........
009F90: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
009FA0: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
009FB0: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
009FC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
009FD0: 20 20 20 70 61 67 65 20 31 35 2E 31 38 31 0D 0A page 15.181..
009FE0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
009FF0: 20 20 20 31 35 31 3A 20 53 4F 55 4E 44 20 54 20 151: SOUND T
00A000: 41 44 44 52 45 53 53 20 20 20 20 20 20 20 20 20 ADDRESS
00A010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A030: 20 20 20 20 23 42 43 43 35 0D 0A 0D 0A 0D 0A 20 #BCC5......
00A040: 20 20 20 20 20 20 47 65 74 20 74 68 65 20 61 64 Get the ad
00A050: 64 72 65 73 73 20 6F 66 20 61 20 74 6F 6E 65 20 dress of a tone
00A060: 65 6E 76 65 6C 6F 70 65 2E 0D 0A 0D 0A 0D 0A 20 envelope.......
00A070: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
00A080: 0A 0D 0A 20 20 20 20 20 20 20 41 73 6B 20 77 68 ... Ask wh
00A090: 65 72 65 20 74 68 65 20 64 61 74 61 20 61 72 65 ere the data are
00A0A0: 61 20 66 6F 72 20 74 68 65 20 74 6F 6E 65 20 65 a for the tone e
00A0B0: 6E 76 65 6C 6F 70 65 20 69 73 20 73 74 6F 72 65 nvelope is store
00A0C0: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 d....... E
00A0D0: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
00A0E0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 ...... A c
00A0F0: 6F 6E 74 61 69 6E 73 20 61 6E 20 65 6E 76 65 6C ontains an envel
00A100: 6F 70 65 20 6E 75 6D 62 65 72 2E 0D 0A 0D 0A 0D ope number......
00A110: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
00A120: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
00A130: 20 20 20 20 20 49 66 20 74 68 65 20 65 6E 76 65 If the enve
00A140: 6C 6F 70 65 20 77 61 73 20 66 6F 75 6E 64 20 4F lope was found O
00A150: 4B 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 K:......
00A160: 20 20 20 20 20 20 20 20 43 61 72 72 79 20 74 72 Carry tr
00A170: 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ue...
00A180: 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 HL contains
00A190: 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 the address of
00A1A0: 74 68 65 20 74 6F 6E 65 20 65 6E 76 65 6C 6F 70 the tone envelop
00A1B0: 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 e.......
00A1C0: 20 20 20 20 20 20 20 20 42 43 20 63 6F 6E 74 61 BC conta
00A1D0: 69 6E 73 20 74 68 65 20 6C 65 6E 67 74 68 20 6F ins the length o
00A1E0: 66 20 61 6E 20 65 6E 76 65 6C 6F 70 65 20 28 31 f an envelope (1
00A1F0: 36 20 62 79 74 65 73 29 2E 0D 0A 0D 0A 0D 0A 20 6 bytes).......
00A200: 20 20 20 20 20 20 49 66 20 74 68 65 20 65 6E 76 If the env
00A210: 65 6C 6F 70 65 20 6E 75 6D 62 65 72 20 77 61 73 elope number was
00A220: 20 69 6E 76 61 6C 69 64 3A 0D 0A 0D 0A 0D 0A 20 invalid:......
00A230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
00A240: 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 arry false...
00A250: 20 20 20 20 20 20 20 20 20 20 20 20 20 48 4C 20 HL
00A260: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
00A270: 20 20 20 20 20 20 20 20 20 20 42 43 20 70 72 65 BC pre
00A280: 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 served.......
00A290: 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A 20 Always:....
00A2A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
00A2B0: 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 73 and other flags
00A2C0: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
00A2D0: 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 6F All o
00A2E0: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
00A2F0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
00A300: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
00A310: 20 20 20 20 20 20 20 54 68 65 20 65 6E 76 65 6C The envel
00A320: 6F 70 65 20 6E 75 6D 62 65 72 20 6D 75 73 74 20 ope number must
00A330: 6C 69 65 20 69 6E 20 74 68 65 20 72 61 6E 67 65 lie in the range
00A340: 20 31 2E 2E 31 35 2E 0D 0A 0D 0A 20 20 20 20 20 1..15.....
00A350: 20 20 54 68 65 20 74 6F 6E 65 20 65 6E 76 65 6C The tone envel
00A360: 6F 70 65 20 69 73 20 6C 61 69 64 20 6F 75 74 20 ope is laid out
00A370: 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6E 20 as described in
00A380: 53 4F 55 4E 44 20 54 4F 4E 45 20 45 4E 56 45 4C SOUND TONE ENVEL
00A390: 4F 50 45 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 OPE..... R
00A3A0: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
00A3B0: 0A 0D 0A 20 20 20 20 20 20 20 53 4F 55 4E 44 20 ... SOUND
00A3C0: 41 20 41 44 44 52 45 53 53 0D 0A 20 20 20 20 20 A ADDRESS..
00A3D0: 20 20 53 4F 55 4E 44 20 54 4F 4E 45 20 45 4E 56 SOUND TONE ENV
00A3E0: 45 4C 4F 50 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ELOPE..........
00A3F0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
00A400: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
00A410: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
00A420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A430: 20 70 61 67 65 20 31 35 2E 31 38 32 0D 0A 0D 0A page 15.182....
00A440: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
00A450: 20 31 35 32 3A 20 4B 4C 20 43 48 4F 4B 45 20 4F 152: KL CHOKE O
00A460: 46 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 FF
00A470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A490: 20 20 23 42 43 43 38 0D 0A 0D 0A 20 20 20 20 20 #BCC8....
00A4A0: 20 20 52 65 73 65 74 20 74 68 65 20 4B 65 72 6E Reset the Kern
00A4B0: 65 6C 20 2D 20 63 6C 65 61 72 73 20 61 6C 6C 20 el - clears all
00A4C0: 65 76 65 6E 74 20 71 75 65 75 65 73 20 65 74 63 event queues etc
00A4D0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
00A4E0: 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 on:.... Th
00A4F0: 69 73 20 65 6E 74 72 79 20 63 6F 6D 70 6C 65 74 is entry complet
00A500: 65 6C 79 20 63 6C 65 61 72 73 20 61 6C 6C 20 65 ely clears all e
00A510: 76 65 6E 74 20 71 75 65 75 65 73 2C 20 74 68 65 vent queues, the
00A520: 20 76 61 72 69 6F 75 73 20 20 74 69 6D 65 72 20 various timer
00A530: 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 66 72 61 and.. fra
00A540: 6D 65 20 66 6C 79 62 61 63 6B 20 6C 69 73 74 73 me flyback lists
00A550: 20 61 6E 64 20 73 6F 20 6F 6E 2E 20 54 68 65 20 and so on. The
00A560: 65 66 66 65 63 74 20 69 73 20 74 6F 20 64 69 73 effect is to dis
00A570: 70 6F 73 65 20 6F 66 20 61 6E 79 20 70 65 6E 64 pose of any pend
00A580: 69 6E 67 0D 0A 20 20 20 20 20 20 20 73 79 6E 63 ing.. sync
00A590: 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 20 61 hronous events a
00A5A0: 6E 64 20 74 6F 20 68 61 6C 74 20 61 6C 6C 20 74 nd to halt all t
00A5B0: 69 6D 65 72 20 72 65 6C 61 74 65 64 20 66 75 6E imer related fun
00A5C0: 63 74 69 6F 6E 73 20 6F 74 68 65 72 20 20 74 68 ctions other th
00A5D0: 61 6E 0D 0A 20 20 20 20 20 20 20 73 6F 75 6E 64 an.. sound
00A5E0: 20 67 65 6E 65 72 61 74 69 6F 6E 20 61 6E 64 20 generation and
00A5F0: 6B 65 79 62 6F 61 72 64 20 73 63 61 6E 6E 69 6E keyboard scannin
00A600: 67 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 g..... Ent
00A610: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
00A620: 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 .. No cond
00A630: 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 itions.....
00A640: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
00A650: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 42 20 63 s:.... B c
00A660: 6F 6E 74 61 69 6E 73 20 74 68 65 20 52 4F 4D 20 ontains the ROM
00A670: 73 65 6C 65 63 74 20 61 64 64 72 65 73 73 20 6F select address o
00A680: 66 20 74 68 65 20 63 75 72 72 65 6E 74 20 20 66 f the current f
00A690: 6F 72 65 67 72 6F 75 6E 64 20 20 52 4F 4D 20 20 oreground ROM
00A6A0: 28 69 66 0D 0A 20 20 20 20 20 20 20 61 6E 79 29 (if.. any)
00A6B0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 44 45 20 63 ..... DE c
00A6C0: 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 ontains the addr
00A6D0: 65 73 73 20 20 61 74 20 20 77 68 69 63 68 20 20 ess at which
00A6E0: 74 68 65 20 20 63 75 72 72 65 6E 74 20 20 66 6F the current fo
00A6F0: 72 65 67 72 6F 75 6E 64 20 20 52 4F 4D 20 20 77 reground ROM w
00A700: 61 73 0D 0A 20 20 20 20 20 20 20 65 6E 74 65 72 as.. enter
00A710: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 43 20 ed..... C
00A720: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 52 4F 4D contains the ROM
00A730: 20 73 65 6C 65 63 74 20 61 64 64 72 65 73 73 20 select address
00A740: 66 6F 72 20 61 20 52 41 4D 20 66 6F 72 65 67 72 for a RAM foregr
00A750: 6F 75 6E 64 20 70 72 6F 67 72 61 6D 2E 0D 0A 0D ound program....
00A760: 0A 20 20 20 20 20 20 20 41 46 20 61 6E 64 20 48 . AF and H
00A770: 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 L corrupt...
00A780: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
00A790: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
00A7A0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
00A7B0: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
00A7C0: 20 49 66 20 74 68 65 20 63 75 72 72 65 6E 74 20 If the current
00A7D0: 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 72 foreground progr
00A7E0: 61 6D 20 20 69 73 20 20 69 6E 20 20 52 41 4D 20 am is in RAM
00A7F0: 20 74 68 65 6E 20 20 74 68 65 20 20 52 4F 4D 20 then the ROM
00A800: 20 73 65 6C 65 63 74 0D 0A 20 20 20 20 20 20 20 select..
00A810: 61 64 64 72 65 73 73 20 61 6E 64 20 65 6E 74 72 address and entr
00A820: 79 20 70 6F 69 6E 74 20 72 65 74 75 72 6E 65 64 y point returned
00A830: 20 61 72 65 20 62 6F 74 68 20 7A 65 72 6F 2E 20 are both zero.
00A840: 69 2E 65 2E 20 54 68 65 20 20 64 65 66 61 75 6C i.e. The defaul
00A850: 74 20 20 52 4F 4D 0D 0A 20 20 20 20 20 20 20 28 t ROM.. (
00A860: 52 4F 4D 20 30 29 20 61 74 20 69 74 73 20 65 6E ROM 0) at its en
00A870: 74 72 79 20 61 64 64 72 65 73 73 2E 0D 0A 0D 0A try address.....
00A880: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 43 48 4F 4B .. KL CHOK
00A890: 45 20 4F 46 46 20 66 6F 72 6D 73 20 70 61 72 74 E OFF forms part
00A8A0: 20 6F 66 20 74 68 65 20 63 6C 6F 73 65 20 64 6F of the close do
00A8B0: 77 6E 20 72 65 71 75 69 72 65 64 20 62 65 66 6F wn required befo
00A8C0: 72 65 20 20 61 20 20 6E 65 77 20 20 52 41 4D 0D re a new RAM.
00A8D0: 0A 20 20 20 20 20 20 20 66 6F 72 65 67 72 6F 75 . foregrou
00A8E0: 6E 64 20 70 72 6F 67 72 61 6D 20 69 73 20 6C 6F nd program is lo
00A8F0: 61 64 65 64 2C 20 61 73 20 69 73 20 72 65 71 75 aded, as is requ
00A900: 69 72 65 64 20 62 79 20 4D 43 20 42 4F 4F 54 20 ired by MC BOOT
00A910: 50 52 4F 47 52 41 4D 2E 0D 0A 0D 0A 20 20 20 20 PROGRAM.....
00A920: 20 20 20 54 68 65 20 63 6C 6F 73 65 20 64 6F 77 The close dow
00A930: 6E 20 6D 75 73 74 20 65 6E 73 75 72 65 20 74 68 n must ensure th
00A940: 61 74 20 74 68 65 72 65 20 61 72 65 20 6E 6F 20 at there are no
00A950: 69 6E 74 65 72 72 75 70 74 20 6F 72 20 6F 74 68 interrupt or oth
00A960: 65 72 20 65 76 65 6E 74 73 0D 0A 20 20 20 20 20 er events..
00A970: 20 20 61 63 74 69 76 65 20 61 6E 64 20 75 73 69 active and usi
00A980: 6E 67 20 6D 65 6D 6F 72 79 20 77 68 69 63 68 20 ng memory which
00A990: 20 6D 69 67 68 74 20 20 62 65 20 20 64 61 6D 61 might be dama
00A9A0: 67 65 64 20 20 62 79 20 20 6C 6F 61 64 69 6E 67 ged by loading
00A9B0: 20 20 61 20 20 6E 65 77 0D 0A 20 20 20 20 20 20 a new..
00A9C0: 20 70 72 6F 67 72 61 6D 20 69 6E 74 6F 20 6D 65 program into me
00A9D0: 6D 6F 72 79 2E 20 49 6E 20 74 68 65 20 63 6F 6D mory. In the com
00A9E0: 70 6C 65 74 65 20 63 6C 6F 73 65 20 64 6F 77 6E plete close down
00A9F0: 20 4D 43 20 42 4F 4F 54 20 50 52 4F 47 52 41 4D MC BOOT PROGRAM
00AA00: 20 64 6F 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 does:....
00AA10: 20 53 4F 55 4E 44 20 52 45 53 45 54 20 20 20 20 SOUND RESET
00AA20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6F to
00AA30: 20 6B 69 6C 6C 20 6F 66 66 20 73 6F 75 6E 64 20 kill off sound
00AA40: 67 65 6E 65 72 61 74 69 6F 6E 0D 0A 0D 0A 20 20 generation....
00AA50: 20 20 20 20 20 61 6E 20 4F 55 54 20 74 6F 20 49 an OUT to I
00AA60: 2F 4F 20 70 6F 72 74 20 23 46 38 46 46 20 20 20 /O port #F8FF
00AA70: 20 20 74 6F 20 72 65 73 65 74 20 61 6E 79 20 65 to reset any e
00AA80: 78 74 65 72 6E 61 6C 20 69 6E 74 65 72 72 75 70 xternal interrup
00AA90: 74 20 73 6F 75 72 63 65 73 2E 0D 0A 0D 0A 20 20 t sources.....
00AAA0: 20 20 20 20 20 4B 4C 20 43 48 4F 4B 45 20 4F 46 KL CHOKE OF
00AAB0: 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 F
00AAC0: 20 20 74 6F 20 6B 69 6C 6C 20 6F 66 66 20 65 76 to kill off ev
00AAD0: 65 6E 74 73 20 65 74 63 2E 0D 0A 0D 0A 20 20 20 ents etc.....
00AAE0: 20 20 20 20 4B 4D 20 52 45 53 45 54 20 20 20 20 KM RESET
00AAF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00AB00: 20 74 6F 20 72 65 73 65 74 20 61 6E 79 20 20 6B to reset any k
00AB10: 65 79 62 6F 61 72 64 20 20 69 6E 64 69 72 65 63 eyboard indirec
00AB20: 74 69 6F 6E 73 20 20 61 6E 64 0D 0A 20 20 20 20 tions and..
00AB30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00AB40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00AB50: 74 68 65 20 62 72 65 61 6B 20 65 76 65 6E 74 2E the break event.
00AB60: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 58 54 20 52 .... TXT R
00AB70: 45 53 45 54 20 20 20 20 20 20 20 20 20 20 20 20 ESET
00AB80: 20 20 20 20 20 20 20 20 74 6F 20 72 65 73 65 74 to reset
00AB90: 20 61 6E 79 20 54 65 78 74 20 56 44 55 20 69 6E any Text VDU in
00ABA0: 64 69 72 65 63 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 directions.....
00ABB0: 20 20 20 20 20 20 53 43 52 20 52 45 53 45 54 20 SCR RESET
00ABC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00ABD0: 20 20 20 74 6F 20 72 65 73 65 74 20 61 6E 79 20 to reset any
00ABE0: 73 63 72 65 65 6E 20 69 6E 64 69 72 65 63 74 69 screen indirecti
00ABF0: 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ons.........
00AC00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
00AC10: 09 00 00 00 02 09 50 E5 09 00 C1 02 00 00 00 02 ......P.........
00AC20: 09 00 C2 02 00 00 00 02 09 00 C3 02 00 00 00 02 ................
00AC30: 09 00 C4 02 00 00 00 02 09 00 C5 02 00 00 00 02 ................
00AC40: 09 00 C6 02 00 00 00 02 09 00 C7 02 00 00 00 02 ................
00AC50: 09 00 C8 02 00 00 00 02 09 00 C9 02 00 00 00 02 ................
00AC60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AD00: 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 AMSTRAD CPC46
00AD10: 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 4/664/6128 FIRMW
00AD20: 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ARE
00AD30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
00AD40: 67 65 20 31 35 2E 31 38 33 0D 0A 0D 0A 0D 0A 0D ge 15.183.......
00AD50: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
00AD60: 65 20 76 61 6C 75 65 73 20 72 65 74 75 72 6E 65 e values returne
00AD70: 64 20 62 79 20 4B 4C 20 43 48 4F 4B 45 20 4F 46 d by KL CHOKE OF
00AD80: 46 20 61 72 65 20 75 73 65 64 20 62 79 20 4D 43 F are used by MC
00AD90: 20 42 4F 4F 54 20 50 52 4F 47 52 41 4D 20 69 66 BOOT PROGRAM if
00ADA0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 70 72 6F the.. pro
00ADB0: 67 72 61 6D 20 6C 6F 61 64 20 66 61 69 6C 73 2E gram load fails.
00ADC0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ........ T
00ADD0: 68 69 73 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 his information
00ADE0: 69 73 20 20 69 6E 63 6C 75 64 65 64 20 20 66 6F is included fo
00ADF0: 72 20 20 74 68 65 20 20 72 65 61 64 65 72 27 73 r the reader's
00AE00: 20 20 69 6E 74 65 72 65 73 74 2E 20 20 4D 43 20 interest. MC
00AE10: 20 42 4F 4F 54 0D 0A 20 20 20 20 20 20 20 50 52 BOOT.. PR
00AE20: 4F 47 52 41 4D 20 69 73 20 74 68 65 20 20 72 65 OGRAM is the re
00AE30: 63 6F 6D 6D 65 6E 64 65 64 20 20 6D 65 61 6E 73 commended means
00AE40: 20 20 6F 66 20 20 6C 6F 61 64 69 6E 67 20 20 61 of loading a
00AE50: 6E 64 20 20 65 6E 74 65 72 69 6E 67 20 20 61 20 nd entering a
00AE60: 20 52 41 4D 0D 0A 20 20 20 20 20 20 20 66 6F 72 RAM.. for
00AE70: 65 67 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D 2E eground program.
00AE80: 20 4D 43 20 53 54 41 52 54 20 50 52 4F 47 52 41 MC START PROGRA
00AE90: 4D 20 20 69 73 20 20 20 74 68 65 20 20 72 65 63 M is the rec
00AEA0: 6F 6D 6D 65 6E 64 65 64 20 20 6D 65 61 6E 73 20 ommended means
00AEB0: 20 6F 66 0D 0A 20 20 20 20 20 20 20 65 6E 74 65 of.. ente
00AEC0: 72 69 6E 67 20 61 20 52 4F 4D 20 66 6F 72 65 67 ring a ROM foreg
00AED0: 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D 2C 20 6F round program, o
00AEE0: 72 20 61 20 52 41 4D 20 66 6F 72 65 67 72 6F 75 r a RAM foregrou
00AEF0: 6E 64 20 20 70 72 6F 67 72 61 6D 20 20 77 68 69 nd program whi
00AF00: 63 68 0D 0A 20 20 20 20 20 20 20 68 61 73 20 61 ch.. has a
00AF10: 6C 72 65 61 64 79 20 62 65 65 6E 20 6C 6F 61 64 lready been load
00AF20: 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ed.........
00AF30: 20 20 4B 4C 20 43 48 4F 4B 45 20 4F 46 46 20 64 KL CHOKE OFF d
00AF40: 69 73 61 62 6C 65 73 20 69 6E 74 65 72 72 75 70 isables interrup
00AF50: 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ts.............
00AF60: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
00AF70: 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tries:......
00AF80: 20 20 20 4D 43 20 42 4F 4F 54 20 50 52 4F 47 52 MC BOOT PROGR
00AF90: 41 4D 0D 0A 20 20 20 20 20 20 20 4D 43 20 53 54 AM.. MC ST
00AFA0: 41 52 54 20 50 52 4F 47 52 41 4D 0D 0A 0D 0A 0D ART PROGRAM.....
00AFB0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00AFC0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00AFD0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00AFE0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00AFF0: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
00B000: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
00B010: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
00B020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B030: 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 38 34 page 15.184
00B040: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
00B050: 20 20 20 20 20 31 35 33 3A 20 4B 4C 20 52 4F 4D 153: KL ROM
00B060: 20 57 41 4C 4B 20 20 20 20 20 20 20 20 20 20 20 WALK
00B070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B090: 20 20 20 20 20 20 23 42 43 43 42 0D 0A 0D 0A 20 #BCCB....
00B0A0: 20 20 20 20 20 20 46 69 6E 64 20 61 6E 64 20 69 Find and i
00B0B0: 6E 69 74 69 61 6C 69 7A 65 20 61 6C 6C 20 62 61 nitialize all ba
00B0C0: 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 73 2E 0D 0A ckground ROMs...
00B0D0: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
00B0E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 42 61 63 6B 67 .... Backg
00B0F0: 72 6F 75 6E 64 20 52 4F 4D 73 20 70 72 6F 76 69 round ROMs provi
00B100: 64 65 20 73 75 70 70 6F 72 74 20 66 6F 72 20 65 de support for e
00B110: 78 70 61 6E 73 69 6F 6E 20 68 61 72 64 77 61 72 xpansion hardwar
00B120: 65 20 6F 72 20 61 75 67 6D 65 6E 74 20 20 74 68 e or augment th
00B130: 65 0D 0A 20 20 20 20 20 20 20 73 6F 66 74 77 61 e.. softwa
00B140: 72 65 20 66 61 63 69 6C 69 74 69 65 73 20 6F 66 re facilities of
00B150: 20 74 68 65 20 6D 61 63 68 69 6E 65 2E 20 49 66 the machine. If
00B160: 20 74 68 65 20 66 61 63 69 6C 69 74 69 65 73 20 the facilities
00B170: 70 72 6F 76 69 64 65 64 20 62 79 20 20 74 68 65 provided by the
00B180: 0D 0A 20 20 20 20 20 20 20 62 61 63 6B 67 72 6F .. backgro
00B190: 75 6E 64 20 52 4F 4D 73 20 61 72 65 20 74 6F 20 und ROMs are to
00B1A0: 20 62 65 20 20 61 76 61 69 6C 61 62 6C 65 2C 20 be available,
00B1B0: 20 74 68 65 20 20 66 6F 72 65 67 72 6F 75 6E 64 the foreground
00B1C0: 20 20 70 72 6F 67 72 61 6D 20 20 6D 75 73 74 0D program must.
00B1D0: 0A 20 20 20 20 20 20 20 69 6E 69 74 69 61 6C 69 . initiali
00B1E0: 7A 65 20 74 68 65 6D 2E 20 54 68 69 73 20 72 6F ze them. This ro
00B1F0: 75 74 69 6E 65 20 66 69 6E 64 73 20 20 61 6E 64 utine finds and
00B200: 20 20 69 6E 69 74 69 61 6C 69 7A 65 73 20 20 61 initializes a
00B210: 6C 6C 20 20 62 61 63 6B 67 72 6F 75 6E 64 0D 0A ll background..
00B220: 20 20 20 20 20 20 20 52 4F 4D 73 2E 0D 0A 0D 0A ROMs.....
00B230: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
00B240: 64 69 74 69 6F 6E 73 3A 0D 0A 20 20 20 20 20 20 ditions:..
00B250: 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 61 64 64 DE contains add
00B260: 72 65 73 73 20 20 6F 66 20 20 74 68 65 20 20 66 ress of the f
00B270: 69 72 73 74 20 20 75 73 61 62 6C 65 20 20 62 79 irst usable by
00B280: 74 65 20 20 6F 66 20 20 6D 65 6D 6F 72 79 20 20 te of memory
00B290: 28 6C 6F 77 65 73 74 0D 0A 20 20 20 20 20 20 20 (lowest..
00B2A0: 61 64 64 72 65 73 73 29 2E 0D 0A 20 20 20 20 20 address)...
00B2B0: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 61 64 HL contains ad
00B2C0: 64 72 65 73 73 20 6F 66 20 20 74 68 65 20 20 6C dress of the l
00B2D0: 61 73 74 20 20 75 73 61 62 6C 65 20 20 62 79 74 ast usable byt
00B2E0: 65 73 20 20 6F 66 20 20 6D 65 6D 6F 72 79 20 20 es of memory
00B2F0: 28 68 69 67 68 65 73 74 0D 0A 20 20 20 20 20 20 (highest..
00B300: 20 61 64 64 72 65 73 73 29 2E 0D 0A 0D 0A 20 20 address).....
00B310: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
00B320: 69 6F 6E 73 3A 0D 0A 20 20 20 20 20 20 20 44 45 ions:.. DE
00B330: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 contains the ad
00B340: 64 72 65 73 73 20 6F 66 20 74 68 65 20 6E 65 77 dress of the new
00B350: 20 66 69 72 73 74 20 75 73 61 62 6C 65 20 62 79 first usable by
00B360: 74 65 20 6F 66 20 6D 65 6D 6F 72 79 2E 0D 0A 20 te of memory...
00B370: 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E HL contain
00B380: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 s the address of
00B390: 20 74 68 65 20 6E 65 77 20 6C 61 73 74 20 75 73 the new last us
00B3A0: 61 62 6C 65 20 62 79 74 65 20 6F 66 20 6D 65 6D able byte of mem
00B3B0: 6F 72 79 2E 0D 0A 20 20 20 20 20 20 20 41 46 20 ory... AF
00B3C0: 61 6E 64 20 42 43 20 63 6F 72 72 75 70 74 2E 0D and BC corrupt..
00B3D0: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 . All othe
00B3E0: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
00B3F0: 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 erved.....
00B400: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 Notes:....
00B410: 20 20 57 68 65 6E 20 61 20 66 6F 72 65 67 72 6F When a foregro
00B420: 75 6E 64 20 52 4F 4D 20 70 72 6F 67 72 61 6D 20 und ROM program
00B430: 69 73 20 65 6E 74 65 72 65 64 20 69 74 20 69 73 is entered it is
00B440: 20 70 61 73 73 65 64 20 74 68 65 20 61 64 64 72 passed the addr
00B450: 65 73 73 65 73 20 6F 66 0D 0A 20 20 20 20 20 20 esses of..
00B460: 20 74 68 65 20 66 69 72 73 74 20 61 6E 64 20 6C the first and l
00B470: 61 73 74 20 62 79 74 65 73 20 69 6E 20 6D 65 6D ast bytes in mem
00B480: 6F 72 79 20 77 68 69 63 68 20 69 74 20 6D 61 79 ory which it may
00B490: 20 75 73 65 2E 20 54 68 65 20 20 61 72 65 20 20 use. The are
00B4A0: 6F 75 74 73 69 64 65 0D 0A 20 20 20 20 20 20 20 outside..
00B4B0: 74 68 69 73 20 69 73 20 75 73 65 64 20 74 6F 20 this is used to
00B4C0: 73 74 6F 72 65 20 66 69 72 6D 77 61 72 65 20 76 store firmware v
00B4D0: 61 72 69 61 62 6C 65 73 2C 20 74 68 65 20 20 73 ariables, the s
00B4E0: 74 61 63 6B 2C 20 20 74 68 65 20 20 6A 75 6D 70 tack, the jump
00B4F0: 62 6C 6F 63 6B 73 0D 0A 20 20 20 20 20 20 20 61 blocks.. a
00B500: 6E 64 20 74 68 65 20 73 63 72 65 65 6E 20 6D 65 nd the screen me
00B510: 6D 6F 72 79 2E 20 46 72 6F 6D 20 74 68 65 20 20 mory. From the
00B520: 61 72 65 61 20 20 61 76 61 69 6C 61 62 6C 65 20 area available
00B530: 20 66 6F 72 20 20 74 68 65 20 20 66 6F 72 65 67 for the foreg
00B540: 72 6F 75 6E 64 0D 0A 20 20 20 20 20 20 20 70 72 round.. pr
00B550: 6F 67 72 61 6D 20 74 6F 20 75 73 65 2C 20 74 68 ogram to use, th
00B560: 65 20 61 72 65 61 73 20 66 6F 72 20 20 62 61 63 e areas for bac
00B570: 6B 67 72 6F 75 6E 64 20 20 70 72 6F 67 72 61 6D kground program
00B580: 73 20 20 74 6F 20 20 75 73 65 20 20 6D 75 73 74 s to use must
00B590: 20 20 62 65 0D 0A 20 20 20 20 20 20 20 61 6C 6C be.. all
00B5A0: 6F 63 61 74 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 ocated.....
00B5B0: 20 20 54 68 65 20 66 6F 72 65 67 72 6F 75 6E 64 The foreground
00B5C0: 20 70 72 6F 67 72 61 6D 20 73 68 6F 75 6C 64 20 program should
00B5D0: 69 6E 69 74 69 61 6C 69 7A 65 20 62 61 63 6B 67 initialize backg
00B5E0: 72 6F 75 6E 64 20 52 4F 4D 73 20 61 74 20 20 61 round ROMs at a
00B5F0: 6E 20 20 65 61 72 6C 79 0D 0A 20 20 20 20 20 20 n early..
00B600: 20 73 74 61 67 65 2C 20 62 65 66 6F 72 65 20 69 stage, before i
00B610: 74 20 75 73 65 73 20 74 68 65 20 6D 65 6D 6F 72 t uses the memor
00B620: 79 20 69 74 20 69 73 20 67 69 76 65 6E 2E 20 49 y it is given. I
00B630: 74 20 6D 61 79 20 63 68 6F 6F 73 65 20 77 68 65 t may choose whe
00B640: 74 68 65 72 20 74 6F 0D 0A 20 20 20 20 20 20 20 ther to..
00B650: 65 6E 61 62 6C 65 20 62 61 63 6B 67 72 6F 75 6E enable backgroun
00B660: 64 20 52 4F 4D 73 20 6F 72 20 6E 6F 74 2E 20 4B d ROMs or not. K
00B670: 4C 20 49 4E 49 54 20 42 41 43 4B 20 6D 61 79 20 L INIT BACK may
00B680: 62 65 20 75 73 65 64 20 74 6F 20 20 69 6E 69 74 be used to init
00B690: 69 61 6C 69 7A 65 0D 0A 20 20 20 20 20 20 20 61 ialize.. a
00B6A0: 20 70 61 72 74 69 63 75 6C 61 72 20 62 61 63 6B particular back
00B6B0: 67 72 6F 75 6E 64 20 52 4F 4D 20 6F 72 20 74 68 ground ROM or th
00B6C0: 69 73 20 72 6F 75 74 69 6E 65 20 6D 61 79 20 62 is routine may b
00B6D0: 65 20 75 73 65 64 20 74 6F 20 20 69 6E 69 74 69 e used to initi
00B6E0: 61 6C 69 7A 65 0D 0A 20 20 20 20 20 20 20 61 6C alize.. al
00B6F0: 6C 20 61 76 61 69 6C 61 62 6C 65 20 62 61 63 6B l available back
00B700: 67 72 6F 75 6E 64 20 52 4F 4D 73 2E 0D 0A 0D 0A ground ROMs.....
00B710: 20 20 20 20 20 20 20 4B 4C 20 52 4F 4D 20 57 41 KL ROM WA
00B720: 4C 4B 20 69 6E 73 70 65 63 74 73 20 74 68 65 20 LK inspects the
00B730: 52 4F 4D 73 20 61 74 20 52 4F 4D 20 73 65 6C 65 ROMs at ROM sele
00B740: 63 74 20 61 64 64 72 65 73 73 65 73 20 69 6E 20 ct addresses in
00B750: 74 68 65 20 72 61 6E 67 65 20 31 2E 2E 0D 0A 20 the range 1....
00B760: 20 20 20 20 20 20 37 20 20 69 6E 20 20 56 31 2E 7 in V1.
00B770: 30 20 20 66 69 72 6D 77 61 72 65 20 20 61 6E 64 0 firmware and
00B780: 20 20 30 2E 2E 31 35 20 20 69 6E 20 20 56 31 2E 0..15 in V1.
00B790: 31 20 20 66 69 72 6D 77 61 72 65 2E 20 20 54 68 1 firmware. Th
00B7A0: 65 20 20 20 70 6F 77 65 72 2D 75 70 0D 0A 20 20 e power-up..
00B7B0: 20 20 20 20 20 69 6E 69 74 69 61 6C 69 7A 61 74 initializat
00B7C0: 69 6F 6E 20 65 6E 74 72 79 20 6F 66 20 65 61 63 ion entry of eac
00B7D0: 68 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D h background ROM
00B7E0: 20 66 6F 75 6E 64 20 69 73 20 63 61 6C 6C 65 64 found is called
00B7F0: 20 28 75 6E 6C 65 73 73 20 69 74 0D 0A 20 20 20 (unless it..
00B800: 20 20 20 20 69 73 20 74 68 65 20 63 75 72 72 65 is the curre
00B810: 6E 74 20 66 6F 72 65 67 72 6F 75 6E 64 20 20 52 nt foreground R
00B820: 4F 4D 20 20 69 6E 20 20 56 31 2E 31 20 20 66 69 OM in V1.1 fi
00B830: 72 6D 77 61 72 65 29 2E 20 20 54 68 69 73 20 20 rmware). This
00B840: 65 6E 74 72 79 20 20 6D 61 79 0D 0A 20 20 20 20 entry may..
00B850: 20 20 20 61 6C 6C 6F 63 61 74 65 20 73 6F 6D 65 allocate some
00B860: 20 6D 65 6D 6F 72 79 20 66 6F 72 20 74 68 65 20 memory for the
00B870: 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 27 73 background ROM's
00B880: 20 74 6F 20 75 73 65 20 62 79 20 61 64 6A 75 73 to use by adjus
00B890: 74 69 6E 67 20 20 74 68 65 0D 0A 20 20 20 20 20 ting the..
00B8A0: 20 20 76 61 6C 75 65 73 20 20 69 6E 20 20 44 45 values in DE
00B8B0: 20 20 61 6E 64 20 20 48 4C 20 20 62 65 66 6F 72 and HL befor
00B8C0: 65 20 20 72 65 74 75 72 6E 69 6E 67 2E 20 20 4F e returning. O
00B8D0: 6E 63 65 20 20 74 68 65 20 20 52 4F 4D 20 20 68 nce the ROM h
00B8E0: 61 73 20 20 62 65 65 6E 0D 0A 20 20 20 20 20 20 as been..
00B8F0: 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 74 68 65 initialized the
00B900: 20 4B 65 72 6E 65 6C 20 20 61 64 64 73 20 20 69 Kernel adds i
00B910: 74 20 20 74 6F 20 20 74 68 65 20 20 6C 69 73 74 t to the list
00B920: 20 20 6F 66 20 20 65 78 74 65 72 6E 61 6C 20 20 of external
00B930: 63 6F 6D 6D 61 6E 64 0D 0A 20 20 20 20 20 20 20 command..
00B940: 73 65 72 76 65 72 73 2C 20 61 6E 64 20 6E 6F 74 servers, and not
00B950: 65 73 20 74 68 65 20 62 61 73 65 20 6F 66 20 74 es the base of t
00B960: 68 65 20 61 72 65 61 20 77 68 69 63 68 20 74 68 he area which th
00B970: 65 20 52 4F 4D 20 68 61 73 20 61 6C 6C 6F 63 61 e ROM has alloca
00B980: 74 65 64 20 61 74 0D 0A 20 20 20 20 20 20 20 74 ted at.. t
00B990: 68 65 20 74 6F 70 20 6F 66 20 6D 65 6D 6F 72 79 he top of memory
00B9A0: 20 28 69 66 20 61 6E 79 29 2E 20 53 75 62 73 65 (if any). Subse
00B9B0: 71 75 65 6E 74 20 46 41 52 20 43 41 4C 4C 73 20 quent FAR CALLs
00B9C0: 74 6F 20 65 6E 74 72 69 65 73 20 69 6E 20 74 68 to entries in th
00B9D0: 65 20 52 4F 4D 0D 0A 20 20 20 20 20 20 20 77 69 e ROM.. wi
00B9E0: 6C 6C 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 ll automatically
00B9F0: 20 73 65 74 20 74 68 65 20 49 59 20 69 6E 64 65 set the IY inde
00BA00: 78 20 72 65 67 69 73 74 65 72 20 20 74 6F 20 20 x register to
00BA10: 70 6F 69 6E 74 20 20 61 74 20 20 74 68 65 20 20 point at the
00BA20: 52 4F 4D 73 0D 0A 20 20 20 20 20 20 20 75 70 70 ROMs.. upp
00BA30: 65 72 20 6D 65 6D 6F 72 79 20 61 72 65 61 2E 0D er memory area..
00BA40: 0A 0D 0A 20 20 20 20 20 20 20 53 65 65 20 73 65 ... See se
00BA50: 63 74 69 6F 6E 20 31 30 2E 34 20 66 6F 72 20 61 ction 10.4 for a
00BA60: 20 66 75 6C 6C 20 64 65 73 63 72 69 70 74 69 6F full descriptio
00BA70: 6E 20 6F 66 20 62 61 63 6B 67 72 6F 75 6E 64 20 n of background
00BA80: 52 4F 4D 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ROMs.....
00BA90: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
00BAA0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4C 20 46 49 .... KL FI
00BAB0: 4E 44 20 43 4F 4D 4D 41 4E 44 0D 0A 20 20 20 20 ND COMMAND..
00BAC0: 20 20 20 4B 4C 20 49 4E 49 54 20 42 41 43 4B 0D KL INIT BACK.
00BAD0: 0A 20 20 20 20 20 20 20 4B 4C 20 4C 4F 47 20 45 . KL LOG E
00BAE0: 58 54 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 XT.... AMS
00BAF0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
00BB00: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
00BB10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00BB20: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
00BB30: 31 38 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 185.............
00BB40: 0A 20 20 20 20 20 20 20 31 35 34 3A 20 4B 4C 20 . 154: KL
00BB50: 49 4E 49 54 20 42 41 43 4B 20 20 20 20 20 20 20 INIT BACK
00BB60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00BB70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00BB80: 20 20 20 20 20 20 20 20 20 23 42 43 43 45 0D 0A #BCCE..
00BB90: 0D 0A 20 20 20 20 20 20 20 49 6E 69 74 69 61 6C .. Initial
00BBA0: 69 7A 65 20 61 20 70 61 72 74 69 63 75 6C 61 72 ize a particular
00BBB0: 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 2E background ROM.
00BBC0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F .... Actio
00BBD0: 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 42 61 63 n:.... Bac
00BBE0: 6B 67 72 6F 75 6E 64 20 52 4F 4D 73 20 70 72 6F kground ROMs pro
00BBF0: 76 69 64 65 20 73 75 70 70 6F 72 74 20 66 6F 72 vide support for
00BC00: 20 65 78 70 61 6E 73 69 6F 6E 20 68 61 72 64 77 expansion hardw
00BC10: 61 72 65 20 6F 72 20 61 75 67 6D 65 6E 74 20 20 are or augment
00BC20: 74 68 65 0D 0A 20 20 20 20 20 20 20 73 6F 66 74 the.. soft
00BC30: 77 61 72 65 20 66 61 63 69 6C 69 74 69 65 73 20 ware facilities
00BC40: 6F 66 20 74 68 65 20 6D 61 63 68 69 6E 65 2E 20 of the machine.
00BC50: 49 66 20 74 68 65 20 66 61 63 69 6C 69 74 69 65 If the facilitie
00BC60: 73 20 70 72 6F 76 69 64 65 64 20 62 79 20 20 74 s provided by t
00BC70: 68 65 0D 0A 20 20 20 20 20 20 20 62 61 63 6B 67 he.. backg
00BC80: 72 6F 75 6E 64 20 52 4F 4D 73 20 61 72 65 20 20 round ROMs are
00BC90: 74 6F 20 20 62 65 20 20 61 76 61 69 6C 61 62 6C to be availabl
00BCA0: 65 20 20 74 68 65 20 20 66 6F 72 65 67 72 6F 75 e the foregrou
00BCB0: 6E 64 20 20 70 72 6F 67 72 61 6D 20 20 6D 75 73 nd program mus
00BCC0: 74 0D 0A 20 20 20 20 20 20 20 69 6E 69 74 69 61 t.. initia
00BCD0: 6C 69 7A 65 20 74 68 65 6D 2E 20 54 68 69 73 20 lize them. This
00BCE0: 72 6F 75 74 69 6E 65 20 73 65 6C 65 63 74 73 20 routine selects
00BCF0: 20 61 6E 64 20 20 69 6E 69 74 69 61 6C 69 7A 65 and initialize
00BD00: 73 20 20 61 20 20 70 61 72 74 69 63 75 6C 61 72 s a particular
00BD10: 0D 0A 20 20 20 20 20 20 20 62 61 63 6B 67 72 6F .. backgro
00BD20: 75 6E 64 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 und ROM.....
00BD30: 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 Entry conditi
00BD40: 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 ons:.... C
00BD50: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 52 4F contains the RO
00BD60: 4D 20 73 65 6C 65 63 74 20 61 64 64 72 65 73 73 M select address
00BD70: 20 6F 66 20 74 68 65 20 52 4F 4D 20 74 6F 20 69 of the ROM to i
00BD80: 6E 69 74 69 61 6C 69 7A 65 2E 0D 0A 20 20 20 20 nitialize...
00BD90: 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 61 DE contains a
00BDA0: 64 64 72 65 73 73 20 20 6F 66 20 20 74 68 65 20 ddress of the
00BDB0: 20 66 69 72 73 74 20 20 75 73 61 62 6C 65 20 20 first usable
00BDC0: 62 79 74 65 20 20 6F 66 20 20 6D 65 6D 6F 72 79 byte of memory
00BDD0: 20 20 28 6C 6F 77 65 73 74 0D 0A 20 20 20 20 20 (lowest..
00BDE0: 20 20 61 64 64 72 65 73 73 29 2E 0D 0A 20 20 20 address)...
00BDF0: 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 HL contains
00BE00: 61 64 64 72 65 73 73 20 20 6F 66 20 20 74 68 65 address of the
00BE10: 20 20 6C 61 73 74 20 20 75 73 61 62 6C 65 20 20 last usable
00BE20: 62 79 74 65 20 20 6F 66 20 20 6D 65 6D 6F 72 79 byte of memory
00BE30: 20 20 28 68 69 67 68 65 73 74 0D 0A 20 20 20 20 (highest..
00BE40: 20 20 20 61 64 64 72 65 73 73 29 2E 0D 0A 0D 0A address).....
00BE50: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
00BE60: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
00BE70: 20 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 DE contains
00BE80: 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 the address of t
00BE90: 68 65 20 6E 65 77 20 66 69 72 73 74 20 75 73 61 he new first usa
00BEA0: 62 6C 65 20 62 79 74 65 20 6F 66 20 6D 65 6D 6F ble byte of memo
00BEB0: 72 79 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 ry... HL c
00BEC0: 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 ontains the addr
00BED0: 65 73 73 20 6F 66 20 74 68 65 20 6E 65 77 20 6C ess of the new l
00BEE0: 61 73 74 20 75 73 61 62 6C 65 20 62 79 74 65 20 ast usable byte
00BEF0: 6F 66 20 6D 65 6D 6F 72 79 2E 0D 0A 0D 0A 20 20 of memory.....
00BF00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
00BF10: 0A 00 00 00 02 09 50 E5 0A 00 C1 02 00 00 00 02 ......P.........
00BF20: 0A 00 C2 02 00 00 00 02 0A 00 C3 02 00 00 00 02 ................
00BF30: 0A 00 C4 02 00 00 00 02 0A 00 C5 02 00 00 00 02 ................
00BF40: 0A 00 C6 02 00 00 00 02 0A 00 C7 02 00 00 00 02 ................
00BF50: 0A 00 C8 02 00 00 00 02 0A 00 C9 02 00 00 00 02 ................
00BF60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00C000: 20 20 20 20 20 41 46 20 61 6E 64 20 42 20 63 6F AF and B co
00C010: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 rrupt... A
00C020: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
00C030: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
00C040: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
00C050: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 52 4F 4D .. The ROM
00C060: 20 73 65 6C 65 63 74 20 61 64 64 72 65 73 73 20 select address
00C070: 6D 75 73 74 20 62 65 20 69 6E 20 74 68 65 20 72 must be in the r
00C080: 61 6E 67 65 20 31 2E 2E 37 20 69 6E 20 56 31 2E ange 1..7 in V1.
00C090: 30 20 61 6E 64 20 30 2E 2E 31 35 20 20 69 6E 0D 0 and 0..15 in.
00C0A0: 0A 20 20 20 20 20 20 20 56 31 2E 31 20 66 69 72 . V1.1 fir
00C0B0: 6D 77 61 72 65 20 61 6E 64 20 74 68 65 20 52 4F mware and the RO
00C0C0: 4D 20 61 74 20 74 68 69 73 20 61 64 64 72 65 73 M at this addres
00C0D0: 73 20 6D 75 73 74 20 62 65 20 61 20 62 61 63 6B s must be a back
00C0E0: 67 72 6F 75 6E 64 20 52 4F 4D 20 20 6F 72 0D 0A ground ROM or..
00C0F0: 20 20 20 20 20 20 20 74 68 65 20 72 65 71 75 65 the reque
00C100: 73 74 20 77 69 6C 6C 20 62 65 20 69 67 6E 6F 72 st will be ignor
00C110: 65 64 2E 20 49 6E 20 56 31 2E 31 20 20 66 69 72 ed. In V1.1 fir
00C120: 6D 77 61 72 65 20 20 74 68 65 20 20 72 65 71 75 mware the requ
00C130: 65 73 74 20 20 77 69 6C 6C 20 20 62 65 0D 0A 20 est will be..
00C140: 20 20 20 20 20 20 69 67 6E 6F 72 65 64 20 69 66 ignored if
00C150: 20 74 68 65 20 52 4F 4D 20 69 73 20 74 68 65 20 the ROM is the
00C160: 63 75 72 72 65 6E 74 20 66 6F 72 65 67 72 6F 75 current foregrou
00C170: 6E 64 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 nd ROM.....
00C180: 20 20 57 68 65 6E 20 74 68 65 20 66 6F 72 65 67 When the foreg
00C190: 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D 20 69 73 round program is
00C1A0: 20 65 6E 74 65 72 65 64 20 69 74 20 69 73 20 70 entered it is p
00C1B0: 61 73 73 65 64 20 74 68 65 20 20 61 64 64 72 65 assed the addre
00C1C0: 73 73 65 73 20 20 6F 66 0D 0A 20 20 20 20 20 20 sses of..
00C1D0: 20 74 68 65 20 66 69 72 73 74 20 61 6E 64 20 6C the first and l
00C1E0: 61 73 74 20 62 79 74 65 73 20 69 6E 20 6D 65 6D ast bytes in mem
00C1F0: 6F 72 79 20 77 68 69 63 68 20 20 69 74 20 20 6D ory which it m
00C200: 61 79 20 20 75 73 65 2E 20 20 54 68 65 20 20 61 ay use. The a
00C210: 72 65 61 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 rea of..
00C220: 6D 65 6D 6F 72 79 20 6F 75 74 73 69 64 65 20 74 memory outside t
00C230: 68 69 73 20 69 73 20 75 73 65 64 20 74 6F 20 73 his is used to s
00C240: 74 6F 72 65 20 66 69 72 6D 77 61 72 65 20 20 76 tore firmware v
00C250: 61 72 69 61 62 6C 65 73 2C 20 20 74 68 65 20 20 ariables, the
00C260: 73 74 61 63 6B 2C 0D 0A 20 20 20 20 20 20 20 74 stack,.. t
00C270: 68 65 20 6A 75 6D 70 62 6C 6F 63 6B 73 20 61 6E he jumpblocks an
00C280: 64 20 74 68 65 20 73 63 72 65 65 6E 20 6D 65 6D d the screen mem
00C290: 6F 72 79 2E 20 46 72 6F 6D 20 74 68 65 20 61 72 ory. From the ar
00C2A0: 65 61 20 61 76 61 69 6C 61 62 6C 65 20 66 6F 72 ea available for
00C2B0: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 66 6F the.. fo
00C2C0: 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D reground program
00C2D0: 20 74 6F 20 75 73 65 2C 20 74 68 65 20 61 72 65 to use, the are
00C2E0: 61 73 20 66 6F 72 20 62 61 63 6B 67 72 6F 75 6E as for backgroun
00C2F0: 64 20 20 70 72 6F 67 72 61 6D 73 20 20 74 6F 20 d programs to
00C300: 20 75 73 65 0D 0A 20 20 20 20 20 20 20 6D 75 73 use.. mus
00C310: 74 20 62 65 20 61 6C 6C 6F 63 61 74 65 64 2E 0D t be allocated..
00C320: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 6F ... The fo
00C330: 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D reground program
00C340: 20 73 68 6F 75 6C 64 20 69 6E 69 74 69 61 6C 69 should initiali
00C350: 7A 65 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F ze background RO
00C360: 4D 73 20 61 74 20 20 61 6E 20 20 65 61 72 6C 79 Ms at an early
00C370: 0D 0A 20 20 20 20 20 20 20 73 74 61 67 65 2C 20 .. stage,
00C380: 62 65 66 6F 72 65 20 69 74 20 75 73 65 73 20 74 before it uses t
00C390: 68 65 20 6D 65 6D 6F 72 79 20 69 74 20 69 73 20 he memory it is
00C3A0: 67 69 76 65 6E 2E 20 49 74 20 6D 61 79 20 63 68 given. It may ch
00C3B0: 6F 6F 73 65 20 77 68 65 74 68 65 72 20 74 6F 0D oose whether to.
00C3C0: 0A 20 20 20 20 20 20 20 65 6E 61 62 6C 65 20 62 . enable b
00C3D0: 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 73 20 6F ackground ROMs o
00C3E0: 72 20 6E 6F 74 2E 20 4B 4C 20 52 4F 4D 20 57 41 r not. KL ROM WA
00C3F0: 4C 4B 20 6D 61 79 20 62 65 20 75 73 65 64 20 20 LK may be used
00C400: 74 6F 20 20 69 6E 69 74 69 61 6C 69 7A 65 0D 0A to initialize..
00C410: 20 20 20 20 20 20 20 61 6C 6C 20 20 61 76 61 69 all avai
00C420: 6C 61 62 6C 65 20 20 52 4F 4D 73 20 20 6F 72 20 lable ROMs or
00C430: 20 74 68 69 73 20 20 72 6F 75 74 69 6E 65 20 20 this routine
00C440: 6D 61 79 20 20 62 65 20 20 75 73 65 64 20 20 74 may be used t
00C450: 6F 20 20 69 6E 69 74 69 61 6C 69 7A 65 0D 0A 20 o initialize..
00C460: 20 20 20 20 20 20 70 61 72 74 69 63 75 6C 61 72 particular
00C470: 20 52 4F 4D 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 ROMs.....
00C480: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 63 61 This routine ca
00C490: 75 73 65 73 20 74 68 65 20 62 61 63 6B 67 72 6F uses the backgro
00C4A0: 75 6E 64 20 52 4F 4D 27 73 20 70 6F 77 65 72 2D und ROM's power-
00C4B0: 75 70 20 69 6E 69 74 69 61 6C 69 7A 61 74 69 6F up initializatio
00C4C0: 6E 20 65 6E 74 72 79 0D 0A 20 20 20 20 20 20 20 n entry..
00C4D0: 74 6F 20 62 65 20 63 61 6C 6C 65 64 2E 20 54 68 to be called. Th
00C4E0: 69 73 20 65 6E 74 72 79 20 6D 61 79 20 61 6C 6C is entry may all
00C4F0: 6F 63 61 74 65 20 73 6F 6D 65 20 6D 65 6D 6F 72 ocate some memor
00C500: 79 20 66 6F 72 20 20 74 68 65 20 20 62 61 63 6B y for the back
00C510: 67 72 6F 75 6E 64 0D 0A 20 20 20 20 20 20 20 52 ground.. R
00C520: 4F 4D 27 73 20 75 73 65 20 62 79 20 61 64 6A 75 OM's use by adju
00C530: 73 74 69 6E 67 20 74 68 65 20 76 61 6C 75 65 73 sting the values
00C540: 20 69 6E 20 44 45 20 61 6E 64 20 48 4C 20 62 65 in DE and HL be
00C550: 66 6F 72 65 20 72 65 74 75 72 6E 69 6E 67 2E 20 fore returning.
00C560: 20 4F 6E 63 65 0D 0A 20 20 20 20 20 20 20 74 68 Once.. th
00C570: 65 20 52 4F 4D 20 68 61 73 20 62 65 65 6E 20 69 e ROM has been i
00C580: 6E 69 74 69 61 6C 69 7A 65 64 20 20 74 68 65 20 nitialized the
00C590: 20 4B 65 72 6E 65 6C 20 20 61 64 64 73 20 20 69 Kernel adds i
00C5A0: 74 20 20 74 6F 20 20 74 68 65 20 20 6C 69 73 74 t to the list
00C5B0: 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 65 78 74 of.. ext
00C5C0: 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 20 73 65 ernal command se
00C5D0: 72 76 65 72 73 2C 20 61 6E 64 20 6E 6F 74 65 73 rvers, and notes
00C5E0: 20 74 68 65 20 62 61 73 65 20 6F 66 20 74 68 65 the base of the
00C5F0: 20 61 72 65 61 20 77 68 69 63 68 20 74 68 65 20 area which the
00C600: 52 4F 4D 0D 0A 20 20 20 20 20 20 20 68 61 73 20 ROM.. has
00C610: 61 6C 6C 6F 63 61 74 65 64 20 74 6F 20 69 74 73 allocated to its
00C620: 65 6C 66 20 61 74 20 74 68 65 20 74 6F 70 20 6F elf at the top o
00C630: 66 20 6D 65 6D 6F 72 79 20 28 69 66 20 61 6E 79 f memory (if any
00C640: 29 2E 20 53 75 62 73 65 71 75 65 6E 74 20 20 46 ). Subsequent F
00C650: 41 52 0D 0A 20 20 20 20 20 20 20 43 41 4C 4C 73 AR.. CALLs
00C660: 20 74 6F 20 65 6E 74 72 69 65 73 20 69 6E 20 74 to entries in t
00C670: 68 65 20 20 52 4F 4D 20 20 77 69 6C 6C 20 20 61 he ROM will a
00C680: 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 20 73 65 utomatically se
00C690: 74 20 20 74 68 65 20 20 49 59 20 20 69 6E 64 65 t the IY inde
00C6A0: 78 0D 0A 20 20 20 20 20 20 20 72 65 67 69 73 74 x.. regist
00C6B0: 65 72 20 74 6F 20 70 6F 69 6E 74 20 61 74 20 74 er to point at t
00C6C0: 68 65 20 52 4F 4D 27 73 20 75 70 70 65 72 20 6D he ROM's upper m
00C6D0: 65 6D 6F 72 79 20 61 72 65 61 2E 0D 0A 0D 0A 0D emory area......
00C6E0: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
00C6F0: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
00C700: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
00C710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C720: 20 20 20 70 61 67 65 20 31 35 2E 31 38 36 0D 0A page 15.186..
00C730: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
00C740: 20 20 20 53 65 65 20 73 65 63 74 69 6F 6E 20 31 See section 1
00C750: 30 2E 34 20 66 6F 72 20 61 20 66 75 6C 6C 20 64 0.4 for a full d
00C760: 65 73 63 72 69 70 74 69 6F 6E 20 6F 66 20 62 61 escription of ba
00C770: 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 73 2E 0D 0A ckground ROMs...
00C780: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
00C790: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
00C7A0: 0A 0D 0A 20 20 20 20 20 20 20 4B 4C 20 46 49 4E ... KL FIN
00C7B0: 44 20 43 4F 4D 4D 41 4E 44 0D 0A 20 20 20 20 20 D COMMAND..
00C7C0: 20 20 4B 4C 20 4C 4F 47 20 45 58 54 0D 0A 20 20 KL LOG EXT..
00C7D0: 20 20 20 20 20 4B 4C 20 52 4F 4D 20 57 41 4C 4B KL ROM WALK
00C7E0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00C7F0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00C800: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00C810: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00C820: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00C830: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00C840: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
00C850: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
00C860: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
00C870: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C880: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 38 page 15.18
00C890: 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 7..............
00C8A0: 20 20 20 20 20 20 31 35 35 3A 20 4B 4C 20 4C 4F 155: KL LO
00C8B0: 47 20 45 58 54 20 20 20 20 20 20 20 20 20 20 20 G EXT
00C8C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C8D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C8E0: 20 20 20 20 20 20 20 23 42 43 44 31 0D 0A 0D 0A #BCD1....
00C8F0: 0D 0A 20 20 20 20 20 20 20 49 6E 74 72 6F 64 75 .. Introdu
00C900: 63 65 20 61 6E 20 52 53 58 20 74 6F 20 74 68 65 ce an RSX to the
00C910: 20 66 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A 0D 0A firmware.......
00C920: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
00C930: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 53 58 73 20 .... RSXs
00C940: 28 52 65 73 69 64 65 6E 74 20 53 79 73 74 65 6D (Resident System
00C950: 20 45 78 74 65 6E 73 69 6F 6E 73 29 20 61 72 65 Extensions) are
00C960: 20 73 69 6D 69 6C 61 72 20 74 6F 20 62 61 63 6B similar to back
00C970: 67 72 6F 75 6E 64 20 52 4F 4D 73 2C 20 20 62 75 ground ROMs, bu
00C980: 74 0D 0A 20 20 20 20 20 20 20 61 72 65 20 6C 6F t.. are lo
00C990: 61 64 65 64 20 69 6E 74 6F 20 52 41 4D 2E 20 54 aded into RAM. T
00C9A0: 68 69 73 20 72 6F 75 74 69 6E 65 20 6D 75 73 74 his routine must
00C9B0: 20 62 65 20 63 61 6C 6C 65 64 20 74 6F 20 69 6E be called to in
00C9C0: 63 6C 75 64 65 20 74 68 65 20 52 53 58 20 6F 6E clude the RSX on
00C9D0: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 4B 65 72 .. the Ker
00C9E0: 6E 65 6C 27 73 20 6C 69 73 74 20 6F 66 20 65 78 nel's list of ex
00C9F0: 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 20 73 ternal command s
00CA00: 65 72 76 65 72 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 ervers.......
00CA10: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
00CA20: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
00CA30: 20 20 42 43 20 63 6F 6E 74 61 69 6E 73 20 74 68 BC contains th
00CA40: 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 e address of the
00CA50: 20 52 53 58 27 73 20 63 6F 6D 6D 61 6E 64 20 74 RSX's command t
00CA60: 61 62 6C 65 2E 0D 0A 20 20 20 20 20 20 20 48 4C able... HL
00CA70: 20 63 6F 6E 74 61 69 6E 65 64 20 74 68 65 20 61 contained the a
00CA80: 64 64 72 65 73 73 20 6F 66 20 61 20 34 20 62 79 ddress of a 4 by
00CA90: 74 65 20 61 72 65 61 20 6F 66 20 52 41 4D 20 66 te area of RAM f
00CAA0: 6F 72 20 74 68 65 20 4B 65 72 6E 65 6C 27 73 20 or the Kernel's
00CAB0: 75 73 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 use.......
00CAC0: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
00CAD0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 45 :...... DE
00CAE0: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
00CAF0: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
00CB00: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
00CB10: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ...... Not
00CB20: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
00CB30: 42 6F 74 68 20 74 68 65 20 52 53 58 27 73 20 63 Both the RSX's c
00CB40: 6F 6D 6D 61 6E 64 20 74 61 62 6C 65 20 61 6E 64 ommand table and
00CB50: 20 74 68 65 20 4B 65 72 6E 65 6C 27 73 20 73 74 the Kernel's st
00CB60: 6F 72 61 67 65 20 61 72 65 61 20 6D 75 73 74 20 orage area must
00CB70: 6C 69 65 20 69 6E 0D 0A 20 20 20 20 20 20 20 74 lie in.. t
00CB80: 68 65 20 63 65 6E 74 72 61 6C 20 33 32 4B 20 6F he central 32K o
00CB90: 66 20 6D 65 6D 6F 72 79 2C 20 69 2E 65 2E 20 6E f memory, i.e. n
00CBA0: 6F 74 20 75 6E 64 65 72 20 61 20 52 4F 4D 2E 0D ot under a ROM..
00CBB0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
00CBC0: 66 6F 72 6D 61 74 20 6F 66 20 20 63 6F 6D 6D 61 format of comma
00CBD0: 6E 64 20 74 61 62 6C 65 20 69 73 20 64 65 73 63 nd table is desc
00CBE0: 72 69 62 65 64 20 69 6E 20 73 65 63 74 69 6F 6E ribed in section
00CBF0: 20 31 30 2E 32 20 61 6E 64 20 52 53 58 73 20 61 10.2 and RSXs a
00CC00: 72 65 0D 0A 20 20 20 20 20 20 20 64 69 73 63 75 re.. discu
00CC10: 73 73 65 64 20 69 6E 20 73 65 63 74 69 6F 6E 20 ssed in section
00CC20: 31 30 2E 35 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 10.5.........
00CC30: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
00CC40: 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ies:......
00CC50: 20 4B 4C 20 46 49 4E 44 20 43 4F 4D 4D 41 4E 44 KL FIND COMMAND
00CC60: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 49 4E 49 54 .. KL INIT
00CC70: 20 42 41 43 4B 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D BACK...........
00CC80: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00CC90: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
00CCA0: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
00CCB0: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
00CCC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00CCD0: 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 38 38 page 15.188
00CCE0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
00CCF0: 20 20 20 20 20 31 35 36 3A 20 4B 4C 20 46 49 4E 156: KL FIN
00CD00: 44 20 43 4F 4D 4D 41 4E 44 20 20 20 20 20 20 20 D COMMAND
00CD10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00CD20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00CD30: 20 20 20 20 20 20 23 42 43 44 34 0D 0A 0D 0A 0D #BCD4.....
00CD40: 0A 20 20 20 20 20 20 20 53 65 61 72 63 68 20 66 . Search f
00CD50: 6F 72 20 61 6E 20 52 53 58 2C 20 62 61 63 6B 67 or an RSX, backg
00CD60: 72 6F 75 6E 64 20 52 4F 4D 20 20 6F 72 20 20 66 round ROM or f
00CD70: 6F 72 65 67 72 6F 75 6E 64 20 20 52 4F 4D 20 20 oreground ROM
00CD80: 74 6F 20 20 70 72 6F 63 65 73 73 20 20 61 0D 0A to process a..
00CD90: 20 20 20 20 20 20 20 63 6F 6D 6D 61 6E 64 2E 0D command..
00CDA0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
00CDB0: 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C on:.... Al
00CDC0: 6C 20 65 78 70 61 6E 73 69 6F 6E 20 52 4F 4D 73 l expansion ROMs
00CDD0: 20 61 6E 64 20 52 53 58 73 20 68 61 76 65 20 63 and RSXs have c
00CDE0: 6F 6D 6D 61 6E 64 20 74 61 62 6C 65 73 20 6F 66 ommand tables of
00CDF0: 20 74 68 65 20 73 61 6D 65 20 66 6F 72 6D 2E 20 the same form.
00CE00: 54 68 69 73 0D 0A 20 20 20 20 20 20 20 72 6F 75 This.. rou
00CE10: 74 69 6E 65 20 73 65 61 72 63 68 65 73 20 61 6C tine searches al
00CE20: 6C 20 52 53 58 73 20 61 6E 64 20 62 61 63 6B 67 l RSXs and backg
00CE30: 72 6F 75 6E 64 20 52 4F 4D 73 20 6F 6E 20 74 68 round ROMs on th
00CE40: 65 20 4B 65 72 6E 65 6C 27 73 20 6C 69 73 74 20 e Kernel's list
00CE50: 20 6F 66 0D 0A 20 20 20 20 20 20 20 65 78 74 65 of.. exte
00CE60: 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 20 73 65 72 rnal command ser
00CE70: 76 65 72 73 20 6C 6F 6F 6B 69 6E 67 20 66 6F 72 vers looking for
00CE80: 20 61 20 6D 61 74 63 68 20 20 66 6F 72 20 20 74 a match for t
00CE90: 68 65 20 20 67 69 76 65 6E 20 20 63 6F 6D 6D 61 he given comma
00CEA0: 6E 64 0D 0A 20 20 20 20 20 20 20 6E 61 6D 65 2E nd.. name.
00CEB0: 20 49 66 20 74 68 65 20 6E 61 6D 65 20 69 73 20 If the name is
00CEC0: 66 6F 75 6E 64 2C 20 74 68 65 6E 20 74 68 65 20 found, then the
00CED0: 27 66 61 72 20 61 64 64 72 65 73 73 27 20 6F 66 'far address' of
00CEE0: 20 20 74 68 65 20 20 61 73 73 6F 63 69 61 74 65 the associate
00CEF0: 64 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 6E d.. routin
00CF00: 65 20 69 73 20 72 65 74 75 72 6E 65 64 2E 20 49 e is returned. I
00CF10: 66 20 74 68 65 20 63 6F 6D 6D 61 6E 64 20 69 73 f the command is
00CF20: 20 6E 6F 74 20 61 20 62 61 63 6B 67 72 6F 75 6E not a backgroun
00CF30: 64 20 6F 72 20 52 53 58 20 63 6F 6D 6D 61 6E 64 d or RSX command
00CF40: 0D 0A 20 20 20 20 20 20 20 74 68 65 6E 20 61 6C .. then al
00CF50: 6C 20 74 68 65 20 66 6F 72 65 67 72 6F 75 6E 64 l the foreground
00CF60: 20 52 4F 4D 73 20 74 68 61 74 20 63 61 6E 20 62 ROMs that can b
00CF70: 65 20 20 66 6F 75 6E 64 20 20 61 72 65 20 20 73 e found are s
00CF80: 65 61 72 63 68 65 64 20 20 66 6F 72 20 20 61 0D earched for a.
00CF90: 0A 20 20 20 20 20 20 20 66 6F 72 65 67 72 6F 75 . foregrou
00CFA0: 6E 64 20 70 72 6F 67 72 61 6D 20 77 69 74 68 20 nd program with
00CFB0: 74 68 65 20 67 69 76 65 6E 20 6E 61 6D 65 2E 20 the given name.
00CFC0: 49 66 20 20 61 20 20 66 6F 72 65 67 72 6F 75 6E If a foregroun
00CFD0: 64 20 20 70 72 6F 67 72 61 6D 20 20 69 73 0D 0A d program is..
00CFE0: 20 20 20 20 20 20 20 66 6F 75 6E 64 20 74 68 65 found the
00CFF0: 6E 20 74 68 65 20 73 79 73 74 65 6D 20 69 6D 6D n the system imm
00D000: 65 64 69 61 74 65 6C 79 20 65 6E 74 65 72 73 20 ediately enters
00D010: 69 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E it..... En
00D020: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
00D030: 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E ... HL con
00D040: 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 tains the addres
00D050: 73 20 6F 66 20 74 68 65 20 63 6F 6D 6D 61 6E 64 s of the command
00D060: 20 6E 61 6D 65 20 74 6F 20 73 65 61 72 63 68 20 name to search
00D070: 66 6F 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 for..... E
00D080: 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D xit conditions:.
00D090: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 61 6E 20 ... If an
00D0A0: 52 53 58 20 6F 72 20 62 61 63 6B 67 72 6F 75 6E RSX or backgroun
00D0B0: 64 20 52 4F 4D 20 63 6F 6D 6D 61 6E 64 20 77 61 d ROM command wa
00D0C0: 73 20 66 6F 75 6E 64 3A 0D 0A 0D 0A 0D 0A 20 20 s found:......
00D0D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 Ca
00D0E0: 72 72 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 rry true...
00D0F0: 20 20 20 20 20 20 20 20 20 20 20 43 20 63 6F 6E C con
00D100: 74 61 69 6E 73 20 74 68 65 20 52 4F 4D 20 73 65 tains the ROM se
00D110: 6C 65 63 74 20 61 64 64 72 65 73 73 2E 0D 0A 20 lect address...
00D120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 H
00D130: 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 L contains the a
00D140: 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 72 6F ddress of the ro
00D150: 75 74 69 6E 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 utine.......
00D160: 20 20 20 49 66 20 74 68 65 20 63 6F 6D 6D 61 6E If the comman
00D170: 64 20 77 61 73 20 6E 6F 74 20 66 6F 75 6E 64 3A d was not found:
00D180: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ......
00D190: 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 Carry fals
00D1A0: 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 e...
00D1B0: 20 20 20 20 43 20 61 6E 64 20 48 4C 20 63 6F 72 C and HL cor
00D1C0: 72 75 70 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rupt.....
00D1D0: 41 6C 77 61 79 73 0D 0A 0D 0A 0D 0A 20 20 20 20 Always......
00D1E0: 20 20 20 20 20 20 20 20 20 20 20 20 41 2C 20 42 A, B
00D1F0: 20 61 6E 64 20 44 45 20 63 6F 72 72 75 70 74 2E and DE corrupt.
00D200: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
00D210: 0B 00 00 00 02 09 50 E5 0B 00 C1 02 00 00 00 02 ......P.........
00D220: 0B 00 C2 02 00 00 00 02 0B 00 C3 02 00 00 00 02 ................
00D230: 0B 00 C4 02 00 00 00 02 0B 00 C5 02 00 00 00 02 ................
00D240: 0B 00 C6 02 00 00 00 02 0B 00 C7 02 00 00 00 02 ................
00D250: 0B 00 C8 02 00 00 00 02 0B 00 C9 02 00 00 00 02 ................
00D260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D300: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
00D310: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
00D320: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
00D330: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ...... Not
00D340: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
00D350: 54 68 65 20 63 6F 6D 6D 61 6E 64 20 6E 61 6D 65 The command name
00D360: 20 70 61 73 73 65 64 20 6D 75 73 74 20 62 65 20 passed must be
00D370: 69 6E 20 52 41 4D 20 62 75 74 20 6D 61 79 20 6C in RAM but may l
00D380: 69 65 20 75 6E 64 65 72 6E 65 61 74 68 20 20 61 ie underneath a
00D390: 20 20 52 4F 4D 2E 0D 0A 20 20 20 20 20 20 20 54 ROM... T
00D3A0: 68 65 20 6E 61 6D 65 20 6D 61 79 20 62 65 20 61 he name may be a
00D3B0: 6E 79 20 6E 75 6D 62 65 72 20 6F 66 20 63 68 61 ny number of cha
00D3C0: 72 61 63 74 65 72 73 20 6C 6F 6E 67 20 62 75 74 racters long but
00D3D0: 20 6F 6E 6C 79 20 20 74 68 65 20 20 66 69 72 73 only the firs
00D3E0: 74 20 20 31 36 0D 0A 20 20 20 20 20 20 20 63 68 t 16.. ch
00D3F0: 61 72 61 63 74 65 72 73 20 61 72 65 20 73 69 67 aracters are sig
00D400: 6E 69 66 69 63 61 6E 74 2E 20 41 6C 6C 20 20 61 nificant. All a
00D410: 6C 70 68 61 62 65 74 69 63 20 20 63 68 61 72 61 lphabetic chara
00D420: 63 74 65 72 73 20 20 69 6E 20 20 74 68 65 20 20 cters in the
00D430: 6E 61 6D 65 0D 0A 20 20 20 20 20 20 20 73 68 6F name.. sho
00D440: 75 6C 64 20 62 65 20 69 6E 20 75 70 70 65 72 20 uld be in upper
00D450: 63 61 73 65 20 61 6E 64 20 74 68 65 20 6C 61 73 case and the las
00D460: 74 20 63 68 61 72 61 63 74 65 72 20 6F 66 20 74 t character of t
00D470: 68 65 20 6E 61 6D 65 20 73 68 6F 75 6C 64 20 68 he name should h
00D480: 61 76 65 0D 0A 20 20 20 20 20 20 20 62 69 74 20 ave.. bit
00D490: 37 20 73 65 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 7 set.......
00D4A0: 20 20 20 54 68 65 20 52 4F 4D 20 73 65 6C 65 63 The ROM selec
00D4B0: 74 20 61 6E 64 20 72 6F 75 74 69 6E 65 20 61 64 t and routine ad
00D4C0: 64 72 65 73 73 65 73 20 72 65 74 75 72 6E 65 64 dresses returned
00D4D0: 20 61 72 65 20 73 75 69 74 61 62 6C 65 20 66 6F are suitable fo
00D4E0: 72 20 63 61 6C 6C 69 6E 67 0D 0A 20 20 20 20 20 r calling..
00D4F0: 20 20 4B 4C 20 46 41 52 20 50 43 48 4C 2E 0D 0A KL FAR PCHL...
00D500: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
00D510: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
00D520: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
00D530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D540: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 38 page 15.18
00D550: 39 0D 0A 1A 39 0D 0A 1A 20 20 20 20 20 20 20 20 9...9...
00D560: 20 20 20 20 42 69 74 20 33 3A 20 20 20 20 52 65 Bit 3: Re
00D570: 6E 64 65 7A 76 6F 75 73 20 77 69 74 68 20 63 68 ndezvous with ch
00D580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D900: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
00D910: 20 20 20 54 68 65 20 6C 69 73 74 20 6F 66 20 65 The list of e
00D920: 78 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 20 xternal command
00D930: 73 65 72 76 65 72 73 20 69 73 20 67 65 6E 65 72 servers is gener
00D940: 61 74 65 64 20 61 73 20 20 62 61 63 6B 67 72 6F ated as backgro
00D950: 75 6E 64 20 20 52 4F 4D 73 0D 0A 20 20 20 20 20 und ROMs..
00D960: 20 20 61 6E 64 20 52 53 58 73 20 61 72 65 20 69 and RSXs are i
00D970: 6E 69 74 69 61 6C 69 7A 65 64 3A 69 7A 65 64 20 nitialized:ized
00D980: 28 73 65 65 20 4B 4C 20 52 4F 4D 20 57 41 4C 4B (see KL ROM WALK
00D990: 2C 20 4B 4C 20 49 4E 49 54 20 20 42 41 43 4B 20 , KL INIT BACK
00D9A0: 20 61 6E 64 20 20 4B 4C 0D 0A 20 20 20 20 20 20 and KL..
00D9B0: 20 4C 4F 47 20 45 58 54 29 2E 20 54 68 65 20 63 LOG EXT). The c
00D9C0: 6F 6D 6D 61 6E 64 20 74 61 62 6C 65 73 20 61 72 ommand tables ar
00D9D0: 65 20 73 63 61 6E 6E 65 64 20 69 6E 20 74 68 65 e scanned in the
00D9E0: 20 6F 70 70 6F 73 69 74 65 20 6F 72 64 65 72 20 opposite order
00D9F0: 74 6F 20 74 68 61 74 0D 0A 20 20 20 20 20 20 20 to that..
00DA00: 69 6E 20 77 68 69 63 68 20 74 68 65 20 63 6F 6D in which the com
00DA10: 6D 61 6E 64 20 73 65 72 76 65 72 73 20 77 65 72 mand servers wer
00DA20: 65 20 69 6E 74 72 6F 64 75 63 65 64 2E 20 54 68 e introduced. Th
00DA30: 75 73 2C 20 52 53 58 73 20 77 69 6C 6C 20 74 65 us, RSXs will te
00DA40: 6E 64 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 74 nd to.. t
00DA50: 61 6B 65 20 70 72 65 63 65 64 65 6E 63 65 20 6F ake precedence o
00DA60: 76 65 72 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 ver background R
00DA70: 4F 4D 73 2C 20 73 69 6E 63 65 20 20 52 53 58 27 OMs, since RSX'
00DA80: 73 20 20 61 72 65 2C 20 20 69 6E 20 20 67 65 6E s are, in gen
00DA90: 65 72 61 6C 2C 0D 0A 20 20 20 20 20 20 20 69 6E eral,.. in
00DAA0: 69 74 69 61 6C 69 7A 65 64 20 20 61 66 74 65 72 itialized after
00DAB0: 20 20 62 61 63 6B 67 72 6F 75 6E 64 20 20 52 4F background RO
00DAC0: 4D 73 2E 20 20 42 61 63 6B 67 72 6F 75 6E 64 20 Ms. Background
00DAD0: 20 52 4F 4D 73 20 20 61 72 65 20 20 6E 6F 72 6D ROMs are norm
00DAE0: 61 6C 6C 79 0D 0A 20 20 20 20 20 20 20 69 6E 69 ally.. ini
00DAF0: 74 69 61 6C 69 7A 65 64 20 69 6E 20 20 72 65 76 tialized in rev
00DB00: 65 72 73 65 20 20 6F 72 64 65 72 20 20 6F 66 20 erse order of
00DB10: 20 52 4F 4D 20 20 73 65 6C 65 63 74 20 20 61 64 ROM select ad
00DB20: 64 72 65 73 73 65 73 2C 20 20 73 6F 20 20 6C 6F dresses, so lo
00DB30: 77 65 72 0D 0A 20 20 20 20 20 20 20 6E 75 6D 62 wer.. numb
00DB40: 65 72 65 64 20 52 4F 4D 53 20 77 69 6C 6C 20 74 ered ROMS will t
00DB50: 61 6B 65 20 70 72 65 63 65 64 65 6E 63 65 20 6F ake precedence o
00DB60: 76 65 72 20 68 69 67 68 65 72 2E 0D 0A 0D 0A 0D ver higher......
00DB70: 0A 20 20 20 20 20 20 20 53 65 65 20 73 65 63 74 . See sect
00DB80: 69 6F 6E 20 31 30 2E 32 20 66 6F 72 20 61 20 64 ion 10.2 for a d
00DB90: 65 73 63 72 69 70 74 69 6F 6E 20 6F 66 20 20 74 escription of t
00DBA0: 68 65 20 20 66 6F 72 6D 61 74 20 20 6F 66 20 20 he format of
00DBB0: 65 78 70 61 6E 73 69 6F 6E 20 20 52 4F 4D 0D 0A expansion ROM..
00DBC0: 20 20 20 20 20 20 20 63 6F 6D 6D 61 6E 64 20 74 command t
00DBD0: 61 62 6C 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 ables.......
00DBE0: 20 20 20 54 68 65 20 66 69 72 73 74 20 65 6E 74 The first ent
00DBF0: 72 79 20 69 6E 20 61 20 62 61 63 6B 67 72 6F 75 ry in a backgrou
00DC00: 6E 64 20 52 4F 4D 27 73 20 20 63 6F 6D 6D 61 6E nd ROM's comman
00DC10: 64 20 20 6E 61 6D 65 20 20 74 61 62 6C 65 20 20 d name table
00DC20: 28 74 68 65 20 20 6F 6E 65 0D 0A 20 20 20 20 20 (the one..
00DC30: 20 20 61 73 73 6F 63 69 61 74 65 64 20 77 69 74 associated wit
00DC40: 68 20 74 68 65 20 70 6F 77 65 72 2D 75 70 20 65 h the power-up e
00DC50: 6E 74 72 79 29 20 6D 61 79 20 62 65 20 75 73 65 ntry) may be use
00DC60: 64 20 61 73 20 74 68 65 20 52 4F 4D 27 73 20 6E d as the ROM's n
00DC70: 61 6D 65 2E 20 20 4B 4C 0D 0A 20 20 20 20 20 20 ame. KL..
00DC80: 20 46 49 4E 44 20 43 4F 4D 4D 41 4E 44 20 6D 61 FIND COMMAND ma
00DC90: 79 20 62 65 20 75 73 65 64 2C 20 74 68 65 72 65 y be used, there
00DCA0: 66 6F 72 65 2C 20 74 6F 20 66 69 6E 64 20 6F 75 fore, to find ou
00DCB0: 74 20 77 68 65 74 68 65 72 20 61 20 20 70 61 72 t whether a par
00DCC0: 74 69 63 75 6C 61 72 0D 0A 20 20 20 20 20 20 20 ticular..
00DCD0: 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 20 68 background ROM h
00DCE0: 61 73 20 62 65 65 6E 20 69 6E 69 74 69 61 6C 69 as been initiali
00DCF0: 7A 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 zed.......
00DD00: 20 57 68 65 6E 20 73 65 61 72 63 68 69 6E 67 20 When searching
00DD10: 66 6F 72 20 61 20 66 6F 72 65 67 72 6F 75 6E 64 for a foreground
00DD20: 20 70 72 6F 67 72 61 6D 2C 20 52 4F 4D 73 20 61 program, ROMs a
00DD30: 72 65 20 20 69 6E 73 70 65 63 74 65 64 20 20 73 re inspected s
00DD40: 74 61 72 74 69 6E 67 0D 0A 20 20 20 20 20 20 20 tarting..
00DD50: 77 69 74 68 20 52 4F 4D 20 30 20 61 6E 64 20 77 with ROM 0 and w
00DD60: 6F 72 6B 69 6E 67 20 75 70 77 61 72 64 73 2E 20 orking upwards.
00DD70: 20 54 68 65 20 20 73 65 61 72 63 68 20 20 63 65 The search ce
00DD80: 61 73 65 73 20 20 77 68 65 6E 20 20 74 68 65 20 ases when the
00DD90: 20 66 69 72 73 74 0D 0A 20 20 20 20 20 20 20 75 first.. u
00DDA0: 6E 75 73 65 64 20 52 4F 4D 20 61 64 64 72 65 73 nused ROM addres
00DDB0: 73 20 67 72 65 61 74 65 72 20 74 68 61 6E 20 30 s greater than 0
00DDC0: 20 6F 6E 20 56 31 2E 30 20 66 69 72 6D 77 61 72 on V1.0 firmwar
00DDD0: 65 20 61 6E 64 20 67 72 65 61 74 65 72 20 74 68 e and greater th
00DDE0: 61 6E 20 31 35 0D 0A 20 20 20 20 20 20 20 6F 6E an 15.. on
00DDF0: 20 56 31 2E 31 20 66 69 72 6D 77 61 72 65 20 69 V1.1 firmware i
00DE00: 73 20 66 6F 75 6E 64 2E 0D 0A 0D 0A 0D 0A 20 20 s found.......
00DE10: 20 20 20 20 20 54 68 65 20 6F 6E 2D 62 6F 61 72 The on-boar
00DE20: 64 20 42 41 53 49 43 20 6D 61 79 20 62 65 20 65 d BASIC may be e
00DE30: 6E 74 65 72 65 64 20 62 79 20 73 65 61 72 63 68 ntered by search
00DE40: 69 6E 67 20 66 6F 72 20 20 61 6E 64 20 20 69 6E ing for and in
00DE50: 76 6F 6B 69 6E 67 20 20 74 68 65 0D 0A 20 20 20 voking the..
00DE60: 20 20 20 20 63 6F 6D 6D 61 6E 64 20 27 42 41 53 command 'BAS
00DE70: 49 43 27 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 IC'.......
00DE80: 20 49 66 20 20 61 20 20 66 6F 72 65 67 72 6F 75 If a foregrou
00DE90: 6E 64 20 20 52 4F 4D 20 20 63 6F 6D 6D 61 6E 64 nd ROM command
00DEA0: 20 20 69 73 20 20 20 66 6F 75 6E 64 20 20 20 74 is found t
00DEB0: 68 65 20 20 20 52 4F 4D 20 20 20 69 73 20 20 20 he ROM is
00DEC0: 65 6E 74 65 72 65 64 0D 0A 20 20 20 20 20 20 20 entered..
00DED0: 75 6E 63 6F 6E 64 69 74 69 6F 6E 61 6C 6C 79 20 unconditionally
00DEE0: 74 68 69 73 20 72 6F 75 74 69 6E 65 20 6E 65 76 this routine nev
00DEF0: 65 72 20 72 65 74 75 72 6E 73 2E 0D 0A 0D 0A 0D er returns......
00DF00: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
00DF10: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A d entries:......
00DF20: 20 20 20 20 20 20 20 4B 4C 20 49 4E 49 54 20 42 KL INIT B
00DF30: 41 43 4B 0D 0A 20 20 20 20 20 20 20 4B 4C 20 4C ACK.. KL L
00DF40: 4F 47 20 45 58 54 0D 0A 20 20 20 20 20 20 20 4B OG EXT.. K
00DF50: 4C 20 52 4F 4D 20 57 41 4C 4B 0D 0A 20 20 20 20 L ROM WALK..
00DF60: 20 20 20 4D 43 20 53 54 41 52 54 20 50 52 4F 47 MC START PROG
00DF70: 52 41 4D 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D RAM.............
00DF80: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00DF90: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
00DFA0: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
00DFB0: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
00DFC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00DFD0: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
00DFE0: 2E 31 39 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .190............
00DFF0: 0D 0A 20 20 20 20 20 20 20 31 35 37 3A 20 4B 4C .. 157: KL
00E000: 20 4E 45 57 20 46 52 41 4D 45 20 46 4C 59 20 20 NEW FRAME FLY
00E010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E030: 20 20 20 20 20 20 20 20 20 20 23 42 43 44 37 0D #BCD7.
00E040: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E 69 74 ..... Init
00E050: 69 61 6C 69 7A 65 20 61 6E 64 20 70 75 74 20 61 ialize and put a
00E060: 20 62 6C 6F 63 6B 20 6F 6E 74 6F 20 74 68 65 20 block onto the
00E070: 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 6C 69 frame flyback li
00E080: 73 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 st.......
00E090: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
00E0A0: 20 20 20 20 54 68 65 20 4B 65 72 6E 65 6C 20 6D The Kernel m
00E0B0: 61 69 6E 74 61 69 6E 73 20 61 20 6C 69 73 74 20 aintains a list
00E0C0: 6F 66 20 65 76 65 6E 74 73 20 74 6F 20 62 65 20 of events to be
00E0D0: 20 6B 69 63 6B 65 64 20 20 65 61 63 68 20 20 74 kicked each t
00E0E0: 69 6D 65 20 20 66 72 61 6D 65 0D 0A 20 20 20 20 ime frame..
00E0F0: 20 20 20 66 6C 79 62 61 63 6B 20 6F 63 63 75 72 flyback occur
00E100: 73 2E 20 54 68 65 20 72 6F 75 74 69 6E 65 20 69 s. The routine i
00E110: 6E 69 74 69 61 6C 69 7A 65 73 20 61 20 62 6C 6F nitializes a blo
00E120: 63 6B 20 61 6E 64 20 20 61 64 64 73 20 20 69 74 ck and adds it
00E130: 20 20 74 6F 20 20 74 68 65 0D 0A 20 20 20 20 20 to the..
00E140: 20 20 6C 69 73 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 list.......
00E150: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
00E160: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
00E170: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 HL contains th
00E180: 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 e address of the
00E190: 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 62 frame flyback b
00E1A0: 6C 6F 63 6B 2E 0D 0A 20 20 20 20 20 20 20 42 20 lock... B
00E1B0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 65 76 65 contains the eve
00E1C0: 6E 74 20 63 6C 61 73 73 2E 0D 0A 20 20 20 20 20 nt class...
00E1D0: 20 20 43 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 C contains the
00E1E0: 20 52 4F 4D 20 73 65 6C 65 63 74 20 61 64 64 72 ROM select addr
00E1F0: 65 73 73 20 6F 66 20 74 68 65 20 65 76 65 6E 74 ess of the event
00E200: 20 72 6F 75 74 69 6E 65 2E 0D 0A 20 20 20 20 20 routine...
00E210: 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 DE contains th
00E220: 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 e address of the
00E230: 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 2E 0D event routine..
00E240: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
00E250: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
00E260: 0D 0A 20 20 20 20 20 20 20 41 46 2C 20 44 45 20 .. AF, DE
00E270: 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D and HL corrupt..
00E280: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 . All othe
00E290: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
00E2A0: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 erved.......
00E2B0: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 Notes:......
00E2C0: 20 20 20 20 20 20 54 68 65 20 66 72 61 6D 65 20 The frame
00E2D0: 66 6C 79 62 61 63 6B 20 62 6C 6F 63 6B 20 69 73 flyback block is
00E2E0: 20 39 20 62 79 74 65 73 20 6C 6F 6E 67 20 61 6E 9 bytes long an
00E2F0: 64 20 6D 75 73 74 20 6C 69 65 20 20 69 6E 20 20 d must lie in
00E300: 74 68 65 20 20 63 65 6E 74 72 61 6C 0D 0A 20 20 the central..
00E310: 20 20 20 20 20 33 32 4B 20 6F 66 20 52 41 4D 2E 32K of RAM.
00E320: 20 54 68 65 20 6C 61 73 74 20 37 20 62 79 74 65 The last 7 byte
00E330: 73 20 6F 66 20 74 68 65 20 66 72 61 6D 65 20 66 s of the frame f
00E340: 6C 79 62 61 63 6B 20 62 6C 6F 63 6B 20 61 72 65 lyback block are
00E350: 20 20 61 6E 20 20 65 76 65 6E 74 0D 0A 20 20 20 an event..
00E360: 20 20 20 20 62 6C 6F 63 6B 20 77 68 69 63 68 20 block which
00E370: 69 73 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 74 is initialized t
00E380: 6F 20 72 65 66 6C 65 63 74 20 74 68 65 20 70 61 o reflect the pa
00E390: 72 61 6D 65 74 65 72 73 20 70 61 73 73 65 64 20 rameters passed
00E3A0: 20 69 6E 20 20 42 2C 20 20 43 0D 0A 20 20 20 20 in B, C..
00E3B0: 20 20 20 61 6E 64 20 44 45 20 28 73 65 65 20 4B and DE (see K
00E3C0: 4C 20 49 4E 49 54 20 45 56 45 4E 54 29 2E 20 54 L INIT EVENT). T
00E3D0: 68 65 20 65 78 61 63 74 20 6C 61 79 6F 75 74 20 he exact layout
00E3E0: 6F 66 20 61 20 66 72 61 6D 65 20 66 6C 79 62 61 of a frame flyba
00E3F0: 63 6B 20 20 62 6C 6F 63 6B 0D 0A 20 20 20 20 20 ck block..
00E400: 20 20 69 73 20 64 65 73 63 72 69 62 65 64 20 69 is described i
00E410: 6E 20 41 70 70 65 6E 64 69 78 20 58 2E 0D 0A 0D n Appendix X....
00E420: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 72 ... The fr
00E430: 61 6D 65 20 66 6C 79 62 61 63 6B 20 62 6C 6F 63 ame flyback bloc
00E440: 6B 20 69 73 20 61 70 70 65 6E 64 65 64 20 74 6F k is appended to
00E450: 20 74 68 65 20 66 72 61 6D 65 20 66 6C 79 62 61 the frame flyba
00E460: 63 6B 20 6C 69 73 74 20 69 66 20 69 74 20 69 73 ck list if it is
00E470: 0D 0A 20 20 20 20 20 20 20 6E 6F 74 20 61 6C 72 .. not alr
00E480: 65 61 64 79 20 6F 6E 20 69 74 2E 0D 0A 0D 0A 0D eady on it......
00E490: 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 . This rou
00E4A0: 74 69 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E 74 tine enables int
00E4B0: 65 72 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A errupts.........
00E4C0: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
00E4D0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
00E4E0: 20 20 20 20 4B 4C 20 41 44 44 20 46 52 41 4D 45 KL ADD FRAME
00E4F0: 20 46 4C 59 0D 0A 20 20 20 20 20 20 20 4B 4C 20 FLY.. KL
00E500: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
00E510: 0C 00 00 00 02 09 50 E5 0C 00 C1 02 00 00 00 02 ......P.........
00E520: 0C 00 C2 02 00 00 00 02 0C 00 C3 02 00 00 00 02 ................
00E530: 0C 00 C4 02 00 00 00 02 0C 00 C5 02 00 00 00 02 ................
00E540: 0C 00 C6 02 00 00 00 02 0C 00 C7 02 00 00 00 02 ................
00E550: 0C 00 C8 02 00 00 00 02 0C 00 C9 02 00 00 00 02 ................
00E560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E600: 44 45 4C 20 46 52 41 4D 45 20 46 4C 59 0D 0A 20 DEL FRAME FLY..
00E610: 20 20 20 20 20 20 4B 4C 20 49 4E 49 54 20 45 56 KL INIT EV
00E620: 45 4E 54 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ENT............
00E630: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
00E640: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
00E650: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
00E660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E670: 20 70 61 67 65 20 31 35 2E 31 39 31 0D 0A 0D 0A page 15.191....
00E680: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
00E690: 20 31 35 38 3A 20 4B 4C 20 41 44 44 20 46 52 41 158: KL ADD FRA
00E6A0: 4D 45 20 46 4C 59 20 20 20 20 20 20 20 20 20 20 ME FLY
00E6B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E6C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E6D0: 20 20 23 42 43 44 41 0D 0A 0D 0A 0D 0A 20 20 20 #BCDA......
00E6E0: 20 20 20 20 50 75 74 20 61 20 62 6C 6F 63 6B 20 Put a block
00E6F0: 6F 6E 74 6F 20 74 68 65 20 66 72 61 6D 65 20 66 onto the frame f
00E700: 6C 79 62 61 63 6B 20 6C 69 73 74 2E 0D 0A 0D 0A lyback list.....
00E710: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
00E720: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
00E730: 20 4B 65 72 6E 65 6C 20 6D 61 69 6E 74 61 69 6E Kernel maintain
00E740: 73 20 61 20 6C 69 73 74 20 6F 66 20 65 76 65 6E s a list of even
00E750: 74 73 20 74 6F 20 62 65 20 20 6B 69 63 6B 65 64 ts to be kicked
00E760: 20 20 65 61 63 68 20 20 74 69 6D 65 20 20 66 72 each time fr
00E770: 61 6D 65 0D 0A 20 20 20 20 20 20 20 66 6C 79 62 ame.. flyb
00E780: 61 63 6B 20 6F 63 63 75 72 73 2E 20 54 68 69 73 ack occurs. This
00E790: 20 72 6F 75 74 69 6E 65 20 61 64 64 73 20 61 20 routine adds a
00E7A0: 62 6C 6F 63 6B 20 74 6F 20 74 68 65 20 6C 69 73 block to the lis
00E7B0: 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 t....... E
00E7C0: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
00E7D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 ...... HL
00E7E0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 contains the add
00E7F0: 72 65 73 73 20 6F 66 20 74 68 65 20 66 72 61 6D ress of the fram
00E800: 65 20 66 6C 79 62 61 63 6B 20 62 6C 6F 63 6B 2E e flyback block.
00E810: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 ...... Exi
00E820: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
00E830: 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C 20 44 45 ... AF, DE
00E840: 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E and HL corrupt.
00E850: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
00E860: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
00E870: 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 served.......
00E880: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A Notes:......
00E890: 20 20 20 20 20 20 20 54 68 65 20 66 72 61 6D 65 The frame
00E8A0: 20 66 6C 79 62 61 63 6B 20 62 6C 6F 63 6B 20 69 flyback block i
00E8B0: 73 20 39 20 62 79 74 65 73 20 6C 6F 6E 67 20 61 s 9 bytes long a
00E8C0: 6E 64 20 69 74 20 6D 75 73 74 20 6C 69 65 20 69 nd it must lie i
00E8D0: 6E 20 74 68 65 20 63 65 6E 74 72 61 6C 0D 0A 20 n the central..
00E8E0: 20 20 20 20 20 20 33 32 4B 20 6F 66 20 52 41 4D 32K of RAM
00E8F0: 2E 20 54 68 65 20 6C 61 73 74 20 37 20 62 79 74 . The last 7 byt
00E900: 65 73 20 6F 66 20 74 68 65 20 66 72 61 6D 65 20 es of the frame
00E910: 66 6C 79 62 61 63 6B 20 62 6C 6F 63 6B 20 61 72 flyback block ar
00E920: 65 20 20 61 6E 20 20 65 76 65 6E 74 0D 0A 20 20 e an event..
00E930: 20 20 20 20 20 62 6C 6F 63 6B 20 20 77 68 69 63 block whic
00E940: 68 20 20 6D 75 73 74 20 20 62 65 20 20 69 6E 69 h must be ini
00E950: 74 69 61 6C 69 7A 65 64 20 20 73 65 70 61 72 61 tialized separa
00E960: 74 65 6C 79 20 20 62 65 66 6F 72 65 20 20 63 61 tely before ca
00E970: 6C 6C 69 6E 67 20 20 74 68 69 73 0D 0A 20 20 20 lling this..
00E980: 20 20 20 20 72 6F 75 74 69 6E 65 2E 20 54 68 65 routine. The
00E990: 20 65 78 61 63 74 20 6C 61 79 6F 75 74 20 6F 66 exact layout of
00E9A0: 20 61 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B a frame flyback
00E9B0: 20 20 62 6C 6F 63 6B 20 20 69 73 20 20 64 65 73 block is des
00E9C0: 63 72 69 62 65 64 20 20 69 6E 0D 0A 20 20 20 20 cribed in..
00E9D0: 20 20 20 41 70 70 65 6E 64 69 78 20 58 2E 0D 0A Appendix X...
00E9E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 62 .... The b
00E9F0: 6C 6F 63 6B 20 69 73 20 61 70 70 65 6E 64 65 64 lock is appended
00EA00: 20 74 6F 20 74 68 65 20 66 72 61 6D 65 20 66 6C to the frame fl
00EA10: 79 62 61 63 6B 20 6C 69 73 74 20 69 66 20 69 74 yback list if it
00EA20: 20 69 73 20 20 6E 6F 74 20 20 61 6C 72 65 61 64 is not alread
00EA30: 79 0D 0A 20 20 20 20 20 20 20 6F 6E 20 69 74 2E y.. on it.
00EA40: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
00EA50: 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 73 routine enables
00EA60: 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D 0A interrupts.....
00EA70: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
00EA80: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D ed entries:.....
00EA90: 0A 20 20 20 20 20 20 20 4B 4C 20 44 45 4C 20 46 . KL DEL F
00EAA0: 52 41 4D 45 20 46 4C 59 0D 0A 20 20 20 20 20 20 RAME FLY..
00EAB0: 20 4B 4C 20 49 4E 49 54 20 45 56 45 4E 54 0D 0A KL INIT EVENT..
00EAC0: 20 20 20 20 20 20 20 4B 4C 20 4E 45 57 20 46 52 KL NEW FR
00EAD0: 41 4D 45 20 46 4C 59 0D 0A 0D 0A 0D 0A 0D 0A 0D AME FLY.........
00EAE0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
00EAF0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
00EB00: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
00EB10: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
00EB20: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
00EB30: 65 20 31 35 2E 31 39 32 0D 0A 0D 0A 0D 0A 0D 0A e 15.192........
00EB40: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 35 39 ...... 159
00EB50: 3A 20 4B 4C 20 44 45 4C 20 46 52 41 4D 45 20 46 : KL DEL FRAME F
00EB60: 4C 59 20 20 20 20 20 20 20 20 20 20 20 20 20 20 LY
00EB70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00EB80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
00EB90: 43 44 44 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 CDD......
00EBA0: 52 65 6D 6F 76 65 20 61 20 62 6C 6F 63 6B 20 66 Remove a block f
00EBB0: 72 6F 6D 20 74 68 65 20 66 72 61 6D 65 20 66 6C rom the frame fl
00EBC0: 79 62 61 63 6B 20 6C 69 73 74 2E 0D 0A 0D 0A 0D yback list......
00EBD0: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
00EBE0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
00EBF0: 4B 65 72 6E 65 6C 20 6D 61 69 6E 74 61 69 6E 73 Kernel maintains
00EC00: 20 61 20 6C 69 73 74 20 6F 66 20 65 76 65 6E 74 a list of event
00EC10: 73 20 74 6F 20 62 65 20 20 6B 69 63 6B 65 64 20 s to be kicked
00EC20: 20 65 61 63 68 20 20 74 69 6D 65 20 20 66 72 61 each time fra
00EC30: 6D 65 0D 0A 20 20 20 20 20 20 20 66 6C 79 62 61 me.. flyba
00EC40: 63 6B 20 6F 63 63 75 72 73 2E 20 54 68 69 73 20 ck occurs. This
00EC50: 72 6F 75 74 69 6E 65 20 72 65 6D 6F 76 65 73 20 routine removes
00EC60: 61 20 62 6C 6F 63 6B 20 66 72 6F 6D 20 74 68 65 a block from the
00EC70: 20 6C 69 73 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 list.......
00EC80: 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 Entry conditi
00EC90: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
00ECA0: 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 HL contains the
00ECB0: 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 address of the
00ECC0: 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 62 6C frame flyback bl
00ECD0: 6F 63 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ock.......
00ECE0: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
00ECF0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
00ED00: 2C 20 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 , DE and HL corr
00ED10: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C upt... All
00ED20: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
00ED30: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
00ED40: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
00ED50: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 .... This
00ED60: 72 6F 75 74 69 6E 65 20 64 6F 65 73 20 6E 6F 74 routine does not
00ED70: 68 69 6E 67 20 69 66 20 74 68 65 20 62 6C 6F 63 hing if the bloc
00ED80: 6B 20 69 73 20 6E 6F 74 20 6F 6E 20 74 68 65 20 k is not on the
00ED90: 6C 69 73 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 list.......
00EDA0: 20 20 52 65 6D 6F 76 69 6E 67 20 61 20 62 6C 6F Removing a blo
00EDB0: 63 6B 20 66 72 6F 6D 20 74 68 65 20 6C 69 73 74 ck from the list
00EDC0: 20 6F 6E 6C 79 20 70 72 65 76 65 6E 74 73 20 74 only prevents t
00EDD0: 68 65 20 20 65 76 65 6E 74 20 20 62 65 69 6E 67 he event being
00EDE0: 20 20 6B 69 63 6B 65 64 0D 0A 20 20 20 20 20 20 kicked..
00EDF0: 20 61 67 61 69 6E 2E 20 49 74 20 64 6F 65 73 20 again. It does
00EE00: 6E 6F 74 20 61 66 66 65 63 74 20 61 6E 79 20 6F not affect any o
00EE10: 75 74 73 74 61 6E 64 69 6E 67 20 66 72 61 6D 65 utstanding frame
00EE20: 20 66 6C 79 62 61 63 6B 20 65 76 65 6E 74 73 2E flyback events.
00EE30: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 ...... Thi
00EE40: 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 s routine enable
00EE50: 73 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D s interrupts....
00EE60: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
00EE70: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
00EE80: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 41 44 44 20 .. KL ADD
00EE90: 46 52 41 4D 45 20 46 4C 59 0D 0A 20 20 20 20 20 FRAME FLY..
00EEA0: 20 20 4B 4C 20 4E 45 57 20 46 52 41 4D 45 20 46 KL NEW FRAME F
00EEB0: 4C 59 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A LY..............
00EEC0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00EED0: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
00EEE0: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
00EEF0: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
00EF00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00EF10: 20 20 70 61 67 65 20 31 35 2E 31 39 33 0D 0A 0D page 15.193...
00EF20: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
00EF30: 20 20 31 36 30 3A 20 4B 4C 20 4E 45 57 20 46 41 160: KL NEW FA
00EF40: 53 54 20 54 49 43 4B 45 52 20 20 20 20 20 20 20 ST TICKER
00EF50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00EF60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00EF70: 20 20 20 23 42 43 45 30 0D 0A 0D 0A 0D 0A 20 20 #BCE0......
00EF80: 20 20 20 20 20 49 6E 69 74 69 61 6C 69 7A 65 20 Initialize
00EF90: 61 6E 64 20 70 75 74 20 61 20 62 6C 6F 63 6B 20 and put a block
00EFA0: 6F 6E 74 6F 20 74 68 65 20 66 61 73 74 20 74 69 onto the fast ti
00EFB0: 63 6B 65 72 20 6C 69 73 74 2E 0D 0A 0D 0A 0D 0A cker list.......
00EFC0: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
00EFD0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 4B .... The K
00EFE0: 65 72 6E 65 6C 20 6D 61 69 6E 74 61 69 6E 73 20 ernel maintains
00EFF0: 61 20 6C 69 73 74 20 6F 66 20 65 76 65 6E 74 73 a list of events
00F000: 20 20 74 6F 20 20 62 65 20 20 6B 69 63 6B 65 64 to be kicked
00F010: 20 20 65 61 63 68 20 20 74 69 6D 65 20 20 74 68 each time th
00F020: 65 0D 0A 20 20 20 20 20 20 20 31 2F 33 30 30 74 e.. 1/300t
00F030: 68 20 6F 66 20 61 20 73 65 63 6F 6E 64 20 74 69 h of a second ti
00F040: 6D 65 72 20 69 6E 74 65 72 72 75 70 74 20 6F 63 mer interrupt oc
00F050: 63 75 72 73 2E 20 54 68 69 73 20 69 73 20 6B 6E curs. This is kn
00F060: 6F 77 6E 20 61 73 20 74 68 65 20 20 66 61 73 74 own as the fast
00F070: 0D 0A 20 20 20 20 20 20 20 74 69 63 6B 65 72 20 .. ticker
00F080: 6C 69 73 74 2E 20 54 68 69 73 20 72 6F 75 74 69 list. This routi
00F090: 6E 65 20 69 6E 69 74 69 61 6C 69 7A 65 73 20 61 ne initializes a
00F0A0: 20 62 6C 6F 63 6B 20 61 6E 64 20 61 64 64 73 20 block and adds
00F0B0: 69 74 20 74 6F 20 74 68 65 20 6C 69 73 74 2E 0D it to the list..
00F0C0: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
00F0D0: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
00F0E0: 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E HL contain
00F0F0: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 s the address of
00F100: 20 74 68 65 20 66 61 73 74 20 74 69 63 6B 65 72 the fast ticker
00F110: 20 62 6C 6F 63 6B 2E 0D 0A 20 20 20 20 20 20 20 block...
00F120: 42 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 65 B contains the e
00F130: 76 65 6E 74 20 63 6C 61 73 73 2E 0D 0A 20 20 20 vent class...
00F140: 20 20 20 20 43 20 63 6F 6E 74 61 69 6E 73 20 74 C contains t
00F150: 68 65 20 52 4F 4D 20 73 65 6C 65 63 74 20 61 64 he ROM select ad
00F160: 64 72 65 73 73 20 6F 66 20 74 68 65 20 65 76 65 dress of the eve
00F170: 6E 74 20 72 6F 75 74 69 6E 65 2E 0D 0A 20 20 20 nt routine...
00F180: 20 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 DE contains
00F190: 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 the address of t
00F1A0: 68 65 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 he event routine
00F1B0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
00F1C0: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
00F1D0: 20 20 20 20 20 20 20 41 46 2C 20 44 45 20 61 6E AF, DE an
00F1E0: 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 d HL corrupt...
00F1F0: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
00F200: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
00F210: 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E ved..... N
00F220: 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 otes:......
00F230: 20 20 54 68 65 20 66 61 73 74 20 74 69 63 6B 65 The fast ticke
00F240: 72 20 62 6C 6F 63 6B 20 69 73 20 39 20 62 79 74 r block is 9 byt
00F250: 65 73 20 6C 6F 6E 67 20 61 6E 64 20 6D 75 73 74 es long and must
00F260: 20 6C 69 65 20 69 6E 20 74 68 65 20 63 65 6E 74 lie in the cent
00F270: 72 61 6C 20 20 33 32 4B 0D 0A 20 20 20 20 20 20 ral 32K..
00F280: 20 6F 66 20 52 41 4D 2E 20 54 68 65 20 6C 61 73 of RAM. The las
00F290: 74 20 37 20 62 79 74 65 73 20 6F 66 20 74 68 65 t 7 bytes of the
00F2A0: 20 66 61 73 74 20 74 69 63 6B 65 72 20 62 6C 6F fast ticker blo
00F2B0: 63 6B 20 61 72 65 20 61 6E 20 20 65 76 65 6E 74 ck are an event
00F2C0: 20 20 62 6C 6F 63 6B 0D 0A 20 20 20 20 20 20 20 block..
00F2D0: 77 68 69 63 68 20 6D 75 73 74 20 62 65 20 69 6E which must be in
00F2E0: 69 74 69 61 6C 69 7A 65 64 20 74 6F 20 72 65 66 itialized to ref
00F2F0: 6C 65 63 74 20 74 68 65 20 70 61 72 61 6D 65 74 lect the paramet
00F300: 65 72 73 20 70 61 73 73 65 64 20 69 6E 20 42 2C ers passed in B,
00F310: 20 43 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 44 C and.. D
00F320: 45 20 28 73 65 65 20 4B 4C 20 49 4E 49 54 20 45 E (see KL INIT E
00F330: 56 45 4E 54 29 2E 20 54 68 65 20 65 78 61 63 74 VENT). The exact
00F340: 20 6C 61 79 6F 75 74 20 6F 66 20 61 20 20 66 61 layout of a fa
00F350: 73 74 20 20 74 69 63 6B 65 72 20 20 62 6C 6F 63 st ticker bloc
00F360: 6B 20 20 69 73 0D 0A 20 20 20 20 20 20 20 64 65 k is.. de
00F370: 73 63 72 69 62 65 64 20 69 6E 20 41 70 70 65 6E scribed in Appen
00F380: 64 69 78 20 58 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 dix X.......
00F390: 20 20 20 54 68 65 20 66 61 73 74 20 74 69 63 6B The fast tick
00F3A0: 65 72 20 62 6C 6F 63 6B 20 69 73 20 61 70 70 65 er block is appe
00F3B0: 6E 64 65 64 20 74 6F 20 74 68 65 20 66 61 73 74 nded to the fast
00F3C0: 20 74 69 63 6B 65 72 20 6C 69 73 74 20 69 66 20 ticker list if
00F3D0: 69 74 20 69 73 20 6E 6F 74 0D 0A 20 20 20 20 20 it is not..
00F3E0: 20 20 61 6C 72 65 61 64 79 20 6F 6E 20 69 74 2E already on it.
00F3F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
00F400: 20 66 61 73 74 20 74 69 63 6B 65 72 20 66 61 63 fast ticker fac
00F410: 69 6C 69 74 79 20 69 73 20 6E 6F 74 20 69 6E 74 ility is not int
00F420: 65 6E 64 65 64 20 66 6F 72 20 67 65 6E 65 72 61 ended for genera
00F430: 6C 20 75 73 65 2E 20 48 6F 77 65 76 65 72 2C 20 l use. However,
00F440: 20 69 74 0D 0A 20 20 20 20 20 20 20 64 6F 65 73 it.. does
00F450: 20 61 6C 6C 6F 77 20 72 65 6C 61 74 69 76 65 6C allow relativel
00F460: 79 20 20 73 68 6F 72 74 20 20 74 69 6D 65 73 20 y short times
00F470: 20 74 6F 20 20 62 65 20 20 6D 65 61 73 75 72 65 to be measure
00F480: 64 20 20 67 69 76 69 6E 67 20 20 67 72 65 61 74 d giving great
00F490: 65 72 0D 0A 20 20 20 20 20 20 20 72 65 73 6F 6C er.. resol
00F4A0: 75 74 69 6F 6E 20 74 68 61 6E 20 74 68 65 20 67 ution than the g
00F4B0: 65 6E 65 72 61 6C 20 74 69 63 6B 65 72 20 66 61 eneral ticker fa
00F4C0: 63 69 6C 69 74 69 65 73 2E 0D 0A 0D 0A 0D 0A 20 cilities.......
00F4D0: 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 This routi
00F4E0: 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E 74 65 72 ne enables inter
00F4F0: 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 rupts.........
00F500: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
00F510: 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ries:......
00F520: 20 20 4B 4C 20 41 44 44 20 46 41 53 54 20 54 49 KL ADD FAST TI
00F530: 43 4B 45 52 0D 0A 20 20 20 20 20 20 20 4B 4C 20 CKER.. KL
00F540: 41 44 44 20 54 49 43 4B 45 52 0D 0A 20 20 20 20 ADD TICKER..
00F550: 20 20 20 4B 4C 20 44 45 4C 20 46 41 53 54 20 54 KL DEL FAST T
00F560: 49 43 4B 45 52 0D 0A 20 20 20 20 20 20 20 4B 4C ICKER.. KL
00F570: 20 49 4E 49 54 20 45 56 45 4E 54 0D 0A 20 20 20 INIT EVENT..
00F580: 20 20 20 20 4B 4C 20 54 49 4D 45 20 50 4C 45 41 KL TIME PLEA
00F590: 53 45 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 SE........
00F5A0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
00F5B0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
00F5C0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
00F5D0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
00F5E0: 20 31 35 2E 31 39 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.194.........
00F5F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 36 31 3A ..... 161:
00F600: 20 4B 4C 20 41 44 44 20 46 41 53 54 20 54 49 43 KL ADD FAST TIC
00F610: 4B 45 52 20 20 20 20 20 20 20 20 20 20 20 20 20 KER
00F620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00F630: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 #BC
00F640: 45 33 0D 0A 0D 0A 20 20 20 20 20 20 20 50 75 74 E3.... Put
00F650: 20 61 20 62 6C 6F 63 6B 20 6F 6E 74 6F 20 74 68 a block onto th
00F660: 65 20 66 61 73 74 20 74 69 63 6B 65 72 20 6C 69 e fast ticker li
00F670: 73 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 st..... Ac
00F680: 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tion:......
00F690: 20 20 54 68 65 20 4B 65 72 6E 65 6C 20 6D 61 69 The Kernel mai
00F6A0: 6E 74 61 69 6E 73 20 61 20 6C 69 73 74 20 6F 66 ntains a list of
00F6B0: 20 65 76 65 6E 74 73 20 20 74 6F 20 20 62 65 20 events to be
00F6C0: 20 6B 69 63 6B 65 64 20 20 65 61 63 68 20 20 74 kicked each t
00F6D0: 69 6D 65 20 20 74 68 65 0D 0A 20 20 20 20 20 20 ime the..
00F6E0: 20 31 2F 33 30 30 74 68 20 6F 66 20 61 20 73 65 1/300th of a se
00F6F0: 63 6F 6E 64 20 74 69 6D 65 72 20 69 6E 74 65 72 cond timer inter
00F700: 72 75 70 74 20 6F 63 63 75 72 73 2E 20 54 68 69 rupt occurs. Thi
00F710: 73 20 69 73 20 6B 6E 6F 77 6E 20 61 73 20 74 68 s is known as th
00F720: 65 20 20 66 61 73 74 0D 0A 20 20 20 20 20 20 20 e fast..
00F730: 74 69 63 6B 65 72 20 6C 69 73 74 2E 20 54 68 69 ticker list. Thi
00F740: 73 20 72 6F 75 74 69 6E 65 20 61 64 64 73 20 61 s routine adds a
00F750: 20 62 6C 6F 63 6B 20 74 6F 20 74 68 65 20 6C 69 block to the li
00F760: 73 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 st.......
00F770: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
00F780: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C :...... HL
00F790: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 contains the ad
00F7A0: 64 72 65 73 73 20 6F 66 20 74 68 65 20 66 61 73 dress of the fas
00F7B0: 74 20 74 69 63 6B 65 72 20 62 6C 6F 63 6B 2E 0D t ticker block..
00F7C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
00F7D0: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
00F7E0: 0D 0A 20 20 20 20 20 20 20 41 46 2C 20 44 45 20 .. AF, DE
00F7F0: 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D and HL corrupt..
00F800: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
00F810: 0D 00 00 00 02 09 50 E5 0D 00 C1 02 00 00 00 02 ......P.........
00F820: 0D 00 C2 02 00 00 00 02 0D 00 C3 02 00 00 00 02 ................
00F830: 0D 00 C4 02 00 00 00 02 0D 00 C5 02 00 00 00 02 ................
00F840: 0D 00 C6 02 00 00 00 02 0D 00 C7 02 00 00 00 02 ................
00F850: 0D 00 C8 02 00 00 00 02 0D 00 C9 02 00 00 00 02 ................
00F860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F900: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 . All othe
00F910: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
00F920: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 erved.......
00F930: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 Notes:......
00F940: 20 20 20 20 20 20 54 68 65 20 66 61 73 74 20 74 The fast t
00F950: 69 63 6B 65 72 20 62 6C 6F 63 6B 20 69 73 20 39 icker block is 9
00F960: 20 62 79 74 65 73 20 6C 6F 6E 67 20 61 6E 64 20 bytes long and
00F970: 6D 75 73 74 20 6C 69 65 20 69 6E 20 74 68 65 20 must lie in the
00F980: 63 65 6E 74 72 61 6C 20 20 33 32 4B 0D 0A 20 20 central 32K..
00F990: 20 20 20 20 20 6F 66 20 52 41 4D 2E 20 54 68 65 of RAM. The
00F9A0: 20 6C 61 73 74 20 37 20 62 79 74 65 73 20 6F 66 last 7 bytes of
00F9B0: 20 74 68 65 20 66 61 73 74 20 74 69 63 6B 65 72 the fast ticker
00F9C0: 20 62 6C 6F 63 6B 20 61 72 65 20 61 6E 20 20 65 block are an e
00F9D0: 76 65 6E 74 20 20 62 6C 6F 63 6B 0D 0A 20 20 20 vent block..
00F9E0: 20 20 20 20 77 68 69 63 68 20 6D 75 73 74 20 62 which must b
00F9F0: 65 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 20 62 e initialized b
00FA00: 65 66 6F 72 65 20 20 63 61 6C 6C 69 6E 67 20 20 efore calling
00FA10: 74 68 69 73 20 20 72 6F 75 74 69 6E 65 2E 20 20 this routine.
00FA20: 54 68 65 20 20 65 78 61 63 74 0D 0A 20 20 20 20 The exact..
00FA30: 20 20 20 6C 61 79 6F 75 74 20 6F 66 20 61 20 66 layout of a f
00FA40: 61 73 74 20 74 69 63 6B 65 72 20 62 6C 6F 63 6B ast ticker block
00FA50: 20 69 73 20 64 65 73 63 72 69 62 65 64 20 69 6E is described in
00FA60: 20 41 70 70 65 6E 64 69 78 20 58 2E 0D 0A 0D 0A Appendix X.....
00FA70: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 61 73 .. The fas
00FA80: 74 20 74 69 63 6B 65 72 20 62 6C 6F 63 6B 20 69 t ticker block i
00FA90: 73 20 61 70 70 65 6E 64 65 64 20 74 6F 20 74 68 s appended to th
00FAA0: 65 20 66 61 73 74 20 74 69 63 6B 65 72 20 6C 69 e fast ticker li
00FAB0: 73 74 20 69 66 20 69 74 20 69 73 20 6E 6F 74 0D st if it is not.
00FAC0: 0A 20 20 20 20 20 20 20 61 6C 72 65 61 64 79 20 . already
00FAD0: 6F 6E 20 69 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 on it.......
00FAE0: 20 20 20 54 68 65 20 66 61 73 74 20 74 69 63 6B The fast tick
00FAF0: 65 72 20 66 61 63 69 6C 69 74 79 20 69 73 20 6E er facility is n
00FB00: 6F 74 20 69 6E 74 65 6E 64 65 64 20 66 6F 72 20 ot intended for
00FB10: 67 65 6E 65 72 61 6C 20 75 73 65 2E 20 48 6F 77 general use. How
00FB20: 65 76 65 72 2C 20 20 69 74 0D 0A 20 20 20 20 20 ever, it..
00FB30: 20 20 64 6F 65 73 20 61 6C 6C 6F 77 20 72 65 6C does allow rel
00FB40: 61 74 69 76 65 6C 79 20 20 73 68 6F 72 74 20 20 atively short
00FB50: 74 69 6D 65 73 20 20 74 6F 20 20 62 65 20 20 6D times to be m
00FB60: 65 61 73 75 72 65 64 20 20 67 69 76 69 6E 67 20 easured giving
00FB70: 20 67 72 65 61 74 65 72 0D 0A 20 20 20 20 20 20 greater..
00FB80: 20 72 65 73 6F 6C 75 74 69 6F 6E 20 74 68 61 6E resolution than
00FB90: 20 74 68 65 20 67 65 6E 65 72 61 6C 20 74 69 63 the general tic
00FBA0: 6B 65 72 20 66 61 63 69 6C 69 74 69 65 73 2E 0D ker facilities..
00FBB0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
00FBC0: 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 73 routine enables
00FBD0: 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D 0A interrupts.....
00FBE0: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
00FBF0: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D ed entries:.....
00FC00: 0A 20 20 20 20 20 20 20 4B 4C 20 41 44 44 20 54 . KL ADD T
00FC10: 49 43 4B 45 52 0D 0A 20 20 20 20 20 20 20 4B 4C ICKER.. KL
00FC20: 20 44 45 4C 20 46 41 53 54 20 54 49 43 4B 45 52 DEL FAST TICKER
00FC30: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 49 4E 49 54 .. KL INIT
00FC40: 20 45 56 45 4E 54 0D 0A 20 20 20 20 20 20 20 4B EVENT.. K
00FC50: 4C 20 4E 45 57 20 46 41 53 54 20 54 49 43 4B 45 L NEW FAST TICKE
00FC60: 52 0D 0A 20 20 20 20 20 20 20 4B 4C 20 54 49 4D R.. KL TIM
00FC70: 45 20 50 4C 45 41 53 45 0D 0A 0D 0A 0D 0A 0D 0A E PLEASE........
00FC80: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
00FC90: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
00FCA0: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
00FCB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00FCC0: 20 20 20 20 70 61 67 65 20 31 35 2E 31 39 35 0D page 15.195.
00FCD0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
00FCE0: 20 20 20 20 31 36 32 3A 20 4B 4C 20 44 45 4C 20 162: KL DEL
00FCF0: 46 41 53 54 20 54 49 43 4B 45 52 20 20 20 20 20 FAST TICKER
00FD00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00FD10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00FD20: 20 20 20 20 20 23 42 43 45 36 0D 0A 0D 0A 0D 0A #BCE6......
00FD30: 20 20 20 20 20 20 20 52 65 6D 6F 76 65 20 61 20 Remove a
00FD40: 62 6C 6F 63 6B 20 66 72 6F 6D 20 74 68 65 20 66 block from the f
00FD50: 61 73 74 20 74 69 63 6B 65 72 20 6C 69 73 74 2E ast ticker list.
00FD60: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 ...... Act
00FD70: 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion:......
00FD80: 20 54 68 65 20 4B 65 72 6E 65 6C 20 6D 61 69 6E The Kernel main
00FD90: 74 61 69 6E 73 20 61 20 6C 69 73 74 20 6F 66 20 tains a list of
00FDA0: 65 76 65 6E 74 73 20 20 74 6F 20 20 62 65 20 20 events to be
00FDB0: 6B 69 63 6B 65 64 20 20 65 61 63 68 20 20 74 69 kicked each ti
00FDC0: 6D 65 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 me the..
00FDD0: 31 2F 33 30 30 74 68 20 6F 66 20 61 20 73 65 63 1/300th of a sec
00FDE0: 6F 6E 64 20 74 69 6D 65 72 20 69 6E 74 65 72 72 ond timer interr
00FDF0: 75 70 74 20 6F 63 63 75 72 73 2E 20 54 68 69 73 upt occurs. This
00FE00: 20 69 73 20 6B 6E 6F 77 6E 20 61 73 20 74 68 65 is known as the
00FE10: 20 20 66 61 73 74 0D 0A 20 20 20 20 20 20 20 74 fast.. t
00FE20: 69 63 6B 65 72 20 6C 69 73 74 2E 20 54 68 69 73 icker list. This
00FE30: 20 72 6F 75 74 69 6E 65 20 72 65 6D 6F 76 65 73 routine removes
00FE40: 20 61 20 62 6C 6F 63 6B 20 66 72 6F 6D 20 74 68 a block from th
00FE50: 65 20 6C 69 73 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 e list.......
00FE60: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
00FE70: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
00FE80: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 HL contains th
00FE90: 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 e address of the
00FEA0: 20 66 61 73 74 20 74 69 63 6B 65 72 20 62 6C 6F fast ticker blo
00FEB0: 63 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ck.......
00FEC0: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
00FED0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C ...... AF,
00FEE0: 20 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 DE and HL corru
00FEF0: 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 pt... All
00FF00: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
00FF10: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A preserved.......
00FF20: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
00FF30: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 ... This r
00FF40: 6F 75 74 69 6E 65 20 64 6F 65 73 20 6E 6F 74 68 outine does noth
00FF50: 69 6E 67 20 69 66 20 74 68 65 20 62 6C 6F 63 6B ing if the block
00FF60: 20 69 73 20 6E 6F 74 20 6F 6E 20 74 68 65 20 6C is not on the l
00FF70: 69 73 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ist.......
00FF80: 20 52 65 6D 6F 76 69 6E 67 20 61 20 62 6C 6F 63 Removing a bloc
00FF90: 6B 20 66 72 6F 6D 20 74 68 65 20 6C 69 73 74 20 k from the list
00FFA0: 6F 6E 6C 79 20 20 70 72 65 76 65 6E 74 73 20 20 only prevents
00FFB0: 74 68 65 20 20 65 76 65 6E 74 20 20 66 72 6F 6D the event from
00FFC0: 20 20 62 65 69 6E 67 0D 0A 20 20 20 20 20 20 20 being..
00FFD0: 6B 69 63 6B 65 64 20 61 67 61 69 6E 2E 20 49 74 kicked again. It
00FFE0: 20 64 6F 65 73 20 6E 6F 74 20 61 66 66 65 63 74 does not affect
00FFF0: 20 61 6E 79 20 6F 75 74 73 74 61 6E 64 69 6E 67 any outstanding
010000: 20 66 61 73 74 20 74 69 63 6B 65 72 20 65 76 65 fast ticker eve
010010: 6E 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 nts.......
010020: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 6E This routine en
010030: 61 62 6C 65 73 20 69 6E 74 65 72 72 75 70 74 73 ables interrupts
010040: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
010050: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
010060: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4C 20 ...... KL
010070: 41 44 44 20 46 41 53 54 20 54 49 43 4B 45 52 0D ADD FAST TICKER.
010080: 0A 20 20 20 20 20 20 20 4B 4C 20 44 45 4C 20 54 . KL DEL T
010090: 49 43 4B 45 52 0D 0A 20 20 20 20 20 20 20 4B 4C ICKER.. KL
0100A0: 20 4E 45 57 20 46 41 53 54 20 54 49 43 4B 45 52 NEW FAST TICKER
0100B0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0100C0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
0100D0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
0100E0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
0100F0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
010100: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
010110: 20 31 35 2E 31 39 36 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.196.........
010120: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 36 33 3A ..... 163:
010130: 20 4B 4C 20 41 44 44 20 54 49 43 4B 45 52 20 20 KL ADD TICKER
010140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010160: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 #BC
010170: 45 39 0D 0A 0D 0A 20 20 20 20 20 20 20 50 75 74 E9.... Put
010180: 20 61 20 62 6C 6F 63 6B 20 6F 6E 74 6F 20 74 68 a block onto th
010190: 65 20 74 69 63 6B 65 72 20 6C 69 73 74 2E 0D 0A e ticker list...
0101A0: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
0101B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 67 .... The g
0101C0: 65 6E 65 72 61 6C 20 70 75 72 70 6F 73 65 20 74 eneral purpose t
0101D0: 69 6D 69 6E 67 20 66 61 63 69 6C 69 74 79 20 20 iming facility
0101E0: 6D 65 61 73 75 72 65 73 20 20 74 69 6D 65 20 20 measures time
0101F0: 69 6E 20 20 31 2F 35 30 74 68 20 20 6F 66 20 20 in 1/50th of
010200: 61 0D 0A 20 20 20 20 20 20 20 73 65 63 6F 6E 64 a.. second
010210: 20 75 6E 69 74 73 2E 20 54 68 65 20 4B 65 72 6E units. The Kern
010220: 65 6C 20 6D 61 69 6E 74 61 69 6E 73 20 61 20 6C el maintains a l
010230: 69 73 74 20 6F 66 20 74 69 63 6B 20 62 6C 6F 63 ist of tick bloc
010240: 6B 73 20 65 61 63 68 20 6F 66 20 77 68 69 63 68 ks each of which
010250: 0D 0A 20 20 20 20 20 20 20 63 6F 6E 74 61 69 6E .. contain
010260: 73 20 61 20 63 6F 75 6E 74 20 61 6E 64 20 61 20 s a count and a
010270: 72 65 63 68 61 72 67 65 20 76 61 6C 75 65 2E 20 recharge value.
010280: 45 76 65 72 79 20 31 2F 35 30 74 68 20 6F 66 20 Every 1/50th of
010290: 20 61 20 20 73 65 63 6F 6E 64 20 20 74 68 65 0D a second the.
0102A0: 0A 20 20 20 20 20 20 20 4B 65 72 6E 65 6C 20 70 . Kernel p
0102B0: 72 6F 63 65 73 73 65 73 20 61 6C 6C 20 74 68 65 rocesses all the
0102C0: 20 74 69 63 6B 20 62 6C 6F 63 6B 73 2C 20 64 65 tick blocks, de
0102D0: 63 72 65 6D 65 6E 74 69 6E 67 20 74 68 65 20 63 crementing the c
0102E0: 6F 75 6E 74 20 65 6E 74 72 79 20 20 6F 66 0D 0A ount entry of..
0102F0: 20 20 20 20 20 20 20 65 61 63 68 2E 20 49 66 20 each. If
010300: 74 68 65 20 63 6F 75 6E 74 20 65 6E 74 72 79 20 the count entry
010310: 6F 66 20 61 20 62 6C 6F 63 6B 20 62 65 63 6F 6D of a block becom
010320: 65 73 20 7A 65 72 6F 20 74 68 65 20 20 65 76 65 es zero the eve
010330: 6E 74 20 20 63 6F 6E 74 61 69 6E 65 64 0D 0A 20 nt contained..
010340: 20 20 20 20 20 20 69 6E 20 74 68 65 20 62 6C 6F in the blo
010350: 63 6B 20 69 73 20 27 6B 69 63 6B 65 64 27 2C 20 ck is 'kicked',
010360: 61 6E 64 20 74 68 65 20 63 6F 75 6E 74 20 69 73 and the count is
010370: 20 73 65 74 20 74 6F 20 74 68 65 20 72 65 63 68 set to the rech
010380: 61 72 67 65 20 76 61 6C 75 65 2E 0D 0A 0D 0A 20 arge value.....
010390: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
0103A0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
0103B0: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 HL contains th
0103C0: 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 e address of the
0103D0: 20 74 69 63 6B 20 62 6C 6F 63 6B 2E 0D 0A 20 20 tick block...
0103E0: 20 20 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 DE contains
0103F0: 20 74 68 65 20 69 6E 69 74 69 61 6C 20 76 61 6C the initial val
010400: 75 65 20 66 6F 72 20 74 68 65 20 63 6F 75 6E 74 ue for the count
010410: 20 65 6E 74 72 79 2E 0D 0A 20 20 20 20 20 20 20 entry...
010420: 42 43 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 BC contains the
010430: 76 61 6C 75 65 20 6F 66 20 74 68 65 20 72 65 63 value of the rec
010440: 68 61 72 67 65 20 65 6E 74 72 79 2E 0D 0A 0D 0A harge entry.....
010450: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
010460: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
010470: 20 20 41 46 2C 20 42 43 2C 20 44 45 20 61 6E 64 AF, BC, DE and
010480: 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 HL corrupt...
010490: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
0104A0: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
0104B0: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ed..... No
0104C0: 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 tes:.... T
0104D0: 68 65 20 74 69 63 6B 20 62 6C 6F 63 6B 20 69 73 he tick block is
0104E0: 20 31 33 20 62 79 74 65 73 20 6C 6F 6E 67 20 61 13 bytes long a
0104F0: 6E 64 20 6D 75 73 74 20 6C 69 65 20 69 6E 20 20 nd must lie in
010500: 74 68 65 20 20 63 65 6E 74 72 61 6C 20 20 33 32 the central 32
010510: 4B 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 6D 65 K of.. me
010520: 6D 6F 72 79 2E 20 54 68 65 20 6C 61 73 74 20 37 mory. The last 7
010530: 20 62 79 74 65 73 20 6F 66 20 74 68 65 20 74 69 bytes of the ti
010540: 63 6B 20 62 6C 6F 63 6B 20 61 72 65 20 61 6E 20 ck block are an
010550: 20 65 76 65 6E 74 20 20 62 6C 6F 63 6B 20 20 77 event block w
010560: 68 69 63 68 0D 0A 20 20 20 20 20 20 20 6D 75 73 hich.. mus
010570: 74 20 62 65 20 69 6E 69 74 69 61 6C 69 7A 65 64 t be initialized
010580: 20 62 65 66 6F 72 65 20 74 68 69 73 20 72 6F 75 before this rou
010590: 74 69 6E 65 20 69 73 20 63 61 6C 6C 65 64 2E 20 tine is called.
0105A0: 54 68 65 20 65 78 61 63 74 20 6C 61 79 6F 75 74 The exact layout
0105B0: 20 6F 66 0D 0A 20 20 20 20 20 20 20 61 20 74 69 of.. a ti
0105C0: 63 6B 20 62 6C 6F 63 6B 20 69 73 20 64 65 73 63 ck block is desc
0105D0: 72 69 62 65 64 20 69 6E 20 41 70 70 65 6E 64 69 ribed in Appendi
0105E0: 78 20 58 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 x X..... T
0105F0: 68 65 20 63 6F 75 6E 74 20 61 6E 64 20 72 65 63 he count and rec
010600: 68 61 72 67 65 20 65 6E 74 72 69 65 73 20 69 6E harge entries in
010610: 20 74 68 65 20 62 6C 6F 63 6B 20 61 72 65 20 73 the block are s
010620: 65 74 2E 20 54 68 65 20 62 6C 6F 63 6B 20 69 73 et. The block is
010630: 20 74 68 65 6E 0D 0A 20 20 20 20 20 20 20 61 70 then.. ap
010640: 70 65 6E 64 65 64 20 74 6F 20 74 68 65 20 74 69 pended to the ti
010650: 63 6B 20 6C 69 73 74 20 69 66 20 69 74 20 69 73 ck list if it is
010660: 20 20 6E 6F 74 20 20 61 6C 72 65 61 64 79 20 20 not already
010670: 6F 6E 20 20 74 68 65 20 20 6C 69 73 74 2E 20 20 on the list.
010680: 54 68 69 73 0D 0A 20 20 20 20 20 20 20 72 6F 75 This.. rou
010690: 74 69 6E 65 20 6D 61 79 20 62 65 20 75 73 65 64 tine may be used
0106A0: 2C 20 74 68 65 72 65 66 6F 72 65 2C 20 20 74 6F , therefore, to
0106B0: 20 20 63 68 61 6E 67 65 20 20 74 68 65 20 20 63 change the c
0106C0: 6F 75 6E 74 20 20 61 6E 64 20 20 72 65 63 68 61 ount and recha
0106D0: 72 67 65 0D 0A 20 20 20 20 20 20 20 65 6E 74 72 rge.. entr
0106E0: 69 65 73 20 6F 66 20 61 6E 20 65 78 69 73 74 69 ies of an existi
0106F0: 6E 67 20 62 6C 6F 63 6B 2E 0D 0A 0D 0A 20 20 20 ng block.....
010700: 20 20 20 20 42 6C 6F 63 6B 73 20 77 69 74 68 20 Blocks with
010710: 61 20 63 6F 75 6E 74 20 65 6E 74 72 79 20 20 6F a count entry o
010720: 66 20 20 7A 65 72 6F 20 20 61 72 65 20 20 69 67 f zero are ig
010730: 6E 6F 72 65 64 20 20 77 68 65 6E 20 20 74 68 65 nored when the
010740: 20 20 6C 69 73 74 20 20 69 73 0D 0A 20 20 20 20 list is..
010750: 20 20 20 70 72 6F 63 65 73 73 65 64 2E 20 53 65 processed. Se
010760: 74 74 69 6E 67 20 61 20 72 65 63 68 61 72 67 65 tting a recharge
010770: 20 76 61 6C 75 65 20 6F 66 20 7A 65 72 6F 2C 20 value of zero,
010780: 74 68 65 72 65 66 6F 72 65 2C 20 20 73 65 74 73 therefore, sets
010790: 20 20 75 70 20 20 74 68 65 0D 0A 20 20 20 20 20 up the..
0107A0: 20 20 62 6C 6F 63 6B 20 61 73 20 61 20 27 6F 6E block as a 'on
0107B0: 65 20 73 68 6F 74 20 74 69 6D 65 72 27 2E 20 53 e shot timer'. S
0107C0: 69 6E 63 65 20 69 74 20 74 61 6B 65 73 20 74 68 ince it takes th
0107D0: 65 20 4B 65 72 6E 65 6C 20 74 69 6D 65 20 74 6F e Kernel time to
0107E0: 20 20 69 67 6E 6F 72 65 0D 0A 20 20 20 20 20 20 ignore..
0107F0: 20 61 20 74 69 63 6B 20 62 6C 6F 63 6B 2C 20 61 a tick block, a
010800: 6E 79 20 72 65 64 75 6E 64 61 6E 74 20 62 6C 6F ny redundant blo
010810: 63 6B 73 20 73 68 6F 75 6C 64 20 62 65 20 72 65 cks should be re
010820: 6D 6F 76 65 64 20 66 72 6F 6D 20 74 68 65 20 6C moved from the l
010830: 69 73 74 20 20 61 73 0D 0A 20 20 20 20 20 20 20 ist as..
010840: 73 6F 6F 6E 20 61 73 20 70 6F 73 73 69 62 6C 65 soon as possible
010850: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 74 20 69 ..... It i
010860: 73 20 6E 6F 74 20 70 6F 73 73 69 62 6C 65 20 74 s not possible t
010870: 6F 20 70 72 65 64 69 63 74 2C 20 70 61 72 74 69 o predict, parti
010880: 63 75 6C 61 72 6C 79 20 77 69 74 68 20 20 73 79 cularly with sy
010890: 6E 63 68 72 6F 6E 6F 75 73 20 20 65 76 65 6E 74 nchronous event
0108A0: 73 2C 0D 0A 20 20 20 20 20 20 20 68 6F 77 20 6C s,.. how l
0108B0: 6F 6E 67 20 69 74 20 77 69 6C 6C 20 62 65 20 61 ong it will be a
0108C0: 66 74 65 72 20 74 68 65 20 20 27 6B 69 63 6B 27 fter the 'kick'
0108D0: 20 20 62 65 66 6F 72 65 20 20 74 68 65 20 20 65 before the e
0108E0: 76 65 6E 74 20 20 72 6F 75 74 69 6E 65 20 20 69 vent routine i
0108F0: 73 0D 0A 20 20 20 20 20 20 20 61 63 74 75 61 6C s.. actual
010900: 6C 79 20 63 61 6C 6C 65 64 2E 20 4E 6F 74 77 69 ly called. Notwi
010910: 74 68 73 74 61 6E 64 69 6E 67 20 74 68 65 73 65 thstanding these
010920: 20 64 65 6C 61 79 73 2C 20 74 68 65 20 74 69 63 delays, the tic
010930: 6B 65 72 20 6D 61 79 20 62 65 20 20 75 73 65 64 ker may be used
010940: 0D 0A 20 20 20 20 20 20 20 74 6F 20 6F 62 74 61 .. to obta
010950: 69 6E 20 61 6E 20 65 78 61 63 74 20 6E 75 6D 62 in an exact numb
010960: 65 72 20 6F 66 20 27 6B 69 63 6B 73 27 20 20 69 er of 'kicks' i
010970: 6E 20 20 61 20 20 67 69 76 65 6E 20 20 70 65 72 n a given per
010980: 69 6F 64 20 20 73 69 6E 63 65 20 20 74 68 65 0D iod since the.
010990: 0A 20 20 20 20 20 20 20 72 65 63 68 61 72 67 65 . recharge
0109A0: 20 6D 65 63 68 61 6E 69 73 6D 20 69 6D 6D 65 64 mechanism immed
0109B0: 69 61 74 65 6C 79 20 72 65 73 65 74 73 20 74 68 iately resets th
0109C0: 65 20 63 6F 75 6E 74 2E 20 20 54 68 65 20 20 65 e count. The e
0109D0: 76 65 6E 74 20 20 63 6F 75 6E 74 69 6E 67 0D 0A vent counting..
0109E0: 20 20 20 20 20 20 20 6D 65 63 68 61 6E 69 73 6D mechanism
0109F0: 20 77 69 6C 6C 20 65 6E 73 75 72 65 20 74 68 61 will ensure tha
010A00: 74 20 27 6B 69 63 6B 73 27 20 61 72 65 20 6E 6F t 'kicks' are no
010A10: 74 20 6D 69 73 73 65 64 2C 20 70 72 6F 76 69 64 t missed, provid
010A20: 65 64 20 74 68 61 74 20 74 68 65 72 65 0D 0A 20 ed that there..
010A30: 20 20 20 20 20 20 61 72 65 20 6E 65 76 65 72 20 are never
010A40: 6D 6F 72 65 20 74 68 61 6E 20 31 32 37 20 6F 75 more than 127 ou
010A50: 74 73 74 61 6E 64 69 6E 67 20 61 74 20 6F 6E 63 tstanding at onc
010A60: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 e..... Thi
010A70: 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 s routine enable
010A80: 73 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D s interrupts....
010A90: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
010AA0: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 entries:....
010AB0: 20 20 20 4B 4C 20 41 44 44 20 46 41 53 54 20 54 KL ADD FAST T
010AC0: 49 43 4B 45 52 0D 0A 20 20 20 20 20 20 20 4B 4C ICKER.. KL
010AD0: 20 44 45 4C 20 54 49 43 4B 45 52 0D 0A 20 20 20 DEL TICKER..
010AE0: 20 20 20 20 4B 4C 20 49 4E 49 54 20 45 56 45 4E KL INIT EVEN
010AF0: 54 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D T...... AM
010B00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
010B10: 0E 00 00 00 02 09 50 E5 0E 00 C1 02 00 00 00 02 ......P.........
010B20: 0E 00 C2 02 00 00 00 02 0E 00 C3 02 00 00 00 02 ................
010B30: 0E 00 C4 02 00 00 00 02 0E 00 C5 02 00 00 00 02 ................
010B40: 0E 00 C6 02 00 00 00 02 0E 00 C7 02 00 00 00 02 ................
010B50: 0E 00 C8 02 00 00 00 02 0E 00 C9 02 00 00 00 02 ................
010B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010C00: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
010C10: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
010C20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010C30: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
010C40: 2E 31 39 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .197............
010C50: 0D 0A 20 20 20 20 20 20 20 31 36 34 3A 20 4B 4C .. 164: KL
010C60: 20 44 45 4C 20 54 49 43 4B 45 52 20 20 20 20 20 DEL TICKER
010C70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010C80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010C90: 20 20 20 20 20 20 20 20 20 20 23 42 43 45 43 0D #BCEC.
010CA0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6D 6F ..... Remo
010CB0: 76 65 20 62 6C 6F 63 6B 20 66 72 6F 6D 20 74 68 ve block from th
010CC0: 65 20 74 69 63 6B 20 6C 69 73 74 2E 0D 0A 0D 0A e tick list.....
010CD0: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
010CE0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 ...... If
010CF0: 61 20 67 69 76 65 6E 20 62 6C 6F 63 6B 20 69 73 a given block is
010D00: 20 6F 6E 20 74 68 65 20 74 69 63 6B 20 6C 69 73 on the tick lis
010D10: 74 20 69 74 20 69 73 20 72 65 6D 6F 76 65 64 2E t it is removed.
010D20: 20 20 54 68 65 20 20 63 6F 6E 74 65 6E 74 73 20 The contents
010D30: 20 6F 66 0D 0A 20 20 20 20 20 20 20 74 68 65 20 of.. the
010D40: 62 6C 6F 63 6B 20 61 72 65 20 6E 6F 74 20 61 66 block are not af
010D50: 66 65 63 74 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 fected.......
010D60: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
010D70: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
010D80: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 HL contains th
010D90: 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 e address of the
010DA0: 20 74 69 63 6B 20 62 6C 6F 63 6B 2E 0D 0A 0D 0A tick block.....
010DB0: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
010DC0: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
010DD0: 20 20 20 20 20 20 49 66 20 74 68 65 20 74 69 63 If the tic
010DE0: 6B 20 62 6C 6F 63 6B 20 77 61 73 20 66 6F 75 6E k block was foun
010DF0: 64 20 6F 6E 20 74 68 65 20 74 69 63 6B 20 6C 69 d on the tick li
010E00: 73 74 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 st:......
010E10: 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 74 Carry t
010E20: 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 rue...
010E30: 20 20 20 20 20 20 44 45 20 63 6F 6E 74 61 69 6E DE contain
010E40: 73 20 74 68 65 20 63 6F 75 6E 74 20 72 65 6D 61 s the count rema
010E50: 69 6E 69 6E 67 20 62 65 66 6F 72 65 20 74 68 65 ining before the
010E60: 20 6E 65 78 74 20 65 76 65 6E 74 2E 0D 0A 0D 0A next event.....
010E70: 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 .. If the
010E80: 74 69 63 6B 20 62 6C 6F 63 6B 20 77 61 73 20 6E tick block was n
010E90: 6F 74 20 66 6F 75 6E 64 20 6F 6E 20 74 68 65 20 ot found on the
010EA0: 74 69 63 6B 20 6C 69 73 74 3A 0D 0A 0D 0A 0D 0A tick list:......
010EB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010EC0: 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 Carry false...
010ED0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 45 DE
010EE0: 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 0D 0A 20 corrupt.......
010EF0: 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D Always:...
010F00: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
010F10: 20 20 20 41 2C 20 48 4C 20 61 6E 64 20 6F 74 68 A, HL and oth
010F20: 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 er flags corrupt
010F30: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
010F40: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
010F50: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
010F60: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
010F70: 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 tes:.... T
010F80: 68 65 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 74 he contents of t
010F90: 68 65 20 62 6C 6F 63 6B 20 61 72 65 20 6E 6F 74 he block are not
010FA0: 20 61 66 66 65 63 74 65 64 20 62 79 20 20 72 65 affected by re
010FB0: 6D 6F 76 69 6E 67 20 20 69 74 20 20 66 72 6F 6D moving it from
010FC0: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 6C 69 the.. li
010FD0: 73 74 2E 20 49 6E 20 70 61 72 74 69 63 75 6C 61 st. In particula
010FE0: 72 20 74 68 65 20 63 6F 6E 74 69 6E 75 65 64 20 r the continued
010FF0: 70 72 6F 63 65 73 73 69 6E 67 20 6F 66 20 6F 75 processing of ou
011000: 74 73 74 61 6E 64 69 6E 67 20 65 76 65 6E 74 73 tstanding events
011010: 20 20 69 73 0D 0A 20 20 20 20 20 20 20 6E 6F 74 is.. not
011020: 20 61 66 66 65 63 74 65 64 2E 20 54 68 65 20 62 affected. The b
011030: 6C 6F 63 6B 20 63 6F 75 6C 64 20 62 65 20 70 75 lock could be pu
011040: 74 20 62 61 63 6B 20 6F 6E 20 74 68 65 20 6C 69 t back on the li
011050: 73 74 20 61 74 20 61 20 6C 61 74 65 72 20 20 64 st at a later d
011060: 61 74 65 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 ate.. and
011070: 69 74 20 63 6F 75 6C 64 20 63 6F 6E 74 69 6E 75 it could continu
011080: 65 20 63 6F 75 6E 74 69 6E 67 20 77 68 65 72 65 e counting where
011090: 20 69 74 20 6C 65 66 74 20 6F 66 66 2E 0D 0A 0D it left off....
0110A0: 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 . This rou
0110B0: 74 69 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E 74 tine enables int
0110C0: 65 72 72 75 70 74 73 2E 0D 0A 0D 0A 20 20 20 20 errupts.....
0110D0: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
0110E0: 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4C es:.... KL
0110F0: 20 41 44 44 20 54 49 43 4B 45 52 0D 0A 20 20 20 ADD TICKER..
011100: 20 20 20 20 4B 4C 20 44 45 4C 20 46 41 53 54 20 KL DEL FAST
011110: 54 49 43 4B 45 52 0D 0A 0D 0A 0D 0A 0D 0A 20 20 TICKER........
011120: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
011130: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
011140: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
011150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011160: 70 61 67 65 20 31 35 2E 31 39 38 0D 0A 0D 0A 0D page 15.198.....
011170: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
011180: 31 36 35 3A 20 4B 4C 20 49 4E 49 54 20 45 56 45 165: KL INIT EVE
011190: 4E 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 NT
0111A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0111B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0111C0: 20 23 42 43 45 46 0D 0A 0D 0A 20 20 20 20 20 20 #BCEF....
0111D0: 20 49 6E 69 74 69 61 6C 69 7A 65 20 61 6E 20 65 Initialize an e
0111E0: 76 65 6E 74 20 62 6C 6F 63 6B 2E 0D 0A 0D 0A 20 vent block.....
0111F0: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
011200: 0A 20 20 20 20 20 20 20 49 6E 69 74 69 61 6C 69 . Initiali
011210: 7A 65 20 61 6C 6C 20 65 6E 74 72 69 65 73 20 69 ze all entries i
011220: 6E 20 61 6E 20 65 76 65 6E 74 20 62 6C 6F 63 6B n an event block
011230: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
011240: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
011250: 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 . HL conta
011260: 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 ins the address
011270: 6F 66 20 74 68 65 20 65 76 65 6E 74 20 62 6C 6F of the event blo
011280: 63 6B 2E 0D 0A 20 20 20 20 20 20 20 42 20 63 6F ck... B co
011290: 6E 74 61 69 6E 73 20 74 68 65 20 65 76 65 6E 74 ntains the event
0112A0: 20 63 6C 61 73 73 2E 0D 0A 20 20 20 20 20 20 20 class...
0112B0: 43 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 52 C contains the R
0112C0: 4F 4D 20 73 65 6C 65 63 74 20 61 64 64 72 65 73 OM select addres
0112D0: 73 20 6F 66 20 74 68 65 20 65 76 65 6E 74 20 72 s of the event r
0112E0: 6F 75 74 69 6E 65 2E 0D 0A 20 20 20 20 20 20 20 outine...
0112F0: 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 DE contains the
011300: 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 65 address of the e
011310: 76 65 6E 74 20 72 6F 75 74 69 6E 65 2E 0D 0A 0D vent routine....
011320: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
011330: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
011340: 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 HL contains t
011350: 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 he address of th
011360: 65 20 65 76 65 6E 74 20 62 6C 6F 63 6B 20 2B 20 e event block +
011370: 37 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C 7..... All
011380: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
011390: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 preserved.....
0113A0: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
0113B0: 20 20 20 20 20 20 20 54 68 65 20 65 76 65 6E 74 The event
0113C0: 20 62 6C 6F 63 6B 20 69 73 20 37 20 62 79 74 65 block is 7 byte
0113D0: 73 20 6C 6F 6E 67 20 61 6E 64 20 6D 75 73 74 20 s long and must
0113E0: 6C 69 65 20 69 6E 20 20 74 68 65 20 20 63 65 6E lie in the cen
0113F0: 74 72 61 6C 20 20 33 32 4B 20 20 6F 66 0D 0A 20 tral 32K of..
011400: 20 20 20 20 20 20 52 41 4D 2E 20 54 68 65 20 6C RAM. The l
011410: 61 79 6F 75 74 20 6F 66 20 61 6E 20 65 76 65 6E ayout of an even
011420: 74 20 62 6C 6F 63 6B 20 69 73 20 20 64 65 73 63 t block is desc
011430: 72 69 62 65 64 20 20 69 6E 20 20 41 70 70 65 6E ribed in Appen
011440: 64 69 78 20 20 58 2E 20 20 53 65 65 0D 0A 20 20 dix X. See..
011450: 20 20 20 20 20 73 65 63 74 69 6F 6E 20 31 32 20 section 12
011460: 66 6F 72 20 61 20 67 65 6E 65 72 61 6C 20 64 69 for a general di
011470: 73 63 75 73 73 69 6F 6E 20 6F 66 20 65 76 65 6E scussion of even
011480: 74 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ts..... Th
011490: 65 20 52 4F 4D 20 73 65 6C 65 63 74 20 61 6E 64 e ROM select and
0114A0: 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 address of the
0114B0: 72 6F 75 74 69 6E 65 20 61 72 65 20 74 68 65 20 routine are the
0114C0: 27 66 61 72 20 61 64 64 72 65 73 73 27 20 6F 66 'far address' of
0114D0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 65 76 65 the.. eve
0114E0: 6E 74 20 72 6F 75 74 69 6E 65 20 28 73 65 65 20 nt routine (see
0114F0: 73 65 63 74 69 6F 6E 20 32 29 2E 0D 0A 0D 0A 0D section 2)......
011500: 0A 20 20 20 20 20 20 20 54 68 65 20 65 76 65 6E . The even
011510: 74 20 63 6C 61 73 73 20 69 73 20 62 69 74 20 73 t class is bit s
011520: 69 67 6E 69 66 69 63 61 6E 74 20 61 73 20 66 6F ignificant as fo
011530: 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 llows:....
011540: 20 20 20 20 20 20 20 20 20 20 42 69 74 20 30 3A Bit 0:
011550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4E 65 Ne
011560: 61 72 20 61 64 64 72 65 73 73 2E 0D 0A 20 20 20 ar address...
011570: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 Bit
011580: 73 20 31 2E 2E 34 3A 20 20 20 20 20 20 20 20 20 s 1..4:
011590: 20 53 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 Synchronous eve
0115A0: 6E 74 20 70 72 69 6F 72 69 74 79 2E 0D 0A 20 20 nt priority...
0115B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 Bi
0115C0: 74 20 35 3A 20 20 20 20 20 20 20 20 20 20 20 20 t 5:
0115D0: 20 20 4D 75 73 74 20 62 65 20 7A 65 72 6F 2E 0D Must be zero..
0115E0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0115F0: 20 42 69 74 20 36 3A 20 20 20 20 20 20 20 20 20 Bit 6:
011600: 20 20 20 20 20 45 78 70 72 65 73 73 20 65 76 65 Express eve
011610: 6E 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 nt...
011620: 20 20 20 20 20 42 69 74 20 37 3A 20 20 20 20 20 Bit 7:
011630: 20 20 20 20 20 20 20 20 20 41 73 79 6E 63 68 72 Asynchr
011640: 6F 6E 6F 75 73 20 65 76 65 6E 74 2E 0D 0A 0D 0A onous event.....
011650: 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 .. If the
011660: 61 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 asynchronous eve
011670: 6E 74 20 62 69 74 20 69 73 20 73 65 74 20 74 68 nt bit is set th
011680: 65 6E 20 74 68 65 20 65 76 65 6E 74 20 69 73 20 en the event is
011690: 61 6E 20 61 73 79 6E 63 68 72 6F 6E 6F 75 73 0D an asynchronous.
0116A0: 0A 20 20 20 20 20 20 20 65 76 65 6E 74 2C 20 6F . event, o
0116B0: 74 68 65 72 77 69 73 65 20 69 74 20 69 73 20 61 therwise it is a
0116C0: 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 synchronous eve
0116D0: 6E 74 2E 20 41 73 79 6E 63 68 72 6F 6E 6F 75 73 nt. Asynchronous
0116E0: 20 65 76 65 6E 74 73 20 64 6F 20 6E 6F 74 0D 0A events do not..
0116F0: 20 20 20 20 20 20 20 68 61 76 65 20 70 72 69 6F have prio
011700: 72 69 74 69 65 73 20 61 6E 64 20 73 6F 20 74 68 rities and so th
011710: 65 20 70 72 69 6F 72 69 74 79 20 66 69 65 6C 64 e priority field
011720: 20 69 73 20 69 67 6E 6F 72 65 64 2E 0D 0A 0D 0A is ignored.....
011730: 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 .. If the
011740: 65 78 70 72 65 73 73 20 65 76 65 6E 74 20 62 69 express event bi
011750: 74 20 69 73 20 73 65 74 20 74 68 65 6E 20 74 68 t is set then th
011760: 65 20 65 76 65 6E 74 20 69 73 20 20 61 6E 20 20 e event is an
011770: 65 78 70 72 65 73 73 20 20 65 76 65 6E 74 2E 0D express event..
011780: 0A 20 20 20 20 20 20 20 54 68 65 20 6D 65 61 6E . The mean
011790: 69 6E 67 20 6F 66 20 74 68 69 73 20 64 65 70 65 ing of this depe
0117A0: 6E 64 73 20 6F 6E 20 77 68 65 74 68 65 72 20 74 nds on whether t
0117B0: 68 65 20 20 65 76 65 6E 74 20 20 69 73 20 20 73 he event is s
0117C0: 79 6E 63 68 72 6F 6E 6F 75 73 20 20 6F 72 0D 0A ynchronous or..
0117D0: 20 20 20 20 20 20 20 61 73 79 6E 63 68 72 6F 6E asynchron
0117E0: 6F 75 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ous.......
0117F0: 20 41 6C 6C 20 65 78 70 72 65 73 73 20 73 79 6E All express syn
011800: 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 20 chronous events
011810: 68 61 76 65 20 68 69 67 68 65 72 20 70 72 69 6F have higher prio
011820: 72 69 74 69 65 73 20 74 68 61 6E 20 61 6E 79 20 rities than any
011830: 20 6E 6F 72 6D 61 6C 0D 0A 20 20 20 20 20 20 20 normal..
011840: 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E synchronous even
011850: 74 2E 20 54 68 65 20 70 72 69 6F 72 69 74 79 20 t. The priority
011860: 6F 66 20 61 20 73 79 6E 63 68 72 6F 6E 6F 75 73 of a synchronous
011870: 20 65 76 65 6E 74 20 69 73 20 20 65 6E 63 6F 64 event is encod
011880: 65 64 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 62 ed in.. b
011890: 69 74 73 20 31 2E 2E 34 20 6F 66 20 20 74 68 65 its 1..4 of the
0118A0: 20 20 63 6C 61 73 73 2C 20 20 74 68 65 20 20 68 class, the h
0118B0: 69 67 68 65 72 20 20 74 68 65 20 20 6E 75 6D 62 igher the numb
0118C0: 65 72 20 20 74 68 65 20 20 67 72 65 61 74 65 72 er the greater
0118D0: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 70 72 the.. pr
0118E0: 69 6F 72 69 74 79 2E 20 4E 6F 20 65 76 65 6E 74 iority. No event
0118F0: 20 6D 61 79 20 68 61 76 65 20 20 70 72 69 6F 72 may have prior
011900: 69 74 79 20 20 30 2E 20 20 54 68 65 20 20 70 72 ity 0. The pr
011910: 6F 63 65 73 73 69 6E 67 20 20 6F 66 20 20 6E 6F ocessing of no
011920: 72 6D 61 6C 0D 0A 20 20 20 20 20 20 20 73 79 6E rmal.. syn
011930: 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 20 chronous events
011940: 6D 61 79 20 62 65 20 64 69 73 61 62 6C 65 64 20 may be disabled
011950: 20 28 62 79 20 20 63 61 6C 6C 69 6E 67 20 20 4B (by calling K
011960: 4C 20 20 45 56 45 4E 54 20 20 44 49 53 41 42 4C L EVENT DISABL
011970: 45 29 2C 0D 0A 20 20 20 20 20 20 20 77 68 69 6C E),.. whil
011980: 65 20 74 68 61 74 20 69 66 20 65 78 70 72 65 73 e that if expres
011990: 73 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 s synchronous ev
0119A0: 65 6E 74 73 20 6D 61 79 20 6E 6F 74 2E 0D 0A 0D ents may not....
0119B0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
0119C0: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
0119D0: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
0119E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0119F0: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 page 15.1
011A00: 39 39 0D 0A 1A 50 2D 31 35 20 24 24 24 FF 00 FF 99...P-15 $$$...
011A10: 20 20 20 54 68 65 20 66 69 72 73 74 20 62 79 74 The first byt
011A20: 65 20 6F 66 20 74 68 65 20 74 6F 6E 65 20 64 61 e of the tone da
011A30: 74 61 20 62 6C 6F 63 6B 20 28 6D 61 73 6B 65 64 ta block (masked
011A40: 20 77 69 74 68 20 23 37 46 29 20 73 70 65 63 69 with #7F) speci
011A50: 66 69 65 73 20 20 74 68 65 0D 0A 20 20 20 20 20 fies the..
011A60: 20 20 6E 75 6D 62 65 72 20 6F 66 20 73 65 63 74 number of sect
011A70: 69 6F 6E 73 20 75 73 65 64 20 69 6E 20 74 68 65 ions used in the
011A80: 65 64 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 62 ed in.. b
011A90: 69 74 73 20 31 2E 2E 34 20 6F 66 20 20 74 68 65 its 1..4 of the
011AA0: 20 20 63 6C 61 73 73 2C 20 20 74 68 65 20 20 68 class, the h
011AB0: 69 67 68 65 72 20 20 74 68 65 20 20 6E 75 6D 62 igher the numb
011AC0: 65 72 20 20 74 68 65 20 20 67 72 65 61 74 65 72 er the greater
011AD0: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 70 72 the.. pr
011AE0: 69 6F 72 69 74 79 2E 20 4E 6F 20 65 76 65 6E 74 iority. No event
011AF0: 20 6D 61 79 20 68 61 76 65 20 20 70 72 69 6F 72 may have prior
011B00: 69 74 79 20 20 30 2E 20 20 54 68 65 20 20 70 72 ity 0. The pr
011B10: 6F 63 65 73 73 69 6E 67 20 20 6F 66 20 20 6E 6F ocessing of no
011B20: 72 6D 61 6C 0D 0A 20 20 20 20 20 20 20 73 79 6E rmal.. syn
011B30: 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 20 chronous events
011B40: 6D 61 79 20 62 65 20 64 69 73 61 62 6C 65 64 20 may be disabled
011B50: 20 28 62 79 20 20 63 61 6C 6C 69 6E 67 20 20 4B (by calling K
011B60: 4C 20 20 45 56 45 4E 54 20 20 44 49 53 41 42 4C L EVENT DISABL
011B70: 45 29 2C 0D 0A 20 20 20 20 20 20 20 77 68 69 6C E),.. whil
011B80: 65 20 74 68 61 74 20 69 66 20 65 78 70 72 65 73 e that if expres
011B90: 73 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 s synchronous ev
011BA0: 65 6E 74 73 20 6D 61 79 20 6E 6F 74 2E 0D 0A 0D ents may not....
011BB0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
011BC0: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
011BD0: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
011BE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011BF0: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 page 15.1
011C00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
011C10: 20 20 20 41 6E 20 65 78 70 72 65 73 73 20 61 73 An express as
011C20: 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 ynchronous event
011C30: 20 20 77 69 6C 6C 20 20 68 61 76 65 20 20 69 74 will have it
011C40: 73 20 20 65 76 65 6E 74 20 20 72 6F 75 74 69 6E s event routin
011C50: 65 20 20 63 61 6C 6C 65 64 0D 0A 20 20 20 20 20 e called..
011C60: 20 20 64 69 72 65 63 74 6C 79 20 66 72 6F 6D 20 directly from
011C70: 74 68 65 20 69 6E 74 65 72 72 75 70 74 20 20 70 the interrupt p
011C80: 61 74 68 2E 20 20 41 20 20 6E 6F 72 6D 61 6C 20 ath. A normal
011C90: 20 61 73 79 6E 63 68 72 6F 6E 6F 75 73 20 20 65 asynchronous e
011CA0: 76 65 6E 74 20 20 69 73 0D 0A 20 20 20 20 20 20 vent is..
011CB0: 20 70 72 6F 63 65 73 73 65 64 20 6A 75 73 74 20 processed just
011CC0: 62 65 66 6F 72 65 20 72 65 74 75 72 6E 69 6E 67 before returning
011CD0: 20 66 72 6F 6D 20 74 68 65 20 20 69 6E 74 65 72 from the inter
011CE0: 72 75 70 74 20 20 28 77 69 74 68 20 20 69 6E 74 rupt (with int
011CF0: 65 72 72 75 70 74 73 0D 0A 20 20 20 20 20 20 20 errupts..
011D00: 65 6E 61 62 6C 65 64 29 2E 0D 0A 0D 0A 0D 0A 20 enabled).......
011D10: 20 20 20 20 20 20 49 66 20 74 68 65 20 6E 65 61 If the nea
011D20: 72 20 61 64 64 72 65 73 73 20 62 69 74 20 69 73 r address bit is
011D30: 20 73 65 74 20 20 74 68 65 6E 20 20 74 68 65 20 set then the
011D40: 20 65 76 65 6E 74 20 20 72 6F 75 74 69 6E 65 20 event routine
011D50: 20 69 73 20 20 6C 6F 63 61 74 65 64 0D 0A 20 20 is located..
011D60: 20 20 20 20 20 65 69 74 68 65 72 20 69 6E 20 74 either in t
011D70: 68 65 20 6C 6F 77 65 72 20 52 4F 4D 20 6F 72 20 he lower ROM or
011D80: 69 6E 20 74 68 65 20 63 65 6E 74 72 61 6C 20 33 in the central 3
011D90: 32 4B 20 6F 66 20 52 41 4D 2E 20 54 68 65 20 20 2K of RAM. The
011DA0: 52 4F 4D 20 20 73 65 6C 65 63 74 0D 0A 20 20 20 ROM select..
011DB0: 20 20 20 20 61 64 64 72 65 73 73 20 69 73 20 69 address is i
011DC0: 67 6E 6F 72 65 64 20 61 6E 64 20 74 68 65 20 72 gnored and the r
011DD0: 6F 75 74 69 6E 65 20 69 73 20 20 63 61 6C 6C 65 outine is calle
011DE0: 64 20 20 64 69 72 65 63 74 6C 79 2C 20 20 72 61 d directly, ra
011DF0: 74 68 65 72 20 20 74 68 61 6E 0D 0A 20 20 20 20 ther than..
011E00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
011E10: 0F 00 00 00 02 09 50 E5 0F 00 C1 02 00 00 00 02 ......P.........
011E20: 0F 00 C2 02 00 00 00 02 0F 00 C3 02 00 00 00 02 ................
011E30: 0F 00 C4 02 00 00 00 02 0F 00 C5 02 00 00 00 02 ................
011E40: 0F 00 C6 02 00 00 00 02 0F 00 C7 02 00 00 00 02 ................
011E50: 0F 00 C8 02 00 00 00 02 0F 00 C9 02 00 00 00 02 ................
011E60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011F00: 20 20 20 74 68 72 6F 75 67 68 20 74 68 65 20 46 through the F
011F10: 41 52 20 43 41 4C 4C 20 6D 65 63 68 61 6E 69 73 AR CALL mechanis
011F20: 6D 2C 20 74 68 75 73 20 20 72 65 64 75 63 69 6E m, thus reducin
011F30: 67 20 20 74 68 65 20 20 65 76 65 6E 74 20 20 70 g the event p
011F40: 72 6F 63 65 73 73 69 6E 67 0D 0A 20 20 20 20 20 rocessing..
011F50: 20 20 6F 76 65 72 68 65 61 64 2E 20 57 68 65 72 overhead. Wher
011F60: 65 20 70 6F 73 73 69 62 6C 65 2C 20 20 61 73 79 e possible, asy
011F70: 6E 63 68 72 6F 6E 6F 75 73 20 20 65 76 65 6E 74 nchronous event
011F80: 73 20 20 73 68 6F 75 6C 64 20 20 62 65 20 20 61 s should be a
011F90: 74 20 20 27 6E 65 61 72 0D 0A 20 20 20 20 20 20 t 'near..
011FA0: 20 61 64 64 72 65 73 73 65 73 27 2E 20 45 78 70 addresses'. Exp
011FB0: 72 65 73 73 20 20 61 73 79 6E 63 68 72 6F 6E 6F ress asynchrono
011FC0: 75 73 20 20 65 76 65 6E 74 73 20 20 6D 75 73 74 us events must
011FD0: 20 20 61 6C 77 61 79 73 20 20 62 65 20 20 61 74 always be at
011FE0: 20 20 27 6E 65 61 72 0D 0A 20 20 20 20 20 20 20 'near..
011FF0: 61 64 64 72 65 73 73 65 73 27 2E 0D 0A 0D 0A 20 addresses'.....
012000: 20 20 20 20 20 20 45 76 65 6E 74 20 62 6C 6F 63 Event bloc
012010: 6B 73 20 61 70 70 65 61 72 20 69 6E 20 76 61 72 ks appear in var
012020: 69 6F 75 73 20 6F 74 68 65 72 20 62 6C 6F 63 6B ious other block
012030: 73 20 20 68 61 6E 64 6C 65 64 20 20 62 79 20 20 s handled by
012040: 74 68 65 20 20 4B 65 72 6E 65 6C 2C 0D 0A 20 20 the Kernel,..
012050: 20 20 20 20 20 69 6E 63 6C 75 64 69 6E 67 20 66 including f
012060: 72 61 6D 65 20 66 6C 79 62 61 63 6B 2C 20 66 61 rame flyback, fa
012070: 73 74 20 74 69 63 6B 65 72 20 61 6E 64 20 74 69 st ticker and ti
012080: 63 6B 20 62 6C 6F 63 6B 73 2E 20 54 68 69 73 20 ck blocks. This
012090: 72 6F 75 74 69 6E 65 20 20 69 73 0D 0A 20 20 20 routine is..
0120A0: 20 20 20 20 75 73 65 64 20 74 6F 20 69 6E 69 74 used to init
0120B0: 69 61 6C 69 7A 65 20 74 68 65 20 65 76 65 6E 74 ialize the event
0120C0: 20 62 6C 6F 63 6B 20 70 61 72 74 73 20 6F 66 20 block parts of
0120D0: 74 68 65 73 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 these.....
0120E0: 20 54 68 65 20 62 79 74 65 73 20 61 66 74 65 72 The bytes after
0120F0: 20 74 68 65 20 6C 61 73 74 20 62 79 74 65 20 6F the last byte o
012100: 66 20 74 68 65 20 65 76 65 6E 74 20 62 6C 6F 63 f the event bloc
012110: 6B 2C 20 65 76 65 6E 20 77 68 65 72 65 20 74 68 k, even where th
012120: 65 20 62 6C 6F 63 6B 0D 0A 20 20 20 20 20 20 20 e block..
012130: 66 6F 72 6D 73 20 70 61 72 74 20 6F 66 20 61 6E forms part of an
012140: 6F 74 68 65 72 20 62 6C 6F 63 6B 2C 20 61 72 65 other block, are
012150: 20 6E 6F 74 20 75 73 65 64 20 20 62 79 20 20 74 not used by t
012160: 68 65 20 20 4B 65 72 6E 65 6C 2E 20 20 57 68 65 he Kernel. Whe
012170: 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 65 n the.. e
012180: 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 69 73 20 vent routine is
012190: 63 61 6C 6C 65 64 20 74 68 65 20 61 64 64 72 65 called the addre
0121A0: 73 73 20 6F 66 20 74 68 65 20 62 6C 6F 63 6B 20 ss of the block
0121B0: 69 73 20 70 61 73 73 65 64 20 74 6F 20 20 69 74 is passed to it
0121C0: 2C 20 20 73 6F 0D 0A 20 20 20 20 20 20 20 74 68 , so.. th
0121D0: 65 20 75 73 65 72 20 6D 61 79 20 61 70 70 65 6E e user may appen
0121E0: 64 20 66 75 72 74 68 65 72 20 69 6E 66 6F 72 6D d further inform
0121F0: 61 74 69 6F 6E 20 61 62 6F 75 74 20 74 68 65 20 ation about the
012200: 65 76 65 6E 74 20 74 6F 20 74 68 65 20 20 62 6C event to the bl
012210: 6F 63 6B 2E 0D 0A 20 20 20 20 20 20 20 54 68 69 ock... Thi
012220: 73 20 61 6C 6C 6F 77 73 20 73 65 76 65 72 61 6C s allows several
012230: 20 73 69 6D 69 6C 61 72 20 65 76 65 6E 74 73 20 similar events
012240: 74 6F 20 73 68 61 72 65 20 74 68 65 20 20 73 61 to share the sa
012250: 6D 65 20 20 65 76 65 6E 74 20 20 72 6F 75 74 69 me event routi
012260: 6E 65 2C 0D 0A 20 20 20 20 20 20 20 65 61 63 68 ne,.. each
012270: 20 65 76 65 6E 74 20 68 61 76 69 6E 67 20 69 74 event having it
012280: 73 20 27 6F 77 6E 27 20 76 61 72 69 61 62 6C 65 s 'own' variable
012290: 73 20 61 70 70 65 6E 64 65 64 20 74 6F 20 69 74 s appended to it
0122A0: 73 20 65 76 65 6E 74 20 62 6C 6F 63 6B 2E 0D 0A s event block...
0122B0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 65 76 65 .. The eve
0122C0: 6E 74 20 72 6F 75 74 69 6E 65 20 68 61 73 20 74 nt routine has t
0122D0: 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 65 6E 74 he following ent
0122E0: 72 79 20 61 6E 64 20 65 78 69 74 20 63 6F 6E 64 ry and exit cond
0122F0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
012300: 20 20 45 6E 74 72 79 3A 0D 0A 0D 0A 20 20 20 20 Entry:....
012310: 20 20 20 54 68 65 20 65 76 65 6E 74 20 72 6F 75 The event rou
012320: 74 69 6E 65 20 69 73 20 61 74 20 61 20 27 66 61 tine is at a 'fa
012330: 72 20 61 64 64 72 65 73 73 27 3A 0D 0A 0D 0A 20 r address':....
012340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 H
012350: 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 L contains the a
012360: 64 64 72 65 73 73 20 6F 66 20 62 79 74 65 20 35 ddress of byte 5
012370: 20 6F 66 20 74 68 65 20 65 76 65 6E 74 20 62 6C of the event bl
012380: 6F 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ock..
012390: 20 20 20 20 20 28 73 6F 20 61 6E 79 20 61 70 70 (so any app
0123A0: 65 6E 64 65 64 20 64 61 74 61 20 63 61 6E 20 73 ended data can s
0123B0: 74 61 72 74 20 61 74 20 61 64 64 72 65 73 73 20 tart at address
0123C0: 48 4C 20 2B 20 32 29 2E 0D 0A 0D 0A 20 20 20 20 HL + 2).....
0123D0: 20 20 20 49 66 20 74 68 65 20 65 76 65 6E 74 20 If the event
0123E0: 72 6F 75 74 69 6E 65 20 69 73 20 61 74 20 61 20 routine is at a
0123F0: 27 6E 65 61 72 20 61 64 64 72 65 73 73 27 3A 0D 'near address':.
012400: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
012410: 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 DE contains t
012420: 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 62 79 he address of by
012430: 74 65 20 36 20 6F 66 20 74 68 65 20 65 76 65 6E te 6 of the even
012440: 74 20 62 6C 6F 63 6B 0D 0A 20 20 20 20 20 20 20 t block..
012450: 20 20 20 20 20 20 20 20 20 28 73 6F 20 61 6E 79 (so any
012460: 20 61 70 70 65 6E 64 65 64 20 64 61 74 61 20 63 appended data c
012470: 61 6E 20 73 74 61 72 74 20 61 74 20 61 64 64 72 an start at addr
012480: 65 73 73 20 44 45 20 2B 20 31 29 2E 0D 0A 0D 0A ess DE + 1).....
012490: 20 20 20 20 20 20 20 45 78 69 74 3A 0D 0A 0D 0A Exit:....
0124A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0124B0: 41 46 2C 20 42 43 2C 20 44 45 20 61 6E 64 20 48 AF, BC, DE and H
0124C0: 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 L corrupt...
0124D0: 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 All
0124E0: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
0124F0: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 preserved.....
012500: 20 20 20 20 20 54 68 65 20 65 76 65 6E 74 20 72 The event r
012510: 6F 75 74 69 6E 65 20 6D 61 79 20 75 73 65 20 74 outine may use t
012520: 68 65 20 49 58 20 61 6E 64 20 49 59 20 72 65 67 he IX and IY reg
012530: 69 73 74 65 72 73 20 20 62 75 74 20 20 6D 75 73 isters but mus
012540: 74 20 20 70 72 65 73 65 72 76 65 0D 0A 20 20 20 t preserve..
012550: 20 20 20 20 74 68 65 6D 2E 20 49 74 20 6D 61 79 them. It may
012560: 20 6E 6F 74 20 75 73 65 20 74 68 65 20 73 65 63 not use the sec
012570: 6F 6E 64 20 20 72 65 67 69 73 74 65 72 20 20 73 ond register s
012580: 65 74 2E 20 20 45 78 70 72 65 73 73 20 20 61 73 et. Express as
012590: 79 6E 63 68 72 6F 6E 6F 75 73 0D 0A 20 20 20 20 ynchronous..
0125A0: 20 20 20 65 76 65 6E 74 73 20 6D 61 79 20 6E 6F events may no
0125B0: 74 20 65 6E 61 62 6C 65 20 69 6E 74 65 72 72 75 t enable interru
0125C0: 70 74 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4B pts..... K
0125D0: 4C 20 49 4E 49 54 20 45 56 45 4E 54 20 65 6E 61 L INIT EVENT ena
0125E0: 62 6C 65 73 20 69 6E 74 65 72 72 75 70 74 73 2E bles interrupts.
0125F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
012600: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 20 20 20 ed entries:..
012610: 20 20 20 20 4B 4C 20 44 45 4C 20 53 59 4E 43 48 KL DEL SYNCH
012620: 52 4F 4E 4F 55 53 0D 0A 20 20 20 20 20 20 20 4B RONOUS.. K
012630: 4C 20 44 49 53 41 52 4D 20 45 56 45 4E 54 0D 0A L DISARM EVENT..
012640: 20 20 20 20 20 20 20 4B 4C 20 45 56 45 4E 54 0D KL EVENT.
012650: 0A 20 20 20 20 20 20 20 4B 4C 20 4E 45 57 20 46 . KL NEW F
012660: 41 53 54 20 54 49 43 4B 45 52 0D 0A 20 20 20 20 AST TICKER..
012670: 20 20 20 4B 4C 20 4E 45 57 20 46 52 41 4D 45 20 KL NEW FRAME
012680: 46 4C 59 0D 0A 20 20 20 20 20 20 20 4B 4C 20 4E FLY.. KL N
012690: 45 57 20 54 49 43 4B 45 52 0D 0A 20 20 20 20 20 EW TICKER..
0126A0: 20 20 4B 4C 20 53 59 4E 43 20 52 45 53 45 54 0D KL SYNC RESET.
0126B0: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
0126C0: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
0126D0: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
0126E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0126F0: 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 30 30 page 15.200
012700: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
012710: 20 20 20 20 20 31 36 36 3A 20 4B 4C 20 45 56 45 166: KL EVE
012720: 4E 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 NT
012730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012750: 20 20 20 20 20 20 23 42 43 46 32 0D 0A 0D 0A 20 #BCF2....
012760: 20 20 20 20 20 20 27 4B 69 63 6B 27 20 61 6E 20 'Kick' an
012770: 65 76 65 6E 74 20 62 6C 6F 63 6B 2E 0D 0A 0D 0A event block.....
012780: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
012790: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 65 .... The e
0127A0: 76 65 6E 74 20 6D 65 63 68 61 6E 69 73 6D 20 61 vent mechanism a
0127B0: 72 72 61 6E 67 65 73 20 20 74 68 61 74 20 20 61 rranges that a
0127C0: 6E 20 20 65 76 65 6E 74 20 20 72 6F 75 74 69 6E n event routin
0127D0: 65 20 20 62 65 20 20 63 61 6C 6C 65 64 20 20 69 e be called i
0127E0: 6E 0D 0A 20 20 20 20 20 20 20 72 65 73 70 6F 6E n.. respon
0127F0: 73 65 20 74 6F 20 65 61 63 68 20 27 6B 69 63 6B se to each 'kick
012800: 27 20 6F 66 20 61 6E 20 20 65 76 65 6E 74 20 20 ' of an event
012810: 62 6C 6F 63 6B 2E 20 20 4B 4C 20 20 45 56 45 4E block. KL EVEN
012820: 54 20 20 70 65 72 66 6F 72 6D 73 20 20 74 68 65 T performs the
012830: 0D 0A 20 20 20 20 20 20 20 27 6B 69 63 6B 27 2E .. 'kick'.
012840: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 .... Entry
012850: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
012860: 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 HL contai
012870: 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F ns the address o
012880: 66 20 74 68 65 20 65 76 65 6E 74 20 62 6C 6F 63 f the event bloc
012890: 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 k..... Exi
0128A0: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
0128B0: 0A 20 20 20 20 20 20 20 41 46 2C 20 42 43 2C 20 . AF, BC,
0128C0: 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 DE and HL corrup
0128D0: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
0128E0: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
0128F0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 reserved.....
012900: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 Notes:....
012910: 20 20 20 20 20 55 6E 6C 69 6B 65 20 74 68 65 20 Unlike the
012920: 76 61 73 74 20 6D 61 6A 6F 72 69 74 79 20 6F 66 vast majority of
012930: 20 4B 65 72 6E 65 6C 20 72 6F 75 74 69 6E 65 73 Kernel routines
012940: 20 74 68 69 73 20 72 6F 75 74 69 6E 65 20 6D 61 this routine ma
012950: 79 20 62 65 20 63 61 6C 6C 65 64 0D 0A 20 20 20 y be called..
012960: 20 20 20 20 66 72 6F 6D 20 74 68 65 20 69 6E 74 from the int
012970: 65 72 72 75 70 74 20 70 61 74 68 2E 20 42 65 63 errupt path. Bec
012980: 61 75 73 65 20 74 68 65 20 4C 4F 57 20 4A 55 4D ause the LOW JUM
012990: 50 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 69 6E P instruction in
0129A0: 20 74 68 65 20 20 6D 61 69 6E 0D 0A 20 20 20 20 the main..
0129B0: 20 20 20 66 69 72 6D 77 61 72 65 20 6A 75 6D 70 firmware jump
0129C0: 62 6C 6F 63 6B 20 65 6E 61 62 6C 65 73 20 69 6E block enables in
0129D0: 74 65 72 72 75 70 74 73 20 74 68 65 20 75 73 65 terrupts the use
0129E0: 72 20 6D 61 79 20 20 70 69 63 6B 20 20 74 68 65 r may pick the
0129F0: 20 20 61 64 64 72 65 73 73 0D 0A 20 20 20 20 20 address..
012A00: 20 20 70 61 72 74 20 6F 66 20 74 68 65 20 27 6C part of the 'l
012A10: 6F 77 20 61 64 64 72 65 73 73 27 20 6F 75 74 20 ow address' out
012A20: 6F 66 20 74 68 65 20 6A 75 6D 70 62 6C 6F 63 6B of the jumpblock
012A30: 20 61 6E 64 20 6D 61 73 6B 20 20 6F 66 66 20 20 and mask off
012A40: 74 68 65 20 20 74 6F 70 0D 0A 20 20 20 20 20 20 the top..
012A50: 20 74 77 6F 20 62 69 74 73 20 74 6F 20 65 78 74 two bits to ext
012A60: 72 61 63 74 20 74 68 65 20 61 64 64 72 65 73 73 ract the address
012A70: 20 69 6E 20 74 68 65 20 6C 6F 77 65 72 20 20 52 in the lower R
012A80: 4F 4D 20 20 6F 66 20 20 4B 4C 20 20 45 56 45 4E OM of KL EVEN
012A90: 54 2E 20 20 54 68 65 0D 0A 20 20 20 20 20 20 20 T. The..
012AA0: 66 6F 6C 6C 6F 77 69 6E 67 20 63 6F 64 65 20 64 following code d
012AB0: 6F 65 73 20 74 68 69 73 3A 0D 0A 0D 0A 20 20 20 oes this:....
012AC0: 20 20 20 20 4C 44 20 44 45 2C 28 4B 4C 5F 45 56 LD DE,(KL_EV
012AD0: 45 4E 54 2B 31 29 20 20 20 20 20 20 20 20 20 3B ENT+1) ;
012AE0: 65 78 74 72 61 63 74 20 61 64 64 72 65 73 73 20 extract address
012AF0: 6F 66 20 4C 4F 57 20 4A 55 4D 50 0D 0A 20 20 20 of LOW JUMP..
012B00: 20 20 20 20 52 45 53 20 37 2C 44 20 20 20 20 20 RES 7,D
012B10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B ;
012B20: 72 65 6D 6F 76 65 20 75 70 70 65 72 20 52 4F 4D remove upper ROM
012B30: 20 73 74 61 74 65 20 66 72 6F 6D 20 27 6C 6F 77 state from 'low
012B40: 20 61 64 64 72 65 73 73 27 0D 0A 20 20 20 20 20 address'..
012B50: 20 20 52 45 53 20 36 2C 44 20 20 20 20 20 20 20 RES 6,D
012B60: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 72 65 ;re
012B70: 6D 6F 76 65 20 6C 6F 77 65 72 20 52 4F 4D 20 73 move lower ROM s
012B80: 74 61 74 65 20 66 72 6F 6D 20 27 6C 6F 77 20 61 tate from 'low a
012B90: 64 64 72 65 73 73 27 0D 0A 20 20 20 20 20 20 20 ddress'..
012BA0: 43 41 4C 4C 20 50 43 44 45 5F 49 4E 53 54 52 55 CALL PCDE_INSTRU
012BB0: 43 54 49 4F 4E 20 20 20 20 20 20 3B 43 41 4C 4C CTION ;CALL
012BC0: 20 4B 4C 20 45 56 45 4E 54 0D 0A 0D 0A 20 20 20 KL EVENT....
012BD0: 20 20 20 20 28 49 66 20 74 68 65 20 75 73 65 72 (If the user
012BE0: 20 69 73 20 67 6F 69 6E 67 20 74 6F 20 20 70 65 is going to pe
012BF0: 72 66 6F 72 6D 20 20 74 68 69 73 20 20 6F 70 65 rform this ope
012C00: 72 61 74 69 6F 6E 20 20 72 65 70 65 61 74 65 64 ration repeated
012C10: 6C 79 20 20 69 74 20 20 69 73 0D 0A 20 20 20 20 ly it is..
012C20: 20 20 20 72 65 63 6F 6D 6D 65 6E 64 65 64 20 74 recommended t
012C30: 68 61 74 20 74 68 65 20 61 64 64 72 65 73 73 20 hat the address
012C40: 73 68 6F 75 6C 64 20 62 65 20 65 78 74 72 61 63 should be extrac
012C50: 74 65 64 20 6F 6E 63 65 20 20 61 6E 64 20 20 73 ted once and s
012C60: 68 6F 75 6C 64 20 20 62 65 0D 0A 20 20 20 20 20 hould be..
012C70: 20 20 73 74 6F 72 65 64 20 73 6F 6D 65 77 68 65 stored somewhe
012C80: 72 65 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 re)..... T
012C90: 68 65 20 65 66 66 65 63 74 20 6F 66 20 74 68 65 he effect of the
012CA0: 20 27 6B 69 63 6B 27 20 64 65 70 65 6E 64 73 20 'kick' depends
012CB0: 6F 6E 20 20 74 68 65 20 20 65 76 65 6E 74 20 20 on the event
012CC0: 63 6F 75 6E 74 20 20 69 6E 20 20 74 68 65 20 20 count in the
012CD0: 65 76 65 6E 74 0D 0A 20 20 20 20 20 20 20 62 6C event.. bl
012CE0: 6F 63 6B 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ock:....
012CF0: 20 20 20 43 6F 75 6E 74 20 3C 20 30 20 3A 20 20 Count < 0 :
012D00: 54 68 65 20 65 76 65 6E 74 20 69 73 20 64 69 73 The event is dis
012D10: 61 72 6D 65 64 2C 20 61 6E 64 20 6B 69 63 6B 69 armed, and kicki
012D20: 6E 67 20 69 74 20 68 61 73 20 6E 6F 20 65 66 66 ng it has no eff
012D30: 65 63 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ect.....
012D40: 20 20 20 43 6F 75 6E 74 20 3E 20 30 20 3A 20 20 Count > 0 :
012D50: 54 68 65 72 65 20 61 72 65 20 6F 74 68 65 72 20 There are other
012D60: 6B 69 63 6B 73 20 6F 75 74 73 74 61 6E 64 69 6E kicks outstandin
012D70: 67 20 61 6E 64 20 20 74 68 65 20 20 65 76 65 6E g and the even
012D80: 74 20 20 69 73 0D 0A 20 20 20 20 20 20 20 20 20 t is..
012D90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
012DA0: 65 69 6E 67 20 70 72 6F 63 65 73 73 65 64 2E 20 eing processed.
012DB0: 20 54 68 69 73 20 20 6B 69 63 6B 20 20 73 69 6D This kick sim
012DC0: 70 6C 79 20 20 69 6E 63 72 65 6D 65 6E 74 73 20 ply increments
012DD0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 the..
012DE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6F co
012DF0: 75 6E 74 20 28 75 6E 6C 65 73 73 20 69 74 20 68 unt (unless it h
012E00: 61 73 20 61 6C 72 65 61 64 79 20 72 65 61 63 68 as already reach
012E10: 65 64 20 74 68 65 20 20 6D 61 78 69 6D 75 6D 20 ed the maximum
012E20: 20 6F 66 0D 0A 20 20 20 20 20 20 20 20 20 20 20 of..
012E30: 20 20 20 20 20 20 20 20 20 20 20 20 20 31 32 37 127
012E40: 29 2E 20 4F 6E 63 65 20 65 76 65 6E 74 20 70 72 ). Once event pr
012E50: 6F 63 65 73 73 69 6E 67 20 68 61 73 20 20 62 65 ocessing has be
012E60: 67 75 6E 20 20 69 74 20 20 63 6F 6E 74 69 6E 75 gun it continu
012E70: 65 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 es..
012E80: 20 20 20 20 20 20 20 20 20 20 20 20 75 6E 74 69 unti
012E90: 6C 20 20 74 68 65 20 20 63 6F 75 6E 74 20 20 62 l the count b
012EA0: 65 63 6F 6D 65 73 20 20 7A 65 72 6F 20 20 6F 72 ecomes zero or
012EB0: 20 20 74 68 65 20 20 65 76 65 6E 74 20 20 20 69 the event i
012EC0: 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 s..
012ED0: 20 20 20 20 20 20 20 20 20 20 20 64 69 73 61 72 disar
012EE0: 6D 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 med.....
012EF0: 20 20 20 43 6F 75 6E 74 20 3D 20 30 20 3A 20 20 Count = 0 :
012F00: 54 68 65 20 65 76 65 6E 74 20 20 69 73 20 20 61 The event is a
012F10: 72 6D 65 64 20 20 62 75 74 20 20 65 76 65 6E 74 rmed but event
012F20: 20 20 70 72 6F 63 65 73 73 69 6E 67 20 20 69 73 processing is
012F30: 20 20 6E 6F 74 0D 0A 20 20 20 20 20 20 20 20 20 not..
012F40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 a
012F50: 63 74 69 76 65 2E 0D 0A 20 20 20 20 20 20 20 20 ctive...
012F60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012F70: 54 68 65 20 20 63 6F 75 6E 74 20 20 69 73 20 20 The count is
012F80: 69 6E 63 72 65 6D 65 6E 74 65 64 20 20 61 6E 64 incremented and
012F90: 20 20 20 65 76 65 6E 74 20 20 20 70 72 6F 63 65 event proce
012FA0: 73 73 69 6E 67 0D 0A 20 20 20 20 20 20 20 20 20 ssing..
012FB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
012FC0: 6E 69 74 69 61 74 65 64 2E 0D 0A 0D 0A 0D 0A 0D nitiated........
012FD0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
012FE0: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
012FF0: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
013000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013010: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 page 15.2
013020: 30 31 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 01..............
013030: 20 20 20 20 20 20 20 48 6F 77 20 65 76 65 6E 74 How event
013040: 20 70 72 6F 63 65 73 73 69 6E 67 20 69 73 20 69 processing is i
013050: 6E 69 74 69 61 74 65 64 20 64 65 70 65 6E 64 73 nitiated depends
013060: 20 6F 6E 20 74 68 65 20 65 76 65 6E 74 20 63 6C on the event cl
013070: 61 73 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 53 ass..... S
013080: 79 6E 63 68 72 6F 6E 6F 75 73 20 45 76 65 6E 74 ynchronous Event
013090: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s.....
0130A0: 20 53 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 Synchronous eve
0130B0: 6E 74 73 20 61 72 65 20 61 64 64 65 64 20 74 6F nts are added to
0130C0: 20 74 68 65 20 20 73 79 6E 63 68 72 6F 6E 6F 75 the synchronou
0130D0: 73 20 20 65 76 65 6E 74 20 20 71 75 65 75 65 20 s event queue
0130E0: 20 69 6E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 in..
0130F0: 70 72 69 6F 72 69 74 79 20 6F 72 64 65 72 2E 20 priority order.
013100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
013110: 10 00 00 00 02 09 50 E5 10 00 C1 02 00 00 00 02 ......P.........
013120: 10 00 C2 02 00 00 00 02 10 00 C3 02 00 00 00 02 ................
013130: 10 00 C4 02 00 00 00 02 10 00 C5 02 00 00 00 02 ................
013140: 10 00 C6 02 00 00 00 02 10 00 C7 02 00 00 00 02 ................
013150: 10 00 C8 02 00 00 00 02 10 00 C9 02 00 00 00 02 ................
013160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013200: 49 74 20 69 73 20 74 68 65 20 72 65 73 70 6F 6E It is the respon
013210: 73 69 62 69 6C 69 74 79 20 6F 66 20 74 68 65 20 sibility of the
013220: 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 72 foreground progr
013230: 61 6D 0D 0A 20 20 20 20 20 20 20 20 20 20 20 74 am.. t
013240: 6F 20 70 72 6F 63 65 73 73 20 74 68 65 20 73 79 o process the sy
013250: 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 20 nchronous event
013260: 71 75 65 75 65 20 72 65 67 75 6C 61 72 6C 79 2E queue regularly.
013270: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ......
013280: 20 53 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 Synchronous eve
013290: 6E 74 20 72 6F 75 74 69 6E 65 20 61 72 65 20 63 nt routine are c
0132A0: 61 6C 6C 65 64 20 77 68 65 6E 20 74 68 65 20 20 alled when the
0132B0: 66 6F 72 65 67 72 6F 75 6E 64 20 20 70 72 6F 67 foreground prog
0132C0: 72 61 6D 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ram..
0132D0: 63 61 6C 6C 73 20 4B 4C 20 44 4F 20 53 59 4E 43 calls KL DO SYNC
0132E0: 2C 20 74 68 65 20 65 76 65 6E 74 20 63 6F 75 6E , the event coun
0132F0: 74 20 69 73 20 74 68 65 6E 20 64 65 61 6C 74 20 t is then dealt
013300: 77 69 74 68 20 77 68 65 6E 20 4B 4C 20 20 44 4F with when KL DO
013310: 4E 45 0D 0A 20 20 20 20 20 20 20 20 20 20 20 53 NE.. S
013320: 59 4E 43 20 69 73 20 63 61 6C 6C 65 64 2E 0D 0A YNC is called...
013330: 0D 0A 20 20 20 20 20 20 20 41 73 79 6E 63 68 72 .. Asynchr
013340: 6F 6E 6F 75 73 20 45 76 65 6E 74 73 2E 0D 0A 0D onous Events....
013350: 0A 0D 0A 20 20 20 20 20 20 20 61 2E 20 4E 6F 74 ... a. Not
013360: 20 69 6E 20 74 68 65 20 49 6E 74 65 72 72 75 70 in the Interrup
013370: 74 20 50 61 74 68 0D 0A 0D 0A 0D 0A 20 20 20 20 t Path......
013380: 20 20 20 20 20 20 20 54 68 65 20 65 76 65 6E 74 The event
013390: 20 72 6F 75 74 69 6E 65 20 69 73 20 63 61 6C 6C routine is call
0133A0: 65 64 20 69 6D 6D 65 64 69 61 74 65 6C 79 2E 20 ed immediately.
0133B0: 57 68 65 6E 20 74 68 65 20 72 6F 75 74 69 6E 65 When the routine
0133C0: 20 72 65 74 75 72 6E 73 2C 0D 0A 20 20 20 20 20 returns,..
0133D0: 20 20 20 20 20 20 69 66 20 74 68 65 20 65 76 65 if the eve
0133E0: 6E 74 20 63 6F 75 6E 74 20 69 73 20 67 72 65 61 nt count is grea
0133F0: 74 65 72 20 74 68 61 6E 20 7A 65 72 6F 20 69 74 ter than zero it
013400: 20 69 73 20 64 65 63 72 65 6D 65 6E 74 65 64 2E is decremented.
013410: 20 49 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 If the..
013420: 20 20 20 20 20 63 6F 75 6E 74 20 69 73 20 73 74 count is st
013430: 69 6C 6C 20 67 72 65 61 74 65 72 20 74 68 61 6E ill greater than
013440: 20 7A 65 72 6F 20 74 68 65 6E 20 74 68 65 20 70 zero then the p
013450: 72 6F 63 65 64 75 72 65 20 69 73 20 72 65 70 65 rocedure is repe
013460: 61 74 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ated.......
013470: 20 20 62 2E 20 49 6E 20 74 68 65 20 49 6E 74 65 b. In the Inte
013480: 72 72 75 70 74 20 50 61 74 68 20 2D 20 4E 6F 72 rrupt Path - Nor
013490: 6D 61 6C 20 41 73 79 6E 63 68 72 6F 6E 6F 75 73 mal Asynchronous
0134A0: 20 45 76 65 6E 74 0D 0A 0D 0A 0D 0A 20 20 20 20 Event......
0134B0: 20 20 20 20 20 20 20 54 68 65 20 65 76 65 6E 74 The event
0134C0: 20 69 73 20 70 6C 61 63 65 64 20 6F 6E 20 74 68 is placed on th
0134D0: 65 20 69 6E 74 65 72 72 75 70 74 20 65 76 65 6E e interrupt even
0134E0: 74 20 70 65 6E 64 69 6E 67 20 71 75 65 75 65 2E t pending queue.
0134F0: 20 4F 6E 20 20 65 78 69 74 0D 0A 20 20 20 20 20 On exit..
013500: 20 20 20 20 20 20 66 72 6F 6D 20 74 68 65 20 69 from the i
013510: 6E 74 65 72 72 75 70 74 20 70 61 74 68 20 74 68 nterrupt path th
013520: 65 20 4B 65 72 6E 65 6C 20 70 72 6F 63 65 73 73 e Kernel process
013530: 65 73 20 20 61 6C 6C 20 20 65 76 65 6E 74 73 20 es all events
013540: 20 6F 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 on the..
013550: 20 20 20 20 20 69 6E 74 65 72 72 75 70 74 20 70 interrupt p
013560: 65 6E 64 69 6E 67 20 71 75 65 75 65 20 61 73 20 ending queue as
013570: 64 65 73 63 72 69 62 65 64 20 69 6E 20 28 61 29 described in (a)
013580: 20 61 62 6F 76 65 2E 20 54 68 69 73 20 6D 65 61 above. This mea
013590: 6E 73 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 ns the..
0135A0: 20 20 20 20 6E 6F 72 6D 61 6C 20 61 73 79 6E 63 normal async
0135B0: 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 20 72 6F hronous event ro
0135C0: 75 74 69 6E 65 73 20 61 72 65 20 63 61 6C 6C 65 utines are calle
0135D0: 64 20 69 6E 20 61 6E 20 20 65 78 74 65 6E 73 69 d in an extensi
0135E0: 6F 6E 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 20 on of..
0135F0: 20 20 20 6E 6F 72 6D 61 6C 20 28 6E 6F 6E 2D 69 normal (non-i
013600: 6E 74 65 72 72 75 70 74 29 20 70 72 6F 63 65 73 nterrupt) proces
013610: 73 69 6E 67 20 62 65 74 77 65 65 6E 20 69 6E 74 sing between int
013620: 65 72 72 75 70 74 20 72 65 74 75 72 6E 20 61 6E errupt return an
013630: 64 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 d the..
013640: 20 20 6D 61 69 6E 20 70 72 6F 67 72 61 6D 2E 20 main program.
013650: 54 68 65 20 20 72 6F 75 74 69 6E 65 20 20 69 73 The routine is
013660: 2C 20 20 74 68 65 72 65 66 6F 72 65 2C 20 20 6E , therefore, n
013670: 6F 74 20 20 73 75 62 6A 65 63 74 20 20 74 6F 20 ot subject to
013680: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 the..
013690: 20 72 65 73 74 72 69 63 74 69 6F 6E 73 20 69 6D restrictions im
0136A0: 70 6F 73 65 64 20 6F 6E 20 69 6E 74 65 72 72 75 posed on interru
0136B0: 70 74 20 70 61 74 68 20 72 6F 75 74 69 6E 65 73 pt path routines
0136C0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 63 2E ....... c.
0136D0: 20 49 6E 20 74 68 65 20 49 6E 74 65 72 72 75 70 In the Interrup
0136E0: 74 20 50 61 74 68 20 2D 20 45 78 70 72 65 73 73 t Path - Express
0136F0: 20 41 73 79 6E 63 68 72 6F 6E 6F 75 73 20 45 76 Asynchronous Ev
013700: 65 6E 74 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ent......
013710: 20 20 20 20 54 68 65 20 65 76 65 6E 74 20 72 6F The event ro
013720: 75 74 69 6E 65 20 69 73 20 63 61 6C 6C 65 64 20 utine is called
013730: 69 6D 6D 65 64 69 61 74 65 6C 79 2C 20 69 6E 20 immediately, in
013740: 20 74 68 65 20 20 69 6E 74 65 72 72 75 70 74 20 the interrupt
013750: 20 70 61 74 68 2E 0D 0A 20 20 20 20 20 20 20 20 path...
013760: 20 20 20 54 68 65 20 72 6F 75 74 69 6E 65 20 6D The routine m
013770: 75 73 74 20 62 65 20 61 74 20 61 20 27 6E 65 61 ust be at a 'nea
013780: 72 20 61 64 64 72 65 73 73 27 20 28 73 65 65 20 r address' (see
013790: 4B 4C 20 49 4E 49 54 20 45 56 45 4E 54 29 2E 20 KL INIT EVENT).
0137A0: 55 6E 64 65 72 0D 0A 20 20 20 20 20 20 20 20 20 Under..
0137B0: 20 20 6E 6F 20 63 69 72 63 75 6D 73 74 61 6E 63 no circumstanc
0137C0: 65 73 20 6D 61 79 20 74 68 65 20 72 6F 75 74 69 es may the routi
0137D0: 6E 65 20 65 6E 61 62 6C 65 20 69 6E 74 65 72 72 ne enable interr
0137E0: 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 upts.......
0137F0: 20 20 4B 4C 20 45 56 45 4E 54 20 65 6E 61 62 6C KL EVENT enabl
013800: 65 73 20 69 6E 74 65 72 72 75 70 74 73 20 75 6E es interrupts un
013810: 6C 65 73 73 20 69 74 20 69 73 20 20 63 61 6C 6C less it is call
013820: 65 64 20 20 66 72 6F 6D 20 20 74 68 65 20 20 69 ed from the i
013830: 6E 74 65 72 72 75 70 74 0D 0A 20 20 20 20 20 20 nterrupt..
013840: 20 70 61 74 68 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 path.......
013850: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
013860: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
013870: 4B 4C 20 49 4E 49 54 20 45 56 45 4E 54 0D 0A 20 KL INIT EVENT..
013880: 20 20 20 20 20 20 4B 4C 20 4E 45 58 54 20 53 59 KL NEXT SY
013890: 4E 43 0D 0A 20 20 20 20 20 20 20 4B 4C 20 50 4F NC.. KL PO
0138A0: 4C 4C 20 53 59 4E 43 48 52 4F 4E 4F 55 53 0D 0A LL SYNCHRONOUS..
0138B0: 20 20 20 20 20 20 20 4B 4C 20 53 59 4E 43 20 52 KL SYNC R
0138C0: 45 53 45 54 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ESET..........
0138D0: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
0138E0: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
0138F0: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
013900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013910: 70 61 67 65 20 31 35 2E 32 30 32 0D 0A 0D 0A 0D page 15.202.....
013920: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
013930: 31 36 37 3A 20 4B 4C 20 53 59 4E 43 20 52 45 53 167: KL SYNC RES
013940: 45 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ET
013950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013970: 20 23 42 43 46 35 0D 0A 0D 0A 0D 0A 20 20 20 20 #BCF5......
013980: 20 20 20 43 6C 65 61 72 20 73 79 6E 63 68 72 6F Clear synchro
013990: 6E 6F 75 73 20 65 76 65 6E 74 20 71 75 65 75 65 nous event queue
0139A0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 ....... Ac
0139B0: 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tion:......
0139C0: 20 20 54 68 65 20 73 79 6E 63 68 72 6F 6E 6F 75 The synchronou
0139D0: 73 20 65 76 65 6E 74 20 71 75 65 75 65 20 69 73 s event queue is
0139E0: 20 73 65 74 20 65 6D 70 74 79 20 2D 20 61 6E 79 set empty - any
0139F0: 20 6F 75 74 73 74 61 6E 64 69 6E 67 20 65 76 65 outstanding eve
013A00: 6E 74 73 20 20 61 72 65 0D 0A 20 20 20 20 20 20 nts are..
013A10: 20 73 69 6D 70 6C 79 20 20 64 69 73 63 61 72 64 simply discard
013A20: 65 64 2E 20 20 54 68 65 20 20 63 75 72 72 65 6E ed. The curren
013A30: 74 20 20 65 76 65 6E 74 20 20 70 72 69 6F 72 69 t event priori
013A40: 74 79 2C 20 20 75 73 65 64 20 20 62 79 20 20 4B ty, used by K
013A50: 4C 20 20 50 4F 4C 4C 0D 0A 20 20 20 20 20 20 20 L POLL..
013A60: 53 59 4E 43 48 52 4F 4E 4F 55 53 20 61 6E 64 20 SYNCHRONOUS and
013A70: 4B 4C 20 4E 45 58 54 20 53 59 4E 43 20 74 6F 20 KL NEXT SYNC to
013A80: 6D 61 73 6B 20 6F 75 74 20 20 6C 6F 77 65 72 20 mask out lower
013A90: 20 70 72 69 6F 72 69 74 79 20 20 65 76 65 6E 74 priority event
013AA0: 73 2C 20 20 69 73 0D 0A 20 20 20 20 20 20 20 72 s, is.. r
013AB0: 65 73 65 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 eset.......
013AC0: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
013AD0: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
013AE0: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A No conditions...
013AF0: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
013B00: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
013B10: 0A 20 20 20 20 20 20 20 41 46 20 61 6E 64 20 48 . AF and H
013B20: 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 L corrupt...
013B30: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
013B40: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
013B50: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
013B60: 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 Notes:......
013B70: 20 20 20 49 74 20 69 73 20 74 68 65 20 75 73 65 It is the use
013B80: 72 27 73 20 72 65 73 70 6F 6E 73 69 62 69 6C 69 r's responsibili
013B90: 74 79 20 74 6F 20 65 6E 73 75 72 65 20 74 68 61 ty to ensure tha
013BA0: 74 20 20 64 69 73 63 61 72 64 65 64 20 20 65 76 t discarded ev
013BB0: 65 6E 74 73 20 20 61 6E 64 0D 0A 20 20 20 20 20 ents and..
013BC0: 20 20 61 6E 79 20 63 75 72 72 65 6E 74 6C 79 20 any currently
013BD0: 61 63 74 69 76 65 20 65 76 65 6E 74 73 20 61 72 active events ar
013BE0: 65 20 72 65 73 65 74 2E 20 54 68 65 20 65 76 65 e reset. The eve
013BF0: 6E 74 20 20 63 6F 75 6E 74 20 20 6F 66 20 20 64 nt count of d
013C00: 69 73 63 61 72 64 65 64 0D 0A 20 20 20 20 20 20 iscarded..
013C10: 20 65 76 65 6E 74 73 20 77 69 6C 6C 20 62 65 20 events will be
013C20: 67 72 65 61 74 65 72 20 74 68 61 6E 20 7A 65 72 greater than zer
013C30: 6F 2C 20 73 6F 20 61 6E 79 20 66 75 72 74 68 65 o, so any furthe
013C40: 72 20 27 6B 69 63 6B 73 27 20 20 77 69 6C 6C 20 r 'kicks' will
013C50: 20 73 69 6D 70 6C 79 0D 0A 20 20 20 20 20 20 20 simply..
013C60: 69 6E 63 72 65 6D 65 6E 74 20 74 68 65 20 63 6F increment the co
013C70: 75 6E 74 2C 20 62 75 74 20 6E 6F 74 20 61 64 64 unt, but not add
013C80: 20 74 68 65 20 65 76 65 6E 74 20 74 6F 20 20 74 the event to t
013C90: 68 65 20 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 he synchronous
013CA0: 20 65 76 65 6E 74 0D 0A 20 20 20 20 20 20 20 71 event.. q
013CB0: 75 65 75 65 20 2D 20 74 68 65 20 65 76 65 6E 74 ueue - the event
013CC0: 73 20 61 72 65 2C 20 74 68 65 72 65 66 6F 72 65 s are, therefore
013CD0: 2C 20 65 66 66 65 63 74 69 76 65 6C 79 20 64 69 , effectively di
013CE0: 73 61 72 6D 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D sarmed..........
013CF0: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
013D00: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
013D10: 20 20 20 20 20 4B 4C 20 44 45 4C 20 53 59 4E 43 KL DEL SYNC
013D20: 48 52 4F 4E 4F 55 53 0D 0A 20 20 20 20 20 20 20 HRONOUS..
013D30: 4B 4C 20 4E 45 58 54 20 53 59 4E 43 0D 0A 20 20 KL NEXT SYNC..
013D40: 20 20 20 20 20 4B 4C 20 50 4F 4C 4C 20 53 59 4E KL POLL SYN
013D50: 43 48 52 4F 4E 4F 55 53 0D 0A 0D 0A 0D 0A 0D 0A CHRONOUS........
013D60: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
013D70: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
013D80: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
013D90: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
013DA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013DB0: 20 20 20 20 70 61 67 65 20 31 35 2E 32 30 33 0D page 15.203.
013DC0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
013DD0: 20 20 20 20 31 36 38 3A 20 4B 4C 20 44 45 4C 20 168: KL DEL
013DE0: 53 59 4E 43 48 52 4F 4E 4F 55 53 20 20 20 20 20 SYNCHRONOUS
013DF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013E00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013E10: 20 20 20 20 20 23 42 43 46 38 0D 0A 0D 0A 0D 0A #BCF8......
013E20: 20 20 20 20 20 20 20 52 65 6D 6F 76 65 20 61 20 Remove a
013E30: 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E synchronous even
013E40: 74 20 66 72 6F 6D 20 74 68 65 20 65 76 65 6E 74 t from the event
013E50: 20 71 75 65 75 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 queue.......
013E60: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D Action:.....
013E70: 0A 20 20 20 20 20 20 20 54 68 65 20 65 76 65 6E . The even
013E80: 74 20 69 73 20 64 69 73 61 72 6D 65 64 2E 20 49 t is disarmed. I
013E90: 66 20 69 74 20 69 73 20 6F 6E 20 74 68 65 20 73 f it is on the s
013EA0: 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 ynchronous event
013EB0: 20 71 75 65 75 65 20 74 68 65 6E 20 69 74 0D 0A queue then it..
013EC0: 20 20 20 20 20 20 20 69 73 20 72 65 6D 6F 76 65 is remove
013ED0: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 d....... E
013EE0: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
013EF0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 ...... HL
013F00: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 contains the add
013F10: 72 65 73 73 20 6F 66 20 74 68 65 20 65 76 65 6E ress of the even
013F20: 74 20 62 6C 6F 63 6B 2E 0D 0A 0D 0A 0D 0A 20 20 t block.......
013F30: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
013F40: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
013F50: 20 20 41 46 2C 20 42 43 2C 20 44 45 20 61 6E 64 AF, BC, DE and
013F60: 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 HL corrupt...
013F70: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
013F80: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
013F90: 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ed.........
013FA0: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
013FB0: 20 20 20 20 20 44 65 6C 65 74 69 6E 67 20 61 6E Deleting an
013FC0: 20 65 76 65 6E 74 20 66 72 6F 6D 20 74 68 65 20 event from the
013FD0: 71 75 65 75 65 20 70 72 65 76 65 6E 74 73 20 74 queue prevents t
013FE0: 68 65 20 6F 75 74 73 74 61 6E 64 69 6E 67 20 27 he outstanding '
013FF0: 6B 69 63 6B 73 27 20 66 72 6F 6D 0D 0A 20 20 20 kicks' from..
014000: 20 20 20 20 62 65 69 6E 67 20 70 72 6F 63 65 73 being proces
014010: 73 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 sed.......
014020: 20 42 65 66 6F 72 65 20 61 20 73 79 6E 63 68 72 Before a synchr
014030: 6F 6E 6F 75 73 20 20 65 76 65 6E 74 20 20 62 6C onous event bl
014040: 6F 63 6B 20 20 69 73 20 20 72 65 73 65 74 20 20 ock is reset
014050: 6F 72 20 20 72 65 69 6E 69 74 69 61 6C 69 7A 65 or reinitialize
014060: 64 20 20 74 68 69 73 0D 0A 20 20 20 20 20 20 20 d this..
014070: 72 6F 75 74 69 6E 65 20 73 68 6F 75 6C 64 20 62 routine should b
014080: 65 20 75 73 65 64 20 74 6F 20 65 6E 73 75 72 65 e used to ensure
014090: 20 74 68 61 74 20 69 74 20 69 73 20 6E 6F 74 20 that it is not
0140A0: 63 75 72 72 65 6E 74 6C 79 20 70 65 6E 64 69 6E currently pendin
0140B0: 67 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 g....... T
0140C0: 68 69 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 his routine enab
0140D0: 6C 65 73 20 69 6E 74 65 72 72 75 70 74 73 2E 0D les interrupts..
0140E0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 ....... Re
0140F0: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
014100: 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4C 20 44 49 .... KL DI
014110: 53 41 52 4D 20 45 56 45 4E 54 0D 0A 20 20 20 20 SARM EVENT..
014120: 20 20 20 4B 4C 20 49 4E 49 54 20 45 56 45 4E 54 KL INIT EVENT
014130: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 53 59 4E 43 .. KL SYNC
014140: 20 52 45 53 45 54 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A RESET..........
014150: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
014160: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
014170: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
014180: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
014190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0141A0: 70 61 67 65 20 31 35 2E 32 30 34 0D 0A 0D 0A 0D page 15.204.....
0141B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0141C0: 31 36 39 3A 20 4B 4C 20 4E 45 58 54 20 53 59 4E 169: KL NEXT SYN
0141D0: 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 C
0141E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0141F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014200: 20 23 42 43 46 42 0D 0A 0D 0A 20 20 20 20 20 20 #BCFB....
014210: 20 47 65 74 20 6E 65 78 74 20 65 76 65 6E 74 20 Get next event
014220: 66 72 6F 6D 20 74 68 65 20 71 75 65 75 65 2E 0D from the queue..
014230: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
014240: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 :.... If t
014250: 68 65 72 65 20 69 73 20 61 6E 20 65 76 65 6E 74 here is an event
014260: 20 6F 6E 20 74 68 65 20 73 79 6E 63 68 72 6F 6E on the synchron
014270: 6F 75 73 20 65 76 65 6E 74 20 71 75 65 75 65 20 ous event queue
014280: 77 68 6F 73 65 20 70 72 69 6F 72 69 74 79 20 20 whose priority
014290: 69 73 0D 0A 20 20 20 20 20 20 20 67 72 65 61 74 is.. great
0142A0: 65 72 20 74 68 61 6E 20 74 68 65 20 63 75 72 72 er than the curr
0142B0: 65 6E 74 20 65 76 65 6E 74 20 70 72 69 6F 72 69 ent event priori
0142C0: 74 79 20 20 28 69 66 20 20 61 6E 79 29 2C 20 20 ty (if any),
0142D0: 74 68 65 6E 20 20 72 65 6D 6F 76 65 20 20 74 68 then remove th
0142E0: 65 0D 0A 20 20 20 20 20 20 20 65 76 65 6E 74 20 e.. event
0142F0: 66 72 6F 6D 20 74 68 65 20 71 75 65 75 65 2C 20 from the queue,
014300: 73 65 74 20 74 68 65 20 63 75 72 72 65 6E 74 20 set the current
014310: 65 76 65 6E 74 20 70 72 69 6F 72 69 74 79 20 74 event priority t
014320: 6F 20 20 74 68 61 74 20 20 6F 66 20 20 74 68 65 o that of the
014330: 0D 0A 0D 0A 20 20 20 20 20 20 20 65 76 65 6E 74 .... event
014340: 20 72 65 6D 6F 76 65 64 20 61 6E 64 20 72 65 74 removed and ret
014350: 75 72 6E 20 74 68 65 20 70 72 65 76 69 6F 75 73 urn the previous
014360: 20 65 76 65 6E 74 20 70 72 69 6F 72 69 74 79 2E event priority.
014370: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 .... Entry
014380: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
014390: 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 No condit
0143A0: 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ions.....
0143B0: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
0143C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 .... If th
0143D0: 65 72 65 20 69 73 20 61 6E 20 65 76 65 6E 74 20 ere is an event
0143E0: 74 6F 20 62 65 20 70 72 6F 63 65 73 73 65 64 3A to be processed:
0143F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
014400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
014410: 11 00 00 00 02 09 50 E5 11 00 C1 02 00 00 00 02 ......P.........
014420: 11 00 C2 02 00 00 00 02 11 00 C3 02 00 00 00 02 ................
014430: 11 00 C4 02 00 00 00 02 11 00 C5 02 00 00 00 02 ................
014440: 11 00 C6 02 00 00 00 02 11 00 C7 02 00 00 00 02 ................
014450: 11 00 C8 02 00 00 00 02 11 00 C9 02 00 00 00 02 ................
014460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014500: 20 20 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D Carry true..
014510: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
014520: 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 HL contains the
014530: 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 address of the
014540: 65 76 65 6E 74 20 62 6C 6F 63 6B 2E 0D 0A 20 20 event block...
014550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 A
014560: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 72 65 contains the pre
014570: 76 69 6F 75 73 20 65 76 65 6E 74 20 70 72 69 6F vious event prio
014580: 72 69 74 79 20 28 69 66 20 61 6E 79 29 2E 0D 0A rity (if any)...
014590: 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 72 .. If ther
0145A0: 65 20 69 73 20 6E 6F 20 65 76 65 6E 74 20 74 6F e is no event to
0145B0: 20 62 65 20 70 72 6F 63 65 73 73 65 64 3A 0D 0A be processed:..
0145C0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0145D0: 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A Carry false...
0145E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0145F0: 41 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 A and HL corrupt
014600: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 ..... Alwa
014610: 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ys:....
014620: 20 20 20 20 20 20 20 44 45 20 63 6F 72 72 75 70 DE corrup
014630: 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 t...
014640: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
014650: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
014660: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 d..... Not
014670: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
014680: 4B 4C 20 4E 45 58 54 20 53 59 4E 43 20 72 65 74 KL NEXT SYNC ret
014690: 75 72 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 urns the address
0146A0: 20 6F 66 20 74 68 65 20 6E 65 78 74 20 65 76 65 of the next eve
0146B0: 6E 74 20 74 6F 20 62 65 20 70 72 6F 63 65 73 73 nt to be process
0146C0: 65 64 2C 20 69 66 0D 0A 20 20 20 20 20 20 20 61 ed, if.. a
0146D0: 6E 79 2C 20 77 68 69 63 68 20 69 74 20 68 61 73 ny, which it has
0146E0: 20 74 61 6B 65 6E 20 6F 66 66 20 74 68 65 20 20 taken off the
0146F0: 73 79 6E 63 68 72 6F 6E 6F 75 73 20 20 65 76 65 synchronous eve
014700: 6E 74 20 20 71 75 65 75 65 20 20 61 6E 64 20 20 nt queue and
014710: 77 68 6F 73 65 0D 0A 20 20 20 20 20 20 20 70 72 whose.. pr
014720: 69 6F 72 69 74 79 20 68 61 73 20 6E 6F 77 20 62 iority has now b
014730: 65 65 6E 20 73 65 74 20 61 73 20 74 68 65 20 65 een set as the e
014740: 76 65 6E 74 20 70 72 69 6F 72 69 74 79 20 6D 61 vent priority ma
014750: 73 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 sk.......
014760: 54 68 65 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 The foreground p
014770: 72 6F 67 72 61 6D 20 73 68 6F 75 6C 64 20 63 61 rogram should ca
014780: 6C 6C 20 4B 4C 20 50 4F 4C 4C 20 20 53 59 4E 43 ll KL POLL SYNC
014790: 48 52 4F 4E 4F 55 53 20 20 72 65 67 75 6C 61 72 HRONOUS regular
0147A0: 6C 79 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 63 ly to.. c
0147B0: 68 65 63 6B 20 66 6F 72 20 6F 75 74 73 74 61 6E heck for outstan
0147C0: 64 69 6E 67 20 65 76 65 6E 74 73 2E 20 4B 4C 20 ding events. KL
0147D0: 50 4F 4C 4C 20 53 59 4E 43 48 52 4F 4E 4F 55 53 POLL SYNCHRONOUS
0147E0: 20 69 73 20 61 20 20 73 68 6F 72 74 20 20 72 6F is a short ro
0147F0: 75 74 69 6E 65 0D 0A 20 20 20 20 20 20 20 69 6E utine.. in
014800: 20 52 41 4D 2C 20 73 6F 20 63 61 6C 6C 69 6E 67 RAM, so calling
014810: 20 69 74 20 69 6D 70 6F 73 65 73 20 6C 69 74 74 it imposes litt
014820: 6C 65 20 6F 76 65 72 68 65 61 64 2E 20 49 66 20 le overhead. If
014830: 74 68 65 72 65 20 20 69 73 20 20 61 6E 20 20 65 there is an e
014840: 76 65 6E 74 0D 0A 20 20 20 20 20 20 20 6F 75 74 vent.. out
014850: 73 74 61 6E 64 69 6E 67 20 74 68 65 6E 20 74 68 standing then th
014860: 65 20 61 62 6F 76 65 20 70 72 6F 63 65 64 75 72 e above procedur
014870: 65 20 73 68 6F 75 6C 64 20 62 65 20 69 6E 76 6F e should be invo
014880: 6B 65 64 2C 20 61 6E 64 20 73 68 6F 75 6C 64 20 ked, and should
014890: 20 62 65 0D 0A 20 20 20 20 20 20 20 72 65 70 65 be.. repe
0148A0: 61 74 65 64 20 75 6E 74 69 6C 20 74 68 65 20 65 ated until the e
0148B0: 76 65 6E 74 20 71 75 65 75 65 20 69 73 20 65 6D vent queue is em
0148C0: 70 74 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 pty.......
0148D0: 20 54 68 65 20 63 75 72 72 65 6E 74 20 65 76 65 The current eve
0148E0: 6E 74 20 70 72 69 6F 72 69 74 79 20 6D 65 63 68 nt priority mech
0148F0: 61 6E 69 73 6D 20 61 6C 6C 6F 77 73 20 65 76 65 anism allows eve
014900: 6E 74 20 72 6F 75 74 69 6E 65 20 74 6F 20 70 6F nt routine to po
014910: 6C 6C 20 66 6F 72 2C 0D 0A 20 20 20 20 20 20 20 ll for,..
014920: 61 6E 64 20 70 72 6F 63 65 73 73 2C 20 65 76 65 and process, eve
014930: 6E 74 73 20 6F 66 20 68 69 67 68 65 72 20 70 72 nts of higher pr
014940: 69 6F 72 69 74 79 2E 20 54 68 65 20 70 72 69 6F iority. The prio
014950: 72 69 74 79 20 72 65 74 75 72 6E 65 64 20 62 79 rity returned by
014960: 20 20 74 68 69 73 0D 0A 20 20 20 20 20 20 20 72 this.. r
014970: 6F 75 74 69 6E 65 20 6D 75 73 74 20 62 65 20 70 outine must be p
014980: 72 65 73 65 72 76 65 64 20 75 6E 74 69 6C 20 69 reserved until i
014990: 74 20 69 73 20 70 61 73 73 65 64 20 74 6F 20 4B t is passed to K
0149A0: 4C 20 44 4F 20 53 59 4E 43 2E 0D 0A 0D 0A 0D 0A L DO SYNC.......
0149B0: 20 20 20 20 20 20 20 4B 4C 20 4E 45 58 54 20 53 KL NEXT S
0149C0: 59 4E 43 20 65 6E 61 62 6C 65 73 20 69 6E 74 65 YNC enables inte
0149D0: 72 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D rrupts..........
0149E0: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
0149F0: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
014A00: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
014A10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014A20: 20 20 20 70 61 67 65 20 31 35 2E 32 30 35 0D 0A page 15.205..
014A30: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
014A40: 20 20 20 54 68 65 20 70 72 6F 63 65 64 75 72 65 The procedure
014A50: 20 66 6F 72 20 70 72 6F 63 65 73 73 69 6E 67 20 for processing
014A60: 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E synchronous even
014A70: 74 73 20 69 73 20 61 73 20 66 6F 6C 6C 6F 77 73 ts is as follows
014A80: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 52 :...... TR
014A90: 59 20 41 47 41 49 4E 3A 0D 0A 20 20 20 20 20 20 Y AGAIN:..
014AA0: 20 20 20 20 20 43 41 4C 4C 20 4B 4C 5F 4E 45 58 CALL KL_NEX
014AB0: 54 5F 53 59 4E 43 20 20 20 20 20 20 20 20 3B 72 T_SYNC ;r
014AC0: 65 74 75 72 6E 20 6E 65 78 74 20 65 76 65 6E 74 eturn next event
014AD0: 2C 20 69 66 20 61 6E 79 0D 0A 20 20 20 20 20 20 , if any..
014AE0: 20 20 20 20 20 4A 52 20 4E 43 2C 3F 3F 3F 3F 3F JR NC,?????
014AF0: 3F 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 6A ? ;j
014B00: 75 6D 70 20 69 66 20 6E 6F 20 65 76 65 6E 74 20 ump if no event
014B10: 74 6F 20 70 72 6F 63 65 73 73 0D 0A 20 20 20 20 to process..
014B20: 20 20 20 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 ;..
014B30: 20 50 55 53 48 20 48 4C 20 20 20 20 20 20 20 20 PUSH HL
014B40: 20 20 20 20 20 20 20 20 20 20 3B 73 61 76 65 20 ;save
014B50: 61 64 64 72 65 73 73 20 6F 66 20 65 76 65 6E 74 address of event
014B60: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 50 55 53 .. PUS
014B70: 48 20 41 46 20 20 20 20 20 20 20 20 20 20 20 20 H AF
014B80: 20 20 20 20 20 20 3B 73 61 76 65 20 70 72 65 76 ;save prev
014B90: 69 6F 75 73 20 65 76 65 6E 74 20 70 72 69 6F 72 ious event prior
014BA0: 69 74 79 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ity..
014BB0: 43 41 4C 4C 20 4B 4C 5F 44 4F 5F 53 59 4E 43 20 CALL KL_DO_SYNC
014BC0: 20 20 20 20 20 20 20 20 20 3B 63 61 6C 6C 20 74 ;call t
014BD0: 68 65 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 he event routine
014BE0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 50 4F 50 .. POP
014BF0: 20 41 46 0D 0A 20 20 20 20 20 20 20 20 20 20 20 AF..
014C00: 50 4F 50 20 48 4C 0D 0A 20 20 20 20 20 20 20 3B POP HL.. ;
014C10: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 43 41 4C .. CAL
014C20: 4C 20 4B 4C 5F 44 4F 4E 45 5F 53 59 4E 43 20 20 L KL_DONE_SYNC
014C30: 20 20 20 20 20 20 3B 72 65 73 65 74 20 74 68 65 ;reset the
014C40: 20 65 76 65 6E 74 20 70 72 69 6F 72 69 74 79 20 event priority
014C50: 6D 61 73 6B 2C 20 64 65 61 6C 20 77 69 74 68 0D mask, deal with.
014C60: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
014C70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014C80: 20 20 20 20 20 20 20 20 20 3B 74 68 65 20 65 76 ;the ev
014C90: 65 6E 74 20 63 6F 75 6E 74 20 61 6E 64 20 70 75 ent count and pu
014CA0: 74 20 74 68 65 20 20 65 76 65 6E 74 20 20 62 61 t the event ba
014CB0: 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ck..
014CC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014CD0: 20 20 20 20 20 20 20 20 3B 6F 6E 20 74 68 65 20 ;on the
014CE0: 71 75 65 75 65 20 69 66 20 74 68 65 20 63 6F 75 queue if the cou
014CF0: 6E 74 20 69 73 20 73 74 69 6C 6C 0D 0A 0D 0A 0D nt is still.....
014D00: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
014D10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014D20: 20 20 20 20 20 3B 67 72 65 61 74 65 72 20 74 68 ;greater th
014D30: 61 6E 20 7A 65 72 6F 0D 0A 20 20 20 20 20 20 20 an zero..
014D40: 20 20 20 20 4A 52 20 54 52 59 5F 41 47 41 49 4E JR TRY_AGAIN
014D50: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 73 65 ;se
014D60: 65 20 69 66 20 61 6E 79 20 20 65 76 65 6E 74 73 e if any events
014D70: 20 20 61 72 65 20 20 73 74 69 6C 6C 20 20 61 77 are still aw
014D80: 61 69 74 69 6E 67 0D 0A 20 20 20 20 20 20 20 20 aiting..
014D90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014DA0: 20 20 20 20 20 20 20 20 20 20 20 20 3B 70 72 6F ;pro
014DB0: 63 65 73 73 69 6E 67 0D 0A 0D 0A 0D 0A 0D 0A 20 cessing........
014DC0: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
014DD0: 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tries:......
014DE0: 20 20 20 4B 4C 20 44 4F 4E 45 20 53 59 4E 43 0D KL DONE SYNC.
014DF0: 0A 20 20 20 20 20 20 20 4B 4C 20 44 4F 20 53 59 . KL DO SY
014E00: 4E 43 0D 0A 20 20 20 20 20 20 20 4B 4C 20 45 56 NC.. KL EV
014E10: 45 4E 54 0D 0A 20 20 20 20 20 20 20 4B 4C 20 49 ENT.. KL I
014E20: 4E 49 54 20 45 56 45 4E 54 0D 0A 20 20 20 20 20 NIT EVENT..
014E30: 20 20 4B 4C 20 50 4F 4C 4C 20 53 59 4E 43 48 52 KL POLL SYNCHR
014E40: 4F 4E 4F 55 53 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ONOUS...........
014E50: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
014E60: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
014E70: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
014E80: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
014E90: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
014EA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014EB0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
014EC0: 31 35 2E 32 30 36 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.206..........
014ED0: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 37 30 3A 20 .... 170:
014EE0: 4B 4C 20 44 4F 20 53 59 4E 43 20 20 20 20 20 20 KL DO SYNC
014EF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014F00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014F10: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 46 #BCF
014F20: 45 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 50 65 E...... Pe
014F30: 72 66 6F 72 6D 20 61 6E 20 65 76 65 6E 74 20 72 rform an event r
014F40: 6F 75 74 69 6E 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 outine.......
014F50: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D Action:.....
014F60: 0A 20 20 20 20 20 20 20 43 61 6C 6C 20 74 68 65 . Call the
014F70: 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 66 event routine f
014F80: 6F 72 20 61 20 67 69 76 65 6E 20 65 76 65 6E 74 or a given event
014F90: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ....... En
014FA0: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
014FB0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 ..... HL c
014FC0: 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 ontains the addr
014FD0: 65 73 73 20 6F 66 20 74 68 65 20 65 76 65 6E 74 ess of the event
014FE0: 20 62 6C 6F 63 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 block.......
014FF0: 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 Exit conditi
015000: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
015010: 20 41 46 2C 20 42 43 2C 20 44 45 20 61 6E 64 20 AF, BC, DE and
015020: 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 HL corrupt...
015030: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
015040: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
015050: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E d....... N
015060: 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 otes:......
015070: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 69 This routine i
015080: 73 20 69 6E 74 65 6E 64 65 64 20 74 6F 20 62 65 s intended to be
015090: 20 63 61 6C 6C 65 64 20 74 6F 20 70 72 6F 63 65 called to proce
0150A0: 73 73 20 20 61 6E 20 20 65 76 65 6E 74 20 20 61 ss an event a
0150B0: 66 74 65 72 20 20 4B 4C 0D 0A 20 20 20 20 20 20 fter KL..
0150C0: 20 4E 45 58 54 20 53 59 4E 43 20 68 61 73 20 66 NEXT SYNC has f
0150D0: 6F 75 6E 64 20 69 74 20 74 6F 20 62 65 20 70 65 ound it to be pe
0150E0: 6E 64 69 6E 67 2E 20 55 73 65 20 6F 66 20 74 68 nding. Use of th
0150F0: 69 73 20 65 6E 74 72 79 20 61 74 20 20 61 6E 79 is entry at any
015100: 20 20 6F 74 68 65 72 0D 0A 20 20 20 20 20 20 20 other..
015110: 74 69 6D 65 20 69 73 20 6E 6F 74 20 72 65 63 6F time is not reco
015120: 6D 6D 65 6E 64 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 mmended.......
015130: 20 20 20 20 20 53 65 65 20 20 4B 4C 20 20 4E 45 See KL NE
015140: 58 54 20 20 53 59 4E 43 20 20 61 62 6F 76 65 20 XT SYNC above
015150: 20 66 6F 72 20 20 74 68 65 20 20 67 65 6E 65 72 for the gener
015160: 61 6C 20 20 73 63 68 65 6D 65 20 20 66 6F 72 20 al scheme for
015170: 20 70 72 6F 63 65 73 73 69 6E 67 0D 0A 20 20 20 processing..
015180: 20 20 20 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 synchronous
015190: 65 76 65 6E 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 events.......
0151A0: 20 20 20 20 4B 4C 20 44 4F 20 53 59 4E 43 20 64 KL DO SYNC d
0151B0: 6F 65 73 20 6E 6F 74 20 69 74 73 65 6C 66 20 61 oes not itself a
0151C0: 66 66 65 63 74 20 74 68 65 20 65 76 65 6E 74 20 ffect the event
0151D0: 63 6F 75 6E 74 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 count.........
0151E0: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
0151F0: 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ries:......
015200: 20 20 4B 4C 20 44 4F 4E 45 20 53 59 4E 43 0D 0A KL DONE SYNC..
015210: 20 20 20 20 20 20 20 4B 4C 20 4E 45 58 54 20 53 KL NEXT S
015220: 59 4E 43 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D YNC.............
015230: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ...............
015240: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
015250: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
015260: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
015270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015280: 20 70 61 67 65 20 31 35 2E 32 30 37 0D 0A 0D 0A page 15.207....
015290: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
0152A0: 20 31 37 31 3A 20 4B 4C 20 44 4F 4E 45 20 53 59 171: KL DONE SY
0152B0: 4E 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 NC
0152C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0152D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0152E0: 20 20 23 42 44 30 31 0D 0A 0D 0A 20 20 20 20 20 #BD01....
0152F0: 20 20 46 69 6E 69 73 68 20 70 72 6F 63 65 73 73 Finish process
015300: 69 6E 67 20 61 6E 20 65 76 65 6E 74 2E 0D 0A 0D ing an event....
015310: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
015320: 0A 0D 0A 20 20 20 20 20 20 20 4F 6E 63 65 20 61 ... Once a
015330: 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 synchronous eve
015340: 6E 74 20 68 61 73 20 62 65 65 6E 20 70 72 6F 63 nt has been proc
015350: 65 73 73 65 64 2C 20 20 62 79 20 20 69 6E 76 6F essed, by invo
015360: 6B 69 6E 67 20 20 69 74 73 20 20 65 76 65 6E 74 king its event
015370: 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 6E 65 .. routine
015380: 20 76 69 61 20 4B 4C 20 44 4F 20 53 59 4E 43 2C via KL DO SYNC,
015390: 20 74 68 69 73 20 65 6E 74 72 79 20 20 6D 75 73 this entry mus
0153A0: 74 20 20 62 65 20 20 63 61 6C 6C 65 64 20 20 74 t be called t
0153B0: 6F 20 20 72 65 73 74 6F 72 65 20 20 74 68 65 0D o restore the.
0153C0: 0A 20 20 20 20 20 20 20 63 75 72 72 65 6E 74 20 . current
0153D0: 65 76 65 6E 74 20 70 72 69 6F 72 69 74 79 20 61 event priority a
0153E0: 6E 64 20 74 6F 20 64 65 61 6C 20 77 69 74 68 20 nd to deal with
0153F0: 74 68 65 20 65 76 65 6E 74 20 63 6F 75 6E 74 2E the event count.
015400: 20 49 66 20 74 68 65 20 20 63 6F 75 6E 74 0D 0A If the count..
015410: 20 20 20 20 20 20 20 72 65 6D 61 69 6E 73 20 67 remains g
015420: 72 65 61 74 65 72 20 74 68 61 6E 20 7A 65 72 6F reater than zero
015430: 20 74 68 65 20 20 65 76 65 6E 74 20 20 62 6C 6F the event blo
015440: 63 6B 20 20 69 73 20 20 70 6C 61 63 65 64 20 20 ck is placed
015450: 62 61 63 6B 20 20 6F 6E 20 20 74 68 65 0D 0A 20 back on the..
015460: 20 20 20 20 20 20 73 79 6E 63 68 72 6F 6E 6F 75 synchronou
015470: 73 20 65 76 65 6E 74 20 71 75 65 75 65 2E 0D 0A s event queue...
015480: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
015490: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
0154A0: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
0154B0: 74 68 65 20 70 72 65 76 69 6F 75 73 20 65 76 65 the previous eve
0154C0: 6E 74 20 70 72 69 6F 72 69 74 79 2E 0D 0A 20 20 nt priority...
0154D0: 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 HL contains
0154E0: 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 the address of
0154F0: 74 68 65 20 65 76 65 6E 74 20 62 6C 6F 63 6B 2E the event block.
015500: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
015510: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
015520: 20 20 20 20 20 20 41 46 2C 20 42 43 2C 20 44 45 AF, BC, DE
015530: 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E and HL corrupt.
015540: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
015550: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
015560: 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 served.....
015570: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
015580: 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E This routin
015590: 65 20 69 73 20 69 6E 74 65 6E 64 65 64 20 74 6F e is intended to
0155A0: 20 62 65 20 63 61 6C 6C 65 64 20 61 66 74 65 72 be called after
0155B0: 20 63 61 6C 6C 69 6E 67 20 4B 4C 20 4E 45 58 54 calling KL NEXT
0155C0: 20 20 53 59 4E 43 2C 20 20 74 6F 0D 0A 20 20 20 SYNC, to..
0155D0: 20 20 20 20 66 69 6E 64 20 61 20 70 65 6E 64 69 find a pendi
0155E0: 6E 67 20 65 76 65 6E 74 2C 20 61 6E 64 20 4B 4C ng event, and KL
0155F0: 20 44 4F 20 53 59 4E 43 2C 20 74 6F 20 72 75 6E DO SYNC, to run
015600: 20 20 74 68 65 20 20 65 76 65 6E 74 20 20 72 6F the event ro
015610: 75 74 69 6E 65 2E 20 20 49 74 0D 0A 20 20 20 20 utine. It..
015620: 20 20 20 75 73 65 73 20 74 68 65 20 70 72 65 76 uses the prev
015630: 69 6F 75 73 20 65 76 65 6E 74 20 70 72 69 6F 72 ious event prior
015640: 69 74 79 20 61 6E 64 20 74 68 65 20 65 76 65 6E ity and the even
015650: 74 20 62 6C 6F 63 6B 20 61 64 64 72 65 73 73 20 t block address
015660: 20 72 65 74 75 72 6E 65 64 0D 0A 20 20 20 20 20 returned..
015670: 20 20 62 79 20 4B 4C 20 4E 45 58 54 20 53 59 4E by KL NEXT SYN
015680: 43 2E 20 4F 74 68 65 72 20 75 73 65 73 20 6F 66 C. Other uses of
015690: 20 74 68 69 73 20 65 6E 74 72 79 20 61 72 65 20 this entry are
0156A0: 6E 6F 74 20 72 65 63 6F 6D 6D 65 6E 64 65 64 2E not recommended.
0156B0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 65 ...... See
0156C0: 20 20 4B 4C 20 20 4E 45 58 54 20 20 53 59 4E 43 KL NEXT SYNC
0156D0: 20 20 61 62 6F 76 65 20 20 66 6F 72 20 20 74 68 above for th
0156E0: 65 20 20 67 65 6E 65 72 61 6C 20 20 73 63 68 65 e general sche
0156F0: 6D 65 20 20 66 6F 72 20 20 70 72 6F 63 65 73 73 me for process
015700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
015710: 12 00 00 00 02 09 50 E5 12 00 C1 02 00 00 00 02 ......P.........
015720: 12 00 C2 02 00 00 00 02 12 00 C3 02 00 00 00 02 ................
015730: 12 00 C4 02 00 00 00 02 12 00 C5 02 00 00 00 02 ................
015740: 12 00 C6 02 00 00 00 02 12 00 C7 02 00 00 00 02 ................
015750: 12 00 C8 02 00 00 00 02 12 00 C9 02 00 00 00 02 ................
015760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015800: 69 6E 67 0D 0A 20 20 20 20 20 20 20 73 79 6E 63 ing.. sync
015810: 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 2E 0D hronous events..
015820: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 73 74 ..... Rest
015830: 6F 72 69 6E 67 20 20 74 68 65 20 20 63 75 72 72 oring the curr
015840: 65 6E 74 20 20 65 76 65 6E 74 20 20 70 72 69 6F ent event prio
015850: 72 69 74 79 20 20 69 73 20 20 61 6E 20 20 65 73 rity is an es
015860: 73 65 6E 74 69 61 6C 20 20 73 74 65 70 20 20 20 sential step
015870: 69 6E 0D 0A 20 20 20 20 20 20 20 6D 61 69 6E 74 in.. maint
015880: 61 69 6E 69 6E 67 20 74 68 65 20 73 79 6E 63 68 aining the synch
015890: 72 6F 6E 6F 75 73 20 65 76 65 6E 74 20 70 72 69 ronous event pri
0158A0: 6F 72 69 74 79 20 73 63 68 65 6D 65 2E 0D 0A 0D ority scheme....
0158B0: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
0158C0: 20 65 76 65 6E 74 20 63 6F 75 6E 74 20 69 73 20 event count is
0158D0: 67 72 65 61 74 65 72 20 74 68 61 6E 20 7A 65 72 greater than zer
0158E0: 6F 20 74 68 65 6E 20 69 74 20 69 73 20 64 65 63 o then it is dec
0158F0: 72 65 6D 65 6E 74 65 64 2E 20 49 66 20 74 68 65 remented. If the
015900: 0D 0A 20 20 20 20 20 20 20 63 6F 75 6E 74 20 69 .. count i
015910: 73 20 73 74 69 6C 6C 20 20 67 72 65 61 74 65 72 s still greater
015920: 20 20 74 68 61 6E 20 20 7A 65 72 6F 20 20 74 68 than zero th
015930: 65 6E 20 20 74 68 65 72 65 20 20 61 72 65 20 20 en there are
015940: 66 75 72 74 68 65 72 20 20 65 76 65 6E 74 73 0D further events.
015950: 0A 20 20 20 20 20 20 20 6F 75 74 73 74 61 6E 64 . outstand
015960: 69 6E 67 20 61 6E 64 20 74 68 65 20 65 76 65 6E ing and the even
015970: 74 20 69 73 20 70 6C 61 63 65 64 20 20 62 61 63 t is placed bac
015980: 6B 20 20 6F 6E 20 20 74 68 65 20 20 73 79 6E 63 k on the sync
015990: 68 72 6F 6E 6F 75 73 20 20 65 76 65 6E 74 0D 0A hronous event..
0159A0: 20 20 20 20 20 20 20 71 75 65 75 65 2E 20 54 68 queue. Th
0159B0: 65 20 65 76 65 6E 74 20 6D 61 79 20 62 65 20 64 e event may be d
0159C0: 69 73 61 72 6D 65 64 20 62 65 74 77 65 65 6E 20 isarmed between
0159D0: 4B 4C 20 20 4E 45 58 54 20 20 53 59 4E 43 20 20 KL NEXT SYNC
0159E0: 61 6E 64 20 20 4B 4C 20 20 44 4F 4E 45 0D 0A 20 and KL DONE..
0159F0: 20 20 20 20 20 20 53 59 4E 43 2E 20 53 65 74 74 SYNC. Sett
015A00: 69 6E 67 20 74 68 65 20 65 76 65 6E 74 20 63 6F ing the event co
015A10: 75 6E 74 20 74 6F 20 20 6F 6E 65 20 20 62 65 66 unt to one bef
015A20: 6F 72 65 20 20 63 61 6C 6C 69 6E 67 20 20 4B 4C ore calling KL
015A30: 20 20 44 4F 4E 45 20 20 53 59 4E 43 0D 0A 20 20 DONE SYNC..
015A40: 20 20 20 20 20 66 6F 72 63 65 73 20 6D 75 6C 74 forces mult
015A50: 69 70 6C 65 20 65 76 65 6E 74 73 20 74 6F 20 62 iple events to b
015A60: 65 20 74 72 65 61 74 65 64 20 61 73 20 61 20 73 e treated as a s
015A70: 69 6E 67 6C 65 20 65 76 65 6E 74 2E 0D 0A 0D 0A ingle event.....
015A80: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 44 4F 4E 45 .. KL DONE
015A90: 20 53 59 4E 43 20 6D 61 79 20 65 6E 61 62 6C 65 SYNC may enable
015AA0: 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D 0A interrupts.....
015AB0: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
015AC0: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 entries:......
015AD0: 20 20 20 20 20 20 4B 4C 20 44 4F 20 53 59 4E 43 KL DO SYNC
015AE0: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 4E 45 58 54 .. KL NEXT
015AF0: 20 53 59 4E 43 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 SYNC..........
015B00: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
015B10: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
015B20: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
015B30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015B40: 20 70 61 67 65 20 31 35 2E 32 30 38 0D 0A 0D 0A page 15.208....
015B50: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
015B60: 20 31 37 32 3A 20 4B 4C 20 45 56 45 4E 54 20 44 172: KL EVENT D
015B70: 49 53 41 42 4C 45 20 20 20 20 20 20 20 20 20 20 ISABLE
015B80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015B90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015BA0: 20 20 23 42 44 30 34 0D 0A 0D 0A 0D 0A 20 20 20 #BD04......
015BB0: 20 20 20 20 44 69 73 61 62 6C 65 20 6E 6F 72 6D Disable norm
015BC0: 61 6C 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 al synchronous e
015BD0: 76 65 6E 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 vents.......
015BE0: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A Action:......
015BF0: 20 20 20 20 20 20 20 50 72 65 76 65 6E 74 20 6E Prevent n
015C00: 6F 72 6D 61 6C 20 73 79 6E 63 68 72 6F 6E 6F 75 ormal synchronou
015C10: 73 20 20 65 76 65 6E 74 73 20 20 66 72 6F 6D 20 s events from
015C20: 20 62 65 69 6E 67 20 20 70 72 6F 63 65 73 73 65 being processe
015C30: 64 20 20 62 75 74 20 20 61 6C 6C 6F 77 0D 0A 20 d but allow..
015C40: 20 20 20 20 20 20 65 78 70 72 65 73 73 20 73 79 express sy
015C50: 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 nchronous events
015C60: 20 20 74 6F 20 20 62 65 20 20 70 72 6F 63 65 73 to be proces
015C70: 73 65 64 2E 20 20 54 68 69 73 20 20 69 73 20 20 sed. This is
015C80: 61 63 68 69 65 76 65 64 20 20 62 79 0D 0A 20 20 achieved by..
015C90: 20 20 20 20 20 73 65 74 74 69 6E 67 20 74 68 65 setting the
015CA0: 20 63 75 72 72 65 6E 74 20 65 76 65 6E 74 20 70 current event p
015CB0: 72 69 6F 72 69 74 79 20 68 69 67 68 65 72 20 20 riority higher
015CC0: 74 68 61 6E 20 20 61 6E 79 20 20 70 6F 73 73 69 than any possi
015CD0: 62 6C 65 20 20 6E 6F 72 6D 61 6C 0D 0A 20 20 20 ble normal..
015CE0: 20 20 20 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 synchronous
015CF0: 65 76 65 6E 74 20 70 72 69 6F 72 69 74 79 2E 0D event priority..
015D00: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
015D10: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
015D20: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E ... No con
015D30: 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 ditions.......
015D40: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
015D50: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
015D60: 20 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 HL corrupt...
015D70: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
015D80: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
015D90: 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ved.......
015DA0: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 Notes:......
015DB0: 20 20 20 20 4B 4C 20 45 56 45 4E 54 20 44 49 53 KL EVENT DIS
015DC0: 41 42 4C 45 20 64 6F 65 73 20 6E 6F 74 20 70 72 ABLE does not pr
015DD0: 65 76 65 6E 74 20 65 76 65 6E 74 73 20 66 72 6F event events fro
015DE0: 6D 20 62 65 69 6E 67 20 6B 69 63 6B 65 64 2E 20 m being kicked.
015DF0: 54 68 65 20 65 66 66 65 63 74 0D 0A 20 20 20 20 The effect..
015E00: 20 20 20 69 73 20 74 6F 20 27 6D 61 73 6B 20 6F is to 'mask o
015E10: 66 66 27 20 61 6C 6C 20 70 65 6E 64 69 6E 67 20 ff' all pending
015E20: 6E 6F 72 6D 61 6C 20 73 79 6E 63 68 72 6F 6E 6F normal synchrono
015E30: 75 73 20 65 76 65 6E 74 73 20 20 73 6F 20 20 74 us events so t
015E40: 68 61 74 20 20 74 68 65 79 0D 0A 20 20 20 20 20 hat they..
015E50: 20 20 61 72 65 20 68 69 64 64 65 6E 20 66 72 6F are hidden fro
015E60: 6D 20 74 68 65 20 66 6F 72 65 67 72 6F 75 6E 64 m the foreground
015E70: 20 70 72 6F 67 72 61 6D 20 28 77 68 65 6E 20 4B program (when K
015E80: 4C 20 50 4F 4C 4C 20 53 59 4E 43 48 52 4F 4E 4F L POLL SYNCHRONO
015E90: 55 53 20 6F 72 20 4B 4C 0D 0A 20 20 20 20 20 20 US or KL..
015EA0: 20 4E 45 58 54 20 53 59 4E 43 20 61 72 65 20 63 NEXT SYNC are c
015EB0: 61 6C 6C 65 64 29 20 61 6E 64 20 68 65 6E 63 65 alled) and hence
015EC0: 20 61 72 65 20 6E 6F 74 20 70 72 6F 63 65 73 73 are not process
015ED0: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
015EE0: 4B 4C 20 45 56 45 4E 54 20 45 4E 41 42 4C 45 20 KL EVENT ENABLE
015EF0: 72 65 76 65 72 73 65 73 20 74 68 65 20 65 66 66 reverses the eff
015F00: 65 63 74 20 6F 66 20 4B 4C 20 45 56 45 4E 54 20 ect of KL EVENT
015F10: 44 49 53 41 42 4C 45 2E 0D 0A 0D 0A 0D 0A 20 20 DISABLE.......
015F20: 20 20 20 20 20 49 74 20 69 73 20 6E 6F 74 20 70 It is not p
015F30: 6F 73 73 69 62 6C 65 20 74 6F 20 20 64 69 73 61 ossible to disa
015F40: 62 6C 65 20 20 73 79 6E 63 68 72 6F 6E 6F 75 73 ble synchronous
015F50: 20 20 65 76 65 6E 74 73 20 20 70 65 72 6D 61 6E events perman
015F60: 65 6E 74 6C 79 20 20 66 72 6F 6D 0D 0A 20 20 20 ently from..
015F70: 20 20 20 20 69 6E 73 69 64 65 20 61 20 73 79 6E inside a syn
015F80: 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 20 20 chronous event
015F90: 72 6F 75 74 69 6E 65 20 20 61 73 20 20 74 68 65 routine as the
015FA0: 20 20 70 72 65 76 69 6F 75 73 20 20 63 75 72 72 previous curr
015FB0: 65 6E 74 20 20 65 76 65 6E 74 0D 0A 20 20 20 20 ent event..
015FC0: 20 20 20 70 72 69 6F 72 69 74 79 20 69 73 20 72 priority is r
015FD0: 65 73 74 6F 72 65 64 20 77 68 65 6E 20 74 68 65 estored when the
015FE0: 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 72 event routine r
015FF0: 65 74 75 72 6E 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 eturns.........
016000: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
016010: 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tries:......
016020: 20 20 20 4B 4C 20 44 49 53 41 52 4D 20 45 56 45 KL DISARM EVE
016030: 4E 54 0D 0A 20 20 20 20 20 20 20 4B 4C 20 45 56 NT.. KL EV
016040: 45 4E 54 20 45 4E 41 42 4C 45 0D 0A 20 20 20 20 ENT ENABLE..
016050: 20 20 20 4B 4C 20 4E 45 58 54 20 53 59 4E 43 0D KL NEXT SYNC.
016060: 0A 20 20 20 20 20 20 20 4B 4C 20 50 4F 4C 4C 20 . KL POLL
016070: 53 59 4E 43 48 52 4F 4E 4F 55 53 0D 0A 0D 0A 0D SYNCHRONOUS.....
016080: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
016090: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
0160A0: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
0160B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0160C0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
0160D0: 31 35 2E 32 30 39 0D 0A 1A 20 20 20 20 20 20 20 15.209...
0160E0: 46 69 6C 6C 20 61 6E 20 61 72 65 61 20 6F 66 20 Fill an area of
0160F0: 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 20 the screen.....
016100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0161A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0161B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0161C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0161D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0161E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0161F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0162A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0162B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0162C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0162D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0162E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0162F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0163A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0163B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0163C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0163D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0163E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0163F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
016400: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
016410: 20 20 20 31 37 33 3A 20 4B 4C 20 45 56 45 4E 54 173: KL EVENT
016420: 20 45 4E 41 42 4C 45 20 20 20 20 20 20 20 20 20 ENABLE
016430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016450: 20 20 20 20 23 42 44 30 37 0D 0A 0D 0A 0D 0A 20 #BD07......
016460: 20 20 20 20 20 20 45 6E 61 62 6C 65 73 20 6E 6F Enables no
016470: 72 6D 61 6C 20 73 79 6E 63 68 72 6F 6E 6F 75 73 rmal synchronous
016480: 20 65 76 65 6E 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 events.......
016490: 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A Action:....
0164A0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 6F 77 20 6E .. Allow n
0164B0: 6F 72 6D 61 6C 20 61 6E 64 20 65 78 70 72 65 73 ormal and expres
0164C0: 73 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 s synchronous ev
0164D0: 65 6E 74 73 20 74 6F 20 62 65 20 70 72 6F 63 65 ents to be proce
0164E0: 73 73 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ssed.......
0164F0: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
016500: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
016510: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A No conditions...
016520: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
016530: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
016540: 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 72 72 75 . HL corru
016550: 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 pt... All
016560: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
016570: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A preserved.......
016580: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
016590: 0A 0D 0A 20 20 20 20 20 20 20 45 76 65 6E 74 73 ... Events
0165A0: 20 61 72 65 20 65 6E 61 62 6C 65 64 20 62 79 20 are enabled by
0165B0: 64 65 66 61 75 6C 74 2E 20 4B 4C 20 45 56 45 4E default. KL EVEN
0165C0: 54 20 45 4E 41 42 4C 45 20 72 65 76 65 72 73 65 T ENABLE reverse
0165D0: 73 20 74 68 65 20 65 66 66 65 63 74 20 20 6F 66 s the effect of
0165E0: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 45 56 45 4E .. KL EVEN
0165F0: 54 20 44 49 53 41 42 4C 45 2E 0D 0A 0D 0A 0D 0A T DISABLE.......
016600: 20 20 20 20 20 20 20 49 74 20 69 73 20 6E 6F 74 It is not
016610: 20 70 6F 73 73 69 62 6C 65 20 74 6F 20 20 64 69 possible to di
016620: 73 61 62 6C 65 20 20 73 79 6E 63 68 72 6F 6E 6F sable synchrono
016630: 75 73 20 20 65 76 65 6E 74 73 20 20 70 65 72 6D us events perm
016640: 61 6E 65 6E 74 6C 79 20 20 66 72 6F 6D 0D 0A 20 anently from..
016650: 20 20 20 20 20 20 69 6E 73 69 64 65 20 61 20 73 inside a s
016660: 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 ynchronous event
016670: 20 72 6F 75 74 69 6E 65 20 61 73 20 74 68 65 20 routine as the
016680: 63 75 72 72 65 6E 74 20 65 76 65 6E 74 20 70 72 current event pr
016690: 69 6F 72 69 74 79 20 77 68 69 63 68 0D 0A 20 20 iority which..
0166A0: 20 20 20 20 20 69 73 20 75 73 65 64 20 74 6F 20 is used to
0166B0: 64 69 73 61 62 6C 65 20 65 76 65 6E 74 73 20 69 disable events i
0166C0: 73 20 72 65 73 74 6F 72 65 64 20 77 68 65 6E 20 s restored when
0166D0: 74 68 65 20 65 76 65 6E 74 20 72 6F 75 74 69 6E the event routin
0166E0: 65 20 72 65 74 75 72 6E 73 2E 0D 0A 0D 0A 0D 0A e returns.......
0166F0: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
016700: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 entries:......
016710: 20 20 20 20 20 20 4B 4C 20 45 56 45 4E 54 20 44 KL EVENT D
016720: 49 53 41 42 4C 45 0D 0A 20 20 20 20 20 20 20 4B ISABLE.. K
016730: 4C 20 4E 45 58 54 20 53 59 4E 43 0D 0A 20 20 20 L NEXT SYNC..
016740: 20 20 20 20 4B 4C 20 50 4F 4C 4C 20 53 59 4E 43 KL POLL SYNC
016750: 48 52 4F 4E 4F 55 53 0D 0A 0D 0A 0D 0A 0D 0A 0D HRONOUS.........
016760: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
016770: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
016780: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
016790: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
0167A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0167B0: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
0167C0: 2E 32 31 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .210............
0167D0: 0D 0A 20 20 20 20 20 20 20 31 37 34 3A 20 4B 4C .. 174: KL
0167E0: 20 44 49 53 41 52 4D 20 45 56 45 4E 54 20 20 20 DISARM EVENT
0167F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016810: 20 20 20 20 20 20 20 20 20 20 23 42 44 30 41 0D #BD0A.
016820: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 50 72 65 76 ..... Prev
016830: 65 6E 74 20 61 6E 20 65 76 65 6E 74 20 66 72 6F ent an event fro
016840: 6D 20 6F 63 63 75 72 72 69 6E 67 2E 0D 0A 0D 0A m occurring.....
016850: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
016860: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 69 73 ...... Dis
016870: 61 72 6D 73 20 74 68 65 20 65 76 65 6E 74 20 62 arms the event b
016880: 79 20 73 65 74 74 69 6E 67 20 74 68 65 20 65 76 y setting the ev
016890: 65 6E 74 20 63 6F 75 6E 74 20 74 6F 20 61 20 6E ent count to a n
0168A0: 65 67 61 74 69 76 65 20 76 61 6C 75 65 2E 20 20 egative value.
0168B0: 41 6E 79 0D 0A 20 20 20 20 20 20 20 66 75 72 74 Any.. furt
0168C0: 68 65 72 20 27 6B 69 63 6B 73 27 20 28 63 61 6C her 'kicks' (cal
0168D0: 6C 73 20 6F 66 20 4B 4C 20 45 56 45 4E 54 29 20 ls of KL EVENT)
0168E0: 66 6F 72 20 74 68 65 20 65 76 65 6E 74 20 77 69 for the event wi
0168F0: 6C 6C 20 62 65 20 69 67 6E 6F 72 65 64 2C 20 61 ll be ignored, a
016900: 6E 79 0D 0A 20 20 20 20 20 20 20 6F 75 74 73 74 ny.. outst
016910: 61 6E 64 69 6E 67 20 65 76 65 6E 74 73 20 61 72 anding events ar
016920: 65 20 64 69 73 63 61 72 64 65 64 2E 0D 0A 0D 0A e discarded.....
016930: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
016940: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
016950: 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 HL contai
016960: 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F ns the address o
016970: 66 20 74 68 65 20 65 76 65 6E 74 20 62 6C 6F 63 f the event bloc
016980: 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 k....... E
016990: 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D xit conditions:.
0169A0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 63 ..... AF c
0169B0: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
0169C0: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
0169D0: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
0169E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
0169F0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4C :...... KL
016A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
016A10: 13 00 00 00 02 09 50 E5 13 00 C1 02 00 00 00 02 ......P.........
016A20: 13 00 C2 02 00 00 00 02 13 00 C3 02 00 00 00 02 ................
016A30: 13 00 C4 02 00 00 00 02 13 00 C5 02 00 00 00 02 ................
016A40: 13 00 C6 02 00 00 00 02 13 00 C7 02 00 00 00 02 ................
016A50: 13 00 C8 02 00 00 00 02 13 00 C9 02 00 00 00 02 ................
016A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016B00: 20 20 44 49 53 41 52 4D 20 20 45 56 45 4E 54 20 DISARM EVENT
016B10: 20 73 68 6F 75 6C 64 20 20 6F 6E 6C 79 20 20 62 should only b
016B20: 65 20 20 75 73 65 64 20 20 77 69 74 68 20 20 61 e used with a
016B30: 73 79 6E 63 68 72 6F 6E 6F 75 73 20 20 65 76 65 synchronous eve
016B40: 6E 74 73 2E 0D 0A 20 20 20 20 20 20 20 53 79 6E nts... Syn
016B50: 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 20 chronous events
016B60: 6D 61 79 20 62 65 20 64 69 73 61 72 6D 65 64 20 may be disarmed
016B70: 20 62 79 20 20 63 61 6C 6C 69 6E 67 20 20 4B 4C by calling KL
016B80: 20 20 44 45 4C 20 20 53 59 4E 43 48 52 4F 4E 4F DEL SYNCHRONO
016B90: 55 53 2C 0D 0A 20 20 20 20 20 20 20 77 68 69 63 US,.. whic
016BA0: 68 20 61 6C 73 6F 20 65 6E 73 75 72 65 73 20 74 h also ensures t
016BB0: 68 61 74 20 74 68 65 20 65 76 65 6E 74 20 69 73 hat the event is
016BC0: 20 20 6E 6F 74 20 20 6F 6E 20 20 74 68 65 20 20 not on the
016BD0: 73 79 6E 63 68 72 6F 6E 6F 75 73 20 20 65 76 65 synchronous eve
016BE0: 6E 74 0D 0A 20 20 20 20 20 20 20 71 75 65 75 65 nt.. queue
016BF0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
016C00: 65 20 65 76 65 6E 74 20 6D 61 79 20 62 65 20 72 e event may be r
016C10: 65 61 72 6D 65 64 20 62 79 20 72 65 69 6E 69 74 earmed by reinit
016C20: 69 61 6C 69 7A 69 6E 67 20 69 74 20 28 4B 4C 20 ializing it (KL
016C30: 49 4E 49 54 20 20 45 56 45 4E 54 29 20 20 6F 72 INIT EVENT) or
016C40: 20 20 62 79 0D 0A 20 20 20 20 20 20 20 73 65 74 by.. set
016C50: 74 69 6E 67 20 74 68 65 20 65 76 65 6E 74 20 63 ting the event c
016C60: 6F 75 6E 74 20 28 62 79 74 65 20 32 20 6F 66 20 ount (byte 2 of
016C70: 74 68 65 20 65 76 65 6E 74 20 62 6C 6F 63 6B 29 the event block)
016C80: 20 74 6F 20 7A 65 72 6F 2E 0D 0A 0D 0A 0D 0A 0D to zero........
016C90: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
016CA0: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
016CB0: 20 20 20 20 20 4B 4C 20 44 45 4C 20 53 59 4E 43 KL DEL SYNC
016CC0: 48 52 4F 4E 4F 55 53 0D 0A 20 20 20 20 20 20 20 HRONOUS..
016CD0: 4B 4C 20 49 4E 49 54 20 45 56 45 4E 54 0D 0A 0D KL INIT EVENT...
016CE0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
016CF0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
016D00: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
016D10: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
016D20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016D30: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
016D40: 31 35 2E 32 31 31 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.211..........
016D50: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 37 35 3A 20 .... 175:
016D60: 4B 4C 20 54 49 4D 45 20 50 4C 45 41 53 45 20 20 KL TIME PLEASE
016D70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016D80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016D90: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 44 30 #BD0
016DA0: 44 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 73 D...... As
016DB0: 6B 20 74 68 65 20 65 6C 61 70 73 65 64 20 74 69 k the elapsed ti
016DC0: 6D 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 me.......
016DD0: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
016DE0: 20 20 20 20 54 68 65 20 4B 65 72 6E 65 6C 20 20 The Kernel
016DF0: 6D 61 69 6E 74 61 69 6E 73 20 20 61 20 20 63 6F maintains a co
016E00: 75 6E 74 20 20 77 68 69 63 68 20 20 69 74 20 20 unt which it
016E10: 69 6E 63 72 65 6D 65 6E 74 73 20 20 6F 6E 20 20 increments on
016E20: 65 61 63 68 20 20 74 69 6D 65 0D 0A 20 20 20 20 each time..
016E30: 20 20 20 69 6E 74 65 72 72 75 70 74 2E 20 54 68 interrupt. Th
016E40: 65 20 63 6F 75 6E 74 2C 20 74 68 65 72 65 66 6F e count, therefo
016E50: 72 65 2C 20 6D 65 61 73 75 72 65 73 20 74 69 6D re, measures tim
016E60: 65 20 69 6E 20 31 2F 33 30 30 74 68 20 6F 66 20 e in 1/300th of
016E70: 61 20 20 73 65 63 6F 6E 64 0D 0A 20 20 20 20 20 a second..
016E80: 20 20 75 6E 69 74 73 2E 20 54 68 69 73 20 72 6F units. This ro
016E90: 75 74 69 6E 65 20 72 65 74 75 72 6E 73 20 74 68 utine returns th
016EA0: 65 20 63 75 72 72 65 6E 74 20 63 6F 75 6E 74 2E e current count.
016EB0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 ...... Ent
016EC0: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
016ED0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F .... No co
016EE0: 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 nditions.......
016EF0: 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 Exit condi
016F00: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
016F10: 20 20 20 44 45 48 4C 20 63 6F 6E 74 61 69 6E 73 DEHL contains
016F20: 20 74 68 65 20 66 6F 75 72 20 62 79 74 65 20 63 the four byte c
016F30: 6F 75 6E 74 20 28 44 20 20 63 6F 6E 74 61 69 6E ount (D contain
016F40: 73 20 20 74 68 65 20 20 6D 6F 73 74 20 20 73 69 s the most si
016F50: 67 6E 69 66 69 63 61 6E 74 0D 0A 20 20 20 20 20 gnificant..
016F60: 20 20 62 79 74 65 20 61 6E 64 20 4C 20 74 68 65 byte and L the
016F70: 20 6C 65 61 73 74 20 73 69 67 6E 69 66 69 63 61 least significa
016F80: 6E 74 20 62 79 74 65 29 2E 0D 0A 0D 0A 0D 0A 20 nt byte).......
016F90: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
016FA0: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
016FB0: 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ved.......
016FC0: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 Notes:......
016FD0: 20 20 20 20 54 68 65 20 63 6F 75 6E 74 20 69 73 The count is
016FE0: 20 7A 65 72 6F 69 7A 65 64 20 77 68 65 6E 20 74 zeroized when t
016FF0: 68 65 20 6D 61 63 68 69 6E 65 20 69 73 20 20 74 he machine is t
017000: 75 72 6E 65 64 20 20 6F 6E 20 20 6F 72 20 20 72 urned on or r
017010: 65 73 65 74 2E 20 20 54 68 65 0D 0A 20 20 20 20 eset. The..
017020: 20 20 20 63 6F 75 6E 74 20 6D 61 79 20 62 65 20 count may be
017030: 73 65 74 20 74 6F 20 61 6E 6F 74 68 65 72 20 73 set to another s
017040: 74 61 72 74 69 6E 67 20 76 61 6C 75 65 20 62 79 tarting value by
017050: 20 4B 4C 20 54 49 4D 45 20 53 45 54 2E 0D 0A 0D KL TIME SET....
017060: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 63 6F ... The co
017070: 75 6E 74 20 69 73 20 6E 6F 74 20 6B 65 70 74 20 unt is not kept
017080: 75 70 20 74 6F 20 64 61 74 65 20 69 66 20 69 6E up to date if in
017090: 74 65 72 72 75 70 74 73 20 61 72 65 20 64 69 73 terrupts are dis
0170A0: 61 62 6C 65 64 20 20 66 6F 72 20 20 6C 6F 6E 67 abled for long
0170B0: 0D 0A 20 20 20 20 20 20 20 70 65 72 69 6F 64 73 .. periods
0170C0: 2C 20 73 75 63 68 20 61 73 20 77 68 69 6C 65 20 , such as while
0170D0: 72 65 61 64 69 6E 67 20 61 6E 64 20 77 72 69 74 reading and writ
0170E0: 69 6E 67 20 74 68 65 20 63 61 73 73 65 74 74 65 ing the cassette
0170F0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
017100: 65 20 66 6F 75 72 20 62 79 74 65 20 63 6F 75 6E e four byte coun
017110: 74 20 6F 76 65 72 66 6C 6F 77 73 20 61 66 74 65 t overflows afte
017120: 72 20 61 70 70 72 6F 78 69 6D 61 74 65 6C 79 3A r approximately:
017130: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ......
017140: 20 20 20 20 20 20 20 20 20 31 34 2C 33 31 36 2C 14,316,
017150: 35 35 38 20 53 65 63 6F 6E 64 73 0D 0A 20 20 20 558 Seconds..
017160: 20 20 20 20 20 20 20 20 20 20 20 20 20 3D 20 20 =
017170: 20 20 20 32 33 38 2C 36 30 39 20 4D 69 6E 75 74 238,609 Minut
017180: 65 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 es..
017190: 20 20 20 20 3D 20 20 20 20 20 20 20 33 2C 39 37 = 3,97
0171A0: 37 20 48 6F 75 72 73 0D 0A 20 20 20 20 20 20 20 7 Hours..
0171B0: 20 20 20 20 20 20 20 20 20 3D 20 20 20 20 20 20 =
0171C0: 20 20 20 31 36 36 20 44 61 79 73 0D 0A 0D 0A 20 166 Days....
0171D0: 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 This routi
0171E0: 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E 74 65 72 ne enables inter
0171F0: 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 rupts.........
017200: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
017210: 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ries:......
017220: 20 20 4B 4C 20 54 49 4D 45 20 53 45 54 0D 0A 0D KL TIME SET...
017230: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
017240: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
017250: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
017260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017270: 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 31 32 page 15.212
017280: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
017290: 20 20 20 20 20 31 37 36 3A 20 4B 4C 20 54 49 4D 176: KL TIM
0172A0: 45 20 53 45 54 20 20 20 20 20 20 20 20 20 20 20 E SET
0172B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0172C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0172D0: 20 20 20 20 20 20 23 42 44 31 30 0D 0A 0D 0A 20 #BD10....
0172E0: 20 20 20 20 20 20 53 65 74 20 74 68 65 20 65 6C Set the el
0172F0: 61 70 73 65 64 20 74 69 6D 65 2E 0D 0A 0D 0A 20 apsed time.....
017300: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
017310: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 4B 65 ... The Ke
017320: 72 6E 65 6C 20 20 6D 61 69 6E 74 61 69 6E 73 20 rnel maintains
017330: 20 61 20 20 63 6F 75 6E 74 20 20 77 68 69 63 68 a count which
017340: 20 20 69 74 20 20 69 6E 63 72 65 6D 65 6E 74 73 it increments
017350: 20 20 6F 6E 20 20 65 61 63 68 20 20 74 69 6D 65 on each time
017360: 0D 0A 20 20 20 20 20 20 20 69 6E 74 65 72 72 75 .. interru
017370: 70 74 2E 20 54 68 65 20 63 6F 75 6E 74 2C 20 74 pt. The count, t
017380: 68 65 72 65 66 6F 72 65 2C 20 6D 65 61 73 75 72 herefore, measur
017390: 65 73 20 74 69 6D 65 20 69 6E 20 31 2F 33 30 30 es time in 1/300
0173A0: 74 68 20 6F 66 20 61 20 20 73 65 63 6F 6E 64 0D th of a second.
0173B0: 0A 20 20 20 20 20 20 20 75 6E 69 74 73 2E 20 54 . units. T
0173C0: 68 69 73 20 72 6F 75 74 69 6E 65 20 73 65 74 73 his routine sets
0173D0: 20 74 68 65 20 63 6F 75 6E 74 20 74 6F 20 61 20 the count to a
0173E0: 67 69 76 65 6E 20 76 61 6C 75 65 2E 0D 0A 0D 0A given value.....
0173F0: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
017400: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
017410: 20 20 20 20 20 20 20 44 45 48 4C 20 63 6F 6E 74 DEHL cont
017420: 61 69 6E 73 20 74 68 65 20 66 6F 75 72 20 62 79 ains the four by
017430: 74 65 20 63 6F 75 6E 74 20 28 44 20 20 63 6F 6E te count (D con
017440: 74 61 69 6E 73 20 20 74 68 65 20 20 6D 6F 73 74 tains the most
017450: 20 20 73 69 67 6E 69 66 69 63 61 6E 74 0D 0A 20 significant..
017460: 20 20 20 20 20 20 62 79 74 65 20 61 6E 64 20 4C byte and L
017470: 20 74 68 65 20 6C 65 61 73 74 20 73 69 67 6E 69 the least signi
017480: 66 69 63 61 6E 74 20 62 79 74 65 29 2E 0D 0A 0D ficant byte)....
017490: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
0174A0: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
0174B0: 20 20 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 AF corrup
0174C0: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
0174D0: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
0174E0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
0174F0: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
017500: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 6F 75 .. The fou
017510: 72 20 62 79 74 65 20 63 6F 75 6E 74 20 6F 76 65 r byte count ove
017520: 72 66 6C 6F 77 73 20 61 66 74 65 72 20 61 70 70 rflows after app
017530: 72 6F 78 69 6D 61 74 65 6C 79 3A 0D 0A 0D 0A 0D roximately:.....
017540: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
017550: 20 20 20 20 31 34 2C 33 31 36 2C 35 35 38 20 53 14,316,558 S
017560: 65 63 6F 6E 64 73 0D 0A 20 20 20 20 20 20 20 20 econds..
017570: 20 20 20 20 20 20 20 20 3D 20 20 20 20 20 32 33 = 23
017580: 38 2C 36 30 39 20 4D 69 6E 75 74 65 73 0D 0A 20 8,609 Minutes..
017590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3D =
0175A0: 20 20 20 20 20 20 20 33 2C 39 37 37 20 48 6F 75 3,977 Hou
0175B0: 72 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 rs..
0175C0: 20 20 20 20 3D 20 20 20 20 20 20 20 20 20 31 36 = 16
0175D0: 36 20 44 61 79 73 0D 0A 0D 0A 0D 0A 20 20 20 20 6 Days......
0175E0: 20 20 20 4B 4C 20 54 49 4D 45 20 53 45 54 20 6D KL TIME SET m
0175F0: 61 79 20 62 65 20 75 73 65 64 20 74 6F 20 73 65 ay be used to se
017600: 74 20 74 68 65 20 63 6F 75 6E 74 20 74 6F 20 74 t the count to t
017610: 68 65 20 61 63 74 75 61 6C 20 74 69 6D 65 20 6F he actual time o
017620: 66 20 64 61 79 2C 20 73 6F 0D 0A 20 20 20 20 20 f day, so..
017630: 20 20 74 68 61 74 20 74 68 65 20 4B 65 72 6E 65 that the Kerne
017640: 6C 20 74 68 65 6E 20 6D 61 69 6E 74 61 69 6E 73 l then maintains
017650: 20 61 20 20 72 65 61 6C 20 20 63 6C 6F 63 6B 20 a real clock
017660: 20 72 61 74 68 65 72 20 20 74 68 61 6E 20 20 61 rather than a
017670: 20 20 73 69 6D 70 6C 65 0D 0A 20 20 20 20 20 20 simple..
017680: 20 6D 65 61 73 75 72 65 20 6F 66 20 74 68 65 20 measure of the
017690: 74 69 6D 65 20 65 6C 61 70 73 65 64 20 73 69 6E time elapsed sin
0176A0: 63 65 20 74 68 65 20 6C 61 73 74 20 72 65 73 65 ce the last rese
0176B0: 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 t....... T
0176C0: 68 65 20 63 6F 75 6E 74 20 69 73 20 6E 6F 74 20 he count is not
0176D0: 6B 65 70 74 20 75 70 20 74 6F 20 64 61 74 65 20 kept up to date
0176E0: 69 66 20 69 6E 74 65 72 72 75 70 74 73 20 61 72 if interrupts ar
0176F0: 65 20 64 69 73 61 62 6C 65 64 20 20 66 6F 72 20 e disabled for
017700: 20 6C 6F 6E 67 0D 0A 20 20 20 20 20 20 20 70 65 long.. pe
017710: 72 69 6F 64 73 2C 20 73 75 63 68 20 61 73 20 77 riods, such as w
017720: 68 69 6C 65 20 72 65 61 64 69 6E 67 20 61 6E 64 hile reading and
017730: 20 77 72 69 74 69 6E 67 20 74 68 65 20 63 61 73 writing the cas
017740: 73 65 74 74 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 sette.......
017750: 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 This routine
017760: 65 6E 61 62 6C 65 73 20 69 6E 74 65 72 72 75 70 enables interrup
017770: 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ts.........
017780: 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 Related entrie
017790: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B s:...... K
0177A0: 4C 20 54 49 4D 45 20 50 4C 45 41 53 45 0D 0A 0D L TIME PLEASE...
0177B0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
0177C0: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
0177D0: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
0177E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0177F0: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
017800: 2E 32 31 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .213............
017810: 0D 0A 20 20 20 20 20 20 20 31 37 37 3A 20 4D 43 .. 177: MC
017820: 20 42 4F 4F 54 20 50 52 4F 47 52 41 4D 20 20 20 BOOT PROGRAM
017830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017850: 20 20 20 20 20 20 20 20 20 20 23 42 44 31 33 0D #BD13.
017860: 0A 0D 0A 20 20 20 20 20 20 20 4C 6F 61 64 20 61 ... Load a
017870: 6E 64 20 72 75 6E 20 61 20 70 72 6F 67 72 61 6D nd run a program
017880: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
017890: 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 68 on:.... Sh
0178A0: 75 74 20 64 6F 77 6E 20 61 73 20 6D 75 63 68 20 ut down as much
0178B0: 6F 66 20 74 68 65 20 73 79 73 74 65 6D 20 61 73 of the system as
0178C0: 20 70 6F 73 73 69 62 6C 65 20 74 68 65 6E 20 6C possible then l
0178D0: 6F 61 64 20 61 20 20 70 72 6F 67 72 61 6D 20 20 oad a program
0178E0: 69 6E 74 6F 0D 0A 20 20 20 20 20 20 20 52 41 4D into.. RAM
0178F0: 20 61 6E 64 20 72 75 6E 20 69 74 2E 20 49 66 20 and run it. If
017900: 74 68 65 20 6C 6F 61 64 20 66 61 69 6C 73 20 74 the load fails t
017910: 68 65 6E 20 74 68 65 20 70 72 65 76 69 6F 75 73 hen the previous
017920: 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 foreground prog
017930: 72 61 6D 0D 0A 20 20 20 20 20 20 20 69 73 20 72 ram.. is r
017940: 65 73 74 61 72 74 65 64 2E 0D 0A 0D 0A 20 20 20 estarted.....
017950: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
017960: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
017970: 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 HL contains the
017980: 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 72 address of the r
017990: 6F 75 74 69 6E 65 20 74 6F 20 63 61 6C 6C 20 74 outine to call t
0179A0: 6F 20 6C 6F 61 64 20 74 68 65 20 70 72 6F 67 72 o load the progr
0179B0: 61 6D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 am..... Ex
0179C0: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
0179D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 44 6F 65 73 20 .... Does
0179E0: 6E 6F 74 20 65 78 69 74 21 0D 0A 0D 0A 20 20 20 not exit!....
0179F0: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 Notes:....
017A00: 20 20 20 20 20 54 68 65 20 73 79 73 74 65 6D 20 The system
017A10: 69 73 20 70 61 72 74 69 61 6C 6C 79 20 72 65 73 is partially res
017A20: 65 74 20 62 65 66 6F 72 65 20 61 74 74 65 6D 70 et before attemp
017A30: 74 69 6E 67 20 74 6F 20 6C 6F 61 64 20 20 74 68 ting to load th
017A40: 65 20 20 70 72 6F 67 72 61 6D 2E 0D 0A 20 20 20 e program...
017A50: 20 20 20 20 45 78 74 65 72 6E 61 6C 20 69 6E 74 External int
017A60: 65 72 72 75 70 74 73 20 61 72 65 20 64 69 73 61 errupts are disa
017A70: 62 6C 65 64 2C 20 61 73 20 61 72 65 20 61 6C 6C bled, as are all
017A80: 20 74 69 6D 65 72 2C 20 66 72 61 6D 65 20 66 6C timer, frame fl
017A90: 79 62 61 63 6B 20 20 61 6E 64 0D 0A 20 20 20 20 yback and..
017AA0: 20 20 20 6B 65 79 62 6F 61 72 64 20 62 72 65 61 keyboard brea
017AB0: 6B 20 65 76 65 6E 74 73 2E 20 53 6F 75 6E 64 20 k events. Sound
017AC0: 67 65 6E 65 72 61 74 69 6F 6E 20 69 73 20 20 74 generation is t
017AD0: 75 72 6E 65 64 20 20 6F 66 66 2C 20 20 69 6E 64 urned off, ind
017AE0: 69 72 65 63 74 69 6F 6E 73 0D 0A 20 20 20 20 20 irections..
017AF0: 20 20 61 72 65 20 73 65 74 20 74 6F 20 74 68 65 are set to the
017B00: 69 72 20 64 65 66 61 75 6C 74 20 72 6F 75 74 69 ir default routi
017B10: 6E 65 73 20 20 61 6E 64 20 20 74 68 65 20 20 73 nes and the s
017B20: 74 61 63 6B 20 20 69 73 20 20 72 65 73 65 74 20 tack is reset
017B30: 20 74 6F 20 20 74 68 65 0D 0A 20 20 20 20 20 20 to the..
017B40: 20 64 65 66 61 75 6C 74 20 73 79 73 74 65 6D 20 default system
017B50: 73 74 61 63 6B 2E 20 54 68 69 73 20 70 72 6F 63 stack. This proc
017B60: 65 73 73 20 65 6E 73 75 72 65 73 20 74 68 61 74 ess ensures that
017B70: 20 6E 6F 20 6D 65 6D 6F 72 79 20 6F 75 74 73 69 no memory outsi
017B80: 64 65 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 de the..
017B90: 66 69 72 6D 77 61 72 65 20 20 76 61 72 69 61 62 firmware variab
017BA0: 6C 65 73 20 20 61 72 65 61 20 20 69 73 20 20 69 les area is i
017BB0: 6E 20 20 75 73 65 20 20 77 68 65 6E 20 20 6C 6F n use when lo
017BC0: 61 64 69 6E 67 20 20 20 74 68 65 20 20 20 70 72 ading the pr
017BD0: 6F 67 72 61 6D 2E 0D 0A 20 20 20 20 20 20 20 4F ogram... O
017BE0: 76 65 72 77 72 69 74 69 6E 67 20 20 61 6E 20 20 verwriting an
017BF0: 61 63 74 69 76 65 20 20 65 76 65 6E 74 20 20 62 active event b
017C00: 6C 6F 63 6B 20 20 6F 72 20 20 69 6E 64 69 72 65 lock or indire
017C10: 63 74 69 6F 6E 20 20 72 6F 75 74 69 6E 65 20 20 ction routine
017C20: 63 6F 75 6C 64 0D 0A 20 20 20 20 20 20 20 6F 74 could.. ot
017C30: 68 65 72 77 69 73 65 20 68 61 76 65 20 75 6E 66 herwise have unf
017C40: 6F 72 74 75 6E 61 74 65 20 63 6F 6E 73 65 71 75 ortunate consequ
017C50: 65 6E 63 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 ences.....
017C60: 20 54 68 65 20 70 61 72 74 69 61 6C 20 73 79 73 The partial sys
017C70: 74 65 6D 20 20 72 65 73 65 74 20 20 64 6F 65 73 tem reset does
017C80: 20 20 6E 6F 74 20 20 63 68 61 6E 67 65 20 20 74 not change t
017C90: 68 65 20 20 52 4F 4D 20 20 73 74 61 74 65 20 20 he ROM state
017CA0: 6F 72 20 20 52 4F 4D 0D 0A 20 20 20 20 20 20 20 or ROM..
017CB0: 73 65 6C 65 63 74 69 6F 6E 2E 20 54 68 65 20 72 selection. The r
017CC0: 6F 75 74 69 6E 65 20 72 75 6E 20 74 6F 20 6C 6F outine run to lo
017CD0: 61 64 20 74 68 65 20 70 72 6F 67 72 61 6D 20 6D ad the program m
017CE0: 75 73 74 20 62 65 20 20 69 6E 20 20 61 63 63 65 ust be in acce
017CF0: 73 73 69 62 6C 65 0D 0A 20 20 20 20 20 20 20 52 ssible.. R
017D00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
017D10: 14 00 00 00 02 09 50 E5 14 00 C1 02 00 00 00 02 ......P.........
017D20: 14 00 C2 02 00 00 00 02 14 00 C3 02 00 00 00 02 ................
017D30: 14 00 C4 02 00 00 00 02 14 00 C5 02 00 00 00 02 ................
017D40: 14 00 C6 02 00 00 00 02 14 00 C7 02 00 00 00 02 ................
017D50: 14 00 C8 02 00 00 00 02 14 00 C9 02 00 00 00 02 ................
017D60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017E00: 41 4D 20 6F 72 20 61 6E 20 65 6E 61 62 6C 65 64 AM or an enabled
017E10: 20 52 4F 4D 2E 20 20 4E 6F 74 65 20 20 74 68 61 ROM. Note tha
017E20: 74 20 20 74 68 65 20 20 66 69 72 6D 77 61 72 65 t the firmware
017E30: 20 20 6A 75 6D 70 62 6C 6F 63 6B 20 20 6E 6F 72 jumpblock nor
017E40: 6D 61 6C 6C 79 0D 0A 20 20 20 20 20 20 20 65 6E mally.. en
017E50: 61 62 6C 65 73 20 74 68 65 20 6C 6F 77 65 72 20 ables the lower
017E60: 52 4F 4D 20 61 6E 64 20 64 69 73 61 62 6C 65 73 ROM and disables
017E70: 20 74 68 65 20 75 70 70 65 72 20 52 4F 4D 20 61 the upper ROM a
017E80: 6E 64 20 20 73 6F 20 20 74 68 65 20 20 72 6F 75 nd so the rou
017E90: 74 69 6E 65 0D 0A 20 20 20 20 20 20 20 6D 75 73 tine.. mus
017EA0: 74 20 6E 6F 72 6D 61 6C 6C 79 20 62 65 20 69 6E t normally be in
017EB0: 20 52 41 4D 20 61 62 6F 76 65 20 23 34 30 30 30 RAM above #4000
017EC0: 20 6F 72 20 69 6E 20 74 68 65 20 6C 6F 77 65 72 or in the lower
017ED0: 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ROM.....
017EE0: 54 68 65 20 72 6F 75 74 69 6E 65 20 72 75 6E 20 The routine run
017EF0: 74 6F 20 6C 6F 61 64 20 74 68 65 20 70 72 6F 67 to load the prog
017F00: 72 61 6D 20 69 73 20 66 72 65 65 20 20 74 6F 20 ram is free to
017F10: 20 75 73 65 20 20 61 6E 79 20 20 73 74 6F 72 65 use any store
017F20: 20 20 66 72 6F 6D 0D 0A 20 20 20 20 20 20 20 23 from.. #
017F30: 30 30 34 30 20 75 70 20 74 6F 20 74 68 65 20 62 0040 up to the b
017F40: 61 73 65 20 6F 66 20 74 68 65 20 66 69 72 6D 77 ase of the firmw
017F50: 61 72 65 20 76 61 72 69 61 62 6C 65 73 20 61 72 are variables ar
017F60: 65 61 20 20 28 23 42 31 30 30 29 20 20 61 6E 64 ea (#B100) and
017F70: 20 20 6D 61 79 0D 0A 20 20 20 20 20 20 20 61 6C may.. al
017F80: 74 65 72 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 ter indirections
017F90: 20 61 6E 64 20 61 72 6D 20 65 78 74 65 72 6E 61 and arm externa
017FA0: 6C 20 64 65 76 69 63 65 20 69 6E 74 65 72 72 75 l device interru
017FB0: 70 74 73 20 61 73 20 72 65 71 75 69 72 65 64 2E pts as required.
017FC0: 20 20 49 74 0D 0A 20 20 20 20 20 20 20 73 68 6F It.. sho
017FD0: 75 6C 64 20 6F 62 65 79 20 74 68 65 20 66 6F 6C uld obey the fol
017FE0: 6C 6F 77 69 6E 67 20 65 78 69 74 20 63 6F 6E 64 lowing exit cond
017FF0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
018000: 20 20 20 20 20 20 20 20 20 20 20 49 66 20 74 68 If th
018010: 65 20 70 72 6F 67 72 61 6D 20 6C 6F 61 64 65 64 e program loaded
018020: 20 73 75 63 63 65 73 73 66 75 6C 6C 79 3A 0D 0A successfully:..
018030: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
018040: 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 Carr
018050: 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 y true...
018060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018070: 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 HL contains t
018080: 68 65 20 70 72 6F 67 72 61 6D 20 65 6E 74 72 79 he program entry
018090: 20 70 6F 69 6E 74 2E 0D 0A 0D 0A 20 20 20 20 20 point.....
0180A0: 20 20 20 20 20 20 20 20 20 20 20 49 66 20 74 68 If th
0180B0: 65 20 70 72 6F 67 72 61 6D 20 66 61 69 6C 65 64 e program failed
0180C0: 20 74 6F 20 6C 6F 61 64 3A 0D 0A 0D 0A 20 20 20 to load:....
0180D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0180E0: 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C Carry fal
0180F0: 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 se...
018100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 H
018110: 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 L corrupt.....
018120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 6C Al
018130: 77 61 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ways:....
018140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018150: 20 20 20 41 2C 20 42 43 2C 20 44 45 2C 49 58 2C A, BC, DE,IX,
018160: 49 59 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 IY and other fla
018170: 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 0D gs corrupt......
018180: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
018190: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
0181A0: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
0181B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0181C0: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
0181D0: 2E 32 31 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .214............
0181E0: 0D 0A 20 20 20 20 20 20 20 41 66 74 65 72 20 61 .. After a
0181F0: 20 73 75 63 63 65 73 73 66 75 6C 20 6C 6F 61 64 successful load
018200: 20 74 68 65 20 66 69 72 6D 77 61 72 65 20 69 73 the firmware is
018210: 20 63 6F 6D 70 6C 65 74 65 6C 79 20 69 6E 69 74 completely init
018220: 69 61 6C 69 7A 65 64 20 28 61 73 20 20 61 74 0D ialized (as at.
018230: 0A 20 20 20 20 20 20 20 45 4D 53 29 20 61 6E 64 . EMS) and
018240: 20 74 68 65 20 70 72 6F 67 72 61 6D 20 69 73 20 the program is
018250: 65 6E 74 65 72 65 64 20 61 74 20 74 68 65 20 65 entered at the e
018260: 6E 74 72 79 20 61 64 64 72 65 73 73 20 72 65 74 ntry address ret
018270: 75 72 6E 65 64 20 20 62 79 20 20 74 68 65 0D 0A urned by the..
018280: 20 20 20 20 20 20 20 6C 6F 61 64 20 72 6F 75 74 load rout
018290: 69 6E 65 2E 20 20 52 65 74 75 72 6E 69 6E 67 20 ine. Returning
0182A0: 20 66 72 6F 6D 20 20 74 68 65 20 20 70 72 6F 67 from the prog
0182B0: 72 61 6D 20 20 77 69 6C 6C 20 20 72 65 73 65 74 ram will reset
0182C0: 20 20 74 68 65 20 20 73 79 73 74 65 6D 0D 0A 20 the system..
0182D0: 20 20 20 20 20 20 28 70 65 72 66 6F 72 6D 20 52 (perform R
0182E0: 53 54 20 30 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 ST 0).......
0182F0: 20 20 20 41 66 74 65 72 20 61 6E 20 75 6E 73 75 After an unsu
018300: 63 63 65 73 73 66 75 6C 20 6C 6F 61 64 20 61 6E ccessful load an
018310: 20 61 70 70 72 6F 70 72 69 61 74 65 20 65 72 72 appropriate err
018320: 6F 72 20 6D 65 73 73 61 67 65 20 69 73 20 70 72 or message is pr
018330: 69 6E 74 65 64 20 61 6E 64 0D 0A 20 20 20 20 20 inted and..
018340: 20 20 74 68 65 20 20 70 72 65 76 69 6F 75 73 20 the previous
018350: 20 66 6F 72 65 67 72 6F 75 6E 64 20 20 70 72 6F foreground pro
018360: 67 72 61 6D 20 20 69 73 20 20 72 65 73 74 61 72 gram is restar
018370: 74 65 64 2E 20 20 49 66 20 20 74 68 65 20 20 20 ted. If the
018380: 70 72 65 76 69 6F 75 73 0D 0A 20 20 20 20 20 20 previous..
018390: 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 foreground prog
0183A0: 72 61 6D 20 77 61 73 20 69 74 73 65 6C 66 20 61 ram was itself a
0183B0: 20 52 41 4D 20 70 72 6F 67 72 61 6D 20 74 68 65 RAM program the
0183C0: 6E 20 74 68 65 20 20 64 65 66 61 75 6C 74 20 20 n the default
0183D0: 52 4F 4D 20 20 69 73 0D 0A 20 20 20 20 20 20 20 ROM is..
0183E0: 65 6E 74 65 72 65 64 20 69 6E 73 74 65 61 64 20 entered instead
0183F0: 61 73 20 74 68 65 20 70 72 6F 67 72 61 6D 20 6D as the program m
018400: 61 79 20 20 68 61 76 65 20 20 62 65 65 6E 20 20 ay have been
018410: 63 6F 72 72 75 70 74 65 64 20 20 64 75 72 69 6E corrupted durin
018420: 67 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 66 g the.. f
018430: 61 69 6C 65 64 20 6C 6F 61 64 69 6E 67 2E 0D 0A ailed loading...
018440: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
018450: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
018460: 0A 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E ... CAS IN
018470: 20 44 49 52 45 43 54 0D 0A 20 20 20 20 20 20 20 DIRECT..
018480: 4B 4C 20 43 48 4F 4B 45 20 4F 46 46 0D 0A 20 20 KL CHOKE OFF..
018490: 20 20 20 20 20 4D 43 20 53 54 41 52 54 20 50 52 MC START PR
0184A0: 4F 47 52 41 4D 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D OGRAM...........
0184B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
0184C0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
0184D0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
0184E0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
0184F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
018500: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
018510: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
018520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018530: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 page 15.2
018540: 31 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15..............
018550: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 37 38 ...... 178
018560: 3A 20 4D 43 20 53 54 41 52 54 20 50 52 4F 47 52 : MC START PROGR
018570: 41 4D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 AM
018580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
0185A0: 44 31 36 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 D16......
0185B0: 52 75 6E 20 61 20 66 6F 72 65 67 72 6F 75 6E 64 Run a foreground
0185C0: 20 70 72 6F 67 72 61 6D 2E 0D 0A 0D 0A 0D 0A 20 program.......
0185D0: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
0185E0: 0A 0D 0A 20 20 20 20 20 20 20 46 75 6C 6C 79 20 ... Fully
0185F0: 69 6E 69 74 69 61 6C 69 7A 65 20 74 68 65 20 73 initialize the s
018600: 79 73 74 65 6D 20 61 6E 64 20 65 6E 74 65 72 20 ystem and enter
018610: 61 20 70 72 6F 67 72 61 6D 2E 0D 0A 0D 0A 0D 0A a program.......
018620: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
018630: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
018640: 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 HL contains
018650: 20 74 68 65 20 65 6E 74 72 79 20 70 6F 69 6E 74 the entry point
018660: 20 61 64 64 72 65 73 73 2E 0D 0A 20 20 20 20 20 address...
018670: 20 20 43 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 C contains the
018680: 20 72 65 71 75 69 72 65 64 20 52 4F 4D 20 73 65 required ROM se
018690: 6C 65 63 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 lection.......
0186A0: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
0186B0: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
0186C0: 20 20 4E 65 76 65 72 20 65 78 69 74 73 21 0D 0A Never exits!..
0186D0: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
0186E0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 61 ..... HL a
0186F0: 6E 64 20 43 20 63 6F 6D 70 72 69 73 65 20 20 74 nd C comprise t
018700: 68 65 20 20 27 66 61 72 20 20 61 64 64 72 65 73 he 'far addres
018710: 73 27 20 20 6F 66 20 20 74 68 65 20 20 65 6E 74 s' of the ent
018720: 72 79 20 20 70 6F 69 6E 74 20 20 6F 66 20 20 74 ry point of t
018730: 68 65 0D 0A 20 20 20 20 20 20 20 66 6F 72 65 67 he.. foreg
018740: 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D 20 28 73 round program (s
018750: 65 65 20 73 65 63 74 69 6F 6E 20 32 29 2E 0D 0A ee section 2)...
018760: 0D 0A 0D 0A 20 20 20 20 20 20 20 57 68 65 6E 20 .... When
018770: 65 6E 74 65 72 69 6E 67 20 61 20 66 6F 72 65 67 entering a foreg
018780: 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D 20 69 6E round program in
018790: 20 52 4F 4D 20 74 68 65 20 52 4F 4D 20 73 65 6C ROM the ROM sel
0187A0: 65 63 74 69 6F 6E 20 73 68 6F 75 6C 64 20 20 62 ection should b
0187B0: 65 0D 0A 20 20 20 20 20 20 20 74 68 61 74 20 20 e.. that
0187C0: 72 65 71 75 69 72 65 64 20 20 74 6F 20 20 73 65 required to se
0187D0: 6C 65 63 74 20 20 74 68 65 20 20 61 70 70 72 6F lect the appro
0187E0: 70 72 69 61 74 65 20 20 52 4F 4D 2E 20 20 57 68 priate ROM. Wh
0187F0: 65 6E 20 20 65 6E 74 65 72 69 6E 67 20 20 20 61 en entering a
018800: 0D 0A 20 20 20 20 20 20 20 66 6F 72 65 67 72 6F .. foregro
018810: 75 6E 64 20 70 72 6F 67 72 61 6D 20 69 6E 20 52 und program in R
018820: 41 4D 20 74 68 65 20 52 4F 4D 20 73 65 6C 65 63 AM the ROM selec
018830: 74 69 6F 6E 20 73 68 6F 75 6C 64 20 62 65 20 75 tion should be u
018840: 73 65 64 20 20 74 6F 20 20 65 6E 61 62 6C 65 0D sed to enable.
018850: 0A 20 20 20 20 20 20 20 6F 72 20 64 69 73 61 62 . or disab
018860: 6C 65 20 52 4F 4D 73 20 61 73 20 74 68 65 20 52 le ROMs as the R
018870: 41 4D 20 70 72 6F 67 72 61 6D 20 72 65 71 75 69 AM program requi
018880: 72 65 73 20 28 52 4F 4D 20 73 65 6C 65 63 74 20 res (ROM select
018890: 61 64 64 72 65 73 73 65 73 20 23 46 43 2E 0D 0A addresses #FC...
0188A0: 20 20 20 20 20 20 20 2E 23 46 46 29 2E 0D 0A 0D .#FF)....
0188B0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 ... This r
0188C0: 6F 75 74 69 6E 65 20 63 61 72 72 69 65 73 20 6F outine carries o
0188D0: 75 74 20 61 20 66 75 6C 6C 20 45 4D 53 20 20 69 ut a full EMS i
0188E0: 6E 69 74 69 61 6C 69 7A 61 74 69 6F 6E 20 20 6F nitialization o
0188F0: 66 20 20 74 68 65 20 20 66 69 72 6D 77 61 72 65 f the firmware
018900: 0D 0A 20 20 20 20 20 20 20 62 65 66 6F 72 65 20 .. before
018910: 65 6E 74 65 72 69 6E 67 20 74 68 65 20 70 72 6F entering the pro
018920: 67 72 61 6D 2E 20 52 65 74 75 72 6E 69 6E 67 20 gram. Returning
018930: 66 72 6F 6D 20 74 68 65 20 70 72 6F 67 72 61 6D from the program
018940: 20 77 69 6C 6C 20 72 65 73 65 74 20 74 68 65 0D will reset the.
018950: 0A 20 20 20 20 20 20 20 73 79 73 74 65 6D 20 28 . system (
018960: 70 65 72 66 6F 72 6D 20 52 53 54 20 30 29 2E 0D perform RST 0)..
018970: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 43 20 53 ..... MC S
018980: 54 41 52 54 20 50 52 4F 47 52 41 4D 20 69 73 20 TART PROGRAM is
018990: 69 6E 74 65 6E 64 65 64 20 66 6F 72 20 72 75 6E intended for run
0189A0: 6E 69 6E 67 20 70 72 6F 67 72 61 6D 73 20 69 6E ning programs in
0189B0: 20 52 4F 4D 20 20 6F 72 20 20 70 72 6F 67 72 61 ROM or progra
0189C0: 6D 73 0D 0A 20 20 20 20 20 20 20 74 68 61 74 20 ms.. that
0189D0: 68 61 76 65 20 61 6C 72 65 61 64 79 20 62 65 65 have already bee
0189E0: 6E 20 6C 6F 61 64 65 64 20 69 6E 74 6F 20 52 41 n loaded into RA
0189F0: 4D 2E 20 54 6F 20 6C 6F 61 64 20 61 6E 64 20 72 M. To load and r
018A00: 75 6E 20 61 20 52 41 4D 20 20 70 72 6F 67 72 61 un a RAM progra
018A10: 6D 0D 0A 20 20 20 20 20 20 20 75 73 65 20 4D 43 m.. use MC
018A20: 20 42 4F 4F 54 20 50 52 4F 47 52 41 4D 2E 0D 0A BOOT PROGRAM...
018A30: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
018A40: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 entries:....
018A50: 20 20 20 20 4D 43 20 42 4F 4F 54 20 50 52 4F 47 MC BOOT PROG
018A60: 52 41 4D 0D 0A 20 20 20 20 20 20 20 52 45 53 45 RAM.. RESE
018A70: 54 20 45 4E 54 52 59 20 28 52 53 54 20 30 29 0D T ENTRY (RST 0).
018A80: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
018A90: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
018AA0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
018AB0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
018AC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
018AD0: 65 20 31 35 2E 32 31 36 0D 0A 0D 0A 0D 0A 0D 0A e 15.216........
018AE0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 37 39 ...... 179
018AF0: 3A 20 4D 43 20 57 41 49 54 20 46 4C 59 42 41 43 : MC WAIT FLYBAC
018B00: 4B 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 K
018B10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018B20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
018B30: 44 31 39 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 D19......
018B40: 57 61 69 74 20 66 6F 72 20 66 72 61 6D 65 20 66 Wait for frame f
018B50: 6C 79 62 61 63 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 lyback.......
018B60: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D Action:.....
018B70: 0A 20 20 20 20 20 20 20 57 61 69 74 20 75 6E 74 . Wait unt
018B80: 69 6C 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B il frame flyback
018B90: 20 6F 63 63 75 72 73 2E 0D 0A 0D 0A 0D 0A 20 20 occurs.......
018BA0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
018BB0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
018BC0: 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 No conditions
018BD0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
018BE0: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
018BF0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 72 .... All r
018C00: 65 67 69 73 74 65 72 73 20 61 6E 64 20 66 6C 61 egisters and fla
018C10: 67 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D gs preserved....
018C20: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
018C30: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 72 61 ...... Fra
018C40: 6D 65 20 66 6C 79 62 61 63 6B 20 69 73 20 61 20 me flyback is a
018C50: 73 69 67 6E 61 6C 20 67 65 6E 65 72 61 74 65 64 signal generated
018C60: 20 62 79 20 74 68 65 20 43 52 54 20 20 63 6F 6E by the CRT con
018C70: 74 72 6F 6C 6C 65 72 20 20 74 6F 20 20 73 69 67 troller to sig
018C80: 6E 61 6C 0D 0A 20 20 20 20 20 20 20 74 68 65 20 nal.. the
018C90: 73 74 61 72 74 20 6F 66 20 74 68 65 20 76 65 72 start of the ver
018CA0: 74 69 63 61 6C 20 20 72 65 74 72 61 63 65 20 20 tical retrace
018CB0: 70 65 72 69 6F 64 2E 20 20 44 75 72 69 6E 67 20 period. During
018CC0: 20 74 68 69 73 20 20 70 65 72 69 6F 64 20 20 74 this period t
018CD0: 68 65 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 he.. scree
018CE0: 6E 20 69 73 20 6E 6F 74 20 62 65 69 6E 67 20 77 n is not being w
018CF0: 72 69 74 74 65 6E 20 61 6E 64 20 73 6F 20 6D 61 ritten and so ma
018D00: 6A 6F 72 20 6F 70 65 72 61 74 69 6F 6E 73 20 63 jor operations c
018D10: 61 6E 20 20 62 65 20 20 70 65 72 66 6F 72 6D 65 an be performe
018D20: 64 0D 0A 20 20 20 20 20 20 20 6F 6E 20 74 68 65 d.. on the
018D30: 20 73 63 72 65 65 6E 20 77 69 74 68 6F 75 74 20 screen without
018D40: 70 72 6F 64 75 63 69 6E 67 20 75 6E 73 69 67 68 producing unsigh
018D50: 74 6C 79 20 65 66 66 65 63 74 73 2E 20 41 20 70 tly effects. A p
018D60: 72 69 6D 65 20 65 78 61 6D 70 6C 65 20 20 69 73 rime example is
018D70: 0D 0A 20 20 20 20 20 20 20 72 6F 6C 6C 69 6E 67 .. rolling
018D80: 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A the screen.....
018D90: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 20 66 72 .. The fr
018DA0: 61 6D 65 20 20 66 6C 79 62 61 63 6B 20 20 73 69 ame flyback si
018DB0: 67 6E 61 6C 20 20 6F 6E 6C 79 20 20 6C 61 73 74 gnal only last
018DC0: 73 20 20 66 6F 72 20 20 61 20 20 63 6F 75 70 6C s for a coupl
018DD0: 65 20 20 6F 66 20 20 20 68 75 6E 64 72 65 64 0D e of hundred.
018DE0: 0A 20 20 20 20 20 20 20 6D 69 63 72 6F 73 65 63 . microsec
018DF0: 6F 6E 64 73 20 62 75 74 20 74 68 65 20 76 65 72 onds but the ver
018E00: 74 69 63 61 6C 20 72 65 74 72 61 63 65 20 70 65 tical retrace pe
018E10: 72 69 6F 64 20 69 73 20 6D 75 63 68 20 6C 6F 6E riod is much lon
018E20: 67 65 72 20 74 68 61 6E 20 74 68 69 73 2E 0D 0A ger than this...
018E30: 20 20 20 20 20 20 20 48 6F 77 65 76 65 72 2C 20 However,
018E40: 74 68 65 72 65 20 77 69 6C 6C 20 62 65 20 61 20 there will be a
018E50: 74 69 63 6B 65 72 20 20 69 6E 74 65 72 72 75 70 ticker interrup
018E60: 74 20 20 69 6E 20 20 74 68 65 20 20 6D 69 64 64 t in the midd
018E70: 6C 65 20 20 6F 66 20 20 66 72 61 6D 65 0D 0A 20 le of frame..
018E80: 20 20 20 20 20 20 66 6C 79 62 61 63 6B 20 77 68 flyback wh
018E90: 69 63 68 20 6D 61 79 20 63 61 75 73 65 20 74 68 ich may cause th
018EA0: 65 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F e foreground pro
018EB0: 63 65 73 73 69 6E 67 20 74 6F 20 62 65 20 73 75 cessing to be su
018EC0: 73 70 65 6E 64 65 64 20 20 66 6F 72 0D 0A 20 20 spended for..
018ED0: 20 20 20 20 20 61 20 73 69 67 6E 69 66 69 63 61 a significa
018EE0: 6E 74 20 6C 65 6E 67 74 68 20 6F 66 20 74 69 6D nt length of tim
018EF0: 65 2E 20 49 74 20 69 73 20 69 6D 70 6F 72 74 61 e. It is importa
018F00: 6E 74 2C 20 74 68 65 72 65 66 6F 72 65 2C 20 20 nt, therefore,
018F10: 74 6F 20 20 70 65 72 66 6F 72 6D 0D 0A 20 20 20 to perform..
018F20: 20 20 20 20 61 6E 79 20 63 72 69 74 69 63 61 6C any critical
018F30: 20 70 72 6F 63 65 73 73 69 6E 67 20 61 73 20 73 processing as s
018F40: 6F 6F 6E 20 61 66 74 65 72 20 74 68 65 20 66 72 oon after the fr
018F50: 61 6D 65 20 66 6C 79 62 61 63 6B 20 69 73 20 64 ame flyback is d
018F60: 65 74 65 63 74 65 64 20 61 73 0D 0A 20 20 20 20 etected as..
018F70: 20 20 20 69 73 20 70 6F 73 73 69 62 6C 65 2E 0D is possible..
018F80: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
018F90: 20 72 6F 75 74 69 6E 65 20 72 65 74 75 72 6E 73 routine returns
018FA0: 20 69 6D 6D 65 64 69 61 74 65 6C 79 20 69 66 20 immediately if
018FB0: 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 69 73 frame flyback is
018FC0: 20 6F 63 63 75 72 72 69 6E 67 20 77 68 65 6E 20 occurring when
018FD0: 69 74 0D 0A 20 20 20 20 20 20 20 69 73 20 63 61 it.. is ca
018FE0: 6C 6C 65 64 2E 20 49 74 20 64 6F 65 73 20 6E 6F lled. It does no
018FF0: 74 20 77 61 69 74 20 66 6F 72 20 74 68 65 20 73 t wait for the s
019000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
019010: 15 00 00 00 02 09 50 E5 15 00 C1 02 00 00 00 02 ......P.........
019020: 15 00 C2 02 00 00 00 02 15 00 C3 02 00 00 00 02 ................
019030: 15 00 C4 02 00 00 00 02 15 00 C5 02 00 00 00 02 ................
019040: 15 00 C6 02 00 00 00 02 15 00 C7 02 00 00 00 02 ................
019050: 15 00 C8 02 00 00 00 02 15 00 C9 02 00 00 00 02 ................
019060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019100: 74 61 72 74 20 20 6F 66 20 20 66 72 61 6D 65 20 tart of frame
019110: 20 66 6C 79 62 61 63 6B 20 20 28 75 73 65 20 20 flyback (use
019120: 61 0D 0A 20 20 20 20 20 20 20 66 72 61 6D 65 20 a.. frame
019130: 66 6C 79 62 61 63 6B 20 65 76 65 6E 74 20 74 6F flyback event to
019140: 20 64 6F 20 74 68 69 73 29 2E 0D 0A 0D 0A 0D 0A do this).......
019150: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
019160: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 entries:......
019170: 20 20 20 20 20 20 4B 4C 20 41 44 44 20 46 52 41 KL ADD FRA
019180: 4D 45 20 46 4C 59 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ME FLY..........
019190: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
0191A0: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
0191B0: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
0191C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0191D0: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 31 page 15.21
0191E0: 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 7..............
0191F0: 20 20 20 20 20 20 31 38 30 3A 20 4D 43 20 53 45 180: MC SE
019200: 54 20 4D 4F 44 45 20 20 20 20 20 20 20 20 20 20 T MODE
019210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019230: 20 20 20 20 20 20 20 23 42 44 31 43 0D 0A 0D 0A #BD1C....
019240: 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 65 .. Set the
019250: 20 73 63 72 65 65 6E 20 6D 6F 64 65 2E 0D 0A 0D screen mode....
019260: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
019270: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4C 6F :...... Lo
019280: 61 64 20 74 68 65 20 68 61 72 64 77 61 72 65 20 ad the hardware
019290: 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 with the require
0192A0: 64 20 73 63 72 65 65 6E 20 6D 6F 64 65 2E 0D 0A d screen mode...
0192B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 .... Entry
0192C0: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
0192D0: 0D 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 .. A conta
0192E0: 69 6E 73 20 74 68 65 20 72 65 71 75 69 72 65 64 ins the required
0192F0: 20 6D 6F 64 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 mode.......
019300: 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F Exit conditio
019310: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
019320: 41 46 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 AF corrupt...
019330: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
019340: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
019350: 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 d.........
019360: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 Notes:......
019370: 20 20 20 20 54 68 65 20 72 65 71 75 69 72 65 64 The required
019380: 20 6D 6F 64 65 20 69 73 20 63 68 65 63 6B 65 64 mode is checked
019390: 20 61 6E 64 20 6E 6F 20 61 63 74 69 6F 6E 20 69 and no action i
0193A0: 73 20 74 61 6B 65 6E 20 69 66 20 69 74 20 69 73 s taken if it is
0193B0: 20 20 69 6E 76 61 6C 69 64 2E 0D 0A 20 20 20 20 invalid...
0193C0: 20 20 20 49 66 20 69 74 20 69 73 20 76 61 6C 69 If it is vali
0193D0: 64 20 74 68 65 6E 20 74 68 65 20 6E 65 77 20 76 d then the new v
0193E0: 61 6C 75 65 20 69 73 20 73 65 6E 74 20 74 6F 20 alue is sent to
0193F0: 74 68 65 20 68 61 72 64 77 61 72 65 2E 0D 0A 0D the hardware....
019400: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 63 ... The sc
019410: 72 65 65 6E 20 6D 6F 64 65 73 20 61 72 65 3A 0D reen modes are:.
019420: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
019430: 20 20 20 20 20 30 3A 20 20 20 20 20 20 20 20 31 0: 1
019440: 36 30 20 78 20 32 30 30 20 70 69 78 65 6C 73 2C 60 x 200 pixels,
019450: 20 20 20 32 30 20 78 20 32 35 20 63 68 61 72 61 20 x 25 chara
019460: 63 74 65 72 73 2E 0D 0A 20 20 20 20 20 20 20 20 cters...
019470: 20 20 20 20 20 20 20 20 31 3A 20 20 20 20 20 20 1:
019480: 20 20 33 32 30 20 78 20 32 30 30 20 70 69 78 65 320 x 200 pixe
019490: 6C 73 2C 20 20 20 34 30 20 78 20 32 35 20 63 68 ls, 40 x 25 ch
0194A0: 61 72 61 63 74 65 72 73 2E 0D 0A 20 20 20 20 20 aracters...
0194B0: 20 20 20 20 20 20 20 20 20 20 20 32 3A 20 20 20 2:
0194C0: 20 20 20 20 20 36 34 30 20 78 20 32 30 30 20 70 640 x 200 p
0194D0: 69 78 65 6C 73 2C 20 20 20 38 30 20 78 20 32 35 ixels, 80 x 25
0194E0: 20 63 68 61 72 61 63 74 65 72 73 2E 0D 0A 0D 0A characters.....
0194F0: 0D 0A 20 20 20 20 20 20 20 41 6C 74 65 72 69 6E .. Alterin
019500: 67 20 74 68 65 20 73 63 72 65 65 6E 20 20 6D 6F g the screen mo
019510: 64 65 20 20 77 69 74 68 6F 75 74 20 20 6E 6F 74 de without not
019520: 69 66 79 69 6E 67 20 20 74 68 65 20 20 53 63 72 ifying the Scr
019530: 65 65 6E 20 20 50 61 63 6B 20 20 77 69 6C 6C 0D een Pack will.
019540: 0A 20 20 20 20 20 20 20 70 72 6F 64 75 63 65 20 . produce
019550: 70 65 63 75 6C 69 61 72 20 65 66 66 65 63 74 73 peculiar effects
019560: 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 2E 20 on the screen.
019570: 49 6E 20 67 65 6E 65 72 61 6C 20 53 43 52 20 53 In general SCR S
019580: 45 54 20 4D 4F 44 45 20 73 68 6F 75 6C 64 0D 0A ET MODE should..
019590: 20 20 20 20 20 20 20 62 65 20 63 61 6C 6C 65 64 be called
0195A0: 20 74 6F 20 63 68 61 6E 67 65 20 73 63 72 65 65 to change scree
0195B0: 6E 20 6D 6F 64 65 2E 20 54 68 69 73 2C 20 69 6E n mode. This, in
0195C0: 20 74 75 72 6E 2C 20 73 65 74 73 20 74 68 65 20 turn, sets the
0195D0: 6E 65 77 20 6D 6F 64 65 20 69 6E 74 6F 0D 0A 20 new mode into..
0195E0: 20 20 20 20 20 20 74 68 65 20 68 61 72 64 77 61 the hardwa
0195F0: 72 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 re...........
019600: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
019610: 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ies:......
019620: 20 53 43 52 20 53 45 54 20 4D 4F 44 45 0D 0A 0D SCR SET MODE...
019630: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
019640: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
019650: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
019660: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
019670: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
019680: 65 20 31 35 2E 32 31 38 0D 0A 0D 0A 0D 0A 0D 0A e 15.218........
019690: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 38 31 ...... 181
0196A0: 3A 20 4D 43 20 53 43 52 45 45 4E 20 4F 46 46 53 : MC SCREEN OFFS
0196B0: 45 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ET
0196C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0196D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
0196E0: 44 31 46 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 D1F......
0196F0: 53 65 74 20 74 68 65 20 73 63 72 65 65 6E 20 6F Set the screen o
019700: 66 66 73 65 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 ffset.......
019710: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A Action:......
019720: 20 20 20 20 20 20 20 4C 6F 61 64 20 74 68 65 20 Load the
019730: 68 61 72 64 77 61 72 65 20 77 69 74 68 20 74 68 hardware with th
019740: 65 20 6F 66 66 73 65 74 20 6F 66 20 74 68 65 20 e offset of the
019750: 20 66 69 72 73 74 20 20 62 79 74 65 20 20 6F 6E first byte on
019760: 20 20 74 68 65 20 20 73 63 72 65 65 6E 0D 0A 20 the screen..
019770: 20 20 20 20 20 20 69 6E 73 69 64 65 20 61 20 32 inside a 2
019780: 4B 20 73 63 72 65 65 6E 20 62 6C 6F 63 6B 20 61 K screen block a
019790: 6E 64 20 77 68 69 63 68 20 31 36 4B 20 20 62 6C nd which 16K bl
0197A0: 6F 63 6B 20 20 74 68 65 20 20 73 63 72 65 65 6E ock the screen
0197B0: 20 20 6D 65 6D 6F 72 79 20 20 69 73 0D 0A 20 20 memory is..
0197C0: 20 20 20 20 20 6C 6F 63 61 74 65 64 20 69 6E 2E located in.
0197D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 ...... Ent
0197E0: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
0197F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 6F 6E .... A con
019800: 74 61 69 6E 73 20 74 68 65 20 6E 65 77 20 73 63 tains the new sc
019810: 72 65 65 6E 20 62 61 73 65 2E 0D 0A 20 20 20 20 reen base...
019820: 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 HL contains t
019830: 68 65 20 6E 65 77 20 73 63 72 65 65 6E 20 6F 66 he new screen of
019840: 66 73 65 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 fset.......
019850: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
019860: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 s:...... A
019870: 46 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 F corrupt...
019880: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
019890: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
0198A0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
0198B0: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
0198C0: 20 54 68 65 20 73 63 72 65 65 6E 20 62 61 73 65 The screen base
0198D0: 20 61 64 64 72 65 73 73 20 69 73 20 6D 61 73 6B address is mask
0198E0: 65 64 20 77 69 74 68 20 23 43 30 20 74 6F 20 6D ed with #C0 to m
0198F0: 61 6B 65 20 73 75 72 65 20 69 74 20 72 65 66 65 ake sure it refe
019900: 72 73 20 74 6F 20 61 0D 0A 20 20 20 20 20 20 20 rs to a..
019910: 76 61 6C 69 64 20 31 36 4B 20 6D 65 6D 6F 72 79 valid 16K memory
019920: 20 61 72 65 61 2E 20 54 68 65 20 64 65 66 61 75 area. The defau
019930: 6C 74 20 73 63 72 65 65 6E 20 62 61 73 65 20 69 lt screen base i
019940: 73 20 23 43 30 20 28 74 68 65 20 20 73 63 72 65 s #C0 (the scre
019950: 65 6E 20 20 69 73 0D 0A 20 20 20 20 20 20 20 75 en is.. u
019960: 6E 64 65 72 6E 65 61 74 68 20 74 68 65 20 75 70 nderneath the up
019970: 70 65 72 20 52 4F 4D 29 2E 0D 0A 0D 0A 0D 0A 20 per ROM).......
019980: 20 20 20 20 20 20 54 68 65 20 73 63 72 65 65 6E The screen
019990: 20 6F 66 66 73 65 74 20 69 73 20 6D 61 73 6B 65 offset is maske
0199A0: 64 20 77 69 74 68 20 23 30 37 46 45 20 74 6F 20 d with #07FE to
0199B0: 6D 61 6B 65 20 69 74 20 6C 65 67 61 6C 2E 20 4E make it legal. N
0199C0: 6F 74 65 20 74 68 61 74 20 62 69 74 0D 0A 20 20 ote that bit..
0199D0: 20 20 20 20 20 30 20 69 73 20 69 67 6E 6F 72 65 0 is ignore
0199E0: 64 20 61 73 20 74 68 65 20 68 61 72 64 77 61 72 d as the hardwar
0199F0: 65 20 6F 6E 6C 79 20 75 73 65 73 20 65 76 65 6E e only uses even
019A00: 20 6F 66 66 73 65 74 73 2E 0D 0A 0D 0A 0D 0A 20 offsets.......
019A10: 20 20 20 20 20 20 49 66 20 74 68 65 20 73 63 72 If the scr
019A20: 65 65 6E 20 62 61 73 65 20 6F 72 20 6F 66 66 73 een base or offs
019A30: 65 74 20 69 73 20 63 68 61 6E 67 65 64 20 77 69 et is changed wi
019A40: 74 68 6F 75 74 20 6E 6F 74 69 66 79 69 6E 67 20 thout notifying
019A50: 20 74 68 65 20 20 53 63 72 65 65 6E 0D 0A 20 20 the Screen..
019A60: 20 20 20 20 20 50 61 63 6B 20 74 68 65 6E 20 75 Pack then u
019A70: 6E 65 78 70 65 63 74 65 64 20 65 66 66 65 63 74 nexpected effect
019A80: 73 20 6D 61 79 20 6F 63 63 75 72 20 6F 6E 20 74 s may occur on t
019A90: 68 65 20 73 63 72 65 65 6E 2E 20 49 6E 20 20 67 he screen. In g
019AA0: 65 6E 65 72 61 6C 20 20 53 43 52 0D 0A 20 20 20 eneral SCR..
019AB0: 20 20 20 20 53 45 54 20 42 41 53 45 20 6F 72 20 SET BASE or
019AC0: 53 43 52 20 53 45 54 20 4F 46 46 53 45 54 20 73 SCR SET OFFSET s
019AD0: 68 6F 75 6C 64 20 62 65 20 63 61 6C 6C 65 64 2E hould be called.
019AE0: 20 20 54 68 65 73 65 2C 20 20 69 6E 20 20 74 68 These, in th
019AF0: 65 69 72 20 20 74 75 72 6E 2C 0D 0A 20 20 20 20 eir turn,..
019B00: 20 20 20 73 65 6E 64 20 74 68 65 20 76 61 6C 75 send the valu
019B10: 65 73 20 74 6F 20 74 68 65 20 68 61 72 64 77 61 es to the hardwa
019B20: 72 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D re..............
019B30: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
019B40: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
019B50: 20 20 20 20 20 53 43 52 20 53 45 54 20 42 41 53 SCR SET BAS
019B60: 45 0D 0A 20 20 20 20 20 20 20 53 43 52 20 53 45 E.. SCR SE
019B70: 54 20 4F 46 46 53 45 54 0D 0A 0D 0A 0D 0A 0D 0A T OFFSET........
019B80: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
019B90: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
019BA0: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
019BB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019BC0: 20 20 20 20 70 61 67 65 20 31 35 2E 32 31 39 0D page 15.219.
019BD0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
019BE0: 20 20 20 20 31 38 32 3A 20 4D 43 20 43 4C 45 41 182: MC CLEA
019BF0: 52 20 49 4E 4B 53 20 20 20 20 20 20 20 20 20 20 R INKS
019C00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019C10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019C20: 20 20 20 20 20 23 42 44 32 32 0D 0A 0D 0A 0D 0A #BD22......
019C30: 20 20 20 20 20 20 20 53 65 74 20 61 6C 6C 20 69 Set all i
019C40: 6E 6B 73 20 74 6F 20 6F 6E 65 20 63 6F 6C 6F 75 nks to one colou
019C50: 72 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 r...... Ac
019C60: 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tion:......
019C70: 20 20 53 65 74 20 74 68 65 20 63 6F 6C 6F 75 72 Set the colour
019C80: 20 6F 66 20 74 68 65 20 62 6F 72 64 65 72 20 61 of the border a
019C90: 6E 64 20 73 65 74 20 74 68 65 20 63 6F 6C 6F 75 nd set the colou
019CA0: 72 20 6F 66 20 61 6C 6C 20 74 68 65 20 20 69 6E r of all the in
019CB0: 6B 73 2E 20 20 41 6C 6C 0D 0A 20 20 20 20 20 20 ks. All..
019CC0: 20 69 6E 6B 73 20 61 72 65 20 73 65 74 20 74 6F inks are set to
019CD0: 20 74 68 65 20 73 61 6D 65 20 63 6F 6C 6F 75 72 the same colour
019CE0: 20 74 68 75 73 20 67 69 76 69 6E 67 20 74 68 65 thus giving the
019CF0: 20 20 69 6D 70 72 65 73 73 69 6F 6E 20 20 74 68 impression th
019D00: 61 74 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 at the..
019D10: 73 63 72 65 65 6E 20 68 61 73 20 62 65 65 6E 20 screen has been
019D20: 63 6C 65 61 72 65 64 20 69 6E 73 74 61 6E 74 6C cleared instantl
019D30: 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 y....... E
019D40: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
019D50: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 45 20 ...... DE
019D60: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 contains the add
019D70: 72 65 73 73 20 6F 66 20 61 6E 20 69 6E 6B 20 76 ress of an ink v
019D80: 65 63 74 6F 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 ector.......
019D90: 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F Exit conditio
019DA0: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
019DB0: 41 46 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 AF corrupt...
019DC0: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
019DD0: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
019DE0: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E d....... N
019DF0: 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 otes:......
019E00: 20 20 54 68 65 20 69 6E 6B 20 76 65 63 74 6F 72 The ink vector
019E10: 20 68 61 73 20 74 68 65 20 66 6F 72 6D 3A 0D 0A has the form:..
019E20: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
019E30: 20 20 20 20 42 79 74 65 20 30 3A 20 20 20 43 6F Byte 0: Co
019E40: 6C 6F 75 72 20 6F 66 20 74 68 65 20 62 6F 72 64 lour of the bord
019E50: 65 72 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 er...
019E60: 20 20 20 20 20 42 79 74 65 20 31 3A 20 20 20 43 Byte 1: C
019E70: 6F 6C 6F 75 72 20 66 6F 72 20 61 6C 6C 20 69 6E olour for all in
019E80: 6B 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ks.......
019E90: 54 68 65 20 63 6F 6C 6F 75 72 73 20 73 75 70 70 The colours supp
019EA0: 6C 69 65 64 20 61 72 65 20 74 68 65 20 6E 75 6D lied are the num
019EB0: 62 65 72 73 20 75 73 65 64 20 62 79 20 74 68 65 bers used by the
019EC0: 20 68 61 72 64 77 61 72 65 20 72 61 74 68 65 72 hardware rather
019ED0: 20 20 74 68 61 6E 0D 0A 20 20 20 20 20 20 20 74 than.. t
019EE0: 68 65 20 67 72 65 79 20 73 63 61 6C 65 20 6E 75 he grey scale nu
019EF0: 6D 62 65 72 73 20 73 75 70 70 6C 69 65 64 20 74 mbers supplied t
019F00: 6F 20 53 43 52 20 53 45 54 20 49 4E 4B 20 28 73 o SCR SET INK (s
019F10: 65 65 20 41 70 70 65 6E 64 69 78 20 56 29 2E 0D ee Appendix V)..
019F20: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 66 74 65 ..... Afte
019F30: 72 20 74 68 65 20 73 63 72 65 65 6E 20 68 61 73 r the screen has
019F40: 20 20 62 65 65 6E 20 20 63 6C 65 61 72 65 64 20 been cleared
019F50: 20 28 6F 72 20 20 77 68 61 74 65 76 65 72 29 20 (or whatever)
019F60: 20 74 68 65 20 20 63 6F 72 72 65 63 74 20 20 69 the correct i
019F70: 6E 6B 0D 0A 20 20 20 20 20 20 20 63 6F 6C 6F 75 nk.. colou
019F80: 72 73 20 63 61 6E 20 62 65 20 73 65 74 20 62 79 rs can be set by
019F90: 20 63 61 6C 6C 69 6E 67 20 4D 43 20 53 45 54 20 calling MC SET
019FA0: 49 4E 4B 53 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 INKS.......
019FB0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 73 This routine s
019FC0: 65 74 73 20 74 68 65 20 63 6F 6C 6F 75 72 73 20 ets the colours
019FD0: 66 6F 72 20 61 6C 6C 20 31 36 20 20 69 6E 6B 73 for all 16 inks
019FE0: 20 20 77 68 65 74 68 65 72 20 20 74 68 65 79 20 whether they
019FF0: 20 63 61 6E 20 20 62 65 0D 0A 20 20 20 20 20 20 can be..
01A000: 20 64 69 73 70 6C 61 79 65 64 20 6F 6E 20 74 68 displayed on th
01A010: 65 20 73 63 72 65 65 6E 20 69 6E 20 74 68 65 20 e screen in the
01A020: 63 75 72 72 65 6E 74 20 6D 6F 64 65 20 6F 72 20 current mode or
01A030: 6E 6F 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 not.......
01A040: 20 54 68 69 73 20 69 6E 6B 20 63 6C 65 61 72 69 This ink cleari
01A050: 6E 67 20 74 65 63 68 6E 69 71 75 65 20 69 73 20 ng technique is
01A060: 75 73 65 64 20 62 79 20 74 68 65 20 53 63 72 65 used by the Scre
01A070: 65 6E 20 50 61 63 6B 20 20 77 68 65 6E 20 20 63 en Pack when c
01A080: 6C 65 61 72 69 6E 67 0D 0A 20 20 20 20 20 20 20 learing..
01A090: 74 68 65 20 73 63 72 65 65 6E 20 6F 72 20 63 68 the screen or ch
01A0A0: 61 6E 67 69 6E 67 20 6D 6F 64 65 20 28 62 79 20 anging mode (by
01A0B0: 53 43 52 20 43 4C 45 41 52 20 61 6E 64 20 53 43 SCR CLEAR and SC
01A0C0: 52 20 53 45 54 20 4D 4F 44 45 29 2E 0D 0A 0D 0A R SET MODE).....
01A0D0: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
01A0E0: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 entries:....
01A0F0: 20 20 20 20 4D 43 20 53 45 54 20 49 4E 4B 53 0D MC SET INKS.
01A100: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
01A110: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
01A120: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
01A130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A140: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
01A150: 2E 32 32 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .220............
01A160: 0D 0A 20 20 20 20 20 20 20 31 38 33 3A 20 4D 43 .. 183: MC
01A170: 20 53 45 54 20 49 4E 4B 53 20 20 20 20 20 20 20 SET INKS
01A180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A1A0: 20 20 20 20 20 20 20 20 20 20 23 42 44 32 35 0D #BD25.
01A1B0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 ..... Set
01A1C0: 63 6F 6C 6F 75 72 73 20 6F 66 20 61 6C 6C 20 74 colours of all t
01A1D0: 68 65 20 69 6E 6B 73 2E 0D 0A 0D 0A 0D 0A 20 20 he inks.......
01A1E0: 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A Action:....
01A1F0: 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 65 .. Set the
01A200: 20 63 6F 6C 6F 75 72 73 20 6F 66 20 61 6C 6C 20 colours of all
01A210: 74 68 65 20 69 6E 6B 73 20 61 6E 64 20 74 68 65 the inks and the
01A220: 20 62 6F 72 64 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 border.......
01A230: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
01A240: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
01A250: 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 DE contains t
01A260: 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 61 6E he address of an
01A270: 20 69 6E 6B 20 76 65 63 74 6F 72 2E 0D 0A 0D 0A ink vector.....
01A280: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
01A290: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
01A2A0: 20 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 74 AF corrupt
01A2B0: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
01A2C0: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
01A2D0: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
01A2E0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
01A2F0: 0A 20 20 20 20 20 20 20 54 68 65 20 69 6E 6B 20 . The ink
01A300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
01A310: 16 00 00 00 02 09 50 E5 16 00 C1 02 00 00 00 02 ......P.........
01A320: 16 00 C2 02 00 00 00 02 16 00 C3 02 00 00 00 02 ................
01A330: 16 00 C4 02 00 00 00 02 16 00 C5 02 00 00 00 02 ................
01A340: 16 00 C6 02 00 00 00 02 16 00 C7 02 00 00 00 02 ................
01A350: 16 00 C8 02 00 00 00 02 16 00 C9 02 00 00 00 02 ................
01A360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A400: 76 65 63 74 6F 72 20 70 61 73 73 65 64 20 68 61 vector passed ha
01A410: 73 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 s the following
01A420: 6C 61 79 6F 75 74 3A 0D 0A 0D 0A 0D 0A 20 20 20 layout:......
01A430: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 Byt
01A440: 65 20 30 3A 20 20 20 43 6F 6C 6F 75 72 20 6F 66 e 0: Colour of
01A450: 20 74 68 65 20 62 6F 72 64 65 72 2E 0D 0A 20 20 the border...
01A460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 79 By
01A470: 74 65 20 31 3A 20 20 20 43 6F 6C 6F 75 72 20 66 te 1: Colour f
01A480: 6F 72 20 69 6E 6B 20 30 2E 0D 0A 20 20 20 20 20 or ink 0...
01A490: 20 20 20 20 20 20 20 20 20 20 20 42 79 74 65 20 Byte
01A4A0: 32 3A 20 20 20 43 6F 6C 6F 75 72 20 66 6F 72 20 2: Colour for
01A4B0: 69 6E 6B 20 31 2E 0D 0A 0D 0A 20 20 20 20 20 20 ink 1.....
01A4C0: 20 20 20 20 20 20 20 20 20 20 2E 2E 20 20 20 20 ..
01A4D0: 20 20 20 20 20 20 20 20 20 2E 2E 0D 0A 20 20 20 ....
01A4E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 Byt
01A4F0: 65 20 31 36 3A 20 20 43 6F 6C 6F 75 72 20 66 6F e 16: Colour fo
01A500: 72 20 69 6E 6B 20 31 35 2E 0D 0A 0D 0A 0D 0A 20 r ink 15.......
01A510: 20 20 20 20 20 20 54 68 65 20 63 6F 6C 6F 75 72 The colour
01A520: 73 20 73 75 70 70 6C 69 65 64 20 61 72 65 20 74 s supplied are t
01A530: 68 65 20 6E 75 6D 62 65 72 73 20 75 73 65 64 20 he numbers used
01A540: 62 79 20 74 68 65 20 68 61 72 64 77 61 72 65 20 by the hardware
01A550: 72 61 74 68 65 72 20 20 74 68 61 6E 0D 0A 20 20 rather than..
01A560: 20 20 20 20 20 74 68 65 20 67 72 65 79 20 73 63 the grey sc
01A570: 61 6C 65 20 6E 75 6D 62 65 72 73 20 73 75 70 70 ale numbers supp
01A580: 6C 69 65 64 20 74 6F 20 53 43 52 20 53 45 54 20 lied to SCR SET
01A590: 49 4E 4B 20 28 73 65 65 20 41 70 70 65 6E 64 69 INK (see Appendi
01A5A0: 78 20 56 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 x V).......
01A5B0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 73 This routine s
01A5C0: 65 74 73 20 74 68 65 20 63 6F 6C 6F 75 72 73 20 ets the colours
01A5D0: 66 6F 72 20 61 6C 6C 20 69 6E 6B 73 20 69 6E 63 for all inks inc
01A5E0: 6C 75 64 69 6E 67 20 74 68 6F 73 65 20 74 68 61 luding those tha
01A5F0: 74 20 63 61 6E 6E 6F 74 0D 0A 20 20 20 20 20 20 t cannot..
01A600: 20 62 65 20 76 69 73 69 62 6C 65 20 69 6E 20 74 be visible in t
01A610: 68 65 20 63 75 72 72 65 6E 74 20 73 63 72 65 65 he current scree
01A620: 6E 20 6D 6F 64 65 2E 20 48 6F 77 65 76 65 72 2C n mode. However,
01A630: 20 69 74 20 69 73 20 20 6F 6E 6C 79 20 20 6E 65 it is only ne
01A640: 63 65 73 73 61 72 79 0D 0A 20 20 20 20 20 20 20 cessary..
01A650: 74 6F 20 73 75 70 70 6C 79 20 73 65 6E 73 69 62 to supply sensib
01A660: 6C 65 20 63 6F 6C 6F 75 72 73 20 66 6F 72 20 74 le colours for t
01A670: 68 65 20 76 69 73 69 62 6C 65 20 69 6E 6B 73 2E he visible inks.
01A680: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 53 .... The S
01A690: 63 72 65 65 6E 20 50 61 63 6B 20 73 65 74 73 20 creen Pack sets
01A6A0: 74 68 65 20 63 6F 6C 6F 75 72 73 20 66 6F 72 20 the colours for
01A6B0: 61 6C 6C 20 74 68 65 20 69 6E 6B 73 20 65 61 63 all the inks eac
01A6C0: 68 20 74 69 6D 65 20 20 74 68 65 20 20 69 6E 6B h time the ink
01A6D0: 73 0D 0A 20 20 20 20 20 20 20 66 6C 61 73 68 20 s.. flash
01A6E0: 61 6E 64 20 61 66 74 65 72 20 61 6E 20 69 6E 6B and after an ink
01A6F0: 20 63 6F 6C 6F 75 72 20 68 61 73 20 62 65 65 6E colour has been
01A700: 20 63 68 61 6E 67 65 64 20 28 62 79 20 63 61 6C changed (by cal
01A710: 6C 69 6E 67 20 53 43 52 20 53 45 54 20 49 4E 4B ling SCR SET INK
01A720: 0D 0A 20 20 20 20 20 20 20 6F 72 20 53 43 52 20 .. or SCR
01A730: 53 45 54 20 42 4F 52 44 45 52 29 2E 0D 0A 0D 0A SET BORDER).....
01A740: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
01A750: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 ntries:....
01A760: 20 20 4D 43 20 43 4C 45 41 52 20 49 4E 4B 53 0D MC CLEAR INKS.
01A770: 0A 20 20 20 20 20 20 20 53 43 52 20 53 45 54 20 . SCR SET
01A780: 42 4F 52 44 45 52 0D 0A 20 20 20 20 20 20 20 53 BORDER.. S
01A790: 43 52 20 53 45 54 20 49 4E 4B 0D 0A 0D 0A 0D 0A CR SET INK......
01A7A0: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
01A7B0: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
01A7C0: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
01A7D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A7E0: 20 20 20 20 70 61 67 65 20 31 35 2E 32 32 31 0D page 15.221.
01A7F0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
01A800: 20 20 20 20 31 38 34 3A 20 4D 43 20 52 45 53 45 184: MC RESE
01A810: 54 20 50 52 49 4E 54 45 52 20 20 20 20 20 20 20 T PRINTER
01A820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
01A840: 42 44 32 38 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 BD28......
01A850: 20 52 65 73 65 74 20 74 68 65 20 70 72 69 6E 74 Reset the print
01A860: 65 72 20 69 6E 64 69 72 65 63 74 69 6F 6E 2E 0D er indirection..
01A870: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
01A880: 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 on:......
01A890: 53 65 74 20 74 68 65 20 70 72 69 6E 74 65 72 20 Set the printer
01A8A0: 69 6E 64 69 72 65 63 74 69 6F 6E 2C 20 4D 43 20 indirection, MC
01A8B0: 57 41 49 54 20 50 52 49 4E 54 45 52 2C 20 74 6F WAIT PRINTER, to
01A8C0: 20 69 74 73 20 20 64 65 66 61 75 6C 74 20 20 72 its default r
01A8D0: 6F 75 74 69 6E 65 0D 0A 20 20 20 20 20 20 20 61 outine.. a
01A8E0: 6E 64 2C 20 69 6E 20 56 31 2E 31 20 66 69 72 6D nd, in V1.1 firm
01A8F0: 77 61 72 65 2C 20 73 65 74 20 75 70 20 74 68 65 ware, set up the
01A900: 20 64 65 66 61 75 6C 74 20 70 72 69 6E 74 65 72 default printer
01A910: 20 74 72 61 6E 73 6C 61 74 69 6F 6E 20 74 61 62 translation tab
01A920: 6C 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 le.......
01A930: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
01A940: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F :...... No
01A950: 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A conditions.....
01A960: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
01A970: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
01A980: 20 20 20 20 20 20 41 46 2C 20 42 43 2C 20 44 45 AF, BC, DE
01A990: 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E and HL corrupt.
01A9A0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
01A9B0: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
01A9C0: 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 served.......
01A9D0: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A Notes:......
01A9E0: 20 20 20 20 20 20 20 54 68 65 20 64 65 66 61 75 The defau
01A9F0: 6C 74 20 70 72 69 6E 74 65 72 20 74 72 61 6E 73 lt printer trans
01AA00: 6C 61 74 69 6F 6E 20 74 61 62 6C 65 20 69 73 20 lation table is
01AA10: 64 65 73 63 72 69 62 65 64 20 20 69 6E 20 20 41 described in A
01AA20: 70 70 65 6E 64 69 78 20 20 58 49 56 2E 0D 0A 0D ppendix XIV....
01AA30: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 69 ... This i
01AA40: 73 20 64 65 73 69 67 6E 65 64 20 74 6F 20 64 72 s designed to dr
01AA50: 69 76 65 20 74 68 65 20 44 4D 50 2D 31 20 70 72 ive the DMP-1 pr
01AA60: 69 6E 74 65 72 2E 20 49 74 20 20 6F 6E 6C 79 20 inter. It only
01AA70: 20 74 72 61 6E 73 6C 61 74 65 73 20 20 74 68 65 translates the
01AA80: 0D 0A 20 20 20 20 20 20 20 61 64 64 69 74 69 6F .. additio
01AA90: 6E 61 6C 20 63 68 61 72 61 63 74 65 72 73 20 69 nal characters i
01AAA0: 6E 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 n the character
01AAB0: 73 65 74 20 20 28 23 30 41 2E 2E 23 41 46 29 3B set (#0A..#AF);
01AAC0: 20 20 69 74 20 20 64 6F 65 73 20 20 6E 6F 74 0D it does not.
01AAD0: 0A 20 20 20 20 20 20 20 74 72 61 6E 73 6C 61 74 . translat
01AAE0: 65 20 61 6E 79 20 20 6F 66 20 20 74 68 65 20 20 e any of the
01AAF0: 73 74 61 6E 64 61 72 64 20 20 41 53 43 49 49 20 standard ASCII
01AB00: 20 63 68 61 72 61 63 74 65 72 73 20 20 6F 72 20 characters or
01AB10: 20 74 68 65 20 20 67 72 61 70 68 69 63 73 0D 0A the graphics..
01AB20: 20 20 20 20 20 20 20 63 68 61 72 61 63 74 65 72 character
01AB30: 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 s.........
01AB40: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
01AB50: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 43 :...... MC
01AB60: 20 57 41 49 54 20 50 52 49 4E 54 45 52 0D 0A 20 WAIT PRINTER..
01AB70: 20 20 20 20 20 20 4D 43 20 50 52 49 4E 54 20 43 MC PRINT C
01AB80: 48 41 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D HAR.............
01AB90: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01ABA0: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
01ABB0: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
01ABC0: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
01ABD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01ABE0: 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 32 32 page 15.222
01ABF0: 0D 0A 1A 6C 20 73 79 6E 63 68 72 6F 6E 6F 75 73 ...l synchronous
01AC00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
01AC10: 20 20 20 31 38 35 3A 20 4D 43 20 50 52 49 4E 54 185: MC PRINT
01AC20: 20 43 48 41 52 20 20 20 20 20 20 20 20 20 20 20 CHAR
01AC30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01AC40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01AC50: 20 20 20 20 23 42 44 32 42 0D 0A 0D 0A 20 20 20 #BD2B....
01AC60: 20 20 20 20 54 72 79 20 74 6F 20 73 65 6E 64 20 Try to send
01AC70: 61 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 74 a character to t
01AC80: 68 65 20 43 65 6E 74 72 6F 6E 69 63 73 20 70 6F he Centronics po
01AC90: 72 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 rt..... Ac
01ACA0: 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 tion:....
01ACB0: 53 65 6E 64 20 61 20 63 68 61 72 61 63 74 65 72 Send a character
01ACC0: 20 74 6F 20 74 68 65 20 70 72 69 6E 74 65 72 20 to the printer
01ACD0: 28 43 65 6E 74 72 6F 6E 69 63 73 20 70 6F 72 74 (Centronics port
01ACE0: 29 20 6F 72 20 74 69 6D 65 20 6F 75 74 20 20 69 ) or time out i
01ACF0: 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 70 f the.. p
01AD00: 72 69 6E 74 65 72 20 69 73 20 62 75 73 79 20 66 rinter is busy f
01AD10: 6F 72 20 74 6F 6F 20 6C 6F 6E 67 2E 0D 0A 0D 0A or too long.....
01AD20: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
01AD30: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
01AD40: 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 A contains th
01AD50: 65 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 73 e character to s
01AD60: 65 6E 64 20 28 62 69 74 20 37 20 69 73 20 69 67 end (bit 7 is ig
01AD70: 6E 6F 72 65 64 29 2E 0D 0A 0D 0A 20 20 20 20 20 nored).....
01AD80: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
01AD90: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 s:.... If
01ADA0: 74 68 65 20 63 68 61 72 61 63 74 65 72 20 77 61 the character wa
01ADB0: 73 20 73 65 6E 74 20 4F 4B 3A 0D 0A 0D 0A 20 20 s sent OK:....
01ADC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
01ADD0: 61 72 72 79 20 74 72 75 65 2E 0D 0A 0D 0A 20 20 arry true.....
01ADE0: 20 20 20 20 20 49 66 20 74 68 65 20 70 72 69 6E If the prin
01ADF0: 74 65 72 20 74 69 6D 65 64 20 6F 75 74 3A 0D 0A ter timed out:..
01AE00: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
01AE10: 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D Carry false..
01AE20: 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 79 73 ... Always
01AE30: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 :....
01AE40: 20 20 20 20 20 41 20 61 6E 64 20 6F 74 68 65 72 A and other
01AE50: 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D flags corrupt..
01AE60: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
01AE70: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
01AE80: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
01AE90: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
01AEA0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E 20 ...... In
01AEB0: 56 31 2E 31 20 66 69 72 6D 77 61 72 65 2C 20 74 V1.1 firmware, t
01AEC0: 68 65 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 he character to
01AED0: 62 65 20 73 65 6E 74 20 20 69 73 20 20 74 72 61 be sent is tra
01AEE0: 6E 73 6C 61 74 65 64 20 20 75 73 69 6E 67 20 20 nslated using
01AEF0: 74 68 65 0D 0A 20 20 20 20 20 20 20 70 72 69 6E the.. prin
01AF00: 74 65 72 20 74 72 61 6E 73 6C 61 74 69 6F 6E 20 ter translation
01AF10: 74 61 62 6C 65 20 61 73 20 73 65 74 20 20 62 79 table as set by
01AF20: 20 20 4D 43 20 20 50 52 49 4E 54 20 20 54 52 41 MC PRINT TRA
01AF30: 4E 53 4C 41 54 49 4F 4E 2E 20 20 49 66 20 20 74 NSLATION. If t
01AF40: 68 65 0D 0A 20 20 20 20 20 20 20 73 75 70 70 6C he.. suppl
01AF50: 69 65 64 20 63 68 61 72 61 63 74 65 72 20 69 73 ied character is
01AF60: 20 6E 6F 74 20 66 6F 75 6E 64 20 69 6E 20 20 74 not found in t
01AF70: 68 65 20 20 74 61 62 6C 65 20 20 74 68 65 6E 20 he table then
01AF80: 20 69 74 20 20 69 73 20 20 73 65 6E 74 20 20 61 it is sent a
01AF90: 73 0D 0A 20 20 20 20 20 20 20 73 75 70 70 6C 69 s.. suppli
01AFA0: 65 64 20 77 69 74 68 6F 75 74 20 74 72 61 6E 73 ed without trans
01AFB0: 6C 61 74 69 6F 6E 2E 20 48 6F 77 65 76 65 72 2C lation. However,
01AFC0: 20 69 66 20 74 68 65 20 63 68 61 72 61 63 74 65 if the characte
01AFD0: 72 20 20 69 73 20 20 66 6F 75 6E 64 20 20 69 6E r is found in
01AFE0: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 74 72 61 .. the tra
01AFF0: 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 20 20 nslation table
01B000: 74 68 65 6E 20 20 74 68 65 20 20 63 6F 72 72 65 then the corre
01B010: 73 70 6F 6E 64 69 6E 67 20 20 74 72 61 6E 73 6C sponding transl
01B020: 61 74 69 6F 6E 20 20 69 73 20 20 73 65 6E 74 0D ation is sent.
01B030: 0A 20 20 20 20 20 20 20 69 6E 73 74 65 61 64 3B . instead;
01B040: 20 75 6E 6C 65 73 73 20 74 68 65 20 74 72 61 6E unless the tran
01B050: 73 6C 61 74 69 6F 6E 20 69 73 20 46 46 20 69 6E slation is FF in
01B060: 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 which case the
01B070: 20 63 68 61 72 61 63 74 65 72 20 20 69 73 0D 0A character is..
01B080: 20 20 20 20 20 20 20 69 67 6E 6F 72 65 64 20 61 ignored a
01B090: 6E 64 20 6E 6F 74 68 69 6E 67 20 69 73 20 73 65 nd nothing is se
01B0A0: 6E 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 nt.......
01B0B0: 54 68 69 73 20 72 6F 75 74 69 6E 65 20 63 61 6C This routine cal
01B0C0: 6C 73 20 74 68 65 20 4D 61 63 68 69 6E 65 20 50 ls the Machine P
01B0D0: 61 63 6B 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 ack indirection
01B0E0: 20 4D 43 20 20 57 41 49 54 20 20 50 52 49 4E 54 MC WAIT PRINT
01B0F0: 45 52 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 73 ER to.. s
01B100: 65 6E 74 20 74 68 65 20 63 68 61 72 61 63 74 65 ent the characte
01B110: 72 2E 20 54 68 65 20 64 65 66 61 75 6C 74 20 20 r. The default
01B120: 69 6E 64 69 72 65 63 74 69 6F 6E 20 20 72 6F 75 indirection rou
01B130: 74 69 6E 65 20 20 77 61 69 74 73 20 20 66 6F 72 tine waits for
01B140: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 43 65 the.. Ce
01B150: 6E 74 72 6F 6E 69 63 73 20 70 6F 72 74 20 74 6F ntronics port to
01B160: 20 62 65 63 6F 6D 65 20 6E 6F 6E 2D 62 75 73 79 become non-busy
01B170: 20 74 68 65 6E 20 73 65 6E 64 73 20 74 68 65 20 then sends the
01B180: 20 63 68 61 72 61 63 74 65 72 2E 20 20 49 66 20 character. If
01B190: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 70 6F 72 the.. por
01B1A0: 74 20 72 65 6D 61 69 6E 73 20 62 75 73 79 20 66 t remains busy f
01B1B0: 6F 72 20 74 6F 6F 20 6C 6F 6E 67 20 28 61 70 70 or too long (app
01B1C0: 72 6F 78 69 6D 61 74 65 6C 79 20 30 2E 34 20 20 roximately 0.4
01B1D0: 73 65 63 6F 6E 64 73 29 20 20 74 68 65 6E 20 20 seconds) then
01B1E0: 74 68 65 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 the.. rout
01B1F0: 69 6E 65 20 74 69 6D 65 73 20 6F 75 74 20 61 6E ine times out an
01B200: 64 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 d the character
01B210: 69 73 20 6E 6F 74 20 20 73 65 6E 74 2E 20 20 54 is not sent. T
01B220: 68 69 73 20 20 74 69 6D 65 20 20 6F 75 74 20 20 his time out
01B230: 69 73 0D 0A 20 20 20 20 20 20 20 70 72 6F 76 69 is.. provi
01B240: 64 65 64 20 73 6F 20 74 68 61 74 20 74 68 65 20 ded so that the
01B250: 63 61 6C 6C 65 72 20 63 61 6E 20 74 65 73 74 20 caller can test
01B260: 20 66 6F 72 20 20 62 72 65 61 6B 20 20 77 68 69 for break whi
01B270: 6C 73 74 20 20 64 72 69 76 69 6E 67 20 20 74 68 lst driving th
01B280: 65 0D 0A 20 20 20 20 20 20 20 70 72 69 6E 74 65 e.. printe
01B290: 72 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 r...........
01B2A0: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
01B2B0: 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 43 es:.... MC
01B2C0: 20 50 52 49 4E 54 20 54 52 41 4E 53 4C 41 54 49 PRINT TRANSLATI
01B2D0: 4F 4E 0D 0A 20 20 20 20 20 20 20 4D 43 20 52 45 ON.. MC RE
01B2E0: 53 45 54 20 50 52 49 4E 54 45 52 0D 0A 20 20 20 SET PRINTER..
01B2F0: 20 20 20 20 4D 43 20 57 41 49 54 20 50 52 49 4E MC WAIT PRIN
01B300: 54 45 52 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 TER........
01B310: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
01B320: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
01B330: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
01B340: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
01B350: 65 20 31 35 2E 32 32 33 0D 0A 0D 0A 0D 0A 0D 0A e 15.223........
01B360: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 38 36 ...... 186
01B370: 3A 20 4D 43 20 42 55 53 59 20 50 52 49 4E 54 45 : MC BUSY PRINTE
01B380: 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R
01B390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01B3A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
01B3B0: 44 32 45 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 D2E......
01B3C0: 54 65 73 74 20 69 66 20 74 68 65 20 43 65 6E 74 Test if the Cent
01B3D0: 72 6F 6E 69 63 73 20 70 6F 72 74 20 69 73 20 62 ronics port is b
01B3E0: 75 73 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 usy.......
01B3F0: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 Action:......
01B400: 20 20 20 20 20 54 65 73 74 20 69 66 20 74 68 65 Test if the
01B410: 20 70 72 69 6E 74 65 72 20 28 43 65 6E 74 72 6F printer (Centro
01B420: 6E 69 63 73 20 70 6F 72 74 29 20 69 73 20 62 75 nics port) is bu
01B430: 73 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 sy.......
01B440: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
01B450: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F :...... No
01B460: 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A conditions.....
01B470: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
01B480: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
01B490: 20 20 20 20 20 20 49 66 20 43 65 6E 74 72 6F 6E If Centron
01B4A0: 69 63 73 20 70 6F 72 74 20 69 73 20 62 75 73 79 ics port is busy
01B4B0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 :......
01B4C0: 20 20 20 20 20 20 20 43 61 72 72 79 20 74 72 75 Carry tru
01B4D0: 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 e....... I
01B4E0: 66 20 43 65 6E 74 72 6F 6E 69 63 73 20 70 6F 72 f Centronics por
01B4F0: 74 20 69 73 20 69 64 6C 65 3A 0D 0A 0D 0A 0D 0A t is idle:......
01B500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01B510: 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 0D 0A Carry false.....
01B520: 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 79 73 3A .. Always:
01B530: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ......
01B540: 20 20 20 20 20 20 4F 74 68 65 72 20 66 6C 61 67 Other flag
01B550: 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 s corrupt...
01B560: 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 All
01B570: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
01B580: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A preserved.......
01B590: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
01B5A0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 ... This r
01B5B0: 6F 75 74 69 6E 65 20 68 61 73 20 6E 6F 20 6F 74 outine has no ot
01B5C0: 68 65 72 20 65 66 66 65 63 74 73 2E 0D 0A 0D 0A her effects.....
01B5D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
01B5E0: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D ed entries:.....
01B5F0: 0A 20 20 20 20 20 20 20 4D 43 20 53 45 4E 44 20 . MC SEND
01B600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
01B610: 17 00 00 00 02 09 50 E5 17 00 C1 02 00 00 00 02 ......P.........
01B620: 17 00 C2 02 00 00 00 02 17 00 C3 02 00 00 00 02 ................
01B630: 17 00 C4 02 00 00 00 02 17 00 C5 02 00 00 00 02 ................
01B640: 17 00 C6 02 00 00 00 02 17 00 C7 02 00 00 00 02 ................
01B650: 17 00 C8 02 00 00 00 02 17 00 C9 02 00 00 00 02 ................
01B660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B700: 50 52 49 4E 54 45 52 0D 0A 0D 0A 0D 0A 0D 0A 0D PRINTER.........
01B710: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
01B720: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
01B730: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
01B740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01B750: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
01B760: 31 35 2E 32 32 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.224..........
01B770: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 38 37 3A 20 .... 187:
01B780: 4D 43 20 53 45 4E 44 20 50 52 49 4E 54 45 52 20 MC SEND PRINTER
01B790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01B7A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01B7B0: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 44 33 #BD3
01B7C0: 31 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 1...... Se
01B7D0: 6E 64 20 61 20 63 68 61 72 61 63 74 65 72 20 74 nd a character t
01B7E0: 6F 20 74 68 65 20 43 65 6E 74 72 6F 6E 69 63 73 o the Centronics
01B7F0: 20 70 6F 72 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 port.......
01B800: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A Action:......
01B810: 20 20 20 20 20 20 20 53 65 6E 64 20 61 20 63 68 Send a ch
01B820: 61 72 61 63 74 65 72 20 74 6F 20 74 68 65 20 70 aracter to the p
01B830: 72 69 6E 74 65 72 20 28 43 65 6E 74 72 6F 6E 69 rinter (Centroni
01B840: 63 73 20 70 6F 72 74 29 20 77 68 69 63 68 20 20 cs port) which
01B850: 6D 75 73 74 20 20 6E 6F 74 20 20 62 65 0D 0A 20 must not be..
01B860: 20 20 20 20 20 20 62 75 73 79 2E 0D 0A 0D 0A 0D busy......
01B870: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
01B880: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
01B890: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
01B8A0: 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 74 the character t
01B8B0: 6F 20 73 65 6E 64 20 28 62 69 74 20 37 20 69 73 o send (bit 7 is
01B8C0: 20 69 67 6E 6F 72 65 64 29 2E 0D 0A 0D 0A 0D 0A ignored).......
01B8D0: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
01B8E0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
01B8F0: 20 20 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D Carry true..
01B900: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 61 6E ..... A an
01B910: 64 20 6F 74 68 65 72 20 66 6C 61 67 73 20 63 6F d other flags co
01B920: 72 72 75 70 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 rrupt.......
01B930: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
01B940: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
01B950: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
01B960: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
01B970: 20 54 68 65 20 70 72 69 6E 74 65 72 20 6D 75 73 The printer mus
01B980: 74 20 6E 6F 74 20 62 65 20 62 75 73 79 20 77 68 t not be busy wh
01B990: 65 6E 20 61 20 20 63 68 61 72 61 63 74 65 72 20 en a character
01B9A0: 20 69 73 20 20 73 65 6E 74 2E 20 20 54 68 65 20 is sent. The
01B9B0: 20 68 69 67 68 65 72 0D 0A 20 20 20 20 20 20 20 higher..
01B9C0: 6C 65 76 65 6C 20 72 6F 75 74 69 6E 65 20 4D 43 level routine MC
01B9D0: 20 50 52 49 4E 54 20 43 48 41 52 20 77 69 6C 6C PRINT CHAR will
01B9E0: 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 77 automatically w
01B9F0: 61 69 74 20 66 6F 72 20 74 68 65 20 70 72 69 6E ait for the prin
01BA00: 74 65 72 20 74 6F 0D 0A 20 20 20 20 20 20 20 62 ter to.. b
01BA10: 65 63 6F 6D 65 20 6E 6F 6E 2D 62 75 73 79 20 61 ecome non-busy a
01BA20: 6E 64 20 73 68 6F 75 6C 64 20 62 65 20 75 73 65 nd should be use
01BA30: 64 20 69 6E 20 70 72 65 66 65 72 65 6E 63 65 2E d in preference.
01BA40: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 ........ R
01BA50: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
01BA60: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 43 20 42 ..... MC B
01BA70: 55 53 59 20 50 52 49 4E 54 45 52 0D 0A 20 20 20 USY PRINTER..
01BA80: 20 20 20 20 4D 43 20 50 52 49 4E 54 20 43 48 41 MC PRINT CHA
01BA90: 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D R...............
01BAA0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ...............
01BAB0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
01BAC0: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
01BAD0: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
01BAE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BAF0: 20 70 61 67 65 20 31 35 2E 32 32 35 0D 0A 0D 0A page 15.225....
01BB00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
01BB10: 20 31 38 38 3A 20 4D 43 20 53 4F 55 4E 44 20 52 188: MC SOUND R
01BB20: 45 47 49 53 54 45 52 20 20 20 20 20 20 20 20 20 EGISTER
01BB30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BB40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BB50: 20 20 23 42 44 33 34 0D 0A 0D 0A 0D 0A 20 20 20 #BD34......
01BB60: 20 20 20 20 53 65 6E 64 20 64 61 74 61 20 74 6F Send data to
01BB70: 20 61 20 73 6F 75 6E 64 20 63 68 69 70 20 72 65 a sound chip re
01BB80: 67 69 73 74 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 gister.......
01BB90: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D Action:.....
01BBA0: 0A 20 20 20 20 20 20 20 53 65 74 20 73 6F 75 6E . Set soun
01BBB0: 64 20 63 68 69 70 20 72 65 67 69 73 74 65 72 2E d chip register.
01BBC0: 20 54 68 69 73 20 69 73 20 61 20 72 61 74 68 65 This is a rathe
01BBD0: 72 20 63 6F 6E 76 6F 6C 75 74 65 64 20 61 63 74 r convoluted act
01BBE0: 69 6F 6E 20 62 65 63 61 75 73 65 20 6F 66 0D 0A ion because of..
01BBF0: 20 20 20 20 20 20 20 74 68 65 20 77 61 79 20 74 the way t
01BC00: 68 65 20 68 61 72 64 77 61 72 65 20 68 61 73 20 he hardware has
01BC10: 62 65 65 6E 20 64 65 73 69 67 6E 65 64 2E 0D 0A been designed...
01BC20: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 .... Entry
01BC30: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
01BC40: 0D 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 .. A conta
01BC50: 69 6E 73 20 74 68 65 20 73 6F 75 6E 64 20 63 68 ins the sound ch
01BC60: 69 70 20 72 65 67 69 73 74 65 72 20 6E 75 6D 62 ip register numb
01BC70: 65 72 2E 0D 0A 20 20 20 20 20 20 20 43 20 63 6F er... C co
01BC80: 6E 74 61 69 6E 73 20 74 68 65 20 64 61 74 61 20 ntains the data
01BC90: 74 6F 20 73 65 6E 64 2E 0D 0A 0D 0A 0D 0A 20 20 to send.......
01BCA0: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
01BCB0: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
01BCC0: 20 20 41 46 20 61 6E 64 20 42 43 20 63 6F 72 72 AF and BC corr
01BCD0: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C upt... All
01BCE0: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
01BCF0: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
01BD00: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
01BD10: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 .... This
01BD20: 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 73 20 routine enables
01BD30: 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D 0A 0D interrupts......
01BD40: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
01BD50: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A d entries:......
01BD60: 20 20 20 20 20 20 20 4E 6F 6E 65 21 0D 0A 0D 0A None!....
01BD70: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
01BD80: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
01BD90: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
01BDA0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
01BDB0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
01BDC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BDD0: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
01BDE0: 35 2E 32 32 36 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 5.226...........
01BDF0: 0A 0D 0A 20 20 20 20 20 20 20 31 38 39 3A 20 4A ... 189: J
01BE00: 55 4D 50 20 52 45 53 54 4F 52 45 20 20 20 20 20 UMP RESTORE
01BE10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BE20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BE30: 20 20 20 20 20 20 20 20 20 20 20 23 42 44 33 37 #BD37
01BE40: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 73 ...... Res
01BE50: 74 6F 72 65 20 74 68 65 20 73 74 61 6E 64 61 72 tore the standar
01BE60: 64 20 6A 75 6D 70 62 6C 6F 63 6B 2E 0D 0A 0D 0A d jumpblock.....
01BE70: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
01BE80: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 ...... Set
01BE90: 20 74 68 65 20 6D 61 69 6E 20 66 69 72 6D 77 61 the main firmwa
01BEA0: 72 65 20 6A 75 6D 70 62 6C 6F 63 6B 20 74 6F 20 re jumpblock to
01BEB0: 69 74 73 20 73 74 61 6E 64 61 72 64 20 73 74 61 its standard sta
01BEC0: 74 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20 te as described
01BED0: 20 69 6E 0D 0A 20 20 20 20 20 20 20 73 65 63 74 in.. sect
01BEE0: 69 6F 6E 73 20 31 34 2E 31 20 61 6E 64 20 31 35 ions 14.1 and 15
01BEF0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ....... En
01BF00: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
01BF10: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 ..... No c
01BF20: 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A onditions.......
01BF30: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
01BF40: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
01BF50: 20 20 20 20 41 46 2C 20 42 43 2C 20 44 45 20 61 AF, BC, DE a
01BF60: 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A nd HL corrupt...
01BF70: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
01BF80: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
01BF90: 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rved.......
01BFA0: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
01BFB0: 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E This routin
01BFC0: 65 20 6D 61 79 20 62 65 20 75 73 65 64 20 74 6F e may be used to
01BFD0: 20 72 65 73 74 6F 72 65 20 20 74 68 65 20 20 6A restore the j
01BFE0: 75 6D 70 62 6C 6F 63 6B 20 20 74 6F 20 20 69 74 umpblock to it
01BFF0: 73 20 20 73 74 61 6E 64 61 72 64 0D 0A 20 20 20 s standard..
01C000: 20 20 20 20 72 6F 75 74 69 6E 65 73 20 61 66 74 routines aft
01C010: 65 72 20 74 68 65 20 75 73 65 72 20 68 61 73 20 er the user has
01C020: 63 68 61 6E 67 65 64 20 65 6E 74 72 69 65 73 20 changed entries
01C030: 69 6E 20 69 74 2E 20 54 68 65 20 20 77 68 6F 6C in it. The whol
01C040: 65 20 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 e of the..
01C050: 20 20 20 6A 75 6D 70 62 6C 6F 63 6B 20 69 73 20 jumpblock is
01C060: 73 65 74 20 75 70 20 73 6F 20 63 61 72 65 20 6D set up so care m
01C070: 75 73 74 20 62 65 20 74 61 6B 65 6E 20 69 66 20 ust be taken if
01C080: 6F 74 68 65 72 20 70 72 6F 67 72 61 6D 73 2C 20 other programs,
01C090: 20 73 75 63 68 20 20 61 73 0D 0A 20 20 20 20 20 such as..
01C0A0: 20 20 41 4D 53 44 4F 53 2C 20 68 61 76 65 20 70 AMSDOS, have p
01C0B0: 61 74 63 68 65 64 20 69 74 2E 0D 0A 0D 0A 0D 0A atched it.......
01C0C0: 20 20 20 20 20 20 20 54 68 65 20 69 6E 64 69 72 The indir
01C0D0: 65 63 74 69 6F 6E 73 20 6A 75 6D 70 62 6C 6F 63 ections jumpbloc
01C0E0: 6B 20 69 73 20 73 65 74 20 75 70 20 70 69 65 63 k is set up piec
01C0F0: 65 6D 65 61 6C 20 62 79 20 74 68 65 20 20 76 61 emeal by the va
01C100: 72 69 6F 75 73 20 20 70 61 63 6B 73 27 0D 0A 20 rious packs'..
01C110: 20 20 20 20 20 20 69 6E 69 74 69 61 6C 69 7A 61 initializa
01C120: 74 69 6F 6E 20 61 6E 64 20 72 65 73 65 74 20 72 tion and reset r
01C130: 6F 75 74 69 6E 65 73 2E 20 4A 55 4D 50 20 52 45 outines. JUMP RE
01C140: 53 54 4F 52 45 20 64 6F 65 73 20 6E 6F 74 20 20 STORE does not
01C150: 73 65 74 20 20 75 70 20 20 74 68 65 0D 0A 20 20 set up the..
01C160: 20 20 20 20 20 69 6E 64 69 72 65 63 74 69 6F 6E indirection
01C170: 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 s.........
01C180: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
01C190: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 :...... GR
01C1A0: 41 20 52 45 53 45 54 0D 0A 20 20 20 20 20 20 20 A RESET..
01C1B0: 4B 4D 20 52 45 53 45 54 0D 0A 20 20 20 20 20 20 KM RESET..
01C1C0: 20 4D 43 20 52 45 53 45 54 20 50 52 49 4E 54 45 MC RESET PRINTE
01C1D0: 52 0D 0A 20 20 20 20 20 20 20 53 43 52 20 52 45 R.. SCR RE
01C1E0: 53 45 54 0D 0A 20 20 20 20 20 20 20 54 58 54 20 SET.. TXT
01C1F0: 52 45 53 45 54 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D RESET...........
01C200: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
01C210: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
01C220: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
01C230: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
01C240: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
01C250: 65 20 31 35 2E 32 32 37 0D 0A 0D 0A 0D 0A 0D 0A e 15.227........
01C260: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 39 30 ...... 190
01C270: 3A 20 4B 4D 20 53 45 54 20 4C 4F 43 4B 53 20 20 : KM SET LOCKS
01C280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01C290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01C2A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
01C2B0: 44 33 41 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 D3A......
01C2C0: 53 65 74 20 74 68 65 20 73 68 69 66 74 20 61 6E Set the shift an
01C2D0: 64 20 63 61 70 73 20 6C 6F 63 6B 20 73 74 61 74 d caps lock stat
01C2E0: 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es.......
01C2F0: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
01C300: 20 20 20 20 54 75 72 6E 20 74 68 65 20 73 68 69 Turn the shi
01C310: 66 74 20 61 6E 64 20 63 61 70 73 20 6C 6F 63 6B ft and caps lock
01C320: 73 20 6F 6E 20 6F 72 20 6F 66 66 2E 0D 0A 0D 0A s on or off.....
01C330: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
01C340: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
01C350: 20 20 20 20 20 20 20 48 20 63 6F 6E 74 61 69 6E H contain
01C360: 73 20 74 68 65 20 72 65 71 75 69 72 65 64 20 63 s the required c
01C370: 61 70 73 20 6C 6F 63 6B 20 73 74 61 74 65 2E 0D aps lock state..
01C380: 0A 20 20 20 20 20 20 20 4C 20 63 6F 6E 74 61 69 . L contai
01C390: 6E 73 20 74 68 65 20 72 65 71 75 69 72 65 64 20 ns the required
01C3A0: 73 68 69 66 74 20 6C 6F 63 6B 20 73 74 61 74 65 shift lock state
01C3B0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
01C3C0: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
01C3D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 63 6F .... AF co
01C3E0: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 rrupt... A
01C3F0: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
01C400: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
01C410: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
01C420: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 ...... Thi
01C430: 73 20 72 6F 75 74 69 6E 65 20 69 73 20 6E 6F 74 s routine is not
01C440: 20 61 76 61 69 6C 61 62 6C 65 20 6F 6E 20 56 31 available on V1
01C450: 2E 30 20 66 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A .0 firmware.....
01C460: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6C 6F 63 .. The loc
01C470: 6B 20 73 74 61 74 65 73 20 61 72 65 3A 0D 0A 0D k states are:...
01C480: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
01C490: 20 20 20 23 30 30 20 6D 65 61 6E 73 20 74 68 61 #00 means tha
01C4A0: 74 20 74 68 65 20 6C 6F 63 6B 20 69 73 20 74 6F t the lock is to
01C4B0: 20 62 65 20 74 75 72 6E 65 64 20 6F 66 66 2E 0D be turned off..
01C4C0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
01C4D0: 20 23 46 46 20 6D 65 61 6E 73 20 74 68 61 74 20 #FF means that
01C4E0: 74 68 65 20 6C 6F 63 6B 20 69 73 20 74 6F 20 62 the lock is to b
01C4F0: 65 20 74 75 72 6E 65 64 20 6F 6E 2E 0D 0A 0D 0A e turned on.....
01C500: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 64 65 66 .. The def
01C510: 61 75 6C 74 20 6C 6F 63 6B 20 73 74 61 74 65 73 ault lock states
01C520: 20 61 72 65 20 6F 66 66 2E 0D 0A 0D 0A 0D 0A 0D are off........
01C530: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
01C540: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
01C550: 20 20 20 20 20 4B 4D 20 47 45 54 20 53 54 41 54 KM GET STAT
01C560: 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D E...............
01C570: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
01C580: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
01C590: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
01C5A0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
01C5B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
01C5C0: 65 20 31 35 2E 32 32 38 0D 0A 0D 0A 0D 0A 0D 0A e 15.228........
01C5D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 39 31 ...... 191
01C5E0: 3A 20 4B 4D 20 46 4C 55 53 48 20 20 20 20 20 20 : KM FLUSH
01C5F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01C600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01C610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
01C620: 44 33 44 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 D3D......
01C630: 46 6C 75 73 68 20 74 68 65 20 6B 65 79 62 6F 61 Flush the keyboa
01C640: 72 64 20 62 75 66 66 65 72 73 2E 0D 0A 0D 0A 0D rd buffers......
01C650: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
01C660: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 69 73 63 ..... Disc
01C670: 61 72 64 20 61 6C 6C 20 70 65 6E 64 69 6E 67 20 ard all pending
01C680: 6B 65 79 73 20 66 72 6F 6D 20 74 68 65 20 6B 65 keys from the ke
01C690: 79 20 62 75 66 66 65 72 2C 20 74 68 65 20 27 70 y buffer, the 'p
01C6A0: 75 74 20 62 61 63 6B 27 20 63 68 61 72 61 63 74 ut back' charact
01C6B0: 65 72 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 61 er.. and a
01C6C0: 6E 79 20 63 75 72 72 65 6E 74 20 65 78 70 61 6E ny current expan
01C6D0: 73 69 6F 6E 20 73 74 72 69 6E 67 2E 0D 0A 0D 0A sion string.....
01C6E0: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
01C6F0: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
01C700: 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 No condit
01C710: 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions.......
01C720: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
01C730: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 s:...... A
01C740: 46 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 F corrupt...
01C750: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
01C760: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
01C770: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
01C780: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
01C790: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 69 73 This routine is
01C7A0: 20 6E 6F 74 20 61 76 61 69 6C 61 62 6C 65 20 6F not available o
01C7B0: 6E 20 56 31 2E 30 20 66 69 72 6D 77 61 72 65 2E n V1.0 firmware.
01C7C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
01C7D0: 20 6E 65 78 74 20 63 68 61 72 61 63 74 65 72 20 next character
01C7E0: 74 68 61 74 20 77 69 6C 6C 20 62 65 20 72 65 74 that will be ret
01C7F0: 75 72 6E 65 64 20 62 79 20 4B 4D 20 52 45 41 44 urned by KM READ
01C800: 20 43 48 41 52 20 28 6F 72 20 61 20 73 69 6D 69 CHAR (or a simi
01C810: 6C 61 72 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 lar.. rout
01C820: 69 6E 65 29 20 61 66 74 65 72 20 4B 4D 20 46 4C ine) after KM FL
01C830: 55 53 48 20 69 73 20 63 61 6C 6C 65 64 20 77 69 USH is called wi
01C840: 6C 6C 20 62 65 20 74 68 65 20 66 69 72 73 74 20 ll be the first
01C850: 63 68 61 72 61 63 74 65 72 20 74 68 61 74 20 74 character that t
01C860: 68 65 0D 0A 20 20 20 20 20 20 20 75 73 65 72 20 he.. user
01C870: 74 79 70 65 73 20 61 66 74 65 72 20 74 68 65 20 types after the
01C880: 63 61 6C 6C 20 6F 66 20 4B 4D 20 46 4C 55 53 48 call of KM FLUSH
01C890: 20 73 69 6E 63 65 20 61 6C 6C 20 74 68 65 20 70 since all the p
01C8A0: 65 6E 64 69 6E 67 20 63 68 61 72 61 63 74 65 72 ending character
01C8B0: 73 0D 0A 20 20 20 20 20 20 20 77 69 6C 6C 20 68 s.. will h
01C8C0: 61 76 65 20 62 65 65 6E 20 64 69 73 63 61 72 64 ave been discard
01C8D0: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
01C8E0: 4F 6E 20 56 31 2E 30 20 66 69 72 6D 77 61 72 65 On V1.0 firmware
01C8F0: 20 74 68 65 20 65 66 66 65 63 74 20 20 6F 66 20 the effect of
01C900: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
01C910: 18 00 00 00 02 09 50 E5 18 00 C1 02 00 00 00 02 ......P.........
01C920: 18 00 C2 02 00 00 00 02 18 00 C3 02 00 00 00 02 ................
01C930: 18 00 C4 02 00 00 00 02 18 00 C5 02 00 00 00 02 ................
01C940: 18 00 C6 02 00 00 00 02 18 00 C7 02 00 00 00 02 ................
01C950: 18 00 C8 02 00 00 00 02 18 00 C9 02 00 00 00 02 ................
01C960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01CA00: 20 74 68 69 73 20 20 72 6F 75 74 69 6E 65 20 20 this routine
01CA10: 63 61 6E 20 20 62 65 20 20 73 69 6D 75 6C 61 74 can be simulat
01CA20: 65 64 20 20 62 79 0D 0A 20 20 20 20 20 20 20 72 ed by.. r
01CA30: 65 70 65 61 74 65 64 6C 79 20 63 61 6C 6C 69 6E epeatedly callin
01CA40: 67 20 4B 4D 20 52 45 41 44 20 43 48 41 52 20 75 g KM READ CHAR u
01CA50: 6E 74 69 6C 20 69 74 20 63 6F 6D 65 73 20 62 61 ntil it comes ba
01CA60: 63 6B 20 77 69 74 68 20 63 61 72 72 79 20 66 61 ck with carry fa
01CA70: 6C 73 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 lse.........
01CA80: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
01CA90: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
01CAA0: 4B 4D 20 52 45 41 44 20 43 48 41 52 0D 0A 20 20 KM READ CHAR..
01CAB0: 20 20 20 20 20 4B 4D 20 52 45 41 44 20 4B 45 59 KM READ KEY
01CAC0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
01CAD0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
01CAE0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
01CAF0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
01CB00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01CB10: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
01CB20: 35 2E 32 32 39 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 5.229...........
01CB30: 0A 0D 0A 20 20 20 20 20 20 20 31 39 32 3A 20 54 ... 192: T
01CB40: 58 54 20 41 53 4B 20 53 54 41 54 45 20 20 20 20 XT ASK STATE
01CB50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01CB60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01CB70: 20 20 20 20 20 20 20 20 20 20 20 23 42 44 34 30 #BD40
01CB80: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 65 74 ...... Get
01CB90: 20 74 68 65 20 73 74 61 74 65 20 6F 66 20 74 68 the state of th
01CBA0: 65 20 54 65 78 74 20 56 44 55 2E 0D 0A 0D 0A 0D e Text VDU......
01CBB0: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
01CBC0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 74 75 ..... Retu
01CBD0: 72 6E 73 20 74 68 65 20 56 44 55 20 65 6E 61 62 rns the VDU enab
01CBE0: 6C 65 2F 64 69 73 61 62 6C 65 20 73 74 61 74 65 le/disable state
01CBF0: 20 61 6E 64 20 74 68 65 20 63 75 72 73 6F 72 20 and the cursor
01CC00: 6F 6E 2F 6F 66 66 20 61 6E 64 20 20 63 75 72 73 on/off and curs
01CC10: 6F 72 0D 0A 20 20 20 20 20 20 20 65 6E 61 62 6C or.. enabl
01CC20: 65 2F 64 69 73 61 62 6C 65 20 73 74 61 74 65 73 e/disable states
01CC30: 20 6F 66 20 74 68 65 20 63 75 72 72 65 6E 74 20 of the current
01CC40: 73 65 6C 65 63 74 65 64 20 73 74 72 65 61 6D 2E selected stream.
01CC50: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 ...... Ent
01CC60: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
01CC70: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F .... No co
01CC80: 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 nditions.......
01CC90: 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 Exit condi
01CCA0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
01CCB0: 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 A contains th
01CCC0: 65 20 73 74 72 65 61 6D 20 73 74 61 74 65 2E 0D e stream state..
01CCD0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 6C 61 67 ..... Flag
01CCE0: 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 s corrupt...
01CCF0: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
01CD00: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
01CD10: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
01CD20: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
01CD30: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 69 73 This routine is
01CD40: 20 6E 6F 74 20 61 76 61 69 6C 61 62 6C 65 20 6F not available o
01CD50: 6E 20 56 31 2E 30 20 66 69 72 6D 77 61 72 65 2E n V1.0 firmware.
01CD60: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
01CD70: 20 73 74 72 65 61 6D 20 73 74 61 74 65 20 69 73 stream state is
01CD80: 20 72 65 74 75 72 6E 65 64 20 61 73 20 66 6F 6C returned as fol
01CD90: 6C 6F 77 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 lows:......
01CDA0: 20 20 20 20 20 20 42 69 74 20 30 20 20 20 20 20 Bit 0
01CDB0: 20 20 20 20 20 30 20 2D 2D 3E 20 63 75 72 73 6F 0 --> curso
01CDC0: 72 20 65 6E 61 62 6C 65 64 2C 20 20 20 20 20 20 r enabled,
01CDD0: 20 20 31 20 2D 2D 3E 20 63 75 72 73 6F 72 20 64 1 --> cursor d
01CDE0: 69 73 61 62 6C 65 64 2E 0D 0A 20 20 20 20 20 20 isabled...
01CDF0: 20 20 20 20 20 42 69 74 20 31 20 20 20 20 20 20 Bit 1
01CE00: 20 20 20 20 30 20 2D 2D 3E 20 63 75 72 73 6F 72 0 --> cursor
01CE10: 20 6F 6E 2C 20 20 20 20 20 20 20 20 20 20 20 20 on,
01CE20: 20 31 20 2D 2D 3E 20 63 75 72 73 6F 72 20 6F 66 1 --> cursor of
01CE30: 66 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 42 f... B
01CE40: 69 74 73 20 32 2E 2E 36 20 20 20 20 20 20 61 72 its 2..6 ar
01CE50: 65 20 75 6E 64 65 66 69 6E 65 64 2E 0D 0A 20 20 e undefined...
01CE60: 20 20 20 20 20 20 20 20 20 42 69 74 20 37 20 20 Bit 7
01CE70: 20 20 20 20 20 20 20 20 30 20 2D 2D 3E 20 56 44 0 --> VD
01CE80: 55 20 64 69 73 61 62 6C 65 64 2C 20 20 20 20 20 U disabled,
01CE90: 20 20 20 20 20 31 20 2D 2D 3E 20 56 44 55 20 65 1 --> VDU e
01CEA0: 6E 61 62 6C 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 nabled.........
01CEB0: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
01CEC0: 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tries:......
01CED0: 20 20 20 54 58 54 20 43 55 52 20 44 49 53 41 42 TXT CUR DISAB
01CEE0: 4C 45 0D 0A 20 20 20 20 20 20 20 54 58 54 20 43 LE.. TXT C
01CEF0: 55 52 20 45 4E 41 42 4C 45 0D 0A 20 20 20 20 20 UR ENABLE..
01CF00: 20 20 54 58 54 20 43 55 52 20 4F 46 46 0D 0A 20 TXT CUR OFF..
01CF10: 20 20 20 20 20 20 54 58 54 20 43 55 52 20 4F 4E TXT CUR ON
01CF20: 0D 0A 20 20 20 20 20 20 20 54 58 54 20 56 44 55 .. TXT VDU
01CF30: 20 44 49 53 41 42 4C 45 0D 0A 20 20 20 20 20 20 DISABLE..
01CF40: 20 54 58 54 20 56 44 55 20 45 4E 41 42 4C 45 0D TXT VDU ENABLE.
01CF50: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
01CF60: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
01CF70: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
01CF80: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
01CF90: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
01CFA0: 65 20 31 35 2E 32 33 30 0D 0A 0D 0A 0D 0A 0D 0A e 15.230........
01CFB0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 39 33 ...... 193
01CFC0: 3A 20 47 52 41 20 44 45 46 41 55 4C 54 20 20 20 : GRA DEFAULT
01CFD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01CFE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01CFF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
01D000: 44 33 34 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 D34......
01D010: 53 65 74 20 74 68 65 20 64 65 66 61 75 6C 74 20 Set the default
01D020: 47 72 61 70 68 69 63 73 20 56 44 55 20 6D 6F 64 Graphics VDU mod
01D030: 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es.......
01D040: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
01D050: 20 20 20 20 53 65 74 73 20 74 68 65 20 67 72 61 Sets the gra
01D060: 70 68 69 63 73 20 77 72 69 74 65 20 6D 6F 64 65 phics write mode
01D070: 2C 20 62 61 63 6B 67 72 6F 75 6E 64 20 6D 6F 64 , background mod
01D080: 65 2C 20 20 66 69 72 73 74 20 20 70 69 78 65 6C e, first pixel
01D090: 20 20 6D 6F 64 65 20 20 61 6E 64 0D 0A 20 20 20 mode and..
01D0A0: 20 20 20 20 6C 69 6E 65 20 6D 61 73 6B 20 74 6F line mask to
01D0B0: 20 74 68 65 69 72 20 64 65 66 61 75 6C 74 20 73 their default s
01D0C0: 65 74 74 69 6E 67 73 2E 0D 0A 0D 0A 0D 0A 20 20 ettings.......
01D0D0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
01D0E0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
01D0F0: 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 No conditions
01D100: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
01D110: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
01D120: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C 20 42 .... AF, B
01D130: 43 2C 20 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 C, DE and HL cor
01D140: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C rupt... Al
01D150: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
01D160: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
01D170: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
01D180: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
01D190: 20 72 6F 75 74 69 6E 65 20 69 73 20 6E 6F 74 20 routine is not
01D1A0: 61 76 61 69 6C 61 62 6C 65 20 6F 6E 20 56 31 2E available on V1.
01D1B0: 30 20 66 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A 0D 0 firmware......
01D1C0: 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 . This rou
01D1D0: 74 69 6E 65 20 73 65 74 73 20 74 68 65 20 66 6F tine sets the fo
01D1E0: 6C 6C 6F 77 69 6E 67 20 6D 6F 64 65 73 3A 0D 0A llowing modes:..
01D1F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 47 72 61 70 68 .... Graph
01D200: 69 63 73 20 77 72 69 74 65 20 6D 6F 64 65 20 69 ics write mode i
01D210: 73 20 73 65 74 20 74 6F 20 66 6F 72 63 65 2E 0D s set to force..
01D220: 0A 20 20 20 20 20 20 20 47 72 61 70 68 69 63 73 . Graphics
01D230: 20 62 61 63 6B 67 72 6F 75 6E 64 20 6D 6F 64 65 background mode
01D240: 20 69 73 20 73 65 74 20 74 6F 20 6F 70 61 71 75 is set to opaqu
01D250: 65 2E 0D 0A 20 20 20 20 20 20 20 46 69 72 73 74 e... First
01D260: 20 70 6F 69 6E 74 20 6D 6F 64 65 20 69 73 20 73 point mode is s
01D270: 65 74 20 74 6F 20 70 6C 6F 74 20 74 68 65 20 66 et to plot the f
01D280: 69 72 73 74 20 70 69 78 65 6C 20 6F 66 20 6C 69 irst pixel of li
01D290: 6E 65 73 2E 0D 0A 20 20 20 20 20 20 20 4C 69 6E nes... Lin
01D2A0: 65 20 6D 61 73 6B 20 69 73 20 73 65 74 20 74 6F e mask is set to
01D2B0: 20 67 69 76 65 20 63 6F 6E 74 69 6E 75 6F 75 73 give continuous
01D2C0: 20 6C 69 6E 65 73 20 28 6D 61 73 6B 20 6F 66 20 lines (mask of
01D2D0: 23 46 46 29 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 #FF).........
01D2E0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
01D2F0: 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ies:......
01D300: 20 47 52 41 20 49 4E 49 54 49 41 4C 49 53 45 0D GRA INITIALISE.
01D310: 0A 20 20 20 20 20 20 20 47 52 41 20 52 45 53 45 . GRA RESE
01D320: 54 0D 0A 20 20 20 20 20 20 20 47 52 41 20 53 45 T.. GRA SE
01D330: 54 20 42 41 43 4B 0D 0A 20 20 20 20 20 20 20 47 T BACK.. G
01D340: 52 41 20 53 45 54 20 46 49 52 53 54 0D 0A 20 20 RA SET FIRST..
01D350: 20 20 20 20 20 47 52 41 20 53 45 54 20 4C 49 4E GRA SET LIN
01D360: 45 20 4D 41 53 4B 0D 0A 20 20 20 20 20 20 20 53 E MASK.. S
01D370: 43 52 20 41 43 43 45 53 53 0D 0A 0D 0A 0D 0A 0D CR ACCESS.......
01D380: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
01D390: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
01D3A0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
01D3B0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
01D3C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
01D3D0: 65 20 31 35 2E 32 33 31 0D 0A 0D 0A 0D 0A 0D 0A e 15.231........
01D3E0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 39 34 ...... 194
01D3F0: 3A 20 47 52 41 20 53 45 54 20 42 41 43 4B 20 20 : GRA SET BACK
01D400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01D410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01D420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
01D430: 44 34 36 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 D46.... Se
01D440: 74 20 77 68 65 74 68 65 72 20 62 61 63 6B 67 72 t whether backgr
01D450: 6F 75 6E 64 20 69 73 20 74 6F 20 62 65 20 77 72 ound is to be wr
01D460: 69 74 74 65 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 itten.....
01D470: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 Action:....
01D480: 20 20 20 53 65 74 20 74 68 65 20 67 72 61 70 68 Set the graph
01D490: 69 63 73 20 62 61 63 6B 67 72 6F 75 6E 64 20 77 ics background w
01D4A0: 72 69 74 65 20 6D 6F 64 65 20 74 6F 20 6F 70 61 rite mode to opa
01D4B0: 71 75 65 20 6F 72 20 74 72 61 6E 73 70 61 72 65 que or transpare
01D4C0: 6E 74 2E 20 20 54 68 69 73 0D 0A 20 20 20 20 20 nt. This..
01D4D0: 20 20 61 66 66 65 63 74 73 20 68 6F 77 20 47 52 affects how GR
01D4E0: 41 20 4C 49 4E 45 20 41 42 53 4F 4C 55 54 45 2C A LINE ABSOLUTE,
01D4F0: 20 47 52 41 20 4C 49 4E 45 20 52 45 4C 41 54 49 GRA LINE RELATI
01D500: 56 45 20 61 6E 64 20 47 52 41 20 57 52 20 43 48 VE and GRA WR CH
01D510: 41 52 20 77 72 69 74 65 0D 0A 20 20 20 20 20 20 AR write..
01D520: 20 27 62 61 63 6B 67 72 6F 75 6E 64 27 20 70 69 'background' pi
01D530: 78 65 6C 73 2E 20 49 6E 20 6F 70 61 71 75 65 20 xels. In opaque
01D540: 6D 6F 64 65 20 74 68 65 20 20 70 69 78 65 6C 73 mode the pixels
01D550: 20 20 61 72 65 20 20 77 72 69 74 74 65 6E 20 20 are written
01D560: 69 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 in the..
01D570: 63 75 72 72 65 6E 74 20 20 70 61 70 65 72 20 20 current paper
01D580: 69 6E 6B 20 20 75 73 69 6E 67 20 20 74 68 65 20 ink using the
01D590: 20 63 75 72 72 65 6E 74 20 20 67 72 61 70 68 69 current graphi
01D5A0: 63 73 20 20 77 72 69 74 65 20 20 20 6D 6F 64 65 cs write mode
01D5B0: 2E 20 20 20 49 6E 0D 0A 20 20 20 20 20 20 20 74 . In.. t
01D5C0: 72 61 6E 73 70 61 72 65 6E 74 20 6D 6F 64 65 20 ransparent mode
01D5D0: 74 68 65 73 65 20 70 69 78 65 6C 73 20 61 72 65 these pixels are
01D5E0: 20 6E 6F 74 20 70 6C 6F 74 74 65 64 20 61 74 20 not plotted at
01D5F0: 61 6C 6C 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 all..... E
01D600: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
01D610: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 62 61 .... If ba
01D620: 63 6B 67 72 6F 75 6E 64 20 69 73 20 74 6F 20 62 ckground is to b
01D630: 65 20 77 72 69 74 74 65 6E 20 28 6F 70 61 71 75 e written (opaqu
01D640: 65 20 6D 6F 64 65 29 3A 0D 0A 0D 0A 20 20 20 20 e mode):....
01D650: 20 20 20 20 20 20 20 20 20 20 20 20 41 20 6D 75 A mu
01D660: 73 74 20 62 65 20 7A 65 72 6F 2E 0D 0A 0D 0A 20 st be zero.....
01D670: 20 20 20 20 20 20 49 66 20 62 61 63 6B 67 72 6F If backgro
01D680: 75 6E 64 20 69 73 20 6E 6F 74 20 74 6F 20 62 65 und is not to be
01D690: 20 77 72 69 74 74 65 6E 20 28 74 72 61 6E 73 70 written (transp
01D6A0: 61 72 65 6E 74 20 6D 6F 64 65 29 3A 0D 0A 0D 0A arent mode):....
01D6B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01D6C0: 41 20 6D 75 73 74 20 62 65 20 6E 6F 6E 2D 7A 65 A must be non-ze
01D6D0: 72 6F 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ro..... Ex
01D6E0: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
01D6F0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 72 65 67 .. All reg
01D700: 69 73 74 65 72 73 20 61 6E 64 20 66 6C 61 67 73 isters and flags
01D710: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
01D720: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
01D730: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 ...... Thi
01D740: 73 20 72 6F 75 74 69 6E 65 20 69 73 20 6E 6F 74 s routine is not
01D750: 20 61 76 61 69 6C 61 62 6C 65 20 6F 6E 20 56 31 available on V1
01D760: 2E 30 20 66 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A .0 firmware.....
01D770: 0D 0A 20 20 20 20 20 20 20 54 72 61 6E 73 70 61 .. Transpa
01D780: 72 65 6E 74 20 77 72 69 74 65 20 6D 6F 64 65 20 rent write mode
01D790: 69 73 20 20 75 73 65 66 75 6C 20 20 66 6F 72 20 is useful for
01D7A0: 20 61 6E 6E 6F 74 61 74 69 6E 67 20 20 64 69 61 annotating dia
01D7B0: 67 72 61 6D 73 20 20 61 6E 64 20 20 66 6F 72 0D grams and for.
01D7C0: 0A 20 20 20 20 20 20 20 73 69 6D 69 6C 61 72 20 . similar
01D7D0: 61 70 70 6C 69 63 61 74 69 6F 6E 73 2E 0D 0A 0D applications....
01D7E0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 67 72 ... The gr
01D7F0: 61 70 68 69 63 73 20 62 61 63 6B 67 72 6F 75 6E aphics backgroun
01D800: 64 20 77 72 69 74 65 20 6D 6F 64 65 20 69 73 20 d write mode is
01D810: 73 69 6D 69 6C 61 72 20 74 6F 20 20 62 75 74 20 similar to but
01D820: 20 69 6E 64 65 70 65 6E 64 65 6E 74 20 20 6F 66 independent of
01D830: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 63 68 61 .. the cha
01D840: 72 61 63 74 65 72 20 77 72 69 74 65 20 6D 6F 64 racter write mod
01D850: 65 20 6F 66 20 65 61 63 68 20 73 74 72 65 61 6D e of each stream
01D860: 20 6F 66 20 74 68 65 20 54 65 78 74 20 56 44 55 of the Text VDU
01D870: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
01D880: 65 20 64 65 66 61 75 6C 74 20 73 65 74 74 69 6E e default settin
01D890: 67 20 69 73 20 6F 70 61 71 75 65 20 6D 6F 64 65 g is opaque mode
01D8A0: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
01D8B0: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
01D8C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 ...... GRA
01D8D0: 20 44 45 46 41 55 4C 54 0D 0A 20 20 20 20 20 20 DEFAULT..
01D8E0: 20 47 52 41 20 4C 49 4E 45 0D 0A 20 20 20 20 20 GRA LINE..
01D8F0: 20 20 47 52 41 20 4C 49 4E 45 20 41 42 53 4F 4C GRA LINE ABSOL
01D900: 55 54 45 0D 0A 20 20 20 20 20 20 20 47 52 41 20 UTE.. GRA
01D910: 4C 49 4E 45 20 52 45 4C 41 54 49 56 45 0D 0A 20 LINE RELATIVE..
01D920: 20 20 20 20 20 20 47 52 41 20 53 45 54 20 4C 49 GRA SET LI
01D930: 4E 45 20 4D 41 53 4B 0D 0A 20 20 20 20 20 20 20 NE MASK..
01D940: 47 52 41 20 57 52 20 43 48 41 52 0D 0A 20 20 20 GRA WR CHAR..
01D950: 20 20 20 20 54 58 54 20 53 45 54 20 42 41 43 4B TXT SET BACK
01D960: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
01D970: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
01D980: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
01D990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01D9A0: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
01D9B0: 35 2E 32 33 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 5.232...........
01D9C0: 0A 0D 0A 20 20 20 20 20 20 20 31 39 35 3A 20 47 ... 195: G
01D9D0: 52 41 20 53 45 54 20 46 49 52 53 54 20 20 20 20 RA SET FIRST
01D9E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01D9F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01DA00: 20 20 20 20 20 20 20 20 20 20 20 23 42 44 34 39 #BD49
01DA10: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 ...... Set
01DA20: 20 77 68 65 74 68 65 72 20 74 68 65 20 66 69 72 whether the fir
01DA30: 73 74 20 70 6F 69 6E 74 20 6F 66 20 61 20 6C 69 st point of a li
01DA40: 6E 65 20 69 73 20 74 6F 20 62 65 20 70 6C 6F 74 ne is to be plot
01DA50: 74 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ted.......
01DA60: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 Action:......
01DA70: 20 20 20 20 20 54 75 72 6E 20 70 6C 6F 74 74 69 Turn plotti
01DA80: 6E 67 20 6F 66 20 74 68 65 20 66 69 72 73 74 20 ng of the first
01DA90: 70 69 78 65 6C 20 6F 66 20 6C 69 6E 65 73 20 6F pixel of lines o
01DAA0: 6E 20 6F 72 20 6F 66 66 2E 0D 0A 0D 0A 0D 0A 20 n or off.......
01DAB0: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
01DAC0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
01DAD0: 20 20 20 20 49 66 20 74 68 65 20 66 69 72 73 74 If the first
01DAE0: 20 70 69 78 65 6C 20 69 73 20 6E 6F 74 20 74 6F pixel is not to
01DAF0: 20 62 65 20 70 6C 6F 74 74 65 64 3A 0D 0A 0D 0A be plotted:....
01DB00: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
01DB10: 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 7A 65 72 A contains zer
01DB20: 6F 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 o....... I
01DB30: 66 20 74 68 65 20 66 69 72 73 74 20 70 69 78 65 f the first pixe
01DB40: 6C 20 69 73 20 74 6F 20 62 65 20 70 6C 6F 74 74 l is to be plott
01DB50: 65 64 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed:......
01DB60: 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 A conta
01DB70: 69 6E 73 20 6E 6F 6E 2D 7A 65 72 6F 2E 0D 0A 0D ins non-zero....
01DB80: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
01DB90: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
01DBA0: 20 20 20 20 20 20 20 41 6C 6C 20 72 65 67 69 73 All regis
01DBB0: 74 65 72 73 20 61 6E 64 20 66 6C 61 67 73 20 70 ters and flags p
01DBC0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
01DBD0: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
01DBE0: 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F .. This ro
01DBF0: 75 74 69 6E 65 20 69 73 20 6E 6F 74 20 61 76 61 utine is not ava
01DC00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
01DC10: 19 00 00 00 02 09 50 E5 19 00 C1 02 00 00 00 02 ......P.........
01DC20: 19 00 C2 02 00 00 00 02 19 00 C3 02 00 00 00 02 ................
01DC30: 19 00 C4 02 00 00 00 02 19 00 C5 02 00 00 00 02 ................
01DC40: 19 00 C6 02 00 00 00 02 19 00 C7 02 00 00 00 02 ................
01DC50: 19 00 C8 02 00 00 00 02 19 00 C9 02 00 00 00 02 ................
01DC60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DD00: 69 6C 61 62 6C 65 20 6F 6E 20 56 31 2E 30 20 66 ilable on V1.0 f
01DD10: 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A 0D 0A 20 20 irmware.......
01DD20: 20 20 20 20 20 54 75 72 6E 69 6E 67 20 6F 66 66 Turning off
01DD30: 20 74 68 65 20 70 6C 6F 74 74 69 6E 67 20 6F 66 the plotting of
01DD40: 20 74 68 65 20 66 69 72 73 74 20 70 69 78 65 6C the first pixel
01DD50: 20 6F 66 20 61 20 6C 69 6E 65 20 69 73 20 20 70 of a line is p
01DD60: 61 72 74 69 63 75 6C 61 72 6C 79 0D 0A 20 20 20 articularly..
01DD70: 20 20 20 20 75 73 65 66 75 6C 20 77 68 65 6E 20 useful when
01DD80: 64 72 61 77 69 6E 67 20 75 73 69 6E 67 20 58 4F drawing using XO
01DD90: 52 20 67 72 61 70 68 69 63 73 20 77 72 69 74 65 R graphics write
01DDA0: 20 6D 6F 64 65 2E 20 46 6F 72 20 65 78 61 6D 70 mode. For examp
01DDB0: 6C 65 2C 20 20 69 66 20 20 61 0D 0A 20 20 20 20 le, if a..
01DDC0: 20 20 20 62 6F 78 20 69 73 20 64 72 61 77 6E 20 box is drawn
01DDD0: 69 6E 20 58 4F 52 20 6D 6F 64 65 20 77 68 65 6E in XOR mode when
01DDE0: 20 74 68 65 20 20 66 69 72 73 74 20 20 70 69 78 the first pix
01DDF0: 65 6C 20 20 6F 66 20 20 6C 69 6E 65 73 20 20 61 el of lines a
01DE00: 72 65 20 20 62 65 69 6E 67 0D 0A 20 20 20 20 20 re being..
01DE10: 20 20 70 6C 6F 74 74 65 64 20 74 68 65 6E 20 74 plotted then t
01DE20: 68 65 20 63 6F 72 6E 65 72 20 70 69 78 65 6C 73 he corner pixels
01DE30: 20 77 69 6C 6C 20 65 20 70 6C 6F 74 74 65 64 20 will e plotted
01DE40: 74 77 69 63 65 20 61 6E 64 20 77 69 6C 6C 20 74 twice and will t
01DE50: 68 65 72 65 66 6F 72 65 0D 0A 20 20 20 20 20 20 herefore..
01DE60: 20 6E 6F 74 20 62 65 20 73 65 74 2E 20 42 79 20 not be set. By
01DE70: 6E 6F 74 20 70 6C 6F 74 74 69 6E 67 20 74 68 65 not plotting the
01DE80: 20 66 69 72 73 74 20 70 69 78 65 6C 20 6F 66 20 first pixel of
01DE90: 6C 69 6E 65 73 20 20 74 68 69 73 20 20 65 66 66 lines this eff
01DEA0: 65 63 74 20 20 69 73 0D 0A 20 20 20 20 20 20 20 ect is..
01DEB0: 61 76 6F 69 64 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 avoided.......
01DEC0: 20 20 20 20 20 54 68 65 20 64 65 66 61 75 6C 74 The default
01DED0: 20 73 65 74 74 69 6E 67 20 66 6F 72 20 74 68 69 setting for thi
01DEE0: 73 20 6D 6F 64 65 20 69 73 20 74 6F 20 70 6C 6F s mode is to plo
01DEF0: 74 20 74 68 65 20 66 69 72 73 74 20 70 69 78 65 t the first pixe
01DF00: 6C 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 l....... R
01DF10: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
01DF20: 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 44 45 ... GRA DE
01DF30: 46 41 55 4C 54 0D 0A 20 20 20 20 20 20 20 47 52 FAULT.. GR
01DF40: 41 20 4C 49 4E 45 0D 0A 20 20 20 20 20 20 20 47 A LINE.. G
01DF50: 52 41 20 4C 49 4E 45 20 41 42 53 4F 4C 55 54 45 RA LINE ABSOLUTE
01DF60: 0D 0A 20 20 20 20 20 20 20 47 52 41 20 4C 49 4E .. GRA LIN
01DF70: 45 20 52 45 4C 41 54 49 56 45 0D 0A 0D 0A 0D 0A E RELATIVE......
01DF80: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
01DF90: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
01DFA0: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
01DFB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01DFC0: 20 20 20 20 70 61 67 65 20 31 35 2E 32 33 33 0D page 15.233.
01DFD0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
01DFE0: 20 20 20 20 31 39 36 3A 20 47 52 41 20 53 45 54 196: GRA SET
01DFF0: 20 4C 49 4E 45 20 4D 41 53 4B 20 20 20 20 20 20 LINE MASK
01E000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01E010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01E020: 20 20 20 20 20 23 42 44 34 43 0D 0A 0D 0A 20 20 #BD4C....
01E030: 20 20 20 20 20 53 65 74 20 74 68 65 20 6C 69 6E Set the lin
01E040: 65 20 6D 61 73 6B 20 66 6F 72 20 70 6C 6F 74 74 e mask for plott
01E050: 69 6E 67 20 70 69 78 65 6C 73 20 6F 66 20 6C 69 ing pixels of li
01E060: 6E 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 nes..... A
01E070: 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 ction:....
01E080: 20 53 65 74 20 74 68 65 20 6C 69 6E 65 20 6D 61 Set the line ma
01E090: 73 6B 20 74 68 61 74 20 20 73 70 65 63 69 66 69 sk that specifi
01E0A0: 65 73 20 20 68 6F 77 20 20 70 69 78 65 6C 73 20 es how pixels
01E0B0: 20 6F 6E 20 20 6C 69 6E 65 73 20 20 61 72 65 20 on lines are
01E0C0: 20 74 6F 20 20 62 65 0D 0A 20 20 20 20 20 20 20 to be..
01E0D0: 70 6C 6F 74 74 65 64 2E 20 57 68 65 72 65 20 61 plotted. Where a
01E0E0: 20 62 69 74 20 69 6E 20 74 68 65 20 6D 61 73 6B bit in the mask
01E0F0: 20 69 73 20 73 65 74 20 74 68 65 20 70 69 78 65 is set the pixe
01E100: 6C 20 77 69 6C 6C 20 62 65 20 20 70 6C 6F 74 74 l will be plott
01E110: 65 64 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 74 ed in.. t
01E120: 68 65 20 66 6F 72 65 67 72 6F 75 6E 64 20 28 69 he foreground (i
01E130: 6E 20 67 72 61 70 68 69 63 73 20 70 65 6E 20 69 n graphics pen i
01E140: 6E 6B 20 75 73 69 6E 67 20 74 68 65 20 20 67 72 nk using the gr
01E150: 61 70 68 69 63 73 20 20 77 72 69 74 65 20 20 6D aphics write m
01E160: 6F 64 65 29 2E 0D 0A 20 20 20 20 20 20 20 57 68 ode)... Wh
01E170: 65 72 65 20 61 20 70 69 78 65 6C 20 69 6E 20 74 ere a pixel in t
01E180: 68 65 20 6D 61 73 6B 20 69 73 20 6E 6F 74 20 73 he mask is not s
01E190: 65 74 20 74 68 65 20 70 69 78 65 6C 20 77 69 6C et the pixel wil
01E1A0: 6C 20 65 69 74 68 65 72 20 62 65 20 20 70 6C 6F l either be plo
01E1B0: 74 74 65 64 0D 0A 20 20 20 20 20 20 20 69 6E 20 tted.. in
01E1C0: 74 68 65 20 67 72 61 70 68 69 63 73 20 70 61 70 the graphics pap
01E1D0: 65 72 20 69 6E 6B 20 75 73 69 6E 67 20 74 68 65 er ink using the
01E1E0: 20 67 72 61 70 68 69 63 73 20 77 72 69 74 65 20 graphics write
01E1F0: 6D 6F 64 65 20 6F 72 20 77 69 6C 6C 20 6E 6F 74 mode or will not
01E200: 20 62 65 0D 0A 20 20 20 20 20 20 20 70 6C 6F 74 be.. plot
01E210: 74 65 64 20 61 74 20 61 6C 6C 20 64 65 70 65 6E ted at all depen
01E220: 64 69 6E 67 20 6F 6E 20 74 68 65 20 67 72 61 70 ding on the grap
01E230: 68 69 63 73 20 62 61 63 6B 67 72 6F 75 6E 64 20 hics background
01E240: 77 72 69 74 65 20 6D 6F 64 65 2E 0D 0A 0D 0A 20 write mode.....
01E250: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
01E260: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
01E270: 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 A contains the
01E280: 20 6C 69 6E 65 20 6D 61 73 6B 20 74 6F 20 75 73 line mask to us
01E290: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 e..... Exi
01E2A0: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
01E2B0: 0A 20 20 20 20 20 20 20 41 6C 6C 20 72 65 67 69 . All regi
01E2C0: 73 74 65 72 73 20 61 6E 64 20 66 6C 61 67 73 20 sters and flags
01E2D0: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 preserved.....
01E2E0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 Notes:....
01E2F0: 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 This routi
01E300: 6E 65 20 69 73 20 6E 6F 74 20 61 76 61 69 6C 61 ne is not availa
01E310: 62 6C 65 20 6F 6E 20 56 31 2E 30 20 66 69 72 6D ble on V1.0 firm
01E320: 77 61 72 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ware.....
01E330: 54 68 65 20 6C 69 6E 65 20 6D 61 73 6B 20 69 73 The line mask is
01E340: 20 75 73 65 64 20 73 74 61 72 74 69 6E 67 20 77 used starting w
01E350: 69 74 68 20 62 69 74 20 37 20 61 6E 64 20 72 75 ith bit 7 and ru
01E360: 6E 6E 69 6E 67 20 20 74 6F 20 20 62 69 74 20 20 nning to bit
01E370: 30 20 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 74 0 and.. t
01E380: 68 65 6E 20 73 74 61 72 74 69 6E 67 20 77 69 74 hen starting wit
01E390: 68 20 62 69 74 20 37 20 61 67 61 69 6E 2E 20 53 h bit 7 again. S
01E3A0: 75 63 63 65 73 73 69 76 65 20 6C 69 6E 65 73 20 uccessive lines
01E3B0: 77 69 6C 6C 20 75 73 65 20 74 68 65 20 6D 61 73 will use the mas
01E3C0: 6B 20 20 61 73 0D 0A 20 20 20 20 20 20 20 69 74 k as.. it
01E3D0: 20 77 61 73 20 6C 65 66 74 20 77 68 65 6E 20 74 was left when t
01E3E0: 68 65 20 70 72 65 76 69 6F 75 73 20 6C 69 6E 65 he previous line
01E3F0: 20 66 69 6E 69 73 68 65 64 2C 20 74 68 65 20 20 finished, the
01E400: 6D 61 73 6B 20 20 69 73 20 20 6E 6F 74 20 20 72 mask is not r
01E410: 65 73 65 74 0D 0A 20 20 20 20 20 20 20 62 65 74 eset.. bet
01E420: 77 65 65 6E 20 6C 69 6E 65 73 2E 0D 0A 0D 0A 20 ween lines.....
01E430: 20 20 20 20 20 20 54 68 65 20 6C 69 6E 65 20 6D The line m
01E440: 61 73 6B 20 73 70 65 63 69 66 69 65 73 20 68 6F ask specifies ho
01E450: 77 20 70 69 78 65 6C 73 20 61 72 65 20 74 6F 20 w pixels are to
01E460: 62 65 20 70 6C 6F 74 74 65 64 2E 20 54 68 69 73 be plotted. This
01E470: 20 6D 65 61 6E 73 20 20 74 68 61 74 0D 0A 20 20 means that..
01E480: 20 20 20 20 20 74 68 65 20 73 61 6D 65 20 6D 61 the same ma
01E490: 73 6B 20 77 69 6C 6C 20 67 69 76 65 20 6E 6F 74 sk will give not
01E4A0: 69 63 65 61 62 6C 79 20 64 69 66 66 65 72 65 6E iceably differen
01E4B0: 74 20 65 66 66 65 63 74 73 20 20 69 6E 20 20 74 t effects in t
01E4C0: 68 65 20 20 76 61 72 69 6F 75 73 0D 0A 20 20 20 he various..
01E4D0: 20 20 20 20 73 63 72 65 65 6E 20 6D 6F 64 65 73 screen modes
01E4E0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
01E4F0: 6D 61 73 6B 20 69 73 20 61 70 70 6C 69 65 64 20 mask is applied
01E500: 74 6F 20 74 68 65 20 6C 69 6E 65 20 72 75 6E 6E to the line runn
01E510: 69 6E 67 20 66 72 6F 6D 20 6C 65 66 74 20 20 74 ing from left t
01E520: 6F 20 20 72 69 67 68 74 20 20 6F 72 20 20 66 72 o right or fr
01E530: 6F 6D 0D 0A 20 20 20 20 20 20 20 62 6F 74 74 6F om.. botto
01E540: 6D 20 74 6F 20 74 6F 70 2C 20 64 65 70 65 6E 64 m to top, depend
01E550: 69 6E 67 20 6F 6E 20 74 68 65 20 61 6E 67 6C 65 ing on the angle
01E560: 20 6F 66 20 20 74 68 65 20 20 6C 69 6E 65 2C 20 of the line,
01E570: 20 69 72 72 65 73 70 65 63 74 69 76 65 20 20 6F irrespective o
01E580: 66 0D 0A 20 20 20 20 20 20 20 77 68 69 63 68 20 f.. which
01E590: 77 61 79 20 72 6F 75 6E 64 20 74 68 65 20 65 6E way round the en
01E5A0: 64 20 70 6F 69 6E 74 73 20 6F 66 20 74 68 65 20 d points of the
01E5B0: 6C 69 6E 65 20 61 72 65 20 73 70 65 63 69 66 69 line are specifi
01E5C0: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
01E5D0: 49 66 20 74 68 65 20 66 69 72 73 74 20 70 69 78 If the first pix
01E5E0: 65 6C 20 6F 66 20 74 68 65 20 6C 69 6E 65 20 69 el of the line i
01E5F0: 73 20 6E 6F 74 20 62 65 69 6E 67 20 70 6C 6F 74 s not being plot
01E600: 74 65 64 20 74 68 65 6E 20 74 68 65 20 6C 69 6E ted then the lin
01E610: 65 20 6D 61 73 6B 0D 0A 20 20 20 20 20 20 20 69 e mask.. i
01E620: 73 20 61 70 70 6C 69 65 64 20 74 6F 20 74 68 65 s applied to the
01E630: 20 73 65 63 6F 6E 64 20 70 69 78 65 6C 20 6F 66 second pixel of
01E640: 20 74 68 65 20 6C 69 6E 65 20 66 69 72 73 74 2E the line first.
01E650: 20 49 74 20 69 73 20 6E 6F 74 20 73 74 65 70 70 It is not stepp
01E660: 65 64 20 6F 6E 0D 0A 20 20 20 20 20 20 20 66 6F ed on.. fo
01E670: 72 20 74 68 65 20 6D 69 73 73 69 6E 67 20 66 69 r the missing fi
01E680: 72 73 74 20 70 69 78 65 6C 2E 0D 0A 0D 0A 0D 0A rst pixel.......
01E690: 20 20 20 20 20 20 20 54 68 65 20 64 65 66 61 75 The defau
01E6A0: 6C 74 20 6C 69 6E 65 20 6D 61 73 6B 20 20 69 73 lt line mask is
01E6B0: 20 20 23 46 46 20 20 77 68 69 63 68 20 20 70 6C #FF which pl
01E6C0: 6F 74 20 20 74 68 65 20 20 77 68 6F 6C 65 20 20 ot the whole
01E6D0: 6C 69 6E 65 20 20 69 6E 20 20 74 68 65 0D 0A 20 line in the..
01E6E0: 20 20 20 20 20 20 66 6F 72 65 67 72 6F 75 6E 64 foreground
01E6F0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 ....... Re
01E700: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
01E710: 0D 0A 20 20 20 20 20 20 20 47 52 41 20 44 45 46 .. GRA DEF
01E720: 41 55 4C 54 0D 0A 20 20 20 20 20 20 20 47 52 41 AULT.. GRA
01E730: 20 4C 49 4E 45 0D 0A 20 20 20 20 20 20 20 47 52 LINE.. GR
01E740: 41 20 4C 49 4E 45 20 41 42 53 4F 4C 55 54 45 0D A LINE ABSOLUTE.
01E750: 0A 20 20 20 20 20 20 20 47 52 41 20 4C 49 4E 45 . GRA LINE
01E760: 20 52 45 4C 41 54 49 56 45 0D 0A 20 20 20 20 20 RELATIVE..
01E770: 20 20 47 52 41 20 53 45 54 20 42 41 43 4B 0D 0A GRA SET BACK..
01E780: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
01E790: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
01E7A0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
01E7B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01E7C0: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
01E7D0: 35 2E 32 33 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 5.234...........
01E7E0: 0A 0D 0A 20 20 20 20 20 20 20 31 39 37 3A 20 47 ... 197: G
01E7F0: 52 41 20 46 52 4F 4D 20 55 53 45 52 20 20 20 20 RA FROM USER
01E800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01E810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01E820: 20 20 20 20 20 20 20 20 20 20 20 23 42 44 34 46 #BD4F
01E830: 0D 0A 0D 0A 20 20 20 20 20 20 20 43 6F 6E 76 65 .... Conve
01E840: 72 74 20 75 73 65 72 20 63 6F 6F 72 64 69 6E 61 rt user coordina
01E850: 74 65 73 20 74 6F 20 62 61 73 65 20 63 6F 6F 72 tes to base coor
01E860: 64 69 6E 61 74 65 73 2E 0D 0A 0D 0A 20 20 20 20 dinates.....
01E870: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 Action:....
01E880: 20 20 20 20 20 43 6F 6E 76 65 72 74 20 74 68 65 Convert the
01E890: 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 6F 66 20 coordinates of
01E8A0: 61 20 20 70 6F 69 6E 74 20 20 66 72 6F 6D 20 20 a point from
01E8B0: 75 73 65 72 20 20 63 6F 6F 72 64 69 6E 61 74 65 user coordinate
01E8C0: 73 20 20 74 6F 20 20 62 61 73 65 0D 0A 20 20 20 s to base..
01E8D0: 20 20 20 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 coordinates
01E8E0: 72 6F 75 6E 64 69 6E 67 20 61 73 20 61 70 70 72 rounding as appr
01E8F0: 6F 70 72 69 61 74 65 2E 0D 0A 0D 0A 20 20 20 20 opriate.....
01E900: 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 Entry conditi
01E910: 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 ons:.... D
01E920: 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 75 E contains the u
01E930: 73 65 72 20 58 20 63 6F 6F 72 64 69 6E 61 74 65 ser X coordinate
01E940: 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E ... HL con
01E950: 74 61 69 6E 73 20 74 68 65 20 75 73 65 72 20 59 tains the user Y
01E960: 20 63 6F 6F 72 64 69 6E 61 74 65 2E 0D 0A 0D 0A coordinate.....
01E970: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
01E980: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
01E990: 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 DE contains th
01E9A0: 65 20 62 61 73 65 20 58 20 63 6F 6F 72 64 69 6E e base X coordin
01E9B0: 61 74 65 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 ate... HL
01E9C0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 62 61 73 contains the bas
01E9D0: 65 20 59 20 63 6F 6F 72 64 69 6E 61 74 65 2E 0D e Y coordinate..
01E9E0: 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 63 6F 72 ... AF cor
01E9F0: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C rupt... Al
01EA00: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
01EA10: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
01EA20: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
01EA30: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 ... This r
01EA40: 6F 75 74 69 6E 65 20 69 73 20 6E 6F 74 20 61 76 outine is not av
01EA50: 61 69 6C 61 62 6C 65 20 6F 6E 20 56 31 2E 30 20 ailable on V1.0
01EA60: 66 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A 0D 0A 20 firmware.......
01EA70: 20 20 20 20 20 20 54 68 65 20 66 6F 6C 6C 6F 77 The follow
01EA80: 69 6E 67 20 66 6F 72 6D 75 6C 61 65 20 61 72 65 ing formulae are
01EA90: 20 75 73 65 64 20 20 74 6F 20 20 63 6F 6E 76 65 used to conve
01EAA0: 72 74 20 20 62 65 74 77 65 65 6E 20 20 74 68 65 rt between the
01EAB0: 20 20 63 6F 6F 72 64 69 6E 61 74 65 0D 0A 20 20 coordinate..
01EAC0: 20 20 20 20 20 73 79 73 74 65 6D 73 3A 0D 0A 0D systems:...
01EAD0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
01EAE0: 20 20 20 42 61 73 65 20 58 20 20 20 20 3D 20 28 Base X = (
01EAF0: 4F 72 69 67 69 6E 20 58 20 2B 20 52 6F 75 6E 64 Origin X + Round
01EB00: 65 64 20 58 29 20 2F 20 50 6F 69 6E 74 73 20 70 ed X) / Points p
01EB10: 65 72 20 70 69 78 65 6C 0D 0A 20 20 20 20 20 20 er pixel..
01EB20: 20 20 20 20 20 20 20 20 20 20 52 6F 75 6E 64 65 Rounde
01EB30: 64 20 58 20 3D 20 28 55 73 65 72 20 58 20 2B 20 d X = (User X +
01EB40: 52 6F 75 6E 64 20 66 61 63 74 6F 72 29 20 41 4E Round factor) AN
01EB50: 44 20 52 6F 75 6E 64 20 6D 61 73 6B 0D 0A 0D 0A D Round mask....
01EB60: 0D 0A 20 20 20 20 20 20 20 57 68 65 72 65 3A 0D .. Where:.
01EB70: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
01EB80: 20 20 20 20 20 20 20 52 6F 75 6E 64 20 66 61 63 Round fac
01EB90: 74 6F 72 20 20 20 20 20 20 20 20 20 20 52 6F 75 tor Rou
01EBA0: 6E 64 20 6D 61 73 6B 20 20 20 20 20 20 20 20 20 nd mask
01EBB0: 50 6F 69 6E 74 73 20 70 65 72 20 70 69 78 65 6C Points per pixel
01EBC0: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
01EBD0: 20 2B 76 65 20 75 73 65 72 20 58 20 2D 76 65 20 +ve user X -ve
01EBE0: 75 73 65 72 20 58 0D 0A 0D 0A 20 20 20 20 20 20 user X....
01EBF0: 20 4D 6F 64 65 20 30 3A 20 20 20 20 20 30 20 20 Mode 0: 0
01EC00: 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 0
01EC10: 20 20 20 20 23 46 46 46 46 20 20 20 20 20 20 20 #FFFF
01EC20: 20 20 20 20 20 20 20 20 20 20 20 20 31 0D 0A 20 1..
01EC30: 20 20 20 20 20 20 4D 6F 64 65 20 31 3A 20 20 20 Mode 1:
01EC40: 20 20 30 20 20 20 20 20 20 20 20 31 20 20 20 20 0 1
01EC50: 20 20 20 20 20 20 20 20 20 23 46 46 46 45 20 20 #FFFE
01EC60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01EC70: 20 32 0D 0A 20 20 20 20 20 20 20 4D 6F 64 65 20 2.. Mode
01EC80: 32 3A 20 20 20 20 20 30 20 20 20 20 20 20 20 20 2: 0
01EC90: 33 20 20 20 20 20 20 20 20 20 20 20 20 20 23 46 3 #F
01ECA0: 46 46 43 20 20 20 20 20 20 20 20 20 20 20 20 20 FFC
01ECB0: 20 20 20 20 20 20 34 0D 0A 0D 0A 20 20 20 20 20 4....
01ECC0: 20 20 20 20 20 20 20 20 20 20 42 61 73 65 20 59 Base Y
01ECD0: 20 20 20 20 20 3D 20 28 4F 72 69 67 69 6E 20 59 = (Origin Y
01ECE0: 20 2B 20 52 6F 75 6E 64 65 64 20 59 29 20 2F 20 + Rounded Y) /
01ECF0: 50 6F 69 6E 74 73 20 70 65 72 20 70 69 78 65 6C Points per pixel
01ED00: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
01ED10: 20 52 6F 75 6E 64 65 64 20 59 20 20 3D 20 28 55 Rounded Y = (U
01ED20: 73 65 72 20 59 20 2B 20 52 6F 75 6E 64 20 66 61 ser Y + Round fa
01ED30: 63 74 6F 72 29 20 41 4E 44 20 52 6F 75 6E 64 20 ctor) AND Round
01ED40: 6D 61 73 6B 0D 0A 0D 0A 20 20 20 20 20 20 20 57 mask.... W
01ED50: 68 65 72 65 3A 20 20 20 20 20 20 20 20 20 20 20 here:
01ED60: 20 20 52 6F 75 6E 64 20 66 61 63 74 6F 72 20 20 Round factor
01ED70: 20 20 20 20 20 20 3D 20 30 20 66 6F 72 20 2B 76 = 0 for +v
01ED80: 65 20 75 73 65 72 20 59 0D 0A 20 20 20 20 20 20 e user Y..
01ED90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01EDA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01EDB0: 20 20 20 20 20 20 20 20 3D 20 31 20 66 6F 72 20 = 1 for
01EDC0: 2D 76 65 20 75 73 65 72 20 59 0D 0A 20 20 20 20 -ve user Y..
01EDD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01EDE0: 20 20 20 20 20 20 52 6F 75 6E 64 20 6D 61 73 6B Round mask
01EDF0: 20 20 20 20 20 20 20 20 20 20 3D 20 23 46 46 46 = #FFF
01EE00: 45 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 E..
01EE10: 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6F 69 Poi
01EE20: 6E 74 73 20 70 65 72 20 70 69 78 65 6C 20 20 20 nts per pixel
01EE30: 20 3D 20 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A = 2............
01EE40: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
01EE50: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
01EE60: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
01EE70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01EE80: 20 20 70 61 67 65 20 31 35 2E 32 33 35 0D 0A 0D page 15.235...
01EE90: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
01EEA0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 69 This routine i
01EEB0: 73 20 70 61 72 74 69 63 75 6C 61 72 6C 79 20 75 s particularly u
01EEC0: 73 65 66 75 6C 20 77 68 65 6E 20 63 61 6C 6C 69 seful when calli
01EED0: 6E 67 20 53 63 72 65 65 6E 20 70 61 63 6B 20 20 ng Screen pack
01EEE0: 72 6F 75 74 69 6E 65 73 0D 0A 20 20 20 20 20 20 routines..
01EEF0: 20 77 68 69 63 68 20 74 61 6B 65 20 74 68 65 20 which take the
01EF00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
01EF10: 1A 00 00 00 02 09 50 E5 1A 00 C1 02 00 00 00 02 ......P.........
01EF20: 1A 00 C2 02 00 00 00 02 1A 00 C3 02 00 00 00 02 ................
01EF30: 1A 00 C4 02 00 00 00 02 1A 00 C5 02 00 00 00 02 ................
01EF40: 1A 00 C6 02 00 00 00 02 1A 00 C7 02 00 00 00 02 ................
01EF50: 1A 00 C8 02 00 00 00 02 1A 00 C9 02 00 00 00 02 ................
01EF60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01F000: 70 6F 73 69 74 69 6F 6E 73 20 6F 66 20 70 6F 69 positions of poi
01F010: 6E 74 73 20 69 6E 20 62 61 73 65 20 63 6F 6F 72 nts in base coor
01F020: 64 69 6E 61 74 65 73 2E 0D 0A 0D 0A 0D 0A 0D 0A dinates.........
01F030: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
01F040: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 entries:......
01F050: 20 20 20 20 20 20 47 52 41 20 53 45 54 20 4F 52 GRA SET OR
01F060: 49 47 49 4E 0D 0A 20 20 20 20 20 20 20 53 43 52 IGIN.. SCR
01F070: 20 44 4F 54 20 50 4F 53 49 54 49 4F 4E 0D 0A 0D DOT POSITION...
01F080: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01F090: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01F0A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01F0B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01F0C0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01F0D0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ...............
01F0E0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
01F0F0: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
01F100: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
01F110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F120: 20 70 61 67 65 20 31 35 2E 32 33 36 0D 0A 1A 20 page 15.236...
01F130: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
01F140: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
01F150: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
01F160: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
01F170: 65 20 31 35 2E 32 33 38 0D 0A 1A 6F 6E 6F 75 73 e 15.238...onous
01F180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01F400: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
01F410: 20 20 20 31 39 38 3A 20 47 52 41 20 46 49 4C 4C 198: GRA FILL
01F420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F450: 20 20 20 20 23 42 44 35 32 0D 0A 0D 0A 20 20 20 #BD52....
01F460: 20 20 20 20 46 69 6C 6C 20 61 6E 20 61 72 65 61 Fill an area
01F470: 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E 2E 0D of the screen..
01F480: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
01F490: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 69 6C 6C :.... Fill
01F4A0: 20 61 6E 20 61 72 65 61 20 6F 66 20 74 68 65 20 an area of the
01F4B0: 73 63 72 65 65 6E 20 63 6F 6E 74 61 69 6E 69 6E screen containin
01F4C0: 67 20 74 68 65 20 20 63 75 72 72 65 6E 74 20 20 g the current
01F4D0: 67 72 61 70 68 69 63 73 20 20 70 6F 73 69 74 69 graphics positi
01F4E0: 6F 6E 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 62 on.. and b
01F4F0: 6F 75 6E 64 65 64 20 62 79 20 74 68 65 20 65 64 ounded by the ed
01F500: 67 65 20 6F 66 20 74 68 65 20 77 69 6E 64 6F 77 ge of the window
01F510: 20 61 6E 64 20 70 69 78 65 6C 73 20 73 65 74 20 and pixels set
01F520: 74 6F 20 74 68 65 20 70 65 6E 20 69 6E 6B 2E 0D to the pen ink..
01F530: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
01F540: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
01F550: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
01F560: 20 74 68 65 20 28 75 6E 65 6E 63 6F 64 65 64 29 the (unencoded)
01F570: 20 69 6E 6B 20 74 6F 20 66 69 6C 6C 20 74 68 65 ink to fill the
01F580: 20 61 72 65 61 20 77 69 74 68 2E 0D 0A 20 20 20 area with...
01F590: 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 HL contains
01F5A0: 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 61 the address of a
01F5B0: 20 62 75 66 66 65 72 2E 0D 0A 20 20 20 20 20 20 buffer...
01F5C0: 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 DE contains the
01F5D0: 20 6C 65 6E 67 74 68 20 6F 66 20 74 68 65 20 62 length of the b
01F5E0: 75 66 66 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 uffer.....
01F5F0: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
01F600: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 :.... If t
01F610: 68 65 20 61 72 65 61 20 77 61 73 20 66 69 6C 6C he area was fill
01F620: 65 64 20 73 75 63 63 65 73 73 66 75 6C 6C 79 3A ed successfully:
01F630: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
01F640: 20 20 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D Carry true..
01F650: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
01F660: 20 61 72 65 61 20 77 61 73 20 6E 6F 74 20 66 69 area was not fi
01F670: 6C 6C 65 64 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 lled:....
01F680: 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 66 Carry f
01F690: 61 6C 73 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 alse.....
01F6A0: 41 6C 77 61 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 Always:....
01F6B0: 20 20 20 20 20 20 20 20 20 20 20 41 2C 20 42 43 A, BC
01F6C0: 2C 20 44 45 2C 20 48 4C 20 61 6E 64 20 6F 74 68 , DE, HL and oth
01F6D0: 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 er flags corrupt
01F6E0: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
01F6F0: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
01F700: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
01F710: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
01F720: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 s:.... Thi
01F730: 73 20 72 6F 75 74 69 6E 65 20 69 73 20 6E 6F 74 s routine is not
01F740: 20 61 76 61 69 6C 61 62 6C 65 20 6F 6E 20 56 31 available on V1
01F750: 2E 30 20 66 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A .0 firmware.....
01F760: 20 20 20 20 20 20 20 54 68 65 20 66 69 6C 6C 69 The filli
01F770: 6E 67 20 61 6C 67 6F 72 69 74 68 6D 20 74 72 65 ng algorithm tre
01F780: 61 74 73 20 70 69 78 65 6C 73 20 73 65 74 20 74 ats pixels set t
01F790: 6F 20 74 68 65 20 20 63 75 72 72 65 6E 74 20 20 o the current
01F7A0: 70 65 6E 20 20 69 6E 6B 20 20 61 6E 64 0D 0A 20 pen ink and..
01F7B0: 20 20 20 20 20 20 70 69 78 65 6C 73 20 73 65 74 pixels set
01F7C0: 20 74 6F 20 74 68 65 20 69 6E 6B 20 74 68 61 74 to the ink that
01F7D0: 20 69 73 20 62 65 69 6E 67 20 75 73 65 64 20 66 is being used f
01F7E0: 6F 72 20 66 69 6C 6C 69 6E 67 20 61 73 20 64 65 or filling as de
01F7F0: 6C 69 6D 69 74 65 72 73 20 20 6F 66 0D 0A 20 20 limiters of..
01F800: 20 20 20 20 20 74 68 65 20 65 64 67 65 20 6F 66 the edge of
01F810: 20 74 68 65 20 61 72 65 61 2E 20 54 68 65 20 66 the area. The f
01F820: 69 6C 6C 20 69 6E 6B 20 61 6E 64 20 74 68 65 20 ill ink and the
01F830: 70 65 6E 20 69 6E 6B 20 20 6D 61 79 20 20 62 65 pen ink may be
01F840: 20 20 74 68 65 20 20 73 61 6D 65 0D 0A 20 20 20 the same..
01F850: 20 20 20 20 69 6E 6B 2E 0D 0A 0D 0A 20 20 20 20 ink.....
01F860: 20 20 20 50 69 78 65 6C 73 20 74 68 61 74 20 61 Pixels that a
01F870: 72 65 20 66 69 6C 6C 65 64 20 61 72 65 20 73 65 re filled are se
01F880: 74 20 74 6F 20 74 68 65 20 66 69 6C 6C 20 20 69 t to the fill i
01F890: 6E 6B 2E 20 20 54 68 65 20 20 67 72 61 70 68 69 nk. The graphi
01F8A0: 63 73 20 20 77 72 69 74 65 0D 0A 20 20 20 20 20 cs write..
01F8B0: 20 20 6D 6F 64 65 20 64 6F 65 73 20 6E 6F 74 20 mode does not
01F8C0: 61 66 66 65 63 74 20 74 68 65 20 77 61 79 20 70 affect the way p
01F8D0: 69 78 65 6C 73 20 61 72 65 20 77 72 69 74 74 65 ixels are writte
01F8E0: 6E 20 77 68 65 6E 20 66 69 6C 6C 69 6E 67 2E 0D n when filling..
01F8F0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 69 ... The fi
01F900: 6C 6C 69 6E 67 20 61 6C 67 6F 72 69 74 68 6D 20 lling algorithm
01F910: 6F 6E 6C 79 20 6D 6F 76 65 73 20 75 70 2C 20 64 only moves up, d
01F920: 6F 77 6E 2C 20 72 69 67 68 74 20 6F 72 20 6C 65 own, right or le
01F930: 66 74 2E 20 49 74 20 64 6F 65 73 20 20 6E 6F 74 ft. It does not
01F940: 0D 0A 20 20 20 20 20 20 20 6D 6F 76 65 20 64 69 .. move di
01F950: 61 67 6F 6E 61 6C 6C 79 20 61 6E 64 20 73 6F 20 agonally and so
01F960: 74 68 65 20 61 6C 67 6F 72 69 74 68 6D 20 77 69 the algorithm wi
01F970: 6C 6C 20 6E 6F 74 20 27 65 73 63 61 70 65 27 20 ll not 'escape'
01F980: 74 68 72 6F 75 67 68 20 20 61 20 20 67 61 70 0D through a gap.
01F990: 0A 20 20 20 20 20 20 20 62 65 74 77 65 65 6E 20 . between
01F9A0: 74 68 65 20 65 64 67 65 20 70 69 78 65 6C 73 20 the edge pixels
01F9B0: 74 68 61 74 20 61 72 65 20 64 69 61 67 6F 6E 61 that are diagona
01F9C0: 6C 6C 79 20 61 64 6A 61 63 65 6E 74 2E 20 54 68 lly adjacent. Th
01F9D0: 69 73 20 6D 65 61 6E 73 20 20 74 68 61 74 0D 0A is means that..
01F9E0: 20 20 20 20 20 20 20 74 68 65 20 65 64 67 65 20 the edge
01F9F0: 63 61 6E 20 62 65 20 64 65 6C 69 6D 69 74 65 64 can be delimited
01FA00: 20 75 73 69 6E 67 20 74 68 65 20 6E 6F 72 6D 61 using the norma
01FA10: 6C 20 6C 69 6E 65 73 20 64 72 61 77 6E 20 62 79 l lines drawn by
01FA20: 20 74 68 65 20 47 72 61 70 68 69 63 73 0D 0A 20 the Graphics..
01FA30: 20 20 20 20 20 20 56 44 55 2E 0D 0A 0D 0A 20 20 VDU.....
01FA40: 20 20 20 20 20 54 68 65 20 66 69 6C 6C 69 6E 67 The filling
01FA50: 20 61 6C 67 6F 72 69 74 68 6D 20 61 76 6F 69 64 algorithm avoid
01FA60: 73 20 72 65 63 75 72 73 69 6E 67 2E 20 49 6E 73 s recursing. Ins
01FA70: 74 65 61 64 20 69 74 20 73 74 6F 72 65 73 20 27 tead it stores '
01FA80: 69 6E 74 65 72 65 73 74 69 6E 67 0D 0A 20 20 20 interesting..
01FA90: 20 20 20 20 70 6F 69 6E 74 73 27 2C 20 70 6C 61 points', pla
01FAA0: 63 65 73 20 74 68 61 74 20 74 68 65 20 61 6C 67 ces that the alg
01FAB0: 6F 72 69 74 68 6D 20 68 61 73 20 63 68 6F 73 65 orithm has chose
01FAC0: 6E 20 6F 6E 65 20 72 6F 75 74 65 20 20 74 6F 20 n one route to
01FAD0: 20 66 69 6C 6C 20 20 62 75 74 0D 0A 20 20 20 20 fill but..
01FAE0: 20 20 20 6D 69 67 68 74 20 68 61 76 65 20 63 68 might have ch
01FAF0: 6F 73 65 6E 20 61 6E 6F 74 68 65 72 20 72 6F 75 osen another rou
01FB00: 74 65 2C 20 69 6E 20 74 68 65 20 62 75 66 66 65 te, in the buffe
01FB10: 72 20 73 75 70 70 6C 69 65 64 20 62 79 20 20 74 r supplied by t
01FB20: 68 65 20 20 75 73 65 72 2E 0D 0A 20 20 20 20 20 he user...
01FB30: 20 20 54 68 65 20 62 75 66 66 65 72 20 6D 61 79 The buffer may
01FB40: 20 6C 69 65 20 61 6E 79 77 68 65 72 65 20 69 6E lie anywhere in
01FB50: 20 52 41 4D 2E 20 45 61 63 68 20 20 27 69 6E 74 RAM. Each 'int
01FB60: 65 72 65 73 74 69 6E 67 20 20 70 6F 69 6E 74 27 eresting point'
01FB70: 20 20 73 74 6F 72 65 64 0D 0A 20 20 20 20 20 20 stored..
01FB80: 20 75 73 65 73 20 37 20 62 79 74 65 73 20 6F 66 uses 7 bytes of
01FB90: 20 74 68 65 20 62 75 66 66 65 72 20 61 6E 64 20 the buffer and
01FBA0: 74 68 65 72 65 20 69 73 20 61 6E 20 6F 76 65 72 there is an over
01FBB0: 68 65 61 64 20 6F 66 20 31 20 62 79 74 65 20 75 head of 1 byte u
01FBC0: 73 65 64 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 sed to..
01FBD0: 6D 61 72 6B 20 74 68 65 20 65 6E 64 20 6F 66 20 mark the end of
01FBE0: 74 68 65 20 62 75 66 66 65 72 2E 20 54 68 75 73 the buffer. Thus
01FBF0: 20 61 20 62 75 66 66 65 72 20 36 34 20 62 79 74 a buffer 64 byt
01FC00: 65 73 20 6C 6F 6E 67 20 77 69 6C 6C 20 20 61 6C es long will al
01FC10: 6C 6F 77 20 20 39 0D 0A 20 20 20 20 20 20 20 27 low 9.. '
01FC20: 69 6E 74 65 72 65 73 74 69 6E 67 20 70 6F 69 6E interesting poin
01FC30: 74 73 27 20 74 6F 20 62 65 20 20 73 74 6F 72 65 ts' to be store
01FC40: 64 20 20 77 68 69 63 68 20 20 73 68 6F 75 6C 64 d which should
01FC50: 20 20 62 65 20 20 73 75 66 66 69 63 69 65 6E 74 be sufficient
01FC60: 20 20 66 6F 72 0D 0A 20 20 20 20 20 20 20 66 69 for.. fi
01FC70: 6C 6C 69 6E 67 20 6D 6F 73 74 20 73 69 6D 70 6C lling most simpl
01FC80: 65 20 61 72 65 61 73 2E 0D 0A 0D 0A 0D 0A 0D 0A e areas.........
01FC90: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
01FCA0: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
01FCB0: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
01FCC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FCD0: 20 20 70 61 67 65 20 31 35 2E 32 33 37 0D 0A 0D page 15.237...
01FCE0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
01FCF0: 20 20 54 68 65 20 61 72 65 61 20 74 6F 20 62 65 The area to be
01FD00: 20 66 69 6C 6C 65 64 20 6D 61 79 20 62 65 20 61 filled may be a
01FD10: 73 20 63 6F 6D 70 6C 69 63 61 74 65 64 20 61 73 s complicated as
01FD20: 20 72 65 71 75 69 72 65 64 20 62 75 74 20 20 74 required but t
01FD30: 68 65 20 20 6D 6F 72 65 0D 0A 20 20 20 20 20 20 he more..
01FD40: 20 63 6F 6D 70 6C 69 63 61 74 65 64 20 74 68 65 complicated the
01FD50: 20 73 68 61 70 65 20 74 68 65 20 6C 6F 6E 67 65 shape the longe
01FD60: 72 20 74 68 65 20 27 69 6E 74 65 72 65 73 74 69 r the 'interesti
01FD70: 6E 67 20 70 6F 69 6E 74 27 20 62 75 66 66 65 72 ng point' buffer
01FD80: 20 20 6E 65 65 64 73 0D 0A 20 20 20 20 20 20 20 needs..
01FD90: 74 6F 20 62 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 to be.......
01FDA0: 20 20 20 54 68 65 20 66 61 69 6C 75 72 65 20 72 The failure r
01FDB0: 65 74 75 72 6E 20 66 72 6F 6D 20 74 68 69 73 20 eturn from this
01FDC0: 72 6F 75 74 69 6E 65 20 20 63 61 6E 20 20 6F 63 routine can oc
01FDD0: 63 75 72 20 20 66 6F 72 20 20 74 68 72 65 65 20 cur for three
01FDE0: 20 72 65 61 73 6F 6E 73 2E 0D 0A 20 20 20 20 20 reasons...
01FDF0: 20 20 46 69 72 73 74 6C 79 2C 20 74 68 65 20 63 Firstly, the c
01FE00: 75 72 72 65 6E 74 20 67 72 61 70 68 69 63 73 20 urrent graphics
01FE10: 70 6F 73 69 74 69 6F 6E 20 20 6D 61 79 20 20 62 position may b
01FE20: 65 20 20 6F 75 74 73 69 64 65 20 20 74 68 65 20 e outside the
01FE30: 20 77 69 6E 64 6F 77 2E 0D 0A 20 20 20 20 20 20 window...
01FE40: 20 53 65 63 6F 6E 64 6C 79 2C 20 74 68 65 20 70 Secondly, the p
01FE50: 69 78 65 6C 20 61 74 20 74 68 65 20 63 75 72 72 ixel at the curr
01FE60: 65 6E 74 20 67 72 61 70 68 69 63 73 20 70 6F 73 ent graphics pos
01FE70: 69 74 69 6F 6E 20 6D 61 79 20 62 65 20 65 64 67 ition may be edg
01FE80: 65 20 20 28 70 65 6E 0D 0A 20 20 20 20 20 20 20 e (pen..
01FE90: 6F 72 20 66 69 6C 6C 20 69 6E 6B 29 2E 20 49 6E or fill ink). In
01FEA0: 20 74 68 65 73 65 20 63 61 73 65 73 20 74 68 65 these cases the
01FEB0: 20 72 6F 75 74 69 6E 65 20 77 69 6C 6C 20 72 65 routine will re
01FEC0: 74 75 72 6E 20 20 77 69 74 68 6F 75 74 20 20 66 turn without f
01FED0: 69 6C 6C 69 6E 67 0D 0A 20 20 20 20 20 20 20 61 illing.. a
01FEE0: 6E 79 74 68 69 6E 67 2E 20 54 68 69 72 64 6C 79 nything. Thirdly
01FEF0: 20 74 68 65 20 61 6C 67 6F 72 69 74 68 6D 20 6D the algorithm m
01FF00: 61 79 20 65 78 68 61 75 73 74 20 74 68 65 20 20 ay exhaust the
01FF10: 27 69 6E 74 65 72 65 73 74 69 6E 67 20 20 70 6F 'interesting po
01FF20: 69 6E 74 27 0D 0A 20 20 20 20 20 20 20 62 75 66 int'.. buf
01FF30: 66 65 72 20 69 6E 20 77 68 69 63 68 20 63 61 73 fer in which cas
01FF40: 65 20 73 6F 6D 65 20 70 6F 72 74 69 6F 6E 20 6F e some portion o
01FF50: 66 20 74 68 65 20 61 72 65 61 20 77 69 6C 6C 20 f the area will
01FF60: 6E 6F 74 20 62 65 20 66 69 6C 6C 65 64 2E 0D 0A not be filled...
01FF70: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 ........ R
01FF80: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
01FF90: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 ..... GRA
01FFA0: 53 45 54 20 50 45 4E 0D 0A 0D 0A 0D 0A 0D 0A 0D SET PEN.........
01FFB0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01FFC0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01FFD0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01FFE0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01FFF0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
020000: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
020010: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
020020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020030: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
020040: 31 35 2E 32 33 38 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.238..........
020050: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 39 39 3A 20 .... 199:
020060: 53 43 52 20 53 45 54 20 50 4F 53 49 54 49 4F 4E SCR SET POSITION
020070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020090: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 44 35 #BD5
0200A0: 35 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 5...... Se
0200B0: 74 20 74 68 65 20 6C 6F 63 61 74 69 6F 6E 20 6F t the location o
0200C0: 66 20 74 68 65 20 73 63 72 65 65 6E 20 6D 65 6D f the screen mem
0200D0: 6F 72 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ory.......
0200E0: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 Action:......
0200F0: 20 20 20 20 20 54 65 6C 6C 20 74 68 65 20 53 63 Tell the Sc
020100: 72 65 65 6E 20 70 61 63 6B 20 74 68 65 20 73 63 reen pack the sc
020110: 72 65 65 6E 20 62 61 73 65 20 61 6E 64 20 74 68 reen base and th
020120: 65 20 20 6F 66 66 73 65 74 20 20 77 69 74 68 6F e offset witho
020130: 75 74 20 20 74 65 6C 6C 69 6E 67 0D 0A 20 20 20 ut telling..
020140: 20 20 20 20 74 68 65 20 68 61 72 64 77 61 72 65 the hardware
020150: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ....... En
020160: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
020170: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 6F ..... A co
020180: 6E 74 61 69 6E 73 20 74 68 65 20 73 63 72 65 65 ntains the scree
020190: 6E 20 62 61 73 65 2E 0D 0A 20 20 20 20 20 20 20 n base...
0201A0: 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 HL contains the
0201B0: 73 63 72 65 65 6E 20 6F 66 66 73 65 74 2E 0D 0A screen offset...
0201C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
0201D0: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
0201E0: 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 . A contai
0201F0: 6E 73 20 74 68 65 20 73 63 72 65 65 6E 20 62 61 ns the screen ba
020200: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
020210: 1B 00 00 00 02 09 50 E5 1B 00 C1 02 00 00 00 02 ......P.........
020220: 1B 00 C2 02 00 00 00 02 1B 00 C3 02 00 00 00 02 ................
020230: 1B 00 C4 02 00 00 00 02 1B 00 C5 02 00 00 00 02 ................
020240: 1B 00 C6 02 00 00 00 02 1B 00 C7 02 00 00 00 02 ................
020250: 1B 00 C8 02 00 00 00 02 1B 00 C9 02 00 00 00 02 ................
020260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020300: 73 65 20 6D 61 73 6B 65 64 20 61 73 20 72 65 71 se masked as req
020310: 75 69 72 65 64 2E 0D 0A 20 20 20 20 20 20 20 48 uired... H
020320: 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 L contains the s
020330: 63 72 65 65 6E 20 6F 66 66 73 65 74 20 6D 61 73 creen offset mas
020340: 6B 65 64 20 61 73 20 72 65 71 75 69 72 65 64 2E ked as required.
020350: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 6C 61 ...... Fla
020360: 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 gs corrupt...
020370: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
020380: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
020390: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E d....... N
0203A0: 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 otes:......
0203B0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 69 This routine i
0203C0: 73 20 6E 6F 74 20 61 76 61 69 6C 61 62 6C 65 20 s not available
0203D0: 6F 6E 20 56 31 2E 30 20 66 69 72 6D 77 61 72 65 on V1.0 firmware
0203E0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
0203F0: 69 73 20 72 6F 75 74 69 6E 65 20 63 68 61 6E 67 is routine chang
020400: 65 73 20 74 68 65 20 6C 6F 63 61 74 69 6F 6E 20 es the location
020410: 6F 66 20 74 68 65 20 73 63 72 65 65 6E 20 77 69 of the screen wi
020420: 74 68 6F 75 74 20 6E 6F 74 69 66 79 69 6E 67 20 thout notifying
020430: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 68 61 72 the.. har
020440: 64 77 61 72 65 20 6F 66 20 74 68 65 20 63 68 61 dware of the cha
020450: 6E 67 65 2E 20 54 68 69 73 20 65 66 66 65 63 74 nge. This effect
020460: 20 6D 61 79 20 62 65 20 75 73 65 64 20 74 6F 20 may be used to
020470: 63 6F 6E 73 74 72 75 63 74 20 61 20 20 73 65 63 construct a sec
020480: 6F 6E 64 0D 0A 20 20 20 20 20 20 20 73 63 72 65 ond.. scre
020490: 65 6E 20 6F 66 20 74 65 78 74 20 6F 72 20 67 72 en of text or gr
0204A0: 61 70 68 69 63 73 20 77 69 74 68 6F 75 74 20 63 aphics without c
0204B0: 6C 65 61 72 69 6E 67 20 74 68 65 20 70 72 65 76 learing the prev
0204C0: 69 6F 75 73 20 73 63 72 65 65 6E 2E 20 20 57 68 ious screen. Wh
0204D0: 65 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 20 6E en.. the n
0204E0: 65 77 20 73 63 72 65 65 6E 20 68 61 73 20 62 65 ew screen has be
0204F0: 65 6E 20 63 6F 6E 73 74 72 75 63 74 65 64 20 74 en constructed t
020500: 68 65 20 68 61 72 64 77 61 72 65 20 6D 61 79 20 he hardware may
020510: 62 65 20 20 6E 6F 74 69 66 69 65 64 20 20 61 6E be notified an
020520: 64 0D 0A 20 20 20 20 20 20 20 74 68 65 20 70 69 d.. the pi
020530: 63 74 75 72 65 20 77 69 6C 6C 20 61 70 70 65 61 cture will appea
020540: 72 20 69 6E 73 74 61 6E 74 6C 79 2E 0D 0A 0D 0A r instantly.....
020550: 20 20 20 20 20 20 20 49 6E 20 67 65 6E 65 72 61 In genera
020560: 6C 20 74 68 65 20 75 73 65 72 20 69 73 20 61 64 l the user is ad
020570: 76 69 73 65 64 20 74 6F 20 73 65 74 20 74 68 65 vised to set the
020580: 20 62 61 73 65 20 75 73 69 6E 67 20 53 43 52 20 base using SCR
020590: 53 45 54 20 42 41 53 45 20 20 61 6E 64 0D 0A 20 SET BASE and..
0205A0: 20 20 20 20 20 20 74 68 65 20 6F 66 66 73 65 74 the offset
0205B0: 20 75 73 69 6E 67 20 53 43 52 20 53 45 54 20 4F using SCR SET O
0205C0: 46 46 53 45 54 2E 0D 0A 0D 0A 20 20 20 20 20 20 FFSET.....
0205D0: 20 54 68 65 20 73 63 72 65 65 6E 20 62 61 73 65 The screen base
0205E0: 20 69 73 20 6D 61 73 6B 65 64 20 77 69 74 68 20 is masked with
0205F0: 23 43 30 20 61 6E 64 20 74 68 65 20 73 63 72 65 #C0 and the scre
020600: 65 6E 20 6F 66 66 73 65 74 20 77 69 74 68 20 23 en offset with #
020610: 30 37 46 45 20 74 6F 0D 0A 20 20 20 20 20 20 20 07FE to..
020620: 6D 61 6B 65 20 74 68 65 20 76 61 6C 75 65 73 20 make the values
020630: 6C 65 67 61 6C 2E 0D 0A 0D 0A 20 20 20 20 20 20 legal.....
020640: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
020650: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 43 52 20 :.... SCR
020660: 47 45 54 20 4C 4F 43 41 54 49 4F 4E 0D 0A 20 20 GET LOCATION..
020670: 20 20 20 20 20 53 43 52 20 53 45 54 20 42 41 53 SCR SET BAS
020680: 45 0D 0A 20 20 20 20 20 20 20 53 43 52 20 53 45 E.. SCR SE
020690: 54 20 4F 46 46 53 45 54 0D 0A 0D 0A 0D 0A 0D 0A T OFFSET........
0206A0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
0206B0: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
0206C0: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
0206D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0206E0: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 33 page 15.23
0206F0: 39 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 9..............
020700: 20 20 20 20 20 20 32 30 30 3A 20 4D 43 20 50 52 200: MC PR
020710: 49 4E 54 20 54 52 41 4E 53 4C 41 54 49 4F 4E 20 INT TRANSLATION
020720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020740: 20 20 20 20 20 20 20 23 42 44 35 38 0D 0A 0D 0A #BD58....
020750: 20 20 20 20 20 20 20 53 65 74 20 74 68 65 20 70 Set the p
020760: 72 69 6E 74 65 72 20 74 72 61 6E 73 6C 61 74 69 rinter translati
020770: 6F 6E 20 74 61 62 6C 65 2E 0D 0A 0D 0A 20 20 20 on table.....
020780: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 Action:....
020790: 20 20 20 20 20 20 53 65 74 20 68 6F 77 20 63 68 Set how ch
0207A0: 61 72 61 63 74 65 72 73 20 61 72 65 20 74 6F 20 aracters are to
0207B0: 62 65 20 20 74 72 61 6E 73 6C 61 74 65 64 20 20 be translated
0207C0: 62 65 66 6F 72 65 20 20 62 65 69 6E 67 20 20 73 before being s
0207D0: 65 6E 74 20 20 74 6F 20 20 74 68 65 0D 0A 20 20 ent to the..
0207E0: 20 20 20 20 20 70 72 69 6E 74 65 72 2E 0D 0A 0D printer....
0207F0: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
020800: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
020810: 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 HL contains
020820: 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 the address of t
020830: 68 65 20 74 61 62 6C 65 2E 0D 0A 0D 0A 0D 0A 0D he table........
020840: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
020850: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
020860: 20 20 20 49 66 20 74 68 65 20 74 61 62 6C 65 20 If the table
020870: 69 73 20 74 6F 6F 20 6C 6F 6E 67 20 28 6D 6F 72 is too long (mor
020880: 65 20 74 68 61 6E 20 32 30 20 65 6E 74 72 69 65 e than 20 entrie
020890: 73 29 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 s):....
0208A0: 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C Carry fal
0208B0: 73 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 se..... If
0208C0: 20 74 68 65 20 74 61 62 6C 65 20 69 73 20 4F 4B the table is OK
0208D0: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 :....
0208E0: 20 20 20 20 20 43 61 72 72 79 20 74 72 75 65 2E Carry true.
0208F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 79 .... Alway
020900: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s:....
020910: 20 20 20 20 20 20 41 2C 20 42 43 2C 20 44 45 2C A, BC, DE,
020920: 20 48 4C 20 61 6E 64 20 6F 74 68 65 72 20 66 6C HL and other fl
020930: 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 ags corrupt...
020940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 6C Al
020950: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
020960: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
020970: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
020980: 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 . This rou
020990: 74 69 6E 65 20 69 73 20 6E 6F 74 20 61 76 61 69 tine is not avai
0209A0: 6C 61 62 6C 65 20 6F 6E 20 56 31 2E 30 20 66 69 lable on V1.0 fi
0209B0: 72 6D 77 61 72 65 2E 0D 0A 0D 0A 20 20 20 20 20 rmware.....
0209C0: 20 20 54 68 65 20 73 75 70 70 6C 69 65 64 20 74 The supplied t
0209D0: 72 61 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 ranslation table
0209E0: 20 6D 61 79 20 6C 69 65 20 61 6E 79 77 68 65 72 may lie anywher
0209F0: 65 20 69 6E 20 52 41 4D 2E 20 20 54 68 69 73 20 e in RAM. This
020A00: 20 72 6F 75 74 69 6E 65 0D 0A 20 20 20 20 20 20 routine..
020A10: 20 63 6F 70 69 65 73 20 74 68 65 20 74 61 62 6C copies the tabl
020A20: 65 20 61 6E 64 20 73 6F 20 74 68 65 20 6D 65 6D e and so the mem
020A30: 6F 72 79 20 6D 61 79 20 62 65 20 72 65 2D 75 73 ory may be re-us
020A40: 65 64 20 69 66 20 72 65 71 75 69 72 65 64 2E 0D ed if required..
020A50: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 6F ... The fo
020A60: 72 6D 61 74 20 6F 66 20 74 68 65 20 74 61 62 6C rmat of the tabl
020A70: 65 20 69 73 20 61 73 20 66 6F 6C 6C 6F 77 73 3A e is as follows:
020A80: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
020A90: 20 20 20 20 42 79 74 65 20 30 3A 20 20 20 20 20 Byte 0:
020AA0: 20 20 20 20 20 20 20 20 4E 75 6D 62 65 72 20 6F Number o
020AB0: 66 20 65 6E 74 72 69 65 73 20 69 6E 20 74 68 65 f entries in the
020AC0: 20 74 61 62 6C 65 20 28 4E 29 2E 0D 0A 20 20 20 table (N)...
020AD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 Byt
020AE0: 65 73 20 31 2C 32 3A 20 20 20 20 20 20 20 20 20 es 1,2:
020AF0: 20 45 6E 74 72 79 20 31 0D 0A 20 20 20 20 20 20 Entry 1..
020B00: 20 20 20 20 20 20 20 20 20 20 2E 2E 2E 20 20 20 ...
020B10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2E 2E ..
020B20: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
020B30: 20 20 20 42 79 74 65 73 20 32 4E 2D 31 2C 32 4E Bytes 2N-1,2N
020B40: 3A 20 20 20 20 20 20 45 6E 74 72 79 20 4E 0D 0A : Entry N..
020B50: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 6F 72 .. The for
020B60: 6D 61 74 20 6F 66 20 65 61 63 68 20 74 77 6F 20 mat of each two
020B70: 62 79 74 65 20 65 6E 74 72 79 20 69 73 20 61 73 byte entry is as
020B80: 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 20 20 follows:....
020B90: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 Byt
020BA0: 65 20 30 3A 20 20 20 20 20 20 20 20 20 20 20 20 e 0:
020BB0: 20 43 68 61 72 61 63 74 65 72 20 74 6F 20 62 65 Character to be
020BC0: 20 74 72 61 6E 73 6C 61 74 65 64 2E 0D 0A 20 20 translated...
020BD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 79 By
020BE0: 74 65 20 31 3A 20 20 20 20 20 20 20 20 20 20 20 te 1:
020BF0: 20 20 43 68 61 72 61 63 74 65 72 20 74 6F 20 74 Character to t
020C00: 72 61 6E 73 6C 61 74 65 20 74 6F 2E 0D 0A 0D 0A ranslate to.....
020C10: 20 20 20 20 20 20 20 49 66 20 74 68 65 20 63 68 If the ch
020C20: 61 72 61 63 74 65 72 20 74 6F 20 74 72 61 6E 73 aracter to trans
020C30: 6C 61 74 65 20 74 6F 20 69 73 20 23 46 46 20 74 late to is #FF t
020C40: 68 65 6E 20 74 68 65 20 63 68 61 72 61 63 74 65 hen the characte
020C50: 72 20 69 73 20 20 69 67 6E 6F 72 65 64 0D 0A 20 r is ignored..
020C60: 20 20 20 20 20 20 61 6E 64 20 6E 6F 74 68 69 6E and nothin
020C70: 67 20 69 73 20 73 65 6E 74 20 74 6F 20 74 68 65 g is sent to the
020C80: 20 70 72 69 6E 74 65 72 2E 0D 0A 20 20 20 20 20 printer...
020C90: 20 20 54 72 61 6E 73 6C 61 74 69 6F 6E 20 6F 66 Translation of
020CA0: 20 63 68 61 72 61 63 74 65 72 73 20 62 79 20 74 characters by t
020CB0: 68 65 20 70 72 69 6E 74 65 72 20 64 72 69 76 65 he printer drive
020CC0: 72 20 20 6F 63 63 75 72 73 20 20 69 6E 20 20 4D r occurs in M
020CD0: 43 20 20 50 52 49 4E 54 0D 0A 20 20 20 20 20 20 C PRINT..
020CE0: 20 43 48 41 52 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A CHAR...........
020CF0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
020D00: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
020D10: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
020D20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020D30: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 34 page 15.24
020D40: 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 0..............
020D50: 20 20 20 20 20 20 54 68 65 20 64 65 66 61 75 6C The defaul
020D60: 74 20 74 72 61 6E 73 6C 61 74 69 6F 6E 20 74 61 t translation ta
020D70: 62 6C 65 20 69 73 20 73 65 74 20 20 75 70 20 20 ble is set up
020D80: 77 68 65 6E 20 20 4D 43 20 20 52 45 53 45 54 20 when MC RESET
020D90: 20 50 52 49 4E 54 45 52 20 20 69 73 0D 0A 20 20 PRINTER is..
020DA0: 20 20 20 20 20 63 61 6C 6C 65 64 2E 20 54 68 65 called. The
020DB0: 20 64 65 66 61 75 6C 74 20 74 61 62 6C 65 20 69 default table i
020DC0: 73 20 64 65 73 69 67 6E 65 64 20 74 6F 20 64 72 s designed to dr
020DD0: 69 76 65 20 74 68 65 20 44 4D 50 2D 31 20 70 72 ive the DMP-1 pr
020DE0: 69 6E 74 65 72 20 20 28 73 65 65 0D 0A 20 20 20 inter (see..
020DF0: 20 20 20 20 41 70 70 65 6E 64 69 78 20 58 49 56 Appendix XIV
020E00: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C )..... Rel
020E10: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
020E20: 0A 20 20 20 20 20 20 20 4D 43 20 50 52 49 4E 54 . MC PRINT
020E30: 20 43 48 41 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D CHAR...........
020E40: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
020E50: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
020E60: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
020E70: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
020E80: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
020E90: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ...............
020EA0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
020EB0: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
020EC0: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
020ED0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020EE0: 20 70 61 67 65 20 31 35 2E 32 34 31 0D 0A 0D 0A page 15.241....
020EF0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
020F00: 20 32 30 31 3A 20 4B 4C 20 42 41 4E 4B 20 53 57 201: KL BANK SW
020F10: 49 54 43 48 20 20 20 20 20 20 20 20 20 20 20 20 ITCH
020F20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020F30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020F40: 20 20 23 42 44 35 42 0D 0A 0D 0A 0D 0A 20 20 20 #BD5B......
020F50: 20 20 20 20 53 65 6C 65 63 74 20 61 20 6D 65 6D Select a mem
020F60: 6F 72 79 20 6F 72 67 61 6E 69 7A 61 74 69 6F 6E ory organization
020F70: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 ....... Ac
020F80: 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tion:......
020F90: 20 20 53 65 74 20 77 68 69 63 68 20 52 41 4D 20 Set which RAM
020FA0: 62 61 6E 6B 73 20 61 72 65 20 73 77 69 74 63 68 banks are switch
020FB0: 65 64 20 69 6E 74 6F 20 74 68 65 20 36 34 4B 20 ed into the 64K
020FC0: 6F 66 20 20 52 41 4D 20 20 69 6E 20 20 74 68 65 of RAM in the
020FD0: 20 20 6D 65 6D 6F 72 79 0D 0A 20 20 20 20 20 20 memory..
020FE0: 20 6D 61 70 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 map.......
020FF0: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
021000: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
021010: 41 20 63 6F 6E 74 61 69 6E 73 20 6E 65 77 20 6F A contains new o
021020: 72 67 61 6E 69 7A 61 74 69 6F 6E 2E 0D 0A 0D 0A rganization.....
021030: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
021040: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
021050: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
021060: 20 6F 6C 64 20 6F 72 67 61 6E 69 7A 61 74 69 6F old organizatio
021070: 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 n....... F
021080: 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 lags corrupt...
021090: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
0210A0: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
0210B0: 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ved.......
0210C0: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 Notes:......
0210D0: 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 This routine
0210E0: 20 69 73 20 6F 6E 6C 79 20 61 76 61 69 6C 61 62 is only availab
0210F0: 6C 65 20 6F 6E 20 74 68 65 20 43 50 43 36 31 32 le on the CPC612
021100: 38 20 20 28 69 2E 65 2E 20 20 56 31 2E 32 20 20 8 (i.e. V1.2
021110: 66 69 72 6D 77 61 72 65 29 2E 0D 0A 20 20 20 20 firmware)...
021120: 20 20 20 54 68 65 20 6D 65 6D 6F 72 79 20 6F 72 The memory or
021130: 67 61 6E 69 7A 61 74 69 6F 6E 73 20 61 6E 64 20 ganizations and
021140: 62 61 6E 6B 20 73 77 69 74 63 68 69 6E 67 20 20 bank switching
021150: 61 72 65 20 20 64 69 73 63 75 73 73 65 64 20 20 are discussed
021160: 66 75 6C 6C 79 20 20 69 6E 0D 0A 20 20 20 20 20 fully in..
021170: 20 20 73 65 63 74 69 6F 6E 20 32 2E 35 2E 0D 0A section 2.5...
021180: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 74 20 69 73 .... It is
021190: 20 69 6E 61 64 76 69 73 61 62 6C 65 20 74 6F 20 inadvisable to
0211A0: 62 61 6E 6B 20 73 77 69 74 63 68 20 74 6F 20 61 bank switch to a
0211B0: 20 6D 65 6D 6F 72 79 20 20 6F 72 67 61 6E 69 7A memory organiz
0211C0: 61 74 69 6F 6E 20 20 77 68 65 72 65 20 20 74 68 ation where th
0211D0: 65 0D 0A 20 20 20 20 20 20 20 63 6F 64 65 20 74 e.. code t
0211E0: 68 61 74 20 69 73 20 62 65 69 6E 67 20 65 78 65 hat is being exe
0211F0: 63 75 74 65 64 2C 20 6F 72 20 73 74 61 63 6B 20 cuted, or stack
021200: 61 72 65 20 69 6E 61 63 63 65 73 73 69 62 6C 65 are inaccessible
021210: 21 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 !........
021220: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
021230: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4C 20 ...... KL
021240: 4C 20 52 4F 4D 20 44 49 53 41 42 4C 45 0D 0A 20 L ROM DISABLE..
021250: 20 20 20 20 20 20 4B 4C 20 4C 20 52 4F 4D 20 45 KL L ROM E
021260: 4E 41 42 4C 45 0D 0A 20 20 20 20 20 20 20 4B 4C NABLE.. KL
021270: 20 52 4F 4D 20 53 45 4C 45 43 54 0D 0A 20 20 20 ROM SELECT..
021280: 20 20 20 20 4B 4C 20 55 20 52 4F 4D 20 44 49 53 KL U ROM DIS
021290: 41 42 4C 45 0D 0A 20 20 20 20 20 20 20 4B 4C 20 ABLE.. KL
0212A0: 55 20 52 4F 4D 20 45 4E 41 42 4C 45 0D 0A 0D 0A U ROM ENABLE....
0212B0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0212C0: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
0212D0: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
0212E0: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
0212F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
021300: 20 20 70 61 67 65 20 31 35 2E 32 34 32 0D 0A 1A page 15.242...
021310: 20 20 20 31 38 35 3A 20 4D 43 20 50 52 49 4E 54 185: MC PRINT
021320: 20 43 48 41 52 20 20 20 20 20 20 20 20 20 20 20 CHAR
021330: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
021340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
021350: 20 20 20 20 23 42 44 32 42 0D 0A 0D 0A 20 20 20 #BD2B....
021360: 20 20 20 20 54 72 79 20 74 6F 20 73 65 6E 64 20 Try to send
021370: 61 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 74 a character to t
021380: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 74 20 69 73 .... It is
021390: 20 69 6E 61 64 76 69 73 61 62 6C 65 20 74 6F 20 inadvisable to
0213A0: 62 61 6E 6B 20 73 77 69 74 63 68 20 74 6F 20 61 bank switch to a
0213B0: 20 6D 65 6D 6F 72 79 20 20 6F 72 67 61 6E 69 7A memory organiz
0213C0: 61 74 69 6F 6E 20 20 77 68 65 72 65 20 20 74 68 ation where th
0213D0: 65 0D 0A 20 20 20 20 20 20 20 63 6F 64 65 20 74 e.. code t
0213E0: 68 61 74 20 69 73 20 62 65 69 6E 67 20 65 78 65 hat is being exe
0213F0: 63 75 74 65 64 2C 20 6F 72 20 73 74 61 63 6B 20 cuted, or stack
021400: 61 72 65 20 69 6E 61 63 63 65 73 73 69 62 6C 65 are inaccessible
021410: 21 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 !........
021420: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
021430: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4C 20 ...... KL
021440: 4C 20 52 4F 4D 20 44 49 53 41 42 4C 45 0D 0A 20 L ROM DISABLE..
021450: 20 20 20 20 20 20 4B 4C 20 4C 20 52 4F 4D 20 45 KL L ROM E
021460: 4E 41 42 4C 45 0D 0A 20 20 20 20 20 20 20 4B 4C NABLE.. KL
021470: 20 52 4F 4D 20 53 45 4C 45 43 54 0D 0A 20 20 20 ROM SELECT..
021480: 20 20 20 20 4B 4C 20 55 20 52 4F 4D 20 44 49 53 KL U ROM DIS
021490: 41 42 4C 45 0D 0A 20 20 20 20 20 20 20 4B 4C 20 ABLE.. KL
0214A0: 55 20 52 4F 4D 20 45 4E 41 42 4C 45 0D 0A 0D 0A U ROM ENABLE....
0214B0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0214C0: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
0214D0: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
0214E0: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
0214F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
021500: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
021510: 1C 00 00 00 02 09 50 E5 1C 00 C1 02 00 00 00 02 ......P.........
021520: 1C 00 C2 02 00 00 00 02 1C 00 C3 02 00 00 00 02 ................
021530: 1C 00 C4 02 00 00 00 02 1C 00 C5 02 00 00 00 02 ................
021540: 1C 00 C6 02 00 00 00 02 1C 00 C7 02 00 00 00 02 ................
021550: 1C 00 C8 02 00 00 00 02 1C 00 C9 02 00 00 00 02 ................
021560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021600: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
021610: 36 20 54 68 65 20 46 69 72 6D 77 61 72 65 20 49 6 The Firmware I
021620: 6E 64 69 72 65 63 74 69 6F 6E 73 2E 0D 0A 0D 0A ndirections.....
021630: 20 20 20 20 20 20 20 54 68 69 73 20 73 65 63 74 This sect
021640: 69 6F 6E 20 67 69 76 65 73 20 74 68 65 20 64 65 ion gives the de
021650: 74 61 69 6C 65 64 20 65 6E 74 72 79 20 61 6E 64 tailed entry and
021660: 20 65 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 exit conditions
021670: 20 61 6E 64 20 20 65 66 66 65 63 74 73 0D 0A 20 and effects..
021680: 20 20 20 20 20 20 6F 66 20 74 68 65 20 72 6F 75 of the rou
021690: 74 69 6E 65 73 20 69 6E 20 74 68 65 20 69 6E 64 tines in the ind
0216A0: 69 72 65 63 74 69 6F 6E 73 20 6A 75 6D 70 62 6C irections jumpbl
0216B0: 6F 63 6B 2E 20 53 65 65 20 73 65 63 74 69 6F 6E ock. See section
0216C0: 20 31 34 2E 32 20 66 6F 72 20 20 61 0D 0A 20 20 14.2 for a..
0216D0: 20 20 20 20 20 6C 69 73 74 20 61 20 74 68 65 73 list a thes
0216E0: 65 20 72 6F 75 74 69 6E 65 73 2E 0D 0A 0D 0A 20 e routines.....
0216F0: 20 20 20 20 20 20 54 68 65 20 66 69 72 6D 77 61 The firmwa
021700: 72 65 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 20 re indirections
021710: 61 72 65 20 74 61 6B 65 6E 20 62 79 20 74 68 65 are taken by the
021720: 20 20 66 69 72 6D 77 61 72 65 20 20 61 74 20 20 firmware at
021730: 6B 65 79 20 20 70 6F 69 6E 74 73 2E 0D 0A 20 20 key points...
021740: 20 20 20 20 20 54 68 65 79 20 61 6C 6C 6F 77 20 They allow
021750: 74 68 65 20 75 73 65 72 20 74 6F 20 20 69 6E 74 the user to int
021760: 65 72 63 65 70 74 20 20 61 6E 64 20 20 61 6C 74 ercept and alt
021770: 65 72 20 20 61 20 20 6E 75 6D 62 65 72 20 20 6F er a number o
021780: 66 20 20 66 69 72 6D 77 61 72 65 0D 0A 20 20 20 f firmware..
021790: 20 20 20 20 61 63 74 69 6F 6E 73 20 77 69 74 68 actions with
0217A0: 6F 75 74 20 68 61 76 69 6E 67 20 74 6F 20 70 72 out having to pr
0217B0: 6F 76 69 64 65 20 61 20 63 6F 6D 70 6C 65 74 65 ovide a complete
0217C0: 20 6E 65 77 20 66 69 72 6D 77 61 72 65 20 70 61 new firmware pa
0217D0: 63 6B 61 67 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 ckage.......
0217E0: 20 20 20 54 68 65 20 20 64 65 73 63 72 69 70 74 The descript
0217F0: 69 6F 6E 73 20 20 67 69 76 65 6E 20 20 61 72 65 ions given are
021800: 20 20 66 6F 72 20 20 74 68 65 20 20 64 65 66 61 for the defa
021810: 75 6C 74 20 20 20 73 65 74 74 69 6E 67 73 20 20 ult settings
021820: 20 6F 66 20 20 20 74 68 65 0D 0A 20 20 20 20 20 of the..
021830: 20 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 2E 20 indirections.
021840: 52 65 70 6C 61 63 65 6D 65 6E 74 20 72 6F 75 74 Replacement rout
021850: 69 6E 65 73 20 6E 65 65 64 20 6E 6F 74 20 70 65 ines need not pe
021860: 72 66 6F 72 6D 20 20 61 6C 6C 20 20 74 68 65 20 rform all the
021870: 20 61 63 74 69 6F 6E 73 0D 0A 20 20 20 20 20 20 actions..
021880: 20 74 68 61 74 20 74 68 65 20 64 65 66 61 75 6C that the defaul
021890: 74 20 72 6F 75 74 69 6E 65 20 70 65 72 66 6F 72 t routine perfor
0218A0: 6D 73 20 61 6C 74 68 6F 75 67 68 20 74 68 65 79 ms although they
0218B0: 20 61 72 65 20 61 64 76 69 73 65 64 20 74 6F 20 are advised to
0218C0: 64 6F 20 73 6F 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A do so...........
0218D0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0218E0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0218F0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
021900: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
021910: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
021920: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
021930: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
021940: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
021950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
021960: 20 20 70 61 67 65 20 31 36 2E 31 0D 0A 0D 0A 0D page 16.1.....
021970: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
021980: 49 4E 44 3A 20 54 58 54 20 44 52 41 57 20 43 55 IND: TXT DRAW CU
021990: 52 53 4F 52 20 20 20 20 20 20 20 20 20 20 20 20 RSOR
0219A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0219B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0219C0: 20 23 42 44 43 44 0D 0A 0D 0A 0D 0A 20 20 20 20 #BDCD......
0219D0: 20 20 20 50 6C 61 63 65 20 74 68 65 20 63 75 72 Place the cur
0219E0: 73 6F 72 20 62 6C 6F 62 20 6F 6E 20 74 68 65 20 sor blob on the
0219F0: 73 63 72 65 65 6E 20 28 69 66 20 65 6E 61 62 6C screen (if enabl
021A00: 65 64 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ed).......
021A10: 20 44 65 66 61 75 6C 74 20 61 63 74 69 6F 6E 3A Default action:
021A20: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 ...... If
021A30: 74 68 65 20 63 75 72 73 6F 72 20 69 73 20 65 6E the cursor is en
021A40: 61 62 6C 65 64 20 61 6E 64 20 74 75 72 6E 65 64 abled and turned
021A50: 20 6F 6E 20 74 68 65 6E 20 74 68 65 20 63 75 72 on then the cur
021A60: 73 6F 72 20 62 6C 6F 62 20 20 69 73 20 20 64 72 sor blob is dr
021A70: 61 77 6E 0D 0A 20 20 20 20 20 20 20 6F 6E 20 74 awn.. on t
021A80: 68 65 20 73 63 72 65 65 6E 2E 20 49 66 20 6E 6F he screen. If no
021A90: 74 20 74 68 65 6E 20 20 6E 6F 20 20 61 63 74 69 t then no acti
021AA0: 6F 6E 20 20 69 73 20 20 74 61 6B 65 6E 2E 20 20 on is taken.
021AB0: 54 68 65 20 20 63 75 72 72 65 6E 74 20 20 74 65 The current te
021AC0: 78 74 0D 0A 20 20 20 20 20 20 20 70 6F 73 69 74 xt.. posit
021AD0: 69 6F 6E 20 69 73 20 66 6F 72 63 65 64 20 69 6E ion is forced in
021AE0: 74 6F 20 74 68 65 20 77 69 6E 64 6F 77 20 28 73 to the window (s
021AF0: 65 65 20 54 58 54 20 56 41 4C 49 44 41 54 45 29 ee TXT VALIDATE)
021B00: 20 61 6E 64 20 20 74 68 65 20 20 63 75 72 73 6F and the curso
021B10: 72 0D 0A 20 20 20 20 20 20 20 62 6C 6F 62 20 69 r.. blob i
021B20: 73 20 77 72 69 74 74 65 6E 20 61 74 20 74 68 65 s written at the
021B30: 20 72 65 73 75 6C 74 69 6E 67 20 20 70 6F 73 69 resulting posi
021B40: 74 69 6F 6E 2E 20 20 54 68 65 20 20 63 75 72 73 tion. The curs
021B50: 6F 72 20 20 62 6C 6F 62 20 20 69 73 20 20 61 6E or blob is an
021B60: 0D 0A 20 20 20 20 20 20 20 69 6E 76 65 72 73 65 .. inverse
021B70: 20 70 61 74 63 68 2E 20 54 68 69 73 20 72 6F 75 patch. This rou
021B80: 74 69 6E 65 20 77 69 6C 6C 20 6F 6E 6C 79 20 62 tine will only b
021B90: 65 20 63 61 6C 6C 65 64 20 74 77 69 63 65 20 20 e called twice
021BA0: 69 66 20 20 54 58 54 20 20 55 4E 44 52 41 57 0D if TXT UNDRAW.
021BB0: 0A 20 20 20 20 20 20 20 43 55 52 53 4F 52 20 69 . CURSOR i
021BC0: 73 20 63 61 6C 6C 65 64 20 69 6E 20 62 65 74 77 s called in betw
021BD0: 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 een.......
021BE0: 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E Entry condition
021BF0: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E s:...... N
021C00: 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D o conditions....
021C10: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
021C20: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
021C30: 20 20 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 AF corrup
021C40: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
021C50: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
021C60: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
021C70: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
021C80: 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 69 6E .. This in
021C90: 64 69 72 65 63 74 69 6F 6E 20 69 73 20 70 72 6F direction is pro
021CA0: 76 69 64 65 64 20 74 6F 20 61 6C 6C 6F 77 20 74 vided to allow t
021CB0: 68 65 20 75 73 65 72 20 74 6F 20 63 68 61 6E 67 he user to chang
021CC0: 65 20 74 68 65 20 20 66 6F 72 6D 20 20 6F 66 0D e the form of.
021CD0: 0A 20 20 20 20 20 20 20 74 68 65 20 63 75 72 73 . the curs
021CE0: 6F 72 20 62 6C 6F 62 2E 20 53 65 65 20 54 58 54 or blob. See TXT
021CF0: 20 50 4C 41 43 45 20 43 55 52 53 4F 52 20 66 6F PLACE CURSOR fo
021D00: 72 20 61 20 20 64 65 73 63 72 69 70 74 69 6F 6E r a description
021D10: 20 20 6F 66 20 20 68 6F 77 20 20 74 68 65 0D 0A of how the..
021D20: 20 20 20 20 20 20 20 63 75 72 73 6F 72 20 62 6C cursor bl
021D30: 6F 62 20 69 73 20 6E 6F 72 6D 61 6C 6C 79 20 77 ob is normally w
021D40: 72 69 74 74 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 ritten.......
021D50: 20 20 20 20 54 68 65 20 54 65 78 74 20 56 44 55 The Text VDU
021D60: 20 72 6F 75 74 69 6E 65 73 20 63 61 6C 6C 20 74 routines call t
021D70: 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 his indirection
021D80: 20 77 68 65 6E 65 76 65 72 20 20 74 68 65 20 20 whenever the
021D90: 63 75 72 73 6F 72 20 20 69 73 0D 0A 20 20 20 20 cursor is..
021DA0: 20 20 20 70 6C 61 63 65 64 20 6F 6E 20 74 68 65 placed on the
021DB0: 20 73 63 72 65 65 6E 2E 20 41 6C 6C 20 74 68 65 screen. All the
021DC0: 20 54 65 78 74 20 56 44 55 20 72 6F 75 74 69 6E Text VDU routin
021DD0: 65 73 20 20 74 68 61 74 20 20 72 65 61 64 20 20 es that read
021DE0: 66 72 6F 6D 20 20 74 68 65 0D 0A 20 20 20 20 20 from the..
021DF0: 20 20 73 63 72 65 65 6E 2C 20 77 72 69 74 65 20 screen, write
021E00: 74 6F 20 74 68 65 20 73 63 72 65 65 6E 20 6F 72 to the screen or
021E10: 20 63 68 61 6E 67 65 20 74 68 65 20 63 75 72 72 change the curr
021E20: 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 72 65 6D ent position rem
021E30: 6F 76 65 20 20 74 68 65 0D 0A 20 20 20 20 20 20 ove the..
021E40: 20 63 75 72 73 6F 72 20 28 75 73 69 6E 67 20 54 cursor (using T
021E50: 58 54 20 55 4E 44 52 41 57 20 43 55 52 53 4F 52 XT UNDRAW CURSOR
021E60: 29 20 62 65 66 6F 72 65 20 70 65 72 66 6F 72 6D ) before perform
021E70: 69 6E 67 20 20 74 68 65 69 72 20 20 61 63 74 69 ing their acti
021E80: 6F 6E 20 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 on and..
021E90: 70 6C 61 63 65 20 69 74 20 62 61 63 6B 20 6F 6E place it back on
021EA0: 20 74 68 65 20 73 63 72 65 65 6E 20 61 66 74 65 the screen afte
021EB0: 72 77 61 72 64 73 20 28 75 73 69 6E 67 20 20 54 rwards (using T
021EC0: 58 54 20 20 44 52 41 57 20 20 43 55 52 53 4F 52 XT DRAW CURSOR
021ED0: 29 2E 20 20 41 6E 0D 0A 20 20 20 20 20 20 20 65 ). An.. e
021EE0: 78 61 6D 70 6C 65 20 6F 66 20 73 75 63 68 20 61 xample of such a
021EF0: 20 72 6F 75 74 69 6E 65 20 69 73 20 54 58 54 20 routine is TXT
021F00: 57 52 20 43 48 41 52 20 74 68 61 74 20 77 72 69 WR CHAR that wri
021F10: 74 65 73 20 20 61 20 20 63 68 61 72 61 63 74 65 tes a characte
021F20: 72 20 20 6F 6E 0D 0A 20 20 20 20 20 20 20 74 68 r on.. th
021F30: 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 e screen.......
021F40: 20 20 20 20 20 20 54 68 69 73 20 69 6E 64 69 72 This indir
021F50: 65 63 74 69 6F 6E 20 69 73 20 73 65 74 20 75 70 ection is set up
021F60: 20 77 68 65 6E 20 54 58 54 20 49 4E 49 54 49 41 when TXT INITIA
021F70: 4C 49 53 45 20 6F 72 20 54 58 54 20 52 45 53 45 LISE or TXT RESE
021F80: 54 20 69 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A T is called.....
021F90: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
021FA0: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 ed entries:....
021FB0: 20 20 20 20 20 20 54 58 54 20 50 4C 41 43 45 20 TXT PLACE
021FC0: 43 55 52 53 4F 52 0D 0A 20 20 20 20 20 20 20 54 CURSOR.. T
021FD0: 58 54 20 55 4E 44 52 41 57 20 43 55 52 53 4F 52 XT UNDRAW CURSOR
021FE0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
021FF0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
022000: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
022010: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
022020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
022030: 67 65 20 31 36 2E 32 0D 0A 0D 0A 0D 0A 0D 0A 0D ge 16.2.........
022040: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 4E 44 3A ..... IND:
022050: 20 54 58 54 20 55 4E 44 52 41 57 20 43 55 52 53 TXT UNDRAW CURS
022060: 4F 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 OR
022070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022080: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 44 #BD
022090: 44 30 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 D0...... R
0220A0: 65 6D 6F 76 65 20 74 68 65 20 63 75 72 73 6F 72 emove the cursor
0220B0: 20 62 6C 6F 62 20 6F 6E 20 74 68 65 20 73 63 72 blob on the scr
0220C0: 65 65 6E 20 28 69 66 20 65 6E 61 62 6C 65 64 29 een (if enabled)
0220D0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 65 ....... De
0220E0: 66 61 75 6C 74 20 61 63 74 69 6F 6E 3A 0D 0A 0D fault action:...
0220F0: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
022100: 20 63 75 72 73 6F 72 20 69 73 20 65 6E 61 62 6C cursor is enabl
022110: 65 64 20 61 6E 64 20 74 75 72 6E 65 64 20 6F 6E ed and turned on
022120: 20 74 68 65 6E 20 74 68 65 20 63 75 72 73 6F 72 then the cursor
022130: 20 62 6C 6F 62 20 69 73 20 72 65 6D 6F 76 65 64 blob is removed
022140: 0D 0A 20 20 20 20 20 20 20 66 72 6F 6D 20 74 68 .. from th
022150: 65 20 73 63 72 65 65 6E 2E 20 49 66 20 6E 6F 74 e screen. If not
022160: 20 74 68 65 6E 20 6E 6F 20 61 63 74 69 6F 6E 20 then no action
022170: 69 73 20 74 61 6B 65 6E 2E 20 54 68 65 20 54 68 is taken. The Th
022180: 65 20 20 63 75 72 73 6F 72 20 20 62 6C 6F 62 0D e cursor blob.
022190: 0A 20 20 20 20 20 20 20 69 73 20 61 6E 20 69 6E . is an in
0221A0: 76 65 72 73 65 20 70 61 74 63 68 2E 20 54 68 69 verse patch. Thi
0221B0: 73 20 72 6F 75 74 69 6E 65 20 77 69 6C 6C 20 6F s routine will o
0221C0: 6E 6C 79 20 62 65 20 63 61 6C 6C 65 64 20 61 66 nly be called af
0221D0: 74 65 72 20 20 54 58 54 20 20 44 52 41 57 0D 0A ter TXT DRAW..
0221E0: 20 20 20 20 20 20 20 43 55 52 53 4F 52 20 68 61 CURSOR ha
0221F0: 73 20 62 65 65 6E 20 75 73 65 64 20 74 6F 20 70 s been used to p
022200: 6C 61 63 65 20 74 68 65 20 63 75 72 73 6F 72 20 lace the cursor
022210: 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A on the screen...
022220: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 .... Entry
022230: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
022240: 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 .. No cond
022250: 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 itions.......
022260: 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 Exit conditi
022270: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
022280: 20 41 46 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 AF corrupt...
022290: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
0222A0: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
0222B0: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
0222C0: 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 Notes:......
0222D0: 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 This indirect
0222E0: 69 6F 6E 20 69 73 20 70 72 6F 76 69 64 65 64 20 ion is provided
0222F0: 74 6F 20 61 6C 6C 6F 77 20 74 68 65 20 75 73 65 to allow the use
022300: 72 20 74 6F 20 63 68 61 6E 67 65 20 74 68 65 20 r to change the
022310: 20 66 6F 72 6D 20 20 6F 66 0D 0A 20 20 20 20 20 form of..
022320: 20 20 74 68 65 20 63 75 72 73 6F 72 20 62 6C 6F the cursor blo
022330: 62 2E 20 53 65 65 20 54 58 54 20 52 45 4D 4F 56 b. See TXT REMOV
022340: 45 20 43 55 52 53 4F 52 20 66 6F 72 20 61 20 64 E CURSOR for a d
022350: 65 73 63 72 69 70 74 69 6F 6E 20 20 6F 66 20 20 escription of
022360: 68 6F 77 20 20 74 68 65 0D 0A 20 20 20 20 20 20 how the..
022370: 20 63 75 72 73 6F 72 20 62 6C 6F 62 20 69 73 20 cursor blob is
022380: 6E 6F 72 6D 61 6C 6C 79 20 72 65 6D 6F 76 65 64 normally removed
022390: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
0223A0: 65 20 54 65 78 74 20 56 44 55 20 72 6F 75 74 69 e Text VDU routi
0223B0: 6E 65 73 20 63 61 6C 6C 20 74 68 69 73 20 69 6E nes call this in
0223C0: 64 69 72 65 63 74 69 6F 6E 20 74 6F 20 72 65 6D direction to rem
0223D0: 6F 76 65 20 74 68 65 20 63 75 72 73 6F 72 20 20 ove the cursor
0223E0: 66 72 6F 6D 0D 0A 20 20 20 20 20 20 20 74 68 65 from.. the
0223F0: 20 73 63 72 65 65 6E 2E 20 41 6C 6C 20 74 68 65 screen. All the
022400: 20 54 65 78 74 20 56 44 55 20 72 6F 75 74 69 6E Text VDU routin
022410: 65 73 20 74 68 61 74 20 72 65 61 64 20 66 72 6F es that read fro
022420: 6D 20 74 68 65 20 73 63 72 65 65 6E 2C 20 77 72 m the screen, wr
022430: 69 74 65 0D 0A 20 20 20 20 20 20 20 74 6F 20 74 ite.. to t
022440: 68 65 20 73 63 72 65 65 6E 20 6F 72 20 63 68 61 he screen or cha
022450: 6E 67 65 20 74 68 65 20 63 75 72 72 65 6E 74 20 nge the current
022460: 70 6F 73 69 74 69 6F 6E 20 72 65 6D 6F 76 65 20 position remove
022470: 74 68 65 20 63 75 72 73 6F 72 20 20 28 75 73 69 the cursor (usi
022480: 6E 67 0D 0A 20 20 20 20 20 20 20 54 58 54 20 55 ng.. TXT U
022490: 4E 44 52 41 57 20 43 55 52 53 4F 52 29 20 62 65 NDRAW CURSOR) be
0224A0: 66 6F 72 65 20 70 65 72 66 6F 72 6D 69 6E 67 20 fore performing
0224B0: 74 68 65 69 72 20 61 63 74 69 6F 6E 20 61 6E 64 their action and
0224C0: 20 70 6C 61 63 65 20 69 74 20 62 61 63 6B 20 6F place it back o
0224D0: 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 20 73 63 n.. the sc
0224E0: 72 65 65 6E 20 61 66 74 65 72 77 61 72 64 73 20 reen afterwards
0224F0: 28 75 73 69 6E 67 20 54 58 54 20 44 52 41 57 20 (using TXT DRAW
022500: 43 55 52 53 4F 52 29 2E 20 41 6E 20 65 78 61 6D CURSOR). An exam
022510: 70 6C 65 20 20 6F 66 20 20 73 75 63 68 20 20 61 ple of such a
022520: 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 6E 65 .. routine
022530: 20 69 73 20 54 58 54 20 57 52 20 43 48 41 52 20 is TXT WR CHAR
022540: 74 68 61 74 20 77 72 69 74 65 73 20 61 20 63 68 that writes a ch
022550: 61 72 61 63 74 65 72 20 6F 6E 20 74 68 65 20 73 aracter on the s
022560: 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 creen.......
022570: 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 This indirect
022580: 69 6F 6E 20 69 73 20 73 65 74 20 75 70 20 77 68 ion is set up wh
022590: 65 6E 20 54 58 54 20 49 4E 49 54 49 41 4C 49 53 en TXT INITIALIS
0225A0: 45 20 6F 72 20 54 58 54 20 52 45 53 45 54 20 69 E or TXT RESET i
0225B0: 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A 0D 0A 0D s called........
0225C0: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
0225D0: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
0225E0: 20 20 20 20 20 54 58 54 20 44 52 41 57 20 43 55 TXT DRAW CU
0225F0: 52 53 4F 52 0D 0A 20 20 20 20 20 20 20 54 58 54 RSOR.. TXT
022600: 20 52 45 4D 4F 56 45 20 43 55 52 53 4F 52 0D 0A REMOVE CURSOR..
022610: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
022620: 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 AMSTRAD CPC46
022630: 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 4/664/6128 FIRMW
022640: 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ARE
022650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022660: 70 61 67 65 20 31 36 2E 33 0D 0A 0D 0A 0D 0A 0D page 16.3.......
022670: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 4E ....... IN
022680: 44 3A 20 54 58 54 20 57 52 49 54 45 20 43 48 41 D: TXT WRITE CHA
022690: 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R
0226A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0226B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
0226C0: 42 44 44 33 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 BDD3......
0226D0: 20 57 72 69 74 65 20 61 20 63 68 61 72 61 63 74 Write a charact
0226E0: 65 72 20 6F 6E 74 6F 20 74 68 65 20 73 63 72 65 er onto the scre
0226F0: 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 en.......
022700: 44 65 66 61 75 6C 74 20 61 63 74 69 6F 6E 3A 0D Default action:.
022710: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 50 75 74 20 ..... Put
022720: 61 20 63 68 61 72 61 63 74 65 72 20 6F 6E 20 74 a character on t
022730: 68 65 20 73 63 72 65 65 6E 20 61 74 20 61 20 63 he screen at a c
022740: 68 61 72 61 63 74 65 72 20 70 6F 73 69 74 69 6F haracter positio
022750: 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 n....... E
022760: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
022770: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 ...... A c
022780: 6F 6E 74 61 69 6E 73 20 74 68 65 20 63 68 61 72 ontains the char
022790: 61 63 74 65 72 20 74 6F 20 77 72 69 74 65 2E 0D acter to write..
0227A0: 0A 20 20 20 20 20 20 20 48 20 63 6F 6E 74 61 69 . H contai
0227B0: 6E 73 20 74 68 65 20 70 68 79 73 69 63 61 6C 20 ns the physical
0227C0: 63 6F 6C 75 6D 6E 20 74 6F 20 77 72 69 74 65 20 column to write
0227D0: 61 74 2E 0D 0A 20 20 20 20 20 20 20 4C 20 63 6F at... L co
0227E0: 6E 74 61 69 6E 73 20 74 68 65 20 70 68 79 73 69 ntains the physi
0227F0: 63 61 6C 20 72 6F 77 20 74 6F 20 77 72 69 74 65 cal row to write
022800: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
022810: 1D 00 00 00 02 09 50 E5 1D 00 C1 02 00 00 00 02 ......P.........
022820: 1D 00 C2 02 00 00 00 02 1D 00 C3 02 00 00 00 02 ................
022830: 1D 00 C4 02 00 00 00 02 1D 00 C5 02 00 00 00 02 ................
022840: 1D 00 C6 02 00 00 00 02 1D 00 C7 02 00 00 00 02 ................
022850: 1D 00 C8 02 00 00 00 02 1D 00 C9 02 00 00 00 02 ................
022860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022900: 20 61 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 at.......
022910: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
022920: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
022930: 2C 20 42 43 2C 20 44 45 20 61 6E 64 20 48 4C 20 , BC, DE and HL
022940: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
022950: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
022960: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
022970: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
022980: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s:...... T
022990: 68 65 20 63 68 61 72 61 63 74 65 72 20 70 6F 73 he character pos
0229A0: 69 74 69 6F 6E 20 74 6F 20 77 72 69 74 65 20 61 ition to write a
0229B0: 74 20 69 73 20 67 69 76 65 6E 20 69 6E 20 20 70 t is given in p
0229C0: 68 79 73 69 63 61 6C 20 20 63 6F 6F 72 64 69 6E hysical coordin
0229D0: 61 74 65 73 2E 0D 0A 20 20 20 20 20 20 20 69 2E ates... i.
0229E0: 65 2E 20 52 6F 77 20 30 2C 20 63 6F 6C 75 6D 6E e. Row 0, column
0229F0: 20 30 20 69 73 20 20 74 68 65 20 20 74 6F 70 20 0 is the top
022A00: 20 6C 65 66 74 20 20 63 6F 72 6E 65 72 20 20 6F left corner o
022A10: 66 20 20 74 68 65 20 20 73 63 72 65 65 6E 2E 20 f the screen.
022A20: 20 54 68 65 0D 0A 20 20 20 20 20 20 20 70 6F 73 The.. pos
022A30: 69 74 69 6F 6E 20 69 73 20 6E 6F 74 20 63 68 65 ition is not che
022A40: 63 6B 65 64 20 66 6F 72 20 6C 65 67 61 6C 69 74 cked for legalit
022A50: 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 y....... T
022A60: 58 54 20 57 52 49 54 45 20 43 48 41 52 20 69 73 XT WRITE CHAR is
022A70: 20 63 61 6C 6C 65 64 20 62 79 20 54 58 54 20 57 called by TXT W
022A80: 52 20 43 48 41 52 20 74 6F 20 70 72 69 6E 74 20 R CHAR to print
022A90: 61 20 20 63 68 61 72 61 63 74 65 72 20 20 6F 6E a character on
022AA0: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 73 63 the.. sc
022AB0: 72 65 65 6E 2E 20 54 68 65 20 72 65 6D 6F 76 69 reen. The removi
022AC0: 6E 67 20 6F 66 20 74 68 65 20 63 75 72 73 6F 72 ng of the cursor
022AD0: 20 62 6C 6F 62 20 61 6E 64 20 74 68 65 20 63 61 blob and the ca
022AE0: 6C 63 75 6C 61 74 69 6F 6E 20 6F 66 20 74 68 65 lculation of the
022AF0: 20 6E 65 77 0D 0A 20 20 20 20 20 20 20 63 75 72 new.. cur
022B00: 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 61 72 rent position ar
022B10: 65 20 70 65 72 66 6F 72 6D 65 64 20 62 79 20 54 e performed by T
022B20: 58 54 20 57 52 20 43 48 41 52 20 61 6E 64 20 20 XT WR CHAR and
022B30: 6E 6F 74 20 20 62 79 20 20 54 58 54 20 20 57 52 not by TXT WR
022B40: 49 54 45 0D 0A 20 20 20 20 20 20 20 43 48 41 52 ITE.. CHAR
022B50: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
022B60: 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 is indirection i
022B70: 73 20 73 65 74 20 75 70 20 77 68 65 6E 20 54 58 s set up when TX
022B80: 54 20 49 4E 49 54 49 41 4C 49 53 45 20 6F 72 20 T INITIALISE or
022B90: 54 58 54 20 52 45 53 45 54 20 69 73 20 63 61 6C TXT RESET is cal
022BA0: 6C 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 led.........
022BB0: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
022BC0: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
022BD0: 54 58 54 20 4F 55 54 50 55 54 0D 0A 20 20 20 20 TXT OUTPUT..
022BE0: 20 20 20 54 58 54 20 55 4E 57 52 49 54 45 0D 0A TXT UNWRITE..
022BF0: 20 20 20 20 20 20 20 54 58 54 20 57 52 20 43 48 TXT WR CH
022C00: 41 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A AR..............
022C10: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
022C20: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
022C30: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
022C40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022C50: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 36 2E page 16.
022C60: 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 4..............
022C70: 20 20 20 20 20 20 49 4E 44 3A 20 54 58 54 20 55 IND: TXT U
022C80: 4E 57 52 49 54 45 20 20 20 20 20 20 20 20 20 20 NWRITE
022C90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022CA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022CB0: 20 20 20 20 20 20 20 23 42 44 44 36 0D 0A 0D 0A #BDD6....
022CC0: 20 20 20 20 20 20 20 52 65 61 64 20 61 20 63 68 Read a ch
022CD0: 61 72 61 63 74 65 72 20 66 72 6F 6D 20 74 68 65 aracter from the
022CE0: 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 20 20 20 20 screen.....
022CF0: 20 20 20 44 65 66 61 75 6C 74 20 61 63 74 69 6F Default actio
022D00: 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 72 79 n:.... Try
022D10: 20 74 6F 20 72 65 61 64 20 61 20 63 68 61 72 61 to read a chara
022D20: 63 74 65 72 20 66 72 6F 6D 20 74 68 65 20 73 63 cter from the sc
022D30: 72 65 65 6E 20 61 74 20 61 20 63 68 61 72 61 63 reen at a charac
022D40: 74 65 72 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D ter position....
022D50: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
022D60: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
022D70: 20 20 20 20 48 20 63 6F 6E 74 61 69 6E 73 20 74 H contains t
022D80: 68 65 20 70 68 79 73 69 63 61 6C 20 63 6F 6C 75 he physical colu
022D90: 6D 6E 20 74 6F 20 72 65 61 64 20 66 72 6F 6D 2E mn to read from.
022DA0: 0D 0A 20 20 20 20 20 20 20 4C 20 63 6F 6E 74 61 .. L conta
022DB0: 69 6E 73 20 74 68 65 20 70 68 79 73 69 63 61 6C ins the physical
022DC0: 20 72 6F 77 20 74 6F 20 72 65 61 64 20 66 72 6F row to read fro
022DD0: 6D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 m..... Exi
022DE0: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
022DF0: 0A 20 20 20 20 20 20 20 49 66 20 61 20 72 65 61 . If a rea
022E00: 64 61 62 6C 65 20 63 68 61 72 61 63 74 65 72 20 dable character
022E10: 77 61 73 20 66 6F 75 6E 64 3A 0D 0A 0D 0A 20 20 was found:....
022E20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 Ca
022E30: 72 72 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 rry true...
022E40: 20 20 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E A con
022E50: 74 61 69 6E 73 20 74 68 65 20 63 68 61 72 61 63 tains the charac
022E60: 74 65 72 20 72 65 61 64 2E 0D 0A 0D 0A 20 20 20 ter read.....
022E70: 20 20 20 20 49 66 20 6E 6F 20 72 65 63 6F 67 6E If no recogn
022E80: 69 73 61 62 6C 65 20 63 68 61 72 61 63 74 65 72 isable character
022E90: 20 77 61 73 20 66 6F 75 6E 64 3A 0D 0A 0D 0A 20 was found:....
022EA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
022EB0: 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 arry false...
022EC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 63 A c
022ED0: 6F 6E 74 61 69 6E 73 20 7A 65 72 6F 2E 0D 0A 0D ontains zero....
022EE0: 0A 20 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D . Always:.
022EF0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
022F00: 20 20 20 42 43 2C 20 44 45 2C 20 48 4C 20 61 6E BC, DE, HL an
022F10: 64 20 6F 74 68 65 72 20 66 6C 61 67 73 20 63 6F d other flags co
022F20: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 rrupt...
022F30: 20 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 All othe
022F40: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
022F50: 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 erved.....
022F60: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 Notes:....
022F70: 20 20 54 68 65 20 63 68 61 72 61 63 74 65 72 20 The character
022F80: 70 6F 73 69 74 69 6F 6E 20 74 6F 20 72 65 61 64 position to read
022F90: 20 66 72 6F 6D 20 69 73 20 67 69 76 65 6E 20 69 from is given i
022FA0: 6E 20 70 68 79 73 69 63 61 6C 20 20 63 6F 6F 72 n physical coor
022FB0: 64 69 6E 61 74 65 73 2E 0D 0A 20 20 20 20 20 20 dinates...
022FC0: 20 69 2E 65 2E 20 52 6F 77 20 30 2C 20 63 6F 6C i.e. Row 0, col
022FD0: 75 6D 6E 20 30 20 69 73 20 20 74 68 65 20 20 74 umn 0 is the t
022FE0: 6F 70 20 20 6C 65 66 74 20 20 63 6F 72 6E 65 72 op left corner
022FF0: 20 20 6F 66 20 20 74 68 65 20 20 73 63 72 65 65 of the scree
023000: 6E 2E 20 20 54 68 65 0D 0A 20 20 20 20 20 20 20 n. The..
023010: 70 6F 73 69 74 69 6F 6E 20 69 73 20 6E 6F 74 20 position is not
023020: 63 68 65 63 6B 65 64 20 66 6F 72 20 6C 65 67 61 checked for lega
023030: 6C 69 74 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 lity.....
023040: 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E This indirection
023050: 20 69 73 20 63 61 6C 6C 65 64 20 62 79 20 54 58 is called by TX
023060: 54 20 52 44 20 43 48 41 52 20 74 6F 20 72 65 61 T RD CHAR to rea
023070: 64 20 61 20 63 68 61 72 61 63 74 65 72 20 66 6F d a character fo
023080: 72 6D 20 74 68 65 0D 0A 20 20 20 20 20 20 20 73 rm the.. s
023090: 63 72 65 65 6E 2E 20 54 58 54 20 52 44 20 43 48 creen. TXT RD CH
0230A0: 41 52 20 72 65 6D 6F 76 65 73 20 74 68 65 20 63 AR removes the c
0230B0: 75 72 73 6F 72 20 66 72 6F 6D 20 74 68 65 20 73 ursor from the s
0230C0: 63 72 65 65 6E 20 62 65 66 6F 72 65 20 20 63 61 creen before ca
0230D0: 6C 6C 69 6E 67 0D 0A 20 20 20 20 20 20 20 74 68 lling.. th
0230E0: 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 2E 0D is indirection..
0230F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
023100: 72 65 61 64 20 69 73 20 70 65 72 66 6F 72 6D 65 read is performe
023110: 64 20 62 79 20 63 6F 6D 70 61 72 69 6E 67 20 74 d by comparing t
023120: 68 65 20 6D 61 74 72 69 78 20 66 6F 75 6E 64 20 he matrix found
023130: 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 77 69 on the screen wi
023140: 74 68 0D 0A 20 20 20 20 20 20 20 74 68 65 20 6D th.. the m
023150: 61 74 72 69 63 65 73 20 75 73 65 64 20 74 6F 20 atrices used to
023160: 67 65 6E 65 72 61 74 65 20 20 63 68 61 72 61 63 generate charac
023170: 74 65 72 73 2E 20 20 41 73 20 20 61 20 20 72 65 ters. As a re
023180: 73 75 6C 74 20 20 63 68 61 6E 67 69 6E 67 20 20 sult changing
023190: 61 0D 0A 20 20 20 20 20 20 20 63 68 61 72 61 63 a.. charac
0231A0: 74 65 72 20 6D 61 74 72 69 78 2C 20 63 68 61 6E ter matrix, chan
0231B0: 67 69 6E 67 20 74 68 65 20 70 65 6E 20 20 6F 72 ging the pen or
0231C0: 20 20 70 61 70 65 72 20 20 69 6E 6B 73 20 20 6F paper inks o
0231D0: 72 20 20 63 68 61 6E 67 69 6E 67 20 20 74 68 65 r changing the
0231E0: 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 .. screen
0231F0: 28 65 2E 67 2E 20 20 64 72 61 77 69 6E 67 20 20 (e.g. drawing
023200: 61 20 20 6C 69 6E 65 20 20 74 68 72 6F 75 67 68 a line through
023210: 20 20 61 20 20 63 68 61 72 61 63 74 65 72 29 20 a character)
023220: 20 6D 61 79 20 20 6D 61 6B 65 20 20 74 68 65 0D may make the.
023230: 0A 20 20 20 20 20 20 20 63 68 61 72 61 63 74 65 . characte
023240: 72 20 20 75 6E 72 65 61 64 61 62 6C 65 2E 20 20 r unreadable.
023250: 49 6E 20 20 70 61 72 74 69 63 75 6C 61 72 20 20 In particular
023260: 74 68 65 20 20 63 75 72 73 6F 72 20 20 62 6C 6F the cursor blo
023270: 62 20 20 77 69 6C 6C 20 20 63 61 75 73 65 0D 0A b will cause..
023280: 20 20 20 20 20 20 20 63 6F 6E 66 75 73 69 6F 6E confusion
023290: 20 61 6E 64 20 73 6F 20 73 68 6F 75 6C 64 20 6E and so should n
0232A0: 6F 74 20 62 65 20 6F 6E 20 74 68 65 20 73 63 72 ot be on the scr
0232B0: 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 een.......
0232C0: 20 53 70 65 63 69 61 6C 20 20 70 72 65 63 61 75 Special precau
0232D0: 74 69 6F 6E 73 20 20 61 72 65 20 20 74 61 6B 65 tions are take
0232E0: 6E 20 20 61 67 61 69 6E 73 74 20 20 67 65 6E 65 n against gene
0232F0: 72 61 74 69 6E 67 20 20 69 6E 76 65 72 73 65 20 rating inverse
023300: 20 20 73 70 61 63 65 0D 0A 20 20 20 20 20 20 20 space..
023310: 28 63 68 61 72 61 63 74 65 72 20 20 23 38 46 29 (character #8F)
023320: 2E 20 20 49 6E 69 74 69 61 6C 6C 79 20 20 74 68 . Initially th
023330: 65 20 20 63 68 61 72 61 63 74 65 72 20 20 69 73 e character is
023340: 20 20 72 65 61 64 20 20 61 73 73 75 6D 69 6E 67 read assuming
023350: 20 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 62 the.. b
023360: 61 63 6B 67 72 6F 75 6E 64 20 74 6F 20 74 68 65 ackground to the
023370: 20 63 68 61 72 61 63 74 65 72 20 77 61 73 20 77 character was w
023380: 72 69 74 74 65 6E 20 69 6E 20 74 68 65 20 63 75 ritten in the cu
023390: 72 72 65 6E 74 20 70 61 70 65 72 20 20 69 6E 6B rrent paper ink
0233A0: 2E 20 20 49 66 0D 0A 20 20 20 20 20 20 20 74 68 . If.. th
0233B0: 69 73 20 66 61 69 6C 73 20 74 6F 20 20 67 65 6E is fails to gen
0233C0: 65 72 61 74 65 20 20 61 20 20 72 65 63 6F 67 6E erate a recogn
0233D0: 69 73 61 62 6C 65 20 20 63 68 61 72 61 63 74 65 isable characte
0233E0: 72 20 20 6F 72 20 20 69 74 20 20 67 65 6E 65 72 r or it gener
0233F0: 61 74 65 73 0D 0A 20 20 20 20 20 20 20 69 6E 76 ates.. inv
023400: 65 72 73 65 20 73 70 61 63 65 20 74 68 65 6E 20 erse space then
023410: 61 6E 6F 74 68 65 72 20 74 72 79 20 69 73 20 6D another try is m
023420: 61 64 65 20 62 79 20 61 73 73 75 6D 69 6E 67 20 ade by assuming
023430: 74 68 61 74 20 74 68 65 20 20 63 68 61 72 61 63 that the charac
023440: 74 65 72 0D 0A 20 20 20 20 20 20 20 77 61 73 20 ter.. was
023450: 77 72 69 74 74 65 6E 20 69 6E 20 74 68 65 20 63 written in the c
023460: 75 72 72 65 6E 74 20 70 65 6E 20 69 6E 6B 2E 0D urrent pen ink..
023470: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
023480: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
023490: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
0234A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0234B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
0234C0: 65 20 31 36 2E 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A e 16.5..........
0234D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 63 .... The c
0234E0: 68 61 72 61 63 74 65 72 73 20 61 72 65 20 73 63 haracters are sc
0234F0: 61 6E 6E 65 64 20 73 74 61 72 74 69 6E 67 20 77 anned starting w
023500: 69 74 68 20 23 30 30 20 61 6E 64 20 66 69 6E 69 ith #00 and fini
023510: 73 68 69 6E 67 20 20 77 69 74 68 20 20 23 46 46 shing with #FF
023520: 2E 0D 0A 20 20 20 20 20 20 20 54 68 75 73 2C 20 ... Thus,
023530: 69 66 20 74 68 65 72 65 20 61 72 65 20 74 77 6F if there are two
023540: 20 70 6F 73 73 69 62 6C 65 20 20 63 68 61 72 61 possible chara
023550: 63 74 65 72 20 20 6D 61 74 72 69 63 65 73 20 20 cter matrices
023560: 74 68 61 74 20 20 6D 61 74 63 68 20 20 74 68 65 that match the
023570: 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E 2C .. screen,
023580: 20 74 68 65 20 73 6D 61 6C 6C 65 72 20 6F 66 20 the smaller of
023590: 74 68 65 20 74 77 6F 20 63 68 61 72 61 63 74 65 the two characte
0235A0: 72 20 6E 75 6D 62 65 72 73 20 77 69 6C 6C 20 62 r numbers will b
0235B0: 65 20 72 65 74 75 72 6E 65 64 2E 0D 0A 0D 0A 0D e returned......
0235C0: 0A 20 20 20 20 20 20 20 54 68 69 73 20 69 6E 64 . This ind
0235D0: 69 72 65 63 74 69 6F 6E 20 69 73 20 73 65 74 20 irection is set
0235E0: 75 70 20 77 68 65 6E 20 54 58 54 20 49 4E 49 54 up when TXT INIT
0235F0: 49 41 4C 49 53 45 20 6F 72 20 54 58 54 20 52 45 IALISE or TXT RE
023600: 53 45 54 20 69 73 20 63 61 6C 6C 65 64 2E 0D 0A SET is called...
023610: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
023620: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
023630: 0A 0D 0A 20 20 20 20 20 20 20 54 58 54 20 52 44 ... TXT RD
023640: 20 43 48 41 52 0D 0A 20 20 20 20 20 20 20 54 58 CHAR.. TX
023650: 54 20 57 52 49 54 45 20 43 48 41 52 0D 0A 0D 0A T WRITE CHAR....
023660: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
023670: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
023680: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
023690: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0236A0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0236B0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
0236C0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
0236D0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
0236E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0236F0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
023700: 20 31 36 2E 36 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 16.6...........
023710: 0A 0D 0A 20 20 20 20 20 20 20 49 4E 44 3A 20 54 ... IND: T
023720: 58 54 20 4F 55 54 20 41 43 54 49 4F 4E 20 20 20 XT OUT ACTION
023730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023750: 20 20 20 20 20 20 20 20 20 20 20 23 42 44 44 39 #BDD9
023760: 0D 0A 0D 0A 20 20 20 20 20 20 20 4F 75 74 70 75 .... Outpu
023770: 74 20 61 20 63 68 61 72 61 63 74 65 72 20 6F 72 t a character or
023780: 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 2E 0D 0A control code...
023790: 0D 0A 20 20 20 20 20 20 20 44 65 66 61 75 6C 74 .. Default
0237A0: 20 61 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 action:....
0237B0: 20 20 20 50 72 69 6E 74 20 61 20 63 68 61 72 61 Print a chara
0237C0: 63 74 65 72 20 6F 6E 20 74 68 65 20 73 63 72 65 cter on the scre
0237D0: 65 6E 20 6F 72 20 6F 62 65 79 20 61 20 63 6F 6E en or obey a con
0237E0: 74 72 6F 6C 20 63 6F 64 65 20 28 63 68 61 72 61 trol code (chara
0237F0: 63 74 65 72 20 23 30 30 2E 0D 0A 20 20 20 20 20 cter #00...
023800: 20 20 2E 23 31 46 29 2E 20 57 6F 72 6B 73 20 6F .#1F). Works o
023810: 6E 20 74 68 65 20 63 75 72 72 65 6E 74 6C 79 20 n the currently
023820: 73 65 6C 65 63 74 65 64 20 73 74 72 65 61 6D 20 selected stream
023830: 28 65 78 63 65 70 74 20 61 73 20 6E 6F 74 65 64 (except as noted
023840: 20 62 65 6C 6F 77 29 2E 0D 0A 0D 0A 20 20 20 20 below).....
023850: 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 Entry conditi
023860: 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ons:.... A
023870: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 63 68 contains the ch
023880: 61 72 61 63 74 65 72 20 6F 72 20 63 6F 64 65 2E aracter or code.
023890: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
0238A0: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
0238B0: 20 20 20 20 20 20 41 46 2C 20 42 43 2C 20 44 45 AF, BC, DE
0238C0: 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E and HL corrupt.
0238D0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
0238E0: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
0238F0: 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 served.....
023900: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 Notes:....
023910: 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 This indirect
023920: 69 6F 6E 20 69 73 20 63 61 6C 6C 65 64 20 62 79 ion is called by
023930: 20 54 58 54 20 4F 55 54 50 55 54 20 74 6F 20 64 TXT OUTPUT to d
023940: 6F 20 74 68 65 20 20 77 6F 72 6B 20 20 6F 66 20 o the work of
023950: 20 70 72 69 6E 74 69 6E 67 0D 0A 20 20 20 20 20 printing..
023960: 20 20 63 68 61 72 61 63 74 65 72 73 20 6F 72 20 characters or
023970: 6F 62 65 79 69 6E 67 20 74 68 65 20 63 6F 6E 74 obeying the cont
023980: 72 6F 6C 20 63 6F 64 65 73 2E 20 49 74 20 69 73 rol codes. It is
023990: 20 70 72 6F 76 69 64 65 64 20 74 6F 20 20 61 6C provided to al
0239A0: 6C 6F 77 20 20 74 68 65 0D 0A 20 20 20 20 20 20 low the..
0239B0: 20 75 73 65 72 20 74 6F 20 63 68 61 6E 67 65 20 user to change
0239C0: 74 68 65 20 6D 65 74 68 6F 64 20 6F 66 20 64 65 the method of de
0239D0: 61 6C 69 6E 67 20 77 69 74 68 20 63 68 61 72 61 aling with chara
0239E0: 63 74 65 72 73 20 61 6E 64 20 63 6F 6E 74 72 6F cters and contro
0239F0: 6C 20 63 6F 64 65 73 0D 0A 20 20 20 20 20 20 20 l codes..
023A00: 6F 72 20 74 6F 20 61 6C 6C 6F 77 20 74 68 65 20 or to allow the
023A10: 75 73 65 72 20 74 6F 20 72 65 64 69 72 65 63 74 user to redirect
023A20: 20 6F 75 74 70 75 74 20 28 74 6F 20 74 68 65 20 output (to the
023A30: 70 72 69 6E 74 65 72 20 66 6F 72 20 20 65 78 61 printer for exa
023A40: 6D 70 6C 65 29 2E 0D 0A 20 20 20 20 20 20 20 54 mple)... T
023A50: 58 54 20 4F 55 54 50 55 54 20 6D 65 72 65 6C 79 XT OUTPUT merely
023A60: 20 70 72 65 73 65 72 76 65 73 20 74 68 65 20 72 preserves the r
023A70: 65 67 69 73 74 65 72 73 20 61 72 6F 75 6E 64 20 egisters around
023A80: 74 68 65 20 63 61 6C 6C 20 6F 66 20 20 54 58 54 the call of TXT
023A90: 20 20 4F 55 54 0D 0A 20 20 20 20 20 20 20 41 43 OUT.. AC
023AA0: 54 49 4F 4E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 TION.....
023AB0: 43 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 20 6D 61 Control codes ma
023AC0: 79 20 74 61 6B 65 20 75 70 20 74 6F 20 39 20 70 y take up to 9 p
023AD0: 61 72 61 6D 65 74 65 72 73 2E 20 54 68 65 73 65 arameters. These
023AE0: 20 20 61 72 65 20 20 74 68 65 20 20 63 68 61 72 are the char
023AF0: 61 63 74 65 72 73 0D 0A 20 20 20 20 20 20 20 73 acters.. s
023B00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
023B10: 1E 00 00 00 02 09 50 E5 1E 00 C1 02 00 00 00 02 ......P.........
023B20: 1E 00 C2 02 00 00 00 02 1E 00 C3 02 00 00 00 02 ................
023B30: 1E 00 C4 02 00 00 00 02 1E 00 C5 02 00 00 00 02 ................
023B40: 1E 00 C6 02 00 00 00 02 1E 00 C7 02 00 00 00 02 ................
023B50: 1E 00 C8 02 00 00 00 02 1E 00 C9 02 00 00 00 02 ................
023B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023C00: 65 6E 74 20 66 6F 6C 6C 6F 77 69 6E 67 20 74 68 ent following th
023C10: 65 20 69 6E 69 74 69 61 6C 20 20 63 6F 6E 74 72 e initial contr
023C20: 6F 6C 20 20 63 6F 64 65 2E 20 20 54 68 65 20 20 ol code. The
023C30: 63 68 61 72 61 63 74 65 72 73 20 20 73 65 6E 74 characters sent
023C40: 20 20 61 72 65 0D 0A 20 20 20 20 20 20 20 73 74 are.. st
023C50: 6F 72 65 64 20 69 6E 20 61 20 62 75 66 66 65 72 ored in a buffer
023C60: 20 75 6E 74 69 6C 20 73 75 66 66 69 63 69 65 6E until sufficien
023C70: 74 20 68 61 76 65 20 62 65 65 6E 20 72 65 63 65 t have been rece
023C80: 69 76 65 64 20 74 6F 20 6D 61 6B 65 20 75 70 20 ived to make up
023C90: 20 61 6C 6C 0D 0A 20 20 20 20 20 20 20 74 68 65 all.. the
023CA0: 20 72 65 71 75 69 72 65 64 20 70 61 72 61 6D 65 required parame
023CB0: 74 65 72 73 2E 20 54 68 65 20 63 6F 6E 74 72 6F ters. The contro
023CC0: 6C 20 63 6F 64 65 20 62 75 66 66 65 72 20 69 73 l code buffer is
023CD0: 20 6F 6E 6C 79 20 20 6C 6F 6E 67 20 20 65 6E 6F only long eno
023CE0: 75 67 68 0D 0A 20 20 20 20 20 20 20 74 6F 20 61 ugh.. to a
023CF0: 63 63 65 70 74 20 39 20 70 61 72 61 6D 65 74 65 ccept 9 paramete
023D00: 72 20 63 68 61 72 61 63 74 65 72 73 2E 0D 0A 0D r characters....
023D10: 0A 20 20 20 20 20 20 20 54 68 65 72 65 20 69 73 . There is
023D20: 20 6F 6E 6C 79 20 6F 6E 65 20 63 6F 6E 74 72 6F only one contro
023D30: 6C 20 63 6F 64 65 20 62 75 66 66 65 72 20 77 68 l code buffer wh
023D40: 69 63 68 20 69 73 20 73 68 61 72 65 64 20 62 65 ich is shared be
023D50: 74 77 65 65 6E 20 61 6C 6C 20 20 74 68 65 0D 0A tween all the..
023D60: 20 20 20 20 20 20 20 73 74 72 65 61 6D 73 2E 20 streams.
023D70: 49 74 20 69 73 2C 20 74 68 65 72 65 66 6F 72 65 It is, therefore
023D80: 20 70 6F 73 73 69 62 6C 65 20 74 6F 20 67 65 74 possible to get
023D90: 20 75 6E 70 72 65 64 69 63 74 61 62 6C 65 20 72 unpredictable r
023DA0: 65 73 75 6C 74 73 20 69 66 20 74 68 65 0D 0A 20 esults if the..
023DB0: 20 20 20 20 20 20 6F 75 74 70 75 74 20 73 74 72 output str
023DC0: 65 61 6D 20 69 73 20 63 68 61 6E 67 65 64 20 70 eam is changed p
023DD0: 61 72 74 20 6F 66 20 74 68 65 20 77 61 79 20 20 art of the way
023DE0: 74 68 72 6F 75 67 68 20 20 73 65 6E 64 69 6E 67 through sending
023DF0: 20 20 61 20 20 63 6F 6E 74 72 6F 6C 0D 0A 20 20 a control..
023E00: 20 20 20 20 20 63 6F 64 65 20 73 65 71 75 65 6E code sequen
023E10: 63 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 ce..... If
023E20: 20 74 68 65 20 56 44 55 20 69 73 20 64 69 73 61 the VDU is disa
023E30: 62 6C 65 64 20 74 68 65 6E 20 6E 6F 20 20 63 68 bled then no ch
023E40: 61 72 61 63 74 65 72 73 20 20 77 69 6C 6C 20 20 aracters will
023E50: 62 65 20 20 70 72 69 6E 74 65 64 20 20 6F 6E 20 be printed on
023E60: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 73 63 72 the.. scr
023E70: 65 65 6E 2E 20 49 6E 20 56 31 2E 31 20 66 69 72 een. In V1.1 fir
023E80: 6D 77 61 72 65 20 63 6F 6E 74 72 6F 6C 20 63 6F mware control co
023E90: 64 65 73 20 74 68 61 74 20 61 72 65 20 20 73 70 des that are sp
023EA0: 65 63 69 61 6C 6C 79 20 20 6D 61 72 6B 65 64 20 ecially marked
023EB0: 20 69 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 20 in.. the
023EC0: 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 74 61 62 control code tab
023ED0: 6C 65 20 77 69 6C 6C 20 6E 6F 74 20 62 65 20 6F le will not be o
023EE0: 62 65 79 65 64 20 20 69 66 20 20 74 68 65 20 20 beyed if the
023EF0: 56 44 55 20 20 69 73 20 20 64 69 73 61 62 6C 65 VDU is disable
023F00: 64 2E 0D 0A 20 20 20 20 20 20 20 4F 74 68 65 72 d... Other
023F10: 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 20 61 control codes a
023F20: 6E 64 20 61 6C 6C 20 63 6F 6E 74 72 6F 6C 20 63 nd all control c
023F30: 6F 64 65 73 20 69 6E 20 20 56 31 2E 30 20 20 66 odes in V1.0 f
023F40: 69 72 6D 77 61 72 65 20 20 77 69 6C 6C 20 20 62 irmware will b
023F50: 65 0D 0A 20 20 20 20 20 20 20 6F 62 65 79 65 64 e.. obeyed
023F60: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
023F70: 68 65 20 67 72 61 70 68 69 63 73 20 63 68 61 72 he graphics char
023F80: 61 63 74 65 72 20 77 72 69 74 65 20 6D 6F 64 65 acter write mode
023F90: 20 69 73 20 65 6E 61 62 6C 65 64 20 20 74 68 65 is enabled the
023FA0: 6E 20 20 61 6C 6C 20 20 63 68 61 72 61 63 74 65 n all characte
023FB0: 72 73 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 63 rs.. and c
023FC0: 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 20 61 72 65 ontrol codes are
023FD0: 20 70 72 69 6E 74 65 64 20 75 73 69 6E 67 20 74 printed using t
023FE0: 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 20 he Graphics VDU
023FF0: 28 73 65 65 20 47 52 41 20 57 52 20 43 48 41 52 (see GRA WR CHAR
024000: 29 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 61 72 ).. and ar
024010: 65 20 6E 6F 74 20 6F 62 65 79 65 64 2E 20 4E 6F e not obeyed. No
024020: 72 6D 61 6C 6C 79 20 63 68 61 72 61 63 74 65 72 rmally character
024030: 73 20 61 72 65 20 77 72 69 74 74 65 6E 20 62 79 s are written by
024040: 20 20 74 68 65 20 20 54 65 78 74 20 20 56 44 55 the Text VDU
024050: 0D 0A 20 20 20 20 20 20 20 28 73 65 65 20 54 58 .. (see TX
024060: 54 20 57 52 20 43 48 41 52 29 2E 0D 0A 0D 0A 20 T WR CHAR).....
024070: 20 20 20 20 20 20 54 68 69 73 20 69 6E 64 69 72 This indir
024080: 65 63 74 69 6F 6E 20 69 73 20 73 65 74 20 75 70 ection is set up
024090: 20 77 68 65 6E 20 54 58 54 20 49 4E 49 54 49 41 when TXT INITIA
0240A0: 4C 49 53 45 20 6F 72 20 54 58 54 20 52 45 53 45 LISE or TXT RESE
0240B0: 54 20 69 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A T is called.....
0240C0: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
0240D0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 ntries:....
0240E0: 20 20 54 58 54 20 4F 55 54 50 55 54 0D 0A 20 20 TXT OUTPUT..
0240F0: 20 20 20 20 20 54 58 54 20 57 52 20 43 48 41 52 TXT WR CHAR
024100: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
024110: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
024120: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
024130: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
024140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
024150: 67 65 20 31 36 2E 37 0D 0A 0D 0A 0D 0A 0D 0A 0D ge 16.7.........
024160: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 4E 44 3A ..... IND:
024170: 20 47 52 41 20 50 4C 4F 54 20 20 20 20 20 20 20 GRA PLOT
024180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0241A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 44 #BD
0241B0: 44 43 0D 0A 0D 0A 20 20 20 20 20 20 20 50 6C 6F DC.... Plo
0241C0: 74 20 61 20 70 6F 69 6E 74 2E 0D 0A 0D 0A 20 20 t a point.....
0241D0: 20 20 20 20 20 44 65 66 61 75 6C 74 20 61 63 74 Default act
0241E0: 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 ion:.... C
0241F0: 68 65 63 6B 20 69 66 20 74 68 65 20 70 6F 69 6E heck if the poin
024200: 74 20 6C 69 65 73 20 69 6E 73 69 64 65 20 74 68 t lies inside th
024210: 65 20 63 75 72 72 65 6E 74 20 77 69 6E 64 6F 77 e current window
024220: 20 61 6E 64 20 69 66 20 73 6F 20 20 77 72 69 74 and if so writ
024230: 65 20 20 69 74 0D 0A 20 20 20 20 20 20 20 69 6E e it.. in
024240: 20 74 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 the current gra
024250: 70 68 69 63 73 20 70 65 6E 20 69 6E 6B 20 61 6E phics pen ink an
024260: 64 20 75 73 69 6E 67 20 74 68 65 20 63 75 72 72 d using the curr
024270: 65 6E 74 20 20 67 72 61 70 68 69 63 73 20 20 77 ent graphics w
024280: 72 69 74 65 0D 0A 20 20 20 20 20 20 20 6D 6F 64 rite.. mod
024290: 65 2E 20 54 68 65 20 63 75 72 72 65 6E 74 20 67 e. The current g
0242A0: 72 61 70 68 69 63 73 20 70 6F 73 69 74 69 6F 6E raphics position
0242B0: 20 69 20 61 6C 77 61 79 73 20 6D 6F 76 65 64 20 i always moved
0242C0: 20 74 6F 20 20 74 68 65 20 20 73 70 65 63 69 66 to the specif
0242D0: 69 65 64 0D 0A 20 20 20 20 20 20 20 70 6F 69 6E ied.. poin
0242E0: 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 t....... E
0242F0: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
024300: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 45 20 ...... DE
024310: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 75 73 65 contains the use
024320: 72 20 58 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F r X coordinate o
024330: 66 20 74 68 65 20 70 6F 69 6E 74 20 74 6F 20 70 f the point to p
024340: 6C 6F 74 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 lot... HL
024350: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 75 73 65 contains the use
024360: 72 20 59 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F r Y coordinate o
024370: 66 20 74 68 65 20 70 6F 69 6E 74 20 74 6F 20 70 f the point to p
024380: 6C 6F 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 lot.......
024390: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
0243A0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
0243B0: 2C 20 42 43 2C 20 44 45 20 61 6E 64 20 48 4C 20 , BC, DE and HL
0243C0: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
0243D0: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
0243E0: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
0243F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
024400: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s:...... T
024410: 68 65 20 70 6F 73 69 74 69 6F 6E 20 6F 66 20 74 he position of t
024420: 68 65 20 70 6F 69 6E 74 20 74 6F 20 70 6C 6F 74 he point to plot
024430: 20 69 73 20 67 69 76 65 6E 20 69 6E 20 75 73 65 is given in use
024440: 72 20 20 63 6F 6F 72 64 69 6E 61 74 65 73 2C 20 r coordinates,
024450: 20 69 2E 65 2E 0D 0A 20 20 20 20 20 20 20 72 65 i.e... re
024460: 6C 61 74 69 76 65 20 74 6F 20 74 68 65 20 75 73 lative to the us
024470: 65 72 20 6F 72 69 67 69 6E 2E 0D 0A 0D 0A 0D 0A er origin.......
024480: 20 20 20 20 20 20 20 54 68 69 73 20 69 6E 64 69 This indi
024490: 72 65 63 74 69 6F 6E 20 69 73 20 63 61 6C 6C 65 rection is calle
0244A0: 64 20 62 79 20 47 52 41 20 50 4C 4F 54 20 52 45 d by GRA PLOT RE
0244B0: 4C 41 54 49 56 45 20 61 6E 64 20 47 52 41 20 50 LATIVE and GRA P
0244C0: 4C 4F 54 20 20 41 42 53 4F 4C 55 54 45 0D 0A 20 LOT ABSOLUTE..
0244D0: 20 20 20 20 20 20 74 6F 20 70 6C 6F 74 20 74 68 to plot th
0244E0: 65 20 70 6F 69 6E 74 20 72 65 71 75 65 73 74 65 e point requeste
0244F0: 64 2E 20 49 74 20 69 73 20 20 70 72 6F 76 69 64 d. It is provid
024500: 65 64 20 20 74 6F 20 20 61 6C 6C 6F 77 20 20 74 ed to allow t
024510: 68 65 20 20 75 73 65 72 20 20 74 6F 0D 0A 20 20 he user to..
024520: 20 20 20 20 20 63 68 61 6E 67 65 20 74 68 65 20 change the
024530: 6D 65 74 68 6F 64 20 66 6F 72 20 70 6C 6F 74 74 method for plott
024540: 69 6E 67 20 20 28 74 6F 20 20 6F 75 74 70 75 74 ing (to output
024550: 20 20 74 6F 20 20 61 6E 20 20 58 2D 59 20 20 70 to an X-Y p
024560: 6C 6F 74 74 65 72 20 20 66 6F 72 0D 0A 20 20 20 lotter for..
024570: 20 20 20 20 65 78 61 6D 70 6C 65 29 2E 20 47 52 example). GR
024580: 41 20 50 4C 4F 54 20 52 45 4C 41 54 49 56 45 20 A PLOT RELATIVE
024590: 63 6F 6E 76 65 72 74 73 20 66 72 6F 6D 20 72 65 converts from re
0245A0: 6C 61 74 69 76 65 20 74 6F 20 75 73 65 72 20 63 lative to user c
0245B0: 6F 6F 72 64 69 6E 61 74 65 73 0D 0A 20 20 20 20 oordinates..
0245C0: 20 20 20 61 6E 64 20 20 74 68 65 6E 20 20 63 61 and then ca
0245D0: 6C 6C 73 20 20 74 68 69 73 20 20 69 6E 64 69 72 lls this indir
0245E0: 65 63 74 69 6F 6E 3B 20 20 47 52 41 20 20 50 4C ection; GRA PL
0245F0: 4F 54 20 20 41 42 53 4F 4C 55 54 45 20 20 63 61 OT ABSOLUTE ca
024600: 6C 6C 73 20 20 74 68 69 73 0D 0A 20 20 20 20 20 lls this..
024610: 20 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 6D indirection im
024620: 6D 65 64 69 61 74 65 6C 79 2E 0D 0A 0D 0A 0D 0A mediately.......
024630: 20 20 20 20 20 20 20 54 6F 20 77 72 69 74 65 20 To write
024640: 74 68 65 20 70 6F 69 6E 74 20 6F 6E 20 74 68 65 the point on the
024650: 20 73 63 72 65 65 6E 20 74 68 65 20 53 43 52 20 screen the SCR
024660: 57 52 49 54 45 20 20 69 6E 64 69 72 65 63 74 69 WRITE indirecti
024670: 6F 6E 20 20 69 73 20 20 75 73 65 64 2E 0D 0A 20 on is used...
024680: 20 20 20 20 20 20 54 68 75 73 20 74 68 65 20 70 Thus the p
024690: 6F 69 6E 74 20 69 73 20 70 6C 6F 74 74 65 64 20 oint is plotted
0246A0: 75 73 69 6E 67 20 74 68 65 20 63 75 72 72 65 6E using the curren
0246B0: 74 20 67 72 61 70 68 69 63 73 20 77 72 69 74 65 t graphics write
0246C0: 20 6D 6F 64 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 mode.......
0246D0: 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 This indirect
0246E0: 69 6F 6E 20 69 73 20 73 65 74 20 75 70 20 77 68 ion is set up wh
0246F0: 65 6E 20 47 52 41 20 49 4E 49 54 49 41 4C 49 53 en GRA INITIALIS
024700: 45 20 6F 72 20 47 52 41 20 52 45 53 45 54 20 69 E or GRA RESET i
024710: 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A 0D 0A 0D s called........
024720: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
024730: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 entries:....
024740: 20 20 20 47 52 41 20 50 4C 4F 54 20 41 42 53 4F GRA PLOT ABSO
024750: 4C 55 54 45 0D 0A 20 20 20 20 20 20 20 47 52 41 LUTE.. GRA
024760: 20 50 4C 4F 54 20 52 45 4C 41 54 49 56 45 0D 0A PLOT RELATIVE..
024770: 20 20 20 20 20 20 20 47 52 41 20 54 45 53 54 0D GRA TEST.
024780: 0A 20 20 20 20 20 20 20 53 43 52 20 57 52 49 54 . SCR WRIT
024790: 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 E..........
0247A0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
0247B0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
0247C0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
0247D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
0247E0: 61 67 65 20 31 36 2E 38 0D 0A 0D 0A 0D 0A 0D 0A age 16.8........
0247F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 4E 44 ...... IND
024800: 3A 20 47 52 41 20 54 45 53 54 20 20 20 20 20 20 : GRA TEST
024810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
024840: 44 44 46 0D 0A 0D 0A 20 20 20 20 20 20 20 54 65 DDF.... Te
024850: 73 74 20 61 20 70 6F 69 6E 74 2E 0D 0A 0D 0A 20 st a point.....
024860: 20 20 20 20 20 20 44 65 66 61 75 6C 74 20 61 63 Default ac
024870: 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 tion:....
024880: 43 68 65 63 6B 20 69 66 20 74 68 65 20 70 6F 69 Check if the poi
024890: 6E 74 20 69 6E 73 69 64 65 20 74 68 65 20 67 72 nt inside the gr
0248A0: 61 70 68 69 63 73 20 77 69 6E 64 6F 77 20 61 6E aphics window an
0248B0: 64 20 72 65 74 75 72 6E 20 74 68 65 20 69 6E 6B d return the ink
0248C0: 20 69 74 20 69 73 0D 0A 20 20 20 20 20 20 20 63 it is.. c
0248D0: 75 72 72 65 6E 74 6C 79 20 73 65 74 20 74 6F 20 urrently set to
0248E0: 69 66 20 73 6F 2E 20 4F 74 68 65 72 77 69 73 65 if so. Otherwise
0248F0: 2C 20 72 65 74 75 72 6E 20 74 68 65 20 20 63 75 , return the cu
024900: 72 72 65 6E 74 20 20 67 72 61 70 68 69 63 20 20 rrent graphic
024910: 70 61 70 65 72 0D 0A 20 20 20 20 20 20 20 69 6E paper.. in
024920: 6B 2E 20 54 68 65 20 63 75 72 72 65 6E 74 20 67 k. The current g
024930: 72 61 70 68 69 63 73 20 70 6F 73 69 74 69 6F 6E raphics position
024940: 20 69 73 20 61 6C 77 61 79 73 20 6D 6F 76 65 64 is always moved
024950: 20 20 74 6F 20 20 74 68 65 20 20 73 70 65 63 69 to the speci
024960: 66 69 65 64 0D 0A 20 20 20 20 20 20 20 70 6F 69 fied.. poi
024970: 6E 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E nt..... En
024980: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
024990: 0A 0D 0A 20 20 20 20 20 20 20 44 45 20 63 6F 6E ... DE con
0249A0: 74 61 69 6E 73 20 74 68 65 20 75 73 65 72 20 58 tains the user X
0249B0: 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F 66 20 74 coordinate of t
0249C0: 68 65 20 70 6F 69 6E 74 20 74 6F 20 74 65 73 74 he point to test
0249D0: 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E ... HL con
0249E0: 74 61 69 6E 73 20 74 68 65 20 75 73 65 72 20 59 tains the user Y
0249F0: 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F 66 20 74 coordinate of t
024A00: 68 65 20 70 6F 69 6E 74 20 74 6F 20 74 65 73 74 he point to test
024A10: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
024A20: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
024A30: 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E A contain
024A40: 73 20 74 68 65 20 64 65 63 6F 64 65 64 20 69 6E s the decoded in
024A50: 6B 20 6F 66 20 74 68 65 20 73 70 65 63 69 66 69 k of the specifi
024A60: 65 64 20 70 6F 69 6E 74 2E 0D 0A 0D 0A 0D 0A 20 ed point.......
024A70: 20 20 20 20 20 20 42 43 2C 20 44 45 2C 48 4C 20 BC, DE,HL
024A80: 61 6E 64 20 66 6C 61 67 73 20 63 6F 72 72 75 70 and flags corrup
024A90: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
024AA0: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
024AB0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
024AC0: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
024AD0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 70 6F 73 .. The pos
024AE0: 69 74 69 6F 6E 20 6F 66 20 74 68 65 20 70 6F 69 ition of the poi
024AF0: 6E 74 20 74 6F 20 70 6C 6F 74 20 69 73 20 67 69 nt to plot is gi
024B00: 76 65 6E 20 69 6E 20 75 73 65 72 20 20 63 6F 6F ven in user coo
024B10: 72 64 69 6E 61 74 65 73 2C 20 20 69 2E 65 2E 0D rdinates, i.e..
024B20: 0A 20 20 20 20 20 20 20 72 65 6C 61 74 69 76 65 . relative
024B30: 20 74 6F 20 74 68 65 20 75 73 65 72 20 6F 72 69 to the user ori
024B40: 67 69 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 gin.......
024B50: 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F This indirectio
024B60: 6E 20 69 73 20 75 73 65 64 20 62 79 20 47 52 41 n is used by GRA
024B70: 20 54 45 53 54 20 52 45 4C 41 54 49 56 45 20 61 TEST RELATIVE a
024B80: 6E 64 20 47 52 41 20 54 45 53 54 20 41 42 53 4F nd GRA TEST ABSO
024B90: 4C 55 54 45 20 74 6F 0D 0A 20 20 20 20 20 20 20 LUTE to..
024BA0: 74 65 73 74 20 74 68 65 20 70 6F 69 6E 74 20 72 test the point r
024BB0: 65 71 75 65 73 74 65 64 2E 20 49 74 20 69 73 20 equested. It is
024BC0: 70 72 6F 76 69 64 65 64 20 74 6F 20 61 6C 6C 6F provided to allo
024BD0: 77 20 74 68 65 20 75 73 65 72 20 20 74 6F 20 20 w the user to
024BE0: 63 68 61 6E 67 65 0D 0A 20 20 20 20 20 20 20 74 change.. t
024BF0: 68 65 20 6D 65 74 68 6F 64 20 66 6F 72 20 20 74 he method for t
024C00: 65 73 74 69 6E 67 20 20 28 63 6F 6D 70 61 72 69 esting (compari
024C10: 6E 67 20 20 77 69 74 68 20 20 74 68 65 20 20 63 ng with the c
024C20: 75 72 72 65 6E 74 20 20 70 65 6E 20 20 69 6E 6B urrent pen ink
024C30: 20 20 66 6F 72 0D 0A 20 20 20 20 20 20 20 65 78 for.. ex
024C40: 61 6D 70 6C 65 29 2E 20 47 52 41 20 54 45 53 54 ample). GRA TEST
024C50: 20 52 45 4C 41 54 49 56 45 20 63 6F 6E 76 65 72 RELATIVE conver
024C60: 74 73 20 66 72 6F 6D 20 72 65 6C 61 74 69 76 65 ts from relative
024C70: 20 74 6F 20 75 73 65 72 20 63 6F 6F 72 64 69 6E to user coordin
024C80: 61 74 65 73 0D 0A 20 20 20 20 20 20 20 61 6E 64 ates.. and
024C90: 20 20 74 68 65 6E 20 20 63 61 6C 6C 73 20 20 74 then calls t
024CA0: 68 69 73 20 20 69 6E 64 69 72 65 63 74 69 6F 6E his indirection
024CB0: 3B 20 20 47 52 41 20 20 54 45 53 54 20 20 41 42 ; GRA TEST AB
024CC0: 53 4F 4C 55 54 45 20 20 63 61 6C 6C 73 20 20 74 SOLUTE calls t
024CD0: 68 69 73 0D 0A 20 20 20 20 20 20 20 69 6E 64 69 his.. indi
024CE0: 72 65 63 74 69 6F 6E 20 69 6D 6D 65 64 69 61 74 rection immediat
024CF0: 65 6C 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ely.......
024D00: 20 54 6F 20 74 65 73 74 20 74 68 65 20 69 6E 6B To test the ink
024D10: 20 6F 66 20 61 20 70 6F 69 6E 74 20 69 6E 73 69 of a point insi
024D20: 64 65 20 74 68 65 20 77 69 6E 64 6F 77 20 74 68 de the window th
024D30: 65 20 53 43 52 20 52 45 41 44 20 20 69 6E 64 69 e SCR READ indi
024D40: 72 65 63 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 rection..
024D50: 69 73 20 75 73 65 64 2E 0D 0A 0D 0A 20 20 20 20 is used.....
024D60: 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 This indirect
024D70: 69 6F 6E 20 69 73 20 73 65 74 20 75 70 20 77 68 ion is set up wh
024D80: 65 6E 20 47 52 41 20 49 4E 49 54 49 41 4C 49 53 en GRA INITIALIS
024D90: 45 20 6F 72 20 47 52 41 20 52 45 53 45 54 20 69 E or GRA RESET i
024DA0: 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A 0D 0A 0D s called........
024DB0: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
024DC0: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
024DD0: 20 20 20 20 20 47 52 41 20 50 4C 4F 54 0D 0A 20 GRA PLOT..
024DE0: 20 20 20 20 20 20 47 52 41 20 54 45 53 54 20 41 GRA TEST A
024DF0: 42 53 4F 4C 55 54 45 0D 0A 20 20 20 20 20 20 20 BSOLUTE..
024E00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
024E10: 1F 00 00 00 02 09 50 E5 1F 00 C1 02 00 00 00 02 ......P.........
024E20: 1F 00 C2 02 00 00 00 02 1F 00 C3 02 00 00 00 02 ................
024E30: 1F 00 C4 02 00 00 00 02 1F 00 C5 02 00 00 00 02 ................
024E40: 1F 00 C6 02 00 00 00 02 1F 00 C7 02 00 00 00 02 ................
024E50: 1F 00 C8 02 00 00 00 02 1F 00 C9 02 00 00 00 02 ................
024E60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024F00: 47 52 41 20 54 45 53 54 20 52 45 4C 41 54 49 56 GRA TEST RELATIV
024F10: 45 0D 0A 20 20 20 20 20 20 20 53 43 52 20 52 45 E.. SCR RE
024F20: 41 44 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 AD............
024F30: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
024F40: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
024F50: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
024F60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024F70: 20 20 70 61 67 65 20 31 36 2E 39 0D 0A 0D 0A 0D page 16.9.....
024F80: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
024F90: 49 4E 44 3A 20 47 52 41 20 4C 49 4E 45 20 20 20 IND: GRA LINE
024FA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024FB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024FC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024FD0: 20 23 42 44 45 32 0D 0A 0D 0A 0D 0A 20 20 20 20 #BDE2......
024FE0: 20 20 20 44 72 61 77 20 61 20 6C 69 6E 65 2E 0D Draw a line..
024FF0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 65 66 61 ..... Defa
025000: 75 6C 74 20 61 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D ult action:.....
025010: 0A 20 20 20 20 20 20 20 44 72 61 77 20 61 20 6C . Draw a l
025020: 69 6E 65 20 62 65 74 77 65 65 6E 20 20 74 68 65 ine between the
025030: 20 20 63 75 72 72 65 6E 74 20 20 67 72 61 70 68 current graph
025040: 69 63 73 20 20 70 6F 73 69 74 69 6F 6E 20 20 61 ics position a
025050: 6E 64 20 20 74 68 65 20 20 67 69 76 65 6E 0D 0A nd the given..
025060: 20 20 20 20 20 20 20 65 6E 64 70 6F 69 6E 74 20 endpoint
025070: 75 73 69 6E 67 20 74 68 65 20 63 75 72 72 65 6E using the curren
025080: 74 20 67 72 61 70 68 69 63 73 20 77 72 69 74 65 t graphics write
025090: 20 6D 6F 64 65 2E 20 20 50 6F 69 6E 74 73 20 20 mode. Points
0250A0: 6F 6E 20 20 74 68 65 20 20 6C 69 6E 65 0D 0A 20 on the line..
0250B0: 20 20 20 20 20 20 74 68 61 74 20 6C 69 65 20 6F that lie o
0250C0: 75 74 73 69 64 65 20 74 68 65 20 63 75 72 72 65 utside the curre
0250D0: 6E 74 20 67 72 61 70 68 69 63 73 20 77 69 6E 64 nt graphics wind
0250E0: 6F 77 20 77 69 6C 6C 20 6E 6F 74 20 62 65 20 70 ow will not be p
0250F0: 6C 6F 74 74 65 64 2E 20 20 54 68 65 0D 0A 20 20 lotted. The..
025100: 20 20 20 20 20 63 75 72 72 65 6E 74 20 67 72 61 current gra
025110: 70 68 69 63 73 20 70 6F 73 69 74 69 6F 6E 20 69 phics position i
025120: 73 20 61 6C 77 61 79 73 20 6D 6F 76 65 64 20 74 s always moved t
025130: 6F 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 o the specified
025140: 65 6E 64 70 6F 69 6E 74 2E 0D 0A 0D 0A 0D 0A 20 endpoint.......
025150: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
025160: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
025170: 20 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 DE contains
025180: 74 68 65 20 75 73 65 72 20 58 20 63 6F 6F 72 64 the user X coord
025190: 69 6E 61 74 65 20 6F 66 20 74 68 65 20 65 6E 64 inate of the end
0251A0: 70 6F 69 6E 74 2E 0D 0A 20 20 20 20 20 20 20 48 point... H
0251B0: 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 75 L contains the u
0251C0: 73 65 72 20 59 20 63 6F 6F 72 64 69 6E 61 74 65 ser Y coordinate
0251D0: 20 6F 66 20 74 68 65 20 65 6E 64 70 6F 69 6E 74 of the endpoint
0251E0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
0251F0: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
025200: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C 20 42 .... AF, B
025210: 43 2C 20 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 C, DE and HL cor
025220: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C rupt... Al
025230: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
025240: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
025250: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
025260: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
025270: 70 6F 73 69 74 69 6F 6E 20 6F 66 20 74 68 65 20 position of the
025280: 20 65 6E 64 70 6F 69 6E 74 20 20 69 73 20 20 67 endpoint is g
025290: 69 76 65 6E 20 20 69 6E 20 20 75 73 65 72 20 20 iven in user
0252A0: 63 6F 6F 72 64 69 6E 61 74 65 73 2C 20 20 69 2E coordinates, i.
0252B0: 65 2E 0D 0A 20 20 20 20 20 20 20 72 65 6C 61 74 e... relat
0252C0: 69 76 65 20 74 6F 20 74 68 65 20 75 73 65 72 20 ive to the user
0252D0: 6F 72 69 67 69 6E 2E 0D 0A 0D 0A 20 20 20 20 20 origin.....
0252E0: 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 This indirecti
0252F0: 6F 6E 20 69 73 20 75 73 65 64 20 62 79 20 47 52 on is used by GR
025300: 41 20 4C 49 4E 45 20 52 45 4C 41 54 49 56 45 20 A LINE RELATIVE
025310: 61 6E 64 20 47 52 41 20 4C 49 4E 45 20 41 42 53 and GRA LINE ABS
025320: 4F 4C 55 54 45 20 74 6F 0D 0A 20 20 20 20 20 20 OLUTE to..
025330: 20 64 72 61 77 20 74 68 65 20 6C 69 6E 65 20 73 draw the line s
025340: 70 65 63 69 66 69 65 64 2E 20 49 74 20 69 73 20 pecified. It is
025350: 70 72 6F 76 69 64 65 64 20 74 6F 20 61 6C 6C 6F provided to allo
025360: 77 20 74 68 65 20 20 75 73 65 72 20 20 74 6F 20 w the user to
025370: 20 63 68 61 6E 67 65 0D 0A 20 20 20 20 20 20 20 change..
025380: 74 68 65 20 6D 65 74 68 6F 64 20 66 6F 72 20 6C the method for l
025390: 69 6E 65 20 64 72 61 77 69 6E 67 20 28 74 6F 20 ine drawing (to
0253A0: 6F 75 74 70 75 74 20 74 6F 20 61 6E 20 58 2D 59 output to an X-Y
0253B0: 20 70 6C 6F 74 74 65 72 20 66 6F 72 20 65 78 61 plotter for exa
0253C0: 6D 70 6C 65 29 2E 0D 0A 20 20 20 20 20 20 20 47 mple)... G
0253D0: 52 41 20 4C 49 4E 45 20 52 45 4C 41 54 49 56 45 RA LINE RELATIVE
0253E0: 20 63 6F 6E 76 65 72 74 73 20 66 72 6F 6D 20 72 converts from r
0253F0: 65 6C 61 74 69 76 65 20 74 6F 20 75 73 65 72 20 elative to user
025400: 63 6F 6F 72 64 69 6E 61 74 65 73 20 61 6E 64 20 coordinates and
025410: 20 74 68 65 6E 0D 0A 20 20 20 20 20 20 20 63 61 then.. ca
025420: 6C 6C 73 20 20 74 68 65 20 20 69 6E 64 69 72 65 lls the indire
025430: 63 74 69 6F 6E 3B 20 20 47 52 41 20 20 4C 49 4E ction; GRA LIN
025440: 45 20 20 41 42 53 4F 4C 55 54 45 20 20 63 61 6C E ABSOLUTE cal
025450: 6C 73 20 20 74 68 65 20 20 69 6E 64 69 72 65 63 ls the indirec
025460: 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 69 6D 6D tion.. imm
025470: 65 64 69 61 74 65 6C 79 2E 0D 0A 0D 0A 20 20 20 ediately.....
025480: 20 20 20 20 54 68 65 20 6C 69 6E 65 20 69 73 20 The line is
025490: 73 70 6C 69 74 20 75 70 20 69 6E 74 6F 20 68 6F split up into ho
0254A0: 72 69 7A 6F 6E 74 61 6C 20 6F 72 20 20 76 65 72 rizontal or ver
0254B0: 74 69 63 61 6C 20 20 73 65 63 74 69 6F 6E 73 20 tical sections
0254C0: 20 74 68 61 74 20 20 61 72 65 0D 0A 20 20 20 20 that are..
0254D0: 20 20 20 64 72 61 77 6E 20 73 65 70 61 72 61 74 drawn separat
0254E0: 65 6C 79 20 28 73 65 65 20 53 43 52 20 48 4F 52 ely (see SCR HOR
0254F0: 49 5A 4F 4E 54 41 4C 20 61 6E 64 20 53 43 52 20 IZONTAL and SCR
025500: 56 45 52 54 49 43 41 4C 29 2E 20 54 68 65 20 53 VERTICAL). The S
025510: 43 52 20 20 57 52 49 54 45 0D 0A 20 20 20 20 20 CR WRITE..
025520: 20 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 73 indirection is
025530: 20 63 61 6C 6C 65 64 20 74 6F 20 77 72 69 74 65 called to write
025540: 20 70 6F 69 6E 74 73 20 69 6E 20 74 68 65 73 65 points in these
025550: 20 20 73 65 63 74 69 6F 6E 73 2E 20 20 54 68 69 sections. Thi
025560: 73 20 20 6D 65 61 6E 73 0D 0A 20 20 20 20 20 20 s means..
025570: 20 74 68 61 74 20 74 68 65 20 6C 69 6E 65 20 69 that the line i
025580: 73 20 70 6C 6F 74 74 65 64 20 75 73 69 6E 67 20 s plotted using
025590: 74 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 the current grap
0255A0: 68 69 63 73 20 77 72 69 74 65 20 6D 6F 64 65 2E hics write mode.
0255B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E 20 56 31 .... In V1
0255C0: 2E 30 20 66 69 72 6D 77 61 72 65 20 74 68 65 20 .0 firmware the
0255D0: 6C 69 6E 65 20 69 73 20 70 6C 6F 74 74 65 64 20 line is plotted
0255E0: 69 6E 20 74 68 65 20 63 75 72 72 65 6E 74 20 70 in the current p
0255F0: 65 6E 20 20 69 6E 6B 2E 20 20 42 75 74 20 20 69 en ink. But i
025600: 6E 0D 0A 20 20 20 20 20 20 20 56 31 2E 31 20 74 n.. V1.1 t
025610: 68 65 20 73 65 74 74 69 6E 67 20 6F 66 20 74 68 he setting of th
025620: 65 20 6C 69 6E 65 20 6D 61 73 6B 20 64 65 74 65 e line mask dete
025630: 72 6D 69 6E 65 73 20 68 6F 77 20 70 69 78 65 6C rmines how pixel
025640: 73 20 20 6F 6E 20 20 74 68 65 20 20 6C 69 6E 65 s on the line
025650: 0D 0A 20 20 20 20 20 20 20 77 69 6C 6C 20 62 65 .. will be
025660: 20 70 6C 6F 74 74 65 64 2E 20 20 54 68 65 20 20 plotted. The
025670: 6C 69 6E 65 20 20 6D 61 73 6B 20 20 69 73 20 20 line mask is
025680: 62 69 74 20 20 73 69 67 6E 69 66 69 63 61 6E 74 bit significant
025690: 20 20 61 6E 64 20 20 69 73 20 20 75 73 65 64 0D and is used.
0256A0: 0A 20 20 20 20 20 20 20 72 65 70 65 61 74 65 64 . repeated
0256B0: 6C 79 20 69 6E 20 74 68 65 20 6F 72 64 65 72 20 ly in the order
0256C0: 62 69 74 20 37 2C 20 62 69 74 20 36 20 64 6F 77 bit 7, bit 6 dow
0256D0: 6E 20 74 6F 20 62 69 74 20 30 20 66 6F 72 20 65 n to bit 0 for e
0256E0: 61 63 68 20 20 70 69 78 65 6C 20 20 69 6E 0D 0A ach pixel in..
0256F0: 20 20 20 20 20 20 20 74 68 65 20 6C 69 6E 65 2E the line.
025700: 20 49 66 20 74 68 65 20 62 69 74 20 69 73 20 6F If the bit is o
025710: 6E 65 20 74 68 65 6E 20 74 68 65 20 70 69 78 65 ne then the pixe
025720: 6C 20 69 73 20 70 6C 6F 74 74 65 64 20 69 6E 20 l is plotted in
025730: 74 68 65 20 20 67 72 61 70 68 69 63 73 0D 0A 20 the graphics..
025740: 20 20 20 20 20 20 70 65 6E 20 69 6E 6B 2E 20 49 pen ink. I
025750: 66 20 74 68 65 20 62 69 74 20 69 73 20 7A 65 72 f the bit is zer
025760: 6F 20 74 68 65 6E 20 20 74 68 65 20 20 61 63 74 o then the act
025770: 69 6F 6E 20 20 74 61 6B 65 6E 20 20 64 65 70 65 ion taken depe
025780: 6E 64 73 20 20 6F 6E 20 20 74 68 65 0D 0A 20 20 nds on the..
025790: 20 20 20 20 20 67 72 61 70 68 69 63 73 20 62 61 graphics ba
0257A0: 63 6B 67 72 6F 75 6E 64 20 77 72 69 74 65 20 6D ckground write m
0257B0: 6F 64 65 2E 20 49 66 20 74 68 65 20 62 61 63 6B ode. If the back
0257C0: 67 72 6F 75 6E 64 20 6D 6F 64 65 20 69 73 20 6F ground mode is o
0257D0: 70 61 71 75 65 20 20 74 68 65 6E 0D 0A 20 20 20 paque then..
0257E0: 20 20 20 20 74 68 65 20 70 69 78 65 6C 20 69 73 the pixel is
0257F0: 20 70 6C 6F 74 74 65 64 20 69 6E 20 74 68 65 20 plotted in the
025800: 67 72 61 70 68 69 63 73 20 70 61 70 65 72 20 69 graphics paper i
025810: 6E 6B 2E 20 49 66 20 74 68 65 20 62 61 63 6B 67 nk. If the backg
025820: 72 6F 75 6E 64 20 6D 6F 64 65 0D 0A 20 20 20 20 round mode..
025830: 20 20 20 69 73 20 74 72 61 6E 73 70 61 72 65 6E is transparen
025840: 74 20 74 68 65 6E 20 74 68 65 20 70 69 78 65 6C t then the pixel
025850: 20 69 73 20 6E 6F 74 20 70 6C 6F 74 74 65 64 2E is not plotted.
025860: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
025870: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
025880: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
025890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0258A0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
0258B0: 31 36 2E 31 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 16.10...........
0258C0: 0A 0D 0A 20 20 20 20 20 20 20 49 6E 20 56 31 2E ... In V1.
0258D0: 31 20 66 69 72 6D 77 61 72 65 20 74 68 65 20 66 1 firmware the f
0258E0: 69 72 73 74 20 70 69 78 65 6C 20 6F 66 20 74 68 irst pixel of th
0258F0: 65 20 20 6C 69 6E 65 20 20 28 74 68 61 74 20 20 e line (that
025900: 61 74 20 20 74 68 65 20 20 63 75 72 72 65 6E 74 at the current
025910: 0D 0A 20 20 20 20 20 20 20 67 72 61 70 68 69 63 .. graphic
025920: 73 20 70 6F 73 69 74 69 6F 6E 29 20 69 73 20 6E s position) is n
025930: 6F 74 20 70 6C 6F 74 74 65 64 20 69 66 20 74 68 ot plotted if th
025940: 65 20 66 69 72 73 74 20 70 6F 69 6E 74 20 70 6C e first point pl
025950: 6F 74 74 69 6E 67 20 6D 6F 64 65 20 20 69 73 0D otting mode is.
025960: 0A 20 20 20 20 20 20 20 73 65 74 20 66 61 6C 73 . set fals
025970: 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 e....... T
025980: 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 his indirection
025990: 69 73 20 73 65 74 20 75 70 20 77 68 65 6E 20 47 is set up when G
0259A0: 52 41 20 49 4E 49 54 49 41 4C 49 53 45 20 6F 72 RA INITIALISE or
0259B0: 20 47 52 41 20 52 45 53 45 54 20 69 73 20 63 61 GRA RESET is ca
0259C0: 6C 6C 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 lled.........
0259D0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
0259E0: 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ies:......
0259F0: 20 47 52 41 20 4C 49 4E 45 20 41 42 53 4F 4C 55 GRA LINE ABSOLU
025A00: 54 45 0D 0A 20 20 20 20 20 20 20 47 52 41 20 4C TE.. GRA L
025A10: 49 4E 45 20 52 45 4C 41 54 49 56 45 0D 0A 20 20 INE RELATIVE..
025A20: 20 20 20 20 20 47 52 41 20 53 45 54 20 42 41 43 GRA SET BAC
025A30: 4B 0D 0A 20 20 20 20 20 20 20 47 52 41 20 53 45 K.. GRA SE
025A40: 54 20 46 49 52 53 54 0D 0A 20 20 20 20 20 20 20 T FIRST..
025A50: 47 52 41 20 53 45 54 20 4C 49 4E 45 20 4D 41 53 GRA SET LINE MAS
025A60: 4B 0D 0A 20 20 20 20 20 20 20 53 43 52 20 48 4F K.. SCR HO
025A70: 52 49 5A 4F 4E 54 41 4C 0D 0A 20 20 20 20 20 20 RIZONTAL..
025A80: 20 53 43 52 20 56 45 52 54 49 43 41 4C 0D 0A 0D SCR VERTICAL...
025A90: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
025AA0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
025AB0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
025AC0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
025AD0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ...............
025AE0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
025AF0: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
025B00: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
025B10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
025B20: 20 20 70 61 67 65 20 31 36 2E 31 31 0D 0A 1A 0A page 16.11....
025B30: 20 20 20 20 20 20 20 54 68 69 73 20 73 65 63 74 This sect
025B40: 69 6F 6E 20 67 69 76 65 73 20 74 68 65 20 64 65 ion gives the de
025B50: 74 61 69 6C 65 64 20 65 6E 74 72 79 20 61 6E 64 tailed entry and
025B60: 20 65 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 exit conditions
025B70: 20 61 6E 64 20 20 65 66 66 65 63 74 73 0D 0A 20 and effects..
025B80: 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 his indirection
025B90: 69 73 20 73 65 74 20 75 70 20 77 68 65 6E 20 47 is set up when G
025BA0: 52 41 20 49 4E 49 54 49 41 4C 49 53 45 20 6F 72 RA INITIALISE or
025BB0: 20 47 52 41 20 52 45 53 45 54 20 69 73 20 63 61 GRA RESET is ca
025BC0: 6C 6C 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 lled.........
025BD0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
025BE0: 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ies:......
025BF0: 20 47 52 41 20 4C 49 4E 45 20 41 42 53 4F 4C 55 GRA LINE ABSOLU
025C00: 54 45 0D 0A 20 20 20 20 20 20 20 47 52 41 20 4C TE.. GRA L
025C10: 49 4E 45 20 52 45 4C 41 54 49 56 45 0D 0A 20 20 INE RELATIVE..
025C20: 20 20 20 20 20 47 52 41 20 53 45 54 20 42 41 43 GRA SET BAC
025C30: 4B 0D 0A 20 20 20 20 20 20 20 47 52 41 20 53 45 K.. GRA SE
025C40: 54 20 46 49 52 53 54 0D 0A 20 20 20 20 20 20 20 T FIRST..
025C50: 47 52 41 20 53 45 54 20 4C 49 4E 45 20 4D 41 53 GRA SET LINE MAS
025C60: 4B 0D 0A 20 20 20 20 20 20 20 53 43 52 20 48 4F K.. SCR HO
025C70: 52 49 5A 4F 4E 54 41 4C 0D 0A 20 20 20 20 20 20 RIZONTAL..
025C80: 20 53 43 52 20 56 45 52 54 49 43 41 4C 0D 0A 0D SCR VERTICAL...
025C90: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
025CA0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
025CB0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
025CC0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
025CD0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ...............
025CE0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
025CF0: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
025D00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
025D10: 20 20 20 49 4E 44 3A 20 53 43 52 20 52 45 41 44 IND: SCR READ
025D20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
025D30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
025D40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
025D50: 20 20 20 20 23 42 44 45 35 0D 0A 0D 0A 0D 0A 20 #BDE5......
025D60: 20 20 20 20 20 20 52 65 61 64 20 61 20 70 69 78 Read a pix
025D70: 65 6C 20 66 72 6F 6D 20 74 68 65 20 73 63 72 65 el from the scre
025D80: 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 en.......
025D90: 44 65 66 61 75 6C 74 20 61 63 74 69 6F 6E 3A 0D Default action:.
025DA0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 61 64 ..... Read
025DB0: 20 61 20 70 69 78 65 6C 20 66 72 6F 6D 20 74 68 a pixel from th
025DC0: 65 20 73 63 72 65 65 6E 20 61 6E 64 20 64 65 63 e screen and dec
025DD0: 6F 64 65 20 69 74 73 20 69 6E 6B 2E 0D 0A 0D 0A ode its ink.....
025DE0: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
025DF0: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
025E00: 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 HL contai
025E10: 6E 73 20 74 68 65 20 73 63 72 65 65 6E 20 61 64 ns the screen ad
025E20: 64 72 65 73 73 20 6F 66 20 74 68 65 20 70 69 78 dress of the pix
025E30: 65 6C 2E 0D 0A 20 20 20 20 20 20 20 43 20 63 6F el... C co
025E40: 6E 74 61 69 6E 73 20 74 68 65 20 6D 61 73 6B 20 ntains the mask
025E50: 66 6F 72 20 74 68 65 20 70 69 78 65 6C 2E 0D 0A for the pixel...
025E60: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
025E70: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
025E80: 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 . A contai
025E90: 6E 73 20 74 68 65 20 64 65 63 6F 64 65 64 20 69 ns the decoded i
025EA0: 6E 6B 20 74 68 61 74 20 74 68 65 20 70 69 78 65 nk that the pixe
025EB0: 6C 20 77 61 73 20 73 65 74 20 74 6F 2E 0D 0A 0D l was set to....
025EC0: 0A 0D 0A 20 20 20 20 20 20 20 46 6C 61 67 73 20 ... Flags
025ED0: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
025EE0: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
025EF0: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
025F00: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
025F10: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s:...... T
025F20: 68 65 20 6D 61 73 6B 20 73 75 70 70 6C 69 65 64 he mask supplied
025F30: 20 6D 75 73 74 20 62 65 20 61 20 6D 61 73 6B 20 must be a mask
025F40: 66 6F 72 20 20 61 20 20 73 69 6E 67 6C 65 20 20 for a single
025F50: 70 69 78 65 6C 20 20 6F 74 68 65 72 77 69 73 65 pixel otherwise
025F60: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 64 65 the.. de
025F70: 63 6F 64 69 6E 67 20 6F 66 20 74 68 65 20 69 6E coding of the in
025F80: 6B 20 72 65 61 64 20 66 72 6F 6D 20 74 68 65 20 k read from the
025F90: 73 63 72 65 65 6E 20 77 69 6C 6C 20 6E 6F 74 20 screen will not
025FA0: 77 6F 72 6B 20 63 6F 72 72 65 63 74 6C 79 2E 0D work correctly..
025FB0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
025FC0: 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 73 20 indirection is
025FD0: 73 65 74 20 75 70 20 77 68 65 6E 20 53 43 52 20 set up when SCR
025FE0: 49 4E 49 54 49 41 4C 49 53 45 20 6F 72 20 53 43 INITIALISE or SC
025FF0: 52 20 52 45 53 45 54 20 69 73 20 63 61 6C 6C 65 R RESET is calle
026000: 64 2E 0D 0A 20 20 20 20 20 20 20 49 74 20 69 73 d... It is
026010: 20 63 61 6C 6C 65 64 20 62 79 20 47 52 41 20 54 called by GRA T
026020: 45 53 54 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 EST.........
026030: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
026040: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
026050: 47 52 41 20 54 45 53 54 0D 0A 20 20 20 20 20 20 GRA TEST..
026060: 20 53 43 52 20 57 52 49 54 45 0D 0A 0D 0A 0D 0A SCR WRITE......
026070: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
026080: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
026090: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
0260A0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
0260B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0260C0: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 36 page 16
0260D0: 2E 31 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D .12.............
0260E0: 0A 20 20 20 20 20 20 20 49 4E 44 3A 20 53 43 52 . IND: SCR
0260F0: 20 57 52 49 54 45 20 20 20 20 20 20 20 20 20 20 WRITE
026100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
026110: 20 00 00 00 02 09 50 E5 20 00 C1 02 00 00 00 02 .....P. .......
026120: 20 00 C2 02 00 00 00 02 20 00 C3 02 00 00 00 02 ....... .......
026130: 20 00 C4 02 00 00 00 02 20 00 C5 02 00 00 00 02 ....... .......
026140: 20 00 C6 02 00 00 00 02 20 00 C7 02 00 00 00 02 ....... .......
026150: 20 00 C8 02 00 00 00 02 20 00 C9 02 00 00 00 02 ....... .......
026160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026220: 20 20 20 20 20 20 20 20 20 23 42 44 45 38 0D 0A #BDE8..
026230: 0D 0A 20 20 20 20 20 20 20 57 72 69 74 65 20 70 .. Write p
026240: 69 78 65 6C 28 73 29 20 75 73 69 6E 67 20 74 68 ixel(s) using th
026250: 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 69 e current graphi
026260: 63 73 20 77 72 69 74 65 20 6D 6F 64 65 2E 0D 0A cs write mode...
026270: 0D 0A 20 20 20 20 20 20 20 44 65 66 61 75 6C 74 .. Default
026280: 20 61 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 action:....
026290: 20 20 20 50 6C 6F 74 20 61 20 70 69 78 65 6C 20 Plot a pixel
0262A0: 6F 72 20 70 69 78 65 6C 73 20 6F 6E 20 74 68 65 or pixels on the
0262B0: 20 73 63 72 65 65 6E 20 75 73 69 6E 67 20 74 68 screen using th
0262C0: 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 69 e current graphi
0262D0: 63 73 20 20 77 72 69 74 65 0D 0A 20 20 20 20 20 cs write..
0262E0: 20 20 6D 6F 64 65 2E 0D 0A 0D 0A 20 20 20 20 20 mode.....
0262F0: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
026300: 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C ns:.... HL
026310: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 63 contains the sc
026320: 72 65 65 6E 20 61 64 64 72 65 73 73 20 6F 66 20 reen address of
026330: 74 68 65 20 70 69 78 65 6C 28 73 29 2E 0D 0A 20 the pixel(s)...
026340: 20 20 20 20 20 20 43 20 63 6F 6E 74 61 69 6E 73 C contains
026350: 20 74 68 65 20 6D 61 73 6B 20 66 6F 72 20 74 68 the mask for th
026360: 65 20 70 69 78 65 6C 28 73 29 2E 0D 0A 20 20 20 e pixel(s)...
026370: 20 20 20 20 42 20 63 6F 6E 74 61 69 6E 73 20 74 B contains t
026380: 68 65 20 65 6E 63 6F 64 65 64 20 69 6E 6B 20 74 he encoded ink t
026390: 6F 20 70 6C 6F 74 20 77 69 74 68 2E 0D 0A 0D 0A o plot with.....
0263A0: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
0263B0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
0263C0: 20 20 41 46 20 63 6F 72 72 75 70 74 2E 0D 0A 0D AF corrupt....
0263D0: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 . All othe
0263E0: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
0263F0: 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 erved.....
026400: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 Notes:....
026410: 20 20 54 68 65 20 70 69 78 65 6C 20 6D 61 73 6B The pixel mask
026420: 20 73 75 70 70 6C 69 65 64 20 63 61 6E 20 62 65 supplied can be
026430: 20 66 6F 72 20 61 20 73 69 6E 67 6C 65 20 70 69 for a single pi
026440: 78 65 6C 20 20 6F 72 20 20 6D 6F 72 65 20 20 74 xel or more t
026450: 68 61 6E 20 20 6F 6E 65 0D 0A 20 20 20 20 20 20 han one..
026460: 20 70 69 78 65 6C 20 28 6F 72 20 65 76 65 6E 20 pixel (or even
026470: 6E 6F 20 70 69 78 65 6C 73 29 2E 20 54 68 65 20 no pixels). The
026480: 69 6E 6B 20 73 75 70 70 6C 69 65 64 20 73 68 6F ink supplied sho
026490: 75 6C 64 20 62 65 20 65 6E 63 6F 64 65 64 20 74 uld be encoded t
0264A0: 6F 20 63 6F 76 65 72 0D 0A 20 20 20 20 20 20 20 o cover..
0264B0: 74 68 65 20 77 68 6F 6C 65 20 6F 66 20 61 20 62 the whole of a b
0264C0: 79 74 65 20 28 73 65 65 20 53 43 52 20 49 4E 4B yte (see SCR INK
0264D0: 20 45 4E 43 4F 44 45 29 2E 0D 0A 0D 0A 20 20 20 ENCODE).....
0264E0: 20 20 20 20 54 68 65 20 70 69 78 65 6C 20 69 73 The pixel is
0264F0: 20 70 6C 6F 74 74 65 64 20 75 73 69 6E 67 20 74 plotted using t
026500: 68 65 20 63 75 72 72 65 6E 74 20 47 72 61 70 68 he current Graph
026510: 69 63 73 20 56 44 55 20 77 72 69 74 65 20 6D 6F ics VDU write mo
026520: 64 65 2E 20 20 54 68 65 73 65 0D 0A 20 20 20 20 de. These..
026530: 20 20 20 6D 6F 64 65 73 20 61 72 65 3A 0D 0A 0D modes are:...
026540: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
026550: 20 46 4F 52 43 45 20 20 20 20 20 50 69 78 65 6C FORCE Pixel
026560: 20 69 73 20 73 65 74 20 74 6F 20 74 68 65 20 6E is set to the n
026570: 65 77 20 69 6E 6B 20 69 72 72 65 73 70 65 63 74 ew ink irrespect
026580: 69 76 65 20 6F 66 20 74 68 65 20 6F 6C 64 0D 0A ive of the old..
026590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0265A0: 20 20 20 20 20 20 20 20 20 20 69 6E 6B 2E 0D 0A ink...
0265B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0265C0: 58 4F 52 20 20 20 20 20 20 20 50 69 78 65 6C 20 XOR Pixel
0265D0: 69 73 20 73 65 74 20 74 6F 20 74 68 65 20 69 6E is set to the in
0265E0: 6B 20 66 6F 72 6D 65 64 20 20 62 79 20 20 65 78 k formed by ex
0265F0: 63 6C 75 73 69 76 65 2D 6F 72 69 6E 67 0D 0A 20 clusive-oring..
026600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026610: 20 20 20 20 20 20 20 20 20 74 68 65 20 6E 65 77 the new
026620: 20 69 6E 6B 20 66 6F 72 20 74 68 65 20 70 69 78 ink for the pix
026630: 65 6C 20 61 6E 64 20 69 74 73 20 63 75 72 72 65 el and its curre
026640: 6E 74 20 73 65 74 74 69 6E 67 2E 0D 0A 20 20 20 nt setting...
026650: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 4E 44 AND
026660: 20 20 20 20 20 20 20 50 69 78 65 6C 20 69 73 20 Pixel is
026670: 73 65 74 20 74 6F 20 74 68 65 20 69 6E 6B 20 66 set to the ink f
026680: 6F 72 6D 65 64 20 62 79 20 20 61 6E 64 69 6E 67 ormed by anding
026690: 20 20 74 68 65 20 20 6E 65 77 0D 0A 20 20 20 20 the new..
0266A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0266B0: 20 20 20 20 20 20 69 6E 6B 20 66 6F 72 20 74 68 ink for th
0266C0: 65 20 70 69 78 65 6C 20 61 6E 64 20 69 74 73 20 e pixel and its
0266D0: 63 75 72 72 65 6E 74 20 73 65 74 74 69 6E 67 2E current setting.
0266E0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0266F0: 20 20 4F 52 20 20 20 20 20 20 20 20 50 69 78 65 OR Pixe
026700: 6C 20 69 73 20 73 65 74 20 74 6F 20 74 68 65 20 l is set to the
026710: 69 6E 6B 20 66 6F 72 6D 65 64 20 62 79 20 6F 72 ink formed by or
026720: 69 6E 67 20 74 68 65 20 6E 65 77 20 69 6E 6B 0D ing the new ink.
026730: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
026740: 20 20 20 20 20 20 20 20 20 20 20 66 6F 72 20 74 for t
026750: 68 65 20 70 69 78 65 6C 20 61 6E 64 20 69 74 73 he pixel and its
026760: 20 63 75 72 72 65 6E 74 20 73 65 74 74 69 6E 67 current setting
026770: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
026780: 77 72 69 74 65 20 6D 6F 64 65 20 63 61 6E 20 62 write mode can b
026790: 65 20 73 65 74 20 62 79 20 63 61 6C 6C 69 6E 67 e set by calling
0267A0: 20 53 43 52 20 41 43 43 45 53 53 20 61 70 70 72 SCR ACCESS appr
0267B0: 6F 70 72 69 61 74 65 6C 79 2E 0D 0A 0D 0A 20 20 opriately.....
0267C0: 20 20 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 This indire
0267D0: 63 74 69 6F 6E 20 69 73 20 63 61 6C 6C 65 64 20 ction is called
0267E0: 62 79 20 61 6C 6C 20 20 47 72 61 70 68 69 63 73 by all Graphics
0267F0: 20 20 56 44 55 20 20 77 72 69 74 65 20 20 72 6F VDU write ro
026800: 75 74 69 6E 65 73 2C 20 20 69 6E 0D 0A 20 20 20 utines, in..
026810: 20 20 20 20 70 61 72 74 69 63 75 6C 61 72 20 47 particular G
026820: 52 41 20 50 4C 4F 54 20 52 45 4C 41 54 49 56 45 RA PLOT RELATIVE
026830: 2C 20 47 52 41 20 50 4C 4F 54 20 41 42 53 4F 4C , GRA PLOT ABSOL
026840: 55 54 45 2C 20 20 47 52 41 20 20 4C 49 4E 45 20 UTE, GRA LINE
026850: 20 52 45 4C 41 54 49 56 45 2C 0D 0A 20 20 20 20 RELATIVE,..
026860: 20 20 20 47 52 41 20 4C 49 4E 45 20 41 42 53 4F GRA LINE ABSO
026870: 4C 55 54 45 20 61 6E 64 20 47 52 41 20 57 52 20 LUTE and GRA WR
026880: 43 48 41 52 2C 20 74 6F 20 70 6C 6F 74 20 70 69 CHAR, to plot pi
026890: 78 65 6C 73 20 6F 6E 20 74 68 65 20 73 63 72 65 xels on the scre
0268A0: 65 6E 2E 20 49 74 20 69 73 0D 0A 20 20 20 20 20 en. It is..
0268B0: 20 20 70 72 6F 76 69 64 65 64 20 74 6F 20 61 6C provided to al
0268C0: 6C 6F 77 20 74 68 65 20 75 73 65 72 20 74 6F 20 low the user to
0268D0: 69 6E 74 65 72 63 65 70 74 20 20 74 68 65 20 20 intercept the
0268E0: 6C 6F 77 65 73 74 20 20 6C 65 76 65 6C 20 20 6F lowest level o
0268F0: 66 20 20 70 6F 69 6E 74 0D 0A 20 20 20 20 20 20 f point..
026900: 20 70 6C 6F 74 74 69 6E 67 20 28 70 65 72 68 61 plotting (perha
026910: 70 73 20 74 6F 20 61 64 64 20 79 65 74 20 61 6E ps to add yet an
026920: 6F 74 68 65 72 20 70 6C 6F 74 74 69 6E 67 20 6D other plotting m
026930: 6F 64 65 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ode).....
026940: 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E This indirection
026950: 20 69 73 20 73 65 74 20 75 70 20 77 68 65 6E 20 is set up when
026960: 53 43 52 20 49 4E 49 54 49 41 4C 49 53 45 20 6F SCR INITIALISE o
026970: 72 20 53 43 52 20 52 45 53 45 54 20 69 73 20 63 r SCR RESET is c
026980: 61 6C 6C 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 alled.....
026990: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
0269A0: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 :.... GRA
0269B0: 50 4C 4F 54 0D 0A 20 20 20 20 20 20 20 53 43 52 PLOT.. SCR
0269C0: 20 41 43 43 45 53 53 0D 0A 20 20 20 20 20 20 20 ACCESS..
0269D0: 53 43 52 20 50 49 58 45 4C 53 0D 0A 20 20 20 20 SCR PIXELS..
0269E0: 20 20 20 53 43 52 20 52 45 41 44 0D 0A 0D 0A 0D SCR READ.....
0269F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
026A00: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
026A10: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
026A20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026A30: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 36 2E page 16.
026A40: 31 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 13..............
026A50: 20 20 20 20 20 20 20 49 4E 44 3A 20 53 43 52 20 IND: SCR
026A60: 4D 4F 44 45 20 43 4C 45 41 52 20 20 20 20 20 20 MODE CLEAR
026A70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026A80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026A90: 20 20 20 20 20 20 20 20 23 42 44 45 42 0D 0A 0D #BDEB...
026AA0: 0A 0D 0A 20 20 20 20 20 20 20 43 6C 65 61 72 20 ... Clear
026AB0: 74 68 65 20 73 63 72 65 65 6E 20 74 6F 20 69 6E the screen to in
026AC0: 6B 20 30 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 k 0.......
026AD0: 20 44 65 66 61 75 6C 74 20 61 63 74 69 6F 6E 3A Default action:
026AE0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 6C 65 ...... Cle
026AF0: 61 72 20 74 68 65 20 73 63 72 65 65 6E 20 6D 65 ar the screen me
026B00: 6D 6F 72 79 20 74 6F 20 7A 65 72 6F 73 2E 20 20 mory to zeros.
026B10: 54 68 69 73 20 20 69 6E 64 69 72 65 63 74 69 6F This indirectio
026B20: 6E 20 20 69 73 20 20 70 72 6F 76 69 64 65 64 20 n is provided
026B30: 20 74 6F 0D 0A 20 20 20 20 20 20 20 61 6C 6C 6F to.. allo
026B40: 77 20 74 68 65 20 75 73 65 72 20 74 6F 20 70 72 w the user to pr
026B50: 65 76 65 6E 74 20 74 68 65 20 73 63 72 65 65 6E event the screen
026B60: 20 62 65 69 6E 67 20 63 6C 65 61 72 65 64 20 61 being cleared a
026B70: 66 74 65 72 20 74 68 65 20 20 6D 6F 64 65 20 20 fter the mode
026B80: 69 73 0D 0A 20 20 20 20 20 20 20 63 68 61 6E 67 is.. chang
026B90: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
026BA0: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
026BB0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F :...... No
026BC0: 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A conditions.....
026BD0: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
026BE0: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
026BF0: 20 20 20 20 20 20 41 46 2C 20 42 43 2C 20 44 45 AF, BC, DE
026C00: 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E and HL corrupt.
026C10: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
026C20: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
026C30: 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 served.......
026C40: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A Notes:......
026C50: 20 20 20 20 20 20 20 4E 6F 72 6D 61 6C 6C 79 20 Normally
026C60: 74 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E this indirection
026C70: 20 70 65 72 66 6F 72 6D 73 20 74 68 65 20 61 63 performs the ac
026C80: 74 69 6F 6E 73 20 64 65 73 63 72 69 62 65 64 20 tions described
026C90: 69 6E 20 53 43 52 20 43 4C 45 41 52 2E 0D 0A 0D in SCR CLEAR....
026CA0: 0A 0D 0A 20 20 20 20 20 20 20 49 6E 20 56 31 2E ... In V1.
026CB0: 30 20 66 69 72 6D 77 61 72 65 20 69 74 20 69 73 0 firmware it is
026CC0: 20 6E 65 63 65 73 73 61 72 79 20 66 6F 72 20 74 necessary for t
026CD0: 68 65 20 75 73 65 72 20 74 6F 20 73 65 74 20 75 he user to set u
026CE0: 70 20 20 74 68 65 20 20 69 6E 6B 73 20 20 69 66 p the inks if
026CF0: 0D 0A 20 20 20 20 20 20 20 74 68 69 73 20 69 6E .. this in
026D00: 64 69 72 65 63 74 69 6F 6E 20 69 73 20 69 6E 74 direction is int
026D10: 65 72 63 65 70 74 65 64 20 28 73 65 65 20 41 70 ercepted (see Ap
026D20: 70 65 6E 64 69 78 20 58 49 49 49 29 2E 20 49 6E pendix XIII). In
026D30: 20 56 31 2E 31 20 20 66 69 72 6D 77 61 72 65 0D V1.1 firmware.
026D40: 0A 20 20 20 20 20 20 20 74 68 65 20 73 63 72 65 . the scre
026D50: 65 6E 20 70 61 63 6B 20 73 65 74 73 20 75 70 20 en pack sets up
026D60: 74 68 65 20 69 6E 6B 73 20 66 6F 72 20 74 68 65 the inks for the
026D70: 20 75 73 65 72 20 61 66 74 65 72 20 53 43 52 20 user after SCR
026D80: 4D 4F 44 45 20 43 4C 45 41 52 20 68 61 73 0D 0A MODE CLEAR has..
026D90: 20 20 20 20 20 20 20 62 65 65 6E 20 63 61 6C 6C been call
026DA0: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
026DB0: 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E This indirection
026DC0: 20 69 73 20 73 65 74 20 75 70 20 77 68 65 6E 20 is set up when
026DD0: 53 43 52 20 49 4E 49 54 49 41 4C 49 53 45 20 6F SCR INITIALISE o
026DE0: 72 20 53 43 52 20 52 45 53 45 54 20 69 73 20 63 r SCR RESET is c
026DF0: 61 6C 6C 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 alled.....
026E00: 20 4E 2E 42 2E 20 57 68 65 6E 20 74 68 69 73 20 N.B. When this
026E10: 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 73 20 63 indirection is c
026E20: 61 6C 6C 65 64 20 74 68 65 20 74 65 78 74 20 61 alled the text a
026E30: 6E 64 20 67 72 61 70 68 69 63 73 20 56 44 55 73 nd graphics VDUs
026E40: 20 61 72 65 20 69 6E 0D 0A 20 20 20 20 20 20 20 are in..
026E50: 6E 6F 6E 2D 73 74 61 6E 64 61 72 64 20 73 74 61 non-standard sta
026E60: 74 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 tes..... R
026E70: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
026E80: 0A 0D 0A 20 20 20 20 20 20 20 53 43 52 20 43 4C ... SCR CL
026E90: 45 41 52 0D 0A 20 20 20 20 20 20 20 53 43 52 20 EAR.. SCR
026EA0: 53 45 54 20 4D 4F 44 45 0D 0A 0D 0A 0D 0A 0D 0A SET MODE........
026EB0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
026EC0: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
026ED0: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
026EE0: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
026EF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026F00: 20 20 20 70 61 67 65 20 31 36 2E 31 34 0D 0A 0D page 16.14...
026F10: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
026F20: 20 20 49 4E 44 3A 20 4B 4D 20 54 45 53 54 20 42 IND: KM TEST B
026F30: 52 45 41 4B 20 20 20 20 20 20 20 20 20 20 20 20 REAK
026F40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026F50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026F60: 20 20 20 23 42 44 45 45 0D 0A 0D 0A 0D 0A 20 20 #BDEE......
026F70: 20 20 20 20 20 54 65 73 74 20 66 6F 72 20 62 72 Test for br
026F80: 65 61 6B 20 28 6F 72 20 72 65 73 65 74 29 2E 0D eak (or reset)..
026F90: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 65 66 61 ..... Defa
026FA0: 75 6C 74 20 61 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D ult action:.....
026FB0: 0A 20 20 20 20 20 20 20 54 65 73 74 20 69 66 20 . Test if
026FC0: 74 68 65 20 65 73 63 61 70 65 20 6B 65 79 20 69 the escape key i
026FD0: 73 20 70 72 65 73 73 65 64 2C 20 69 66 20 6E 6F s pressed, if no
026FE0: 74 20 74 68 65 6E 20 6E 6F 20 61 63 74 69 6F 6E t then no action
026FF0: 20 69 73 20 74 61 6B 65 6E 2E 20 20 49 66 0D 0A is taken. If..
027000: 20 20 20 20 20 20 20 65 73 63 61 70 65 2C 20 73 escape, s
027010: 68 69 66 74 20 61 6E 64 20 63 6F 6E 74 72 6F 6C hift and control
027020: 20 61 72 65 20 61 6C 6C 20 70 72 65 73 73 65 64 are all pressed
027030: 20 61 6E 64 20 6E 6F 20 6F 74 68 65 72 20 6B 65 and no other ke
027040: 79 73 20 20 74 68 65 6E 20 20 74 68 65 0D 0A 20 ys then the..
027050: 20 20 20 20 20 20 73 79 73 74 65 6D 20 69 73 20 system is
027060: 72 65 73 65 74 2E 20 4F 74 68 65 72 77 69 73 65 reset. Otherwise
027070: 2C 20 61 20 62 72 65 61 6B 20 65 76 65 6E 74 20 , a break event
027080: 69 73 20 72 65 70 6F 72 74 65 64 20 20 28 73 65 is reported (se
027090: 65 20 20 4B 4D 20 20 42 52 45 41 4B 0D 0A 20 20 e KM BREAK..
0270A0: 20 20 20 20 20 45 56 45 4E 54 29 2E 0D 0A 0D 0A EVENT).....
0270B0: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
0270C0: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
0270D0: 20 20 20 20 20 20 20 49 6E 74 65 72 72 75 70 74 Interrupt
0270E0: 73 20 64 69 73 61 62 6C 65 64 2E 0D 0A 20 20 20 s disabled...
0270F0: 20 20 20 20 43 20 63 6F 6E 74 61 69 6E 73 20 73 C contains s
027100: 68 69 66 74 20 61 6E 64 20 63 6F 6E 74 72 6F 6C hift and control
027110: 20 6B 65 79 20 73 74 61 74 65 73 2E 0D 0A 0D 0A key states.....
027120: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
027130: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
027140: 20 20 20 20 20 20 41 46 20 61 6E 64 20 48 4C 20 AF and HL
027150: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
027160: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
027170: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
027180: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
027190: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s:...... T
0271A0: 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 his indirection
0271B0: 69 73 20 63 61 6C 6C 65 64 20 62 79 20 74 68 65 is called by the
0271C0: 20 66 69 72 6D 77 61 72 65 20 66 72 6F 6D 20 20 firmware from
0271D0: 74 68 65 20 20 69 6E 74 65 72 72 75 70 74 20 20 the interrupt
0271E0: 70 61 74 68 2E 0D 0A 20 20 20 20 20 20 20 54 68 path... Th
0271F0: 75 73 20 69 6E 74 65 72 72 75 70 74 73 20 61 72 us interrupts ar
027200: 65 20 64 69 73 61 62 6C 65 64 20 61 6E 64 20 74 e disabled and t
027210: 68 65 79 20 6D 75 73 74 20 72 65 6D 61 69 6E 20 hey must remain
027220: 64 69 73 61 62 6C 65 64 2E 0D 0A 0D 0A 0D 0A 20 disabled.......
027230: 20 20 20 20 20 20 49 66 20 62 69 74 20 37 20 6F If bit 7 o
027240: 66 20 43 20 69 73 20 73 65 74 20 74 68 65 6E 20 f C is set then
027250: 74 68 65 20 63 6F 6E 74 72 6F 6C 20 6B 65 79 20 the control key
027260: 69 73 20 70 72 65 73 73 65 64 2E 20 49 66 20 62 is pressed. If b
027270: 69 74 20 35 20 6F 66 20 43 20 69 73 0D 0A 20 20 it 5 of C is..
027280: 20 20 20 20 20 73 65 74 20 74 68 65 6E 20 6F 6E set then on
027290: 65 20 6F 66 20 74 68 65 20 73 68 69 66 74 20 6B e of the shift k
0272A0: 65 79 73 20 69 73 20 70 72 65 73 73 65 64 2E 0D eys is pressed..
0272B0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
0272C0: 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 73 20 indirection is
0272D0: 63 61 6C 6C 65 64 20 61 66 74 65 72 20 74 68 65 called after the
0272E0: 20 6B 65 79 73 20 68 61 76 65 20 62 65 65 6E 20 keys have been
0272F0: 20 73 63 61 6E 6E 65 64 20 20 61 6E 64 20 20 74 scanned and t
027300: 68 65 0D 0A 20 20 20 20 20 20 20 65 73 63 61 70 he.. escap
027310: 65 20 6B 65 79 20 77 61 73 20 66 6F 75 6E 64 20 e key was found
027320: 74 6F 20 68 61 76 65 20 62 65 65 6E 20 70 72 65 to have been pre
027330: 73 73 65 64 2E 20 49 74 20 69 73 20 70 72 6F 76 ssed. It is prov
027340: 69 64 65 64 20 74 6F 20 61 6C 6C 6F 77 20 74 68 ided to allow th
027350: 65 0D 0A 20 20 20 20 20 20 20 75 73 65 72 20 74 e.. user t
027360: 6F 20 61 6C 74 65 72 20 74 68 65 20 61 63 74 69 o alter the acti
027370: 6F 6E 20 6F 66 20 61 20 62 72 65 61 6B 20 28 70 on of a break (p
027380: 61 72 74 69 63 75 6C 61 72 6C 79 20 70 72 65 76 articularly prev
027390: 65 6E 74 20 20 74 68 65 20 20 73 79 73 74 65 6D ent the system
0273A0: 0D 0A 20 20 20 20 20 20 20 72 65 73 65 74 2C 20 .. reset,
0273B0: 73 65 65 20 52 45 53 45 54 20 45 4E 54 52 59 29 see RESET ENTRY)
0273C0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
0273D0: 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 is indirection i
0273E0: 73 20 73 65 74 20 75 70 20 77 68 65 6E 20 4B 4D s set up when KM
0273F0: 20 49 4E 49 54 49 41 4C 49 53 45 20 6F 72 20 4B INITIALISE or K
027400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
027410: 21 00 00 00 02 09 50 E5 21 00 C1 02 00 00 00 02 !.....P.!.......
027420: 21 00 C2 02 00 00 00 02 21 00 C3 02 00 00 00 02 !.......!.......
027430: 21 00 C4 02 00 00 00 02 21 00 C5 02 00 00 00 02 !.......!.......
027440: 21 00 C6 02 00 00 00 02 21 00 C7 02 00 00 00 02 !.......!.......
027450: 21 00 C8 02 00 00 00 02 21 00 C9 02 00 00 00 02 !.......!.......
027460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027500: 4D 20 52 45 53 45 54 20 69 73 20 63 61 6C 6C 65 M RESET is calle
027510: 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 d.........
027520: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
027530: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4D :...... KM
027540: 20 42 52 45 41 4B 20 45 56 45 4E 54 0D 0A 0D 0A BREAK EVENT....
027550: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
027560: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
027570: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
027580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027590: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
0275A0: 31 36 2E 31 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 16.15...........
0275B0: 0A 0D 0A 20 20 20 20 20 20 20 49 4E 44 3A 20 4D ... IND: M
0275C0: 43 20 57 41 49 54 20 50 52 49 4E 54 45 52 20 20 C WAIT PRINTER
0275D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0275E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0275F0: 20 20 20 20 20 20 20 20 20 20 20 23 42 44 46 31 #BDF1
027600: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 50 72 69 ...... Pri
027610: 6E 74 20 61 20 63 68 61 72 61 63 74 65 72 20 6F nt a character o
027620: 72 20 74 69 6D 65 20 6F 75 74 2E 0D 0A 0D 0A 0D r time out......
027630: 0A 20 20 20 20 20 20 20 44 65 66 61 75 6C 74 20 . Default
027640: 61 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 action:......
027650: 20 20 20 20 57 61 69 74 20 66 6F 72 20 74 68 65 Wait for the
027660: 20 43 65 6E 74 72 6F 6E 69 63 73 20 70 6F 72 74 Centronics port
027670: 20 74 6F 20 20 62 65 63 6F 6D 65 20 20 6E 6F 74 to become not
027680: 20 20 62 75 73 79 20 20 61 6E 64 20 20 74 68 65 busy and the
027690: 6E 20 20 73 65 6E 64 20 20 61 0D 0A 20 20 20 20 n send a..
0276A0: 20 20 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 character to
0276B0: 69 74 2E 20 49 66 20 74 68 65 20 70 6F 72 74 20 it. If the port
0276C0: 72 65 6D 61 69 6E 73 20 62 75 73 79 20 66 6F 72 remains busy for
0276D0: 20 61 20 6C 6F 6E 67 20 74 69 6D 65 20 74 68 65 a long time the
0276E0: 20 20 72 6F 75 74 69 6E 65 0D 0A 20 20 20 20 20 routine..
0276F0: 20 20 74 69 6D 65 73 20 6F 75 74 20 61 6E 64 20 times out and
027700: 74 68 65 20 63 68 61 72 61 63 74 65 72 20 69 73 the character is
027710: 20 6E 6F 74 20 73 65 6E 74 2E 0D 0A 0D 0A 0D 0A not sent.......
027720: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
027730: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
027740: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
027750: 74 68 65 20 63 68 61 72 61 63 74 65 72 20 74 6F the character to
027760: 20 73 65 6E 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 send.......
027770: 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F Exit conditio
027780: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
027790: 49 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 If the character
0277A0: 20 77 61 73 20 73 65 6E 74 20 4F 4B 3A 0D 0A 0D was sent OK:...
0277B0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
0277C0: 20 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A Carry true...
0277D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 .... If th
0277E0: 65 20 43 65 6E 74 72 6F 6E 69 63 73 20 70 6F 72 e Centronics por
0277F0: 74 20 74 69 6D 65 64 20 6F 75 74 3A 0D 0A 0D 0A t timed out:....
027800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027810: 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 0D 0A Carry false.....
027820: 20 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A Always:..
027830: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
027840: 20 20 41 20 61 6E 64 20 42 43 20 63 6F 72 72 75 A and BC corru
027850: 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 pt...
027860: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
027870: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
027880: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ed..... No
027890: 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 tes:.... T
0278A0: 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 his indirection
0278B0: 69 73 20 70 72 6F 76 69 64 65 64 20 74 6F 20 61 is provided to a
0278C0: 6C 6C 6F 77 20 74 68 65 20 75 73 65 72 20 74 6F llow the user to
0278D0: 20 64 72 69 76 65 20 74 68 65 20 70 72 69 6E 74 drive the print
0278E0: 65 72 20 69 6E 0D 0A 20 20 20 20 20 20 20 61 20 er in.. a
0278F0: 64 69 66 66 65 72 65 6E 74 20 77 61 79 2E 20 46 different way. F
027900: 6F 72 20 65 78 61 6D 70 6C 65 2C 20 27 65 73 63 or example, 'esc
027910: 61 70 65 20 73 65 71 75 65 6E 63 65 27 20 63 6F ape sequence' co
027920: 75 6C 64 20 20 62 65 20 20 68 61 6E 64 6C 65 64 uld be handled
027930: 20 20 6F 72 0D 0A 20 20 20 20 20 20 20 74 68 65 or.. the
027940: 20 74 69 6D 65 20 6F 75 74 20 63 6F 75 6C 64 20 time out could
027950: 62 65 20 63 68 61 6E 67 65 64 2E 0D 0A 0D 0A 20 be changed.....
027960: 20 20 20 20 20 20 54 68 69 73 20 69 6E 64 69 72 This indir
027970: 65 63 74 69 6F 6E 20 69 73 20 63 61 6C 6C 65 64 ection is called
027980: 20 62 79 20 74 68 65 20 72 6F 75 74 69 6E 65 20 by the routine
027990: 20 4D 43 20 20 50 52 49 4E 54 20 20 43 48 41 52 MC PRINT CHAR
0279A0: 2E 20 20 49 74 20 20 74 65 73 74 73 0D 0A 20 20 . It tests..
0279B0: 20 20 20 20 20 77 68 65 74 68 65 72 20 74 68 65 whether the
0279C0: 20 70 72 69 6E 74 65 72 20 69 73 20 62 75 73 79 printer is busy
0279D0: 20 69 6E 20 74 68 65 20 73 61 6D 65 20 77 61 79 in the same way
0279E0: 20 61 73 20 20 4D 43 20 20 42 55 53 59 20 20 50 as MC BUSY P
0279F0: 52 49 4E 54 45 52 20 20 61 6E 64 0D 0A 20 20 20 RINTER and..
027A00: 20 20 20 20 73 65 6E 64 73 20 74 68 65 20 63 68 sends the ch
027A10: 61 72 61 63 74 65 72 20 69 6E 20 74 68 65 20 73 aracter in the s
027A20: 61 6D 65 20 77 61 79 20 61 73 20 4D 43 20 53 45 ame way as MC SE
027A30: 4E 44 20 50 52 49 4E 54 45 52 2E 0D 0A 0D 0A 20 ND PRINTER.....
027A40: 20 20 20 20 20 20 54 68 69 73 20 69 6E 64 69 72 This indir
027A50: 65 63 74 69 6F 6E 20 69 73 20 73 65 74 20 75 70 ection is set up
027A60: 20 77 68 65 6E 20 4D 43 20 52 45 53 45 54 20 50 when MC RESET P
027A70: 52 49 4E 54 45 52 20 69 73 20 63 61 6C 6C 65 64 RINTER is called
027A80: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
027A90: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
027AA0: 20 20 20 20 20 20 20 4D 43 20 42 55 53 59 20 50 MC BUSY P
027AB0: 52 49 4E 54 45 52 0D 0A 20 20 20 20 20 20 20 4D RINTER.. M
027AC0: 43 20 50 52 49 4E 54 20 43 48 41 52 0D 0A 20 20 C PRINT CHAR..
027AD0: 20 20 20 20 20 4D 43 20 53 45 4E 44 20 50 52 49 MC SEND PRI
027AE0: 4E 54 45 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 NTER..........
027AF0: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
027B00: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
027B10: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
027B20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027B30: 20 70 61 67 65 20 31 36 2E 31 36 0D 0A 0D 0A 0D page 16.16.....
027B40: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
027B50: 49 4E 44 3A 20 4B 4D 20 53 43 41 4E 20 4B 45 59 IND: KM SCAN KEY
027B60: 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 S
027B70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027B80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027B90: 20 23 42 44 46 34 0D 0A 0D 0A 0D 0A 20 20 20 20 #BDF4......
027BA0: 20 20 20 53 63 61 6E 20 74 68 65 20 6B 65 79 62 Scan the keyb
027BB0: 6F 61 72 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 oard.......
027BC0: 20 20 44 65 66 61 75 6C 74 20 61 63 74 69 6F 6E Default action
027BD0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 63 :...... Sc
027BE0: 61 6E 73 20 74 68 65 20 6B 65 79 62 6F 61 72 64 ans the keyboard
027BF0: 20 61 6E 64 20 75 70 64 61 74 65 73 20 74 68 65 and updates the
027C00: 20 6B 65 79 20 73 74 61 74 65 20 6D 61 70 2E 20 key state map.
027C10: 4E 65 77 6C 79 20 20 70 72 65 73 73 65 64 20 20 Newly pressed
027C20: 6B 65 79 73 0D 0A 20 20 20 20 20 20 20 61 72 65 keys.. are
027C30: 20 64 65 74 65 63 74 65 64 20 61 6E 64 20 61 70 detected and ap
027C40: 70 72 6F 70 72 69 61 74 65 20 6D 61 72 6B 65 72 propriate marker
027C50: 73 20 61 72 65 20 69 6E 73 65 72 74 65 64 20 69 s are inserted i
027C60: 6E 74 6F 20 74 68 65 20 6B 65 79 20 62 75 66 66 nto the key buff
027C70: 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 er.......
027C80: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
027C90: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F :...... No
027CA0: 20 63 6F 6E 64 69 74 69 6F 6E 73 20 65 78 63 65 conditions exce
027CB0: 70 74 20 74 68 61 74 20 69 6E 74 65 72 72 75 70 pt that interrup
027CC0: 74 73 20 6D 75 73 74 20 62 65 20 64 69 73 61 62 ts must be disab
027CD0: 6C 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 led.......
027CE0: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
027CF0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
027D00: 2C 20 42 43 2C 20 44 45 20 61 6E 64 20 48 4C 20 , BC, DE and HL
027D10: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
027D20: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
027D30: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 20 61 ters preserved a
027D40: 6E 64 20 69 6E 74 65 72 72 75 70 74 73 20 72 65 nd interrupts re
027D50: 6D 61 69 6E 20 64 69 73 61 62 6C 65 64 2E 0D 0A main disabled...
027D60: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
027D70: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 :...... Th
027D80: 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 is indirection i
027D90: 73 20 63 61 6C 6C 65 64 20 65 76 65 72 79 20 66 s called every f
027DA0: 69 66 74 69 65 74 68 20 6F 66 20 61 20 73 65 63 iftieth of a sec
027DB0: 6F 6E 64 20 64 75 72 69 6E 67 20 61 20 20 74 69 ond during a ti
027DC0: 63 6B 65 72 0D 0A 20 20 20 20 20 20 20 69 6E 74 cker.. int
027DD0: 65 72 72 75 70 74 2E 20 54 68 65 20 72 65 70 65 errupt. The repe
027DE0: 61 74 20 73 70 65 65 64 73 20 61 6E 64 20 20 73 at speeds and s
027DF0: 74 61 72 74 2D 75 70 20 20 64 65 6C 61 79 73 20 tart-up delays
027E00: 20 6F 66 20 20 74 68 65 20 20 6B 65 79 73 20 20 of the keys
027E10: 61 72 65 0D 0A 20 20 20 20 20 20 20 6D 65 61 73 are.. meas
027E20: 75 72 65 64 20 69 6E 20 73 63 61 6E 73 20 6F 66 ured in scans of
027E30: 20 74 68 65 20 6B 65 79 62 6F 61 72 64 20 61 6E the keyboard an
027E40: 64 20 68 65 6E 63 65 20 66 69 66 74 69 65 74 68 d hence fiftieth
027E50: 20 6F 66 20 61 20 73 65 63 6F 6E 64 2E 0D 0A 0D of a second....
027E60: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
027E70: 20 65 73 63 61 70 65 20 6B 65 79 20 69 73 20 70 escape key is p
027E80: 72 65 73 73 65 64 20 74 68 65 6E 20 74 68 65 20 ressed then the
027E90: 69 6E 64 69 72 65 63 74 69 6F 6E 20 20 4B 4D 20 indirection KM
027EA0: 20 54 45 53 54 20 20 42 52 45 41 4B 20 20 69 73 TEST BREAK is
027EB0: 0D 0A 20 20 20 20 20 20 20 63 61 6C 6C 65 64 20 .. called
027EC0: 74 6F 20 70 72 6F 63 65 73 73 20 74 68 65 20 62 to process the b
027ED0: 72 65 61 6B 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 reak.........
027EE0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
027EF0: 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ies:......
027F00: 20 4B 4C 20 53 43 41 4E 20 4E 45 45 44 45 44 0D KL SCAN NEEDED.
027F10: 0A 20 20 20 20 20 20 20 4B 4D 20 52 45 41 44 20 . KM READ
027F20: 4B 45 59 0D 0A 20 20 20 20 20 20 20 4B 4D 20 54 KEY.. KM T
027F30: 45 53 54 20 42 52 45 41 4B 0D 0A 20 20 20 20 20 EST BREAK..
027F40: 20 20 4B 4D 20 54 45 53 54 20 4B 45 59 0D 0A 0D KM TEST KEY...
027F50: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
027F60: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
027F70: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
027F80: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
027F90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027FA0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
027FB0: 20 31 36 2E 31 37 0D 0A 1A 69 73 20 73 65 63 74 16.17...is sect
027FC0: 69 6F 6E 20 67 69 76 65 73 20 74 68 65 20 64 65 ion gives the de
027FD0: 74 61 69 6C 65 64 20 65 6E 74 72 79 20 61 6E 64 tailed entry and
027FE0: 20 65 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 exit conditions
027FF0: 20 61 6E 64 20 20 65 66 66 65 63 74 73 0D 0A 20 and effects..
028000: 20 6F 66 20 20 74 68 65 20 20 6B 65 79 73 20 20 of the keys
028010: 61 72 65 0D 0A 20 20 20 20 20 20 20 6D 65 61 73 are.. meas
028020: 75 72 65 64 20 69 6E 20 73 63 61 6E 73 20 6F 66 ured in scans of
028030: 20 74 68 65 20 6B 65 79 62 6F 61 72 64 20 61 6E the keyboard an
028040: 64 20 68 65 6E 63 65 20 66 69 66 74 69 65 74 68 d hence fiftieth
028050: 20 6F 66 20 61 20 73 65 63 6F 6E 64 2E 0D 0A 0D of a second....
028060: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
028070: 20 65 73 63 61 70 65 20 6B 65 79 20 69 73 20 70 escape key is p
028080: 72 65 73 73 65 64 20 74 68 65 6E 20 74 68 65 20 ressed then the
028090: 69 6E 64 69 72 65 63 74 69 6F 6E 20 20 4B 4D 20 indirection KM
0280A0: 20 54 45 53 54 20 20 42 52 45 41 4B 20 20 69 73 TEST BREAK is
0280B0: 0D 0A 20 20 20 20 20 20 20 63 61 6C 6C 65 64 20 .. called
0280C0: 74 6F 20 70 72 6F 63 65 73 73 20 74 68 65 20 62 to process the b
0280D0: 72 65 61 6B 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 reak.........
0280E0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
0280F0: 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ies:......
028100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028300: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
028310: 37 20 54 68 65 20 48 69 67 68 20 4B 65 72 6E 65 7 The High Kerne
028320: 6C 20 4A 75 6D 70 62 6C 6F 63 6B 2E 0D 0A 0D 0A l Jumpblock.....
028330: 0D 0A 20 20 20 20 20 20 20 53 65 70 61 72 61 74 .. Separat
028340: 65 20 66 72 6F 6D 20 74 68 65 20 6D 61 69 6E 20 e from the main
028350: 66 69 72 6D 77 61 72 65 20 6A 75 6D 70 62 6C 6F firmware jumpblo
028360: 63 6B 20 69 73 20 20 61 20 20 73 6D 61 6C 6C 20 ck is a small
028370: 20 6A 75 6D 70 62 6C 6F 63 6B 20 20 66 6F 72 0D jumpblock for.
028380: 0A 20 20 20 20 20 20 20 4B 65 72 6E 65 6C 20 72 . Kernel r
028390: 6F 75 74 69 6E 65 73 20 61 73 73 6F 63 69 61 74 outines associat
0283A0: 65 64 20 77 69 74 68 20 20 52 4F 4D 20 20 73 74 ed with ROM st
0283B0: 61 74 65 20 20 61 6E 64 20 20 52 4F 4D 20 20 73 ate and ROM s
0283C0: 65 6C 65 63 74 69 6F 6E 2E 20 20 54 68 65 0D 0A election. The..
0283D0: 20 20 20 20 20 20 20 72 6F 75 74 69 6E 65 73 20 routines
0283E0: 61 63 63 65 73 73 65 64 20 74 68 72 6F 75 67 68 accessed through
0283F0: 20 74 68 69 73 20 6A 75 6D 70 62 6C 6F 63 6B 20 this jumpblock
028400: 20 61 72 65 20 20 61 6C 6C 20 20 52 41 4D 20 20 are all RAM
028410: 72 65 73 69 64 65 6E 74 2C 20 20 74 6F 0D 0A 20 resident, to..
028420: 20 20 20 20 20 20 61 76 6F 69 64 20 63 6F 6E 66 avoid conf
028430: 75 73 69 6F 6E 20 77 68 69 6C 65 20 74 68 65 20 usion while the
028440: 52 4F 4D 20 73 74 61 74 65 20 61 6E 64 20 52 4F ROM state and RO
028450: 4D 20 73 65 6C 65 63 74 20 20 61 72 65 20 20 63 M select are c
028460: 68 61 6E 67 65 64 21 20 20 54 68 65 0D 0A 20 20 hanged! The..
028470: 20 20 20 20 20 52 41 4D 20 61 72 65 61 20 69 73 RAM area is
028480: 20 63 6F 70 69 65 64 20 6F 75 74 20 6F 66 20 52 copied out of R
028490: 4F 4D 20 64 75 72 69 6E 67 20 74 68 65 20 70 6F OM during the po
0284A0: 77 65 72 2D 75 70 20 69 6E 69 74 69 61 6C 69 7A wer-up initializ
0284B0: 61 74 69 6F 6E 2E 20 20 54 68 65 0D 0A 20 20 20 ation. The..
0284C0: 20 20 20 20 6A 75 6D 70 62 6C 6F 63 6B 20 73 68 jumpblock sh
0284D0: 6F 75 6C 64 20 6E 6F 74 20 62 65 20 61 6C 74 65 ould not be alte
0284E0: 72 65 64 20 62 79 20 74 68 65 20 75 73 65 72 2E red by the user.
0284F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
028500: 20 65 6E 74 72 79 20 4B 4C 20 50 4F 4C 4C 20 20 entry KL POLL
028510: 53 59 4E 43 48 52 4F 4E 4F 55 53 20 20 69 73 20 SYNCHRONOUS is
028520: 20 74 68 65 20 20 27 6F 64 64 20 20 6D 61 6E 20 the 'odd man
028530: 20 6F 75 74 27 20 20 61 6D 6F 6E 67 73 74 20 20 out' amongst
028540: 74 68 65 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 the.. rout
028550: 69 6E 65 73 20 20 69 6E 20 20 74 68 69 73 20 20 ines in this
028560: 6A 75 6D 70 62 6C 6F 63 6B 2E 20 20 55 6E 6C 69 jumpblock. Unli
028570: 6B 65 20 20 74 68 65 20 20 6F 74 68 65 72 20 20 ke the other
028580: 73 79 6E 63 68 72 6F 6E 6F 75 73 20 20 65 76 65 synchronous eve
028590: 6E 74 0D 0A 20 20 20 20 20 20 20 68 61 6E 64 6C nt.. handl
0285A0: 69 6E 67 20 72 6F 75 74 69 6E 65 73 2C 20 77 68 ing routines, wh
0285B0: 69 63 68 20 61 72 65 20 69 6E 20 74 68 65 20 6C ich are in the l
0285C0: 6F 77 65 72 20 52 4F 4D 2C 20 20 74 68 69 73 20 ower ROM, this
0285D0: 20 72 6F 75 74 69 6E 65 20 20 69 73 20 20 52 41 routine is RA
0285E0: 4D 0D 0A 20 20 20 20 20 20 20 72 65 73 69 64 65 M.. reside
0285F0: 6E 74 2E 20 20 54 68 69 73 20 20 6D 69 6E 69 6D nt. This minim
028600: 69 73 65 73 20 20 74 68 65 20 20 6F 76 65 72 68 ises the overh
028610: 65 61 64 20 20 69 6E 76 6F 6C 76 65 64 20 20 69 ead involved i
028620: 6E 20 20 70 6F 6C 6C 69 6E 67 20 20 20 66 6F 72 n polling for
028630: 0D 0A 20 20 20 20 20 20 20 73 79 6E 63 68 72 6F .. synchro
028640: 6E 6F 75 73 20 65 76 65 6E 74 73 2E 0D 0A 0D 0A nous events.....
028650: 0D 0A 20 20 20 20 20 20 20 41 20 62 72 69 65 66 .. A brief
028660: 20 6C 69 73 74 69 6E 67 20 6F 66 20 74 68 65 20 listing of the
028670: 65 6E 74 72 69 65 73 20 69 6E 20 20 74 68 69 73 entries in this
028680: 20 20 6A 75 6D 70 62 6C 6F 63 6B 20 20 63 61 6E jumpblock can
028690: 20 20 62 65 20 20 66 6F 75 6E 64 20 20 69 6E 0D be found in.
0286A0: 0A 20 20 20 20 20 20 20 73 65 63 74 69 6F 6E 20 . section
0286B0: 31 34 2E 33 2E 20 41 20 64 69 73 63 75 73 73 69 14.3. A discussi
0286C0: 6F 6E 20 6F 66 20 52 4F 4D 73 20 61 6E 64 20 74 on of ROMs and t
0286D0: 68 65 20 6D 65 6D 6F 72 79 20 6D 61 70 20 63 61 he memory map ca
0286E0: 6E 20 62 65 20 66 6F 75 6E 64 20 20 69 6E 0D 0A n be found in..
0286F0: 20 20 20 20 20 20 20 73 65 63 74 69 6F 6E 20 32 section 2
028700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
028710: 22 00 00 00 02 09 50 E5 22 00 C1 02 00 00 00 02 ".....P.".......
028720: 22 00 C2 02 00 00 00 02 22 00 C3 02 00 00 00 02 ".......".......
028730: 22 00 C4 02 00 00 00 02 22 00 C5 02 00 00 00 02 ".......".......
028740: 22 00 C6 02 00 00 00 02 22 00 C7 02 00 00 00 02 ".......".......
028750: 22 00 C8 02 00 00 00 02 22 00 C9 02 00 00 00 02 ".......".......
028760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028800: 2C 20 66 75 72 74 68 65 72 20 64 69 73 63 75 73 , further discus
028810: 73 69 6F 6E 20 6F 66 20 52 4F 4D 73 20 63 61 6E sion of ROMs can
028820: 20 62 65 20 66 6F 75 6E 64 20 69 6E 20 73 65 63 be found in sec
028830: 74 69 6F 6E 20 31 30 20 61 6E 64 20 61 0D 0A 20 tion 10 and a..
028840: 20 20 20 20 20 20 64 69 73 63 75 73 73 69 6F 6E discussion
028850: 20 6F 66 20 65 76 65 6E 74 73 20 63 61 6E 20 62 of events can b
028860: 65 20 66 6F 75 6E 64 20 69 6E 20 73 65 63 74 69 e found in secti
028870: 6F 6E 20 31 32 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A on 12...........
028880: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
028890: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0288A0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0288B0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
0288C0: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
0288D0: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
0288E0: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
0288F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028900: 20 20 70 61 67 65 20 31 37 2E 31 0D 0A 0D 0A 0D page 17.1.....
028910: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
028920: 48 49 3A 20 4B 4C 20 55 20 52 4F 4D 20 45 4E 41 HI: KL U ROM ENA
028930: 42 4C 45 20 20 20 20 20 20 20 20 20 20 20 20 20 BLE
028940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028960: 20 23 42 39 30 30 0D 0A 0D 0A 0D 0A 20 20 20 20 #B900......
028970: 20 20 20 45 6E 61 62 6C 65 20 74 68 65 20 75 70 Enable the up
028980: 70 65 72 20 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 20 20 per ROM.......
028990: 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A Action:....
0289A0: 0D 0A 20 20 20 20 20 20 20 45 6E 61 62 6C 65 73 .. Enables
0289B0: 20 74 68 65 20 63 75 72 72 65 6E 74 6C 79 20 73 the currently s
0289C0: 65 6C 65 63 74 65 64 20 75 70 70 65 72 20 52 4F elected upper RO
0289D0: 4D 2E 20 52 65 61 64 69 6E 67 20 66 72 6F 6D 20 M. Reading from
0289E0: 61 64 64 72 65 73 73 65 73 20 23 43 30 30 30 0D addresses #C000.
0289F0: 0A 20 20 20 20 20 20 20 61 6E 64 20 75 70 20 77 . and up w
028A00: 69 6C 6C 20 6E 6F 77 20 72 65 74 75 72 6E 20 74 ill now return t
028A10: 68 65 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 74 he contents of t
028A20: 68 65 20 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 20 20 20 he ROM.......
028A30: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
028A40: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
028A50: 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E No conditions.
028A60: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 ...... Exi
028A70: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
028A80: 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 ... A cont
028A90: 61 69 6E 73 20 74 68 65 20 70 72 65 76 69 6F 75 ains the previou
028AA0: 73 20 52 4F 4D 20 73 74 61 74 65 2E 0D 0A 0D 0A s ROM state.....
028AB0: 0D 0A 20 20 20 20 20 20 20 46 6C 61 67 73 20 63 .. Flags c
028AC0: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
028AD0: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
028AE0: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
028AF0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
028B00: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 :...... Th
028B10: 65 20 6D 65 63 68 61 6E 69 73 6D 20 70 72 6F 76 e mechanism prov
028B20: 69 64 65 64 20 66 6F 72 20 63 61 6C 6C 69 6E 67 ided for calling
028B30: 20 73 75 62 72 6F 75 74 69 6E 65 73 20 69 6E 20 subroutines in
028B40: 74 68 65 20 20 75 70 70 65 72 20 20 52 4F 4D 20 the upper ROM
028B50: 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 66 6F 72 and.. for
028B60: 20 73 65 6C 65 63 74 69 6E 67 20 75 70 70 65 72 selecting upper
028B70: 20 52 4F 4D 73 20 61 75 74 6F 6D 61 74 69 63 61 ROMs automatica
028B80: 6C 6C 79 20 65 6E 61 62 6C 65 20 20 74 68 65 20 lly enable the
028B90: 20 52 4F 4D 20 20 61 73 20 20 72 65 71 75 69 72 ROM as requir
028BA0: 65 64 2E 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ed... This
028BB0: 20 72 6F 75 74 69 6E 65 20 69 73 20 75 73 65 64 routine is used
028BC0: 20 62 79 20 74 68 65 20 66 69 72 6D 77 61 72 65 by the firmware
028BD0: 20 62 75 74 20 69 73 20 6F 74 68 65 72 77 69 73 but is otherwis
028BE0: 65 20 6F 66 20 6C 69 74 74 6C 65 20 75 73 65 2E e of little use.
028BF0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
028C00: 20 70 72 65 76 69 6F 75 73 20 52 4F 4D 20 73 74 previous ROM st
028C10: 61 74 65 20 6D 61 79 20 62 65 20 70 61 73 73 65 ate may be passe
028C20: 64 20 74 6F 20 4B 4C 20 52 4F 4D 20 52 45 53 54 d to KL ROM REST
028C30: 4F 52 45 20 20 74 6F 20 20 72 65 73 65 74 20 20 ORE to reset
028C40: 74 68 65 0D 0A 20 20 20 20 20 20 20 73 74 61 74 the.. stat
028C50: 65 20 74 6F 20 77 68 61 74 20 69 74 20 77 61 73 e to what it was
028C60: 20 62 65 66 6F 72 65 20 74 68 69 73 20 72 6F 75 before this rou
028C70: 74 69 6E 65 20 77 61 73 20 63 61 6C 6C 65 64 2E tine was called.
028C80: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 ...... Thi
028C90: 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 s routine enable
028CA0: 73 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D s interrupts....
028CB0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
028CC0: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
028CD0: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 4C 20 52 4F .. KL L RO
028CE0: 4D 20 45 4E 41 42 4C 45 0D 0A 20 20 20 20 20 20 M ENABLE..
028CF0: 20 4B 4C 20 52 4F 4D 20 52 45 53 54 4F 52 45 0D KL ROM RESTORE.
028D00: 0A 20 20 20 20 20 20 20 4B 4C 20 52 4F 4D 20 53 . KL ROM S
028D10: 45 4C 45 43 54 0D 0A 20 20 20 20 20 20 20 4B 4C ELECT.. KL
028D20: 20 55 20 52 4F 4D 20 44 49 53 41 42 4C 45 0D 0A U ROM DISABLE..
028D30: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
028D40: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
028D50: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
028D60: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
028D70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028D80: 20 20 70 61 67 65 20 31 37 2E 32 0D 0A 0D 0A 0D page 17.2.....
028D90: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
028DA0: 48 49 3A 20 4B 4C 20 55 20 52 4F 4D 20 44 49 53 HI: KL U ROM DIS
028DB0: 41 42 4C 45 20 20 20 20 20 20 20 20 20 20 20 20 ABLE
028DC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028DD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028DE0: 20 23 42 39 30 33 0D 0A 0D 0A 0D 0A 20 20 20 20 #B903......
028DF0: 20 20 20 44 69 73 61 62 6C 65 20 74 68 65 20 75 Disable the u
028E00: 70 70 65 72 20 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 20 pper ROM.......
028E10: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
028E20: 0A 0D 0A 20 20 20 20 20 20 20 44 69 73 61 62 6C ... Disabl
028E30: 65 73 20 74 68 65 20 75 70 70 65 72 20 52 4F 4D es the upper ROM
028E40: 2E 20 52 65 61 64 69 6E 67 20 66 72 6F 6D 20 61 . Reading from a
028E50: 64 64 72 65 73 73 65 73 20 23 43 30 30 30 20 61 ddresses #C000 a
028E60: 6E 64 20 75 70 20 20 77 69 6C 6C 20 20 6E 6F 77 nd up will now
028E70: 0D 0A 20 20 20 20 20 20 20 72 65 74 75 72 6E 20 .. return
028E80: 74 68 65 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 the contents of
028E90: 74 68 65 20 52 41 4D 2E 0D 0A 0D 0A 0D 0A 20 20 the RAM.......
028EA0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
028EB0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
028EC0: 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 No conditions
028ED0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
028EE0: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
028EF0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 6F 6E .... A con
028F00: 74 61 69 6E 73 20 74 68 65 20 70 72 65 76 69 6F tains the previo
028F10: 75 73 20 52 4F 4D 20 73 74 61 74 65 2E 0D 0A 0D us ROM state....
028F20: 0A 0D 0A 20 20 20 20 20 20 20 46 6C 61 67 73 20 ... Flags
028F30: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
028F40: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
028F50: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
028F60: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
028F70: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 s:...... D
028F80: 69 73 61 62 6C 69 6E 67 20 74 68 65 20 75 70 70 isabling the upp
028F90: 65 72 20 52 4F 4D 20 67 69 76 65 73 20 72 65 61 er ROM gives rea
028FA0: 64 20 61 63 63 65 73 73 20 74 6F 20 74 68 65 20 d access to the
028FB0: 74 6F 70 20 31 36 4B 20 6F 66 20 52 41 4D 2C 20 top 16K of RAM,
028FC0: 77 68 69 63 68 0D 0A 20 20 20 20 20 20 20 69 73 which.. is
028FD0: 20 75 73 75 61 6C 6C 79 20 75 73 65 64 20 61 73 usually used as
028FE0: 20 74 68 65 20 73 63 72 65 65 6E 20 6D 65 6D 6F the screen memo
028FF0: 72 79 2E 20 20 4E 6F 74 65 20 20 74 68 61 74 20 ry. Note that
029000: 20 74 68 65 20 20 6D 61 70 70 69 6E 67 20 20 6F the mapping o
029010: 66 20 20 61 0D 0A 20 20 20 20 20 20 20 6C 6F 63 f a.. loc
029020: 61 74 69 6F 6E 20 69 6E 20 73 63 72 65 65 6E 20 ation in screen
029030: 6D 65 6D 6F 72 79 20 74 6F 20 70 69 78 65 6C 73 memory to pixels
029040: 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 64 on the screen d
029050: 65 70 65 6E 64 73 20 6F 6E 20 74 68 65 20 20 6D epends on the m
029060: 6F 64 65 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 ode.. and
029070: 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 6F 66 on the screen of
029080: 66 73 65 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 fset.......
029090: 20 20 49 74 20 20 69 73 20 20 69 6E 61 64 76 69 It is inadvi
0290A0: 73 61 62 6C 65 20 20 74 6F 20 20 64 69 73 61 62 sable to disab
0290B0: 6C 65 20 20 74 68 65 20 20 75 70 70 65 72 20 20 le the upper
0290C0: 20 52 4F 4D 20 20 20 77 68 69 6C 65 20 20 20 65 ROM while e
0290D0: 78 65 63 75 74 69 6E 67 0D 0A 20 20 20 20 20 20 xecuting..
0290E0: 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 69 6E instructions in
0290F0: 20 69 74 21 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 it!......
029100: 20 54 68 65 20 70 72 65 76 69 6F 75 73 20 52 4F The previous RO
029110: 4D 20 73 74 61 74 65 20 6D 61 79 20 62 65 20 70 M state may be p
029120: 61 73 73 65 64 20 74 6F 20 4B 4C 20 52 4F 4D 20 assed to KL ROM
029130: 52 45 53 54 4F 52 45 20 20 74 6F 20 20 72 65 73 RESTORE to res
029140: 65 74 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 et the..
029150: 73 74 61 74 65 20 74 6F 20 77 68 61 74 20 69 74 state to what it
029160: 20 77 61 73 20 62 65 66 6F 72 65 20 74 68 69 73 was before this
029170: 20 72 6F 75 74 69 6E 65 20 77 61 73 20 63 61 6C routine was cal
029180: 6C 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 led.......
029190: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 6E This routine en
0291A0: 61 62 6C 65 73 20 69 6E 74 65 72 72 75 70 74 73 ables interrupts
0291B0: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0291C0: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
0291D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4C 20 ...... KL
0291E0: 4C 20 52 4F 4D 20 44 49 53 41 42 4C 45 0D 0A 20 L ROM DISABLE..
0291F0: 20 20 20 20 20 20 4B 4C 20 52 4F 4D 20 52 45 53 KL ROM RES
029200: 54 4F 52 45 0D 0A 20 20 20 20 20 20 20 4B 4C 20 TORE.. KL
029210: 55 20 52 4F 4D 20 45 4E 41 42 4C 45 0D 0A 0D 0A U ROM ENABLE....
029220: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
029230: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
029240: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
029250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029260: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 37 2E page 17.
029270: 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 3..............
029280: 20 20 20 20 20 20 48 49 3A 20 4B 4C 20 4C 20 52 HI: KL L R
029290: 4F 4D 20 45 4E 41 42 4C 45 20 20 20 20 20 20 20 OM ENABLE
0292A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0292B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0292C0: 20 20 20 20 20 20 20 23 42 39 30 36 0D 0A 0D 0A #B906....
0292D0: 0D 0A 20 20 20 20 20 20 20 45 6E 61 62 6C 65 20 .. Enable
0292E0: 74 68 65 20 6C 6F 77 65 72 20 52 4F 4D 2E 0D 0A the lower ROM...
0292F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F .... Actio
029300: 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 n:...... E
029310: 6E 61 62 6C 65 73 20 74 68 65 20 6C 6F 77 65 72 nables the lower
029320: 20 52 4F 4D 2E 20 52 65 61 64 69 6E 67 20 66 72 ROM. Reading fr
029330: 6F 6D 20 61 64 64 72 65 73 73 65 73 20 20 62 65 om addresses be
029340: 6C 6F 77 20 20 23 34 30 30 30 20 20 77 69 6C 6C low #4000 will
029350: 20 20 6E 6F 77 0D 0A 20 20 20 20 20 20 20 72 65 now.. re
029360: 74 75 72 6E 20 74 68 65 20 63 6F 6E 74 65 6E 74 turn the content
029370: 73 20 6F 66 20 74 68 65 20 52 4F 4D 2E 0D 0A 0D s of the ROM....
029380: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
029390: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
0293A0: 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 . No condi
0293B0: 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 tions.......
0293C0: 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F Exit conditio
0293D0: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
0293E0: 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 A contains the p
0293F0: 72 65 76 69 6F 75 73 20 52 4F 4D 20 73 74 61 74 revious ROM stat
029400: 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 e....... F
029410: 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 lags corrupt...
029420: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
029430: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
029440: 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ved.......
029450: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 Notes:......
029460: 20 20 20 20 49 6E 20 67 65 6E 65 72 61 6C 20 74 In general t
029470: 68 65 20 6C 6F 77 65 72 20 52 4F 4D 20 69 73 20 he lower ROM is
029480: 64 69 73 61 62 6C 65 64 20 65 78 63 65 70 74 20 disabled except
029490: 77 68 65 6E 20 61 20 66 69 72 6D 77 61 72 65 20 when a firmware
0294A0: 72 6F 75 74 69 6E 65 20 69 73 0D 0A 20 20 20 20 routine is..
0294B0: 20 20 20 63 61 6C 6C 65 64 2E 20 54 68 65 20 66 called. The f
0294C0: 69 72 6D 77 61 72 65 20 20 6A 75 6D 70 62 6C 6F irmware jumpblo
0294D0: 63 6B 20 20 61 72 72 61 6E 67 65 73 20 20 74 6F ck arranges to
0294E0: 20 20 65 6E 61 62 6C 65 20 20 74 68 65 20 20 6C enable the l
0294F0: 6F 77 65 72 20 20 52 4F 4D 0D 0A 20 20 20 20 20 ower ROM..
029500: 20 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 automatically
029510: 61 6E 64 20 74 6F 20 64 69 73 61 62 6C 65 20 69 and to disable i
029520: 74 20 61 67 61 69 6E 20 77 68 65 6E 20 74 68 65 t again when the
029530: 20 72 6F 75 74 69 6E 65 20 20 72 65 74 75 72 6E routine return
029540: 73 2E 20 20 54 68 69 73 0D 0A 20 20 20 20 20 20 s. This..
029550: 20 72 6F 75 74 69 6E 65 20 69 73 20 75 73 65 64 routine is used
029560: 20 62 79 20 74 68 65 20 66 69 72 6D 77 61 72 65 by the firmware
029570: 20 62 75 74 20 69 73 20 6F 74 68 65 72 77 69 73 but is otherwis
029580: 65 20 6F 66 20 6C 69 74 74 6C 65 20 75 73 65 2E e of little use.
029590: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
0295A0: 20 70 72 65 76 69 6F 75 73 20 52 4F 4D 20 73 74 previous ROM st
0295B0: 61 74 65 20 6D 61 79 20 62 65 20 70 61 73 73 65 ate may be passe
0295C0: 64 20 74 6F 20 4B 4C 20 52 4F 4D 20 52 45 53 54 d to KL ROM REST
0295D0: 4F 52 45 20 20 74 6F 20 20 72 65 73 65 74 20 20 ORE to reset
0295E0: 74 68 65 0D 0A 20 20 20 20 20 20 20 73 74 61 74 the.. stat
0295F0: 65 20 74 6F 20 77 68 61 74 20 69 74 20 77 61 73 e to what it was
029600: 20 62 65 66 6F 72 65 20 74 68 69 73 20 72 6F 75 before this rou
029610: 74 69 6E 65 20 77 61 73 20 63 61 6C 6C 65 64 2E tine was called.
029620: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 ...... Thi
029630: 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 s routine enable
029640: 73 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D s interrupts....
029650: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
029660: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
029670: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 4C 20 52 4F .. KL L RO
029680: 4D 20 44 49 53 41 42 4C 45 0D 0A 20 20 20 20 20 M DISABLE..
029690: 20 20 4B 4C 20 52 4F 4D 20 52 45 53 54 4F 52 45 KL ROM RESTORE
0296A0: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 55 20 52 4F .. KL U RO
0296B0: 4D 20 45 4E 41 42 4C 45 0D 0A 0D 0A 0D 0A 0D 0A M ENABLE........
0296C0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
0296D0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
0296E0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
0296F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029700: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
029710: 20 31 37 2E 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 17.4...........
029720: 0A 0D 0A 20 20 20 20 20 20 20 48 49 3A 20 4B 4C ... HI: KL
029730: 20 4C 20 52 4F 4D 20 44 49 53 41 42 4C 45 20 20 L ROM DISABLE
029740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029760: 20 20 20 20 20 20 20 20 20 20 20 23 42 39 30 39 #B909
029770: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 69 73 ...... Dis
029780: 61 62 6C 65 20 74 68 65 20 6C 6F 77 65 72 20 52 able the lower R
029790: 4F 4D 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 OM.......
0297A0: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
0297B0: 20 20 20 20 44 69 73 61 62 6C 65 73 20 74 68 65 Disables the
0297C0: 20 6C 6F 77 65 72 20 52 4F 4D 2E 20 52 65 61 64 lower ROM. Read
0297D0: 69 6E 67 20 66 72 6F 6D 20 61 64 64 72 65 73 73 ing from address
0297E0: 65 73 20 62 65 6C 6F 77 20 20 23 34 30 30 30 20 es below #4000
0297F0: 20 77 69 6C 6C 20 20 6E 6F 77 0D 0A 20 20 20 20 will now..
029800: 20 20 20 72 65 74 75 72 6E 20 74 68 65 20 63 6F return the co
029810: 6E 74 65 6E 74 73 20 6F 66 20 74 68 65 20 52 41 ntents of the RA
029820: 4D 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 M....... E
029830: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
029840: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 ...... No
029850: 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D conditions......
029860: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
029870: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
029880: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
029890: 74 68 65 20 70 72 65 76 69 6F 75 73 20 52 4F 4D the previous ROM
0298A0: 20 73 74 61 74 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 state.......
0298B0: 20 20 20 20 46 6C 61 67 73 20 63 6F 72 72 75 70 Flags corrup
0298C0: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
0298D0: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
0298E0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
0298F0: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
029900: 0D 0A 20 20 20 20 20 20 20 49 6E 20 67 65 6E 65 .. In gene
029910: 72 61 6C 20 74 68 65 20 6C 6F 77 65 72 20 52 4F ral the lower RO
029920: 4D 20 69 73 20 64 69 73 61 62 6C 65 64 20 65 78 M is disabled ex
029930: 63 65 70 74 20 77 68 65 6E 20 61 20 66 69 72 6D cept when a firm
029940: 77 61 72 65 20 72 6F 75 74 69 6E 65 20 69 73 0D ware routine is.
029950: 0A 20 20 20 20 20 20 20 63 61 6C 6C 65 64 2E 20 . called.
029960: 54 68 65 20 66 69 72 6D 77 61 72 65 20 20 6A 75 The firmware ju
029970: 6D 70 62 6C 6F 63 6B 20 20 61 72 72 61 6E 67 65 mpblock arrange
029980: 73 20 20 74 6F 20 20 65 6E 61 62 6C 65 20 20 74 s to enable t
029990: 68 65 20 20 6C 6F 77 65 72 20 20 52 4F 4D 0D 0A he lower ROM..
0299A0: 20 20 20 20 20 20 20 61 75 74 6F 6D 61 74 69 63 automatic
0299B0: 61 6C 6C 79 20 61 6E 64 20 74 6F 20 64 69 73 61 ally and to disa
0299C0: 62 6C 65 20 69 74 20 61 67 61 69 6E 20 77 68 65 ble it again whe
0299D0: 6E 20 74 68 65 20 72 6F 75 74 69 6E 65 20 20 72 n the routine r
0299E0: 65 74 75 72 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 eturns.......
0299F0: 20 20 20 20 54 68 65 20 70 72 65 76 69 6F 75 73 The previous
029A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
029A10: 23 00 00 00 02 09 50 E5 23 00 C1 02 00 00 00 02 #.....P.#.......
029A20: 23 00 C2 02 00 00 00 02 23 00 C3 02 00 00 00 02 #.......#.......
029A30: 23 00 C4 02 00 00 00 02 23 00 C5 02 00 00 00 02 #.......#.......
029A40: 23 00 C6 02 00 00 00 02 23 00 C7 02 00 00 00 02 #.......#.......
029A50: 23 00 C8 02 00 00 00 02 23 00 C9 02 00 00 00 02 #.......#.......
029A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029B00: 20 52 4F 4D 20 73 74 61 74 65 20 6D 61 79 20 62 ROM state may b
029B10: 65 20 70 61 73 73 65 64 20 74 6F 20 4B 4C 20 52 e passed to KL R
029B20: 4F 4D 20 52 45 53 54 4F 52 45 20 20 74 6F 20 20 OM RESTORE to
029B30: 72 65 73 65 74 20 20 74 68 65 0D 0A 20 20 20 20 reset the..
029B40: 20 20 20 73 74 61 74 65 20 74 6F 20 77 68 61 74 state to what
029B50: 20 69 74 20 77 61 73 20 62 65 66 6F 72 65 20 74 it was before t
029B60: 68 69 73 20 72 6F 75 74 69 6E 65 20 77 61 73 20 his routine was
029B70: 63 61 6C 6C 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 called.......
029B80: 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 This routine
029B90: 20 65 6E 61 62 6C 65 73 20 69 6E 74 65 72 72 75 enables interru
029BA0: 70 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 pts.........
029BB0: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
029BC0: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
029BD0: 4B 4C 20 4C 20 52 4F 4D 20 45 4E 41 42 4C 45 0D KL L ROM ENABLE.
029BE0: 0A 20 20 20 20 20 20 20 4B 4C 20 52 4F 4D 20 52 . KL ROM R
029BF0: 45 53 54 4F 52 45 0D 0A 20 20 20 20 20 20 20 4B ESTORE.. K
029C00: 4C 20 55 20 52 4F 4D 20 44 49 53 41 42 4C 45 0D L U ROM DISABLE.
029C10: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
029C20: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
029C30: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
029C40: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
029C50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029C60: 20 20 20 20 20 70 61 67 65 20 31 37 2E 35 0D 0A page 17.5..
029C70: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
029C80: 20 20 20 48 49 3A 20 4B 4C 20 52 4F 4D 20 52 45 HI: KL ROM RE
029C90: 53 54 4F 52 45 20 20 20 20 20 20 20 20 20 20 20 STORE
029CA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029CB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029CC0: 20 20 20 20 23 42 39 30 43 0D 0A 0D 0A 0D 0A 20 #B90C......
029CD0: 20 20 20 20 20 20 52 65 73 74 6F 72 65 20 74 68 Restore th
029CE0: 65 20 70 72 65 76 69 6F 75 73 20 52 4F 4D 20 73 e previous ROM s
029CF0: 74 61 74 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tate.......
029D00: 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 Action:......
029D10: 20 20 20 20 20 20 54 68 65 20 52 4F 4D 20 73 74 The ROM st
029D20: 61 74 65 20 63 68 61 6E 67 65 20 72 6F 75 74 69 ate change routi
029D30: 6E 65 73 20 61 6C 6C 20 72 65 74 75 72 6E 20 61 nes all return a
029D40: 20 76 61 6C 75 65 20 67 69 76 69 6E 67 20 20 74 value giving t
029D50: 68 65 20 20 70 72 65 76 69 6F 75 73 0D 0A 20 20 he previous..
029D60: 20 20 20 20 20 52 4F 4D 20 73 74 61 74 65 2E 20 ROM state.
029D70: 47 69 76 65 6E 20 74 68 61 74 20 76 61 6C 75 65 Given that value
029D80: 20 4B 4C 20 52 4F 4D 20 52 45 53 54 4F 52 45 20 KL ROM RESTORE
029D90: 77 69 6C 6C 20 20 72 65 73 65 74 20 20 74 68 65 will reset the
029DA0: 20 20 73 74 61 74 65 20 20 74 6F 0D 0A 20 20 20 state to..
029DB0: 20 20 20 20 77 68 61 74 20 69 74 20 77 61 73 20 what it was
029DC0: 62 65 66 6F 72 65 20 74 68 65 20 63 68 61 6E 67 before the chang
029DD0: 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 e....... E
029DE0: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
029DF0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 ...... A c
029E00: 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 72 65 76 ontains the prev
029E10: 69 6F 75 73 20 52 4F 4D 20 73 74 61 74 65 2E 0D ious ROM state..
029E20: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
029E30: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
029E40: 0D 0A 20 20 20 20 20 20 20 41 46 20 63 6F 72 72 .. AF corr
029E50: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C upt... All
029E60: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
029E70: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
029E80: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
029E90: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 70 .... The p
029EA0: 72 65 76 69 6F 75 73 20 52 4F 4D 20 73 74 61 74 revious ROM stat
029EB0: 65 20 69 73 20 74 68 65 20 76 61 6C 75 65 20 72 e is the value r
029EC0: 65 74 75 72 6E 65 64 20 62 79 20 6F 6E 65 20 6F eturned by one o
029ED0: 66 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 f:......
029EE0: 20 20 20 20 20 20 20 20 4B 4C 20 55 20 52 4F 4D KL U ROM
029EF0: 20 45 4E 41 42 4C 45 0D 0A 20 20 20 20 20 20 20 ENABLE..
029F00: 20 20 20 20 20 20 20 20 20 4B 4C 20 55 20 52 4F KL U RO
029F10: 4D 20 44 49 53 41 42 4C 45 0D 0A 20 20 20 20 20 M DISABLE..
029F20: 20 20 20 20 20 20 20 20 20 20 20 4B 4C 20 4C 20 KL L
029F30: 52 4F 4D 20 45 4E 41 42 4C 45 0D 0A 20 20 20 20 ROM ENABLE..
029F40: 20 20 20 20 20 20 20 20 20 20 20 20 4B 4C 20 4C KL L
029F50: 20 52 4F 4D 20 44 49 53 41 42 4C 45 0D 0A 20 20 ROM DISABLE..
029F60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4B 4C KL
029F70: 20 52 4F 4D 20 53 45 4C 45 43 54 0D 0A 0D 0A 0D ROM SELECT.....
029F80: 0A 20 20 20 20 20 20 20 49 74 20 69 73 20 70 6F . It is po
029F90: 73 73 69 62 6C 65 20 74 6F 20 75 73 65 20 4B 4C ssible to use KL
029FA0: 20 55 20 52 4F 4D 20 44 49 53 41 42 4C 45 20 74 U ROM DISABLE t
029FB0: 6F 20 72 65 76 65 72 73 65 20 74 68 65 20 65 66 o reverse the ef
029FC0: 66 65 63 74 20 6F 66 20 61 20 63 61 6C 6C 0D 0A fect of a call..
029FD0: 20 20 20 20 20 20 20 6F 66 20 4B 4C 20 55 20 52 of KL U R
029FE0: 4F 4D 20 45 4E 41 42 4C 45 20 20 28 61 6D 6F 6E OM ENABLE (amon
029FF0: 67 73 74 20 20 76 61 72 69 6F 75 73 20 20 6F 74 gst various ot
02A000: 68 65 72 20 20 63 6F 6D 62 69 6E 61 74 69 6F 6E her combination
02A010: 73 29 2E 20 20 48 6F 77 65 76 65 72 2C 0D 0A 20 s). However,..
02A020: 20 20 20 20 20 20 63 61 6C 6C 69 6E 67 20 4B 4C calling KL
02A030: 20 52 4F 4D 20 52 45 53 54 4F 52 45 20 69 73 20 ROM RESTORE is
02A040: 74 68 65 20 70 72 65 66 65 72 72 65 64 20 6D 65 the preferred me
02A050: 74 68 6F 64 20 73 69 6E 63 65 20 69 74 20 20 72 thod since it r
02A060: 65 73 74 6F 72 65 73 20 20 74 68 65 0D 0A 20 20 estores the..
02A070: 20 20 20 20 20 73 74 61 74 65 20 74 6F 20 77 68 state to wh
02A080: 61 74 20 69 74 20 77 61 73 2C 20 77 68 69 63 68 at it was, which
02A090: 20 6D 69 67 68 74 20 68 61 76 65 20 62 65 65 6E might have been
02A0A0: 20 65 6E 61 62 6C 65 64 20 61 6E 79 77 61 79 2E enabled anyway.
02A0B0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 ...... Thi
02A0C0: 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 s routine enable
02A0D0: 73 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D s interrupts....
02A0E0: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
02A0F0: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 entries:....
02A100: 20 20 20 4B 4C 20 4C 20 52 4F 4D 20 44 49 53 41 KL L ROM DISA
02A110: 42 4C 45 0D 0A 20 20 20 20 20 20 20 4B 4C 20 4C BLE.. KL L
02A120: 20 52 4F 4D 20 45 4E 41 42 4C 45 0D 0A 20 20 20 ROM ENABLE..
02A130: 20 20 20 20 4B 4C 20 52 4F 4D 20 53 45 4C 45 43 KL ROM SELEC
02A140: 54 0D 0A 20 20 20 20 20 20 20 4B 4C 20 55 20 52 T.. KL U R
02A150: 4F 4D 20 44 49 53 41 42 4C 45 0D 0A 20 20 20 20 OM DISABLE..
02A160: 20 20 20 4B 4C 20 55 20 52 4F 4D 20 45 4E 41 42 KL U ROM ENAB
02A170: 4C 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 LE..........
02A180: 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 AMSTRAD CPC46
02A190: 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 4/664/6128 FIRMW
02A1A0: 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ARE
02A1B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02A1C0: 70 61 67 65 20 31 37 2E 36 0D 0A 0D 0A 0D 0A 0D page 17.6.......
02A1D0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 49 ....... HI
02A1E0: 3A 20 4B 4C 20 52 4F 4D 20 53 45 4C 45 43 54 20 : KL ROM SELECT
02A1F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02A200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02A210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
02A220: 42 39 30 46 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 B90F......
02A230: 20 53 65 6C 65 63 74 20 61 20 70 61 72 74 69 63 Select a partic
02A240: 75 6C 61 72 20 75 70 70 65 72 20 52 4F 4D 2E 0D ular upper ROM..
02A250: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
02A260: 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 on:......
02A270: 53 65 6C 65 63 74 20 61 20 67 69 76 65 6E 20 75 Select a given u
02A280: 70 70 65 72 20 52 4F 4D 20 61 6E 64 20 65 6E 61 pper ROM and ena
02A290: 62 6C 65 20 74 68 65 20 75 70 70 65 72 20 52 4F ble the upper RO
02A2A0: 4D 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 M....... E
02A2B0: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
02A2C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 20 63 ...... C c
02A2D0: 6F 6E 74 61 69 6E 73 20 74 68 65 20 52 4F 4D 20 ontains the ROM
02A2E0: 73 65 6C 65 63 74 20 61 64 64 72 65 73 73 20 6F select address o
02A2F0: 66 20 74 68 65 20 72 65 71 75 69 72 65 64 20 52 f the required R
02A300: 4F 4D 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 OM.......
02A310: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
02A320: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 20 63 ...... C c
02A330: 6F 6E 74 61 69 6E 73 20 74 68 65 20 52 4F 4D 20 ontains the ROM
02A340: 73 65 6C 65 63 74 20 61 64 64 72 65 73 73 20 6F select address o
02A350: 66 20 74 68 65 20 70 72 65 76 69 6F 75 73 6C 79 f the previously
02A360: 20 73 65 6C 65 63 74 65 64 20 52 4F 4D 2E 0D 0A selected ROM...
02A370: 20 20 20 20 20 20 20 42 20 63 6F 6E 74 61 69 6E B contain
02A380: 73 20 74 68 65 20 70 72 65 76 69 6F 75 73 20 52 s the previous R
02A390: 4F 4D 20 73 74 61 74 65 2E 0D 0A 0D 0A 0D 0A 20 OM state.......
02A3A0: 20 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 74 AF corrupt
02A3B0: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
02A3C0: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
02A3D0: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
02A3E0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
02A3F0: 0A 20 20 20 20 20 20 20 54 68 65 20 70 72 65 76 . The prev
02A400: 69 6F 75 73 20 52 4F 4D 20 73 74 61 74 65 20 63 ious ROM state c
02A410: 61 6E 20 62 65 20 70 61 73 73 65 64 20 74 6F 20 an be passed to
02A420: 4B 4C 20 52 4F 4D 20 52 45 53 54 4F 52 45 20 20 KL ROM RESTORE
02A430: 74 6F 20 20 72 65 73 65 74 20 20 74 68 65 0D 0A to reset the..
02A440: 20 20 20 20 20 20 20 52 4F 4D 20 65 6E 61 62 6C ROM enabl
02A450: 65 20 74 6F 20 77 68 61 74 20 69 74 20 77 61 73 e to what it was
02A460: 2E 20 42 6F 74 68 20 74 68 65 20 70 72 65 76 69 . Both the previ
02A470: 6F 75 73 20 73 74 61 74 65 20 20 61 6E 64 20 20 ous state and
02A480: 74 68 65 20 20 70 72 65 76 69 6F 75 73 0D 0A 20 the previous..
02A490: 20 20 20 20 20 20 73 65 6C 65 63 74 69 6F 6E 20 selection
02A4A0: 63 61 6E 20 62 65 20 70 61 73 73 65 64 20 74 6F can be passed to
02A4B0: 20 4B 4C 20 52 4F 4D 20 44 45 53 45 4C 45 43 54 KL ROM DESELECT
02A4C0: 20 74 6F 20 20 72 65 73 74 6F 72 65 20 20 74 68 to restore th
02A4D0: 65 20 20 73 74 61 74 65 20 20 74 6F 0D 0A 20 20 e state to..
02A4E0: 20 20 20 20 20 77 68 61 74 20 69 74 20 77 61 73 what it was
02A4F0: 20 61 6E 64 20 74 6F 20 73 65 6C 65 63 74 20 74 and to select t
02A500: 68 65 20 70 72 65 76 69 6F 75 73 6C 79 20 73 65 he previously se
02A510: 6C 65 63 74 65 64 20 52 4F 4D 20 61 67 61 69 6E lected ROM again
02A520: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
02A530: 65 20 20 6D 65 63 68 61 6E 69 73 6D 20 20 70 72 e mechanism pr
02A540: 6F 76 69 64 65 64 20 20 66 6F 72 20 20 63 61 6C ovided for cal
02A550: 6C 69 6E 67 20 20 72 6F 75 74 69 6E 65 73 20 20 ling routines
02A560: 69 6E 20 20 65 78 70 61 6E 73 69 6F 6E 20 20 20 in expansion
02A570: 52 4F 4D 73 0D 0A 20 20 20 20 20 20 20 61 75 74 ROMs.. aut
02A580: 6F 6D 61 74 69 63 61 6C 6C 79 20 70 65 72 66 6F omatically perfo
02A590: 72 6D 20 52 4F 4D 20 73 65 6C 65 63 74 69 6F 6E rm ROM selection
02A5A0: 20 61 73 20 72 65 71 75 69 72 65 64 20 28 73 65 as required (se
02A5B0: 65 20 73 65 63 74 69 6F 6E 20 32 29 2E 0D 0A 0D e section 2)....
02A5C0: 0A 0D 0A 20 20 20 20 20 20 20 49 74 20 69 73 20 ... It is
02A5D0: 20 69 6E 61 64 76 69 73 61 62 6C 65 20 20 74 6F inadvisable to
02A5E0: 20 20 73 65 6C 65 63 74 20 20 61 6E 6F 74 68 65 select anothe
02A5F0: 72 20 20 75 70 70 65 72 20 20 52 4F 4D 20 20 77 r upper ROM w
02A600: 68 69 6C 73 74 20 20 65 78 65 63 75 74 69 6E 67 hilst executing
02A610: 0D 0A 20 20 20 20 20 20 20 69 6E 73 74 72 75 63 .. instruc
02A620: 74 69 6F 6E 73 20 69 6E 20 74 68 65 20 75 70 70 tions in the upp
02A630: 65 72 20 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 20 20 20 er ROM.......
02A640: 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 This routine
02A650: 20 65 6E 61 62 6C 65 73 20 69 6E 74 65 72 72 75 enables interru
02A660: 70 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 pts.........
02A670: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
02A680: 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4C es:.... KL
02A690: 20 43 55 52 52 20 53 45 4C 45 43 54 49 4F 4E 0D CURR SELECTION.
02A6A0: 0A 20 20 20 20 20 20 20 4B 4C 20 50 52 4F 42 45 . KL PROBE
02A6B0: 20 52 4F 4D 0D 0A 20 20 20 20 20 20 20 4B 4C 20 ROM.. KL
02A6C0: 52 4F 4D 20 44 45 53 45 4C 45 43 54 0D 0A 20 20 ROM DESELECT..
02A6D0: 20 20 20 20 20 4B 4C 20 52 4F 4D 20 52 45 53 54 KL ROM REST
02A6E0: 4F 52 45 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ORE........
02A6F0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
02A700: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
02A710: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
02A720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
02A730: 61 67 65 20 31 37 2E 37 0D 0A 0D 0A 0D 0A 0D 0A age 17.7........
02A740: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 49 3A ...... HI:
02A750: 20 4B 4C 20 43 55 52 52 20 53 45 4C 45 43 54 49 KL CURR SELECTI
02A760: 4F 4E 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ON
02A770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02A780: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
02A790: 39 31 32 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 912......
02A7A0: 41 73 6B 20 77 68 69 63 68 20 75 70 70 65 72 20 Ask which upper
02A7B0: 52 4F 4D 20 69 73 20 63 75 72 72 65 6E 74 6C 79 ROM is currently
02A7C0: 20 73 65 6C 65 63 74 65 64 2E 0D 0A 0D 0A 0D 0A selected.......
02A7D0: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
02A7E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 74 75 72 .... Retur
02A7F0: 6E 73 20 74 68 65 20 52 4F 4D 20 73 65 6C 65 63 ns the ROM selec
02A800: 74 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 t address of the
02A810: 20 63 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 currently selec
02A820: 74 65 64 20 75 70 70 65 72 20 52 4F 4D 2E 0D 0A ted upper ROM...
02A830: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 .... Entry
02A840: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
02A850: 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 .. No cond
02A860: 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 itions.......
02A870: 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 Exit conditi
02A880: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
02A890: 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 A contains the
02A8A0: 52 4F 4D 20 73 65 6C 65 63 74 20 61 64 64 72 65 ROM select addre
02A8B0: 73 73 20 6F 66 20 74 68 65 20 63 75 72 72 65 6E ss of the curren
02A8C0: 74 6C 79 20 73 65 6C 65 63 74 65 64 20 52 4F 4D tly selected ROM
02A8D0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C ....... Al
02A8E0: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
02A8F0: 73 20 61 6E 64 20 66 6C 61 67 73 20 70 72 65 73 s and flags pres
02A900: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 erved.......
02A910: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 Notes:......
02A920: 20 20 20 20 20 20 49 74 20 69 73 20 6E 6F 74 20 It is not
02A930: 70 6F 73 73 69 62 6C 65 20 20 74 6F 20 20 70 72 possible to pr
02A940: 65 64 69 63 74 20 20 74 68 65 20 20 52 4F 4D 20 edict the ROM
02A950: 20 73 65 6C 65 63 74 20 20 61 64 64 72 65 73 73 select address
02A960: 20 20 77 68 69 63 68 20 20 61 6E 79 0D 0A 20 20 which any..
02A970: 20 20 20 20 20 70 61 72 74 69 63 75 6C 61 72 20 particular
02A980: 65 78 70 61 6E 73 69 6F 6E 20 52 4F 4D 20 77 69 expansion ROM wi
02A990: 6C 6C 20 62 65 20 66 69 74 74 65 64 2E 20 54 68 ll be fitted. Th
02A9A0: 65 20 20 27 66 61 72 20 20 61 64 64 72 65 73 73 e 'far address
02A9B0: 27 20 20 75 73 65 64 20 20 74 6F 0D 0A 20 20 20 ' used to..
02A9C0: 20 20 20 20 72 65 66 65 72 65 6E 63 65 20 73 75 reference su
02A9D0: 62 72 6F 75 74 69 6E 65 73 20 69 6E 20 65 78 70 broutines in exp
02A9E0: 61 6E 73 69 6F 6E 20 52 4F 4D 73 20 69 6E 63 6C ansion ROMs incl
02A9F0: 75 64 65 73 20 20 61 20 20 52 4F 4D 20 20 73 65 udes a ROM se
02AA00: 6C 65 63 74 20 20 62 79 74 65 0D 0A 20 20 20 20 lect byte..
02AA10: 20 20 20 77 68 69 63 68 20 6D 75 73 74 20 62 65 which must be
02AA20: 20 73 65 74 20 75 70 20 61 74 20 72 75 6E 20 74 set up at run t
02AA30: 69 6D 65 2E 20 54 68 69 73 20 72 6F 75 74 69 6E ime. This routin
02AA40: 65 20 72 65 74 75 72 6E 73 20 74 68 65 20 52 4F e returns the RO
02AA50: 4D 20 20 73 65 6C 65 63 74 0D 0A 20 20 20 20 20 M select..
02AA60: 20 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 address of the
02AA70: 20 63 75 72 72 65 6E 74 20 52 4F 4D 20 20 73 6F current ROM so
02AA80: 20 20 74 68 61 74 20 20 69 74 20 20 63 61 6E 20 that it can
02AA90: 20 73 65 74 20 20 75 70 20 20 73 75 69 74 61 62 set up suitab
02AAA0: 6C 65 20 20 27 66 61 72 0D 0A 20 20 20 20 20 20 le 'far..
02AAB0: 20 61 64 64 72 65 73 73 65 73 27 2E 0D 0A 0D 0A addresses'.....
02AAC0: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
02AAD0: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D ed entries:.....
02AAE0: 0A 20 20 20 20 20 20 20 4B 4C 20 50 52 4F 42 45 . KL PROBE
02AAF0: 20 52 4F 4D 0D 0A 20 20 20 20 20 20 20 4B 4C 20 ROM.. KL
02AB00: 52 4F 4D 20 53 45 4C 45 43 54 0D 0A 0D 0A 0D 0A ROM SELECT......
02AB10: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
02AB20: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
02AB30: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
02AB40: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
02AB50: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
02AB60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
02AB70: 67 65 20 31 37 2E 38 0D 0A 0D 0A 0D 0A 0D 0A 0D ge 17.8.........
02AB80: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 49 3A 20 ..... HI:
02AB90: 4B 4C 20 50 52 4F 42 45 20 52 4F 4D 20 20 20 20 KL PROBE ROM
02ABA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02ABB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02ABC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 39 #B9
02ABD0: 31 35 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 15...... A
02ABE0: 73 6B 20 63 6C 61 73 73 20 61 6E 64 20 76 65 72 sk class and ver
02ABF0: 73 69 6F 6E 20 6F 66 20 61 20 52 4F 4D 2E 0D 0A sion of a ROM...
02AC00: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F .... Actio
02AC10: 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 n:...... T
02AC20: 68 65 20 66 69 72 73 74 20 66 65 77 20 62 79 74 he first few byt
02AC30: 65 73 20 20 6F 66 20 20 61 6C 6C 20 20 75 70 70 es of all upp
02AC40: 65 72 20 20 52 4F 4D 73 20 20 63 6F 6E 74 61 69 er ROMs contai
02AC50: 6E 20 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 20 n information
02AC60: 69 6E 20 20 61 0D 0A 20 20 20 20 20 20 20 73 74 in a.. st
02AC70: 61 6E 64 61 72 64 20 66 6F 72 6D 20 61 62 6F 75 andard form abou
02AC80: 74 20 74 68 65 20 52 4F 4D 2E 20 54 68 69 73 20 t the ROM. This
02AC90: 72 6F 75 74 69 6E 65 20 20 65 78 74 72 61 63 74 routine extract
02ACA0: 73 20 20 74 68 65 20 20 63 6C 61 73 73 2C 20 20 s the class,
02ACB0: 6D 61 72 6B 0D 0A 20 20 20 20 20 20 20 6E 75 6D mark.. num
02ACC0: 62 65 72 20 61 6E 64 20 76 65 72 73 69 6F 6E 20 ber and version
02ACD0: 6E 75 6D 62 65 72 20 62 79 74 65 73 20 66 72 6F number bytes fro
02ACE0: 6D 20 74 68 65 20 52 4F 4D 20 61 74 20 20 61 20 m the ROM at a
02ACF0: 20 67 69 76 65 6E 20 20 52 4F 4D 20 20 73 65 6C given ROM sel
02AD00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
02AD10: 24 00 00 00 02 09 50 E5 24 00 C1 02 00 00 00 02 $.....P.$.......
02AD20: 24 00 C2 02 00 00 00 02 24 00 C3 02 00 00 00 02 $.......$.......
02AD30: 24 00 C4 02 00 00 00 02 24 00 C5 02 00 00 00 02 $.......$.......
02AD40: 24 00 C6 02 00 00 00 02 24 00 C7 02 00 00 00 02 $.......$.......
02AD50: 24 00 C8 02 00 00 00 02 24 00 C9 02 00 00 00 02 $.......$.......
02AD60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AE00: 65 63 74 0D 0A 20 20 20 20 20 20 20 61 64 64 72 ect.. addr
02AE10: 65 73 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ess.......
02AE20: 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E Entry condition
02AE30: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 s:...... C
02AE40: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 52 4F contains the RO
02AE50: 4D 20 73 65 6C 65 63 74 20 61 64 64 72 65 73 73 M select address
02AE60: 20 6F 66 20 74 68 65 20 52 4F 4D 20 74 6F 20 70 of the ROM to p
02AE70: 72 6F 62 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 robe.......
02AE80: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
02AE90: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 s:...... A
02AEA0: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 52 4F contains the RO
02AEB0: 4D 27 73 20 63 6C 61 73 73 2E 0D 0A 20 20 20 20 M's class...
02AEC0: 20 20 20 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 L contains th
02AED0: 65 20 52 4F 4D 27 73 20 6D 61 72 6B 20 6E 75 6D e ROM's mark num
02AEE0: 62 65 72 0D 0A 20 20 20 20 20 20 20 48 20 63 6F ber.. H co
02AEF0: 6E 74 61 69 6E 73 20 74 68 65 20 52 4F 4D 27 73 ntains the ROM's
02AF00: 20 76 65 72 73 69 6F 6E 20 6E 75 6D 62 65 72 2E version number.
02AF10: 0D 0A 0D 0A 20 20 20 20 20 20 20 42 20 61 6E 64 .... B and
02AF20: 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D flags corrupt..
02AF30: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 . All othe
02AF40: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
02AF50: 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 erved.....
02AF60: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 Notes:....
02AF70: 20 20 54 68 65 20 52 4F 4D 20 63 6C 61 73 73 20 The ROM class
02AF80: 72 65 74 75 72 6E 65 64 20 6D 61 79 20 74 61 6B returned may tak
02AF90: 65 20 61 6E 79 20 6F 66 20 74 68 65 20 66 6F 6C e any of the fol
02AFA0: 6C 6F 77 69 6E 67 20 76 61 6C 75 65 73 3A 0D 0A lowing values:..
02AFB0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02AFC0: 30 3A 20 20 20 20 20 20 20 20 46 6F 72 65 67 72 0: Foregr
02AFD0: 6F 75 6E 64 20 52 4F 4D 2E 0D 0A 20 20 20 20 20 ound ROM...
02AFE0: 20 20 20 20 20 20 20 20 20 31 3A 20 20 20 20 20 1:
02AFF0: 20 20 20 42 61 63 6B 67 72 6F 75 6E 64 20 52 4F Background RO
02B000: 4D 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 M...
02B010: 20 20 32 3A 20 20 20 20 20 20 20 20 45 78 74 65 2: Exte
02B020: 6E 73 69 6F 6E 20 66 6F 72 65 67 72 6F 75 6E 64 nsion foreground
02B030: 20 52 4F 4D 2E 0D 0A 20 20 20 20 20 20 20 20 20 ROM...
02B040: 20 20 20 20 20 23 38 30 3A 20 20 20 20 20 20 4F #80: O
02B050: 6E 20 62 6F 61 72 64 20 52 4F 4D 20 28 74 68 65 n board ROM (the
02B060: 20 62 75 69 6C 74 20 69 6E 20 42 41 53 49 43 20 built in BASIC
02B070: 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 72 foreground progr
02B080: 61 6D 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 53 am)..... S
02B090: 65 6C 65 63 74 69 6E 67 20 61 20 52 4F 4D 20 61 electing a ROM a
02B0A0: 64 64 72 65 73 73 20 77 68 65 72 65 20 6E 6F 20 ddress where no
02B0B0: 52 4F 4D 20 69 73 20 66 69 74 74 65 64 20 69 6D ROM is fitted im
02B0C0: 70 6C 69 63 69 74 6C 79 20 73 65 6C 65 63 74 73 plicitly selects
02B0D0: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 6F 6E the.. on
02B0E0: 2D 62 6F 61 72 64 20 52 4F 4D 20 61 6E 64 20 73 -board ROM and s
02B0F0: 6F 20 69 74 20 77 69 6C 6C 20 72 65 74 75 72 6E o it will return
02B100: 20 23 38 30 20 61 73 20 69 74 73 20 63 6C 61 73 #80 as its clas
02B110: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 s..... The
02B120: 20 6D 65 61 6E 69 6E 67 20 6F 66 20 74 68 65 20 meaning of the
02B130: 6D 61 72 6B 20 61 6E 64 20 76 65 72 73 69 6F 6E mark and version
02B140: 20 6E 75 6D 62 65 72 73 20 64 65 70 65 6E 64 73 numbers depends
02B150: 20 6F 6E 20 74 68 65 20 52 4F 4D 2E 0D 0A 0D 0A on the ROM.....
02B160: 20 20 20 20 20 20 20 53 65 65 20 73 65 63 74 69 See secti
02B170: 6F 6E 20 31 30 20 66 6F 72 20 61 20 64 65 73 63 on 10 for a desc
02B180: 72 69 70 74 69 6F 6E 20 6F 66 20 65 78 70 61 6E ription of expan
02B190: 73 69 6F 6E 20 52 4F 4D 73 2E 0D 0A 0D 0A 20 20 sion ROMs.....
02B1A0: 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E This routin
02B1B0: 65 20 65 6E 61 62 6C 65 73 20 69 6E 74 65 72 72 e enables interr
02B1C0: 75 70 74 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 upts.....
02B1D0: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
02B1E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4C 20 52 4F .... KL RO
02B1F0: 4D 20 53 45 4C 45 43 54 0D 0A 20 20 20 20 20 20 M SELECT..
02B200: 20 4B 4C 20 43 55 52 52 20 53 45 4C 45 43 54 49 KL CURR SELECTI
02B210: 4F 4E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ON..............
02B220: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
02B230: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
02B240: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
02B250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02B260: 20 20 20 20 70 61 67 65 20 31 37 2E 39 0D 0A 0D page 17.9...
02B270: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
02B280: 20 20 48 49 3A 20 4B 4C 20 52 4F 4D 20 44 45 53 HI: KL ROM DES
02B290: 45 4C 45 43 54 20 20 20 20 20 20 20 20 20 20 20 ELECT
02B2A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02B2B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02B2C0: 20 20 20 23 42 39 31 38 0D 0A 0D 0A 0D 0A 20 20 #B918......
02B2D0: 20 20 20 20 20 52 65 73 74 6F 72 65 20 70 72 65 Restore pre
02B2E0: 76 69 6F 75 73 20 75 70 70 65 72 20 52 4F 4D 20 vious upper ROM
02B2F0: 73 65 6C 65 63 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A selection.......
02B300: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
02B310: 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 .... Set t
02B320: 68 65 20 52 4F 4D 20 73 74 61 74 65 20 61 6E 64 he ROM state and
02B330: 20 75 70 70 65 72 20 52 4F 4D 20 73 65 6C 65 63 upper ROM selec
02B340: 74 69 6F 6E 20 74 6F 20 77 68 61 74 20 74 68 65 tion to what the
02B350: 79 20 77 65 72 65 20 62 65 66 6F 72 65 20 20 4B y were before K
02B360: 4C 0D 0A 20 20 20 20 20 20 20 52 4F 4D 20 53 45 L.. ROM SE
02B370: 4C 45 43 54 20 77 61 73 20 63 61 6C 6C 65 64 2E LECT was called.
02B380: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 ...... Ent
02B390: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
02B3A0: 0D 0A 0D 0A 20 20 20 20 20 20 20 43 20 63 6F 6E .... C con
02B3B0: 74 61 69 6E 73 20 74 68 65 20 52 4F 4D 20 73 65 tains the ROM se
02B3C0: 6C 65 63 74 20 61 64 64 72 65 73 73 20 6F 66 20 lect address of
02B3D0: 74 68 65 20 70 72 65 76 69 6F 75 73 6C 79 20 73 the previously s
02B3E0: 65 6C 65 63 74 65 64 20 52 4F 4D 2E 0D 0A 20 20 elected ROM...
02B3F0: 20 20 20 20 20 42 20 63 6F 6E 74 61 69 6E 73 20 B contains
02B400: 74 68 65 20 70 72 65 76 69 6F 75 73 20 52 4F 4D the previous ROM
02B410: 20 73 74 61 74 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 state.......
02B420: 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 Exit conditi
02B430: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
02B440: 20 43 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 C contains the
02B450: 52 4F 4D 20 73 65 6C 65 63 74 20 61 64 64 72 65 ROM select addre
02B460: 73 73 20 6F 66 20 74 68 65 20 63 75 72 72 65 6E ss of the curren
02B470: 74 6C 79 20 73 65 6C 65 63 74 65 64 20 52 4F 4D tly selected ROM
02B480: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 42 20 ....... B
02B490: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
02B4A0: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
02B4B0: 74 65 72 73 20 61 6E 64 20 66 6C 61 67 73 20 70 ters and flags p
02B4C0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
02B4D0: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
02B4E0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 70 72 65 .. The pre
02B4F0: 76 69 6F 75 73 20 52 4F 4D 20 73 65 6C 65 63 74 vious ROM select
02B500: 69 6F 6E 20 61 6E 64 20 73 74 61 74 65 20 61 72 ion and state ar
02B510: 65 20 74 68 65 20 76 61 6C 75 65 73 20 72 65 74 e the values ret
02B520: 75 72 6E 65 64 20 62 79 20 4B 4C 20 52 4F 4D 0D urned by KL ROM.
02B530: 0A 20 20 20 20 20 20 20 53 45 4C 45 43 54 2E 20 . SELECT.
02B540: 54 68 65 20 63 75 72 72 65 6E 74 6C 79 20 73 65 The currently se
02B550: 6C 65 63 74 65 64 20 52 4F 4D 20 72 65 74 75 72 lected ROM retur
02B560: 6E 65 64 20 62 79 20 74 68 69 73 20 72 6F 75 74 ned by this rout
02B570: 69 6E 65 20 69 73 20 74 68 65 20 52 4F 4D 0D 0A ine is the ROM..
02B580: 20 20 20 20 20 20 20 74 68 61 74 20 77 61 73 20 that was
02B590: 73 65 6C 65 63 74 65 64 20 62 79 20 63 61 6C 6C selected by call
02B5A0: 69 6E 67 20 4B 4C 20 52 4F 4D 20 53 45 4C 45 43 ing KL ROM SELEC
02B5B0: 54 20 28 75 6E 6C 65 73 73 20 66 75 72 74 68 65 T (unless furthe
02B5C0: 72 20 20 73 65 6C 65 63 74 69 6F 6E 73 0D 0A 20 r selections..
02B5D0: 20 20 20 20 20 20 68 61 76 65 20 62 65 65 6E 20 have been
02B5E0: 6D 61 64 65 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 made).......
02B5F0: 20 20 20 54 68 65 20 6D 65 63 68 61 6E 69 73 6D The mechanism
02B600: 20 70 72 6F 76 69 64 65 64 20 20 66 6F 72 20 20 provided for
02B610: 63 61 6C 6C 69 6E 67 20 20 73 75 62 72 6F 75 74 calling subrout
02B620: 69 6E 65 73 20 20 69 6E 20 20 65 78 70 61 6E 73 ines in expans
02B630: 69 6F 6E 20 20 52 4F 4D 73 0D 0A 20 20 20 20 20 ion ROMs..
02B640: 20 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 automatically
02B650: 70 65 72 66 6F 72 6D 73 20 52 4F 4D 20 73 65 6C performs ROM sel
02B660: 65 63 74 69 6F 6E 20 61 73 20 72 65 71 75 69 72 ection as requir
02B670: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
02B680: 49 74 20 69 73 20 20 69 6E 61 64 76 69 73 61 62 It is inadvisab
02B690: 6C 65 20 20 74 6F 20 20 73 65 6C 65 63 74 20 20 le to select
02B6A0: 61 6E 6F 74 68 65 72 20 20 75 70 70 65 72 20 20 another upper
02B6B0: 52 4F 4D 20 20 77 68 69 6C 73 74 20 20 65 78 65 ROM whilst exe
02B6C0: 63 75 74 69 6E 67 0D 0A 20 20 20 20 20 20 20 69 cuting.. i
02B6D0: 6E 73 74 72 75 63 74 69 6F 6E 73 20 69 6E 20 74 nstructions in t
02B6E0: 68 65 20 75 70 70 65 72 20 52 4F 4D 2E 0D 0A 0D he upper ROM....
02B6F0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 ... This r
02B700: 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 73 20 69 outine enables i
02B710: 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A nterrupts.......
02B720: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
02B730: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 entries:....
02B740: 20 20 20 20 4B 4C 20 43 55 52 52 20 53 45 4C 45 KL CURR SELE
02B750: 43 54 49 4F 4E 0D 0A 20 20 20 20 20 20 20 4B 4C CTION.. KL
02B760: 20 52 4F 4D 20 52 45 53 54 4F 52 45 0D 0A 20 20 ROM RESTORE..
02B770: 20 20 20 20 20 4B 4C 20 52 4F 4D 20 53 45 4C 45 KL ROM SELE
02B780: 43 54 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 CT........
02B790: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
02B7A0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
02B7B0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
02B7C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
02B7D0: 65 20 31 37 2E 31 30 0D 0A 0D 0A 0D 0A 0D 0A 0D e 17.10.........
02B7E0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 49 3A 20 ..... HI:
02B7F0: 4B 4C 20 4C 44 49 52 20 20 20 20 20 20 20 20 20 KL LDIR
02B800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02B810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02B820: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 39 #B9
02B830: 31 42 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 1B...... M
02B840: 6F 76 65 20 73 74 6F 72 65 20 28 4C 44 49 52 29 ove store (LDIR)
02B850: 20 77 69 74 68 20 52 4F 4D 73 20 74 75 72 6E 65 with ROMs turne
02B860: 64 20 6F 66 66 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 d off.......
02B870: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A Action:......
02B880: 20 20 20 20 20 20 20 50 65 72 66 6F 72 6D 73 20 Performs
02B890: 61 6E 20 4C 44 49 52 20 69 6E 73 74 72 75 63 74 an LDIR instruct
02B8A0: 69 6F 6E 20 28 4C 6F 61 44 20 49 6E 63 72 65 6D ion (LoaD Increm
02B8B0: 65 6E 74 20 20 61 6E 64 20 20 52 65 70 65 61 74 ent and Repeat
02B8C0: 29 20 20 77 69 74 68 20 20 62 6F 74 68 0D 0A 20 ) with both..
02B8D0: 20 20 20 20 20 20 75 70 70 65 72 20 61 6E 64 20 upper and
02B8E0: 6C 6F 77 65 72 20 52 4F 4D 73 20 64 69 73 61 62 lower ROMs disab
02B8F0: 6C 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 led.......
02B900: 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E Entry condition
02B910: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 42 s:...... B
02B920: 43 2C 20 44 45 2C 20 48 4C 20 61 73 20 72 65 71 C, DE, HL as req
02B930: 75 69 72 65 64 20 62 79 20 74 68 65 20 4C 44 49 uired by the LDI
02B940: 52 20 69 6E 73 74 72 75 63 74 69 6F 6E 2E 0D 0A R instruction...
02B950: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
02B960: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
02B970: 0A 20 20 20 20 20 20 20 46 2C 20 42 43 2C 20 44 . F, BC, D
02B980: 45 2C 20 48 4C 20 61 73 20 73 65 74 20 62 79 20 E, HL as set by
02B990: 74 68 65 20 4C 44 49 52 20 69 6E 73 74 72 75 63 the LDIR instruc
02B9A0: 74 69 6F 6E 2E 0D 0A 20 20 20 20 20 20 20 41 6C tion... Al
02B9B0: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
02B9C0: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
02B9D0: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
02B9E0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
02B9F0: 20 72 6F 75 74 69 6E 65 20 6D 61 79 20 62 65 20 routine may be
02BA00: 75 73 65 64 20 74 6F 20 6D 6F 76 65 20 61 72 65 used to move are
02BA10: 61 73 20 6F 66 20 52 41 4D 20 69 72 72 65 73 70 as of RAM irresp
02BA20: 65 63 74 69 76 65 20 6F 66 20 74 68 65 20 20 52 ective of the R
02BA30: 4F 4D 0D 0A 20 20 20 20 20 20 20 73 74 61 74 65 OM.. state
02BA40: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
02BA50: 69 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C is routine enabl
02BA60: 65 73 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A es interrupts...
02BA70: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
02BA80: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
02BA90: 0A 0D 0A 20 20 20 20 20 20 20 4B 4C 20 4C 44 44 ... KL LDD
02BAA0: 52 0D 0A 20 20 20 20 20 20 20 52 41 4D 20 4C 41 R.. RAM LA
02BAB0: 4D 20 28 52 53 54 20 34 29 0D 0A 0D 0A 0D 0A 0D M (RST 4).......
02BAC0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02BAD0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
02BAE0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
02BAF0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
02BB00: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
02BB10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02BB20: 70 61 67 65 20 31 37 2E 31 31 0D 0A 0D 0A 0D 0A page 17.11......
02BB30: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 ........ H
02BB40: 49 3A 20 4B 4C 20 4C 44 44 52 20 20 20 20 20 20 I: KL LDDR
02BB50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02BB60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02BB70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02BB80: 23 42 39 31 45 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #B91E......
02BB90: 20 20 4D 6F 76 65 20 73 74 6F 72 65 20 28 4C 44 Move store (LD
02BBA0: 44 52 29 20 77 69 74 68 20 52 4F 4D 73 20 74 75 DR) with ROMs tu
02BBB0: 72 6E 65 64 20 6F 66 66 2E 0D 0A 0D 0A 0D 0A 20 rned off.......
02BBC0: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
02BBD0: 0A 0D 0A 20 20 20 20 20 20 20 50 65 72 66 6F 72 ... Perfor
02BBE0: 6D 73 20 61 6E 20 4C 44 44 52 20 69 6E 73 74 72 ms an LDDR instr
02BBF0: 75 63 74 69 6F 6E 20 28 4C 6F 61 44 20 44 65 63 uction (LoaD Dec
02BC00: 72 65 6D 65 6E 74 20 20 61 6E 64 20 20 52 65 70 rement and Rep
02BC10: 65 61 74 29 20 20 77 69 74 68 20 20 62 6F 74 68 eat) with both
02BC20: 0D 0A 20 20 20 20 20 20 20 75 70 70 65 72 20 61 .. upper a
02BC30: 6E 64 20 6C 6F 77 65 72 20 52 4F 4D 73 20 64 69 nd lower ROMs di
02BC40: 73 61 62 6C 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 sabled.......
02BC50: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
02BC60: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
02BC70: 20 20 42 43 2C 20 44 45 2C 20 48 4C 20 61 73 20 BC, DE, HL as
02BC80: 72 65 71 75 69 72 65 64 20 62 79 20 4C 44 44 52 required by LDDR
02BC90: 20 69 6E 73 74 72 75 63 74 69 6F 6E 2E 0D 0A 0D instruction....
02BCA0: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
02BCB0: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
02BCC0: 20 20 20 20 20 20 20 46 2C 20 42 43 2C 20 44 45 F, BC, DE
02BCD0: 2C 20 48 4C 20 61 73 20 73 65 74 20 62 79 20 4C , HL as set by L
02BCE0: 44 44 52 20 69 6E 73 74 72 75 63 74 69 6F 6E 2E DDR instruction.
02BCF0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
02BD00: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
02BD10: 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 served.......
02BD20: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A Notes:......
02BD30: 20 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 This rout
02BD40: 69 6E 65 20 6D 61 79 20 62 65 20 75 73 65 64 20 ine may be used
02BD50: 74 6F 20 6D 6F 76 65 20 61 72 65 61 73 20 6F 66 to move areas of
02BD60: 20 52 41 4D 20 69 72 72 65 73 70 65 63 74 69 76 RAM irrespectiv
02BD70: 65 20 6F 66 20 74 68 65 20 20 52 4F 4D 0D 0A 20 e of the ROM..
02BD80: 20 20 20 20 20 20 73 74 61 74 65 2E 0D 0A 0D 0A state.....
02BD90: 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F .. This ro
02BDA0: 75 74 69 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E utine enables in
02BDB0: 74 65 72 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 0D terrupts........
02BDC0: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
02BDD0: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A d entries:......
02BDE0: 20 20 20 20 20 20 20 4B 4C 20 4C 44 49 52 0D 0A KL LDIR..
02BDF0: 20 20 20 20 20 20 20 52 41 4D 20 4C 41 4D 20 28 RAM LAM (
02BE00: 52 53 54 20 34 29 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A RST 4)..........
02BE10: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
02BE20: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
02BE30: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
02BE40: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
02BE50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02BE60: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
02BE70: 31 37 2E 31 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 17.12...........
02BE80: 0A 0D 0A 20 20 20 20 20 20 20 48 4C 3A 20 4B 4C ... HL: KL
02BE90: 20 50 4F 4C 4C 20 53 59 4E 43 48 52 4F 4E 4F 55 POLL SYNCHRONOU
02BEA0: 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 S
02BEB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02BEC0: 20 20 20 20 20 20 20 20 20 20 20 23 42 39 32 31 #B921
02BED0: 0D 0A 0D 0A 20 20 20 20 20 20 20 43 68 65 63 6B .... Check
02BEE0: 20 69 66 20 61 6E 20 65 76 65 6E 74 20 77 69 74 if an event wit
02BEF0: 68 20 68 69 67 68 65 72 20 20 70 72 69 6F 72 69 h higher priori
02BF00: 74 79 20 20 74 68 61 6E 20 20 74 68 65 20 20 63 ty than the c
02BF10: 75 72 72 65 6E 74 20 20 65 76 65 6E 74 20 20 69 urrent event i
02BF20: 73 0D 0A 20 20 20 20 20 20 20 70 65 6E 64 69 6E s.. pendin
02BF30: 67 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 g..... Act
02BF40: 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 ion:.... I
02BF50: 66 20 74 68 65 20 73 79 6E 63 68 72 6F 6E 6F 75 f the synchronou
02BF60: 73 20 65 76 65 6E 74 20 71 75 65 75 65 20 69 73 s event queue is
02BF70: 20 6E 6F 74 20 65 6D 70 74 79 20 74 68 65 6E 20 not empty then
02BF80: 74 68 65 20 70 72 69 6F 72 69 74 79 20 20 6F 66 the priority of
02BF90: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 68 69 the.. hi
02BFA0: 67 68 65 73 74 20 70 72 69 6F 72 69 74 79 20 70 ghest priority p
02BFB0: 65 6E 64 69 6E 67 20 65 76 65 6E 74 20 69 73 20 ending event is
02BFC0: 63 6F 6D 70 61 72 65 64 20 77 69 74 68 20 20 74 compared with t
02BFD0: 68 65 20 20 63 75 72 72 65 6E 74 20 20 65 76 65 he current eve
02BFE0: 6E 74 27 73 0D 0A 20 20 20 20 20 20 20 70 72 69 nt's.. pri
02BFF0: 6F 72 69 74 79 20 28 69 66 20 61 6E 79 29 2E 0D ority (if any)..
02C000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
02C010: 25 00 00 00 02 09 50 E5 25 00 C1 02 00 00 00 02 %.....P.%.......
02C020: 25 00 C2 02 00 00 00 02 25 00 C3 02 00 00 00 02 %.......%.......
02C030: 25 00 C4 02 00 00 00 02 25 00 C5 02 00 00 00 02 %.......%.......
02C040: 25 00 C6 02 00 00 00 02 25 00 C7 02 00 00 00 02 %.......%.......
02C050: 25 00 C8 02 00 00 00 02 25 00 C9 02 00 00 00 02 %.......%.......
02C060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C100: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
02C110: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
02C120: 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 No conditi
02C130: 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 ons..... E
02C140: 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D xit conditions:.
02C150: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
02C160: 72 65 20 69 73 20 61 20 68 69 67 68 65 72 20 70 re is a higher p
02C170: 72 69 6F 72 69 74 79 20 65 76 65 6E 74 20 70 65 riority event pe
02C180: 6E 64 69 6E 67 3A 0D 0A 0D 0A 20 20 20 20 20 20 nding:....
02C190: 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 Carry
02C1A0: 74 72 75 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 true.....
02C1B0: 49 66 20 74 68 65 72 65 20 69 73 20 6E 6F 20 68 If there is no h
02C1C0: 69 67 68 65 72 20 70 72 69 6F 72 69 74 79 20 65 igher priority e
02C1D0: 76 65 6E 74 20 70 65 6E 64 69 6E 67 3A 0D 0A 0D vent pending:...
02C1E0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02C1F0: 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 0D Carry false....
02C200: 0A 20 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D . Always:.
02C210: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
02C220: 20 20 20 41 20 61 6E 64 20 6F 74 68 65 72 20 66 A and other f
02C230: 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 0D lags corrupt....
02C240: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02C250: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
02C260: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
02C270: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
02C280: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 ...... Thi
02C290: 73 20 72 6F 75 74 69 6E 65 20 69 73 20 69 6E 20 s routine is in
02C2A0: 74 68 65 20 68 69 67 68 20 6A 75 6D 70 62 6C 6F the high jumpblo
02C2B0: 63 6B 20 20 74 6F 20 20 6D 69 6E 69 6D 69 73 65 ck to minimise
02C2C0: 20 20 74 68 65 20 20 6F 76 65 72 68 65 61 64 20 the overhead
02C2D0: 20 6F 66 0D 0A 20 20 20 20 20 20 20 70 6F 6C 6C of.. poll
02C2E0: 69 6E 67 20 66 6F 72 20 73 79 6E 63 68 72 6F 6E ing for synchron
02C2F0: 6F 75 73 20 65 76 65 6E 74 73 2E 20 49 66 20 20 ous events. If
02C300: 74 68 65 20 20 73 79 6E 63 68 72 6F 6E 6F 75 73 the synchronous
02C310: 20 20 65 76 65 6E 74 20 20 71 75 65 75 65 20 20 event queue
02C320: 69 73 0D 0A 20 20 20 20 20 20 20 65 6D 70 74 79 is.. empty
02C330: 20 74 68 65 6E 20 74 68 65 20 72 6F 75 74 69 6E then the routin
02C340: 65 20 74 61 6B 65 73 20 6F 6E 6C 79 20 61 20 66 e takes only a f
02C350: 65 77 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 2E ew instructions.
02C360: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 68 69 ...... Whi
02C370: 6C 65 20 61 20 73 79 6E 63 68 72 6F 6E 6F 75 73 le a synchronous
02C380: 20 65 76 65 6E 74 20 69 73 20 62 65 69 6E 67 20 event is being
02C390: 70 72 6F 63 65 73 73 65 64 20 74 68 65 20 4B 65 processed the Ke
02C3A0: 72 6E 65 6C 20 72 65 6D 65 6D 62 65 72 73 20 20 rnel remembers
02C3B0: 69 74 73 0D 0A 20 20 20 20 20 20 20 70 72 69 6F its.. prio
02C3C0: 72 69 74 79 2E 20 20 54 68 65 20 20 73 79 6E 63 rity. The sync
02C3D0: 68 72 6F 6E 6F 75 73 20 20 65 76 65 6E 74 20 20 hronous event
02C3E0: 72 6F 75 74 69 6E 65 20 20 6D 61 79 20 20 20 69 routine may i
02C3F0: 74 73 65 6C 66 20 20 20 70 6F 6C 6C 20 20 20 74 tself poll t
02C400: 68 65 0D 0A 20 20 20 20 20 20 20 73 79 6E 63 68 he.. synch
02C410: 72 6F 6E 6F 75 73 20 65 76 65 6E 74 20 71 75 65 ronous event que
02C420: 75 65 2C 20 62 75 74 20 6F 6E 6C 79 20 65 76 65 ue, but only eve
02C430: 6E 74 73 20 6F 66 20 20 61 20 20 68 69 67 68 65 nts of a highe
02C440: 72 20 20 70 72 69 6F 72 69 74 79 20 20 74 68 61 r priority tha
02C450: 6E 0D 0A 20 20 20 20 20 20 20 69 74 73 65 6C 66 n.. itself
02C460: 20 61 72 65 20 6E 6F 74 69 66 69 65 64 20 74 6F are notified to
02C470: 20 69 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 it.......
02C480: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 6E This routine en
02C490: 61 62 6C 65 73 20 69 6E 74 65 72 72 75 70 74 73 ables interrupts
02C4A0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 ....... Re
02C4B0: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
02C4C0: 0D 0A 20 20 20 20 20 20 20 4B 4C 20 45 56 45 4E .. KL EVEN
02C4D0: 54 0D 0A 20 20 20 20 20 20 20 4B 4C 20 44 4F 4E T.. KL DON
02C4E0: 45 20 53 59 4E 43 0D 0A 20 20 20 20 20 20 20 4B E SYNC.. K
02C4F0: 4C 20 44 4F 20 53 59 4E 43 0D 0A 20 20 20 20 20 L DO SYNC..
02C500: 20 20 4B 4C 20 4E 45 58 54 20 53 59 4E 43 0D 0A KL NEXT SYNC..
02C510: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
02C520: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
02C530: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
02C540: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
02C550: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
02C560: 65 20 31 37 2E 31 33 0D 0A 0D 0A 0D 0A 0D 0A 0D e 17.13.........
02C570: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 49 3A 20 ..... HI:
02C580: 4B 4C 20 53 43 41 4E 20 4E 45 45 44 45 44 20 20 KL SCAN NEEDED
02C590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02C5A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02C5B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 39 #B9
02C5C0: 32 41 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 2A...... E
02C5D0: 6E 73 75 72 65 20 6B 65 79 62 6F 61 72 64 20 69 nsure keyboard i
02C5E0: 73 20 73 63 61 6E 6E 65 64 20 61 74 20 6E 65 78 s scanned at nex
02C5F0: 74 20 6F 70 70 6F 72 74 75 6E 69 74 79 2E 0D 0A t opportunity...
02C600: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F .... Actio
02C610: 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 n:...... F
02C620: 6F 72 63 65 20 74 68 65 20 4B 65 79 20 4D 61 6E orce the Key Man
02C630: 61 67 65 72 20 74 6F 20 20 73 63 61 6E 20 20 74 ager to scan t
02C640: 68 65 20 20 6B 65 79 62 6F 61 72 64 20 20 77 68 he keyboard wh
02C650: 65 6E 20 20 74 68 65 20 20 6E 65 78 74 20 20 74 en the next t
02C660: 69 63 6B 65 72 0D 0A 20 20 20 20 20 20 20 69 6E icker.. in
02C670: 74 65 72 72 75 70 74 20 6F 63 63 75 72 73 2E 20 terrupt occurs.
02C680: 54 68 69 73 20 6D 61 79 20 62 65 20 75 73 65 64 This may be used
02C690: 20 74 6F 20 72 65 64 75 63 65 20 74 68 65 20 20 to reduce the
02C6A0: 70 72 6F 62 61 62 69 6C 69 74 79 20 20 6F 66 20 probability of
02C6B0: 20 6B 65 79 0D 0A 20 20 20 20 20 20 20 70 72 65 key.. pre
02C6C0: 73 73 69 6E 67 73 20 62 65 69 6E 67 20 6D 69 73 ssings being mis
02C6D0: 73 65 64 20 77 68 69 6C 65 20 69 6E 74 65 72 72 sed while interr
02C6E0: 75 70 74 73 20 61 72 65 20 64 69 73 61 62 6C 65 upts are disable
02C6F0: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 d....... E
02C700: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
02C710: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 ...... No
02C720: 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D conditions......
02C730: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
02C740: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
02C750: 20 20 20 20 20 41 46 20 61 6E 64 20 48 4C 20 63 AF and HL c
02C760: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
02C770: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
02C780: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
02C790: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
02C7A0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 :...... Th
02C7B0: 65 20 6B 65 79 62 6F 61 72 64 20 69 73 20 6E 6F e keyboard is no
02C7C0: 72 6D 61 6C 6C 79 20 20 73 63 61 6E 6E 65 64 20 rmally scanned
02C7D0: 20 6F 6E 20 20 65 76 65 72 79 20 20 73 69 78 74 on every sixt
02C7E0: 68 20 20 74 69 63 6B 65 72 20 20 69 6E 74 65 72 h ticker inter
02C7F0: 72 75 70 74 0D 0A 20 20 20 20 20 20 20 28 65 76 rupt.. (ev
02C800: 65 72 79 20 66 69 66 74 69 65 74 68 20 6F 66 20 ery fiftieth of
02C810: 61 20 73 65 63 6F 6E 64 29 2E 20 57 68 69 6C 65 a second). While
02C820: 20 69 6E 74 65 72 72 75 70 74 73 20 61 72 65 20 interrupts are
02C830: 64 69 73 61 62 6C 65 64 20 74 68 65 20 20 74 69 disabled the ti
02C840: 63 6B 73 0D 0A 20 20 20 20 20 20 20 61 72 65 20 cks.. are
02C850: 6C 6F 73 74 20 61 6E 64 20 74 68 65 20 6B 65 79 lost and the key
02C860: 62 6F 61 72 64 20 77 69 6C 6C 20 20 6E 6F 74 20 board will not
02C870: 20 62 65 20 20 73 63 61 6E 6E 65 64 2E 20 20 49 be scanned. I
02C880: 66 20 20 69 6E 74 65 72 72 75 70 74 73 20 20 61 f interrupts a
02C890: 72 65 0D 0A 20 20 20 20 20 20 20 64 69 73 61 62 re.. disab
02C8A0: 6C 65 64 20 66 6F 72 20 61 20 73 69 67 6E 69 66 led for a signif
02C8B0: 69 63 61 6E 74 20 70 65 72 69 6F 64 20 28 6D 6F icant period (mo
02C8C0: 72 65 20 74 68 61 6E 20 74 68 72 65 65 20 20 74 re than three t
02C8D0: 69 63 6B 73 29 20 20 74 68 65 6E 20 20 74 68 69 icks) then thi
02C8E0: 73 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 6E s.. routin
02C8F0: 65 20 73 68 6F 75 6C 64 20 62 65 20 63 61 6C 6C e should be call
02C900: 65 64 20 6A 75 73 74 20 62 65 66 6F 72 65 20 20 ed just before
02C910: 69 6E 74 65 72 72 75 70 74 73 20 20 61 72 65 20 interrupts are
02C920: 20 72 65 2D 65 6E 61 62 6C 65 64 2E 20 20 49 66 re-enabled. If
02C930: 0D 0A 20 20 20 20 20 20 20 69 6E 74 65 72 72 75 .. interru
02C940: 70 74 73 20 61 72 65 20 64 69 73 61 62 6C 65 64 pts are disabled
02C950: 20 66 6F 72 20 61 20 6C 6F 6E 67 20 74 69 6D 65 for a long time
02C960: 20 28 6D 6F 72 65 20 74 68 61 6E 20 74 77 65 6C (more than twel
02C970: 76 65 20 74 69 63 6B 73 29 20 20 74 68 65 6E 0D ve ticks) then.
02C980: 0A 20 20 20 20 20 20 20 74 68 65 20 20 75 73 65 . the use
02C990: 72 20 20 6D 69 67 68 74 20 20 63 6F 6E 73 69 64 r might consid
02C9A0: 65 72 20 20 63 61 6C 6C 69 6E 67 20 20 74 68 69 er calling thi
02C9B0: 73 20 20 72 6F 75 74 69 6E 65 20 20 20 61 6E 64 s routine and
02C9C0: 20 20 20 72 65 2D 65 6E 61 62 6C 69 6E 67 0D 0A re-enabling..
02C9D0: 20 20 20 20 20 20 20 69 6E 74 65 72 72 75 70 74 interrupt
02C9E0: 73 20 66 6F 72 20 61 20 73 68 6F 72 74 20 74 69 s for a short ti
02C9F0: 6D 65 20 65 76 65 72 79 20 66 69 66 74 69 65 74 me every fiftiet
02CA00: 68 20 6F 66 20 61 20 73 65 63 6F 6E 64 2E 0D 0A h of a second...
02CA10: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
02CA20: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
02CA30: 0A 0D 0A 20 20 20 20 20 20 20 4B 4D 20 53 43 41 ... KM SCA
02CA40: 4E 20 4B 45 59 53 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A N KEYS..........
02CA50: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
02CA60: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
02CA70: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
02CA80: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
02CA90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02CAA0: 20 20 20 20 20 20 20 70 61 67 65 20 31 37 2E 31 page 17.1
02CAB0: 34 0D 0A 1A 20 53 65 70 61 72 61 74 65 20 66 72 4... Separate fr
02CAC0: 6F 6D 20 74 68 65 20 6D 61 69 6E 20 66 69 72 6D om the main firm
02CAD0: 77 61 72 65 20 6A 75 6D 70 62 6C 6F 63 6B 20 69 ware jumpblock i
02CAE0: 73 20 20 61 20 20 73 6D 61 6C 6C 20 20 6A 75 6D s a small jum
02CAF0: 70 62 6C 6F 63 6B 20 20 66 6F 72 0D 0A 20 20 20 pblock for..
02CB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
02D310: 26 00 00 00 02 09 50 E5 26 00 C1 02 00 00 00 02 &.....P.&.......
02D320: 26 00 C2 02 00 00 00 02 26 00 C3 02 00 00 00 02 &.......&.......
02D330: 26 00 C4 02 00 00 00 02 26 00 C5 02 00 00 00 02 &.......&.......
02D340: 26 00 C6 02 00 00 00 02 26 00 C7 02 00 00 00 02 &.......&.......
02D350: 26 00 C8 02 00 00 00 02 26 00 C9 02 00 00 00 02 &.......&.......
02D360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
02E610: 27 00 00 00 02 09 50 E5 27 00 C1 02 00 00 00 02 '.....P.'.......
02E620: 27 00 C2 02 00 00 00 02 27 00 C3 02 00 00 00 02 '.......'.......
02E630: 27 00 C4 02 00 00 00 02 27 00 C5 02 00 00 00 02 '.......'.......
02E640: 27 00 C6 02 00 00 00 02 27 00 C7 02 00 00 00 02 '.......'.......
02E650: 27 00 C8 02 00 00 00 02 27 00 C9 02 00 00 00 02 '.......'.......
02E660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
RESULT OF SEARCH :
PRO=166 CHEA=0 COD=40 MUSI=0 COP=5 GRA=202 WRIT=85 198=2 199=2 STARTER=0 KBI=0 CAAV=0 L.TOURNIER=0
EXTENDED CPC DSK File SAMdisk120417( PCHAP-15 15q CHAP-15 16 CHAP-15 16!CHA
P-15 17"#$%&'()*+,-./01CHAP-15 172CHAP-15 183456789ABCHAP-15 19CDEFGHIJKLMNOPQRC
HAP-15 19SCHAP-15 20TUVWXYZabcCHAP-15 20dCHAP-15 21efghijklmnopqrstCHAP-15 21uCH
AP-15 22vwxyzCHAP-16 1 CHAP-16 1 CHAP-16 2 BCHAP-17 £CHAP-17
The prompt messages are turned on (see CAS NOISY) by this routine.
When cataloguing the Cassette Manager reads the header record, prints
information from it and then reads the data record. This cycle repeats
until the user hits the escape key. The information printed is as
follows FILENAME block N T Ok FILENAME is the n
ame of the file on the tape, or 'Unnamed file' if the filename starts wi
th a null (character #00). N is the block. Block 1 is normally the f
irst block in a file. T is a representation of the file type of the
file. It is formed by adding #24 (the character '$') to the file type
byte masked with #0F (to remove the version number field). The stan
dard file types are thus $ a BASIC progr
am file % a protected BASIC program file
* an ASCII text file (default file type) & a
binary file. ' a protected binary file Oth
er file types are possible but will not have been written by the BASI
C in the on-board ROM. See section 8.4 for a description of the file
type byte. Ok is printed after the end of the data record. This sho
ws that the data was read without errors and also serves to indicate
the end of the data on tape (to help avoid over-recording a tape file)
. Related entries CAS CATALOG (DISC) CAS NOISY
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.160 137 CAS CATALOG (DISC)
#BC9B Display the disc directory A
ction Display the disc directory for the current drive and current use
r. The directory is sorted into alphabetical order and displayed in a
s many columns as will fit in the current text window (stream#0). The s
ize in Kbytes is shown along side each file. The total amount of free
space on the disc is also shown. Entry conditions DE
contains the address of a 2K buffer to use. Exit conditions
If the cataloging went OK Carry true. Zero
false. A corrupt. If failed for any reason
Carry false. Zero true. P A contains
an error number. Always BC,DE,HL,IX and other flag
s corrupt. All registers preserved. NOTES F
iles marked SYS are not shown. Files marked R/O are shown with a '*'
after the filename. Unlike the cassette version of this routine, th
e disc input stream is not required. (Note BASIC abandons both the inpu
t and output streams when generating the catalogue.) Rela
ted entries CAS CATALOG DIR AMSTRAD CPC464/6
64/6128 FIRMWARE page 15.161 138 C
AS WRITE #BC9E Write
a record to tape. Action. Write a record to the cassette. T
his routine is used by the higher level routines (CAS OUT CHAR, CAS
OUT DIRECT and CAS OUT CLOSE) to write the header and data records t
hat make up a tape file. Entry conditions HL contains the ad
dress of the data to write. DE contains the length of the data to write.
A contains the sync character to write at the end of the leader.
Exit conditions If the record was written OK Ca
rry true. A corrupt. If an error occurred or the user
hit escape Carry false. A contains an error
code. Always BC, DE, HL, IX corrupt.
All other registers preserved. Notes A data length of
0 passed to this routine is taken to mean 65536 bytes and all of the mem
ory will be written to tape. (This is unlikely to be useful).
The data to be written may lie anywhere in RAM, even underneath a ROM.
The sync character is used to distinguish header records (sync is #2C)
from data records (sync is #16). Other sync characters could be used
but the resulting record would require special action to be taken to
read it. The error codes returned by this routine are
0 Break The user hit the escape key. 1 Ov
errun The Cassette Manager was unable to get
back to writing a bit fast enough. AMSTRAD CPC464/66
4/6128 FIRMWARE page 15.162 Becaus
e reading and writing the tape requires stringent timing conside
rations interrupts are disabled whilst the tape is being written
(potentially a period of over 5 minutes). It would be unpleasan
t to have the sound chip making a noise for all this time so the Sound
Manager is shut down (SOUND RESET). When writing to the tape has finishe
d interrupts are re-enabled. The cassette motor is started by this
routine (in case it is not already on) and restored to its pr
evious state when writing is completed. Related entr
ies CAS CHECK CAS READ
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.163 139 CAS READ
#BCA1 Read a record from tap
e. Action Read a whole record from the cassette. This routin
e is used by the higher level routines (CAS IN CHAR, CAS IN DIRECT
and CAS CATALOG amongst others) to read the header and data records
that make up a file. Entry conditions HL contain
s the address to put the data read. DE contains the length of the data t
o read. A contains the sync character expected at the end of the leader.
Exit conditions If record was read OK Ca
rry true. A corrupt. If an error occurred or the user
hit escape Carry false. A contains an error
code. Always BC, DE, HL, IX and other flags corr
upt. All other registers preserved. Notes
A data length of 0 passed to this routine is taken to mean 65536
bytes. (This is not useful). It is not necessary to read a whole r
ecord from tape. If the length passed is less than the actual length
of th Pe record then only the number of bytes will be read. Trying
to read more bytes from a record than were written will produce an err
or, usually an overflow error (see below). The sync char
acter is used to distinguish header records (sync is #2C) from data reco
rds (sync is #16). Other sync characters could be used if the record w
as written that way. AMSTRAD CPC464/664/6128 FIRMWARE
page 15.164 The error codes returned by
this routine are 0 Break The user hit the escap
e key. 1 Overflow The Cassette Manager found a bit
that was too long to read.
2 CRC A CRC failure was detected. The cassette m
otor is started by this routine (in case it is not already on) and
restored to its previous state when reading is completed.
Because reading the tape requires stringent timing constraints,
interrupts are disabled whilst the tape is being read (potentially a
period of over 5 minutes). It would be unpleasant to have the sound
chip making a noise for all this time so the Sound Manager is shut
down (SOUND RESET). When reading from the tape has finished interrupts
are re-enabled. Related entries CAS CHECK
CAS WRITE AMSTRAD CP
C464/664/6128 FIRMWARE page 15.165
140 CAS CHECK #BCA4
Compare a record on tape with the contents of store. Action
Check that a tape record contains a correct version of the data
supplied. This routine is intended to be used after writing records to c
heck that they were written correctly. Entry conditions HL c
ontains the address of the data to check. DE contains the length of the
data to check. A contains the sync character expected at the end of the
leader. Exit conditions If the record checked OK
Carry true. A corrupt. If an error occurred
or the user hit escape Carry false. A conta
ins an error code. Always BC, DE, HL, IX and ot
her flags corrupt. All other registers preserved. Not
es A data length of 0 passed to this routine is taken to mean
65536 bytes. (This is bound to produce a check failure). It
is not necessary to check the whole of a record on tape. If the leng
th passed is less than the actual length of the record then only the n
umber of bytes will be checked. Trying to check more bytes in a record
than were written will produce an error of some sort (see below).
The data to be checked may lie anywhere in RAM, even underneath a R
OM. The sync character is used to distinguish header records (sync i
s #2C) from data records (sync is #16). Other sync characters could be u
sed. AMSTRAD CPC464/664/6128 FIRMWARE
page 15.166 The error codes returned by this routine are
0 Break The user hit the escape key.
1 Overrun The Cassette Manager found a bit that was
too long to read. 2 CRC
A CRC failure was detected. 3 Different The d
ata read from tape did not agree with t
hat in memory. The cassette motor is started by this routine (in
case it is not already on) and restored to its previous state wh
en checking is completed. Because reading the tape req
uires stringent timing constraints, interrupts are disabled whilst th
e tape is being checked (potentially a period of over 5 minutes). It wo
uld be unpleasant to have the sound chip making a noise for all this ti
me so the Sound Manager is shut down (SOUND RESET). When checkin
g has finished interrupts are re-enabled. Related e
ntries CAS READ CAS WRITE P
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.167 141 SOUND RESET
#BCA7 Reset the Sound Manager. Action
Re-initialize the Sound Manager - shut the sound chip up and clear all
queues. Entry conditions No conditions.
Exit conditions AF, BC, DE and HL corrupt. All other
registers preserved. Notes The sound queues are cleared.
Any current sound is stopped. The sound generator chip is silen
ced. This routine enables interrupts. Related entrie
s SOUND HOLD AMSTRAD CPC464/66
4/6128 FIRMWARE page 15.168 142 SO
UND QUEUE #BCAA Add a
sound to a sound queue. Action Try to add a sound to the sou
nd queue of one or more channels. If the sound queue of any of the chan
nels is full then no sound will be issued to any channel.
Entry conditions HL contains the address of a sound program which
must lie in the central 32K of RAM. Exit conditions
If the sound was added to the queue(s) Carry true.
HL corrupt. If at least one queue was full
Carry false. HL preserved. Always
A, BC, DE, IX and other flags corrupt. All other registers p
reserved. Notes The sound program is laid out as follows
Byte 0 Channels to use and rendezvous requirements.
Byte 1 Amplitude envelope to use. Byte 2
Tone envelope to use. Bytes 3..4 Tone period.
Byte 5 Noise period. Byte 6 Initial ampl
itude. Bytes 7..8 Duration or envelope repeat count.
All values in the sound program are masked into the appropriate range
before being used. The channels to issue the sound on are encoded in
to byte 0 as follows Bit 0 Issue on channel A.
Bit 1 Issue on channel B. Bit 2 Issue on channel C.
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.169 ge 15.170 Bit 3 Rendezvous with channetion or envel
ope repeat count. All values in the sound program are masked into the
appropriate range before being used. The channels to issue th
e sound on are encoded into byte 0 as follows Bit 0 Issue
on channel A. Bit 1 Issue on channel B. Bit
2 Issue on channel C. A The rendezvous
requirements are encoded into byte 0 as follows Bit 3 Rende
zvous with channel A. Bit 4 Rendezvous with channel B.
Bit 5 Rendezvous with channel C. Bit 6 Hold u
ntil released. Bit 7 Flush queue. A channel will ign
ore an order to rendezvous with itself. Sounds issued on multiple
channels implicitly rendezvous with each other. Sounds that are orde
red to rendezvous will be issued to the sound generator starting at
the same time. Setting the hold bit prevents the sound from runnin
g until it is released by calling SOUND RELEASE (or a routine hav
ing a similar effect). Setting the flush bit will empty the queue and
abandon any currently active sound thus allowing the new sound
to start immediately. The amplitude envelope is in the ra
nge 0..15. Envelopes 1..1 P5 are the amplitude envelopes that can b
e set using SOUND AMPL ENVELOPE. Envelope 0 means use no amplitude
envelope, simply hold the initial amplitude for 2 seconds or the dura
tion specified. The tone envelope is in the range 0..15. Envelopes 1..
15 are the tone envelopes that can be set using SOUND TONE ENVELOPE. En
velope 0 means use no tone envelope, simply hold the initial tone.
A tone period of 0 means do not generate any tone. Tone periods in the
range 1..4095 specify the period of the tone in 8 microsecond units.
The noise period is in the range 0..31. Noise periods 1..31 specify
the period of the noise component of a sound. A noise period of 0
means use no noise. The initial amplitude is in the range 0..15. A
mplitude 0 being no initial sound, amplitude 15 being the maximum vol
ume. Bytes 7 and 8 store the sound time. If this is zero then the ampl
itude envelope is obeyed once. If the sound time is negative then
the amplitude envelope is obeyed minus the sound time number of ti
mes (i.e. 1..32768 times). If the sound time is positive but not zero th
en it is taken to be the duration of the sound in 1/100s of a second.
If a duration is specified when an amplitude envelope is in use then
the duration given sets the length of the sound. If the duration is
longer than the envelope then the final amplitude of the envelope is
sustained until the duration expires. Tone envelopes are treated in
much the same way as amplitude envelopes except that they never
specify the length of the sound. The sound event that is run when a sou
nd queue has a free slot is disarmed on the channels specified in t
his command. All sounds currently held by SOUND HOLD are automaticall
y released when this routine is called. Also, the sound queue event is
disarmed (see SOUND ARM EVENT). SOUND QUEUE may enable interru
pts. Related entries SOUND ARM EVENT SOUND CHECK
SOUND RELEASE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.170 143 SOUND CHECK
#BCAD Ask if there is space in a sound queue.
Action Ask the state of a sound channel. The status includes
the number of free spaces in the sound queue and whether the channel i
s held. Entry conditions A contains the bit for the channel
to test. Exit conditions A contains the channel status.
BC, DE, HL and flags corrupt. All other registers preserved.
Notes The channel to ask the status of is encoded as follows
Bit 0 Ask about channel A. Bit 1 Ask about
channel B. Bit 2 Ask about channel C. If more tha
n one bit is set then the status of only one channel is returned. Th
e channels are tested in the order given above. The status returned is
encoded as follows Bits 0..2 Contain the number of free slots
in the channel's sound queue. Bit 3
The channel is awaiting a rendezvous with channel A. Bit 4
The channel is awaiting a rendezvous with channel B. Bit 5 T
he channel is awaiting a rendezvous with channel C. Bit 6 The
channel is held. Bit 7 The channel is active (producing a so
und). Calling this routine disarms the sound queue event that occu
rs when the queue has a free slot for the channel returned (see SOU
ND ARM EVENT). This routine may enable interrupts.
Related entries SOUND ARM EVENT SOUND QUEUE
AMSTRAD CPC464/664/6128 FIRMWARE page 15.171
144 SOUND ARM EVENT #
BCB0 Set up an event to be run when a sound queue becomes empty.
Action Arm the sound event to be run when a free slot occurs in
a channel's sound queue. Entry conditions A conta
ins the bit for the channel to arm. HL contains the address of an event
block. Exit conditions AF, BC, DE Pand HL corrupt.
All other registers preserved. Notes The channel for which
to arm the event is encoded as follows Bit 0 Arm channel A
. Bit 1 Arm channel B. Bit 2 Arm channel
C. If more than one bit is set then only one channel is armed
. The channels are armed in the order given above. The event
block passed must be initialized (by KL INIT EVENT). The event will
be 'kicked' when a free slot occurs in the queue. If there is a free
slot in the queue when this routine is called then the event will be 'ki
cked' immediately. The sound event is disarmed automatically when SO
UND QUEUE or SOUND CHECK is called. It is also disarmed when the even
t is run. Thus, the event routine will need to rearm the sound vent to
keep it running continuously. This routine may enable in
terrupts. Related entries KL INIT EVENT SOUND CH
ECK SOUND QUEUE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.172 145 SOUND RELEASE
#BCB3 Allow sounds which are indi
vidually held to start. Action Release held sounds on a
number of channels. This allows sounds that were marked with a hold bi
t when they were set up by SOUND QUEUE to start (other factors willin
g). Entry conditions A contains bits for the channels to
release. Exit conditions AF, BC, DE, HL and IX corrupt.
All other registers preserved. Notes The channe
ls to release are encoded as follows Bit 0 Release chann
el A. Bit 1 Release channel B. Bit 2 Rel
ease channel C. All channels that are specified are released.
All sounds currently held by SOUND HOLD are automatically released.
This routine may enable interrupts. Related entries
SOUND QUEUE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.173 146 SOUND HOLD
#BCB6 Stop all sounds in midflight.
Action This stops all sounds immediately. The sounds can be s
tarted again by calling SOUND CONTINUE. Entry conditions
No conditions. Exit conditions If a sound was active
Carry true. If no sound was active
Carry false. Always A, BC, HL and other
flags corrupt. All other registers preserved. Note
s Sounds that are held by this routine are automatically restarted
when SOUND QUEUE or SOUND RELEASE are called as well as when SOUND CONTI
NUE itself is called. The sound is stopped by halting the e
xecution of sound and tone envelopes and setting the sound chip volu
me to zero for all channels. When the sound is restarted it will contin
ue from as near where it was stopped as is possible. This ro
utine enables interrupts. Related entries SOUND CONTINUE
SOUND RESET AMSTRAD CPC464/664/6128 FIRMWARE
page 15.174 147 SOUND CONTINUE
#BCB9 Restart sounds after they have
all been held. Action Allows sounds that have been held
by calling SOUND HOLD to continue. Entry conditions No
conditions. Exit conditions AF, BC, DE and IX corrupt.
All other registers preserved. Notes If no sounds
are held then no action is taken. This routine may enable interrupt
s. Related entries SOUND HOLD SOUND RELEASE
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.175 148 SOUND AMPL ENVELOPE
#BCBC Set up an amplitude envel
ope. Action Set up one of the 15 user programmable amplitude
(volume) envelopes. Entry conditions A contains an P envel
ope number. HL contains the address of an amplitude data block.
Exit conditions If envelope has been set OK Carry
true. HL contains the address of the data block + 16.
A and BC corrupt. If the envelope number is invalid
Carry false. A, B and HL preserved. Always
DE and other flags corrupt. All other regist
ers preserved. Notes The envelope to set up is specified by
a number in the range 1..15. N envelope is set up if a number outside t
his range is passed. The amplitude data block is copied into the ampl
itude envelope. The data block may lie in ROM or in RAM. It may not
lie in RAM hidden underneath a ROM. The amplitude data bloc
k has the following layout Byte 0 Count of sect
ions in the envelope. Bytes 1..3 First section of the e
nvelope. Bytes 4..6 Second section of the envelope.
Bytes 7..9 Third section of the envelope.
Bytes 10..12 Fourth section of the envelope. Bytes 13..1
5 Fifth section of the envelope. The first byte of the amplitu
de data block specifies the number of sections used in the envelope.
Sections not used need not be set up. An envelope using no sections h
as a special meaning - hold a constant volume lasting for 2 seconds.
AMSTRAD CPC464/664/6128 FIRMWARE page 15
.176 The number of sections to use is not checked, if a numb
er outside the range 0..5 is supplied then this will have unpredictable
effects. This should be avoided. Each section of the amplitud
e data block can specify either a hardware or a software envelope. This
is indicated by the first byte of the section. A software
envelope section is laid out as follows Byte 0 Step count.
Byte 1 Step size. Byte 2 Pause time.
The fact that this is a software envelope section rather than a
hardware envelope section is indicated by byte 0 not having bit 7 set.
If the step count is in the range 1..27 then the step size is added to
the volume that number of times with a wait equal to the pause time in
1/100s of a second after each addition. If the step count is zero t
he step size is taken to be an absolute volume setting. A single wai
t of the pause time in 1/100s of a second is made. After ca
lculating the new volume this is marked with #0F to make sure it is leg
al. Thus, all arithmetic on the volume is carried out modulo 16.
A pause time of 0 is taken to mean 256 1/100s of a second. A hardw
are envelope section is laid out as follows Byte 0 Enve
lope shape. Byte 1..2 Envelope period. The fact th
at this is a hardware envelope section rather than a software env
elope section is indicated by byte 0 having bit 7 set. The envelope sh
ape (masked with #7F) is sent to register 13 of the sound generator.
This set the shape of the hardware envelope and whether it repeat
s (see Appendix IX for details). The envelope period is sent to regis
ters 11 and 12 of the sound generator. These set the length of the
hardware envelope (see Appendix IX for details). The section
after a hardware section should be a pause long enough to allow the har
dware envelope to operate. A pause can be constructed using a softwa
re envelope with a step size of 0 and with the repeat count and pause
time juggling to give the right total time. There is no protection ag
ainst changing an envelope whilst it is in use. This could have unpre
dictable effects and should be avoided. AMSTRAD CPC464/664/6128
FIRMWARE page 15.177 The length of
the sound can either be determined by the duration supplied when
the sound is queued or by the envelope terminating (see SOUND QUEUE). I
f a duration is set that is shorter than the envelope then the envelop
e is truncated. If the Pduration is longer than the envelope then
the final volume is sustained until the duration expires.
Related entries SOUND A ADDRESS SOUND TONE ENVELOP
E
AMSTRAD CPC464/664/6128 FIRMWARE pag
e 15.178 149 SOUND TONE ENVELOPE
#BCBF Set up a tone envelope. Action
Set up one of the 15 user programmable tone envelopes. Entry condition
s A contains an envelope number. HL contains the address of a
tone data block. Exit conditions If the envelope has bee
n set up OK Carry true. HL contains the addr
ess of the data block + 16. A and BC corrupt. If the
envelope number is invalid Carry false. A, B
C and HL preserved. Always DE and other flags cor
rupt. All other registers preserved. Notes
The envelope to set up is specified by a number in the range 1..15. No
envelope is set up if a number outside this range is passed. The
tone data block is copied into the tone envelope. The data block may l
ie in ROM or in RAM. It may not lie in RAM underneath a ROM. The ton
e data block has the following layout Byte 0 Co
unt of sections in the envelope. Bytes 1..3 First secti
on of the envelope. Bytes 4..6 Second section of the en
velope. Bytes 7..9 Third section of the envelope.
Bytes 10..12 Fourth section of the envelope.
Bytes 13..15 Fifth section of the envelope. AMSTRAD CPC464
/664/6128 FIRMWARE page 15.179 The
first byte of the tone data block (masked with #7F) specifies the numb
er of sections used in the envelope. Sections not used need not be set u
p. An envelope using no sections will not alter the tone (i.e. no envelo
ping). The number of sections to use is not checked, if a number outside
the range 0..5 is supplied then this will have unpredictable effects.
This should be avoided. The top bit, bit 7, of the count is used t
o indicate a repeating envelope. If this bit is set then when the
last section of the envelope finishes the first will be used again.
Each section of the tone data block is laid out as follows
Byte 0 Step count. Byte 1 Step size.
Byte 2 Pause time. If the step count lies in the range #00..#EF
then the section is a relative section. The step size is sign extend
ed (bit 7 is copied to bits 8..15) and is added to the current tone
period the number of times specified by the step count. After each ad
dition a wait of the pause time in 1/100s of a second is made. The sou
nd chip only uses the lower 12 bits of the tone period so all arithm
etic is carried out modulo #1000. A step count of 0 is ta
ken to mean 1 step whilst a pause time of 0 is taken to mean 256 1/100s
of a second. If the step count lies in the range #F0..#FF then the
section is an absolute section. The least significant four bits of t
he step count are taken to be the most significant byte of the tone pe
riod and the step size is taken to be the least significant byte. This
tone period is set immediately and is followed by a pause whose length
is set by the pause time in 1/100s of a second. There is
no protection against changing an envelope whilst it is in use. This
could have unpredictab Ple effects and should be avoided. If the to
ne envelope finishes before the end of the sound (as set when the sound
was queued) then the final tone is held. i.e. The tone envelope do
es not affect the length of the sound. Related entries
SOUND AMPL ENVELOPE SOUND T ADDRESS AMSTRAD CPC464/66
4/6128 FIRMWARE page 15.180 150 SO
UND A ADDRESS #BCC2 Get
the address of an amplitude envelope. Action Ask where t
he data area for an amplitude envelope is stored. Entry conditions
A contains an envelope number. Exit conditions
If the envelope was found OK Carry true.
HL contains the address of the amplitude envelope. BC contains
the length of an envelope (16 bytes). If the envelope number was in
valid Carry false. HL corrupt.
BC preserved. Always A and other flags co
rrupt. All other registers preserved. Notes
The envelope is laid out as described in SOUND AMPL ENVELOPE.
Related entries SOUND AMPL ENVELOPE SOUND T ADDRESS
AMSTRAD CPC464/664/6128 FIRMWARE page 15.181
151 SOUND T ADDRESS
#BCC5 Get the address of a tone envelope. Action
Ask where the data area for the tone envelope is stored. Entr
y conditions A contains an envelope number. Exit conditi
ons If the envelope was found OK Carry true.
HL contains the address of the tone envelope.
BC contains the length of an envelope (16 bytes). If the envelope
number was invalid Carry false. HL corrupt
. BC preserved. Always A and oth
er flags corrupt. All other registers preserved. No
tes The envelope number must lie in the range 1..15. The ton
e envelope is laid out as described in SOUND TONE ENVELOPE. Related en
tries SOUND A ADDRESS SOUND TONE ENVELOPE AMST
RAD CPC464/664/6128 FIRMWARE page 15.182
152 KL CHOKE OFF #BCC8
Reset the Kernel - clears all event queues etc. Action
This entry completely clears all event queues, the various timer and
frame flyback lists and so on. The effect is to dispose of any pending
synchronous events and to halt all timer related functions other than s
ound generation and keyboard scanning. Entry conditions No c
onditions. Exit conditions B contains the ROM select address
of the current foreground ROM (if any). DE contains the ad
dress at which the current foreground ROM was entered.
C contains the ROM select address for a RAM foreground program. AF and
HL corrupt. All other registers preserved. Notes
If the current foreground program is in RAM then the ROM select
address and entry point returned are both zero. i.e. The default ROM
(ROM 0) at its entry address. KL CHOKE OFF forms part of the close d
own required before a new RAM foreground program is loaded, as is req
uired by MC BOOT PROGRAM. The close down must ensure that there are no
interrupt or other events active and using memory which might be dam
aged by loading a new program into memory. In the complete close dow
n MC BOOT PROGRAM does SOUND RESET to kill off sound
generation an OUT to I/O port #F8FF to reset any external interrup
t sources. KL CHOKE OFF to kill off events etc.
KM RESET to reset any keyboard indirections and
the break event. TXT RESET
to reset any Text VDU indirections. SCR RESET
to reset any screen indirections. P AMSTRAD CPC464/664/6128 FI
RMWARE page 15.183 The values retu
rned by KL CHOKE OFF are used by MC BOOT PROGRAM if the program load fai
ls. This information is included for the reader's interest.
MC BOOT PROGRAM is the recommended means of loading and entering
a RAM foreground program. MC START PROGRAM is the recommended mea
ns of entering a ROM foreground program, or a RAM foreground program
which has already been loaded. KL CHOKE OFF disables inter
rupts. Related entries MC BOOT PROGRAM MC
START PROGRAM
AMSTRAD CPC464/664/6128 FIRMWARE page 15.1
84 153 KL ROM WALK
#BCCB Find and initialize all background ROMs. Action
Background ROMs provide support for expansion hardware or augment th
e software facilities of the machine. If the facilities provided by the
background ROMs are to be available, the foreground program must
initialize them. This routine finds and initializes all background
ROMs. Entry conditions DE contains address of the fi
rst usable byte of memory (lowest address). HL contains add
ress of the last usable bytes of memory (highest address).
Exit conditions DE contains the address of the new first usable byte
of memory. HL contains the address of the new last usable byte of memor
y. AF and BC corrupt. All other registers preserved. N
otes When a foreground ROM program is entered it is passed the address
es of the first and last bytes in memory which it may use. The are out
side this is used to store firmware variables, the stack, the jumpblo
cks and the screen memory. From the area available for the foregrou
nd program to use, the areas for background programs to use must b
e allocated. The foreground program should initialize backgrou
nd ROMs at an early stage, before it uses the memory it is given. It m
ay choose whether to enable background ROMs or not. KL INIT BACK may be
used to initialize a particular background ROM or this routine may be u
sed to initialize all available background ROMs. KL ROM WALK
inspects the ROMs at ROM select addresses in the range 1.. 7 in V1.0
firmware and 0..15 in V1.1 firmware. The power-up initialization
entry of each background ROM found is called (unless it is the current
foreground ROM in V1.1 firmware). This entry may allocate some me
mory for the background ROM's to use by adjusting the values in DE a
nd HL before returning. Once the ROM has been initialized the Ke
rnel adds it to the list of external command servers, and notes
the base of the area which the ROM has allocated at the top of memory (i
f any). Subsequent FAR CALLs to entries in the ROM will automatically se
t the IY index register to point at the ROMs upper memory area.
See section 10.4 for a full description of background ROMs. Rel
ated entries KL FIND COMMAND KL INIT BACK KL LOG EXT
AMSTRAD CPC464/664/6128 FIRMWARE page 15.185
154 KL INIT BACK
#BCCE Initialize a particular background ROM. Action
Background ROMs provide support for expansion hardware or augment the
software facilities of the machine. If the facilities provided by the
background ROMs are to be available the foreground program must
initialize them. This routine selects and initializes a particular
background ROM. Entry conditions C contains the ROM selec
t address of the ROM to initialize. DE contains address of the first
usable byte of memory (lowest address). HL contains address
of the last usable byte of memory (highest address).
Exit conditions DE contains the address of the new first usable byte
of memory. HL contains the address of the new last usable byte of memor
y. P AF and B corrupt. All other registers preserve
d. Notes The ROM select address must be in the range 1..7 in
V1.0 and 0..15 in V1.1 firmware and the ROM at this address must be a
background ROM or the request will be ignored. In V1.1 firmware the
request will be ignored if the ROM is the current foreground ROM.
When the foreground program is entered it is passed the addresses of
the first and last bytes in memory which it may use. The area of
memory outside this is used to store firmware variables, the stack,
the jumpblocks and the screen memory. From the area available for the
foreground program to use, the areas for background programs to use
must be allocated. The foreground program should initialize backgroun
d ROMs at an early stage, before it uses the memory it is given. It ma
y choose whether to enable background ROMs or not. KL ROM WALK may be us
ed to initialize all available ROMs or this routine may be use
d to initialize particular ROMs. This routine causes the bac
kground ROM's power-up initialization entry to be called. This entry may
allocate some memory for the background ROM's use by adjusting the va
lues in DE and HL before returning. Once the ROM has been initialized
the Kernel adds it to the list of external command servers, and n
otes the base of the area which the ROM has allocated to itself at the t
op of memory (if any). Subsequent FAR CALLs to entries in the ROM wil
l automatically set the IY index register to point at the ROM's upp
er memory area. AMSTRAD CPC464/664/6128 FIRMWARE
page 15.186 See section 10.4 for a full description o
f background ROMs. Related entries KL FIND COMMAND
KL LOG EXT KL ROM WALK
AMSTRAD CPC464/664
/6128 FIRMWARE page 15.187 155 KL
LOG EXT #BCD1 Intro
duce an RSX to the firmware. Action RSXs (Resident Syste
m Extensions) are similar to background ROMs, but are loaded into RAM.
This routine must be called to include the RSX on the Kernel's list of e
xternal command servers. Entry conditions BC contains th
e address of the RSX's command table. HL contained the address of a 4 by
te area of RAM for the Kernel's use. Exit conditions DE
corrupt. All other registers preserved. Notes Bo
th the RSX's command table and the Kernel's storage area must lie in the
central 32K of memory, i.e. not under a ROM. The format of command
table is described in section 10.2 and RSXs are discussed in section 10
.5. Related entries KL FIND COMMAND KL INIT BA
CK AMSTRAD CPC464/664/6128 FIRMWARE
page 15.188 156 KL FIND COMMAND
#BCD4 Search for an RSX, backgroun
d ROM or foreground ROM to process a command. Action
All expansion ROMs and RSXs have command tables of the same form. This
routine searches all RSXs and background ROMs on the Kernel's list of
external command servers looking for a match for the given command
name. If the name is found, then the 'far address' of the associated
routine is returned. If the command is not a background or RSX command
then all the foreground ROMs that can be found are searched for a
foreground program with the given name. If a foreground program is
found then the system immediately enters it. Entry conditions
HL contains the address of the command name to search for. Exit co
nditions If an RSX or background ROM command was found
Carry true. C contains the ROM select address.
HL contains the address of the routine. If the command was no
t found Carry false. C and HL corrupt.
Always A, B and DE corrupt. P All
other registers preserved. Notes The command name passed
must be in RAM but may lie underneath a ROM. The name may be any numb
er of characters long but only the first 16 characters are significan
t. All alphabetic characters in the name should be in upper case an
d the last character of the name should have bit 7 set. The
ROM select and routine addresses returned are suitable for calling KL FA
R PCHL. AMSTRAD CPC464/664/6128 FIRMWARE p
age 15.189 9 Bit 3 Rendezvous with ch The lis
t of external command servers is generated as background ROMs and RSXs
are initializedized (see KL ROM WALK, KL INIT BACK and KL LOG EXT).
The command tables are scanned in the opposite order to that in which th
e command servers were introduced. Thus, RSXs will tend to take precede
nce over background ROMs, since RSX's are, in general, initialized
after background ROMs. Background ROMs are normally initialized in
reverse order of ROM select addresses, so lower numbered ROMS w
ill take precedence over higher. See section 10.2 for a description
of the format of expansion ROM command tables. The firs
t entry in a background ROM's command name table (the one associate
d with the power-up entry) may be used as the ROM's name. KL FIND COMMA
ND may be used, therefore, to find out whether a particular background
ROM has been initialized. When searching for a foreground program, R
OMs are inspected starting with ROM 0 and working upwards. The searc
h ceases when the first unused ROM address greater than 0 on V1.0 fi
rmware and greater than 15 on V1.1 firmware is found. The on
-board BASIC may be entered by searching for and invoking the command
'BASIC'. If a foreground ROM command is found the ROM
is entered unconditionally this routine never returns. R
elated entries KL INIT BACK KL LOG EXT KL ROM WALK
MC START PROGRAM AMSTRAD CPC464
/664/6128 FIRMWARE page 15.190 157
KL NEW FRAME FLY #BCD7 I
nitialize and put a block onto the frame flyback list. Action
The Kernel maintains a list of events to be kicked each time frame
flyback occurs. The routine initializes a block and adds it to the
list. Entry conditions HL contains the address of th
e frame flyback block. B contains the event class. C contains th
e ROM select address of the event routine. DE contains the address of th
e event routine. Exit conditions AF, DE and HL corrupt.
All other registers preserved. Notes The frame f
lyback block is 9 bytes long and must lie in the central 32K of RAM.
The last 7 bytes of the frame flyback block are an event block which i
s initialized to reflect the parameters passed in B, C and DE (see KL
INIT EVENT). The exact layout of a frame flyback block is described in
Appendix X. The frame flyback block is appended to the frame flybac
k list if it is not already on it. This routine enables inte
rrupts. Related entries KL ADD FRAME FLY KL
PDEL FRAME FLY KL INIT EVENT AMSTRAD CPC464/664/6128 F
IRMWARE page 15.191 158 KL ADD FRA
ME FLY #BCDA Put a block
onto the frame flyback list. Action The Kernel maintains
a list of events to be kicked each time frame flyback occurs. This
routine adds a block to the list. Entry conditions HL co
ntains the address of the frame flyback block. Exit conditions
AF, DE and HL corrupt. All other registers preserved.
Notes The frame flyback block is 9 bytes long and it must lie in th
e central 32K of RAM. The last 7 bytes of the frame flyback block are a
n event block which must be initialized separately before callin
g this routine. The exact layout of a frame flyback block is describ
ed in Appendix X. The block is appended to the frame flybac
k list if it is not already on it. The routine enables int
errupts. Related entries KL DEL FRAME FLY KL I
NIT EVENT KL NEW FRAME FLY AMSTRAD CPC464/664/
6128 FIRMWARE page 15.192 159 KL D
EL FRAME FLY #BCDD Remove
a block from the frame flyback list. Action The Kernel
maintains a list of events to be kicked each time frame flyback occu
rs. This routine removes a block from the list. Entry conditions
HL contains the address of the frame flyback block. Exit co
nditions AF, DE and HL corrupt. All other registers preserve
d. Notes This routine does nothing if the block is not o
n the list. Removing a block from the list only prevents the event
being kicked again. It does not affect any outstanding frame flyback e
vents. This routine enables interrupts. Related entrie
s KL ADD FRAME FLY KL NEW FRAME FLY
AMSTRAD CPC464/664/6128 FIRMWARE page 15.1
93 160 KL NEW FAST TICKER
#BCE0 Initialize and put a block onto the fast ticker list.
Action The Kernel maintains a list of events to be kic
ked each time the 1/300th of a second timer interrupt occurs. This is
known as the fast ticker list. This routine initializes a block and ad
ds it to the list. Entry conditions HL contains the address
of the fast ticker block. B contains the event class. C contains
the ROM select address of the event routine. DE contains the address of
the event routine. Exit conditions AF, DE and HL corrupt.
All other registers preserved. Notes The fast ticke
r block is 9 bytes long and must lie in the central 32K of RAM. The las
t 7 bytes of the fast ticker block are an event block which must be in
itialized to reflect the parameters passed in B, C and DE (see KL INIT E
VENT). The exact layout of a fast ticker block is described in Appen
dix X. The fast ticker block is appended to the fast ticker list if
it is not already on it. The fast ticker facility is not int
ended for general use. However, it does allow relatively short times
to be measured giving greater resolution than the general ticker fa
cilities. This routine enables interrupts. Related ent
ries KL ADD FAST TICKER KL ADD TICKER KL DEL FAST TI
CKER KL INIT EVENT KL TIME PLEASE AMSTRAD CPC464/6
64/6128 FIRMWARE page 15.194 161 K
L ADD FAST TICKER #BCE3 Put a
block onto the fast ticker list. Action The Kernel mainta
ins a list of events to be kicked each time the 1/300th of a secon
d timer interrupt occurs. This is known as the fast ticker list. This r
outine adds a block to the list. Entry conditions HL con
tains the address of the fast ticker block. Exit conditions
AF, DE and HL corrupt. P All other registers preserved.
Notes The fast ticker block is 9 bytes long and must lie
in the central 32K of RAM. The last 7 bytes of the fast ticker block ar
e an event block which must be initialized before calling this rou
tine. The exact layout of a fast ticker block is described in Appendix
X. The fast ticker block is appended to the fast ticker list if it
is not already on it. The fast ticker facility is not intend
ed for general use. However, it does allow relatively short times to
be measured giving greater resolution than the general ticker facil
ities. This routine enables interrupts. Related entrie
s KL ADD TICKER KL DEL FAST TICKER KL INIT EVENT
KL NEW FAST TICKER KL TIME PLEASE AMSTRAD CPC464/66
4/6128 FIRMWARE page 15.195 162 KL
DEL FAST TICKER #BCE6 Remo
ve a block from the fast ticker list. Action The Kernel
maintains a list of events to be kicked each time the 1/300th of a
second timer interrupt occurs. This is known as the fast ticker list.
This routine removes a block from the list. Entry conditions
HL contains the address of the fast ticker block. Exit conditio
ns AF, DE and HL corrupt. All other registers preserved.
Notes This routine does nothing if the block is not on the
list. Removing a block from the list only prevents the event fro
m being kicked again. It does not affect any outstanding fast ticker ev
ents. This routine enables interrupts. Related entries
KL ADD FAST TICKER KL DEL TICKER KL NEW FAST TICKER
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.196 163 KL ADD TICKER
#BCE9 Put a block onto the ticker list.
Action The general purpose timing facility measures time in
1/50th of a second units. The Kernel maintains a list of tick blocks
each of which contains a count and a recharge value. Every 1/50th of a
second the Kernel processes all the tick blocks, decrementing the cou
nt entry of each. If the count entry of a block becomes zero the event
contained in the block is 'kicked', and the count is set to the rechar
ge value. Entry conditions HL contains the address of the ti
ck block. DE contains the initial value for the count entry. BC
contains the value of the recharge entry. Exit conditions AF
, BC, DE and HL corrupt. All other registers preserved. Notes
The tick block is 13 bytes long and must lie in the central 32K of
memory. The last 7 bytes of the tick block are an event block which
must be initialized before this routine is called. The exact layout of
a tick block is described in Appendix X. The count and recharge
entries in the block are set. The block is then appended to the tick li
st if it is not already on the list. This routine may be used, the
refore, to change the count and recharge entries of an existing bl
ock. Blocks with a count entry of zero are ignored when the lis
t is processed. Setting a recharge value of zero, therefore, sets up
the block as a 'one shot timer'. Since it takes the Kernel time to ign
ore a tick block, any redundant blocks should be removed from the list
as soon as possible. It is not possible to predict, particular
ly with synchronous events, how long it will be after the 'kick' bef
ore the event routine is actually called. Notwithstanding these dela
ys, the ticker may be used to obtain an exact number of 'kicks' in a
given period since the recharge mechanism immediately resets the cou
nt. The event counting mechanism will ensure that 'kicks' are not mis
sed, provided that there are never more than 127 outstanding at once.
This routine enables interrupts. Related entries KL
ADD FAST TICKER KL DEL TICKER KL INIT EVENT AM PSTR
AD CPC464/664/6128 FIRMWARE page 15.197
164 KL DEL TICKER #BCEC
Remove block from the tick list. Action If a giv
en block is on the tick list it is removed. The contents of the block
are not affected. Entry conditions HL contains the addr
ess of the tick block. Exit conditions If the tick block
was found on the tick list Carry true. DE
contains the count remaining before the next event. If the tick blo
ck was not found on the tick list Carry false.
DE corrupt. Always A, HL and other flags c
orrupt. All other registers preserved. Notes
The contents of the block are not affected by removing it from the
list. In particular the continued processing of outstanding events is
not affected. The block could be put back on the list at a later date
and it could continue counting where it left off. This routine enable
s interrupts. Related entries KL ADD TICKER KL DEL F
AST TICKER AMSTRAD CPC464/664/6128 FIRMWARE
page 15.198 165 KL INIT EVENT
#BCEF Initialize an event block. Action
Initialize all entries in an event block. Entry conditions
HL contains the address of the event block. B contains the even
t class. C contains the ROM select address of the event routine.
DE contains the address of the event routine. Exit conditions
HL contains the address of the event block + 7. All other registers
preserved. Notes The event block is 7 bytes long and must l
ie in the central 32K of RAM. The layout of an event block is descr
ibed in Appendix X. See section 12 for a general discussion of event
s. The ROM select and address of the routine are the 'far address' of
the event routine (see section 2). The event class is bit si
gnificant as follows Bit 0 Near address.
Bits 1..4 Synchronous event priority. Bit 5
Must be zero. Bit 6 Express event.
Bit 7 Asynchronous event. If the asynchr
onous event bit is set then the event is an asynchronous event, otherwis
e it is a synchronous event. Asynchronous events do not have priorities
and so the priority field is ignored. If the express event bit is se
t then the event is an express event. The meaning of this depends on
whether the event is synchronous or asynchronous. All ex
press synchronous events have higher priorities than any normal synchro
nous event. The priority of a synchronous event is encoded in bits 1..
4 of the class, the higher the number the greater the priority.
No event may have priority 0. The processing of normal synchronou
s events may be disabled (by calling KL EVENT DISABLE), while that
if express synchronous events may not. AMSTRAD CPC464/664/6128 FIR
MWARE page 15.199 P-15 $$$ The first byte of the to
ne data block (masked with #7F) specifies the number of sections used i
n theed in bits 1..4 of the class, the higher the number the gr
eater the priority. No event may have priority 0. The processing o
f normal synchronous events may be disabled (by calling KL EVENT D
ISABLE), while that if express synchronous events may not.
AMSTRAD CPC464/664/6128 FIRMWARE page 15.1
An express asynchronous event will have its event routine called
directly from the interrupt path. A normal asynchronous event is
processed just before returning from the interrupt (with interrupts
enabled). If the near address bit is set then the event rou
tine is located either in the lower ROM or in the central 32K of RAM.
The ROM select address is ignored and the routine is called directly
, rather than P through the FAR CALL mechanism, thus reducing the
event processing overhead. Where possible, asynchronous events shoul
d be at 'near addresses'. Express asynchronous events must always
be at 'near addresses'. Event blocks appear in various oth
er blocks handled by the Kernel, including frame flyback, fast ticke
r and tick blocks. This routine is used to initialize the event block p
arts of these. The bytes after the last byte of the event block, even
where the block forms part of another block, are not used by the Kern
el. When the event routine is called the address of the block is passe
d to it, so the user may append further information about the event to
the block. This allows several similar events to share the same even
t routine, each event having its 'own' variables appended to its event
block. The event routine has the following entry and exit conditions
Entry The event routine is at a 'far address'
HL contains the address of byte 5 of the event block (so an
y appended data can start at address HL + 2). If the event routine is
at a 'near address' DE contains the address of byte 6 of the
event block (so any appended data can start at address DE + 1).
Exit AF, BC, DE and HL corrupt. A
ll other registers preserved. The event routine may use the IX and IY
registers but must preserve them. It may not use the second register
set. Express asynchronous events may not enable interrupts.
KL INIT EVENT enables interrupts. Related entries KL DEL SYN
CHRONOUS KL DISARM EVENT KL EVENT KL NEW FAST TICKER
KL NEW FRAME FLY KL NEW TICKER KL SYNC RESET AMST
RAD CPC464/664/6128 FIRMWARE page 15.200
166 KL EVENT #BCF2
'Kick' an event block. Action The event mechanism a
rranges that an event routine be called in response to each 'kick
' of an event block. KL EVENT performs the 'kick'. Entry
conditions HL contains the address of the event block. Exit
conditions AF, BC, DE and HL corrupt. All other registers pre
served. Notes Unlike the vast majority of Kernel routines th
is routine may be called from the interrupt path. Because the LOW JUMP i
nstruction in the main firmware jumpblock enables interrupts the user m
ay pick the address part of the 'low address' out of the jumpblock an
d mask off the top two bits to extract the address in the lower ROM
of KL EVENT. The following code does this LD DE,(KLEVENT+1
) extract address of LOW JUMP RES 7,D remove
upper ROM state from 'low address' RES 6,D remove low
er ROM state from 'low address' CALL PCDEINSTRUCTION CALL KL EVENT
(If the user is going to perform this operation repeatedly it is
recommended that the address should be extracted once and should be
stored somewhere). The effect of the 'kick' depends on the e
vent count in the event block Count 0 The event is
disarmed, and kicking it has no effect. Count 0 There are other
kicks outstanding and the event is being processed.
This kick simply increments the count (unless it
has already reached the maximum of 127). Once event p
rocessing has begun it continues until the count
becomes zero or the event is disarmed.
Count 0 The event is armed but event processing is not
active. The count is incremented and
event processing initiated. AMSTR
AD CPC464/664/6128 FIRMWARE page 15.201
How event processing is initiated depends on the event class. Sy
nchronous Events. Synchronous events are added to the synchronous
event queue in priority order. PIt is the responsibility of th
e foreground program to process the synchronous event queue regularl
y. Synchronous event routine are called when the foreground pr
ogram calls KL DO SYNC, the event count is then dealt with when KL
DONE SYNC is called. Asynchronous Events. a. N
ot in the Interrupt Path The event routine is called immediately
. When the routine returns, if the event count is greater than zero
it is decremented. If the count is still greater than zero then the
procedure is repeated. b. In the Interrupt Path - Normal Asynchrono
us Event The event is placed on the interrupt event pending queu
e. On exit from the interrupt path the Kernel processes all event
s on the interrupt pending queue as described in (a) above. This m
eans the normal asynchronous event routines are called in an exten
sion of normal (non-interrupt) processing between interrupt return
and the main program. The routine is, therefore, not subject t
o the restrictions imposed on interrupt path routines.
c. In the Interrupt Path - Express Asynchronous Event The event
routine is called immediately, in the interrupt path. The routine
must be at a 'near address' (see KL INIT EVENT). Under no circumsta
nces may the routine enable interrupts. KL EVENT enables interrupts
unless it is called from the interrupt path. Related ent
ries KL INIT EVENT KL NEXT SYNC KL POLL SYNCHRONOUS
KL SYNC RESET AMSTRAD CPC464/664/6128 FIRMWARE
page 15.202 167 KL SYNC RESET
#BCF5 Clear synchronous event queue
. Action The synchronous event queue is set empty - any
outstanding events are simply discarded. The current event priorit
y, used by KL POLL SYNCHRONOUS and KL NEXT SYNC to mask out lower
priority events, is reset. Entry conditions No
conditions. Exit conditions AF and HL corrupt.
All other registers preserved. Notes It is the user's
responsibility to ensure that discarded events and any currently acti
ve events are reset. The event count of discarded events will be grea
ter than zero, so any further 'kicks' will simply increment the count,
but not add the event to the synchronous event queue - the events ar
e, therefore, effectively disarmed. Related entries
KL DEL SYNCHRONOUS KL NEXT SYNC KL POLL SYNCHRONOUS
AMSTRAD CPC464/664/6128 FIRMWARE p
age 15.203 168 KL DEL SYNCHRONOUS
#BCF8 Remove a synchronous event from the event queue
. Action The event is disarmed. If it is on the synchron
ous event queue then it is removed. Entry conditions
HL contains the address of the event block. Exit conditions
AF, BC, DE and HL corrupt. All other registers preserved.
Notes Deleting an event from the queue prevents the outstan
ding 'kicks' from being processed. Before a synchronous eve
nt block is reset or reinitialized this routine should be used to
ensure that it is not currently pending. This routine enables interr
upts. Related entries KL DISARM EVENT KL INIT
EVENT KL SYNC RESET AMSTRAD CPC464/664/612
8 FIRMWARE page 15.204 169 KL NEXT
SYNC #BCFB Get next ev
ent from the queue. Action If there is an event on the synch
ronous event queue whose priority is greater than the current event pri
ority (if any), then remove the event from the queue, set the curre
nt event priority to that of the event removed and return the previ
ous event priority. Entry conditions No conditions.
Exit conditions If there is an event to be processed
P Carry true. HL contains the address of the event block.
A contains the previous event priority (if any). If t
here is no event to be processed Carry false.
A and HL corrupt. Always DE corrupt.
All other registers preserved. Notes KL NEXT SYNC ret
urns the address of the next event to be processed, if any, which it has
taken off the synchronous event queue and whose priority has now b
een set as the event priority mask. The foreground program should ca
ll KL POLL SYNCHRONOUS regularly to check for outstanding events. KL
POLL SYNCHRONOUS is a short routine in RAM, so calling it imposes litt
le overhead. If there is an event outstanding then the above procedur
e should be invoked, and should be repeated until the event queue is em
pty. The current event priority mechanism allows event routine to po
ll for, and process, events of higher priority. The priority returned by
this routine must be preserved until it is passed to KL DO SYNC.
KL NEXT SYNC enables interrupts. AMSTRAD CPC464/664/6128
FIRMWARE page 15.205 The procedure
for processing synchronous events is as follows TRY AGAIN
CALL KLNEXTSYNC return next event, if any JR NC,
jump if no event to process PUSH HL sav
e address of event PUSH AF save previous event prio
rity CALL KLDOSYNC call the event routine POP A
F POP HL CALL KLDONESYNC reset the event
priority mask, deal with the event cou
nt and put the event back on the queue if
the count is still greater than zero
JR TRYAGAIN see if any events are still awaiting
processing Related entries
KL DONE SYNC KL DO SYNC KL EVENT KL INIT EVENT
KL POLL SYNCHRONOUS
AMSTRAD CPC464/664/6128 FIRMWARE page 15.206
170 KL DO SYNC #B
CFE Perform an event routine. Action Call th
e event routine for a given event. Entry conditions HL c
ontains the address of the event block. Exit conditions
AF, BC, DE and HL corrupt. All other registers preserved. No
tes This routine is intended to be called to process an event aft
er KL NEXT SYNC has found it to be pending. Use of this entry at any
other time is not recommended. See KL NEXT SYNC above f
or the general scheme for processing synchronous events.
KL DO SYNC does not itself affect the event count. Related entri
es KL DONE SYNC KL NEXT SYNC
AMSTRAD CPC464/664/6128 FIRMWARE page 15.207
171 KL DONE SYNC #B
D01 Finish processing an event. Action Once a sync
hronous event has been processed, by invoking its event routine via
KL DO SYNC, this entry must be called to restore the current event
priority and to deal with the event count. If the count remains greate
r than zero the event block is placed back on the synchronous eve
nt queue. Entry conditions A contains the previous event pri
ority. HL contains the address of the event block. Exit condit
ions AF, BC, DE and HL corrupt. All other registers preserved.
Notes This routine is intended to be called after calling
KL NEXT SYNC, to find a pending event, and KL DO SYNC, to run the e
vent routine. It uses the previous event priority and the event block
address returned by KL NEXT SYNC. Other uses of this entry are not reco
mmended. See KL NEXT SYNC above for the general scheme for
process Ping synchronous events. Restoring the current
event priority is an essential step in maintaining the synchronou
s event priority scheme. If the event count is greater than zero the
n it is decremented. If the count is still greater than zero then t
here are further events outstanding and the event is placed back on
the synchronous event queue. The event may be disarmed between KL N
EXT SYNC and KL DONE SYNC. Setting the event count to one before
calling KL DONE SYNC forces multiple events to be treated as a single
event. KL DONE SYNC may enable interrupts. Related entr
ies KL DO SYNC KL NEXT SYNC AMSTRAD CPC464/6
64/6128 FIRMWARE page 15.208 172 K
L EVENT DISABLE #BD04 Dis
able normal synchronous events. Action Prevent normal sy
nchronous events from being processed but allow express synchronou
s events to be processed. This is achieved by setting the current
event priority higher than any possible normal synchronous event pr
iority. Entry conditions No conditions. Exit
conditions HL corrupt. All other registers preserved.
Notes KL EVENT DISABLE does not prevent events from being kic
ked. The effect is to 'mask off' all pending normal synchronous events
so that they are hidden from the foreground program (when KL POLL SYNC
HRONOUS or KL NEXT SYNC are called) and hence are not processed.
KL EVENT ENABLE reverses the effect of KL EVENT DISABLE. It is
not possible to disable synchronous events permanently from inside
a synchronous event routine as the previous current event priority
is restored when the event routine returns. Related entries
KL DISARM EVENT KL EVENT ENABLE KL NEXT SYNC KL P
OLL SYNCHRONOUS AMSTRAD CPC464/664/6128 FIRMWARE
page 15.209 Fill an area of the screen.
173 KL EVENT ENABLE #BD07
Enables normal synchronous events. Action Allow
normal and express synchronous events to be processed. Entry conditi
ons No conditions. Exit conditions HL corrup
t. All other registers preserved. Notes Events a
re enabled by default. KL EVENT ENABLE reverses the effect of KL EVENT
DISABLE. It is not possible to disable synchronous events perman
ently from inside a synchronous event routine as the current event prio
rity which is used to disable events is restored when the event routine
returns. Related entries KL EVENT DISABLE KL N
EXT SYNC KL POLL SYNCHRONOUS AMSTR
AD CPC464/664/6128 FIRMWARE page 15.210
174 KL DISARM EVENT #BD0A
Prevent an event from occurring. Action Disarms
the event by setting the event count to a negative value. Any further '
kicks' (calls of KL EVENT) for the event will be ignored, any outstandin
g events are discarded. Entry conditions HL contains the
address of the event block. Exit conditions AF corrupt.
All other registers preserved. Notes KL P DIS
ARM EVENT should only be used with asynchronous events. Synchron
ous events may be disarmed by calling KL DEL SYNCHRONOUS, which als
o ensures that the event is not on the synchronous event queue.
The event may be rearmed by reinitializing it (KL INIT EVENT) or by
setting the event count (byte 2 of the event block) to zero.
Related entries KL DEL SYNCHRONOUS KL INIT EVENT
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.211 175 KL TIME PLEASE
#BD0D Ask the elapsed time. Action
The Kernel maintains a count which it increments on each ti
me interrupt. The count, therefore, measures time in 1/300th of a secon
d units. This routine returns the current count. Entry condi
tions No conditions. Exit conditions DEHL co
ntains the four byte count (D contains the most significant byte and
L the least significant byte). All other registers preserved.
Notes The count is zeroized when the machine is turned on
or reset. The count may be set to another starting value by KL TIME SE
T. The count is not kept up to date if interrupts are disabled for
long periods, such as while reading and writing the cassette.
The four byte count overflows after approximately 14,
316,558 Seconds 238,609 Minutes 3,
977 Hours 166 Days This routine enables inte
rrupts. Related entries KL TIME SET AMSTRA
D CPC464/664/6128 FIRMWARE page 15.212
176 KL TIME SET #BD10
Set the elapsed time. Action The Kernel maintains a
count which it increments on each time interrupt. The count, the
refore, measures time in 1/300th of a second units. This routine sets t
he count to a given value. Entry conditions DEHL contain
s the four byte count (D contains the most significant byte and L th
e least significant byte). Exit conditions AF corrupt.
All other registers preserved. Notes The four byt
e count overflows after approximately 14,316,558 Seconds
238,609 Minutes 3,977 Hours
166 Days KL TIME SET may be used to set the cou
nt to the actual time of day, so that the Kernel then maintains a real
clock rather than a simple measure of the time elapsed since the la
st reset. The count is not kept up to date if interrupts are disable
d for long periods, such as while reading and writing the cassette.
This routine enables interrupts. Related entries
KL TIME PLEASE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.213 177 MC BOOT PROGRAM
#BD13 Load and run a program.
Action Shut down as much of the system as possible then load a progr
am into RAM and run it. If the load fails then the previous foreground
program is restarted. Entry conditions HL contains t
he address of the routine to call to load the program. Exit conditions
Does not exit! Notes The system is partially re
set before attempting to load the program. External interrupts are dis
abled, as are all timer, frame flyback and keyboard break events. Sound
generation is turned off, indirections are set to their default rout
ines and the stack is reset to the default system stack. This pro
cess ensures that no memory outside the firmware variables area is
in use when loading the program. Overwriting an active event
block or indirection routine could otherwise have unfortunate conseq
uences. The partial system reset does not change the ROM state
or ROM selection. The routine run to load the program must be in acc
essible R PAM or an enabled ROM. Note that the firmware jumpblock
normally enables the lower ROM and disables the upper ROM and so the
routine must normally be in RAM above #4000 or in the lower ROM.
The routine run to load the program is free to use any store from
#0040 up to the base of the firmware variables area (#B100) and may
alter indirections and arm external device interrupts as required. It
should obey the following exit conditions If the program loa
ded successfully Carry true.
HL contains the program entry point. If the program fail
ed to load Carry false.
HL corrupt. Always A, BC, DE,IX,
IY and other flags corrupt. AMSTRAD CPC464/664/6128 FIRMWARE
page 15.214 After a successful load
the firmware is completely initialized (as at EMS) and the program is
entered at the entry address returned by the load routine. Returning
from the program will reset the system (perform RST 0).
After an unsuccessful load an appropriate error message is printed and
the previous foreground program is restarted. If the previous
foreground program was itself a RAM program then the default ROM is
entered instead as the program may have been corrupted during the f
ailed loading. Related entries CAS IN DIRECT K
L CHOKE OFF MC START PROGRAM
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.215 178 MC START PROGRAM
#BD16 Run a foreground p
rogram. Action Fully initialize the system and enter a p
rogram. Entry conditions HL contains the entry point add
ress. C contains the required ROM selection. Exit conditions
Never exits! Notes HL and C comprise the 'f
ar address' of the entry point of the foreground program (see sec
tion 2). When entering a foreground program in ROM the ROM selection
should be that required to select the appropriate ROM. When en
tering a foreground program in RAM the ROM selection should be used t
o enable or disable ROMs as the RAM program requires (ROM select addres
ses #FC. .#FF). This routine carries out a full EMS initial
ization of the firmware before entering the program. Returning from t
he program will reset the system (perform RST 0). MC START P
ROGRAM is intended for running programs in ROM or programs that have a
lready been loaded into RAM. To load and run a RAM program use MC BOOT
PROGRAM. Related entries MC BOOT PROGRAM RESET ENTRY
(RST 0) AMSTRAD CPC464/664/6128 FIRMWARE
page 15.216 179 MC WAIT FLYBACK
#BD19 Wait for frame flyback. Acti
on Wait until frame flyback occurs. Entry conditions
No conditions. Exit conditions All registers an
d flags preserved. Notes Frame flyback is a signal gener
ated by the CRT controller to signal the start of the vertical retra
ce period. During this period the screen is not being written and s
o major operations can be performed on the screen without producing un
sightly effects. A prime example is rolling the screen. The
frame flyback signal only lasts for a couple of hundred micr
oseconds but the vertical retrace period is much longer than this. Howev
er, there will be a ticker interrupt in the middle of frame flybac
k which may cause the foreground processing to be suspended for a signi
ficant length of time. It is important, therefore, to perform any crit
ical processing as soon after the frame flyback is detected as is possib
le. This routine returns immediately if frame flyback is occurring w
hen it is called. It does not wait for the s Ptart of frame flyback
(use a frame flyback event to do this). Related entries
KL ADD FRAME FLY AMSTRAD CPC464/664/6128 FIRMWAR
E page 15.217 180 MC SET MODE
#BD1C Set the screen mod
e. Action Load the hardware with the required screen mod
e. Entry conditions A contains the required mode.
Exit conditions AF corrupt. All other registers preser
ved. Notes The required mode is checked and no action
is taken if it is invalid. If it is valid then the new value is sent to
the hardware. The screen modes are 0 16
0 x 200 pixels, 20 x 25 characters. 1 320 x 200 pixels
, 40 x 25 characters. 2 640 x 200 pixels, 80 x 25 ch
aracters. Altering the screen mode without notifying the Screen
Pack will produce peculiar effects on the screen. In general SCR SET
MODE should be called to change screen mode. This, in turn, sets the new
mode into the hardware. Related entries SCR
SET MODE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.218 181 MC SCREEN OFFSET
#BD1F Set the screen offset. Ac
tion Load the hardware with the offset of the first byte on the
screen inside a 2K screen block and which 16K block the screen memo
ry is located in. Entry conditions A contains t
he new screen base. HL contains the new screen offset. Exit
conditions AF corrupt. All other registers preserved.
Notes The screen base address is masked with #C0 to make sure
it refers to a valid 16K memory area. The default screen base is #C0 (th
e screen is underneath the upper ROM). The screen offset i
s masked with #07FE to make it legal. Note that bit 0 is ignored as the
hardware only uses even offsets. If the screen base or offset is cha
nged without notifying the Screen Pack then unexpected effects may occ
ur on the screen. In general SCR SET BASE or SCR SET OFFSET should be
called. These, in their turn, send the values to the hardware.
Related entries SCR SET BASE SCR SET OFFSET
AMSTRAD CPC464/664/6128 FIRMWARE page 1
5.219 182 MC CLEAR INKS
#BD22 Set all inks to one colour Action
Set the colour of the border and set the colour of all the inks. All
inks are set to the same colour thus giving the impression that the
screen has been cleared instantly. Entry conditions
DE contains the address of an ink vector. Exit conditions
AF corrupt. All other registers preserved. Notes
The ink vector has the form Byte 0 Colour of the borde
r. Byte 1 Colour for all inks. The colours suppli
ed are the numbers used by the hardware rather than the grey scale numb
ers supplied to SCR SET INK (see Appendix V). After the screen has
been cleared (or whatever) the correct ink colours can be set by c
alling MC SET INKS. This routine sets the colours for all 16 inks
whether they can be displayed on the screen in the current mode or no
t. This ink clearing technique is used by the Screen Pack when cle
aring the screen or changing mode (by SCR CLEAR and SCR SET MODE).
Related entries MC SET INKS AMSTRAD CPC464/664/61
28 FIRMWARE page 15.220 183 MC SET
INKS #BD25 Set colo
urs of all the inks. Action Set the colours of all the i
nks and the border. Entry conditions DE contains the add
ress of an ink vector. Exit conditions AF corrupt.
All other registers preserved. Notes The ink Pvecto
r passed has the following layout Byte 0 Colour of the bo
rder. Byte 1 Colour for ink 0. Byte 2 Colo
ur for ink 1. .. .. Byte 16 Col
our for ink 15. The colours supplied are the numbers used by the har
dware rather than the grey scale numbers supplied to SCR SET INK (see A
ppendix V). This routine sets the colours for all inks including tho
se that cannot be visible in the current screen mode. However, it is on
ly necessary to supply sensible colours for the visible inks.
The Screen Pack sets the colours for all the inks each time the inks
flash and after an ink colour has been changed (by calling SCR SET INK o
r SCR SET BORDER). Related entries MC CLEAR INKS SCR
SET BORDER SCR SET INK AMSTRAD CPC464/664/6128 FIRMWARE
page 15.221 184 MC RESET PRINTER
#BD28 Reset the printer indirecti
on. Action Set the printer indirection, MC WAIT PRINTER,
to its default routine and, in V1.1 firmware, set up the default prin
ter translation table. Entry conditions No conditions.
Exit conditions AF, BC, DE and HL corrupt. All ot
her registers preserved. Notes The default printer trans
lation table is described in Appendix XIV. This is designed to dr
ive the DMP-1 printer. It only translates the additional characters i
n the character set (#0A..#AF) it does not translate any of the s
tandard ASCII characters or the graphics characters.
Related entries MC WAIT PRINTER MC PRINT CHAR
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.222 l synchronous 185 MC PRINT CHAR
#BD2B Try to send a character to the C
entronics port. Action Send a character to the printer (Cent
ronics port) or time out if the printer is busy for too long.
Entry conditions A contains the character to send (bit 7 is ignored)
. Exit conditions If the character was sent OK
Carry true. If the printer timed out Carry
false. Always A and other flags corrupt.
All other registers preserved. Notes In V1.1 firmwa
re, the character to be sent is translated using the printer transla
tion table as set by MC PRINT TRANSLATION. If the supplied charact
er is not found in the table then it is sent as supplied without
translation. However, if the character is found in the translation ta
ble then the corresponding translation is sent instead unless the
translation is FF in which case the character is ignored and nothing i
s sent. This routine calls the Machine Pack indirection MC WAIT P
RINTER to sent the character. The default indirection routine waits
for the Centronics port to become non-busy then sends the character.
If the port remains busy for too long (approximately 0.4 seconds) th
en the routine times out and the character is not sent. This time o
ut is provided so that the caller can test for break whilst driving
the printer. Related entries MC PRINT TRANSL
ATION MC RESET PRINTER MC WAIT PRINTER AMSTRAD CPC
464/664/6128 FIRMWARE page 15.223
186 MC BUSY PRINTER #BD2E
Test if the Centronics port is busy. Action Test if th
e printer (Centronics port) is busy. Entry conditions No
conditions. Exit conditions If Centronics port is busy
Carry true. If Centronics port is idle
Carry false. Always Other flags co
rrupt. All other registers preserved. Notes
This routine has no other effects. Related entries
MC SEND PPRINTER AMSTRAD CPC464/664/6128 FIRMWARE
page 15.224 187 MC SEND PRINTER
#BD31 Send a character to th
e Centronics port. Action Send a character to the printe
r (Centronics port) which must not be busy. Entry conditi
ons A contains the character to send (bit 7 is ignored).
Exit conditions Carry true. A and other flags corrupt.
All other registers preserved. Notes The pri
nter must not be busy when a character is sent. The higher level ro
utine MC PRINT CHAR will automatically wait for the printer to become no
n-busy and should be used in preference. Related entries
MC BUSY PRINTER MC PRINT CHAR AMS
TRAD CPC464/664/6128 FIRMWARE page 15.225
188 MC SOUND REGISTER #BD34
Send data to a sound chip register. Action Set
sound chip register. This is a rather convoluted action because of the
way the hardware has been designed. Entry conditions A c
ontains the sound chip register number. C contains the data to send.
Exit conditions AF and BC corrupt. All other regist
ers preserved. Notes This routine enables interrupts.
Related entries None!
AMSTRAD CPC464/664/6128 FIRMWARE page
15.226 189 JUMP RESTORE
#BD37 Restore the standard jumpblock. Action
Set the main firmware jumpblock to its standard state as described
in sections 14.1 and 15. Entry conditions No con
ditions. Exit conditions AF, BC, DE and HL corrupt.
All other registers preserved. Notes This routine ma
y be used to restore the jumpblock to its standard routines after t
he user has changed entries in it. The whole of the jumpblock is set
up so care must be taken if other programs, such as AMSDOS, have patch
ed it. The indirections jumpblock is set up piecemeal by the variou
s packs' initialization and reset routines. JUMP RESTORE does not set
up the indirections. Related entries GRA RES
ET KM RESET MC RESET PRINTER SCR RESET TXT RESET
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.227 190 KM SET LOCKS
#BD3A Set the shift and caps lock states.
Action Turn the shift and caps locks on or off.
Entry conditions H contains the required caps lock state.
L contains the required shift lock state. Exit conditions
AF corrupt. All other registers preserved. Notes
This routine is not available on V1.0 firmware. The lock states a
re #00 means that the lock is to be turned off.
#FF means that the lock is to be turned on. The default lock s
tates are off. Related entries KM GET STATE
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.228 191 KM FLUSH
#BD3D Flush the keyboard buffers. Actio
n Discard all pending keys from the key buffer, the 'put back' chara
cter and any current expansion string. Entry conditions
No conditions. Exit conditions AF corrupt.
All other registers preserved. Notes This routine is
not available on V1.0 firmware. The next character that will be retu
rned by KM READ CHAR (or a similar routine) after KM FLUSH is called wil
l be the first character that the user types after the call of KM FLUSH
since all the pending characters will have been discarded. O
n V1.0 firmware the effect of P this routine can be simulated by
repeatedly calling KM READ CHAR until it comes back with carry false.
Related entries KM READ CHAR KM READ KEY
AMSTRAD CPC464/664/6128 FIRMWARE page
15.229 192 TXT ASK STATE
#BD40 Get the state of the Text VDU. Action
Returns the VDU enable/disable state and the cursor on/off and curso
r enable/disable states of the current selected stream. Entr
y conditions No conditions. Exit conditions
A contains the stream state. Flags corrupt. All other regist
ers preserved. Notes This routine is not available on V1
.0 firmware. The stream state is returned as follows
Bit 0 0 -- cursor enabled, 1 -- cursor disabled. Bi
t 1 0 -- cursor on, 1 -- cursor off. Bits 2..6
are undefined. Bit 7 0 -- VDU disabled, 1 --
VDU enabled. Related entries TXT CUR DISABLE T
XT CUR ENABLE TXT CUR OFF TXT CUR ON TXT VDU DISABLE
TXT VDU ENABLE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.230 193 GRA DEFAULT
#BD34 Set the default Graphics VDU
modes. Action Sets the graphics write mode, background m
ode, first pixel mode and line mask to their default settings.
Entry conditions No conditions. Exit conditions
AF, BC, DE and HL corrupt. All other registers preserved.
Notes This routine is not available on V1.0 firmware.
This routine sets the following modes Graphics write mode is
set to force. Graphics background mode is set to opaque. First p
oint mode is set to plot the first pixel of lines. Line mask is set to g
ive continuous lines (mask of #FF). Related entries GR
A INITIALISE GRA RESET GRA SET BACK GRA SET FIRST
GRA SET LINE MASK SCR ACCESS AMSTRAD CPC464/66
4/6128 FIRMWARE page 15.231 194 GR
A SET BACK #BD46 Set wh
ether background is to be written. Action Set the graphics b
ackground write mode to opaque or transparent. This affects how GRA LIN
E ABSOLUTE, GRA LINE RELATIVE and GRA WR CHAR write 'background' pixels.
In opaque mode the pixels are written in the current paper ink
using the current graphics write mode. In transparent mode these
pixels are not plotted at all. Entry conditions If backgrou
nd is to be written (opaque mode) A must be zero. I
f background is not to be written (transparent mode) A must b
e non-zero. Exit conditions All registers and flags preserve
d. Notes This routine is not available on V1.0 firmwar
e. Transparent write mode is useful for annotating diagrams and
for similar applications. The graphics background write mo
de is similar to but independent of the character write mode of each
stream of the Text VDU. The default setting is opaque mode.
Related entries GRA DEFAULT GRA LINE GRA LINE
ABSOLUTE GRA LINE RELATIVE GRA SET LINE MASK GRA WR CHAR
TXT SET BACK AMSTRAD CPC464/664/6128 FIRMWARE
page 15.232 195 GRA SET FIRST
#BD49 Set whether the first point of
a line is to be plotted. Action Turn plotting of the fir
st pixel of lines on or off. Entry conditions If the fir
st pixel is not to be plotted A contains zero.
If the first pixel is to be plotted A contains non-zero.
Exit conditions All registers and flags preserved.
Notes This routine is not ava Pilable on V1.0 firmware.
Turning off the plotting of the first pixel of a line is particularly
useful when drawing using XOR graphics write mode. For example, if a
box is drawn in XOR mode when the first pixel of lines are being
plotted then the corner pixels will e plotted twice and will therefore
not be set. By not plotting the first pixel of lines this effect is
avoided. The default setting for this mode is to plot the first pix
el. Related entries GRA DEFAULT GRA LINE G
RA LINE ABSOLUTE GRA LINE RELATIVE AMSTRAD CPC464/664/6128
FIRMWARE page 15.233 196 GRA SET
LINE MASK #BD4C Set the line
mask for plotting pixels of lines. Action Set the line mask
that specifies how pixels on lines are to be plotted. Where a b
it in the mask is set the pixel will be plotted in the foreground (in
graphics pen ink using the graphics write mode). Where a pixel in the
mask is not set the pixel will either be plotted in the graphics paper
ink using the graphics write mode or will not be plotted at all dependi
ng on the graphics background write mode. Entry conditions A
contains the line mask to use. Exit conditions All register
s and flags preserved. Notes This routine is not available o
n V1.0 firmware. The line mask is used starting with bit 7 and running
to bit 0 and then starting with bit 7 again. Successive lines will
use the mask as it was left when the previous line finished, the mask
is not reset between lines. The line mask specifies how pix
els are to be plotted. This means that the same mask will give noticeab
ly different effects in the various screen modes. The mask
is applied to the line running from left to right or from bottom to
top, depending on the angle of the line, irrespective of which way r
ound the end points of the line are specified. If the first pixel of
the line is not being plotted then the line mask is applied to the seco
nd pixel of the line first. It is not stepped on for the missing first p
ixel. The default line mask is #FF which plot the whole line
in the foreground. Related entries GRA DEFAULT
GRA LINE GRA LINE ABSOLUTE GRA LINE RELATIVE GRA
SET BACK AMSTRAD CPC464/664/6128 FIRMWARE
page 15.234 197 GRA FROM USER
#BD4F Convert user coordinates to base coordinates
. Action Convert the coordinates of a point from user co
ordinates to base coordinates rounding as appropriate. Entry
conditions DE contains the user X coordinate. HL contains the
user Y coordinate. Exit conditions DE contains the base X c
oordinate. HL contains the base Y coordinate. AF corrupt.
All other registers preserved. Notes This routine is n
ot available on V1.0 firmware. The following formulae are used to
convert between the coordinate systems Base X
(Origin X + Rounded X) / Points per pixel Rounded X (User X
+ Round factor) AND Round mask Where Round fa
ctor Round mask Points per pixel +ve user X -ve
user X Mode 0 0 0 #FFFF 1
Mode 1 0 1 #FFFE 2 Mode 2
0 3 #FFFC 4 Base Y
(Origin Y + Rounded Y) / Points per pixel Rounded Y (User
Y + Round factor) AND Round mask Where Round factor
0 for +ve user Y 1 for -ve use
r Y Round mask #FFFE
Points per pixel 2 AMSTRAD CPC464/664/6128 FIRMWARE
page 15.235 This routine is particu
larly useful when calling Screen pack routines which take the Ppositi
ons of points in base coordinates. Related entries G
RA SET ORIGIN SCR DOT POSITION
AMSTRAD CPC464/66
4/6128 FIRMWARE page 15.236 AMSTRAD CPC464/664/612
8 FIRMWARE page 15.238 onous 198 GR
A FILL #BD52 Fill a
n area of the screen. Action Fill an area of the screen cont
aining the current graphics position and bounded by the edge of the w
indow and pixels set to the pen ink. Entry conditions A cont
ains the (unencoded) ink to fill the area with. HL contains the address
of a buffer. DE contains the length of the buffer. Exit condit
ions If the area was filled successfully Carry true
. If the area was not filled Carry false.
Always A, BC, DE, HL and other flags corrupt.
All other registers preserved. Notes This routine is not
available on V1.0 firmware. The filling algorithm treats pixels set to
the current pen ink and pixels set to the ink that is being used fo
r filling as delimiters of the edge of the area. The fill ink and the p
en ink may be the same ink. Pixels that are filled are set
to the fill ink. The graphics write mode does not affect the way pi
xels are written when filling. The filling algorithm only moves up, do
wn, right or left. It does not move diagonally and so the algorithm wil
l not 'escape' through a gap between the edge pixels that are diagonal
ly adjacent. This means that the edge can be delimited using the normal
lines drawn by the Graphics VDU. The filling algorithm avoids
recursing. Instead it stores 'interesting points', places that the algo
rithm has chosen one route to fill but might have chosen another rout
e, in the buffer supplied by the user. The buffer may lie anywhere in
RAM. Each 'interesting point' stored uses 7 bytes of the buffer and t
here is an overhead of 1 byte used to mark the end of the buffer. Thus
a buffer 64 bytes long will allow 9 'interesting points' to be stored
which should be sufficient for filling most simple areas.
AMSTRAD CPC464/664/6128 FIRMWARE page 15.237
The area to be filled may be as complicated as required but th
e more complicated the shape the longer the 'interesting point' buffer
needs to be. The failure return from this routine can occ
ur for three reasons. Firstly, the current graphics position may be
outside the window. Secondly, the pixel at the current graphics posi
tion may be edge (pen or fill ink). In these cases the routine will ret
urn without filling anything. Thirdly the algorithm may exhaust the '
interesting point' buffer in which case some portion of the area will n
ot be filled. Related entries GRA SET PEN
AM
STRAD CPC464/664/6128 FIRMWARE page 15.238
199 SCR SET POSITION #BD55
Set the location of the screen memory. Action
Tell the Screen pack the screen base and the offset without telling
the hardware. Entry conditions A contains the screen bas
e. HL contains the screen offset. Exit conditions
A contains the screen ba Pse masked as required. HL contains the scre
en offset masked as required. Flags corrupt. All other regis
ters preserved. Notes This routine is not available on V
1.0 firmware. This routine changes the location of the screen withou
t notifying the hardware of the change. This effect may be used to cons
truct a second screen of text or graphics without clearing the previous
screen. When the new screen has been constructed the hardware may be
notified and the picture will appear instantly. In general th
e user is advised to set the base using SCR SET BASE and the offset usi
ng SCR SET OFFSET. The screen base is masked with #C0 and the screen o
ffset with #07FE to make the values legal. Related entries
SCR GET LOCATION SCR SET BASE SCR SET OFFSET
AMSTRAD CPC464/664/6128 FIRMWARE page 15.239
200 MC PRINT TRANSLATION
#BD58 Set the printer translation table. Action S
et how characters are to be translated before being sent to the pr
inter. Entry conditions HL contains the address of the table
. Exit conditions If the table is too long (more than 20
entries) Carry false. If the table is OK
Carry true. Always A, BC, DE, HL and othe
r flags corrupt. All other registers preserved. Notes
This routine is not available on V1.0 firmware. The supplie
d translation table may lie anywhere in RAM. This routine copies the t
able and so the memory may be re-used if required. The format of the t
able is as follows Byte 0 Number of entries in th
e table (N). Bytes 1,2 Entry 1 ...
... Bytes 2N-1,2N Entry N The form
at of each two byte entry is as follows Byte 0 Ch
aracter to be translated. Byte 1 Character to trans
late to. If the character to translate to is #FF then the character is
ignored and nothing is sent to the printer. Translation of cha
racters by the printer driver occurs in MC PRINT CHAR.
AMSTRAD CPC464/664/6128 FIRMWARE page 15.240
The default translation table is set up when MC RESET PRI
NTER is called. The default table is designed to drive the DMP-1 printe
r (see Appendix XIV). Related entries MC PRINT CHAR
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.241 201 KL BANK SWITCH
#BD5B Select a memory organization.
Action Set which RAM banks are switched into the 64K of RAM
in the memory map. Entry conditions A contai
ns new organization. Exit conditions A contains old orga
nization. Flags corrupt. All other registers preserved.
Notes This routine is only available on the CPC6128 (i.e.
V1.2 firmware). The memory organizations and bank switching are discu
ssed fully in section 2.5. It is inadvisable to bank switc
h to a memory organization where the code that is being executed, or
stack are inaccessible! Related entries KL L ROM DISAB
LE KL L ROM ENABLE KL ROM SELECT KL U ROM DISABLE
KL U ROM ENABLE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.242 185 MC PRINT CHAR
#BD2B Try to send a character to t It
is inadvisable to bank switch to a memory organization where the cod
e that is being executed, or stack are inaccessible! Related entri
es KL L ROM DISABLE KL L ROM ENABLE KL ROM SELECT
KL U ROM DISABLE KL U ROM ENABLE AMSTRAD
CPC464/664/6128 FIRMWARE P 16 The Firmw
are Indirections. This section gives the detailed entry and exit condi
tions and effects of the routines in the indirections jumpblock. See se
ction 14.2 for a list a these routines. The firmware indirect
ions are taken by the firmware at key points. They allow the user to
intercept and alter a number of firmware actions without having
to provide a complete new firmware package. The descriptions given
are for the default settings of the indirections. Replacement
routines need not perform all the actions that the default routine p
erforms although they are advised to do so.
AMSTRAD CPC464/664/612
8 FIRMWARE page 16.1 IND TXT DRA
W CURSOR #BDCD Place the
cursor blob on the screen (if enabled). Default action
If the cursor is enabled and turned on then the cursor blob is drawn o
n the screen. If not then no action is taken. The current text po
sition is forced into the window (see TXT VALIDATE) and the cursor blo
b is written at the resulting position. The cursor blob is an inve
rse patch. This routine will only be called twice if TXT UNDRAW CURSO
R is called in between. Entry conditions No conditions.
Exit conditions AF corrupt. All other registers
preserved. Notes This indirection is provided to allow t
he user to change the form of the cursor blob. See TXT PLACE CURSOR fo
r a description of how the cursor blob is normally written.
The Text VDU routines call this indirection whenever the cursor is
placed on the screen. All the Text VDU routines that read from the
screen, write to the screen or change the current position remove the
cursor (using TXT UNDRAW CURSOR) before performing their action and
place it back on the screen afterwards (using TXT DRAW CURSOR). An e
xample of such a routine is TXT WR CHAR that writes a character on th
e screen. This indirection is set up when TXT INITIALISE or TXT RESE
T is called. Related entries TXT PLACE CURSOR TX
T UNDRAW CURSOR AMSTRAD CPC464/664/6128 FIRMWARE
page 16.2 IND TXT UNDRAW CURSOR
#BDD0 Remove the cursor blob on the scree
n (if enabled). Default action If the cursor is enabled
and turned on then the cursor blob is removed from the screen. If not th
en no action is taken. The The cursor blob is an inverse patch. This r
outine will only be called after TXT DRAW CURSOR has been used to plac
e the cursor on the screen. Entry conditions No conditio
ns. Exit conditions AF corrupt. All other regist
ers preserved. Notes This indirection is provided to all
ow the user to change the form of the cursor blob. See TXT REMOVE CURS
OR for a description of how the cursor blob is normally removed.
The Text VDU routines call this indirection to remove the cursor from
the screen. All the Text VDU routines that read from the screen, write
to the screen or change the current position remove the cursor (using
TXT UNDRAW CURSOR) before performing their action and place it back on
the screen afterwards (using TXT DRAW CURSOR). An example of such a
routine is TXT WR CHAR that writes a character on the screen. Thi
s indirection is set up when TXT INITIALISE or TXT RESET is called.
Related entries TXT DRAW CURSOR TXT REMOVE CURSOR
AMSTRAD CPC464/664/6128 FIRMWARE page 16
.3 IND TXT WRITE CHAR
#BDD3 Write a character onto the screen. Default
action Put a character on the screen at a character position.
Entry conditions A contains the character to write. H
contains the physical column to write at. L contains the physical row to
write P at. Exit conditions AF, BC, DE and HL corrupt.
All other registers preserved. Notes The charac
ter position to write at is given in physical coordinates. i.e. Row 0,
column 0 is the top left corner of the screen. The position is
not checked for legality. TXT WRITE CHAR is called by TXT WR CHAR to
print a character on the screen. The removing of the cursor blob and
the calculation of the new current position are performed by TXT WR CHA
R and not by TXT WRITE CHAR. This indirection is set up
when TXT INITIALISE or TXT RESET is called. Related entries
TXT OUTPUT TXT UNWRITE TXT WR CHAR
AMSTRAD CPC464/664/6128 FIRMWARE page 16.4
IND TXT UNWRITE #BDD
6 Read a character from the screen. Default action
Try to read a character from the screen at a character position. Entr
y conditions H contains the physical column to read from. L co
ntains the physical row to read from. Exit conditions If a r
eadable character was found Carry true. A co
ntains the character read. If no recognisable character was found
Carry false. A contains zero. Always
BC, DE, HL and other flags corrupt. All other
registers preserved. Notes The character position to read f
rom is given in physical coordinates. i.e. Row 0, column 0 is the top
left corner of the screen. The position is not checked for legali
ty. This indirection is called by TXT RD CHAR to read a character form
the screen. TXT RD CHAR removes the cursor from the screen before call
ing this indirection. The read is performed by comparing the
matrix found on the screen with the matrices used to generate characte
rs. As a result changing a character matrix, changing the pen or
paper inks or changing the screen (e.g. drawing a line through
a character) may make the character unreadable. In particular th
e cursor blob will cause confusion and so should not be on the scree
n. Special precautions are taken against generating inverse
space (character #8F). Initially the character is read assuming
the background to the character was written in the current paper ink.
If this fails to generate a recognisable character or it generat
es inverse space then another try is made by assuming that the characte
r was written in the current pen ink. AMSTRAD CPC464/664
/6128 FIRMWARE page 16.5 The cha
racters are scanned starting with #00 and finishing with #FF. Thus, if
there are two possible character matrices that match the screen, t
he smaller of the two character numbers will be returned. This indir
ection is set up when TXT INITIALISE or TXT RESET is called. Relat
ed entries TXT RD CHAR TXT WRITE CHAR
AMST
RAD CPC464/664/6128 FIRMWARE page 16.6
IND TXT OUT ACTION #BDD9
Output a character or control code. Default action Pr
int a character on the screen or obey a control code (character #00. .#1
F). Works on the currently selected stream (except as noted below). En
try conditions A contains the character or code. Exit condit
ions AF, BC, DE and HL corrupt. All other registers preserved.
Notes This indirection is called by TXT OUTPUT to do the w
ork of printing characters or obeying the control codes. It is provide
d to allow the user to change the method of dealing with characters an
d control codes or to allow the user to redirect output (to the printer
for example). TXT OUTPUT merely preserves the registers around the call
of TXT OUT ACTION. Control codes may take up to 9 parameter
s. These are the characters s Pent following the initial control c
ode. The characters sent are stored in a buffer until sufficient hav
e been received to make up all the required parameters. The control cod
e buffer is only long enough to accept 9 parameter characters.
There is only one control code buffer which is shared between all the
streams. It is, therefore possible to get unpredictable results if the
output stream is changed part of the way through sending a control
code sequence. If the VDU is disabled then no characters will be p
rinted on the screen. In V1.1 firmware control codes that are special
ly marked in the control code table will not be obeyed if the VDU
is disabled. Other control codes and all control codes in V1.0 firmwa
re will be obeyed. If the graphics character write mode is e
nabled then all characters and control codes are printed using the Gr
aphics VDU (see GRA WR CHAR) and are not obeyed. Normally characters are
written by the Text VDU (see TXT WR CHAR). This indirectio
n is set up when TXT INITIALISE or TXT RESET is called. Related entrie
s TXT OUTPUT TXT WR CHAR AMSTRAD CPC464/664/61
28 FIRMWARE page 16.7 IND GRA PL
OT #BDDC Plot a poi
nt. Default action Check if the point lies inside the curren
t window and if so write it in the current graphics pen ink and using
the current graphics write mode. The current graphics position i alway
s moved to the specified point. Entry conditions
DE contains the user X coordinate of the point to plot. HL contains
the user Y coordinate of the point to plot. Exit conditions
AF, BC, DE and HL corrupt. All other registers preserved.
Notes The position of the point to plot is given in user coordina
tes, i.e. relative to the user origin. This indirection is
called by GRA PLOT RELATIVE and GRA PLOT ABSOLUTE to plot the point req
uested. It is provided to allow the user to change the method for
plotting (to output to an X-Y plotter for example). GRA PLOT RELA
TIVE converts from relative to user coordinates and then calls this
indirection GRA PLOT ABSOLUTE calls this indirection immediately.
To write the point on the screen the SCR WRITE indirection is used
. Thus the point is plotted using the current graphics write mode.
This indirection is set up when GRA INITIALISE or GRA RESET is called.
Related entries GRA PLOT ABSOLUTE GRA PLOT RELATIV
E GRA TEST SCR WRITE AMSTRAD CPC464/664/6128 FIR
MWARE page 16.8 IND GRA TEST
#BDDF Test a point.
Default action Check if the point inside the graphics window a
nd return the ink it is currently set to if so. Otherwise, return the c
urrent graphic paper ink. The current graphics position is always move
d to the specified point. Entry conditions DE con
tains the user X coordinate of the point to test. HL contains the user Y
coordinate of the point to test. Exit conditions A contains
the decoded ink of the specified point. BC, DE,HL and flags corrupt
. All other registers preserved. Notes The posit
ion of the point to plot is given in user coordinates, i.e. relative t
o the user origin. This indirection is used by GRA TEST RELATIVE and
GRA TEST ABSOLUTE to test the point requested. It is provided to allow
the user to change the method for testing (comparing with the cur
rent pen ink for example). GRA TEST RELATIVE converts from relative t
o user coordinates and then calls this indirection GRA TEST ABSOL
UTE calls this indirection immediately. To test the ink of
a point inside the window the SCR READ indirection is used.
This indirection is set up when GRA INITIALISE or GRA RESET is called.
Related entries GRA PLOT GRA TEST ABSOLUTE PG
RA TEST RELATIVE SCR READ AMSTRAD CPC464/664/6128 FIRM
WARE page 16.9 IND GRA LINE
#BDE2 Draw a line.
Default action Draw a line between the current graphics
position and the given endpoint using the current graphics write mo
de. Points on the line that lie outside the current graphics window
will not be plotted. The current graphics position is always moved to t
he specified endpoint. Entry conditions DE contains the
user X coordinate of the endpoint. HL contains the user Y coordinate of
the endpoint. Exit conditions AF, BC, DE and HL corrupt.
All other registers preserved. Notes The positi
on of the endpoint is given in user coordinates, i.e. relative to
the user origin. This indirection is used by GRA LINE RELATIVE and GR
A LINE ABSOLUTE to draw the line specified. It is provided to allow the
user to change the method for line drawing (to output to an X-Y plott
er for example). GRA LINE RELATIVE converts from relative to user coordi
nates and then calls the indirection GRA LINE ABSOLUTE calls the
indirection immediately. The line is split up into horizonta
l or vertical sections that are drawn separately (see SCR HORIZONTAL
and SCR VERTICAL). The SCR WRITE indirection is called to write points
in these sections. This means that the line is plotted using the cur
rent graphics write mode. In V1.0 firmware the line is plotted in the
current pen ink. But in V1.1 the setting of the line mask determines
how pixels on the line will be plotted. The line mask is bit si
gnificant and is used repeatedly in the order bit 7, bit 6 down to bi
t 0 for each pixel in the line. If the bit is one then the pixel is pl
otted in the graphics pen ink. If the bit is zero then the action ta
ken depends on the graphics background write mode. If the background
mode is opaque then the pixel is plotted in the graphics paper ink. If
the background mode is transparent then the pixel is not plotted.
AMSTRAD CPC464/664/6128 FIRMWARE page 16.10
In V1.1 firmware the first pixel of the line (that at the
current graphics position) is not plotted if the first point plotting
mode is set false. This indirection is set up when GRA INIT
IALISE or GRA RESET is called. Related entries GRA LIN
E ABSOLUTE GRA LINE RELATIVE GRA SET BACK GRA SET FIRST
GRA SET LINE MASK SCR HORIZONTAL SCR VERTICAL
AM
STRAD CPC464/664/6128 FIRMWARE page 16.11 Th
is section gives the detailed entry and exit conditions and effects his indir
ection is set up when GRA INITIALISE or GRA RESET is called. Relat
ed entries GRA LINE ABSOLUTE GRA LINE RELATIVE GRA S
ET BACK GRA SET FIRST GRA SET LINE MASK SCR HORIZONTAL
SCR VERTICAL
AMSTRAD CPC464/664/6128 FI IND SCR
READ #BDE5 Read
a pixel from the screen. Default action Read a pixel fro
m the screen and decode its ink. Entry conditions HL con
tains the screen address of the pixel. C contains the mask for the pixel
. Exit conditions A contains the decoded ink that the pi
xel was set to. Flags corrupt. All other registers preserved
. Notes The mask supplied must be a mask for a single
pixel otherwise the decoding of the ink read from the screen will not
work correctly. This indirection is set up when SCR INITIALISE or S
CR RESET is called. It is called by GRA TEST. Related entr
ies GRA TEST SCR WRITE AMS
TRAD CPC464/664/6128 FIRMWARE page 16.12
IND SCR WRITE P
#BDE8 Write pixel(s) using the current graphics write mode.
Default action Plot a pixel or pixels on the screen using the cur
rent graphics write mode. Entry conditions HL conta
ins the screen address of the pixel(s). C contains the mask for the pixe
l(s). B contains the encoded ink to plot with. Exit conditions
AF corrupt. All other registers preserved. Notes
The pixel mask supplied can be for a single pixel or more than one
pixel (or even no pixels). The ink supplied should be encoded to cover
the whole of a byte (see SCR INK ENCODE). The pixel is plotted
using the current Graphics VDU write mode. These modes are
FORCE Pixel is set to the new ink irrespective of the old
ink. XOR Pixel is set to the ink formed
by exclusive-oring the new ink for the pixel and it
s current setting. AND Pixel is set to the ink formed by
anding the new ink for the pixel and its current s
etting. OR Pixel is set to the ink formed by oring the n
ew ink for the pixel and its current setting.
The write mode can be set by calling SCR ACCESS appropriately. This
indirection is called by all Graphics VDU write routines, in parti
cular GRA PLOT RELATIVE, GRA PLOT ABSOLUTE, GRA LINE RELATIVE, GRA LI
NE ABSOLUTE and GRA WR CHAR, to plot pixels on the screen. It is provide
d to allow the user to intercept the lowest level of point plotting
(perhaps to add yet another plotting mode). This indirection is set u
p when SCR INITIALISE or SCR RESET is called. Related entries
GRA PLOT SCR ACCESS SCR PIXELS SCR READ
AMSTRAD CPC464/664/6128 FIRMWARE page 16.13
IND SCR MODE CLEAR #BD
EB Clear the screen to ink 0. Default action
Clear the screen memory to zeros. This indirection is provided to
allow the user to prevent the screen being cleared after the mode is c
hanged. Entry conditions No conditions. Exit
conditions AF, BC, DE and HL corrupt. All other registers p
reserved. Notes Normally this indirection performs the a
ctions described in SCR CLEAR. In V1.0 firmware it is necessary for
the user to set up the inks if this indirection is intercepted (see A
ppendix XIII). In V1.1 firmware the screen pack sets up the inks for th
e user after SCR MODE CLEAR has been called. This indirectio
n is set up when SCR INITIALISE or SCR RESET is called. N.B. When this
indirection is called the text and graphics VDUs are in non-standard st
ates. Related entries SCR CLEAR SCR SET MODE
AMSTRAD CPC464/664/6128 FIRMWARE
page 16.14 IND KM TEST BREAK
#BDEE Test for break (or reset). Defau
lt action Test if the escape key is pressed, if not then no action i
s taken. If escape, shift and control are all pressed and no other keys
then the system is reset. Otherwise, a break event is reported (see
KM BREAK EVENT). Entry conditions Interrupts d
isabled. C contains shift and control key states. Exit condi
tions AF and HL corrupt. All other registers preserved.
Notes This indirection is called by the firmware from the
interrupt path. Thus interrupts are disabled and they must remain disab
led. If bit 7 of C is set then the control key is pressed. If bit 5
of C is set then one of the shift keys is pressed. This indi
rection is called after the keys have been scanned and the escape key
was found to have been pressed. It is provided to allow the user to alt
er the action of a break (particularly prevent the system reset, see R
ESET ENTRY). This indirection is set up when KM INITIALISE or K !P!
!!!!!!!!M RESET is called. Related entries KM BREAK EV
ENT AMSTRAD CPC464/664/6128 FIRMWARE
page 16.15 IND MC WAIT PRINTER
#BDF1 Print a character or time out. De
fault action Wait for the Centronics port to become not busy and
then send a character to it. If the port remains busy for a long tim
e the routine times out and the character is not sent. Entr
y conditions A contains the character to send. Exit cond
itions If the character was sent OK Carry true.
If the Centronics port timed out Carry false.
Always A and BC corrupt. All other r
egisters preserved. Notes This indirection is provided to al
low the user to drive the printer in a different way. For example, 'esca
pe sequence' could be handled or the time out could be changed.
This indirection is called by the routine MC PRINT CHAR. It tests
whether the printer is busy in the same way as MC BUSY PRINTER and
sends the character in the same way as MC SEND PRINTER. This indire
ction is set up when MC RESET PRINTER is called. Related entries
MC BUSY PRINTER MC PRINT CHAR MC SEND PRINTER
AMSTRAD CPC464/664/6128 FIRMWARE page 16.16
IND KM SCAN KEYS #B
DF4 Scan the keyboard. Default action Scans
the keyboard and updates the key state map. Newly pressed keys are det
ected and appropriate markers are inserted into the key buffer. Entr
y conditions No conditions except that interrupts must be disabled.
Exit conditions AF, BC, DE and HL corrupt. All o
ther registers preserved and interrupts remain disabled. Notes
This indirection is called every fiftieth of a second during a ticker
interrupt. The repeat speeds and start-up delays of the keys are
measured in scans of the keyboard and hence fiftieth of a second.
If the escape key is pressed then the indirection KM TEST BREAK is
called to process the break. Related entries KL SCAN
NEEDED KM READ KEY KM TEST BREAK KM TEST KEY
AMSTRAD CPC464/664/6128 FIRMWARE
page 16.17 is section gives the detailed entry and exit conditions and eff
ects of the keys are measured in scans of the keyboard and hence f
iftieth of a second. If the escape key is pressed then the indirecti
on KM TEST BREAK is called to process the break. Relat
ed entries 17 The High Kernel Jumpblock. S
eparate from the main firmware jumpblock is a small jumpblock for Ke
rnel routines associated with ROM state and ROM selection. The rou
tines accessed through this jumpblock are all RAM resident, to avoi
d confusion while the ROM state and ROM select are changed! The RAM a
rea is copied out of ROM during the power-up initialization. The jumpbl
ock should not be altered by the user. The entry KL POLL SYNCHRONOU
S is the 'odd man out' amongst the routines in this jumpblock.
Unlike the other synchronous event handling routines, which are in
the lower ROM, this routine is RAM resident. This minimises the
overhead involved in polling for synchronous events. A
brief listing of the entries in this jumpblock can be found in se
ction 14.3. A discussion of ROMs and the memory map can be found in sec
tion 2 "P""""""""", further discussion of ROMs can be found in section 10 and a
discussion of events can be found in section 12.
AMSTRAD CPC464/664/6128
FIRMWARE page 17.1 HI KL U ROM E
NABLE #B900 Enable the
upper ROM. Action Enables the currently selected upper R
OM. Reading from addresses #C000 and up will now return the contents of
the ROM. Entry conditions No conditions. Exi
t conditions A contains the previous ROM state. Flags co
rrupt. All other registers preserved. Notes The
mechanism provided for calling subroutines in the upper ROM and for s
electing upper ROMs automatically enable the ROM as required. This r
outine is used by the firmware but is otherwise of little use. The p
revious ROM state may be passed to KL ROM RESTORE to reset the state
to what it was before this routine was called. This routine enables
interrupts. Related entries KL L ROM ENABLE KL
ROM RESTORE KL ROM SELECT KL U ROM DISABLE
AMSTRAD CPC464/664/6128 FIRMWARE page 17.2
HI KL U ROM DISABLE #B9
03 Disable the upper ROM. Action Disables th
e upper ROM. Reading from addresses #C000 and up will now return the c
ontents of the RAM. Entry conditions No conditions.
Exit conditions A contains the previous ROM state.
Flags corrupt. All other registers preserved. Notes
Disabling the upper ROM gives read access to the top 16K of RAM, which
is usually used as the screen memory. Note that the mapping of a
location in screen memory to pixels on the screen depends on the mode
and on the screen offset. It is inadvisable to disable the
upper ROM while executing instructions in it! The pre
vious ROM state may be passed to KL ROM RESTORE to reset the state to
what it was before this routine was called. This routine enables in
terrupts. Related entries KL L ROM DISABLE KL
ROM RESTORE KL U ROM ENABLE AMSTRAD CPC464/664/6128 FIRMWA
RE page 17.3 HI KL L ROM ENABLE
#B906 Enable the lower
ROM. Action Enables the lower ROM. Reading from addresse
s below #4000 will now return the contents of the ROM. E
ntry conditions No conditions. Exit conditions
A contains the previous ROM state. Flags corrupt. All oth
er registers preserved. Notes In general the lower ROM i
s disabled except when a firmware routine is called. The firmware jumpb
lock arranges to enable the lower ROM automatically and to disable
it again when the routine returns. This routine is used by the firmwa
re but is otherwise of little use. The previous ROM state may be pas
sed to KL ROM RESTORE to reset the state to what it was before this r
outine was called. This routine enables interrupts. Re
lated entries KL L ROM DISABLE KL ROM RESTORE KL U R
OM ENABLE AMSTRAD CPC464/664/6128 FIRMWARE
page 17.4 HI KL L ROM DISABLE
#B909 Disable the lower ROM.
Action Disables the lower ROM. Reading from addresses below #4000
will now return the contents of the RAM. Entry conditions
No conditions. Exit conditions A contains the
previous ROM state. Flags corrupt. All other registers pres
erved. Notes In general the lower ROM is disabled except
when a firmware routine is called. The firmware jumpblock arranges t
o enable the lower ROM automatically and to disable it again when th
e routine returns. The previous #P######### ROM state may be passe
d to KL ROM RESTORE to reset the state to what it was before this rou
tine was called. This routine enables interrupts. Rela
ted entries KL L ROM ENABLE KL ROM RESTORE KL U ROM
DISABLE AMSTRAD CPC464/664/6128 FIRMWARE
page 17.5 HI KL ROM RESTORE
#B90C Restore the previous ROM state.
Action The ROM state change routines all return a value giv
ing the previous ROM state. Given that value KL ROM RESTORE will rese
t the state to what it was before the change. Entry condi
tions A contains the previous ROM state. Exit conditions
AF corrupt. All other registers preserved. Note
s The previous ROM state is the value returned by one of
KL U ROM ENABLE KL U ROM DISABLE KL
L ROM ENABLE KL L ROM DISABLE KL ROM SELECT
It is possible to use KL U ROM DISABLE to reverse the effect of a call
of KL U ROM ENABLE (amongst various other combinations). However,
calling KL ROM RESTORE is the preferred method since it restores the
state to what it was, which might have been enabled anyway. T
his routine enables interrupts. Related entries KL L ROM DIS
ABLE KL L ROM ENABLE KL ROM SELECT KL U ROM DISABLE
KL U ROM ENABLE AMSTRAD CPC464/664/6128 FIRMWARE
page 17.6 HI KL ROM SELECT
#B90F Select a particular upper ROM.
Action Select a given upper ROM and enable the upper ROM
. Entry conditions C contains the ROM select address of
the required ROM. Exit conditions C contains the ROM sel
ect address of the previously selected ROM. B contains the previous ROM
state. AF corrupt. All other registers preserved.
Notes The previous ROM state can be passed to KL ROM RESTORE to
reset the ROM enable to what it was. Both the previous state and the
previous selection can be passed to KL ROM DESELECT to restore the s
tate to what it was and to select the previously selected ROM again.
The mechanism provided for calling routines in expansion ROMs
automatically perform ROM selection as required (see section 2).
It is inadvisable to select another upper ROM whilst executing
instructions in the upper ROM. This routine enables interrupts.
Related entries KL CURR SELECTION KL PROBE ROM
KL ROM DESELECT KL ROM RESTORE AMSTRAD CPC464/664/
6128 FIRMWARE page 17.7 HI KL CU
RR SELECTION #B912 Ask wh
ich upper ROM is currently selected. Action Returns the
ROM select address of the currently selected upper ROM. Entry condit
ions No conditions. Exit conditions A contai
ns the ROM select address of the currently selected ROM. All other r
egisters and flags preserved. Notes It is not possible
to predict the ROM select address which any particular expansion
ROM will be fitted. The 'far address' used to reference subroutines
in expansion ROMs includes a ROM select byte which must be set up at
run time. This routine returns the ROM select address of the current R
OM so that it can set up suitable 'far addresses'.
Related entries KL PROBE ROM KL ROM SELECT
AMSTRAD CPC464/664/6128 FIRMWARE
page 17.8 HI KL PROBE ROM
#B915 Ask class and version of a ROM. A
ction The first few bytes of all upper ROMs contain informatio
n in a standard form about the ROM. This routine extracts the class
, mark number and version number bytes from the ROM at a given ROM
sel $P$$$$$$$$$ect address. Entry conditions C
contains the ROM select address of the ROM to probe. Exit conditions
A contains the ROM's class. L contains the ROM's mark numbe
r H contains the ROM's version number. B and flags corrupt.
All other registers preserved. Notes The ROM class ret
urned may take any of the following values 0 Foreground
ROM. 1 Background ROM. 2 Extension f
oreground ROM. #80 On board ROM (the built in BASIC foregrou
nd program). Selecting a ROM address where no ROM is fitted implicitly
selects the on-board ROM and so it will return #80 as its class.
The meaning of the mark and version numbers depends on the ROM. S
ee section 10 for a description of expansion ROMs. This routine enable
s interrupts. Related entries KL ROM SELECT KL CURR
SELECTION AMSTRAD CPC464/664/6128 FIRMWARE
page 17.9 HI KL ROM DESELECT
#B918 Restore previous upper ROM selection.
Action Set the ROM state and upper ROM selection to wha
t they were before KL ROM SELECT was called. Entry conditio
ns C contains the ROM select address of the previously selected ROM.
B contains the previous ROM state. Exit conditions
C contains the ROM select address of the currently selected ROM.
B corrupt. All other registers and flags preserved. Notes
The previous ROM selection and state are the values returned by KL RO
M SELECT. The currently selected ROM returned by this routine is the ROM
that was selected by calling KL ROM SELECT (unless further selections
have been made). The mechanism provided for calling subro
utines in expansion ROMs automatically performs ROM selection as requ
ired. It is inadvisable to select another upper ROM whilst e
xecuting instructions in the upper ROM. This routine enables
interrupts. Related entries KL CURR SELECTION K
L ROM RESTORE KL ROM SELECT AMSTRAD CPC464/664/6128 FIRMWA
RE page 17.10 HI KL LDIR
#B91B Move store (LDIR)
with ROMs turned off. Action Performs an LDIR instructi
on (LoaD Increment and Repeat) with both upper and lower ROMs disabl
ed. Entry conditions BC, DE, HL as required by the LDIR
instruction. Exit conditions F, BC, DE, HL as set by the
LDIR instruction. All other registers preserved. Notes
This routine may be used to move areas of RAM irrespective of the ROM
state. This routine enables interrupts. Related
entries KL LDDR RAM LAM (RST 4)
AMSTRAD CPC464/664/6128 FIRMWARE page
17.11 HI KL LDDR
#B91E Move store (LDDR) with ROMs turned off.
Action Performs an LDDR instruction (LoaD Decrement and Repeat) w
ith both upper and lower ROMs disabled. Entry conditions
BC, DE, HL as required by LDDR instruction. Exit condition
s F, BC, DE, HL as set by LDDR instruction. All other regist
ers preserved. Notes This routine may be used to move ar
eas of RAM irrespective of the ROM state. This routine enab
les interrupts. Related entries KL LDIR RAM
LAM (RST 4) AMSTRAD CPC464/664/6128 FIRM
WARE page 17.12 HL KL POLL SYNCHR
ONOUS #B921 Check if an event
with higher priority than the current event is pending.
Action If the synchronous event queue is not empty then the priority
of the highest priority pending event is compared with the current
event's priority (if any). %P%%%%%%%%% Entry conditions
No conditions. Exit conditions If there is a higher pri
ority event pending Carry true. If there is no high
er priority event pending Carry false. Always
A and other flags corrupt. All other registers
preserved. Notes This routine is in the high jumpblock to
minimise the overhead of polling for synchronous events. If the s
ynchronous event queue is empty then the routine takes only a few ins
tructions. While a synchronous event is being processed the Kernel r
emembers its priority. The synchronous event routine may itself
poll the synchronous event queue, but only events of a higher pri
ority than itself are notified to it. This routine enables
interrupts. Related entries KL EVENT KL DONE SYNC
KL DO SYNC KL NEXT SYNC AMSTRAD CPC464/664/612
8 FIRMWARE page 17.13 HI KL SCAN
NEEDED #B92A Ensure ke
yboard is scanned at next opportunity. Action Force the
Key Manager to scan the keyboard when the next ticker interrupt o
ccurs. This may be used to reduce the probability of key pressings be
ing missed while interrupts are disabled. Entry conditions
No conditions. Exit conditions AF and HL corrupt.
All other registers preserved. Notes The keyboard i
s normally scanned on every sixth ticker interrupt (every fiftieth
of a second). While interrupts are disabled the ticks are lost and the
keyboard will not be scanned. If interrupts are disabled for a si
gnificant period (more than three ticks) then this routine should be
called just before interrupts are re-enabled. If interrupts are disa
bled for a long time (more than twelve ticks) then the user might co
nsider calling this routine and re-enabling interrupts for a shor
t time every fiftieth of a second. Related entries KM
SCAN KEYS AMSTRAD CPC464/664/6128 FIRMWARE
page 17.14 Separate from the main firmware jumpblock
is a small jumpblock for &P&&&&&&&&& 'P'''''''''