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 20 20 D0 31 20 00 00 00 76 .CHAP-1 .1 ...v
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 20 20 D0 32 20 00 00 00 64 .CHAP-1 .2 ...d
000230: 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 00 00 00 ................
000240: 00 43 48 41 50 2D 32 20 20 D0 31 20 00 00 00 80 .CHAP-2 .1 ....
000250: 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 &'()*+,-./012345
000260: 00 43 48 41 50 2D 32 20 20 D0 31 20 01 00 00 06 .CHAP-2 .1 ....
000270: 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6...............
000280: 00 43 48 41 50 2D 32 20 20 D0 32 20 00 00 00 18 .CHAP-2 .2 ....
000290: 37 38 39 00 00 00 00 00 00 00 00 00 00 00 00 00 789.............
0002A0: 00 43 48 41 50 2D 33 20 20 A0 20 20 00 00 00 7A .CHAP-3 . ...z
0002B0: 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 :;<=>?@ABCDEFGHI
0002C0: 00 43 48 41 50 2D 34 20 20 D0 31 20 00 00 00 80 .CHAP-4 .1 ....
0002D0: 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 JKLMNOPQRSTUVWXY
0002E0: 00 43 48 41 50 2D 34 20 20 D0 31 20 01 00 00 01 .CHAP-4 .1 ....
0002F0: 5A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Z...............
000300: 00 43 48 41 50 2D 34 20 20 D0 32 20 00 00 00 0C .CHAP-4 .2 ....
000310: 5B 5C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [\..............
000320: 00 43 48 41 50 2D 35 20 20 A0 20 20 00 00 00 73 .CHAP-5 . ...s
000330: 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 00 ]^_`abcdefghijk.
000340: 00 43 48 41 50 2D 36 20 20 A0 20 20 00 00 00 6C .CHAP-6 . ...l
000350: 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 00 00 lmnopqrstuvwxy..
000360: 00 43 48 41 50 2D 37 20 20 A0 20 20 00 00 00 72 .CHAP-7 . ...r
000370: 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 00 z{|}~...........
000380: 00 43 48 41 50 2D 38 20 20 D0 31 20 00 00 00 73 .CHAP-8 .1 ...s
000390: 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 00 ................
0003A0: 00 43 48 41 50 2D 38 20 20 D0 32 20 00 00 00 69 .CHAP-8 .2 ...i
0003B0: 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 00 00 ...........£....
0003C0: 00 43 4F 4E 54 45 4E 54 53 A0 20 20 00 00 00 2D .CONTENTS. ...-
0003D0: 20 21 22 23 24 25 00 00 00 00 00 00 00 00 00 00 !"#$%..........
0003E0: 00 44 49 53 43 20 20 20 20 C2 41 53 00 00 00 02 .DISC .AS....
0003F0: A6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000400: 00 44 55 4D 50 20 20 20 20 C2 C9 4E 00 00 00 09 .DUMP ..N....
000410: A7 A8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000420: 00 50 52 45 46 41 43 45 20 A0 20 20 00 00 00 0D .PREFACE . ....
000430: 1E 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000440: 00 50 54 49 54 4C 45 20 20 C2 41 53 00 00 00 03 .PTITLE .AS....
000450: A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000460: 00 53 54 41 52 54 20 20 20 C2 C1 53 00 00 00 3C .START ..S...<
000470: AC AD AE AF B0 B1 B2 B3 00 00 00 00 00 00 00 00 ................
000480: 00 54 49 54 4C 45 20 20 20 C2 C9 4E 00 00 00 10 .TITLE ..N....
000490: AA AB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
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 20 20 20 20 20 20 20 31 ........ 1
000A10: 20 54 68 65 20 46 69 72 6D 77 61 72 65 0D 0A 20 The Firmware..
000A20: 20 20 20 20 20 20 54 68 69 73 20 6D 61 6E 75 61 This manua
000A30: 6C 20 64 65 73 63 72 69 62 65 73 20 74 68 65 20 l describes the
000A40: 66 69 72 6D 77 61 72 65 20 6F 66 20 20 74 68 65 firmware of the
000A50: 20 20 41 6D 73 74 72 61 64 20 20 43 50 43 20 20 Amstrad CPC
000A60: 34 36 34 2F 36 36 34 2F 36 31 32 38 0D 0A 20 20 464/664/6128..
000A70: 20 20 20 20 20 6D 69 63 72 6F 63 6F 6D 70 75 74 microcomput
000A80: 65 72 73 2E 20 49 74 20 61 6C 73 6F 20 64 65 73 ers. It also des
000A90: 63 72 69 62 65 73 20 74 68 65 20 64 69 73 63 20 cribes the disc
000AA0: 6F 70 65 72 61 74 69 6E 67 20 73 79 73 74 65 6D operating system
000AB0: 73 20 28 43 50 2F 4D 20 61 6E 64 0D 0A 20 20 20 s (CP/M and..
000AC0: 20 20 20 20 41 4D 53 44 4F 53 29 2E 20 49 74 20 AMSDOS). It
000AD0: 64 6F 65 73 20 6E 6F 74 20 64 65 73 63 72 69 62 does not describ
000AE0: 65 20 65 69 74 68 65 72 20 74 68 65 20 42 41 53 e either the BAS
000AF0: 49 43 20 6C 61 6E 67 75 61 67 65 20 73 75 70 70 IC language supp
000B00: 6C 69 65 64 20 20 77 69 74 68 0D 0A 20 20 20 20 lied with..
000B10: 20 20 20 74 68 65 20 73 79 73 74 65 6D 20 6F 72 the system or
000B20: 20 43 50 2F 4D 2E 20 54 68 65 20 6D 61 6E 75 61 CP/M. The manua
000B30: 6C 20 64 6F 65 73 20 64 65 73 63 72 69 62 65 20 l does describe
000B40: 63 65 72 74 61 69 6E 20 20 61 73 70 65 63 74 73 certain aspects
000B50: 20 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 20 of the..
000B60: 20 20 42 41 53 49 43 20 77 68 65 72 65 20 74 68 BASIC where th
000B70: 65 73 65 20 61 66 66 65 63 74 20 6F 74 68 65 72 ese affect other
000B80: 20 70 72 6F 67 72 61 6D 73 20 61 6E 64 20 69 74 programs and it
000B90: 20 75 73 65 73 20 42 41 53 49 43 20 20 69 6E 20 uses BASIC in
000BA0: 20 63 65 72 74 61 69 6E 0D 0A 20 20 20 20 20 20 certain..
000BB0: 20 65 78 61 6D 70 6C 65 20 70 72 6F 67 72 61 6D example program
000BC0: 73 20 77 68 65 6E 20 64 65 73 63 72 69 62 69 6E s when describin
000BD0: 67 20 73 6F 6D 65 20 66 65 61 74 75 72 65 73 20 g some features
000BE0: 20 6F 66 20 20 74 68 65 20 20 66 69 72 6D 77 61 of the firmwa
000BF0: 72 65 2E 20 20 49 74 0D 0A 20 20 20 20 20 20 20 re. It..
000C00: 61 6C 73 6F 20 64 65 73 63 72 69 62 65 73 20 68 also describes h
000C10: 6F 77 20 74 6F 20 63 61 6C 6C 20 74 68 65 20 66 ow to call the f
000C20: 69 72 6D 77 61 72 65 20 66 72 6F 6D 20 43 50 2F irmware from CP/
000C30: 4D 2E 0D 0A 20 20 20 20 20 20 20 54 68 72 65 65 M... Three
000C40: 20 76 65 72 73 69 6F 6E 73 20 6F 66 20 74 68 65 versions of the
000C50: 20 66 69 72 6D 77 61 72 65 20 61 72 65 20 64 65 firmware are de
000C60: 73 63 72 69 62 65 64 2E 20 56 31 2E 30 20 28 6F scribed. V1.0 (o
000C70: 6E 20 20 43 50 43 34 36 34 29 2C 20 20 56 31 2E n CPC464), V1.
000C80: 31 0D 0A 20 20 20 20 20 20 20 28 6F 6E 20 43 50 1.. (on CP
000C90: 43 36 36 34 29 20 61 6E 64 20 20 56 31 2E 32 20 C664) and V1.2
000CA0: 20 28 6F 6E 20 20 43 50 43 36 31 32 38 29 2E 20 (on CPC6128).
000CB0: 20 41 70 61 72 74 20 20 66 72 6F 6D 20 20 73 75 Apart from su
000CC0: 70 70 6F 72 74 20 20 66 6F 72 20 20 62 61 6E 6B pport for bank
000CD0: 0D 0A 20 20 20 20 20 20 20 73 77 69 74 63 68 69 .. switchi
000CE0: 6E 67 20 56 31 2E 31 20 61 6E 64 20 56 31 2E 32 ng V1.1 and V1.2
000CF0: 20 61 72 65 20 69 64 65 6E 74 69 63 61 6C 20 61 are identical a
000D00: 6E 64 20 20 61 72 65 20 20 72 65 66 65 72 72 65 nd are referre
000D10: 64 20 20 74 6F 20 20 61 73 20 20 56 31 2E 31 0D d to as V1.1.
000D20: 0A 20 20 20 20 20 20 20 74 68 72 6F 75 67 68 6F . througho
000D30: 75 74 20 74 68 69 73 20 6D 61 6E 75 61 6C 2E 20 ut this manual.
000D40: 49 74 20 6D 61 79 20 62 65 20 6E 65 63 65 73 73 It may be necess
000D50: 61 72 79 20 66 6F 72 20 61 20 20 70 72 6F 67 72 ary for a progr
000D60: 61 6D 20 20 74 6F 20 20 64 65 64 75 63 65 0D 0A am to deduce..
000D70: 20 20 20 20 20 20 20 77 68 69 63 68 20 66 69 72 which fir
000D80: 6D 77 61 72 65 20 69 73 20 66 69 74 74 65 64 20 mware is fitted
000D90: 74 6F 20 74 68 65 20 63 6F 6D 70 75 74 65 72 2C to the computer,
000DA0: 20 61 6E 64 20 74 68 69 73 20 63 61 6E 20 62 65 and this can be
000DB0: 20 61 63 68 69 65 76 65 64 20 20 62 79 0D 0A 20 achieved by..
000DC0: 20 20 20 20 20 20 69 6E 73 70 65 63 74 69 6E 67 inspecting
000DD0: 20 74 68 65 20 6F 6E 2D 62 6F 61 72 64 20 52 4F the on-board RO
000DE0: 4D 27 73 20 76 65 72 73 69 6F 6E 20 6E 75 6D 62 M's version numb
000DF0: 65 72 20 28 61 73 20 64 65 73 63 72 69 62 65 64 er (as described
000E00: 20 69 6E 20 20 73 65 63 74 69 6F 6E 0D 0A 20 20 in section..
000E10: 20 20 20 20 20 31 30 2E 32 29 20 75 73 69 6E 67 10.2) using
000E20: 20 4B 4C 20 52 4F 4D 20 50 52 4F 42 45 2E 20 54 KL ROM PROBE. T
000E30: 68 69 73 20 77 69 6C 6C 20 72 65 74 75 72 6E 20 his will return
000E40: 61 20 30 2C 31 20 6F 72 20 32 20 64 65 70 65 6E a 0,1 or 2 depen
000E50: 64 69 6E 67 20 6F 6E 20 74 68 65 0D 0A 20 20 20 ding on the..
000E60: 20 20 20 20 76 65 72 73 69 6F 6E 20 6F 66 20 66 version of f
000E70: 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A 20 20 20 20 irmware.....
000E80: 20 20 20 54 68 65 20 66 69 72 6D 77 61 72 65 20 The firmware
000E90: 69 73 20 74 68 65 20 70 72 6F 67 72 61 6D 20 74 is the program t
000EA0: 68 61 74 20 72 65 73 69 64 65 73 20 69 6E 20 74 hat resides in t
000EB0: 68 65 20 6C 6F 77 65 72 20 52 4F 4D 20 61 6E 64 he lower ROM and
000EC0: 20 74 68 65 20 64 69 73 63 0D 0A 20 20 20 20 20 the disc..
000ED0: 20 20 63 6F 6E 74 72 6F 6C 6C 69 6E 67 20 52 4F controlling RO
000EE0: 4D 20 28 73 65 65 20 73 65 63 74 69 6F 6E 20 20 M (see section
000EF0: 32 29 2E 20 20 49 74 73 20 20 66 75 6E 63 74 69 2). Its functi
000F00: 6F 6E 20 20 69 73 20 20 74 6F 20 20 63 6F 6E 74 on is to cont
000F10: 72 6F 6C 20 20 74 68 65 0D 0A 20 20 20 20 20 20 rol the..
000F20: 20 68 61 72 64 77 61 72 65 20 6F 66 20 74 68 65 hardware of the
000F30: 20 63 6F 6D 70 75 74 65 72 20 61 6E 64 20 74 6F computer and to
000F40: 20 70 72 6F 76 69 64 65 20 75 73 65 66 75 6C 20 provide useful
000F50: 20 66 61 63 69 6C 69 74 69 65 73 20 20 66 6F 72 facilities for
000F60: 20 20 6F 74 68 65 72 0D 0A 20 20 20 20 20 20 20 other..
000F70: 70 72 6F 67 72 61 6D 73 20 74 6F 20 75 73 65 2E programs to use.
000F80: 20 54 68 69 73 20 61 76 6F 69 64 73 20 65 76 65 This avoids eve
000F90: 72 79 20 70 72 6F 67 72 61 6D 20 77 72 69 74 74 ry program writt
000FA0: 65 6E 20 68 61 76 69 6E 67 20 20 74 6F 20 20 70 en having to p
000FB0: 72 6F 76 69 64 65 0D 0A 20 20 20 20 20 20 20 69 rovide.. i
000FC0: 74 73 20 6F 77 6E 20 66 61 63 69 6C 69 74 69 65 ts own facilitie
000FD0: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 s..... Thi
000FE0: 73 20 6D 61 6E 75 61 6C 20 69 73 20 65 78 70 65 s manual is expe
000FF0: 63 74 65 64 20 74 6F 20 62 65 20 6F 66 20 69 6E cted to be of in
001000: 74 65 72 65 73 74 20 74 6F 20 61 6E 79 6F 6E 65 terest to anyone
001010: 20 77 68 6F 20 77 6F 75 6C 64 20 6C 69 6B 65 20 who would like
001020: 20 74 6F 0D 0A 20 20 20 20 20 20 20 6B 6E 6F 77 to.. know
001030: 20 68 6F 77 20 74 68 65 20 73 79 73 74 65 6D 20 how the system
001040: 77 6F 72 6B 73 2E 20 49 74 20 69 73 20 69 6E 64 works. It is ind
001050: 69 73 70 65 6E 73 61 62 6C 65 20 66 6F 72 20 70 ispensable for p
001060: 72 6F 67 72 61 6D 6D 65 72 73 20 77 72 69 74 69 rogrammers writi
001070: 6E 67 0D 0A 20 20 20 20 20 20 20 6D 61 63 68 69 ng.. machi
001080: 6E 65 20 20 63 6F 64 65 20 20 70 72 6F 67 72 61 ne code progra
001090: 6D 73 2C 20 20 70 61 72 74 69 63 75 6C 61 72 6C ms, particularl
0010A0: 79 20 20 73 79 73 74 65 6D 20 20 70 72 6F 67 72 y system progr
0010B0: 61 6D 73 20 20 28 65 2E 67 2E 20 20 6F 74 68 65 ams (e.g. othe
0010C0: 72 0D 0A 20 20 20 20 20 20 20 6C 61 6E 67 75 61 r.. langua
0010D0: 67 65 73 29 20 61 6E 64 20 67 61 6D 65 73 2E 0D ges) and games..
0010E0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 69 6E ... The in
0010F0: 66 6F 72 6D 61 74 69 6F 6E 20 70 72 65 73 65 6E formation presen
001100: 74 65 64 20 63 61 6E 20 62 65 20 65 78 74 72 65 ted can be extre
001110: 6D 65 6C 79 20 20 64 65 74 61 69 6C 65 64 2E 20 mely detailed.
001120: 20 49 74 20 20 63 6F 76 65 72 73 20 20 74 68 65 It covers the
001130: 0D 0A 20 20 20 20 20 20 20 6F 70 65 72 61 74 69 .. operati
001140: 6F 6E 20 6F 66 20 74 68 65 20 66 69 72 6D 77 61 on of the firmwa
001150: 72 65 20 66 72 6F 6D 20 74 68 65 20 20 6C 6F 77 re from the low
001160: 65 73 74 20 20 6C 65 76 65 6C 20 20 28 65 2E 67 est level (e.g
001170: 2E 20 20 64 72 69 76 69 6E 67 20 20 74 68 65 0D . driving the.
001180: 0A 20 20 20 20 20 20 20 73 6F 75 6E 64 20 63 68 . sound ch
001190: 69 70 29 20 74 6F 20 74 68 65 20 68 69 67 68 65 ip) to the highe
0011A0: 73 74 20 6C 65 76 65 6C 20 28 65 2E 67 2E 20 72 st level (e.g. r
0011B0: 75 6E 6E 69 6E 67 20 61 20 71 75 65 75 65 20 6F unning a queue o
0011C0: 66 20 73 6F 75 6E 64 73 29 2E 20 20 49 74 0D 0A f sounds). It..
0011D0: 20 20 20 20 20 20 20 69 73 20 6E 6F 74 20 6E 65 is not ne
0011E0: 63 65 73 73 61 72 79 20 74 6F 20 75 6E 64 65 72 cessary to under
0011F0: 73 74 61 6E 64 20 61 6C 6C 20 74 68 65 20 69 6E stand all the in
001200: 66 6F 72 6D 61 74 69 6F 6E 20 67 69 76 65 6E 20 formation given
001210: 74 6F 20 62 65 20 61 62 6C 65 20 74 6F 0D 0A 20 to be able to..
001220: 20 20 20 20 20 20 75 73 65 20 74 68 65 20 66 69 use the fi
001230: 72 6D 77 61 72 65 2C 20 68 6F 77 65 76 65 72 2C rmware, however,
001240: 20 61 20 67 6F 6F 64 20 67 72 61 73 70 20 6F 66 a good grasp of
001250: 20 68 6F 77 20 74 68 65 20 73 79 73 74 65 6D 20 how the system
001260: 20 77 6F 72 6B 73 20 20 77 69 6C 6C 0D 0A 20 20 works will..
001270: 20 20 20 20 20 61 69 64 20 74 68 65 20 20 70 72 aid the pr
001280: 6F 67 72 61 6D 6D 65 72 20 20 69 6E 20 20 73 65 ogrammer in se
001290: 6C 65 63 74 69 6E 67 20 20 74 68 65 20 20 6D 6F lecting the mo
0012A0: 73 74 20 20 61 70 70 72 6F 70 72 69 61 74 65 20 st appropriate
0012B0: 20 6D 65 74 68 6F 64 20 20 6F 66 0D 0A 20 20 20 method of..
0012C0: 20 20 20 20 70 65 72 66 6F 72 6D 69 6E 67 20 61 performing a
0012D0: 20 70 61 72 74 69 63 75 6C 61 72 20 74 61 73 6B particular task
0012E0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 77 6F 20 ..... Two
0012F0: 64 69 73 63 20 6F 70 65 72 61 74 69 6E 67 20 73 disc operating s
001300: 79 73 74 65 6D 73 20 61 72 65 20 70 72 6F 76 69 ystems are provi
001310: 64 65 64 3A 20 41 4D 53 44 4F 53 2C 20 77 68 69 ded: AMSDOS, whi
001320: 63 68 20 20 65 6E 61 62 6C 65 73 20 20 42 41 53 ch enables BAS
001330: 49 43 0D 0A 20 20 20 20 20 20 20 70 72 6F 67 72 IC.. progr
001340: 61 6D 73 20 74 6F 20 75 73 65 20 64 69 73 63 20 ams to use disc
001350: 66 69 6C 65 73 20 69 6E 20 6D 75 63 68 20 74 68 files in much th
001360: 65 20 73 61 6D 65 20 77 61 79 20 61 73 20 63 61 e same way as ca
001370: 73 73 65 74 74 65 20 66 69 6C 65 73 3B 20 61 6E ssette files; an
001380: 64 0D 0A 20 20 20 20 20 20 20 43 50 2F 4D 20 32 d.. CP/M 2
001390: 2E 32 20 74 68 65 20 69 6E 64 75 73 74 72 79 20 .2 the industry
0013A0: 73 74 61 6E 64 61 72 64 20 6F 70 65 72 61 74 69 standard operati
0013B0: 6E 67 20 20 73 79 73 74 65 6D 20 20 28 43 50 2F ng system (CP/
0013C0: 4D 20 20 50 6C 75 73 20 20 69 6E 20 20 74 68 65 M Plus in the
0013D0: 0D 0A 20 20 20 20 20 20 20 43 50 43 36 31 32 38 .. CPC6128
0013E0: 2C 20 62 75 74 20 77 65 20 64 6F 20 6E 6F 74 20 , but we do not
0013F0: 64 69 73 63 75 73 73 20 74 68 65 20 64 69 66 66 discuss the diff
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: 65 72 65 6E 63 65 73 20 62 65 74 77 65 65 6E 20 erences between
001510: 74 68 65 20 74 77 6F 20 69 6E 20 74 68 69 73 0D the two in this.
001520: 0A 20 20 20 20 20 20 20 6D 61 6E 75 61 6C 29 2E . manual).
001530: 20 42 6F 74 68 20 41 4D 53 44 4F 53 20 61 6E 64 Both AMSDOS and
001540: 20 43 50 2F 4D 20 75 73 65 20 74 68 65 20 73 61 CP/M use the sa
001550: 6D 65 20 66 69 6C 65 20 73 74 72 75 63 74 75 72 me file structur
001560: 65 20 61 6E 64 20 6D 61 79 20 72 65 61 64 0D 0A e and may read..
001570: 20 20 20 20 20 20 20 61 6E 64 20 77 72 69 74 65 and write
001580: 20 65 61 63 68 20 6F 74 68 65 72 73 20 66 69 6C each others fil
001590: 65 27 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 43 e's..... C
0015A0: 50 2F 4D 20 69 73 20 69 6E 76 6F 6B 65 64 20 66 P/M is invoked f
0015B0: 72 6F 6D 20 42 41 53 49 43 20 62 79 20 74 79 70 rom BASIC by typ
0015C0: 69 6E 67 20 7C 43 50 4D 2E 20 50 61 72 74 20 6F ing |CPM. Part o
0015D0: 66 20 43 50 2F 4D 20 28 74 68 65 20 20 43 43 50 f CP/M (the CCP
0015E0: 20 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 42 44 and.. BD
0015F0: 4F 53 29 20 69 73 20 6C 6F 61 64 65 64 20 66 72 OS) is loaded fr
001600: 6F 6D 20 74 68 65 20 64 69 73 63 20 69 6E 20 64 om the disc in d
001610: 72 69 76 65 20 41 3A 2E 20 54 68 65 20 43 50 2F rive A:. The CP/
001620: 4D 20 20 42 49 4F 53 20 20 72 65 73 69 64 65 73 M BIOS resides
001630: 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 in.. the
001640: 20 64 69 73 63 20 52 4F 4D 2E 0D 0A 20 20 20 20 disc ROM...
001650: 20 20 20 41 4D 53 44 4F 53 20 69 73 20 65 6E 61 AMSDOS is ena
001660: 62 6C 65 64 20 77 68 65 6E 65 76 65 72 20 42 41 bled whenever BA
001670: 53 49 43 20 69 73 20 66 69 72 73 74 20 75 73 65 SIC is first use
001680: 64 2E 20 54 68 69 73 20 20 69 6E 74 65 72 63 65 d. This interce
001690: 70 74 73 20 20 6D 6F 73 74 0D 0A 20 20 20 20 20 pts most..
0016A0: 20 20 6F 66 20 74 68 65 20 63 61 73 73 65 74 74 of the cassett
0016B0: 65 20 66 69 72 6D 77 61 72 65 20 72 6F 75 74 69 e firmware routi
0016C0: 6E 65 73 20 61 6E 64 20 72 65 64 69 72 65 63 74 nes and redirect
0016D0: 73 20 20 74 68 65 6D 20 20 74 6F 20 20 64 69 73 s them to dis
0016E0: 63 2E 20 20 54 68 75 73 0D 0A 20 20 20 20 20 20 c. Thus..
0016F0: 20 65 78 69 73 74 69 6E 67 20 42 41 53 49 43 20 existing BASIC
001700: 70 72 6F 67 72 61 6D 73 20 77 68 69 63 68 20 75 programs which u
001710: 73 65 20 63 61 73 73 65 74 74 65 20 66 69 6C 65 se cassette file
001720: 73 20 63 61 6E 20 20 75 73 65 20 20 64 69 73 63 s can use disc
001730: 20 20 66 69 6C 65 73 0D 0A 20 20 20 20 20 20 20 files..
001740: 77 69 74 68 20 6C 69 74 74 6C 65 20 6F 72 20 6E with little or n
001750: 6F 20 6D 6F 64 69 66 69 63 61 74 69 6F 6E 2E 20 o modification.
001760: 20 41 4D 53 44 4F 53 20 20 61 6C 73 6F 20 20 70 AMSDOS also p
001770: 72 6F 76 69 64 65 73 20 20 61 20 20 6E 75 6D 62 rovides a numb
001780: 65 72 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 65 er of.. e
001790: 78 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 73 xternal commands
0017A0: 20 66 6F 72 20 65 72 61 73 69 6E 67 20 61 6E 64 for erasing and
0017B0: 20 72 65 6E 61 6D 69 6E 67 20 66 69 6C 65 73 20 renaming files
0017C0: 61 6E 64 20 20 72 65 64 69 72 65 63 74 69 6E 67 and redirecting
0017D0: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 63 61 the.. ca
0017E0: 73 73 65 74 74 65 20 66 69 72 6D 77 61 72 65 20 ssette firmware
0017F0: 72 6F 75 74 69 6E 65 73 2E 0D 0A 0D 0A 20 20 20 routines.....
001800: 20 20 20 20 50 72 6F 76 69 64 65 64 20 77 69 74 Provided wit
001810: 68 20 74 68 65 20 64 69 73 63 20 73 79 73 74 65 h the disc syste
001820: 6D 20 61 72 65 20 61 20 6E 75 6D 62 65 72 20 20 m are a number
001830: 6F 66 20 20 75 74 69 6C 69 74 79 20 20 70 72 6F of utility pro
001840: 67 72 61 6D 73 20 20 66 6F 72 0D 0A 20 20 20 20 grams for..
001850: 20 20 20 66 6F 72 6D 61 74 74 69 6E 67 20 20 61 formatting a
001860: 6E 64 20 20 63 6F 70 79 69 6E 67 20 20 64 69 73 nd copying dis
001870: 63 73 20 20 61 6E 64 20 20 66 6F 72 20 20 63 68 cs and for ch
001880: 61 6E 67 69 6E 67 20 20 20 76 61 72 69 6F 75 73 anging various
001890: 20 20 20 73 79 73 74 65 6D 0D 0A 20 20 20 20 20 system..
0018A0: 20 20 70 61 72 61 6D 65 74 65 72 73 2E 20 54 68 parameters. Th
0018B0: 65 73 65 20 61 6C 6C 20 72 75 6E 20 75 6E 64 65 ese all run unde
0018C0: 72 20 43 50 2F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 r CP/M.....
0018D0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
0018E0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
0018F0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
001900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001910: 70 61 67 65 20 31 2E 31 0D 0A 0D 0A 0D 0A 0D 0A page 1.1........
001920: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 2E 31 ...... 1.1
001930: 20 54 68 65 20 48 61 72 64 77 61 72 65 2E 0D 0A The Hardware...
001940: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 64 69 61 .. The dia
001950: 67 72 61 6D 20 6F 6E 20 74 68 65 20 66 6F 6C 6C gram on the foll
001960: 6F 77 69 6E 67 20 70 61 67 65 20 67 69 76 65 73 owing page gives
001970: 20 61 6E 20 69 6E 64 69 63 61 74 69 6F 6E 20 6F an indication o
001980: 66 20 74 68 65 20 64 69 66 66 65 72 65 6E 74 0D f the different.
001990: 0A 20 20 20 20 20 20 20 70 69 65 63 65 73 20 6F . pieces o
0019A0: 66 20 68 61 72 64 77 61 72 65 20 69 6E 20 74 68 f hardware in th
0019B0: 65 20 73 79 73 74 65 6D 20 61 6E 64 20 68 6F 77 e system and how
0019C0: 20 74 68 65 79 20 63 6F 6E 6E 65 63 74 20 74 6F they connect to
0019D0: 20 20 65 61 63 68 20 20 6F 74 68 65 72 2E 0D 0A each other...
0019E0: 20 20 20 20 20 20 20 46 6F 72 20 6D 6F 72 65 20 For more
0019F0: 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 6F 6E 20 68 information on h
001A00: 6F 77 20 74 68 65 20 68 61 72 64 77 61 72 65 20 ow the hardware
001A10: 77 6F 72 6B 73 20 73 65 65 20 20 41 70 70 65 6E works see Appen
001A20: 64 69 78 20 20 58 49 49 20 20 61 6E 64 0D 0A 20 dix XII and..
001A30: 20 20 20 20 20 20 74 68 65 20 72 65 6C 65 76 61 the releva
001A40: 6E 74 20 6D 61 6E 75 66 61 63 74 75 72 65 72 27 nt manufacturer'
001A50: 73 20 64 61 74 61 20 73 68 65 65 74 73 2E 0D 0A s data sheets...
001A60: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 53 .... The S
001A70: 79 73 74 65 6D 20 63 65 6E 74 72 65 73 20 61 72 ystem centres ar
001A80: 6F 75 6E 64 20 74 68 65 20 43 50 55 20 28 43 65 ound the CPU (Ce
001A90: 6E 74 72 61 6C 20 50 72 6F 63 65 73 73 69 6E 67 ntral Processing
001AA0: 20 55 6E 69 74 29 20 77 68 69 63 68 20 69 73 20 Unit) which is
001AB0: 61 0D 0A 20 20 20 20 20 20 20 5A 38 30 41 20 6D a.. Z80A m
001AC0: 69 63 72 6F 70 72 6F 63 65 73 73 6F 72 20 77 69 icroprocessor wi
001AD0: 74 68 20 61 20 34 4D 48 7A 20 63 6C 6F 63 6B 2E th a 4MHz clock.
001AE0: 20 4E 65 78 74 20 69 6E 20 69 6D 70 6F 72 74 61 Next in importa
001AF0: 6E 63 65 20 69 73 20 74 68 65 20 20 67 61 74 65 nce is the gate
001B00: 0D 0A 20 20 20 20 20 20 20 61 72 72 61 79 20 77 .. array w
001B10: 68 69 63 68 20 63 6F 6E 74 61 69 6E 73 20 20 6D hich contains m
001B20: 69 73 63 65 6C 6C 61 6E 65 6F 75 73 20 20 6C 6F iscellaneous lo
001B30: 67 69 63 20 20 74 6F 20 20 63 6F 6E 74 72 6F 6C gic to control
001B40: 20 20 6D 75 63 68 20 20 6F 66 20 20 74 68 65 0D much of the.
001B50: 0A 20 20 20 20 20 20 20 73 79 73 74 65 6D 2E 20 . system.
001B60: 49 6E 20 70 61 72 74 69 63 75 6C 61 72 2C 20 69 In particular, i
001B70: 74 20 63 6F 6E 74 72 6F 6C 73 20 69 6E 6B 20 63 t controls ink c
001B80: 6F 6C 6F 75 72 73 2C 20 73 63 72 65 65 6E 20 20 olours, screen
001B90: 6D 6F 64 65 20 20 61 6E 64 20 20 52 4F 4D 0D 0A mode and ROM..
001BA0: 20 20 20 20 20 20 20 65 6E 61 62 6C 69 6E 67 20 enabling
001BB0: 28 73 65 65 20 73 65 63 74 69 6F 6E 20 31 30 20 (see section 10
001BC0: 61 6E 64 20 61 70 70 65 6E 64 69 78 20 58 49 49 and appendix XII
001BD0: 29 2E 20 49 6E 20 20 63 6F 6E 6A 75 6E 63 74 69 ). In conjuncti
001BE0: 6F 6E 20 20 77 69 74 68 20 20 74 68 65 0D 0A 20 on with the..
001BF0: 20 20 20 20 20 20 43 52 54 43 20 28 43 61 74 68 CRTC (Cath
001C00: 6F 64 65 20 52 61 79 20 54 75 62 65 20 43 6F 6E ode Ray Tube Con
001C10: 74 72 6F 6C 6C 65 72 29 2C 20 77 68 69 63 68 20 troller), which
001C20: 69 73 20 61 20 20 36 38 34 35 20 20 63 68 69 70 is a 6845 chip
001C30: 2C 20 20 74 68 65 20 20 67 61 74 65 0D 0A 20 20 , the gate..
001C40: 20 20 20 20 20 61 72 72 61 79 20 67 65 6E 65 72 array gener
001C50: 61 74 65 20 74 68 65 20 76 69 64 65 6F 20 73 69 ate the video si
001C60: 67 6E 61 6C 20 66 6F 72 20 74 68 65 20 6D 6F 6E gnal for the mon
001C70: 69 74 6F 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 itor.......
001C80: 20 20 54 68 65 20 50 53 47 20 28 50 72 6F 67 72 The PSG (Progr
001C90: 61 6D 6D 61 62 6C 65 20 53 6F 75 6E 64 20 47 65 ammable Sound Ge
001CA0: 6E 65 72 61 74 6F 72 29 20 69 73 20 61 6E 20 41 nerator) is an A
001CB0: 59 2D 33 2D 38 39 32 2E 20 54 68 69 73 20 20 63 Y-3-892. This c
001CC0: 68 69 70 20 20 68 61 73 0D 0A 20 20 20 20 20 20 hip has..
001CD0: 20 74 68 72 65 65 20 63 68 61 6E 6E 65 6C 73 20 three channels
001CE0: 6F 66 20 73 6F 75 6E 64 20 67 65 6E 65 72 61 74 of sound generat
001CF0: 6F 72 2C 20 61 20 6E 6F 69 73 65 20 67 65 6E 65 or, a noise gene
001D00: 72 61 74 6F 72 2C 20 65 6E 76 65 6C 6F 70 65 20 rator, envelope
001D10: 63 6F 6E 74 72 6F 6C 0D 0A 20 20 20 20 20 20 20 control..
001D20: 66 6F 72 20 65 61 63 68 20 63 68 61 6E 6E 65 6C for each channel
001D30: 20 61 6E 64 20 20 61 6E 20 20 49 2F 4F 20 20 70 and an I/O p
001D40: 6F 72 74 2E 20 20 54 68 65 20 20 77 61 79 20 20 ort. The way
001D50: 74 68 65 20 20 73 6F 75 6E 64 20 20 67 65 6E 65 the sound gene
001D60: 72 61 74 69 6E 67 0D 0A 20 20 20 20 20 20 20 68 rating.. h
001D70: 61 72 64 77 61 72 65 20 69 73 20 75 73 65 64 20 ardware is used
001D80: 69 73 20 64 65 73 63 72 69 62 65 64 20 69 6E 20 is described in
001D90: 73 65 63 74 69 6F 6E 20 37 2E 20 54 68 65 20 49 section 7. The I
001DA0: 2F 4F 20 70 6F 72 74 20 69 73 20 20 75 73 65 64 /O port is used
001DB0: 20 20 66 6F 72 0D 0A 20 20 20 20 20 20 20 69 6E for.. in
001DC0: 70 75 74 20 6D 6F 64 65 20 74 6F 20 73 65 6E 73 put mode to sens
001DD0: 65 20 74 68 65 20 73 74 61 74 65 20 6F 66 20 74 e the state of t
001DE0: 68 65 20 6B 65 79 62 6F 61 72 64 20 61 6E 64 20 he keyboard and
001DF0: 6A 6F 79 73 74 69 63 6B 20 73 77 69 74 63 68 65 joystick switche
001E00: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s....... T
001E10: 68 65 20 46 44 43 20 28 46 6C 6F 70 70 79 20 44 he FDC (Floppy D
001E20: 69 73 63 20 43 6F 6E 74 72 6F 6C 6C 65 72 29 20 isc Controller)
001E30: 69 73 20 61 6E 20 4E 45 43 20 75 50 44 37 36 35 is an NEC uPD765
001E40: 41 20 63 68 69 70 2E 20 4F 6E 6C 79 20 74 77 6F A chip. Only two
001E50: 20 64 69 73 63 0D 0A 20 20 20 20 20 20 20 64 72 disc.. dr
001E60: 69 76 65 73 20 61 72 65 20 73 75 70 70 6F 72 74 ives are support
001E70: 65 64 2C 20 73 69 6E 63 65 20 74 68 65 20 55 53 ed, since the US
001E80: 31 20 6C 69 6E 65 20 66 72 6F 6D 20 74 68 65 20 1 line from the
001E90: 75 50 44 37 36 35 41 20 69 73 20 20 69 67 6E 6F uPD765A is igno
001EA0: 72 65 64 2E 0D 0A 20 20 20 20 20 20 20 54 68 69 red... Thi
001EB0: 73 20 72 65 73 75 6C 74 73 20 69 6E 20 74 68 65 s results in the
001EC0: 20 74 77 6F 20 64 69 73 63 20 64 72 69 76 65 73 two disc drives
001ED0: 20 62 65 69 6E 67 20 61 63 63 65 73 73 65 64 20 being accessed
001EE0: 61 73 20 64 72 69 76 65 73 20 30 20 20 61 6E 64 as drives 0 and
001EF0: 20 20 31 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 1.. and
001F00: 61 67 61 69 6E 20 61 73 20 32 20 61 6E 64 20 33 again as 2 and 3
001F10: 2E 20 54 68 65 20 46 44 43 20 73 75 70 70 6F 72 . The FDC suppor
001F20: 74 73 20 62 6F 74 68 20 73 69 6E 67 6C 65 20 20 ts both single
001F30: 61 6E 64 20 20 64 6F 75 62 6C 65 20 20 73 69 64 and double sid
001F40: 65 64 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 73 ed.. and s
001F50: 69 6E 67 6C 65 20 61 6E 64 20 64 6F 75 62 6C 65 ingle and double
001F60: 20 64 65 6E 73 69 74 79 20 6D 69 6E 69 2D 66 6C density mini-fl
001F70: 6F 70 70 79 20 64 69 73 63 20 64 72 69 76 65 73 oppy disc drives
001F80: 2E 20 4E 6F 74 65 20 20 74 68 61 74 20 20 74 68 . Note that th
001F90: 65 0D 0A 20 20 20 20 20 20 20 63 6C 6F 63 6B 20 e.. clock
001FA0: 66 72 65 71 75 65 6E 63 79 20 73 75 70 70 6C 69 frequency suppli
001FB0: 65 64 20 74 6F 20 74 68 65 20 75 50 44 37 36 35 ed to the uPD765
001FC0: 41 20 43 4C 4B 20 70 69 6E 20 69 73 20 20 34 4D A CLK pin is 4M
001FD0: 48 7A 20 20 72 61 74 68 65 72 20 20 74 68 61 6E Hz rather than
001FE0: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 38 4D 48 .. the 8MH
001FF0: 7A 20 75 73 65 64 20 77 69 74 68 20 6C 61 72 67 z used with larg
002000: 65 72 20 64 69 73 63 20 64 72 69 76 65 73 2E 0D er disc drives..
002010: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 61 63 68 ..... Each
002020: 20 64 69 73 63 20 64 72 69 76 65 20 74 61 6B 65 disc drive take
002030: 73 20 61 20 73 69 6E 67 6C 65 20 33 22 20 66 6C s a single 3" fl
002040: 6F 70 70 79 20 64 69 73 63 2E 20 45 69 74 68 65 oppy disc. Eithe
002050: 72 20 73 69 64 65 20 6F 66 20 74 68 65 20 64 69 r side of the di
002060: 73 63 0D 0A 20 20 20 20 20 20 20 6D 61 79 20 62 sc.. may b
002070: 65 20 75 73 65 64 2C 20 64 65 70 65 6E 64 69 6E e used, dependin
002080: 67 20 6F 6E 20 77 68 69 63 68 20 77 61 79 20 75 g on which way u
002090: 70 20 74 68 65 20 64 69 73 63 20 69 73 20 69 6E p the disc is in
0020A0: 73 65 72 74 65 64 20 20 69 6E 74 6F 20 20 74 68 serted into th
0020B0: 65 0D 0A 20 20 20 20 20 20 20 64 72 69 76 65 2E e.. drive.
0020C0: 20 54 68 65 20 64 69 73 63 20 69 6E 74 65 72 66 The disc interf
0020D0: 61 63 65 20 63 6F 6E 74 61 69 6E 73 20 61 20 31 ace contains a 1
0020E0: 36 4B 20 65 78 70 61 6E 73 69 6F 6E 20 52 4F 4D 6K expansion ROM
0020F0: 2C 20 20 38 4B 20 20 6F 66 20 20 77 68 69 63 68 , 8K of which
002100: 0D 0A 20 20 20 20 20 20 20 63 6F 6E 74 61 69 6E .. contain
002110: 73 20 74 68 65 20 64 69 73 63 20 64 72 69 76 69 s the disc drivi
002120: 6E 67 20 73 6F 66 74 77 61 72 65 2C 20 74 68 65 ng software, the
002130: 20 72 65 6D 61 69 6E 64 65 72 20 20 62 65 69 6E remainder bein
002140: 67 20 20 75 73 65 64 20 20 62 79 20 20 44 52 0D g used by DR.
002150: 0A 20 20 20 20 20 20 20 4C 4F 47 4F 2E 0D 0A 0D . LOGO....
002160: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 50 50 ... The PP
002170: 49 20 28 50 61 72 61 6C 6C 65 6C 20 50 65 72 69 I (Parallel Peri
002180: 70 68 65 72 61 6C 20 49 6E 74 65 72 66 61 63 65 pheral Interface
002190: 29 2C 20 77 68 69 63 68 20 69 73 20 20 61 6E 20 ), which is an
0021A0: 20 38 32 35 35 20 20 63 68 69 70 2C 20 20 69 73 8255 chip, is
0021B0: 0D 0A 20 20 20 20 20 20 20 75 73 65 64 20 74 6F .. used to
0021C0: 20 63 6F 6E 74 72 6F 6C 20 74 68 65 20 72 65 6D control the rem
0021D0: 61 69 6E 64 65 72 20 6F 66 20 74 68 65 20 73 79 ainder of the sy
0021E0: 73 74 65 6D 2E 20 49 74 20 68 61 73 20 74 68 72 stem. It has thr
0021F0: 65 65 20 70 6F 72 74 73 2E 20 20 50 6F 72 74 0D ee ports. Port.
002200: 0A 20 20 20 20 20 20 20 43 20 69 73 20 75 73 65 . C is use
002210: 64 20 61 73 20 69 6E 20 6F 75 74 70 75 74 20 70 d as in output p
002220: 6F 72 74 20 74 6F 20 63 6F 6E 74 72 6F 6C 20 74 ort to control t
002230: 68 65 20 63 61 73 73 65 74 74 65 20 72 65 63 6F he cassette reco
002240: 72 64 65 72 20 6D 6F 74 6F 72 2C 20 74 6F 0D 0A rder motor, to..
002250: 20 20 20 20 20 20 20 77 72 69 74 65 20 64 61 74 write dat
002260: 61 20 74 6F 20 74 68 65 20 63 61 73 73 65 74 74 a to the cassett
002270: 65 2C 20 74 6F 20 77 72 69 74 65 20 64 61 74 61 e, to write data
002280: 20 74 6F 20 74 68 65 20 63 61 73 73 65 74 74 65 to the cassette
002290: 2C 20 20 74 6F 20 20 73 74 72 6F 62 65 0D 0A 20 , to strobe..
0022A0: 20 20 20 20 20 20 64 61 74 61 20 69 6E 20 6F 72 data in or
0022B0: 20 6F 75 74 20 6F 66 20 74 68 65 20 50 53 47 20 out of the PSG
0022C0: 61 6E 64 20 74 6F 20 73 65 6C 65 63 74 20 72 6F and to select ro
0022D0: 77 73 20 6F 66 20 74 68 65 20 6B 65 79 62 6F 61 ws of the keyboa
0022E0: 72 64 2E 20 20 50 6F 72 74 20 20 42 0D 0A 20 20 rd. Port B..
0022F0: 20 20 20 20 20 69 73 20 75 73 65 64 20 61 73 20 is used as
002300: 61 6E 20 69 6E 70 75 74 20 70 6F 72 74 20 20 74 an input port t
002310: 6F 20 20 73 65 6E 73 65 20 20 74 68 65 20 20 66 o sense the f
002320: 72 61 6D 65 20 20 66 6C 79 62 61 63 6B 20 20 73 rame flyback s
002330: 69 67 6E 61 6C 2C 20 20 74 68 65 0D 0A 20 20 20 ignal, the..
002340: 20 20 20 20 43 65 6E 74 72 6F 6E 69 63 73 20 70 Centronics p
002350: 6F 72 74 20 62 75 73 79 20 73 69 67 6E 61 6C 20 ort busy signal
002360: 61 6E 64 20 76 61 72 69 6F 75 73 20 6F 70 74 69 and various opti
002370: 6F 6E 20 6C 69 6E 6B 73 20 61 6E 64 20 74 6F 20 on links and to
002380: 72 65 61 64 20 20 64 61 74 61 0D 0A 20 20 20 20 read data..
002390: 20 20 20 66 72 6F 6D 20 74 68 65 20 63 61 73 73 from the cass
0023A0: 65 74 74 65 2E 20 50 6F 72 74 20 41 20 69 73 20 ette. Port A is
0023B0: 75 73 65 64 20 74 6F 20 63 6F 6D 6D 75 6E 69 63 used to communic
0023C0: 61 74 65 20 77 69 74 68 20 74 68 65 20 50 53 47 ate with the PSG
0023D0: 20 20 61 6E 64 20 20 69 73 0D 0A 20 20 20 20 20 and is..
0023E0: 20 20 73 65 74 20 69 6E 74 6F 20 69 6E 70 75 74 set into input
0023F0: 20 6F 72 20 6F 75 74 70 75 74 20 6D 6F 64 65 20 or output mode
002400: 61 73 20 72 65 71 75 69 72 65 64 2E 0D 0A 0D 0A as required.....
002410: 0D 0A 20 20 20 20 20 20 20 41 63 63 65 73 73 65 .. Accesse
002420: 73 20 74 6F 20 6D 65 6D 6F 72 79 20 61 72 65 20 s to memory are
002430: 73 79 6E 63 68 72 6F 6E 69 7A 65 64 20 77 69 74 synchronized wit
002440: 68 20 74 68 65 20 76 69 64 65 6F 20 6C 6F 67 69 h the video logi
002450: 63 20 20 2D 20 20 74 68 65 79 20 20 61 72 65 0D c - they are.
002460: 0A 20 20 20 20 20 20 20 63 6F 6E 73 74 72 61 69 . constrai
002470: 6E 65 64 20 74 6F 20 6F 63 63 75 72 20 6F 6E 20 ned to occur on
002480: 6D 69 63 72 6F 73 65 63 6F 6E 64 20 62 6F 75 6E microsecond boun
002490: 64 61 72 69 65 73 2E 20 54 68 69 73 20 68 61 73 daries. This has
0024A0: 20 74 68 65 20 61 66 66 65 63 74 20 6F 66 0D 0A the affect of..
0024B0: 20 20 20 20 20 20 20 73 74 72 65 74 63 68 69 6E stretchin
0024C0: 67 20 65 61 63 68 20 5A 38 30 20 4D 20 63 79 63 g each Z80 M cyc
0024D0: 6C 65 20 28 6D 61 63 68 69 6E 65 20 63 79 63 6C le (machine cycl
0024E0: 65 29 20 74 6F 20 62 65 20 61 20 6D 75 6C 74 69 e) to be a multi
0024F0: 70 6C 65 20 20 6F 66 20 20 34 20 20 54 0D 0A 20 ple of 4 T..
002500: 20 20 20 20 20 20 73 74 61 74 65 73 20 28 63 6C states (cl
002510: 6F 63 6B 20 63 79 63 6C 65 73 29 2E 20 49 6E 20 ock cycles). In
002520: 70 72 61 63 74 69 63 65 20 74 68 69 73 20 61 6C practice this al
002530: 74 65 72 73 20 74 68 65 20 69 6E 73 74 72 75 63 ters the instruc
002540: 74 69 6F 6E 20 20 74 69 6D 69 6E 67 0D 0A 20 20 tion timing..
002550: 20 20 20 20 20 73 6F 20 74 68 61 74 20 74 68 65 so that the
002560: 20 65 66 66 65 63 74 69 76 65 20 63 6C 6F 63 6B effective clock
002570: 20 72 61 74 65 20 69 73 20 61 70 70 72 6F 78 69 rate is approxi
002580: 6D 61 74 65 6C 79 20 33 2E 33 4D 48 7A 2E 0D 0A mately 3.3MHz...
002590: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
0025A0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
0025B0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
0025C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0025D0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
0025E0: 31 2E 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 1.2.............
0025F0: 0A 20 20 20 20 20 20 20 20 20 20 5F 5F 5F 5F 5F . _____
002600: 5F 5F 5F 5F 20 20 20 20 20 20 20 20 20 20 5F 5F ____ __
002610: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
002620: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
002630: 5F 5F 0D 0A 20 20 20 20 20 20 20 20 20 7C 20 20 __.. |
002640: 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 |
002650: 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
002660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002670: 20 20 20 20 20 7C 3C 2D 2D 0D 0A 20 20 20 20 20 |<--..
002680: 20 20 20 20 7C 20 4D 6F 6E 69 74 6F 72 20 7C 3C | Monitor |<
002690: 2D 2D 2D 2D 2D 2D 2D 7C 20 20 20 20 20 20 20 20 -------|
0026A0: 20 20 20 47 61 74 65 20 41 72 72 61 79 20 20 20 Gate Array
0026B0: 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 |
0026C0: 7C 0D 0A 20 20 20 20 20 20 20 20 20 7C 5F 5F 5F |.. |___
0026D0: 5F 5F 5F 5F 5F 5F 7C 20 20 20 20 20 20 20 20 7C ______| |
0026E0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
0026F0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
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: 5F 5F 5F 5F 7C 20 20 20 7C 0D 0A 20 20 20 20 20 ____| |..
002810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002820: 20 20 20 20 20 20 20 20 20 20 5E 20 20 20 20 20 ^
002830: 20 20 20 20 20 20 20 5E 20 20 20 20 20 20 20 20 ^
002840: 20 20 20 20 20 20 20 20 5E 20 20 20 20 20 20 20 ^
002850: 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 |..
002860: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002870: 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 7C | |
002880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002890: 7C 20 20 20 20 20 20 20 7C 0D 0A 20 20 20 20 20 | |..
0028A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0028B0: 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 |
0028C0: 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 |
0028D0: 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 |
0028E0: 7C 0D 0A 20 20 20 20 20 20 20 20 20 5F 5F 5F 5F |.. ____
0028F0: 5F 5F 5F 5F 5F 5F 20 20 20 20 20 20 20 20 5F 5F ______ __
002900: 5F 5F 7C 5F 5F 5F 20 20 20 20 20 20 5F 5F 5F 7C __|___ ___|
002910: 5F 5F 5F 5F 5F 20 20 20 20 20 20 20 20 5F 5F 5F _____ ___
002920: 7C 5F 5F 5F 5F 20 20 20 7C 0D 0A 20 20 20 20 20 |____ |..
002930: 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 7C 20 | |
002940: 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 7C 20 | |
002950: 20 20 20 7C 20 20 20 20 20 20 20 20 20 7C 20 20 | |
002960: 20 20 20 20 7C 20 20 20 20 20 20 20 20 7C 20 20 | |
002970: 7C 0D 0A 20 20 20 20 20 20 20 20 7C 20 53 70 65 |.. | Spe
002980: 61 6B 65 72 73 20 7C 20 20 20 20 20 20 7C 20 20 akers | |
002990: 43 52 54 43 20 20 7C 3C 2D 2D 3E 7C 20 20 20 20 CRTC |<-->|
0029A0: 20 20 20 20 20 7C 3C 2D 2D 2D 2D 3E 7C 20 20 20 |<---->|
0029B0: 52 41 4D 20 20 7C 20 20 7C 0D 0A 20 20 20 20 20 RAM | |..
0029C0: 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 20 |__________|
0029D0: 20 20 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 7C 20 |________|
0029E0: 20 20 20 7C 20 20 20 20 20 20 20 20 20 7C 20 20 | |
0029F0: 20 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 7C 20 20 |________|
002A00: 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 |..
002A10: 5E 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ^
002A20: 20 7C 20 20 20 20 20 20 20 20 20 7C 20 20 20 43 | | C
002A30: 50 55 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 PU |
002A40: 20 20 20 20 20 20 20 20 7C 0D 0A 20 20 20 20 20 |..
002A50: 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 |
002A60: 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 |
002A70: 20 20 20 7C 20 20 20 20 20 20 20 20 20 7C 20 20 | |
002A80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002A90: 7C 0D 0A 20 20 20 20 20 20 20 20 5F 5F 5F 5F 5F |.. _____
002AA0: 7C 5F 5F 20 20 20 20 20 20 20 20 20 20 5F 5F 5F |__ ___
002AB0: 5F 56 5F 5F 5F 5F 20 20 20 20 20 7C 20 20 20 20 _V____ |
002AC0: 20 20 20 20 20 7C 20 20 20 20 20 20 20 5F 5F 5F | ___
002AD0: 5F 5F 5F 5F 5F 20 20 20 7C 0D 0A 20 20 20 20 20 _____ |..
002AE0: 20 20 7C 20 20 20 20 20 20 20 20 7C 20 20 20 20 | |
002AF0: 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 7C 20 | |
002B00: 20 20 20 7C 20 20 20 20 20 20 20 20 20 7C 20 20 | |
002B10: 20 20 20 20 7C 20 20 20 20 20 20 20 20 7C 20 20 | |
002B20: 7C 0D 0A 20 20 20 20 20 20 20 7C 20 20 50 53 47 |.. | PSG
002B30: 20 20 20 7C 3C 2D 2D 2D 2D 2D 2D 3E 7C 20 20 20 |<------>|
002B40: 20 20 20 20 20 20 7C 3C 2D 2D 3E 7C 20 20 20 20 |<-->|
002B50: 20 20 20 20 20 7C 3C 2D 2D 2D 2D 2D 7C 20 20 52 |<-----| R
002B60: 4F 4D 20 20 20 7C 3C 2D 7C 0D 0A 20 20 20 20 20 OM |<-|..
002B70: 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 7C 20 20 20 20 |________|
002B80: 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 7C 20 | |
002B90: 20 20 20 7C 20 20 20 20 20 20 20 20 20 7C 20 20 | |
002BA0: 20 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 7C 0D 0A |________|..
002BB0: 20 20 20 20 20 20 20 20 20 20 20 5E 20 20 20 20 ^
002BC0: 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 |
002BD0: 20 20 20 7C 20 20 20 20 7C 20 20 20 20 20 20 20 | |
002BE0: 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 |..
002BF0: 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 | |
002C00: 20 50 50 49 20 20 20 20 7C 20 20 20 20 7C 5F 5F PPI | |__
002C10: 5F 5F 5F 5F 5F 5F 5F 7C 0D 0A 20 20 20 20 20 20 _______|..
002C20: 20 20 5F 5F 5F 7C 5F 5F 5F 5F 5F 5F 20 20 20 20 ___|______
002C30: 20 20 20 7C 20 20 20 20 20 20 20 20 20 7C 20 20 | |
002C40: 20 20 20 20 20 20 20 7C 20 20 20 5E 5F 5F 5F 5F | ^____
002C50: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 0D 0A ______________..
002C60: 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 |
002C70: 20 20 7C 20 20 20 20 20 20 7C 20 20 20 20 20 20 | |
002C80: 20 20 20 7C 20 20 20 20 20 5F 5F 5F 5F 56 5F 5F | ____V__
002C90: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 20 20 20 20 ____________
002CA0: 5F 5F 5F 5F 7C 5F 5F 5F 5F 0D 0A 20 20 20 20 20 ____|____..
002CB0: 20 20 7C 20 4B 65 79 62 6F 61 72 64 20 7C 20 20 | Keyboard |
002CC0: 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 7C 20 | |
002CD0: 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 |
002CE0: 20 20 20 20 20 20 20 7C 20 20 7C 20 20 20 20 20 | |
002CF0: 20 20 20 20 7C 0D 0A 20 20 20 20 20 20 20 7C 20 |.. |
002D00: 20 61 6E 64 20 20 20 20 20 7C 3C 2D 2D 2D 2D 3E and |<---->
002D10: 7C 20 20 20 20 20 20 20 20 20 7C 3C 2D 2D 3E 7C | |<-->|
002D20: 20 20 20 43 65 6E 74 72 6F 6E 69 63 73 20 50 6F Centronics Po
002D30: 72 74 20 7C 20 20 7C 20 20 20 46 44 43 20 20 20 rt | | FDC
002D40: 7C 0D 0A 20 20 20 20 20 20 20 7C 4A 6F 79 73 74 |.. |Joyst
002D50: 69 63 6B 73 20 7C 20 20 20 20 20 20 7C 20 20 20 icks | |
002D60: 20 20 20 20 20 20 7C 20 20 20 20 7C 20 20 20 20 | |
002D70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C |
002D80: 20 20 7C 20 20 20 20 20 20 20 20 20 7C 0D 0A 20 | |..
002D90: 20 20 20 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F |_________
002DA0: 5F 7C 20 20 20 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F _| |_______
002DB0: 5F 5F 7C 20 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F __| |________
002DC0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 20 20 7C 5F ___________| |_
002DD0: 5F 5F 5F 5F 5F 5F 5F 5F 7C 0D 0A 20 20 20 20 20 ________|..
002DE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002DF0: 20 20 20 20 20 20 20 20 20 5E 20 20 20 20 20 20 ^
002E00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002E10: 20 20 20 20 20 20 20 20 20 20 20 20 20 5E 0D 0A ^..
002E20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002E30: 20 20 20 20 20 20 20 20 20 20 5F 5F 5F 5F 56 5F ____V_
002E40: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 20 20 20 _____________
002E50: 20 20 20 20 20 20 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F __________
002E60: 5F 5F 56 5F 0D 0A 20 20 20 20 20 20 20 20 20 20 __V_..
002E70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C |
002E80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002E90: 20 20 20 7C 20 20 20 20 20 20 20 7C 20 20 20 20 | |
002EA0: 20 20 20 20 20 20 20 20 20 20 7C 0D 0A 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 7C 20 43 61 73 73 65 74 74 65 | Cassette
002ED0: 20 52 65 63 6F 72 64 65 72 20 7C 20 20 20 20 20 Recorder |
002EE0: 20 20 7C 20 20 44 69 73 63 20 44 72 69 76 65 73 | Disc Drives
002EF0: 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 |..
002F00: 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 5F 5F |__
002F10: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
002F20: 5F 7C 20 20 20 20 20 20 20 7C 5F 5F 5F 5F 5F 5F _| |______
002F30: 5F 5F 5F 5F 5F 5F 5F 5F 7C 0D 0A 0D 0A 0D 0A 0D ________|.......
002F40: 0A 0D 0A 20 20 20 20 20 20 20 31 2E 32 20 54 68 ... 1.2 Th
002F50: 65 20 44 69 76 69 73 69 6F 6E 20 6F 66 20 74 68 e Division of th
002F60: 65 20 46 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A 0D e Firmware......
002F70: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
002F80: 46 69 72 6D 77 61 72 65 20 69 73 20 73 70 6C 69 Firmware is spli
002F90: 74 20 69 6E 74 6F 20 27 70 61 63 6B 73 27 20 65 t into 'packs' e
002FA0: 61 63 68 20 64 65 61 6C 69 6E 67 20 77 69 74 68 ach dealing with
002FB0: 20 61 20 70 61 72 74 69 63 75 6C 61 72 20 70 61 a particular pa
002FC0: 72 74 0D 0A 20 20 20 20 20 20 20 6F 66 20 74 68 rt.. of th
002FD0: 65 20 73 79 73 74 65 6D 2C 20 75 73 75 61 6C 6C e system, usuall
002FE0: 79 20 61 20 68 61 72 64 77 61 72 65 20 64 65 76 y a hardware dev
002FF0: 69 63 65 2E 20 45 61 63 68 20 70 61 63 6B 20 68 ice. Each pack h
003000: 61 73 20 61 20 20 73 65 63 74 69 6F 6E 20 20 6F as a section o
003010: 66 0D 0A 20 20 20 20 20 20 20 74 68 69 73 20 6D f.. this m
003020: 61 6E 75 61 6C 20 64 65 76 6F 74 65 64 20 74 6F anual devoted to
003030: 20 69 74 20 77 68 65 72 65 20 69 74 73 20 6F 70 it where its op
003040: 65 72 61 74 69 6F 6E 20 69 73 20 65 78 70 6C 61 eration is expla
003050: 69 6E 65 64 20 69 6E 20 20 64 65 74 61 69 6C 2E ined in detail.
003060: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ........ T
003070: 68 65 20 73 79 73 74 65 6D 20 63 6F 6D 70 6F 6E he system compon
003080: 65 6E 74 73 20 61 6E 64 20 74 68 65 69 72 20 61 ents and their a
003090: 73 73 6F 63 69 61 74 65 64 20 70 61 63 6B 73 20 ssociated packs
0030A0: 61 72 65 3A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 are:..........
0030B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4B 65 Ke
0030C0: 79 62 6F 61 72 64 3A 20 20 20 20 20 20 20 20 20 yboard:
0030D0: 20 20 4B 65 79 20 4D 61 6E 61 67 65 72 2E 0D 0A Key Manager...
0030E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0030F0: 53 63 72 65 65 6E 3A 20 20 20 20 20 20 20 20 20 Screen:
003100: 20 20 20 20 54 65 78 74 20 56 44 55 2C 20 47 72 Text VDU, Gr
003110: 61 70 68 69 63 73 20 56 44 55 2C 20 53 63 72 65 aphics VDU, Scre
003120: 65 6E 20 50 61 63 6B 2E 0D 0A 20 20 20 20 20 20 en Pack...
003130: 20 20 20 20 20 20 20 20 20 20 43 61 73 73 65 74 Casset
003140: 74 65 2F 44 69 73 63 3A 20 20 20 20 20 20 43 61 te/Disc: Ca
003150: 73 73 65 74 74 65 20 4D 61 6E 61 67 65 72 2F 41 ssette Manager/A
003160: 4D 53 44 4F 53 2E 0D 0A 20 20 20 20 20 20 20 20 MSDOS...
003170: 20 20 20 20 20 20 20 20 53 6F 75 6E 64 3A 20 20 Sound:
003180: 20 20 20 20 20 20 20 20 20 20 20 20 53 6F 75 6E Soun
003190: 64 20 4D 61 6E 61 67 65 72 2E 0D 0A 20 20 20 20 d Manager...
0031A0: 20 20 20 20 20 20 20 20 20 20 20 20 4F 70 65 72 Oper
0031B0: 61 74 69 6E 67 20 53 79 73 74 65 6D 3A 20 20 20 ating System:
0031C0: 4B 65 72 6E 65 6C 2C 20 4D 61 63 68 69 6E 65 20 Kernel, Machine
0031D0: 50 61 63 6B 2C 20 4A 75 6D 70 65 72 2E 0D 0A 0D Pack, Jumper....
0031E0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
0031F0: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
003200: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
003210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003220: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
003230: 20 31 2E 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 1.3............
003240: 0D 0A 20 20 20 20 20 20 20 61 2E 20 4B 65 79 20 .. a. Key
003250: 4D 61 6E 61 67 65 72 0D 0A 0D 0A 20 20 20 20 20 Manager....
003260: 20 20 54 68 65 20 4B 65 79 20 4D 61 6E 61 67 65 The Key Manage
003270: 72 20 69 73 20 6D 6F 72 65 20 66 75 6C 6C 79 20 r is more fully
003280: 64 65 73 63 72 69 62 65 64 20 69 6E 20 73 65 63 described in sec
003290: 74 69 6F 6E 20 33 2E 20 20 49 74 20 20 64 65 61 tion 3. It dea
0032A0: 6C 73 20 20 77 69 74 68 0D 0A 20 20 20 20 20 20 ls with..
0032B0: 20 73 63 61 6E 6E 69 6E 67 20 74 68 65 20 6B 65 scanning the ke
0032C0: 79 62 6F 61 72 64 2C 20 67 65 6E 65 72 61 74 69 yboard, generati
0032D0: 6E 67 20 63 68 61 72 61 63 74 65 72 73 2C 20 66 ng characters, f
0032E0: 75 6E 63 74 69 6F 6E 20 20 6B 65 79 73 2C 20 20 unction keys,
0032F0: 74 65 73 74 69 6E 67 0D 0A 20 20 20 20 20 20 20 testing..
003300: 66 6F 72 20 62 72 65 61 6B 20 61 6E 64 20 73 63 for break and sc
003310: 61 6E 6E 69 6E 67 20 74 68 65 20 6A 6F 79 73 74 anning the joyst
003320: 69 63 6B 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 icks.......
003330: 20 20 62 2E 20 54 65 78 74 20 56 44 55 0D 0A 0D b. Text VDU...
003340: 0A 20 20 20 20 20 20 20 54 68 65 20 54 65 78 74 . The Text
003350: 20 56 44 55 20 69 73 20 6D 6F 72 65 20 66 75 6C VDU is more ful
003360: 6C 79 20 6F 75 74 6C 69 6E 65 64 20 69 6E 20 73 ly outlined in s
003370: 65 63 74 69 6F 6E 20 34 2E 20 49 74 20 64 65 61 ection 4. It dea
003380: 6C 73 20 77 69 74 68 20 70 75 74 74 69 6E 67 0D ls with putting.
003390: 0A 20 20 20 20 20 20 20 63 68 61 72 61 63 74 65 . characte
0033A0: 72 73 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E rs on the screen
0033B0: 2C 20 74 68 65 20 63 75 72 73 6F 72 20 61 6E 64 , the cursor and
0033C0: 20 6F 62 65 79 69 6E 67 20 63 6F 6E 74 72 6F 6C obeying control
0033D0: 20 63 6F 64 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 codes.......
0033E0: 20 20 20 20 63 2E 20 47 72 61 70 68 69 63 73 20 c. Graphics
0033F0: 56 44 55 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 VDU.... Th
003400: 65 20 47 72 61 70 68 69 63 73 20 56 44 55 20 69 e Graphics VDU i
003410: 73 20 6D 6F 72 65 20 66 75 6C 6C 79 20 70 72 65 s more fully pre
003420: 73 65 6E 74 65 64 20 69 6E 20 73 65 63 74 69 6F sented in sectio
003430: 6E 20 35 2E 20 49 74 20 20 64 65 61 6C 73 20 20 n 5. It deals
003440: 77 69 74 68 0D 0A 20 20 20 20 20 20 20 70 6C 6F with.. plo
003450: 74 74 69 6E 67 20 70 6F 69 6E 74 73 2C 20 74 65 tting points, te
003460: 73 74 69 6E 67 20 70 6F 69 6E 74 73 2C 20 64 72 sting points, dr
003470: 61 77 69 6E 67 20 6C 69 6E 65 73 20 61 6E 64 20 awing lines and
003480: 20 66 69 6C 6C 69 6E 67 20 20 61 72 65 61 73 20 filling areas
003490: 20 6F 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 20 on.. the
0034A0: 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 screen.......
0034B0: 20 20 20 20 64 2E 20 53 63 72 65 65 6E 20 50 61 d. Screen Pa
0034C0: 63 6B 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ck.... The
0034D0: 20 53 63 72 65 65 6E 20 50 61 63 6B 20 69 73 20 Screen Pack is
0034E0: 6D 6F 72 65 20 66 75 6C 6C 79 20 64 65 74 61 69 more fully detai
0034F0: 6C 65 64 20 69 6E 20 73 65 63 74 69 6F 6E 20 36 led in section 6
003500: 2E 20 49 74 20 69 6E 74 65 72 66 61 63 65 73 20 . It interfaces
003510: 74 68 65 0D 0A 20 20 20 20 20 20 20 54 65 78 74 the.. Text
003520: 20 61 6E 64 20 47 72 61 70 68 69 63 73 20 56 44 and Graphics VD
003530: 55 73 20 77 69 74 68 20 74 68 65 20 73 63 72 65 Us with the scre
003540: 65 6E 20 68 61 72 64 77 61 72 65 20 61 6E 64 20 en hardware and
003550: 64 65 61 6C 73 20 77 69 74 68 20 61 73 70 65 63 deals with aspec
003560: 74 73 0D 0A 20 20 20 20 20 20 20 6F 66 20 74 68 ts.. of th
003570: 65 20 73 63 72 65 65 6E 20 74 68 61 74 20 61 66 e screen that af
003580: 66 65 63 74 20 62 6F 74 68 20 6F 66 20 74 68 65 fect both of the
003590: 73 65 20 70 61 63 6B 73 2C 20 73 75 63 68 20 61 se packs, such a
0035A0: 73 20 73 63 72 65 65 6E 20 6D 6F 64 65 20 20 6F s screen mode o
0035B0: 72 0D 0A 20 20 20 20 20 20 20 69 6E 6B 20 63 6F r.. ink co
0035C0: 6C 6F 75 72 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 lours.....
0035D0: 20 65 2E 20 53 6F 75 6E 64 20 4D 61 6E 61 67 65 e. Sound Manage
0035E0: 72 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 r.... The
0035F0: 53 6F 75 6E 64 20 4D 61 6E 61 67 65 72 20 69 73 Sound Manager is
003600: 20 6D 6F 72 65 20 66 75 6C 6C 79 20 64 69 73 63 more fully disc
003610: 75 73 73 65 64 20 69 6E 20 73 65 63 74 69 6F 6E ussed in section
003620: 20 37 2E 20 49 74 20 64 65 61 6C 73 20 20 77 69 7. It deals wi
003630: 74 68 0D 0A 20 20 20 20 20 20 20 71 75 65 75 69 th.. queui
003640: 6E 67 2C 20 65 6E 76 65 6C 6F 70 69 6E 67 2C 20 ng, enveloping,
003650: 73 79 6E 63 68 72 6F 6E 69 7A 69 6E 67 20 61 6E synchronizing an
003660: 64 20 67 65 6E 65 72 61 74 69 6E 67 20 73 6F 75 d generating sou
003670: 6E 64 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 66 nds..... f
003680: 2E 20 43 61 73 73 65 74 74 65 20 4D 61 6E 61 67 . Cassette Manag
003690: 65 72 2F 41 4D 53 44 4F 53 0D 0A 0D 0A 20 20 20 er/AMSDOS....
0036A0: 20 20 20 20 54 68 65 20 43 61 73 73 65 74 74 65 The Cassette
0036B0: 20 4D 61 6E 61 67 65 72 20 69 73 20 6D 6F 72 65 Manager is more
0036C0: 20 66 75 6C 6C 79 20 65 78 70 6C 61 69 6E 65 64 fully explained
0036D0: 20 69 6E 20 73 65 63 74 69 6F 6E 20 20 38 2E 20 in section 8.
0036E0: 20 49 74 20 20 64 65 61 6C 73 0D 0A 20 20 20 20 It deals..
0036F0: 20 20 20 77 69 74 68 20 72 65 61 64 69 6E 67 20 with reading
003700: 66 72 6F 6D 20 74 61 70 65 2C 20 77 72 69 74 69 from tape, writi
003710: 6E 67 20 74 6F 20 74 61 70 65 20 61 6E 64 20 63 ng to tape and c
003720: 61 73 73 65 74 74 65 20 6D 6F 74 6F 72 20 63 6F assette motor co
003730: 6E 74 72 6F 6C 2E 0D 0A 0D 0A 20 20 20 20 20 20 ntrol.....
003740: 20 41 4D 53 44 4F 53 20 69 73 20 65 78 70 6C 61 AMSDOS is expla
003750: 69 6E 65 64 20 6D 6F 72 65 20 66 75 6C 6C 79 20 ined more fully
003760: 69 6E 20 73 65 63 74 69 6F 6E 20 39 2E 20 20 49 in section 9. I
003770: 74 20 20 64 65 61 6C 73 20 20 77 69 74 68 20 20 t deals with
003780: 72 65 61 64 69 6E 67 0D 0A 20 20 20 20 20 20 20 reading..
003790: 66 72 6F 6D 20 64 69 73 63 2C 20 77 72 69 74 69 from disc, writi
0037A0: 6E 67 20 74 6F 20 64 69 73 63 20 61 6E 64 20 74 ng to disc and t
0037B0: 68 65 20 64 69 73 63 20 6D 6F 74 6F 72 20 63 6F he disc motor co
0037C0: 6E 74 72 6F 6C 2E 0D 0A 0D 0A 20 20 20 20 20 20 ntrol.....
0037D0: 20 67 2E 20 4B 65 72 6E 65 6C 0D 0A 0D 0A 20 20 g. Kernel....
0037E0: 20 20 20 20 20 54 68 65 20 4B 65 72 6E 65 6C 20 The Kernel
0037F0: 69 73 20 6D 6F 72 65 20 66 75 6C 6C 79 20 64 65 is more fully de
003800: 73 63 72 69 62 65 64 20 69 6E 20 73 65 63 74 69 scribed in secti
003810: 6F 6E 73 20 32 2C 20 31 30 2C 20 31 31 20 61 6E ons 2, 10, 11 an
003820: 64 20 31 32 2E 20 49 74 20 69 73 0D 0A 20 20 20 d 12. It is..
003830: 20 20 20 20 74 68 65 20 68 65 61 72 74 20 6F 66 the heart of
003840: 20 74 68 65 20 6F 70 65 72 61 74 69 6E 67 20 73 the operating s
003850: 79 73 74 65 6D 20 61 6E 64 20 64 65 61 6C 73 20 ystem and deals
003860: 77 69 74 68 20 20 69 6E 74 65 72 72 75 70 74 73 with interrupts
003870: 2C 20 20 65 76 65 6E 74 73 2C 0D 0A 20 20 20 20 , events,..
003880: 20 20 20 73 65 6C 65 63 74 69 6E 67 20 52 4F 4D selecting ROM
003890: 73 20 61 6E 64 20 72 75 6E 6E 69 6E 67 20 70 72 s and running pr
0038A0: 6F 67 72 61 6D 73 2E 0D 0A 0D 0A 20 20 20 20 20 ograms.....
0038B0: 20 20 68 2E 20 4D 61 63 68 69 6E 65 20 50 61 63 h. Machine Pac
0038C0: 6B 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 k.... The
0038D0: 4D 61 63 68 69 6E 65 20 50 61 63 6B 20 69 73 20 Machine Pack is
0038E0: 6D 6F 72 65 20 66 75 6C 6C 79 20 64 6F 63 75 6D more fully docum
0038F0: 65 6E 74 65 64 20 69 6E 20 73 65 63 74 69 6F 6E ented in section
003900: 20 31 33 2E 20 49 74 20 64 65 61 6C 73 20 77 69 13. It deals wi
003910: 74 68 0D 0A 20 20 20 20 20 20 20 74 68 65 20 70 th.. the p
003920: 72 69 6E 74 65 72 20 61 6E 64 20 74 68 65 20 6C rinter and the l
003930: 6F 77 20 6C 65 76 65 6C 20 64 72 69 76 69 6E 67 ow level driving
003940: 20 6F 66 20 74 68 65 20 68 61 72 64 77 61 72 65 of the hardware
003950: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 69 2E 20 4A ..... i. J
003960: 75 6D 70 65 72 0D 0A 0D 0A 20 20 20 20 20 20 20 umper....
003970: 4A 75 6D 70 65 72 2C 20 6F 72 20 72 61 74 68 65 Jumper, or rathe
003980: 72 2C 20 74 68 65 20 6D 61 69 6E 20 66 69 72 6D r, the main firm
003990: 77 61 72 65 20 6A 75 6D 70 62 6C 6F 63 6B 20 69 ware jumpblock i
0039A0: 73 20 20 6C 69 73 74 65 64 20 20 69 6E 20 20 73 s listed in s
0039B0: 65 63 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 31 ection.. 1
0039C0: 34 2E 20 54 68 65 20 65 6E 74 72 69 65 73 20 69 4. The entries i
0039D0: 6E 20 74 68 65 20 6A 75 6D 70 62 6C 6F 63 6B 20 n the jumpblock
0039E0: 61 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6E are described in
0039F0: 20 20 64 65 74 61 69 6C 20 20 69 6E 20 20 73 65 detail in se
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: 63 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 31 35 ction.. 15
003B10: 2E 20 4A 75 6D 70 65 72 20 73 65 74 73 20 75 70 . Jumper sets up
003B20: 20 74 68 65 20 66 69 72 6D 77 61 72 65 20 6A 75 the firmware ju
003B30: 6D 70 62 6C 6F 63 6B 2E 0D 0A 0D 0A 0D 0A 0D 0A mpblock.........
003B40: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
003B50: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
003B60: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
003B70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003B80: 20 20 20 20 20 70 61 67 65 20 31 2E 34 0D 0A 0D page 1.4...
003B90: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
003BA0: 20 20 31 2E 33 20 43 6F 6E 74 72 6F 6C 6C 69 6E 1.3 Controllin
003BB0: 67 20 74 68 65 20 46 69 72 6D 77 61 72 65 2E 0D g the Firmware..
003BC0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 69 ... The fi
003BD0: 72 6D 77 61 72 65 20 69 73 20 63 6F 6E 74 72 6F rmware is contro
003BE0: 6C 6C 65 64 20 62 79 20 20 74 68 65 20 20 75 73 lled by the us
003BF0: 65 72 20 20 63 61 6C 6C 69 6E 67 20 20 70 75 62 er calling pub
003C00: 6C 69 73 68 65 64 20 20 72 6F 75 74 69 6E 65 73 lished routines
003C10: 0D 0A 20 20 20 20 20 20 20 72 61 74 68 65 72 20 .. rather
003C20: 74 68 61 6E 20 62 79 20 74 68 65 20 75 73 65 72 than by the user
003C30: 20 73 65 74 74 69 6E 67 20 74 68 65 20 76 61 6C setting the val
003C40: 75 65 73 20 6F 66 20 73 79 73 74 65 6D 20 20 76 ues of system v
003C50: 61 72 69 61 62 6C 65 73 2E 20 20 54 68 69 73 0D ariables. This.
003C60: 0A 20 20 20 20 20 20 20 77 69 6C 6C 20 61 6C 6C . will all
003C70: 6F 77 20 74 68 65 20 66 69 72 6D 77 61 72 65 27 ow the firmware'
003C80: 73 20 76 61 72 69 61 62 6C 65 20 6C 61 79 6F 75 s variable layou
003C90: 74 20 74 6F 20 62 65 20 63 68 61 6E 67 65 64 20 t to be changed
003CA0: 69 6E 20 6D 61 6A 6F 72 20 20 77 61 79 73 0D 0A in major ways..
003CB0: 20 20 20 20 20 20 20 77 69 74 68 6F 75 74 20 74 without t
003CC0: 68 65 20 75 73 65 72 20 62 65 69 6E 67 20 61 66 he user being af
003CD0: 66 65 63 74 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 fected.....
003CE0: 20 20 54 68 65 20 61 64 64 72 65 73 73 65 73 20 The addresses
003CF0: 6F 66 20 74 68 65 20 72 6F 75 74 69 6E 65 73 20 of the routines
003D00: 74 68 65 20 75 73 65 72 20 20 69 73 20 20 74 6F the user is to
003D10: 20 20 63 61 6C 6C 20 20 6E 65 65 64 20 20 74 6F call need to
003D20: 20 20 72 65 6D 61 69 6E 0D 0A 20 20 20 20 20 20 remain..
003D30: 20 63 6F 6E 73 74 61 6E 74 20 69 66 20 74 68 65 constant if the
003D40: 20 20 66 69 72 6D 77 61 72 65 20 20 69 73 20 20 firmware is
003D50: 61 6C 74 65 72 65 64 2E 20 20 54 68 69 73 20 20 altered. This
003D60: 69 73 20 20 61 63 68 69 65 76 65 64 20 20 62 79 is achieved by
003D70: 20 20 75 73 69 6E 67 0D 0A 20 20 20 20 20 20 20 using..
003D80: 6A 75 6D 70 62 6C 6F 63 6B 73 20 28 73 65 65 20 jumpblocks (see
003D90: 62 65 6C 6F 77 29 2E 0D 0A 0D 0A 20 20 20 20 20 below).....
003DA0: 20 20 54 68 65 20 61 64 76 61 6E 74 61 67 65 20 The advantage
003DB0: 6F 66 20 61 20 72 6F 75 74 69 6E 65 20 69 6E 74 of a routine int
003DC0: 65 72 66 61 63 65 20 69 73 20 74 68 61 74 20 69 erface is that i
003DD0: 74 20 20 61 6C 6C 6F 77 73 20 20 61 20 20 6E 75 t allows a nu
003DE0: 6D 62 65 72 20 20 6F 66 0D 0A 20 20 20 20 20 20 mber of..
003DF0: 20 64 69 66 66 65 72 65 6E 74 20 73 79 73 74 65 different syste
003E00: 6D 20 20 76 61 72 69 61 62 6C 65 73 20 20 74 6F m variables to
003E10: 20 20 62 65 20 20 61 6C 74 65 72 65 64 20 20 62 be altered b
003E20: 79 20 20 74 68 65 20 20 66 69 72 6D 77 61 72 65 y the firmware
003E30: 20 20 69 6E 20 20 61 0D 0A 20 20 20 20 20 20 20 in a..
003E40: 63 6F 6E 73 69 73 74 65 6E 74 20 77 61 79 20 69 consistent way i
003E50: 6E 20 6F 6E 65 20 6F 70 65 72 61 74 69 6F 6E 2E n one operation.
003E60: 20 49 66 20 74 68 65 20 73 79 73 74 65 6D 20 76 If the system v
003E70: 61 72 69 61 62 6C 65 73 20 68 61 64 20 74 6F 20 ariables had to
003E80: 62 65 20 73 65 74 0D 0A 20 20 20 20 20 20 20 62 be set.. b
003E90: 79 20 74 68 65 20 75 73 65 72 20 74 68 65 6E 20 y the user then
003EA0: 74 68 65 20 66 69 72 6D 77 61 72 65 20 63 6F 75 the firmware cou
003EB0: 6C 64 20 62 65 20 6C 65 66 74 20 69 6E 20 61 6E ld be left in an
003EC0: 20 69 6E 64 65 74 65 72 6D 69 6E 61 74 65 20 20 indeterminate
003ED0: 73 74 61 74 65 0D 0A 0D 0A 20 20 20 20 20 20 20 state....
003EE0: 69 66 20 73 6F 6D 65 20 76 61 72 69 61 62 6C 65 if some variable
003EF0: 73 20 68 61 64 20 62 65 65 6E 20 73 65 74 20 62 s had been set b
003F00: 75 74 20 6E 6F 74 20 6F 74 68 65 72 73 2E 20 41 ut not others. A
003F10: 6C 73 6F 2C 20 74 68 65 20 72 6F 75 74 69 6E 65 lso, the routine
003F20: 20 20 74 79 70 65 0D 0A 20 20 20 20 20 20 20 6F type.. o
003F30: 66 20 69 6E 74 65 72 66 61 63 65 20 65 6E 73 75 f interface ensu
003F40: 72 65 73 20 74 68 61 74 20 61 6C 6C 20 74 68 65 res that all the
003F50: 20 72 65 71 75 69 72 65 64 20 73 69 64 65 20 65 required side e
003F60: 66 66 65 63 74 73 20 20 6F 66 20 20 61 20 20 63 ffects of a c
003F70: 68 61 6E 67 65 0D 0A 20 20 20 20 20 20 20 61 72 hange.. ar
003F80: 65 20 74 61 6B 65 6E 20 63 61 72 65 20 6F 66 20 e taken care of
003F90: 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 77 69 automatically wi
003FA0: 74 68 6F 75 74 20 74 68 65 20 75 73 65 72 20 62 thout the user b
003FB0: 65 69 6E 67 20 20 74 72 6F 75 62 6C 65 64 20 20 eing troubled
003FC0: 77 69 74 68 0D 0A 20 20 20 20 20 20 20 74 68 65 with.. the
003FD0: 20 64 65 74 61 69 6C 73 2E 20 41 6E 20 65 78 61 details. An exa
003FE0: 6D 70 6C 65 20 6F 66 20 74 68 69 73 20 20 69 73 mple of this is
003FF0: 20 20 63 68 61 6E 67 69 6E 67 20 20 74 68 65 20 changing the
004000: 20 73 63 72 65 65 6E 20 20 6D 6F 64 65 20 20 28 screen mode (
004010: 73 65 65 0D 0A 20 20 20 20 20 20 20 73 65 63 74 see.. sect
004020: 69 6F 6E 20 36 2E 31 29 20 2D 20 63 68 61 6E 67 ion 6.1) - chang
004030: 69 6E 67 20 74 68 65 20 73 69 7A 65 20 6F 66 20 ing the size of
004040: 74 68 65 20 73 63 72 65 65 6E 20 72 65 71 75 69 the screen requi
004050: 72 65 73 20 20 61 20 20 6E 75 6D 62 65 72 20 20 res a number
004060: 6F 66 0D 0A 20 20 20 20 20 20 20 6F 74 68 65 72 of.. other
004070: 20 70 65 6F 70 6C 65 20 74 6F 20 62 65 20 69 6E people to be in
004080: 66 6F 72 6D 65 64 20 6F 66 20 20 74 68 65 20 20 formed of the
004090: 63 68 61 6E 67 65 20 20 73 6F 20 20 74 68 61 74 change so that
0040A0: 20 20 69 6C 6C 65 67 61 6C 20 20 73 63 72 65 65 illegal scree
0040B0: 6E 0D 0A 20 20 20 20 20 20 20 70 6F 73 69 74 69 n.. positi
0040C0: 6F 6E 73 20 61 6E 64 20 69 6E 6B 73 20 61 72 65 ons and inks are
0040D0: 20 6E 6F 74 20 75 73 65 64 2E 0D 0A 0D 0A 20 20 not used.....
0040E0: 20 20 20 20 20 31 2E 34 20 4A 75 6D 70 62 6C 6F 1.4 Jumpblo
0040F0: 63 6B 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 cks.......
004100: 20 41 20 6A 75 6D 70 62 6C 6F 63 6B 20 69 73 20 A jumpblock is
004110: 61 20 73 65 72 69 65 73 20 6F 66 20 20 6A 75 6D a series of jum
004120: 70 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 p instructions
004130: 20 70 6C 61 63 65 64 20 20 69 6E 20 20 6D 65 6D placed in mem
004140: 6F 72 79 20 20 61 74 0D 0A 20 20 20 20 20 20 20 ory at..
004150: 77 65 6C 6C 2D 6B 6E 6F 77 6E 20 6C 6F 63 61 74 well-known locat
004160: 69 6F 6E 73 2E 20 54 68 65 20 6A 75 6D 70 73 20 ions. The jumps
004170: 61 72 65 20 74 6F 20 74 68 65 20 20 76 61 72 69 are to the vari
004180: 6F 75 73 20 20 72 6F 75 74 69 6E 65 73 20 20 69 ous routines i
004190: 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 66 n the.. f
0041A0: 69 72 6D 77 61 72 65 20 74 68 61 74 20 74 68 65 irmware that the
0041B0: 20 75 73 65 72 20 6D 69 67 68 74 20 77 61 6E 74 user might want
0041C0: 20 74 6F 20 63 61 6C 6C 2E 20 50 72 6F 67 72 61 to call. Progra
0041D0: 6D 73 20 74 68 61 74 20 6E 65 65 64 20 20 74 6F ms that need to
0041E0: 20 20 75 73 65 0D 0A 20 20 20 20 20 20 20 74 68 use.. th
0041F0: 65 20 66 61 63 69 6C 69 74 69 65 73 20 70 72 6F e facilities pro
004200: 76 69 64 65 64 20 62 79 20 74 68 65 20 72 6F 75 vided by the rou
004210: 74 69 6E 65 73 20 69 6E 20 74 68 65 20 6A 75 6D tines in the jum
004220: 70 62 6C 6F 63 6B 20 20 73 68 6F 75 6C 64 20 20 pblock should
004230: 63 61 6C 6C 0D 0A 20 20 20 20 20 20 20 74 68 65 call.. the
004240: 20 61 70 70 72 6F 70 72 69 61 74 65 20 6A 75 6D appropriate jum
004250: 70 62 6C 6F 63 6B 20 65 6E 74 72 69 65 73 2E 0D pblock entries..
004260: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
004270: 68 65 20 66 69 72 6D 77 61 72 65 20 69 73 20 61 he firmware is a
004280: 6C 74 65 72 65 64 20 74 68 65 6E 20 69 74 20 69 ltered then it i
004290: 73 20 71 75 69 74 65 20 6C 69 6B 65 6C 79 20 74 s quite likely t
0042A0: 68 61 74 20 74 68 65 20 20 61 64 64 72 65 73 73 hat the address
0042B0: 65 73 0D 0A 20 20 20 20 20 20 20 6F 66 20 73 6F es.. of so
0042C0: 6D 65 20 6F 66 20 74 68 65 20 72 6F 75 74 69 6E me of the routin
0042D0: 65 73 20 61 76 61 69 6C 61 62 6C 65 20 74 6F 20 es available to
0042E0: 74 68 65 20 75 73 65 72 20 77 69 6C 6C 20 63 68 the user will ch
0042F0: 61 6E 67 65 2E 20 42 79 20 20 6B 65 65 70 69 6E ange. By keepin
004300: 67 0D 0A 20 20 20 20 20 20 20 74 68 65 20 61 64 g.. the ad
004310: 64 72 65 73 73 20 6F 66 20 74 68 65 20 6A 75 6D dress of the jum
004320: 70 62 6C 6F 63 6B 20 63 6F 6E 73 74 61 6E 74 20 pblock constant
004330: 62 75 74 20 61 6C 74 65 72 69 6E 67 20 74 68 65 but altering the
004340: 20 65 6E 74 72 69 65 73 20 69 6E 20 20 74 68 65 entries in the
004350: 0D 0A 20 20 20 20 20 20 20 6A 75 6D 70 62 6C 6F .. jumpblo
004360: 63 6B 20 73 6F 20 74 68 61 74 20 74 68 65 79 20 ck so that they
004370: 6A 75 6D 70 20 74 6F 20 74 68 65 20 6E 65 77 20 jump to the new
004380: 61 64 64 72 65 73 73 65 73 20 6F 66 20 74 68 65 addresses of the
004390: 20 72 6F 75 74 69 6E 65 73 2C 20 20 74 68 65 0D routines, the.
0043A0: 0A 20 20 20 20 20 20 20 63 68 61 6E 67 65 20 69 . change i
0043B0: 73 20 68 69 64 64 65 6E 20 66 72 6F 6D 20 74 68 s hidden from th
0043C0: 65 20 75 73 65 72 20 28 70 72 6F 76 69 64 69 6E e user (providin
0043D0: 67 20 74 68 61 74 20 20 74 68 65 20 20 75 73 65 g that the use
0043E0: 72 20 20 69 73 20 20 63 61 6C 6C 69 6E 67 0D 0A r is calling..
0043F0: 20 20 20 20 20 20 20 72 6F 75 74 69 6E 65 73 20 routines
004400: 20 76 69 61 20 20 74 68 65 20 20 6A 75 6D 70 62 via the jumpb
004410: 6C 6F 63 6B 20 20 61 6E 64 20 20 69 73 20 20 6E lock and is n
004420: 6F 74 20 20 61 63 63 65 73 73 69 6E 67 20 20 74 ot accessing t
004430: 68 65 20 20 20 66 69 72 6D 77 61 72 65 0D 0A 20 he firmware..
004440: 20 20 20 20 20 20 64 69 72 65 63 74 6C 79 29 2E directly).
004450: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 6F 20 ...... To
004460: 6D 61 6B 65 20 74 68 65 20 63 68 61 6E 67 65 20 make the change
004470: 74 6F 20 74 68 65 20 66 69 72 6D 77 61 72 65 20 to the firmware
004480: 63 6F 6D 70 6C 65 74 65 6C 79 20 68 69 64 64 65 completely hidde
004490: 6E 20 66 72 6F 6D 20 74 68 65 20 75 73 65 72 20 n from the user
0044A0: 20 69 74 0D 0A 20 20 20 20 20 20 20 69 73 20 61 it.. is a
0044B0: 6C 73 6F 20 6E 65 63 65 73 73 61 72 79 20 74 6F lso necessary to
0044C0: 20 20 6B 65 65 70 20 20 74 68 65 20 20 65 6E 74 keep the ent
0044D0: 72 79 20 20 61 6E 64 20 20 65 78 69 74 20 20 63 ry and exit c
0044E0: 6F 6E 64 69 74 69 6F 6E 73 20 20 6F 66 20 20 74 onditions of t
0044F0: 68 65 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 he.. routi
004500: 6E 65 73 20 61 63 63 65 73 73 65 64 20 76 69 61 nes accessed via
004510: 20 74 68 65 20 6A 75 6D 70 62 6C 6F 63 6B 20 63 the jumpblock c
004520: 6F 6E 73 74 61 6E 74 2E 20 54 68 65 20 67 72 65 onstant. The gre
004530: 61 74 65 72 20 70 61 72 74 20 6F 66 20 74 68 69 ater part of thi
004540: 73 0D 0A 20 20 20 20 20 20 20 6D 61 6E 75 61 6C s.. manual
004550: 20 69 73 20 74 61 6B 65 6E 20 75 70 20 77 69 74 is taken up wit
004560: 68 20 74 68 65 20 64 65 74 61 69 6C 65 64 20 65 h the detailed e
004570: 6E 74 72 79 20 61 6E 64 20 20 65 78 69 74 20 20 ntry and exit
004580: 72 65 71 75 69 72 65 6D 65 6E 74 73 20 20 6F 66 requirements of
004590: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 6A 75 6D .. the jum
0045A0: 70 62 6C 6F 63 6B 20 65 6E 74 72 69 65 73 2E 0D pblock entries..
0045B0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6A 75 ... The ju
0045C0: 6D 70 62 6C 6F 63 6B 20 69 73 20 70 6C 61 63 65 mpblock is place
0045D0: 64 20 69 6E 20 52 41 4D 20 73 6F 20 74 68 61 74 d in RAM so that
0045E0: 20 74 68 65 20 75 73 65 72 20 63 61 6E 20 61 6C the user can al
0045F0: 74 65 72 20 74 68 65 20 20 65 6E 74 72 69 65 73 ter the entries
004600: 0D 0A 20 20 20 20 20 20 20 69 6E 20 69 74 2E 20 .. in it.
004610: 54 68 69 73 20 61 6C 6C 6F 77 73 20 74 68 65 20 This allows the
004620: 75 73 65 72 20 74 6F 20 74 72 61 70 20 70 61 72 user to trap par
004630: 74 69 63 75 6C 61 72 20 65 6E 74 72 69 65 73 20 ticular entries
004640: 61 6E 64 20 20 73 75 62 73 74 69 74 75 74 65 0D and substitute.
004650: 0A 20 20 20 20 20 20 20 61 20 6E 65 77 20 20 72 . a new r
004660: 6F 75 74 69 6E 65 20 20 74 68 61 74 20 20 77 69 outine that wi
004670: 6C 6C 20 20 72 65 70 6C 61 63 65 20 20 74 68 65 ll replace the
004680: 20 20 73 74 61 6E 64 61 72 64 20 20 66 69 72 6D standard firm
004690: 77 61 72 65 20 20 72 6F 75 74 69 6E 65 2E 0D 0A ware routine...
0046A0: 20 20 20 20 20 20 20 50 72 6F 76 69 64 65 64 20 Provided
0046B0: 74 68 61 74 20 74 68 65 20 6E 65 77 20 72 6F 75 that the new rou
0046C0: 74 69 6E 65 20 6F 62 65 79 73 20 74 68 65 20 65 tine obeys the e
0046D0: 6E 74 72 79 20 61 6E 64 20 65 78 69 74 20 72 65 ntry and exit re
0046E0: 71 75 69 72 65 6D 65 6E 74 73 20 6F 66 0D 0A 20 quirements of..
0046F0: 20 20 20 20 20 20 74 68 65 20 66 69 72 6D 77 61 the firmwa
004700: 72 65 20 72 6F 75 74 69 6E 65 2C 20 74 68 65 20 re routine, the
004710: 73 75 62 73 74 69 74 75 74 69 6F 6E 20 77 69 6C substitution wil
004720: 6C 20 6E 6F 74 20 75 70 73 65 74 20 70 72 6F 67 l not upset prog
004730: 72 61 6D 73 20 75 6E 61 77 61 72 65 0D 0A 20 20 rams unaware..
004740: 20 20 20 20 20 6F 66 20 74 68 65 20 63 68 61 6E of the chan
004750: 67 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 ge...........
004760: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
004770: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
004780: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
004790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0047A0: 20 20 70 61 67 65 20 31 2E 35 0D 0A 1A 6E 75 61 page 1.5...nua
0047B0: 6C 20 64 65 73 63 72 69 62 65 73 20 74 68 65 20 l describes the
0047C0: 66 69 72 6D 77 61 72 65 20 6F 66 20 20 74 68 65 firmware of the
0047D0: 20 20 41 6D 73 74 72 61 64 20 20 43 50 43 20 20 Amstrad CPC
0047E0: 34 36 34 2F 36 36 34 2F 36 31 32 38 0D 0A 20 20 464/664/6128..
0047F0: 20 20 20 20 20 6D 69 63 72 6F 63 6F 6D 70 75 74 microcomput
004800: 0D 0A 20 20 20 20 20 20 20 69 6E 20 69 74 2E 20 .. in it.
004810: 54 68 69 73 20 61 6C 6C 6F 77 73 20 74 68 65 20 This allows the
004820: 75 73 65 72 20 74 6F 20 74 72 61 70 20 70 61 72 user to trap par
004830: 74 69 63 75 6C 61 72 20 65 6E 74 72 69 65 73 20 ticular entries
004840: 61 6E 64 20 20 73 75 62 73 74 69 74 75 74 65 0D and substitute.
004850: 0A 20 20 20 20 20 20 20 61 20 6E 65 77 20 20 72 . a new r
004860: 6F 75 74 69 6E 65 20 20 74 68 61 74 20 20 77 69 outine that wi
004870: 6C 6C 20 20 72 65 70 6C 61 63 65 20 20 74 68 65 ll replace the
004880: 20 20 73 74 61 6E 64 61 72 64 20 20 66 69 72 6D standard firm
004890: 77 61 72 65 20 20 72 6F 75 74 69 6E 65 2E 0D 0A ware routine...
0048A0: 20 20 20 20 20 20 20 50 72 6F 76 69 64 65 64 20 Provided
0048B0: 74 68 61 74 20 74 68 65 20 6E 65 77 20 72 6F 75 that the new rou
0048C0: 74 69 6E 65 20 6F 62 65 79 73 20 74 68 65 20 65 tine obeys the e
0048D0: 6E 74 72 79 20 61 6E 64 20 65 78 69 74 20 72 65 ntry and exit re
0048E0: 71 75 69 72 65 6D 65 6E 74 73 20 6F 66 0D 0A 20 quirements of..
0048F0: 20 20 20 20 20 20 74 68 65 20 66 69 72 6D 77 61 the firmwa
004900: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
004910: 20 20 20 54 68 65 72 65 20 61 72 65 20 66 6F 75 There are fou
004920: 72 20 6A 75 6D 70 62 6C 6F 63 6B 73 2E 20 54 68 r jumpblocks. Th
004930: 65 73 65 20 61 72 65 20 61 6C 6C 20 6C 69 73 74 ese are all list
004940: 65 64 20 20 69 6E 20 20 73 65 63 74 69 6F 6E 20 ed in section
004950: 20 31 34 2E 20 20 54 68 65 0D 0A 20 20 20 20 20 14. The..
004960: 20 20 66 69 72 73 74 20 61 6E 64 20 6C 61 72 67 first and larg
004970: 65 73 74 20 20 6A 75 6D 70 62 6C 6F 63 6B 20 20 est jumpblock
004980: 69 73 20 20 74 68 65 20 20 6D 61 69 6E 20 20 66 is the main f
004990: 69 72 6D 77 61 72 65 20 20 6A 75 6D 70 62 6C 6F irmware jumpblo
0049A0: 63 6B 20 20 28 73 65 65 0D 0A 20 20 20 20 20 20 ck (see..
0049B0: 20 73 65 63 74 69 6F 6E 73 20 31 34 2E 31 20 61 sections 14.1 a
0049C0: 6E 64 20 31 35 29 2E 20 54 68 69 73 20 61 6C 6C nd 15). This all
0049D0: 6F 77 73 20 74 68 65 20 20 75 73 65 72 20 20 74 ows the user t
0049E0: 6F 20 20 63 61 6C 6C 20 20 6D 6F 73 74 20 20 66 o call most f
0049F0: 69 72 6D 77 61 72 65 0D 0A 20 20 20 20 20 20 20 irmware..
004A00: 72 6F 75 74 69 6E 65 73 2E 20 54 68 65 20 73 65 routines. The se
004A10: 63 6F 6E 64 20 6A 75 6D 70 62 6C 6F 63 6B 20 20 cond jumpblock
004A20: 69 73 20 20 74 68 65 20 20 69 6E 64 69 72 65 63 is the indirec
004A30: 74 69 6F 6E 73 20 20 6A 75 6D 70 62 6C 6F 63 6B tions jumpblock
004A40: 20 20 28 73 65 65 0D 0A 20 20 20 20 20 20 20 73 (see.. s
004A50: 65 63 74 69 6F 6E 73 20 31 34 2E 32 20 61 6E 64 ections 14.2 and
004A60: 20 31 36 29 2E 20 54 68 65 20 65 6E 74 72 69 65 16). The entrie
004A70: 73 20 69 6E 20 74 68 69 73 20 6A 75 6D 70 62 6C s in this jumpbl
004A80: 6F 63 6B 20 61 72 65 20 75 73 65 64 20 20 62 79 ock are used by
004A90: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 66 69 the.. fi
004AA0: 72 6D 77 61 72 65 20 61 74 20 6B 65 79 20 6D 6F rmware at key mo
004AB0: 6D 65 6E 74 73 20 69 6E 20 6F 72 64 65 72 20 74 ments in order t
004AC0: 6F 20 61 6C 6C 6F 77 20 74 68 65 20 75 73 65 72 o allow the user
004AD0: 20 74 6F 20 61 6C 74 65 72 20 74 68 65 20 61 63 to alter the ac
004AE0: 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 6F 66 20 tion.. of
004AF0: 74 68 65 20 66 69 72 6D 77 61 72 65 2E 20 54 68 the firmware. Th
004B00: 65 20 6C 61 73 74 20 74 77 6F 20 6A 75 6D 70 62 e last two jumpb
004B10: 6C 6F 63 6B 73 20 61 72 65 20 72 61 74 68 65 72 locks are rather
004B20: 20 73 70 65 63 69 61 6C 2E 20 54 68 65 79 20 20 special. They
004B30: 61 72 65 0D 0A 20 20 20 20 20 20 20 74 6F 20 64 are.. to d
004B40: 6F 20 77 69 74 68 20 74 68 65 20 4B 65 72 6E 65 o with the Kerne
004B50: 6C 20 61 6E 64 20 61 6C 6C 6F 77 20 52 4F 4D 73 l and allow ROMs
004B60: 20 74 6F 20 62 65 20 20 65 6E 61 62 6C 65 64 20 to be enabled
004B70: 20 61 6E 64 20 20 72 6F 75 74 69 6E 65 73 20 20 and routines
004B80: 69 6E 0D 0A 20 20 20 20 20 20 20 52 4F 4D 73 20 in.. ROMs
004B90: 74 6F 20 62 65 20 63 61 6C 6C 65 64 2E 20 28 53 to be called. (S
004BA0: 65 65 20 73 65 63 74 69 6F 6E 73 20 31 34 2E 33 ee sections 14.3
004BB0: 2C 31 34 2E 34 2C 31 37 20 61 6E 64 20 31 38 29 ,14.4,17 and 18)
004BC0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 ....... Se
004BD0: 63 74 69 6F 6E 20 31 2E 37 20 62 65 6C 6F 77 20 ction 1.7 below
004BE0: 67 69 76 65 73 20 61 6E 20 65 78 61 6D 70 6C 65 gives an example
004BF0: 20 6F 66 20 68 6F 77 20 61 20 6A 75 6D 70 62 6C of how a jumpbl
004C00: 6F 63 6B 20 65 6E 74 72 79 20 20 6D 69 67 68 74 ock entry might
004C10: 20 20 62 65 0D 0A 20 20 20 20 20 20 20 63 68 61 be.. cha
004C20: 6E 67 65 64 20 74 6F 20 61 6C 74 65 72 20 74 68 nged to alter th
004C30: 65 20 61 63 74 69 6F 6E 20 6F 66 20 74 68 65 20 e action of the
004C40: 66 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A 0D 0A 20 firmware.......
004C50: 20 20 20 20 20 20 31 2E 35 20 43 6F 6E 76 65 6E 1.5 Conven
004C60: 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 tions.....
004C70: 20 61 2E 20 4E 6F 74 61 74 69 6F 6E 0D 0A 0D 0A a. Notation....
004C80: 20 20 20 20 20 20 20 50 72 6F 63 65 73 73 6F 72 Processor
004C90: 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 61 72 instructions ar
004CA0: 65 20 67 65 6E 65 72 61 6C 6C 79 20 72 65 66 65 e generally refe
004CB0: 72 72 65 64 20 74 6F 20 62 79 20 74 68 65 69 72 rred to by their
004CC0: 20 73 74 61 6E 64 61 72 64 20 5A 38 30 0D 0A 20 standard Z80..
004CD0: 20 20 20 20 20 20 6D 6E 65 6D 6F 6E 69 63 73 2E mnemonics.
004CE0: 20 20 54 68 65 20 20 65 78 63 65 70 74 69 6F 6E The exception
004CF0: 73 20 20 74 68 61 74 20 20 70 72 6F 76 65 20 20 s that prove
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: 74 68 65 20 20 72 75 6C 65 20 20 61 72 65 20 20 the rule are
004E10: 74 68 65 20 20 72 65 73 74 61 72 74 0D 0A 20 20 the restart..
004E20: 20 20 20 20 20 69 6E 73 74 72 75 63 74 69 6F 6E instruction
004E30: 73 2E 20 54 68 65 20 6D 6E 65 6D 6F 6E 69 63 73 s. The mnemonics
004E40: 20 52 53 54 20 30 2E 2E 52 53 54 20 37 20 61 72 RST 0..RST 7 ar
004E50: 65 20 75 73 65 64 20 72 61 74 68 65 72 20 74 68 e used rather th
004E60: 61 6E 20 74 68 65 20 6D 6F 72 65 0D 0A 20 20 20 an the more..
004E70: 20 20 20 20 75 73 75 61 6C 20 5A 38 30 20 6D 6E usual Z80 mn
004E80: 65 6D 6F 6E 69 63 73 20 52 53 54 20 23 30 30 2E emonics RST #00.
004E90: 2E 52 53 54 20 23 33 38 2E 0D 0A 0D 0A 0D 0A 20 .RST #38.......
004EA0: 20 20 20 20 20 20 54 68 65 20 72 65 67 69 73 74 The regist
004EB0: 65 72 73 20 61 72 65 20 61 6C 73 6F 20 72 65 66 ers are also ref
004EC0: 65 72 72 65 64 20 74 6F 20 62 79 20 74 68 65 69 erred to by thei
004ED0: 72 20 73 74 61 6E 64 61 72 64 20 20 5A 38 30 20 r standard Z80
004EE0: 20 6E 61 6D 65 73 2E 20 20 54 68 65 0D 0A 20 20 names. The..
004EF0: 20 20 20 20 20 66 6C 61 67 20 72 65 67 69 73 74 flag regist
004F00: 65 72 20 61 73 20 61 20 77 68 6F 6C 65 20 69 73 er as a whole is
004F10: 20 72 65 66 65 72 72 65 64 20 74 6F 20 61 73 20 referred to as
004F20: 46 20 62 75 74 20 74 68 65 20 69 6E 64 69 76 69 F but the indivi
004F30: 64 75 61 6C 20 20 66 6C 61 67 73 0D 0A 20 20 20 dual flags..
004F40: 20 20 20 20 61 72 65 20 63 61 6C 6C 65 64 20 62 are called b
004F50: 79 20 74 68 65 69 72 20 66 75 6C 6C 20 6E 61 6D y their full nam
004F60: 65 2C 20 65 2E 67 2E 20 63 61 72 72 79 2E 20 54 e, e.g. carry. T
004F70: 68 65 20 66 6C 61 67 73 20 61 72 65 20 20 73 61 he flags are sa
004F80: 69 64 20 20 74 6F 20 20 62 65 0D 0A 20 20 20 20 id to be..
004F90: 20 20 20 74 72 75 65 20 77 68 65 6E 20 74 68 65 true when the
004FA0: 79 20 61 72 65 20 73 65 74 20 61 6E 64 20 66 61 y are set and fa
004FB0: 6C 73 65 20 77 68 65 6E 20 74 68 65 79 20 61 72 lse when they ar
004FC0: 65 20 63 6C 65 61 72 2E 20 20 54 68 75 73 20 20 e clear. Thus
004FD0: 61 20 20 4A 50 20 20 4E 43 0D 0A 20 20 20 20 20 a JP NC..
004FE0: 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 77 6F instruction wo
004FF0: 75 6C 64 20 6A 75 6D 70 20 69 66 20 63 61 72 72 uld jump if carr
005000: 79 20 77 61 73 20 66 61 6C 73 65 20 61 6E 64 20 y was false and
005010: 6E 6F 74 20 69 66 20 63 61 72 72 79 20 77 61 73 not if carry was
005020: 20 74 72 75 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 true.......
005030: 20 20 20 48 65 78 61 64 65 63 69 6D 61 6C 20 6E Hexadecimal n
005040: 75 6D 62 65 72 73 20 61 72 65 20 69 6E 64 69 63 umbers are indic
005050: 61 74 65 64 20 62 79 20 70 72 65 66 69 78 69 6E ated by prefixin
005060: 67 20 74 68 65 20 6E 75 6D 62 65 72 20 77 69 74 g the number wit
005070: 68 20 23 2C 20 74 68 75 73 0D 0A 20 20 20 20 20 h #, thus..
005080: 20 20 23 37 46 20 69 73 20 74 68 65 20 6E 75 6D #7F is the num
005090: 62 65 72 20 31 32 37 20 69 6E 20 68 65 78 2E 20 ber 127 in hex.
0050A0: 41 6C 6C 20 6E 75 6D 62 65 72 73 20 6E 6F 74 20 All numbers not
0050B0: 70 72 65 66 69 78 65 64 20 20 62 79 20 20 23 20 prefixed by #
0050C0: 20 61 72 65 20 20 69 6E 0D 0A 20 20 20 20 20 20 are in..
0050D0: 20 64 65 63 69 6D 61 6C 2E 0D 0A 0D 0A 0D 0A 20 decimal.......
0050E0: 20 20 20 20 20 20 4C 61 72 67 65 20 6E 75 6D 62 Large numb
0050F0: 65 72 73 20 61 72 65 20 6F 66 74 65 6E 20 61 62 ers are often ab
005100: 62 72 65 76 69 61 74 65 64 20 62 79 20 77 72 69 breviated by wri
005110: 74 69 6E 67 20 74 68 65 6D 20 61 73 20 61 20 20 ting them as a
005120: 6D 75 6C 74 69 70 6C 65 20 20 6F 66 0D 0A 20 20 multiple of..
005130: 20 20 20 20 20 31 30 32 34 2E 20 46 6F 72 20 65 1024. For e
005140: 78 61 6D 70 6C 65 2C 20 33 32 4B 20 62 79 74 65 xample, 32K byte
005150: 73 20 6D 65 61 6E 73 20 33 32 20 74 69 6D 65 73 s means 32 times
005160: 20 31 30 32 34 20 28 69 2E 65 2E 20 33 32 37 36 1024 (i.e. 3276
005170: 38 29 20 62 79 74 65 73 2E 0D 0A 0D 0A 20 20 20 8) bytes.....
005180: 20 20 20 20 62 2E 20 55 73 61 67 65 0D 0A 0D 0A b. Usage....
005190: 20 20 20 20 20 20 20 52 6F 75 74 69 6E 65 73 2C Routines,
0051A0: 20 77 68 65 72 65 20 70 6F 73 73 69 62 6C 65 2C where possible,
0051B0: 20 74 61 6B 65 20 61 6E 64 20 72 65 74 75 72 6E take and return
0051C0: 20 76 61 6C 75 65 73 20 69 6E 20 20 72 65 67 69 values in regi
0051D0: 73 74 65 72 73 2E 20 20 57 68 65 72 65 0D 0A 20 sters. Where..
0051E0: 20 20 20 20 20 20 6D 6F 72 65 20 69 6E 66 6F 72 more infor
0051F0: 6D 61 74 69 6F 6E 20 74 68 61 6E 20 6D 61 79 20 mation than may
005200: 62 65 20 68 65 6C 64 20 69 6E 20 72 65 67 69 73 be held in regis
005210: 74 65 72 73 20 69 73 20 74 6F 20 62 65 20 20 70 ters is to be p
005220: 61 73 73 65 64 20 20 74 6F 20 20 61 0D 0A 20 20 assed to a..
005230: 20 20 20 20 20 72 6F 75 74 69 6E 65 2C 20 74 68 routine, th
005240: 65 20 61 64 64 72 65 73 73 20 6F 66 20 61 20 64 e address of a d
005250: 61 74 61 20 61 72 65 61 20 69 73 20 67 69 76 65 ata area is give
005260: 6E 2E 20 54 68 65 20 6C 6F 63 61 74 69 6F 6E 20 n. The location
005270: 20 69 6E 20 20 6D 65 6D 6F 72 79 0D 0A 20 20 20 in memory..
005280: 20 20 20 20 6F 66 20 74 68 65 73 65 20 64 61 74 of these dat
005290: 61 20 61 72 65 61 73 20 69 73 20 73 6F 6D 65 74 a areas is somet
0052A0: 69 6D 65 73 20 63 72 69 74 69 63 61 6C 2C 20 73 imes critical, s
0052B0: 65 65 20 73 65 63 74 69 6F 6E 20 32 2E 34 2E 0D ee section 2.4..
0052C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 68 65 72 ..... Wher
0052D0: 65 20 61 20 72 6F 75 74 69 6E 65 20 63 61 6E 20 e a routine can
0052E0: 73 75 63 63 65 65 64 20 6F 72 20 66 61 69 6C 20 succeed or fail
0052F0: 74 68 69 73 20 63 6F 6E 64 69 74 69 6F 6E 20 69 this condition i
005300: 73 20 6E 6F 72 6D 61 6C 6C 79 20 20 70 61 73 73 s normally pass
005310: 65 64 0D 0A 20 20 20 20 20 20 20 62 61 63 6B 20 ed.. back
005320: 69 6E 20 74 68 65 20 63 61 72 72 79 20 66 6C 61 in the carry fla
005330: 67 2E 20 43 61 72 72 79 20 74 72 75 65 20 6E 6F g. Carry true no
005340: 72 6D 61 6C 6C 79 20 20 69 6D 70 6C 69 65 73 20 rmally implies
005350: 20 73 75 63 63 65 73 73 2C 20 20 77 68 69 6C 73 success, whils
005360: 74 0D 0A 20 20 20 20 20 20 20 63 61 72 72 79 20 t.. carry
005370: 66 61 6C 73 65 20 6E 6F 72 6D 61 6C 6C 79 20 69 false normally i
005380: 6D 70 6C 69 65 73 20 66 61 69 6C 75 72 65 2E 0D mplies failure..
005390: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
0053A0: 61 6C 74 65 72 6E 61 74 65 20 72 65 67 69 73 74 alternate regist
0053B0: 65 72 20 73 65 74 2C 20 41 46 27 20 42 43 27 20 er set, AF' BC'
0053C0: 44 45 27 20 48 4C 27 2C 20 69 73 20 72 65 73 65 DE' HL', is rese
0053D0: 72 76 65 64 20 20 66 6F 72 20 20 75 73 65 20 20 rved for use
0053E0: 62 79 0D 0A 20 20 20 20 20 20 20 74 68 65 20 73 by.. the s
0053F0: 79 73 74 65 6D 2E 20 54 68 65 20 75 73 65 72 20 ystem. The user
005400: 73 68 6F 75 6C 64 20 20 6E 6F 74 20 20 65 78 65 should not exe
005410: 63 75 74 65 20 20 61 6E 20 20 45 58 20 20 41 46 cute an EX AF
005420: 2C 41 46 27 20 20 6F 72 20 20 61 6E 20 20 45 58 ,AF' or an EX
005430: 58 0D 0A 20 20 20 20 20 20 20 69 6E 73 74 72 75 X.. instru
005440: 63 74 69 6F 6E 20 61 73 20 74 68 65 73 65 20 77 ction as these w
005450: 69 6C 6C 20 68 61 76 65 20 75 6E 66 6F 72 74 75 ill have unfortu
005460: 6E 61 74 65 20 63 6F 6E 73 65 71 75 65 6E 63 65 nate consequence
005470: 73 2E 20 28 53 65 65 20 41 70 70 65 6E 64 69 78 s. (See Appendix
005480: 0D 0A 20 20 20 20 20 20 20 58 49 20 66 6F 72 20 .. XI for
005490: 61 20 66 75 6C 6C 20 64 65 73 63 72 69 70 74 69 a full descripti
0054A0: 6F 6E 2E 29 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 on.)......
0054B0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
0054C0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
0054D0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
0054E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
0054F0: 61 67 65 20 31 2E 36 0D 0A 0D 0A 0D 0A 0D 0A 0D age 1.6.........
005500: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 63 2E 20 47 ..... c. G
005510: 65 6E 65 72 61 6C 0D 0A 0D 0A 20 20 20 20 20 20 eneral....
005520: 20 54 68 65 20 6C 6F 67 69 63 61 6C 20 76 61 6C The logical val
005530: 75 65 73 20 74 72 75 65 20 61 6E 64 20 66 61 6C ues true and fal
005540: 73 65 20 61 72 65 20 67 65 6E 65 72 61 6C 6C 79 se are generally
005550: 20 72 65 70 72 65 73 65 6E 74 65 64 20 62 79 20 represented by
005560: 23 46 46 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 #FF and..
005570: 23 30 30 20 72 65 73 70 65 63 74 69 76 65 6C 79 #00 respectively
005580: 2E 20 4F 66 74 65 6E 2C 20 68 6F 77 65 76 65 72 . Often, however
005590: 2C 20 61 6E 79 20 6E 6F 6E 2D 7A 65 72 6F 20 76 , any non-zero v
0055A0: 61 6C 75 65 20 69 73 20 74 61 6B 65 6E 20 74 6F alue is taken to
0055B0: 20 20 6D 65 61 6E 0D 0A 20 20 20 20 20 20 20 74 mean.. t
0055C0: 72 75 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 rue..... T
0055D0: 68 65 20 62 69 74 73 20 69 6E 20 61 20 62 79 74 he bits in a byt
0055E0: 65 20 61 72 65 20 6E 75 6D 62 65 72 65 64 20 30 e are numbered 0
0055F0: 2E 2E 37 2C 20 20 77 69 74 68 20 20 62 69 74 20 ..7, with bit
005600: 20 30 20 20 62 65 69 6E 67 20 20 74 68 65 20 20 0 being the
005610: 6C 65 61 73 74 0D 0A 20 20 20 20 20 20 20 73 69 least.. si
005620: 67 6E 69 66 69 63 61 6E 74 20 62 69 74 20 61 6E gnificant bit an
005630: 64 20 62 69 74 20 37 20 62 65 69 6E 67 20 74 68 d bit 7 being th
005640: 65 20 6D 6F 73 74 20 73 69 67 6E 69 66 69 63 61 e most significa
005650: 6E 74 20 62 69 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 nt bit.......
005660: 20 20 20 20 57 68 65 72 65 20 74 77 6F 20 62 79 Where two by
005670: 74 65 20 28 77 6F 72 64 29 20 76 61 6C 75 65 73 te (word) values
005680: 20 61 72 65 20 20 73 74 6F 72 65 64 20 20 28 69 are stored (i
005690: 6E 20 20 74 61 62 6C 65 73 20 20 65 74 63 29 20 n tables etc)
0056A0: 20 74 68 65 79 20 20 61 72 65 0D 0A 20 20 20 20 they are..
0056B0: 20 20 20 61 6C 77 61 79 73 20 73 74 6F 72 65 64 always stored
0056C0: 20 77 69 74 68 20 74 68 65 20 20 6C 65 73 73 20 with the less
0056D0: 20 73 69 67 6E 69 66 69 63 61 6E 74 20 20 62 79 significant by
0056E0: 74 65 20 20 66 69 72 73 74 20 20 61 6E 64 20 20 te first and
0056F0: 74 68 65 20 20 6D 6F 72 65 0D 0A 20 20 20 20 20 the more..
005700: 20 20 73 69 67 6E 69 66 69 63 61 6E 74 20 62 79 significant by
005710: 74 65 20 73 65 63 6F 6E 64 2C 20 75 6E 6C 65 73 te second, unles
005720: 73 20 61 20 73 70 65 63 69 66 69 63 20 69 6E 64 s a specific ind
005730: 69 63 61 74 69 6F 6E 20 74 6F 20 74 68 65 20 20 ication to the
005740: 63 6F 6E 74 72 61 72 79 0D 0A 20 20 20 20 20 20 contrary..
005750: 20 69 73 20 67 69 76 65 6E 2E 20 54 68 69 73 20 is given. This
005760: 69 73 20 69 6E 20 61 63 63 6F 72 64 61 6E 63 65 is in accordance
005770: 20 77 69 74 68 20 74 68 65 20 73 74 61 6E 64 61 with the standa
005780: 72 64 20 77 61 79 20 74 68 65 20 20 5A 38 30 20 rd way the Z80
005790: 20 73 74 6F 72 65 73 0D 0A 20 20 20 20 20 20 20 stores..
0057A0: 77 6F 72 64 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 words.......
0057B0: 20 20 20 54 61 62 6C 65 73 20 61 6E 64 20 74 68 Tables and th
0057C0: 65 20 6C 69 6B 65 20 61 72 65 20 61 6C 77 61 79 e like are alway
0057D0: 73 20 6C 61 69 64 20 6F 75 74 20 77 69 74 68 20 s laid out with
0057E0: 62 79 74 65 20 30 20 20 62 65 69 6E 67 20 20 74 byte 0 being t
0057F0: 68 65 20 20 66 69 72 73 74 0D 0A 20 20 20 20 20 he first..
005800: 20 20 62 79 74 65 20 6F 66 20 74 68 65 20 74 61 byte of the ta
005810: 62 6C 65 2E 20 57 68 65 6E 20 74 68 65 20 61 64 ble. When the ad
005820: 64 72 65 73 73 20 6F 66 20 73 75 63 68 20 61 20 dress of such a
005830: 74 61 62 6C 65 20 69 73 20 67 69 76 65 6E 20 20 table is given
005840: 74 68 69 73 20 20 69 73 0D 0A 20 20 20 20 20 20 this is..
005850: 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 the address of
005860: 62 79 74 65 20 30 20 6F 66 20 74 68 65 20 74 61 byte 0 of the ta
005870: 62 6C 65 20 75 6E 6C 65 73 73 20 6F 74 68 65 72 ble unless other
005880: 77 69 73 65 20 69 6E 64 69 63 61 74 65 64 2E 0D wise indicated..
005890: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 68 65 6E ..... When
0058A0: 20 74 68 65 20 63 6F 6D 70 75 74 65 72 20 69 73 the computer is
0058B0: 20 74 75 72 6E 65 64 20 6F 6E 20 28 6F 72 20 77 turned on (or w
0058C0: 68 65 6E 20 69 74 20 20 69 73 20 20 72 65 73 65 hen it is rese
0058D0: 74 29 20 20 69 74 20 20 63 6F 6D 70 6C 65 74 65 t) it complete
0058E0: 6C 79 0D 0A 20 20 20 20 20 20 20 69 6E 69 74 69 ly.. initi
0058F0: 61 6C 69 7A 65 73 20 69 74 73 65 6C 66 20 62 65 alizes itself be
005900: 66 6F 72 65 20 72 75 6E 6E 69 6E 67 20 61 6E 79 fore running any
005910: 20 70 72 6F 67 72 61 6D 2E 20 54 68 69 73 20 69 program. This i
005920: 6E 69 74 69 61 6C 69 7A 61 74 69 6F 6E 20 20 69 nitialization i
005930: 73 0D 0A 20 20 20 20 20 20 20 6B 6E 6F 77 6E 20 s.. known
005940: 61 73 20 65 61 72 6C 79 20 6D 6F 72 6E 69 6E 67 as early morning
005950: 20 73 74 61 72 74 75 70 2C 20 61 62 62 72 65 76 startup, abbrev
005960: 69 61 74 65 64 20 74 6F 20 45 4D 53 20 66 72 6F iated to EMS fro
005970: 6D 20 6E 6F 77 20 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 m now on.......
005980: 20 20 20 20 20 20 31 2E 36 20 52 6F 75 74 69 6E 1.6 Routin
005990: 65 20 44 6F 63 75 6D 65 6E 74 61 74 69 6F 6E 2E e Documentation.
0059A0: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 61 63 68 20 .... Each
0059B0: 72 6F 75 74 69 6E 65 20 64 65 73 63 72 69 62 65 routine describe
0059C0: 64 20 69 6E 20 68 69 73 20 6D 61 6E 75 61 6C 20 d in his manual
0059D0: 68 61 73 20 20 65 6E 74 72 79 20 20 61 6E 64 20 has entry and
0059E0: 20 65 78 69 74 20 20 63 6F 6E 64 69 74 69 6F 6E exit condition
0059F0: 73 0D 0A 20 20 20 20 20 20 20 61 73 73 6F 63 69 s.. associ
005A00: 61 74 65 64 20 77 69 74 68 20 69 74 2E 20 57 68 ated with it. Wh
005A10: 65 72 65 20 74 68 65 72 65 20 61 72 65 20 6F 74 ere there are ot
005A20: 68 65 72 20 70 6F 69 6E 74 73 20 6F 66 20 69 6E her points of in
005A30: 74 65 72 65 73 74 20 61 62 6F 75 74 20 74 68 65 terest about the
005A40: 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 6E 65 .. routine
005A50: 20 74 68 65 73 65 20 61 72 65 20 6E 6F 72 6D 61 these are norma
005A60: 6C 6C 79 20 67 69 76 65 6E 20 69 6E 20 61 20 73 lly given in a s
005A70: 65 63 74 69 6F 6E 20 61 66 74 65 72 20 74 68 65 ection after the
005A80: 20 65 6E 74 72 79 20 61 6E 64 20 65 78 69 74 0D entry and exit.
005A90: 0A 20 20 20 20 20 20 20 63 6F 6E 64 69 74 69 6F . conditio
005AA0: 6E 73 2E 20 53 75 63 68 20 70 6F 69 6E 74 73 20 ns. Such points
005AB0: 69 6E 63 6C 75 64 65 20 77 68 65 74 68 65 72 20 include whether
005AC0: 69 6E 74 65 72 72 75 70 74 73 20 61 72 65 20 65 interrupts are e
005AD0: 6E 61 62 6C 65 64 20 20 61 6E 64 20 20 61 0D 0A nabled and a..
005AE0: 20 20 20 20 20 20 20 66 75 6C 6C 65 72 20 64 65 fuller de
005AF0: 73 63 72 69 70 74 69 6F 6E 20 6F 66 20 74 68 65 scription of the
005B00: 20 70 61 72 61 6D 65 74 65 72 73 20 61 6E 64 20 parameters and
005B10: 73 69 64 65 20 65 66 66 65 63 74 73 20 6F 66 20 side effects of
005B20: 74 68 65 20 72 6F 75 74 69 6E 65 2E 0D 0A 0D 0A the routine.....
005B30: 0D 0A 20 20 20 20 20 20 20 54 68 65 72 65 20 61 .. There a
005B40: 72 65 20 74 77 6F 20 72 65 61 73 6F 6E 73 20 66 re two reasons f
005B50: 6F 72 20 70 72 6F 76 69 64 69 6E 67 20 74 68 69 or providing thi
005B60: 73 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 2E 20 46 s information. F
005B70: 69 72 73 74 6C 79 20 69 74 20 74 65 6C 6C 73 0D irstly it tells.
005B80: 0A 20 20 20 20 20 20 20 74 68 65 20 75 73 65 20 . the use
005B90: 77 68 61 74 20 77 69 6C 6C 20 68 61 70 70 65 6E what will happen
005BA0: 20 77 68 65 6E 20 74 68 65 20 72 6F 75 74 69 6E when the routin
005BB0: 65 20 69 73 20 63 61 6C 6C 65 64 2E 20 53 65 63 e is called. Sec
005BC0: 6F 6E 64 6C 79 20 69 74 20 74 65 6C 6C 73 0D 0A ondly it tells..
005BD0: 20 20 20 20 20 20 20 74 68 65 20 75 73 65 72 20 the user
005BE0: 77 68 61 74 20 61 20 72 65 70 6C 61 63 65 6D 65 what a replaceme
005BF0: 6E 74 20 72 6F 75 74 69 6E 65 20 69 73 20 65 78 nt routine is ex
005C00: 70 65 63 74 65 64 20 74 6F 20 64 6F 2E 0D 0A 0D pected to do....
005C10: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 65 6E ... The en
005C20: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 20 74 try conditions t
005C30: 65 6C 6C 20 74 68 65 20 63 61 6C 6C 65 72 20 6F ell the caller o
005C40: 66 20 74 68 65 20 72 6F 75 74 69 6E 65 20 77 68 f the routine wh
005C50: 61 74 20 20 74 68 65 20 20 72 6F 75 74 69 6E 65 at the routine
005C60: 0D 0A 20 20 20 20 20 20 20 65 78 70 65 63 74 73 .. expects
005C70: 20 74 6F 20 62 65 20 20 70 61 73 73 65 64 20 20 to be passed
005C80: 74 6F 20 20 69 74 2E 20 20 57 68 65 6E 20 20 63 to it. When c
005C90: 61 6C 6C 69 6E 67 20 20 61 20 20 72 6F 75 74 69 alling a routi
005CA0: 6E 65 20 20 61 6C 6C 20 20 76 61 6C 75 65 73 0D ne all values.
005CB0: 0A 20 20 20 20 20 20 20 73 70 65 63 69 66 69 65 . specifie
005CC0: 64 20 6D 75 73 74 20 62 65 20 73 75 70 70 6C 69 d must be suppli
005CD0: 65 64 2E 20 56 61 6C 75 65 73 20 6D 61 79 20 6F ed. Values may o
005CE0: 6E 6C 79 20 20 62 65 20 20 6C 65 66 74 20 20 6F nly be left o
005CF0: 75 74 20 20 77 68 65 72 65 20 20 74 68 65 0D 0A ut where the..
005D00: 20 20 20 20 20 20 20 72 6F 75 74 69 6E 65 20 64 routine d
005D10: 6F 63 75 6D 65 6E 74 73 20 74 68 61 74 20 74 68 ocuments that th
005D20: 65 79 20 61 72 65 20 6F 70 74 69 6F 6E 61 6C 2E ey are optional.
005D30: 20 57 68 65 6E 20 70 72 6F 76 69 64 69 6E 67 20 When providing
005D40: 61 20 72 65 70 6C 61 63 65 6D 65 6E 74 0D 0A 20 a replacement..
005D50: 20 20 20 20 20 20 72 6F 75 74 69 6E 65 20 74 6F routine to
005D60: 20 66 69 74 20 74 68 69 73 20 69 6E 74 65 72 66 fit this interf
005D70: 61 63 65 20 6F 6E 6C 79 20 69 6E 66 6F 72 6D 61 ace only informa
005D80: 74 69 6F 6E 20 74 68 61 74 20 69 73 20 20 73 70 tion that is sp
005D90: 65 63 69 66 69 65 64 20 20 6D 61 79 0D 0A 20 20 ecified may..
005DA0: 20 20 20 20 20 62 65 20 75 73 65 64 2C 20 61 6C be used, al
005DB0: 74 68 6F 75 67 68 20 6E 6F 74 20 61 6C 6C 20 6F though not all o
005DC0: 66 20 69 74 20 6E 65 65 64 20 62 65 20 75 73 65 f it need be use
005DD0: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 d....... T
005DE0: 68 65 20 65 78 69 74 20 63 6F 6E 64 69 74 69 6F he exit conditio
005DF0: 6E 73 20 74 65 6C 6C 20 74 68 65 20 63 61 6C 6C ns tell the call
005E00: 65 72 20 77 68 61 74 20 20 76 61 6C 75 65 73 20 er what values
005E10: 20 74 68 65 20 20 72 6F 75 74 69 6E 65 20 20 70 the routine p
005E20: 61 73 73 65 73 0D 0A 20 20 20 20 20 20 20 62 61 asses.. ba
005E30: 63 6B 20 61 6E 64 20 77 68 69 63 68 20 70 72 6F ck and which pro
005E40: 63 65 73 73 6F 72 20 72 65 67 69 73 74 65 72 73 cessor registers
005E50: 20 72 65 20 70 72 65 73 65 72 76 65 64 2E 20 20 re preserved.
005E60: 52 65 67 69 73 74 65 72 73 20 20 74 68 61 74 20 Registers that
005E70: 20 61 72 65 0D 0A 20 20 20 20 20 20 20 64 6F 63 are.. doc
005E80: 75 6D 65 6E 74 65 64 20 61 73 20 62 65 69 6E 67 umented as being
005E90: 20 63 6F 72 72 75 70 74 65 64 20 6D 61 79 20 62 corrupted may b
005EA0: 65 20 63 68 61 6E 67 65 64 20 62 79 20 20 74 68 e changed by th
005EB0: 65 20 20 72 6F 75 74 69 6E 65 20 20 6F 72 20 20 e routine or
005EC0: 6D 61 79 0D 0A 20 20 20 20 20 20 20 6E 6F 74 2E may.. not.
005ED0: 20 54 68 65 20 75 73 65 72 20 73 68 6F 75 6C 64 The user should
005EE0: 20 6E 6F 74 20 72 65 6C 79 20 6F 6E 20 20 74 68 not rely on th
005EF0: 65 69 72 20 20 63 6F 6E 74 65 6E 74 73 2E 20 20 eir contents.
005F00: 57 68 65 6E 20 20 70 72 6F 76 69 64 69 6E 67 20 When providing
005F10: 20 61 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 a.. routi
005F20: 6E 65 20 74 6F 20 66 69 74 20 74 68 69 73 20 69 ne to fit this i
005F30: 6E 74 65 72 66 61 63 65 20 69 74 20 69 73 20 65 nterface it is e
005F40: 78 74 72 65 6D 65 6C 79 20 69 6D 70 6F 72 74 61 xtremely importa
005F50: 6E 74 20 74 68 61 74 20 72 65 67 69 73 74 65 72 nt that register
005F60: 73 0D 0A 20 20 20 20 20 20 20 64 6F 63 75 6D 65 s.. docume
005F70: 6E 74 65 64 20 61 73 20 62 65 69 6E 67 20 70 72 nted as being pr
005F80: 65 73 65 72 76 65 64 20 61 72 65 20 69 6E 64 65 eserved are inde
005F90: 65 64 20 70 72 65 73 65 72 76 65 64 20 61 6E 64 ed preserved and
005FA0: 20 74 68 61 74 20 74 68 65 20 76 61 6C 75 65 73 that the values
005FB0: 0D 0A 20 20 20 20 20 20 20 72 65 74 75 72 6E 20 .. return
005FC0: 61 72 65 20 63 6F 6D 70 61 74 69 62 6C 65 20 77 are compatible w
005FD0: 69 74 68 20 74 68 65 20 6F 72 69 67 69 6E 61 6C ith the original
005FE0: 20 72 6F 75 74 69 6E 65 2E 20 43 6F 72 72 75 70 routine. Corrup
005FF0: 74 69 6E 67 20 61 20 72 65 67 69 73 74 65 72 0D ting a register.
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: 0A 20 20 20 20 20 20 20 6F 72 20 6F 6D 69 74 74 . or omitt
006110: 69 6E 67 20 61 20 72 65 73 75 6C 74 20 77 69 6C ing a result wil
006120: 6C 20 75 73 75 61 6C 6C 79 20 63 61 75 73 65 20 l usually cause
006130: 74 68 65 20 73 79 73 74 65 6D 20 74 6F 20 66 61 the system to fa
006140: 69 6C 2C 20 20 6F 66 74 65 6E 20 20 69 6E 0D 0A il, often in..
006150: 20 20 20 20 20 20 20 73 75 62 74 6C 65 20 61 6E subtle an
006160: 64 20 75 6E 65 78 70 65 63 74 65 64 20 77 61 79 d unexpected way
006170: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 s..... AMS
006180: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
006190: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
0061A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0061B0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
0061C0: 31 2E 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 1.7.............
0061D0: 0A 20 20 20 20 20 20 20 4F 66 74 65 6E 20 61 20 . Often a
0061E0: 72 6F 75 74 69 6E 65 20 77 69 6C 6C 20 68 61 76 routine will hav
0061F0: 65 20 64 69 66 66 65 72 65 6E 74 20 65 78 69 74 e different exit
006200: 20 63 6F 6E 64 69 74 69 6F 6E 73 20 64 65 70 65 conditions depe
006210: 6E 64 69 6E 67 20 6F 6E 20 20 73 6F 6D 65 0D 0A nding on some..
006220: 20 20 20 20 20 20 20 63 6F 6E 64 69 74 69 6F 6E condition
006230: 20 6F 72 20 6F 74 68 65 72 20 28 75 73 75 61 6C or other (usual
006240: 6C 79 20 77 68 65 74 68 65 72 20 69 74 20 77 6F ly whether it wo
006250: 72 6B 65 64 20 6F 72 20 6E 6F 74 29 2E 20 49 6E rked or not). In
006260: 20 74 68 65 73 65 20 20 63 61 73 65 73 0D 0A 20 these cases..
006270: 20 20 20 20 20 20 74 68 65 20 73 70 65 63 69 66 the specif
006280: 69 63 20 64 69 66 66 65 72 65 6E 63 65 73 20 69 ic differences i
006290: 6E 20 74 68 65 20 65 78 69 74 20 63 6F 6E 64 69 n the exit condi
0062A0: 74 69 6F 6E 73 20 20 61 72 65 20 20 67 69 76 65 tions are give
0062B0: 6E 20 20 66 6F 72 20 20 65 61 63 68 0D 0A 20 20 n for each..
0062C0: 20 20 20 20 20 63 61 73 65 20 61 6E 64 20 61 6C case and al
0062D0: 6C 20 63 6F 6E 64 69 74 69 6F 6E 73 20 74 68 61 l conditions tha
0062E0: 74 20 72 65 6D 61 69 6E 20 74 68 65 20 73 61 6D t remain the sam
0062F0: 65 20 69 72 72 65 73 70 65 63 74 69 76 65 20 6F e irrespective o
006300: 66 20 74 68 65 20 20 63 61 73 65 0D 0A 20 20 20 f the case..
006310: 20 20 20 20 61 72 65 20 67 69 76 65 6E 20 69 6E are given in
006320: 20 61 20 73 65 70 61 72 61 74 65 20 73 65 63 74 a separate sect
006330: 69 6F 6E 20 28 6D 61 72 6B 65 64 20 27 61 6C 77 ion (marked 'alw
006340: 61 79 73 27 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 ays').......
006350: 20 20 20 54 68 65 72 65 20 61 72 65 20 61 62 75 There are abu
006360: 6E 64 61 6E 74 20 65 78 61 6D 70 6C 65 73 20 6F ndant examples o
006370: 66 20 72 6F 75 74 69 6E 65 20 69 6E 74 65 72 66 f routine interf
006380: 61 63 65 73 20 69 6E 20 73 65 63 74 69 6F 6E 20 aces in section
006390: 31 35 20 74 6F 20 31 38 2E 0D 0A 0D 0A 0D 0A 20 15 to 18.......
0063A0: 20 20 20 20 20 20 31 2E 37 20 45 78 61 6D 70 6C 1.7 Exampl
0063B0: 65 20 6F 66 20 50 61 74 63 68 69 6E 67 20 61 20 e of Patching a
0063C0: 4A 75 6D 70 62 6C 6F 63 6B 2E 0D 0A 0D 0A 0D 0A Jumpblock.......
0063D0: 20 20 20 20 20 20 20 54 68 65 20 66 6F 6C 6C 6F The follo
0063E0: 77 69 6E 67 20 69 73 20 61 6E 20 65 78 61 6D 70 wing is an examp
0063F0: 6C 65 20 6F 66 20 68 6F 77 20 74 68 65 20 6A 75 le of how the ju
006400: 6D 70 62 6C 6F 63 6B 73 20 6D 61 79 20 62 65 20 mpblocks may be
006410: 75 73 65 64 2E 20 41 74 20 74 68 69 73 0D 0A 20 used. At this..
006420: 20 20 20 20 20 20 73 74 61 67 65 20 6D 61 6E 79 stage many
006430: 20 6F 66 20 74 68 65 20 63 6F 6E 63 65 70 74 73 of the concepts
006440: 20 69 6E 74 72 6F 64 75 63 65 64 20 6D 61 79 20 introduced may
006450: 62 65 20 75 6E 66 61 6D 69 6C 69 61 72 20 74 6F be unfamiliar to
006460: 20 74 68 65 20 72 65 61 64 65 72 2E 0D 0A 20 20 the reader...
006470: 20 20 20 20 20 48 6F 77 65 76 65 72 2C 20 73 69 However, si
006480: 6E 63 65 20 61 6C 74 65 72 69 6E 67 20 20 6A 75 nce altering ju
006490: 6D 70 62 6C 6F 63 6B 73 20 20 69 73 20 20 61 6E mpblocks is an
0064A0: 20 20 69 6D 70 6F 72 74 61 6E 74 20 20 74 65 63 important tec
0064B0: 68 6E 69 71 75 65 20 20 66 6F 72 0D 0A 20 20 20 hnique for..
0064C0: 20 20 20 20 74 61 69 6C 6F 72 69 6E 67 20 74 68 tailoring th
0064D0: 65 20 73 79 73 74 65 6D 20 74 6F 20 61 20 70 61 e system to a pa
0064E0: 72 74 69 63 75 6C 61 72 20 20 70 75 72 70 6F 73 rticular purpos
0064F0: 65 20 20 74 68 65 20 20 65 78 61 6D 70 6C 65 20 e the example
006500: 20 69 73 20 20 67 69 76 65 6E 0D 0A 20 20 20 20 is given..
006510: 20 20 20 68 65 72 65 2E 20 4C 61 74 65 72 20 73 here. Later s
006520: 65 63 74 69 6F 6E 73 20 77 69 6C 6C 20 65 78 70 ections will exp
006530: 6C 61 69 6E 20 74 68 65 20 61 63 74 69 6F 6E 73 lain the actions
006540: 20 74 61 6B 65 6E 20 68 65 72 65 2E 0D 0A 0D 0A taken here.....
006550: 0D 0A 20 20 20 20 20 20 20 53 75 70 70 6F 73 65 .. Suppose
006560: 20 61 6E 20 61 73 73 65 6D 62 6C 65 72 20 70 72 an assembler pr
006570: 6F 67 72 61 6D 20 69 73 20 62 65 69 6E 67 20 77 ogram is being w
006580: 72 69 74 74 65 6E 20 74 68 61 74 20 69 73 20 69 ritten that is i
006590: 6E 74 65 6E 64 65 64 20 74 6F 20 20 75 73 65 0D ntended to use.
0065A0: 0A 20 20 20 20 20 20 20 74 68 65 20 70 72 69 6E . the prin
0065B0: 74 65 72 20 77 68 65 6E 20 69 74 20 69 73 20 66 ter when it is f
0065C0: 69 6E 69 73 68 65 64 2E 20 57 68 69 6C 65 20 74 inished. While t
0065D0: 68 69 73 20 70 72 6F 67 72 61 6D 20 69 73 20 20 his program is
0065E0: 62 65 69 6E 67 20 20 77 72 69 74 74 65 6E 0D 0A being written..
0065F0: 20 20 20 20 20 20 20 69 74 20 77 6F 75 6C 64 20 it would
006600: 73 61 76 65 20 74 69 6D 65 20 61 6E 64 20 70 61 save time and pa
006610: 70 65 72 20 69 66 20 74 68 65 20 70 72 6F 67 72 per if the progr
006620: 61 6D 20 63 6F 75 6C 64 20 62 65 20 6D 61 64 65 am could be made
006630: 20 74 6F 20 20 75 73 65 20 20 74 68 65 0D 0A 20 to use the..
006640: 20 20 20 20 20 20 73 63 72 65 65 6E 20 69 6E 73 screen ins
006650: 74 65 61 64 20 6F 66 20 74 68 65 20 70 72 69 6E tead of the prin
006660: 74 65 72 2E 20 48 6F 77 65 76 65 72 2C 20 63 68 ter. However, ch
006670: 61 6E 67 69 6E 67 20 74 68 65 20 70 72 6F 67 72 anging the progr
006680: 61 6D 20 69 74 73 65 6C 66 20 74 6F 0D 0A 20 20 am itself to..
006690: 20 20 20 20 20 75 73 65 20 74 68 65 20 73 63 72 use the scr
0066A0: 65 65 6E 20 63 6F 75 6C 64 20 69 6E 74 72 6F 64 een could introd
0066B0: 75 63 65 20 62 75 67 73 20 77 68 65 6E 20 69 74 uce bugs when it
0066C0: 20 69 73 20 63 68 61 6E 67 65 64 20 62 61 63 6B is changed back
0066D0: 20 20 74 6F 20 20 75 73 69 6E 67 0D 0A 20 20 20 to using..
0066E0: 20 20 20 20 74 68 65 20 70 72 69 6E 74 65 72 2E the printer.
0066F0: 20 57 68 61 74 20 69 73 20 6E 65 65 64 65 64 20 What is needed
006700: 69 73 20 61 20 77 61 79 20 6F 66 20 61 6C 74 65 is a way of alte
006710: 72 69 6E 67 20 20 74 68 65 20 20 61 63 74 69 6F ring the actio
006720: 6E 20 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 n of the..
006730: 20 20 20 66 69 72 6D 77 61 72 65 20 74 68 61 74 firmware that
006740: 20 64 72 69 76 65 73 20 74 68 65 20 70 72 69 6E drives the prin
006750: 74 65 72 20 2D 20 61 6E 64 20 74 68 69 73 20 69 ter - and this i
006760: 73 20 77 68 61 74 20 61 20 52 41 4D 20 6A 75 6D s what a RAM jum
006770: 70 62 6C 6F 63 6B 20 69 73 0D 0A 20 20 20 20 20 pblock is..
006780: 20 20 66 6F 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 for.......
006790: 20 20 20 54 68 65 20 74 65 63 68 6E 69 71 75 65 The technique
0067A0: 20 74 68 61 74 20 20 77 69 6C 6C 20 20 62 65 20 that will be
0067B0: 20 75 73 65 64 20 20 74 6F 20 20 27 63 6F 6E 6E used to 'conn
0067C0: 65 63 74 27 20 20 74 68 65 20 20 70 72 69 6E 74 ect' the print
0067D0: 65 72 20 20 74 6F 20 20 61 0D 0A 20 20 20 20 20 er to a..
0067E0: 20 20 70 61 72 74 69 63 75 6C 61 72 20 74 65 78 particular tex
0067F0: 74 20 77 69 6E 64 6F 77 2E 20 54 68 69 73 20 20 t window. This
006800: 63 61 6E 20 20 62 65 20 20 61 63 68 69 65 76 65 can be achieve
006810: 64 20 20 62 79 20 20 77 72 69 74 69 6E 67 20 20 d by writing
006820: 61 20 20 73 68 6F 72 74 0D 0A 20 20 20 20 20 20 a short..
006830: 20 72 6F 75 74 69 6E 65 20 74 6F 20 73 65 6E 64 routine to send
006840: 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 74 the character t
006850: 6F 20 74 68 65 20 73 63 72 65 65 6E 20 61 6E 64 o the screen and
006860: 20 70 61 74 63 68 69 6E 67 20 74 68 65 20 65 6E patching the en
006870: 74 72 79 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 try in..
006880: 74 68 65 20 6A 75 6D 70 62 6C 6F 63 6B 20 66 6F the jumpblock fo
006890: 72 20 73 65 6E 64 69 6E 67 20 63 68 61 72 61 63 r sending charac
0068A0: 74 65 72 73 20 74 6F 20 74 68 65 20 70 72 69 6E ters to the prin
0068B0: 74 65 72 2C 20 4D 43 20 50 52 49 4E 54 20 43 48 ter, MC PRINT CH
0068C0: 41 52 2C 20 73 6F 0D 0A 20 20 20 20 20 20 20 74 AR, so.. t
0068D0: 68 61 74 20 69 74 20 6A 75 6D 70 73 20 74 6F 20 hat it jumps to
0068E0: 74 68 69 73 20 72 6F 75 74 69 6E 65 20 69 6E 73 this routine ins
0068F0: 74 65 61 64 20 6F 66 20 69 74 73 20 6E 6F 72 6D tead of its norm
006900: 61 6C 20 72 6F 75 74 69 6E 65 2E 0D 0A 0D 0A 0D al routine......
006910: 0A 20 20 20 20 20 20 20 54 68 65 20 73 75 62 73 . The subs
006920: 74 69 74 75 74 65 20 72 6F 75 74 69 6E 65 20 77 titute routine w
006930: 69 6C 6C 20 68 61 76 65 20 74 6F 20 6F 62 65 79 ill have to obey
006940: 20 74 68 65 20 65 6E 74 72 79 2F 65 78 69 74 20 the entry/exit
006950: 63 6F 6E 64 69 74 69 6F 6E 73 20 66 6F 72 0D 0A conditions for..
006960: 20 20 20 20 20 20 20 4D 43 20 50 52 49 4E 54 20 MC PRINT
006970: 43 48 41 52 2E 20 54 68 65 73 65 20 63 61 6E 20 CHAR. These can
006980: 62 65 20 66 6F 75 6E 64 20 69 6E 20 20 74 68 65 be found in the
006990: 20 20 66 75 6C 6C 20 20 64 65 73 63 72 69 70 74 full descript
0069A0: 69 6F 6E 20 20 6F 66 20 20 74 68 69 73 0D 0A 20 ion of this..
0069B0: 20 20 20 20 20 20 65 6E 74 72 79 20 69 6E 20 73 entry in s
0069C0: 65 63 74 69 6F 6E 20 31 35 2E 20 42 72 69 65 66 ection 15. Brief
0069D0: 6C 79 20 74 68 65 79 20 61 72 65 20 61 73 20 66 ly they are as f
0069E0: 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 20 20 20 20 ollows:....
0069F0: 20 20 4D 43 20 50 52 49 4E 54 20 43 48 41 52 0D MC PRINT CHAR.
006A00: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
006A10: 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E Entry condition
006A20: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s:....
006A30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006A40: 41 20 63 6F 6E 74 61 69 6E 73 20 63 68 61 72 61 A contains chara
006A50: 63 74 65 72 20 74 6F 20 70 72 69 6E 74 2E 0D 0A cter to print...
006A60: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
006A70: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
006A80: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s:....
006A90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006AA0: 49 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 If the character
006AB0: 20 77 61 73 20 73 65 6E 74 20 4F 4B 3A 0D 0A 20 was sent OK:..
006AC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006AD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006AE0: 20 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A Carry true...
006AF0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
006B00: 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 74 If t
006B10: 68 65 20 70 72 69 6E 74 65 72 20 74 69 6D 65 64 he printer timed
006B20: 20 6F 75 74 3A 0D 0A 20 20 20 20 20 20 20 20 20 out:..
006B30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006B40: 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 Carry
006B50: 20 66 61 6C 73 65 2E 0D 0A 0D 0A 20 20 20 20 20 false.....
006B60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006B70: 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A Always:....
006B80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006B90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006BA0: 20 20 20 20 41 20 61 6E 64 20 6F 74 68 65 72 20 A and other
006BB0: 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A flags corrupt...
006BC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006BD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006BE0: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
006BF0: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
006C00: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 d..... AMS
006C10: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
006C20: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
006C30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006C40: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
006C50: 31 2E 38 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 1.8.............
006C60: 0A 20 20 20 20 20 20 20 54 68 65 20 61 63 74 69 . The acti
006C70: 6F 6E 20 6F 66 20 74 68 65 20 73 75 62 73 74 69 on of the substi
006C80: 74 75 74 65 20 72 6F 75 74 69 6E 65 20 77 69 6C tute routine wil
006C90: 6C 20 20 62 65 20 20 74 6F 20 20 73 65 6C 65 63 l be to selec
006CA0: 74 20 20 74 68 65 20 20 73 63 72 65 65 6E 0D 0A t the screen..
006CB0: 20 20 20 20 20 20 20 73 74 72 65 61 6D 20 74 68 stream th
006CC0: 61 74 20 74 68 65 20 70 72 69 6E 74 65 72 20 6F at the printer o
006CD0: 75 74 70 75 74 20 69 73 20 74 6F 20 61 70 70 65 utput is to appe
006CE0: 61 72 20 6F 6E 2C 20 74 6F 20 70 72 69 6E 74 20 ar on, to print
006CF0: 74 68 65 20 63 68 61 72 61 63 74 65 72 0D 0A 20 the character..
006D00: 20 20 20 20 20 20 6F 6E 20 74 68 65 20 73 74 72 on the str
006D10: 65 61 6D 20 61 6E 64 20 74 68 65 6E 20 74 6F 20 eam and then to
006D20: 20 72 65 73 74 6F 72 65 20 20 74 68 65 20 20 73 restore the s
006D30: 74 72 65 61 6D 20 20 74 68 61 74 20 20 77 61 73 tream that was
006D40: 20 20 6F 72 69 67 69 6E 61 6C 6C 79 0D 0A 20 20 originally..
006D50: 20 20 20 20 20 73 65 6C 65 63 74 65 64 2E 20 54 selected. T
006D60: 6F 20 64 6F 20 74 68 69 73 20 74 68 65 20 73 75 o do this the su
006D70: 62 73 74 69 74 75 74 65 20 72 6F 75 74 69 6E 65 bstitute routine
006D80: 20 20 77 69 6C 6C 20 20 6E 65 65 64 20 20 74 6F will need to
006D90: 20 20 63 61 6C 6C 20 20 74 68 65 0D 0A 20 20 20 call the..
006DA0: 20 20 20 20 72 6F 75 74 69 6E 65 73 20 20 54 58 routines TX
006DB0: 54 20 20 53 54 52 20 20 53 45 4C 45 43 54 20 20 T STR SELECT
006DC0: 61 6E 64 20 20 54 58 54 20 20 4F 55 54 50 55 54 and TXT OUTPUT
006DD0: 2E 20 20 4F 6E 63 65 20 20 61 67 61 69 6E 20 20 . Once again
006DE0: 74 68 65 20 20 20 66 75 6C 6C 0D 0A 20 20 20 20 the full..
006DF0: 20 20 20 64 65 73 63 72 69 70 74 69 6F 6E 73 20 descriptions
006E00: 6F 66 20 74 68 65 73 65 20 6A 75 6D 70 62 6C 6F of these jumpblo
006E10: 63 6B 20 65 6E 74 72 69 65 73 20 63 61 6E 20 62 ck entries can b
006E20: 65 20 66 6F 75 6E 64 20 20 69 6E 20 20 73 65 63 e found in sec
006E30: 74 69 6F 6E 20 20 31 35 2E 0D 0A 20 20 20 20 20 tion 15...
006E40: 20 20 54 68 65 20 65 6E 74 72 79 2F 65 78 69 74 The entry/exit
006E50: 20 63 6F 6E 64 69 74 69 6F 6E 73 20 61 72 65 20 conditions are
006E60: 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 0D as follows:.....
006E70: 0A 20 20 20 20 20 20 20 54 58 54 20 53 54 52 20 . TXT STR
006E80: 53 45 4C 45 43 54 3A 0D 0A 0D 0A 20 20 20 20 20 SELECT:....
006E90: 20 20 20 20 20 20 20 20 20 20 20 45 6E 74 72 79 Entry
006EA0: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
006EB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006EC0: 20 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 A cont
006ED0: 61 69 6E 73 20 74 68 65 20 73 74 72 65 61 6D 20 ains the stream
006EE0: 6E 75 6D 62 65 72 20 74 6F 20 73 65 6C 65 63 74 number to select
006EF0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
006F00: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
006F10: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
006F20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006F30: 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 70 72 A contains pr
006F40: 65 76 69 6F 75 73 6C 79 20 73 65 6C 65 63 74 65 eviously selecte
006F50: 64 20 73 74 72 65 61 6D 20 6E 75 6D 62 65 72 2E d stream number.
006F60: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
006F70: 20 20 20 20 20 20 20 20 20 20 20 20 48 4C 20 61 HL a
006F80: 6E 64 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 nd flags corrupt
006F90: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
006FA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C All
006FB0: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
006FC0: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
006FD0: 0A 0D 0A 20 20 20 20 20 20 20 54 58 54 20 4F 55 ... TXT OU
006FE0: 54 50 55 54 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 TPUT:....
006FF0: 20 20 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 Entry c
007000: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
007010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007020: 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 A contai
007030: 6E 73 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 ns character to
007040: 70 72 69 6E 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 print.....
007050: 20 20 20 20 20 20 20 20 20 20 45 78 69 74 20 63 Exit c
007060: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
007070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007080: 20 20 20 20 20 20 20 20 41 6C 6C 20 72 65 67 69 All regi
007090: 73 74 65 72 73 20 61 6E 64 20 66 6C 61 67 73 20 sters and flags
0070A0: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A preserved.......
0070B0: 20 20 20 20 20 20 20 54 68 65 20 63 6F 64 65 20 The code
0070C0: 66 6F 72 20 74 68 65 20 20 73 75 62 73 74 69 74 for the substit
0070D0: 75 74 65 20 20 72 6F 75 74 69 6E 65 20 20 63 6F ute routine co
0070E0: 75 6C 64 20 20 62 65 20 20 77 72 69 74 74 65 6E uld be written
0070F0: 20 20 61 73 20 20 66 6F 6C 6C 6F 77 73 0D 0A 20 as follows..
007100: 20 20 20 20 20 20 28 73 74 72 65 61 6D 20 37 20 (stream 7
007110: 68 61 73 20 62 65 65 6E 20 63 68 6F 73 65 6E 20 has been chosen
007120: 61 73 20 74 68 65 20 73 74 72 65 61 6D 20 6F 6E as the stream on
007130: 20 77 68 69 63 68 20 70 72 69 6E 74 65 72 20 6F which printer o
007140: 75 74 70 75 74 20 69 73 20 20 74 6F 0D 0A 20 20 utput is to..
007150: 20 20 20 20 20 61 70 70 65 61 72 29 3A 0D 0A 0D appear):...
007160: 0A 20 20 20 20 20 20 20 50 55 53 48 20 48 4C 0D . PUSH HL.
007170: 0A 20 20 20 20 20 20 20 50 55 53 48 20 42 43 0D . PUSH BC.
007180: 0A 20 20 20 20 20 20 20 3B 0D 0A 20 20 20 20 20 . ;..
007190: 20 20 4C 44 20 42 2C 41 20 20 20 20 20 20 20 20 LD B,A
0071A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B ;
0071B0: 53 61 76 65 20 74 68 65 20 63 68 61 72 61 63 74 Save the charact
0071C0: 65 72 20 74 6F 20 70 72 69 6E 74 0D 0A 20 20 20 er to print..
0071D0: 20 20 20 20 3B 0D 0A 20 20 20 20 20 20 20 4C 44 ;.. LD
0071E0: 20 41 2C 37 20 20 20 20 20 20 20 20 20 20 20 20 A,7
0071F0: 20 20 20 20 20 20 20 20 20 20 20 3B 50 72 69 6E ;Prin
007200: 74 65 72 20 73 74 72 65 61 6D 20 6E 75 6D 62 65 ter stream numbe
007210: 72 0D 0A 20 20 20 20 20 20 20 43 41 4C 4C 20 54 r.. CALL T
007220: 58 54 5F 53 54 52 5F 53 45 4C 45 43 54 20 20 20 XT_STR_SELECT
007230: 20 20 20 20 20 20 20 3B 53 65 6C 65 63 74 20 74 ;Select t
007240: 68 65 20 70 72 69 6E 74 65 72 20 73 74 72 65 61 he printer strea
007250: 6D 0D 0A 20 20 20 20 20 20 20 4C 44 20 43 2C 41 m.. LD C,A
007260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007270: 20 20 20 20 20 20 20 3B 53 61 76 65 20 74 68 65 ;Save the
007280: 20 6F 72 69 67 69 6E 61 6C 20 73 74 72 65 61 6D original stream
007290: 20 6E 75 6D 62 65 72 0D 0A 20 20 20 20 20 20 20 number..
0072A0: 3B 0D 0A 20 20 20 20 20 20 20 4C 44 20 41 2C 42 ;.. LD A,B
0072B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0072C0: 20 20 20 20 20 20 20 3B 47 65 74 20 74 68 65 20 ;Get the
0072D0: 63 68 61 72 61 63 74 65 72 20 61 67 61 69 6E 0D character again.
0072E0: 0A 20 20 20 20 20 20 20 43 41 4C 4C 20 54 58 54 . CALL TXT
0072F0: 5F 4F 55 54 50 55 54 20 20 20 20 20 20 20 20 20 _OUTPUT
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 20 20 20 20 3B 53 65 6E 64 20 69 74 20 74 6F ;Send it to
007410: 20 74 68 65 20 73 63 72 65 65 6E 0D 0A 20 20 20 the screen..
007420: 20 20 20 20 3B 0D 0A 20 20 20 20 20 20 20 4C 44 ;.. LD
007430: 20 41 2C 43 20 20 20 20 20 20 20 20 20 20 20 20 A,C
007440: 20 20 20 20 20 20 20 20 20 20 20 3B 47 65 74 20 ;Get
007450: 74 68 65 20 6F 72 69 67 69 6E 61 6C 20 73 74 72 the original str
007460: 65 61 6D 20 6E 75 6D 62 65 72 0D 0A 20 20 20 20 eam number..
007470: 20 20 20 43 41 4C 4C 20 54 58 54 5F 53 54 52 5F CALL TXT_STR_
007480: 53 45 4C 45 43 54 20 20 20 20 20 20 20 20 20 20 SELECT
007490: 3B 52 65 73 65 6C 65 63 74 20 74 68 65 20 6F 72 ;Reselect the or
0074A0: 69 67 69 6E 61 6C 20 73 74 72 65 61 6D 0D 0A 20 iginal stream..
0074B0: 20 20 20 20 20 20 3B 0D 0A 20 20 20 20 20 20 20 ;..
0074C0: 50 4F 50 20 42 43 0D 0A 20 20 20 20 20 20 20 50 POP BC.. P
0074D0: 4F 50 20 48 4C 0D 0A 20 20 20 20 20 20 20 53 43 OP HL.. SC
0074E0: 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 F
0074F0: 20 20 20 20 20 20 20 20 20 20 20 3B 54 68 65 20 ;The
007500: 63 68 61 72 61 63 74 65 72 20 77 61 73 20 73 65 character was se
007510: 6E 74 20 4F 4B 0D 0A 20 20 20 20 20 20 20 52 45 nt OK.. RE
007520: 54 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D T...... AM
007530: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
007540: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
007550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007560: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
007570: 20 31 2E 39 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 1.9............
007580: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 20 74 68 .. Note th
007590: 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 70 6F 69 6E e following poin
0075A0: 74 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ts:........
0075B0: 20 20 31 2F 20 4D 43 20 50 52 49 4E 54 20 43 48 1/ MC PRINT CH
0075C0: 41 52 20 70 72 65 73 65 72 76 65 73 20 48 4C 20 AR preserves HL
0075D0: 61 6E 64 20 42 43 2E 20 54 68 65 20 72 6F 75 74 and BC. The rout
0075E0: 69 6E 65 20 61 62 6F 76 65 20 75 73 65 73 20 42 ine above uses B
0075F0: 20 20 61 6E 64 20 20 43 0D 0A 20 20 20 20 20 20 and C..
007600: 20 66 6F 72 20 74 65 6D 70 6F 72 61 72 79 20 73 for temporary s
007610: 74 6F 72 61 67 65 20 61 6E 64 20 48 4C 20 69 73 torage and HL is
007620: 20 63 6F 72 72 75 70 74 65 64 20 62 79 20 54 58 corrupted by TX
007630: 54 20 53 54 52 20 53 45 4C 45 43 54 2E 20 48 4C T STR SELECT. HL
007640: 20 61 6E 64 20 42 43 0D 0A 20 20 20 20 20 20 20 and BC..
007650: 61 72 65 20 20 74 68 65 72 65 66 6F 72 65 20 20 are therefore
007660: 70 75 73 68 65 64 20 20 61 6E 64 20 20 70 6F 70 pushed and pop
007670: 70 65 64 20 20 74 6F 20 20 70 72 65 73 65 72 76 ped to preserv
007680: 65 20 20 74 68 65 6D 20 20 74 68 72 6F 75 67 68 e them through
007690: 20 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 73 the.. s
0076A0: 75 62 73 74 69 74 75 74 65 20 72 6F 75 74 69 6E ubstitute routin
0076B0: 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 e.........
0076C0: 20 32 2F 20 4D 43 20 50 52 49 4E 54 20 43 48 41 2/ MC PRINT CHA
0076D0: 52 20 72 65 74 75 72 6E 73 20 61 20 73 75 63 63 R returns a succ
0076E0: 65 73 73 2F 66 61 69 6C 20 69 6E 64 69 63 61 74 ess/fail indicat
0076F0: 69 6F 6E 20 69 6E 20 74 68 65 20 63 61 72 72 79 ion in the carry
007700: 20 20 66 6C 61 67 2E 0D 0A 20 20 20 20 20 20 20 flag...
007710: 53 69 6E 63 65 20 74 68 65 20 72 6F 75 74 69 6E Since the routin
007720: 65 20 61 62 6F 76 65 20 63 61 6E 20 6E 65 76 65 e above can neve
007730: 72 20 66 61 69 6C 20 69 74 20 61 6C 77 61 79 73 r fail it always
007740: 20 73 65 74 73 20 74 68 65 20 20 63 61 72 72 79 sets the carry
007750: 20 20 66 6C 61 67 0D 0A 20 20 20 20 20 20 20 74 flag.. t
007760: 6F 20 69 6E 64 69 63 61 74 65 20 73 75 63 63 65 o indicate succe
007770: 73 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ss.........
007780: 20 20 33 2F 20 54 68 65 20 72 6F 75 74 69 6E 65 3/ The routine
007790: 20 61 62 6F 76 65 20 64 6F 65 73 20 6E 6F 74 20 above does not
0077A0: 63 68 61 6E 67 65 20 77 68 69 63 68 20 74 65 78 change which tex
0077B0: 74 20 73 74 72 65 61 6D 20 69 73 20 73 65 6C 65 t stream is sele
0077C0: 63 74 65 64 2E 20 49 74 0D 0A 20 20 20 20 20 20 cted. It..
0077D0: 20 73 65 6C 65 63 74 73 20 74 68 65 20 73 74 72 selects the str
0077E0: 65 61 6D 20 69 74 20 69 73 20 67 6F 69 6E 67 20 eam it is going
0077F0: 74 6F 20 70 72 69 6E 74 20 6F 6E 20 61 6E 64 20 to print on and
007800: 72 65 73 74 6F 72 65 73 20 74 68 65 20 70 72 65 restores the pre
007810: 76 69 6F 75 73 6C 79 0D 0A 20 20 20 20 20 20 20 viously..
007820: 73 65 6C 65 63 74 65 64 20 73 74 72 65 61 6D 20 selected stream
007830: 77 68 65 6E 20 69 74 20 68 61 73 20 70 72 69 6E when it has prin
007840: 74 65 64 20 74 68 65 20 20 63 68 61 72 61 63 74 ted the charact
007850: 65 72 2E 20 20 54 68 65 20 20 66 69 72 6D 77 61 er. The firmwa
007860: 72 65 20 20 69 73 0D 0A 20 20 20 20 20 20 20 77 re is.. w
007870: 72 69 74 74 65 6E 20 69 6E 20 73 75 63 68 20 61 ritten in such a
007880: 20 77 61 79 20 61 73 20 74 6F 20 61 6C 6C 6F 77 way as to allow
007890: 20 72 6F 75 74 69 6E 65 73 20 20 74 6F 20 20 72 routines to r
0078A0: 65 73 74 6F 72 65 20 20 74 68 65 20 20 6F 72 69 estore the ori
0078B0: 67 69 6E 61 6C 0D 0A 20 20 20 20 20 20 20 73 74 ginal.. st
0078C0: 61 74 65 20 77 68 65 6E 20 74 68 65 79 20 66 69 ate when they fi
0078D0: 6E 69 73 68 20 69 66 20 72 65 71 75 69 72 65 64 nish if required
0078E0: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0078F0: 54 6F 20 75 73 65 20 74 68 65 20 73 75 62 73 74 To use the subst
007900: 69 74 75 74 65 20 72 6F 75 74 69 6E 65 20 69 74 itute routine it
007910: 20 69 73 20 6E 65 63 65 73 73 61 72 79 20 74 6F is necessary to
007920: 20 70 61 74 63 68 20 69 74 20 69 6E 74 6F 20 20 patch it into
007930: 6D 65 6D 6F 72 79 0D 0A 20 20 20 20 20 20 20 61 memory.. a
007940: 6E 64 20 74 6F 20 63 68 61 6E 67 65 20 74 68 65 nd to change the
007950: 20 6A 75 6D 70 62 6C 6F 63 6B 20 65 6E 74 72 79 jumpblock entry
007960: 20 66 6F 72 20 4D 43 20 50 52 49 4E 54 20 43 48 for MC PRINT CH
007970: 41 52 20 20 74 6F 20 20 6A 75 6D 70 20 20 74 6F AR to jump to
007980: 20 20 69 74 2E 0D 0A 20 20 20 20 20 20 20 41 73 it... As
007990: 73 75 6D 65 20 74 68 61 74 20 73 6F 6D 65 20 6D sume that some m
0079A0: 65 6D 6F 72 79 20 61 74 20 23 41 42 30 30 20 68 emory at #AB00 h
0079B0: 61 73 20 62 65 65 6E 20 72 65 73 65 72 76 65 64 as been reserved
0079C0: 20 66 6F 72 20 74 68 65 20 20 73 75 62 73 74 69 for the substi
0079D0: 74 75 74 65 0D 0A 20 20 20 20 20 20 20 72 6F 75 tute.. rou
0079E0: 74 69 6E 65 20 61 6E 64 20 74 68 61 74 20 74 68 tine and that th
0079F0: 65 20 72 6F 75 74 69 6E 65 20 68 61 73 20 62 65 e routine has be
007A00: 65 6E 20 20 70 61 74 63 68 65 64 20 20 69 6E 74 en patched int
007A10: 6F 20 20 6D 65 6D 6F 72 79 2E 20 20 54 68 65 20 o memory. The
007A20: 20 4D 43 0D 0A 20 20 20 20 20 20 20 50 52 49 4E MC.. PRIN
007A30: 54 20 43 48 41 52 20 65 6E 74 72 79 20 69 6E 20 T CHAR entry in
007A40: 74 68 65 20 6A 75 6D 70 62 6C 6F 63 6B 20 69 73 the jumpblock is
007A50: 20 61 74 20 6C 6F 63 61 74 69 6F 6E 20 23 42 44 at location #BD
007A60: 32 42 20 28 61 73 20 63 61 6E 20 62 65 20 73 65 2B (as can be se
007A70: 65 6E 0D 0A 20 20 20 20 20 20 20 62 79 20 69 6E en.. by in
007A80: 73 70 65 63 74 69 6E 67 20 73 65 63 74 69 6F 6E specting section
007A90: 20 31 33 2E 20 31 2E 38 29 2E 20 54 68 65 20 74 13. 1.8). The t
007AA0: 68 72 65 65 20 62 79 74 65 73 20 6F 66 20 74 68 hree bytes of th
007AB0: 65 20 65 6E 74 72 79 20 73 68 6F 75 6C 64 20 62 e entry should b
007AC0: 65 0D 0A 20 20 20 20 20 20 20 73 65 74 20 74 6F e.. set to
007AD0: 20 74 68 65 20 69 6E 73 74 72 75 63 74 69 6F 6E the instruction
007AE0: 20 4A 50 20 23 41 42 30 30 20 62 79 20 70 61 74 JP #AB00 by pat
007AF0: 63 68 69 6E 67 20 61 73 20 66 6F 6C 6C 6F 77 73 ching as follows
007B00: 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 :........
007B10: 20 20 20 20 20 20 20 20 20 23 42 44 32 42 20 20 #BD2B
007B20: 20 20 20 23 43 33 0D 0A 20 20 20 20 20 20 20 20 #C3..
007B30: 20 20 20 20 20 20 20 20 23 42 44 32 43 20 20 20 #BD2C
007B40: 20 20 23 30 30 0D 0A 20 20 20 20 20 20 20 20 20 #00..
007B50: 20 20 20 20 20 20 20 23 42 44 32 42 20 20 20 20 #BD2B
007B60: 20 23 41 42 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 #AB........
007B70: 20 20 20 46 72 6F 6D 20 6E 6F 77 20 6F 6E 20 61 From now on a
007B80: 6C 6C 20 74 65 78 74 20 73 65 6E 74 20 74 6F 20 ll text sent to
007B90: 74 68 65 20 70 72 69 6E 74 65 72 20 77 69 6C 6C the printer will
007BA0: 20 61 70 70 65 61 72 20 6F 6E 20 74 68 65 20 73 appear on the s
007BB0: 63 72 65 65 6E 20 20 6F 6E 0D 0A 20 20 20 20 20 creen on..
007BC0: 20 20 73 74 72 65 61 6D 20 37 2E 20 4F 66 20 63 stream 7. Of c
007BD0: 6F 75 72 73 65 2C 20 73 74 72 65 61 6D 20 37 20 ourse, stream 7
007BE0: 73 68 6F 75 6C 64 20 68 61 76 65 20 69 74 73 20 should have its
007BF0: 77 69 6E 64 6F 77 20 73 65 74 20 20 73 6F 20 20 window set so
007C00: 74 68 61 74 20 20 69 74 0D 0A 20 20 20 20 20 20 that it..
007C10: 20 64 6F 65 73 20 6E 6F 74 20 69 6E 74 65 72 66 does not interf
007C20: 65 72 65 20 77 69 74 68 20 61 6E 79 20 6F 74 68 ere with any oth
007C30: 65 72 20 73 74 72 65 61 6D 20 75 73 69 6E 67 20 er stream using
007C40: 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D the screen......
007C50: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 ... This r
007C60: 65 64 69 72 65 63 74 69 6F 6E 20 77 69 6C 6C 20 edirection will
007C70: 72 65 6D 61 69 6E 20 69 6E 20 66 6F 72 63 65 20 remain in force
007C80: 75 6E 74 69 6C 20 20 74 68 65 20 20 6A 75 6D 70 until the jump
007C90: 62 6C 6F 63 6B 20 20 65 6E 74 72 79 20 20 69 73 block entry is
007CA0: 0D 0A 20 20 20 20 20 20 20 72 65 73 74 6F 72 65 .. restore
007CB0: 64 2E 20 54 68 69 73 20 63 61 6E 20 62 65 20 61 d. This can be a
007CC0: 63 68 69 65 76 65 64 20 62 79 20 70 61 74 63 68 chieved by patch
007CD0: 69 6E 67 20 74 68 65 20 6A 75 6D 70 62 6C 6F 63 ing the jumpbloc
007CE0: 6B 20 62 61 63 6B 20 61 67 61 69 6E 20 6F 72 0D k back again or.
007CF0: 0A 20 20 20 20 20 20 20 62 79 20 63 61 6C 6C 69 . by calli
007D00: 6E 67 20 4A 55 4D 50 20 52 45 53 54 4F 52 45 20 ng JUMP RESTORE
007D10: 6F 72 20 62 79 20 63 61 75 73 69 6E 67 20 61 6E or by causing an
007D20: 20 45 4D 53 20 20 69 6E 69 74 69 61 6C 69 7A 61 EMS initializa
007D30: 74 69 6F 6E 20 20 74 6F 20 20 74 61 6B 65 0D 0A tion to take..
007D40: 20 20 20 20 20 20 20 70 6C 61 63 65 20 62 79 20 place by
007D50: 72 65 73 65 74 74 69 6E 67 20 74 68 65 20 73 79 resetting the sy
007D60: 73 74 65 6D 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D stem............
007D70: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
007D80: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
007D90: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
007DA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007DB0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
007DC0: 31 2E 31 30 0D 0A 1A 20 73 65 63 74 69 6F 6E 20 1.10... section
007DD0: 20 31 34 2E 20 20 54 68 65 0D 0A 20 20 20 20 20 14. The..
007DE0: 20 20 66 69 72 73 74 20 61 6E 64 20 6C 61 72 67 first and larg
007DF0: 65 73 74 20 20 6A 75 6D 70 62 6C 6F 63 6B 20 20 est jumpblock
007E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
008000: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 50 ........ P
008010: 72 65 66 61 63 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 reface.........
008020: 20 20 20 20 20 20 54 68 65 20 63 6F 6D 70 75 74 The comput
008030: 65 72 73 20 69 6E 20 74 68 65 20 43 50 43 20 72 ers in the CPC r
008040: 61 6E 67 65 20 20 63 6F 6E 74 61 69 6E 20 20 52 ange contain R
008050: 4F 4D 73 20 20 77 68 69 63 68 20 20 68 6F 6C 64 OMs which hold
008060: 20 20 74 68 65 20 20 42 41 53 49 43 0D 0A 20 20 the BASIC..
008070: 20 20 20 20 20 69 6E 74 65 72 70 72 65 74 65 72 interpreter
008080: 20 61 6E 64 20 74 68 65 20 27 66 69 72 6D 77 61 and the 'firmwa
008090: 72 65 27 2E 20 54 68 65 20 66 69 72 6D 77 61 72 re'. The firmwar
0080A0: 65 20 20 63 6F 6E 73 69 73 74 73 20 20 6F 66 20 e consists of
0080B0: 20 6C 6F 77 20 20 6C 65 76 65 6C 0D 0A 20 20 20 low level..
0080C0: 20 20 20 20 72 6F 75 74 69 6E 65 73 20 72 65 73 routines res
0080D0: 70 6F 6E 73 69 62 6C 65 20 66 6F 72 20 64 72 69 ponsible for dri
0080E0: 76 69 6E 67 20 74 68 65 20 68 61 72 64 77 61 72 ving the hardwar
0080F0: 65 2C 20 20 68 61 6E 64 6C 69 6E 67 20 20 74 68 e, handling th
008100: 65 20 20 73 63 72 65 65 6E 2C 0D 0A 20 20 20 20 e screen,..
008110: 20 20 20 68 61 6E 64 6C 69 6E 67 20 72 65 61 6C handling real
008120: 2D 74 69 6D 65 20 65 76 65 6E 74 73 20 61 6E 64 -time events and
008130: 20 6F 74 68 65 72 20 20 73 69 6D 69 6C 61 72 20 other similar
008140: 20 66 75 6E 63 74 69 6F 6E 73 2E 20 20 54 68 69 functions. Thi
008150: 73 20 20 6D 61 6E 75 61 6C 0D 0A 20 20 20 20 20 s manual..
008160: 20 20 64 65 73 63 72 69 62 65 73 20 74 68 65 20 describes the
008170: 66 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A 0D 0A 0D firmware........
008180: 0A 20 20 20 20 20 20 20 54 68 69 73 20 6D 61 6E . This man
008190: 75 61 6C 20 69 73 20 61 70 70 6C 69 63 61 62 6C ual is applicabl
0081A0: 65 20 74 6F 20 74 68 65 20 66 75 6C 6C 20 72 61 e to the full ra
0081B0: 6E 67 65 20 6F 66 20 43 50 43 20 6D 61 63 68 69 nge of CPC machi
0081C0: 6E 65 73 3B 20 34 36 34 2C 20 36 36 34 2C 0D 0A nes; 464, 664,..
0081D0: 20 20 20 20 20 20 20 36 31 32 38 20 61 6E 64 20 6128 and
0081E0: 34 36 34 2B 44 44 49 2D 31 2E 20 54 68 65 20 66 464+DDI-1. The f
0081F0: 69 72 6D 77 61 72 65 20 69 6E 20 74 68 65 73 65 irmware in these
008200: 20 6D 61 63 68 69 6E 65 73 20 69 73 20 20 6E 6F machines is no
008210: 74 20 20 69 64 65 6E 74 69 63 61 6C 2E 0D 0A 20 t identical...
008220: 20 20 20 20 20 20 41 6C 6C 20 34 36 34 73 20 63 All 464s c
008230: 6F 6E 74 61 69 6E 20 56 31 2E 30 20 6F 66 20 74 ontain V1.0 of t
008240: 68 65 20 66 69 72 6D 77 61 72 65 2C 20 61 6C 6C he firmware, all
008250: 20 36 36 34 73 20 63 6F 6E 74 61 69 6E 20 56 31 664s contain V1
008260: 2E 31 20 20 61 6E 64 20 20 61 6C 6C 0D 0A 20 20 .1 and all..
008270: 20 20 20 20 20 36 31 32 38 73 20 63 6F 6E 74 61 6128s conta
008280: 69 6E 20 56 31 2E 32 2E 20 41 6C 6C 20 66 69 72 in V1.2. All fir
008290: 6D 77 61 72 65 20 63 61 6C 6C 73 20 61 72 65 20 mware calls are
0082A0: 20 75 70 77 61 72 64 73 20 20 63 6F 6D 70 61 74 upwards compat
0082B0: 69 62 6C 65 2C 20 20 74 68 61 74 0D 0A 20 20 20 ible, that..
0082C0: 20 20 20 20 69 73 2C 20 61 6E 79 20 66 69 72 6D is, any firm
0082D0: 77 61 72 65 20 63 61 6C 6C 20 61 76 61 69 6C 61 ware call availa
0082E0: 62 6C 65 20 69 6E 20 56 31 2E 30 20 69 73 20 61 ble in V1.0 is a
0082F0: 76 61 69 6C 61 62 6C 65 20 69 6E 20 56 31 2E 31 vailable in V1.1
008300: 20 61 6E 64 20 20 56 31 2E 32 0D 0A 20 20 20 20 and V1.2..
008310: 20 20 20 61 6E 64 20 61 6E 79 20 66 69 72 6D 77 and any firmw
008320: 61 72 65 20 63 61 6C 6C 20 61 76 61 69 6C 61 62 are call availab
008330: 6C 65 20 69 6E 20 56 31 2E 31 20 69 73 20 61 76 le in V1.1 is av
008340: 61 69 6C 61 62 6C 65 20 69 6E 20 56 31 2E 32 2E ailable in V1.2.
008350: 20 20 55 70 77 61 72 64 73 0D 0A 20 20 20 20 20 Upwards..
008360: 20 20 63 6F 6D 70 61 74 69 62 69 6C 69 74 79 20 compatibility
008370: 77 69 6C 6C 20 20 62 65 20 20 6D 61 69 6E 74 61 will be mainta
008380: 69 6E 65 64 20 20 69 6E 20 20 61 6E 79 20 20 66 ined in any f
008390: 75 74 75 72 65 20 20 76 65 72 73 69 6F 6E 73 20 uture versions
0083A0: 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 of the..
0083B0: 20 66 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A 0D 0A firmware.......
0083C0: 0D 0A 20 20 20 20 20 20 20 41 73 20 73 74 61 74 .. As stat
0083D0: 65 64 20 61 62 6F 76 65 20 74 68 69 73 20 6D 61 ed above this ma
0083E0: 6E 75 61 6C 20 72 65 6C 61 74 65 73 20 6F 6E 6C nual relates onl
0083F0: 79 20 74 6F 20 74 68 65 20 20 66 69 72 6D 77 61 y to the firmwa
008400: 72 65 20 20 73 65 63 74 69 6F 6E 20 20 6F 66 0D re section of.
008410: 0A 20 20 20 20 20 20 20 74 68 65 20 52 4F 4D 73 . the ROMs
008420: 2E 20 4F 74 68 65 72 20 41 4D 53 4F 46 54 20 70 . Other AMSOFT p
008430: 75 62 6C 69 63 61 74 69 6F 6E 73 20 20 64 65 73 ublications des
008440: 63 72 69 62 65 20 20 74 68 65 20 20 42 41 53 49 cribe the BASI
008450: 43 20 20 69 6E 74 65 72 70 72 65 74 65 72 0D 0A C interpreter..
008460: 20 20 20 20 20 20 20 28 74 68 6F 75 67 68 20 6E (though n
008470: 6F 74 20 61 74 20 61 20 73 79 73 74 65 6D 20 6C ot at a system l
008480: 65 76 65 6C 29 20 20 61 6E 64 20 20 74 68 65 20 evel) and the
008490: 20 76 61 72 69 6F 75 73 20 20 69 6D 70 6C 65 6D various implem
0084A0: 65 6E 74 61 74 69 6F 6E 73 20 20 6F 66 0D 0A 20 entations of..
0084B0: 20 20 20 20 20 20 43 50 2F 4D 2E 20 48 6F 77 65 CP/M. Howe
0084C0: 76 65 72 2C 20 74 68 65 20 61 72 65 61 73 20 69 ver, the areas i
0084D0: 6E 20 77 68 69 63 68 20 43 50 2F 4D 20 61 6E 64 n which CP/M and
0084E0: 20 74 68 65 20 66 69 72 6D 77 61 72 65 20 20 69 the firmware i
0084F0: 6E 74 65 72 61 63 74 20 20 61 72 65 0D 0A 20 20 nteract are..
008500: 20 20 20 20 20 63 6F 76 65 72 65 64 20 69 6E 20 covered in
008510: 74 68 69 73 20 6D 61 6E 75 61 6C 2E 20 41 6C 73 this manual. Als
008520: 6F 2C 20 61 72 65 61 73 20 6F 66 20 74 68 65 20 o, areas of the
008530: 66 69 72 6D 77 61 72 65 20 74 68 61 74 20 61 72 firmware that ar
008540: 65 20 20 61 66 66 65 63 74 65 64 0D 0A 20 20 20 e affected..
008550: 20 20 20 20 62 79 20 74 68 65 20 61 64 64 69 74 by the addit
008560: 69 6F 6E 20 6F 66 20 61 20 64 69 73 63 20 69 6E ion of a disc in
008570: 74 65 72 66 61 63 65 20 61 72 65 20 63 6F 76 65 terface are cove
008580: 72 65 64 20 69 6E 20 74 68 69 73 20 6D 61 6E 75 red in this manu
008590: 61 6C 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D al..............
0085A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
0085B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
0085C0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
0085D0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
0085E0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
0085F0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
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: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
008710: 20 20 20 50 52 45 46 41 43 45 0D 0A 1A 20 20 20 PREFACE...
008720: 20 20 54 68 65 20 63 6F 6D 70 75 74 65 72 73 20 The computers
008730: 69 6E 20 74 68 65 20 43 50 43 20 72 61 6E 67 65 in the CPC range
008740: 20 20 63 6F 6E 74 61 69 6E 20 20 52 4F 4D 73 20 contain ROMs
008750: 20 77 68 69 63 68 20 20 68 6F 6C 64 20 20 74 68 which hold th
008760: 65 20 20 42 41 53 49 43 0D 0A 20 20 20 20 20 20 e BASIC..
008770: 20 69 6E 74 65 72 70 72 65 74 65 72 20 61 6E 64 interpreter and
008780: 65 76 65 6C 29 20 20 61 6E 64 20 20 74 68 65 20 evel) and the
008790: 20 76 61 72 69 6F 75 73 20 20 69 6D 70 6C 65 6D various implem
0087A0: 65 6E 74 61 74 69 6F 6E 73 20 20 6F 66 0D 0A 20 entations of..
0087B0: 20 20 20 20 20 20 43 50 2F 4D 2E 20 48 6F 77 65 CP/M. Howe
0087C0: 76 65 72 2C 20 74 68 65 20 61 72 65 61 73 20 69 ver, the areas i
0087D0: 6E 20 77 68 69 63 68 20 43 50 2F 4D 20 61 6E 64 n which CP/M and
0087E0: 20 74 68 65 20 66 69 72 6D 77 61 72 65 20 20 69 the firmware i
0087F0: 6E 74 65 72 61 63 74 20 20 61 72 65 0D 0A 20 20 nteract are..
008800: 20 20 20 20 20 63 6F 76 65 72 65 64 20 69 6E 20 covered in
008810: 74 68 69 73 20 6D 61 6E 75 61 6C 2E 20 41 6C 73 this manual. Als
008820: 6F 2C 20 61 72 65 61 73 20 6F 66 20 74 68 65 20 o, areas of the
008830: 66 69 72 6D 77 61 72 65 20 74 68 61 74 20 61 72 firmware that ar
008840: 65 20 20 61 66 66 65 63 74 65 64 0D 0A 20 20 20 e affected..
008850: 20 20 20 20 62 79 20 74 68 65 20 61 64 64 69 74 by the addit
008860: 69 6F 6E 20 6F 66 20 61 20 64 69 73 63 20 69 6E ion of a disc in
008870: 74 65 72 66 61 63 65 20 61 72 65 20 63 6F 76 65 terface are cove
008880: 72 65 64 20 69 6E 20 74 68 69 73 20 6D 61 6E 75 red in this manu
008890: 61 6C 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D al..............
0088A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
0088B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
0088C0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
0088D0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
0088E0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
0088F0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
008900: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ........ T
008910: 68 65 20 43 6F 6E 74 65 6E 74 73 2E 0D 0A 0D 0A he Contents.....
008920: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 20 54 68 65 .... 1 The
008930: 20 46 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A 0D 0A Firmware.......
008940: 0D 0A 20 20 20 20 20 20 20 31 2E 31 20 20 54 68 .. 1.1 Th
008950: 65 20 48 61 72 64 77 61 72 65 2E 0D 0A 20 20 20 e Hardware...
008960: 20 20 20 20 31 2E 32 20 20 54 68 65 20 44 69 76 1.2 The Div
008970: 69 73 69 6F 6E 20 6F 66 20 74 68 65 20 46 69 72 ision of the Fir
008980: 6D 77 61 72 65 2E 0D 0A 20 20 20 20 20 20 20 31 mware... 1
008990: 2E 33 20 20 43 6F 6E 74 72 6F 6C 6C 69 6E 67 20 .3 Controlling
0089A0: 74 68 65 20 46 69 72 6D 77 61 72 65 2E 0D 0A 20 the Firmware...
0089B0: 20 20 20 20 20 20 31 2E 34 20 20 54 68 65 20 4A 1.4 The J
0089C0: 75 6D 70 62 6C 6F 63 6B 73 2E 0D 0A 20 20 20 20 umpblocks...
0089D0: 20 20 20 31 2E 35 20 20 43 6F 6E 76 65 6E 74 69 1.5 Conventi
0089E0: 6F 6E 73 2E 0D 0A 20 20 20 20 20 20 20 31 2E 36 ons... 1.6
0089F0: 20 20 52 6F 75 74 69 6E 65 20 44 6F 63 75 6D 65 Routine Docume
008A00: 6E 74 61 74 69 6F 6E 2E 0D 0A 20 20 20 20 20 20 ntation...
008A10: 20 31 2E 37 20 20 45 78 61 6D 70 6C 65 20 6F 66 1.7 Example of
008A20: 20 50 61 74 63 68 69 6E 67 20 61 20 4A 75 6D 70 Patching a Jump
008A30: 62 6C 6F 63 6B 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 block.........
008A40: 20 20 20 20 20 32 20 52 4F 4D 73 2C 20 52 41 4D 2 ROMs, RAM
008A50: 20 61 6E 64 20 74 68 65 20 52 65 73 74 61 72 74 and the Restart
008A60: 20 49 6E 73 74 72 75 63 74 69 6F 6E 73 2E 0D 0A Instructions...
008A70: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 32 2E 31 ...... 2.1
008A80: 20 20 4D 65 6D 6F 72 79 20 4D 61 70 2E 0D 0A 20 Memory Map...
008A90: 20 20 20 20 20 20 32 2E 32 20 20 52 4F 4D 20 53 2.2 ROM S
008AA0: 65 6C 65 63 74 69 6F 6E 2E 0D 0A 20 20 20 20 20 election...
008AB0: 20 20 32 2E 33 20 20 54 68 65 20 52 65 73 74 61 2.3 The Resta
008AC0: 72 74 20 49 6E 73 74 72 75 63 74 69 6F 6E 73 2E rt Instructions.
008AD0: 0D 0A 20 20 20 20 20 20 20 32 2E 34 20 20 52 41 .. 2.4 RA
008AE0: 4D 20 61 6E 64 20 74 68 65 20 46 69 72 6D 77 61 M and the Firmwa
008AF0: 72 65 2E 0D 0A 20 20 20 20 20 20 20 32 2E 35 20 re... 2.5
008B00: 20 42 61 6E 6B 20 53 77 69 74 63 68 69 6E 67 2E Bank Switching.
008B10: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 33 ........ 3
008B20: 20 54 68 65 20 4B 65 79 62 6F 61 72 64 2E 0D 0A The Keyboard...
008B30: 0D 0A 0D 0A 20 20 20 20 20 20 20 33 2E 31 20 20 .... 3.1
008B40: 4B 65 79 62 6F 61 72 64 20 53 63 61 6E 6E 69 6E Keyboard Scannin
008B50: 67 2E 0D 0A 20 20 20 20 20 20 20 33 2E 32 20 20 g... 3.2
008B60: 4B 65 79 20 54 72 61 6E 73 6C 61 74 69 6F 6E 2E Key Translation.
008B70: 0D 0A 20 20 20 20 20 20 20 33 2E 33 20 20 43 68 .. 3.3 Ch
008B80: 61 72 61 63 74 65 72 73 20 66 72 6F 6D 20 74 68 aracters from th
008B90: 65 20 4B 65 79 62 6F 61 72 64 2E 0D 0A 20 20 20 e Keyboard...
008BA0: 20 20 20 20 33 2E 34 20 20 53 68 69 66 74 20 61 3.4 Shift a
008BB0: 6E 64 20 43 61 70 73 20 4C 6F 63 6B 2E 0D 0A 20 nd Caps Lock...
008BC0: 20 20 20 20 20 20 33 2E 35 20 20 52 65 70 65 61 3.5 Repea
008BD0: 74 69 6E 67 20 4B 65 79 73 2E 0D 0A 20 20 20 20 ting Keys...
008BE0: 20 20 20 33 2E 36 20 20 42 72 65 61 6B 73 2E 0D 3.6 Breaks..
008BF0: 0A 20 20 20 20 20 20 20 33 2E 37 20 20 46 75 6E . 3.7 Fun
008C00: 63 74 69 6F 6E 20 4B 65 79 73 20 61 6E 64 20 45 ction Keys and E
008C10: 78 70 61 6E 73 69 6F 6E 20 54 6F 6B 65 6E 73 2E xpansion Tokens.
008C20: 0D 0A 20 20 20 20 20 20 20 33 2E 38 20 20 4A 6F .. 3.8 Jo
008C30: 79 73 74 69 63 6B 73 2E 0D 0A 0D 0A 0D 0A 0D 0A ysticks.........
008C40: 20 20 20 20 20 20 20 34 20 54 68 65 20 54 65 78 4 The Tex
008C50: 74 20 56 44 55 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 t VDU.......
008C60: 20 20 20 34 2E 31 20 20 54 65 78 74 20 56 44 55 4.1 Text VDU
008C70: 20 43 6F 6F 72 64 69 6E 61 74 65 20 53 79 73 74 Coordinate Syst
008C80: 65 6D 73 2E 0D 0A 20 20 20 20 20 20 20 34 2E 32 ems... 4.2
008C90: 20 20 53 74 72 65 61 6D 73 2E 0D 0A 20 20 20 20 Streams...
008CA0: 20 20 20 34 2E 33 20 20 54 65 78 74 20 50 65 6E 4.3 Text Pen
008CB0: 20 61 6E 64 20 50 61 70 65 72 20 49 6E 6B 73 2E and Paper Inks.
008CC0: 0D 0A 20 20 20 20 20 20 20 34 2E 34 20 20 54 65 .. 4.4 Te
008CD0: 78 74 20 57 69 6E 64 6F 77 73 2E 0D 0A 20 20 20 xt Windows...
008CE0: 20 20 20 20 34 2E 35 20 20 54 68 65 20 43 75 72 4.5 The Cur
008CF0: 72 65 6E 74 20 50 6F 73 69 74 69 6F 6E 20 61 6E rent Position an
008D00: 64 20 74 68 65 20 43 75 72 73 6F 72 2E 0D 0A 20 d the Cursor...
008D10: 20 20 20 20 20 20 34 2E 36 20 20 43 68 61 72 61 4.6 Chara
008D20: 63 74 65 72 73 20 61 6E 64 20 4D 61 74 72 69 63 cters and Matric
008D30: 65 73 2E 0D 0A 20 20 20 20 20 20 20 34 2E 37 20 es... 4.7
008D40: 20 43 68 61 72 61 63 74 65 72 20 4F 75 74 70 75 Character Outpu
008D50: 74 20 61 6E 64 20 43 6F 6E 74 72 6F 6C 20 43 6F t and Control Co
008D60: 64 65 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 des.........
008D70: 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 AMSTRAD CPC46
008D80: 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 4/664/6128 FIRMW
008D90: 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ARE
008DA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
008DB0: 6F 6E 74 65 6E 74 73 20 31 0D 0A 0D 0A 0D 0A 0D ontents 1.......
008DC0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
008DD0: 65 20 47 72 61 70 68 69 63 73 20 56 44 55 2E 0D e Graphics VDU..
008DE0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 35 2E ....... 5.
008DF0: 31 20 20 47 72 61 70 68 69 63 73 20 56 44 55 20 1 Graphics VDU
008E00: 43 6F 6F 72 64 69 6E 61 74 65 20 53 79 73 74 65 Coordinate Syste
008E10: 6D 73 2E 0D 0A 20 20 20 20 20 20 20 35 2E 32 20 ms... 5.2
008E20: 20 54 68 65 20 43 75 72 72 65 6E 74 20 47 72 61 The Current Gra
008E30: 70 68 69 63 73 20 50 6F 73 69 74 69 6F 6E 2E 0D phics Position..
008E40: 0A 20 20 20 20 20 20 20 35 2E 33 20 20 47 72 61 . 5.3 Gra
008E50: 70 68 69 63 73 20 50 65 6E 20 61 6E 64 20 50 61 phics Pen and Pa
008E60: 70 65 72 20 49 6E 6B 73 2E 0D 0A 20 20 20 20 20 per Inks...
008E70: 20 20 35 2E 34 20 20 47 72 61 70 68 69 63 73 20 5.4 Graphics
008E80: 57 72 69 74 65 20 4D 6F 64 65 2E 0D 0A 20 20 20 Write Mode...
008E90: 20 20 20 20 35 2E 35 20 20 47 72 61 70 68 69 63 5.5 Graphic
008EA0: 73 20 57 69 6E 64 6F 77 2E 0D 0A 20 20 20 20 20 s Window...
008EB0: 20 20 35 2E 36 20 20 57 72 69 74 69 6E 67 20 43 5.6 Writing C
008EC0: 68 61 72 61 63 74 65 72 73 2E 0D 0A 20 20 20 20 haracters...
008ED0: 20 20 20 35 2E 37 20 20 44 72 61 77 69 6E 67 20 5.7 Drawing
008EE0: 4C 69 6E 65 73 2E 0D 0A 20 20 20 20 20 20 20 35 Lines... 5
008EF0: 2E 38 20 20 46 69 6C 6C 69 6E 67 20 41 72 65 61 .8 Filling Area
008F00: 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 s.........
008F10: 20 36 20 54 68 65 20 53 63 72 65 65 6E 2E 0D 0A 6 The Screen...
008F20: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 36 2E 31 ...... 6.1
008F30: 20 20 53 63 72 65 65 6E 20 4D 6F 64 65 73 2E 0D Screen Modes..
008F40: 0A 20 20 20 20 20 20 20 36 2E 32 20 20 49 6E 6B . 6.2 Ink
008F50: 73 20 61 6E 64 20 43 6F 6C 6F 75 72 73 2E 0D 0A s and Colours...
008F60: 20 20 20 20 20 20 20 36 2E 33 20 20 53 63 72 65 6.3 Scre
008F70: 65 6E 20 41 64 64 72 65 73 73 65 73 2E 0D 0A 20 en Addresses...
008F80: 20 20 20 20 20 20 36 2E 34 20 20 53 63 72 65 65 6.4 Scree
008F90: 6E 20 4D 65 6D 6F 72 79 20 4D 61 70 2E 0D 0A 0D n Memory Map....
008FA0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 37 20 54 68 ..... 7 Th
008FB0: 65 20 53 6F 75 6E 64 20 4D 61 6E 61 67 65 72 2E e Sound Manager.
008FC0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 37 ........ 7
008FD0: 2E 31 20 20 54 68 65 20 53 6F 75 6E 64 20 43 68 .1 The Sound Ch
008FE0: 69 70 2E 0D 0A 20 20 20 20 20 20 20 37 2E 32 20 ip... 7.2
008FF0: 20 54 6F 6E 65 20 50 65 72 69 6F 64 73 20 61 6E Tone Periods an
009000: 64 20 41 6D 70 6C 69 74 75 64 65 73 2E 0D 0A 20 d Amplitudes...
009010: 20 20 20 20 20 20 37 2E 33 20 20 45 6E 76 65 6C 7.3 Envel
009020: 6F 70 69 6E 67 2E 0D 0A 20 20 20 20 20 20 20 37 oping... 7
009030: 2E 34 20 20 53 6F 75 6E 64 20 43 6F 6D 6D 61 6E .4 Sound Comman
009040: 64 73 2E 0D 0A 20 20 20 20 20 20 20 37 2E 35 20 ds... 7.5
009050: 20 53 6F 75 6E 64 20 51 75 65 75 65 73 2E 0D 0A Sound Queues...
009060: 20 20 20 20 20 20 20 37 2E 36 20 20 53 79 6E 63 7.6 Sync
009070: 68 72 6F 6E 69 7A 61 74 69 6F 6E 2E 0D 0A 20 20 hronization...
009080: 20 20 20 20 20 37 2E 37 20 20 48 6F 6C 64 69 6E 7.7 Holdin
009090: 67 20 53 6F 75 6E 64 73 2E 0D 0A 0D 0A 0D 0A 0D g Sounds........
0090A0: 0A 20 20 20 20 20 20 20 38 20 54 68 65 20 43 61 . 8 The Ca
0090B0: 73 73 65 74 74 65 20 4D 61 6E 61 67 65 72 2E 0D ssette Manager..
0090C0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 38 2E ....... 8.
0090D0: 31 20 20 46 69 6C 65 20 46 6F 72 6D 61 74 2E 0D 1 File Format..
0090E0: 0A 20 20 20 20 20 20 20 38 2E 32 20 20 52 65 63 . 8.2 Rec
0090F0: 6F 72 64 20 46 6F 72 6D 61 74 2E 0D 0A 20 20 20 ord Format...
009100: 20 20 20 20 38 2E 33 20 20 42 69 74 20 46 6F 72 8.3 Bit For
009110: 6D 61 74 2E 0D 0A 20 20 20 20 20 20 20 38 2E 34 mat... 8.4
009120: 20 20 54 68 65 20 48 65 61 64 65 72 20 52 65 63 The Header Rec
009130: 6F 72 64 2E 0D 0A 20 20 20 20 20 20 20 38 2E 35 ord... 8.5
009140: 20 20 52 65 61 64 20 61 6E 64 20 57 72 69 74 65 Read and Write
009150: 20 53 70 65 65 64 73 2E 0D 0A 20 20 20 20 20 20 Speeds...
009160: 20 38 2E 36 20 20 43 61 74 61 6C 6F 67 75 69 6E 8.6 Cataloguin
009170: 67 2E 0D 0A 20 20 20 20 20 20 20 38 2E 37 20 20 g... 8.7
009180: 52 65 61 64 69 6E 67 20 46 69 6C 65 73 2E 0D 0A Reading Files...
009190: 20 20 20 20 20 20 20 38 2E 38 20 20 57 72 69 74 8.8 Writ
0091A0: 69 6E 67 20 46 69 6C 65 73 2E 0D 0A 20 20 20 20 ing Files...
0091B0: 20 20 20 38 2E 39 20 20 52 65 61 64 69 6E 67 20 8.9 Reading
0091C0: 61 6E 64 20 57 72 69 74 69 6E 67 20 46 69 6C 65 and Writing File
0091D0: 73 20 53 69 6D 75 6C 74 61 6E 65 6F 75 73 6C 79 s Simultaneously
0091E0: 2E 0D 0A 20 20 20 20 20 20 20 38 2E 31 30 20 46 ... 8.10 F
0091F0: 69 6C 65 6E 61 6D 65 73 2E 0D 0A 20 20 20 20 20 ilenames...
009200: 20 20 38 2E 31 31 20 43 61 73 73 65 74 74 65 20 8.11 Cassette
009210: 4D 61 6E 61 67 65 72 20 4D 65 73 73 61 67 65 73 Manager Messages
009220: 2E 0D 0A 20 20 20 20 20 20 20 38 2E 31 32 20 45 ... 8.12 E
009230: 73 63 61 70 65 20 4B 65 79 0D 0A 20 20 20 20 20 scape Key..
009240: 20 20 38 2E 31 33 20 4C 6F 77 20 4C 65 76 65 6C 8.13 Low Level
009250: 20 43 61 73 73 65 74 74 65 20 44 72 69 76 69 6E Cassette Drivin
009260: 67 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 g....... A
009270: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
009280: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
009290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0092A0: 20 20 20 20 20 20 20 20 20 20 20 43 6F 6E 74 65 Conte
0092B0: 6E 74 73 20 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D nts 2...........
0092C0: 0A 0D 0A 20 20 20 20 20 20 20 39 20 41 4D 53 44 ... 9 AMSD
0092D0: 4F 53 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 OS........
0092E0: 20 39 2E 31 20 20 46 65 61 74 75 72 65 73 0D 0A 9.1 Features..
0092F0: 20 20 20 20 20 20 20 39 2E 32 20 20 46 69 6C 65 9.2 File
009300: 6E 61 6D 65 73 0D 0A 20 20 20 20 20 20 20 39 2E names.. 9.
009310: 33 20 20 46 69 6C 65 20 48 65 61 64 65 72 73 0D 3 File Headers.
009320: 0A 20 20 20 20 20 20 20 39 2E 34 20 20 44 69 73 . 9.4 Dis
009330: 63 20 4F 72 67 61 6E 69 73 61 74 69 6F 6E 0D 0A c Organisation..
009340: 20 20 20 20 20 20 20 39 2E 35 20 20 42 6F 6F 74 9.5 Boot
009350: 20 53 65 63 74 6F 72 0D 0A 20 20 20 20 20 20 20 Sector..
009360: 39 2E 36 20 20 41 4D 53 44 4F 53 20 4D 65 73 73 9.6 AMSDOS Mess
009370: 61 67 65 73 0D 0A 20 20 20 20 20 20 20 39 2E 37 ages.. 9.7
009380: 20 20 42 49 4F 53 20 46 61 63 69 6C 69 74 69 65 BIOS Facilitie
009390: 73 20 41 76 61 69 6C 61 62 6C 65 20 74 6F 20 41 s Available to A
0093A0: 4D 53 44 4F 53 0D 0A 20 20 20 20 20 20 20 39 2E MSDOS.. 9.
0093B0: 38 20 20 53 74 6F 72 65 20 72 65 71 75 69 72 65 8 Store require
0093C0: 6D 65 6E 74 73 0D 0A 20 20 20 20 20 20 20 39 2E ments.. 9.
0093D0: 39 20 20 45 78 74 65 6E 64 65 64 20 44 69 73 63 9 Extended Disc
0093E0: 20 50 61 72 61 6D 65 74 65 72 20 42 6C 6F 63 6B Parameter Block
0093F0: 73 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 s........
009400: 31 30 20 45 78 70 61 6E 73 69 6F 6E 20 52 4F 4D 10 Expansion ROM
009410: 73 2C 20 52 65 73 69 64 65 6E 74 20 53 79 73 74 s, Resident Syst
009420: 65 6D 20 45 78 74 65 6E 73 69 6F 6E 73 20 61 6E em Extensions an
009430: 64 20 52 41 4D 20 50 72 6F 67 72 61 6D 73 0D 0A d RAM Programs..
009440: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 30 2E ...... 10.
009450: 31 20 52 4F 4D 20 41 64 64 72 65 73 73 69 6E 67 1 ROM Addressing
009460: 2E 0D 0A 20 20 20 20 20 20 20 31 30 2E 32 20 54 ... 10.2 T
009470: 68 65 20 46 6F 72 6D 61 74 20 6F 66 20 61 6E 20 he Format of an
009480: 45 78 70 61 6E 73 69 6F 6E 20 52 4F 4D 2E 0D 0A Expansion ROM...
009490: 20 20 20 20 20 20 20 31 30 2E 33 20 46 6F 72 65 10.3 Fore
0094A0: 67 72 6F 75 6E 64 20 52 4F 4D 73 20 61 6E 64 20 ground ROMs and
0094B0: 52 41 4D 20 50 72 6F 67 72 61 6D 73 2E 0D 0A 20 RAM Programs...
0094C0: 20 20 20 20 20 20 31 30 2E 34 20 42 61 63 6B 67 10.4 Backg
0094D0: 72 6F 75 6E 64 20 52 4F 4D 73 2E 0D 0A 20 20 20 round ROMs...
0094E0: 20 20 20 20 31 30 2E 35 20 52 65 73 69 64 65 6E 10.5 Residen
0094F0: 74 20 53 79 73 74 65 6D 20 45 78 74 65 6E 73 69 t System Extensi
009500: 6F 6E 73 2E 0D 0A 20 20 20 20 20 20 20 31 30 2E ons... 10.
009510: 36 20 45 78 74 65 72 6E 61 6C 20 43 6F 6D 6D 61 6 External Comma
009520: 6E 64 73 2E 0D 0A 20 20 20 20 20 20 20 31 30 2E nds... 10.
009530: 37 20 45 78 61 6D 70 6C 65 73 2E 0D 0A 0D 0A 0D 7 Examples......
009540: 0A 0D 0A 20 20 20 20 20 20 20 31 31 20 49 6E 74 ... 11 Int
009550: 65 72 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A errupts.........
009560: 20 20 20 20 20 20 20 31 31 2E 31 20 54 68 65 20 11.1 The
009570: 54 69 6D 65 20 49 6E 74 65 72 72 75 70 74 2E 0D Time Interrupt..
009580: 0A 20 20 20 20 20 20 20 31 31 2E 32 20 45 78 74 . 11.2 Ext
009590: 65 72 6E 61 6C 20 49 6E 74 65 72 72 75 70 74 73 ernal Interrupts
0095A0: 2E 0D 0A 20 20 20 20 20 20 20 31 31 2E 33 20 4E ... 11.3 N
0095B0: 6F 6E 6D 61 73 6B 61 62 6C 65 20 49 6E 74 65 72 onmaskable Inter
0095C0: 72 75 70 74 73 2E 0D 0A 20 20 20 20 20 20 20 31 rupts... 1
0095D0: 31 2E 34 20 49 6E 74 65 72 72 75 70 74 73 20 61 1.4 Interrupts a
0095E0: 6E 64 20 45 76 65 6E 74 73 2E 0D 0A 20 20 20 20 nd Events...
0095F0: 20 20 20 31 31 2E 35 20 49 6E 74 65 72 72 75 70 11.5 Interrup
009600: 74 20 51 75 65 75 65 73 2E 0D 0A 0D 0A 0D 0A 0D t Queues........
009610: 0A 0D 0A 20 20 20 20 20 20 20 31 32 20 45 76 65 ... 12 Eve
009620: 6E 74 73 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 nts........
009630: 20 20 31 32 2E 31 20 45 76 65 6E 74 20 43 6C 61 12.1 Event Cla
009640: 73 73 2E 0D 0A 20 20 20 20 20 20 20 31 32 2E 32 ss... 12.2
009650: 20 45 76 65 6E 74 20 43 6F 75 6E 74 2E 0D 0A 20 Event Count...
009660: 20 20 20 20 20 20 31 32 2E 33 20 45 76 65 6E 74 12.3 Event
009670: 20 52 6F 75 74 69 6E 65 2E 0D 0A 20 20 20 20 20 Routine...
009680: 20 20 31 32 2E 34 20 44 69 73 61 72 6D 69 6E 67 12.4 Disarming
009690: 20 61 6E 64 20 52 65 69 6E 69 74 69 61 6C 69 7A and Reinitializ
0096A0: 69 6E 67 20 45 76 65 6E 74 73 2E 0D 0A 0D 0A 0D ing Events......
0096B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
0096C0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
0096D0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
0096E0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
0096F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
009700: 43 6F 6E 74 65 6E 74 73 20 33 0D 0A 0D 0A 0D 0A Contents 3......
009710: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
009720: 33 20 54 68 65 20 4D 61 63 68 69 6E 65 20 50 61 3 The Machine Pa
009730: 63 6B 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ck.........
009740: 20 20 31 33 2E 31 20 48 61 72 64 77 61 72 65 20 13.1 Hardware
009750: 49 6E 74 65 72 66 61 63 65 73 2E 0D 0A 20 20 20 Interfaces...
009760: 20 20 20 20 31 33 2E 32 20 54 68 65 20 50 72 69 13.2 The Pri
009770: 6E 74 65 72 2E 0D 0A 20 20 20 20 20 20 20 31 33 nter... 13
009780: 2E 33 20 4C 6F 61 64 69 6E 67 20 61 6E 64 20 52 .3 Loading and R
009790: 75 6E 6E 69 6E 67 20 50 72 6F 67 72 61 6D 73 2E unning Programs.
0097A0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
0097B0: 34 20 46 69 72 6D 77 61 72 65 20 4A 75 6D 70 62 4 Firmware Jumpb
0097C0: 6C 6F 63 6B 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 locks.........
0097D0: 20 20 20 20 20 31 34 2E 31 20 54 68 65 20 4D 61 14.1 The Ma
0097E0: 69 6E 20 4A 75 6D 70 62 6C 6F 63 6B 2E 0D 0A 0D in Jumpblock....
0097F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 34 2E 31 ..... 14.1
009800: 2E 31 20 20 45 6E 74 72 69 65 73 20 74 6F 20 74 .1 Entries to t
009810: 68 65 20 4B 65 79 20 4D 61 6E 61 67 65 72 2E 0D he Key Manager..
009820: 0A 20 20 20 20 20 20 20 31 34 2E 31 2E 32 20 20 . 14.1.2
009830: 45 6E 74 72 69 65 73 20 74 6F 20 74 68 65 20 54 Entries to the T
009840: 65 78 74 20 56 44 55 2E 0D 0A 20 20 20 20 20 20 ext VDU...
009850: 20 31 34 2E 31 2E 33 20 20 45 6E 74 72 69 65 73 14.1.3 Entries
009860: 20 74 6F 20 74 68 65 20 47 72 61 70 68 69 63 73 to the Graphics
009870: 20 56 44 55 2E 0D 0A 20 20 20 20 20 20 20 31 34 VDU... 14
009880: 2E 31 2E 34 20 20 45 6E 74 72 69 65 73 20 74 6F .1.4 Entries to
009890: 20 74 68 65 20 53 63 72 65 65 6E 20 50 61 63 6B the Screen Pack
0098A0: 2E 0D 0A 20 20 20 20 20 20 20 31 34 2E 31 2E 35 ... 14.1.5
0098B0: 20 20 45 6E 74 72 69 65 73 20 74 6F 20 74 68 65 Entries to the
0098C0: 20 43 61 73 73 65 74 74 65 20 4D 61 6E 61 67 65 Cassette Manage
0098D0: 72 2E 0D 0A 20 20 20 20 20 20 20 31 34 2E 31 2E r... 14.1.
0098E0: 36 20 20 45 6E 74 72 69 65 73 20 74 6F 20 74 68 6 Entries to th
0098F0: 65 20 53 6F 75 6E 64 20 4D 61 6E 61 67 65 72 2E e Sound Manager.
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: 0D 0A 20 20 20 20 20 20 20 31 34 2E 31 2E 37 20 .. 14.1.7
009A10: 20 45 6E 74 72 69 65 73 20 74 6F 20 74 68 65 20 Entries to the
009A20: 4B 65 72 6E 65 6C 2E 0D 0A 20 20 20 20 20 20 20 Kernel...
009A30: 31 34 2E 31 2E 38 20 20 45 6E 74 72 69 65 73 20 14.1.8 Entries
009A40: 74 6F 20 74 68 65 20 4D 61 63 68 69 6E 65 20 50 to the Machine P
009A50: 61 63 6B 2E 0D 0A 20 20 20 20 20 20 20 31 34 2E ack... 14.
009A60: 31 2E 39 20 20 45 6E 74 72 69 65 73 20 74 6F 20 1.9 Entries to
009A70: 74 68 65 20 4A 75 6D 70 65 72 2E 0D 0A 20 20 20 the Jumper...
009A80: 20 20 20 20 31 34 2E 31 2E 31 30 20 46 75 72 74 14.1.10 Furt
009A90: 68 65 72 20 45 6E 74 72 69 65 73 2E 0D 0A 0D 0A her Entries.....
009AA0: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 34 2E 32 20 .... 14.2
009AB0: 46 69 72 6D 77 61 72 65 20 49 6E 64 69 72 65 63 Firmware Indirec
009AC0: 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 tions.......
009AD0: 20 20 20 31 34 2E 32 2E 31 20 20 54 65 78 74 20 14.2.1 Text
009AE0: 56 44 55 20 49 6E 64 69 72 65 63 74 69 6F 6E 73 VDU Indirections
009AF0: 2E 0D 0A 20 20 20 20 20 20 20 31 34 2E 32 2E 32 ... 14.2.2
009B00: 20 20 47 72 61 70 68 69 63 73 20 56 44 55 20 49 Graphics VDU I
009B10: 6E 64 69 72 65 63 74 69 6F 6E 73 2E 0D 0A 20 20 ndirections...
009B20: 20 20 20 20 20 31 34 2E 32 2E 33 20 20 53 63 72 14.2.3 Scr
009B30: 65 65 6E 20 50 61 63 6B 20 49 6E 64 69 72 65 63 een Pack Indirec
009B40: 74 69 6F 6E 73 2E 0D 0A 20 20 20 20 20 20 20 31 tions... 1
009B50: 34 2E 32 2E 34 20 20 4B 65 79 62 6F 61 72 64 20 4.2.4 Keyboard
009B60: 4D 61 6E 61 67 65 72 20 49 6E 64 69 72 65 63 74 Manager Indirect
009B70: 69 6F 6E 73 2E 0D 0A 20 20 20 20 20 20 20 31 34 ions... 14
009B80: 2E 32 2E 35 20 20 4D 61 63 68 69 6E 65 20 50 61 .2.5 Machine Pa
009B90: 63 6B 20 49 6E 64 69 72 65 63 74 69 6F 6E 73 2E ck Indirections.
009BA0: 0D 0A 20 20 20 20 20 20 20 31 34 2E 32 2E 36 20 .. 14.2.6
009BB0: 20 46 75 72 74 68 65 72 20 49 6E 64 69 72 65 63 Further Indirec
009BC0: 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 tions.......
009BD0: 20 20 20 31 34 2E 33 20 54 68 65 20 48 69 67 68 14.3 The High
009BE0: 20 4B 65 72 6E 65 6C 20 4A 75 6D 70 62 6C 6F 63 Kernel Jumpbloc
009BF0: 6B 2E 0D 0A 20 20 20 20 20 20 20 31 34 2E 34 20 k... 14.4
009C00: 54 68 65 20 4C 6F 77 65 72 20 4B 65 72 6E 65 6C The Lower Kernel
009C10: 20 4A 75 6D 70 62 6C 6F 63 6B 2E 0D 0A 0D 0A 0D Jumpblock......
009C20: 0A 20 20 20 20 20 20 20 31 35 20 54 68 65 20 4D . 15 The M
009C30: 61 69 6E 20 46 69 72 6D 77 61 72 65 20 4A 75 6D ain Firmware Jum
009C40: 70 62 6C 6F 63 6B 2E 0D 0A 0D 0A 20 20 20 20 20 pblock.....
009C50: 20 20 31 36 20 54 68 65 20 46 69 72 6D 77 61 72 16 The Firmwar
009C60: 65 20 49 6E 64 69 72 65 63 74 69 6F 6E 73 2E 0D e Indirections..
009C70: 0A 0D 0A 20 20 20 20 20 20 20 31 37 20 4B 65 72 ... 17 Ker
009C80: 6E 65 6C 20 48 69 67 68 20 45 6E 74 72 69 65 73 nel High Entries
009C90: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 38 20 4C ..... 18 L
009CA0: 6F 77 20 45 6E 74 72 69 65 73 20 74 6F 20 74 68 ow Entries to th
009CB0: 65 20 4B 65 72 6E 65 6C 2E 0D 0A 0D 0A 20 20 20 e Kernel.....
009CC0: 20 20 20 20 31 39 20 41 4D 53 44 4F 53 20 27 42 19 AMSDOS 'B
009CD0: 49 4F 53 27 20 46 61 63 69 6C 69 74 69 65 73 0D IOS' Facilities.
009CE0: 0A 0D 0A 20 20 20 20 20 20 20 32 30 20 41 4D 53 ... 20 AMS
009CF0: 44 4F 53 20 45 78 74 65 72 6E 61 6C 20 43 6F 6D DOS External Com
009D00: 6D 61 6E 64 73 0D 0A 0D 0A 0D 0A 20 20 20 20 20 mands......
009D10: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
009D20: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
009D30: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
009D40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6F Co
009D50: 6E 74 65 6E 74 73 20 34 0D 0A 0D 0A 0D 0A 0D 0A ntents 4........
009D60: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 70 70 ...... App
009D70: 65 6E 64 69 63 65 73 0D 0A 0D 0A 0D 0A 20 20 20 endices......
009D80: 20 20 20 20 49 20 20 20 20 20 20 20 20 4B 65 79 I Key
009D90: 20 4E 75 6D 62 65 72 69 6E 67 2E 0D 0A 0D 0A 0D Numbering......
009DA0: 0A 20 20 20 20 20 20 20 49 49 20 20 20 20 20 20 . II
009DB0: 20 4B 65 79 20 54 72 61 6E 73 6C 61 74 69 6F 6E Key Translation
009DC0: 20 54 61 62 6C 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 Tables.......
009DD0: 20 20 20 20 20 49 49 49 20 20 20 20 20 20 52 65 III Re
009DE0: 70 65 61 74 69 6E 67 20 4B 65 79 73 2E 0D 0A 0D peating Keys....
009DF0: 0A 0D 0A 20 20 20 20 20 20 20 49 56 20 20 20 20 ... IV
009E00: 20 20 20 46 75 6E 63 74 69 6F 6E 20 4B 65 79 73 Function Keys
009E10: 20 61 6E 64 20 45 78 70 61 6E 73 69 6F 6E 20 53 and Expansion S
009E20: 74 72 69 6E 67 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 trings.......
009E30: 20 20 20 20 56 20 20 20 20 20 20 20 20 49 6E 6B V Ink
009E40: 73 20 61 6E 64 20 43 6F 6C 6F 75 72 73 2E 0D 0A s and Colours...
009E50: 0D 0A 0D 0A 20 20 20 20 20 20 20 56 49 20 20 20 .... VI
009E60: 20 20 20 20 44 69 73 70 6C 61 79 65 64 20 43 68 Displayed Ch
009E70: 61 72 61 63 74 65 72 20 53 65 74 2E 0D 0A 0D 0A aracter Set.....
009E80: 0D 0A 20 20 20 20 20 20 20 56 49 49 20 20 20 20 .. VII
009E90: 20 20 54 65 78 74 20 56 44 55 20 43 6F 6E 74 72 Text VDU Contr
009EA0: 6F 6C 20 43 6F 64 65 73 2E 0D 0A 0D 0A 0D 0A 20 ol Codes.......
009EB0: 20 20 20 20 20 20 56 49 49 49 20 20 20 20 20 4E VIII N
009EC0: 6F 74 65 73 20 61 6E 64 20 54 6F 6E 65 20 50 65 otes and Tone Pe
009ED0: 72 69 6F 64 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 riods.......
009EE0: 20 20 20 49 58 20 20 20 20 20 20 20 54 68 65 20 IX The
009EF0: 50 72 6F 67 72 61 6D 6D 61 62 6C 65 20 53 6F 75 Programmable Sou
009F00: 6E 64 20 47 65 6E 65 72 61 74 6F 72 2E 0D 0A 0D nd Generator....
009F10: 0A 0D 0A 20 20 20 20 20 20 20 58 20 20 20 20 20 ... X
009F20: 20 20 20 4B 65 72 6E 65 6C 20 42 6C 6F 63 6B 20 Kernel Block
009F30: 4C 61 79 6F 75 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 Layouts.......
009F40: 20 20 20 20 20 58 49 20 20 20 20 20 20 20 54 68 XI Th
009F50: 65 20 41 6C 74 65 72 6E 61 74 65 20 52 65 67 69 e Alternate Regi
009F60: 73 74 65 72 20 53 65 74 2E 0D 0A 0D 0A 0D 0A 20 ster Set.......
009F70: 20 20 20 20 20 20 58 49 49 20 20 20 20 20 20 48 XII H
009F80: 61 72 64 77 61 72 65 20 61 6E 64 20 48 61 72 64 ardware and Hard
009F90: 77 61 72 65 20 56 61 72 69 61 6E 74 73 0D 0A 0D ware Variants...
009FA0: 0A 0D 0A 20 20 20 20 20 20 20 58 49 49 49 20 20 ... XIII
009FB0: 20 20 20 48 69 6E 74 73 2C 20 54 69 70 73 20 61 Hints, Tips a
009FC0: 6E 64 20 57 6F 72 6B 61 72 6F 75 6E 64 73 2E 0D nd Workarounds..
009FD0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 58 49 56 20 ..... XIV
009FE0: 20 20 20 20 20 50 72 69 6E 74 65 72 20 54 72 61 Printer Tra
009FF0: 6E 73 6C 61 74 69 6F 6E 20 54 61 62 6C 65 2E 0D nslation Table..
00A000: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00A010: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00A020: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
00A030: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
00A040: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
00A050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A060: 20 20 20 20 43 6F 6E 74 65 6E 74 73 20 35 0D 0A Contents 5..
00A070: 1A 20 6F 66 20 74 68 65 20 46 69 72 6D 77 61 72 . of the Firmwar
00A080: 0D 0A 20 20 20 20 20 20 20 56 49 49 20 20 20 20 .. VII
00A090: 20 20 54 65 78 74 20 56 44 55 20 43 6F 6E 74 72 Text VDU Contr
00A0A0: 6F 6C 20 43 6F 64 65 73 2E 0D 0A 0D 0A 0D 0A 20 ol Codes.......
00A0B0: 20 20 20 20 20 20 56 49 49 49 20 20 20 20 20 4E VIII N
00A0C0: 6F 74 65 73 20 61 6E 64 20 54 6F 6E 65 20 50 65 otes and Tone Pe
00A0D0: 72 69 6F 64 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 riods.......
00A0E0: 20 20 20 49 58 20 20 20 20 20 20 20 54 68 65 20 IX The
00A0F0: 50 72 6F 67 72 61 6D 6D 61 62 6C 65 20 53 6F 75 Programmable Sou
00A100: 6E 64 20 47 65 6E 65 72 61 74 6F 72 2E 0D 0A 0D nd Generator....
00A110: 0A 0D 0A 20 20 20 20 20 20 20 58 20 20 20 20 20 ... X
00A120: 20 20 20 4B 65 72 6E 65 6C 20 42 6C 6F 63 6B 20 Kernel Block
00A130: 4C 61 79 6F 75 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 Layouts.......
00A140: 20 20 20 20 20 58 49 20 20 20 20 20 20 20 54 68 XI Th
00A150: 65 20 41 6C 74 65 72 6E 61 74 65 20 52 65 67 69 e Alternate Regi
00A160: 73 74 65 72 20 53 65 74 2E 0D 0A 0D 0A 0D 0A 20 ster Set.......
00A170: 20 20 20 20 20 20 58 49 49 20 20 20 20 20 20 48 XII H
00A180: 61 72 64 77 61 72 65 20 61 6E 64 20 48 61 72 64 ardware and Hard
00A190: 77 61 72 65 20 56 61 72 69 61 6E 74 73 0D 0A 0D ware Variants...
00A1A0: 0A 0D 0A 20 20 20 20 20 20 20 58 49 49 49 20 20 ... XIII
00A1B0: 20 20 20 48 69 6E 74 73 2C 20 54 69 70 73 20 61 Hints, Tips a
00A1C0: 6E 64 20 57 6F 72 6B 61 72 6F 75 6E 64 73 2E 0D nd Workarounds..
00A1D0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 58 49 56 20 ..... XIV
00A1E0: 20 20 20 20 20 50 72 69 6E 74 65 72 20 54 72 61 Printer Tra
00A1F0: 6E 73 6C 61 74 69 6F 6E 20 54 61 62 6C 65 2E 0D nslation Table..
00A200: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 32 ........ 2
00A210: 20 52 4F 4D 73 2C 20 52 41 4D 20 61 6E 64 20 74 ROMs, RAM and t
00A220: 68 65 20 52 65 73 74 61 72 74 20 49 6E 73 74 72 he Restart Instr
00A230: 75 63 74 69 6F 6E 73 0D 0A 0D 0A 0D 0A 20 20 20 uctions......
00A240: 20 20 20 20 54 68 65 20 73 79 73 74 65 6D 20 68 The system h
00A250: 61 73 20 33 32 4B 20 6F 66 20 52 4F 4D 20 61 6E as 32K of ROM an
00A260: 64 20 36 34 4B 20 6F 66 20 52 41 4D 20 20 69 6E d 64K of RAM in
00A270: 20 20 74 68 65 20 20 5A 38 30 27 73 20 20 36 34 the Z80's 64
00A280: 4B 20 20 61 64 64 72 65 73 73 0D 0A 20 20 20 20 K address..
00A290: 20 20 20 73 70 61 63 65 2E 20 54 6F 20 61 6C 6C space. To all
00A2A0: 6F 77 20 74 68 69 73 20 74 68 65 20 52 4F 4D 20 ow this the ROM
00A2B0: 63 61 6E 20 62 65 20 65 6E 61 62 6C 65 64 20 6F can be enabled o
00A2C0: 72 20 64 69 73 61 62 6C 65 64 20 20 61 73 20 20 r disabled as
00A2D0: 72 65 71 75 69 72 65 64 2E 0D 0A 20 20 20 20 20 required...
00A2E0: 20 20 41 64 64 69 74 69 6F 6E 61 6C 20 45 78 70 Additional Exp
00A2F0: 61 6E 73 69 6F 6E 20 52 4F 4D 73 20 63 61 6E 20 ansion ROMs can
00A300: 20 62 65 20 20 73 65 6C 65 63 74 65 64 20 20 67 be selected g
00A310: 69 76 69 6E 67 20 20 75 70 20 20 74 6F 20 20 34 iving up to 4
00A320: 31 32 38 4B 20 20 6F 66 0D 0A 20 20 20 20 20 20 128K of..
00A330: 20 70 72 6F 67 72 61 6D 20 61 72 65 61 2E 0D 0A program area...
00A340: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 74 .... All t
00A350: 68 65 20 5A 38 30 20 72 65 73 74 61 72 74 20 69 he Z80 restart i
00A360: 6E 73 74 72 75 63 74 69 6F 6E 73 2C 20 65 78 63 nstructions, exc
00A370: 65 70 74 20 66 6F 72 20 6F 6E 65 2C 20 68 61 76 ept for one, hav
00A380: 65 20 20 62 65 65 6E 20 20 72 65 73 65 72 76 65 e been reserve
00A390: 64 0D 0A 20 20 20 20 20 20 20 66 6F 72 20 73 79 d.. for sy
00A3A0: 73 74 65 6D 20 75 73 65 2E 20 52 53 54 20 31 20 stem use. RST 1
00A3B0: 74 6F 20 52 53 54 20 35 20 61 72 65 20 75 73 65 to RST 5 are use
00A3C0: 64 20 74 6F 20 65 78 74 65 6E 64 20 74 68 65 20 d to extend the
00A3D0: 69 6E 73 74 72 75 63 74 69 6F 6E 20 20 73 65 74 instruction set
00A3E0: 0D 0A 20 20 20 20 20 20 20 62 79 20 69 6D 70 6C .. by impl
00A3F0: 65 6D 65 6E 74 69 6E 67 20 73 70 65 63 69 61 6C ementing special
00A400: 20 63 61 6C 6C 20 61 6E 64 20 6A 75 6D 70 20 20 call and jump
00A410: 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 74 68 instructions th
00A420: 61 74 20 20 65 6E 61 62 6C 65 20 20 61 6E 64 0D at enable and.
00A430: 0A 20 20 20 20 20 20 20 64 69 73 61 62 6C 65 20 . disable
00A440: 52 4F 4D 73 2E 20 52 53 54 20 36 20 69 73 20 61 ROMs. RST 6 is a
00A450: 76 61 69 6C 61 62 6C 65 20 74 6F 20 74 68 65 20 vailable to the
00A460: 75 73 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 user.....
00A470: 32 2E 31 20 4D 65 6D 6F 72 79 20 4D 61 70 2E 0D 2.1 Memory Map..
00A480: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
00A490: 6D 65 6D 6F 72 79 20 6D 61 70 20 69 73 20 63 6F memory map is co
00A4A0: 6D 70 6C 69 63 61 74 65 64 20 62 79 20 74 68 65 mplicated by the
00A4B0: 20 66 61 63 74 20 74 68 61 74 20 69 6E 74 6F 20 fact that into
00A4C0: 74 68 65 20 5A 38 30 27 73 20 20 61 64 64 72 65 the Z80's addre
00A4D0: 73 73 0D 0A 20 20 20 20 20 20 20 73 70 61 63 65 ss.. space
00A4E0: 20 6F 66 20 36 34 4B 20 62 79 74 65 73 20 68 61 of 64K bytes ha
00A4F0: 73 20 62 65 65 6E 20 73 71 75 65 65 7A 65 64 20 s been squeezed
00A500: 36 34 4B 20 62 79 74 65 73 20 6F 66 20 52 41 4D 64K bytes of RAM
00A510: 2C 20 20 33 32 4B 20 20 62 79 74 65 73 20 20 6F , 32K bytes o
00A520: 66 0D 0A 20 20 20 20 20 20 20 52 4F 4D 20 61 6E f.. ROM an
00A530: 64 20 70 72 6F 76 69 73 69 6F 6E 20 66 6F 72 20 d provision for
00A540: 52 4F 4D 20 65 78 70 61 6E 73 69 6F 6E 20 20 6F ROM expansion o
00A550: 66 20 20 75 70 20 20 74 6F 20 20 32 35 32 2A 31 f up to 252*1
00A560: 36 4B 20 20 28 6E 65 61 72 6C 79 20 20 34 4D 29 6K (nearly 4M)
00A570: 0D 0A 20 20 20 20 20 20 20 62 79 74 65 73 2E 20 .. bytes.
00A580: 54 68 65 20 61 64 64 72 65 73 73 20 73 70 61 63 The address spac
00A590: 65 20 69 73 20 64 69 76 69 64 65 64 20 61 73 20 e is divided as
00A5A0: 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 0D 0A 20 20 follows:......
00A5B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 64 Ad
00A5C0: 64 72 65 73 73 20 20 20 20 20 20 20 20 20 20 52 dress R
00A5D0: 41 4D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 AM
00A5E0: 20 20 20 20 20 20 20 20 20 52 4F 4D 0D 0A 20 20 ROM..
00A5F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 31 #1
00A600: 30 30 30 30 20 20 20 5F 5F 5F 5F 5F 5F 5F 5F 5F 0000 _________
00A610: 5F 5F 5F 5F 5F 5F 5F 5F 20 20 20 20 23 31 30 30 ________ #100
00A620: 30 30 20 20 20 20 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 00 __________
00A630: 5F 5F 5F 5F 5F 5F 5F 0D 0A 20 20 20 20 20 20 20 _______..
00A640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A650: 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
00A660: 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 |
00A670: 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
00A680: 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 |..
00A690: 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 |
00A6A0: 44 65 66 61 75 6C 74 20 53 63 72 65 65 6E 20 7C Default Screen |
00A6B0: 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 |
00A6C0: 55 70 70 65 72 20 52 4F 4D 73 20 20 20 20 7C 0D Upper ROMs |.
00A6D0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
00A6E0: 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 4D | M
00A6F0: 65 6D 6F 72 79 20 20 20 20 20 20 7C 20 20 20 20 emory |
00A700: 20 20 20 20 20 20 20 20 7C 20 20 28 62 61 6E 6B | (bank
00A710: 20 73 77 69 74 63 68 65 64 29 7C 0D 0A 20 20 20 switched)|..
00A720: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 43 30 #C0
00A730: 30 30 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 00 |__________
00A740: 5F 5F 5F 5F 5F 5F 5F 7C 20 20 20 23 43 30 30 30 _______| #C000
00A750: 20 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F |___________
00A760: 5F 5F 5F 5F 5F 5F 7C 0D 0A 20 20 20 20 20 20 20 ______|..
00A770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A780: 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
00A790: 20 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 |..
00A7A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 |
00A7B0: 53 74 61 63 6B 2C 20 46 69 72 6D 77 61 72 65 20 Stack, Firmware
00A7C0: 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 |..
00A7D0: 20 20 20 20 20 20 20 20 20 20 20 7C 44 61 74 61 |Data
00A7E0: 20 26 20 4A 75 6D 70 62 6C 6F 63 6B 20 7C 0D 0A & Jumpblock |..
00A7F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A800: 23 42 31 30 30 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F #B100 |_______
00A810: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 0D 0A 20 20 20 __________|..
00A820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A830: 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 |
00A840: 20 20 20 20 20 20 20 7C 0D 0A 20 20 20 20 20 20 |..
00A850: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A860: 20 20 7C 20 46 6F 72 65 67 72 6F 75 6E 64 20 44 | Foreground D
00A870: 61 74 61 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 ata |..
00A880: 20 20 20 20 20 20 20 23 41 43 30 30 20 20 20 7C #AC00 |
00A890: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
00A8A0: 5F 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 _|..
00A8B0: 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 |
00A8C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 0D |.
00A8D0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
00A8E0: 20 20 20 20 20 20 20 20 20 7C 2D 2D 2D 2D 2D 2D |------
00A8F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 7C 0D 0A 20 20 -----------|..
00A900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A910: 20 20 20 20 20 20 7C 20 42 61 63 6B 67 72 6F 75 | Backgrou
00A920: 6E 64 20 44 61 74 61 20 7C 20 7D 20 23 35 30 34 nd Data | } #504
00A930: 20 62 79 74 65 73 20 66 6F 72 20 41 4D 53 44 4F bytes for AMSDO
00A940: 53 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 S..
00A950: 20 20 20 20 20 20 20 20 20 20 20 7C 2D 2D 2D 2D |----
00A960: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 7C 0D 0A -------------|..
00A970: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A980: 23 3F 3F 3F 3F 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F #???? |_______
00A990: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 0D 0A 20 20 20 __________|..
00A9A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A9B0: 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 |
00A9C0: 20 20 20 20 20 20 20 7C 0D 0A 20 20 20 20 20 20 |..
00A9D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A9E0: 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 |
00A9F0: 20 20 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 |..
00AA00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C |
00AA10: 20 20 4D 65 6D 6F 72 79 20 50 6F 6F 6C 20 20 20 Memory Pool
00AA20: 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 |..
00AA30: 20 20 20 20 23 3F 3F 3F 3F 20 20 20 7C 5F 5F 5F #???? |___
00AA40: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 20 ______________|
00AA50: 20 20 23 34 30 30 30 20 20 20 20 5F 5F 5F 5F 5F #4000 _____
00AA60: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 0D 0A 20 _____________..
00AA70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00AA80: 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 |
00AA90: 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 |
00AAA0: 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 |
00AAB0: 20 20 20 20 20 20 20 20 7C 0D 0A 20 20 20 20 20 |..
00AAC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00AAD0: 20 20 20 7C 20 42 61 63 6B 67 72 6F 75 6E 64 20 | Background
00AAE0: 44 61 74 61 20 7C 20 20 20 20 20 20 20 20 20 20 Data |
00AAF0: 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
00AB00: 20 20 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 |..
00AB10: 20 20 20 20 20 20 20 23 3F 3F 3F 3F 20 20 20 7C #???? |
00AB20: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
00AB30: 5F 7C 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 _| |
00AB40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00AB50: 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 |..
00AB60: 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 |
00AB70: 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 |
00AB80: 20 20 20 20 20 20 20 20 20 7C 20 20 4C 6F 77 65 | Lowe
00AB90: 72 20 52 4F 4D 20 20 20 20 20 20 20 7C 0D 0A 20 r ROM |..
00ABA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00ABB0: 20 20 20 20 20 20 20 7C 20 46 6F 72 65 67 72 6F | Foregro
00ABC0: 75 6E 64 20 44 61 74 61 20 7C 20 20 20 20 20 20 und Data |
00ABD0: 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 |
00ABE0: 20 20 20 20 20 20 20 20 7C 0D 0A 20 20 20 20 20 |..
00ABF0: 20 20 20 20 20 20 20 20 20 20 20 23 30 30 34 30 #0040
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 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F |____________
00AD10: 5F 5F 5F 5F 5F 7C 20 20 20 20 20 20 20 20 20 20 _____|
00AD20: 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
00AD30: 20 20 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 |..
00AD40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C |
00AD50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00AD60: 20 7C 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 | |
00AD70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00AD80: 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 |..
00AD90: 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 46 69 | Fi
00ADA0: 72 6D 77 61 72 65 20 41 72 65 61 20 20 7C 20 20 rmware Area |
00ADB0: 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 |
00ADC0: 20 20 20 20 20 20 20 20 20 20 20 20 7C 0D 0A 20 |..
00ADD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
00ADE0: 30 30 30 30 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 0000 |________
00ADF0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 20 20 20 23 30 30 _________| #00
00AE00: 30 30 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 00 |__________
00AE10: 5F 5F 5F 5F 5F 5F 5F 5F 7C 0D 0A 0D 0A 0D 0A 0D ________|.......
00AE20: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
00AE30: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
00AE40: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
00AE50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00AE60: 20 20 20 20 20 20 70 61 67 65 20 32 2E 31 0D 0A page 2.1..
00AE70: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
00AE80: 20 20 20 54 68 65 20 73 69 7A 65 20 6F 66 20 74 The size of t
00AE90: 68 65 20 74 77 6F 20 62 61 63 6B 67 72 6F 75 6E he two backgroun
00AEA0: 64 20 61 72 65 61 73 20 64 65 70 65 6E 64 20 20 d areas depend
00AEB0: 6F 6E 20 20 74 68 65 20 20 62 61 63 6B 67 72 6F on the backgro
00AEC0: 75 6E 64 20 20 52 4F 4D 73 0D 0A 20 20 20 20 20 und ROMs..
00AED0: 20 20 66 69 74 74 65 64 20 74 6F 20 74 68 65 20 fitted to the
00AEE0: 6D 61 63 68 69 6E 65 20 28 73 65 65 20 73 65 63 machine (see sec
00AEF0: 74 69 6F 6E 20 39 29 2E 0D 0A 0D 0A 20 20 20 20 tion 9).....
00AF00: 20 20 20 54 68 65 20 75 70 70 65 72 20 66 6F 72 The upper for
00AF10: 65 67 72 6F 75 6E 64 20 64 61 74 61 20 61 72 65 eground data are
00AF20: 61 20 6E 65 65 64 20 6E 6F 74 20 68 61 76 65 20 a need not have
00AF30: 69 74 73 20 6C 6F 77 65 72 20 62 6F 75 6E 64 20 its lower bound
00AF40: 61 74 20 20 23 41 43 30 30 0D 0A 20 20 20 20 20 at #AC00..
00AF50: 20 20 62 75 74 20 74 68 69 73 20 69 73 20 20 74 but this is t
00AF60: 68 65 20 20 64 65 66 61 75 6C 74 20 20 73 65 74 he default set
00AF70: 74 69 6E 67 20 20 28 61 73 20 20 75 73 65 64 20 ting (as used
00AF80: 20 62 79 20 20 42 41 53 49 43 29 2E 20 20 54 68 by BASIC). Th
00AF90: 65 20 20 6C 6F 77 65 72 0D 0A 20 20 20 20 20 20 e lower..
00AFA0: 20 66 6F 72 65 67 72 6F 75 6E 64 20 64 61 74 61 foreground data
00AFB0: 20 61 72 65 61 20 6E 65 65 64 20 6F 6E 6C 79 20 area need only
00AFC0: 62 65 20 72 65 73 65 72 76 65 64 20 69 66 20 69 be reserved if i
00AFD0: 74 20 69 73 20 6E 65 65 64 65 64 20 28 74 68 69 t is needed (thi
00AFE0: 73 20 20 61 72 65 61 0D 0A 20 20 20 20 20 20 20 s area..
00AFF0: 69 73 20 6E 6F 74 20 75 73 65 64 20 62 79 20 42 is not used by B
00B000: 41 53 49 43 20 61 6E 64 20 69 73 20 73 65 74 20 ASIC and is set
00B010: 74 6F 20 7A 65 72 6F 20 6C 65 6E 67 74 68 29 2E to zero length).
00B020: 20 54 68 65 20 6D 65 6D 6F 72 79 20 70 6F 6F 6C The memory pool
00B030: 20 20 6C 65 66 74 0D 0A 20 20 20 20 20 20 20 62 left.. b
00B040: 65 74 77 65 65 6E 20 74 68 65 20 62 61 63 6B 67 etween the backg
00B050: 72 6F 75 6E 64 20 64 61 74 61 20 61 72 65 61 73 round data areas
00B060: 20 69 73 20 61 6C 73 6F 20 66 6F 72 20 74 68 65 is also for the
00B070: 20 20 66 6F 72 65 67 72 6F 75 6E 64 20 20 70 72 foreground pr
00B080: 6F 67 72 61 6D 0D 0A 20 20 20 20 20 20 20 74 6F ogram.. to
00B090: 20 75 73 65 20 28 73 65 65 20 73 65 63 74 69 6F use (see sectio
00B0A0: 6E 20 39 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 n 9).....
00B0B0: 54 68 65 20 33 32 4B 20 6F 66 20 6F 6E 2D 62 6F The 32K of on-bo
00B0C0: 61 72 64 20 52 4F 4D 20 69 73 20 73 70 6C 69 74 ard ROM is split
00B0D0: 20 69 6E 74 6F 20 74 77 6F 20 73 65 63 74 69 6F into two sectio
00B0E0: 6E 73 20 77 68 69 63 68 20 20 61 72 65 20 20 68 ns which are h
00B0F0: 61 6E 64 6C 65 64 0D 0A 20 20 20 20 20 20 20 73 andled.. s
00B100: 65 70 61 72 61 74 65 6C 79 2E 20 48 65 6E 63 65 eparately. Hence
00B110: 66 6F 72 74 68 20 20 74 68 65 73 65 20 20 77 69 forth these wi
00B120: 6C 6C 20 20 62 65 20 20 64 69 73 63 75 73 73 65 ll be discusse
00B130: 64 20 20 61 73 20 20 69 66 20 20 74 68 65 79 20 d as if they
00B140: 20 77 65 72 65 0D 0A 20 20 20 20 20 20 20 73 65 were.. se
00B150: 70 61 72 61 74 65 20 52 4F 4D 73 2E 20 54 68 65 parate ROMs. The
00B160: 20 66 69 72 6D 77 61 72 65 20 20 72 65 73 69 64 firmware resid
00B170: 65 73 20 20 69 6E 20 20 74 68 65 20 20 6C 6F 77 es in the low
00B180: 65 72 20 20 52 4F 4D 2E 20 20 54 68 65 20 20 42 er ROM. The B
00B190: 41 53 49 43 0D 0A 20 20 20 20 20 20 20 72 65 73 ASIC.. res
00B1A0: 69 64 65 73 20 69 6E 20 74 68 65 20 75 70 70 65 ides in the uppe
00B1B0: 72 20 52 4F 4D 2E 20 54 68 69 73 20 75 70 70 65 r ROM. This uppe
00B1C0: 72 20 52 4F 4D 20 69 73 20 62 61 6E 6B 20 73 77 r ROM is bank sw
00B1D0: 69 74 63 68 65 64 20 73 6F 20 20 74 68 61 74 20 itched so that
00B1E0: 20 75 70 0D 0A 20 20 20 20 20 20 20 74 6F 20 32 up.. to 2
00B1F0: 35 32 20 65 78 70 61 6E 73 69 6F 6E 20 52 4F 4D 52 expansion ROM
00B200: 73 20 28 73 65 65 20 73 65 63 74 69 6F 6E 20 39 s (see section 9
00B210: 29 20 63 61 6E 20 72 65 70 6C 61 63 65 20 20 69 ) can replace i
00B220: 74 20 20 69 6E 20 20 74 68 65 20 20 6D 65 6D 6F t in the memo
00B230: 72 79 0D 0A 20 20 20 20 20 20 20 6D 61 70 2E 0D ry.. map..
00B240: 0A 0D 0A 20 20 20 20 20 20 20 32 2E 32 20 52 4F ... 2.2 RO
00B250: 4D 20 53 65 6C 65 63 74 69 6F 6E 2E 0D 0A 0D 0A M Selection.....
00B260: 20 20 20 20 20 20 20 54 68 65 72 65 20 61 72 65 There are
00B270: 20 74 77 6F 20 6D 65 63 68 61 6E 69 73 6D 73 20 two mechanisms
00B280: 66 6F 72 20 73 77 69 74 63 68 69 6E 67 20 52 4F for switching RO
00B290: 4D 73 20 69 6E 20 61 6E 64 20 6F 75 74 20 6F 66 Ms in and out of
00B2A0: 20 74 68 65 20 20 61 64 64 72 65 73 73 0D 0A 20 the address..
00B2B0: 20 20 20 20 20 20 73 70 61 63 65 3A 0D 0A 0D 0A space:....
00B2C0: 20 20 20 20 20 20 20 61 2E 20 52 4F 4D 20 53 74 a. ROM St
00B2D0: 61 74 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ate.....
00B2E0: 20 20 20 54 68 65 20 75 70 70 65 72 20 61 6E 64 The upper and
00B2F0: 20 6C 6F 77 65 72 20 52 4F 4D 73 20 6D 61 79 20 lower ROMs may
00B300: 62 65 20 65 6E 61 62 6C 65 64 20 61 6E 64 20 20 be enabled and
00B310: 64 69 73 61 62 6C 65 64 20 20 73 65 70 61 72 61 disabled separa
00B320: 74 65 6C 79 2E 0D 0A 20 20 20 20 20 20 20 20 20 tely...
00B330: 20 20 57 68 65 6E 20 74 68 65 20 75 70 70 65 72 When the upper
00B340: 20 52 4F 4D 20 69 73 20 65 6E 61 62 6C 65 64 20 ROM is enabled
00B350: 64 61 74 61 20 20 72 65 61 64 20 20 66 72 6F 6D data read from
00B360: 20 20 61 64 64 72 65 73 73 65 73 20 20 62 65 74 addresses bet
00B370: 77 65 65 6E 0D 0A 20 20 20 20 20 20 20 20 20 20 ween..
00B380: 20 23 43 30 30 30 20 61 6E 64 20 23 46 46 46 46 #C000 and #FFFF
00B390: 20 69 73 20 66 65 74 63 68 65 64 20 66 72 6F 6D is fetched from
00B3A0: 20 74 68 65 20 52 4F 4D 2E 20 53 69 6D 69 6C 61 the ROM. Simila
00B3B0: 72 6C 79 2C 20 77 68 65 6E 20 74 68 65 20 6C 6F rly, when the lo
00B3C0: 77 65 72 0D 0A 20 20 20 20 20 20 20 20 20 20 20 wer..
00B3D0: 52 4F 4D 20 69 73 20 65 6E 61 62 6C 65 64 20 64 ROM is enabled d
00B3E0: 61 74 61 20 72 65 61 64 20 66 6F 72 6D 20 61 64 ata read form ad
00B3F0: 64 72 65 73 73 65 73 20 62 65 74 77 65 65 6E 20 dresses between
00B400: 23 30 30 30 30 20 61 6E 64 20 23 33 46 46 46 20 #0000 and #3FFF
00B410: 69 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 66 is.. f
00B420: 65 74 63 68 65 64 20 66 72 6F 6D 20 74 68 65 20 etched from the
00B430: 52 4F 4D 2E 20 57 68 65 6E 20 74 68 65 20 52 4F ROM. When the RO
00B440: 4D 73 20 61 72 65 20 64 69 73 61 62 6C 65 64 20 Ms are disabled
00B450: 64 61 74 61 20 20 69 73 20 20 66 65 74 63 68 65 data is fetche
00B460: 64 0D 0A 20 20 20 20 20 20 20 20 20 20 20 66 72 d.. fr
00B470: 6F 6D 20 52 41 4D 2E 0D 0A 0D 0A 20 20 20 20 20 om RAM.....
00B480: 20 20 20 20 20 20 4E 6F 74 65 20 74 68 61 74 20 Note that
00B490: 74 68 65 20 52 4F 4D 20 73 74 61 74 65 20 20 64 the ROM state d
00B4A0: 6F 65 73 20 20 6E 6F 74 20 20 61 66 66 65 63 74 oes not affect
00B4B0: 20 20 77 72 69 74 69 6E 67 20 20 77 68 69 63 68 writing which
00B4C0: 20 20 61 6C 77 61 79 73 0D 0A 20 20 20 20 20 20 always..
00B4D0: 20 20 20 20 20 63 68 61 6E 67 65 73 20 74 68 65 changes the
00B4E0: 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 52 41 4D contents of RAM
00B4F0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 62 2E 20 52 ..... b. R
00B500: 4F 4D 20 53 65 6C 65 63 74 2E 0D 0A 0D 0A 0D 0A OM Select.......
00B510: 20 20 20 20 20 20 20 20 20 20 20 45 78 70 61 6E Expan
00B520: 73 69 6F 6E 20 52 4F 4D 73 20 61 72 65 20 73 75 sion ROMs are su
00B530: 70 70 6F 72 74 65 64 20 20 62 79 20 20 73 77 69 pported by swi
00B540: 74 63 68 69 6E 67 20 20 74 68 65 20 20 75 70 70 tching the upp
00B550: 65 72 20 20 52 4F 4D 20 20 61 72 65 61 0D 0A 20 er ROM area..
00B560: 20 20 20 20 20 20 20 20 20 20 62 65 74 77 65 65 betwee
00B570: 6E 20 52 4F 4D 73 2E 20 45 78 70 61 6E 73 69 6F n ROMs. Expansio
00B580: 6E 20 52 4F 4D 73 20 20 61 72 65 20 20 61 64 64 n ROMs are add
00B590: 72 65 73 73 65 64 20 20 62 79 20 20 61 20 20 73 ressed by a s
00B5A0: 65 70 61 72 61 74 65 20 20 52 4F 4D 0D 0A 20 20 eparate ROM..
00B5B0: 20 20 20 20 20 20 20 20 20 73 65 6C 65 63 74 20 select
00B5C0: 61 64 64 72 65 73 73 20 62 79 74 65 20 69 6D 70 address byte imp
00B5D0: 6C 65 6D 65 6E 74 65 64 20 69 6E 20 49 2F 4F 20 lemented in I/O
00B5E0: 73 70 61 63 65 2E 20 52 4F 4D 20 73 65 6C 65 63 space. ROM selec
00B5F0: 74 20 61 64 64 72 65 73 73 65 73 0D 0A 20 20 20 t addresses..
00B600: 20 20 20 20 20 20 20 20 61 72 65 20 69 6E 20 74 are in t
00B610: 68 65 20 72 61 6E 67 65 20 30 2E 2E 32 35 31 2C he range 0..251,
00B620: 20 70 72 6F 76 69 64 69 6E 67 20 66 6F 72 20 75 providing for u
00B630: 70 20 74 6F 20 32 35 32 20 65 78 70 61 6E 73 69 p to 252 expansi
00B640: 6F 6E 20 52 4F 4D 73 2E 0D 0A 0D 0A 0D 0A 20 20 on ROMs.......
00B650: 20 20 20 20 20 20 20 20 20 57 68 65 6E 20 74 68 When th
00B660: 65 20 6D 61 63 68 69 6E 65 20 69 73 20 66 69 72 e machine is fir
00B670: 73 74 20 74 75 72 6E 65 64 20 6F 6E 20 69 74 20 st turned on it
00B680: 73 65 6C 65 63 74 73 20 52 4F 4D 20 7A 65 72 6F selects ROM zero
00B690: 2E 20 54 68 69 73 20 77 69 6C 6C 0D 0A 20 20 20 . This will..
00B6A0: 20 20 20 20 20 20 20 20 75 73 75 61 6C 6C 79 20 usually
00B6B0: 73 65 6C 65 63 74 20 74 68 65 20 6F 6E 20 62 6F select the on bo
00B6C0: 61 72 64 20 52 4F 4D 2C 20 20 62 75 74 20 20 61 ard ROM, but a
00B6D0: 6E 20 20 65 78 70 61 6E 73 69 6F 6E 20 20 52 4F n expansion RO
00B6E0: 4D 20 20 6D 61 79 20 20 62 65 0D 0A 20 20 20 20 M may be..
00B6F0: 20 20 20 20 20 20 20 66 69 74 74 65 64 20 61 74 fitted at
00B700: 20 74 68 69 73 20 61 64 64 72 65 73 73 2C 20 77 this address, w
00B710: 68 69 63 68 20 77 69 6C 6C 20 70 72 65 2D 65 6D hich will pre-em
00B720: 70 74 20 74 68 65 20 6F 6E 2D 62 6F 61 72 64 20 pt the on-board
00B730: 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ROM.....
00B740: 20 20 20 53 65 65 20 73 65 63 74 69 6F 6E 20 39 See section 9
00B750: 20 66 6F 72 20 61 20 64 65 73 63 72 69 70 74 69 for a descripti
00B760: 6F 6E 20 6F 66 20 74 68 65 20 75 73 65 20 6F 66 on of the use of
00B770: 20 65 78 70 61 6E 73 69 6F 6E 20 52 4F 4D 73 2E expansion ROMs.
00B780: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 32 2E 33 ...... 2.3
00B790: 20 54 68 65 20 52 65 73 74 61 72 74 20 49 6E 73 The Restart Ins
00B7A0: 74 72 75 63 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 tructions.....
00B7B0: 20 20 20 20 20 54 68 65 20 6B 65 72 6E 65 6C 20 The kernel
00B7C0: 73 75 70 70 6F 72 74 73 20 74 68 65 20 73 74 6F supports the sto
00B7D0: 72 65 20 6D 61 70 20 69 6E 20 61 20 6E 75 6D 62 re map in a numb
00B7E0: 65 72 20 6F 66 20 77 61 79 73 2E 20 49 6E 20 70 er of ways. In p
00B7F0: 61 72 74 69 63 75 6C 61 72 20 61 0D 0A 20 20 20 articular a..
00B800: 20 20 20 20 76 61 72 69 65 74 79 20 6F 66 20 66 variety of f
00B810: 61 63 69 6C 69 74 69 65 73 20 61 72 65 20 20 70 acilities are p
00B820: 72 6F 76 69 64 65 64 20 20 74 6F 20 20 68 61 6E rovided to han
00B830: 64 6C 65 20 20 73 75 62 72 6F 75 74 69 6E 65 20 dle subroutine
00B840: 20 61 64 64 72 65 73 73 65 73 0D 0A 20 20 20 20 addresses..
00B850: 20 20 20 65 78 74 65 6E 74 65 64 20 74 6F 20 69 extented to i
00B860: 6E 63 6C 75 64 65 20 52 4F 4D 20 73 65 6C 65 63 nclude ROM selec
00B870: 74 20 61 6E 64 2F 6F 72 20 52 4F 4D 20 73 74 61 t and/or ROM sta
00B880: 74 65 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 2E 20 te information.
00B890: 20 53 6F 6D 65 20 20 6F 66 0D 0A 20 20 20 20 20 Some of..
00B8A0: 20 20 74 68 65 20 20 72 65 73 74 61 72 74 20 20 the restart
00B8B0: 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 20 61 72 instructions ar
00B8C0: 65 20 20 75 73 65 64 20 20 74 6F 20 20 61 75 67 e used to aug
00B8D0: 6D 65 6E 74 20 20 74 68 65 20 20 65 78 69 73 74 ment the exist
00B8E0: 69 6E 67 20 20 5A 38 30 0D 0A 20 20 20 20 20 20 ing Z80..
00B8F0: 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 73 65 74 instruction set
00B900: 2E 20 54 68 65 20 6F 74 68 65 72 20 72 65 73 74 . The other rest
00B910: 61 72 74 73 20 61 72 65 20 72 65 73 65 72 76 65 arts are reserve
00B920: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 d....... A
00B930: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
00B940: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
00B950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B960: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
00B970: 65 20 32 2E 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D e 2.2...........
00B980: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 69 ... The fi
00B990: 72 6D 77 61 72 65 20 62 65 74 77 65 65 6E 20 23 rmware between #
00B9A0: 30 30 30 30 20 61 6E 64 20 23 30 30 33 46 20 69 0000 and #003F i
00B9B0: 73 20 73 65 74 20 75 70 20 73 6F 20 20 74 68 61 s set up so tha
00B9C0: 74 20 20 74 68 65 20 20 72 65 73 74 61 72 74 73 t the restarts
00B9D0: 0D 0A 20 20 20 20 20 20 20 6F 70 65 72 61 74 65 .. operate
00B9E0: 20 77 68 61 74 65 76 65 72 20 74 68 65 20 63 75 whatever the cu
00B9F0: 72 72 65 6E 74 20 52 4F 4D 20 73 74 61 74 65 20 rrent ROM state
00BA00: 69 73 2E 20 54 68 65 20 75 73 65 72 20 73 68 6F is. The user sho
00BA10: 75 6C 64 20 20 6E 6F 74 20 20 61 6C 74 65 72 0D uld not alter.
00BA20: 0A 20 20 20 20 20 20 20 74 68 65 20 63 6F 6E 74 . the cont
00BA30: 65 6E 74 73 20 6F 66 20 74 68 69 73 20 61 72 65 ents of this are
00BA40: 61 20 65 78 63 65 70 74 20 61 73 20 69 6E 64 69 a except as indi
00BA50: 63 61 74 65 64 20 69 6E 20 73 65 63 74 69 6F 6E cated in section
00BA60: 20 31 38 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 18..... T
00BA70: 68 65 20 72 65 73 74 61 72 74 73 20 61 72 65 20 he restarts are
00BA80: 61 73 20 66 6F 6C 6C 6F 77 73 2E 20 41 20 66 75 as follows. A fu
00BA90: 6C 6C 65 72 20 64 65 73 63 72 69 70 74 69 6F 6E ller description
00BAA0: 20 6F 66 20 20 74 68 65 69 72 20 20 6F 70 65 72 of their oper
00BAB0: 61 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 63 61 ation.. ca
00BAC0: 6E 20 62 65 20 66 6F 75 6E 64 20 69 6E 20 73 65 n be found in se
00BAD0: 63 74 69 6F 6E 20 31 38 2E 0D 0A 0D 0A 20 20 20 ction 18.....
00BAE0: 20 20 20 20 61 2E 20 54 68 65 20 45 78 74 65 6E a. The Exten
00BAF0: 64 65 64 20 49 6E 73 74 72 75 63 74 69 6F 6E 20 ded Instruction
00BB00: 53 65 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4C Set..... L
00BB10: 4F 57 20 4A 55 4D 50 20 28 52 53 54 20 31 29 0D OW JUMP (RST 1).
00BB20: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 52 53 ... RS
00BB30: 54 20 31 20 6A 75 6D 70 73 20 74 6F 20 61 20 72 T 1 jumps to a r
00BB40: 6F 75 74 69 6E 65 20 69 6E 20 74 68 65 20 6C 6F outine in the lo
00BB50: 77 65 72 20 31 36 4B 20 6F 66 20 6D 65 6D 6F 72 wer 16K of memor
00BB60: 79 2E 20 54 68 65 20 74 77 6F 20 62 79 74 65 73 y. The two bytes
00BB70: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 66 6F 6C .. fol
00BB80: 6C 6F 77 69 6E 67 20 74 68 65 20 72 65 73 74 61 lowing the resta
00BB90: 72 74 20 61 72 65 20 61 73 73 75 6D 65 64 20 74 rt are assumed t
00BBA0: 6F 20 62 65 20 61 20 27 6C 6F 77 20 61 64 64 72 o be a 'low addr
00BBB0: 65 73 73 27 20 2D 20 73 6F 20 52 53 54 20 31 0D ess' - so RST 1.
00BBC0: 0A 20 20 20 20 20 20 20 20 20 20 20 63 61 6E 20 . can
00BBD0: 62 65 20 63 6F 6E 73 69 64 65 72 65 64 20 74 6F be considered to
00BBE0: 20 62 65 20 61 20 74 68 72 65 65 20 62 79 74 65 be a three byte
00BBF0: 20 69 6E 73 74 72 75 63 74 69 6F 6E 2C 20 72 61 instruction, ra
00BC00: 74 68 65 72 20 6C 69 6B 65 20 61 20 4A 50 0D 0A ther like a JP..
00BC10: 20 20 20 20 20 20 20 20 20 20 20 69 6E 73 74 72 instr
00BC20: 75 63 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 20 uction.....
00BC30: 20 20 20 20 20 20 54 68 65 20 74 6F 70 20 32 20 The top 2
00BC40: 62 69 74 73 20 6F 66 20 74 68 65 20 27 6C 6F 77 bits of the 'low
00BC50: 20 61 64 64 72 65 73 73 27 20 64 65 66 69 6E 65 address' define
00BC60: 20 74 68 65 20 52 4F 4D 20 20 65 6E 61 62 6C 65 the ROM enable
00BC70: 2F 64 69 73 61 62 6C 65 0D 0A 20 20 20 20 20 20 /disable..
00BC80: 20 20 20 20 20 73 74 61 74 65 20 72 65 71 75 69 state requi
00BC90: 72 65 64 3B 20 74 68 65 20 62 6F 74 74 6F 6D 20 red; the bottom
00BCA0: 31 34 20 62 69 74 73 20 67 69 76 65 20 74 68 65 14 bits give the
00BCB0: 20 61 63 74 75 61 6C 20 61 64 64 72 65 73 73 20 actual address
00BCC0: 28 69 6E 20 74 68 65 0D 0A 20 20 20 20 20 20 20 (in the..
00BCD0: 20 20 20 20 72 61 6E 67 65 20 23 30 30 30 30 20 range #0000
00BCE0: 74 6F 20 23 33 46 46 46 29 20 74 6F 20 6A 75 6D to #3FFF) to jum
00BCF0: 70 20 74 6F 20 6F 6E 63 65 20 74 68 65 20 52 4F p to once the RO
00BD00: 4D 20 20 73 74 61 74 65 20 20 69 73 20 20 73 65 M state is se
00BD10: 74 20 20 75 70 2E 0D 0A 20 20 20 20 20 20 20 20 t up...
00BD20: 20 20 20 57 68 65 6E 20 74 68 65 20 72 6F 75 74 When the rout
00BD30: 69 6E 65 20 72 65 74 75 72 6E 73 20 74 68 65 20 ine returns the
00BD40: 52 4F 4D 20 73 74 61 74 65 20 69 73 20 72 65 73 ROM state is res
00BD50: 74 6F 72 65 64 20 74 6F 20 69 74 73 20 6F 72 69 tored to its ori
00BD60: 67 69 6E 61 6C 0D 0A 20 20 20 20 20 20 20 20 20 ginal..
00BD70: 20 20 73 65 74 74 69 6E 67 2E 0D 0A 0D 0A 20 20 setting.....
00BD80: 20 20 20 20 20 20 20 20 20 54 68 65 20 66 69 72 The fir
00BD90: 6D 77 61 72 65 20 6A 75 6D 70 62 6C 6F 63 6B 2C mware jumpblock,
00BDA0: 20 74 68 72 6F 75 67 68 20 77 68 69 63 68 20 74 through which t
00BDB0: 68 65 20 66 69 72 6D 77 61 72 65 20 72 6F 75 74 he firmware rout
00BDC0: 69 6E 65 73 20 73 68 6F 75 6C 64 0D 0A 20 20 20 ines should..
00BDD0: 20 20 20 20 20 20 20 20 62 65 20 63 61 6C 6C 65 be calle
00BDE0: 64 2C 20 6D 61 6B 65 73 20 65 78 74 65 6E 73 69 d, makes extensi
00BDF0: 76 65 20 75 73 65 20 20 6F 66 20 20 4C 4F 57 20 ve use of LOW
00BE00: 20 4A 55 4D 50 73 2E 20 20 54 68 65 73 65 20 20 JUMPs. These
00BE10: 4C 4F 57 20 20 4A 55 4D 50 73 0D 0A 20 20 20 20 LOW JUMPs..
00BE20: 20 20 20 20 20 20 20 72 65 71 75 65 73 74 20 74 request t
00BE30: 68 65 20 6C 6F 77 65 72 20 52 4F 4D 20 74 6F 20 he lower ROM to
00BE40: 62 65 20 65 6E 61 62 6C 65 64 2C 20 73 6F 20 74 be enabled, so t
00BE50: 68 61 74 20 74 68 65 20 6C 6F 77 65 72 20 52 4F hat the lower RO
00BE60: 4D 20 6D 61 79 20 20 62 65 0D 0A 20 20 20 20 20 M may be..
00BE70: 20 20 20 20 20 20 64 69 73 61 62 6C 65 64 20 65 disabled e
00BE80: 78 63 65 70 74 20 77 68 65 6E 20 74 68 65 20 66 xcept when the f
00BE90: 69 72 6D 77 61 72 65 20 69 73 20 61 63 74 69 76 irmware is activ
00BEA0: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 53 49 44 e..... SID
00BEB0: 45 20 43 41 4C 4C 20 28 52 53 54 20 32 29 0D 0A E CALL (RST 2)..
00BEC0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 52 53 54 .. RST
00BED0: 20 32 20 63 61 6C 6C 73 20 61 20 20 72 6F 75 74 2 calls a rout
00BEE0: 69 6E 65 20 20 69 6E 20 20 61 6E 20 20 61 73 73 ine in an ass
00BEF0: 6F 63 69 61 74 65 64 20 20 52 4F 4D 2E 20 20 49 ociated ROM. I
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: 74 20 20 68 61 73 20 20 61 20 20 76 65 72 79 0D t has a very.
00C010: 0A 20 20 20 20 20 20 20 20 20 20 20 73 70 65 63 . spec
00C020: 69 61 6C 69 73 65 64 2E 20 41 20 66 6F 72 65 67 ialised. A foreg
00C030: 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D 20 28 73 round program (s
00C040: 65 65 20 73 65 63 74 69 6F 6E 20 39 29 20 6D 61 ee section 9) ma
00C050: 79 20 72 65 71 75 69 72 65 20 6D 6F 72 65 0D 0A y require more..
00C060: 20 20 20 20 20 20 20 20 20 20 20 74 68 61 6E 20 than
00C070: 31 36 4B 20 6F 66 20 52 4F 4D 2E 20 54 68 65 20 16K of ROM. The
00C080: 73 69 64 65 20 63 61 6C 6C 20 6D 65 63 68 61 6E side call mechan
00C090: 69 73 6D 20 61 6C 6C 6F 77 73 20 66 6F 72 20 63 ism allows for c
00C0A0: 61 6C 6C 73 20 20 62 65 74 77 65 65 6E 0D 0A 20 alls between..
00C0B0: 20 20 20 20 20 20 20 20 20 20 74 77 6F 2C 20 74 two, t
00C0C0: 68 72 65 65 20 6F 72 20 66 6F 75 72 20 61 73 73 hree or four ass
00C0D0: 6F 63 69 61 74 65 64 20 20 52 4F 4D 73 20 20 77 ociated ROMs w
00C0E0: 69 74 68 6F 75 74 20 20 72 65 66 65 72 65 6E 63 ithout referenc
00C0F0: 65 20 20 74 6F 20 20 74 68 65 69 72 0D 0A 20 20 e to their..
00C100: 20 20 20 20 20 20 20 20 20 61 63 74 75 61 6C 20 actual
00C110: 52 4F 4D 20 73 65 6C 65 63 74 20 61 64 64 72 65 ROM select addre
00C120: 73 73 65 73 2C 20 70 72 6F 76 69 64 65 64 20 74 sses, provided t
00C130: 68 61 74 20 74 68 65 20 52 4F 4D 73 20 61 72 65 hat the ROMs are
00C140: 20 20 69 6E 73 74 61 6C 6C 65 64 0D 0A 20 20 20 installed..
00C150: 20 20 20 20 20 20 20 20 6E 65 78 74 20 74 6F 20 next to
00C160: 65 61 63 68 20 6F 74 68 65 72 20 61 6E 64 20 69 each other and i
00C170: 6E 20 6F 72 64 65 72 2E 0D 0A 0D 0A 20 20 20 20 n order.....
00C180: 20 20 20 20 20 20 20 54 68 65 20 74 77 6F 20 62 The two b
00C190: 79 74 65 73 20 66 6F 6C 6C 6F 77 69 6E 67 20 74 ytes following t
00C1A0: 68 65 20 72 65 73 74 61 72 74 20 20 69 6E 73 74 he restart inst
00C1B0: 72 75 63 74 69 6F 6E 20 20 67 69 76 65 20 20 74 ruction give t
00C1C0: 68 65 20 20 27 73 69 64 65 0D 0A 20 20 20 20 20 he 'side..
00C1D0: 20 20 20 20 20 20 61 64 64 72 65 73 73 27 20 6F address' o
00C1E0: 66 20 74 68 65 20 72 6F 75 74 69 6E 65 20 74 6F f the routine to
00C1F0: 20 63 61 6C 6C 20 2D 20 73 6F 20 74 68 65 20 52 call - so the R
00C200: 53 54 20 32 20 63 61 6E 20 20 62 65 20 20 63 6F ST 2 can be co
00C210: 6E 73 69 64 65 72 65 64 0D 0A 20 20 20 20 20 20 nsidered..
00C220: 20 20 20 20 20 74 6F 20 62 65 20 61 20 74 68 72 to be a thr
00C230: 65 65 20 62 79 74 65 20 69 6E 73 74 72 75 63 74 ee byte instruct
00C240: 69 6F 6E 2C 20 72 61 74 68 65 72 20 6C 69 6B 65 ion, rather like
00C250: 20 20 61 20 20 43 41 4C 4C 20 20 69 6E 73 74 72 a CALL instr
00C260: 75 63 74 69 6F 6E 2E 0D 0A 20 20 20 20 20 20 20 uction...
00C270: 20 20 20 20 54 68 65 20 74 6F 70 20 32 20 62 69 The top 2 bi
00C280: 74 73 20 6F 66 20 74 68 65 20 27 73 69 64 65 20 ts of the 'side
00C290: 61 64 64 72 65 73 73 27 20 73 70 65 63 69 66 79 address' specify
00C2A0: 20 20 77 68 69 63 68 20 20 6F 66 20 20 74 68 65 which of the
00C2B0: 20 20 66 6F 75 72 0D 0A 20 20 20 20 20 20 20 20 four..
00C2C0: 20 20 20 52 4F 4D 73 20 74 6F 20 73 65 6C 65 63 ROMs to selec
00C2D0: 74 3B 20 74 68 65 20 62 6F 74 74 6F 6D 20 31 34 t; the bottom 14
00C2E0: 20 62 69 74 73 2C 20 77 68 65 6E 20 61 64 64 65 bits, when adde
00C2F0: 64 20 74 6F 20 23 43 30 30 30 2C 20 67 69 76 65 d to #C000, give
00C300: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 the..
00C310: 20 20 61 63 74 75 61 6C 20 72 6F 75 74 69 6E 65 actual routine
00C320: 20 61 64 64 72 65 73 73 2E 20 54 68 65 20 75 70 address. The up
00C330: 70 65 72 20 52 4F 4D 20 69 73 20 65 6E 61 62 6C per ROM is enabl
00C340: 65 64 2C 20 74 68 65 20 6C 6F 77 65 72 20 52 4F ed, the lower RO
00C350: 4D 20 69 73 0D 0A 20 20 20 20 20 20 20 20 20 20 M is..
00C360: 20 64 69 73 61 62 6C 65 64 2E 20 42 6F 74 68 20 disabled. Both
00C370: 52 4F 4D 20 73 74 61 74 65 20 61 6E 64 20 74 68 ROM state and th
00C380: 65 20 52 4F 4D 20 73 65 6C 65 63 74 20 61 72 65 e ROM select are
00C390: 20 72 65 73 74 6F 72 65 64 20 74 6F 20 20 74 68 restored to th
00C3A0: 65 69 72 0D 0A 20 20 20 20 20 20 20 20 20 20 20 eir..
00C3B0: 6F 72 69 67 69 6E 61 6C 20 73 65 74 74 69 6E 67 original setting
00C3C0: 73 20 77 68 65 6E 20 74 68 65 20 72 6F 75 74 69 s when the routi
00C3D0: 6E 65 20 72 65 74 75 72 6E 73 2E 0D 0A 0D 0A 20 ne returns.....
00C3E0: 20 20 20 20 20 20 46 41 52 20 43 41 4C 4C 20 28 FAR CALL (
00C3F0: 52 53 54 20 33 29 0D 0A 0D 0A 20 20 20 20 20 20 RST 3)....
00C400: 20 20 20 20 20 52 53 54 20 33 20 63 61 6C 6C 73 RST 3 calls
00C410: 20 61 20 72 6F 75 74 69 6E 65 20 61 6E 79 77 68 a routine anywh
00C420: 65 72 65 20 69 6E 20 6D 65 6D 6F 72 79 2C 20 69 ere in memory, i
00C430: 6E 20 52 41 4D 20 6F 72 20 20 69 6E 20 20 61 6E n RAM or in an
00C440: 79 20 20 52 4F 4D 2E 0D 0A 20 20 20 20 20 20 20 y ROM...
00C450: 20 20 20 20 54 68 65 20 74 77 6F 20 62 79 74 65 The two byte
00C460: 73 20 66 6F 6C 6C 6F 77 69 6E 67 20 74 68 65 20 s following the
00C470: 72 65 73 74 61 72 74 20 61 72 65 20 61 73 73 75 restart are assu
00C480: 6D 65 64 20 74 6F 20 62 65 20 74 68 65 20 20 61 med to be the a
00C490: 64 64 72 65 73 73 0D 0A 20 20 20 20 20 20 20 20 ddress..
00C4A0: 20 20 20 6F 66 20 61 20 27 66 61 72 20 61 64 64 of a 'far add
00C4B0: 72 65 73 73 27 2E 20 54 68 65 20 27 66 61 72 20 ress'. The 'far
00C4C0: 61 64 64 72 65 73 73 27 20 20 69 73 20 20 61 20 address' is a
00C4D0: 20 74 68 72 65 65 20 20 62 79 74 65 20 20 6F 62 three byte ob
00C4E0: 6A 65 63 74 2C 0D 0A 20 20 20 20 20 20 20 20 20 ject,..
00C4F0: 20 20 77 68 69 63 68 20 74 61 6B 65 73 20 74 68 which takes th
00C500: 65 20 66 6F 72 6D 3A 0D 0A 0D 0A 20 20 20 20 20 e form:....
00C510: 20 20 20 20 20 20 42 79 74 65 73 20 30 2E 2E 31 Bytes 0..1
00C520: 3A 20 20 20 20 20 20 20 41 63 74 75 61 6C 20 61 : Actual a
00C530: 64 64 72 65 73 73 20 6F 66 20 72 6F 75 74 69 6E ddress of routin
00C540: 65 20 74 6F 20 63 61 6C 6C 2E 0D 0A 20 20 20 20 e to call...
00C550: 20 20 20 20 20 20 20 42 79 74 65 20 20 32 3A 20 Byte 2:
00C560: 20 20 20 20 20 20 20 20 20 52 4F 4D 20 73 65 6C ROM sel
00C570: 65 63 74 2F 73 74 61 74 65 20 72 65 71 75 69 72 ect/state requir
00C580: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ed.....
00C590: 20 20 54 68 65 20 52 4F 4D 20 73 65 6C 65 63 74 The ROM select
00C5A0: 2F 73 74 61 74 65 20 62 79 74 65 20 6D 61 79 20 /state byte may
00C5B0: 74 61 6B 65 20 74 68 65 20 66 6F 6C 6C 6F 77 69 take the followi
00C5C0: 6E 67 20 76 61 6C 75 65 73 3A 0D 0A 20 20 20 20 ng values:..
00C5D0: 20 20 20 20 20 20 20 30 2E 2E 32 35 31 3A 20 20 0..251:
00C5E0: 20 20 20 20 20 20 20 20 20 53 65 6C 65 63 74 20 Select
00C5F0: 74 68 65 20 75 70 70 65 72 20 52 4F 4D 20 61 74 the upper ROM at
00C600: 20 74 68 69 73 20 52 4F 4D 20 73 65 6C 65 63 74 this ROM select
00C610: 20 61 64 64 72 65 73 73 2E 0D 0A 20 20 20 20 20 address...
00C620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C630: 20 20 20 20 20 20 20 20 45 6E 61 62 6C 65 20 74 Enable t
00C640: 68 65 20 75 70 70 65 72 20 52 4F 4D 2C 20 64 69 he upper ROM, di
00C650: 73 61 62 6C 65 20 74 68 65 20 6C 6F 77 65 72 20 sable the lower
00C660: 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ROM..... A
00C670: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
00C680: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
00C690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C6A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
00C6B0: 65 20 32 2E 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D e 2.3...........
00C6C0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 32 35 ... 25
00C6D0: 32 2E 2E 32 35 35 20 20 20 20 20 20 20 20 20 20 2..255
00C6E0: 4E 6F 20 63 68 61 6E 67 65 20 6F 66 20 52 4F 4D No change of ROM
00C6F0: 20 73 65 6C 65 63 74 2C 20 65 6E 61 62 6C 65 2F select, enable/
00C700: 64 69 73 61 62 6C 65 20 52 4F 4D 73 20 20 61 73 disable ROMs as
00C710: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
00C720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 f
00C730: 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 20 20 20 20 ollows:....
00C740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C750: 20 20 20 20 20 20 20 20 32 35 32 3A 20 45 6E 61 252: Ena
00C760: 62 6C 65 20 75 70 70 65 72 20 52 4F 4D 2C 20 65 ble upper ROM, e
00C770: 6E 61 62 6C 65 20 6C 6F 77 65 72 20 52 4F 4D 2E nable lower ROM.
00C780: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
00C790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 2
00C7A0: 35 33 3A 20 45 6E 61 62 6C 65 20 75 70 70 65 72 53: Enable upper
00C7B0: 20 52 4F 4D 2C 20 64 69 73 61 62 6C 65 20 6C 6F ROM, disable lo
00C7C0: 77 65 72 20 52 4F 4D 2E 0D 0A 20 20 20 20 20 20 wer ROM...
00C7D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C7E0: 20 20 20 20 20 20 20 32 35 34 3A 20 44 69 73 61 254: Disa
00C7F0: 62 6C 65 20 75 70 70 65 72 20 52 4F 4D 2C 20 65 ble upper ROM, e
00C800: 6E 61 62 6C 65 20 6C 6F 77 65 72 20 52 4F 4D 2E nable lower ROM.
00C810: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
00C820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 2
00C830: 35 35 3A 20 44 69 73 61 62 6C 65 20 75 70 70 65 55: Disable uppe
00C840: 72 20 52 4F 4D 2C 20 64 69 73 61 62 6C 65 20 6C r ROM, disable l
00C850: 6F 77 65 72 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 ower ROM.....
00C860: 20 20 20 20 20 20 20 20 4E 6F 74 65 20 74 68 61 Note tha
00C870: 74 20 74 68 65 20 20 27 66 61 72 20 20 61 64 64 t the 'far add
00C880: 72 65 73 73 27 20 20 69 73 20 20 6E 6F 74 20 20 ress' is not
00C890: 69 74 73 65 6C 66 20 20 63 6F 6E 74 61 69 6E 65 itself containe
00C8A0: 64 20 20 69 6E 20 20 74 68 65 0D 0A 20 20 20 20 d in the..
00C8B0: 20 20 20 20 20 20 20 27 69 6E 73 74 72 75 63 74 'instruct
00C8C0: 69 6F 6E 27 2C 20 62 75 74 20 69 73 20 70 6F 69 ion', but is poi
00C8D0: 6E 74 65 64 20 61 74 2E 20 54 68 69 73 20 69 73 nted at. This is
00C8E0: 20 62 65 63 61 75 73 65 20 74 68 65 20 20 52 4F because the RO
00C8F0: 4D 20 20 73 65 6C 65 63 74 0D 0A 20 20 20 20 20 M select..
00C900: 20 20 20 20 20 20 61 64 64 72 65 73 73 20 77 69 address wi
00C910: 6C 6C 20 64 65 70 65 6E 64 20 6F 6E 20 74 68 65 ll depend on the
00C920: 20 70 61 72 74 69 63 75 6C 61 72 20 6F 72 64 65 particular orde
00C930: 72 20 69 6E 20 77 68 69 63 68 20 74 68 65 20 75 r in which the u
00C940: 73 65 72 20 20 68 61 73 0D 0A 20 20 20 20 20 20 ser has..
00C950: 20 20 20 20 20 63 68 6F 73 65 6E 20 74 6F 20 69 chosen to i
00C960: 6E 73 74 61 6C 6C 20 65 78 70 61 6E 73 69 6F 6E nstall expansion
00C970: 20 52 4F 4D 73 20 61 6E 64 20 6D 75 73 74 20 62 ROMs and must b
00C980: 65 20 20 65 73 74 61 62 6C 69 73 68 65 64 20 20 e established
00C990: 61 74 20 20 72 75 6E 0D 0A 20 20 20 20 20 20 20 at run..
00C9A0: 20 20 20 20 74 69 6D 65 2E 0D 0A 0D 0A 20 20 20 time.....
00C9B0: 20 20 20 20 20 20 20 20 42 6F 74 68 20 74 68 65 Both the
00C9C0: 20 52 4F 4D 20 73 74 61 74 65 20 61 6E 64 20 20 ROM state and
00C9D0: 74 68 65 20 20 52 4F 4D 20 20 73 65 6C 65 63 74 the ROM select
00C9E0: 20 20 61 72 65 20 20 72 65 73 74 6F 72 65 64 20 are restored
00C9F0: 20 74 6F 20 20 74 68 65 69 72 0D 0A 20 20 20 20 to their..
00CA00: 20 20 20 20 20 20 20 6F 72 69 67 69 6E 61 6C 20 original
00CA10: 73 65 74 74 69 6E 67 73 20 77 68 65 6E 20 74 68 settings when th
00CA20: 65 20 72 6F 75 74 69 6E 65 20 72 65 74 75 72 6E e routine return
00CA30: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 41 4D s..... RAM
00CA40: 20 4C 41 4D 20 28 52 53 54 20 34 29 0D 0A 0D 0A LAM (RST 4)....
00CA50: 20 20 20 20 20 20 20 20 20 20 20 52 53 54 20 34 RST 4
00CA60: 20 72 65 61 64 73 20 74 68 65 20 62 79 74 65 73 reads the bytes
00CA70: 20 66 72 6F 6D 20 52 41 4D 20 61 74 20 74 68 65 from RAM at the
00CA80: 20 20 61 64 64 72 65 73 73 20 20 67 69 76 65 6E address given
00CA90: 20 20 62 79 20 20 48 4C 2E 20 20 49 74 0D 0A 20 by HL. It..
00CAA0: 20 20 20 20 20 20 20 20 20 20 64 69 73 61 62 6C disabl
00CAB0: 65 73 20 20 62 6F 74 68 20 20 52 4F 4D 73 20 20 es both ROMs
00CAC0: 62 65 66 6F 72 65 20 20 72 65 61 64 69 6E 67 20 before reading
00CAD0: 20 61 6E 64 20 20 72 65 73 74 6F 72 65 73 20 20 and restores
00CAE0: 20 74 68 65 20 20 20 73 74 61 74 65 0D 0A 20 20 the state..
00CAF0: 20 20 20 20 20 20 20 20 20 61 66 74 65 72 77 61 afterwa
00CB00: 72 64 73 2E 20 54 68 69 73 20 27 69 6E 73 74 72 rds. This 'instr
00CB10: 75 63 74 69 6F 6E 27 20 61 76 6F 69 64 73 20 74 uction' avoids t
00CB20: 68 65 20 75 73 65 72 20 20 68 61 76 69 6E 67 20 he user having
00CB30: 20 74 6F 20 20 70 75 74 20 20 61 0D 0A 20 20 20 to put a..
00CB40: 20 20 20 20 20 20 20 20 72 65 61 64 20 72 6F 75 read rou
00CB50: 74 69 6E 65 20 69 6E 74 6F 20 74 68 65 20 63 65 tine into the ce
00CB60: 6E 74 72 61 6C 20 33 32 4B 20 6F 66 20 20 52 41 ntral 32K of RA
00CB70: 4D 20 20 74 6F 20 20 61 63 63 65 73 73 20 20 52 M to access R
00CB80: 41 4D 20 20 68 69 64 64 65 6E 0D 0A 20 20 20 20 AM hidden..
00CB90: 20 20 20 20 20 20 20 75 6E 64 65 72 20 61 20 52 under a R
00CBA0: 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 OM.....
00CBB0: 20 20 57 72 69 74 69 6E 67 20 74 6F 20 61 20 6D Writing to a m
00CBC0: 65 6D 6F 72 79 20 6C 6F 63 61 74 69 6F 6E 20 61 emory location a
00CBD0: 6C 77 61 79 73 20 63 68 61 6E 67 65 73 20 74 68 lways changes th
00CBE0: 65 20 20 63 6F 6E 74 65 6E 74 73 20 20 6F 66 20 e contents of
00CBF0: 20 52 41 4D 0D 0A 20 20 20 20 20 20 20 20 20 20 RAM..
00CC00: 20 77 68 61 74 65 76 65 72 20 74 68 65 20 52 4F whatever the RO
00CC10: 4D 20 65 6E 61 62 6C 65 20 73 74 61 74 65 2E 0D M enable state..
00CC20: 0A 0D 0A 20 20 20 20 20 20 20 46 49 52 4D 20 4A ... FIRM J
00CC30: 55 4D 50 20 28 52 53 54 20 35 29 0D 0A 0D 0A 20 UMP (RST 5)....
00CC40: 20 20 20 20 20 20 20 20 20 20 52 53 54 20 35 20 RST 5
00CC50: 74 75 72 6E 73 20 6F 6E 20 74 68 65 20 6C 6F 77 turns on the low
00CC60: 65 72 20 52 4F 4D 20 61 6E 64 20 6A 75 6D 70 73 er ROM and jumps
00CC70: 20 74 6F 20 61 20 72 6F 75 74 69 6E 65 2E 20 54 to a routine. T
00CC80: 68 65 20 74 77 6F 20 62 79 74 65 73 0D 0A 20 20 he two bytes..
00CC90: 20 20 20 20 20 20 20 20 20 66 6F 6C 6C 6F 77 69 followi
00CCA0: 6E 67 20 74 68 65 20 72 65 73 74 61 72 74 20 61 ng the restart a
00CCB0: 72 65 20 61 73 73 75 6D 65 64 20 74 6F 20 62 65 re assumed to be
00CCC0: 20 74 68 65 20 61 64 64 72 65 73 73 20 74 6F 20 the address to
00CCD0: 6A 75 6D 70 20 20 74 6F 20 20 2D 0D 0A 20 20 20 jump to -..
00CCE0: 20 20 20 20 20 20 20 20 73 6F 20 52 53 54 20 35 so RST 5
00CCF0: 20 63 61 6E 20 62 65 20 63 6F 6E 73 69 64 65 72 can be consider
00CD00: 65 64 20 74 6F 20 62 65 20 61 20 74 68 72 65 65 ed to be a three
00CD10: 20 62 79 74 65 20 69 6E 73 74 72 75 63 74 69 6F byte instructio
00CD20: 6E 2C 20 20 72 61 74 68 65 72 0D 0A 20 20 20 20 n, rather..
00CD30: 20 20 20 20 20 20 20 6C 69 6B 65 20 61 20 4A 50 like a JP
00CD40: 20 69 6E 73 74 72 75 63 74 69 6F 6E 2E 20 54 68 instruction. Th
00CD50: 65 20 6C 6F 77 65 72 20 52 4F 4D 20 69 73 20 65 e lower ROM is e
00CD60: 6E 61 62 6C 65 64 20 62 65 66 6F 72 65 20 6A 75 nabled before ju
00CD70: 6D 70 69 6E 67 20 20 74 6F 0D 0A 20 20 20 20 20 mping to..
00CD80: 20 20 20 20 20 20 74 68 65 20 72 6F 75 74 69 6E the routin
00CD90: 65 20 61 6E 64 20 69 73 20 64 69 73 61 62 6C 65 e and is disable
00CDA0: 64 20 77 68 65 6E 20 74 68 65 20 72 6F 75 74 69 d when the routi
00CDB0: 6E 65 20 72 65 74 75 72 6E 73 2E 20 54 68 65 20 ne returns. The
00CDC0: 73 74 61 74 65 20 6F 66 0D 0A 20 20 20 20 20 20 state of..
00CDD0: 20 20 20 20 20 74 68 65 20 75 70 70 65 72 20 52 the upper R
00CDE0: 4F 4D 20 69 73 20 6C 65 66 74 20 75 6E 63 68 61 OM is left uncha
00CDF0: 6E 67 65 64 20 74 68 72 6F 75 67 68 6F 75 74 2E nged throughout.
00CE00: 0D 0A 0D 0A 20 20 20 20 20 20 20 62 2E 20 54 68 .... b. Th
00CE10: 65 20 4F 74 68 65 72 20 52 65 73 74 61 72 74 73 e Other Restarts
00CE20: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 45 53 45 ..... RESE
00CE30: 54 20 28 52 53 54 20 30 29 0D 0A 0D 0A 20 20 20 T (RST 0)....
00CE40: 20 20 20 20 20 20 20 20 52 53 54 20 30 20 72 65 RST 0 re
00CE50: 73 65 74 73 20 74 68 65 20 73 79 73 74 65 6D 20 sets the system
00CE60: 61 73 20 69 66 20 74 68 65 20 6D 61 63 68 69 6E as if the machin
00CE70: 65 20 68 61 73 20 6A 75 73 74 20 62 65 65 6E 20 e has just been
00CE80: 74 75 72 6E 65 64 20 6F 6E 2E 0D 0A 0D 0A 20 20 turned on.....
00CE90: 20 20 20 20 20 55 53 45 52 20 52 45 53 54 41 52 USER RESTAR
00CEA0: 54 20 28 52 53 54 20 36 29 0D 0A 0D 0A 20 20 20 T (RST 6)....
00CEB0: 20 20 20 20 20 20 20 20 52 53 54 20 36 20 69 73 RST 6 is
00CEC0: 20 61 76 61 69 6C 61 62 6C 65 20 66 6F 72 20 74 available for t
00CED0: 68 65 20 75 73 65 72 2E 20 49 74 20 63 6F 75 6C he user. It coul
00CEE0: 64 20 62 65 20 75 73 65 64 20 20 74 6F 20 20 65 d be used to e
00CEF0: 78 74 65 6E 64 20 20 74 68 65 0D 0A 20 20 20 20 xtend the..
00CF00: 20 20 20 20 20 20 20 69 6E 73 74 72 75 63 74 69 instructi
00CF10: 6F 6E 20 73 65 74 20 69 6E 20 74 68 65 20 73 61 on set in the sa
00CF20: 6D 65 20 77 61 79 20 20 74 68 61 74 20 20 6F 74 me way that ot
00CF30: 68 65 72 20 20 72 65 73 74 61 72 74 73 20 20 68 her restarts h
00CF40: 61 76 65 20 20 62 65 65 6E 0D 0A 20 20 20 20 20 ave been..
00CF50: 20 20 20 20 20 20 75 73 65 64 2C 20 6F 72 20 69 used, or i
00CF60: 74 20 63 6F 75 6C 64 20 62 65 20 75 73 65 64 20 t could be used
00CF70: 66 6F 72 20 61 6E 6F 74 68 65 72 20 70 75 72 70 for another purp
00CF80: 6F 73 65 20 73 75 63 68 20 61 73 20 61 20 62 72 ose such as a br
00CF90: 65 61 6B 70 6F 69 6E 74 0D 0A 20 20 20 20 20 20 eakpoint..
00CFA0: 20 20 20 20 20 69 6E 73 74 72 75 63 74 69 6F 6E instruction
00CFB0: 20 69 6E 20 61 20 64 65 62 75 67 67 65 72 2E 0D in a debugger..
00CFC0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 4C 6F ... Lo
00CFD0: 63 61 74 69 6F 6E 73 20 23 30 30 33 30 20 74 6F cations #0030 to
00CFE0: 20 23 30 30 33 37 20 69 6E 63 6C 75 73 69 76 65 #0037 inclusive
00CFF0: 20 69 6E 20 52 41 4D 20 6D 61 79 20 62 65 20 70 in RAM may be p
00D000: 61 74 63 68 65 64 20 69 6E 20 20 6F 72 64 65 72 atched in order
00D010: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 74 6F 20 .. to
00D020: 67 61 69 6E 20 63 6F 6E 74 72 6F 6C 20 6F 66 20 gain control of
00D030: 74 68 65 20 72 65 73 74 61 72 74 2E 20 49 66 20 the restart. If
00D040: 74 68 65 20 6C 6F 77 65 72 20 52 4F 4D 20 69 73 the lower ROM is
00D050: 20 20 65 6E 61 62 6C 65 64 20 20 77 68 65 6E 0D enabled when.
00D060: 0A 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 . the
00D070: 72 65 73 74 61 72 74 20 69 73 20 65 78 65 63 75 restart is execu
00D080: 74 65 64 20 74 68 65 6E 20 74 68 65 20 20 63 6F ted then the co
00D090: 64 65 20 20 69 6E 20 20 52 4F 4D 20 20 61 74 20 de in ROM at
00D0A0: 20 74 68 69 73 20 20 61 64 64 72 65 73 73 0D 0A this address..
00D0B0: 20 20 20 20 20 20 20 20 20 20 20 63 61 75 73 65 cause
00D0C0: 73 20 74 68 65 20 52 4F 4D 20 73 74 61 74 65 20 s the ROM state
00D0D0: 74 6F 20 62 65 20 73 61 76 65 64 20 69 6E 20 6C to be saved in l
00D0E0: 6F 63 61 74 69 6F 6E 20 23 30 30 32 42 2E 20 54 ocation #002B. T
00D0F0: 68 65 6E 20 74 68 65 20 6C 6F 77 65 72 0D 0A 20 hen the lower..
00D100: 20 20 20 20 20 20 20 20 20 20 52 4F 4D 20 69 73 ROM is
00D110: 20 64 69 73 61 62 6C 65 64 20 61 6E 64 20 74 68 disabled and th
00D120: 65 20 66 69 72 6D 77 61 72 65 20 6A 75 6D 70 73 e firmware jumps
00D130: 20 74 6F 20 6C 6F 63 61 74 69 6F 6E 20 23 30 30 to location #00
00D140: 33 30 20 20 69 6E 20 20 52 41 4D 2E 0D 0A 20 20 30 in RAM...
00D150: 20 20 20 20 20 20 20 20 20 49 66 20 74 68 65 20 If the
00D160: 6C 6F 77 65 72 20 52 4F 4D 20 69 73 20 64 69 73 lower ROM is dis
00D170: 61 62 6C 65 64 20 20 74 68 65 6E 20 20 74 68 65 abled then the
00D180: 20 20 72 65 73 74 61 72 74 20 20 63 61 6C 6C 73 restart calls
00D190: 20 20 23 30 30 33 30 20 20 61 73 0D 0A 20 20 20 #0030 as..
00D1A0: 20 20 20 20 20 20 20 20 6E 6F 72 6D 61 6C 20 66 normal f
00D1B0: 6F 72 20 74 68 69 73 20 5A 38 30 20 72 65 73 74 or this Z80 rest
00D1C0: 61 72 74 20 69 6E 73 74 72 75 63 74 69 6F 6E 2E art instruction.
00D1D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
00D1E0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
00D1F0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
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: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D310: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
00D320: 32 2E 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 2.4.............
00D330: 0A 20 20 20 20 20 20 20 49 4E 54 45 52 52 55 50 . INTERRUP
00D340: 54 20 28 52 53 54 20 37 29 0D 0A 0D 0A 0D 0A 20 T (RST 7)......
00D350: 20 20 20 20 20 20 20 20 20 20 52 53 54 20 37 20 RST 7
00D360: 69 73 20 72 65 73 65 72 76 65 64 20 66 6F 72 20 is reserved for
00D370: 69 6E 74 65 72 72 75 70 74 73 20 28 73 65 65 20 interrupts (see
00D380: 73 65 63 74 69 6F 6E 20 31 30 29 2C 20 69 74 20 section 10), it
00D390: 6D 75 73 74 20 6E 6F 74 20 20 62 65 0D 0A 20 20 must not be..
00D3A0: 20 20 20 20 20 20 20 20 20 65 78 65 63 75 74 65 execute
00D3B0: 64 20 62 79 20 61 20 70 72 6F 67 72 61 6D 2E 0D d by a program..
00D3C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 32 2E 34 20 ..... 2.4
00D3D0: 52 41 4D 20 61 6E 64 20 74 68 65 20 46 69 72 6D RAM and the Firm
00D3E0: 77 61 72 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ware.......
00D3F0: 20 20 54 68 65 20 52 4F 4D 20 73 74 61 74 65 20 The ROM state
00D400: 73 68 6F 75 6C 64 20 62 65 20 20 74 72 61 6E 73 should be trans
00D410: 70 61 72 65 6E 74 20 20 74 6F 20 20 74 68 65 20 parent to the
00D420: 20 75 73 65 72 2E 20 20 49 66 20 20 74 68 65 20 user. If the
00D430: 20 63 75 72 72 65 6E 74 0D 0A 20 20 20 20 20 20 current..
00D440: 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 foreground prog
00D450: 72 61 6D 20 28 73 65 65 20 73 65 63 74 69 6F 6E ram (see section
00D460: 20 39 29 20 69 73 20 69 6E 20 52 4F 4D 20 74 68 9) is in ROM th
00D470: 65 6E 20 74 68 65 20 6E 6F 72 6D 61 6C 20 52 4F en the normal RO
00D480: 4D 20 73 74 61 74 65 0D 0A 20 20 20 20 20 20 20 M state..
00D490: 69 73 20 74 6F 20 68 61 76 65 20 74 68 65 20 75 is to have the u
00D4A0: 70 70 65 72 20 52 4F 4D 20 65 6E 61 62 6C 65 64 pper ROM enabled
00D4B0: 20 61 6E 64 20 74 68 65 20 6C 6F 77 65 72 20 52 and the lower R
00D4C0: 4F 4D 20 20 64 69 73 61 62 6C 65 64 2E 20 20 49 OM disabled. I
00D4D0: 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 63 f the.. c
00D4E0: 75 72 72 65 6E 74 20 66 6F 72 65 67 72 6F 75 6E urrent foregroun
00D4F0: 64 20 70 72 6F 67 72 61 6D 20 69 73 20 69 6E 20 d program is in
00D500: 52 41 4D 20 74 68 65 6E 20 74 68 65 20 6E 6F 72 RAM then the nor
00D510: 6D 61 6C 20 73 74 61 74 65 20 69 73 20 74 6F 20 mal state is to
00D520: 20 68 61 76 65 0D 0A 20 20 20 20 20 20 20 62 6F have.. bo
00D530: 74 68 20 52 4F 4D 73 20 64 69 73 61 62 6C 65 64 th ROMs disabled
00D540: 2E 20 54 68 65 73 65 20 73 74 61 74 65 73 20 61 . These states a
00D550: 6C 6C 6F 77 20 20 74 68 65 20 20 66 6F 72 65 67 llow the foreg
00D560: 72 6F 75 6E 64 20 20 70 72 6F 67 72 61 6D 20 20 round program
00D570: 66 72 65 65 0D 0A 20 20 20 20 20 20 20 61 63 63 free.. acc
00D580: 65 73 73 20 74 6F 20 74 68 65 20 6D 65 6D 6F 72 ess to the memor
00D590: 79 20 70 6F 6F 6C 2E 20 57 68 65 6E 20 61 20 66 y pool. When a f
00D5A0: 69 72 6D 77 61 72 65 20 72 6F 75 74 69 6E 65 20 irmware routine
00D5B0: 69 73 20 63 61 6C 6C 65 64 20 74 68 65 20 6C 6F is called the lo
00D5C0: 77 65 72 0D 0A 20 20 20 20 20 20 20 52 4F 4D 20 wer.. ROM
00D5D0: 69 73 20 65 6E 61 62 6C 65 64 20 61 6E 64 20 74 is enabled and t
00D5E0: 68 65 20 75 70 70 65 72 20 52 4F 4D 20 69 73 20 he upper ROM is
00D5F0: 75 73 75 61 6C 6C 79 20 64 69 73 61 62 6C 65 64 usually disabled
00D600: 2E 20 54 68 69 73 20 61 6C 6C 6F 77 73 20 20 74 . This allows t
00D610: 68 65 0D 0A 20 20 20 20 20 20 20 66 69 72 6D 77 he.. firmw
00D620: 61 72 65 20 66 72 65 65 20 61 63 63 65 73 73 20 are free access
00D630: 74 6F 20 74 68 65 20 64 65 66 61 75 6C 74 20 73 to the default s
00D640: 63 72 65 65 6E 20 6D 65 6D 6F 72 79 20 20 28 62 creen memory (b
00D650: 75 74 20 20 6E 6F 74 20 20 61 6C 6C 20 20 74 68 ut not all th
00D660: 65 0D 0A 20 20 20 20 20 20 20 6D 65 6D 6F 72 79 e.. memory
00D670: 20 70 6F 6F 6C 29 2E 20 57 68 65 6E 20 74 68 65 pool). When the
00D680: 20 66 69 72 6D 77 61 72 65 20 20 72 6F 75 74 69 firmware routi
00D690: 6E 65 20 20 72 65 74 75 72 6E 73 20 20 74 68 65 ne returns the
00D6A0: 20 20 52 4F 4D 20 20 73 74 61 74 65 20 20 69 73 ROM state is
00D6B0: 0D 0A 20 20 20 20 20 20 20 61 75 74 6F 6D 61 74 .. automat
00D6C0: 69 63 61 6C 6C 79 20 72 65 73 74 6F 72 65 64 20 ically restored
00D6D0: 74 6F 20 77 68 61 74 20 69 74 20 77 61 73 2E 0D to what it was..
00D6E0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
00D6F0: 63 61 73 65 73 20 77 68 65 72 65 20 74 68 65 20 cases where the
00D700: 52 4F 4D 20 73 74 61 74 65 20 69 73 20 69 6D 70 ROM state is imp
00D710: 6F 72 74 61 6E 74 20 61 72 65 3A 0D 0A 0D 0A 20 ortant are:....
00D720: 20 20 20 20 20 20 61 2E 20 53 74 61 63 6B 0D 0A a. Stack..
00D730: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 68 .... The h
00D740: 61 72 64 77 61 72 65 20 73 74 61 63 6B 20 73 68 ardware stack sh
00D750: 6F 75 6C 64 20 6E 65 76 65 72 20 20 62 65 20 20 ould never be
00D760: 62 65 6C 6F 77 20 20 23 34 30 30 30 2C 20 20 6F below #4000, o
00D770: 74 68 65 72 77 69 73 65 20 20 73 65 72 69 6F 75 therwise seriou
00D780: 73 0D 0A 20 20 20 20 20 20 20 63 6F 6E 66 75 73 s.. confus
00D790: 69 6F 6E 20 77 69 6C 6C 20 6F 63 63 75 72 20 77 ion will occur w
00D7A0: 68 65 6E 20 74 68 65 20 6C 6F 77 65 72 20 52 4F hen the lower RO
00D7B0: 4D 20 69 73 20 65 6E 61 62 6C 65 64 20 61 6E 64 M is enabled and
00D7C0: 20 20 74 68 65 20 20 73 74 61 63 6B 20 20 69 73 the stack is
00D7D0: 0D 0A 20 20 20 20 20 20 20 75 73 65 64 20 2D 20 .. used -
00D7E0: 66 6F 72 20 65 78 61 6D 70 6C 65 2C 20 77 68 65 for example, whe
00D7F0: 6E 20 69 6E 74 65 72 72 75 70 74 73 20 6F 63 63 n interrupts occ
00D800: 75 72 20 6F 72 20 74 68 65 20 66 69 72 6D 77 61 ur or the firmwa
00D810: 72 65 20 69 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D re is called....
00D820: 0A 0D 0A 20 20 20 20 20 20 20 53 69 6D 69 6C 61 ... Simila
00D830: 72 6C 79 2C 20 69 74 20 69 73 20 69 6E 61 64 76 rly, it is inadv
00D840: 69 73 61 62 6C 65 20 74 6F 20 73 65 74 20 74 68 isable to set th
00D850: 65 20 73 74 61 63 6B 20 61 62 6F 76 65 20 23 43 e stack above #C
00D860: 30 30 30 20 75 6E 6C 65 73 73 20 69 74 20 69 73 000 unless it is
00D870: 0D 0A 20 20 20 20 20 20 20 63 65 72 74 61 69 6E .. certain
00D880: 20 74 68 61 74 20 74 68 65 20 75 70 70 65 72 20 that the upper
00D890: 52 4F 4D 20 69 73 20 6E 65 76 65 72 20 65 6E 61 ROM is never ena
00D8A0: 62 6C 65 64 20 77 68 65 6E 20 74 68 65 20 73 74 bled when the st
00D8B0: 61 63 6B 20 69 73 20 69 6E 20 75 73 65 2E 0D 0A ack is in use...
00D8C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 .... The s
00D8D0: 79 73 74 65 6D 20 70 72 6F 76 69 64 65 73 20 61 ystem provides a
00D8E0: 20 73 74 61 63 6B 20 61 72 65 61 20 69 6D 6D 65 stack area imme
00D8F0: 64 69 61 74 6C 65 79 20 62 65 6C 6F 77 20 23 43 diatley below #C
00D900: 30 30 30 20 77 68 69 63 68 20 69 73 20 6F 76 65 000 which is ove
00D910: 72 0D 0A 20 20 20 20 20 20 20 32 35 36 20 62 79 r.. 256 by
00D920: 74 65 73 20 6C 6F 6E 67 2E 20 54 68 69 73 20 73 tes long. This s
00D930: 68 6F 75 6C 64 20 62 65 20 61 64 65 71 75 61 74 hould be adequat
00D940: 65 20 66 6F 72 20 6D 6F 73 74 20 70 75 72 70 6F e for most purpo
00D950: 73 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 62 ses..... b
00D960: 2E 20 43 6F 6D 6D 75 6E 69 63 61 74 69 6F 6E 20 . Communication
00D970: 77 69 74 68 20 74 68 65 20 66 69 72 6D 77 61 72 with the firmwar
00D980: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 6F 73 e..... Mos
00D990: 74 20 66 69 72 6D 77 61 72 65 20 72 6F 75 74 69 t firmware routi
00D9A0: 6E 65 73 20 74 61 6B 65 20 74 68 65 69 72 20 70 nes take their p
00D9B0: 61 72 61 6D 65 74 65 72 73 20 20 69 6E 20 20 72 arameters in r
00D9C0: 65 67 69 73 74 65 72 73 2E 20 20 48 6F 77 65 76 egisters. Howev
00D9D0: 65 72 2C 0D 0A 20 20 20 20 20 20 20 73 6F 6D 65 er,.. some
00D9E0: 20 75 73 65 20 64 61 74 61 20 61 72 65 61 73 20 use data areas
00D9F0: 69 6E 20 20 6D 65 6D 6F 72 79 20 20 74 6F 20 20 in memory to
00DA00: 70 61 73 73 20 20 69 6E 66 6F 72 6D 61 74 69 6F pass informatio
00DA10: 6E 2E 20 20 4D 6F 73 74 20 20 66 69 72 6D 77 61 n. Most firmwa
00DA20: 72 65 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 re.. routi
00DA30: 6E 65 73 20 74 68 61 74 20 75 73 65 20 64 61 74 nes that use dat
00DA40: 61 20 61 72 65 61 73 20 69 6E 20 6D 65 6D 6F 72 a areas in memor
00DA50: 79 20 20 72 65 61 64 20 20 74 68 6F 73 65 20 20 y read those
00DA60: 64 69 72 65 63 74 6C 79 20 20 77 69 74 68 6F 75 directly withou
00DA70: 74 0D 0A 20 20 20 20 20 20 20 75 73 69 6E 67 20 t.. using
00DA80: 52 41 4D 20 4C 41 4D 73 20 28 73 65 65 20 61 62 RAM LAMs (see ab
00DA90: 6F 76 65 29 20 20 6F 72 20 20 74 68 65 20 20 65 ove) or the e
00DAA0: 71 75 69 76 61 6C 65 6E 74 2E 20 20 54 68 65 73 quivalent. Thes
00DAB0: 65 20 20 72 6F 75 74 69 6E 65 73 20 20 61 72 65 e routines are
00DAC0: 0D 0A 20 20 20 20 20 20 20 61 66 66 65 63 74 65 .. affecte
00DAD0: 64 20 62 79 20 74 68 65 20 52 4F 4D 20 73 74 61 d by the ROM sta
00DAE0: 74 65 20 61 6E 64 20 74 68 65 20 52 4F 4D 20 73 te and the ROM s
00DAF0: 65 6C 65 63 74 2E 20 54 68 65 79 20 77 69 6C 6C elect. They will
00DB00: 20 72 65 61 64 20 64 61 74 61 20 66 72 6F 6D 0D read data from.
00DB10: 0A 20 20 20 20 20 20 20 61 20 52 4F 4D 20 69 66 . a ROM if
00DB20: 20 74 68 65 20 52 4F 4D 20 69 73 20 65 6E 61 62 the ROM is enab
00DB30: 6C 65 64 20 20 61 6E 64 20 20 74 68 65 20 20 72 led and the r
00DB40: 6F 75 74 69 6E 65 20 20 69 73 20 20 67 69 76 65 outine is give
00DB50: 6E 20 20 61 20 20 73 75 69 74 61 62 6C 65 0D 0A n a suitable..
00DB60: 20 20 20 20 20 20 20 61 64 64 72 65 73 73 2E 20 address.
00DB70: 28 4E 6F 74 65 20 74 68 61 74 20 74 68 65 20 6A (Note that the j
00DB80: 75 6D 70 62 6C 6F 63 6B 20 64 69 73 61 62 6C 65 umpblock disable
00DB90: 73 20 20 74 68 65 20 20 75 70 70 65 72 20 20 52 s the upper R
00DBA0: 4F 4D 20 20 77 68 65 6E 20 20 74 68 65 0D 0A 20 OM when the..
00DBB0: 20 20 20 20 20 20 66 69 72 6D 77 61 72 65 20 69 firmware i
00DBC0: 73 20 63 61 6C 6C 65 64 29 2E 20 4F 74 68 65 72 s called). Other
00DBD0: 20 66 69 72 6D 77 61 72 65 20 72 6F 75 74 69 6E firmware routin
00DBE0: 65 73 20 74 68 61 74 20 75 73 65 20 20 64 61 74 es that use dat
00DBF0: 61 20 20 61 72 65 61 73 20 20 69 6E 0D 0A 20 20 a areas in..
00DC00: 20 20 20 20 20 6D 65 6D 6F 72 79 20 61 6C 77 61 memory alwa
00DC10: 79 73 20 72 65 61 64 20 66 72 6F 6D 20 52 41 4D ys read from RAM
00DC20: 2E 20 54 68 65 79 20 61 72 65 20 75 6E 61 66 66 . They are unaff
00DC30: 65 63 74 65 64 20 62 79 20 74 68 65 20 52 4F 4D ected by the ROM
00DC40: 20 73 74 61 74 65 20 20 61 6E 64 0D 0A 20 20 20 state and..
00DC50: 20 20 20 20 74 68 65 20 52 4F 4D 20 73 65 6C 65 the ROM sele
00DC60: 63 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ct.......
00DC70: 52 6F 75 74 69 6E 65 73 20 74 68 61 74 20 61 6C Routines that al
00DC80: 77 61 79 73 20 61 63 63 65 73 73 20 52 41 4D 20 ways access RAM
00DC90: 77 69 6C 6C 20 6D 65 6E 74 69 6F 6E 20 74 68 69 will mention thi
00DCA0: 73 20 69 6E 20 20 74 68 65 20 20 64 65 73 63 72 s in the descr
00DCB0: 69 70 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 6F iption.. o
00DCC0: 66 20 74 68 65 20 72 6F 75 74 69 6E 65 2E 20 4F f the routine. O
00DCD0: 74 68 65 72 20 72 6F 75 74 69 6E 65 73 20 6D 61 ther routines ma
00DCE0: 79 20 62 65 20 61 73 73 75 6D 65 64 20 74 6F 20 y be assumed to
00DCF0: 62 65 20 20 61 66 66 65 63 74 65 64 20 20 62 79 be affected by
00DD00: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 52 4F the.. RO
00DD10: 4D 20 73 74 61 74 65 2E 20 49 6E 20 70 61 72 74 M state. In part
00DD20: 69 63 75 6C 61 72 20 74 68 65 20 76 61 72 69 6F icular the vario
00DD30: 75 73 20 64 61 74 61 20 62 6C 6F 63 6B 73 20 75 us data blocks u
00DD40: 73 65 64 20 20 62 79 20 20 74 68 65 20 20 4B 65 sed by the Ke
00DD50: 72 6E 65 6C 0D 0A 20 20 20 20 20 20 20 6D 75 73 rnel.. mus
00DD60: 74 20 6C 69 65 20 69 6E 20 74 68 65 20 63 65 6E t lie in the cen
00DD70: 74 72 61 6C 20 33 32 4B 20 6F 66 20 52 41 4D 20 tral 32K of RAM
00DD80: 66 6F 72 20 74 68 65 20 4B 65 72 6E 65 6C 20 74 for the Kernel t
00DD90: 6F 20 62 65 20 20 61 62 6C 65 20 20 74 6F 20 20 o be able to
00DDA0: 75 73 65 0D 0A 20 20 20 20 20 20 20 74 68 65 6D use.. them
00DDB0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
00DDC0: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
00DDD0: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
00DDE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00DDF0: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 32 page 2
00DE00: 2E 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .5..............
00DE10: 20 20 20 20 20 20 20 63 2E 20 43 6F 6D 6D 75 6E c. Commun
00DE20: 69 63 61 74 69 6F 6E 20 62 65 74 77 65 65 6E 20 ication between
00DE30: 75 70 70 65 72 20 52 4F 4D 73 2E 0D 0A 0D 0A 0D upper ROMs......
00DE40: 0A 0D 0A 20 20 20 20 20 20 20 50 72 6F 67 72 61 ... Progra
00DE50: 6D 73 20 69 6E 20 75 70 70 65 72 20 52 4F 4D 73 ms in upper ROMs
00DE60: 20 6D 61 79 20 63 61 6C 6C 20 72 6F 75 74 69 6E may call routin
00DE70: 65 73 20 20 69 6E 20 20 6F 74 68 65 72 20 20 52 es in other R
00DE80: 4F 4D 73 2C 20 20 75 73 69 6E 67 20 20 74 68 65 OMs, using the
00DE90: 0D 0A 20 20 20 20 20 20 20 76 61 72 69 6F 75 73 .. various
00DEA0: 20 4B 65 72 6E 65 6C 20 46 61 63 69 6C 69 74 69 Kernel Faciliti
00DEB0: 65 73 2E 20 54 68 65 72 65 20 69 73 20 20 6E 6F es. There is no
00DEC0: 20 20 70 72 6F 76 69 73 69 6F 6E 20 20 69 6E 20 provision in
00DED0: 20 74 68 65 20 20 66 69 72 6D 77 61 72 65 2C 0D the firmware,.
00DEE0: 0A 20 20 20 20 20 20 20 68 6F 77 65 76 65 72 2C . however,
00DEF0: 20 66 6F 72 20 61 20 70 72 6F 67 72 61 6D 20 69 for a program i
00DF00: 6E 20 6F 6E 65 20 52 4F 4D 20 74 6F 20 61 63 63 n one ROM to acc
00DF10: 65 73 73 20 63 6F 6E 73 74 61 6E 74 73 20 69 6E ess constants in
00DF20: 20 61 6E 6F 74 68 65 72 2E 0D 0A 0D 0A 0D 0A 0D another........
00DF30: 0A 20 20 20 20 20 20 20 54 68 65 20 20 6D 61 6A . The maj
00DF40: 6F 72 69 74 79 20 20 6F 66 20 20 66 69 72 6D 77 ority of firmw
00DF50: 61 72 65 20 20 72 6F 75 74 69 6E 65 73 20 20 61 are routines a
00DF60: 72 65 20 20 63 61 6C 6C 65 64 20 20 76 69 61 20 re called via
00DF70: 20 74 68 65 20 20 66 69 72 6D 77 61 72 65 0D 0A the firmware..
00DF80: 20 20 20 20 20 20 20 6A 75 6D 70 62 6C 6F 63 6B jumpblock
00DF90: 2C 20 77 68 69 63 68 20 73 74 61 72 74 73 20 61 , which starts a
00DFA0: 74 20 6C 6F 63 61 74 69 6F 6E 20 23 42 42 30 30 t location #BB00
00DFB0: 2C 20 69 6E 20 74 68 65 20 66 69 72 6D 77 61 72 , in the firmwar
00DFC0: 65 20 20 52 41 4D 20 20 61 72 65 61 2E 0D 0A 0D e RAM area....
00DFD0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
00DFE0: 4B 65 72 6E 65 6C 20 72 6F 75 74 69 6E 65 73 20 Kernel routines
00DFF0: 61 73 73 6F 63 69 61 74 65 64 20 77 69 74 68 20 associated with
00E000: 74 68 65 20 6D 65 6D 6F 72 79 20 6D 61 70 20 61 the memory map a
00E010: 72 65 20 63 61 6C 6C 65 64 20 76 69 61 20 20 6F re called via o
00E020: 6E 65 0D 0A 20 20 20 20 20 20 20 6F 72 20 74 77 ne.. or tw
00E030: 6F 20 6F 74 68 65 72 20 6A 75 6D 70 62 6C 6F 63 o other jumpbloc
00E040: 6B 20 61 72 65 61 73 3A 20 74 68 65 20 4C 4F 57 k areas: the LOW
00E050: 20 61 72 65 61 20 62 65 74 77 65 65 6E 20 20 23 area between #
00E060: 30 30 30 30 20 20 61 6E 64 20 20 23 30 30 33 46 0000 and #003F
00E070: 2C 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 74 68 ,.. and th
00E080: 65 20 48 49 47 48 20 61 72 65 61 20 20 73 74 61 e HIGH area sta
00E090: 72 74 69 6E 67 20 20 61 74 20 20 23 42 39 30 30 rting at #B900
00E0A0: 2E 20 20 41 6C 6C 20 20 6F 66 20 20 74 68 65 73 . All of thes
00E0B0: 65 20 20 72 6F 75 74 69 6E 65 73 20 20 61 6E 64 e routines and
00E0C0: 0D 0A 20 20 20 20 20 20 20 6A 75 6D 70 62 6C 6F .. jumpblo
00E0D0: 63 6B 73 20 61 72 65 20 63 6F 70 69 65 64 20 6F cks are copied o
00E0E0: 75 74 20 6F 66 20 74 68 65 20 6C 6F 77 65 72 20 ut of the lower
00E0F0: 52 4F 4D 20 69 6E 74 6F 20 74 68 65 20 66 69 72 ROM into the fir
00E100: 6D 77 61 72 65 20 52 41 4D 20 20 61 72 65 61 0D mware RAM area.
00E110: 0A 20 20 20 20 20 20 20 77 68 65 6E 20 74 68 65 . when the
00E120: 20 4B 65 72 6E 65 6C 20 69 73 20 69 6E 69 74 69 Kernel is initi
00E130: 61 6C 69 7A 65 64 2E 20 54 68 75 73 20 74 68 65 alized. Thus the
00E140: 79 20 77 6F 72 6B 20 20 69 6E 64 65 70 65 6E 64 y work independ
00E150: 65 6E 74 6C 79 20 20 6F 66 20 20 74 68 65 0D 0A ently of the..
00E160: 20 20 20 20 20 20 20 52 4F 4D 20 73 74 61 74 65 ROM state
00E170: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
00E180: 32 2E 35 20 42 61 6E 6B 20 53 77 69 74 63 68 69 2.5 Bank Switchi
00E190: 6E 67 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ng.........
00E1A0: 20 20 54 68 65 20 55 4C 41 20 69 6E 20 74 68 65 The ULA in the
00E1B0: 20 43 50 43 36 31 32 38 20 69 6E 63 6C 75 64 65 CPC6128 include
00E1C0: 73 20 63 69 72 63 75 69 74 72 79 20 66 6F 72 20 s circuitry for
00E1D0: 62 61 6E 6B 20 73 77 69 74 63 68 69 6E 67 20 31 bank switching 1
00E1E0: 32 38 4B 20 20 52 41 4D 0D 0A 20 20 20 20 20 20 28K RAM..
00E1F0: 20 69 6E 74 6F 20 74 68 65 20 36 34 4B 20 6D 65 into the 64K me
00E200: 6D 6F 72 79 20 6D 61 70 20 64 65 73 63 72 69 62 mory map describ
00E210: 65 64 20 69 6E 20 73 65 63 74 69 6F 6E 20 32 2E ed in section 2.
00E220: 31 2E 20 20 54 68 65 20 20 62 61 6E 6B 20 20 73 1. The bank s
00E230: 77 69 74 63 68 65 64 0D 0A 20 20 20 20 20 20 20 witched..
00E240: 52 41 4D 20 72 65 70 6C 61 63 65 73 20 74 68 65 RAM replaces the
00E250: 20 52 41 4D 20 69 6E 20 74 68 65 20 6D 65 6D 6F RAM in the memo
00E260: 72 79 20 6D 61 70 20 61 74 20 23 30 30 30 30 2E ry map at #0000.
00E270: 2E 23 33 46 46 46 2C 20 20 23 34 30 30 30 2E 2E .#3FFF, #4000..
00E280: 23 37 46 46 46 2C 0D 0A 20 20 20 20 20 20 20 23 #7FFF,.. #
00E290: 38 30 30 30 2E 2E 23 42 46 46 46 20 61 6E 64 20 8000..#BFFF and
00E2A0: 23 43 30 30 30 2E 2E 23 46 46 46 46 2E 20 54 68 #C000..#FFFF. Th
00E2B0: 65 20 75 73 65 72 20 63 61 6E 20 73 65 6C 65 63 e user can selec
00E2C0: 74 20 61 6E 20 6F 72 67 61 6E 69 7A 61 74 69 6F t an organizatio
00E2D0: 6E 20 20 62 79 0D 0A 20 20 20 20 20 20 20 63 61 n by.. ca
00E2E0: 6C 6C 69 6E 67 20 4B 4C 20 42 41 4E 4B 20 53 45 lling KL BANK SE
00E2F0: 4C 45 43 54 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 LECT.........
00E300: 20 20 20 20 54 68 65 20 62 6C 6F 63 6B 73 20 61 The blocks a
00E310: 76 61 69 6C 61 62 6C 65 20 69 6E 20 65 61 63 68 vailable in each
00E320: 20 6F 72 67 61 6E 69 7A 61 74 69 6F 6E 20 61 72 organization ar
00E330: 65 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D e as follows:...
00E340: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
00E350: 20 20 20 20 20 4F 72 67 61 6E 69 7A 61 74 69 6F Organizatio
00E360: 6E 20 20 20 20 20 20 20 20 42 6C 6F 63 6B 20 61 n Block a
00E370: 63 63 65 73 73 65 64 20 61 74 20 6D 65 6D 6F 72 ccessed at memor
00E380: 79 20 61 64 64 72 65 73 73 0D 0A 20 20 20 20 20 y address..
00E390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E3A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
00E3B0: 30 30 30 30 20 20 20 20 20 23 34 30 30 30 20 20 0000 #4000
00E3C0: 20 20 20 23 38 30 30 30 20 20 20 20 20 23 43 30 #8000 #C0
00E3D0: 30 30 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 00..
00E3E0: 20 20 20 20 20 20 20 20 20 30 20 20 20 20 20 20 0
00E3F0: 20 20 20 20 20 20 20 20 20 20 30 20 20 20 20 20 0
00E400: 20 20 20 20 31 20 20 20 20 20 20 20 20 20 32 20 1 2
00E410: 20 20 20 20 20 20 20 20 33 0D 0A 20 20 20 20 20 3..
00E420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E430: 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1
00E440: 20 30 20 20 20 20 20 20 20 20 20 31 20 20 20 20 0 1
00E450: 20 20 20 20 20 32 20 20 20 20 20 20 20 20 20 37 2 7
00E460: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
00E470: 20 20 20 20 20 20 20 32 20 20 20 20 20 20 20 20 2
00E480: 20 20 20 20 20 20 20 20 34 20 20 20 20 20 20 20 4
00E490: 20 20 35 20 20 20 20 20 20 20 20 20 36 20 20 20 5 6
00E4A0: 20 20 20 20 20 20 37 0D 0A 20 20 20 20 20 20 20 7..
00E4B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 33 20 3
00E4C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 0
00E4D0: 20 20 20 20 20 20 20 20 20 33 20 20 20 20 20 20 3
00E4E0: 20 20 20 32 20 20 20 20 20 20 20 20 20 37 0D 0A 2 7..
00E4F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
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: 20 20 20 20 20 34 20 20 20 20 20 20 20 20 20 20 4
00E610: 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 0
00E620: 34 20 20 20 20 20 20 20 20 20 32 20 20 20 20 20 4 2
00E630: 20 20 20 20 33 0D 0A 20 20 20 20 20 20 20 20 20 3..
00E640: 20 20 20 20 20 20 20 20 20 20 20 20 35 20 20 20 5
00E650: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 20 0
00E660: 20 20 20 20 20 20 20 35 20 20 20 20 20 20 20 20 5
00E670: 20 32 20 20 20 20 20 20 20 20 20 33 0D 0A 20 20 2 3..
00E680: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E690: 20 20 20 36 20 20 20 20 20 20 20 20 20 20 20 20 6
00E6A0: 20 20 20 20 30 20 20 20 20 20 20 20 20 20 36 20 0 6
00E6B0: 20 20 20 20 20 20 20 20 32 20 20 20 20 20 20 20 2
00E6C0: 20 20 33 0D 0A 20 20 20 20 20 20 20 20 20 20 20 3..
00E6D0: 20 20 20 20 20 20 20 20 20 20 37 20 20 20 20 20 7
00E6E0: 20 20 20 20 20 20 20 20 20 20 20 30 20 20 20 20 0
00E6F0: 20 20 20 20 20 37 20 20 20 20 20 20 20 20 20 32 7 2
00E700: 20 20 20 20 20 20 20 20 20 33 0D 0A 0D 0A 0D 0A 3......
00E710: 0D 0A 20 20 20 20 20 20 20 44 75 72 69 6E 67 20 .. During
00E720: 45 4D 53 20 20 74 68 65 20 20 43 50 43 36 31 32 EMS the CPC612
00E730: 38 20 20 73 65 6C 65 63 74 73 20 20 6F 72 67 61 8 selects orga
00E740: 6E 69 7A 61 74 69 6F 6E 20 20 30 20 20 61 6E 64 nization 0 and
00E750: 20 20 74 68 69 73 20 20 69 73 20 20 74 68 65 0D this is the.
00E760: 0A 20 20 20 20 20 20 20 6F 72 67 61 6E 69 7A 61 . organiza
00E770: 74 69 6F 6E 20 6E 6F 72 6D 61 6C 6C 79 20 61 73 tion normally as
00E780: 73 6F 63 69 61 74 65 64 20 77 69 74 68 20 74 68 sociated with th
00E790: 65 20 66 69 72 6D 77 61 72 65 2E 20 4E 6F 74 65 e firmware. Note
00E7A0: 20 74 68 61 74 20 62 6C 6F 63 6B 73 20 30 0D 0A that blocks 0..
00E7B0: 20 20 20 20 20 20 20 61 6E 64 20 32 20 63 6F 6E and 2 con
00E7C0: 74 61 69 6E 20 66 69 72 6D 77 61 72 65 20 76 61 tain firmware va
00E7D0: 72 69 61 62 6C 65 73 2C 20 66 69 72 6D 77 61 72 riables, firmwar
00E7E0: 65 20 6A 75 6D 70 62 6C 6F 63 6B 73 20 61 6E 64 e jumpblocks and
00E7F0: 20 20 74 68 65 20 20 73 74 61 63 6B 2E 0D 0A 20 the stack...
00E800: 20 20 20 20 20 20 41 6C 6C 20 74 68 65 73 65 20 All these
00E810: 6E 65 65 64 20 74 6F 20 62 65 20 69 6E 20 74 68 need to be in th
00E820: 65 69 72 20 63 6F 72 72 65 63 74 20 70 6C 61 63 eir correct plac
00E830: 65 73 20 66 6F 72 20 74 68 65 20 66 69 72 6D 77 es for the firmw
00E840: 61 72 65 20 74 6F 20 72 75 6E 2E 0D 0A 0D 0A 0D are to run......
00E850: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
00E860: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
00E870: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
00E880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E890: 20 20 20 20 20 20 70 61 67 65 20 32 2E 36 0D 0A page 2.6..
00E8A0: 1A 0D 0A 1A 72 74 20 49 6E 73 74 72 75 63 74 69 ....rt Instructi
00E8B0: 6F 6E 73 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ons......
00E8C0: 54 68 65 20 73 79 73 74 65 6D 20 68 61 73 20 33 The system has 3
00E8D0: 32 4B 20 6F 66 20 52 4F 4D 20 61 6E 64 20 36 34 2K of ROM and 64
00E8E0: 4B 20 6F 66 20 52 41 4D 20 20 69 6E 20 20 74 68 K of RAM in th
00E8F0: 65 20 20 5A 38 30 27 73 20 20 36 34 4B 20 20 61 e Z80's 64K a
00E900: 20 20 20 20 20 20 20 20 20 33 0D 0A 0D 0A 0D 0A 3......
00E910: 0D 0A 20 20 20 20 20 20 20 44 75 72 69 6E 67 20 .. During
00E920: 45 4D 53 20 20 74 68 65 20 20 43 50 43 36 31 32 EMS the CPC612
00E930: 38 20 20 73 65 6C 65 63 74 73 20 20 6F 72 67 61 8 selects orga
00E940: 6E 69 7A 61 74 69 6F 6E 20 20 30 20 20 61 6E 64 nization 0 and
00E950: 20 20 74 68 69 73 20 20 69 73 20 20 74 68 65 0D this is the.
00E960: 0A 20 20 20 20 20 20 20 6F 72 67 61 6E 69 7A 61 . organiza
00E970: 74 69 6F 6E 20 6E 6F 72 6D 61 6C 6C 79 20 61 73 tion normally as
00E980: 73 6F 63 69 61 74 65 64 20 77 69 74 68 20 74 68 sociated with th
00E990: 65 20 66 69 72 6D 77 61 72 65 2E 20 4E 6F 74 65 e firmware. Note
00E9A0: 20 74 68 61 74 20 62 6C 6F 63 6B 73 20 30 0D 0A that blocks 0..
00E9B0: 20 20 20 20 20 20 20 61 6E 64 20 32 20 63 6F 6E and 2 con
00E9C0: 74 61 69 6E 20 66 69 72 6D 77 61 72 65 20 76 61 tain firmware va
00E9D0: 72 69 61 62 6C 65 73 2C 20 66 69 72 6D 77 61 72 riables, firmwar
00E9E0: 65 20 6A 75 6D 70 62 6C 6F 63 6B 73 20 61 6E 64 e jumpblocks and
00E9F0: 20 20 74 68 65 20 20 73 74 61 63 6B 2E 0D 0A 20 the stack...
00EA00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
00EA10: 20 20 20 54 68 65 20 64 6F 63 75 6D 65 6E 74 61 The documenta
00EA20: 74 69 6F 6E 20 66 6F 72 20 61 20 6E 75 6D 62 65 tion for a numbe
00EA30: 72 20 6F 66 20 20 66 69 72 6D 77 61 72 65 20 20 r of firmware
00EA40: 72 6F 75 74 69 6E 65 73 20 20 73 70 65 63 69 66 routines specif
00EA50: 69 65 73 20 20 74 68 61 74 0D 0A 20 20 20 20 20 ies that..
00EA60: 20 20 64 61 74 61 20 62 6C 6F 63 6B 73 20 70 61 data blocks pa
00EA70: 73 73 65 64 20 74 6F 20 74 68 65 6D 20 73 68 6F ssed to them sho
00EA80: 75 6C 64 20 62 65 20 69 6E 20 74 68 65 20 20 63 uld be in the c
00EA90: 65 6E 74 72 61 6C 20 20 33 32 4B 20 20 6D 65 6D entral 32K mem
00EAA0: 6F 72 79 2E 20 20 49 6E 0D 0A 20 20 20 20 20 20 ory. In..
00EAB0: 20 6D 6F 73 74 20 63 61 73 65 73 20 69 74 20 64 most cases it d
00EAC0: 6F 65 73 20 6E 6F 74 20 6D 61 74 74 65 72 20 20 oes not matter
00EAD0: 77 68 69 63 68 20 20 62 6C 6F 63 6B 73 20 20 61 which blocks a
00EAE0: 72 65 20 20 73 77 69 74 63 68 65 64 20 20 69 6E re switched in
00EAF0: 74 6F 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 to the..
00EB00: 6D 65 6D 6F 72 79 20 6D 61 70 20 61 74 20 74 68 memory map at th
00EB10: 65 73 65 20 70 6C 61 63 65 73 2C 20 68 6F 77 65 ese places, howe
00EB20: 76 65 72 2C 20 74 68 65 20 4B 65 72 6E 65 6C 20 ver, the Kernel
00EB30: 61 63 63 65 73 73 65 73 20 20 64 61 74 61 20 20 accesses data
00EB40: 62 6C 6F 63 6B 73 0D 0A 20 20 20 20 20 20 20 70 blocks.. p
00EB50: 61 73 73 65 64 20 74 6F 20 69 74 20 28 65 2E 67 assed to it (e.g
00EB60: 2E 20 74 69 63 6B 65 72 20 62 6C 6F 63 6B 73 20 . ticker blocks
00EB70: 6F 72 20 52 53 58 20 20 63 6F 6D 6D 61 6E 64 20 or RSX command
00EB80: 20 74 61 62 6C 65 73 29 20 20 61 74 20 20 76 61 tables) at va
00EB90: 72 69 6F 75 73 0D 0A 20 20 20 20 20 20 20 74 69 rious.. ti
00EBA0: 6D 65 73 20 28 65 2E 67 2E 20 64 75 72 69 6E 67 mes (e.g. during
00EBB0: 20 69 6E 74 65 72 72 75 70 74 73 20 6F 72 20 20 interrupts or
00EBC0: 65 76 65 6E 74 20 20 70 72 6F 63 65 73 73 69 6E event processin
00EBD0: 67 29 20 20 61 6E 64 20 20 69 74 20 20 68 61 73 g) and it has
00EBE0: 20 20 6E 6F 0D 0A 20 20 20 20 20 20 20 63 6F 6E no.. con
00EBF0: 74 72 6F 6C 20 6F 76 65 72 20 74 68 65 20 62 61 trol over the ba
00EC00: 6E 6B 20 73 77 69 74 63 68 69 6E 67 20 61 74 20 nk switching at
00EC10: 73 75 63 68 20 74 69 6D 65 73 2E 20 49 74 20 69 such times. It i
00EC20: 73 20 75 70 20 74 6F 20 74 68 65 20 75 73 65 72 s up to the user
00EC30: 20 74 6F 0D 0A 20 20 20 20 20 20 20 65 6E 73 75 to.. ensu
00EC40: 72 65 20 74 68 61 74 20 20 74 68 65 20 20 4B 65 re that the Ke
00EC50: 72 6E 65 6C 20 20 69 73 20 20 6F 6E 6C 79 20 20 rnel is only
00EC60: 70 61 73 73 65 64 20 20 64 61 74 61 20 20 62 6C passed data bl
00EC70: 6F 63 6B 73 20 20 74 68 61 74 20 20 72 65 6D 61 ocks that rema
00EC80: 69 6E 0D 0A 20 20 20 20 20 20 20 61 63 63 65 73 in.. acces
00EC90: 73 61 62 6C 65 2E 20 54 68 65 20 73 69 6D 70 6C sable. The simpl
00ECA0: 65 73 74 20 73 6F 6C 75 74 69 6F 6E 20 74 6F 20 est solution to
00ECB0: 74 68 69 73 20 70 72 6F 62 6C 65 6D 20 69 73 20 this problem is
00ECC0: 20 74 6F 20 20 65 6E 73 75 72 65 20 20 74 68 61 to ensure tha
00ECD0: 74 0D 0A 20 20 20 20 20 20 20 61 6C 6C 20 4B 65 t.. all Ke
00ECE0: 72 6E 65 6C 20 64 61 74 61 20 62 6C 6F 63 6B 73 rnel data blocks
00ECF0: 20 61 72 65 20 6C 6F 63 61 74 65 64 20 20 69 6E are located in
00ED00: 20 20 62 6C 6F 63 6B 20 20 32 20 20 28 62 65 74 block 2 (bet
00ED10: 77 65 65 6E 20 20 23 38 30 30 30 20 20 61 6E 64 ween #8000 and
00ED20: 0D 0A 20 20 20 20 20 20 20 23 42 46 46 46 29 2E .. #BFFF).
00ED30: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4F ........ O
00ED40: 72 67 61 6E 69 7A 61 74 69 6F 6E 73 20 34 2E 2E rganizations 4..
00ED50: 37 20 61 72 65 20 74 68 65 20 66 69 72 6D 77 61 7 are the firmwa
00ED60: 72 65 20 20 6F 72 67 61 6E 69 7A 61 74 69 6F 6E re organization
00ED70: 20 20 77 69 74 68 20 20 61 20 20 6E 65 77 20 20 with a new
00ED80: 62 6C 6F 63 6B 0D 0A 20 20 20 20 20 20 20 73 77 block.. sw
00ED90: 69 74 63 68 65 64 20 69 6E 74 6F 20 74 68 65 20 itched into the
00EDA0: 6D 65 6D 6F 72 79 20 6D 61 70 20 61 74 20 23 34 memory map at #4
00EDB0: 30 30 30 2E 20 54 68 65 73 65 20 6F 72 67 61 6E 000. These organ
00EDC0: 69 7A 61 74 69 6F 6E 73 20 63 61 6E 20 62 65 20 izations can be
00EDD0: 75 73 65 64 0D 0A 20 20 20 20 20 20 20 74 6F 20 used.. to
00EDE0: 61 63 63 65 73 73 20 70 72 6F 67 72 61 6D 73 20 access programs
00EDF0: 6F 72 20 64 61 74 61 20 73 74 6F 72 65 64 20 69 or data stored i
00EE00: 6E 20 62 6C 6F 63 6B 73 20 34 2E 2E 37 2E 0D 0A n blocks 4..7...
00EE10: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4F 72 67 ...... Org
00EE20: 61 6E 69 7A 61 74 69 6F 6E 73 20 31 2E 2E 32 20 anizations 1..2
00EE30: 61 72 65 20 75 73 65 64 20 62 79 20 43 50 2F 4D are used by CP/M
00EE40: 20 50 6C 75 73 20 61 6E 64 20 61 72 65 20 6E 6F Plus and are no
00EE50: 74 20 20 72 65 61 6C 6C 79 20 20 73 75 69 74 61 t really suita
00EE60: 62 6C 65 0D 0A 20 20 20 20 20 20 20 66 6F 72 20 ble.. for
00EE70: 67 65 6E 65 72 61 6C 20 75 73 65 2E 20 49 6E 20 general use. In
00EE80: 70 61 72 74 69 63 75 6C 61 72 2C 20 69 66 20 6F particular, if o
00EE90: 72 67 61 6E 69 7A 61 74 69 6F 6E 20 32 20 69 73 rganization 2 is
00EEA0: 20 20 73 65 6C 65 63 74 65 64 20 20 69 74 20 20 selected it
00EEB0: 69 73 0D 0A 20 20 20 20 20 20 20 6E 65 63 65 73 is.. neces
00EEC0: 73 61 72 79 20 74 6F 20 70 61 74 63 68 20 61 20 sary to patch a
00EED0: 70 72 6F 67 61 6D 20 69 6E 74 6F 20 52 41 4D 20 progam into RAM
00EEE0: 61 74 20 23 30 30 33 38 20 74 6F 20 63 61 74 63 at #0038 to catc
00EEF0: 68 20 69 6E 74 65 72 72 75 70 74 73 20 20 61 6E h interrupts an
00EF00: 64 0D 0A 20 20 20 20 20 20 20 74 6F 20 62 61 6E d.. to ban
00EF10: 6B 20 73 77 69 74 63 68 20 62 61 63 6B 20 74 6F k switch back to
00EF20: 20 61 20 6D 6F 72 65 20 6E 6F 72 6D 61 6C 20 6F a more normal o
00EF30: 72 67 61 6E 69 7A 61 74 69 6F 6E 20 20 28 65 2E rganization (e.
00EF40: 67 2E 20 20 6F 72 67 61 6E 69 7A 61 74 69 6F 6E g. organization
00EF50: 0D 0A 20 20 20 20 20 20 20 31 29 20 74 6F 20 72 .. 1) to r
00EF60: 75 6E 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 un the standard
00EF70: 69 6E 74 65 72 72 75 70 74 20 63 6F 64 65 2E 0D interrupt code..
00EF80: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4F 72 ....... Or
00EF90: 67 61 6E 69 7A 61 74 69 6F 6E 20 33 20 69 73 20 ganization 3 is
00EFA0: 61 6C 73 6F 20 75 73 65 64 20 62 79 20 43 50 2F also used by CP/
00EFB0: 4D 20 50 6C 75 73 20 62 75 74 20 69 74 20 69 73 M Plus but it is
00EFC0: 20 6F 66 20 20 69 6E 74 65 72 65 73 74 20 20 73 of interest s
00EFD0: 69 6E 63 65 0D 0A 20 20 20 20 20 20 20 69 74 20 ince.. it
00EFE0: 68 61 73 20 74 68 65 20 52 41 4D 20 75 73 75 61 has the RAM usua
00EFF0: 6C 6C 79 20 75 73 65 64 20 66 6F 72 20 74 68 65 lly used for the
00F000: 20 73 63 72 65 65 6E 20 6C 6F 63 61 74 65 64 20 screen located
00F010: 61 74 20 23 34 30 30 30 20 20 77 68 65 72 65 20 at #4000 where
00F020: 20 69 74 0D 0A 20 20 20 20 20 20 20 63 61 6E 20 it.. can
00F030: 62 65 20 61 63 63 65 73 73 65 64 20 77 69 74 68 be accessed with
00F040: 6F 75 74 20 64 69 73 61 62 6C 69 6E 67 20 74 68 out disabling th
00F050: 65 20 75 70 70 65 72 20 52 4F 4D 2E 0D 0A 0D 0A e upper ROM.....
00F060: 0D 0A 0D 0A 20 20 20 20 20 20 20 42 61 6E 6B 20 .... Bank
00F070: 73 77 69 74 63 68 69 6E 67 20 68 61 73 20 6E 6F switching has no
00F080: 20 65 66 66 65 63 74 20 6F 6E 20 74 68 65 20 43 effect on the C
00F090: 52 54 43 2E 20 42 61 73 65 20 61 64 64 72 65 73 RTC. Base addres
00F0A0: 73 65 73 20 23 30 30 30 30 2C 20 23 34 30 30 30 ses #0000, #4000
00F0B0: 2C 0D 0A 20 20 20 20 20 20 20 23 38 30 30 30 20 ,.. #8000
00F0C0: 61 6E 64 20 23 43 30 30 30 20 63 6F 72 72 65 73 and #C000 corres
00F0D0: 70 6F 6E 64 20 74 6F 20 74 68 65 20 73 63 72 65 pond to the scre
00F0E0: 65 6E 20 62 65 69 6E 67 20 69 6E 20 62 6C 6F 63 en being in bloc
00F0F0: 6B 73 20 30 2C 20 31 2C 20 32 20 61 6E 64 20 33 ks 0, 1, 2 and 3
00F100: 0D 0A 20 20 20 20 20 20 20 72 65 73 70 65 63 74 .. respect
00F110: 69 76 65 6C 79 2E 20 49 74 20 69 73 20 6E 6F 74 ively. It is not
00F120: 20 70 6F 73 73 69 62 6C 65 20 74 6F 20 6C 6F 63 possible to loc
00F130: 61 74 65 20 74 68 65 20 73 63 72 65 65 6E 20 69 ate the screen i
00F140: 6E 20 62 6C 6F 63 6B 73 20 20 34 2E 2E 37 2E 0D n blocks 4..7..
00F150: 0A 20 20 20 20 20 20 20 48 6F 77 65 76 65 72 2C . However,
00F160: 20 74 68 65 20 66 69 72 6D 77 61 72 65 20 72 6F the firmware ro
00F170: 75 74 69 6E 65 73 20 66 6F 72 20 61 63 63 65 73 utines for acces
00F180: 73 69 6E 67 20 20 74 68 65 20 20 73 63 72 65 65 sing the scree
00F190: 6E 20 20 6D 65 6D 6F 72 79 20 20 61 72 65 0D 0A n memory are..
00F1A0: 20 20 20 20 20 20 20 61 66 66 65 63 74 65 64 20 affected
00F1B0: 62 79 20 62 61 6E 6B 20 73 77 69 74 63 68 69 6E by bank switchin
00F1C0: 67 2E 20 46 6F 72 20 65 78 61 6D 70 6C 65 2C 20 g. For example,
00F1D0: 69 66 20 61 20 62 61 73 65 20 61 64 64 72 65 73 if a base addres
00F1E0: 73 20 6F 66 20 23 43 30 30 30 20 69 73 0D 0A 20 s of #C000 is..
00F1F0: 20 20 20 20 20 20 73 65 74 20 69 6E 20 6F 72 67 set in org
00F200: 61 6E 69 7A 61 74 69 6F 6E 20 33 20 74 68 65 6E anization 3 then
00F210: 20 74 68 65 20 66 69 72 6D 77 61 72 65 20 77 69 the firmware wi
00F220: 6C 6C 20 62 65 20 75 6E 61 62 6C 65 20 74 6F 20 ll be unable to
00F230: 20 61 63 63 65 73 73 20 20 74 68 65 0D 0A 20 20 access the..
00F240: 20 20 20 20 20 73 63 72 65 65 6E 20 6D 65 6D 6F screen memo
00F250: 72 79 20 73 69 6E 63 65 20 62 6C 6F 63 6B 20 31 ry since block 1
00F260: 20 69 73 20 6E 6F 74 20 69 6E 20 74 68 65 20 6D is not in the m
00F270: 65 6D 6F 72 79 20 6D 61 70 2E 20 28 53 65 65 20 emory map. (See
00F280: 73 65 63 74 69 6F 6E 20 36 2E 34 0D 0A 20 20 20 section 6.4..
00F290: 20 20 20 20 66 6F 72 20 61 20 66 75 6C 6C 20 64 for a full d
00F2A0: 65 73 63 72 69 70 74 69 6F 6E 20 6F 66 20 74 68 escription of th
00F2B0: 65 20 73 63 72 65 65 6E 20 6D 65 6D 6F 72 79 20 e screen memory
00F2C0: 6D 61 70 29 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 map).........
00F2D0: 20 20 20 20 4F 72 67 61 6E 69 7A 61 74 69 6F 6E Organization
00F2E0: 73 20 34 2E 2E 37 20 63 61 6E 20 62 65 20 75 73 s 4..7 can be us
00F2F0: 65 64 20 74 6F 20 73 65 74 20 75 70 20 61 20 63 ed to set up a c
00F300: 6F 6D 70 6C 65 74 65 20 73 63 72 65 65 6E 20 69 omplete screen i
00F310: 6E 20 20 6F 6E 65 20 20 67 6F 0D 0A 20 20 20 20 n one go..
00F320: 20 20 20 62 79 20 75 73 69 6E 67 20 53 43 52 20 by using SCR
00F330: 53 45 54 20 50 4F 53 49 54 49 4F 4E 20 74 6F 20 SET POSITION to
00F340: 6D 61 6B 65 20 74 68 65 20 66 69 72 6D 77 61 72 make the firmwar
00F350: 65 20 20 77 72 69 74 65 20 20 74 6F 20 20 74 68 e write to th
00F360: 65 20 20 6D 65 6D 6F 72 79 0D 0A 20 20 20 20 20 e memory..
00F370: 20 20 6C 6F 63 61 74 69 6F 6E 20 61 74 20 23 34 location at #4
00F380: 30 30 30 20 77 69 74 68 6F 75 74 20 73 65 6E 64 000 without send
00F390: 69 6E 67 20 61 20 6E 65 77 20 62 61 73 65 20 20 ing a new base
00F3A0: 61 64 64 72 65 73 73 20 20 74 6F 20 20 74 68 65 address to the
00F3B0: 20 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 screen..
00F3C0: 20 68 61 72 64 77 61 72 65 2E 20 54 68 65 6E 2C hardware. Then,
00F3D0: 20 77 68 65 6E 20 74 68 65 20 73 63 72 65 65 6E when the screen
00F3E0: 20 68 61 73 20 62 65 65 6E 20 20 66 69 6E 69 73 has been finis
00F3F0: 68 65 64 2C 20 20 74 68 65 20 20 63 6F 6E 74 65 hed, the conte
00F400: 6E 74 73 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 nts of..
00F410: 74 68 69 73 20 62 6C 6F 63 6B 20 63 61 6E 20 62 this block can b
00F420: 65 20 71 75 69 63 6B 6C 79 20 63 6F 70 69 65 64 e quickly copied
00F430: 20 69 6E 74 6F 20 74 68 65 20 62 6C 6F 63 6B 20 into the block
00F440: 61 63 74 75 61 6C 6C 79 20 62 65 69 6E 67 20 75 actually being u
00F450: 73 65 64 20 62 79 0D 0A 20 20 20 20 20 20 20 74 sed by.. t
00F460: 68 65 20 43 52 54 43 20 28 75 73 69 6E 67 20 4B he CRTC (using K
00F470: 4C 20 44 49 52 20 70 65 72 68 61 70 73 29 2E 20 L DIR perhaps).
00F480: 46 6F 72 20 65 78 61 6D 70 6C 65 2C 20 61 20 74 For example, a t
00F490: 69 74 6C 65 20 73 63 72 65 65 6E 20 63 6F 75 6C itle screen coul
00F4A0: 64 20 20 62 65 0D 0A 20 20 20 20 20 20 20 73 65 d be.. se
00F4B0: 74 20 75 70 20 61 6E 64 20 62 61 6E 6B 20 73 77 t up and bank sw
00F4C0: 69 74 63 68 65 64 20 6F 75 74 20 6F 66 20 74 68 itched out of th
00F4D0: 65 20 77 61 79 20 61 6E 64 20 74 68 65 6E 20 73 e way and then s
00F4E0: 77 69 74 63 68 65 64 20 62 61 63 6B 20 69 6E 20 witched back in
00F4F0: 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 63 6F 70 and.. cop
00F500: 69 65 64 20 61 74 20 61 20 6C 61 74 65 72 20 64 ied at a later d
00F510: 61 74 65 20 77 68 65 6E 20 69 74 20 69 73 20 77 ate when it is w
00F520: 61 6E 74 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A anted...........
00F530: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
00F540: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
00F550: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
00F560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00F570: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 32 2E page 2.
00F580: 37 0D 0A 1A 41 50 2D 32 20 20 24 24 24 FF 00 FF 7...AP-2 $$$...
00F590: 20 52 4F 4D 73 2C 20 52 41 4D 20 61 6E 64 20 74 ROMs, RAM and t
00F5A0: 68 65 20 52 65 73 74 61 72 74 20 49 6E 73 74 72 he Restart Instr
00F5B0: 75 63 74 69 6F 6E 73 0D 0A 0D 0A 0D 0A 20 20 20 uctions......
00F5C0: 20 20 20 20 54 68 65 20 73 79 73 74 65 6D 20 68 The system h
00F5D0: 61 73 20 33 32 4B 20 6F 66 20 52 4F 4D 20 61 6E as 32K of ROM an
00F5E0: 64 20 36 34 4B 20 6F 66 20 52 41 4D 20 20 69 6E d 64K of RAM in
00F5F0: 20 20 74 68 65 20 20 5A 38 30 27 73 20 20 36 34 the Z80's 64
00F600: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 33 ........ 3
00F610: 20 54 68 65 20 4B 65 79 62 6F 61 72 64 2E 0D 0A The Keyboard...
00F620: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 4B .... The K
00F630: 65 79 20 4D 61 6E 61 67 65 72 20 69 73 20 74 68 ey Manager is th
00F640: 65 20 70 61 63 6B 20 61 73 73 6F 63 69 61 74 65 e pack associate
00F650: 64 20 20 77 69 74 68 20 20 74 68 65 20 20 6B 65 d with the ke
00F660: 79 62 6F 61 72 64 2E 20 20 41 6C 6C 20 20 74 68 yboard. All th
00F670: 65 0D 0A 20 20 20 20 20 20 20 61 74 74 72 69 62 e.. attrib
00F680: 75 74 65 73 20 6F 66 20 74 68 65 20 6B 65 79 62 utes of the keyb
00F690: 6F 61 72 64 20 61 72 65 20 67 65 6E 65 72 61 74 oard are generat
00F6A0: 65 64 20 61 6E 64 20 20 63 6F 6E 74 72 6F 6C 6C ed and controll
00F6B0: 65 64 20 20 62 79 20 20 74 68 65 20 20 4B 65 79 ed by the Key
00F6C0: 0D 0A 20 20 20 20 20 20 20 4D 61 6E 61 67 65 72 .. Manager
00F6D0: 2E 20 54 68 65 73 65 20 61 74 74 72 69 62 75 74 . These attribut
00F6E0: 65 73 20 69 6E 63 6C 75 64 65 20 20 72 65 70 65 es include repe
00F6F0: 61 74 20 20 73 70 65 65 64 2C 20 20 73 68 69 66 at speed, shif
00F700: 74 20 20 61 6E 64 20 20 63 6F 6E 74 72 6F 6C 0D t and control.
00F710: 0A 20 20 20 20 20 20 20 6B 65 79 73 2C 20 66 75 . keys, fu
00F720: 6E 63 74 69 6F 6E 20 6B 65 79 73 20 20 61 6E 64 nction keys and
00F730: 20 20 6B 65 79 20 20 74 72 61 6E 73 6C 61 74 69 key translati
00F740: 6F 6E 2E 20 20 54 68 65 20 20 6A 6F 79 73 74 69 on. The joysti
00F750: 63 6B 73 20 20 61 72 65 20 20 61 6C 73 6F 0D 0A cks are also..
00F760: 20 20 20 20 20 20 20 73 63 61 6E 6E 65 64 20 62 scanned b
00F770: 79 20 74 68 65 20 4B 65 79 20 4D 61 6E 61 67 65 y the Key Manage
00F780: 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 r....... T
00F790: 68 65 20 4B 65 79 20 4D 61 6E 61 67 65 72 20 68 he Key Manager h
00F7A0: 61 73 20 74 68 72 65 65 20 6C 65 76 65 6C 73 20 as three levels
00F7B0: 6F 66 20 6F 70 65 72 61 74 69 6F 6E 2E 20 54 68 of operation. Th
00F7C0: 65 20 6C 6F 77 65 73 74 20 6C 65 76 65 6C 20 20 e lowest level
00F7D0: 73 63 61 6E 73 0D 0A 20 20 20 20 20 20 20 74 68 scans.. th
00F7E0: 65 20 6B 65 79 62 6F 61 72 64 2C 20 74 68 65 20 e keyboard, the
00F7F0: 6D 69 64 64 6C 65 20 6C 65 76 65 6C 20 63 6F 6E middle level con
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: 76 65 72 74 73 20 74 68 65 20 20 6B 65 79 20 20 verts the key
00F910: 70 72 65 73 73 69 6E 67 73 20 20 69 6E 74 6F 20 pressings into
00F920: 20 6B 65 79 0D 0A 20 20 20 20 20 20 20 76 61 6C key.. val
00F930: 75 65 73 20 61 6E 64 20 74 68 65 20 74 6F 70 20 ues and the top
00F940: 6C 65 76 65 6C 20 63 6F 6E 76 65 72 74 73 20 74 level converts t
00F950: 68 65 20 6B 65 79 20 76 61 6C 75 65 73 20 69 6E he key values in
00F960: 74 6F 20 63 68 61 72 61 63 74 65 72 73 2E 20 20 to characters.
00F970: 54 68 65 0D 0A 20 20 20 20 20 20 20 75 73 65 72 The.. user
00F980: 20 6D 61 79 20 61 63 63 65 73 73 20 74 68 65 20 may access the
00F990: 4B 65 79 20 4D 61 6E 61 67 65 72 20 61 74 20 77 Key Manager at w
00F9A0: 68 69 63 68 65 76 65 72 20 6C 65 76 65 6C 20 69 hichever level i
00F9B0: 73 20 6D 6F 73 74 20 61 70 70 72 6F 70 72 69 61 s most appropria
00F9C0: 74 65 0D 0A 20 20 20 20 20 20 20 66 6F 72 20 61 te.. for a
00F9D0: 20 67 69 76 65 6E 20 70 72 6F 67 72 61 6D 2E 20 given program.
00F9E0: 49 74 20 69 73 20 75 73 75 61 6C 6C 79 20 75 6E It is usually un
00F9F0: 77 69 73 65 2C 20 68 6F 77 65 76 65 72 2C 20 66 wise, however, f
00FA00: 6F 72 20 61 20 20 70 72 6F 67 72 61 6D 20 20 74 or a program t
00FA10: 6F 0D 0A 20 20 20 20 20 20 20 6D 69 78 20 61 63 o.. mix ac
00FA20: 63 65 73 73 65 73 20 61 74 20 64 69 66 66 65 72 cesses at differ
00FA30: 65 6E 74 20 6C 65 76 65 6C 73 2E 0D 0A 0D 0A 20 ent levels.....
00FA40: 20 20 20 20 20 20 33 2E 31 20 4B 65 79 62 6F 61 3.1 Keyboa
00FA50: 72 64 20 53 63 61 6E 6E 69 6E 67 2E 0D 0A 0D 0A rd Scanning.....
00FA60: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 20 6B 65 .. The ke
00FA70: 79 62 6F 61 72 64 20 20 69 73 20 20 63 6F 6D 70 yboard is comp
00FA80: 6C 65 74 65 6C 79 20 20 73 6F 66 74 77 61 72 65 letely software
00FA90: 20 20 73 63 61 6E 6E 65 64 2E 20 20 54 68 69 73 scanned. This
00FAA0: 20 20 73 63 61 6E 20 20 20 6F 63 63 75 72 73 0D scan occurs.
00FAB0: 0A 20 20 20 20 20 20 20 61 75 74 6F 6D 61 74 69 . automati
00FAC0: 63 61 6C 6C 79 20 65 76 65 72 79 20 66 69 66 74 cally every fift
00FAD0: 69 65 74 68 20 6F 66 20 61 20 20 73 65 63 6F 6E ieth of a secon
00FAE0: 64 20 20 28 73 65 65 20 20 4B 4D 20 20 53 43 41 d (see KM SCA
00FAF0: 4E 20 20 4B 45 59 53 29 2E 20 20 54 68 65 0D 0A N KEYS). The..
00FB00: 20 20 20 20 20 20 20 6B 65 79 62 6F 61 72 64 20 keyboard
00FB10: 68 61 72 64 77 61 72 65 20 69 73 20 72 65 61 64 hardware is read
00FB20: 20 61 6E 64 20 61 20 62 69 74 20 6D 61 70 20 6E and a bit map n
00FB30: 6F 74 69 6E 67 20 77 68 69 63 68 20 6B 65 79 73 oting which keys
00FB40: 20 61 72 65 20 20 70 72 65 73 73 65 64 0D 0A 20 are pressed..
00FB50: 20 20 20 20 20 20 69 73 20 63 6F 6E 73 74 72 75 is constru
00FB60: 63 74 65 64 2E 20 54 68 69 73 20 62 69 74 20 6D cted. This bit m
00FB70: 61 70 20 69 73 20 61 76 61 69 6C 61 62 6C 65 20 ap is available
00FB80: 66 6F 72 20 74 65 73 74 69 6E 67 20 69 66 20 73 for testing if s
00FB90: 70 65 63 69 66 69 63 20 6B 65 79 73 0D 0A 20 20 pecific keys..
00FBA0: 20 20 20 20 20 61 72 65 20 70 72 65 73 73 65 64 are pressed
00FBB0: 20 28 73 65 65 20 4B 4D 20 54 45 53 54 20 4B 45 (see KM TEST KE
00FBC0: 59 29 2E 20 41 73 20 74 68 65 20 62 69 74 20 6D Y). As the bit m
00FBD0: 61 70 20 69 73 20 63 6F 6E 73 74 72 75 63 74 65 ap is constructe
00FBE0: 64 20 6B 65 79 73 20 74 68 61 74 0D 0A 20 20 20 d keys that..
00FBF0: 20 20 20 20 61 72 65 20 6E 65 77 6C 79 20 70 72 are newly pr
00FC00: 65 73 73 65 64 20 61 72 65 20 20 6E 6F 74 65 64 essed are noted
00FC10: 20 20 61 6E 64 20 20 6D 61 72 6B 65 72 73 20 20 and markers
00FC20: 61 72 65 20 20 73 74 6F 72 65 64 20 20 69 6E 20 are stored in
00FC30: 20 61 20 20 62 75 66 66 65 72 0D 0A 20 20 20 20 a buffer..
00FC40: 20 20 20 75 6E 74 69 6C 20 6E 65 65 64 65 64 2E until needed.
00FC50: 20 49 66 20 6E 6F 20 6E 65 77 6C 79 20 70 72 65 If no newly pre
00FC60: 73 73 65 64 20 6B 65 79 73 20 61 72 65 20 66 6F ssed keys are fo
00FC70: 75 6E 64 20 20 74 68 65 6E 20 20 74 68 65 20 20 und then the
00FC80: 6C 61 73 74 20 20 6B 65 79 0D 0A 20 20 20 20 20 last key..
00FC90: 20 20 70 72 65 73 73 65 64 20 6D 61 79 20 62 65 pressed may be
00FCA0: 20 61 6C 6C 6F 77 65 64 20 74 20 72 65 70 65 61 allowed t repea
00FCB0: 74 20 69 66 20 20 69 74 20 20 69 73 20 20 73 74 t if it is st
00FCC0: 69 6C 6C 20 20 64 6F 77 6E 20 20 28 73 65 65 20 ill down (see
00FCD0: 20 73 65 63 74 69 6F 6E 0D 0A 20 20 20 20 20 20 section..
00FCE0: 20 33 2E 35 29 2E 20 54 68 65 20 6B 65 79 62 6F 3.5). The keybo
00FCF0: 61 72 64 20 69 73 20 27 64 65 62 6F 75 6E 63 65 ard is 'debounce
00FD00: 64 27 20 69 6E 20 20 74 68 61 74 20 20 61 20 20 d' in that a
00FD10: 6B 65 79 20 20 6D 75 73 74 20 20 62 65 20 20 72 key must be r
00FD20: 65 6C 65 61 73 65 64 0D 0A 20 20 20 20 20 20 20 eleased..
00FD30: 66 6F 72 20 74 77 6F 20 63 6F 6E 73 65 63 75 74 for two consecut
00FD40: 69 76 65 20 73 63 61 6E 73 20 62 65 66 6F 72 65 ive scans before
00FD50: 20 69 74 20 20 69 73 20 20 6D 61 72 6B 65 64 20 it is marked
00FD60: 20 61 73 20 20 72 65 6C 65 61 73 65 64 20 20 69 as released i
00FD70: 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 62 n the.. b
00FD80: 69 74 20 6D 61 70 2E 20 20 54 68 69 73 20 20 27 it map. This '
00FD90: 64 65 62 6F 75 6E 63 65 64 27 20 20 68 69 64 65 debounced' hide
00FDA0: 73 20 20 6D 75 6C 74 69 70 6C 65 20 20 6F 70 65 s multiple ope
00FDB0: 72 61 74 69 6F 6E 73 20 20 6F 66 20 20 74 68 65 rations of the
00FDC0: 20 20 6B 65 79 0D 0A 20 20 20 20 20 20 20 73 77 key.. sw
00FDD0: 69 74 63 68 20 61 73 20 69 74 20 6F 70 65 6E 73 itch as it opens
00FDE0: 20 6F 72 20 63 6C 6F 73 65 73 2E 0D 0A 0D 0A 0D or closes......
00FDF0: 0A 20 20 20 20 20 20 20 41 74 20 74 68 69 73 20 . At this
00FE00: 73 74 61 67 65 20 20 6F 6E 6C 79 20 20 66 6F 75 stage only fou
00FE10: 72 20 20 6B 65 79 73 20 20 61 72 65 20 20 74 72 r keys are tr
00FE20: 65 61 74 65 64 20 20 73 70 65 63 69 66 69 63 61 eated specifica
00FE30: 6C 6C 79 2E 20 20 54 68 65 20 20 74 77 6F 0D 0A lly. The two..
00FE40: 20 20 20 20 20 20 20 73 68 69 66 74 20 6B 65 79 shift key
00FE50: 73 20 61 6E 64 20 74 68 65 20 63 6F 6E 74 72 6F s and the contro
00FE60: 6C 20 6B 65 79 20 20 61 72 65 20 20 6E 6F 74 20 l key are not
00FE70: 20 73 74 6F 72 65 64 20 20 69 6E 20 20 74 68 65 stored in the
00FE80: 20 20 6B 65 79 20 20 62 75 66 66 65 72 0D 0A 20 key buffer..
00FE90: 20 20 20 20 20 20 74 68 65 6D 73 65 6C 76 65 73 themselves
00FEA0: 2E 20 49 6E 73 74 65 61 64 2C 20 77 68 65 6E 20 . Instead, when
00FEB0: 61 6E 79 20 6F 74 68 65 72 20 6D 61 72 6B 65 72 any other marker
00FEC0: 20 69 73 20 20 73 74 6F 72 65 64 20 20 74 68 65 is stored the
00FED0: 20 20 73 74 61 74 65 73 20 20 6F 66 0D 0A 20 20 states of..
00FEE0: 20 20 20 20 20 74 68 65 20 73 68 69 66 74 20 61 the shift a
00FEF0: 6E 64 20 63 6F 6E 74 72 6F 6C 20 6B 65 79 73 20 nd control keys
00FF00: 61 72 65 20 20 6E 6F 74 65 64 20 20 61 6E 64 20 are noted and
00FF10: 20 70 75 74 20 20 69 6E 74 6F 20 20 74 68 65 20 put into the
00FF20: 20 62 75 66 66 65 72 20 20 61 73 0D 0A 20 20 20 buffer as..
00FF30: 20 20 20 20 77 65 6C 6C 2E 20 54 68 65 20 65 73 well. The es
00FF40: 63 61 70 65 20 6B 65 79 20 20 67 65 6E 65 72 61 cape key genera
00FF50: 74 65 73 20 20 61 20 20 6D 61 72 6B 65 72 20 20 tes a marker
00FF60: 61 73 20 20 6E 6F 72 6D 61 6C 20 20 62 75 74 20 as normal but
00FF70: 20 6D 61 79 20 20 61 6C 73 6F 0D 0A 20 20 20 20 may also..
00FF80: 20 20 20 68 61 76 65 20 6F 74 68 65 72 20 20 65 have other e
00FF90: 66 66 65 63 74 73 20 20 64 65 70 65 6E 64 69 6E ffects dependin
00FFA0: 67 20 20 6F 6E 20 20 77 68 65 74 68 65 72 20 20 g on whether
00FFB0: 74 68 65 20 20 62 72 65 61 6B 20 20 6D 65 63 68 the break mech
00FFC0: 61 6E 69 73 6D 20 20 69 73 0D 0A 20 20 20 20 20 anism is..
00FFD0: 20 20 61 72 6D 65 64 20 28 73 65 65 20 73 65 63 armed (see sec
00FFE0: 74 69 6F 6E 20 33 2E 36 29 2E 0D 0A 0D 0A 0D 0A tion 3.6).......
00FFF0: 20 20 20 20 20 20 20 54 68 65 72 65 20 69 73 20 There is
010000: 61 20 70 72 6F 62 6C 65 6D 20 77 69 74 68 20 73 a problem with s
010010: 63 61 6E 6E 69 6E 67 20 74 68 65 20 6B 65 79 62 canning the keyb
010020: 6F 61 72 64 2E 20 49 66 20 74 68 72 65 65 20 20 oard. If three
010030: 6B 65 79 73 20 20 61 74 20 20 74 68 65 0D 0A 20 keys at the..
010040: 20 20 20 20 20 20 63 6F 72 6E 65 72 73 20 6F 66 corners of
010050: 20 61 20 72 65 63 74 61 6E 67 6C 65 20 69 6E 20 a rectangle in
010060: 74 68 65 20 6B 65 79 20 6D 61 74 72 69 78 20 61 the key matrix a
010070: 72 65 20 61 6C 6C 20 70 72 65 73 73 65 64 20 61 re all pressed a
010080: 74 20 20 74 68 65 20 20 73 61 6D 65 0D 0A 20 20 t the same..
010090: 20 20 20 20 20 74 69 6D 65 20 74 68 65 6E 20 74 time then t
0100A0: 68 65 20 6B 65 79 20 61 74 20 74 68 65 20 66 6F he key at the fo
0100B0: 75 72 74 68 20 63 6F 72 6E 65 72 20 61 70 70 65 urth corner appe
0100C0: 61 72 73 20 74 6F 20 62 65 20 70 72 65 73 73 65 ars to be presse
0100D0: 64 20 61 73 20 20 77 65 6C 6C 2E 0D 0A 20 20 20 d as well...
0100E0: 20 20 20 20 54 68 65 72 65 20 69 73 20 6E 6F 20 There is no
0100F0: 77 61 79 20 74 6F 20 61 76 6F 69 64 20 74 68 69 way to avoid thi
010100: 73 20 70 72 6F 62 6C 65 6D 20 20 61 73 20 20 69 s problem as i
010110: 74 20 20 69 73 20 20 61 20 20 66 65 61 74 75 72 t is a featur
010120: 65 20 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 e of the..
010130: 20 20 20 6B 65 79 62 6F 61 72 64 20 68 61 72 64 keyboard hard
010140: 77 61 72 65 2E 20 41 6C 6C 20 6B 65 79 20 63 6F ware. All key co
010150: 6D 62 69 6E 61 74 69 6F 6E 73 20 75 73 65 64 20 mbinations used
010160: 62 79 20 74 68 65 20 66 69 72 6D 77 61 72 65 20 by the firmware
010170: 28 61 6E 64 20 20 74 68 65 0D 0A 20 20 20 20 20 (and the..
010180: 20 20 42 41 53 49 43 29 20 68 61 76 65 20 62 65 BASIC) have be
010190: 65 6E 20 65 73 70 65 63 69 61 6C 6C 79 20 64 65 en especially de
0101A0: 73 69 67 6E 65 64 20 74 6F 20 61 76 6F 69 64 20 signed to avoid
0101B0: 74 68 69 73 20 65 66 66 65 63 74 2E 0D 0A 0D 0A this effect.....
0101C0: 20 20 20 20 20 20 20 33 2E 32 20 4B 65 79 20 54 3.2 Key T
0101D0: 72 61 6E 73 6C 61 74 69 6F 6E 2E 0D 0A 0D 0A 20 ranslation.....
0101E0: 20 20 20 20 20 20 57 68 65 6E 20 74 68 65 20 75 When the u
0101F0: 73 65 72 20 61 73 6B 73 20 66 6F 72 20 61 20 6B ser asks for a k
010200: 65 79 20 28 4B 4D 20 57 41 49 54 20 4B 45 59 20 ey (KM WAIT KEY
010210: 6F 72 20 4B 4D 20 52 45 41 44 20 4B 45 59 29 20 or KM READ KEY)
010220: 74 68 65 20 6E 65 78 74 20 6B 65 79 0D 0A 20 20 the next key..
010230: 20 20 20 20 20 70 72 65 73 73 65 64 20 6D 61 72 pressed mar
010240: 6B 65 72 20 69 73 20 72 65 61 64 20 66 72 6F 6D ker is read from
010250: 20 74 68 65 20 6B 65 79 20 62 75 66 66 65 72 2E the key buffer.
010260: 20 54 68 65 20 6D 61 72 6B 65 72 20 69 73 20 63 The marker is c
010270: 6F 6E 76 65 72 74 65 64 20 74 6F 0D 0A 20 20 20 onverted to..
010280: 20 20 20 20 61 20 6B 65 79 20 6E 75 6D 62 65 72 a key number
010290: 20 61 6E 64 20 74 68 69 73 20 69 73 20 6C 6F 6F and this is loo
0102A0: 6B 65 64 20 75 70 20 69 6E 20 6F 6E 65 20 20 6F ked up in one o
0102B0: 66 20 20 74 68 65 20 20 74 68 72 65 65 20 20 74 f the three t
0102C0: 72 61 6E 73 6C 61 74 69 6F 6E 0D 0A 20 20 20 20 ranslation..
0102D0: 20 20 20 74 61 62 6C 65 73 2E 0D 0A 0D 0A 20 20 tables.....
0102E0: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
0102F0: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
010300: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
010310: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010320: 20 20 20 70 61 67 65 20 33 2E 31 0D 0A 0D 0A 0D page 3.1.....
010330: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
010340: 57 68 69 63 68 20 74 61 62 6C 65 20 69 73 20 75 Which table is u
010350: 73 65 64 20 64 65 70 65 6E 64 73 20 6F 6E 20 77 sed depends on w
010360: 68 65 74 68 65 72 20 74 68 65 20 73 68 69 66 74 hether the shift
010370: 20 61 6E 64 20 63 6F 6E 74 72 6F 6C 20 6B 65 79 and control key
010380: 73 20 77 65 72 65 0D 0A 20 20 20 20 20 20 20 70 s were.. p
010390: 72 65 73 73 65 64 20 77 68 65 6E 20 74 68 65 20 ressed when the
0103A0: 6B 65 79 20 77 61 73 20 70 72 65 73 73 65 64 2E key was pressed.
0103B0: 20 4F 6E 65 20 74 61 62 6C 65 20 69 73 20 20 75 One table is u
0103C0: 73 65 64 20 20 69 66 20 20 74 68 65 20 20 63 6F sed if the co
0103D0: 6E 74 72 6F 6C 0D 0A 20 20 20 20 20 20 20 6B 65 ntrol.. ke
0103E0: 79 20 77 61 73 20 70 72 65 73 73 65 64 2C 20 61 y was pressed, a
0103F0: 6E 6F 74 68 65 72 20 69 73 20 75 73 65 64 20 20 nother is used
010400: 69 66 20 20 65 69 74 68 65 72 20 20 73 68 69 66 if either shif
010410: 74 20 20 6B 65 79 20 20 77 61 73 20 20 70 72 65 t key was pre
010420: 73 73 65 64 0D 0A 20 20 20 20 20 20 20 62 75 74 ssed.. but
010430: 20 20 63 6F 6E 74 72 6F 6C 20 20 77 61 73 20 20 control was
010440: 6E 6F 74 2C 20 20 74 68 65 20 20 74 68 69 72 64 not, the third
010450: 20 20 69 73 20 20 75 73 65 64 20 20 69 66 20 20 is used if
010460: 6E 65 69 74 68 65 72 20 20 73 68 69 66 74 20 20 neither shift
010470: 6E 6F 72 0D 0A 20 20 20 20 20 20 20 63 6F 6E 74 nor.. cont
010480: 72 6F 6C 20 6B 65 79 73 20 77 65 72 65 20 20 70 rol keys were p
010490: 72 65 73 73 65 64 2E 20 20 54 68 65 20 20 63 6F ressed. The co
0104A0: 6E 74 65 6E 74 73 20 20 6F 66 20 20 74 68 65 73 ntents of thes
0104B0: 65 20 20 74 61 62 6C 65 73 20 20 63 61 6E 20 20 e tables can
0104C0: 62 65 0D 0A 20 20 20 20 20 20 20 61 6C 74 65 72 be.. alter
0104D0: 65 64 20 62 79 20 74 68 65 20 75 73 65 72 20 61 ed by the user a
0104E0: 73 20 72 65 71 75 69 72 65 64 20 28 62 79 20 63 s required (by c
0104F0: 61 6C 6C 69 6E 67 20 4B 4D 20 20 53 45 54 20 20 alling KM SET
010500: 43 4F 4E 54 52 4F 4C 2C 20 20 4B 4D 20 20 53 45 CONTROL, KM SE
010510: 54 0D 0A 20 20 20 20 20 20 20 53 48 49 46 54 20 T.. SHIFT
010520: 61 6E 64 20 4B 4D 20 53 45 54 20 54 52 41 4E 53 and KM SET TRANS
010530: 4C 41 54 45 20 72 65 73 70 65 63 74 69 76 65 6C LATE respectivel
010540: 79 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 y)..... Th
010550: 65 20 76 61 6C 75 65 20 65 78 74 72 61 63 74 65 e value extracte
010560: 64 20 66 72 6F 6D 20 74 68 65 20 74 61 62 6C 65 d from the table
010570: 20 6D 61 79 20 62 65 20 61 20 73 79 73 74 65 6D may be a system
010580: 20 74 6F 6B 65 6E 2C 20 61 6E 20 65 78 70 61 6E token, an expan
010590: 73 69 6F 6E 0D 0A 20 20 20 20 20 20 20 74 6F 6B sion.. tok
0105A0: 65 6E 20 6F 72 20 61 20 63 68 61 72 61 63 74 65 en or a characte
0105B0: 72 2E 20 45 78 70 61 6E 73 69 6F 6E 20 74 6F 6B r. Expansion tok
0105C0: 65 6E 73 20 61 6E 64 20 63 68 61 72 61 63 74 65 ens and characte
0105D0: 72 73 20 61 72 65 20 75 73 65 64 20 62 79 20 20 rs are used by
0105E0: 74 68 65 0D 0A 20 20 20 20 20 20 20 74 6F 70 20 the.. top
0105F0: 6C 65 76 65 6C 20 6F 66 20 74 68 65 20 4B 65 79 level of the Key
010600: 20 4D 61 6E 61 67 65 72 20 28 73 65 65 20 33 2E Manager (see 3.
010610: 33 20 62 65 6C 6F 77 29 20 61 6E 20 61 72 65 20 3 below) an are
010620: 70 61 73 73 65 64 20 75 70 20 66 72 6F 6D 20 74 passed up from t
010630: 68 65 0D 0A 20 20 20 20 20 20 20 6D 69 64 64 6C he.. middl
010640: 65 20 6C 65 76 65 6C 20 77 68 65 6E 20 74 68 65 e level when the
010650: 79 20 61 72 65 20 66 6F 75 6E 64 20 69 6E 20 61 y are found in a
010660: 20 74 61 62 6C 65 2E 20 54 68 65 72 65 20 20 61 table. There a
010670: 72 65 20 20 74 68 72 65 65 20 20 73 79 73 74 65 re three syste
010680: 6D 0D 0A 20 20 20 20 20 20 20 74 6F 6B 65 6E 73 m.. tokens
010690: 2C 20 77 68 69 63 68 20 61 72 65 20 6F 62 65 79 , which are obey
0106A0: 65 64 20 69 6D 6D 65 64 69 61 74 65 6C 79 20 74 ed immediately t
0106B0: 68 65 79 20 61 72 65 20 66 6F 75 6E 64 20 69 6E hey are found in
0106C0: 20 61 20 74 61 62 6C 65 2E 20 20 41 66 74 65 72 a table. After
0106D0: 0D 0A 20 20 20 20 20 20 20 6F 62 65 79 69 6E 67 .. obeying
0106E0: 20 74 68 65 20 74 6F 6B 65 6E 20 20 74 68 65 20 the token the
0106F0: 20 6E 65 78 74 20 20 6D 61 72 6B 65 72 20 20 69 next marker i
010700: 73 20 20 72 65 61 64 20 20 66 72 6F 6D 20 20 74 s read from t
010710: 68 65 20 20 62 75 66 66 65 72 20 20 61 6E 64 0D he buffer and.
010720: 0A 20 20 20 20 20 20 20 74 72 61 6E 73 6C 61 74 . translat
010730: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ed..... Th
010740: 65 20 64 65 66 61 75 6C 74 20 74 72 61 6E 73 6C e default transl
010750: 61 74 69 6F 6E 20 74 61 62 6C 65 73 20 61 72 65 ation tables are
010760: 20 64 65 73 63 72 69 62 65 64 20 69 6E 20 41 70 described in Ap
010770: 70 65 6E 64 69 78 20 49 49 2E 0D 0A 0D 0A 20 20 pendix II.....
010780: 20 20 20 20 20 54 68 65 20 69 6D 6D 65 64 69 61 The immedia
010790: 74 65 6C 79 20 6F 62 65 79 65 64 20 53 79 73 74 tely obeyed Syst
0107A0: 65 6D 20 74 6F 6B 65 6E 73 20 61 72 65 3A 0D 0A em tokens are:..
0107B0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0107C0: 20 20 61 2E 20 49 67 6E 6F 72 65 20 28 23 46 46 a. Ignore (#FF
0107D0: 29 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 )..
0107E0: 20 20 20 54 68 65 20 6B 65 79 20 70 72 65 73 73 The key press
0107F0: 65 64 20 69 73 20 74 6F 20 62 65 20 69 67 6E 6F ed is to be igno
010800: 72 65 64 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 red...
010810: 20 20 20 20 20 20 62 2E 20 53 68 69 66 74 20 6C b. Shift l
010820: 6F 63 6B 20 28 23 46 45 29 0D 0A 20 20 20 20 20 ock (#FE)..
010830: 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 73 The s
010840: 68 69 66 74 20 6C 6F 63 6B 20 69 73 20 74 6F 20 hift lock is to
010850: 62 65 20 74 6F 67 67 6C 65 64 20 28 74 75 72 6E be toggled (turn
010860: 65 64 20 6F 6E 20 69 66 20 69 74 20 69 73 20 63 ed on if it is c
010870: 75 72 72 65 6E 74 6C 79 0D 0A 20 20 20 20 20 20 urrently..
010880: 20 20 20 20 20 20 20 20 20 20 6F 66 66 20 61 6E off an
010890: 64 20 74 75 72 6E 65 64 20 6F 66 66 20 69 66 20 d turned off if
0108A0: 69 74 20 69 73 20 6F 6E 29 2E 0D 0A 20 20 20 20 it is on)...
0108B0: 20 20 20 20 20 20 20 20 20 20 20 20 63 2E 20 43 c. C
0108C0: 61 70 73 20 6C 6F 63 6B 20 28 23 46 44 29 0D 0A aps lock (#FD)..
0108D0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0108E0: 20 20 54 68 65 20 63 61 70 73 20 6C 6F 63 6B 20 The caps lock
0108F0: 69 73 20 74 6F 20 62 65 20 74 6F 67 67 6C 65 64 is to be toggled
010900: 20 28 74 75 72 6E 65 64 20 6F 6E 20 69 66 20 69 (turned on if i
010910: 74 20 20 69 73 20 20 6F 66 66 20 20 61 6E 64 0D t is off and.
010920: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
010930: 20 6F 66 66 20 69 66 20 69 74 20 69 73 20 6F 6E off if it is on
010940: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 33 2E 33 )..... 3.3
010950: 20 43 68 61 72 61 63 74 65 72 73 20 66 72 6F 6D Characters from
010960: 20 74 68 65 20 4B 65 79 62 6F 61 72 64 2E 0D 0A the Keyboard...
010970: 20 20 20 20 20 20 20 57 68 65 6E 20 74 68 65 20 When the
010980: 75 73 65 72 20 61 73 6B 73 20 74 68 65 20 74 6F user asks the to
010990: 70 20 6C 65 76 65 6C 20 66 6F 72 20 61 20 63 68 p level for a ch
0109A0: 61 72 61 63 74 65 72 20 28 4B 4D 20 57 41 49 54 aracter (KM WAIT
0109B0: 20 43 48 41 52 20 20 6F 72 20 20 4B 4D 0D 0A 20 CHAR or KM..
0109C0: 20 20 20 20 20 20 52 45 41 44 20 43 48 41 52 29 READ CHAR)
0109D0: 20 61 20 6B 65 79 20 69 73 20 66 65 74 63 68 65 a key is fetche
0109E0: 64 20 66 72 6F 6D 20 20 74 68 65 20 20 6D 69 64 d from the mid
0109F0: 64 6C 65 20 20 6C 65 76 65 6C 2E 20 20 49 66 20 dle level. If
010A00: 20 74 68 69 73 20 20 69 73 20 20 61 0D 0A 20 20 this is a..
010A10: 20 20 20 20 20 63 68 61 72 61 63 74 65 72 20 28 character (
010A20: 23 30 30 2E 2E 23 37 46 20 6F 72 20 23 41 30 2E #00..#7F or #A0.
010A30: 2E 23 46 43 29 20 74 68 65 6E 20 69 74 20 69 73 .#FC) then it is
010A40: 20 70 61 73 73 65 64 20 74 6F 20 74 68 65 20 75 passed to the u
010A50: 73 65 72 2E 20 49 66 20 20 69 74 0D 0A 20 20 20 ser. If it..
010A60: 20 20 20 20 69 73 20 20 6F 6E 65 20 20 6F 66 20 is one of
010A70: 20 74 68 65 20 20 33 32 20 20 65 78 70 61 6E 73 the 32 expans
010A80: 69 6F 6E 20 20 74 6F 6B 65 6E 73 20 20 28 23 38 ion tokens (#8
010A90: 30 2E 2E 23 39 46 29 20 20 74 68 65 6E 20 20 74 0..#9F) then t
010AA0: 68 65 20 20 73 74 72 69 6E 67 0D 0A 20 20 20 20 he string..
010AB0: 20 20 20 61 73 73 6F 63 69 61 74 65 64 20 77 69 associated wi
010AC0: 74 68 20 74 68 65 20 74 6F 6B 65 6E 20 69 73 20 th the token is
010AD0: 6C 6F 6F 6B 65 64 20 75 70 2E 20 54 68 65 20 63 looked up. The c
010AE0: 68 61 72 61 63 74 65 72 73 20 69 6E 20 74 68 69 haracters in thi
010AF0: 73 20 20 73 74 72 69 6E 67 0D 0A 20 20 20 20 20 s string..
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: 20 20 61 72 65 20 70 61 73 73 65 64 20 74 6F 20 are passed to
010C10: 74 68 65 20 75 73 65 72 20 6F 6E 65 20 61 74 20 the user one at
010C20: 61 20 74 69 6D 65 20 77 69 74 68 20 65 61 63 68 a time with each
010C30: 20 72 65 71 75 65 73 74 20 66 6F 72 20 61 20 63 request for a c
010C40: 68 61 72 61 63 74 65 72 0D 0A 20 20 20 20 20 20 haracter..
010C50: 20 75 6E 74 69 6C 20 74 68 65 20 65 6E 64 20 6F until the end o
010C60: 66 20 74 68 65 20 73 74 72 69 6E 67 20 69 73 20 f the string is
010C70: 72 65 61 63 68 65 64 2E 0D 0A 0D 0A 20 20 20 20 reached.....
010C80: 20 20 20 54 68 65 72 65 20 69 73 20 6F 6E 6C 79 There is only
010C90: 20 6F 6E 65 20 63 68 61 72 61 63 74 65 72 20 77 one character w
010CA0: 69 74 68 20 61 20 73 70 65 63 69 61 6C 20 6D 65 ith a special me
010CB0: 61 6E 69 6E 67 20 61 74 20 74 68 69 73 20 6C 65 aning at this le
010CC0: 76 65 6C 2E 20 54 68 69 73 0D 0A 20 20 20 20 20 vel. This..
010CD0: 20 20 69 73 20 63 68 61 72 61 63 74 65 72 20 23 is character #
010CE0: 45 46 20 77 68 69 63 68 20 20 69 73 20 20 70 72 EF which is pr
010CF0: 6F 64 75 63 65 64 20 20 77 68 65 6E 20 20 70 72 oduced when pr
010D00: 65 73 73 69 6E 67 20 20 74 68 65 20 20 65 73 63 essing the esc
010D10: 61 70 65 20 20 6B 65 79 0D 0A 20 20 20 20 20 20 ape key..
010D20: 20 67 65 6E 65 72 61 74 65 73 20 61 20 62 72 65 generates a bre
010D30: 61 6B 20 65 76 65 6E 74 20 28 73 65 65 20 73 65 ak event (see se
010D40: 63 74 69 6F 6E 20 33 2E 36 29 2E 20 49 74 20 68 ction 3.6). It h
010D50: 61 73 20 6E 6F 20 20 65 66 66 65 63 74 73 2C 20 as no effects,
010D60: 20 69 74 20 20 69 73 0D 0A 20 20 20 20 20 20 20 it is..
010D70: 6D 65 72 65 6C 79 20 61 20 6D 61 72 6B 65 72 20 merely a marker
010D80: 66 6F 72 20 74 68 65 20 70 6C 61 63 65 20 69 6E for the place in
010D90: 20 74 68 65 20 62 75 66 66 65 72 20 77 68 65 72 the buffer wher
010DA0: 65 20 61 20 20 62 72 65 61 6B 20 20 65 76 65 6E e a break even
010DB0: 74 20 20 77 61 73 0D 0A 20 20 20 20 20 20 20 67 t was.. g
010DC0: 65 6E 65 72 61 74 65 64 2E 20 49 74 20 69 73 20 enerated. It is
010DD0: 69 6E 74 65 6E 64 65 64 20 74 6F 20 62 65 20 75 intended to be u
010DE0: 73 65 64 20 74 6F 20 61 6C 6C 6F 77 20 20 61 6C sed to allow al
010DF0: 6C 20 20 63 68 61 72 61 63 74 65 72 73 20 20 62 l characters b
010E00: 65 66 6F 72 65 0D 0A 20 20 20 20 20 20 20 74 68 efore.. th
010E10: 65 20 62 72 65 61 6B 20 74 6F 20 62 65 20 64 69 e break to be di
010E20: 73 63 61 72 64 65 64 2E 20 54 68 69 73 20 63 68 scarded. This ch
010E30: 61 72 61 63 74 65 72 20 20 69 73 20 20 6E 6F 74 aracter is not
010E40: 20 20 67 65 6E 65 72 61 74 65 64 20 20 62 79 20 generated by
010E50: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 74 72 61 the.. tra
010E60: 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 73 20 nslation tables
010E70: 61 6E 64 20 74 68 75 73 20 63 61 6E 6E 6F 74 20 and thus cannot
010E80: 62 65 20 63 68 61 6E 67 65 64 20 62 79 20 61 6C be changed by al
010E90: 74 65 72 69 6E 67 20 74 68 65 6D 2E 0D 0A 0D 0A tering them.....
010EA0: 20 20 20 20 20 20 20 41 20 73 69 6E 67 6C 65 20 A single
010EB0: 27 70 75 74 20 62 61 63 6B 27 20 63 68 61 72 61 'put back' chara
010EC0: 63 74 65 72 20 69 73 20 73 75 70 70 6F 72 74 65 cter is supporte
010ED0: 64 2E 20 57 68 65 6E 20 74 68 65 20 75 73 65 72 d. When the user
010EE0: 20 70 75 74 73 20 62 61 63 6B 20 20 61 0D 0A 20 puts back a..
010EF0: 20 20 20 20 20 20 63 68 61 72 61 63 74 65 72 20 character
010F00: 74 68 69 73 20 63 68 61 72 61 63 74 65 72 20 77 this character w
010F10: 69 6C 6C 20 62 65 20 72 65 74 75 72 6E 65 64 20 ill be returned
010F20: 62 79 20 74 68 65 20 6E 65 78 74 20 63 61 6C 6C by the next call
010F30: 20 74 6F 20 74 68 65 20 20 74 6F 70 0D 0A 20 20 to the top..
010F40: 20 20 20 20 20 6C 65 76 65 6C 20 6F 66 20 74 68 level of th
010F50: 65 20 4B 65 79 20 4D 61 6E 61 67 65 72 2E 20 54 e Key Manager. T
010F60: 68 69 73 20 69 73 20 69 6E 74 65 6E 64 65 64 20 his is intended
010F70: 66 6F 72 20 75 73 65 20 20 62 79 20 20 70 72 6F for use by pro
010F80: 67 72 61 6D 73 20 20 74 68 61 74 0D 0A 20 20 20 grams that..
010F90: 20 20 20 20 6E 65 65 64 20 74 6F 20 74 65 73 74 need to test
010FA0: 20 74 68 65 20 6E 65 78 74 20 63 68 61 72 61 63 the next charac
010FB0: 74 65 72 20 74 6F 20 62 65 20 72 65 61 64 20 66 ter to be read f
010FC0: 72 6F 6D 20 74 68 65 20 20 6B 65 79 62 6F 61 72 rom the keyboar
010FD0: 64 20 20 77 69 74 68 6F 75 74 0D 0A 20 20 20 20 d without..
010FE0: 20 20 20 6C 6F 73 69 6E 67 20 69 74 20 28 77 68 losing it (wh
010FF0: 65 6E 20 70 72 6F 63 65 73 73 69 6E 67 20 62 72 en processing br
011000: 65 61 6B 73 20 70 65 72 68 61 70 73 29 2E 0D 0A eaks perhaps)...
011010: 0D 0A 20 20 20 20 20 20 20 49 6E 20 56 31 2E 31 .. In V1.1
011020: 20 66 69 72 6D 77 61 72 65 20 69 74 20 69 73 20 firmware it is
011030: 70 6F 73 73 69 62 6C 65 20 74 6F 20 63 61 6C 6C possible to call
011040: 20 4B 4D 20 46 4C 55 53 48 20 74 6F 20 64 69 73 KM FLUSH to dis
011050: 63 61 72 64 20 61 6E 79 20 75 6E 75 73 65 64 0D card any unused.
011060: 0A 20 20 20 20 20 20 20 6F 72 20 75 6E 77 61 6E . or unwan
011070: 74 65 64 20 63 68 61 72 61 63 74 65 72 73 20 73 ted characters s
011080: 6F 20 74 68 61 74 20 73 75 62 73 65 71 75 65 6E o that subsequen
011090: 74 20 63 61 6C 6C 73 20 74 6F 20 4B 4D 20 52 45 t calls to KM RE
0110A0: 41 44 20 43 48 41 52 20 6F 72 20 20 4B 4D 0D 0A AD CHAR or KM..
0110B0: 20 20 20 20 20 20 20 52 45 41 44 20 4B 45 59 20 READ KEY
0110C0: 77 69 6C 6C 20 6E 6F 74 20 72 65 74 75 72 6E 20 will not return
0110D0: 76 61 6C 75 65 73 20 66 72 6F 6D 20 61 20 70 72 values from a pr
0110E0: 65 76 69 6F 75 73 20 69 6E 70 75 74 2E 20 54 68 evious input. Th
0110F0: 65 20 73 61 6D 65 20 65 66 66 65 63 74 0D 0A 20 e same effect..
011100: 20 20 20 20 20 20 63 61 6E 20 62 65 20 61 63 68 can be ach
011110: 69 65 76 65 64 20 69 6E 20 56 31 2E 30 20 46 69 ieved in V1.0 Fi
011120: 72 6D 77 61 72 65 20 62 79 20 72 65 70 65 61 74 rmware by repeat
011130: 65 64 6C 79 20 63 61 6C 6C 69 6E 67 20 20 4B 4D edly calling KM
011140: 20 20 52 45 41 44 20 20 43 48 41 52 0D 0A 20 20 READ CHAR..
011150: 20 20 20 20 20 75 6E 74 69 6C 20 69 74 20 72 65 until it re
011160: 74 75 72 6E 73 20 77 69 74 68 20 63 61 72 72 79 turns with carry
011170: 20 66 61 6C 73 65 20 74 6F 20 69 6E 64 69 63 61 false to indica
011180: 74 65 20 74 68 61 74 20 74 68 65 72 65 20 61 72 te that there ar
011190: 65 20 20 6E 6F 20 20 6D 6F 72 65 0D 0A 20 20 20 e no more..
0111A0: 20 20 20 20 63 68 61 72 61 63 74 65 72 73 20 61 characters a
0111B0: 76 61 69 6C 61 62 6C 65 2E 0D 0A 20 20 20 20 20 vailable...
0111C0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
0111D0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
0111E0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
0111F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011200: 70 61 67 65 20 33 2E 32 0D 0A 0D 0A 0D 0A 0D 0A page 3.2........
011210: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 33 2E 34 ...... 3.4
011220: 20 53 68 69 66 74 20 61 6E 64 20 43 61 70 73 20 Shift and Caps
011230: 4C 6F 63 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 Lock.....
011240: 61 2E 20 53 68 69 66 74 20 6C 6F 63 6B 0D 0A 0D a. Shift lock...
011250: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
011260: 20 57 68 65 6E 20 20 73 68 69 66 74 20 20 6C 6F When shift lo
011270: 63 6B 20 20 69 73 20 20 65 6E 67 61 67 65 64 20 ck is engaged
011280: 20 74 68 65 6E 20 20 74 68 65 20 20 6B 65 79 73 then the keys
011290: 20 20 70 72 65 73 73 65 64 20 20 61 72 65 0D 0A pressed are..
0112A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0112B0: 74 72 61 6E 73 6C 61 74 65 64 20 61 73 20 69 66 translated as if
0112C0: 20 61 20 73 68 69 66 74 20 6B 65 79 20 69 73 20 a shift key is
0112D0: 70 72 65 73 73 65 64 2E 0D 0A 0D 0A 20 20 20 20 pressed.....
0112E0: 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 The
0112F0: 73 68 69 66 74 20 6C 6F 63 6B 20 69 73 20 74 6F shift lock is to
011300: 67 67 6C 65 64 20 62 79 20 61 20 73 74 72 65 61 ggled by a strea
011310: 6D 20 74 6F 6B 65 6E 20 28 73 65 65 20 20 33 2E m token (see 3.
011320: 32 20 20 61 62 6F 76 65 29 0D 0A 20 20 20 20 20 2 above)..
011330: 20 20 20 20 20 20 20 20 20 20 20 77 68 69 63 68 which
011340: 20 69 73 20 6E 6F 72 6D 61 6C 6C 79 20 67 65 6E is normally gen
011350: 65 72 61 74 65 64 20 62 79 20 70 72 65 73 73 69 erated by pressi
011360: 6E 67 20 43 54 52 4C 20 61 6E 64 20 43 41 50 53 ng CTRL and CAPS
011370: 20 4C 4F 43 4B 2E 0D 0A 0D 0A 20 20 20 20 20 20 LOCK.....
011380: 20 62 2E 20 43 61 70 73 20 6C 6F 63 6B 0D 0A 0D b. Caps lock...
011390: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0113A0: 20 57 68 65 6E 20 63 61 70 73 20 6C 6F 63 6B 20 When caps lock
0113B0: 69 73 20 65 6E 67 61 67 65 64 20 20 74 68 65 6E is engaged then
0113C0: 20 20 61 6C 70 68 61 62 65 74 69 63 20 20 63 68 alphabetic ch
0113D0: 61 72 61 63 74 65 72 73 20 20 72 65 61 64 0D 0A aracters read..
0113E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0113F0: 66 72 6F 6D 20 20 74 68 65 20 20 6B 65 79 62 6F from the keybo
011400: 61 72 64 20 20 61 72 65 20 20 63 6F 6E 76 65 72 ard are conver
011410: 74 65 64 20 20 74 6F 20 20 74 68 65 69 72 20 20 ted to their
011420: 20 75 70 70 65 72 20 20 20 63 61 73 65 0D 0A 20 upper case..
011430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 e
011440: 71 75 69 76 61 6C 65 6E 74 73 2E 20 54 68 69 73 quivalents. This
011450: 20 63 61 73 65 20 63 6F 6E 76 65 72 73 69 6F 6E case conversion
011460: 20 20 69 73 20 20 61 70 70 6C 69 65 64 20 20 62 is applied b
011470: 65 20 20 65 78 70 61 6E 73 69 6F 6E 0D 0A 20 20 e expansion..
011480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6F to
011490: 6B 65 6E 73 20 61 72 65 20 65 78 70 61 6E 64 65 kens are expande
0114A0: 64 20 61 6E 64 20 73 6F 20 65 78 70 61 6E 73 69 d and so expansi
0114B0: 6F 6E 73 20 61 72 65 20 6E 6F 74 20 63 61 70 69 ons are not capi
0114C0: 74 61 6C 69 73 65 64 2E 0D 0A 0D 0A 20 20 20 20 talised.....
0114D0: 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 The
0114E0: 63 61 70 73 20 6C 6F 63 6B 20 69 73 20 74 6F 67 caps lock is tog
0114F0: 67 6C 65 64 20 62 79 20 61 20 73 79 73 74 65 6D gled by a system
011500: 20 74 6F 6B 65 6E 20 20 28 73 65 65 20 20 33 2E token (see 3.
011510: 32 20 20 61 62 6F 76 65 29 0D 0A 20 20 20 20 20 2 above)..
011520: 20 20 20 20 20 20 20 20 20 20 20 77 68 69 63 68 which
011530: 20 69 73 20 6E 6F 72 6D 61 6C 6C 79 20 67 65 6E is normally gen
011540: 65 72 61 74 65 64 20 62 79 20 70 72 65 73 73 69 erated by pressi
011550: 6E 67 20 20 43 41 50 53 20 20 4C 4F 43 4B 20 20 ng CAPS LOCK
011560: 28 77 69 74 68 6F 75 74 0D 0A 20 20 20 20 20 20 (without..
011570: 20 20 20 20 20 20 20 20 20 20 63 6F 6E 74 72 6F contro
011580: 6C 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E l)..... In
011590: 20 56 31 2E 31 20 66 69 72 6D 77 61 72 65 20 69 V1.1 firmware i
0115A0: 74 20 69 73 20 70 6F 73 73 69 62 6C 65 20 74 6F t is possible to
0115B0: 20 73 65 74 20 74 68 65 20 73 74 61 74 65 20 6F set the state o
0115C0: 66 20 74 68 65 20 20 6C 6F 63 6B 73 20 20 61 73 f the locks as
0115D0: 20 20 69 66 0D 0A 20 20 20 20 20 20 20 74 68 65 if.. the
0115E0: 20 53 48 49 46 54 20 6F 72 20 43 41 50 53 20 4C SHIFT or CAPS L
0115F0: 4F 43 4B 20 6B 65 79 73 20 68 61 64 20 62 65 65 OCK keys had bee
011600: 6E 20 70 72 65 73 73 65 64 20 62 79 20 63 61 6C n pressed by cal
011610: 6C 69 6E 67 20 4B 4D 20 53 45 54 20 4C 4F 43 4B ling KM SET LOCK
011620: 53 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 33 2E 35 S..... 3.5
011630: 20 52 65 70 65 61 74 69 6E 67 20 6B 65 79 73 2E Repeating keys.
011640: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 72 65 .... There
011650: 20 69 73 20 61 20 74 61 62 6C 65 20 77 68 69 63 is a table whic
011660: 68 20 74 68 65 20 75 73 65 72 20 63 61 6E 20 61 h the user can a
011670: 6C 74 65 72 20 61 73 20 64 65 73 69 72 65 64 2C lter as desired,
011680: 20 20 74 68 61 74 20 20 73 70 65 63 69 66 69 65 that specifie
011690: 73 0D 0A 20 20 20 20 20 20 20 77 68 69 63 68 20 s.. which
0116A0: 6B 65 79 73 20 61 72 65 20 61 6C 6C 6F 77 65 64 keys are allowed
0116B0: 20 74 6F 20 72 65 70 65 61 74 20 77 68 65 6E 20 to repeat when
0116C0: 68 65 6C 64 20 64 6F 77 6E 20 28 73 65 65 20 4B held down (see K
0116D0: 4D 20 20 53 45 54 20 20 52 45 50 45 41 54 29 2E M SET REPEAT).
0116E0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 64 65 66 .. The def
0116F0: 61 75 6C 74 20 73 65 74 74 69 6E 67 20 66 6F 72 ault setting for
011700: 20 74 68 69 73 20 20 74 61 62 6C 65 20 20 69 73 this table is
011710: 20 20 64 65 73 63 72 69 62 65 64 20 20 69 6E 20 described in
011720: 20 41 70 70 65 6E 64 69 78 20 20 49 49 49 2E 0D Appendix III..
011730: 0A 20 20 20 20 20 20 20 42 72 69 65 66 6C 79 2C . Briefly,
011740: 20 74 68 65 20 64 65 66 61 75 6C 74 20 69 73 20 the default is
011750: 74 6F 20 61 6C 6C 6F 77 20 61 6C 6C 20 6B 65 79 to allow all key
011760: 73 20 74 6F 20 72 65 70 65 61 74 20 20 65 78 63 s to repeat exc
011770: 65 70 74 20 20 74 68 65 20 20 45 53 43 2C 0D 0A ept the ESC,..
011780: 20 20 20 20 20 20 20 54 41 42 20 43 41 50 53 20 TAB CAPS
011790: 4C 4F 43 4B 2C 20 53 48 49 46 54 2C 20 45 4E 54 LOCK, SHIFT, ENT
0117A0: 45 52 20 61 6E 64 20 43 54 52 4C 20 6B 65 79 73 ER and CTRL keys
0117B0: 20 20 61 6E 64 20 20 74 68 65 20 20 31 32 20 20 and the 12
0117C0: 6B 65 79 73 20 20 69 6E 20 20 74 68 65 0D 0A 20 keys in the..
0117D0: 20 20 20 20 20 20 6E 75 6D 65 72 69 63 20 6B 65 numeric ke
0117E0: 79 70 61 64 20 28 74 68 65 20 66 75 6E 63 74 69 ypad (the functi
0117F0: 6F 6E 20 6B 65 79 73 29 2E 0D 0A 0D 0A 20 20 20 on keys).....
011800: 20 20 20 20 54 68 65 20 73 70 65 65 64 20 61 74 The speed at
011810: 20 77 68 69 63 68 20 6B 65 79 73 20 72 65 70 65 which keys repe
011820: 61 74 20 61 6E 64 20 74 68 65 20 64 65 6C 61 79 at and the delay
011830: 20 62 65 66 6F 72 65 20 74 68 65 20 20 66 69 72 before the fir
011840: 73 74 20 20 72 65 70 65 61 74 0D 0A 20 20 20 20 st repeat..
011850: 20 20 20 63 61 6E 20 62 65 20 73 65 74 20 62 79 can be set by
011860: 20 74 68 65 20 75 73 65 72 20 28 73 65 65 20 4B the user (see K
011870: 4D 20 53 45 54 20 44 45 4C 41 59 29 2E 20 54 68 M SET DELAY). Th
011880: 65 20 64 65 66 61 75 6C 74 20 73 70 65 65 64 20 e default speed
011890: 20 70 72 6F 64 75 63 65 73 0D 0A 20 20 20 20 20 produces..
0118A0: 20 20 75 70 20 74 6F 20 32 35 20 63 68 61 72 61 up to 25 chara
0118B0: 63 74 65 72 73 20 61 20 73 65 63 6F 6E 64 20 77 cters a second w
0118C0: 69 74 68 20 61 20 30 2E 36 20 73 65 63 6F 6E 64 ith a 0.6 second
0118D0: 20 73 74 61 72 74 20 75 70 20 64 65 6C 61 79 2E start up delay.
0118E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 6B 65 79 .... A key
0118F0: 20 69 73 20 61 6C 6C 6F 77 65 64 20 74 6F 20 72 is allowed to r
011900: 65 70 65 61 74 20 69 66 20 74 68 65 20 66 6F 6C epeat if the fol
011910: 6C 6F 77 69 6E 67 20 63 6F 6E 64 69 74 69 6F 6E lowing condition
011920: 73 20 61 72 65 20 73 61 74 69 73 66 69 65 64 3A s are satisfied:
011930: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
011940: 20 20 20 20 31 2F 20 54 68 65 20 61 70 70 72 6F 1/ The appro
011950: 70 72 69 61 74 65 20 74 69 6D 65 20 68 61 73 20 priate time has
011960: 70 61 73 73 65 64 20 73 69 6E 63 65 20 74 68 65 passed since the
011970: 20 20 6B 65 79 20 20 77 61 73 20 20 66 69 72 73 key was firs
011980: 74 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 t..
011990: 20 20 20 70 72 65 73 73 65 64 20 6F 72 20 69 74 pressed or it
0119A0: 20 6C 61 73 74 20 72 65 70 65 61 74 65 64 2E 0D last repeated..
0119B0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
0119C0: 20 20 20 32 2F 20 54 68 65 20 6B 65 79 20 69 73 2/ The key is
0119D0: 20 73 74 69 6C 6C 20 70 72 65 73 73 65 64 2E 0D still pressed..
0119E0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
0119F0: 20 20 20 33 2F 20 4E 6F 20 6F 74 68 65 72 20 6B 3/ No other k
011A00: 65 79 20 68 61 73 20 62 65 65 6E 20 70 72 65 73 ey has been pres
011A10: 73 65 64 20 20 73 69 6E 63 65 20 20 74 68 65 20 sed since the
011A20: 20 6B 65 79 20 20 77 61 73 20 20 66 69 72 73 74 key was first
011A30: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
011A40: 20 20 70 72 65 73 73 65 64 2E 0D 0A 0D 0A 20 20 pressed.....
011A50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 34 2F 4/
011A60: 20 54 68 65 20 6B 65 79 20 69 73 20 6D 61 72 6B The key is mark
011A70: 65 64 20 61 73 20 20 61 6C 6C 6F 77 65 64 20 20 ed as allowed
011A80: 74 6F 20 20 72 65 70 65 61 74 20 20 69 6E 20 20 to repeat in
011A90: 74 68 65 20 20 72 65 70 65 61 74 0D 0A 20 20 20 the repeat..
011AA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 62 tab
011AB0: 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 le.....
011AC0: 20 20 20 20 20 20 20 35 2F 20 54 68 65 72 65 20 5/ There
011AD0: 61 72 65 20 6E 6F 20 6B 65 79 73 20 73 74 6F 72 are no keys stor
011AE0: 65 64 20 69 6E 20 74 68 65 20 6B 65 79 20 62 75 ed in the key bu
011AF0: 66 66 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ffer.....
011B00: 43 6F 6E 64 69 74 69 6F 6E 20 35 20 61 62 6F 76 Condition 5 abov
011B10: 65 20 6D 65 61 6E 73 20 74 68 61 74 20 74 68 65 e means that the
011B20: 20 72 65 70 65 61 74 20 73 70 65 65 64 20 61 6E repeat speed an
011B30: 64 20 73 74 61 72 74 20 75 70 20 20 64 65 6C 61 d start up dela
011B40: 79 20 20 73 65 74 0D 0A 20 20 20 20 20 20 20 74 y set.. t
011B50: 68 65 20 6D 61 78 69 6D 75 6D 20 73 70 65 65 64 he maximum speed
011B60: 20 61 74 20 77 68 69 63 68 20 61 20 6B 65 79 20 at which a key
011B70: 69 73 20 61 6C 6C 6F 77 65 64 20 74 6F 20 72 65 is allowed to re
011B80: 70 65 61 74 2E 20 49 66 20 61 20 70 72 6F 67 72 peat. If a progr
011B90: 61 6D 20 69 73 0D 0A 20 20 20 20 20 20 20 73 6C am is.. sl
011BA0: 6F 77 20 61 62 6F 75 74 20 72 65 6D 6F 76 69 6E ow about removin
011BB0: 67 20 6B 65 79 73 20 66 72 6F 6D 20 74 68 65 20 g keys from the
011BC0: 62 75 66 66 65 72 20 74 68 65 6E 20 74 68 65 20 buffer then the
011BD0: 67 65 6E 65 72 61 74 69 6F 6E 20 20 6F 66 20 20 generation of
011BE0: 6B 65 79 73 0D 0A 20 20 20 20 20 20 20 77 69 6C keys.. wil
011BF0: 6C 20 61 64 6A 75 73 74 20 69 74 73 65 6C 66 20 l adjust itself
011C00: 74 6F 20 74 68 69 73 2E 20 54 68 75 73 20 69 74 to this. Thus it
011C10: 20 20 69 73 20 20 69 6D 70 6F 73 73 69 62 6C 65 is impossible
011C20: 20 20 74 6F 20 20 67 65 74 20 20 61 20 20 6C 61 to get a la
011C30: 72 67 65 0D 0A 20 20 20 20 20 20 20 6E 75 6D 62 rge.. numb
011C40: 65 72 20 6F 66 20 6B 65 79 73 20 73 74 6F 72 65 er of keys store
011C50: 64 20 69 6E 20 74 68 65 20 62 75 66 66 65 72 20 d in the buffer
011C60: 73 69 6D 70 6C 79 20 62 79 20 68 6F 6C 64 69 6E simply by holdin
011C70: 67 20 61 20 6B 65 79 20 70 72 65 73 73 65 64 2E g a key pressed.
011C80: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
011C90: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
011CA0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
011CB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011CC0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
011CD0: 33 2E 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 3.3.............
011CE0: 0A 20 20 20 20 20 20 20 33 2E 36 20 42 72 65 61 . 3.6 Brea
011CF0: 6B 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 42 72 ks..... Br
011D00: 65 61 6B 73 20 6F 63 63 75 72 20 77 68 65 6E 20 eaks occur when
011D10: 74 68 65 20 6B 65 79 62 6F 61 72 64 20 73 63 61 the keyboard sca
011D20: 6E 6E 65 72 20 64 65 74 65 63 74 73 20 74 68 61 nner detects tha
011D30: 74 20 20 74 68 65 20 20 45 53 43 20 20 6B 65 79 t the ESC key
011D40: 20 20 69 73 0D 0A 20 20 20 20 20 20 20 70 72 65 is.. pre
011D50: 73 73 65 64 2E 20 57 68 65 6E 20 74 68 65 20 65 ssed. When the e
011D60: 73 63 61 70 65 20 6B 65 79 20 69 73 20 66 6F 75 scape key is fou
011D70: 6E 64 20 74 6F 20 62 65 20 70 72 65 73 73 65 64 nd to be pressed
011D80: 20 74 68 65 20 69 6E 64 69 72 65 63 74 69 6F 6E the indirection
011D90: 20 4B 4D 0D 0A 20 20 20 20 20 20 20 54 45 53 54 KM.. TEST
011DA0: 20 42 52 45 41 4B 20 69 73 20 63 61 6C 6C 65 64 BREAK is called
011DB0: 20 74 6F 20 64 65 61 6C 20 77 69 74 68 20 74 68 to deal with th
011DC0: 65 20 62 72 65 61 6B 2E 20 54 68 65 20 64 65 66 e break. The def
011DD0: 61 75 6C 74 20 20 73 65 74 74 69 6E 67 20 20 66 ault setting f
011DE0: 6F 72 0D 0A 20 20 20 20 20 20 20 74 68 69 73 20 or.. this
011DF0: 72 6F 75 74 69 6E 65 20 74 65 73 74 73 20 77 68 routine tests wh
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: 65 74 68 65 72 20 74 68 65 20 53 48 49 46 54 2C ether the SHIFT,
011F10: 20 43 54 52 4C 20 61 6E 64 20 45 53 43 20 6B 65 CTRL and ESC ke
011F20: 79 73 20 61 6E 64 20 6E 6F 20 20 6F 74 68 65 72 ys and no other
011F30: 73 0D 0A 20 20 20 20 20 20 20 61 72 65 20 70 72 s.. are pr
011F40: 65 73 73 65 64 2E 20 49 66 20 73 6F 20 74 68 65 essed. If so the
011F50: 20 73 79 73 74 65 6D 20 69 73 20 20 72 65 73 65 system is rese
011F60: 74 20 20 28 62 79 20 20 65 78 65 63 75 74 69 6E t (by executin
011F70: 67 20 20 61 6E 64 20 20 52 53 54 20 20 30 29 2C g and RST 0),
011F80: 0D 0A 20 20 20 20 20 20 20 6F 74 68 65 72 77 69 .. otherwi
011F90: 73 65 20 74 68 65 20 62 72 65 61 6B 20 6D 65 63 se the break mec
011FA0: 68 61 6E 69 73 6D 20 69 73 20 69 6E 76 6F 6B 65 hanism is invoke
011FB0: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 d....... I
011FC0: 74 20 74 68 65 20 62 72 65 61 6B 20 6D 65 63 68 t the break mech
011FD0: 61 6E 69 73 6D 20 69 73 20 64 69 73 61 72 6D 65 anism is disarme
011FE0: 64 20 74 68 65 6E 20 6E 6F 20 61 63 74 69 6F 6E d then no action
011FF0: 20 69 73 20 74 61 6B 65 6E 20 6F 74 68 65 72 20 is taken other
012000: 20 74 68 61 6E 0D 0A 20 20 20 20 20 20 20 74 68 than.. th
012010: 65 20 6E 6F 72 6D 61 6C 20 69 6E 73 65 72 74 69 e normal inserti
012020: 6F 6E 20 6F 66 20 74 68 65 20 6D 61 72 6B 65 72 on of the marker
012030: 20 66 6F 72 20 74 68 65 20 65 73 63 61 70 65 20 for the escape
012040: 20 6B 65 79 20 20 69 6E 74 6F 20 20 74 68 65 20 key into the
012050: 20 6B 65 79 0D 0A 20 20 20 20 20 20 20 62 75 66 key.. buf
012060: 66 65 72 2E 20 49 66 20 74 68 65 20 62 72 65 61 fer. If the brea
012070: 6B 20 6D 65 63 68 61 6E 69 73 6D 20 69 73 20 61 k mechanism is a
012080: 72 6D 65 64 20 74 68 65 6E 20 74 77 6F 20 61 64 rmed then two ad
012090: 64 69 74 69 6F 6E 61 6C 20 6F 70 65 72 61 74 69 ditional operati
0120A0: 6F 6E 73 0D 0A 20 20 20 20 20 20 20 74 61 6B 65 ons.. take
0120B0: 20 70 6C 61 63 65 2E 20 46 69 72 73 74 6C 79 2C place. Firstly,
0120C0: 20 61 20 73 70 65 63 69 61 6C 20 6D 61 72 6B 65 a special marke
0120D0: 72 20 69 73 20 70 6C 61 63 65 64 20 69 6E 74 6F r is placed into
0120E0: 20 20 74 68 65 20 20 6B 65 79 20 20 62 75 66 66 the key buff
0120F0: 65 72 0D 0A 20 20 20 20 20 20 20 74 68 61 74 20 er.. that
012100: 77 69 6C 6C 20 67 65 6E 65 72 61 74 65 20 63 68 will generate ch
012110: 61 72 61 63 74 65 72 20 23 45 46 20 77 68 65 6E aracter #EF when
012120: 20 69 74 20 69 73 20 66 6F 75 6E 64 20 28 69 72 it is found (ir
012130: 72 65 73 70 65 63 74 69 76 65 20 6F 66 20 74 68 respective of th
012140: 65 0D 0A 20 20 20 20 20 20 20 74 72 61 6E 73 6C e.. transl
012150: 61 74 69 6F 6E 20 74 61 62 6C 65 73 29 2E 20 20 ation tables).
012160: 54 68 69 73 20 20 69 73 20 20 69 6E 74 65 6E 64 This is intend
012170: 65 64 20 20 74 6F 20 20 62 65 20 20 75 73 65 64 ed to be used
012180: 20 20 74 6F 20 20 61 6C 6C 6F 77 20 20 74 68 65 to allow the
012190: 0D 0A 20 20 20 20 20 20 20 63 68 61 72 61 63 74 .. charact
0121A0: 65 72 73 20 77 68 69 63 68 20 77 65 72 65 20 69 ers which were i
0121B0: 6E 20 74 68 65 20 62 75 66 66 65 72 20 62 65 66 n the buffer bef
0121C0: 6F 72 65 20 74 68 65 20 62 72 65 61 6B 20 20 6F ore the break o
0121D0: 63 63 75 72 72 65 64 20 20 74 6F 20 20 62 65 0D ccurred to be.
0121E0: 0A 20 20 20 20 20 20 20 64 69 73 63 61 72 64 65 . discarde
0121F0: 64 2E 20 53 65 63 6F 6E 64 6C 79 2C 20 74 68 65 d. Secondly, the
012200: 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 62 72 65 synchronous bre
012210: 61 6B 20 65 76 65 6E 74 20 69 73 20 27 6B 69 63 ak event is 'kic
012220: 6B 65 64 27 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ked'.......
012230: 20 20 54 68 65 20 62 72 65 61 6B 20 6D 65 63 68 The break mech
012240: 61 6E 69 73 6D 20 63 61 6E 20 62 65 20 61 72 6D anism can be arm
012250: 65 64 20 6F 72 20 64 69 73 61 72 6D 65 64 20 61 ed or disarmed a
012260: 74 20 61 6E 79 20 74 69 6D 65 20 20 28 62 79 20 t any time (by
012270: 20 63 61 6C 6C 69 6E 67 0D 0A 20 20 20 20 20 20 calling..
012280: 20 4B 4D 20 41 52 4D 20 42 52 45 41 4B 20 6F 72 KM ARM BREAK or
012290: 20 4B 4D 20 44 49 53 41 52 4D 20 42 52 45 41 4B KM DISARM BREAK
0122A0: 29 2E 20 54 68 65 20 64 65 66 61 75 6C 74 20 73 ). The default s
0122B0: 74 61 74 65 20 69 73 20 64 69 73 61 72 6D 65 64 tate is disarmed
0122C0: 2E 20 20 57 68 65 6E 0D 0A 20 20 20 20 20 20 20 . When..
0122D0: 61 20 62 72 65 61 6B 20 69 73 20 64 65 74 65 63 a break is detec
0122E0: 74 65 64 20 74 68 65 20 20 6D 65 63 68 61 6E 69 ted the mechani
0122F0: 73 6D 20 20 69 73 20 20 64 69 73 61 72 6D 65 64 sm is disarmed
012300: 20 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 automatically
012310: 20 77 68 69 63 68 0D 0A 20 20 20 20 20 20 20 70 which.. p
012320: 72 65 76 65 6E 74 73 20 6D 75 6C 74 69 70 6C 65 revents multiple
012330: 20 62 72 65 61 6B 73 20 66 72 6F 6D 20 6F 63 63 breaks from occ
012340: 75 72 72 69 6E 67 2E 0D 0A 0D 0A 0D 0A 20 20 20 urring.......
012350: 20 20 20 20 54 68 65 20 6D 65 74 68 6F 64 20 42 The method B
012360: 41 53 49 43 20 75 73 65 73 20 74 6F 20 68 61 6E ASIC uses to han
012370: 64 6C 65 20 62 72 65 61 6B 73 20 73 68 6F 75 6C dle breaks shoul
012380: 64 20 73 65 72 76 65 20 20 61 73 20 20 61 20 20 d serve as a
012390: 6D 6F 64 65 6C 20 20 66 6F 72 0D 0A 20 20 20 20 model for..
0123A0: 20 20 20 6F 74 68 65 72 20 70 72 6F 67 72 61 6D other program
0123B0: 73 2E 20 42 41 53 49 43 27 73 20 61 63 74 69 6F s. BASIC's actio
0123C0: 6E 20 69 73 20 61 73 20 66 6F 6C 6C 6F 77 73 3A n is as follows:
0123D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
0123E0: 20 20 20 20 54 68 65 20 62 72 65 61 6B 20 6D 65 The break me
0123F0: 63 68 61 6E 69 73 6D 20 69 73 20 61 72 6D 65 64 chanism is armed
012400: 2E 20 41 66 74 65 72 20 20 65 61 63 68 20 20 42 . After each B
012410: 41 53 49 43 20 20 69 6E 73 74 72 75 63 74 69 6F ASIC instructio
012420: 6E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 n..
012430: 20 20 20 74 68 65 20 73 79 6E 63 68 72 6F 6E 6F the synchrono
012440: 75 73 20 65 76 65 6E 74 20 71 75 65 75 65 20 69 us event queue i
012450: 73 20 70 6F 6C 6C 65 64 20 61 6E 64 20 69 66 20 s polled and if
012460: 61 20 62 72 65 61 6B 20 65 76 65 6E 74 20 69 73 a break event is
012470: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
012480: 20 20 66 6F 75 6E 64 20 28 62 65 63 61 75 73 65 found (because
012490: 20 69 74 20 68 61 73 20 62 65 65 6E 20 6B 69 63 it has been kic
0124A0: 6B 65 64 20 20 61 73 20 20 65 78 70 6C 61 69 6E ked as explain
0124B0: 65 64 20 20 61 62 6F 76 65 29 20 20 74 68 65 0D ed above) the.
0124C0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0124D0: 20 62 72 65 61 6B 20 65 76 65 6E 74 20 72 6F 75 break event rou
0124E0: 74 69 6E 65 20 69 73 20 72 75 6E 2E 0D 0A 0D 0A tine is run.....
0124F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012500: 54 68 65 20 62 72 65 61 6B 20 65 76 65 6E 74 20 The break event
012510: 72 6F 75 74 69 6E 65 20 73 74 6F 70 73 20 73 6F routine stops so
012520: 75 6E 64 20 67 65 6E 65 72 61 74 69 6F 6E 20 20 und generation
012530: 28 53 4F 55 4E 44 20 20 48 4F 4C 44 29 0D 0A 20 (SOUND HOLD)..
012540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 a
012550: 6E 64 20 74 68 65 6E 20 69 74 20 64 69 73 63 61 nd then it disca
012560: 72 64 73 20 61 6C 6C 20 63 68 61 72 61 63 74 65 rds all characte
012570: 72 73 20 74 79 70 65 64 20 20 62 65 66 6F 72 65 rs typed before
012580: 20 20 74 68 65 20 20 62 72 65 61 6B 0D 0A 20 20 the break..
012590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6F 63 oc
0125A0: 63 75 72 72 65 64 20 62 79 20 72 65 61 64 69 6E curred by readin
0125B0: 67 20 63 68 61 72 61 63 74 65 72 73 20 66 72 6F g characters fro
0125C0: 6D 20 20 74 68 65 20 20 6B 65 79 62 6F 61 72 64 m the keyboard
0125D0: 20 20 28 4B 4D 20 20 52 45 41 44 0D 0A 20 20 20 (KM READ..
0125E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 48 41 CHA
0125F0: 52 29 20 75 6E 74 69 6C 20 65 69 74 68 65 72 20 R) until either
012600: 74 68 65 20 62 75 66 66 65 72 20 69 73 20 65 6D the buffer is em
012610: 70 74 79 20 20 6F 72 20 20 74 68 65 20 20 62 72 pty or the br
012620: 65 61 6B 20 20 65 76 65 6E 74 0D 0A 20 20 20 20 eak event..
012630: 20 20 20 20 20 20 20 20 20 20 20 20 6D 61 72 6B mark
012640: 65 72 20 28 63 68 61 72 61 63 74 65 72 20 23 45 er (character #E
012650: 46 29 20 69 73 20 66 6F 75 6E 64 2E 20 42 41 53 F) is found. BAS
012660: 49 43 20 74 68 65 6E 20 74 75 72 6E 73 20 74 68 IC then turns th
012670: 65 20 20 63 75 72 73 6F 72 0D 0A 20 20 20 20 20 e cursor..
012680: 20 20 20 20 20 20 20 20 20 20 20 6F 6E 20 28 54 on (T
012690: 58 54 20 43 55 52 20 4F 4E 29 20 61 6E 64 20 77 XT CUR ON) and w
0126A0: 61 69 74 73 20 66 6F 72 20 74 68 65 20 6E 65 78 aits for the nex
0126B0: 74 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 62 t character to b
0126C0: 65 20 20 74 79 70 65 64 0D 0A 20 20 20 20 20 20 e typed..
0126D0: 20 20 20 20 20 20 20 20 20 20 28 4B 4D 20 57 41 (KM WA
0126E0: 49 54 20 43 48 41 52 29 2E 0D 0A 0D 0A 20 20 20 IT CHAR).....
0126F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 If
012700: 74 68 65 20 6E 65 78 74 20 63 68 61 72 61 63 74 the next charact
012710: 65 72 20 69 73 20 74 68 65 20 65 73 63 61 70 65 er is the escape
012720: 20 74 6F 6B 65 6E 20 20 28 63 68 61 72 61 63 74 token (charact
012730: 65 72 20 20 23 46 43 20 20 2D 0D 0A 20 20 20 20 er #FC -..
012740: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 the
012750: 64 65 66 61 75 6C 74 20 76 61 6C 75 65 20 67 65 default value ge
012760: 6E 65 72 61 74 65 64 20 62 79 20 74 68 65 20 45 nerated by the E
012770: 53 43 20 6B 65 79 29 20 74 68 65 6E 20 61 20 20 SC key) then a
012780: 66 6C 61 67 20 20 73 65 74 0D 0A 20 20 20 20 20 flag set..
012790: 20 20 20 20 20 20 20 20 20 20 20 74 6F 20 6D 61 to ma
0127A0: 6B 65 20 42 41 53 49 43 20 61 62 61 6E 64 6F 6E ke BASIC abandon
0127B0: 20 65 78 65 63 75 74 69 6F 6E 20 28 6F 72 20 72 execution (or r
0127C0: 75 6E 20 74 68 65 20 75 73 65 72 27 73 20 20 4F un the user's O
0127D0: 4E 20 20 42 52 45 41 4B 0D 0A 20 20 20 20 20 20 N BREAK..
0127E0: 20 20 20 20 20 20 20 20 20 20 47 4F 53 55 42 20 GOSUB
0127F0: 73 75 62 72 6F 75 74 69 6E 65 29 20 61 6E 64 20 subroutine) and
012800: 74 68 65 20 62 72 65 61 6B 20 65 76 65 6E 74 20 the break event
012810: 72 6F 75 74 69 6E 65 20 72 65 74 75 72 6E 73 2E routine returns.
012820: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
012830: 20 20 20 20 49 66 20 74 68 65 20 6E 65 78 74 20 If the next
012840: 63 68 61 72 61 63 74 65 72 20 69 73 20 61 6E 79 character is any
012850: 20 63 68 61 72 61 63 74 65 72 20 6F 74 68 65 72 character other
012860: 20 74 68 61 6E 20 65 73 63 61 70 65 20 74 68 65 than escape the
012870: 6E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 n..
012880: 20 20 20 74 68 65 20 62 72 65 61 6B 20 77 69 6C the break wil
012890: 6C 20 62 65 20 69 67 6E 6F 72 65 64 2E 20 49 66 l be ignored. If
0128A0: 20 69 74 20 69 73 20 61 6E 79 20 63 68 61 72 61 it is any chara
0128B0: 63 74 65 72 20 6F 74 68 65 72 20 20 74 68 61 6E cter other than
0128C0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0128D0: 20 20 73 70 61 63 65 20 74 68 65 6E 20 74 68 69 space then thi
0128E0: 73 20 69 73 20 27 70 75 74 20 62 61 63 6B 27 20 s is 'put back'
0128F0: 28 4B 4D 20 43 48 41 52 20 20 52 45 54 55 52 4E (KM CHAR RETURN
012900: 29 2E 20 20 42 65 66 6F 72 65 20 20 74 68 65 0D ). Before the.
012910: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
012920: 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 72 event routine r
012930: 65 74 75 72 6E 73 20 74 68 65 20 63 75 72 73 6F eturns the curso
012940: 72 20 69 73 20 74 75 72 6E 65 64 20 6F 66 66 20 r is turned off
012950: 28 54 58 54 20 43 55 52 20 4F 46 46 29 2C 0D 0A (TXT CUR OFF),..
012960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012970: 73 6F 75 6E 64 20 67 65 6E 65 72 61 74 69 6F 6E sound generation
012980: 20 69 73 20 72 65 73 74 61 72 74 65 64 20 28 53 is restarted (S
012990: 4F 55 4E 44 20 43 4F 4E 54 49 4E 55 45 29 20 61 OUND CONTINUE) a
0129A0: 6E 64 20 74 68 65 20 20 62 72 65 61 6B 0D 0A 20 nd the break..
0129B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6D m
0129C0: 65 63 68 61 6E 69 73 6D 20 69 73 20 72 65 61 72 echanism is rear
0129D0: 6D 65 64 2E 20 42 41 53 49 43 20 74 68 65 6E 20 med. BASIC then
0129E0: 63 6F 6E 74 69 6E 75 65 73 20 61 73 20 69 66 20 continues as if
0129F0: 6E 6F 74 68 69 6E 67 20 20 68 61 64 0D 0A 20 20 nothing had..
012A00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 61 ha
012A10: 70 70 65 6E 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 ppened.......
012A20: 20 20 20 20 57 68 65 6E 20 72 65 61 64 69 6E 67 When reading
012A30: 20 6F 72 20 77 72 69 74 69 6E 67 20 66 72 6F 6D or writing from
012A40: 20 74 68 65 20 63 61 73 73 65 74 74 65 20 74 68 the cassette th
012A50: 65 20 45 53 43 20 6B 65 79 20 69 73 20 68 61 6E e ESC key is han
012A60: 64 6C 65 64 20 69 6E 20 20 61 0D 0A 20 20 20 20 dled in a..
012A70: 20 20 20 64 69 66 66 65 72 65 6E 74 20 6D 61 6E different man
012A80: 6E 65 72 20 77 68 69 63 68 20 69 73 20 64 65 73 ner which is des
012A90: 63 72 69 62 65 64 20 69 6E 20 73 65 63 74 69 6F cribed in sectio
012AA0: 6E 20 38 2E 31 32 0D 0A 0D 0A 20 20 20 20 20 20 n 8.12....
012AB0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
012AC0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
012AD0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
012AE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
012AF0: 61 67 65 20 33 2E 34 0D 0A 0D 0A 0D 0A 0D 0A 0D age 3.4.........
012B00: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 33 2E 37 20 ..... 3.7
012B10: 46 75 6E 63 74 69 6F 6E 20 4B 65 79 73 20 61 6E Function Keys an
012B20: 64 20 45 78 70 61 6E 73 69 6F 6E 20 54 6F 6B 65 d Expansion Toke
012B30: 6E 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ns.........
012B40: 20 20 54 68 65 20 4B 65 79 20 4D 61 6E 61 67 65 The Key Manage
012B50: 72 20 61 6C 6C 6F 77 73 20 66 6F 72 20 33 32 20 r allows for 32
012B60: 65 78 70 61 6E 73 69 6F 6E 20 74 6F 6B 65 6E 73 expansion tokens
012B70: 20 28 76 61 6C 75 65 73 20 23 38 30 2E 2E 23 39 (values #80..#9
012B80: 46 29 20 77 68 69 63 68 0D 0A 20 20 20 20 20 20 F) which..
012B90: 20 6D 61 79 20 62 65 20 70 6C 61 63 65 64 20 69 may be placed i
012BA0: 6E 20 74 68 65 20 6B 65 79 20 74 72 61 6E 73 6C n the key transl
012BB0: 61 74 69 6F 6E 20 74 61 62 6C 65 73 2E 20 45 61 ation tables. Ea
012BC0: 63 68 20 74 6F 6B 65 6E 20 69 73 20 20 61 73 73 ch token is ass
012BD0: 6F 63 69 61 74 65 64 0D 0A 20 20 20 20 20 20 20 ociated..
012BE0: 77 69 74 68 20 61 20 73 74 72 69 6E 67 20 77 68 with a string wh
012BF0: 69 63 68 20 69 73 20 73 74 6F 72 65 64 20 69 6E ich is stored in
012C00: 20 74 68 65 20 65 78 70 61 6E 73 69 6F 6E 20 62 the expansion b
012C10: 75 66 66 65 72 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 uffer.........
012C20: 20 20 20 20 20 57 68 65 6E 20 74 68 65 20 75 73 When the us
012C30: 65 72 20 61 73 6B 73 20 74 68 65 20 74 6F 70 20 er asks the top
012C40: 6C 65 76 65 6C 20 66 6F 72 20 61 20 63 68 61 72 level for a char
012C50: 61 63 74 65 72 20 61 20 6B 65 79 20 69 73 20 66 acter a key is f
012C60: 65 74 63 68 65 64 20 66 72 6F 6D 0D 0A 20 20 20 etched from..
012C70: 20 20 20 20 74 68 65 20 6D 69 64 64 6C 65 20 6C the middle l
012C80: 65 76 65 6C 2E 20 49 66 20 74 68 69 73 20 6B 65 evel. If this ke
012C90: 79 20 69 73 20 61 20 63 68 61 72 61 63 74 65 72 y is a character
012CA0: 20 20 69 74 20 20 69 73 20 20 70 61 73 73 65 64 it is passed
012CB0: 20 20 73 74 72 61 69 67 68 74 0D 0A 20 20 20 20 straight..
012CC0: 20 20 20 62 61 63 6B 2E 20 48 6F 77 65 76 65 72 back. However
012CD0: 2C 20 69 66 20 69 74 20 69 73 20 61 6E 20 65 78 , if it is an ex
012CE0: 70 61 6E 73 69 6F 6E 20 74 6F 6B 65 6E 20 74 68 pansion token th
012CF0: 65 6E 20 74 68 65 20 73 74 72 69 6E 67 20 20 61 en the string a
012D00: 73 73 6F 63 69 61 74 65 64 0D 0A 20 20 20 20 20 ssociated..
012D10: 20 20 77 69 74 68 20 74 68 65 20 74 6F 6B 65 6E with the token
012D20: 20 69 73 20 6C 6F 6F 6B 65 64 20 75 70 2E 20 54 is looked up. T
012D30: 68 65 20 63 68 61 72 61 63 74 65 72 73 20 69 6E he characters in
012D40: 20 74 68 69 73 20 73 74 72 69 6E 67 20 61 72 65 this string are
012D50: 20 20 70 61 73 73 65 64 0D 0A 20 20 20 20 20 20 passed..
012D60: 20 6F 75 74 20 6F 6E 65 20 61 74 20 61 20 74 69 out one at a ti
012D70: 6D 65 20 77 69 74 68 20 65 61 63 68 20 72 65 71 me with each req
012D80: 75 65 73 74 20 66 6F 72 20 61 20 63 68 61 72 61 uest for a chara
012D90: 63 74 65 72 20 75 6E 74 69 6C 20 74 68 65 20 20 cter until the
012DA0: 65 6E 64 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 end of..
012DB0: 74 68 65 20 73 74 72 69 6E 67 20 69 73 20 72 65 the string is re
012DC0: 61 63 68 65 64 2E 20 20 56 61 6C 75 65 73 20 20 ached. Values
012DD0: 23 38 30 2E 2E 23 39 46 20 20 61 6E 64 20 20 23 #80..#9F and #
012DE0: 45 46 2C 20 20 23 46 44 2E 2E 23 46 46 20 20 69 EF, #FD..#FF i
012DF0: 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 65 n the.. e
012E00: 78 70 61 6E 73 69 6F 6E 20 73 74 72 69 6E 67 20 xpansion string
012E10: 61 72 65 20 74 72 65 61 74 65 64 20 61 73 20 63 are treated as c
012E20: 68 61 72 61 63 74 65 72 73 20 61 6E 64 20 20 61 haracters and a
012E30: 72 65 20 20 6E 6F 74 20 20 65 78 70 61 6E 64 65 re not expande
012E40: 64 20 20 6F 72 0D 0A 20 20 20 20 20 20 20 6F 62 d or.. ob
012E50: 65 79 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 eyed.........
012E60: 20 20 20 20 54 68 65 20 75 73 65 72 20 6D 61 79 The user may
012E70: 20 73 65 74 20 74 68 65 20 73 74 72 69 6E 67 20 set the string
012E80: 61 73 73 6F 63 69 61 74 65 64 20 77 69 74 68 20 associated with
012E90: 61 6E 20 65 78 70 61 6E 73 69 6F 6E 20 74 6F 6B an expansion tok
012EA0: 65 6E 20 28 73 65 65 20 4B 4D 0D 0A 20 20 20 20 en (see KM..
012EB0: 20 20 20 53 45 54 20 45 58 50 41 4E 44 29 20 61 SET EXPAND) a
012EC0: 6E 64 20 6D 61 79 20 63 61 75 73 65 20 61 6E 79 nd may cause any
012ED0: 20 6B 65 79 20 20 6F 6E 20 20 74 68 65 20 20 6B key on the k
012EE0: 65 79 62 6F 61 72 64 20 20 74 6F 20 20 67 65 6E eyboard to gen
012EF0: 65 72 61 74 65 20 20 61 6E 0D 0A 20 20 20 20 20 erate an..
012F00: 20 20 65 78 70 61 6E 73 69 6F 6E 20 74 6F 6B 65 expansion toke
012F10: 6E 2E 20 54 68 65 20 64 65 66 61 75 6C 74 20 73 n. The default s
012F20: 65 74 74 69 6E 67 73 20 66 6F 72 20 74 68 65 20 ettings for the
012F30: 65 78 70 61 6E 73 69 6F 6E 20 74 6F 6B 65 6E 73 expansion tokens
012F40: 20 61 6E 64 20 74 68 65 0D 0A 20 20 20 20 20 20 and the..
012F50: 20 6B 65 79 73 20 77 69 74 68 20 77 68 69 63 68 keys with which
012F60: 20 74 68 65 79 20 61 72 65 20 6E 6F 72 6D 61 6C they are normal
012F70: 6C 79 20 61 73 73 6F 63 69 61 74 65 64 20 61 72 ly associated ar
012F80: 65 20 67 69 76 65 6E 20 69 6E 20 41 70 70 65 6E e given in Appen
012F90: 64 69 78 20 49 56 2E 0D 0A 20 20 20 20 20 20 20 dix IV...
012FA0: 54 68 65 20 75 73 65 72 20 6D 61 79 20 61 6C 73 The user may als
012FB0: 6F 20 73 65 74 20 74 68 65 20 73 69 7A 65 20 61 o set the size a
012FC0: 6E 64 20 6C 6F 63 61 74 69 6F 6E 20 6F 66 20 20 nd location of
012FD0: 74 68 65 20 20 65 78 70 61 6E 73 69 6F 6E 20 20 the expansion
012FE0: 62 75 66 66 65 72 0D 0A 20 20 20 20 20 20 20 28 buffer.. (
012FF0: 73 65 65 20 4B 4D 20 45 58 50 20 42 55 46 46 45 see KM EXP BUFFE
013000: 52 29 3B 20 74 68 65 20 64 65 66 61 75 6C 74 20 R); the default
013010: 62 75 66 66 65 72 20 69 73 20 61 74 20 6C 65 61 buffer is at lea
013020: 73 74 20 31 30 30 20 62 79 74 65 73 20 6C 6F 6E st 100 bytes lon
013030: 67 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 g.........
013040: 20 33 2E 38 20 4A 6F 79 73 74 69 63 6B 73 2E 0D 3.8 Joysticks..
013050: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
013060: 65 72 65 20 6D 61 79 20 62 65 20 74 77 6F 20 6A ere may be two j
013070: 6F 79 73 74 69 63 6B 73 20 63 6F 6E 6E 65 63 74 oysticks connect
013080: 65 64 20 74 6F 20 74 68 65 20 20 73 79 73 74 65 ed to the syste
013090: 6D 2E 20 20 54 68 65 73 65 20 20 61 72 65 20 20 m. These are
0130A0: 62 6F 74 68 0D 0A 20 20 20 20 20 20 20 73 63 61 both.. sca
0130B0: 6E 6E 65 64 20 69 6E 20 74 68 65 20 73 61 6D 65 nned in the same
0130C0: 20 77 61 79 20 61 73 20 6B 65 79 73 20 6F 6E 20 way as keys on
0130D0: 74 68 65 20 6B 65 79 62 6F 61 72 64 2E 20 20 49 the keyboard. I
0130E0: 6E 64 65 65 64 2C 20 20 74 68 65 20 20 73 65 63 ndeed, the sec
0130F0: 6F 6E 64 0D 0A 20 20 20 20 20 20 20 6A 6F 79 73 ond.. joys
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: 74 69 63 6B 20 6F 63 63 75 70 69 65 73 20 74 68 tick occupies th
013210: 65 20 73 61 6D 65 20 6C 6F 63 61 74 69 6F 6E 73 e same locations
013220: 20 69 6E 20 20 74 68 65 20 20 6B 65 79 20 20 6D in the key m
013230: 61 74 72 69 78 20 20 61 73 20 20 63 65 72 74 61 atrix as certa
013240: 69 6E 0D 0A 20 20 20 20 20 20 20 6F 74 68 65 72 in.. other
013250: 20 6B 65 79 73 20 61 6E 64 20 69 73 20 20 69 6E keys and is in
013260: 64 69 73 74 69 6E 67 75 69 73 68 61 62 6C 65 20 distinguishable
013270: 20 66 72 6F 6D 20 20 74 68 65 6E 2E 20 20 54 68 from then. Th
013280: 65 20 20 73 74 61 74 65 20 20 6F 66 20 20 74 68 e state of th
013290: 65 0D 0A 20 20 20 20 20 20 20 6A 6F 79 73 74 69 e.. joysti
0132A0: 63 6B 20 63 61 6E 20 62 65 20 64 65 74 65 72 6D ck can be determ
0132B0: 69 6E 65 64 20 62 79 20 63 61 6C 6C 69 6E 67 20 ined by calling
0132C0: 74 68 65 20 72 6F 75 74 69 6E 65 20 4B 4D 20 47 the routine KM G
0132D0: 45 54 20 4A 4F 59 53 54 49 43 4B 2E 0D 0A 0D 0A ET JOYSTICK.....
0132E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 42 65 63 61 75 .... Becau
0132F0: 73 65 20 74 68 65 20 6A 6F 79 73 74 69 63 6B 73 se the joysticks
013300: 20 61 72 65 20 73 63 61 6E 6E 65 64 20 6C 69 6B are scanned lik
013310: 65 20 6B 65 79 73 20 74 68 65 20 70 72 65 73 73 e keys the press
013320: 69 6E 67 20 20 6F 66 20 20 6A 6F 79 73 74 69 63 ing of joystic
013330: 6B 0D 0A 20 20 20 20 20 20 20 62 75 74 74 6F 6E k.. button
013340: 73 20 63 61 6E 20 62 65 20 20 64 65 74 65 63 74 s can be detect
013350: 65 64 20 20 6C 69 6B 65 20 20 61 6E 79 20 20 6F ed like any o
013360: 74 68 65 72 20 20 6B 65 79 2E 20 20 46 69 72 73 ther key. Firs
013370: 74 6C 79 2C 20 20 69 6E 64 69 76 69 64 75 61 6C tly, individual
013380: 0D 0A 20 20 20 20 20 20 20 64 69 72 65 63 74 69 .. directi
013390: 6F 6E 20 6F 72 20 62 75 74 74 6F 6E 73 20 63 61 on or buttons ca
0133A0: 6E 20 62 65 20 74 65 73 74 65 64 20 69 6E 20 74 n be tested in t
0133B0: 68 65 20 6B 65 79 20 20 62 69 74 20 20 6D 61 70 he key bit map
0133C0: 20 20 28 73 65 65 20 20 73 65 63 74 69 6F 6E 0D (see section.
0133D0: 0A 20 20 20 20 20 20 20 33 2E 31 29 20 62 79 20 . 3.1) by
0133E0: 63 61 6C 6C 69 6E 67 20 4B 4D 20 54 45 53 54 20 calling KM TEST
0133F0: 4B 45 59 2E 20 53 65 63 6F 6E 64 6C 79 2C 20 74 KEY. Secondly, t
013400: 68 65 20 6A 6F 79 73 74 69 63 6B 20 20 62 75 74 he joystick but
013410: 74 6F 6E 73 20 20 67 65 6E 65 72 61 74 65 0D 0A tons generate..
013420: 20 20 20 20 20 20 20 63 68 61 72 61 63 74 65 72 character
013430: 73 20 77 68 65 6E 20 74 68 65 79 20 61 72 65 20 s when they are
013440: 70 72 65 73 73 65 64 20 28 70 72 6F 76 69 64 69 pressed (providi
013450: 6E 67 20 74 68 65 20 74 72 61 6E 73 6C 61 74 69 ng the translati
013460: 6F 6E 20 74 61 62 6C 65 73 20 61 72 65 0D 0A 20 on tables are..
013470: 20 20 20 20 20 20 73 65 74 20 73 75 69 74 61 62 set suitab
013480: 6C 79 29 20 61 6E 64 20 74 68 65 73 65 20 63 68 ly) and these ch
013490: 61 72 61 63 74 65 72 73 20 63 61 6E 20 62 65 20 aracters can be
0134A0: 64 65 74 65 63 74 65 64 2E 20 54 68 65 20 6D 61 detected. The ma
0134B0: 6A 6F 72 20 20 70 72 6F 62 6C 65 6D 0D 0A 20 20 jor problem..
0134C0: 20 20 20 20 20 77 69 74 68 20 74 68 69 73 20 6C with this l
0134D0: 61 74 74 65 72 20 6D 65 74 68 6F 64 20 69 73 20 atter method is
0134E0: 74 68 61 74 20 74 68 65 20 72 61 74 65 20 6F 66 that the rate of
0134F0: 20 67 65 6E 65 72 61 74 69 6F 6E 20 20 6F 66 20 generation of
013500: 20 63 68 61 72 61 63 74 65 72 73 0D 0A 20 20 20 characters..
013510: 20 20 20 20 64 65 70 65 6E 64 73 20 6F 6E 20 68 depends on h
013520: 6F 77 20 66 61 73 74 20 74 68 65 20 6B 65 79 62 ow fast the keyb
013530: 6F 61 72 64 20 69 73 20 73 65 74 20 74 6F 20 72 oard is set to r
013540: 65 70 65 61 74 2E 20 49 66 20 74 68 65 20 72 65 epeat. If the re
013550: 70 65 61 74 20 73 70 65 65 64 0D 0A 20 20 20 20 peat speed..
013560: 20 20 20 69 6E 20 69 6E 63 72 65 61 73 65 64 20 in increased
013570: 74 6F 20 6D 61 6B 65 20 20 74 68 65 20 20 6A 6F to make the jo
013580: 79 73 74 69 63 6B 20 20 6D 6F 72 65 20 20 72 65 ystick more re
013590: 73 70 6F 6E 73 69 76 65 20 20 74 68 65 6E 20 20 sponsive then
0135A0: 74 68 65 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 then the..
0135B0: 20 20 6B 65 79 62 6F 61 72 64 20 6D 61 79 20 62 keyboard may b
0135C0: 65 63 6F 6D 65 20 69 6D 70 6F 73 73 69 62 6C 65 ecome impossible
0135D0: 20 74 6F 20 75 73 65 2E 0D 0A 0D 0A 0D 0A 0D 0A to use.........
0135E0: 20 20 20 20 20 20 20 53 65 65 20 41 70 70 65 6E See Appen
0135F0: 64 69 78 20 49 20 66 6F 72 20 74 68 65 20 6E 75 dix I for the nu
013600: 6D 62 65 72 69 6E 67 20 6F 66 20 74 68 65 20 6B mbering of the k
013610: 65 79 73 20 61 6E 64 20 6A 6F 79 73 74 69 63 6B eys and joystick
013620: 20 62 75 74 74 6F 6E 73 20 20 61 6E 64 0D 0A 20 buttons and..
013630: 20 20 20 20 20 20 73 65 65 20 41 70 70 65 6E 64 see Append
013640: 69 78 20 49 49 20 66 6F 72 20 74 68 65 20 64 65 ix II for the de
013650: 66 61 75 6C 74 20 74 72 61 6E 73 6C 61 74 69 6F fault translatio
013660: 6E 20 74 61 62 6C 65 73 2E 0D 0A 0D 0A 0D 0A 20 n tables.......
013670: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
013680: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
013690: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
0136A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0136B0: 20 70 61 67 65 20 33 2E 35 0D 0A 1A 74 68 65 20 page 3.5...the
0136C0: 70 61 63 6B 20 61 73 73 6F 63 69 61 74 65 64 20 pack associated
0136D0: 20 77 69 74 68 20 20 74 68 65 20 20 6B 65 79 62 with the keyb
0136E0: 6F 61 72 64 2E 20 20 41 6C 6C 20 20 74 68 65 0D oard. All the.
0136F0: 0A 20 20 20 20 20 20 20 61 74 74 72 69 62 75 74 . attribut
013700: 20 63 68 61 72 61 63 74 65 72 73 0D 0A 20 20 20 characters..
013710: 20 20 20 20 64 65 70 65 6E 64 73 20 6F 6E 20 68 depends on h
013720: 6F 77 20 66 61 73 74 20 74 68 65 20 6B 65 79 62 ow fast the keyb
013730: 6F 61 72 64 20 69 73 20 73 65 74 20 74 6F 20 72 oard is set to r
013740: 65 70 65 61 74 2E 20 49 66 20 74 68 65 20 72 65 epeat. If the re
013750: 70 65 61 74 20 73 70 65 65 64 0D 0A 20 20 20 20 peat speed..
013760: 20 20 20 69 6E 20 69 6E 63 72 65 61 73 65 64 20 in increased
013770: 74 6F 20 6D 61 6B 65 20 20 74 68 65 20 20 6A 6F to make the jo
013780: 79 73 74 69 63 6B 20 20 6D 6F 72 65 20 20 72 65 ystick more re
013790: 73 70 6F 6E 73 69 76 65 20 20 74 68 65 6E 20 20 sponsive then
0137A0: 74 68 65 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 then the..
0137B0: 20 20 6B 65 79 62 6F 61 72 64 20 6D 61 79 20 62 keyboard may b
0137C0: 65 63 6F 6D 65 20 69 6D 70 6F 73 73 69 62 6C 65 ecome impossible
0137D0: 20 74 6F 20 75 73 65 2E 0D 0A 0D 0A 0D 0A 0D 0A to use.........
0137E0: 20 20 20 20 20 20 20 53 65 65 20 41 70 70 65 6E See Appen
0137F0: 64 69 78 20 49 20 66 6F 72 20 74 68 65 20 6E 75 dix I for the nu
013800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0138A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0138B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0138C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0138D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0138E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0138F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0139A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0139B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0139C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0139D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0139E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0139F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013A00: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 34 ........ 4
013A10: 20 54 68 65 20 54 65 78 74 20 56 44 55 2E 0D 0A The Text VDU...
013A20: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 54 .... The T
013A30: 65 78 74 20 56 44 55 20 69 73 20 20 61 20 20 63 ext VDU is a c
013A40: 68 61 72 61 63 74 65 72 20 20 62 61 73 65 64 20 haracter based
013A50: 20 73 63 72 65 65 6E 20 20 64 72 69 76 65 72 2E screen driver.
013A60: 20 20 49 74 20 20 63 6F 6E 74 72 6F 6C 73 20 20 It controls
013A70: 38 0D 0A 20 20 20 20 20 20 20 64 69 66 66 65 72 8.. differ
013A80: 65 6E 74 20 73 74 72 65 61 6D 73 20 65 61 63 68 ent streams each
013A90: 20 6F 66 20 77 68 69 63 68 20 63 61 6E 20 68 61 of which can ha
013AA0: 76 65 20 61 6E 20 61 72 65 61 20 6F 66 20 20 73 ve an area of s
013AB0: 63 72 65 65 6E 20 20 61 6C 6C 6F 63 61 74 65 64 creen allocated
013AC0: 0D 0A 20 20 20 20 20 20 20 74 6F 20 69 74 20 28 .. to it (
013AD0: 61 20 77 69 6E 64 6F 77 29 2E 20 54 68 65 20 54 a window). The T
013AE0: 65 78 74 20 56 44 55 20 61 6C 6C 6F 77 73 20 63 ext VDU allows c
013AF0: 68 61 72 61 63 74 65 72 73 20 74 6F 20 62 65 20 haracters to be
013B00: 77 72 69 74 74 65 6E 20 74 6F 20 20 74 68 65 0D written to the.
013B10: 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 61 . screen a
013B20: 6E 64 20 72 65 61 64 20 66 72 6F 6D 20 74 68 65 nd read from the
013B30: 20 73 63 72 65 65 6E 2E 20 49 74 20 61 6C 73 6F screen. It also
013B40: 20 74 72 65 61 74 73 20 20 63 65 72 74 61 69 6E treats certain
013B50: 20 20 27 63 68 61 72 61 63 74 65 72 73 27 0D 0A 'characters'..
013B60: 20 20 20 20 20 20 20 61 73 20 27 63 6F 6E 74 72 as 'contr
013B70: 6F 6C 20 63 6F 64 65 73 27 20 77 68 69 63 68 20 ol codes' which
013B80: 63 61 6E 20 68 61 76 65 20 76 61 72 69 6F 75 73 can have various
013B90: 20 20 65 66 66 65 63 74 73 2C 20 20 66 72 6F 6D effects, from
013BA0: 20 20 6D 6F 76 69 6E 67 20 20 74 68 65 0D 0A 20 moving the..
013BB0: 20 20 20 20 20 20 63 75 72 73 6F 72 20 74 6F 20 cursor to
013BC0: 73 65 74 74 69 6E 67 20 74 68 65 20 63 6F 6C 6F setting the colo
013BD0: 75 72 20 6F 66 20 61 6E 20 69 6E 6B 2E 0D 0A 0D ur of an ink....
013BE0: 0A 0D 0A 20 20 20 20 20 20 20 34 2E 31 20 54 65 ... 4.1 Te
013BF0: 78 74 20 56 44 55 20 43 6F 6F 72 64 69 6E 61 74 xt VDU Coordinat
013C00: 65 20 53 79 73 74 65 6D 2E 0D 0A 0D 0A 0D 0A 20 e System.......
013C10: 20 20 20 20 20 20 54 68 65 20 54 65 78 74 20 56 The Text V
013C20: 44 55 20 75 73 65 73 20 74 77 6F 20 20 63 6F 6F DU uses two coo
013C30: 72 64 69 6E 61 74 65 20 20 73 79 73 74 65 6D 73 rdinate systems
013C40: 20 20 2D 20 20 6C 6F 67 69 63 61 6C 20 20 61 6E - logical an
013C50: 64 20 20 70 68 79 73 69 63 61 6C 2E 0D 0A 20 20 d physical...
013C60: 20 20 20 20 20 47 65 6E 65 72 61 6C 6C 79 20 74 Generally t
013C70: 68 65 20 75 73 65 72 20 73 70 65 63 69 66 69 65 he user specifie
013C80: 73 20 70 6F 73 69 74 69 6F 6E 73 20 74 6F 20 20 s positions to
013C90: 74 68 65 20 20 54 65 78 74 20 20 56 44 55 20 20 the Text VDU
013CA0: 69 6E 20 20 6C 6F 67 69 63 61 6C 0D 0A 20 20 20 in logical..
013CB0: 20 20 20 20 63 6F 6F 72 64 69 6E 61 74 65 73 2E coordinates.
013CC0: 20 50 68 79 73 69 63 61 6C 20 63 6F 6F 72 64 69 Physical coordi
013CD0: 6E 61 74 65 73 20 61 72 65 20 75 73 65 64 20 69 nates are used i
013CE0: 6E 74 65 72 6E 61 6C 6C 79 20 61 6E 64 20 6F 63 nternally and oc
013CF0: 63 61 73 69 6F 6E 61 6C 6C 79 0D 0A 20 20 20 20 casionally..
013D00: 20 20 20 62 79 20 74 68 65 20 75 73 65 72 20 74 by the user t
013D10: 6F 20 73 70 65 63 69 66 79 20 70 6F 73 69 74 69 o specify positi
013D20: 6F 6E 73 20 74 6F 20 74 68 65 20 54 65 78 74 20 ons to the Text
013D30: 20 56 44 55 2E 20 20 42 6F 74 68 20 20 73 79 73 VDU. Both sys
013D40: 74 65 6D 73 20 20 75 73 65 0D 0A 20 20 20 20 20 tems use..
013D50: 20 20 73 69 67 6E 65 64 20 38 20 62 69 74 20 6E signed 8 bit n
013D60: 75 6D 62 65 72 73 20 61 6E 64 20 77 6F 72 6B 20 umbers and work
013D70: 69 6E 20 63 68 61 72 61 63 74 65 72 20 70 6F 73 in character pos
013D80: 69 74 69 6F 6E 73 2E 20 20 45 61 63 68 20 20 63 itions. Each c
013D90: 68 61 72 61 63 74 65 72 0D 0A 20 20 20 20 20 20 haracter..
013DA0: 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 38 20 70 position is 8 p
013DB0: 69 78 65 6C 73 20 28 64 6F 74 73 29 20 77 69 64 ixels (dots) wid
013DC0: 65 20 61 6E 64 20 38 20 70 69 78 65 6C 73 20 68 e and 8 pixels h
013DD0: 69 67 68 2E 20 20 54 68 69 73 20 20 6D 65 61 6E igh. This mean
013DE0: 73 20 20 74 68 61 74 0D 0A 20 20 20 20 20 20 20 s that..
013DF0: 74 68 65 20 70 6F 73 69 74 69 6F 6E 20 6F 66 20 the position of
013E00: 61 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F 6E 20 a coordinate on
013E10: 74 68 65 20 73 63 72 65 65 6E 20 20 64 65 70 65 the screen depe
013E20: 6E 64 73 20 20 75 70 6F 6E 20 20 74 68 65 20 20 nds upon the
013E30: 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 6D screen.. m
013E40: 6F 64 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ode.......
013E50: 20 50 68 79 73 69 63 61 6C 20 63 6F 6F 72 64 69 Physical coordi
013E60: 6E 61 74 65 73 20 68 61 76 65 20 63 6F 6C 75 6D nates have colum
013E70: 6E 73 20 72 75 6E 6E 69 6E 67 20 66 72 6F 6D 20 ns running from
013E80: 6C 65 66 74 20 74 6F 20 72 69 67 68 74 20 61 6E left to right an
013E90: 64 20 20 72 6F 77 73 0D 0A 20 20 20 20 20 20 20 d rows..
013EA0: 72 75 6E 6E 69 6E 67 20 74 6F 70 20 74 6F 20 62 running top to b
013EB0: 6F 74 74 6F 6D 2E 20 54 68 65 20 63 68 61 72 61 ottom. The chara
013EC0: 63 74 65 72 20 70 6F 73 69 74 69 6F 6E 20 61 74 cter position at
013ED0: 20 74 68 65 20 74 6F 70 20 20 6C 65 66 74 20 20 the top left
013EE0: 63 6F 72 6E 65 72 0D 0A 20 20 20 20 20 20 20 6F corner.. o
013EF0: 66 20 74 68 65 20 73 63 72 65 65 6E 20 69 73 20 f the screen is
013F00: 72 6F 77 20 30 2C 20 63 6F 6C 75 6D 6E 20 30 2E row 0, column 0.
013F10: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4C 6F 67 ...... Log
013F20: 69 63 61 6C 20 63 6F 6F 72 64 69 6E 61 74 65 73 ical coordinates
013F30: 20 61 72 65 20 73 69 6D 69 6C 61 72 20 74 6F 20 are similar to
013F40: 70 68 79 73 69 63 61 6C 20 20 63 6F 6F 72 64 69 physical coordi
013F50: 6E 61 74 65 73 20 20 65 78 63 65 70 74 20 20 74 nates except t
013F60: 68 61 74 0D 0A 20 20 20 20 20 20 20 74 68 65 20 hat.. the
013F70: 63 68 61 72 61 63 74 65 72 20 70 6F 73 69 74 69 character positi
013F80: 6F 6E 20 61 74 20 74 68 65 20 74 6F 70 20 6C 65 on at the top le
013F90: 66 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 ft corner of the
013FA0: 20 20 74 65 78 74 20 20 77 69 6E 64 6F 77 20 20 text window
013FB0: 69 73 0D 0A 20 20 20 20 20 20 20 72 6F 77 20 31 is.. row 1
013FC0: 2C 20 63 6F 6C 75 6D 6E 20 31 2E 0D 0A 0D 0A 0D , column 1......
013FD0: 0A 20 20 20 20 20 20 20 34 2E 32 20 53 74 72 65 . 4.2 Stre
013FE0: 61 6D 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ams.......
013FF0: 20 54 68 65 20 54 65 78 74 20 56 44 55 20 68 61 The Text VDU ha
014000: 73 20 66 61 63 69 6C 69 74 69 65 73 20 66 6F 72 s facilities for
014010: 20 68 61 6E 64 6C 69 6E 67 20 75 70 20 74 6F 20 handling up to
014020: 38 20 73 74 72 65 61 6D 73 20 61 74 20 6F 6E 63 8 streams at onc
014030: 65 2E 20 45 61 63 68 0D 0A 20 20 20 20 20 20 20 e. Each..
014040: 73 74 72 65 61 6D 20 68 61 73 20 61 6E 20 69 6E stream has an in
014050: 64 65 70 65 6E 64 65 6E 74 20 73 74 61 74 65 20 dependent state
014060: 28 61 6C 74 68 6F 75 67 68 20 73 6F 6D 65 20 66 (although some f
014070: 61 63 69 6C 69 74 69 65 73 20 20 61 72 65 20 20 acilities are
014080: 73 68 61 72 65 64 0D 0A 20 20 20 20 20 20 20 61 shared.. a
014090: 6E 64 20 74 68 75 73 20 61 66 66 65 63 74 20 61 nd thus affect a
0140A0: 6C 6C 20 73 74 72 65 61 6D 73 20 20 77 68 65 6E ll streams when
0140B0: 20 20 61 6C 74 65 72 65 64 29 2E 20 20 54 68 65 altered). The
0140C0: 20 20 66 65 61 74 75 72 65 73 20 20 74 68 61 74 features that
0140D0: 20 20 61 72 65 0D 0A 20 20 20 20 20 20 20 73 74 are.. st
0140E0: 72 65 61 6D 20 64 65 70 65 6E 64 65 6E 74 20 61 ream dependent a
0140F0: 72 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 re:....
014100: 20 20 20 20 20 20 20 56 44 55 20 65 6E 61 62 6C VDU enabl
014110: 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 e...
014120: 20 20 20 20 43 75 72 73 6F 72 20 65 6E 61 62 6C Cursor enabl
014130: 65 20 28 65 6E 61 62 6C 65 20 6F 72 20 64 69 73 e (enable or dis
014140: 61 62 6C 65 2C 20 6F 6E 20 6F 72 20 6F 66 66 29 able, on or off)
014150: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
014160: 20 20 20 43 75 72 73 6F 72 20 70 6F 73 69 74 69 Cursor positi
014170: 6F 6E 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 on...
014180: 20 20 20 20 20 57 69 6E 64 6F 77 20 73 69 7A 65 Window size
014190: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
0141A0: 20 20 20 50 65 6E 20 61 6E 64 20 70 61 70 65 72 Pen and paper
0141B0: 20 69 6E 6B 73 2E 0D 0A 20 20 20 20 20 20 20 20 inks...
0141C0: 20 20 20 20 20 20 20 20 43 68 61 72 61 63 74 65 Characte
0141D0: 72 20 77 72 69 74 65 20 6D 6F 64 65 20 28 6F 70 r write mode (op
0141E0: 61 71 75 65 20 6F 72 20 74 72 61 6E 73 70 61 72 aque or transpar
0141F0: 65 6E 74 29 2E 0D 0A 20 20 20 20 20 20 20 20 20 ent)...
014200: 20 20 20 20 20 20 20 47 72 61 70 68 69 63 73 20 Graphics
014210: 63 68 61 72 61 63 74 65 72 20 77 72 69 74 65 20 character write
014220: 6D 6F 64 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 mode.....
014230: 54 68 65 20 66 65 61 74 75 72 65 73 20 74 68 61 The features tha
014240: 74 20 61 66 66 65 63 74 20 61 6C 6C 20 73 74 72 t affect all str
014250: 65 61 6D 73 20 61 72 65 3A 0D 0A 0D 0A 20 20 20 eams are:....
014260: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 68 61 Cha
014270: 72 61 63 74 65 72 20 6D 61 74 72 69 63 65 73 2E racter matrices.
014280: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
014290: 20 20 43 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 62 Control code b
0142A0: 75 66 66 65 72 2E 0D 0A 20 20 20 20 20 20 20 20 uffer...
0142B0: 20 20 20 20 20 20 20 20 54 65 78 74 20 56 44 55 Text VDU
0142C0: 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 2E 0D 0A indirections...
0142D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0142E0: 53 63 72 65 65 6E 20 6D 6F 64 65 2E 0D 0A 0D 0A Screen mode.....
0142F0: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
014300: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
014310: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
014320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014330: 20 20 20 20 20 70 61 67 65 20 34 2E 31 0D 0A 0D page 4.1...
014340: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
014350: 20 20 41 6C 6C 20 74 68 65 73 65 20 66 65 61 74 All these feat
014360: 75 72 65 73 20 61 72 65 20 65 78 70 6C 61 69 6E ures are explain
014370: 65 64 20 69 6E 20 64 65 74 61 69 6C 20 69 6E 20 ed in detail in
014380: 74 68 65 20 73 65 63 74 69 6F 6E 73 20 62 65 6C the sections bel
014390: 6F 77 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 74 ow..... At
0143A0: 20 61 6E 79 20 74 69 6D 65 2C 20 74 68 65 20 73 any time, the s
0143B0: 74 72 65 61 6D 20 77 68 69 63 68 20 69 73 20 63 tream which is c
0143C0: 75 72 72 65 6E 74 6C 79 20 20 73 65 6C 65 63 74 urrently select
0143D0: 65 64 20 20 6D 61 79 20 20 62 65 20 20 63 68 61 ed may be cha
0143E0: 6E 67 65 64 0D 0A 20 20 20 20 20 20 20 77 69 74 nged.. wit
0143F0: 68 6F 75 74 20 61 64 76 65 72 73 65 20 65 66 66 hout adverse eff
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: 65 63 74 73 20 70 72 6F 76 69 64 65 64 20 74 68 ects provided th
014510: 61 74 20 74 68 65 20 63 6F 6E 74 72 6F 6C 20 63 at the control c
014520: 6F 64 65 20 62 75 66 66 65 72 20 20 69 73 20 20 ode buffer is
014530: 6E 6F 74 0D 0A 20 20 20 20 20 20 20 69 6E 20 75 not.. in u
014540: 73 65 20 28 73 65 65 20 73 65 63 74 69 6F 6E 20 se (see section
014550: 34 2E 37 20 66 6F 72 20 66 75 72 74 68 65 72 20 4.7 for further
014560: 65 78 70 6C 61 6E 61 74 69 6F 6E 29 2E 20 41 20 explanation). A
014570: 73 74 72 65 61 6D 20 77 69 6C 6C 20 72 65 6D 61 stream will rema
014580: 69 6E 0D 0A 20 20 20 20 20 20 20 73 65 6C 65 63 in.. selec
014590: 74 65 64 20 75 6E 74 69 6C 20 61 6E 6F 74 68 65 ted until anothe
0145A0: 72 20 73 74 72 65 61 6D 20 69 73 20 73 65 6C 65 r stream is sele
0145B0: 63 74 65 64 2E 20 54 68 69 73 20 6D 65 61 6E 73 cted. This means
0145C0: 20 74 68 61 74 20 20 61 20 20 70 72 6F 67 72 61 that a progra
0145D0: 6D 0D 0A 20 20 20 20 20 20 20 6E 65 65 64 20 6E m.. need n
0145E0: 6F 74 20 6B 6E 6F 77 20 77 68 69 63 68 20 73 74 ot know which st
0145F0: 72 65 61 6D 20 69 74 20 69 73 20 75 73 69 6E 67 ream it is using
014600: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
014610: 64 65 66 61 75 6C 74 20 73 74 72 65 61 6D 2C 20 default stream,
014620: 73 65 6C 65 63 74 65 64 20 61 74 20 45 4D 53 2C selected at EMS,
014630: 20 69 73 20 73 74 72 65 61 6D 20 30 2E 0D 0A 0D is stream 0....
014640: 0A 20 20 20 20 20 20 20 42 41 53 49 43 20 20 65 . BASIC e
014650: 78 74 65 6E 64 73 20 20 74 68 65 20 20 73 74 72 xtends the str
014660: 65 61 6D 20 20 63 6F 6E 63 65 70 74 20 20 74 6F eam concept to
014670: 20 20 69 6E 63 6C 75 64 65 20 20 74 68 65 20 20 include the
014680: 20 70 72 69 6E 74 65 72 20 20 20 61 6E 64 0D 0A printer and..
014690: 20 20 20 20 20 20 20 63 61 73 73 65 74 74 65 2F cassette/
0146A0: 64 69 73 63 20 66 69 6C 65 73 2E 20 54 68 69 73 disc files. This
0146B0: 20 65 78 74 65 6E 73 69 6F 6E 20 69 73 20 6E 6F extension is no
0146C0: 74 20 70 61 72 74 20 6F 66 20 74 68 65 20 66 69 t part of the fi
0146D0: 72 6D 77 61 72 65 2E 0D 0A 0D 0A 20 20 20 20 20 rmware.....
0146E0: 20 20 34 2E 33 20 54 65 78 74 20 50 65 6E 20 61 4.3 Text Pen a
0146F0: 6E 64 20 50 61 70 65 72 20 49 6E 6B 73 2E 0D 0A nd Paper Inks...
014700: 0D 0A 20 20 20 20 20 20 20 45 61 63 68 20 73 74 .. Each st
014710: 72 65 61 6D 20 68 61 73 20 61 20 70 65 6E 20 61 ream has a pen a
014720: 6E 64 20 61 20 70 61 70 65 72 20 69 6E 6B 20 61 nd a paper ink a
014730: 73 73 6F 63 69 61 74 65 64 20 77 69 74 68 20 69 ssociated with i
014740: 74 2E 20 54 68 65 20 74 65 78 74 20 70 65 6E 0D t. The text pen.
014750: 0A 20 20 20 20 20 20 20 69 6E 6B 20 69 73 20 75 . ink is u
014760: 73 65 64 20 74 6F 20 73 65 74 20 74 68 65 20 66 sed to set the f
014770: 6F 72 65 67 72 6F 75 6E 64 20 70 69 78 65 6C 73 oreground pixels
014780: 20 69 6E 20 20 63 68 61 72 61 63 74 65 72 73 20 in characters
014790: 20 28 73 65 65 20 20 73 65 63 74 69 6F 6E 0D 0A (see section..
0147A0: 20 20 20 20 20 20 20 34 2E 36 29 2E 20 54 68 65 4.6). The
0147B0: 20 74 65 78 74 20 70 61 70 65 72 20 69 6E 6B 20 text paper ink
0147C0: 69 73 20 75 73 65 64 20 20 74 6F 20 20 73 65 74 is used to set
0147D0: 20 20 74 68 65 20 20 62 61 63 6B 67 72 6F 75 6E the backgroun
0147E0: 64 20 20 70 69 78 65 6C 73 20 20 69 6E 0D 0A 20 d pixels in..
0147F0: 20 20 20 20 20 20 63 68 61 72 61 63 74 65 72 73 characters
014800: 20 61 6E 64 20 74 6F 20 63 6C 65 61 72 20 74 68 and to clear th
014810: 65 20 74 65 78 74 20 77 69 6E 64 6F 77 2E 0D 0A e text window...
014820: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 70 65 6E .. The pen
014830: 73 20 61 6E 64 20 70 61 70 65 72 73 20 63 61 6E s and papers can
014840: 20 62 65 20 73 65 74 20 74 6F 20 61 6E 79 20 69 be set to any i
014850: 6E 6B 20 74 68 61 74 20 69 73 20 76 61 6C 69 64 nk that is valid
014860: 20 69 6E 20 74 68 65 20 63 75 72 72 65 6E 74 0D in the current.
014870: 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 6D . screen m
014880: 6F 64 65 20 28 73 65 65 20 73 65 63 74 69 6F 6E ode (see section
014890: 20 36 2E 31 29 2E 20 54 68 65 20 64 65 66 61 75 6.1). The defau
0148A0: 6C 74 20 73 65 74 74 69 6E 67 20 66 6F 72 20 20 lt setting for
0148B0: 61 20 20 73 74 72 65 61 6D 20 20 68 61 73 0D 0A a stream has..
0148C0: 20 20 20 20 20 20 20 74 68 65 20 70 61 70 65 72 the paper
0148D0: 20 73 65 74 20 74 6F 20 69 6E 6B 20 30 20 61 6E set to ink 0 an
0148E0: 64 20 74 68 65 20 70 65 6E 20 73 65 74 20 74 6F d the pen set to
0148F0: 20 69 6E 6B 20 31 2E 20 20 43 68 61 6E 67 69 6E ink 1. Changin
014900: 67 20 20 61 20 20 70 65 6E 20 20 6F 72 0D 0A 20 g a pen or..
014910: 20 20 20 20 20 20 70 61 70 65 72 20 69 6E 6B 20 paper ink
014920: 64 6F 65 73 20 6E 6F 74 20 63 68 61 6E 67 65 20 does not change
014930: 74 68 65 20 73 63 72 65 65 6E 3B 20 69 74 20 6D the screen; it m
014940: 65 72 65 6C 79 20 61 6C 74 65 72 73 20 68 6F 77 erely alters how
014950: 20 20 63 68 61 72 61 63 74 65 72 73 0D 0A 20 20 characters..
014960: 20 20 20 20 20 77 69 6C 6C 20 62 65 20 77 72 69 will be wri
014970: 74 74 65 6E 20 69 6E 20 74 68 65 20 66 75 74 75 tten in the futu
014980: 72 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 34 2E re..... 4.
014990: 34 20 54 65 78 74 20 57 69 6E 64 6F 77 73 2E 0D 4 Text Windows..
0149A0: 0A 20 20 20 20 20 20 20 45 61 63 68 20 73 74 72 . Each str
0149B0: 65 61 6D 20 20 68 61 73 20 20 61 20 20 74 65 78 eam has a tex
0149C0: 74 20 20 77 69 6E 64 6F 77 20 20 61 73 73 6F 63 t window assoc
0149D0: 69 61 74 65 64 20 20 77 69 74 68 20 20 69 74 2E iated with it.
0149E0: 20 20 54 68 69 73 20 20 77 69 6E 64 6F 77 0D 0A This window..
0149F0: 20 20 20 20 20 20 20 73 70 65 63 69 66 69 65 73 specifies
014A00: 20 74 68 65 20 61 72 65 61 20 6F 66 20 74 68 65 the area of the
014A10: 20 73 63 72 65 65 6E 20 77 68 65 72 65 20 20 74 screen where t
014A20: 68 65 20 20 73 74 72 65 61 6D 20 20 69 73 20 20 he stream is
014A30: 70 65 72 6D 69 74 74 65 64 20 20 74 6F 0D 0A 20 permitted to..
014A40: 20 20 20 20 20 20 77 72 69 74 65 20 63 68 61 72 write char
014A50: 61 63 74 65 72 73 2E 20 54 68 69 73 20 20 61 6C acters. This al
014A60: 6C 6F 77 73 20 20 64 69 66 66 65 72 65 6E 74 20 lows different
014A70: 20 73 74 72 65 61 6D 73 20 20 74 6F 20 20 75 73 streams to us
014A80: 65 20 20 64 69 66 66 65 72 65 6E 74 0D 0A 20 20 e different..
014A90: 20 20 20 20 20 70 6F 72 74 69 6F 6E 73 20 6F 66 portions of
014AA0: 20 74 68 65 20 73 63 72 65 65 6E 20 77 69 74 68 the screen with
014AB0: 6F 75 74 20 69 6E 74 65 72 66 65 72 69 6E 67 20 out interfering
014AC0: 77 69 74 68 20 65 61 63 68 20 6F 74 68 65 72 2E with each other.
014AD0: 0D 0A 0D 0A 20 20 20 20 20 20 20 57 69 6E 64 6F .... Windo
014AE0: 77 73 20 61 72 65 20 74 72 69 6D 6D 65 64 20 73 ws are trimmed s
014AF0: 6F 20 74 68 61 74 20 74 68 65 79 20 66 69 74 20 o that they fit
014B00: 77 69 74 68 69 6E 20 74 68 65 20 63 75 72 72 65 within the curre
014B10: 6E 74 20 73 63 72 65 65 6E 20 20 28 77 68 6F 73 nt screen (whos
014B20: 65 0D 0A 20 20 20 20 20 20 20 73 69 7A 65 20 76 e.. size v
014B30: 61 72 69 65 73 20 77 69 74 68 20 74 68 65 20 73 aries with the s
014B40: 63 72 65 65 6E 20 6D 6F 64 65 2C 20 73 65 65 20 creen mode, see
014B50: 73 65 63 74 69 6F 6E 20 36 2E 31 29 2E 20 54 68 section 6.1). Th
014B60: 65 20 73 6D 61 6C 6C 65 73 74 20 20 73 69 7A 65 e smallest size
014B70: 0D 0A 20 20 20 20 20 20 20 61 20 77 69 6E 64 6F .. a windo
014B80: 77 20 61 6C 6C 6F 77 65 64 20 69 73 20 31 20 63 w allowed is 1 c
014B90: 68 61 72 61 63 74 65 72 20 77 69 64 65 20 61 6E haracter wide an
014BA0: 64 20 31 20 63 68 61 72 61 63 74 65 72 20 68 69 d 1 character hi
014BB0: 67 68 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 42 65 gh..... Be
014BC0: 66 6F 72 65 20 77 72 69 74 69 6E 67 20 74 6F 20 fore writing to
014BD0: 74 68 65 20 73 63 72 65 65 6E 20 74 68 65 20 70 the screen the p
014BE0: 6F 73 69 74 69 6F 6E 20 74 6F 20 77 72 69 74 65 osition to write
014BF0: 20 69 73 20 20 66 6F 72 63 65 64 20 20 74 6F 20 is forced to
014C00: 20 6C 69 65 0D 0A 20 20 20 20 20 20 20 69 6E 73 lie.. ins
014C10: 69 64 65 20 74 68 65 20 77 69 6E 64 6F 77 20 28 ide the window (
014C20: 73 65 65 20 73 65 63 74 69 6F 6E 20 34 2E 35 20 see section 4.5
014C30: 62 65 6C 6F 77 29 2E 20 54 68 69 73 20 6D 61 79 below). This may
014C40: 20 63 61 75 73 65 20 20 74 68 65 20 20 77 69 6E cause the win
014C50: 64 6F 77 0D 0A 20 20 20 20 20 20 20 74 6F 20 72 dow.. to r
014C60: 6F 6C 6C 2E 20 4F 74 68 65 72 20 6F 70 65 72 61 oll. Other opera
014C70: 74 69 6F 6E 73 2C 20 73 75 63 68 20 61 73 20 6F tions, such as o
014C80: 62 65 79 69 6E 67 20 63 65 72 74 61 69 6E 20 63 beying certain c
014C90: 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 20 20 61 6C ontrol codes al
014CA0: 73 6F 0D 0A 20 20 20 20 20 20 20 63 61 75 73 65 so.. cause
014CB0: 20 74 68 65 20 77 72 69 74 65 20 70 6F 73 69 74 the write posit
014CC0: 69 6F 6E 20 74 6F 20 62 65 20 66 6F 72 63 65 64 ion to be forced
014CD0: 20 69 6E 73 69 64 65 20 74 68 65 20 77 69 6E 64 inside the wind
014CE0: 6F 77 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 ow..... A
014CF0: 74 65 78 74 20 77 69 6E 64 6F 77 20 77 68 69 63 text window whic
014D00: 68 20 64 6F 65 73 20 6E 6F 74 20 63 6F 76 65 72 h does not cover
014D10: 20 74 68 65 20 77 68 6F 6C 65 20 73 63 72 65 65 the whole scree
014D20: 6E 20 69 73 20 72 6F 6C 6C 65 64 20 20 62 79 20 n is rolled by
014D30: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 66 69 72 the.. fir
014D40: 6D 77 61 72 65 20 63 6F 70 79 69 6E 67 20 61 72 mware copying ar
014D50: 65 61 73 20 6F 66 20 73 63 72 65 65 6E 20 6D 65 eas of screen me
014D60: 6D 6F 72 79 20 61 72 6F 75 6E 64 2E 20 54 68 65 mory around. The
014D70: 72 65 20 69 73 20 6E 6F 20 20 61 6C 74 65 72 6E re is no altern
014D80: 61 74 65 0D 0A 20 20 20 20 20 20 20 6D 65 74 68 ate.. meth
014D90: 6F 64 20 61 76 61 69 6C 61 62 6C 65 2E 20 54 68 od available. Th
014DA0: 69 73 20 6D 61 6B 65 73 20 72 6F 6C 6C 69 6E 67 is makes rolling
014DB0: 20 6C 61 72 67 65 20 77 69 6E 64 6F 77 73 20 61 large windows a
014DC0: 20 66 61 69 72 6C 79 20 20 63 6F 6E 73 75 6D 69 fairly consumi
014DD0: 6E 67 0D 0A 20 20 20 20 20 20 20 70 72 6F 63 65 ng.. proce
014DE0: 73 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 ss..... A
014DF0: 74 65 78 74 20 77 69 6E 64 6F 77 20 77 68 69 63 text window whic
014E00: 68 20 63 6F 76 65 72 73 20 74 68 65 20 77 68 6F h covers the who
014E10: 6C 65 20 73 63 72 65 65 6E 20 69 73 20 20 72 6F le screen is ro
014E20: 6C 6C 65 64 20 20 62 79 20 20 75 73 69 6E 67 20 lled by using
014E30: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 68 61 72 the.. har
014E40: 64 77 61 72 65 20 72 61 74 68 65 72 20 74 68 61 dware rather tha
014E50: 6E 20 63 6F 70 79 69 6E 67 20 61 72 65 61 73 20 n copying areas
014E60: 6F 66 20 6D 65 6D 6F 72 79 2E 20 54 68 65 20 6F of memory. The o
014E70: 66 66 73 65 74 20 6F 66 20 74 68 65 20 20 73 74 ffset of the st
014E80: 61 72 74 0D 0A 20 20 20 20 20 20 20 6F 66 20 74 art.. of t
014E90: 68 65 20 73 63 72 65 65 6E 20 69 6E 20 74 68 65 he screen in the
014EA0: 20 73 63 72 65 65 6E 20 6D 65 6D 6F 72 79 20 63 screen memory c
014EB0: 61 6E 20 62 65 20 73 65 74 20 28 73 65 65 20 20 an be set (see
014EC0: 73 65 63 74 69 6F 6E 20 20 36 2E 34 29 2E 20 20 section 6.4).
014ED0: 42 79 0D 0A 20 20 20 20 20 20 20 63 68 61 6E 67 By.. chang
014EE0: 69 6E 67 20 74 68 69 73 20 6F 66 66 73 65 74 20 ing this offset
014EF0: 62 79 20 2B 38 30 20 6F 72 20 2D 38 30 20 74 68 by +80 or -80 th
014F00: 65 20 77 68 6F 6C 65 20 73 63 72 65 65 6E 20 63 e whole screen c
014F10: 61 6E 20 62 65 20 20 72 6F 6C 6C 65 64 20 20 75 an be rolled u
014F20: 70 0D 0A 20 20 20 20 20 20 20 6F 72 20 64 6F 77 p.. or dow
014F30: 6E 20 62 79 20 61 20 6C 69 6E 65 20 6F 66 20 63 n by a line of c
014F40: 68 61 72 61 63 74 65 72 73 2E 0D 0A 0D 0A 20 20 haracters.....
014F50: 20 20 20 20 20 49 74 20 69 73 20 6F 62 76 69 6F It is obvio
014F60: 75 73 6C 79 20 61 20 67 6F 6F 64 20 69 64 65 61 usly a good idea
014F70: 20 74 6F 20 70 72 65 76 65 6E 74 20 77 69 6E 64 to prevent wind
014F80: 6F 77 73 20 20 74 68 61 74 20 20 61 72 65 20 20 ows that are
014F90: 62 65 69 6E 67 20 20 75 73 65 64 0D 0A 20 20 20 being used..
014FA0: 20 20 20 20 66 72 6F 6D 20 6F 76 65 72 6C 61 70 from overlap
014FB0: 70 69 6E 67 2E 20 49 66 20 74 68 65 79 20 61 72 ping. If they ar
014FC0: 65 20 61 6C 6C 6F 77 65 64 20 74 6F 20 6F 76 65 e allowed to ove
014FD0: 72 6C 61 70 20 74 68 65 6E 20 74 68 65 20 20 70 rlap then the p
014FE0: 6F 72 74 69 6F 6E 20 20 69 6E 0D 0A 20 20 20 20 ortion in..
014FF0: 20 20 20 6D 75 6C 74 69 70 6C 65 20 75 73 65 20 multiple use
015000: 77 69 6C 6C 20 6D 65 72 65 6C 79 20 63 6F 6E 74 will merely cont
015010: 61 69 6E 20 77 68 61 74 65 76 65 72 20 20 77 61 ain whatever wa
015020: 73 20 20 77 72 69 74 74 65 6E 20 20 74 6F 20 20 s written to
015030: 69 74 20 20 6C 61 73 74 2E 0D 0A 20 20 20 20 20 it last...
015040: 20 20 54 68 65 72 65 20 69 73 20 6E 6F 20 70 72 There is no pr
015050: 65 63 65 64 65 6E 63 65 20 6F 66 20 77 69 6E 64 ecedence of wind
015060: 6F 77 73 20 6F 6E 65 20 6F 76 65 72 20 61 6E 6F ows one over ano
015070: 74 68 65 72 2E 20 41 20 77 69 6E 64 6F 77 20 6F ther. A window o
015080: 63 63 75 70 79 69 6E 67 0D 0A 20 20 20 20 20 20 ccupying..
015090: 20 74 68 65 20 77 68 6F 6C 65 20 73 63 72 65 65 the whole scree
0150A0: 6E 20 77 69 6C 6C 20 6F 76 65 72 6C 61 70 20 74 n will overlap t
0150B0: 68 65 20 6F 74 68 65 72 20 77 69 6E 64 6F 77 20 he other window
0150C0: 61 6E 64 20 73 6F 20 69 66 20 20 74 68 69 73 20 and so if this
0150D0: 20 77 69 6E 64 6F 77 0D 0A 20 20 20 20 20 20 20 window..
0150E0: 69 73 20 72 6F 6C 6C 65 64 20 69 74 20 77 69 6C is rolled it wil
0150F0: 6C 20 6D 6F 76 65 20 74 68 65 20 63 6F 6E 74 65 l move the conte
015100: 6E 74 73 20 6F 66 20 74 68 65 20 6F 74 68 65 72 nts of the other
015110: 20 77 69 6E 64 6F 77 73 2E 0D 0A 0D 0A 20 20 20 windows.....
015120: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
015130: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
015140: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
015150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015160: 20 20 70 61 67 65 20 34 2E 32 0D 0A 0D 0A 0D 0A page 4.2......
015170: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ........ T
015180: 68 65 20 64 65 66 61 75 6C 74 20 77 69 6E 64 6F he default windo
015190: 77 73 2C 20 73 65 74 20 75 70 20 61 74 20 45 4D ws, set up at EM
0151A0: 53 20 61 6E 64 20 20 61 66 74 65 72 20 20 63 68 S and after ch
0151B0: 61 6E 67 69 6E 67 20 20 73 63 72 65 65 6E 20 20 anging screen
0151C0: 6D 6F 64 65 2C 0D 0A 20 20 20 20 20 20 20 63 6F mode,.. co
0151D0: 76 65 72 20 74 68 65 20 77 68 6F 6C 65 20 73 63 ver the whole sc
0151E0: 72 65 65 6E 2E 20 41 6C 6C 20 65 69 67 68 74 20 reen. All eight
0151F0: 77 69 6E 64 6F 77 73 20 6F 76 65 72 6C 61 70 2E windows overlap.
015200: 0D 0A 0D 0A 20 20 20 20 20 20 20 34 2E 35 20 54 .... 4.5 T
015210: 68 65 20 43 75 72 72 65 6E 74 20 70 6F 73 69 74 he Current posit
015220: 69 6F 6E 20 61 6E 64 20 74 68 65 20 43 75 72 73 ion and the Curs
015230: 6F 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 61 or..... Ea
015240: 63 68 20 73 74 72 65 61 6D 20 68 61 73 20 61 20 ch stream has a
015250: 63 75 72 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E current position
015260: 20 61 73 73 6F 63 69 61 74 65 64 20 77 69 74 68 associated with
015270: 20 69 74 2E 20 54 68 69 73 20 20 69 73 20 20 77 it. This is w
015280: 68 65 72 65 0D 0A 20 20 20 20 20 20 20 74 68 65 here.. the
015290: 20 6E 65 78 74 20 63 68 61 72 61 63 74 65 72 20 next character
0152A0: 74 6F 20 62 65 20 70 72 69 6E 74 65 64 20 6F 6E to be printed on
0152B0: 20 20 74 68 65 20 20 73 63 72 65 65 6E 20 20 69 the screen i
0152C0: 73 20 20 65 78 70 65 63 74 65 64 20 20 74 6F 20 s expected to
0152D0: 20 62 65 0D 0A 20 20 20 20 20 20 20 70 6C 61 63 be.. plac
0152E0: 65 64 2E 20 48 6F 77 65 76 65 72 2C 20 69 66 2C ed. However, if,
0152F0: 20 77 68 65 6E 20 61 20 63 68 61 72 61 63 74 65 when a characte
015300: 72 20 69 73 20 74 6F 20 62 65 20 20 70 72 69 6E r is to be prin
015310: 74 65 64 2C 20 20 74 68 65 20 20 63 75 72 72 65 ted, the curre
015320: 6E 74 0D 0A 0D 0A 20 20 20 20 20 20 20 70 6F 73 nt.... pos
015330: 69 74 69 6F 6E 20 69 73 20 66 6F 75 6E 64 20 74 ition is found t
015340: 6F 20 6C 69 65 20 6F 75 74 73 69 64 65 20 74 68 o lie outside th
015350: 65 20 74 65 78 74 20 77 69 6E 64 6F 77 20 20 74 e text window t
015360: 68 65 6E 20 20 69 74 20 20 69 73 20 20 66 6F 72 hen it is for
015370: 63 65 64 0D 0A 20 20 20 20 20 20 20 69 6E 73 69 ced.. insi
015380: 64 65 2E 20 54 68 65 20 66 6F 6C 6C 6F 77 69 6E de. The followin
015390: 67 20 73 74 65 70 73 20 61 72 65 20 61 70 70 6C g steps are appl
0153A0: 69 65 64 20 69 6E 20 74 75 72 6E 20 74 6F 20 66 ied in turn to f
0153B0: 6F 72 63 65 20 20 74 68 65 20 20 63 75 72 72 65 orce the curre
0153C0: 6E 74 0D 0A 20 20 20 20 20 20 20 70 6F 73 69 74 nt.. posit
0153D0: 69 6F 6E 20 69 6E 73 69 64 65 20 74 68 65 20 77 ion inside the w
0153E0: 69 6E 64 6F 77 3A 0D 0A 0D 0A 20 20 20 20 20 20 indow:....
0153F0: 20 20 20 20 20 20 20 20 20 20 31 2F 20 49 66 20 1/ If
015400: 74 68 65 20 63 75 72 72 65 6E 74 20 70 6F 73 69 the current posi
015410: 74 69 6F 6E 20 69 73 20 6C 65 66 74 20 6F 66 20 tion is left of
015420: 74 68 65 20 65 64 67 65 20 6F 66 20 74 68 65 20 the edge of the
015430: 20 77 69 6E 64 6F 77 0D 0A 20 20 20 20 20 20 20 window..
015440: 20 20 20 20 20 20 20 20 20 74 68 65 6E 20 69 74 then it
015450: 20 69 73 20 6D 6F 76 65 64 20 74 6F 20 74 68 65 is moved to the
015460: 20 72 69 67 68 74 20 65 64 67 65 20 6F 66 20 74 right edge of t
015470: 68 65 20 77 69 6E 64 6F 77 20 61 6E 64 20 20 75 he window and u
015480: 70 20 20 6F 6E 65 0D 0A 20 20 20 20 20 20 20 20 p one..
015490: 20 20 20 20 20 20 20 20 6C 69 6E 65 2E 0D 0A 0D line....
0154A0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0154B0: 20 32 2F 20 49 66 20 74 68 65 20 63 75 72 72 65 2/ If the curre
0154C0: 6E 74 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 72 nt position is r
0154D0: 69 67 68 74 20 6F 66 20 74 68 65 20 72 69 67 68 ight of the righ
0154E0: 74 20 65 64 67 65 20 6F 66 20 20 74 68 65 0D 0A t edge of the..
0154F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015500: 77 69 6E 64 6F 77 20 74 68 65 6E 20 69 74 20 69 window then it i
015510: 73 20 6D 6F 76 65 64 20 74 6F 20 74 68 65 20 6C s moved to the l
015520: 65 66 74 20 65 64 67 65 20 6F 66 20 20 74 68 65 eft edge of the
015530: 20 20 77 69 6E 64 6F 77 20 20 61 6E 64 0D 0A 20 window and..
015540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 d
015550: 6F 77 6E 20 6F 6E 65 20 6C 69 6E 65 2E 0D 0A 0D own one line....
015560: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
015570: 20 33 2F 20 49 66 20 74 68 65 20 63 75 72 72 65 3/ If the curre
015580: 6E 74 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 6E nt position is n
015590: 6F 77 20 61 62 6F 76 65 20 74 68 65 20 74 6F 70 ow above the top
0155A0: 20 6C 69 6E 65 20 20 6F 66 20 20 74 68 65 0D 0A line of the..
0155B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0155C0: 77 69 6E 64 6F 77 20 74 68 65 6E 20 69 74 20 69 window then it i
0155D0: 73 20 6D 6F 76 65 64 20 74 6F 20 74 68 65 20 74 s moved to the t
0155E0: 6F 70 20 6C 69 6E 65 20 6F 66 20 74 68 65 20 77 op line of the w
0155F0: 69 6E 64 6F 77 20 61 6E 64 20 74 68 65 0D 0A 20 indow and the..
015600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 c
015610: 6F 6E 74 65 6E 74 73 20 6F 66 20 74 68 65 20 77 ontents of the w
015620: 69 6E 64 6F 77 20 61 72 65 20 72 6F 6C 6C 65 64 indow are rolled
015630: 20 64 6F 77 6E 20 6F 6E 65 20 6C 69 6E 65 2E 0D down one line..
015640: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
015650: 20 20 20 34 2F 20 49 66 20 74 68 65 20 63 75 72 4/ If the cur
015660: 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 69 73 rent position is
015670: 20 6E 6F 77 20 62 65 6C 6F 77 20 74 68 65 20 20 now below the
015680: 62 6F 74 74 6F 6D 20 20 6C 69 6E 65 20 20 6F 66 bottom line of
015690: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0156A0: 20 20 74 68 65 20 77 69 6E 64 6F 77 20 74 68 65 the window the
0156B0: 6E 20 69 74 20 69 73 20 6D 6F 76 65 64 20 74 6F n it is moved to
0156C0: 20 74 68 65 20 62 6F 74 74 6F 6D 20 6C 69 6E 65 the bottom line
0156D0: 20 6F 66 20 74 68 65 20 20 77 69 6E 64 6F 77 0D of the window.
0156E0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0156F0: 20 61 6E 64 20 74 68 65 20 63 6F 6E 74 65 6E 74 and the content
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: 73 20 6F 66 20 74 68 65 20 77 69 6E 64 6F 77 20 s of the window
015810: 61 72 65 20 72 6F 6C 6C 65 64 20 75 70 20 6F 6E are rolled up on
015820: 65 20 6C 69 6E 65 2E 0D 0A 0D 0A 20 20 20 20 20 e line.....
015830: 20 20 57 68 65 6E 20 74 68 65 20 63 75 72 73 6F When the curso
015840: 72 20 69 73 20 65 6E 61 62 6C 65 64 2C 20 74 68 r is enabled, th
015850: 65 20 63 75 72 72 65 6E 74 20 20 70 6F 73 69 74 e current posit
015860: 69 6F 6E 20 20 69 73 20 20 6D 61 72 6B 65 64 20 ion is marked
015870: 20 62 79 20 20 74 68 65 0D 0A 20 20 20 20 20 20 by the..
015880: 20 63 75 72 73 6F 72 20 62 6C 6F 62 2E 20 48 6F cursor blob. Ho
015890: 77 65 76 65 72 2C 20 62 65 66 6F 72 65 20 70 6C wever, before pl
0158A0: 61 63 69 6E 67 20 74 68 65 20 63 75 72 73 6F 72 acing the cursor
0158B0: 20 62 6C 6F 62 20 20 6F 6E 20 20 74 68 65 20 20 blob on the
0158C0: 73 63 72 65 65 6E 2C 0D 0A 20 20 20 20 20 20 20 screen,..
0158D0: 74 68 65 20 63 75 72 72 65 6E 74 20 70 6F 73 69 the current posi
0158E0: 74 69 6F 6E 20 69 73 20 66 6F 72 63 65 64 20 74 tion is forced t
0158F0: 6F 20 6C 69 65 20 69 6E 73 69 64 65 20 74 68 65 o lie inside the
015900: 20 63 75 72 72 65 6E 74 20 20 77 69 6E 64 6F 77 current window
015910: 20 20 6A 75 73 74 0D 0A 20 20 20 20 20 20 20 61 just.. a
015920: 73 20 69 74 20 69 73 20 62 65 66 6F 72 65 20 61 s it is before a
015930: 20 63 68 61 72 61 63 74 65 72 20 69 73 20 70 6C character is pl
015940: 61 63 65 64 20 6F 6E 20 74 68 65 20 73 63 72 65 aced on the scre
015950: 65 6E 2E 20 20 54 68 69 73 20 20 6D 61 79 20 20 en. This may
015960: 63 61 75 73 65 0D 0A 20 20 20 20 20 20 20 74 68 cause.. th
015970: 65 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 69 e current positi
015980: 6F 6E 20 74 6F 20 6D 6F 76 65 2E 0D 0A 0D 0A 20 on to move.....
015990: 20 20 20 20 20 20 49 66 20 74 68 65 20 63 75 72 If the cur
0159A0: 73 6F 72 20 69 73 20 64 69 73 61 62 6C 65 64 20 sor is disabled
0159B0: 74 68 65 6E 20 74 68 65 20 63 75 72 72 65 6E 74 then the current
0159C0: 20 70 6F 73 69 74 69 6F 6E 20 20 6D 61 79 20 20 position may
0159D0: 6C 69 65 20 20 6F 75 74 73 69 64 65 0D 0A 20 20 lie outside..
0159E0: 20 20 20 20 20 74 68 65 20 77 69 6E 64 6F 77 20 the window
0159F0: 61 6E 64 20 69 74 20 77 69 6C 6C 20 6E 6F 74 20 and it will not
015A00: 62 65 20 66 6F 72 63 65 64 20 20 69 6E 73 69 64 be forced insid
015A10: 65 20 20 74 68 65 20 20 77 69 6E 64 6F 77 20 20 e the window
015A20: 75 6E 74 69 6C 2C 20 20 66 6F 72 0D 0A 20 20 20 until, for..
015A30: 20 20 20 20 65 78 61 6D 70 6C 65 2C 20 61 20 63 example, a c
015A40: 68 61 72 61 63 74 65 72 20 69 73 20 70 72 69 6E haracter is prin
015A50: 74 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ted..... T
015A60: 68 65 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 he current posit
015A70: 69 6F 6E 20 63 61 6E 20 62 65 20 20 63 68 61 6E ion can be chan
015A80: 67 65 64 20 20 64 69 72 65 63 74 6C 79 20 20 28 ged directly (
015A90: 62 79 20 20 63 61 6C 6C 69 6E 67 20 20 54 58 54 by calling TXT
015AA0: 20 20 53 45 54 0D 0A 20 20 20 20 20 20 20 43 55 SET.. CU
015AB0: 52 53 4F 52 2C 20 54 58 54 20 53 45 54 20 52 4F RSOR, TXT SET RO
015AC0: 57 20 6F 72 20 54 58 54 20 53 45 54 20 43 4F 4C W or TXT SET COL
015AD0: 55 4D 4E 29 20 6F 72 20 62 79 20 73 65 6E 64 69 UMN) or by sendi
015AE0: 6E 67 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 ng control codes
015AF0: 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 74 68 65 to.. the
015B00: 20 54 65 78 74 20 56 44 55 2E 20 54 68 65 20 6C Text VDU. The l
015B10: 6F 63 61 74 69 6F 6E 20 74 68 65 20 63 75 72 72 ocation the curr
015B20: 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 ent position is
015B30: 20 6D 6F 76 65 64 20 20 74 6F 20 20 69 73 20 20 moved to is
015B40: 6E 6F 74 0D 0A 20 20 20 20 20 20 20 66 6F 72 63 not.. forc
015B50: 65 64 20 69 6E 73 69 64 65 20 74 68 65 20 77 69 ed inside the wi
015B60: 6E 64 6F 77 20 69 6D 6D 65 64 69 61 74 65 6C 79 ndow immediately
015B70: 2C 20 62 75 74 20 6F 6E 6C 79 20 77 68 65 6E 20 , but only when
015B80: 74 68 65 20 77 69 6E 64 6F 77 20 20 69 73 20 20 the window is
015B90: 74 6F 0D 0A 20 20 20 20 20 20 20 62 65 20 77 72 to.. be wr
015BA0: 69 74 74 65 6E 20 74 6F 2C 20 61 73 20 64 65 73 itten to, as des
015BB0: 63 72 69 62 65 64 20 61 62 6F 76 65 2E 20 54 68 cribed above. Th
015BC0: 69 73 20 61 6C 6C 6F 77 73 20 74 68 65 20 63 75 is allows the cu
015BD0: 72 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 74 rrent position t
015BE0: 6F 0D 0A 20 20 20 20 20 20 20 62 65 20 63 68 61 o.. be cha
015BF0: 6E 67 65 64 20 62 79 20 6D 6F 76 69 6E 67 20 76 nged by moving v
015C00: 69 61 20 61 20 70 6F 73 69 74 69 6F 6E 20 6F 75 ia a position ou
015C10: 74 73 69 64 65 20 74 68 65 20 77 69 6E 64 6F 77 tside the window
015C20: 2C 20 69 66 20 72 65 71 75 69 72 65 64 2E 0D 0A , if required...
015C30: 0D 0A 20 20 20 20 20 20 20 54 68 65 72 65 20 61 .. There a
015C40: 72 65 20 74 77 6F 20 77 61 79 73 20 74 6F 20 64 re two ways to d
015C50: 69 73 61 62 6C 65 20 74 68 65 20 63 75 72 73 6F isable the curso
015C60: 72 20 61 6E 64 20 70 72 65 76 65 6E 74 20 74 68 r and prevent th
015C70: 65 20 20 63 75 72 73 6F 72 20 20 62 6C 6F 62 0D e cursor blob.
015C80: 0A 20 20 20 20 20 20 20 66 72 6F 6D 20 61 70 70 . from app
015C90: 65 61 72 69 6E 67 20 6F 6E 20 74 68 65 20 73 63 earing on the sc
015CA0: 72 65 65 6E 2E 20 54 68 65 20 66 69 72 73 74 2C reen. The first,
015CB0: 20 63 75 72 73 6F 72 20 20 6F 6E 2F 6F 66 66 2C cursor on/off,
015CC0: 20 20 69 73 20 20 69 6E 74 65 6E 64 65 64 0D 0A is intended..
015CD0: 20 20 20 20 20 20 20 66 6F 72 20 75 73 65 20 62 for use b
015CE0: 79 20 73 79 73 74 65 6D 73 20 70 72 6F 67 72 61 y systems progra
015CF0: 6D 73 2E 20 54 68 69 73 20 69 73 20 75 73 65 64 ms. This is used
015D00: 20 69 6E 20 42 41 53 49 43 2C 20 20 66 6F 72 20 in BASIC, for
015D10: 20 65 78 61 6D 70 6C 65 2C 20 20 74 6F 0D 0A 20 example, to..
015D20: 20 20 20 20 20 20 68 69 64 65 20 20 74 68 65 20 hide the
015D30: 20 63 75 72 73 6F 72 20 20 75 6E 6C 65 73 73 20 cursor unless
015D40: 20 69 6E 70 75 74 20 20 69 73 20 20 65 78 70 65 input is expe
015D50: 63 74 65 64 2E 20 20 54 68 65 20 20 73 65 63 6F cted. The seco
015D60: 6E 64 2C 20 20 20 63 75 72 73 6F 72 0D 0A 20 20 nd, cursor..
015D70: 20 20 20 20 20 65 6E 61 62 6C 65 2F 64 69 73 61 enable/disa
015D80: 62 6C 65 2C 20 69 73 20 69 6E 74 65 6E 64 65 64 ble, is intended
015D90: 20 66 6F 72 20 75 73 65 20 62 79 20 74 68 65 20 for use by the
015DA0: 75 73 65 72 2E 20 54 68 65 20 63 75 72 73 6F 72 user. The cursor
015DB0: 20 62 6C 6F 62 20 20 77 69 6C 6C 0D 0A 20 20 20 blob will..
015DC0: 20 20 20 20 6F 6E 6C 79 20 62 65 20 70 6C 61 63 only be plac
015DD0: 65 64 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E ed on the screen
015DE0: 20 69 66 20 69 74 20 69 73 20 62 6F 74 68 20 6F if it is both o
015DF0: 6E 20 61 6E 64 20 65 6E 61 62 6C 65 64 2E 0D 0A n and enabled...
015E00: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E 20 20 56 .... In V
015E10: 31 2E 31 20 20 66 69 72 6D 77 61 72 65 20 20 69 1.1 firmware i
015E20: 74 20 20 69 73 20 20 70 6F 73 73 69 62 6C 65 20 t is possible
015E30: 20 74 6F 20 20 20 69 6E 74 65 72 72 6F 67 61 74 to interrogat
015E40: 65 20 20 20 74 68 65 20 20 20 63 75 72 72 65 6E e the curren
015E50: 74 0D 0A 20 20 20 20 20 20 20 65 6E 61 62 6C 65 t.. enable
015E60: 2F 64 69 73 61 62 6C 65 20 73 74 61 74 65 73 20 /disable states
015E70: 6F 66 20 74 68 65 20 56 44 55 20 61 6E 64 20 63 of the VDU and c
015E80: 75 72 73 6F 72 20 20 66 6F 72 20 20 74 68 65 20 ursor for the
015E90: 20 63 75 72 72 65 6E 74 20 20 73 74 72 65 61 6D current stream
015EA0: 0D 0A 20 20 20 20 20 20 20 75 73 69 6E 67 20 54 .. using T
015EB0: 58 54 20 41 53 4B 20 53 54 41 54 45 2E 0D 0A 0D XT ASK STATE....
015EC0: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
015ED0: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
015EE0: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
015EF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015F00: 20 20 20 20 20 20 20 20 70 61 67 65 20 34 2E 33 page 4.3
015F10: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
015F20: 20 20 20 54 68 65 20 63 75 72 73 6F 72 20 62 6C The cursor bl
015F30: 6F 62 20 69 73 20 6E 6F 72 6D 61 6C 6C 79 20 61 ob is normally a
015F40: 6E 20 69 6E 76 65 72 73 65 20 70 61 74 63 68 2E n inverse patch.
015F50: 20 20 54 68 65 20 20 63 68 61 72 61 63 74 65 72 The character
015F60: 20 20 61 74 20 20 74 68 65 0D 0A 20 20 20 20 20 at the..
015F70: 20 20 63 75 72 73 6F 72 20 70 6F 73 69 74 69 6F cursor positio
015F80: 6E 20 69 73 20 64 69 73 70 6C 61 79 65 64 20 77 n is displayed w
015F90: 69 74 68 20 74 68 65 20 74 65 78 74 20 70 65 6E ith the text pen
015FA0: 20 61 6E 64 20 70 61 70 65 72 20 69 6E 6B 20 72 and paper ink r
015FB0: 65 76 65 72 73 65 64 2E 0D 0A 20 20 20 20 20 20 eversed...
015FC0: 20 54 68 69 73 20 6D 61 6B 65 73 20 69 74 20 65 This makes it e
015FD0: 61 73 79 20 74 6F 20 72 65 73 74 6F 72 65 20 20 asy to restore
015FE0: 74 68 65 20 20 6F 72 69 67 69 6E 61 6C 20 20 66 the original f
015FF0: 6F 72 6D 20 20 6F 66 20 20 74 68 65 20 20 63 68 orm of the ch
016000: 61 72 61 63 74 65 72 0D 0A 20 20 20 20 20 20 20 aracter..
016010: 70 6F 73 69 74 69 6F 6E 20 69 66 20 74 68 65 20 position if the
016020: 63 75 72 73 6F 72 20 69 73 20 6D 6F 76 65 64 2E cursor is moved.
016030: 20 49 74 20 69 73 20 70 6F 73 73 69 62 6C 65 20 It is possible
016040: 66 6F 72 20 74 68 65 20 75 73 65 72 20 74 6F 20 for the user to
016050: 20 61 6C 74 65 72 0D 0A 20 20 20 20 20 20 20 74 alter.. t
016060: 68 65 20 66 6F 72 6D 20 6F 66 20 74 68 65 20 63 he form of the c
016070: 75 72 73 6F 72 20 62 6C 6F 62 2C 20 69 66 20 72 ursor blob, if r
016080: 65 71 75 69 72 65 64 2C 20 62 79 20 63 68 61 6E equired, by chan
016090: 67 69 6E 67 20 74 68 65 20 69 6E 64 69 72 65 63 ging the indirec
0160A0: 74 69 6F 6E 73 0D 0A 20 20 20 20 20 20 20 54 58 tions.. TX
0160B0: 54 20 44 52 41 57 20 43 55 52 53 4F 52 20 61 6E T DRAW CURSOR an
0160C0: 64 20 54 58 54 20 55 4E 44 52 41 57 20 43 55 52 d TXT UNDRAW CUR
0160D0: 53 4F 52 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 34 SOR..... 4
0160E0: 2E 36 20 43 68 61 72 61 63 74 65 72 73 20 61 6E .6 Characters an
0160F0: 64 20 4D 61 74 72 69 63 65 73 2E 0D 0A 20 20 20 d Matrices...
016100: 20 20 20 20 41 20 63 68 61 72 61 63 74 65 72 20 A character
016110: 69 73 20 64 69 73 70 6C 61 79 65 64 20 6F 6E 20 is displayed on
016120: 74 68 65 20 73 63 72 65 65 6E 20 69 6E 20 61 6E the screen in an
016130: 20 61 72 65 61 20 38 20 20 70 69 78 65 6C 73 20 area 8 pixels
016140: 20 28 64 6F 74 73 20 20 6F 6E 0D 0A 20 20 20 20 (dots on..
016150: 20 20 20 74 68 65 20 6D 6F 6E 69 74 6F 72 29 20 the monitor)
016160: 77 69 64 65 20 61 6E 64 20 38 20 20 70 69 78 65 wide and 8 pixe
016170: 6C 73 20 20 68 69 67 68 2E 20 20 54 68 75 73 20 ls high. Thus
016180: 20 74 68 65 20 20 6D 61 78 69 6D 75 6D 20 20 6E the maximum n
016190: 75 6D 62 65 72 20 20 6F 66 0D 0A 20 20 20 20 20 umber of..
0161A0: 20 20 63 68 61 72 61 63 74 65 72 73 20 6F 6E 20 characters on
0161B0: 74 68 65 20 73 63 72 65 65 6E 20 64 65 70 65 6E the screen depen
0161C0: 64 73 20 75 70 6F 6E 20 74 68 65 20 73 63 72 65 ds upon the scre
0161D0: 65 6E 20 6D 6F 64 65 2C 20 28 73 65 65 20 73 65 en mode, (see se
0161E0: 63 74 69 6F 6E 20 36 2E 0D 0A 20 20 20 20 20 20 ction 6...
0161F0: 20 31 29 2E 20 45 61 63 68 20 63 68 61 72 61 63 1). Each charac
016200: 74 65 72 20 68 61 73 20 61 20 20 6D 61 74 72 69 ter has a matri
016210: 78 20 20 77 68 69 63 68 20 20 69 73 20 20 61 6E x which is an
016220: 20 20 38 20 20 62 79 74 65 20 20 76 65 63 74 6F 8 byte vecto
016230: 72 20 20 74 68 61 74 0D 0A 20 20 20 20 20 20 20 r that..
016240: 73 70 65 63 69 66 69 65 73 20 74 68 65 20 73 68 specifies the sh
016250: 61 70 65 20 6F 66 20 74 68 65 20 63 68 61 72 61 ape of the chara
016260: 63 74 65 72 2E 20 54 68 65 20 66 69 72 73 74 20 cter. The first
016270: 62 79 74 65 20 20 6F 66 20 20 74 68 65 20 20 20 byte of the
016280: 76 65 63 74 6F 72 0D 0A 20 20 20 20 20 20 20 72 vector.. r
016290: 65 66 65 72 73 20 74 6F 20 74 68 65 20 74 6F 70 efers to the top
0162A0: 20 6C 69 6E 65 20 6F 66 20 74 68 65 20 63 68 61 line of the cha
0162B0: 72 61 63 74 65 72 20 20 61 6E 64 20 20 74 68 65 racter and the
0162C0: 20 20 6C 61 73 74 20 20 62 79 74 65 20 20 74 6F last byte to
0162D0: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 62 6F the.. bo
0162E0: 74 74 6F 6D 20 6C 69 6E 65 20 6F 66 20 74 68 65 ttom line of the
0162F0: 20 63 68 61 72 61 63 74 65 72 2E 20 54 68 65 20 character. The
016300: 6D 6F 73 74 20 73 69 67 6E 69 66 69 63 61 6E 74 most significant
016310: 20 62 69 74 20 6F 66 20 20 61 20 20 62 79 74 65 bit of a byte
016320: 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 in.. the
016330: 20 76 65 63 74 6F 72 20 72 65 66 65 72 73 20 74 vector refers t
016340: 6F 20 74 68 65 20 6C 65 66 74 6D 6F 73 74 20 70 o the leftmost p
016350: 69 78 65 6C 20 6F 6E 20 61 20 6C 69 6E 65 20 6F ixel on a line o
016360: 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 f the character
016370: 61 6E 64 0D 0A 20 20 20 20 20 20 20 74 68 65 20 and.. the
016380: 6C 65 61 73 74 20 73 69 67 6E 69 66 69 63 61 6E least significan
016390: 74 20 62 69 74 20 72 65 66 65 72 73 20 74 6F 20 t bit refers to
0163A0: 74 68 65 20 72 69 67 68 74 6D 6F 73 74 20 70 69 the rightmost pi
0163B0: 78 65 6C 20 6F 6E 20 61 20 20 6C 69 6E 65 20 20 xel on a line
0163C0: 6F 66 0D 0A 20 20 20 20 20 20 20 74 68 65 20 63 of.. the c
0163D0: 68 61 72 61 63 74 65 72 2E 20 49 66 20 61 20 62 haracter. If a b
0163E0: 69 74 20 69 6E 20 74 68 65 20 6D 61 74 72 69 78 it in the matrix
0163F0: 20 69 73 20 73 65 74 20 74 68 65 6E 20 74 68 65 is set then the
016400: 20 70 69 78 65 6C 20 69 73 20 69 6E 20 20 74 68 pixel is in th
016410: 65 0D 0A 20 20 20 20 20 20 20 66 6F 72 65 67 72 e.. foregr
016420: 6F 75 6E 64 2E 20 49 66 20 61 20 62 69 74 20 69 ound. If a bit i
016430: 73 20 63 6C 65 61 72 20 74 68 65 6E 20 74 68 65 s clear then the
016440: 20 70 69 78 65 6C 20 69 73 20 69 6E 20 74 68 65 pixel is in the
016450: 20 62 61 63 6B 67 72 6F 75 6E 64 2E 0D 0A 0D 0A background.....
016460: 20 20 20 20 20 20 20 41 20 66 6F 72 65 67 72 6F A foregro
016470: 75 6E 64 20 70 69 78 65 6C 20 69 6E 20 74 68 65 und pixel in the
016480: 20 63 68 61 72 61 63 74 65 72 20 69 73 20 61 6C character is al
016490: 77 61 79 73 20 73 65 74 20 74 6F 20 74 68 65 20 ways set to the
0164A0: 70 65 6E 20 69 6E 6B 2E 20 20 54 68 65 0D 0A 20 pen ink. The..
0164B0: 20 20 20 20 20 20 74 72 65 61 74 6D 65 6E 74 20 treatment
0164C0: 6F 66 20 61 20 62 61 63 6B 67 72 6F 75 6E 64 20 of a background
0164D0: 70 69 78 65 6C 20 64 65 70 65 6E 64 73 20 6F 6E pixel depends on
0164E0: 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 77 the character w
0164F0: 72 69 74 65 20 6D 6F 64 65 20 6F 66 0D 0A 20 20 rite mode of..
016500: 20 20 20 20 20 74 68 65 20 56 44 55 2E 20 49 6E the VDU. In
016510: 20 74 68 65 20 64 65 66 61 75 6C 74 20 6D 6F 64 the default mod
016520: 65 2C 20 6F 70 61 71 75 65 20 6D 6F 64 65 2C 20 e, opaque mode,
016530: 62 61 63 6B 67 72 6F 75 6E 64 20 70 69 78 65 6C background pixel
016540: 73 20 20 61 72 65 20 20 73 65 74 0D 0A 20 20 20 s are set..
016550: 20 20 20 20 74 6F 20 74 68 65 20 70 61 70 65 72 to the paper
016560: 20 69 6E 6B 2E 20 54 68 65 72 65 20 69 73 20 61 ink. There is a
016570: 6E 6F 74 68 65 72 20 6D 6F 64 65 2C 20 74 72 61 nother mode, tra
016580: 6E 73 70 61 72 65 6E 74 20 20 6D 6F 64 65 2C 20 nsparent mode,
016590: 20 69 6E 20 20 77 68 69 63 68 0D 0A 20 20 20 20 in which..
0165A0: 20 20 20 74 68 65 20 62 61 63 6B 67 72 6F 75 6E the backgroun
0165B0: 64 20 70 69 78 65 6C 73 20 61 72 65 20 6E 6F 74 d pixels are not
0165C0: 20 61 6C 74 65 72 65 64 2E 20 54 68 75 73 20 69 altered. Thus i
0165D0: 6E 20 74 72 61 6E 73 70 61 72 65 6E 74 20 20 6D n transparent m
0165E0: 6F 64 65 2C 20 20 74 68 65 0D 0A 20 20 20 20 20 ode, the..
0165F0: 20 20 63 68 61 72 61 63 74 65 72 20 69 73 20 77 character is w
016600: 72 69 74 74 65 6E 20 6F 76 65 72 20 74 68 65 20 ritten over the
016610: 74 6F 70 20 20 6F 66 20 20 74 68 65 20 20 63 75 top of the cu
016620: 72 72 65 6E 74 20 20 63 6F 6E 74 65 6E 74 73 20 rrent contents
016630: 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 of the..
016640: 20 73 63 72 65 65 6E 2E 20 54 68 69 73 20 69 73 screen. This is
016650: 20 75 73 65 66 75 6C 20 66 6F 72 20 61 6E 6E 6F useful for anno
016660: 74 61 74 69 6E 67 20 70 69 63 74 75 72 65 73 20 tating pictures
016670: 6F 72 20 67 65 6E 65 72 61 74 69 6E 67 20 63 6F or generating co
016680: 6D 70 6F 73 69 74 65 0D 0A 20 20 20 20 20 20 20 mposite..
016690: 63 68 61 72 61 63 74 65 72 73 2E 0D 0A 0D 0A 20 characters.....
0166A0: 20 20 20 20 20 20 54 68 65 20 54 65 78 74 20 56 The Text V
0166B0: 44 55 20 69 73 20 63 61 70 61 62 6C 65 20 6F 66 DU is capable of
0166C0: 20 70 72 69 6E 74 69 6E 67 20 32 35 36 20 64 69 printing 256 di
0166D0: 66 66 65 72 65 6E 74 20 63 68 61 72 61 63 74 65 fferent characte
0166E0: 72 73 2C 20 61 6C 74 68 6F 75 67 68 0D 0A 20 20 rs, although..
0166F0: 20 20 20 20 20 73 70 65 63 69 61 6C 20 65 66 66 special eff
016700: 6F 72 74 20 69 73 20 72 65 71 75 69 72 65 64 20 ort is required
016710: 74 6F 20 70 72 69 6E 74 20 74 68 65 20 66 69 72 to print the fir
016720: 73 74 20 33 32 20 63 68 61 72 61 63 74 65 72 73 st 32 characters
016730: 20 77 68 69 63 68 20 20 61 72 65 0D 0A 20 20 20 which are..
016740: 20 20 20 20 75 73 75 61 6C 6C 79 20 69 6E 74 65 usually inte
016750: 72 70 72 65 74 65 64 20 61 73 20 63 6F 6E 74 72 rpreted as contr
016760: 6F 6C 20 63 6F 64 65 73 2E 20 54 68 65 20 6D 61 ol codes. The ma
016770: 74 72 69 63 65 73 20 66 6F 72 20 74 68 65 20 20 trices for the
016780: 63 68 61 72 61 63 74 65 72 73 0D 0A 20 20 20 20 characters..
016790: 20 20 20 61 72 65 20 6E 6F 72 6D 61 6C 6C 79 20 are normally
0167A0: 73 74 6F 72 65 64 20 69 6E 20 74 68 65 20 52 4F stored in the RO
0167B0: 4D 20 62 75 74 20 74 68 65 20 75 73 65 72 20 6D M but the user m
0167C0: 61 79 20 61 72 72 61 6E 67 65 20 66 6F 72 20 61 ay arrange for a
0167D0: 6E 79 20 6E 75 6D 62 65 72 0D 0A 20 20 20 20 20 ny number..
0167E0: 20 20 6F 66 20 74 68 65 20 63 68 61 72 61 63 74 of the charact
0167F0: 65 72 73 20 74 6F 20 68 61 76 65 20 6D 61 74 72 ers to have matr
016800: 69 63 65 73 20 73 74 6F 72 65 64 20 69 6E 20 52 ices stored in R
016810: 41 4D 20 77 68 65 72 65 20 74 68 65 79 20 20 6D AM where they m
016820: 61 79 20 20 74 68 65 6E 0D 0A 20 20 20 20 20 20 ay then..
016830: 20 62 65 20 61 6C 74 65 72 65 64 2E 20 54 68 65 be altered. The
016840: 20 64 65 66 61 75 6C 74 20 73 65 74 74 69 6E 67 default setting
016850: 2C 20 61 74 20 45 4D 53 2C 20 69 73 20 74 6F 20 , at EMS, is to
016860: 68 61 76 65 20 61 6C 6C 20 20 74 68 65 20 20 6D have all the m
016870: 61 74 72 69 63 65 73 0D 0A 20 20 20 20 20 20 20 atrices..
016880: 69 6E 20 52 4F 4D 2E 20 28 42 41 53 49 43 20 74 in ROM. (BASIC t
016890: 61 6B 65 73 20 73 70 65 63 69 61 6C 20 61 63 74 akes special act
0168A0: 69 6F 6E 20 64 75 72 69 6E 67 20 69 74 73 20 6F ion during its o
0168B0: 77 6E 20 20 69 6E 69 74 69 61 6C 69 7A 61 74 69 wn initializati
0168C0: 6F 6E 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 63 on to.. c
0168D0: 72 65 61 74 65 20 31 36 20 27 75 73 65 72 20 64 reate 16 'user d
0168E0: 65 66 69 6E 65 64 27 20 20 6D 61 74 72 69 63 65 efined' matrice
0168F0: 73 2E 29 20 20 54 68 65 20 20 64 65 66 61 75 6C s.) The defaul
016900: 74 20 20 63 68 61 72 61 63 74 65 72 20 20 73 65 t character se
016910: 74 20 20 69 73 0D 0A 20 20 20 20 20 20 20 64 65 t is.. de
016920: 73 63 72 69 62 65 64 20 69 6E 20 41 70 70 65 6E scribed in Appen
016930: 64 69 78 20 56 31 2E 0D 0A 0D 0A 20 20 20 20 20 dix V1.....
016940: 20 20 57 68 65 6E 20 74 68 65 20 75 73 65 72 20 When the user
016950: 73 65 74 73 20 75 70 20 61 20 74 61 62 6C 65 20 sets up a table
016960: 6F 66 20 75 73 65 72 20 64 65 66 69 6E 65 64 20 of user defined
016970: 6D 61 74 72 69 63 65 73 2C 20 62 79 20 63 61 6C matrices, by cal
016980: 6C 69 6E 67 20 54 58 54 0D 0A 20 20 20 20 20 20 ling TXT..
016990: 20 53 45 54 20 4D 20 54 41 42 4C 45 2C 20 69 74 SET M TABLE, it
0169A0: 20 69 73 20 20 69 6E 69 74 69 61 6C 69 7A 65 64 is initialized
0169B0: 20 20 77 69 74 68 20 20 74 68 65 20 20 63 75 72 with the cur
0169C0: 72 65 6E 74 20 20 73 65 74 74 69 6E 67 73 20 20 rent settings
0169D0: 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 of the..
0169E0: 6D 61 74 72 69 63 65 73 20 66 72 6F 6D 20 52 4F matrices from RO
0169F0: 4D 20 6F 72 20 52 41 4D 2E 20 54 68 69 73 20 6D M or RAM. This m
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: 65 61 6E 73 20 74 68 61 74 20 65 78 74 65 6E 64 eans that extend
016B10: 69 6E 67 20 20 74 68 61 74 20 20 74 61 62 6C 65 ing that table
016B20: 20 20 64 6F 65 73 0D 0A 20 20 20 20 20 20 20 6E does.. n
016B30: 6F 74 20 61 6C 74 65 72 20 74 68 65 20 20 63 75 ot alter the cu
016B40: 72 72 65 6E 74 20 20 6D 61 74 72 69 63 65 73 2E rrent matrices.
016B50: 20 20 43 6F 6E 74 72 61 63 74 69 6E 67 20 20 74 Contracting t
016B60: 68 65 20 20 74 61 62 6C 65 20 20 77 69 6C 6C 20 he table will
016B70: 20 6D 61 6B 65 0D 0A 20 20 20 20 20 20 20 74 68 make.. th
016B80: 65 20 63 68 61 72 61 63 74 65 72 73 20 6C 6F 73 e characters los
016B90: 74 20 72 65 76 65 72 74 20 74 6F 20 74 68 65 69 t revert to thei
016BA0: 72 20 64 65 66 61 75 6C 74 20 6D 61 74 72 69 63 r default matric
016BB0: 65 20 69 6E 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 e in ROM.....
016BC0: 20 20 20 20 57 68 65 6E 20 63 68 61 72 61 63 74 When charact
016BD0: 65 72 73 20 61 72 65 20 72 65 61 64 20 66 72 6F ers are read fro
016BE0: 6D 20 74 68 65 20 73 63 72 65 65 6E 20 28 62 79 m the screen (by
016BF0: 20 63 61 6C 6C 69 6E 67 20 28 54 58 54 20 52 44 calling (TXT RD
016C00: 20 43 48 41 52 29 20 74 68 65 0D 0A 20 20 20 20 CHAR) the..
016C10: 20 20 20 70 69 78 65 6C 73 20 6F 6E 20 74 68 65 pixels on the
016C20: 20 73 63 72 65 65 6E 20 61 72 65 20 63 6F 6E 76 screen are conv
016C30: 65 72 74 65 64 20 74 6F 20 74 68 65 20 66 6F 72 erted to the for
016C40: 6D 20 6F 66 20 61 20 20 6D 61 74 72 69 78 2E 20 m of a matrix.
016C50: 20 54 68 69 73 20 20 69 73 0D 0A 20 20 20 20 20 This is..
016C60: 20 20 63 6F 6D 70 61 72 65 64 20 77 69 74 68 20 compared with
016C70: 74 68 65 20 63 75 72 72 65 6E 74 20 63 68 61 72 the current char
016C80: 61 63 74 65 72 20 6D 61 74 72 69 63 65 73 20 74 acter matrices t
016C90: 6F 20 66 69 6E 64 20 20 77 68 69 63 68 20 20 63 o find which c
016CA0: 68 61 72 61 63 74 65 72 0D 0A 20 20 20 20 20 20 haracter..
016CB0: 20 69 74 20 69 73 2E 20 54 68 69 73 20 6D 65 61 it is. This mea
016CC0: 6E 73 20 74 68 61 74 20 63 68 61 6E 67 69 6E 67 ns that changing
016CD0: 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 6D the character m
016CE0: 61 74 72 69 63 65 73 20 6F 72 20 61 6C 74 65 72 atrices or alter
016CF0: 69 6E 67 20 74 68 65 0D 0A 20 20 20 20 20 20 20 ing the..
016D00: 73 63 72 65 65 6E 20 6D 61 79 20 6D 61 6B 65 20 screen may make
016D10: 61 20 63 68 61 72 61 63 74 65 72 20 75 6E 72 65 a character unre
016D20: 63 6F 67 6E 69 73 61 62 6C 65 2C 20 20 69 6E 20 cognisable, in
016D30: 20 70 61 72 74 69 63 75 6C 61 72 2C 20 20 63 68 particular, ch
016D40: 61 6E 67 69 6E 67 0D 0A 20 20 20 20 20 20 20 74 anging.. t
016D50: 68 65 20 70 65 6E 20 6F 72 20 70 61 70 65 72 20 he pen or paper
016D60: 69 6E 6B 20 20 63 61 6E 20 20 63 61 75 73 65 20 ink can cause
016D70: 20 63 6F 6E 66 75 73 69 6F 6E 2E 20 20 55 73 75 confusion. Usu
016D80: 61 6C 6C 79 20 20 74 68 65 73 65 20 20 70 72 6F ally these pro
016D90: 62 6C 65 6D 73 0D 0A 20 20 20 20 20 20 20 72 65 blems.. re
016DA0: 73 75 6C 74 20 69 6E 20 74 68 65 20 63 68 61 72 sult in the char
016DB0: 61 63 74 65 72 20 61 70 70 65 61 72 69 6E 67 20 acter appearing
016DC0: 74 6F 20 62 65 20 61 20 73 70 61 63 65 20 28 63 to be a space (c
016DD0: 68 61 72 61 63 74 65 72 20 23 32 30 29 20 61 6E haracter #20) an
016DE0: 64 20 73 6F 0D 0A 20 20 20 20 20 20 20 73 70 65 d so.. spe
016DF0: 63 69 61 6C 20 70 72 65 63 61 75 74 69 6F 6E 73 cial precautions
016E00: 20 61 72 65 20 74 61 6B 65 6E 20 74 6F 20 61 76 are taken to av
016E10: 6F 69 64 20 67 65 6E 65 72 61 74 69 6E 67 20 73 oid generating s
016E20: 70 61 63 65 73 20 2D 20 61 66 74 65 72 20 20 73 paces - after s
016E30: 6F 6D 65 0D 0A 20 20 20 20 20 20 20 69 6E 6B 20 ome.. ink
016E40: 63 68 61 6E 67 65 73 20 72 65 61 6C 20 73 70 61 changes real spa
016E50: 63 65 73 20 6D 61 79 20 62 65 20 72 65 61 64 20 ces may be read
016E60: 61 73 20 62 6C 6F 63 6B 20 67 72 61 70 68 69 63 as block graphic
016E70: 73 20 20 63 68 61 72 61 63 74 65 72 73 20 20 23 s characters #
016E80: 38 30 0D 0A 20 20 20 20 20 20 20 6F 72 20 23 38 80.. or #8
016E90: 46 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 6F 20 F..... To
016EA0: 61 6C 6C 6F 77 20 74 68 65 20 75 73 65 72 20 74 allow the user t
016EB0: 6F 20 63 68 61 6E 67 65 20 68 6F 77 20 63 68 61 o change how cha
016EC0: 72 61 63 74 65 72 73 20 61 72 65 20 20 77 72 69 racters are wri
016ED0: 74 74 65 6E 20 20 74 6F 20 20 61 6E 64 20 20 72 tten to and r
016EE0: 65 61 64 0D 0A 20 20 20 20 20 20 20 66 72 6F 6D ead.. from
016EF0: 20 74 68 65 20 73 63 72 65 65 6E 2C 20 74 68 65 the screen, the
016F00: 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 20 54 58 indirections TX
016F10: 54 20 57 52 49 54 45 20 43 48 41 52 20 61 6E 64 T WRITE CHAR and
016F20: 20 54 58 54 20 20 55 4E 57 52 49 54 45 20 20 61 TXT UNWRITE a
016F30: 72 65 0D 0A 20 20 20 20 20 20 20 70 72 6F 76 69 re.. provi
016F40: 64 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ded..... A
016F50: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
016F60: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
016F70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016F80: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
016F90: 65 20 34 2E 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D e 4.4...........
016FA0: 0A 0D 0A 20 20 20 20 20 20 20 34 2E 37 20 43 68 ... 4.7 Ch
016FB0: 61 72 61 63 74 65 72 20 4F 75 74 70 75 74 20 61 aracter Output a
016FC0: 6E 64 20 43 6F 6E 74 72 6F 6C 20 43 6F 64 65 73 nd Control Codes
016FD0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
016FE0: 6D 61 69 6E 20 63 68 61 72 61 63 74 65 72 20 6F main character o
016FF0: 75 74 70 75 74 20 72 6F 75 74 69 6E 65 20 66 6F utput routine fo
017000: 72 20 74 68 65 20 54 65 78 74 20 56 44 55 20 69 r the Text VDU i
017010: 73 20 54 58 54 20 4F 55 54 50 55 54 2E 20 54 68 s TXT OUTPUT. Th
017020: 69 73 0D 0A 20 20 20 20 20 20 20 6F 62 65 79 73 is.. obeys
017030: 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 20 28 control codes (
017040: 63 68 61 72 61 63 74 65 72 20 30 2E 2E 33 31 29 character 0..31)
017050: 20 61 6E 64 20 70 72 69 6E 74 73 20 61 6C 6C 20 and prints all
017060: 6F 74 68 65 72 20 63 68 61 72 61 63 74 65 72 73 other characters
017070: 2E 0D 0A 20 20 20 20 20 20 20 43 68 61 72 61 63 ... Charac
017080: 74 65 72 73 20 20 73 65 6E 74 20 20 74 6F 20 20 ters sent to
017090: 54 58 54 20 20 4F 55 54 50 55 54 20 20 70 61 73 TXT OUTPUT pas
0170A0: 73 20 20 74 68 72 6F 75 67 68 20 20 76 61 72 69 s through vari
0170B0: 6F 75 73 20 20 6C 65 76 65 6C 73 20 20 20 6F 66 ous levels of
0170C0: 0D 0A 20 20 20 20 20 20 20 69 6E 64 69 72 65 63 .. indirec
0170D0: 74 69 6F 6E 20 61 6E 64 20 63 61 6E 20 62 65 20 tion and can be
0170E0: 64 65 6C 74 20 77 69 74 68 20 62 79 20 76 61 72 delt with by var
0170F0: 69 6F 75 73 20 6F 75 74 70 75 74 20 72 6F 75 74 ious output rout
017100: 69 6E 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ines.....
017110: 54 58 54 20 4F 55 54 50 55 54 20 75 73 65 73 20 TXT OUTPUT uses
017120: 74 68 65 20 54 58 54 20 4F 55 54 20 41 43 54 49 the TXT OUT ACTI
017130: 4F 4E 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 74 ON indirection t
017140: 6F 20 73 6F 72 74 20 6F 75 74 20 77 68 65 74 68 o sort out wheth
017150: 65 72 20 74 68 65 0D 0A 20 20 20 20 20 20 20 63 er the.. c
017160: 68 61 72 61 63 74 65 72 20 69 73 20 61 20 70 72 haracter is a pr
017170: 69 6E 74 69 6E 67 20 63 68 61 72 61 63 74 65 72 inting character
017180: 2C 20 69 73 20 61 20 63 6F 6E 74 72 6F 6C 20 63 , is a control c
017190: 6F 64 65 20 74 6F 20 62 65 20 20 6F 62 65 79 65 ode to be obeye
0171A0: 64 20 20 6F 72 0D 0A 20 20 20 20 20 20 20 69 73 d or.. is
0171B0: 20 74 68 65 20 70 61 72 61 6D 65 74 65 72 20 6F the parameter o
0171C0: 66 20 61 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 f a control code
0171D0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 58 54 20 ..... TXT
0171E0: 4F 55 54 20 41 43 54 49 4F 4E 20 6E 6F 72 6D 61 OUT ACTION norma
0171F0: 6C 6C 79 20 63 61 6C 6C 73 20 54 58 54 20 57 52 lly calls TXT WR
017200: 49 54 45 20 43 48 41 52 20 74 6F 20 20 70 72 69 ITE CHAR to pri
017210: 6E 74 20 20 63 68 61 72 61 63 74 65 72 73 20 20 nt characters
017220: 6F 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 20 73 on.. the s
017230: 63 72 65 65 6E 2E 20 48 6F 77 65 76 65 72 2C 20 creen. However,
017240: 69 66 20 74 68 65 20 67 72 61 70 68 69 63 73 20 if the graphics
017250: 63 68 61 72 61 63 74 65 72 20 77 72 69 74 65 20 character write
017260: 6D 6F 64 65 20 69 73 20 20 73 65 6C 65 63 74 65 mode is selecte
017270: 64 0D 0A 20 20 20 20 20 20 20 74 68 65 6E 20 63 d.. then c
017280: 68 61 72 61 63 74 65 72 73 20 61 72 65 20 70 72 haracters are pr
017290: 69 6E 74 65 64 20 75 73 69 6E 67 20 74 68 65 20 inted using the
0172A0: 20 47 72 61 70 68 69 63 73 20 20 56 44 55 20 20 Graphics VDU
0172B0: 63 68 61 72 61 63 74 65 72 20 20 77 72 69 74 65 character write
0172C0: 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 6E 65 .. routine
0172D0: 20 28 73 65 65 20 35 2E 36 20 62 65 6C 6F 77 2E (see 5.6 below.
0172E0: 29 20 54 68 69 73 20 6D 6F 64 65 20 63 61 6E 20 ) This mode can
0172F0: 62 65 20 73 65 6C 65 63 74 65 64 20 6F 6E 20 61 be selected on a
017300: 20 20 63 68 61 72 61 63 74 65 72 20 20 62 79 0D character by.
017310: 0A 20 20 20 20 20 20 20 63 68 61 72 61 63 74 65 . characte
017320: 72 20 62 61 73 69 73 20 75 73 69 6E 67 20 61 20 r basis using a
017330: 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 6F 72 20 control code or
017340: 6F 6E 20 61 6C 6C 20 20 63 68 61 72 61 63 74 65 on all characte
017350: 72 73 20 20 73 65 6E 74 20 20 28 73 65 65 0D 0A rs sent (see..
017360: 20 20 20 20 20 20 20 54 58 54 20 53 45 54 20 47 TXT SET G
017370: 52 41 50 48 49 43 29 2E 20 20 57 68 65 6E 20 20 RAPHIC). When
017380: 67 72 61 70 68 69 63 20 20 63 68 61 72 61 63 74 graphic charact
017390: 65 72 20 20 77 72 69 74 65 20 20 6D 6F 64 65 20 er write mode
0173A0: 20 69 73 20 20 73 65 6C 65 63 74 65 64 0D 0A 20 is selected..
0173B0: 20 20 20 20 20 20 63 6F 6E 74 72 6F 6C 20 63 6F control co
0173C0: 64 65 73 20 61 72 65 20 6E 6F 74 20 6F 62 65 79 des are not obey
0173D0: 65 64 20 62 75 74 20 61 72 65 20 70 72 69 6E 74 ed but are print
0173E0: 65 64 20 62 79 20 74 68 65 20 20 67 72 61 70 68 ed by the graph
0173F0: 69 63 73 20 20 72 6F 75 74 69 6E 65 0D 0A 20 20 ics routine..
017400: 20 20 20 20 20 69 6E 73 74 65 61 64 2E 0D 0A 20 instead...
017410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 T
017420: 58 54 20 4F 55 54 20 41 43 54 49 4F 4E 20 64 65 XT OUT ACTION de
017430: 61 6C 73 20 77 69 74 68 20 61 20 63 6F 6E 74 72 als with a contr
017440: 6F 6C 20 20 63 6F 64 65 20 20 69 6E 20 20 74 68 ol code in th
017450: 65 20 20 66 6F 6C 6C 6F 77 69 6E 67 0D 0A 20 20 e following..
017460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6D 61 ma
017470: 6E 6E 65 72 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 nner:....
017480: 20 20 20 20 20 20 20 20 20 31 2F 20 54 68 65 20 1/ The
017490: 63 6F 64 65 20 69 73 20 73 74 6F 72 65 64 20 20 code is stored
0174A0: 61 74 20 20 74 68 65 20 20 73 74 61 72 74 20 20 at the start
0174B0: 6F 66 20 20 74 68 65 20 20 63 6F 6E 74 72 6F 6C of the control
0174C0: 20 20 63 6F 64 65 0D 0A 20 20 20 20 20 20 20 20 code..
0174D0: 20 20 20 20 20 20 20 20 62 75 66 66 65 72 2E 0D buffer..
0174E0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0174F0: 20 32 2F 20 54 68 65 20 63 6F 64 65 20 69 73 20 2/ The code is
017500: 6C 6F 6F 6B 65 64 20 75 70 20 69 6E 20 74 68 65 looked up in the
017510: 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 20 74 control code t
017520: 61 62 6C 65 20 20 74 6F 20 20 66 69 6E 64 0D 0A able to find..
017530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017540: 6F 75 74 20 68 6F 77 20 6D 61 6E 79 20 70 61 72 out how many par
017550: 61 6D 65 74 65 72 73 20 69 74 20 72 65 71 75 69 ameters it requi
017560: 72 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 res.....
017570: 20 20 20 20 20 20 20 20 33 2F 20 49 66 20 6E 6F 3/ If no
017580: 20 70 61 72 61 6D 65 74 65 72 73 20 61 72 65 20 parameters are
017590: 72 65 71 75 69 72 65 64 20 67 6F 20 64 69 72 65 required go dire
0175A0: 63 74 6C 79 20 74 6F 20 73 74 65 70 20 35 2E 0D ctly to step 5..
0175B0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
0175C0: 20 20 20 34 2F 20 49 66 20 6F 6E 65 20 6F 72 20 4/ If one or
0175D0: 6D 6F 72 65 20 70 61 72 61 6D 65 74 65 72 73 20 more parameters
0175E0: 61 72 65 20 72 65 71 75 69 72 65 64 20 74 68 65 are required the
0175F0: 20 54 58 54 20 4F 55 54 20 20 41 43 54 49 4F 4E TXT OUT ACTION
017600: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
017610: 20 20 72 65 74 75 72 6E 73 20 62 75 74 20 74 68 returns but th
017620: 65 20 6E 65 78 74 20 63 68 61 72 61 63 74 65 72 e next character
017630: 73 20 73 65 6E 74 20 74 6F 20 69 74 20 61 72 65 s sent to it are
017640: 20 61 64 64 65 64 20 20 74 6F 20 20 74 68 65 0D added to the.
017650: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
017660: 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 62 75 control code bu
017670: 66 66 65 72 20 72 61 74 68 65 72 20 74 68 61 6E ffer rather than
017680: 20 62 65 69 6E 67 20 70 72 69 6E 74 65 64 20 6F being printed o
017690: 72 20 6F 62 65 79 65 64 2E 20 54 68 69 73 0D 0A r obeyed. This..
0176A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0176B0: 63 6F 6E 74 69 6E 75 65 73 20 75 6E 74 69 6C 20 continues until
0176C0: 73 75 66 66 69 63 69 65 6E 74 20 20 70 61 72 61 sufficient para
0176D0: 6D 65 74 65 72 20 20 63 68 61 72 61 63 74 65 72 meter character
0176E0: 73 20 20 68 61 76 65 20 20 62 65 65 6E 0D 0A 20 s have been..
0176F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 r
017700: 65 63 65 69 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 eceived.....
017710: 20 20 20 20 20 20 20 20 20 20 20 20 35 2F 20 54 5/ T
017720: 68 65 20 63 6F 64 65 20 69 73 20 6C 6F 6F 6B 65 he code is looke
017730: 64 20 75 70 20 69 6E 20 74 68 65 20 63 6F 6E 74 d up in the cont
017740: 72 6F 6C 20 63 6F 64 65 20 74 61 62 6C 65 20 74 rol code table t
017750: 6F 20 67 65 74 20 74 68 65 0D 0A 20 20 20 20 20 o get the..
017760: 20 20 20 20 20 20 20 20 20 20 20 61 64 64 72 65 addre
017770: 73 73 20 6F 66 20 74 68 65 20 72 6F 75 74 69 6E ss of the routin
017780: 65 20 74 6F 20 63 61 6C 6C 20 74 6F 20 70 65 72 e to call to per
017790: 66 6F 72 6D 20 20 74 68 65 20 20 63 6F 6E 74 72 form the contr
0177A0: 6F 6C 20 20 63 6F 64 65 0D 0A 20 20 20 20 20 20 ol code..
0177B0: 20 20 20 20 20 20 20 20 20 20 61 6E 64 20 74 68 and th
0177C0: 69 73 20 72 6F 75 74 69 6E 65 20 69 73 20 74 68 is routine is th
0177D0: 65 6E 20 65 78 65 63 75 74 65 64 2E 0D 0A 0D 0A en executed.....
0177E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0177F0: 36 2F 20 20 54 68 65 20 20 63 6F 6E 74 72 6F 6C 6/ The control
017800: 20 20 63 6F 64 65 20 20 62 75 66 66 65 72 20 20 code buffer
017810: 69 73 20 20 64 69 73 63 61 72 64 65 64 20 20 61 is discarded a
017820: 6E 64 20 20 74 68 65 20 20 6E 65 78 74 0D 0A 20 nd the next..
017830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 c
017840: 68 61 72 61 63 74 65 72 20 73 65 6E 74 20 6D 61 haracter sent ma
017850: 79 20 62 65 20 70 72 69 6E 74 65 64 20 6F 72 20 y be printed or
017860: 6D 61 79 20 62 65 20 74 68 65 20 73 74 61 72 74 may be the start
017870: 20 20 6F 66 20 20 61 20 20 6E 65 77 0D 0A 20 20 of a new..
017880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6F co
017890: 6E 74 72 6F 6C 20 63 6F 64 65 20 73 65 71 75 65 ntrol code seque
0178A0: 6E 63 65 2E 0D 0A 20 20 20 20 20 20 20 54 68 65 nce... The
0178B0: 20 75 73 65 72 20 63 61 6E 20 63 68 61 6E 67 65 user can change
0178C0: 20 74 68 65 20 6F 70 65 72 61 74 69 6F 6E 20 6F the operation o
0178D0: 66 20 61 20 63 6F 6E 74 72 6F 6C 20 20 63 6F 64 f a control cod
0178E0: 65 20 20 79 20 20 63 68 61 6E 67 69 6E 67 20 20 e y changing
0178F0: 74 68 65 0D 0A 20 20 20 20 20 20 20 65 6E 74 72 the.. entr
017900: 79 20 66 6F 72 20 69 74 20 69 6E 20 74 68 65 20 y for it in the
017910: 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 74 61 62 control code tab
017920: 6C 65 20 28 73 65 65 20 54 58 54 20 20 47 45 54 le (see TXT GET
017930: 20 20 43 4F 4E 54 52 4F 4C 53 29 2E 20 20 54 68 CONTROLS). Th
017940: 69 73 0D 0A 20 20 20 20 20 20 20 63 6F 6E 74 61 is.. conta
017950: 69 6E 73 20 61 20 33 20 62 79 74 65 20 65 6E 74 ins a 3 byte ent
017960: 72 79 20 66 6F 72 20 20 65 61 63 68 20 20 63 6F ry for each co
017970: 64 65 20 20 61 6E 64 20 20 65 6E 74 72 69 65 73 de and entries
017980: 20 20 61 72 65 20 20 73 74 6F 72 65 64 20 20 69 are stored i
017990: 6E 0D 0A 20 20 20 20 20 20 20 61 73 63 65 6E 64 n.. ascend
0179A0: 69 6E 67 20 6F 72 64 65 72 20 28 69 2E 65 2E 20 ing order (i.e.
0179B0: 74 68 65 20 65 6E 74 72 79 20 66 6F 72 20 23 30 the entry for #0
0179C0: 30 20 66 69 72 73 74 2C 20 23 30 31 20 6E 65 78 0 first, #01 nex
0179D0: 74 20 61 6E 64 20 73 6F 20 6F 6E 29 2E 0D 0A 0D t and so on)....
0179E0: 0A 20 20 20 20 20 20 20 42 69 74 73 20 30 2E 2E . Bits 0..
0179F0: 33 20 6F 66 20 74 68 65 20 66 69 72 73 74 20 62 3 of the first b
017A00: 79 74 65 20 6F 66 20 65 61 63 68 20 20 65 6E 74 yte of each ent
017A10: 72 79 20 20 73 70 65 63 69 66 69 65 73 20 20 74 ry specifies t
017A20: 68 65 20 20 6E 75 6D 62 65 72 20 20 6F 66 0D 0A he number of..
017A30: 20 20 20 20 20 20 20 70 61 72 61 6D 65 74 65 72 parameter
017A40: 73 20 72 65 71 75 69 72 65 64 2E 20 54 68 69 73 s required. This
017A50: 20 6D 75 73 74 20 6C 69 65 20 69 6E 20 74 68 65 must lie in the
017A60: 20 72 61 6E 67 65 20 30 2E 2E 39 20 20 61 73 20 range 0..9 as
017A70: 20 74 68 65 20 20 63 6F 6E 74 72 6F 6C 0D 0A 20 the control..
017A80: 20 20 20 20 20 20 63 6F 64 65 20 62 75 66 66 65 code buffe
017A90: 72 20 69 73 20 6F 6E 6C 79 20 63 61 70 61 62 6C r is only capabl
017AA0: 65 20 6F 66 20 73 74 6F 72 69 6E 67 20 75 70 20 e of storing up
017AB0: 74 6F 20 39 20 70 61 72 61 6D 65 74 65 72 73 2E to 9 parameters.
017AC0: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E 20 56 31 .... In V1
017AD0: 2E 31 20 66 69 72 6D 77 61 72 65 20 62 69 74 20 .1 firmware bit
017AE0: 37 20 73 70 65 63 69 66 69 65 73 20 77 68 65 74 7 specifies whet
017AF0: 68 65 72 20 74 68 65 20 63 6F 64 65 20 69 73 20 her the code is
017B00: 61 66 66 65 63 74 65 64 20 77 68 65 6E 20 74 68 affected when th
017B10: 65 0D 0A 20 20 20 20 20 20 20 56 44 55 20 69 73 e.. VDU is
017B20: 20 64 69 73 61 62 6C 65 64 2E 20 49 66 20 62 69 disabled. If bi
017B30: 74 20 37 20 69 73 20 73 65 74 20 74 68 65 6E 20 t 7 is set then
017B40: 74 68 65 20 63 6F 64 65 20 69 73 20 74 6F 20 62 the code is to b
017B50: 65 20 20 69 67 6E 6F 72 65 64 20 20 77 68 65 6E e ignored when
017B60: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 56 44 55 .. the VDU
017B70: 20 69 73 20 64 69 73 61 62 6C 65 64 20 6F 74 68 is disabled oth
017B80: 65 72 77 69 73 65 20 69 74 20 69 73 20 74 6F 20 erwise it is to
017B90: 62 65 20 6F 62 65 79 65 64 2E 0D 0A 20 20 20 20 be obeyed...
017BA0: 20 20 20 54 68 65 20 73 65 63 6F 6E 64 20 61 6E The second an
017BB0: 64 20 74 68 69 72 64 20 62 79 74 65 73 20 61 72 d third bytes ar
017BC0: 65 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 e the address of
017BD0: 20 74 68 65 20 72 6F 75 74 69 6E 65 20 74 6F 20 the routine to
017BE0: 20 63 61 6C 6C 20 20 74 6F 0D 0A 20 20 20 20 20 call to..
017BF0: 20 20 6F 62 65 79 20 74 68 65 20 63 6F 64 65 2E obey the code.
017C00: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 73 68 This routine sh
017C10: 6F 75 6C 64 20 6C 69 65 20 69 6E 20 74 68 65 20 ould lie in the
017C20: 63 65 6E 74 72 61 6C 20 33 32 4B 20 6F 66 20 52 central 32K of R
017C30: 41 4D 20 6F 72 20 69 6E 0D 0A 20 20 20 20 20 20 AM or in..
017C40: 20 74 68 65 20 6C 6F 77 65 72 20 52 4F 4D 20 28 the lower ROM (
017C50: 77 68 69 63 68 20 77 69 6C 6C 20 20 62 65 20 20 which will be
017C60: 65 6E 61 62 6C 65 64 29 2E 20 20 49 74 20 20 73 enabled). It s
017C70: 68 6F 75 6C 64 20 20 63 6F 6E 66 6F 72 6D 20 20 hould conform
017C80: 74 6F 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 to the..
017C90: 66 6F 6C 6C 6F 77 69 6E 67 20 65 6E 74 72 79 2F following entry/
017CA0: 65 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A exit conditions:
017CB0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
017CC0: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
017CD0: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
017CE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017CF0: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 34 2E page 4.
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: 35 0D 0A 1A 41 50 2D 34 20 20 24 24 24 FF 00 FF 5...AP-4 $$$...
017E10: 20 54 65 78 74 20 56 44 55 2E 0D 0A 0D 0A 0D 0A Text VDU.......
017E20: 20 20 20 20 20 20 20 54 68 65 20 54 65 78 74 20 The Text
017E30: 56 44 55 20 69 73 20 20 61 20 20 63 68 61 72 61 VDU is a chara
017E40: 63 74 65 72 20 20 62 61 73 65 64 20 20 73 63 72 cter based scr
017E50: 65 65 6E 20 20 64 72 69 76 65 72 2E 20 20 49 74 een driver. It
017E60: 20 20 63 6F 6E 74 72 6F 6C 73 20 20 38 0D 0A 20 controls 8..
017E70: 20 20 20 20 20 20 64 69 66 66 65 72 65 6E 74 20 different
017E80: 00 43 48 41 50 2D 32 20 20 50 31 20 00 00 00 80 .CHAP-2 P1 ....
017E90: 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 &'()*+,-./012345
017EA0: 00 43 48 41 50 2D 32 20 20 50 31 20 01 00 00 06 .CHAP-2 P1 ....
017EB0: 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6...............
017EC0: 00 43 48 41 50 2D 32 20 20 50 32 20 00 00 00 18 .CHAP-2 P2 ....
017ED0: 37 38 39 00 00 00 00 00 00 00 00 00 00 00 00 00 789.............
017EE0: 00 43 48 41 50 2D 33 20 20 20 20 20 00 00 00 7A .CHAP-3 ...z
017EF0: 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 :;<=>?@ABCDEFGHI
017F00: 00 43 48 41 50 2D 34 20 20 24 24 24 00 00 00 80 .CHAP-4 $$$....
017F10: 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 JKLMNOPQRSTUVWXY
017F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0180A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0180B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0180C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0180D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0180E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0180F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0181A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0181B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0181C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0181D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0181E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0181F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018200: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
018210: 20 20 20 45 6E 74 72 79 3A 0D 0A 0D 0A 0D 0A 20 Entry:......
018220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
018230: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 6C 61 contains the la
018240: 73 74 20 63 68 61 72 61 63 74 65 72 20 61 64 64 st character add
018250: 65 64 20 74 6F 20 74 68 65 20 62 75 66 66 65 72 ed to the buffer
018260: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 .......
018270: 20 20 20 20 20 20 20 42 20 63 6F 6E 74 61 69 6E B contain
018280: 73 20 74 68 65 20 6E 75 6D 62 65 72 20 6F 66 20 s the number of
018290: 63 68 61 72 61 63 74 65 72 73 20 69 6E 20 74 68 characters in th
0182A0: 65 20 62 75 66 66 65 72 20 20 28 69 6E 63 6C 75 e buffer (inclu
0182B0: 64 69 6E 67 0D 0A 20 20 20 20 20 20 20 20 20 20 ding..
0182C0: 20 20 20 20 20 20 74 68 65 20 63 6F 6E 74 72 6F the contro
0182D0: 6C 20 63 6F 64 65 29 2E 0D 0A 0D 0A 0D 0A 20 20 l code).......
0182E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 20 C
0182F0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 61 6D contains the sam
018300: 65 20 61 73 20 41 2E 0D 0A 0D 0A 0D 0A 20 20 20 e as A.......
018310: 20 20 20 20 20 20 20 20 20 20 20 20 20 48 4C 20 HL
018320: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 contains the add
018330: 72 65 73 73 20 6F 66 20 74 68 65 20 63 6F 6E 74 ress of the cont
018340: 72 6F 6C 20 63 6F 64 65 20 62 75 66 66 65 72 20 rol code buffer
018350: 28 70 6F 69 6E 74 73 20 61 74 0D 0A 20 20 20 20 (points at..
018360: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 the
018370: 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 29 2E 0D 0A control code)...
018380: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 3A .... Exit:
018390: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
0183A0: 20 20 20 20 41 46 2C 42 43 2C 44 45 20 61 6E 64 AF,BC,DE and
0183B0: 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A HL corrupt.....
0183C0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0183D0: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
0183E0: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
0183F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
018400: 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 62 75 control code bu
018410: 66 66 65 72 20 69 73 20 73 68 61 72 65 64 20 62 ffer is shared b
018420: 65 74 77 65 65 6E 20 61 6C 6C 20 73 74 72 65 61 etween all strea
018430: 6D 73 2E 20 41 20 63 6F 6E 74 72 6F 6C 20 20 63 ms. A control c
018440: 6F 64 65 0D 0A 20 20 20 20 20 20 20 73 65 71 75 ode.. sequ
018450: 65 6E 63 65 20 73 68 6F 75 6C 64 20 62 65 20 63 ence should be c
018460: 6F 6D 70 6C 65 74 65 64 20 62 65 66 6F 72 65 20 ompleted before
018470: 20 61 20 20 73 74 72 65 61 6D 20 20 69 73 20 20 a stream is
018480: 63 68 61 6E 67 65 64 20 20 6F 74 68 65 72 77 69 changed otherwi
018490: 73 65 0D 0A 20 20 20 20 20 20 20 75 6E 65 78 70 se.. unexp
0184A0: 65 63 74 65 64 20 65 66 66 65 63 74 73 20 6D 61 ected effects ma
0184B0: 79 20 6F 63 63 75 72 2E 0D 0A 0D 0A 0D 0A 0D 0A y occur.........
0184C0: 20 20 20 20 20 20 20 54 68 65 20 64 65 66 61 75 The defau
0184D0: 6C 74 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 lt control code
0184E0: 61 63 74 69 6F 6E 73 2C 20 73 65 74 20 61 74 20 actions, set at
0184F0: 45 4D 53 20 61 6E 64 20 20 77 68 65 6E 20 20 54 EMS and when T
018500: 58 54 20 20 52 45 53 45 54 20 20 69 73 0D 0A 20 XT RESET is..
018510: 20 20 20 20 20 20 63 61 6C 6C 65 64 2C 20 61 72 called, ar
018520: 65 20 64 65 73 63 72 69 62 65 64 20 69 6E 20 41 e described in A
018530: 70 70 65 6E 64 69 78 20 56 49 49 2E 0D 0A 0D 0A ppendix VII.....
018540: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 74 20 69 73 .... It is
018550: 20 70 6F 73 73 69 62 6C 65 20 74 6F 20 64 69 73 possible to dis
018560: 61 62 6C 65 20 74 68 65 20 74 65 78 74 20 73 74 able the text st
018570: 72 65 61 6D 20 62 79 20 63 61 6C 6C 69 6E 67 20 ream by calling
018580: 54 58 54 20 56 44 55 20 20 44 49 53 41 42 4C 45 TXT VDU DISABLE
018590: 2E 0D 0A 20 20 20 20 20 20 20 57 68 65 6E 20 64 ... When d
0185A0: 69 73 61 62 6C 65 64 20 74 68 65 20 73 74 72 65 isabled the stre
0185B0: 61 6D 20 77 69 6C 6C 20 6E 6F 74 20 77 72 69 74 am will not writ
0185C0: 65 20 61 6E 79 20 63 68 61 72 61 63 74 65 72 73 e any characters
0185D0: 20 74 6F 20 20 74 68 65 20 20 73 63 72 65 65 6E to the screen
0185E0: 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 69 6E 20 .. and in
0185F0: 56 31 2E 31 20 66 69 72 6D 77 61 72 65 20 63 6F V1.1 firmware co
018600: 6E 74 72 6F 6C 20 63 6F 64 65 73 20 6D 61 79 20 ntrol codes may
018610: 6E 6F 74 20 20 62 65 20 20 6F 62 65 79 65 64 20 not be obeyed
018620: 20 28 61 73 20 20 64 65 73 63 72 69 62 65 64 0D (as described.
018630: 0A 20 20 20 20 20 20 20 61 62 6F 76 65 29 2E 20 . above).
018640: 4E 6F 72 6D 61 6C 20 6F 70 65 72 61 74 69 6F 6E Normal operation
018650: 20 63 61 6E 20 62 65 20 72 65 73 74 6F 72 65 64 can be restored
018660: 20 62 79 20 63 61 6C 6C 20 54 58 54 20 56 44 55 by call TXT VDU
018670: 20 45 4E 41 42 4C 45 2E 20 4E 6F 74 65 2C 0D 0A ENABLE. Note,..
018680: 20 20 20 20 20 20 20 68 6F 77 65 76 65 72 2C 20 however,
018690: 74 68 61 74 20 63 61 6C 6C 69 6E 67 20 74 68 65 that calling the
0186A0: 73 65 20 20 72 6F 75 74 69 6E 65 73 20 20 77 69 se routines wi
0186B0: 6C 6C 20 20 65 6D 70 74 79 20 20 74 68 65 20 20 ll empty the
0186C0: 63 6F 6E 74 72 6F 6C 20 20 63 6F 64 65 0D 0A 20 control code..
0186D0: 20 20 20 20 20 20 62 75 66 66 65 72 2E 20 54 68 buffer. Th
0186E0: 69 73 20 65 66 66 65 63 74 20 6D 61 79 20 62 65 is effect may be
0186F0: 20 75 73 65 64 20 74 6F 20 61 76 6F 69 64 20 70 used to avoid p
018700: 72 6F 62 6C 65 6D 73 20 77 68 65 6E 20 20 74 68 roblems when th
018710: 65 20 20 73 74 61 74 65 20 20 6F 66 0D 0A 20 20 e state of..
018720: 20 20 20 20 20 74 68 65 20 20 63 6F 6E 74 72 6F the contro
018730: 6C 20 20 62 75 66 66 65 72 20 20 69 73 20 20 75 l buffer is u
018740: 6E 6B 6E 6F 77 6E 20 20 28 77 68 65 6E 20 20 70 nknown (when p
018750: 72 69 6E 74 69 6E 67 20 20 61 6E 20 20 65 72 72 rinting an err
018760: 6F 72 20 20 6D 65 73 73 61 67 65 0D 0A 20 20 20 or message..
018770: 20 20 20 20 70 65 72 68 61 70 73 29 2E 0D 0A 0D perhaps)....
018780: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
018790: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
0187A0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
0187B0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
0187C0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
0187D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0187E0: 20 20 70 61 67 65 20 34 2E 36 0D 0A 1A 0D 0A 20 page 4.6.....
0187F0: 20 20 20 20 20 20 64 69 66 66 65 72 65 6E 74 20 different
018800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0188A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0188B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0188C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0188D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0188E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0188F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0189A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0189B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0189C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0189D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0189E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0189F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018A00: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 35 ........ 5
018A10: 20 54 68 65 20 47 72 61 70 68 69 63 73 20 56 44 The Graphics VD
018A20: 55 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 U....... T
018A30: 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 20 he Graphics VDU
018A40: 61 6C 6C 6F 77 73 20 69 6E 64 69 76 69 64 75 61 allows individua
018A50: 6C 20 70 69 78 65 6C 73 20 28 64 6F 74 73 29 20 l pixels (dots)
018A60: 74 6F 20 62 65 20 73 65 74 20 20 6F 72 20 20 74 to be set or t
018A70: 65 73 74 65 64 0D 0A 20 20 20 20 20 20 20 61 6E ested.. an
018A80: 64 20 6C 69 6E 65 73 20 74 6F 20 62 65 20 64 72 d lines to be dr
018A90: 61 77 6E 2E 20 54 68 65 20 70 6C 6F 74 74 69 6E awn. The plottin
018AA0: 67 20 74 61 6B 65 73 20 70 6C 61 63 65 20 20 6F g takes place o
018AB0: 6E 20 20 61 6E 20 20 69 64 65 61 6C 20 20 73 63 n an ideal sc
018AC0: 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 74 68 61 reen.. tha
018AD0: 74 20 69 73 20 61 6C 77 61 79 73 20 36 34 30 20 t is always 640
018AE0: 70 6F 69 6E 74 73 20 77 69 64 65 20 61 6E 64 20 points wide and
018AF0: 34 30 30 20 70 6F 69 6E 74 73 20 68 69 67 68 2E 400 points high.
018B00: 20 20 54 68 69 73 20 20 6D 65 61 6E 73 20 20 74 This means t
018B10: 68 61 74 0D 0A 20 20 20 20 20 20 20 6D 6F 72 65 hat.. more
018B20: 20 74 68 61 6E 20 6F 6E 65 20 70 6F 69 6E 74 20 than one point
018B30: 6F 6E 20 74 68 65 20 69 64 65 61 6C 20 73 63 72 on the ideal scr
018B40: 65 65 6E 20 77 69 6C 6C 20 20 6D 61 70 20 20 6F een will map o
018B50: 6E 74 6F 20 20 61 20 20 70 61 72 74 69 63 75 6C nto a particul
018B60: 61 72 0D 0A 20 20 20 20 20 20 20 70 69 78 65 6C ar.. pixel
018B70: 20 6F 6E 20 74 68 65 20 72 65 61 6C 20 73 63 72 on the real scr
018B80: 65 65 6E 2E 20 54 68 65 20 77 69 64 74 68 20 6F een. The width o
018B90: 66 20 74 68 65 20 69 64 65 61 6C 20 73 63 72 65 f the ideal scre
018BA0: 65 6E 20 20 28 36 34 30 20 20 70 6F 69 6E 74 73 en (640 points
018BB0: 29 0D 0A 20 20 20 20 20 20 20 69 73 20 63 68 6F ).. is cho
018BC0: 73 65 6E 20 74 6F 20 62 65 20 74 68 65 20 68 6F sen to be the ho
018BD0: 72 69 7A 6F 6E 74 61 6C 20 6E 75 6D 62 65 72 20 rizontal number
018BE0: 6F 66 20 70 69 78 65 6C 73 20 6F 6E 20 74 68 65 of pixels on the
018BF0: 20 73 63 72 65 65 6E 20 20 69 6E 20 20 74 68 65 screen in the
018C00: 0D 0A 20 20 20 20 20 20 20 68 69 67 68 65 73 74 .. highest
018C10: 20 72 65 73 6F 6C 75 74 69 6F 6E 20 6D 6F 64 65 resolution mode
018C20: 20 28 6D 6F 64 65 20 32 29 2E 20 54 68 65 20 68 (mode 2). The h
018C30: 65 69 67 68 74 20 6F 66 20 74 68 65 20 69 64 65 eight of the ide
018C40: 61 6C 20 73 63 72 65 65 6E 20 20 28 34 30 30 0D al screen (400.
018C50: 0A 20 20 20 20 20 20 20 70 6F 69 6E 74 73 29 20 . points)
018C60: 69 73 20 63 68 6F 73 65 6E 20 74 6F 20 62 65 20 is chosen to be
018C70: 74 77 69 63 65 20 74 68 65 20 76 65 72 74 69 63 twice the vertic
018C80: 61 6C 20 6E 75 6D 62 65 72 20 20 6F 66 20 20 70 al number of p
018C90: 69 78 65 6C 73 20 20 6F 6E 20 20 74 68 65 0D 0A ixels on the..
018CA0: 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 69 6E screen in
018CB0: 20 61 6C 6C 20 6D 6F 64 65 73 2E 20 54 68 69 73 all modes. This
018CC0: 20 65 6E 73 75 72 65 73 20 74 68 61 74 20 74 68 ensures that th
018CD0: 65 20 61 73 70 65 63 74 20 72 61 74 69 6F 20 6F e aspect ratio o
018CE0: 66 20 74 68 65 20 20 73 63 72 65 65 6E 0D 0A 20 f the screen..
018CF0: 20 20 20 20 20 20 69 73 20 20 61 70 70 72 6F 78 is approx
018D00: 69 6D 61 74 65 6C 79 20 20 75 6E 69 74 79 2C 20 imately unity,
018D10: 20 69 2E 65 2E 20 20 61 20 20 63 69 72 63 6C 65 i.e. a circle
018D20: 20 20 6C 6F 6F 6B 73 20 20 63 69 72 63 75 6C 61 looks circula
018D30: 72 20 20 61 6E 64 20 20 20 6E 6F 74 0D 0A 20 20 r and not..
018D40: 20 20 20 20 20 65 6C 6C 69 70 74 69 63 61 6C 2E elliptical.
018D50: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 35 2E 31 ...... 5.1
018D60: 20 47 72 61 70 68 69 63 73 20 56 44 55 20 43 6F Graphics VDU Co
018D70: 6F 72 64 69 6E 61 74 65 20 53 79 73 74 65 6D 73 ordinate Systems
018D80: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
018D90: 47 72 61 70 68 69 63 73 20 20 56 44 55 20 20 75 Graphics VDU u
018DA0: 73 65 73 20 20 34 20 20 63 6F 6F 72 64 69 6E 61 ses 4 coordina
018DB0: 74 65 20 20 73 79 73 74 65 6D 73 2E 20 20 54 68 te systems. Th
018DC0: 65 20 20 75 73 65 72 20 20 73 70 65 63 69 66 69 e user specifi
018DD0: 65 73 0D 0A 20 20 20 20 20 20 20 70 6F 73 69 74 es.. posit
018DE0: 69 6F 6E 73 20 69 6E 20 75 73 65 72 20 63 6F 6F ions in user coo
018DF0: 72 64 69 6E 61 74 65 73 20 6F 72 20 72 65 6C 61 rdinates or rela
018E00: 74 69 76 65 20 63 6F 6F 72 64 69 6E 61 74 65 73 tive coordinates
018E10: 20 6F 72 20 20 6F 63 63 61 73 69 6F 6E 61 6C 6C or occasionall
018E20: 79 0D 0A 20 20 20 20 20 20 20 69 6E 20 20 73 74 y.. in st
018E30: 61 6E 64 61 72 64 20 20 63 6F 6F 72 64 69 6E 61 andard coordina
018E40: 74 65 73 2E 20 20 49 6E 74 65 72 6E 61 6C 6C 79 tes. Internally
018E50: 20 20 74 68 65 20 20 47 72 61 70 68 69 63 73 20 the Graphics
018E60: 20 56 44 55 20 20 75 73 65 73 20 20 62 61 73 65 VDU uses base
018E70: 0D 0A 20 20 20 20 20 20 20 63 6F 6F 72 64 69 6E .. coordin
018E80: 61 74 65 73 20 28 6F 72 20 6F 63 63 61 73 69 6F ates (or occasio
018E90: 6E 61 6C 6C 79 20 73 74 61 6E 64 61 72 64 20 63 nally standard c
018EA0: 6F 6F 72 64 69 6E 61 74 65 73 29 2E 0D 0A 0D 0A oordinates).....
018EB0: 20 20 20 20 20 20 20 55 73 65 72 20 63 6F 6F 72 User coor
018EC0: 64 69 6E 61 74 65 73 2C 20 72 65 6C 61 74 69 76 dinates, relativ
018ED0: 65 20 63 6F 6F 72 64 69 6E 61 74 65 73 2C 20 61 e coordinates, a
018EE0: 6E 64 20 73 74 61 6E 64 61 72 64 20 20 63 6F 6F nd standard coo
018EF0: 72 64 69 6E 61 74 65 73 20 20 61 72 65 0D 0A 20 rdinates are..
018F00: 20 20 20 20 20 20 61 6C 6C 20 76 65 72 79 20 73 all very s
018F10: 69 6D 69 6C 61 72 2E 20 54 68 65 79 20 61 6C 6C imilar. They all
018F20: 20 75 73 65 20 31 36 20 62 69 74 20 6E 75 6D 62 use 16 bit numb
018F30: 65 72 73 20 61 6E 64 20 77 6F 72 6B 20 6F 6E 20 ers and work on
018F40: 70 6F 69 6E 74 73 20 20 77 69 74 68 0D 0A 20 20 points with..
018F50: 20 20 20 20 20 58 2D 63 6F 6F 72 64 69 6E 61 74 X-coordinat
018F60: 65 73 20 72 75 6E 6E 69 6E 67 20 6C 65 66 74 20 es running left
018F70: 74 6F 20 72 69 67 68 74 20 61 6E 64 20 59 2D 63 to right and Y-c
018F80: 6F 6F 72 64 69 6E 61 74 65 73 20 20 72 75 6E 6E oordinates runn
018F90: 69 6E 67 20 20 62 6F 74 74 6F 6D 0D 0A 20 20 20 ing bottom..
018FA0: 20 20 20 20 74 6F 20 74 6F 70 2E 20 54 68 65 20 to top. The
018FB0: 73 63 72 65 65 6E 20 69 73 20 61 6C 77 61 79 73 screen is always
018FC0: 20 34 30 30 20 20 70 6F 69 6E 74 73 20 20 68 69 400 points hi
018FD0: 67 68 20 20 61 6E 64 20 20 36 34 30 20 20 70 6F gh and 640 po
018FE0: 69 6E 74 73 20 20 77 69 64 65 0D 0A 20 20 20 20 ints wide..
018FF0: 20 20 20 77 68 61 74 65 76 65 72 20 74 68 65 20 whatever the
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: 73 63 72 65 65 6E 20 6D 6F 64 65 2E 20 54 68 69 screen mode. Thi
019110: 73 20 6D 65 61 6E 73 20 74 68 61 74 20 61 20 70 s means that a p
019120: 69 78 65 6C 20 28 64 6F 74 20 6F 6E 20 74 68 65 ixel (dot on the
019130: 20 20 73 63 72 65 65 6E 29 0D 0A 20 20 20 20 20 screen)..
019140: 20 20 69 73 20 6D 61 70 70 65 64 20 6F 6E 74 6F is mapped onto
019150: 20 62 79 20 38 20 70 6F 69 6E 74 73 20 69 6E 20 by 8 points in
019160: 6D 6F 64 65 20 30 2C 20 34 20 70 6F 69 6E 74 73 mode 0, 4 points
019170: 20 69 6E 20 6D 6F 64 65 20 31 20 61 6E 64 20 32 in mode 1 and 2
019180: 20 20 70 6F 69 6E 74 73 0D 0A 20 20 20 20 20 20 points..
019190: 20 69 6E 20 6D 6F 64 65 20 32 2E 20 54 68 65 20 in mode 2. The
0191A0: 6F 72 69 67 69 6E 20 28 63 6F 6F 72 64 69 6E 61 origin (coordina
0191B0: 74 65 20 28 30 2C 30 29 29 20 6F 66 20 74 68 65 te (0,0)) of the
0191C0: 73 65 20 73 79 73 74 65 6D 73 20 76 61 72 79 3A se systems vary:
0191D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ......
0191E0: 20 20 20 20 20 20 49 6E 20 73 74 61 6E 64 61 72 In standar
0191F0: 64 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 74 68 d coordinates th
019200: 65 20 6F 72 69 67 69 6E 20 69 73 20 74 68 65 20 e origin is the
019210: 70 6F 69 6E 74 20 61 74 20 74 68 65 20 62 6F 74 point at the bot
019220: 74 6F 6D 0D 0A 20 20 20 20 20 20 20 20 20 20 20 tom..
019230: 20 20 20 20 20 6C 65 66 74 20 63 6F 72 6E 65 72 left corner
019240: 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E 2E 0D of the screen..
019250: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
019260: 20 20 20 54 68 65 20 6F 72 69 67 69 6E 20 6F 66 The origin of
019270: 20 75 73 65 72 20 63 6F 6F 72 64 69 6E 61 74 65 user coordinate
019280: 73 20 63 61 6E 20 62 65 20 73 65 74 20 62 79 20 s can be set by
019290: 20 74 68 65 20 20 75 73 65 72 2E 20 20 54 68 65 the user. The
0192A0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0192B0: 20 20 64 65 66 61 75 6C 74 20 6F 72 69 67 69 6E default origin
0192C0: 20 69 73 20 61 74 20 74 68 65 20 62 6F 74 74 6F is at the botto
0192D0: 6D 20 6C 65 66 74 20 63 6F 72 6E 65 72 20 20 6F m left corner o
0192E0: 66 20 20 74 68 65 20 20 73 63 72 65 65 6E 2E 0D f the screen..
0192F0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
019300: 20 54 68 69 73 20 6D 61 6B 65 20 74 68 65 20 20 This make the
019310: 64 65 66 61 75 6C 74 20 20 75 73 65 72 20 20 63 default user c
019320: 6F 6F 72 64 69 6E 61 74 65 73 20 20 74 68 65 20 oordinates the
019330: 20 73 61 6D 65 20 20 61 73 20 20 74 68 65 0D 0A same as the..
019340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019350: 73 74 61 6E 64 61 72 64 20 63 6F 6F 72 64 69 6E standard coordin
019360: 61 74 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ates.....
019370: 20 20 20 20 20 20 20 20 20 54 68 65 20 6F 72 69 The ori
019380: 67 69 6E 20 6F 66 20 72 65 6C 61 74 69 76 65 20 gin of relative
019390: 63 6F 6F 72 64 69 6E 61 74 65 73 20 69 73 20 20 coordinates is
0193A0: 74 68 65 20 20 63 75 72 72 65 6E 74 20 20 70 6F the current po
0193B0: 73 69 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 20 sition..
0193C0: 20 20 20 20 20 20 20 20 28 73 65 65 20 35 2E 32 (see 5.2
0193D0: 20 62 65 6C 6F 77 29 2E 20 54 68 69 73 20 20 61 below). This a
0193E0: 6C 6C 6F 77 73 20 20 70 6C 6F 74 74 69 6E 67 20 llows plotting
0193F0: 20 74 6F 20 20 62 65 20 20 63 61 72 72 69 65 64 to be carried
019400: 20 20 6F 75 74 0D 0A 20 20 20 20 20 20 20 20 20 out..
019410: 20 20 20 20 20 20 20 69 6E 64 65 70 65 6E 64 65 independe
019420: 6E 74 6C 79 20 6F 66 20 74 68 65 20 70 6F 73 69 ntly of the posi
019430: 74 69 6F 6E 20 6F 6E 20 74 68 65 20 73 63 72 65 tion on the scre
019440: 65 6E 20 61 6E 64 20 69 73 20 75 73 65 66 75 6C en and is useful
019450: 20 20 69 66 0D 0A 20 20 20 20 20 20 20 20 20 20 if..
019460: 20 20 20 20 20 20 61 20 70 61 72 74 69 63 75 6C a particul
019470: 61 72 20 73 68 61 70 65 20 69 73 20 74 6F 20 62 ar shape is to b
019480: 65 20 72 65 70 65 61 74 65 64 20 6F 6E 20 74 68 e repeated on th
019490: 65 20 73 63 72 65 65 6E 20 20 61 20 20 6E 75 6D e screen a num
0194A0: 62 65 72 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ber..
0194B0: 20 20 20 20 20 6F 66 20 74 69 6D 65 73 20 6F 72 of times or
0194C0: 20 69 66 20 69 74 20 20 69 73 20 20 69 6E 63 6F if it is inco
0194D0: 6E 76 65 6E 69 65 6E 74 20 20 74 6F 20 20 6B 65 nvenient to ke
0194E0: 65 70 20 20 74 72 61 63 6B 20 20 6F 66 20 20 74 ep track of t
0194F0: 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 he..
019500: 20 20 20 20 63 75 72 72 65 6E 74 20 6C 6F 63 61 current loca
019510: 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tion.......
019520: 20 20 42 61 73 65 20 63 6F 6F 72 64 69 6E 61 74 Base coordinat
019530: 65 73 20 61 72 65 20 61 20 70 68 79 73 69 63 61 es are a physica
019540: 6C 20 63 6F 6F 72 64 69 6E 61 74 65 20 20 73 79 l coordinate sy
019550: 73 74 65 6D 20 20 77 68 69 63 68 20 20 64 65 61 stem which dea
019560: 6C 73 20 20 77 69 74 68 0D 0A 20 20 20 20 20 20 ls with..
019570: 20 70 69 78 65 6C 73 2E 20 58 2D 63 6F 6F 72 64 pixels. X-coord
019580: 69 6E 61 74 65 73 20 72 75 6E 20 6C 65 66 74 20 inates run left
019590: 74 6F 20 72 69 67 68 74 20 61 6E 64 20 59 2D 63 to right and Y-c
0195A0: 6F 6F 72 64 69 6E 61 74 65 73 20 20 72 75 6E 20 oordinates run
0195B0: 20 62 6F 74 74 6F 6D 0D 0A 20 20 20 20 20 20 20 bottom..
0195C0: 74 6F 20 74 6F 70 2E 20 50 69 78 65 6C 20 28 30 to top. Pixel (0
0195D0: 2C 30 29 20 69 73 20 74 68 65 20 70 69 78 65 6C ,0) is the pixel
0195E0: 20 61 74 20 74 68 65 20 20 62 6F 74 74 6F 6D 20 at the bottom
0195F0: 20 6C 65 66 74 20 20 63 6F 72 6E 65 72 20 20 6F left corner o
019600: 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 73 f the.. s
019610: 63 72 65 65 6E 2E 20 42 65 63 61 75 73 65 20 74 creen. Because t
019620: 68 69 73 20 63 6F 6F 72 64 69 6E 61 74 65 20 73 his coordinate s
019630: 79 73 74 65 6D 20 77 6F 72 6B 73 20 69 6E 20 70 ystem works in p
019640: 69 78 65 6C 73 20 74 68 65 20 63 6F 6F 72 64 69 ixels the coordi
019650: 6E 61 74 65 73 0D 0A 20 20 20 20 20 20 20 6F 66 nates.. of
019660: 20 20 70 6F 73 69 74 69 6F 6E 73 20 20 6F 6E 20 positions on
019670: 20 74 68 65 20 20 73 63 72 65 65 6E 20 20 64 65 the screen de
019680: 70 65 6E 64 20 20 75 70 6F 6E 20 20 74 68 65 20 pend upon the
019690: 20 73 63 72 65 65 6E 20 20 6D 6F 64 65 2E 20 20 screen mode.
0196A0: 42 61 73 65 0D 0A 20 20 20 20 20 20 20 63 6F 6F Base.. coo
0196B0: 72 64 69 6E 61 74 65 73 20 61 72 65 20 75 6E 73 rdinates are uns
0196C0: 69 67 6E 65 64 20 31 36 20 62 69 74 20 20 6E 75 igned 16 bit nu
0196D0: 6D 62 65 72 73 20 20 61 6E 64 20 20 6F 6E 6C 79 mbers and only
0196E0: 20 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 20 74 coordinates t
0196F0: 68 61 74 0D 0A 20 20 20 20 20 20 20 72 65 66 65 hat.. refe
019700: 72 20 74 6F 20 61 20 70 69 78 65 6C 20 6F 6E 20 r to a pixel on
019710: 74 68 65 20 73 63 72 65 65 6E 20 61 72 65 20 76 the screen are v
019720: 61 6C 69 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 alid.......
019730: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
019740: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
019750: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
019760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019770: 70 61 67 65 20 35 2E 31 0D 0A 0D 0A 0D 0A 0D 0A page 5.1........
019780: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 72 61 ...... Gra
019790: 70 68 69 63 73 20 20 72 6F 75 74 69 6E 65 73 20 phics routines
0197A0: 20 63 6F 6E 76 65 72 74 20 20 66 72 6F 6D 20 20 convert from
0197B0: 20 72 65 6C 61 74 69 76 65 20 20 20 63 6F 6F 72 relative coor
0197C0: 64 69 6E 61 74 65 73 20 20 20 74 6F 20 20 20 75 dinates to u
0197D0: 73 65 72 0D 0A 20 20 20 20 20 20 20 63 6F 6F 72 ser.. coor
0197E0: 64 69 6E 61 74 65 73 2C 20 69 66 20 6E 65 63 65 dinates, if nece
0197F0: 73 73 61 72 79 2C 20 61 6E 64 20 74 68 65 6E 20 ssary, and then
019800: 20 66 72 6F 6D 20 20 75 73 65 72 20 20 63 6F 6F from user coo
019810: 72 64 69 6E 61 74 65 73 20 20 74 6F 20 20 62 61 rdinates to ba
019820: 73 65 0D 0A 20 20 20 20 20 20 20 63 6F 6F 72 64 se.. coord
019830: 69 6E 61 74 65 73 20 62 65 66 6F 72 65 20 61 63 inates before ac
019840: 63 65 73 73 69 6E 67 20 74 68 65 20 70 68 79 73 cessing the phys
019850: 69 63 61 6C 20 73 63 72 65 65 6E 2E 20 20 44 75 ical screen. Du
019860: 72 69 6E 67 20 20 74 68 65 20 20 6C 61 74 74 65 ring the latte
019870: 72 0D 0A 20 20 20 20 20 20 20 63 6F 6E 76 65 72 r.. conver
019880: 73 69 6F 6E 20 74 68 65 72 65 20 69 73 20 61 20 sion there is a
019890: 6C 6F 73 73 20 6F 66 20 20 61 63 63 75 72 61 63 loss of accurac
0198A0: 79 20 20 62 65 63 61 75 73 65 20 20 6F 66 20 20 y because of
0198B0: 74 68 65 20 20 6D 61 70 70 69 6E 67 20 20 6F 66 the mapping of
0198C0: 0D 0A 20 20 20 20 20 20 20 6D 75 6C 74 69 70 6C .. multipl
0198D0: 65 20 70 6F 69 6E 74 73 20 6F 6E 74 6F 20 61 20 e points onto a
0198E0: 73 69 6E 67 6C 65 20 70 69 78 65 6C 2E 20 54 68 single pixel. Th
0198F0: 69 73 20 63 6F 75 6C 64 20 6D 61 6B 65 20 73 68 is could make sh
019900: 61 70 65 73 20 20 64 72 61 77 6E 20 20 6F 6E 0D apes drawn on.
019910: 0A 20 20 20 20 20 20 20 74 68 65 20 73 63 72 65 . the scre
019920: 65 6E 20 61 70 70 65 61 72 20 61 73 79 6D 6D 65 en appear asymme
019930: 74 72 69 63 61 6C 20 28 70 61 72 74 69 63 75 6C trical (particul
019940: 61 72 6C 79 20 63 69 72 63 6C 65 73 29 20 62 75 arly circles) bu
019950: 74 20 74 68 65 20 47 72 61 70 68 69 63 73 0D 0A t the Graphics..
019960: 20 20 20 20 20 20 20 56 44 55 20 61 76 6F 69 64 VDU avoid
019970: 73 20 74 68 69 73 20 62 79 20 72 6F 75 6E 64 69 s this by roundi
019980: 6E 67 20 74 68 65 20 63 6F 6F 72 64 69 6E 61 74 ng the coordinat
019990: 65 73 20 74 6F 77 61 72 64 73 20 74 68 65 20 20 es towards the
0199A0: 75 73 65 72 20 20 6F 72 69 67 69 6E 2E 0D 0A 0D user origin....
0199B0: 0A 20 20 20 20 20 20 20 54 68 75 73 20 73 79 6D . Thus sym
0199C0: 6D 65 74 72 69 63 61 6C 20 73 68 61 70 65 73 20 metrical shapes
0199D0: 73 68 6F 75 6C 64 20 62 65 20 64 72 61 77 6E 20 should be drawn
0199E0: 73 79 6D 6D 65 74 72 69 63 61 6C 6C 79 20 61 62 symmetrically ab
0199F0: 6F 75 74 20 20 74 68 65 20 20 75 73 65 72 0D 0A out the user..
019A00: 20 20 20 20 20 20 20 6F 72 69 67 69 6E 20 74 6F origin to
019A10: 20 74 61 6B 65 20 61 64 76 61 6E 74 61 67 65 20 take advantage
019A20: 6F 66 20 74 68 65 20 72 6F 75 6E 64 69 6E 67 2E of the rounding.
019A30: 20 49 66 20 74 68 65 20 73 68 61 70 65 20 69 73 If the shape is
019A40: 20 6E 6F 74 20 20 63 65 6E 74 72 65 64 0D 0A 20 not centred..
019A50: 20 20 20 20 20 20 6F 6E 20 74 68 65 20 75 73 65 on the use
019A60: 72 20 6F 72 69 67 69 6E 20 74 68 65 6E 20 74 68 r origin then th
019A70: 65 20 61 73 79 6D 6D 65 74 72 79 20 6D 61 79 20 e asymmetry may
019A80: 72 65 61 70 70 65 61 72 2E 0D 0A 0D 0A 20 20 20 reappear.....
019A90: 20 20 20 20 49 6E 20 56 31 2E 31 20 66 69 72 6D In V1.1 firm
019AA0: 77 61 72 65 20 69 74 20 69 73 20 70 6F 73 73 69 ware it is possi
019AB0: 62 6C 65 20 74 6F 20 63 61 6C 6C 20 47 52 41 20 ble to call GRA
019AC0: 46 52 4F 4D 20 55 53 45 52 20 74 6F 20 63 6F 6E FROM USER to con
019AD0: 76 65 72 74 20 20 66 72 6F 6D 0D 0A 20 20 20 20 vert from..
019AE0: 20 20 20 75 73 65 72 20 74 6F 20 62 61 73 65 20 user to base
019AF0: 63 6F 6F 72 64 69 6E 61 74 65 73 20 2D 20 74 68 coordinates - th
019B00: 69 73 20 77 69 6C 6C 20 6D 61 6B 65 20 75 73 69 is will make usi
019B10: 6E 67 20 72 6F 75 74 69 6E 65 73 20 69 6E 20 74 ng routines in t
019B20: 68 65 20 20 6C 6F 77 65 72 0D 0A 20 20 20 20 20 he lower..
019B30: 20 20 6C 65 76 65 6C 20 73 63 72 65 65 6E 20 70 level screen p
019B40: 61 63 6B 20 65 61 73 69 65 72 20 28 65 2E 67 2E ack easier (e.g.
019B50: 20 53 43 52 20 44 4F 54 20 50 4F 53 49 54 49 4F SCR DOT POSITIO
019B60: 4E 2C 20 53 43 52 20 20 48 4F 52 49 5A 4F 4E 54 N, SCR HORIZONT
019B70: 41 4C 2C 20 20 53 43 52 0D 0A 20 20 20 20 20 20 AL, SCR..
019B80: 20 56 45 52 54 49 43 41 4C 29 2E 0D 0A 0D 0A 20 VERTICAL).....
019B90: 20 20 20 20 20 20 35 2E 32 20 54 68 65 20 43 75 5.2 The Cu
019BA0: 72 72 65 6E 74 20 47 72 61 70 68 69 63 73 20 50 rrent Graphics P
019BB0: 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 osition.....
019BC0: 20 20 20 54 68 65 20 20 47 72 61 70 68 69 63 73 The Graphics
019BD0: 20 20 56 44 55 20 20 73 74 6F 72 65 73 20 20 61 VDU stores a
019BE0: 20 20 63 75 72 72 65 6E 74 20 20 70 6F 73 69 74 current posit
019BF0: 69 6F 6E 2E 20 20 54 68 69 73 20 20 69 73 20 20 ion. This is
019C00: 74 68 65 20 20 75 73 65 72 0D 0A 20 20 20 20 20 the user..
019C10: 20 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F 66 20 coordinate of
019C20: 74 68 65 20 6C 61 73 74 20 70 6F 69 6E 74 20 73 the last point s
019C30: 70 65 63 69 66 69 65 64 20 74 6F 20 74 68 65 20 pecified to the
019C40: 20 47 72 61 70 68 69 63 73 20 20 56 44 55 20 20 Graphics VDU
019C50: 28 6F 72 20 20 74 68 65 0D 0A 20 20 20 20 20 20 (or the..
019C60: 20 6F 72 69 67 69 6E 20 61 66 74 65 72 20 63 6C origin after cl
019C70: 65 61 72 69 6E 67 20 74 68 65 20 67 72 61 70 68 earing the graph
019C80: 69 63 73 20 77 69 6E 64 6F 77 29 2E 20 20 54 68 ics window). Th
019C90: 65 20 20 6F 72 69 67 69 6E 20 20 6F 66 20 20 72 e origin of r
019CA0: 65 6C 61 74 69 76 65 0D 0A 20 20 20 20 20 20 20 elative..
019CB0: 63 6F 6F 72 64 69 6E 61 74 65 73 20 20 69 73 20 coordinates is
019CC0: 20 73 70 65 63 69 66 69 65 64 20 20 74 6F 20 20 specified to
019CD0: 62 65 20 20 61 74 20 20 74 68 69 73 20 20 70 6F be at this po
019CE0: 69 6E 74 2C 20 20 20 74 68 75 73 20 20 20 72 65 int, thus re
019CF0: 6C 61 74 69 76 65 0D 0A 20 20 20 20 20 20 20 63 lative.. c
019D00: 6F 6F 72 64 69 6E 61 74 65 73 20 61 72 65 20 61 oordinates are a
019D10: 6E 20 6F 66 66 73 65 74 20 66 72 6F 6D 20 74 68 n offset from th
019D20: 65 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 69 e current positi
019D30: 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 57 68 on..... Wh
019D40: 65 6E 20 64 72 61 77 69 6E 67 20 61 20 6C 69 6E en drawing a lin
019D50: 65 20 6F 6E 65 20 65 6E 64 20 69 73 20 61 74 20 e one end is at
019D60: 74 68 65 20 20 70 6F 73 69 74 69 6F 6E 20 20 73 the position s
019D70: 70 65 63 69 66 69 65 64 20 20 77 68 69 6C 65 20 pecified while
019D80: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 6F 74 68 the.. oth
019D90: 65 72 20 65 6E 64 20 20 69 73 20 20 61 74 20 20 er end is at
019DA0: 74 68 65 20 20 63 75 72 72 65 6E 74 20 20 67 72 the current gr
019DB0: 61 70 68 69 63 73 20 20 70 6F 73 69 74 69 6F 6E aphics position
019DC0: 2E 20 20 57 68 65 6E 20 20 64 72 61 77 69 6E 67 . When drawing
019DD0: 20 20 61 0D 0A 20 20 20 20 20 20 20 63 68 61 72 a.. char
019DE0: 61 63 74 65 72 20 6F 6E 20 74 68 65 20 73 63 72 acter on the scr
019DF0: 65 65 6E 20 75 73 69 6E 67 20 74 68 65 20 67 72 een using the gr
019E00: 61 70 68 69 63 73 20 63 68 61 72 61 63 74 65 72 aphics character
019E10: 20 77 72 69 74 65 20 72 6F 75 74 69 6E 65 20 74 write routine t
019E20: 68 65 0D 0A 20 20 20 20 20 20 20 63 68 61 72 61 he.. chara
019E30: 63 74 65 72 20 69 73 20 70 6C 61 63 65 64 20 77 cter is placed w
019E40: 69 74 68 20 74 68 65 20 63 75 72 72 65 6E 74 20 ith the current
019E50: 67 72 61 70 68 69 63 73 20 20 20 70 6F 73 69 74 graphics posit
019E60: 69 6F 6E 20 20 20 62 65 69 6E 67 20 20 20 74 68 ion being th
019E70: 65 0D 0A 20 20 20 20 20 20 20 74 6F 70 20 6C 65 e.. top le
019E80: 66 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 ft corner of the
019E90: 20 63 68 61 72 61 63 74 65 72 2E 0D 0A 0D 0A 20 character.....
019EA0: 20 20 20 20 20 20 41 66 74 65 72 20 70 6C 6F 74 After plot
019EB0: 74 69 6E 67 20 6F 72 20 74 65 73 74 69 6E 67 20 ting or testing
019EC0: 61 20 20 70 6F 69 6E 74 20 20 6F 72 20 20 64 72 a point or dr
019ED0: 61 77 69 6E 67 20 20 61 20 20 6C 69 6E 65 20 20 awing a line
019EE0: 74 68 65 20 20 63 75 72 72 65 6E 74 0D 0A 20 20 the current..
019EF0: 20 20 20 20 20 70 6F 73 69 74 69 6F 6E 20 69 73 position is
019F00: 20 6D 6F 76 65 64 20 74 6F 20 74 68 65 20 70 6F moved to the po
019F10: 73 69 74 69 6F 6E 20 73 70 65 63 69 66 69 65 64 sition specified
019F20: 2E 20 41 66 74 65 72 20 77 72 69 74 69 6E 67 20 . After writing
019F30: 61 20 63 68 61 72 61 63 74 65 72 0D 0A 20 20 20 a character..
019F40: 20 20 20 20 74 68 65 20 63 75 72 72 65 6E 74 20 the current
019F50: 67 72 61 70 68 69 63 73 20 70 6F 73 69 74 69 6F graphics positio
019F60: 6E 20 69 73 20 6D 6F 76 65 64 20 20 72 69 67 68 n is moved righ
019F70: 74 20 20 62 79 20 20 74 68 65 20 20 77 69 64 74 t by the widt
019F80: 68 20 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 h of the..
019F90: 20 20 20 63 68 61 72 61 63 74 65 72 20 72 65 61 character rea
019FA0: 64 79 20 66 6F 72 20 74 68 65 20 6E 65 78 74 20 dy for the next
019FB0: 63 68 61 72 61 63 74 65 72 20 74 6F 20 62 65 20 character to be
019FC0: 77 72 69 74 74 65 6E 2E 0D 0A 0D 0A 20 20 20 20 written.....
019FD0: 20 20 20 35 2E 33 20 47 72 61 70 68 69 63 73 20 5.3 Graphics
019FE0: 50 65 6E 20 61 6E 64 20 50 61 70 65 72 20 49 6E Pen and Paper In
019FF0: 6B 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ks.......
01A000: 54 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 The Graphics VDU
01A010: 20 68 61 73 20 61 20 70 65 6E 20 28 66 6F 72 65 has a pen (fore
01A020: 67 72 6F 75 6E 64 29 20 69 6E 6B 20 61 6E 64 20 ground) ink and
01A030: 61 20 20 70 61 70 65 72 20 20 28 62 61 63 6B 67 a paper (backg
01A040: 72 6F 75 6E 64 29 0D 0A 20 20 20 20 20 20 20 69 round).. i
01A050: 6E 6B 2E 20 54 68 65 20 67 72 61 70 68 69 63 73 nk. The graphics
01A060: 20 70 65 6E 20 69 6E 6B 20 69 73 20 75 73 65 64 pen ink is used
01A070: 20 74 6F 20 70 6C 6F 74 20 70 69 78 65 6C 73 20 to plot pixels
01A080: 61 6E 64 20 74 6F 20 73 65 74 20 66 6F 72 65 67 and to set foreg
01A090: 72 6F 75 6E 64 0D 0A 20 20 20 20 20 20 20 70 69 round.. pi
01A0A0: 78 65 6C 73 20 77 68 65 6E 20 77 72 69 74 69 6E xels when writin
01A0B0: 67 20 63 68 61 72 61 63 74 65 72 73 20 28 73 65 g characters (se
01A0C0: 65 20 35 2E 36 20 62 65 6C 6F 77 29 20 61 6E 64 e 5.6 below) and
01A0D0: 20 64 72 61 77 69 6E 67 20 6C 69 6E 65 73 20 20 drawing lines
01A0E0: 28 73 65 65 0D 0A 20 20 20 20 20 20 20 35 2E 37 (see.. 5.7
01A0F0: 20 62 65 6C 6F 77 29 2E 20 54 68 65 20 67 72 61 below). The gra
01A100: 70 68 69 63 73 20 70 61 70 65 72 20 69 6E 6B 20 phics paper ink
01A110: 20 69 73 20 20 75 73 65 64 20 20 74 6F 20 20 63 is used to c
01A120: 6C 65 61 72 20 20 74 68 65 20 20 67 72 61 70 68 lear the graph
01A130: 69 63 73 0D 0A 20 20 20 20 20 20 20 77 69 6E 64 ics.. wind
01A140: 6F 77 20 61 6E 64 20 74 6F 20 73 65 74 20 62 61 ow and to set ba
01A150: 63 6B 67 72 6F 75 6E 64 20 70 69 78 65 6C 73 20 ckground pixels
01A160: 77 68 65 6E 20 77 72 69 74 69 6E 67 20 63 68 61 when writing cha
01A170: 72 61 63 74 65 72 73 20 6F 72 20 64 72 61 77 69 racters or drawi
01A180: 6E 67 0D 0A 20 20 20 20 20 20 20 6C 69 6E 65 73 ng.. lines
01A190: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
01A1A0: 70 65 6E 20 61 6E 64 20 70 61 70 65 72 20 63 61 pen and paper ca
01A1B0: 6E 20 62 65 20 73 65 74 20 74 6F 20 61 6E 79 20 n be set to any
01A1C0: 69 6E 6B 20 76 61 6C 69 64 20 69 6E 20 20 74 68 ink valid in th
01A1D0: 65 20 20 63 75 72 72 65 6E 74 20 20 73 63 72 65 e current scre
01A1E0: 65 6E 0D 0A 20 20 20 20 20 20 20 6D 6F 64 65 20 en.. mode
01A1F0: 28 73 65 65 20 73 65 63 74 69 6F 6E 20 36 2E 32 (see section 6.2
01A200: 29 2E 20 54 68 65 20 64 65 66 61 75 6C 74 20 68 ). The default h
01A210: 61 73 20 74 68 65 20 70 61 70 65 72 20 73 65 74 as the paper set
01A220: 20 74 6F 20 69 6E 6B 20 30 20 61 6E 64 20 74 68 to ink 0 and th
01A230: 65 0D 0A 20 20 20 20 20 20 20 70 65 6E 20 73 65 e.. pen se
01A240: 74 20 74 6F 20 69 6E 6B 20 31 2E 20 43 68 61 6E t to ink 1. Chan
01A250: 67 69 6E 67 20 74 68 65 20 70 65 6E 20 6F 72 20 ging the pen or
01A260: 70 61 70 65 72 20 69 6E 6B 20 64 6F 65 73 20 20 paper ink does
01A270: 6E 6F 74 20 20 63 68 61 6E 67 65 20 20 74 68 65 not change the
01A280: 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 .. screen
01A290: 69 74 20 6D 65 72 65 6C 79 20 61 6C 74 65 72 73 it merely alters
01A2A0: 20 68 6F 77 20 74 68 65 20 70 69 78 65 6C 73 20 how the pixels
01A2B0: 77 69 6C 6C 20 62 65 20 77 72 69 74 74 65 6E 20 will be written
01A2C0: 69 6E 20 74 68 65 20 66 75 74 75 72 65 2E 0D 0A in the future...
01A2D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 35 2E 34 20 47 .... 5.4 G
01A2E0: 72 61 70 68 69 63 73 20 57 72 69 74 65 20 4D 6F raphics Write Mo
01A2F0: 64 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 50 69 de..... Pi
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: 78 65 6C 73 20 70 6C 6F 74 74 65 64 20 62 79 20 xels plotted by
01A410: 74 68 65 20 47 72 61 70 68 69 63 73 20 20 56 44 the Graphics VD
01A420: 55 20 20 61 72 65 20 20 70 6C 6F 74 74 65 64 20 U are plotted
01A430: 20 75 73 69 6E 67 20 20 74 68 65 20 20 63 75 72 using the cur
01A440: 72 65 6E 74 0D 0A 20 20 20 20 20 20 20 67 72 61 rent.. gra
01A450: 70 68 69 63 73 20 77 72 69 74 65 20 20 6D 6F 64 phics write mod
01A460: 65 2E 20 20 54 68 69 73 20 20 73 70 65 63 69 66 e. This specif
01A470: 69 65 73 20 20 68 6F 77 20 20 74 68 65 20 20 69 ies how the i
01A480: 6E 6B 20 20 74 6F 20 20 62 65 20 20 70 6C 6F 74 nk to be plot
01A490: 74 65 64 0D 0A 20 20 20 20 20 20 20 69 6E 74 65 ted.. inte
01A4A0: 72 61 63 74 73 20 77 69 74 68 20 74 68 65 20 69 racts with the i
01A4B0: 6E 6B 20 61 20 70 69 78 65 6C 20 69 73 20 63 75 nk a pixel is cu
01A4C0: 72 72 65 6E 74 6C 79 20 73 65 74 20 74 6F 2E 0D rrently set to..
01A4D0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
01A4E0: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
01A4F0: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
01A500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A510: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 35 page 5
01A520: 2E 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .2..............
01A530: 20 20 20 20 20 20 20 54 68 65 72 65 20 61 72 65 There are
01A540: 20 66 6F 75 72 20 77 72 69 74 65 20 6D 6F 64 65 four write mode
01A550: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s:....
01A560: 20 20 20 20 20 20 30 3A 46 4F 52 43 45 3A 20 20 0:FORCE:
01A570: 20 20 20 20 20 20 20 20 20 20 4E 45 57 20 3D 20 NEW =
01A580: 49 4E 4B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 INK..
01A590: 20 20 20 20 20 31 3A 45 58 43 4C 55 53 49 56 45 1:EXCLUSIVE
01A5A0: 2D 4F 52 3A 20 20 20 20 20 4E 45 57 20 3D 20 49 -OR: NEW = I
01A5B0: 4E 4B 20 78 6F 72 20 4F 4C 44 0D 0A 20 20 20 20 NK xor OLD..
01A5C0: 20 20 20 20 20 20 20 20 20 20 20 20 32 3A 41 4E 2:AN
01A5D0: 44 3A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 D:
01A5E0: 4E 45 57 20 3D 20 49 4E 4B 20 61 6E 64 20 4F 4C NEW = INK and OL
01A5F0: 44 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 D..
01A600: 20 20 20 33 3A 4F 52 3A 20 20 20 20 20 20 20 20 3:OR:
01A610: 20 20 20 20 20 20 20 4E 45 57 20 3D 20 49 4E 4B NEW = INK
01A620: 20 6F 72 20 4F 4C 44 0D 0A 0D 0A 20 20 20 20 20 or OLD....
01A630: 20 20 20 20 20 20 20 20 20 20 20 4E 45 57 20 69 NEW i
01A640: 73 20 74 68 65 20 69 6E 6B 20 74 68 61 74 20 74 s the ink that t
01A650: 68 65 20 70 69 78 65 6C 73 20 77 69 6C 6C 20 62 he pixels will b
01A660: 65 20 73 65 74 20 74 6F 2E 0D 0A 20 20 20 20 20 e set to...
01A670: 20 20 20 20 20 20 20 20 20 20 20 4F 4C 44 20 69 OLD i
01A680: 73 20 74 68 65 20 69 6E 6B 20 74 68 61 74 20 74 s the ink that t
01A690: 68 65 20 70 69 78 65 6C 20 69 73 20 63 75 72 72 he pixel is curr
01A6A0: 65 6E 74 6C 79 20 73 65 74 20 74 6F 2E 0D 0A 20 ently set to...
01A6B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 I
01A6C0: 4E 4B 20 69 73 20 74 68 65 20 69 6E 6B 20 74 68 NK is the ink th
01A6D0: 61 74 20 69 73 20 74 6F 20 62 65 20 70 6C 6F 74 at is to be plot
01A6E0: 74 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ted..... T
01A6F0: 68 65 20 64 65 66 61 75 6C 74 20 47 72 61 70 68 he default Graph
01A700: 69 63 73 20 77 72 69 74 65 20 6D 6F 64 65 20 69 ics write mode i
01A710: 73 20 46 4F 52 43 45 20 6D 6F 64 65 2E 20 20 54 s FORCE mode. T
01A720: 68 65 20 20 54 65 78 74 20 20 56 44 55 20 20 61 he Text VDU a
01A730: 6C 77 61 79 73 0D 0A 20 20 20 20 20 20 20 73 65 lways.. se
01A740: 74 73 20 70 69 78 65 6C 73 20 61 73 20 69 66 20 ts pixels as if
01A750: 69 74 20 69 73 20 6F 70 65 72 61 74 69 6E 67 20 it is operating
01A760: 69 6E 20 20 74 68 69 73 20 20 6D 6F 64 65 2E 20 in this mode.
01A770: 20 41 6C 73 6F 20 20 74 68 65 20 20 67 72 61 70 Also the grap
01A780: 68 69 63 73 0D 0A 20 20 20 20 20 20 20 77 69 6E hics.. win
01A790: 64 6F 77 20 69 73 20 63 6C 65 61 72 65 64 20 62 dow is cleared b
01A7A0: 79 20 77 72 69 74 69 6E 67 20 69 6E 20 46 4F 52 y writing in FOR
01A7B0: 43 45 20 6D 6F 64 65 20 69 72 72 65 73 70 65 63 CE mode irrespec
01A7C0: 74 69 76 65 20 6F 66 20 74 68 65 20 20 61 63 74 tive of the act
01A7D0: 75 61 6C 0D 0A 20 20 20 20 20 20 20 77 72 69 74 ual.. writ
01A7E0: 65 20 6D 6F 64 65 2E 0D 0A 0D 0A 20 20 20 20 20 e mode.....
01A7F0: 20 20 50 72 6F 76 69 64 65 64 20 74 68 61 74 20 Provided that
01A800: 73 75 69 74 61 62 6C 65 20 69 6E 6B 20 73 65 74 suitable ink set
01A810: 74 69 6E 67 73 20 61 72 65 20 63 68 6F 73 65 6E tings are chosen
01A820: 2C 20 41 4E 44 20 6D 6F 64 65 20 61 6E 64 20 20 , AND mode and
01A830: 4F 52 20 20 6D 6F 64 65 0D 0A 20 20 20 20 20 20 OR mode..
01A840: 20 61 6C 6C 6F 77 20 70 61 72 74 69 63 75 6C 61 allow particula
01A850: 72 20 62 69 74 73 20 69 6E 20 70 69 78 65 6C 20 r bits in pixel
01A860: 74 6F 20 62 65 20 63 6C 65 61 72 65 64 20 6F 72 to be cleared or
01A870: 20 73 65 74 2E 20 54 68 69 73 20 20 61 6C 6C 6F set. This allo
01A880: 77 73 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 ws the..
01A890: 47 72 61 70 68 69 63 73 20 56 44 55 20 74 6F 20 Graphics VDU to
01A8A0: 77 72 69 74 65 20 69 6E 20 27 62 69 74 20 70 6C write in 'bit pl
01A8B0: 61 6E 65 73 27 20 61 6E 64 20 62 79 20 63 68 6F anes' and by cho
01A8C0: 6F 73 69 6E 67 20 74 68 65 20 20 63 6F 6C 6F 75 osing the colou
01A8D0: 72 73 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 74 rs of.. t
01A8E0: 68 65 20 69 6E 6B 73 20 63 61 72 65 66 75 6C 6C he inks carefull
01A8F0: 79 20 6F 76 65 72 6C 61 70 70 69 6E 67 20 73 68 y overlapping sh
01A900: 61 70 65 73 20 63 61 6E 20 62 65 20 64 72 61 77 apes can be draw
01A910: 6E 20 20 61 6E 64 20 20 61 75 74 6F 6D 61 74 69 n and automati
01A920: 63 61 6C 6C 79 0D 0A 20 20 20 20 20 20 20 68 69 cally.. hi
01A930: 64 64 65 6E 20 62 65 68 69 6E 64 20 6F 6E 65 20 dden behind one
01A940: 61 6E 6F 74 68 65 72 2E 0D 0A 0D 0A 20 20 20 20 another.....
01A950: 20 20 20 49 66 20 74 68 65 20 69 6E 6B 73 20 61 If the inks a
01A960: 72 65 20 63 68 6F 73 65 6E 20 73 75 69 74 61 62 re chosen suitab
01A970: 6C 79 2C 20 45 58 43 4C 55 53 49 56 45 2D 4F 52 ly, EXCLUSIVE-OR
01A980: 20 6D 6F 64 65 20 63 61 6E 20 62 65 20 75 73 65 mode can be use
01A990: 64 20 74 6F 20 70 6C 6F 74 0D 0A 20 20 20 20 20 d to plot..
01A9A0: 20 20 6F 76 65 72 20 74 68 65 20 63 75 72 72 65 over the curre
01A9B0: 6E 74 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 74 nt contents of t
01A9C0: 68 65 20 73 63 72 65 65 6E 2E 20 49 74 20 69 73 he screen. It is
01A9D0: 20 61 6C 73 6F 20 75 73 65 66 75 6C 20 20 62 65 also useful be
01A9E0: 63 61 75 73 65 20 20 61 0D 0A 20 20 20 20 20 20 cause a..
01A9F0: 20 73 68 61 70 65 20 20 63 61 6E 20 20 62 65 20 shape can be
01AA00: 20 72 65 6D 6F 76 65 64 20 20 66 72 6F 6D 20 20 removed from
01AA10: 74 68 65 20 20 73 63 72 65 65 6E 20 20 62 79 20 the screen by
01AA20: 20 72 65 64 72 61 77 69 6E 67 20 20 20 69 74 20 redrawing it
01AA30: 20 20 73 69 6E 63 65 0D 0A 20 20 20 20 20 20 20 since..
01AA40: 65 78 63 6C 75 73 69 76 65 2D 6F 72 69 6E 67 20 exclusive-oring
01AA50: 77 69 74 68 20 74 68 65 20 73 61 6D 65 20 69 6E with the same in
01AA60: 6B 20 74 77 69 63 65 20 72 65 73 74 6F 72 65 73 k twice restores
01AA70: 20 74 68 65 20 6F 72 69 67 69 6E 61 6C 20 20 73 the original s
01AA80: 65 74 74 69 6E 67 0D 0A 20 20 20 20 20 20 20 6F etting.. o
01AA90: 66 20 74 68 65 20 70 69 78 65 6C 2E 0D 0A 0D 0A f the pixel.....
01AAA0: 20 20 20 20 20 20 20 54 68 65 20 67 72 61 70 68 The graph
01AAB0: 69 63 73 20 77 72 69 74 65 20 6D 6F 64 65 20 6D ics write mode m
01AAC0: 61 79 20 62 65 20 73 65 74 20 62 79 20 63 61 6C ay be set by cal
01AAD0: 6C 69 6E 67 20 53 43 52 20 41 43 43 45 53 53 20 ling SCR ACCESS
01AAE0: 6F 72 20 62 79 20 75 73 69 6E 67 20 61 0D 0A 20 or by using a..
01AAF0: 20 20 20 20 20 20 63 6F 6E 74 72 6F 6C 20 63 6F control co
01AB00: 64 65 20 28 73 65 65 20 41 70 70 65 6E 64 69 78 de (see Appendix
01AB10: 20 56 49 49 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 VII).....
01AB20: 20 35 2E 35 20 47 72 61 70 68 69 63 73 20 57 69 5.5 Graphics Wi
01AB30: 6E 64 6F 77 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ndow.....
01AB40: 54 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 The Graphics VDU
01AB50: 20 61 6C 6C 6F 77 73 20 61 20 73 69 6E 67 6C 65 allows a single
01AB60: 20 77 69 6E 64 6F 77 20 74 6F 20 62 65 20 73 70 window to be sp
01AB70: 65 63 69 66 69 65 64 2E 20 20 54 68 69 73 20 20 ecified. This
01AB80: 61 6C 6C 6F 77 73 0D 0A 20 20 20 20 20 20 20 74 allows.. t
01AB90: 68 65 20 75 73 65 72 20 20 74 6F 20 20 6D 69 78 he user to mix
01ABA0: 20 20 74 65 78 74 20 20 61 6E 64 20 20 67 72 61 text and gra
01ABB0: 70 68 69 63 73 20 20 6F 6E 20 20 74 68 65 20 20 phics on the
01ABC0: 73 63 72 65 65 6E 20 20 77 69 74 68 6F 75 74 20 screen without
01ABD0: 20 74 68 65 6D 0D 0A 20 20 20 20 20 20 20 69 6E them.. in
01ABE0: 74 65 72 66 65 72 69 6E 67 20 77 69 74 68 20 65 terfering with e
01ABF0: 61 63 68 20 6F 74 68 65 72 2E 20 20 49 66 20 20 ach other. If
01AC00: 74 68 65 20 20 74 65 78 74 20 20 77 69 6E 64 6F the text windo
01AC10: 77 73 20 20 61 72 65 20 20 61 6C 6C 6F 77 65 64 ws are allowed
01AC20: 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 6F 76 65 to.. ove
01AC30: 72 6C 61 70 20 74 68 65 20 67 72 61 70 68 69 63 rlap the graphic
01AC40: 73 20 77 69 6E 64 6F 77 20 74 68 65 6E 20 74 68 s window then th
01AC50: 65 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 74 68 e contents of th
01AC60: 65 20 20 67 72 61 70 68 69 63 73 20 20 77 69 6E e graphics win
01AC70: 64 6F 77 0D 0A 20 20 20 20 20 20 20 77 69 6C 6C dow.. will
01AC80: 20 62 65 20 6D 6F 76 65 64 20 77 68 65 6E 20 74 be moved when t
01AC90: 68 65 20 74 65 78 74 20 77 69 6E 64 6F 77 73 20 he text windows
01ACA0: 61 72 65 20 72 6F 6C 6C 65 64 2E 20 20 54 68 65 are rolled. The
01ACB0: 20 20 67 72 61 70 68 69 63 73 20 20 77 69 6E 64 graphics wind
01ACC0: 6F 77 0D 0A 20 20 20 20 20 20 20 63 61 6E 6E 6F ow.. canno
01ACD0: 74 20 62 65 20 72 6F 6C 6C 65 64 2E 0D 0A 0D 0A t be rolled.....
01ACE0: 20 20 20 20 20 20 20 57 68 65 6E 20 70 6C 6F 74 When plot
01ACF0: 74 69 6E 67 20 70 6F 69 6E 74 2C 20 64 72 61 77 ting point, draw
01AD00: 69 6E 67 20 6C 69 6E 65 73 20 20 6F 72 20 20 77 ing lines or w
01AD10: 72 69 74 69 6E 67 20 20 63 68 61 72 61 63 74 65 riting characte
01AD20: 72 73 20 20 6E 6F 20 20 70 69 78 65 6C 0D 0A 20 rs no pixel..
01AD30: 20 20 20 20 20 20 6F 75 74 73 69 64 65 20 74 68 outside th
01AD40: 65 20 67 72 61 70 68 69 63 73 20 77 69 6E 64 6F e graphics windo
01AD50: 77 20 69 73 20 65 76 65 72 20 77 72 69 74 74 65 w is ever writte
01AD60: 6E 2E 20 55 6E 6C 69 6B 65 20 74 68 65 20 20 74 n. Unlike the t
01AD70: 65 78 74 20 20 77 69 6E 64 6F 77 73 0D 0A 20 20 ext windows..
01AD80: 20 20 20 20 20 6E 6F 20 61 63 74 69 6F 6E 20 69 no action i
01AD90: 73 20 74 61 6B 65 6E 20 74 6F 20 66 6F 72 63 65 s taken to force
01ADA0: 20 20 61 20 20 70 6F 69 6E 74 20 20 69 6E 73 69 a point insi
01ADB0: 64 65 20 20 74 68 65 20 20 77 69 6E 64 6F 77 20 de the window
01ADC0: 20 2D 20 20 61 63 74 69 6F 6E 73 0D 0A 20 20 20 - actions..
01ADD0: 20 20 20 20 6F 75 74 73 69 64 65 20 74 68 65 20 outside the
01ADE0: 77 69 6E 64 6F 77 20 77 69 6C 6C 20 62 65 20 20 window will be
01ADF0: 6C 6F 73 74 2E 20 20 43 6F 6E 76 65 72 73 65 6C lost. Conversel
01AE00: 79 2C 20 20 77 68 65 6E 20 20 74 65 73 74 69 6E y, when testin
01AE10: 67 20 20 70 6F 69 6E 74 73 2C 0D 0A 20 20 20 20 g points,..
01AE20: 20 20 20 70 6F 69 6E 74 73 20 6F 75 74 73 69 64 points outsid
01AE30: 65 20 74 68 65 20 77 69 6E 64 6F 77 20 61 72 65 e the window are
01AE40: 20 61 6C 6C 20 64 65 65 6D 65 64 20 74 6F 20 20 all deemed to
01AE50: 62 65 20 20 73 65 74 20 20 74 6F 20 20 74 68 65 be set to the
01AE60: 20 20 63 75 72 72 65 6E 74 0D 0A 20 20 20 20 20 current..
01AE70: 20 20 67 72 61 70 68 69 63 73 20 70 61 70 65 72 graphics paper
01AE80: 20 69 6E 6B 2E 20 50 6F 69 6E 74 73 20 69 6E 73 ink. Points ins
01AE90: 69 64 65 20 74 68 65 20 77 69 6E 64 6F 77 20 61 ide the window a
01AEA0: 72 65 20 77 72 69 74 74 65 6E 20 61 6E 64 20 20 re written and
01AEB0: 72 65 61 64 20 20 61 73 0D 0A 20 20 20 20 20 20 read as..
01AEC0: 20 65 78 70 65 63 74 65 64 2E 0D 0A 0D 0A 20 20 expected.....
01AED0: 20 20 20 20 20 54 68 65 20 67 72 61 70 68 69 63 The graphic
01AEE0: 73 20 77 69 6E 64 6F 77 20 69 73 20 72 65 6C 61 s window is rela
01AEF0: 74 65 64 20 74 6F 20 61 20 73 70 65 63 69 66 69 ted to a specifi
01AF00: 63 20 61 72 65 61 20 6F 66 20 20 74 68 65 20 20 c area of the
01AF10: 73 63 72 65 65 6E 20 20 61 6E 64 0D 0A 20 20 20 screen and..
01AF20: 20 20 20 20 6E 6F 74 20 74 6F 20 74 68 65 20 75 not to the u
01AF30: 73 65 72 20 63 6F 6F 72 64 69 6E 61 74 65 20 73 ser coordinate s
01AF40: 79 73 74 65 6D 2E 20 54 68 75 73 2C 20 63 68 61 ystem. Thus, cha
01AF50: 6E 67 69 6E 67 20 74 68 65 20 20 6F 72 69 67 69 nging the origi
01AF60: 6E 20 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 n of the..
01AF70: 20 20 20 75 73 65 72 20 63 6F 6F 72 64 69 6E 61 user coordina
01AF80: 74 65 20 73 79 73 74 65 6D 20 77 69 6C 6C 20 6E te system will n
01AF90: 6F 74 20 6D 6F 76 65 20 74 68 65 20 6C 6F 63 61 ot move the loca
01AFA0: 74 69 6F 6E 20 6F 66 20 74 68 65 20 77 69 6E 64 tion of the wind
01AFB0: 6F 77 20 6F 6E 20 74 68 65 0D 0A 20 20 20 20 20 ow on the..
01AFC0: 20 20 73 63 72 65 65 6E 20 61 6C 74 68 6F 75 67 screen althoug
01AFD0: 68 20 69 74 20 64 6F 65 73 20 63 68 61 6E 67 65 h it does change
01AFE0: 20 74 68 65 20 75 73 65 72 20 63 6F 6F 72 64 69 the user coordi
01AFF0: 6E 61 74 65 73 20 6F 66 20 70 6F 69 6E 74 73 20 nates of points
01B000: 20 69 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 in the..
01B010: 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A 20 20 20 20 window.....
01B020: 20 20 20 54 68 65 20 64 65 66 61 75 6C 74 20 67 The default g
01B030: 72 61 70 68 69 63 73 20 77 69 6E 64 6F 77 2C 20 raphics window,
01B040: 73 65 74 20 61 74 20 20 45 4D 53 20 20 61 6E 64 set at EMS and
01B050: 20 20 61 66 74 65 72 20 20 63 68 61 6E 67 69 6E after changin
01B060: 67 20 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 g screen..
01B070: 20 20 6D 6F 64 65 2C 20 63 6F 76 65 72 73 20 74 mode, covers t
01B080: 68 65 20 77 68 6F 6C 65 20 73 63 72 65 65 6E 2E he whole screen.
01B090: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
01B0A0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
01B0B0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
01B0C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01B0D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
01B0E0: 65 20 35 2E 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D e 5.3...........
01B0F0: 0A 0D 0A 20 20 20 20 20 20 20 35 2E 36 20 57 72 ... 5.6 Wr
01B100: 69 74 69 6E 67 20 43 68 61 72 61 63 74 65 72 73 iting Characters
01B110: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
01B120: 47 72 61 70 68 69 63 73 20 56 44 55 20 77 72 69 Graphics VDU wri
01B130: 74 65 20 63 68 61 72 61 63 74 65 72 20 72 6F 75 te character rou
01B140: 74 69 6E 65 20 64 72 61 77 73 20 61 20 20 63 68 tine draws a ch
01B150: 61 72 61 63 74 65 72 20 20 77 69 74 68 20 20 74 aracter with t
01B160: 68 65 0D 0A 20 20 20 20 20 20 20 63 75 72 72 65 he.. curre
01B170: 6E 74 20 67 72 61 70 68 69 63 73 20 70 6F 73 69 nt graphics posi
01B180: 74 69 6F 6E 20 61 74 20 74 68 65 20 74 6F 70 20 tion at the top
01B190: 6C 65 66 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 left corner of t
01B1A0: 68 65 20 63 68 61 72 61 63 74 65 72 2E 20 54 68 he character. Th
01B1B0: 65 0D 0A 20 20 20 20 20 20 20 63 75 72 72 65 6E e.. curren
01B1C0: 74 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 6D 6F t position is mo
01B1D0: 76 65 64 20 72 69 67 68 74 20 62 79 20 77 69 64 ved right by wid
01B1E0: 74 68 20 6F 66 20 61 20 63 68 61 72 61 63 74 65 th of a characte
01B1F0: 72 20 69 6E 20 74 68 65 20 63 75 72 72 65 6E 74 r in the current
01B200: 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 .. screen
01B210: 6D 6F 64 65 2E 20 54 68 65 20 64 69 73 74 61 6E mode. The distan
01B220: 63 65 20 6D 6F 76 65 64 20 76 61 72 69 65 73 3B ce moved varies;
01B230: 20 69 6E 20 6D 6F 64 65 20 30 20 69 74 20 69 73 in mode 0 it is
01B240: 20 33 32 20 70 6F 69 6E 74 73 3B 20 20 69 6E 0D 32 points; in.
01B250: 0A 20 20 20 20 20 20 20 6D 6F 64 65 20 31 2C 20 . mode 1,
01B260: 31 36 20 70 6F 69 6E 74 73 3B 20 61 6E 64 20 69 16 points; and i
01B270: 6E 20 6D 6F 64 65 20 32 2C 20 38 20 70 6F 69 6E n mode 2, 8 poin
01B280: 74 73 2E 20 43 6F 6E 74 72 6F 6C 20 63 6F 64 65 ts. Control code
01B290: 73 2C 20 20 63 68 61 72 61 63 74 65 72 73 0D 0A s, characters..
01B2A0: 20 20 20 20 20 20 20 30 2E 2E 33 31 2C 20 61 72 0..31, ar
01B2B0: 65 20 70 72 69 6E 74 65 64 20 61 6E 64 20 61 72 e printed and ar
01B2C0: 65 20 6E 6F 74 20 6F 62 65 79 65 64 2E 0D 0A 0D e not obeyed....
01B2D0: 0A 20 20 20 20 20 20 20 49 6E 20 56 31 2E 30 20 . In V1.0
01B2E0: 66 69 72 6D 77 61 72 65 20 74 68 65 20 63 68 61 firmware the cha
01B2F0: 72 61 63 74 65 72 20 69 73 20 61 6C 77 61 79 73 racter is always
01B300: 20 77 72 69 74 74 65 6E 20 6F 70 61 71 75 65 6C written opaquel
01B310: 79 20 69 72 72 65 73 70 65 63 74 69 76 65 0D 0A y irrespective..
01B320: 20 20 20 20 20 20 20 6F 66 20 77 68 61 74 20 6D of what m
01B330: 6F 64 65 20 74 68 65 20 54 65 78 74 20 56 44 55 ode the Text VDU
01B340: 20 69 73 20 20 75 73 69 6E 67 20 20 74 6F 20 20 is using to
01B350: 77 72 69 74 65 20 20 63 68 61 72 61 63 74 65 72 write character
01B360: 73 2C 20 20 69 2E 65 2E 20 20 54 68 65 0D 0A 20 s, i.e. The..
01B370: 20 20 20 20 20 20 63 68 61 72 61 63 74 65 72 20 character
01B380: 62 61 63 6B 67 72 6F 75 6E 64 20 20 69 73 20 20 background is
01B390: 73 65 74 20 20 74 6F 20 20 74 68 65 20 20 67 72 set to the gr
01B3A0: 61 70 68 69 63 73 20 20 70 61 70 65 72 20 20 69 aphics paper i
01B3B0: 6E 6B 20 20 61 6E 64 20 20 74 68 65 0D 0A 20 20 nk and the..
01B3C0: 20 20 20 20 20 66 6F 72 65 67 72 6F 75 6E 64 20 foreground
01B3D0: 69 73 20 73 65 74 20 74 6F 20 20 74 68 65 20 20 is set to the
01B3E0: 67 72 61 70 68 69 63 73 20 20 70 65 6E 20 20 69 graphics pen i
01B3F0: 6E 6B 2E 20 20 48 6F 77 65 76 65 72 2C 20 20 74 nk. However, t
01B400: 68 65 20 20 63 75 72 72 65 6E 74 0D 0A 20 20 20 he current..
01B410: 20 20 20 20 67 72 61 70 68 69 63 73 20 77 72 69 graphics wri
01B420: 74 65 20 6D 6F 64 65 20 69 73 20 75 73 65 64 20 te mode is used
01B430: 74 6F 20 70 6C 6F 74 20 74 68 65 20 70 69 78 65 to plot the pixe
01B440: 6C 73 20 69 6E 20 74 68 65 20 20 63 68 61 72 61 ls in the chara
01B450: 63 74 65 72 20 20 28 73 65 65 0D 0A 20 20 20 20 cter (see..
01B460: 20 20 20 35 2E 34 20 61 62 6F 76 65 29 2E 0D 0A 5.4 above)...
01B470: 0D 0A 20 20 20 20 20 20 20 49 6E 20 74 68 65 20 .. In the
01B480: 56 31 2E 31 20 66 69 72 6D 77 61 72 65 20 74 68 V1.1 firmware th
01B490: 65 20 66 6F 72 65 67 72 6F 75 6E 64 20 74 6F 20 e foreground to
01B4A0: 74 68 65 20 63 68 61 72 61 63 74 65 72 20 69 73 the character is
01B4B0: 20 61 6C 77 61 79 73 20 77 72 69 74 74 65 6E 0D always written.
01B4C0: 0A 20 20 20 20 20 20 20 69 6E 20 74 68 65 20 67 . in the g
01B4D0: 72 61 70 68 69 63 73 20 70 65 6E 20 69 6E 6B 20 raphics pen ink
01B4E0: 75 73 69 6E 67 20 74 68 65 20 63 75 72 72 65 6E using the curren
01B4F0: 74 20 67 72 61 70 68 69 63 73 20 77 72 69 74 65 t graphics write
01B500: 20 6D 6F 64 65 2E 20 48 6F 77 20 74 68 65 0D 0A mode. How the..
01B510: 20 20 20 20 20 20 20 62 61 63 6B 67 72 6F 75 6E backgroun
01B520: 64 20 74 6F 20 74 68 65 20 63 68 61 72 61 63 74 d to the charact
01B530: 65 72 20 69 73 20 77 72 69 74 74 65 6E 20 64 65 er is written de
01B540: 70 65 6E 64 73 20 6F 6E 20 74 68 65 20 62 61 63 pends on the bac
01B550: 6B 67 72 6F 75 6E 64 20 77 72 69 74 65 0D 0A 20 kground write..
01B560: 20 20 20 20 20 20 6D 6F 64 65 20 73 65 74 20 62 mode set b
01B570: 79 20 63 61 6C 6C 69 6E 67 20 47 52 41 20 53 45 y calling GRA SE
01B580: 54 20 42 41 43 4B 2E 20 49 66 20 74 68 65 20 20 T BACK. If the
01B590: 62 61 63 6B 67 72 6F 75 6E 64 20 20 6D 6F 64 65 background mode
01B5A0: 20 20 69 73 20 20 6F 70 61 71 75 65 0D 0A 20 20 is opaque..
01B5B0: 20 20 20 20 20 74 68 65 6E 20 74 68 65 20 62 61 then the ba
01B5C0: 63 6B 67 72 6F 75 6E 64 20 74 6F 20 74 68 65 20 ckground to the
01B5D0: 63 68 61 72 61 63 74 65 72 20 69 73 20 77 72 69 character is wri
01B5E0: 74 74 65 6E 20 69 6E 20 74 68 65 20 67 72 61 70 tten in the grap
01B5F0: 68 69 63 73 20 20 70 61 70 65 72 0D 0A 20 20 20 hics paper..
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: 20 20 20 20 69 6E 6B 20 75 73 69 6E 67 20 74 68 ink using th
01B710: 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 69 e current graphi
01B720: 63 73 20 77 72 69 74 65 20 6D 6F 64 65 2E 20 49 cs write mode. I
01B730: 66 20 74 68 65 20 62 61 63 6B 67 72 6F 75 6E 64 f the background
01B740: 20 20 6D 6F 64 65 20 20 69 73 0D 0A 20 20 20 20 mode is..
01B750: 20 20 20 74 72 61 6E 73 70 61 72 65 6E 74 20 74 transparent t
01B760: 68 65 6E 20 74 68 65 20 62 61 63 6B 67 72 6F 75 hen the backgrou
01B770: 6E 64 20 70 69 78 65 6C 73 20 61 72 65 20 6E 6F nd pixels are no
01B780: 74 20 20 70 6C 6F 74 74 65 64 20 20 61 74 20 20 t plotted at
01B790: 61 6C 6C 2C 20 20 74 68 65 0D 0A 20 20 20 20 20 all, the..
01B7A0: 20 20 63 75 72 72 65 6E 74 20 73 65 74 74 69 6E current settin
01B7B0: 67 73 20 6F 66 20 74 68 65 73 65 20 70 69 78 65 gs of these pixe
01B7C0: 6C 73 20 61 72 65 20 6C 65 66 74 20 75 6E 63 68 ls are left unch
01B7D0: 61 6E 67 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 anged.....
01B7E0: 20 35 2E 37 20 44 72 61 77 69 6E 67 20 4C 69 6E 5.7 Drawing Lin
01B7F0: 65 73 20 28 4F 6E 6C 79 20 61 70 70 6C 69 63 61 es (Only applica
01B800: 62 6C 65 20 74 6F 20 56 31 2E 31 20 66 69 72 6D ble to V1.1 firm
01B810: 77 61 72 65 29 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ware)......
01B820: 20 20 54 68 65 20 47 72 61 70 68 69 63 73 20 56 The Graphics V
01B830: 44 55 20 68 61 73 20 61 20 6E 75 6D 62 65 72 20 DU has a number
01B840: 6F 66 20 6F 70 74 69 6F 6E 73 20 20 74 68 61 74 of options that
01B850: 20 20 61 66 66 65 63 74 20 20 74 68 65 20 20 77 affect the w
01B860: 61 79 20 20 74 68 61 74 0D 0A 20 20 20 20 20 20 ay that..
01B870: 20 6C 69 6E 65 73 20 61 72 65 20 64 72 61 77 6E lines are drawn
01B880: 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 2E 20 on the screen.
01B890: 20 54 68 65 73 65 20 20 69 6E 63 6C 75 64 65 20 These include
01B8A0: 20 74 68 65 20 20 62 61 63 6B 67 72 6F 75 6E 64 the background
01B8B0: 20 20 77 72 69 74 65 0D 0A 20 20 20 20 20 20 20 write..
01B8C0: 6D 6F 64 65 2C 20 74 68 65 20 66 69 72 73 74 20 mode, the first
01B8D0: 70 6F 69 6E 74 20 6D 6F 64 65 2C 20 74 68 65 20 point mode, the
01B8E0: 6C 69 6E 65 20 6D 61 73 6B 20 61 6E 64 20 74 68 line mask and th
01B8F0: 65 20 67 72 61 70 68 69 63 73 20 77 72 69 74 65 e graphics write
01B900: 20 6D 6F 64 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 mode.......
01B910: 20 20 20 54 68 65 20 6C 69 6E 65 20 6D 61 73 6B The line mask
01B920: 20 69 73 20 61 6E 20 20 38 20 20 62 69 74 2C 20 is an 8 bit,
01B930: 20 62 69 74 20 20 73 69 67 6E 69 66 69 63 61 6E bit significan
01B940: 74 20 20 76 61 6C 75 65 20 20 74 68 61 74 20 20 t value that
01B950: 73 70 65 63 69 66 69 65 73 0D 0A 20 20 20 20 20 specifies..
01B960: 20 20 77 68 65 74 68 65 72 20 70 69 78 65 6C 73 whether pixels
01B970: 20 6F 6E 20 74 68 65 20 6C 69 6E 65 20 61 72 65 on the line are
01B980: 20 66 6F 72 65 67 72 6F 75 6E 64 20 6F 72 20 62 foreground or b
01B990: 61 63 6B 67 72 6F 75 6E 64 2E 20 49 66 20 74 68 ackground. If th
01B9A0: 65 20 62 69 74 20 6F 66 0D 0A 20 20 20 20 20 20 e bit of..
01B9B0: 20 74 68 65 20 6D 61 73 6B 20 63 6F 72 72 65 73 the mask corres
01B9C0: 70 6F 6E 64 69 6E 67 20 74 6F 20 61 20 70 69 78 ponding to a pix
01B9D0: 65 6C 20 69 73 20 6F 6E 65 20 74 68 65 6E 20 74 el is one then t
01B9E0: 68 65 20 70 69 78 65 6C 20 69 73 20 66 6F 72 65 he pixel is fore
01B9F0: 67 72 6F 75 6E 64 2E 0D 0A 20 20 20 20 20 20 20 ground...
01BA00: 49 66 20 74 68 65 20 62 69 74 20 69 73 20 7A 65 If the bit is ze
01BA10: 72 6F 20 74 68 65 6E 20 74 68 65 20 70 69 78 65 ro then the pixe
01BA20: 6C 20 69 73 20 20 62 61 63 6B 67 72 6F 75 6E 64 l is background
01BA30: 2E 20 20 54 68 65 20 20 6D 61 73 6B 20 20 69 73 . The mask is
01BA40: 20 20 75 73 65 64 0D 0A 20 20 20 20 20 20 20 72 used.. r
01BA50: 65 70 65 61 74 65 64 6C 79 20 61 6C 6F 6E 67 20 epeatedly along
01BA60: 74 68 65 20 6C 65 6E 67 74 68 20 6F 66 20 74 68 the length of th
01BA70: 65 20 20 6C 69 6E 65 2E 20 20 69 2E 65 2E 20 20 e line. i.e.
01BA80: 42 69 74 20 20 37 20 20 6F 66 20 20 74 68 65 20 Bit 7 of the
01BA90: 20 6D 61 73 6B 0D 0A 20 20 20 20 20 20 20 63 6F mask.. co
01BAA0: 72 72 65 73 70 6F 6E 64 73 20 74 6F 20 70 69 78 rresponds to pix
01BAB0: 65 6C 73 20 31 2C 20 39 2C 20 31 37 2C 20 2E 2E els 1, 9, 17, ..
01BAC0: 2E 20 6F 66 20 74 68 65 20 6C 69 6E 65 2C 20 62 . of the line, b
01BAD0: 69 74 20 36 20 20 74 6F 20 20 70 69 78 65 6C 73 it 6 to pixels
01BAE0: 20 20 32 2C 0D 0A 20 20 20 20 20 20 20 31 30 2C 2,.. 10,
01BAF0: 20 31 38 2C 20 2E 2E 2E 20 65 74 63 2E 0D 0A 0D 18, ... etc....
01BB00: 0A 0D 0A 20 20 20 20 20 20 20 46 6F 72 65 67 72 ... Foregr
01BB10: 6F 75 6E 64 20 70 69 78 65 6C 73 20 6F 66 20 61 ound pixels of a
01BB20: 20 6C 69 6E 65 20 61 72 65 20 70 6C 6F 74 74 65 line are plotte
01BB30: 64 20 69 6E 20 74 68 65 20 67 72 61 70 68 69 63 d in the graphic
01BB40: 73 20 20 70 65 6E 20 20 61 6E 64 20 20 69 6E 6B s pen and ink
01BB50: 0D 0A 20 20 20 20 20 20 20 75 73 69 6E 67 20 74 .. using t
01BB60: 68 65 20 67 72 61 70 68 69 63 73 20 77 72 69 74 he graphics writ
01BB70: 65 20 20 6D 6F 64 65 2E 20 20 48 6F 77 20 20 62 e mode. How b
01BB80: 61 63 6B 67 72 6F 75 6E 64 20 20 70 69 78 65 6C ackground pixel
01BB90: 73 20 20 61 72 65 20 20 70 6C 6F 74 74 65 64 0D s are plotted.
01BBA0: 0A 20 20 20 20 20 20 20 64 65 70 65 6E 64 73 20 . depends
01BBB0: 75 70 6F 6E 20 74 68 65 20 62 61 63 6B 67 72 6F upon the backgro
01BBC0: 75 6E 64 20 77 72 69 74 65 20 6D 6F 64 65 2E 20 und write mode.
01BBD0: 20 49 66 20 20 74 68 65 20 20 62 61 63 6B 67 72 If the backgr
01BBE0: 6F 75 6E 64 20 20 6D 6F 64 65 20 20 69 73 0D 0A ound mode is..
01BBF0: 20 20 20 20 20 20 20 6F 70 61 71 75 65 20 74 68 opaque th
01BC00: 65 6E 20 74 68 65 20 62 61 63 6B 67 72 6F 75 6E en the backgroun
01BC10: 64 20 70 69 78 65 6C 73 20 61 72 65 20 70 6C 6F d pixels are plo
01BC20: 74 74 65 64 20 69 6E 20 20 74 68 65 20 20 67 72 tted in the gr
01BC30: 61 70 68 69 63 73 20 20 70 61 70 65 72 0D 0A 20 aphics paper..
01BC40: 20 20 20 20 20 20 69 6E 6B 20 20 75 73 69 6E 67 ink using
01BC50: 20 20 74 68 65 20 20 67 72 61 70 68 69 63 73 20 the graphics
01BC60: 20 77 72 69 74 65 20 20 6D 6F 64 65 2E 20 20 49 write mode. I
01BC70: 66 20 20 74 68 65 20 20 62 61 63 6B 67 72 6F 75 f the backgrou
01BC80: 6E 64 20 20 6D 6F 64 65 20 20 69 73 0D 0A 20 20 nd mode is..
01BC90: 20 20 20 20 20 74 72 61 6E 73 70 61 72 65 6E 74 transparent
01BCA0: 20 74 68 65 6E 20 74 68 65 20 70 69 78 65 6C 73 then the pixels
01BCB0: 20 20 61 72 65 20 20 6E 6F 74 20 20 70 6C 6F 74 are not plot
01BCC0: 74 65 64 20 20 61 74 20 20 61 6C 6C 2C 20 20 74 ted at all, t
01BCD0: 68 65 20 20 63 75 72 72 65 6E 74 0D 0A 20 20 20 he current..
01BCE0: 20 20 20 20 73 65 74 74 69 6E 67 73 20 6F 66 20 settings of
01BCF0: 74 68 65 20 70 69 78 65 6C 73 20 61 72 65 20 6C the pixels are l
01BD00: 65 66 74 20 75 6E 63 68 61 6E 67 65 64 2E 0D 0A eft unchanged...
01BD10: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 .... The f
01BD20: 69 72 73 74 20 70 6F 69 6E 74 20 6D 6F 64 65 20 irst point mode
01BD30: 20 73 70 65 63 69 66 69 65 73 20 20 77 68 65 74 specifies whet
01BD40: 68 65 72 20 20 74 68 65 20 20 70 69 78 65 6C 20 her the pixel
01BD50: 20 61 74 20 20 74 68 65 20 20 63 75 72 72 65 6E at the curren
01BD60: 74 0D 0A 20 20 20 20 20 20 20 67 72 61 70 68 69 t.. graphi
01BD70: 63 73 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 74 cs position is t
01BD80: 6F 20 62 65 20 69 6E 63 6C 75 64 65 20 69 6E 20 o be include in
01BD90: 74 68 65 20 6C 69 6E 65 20 6F 72 20 20 6E 6F 74 the line or not
01BDA0: 2E 20 20 4E 6F 74 20 20 70 6C 6F 74 74 69 6E 67 . Not plotting
01BDB0: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 66 69 72 .. the fir
01BDC0: 73 74 20 70 69 78 65 6C 20 6F 66 20 61 20 6C 69 st pixel of a li
01BDD0: 6E 65 20 69 73 20 70 61 72 74 69 63 75 6C 61 72 ne is particular
01BDE0: 6C 79 20 20 75 73 65 66 75 6C 20 20 66 6F 72 20 ly useful for
01BDF0: 20 64 72 61 77 69 6E 67 20 20 6C 69 6E 65 73 0D drawing lines.
01BE00: 0A 20 20 20 20 20 20 20 77 68 65 6E 20 74 68 65 . when the
01BE10: 20 67 72 61 70 68 69 63 73 20 77 72 69 74 65 20 graphics write
01BE20: 6D 6F 64 65 20 69 73 20 58 4F 52 2E 20 46 6F 72 mode is XOR. For
01BE30: 20 69 6E 73 74 61 6E 63 65 2C 20 74 68 65 20 20 instance, the
01BE40: 63 6F 72 6E 65 72 20 20 70 69 78 65 6C 73 0D 0A corner pixels..
01BE50: 20 20 20 20 20 20 20 6F 66 20 61 20 62 6F 78 20 of a box
01BE60: 77 69 6C 6C 20 62 65 20 70 6C 6F 74 74 65 64 20 will be plotted
01BE70: 74 77 69 63 65 20 20 69 66 20 20 74 68 65 20 20 twice if the
01BE80: 66 69 72 73 74 20 20 70 69 78 65 6C 73 20 20 6F first pixels o
01BE90: 66 20 20 6C 69 6E 65 73 20 20 61 72 65 0D 0A 20 f lines are..
01BEA0: 20 20 20 20 20 20 70 6C 6F 74 74 65 64 20 61 6E plotted an
01BEB0: 64 20 74 68 69 73 20 77 69 6C 6C 20 72 65 73 75 d this will resu
01BEC0: 6C 74 20 69 6E 20 74 68 65 73 65 20 70 69 78 65 lt in these pixe
01BED0: 6C 73 20 20 6E 6F 74 20 20 62 65 69 6E 67 20 20 ls not being
01BEE0: 73 65 74 20 20 69 6E 20 20 58 4F 52 0D 0A 20 20 set in XOR..
01BEF0: 20 20 20 20 20 6D 6F 64 65 2E 0D 0A 0D 0A 20 20 mode.....
01BF00: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
01BF10: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
01BF20: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
01BF30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BF40: 20 20 20 70 61 67 65 20 35 2E 34 0D 0A 0D 0A 0D page 5.4.....
01BF50: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
01BF60: 35 2E 38 20 46 69 6C 6C 69 6E 67 20 41 72 65 61 5.8 Filling Area
01BF70: 73 20 28 4F 6E 6C 79 20 61 70 70 6C 69 63 61 62 s (Only applicab
01BF80: 6C 65 20 74 6F 20 56 31 2E 31 20 66 69 72 6D 77 le to V1.1 firmw
01BF90: 61 72 65 29 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 are)........
01BFA0: 20 20 20 54 68 65 20 47 72 61 70 68 69 63 73 20 The Graphics
01BFB0: 56 44 55 20 70 72 6F 76 69 64 65 73 20 61 20 67 VDU provides a g
01BFC0: 65 6E 65 72 61 6C 69 73 65 64 20 61 72 65 61 20 eneralised area
01BFD0: 66 69 6C 6C 20 20 72 6F 75 74 69 6E 65 2E 20 20 fill routine.
01BFE0: 54 68 65 20 20 75 73 65 72 0D 0A 20 20 20 20 20 The user..
01BFF0: 20 20 64 72 61 77 73 20 74 68 65 20 6F 75 74 6C draws the outl
01C000: 69 6E 65 20 6F 66 20 74 68 65 20 61 72 65 61 20 ine of the area
01C010: 74 6F 20 62 65 20 66 69 6C 6C 65 64 20 20 75 73 to be filled us
01C020: 69 6E 67 20 20 74 68 65 20 20 73 74 61 6E 64 61 ing the standa
01C030: 72 64 20 20 6C 69 6E 65 0D 0A 20 20 20 20 20 20 rd line..
01C040: 20 64 72 61 77 69 6E 67 20 61 6E 64 20 20 70 69 drawing and pi
01C050: 78 65 6C 20 20 70 6C 6F 74 74 69 6E 67 20 20 72 xel plotting r
01C060: 6F 75 74 69 6E 65 73 20 20 61 6E 64 20 20 74 68 outines and th
01C070: 65 6E 20 20 6D 6F 76 65 73 20 20 74 68 65 20 20 en moves the
01C080: 63 75 72 72 65 6E 74 0D 0A 20 20 20 20 20 20 20 current..
01C090: 70 6F 73 69 74 69 6F 6E 20 74 6F 20 61 6E 79 20 position to any
01C0A0: 70 69 78 65 6C 20 69 6E 73 69 64 65 20 74 68 65 pixel inside the
01C0B0: 20 61 72 65 61 20 61 6E 64 20 63 61 6C 6C 73 20 area and calls
01C0C0: 74 68 65 20 66 69 6C 6C 20 72 6F 75 74 69 6E 65 the fill routine
01C0D0: 2C 20 20 47 52 41 0D 0A 20 20 20 20 20 20 20 46 , GRA.. F
01C0E0: 49 4C 4C 2E 20 54 68 69 73 20 77 69 6C 6C 20 73 ILL. This will s
01C0F0: 65 74 20 61 6C 6C 20 20 70 69 78 65 6C 73 20 20 et all pixels
01C100: 69 6E 73 69 64 65 20 20 74 68 65 20 20 61 72 65 inside the are
01C110: 61 20 20 74 6F 20 20 74 68 65 20 20 66 69 6C 6C a to the fill
01C120: 20 20 69 6E 6B 0D 0A 20 20 20 20 20 20 20 69 72 ink.. ir
01C130: 72 65 73 70 65 63 74 69 76 65 20 6F 66 20 77 68 respective of wh
01C140: 61 74 20 74 68 65 20 63 75 72 72 65 6E 74 20 67 at the current g
01C150: 72 61 70 68 69 63 73 20 77 72 69 74 65 20 6D 6F raphics write mo
01C160: 64 65 20 69 73 20 73 65 74 20 74 6F 2E 20 20 28 de is set to. (
01C170: 69 2E 65 2E 0D 0A 20 20 20 20 20 20 20 47 52 41 i.e... GRA
01C180: 20 46 49 4C 4C 20 61 6C 77 61 79 73 20 77 6F 72 FILL always wor
01C190: 6B 73 20 61 73 20 69 66 20 46 4F 52 43 45 20 6D ks as if FORCE m
01C1A0: 6F 64 65 20 77 61 73 20 73 65 6C 65 63 74 65 64 ode was selected
01C1B0: 29 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ).........
01C1C0: 20 54 68 65 20 66 69 6C 6C 20 72 6F 75 74 69 6E The fill routin
01C1D0: 65 20 72 65 63 6F 67 6E 69 73 65 73 20 70 69 78 e recognises pix
01C1E0: 65 6C 73 20 6D 61 6B 69 6E 67 20 75 70 20 74 68 els making up th
01C1F0: 65 20 65 64 67 65 20 6F 66 20 74 68 65 20 20 61 e edge of the a
01C200: 72 65 61 20 20 62 79 0D 0A 20 20 20 20 20 20 20 rea by..
01C210: 74 68 65 20 69 6E 6B 20 74 68 61 74 20 74 68 65 the ink that the
01C220: 79 20 61 72 65 20 73 65 74 20 74 6F 2E 20 41 6C y are set to. Al
01C230: 6C 20 70 69 78 65 6C 73 20 73 65 74 20 20 74 6F l pixels set to
01C240: 20 20 65 69 74 68 65 72 20 20 74 68 65 20 20 63 either the c
01C250: 75 72 72 65 6E 74 0D 0A 20 20 20 20 20 20 20 67 urrent.. g
01C260: 72 61 70 68 69 63 73 20 70 65 6E 20 69 6E 6B 20 raphics pen ink
01C270: 6F 72 20 74 68 65 20 69 6E 6B 20 74 68 61 74 20 or the ink that
01C280: 69 73 20 62 65 69 6E 67 20 75 73 65 64 20 74 6F is being used to
01C290: 20 66 69 6C 6C 20 74 68 65 20 20 61 72 65 61 20 fill the area
01C2A0: 20 77 69 74 68 0D 0A 20 20 20 20 20 20 20 61 72 with.. ar
01C2B0: 65 20 74 72 65 61 74 65 64 20 61 73 20 65 64 67 e treated as edg
01C2C0: 65 20 70 69 78 65 6C 73 2E 20 28 54 68 65 73 65 e pixels. (These
01C2D0: 20 74 77 6F 20 69 6E 6B 73 20 6D 61 79 20 20 62 two inks may b
01C2E0: 65 20 20 74 68 65 20 20 73 61 6D 65 29 2E 20 20 e the same).
01C2F0: 45 64 67 65 0D 0A 20 20 20 20 20 20 20 70 69 78 Edge.. pix
01C300: 65 6C 73 20 6E 65 65 64 20 6F 6E 6C 79 20 6C 69 els need only li
01C310: 65 20 64 69 61 67 6F 6E 61 6C 6C 79 20 61 64 6A e diagonally adj
01C320: 61 63 65 6E 74 20 74 6F 20 20 65 61 63 68 20 20 acent to each
01C330: 6F 74 68 65 72 2C 20 20 69 74 20 20 69 73 20 20 other, it is
01C340: 6E 6F 74 0D 0A 20 20 20 20 20 20 20 6E 65 63 65 not.. nece
01C350: 73 73 61 72 79 20 66 6F 72 20 74 68 65 6D 20 74 ssary for them t
01C360: 6F 20 62 65 20 6F 72 74 68 6F 67 6F 6E 61 6C 6C o be orthogonall
01C370: 79 20 61 64 6A 61 63 65 6E 74 2E 20 4F 66 20 63 y adjacent. Of c
01C380: 6F 75 72 73 65 2C 20 74 68 65 20 65 64 67 65 20 ourse, the edge
01C390: 6F 66 0D 0A 20 20 20 20 20 20 20 74 68 65 20 67 of.. the g
01C3A0: 72 61 70 68 69 63 73 20 77 69 6E 64 6F 77 20 61 raphics window a
01C3B0: 72 65 20 61 6C 73 6F 20 74 72 65 61 74 65 64 20 re also treated
01C3C0: 61 73 20 65 64 67 65 73 20 6F 66 20 74 68 65 20 as edges of the
01C3D0: 61 72 65 61 20 74 6F 20 66 69 6C 6C 20 20 61 6E area to fill an
01C3E0: 64 0D 0A 20 20 20 20 20 20 20 73 6F 20 70 69 78 d.. so pix
01C3F0: 65 6C 73 20 6F 75 74 73 69 64 65 20 74 68 65 20 els outside the
01C400: 67 72 61 70 68 69 63 73 20 77 69 6E 64 6F 77 20 graphics window
01C410: 77 69 6C 6C 20 62 65 20 61 66 66 65 63 74 65 64 will be affected
01C420: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
01C430: 47 52 41 20 20 46 49 4C 4C 20 20 75 73 65 73 20 GRA FILL uses
01C440: 20 61 20 20 62 75 66 66 65 72 20 20 73 75 70 70 a buffer supp
01C450: 6C 69 65 64 20 20 62 79 20 20 74 68 65 20 20 75 lied by the u
01C460: 73 65 72 20 20 66 6F 72 20 20 73 74 6F 72 69 6E ser for storin
01C470: 67 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 69 g the.. i
01C480: 6E 66 6F 72 6D 61 74 69 6F 6E 2E 20 54 68 65 20 nformation. The
01C490: 6D 6F 72 65 20 63 6F 6D 70 6C 69 63 61 74 65 64 more complicated
01C4A0: 20 74 68 65 20 61 72 65 61 20 74 68 65 20 6C 6F the area the lo
01C4B0: 6E 67 65 72 20 74 68 65 20 62 75 66 66 65 72 20 nger the buffer
01C4C0: 20 77 69 6C 6C 0D 0A 20 20 20 20 20 20 20 6E 65 will.. ne
01C4D0: 65 64 20 62 65 2E 20 49 66 20 74 68 65 20 73 75 ed be. If the su
01C4E0: 70 70 6C 69 65 64 20 62 75 66 66 65 72 20 69 73 pplied buffer is
01C4F0: 20 74 6F 6F 20 73 68 6F 72 74 20 74 68 65 6E 20 too short then
01C500: 70 61 72 74 73 20 20 6F 66 20 20 74 68 65 20 20 parts of the
01C510: 61 72 65 61 0D 0A 20 20 20 20 20 20 20 77 69 6C area.. wil
01C520: 6C 20 62 65 20 69 67 6E 6F 72 65 64 20 61 6E 64 l be ignored and
01C530: 20 77 69 6C 6C 20 6E 6F 74 20 62 65 20 66 69 6C will not be fil
01C540: 6C 65 64 2E 20 42 79 20 20 73 75 70 70 6C 79 69 led. By supplyi
01C550: 6E 67 20 20 61 20 20 6C 6F 6E 67 20 20 65 6E 6F ng a long eno
01C560: 75 67 68 0D 0A 20 20 20 20 20 20 20 62 75 66 66 ugh.. buff
01C570: 65 72 20 61 6E 79 20 61 72 62 69 74 72 61 72 79 er any arbitrary
01C580: 20 63 6F 6D 70 6C 69 63 61 74 65 64 20 73 68 61 complicated sha
01C590: 70 65 20 6D 61 79 20 62 65 20 66 69 6C 6C 65 64 pe may be filled
01C5A0: 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01C5B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01C5C0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01C5D0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
01C5E0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
01C5F0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
01C600: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
01C610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01C620: 20 20 70 61 67 65 20 35 2E 35 0D 0A 1A 65 20 47 page 5.5...e G
01C630: 72 61 70 68 69 63 73 20 56 44 55 20 61 6C 6C 6F raphics VDU allo
01C640: 77 73 20 69 6E 64 69 76 69 64 75 61 6C 20 70 69 ws individual pi
01C650: 78 65 6C 73 20 28 64 6F 74 73 29 20 74 6F 20 62 xels (dots) to b
01C660: 65 20 73 65 74 20 20 6F 72 20 20 74 65 73 74 65 e set or teste
01C670: 64 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 6C 69 d.. and li
01C680: 6E 66 6F 72 6D 61 74 69 6F 6E 2E 20 54 68 65 20 nformation. The
01C690: 6D 6F 72 65 20 63 6F 6D 70 6C 69 63 61 74 65 64 more complicated
01C6A0: 20 74 68 65 20 61 72 65 61 20 74 68 65 20 6C 6F the area the lo
01C6B0: 6E 67 65 72 20 74 68 65 20 62 75 66 66 65 72 20 nger the buffer
01C6C0: 20 77 69 6C 6C 0D 0A 20 20 20 20 20 20 20 6E 65 will.. ne
01C6D0: 65 64 20 62 65 2E 20 49 66 20 74 68 65 20 73 75 ed be. If the su
01C6E0: 70 70 6C 69 65 64 20 62 75 66 66 65 72 20 69 73 pplied buffer is
01C6F0: 20 74 6F 6F 20 73 68 6F 72 74 20 74 68 65 6E 20 too short then
01C700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
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: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 36 ........ 6
01CA10: 20 54 68 65 20 53 63 72 65 65 6E 20 50 61 63 6B The Screen Pack
01CA20: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
01CA30: 53 63 72 65 65 6E 20 50 61 63 6B 20 69 73 20 75 Screen Pack is u
01CA40: 73 65 64 20 62 79 20 74 68 65 20 54 65 78 74 20 sed by the Text
01CA50: 61 6E 64 20 47 72 61 70 68 69 63 73 20 56 44 55 and Graphics VDU
01CA60: 73 20 20 74 6F 20 20 61 63 63 65 73 73 20 20 74 s to access t
01CA70: 68 65 0D 0A 20 20 20 20 20 20 20 68 61 72 64 77 he.. hardw
01CA80: 61 72 65 20 6F 66 20 74 68 65 20 73 63 72 65 65 are of the scree
01CA90: 6E 2E 20 49 74 20 61 6C 73 6F 20 63 6F 6E 74 72 n. It also contr
01CAA0: 6F 6C 73 20 74 68 65 20 66 65 61 74 75 72 65 73 ols the features
01CAB0: 20 20 6F 66 20 20 74 68 65 20 20 73 63 72 65 65 of the scree
01CAC0: 6E 0D 0A 20 20 20 20 20 20 20 74 68 61 74 20 61 n.. that a
01CAD0: 66 66 65 63 74 20 62 6F 74 68 20 74 68 65 20 54 ffect both the T
01CAE0: 65 78 74 20 56 44 55 20 61 6E 64 20 47 72 61 70 ext VDU and Grap
01CAF0: 68 69 63 73 20 56 44 55 2C 20 73 75 63 68 20 61 hics VDU, such a
01CB00: 73 20 77 68 61 74 20 6D 6F 64 65 20 20 74 68 65 s what mode the
01CB10: 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 .. screen
01CB20: 69 73 20 69 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 is in.....
01CB30: 20 36 2E 31 20 53 63 72 65 65 6E 20 4D 6F 64 65 6.1 Screen Mode
01CB40: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s....... T
01CB50: 68 65 20 73 63 72 65 65 6E 20 68 61 73 20 74 68 he screen has th
01CB60: 72 65 65 20 6D 6F 64 65 73 20 6F 66 20 6F 70 65 ree modes of ope
01CB70: 72 61 74 69 6F 6E 2C 20 6E 75 6D 62 65 72 65 64 ration, numbered
01CB80: 20 20 30 2C 20 20 31 20 20 61 6E 64 20 20 32 2E 0, 1 and 2.
01CB90: 20 20 54 68 65 0D 0A 20 20 20 20 20 20 20 6D 6F The.. mo
01CBA0: 64 65 73 20 68 61 76 65 20 64 69 66 66 65 72 65 des have differe
01CBB0: 6E 74 20 72 65 73 6F 6C 75 74 69 6F 6E 73 20 61 nt resolutions a
01CBC0: 6E 64 20 64 69 73 70 6C 61 79 20 64 69 66 66 65 nd display diffe
01CBD0: 72 65 6E 74 20 6E 75 6D 62 65 72 73 20 6F 66 20 rent numbers of
01CBE0: 69 6E 6B 73 0D 0A 20 20 20 20 20 20 20 6F 6E 20 inks.. on
01CBF0: 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D the screen......
01CC00: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6D 6F 64 65 . All mode
01CC10: 73 20 68 61 76 65 20 61 20 76 65 72 74 69 63 61 s have a vertica
01CC20: 6C 20 72 65 73 6F 6C 75 74 69 6F 6E 20 6F 66 20 l resolution of
01CC30: 32 30 30 20 70 69 78 65 6C 73 20 20 28 70 69 63 200 pixels (pic
01CC40: 74 75 72 65 20 20 65 6C 65 6D 65 6E 74 73 0D 0A ture elements..
01CC50: 20 20 20 20 20 20 20 6F 72 20 64 6F 74 73 20 6F or dots o
01CC60: 6E 20 74 68 65 20 73 63 72 65 65 6E 29 2E 20 54 n the screen). T
01CC70: 68 65 20 20 68 6F 72 69 7A 6F 6E 74 61 6C 20 20 he horizontal
01CC80: 72 65 73 6F 6C 75 74 69 6F 6E 20 20 76 61 72 69 resolution vari
01CC90: 65 73 20 20 66 72 6F 6D 20 20 31 36 30 0D 0A 20 es from 160..
01CCA0: 20 20 20 20 20 20 70 69 78 65 6C 73 20 74 6F 20 pixels to
01CCB0: 36 34 30 20 70 69 78 65 6C 73 2E 20 41 73 20 65 640 pixels. As e
01CCC0: 61 63 68 20 63 68 61 72 61 63 74 65 72 20 69 73 ach character is
01CCD0: 20 38 20 70 69 78 65 6C 73 20 62 79 20 20 38 20 8 pixels by 8
01CCE0: 20 70 69 78 65 6C 73 20 20 74 68 65 0D 0A 20 20 pixels the..
01CCF0: 20 20 20 20 20 6E 75 6D 62 65 72 20 6F 66 20 63 number of c
01CD00: 68 61 72 61 63 74 65 72 73 20 61 63 72 6F 73 73 haracters across
01CD10: 20 74 68 65 20 73 63 72 65 65 6E 20 76 61 72 69 the screen vari
01CD20: 65 73 20 77 69 74 68 20 74 68 65 20 6D 6F 64 65 es with the mode
01CD30: 20 2D 20 66 72 6F 6D 20 20 32 30 0D 0A 20 20 20 - from 20..
01CD40: 20 20 20 20 63 68 61 72 61 63 74 65 72 73 20 74 characters t
01CD50: 6F 20 38 30 20 63 68 61 72 61 63 74 65 72 73 2E o 80 characters.
01CD60: 20 54 68 65 20 73 63 72 65 65 6E 20 69 73 20 61 The screen is a
01CD70: 6C 77 61 79 73 20 32 35 20 63 68 61 72 61 63 74 lways 25 charact
01CD80: 65 72 73 20 68 69 67 68 2E 0D 0A 0D 0A 0D 0A 20 ers high.......
01CD90: 20 20 20 20 20 20 54 68 65 20 6E 75 6D 62 65 72 The number
01CDA0: 20 6F 66 20 69 6E 6B 73 20 74 68 61 74 20 63 61 of inks that ca
01CDB0: 6E 20 62 65 20 64 69 73 70 6C 61 79 65 64 20 6F n be displayed o
01CDC0: 6E 20 74 68 65 20 73 63 72 65 65 6E 20 76 61 72 n the screen var
01CDD0: 69 65 73 20 77 69 74 68 20 74 68 65 0D 0A 20 20 ies with the..
01CDE0: 20 20 20 20 20 73 63 72 65 65 6E 20 72 65 73 6F screen reso
01CDF0: 6C 75 74 69 6F 6E 2E 20 57 68 65 6E 20 74 68 65 lution. When the
01CE00: 20 73 63 72 65 65 6E 20 69 73 20 36 34 30 20 70 screen is 640 p
01CE10: 69 78 65 6C 73 20 77 69 64 65 20 6F 6E 6C 79 20 ixels wide only
01CE20: 32 20 69 6E 6B 73 20 20 63 61 6E 0D 0A 20 20 20 2 inks can..
01CE30: 20 20 20 20 62 65 20 64 69 73 70 6C 61 79 65 64 be displayed
01CE40: 2C 20 77 68 65 6E 20 74 68 65 20 73 63 72 65 65 , when the scree
01CE50: 6E 20 20 69 73 20 20 33 32 30 20 20 70 69 78 65 n is 320 pixe
01CE60: 6C 73 20 20 77 69 64 65 20 20 34 20 20 69 6E 6B ls wide 4 ink
01CE70: 73 20 20 63 61 6E 20 20 62 65 0D 0A 20 20 20 20 s can be..
01CE80: 20 20 20 64 69 73 70 6C 61 79 65 64 20 61 6E 64 displayed and
01CE90: 20 77 68 65 6E 20 74 68 65 20 73 63 72 65 65 6E when the screen
01CEA0: 20 69 73 20 20 31 36 30 20 20 70 69 78 65 6C 73 is 160 pixels
01CEB0: 20 20 77 69 64 65 20 20 31 36 20 20 69 6E 6B 73 wide 16 inks
01CEC0: 20 20 63 61 6E 20 20 62 65 0D 0A 20 20 20 20 20 can be..
01CED0: 20 20 64 69 73 70 6C 61 79 65 64 2E 0D 0A 0D 0A displayed.....
01CEE0: 0D 0A 20 20 20 20 20 20 20 49 6E 20 73 75 6D 6D .. In summ
01CEF0: 61 72 79 2C 20 74 68 65 20 6D 6F 64 65 73 20 61 ary, the modes a
01CF00: 72 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 re:....
01CF10: 20 20 20 20 20 4D 6F 64 65 20 20 20 20 20 20 20 Mode
01CF20: 20 50 69 78 65 6C 20 73 69 7A 65 20 20 20 20 20 Pixel size
01CF30: 20 20 20 20 20 43 68 61 72 61 63 74 65 72 20 73 Character s
01CF40: 69 7A 65 20 20 20 20 20 20 49 6E 6B 73 0D 0A 20 ize Inks..
01CF50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 0
01CF60: 20 20 20 20 20 20 20 20 20 31 36 30 20 78 20 32 160 x 2
01CF70: 30 30 20 20 20 20 20 20 20 20 20 20 20 32 30 20 00 20
01CF80: 78 20 32 35 20 20 20 20 20 20 20 20 20 20 20 20 x 25
01CF90: 20 31 36 0D 0A 20 20 20 20 20 20 20 20 20 20 20 16..
01CFA0: 20 20 20 20 20 31 20 20 20 20 20 20 20 20 20 33 1 3
01CFB0: 32 30 20 78 20 32 30 30 20 20 20 20 20 20 20 20 20 x 200
01CFC0: 20 20 20 34 30 20 78 20 32 35 20 20 20 20 20 20 40 x 25
01CFD0: 20 20 20 20 20 20 20 34 0D 0A 20 20 20 20 20 20 4..
01CFE0: 20 20 20 20 20 20 20 20 20 20 32 20 20 20 20 20 2
01CFF0: 20 20 20 20 36 34 30 20 78 20 32 30 30 20 20 20 640 x 200
01D000: 20 20 20 20 20 20 20 20 38 30 20 78 20 32 35 20 80 x 25
01D010: 20 20 20 20 20 20 20 20 20 20 20 20 32 0D 0A 0D 2...
01D020: 0A 20 20 20 20 20 20 20 54 68 65 20 64 65 66 61 . The defa
01D030: 75 6C 74 20 73 63 72 65 65 6E 20 6D 6F 64 65 2C ult screen mode,
01D040: 20 73 65 74 20 61 74 20 45 4D 53 2C 20 69 73 20 set at EMS, is
01D050: 6D 6F 64 65 20 31 2E 0D 0A 0D 0A 0D 0A 20 20 20 mode 1.......
01D060: 20 20 20 20 54 68 65 20 73 63 72 65 65 6E 20 6D The screen m
01D070: 6F 64 65 20 69 73 20 73 65 74 20 62 79 20 63 61 ode is set by ca
01D080: 6C 6C 69 6E 67 20 53 43 52 20 53 45 54 20 4D 4F lling SCR SET MO
01D090: 44 45 20 77 68 69 63 68 20 20 61 6C 73 6F 20 20 DE which also
01D0A0: 68 61 73 20 20 6F 74 68 65 72 0D 0A 20 20 20 20 has other..
01D0B0: 20 20 20 65 66 66 65 63 74 73 2E 0D 0A 0D 0A 20 effects.....
01D0C0: 20 20 20 20 20 20 46 69 72 73 74 6C 79 2C 20 74 Firstly, t
01D0D0: 68 65 20 73 63 72 65 65 6E 20 69 73 20 63 6C 65 he screen is cle
01D0E0: 61 72 65 64 20 74 6F 20 69 6E 6B 20 30 2E 20 49 ared to ink 0. I
01D0F0: 66 20 74 65 78 74 20 20 61 6E 64 20 20 67 72 61 f text and gra
01D100: 70 68 69 63 73 20 20 70 61 70 65 72 0D 0A 20 20 phics paper..
01D110: 20 20 20 20 20 69 6E 6B 73 20 61 72 65 20 6E 6F inks are no
01D120: 74 20 73 65 74 20 74 6F 20 69 6E 6B 20 30 20 74 t set to ink 0 t
01D130: 68 65 6E 20 74 68 69 73 20 77 69 6C 6C 20 62 65 hen this will be
01D140: 63 6F 6D 65 20 61 70 70 61 72 65 6E 74 20 6F 6E come apparent on
01D150: 20 74 68 65 20 73 63 72 65 65 6E 0D 0A 20 20 20 the screen..
01D160: 20 20 20 20 77 68 65 6E 20 63 68 61 72 61 63 74 when charact
01D170: 65 72 73 20 61 72 65 20 77 72 69 74 74 65 6E 20 ers are written
01D180: 6F 72 20 77 69 6E 64 6F 77 73 20 61 72 65 20 63 or windows are c
01D190: 6C 65 61 72 65 64 2E 20 49 66 20 74 68 65 20 75 leared. If the u
01D1A0: 73 65 72 20 77 69 73 68 65 73 0D 0A 20 20 20 20 ser wishes..
01D1B0: 20 20 20 74 6F 20 61 6C 74 65 72 20 74 68 69 73 to alter this
01D1C0: 20 73 63 72 65 65 6E 20 63 6C 65 61 72 69 6E 67 screen clearing
01D1D0: 20 6F 70 65 72 61 74 69 6F 6E 20 66 6F 72 20 73 operation for s
01D1E0: 6F 6D 65 20 72 65 61 73 6F 6E 20 74 68 65 6E 20 ome reason then
01D1F0: 69 74 20 6D 61 79 20 62 65 0D 0A 20 20 20 20 20 it may be..
01D200: 20 20 69 6E 74 65 72 63 65 70 74 65 64 20 61 74 intercepted at
01D210: 20 74 68 65 20 53 43 52 20 4D 4F 44 45 20 43 4C the SCR MODE CL
01D220: 45 41 52 20 69 6E 64 69 72 65 63 74 69 6F 6E 2E EAR indirection.
01D230: 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 63 6F 6E .... Secon
01D240: 64 6C 79 2C 20 74 68 65 20 54 65 78 74 20 61 6E dly, the Text an
01D250: 64 20 47 72 61 70 68 69 63 73 20 56 44 55 73 20 d Graphics VDUs
01D260: 61 72 65 20 73 65 74 20 69 6E 74 6F 20 73 74 61 are set into sta
01D270: 6E 64 61 72 64 20 73 74 61 74 65 73 2E 20 54 68 ndard states. Th
01D280: 65 0D 0A 20 20 20 20 20 20 20 77 69 6E 64 6F 77 e.. window
01D290: 73 20 61 72 65 20 61 6C 6C 20 73 65 74 20 74 6F s are all set to
01D2A0: 20 63 6F 76 65 72 20 74 68 65 20 77 68 6F 6C 65 cover the whole
01D2B0: 20 73 63 72 65 65 6E 2E 20 49 66 20 74 68 65 20 screen. If the
01D2C0: 20 70 65 6E 20 20 61 6E 64 20 20 70 61 70 65 72 pen and paper
01D2D0: 0D 0A 20 20 20 20 20 20 20 69 6E 6B 73 20 61 72 .. inks ar
01D2E0: 65 20 6F 75 74 20 6F 66 20 72 61 6E 67 65 20 66 e out of range f
01D2F0: 6F 72 20 74 68 65 20 6E 65 77 20 6D 6F 64 65 20 or the new mode
01D300: 74 68 65 6E 20 74 68 65 79 20 61 72 65 20 6D 61 then they are ma
01D310: 73 6B 65 64 20 28 77 69 74 68 20 20 23 30 31 0D sked (with #01.
01D320: 0A 20 20 20 20 20 20 20 6F 72 20 23 30 33 29 20 . or #03)
01D330: 74 6F 20 62 72 69 6E 67 20 74 68 65 6D 20 69 6E to bring them in
01D340: 74 6F 20 72 61 6E 67 65 2E 20 54 68 65 20 63 75 to range. The cu
01D350: 72 72 65 6E 74 20 74 65 78 74 20 70 6F 73 69 74 rrent text posit
01D360: 69 6F 6E 73 20 61 72 65 20 6D 6F 76 65 64 0D 0A ions are moved..
01D370: 20 20 20 20 20 20 20 74 6F 20 74 68 65 20 74 6F to the to
01D380: 70 20 6C 65 66 74 20 63 6F 72 6E 65 72 20 6F 66 p left corner of
01D390: 20 74 68 65 20 73 63 72 65 65 6E 20 61 6E 64 20 the screen and
01D3A0: 74 68 65 20 74 65 78 74 20 63 75 72 73 6F 72 73 the text cursors
01D3B0: 20 20 61 72 65 20 20 74 75 72 6E 65 64 0D 0A 20 are turned..
01D3C0: 20 20 20 20 20 20 6F 66 66 20 28 73 65 65 20 54 off (see T
01D3D0: 58 54 20 43 55 52 20 4F 46 46 29 2E 20 54 68 65 XT CUR OFF). The
01D3E0: 20 63 75 72 72 65 6E 74 20 20 67 72 61 70 68 69 current graphi
01D3F0: 63 73 20 20 70 6F 73 69 74 69 6F 6E 20 20 61 6E cs position an
01D400: 64 20 20 74 68 65 20 20 75 73 65 72 0D 0A 20 20 d the user..
01D410: 20 20 20 20 20 6F 72 69 67 69 6E 20 61 72 65 20 origin are
01D420: 6D 6F 76 65 64 20 74 6F 20 74 68 65 20 62 6F 74 moved to the bot
01D430: 74 6F 6D 20 6C 65 66 74 20 63 6F 72 6E 65 72 20 tom left corner
01D440: 6F 66 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A of the screen...
01D450: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
01D460: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
01D470: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
01D480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01D490: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 36 2E page 6.
01D4A0: 31 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 1..............
01D4B0: 20 20 20 20 20 20 36 2E 32 20 49 6E 6B 73 20 61 6.2 Inks a
01D4C0: 6E 64 20 43 6F 6C 6F 75 72 73 2E 0D 0A 0D 0A 20 nd Colours.....
01D4D0: 20 20 20 20 20 20 54 68 65 20 76 61 72 69 6F 75 The variou
01D4E0: 73 20 73 63 72 65 65 6E 20 6D 6F 64 65 73 20 61 s screen modes a
01D4F0: 6C 6C 6F 77 20 70 69 78 65 6C 73 20 28 64 6F 74 llow pixels (dot
01D500: 73 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 29 s on the screen)
01D510: 20 74 6F 20 20 62 65 20 20 73 65 74 0D 0A 20 20 to be set..
01D520: 20 20 20 20 20 74 6F 20 64 69 66 66 65 72 65 6E to differen
01D530: 74 20 6E 75 6D 62 65 72 73 20 6F 66 20 69 6E 6B t numbers of ink
01D540: 73 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D s as follows:...
01D550: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
01D560: 20 4D 6F 64 65 20 30 3A 20 20 20 20 20 20 20 20 Mode 0:
01D570: 20 20 20 20 20 31 36 20 69 6E 6B 73 2C 20 30 2E 16 inks, 0.
01D580: 2E 31 35 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .15..
01D590: 20 20 20 20 20 4D 6F 64 65 20 31 3A 20 20 20 20 Mode 1:
01D5A0: 20 20 20 20 20 20 20 20 20 20 34 20 69 6E 6B 73 4 inks
01D5B0: 2C 20 30 2E 2E 33 0D 0A 20 20 20 20 20 20 20 20 , 0..3..
01D5C0: 20 20 20 20 20 20 20 20 4D 6F 64 65 20 32 3A 20 Mode 2:
01D5D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 32 20 69 2 i
01D5E0: 6E 6B 73 2C 20 30 2E 2E 31 0D 0A 0D 0A 20 20 20 nks, 0..1....
01D5F0: 20 20 20 20 48 6F 77 20 74 68 65 20 69 6E 6B 20 How the ink
01D600: 66 6F 72 20 61 20 70 69 78 65 6C 20 69 73 20 65 for a pixel is e
01D610: 6E 63 6F 64 65 64 20 69 6E 74 6F 20 61 20 62 79 ncoded into a by
01D620: 74 65 20 20 6F 66 20 20 73 63 72 65 65 6E 20 20 te of screen
01D630: 6D 65 6D 6F 72 79 20 20 69 73 0D 0A 20 20 20 20 memory is..
01D640: 20 20 20 64 65 73 63 72 69 62 65 64 20 69 6E 20 described in
01D650: 73 65 63 74 69 6F 6E 20 36 2E 34 2E 20 54 68 65 section 6.4. The
01D660: 20 69 6E 6B 20 74 68 61 74 20 61 20 70 69 78 65 ink that a pixe
01D670: 6C 20 69 73 20 20 73 65 74 20 20 74 6F 20 20 64 l is set to d
01D680: 65 74 65 72 6D 69 6E 65 73 0D 0A 20 20 20 20 20 etermines..
01D690: 20 20 77 68 61 74 20 63 6F 6C 6F 75 72 20 74 68 what colour th
01D6A0: 65 20 70 69 78 65 6C 20 69 73 20 64 69 73 70 6C e pixel is displ
01D6B0: 61 79 65 64 20 69 6E 2E 20 48 6F 77 65 76 65 72 ayed in. However
01D6C0: 2C 20 74 68 65 20 63 6F 6C 6F 75 72 20 20 61 73 , the colour as
01D6D0: 73 6F 63 69 61 74 65 64 0D 0A 20 20 20 20 20 20 sociated..
01D6E0: 20 77 69 74 68 20 61 6E 20 69 6E 6B 20 69 73 20 with an ink is
01D6F0: 6E 6F 74 20 66 69 78 65 64 2C 20 69 74 20 63 61 not fixed, it ca
01D700: 6E 20 62 65 20 63 68 61 6E 67 65 64 2E 0D 0A 0D n be changed....
01D710: 0A 20 20 20 20 20 20 20 54 68 65 72 65 20 61 72 . There ar
01D720: 65 20 32 37 20 63 6F 6C 6F 75 72 73 20 61 76 61 e 27 colours ava
01D730: 69 6C 61 62 6C 65 2E 20 45 61 63 68 20 69 6E 6B ilable. Each ink
01D740: 20 6D 61 79 20 62 65 20 73 65 74 20 74 6F 20 20 may be set to
01D750: 61 6E 79 20 20 6F 66 20 20 74 68 65 73 65 0D 0A any of these..
01D760: 20 20 20 20 20 20 20 63 6F 6C 6F 75 72 73 2E 20 colours.
01D770: 54 68 65 20 62 6F 72 64 65 72 20 74 6F 20 74 68 The border to th
01D780: 65 20 73 63 72 65 65 6E 20 61 63 74 73 20 6D 75 e screen acts mu
01D790: 63 68 20 6C 69 6B 65 20 61 6E 20 69 6E 6B 20 61 ch like an ink a
01D7A0: 6E 64 20 20 63 61 6E 20 20 68 61 76 65 0D 0A 20 nd can have..
01D7B0: 20 20 20 20 20 20 69 74 73 20 63 6F 6C 6F 75 72 its colour
01D7C0: 20 73 70 65 63 69 66 69 65 64 20 61 73 20 77 65 specified as we
01D7D0: 6C 6C 2E 20 54 68 65 20 64 69 73 70 6C 61 79 20 ll. The display
01D7E0: 20 68 61 72 64 77 61 72 65 20 20 66 65 74 63 68 hardware fetch
01D7F0: 65 73 20 20 74 68 65 20 20 69 6E 6B 0D 0A 20 20 es the ink..
01D800: 20 20 20 20 20 76 61 6C 75 65 20 66 72 6F 6D 20 value from
01D810: 74 68 65 20 73 63 72 65 65 6E 20 6D 65 6D 6F 72 the screen memor
01D820: 79 20 66 6F 72 20 65 61 63 68 20 70 69 78 65 6C y for each pixel
01D830: 20 61 73 20 69 74 20 69 73 20 20 64 69 73 70 6C as it is displ
01D840: 61 79 65 64 2E 20 20 54 68 69 73 0D 0A 20 20 20 ayed. This..
01D850: 20 20 20 20 69 6E 6B 20 76 61 6C 75 65 20 69 73 ink value is
01D860: 20 75 73 65 64 20 74 6F 20 61 63 63 65 73 73 20 used to access
01D870: 61 20 73 6D 61 6C 6C 20 61 72 65 61 20 6F 66 20 a small area of
01D880: 52 41 4D 20 69 6E 73 69 64 65 20 74 68 65 20 67 RAM inside the g
01D890: 61 74 65 20 20 61 72 72 61 79 0D 0A 20 20 20 20 ate array..
01D8A0: 20 20 20 63 61 6C 6C 65 64 20 74 68 65 20 27 70 called the 'p
01D8B0: 61 6C 65 74 74 65 27 2E 20 54 68 65 20 70 61 6C alette'. The pal
01D8C0: 65 74 74 65 20 63 6F 6E 74 61 69 6E 73 20 74 68 ette contains th
01D8D0: 65 20 61 63 74 75 61 6C 20 63 6F 6C 6F 75 72 20 e actual colour
01D8E0: 77 68 69 63 68 20 20 69 73 0D 0A 20 20 20 20 20 which is..
01D8F0: 20 20 74 6F 20 62 65 20 64 69 73 70 6C 61 79 65 to be displaye
01D900: 64 20 62 79 20 74 68 65 20 20 6D 6F 6E 69 74 6F d by the monito
01D910: 72 20 20 66 6F 72 20 20 74 68 61 74 20 20 70 61 r for that pa
01D920: 72 74 69 63 75 6C 61 72 20 20 69 6E 6B 2E 20 20 rticular ink.
01D930: 43 68 61 6E 67 69 6E 67 0D 0A 20 20 20 20 20 20 Changing..
01D940: 20 65 6E 74 72 69 65 73 20 69 6E 20 74 68 65 20 entries in the
01D950: 70 61 6C 65 74 74 65 20 74 68 75 73 20 63 61 75 palette thus cau
01D960: 73 65 73 20 61 6C 6C 20 20 70 69 78 65 6C 73 20 ses all pixels
01D970: 20 73 65 74 20 20 74 6F 20 20 74 68 61 74 20 20 set to that
01D980: 69 6E 6B 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 ink to..
01D990: 63 68 61 6E 67 65 20 63 6F 6C 6F 75 72 20 77 68 change colour wh
01D9A0: 65 6E 20 74 68 65 79 20 61 72 65 20 6E 65 78 74 en they are next
01D9B0: 20 64 69 73 70 6C 61 79 65 64 20 28 69 2E 65 2E displayed (i.e.
01D9C0: 20 77 69 74 68 69 6E 20 20 31 2F 35 30 74 68 20 within 1/50th
01D9D0: 20 6F 66 20 20 61 0D 0A 20 20 20 20 20 20 20 73 of a.. s
01D9E0: 65 63 6F 6E 64 20 6F 72 20 73 6F 29 2E 0D 0A 0D econd or so)....
01D9F0: 0A 20 20 20 20 20 20 20 49 6E 20 66 61 63 74 20 . In fact
01DA00: 74 68 65 20 53 63 72 65 65 6E 20 50 61 63 6B 20 the Screen Pack
01DA10: 61 6C 6C 6F 77 73 20 74 77 6F 20 63 6F 6C 6F 75 allows two colou
01DA20: 72 73 20 74 6F 20 62 65 20 20 61 73 73 6F 63 69 rs to be associ
01DA30: 61 74 65 64 20 20 77 69 74 68 20 20 61 6E 0D 0A ated with an..
01DA40: 20 20 20 20 20 20 20 69 6E 6B 20 28 6F 72 20 74 ink (or t
01DA50: 68 65 20 62 6F 72 64 65 72 29 2E 20 54 68 65 73 he border). Thes
01DA60: 65 20 61 72 65 20 6C 6F 61 64 65 64 20 20 69 6E e are loaded in
01DA70: 74 6F 20 20 74 68 65 20 20 70 61 6C 65 74 74 65 to the palette
01DA80: 20 20 61 6C 74 65 72 6E 61 74 65 6C 79 0D 0A 20 alternately..
01DA90: 20 20 20 20 20 20 75 6E 64 65 72 20 73 6F 66 74 under soft
01DAA0: 77 61 72 65 20 63 6F 6E 74 72 6F 6C 2E 20 49 66 ware control. If
01DAB0: 20 74 68 65 20 74 77 6F 20 63 6F 6C 6F 75 72 73 the two colours
01DAC0: 20 61 73 73 6F 63 69 61 74 65 64 20 77 69 74 68 associated with
01DAD0: 20 61 6E 20 69 6E 6B 20 20 61 72 65 0D 0A 20 20 an ink are..
01DAE0: 20 20 20 20 20 64 69 66 66 65 72 65 6E 74 20 74 different t
01DAF0: 68 65 6E 20 74 68 65 20 69 6E 6B 20 77 69 6C 6C hen the ink will
01DB00: 20 66 6C 61 73 68 2C 20 69 66 20 74 68 65 20 63 flash, if the c
01DB10: 6F 6C 6F 75 72 73 20 61 72 65 20 20 74 68 65 20 olours are the
01DB20: 20 73 61 6D 65 20 20 74 68 65 6E 0D 0A 20 20 20 same then..
01DB30: 20 20 20 20 74 68 65 20 69 6E 6B 20 77 69 6C 6C the ink will
01DB40: 20 62 65 20 73 74 65 61 64 79 2E 20 54 68 65 20 be steady. The
01DB50: 75 73 65 72 20 63 61 6E 20 63 68 61 6E 67 65 20 user can change
01DB60: 74 68 65 20 72 61 74 65 20 20 6F 66 20 20 61 6C the rate of al
01DB70: 74 65 72 6E 61 74 69 6F 6E 2C 0D 0A 20 20 20 20 ternation,..
01DB80: 20 20 20 66 72 6F 6D 20 74 68 65 20 64 65 66 61 from the defa
01DB90: 75 6C 74 20 6F 66 20 35 20 63 79 63 6C 65 73 20 ult of 5 cycles
01DBA0: 70 65 72 20 73 65 63 6F 6E 64 2C 20 20 69 66 20 per second, if
01DBB0: 20 72 65 71 75 69 72 65 64 20 20 28 73 65 65 20 required (see
01DBC0: 20 53 43 52 20 20 53 45 54 0D 0A 20 20 20 20 20 SCR SET..
01DBD0: 20 20 46 4C 41 53 48 49 4E 47 29 2E 0D 0A 0D 0A FLASHING).....
01DBE0: 20 20 20 20 20 20 20 57 68 65 6E 20 20 73 70 65 When spe
01DBF0: 63 69 66 79 69 6E 67 20 20 63 6F 6C 6F 75 72 73 cifying colours
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: 20 20 74 68 65 20 20 53 63 72 65 65 6E 20 20 50 the Screen P
01DD10: 61 63 6B 20 20 75 73 65 73 20 20 61 6E 20 20 6F ack uses an o
01DD20: 72 64 65 72 69 6E 67 20 20 74 68 61 74 0D 0A 20 rdering that..
01DD30: 20 20 20 20 20 20 63 6F 72 72 65 73 70 6F 6E 64 correspond
01DD40: 73 20 74 6F 20 61 20 67 72 65 79 20 73 63 61 6C s to a grey scal
01DD50: 65 20 6F 6E 20 61 20 6D 6F 6E 6F 63 68 72 6F 6D e on a monochrom
01DD60: 65 20 6D 6F 6E 69 74 6F 72 2E 20 20 54 68 69 73 e monitor. This
01DD70: 20 20 72 75 6E 73 20 20 66 72 6F 6D 0D 0A 20 20 runs from..
01DD80: 20 20 20 20 20 74 68 65 20 64 61 72 6B 65 73 74 the darkest
01DD90: 20 63 6F 6C 6F 75 72 20 28 62 6C 61 63 6B 29 2C colour (black),
01DDA0: 20 63 6F 6C 6F 75 72 20 30 2C 20 74 6F 20 74 68 colour 0, to th
01DDB0: 65 20 62 72 69 67 68 74 65 73 74 20 63 6F 6C 6F e brightest colo
01DDC0: 75 72 20 20 28 62 72 69 67 68 74 0D 0A 20 20 20 ur (bright..
01DDD0: 20 20 20 20 77 68 69 74 65 29 2C 20 63 6F 6C 6F white), colo
01DDE0: 75 72 20 32 36 2E 20 54 68 65 20 63 6F 6C 6F 75 ur 26. The colou
01DDF0: 72 73 20 64 6F 20 6E 6F 74 20 61 70 70 65 61 72 rs do not appear
01DE00: 20 74 6F 20 20 68 61 76 65 20 20 61 6E 79 20 20 to have any
01DE10: 70 61 72 74 69 63 75 6C 61 72 0D 0A 20 20 20 20 particular..
01DE20: 20 20 20 6F 72 64 65 72 69 6E 67 20 77 68 65 6E ordering when
01DE30: 20 76 69 65 77 65 64 20 6F 6E 20 61 20 63 6F 6C viewed on a col
01DE40: 6F 75 72 20 6D 6F 6E 69 74 6F 72 2E 0D 0A 0D 0A our monitor.....
01DE50: 20 20 20 20 20 20 20 54 68 65 20 70 61 6C 65 74 The palet
01DE60: 74 65 20 75 73 65 73 20 61 20 64 69 66 66 65 72 te uses a differ
01DE70: 65 6E 74 20 28 61 6E 64 20 20 61 70 70 61 72 65 ent (and appare
01DE80: 6E 74 6C 79 20 20 6E 6F 6E 73 65 6E 73 69 63 61 ntly nonsensica
01DE90: 6C 29 20 20 6E 75 6D 62 65 72 69 6E 67 0D 0A 20 l) numbering..
01DEA0: 20 20 20 20 20 20 73 63 68 65 6D 65 20 66 6F 72 scheme for
01DEB0: 20 74 68 65 20 63 6F 6C 6F 75 72 73 2E 20 54 68 the colours. Th
01DEC0: 65 20 53 63 72 65 65 6E 20 50 61 63 6B 20 61 75 e Screen Pack au
01DED0: 74 6F 6D 61 74 69 63 61 6C 6C 79 20 20 74 72 61 tomatically tra
01DEE0: 6E 73 6C 61 74 65 73 20 20 74 68 65 0D 0A 20 20 nslates the..
01DEF0: 20 20 20 20 20 67 72 65 79 20 20 73 63 61 6C 65 grey scale
01DF00: 20 20 6E 75 6D 62 65 72 20 20 74 6F 20 20 74 68 number to th
01DF10: 65 20 20 68 61 72 64 77 61 72 65 20 20 6E 75 6D e hardware num
01DF20: 62 65 72 20 20 61 6E 64 20 20 76 69 63 65 20 20 ber and vice
01DF30: 76 65 72 73 61 20 20 77 68 65 6E 0D 0A 20 20 20 versa when..
01DF40: 20 20 20 20 61 70 70 72 6F 70 72 69 61 74 65 2E appropriate.
01DF50: 20 55 6E 6C 65 73 73 20 74 68 65 20 75 73 65 72 Unless the user
01DF60: 20 69 73 20 20 64 72 69 76 69 6E 67 20 20 74 68 is driving th
01DF70: 65 20 20 68 61 72 64 77 61 72 65 20 20 64 69 72 e hardware dir
01DF80: 65 63 74 6C 79 20 20 74 68 65 0D 0A 20 20 20 20 ectly the..
01DF90: 20 20 20 68 61 72 64 77 61 72 65 20 6E 75 6D 62 hardware numb
01DFA0: 65 72 73 20 77 69 6C 6C 20 6E 65 76 65 72 20 62 ers will never b
01DFB0: 65 20 65 6E 63 6F 75 6E 74 65 72 65 64 2E 0D 0A e encountered...
01DFC0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 64 65 66 .. The def
01DFD0: 61 75 6C 74 20 73 65 74 74 69 6E 67 73 20 66 6F ault settings fo
01DFE0: 72 20 74 68 65 20 63 6F 6C 6F 75 72 20 6F 66 20 r the colour of
01DFF0: 65 61 63 68 20 69 6E 6B 20 61 6E 64 20 61 20 6C each ink and a l
01E000: 69 73 74 20 6F 66 20 20 74 68 65 20 20 32 37 0D ist of the 27.
01E010: 0A 20 20 20 20 20 20 20 63 6F 6C 6F 75 72 73 20 . colours
01E020: 61 76 61 69 6C 61 62 6C 65 20 61 72 65 20 67 69 available are gi
01E030: 76 65 6E 20 69 6E 20 41 70 70 65 6E 64 69 78 20 ven in Appendix
01E040: 56 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 36 2E 33 V..... 6.3
01E050: 20 53 63 72 65 65 6E 20 41 64 64 72 65 73 73 65 Screen Addresse
01E060: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 s..... The
01E070: 20 53 63 72 65 65 6E 20 50 61 63 6B 20 64 6F 65 Screen Pack doe
01E080: 73 20 6E 6F 74 20 75 73 65 20 20 61 20 20 63 6F s not use a co
01E090: 6F 72 64 69 6E 61 74 65 20 20 73 79 73 74 65 6D ordinate system
01E0A0: 20 20 69 74 73 65 6C 66 2E 20 20 49 74 20 20 75 itself. It u
01E0B0: 73 65 73 0D 0A 20 20 20 20 20 20 20 73 63 72 65 ses.. scre
01E0C0: 65 6E 20 61 64 64 72 65 73 73 65 73 2E 20 48 6F en addresses. Ho
01E0D0: 77 65 76 65 72 2C 20 69 74 20 64 6F 65 73 20 77 wever, it does w
01E0E0: 6F 72 6B 20 77 69 74 68 20 20 74 68 65 20 20 70 ork with the p
01E0F0: 68 79 73 69 63 61 6C 20 20 61 6E 64 20 20 62 61 hysical and ba
01E100: 73 65 0D 0A 20 20 20 20 20 20 20 63 6F 6F 72 64 se.. coord
01E110: 69 6E 61 74 65 20 73 79 73 74 65 6D 20 6F 66 20 inate system of
01E120: 74 68 65 20 54 65 78 74 20 61 6E 64 20 47 72 61 the Text and Gra
01E130: 70 68 69 63 73 20 56 44 55 73 20 64 65 73 63 72 phics VDUs descr
01E140: 69 62 65 64 20 20 69 6E 20 20 73 65 63 74 69 6F ibed in sectio
01E150: 6E 0D 0A 20 20 20 20 20 20 20 34 2E 31 20 61 6E n.. 4.1 an
01E160: 64 20 35 2E 31 20 72 65 73 70 65 63 74 69 76 65 d 5.1 respective
01E170: 6C 79 2E 20 49 6E 20 20 70 61 72 74 69 63 75 6C ly. In particul
01E180: 61 72 2C 20 20 72 6F 75 74 69 6E 65 73 20 20 61 ar, routines a
01E190: 72 65 20 20 70 72 6F 76 69 64 65 64 20 20 74 6F re provided to
01E1A0: 0D 0A 20 20 20 20 20 20 20 63 6F 6E 76 65 72 74 .. convert
01E1B0: 20 70 6F 73 69 74 69 6F 6E 73 20 67 69 76 65 6E positions given
01E1C0: 20 69 6E 20 70 68 79 73 69 63 61 6C 20 20 6F 72 in physical or
01E1D0: 20 20 62 61 73 65 20 20 63 6F 6F 72 64 69 6E 61 base coordina
01E1E0: 74 65 73 20 20 74 6F 20 20 73 63 72 65 65 6E 0D tes to screen.
01E1F0: 0A 20 20 20 20 20 20 20 61 64 64 72 65 73 73 65 . addresse
01E200: 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 s.........
01E210: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
01E220: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
01E230: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
01E240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
01E250: 61 67 65 20 36 2E 32 0D 0A 0D 0A 0D 0A 0D 0A 0D age 6.2.........
01E260: 0A 0D 0A 20 20 20 20 20 20 20 41 20 73 63 72 65 ... A scre
01E270: 65 6E 20 61 64 64 72 65 73 73 20 69 73 2C 20 70 en address is, p
01E280: 72 6F 73 61 69 63 61 6C 6C 79 20 65 6E 6F 75 67 rosaically enoug
01E290: 68 2C 20 74 68 65 20 61 64 64 72 65 73 73 20 6F h, the address o
01E2A0: 66 20 61 20 62 79 74 65 20 20 77 69 74 68 69 6E f a byte within
01E2B0: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 73 63 72 .. the scr
01E2C0: 65 65 6E 20 6D 65 6D 6F 72 79 2E 20 54 6F 20 73 een memory. To s
01E2D0: 70 65 63 69 66 79 20 61 20 70 61 72 74 69 63 75 pecify a particu
01E2E0: 6C 61 72 20 70 69 78 65 6C 20 61 20 73 63 72 65 lar pixel a scre
01E2F0: 65 6E 20 20 61 64 64 72 65 73 73 20 20 69 73 0D en address is.
01E300: 0A 20 20 20 20 20 20 20 6F 66 74 65 6E 20 70 61 . often pa
01E310: 73 73 65 64 20 74 6F 20 61 20 72 6F 75 74 69 6E ssed to a routin
01E320: 65 20 61 6C 6F 6E 67 20 77 69 74 68 20 61 20 20 e along with a
01E330: 6D 61 73 6B 20 20 74 68 61 74 20 20 69 6E 64 69 mask that indi
01E340: 63 61 74 65 73 20 20 65 78 61 63 74 6C 79 0D 0A cates exactly..
01E350: 20 20 20 20 20 20 20 77 68 69 63 68 20 70 69 78 which pix
01E360: 65 6C 20 69 73 20 72 65 71 75 69 72 65 64 2E 20 el is required.
01E370: 52 6F 75 74 69 6E 65 73 20 61 72 65 20 70 72 6F Routines are pro
01E380: 76 69 64 65 64 20 66 6F 72 20 73 74 65 70 70 69 vided for steppi
01E390: 6E 67 20 20 61 20 20 73 63 72 65 65 6E 0D 0A 20 ng a screen..
01E3A0: 20 20 20 20 20 20 61 64 64 72 65 73 73 20 75 70 address up
01E3B0: 2C 20 64 6F 77 6E 2C 20 72 69 67 68 74 20 61 6E , down, right an
01E3C0: 64 20 6C 65 66 74 20 6F 6E 65 20 62 79 74 65 2E d left one byte.
01E3D0: 20 28 54 68 65 20 73 63 72 65 65 6E 20 6D 61 70 (The screen map
01E3E0: 20 6D 61 6B 65 73 20 20 74 68 69 73 0D 0A 20 20 makes this..
01E3F0: 20 20 20 20 20 61 20 6E 6F 6E 2D 74 72 69 76 69 a non-trivi
01E400: 61 6C 20 6F 70 65 72 61 74 69 6F 6E 2E 29 0D 0A al operation.)..
01E410: 0D 0A 20 20 20 20 20 20 20 36 2E 34 20 53 63 72 .. 6.4 Scr
01E420: 65 65 6E 20 4D 65 6D 6F 72 79 20 4D 61 70 2E 0D een Memory Map..
01E430: 0A 20 20 20 20 20 20 20 54 68 65 20 73 63 72 65 . The scre
01E440: 65 6E 20 69 73 20 61 20 6D 65 6D 6F 72 79 20 6D en is a memory m
01E450: 61 70 70 65 64 20 70 69 78 65 6C 20 73 63 72 65 apped pixel scre
01E460: 65 6E 2E 20 54 68 65 20 20 73 63 72 65 65 6E 20 en. The screen
01E470: 20 6D 65 6D 6F 72 79 20 20 66 69 6C 6C 73 0D 0A memory fills..
01E480: 0D 0A 20 20 20 20 20 20 20 31 36 4B 20 6F 66 20 .. 16K of
01E490: 52 41 4D 20 69 6E 20 61 6C 6C 20 6D 6F 64 65 73 RAM in all modes
01E4A0: 2E 20 54 68 65 20 64 65 66 61 75 6C 74 20 6C 6F . The default lo
01E4B0: 63 61 74 69 6F 6E 20 66 6F 72 20 74 68 65 20 73 cation for the s
01E4C0: 63 72 65 65 6E 2C 20 20 73 65 74 20 20 61 74 0D creen, set at.
01E4D0: 0A 20 20 20 20 20 20 20 45 4D 53 2C 20 69 73 20 . EMS, is
01E4E0: 74 68 65 20 31 36 4B 20 6F 66 20 52 41 4D 20 73 the 16K of RAM s
01E4F0: 74 61 72 74 69 6E 67 20 61 74 20 23 43 30 30 30 tarting at #C000
01E500: 2E 20 20 54 68 69 73 20 20 6C 69 65 73 20 20 75 . This lies u
01E510: 6E 64 65 72 6E 65 61 74 68 20 20 74 68 65 0D 0A nderneath the..
01E520: 20 20 20 20 20 20 20 75 70 70 65 72 20 52 4F 4D upper ROM
01E530: 2C 20 77 68 65 6E 20 69 74 20 69 73 20 65 6E 61 , when it is ena
01E540: 62 6C 65 64 2C 20 77 68 69 63 68 20 6B 65 65 70 bled, which keep
01E550: 73 20 74 68 65 20 73 63 72 65 65 6E 20 6F 75 74 s the screen out
01E560: 20 6F 66 20 20 74 68 65 20 20 77 61 79 0D 0A 20 of the way..
01E570: 20 20 20 20 20 20 6F 66 20 74 68 65 20 72 65 73 of the res
01E580: 74 20 6F 66 20 74 68 65 20 73 79 73 74 65 6D 2E t of the system.
01E590: 20 48 6F 77 65 76 65 72 2C 20 68 69 73 20 61 6C However, his al
01E5A0: 73 6F 20 6D 65 61 6E 73 20 74 68 61 74 20 74 68 so means that th
01E5B0: 65 20 75 70 70 65 72 20 20 52 4F 4D 0D 0A 20 20 e upper ROM..
01E5C0: 20 20 20 20 20 68 61 73 20 74 6F 20 62 65 20 64 has to be d
01E5D0: 69 73 61 62 6C 65 64 20 77 68 65 6E 65 76 65 72 isabled whenever
01E5E0: 20 74 68 65 20 73 63 72 65 65 6E 20 69 73 20 72 the screen is r
01E5F0: 65 61 64 2E 20 54 68 65 20 66 69 72 6D 77 61 72 ead. The firmwar
01E600: 65 20 6A 75 6D 70 62 6C 6F 63 6B 0D 0A 20 20 20 e jumpblock..
01E610: 20 20 20 20 75 73 65 73 20 4C 4F 57 20 4A 55 4D uses LOW JUM
01E620: 50 20 72 65 73 74 61 72 74 73 20 77 68 69 63 68 P restarts which
01E630: 20 74 75 72 6E 20 74 68 65 20 75 70 70 65 72 20 turn the upper
01E640: 52 4F 4D 20 6F 66 66 20 74 6F 20 65 6E 73 75 72 ROM off to ensur
01E650: 65 20 74 68 61 74 20 74 68 65 0D 0A 20 20 20 20 e that the..
01E660: 20 20 20 73 63 72 65 65 6E 20 6D 65 6D 6F 72 79 screen memory
01E670: 20 69 73 20 61 63 63 65 73 73 69 62 6C 65 20 69 is accessible i
01E680: 66 20 72 65 71 75 69 72 65 64 2E 0D 0A 0D 0A 20 f required.....
01E690: 20 20 20 20 20 20 49 74 20 69 73 20 70 6F 73 73 It is poss
01E6A0: 69 62 6C 65 20 74 6F 20 63 68 61 6E 67 65 20 74 ible to change t
01E6B0: 68 65 20 6C 6F 63 61 74 69 6F 6E 20 6F 66 20 74 he location of t
01E6C0: 68 65 20 73 63 72 65 65 6E 20 6D 65 6D 6F 72 79 he screen memory
01E6D0: 20 74 6F 20 20 61 6E 79 20 20 6F 66 0D 0A 20 20 to any of..
01E6E0: 20 20 20 20 20 74 68 65 20 34 20 31 36 4B 20 6D the 4 16K m
01E6F0: 65 6D 6F 72 79 20 62 6C 6F 63 6B 73 20 6F 6E 20 emory blocks on
01E700: 31 36 4B 20 62 6F 75 6E 64 61 72 69 65 73 20 28 16K boundaries (
01E710: 73 65 65 20 53 43 52 20 53 45 54 20 42 41 53 45 see SCR SET BASE
01E720: 29 2E 20 48 6F 77 65 76 65 72 2C 0D 0A 20 20 20 ). However,..
01E730: 20 20 20 20 6F 6E 6C 79 20 23 43 30 30 30 20 61 only #C000 a
01E740: 6E 64 20 23 34 30 30 30 20 61 72 65 20 75 73 65 nd #4000 are use
01E750: 66 75 6C 3B 20 23 30 30 30 30 20 20 61 6E 64 20 ful; #0000 and
01E760: 20 23 38 30 30 30 20 20 62 6F 74 68 20 20 6F 76 #8000 both ov
01E770: 65 72 6C 61 70 20 20 74 68 65 0D 0A 20 20 20 20 erlap the..
01E780: 20 20 20 66 69 72 6D 77 61 72 65 20 6A 75 6D 70 firmware jump
01E790: 62 6C 6F 63 6B 73 20 6F 72 20 6F 74 68 65 72 20 blocks or other
01E7A0: 73 79 73 74 65 6D 20 61 72 65 61 73 2E 20 54 68 system areas. Th
01E7B0: 65 20 64 65 73 63 72 69 70 74 69 6F 6E 73 20 62 e descriptions b
01E7C0: 65 6C 6F 77 20 20 61 6C 6C 0D 0A 20 20 20 20 20 elow all..
01E7D0: 20 20 61 73 73 75 6D 65 20 74 68 65 20 64 65 66 assume the def
01E7E0: 61 75 6C 74 20 73 63 72 65 65 6E 20 6C 6F 63 61 ault screen loca
01E7F0: 74 69 6F 6E 20 61 74 20 23 43 30 30 30 2E 0D 0A tion at #C000...
01E800: 0D 0A 20 20 20 20 20 20 20 49 6E 20 56 31 2E 31 .. In V1.1
01E810: 20 66 69 72 6D 77 61 72 65 20 69 73 20 69 74 20 firmware is it
01E820: 70 6F 73 73 69 62 6C 65 20 74 6F 20 73 65 74 20 possible to set
01E830: 74 68 65 20 6C 6F 63 61 74 69 6F 6E 20 6F 66 20 the location of
01E840: 74 68 65 20 73 63 72 65 65 6E 20 74 68 61 74 0D the screen that.
01E850: 0A 20 20 20 20 20 20 20 69 73 20 75 73 65 64 20 . is used
01E860: 62 79 20 74 68 65 20 73 63 72 65 65 6E 20 20 70 by the screen p
01E870: 61 63 6B 20 20 72 6F 75 74 69 6E 65 73 20 20 69 ack routines i
01E880: 6E 64 65 70 65 6E 64 65 6E 74 6C 79 20 20 6F 66 ndependently of
01E890: 20 20 73 65 74 74 69 6E 67 20 20 74 68 65 0D 0A setting the..
01E8A0: 20 20 20 20 20 20 20 68 61 72 64 77 61 72 65 20 hardware
01E8B0: 76 61 6C 75 65 2E 20 54 68 69 73 20 77 69 6C 6C value. This will
01E8C0: 20 74 68 65 6E 20 65 6E 61 62 6C 65 20 74 65 78 then enable tex
01E8D0: 74 20 61 6E 64 20 67 72 61 70 68 69 63 73 20 74 t and graphics t
01E8E0: 6F 20 62 65 20 70 72 6F 64 75 63 65 64 0D 0A 20 o be produced..
01E8F0: 20 20 20 20 20 20 69 6E 20 74 68 65 20 27 73 63 in the 'sc
01E900: 72 65 65 6E 27 20 74 68 61 74 20 69 73 6E 27 74 reen' that isn't
01E910: 20 63 75 72 72 65 6E 74 6C 79 20 69 6E 20 76 69 currently in vi
01E920: 65 77 20 2D 20 73 77 69 74 63 68 69 6E 67 20 74 ew - switching t
01E930: 6F 20 74 68 65 20 20 6F 74 68 65 72 0D 0A 20 20 o the other..
01E940: 20 20 20 20 20 70 6F 73 73 69 62 6C 65 20 6C 6F possible lo
01E950: 63 61 74 69 6F 6E 20 28 23 34 30 30 30 20 74 6F cation (#4000 to
01E960: 20 23 43 30 30 30 29 20 77 69 6C 6C 20 20 63 61 #C000) will ca
01E970: 75 73 65 20 20 74 68 65 20 20 61 6C 72 65 61 64 use the alread
01E980: 79 20 20 70 72 65 70 61 72 65 64 0D 0A 20 20 20 y prepared..
01E990: 20 20 20 20 67 72 61 70 68 69 63 73 20 65 74 63 graphics etc
01E9A0: 2E 20 74 6F 20 69 6E 73 74 61 6E 74 6C 79 20 61 . to instantly a
01E9B0: 70 70 65 61 72 20 2D 20 74 68 75 73 20 61 76 6F ppear - thus avo
01E9C0: 69 64 69 6E 67 20 66 6C 69 63 6B 65 72 20 61 6E iding flicker an
01E9D0: 64 20 65 6E 61 62 6C 69 6E 67 0D 0A 20 20 20 20 d enabling..
01E9E0: 20 20 20 73 6D 6F 6F 74 68 20 61 6E 69 6D 61 74 smooth animat
01E9F0: 69 6F 6E 20 65 66 66 65 63 74 73 2E 0D 0A 0D 0A ion effects.....
01EA00: 20 20 20 20 20 20 20 54 68 65 20 73 63 72 65 65 The scree
01EA10: 6E 20 6D 65 6D 6F 72 79 20 6D 61 70 20 69 73 20 n memory map is
01EA20: 6E 6F 74 20 73 69 6D 70 6C 65 2E 20 46 6F 72 74 not simple. Fort
01EA30: 75 6E 61 74 65 6C 79 20 69 74 20 69 73 20 20 6E unately it is n
01EA40: 6F 74 20 20 6E 65 63 65 73 73 61 72 79 0D 0A 20 ot necessary..
01EA50: 20 20 20 20 20 20 74 6F 20 75 6E 64 65 72 73 74 to underst
01EA60: 61 6E 64 20 69 74 20 62 65 63 61 75 73 65 20 74 and it because t
01EA70: 68 65 20 54 65 78 74 20 61 6E 64 20 47 72 61 70 he Text and Grap
01EA80: 68 69 63 73 20 56 44 55 73 20 70 72 6F 76 69 64 hics VDUs provid
01EA90: 65 20 20 69 64 65 61 6C 69 73 65 64 0D 0A 20 20 e idealised..
01EAA0: 20 20 20 20 20 6D 6F 64 65 6C 73 20 6F 66 20 74 models of t
01EAB0: 68 65 20 73 63 72 65 65 6E 2E 20 48 6F 77 65 76 he screen. Howev
01EAC0: 65 72 2C 20 74 6F 20 61 63 68 69 65 76 65 20 6D er, to achieve m
01EAD0: 61 78 69 6D 75 6D 20 20 73 70 65 65 64 20 20 66 aximum speed f
01EAE0: 6F 72 20 20 63 65 72 74 61 69 6E 0D 0A 20 20 20 or certain..
01EAF0: 20 20 20 20 61 70 70 6C 69 63 61 74 69 6F 6E 73 applications
01EB00: 20 28 73 75 63 68 20 61 73 20 61 6E 69 6D 61 74 (such as animat
01EB10: 65 64 20 67 61 6D 65 73 29 20 69 74 20 6D 61 79 ed games) it may
01EB20: 20 62 65 20 20 6E 65 63 65 73 73 61 72 79 20 20 be necessary
01EB30: 74 6F 20 20 61 63 63 65 73 73 0D 0A 20 20 20 20 to access..
01EB40: 20 20 20 74 68 65 20 73 63 72 65 65 6E 20 6D 65 the screen me
01EB50: 6D 6F 72 79 20 64 69 72 65 63 74 6C 79 2E 0D 0A mory directly...
01EB60: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 63 72 .. The scr
01EB70: 65 65 6E 20 6D 65 6D 6F 72 79 20 69 73 20 64 69 een memory is di
01EB80: 76 69 64 65 64 20 69 6E 74 6F 20 38 20 62 6C 6F vided into 8 blo
01EB90: 63 6B 73 2C 20 65 61 63 68 20 32 4B 20 62 79 74 cks, each 2K byt
01EBA0: 65 73 20 6C 6F 6E 67 2E 20 20 42 6C 6F 63 6B 0D es long. Block.
01EBB0: 0A 20 20 20 20 20 20 20 30 20 72 75 6E 73 20 66 . 0 runs f
01EBC0: 72 6F 6D 20 23 43 30 30 30 20 74 6F 20 23 43 37 rom #C000 to #C7
01EBD0: 46 46 2C 20 62 6C 6F 63 6B 20 31 20 72 75 6E 73 FF, block 1 runs
01EBE0: 20 66 72 6F 6D 20 23 43 38 30 30 20 74 6F 20 23 from #C800 to #
01EBF0: 43 46 46 46 2C 20 20 61 6E 64 20 20 73 6F 0D 0A CFFF, and so..
01EC00: 20 20 20 20 20 20 20 6F 6E 2E 20 45 61 63 68 20 on. Each
01EC10: 6C 69 6E 65 20 6F 66 20 70 69 78 65 6C 73 20 6F line of pixels o
01EC20: 6E 20 74 68 65 20 73 63 72 65 65 6E 20 75 73 65 n the screen use
01EC30: 73 20 38 30 20 63 6F 6E 73 65 63 75 74 69 76 65 s 80 consecutive
01EC40: 20 62 79 74 65 73 20 66 72 6F 6D 20 61 0D 0A 20 bytes from a..
01EC50: 20 20 20 20 20 20 62 6C 6F 63 6B 2E 20 54 68 65 block. The
01EC60: 20 74 6F 70 20 6C 69 6E 65 20 6F 66 20 74 68 65 top line of the
01EC70: 20 73 63 72 65 65 6E 20 63 6F 6D 65 73 20 66 72 screen comes fr
01EC80: 6F 6D 20 62 6C 6F 63 6B 20 30 2C 20 74 68 65 20 om block 0, the
01EC90: 73 65 63 6F 6E 64 20 20 66 72 6F 6D 0D 0A 20 20 second from..
01ECA0: 20 20 20 20 20 62 6C 6F 63 6B 20 31 20 61 6E 64 block 1 and
01ECB0: 20 73 6F 20 6F 6E 20 75 6E 74 69 6C 20 74 68 65 so on until the
01ECC0: 20 65 69 67 68 74 68 20 6C 69 6E 65 20 77 68 69 eighth line whi
01ECD0: 63 68 20 63 6F 6D 65 73 20 66 72 6F 6D 20 62 6C ch comes from bl
01ECE0: 6F 63 6B 20 37 2E 20 20 54 68 65 0D 0A 20 20 20 ock 7. The..
01ECF0: 20 20 20 20 73 65 71 75 65 6E 63 65 20 73 74 61 sequence sta
01ED00: 72 74 73 20 77 69 74 68 20 62 6C 6F 63 6B 20 30 rts with block 0
01ED10: 20 61 67 61 69 6E 20 6F 6E 20 74 68 65 20 6E 69 again on the ni
01ED20: 6E 74 68 20 6C 69 6E 65 20 20 61 6E 64 20 20 72 nth line and r
01ED30: 65 70 65 61 74 73 20 20 69 6E 0D 0A 20 20 20 20 epeats in..
01ED40: 20 20 20 74 68 69 73 20 66 61 73 68 69 6F 6E 20 this fashion
01ED50: 61 6C 6C 20 74 68 65 20 77 61 79 20 64 6F 77 6E all the way down
01ED60: 20 74 68 65 20 73 63 72 65 65 6E 2E 20 54 68 65 the screen. The
01ED70: 20 73 75 63 63 65 73 73 69 76 65 20 20 6C 69 6E successive lin
01ED80: 65 73 20 20 69 6E 20 20 61 0D 0A 20 20 20 20 20 es in a..
01ED90: 20 20 62 6C 6F 63 6B 20 61 72 65 20 73 74 6F 72 block are stor
01EDA0: 65 64 20 63 6F 6E 73 65 63 75 74 69 76 65 6C 79 ed consecutively
01EDB0: 20 73 6F 20 74 68 65 72 65 20 61 72 65 20 34 38 so there are 48
01EDC0: 20 75 6E 75 73 65 64 20 62 79 74 65 73 20 61 74 unused bytes at
01EDD0: 20 74 68 65 20 65 6E 64 0D 0A 20 20 20 20 20 20 the end..
01EDE0: 20 6F 66 20 65 61 63 68 20 62 6C 6F 63 6B 2E 0D of each block..
01EDF0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 72 65 20 ... There
01EE00: 69 73 20 66 75 72 74 68 65 72 20 63 6F 6D 70 6C is further compl
01EE10: 69 63 61 74 69 6F 6E 20 69 6E 20 20 74 68 69 73 ication in this
01EE20: 20 20 73 63 72 65 65 6E 20 20 6D 61 70 2E 20 20 screen map.
01EE30: 54 68 65 20 20 64 65 73 63 72 69 70 74 69 6F 6E The description
01EE40: 0D 0A 20 20 20 20 20 20 20 61 62 6F 76 65 20 61 .. above a
01EE50: 73 73 75 6D 65 73 20 74 68 61 74 20 74 68 65 20 ssumes that the
01EE60: 66 69 72 73 74 20 62 79 74 65 20 64 69 73 70 6C first byte displ
01EE70: 61 79 65 64 20 20 66 72 6F 6D 20 20 74 68 65 20 ayed from the
01EE80: 20 62 6C 6F 63 6B 20 20 69 73 20 20 74 68 65 0D block is the.
01EE90: 0A 20 20 20 20 20 20 20 66 69 72 73 74 20 62 79 . first by
01EEA0: 74 65 20 6F 66 20 74 68 65 20 62 6C 6F 63 6B 2E te of the block.
01EEB0: 20 49 6E 20 70 72 61 63 74 69 63 65 20 74 68 65 In practice the
01EEC0: 20 6F 66 66 73 65 74 20 20 69 6E 20 20 61 20 20 offset in a
01EED0: 62 6C 6F 63 6B 20 20 6F 66 20 20 74 68 65 0D 0A block of the..
01EEE0: 20 20 20 20 20 20 20 66 69 72 73 74 20 62 79 74 first byt
01EEF0: 65 20 74 6F 20 62 65 20 64 69 73 70 6C 61 79 20 e to be display
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: 63 61 6E 20 62 65 20 73 65 74 20 74 6F 20 61 6E can be set to an
01F010: 79 20 65 76 65 6E 20 20 76 61 6C 75 65 20 20 28 y even value (
01F020: 73 65 65 20 20 53 43 52 20 20 53 45 54 0D 0A 20 see SCR SET..
01F030: 20 20 20 20 20 20 4F 46 46 53 45 54 29 2E 20 54 OFFSET). T
01F040: 68 65 20 73 61 6D 65 20 6F 66 66 73 65 74 20 61 he same offset a
01F050: 70 70 6C 69 65 73 20 74 6F 20 61 6C 6C 20 65 69 pplies to all ei
01F060: 67 68 74 20 62 6C 6F 63 6B 73 2E 20 20 41 20 20 ght blocks. A
01F070: 62 6C 6F 63 6B 20 20 77 72 61 70 73 0D 0A 20 20 block wraps..
01F080: 20 20 20 20 20 61 72 6F 75 6E 64 20 66 72 6F 6D around from
01F090: 20 69 74 73 20 6C 61 73 74 20 62 79 74 65 20 74 its last byte t
01F0A0: 6F 20 69 74 73 20 66 69 72 73 74 20 62 79 74 65 o its first byte
01F0B0: 2C 20 20 74 68 75 73 20 20 23 43 37 46 45 2C 20 , thus #C7FE,
01F0C0: 20 23 43 37 46 46 20 20 61 6E 64 0D 0A 20 20 20 #C7FF and..
01F0D0: 20 20 20 20 23 43 30 30 30 20 61 72 65 20 63 6F #C000 are co
01F0E0: 6E 73 65 63 75 74 69 76 65 20 62 79 74 65 73 20 nsecutive bytes
01F0F0: 69 6E 20 62 6C 6F 63 6B 20 30 20 61 6E 64 20 63 in block 0 and c
01F100: 6F 75 6C 64 20 61 6C 6C 20 62 65 20 20 6F 6E 20 ould all be on
01F110: 20 74 68 65 20 20 73 61 6D 65 0D 0A 20 20 20 20 the same..
01F120: 20 20 20 6C 69 6E 65 20 6F 66 20 74 68 65 20 73 line of the s
01F130: 63 72 65 65 6E 2E 20 41 6C 74 65 72 69 6E 67 20 creen. Altering
01F140: 74 68 65 20 6F 66 66 73 65 74 20 62 79 20 2B 20 the offset by +
01F150: 6F 72 20 2D 20 20 38 30 20 20 4D 4F 44 20 20 32 or - 80 MOD 2
01F160: 30 34 38 20 20 28 74 68 65 0D 0A 20 20 20 20 20 048 (the..
01F170: 20 20 6C 65 6E 67 74 68 20 6F 66 20 61 20 6C 69 length of a li
01F180: 6E 65 29 20 72 6F 6C 6C 73 20 74 68 65 20 73 63 ne) rolls the sc
01F190: 72 65 65 6E 20 75 70 20 6F 72 20 64 6F 77 6E 20 reen up or down
01F1A0: 62 79 20 6F 6E 65 20 63 68 61 72 61 63 74 65 72 by one character
01F1B0: 20 6C 69 6E 65 20 28 38 0D 0A 20 20 20 20 20 20 line (8..
01F1C0: 20 70 69 78 65 6C 73 20 6C 69 6E 65 73 29 2E 20 pixels lines).
01F1D0: 54 68 69 73 20 65 66 66 65 63 74 20 69 73 20 75 This effect is u
01F1E0: 73 65 64 20 62 79 20 74 68 65 20 54 65 78 74 20 sed by the Text
01F1F0: 56 44 55 20 20 77 68 65 6E 20 20 72 6F 6C 6C 69 VDU when rolli
01F200: 6E 67 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 ng the..
01F210: 65 6E 74 69 72 65 20 73 63 72 65 65 6E 2E 0D 0A entire screen...
01F220: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
01F230: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
01F240: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
01F250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F260: 20 20 20 20 20 20 20 70 61 67 65 20 36 2E 33 0D page 6.3.
01F270: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
01F280: 20 20 20 20 54 68 65 20 6D 65 61 6E 69 6E 67 20 The meaning
01F290: 6F 66 20 74 68 65 20 62 79 74 65 73 20 61 63 63 of the bytes acc
01F2A0: 65 73 73 65 64 20 61 73 20 64 65 73 63 72 69 62 essed as describ
01F2B0: 65 64 20 61 62 6F 76 65 20 76 61 72 69 65 73 20 ed above varies
01F2C0: 20 77 69 74 68 20 20 74 68 65 0D 0A 20 20 20 20 with the..
01F2D0: 20 20 20 73 63 72 65 65 6E 20 6D 6F 64 65 2E 20 screen mode.
01F2E0: 45 61 63 68 20 62 79 74 65 20 73 74 6F 72 65 73 Each byte stores
01F2F0: 20 74 68 65 20 69 6E 6B 73 20 66 6F 72 20 32 2C the inks for 2,
01F300: 20 34 20 6F 72 20 38 20 70 69 78 65 6C 73 2E 20 4 or 8 pixels.
01F310: 54 68 65 20 20 62 69 74 73 0D 0A 20 20 20 20 20 The bits..
01F320: 20 20 75 73 65 64 20 74 6F 20 65 6E 63 6F 64 65 used to encode
01F330: 20 65 61 63 68 20 70 69 78 65 6C 20 61 72 65 20 each pixel are
01F340: 6E 6F 74 20 61 72 72 61 6E 67 65 64 20 69 6E 20 not arranged in
01F350: 61 6E 20 6F 62 76 69 6F 75 73 20 20 6D 61 6E 6E an obvious mann
01F360: 65 72 2E 20 20 54 68 65 0D 0A 20 20 20 20 20 20 er. The..
01F370: 20 66 6F 6C 6C 6F 77 69 6E 67 20 74 61 62 6C 65 following table
01F380: 20 73 70 65 63 69 66 69 65 73 20 77 68 69 63 68 specifies which
01F390: 20 62 69 74 73 20 6F 66 20 20 73 63 72 65 65 6E bits of screen
01F3A0: 20 20 6D 65 6D 6F 72 79 20 20 61 72 65 20 20 75 memory are u
01F3B0: 73 65 64 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 sed to..
01F3C0: 65 6E 63 6F 64 65 20 77 68 69 63 68 20 70 69 78 encode which pix
01F3D0: 65 6C 20 69 6E 20 74 68 65 20 76 61 72 69 6F 75 el in the variou
01F3E0: 73 20 6D 6F 64 65 73 2E 20 54 68 65 20 62 69 74 s modes. The bit
01F3F0: 20 6E 75 6D 62 65 72 73 20 67 69 76 65 6E 20 69 numbers given i
01F400: 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 74 n the.. t
01F410: 61 62 6C 65 20 61 72 65 20 74 68 65 20 62 69 74 able are the bit
01F420: 73 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E 20 s of the screen
01F430: 62 79 74 65 2E 20 54 68 65 79 20 61 72 65 20 67 byte. They are g
01F440: 69 76 65 6E 20 69 6E 20 74 68 65 20 6F 72 64 65 iven in the orde
01F450: 72 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 62 69 r of.. bi
01F460: 74 73 20 69 6E 20 74 68 65 20 70 69 78 65 6C 20 ts in the pixel
01F470: 2D 20 74 68 65 20 66 69 72 73 74 20 62 69 74 20 - the first bit
01F480: 67 69 76 65 6E 20 69 73 20 6D 6F 73 74 20 73 69 given is most si
01F490: 67 6E 69 66 69 63 61 6E 74 20 62 69 74 20 20 6F gnificant bit o
01F4A0: 66 20 20 61 0D 0A 20 20 20 20 20 20 20 70 69 78 f a.. pix
01F4B0: 65 6C 20 61 6E 64 20 74 68 65 20 6C 61 73 74 20 el and the last
01F4C0: 62 69 74 20 69 73 20 74 68 65 20 6C 65 61 73 74 bit is the least
01F4D0: 20 73 69 67 6E 69 66 69 63 61 6E 74 20 62 69 74 significant bit
01F4E0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
01F4F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F500: 20 20 20 20 20 7C 20 20 20 4D 6F 64 65 20 30 20 | Mode 0
01F510: 20 20 20 20 20 20 20 20 20 20 4D 6F 64 65 20 31 Mode 1
01F520: 20 20 20 20 20 4D 6F 64 65 20 32 0D 0A 20 20 20 Mode 2..
01F530: 20 20 20 20 20 20 20 20 20 20 20 20 20 2D 2D 2D ---
01F540: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 7C 2D 2D -------------|--
01F550: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01F560: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01F570: 2D 2D 2D 2D 0D 0A 20 20 20 20 20 20 20 20 20 20 ----..
01F580: 20 20 20 20 20 20 4C 65 66 74 6D 6F 73 74 20 70 Leftmost p
01F590: 69 78 65 6C 20 20 7C 20 20 42 69 74 73 20 31 2C ixel | Bits 1,
01F5A0: 35 2C 33 2C 37 20 20 20 20 42 69 74 73 20 33 2C 5,3,7 Bits 3,
01F5B0: 37 20 20 20 20 42 69 74 20 37 0D 0A 20 20 20 20 7 Bit 7..
01F5C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F5D0: 20 20 2E 20 20 20 20 20 20 20 20 20 7C 20 20 20 . |
01F5E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F5F0: 20 20 20 20 20 20 20 20 20 20 20 42 69 74 20 36 Bit 6
01F600: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
01F610: 20 20 20 20 20 20 20 20 2E 20 20 20 20 20 20 20 .
01F620: 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 |
01F630: 20 20 20 20 20 42 69 74 73 20 32 2C 36 20 20 20 Bits 2,6
01F640: 20 42 69 74 20 35 0D 0A 20 20 20 20 20 20 20 20 Bit 5..
01F650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2E 20 .
01F660: 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 |
01F670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F680: 20 20 20 20 20 20 20 42 69 74 20 34 0D 0A 20 20 Bit 4..
01F690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F6A0: 20 20 20 20 2E 20 20 20 20 20 20 20 20 20 7C 20 . |
01F6B0: 20 42 69 74 73 20 30 2C 34 2C 32 2C 36 20 20 20 Bits 0,4,2,6
01F6C0: 20 42 69 74 73 20 31 2C 35 20 20 20 20 42 69 74 Bits 1,5 Bit
01F6D0: 20 33 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 3..
01F6E0: 20 20 20 20 20 20 20 20 20 20 2E 20 20 20 20 20 .
01F6F0: 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 |
01F700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F710: 20 20 20 42 69 74 20 32 0D 0A 20 20 20 20 20 20 Bit 2..
01F720: 20 20 20 20 20 20 20 20 20 20 52 69 67 68 74 6D Rightm
01F730: 6F 73 74 20 70 69 78 65 6C 20 7C 20 20 20 20 20 ost pixel |
01F740: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 Bit
01F750: 73 20 30 2C 34 20 20 20 20 42 69 74 20 31 0D 0A s 0,4 Bit 1..
01F760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F780: 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
01F790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 B
01F7A0: 69 74 20 30 0D 0A 0D 0A 20 20 20 20 20 20 20 54 it 0.... T
01F7B0: 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 64 69 61 he following dia
01F7C0: 67 72 61 6D 20 69 6C 6C 75 73 74 72 61 74 65 20 gram illustrate
01F7D0: 74 68 65 20 6D 61 70 70 69 6E 67 20 66 72 6F 6D the mapping from
01F7E0: 20 70 69 78 65 6C 73 20 6F 6E 20 74 68 65 20 73 pixels on the s
01F7F0: 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 74 6F creen.. to
01F800: 20 61 64 64 72 65 73 73 65 73 20 69 6E 20 73 63 addresses in sc
01F810: 72 65 65 6E 20 6D 65 6D 6F 72 79 20 66 6F 72 20 reen memory for
01F820: 74 68 65 20 73 69 6D 70 6C 65 20 63 61 73 65 20 the simple case
01F830: 6F 66 20 61 20 62 61 73 65 20 61 64 64 72 65 73 of a base addres
01F840: 73 20 6F 66 0D 0A 20 20 20 20 20 20 20 23 43 30 s of.. #C0
01F850: 30 30 20 61 6E 64 20 61 6E 20 6F 66 66 73 65 74 00 and an offset
01F860: 20 6F 66 20 30 2E 0D 0A 0D 0A 20 20 20 20 20 20 of 0.....
01F870: 20 20 20 20 20 20 20 20 20 3C 2D 2D 2D 2D 2D 2D <------
01F880: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 20 38 30 20 ------------ 80
01F890: 42 59 54 45 53 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D BYTES ----------
01F8A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 3E 0D 0A 20 ------------>..
01F8B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 5F 5F 5F ___
01F8C0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
01F8D0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
01F8E0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
01F8F0: 5F 5F 5F 0D 0A 20 20 20 20 20 20 20 20 20 20 5E ___.. ^
01F900: 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 |
01F910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F930: 20 20 20 20 20 20 20 20 20 7C 20 20 5E 0D 0A 20 | ^..
01F940: 20 20 20 20 20 20 20 20 20 7C 20 20 7C 20 20 23 | | #
01F950: 43 30 30 30 20 23 43 30 30 31 20 2E 2E 2E 2E 2E C000 #C001 .....
01F960: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01F970: 2E 2E 2E 2E 2E 2E 20 23 43 30 34 45 20 23 43 30 ...... #C04E #C0
01F980: 34 46 20 7C 20 20 7C 0D 0A 20 20 20 20 20 20 20 4F | |..
01F990: 20 20 20 7C 20 20 7C 20 20 23 43 38 30 30 20 23 | | #C800 #
01F9A0: 43 38 30 31 20 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E C801 ...........
01F9B0: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01F9C0: 20 23 43 38 34 45 20 23 43 38 34 46 20 7C 20 31 #C84E #C84F | 1
01F9D0: 53 54 0D 0A 20 20 20 20 20 20 20 20 20 20 7C 20 ST.. |
01F9E0: 20 7C 20 20 23 44 30 30 30 20 23 44 30 30 31 20 | #D000 #D001
01F9F0: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FA00: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 20 23 44 30 34 ........... #D04
01FA10: 45 20 23 44 30 34 46 20 7C 20 43 48 41 52 0D 0A E #D04F | CHAR..
01FA20: 20 20 20 20 20 20 20 20 20 20 7C 20 20 7C 20 20 | |
01FA30: 23 44 38 30 30 20 23 44 38 30 31 20 2E 2E 2E 2E #D800 #D801 ....
01FA40: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FA50: 2E 2E 2E 2E 2E 2E 2E 20 23 44 38 34 45 20 23 44 ....... #D84E #D
01FA60: 38 34 46 20 7C 20 52 4F 57 0D 0A 20 20 20 20 20 84F | ROW..
01FA70: 20 20 20 20 20 7C 20 20 7C 20 20 20 20 20 20 20 | |
01FA80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FA90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FAA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C |
01FAB0: 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 7C |.. |
01FAC0: 20 20 7C 20 20 23 46 30 30 30 20 23 46 30 30 31 | #F000 #F001
01FAD0: 20 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ...............
01FAE0: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 20 23 46 30 ............ #F0
01FAF0: 34 45 20 23 46 30 34 46 20 7C 20 20 7C 0D 0A 20 4E #F04F | |..
01FB00: 20 20 20 20 20 20 20 20 20 7C 20 20 7C 20 20 23 | | #
01FB10: 46 38 30 30 20 23 46 38 30 31 20 2E 2E 2E 2E 2E F800 #F801 .....
01FB20: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FB30: 2E 2E 2E 2E 2E 2E 20 23 46 38 34 45 20 23 46 38 ...... #F84E #F8
01FB40: 34 46 20 7C 20 20 56 0D 0A 20 20 20 20 20 20 20 4F | V..
01FB50: 20 20 20 7C 20 20 7C 20 20 23 43 30 35 30 20 23 | | #C050 #
01FB60: 43 30 35 31 20 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E C051 ...........
01FB70: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FB80: 20 23 43 30 39 45 20 23 43 30 39 46 20 7C 0D 0A #C09E #C09F |..
01FB90: 20 20 20 20 20 20 20 20 20 20 7C 20 20 7C 20 20 | |
01FBA0: 23 43 38 35 30 20 23 43 38 35 31 20 2E 2E 2E 2E #C850 #C851 ....
01FBB0: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FBC0: 2E 2E 2E 2E 2E 2E 2E 20 23 43 38 39 45 20 23 43 ....... #C89E #C
01FBD0: 38 39 46 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 89F |..
01FBE0: 20 7C 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 | |
01FBF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FC00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FC10: 20 20 20 20 20 20 20 20 20 20 20 7C 0D 0A 20 20 |..
01FC20: 20 20 20 20 20 32 30 30 20 20 20 7C 2E 2E 2E 2E 200 |....
01FC30: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FC40: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FC50: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FC60: 2E 2E 7C 0D 0A 20 20 20 20 20 20 20 50 49 58 45 ..|.. PIXE
01FC70: 4C 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 L |
01FC80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FC90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FCA0: 20 20 20 20 20 20 20 20 20 7C 0D 0A 20 20 20 20 |..
01FCB0: 20 20 20 4C 49 4E 45 53 20 7C 20 20 20 20 20 20 LINES |
01FCC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FCD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FCE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FCF0: 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 7C 20 20 |.. |
01FD00: 7C 20 20 23 46 46 33 30 20 23 46 46 33 31 20 2E | #FF30 #FF31 .
01FD10: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FD20: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 20 23 46 46 37 45 .......... #FF7E
01FD30: 20 23 46 46 37 46 20 7C 0D 0A 20 20 20 20 20 20 #FF7F |..
01FD40: 20 20 20 20 7C 20 20 7C 20 20 23 43 37 38 30 20 | | #C780
01FD50: 23 43 37 38 31 20 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E #C781 ..........
01FD60: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FD70: 2E 20 23 43 37 43 45 20 23 43 37 43 46 20 7C 20 . #C7CE #C7CF |
01FD80: 20 5E 0D 0A 20 20 20 20 20 20 20 20 20 20 7C 20 ^.. |
01FD90: 20 7C 20 20 23 43 46 38 30 20 23 43 46 38 31 20 | #CF80 #CF81
01FDA0: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FDB0: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 20 23 43 46 43 ........... #CFC
01FDC0: 45 20 23 43 46 43 46 20 7C 20 20 7C 0D 0A 20 20 E #CFCF | |..
01FDD0: 20 20 20 20 20 20 20 20 7C 20 20 7C 20 20 20 20 | |
01FDE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FDF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FE00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FE10: 20 20 7C 20 32 35 74 68 0D 0A 20 20 20 20 20 20 | 25th..
01FE20: 20 20 20 20 7C 20 20 7C 2E 2E 2E 2E 2E 2E 2E 2E | |........
01FE30: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FE40: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FE50: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 7C 20 ..............|
01FE60: 43 48 41 52 0D 0A 20 20 20 20 20 20 20 20 20 20 CHAR..
01FE70: 7C 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 | |
01FE80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FE90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FEA0: 20 20 20 20 20 20 20 20 20 20 7C 20 52 4F 57 0D | ROW.
01FEB0: 0A 20 20 20 20 20 20 20 20 20 20 7C 20 20 7C 20 . | |
01FEC0: 20 23 46 37 38 30 20 23 46 37 38 31 20 2E 2E 2E #F780 #F781 ...
01FED0: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FEE0: 2E 2E 2E 2E 2E 2E 2E 2E 20 23 46 37 43 45 20 23 ........ #F7CE #
01FEF0: 46 37 43 46 20 7C 20 20 7C 0D 0A 20 20 20 20 20 F7CF | |..
01FF00: 20 20 20 20 20 7C 20 20 7C 20 20 23 46 46 38 30 | | #FF80
01FF10: 20 23 46 46 38 31 20 2E 2E 2E 2E 2E 2E 2E 2E 2E #FF81 .........
01FF20: 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ................
01FF30: 2E 2E 20 23 46 46 43 45 20 23 46 46 43 46 20 7C .. #FFCE #FFCF |
01FF40: 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 56 |.. V
01FF50: 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F |_____________
01FF60: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
01FF70: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
01FF80: 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 20 20 56 0D 0A 0D _________| V...
01FF90: 0A 20 20 20 20 20 20 20 23 43 37 44 30 2E 2E 23 . #C7D0..#
01FFA0: 43 37 46 46 2C 20 23 43 46 44 30 2E 2E 23 43 46 C7FF, #CFD0..#CF
01FFB0: 46 46 2C 20 2E 2E 2E 20 2C 20 23 46 46 44 30 2E FF, ... , #FFD0.
01FFC0: 2E 23 46 46 46 46 20 61 72 65 20 75 6E 75 73 65 .#FFFF are unuse
01FFD0: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4F 6E 20 d..... On
01FFE0: 74 68 65 20 43 50 43 36 31 32 38 20 74 68 65 20 the CPC6128 the
01FFF0: 62 61 73 65 20 61 64 64 72 65 73 73 20 73 65 74 base address set
020000: 73 20 77 68 69 63 68 20 62 6C 6F 63 6B 20 77 69 s which block wi
020010: 6C 6C 20 62 65 20 75 73 65 64 20 66 6F 72 20 20 ll be used for
020020: 74 68 65 0D 0A 20 20 20 20 20 20 20 73 63 72 65 the.. scre
020030: 65 6E 20 6D 65 6D 6F 72 79 2E 20 20 42 61 73 65 en memory. Base
020040: 20 20 61 64 64 72 65 73 73 65 73 20 20 6F 66 20 addresses of
020050: 20 23 30 30 30 30 2C 20 20 23 34 30 30 30 2C 20 #0000, #4000,
020060: 20 23 38 30 30 30 20 20 61 6E 64 20 20 23 43 30 #8000 and #C0
020070: 30 30 0D 0A 20 20 20 20 20 20 20 63 6F 72 72 65 00.. corre
020080: 73 70 6F 6E 64 20 74 6F 20 62 6C 6F 63 6B 73 20 spond to blocks
020090: 30 2C 20 31 2C 20 32 2C 20 61 6E 64 20 33 2E 20 0, 1, 2, and 3.
0200A0: 49 74 20 69 73 20 6E 6F 74 20 70 6F 73 73 69 62 It is not possib
0200B0: 6C 65 20 66 6F 72 20 74 68 65 20 73 63 72 65 65 le for the scree
0200C0: 6E 0D 0A 20 20 20 20 20 20 20 6D 65 6D 6F 72 79 n.. memory
0200D0: 20 74 6F 20 62 65 20 6C 6F 63 61 74 65 64 20 69 to be located i
0200E0: 6E 20 62 6C 6F 63 6B 73 20 34 2E 2E 2E 37 2E 20 n blocks 4...7.
0200F0: 57 68 65 72 65 20 74 68 65 20 62 6C 6F 63 6B 20 Where the block
020100: 62 65 69 6E 67 20 20 75 73 65 64 20 20 66 6F 72 being used for
020110: 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 .. screen
020120: 6D 65 6D 6F 72 79 20 61 63 74 75 61 6C 6C 79 20 memory actually
020130: 61 70 70 65 61 72 73 20 69 6E 20 74 68 65 20 6D appears in the m
020140: 65 6D 6F 72 79 20 6D 61 70 20 64 65 70 65 6E 64 emory map depend
020150: 73 20 6F 6E 20 20 74 68 65 20 20 62 61 6E 6B 0D s on the bank.
020160: 0A 20 20 20 20 20 20 20 73 77 69 74 63 68 69 6E . switchin
020170: 67 20 28 73 65 65 20 73 65 63 74 69 6F 6E 20 32 g (see section 2
020180: 2E 35 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 .5)..... A
020190: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
0201A0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
0201B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0201C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
0201D0: 65 20 36 2E 34 0D 0A 1A 63 73 20 56 44 55 73 20 e 6.4...cs VDUs
0201E0: 20 74 6F 20 20 61 63 63 65 73 73 20 20 74 68 65 to access the
0201F0: 0D 0A 20 20 20 20 20 20 20 68 61 72 64 77 61 72 .. hardwar
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0203F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0204F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
020500: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 37 ........ 7
020510: 20 54 68 65 20 53 6F 75 6E 64 20 4D 61 6E 61 67 The Sound Manag
020520: 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 er..... Th
020530: 65 20 53 6F 75 6E 64 20 4D 61 6E 61 67 65 72 20 e Sound Manager
020540: 20 64 65 61 6C 73 20 20 77 69 74 68 20 20 74 68 deals with th
020550: 65 20 20 73 6F 75 6E 64 20 20 63 68 69 70 2E 20 e sound chip.
020560: 20 49 74 20 20 61 6C 6C 6F 77 73 20 20 76 61 72 It allows var
020570: 69 6F 75 73 0D 0A 20 20 20 20 20 20 20 65 6E 76 ious.. env
020580: 65 6C 6F 70 65 73 20 61 6E 64 20 73 6F 75 6E 64 elopes and sound
020590: 73 20 74 6F 20 62 65 20 73 65 74 20 75 70 20 61 s to be set up a
0205A0: 6E 64 20 20 70 6C 61 79 65 64 20 20 75 6E 64 65 nd played unde
0205B0: 72 20 20 63 6F 6E 74 72 6F 6C 20 20 6F 66 20 20 r control of
0205C0: 74 68 65 0D 0A 20 20 20 20 20 20 20 75 73 65 72 the.. user
0205D0: 2E 20 4D 6F 73 74 20 6F 66 20 74 68 65 20 63 6F . Most of the co
0205E0: 6E 74 72 6F 6C 20 69 73 20 61 63 68 69 65 76 65 ntrol is achieve
0205F0: 64 20 75 73 69 6E 67 20 73 6F 66 74 77 61 72 65 d using software
020600: 20 72 61 74 68 65 72 20 20 74 68 61 6E 20 20 74 rather than t
020610: 68 65 0D 0A 20 20 20 20 20 20 20 73 6F 75 6E 64 he.. sound
020620: 20 63 68 69 70 20 68 61 72 64 77 61 72 65 2E 0D chip hardware..
020630: 0A 0D 0A 20 20 20 20 20 20 20 37 2E 31 20 54 68 ... 7.1 Th
020640: 65 20 53 6F 75 6E 64 20 43 68 69 70 2E 0D 0A 0D e Sound Chip....
020650: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 6F ... The so
020660: 75 6E 64 20 63 68 69 70 20 75 73 65 64 20 69 73 und chip used is
020670: 20 74 68 65 20 47 65 6E 65 72 61 6C 20 20 49 6E the General In
020680: 73 74 72 75 6D 65 6E 74 73 20 20 41 59 2D 33 2D struments AY-3-
020690: 38 39 31 32 2E 20 20 54 68 69 73 20 20 68 61 73 8912. This has
0206A0: 0D 0A 20 20 20 20 20 20 20 74 68 72 65 65 20 63 .. three c
0206B0: 68 61 6E 6E 65 6C 73 20 20 61 6E 64 20 20 61 20 hannels and a
0206C0: 20 70 73 65 75 64 6F 2D 72 61 6E 64 6F 6D 20 20 pseudo-random
0206D0: 6E 6F 69 73 65 20 20 67 65 6E 65 72 61 74 6F 72 noise generator
0206E0: 20 20 74 68 61 74 20 20 63 61 6E 20 20 62 65 0D that can be.
0206F0: 0A 20 20 20 20 20 20 20 63 6F 6E 6E 65 63 74 65 . connecte
020700: 64 20 74 6F 20 61 6E 79 20 6F 66 20 74 68 65 20 d to any of the
020710: 63 68 61 6E 6E 65 6C 73 2E 20 54 68 65 20 63 68 channels. The ch
020720: 69 70 20 68 61 73 20 20 61 20 20 6C 69 6D 69 74 ip has a limit
020730: 65 64 20 20 6E 75 6D 62 65 72 20 20 6F 66 0D 0A ed number of..
020740: 20 20 20 20 20 20 20 61 6D 70 6C 69 74 75 64 65 amplitude
020750: 20 65 6E 76 65 6C 6F 70 65 73 20 61 76 61 69 6C envelopes avail
020760: 61 62 6C 65 20 28 20 73 65 65 20 41 70 70 65 6E able ( see Appen
020770: 64 69 78 20 49 58 20 20 29 20 20 62 75 74 20 20 dix IX ) but
020780: 74 68 65 20 20 73 6F 66 74 77 61 72 65 0D 0A 20 the software..
020790: 20 20 20 20 20 20 65 6E 76 65 6C 6F 70 69 6E 67 enveloping
0207A0: 2C 20 64 65 73 63 72 69 62 65 64 20 62 65 6C 6F , described belo
0207B0: 77 2C 20 63 61 6E 20 61 63 68 69 65 76 65 20 20 w, can achieve
0207C0: 61 6C 6C 20 20 74 68 61 74 20 20 74 68 65 20 20 all that the
0207D0: 68 61 72 64 77 61 72 65 20 20 69 73 0D 0A 20 20 hardware is..
0207E0: 20 20 20 20 20 63 61 70 61 62 6C 65 20 6F 66 2C capable of,
0207F0: 20 61 6E 64 20 6D 6F 72 65 2E 20 54 6F 6E 65 20 and more. Tone
020800: 65 6E 76 65 6C 6F 70 69 6E 67 20 69 73 20 20 61 enveloping is a
020810: 6C 6C 20 20 64 6F 6E 65 20 20 62 79 20 20 74 68 ll done by th
020820: 65 20 20 73 6F 66 74 77 61 72 65 0D 0A 20 20 20 e software..
020830: 20 20 20 20 74 68 65 72 65 20 69 73 20 6E 6F 20 there is no
020840: 68 61 72 64 77 61 72 65 20 73 75 70 70 6F 72 74 hardware support
020850: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
020860: 65 20 73 6F 75 6E 64 20 67 65 6E 65 72 61 74 65 e sound generate
020870: 64 20 62 79 20 74 68 65 20 63 68 69 70 20 75 73 d by the chip us
020880: 65 73 20 73 71 75 61 72 65 20 77 61 76 65 66 6F es square wavefo
020890: 72 6D 73 2E 20 54 68 65 72 65 20 69 73 20 6E 6F rms. There is no
0208A0: 20 77 61 79 0D 0A 20 20 20 20 20 20 20 74 6F 20 way.. to
0208B0: 67 65 6E 65 72 61 74 65 20 61 6E 79 20 6F 74 68 generate any oth
0208C0: 65 72 20 77 61 76 65 66 6F 72 6D 2E 0D 0A 0D 0A er waveform.....
0208D0: 0D 0A 20 20 20 20 20 20 20 49 74 20 69 73 20 70 .. It is p
0208E0: 6F 73 73 69 62 6C 65 20 74 6F 20 61 63 63 65 73 ossible to acces
0208F0: 73 20 74 68 65 20 73 6F 75 6E 64 20 63 68 69 70 s the sound chip
020900: 20 64 69 72 65 63 74 6C 79 20 73 68 6F 75 6C 64 directly should
020910: 20 74 68 65 20 6E 65 65 64 20 61 72 69 73 65 0D the need arise.
020920: 0A 20 20 20 20 20 20 20 48 6F 77 65 76 65 72 2C . However,
020930: 20 74 68 65 20 72 6F 75 74 69 6E 65 20 4D 43 20 the routine MC
020940: 53 4F 55 4E 44 20 52 45 47 49 53 54 45 52 20 73 SOUND REGISTER s
020950: 68 6F 75 6C 64 20 20 62 65 20 20 75 73 65 64 20 hould be used
020960: 20 74 6F 20 20 77 72 69 74 65 20 20 74 6F 0D 0A to write to..
020970: 20 20 20 20 20 20 20 72 65 67 69 73 74 65 72 73 registers
020980: 20 6F 66 20 74 68 65 20 73 6F 75 6E 64 20 63 68 of the sound ch
020990: 69 70 2E 20 54 68 69 73 20 69 73 20 62 65 63 61 ip. This is beca
0209A0: 75 73 65 20 74 68 65 20 6B 65 79 62 6F 61 72 64 use the keyboard
0209B0: 20 69 73 20 20 61 74 74 61 63 68 65 64 0D 0A 20 is attached..
0209C0: 20 20 20 20 20 20 74 6F 20 74 68 65 20 49 2F 4F to the I/O
0209D0: 20 70 6F 72 74 20 6F 66 20 74 68 65 20 73 6F 75 port of the sou
0209E0: 6E 64 20 63 68 69 70 20 61 6E 64 20 74 68 65 20 nd chip and the
0209F0: 20 6B 65 79 62 6F 61 72 64 20 20 73 63 61 6E 6E keyboard scann
020A00: 69 6E 67 20 20 72 6F 75 74 69 6E 65 0D 0A 20 20 ing routine..
020A10: 20 20 20 20 20 65 78 70 65 63 74 73 20 74 6F 20 expects to
020A20: 66 69 6E 64 20 74 68 65 20 73 6F 75 6E 64 20 63 find the sound c
020A30: 68 69 70 20 69 6E 20 61 20 73 74 61 6E 64 61 72 hip in a standar
020A40: 64 20 73 74 61 74 65 20 28 20 69 2E 65 2E 20 6E d state ( i.e. n
020A50: 6F 74 20 69 6E 20 20 75 73 65 29 0D 0A 20 20 20 ot in use)..
020A60: 20 20 20 20 41 6C 73 6F 2C 20 74 68 65 72 65 20 Also, there
020A70: 61 72 65 20 74 69 6D 69 6E 67 20 63 6F 6E 73 74 are timing const
020A80: 72 61 69 6E 74 73 20 6F 6E 20 61 63 63 65 73 73 raints on access
020A90: 65 73 20 74 6F 20 20 74 68 65 20 20 63 68 69 70 es to the chip
020AA0: 3A 75 73 69 6E 67 20 20 4D 43 0D 0A 20 20 20 20 :using MC..
020AB0: 20 20 20 53 4F 55 4E 44 20 52 45 47 49 53 54 45 SOUND REGISTE
020AC0: 52 20 77 69 6C 6C 20 61 76 6F 69 64 20 63 6F 6E R will avoid con
020AD0: 73 69 64 65 72 61 74 69 6F 6E 20 6F 66 20 74 68 sideration of th
020AE0: 65 73 65 20 64 65 74 61 69 6C 73 2E 0D 0A 0D 0A ese details.....
020AF0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 6F 75 .. The sou
020B00: 6E 64 20 63 68 69 70 20 68 61 73 20 74 68 72 65 nd chip has thre
020B10: 65 20 69 6E 64 65 70 65 6E 64 65 6E 74 20 73 6F e independent so
020B20: 75 6E 64 20 63 68 61 6E 6E 65 6C 73 2E 20 54 68 und channels. Th
020B30: 65 20 6F 75 74 70 75 74 73 20 20 66 72 6F 6D 0D e outputs from.
020B40: 0A 20 20 20 20 20 20 20 74 68 65 73 65 20 61 72 . these ar
020B50: 65 20 6D 69 78 65 64 20 74 6F 67 65 74 68 65 72 e mixed together
020B60: 20 74 6F 20 66 6F 72 6D 20 74 77 6F 20 73 74 65 to form two ste
020B70: 72 65 6F 20 63 68 61 6E 6E 65 6C 73 20 2D 20 73 reo channels - s
020B80: 6F 75 6E 64 20 20 63 68 61 6E 6E 65 6C 73 0D 0A ound channels..
020B90: 20 20 20 20 20 20 20 41 20 61 6E 64 20 42 20 61 A and B a
020BA0: 72 65 20 6D 69 78 65 64 20 74 6F 20 66 6F 72 6D re mixed to form
020BB0: 20 6F 6E 65 20 73 74 65 72 65 6F 20 63 68 61 6E one stereo chan
020BC0: 6E 65 6C 20 61 6E 64 20 73 6F 75 6E 64 20 63 68 nel and sound ch
020BD0: 61 6E 6E 65 6C 73 20 42 20 20 61 6E 64 0D 0A 20 annels B and..
020BE0: 20 20 20 20 20 20 43 20 61 72 65 20 6D 69 78 65 C are mixe
020BF0: 64 20 74 6F 20 66 6F 72 6D 20 74 68 65 20 6F 74 d to form the ot
020C00: 68 65 72 20 73 74 65 72 65 6F 20 20 63 68 61 6E her stereo chan
020C10: 6E 65 6C 2E 20 20 54 68 65 20 20 73 74 65 72 65 nel. The stere
020C20: 6F 20 20 73 6F 75 6E 64 20 20 69 73 0D 0A 20 20 o sound is..
020C30: 20 20 20 20 20 61 76 61 69 6C 61 62 6C 65 20 6F available o
020C40: 6E 20 74 68 65 20 6F 75 74 70 75 74 20 6A 61 63 n the output jac
020C50: 6B 20 6F 6E 20 74 68 65 20 20 62 61 63 6B 20 20 k on the back
020C60: 6F 66 20 20 74 68 65 20 20 6D 61 63 68 69 6E 65 of the machine
020C70: 2E 20 20 48 6F 77 65 76 65 72 2C 0D 0A 20 20 20 . However,..
020C80: 20 20 20 20 74 68 65 72 65 20 69 73 20 6F 6E 6C there is onl
020C90: 79 20 61 20 73 69 6E 67 6C 65 20 69 6E 74 65 72 y a single inter
020CA0: 6E 61 6C 20 73 70 65 61 6B 65 72 20 61 6E 64 20 nal speaker and
020CB0: 73 6F 20 74 68 65 20 74 77 6F 20 73 74 65 72 65 so the two stere
020CC0: 6F 20 63 68 61 6E 6E 65 6C 73 0D 0A 20 20 20 20 o channels..
020CD0: 20 20 20 61 72 65 20 6D 69 78 65 64 20 74 6F 67 are mixed tog
020CE0: 65 74 68 65 72 20 74 6F 20 20 64 72 69 76 65 20 ether to drive
020CF0: 20 74 68 69 73 2E 20 20 54 68 65 20 20 76 6F 6C this. The vol
020D00: 75 6D 65 20 20 6F 66 20 20 73 6F 75 6E 64 20 20 ume of sound
020D10: 66 72 6F 6D 20 20 74 68 65 0D 0A 20 20 20 20 20 from the..
020D20: 20 20 69 6E 74 65 72 6E 61 6C 20 73 70 65 61 6B internal speak
020D30: 65 72 20 63 61 6E 20 62 65 20 63 6F 6E 74 72 6F er can be contro
020D40: 6C 6C 65 64 20 62 79 20 74 68 65 20 76 6F 6C 75 lled by the volu
020D50: 6D 65 20 6B 6E 6F 62 20 6F 6E 20 74 68 65 20 20 me knob on the
020D60: 73 69 64 65 20 20 6F 66 0D 0A 20 20 20 20 20 20 side of..
020D70: 20 74 68 65 20 6D 61 63 68 69 6E 65 20 6E 65 61 the machine nea
020D80: 72 20 74 68 65 20 6F 6E 2F 6F 66 66 20 73 77 69 r the on/off swi
020D90: 74 63 68 2E 20 54 68 69 73 20 63 6F 6E 74 72 6F tch. This contro
020DA0: 6C 20 6F 76 65 72 72 69 64 65 73 20 20 74 68 65 l overrides the
020DB0: 20 20 6F 74 68 65 72 0D 0A 20 20 20 20 20 20 20 other..
020DC0: 76 6F 6C 75 6D 65 20 6D 65 74 68 6F 64 73 20 64 volume methods d
020DD0: 65 73 63 72 69 62 65 64 20 62 65 6C 6F 77 2E 0D escribed below..
020DE0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 37 2E 32 20 ..... 7.2
020DF0: 54 6F 6E 65 20 50 65 72 69 6F 64 73 20 61 6E 64 Tone Periods and
020E00: 20 41 6D 70 6C 69 74 75 64 65 73 2E 0D 0A 0D 0A Amplitudes.....
020E10: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 6F 75 .. The sou
020E20: 6E 64 20 63 68 69 70 20 61 6C 6C 6F 77 73 20 31 nd chip allows 1
020E30: 36 20 64 69 66 66 65 72 65 6E 74 20 20 61 6D 70 6 different amp
020E40: 6C 69 74 75 64 65 73 20 20 69 6E 20 20 74 68 65 litudes in the
020E50: 20 20 72 61 6E 67 65 20 20 30 2E 2E 31 35 2E 0D range 0..15..
020E60: 0A 20 20 20 20 20 20 20 41 6D 70 6C 69 74 75 64 . Amplitud
020E70: 65 20 30 20 69 73 20 6E 6F 20 73 6F 75 6E 64 20 e 0 is no sound
020E80: 61 74 20 61 6C 6C 2C 20 61 6D 70 6C 69 74 75 64 at all, amplitud
020E90: 65 20 31 35 20 69 73 20 6D 61 78 69 6D 75 6D 20 e 15 is maximum
020EA0: 76 6F 6C 75 6D 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 volume.......
020EB0: 20 20 20 20 54 68 65 20 70 69 74 63 68 20 6F 66 The pitch of
020EC0: 20 61 20 6E 6F 74 65 20 74 6F 20 62 65 20 67 65 a note to be ge
020ED0: 6E 65 72 61 74 65 64 20 69 73 20 73 70 65 63 69 nerated is speci
020EE0: 66 69 65 64 20 62 79 20 74 68 65 20 70 65 72 69 fied by the peri
020EF0: 6F 64 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 od of the..
020F00: 20 20 20 6E 6F 74 65 20 72 61 74 68 65 72 20 74 note rather t
020F10: 68 61 6E 20 62 79 20 74 68 65 20 66 72 65 71 75 han by the frequ
020F20: 65 6E 63 79 2E 20 54 68 69 73 20 70 65 72 69 6F ency. This perio
020F30: 64 20 69 73 20 67 69 76 65 6E 20 69 6E 20 6D 69 d is given in mi
020F40: 63 72 6F 73 65 63 6F 6E 64 0D 0A 20 20 20 20 20 crosecond..
020F50: 20 20 75 6E 69 74 73 2E 20 54 68 75 73 2C 20 74 units. Thus, t
020F60: 68 65 20 74 6F 6E 65 20 70 65 72 69 6F 64 20 73 he tone period s
020F70: 70 65 63 69 66 69 65 64 20 61 6E 64 20 74 68 65 pecified and the
020F80: 20 66 72 65 71 75 65 6E 63 79 20 6F 66 20 20 74 frequency of t
020F90: 68 65 20 20 74 6F 6E 65 0D 0A 20 20 20 20 20 20 he tone..
020FA0: 20 67 65 6E 65 72 61 74 65 64 20 61 72 65 20 72 generated are r
020FB0: 65 6C 61 74 65 64 20 62 79 20 74 68 65 20 66 6F elated by the fo
020FC0: 72 6D 75 6C 61 20 3A 0D 0A 0D 0A 0D 0A 20 20 20 rmula :......
020FD0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
020FE0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
020FF0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
021000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
021010: 20 20 70 61 67 65 20 37 2E 31 0D 0A 0D 0A 0D 0A page 7.1......
021020: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ........
021030: 20 20 20 20 20 20 20 20 54 6F 6E 65 20 70 65 72 Tone per
021040: 69 6F 64 20 3D 20 31 32 35 30 30 30 2F 46 72 65 iod = 125000/Fre
021050: 71 75 65 6E 63 79 0D 0A 0D 0A 0D 0A 20 20 20 20 quency......
021060: 20 20 20 53 65 65 20 41 70 70 65 6E 64 69 78 20 See Appendix
021070: 56 49 49 49 20 66 6F 72 20 61 20 6C 69 73 74 20 VIII for a list
021080: 6F 66 20 74 68 65 20 73 75 67 67 65 73 74 65 64 of the suggested
021090: 20 70 65 72 69 6F 64 73 20 20 66 6F 72 20 20 67 periods for g
0210A0: 65 6E 65 72 61 74 69 6E 67 0D 0A 20 20 20 20 20 enerating..
0210B0: 20 20 6D 75 73 69 63 61 6C 20 6E 6F 74 65 73 2E musical notes.
0210C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 37 2E 33 ...... 7.3
0210D0: 20 45 6E 76 65 6C 6F 70 69 6E 67 2E 0D 0A 0D 0A Enveloping.....
0210E0: 0D 0A 20 20 20 20 20 20 20 52 65 61 6C 20 73 6F .. Real so
0210F0: 75 6E 64 73 20 72 61 72 65 6C 79 20 20 68 61 76 unds rarely hav
021100: 65 20 20 61 20 20 63 6F 6E 73 74 61 6E 74 20 20 e a constant
021110: 76 6F 6C 75 6D 65 2E 20 20 45 6E 76 65 6C 6F 70 volume. Envelop
021120: 69 6E 67 20 20 61 6C 6C 6F 77 73 20 20 61 6E 0D ing allows an.
021130: 0A 20 20 20 20 20 20 20 61 70 70 72 6F 78 69 6D . approxim
021140: 61 74 69 6F 6E 20 74 6F 20 74 68 65 20 76 61 72 ation to the var
021150: 69 61 74 69 6F 6E 20 69 6E 20 76 6F 6C 75 6D 65 iation in volume
021160: 20 6F 66 20 72 65 61 6C 20 73 6F 75 6E 64 20 74 of real sound t
021170: 6F 20 62 65 20 6D 61 64 65 2E 20 54 68 65 0D 0A o be made. The..
021180: 20 20 20 20 20 20 20 73 6F 75 6E 64 20 69 73 20 sound is
021190: 73 70 6C 69 74 20 69 6E 74 6F 20 61 20 6E 75 6D split into a num
0211A0: 62 65 72 20 6F 66 20 73 65 63 74 69 6F 6E 73 20 ber of sections
0211B0: 65 61 63 68 20 6F 66 20 20 77 68 69 63 68 20 20 each of which
0211C0: 63 61 6E 20 20 69 6E 63 72 65 61 73 65 0D 0A 20 can increase..
0211D0: 20 20 20 20 20 20 74 68 65 20 76 6F 6C 75 6D 65 the volume
0211E0: 2C 20 64 65 63 72 65 61 73 65 20 74 68 65 20 76 , decrease the v
0211F0: 6F 6C 75 6D 65 2C 20 6F 72 20 6B 65 65 70 20 69 olume, or keep i
021200: 74 20 63 6F 6E 73 74 61 6E 74 2E 20 20 54 68 65 t constant. The
021210: 20 20 6C 65 6E 67 74 68 20 20 6F 66 0D 0A 20 20 length of..
021220: 20 20 20 20 20 74 68 65 73 65 20 73 65 63 74 69 these secti
021230: 6F 6E 73 20 63 61 6E 20 62 65 20 76 61 72 69 65 ons can be varie
021240: 64 2C 20 61 73 20 63 61 6E 20 74 68 65 20 72 61 d, as can the ra
021250: 74 65 20 6F 66 20 69 6E 63 72 65 61 73 65 20 6F te of increase o
021260: 72 20 20 64 65 63 72 65 61 73 65 0D 0A 20 20 20 r decrease..
021270: 20 20 20 20 69 6E 20 76 6F 6C 75 6D 65 2E 20 46 in volume. F
021280: 6F 72 20 65 78 61 6D 70 6C 65 2C 20 61 20 6E 6F or example, a no
021290: 74 65 20 67 65 6E 65 72 61 74 65 64 20 62 79 20 te generated by
0212A0: 61 20 6D 75 73 69 63 61 6C 20 20 69 6E 73 74 72 a musical instr
0212B0: 75 6D 65 6E 74 20 20 6D 61 79 0D 0A 20 20 20 20 ument may..
0212C0: 20 20 20 62 65 20 63 6F 6E 73 69 64 65 72 65 64 be considered
0212D0: 20 74 6F 20 68 61 76 65 20 33 20 73 65 63 74 69 to have 3 secti
0212E0: 6F 6E 73 20 61 73 20 66 6F 6C 6C 6F 77 73 20 3A ons as follows :
0212F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 74 74 ...... Att
021300: 61 63 6B 3A 20 54 68 65 20 76 6F 6C 75 6D 65 20 ack: The volume
021310: 6F 66 20 74 68 65 20 6E 6F 74 65 20 72 69 73 65 of the note rise
021320: 73 20 72 61 70 69 64 6C 79 20 74 6F 20 69 74 73 s rapidly to its
021330: 20 70 65 61 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 peak.......
021340: 20 20 20 53 75 73 74 61 69 6E 3A 20 54 68 65 20 Sustain: The
021350: 76 6F 6C 75 6D 65 20 6F 66 20 74 68 65 20 6E 6F volume of the no
021360: 74 65 20 72 65 6D 61 69 6E 73 20 20 63 6F 6E 73 te remains cons
021370: 74 61 6E 74 20 20 77 68 69 6C 65 20 20 74 68 65 tant while the
021380: 20 20 6E 6F 74 65 20 69 73 0D 0A 20 20 20 20 20 note is..
021390: 20 20 20 20 20 20 20 20 20 20 20 70 6C 61 79 65 playe
0213A0: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 d....... D
0213B0: 65 63 61 79 3A 20 20 54 68 65 20 76 6F 6C 75 6D ecay: The volum
0213C0: 65 20 66 61 6C 6C 73 20 61 77 61 79 20 73 6C 6F e falls away slo
0213D0: 77 6C 79 20 74 6F 20 7A 65 72 6F 20 61 73 20 74 wly to zero as t
0213E0: 68 65 20 6E 6F 74 65 20 66 69 6E 69 73 68 65 73 he note finishes
0213F0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 .......
021400: 20 20 20 20 20 20 20 20 20 20 20 20 20 5F 5F 5F ___
021410: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
021420: 5F 5F 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 __..
021430: 20 20 20 20 20 20 20 20 20 2F 7C 20 20 20 20 20 /|
021440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C |
021450: 5C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 \..
021460: 20 20 20 20 20 20 20 2F 20 7C 20 20 20 20 20 20 / |
021470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 |
021480: 20 5C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 \..
021490: 20 20 20 20 20 20 20 2F 20 20 7C 20 20 20 20 20 / |
0214A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C |
0214B0: 20 20 20 20 5C 0D 0A 20 20 20 20 20 20 20 20 20 \..
0214C0: 20 20 20 20 20 20 20 20 20 2F 20 20 20 7C 20 20 / |
0214D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0214E0: 20 20 7C 20 20 20 20 20 20 5C 0D 0A 20 20 20 20 | \..
0214F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2F 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: 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 |
021610: 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 |
021620: 5C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 \..
021630: 20 20 20 2F 20 20 20 20 20 7C 20 20 20 20 20 20 / |
021640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 |
021650: 20 20 20 20 20 20 20 20 20 5C 0D 0A 20 20 20 20 \..
021660: 20 20 20 20 20 20 20 20 20 20 20 2F 20 20 20 20 /
021670: 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 |
021680: 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 |
021690: 20 20 20 20 5C 0D 0A 20 20 20 20 20 20 20 20 20 \..
0216A0: 20 20 20 20 20 2F 20 20 20 20 20 20 20 7C 20 20 / |
0216B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0216C0: 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 |
0216D0: 20 5C 0D 0A 20 20 20 20 20 20 20 20 20 20 41 74 \.. At
0216E0: 74 61 63 6B 20 20 20 20 20 20 20 20 20 20 20 20 tack
0216F0: 53 75 73 74 61 69 6E 20 20 20 20 20 20 20 20 20 Sustain
021700: 20 20 20 20 44 65 63 61 79 0D 0A 0D 0A 0D 0A 20 Decay......
021710: 20 20 20 20 20 20 54 68 65 20 53 6F 75 6E 64 20 The Sound
021720: 4D 61 6E 61 67 65 72 20 61 6C 6C 6F 77 73 20 74 Manager allows t
021730: 77 6F 20 74 79 70 65 73 20 6F 66 20 65 6E 76 65 wo types of enve
021740: 6C 6F 70 65 73 3A 20 20 61 6D 70 6C 69 74 75 64 lopes: amplitud
021750: 65 20 20 65 6E 76 65 6C 6F 70 65 73 0D 0A 20 20 e envelopes..
021760: 20 20 20 20 20 74 6F 20 63 6F 6E 74 72 6F 6C 20 to control
021770: 61 20 73 6F 75 6E 64 27 73 20 76 6F 6C 75 6D 65 a sound's volume
021780: 20 61 6E 64 20 74 6F 6E 65 20 65 6E 76 65 6C 6F and tone envelo
021790: 70 65 73 20 69 74 73 20 70 69 74 63 68 20 28 20 pes its pitch (
0217A0: 20 74 68 65 20 20 70 69 74 63 68 0D 0A 20 20 20 the pitch..
0217B0: 20 20 20 20 69 73 20 76 61 72 69 65 64 20 69 6E is varied in
0217C0: 20 6D 75 63 68 20 74 68 65 20 73 61 6D 65 20 77 much the same w
0217D0: 61 79 20 61 73 20 74 68 65 20 76 6F 6C 75 6D 65 ay as the volume
0217E0: 20 29 2E 20 54 68 65 20 75 73 65 72 20 63 61 6E ). The user can
0217F0: 20 73 65 74 20 75 70 20 74 6F 0D 0A 20 20 20 20 set up to..
021800: 20 20 20 31 35 20 64 69 66 66 65 72 65 6E 74 20 15 different
021810: 65 6E 76 65 6C 6F 70 65 73 20 6F 66 20 65 61 63 envelopes of eac
021820: 68 20 74 79 70 65 2E 20 54 68 65 20 65 78 61 63 h type. The exac
021830: 74 20 20 66 6F 72 6D 61 74 73 20 20 6F 66 20 20 t formats of
021840: 74 68 65 20 20 64 61 74 61 0D 0A 20 20 20 20 20 the data..
021850: 20 20 62 6C 6F 63 6B 20 73 70 65 63 69 66 79 69 block specifyi
021860: 6E 67 20 65 6E 76 65 6C 6F 70 65 73 20 61 72 65 ng envelopes are
021870: 20 67 69 76 65 6E 20 69 6E 20 53 4F 55 4E 44 20 given in SOUND
021880: 41 4D 50 4C 20 45 4E 56 45 4C 4F 50 45 20 61 6E AMPL ENVELOPE an
021890: 64 20 20 53 4F 55 4E 44 0D 0A 20 20 20 20 20 20 d SOUND..
0218A0: 20 54 4F 4E 45 20 45 4E 56 45 4C 4F 50 45 2E 0D TONE ENVELOPE..
0218B0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 61 2E 20 41 ..... a. A
0218C0: 6D 70 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 mplitude envelop
0218D0: 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es.......
0218E0: 41 6E 20 61 6D 70 6C 69 74 75 64 65 20 65 6E 76 An amplitude env
0218F0: 65 6C 6F 70 65 20 69 73 20 75 73 65 64 20 74 6F elope is used to
021900: 20 63 6F 6E 74 72 6F 6C 20 20 74 68 65 20 20 76 control the v
021910: 6F 6C 75 6D 65 20 20 61 6E 64 20 20 6C 65 6E 67 olume and leng
021920: 74 68 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 73 th of.. s
021930: 6F 75 6E 64 2E 20 49 74 20 63 61 6E 20 68 61 76 ound. It can hav
021940: 65 20 75 70 20 74 6F 20 66 69 76 65 20 73 65 63 e up to five sec
021950: 74 69 6F 6E 73 2E 20 45 61 63 68 20 20 73 65 63 tions. Each sec
021960: 74 69 6F 6E 20 20 63 61 6E 20 20 62 65 20 20 65 tion can be e
021970: 69 74 68 65 72 0D 0A 20 20 20 20 20 20 20 68 61 ither.. ha
021980: 72 64 77 61 72 65 20 6F 72 20 61 20 73 6F 66 74 rdware or a soft
021990: 77 61 72 65 20 73 65 63 74 69 6F 6E 2E 20 53 6F ware section. So
0219A0: 66 74 77 61 72 65 20 73 65 63 74 69 6F 6E 73 20 ftware sections
0219B0: 61 72 65 20 65 69 74 68 65 72 20 20 61 62 73 6F are either abso
0219C0: 6C 75 74 65 0D 0A 20 20 20 20 20 20 20 6F 72 20 lute.. or
0219D0: 72 65 6C 61 74 69 76 65 2E 0D 0A 0D 0A 0D 0A 0D relative........
0219E0: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
0219F0: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
021A00: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
021A10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
021A20: 20 20 20 20 20 20 70 61 67 65 20 37 2E 32 0D 0A page 7.2..
021A30: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
021A40: 20 20 20 48 61 72 64 77 61 72 65 20 73 65 63 74 Hardware sect
021A50: 69 6F 6E 73 20 77 72 69 74 65 20 76 61 6C 75 65 ions write value
021A60: 73 20 69 6E 74 6F 20 74 68 65 20 73 6F 75 6E 64 s into the sound
021A70: 20 63 68 69 70 20 72 65 67 69 73 74 65 72 73 20 chip registers
021A80: 31 31 2C 31 32 20 20 61 6E 0D 0A 20 20 20 20 20 11,12 an..
021A90: 20 20 31 33 20 74 6F 20 73 65 74 20 75 70 20 61 13 to set up a
021AA0: 20 68 61 72 64 77 61 72 65 20 65 6E 76 65 6C 6F hardware envelo
021AB0: 70 65 2E 20 28 20 53 65 65 20 41 70 70 65 6E 64 pe. ( See Append
021AC0: 69 78 20 49 58 20 66 6F 72 20 61 20 20 64 65 73 ix IX for a des
021AD0: 63 72 69 70 74 69 6F 6E 0D 0A 20 20 20 20 20 20 cription..
021AE0: 20 6F 66 20 74 68 65 20 73 6F 75 6E 64 20 63 68 of the sound ch
021AF0: 69 70 20 72 65 67 69 73 74 65 72 73 29 2E 20 47 ip registers). G
021B00: 65 6E 65 72 61 6C 6C 79 20 61 20 20 68 61 72 64 enerally a hard
021B10: 77 61 72 65 20 20 73 65 63 74 69 6F 6E 20 20 77 ware section w
021B20: 69 6C 6C 20 20 62 65 0D 0A 20 20 20 20 20 20 20 ill be..
021B30: 66 6F 6C 6C 6F 77 65 64 20 62 79 20 61 20 73 6F followed by a so
021B40: 66 74 77 61 72 65 20 73 65 63 74 69 6F 6E 20 74 ftware section t
021B50: 68 61 74 20 64 6F 65 73 20 6E 6F 74 68 69 6E 67 hat does nothing
021B60: 20 20 65 78 63 65 70 74 20 20 77 61 69 74 20 20 except wait
021B70: 66 6F 72 20 20 61 0D 0A 20 20 20 20 20 20 20 74 for a.. t
021B80: 69 6D 65 20 6C 6F 6E 67 20 65 6E 6F 75 67 68 20 ime long enough
021B90: 66 6F 72 20 74 68 65 20 68 61 72 64 77 61 72 65 for the hardware
021BA0: 20 65 6E 76 65 6C 6F 70 65 20 74 6F 20 6F 70 65 envelope to ope
021BB0: 72 61 74 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rate.....
021BC0: 41 6E 20 61 62 73 6F 6C 75 74 65 20 73 6F 66 74 An absolute soft
021BD0: 77 61 72 65 20 73 65 63 74 69 6F 6E 20 73 70 65 ware section spe
021BE0: 63 69 66 69 65 73 20 61 20 76 6F 6C 75 6D 65 20 cifies a volume
021BF0: 74 6F 20 73 65 74 20 61 6E 64 20 61 20 20 74 69 to set and a ti
021C00: 6D 65 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 77 me to.. w
021C10: 61 69 74 20 62 65 66 6F 72 65 20 6F 62 65 79 69 ait before obeyi
021C20: 6E 67 20 74 68 65 20 6E 65 78 74 20 73 6F 6C 75 ng the next solu
021C30: 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 tion.....
021C40: 41 20 72 65 6C 61 74 69 76 65 20 73 6F 66 74 77 A relative softw
021C50: 61 72 65 20 73 65 63 74 69 6F 6E 20 73 70 65 63 are section spec
021C60: 69 66 69 65 73 20 61 6E 20 73 74 65 70 20 73 69 ifies an step si
021C70: 7A 65 2C 20 61 20 6E 75 6D 62 65 72 20 6F 66 20 ze, a number of
021C80: 20 73 74 65 70 73 0D 0A 20 20 20 20 20 20 20 61 steps.. a
021C90: 6E 64 20 61 20 74 69 6D 65 20 74 6F 20 77 61 69 nd a time to wai
021CA0: 74 2E 20 46 6F 72 20 65 61 63 68 20 73 74 65 70 t. For each step
021CB0: 20 72 65 71 75 65 73 74 65 64 2C 20 20 74 68 65 requested, the
021CC0: 20 20 63 75 72 72 65 6E 74 20 20 76 6F 6C 75 6D current volum
021CD0: 65 20 20 69 73 0D 0A 20 20 20 20 20 20 20 63 68 e is.. ch
021CE0: 61 6E 67 65 64 20 62 79 20 74 68 65 20 67 69 76 anged by the giv
021CF0: 65 6E 20 73 74 65 70 20 73 69 7A 65 20 61 6E 64 en step size and
021D00: 20 74 68 65 6E 20 74 68 65 20 53 6F 75 6E 64 20 then the Sound
021D10: 20 6D 61 6E 61 67 65 72 20 20 77 61 69 74 73 20 manager waits
021D20: 20 66 6F 72 0D 0A 20 20 20 20 20 20 20 74 68 65 for.. the
021D30: 20 67 69 76 65 6E 20 74 69 6D 65 20 61 66 74 65 given time afte
021D40: 72 20 65 61 63 68 20 73 74 65 70 20 62 65 66 6F r each step befo
021D50: 72 65 20 6F 62 65 79 69 6E 67 20 74 68 65 20 6E re obeying the n
021D60: 65 78 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ext..... A
021D70: 6D 70 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 mplitude envelop
021D80: 65 73 20 61 72 65 20 73 65 74 20 62 79 20 63 61 es are set by ca
021D90: 6C 6C 69 6E 67 20 53 4F 55 4E 44 20 41 4D 50 4C lling SOUND AMPL
021DA0: 20 45 4E 56 45 4C 4F 50 45 2E 0D 0A 0D 0A 20 20 ENVELOPE.....
021DB0: 20 20 20 20 20 62 2E 20 54 6F 6E 65 20 65 6E 76 b. Tone env
021DC0: 65 6C 6F 70 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 elopes.....
021DD0: 20 20 41 20 74 6F 6E 65 20 65 6E 76 65 6C 6F 70 A tone envelop
021DE0: 65 20 63 6F 6E 74 72 6F 6C 73 20 74 68 65 20 70 e controls the p
021DF0: 69 74 63 68 20 6F 66 20 74 68 65 20 73 6F 75 6E itch of the soun
021E00: 64 2E 20 49 74 20 20 63 61 6E 20 20 68 61 76 65 d. It can have
021E10: 20 20 75 70 20 20 74 6F 0D 0A 20 20 20 20 20 20 up to..
021E20: 20 66 69 76 65 20 73 65 63 74 69 6F 6E 73 2E 20 five sections.
021E30: 45 61 63 68 20 73 65 63 74 69 6F 6E 20 63 61 6E Each section can
021E40: 20 62 65 20 65 69 74 68 65 72 20 61 6E 20 61 62 be either an ab
021E50: 73 6F 6C 75 74 65 20 20 6F 72 20 20 61 20 20 72 solute or a r
021E60: 65 6C 61 74 69 76 65 0D 0A 20 20 20 20 20 20 20 elative..
021E70: 73 65 63 74 69 6F 6E 2E 20 54 68 65 20 73 65 63 section. The sec
021E80: 74 69 6F 6E 73 20 6F 66 20 61 20 74 6F 6E 65 20 tions of a tone
021E90: 65 6E 76 65 6C 6F 70 65 20 61 72 65 20 6E 6F 74 envelope are not
021EA0: 20 20 6E 65 63 65 73 73 61 72 69 6C 79 20 20 72 necessarily r
021EB0: 65 6C 61 74 65 64 0D 0A 20 20 20 20 20 20 20 74 elated.. t
021EC0: 6F 20 74 68 6F 73 65 20 6F 66 20 61 6E 20 61 6D o those of an am
021ED0: 70 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 65 plitude envelope
021EE0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6E 20 61 ..... An a
021EF0: 62 73 6F 6C 75 74 65 20 73 65 63 74 69 6F 6E 20 bsolute section
021F00: 73 70 65 63 69 66 69 65 73 20 61 20 74 6F 6E 65 specifies a tone
021F10: 20 70 65 72 69 6F 64 20 74 6F 20 73 65 74 20 61 period to set a
021F20: 6E 64 20 61 20 74 69 6D 65 20 74 6F 20 20 77 61 nd a time to wa
021F30: 69 74 0D 0A 20 20 20 20 20 20 20 62 65 66 6F 72 it.. befor
021F40: 65 20 6F 62 65 79 69 6E 67 20 74 68 65 20 6E 65 e obeying the ne
021F50: 78 74 20 73 65 63 74 69 6F 6E 2E 0D 0A 0D 0A 20 xt section.....
021F60: 20 20 20 20 20 20 41 20 72 65 6C 61 74 69 76 65 A relative
021F70: 20 73 65 63 74 69 6F 6E 20 73 70 65 63 69 66 69 section specifi
021F80: 65 73 20 61 6E 20 73 74 65 70 20 73 69 7A 65 2C es an step size,
021F90: 20 61 20 6E 75 6D 62 65 72 20 20 6F 66 20 20 73 a number of s
021FA0: 74 65 70 73 20 20 61 6E 64 20 20 61 0D 0A 20 20 teps and a..
021FB0: 20 20 20 20 20 74 69 6D 65 20 74 6F 20 77 61 69 time to wai
021FC0: 74 2E 20 46 6F 72 20 65 61 63 68 20 73 74 65 70 t. For each step
021FD0: 20 72 65 71 75 65 73 74 65 64 2C 20 20 74 68 65 requested, the
021FE0: 20 20 63 75 72 72 65 6E 74 20 20 74 6F 6E 65 20 current tone
021FF0: 20 70 65 72 69 6F 64 20 20 69 73 0D 0A 20 20 20 period is..
022000: 20 20 20 20 63 68 61 6E 67 65 64 20 62 79 20 74 changed by t
022010: 68 65 20 67 69 76 65 6E 20 73 74 65 70 20 73 69 he given step si
022020: 7A 65 20 61 6E 64 20 74 68 65 6E 20 74 68 65 20 ze and then the
022030: 53 6F 75 6E 64 20 20 4D 61 6E 61 67 65 72 20 20 Sound Manager
022040: 77 61 69 74 73 20 20 66 6F 72 0D 0A 20 20 20 20 waits for..
022050: 20 20 20 74 68 65 20 67 69 76 65 6E 20 74 69 6D the given tim
022060: 65 20 61 66 74 65 72 20 65 61 63 68 20 73 74 65 e after each ste
022070: 70 20 62 65 66 6F 72 65 20 6F 62 65 79 69 6E 67 p before obeying
022080: 20 74 68 65 20 6E 65 78 74 20 73 74 65 70 2E 0D the next step..
022090: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
0220A0: 68 65 20 74 6F 6E 65 20 65 6E 76 65 6C 6F 70 65 he tone envelope
0220B0: 20 69 73 20 63 6F 6D 70 6C 65 74 65 64 20 62 65 is completed be
0220C0: 66 6F 72 65 20 74 68 65 20 20 73 6F 75 6E 64 20 fore the sound
0220D0: 20 64 75 72 61 74 69 6F 6E 20 20 65 78 70 69 72 duration expir
0220E0: 65 73 0D 0A 20 20 20 20 20 20 20 28 73 65 65 20 es.. (see
0220F0: 20 73 65 63 74 69 6F 6E 20 20 37 2E 34 66 29 20 section 7.4f)
022100: 20 74 68 65 6E 20 20 74 68 65 20 20 66 69 6E 61 then the fina
022110: 6C 20 20 20 70 69 74 63 68 20 20 20 69 73 20 20 l pitch is
022120: 20 68 65 6C 64 20 20 20 63 6F 6E 73 74 61 6E 74 held constant
022130: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 74 65 72 6E ... Altern
022140: 61 74 69 76 65 6C 79 2C 20 20 74 6F 6E 65 20 20 atively, tone
022150: 65 6E 76 65 6C 6F 70 65 73 20 20 63 61 6E 20 20 envelopes can
022160: 62 65 20 20 73 65 74 20 20 74 6F 20 20 72 65 70 be set to rep
022170: 65 61 74 20 20 20 74 68 65 6D 73 65 6C 76 65 73 eat themselves
022180: 0D 0A 20 20 20 20 20 20 20 61 75 74 6F 6D 61 74 .. automat
022190: 69 63 61 6C 6C 79 2E 20 54 68 69 73 20 61 6C 6C ically. This all
0221A0: 6F 77 73 20 74 72 65 6D 75 6C 6F 20 65 66 66 65 ows tremulo effe
0221B0: 63 74 73 20 74 6F 20 62 65 20 63 72 65 61 74 65 cts to be create
0221C0: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 6F 6E d..... Ton
0221D0: 65 20 65 6E 76 65 6C 6F 70 65 73 20 61 72 65 20 e envelopes are
0221E0: 73 65 74 20 62 79 20 63 61 6C 6C 69 6E 67 20 53 set by calling S
0221F0: 4F 55 4E 44 20 54 4F 4E 45 20 45 4E 56 45 4C 4F OUND TONE ENVELO
022200: 50 45 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 37 PE...... 7
022210: 2E 34 20 53 6F 75 6E 64 20 43 6F 6D 6D 61 6E 64 .4 Sound Command
022220: 73 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 68 s...... Wh
022230: 65 6E 20 61 20 73 6F 75 6E 64 20 69 73 20 67 69 en a sound is gi
022240: 76 65 6E 20 74 6F 20 74 68 65 20 53 6F 75 6E 64 ven to the Sound
022250: 20 4D 61 6E 61 67 65 72 20 74 6F 20 62 65 20 20 Manager to be
022260: 70 6C 61 79 65 64 2C 20 20 62 79 20 20 63 61 6C played, by cal
022270: 6C 69 6E 67 0D 0A 20 20 20 20 20 20 20 53 4F 55 ling.. SOU
022280: 4E 44 20 51 55 45 55 45 2C 20 61 20 6C 6F 74 20 ND QUEUE, a lot
022290: 6F 66 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 20 of information
0222A0: 6E 65 65 64 73 20 20 74 6F 20 20 62 65 20 20 73 needs to be s
0222B0: 70 65 63 69 66 69 65 64 2E 20 20 54 68 69 73 20 pecified. This
0222C0: 20 69 73 0D 0A 20 20 20 20 20 20 20 64 65 73 63 is.. desc
0222D0: 72 69 62 65 64 20 62 72 69 65 66 6C 79 20 62 65 ribed briefly be
0222E0: 6C 6F 77 2E 20 54 68 65 20 64 65 74 61 69 6C 65 low. The detaile
0222F0: 64 20 6C 61 79 6F 75 74 20 6F 66 20 61 20 73 6F d layout of a so
022300: 75 6E 64 20 20 63 6F 6D 6D 61 6E 64 20 20 64 61 und command da
022310: 74 61 0D 0A 20 20 20 20 20 20 20 62 6C 6F 63 6B ta.. block
022320: 20 69 73 20 64 65 73 63 72 69 62 65 64 20 69 6E is described in
022330: 20 53 4F 55 4E 44 20 51 55 45 55 45 2E 0D 0A 0D SOUND QUEUE....
022340: 0A 0D 0A 20 20 20 20 20 20 20 61 2E 20 49 6E 69 ... a. Ini
022350: 74 69 61 6C 20 74 6F 6E 65 20 70 65 72 69 6F 64 tial tone period
022360: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
022370: 65 20 73 6F 75 6E 64 20 69 73 20 69 73 73 75 65 e sound is issue
022380: 64 20 77 69 74 68 20 61 6E 20 69 6E 69 74 69 61 d with an initia
022390: 6C 20 74 6F 6E 65 20 20 70 65 72 69 6F 64 2E 20 l tone period.
0223A0: 20 54 68 65 20 20 70 69 74 63 68 20 20 6F 66 20 The pitch of
0223B0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 73 6F 75 the.. sou
0223C0: 6E 64 20 63 61 6E 20 62 65 20 76 61 72 69 65 64 nd can be varied
0223D0: 20 66 72 6F 6D 20 74 68 69 73 20 69 6E 69 74 69 from this initi
0223E0: 61 6C 20 76 61 6C 75 65 20 75 73 69 6E 67 20 61 al value using a
0223F0: 20 74 6F 6E 65 20 65 6E 76 65 6C 6F 70 65 2E 20 tone envelope.
022400: 20 49 66 0D 0A 20 20 20 20 20 20 20 6E 6F 20 65 If.. no e
022410: 6E 76 65 6C 6F 70 65 20 69 73 20 73 70 65 63 69 nvelope is speci
022420: 66 69 65 64 20 74 68 65 20 70 69 74 63 68 20 72 fied the pitch r
022430: 65 6D 61 69 6E 73 20 63 6F 6E 73 74 61 6E 74 2E emains constant.
022440: 20 41 6E 20 20 69 6E 69 74 69 61 6C 20 20 74 6F An initial to
022450: 6E 65 0D 0A 20 20 20 20 20 20 20 70 65 72 69 6F ne.. perio
022460: 64 20 6F 66 20 7A 65 72 6F 20 6D 65 61 6E 73 20 d of zero means
022470: 6E 6F 20 74 6F 6E 65 20 69 73 20 74 6F 20 62 65 no tone is to be
022480: 20 67 65 6E 65 72 61 74 65 64 2C 20 70 72 65 73 generated, pres
022490: 75 6D 61 62 6C 65 20 74 68 65 20 20 73 6F 75 6E umable the soun
0224A0: 64 0D 0A 20 20 20 20 20 20 20 69 73 20 74 6F 20 d.. is to
0224B0: 62 65 20 70 75 72 65 20 6E 6F 69 73 65 20 28 20 be pure noise (
0224C0: 73 65 65 28 65 29 62 65 6C 6F 77 2E 0D 0A 0D 0A see(e)below.....
0224D0: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
0224E0: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
0224F0: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
022500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022510: 20 20 20 20 20 20 20 70 61 67 65 20 37 2E 33 0D page 7.3.
022520: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
022530: 20 20 20 20 62 2E 20 49 6E 69 74 69 61 6C 20 76 b. Initial v
022540: 6F 6C 75 6D 65 0D 0A 0D 0A 20 20 20 20 20 20 20 olume....
022550: 54 68 65 20 73 6F 75 6E 64 20 69 73 20 69 73 73 The sound is iss
022560: 75 65 64 20 77 69 74 68 20 61 6E 20 69 6E 69 74 ued with an init
022570: 69 61 6C 20 76 6F 6C 75 6D 65 2E 20 54 68 65 20 ial volume. The
022580: 76 6F 6C 75 6D 65 20 20 6F 66 20 20 74 68 65 20 volume of the
022590: 20 73 6F 75 6E 64 0D 0A 20 20 20 20 20 20 20 63 sound.. c
0225A0: 61 6E 20 62 65 20 76 61 72 69 65 64 20 66 72 6F an be varied fro
0225B0: 6D 20 74 68 69 73 20 69 6E 69 74 69 61 6C 20 76 m this initial v
0225C0: 61 6C 75 65 20 75 73 69 6E 67 20 61 6E 20 61 6D alue using an am
0225D0: 70 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 65 plitude envelope
0225E0: 2E 20 20 49 66 0D 0A 20 20 20 20 20 20 20 6E 6F . If.. no
0225F0: 20 61 6D 70 6C 69 74 75 64 65 20 65 6E 76 65 6C amplitude envel
022600: 6F 70 65 20 69 73 20 73 70 65 63 69 66 69 65 64 ope is specified
022610: 20 74 68 65 6E 20 74 68 65 20 76 6F 6C 75 6D 65 then the volume
022620: 20 72 65 6D 61 69 6E 73 20 63 6F 6E 73 74 61 6E remains constan
022630: 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 63 2E 20 t..... c.
022640: 54 6F 6E 65 20 65 6E 76 65 6C 6F 70 65 2E 0D 0A Tone envelope...
022650: 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 73 70 .. This sp
022660: 65 63 69 66 69 65 73 20 77 68 69 63 68 20 74 6F ecifies which to
022670: 6E 65 20 65 6E 76 65 6C 6F 70 65 20 74 6F 20 75 ne envelope to u
022680: 73 65 2E 20 49 66 20 6E 6F 20 65 6E 76 65 6C 6F se. If no envelo
022690: 70 65 20 69 73 20 73 70 65 63 69 66 69 65 64 0D pe is specified.
0226A0: 0A 20 20 20 20 20 20 20 74 68 65 6E 20 74 68 65 . then the
0226B0: 20 70 69 74 63 68 20 6F 66 20 74 68 65 20 73 6F pitch of the so
0226C0: 75 6E 64 20 72 65 6D 61 69 6E 73 20 63 6F 6E 73 und remains cons
0226D0: 74 61 6E 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 tant.....
0226E0: 64 2E 20 41 6D 70 6C 69 74 75 64 65 20 65 6E 76 d. Amplitude env
0226F0: 65 6C 6F 70 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 elope.....
022700: 20 54 68 69 73 20 73 70 65 63 69 66 69 65 73 20 This specifies
022710: 77 68 69 63 68 20 61 6D 70 6C 69 74 75 64 65 20 which amplitude
022720: 74 6F 20 75 73 65 2E 20 49 66 20 20 6E 6F 20 20 to use. If no
022730: 65 6E 76 65 6C 6F 70 65 20 20 69 73 20 20 73 70 envelope is sp
022740: 65 63 69 66 69 65 64 0D 0A 20 20 20 20 20 20 20 ecified..
022750: 74 68 65 6E 20 64 65 66 61 75 6C 74 20 73 79 73 then default sys
022760: 74 65 6D 20 65 6E 76 65 6C 6F 70 65 20 69 73 20 tem envelope is
022770: 75 73 65 64 2E 20 54 68 69 73 20 6B 65 65 70 73 used. This keeps
022780: 20 20 74 68 65 20 20 76 6F 6C 75 6D 65 20 20 6F the volume o
022790: 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 73 f the.. s
0227A0: 6F 75 6E 64 20 63 6F 6E 73 74 61 6E 74 20 61 6E ound constant an
0227B0: 64 20 6C 61 73 74 73 20 66 6F 72 20 32 20 73 65 d lasts for 2 se
0227C0: 63 6F 6E 64 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 conds.....
0227D0: 20 65 2E 20 4E 6F 69 73 65 20 70 65 72 69 6F 64 e. Noise period
0227E0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
0227F0: 68 65 20 6E 6F 69 73 65 20 70 65 72 69 6F 64 20 he noise period
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: 69 73 20 7A 65 72 6F 20 74 68 65 6E 20 6E 6F 20 is zero then no
022910: 6E 6F 69 73 65 20 69 73 20 74 6F 20 62 65 20 61 noise is to be a
022920: 64 64 65 64 20 74 6F 20 74 68 65 20 73 6F 75 6E dded to the soun
022930: 64 2E 0D 0A 20 20 20 20 20 20 20 41 6E 79 20 6F d... Any o
022940: 74 68 65 72 20 76 61 6C 75 65 20 73 65 74 73 20 ther value sets
022950: 74 68 65 20 70 65 72 69 6F 64 20 66 6F 72 20 74 the period for t
022960: 68 65 20 70 73 65 75 64 6F 2D 72 61 6E 64 6F 6D he pseudo-random
022970: 20 6E 6F 69 73 65 20 20 67 65 6E 65 72 61 74 6F noise generato
022980: 72 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 61 64 r.. and ad
022990: 64 73 20 6E 6F 69 73 65 20 74 6F 20 74 68 65 20 ds noise to the
0229A0: 74 6F 6E 65 20 67 65 6E 65 72 61 74 65 64 2E 20 tone generated.
0229B0: 4E 6F 74 65 20 20 74 68 61 74 20 20 74 68 65 72 Note that ther
0229C0: 65 20 20 69 73 20 20 6F 6E 6C 79 20 20 6F 6E 65 e is only one
0229D0: 0D 0A 20 20 20 20 20 20 20 6E 6F 69 73 65 20 67 .. noise g
0229E0: 65 6E 65 72 61 74 6F 72 20 61 6E 64 20 73 6F 20 enerator and so
0229F0: 69 66 20 74 77 6F 20 73 6F 75 6E 64 73 20 61 72 if two sounds ar
022A00: 65 20 74 6F 20 75 73 65 20 69 74 20 61 74 20 20 e to use it at
022A10: 74 68 65 20 20 73 61 6D 65 20 20 74 69 6D 65 0D the same time.
022A20: 0A 20 20 20 20 20 20 20 74 68 65 79 20 77 69 6C . they wil
022A30: 6C 20 6E 65 65 64 20 74 6F 20 61 67 72 65 65 20 l need to agree
022A40: 6F 6E 20 74 68 65 20 70 65 72 69 6F 64 2E 0D 0A on the period...
022A50: 0D 0A 20 20 20 20 20 20 20 66 2E 20 44 75 72 61 .. f. Dura
022A60: 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 tion.....
022A70: 54 68 65 20 6C 65 6E 67 74 68 20 6F 66 20 61 20 The length of a
022A80: 73 6F 75 6E 64 20 63 61 6E 20 62 65 20 73 70 65 sound can be spe
022A90: 63 69 66 69 65 64 20 20 69 6E 20 20 74 77 6F 20 cified in two
022AA0: 20 77 61 79 73 2C 20 20 65 69 74 68 65 72 20 20 ways, either
022AB0: 61 73 20 20 61 6E 0D 0A 20 20 20 20 20 20 20 61 as an.. a
022AC0: 62 73 6F 6C 75 74 65 20 74 69 6D 65 20 28 20 64 bsolute time ( d
022AD0: 75 72 61 74 69 6F 6E 20 29 20 20 6F 72 20 20 61 uration ) or a
022AE0: 73 20 20 61 20 20 6E 75 6D 62 65 72 20 20 6F 66 s a number of
022AF0: 20 20 6F 70 65 72 61 74 69 6F 6E 73 20 20 6F 66 operations of
022B00: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 61 6D the.. am
022B10: 70 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 65 plitude envelope
022B20: 2E 20 49 6E 20 74 68 65 20 6C 61 74 74 65 72 20 . In the latter
022B30: 63 61 73 65 20 74 68 65 20 65 6E 76 65 6C 6F 70 case the envelop
022B40: 65 20 69 73 20 72 75 6E 20 6F 6E 65 20 6F 72 20 e is run one or
022B50: 6D 6F 72 65 0D 0A 20 20 20 20 20 20 20 74 69 6D more.. tim
022B60: 65 73 20 61 6E 64 20 74 68 65 20 73 6F 75 6E 64 es and the sound
022B70: 20 66 69 6E 69 73 68 65 73 20 77 68 65 6E 20 74 finishes when t
022B80: 68 65 20 65 6E 76 65 6C 6F 70 65 20 68 61 73 20 he envelope has
022B90: 62 65 65 6E 20 20 65 78 65 63 75 74 65 64 20 20 been executed
022BA0: 74 68 65 0D 0A 20 20 20 20 20 20 20 73 70 65 63 the.. spec
022BB0: 69 66 69 65 64 20 6E 75 6D 62 65 72 20 6F 66 20 ified number of
022BC0: 74 69 6D 65 73 2E 20 49 6E 20 74 68 65 20 66 6F times. In the fo
022BD0: 72 6D 65 72 20 20 63 61 73 65 2C 20 20 69 66 20 rmer case, if
022BE0: 20 74 68 65 20 20 64 75 72 61 74 69 6F 6E 20 20 the duration
022BF0: 69 73 0D 0A 20 20 20 20 20 20 20 6C 6F 6E 67 65 is.. longe
022C00: 72 20 74 68 61 6E 20 74 68 65 20 65 6E 76 65 6C r than the envel
022C10: 6F 70 65 20 74 68 65 6E 20 74 68 65 20 73 6F 75 ope then the sou
022C20: 6E 64 20 69 73 20 63 75 74 20 73 68 6F 72 74 2E nd is cut short.
022C30: 20 49 66 20 74 68 65 20 20 64 75 72 61 74 69 6F If the duratio
022C40: 6E 0D 0A 20 20 20 20 20 20 20 69 73 20 6C 6F 6E n.. is lon
022C50: 67 65 72 20 74 68 61 6E 20 74 68 65 20 65 6E 76 ger than the env
022C60: 65 6C 6F 70 65 20 74 68 65 6E 20 74 68 65 20 66 elope then the f
022C70: 69 6E 61 6C 20 61 6D 70 6C 69 74 75 64 65 20 69 inal amplitude i
022C80: 73 20 68 65 6C 64 20 75 6E 74 69 6C 20 74 68 65 s held until the
022C90: 0D 0A 20 20 20 20 20 20 20 64 75 72 61 74 69 6F .. duratio
022CA0: 6E 20 65 78 70 69 72 65 73 2E 0D 0A 0D 0A 0D 0A n expires.......
022CB0: 20 20 20 20 20 20 20 67 2E 20 43 68 61 6E 6E 65 g. Channe
022CC0: 6C 73 20 61 6E 64 20 53 79 6E 63 68 72 6F 6E 69 ls and Synchroni
022CD0: 73 61 74 69 6F 6E 20 42 69 74 73 2E 0D 0A 0D 0A sation Bits.....
022CE0: 20 20 20 20 20 20 20 54 68 65 20 73 6F 75 6E 64 The sound
022CF0: 20 63 61 6E 20 62 65 20 69 73 73 75 65 64 20 74 can be issued t
022D00: 6F 20 6F 6E 65 20 6F 72 20 6D 6F 72 65 20 63 68 o one or more ch
022D10: 61 6E 6E 65 6C 73 2E 20 49 66 20 61 20 73 6F 75 annels. If a sou
022D20: 6E 64 20 69 73 20 20 69 73 73 75 65 64 0D 0A 20 nd is issued..
022D30: 20 20 20 20 20 20 74 6F 20 6D 6F 72 65 20 74 68 to more th
022D40: 61 6E 20 6F 6E 65 20 63 68 61 6E 6E 65 6C 20 74 an one channel t
022D50: 68 65 6E 20 74 68 65 73 65 20 63 68 61 6E 6E 65 hen these channe
022D60: 6C 73 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 ls automatically
022D70: 20 20 72 65 6E 64 65 7A 76 6F 75 73 0D 0A 20 20 rendezvous..
022D80: 20 20 20 20 20 77 69 74 68 20 65 61 63 68 20 6F with each o
022D90: 74 68 65 72 2E 20 52 65 6E 64 65 7A 76 6F 75 73 ther. Rendezvous
022DA0: 20 72 65 71 75 69 72 65 6D 65 6E 74 73 20 20 63 requirements c
022DB0: 61 6E 20 20 62 65 20 20 73 65 74 20 20 65 78 70 an be set exp
022DC0: 6C 69 63 69 74 6C 79 20 20 61 73 0D 0A 20 20 20 licitly as..
022DD0: 20 20 20 20 77 65 6C 6C 2E 20 41 6C 73 6F 20 74 well. Also t
022DE0: 68 65 20 73 6F 75 6E 64 20 63 61 6E 20 62 65 20 he sound can be
022DF0: 68 65 6C 64 20 6F 72 20 74 68 65 20 73 6F 75 6E held or the soun
022E00: 64 20 20 71 75 65 75 65 20 20 63 61 6E 20 20 62 d queue can b
022E10: 65 20 20 66 6C 75 73 68 65 64 0D 0A 20 20 20 20 e flushed..
022E20: 20 20 20 28 73 65 65 20 73 65 63 74 69 6F 6E 20 (see section
022E30: 37 2E 36 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 7.6).......
022E40: 20 20 37 2E 35 20 20 53 6F 75 6E 64 20 51 75 65 7.5 Sound Que
022E50: 75 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 ues..... E
022E60: 61 63 68 20 63 68 61 6E 6E 65 6C 20 68 61 73 20 ach channel has
022E70: 61 20 71 75 65 75 65 20 61 73 73 6F 63 69 61 74 a queue associat
022E80: 65 64 20 77 69 74 68 20 69 74 2E 20 45 61 63 68 ed with it. Each
022E90: 20 71 75 65 75 65 20 68 61 73 20 20 73 70 61 63 queue has spac
022EA0: 65 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 73 74 e to.. st
022EB0: 6F 72 65 20 61 74 20 6C 65 61 73 74 20 74 68 72 ore at least thr
022EC0: 65 65 20 73 6F 75 6E 64 73 2E 20 54 68 65 20 73 ee sounds. The s
022ED0: 6F 75 6E 64 20 61 74 20 74 68 65 20 68 65 61 64 ound at the head
022EE0: 20 6F 66 20 65 61 63 68 20 20 71 75 65 75 65 20 of each queue
022EF0: 20 6D 61 79 0D 0A 20 20 20 20 20 20 20 62 65 20 may.. be
022F00: 72 75 6E 6E 69 6E 67 20 61 6E 64 20 6D 61 6B 69 running and maki
022F10: 6E 67 20 6D 75 73 69 63 20 6F 6E 20 69 74 73 20 ng music on its
022F20: 63 68 61 6E 6E 65 6C 20 6F 72 20 69 74 20 6D 61 channel or it ma
022F30: 79 20 20 62 65 20 20 77 61 69 74 69 6E 67 20 20 y be waiting
022F40: 66 6F 72 0D 0A 20 20 20 20 20 20 20 76 61 72 69 for.. vari
022F50: 6F 75 73 20 73 79 6E 63 68 72 6F 6E 69 73 61 74 ous synchronisat
022F60: 69 6F 6E 20 72 65 71 75 69 72 65 6D 65 6E 74 73 ion requirements
022F70: 20 28 20 73 65 65 20 37 2E 36 20 62 65 6C 6F 77 ( see 7.6 below
022F80: 20 29 2E 20 57 68 65 6E 20 20 61 20 20 73 6F 75 ). When a sou
022F90: 6E 64 0D 0A 20 20 20 20 20 20 20 63 6F 6D 6D 61 nd.. comma
022FA0: 6E 64 20 69 73 20 69 73 73 75 65 64 20 74 68 65 nd is issued the
022FB0: 20 73 6F 75 6E 64 20 69 73 20 70 6C 61 63 65 64 sound is placed
022FC0: 20 69 6E 74 6F 20 74 68 65 20 71 75 65 75 65 73 into the queues
022FD0: 20 66 6F 72 20 74 68 65 20 63 68 61 6E 6E 65 6C for the channel
022FE0: 73 0D 0A 20 20 20 20 20 20 20 73 70 65 63 69 66 s.. specif
022FF0: 69 65 64 20 62 79 20 74 68 65 20 63 6F 6D 6D 61 ied by the comma
023000: 6E 64 2E 20 57 68 65 6E 20 74 68 65 20 20 73 6F nd. When the so
023010: 75 6E 64 20 20 72 65 61 63 68 65 73 20 20 74 68 und reaches th
023020: 65 20 20 68 65 61 64 20 20 6F 66 20 20 74 68 65 e head of the
023030: 0D 0A 20 20 20 20 20 20 20 71 75 65 75 65 2C 20 .. queue,
023040: 61 6E 64 20 70 72 6F 76 69 64 69 6E 67 20 69 74 and providing it
023050: 73 20 73 79 6E 63 68 72 6F 6E 69 73 61 74 69 6F s synchronisatio
023060: 6E 20 72 65 71 75 69 72 65 6D 65 6E 74 73 20 61 n requirements a
023070: 72 65 20 6D 65 74 2C 20 20 69 74 20 20 69 73 0D re met, it is.
023080: 0A 20 20 20 20 20 20 20 65 78 65 63 75 74 65 64 . executed
023090: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0230A0: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
0230B0: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
0230C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0230D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
0230E0: 67 65 20 37 2E 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ge 7.4..........
0230F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 61 20 .... If a
023100: 73 6F 75 6E 64 20 74 68 61 74 20 68 61 73 20 74 sound that has t
023110: 68 65 20 66 6C 75 73 68 20 62 69 74 20 69 73 20 he flush bit is
023120: 70 75 74 20 69 6E 74 6F 20 61 20 71 75 65 75 65 put into a queue
023130: 20 74 68 65 6E 20 61 6C 6C 20 20 73 6F 75 6E 64 then all sound
023140: 73 0D 0A 20 20 20 20 20 20 20 71 75 65 75 65 64 s.. queued
023150: 20 66 6F 72 20 74 68 61 74 20 63 68 61 6E 6E 65 for that channe
023160: 6C 20 61 72 65 20 20 64 69 73 63 61 72 64 65 64 l are discarded
023170: 20 20 61 6E 64 20 20 61 6E 79 20 20 65 78 65 63 and any exec
023180: 75 74 69 6E 67 20 20 73 6F 75 6E 64 20 20 69 73 uting sound is
023190: 0D 0A 20 20 20 20 20 20 20 73 74 6F 70 70 65 64 .. stopped
0231A0: 20 69 6D 6D 65 64 69 61 74 65 6C 79 2E 20 54 68 immediately. Th
0231B0: 75 73 20 61 20 73 6F 75 6E 64 20 77 69 74 68 20 us a sound with
0231C0: 74 68 65 20 66 6C 75 73 68 20 62 69 74 20 73 65 the flush bit se
0231D0: 74 20 77 69 6C 6C 20 6D 6F 76 65 20 20 74 6F 0D t will move to.
0231E0: 0A 20 20 20 20 20 20 20 74 68 65 20 68 65 61 64 . the head
0231F0: 20 6F 66 20 74 68 65 20 71 75 65 75 65 20 69 6D of the queue im
023200: 6D 65 64 69 61 74 65 6C 79 20 61 6E 64 20 6D 61 mediately and ma
023210: 79 20 63 6F 6D 6D 65 6E 63 65 20 65 78 65 63 75 y commence execu
023220: 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tion.......
023230: 20 20 41 20 72 6F 75 74 69 6E 65 20 28 53 4F 55 A routine (SOU
023240: 4E 44 20 43 48 45 43 4B 20 29 20 69 73 20 70 72 ND CHECK ) is pr
023250: 6F 76 69 64 65 64 20 74 6F 20 74 65 73 74 20 74 ovided to test t
023260: 68 65 20 73 74 61 74 75 73 20 6F 66 20 20 74 68 he status of th
023270: 65 20 20 73 6F 75 6E 64 0D 0A 20 20 20 20 20 20 e sound..
023280: 20 61 74 20 74 68 65 20 68 65 61 64 20 6F 66 20 at the head of
023290: 61 20 71 75 65 75 65 20 61 6E 64 20 74 6F 20 64 a queue and to d
0232A0: 65 74 65 72 6D 69 6E 65 20 68 6F 77 20 6D 75 63 etermine how muc
0232B0: 68 20 66 72 65 65 20 73 70 61 63 65 20 20 69 73 h free space is
0232C0: 20 20 69 6E 20 20 61 0D 0A 20 20 20 20 20 20 20 in a..
0232D0: 71 75 65 75 65 2E 20 49 74 20 69 73 20 61 6C 73 queue. It is als
0232E0: 6F 20 70 6F 73 73 69 62 6C 65 20 74 6F 20 73 65 o possible to se
0232F0: 74 20 75 70 20 61 20 73 6F 75 6E 64 20 65 76 65 t up a sound eve
023300: 6E 74 20 66 6F 72 20 65 61 63 68 20 71 75 65 75 nt for each queu
023310: 65 20 28 20 62 79 0D 0A 20 20 20 20 20 20 20 63 e ( by.. c
023320: 61 6C 6C 69 6E 67 20 53 4F 55 4E 44 20 41 52 4D alling SOUND ARM
023330: 20 45 56 45 4E 54 20 29 2E 20 54 68 69 73 20 73 EVENT ). This s
023340: 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 ynchronous event
023350: 20 69 73 20 27 20 6B 69 63 6B 65 64 20 20 27 20 is ' kicked '
023360: 20 77 68 65 6E 0D 0A 20 20 20 20 20 20 20 74 68 when.. th
023370: 65 20 71 75 65 75 65 20 68 61 73 20 61 20 66 72 e queue has a fr
023380: 65 65 20 73 70 61 63 65 20 69 6E 20 69 74 2E 20 ee space in it.
023390: 54 68 65 20 73 6F 75 6E 64 20 65 76 65 6E 74 20 The sound event
0233A0: 6D 65 63 68 61 6E 69 73 6D 20 61 6C 6C 6F 77 73 mechanism allows
0233B0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 67 65 6E the.. gen
0233C0: 65 72 61 74 69 6F 6E 20 6F 66 20 73 6F 75 6E 64 eration of sound
0233D0: 20 74 6F 20 62 65 20 63 61 72 72 69 65 64 20 6F to be carried o
0233E0: 6E 20 61 73 20 61 20 62 61 63 6B 67 72 6F 75 6E n as a backgroun
0233F0: 64 20 74 61 73 6B 20 77 68 69 6C 73 74 20 20 73 d task whilst s
023400: 6F 6D 65 0D 0A 20 20 20 20 20 20 20 6F 74 68 65 ome.. othe
023410: 72 20 61 63 74 69 6F 6E 20 69 73 20 62 65 69 6E r action is bein
023420: 67 20 63 61 72 72 69 65 64 20 6F 75 74 2E 0D 0A g carried out...
023430: 0D 0A 0D 0A 20 20 20 20 20 20 20 37 2E 36 20 53 .... 7.6 S
023440: 79 6E 63 68 72 6F 6E 69 73 61 74 69 6F 6E 2E 0D ynchronisation..
023450: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 72 ..... Ther
023460: 65 20 61 72 65 20 74 77 6F 20 6D 65 63 68 61 6E e are two mechan
023470: 69 73 6D 73 20 74 6F 20 61 6C 6C 6F 77 20 73 6F isms to allow so
023480: 75 6E 64 73 20 6F 6E 20 64 69 66 66 65 72 65 6E unds on differen
023490: 74 20 63 68 61 6E 6E 65 6C 73 20 20 74 6F 20 20 t channels to
0234A0: 62 65 0D 0A 20 20 20 20 20 20 20 73 79 6E 63 68 be.. synch
0234B0: 72 6F 6E 69 73 65 64 2E 20 54 68 65 73 65 20 61 ronised. These a
0234C0: 72 65 20 68 6F 6C 64 69 6E 67 20 73 6F 75 6E 64 re holding sound
0234D0: 73 20 61 6E 64 20 72 65 6E 64 65 7A 76 6F 75 73 s and rendezvous
0234E0: 2E 20 54 68 65 20 70 75 72 70 6F 73 65 20 20 6F . The purpose o
0234F0: 66 0D 0A 20 20 20 20 20 20 20 73 79 6E 63 68 72 f.. synchr
023500: 6F 6E 69 73 61 74 69 6F 6E 20 69 73 20 74 6F 20 onisation is to
023510: 65 6E 73 75 72 65 20 74 68 61 74 20 20 73 6F 75 ensure that sou
023520: 6E 64 73 20 20 73 74 61 72 74 20 20 73 69 6D 75 nds start simu
023530: 6C 74 61 6E 65 6F 75 73 6C 79 2E 20 20 46 6F 72 ltaneously. For
023540: 0D 0A 20 20 20 20 20 20 20 65 78 61 6D 70 6C 65 .. example
023550: 2C 20 61 20 73 69 6D 75 6C 61 74 69 6F 6E 20 6F , a simulation o
023560: 66 20 20 61 6E 20 20 69 6E 73 74 72 75 6D 65 6E f an instrumen
023570: 74 20 20 6D 69 67 68 74 20 20 75 73 65 20 20 6F t might use o
023580: 6E 65 20 20 63 68 61 6E 6E 65 6C 20 20 74 6F 0D ne channel to.
023590: 0A 20 20 20 20 20 20 20 67 65 6E 65 72 61 74 65 . generate
0235A0: 20 74 68 65 20 66 75 6E 64 61 6D 65 6E 74 61 6C the fundamental
0235B0: 20 6E 6F 74 65 20 61 6E 64 20 20 61 6E 6F 74 68 note and anoth
0235C0: 65 72 20 20 63 68 61 6E 6E 65 6C 20 20 74 6F 20 er channel to
0235D0: 20 67 65 6E 65 72 61 74 65 20 20 74 68 65 0D 0A generate the..
0235E0: 20 20 20 20 20 20 20 68 61 72 6D 6F 6E 69 63 73 harmonics
0235F0: 20 6F 66 20 74 68 65 20 6E 6F 74 65 2E 20 20 54 of the note. T
023600: 68 65 20 20 73 79 6E 63 68 72 6F 6E 69 73 61 74 he synchronisat
023610: 69 6F 6E 20 20 6D 65 63 68 61 6E 69 73 6D 2C 20 ion mechanism,
023620: 20 70 61 72 74 69 63 75 6C 61 72 6C 79 0D 0A 20 particularly..
023630: 20 20 20 20 20 20 72 65 6E 64 65 7A 76 6F 75 73 rendezvous
023640: 2C 20 6D 79 20 62 65 20 75 73 65 64 20 74 6F 20 , my be used to
023650: 65 6E 73 75 72 65 20 74 68 61 74 20 74 68 65 20 ensure that the
023660: 66 75 6E 64 61 6D 65 6E 74 61 6C 20 61 6E 64 20 fundamental and
023670: 74 68 65 20 68 61 72 6D 6F 6E 69 63 0D 0A 20 20 the harmonic..
023680: 20 20 20 20 20 73 6F 75 6E 64 73 20 73 74 61 72 sounds star
023690: 74 20 65 78 61 63 74 6C 79 20 74 6F 67 65 74 68 t exactly togeth
0236A0: 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 er.......
0236B0: 41 20 73 6F 75 6E 64 20 63 61 6E 20 62 65 20 73 A sound can be s
0236C0: 70 65 63 69 66 69 65 64 20 74 6F 20 62 65 20 68 pecified to be h
0236D0: 65 6C 64 20 77 68 65 6E 20 69 74 20 69 73 20 69 eld when it is i
0236E0: 73 73 75 65 64 2E 20 54 68 69 73 20 6D 65 61 6E ssued. This mean
0236F0: 73 20 74 68 61 74 0D 0A 20 20 20 20 20 20 20 77 s that.. w
023700: 68 65 6E 20 69 74 20 72 65 61 63 68 65 73 20 74 hen it reaches t
023710: 68 65 20 68 65 61 64 20 20 6F 66 20 20 74 68 65 he head of the
023720: 20 20 73 6F 75 6E 64 20 20 71 75 65 75 65 20 20 sound queue
023730: 69 74 20 20 69 73 20 20 6E 6F 74 20 20 65 78 65 it is not exe
023740: 63 75 74 65 64 0D 0A 20 20 20 20 20 20 20 69 6D cuted.. im
023750: 6D 65 64 69 61 74 65 6C 79 2E 20 49 6E 73 74 65 mediately. Inste
023760: 61 64 20 69 74 20 77 61 69 74 73 20 75 6E 74 69 ad it waits unti
023770: 6C 20 69 74 20 69 73 20 20 65 78 70 6C 69 63 69 l it is explici
023780: 74 6C 79 20 20 72 65 6C 65 61 73 65 64 20 20 28 tly released (
023790: 20 20 62 79 0D 0A 20 20 20 20 20 20 20 63 61 6C by.. cal
0237A0: 6C 69 6E 67 20 53 4F 55 4E 44 20 52 45 4C 45 41 ling SOUND RELEA
0237B0: 53 45 20 29 20 62 65 66 6F 72 65 20 69 74 20 73 SE ) before it s
0237C0: 74 61 72 74 73 20 65 78 65 63 75 74 69 6F 6E 2E tarts execution.
0237D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 73 6F 75 .... A sou
0237E0: 6E 64 20 63 61 6E 20 68 61 76 65 20 72 65 6E 64 nd can have rend
0237F0: 65 7A 76 6F 75 73 20 72 65 71 75 69 72 65 6D 65 ezvous requireme
023800: 6E 74 73 20 73 65 74 20 6F 6E 20 69 74 20 77 68 nts set on it wh
023810: 65 6E 20 69 74 20 69 73 20 20 69 73 73 75 65 64 en it is issued
023820: 2E 0D 0A 20 20 20 20 20 20 20 49 66 20 61 20 73 ... If a s
023830: 6F 75 6E 64 20 69 73 20 69 73 73 75 65 64 20 74 ound is issued t
023840: 6F 20 6D 6F 72 65 20 74 68 61 6E 20 6F 6E 65 20 o more than one
023850: 63 68 61 6E 6E 65 6C 20 74 68 65 6E 20 74 68 65 channel then the
023860: 73 65 20 63 68 61 6E 6E 65 6C 73 20 20 61 6C 6C se channels all
023870: 0D 0A 20 20 20 20 20 20 20 73 65 74 20 72 65 6E .. set ren
023880: 64 65 7A 76 6F 75 73 20 77 69 74 68 20 65 61 63 dezvous with eac
023890: 68 20 6F 74 68 65 72 20 61 75 74 6F 6D 61 74 69 h other automati
0238A0: 63 61 6C 6C 79 2E 20 20 57 68 65 6E 20 20 61 20 cally. When a
0238B0: 20 73 6F 75 6E 64 20 20 77 69 74 68 20 20 61 0D sound with a.
0238C0: 0A 20 20 20 20 20 20 20 72 65 6E 64 65 7A 76 6F . rendezvo
0238D0: 75 73 20 73 65 74 20 72 65 61 63 68 65 73 20 74 us set reaches t
0238E0: 68 65 20 68 65 61 64 20 6F 66 20 74 68 65 20 73 he head of the s
0238F0: 6F 75 6E 64 20 71 75 65 75 65 20 69 74 20 69 73 ound queue it is
023900: 20 6E 6F 74 20 20 65 78 65 63 75 74 65 64 0D 0A not executed..
023910: 20 20 20 20 20 20 20 69 6D 6D 65 64 69 61 74 65 immediate
023920: 6C 79 2E 20 49 6E 73 74 65 61 64 20 69 74 20 77 ly. Instead it w
023930: 61 69 74 73 20 75 6E 74 69 6C 20 73 6F 75 6E 64 aits until sound
023940: 73 20 20 77 69 74 68 20 20 6D 61 74 63 68 69 6E s with matchin
023950: 67 20 20 72 65 6E 64 65 7A 76 6F 75 73 0D 0A 20 g rendezvous..
023960: 20 20 20 20 20 20 72 65 71 75 69 72 65 6D 65 6E requiremen
023970: 74 73 20 72 65 61 63 68 20 74 68 65 20 68 65 61 ts reach the hea
023980: 64 20 6F 66 20 20 74 68 65 69 72 20 20 73 6F 75 d of their sou
023990: 6E 64 20 20 71 75 65 75 65 73 2E 20 20 4F 6E 6C nd queues. Onl
0239A0: 79 20 20 77 68 65 6E 20 20 61 6C 6C 0D 0A 20 20 y when all..
0239B0: 20 20 20 20 20 72 65 6E 64 65 7A 76 6F 75 73 20 rendezvous
0239C0: 73 6F 75 6E 64 73 20 61 72 65 20 66 6F 75 6E 64 sounds are found
0239D0: 20 74 6F 20 62 65 20 70 72 65 73 65 6E 74 20 61 to be present a
0239E0: 6E 64 20 72 65 61 64 79 20 20 74 6F 20 20 72 75 nd ready to ru
0239F0: 6E 20 20 64 6F 20 20 74 68 65 79 0D 0A 20 20 20 n do they..
023A00: 20 20 20 20 73 74 61 72 74 2E 0D 0A 0D 0A 20 20 start.....
023A10: 20 20 20 20 20 46 6F 72 20 69 6E 73 74 61 6E 63 For instanc
023A20: 65 2C 20 73 6F 75 6E 64 20 6F 6E 20 63 68 61 6E e, sound on chan
023A30: 6E 65 6C 20 41 20 6D 61 72 6B 65 64 20 74 6F 20 nel A marked to
023A40: 72 65 6E 64 65 7A 76 6F 75 73 20 77 69 74 68 20 rendezvous with
023A50: 61 20 73 6F 75 6E 64 20 20 6F 6E 0D 0A 20 20 20 a sound on..
023A60: 20 20 20 20 63 68 61 6E 6E 65 6C 20 42 20 77 69 channel B wi
023A70: 6C 6C 20 6E 6F 74 20 73 74 61 72 74 20 2D 20 61 ll not start - a
023A80: 6E 64 20 76 69 63 65 20 76 65 72 73 61 21 20 49 nd vice versa! I
023A90: 66 20 20 61 20 20 73 6F 75 6E 64 20 20 69 73 20 f a sound is
023AA0: 20 72 65 61 64 79 20 20 74 6F 0D 0A 20 20 20 20 ready to..
023AB0: 20 20 20 73 74 61 72 74 20 6F 6E 20 63 68 61 6E start on chan
023AC0: 6E 65 6C 20 42 20 74 68 61 74 20 69 73 20 6E 6F nel B that is no
023AD0: 74 20 6D 61 72 6B 65 64 20 74 6F 20 20 72 65 6E t marked to ren
023AE0: 64 65 7A 76 6F 75 73 20 20 77 69 74 68 20 20 63 dezvous with c
023AF0: 68 61 6E 6E 65 6C 20 20 41 0D 0A 20 20 20 20 20 hannel A..
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: 20 20 74 68 65 6E 20 69 74 20 73 74 61 72 74 73 then it starts
023C10: 20 62 75 74 20 74 68 65 20 73 6F 75 6E 64 20 6F but the sound o
023C20: 6E 20 63 68 61 6E 6E 65 6C 20 41 20 63 6F 6E 74 n channel A cont
023C30: 69 6E 75 65 73 20 20 74 6F 20 77 61 69 74 20 20 inues to wait
023C40: 66 6F 72 20 20 69 74 73 0D 0A 20 20 20 20 20 20 for its..
023C50: 20 72 65 6E 64 65 7A 76 6F 75 73 2E 0D 0A 0D 0A rendezvous.....
023C60: 0D 0A 20 20 20 20 20 20 20 37 2E 37 20 20 48 6F .. 7.7 Ho
023C70: 6C 64 69 6E 67 20 53 6F 75 6E 64 73 2E 0D 0A 0D lding Sounds....
023C80: 0A 20 20 20 20 20 20 20 49 74 20 69 73 20 70 6F . It is po
023C90: 73 73 69 62 6C 65 20 74 6F 20 73 74 6F 70 20 61 ssible to stop a
023CA0: 20 73 6F 75 6E 64 20 77 68 69 6C 65 20 69 74 20 sound while it
023CB0: 69 73 20 65 78 65 63 75 74 69 6E 67 20 62 79 20 is executing by
023CC0: 63 61 6C 6C 69 6E 67 20 20 53 4F 55 4E 44 0D 0A calling SOUND..
023CD0: 20 20 20 20 20 20 20 48 4F 4C 44 2E 20 54 68 69 HOLD. Thi
023CE0: 73 20 77 69 6C 6C 20 73 74 6F 70 20 61 20 63 68 s will stop a ch
023CF0: 61 6E 6E 65 6C 20 6D 61 6B 69 6E 67 20 61 6E 79 annel making any
023D00: 20 20 73 6F 75 6E 64 20 20 61 6E 64 20 20 77 69 sound and wi
023D10: 6C 6C 20 20 73 61 76 65 20 20 74 68 65 0D 0A 20 ll save the..
023D20: 20 20 20 20 20 20 73 74 61 74 65 20 6F 66 20 74 state of t
023D30: 68 65 20 73 6F 75 6E 64 2E 20 54 68 65 20 73 6F he sound. The so
023D40: 75 6E 64 20 63 61 6E 20 62 65 20 72 65 73 74 61 und can be resta
023D50: 72 74 65 64 20 66 72 6F 6D 20 77 68 65 72 65 20 rted from where
023D60: 69 74 20 77 61 73 20 20 68 65 6C 64 0D 0A 20 20 it was held..
023D70: 20 20 20 20 20 62 79 20 63 61 6C 6C 69 6E 67 20 by calling
023D80: 53 4F 55 4E 44 20 43 4F 4E 54 49 4E 55 45 2E 20 SOUND CONTINUE.
023D90: 48 6F 77 65 76 65 72 2C 20 69 66 20 61 20 68 61 However, if a ha
023DA0: 72 64 77 61 72 65 20 65 6E 76 65 6C 6F 70 65 20 rdware envelope
023DB0: 77 61 73 20 72 75 6E 6E 69 6E 67 0D 0A 20 20 20 was running..
023DC0: 20 20 20 20 77 68 65 6E 20 74 68 65 20 73 6F 75 when the sou
023DD0: 6E 64 20 77 61 73 20 68 65 6C 64 20 74 68 65 6E nd was held then
023DE0: 20 69 74 20 69 73 20 69 6D 70 6F 73 73 69 62 6C it is impossibl
023DF0: 65 20 74 6F 20 70 72 65 64 69 63 74 20 74 68 65 e to predict the
023E00: 20 65 66 66 65 63 74 20 6F 66 0D 0A 20 20 20 20 effect of..
023E10: 20 20 20 72 65 73 74 61 72 74 69 6E 67 20 74 68 restarting th
023E20: 65 20 73 6F 75 6E 64 2E 20 54 68 65 20 68 61 72 e sound. The har
023E30: 64 77 61 72 65 20 65 6E 76 65 6C 6F 70 65 20 6D dware envelope m
023E40: 61 79 20 6F 72 20 20 6D 61 79 20 20 6E 6F 74 20 ay or may not
023E50: 20 63 6F 6E 74 69 6E 75 65 0D 0A 20 20 20 20 20 continue..
023E60: 20 20 66 72 6F 6D 20 77 68 65 72 65 20 69 74 20 from where it
023E70: 77 61 73 20 68 65 6C 64 2E 0D 0A 0D 0A 20 20 20 was held.....
023E80: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
023E90: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
023EA0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
023EB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023EC0: 20 20 70 61 67 65 20 37 2E 35 0D 0A 0D 0A 0D 0A page 7.5......
023ED0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 ........ C
023EE0: 61 6C 6C 69 6E 67 20 53 4F 55 4E 44 20 48 4F 4C alling SOUND HOL
023EF0: 44 20 69 73 20 64 69 66 66 65 72 65 6E 74 20 66 D is different f
023F00: 72 6F 6D 20 73 65 74 74 69 6E 67 20 74 68 65 20 rom setting the
023F10: 68 6F 6C 64 20 62 69 74 20 77 68 65 6E 20 69 73 hold bit when is
023F20: 73 75 69 6E 67 0D 0A 20 20 20 20 20 20 20 61 20 suing.. a
023F30: 73 6F 75 6E 64 20 61 73 20 64 65 73 63 72 69 62 sound as describ
023F40: 65 64 20 69 6E 20 73 65 63 74 69 6F 6E 20 37 2E ed in section 7.
023F50: 36 20 61 62 6F 76 65 2E 20 53 4F 55 4E 44 20 48 6 above. SOUND H
023F60: 4F 4C 44 20 73 74 6F 70 73 20 61 6C 6C 20 73 6F OLD stops all so
023F70: 75 6E 64 73 0D 0A 20 20 20 20 20 20 20 62 65 69 unds.. bei
023F80: 6E 67 20 67 65 6E 65 72 61 74 65 64 20 61 74 20 ng generated at
023F90: 61 6E 79 20 74 69 6D 65 20 77 68 69 6C 73 74 20 any time whilst
023FA0: 20 74 68 65 20 20 68 6F 6C 64 20 20 62 69 74 20 the hold bit
023FB0: 20 69 73 20 20 61 20 20 6D 65 74 68 6F 64 20 20 is a method
023FC0: 66 6F 72 0D 0A 20 20 20 20 20 20 20 73 79 6E 63 for.. sync
023FD0: 68 72 6F 6E 69 73 69 6E 67 20 73 6F 75 6E 64 73 hronising sounds
023FE0: 20 61 6E 64 20 70 72 65 76 65 6E 74 73 20 61 20 and prevents a
023FF0: 70 61 72 74 69 63 75 6C 61 72 20 73 6F 75 6E 64 particular sound
024000: 20 73 74 61 72 74 69 6E 67 20 77 68 65 6E 20 20 starting when
024010: 69 74 0D 0A 20 20 20 20 20 20 20 72 65 61 63 68 it.. reach
024020: 65 73 20 74 68 65 20 68 65 61 64 20 6F 66 20 74 es the head of t
024030: 68 65 20 71 75 65 75 65 2E 0D 0A 0D 0A 0D 0A 0D he queue........
024040: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
024050: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
024060: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
024070: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
024080: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
024090: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
0240A0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
0240B0: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
0240C0: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
0240D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0240E0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
0240F0: 20 37 2E 36 0D 0A 1A 20 20 65 6E 76 65 6C 6F 70 7.6... envelop
024100: 72 6F 6D 20 73 65 74 74 69 6E 67 20 74 68 65 20 rom setting the
024110: 68 6F 6C 64 20 62 69 74 20 77 68 65 6E 20 69 73 hold bit when is
024120: 73 75 69 6E 67 0D 0A 20 20 20 20 20 20 20 61 20 suing.. a
024130: 73 6F 75 6E 64 20 61 73 20 64 65 73 63 72 69 62 sound as describ
024140: 65 64 20 69 6E 20 73 65 63 74 69 6F 6E 20 37 2E ed in section 7.
024150: 36 20 61 62 6F 76 65 2E 20 53 4F 55 4E 44 20 48 6 above. SOUND H
024160: 4F 4C 44 20 73 74 6F 70 73 20 61 6C 6C 20 73 6F OLD stops all so
024170: 75 6E 64 73 0D 0A 20 20 20 20 20 20 20 62 65 69 unds.. bei
024180: 6E 67 20 67 65 6E 65 72 61 74 65 64 20 61 74 20 ng generated at
024190: 61 6E 79 20 74 69 6D 65 20 77 68 69 6C 73 74 20 any time whilst
0241A0: 20 74 68 65 20 20 68 6F 6C 64 20 20 62 69 74 20 the hold bit
0241B0: 20 69 73 20 20 61 20 20 6D 65 74 68 6F 64 20 20 is a method
0241C0: 66 6F 72 0D 0A 20 20 20 20 20 20 20 73 79 6E 63 for.. sync
0241D0: 68 72 6F 6E 69 73 69 6E 67 20 73 6F 75 6E 64 73 hronising sounds
0241E0: 20 61 6E 64 20 70 72 65 76 65 6E 74 73 20 61 20 and prevents a
0241F0: 70 61 72 74 69 63 75 6C 61 72 20 73 6F 75 6E 64 particular sound
024200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0242F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0243F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024400: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 38 ........ 8
024410: 20 54 68 65 20 43 61 73 73 65 74 74 65 20 4D 61 The Cassette Ma
024420: 6E 61 67 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 nager.....
024430: 20 54 68 65 20 43 61 73 73 65 74 74 65 20 4D 61 The Cassette Ma
024440: 6E 61 67 65 72 20 64 65 61 6C 73 20 77 69 74 68 nager deals with
024450: 20 72 65 61 64 69 6E 67 20 66 69 6C 65 73 20 66 reading files f
024460: 72 6F 6D 20 61 6E 64 20 20 77 72 69 74 69 6E 67 rom and writing
024470: 20 20 66 69 6C 65 73 0D 0A 20 20 20 20 20 20 20 files..
024480: 74 6F 20 74 61 70 65 2E 20 54 68 65 73 65 20 6F to tape. These o
024490: 70 65 72 61 74 69 6F 6E 73 20 63 61 6E 20 65 69 perations can ei
0244A0: 74 68 65 72 20 62 65 20 70 65 72 66 6F 72 6D 65 ther be performe
0244B0: 64 20 6F 6E 20 20 61 20 20 63 68 61 72 61 63 74 d on a charact
0244C0: 65 72 20 20 62 79 0D 0A 20 20 20 20 20 20 20 63 er by.. c
0244D0: 68 61 72 61 63 74 65 72 20 62 61 73 69 73 20 6F haracter basis o
0244E0: 72 20 6F 6E 20 61 20 77 68 6F 6C 65 20 66 69 6C r on a whole fil
0244F0: 65 20 20 61 74 20 20 6F 6E 63 65 2E 20 20 54 68 e at once. Th
024500: 65 72 65 20 20 69 73 20 20 6E 6F 20 20 68 61 72 ere is no har
024510: 64 77 61 72 65 0D 0A 20 20 20 20 20 20 20 73 75 dware.. su
024520: 70 70 6F 72 74 20 66 6F 72 20 74 68 65 20 63 61 pport for the ca
024530: 73 73 65 74 74 65 2C 20 65 76 65 6E 20 74 68 65 ssette, even the
024540: 20 74 69 6D 69 6E 67 20 66 6F 72 20 72 65 61 64 timing for read
024550: 69 6E 67 20 61 6E 64 20 77 72 69 74 69 6E 67 20 ing and writing
024560: 62 69 74 73 0D 0A 20 20 20 20 20 20 20 69 73 20 bits.. is
024570: 70 65 72 66 6F 72 6D 65 64 20 62 79 20 73 6F 66 performed by sof
024580: 74 77 61 72 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 tware.....
024590: 20 54 68 65 20 66 6F 72 6D 61 74 20 6F 66 20 64 The format of d
0245A0: 61 74 61 20 6F 6E 20 74 68 65 20 74 61 70 65 20 ata on the tape
0245B0: 69 73 20 64 65 73 63 72 69 62 65 64 20 69 6E 20 is described in
0245C0: 67 72 65 61 74 20 64 65 74 61 69 6C 2E 20 54 68 great detail. Th
0245D0: 69 73 20 77 69 6C 6C 0D 0A 20 20 20 20 20 20 20 is will..
0245E0: 6F 6E 6C 79 20 62 65 20 6F 66 20 61 63 61 64 65 only be of acade
0245F0: 6D 69 63 20 69 6E 74 65 72 65 73 74 20 74 6F 20 mic interest to
024600: 6D 75 73 74 20 75 73 65 72 73 2E 20 4D 6F 72 65 must users. More
024610: 20 20 67 65 6E 65 72 61 6C 20 20 69 6E 66 6F 72 general infor
024620: 6D 61 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 63 mation.. c
024630: 61 6E 20 62 65 20 66 6F 75 6E 64 20 69 6E 20 73 an be found in s
024640: 65 63 74 69 6F 6E 73 20 38 2E 34 20 6F 6E 77 61 ections 8.4 onwa
024650: 72 64 73 2E 20 49 6E 20 74 68 65 20 63 61 73 65 rds. In the case
024660: 20 6F 66 20 56 31 2E 31 20 6D 61 63 68 69 6E 65 of V1.1 machine
024670: 73 20 20 6F 72 0D 0A 20 20 20 20 20 20 20 74 68 s or.. th
024680: 65 20 43 50 43 34 36 34 20 77 69 74 68 20 61 20 e CPC464 with a
024690: 44 44 49 2D 31 20 66 69 74 74 65 64 2C 20 61 20 DDI-1 fitted, a
0246A0: 7C 54 41 50 45 20 63 6F 6D 6D 61 6E 64 20 77 69 |TAPE command wi
0246B0: 6C 6C 20 68 61 76 65 20 74 6F 20 20 62 65 20 20 ll have to be
0246C0: 75 73 65 64 0D 0A 20 20 20 20 20 20 20 74 6F 20 used.. to
0246D0: 61 63 63 65 73 73 20 74 68 65 20 54 61 70 65 20 access the Tape
0246E0: 4F 70 65 72 61 74 69 6E 67 20 53 79 73 74 65 6D Operating System
0246F0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 38 2E ....... 8.
024700: 31 20 46 69 6C 65 20 46 6F 72 6D 61 74 2E 0D 0A 1 File Format...
024710: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 66 69 6C .... A fil
024720: 65 20 6F 6E 20 74 61 70 65 20 69 73 20 73 70 6C e on tape is spl
024730: 69 74 20 69 6E 74 6F 20 62 6C 6F 63 6B 73 20 65 it into blocks e
024740: 61 63 68 20 77 69 74 68 20 61 20 68 65 61 64 65 ach with a heade
024750: 72 20 20 72 65 63 6F 72 64 20 20 61 6E 64 20 20 r record and
024760: 61 0D 0A 20 20 20 20 20 20 20 64 61 74 61 20 72 a.. data r
024770: 65 63 6F 72 64 20 63 6F 6E 74 61 69 6E 69 6E 67 ecord containing
024780: 20 75 70 20 74 6F 20 32 4B 20 28 32 30 34 38 29 up to 2K (2048)
024790: 20 62 79 74 65 73 20 20 6F 66 20 20 64 61 74 61 bytes of data
0247A0: 2E 20 20 54 68 65 20 20 63 61 73 73 65 74 74 65 . The cassette
0247B0: 0D 0A 20 20 20 20 20 20 20 6D 6F 74 6F 72 20 77 .. motor w
0247C0: 68 69 63 68 20 69 73 20 75 6E 64 65 72 20 73 6F hich is under so
0247D0: 66 74 77 61 72 65 20 63 6F 6E 74 72 6F 6C 20 69 ftware control i
0247E0: 73 20 74 75 72 6E 65 64 20 6F 66 66 20 62 65 74 s turned off bet
0247F0: 77 65 65 6E 20 65 61 63 68 20 20 66 69 6C 65 0D ween each file.
024800: 0A 20 20 20 20 20 20 20 62 6C 6F 63 6B 20 74 6F . block to
024810: 20 61 6C 6C 6F 77 20 74 69 6D 65 20 74 6F 20 70 allow time to p
024820: 72 6F 63 65 73 73 20 74 68 65 20 64 61 74 61 20 rocess the data
024830: 72 65 61 64 20 6F 72 20 74 6F 20 67 65 6E 65 72 read or to gener
024840: 61 74 65 20 20 74 68 65 20 20 64 61 74 61 0D 0A ate the data..
024850: 20 20 20 20 20 20 20 74 6F 20 62 65 20 77 72 69 to be wri
024860: 74 74 65 6E 2E 20 54 68 65 20 6D 6F 74 6F 72 20 tten. The motor
024870: 73 74 61 72 74 2D 75 70 20 67 61 70 20 20 61 6C start-up gap al
024880: 73 6F 20 20 73 65 72 76 65 73 20 20 74 6F 20 20 so serves to
024890: 73 65 70 61 72 61 74 65 20 20 74 68 65 0D 0A 20 separate the..
0248A0: 20 20 20 20 20 20 62 6C 6F 63 6B 73 20 66 72 6F blocks fro
0248B0: 6D 20 65 61 63 68 20 6F 74 68 65 72 2E 0D 0A 0D m each other....
0248C0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 67 65 ... The ge
0248D0: 6E 65 72 61 6C 20 66 6F 72 6D 61 74 20 6F 66 20 neral format of
0248E0: 61 20 62 6C 6F 63 6B 20 69 73 20 61 73 20 66 6F a block is as fo
0248F0: 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 llows:....
024900: 20 20 20 20 20 20 20 5F 5F 5F 5F 5F 5F 5F 5F 5F _________
024910: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
024920: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
024930: 5F 5F 5F 5F 5F 0D 0A 20 20 20 20 20 20 20 20 20 _____..
024940: 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 |
024950: 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
024960: 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 |
024970: 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 |..
024980: 20 7C 20 20 4D 6F 74 6F 72 20 20 20 20 20 20 7C | Motor |
024990: 20 20 20 46 69 6C 65 20 68 65 61 64 65 72 20 20 File header
0249A0: 20 7C 20 20 20 20 46 69 6C 65 20 64 61 74 61 20 | File data
0249B0: 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 7C |.. |
0249C0: 20 20 53 74 61 72 74 2D 75 70 20 20 20 7C 20 20 Start-up |
0249D0: 20 72 65 63 6F 72 64 20 20 20 20 20 20 20 20 7C record |
0249E0: 20 20 20 20 72 65 63 6F 72 64 20 20 20 20 7C 0D record |.
0249F0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 7C 5F 5F . |__
024A00: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 5F 5F 5F 5F ___________|____
024A10: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 5F 5F _____________|__
024A20: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 0D 0A 0D ____________|...
024A30: 0A 0D 0A 20 20 20 20 20 20 20 48 6F 77 65 76 65 ... Howeve
024A40: 72 2C 20 74 68 65 20 66 69 72 73 74 20 61 6E 64 r, the first and
024A50: 20 6C 61 73 74 20 62 6C 6F 63 6B 73 20 6F 66 20 last blocks of
024A60: 20 61 20 20 66 69 6C 65 20 20 68 61 76 65 20 20 a file have
024A70: 61 6E 20 20 65 78 74 72 61 20 20 70 61 75 73 65 an extra pause
024A80: 0D 0A 20 20 20 20 20 20 20 62 65 66 6F 72 65 20 .. before
024A90: 61 6E 64 20 61 66 74 65 72 20 74 68 65 6D 20 72 and after them r
024AA0: 65 73 70 65 63 74 69 76 65 6C 79 2C 20 74 6F 20 espectively, to
024AB0: 73 65 70 61 72 61 74 65 20 20 66 69 6C 65 73 20 separate files
024AC0: 20 6F 6E 20 20 74 68 65 20 20 74 61 70 65 2E 0D on the tape..
024AD0: 0A 20 20 20 20 20 20 20 54 68 65 69 72 20 66 6F . Their fo
024AE0: 72 6D 61 74 73 20 61 72 65 20 74 68 75 73 3A 0D rmats are thus:.
024AF0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 46 69 72 ... Fir
024B00: 73 74 20 62 6C 6F 63 6B 3A 0D 0A 0D 0A 20 20 20 st block:....
024B10: 20 20 20 20 20 20 20 20 20 5F 5F 5F 5F 5F 5F 5F _______
024B20: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
024B30: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
024B40: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 0D _______________.
024B50: 0A 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 . |
024B60: 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 |
024B70: 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 |
024B80: 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 |
024B90: 20 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 |..
024BA0: 20 7C 20 20 4D 6F 74 6F 72 20 20 20 20 20 7C 20 | Motor |
024BB0: 20 20 50 72 65 2D 66 69 6C 65 20 7C 20 20 46 69 Pre-file | Fi
024BC0: 6C 65 20 68 65 61 64 65 72 20 20 7C 20 20 46 69 le header | Fi
024BD0: 6C 65 20 64 61 74 61 20 7C 0D 0A 20 20 20 20 20 le data |..
024BE0: 20 20 20 20 20 20 7C 20 20 73 74 61 72 74 2D 75 | start-u
024BF0: 70 20 20 7C 20 20 20 67 61 70 20 20 20 20 20 20 p | gap
024C00: 7C 20 20 72 65 63 6F 72 64 20 20 20 20 20 20 20 | record
024C10: 7C 20 20 72 65 63 6F 72 64 20 20 20 20 7C 0D 0A | record |..
024C20: 20 20 20 20 20 20 20 20 20 20 20 7C 5F 5F 5F 5F |____
024C30: 5F 5F 5F 5F 5F 5F 5F 5F 7C 5F 5F 5F 5F 5F 5F 5F ________|_______
024C40: 5F 5F 5F 5F 5F 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F _____|__________
024C50: 5F 5F 5F 5F 5F 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F _____|__________
024C60: 5F 5F 7C 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 __|....
024C70: 20 4C 61 73 74 20 62 6C 6F 63 6B 3A 0D 0A 0D 0A Last block:....
024C80: 20 20 20 20 20 20 20 20 20 20 20 5F 5F 5F 5F 5F _____
024C90: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
024CA0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
024CB0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
024CC0: 5F 5F 5F 0D 0A 20 20 20 20 20 20 20 20 20 20 7C ___.. |
024CD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 |
024CE0: 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 |
024CF0: 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 |
024D00: 20 20 20 20 20 20 20 20 7C 0D 0A 20 20 20 20 20 |..
024D10: 20 20 20 20 20 7C 20 20 4D 6F 74 6F 72 20 20 20 | Motor
024D20: 20 20 20 7C 20 46 69 6C 65 20 68 65 61 64 65 72 | File header
024D30: 7C 20 20 20 46 69 6C 65 20 64 61 74 61 20 20 20 | File data
024D40: 7C 20 20 50 6F 73 74 2D 66 69 6C 65 20 20 7C 0D | Post-file |.
024D50: 0A 20 20 20 20 20 20 20 20 20 20 7C 20 20 73 74 . | st
024D60: 61 72 74 2D 75 70 20 20 20 7C 20 72 65 63 6F 72 art-up | recor
024D70: 64 20 20 20 20 20 7C 20 20 20 72 65 63 6F 72 64 d | record
024D80: 20 20 20 20 20 20 7C 20 20 67 61 70 20 20 20 20 | gap
024D90: 20 20 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 |..
024DA0: 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C |_____________|
024DB0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 5F 5F 5F ____________|___
024DC0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 5F 5F 5F ____________|___
024DD0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 0D 0A 0D 0A 0D __________|.....
024DE0: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
024DF0: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
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: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
024F10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024F20: 20 20 20 20 20 20 20 20 70 61 67 65 20 38 2E 31 page 8.1
024F30: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
024F40: 20 20 20 20 20 54 68 65 72 65 20 69 73 20 61 20 There is a
024F50: 73 74 72 6F 6E 67 20 64 69 73 74 69 6E 63 74 69 strong distincti
024F60: 6F 6E 20 62 65 74 77 65 65 6E 20 74 68 65 20 66 on between the f
024F70: 69 6C 65 20 68 65 61 64 65 72 20 72 65 63 6F 72 ile header recor
024F80: 64 20 20 61 6E 64 20 20 74 68 65 0D 0A 20 20 20 d and the..
024F90: 20 20 20 20 66 69 6C 65 20 20 64 61 74 61 20 20 file data
024FA0: 72 65 63 6F 72 64 2E 20 20 54 68 65 20 20 68 65 record. The he
024FB0: 61 64 65 72 20 20 20 72 65 63 6F 72 64 20 20 20 ader record
024FC0: 69 73 20 20 20 77 72 69 74 74 65 6E 20 20 20 75 is written u
024FD0: 73 69 6E 67 20 20 20 6F 6E 65 0D 0A 20 20 20 20 sing one..
024FE0: 20 20 20 73 79 6E 63 68 72 6F 6E 69 73 61 74 69 synchronisati
024FF0: 6F 6E 20 63 68 61 72 61 63 74 65 72 20 28 23 32 on character (#2
025000: 43 29 20 20 61 6E 64 20 20 74 68 65 20 20 64 61 C) and the da
025010: 74 61 20 20 72 65 63 6F 72 64 20 20 77 69 74 68 ta record with
025020: 20 20 61 6E 6F 74 68 65 72 0D 0A 20 20 20 20 20 another..
025030: 20 20 28 23 31 36 29 2E 20 54 68 69 73 20 6D 65 (#16). This me
025040: 61 6E 73 20 74 68 61 74 20 77 68 65 6E 20 74 68 ans that when th
025050: 65 20 43 61 73 73 65 74 74 65 20 4D 61 6E 61 67 e Cassette Manag
025060: 65 72 20 69 73 20 20 73 65 61 72 63 68 69 6E 67 er is searching
025070: 20 20 66 6F 72 20 20 61 0D 0A 20 20 20 20 20 20 for a..
025080: 20 66 69 6C 65 20 68 65 61 64 65 72 20 69 74 20 file header it
025090: 69 73 20 69 6D 70 6F 73 73 69 62 6C 65 20 66 6F is impossible fo
0250A0: 72 20 69 74 20 74 6F 20 66 69 6E 64 20 20 61 20 r it to find a
0250B0: 20 66 69 6C 65 20 20 64 61 74 61 20 20 72 65 63 file data rec
0250C0: 6F 72 64 20 20 62 79 0D 0A 20 20 20 20 20 20 20 ord by..
0250D0: 6D 69 73 74 61 6B 65 2C 20 20 61 6E 64 20 20 76 mistake, and v
0250E0: 69 63 65 20 20 76 65 72 73 61 2E 20 20 53 65 65 ice versa. See
0250F0: 20 20 38 2E 32 20 20 62 65 6C 6F 77 20 20 66 6F 8.2 below fo
025100: 72 20 20 74 68 65 20 20 75 73 65 20 20 20 6F 66 r the use of
025110: 20 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 73 the.. s
025120: 79 6E 63 68 72 6F 6E 69 73 61 74 69 6F 6E 20 63 ynchronisation c
025130: 68 61 72 61 63 74 65 72 73 2E 0D 0A 0D 0A 20 20 haracters.....
025140: 20 20 20 20 20 38 2E 32 20 52 65 63 6F 72 64 20 8.2 Record
025150: 46 6F 72 6D 61 74 2E 0D 0A 0D 0A 20 20 20 20 20 Format.....
025160: 20 20 41 20 72 65 63 6F 72 64 20 63 61 6E 20 63 A record can c
025170: 6F 6E 74 61 69 6E 20 61 6E 79 20 6E 75 6D 62 65 ontain any numbe
025180: 72 20 6F 66 20 64 61 74 61 20 62 79 74 65 73 20 r of data bytes
025190: 66 72 6F 6D 20 20 31 20 20 74 6F 20 20 36 35 35 from 1 to 655
0251A0: 33 36 2E 20 20 54 68 65 0D 0A 20 20 20 20 20 20 36. The..
0251B0: 20 64 61 74 61 20 69 73 20 73 70 6C 69 74 20 69 data is split i
0251C0: 6E 74 6F 20 73 65 67 6D 65 6E 74 73 20 65 61 63 nto segments eac
0251D0: 68 20 6F 66 20 77 68 69 63 68 20 69 73 20 32 35 h of which is 25
0251E0: 36 20 62 79 74 65 73 20 6C 6F 6E 67 2E 20 54 68 6 bytes long. Th
0251F0: 65 20 20 6C 61 73 74 0D 0A 20 20 20 20 20 20 20 e last..
025200: 73 65 67 6D 65 6E 74 20 69 73 20 70 61 64 64 65 segment is padde
025210: 64 20 20 6F 75 74 20 20 74 6F 20 20 32 35 36 20 d out to 256
025220: 20 62 79 74 65 73 20 20 77 69 74 68 20 20 7A 65 bytes with ze
025230: 72 6F 73 20 20 77 68 65 6E 20 20 77 72 69 74 69 ros when writi
025240: 6E 67 20 20 69 66 0D 0A 20 20 20 20 20 20 20 6E ng if.. n
025250: 65 63 65 73 73 61 72 79 2E 20 57 68 65 6E 20 72 ecessary. When r
025260: 65 61 64 69 6E 67 20 61 20 72 65 63 6F 72 64 20 eading a record
025270: 61 6E 79 20 65 78 74 72 61 20 62 79 74 65 73 20 any extra bytes
025280: 61 72 65 20 69 67 6E 6F 72 65 64 20 20 61 6C 74 are ignored alt
025290: 68 6F 75 67 68 0D 0A 20 20 20 20 20 20 20 74 68 hough.. th
0252A0: 65 79 20 61 72 65 20 61 63 63 75 6D 75 6C 61 74 ey are accumulat
0252B0: 65 64 20 69 6E 74 6F 20 74 68 65 20 43 52 43 2E ed into the CRC.
0252C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6C .... The l
0252D0: 61 79 6F 75 74 20 6F 66 20 61 20 72 65 63 6F 72 ayout of a recor
0252E0: 64 20 69 73 20 61 73 20 66 6F 6C 6C 6F 77 73 3A d is as follows:
0252F0: 0D 0A 20 20 20 20 20 20 20 20 5F 5F 5F 5F 5F 5F .. ______
025300: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
025310: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
025320: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
025330: 5F 5F 5F 5F 5F 5F 5F 5F 5F 0D 0A 20 20 20 20 20 _________..
025340: 20 20 7C 20 20 20 20 20 20 20 20 20 20 7C 20 20 | |
025350: 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 |
025360: 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 |
025370: 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 |
025380: 20 20 7C 0D 0A 20 20 20 20 20 20 20 7C 20 4C 65 |.. | Le
025390: 61 64 65 72 20 20 20 7C 20 20 20 53 65 67 6D 65 ader | Segme
0253A0: 6E 74 20 31 20 20 20 7C 20 20 2E 2E 2E 2E 2E 2E nt 1 | ......
0253B0: 2E 2E 2E 2E 2E 20 7C 20 53 65 67 6D 65 6E 74 20 ..... | Segment
0253C0: 4E 20 20 7C 20 54 72 61 69 6C 65 72 7C 0D 0A 20 N | Trailer|..
0253D0: 20 20 20 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F |_________
0253E0: 5F 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F _|______________
0253F0: 5F 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F _|______________
025400: 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 5F 5F |____________|__
025410: 5F 5F 5F 5F 5F 5F 7C 0D 0A 0D 0A 20 20 20 20 20 ______|....
025420: 20 20 54 68 65 72 65 20 61 72 65 20 4E 20 73 65 There are N se
025430: 67 6D 65 6E 74 73 20 77 68 65 72 65 20 32 35 36 gments where 256
025440: 2A 4E 20 69 73 20 74 68 65 20 6C 65 6E 67 74 68 *N is the length
025450: 20 6F 66 20 64 61 74 61 20 28 70 6C 75 73 20 20 of data (plus
025460: 70 61 64 64 69 6E 67 29 0D 0A 20 20 20 20 20 20 padding)..
025470: 20 74 6F 20 62 65 20 77 72 69 74 74 65 6E 2E 0D to be written..
025480: 0A 0D 0A 20 20 20 20 20 20 20 41 20 66 69 6C 65 ... A file
025490: 20 68 65 61 64 65 72 20 72 65 63 6F 72 64 20 61 header record a
0254A0: 6C 77 61 79 73 20 63 6F 6E 74 61 69 6E 73 20 6F lways contains o
0254B0: 6E 65 20 73 65 67 6D 65 6E 74 3B 20 61 20 66 69 ne segment; a fi
0254C0: 6C 65 20 20 64 61 74 61 20 20 72 65 63 6F 72 64 le data record
0254D0: 0D 0A 20 20 20 20 20 20 20 63 6F 6E 74 61 69 6E .. contain
0254E0: 73 20 66 72 6F 6D 20 6F 6E 65 20 74 6F 20 65 69 s from one to ei
0254F0: 67 68 74 20 73 65 67 6D 65 6E 74 73 20 28 75 73 ght segments (us
025500: 75 61 6C 6C 79 20 38 20 73 65 67 6D 65 6E 74 73 ually 8 segments
025510: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 61 2E 20 )..... a.
025520: 4C 65 61 64 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 Leader.....
025530: 20 20 41 74 20 74 68 65 20 73 74 61 72 74 20 6F At the start o
025540: 66 20 20 61 6C 6C 20 20 72 65 63 6F 72 64 73 20 f all records
025550: 20 61 20 20 6C 65 61 64 65 72 20 20 69 73 20 20 a leader is
025560: 77 72 69 74 74 65 6E 20 20 77 68 69 63 68 20 20 written which
025570: 68 61 73 20 20 74 68 65 0D 0A 20 20 20 20 20 20 has the..
025580: 20 66 6F 6C 6C 6F 77 69 6E 67 20 6C 61 79 6F 75 following layou
025590: 74 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 t:....
0255A0: 20 20 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ______________
0255B0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
0255C0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
0255D0: 5F 5F 5F 5F 5F 5F 5F 5F 0D 0A 20 20 20 20 20 20 ________..
0255E0: 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 |
0255F0: 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 |
025600: 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 |
025610: 20 20 7C 20 20 20 20 20 20 20 20 20 7C 0D 0A 20 | |..
025620: 20 20 20 20 20 20 20 20 20 20 7C 20 20 50 72 65 | Pre
025630: 2D 72 65 63 6F 72 64 20 20 7C 20 20 20 20 20 20 -record |
025640: 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 |
025650: 5A 65 72 6F 20 20 20 7C 20 20 20 53 79 6E 63 20 Zero | Sync
025660: 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 7C |.. |
025670: 20 20 67 61 70 20 20 20 20 20 20 20 20 20 7C 20 gap |
025680: 20 20 32 30 34 38 20 6F 6E 65 20 62 69 74 73 20 2048 one bits
025690: 20 20 7C 20 20 62 69 74 20 20 20 20 7C 20 20 20 | bit |
0256A0: 62 69 74 20 20 20 7C 0D 0A 20 20 20 20 20 20 20 bit |..
0256B0: 20 20 20 20 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F |___________
0256C0: 5F 5F 5F 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ___|____________
0256D0: 5F 5F 5F 5F 5F 5F 5F 7C 5F 5F 5F 5F 5F 5F 5F 5F _______|________
0256E0: 5F 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 0D 0A 0D 0A _|_________|....
0256F0: 20 20 20 20 20 20 20 54 68 65 20 6C 65 61 64 69 The leadi
025700: 6E 67 20 67 61 70 20 69 73 20 74 68 65 72 65 20 ng gap is there
025710: 74 6F 20 65 6E 73 75 72 65 20 20 74 68 65 20 20 to ensure the
025720: 66 61 69 6C 75 72 65 20 20 6F 66 20 20 61 6E 79 failure of any
025730: 20 20 61 74 74 65 6D 70 74 20 20 74 6F 0D 0A 20 attempt to..
025740: 20 20 20 20 20 20 73 79 6E 63 68 72 6F 6E 69 73 synchronis
025750: 65 20 6F 6E 20 65 6E 64 20 6F 66 20 61 20 70 72 e on end of a pr
025760: 65 63 65 64 69 6E 67 20 72 65 63 6F 72 64 20 6F eceding record o
025770: 72 20 6F 6E 20 64 61 74 61 20 74 68 61 74 20 20 r on data that
025780: 77 61 73 20 20 6F 6E 20 20 74 68 65 0D 0A 20 20 was on the..
025790: 20 20 20 20 20 74 61 70 65 20 61 6E 64 20 74 68 tape and th
0257A0: 61 74 20 68 61 73 20 62 65 65 6E 20 6F 76 65 72 at has been over
0257B0: 2D 72 65 63 6F 72 64 65 64 2E 0D 0A 0D 0A 20 20 -recorded.....
0257C0: 20 20 20 20 20 54 68 65 20 6C 6F 6E 67 20 73 65 The long se
0257D0: 71 75 65 6E 63 65 20 6F 66 20 6F 6E 65 20 62 69 quence of one bi
0257E0: 74 73 20 69 73 20 75 73 65 64 20 74 6F 20 63 61 ts is used to ca
0257F0: 6C 63 75 6C 61 74 65 20 74 68 65 20 73 70 65 65 lculate the spee
025800: 64 20 61 74 20 20 77 68 69 63 68 0D 0A 20 20 20 d at which..
025810: 20 20 20 20 74 68 65 20 64 61 74 61 20 77 61 73 the data was
025820: 20 77 72 69 74 74 65 6E 20 61 6E 64 20 68 65 6E written and hen
025830: 63 65 20 74 6F 20 63 61 6C 63 75 6C 61 74 65 20 ce to calculate
025840: 74 68 65 20 74 68 72 65 73 68 6F 6C 64 20 20 76 the threshold v
025850: 61 6C 75 65 20 20 75 73 65 64 0D 0A 20 20 20 20 alue used..
025860: 20 20 20 74 6F 20 64 69 73 74 69 6E 67 75 69 73 to distinguis
025870: 68 20 6F 6E 65 20 62 69 74 73 20 66 72 6F 6D 20 h one bits from
025880: 7A 65 72 6F 20 62 69 74 73 2E 0D 0A 0D 0A 20 20 zero bits.....
025890: 20 20 20 20 20 54 68 65 20 73 69 6E 67 6C 65 20 The single
0258A0: 7A 65 72 6F 20 62 69 74 20 69 73 20 75 73 65 64 zero bit is used
0258B0: 20 74 6F 20 6D 61 72 6B 20 74 68 65 20 69 6D 70 to mark the imp
0258C0: 65 6E 64 69 6E 67 20 65 6E 64 20 20 6F 66 20 20 ending end of
0258D0: 74 68 65 20 20 6C 65 61 64 65 72 0D 0A 20 20 20 the leader..
0258E0: 20 20 20 20 61 6E 64 20 69 73 20 61 6C 73 6F 20 and is also
0258F0: 75 73 65 64 20 74 6F 20 64 65 74 65 72 6D 69 6E used to determin
025900: 65 20 77 68 65 74 68 65 72 20 74 68 65 20 72 65 e whether the re
025910: 63 6F 72 64 69 6E 67 20 68 61 73 20 62 65 65 6E cording has been
025920: 20 20 69 6E 76 65 72 74 65 64 0D 0A 20 20 20 20 inverted..
025930: 20 20 20 28 73 65 65 20 73 65 63 74 69 6F 6E 20 (see section
025940: 38 2E 33 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 8.3).....
025950: 54 68 65 20 20 73 79 6E 63 68 72 6F 6E 69 73 61 The synchronisa
025960: 74 69 6F 6E 20 20 62 79 74 65 20 20 69 73 20 20 tion byte is
025970: 74 68 65 72 65 20 20 20 74 6F 20 20 20 68 65 6C there to hel
025980: 70 20 20 20 70 72 65 76 65 6E 74 20 20 20 73 70 p prevent sp
025990: 75 72 69 6F 75 73 0D 0A 20 20 20 20 20 20 20 73 urious.. s
0259A0: 79 6E 63 68 72 6F 6E 69 73 61 74 69 6F 6E 20 6F ynchronisation o
0259B0: 6E 20 73 65 71 75 65 6E 63 65 73 20 6F 66 20 62 n sequences of b
0259C0: 69 74 73 20 73 75 63 68 20 20 61 73 20 20 6D 69 its such as mi
0259D0: 67 68 74 20 20 62 65 20 20 66 6F 75 6E 64 20 20 ght be found
0259E0: 69 6E 20 20 61 0D 0A 20 20 20 20 20 20 20 72 65 in a.. re
0259F0: 63 6F 72 64 2E 20 49 66 20 61 6E 20 69 6E 63 6F cord. If an inco
025A00: 72 72 65 63 74 20 76 61 6C 75 65 20 66 6F 72 20 rrect value for
025A10: 74 68 65 20 20 73 79 6E 63 20 20 62 79 74 65 20 the sync byte
025A20: 20 69 73 20 20 66 6F 75 6E 64 20 20 74 68 65 6E is found then
025A30: 20 20 61 6E 0D 0A 20 20 20 20 20 20 20 61 74 74 an.. att
025A40: 65 6D 70 74 20 68 61 73 20 62 65 65 6E 20 6D 61 empt has been ma
025A50: 64 65 20 74 6F 20 73 79 6E 63 68 72 6F 6E 69 73 de to synchronis
025A60: 65 20 6F 6E 20 74 68 65 20 6D 69 64 64 6C 65 20 e on the middle
025A70: 6F 66 20 61 20 72 65 63 6F 72 64 20 20 6F 72 20 of a record or
025A80: 20 6F 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 20 on.. the
025A90: 77 72 6F 6E 67 20 74 79 70 65 20 6F 66 20 72 65 wrong type of re
025AA0: 63 6F 72 64 2E 20 54 68 69 73 20 62 79 74 65 20 cord. This byte
025AB0: 20 69 73 20 20 75 73 65 64 20 20 74 6F 20 20 64 is used to d
025AC0: 69 73 74 69 6E 67 75 69 73 68 20 20 68 65 61 64 istinguish head
025AD0: 65 72 0D 0A 20 20 20 20 20 20 20 72 65 63 6F 72 er.. recor
025AE0: 64 73 20 66 72 6F 6D 20 64 61 74 61 20 72 65 63 ds from data rec
025AF0: 6F 72 64 73 20 69 6E 20 61 20 66 69 6C 65 20 20 ords in a file
025B00: 62 6C 6F 63 6B 20 20 28 68 65 61 64 65 72 20 20 block (header
025B10: 72 65 63 6F 72 64 73 20 20 75 73 65 20 20 23 32 records use #2
025B20: 43 0D 0A 20 20 20 20 20 20 20 77 68 69 6C 65 20 C.. while
025B30: 64 61 74 61 20 72 65 63 6F 72 64 73 20 75 73 65 data records use
025B40: 20 23 31 36 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 #16).....
025B50: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
025B60: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
025B70: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
025B80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
025B90: 61 67 65 20 38 2E 32 0D 0A 0D 0A 0D 0A 0D 0A 0D age 8.2.........
025BA0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 62 2E 20 53 ..... b. S
025BB0: 65 67 6D 65 6E 74 73 0D 0A 0D 0A 20 20 20 20 20 egments....
025BC0: 20 20 45 61 63 68 20 73 65 67 6D 65 6E 74 20 63 Each segment c
025BD0: 6F 6E 74 61 69 6E 73 20 32 35 36 20 64 61 74 61 ontains 256 data
025BE0: 20 62 79 74 65 73 20 61 6E 64 20 68 61 73 20 74 bytes and has t
025BF0: 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 66 6F 72 he following for
025C00: 6D 61 74 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 mat:..
025C10: 20 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F _______________
025C20: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
025C30: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
025C40: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 0D 0A 20 20 ____________..
025C50: 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 |
025C60: 20 20 7C 20 20 20 20 20 20 20 20 20 20 7C 20 20 | |
025C70: 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 |
025C80: 20 20 20 7C 20 20 20 20 20 20 20 7C 20 20 20 20 | |
025C90: 20 20 20 20 7C 0D 0A 20 20 20 20 20 20 20 20 20 |..
025CA0: 20 7C 20 20 42 79 74 65 20 31 20 7C 20 20 42 79 | Byte 1 | By
025CB0: 74 65 20 32 20 20 7C 2E 2E 2E 2E 2E 2E 2E 2E 2E te 2 |.........
025CC0: 2E 7C 20 42 79 74 65 20 32 35 36 20 7C 20 43 52 .| Byte 256 | CR
025CD0: 43 20 31 20 7C 20 20 43 52 43 20 32 20 7C 0D 0A C 1 | CRC 2 |..
025CE0: 20 20 20 20 20 20 20 20 20 20 7C 5F 5F 5F 5F 5F |_____
025CF0: 5F 5F 5F 5F 7C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C ____|__________|
025D00: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 7C 5F 5F 5F 5F 5F __________|_____
025D10: 5F 5F 5F 5F 5F 7C 5F 5F 5F 5F 5F 5F 5F 7C 5F 5F _____|_______|__
025D20: 5F 5F 5F 5F 5F 5F 7C 0D 0A 0D 0A 20 20 20 20 20 ______|....
025D30: 20 20 27 43 52 43 20 31 27 20 69 73 20 74 68 65 'CRC 1' is the
025D40: 20 6D 6F 72 65 20 73 69 67 6E 69 66 69 63 61 6E more significan
025D50: 74 20 62 79 74 65 20 61 6E 64 20 27 43 52 43 20 t byte and 'CRC
025D60: 32 27 20 74 68 65 20 6C 65 73 73 20 20 73 69 67 2' the less sig
025D70: 6E 69 66 69 63 61 6E 74 0D 0A 0D 0A 20 20 20 20 nificant....
025D80: 20 20 20 62 79 74 65 20 6F 66 20 74 68 65 20 6C byte of the l
025D90: 6F 67 69 63 61 6C 20 4E 4F 54 20 6F 66 20 74 68 ogical NOT of th
025DA0: 65 20 43 52 43 20 63 61 6C 63 75 6C 61 74 65 64 e CRC calculated
025DB0: 20 66 6F 72 20 74 68 65 20 32 35 36 20 62 79 74 for the 256 byt
025DC0: 65 73 20 69 6E 20 74 68 65 0D 0A 20 20 20 20 20 es in the..
025DD0: 20 20 73 65 67 6D 65 6E 74 2E 20 28 54 68 65 20 segment. (The
025DE0: 43 52 43 20 70 6F 6C 79 6E 6F 6D 69 6E 61 6C 20 CRC polynominal
025DF0: 75 73 65 64 20 20 69 73 20 20 27 58 28 31 35 29 used is 'X(15)
025E00: 2B 58 28 31 32 29 2B 58 28 35 29 2B 31 27 20 20 +X(12)+X(5)+1'
025E10: 77 69 74 68 20 20 61 6E 0D 0A 20 20 20 20 20 20 with an..
025E20: 20 69 6E 69 74 69 61 6C 20 73 70 65 65 64 20 6F initial speed o
025E30: 66 20 23 46 46 46 46 29 2E 20 28 4E 75 6D 62 65 f #FFFF). (Numbe
025E40: 72 73 20 69 6E 20 62 72 61 63 6B 65 74 73 20 6D rs in brackets m
025E50: 65 61 6E 73 20 73 71 75 61 72 65 64 29 2E 0D 0A eans squared)...
025E60: 0D 0A 20 20 20 20 20 20 20 63 2E 20 54 72 61 69 .. c. Trai
025E70: 6C 65 72 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ler.... Th
025E80: 65 20 74 72 61 69 6C 65 72 20 69 73 20 73 69 6D e trailer is sim
025E90: 70 6C 79 20 61 6E 20 65 78 74 72 61 20 33 32 20 ply an extra 32
025EA0: 6F 6E 65 20 62 69 74 73 20 77 72 69 74 74 65 6E one bits written
025EB0: 20 74 6F 20 74 68 65 20 65 6E 64 20 20 6F 66 20 to the end of
025EC0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 72 65 63 the.. rec
025ED0: 6F 72 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 38 ord..... 8
025EE0: 2E 33 20 42 69 74 20 46 6F 72 6D 61 74 2E 0D 0A .3 Bit Format...
025EF0: 0D 0A 20 20 20 20 20 20 20 41 20 62 69 74 20 69 .. A bit i
025F00: 73 20 77 72 69 74 74 65 6E 20 74 6F 20 74 68 65 s written to the
025F10: 20 74 61 70 65 20 61 73 20 61 20 70 65 72 69 6F tape as a perio
025F20: 64 20 6F 66 20 6C 6F 77 20 6C 65 76 65 6C 20 66 d of low level f
025F30: 6F 6C 6C 6F 77 65 64 20 20 62 79 20 20 61 6E 0D ollowed by an.
025F40: 0A 20 20 20 20 20 20 20 65 71 75 61 6C 20 70 65 . equal pe
025F50: 72 69 6F 64 20 6F 66 20 68 69 67 68 20 6C 65 76 riod of high lev
025F60: 65 6C 2E 20 41 20 6F 6E 65 20 69 73 20 77 72 69 el. A one is wri
025F70: 74 74 65 6E 20 74 6F 20 74 68 65 20 20 74 61 70 tten to the tap
025F80: 65 20 20 77 69 74 68 20 20 74 68 65 73 65 0D 0A e with these..
025F90: 20 20 20 20 20 20 20 70 65 72 69 6F 64 73 20 74 periods t
025FA0: 77 69 63 65 20 61 73 20 6C 6F 6E 67 20 61 73 20 wice as long as
025FB0: 74 68 6F 73 65 20 6F 66 20 7A 65 72 6F 2E 20 54 those of zero. T
025FC0: 68 65 20 6C 65 6E 67 74 68 20 6F 66 20 74 68 65 he length of the
025FD0: 20 70 65 72 69 6F 64 20 66 6F 72 20 61 0D 0A 20 period for a..
025FE0: 20 20 20 20 20 20 7A 65 72 6F 20 63 61 6E 20 62 zero can b
025FF0: 65 20 73 65 74 20 62 79 20 74 68 65 20 75 73 65 e set by the use
026000: 72 20 28 73 65 65 20 43 41 53 20 53 45 54 20 53 r (see CAS SET S
026010: 50 45 45 44 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 PEED).....
026020: 20 54 68 65 20 74 61 70 65 20 63 69 72 63 75 69 The tape circui
026030: 74 72 79 20 68 61 73 20 61 20 74 65 6E 64 65 6E try has a tenden
026040: 63 79 20 20 74 6F 20 20 6D 6F 76 65 20 20 74 68 cy to move th
026050: 65 20 20 70 6F 73 69 74 69 6F 6E 73 20 20 6F 66 e positions of
026060: 20 20 65 64 67 65 73 0D 0A 20 20 20 20 20 20 20 edges..
026070: 28 74 72 61 6E 73 69 74 69 6F 6E 73 20 66 72 6F (transitions fro
026080: 6D 20 68 69 67 68 20 74 6F 20 6C 6F 77 20 6F 72 m high to low or
026090: 20 6C 6F 77 20 74 6F 20 68 69 67 68 29 20 73 6F low to high) so
0260A0: 20 61 73 20 74 6F 20 62 61 6C 61 6E 63 65 20 6F as to balance o
0260B0: 75 74 20 74 68 65 0D 0A 20 20 20 20 20 20 20 64 ut the.. d
0260C0: 69 66 66 65 72 65 6E 63 65 20 62 65 74 77 65 65 ifference betwee
0260D0: 6E 20 6F 6E 65 73 20 61 6E 64 20 7A 65 72 6F 73 n ones and zeros
0260E0: 20 77 72 69 74 74 65 6E 20 74 6F 20 74 61 70 65 written to tape
0260F0: 2E 20 50 72 65 63 6F 6D 70 65 6E 73 61 74 69 6F . Precompensatio
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: 6E 20 20 69 73 0D 0A 20 20 20 20 20 20 20 75 73 n is.. us
026210: 65 64 20 2D 20 77 68 69 63 68 20 61 64 64 73 20 ed - which adds
026220: 74 6F 20 74 68 65 20 70 65 72 69 6F 64 20 6F 66 to the period of
026230: 20 6F 6E 65 20 20 62 69 74 20 20 61 6E 64 20 20 one bit and
026240: 73 75 62 74 72 61 63 74 73 20 20 66 72 6F 6D 20 subtracts from
026250: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 70 65 72 the.. per
026260: 69 6F 64 20 6F 66 20 61 20 7A 65 72 6F 20 62 69 iod of a zero bi
026270: 74 20 74 6F 20 6D 61 6B 65 20 74 68 65 20 77 61 t to make the wa
026280: 76 65 66 6F 72 6D 20 63 6C 6F 73 65 72 20 74 6F veform closer to
026290: 20 74 68 65 20 69 64 65 61 6C 20 77 68 65 6E 20 the ideal when
0262A0: 20 69 74 0D 0A 20 20 20 20 20 20 20 69 73 20 72 it.. is r
0262B0: 65 61 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 57 ead..... W
0262C0: 68 65 6E 20 72 65 61 64 69 6E 67 2C 20 74 68 65 hen reading, the
0262D0: 20 73 70 65 65 64 20 61 74 20 77 68 69 63 68 20 speed at which
0262E0: 74 68 65 20 72 65 63 6F 72 64 69 6E 67 20 77 61 the recording wa
0262F0: 73 20 6D 61 64 65 20 69 73 20 20 64 65 74 65 72 s made is deter
026300: 6D 69 6E 65 64 0D 0A 20 20 20 20 20 20 20 62 79 mined.. by
026310: 20 74 69 6D 69 6E 67 20 74 68 65 20 6F 6E 65 20 timing the one
026320: 62 69 74 73 20 69 6E 20 20 74 68 65 20 20 72 65 bits in the re
026330: 63 6F 72 64 20 20 6C 65 61 64 65 72 2E 20 20 41 cord leader. A
026340: 73 20 20 74 68 69 73 20 20 69 73 20 20 61 20 20 s this is a
026350: 6C 6F 6E 67 0D 0A 20 20 20 20 20 20 20 73 65 71 long.. seq
026360: 75 65 6E 63 65 20 20 6F 66 20 20 74 68 65 20 20 uence of the
026370: 73 61 6D 65 20 20 62 69 74 20 20 74 68 65 20 20 same bit the
026380: 65 64 67 65 73 20 20 61 72 65 20 20 6E 6F 74 20 edges are not
026390: 20 73 68 69 66 74 65 64 20 20 20 61 6E 64 20 20 shifted and
0263A0: 20 6E 6F 0D 0A 20 20 20 20 20 20 20 70 72 65 63 no.. prec
0263B0: 6F 6D 70 65 6E 73 61 74 69 6F 6E 20 20 69 73 20 ompensation is
0263C0: 20 61 70 70 6C 69 65 64 2E 20 20 20 53 69 6E 63 applied. Sinc
0263D0: 65 20 20 20 74 68 65 20 20 20 73 70 65 65 64 20 e the speed
0263E0: 20 20 69 73 20 20 20 65 73 74 61 62 6C 69 73 68 is establish
0263F0: 65 64 0D 0A 20 20 20 20 20 20 20 69 6E 64 65 70 ed.. indep
026400: 65 6E 64 65 6E 74 6C 79 20 66 6F 72 20 65 61 63 endently for eac
026410: 68 20 72 65 63 6F 72 64 20 74 68 69 73 20 61 75 h record this au
026420: 74 6F 6D 61 74 69 63 61 6C 6C 79 20 20 74 61 6B tomatically tak
026430: 65 73 20 20 69 6E 74 6F 20 20 61 63 63 6F 75 6E es into accoun
026440: 74 0D 0A 20 20 20 20 20 20 20 6D 6F 73 74 20 74 t.. most t
026450: 61 70 65 20 73 70 65 65 64 20 76 61 72 69 61 74 ape speed variat
026460: 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ions.....
026470: 44 61 74 61 20 69 73 20 77 72 69 74 74 65 6E 20 Data is written
026480: 6C 6F 77 2D 68 69 67 68 20 62 75 74 20 6D 61 79 low-high but may
026490: 20 62 75 74 20 6D 61 79 20 62 65 20 69 6E 76 65 but may be inve
0264A0: 72 74 65 64 20 77 68 65 6E 20 20 72 65 61 64 20 rted when read
0264B0: 20 28 69 2E 65 2E 0D 0A 20 20 20 20 20 20 20 68 (i.e... h
0264C0: 69 67 68 2D 6C 6F 77 29 2E 20 49 74 20 69 73 20 igh-low). It is
0264D0: 69 6D 70 6F 72 74 61 6E 74 20 66 6F 72 20 74 68 important for th
0264E0: 65 20 66 69 72 6D 77 61 72 65 20 74 6F 20 64 65 e firmware to de
0264F0: 74 65 72 6D 69 6E 65 20 20 77 68 65 74 68 65 72 termine whether
026500: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 77 61 the.. wa
026510: 76 65 66 6F 72 6D 20 62 65 69 6E 67 20 72 65 61 veform being rea
026520: 64 20 69 73 20 69 6E 76 65 72 74 65 64 20 6F 72 d is inverted or
026530: 20 6E 6F 74 2E 20 49 66 20 74 68 69 73 20 69 73 not. If this is
026540: 20 6E 6F 74 20 20 61 63 68 69 65 76 65 64 20 20 not achieved
026550: 74 68 65 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 then.. the
026560: 20 62 69 74 73 20 77 69 6C 6C 20 6E 6F 74 20 62 bits will not b
026570: 65 20 72 65 61 64 20 70 72 6F 70 65 72 6C 79 20 e read properly
026580: 61 73 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 as the following
026590: 20 65 78 61 6D 70 6C 65 20 73 68 6F 77 73 3A 0D example shows:.
0265A0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0265B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3A :
0265C0: 20 20 20 20 20 20 3A 20 20 20 20 20 20 20 3A 20 : :
0265D0: 20 20 20 20 20 20 20 20 20 20 3A 20 20 20 20 20 :
0265E0: 20 20 20 20 20 20 3A 0D 0A 20 20 20 20 20 20 20 :..
0265F0: 49 6E 76 65 72 73 69 6F 6E 20 64 65 74 65 63 74 Inversion detect
026600: 65 64 3A 20 20 20 20 3A 5F 5F 30 20 20 20 3A 5F ed: :__0 :_
026610: 5F 5F 30 20 20 20 3A 5F 5F 5F 5F 5F 31 20 20 20 __0 :_____1
026620: 20 20 3A 5F 5F 5F 5F 5F 31 20 20 20 20 20 3A 0D :_____1 :.
026630: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
026640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026650: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
026660: 20 20 20 20 7C 20 20 20 20 20 7C 20 20 20 20 20 | |
026670: 7C 20 20 20 20 20 7C 0D 0A 20 20 20 20 20 20 20 | |..
026680: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026690: 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 7C 20 | |
0266A0: 20 20 7C 20 20 20 7C 20 20 20 20 20 7C 20 20 20 | | |
0266B0: 20 20 7C 20 20 20 20 20 7C 20 20 20 20 20 7C 0D | | |.
0266C0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0266D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0266E0: 20 20 7C 5F 5F 5F 7C 20 20 20 7C 5F 5F 5F 7C 20 |___| |___|
0266F0: 20 20 20 20 7C 5F 5F 5F 5F 5F 7C 20 20 20 20 20 |_____|
026700: 7C 5F 5F 5F 5F 5F 7C 0D 0A 20 20 20 20 20 20 20 |_____|..
026710: 49 6E 76 65 72 73 69 6F 6E 73 20 6E 6F 74 20 64 Inversions not d
026720: 65 74 65 63 74 65 64 3A 20 20 3A 20 20 20 30 20 etected: : 0
026730: 20 20 3A 20 20 20 20 3F 20 20 20 20 3A 20 20 20 : ? :
026740: 20 20 31 20 20 20 20 20 3A 0D 0A 20 20 20 20 20 1 :..
026750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026760: 20 20 20 20 20 20 20 20 20 20 20 20 3A 20 20 20 :
026770: 20 20 20 20 3A 20 20 20 20 20 20 20 20 20 3A 20 : :
026780: 20 20 20 20 20 20 20 20 20 20 3A 0D 0A 0D 0A 20 :....
026790: 20 20 20 20 20 20 54 68 65 20 7A 65 72 6F 20 62 The zero b
0267A0: 69 74 20 69 6E 20 74 68 65 20 72 65 63 6F 72 64 it in the record
0267B0: 20 6C 65 61 64 65 72 20 69 73 20 75 73 65 64 20 leader is used
0267C0: 20 74 6F 20 20 64 65 74 65 72 6D 69 6E 65 20 20 to determine
0267D0: 77 68 65 74 68 65 72 20 20 74 68 65 0D 0A 20 20 whether the..
0267E0: 20 20 20 20 20 72 65 63 6F 72 64 69 6E 67 20 68 recording h
0267F0: 61 73 20 62 65 65 6E 20 69 6E 76 65 72 74 65 64 as been inverted
026800: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 42 79 74 65 ..... Byte
026810: 73 20 77 72 69 74 74 65 6E 20 74 6F 20 74 68 65 s written to the
026820: 20 74 61 70 65 20 61 72 65 20 77 72 69 74 74 65 tape are writte
026830: 6E 20 77 69 74 68 20 74 68 65 20 20 6D 6F 73 74 n with the most
026840: 20 20 73 69 67 6E 69 66 69 63 61 6E 74 20 20 62 significant b
026850: 69 74 0D 0A 20 20 20 20 20 20 20 66 69 72 73 74 it.. first
026860: 20 61 6E 64 20 74 68 65 20 6C 65 61 73 74 20 73 and the least s
026870: 69 67 6E 69 66 69 63 61 6E 74 20 62 69 74 20 6C ignificant bit l
026880: 61 73 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ast.......
026890: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
0268A0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
0268B0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
0268C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
0268D0: 61 67 65 20 38 2E 33 0D 0A 0D 0A 0D 0A 0D 0A 0D age 8.3.........
0268E0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 38 2E 34 20 ..... 8.4
0268F0: 54 68 65 20 48 65 61 64 65 72 20 52 65 63 6F 72 The Header Recor
026900: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 d..... The
026910: 20 68 65 61 64 65 72 20 72 65 63 6F 72 64 20 69 header record i
026920: 6E 20 61 20 66 69 6C 65 20 62 6C 6F 63 6B 20 63 n a file block c
026930: 6F 6E 74 61 69 6E 73 20 69 6E 66 6F 72 6D 61 74 ontains informat
026940: 69 6F 6E 20 61 62 6F 75 74 20 74 68 65 20 20 66 ion about the f
026950: 69 6C 65 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 ile.. and
026960: 61 62 6F 75 74 20 74 68 65 20 64 61 74 61 20 69 about the data i
026970: 6E 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 n the following
026980: 64 61 74 61 20 72 65 63 6F 72 64 2E 20 53 6F 6D data record. Som
026990: 65 20 6F 66 20 20 74 68 65 20 20 65 6E 74 72 69 e of the entri
0269A0: 65 73 0D 0A 20 20 20 20 20 20 20 69 6E 20 74 68 es.. in th
0269B0: 65 20 68 65 61 64 65 72 20 61 72 65 20 20 75 73 e header are us
0269C0: 65 64 20 20 62 79 20 20 74 68 65 20 20 73 79 73 ed by the sys
0269D0: 74 65 6D 20 20 66 6F 72 20 20 76 61 72 69 6F 75 tem for variou
0269E0: 73 20 20 70 75 72 70 6F 73 65 73 2E 20 20 54 68 s purposes. Th
0269F0: 65 0D 0A 20 20 20 20 20 20 20 72 65 6D 61 69 6E e.. remain
026A00: 69 6E 67 20 65 6E 74 72 69 65 73 20 61 72 65 20 ing entries are
026A10: 61 76 61 69 6C 61 62 6C 65 20 66 6F 72 20 74 68 available for th
026A20: 65 20 75 73 65 72 20 74 6F 20 20 73 65 74 20 20 e user to set
026A30: 77 68 65 6E 20 20 77 72 69 74 69 6E 67 20 20 61 when writing a
026A40: 0D 0A 20 20 20 20 20 20 20 66 69 6C 65 2C 20 61 .. file, a
026A50: 6E 64 20 74 6F 20 72 65 61 64 20 77 68 65 6E 20 nd to read when
026A60: 72 65 61 64 69 6E 67 20 61 20 66 69 6C 65 2E 20 reading a file.
026A70: 54 68 65 73 65 20 65 6E 74 72 69 65 73 20 61 72 These entries ar
026A80: 65 20 74 68 65 20 66 69 6C 65 20 74 79 70 65 0D e the file type.
026A90: 0A 20 20 20 20 20 20 20 28 62 79 74 65 20 31 38 . (byte 18
026AA0: 29 20 61 6E 64 20 61 6C 6C 20 74 68 65 20 75 73 ) and all the us
026AB0: 65 72 20 66 69 65 6C 64 73 20 28 62 79 74 65 73 er fields (bytes
026AC0: 20 32 34 2E 2E 33 36 29 20 69 6E 63 6C 75 64 69 24..36) includi
026AD0: 6E 67 20 74 68 65 20 6C 6F 67 69 63 61 6C 0D 0A ng the logical..
026AE0: 20 20 20 20 20 20 20 6C 65 6E 67 74 68 20 28 62 length (b
026AF0: 79 74 65 73 20 32 34 2E 2E 32 35 29 20 61 6E 64 ytes 24..25) and
026B00: 20 74 68 65 20 65 6E 74 72 79 20 61 64 64 72 65 the entry addre
026B10: 73 73 20 28 62 79 74 65 73 20 32 36 2E 2E 32 37 ss (bytes 26..27
026B20: 29 2E 20 20 54 68 65 20 20 75 73 65 72 0D 0A 20 ). The user..
026B30: 20 20 20 20 20 20 66 69 65 6C 64 73 20 77 69 6C fields wil
026B40: 6C 20 61 6C 6C 20 62 65 20 73 65 74 20 74 6F 20 l all be set to
026B50: 7A 65 72 6F 20 69 66 20 74 68 65 79 20 61 72 65 zero if they are
026B60: 20 6E 6F 74 20 75 73 65 64 2E 0D 0A 0D 0A 20 20 not used.....
026B70: 20 20 20 20 20 20 20 20 20 20 54 68 65 20 68 65 The he
026B80: 61 64 65 72 20 69 73 20 6C 61 69 64 20 6F 75 74 ader is laid out
026B90: 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A as follows:....
026BA0: 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 Syst
026BB0: 65 6D 20 66 69 65 6C 64 73 0D 0A 0D 0A 20 20 20 em fields....
026BC0: 20 20 20 20 20 20 20 20 20 42 79 74 65 73 20 30 Bytes 0
026BD0: 2E 2E 31 35 20 20 20 46 69 6C 65 6E 61 6D 65 20 ..15 Filename
026BE0: 20 20 20 20 20 20 50 61 64 64 65 64 20 74 6F 20 Padded to
026BF0: 31 36 20 62 79 74 65 73 20 77 69 74 68 20 6E 75 16 bytes with nu
026C00: 6C 6C 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 lls.....
026C10: 20 20 20 20 42 79 74 65 20 31 36 20 20 20 20 20 Byte 16
026C20: 20 20 42 6C 6F 63 6B 20 6E 75 6D 62 65 72 20 20 Block number
026C30: 20 54 68 65 20 66 69 72 73 74 20 62 6C 6F 63 6B The first block
026C40: 20 69 73 20 6E 6F 72 6D 61 6C 6C 79 20 62 6C 6F is normally blo
026C50: 63 6B 20 20 31 0D 0A 20 20 20 20 20 20 20 20 20 ck 1..
026C60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026C70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026C80: 61 6E 64 20 62 6C 6F 63 6B 20 6E 75 6D 62 65 72 and block number
026C90: 73 20 69 6E 63 72 65 61 73 65 20 62 79 20 20 31 s increase by 1
026CA0: 20 20 6F 6E 0D 0A 20 20 20 20 20 20 20 20 20 20 on..
026CB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026CC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
026CD0: 75 63 63 65 73 73 69 76 65 20 62 6C 6F 63 6B 73 uccessive blocks
026CE0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
026CF0: 20 42 79 74 65 20 31 37 20 20 20 20 20 20 20 4C Byte 17 L
026D00: 61 73 74 20 62 6C 6F 63 6B 20 20 20 20 20 41 20 ast block A
026D10: 6E 6F 6E 2D 7A 65 72 6F 20 76 61 6C 75 65 20 6D non-zero value m
026D20: 65 61 6E 73 20 74 68 61 74 20 74 68 69 73 20 20 eans that this
026D30: 69 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 is..
026D40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026D50: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 the
026D60: 20 6C 61 73 74 20 62 6C 6F 63 6B 20 6F 66 20 61 last block of a
026D70: 20 66 69 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 file.....
026D80: 20 20 20 20 20 20 42 79 74 65 20 31 38 20 20 20 Byte 18
026D90: 20 20 20 20 46 69 6C 65 20 74 79 70 65 20 20 20 File type
026DA0: 20 20 20 41 20 76 61 6C 75 65 20 72 65 63 6F 72 A value recor
026DB0: 64 69 6E 67 20 74 68 65 20 20 74 79 70 65 20 20 ding the type
026DC0: 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 of the..
026DD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026DE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026DF0: 20 20 66 69 6C 65 20 28 73 65 65 20 62 65 6C 6F file (see belo
026E00: 77 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 w).....
026E10: 20 20 20 42 79 74 65 73 20 31 39 2E 2E 32 30 20 Bytes 19..20
026E20: 20 44 61 74 61 20 6C 65 6E 67 74 68 20 20 20 20 Data length
026E30: 54 68 65 20 20 6E 75 6D 62 65 72 20 20 6F 66 20 The number of
026E40: 20 64 61 74 61 20 20 62 79 74 65 73 20 20 69 6E data bytes in
026E50: 20 20 20 61 0D 0A 20 20 20 20 20 20 20 20 20 20 a..
026E60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026E70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 r
026E80: 65 63 6F 72 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 ecord.....
026E90: 20 20 20 20 20 20 42 79 74 65 73 20 32 31 2E 2E Bytes 21..
026EA0: 32 32 20 20 44 61 74 61 20 6C 6F 63 61 74 69 6F 22 Data locatio
026EB0: 6E 20 20 57 68 65 72 65 20 20 20 74 68 65 20 20 n Where the
026EC0: 20 64 61 74 61 20 20 20 20 77 61 73 20 20 20 20 data was
026ED0: 77 72 69 74 74 65 6E 0D 0A 20 20 20 20 20 20 20 written..
026EE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026EF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026F00: 20 20 6F 72 69 67 69 6E 61 6C 6C 79 2E 0D 0A 20 originally...
026F10: 20 20 20 20 20 20 20 20 20 20 20 42 79 74 65 20 Byte
026F20: 32 33 20 20 20 20 20 20 20 46 69 72 73 74 20 62 23 First b
026F30: 6C 6F 63 6B 20 20 20 20 41 20 6E 6F 6E 2D 7A 65 lock A non-ze
026F40: 72 6F 20 76 61 6C 75 65 20 6D 65 61 6E 73 20 74 ro value means t
026F50: 68 61 74 20 74 68 69 73 20 20 69 73 0D 0A 20 20 hat this is..
026F60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026F70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026F80: 20 20 20 20 20 20 20 74 68 65 20 66 69 72 73 74 the first
026F90: 20 62 6C 6F 63 6B 20 6F 66 20 61 20 66 69 6C 65 block of a file
026FA0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
026FB0: 20 55 73 65 72 20 66 69 65 6C 64 73 0D 0A 0D 0A User fields....
026FC0: 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 65 Byte
026FD0: 73 20 32 34 2E 2E 32 35 20 20 4C 6F 67 69 63 61 s 24..25 Logica
026FE0: 6C 20 6C 65 6E 67 74 68 20 54 68 69 73 20 69 73 l length This is
026FF0: 20 74 68 65 20 74 6F 74 61 6C 20 6C 65 6E 67 74 the total lengt
027000: 68 20 6F 66 20 74 68 65 20 66 69 6C 65 0D 0A 20 h of the file..
027010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027030: 20 20 20 20 20 20 20 20 69 6E 20 62 79 74 65 73 in bytes
027040: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
027050: 20 42 79 74 65 73 20 32 36 2E 2E 32 37 20 20 45 Bytes 26..27 E
027060: 6E 74 72 79 20 61 64 64 72 65 73 73 20 20 54 68 ntry address Th
027070: 65 20 65 78 65 63 75 74 69 6F 6E 20 20 61 64 64 e execution add
027080: 72 65 73 73 20 20 66 6F 72 20 20 6D 61 63 68 69 ress for machi
027090: 6E 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ne..
0270A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0270B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6F 64 cod
0270C0: 65 20 70 72 6F 67 72 61 6D 73 2E 0D 0A 0D 0A 20 e programs.....
0270D0: 20 20 20 20 20 20 20 20 20 20 20 42 79 74 65 73 Bytes
0270E0: 20 32 38 2E 2E 36 33 20 20 55 6E 61 6C 6C 6F 63 28..63 Unalloc
0270F0: 61 74 65 64 20 20 20 20 54 68 65 73 65 20 61 72 ated These ar
027100: 65 20 20 75 6E 61 6C 6C 6F 63 61 74 65 64 20 20 e unallocated
027110: 61 6E 64 20 20 6D 61 79 20 20 62 65 0D 0A 20 20 and may be..
027120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027140: 20 20 20 20 20 20 20 75 73 65 64 20 61 73 20 72 used as r
027150: 65 71 75 69 72 65 64 2E 0D 0A 0D 0A 20 20 20 20 equired.....
027160: 20 20 20 20 20 20 20 20 54 68 65 20 66 69 6C 65 The file
027170: 20 74 79 70 65 20 28 62 79 74 65 20 31 38 29 20 type (byte 18)
027180: 69 73 20 73 70 6C 69 74 20 69 6E 74 6F 20 61 20 is split into a
027190: 6E 75 6D 62 65 72 20 6F 66 20 66 69 65 6C 64 73 number of fields
0271A0: 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 42 :.. B
0271B0: 69 74 20 30 20 20 20 20 20 20 20 20 20 50 72 6F it 0 Pro
0271C0: 74 65 63 74 69 6F 6E 20 20 20 20 20 49 66 20 74 tection If t
0271D0: 68 69 73 20 20 62 69 74 20 20 69 73 20 20 73 65 his bit is se
0271E0: 74 20 20 74 68 65 20 20 66 69 6C 65 20 20 69 73 t the file is
0271F0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
027200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027210: 20 20 20 20 20 20 20 20 20 20 20 70 72 6F 74 65 prote
027220: 63 74 65 64 20 69 6E 20 73 6F 6D 65 20 77 61 79 cted in some way
027230: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
027240: 20 42 69 74 73 20 31 2E 2E 33 20 20 20 20 20 46 Bits 1..3 F
027250: 69 6C 65 20 63 6F 6E 74 65 6E 74 73 20 20 30 20 ile contents 0
027260: 3D 20 49 6E 74 65 72 6E 61 6C 20 42 41 53 49 43 = Internal BASIC
027270: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
027280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027290: 20 20 20 20 20 20 20 20 20 20 20 20 31 20 3D 20 1 =
0272A0: 42 69 6E 61 72 79 2E 0D 0A 20 20 20 20 20 20 20 Binary...
0272B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0272C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0272D0: 20 20 32 20 3D 20 53 63 72 65 65 6E 20 69 6D 61 2 = Screen ima
0272E0: 67 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ge...
0272F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 33 20 3
027310: 3D 20 41 53 43 49 49 0D 0A 20 20 20 20 20 20 20 = ASCII..
027320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027330: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027340: 20 20 34 2E 2E 37 20 61 72 65 20 75 6E 61 6C 6C 4..7 are unall
027350: 6F 63 61 74 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 ocated.....
027360: 20 20 20 20 20 20 20 42 69 74 73 20 34 2E 2E 37 Bits 4..7
027370: 20 20 20 20 20 56 65 72 73 69 6F 6E 20 20 20 20 Version
027380: 20 20 20 20 41 53 43 49 49 20 66 69 6C 65 73 20 ASCII files
027390: 73 68 6F 75 6C 64 20 62 65 20 76 65 72 73 69 6F should be versio
0273A0: 6E 20 31 2C 20 61 6C 6C 0D 0A 20 20 20 20 20 20 n 1, all..
0273B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0273C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0273D0: 20 20 20 6F 74 68 65 72 20 66 69 6C 65 73 20 73 other files s
0273E0: 68 6F 75 6C 64 20 62 65 20 76 65 72 73 69 6F 6E hould be version
0273F0: 20 30 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 0..... AM
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: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
027510: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
027520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027530: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
027540: 20 38 2E 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 8.4............
027550: 0D 0A 20 20 20 20 20 20 20 38 2E 35 20 52 65 61 .. 8.5 Rea
027560: 64 20 61 6E 64 20 57 72 69 74 65 20 53 70 65 65 d and Write Spee
027570: 64 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ds..... Th
027580: 65 20 43 61 73 73 65 74 74 65 20 4D 61 6E 61 67 e Cassette Manag
027590: 65 72 20 69 73 20 63 61 70 61 62 6C 65 20 6F 66 er is capable of
0275A0: 20 72 65 61 64 69 6E 67 20 61 6E 64 20 77 72 69 reading and wri
0275B0: 74 69 6E 67 20 64 61 74 65 20 61 74 20 20 73 70 ting date at sp
0275C0: 65 65 64 73 0D 0A 20 20 20 20 20 20 20 72 61 6E eeds.. ran
0275D0: 67 69 6E 67 20 66 72 6F 6D 20 37 30 30 20 62 61 ging from 700 ba
0275E0: 75 64 20 74 6F 20 32 35 30 30 20 62 61 75 64 2E ud to 2500 baud.
0275F0: 20 54 68 65 72 65 20 61 72 65 20 74 77 6F 20 73 There are two s
027600: 70 65 65 64 73 20 63 6F 6D 6D 6F 6E 6C 79 20 75 peeds commonly u
027610: 73 65 64 0D 0A 20 20 20 20 20 20 20 69 6E 20 74 sed.. in t
027620: 68 69 73 20 72 61 6E 67 65 2C 20 31 30 30 30 20 his range, 1000
027630: 62 61 75 64 20 28 74 68 65 20 64 65 66 61 75 6C baud (the defaul
027640: 74 20 73 70 65 65 64 20 73 65 6C 65 63 74 65 64 t speed selected
027650: 20 61 74 20 45 4D 53 29 20 61 6E 64 20 20 32 30 at EMS) and 20
027660: 30 30 0D 0A 20 20 20 20 20 20 20 62 61 75 64 2E 00.. baud.
027670: 20 54 68 65 20 64 65 66 61 75 6C 74 20 73 70 65 The default spe
027680: 65 64 20 69 73 20 63 68 6F 73 65 6E 20 74 6F 20 ed is chosen to
027690: 65 20 6E 65 61 72 20 74 68 65 20 73 6C 6F 77 65 e near the slowe
0276A0: 73 74 20 73 70 65 65 64 20 74 6F 20 20 67 69 76 st speed to giv
0276B0: 65 0D 0A 20 20 20 20 20 20 20 6D 61 78 69 6D 75 e.. maximu
0276C0: 6D 20 72 65 6C 69 61 62 69 6C 69 74 79 2E 20 54 m reliability. T
0276D0: 68 65 20 72 65 6C 69 61 62 69 6C 69 74 79 20 20 he reliability
0276E0: 61 74 20 20 32 30 30 30 20 20 62 61 75 64 20 20 at 2000 baud
0276F0: 69 73 20 20 73 74 69 6C 6C 20 20 67 6F 6F 64 2C is still good,
027700: 0D 0A 20 20 20 20 20 20 20 68 6F 77 65 76 65 72 .. however
027710: 2C 20 70 61 72 74 69 63 75 6C 61 72 6C 79 20 77 , particularly w
027720: 68 65 6E 20 70 6C 61 79 69 6E 67 20 62 61 63 6B hen playing back
027730: 20 6F 6E 20 74 68 65 20 73 61 6D 65 20 6D 61 63 on the same mac
027740: 68 69 6E 65 20 20 74 68 61 74 20 20 77 61 73 0D hine that was.
027750: 0A 20 20 20 20 20 20 20 75 73 65 64 20 74 6F 20 . used to
027760: 72 65 63 6F 72 64 20 61 20 74 61 70 65 2E 0D 0A record a tape...
027770: 0D 0A 0D 0A 20 20 20 20 20 20 20 42 69 74 73 20 .... Bits
027780: 61 72 65 20 77 72 69 74 74 65 6E 20 74 6F 20 74 are written to t
027790: 68 65 20 74 61 70 65 20 61 73 20 61 20 73 69 6E he tape as a sin
0277A0: 67 6C 65 20 63 79 63 6C 65 20 6F 66 20 61 20 74 gle cycle of a t
0277B0: 6F 6E 65 2E 20 54 68 65 20 74 6F 6E 65 20 66 6F one. The tone fo
0277C0: 72 0D 0A 20 20 20 20 20 20 20 61 20 6F 6E 65 20 r.. a one
0277D0: 61 6C 77 61 79 73 20 68 61 73 20 68 61 6C 66 20 always has half
0277E0: 74 68 65 20 66 72 65 71 75 65 6E 63 79 20 6F 66 the frequency of
0277F0: 20 74 68 65 20 74 6F 6E 65 20 66 6F 72 20 61 20 the tone for a
027800: 7A 65 72 6F 2E 20 54 68 75 73 20 20 6F 6E 65 73 zero. Thus ones
027810: 0D 0A 20 20 20 20 20 20 20 61 72 65 20 74 77 69 .. are twi
027820: 63 65 20 61 73 20 6C 6F 6E 67 20 61 73 20 7A 65 ce as long as ze
027830: 72 6F 73 20 6F 6E 20 74 68 65 20 74 61 70 65 2E ros on the tape.
027840: 20 54 68 69 73 20 6D 65 61 6E 73 20 74 68 61 74 This means that
027850: 20 74 68 65 20 62 61 75 64 20 72 61 74 65 73 0D the baud rates.
027860: 0A 20 20 20 20 20 20 20 67 69 76 65 6E 20 61 62 . given ab
027870: 6F 76 65 20 61 72 65 20 6F 6E 6C 79 20 61 76 65 ove are only ave
027880: 72 61 67 65 73 20 61 6E 64 20 76 61 72 79 20 61 rages and vary a
027890: 63 63 6F 72 64 69 6E 67 20 74 6F 20 20 74 68 65 ccording to the
0278A0: 20 20 61 63 74 75 61 6C 20 20 64 61 74 61 0D 0A actual data..
0278B0: 20 20 20 20 20 20 20 77 72 69 74 74 65 6E 2E 0D written..
0278C0: 0A 0D 0A 20 20 20 20 20 20 20 45 76 65 6E 20 77 ... Even w
0278D0: 69 74 68 20 74 68 65 20 62 75 69 6C 74 20 69 6E ith the built in
0278E0: 20 63 61 73 73 65 74 74 65 20 6D 65 63 68 61 6E cassette mechan
0278F0: 69 73 6D 20 74 68 65 20 43 61 73 73 65 74 74 65 ism the Cassette
027900: 20 4D 61 6E 61 67 65 72 20 68 61 73 20 20 74 6F Manager has to
027910: 0D 0A 20 20 20 20 20 20 20 70 72 65 63 6F 6D 70 .. precomp
027920: 65 6E 73 61 74 65 20 74 68 65 20 77 61 76 65 66 ensate the wavef
027930: 6F 72 6D 20 77 72 69 74 74 65 6E 20 74 6F 20 74 orm written to t
027940: 68 65 20 74 61 70 65 20 74 6F 20 61 63 68 69 65 he tape to achie
027950: 76 65 20 20 74 68 65 20 20 73 70 65 65 64 73 0D ve the speeds.
027960: 0A 20 20 20 20 20 20 20 71 75 6F 74 65 64 2E 20 . quoted.
027970: 54 68 69 73 20 6D 65 61 6E 73 20 74 68 61 74 20 This means that
027980: 74 68 65 20 6C 65 6E 67 74 68 73 20 6F 66 20 62 the lengths of b
027990: 69 74 73 20 77 72 69 74 74 65 6E 20 61 72 65 20 its written are
0279A0: 61 6C 74 65 72 65 64 20 20 28 6F 6E 65 73 0D 0A altered (ones..
0279B0: 20 20 20 20 20 20 20 6C 65 6E 67 74 68 65 6E 65 lengthene
0279C0: 64 2C 20 7A 65 72 6F 73 20 73 68 6F 72 74 65 6E d, zeros shorten
0279D0: 65 64 29 20 74 6F 20 74 72 79 20 74 6F 20 6D 61 ed) to try to ma
0279E0: 6B 65 20 61 20 77 61 76 65 66 6F 72 6D 20 72 65 ke a waveform re
0279F0: 61 64 20 63 6C 6F 73 65 72 20 20 74 6F 0D 0A 20 ad closer to..
027A00: 20 20 20 20 20 20 74 68 65 20 69 64 65 61 6C 20 the ideal
027A10: 61 66 74 65 72 20 74 68 65 20 65 64 67 65 73 20 after the edges
027A20: 6F 66 20 74 68 65 20 77 61 76 65 66 6F 72 6D 20 of the waveform
027A30: 68 61 76 65 20 20 62 65 65 6E 20 20 73 68 69 66 have been shif
027A40: 74 65 64 20 20 62 79 20 20 74 68 65 0D 0A 20 20 ted by the..
027A50: 20 20 20 20 20 63 61 73 73 65 74 74 65 20 63 69 cassette ci
027A60: 72 63 75 69 74 72 79 2E 0D 0A 0D 0A 20 20 20 20 rcuitry.....
027A70: 20 20 20 49 74 20 69 73 20 6F 6E 6C 79 20 6E 65 It is only ne
027A80: 63 65 73 73 61 72 79 20 74 6F 20 73 65 74 20 74 cessary to set t
027A90: 68 65 20 43 61 73 73 65 74 74 65 20 4D 61 6E 61 he Cassette Mana
027AA0: 67 65 72 27 73 20 77 72 69 74 65 20 20 73 70 65 ger's write spe
027AB0: 65 64 2E 20 20 57 68 65 6E 0D 0A 20 20 20 20 20 ed. When..
027AC0: 20 20 72 65 63 6F 72 64 69 6E 67 20 61 20 72 65 recording a re
027AD0: 63 6F 72 64 20 66 72 6F 6D 20 74 61 70 65 20 74 cord from tape t
027AE0: 68 65 20 72 65 63 6F 72 64 20 6C 65 61 64 65 72 he record leader
027AF0: 20 69 73 20 20 75 73 65 64 20 20 74 6F 20 20 63 is used to c
027B00: 61 6C 63 75 6C 61 74 65 0D 0A 20 20 20 20 20 20 alculate..
027B10: 20 74 68 65 20 73 70 65 65 64 20 61 74 20 77 68 the speed at wh
027B20: 69 63 68 20 69 74 20 77 61 73 20 77 72 69 74 74 ich it was writt
027B30: 65 6E 2E 20 54 68 69 73 20 61 6C 73 6F 20 20 61 en. This also a
027B40: 6C 6C 6F 77 73 20 20 74 68 65 20 20 74 61 70 65 llows the tape
027B50: 20 20 73 70 65 65 64 0D 0A 20 20 20 20 20 20 20 speed..
027B60: 76 61 72 69 61 74 69 6F 6E 73 20 62 65 74 77 65 variations betwe
027B70: 65 6E 20 64 69 66 66 65 72 65 6E 74 20 6D 61 63 en different mac
027B80: 68 69 6E 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 hines.....
027B90: 20 38 2E 36 20 43 61 74 61 6C 6F 67 75 69 6E 67 8.6 Cataloguing
027BA0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 6F 20 67 ..... To g
027BB0: 65 6E 65 72 61 74 65 20 61 20 63 61 74 61 6C 6F enerate a catalo
027BC0: 67 75 65 20 66 72 6F 6D 20 74 68 65 20 74 61 70 gue from the tap
027BD0: 65 20 74 68 65 20 20 43 61 73 73 65 74 74 65 20 e the Cassette
027BE0: 20 4D 61 6E 61 67 65 72 20 20 72 65 61 64 73 20 Manager reads
027BF0: 20 61 0D 0A 20 20 20 20 20 20 20 73 65 71 75 65 a.. seque
027C00: 6E 63 65 20 6F 66 20 66 69 6C 65 20 62 6C 6F 63 nce of file bloc
027C10: 6B 73 20 61 6E 64 20 70 72 69 6E 74 73 20 69 6E ks and prints in
027C20: 66 6F 72 6D 61 74 69 6F 6E 20 20 66 72 6F 6D 20 formation from
027C30: 20 74 68 65 6D 2E 20 20 54 68 65 20 20 66 69 6C them. The fil
027C40: 65 0D 0A 20 20 20 20 20 20 20 62 6C 6F 63 6B 73 e.. blocks
027C50: 20 6D 61 79 20 63 6F 6D 65 20 66 72 6F 6D 20 61 may come from a
027C60: 6E 79 20 66 69 6C 65 2C 20 69 6E 20 20 61 6E 79 ny file, in any
027C70: 20 20 6F 72 64 65 72 2E 20 20 43 61 74 61 6C 6F order. Catalo
027C80: 67 75 69 6E 67 20 20 63 6F 6E 74 69 6E 75 65 73 guing continues
027C90: 0D 0A 20 20 20 20 20 20 20 75 6E 74 69 6C 20 74 .. until t
027CA0: 68 65 20 75 73 65 72 20 68 69 74 73 20 74 68 65 he user hits the
027CB0: 20 65 73 63 61 70 65 20 6B 65 79 2E 0D 0A 0D 0A escape key.....
027CC0: 20 20 20 20 20 20 20 54 68 65 20 69 6E 66 6F 72 The infor
027CD0: 6D 61 74 69 6F 6E 20 69 73 20 72 65 70 6F 72 74 mation is report
027CE0: 65 64 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A ed as follows:..
027CF0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
027D00: 20 20 20 20 20 20 20 20 20 20 20 20 46 49 4C 45 FILE
027D10: 4E 41 4D 45 20 20 20 20 20 20 62 6C 6F 63 6B 20 NAME block
027D20: 20 20 4E 20 20 4C 20 20 4F 6B 0D 0A 0D 0A 20 20 N L Ok....
027D30: 20 20 20 20 20 46 49 4C 45 4E 41 4D 45 20 69 73 FILENAME is
027D40: 20 65 69 74 68 65 72 20 74 68 65 20 6E 61 6D 65 either the name
027D50: 20 6F 66 20 74 68 65 20 20 66 69 6C 65 20 20 6F of the file o
027D60: 66 20 20 27 55 6E 6E 61 6D 65 64 20 20 66 69 6C f 'Unnamed fil
027D70: 65 27 20 20 69 66 20 20 74 68 65 0D 0A 20 20 20 e' if the..
027D80: 20 20 20 20 66 69 6C 65 6E 61 6D 65 20 73 74 61 filename sta
027D90: 72 74 73 20 77 69 74 68 20 61 20 6E 75 6C 6C 2E rts with a null.
027DA0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 62 .... The b
027DB0: 6C 6F 63 6B 20 6E 75 6D 62 65 72 2C 20 4E 2C 20 lock number, N,
027DC0: 69 6E 64 69 63 61 74 65 73 20 77 68 69 63 68 20 indicates which
027DD0: 62 6C 6F 63 6B 20 6F 66 20 74 68 65 20 66 69 6C block of the fil
027DE0: 65 20 69 74 20 69 73 2E 20 4E 6F 72 6D 61 6C 6C e it is. Normall
027DF0: 79 0D 0A 20 20 20 20 20 20 20 62 6C 6F 63 6B 20 y.. block
027E00: 31 20 69 73 20 74 68 65 20 66 69 72 73 74 20 62 1 is the first b
027E10: 6C 6F 63 6B 20 6F 66 20 74 68 65 20 66 69 6C 65 lock of the file
027E20: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4C 20 ....... L
027E30: 69 73 20 74 68 65 20 63 68 61 72 61 63 74 65 72 is the character
027E40: 20 72 65 70 72 65 73 65 6E 74 69 6E 67 20 74 68 representing th
027E50: 65 20 66 69 6C 65 20 74 79 70 65 20 61 6E 64 20 e file type and
027E60: 70 72 6F 74 65 63 74 69 6F 6E 20 73 74 61 74 75 protection statu
027E70: 73 20 6F 66 0D 0A 20 20 20 20 20 20 20 74 68 65 s of.. the
027E80: 20 66 69 6C 65 2E 20 49 74 20 69 73 20 66 6F 72 file. It is for
027E90: 6D 65 64 20 62 79 20 61 64 64 69 6E 67 20 23 32 med by adding #2
027EA0: 34 20 28 63 68 61 72 61 63 74 65 72 20 27 24 27 4 (character '$'
027EB0: 29 20 74 6F 20 74 68 65 20 66 69 6C 65 20 20 74 ) to the file t
027EC0: 79 70 65 0D 0A 20 20 20 20 20 20 20 66 72 6F 6D ype.. from
027ED0: 20 74 68 65 20 68 65 61 64 65 72 20 6D 61 73 6B the header mask
027EE0: 65 64 20 77 69 74 68 20 23 30 46 2E 20 54 68 69 ed with #0F. Thi
027EF0: 73 20 67 69 76 65 73 20 74 68 65 20 66 6F 6C 6C s gives the foll
027F00: 6F 77 69 6E 67 20 63 68 61 72 61 63 74 65 72 73 owing characters
027F10: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 :......
027F20: 20 20 20 20 20 20 20 24 20 20 20 20 20 20 20 20 $
027F30: 20 61 6E 20 75 6E 70 72 6F 74 65 63 74 65 64 20 an unprotected
027F40: 42 41 53 49 43 20 70 72 6F 67 72 61 6D 2E 0D 0A BASIC program...
027F50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027F60: 25 20 20 20 20 20 20 20 20 20 61 20 70 72 6F 74 % a prot
027F70: 65 63 74 65 64 20 42 41 53 49 43 20 70 72 6F 67 ected BASIC prog
027F80: 72 61 6D 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 ram...
027F90: 20 20 20 20 20 20 26 20 20 20 20 20 20 20 20 20 &
027FA0: 61 20 62 69 6E 61 72 79 20 66 69 6C 65 2E 0D 0A a binary file...
027FB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027FC0: 27 20 20 20 20 20 20 20 20 20 61 20 70 72 6F 74 ' a prot
027FD0: 65 63 74 65 64 20 62 69 6E 61 72 79 20 66 69 6C ected binary fil
027FE0: 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 e..
027FF0: 20 20 20 2A 20 20 20 20 20 20 20 20 20 61 6E 20 * an
028000: 41 53 43 49 49 20 66 69 6C 65 2E 0D 0A 0D 0A 0D ASCII file......
028010: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
028020: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
028030: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
028040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028050: 20 20 20 20 20 20 70 61 67 65 20 38 2E 35 0D 0A page 8.5..
028060: 1A 20 61 6E 64 20 20 77 72 69 74 69 6E 67 20 20 . and writing
028070: 66 69 6C 65 73 0D 0A 20 20 20 20 20 20 20 74 6F files.. to
028080: 20 66 69 6C 65 2E 20 49 74 20 69 73 20 66 6F 72 file. It is for
028090: 6D 65 64 20 62 79 20 61 64 64 69 6E 67 20 23 32 med by adding #2
0280A0: 34 20 28 63 68 61 72 61 63 74 65 72 20 27 24 27 4 (character '$'
0280B0: 29 20 74 6F 20 74 68 65 20 66 69 6C 65 20 20 74 ) to the file t
0280C0: 79 70 65 0D 0A 20 20 20 20 20 20 20 66 72 6F 6D ype.. from
0280D0: 20 74 68 65 20 68 65 61 64 65 72 20 6D 61 73 6B the header mask
0280E0: 65 64 20 77 69 74 68 20 23 30 46 2E 20 54 68 69 ed with #0F. Thi
0280F0: 73 20 67 69 76 65 73 20 74 68 65 20 66 6F 6C 6C s gives the foll
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 0D 0A 0D 0A 20 20 20 20 ............
028310: 20 20 20 4F 74 68 65 72 20 63 68 61 72 61 63 74 Other charact
028320: 65 72 73 20 61 72 65 20 70 6F 73 73 69 62 6C 65 ers are possible
028330: 20 62 75 74 20 74 68 65 20 20 61 62 6F 76 65 20 but the above
028340: 20 61 72 65 20 20 74 68 65 20 20 73 74 61 6E 64 are the stand
028350: 61 72 64 20 20 66 69 6C 65 0D 0A 20 20 20 20 20 ard file..
028360: 20 20 74 79 70 65 73 20 74 68 61 74 20 61 72 65 types that are
028370: 20 77 72 69 74 74 65 6E 20 62 79 20 74 68 65 20 written by the
028380: 6F 6E 20 62 6F 61 72 64 20 52 4F 4D 2E 0D 0A 0D on board ROM....
028390: 0A 20 20 20 20 20 20 20 54 68 65 20 61 62 6F 76 . The abov
0283A0: 65 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 69 73 e information is
0283B0: 20 20 70 72 69 6E 74 65 64 20 20 77 68 65 6E 20 printed when
0283C0: 20 74 68 65 20 20 68 65 61 64 65 72 20 20 72 65 the header re
0283D0: 63 6F 72 64 20 20 69 73 20 20 72 65 61 64 0D 0A cord is read..
0283E0: 20 20 20 20 20 20 20 63 6F 72 72 65 63 74 6C 79 correctly
0283F0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4F 6B 20 69 ..... Ok i
028400: 73 20 70 72 69 6E 74 65 64 20 61 66 74 65 72 20 s printed after
028410: 74 68 65 20 64 61 74 61 20 72 65 63 6F 72 64 20 the data record
028420: 68 61 73 20 62 65 65 6E 20 72 65 61 64 20 63 6F has been read co
028430: 72 72 65 63 74 6C 79 2E 0D 0A 0D 0A 20 20 20 20 rrectly.....
028440: 20 20 20 38 2E 37 20 52 65 61 64 69 6E 67 20 46 8.7 Reading F
028450: 69 6C 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 iles.....
028460: 42 65 66 6F 72 65 20 61 20 66 69 6C 65 20 63 61 Before a file ca
028470: 6E 20 62 65 20 72 65 61 64 20 66 72 6F 6D 20 69 n be read from i
028480: 74 20 6D 75 73 74 20 62 65 20 6F 70 65 6E 65 64 t must be opened
028490: 20 28 62 79 20 20 63 61 6C 6C 69 6E 67 20 20 43 (by calling C
0284A0: 41 53 20 20 49 4E 0D 0A 20 20 20 20 20 20 20 4F AS IN.. O
0284B0: 50 45 4E 29 2E 20 54 68 69 73 20 73 65 74 73 20 PEN). This sets
0284C0: 75 70 20 74 68 65 20 66 69 6C 65 6E 61 6D 65 20 up the filename
0284D0: 28 73 65 65 20 38 2E 31 30 20 62 65 6C 6F 77 29 (see 8.10 below)
0284E0: 20 61 6E 64 20 72 65 61 64 73 20 74 68 65 20 20 and reads the
0284F0: 66 69 72 73 74 0D 0A 20 20 20 20 20 20 20 62 6C first.. bl
028500: 6F 63 6B 20 6F 66 20 74 68 65 20 66 69 6C 65 20 ock of the file
028510: 73 6F 20 74 68 61 74 20 74 68 65 20 68 65 61 64 so that the head
028520: 65 72 20 63 61 6E 20 62 65 20 69 6E 73 70 65 63 er can be inspec
028530: 74 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ted..... T
028540: 68 65 20 66 69 6C 65 20 6D 61 79 20 65 69 74 68 he file may eith
028550: 65 72 20 62 65 20 6F 70 65 6E 65 64 20 66 6F 72 er be opened for
028560: 20 63 68 61 72 61 63 74 65 72 20 69 6E 70 75 74 character input
028570: 20 6F 72 20 66 6F 72 20 64 69 72 65 63 74 20 69 or for direct i
028580: 6E 70 75 74 2C 0D 0A 20 20 20 20 20 20 20 62 75 nput,.. bu
028590: 74 20 6E 6F 74 20 62 6F 74 68 2E 20 54 68 65 20 t not both. The
0285A0: 6D 6F 64 65 20 6F 66 20 69 6E 70 75 74 20 69 73 mode of input is
0285B0: 20 73 65 74 20 62 79 20 74 68 65 20 66 69 72 73 set by the firs
0285C0: 74 20 61 63 63 65 73 73 20 74 6F 20 74 68 65 20 t access to the
0285D0: 66 69 6C 65 0D 0A 20 20 20 20 20 20 20 61 6E 64 file.. and
0285E0: 20 6E 6F 74 20 77 68 65 6E 20 69 74 20 69 73 20 not when it is
0285F0: 6F 70 65 6E 65 64 2E 20 41 73 20 73 6F 6F 6E 20 opened. As soon
028600: 61 73 20 6F 6E 65 20 6D 6F 64 65 20 69 73 20 73 as one mode is s
028610: 65 6C 65 63 74 65 64 20 69 74 20 20 62 65 63 6F elected it beco
028620: 6D 65 73 0D 0A 20 20 20 20 20 20 20 69 6D 70 6F mes.. impo
028630: 73 73 69 62 6C 65 20 74 6F 20 75 73 65 20 74 68 ssible to use th
028640: 65 20 6F 74 68 65 72 20 6D 6F 64 65 20 74 6F 20 e other mode to
028650: 61 63 63 65 73 73 20 74 68 65 20 66 69 6C 65 2E access the file.
028660: 0D 0A 0D 0A 20 20 20 20 20 20 20 43 68 61 72 61 .... Chara
028670: 63 74 65 72 20 69 6E 70 75 74 20 28 63 61 6C 6C cter input (call
028680: 69 6E 67 20 43 41 53 20 49 4E 20 43 48 41 52 29 ing CAS IN CHAR)
028690: 20 61 6C 6C 6F 77 73 20 74 68 65 20 75 73 65 72 allows the user
0286A0: 20 74 6F 20 72 65 61 64 20 74 68 65 20 66 69 6C to read the fil
0286B0: 65 0D 0A 20 20 20 20 20 20 20 73 65 71 75 65 6E e.. sequen
0286C0: 74 69 61 6C 6C 79 20 6F 6E 65 20 63 68 61 72 61 tially one chara
0286D0: 63 74 65 72 20 61 74 20 61 20 74 69 6D 65 2E 20 cter at a time.
0286E0: 42 6C 6F 63 6B 73 20 6F 66 20 74 68 65 20 66 69 Blocks of the fi
0286F0: 6C 65 20 61 72 65 20 72 65 61 64 20 66 72 6F 6D le are read from
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: 0D 0A 20 20 20 20 20 20 20 74 61 70 65 20 69 6E .. tape in
028810: 74 6F 20 74 68 65 20 62 75 66 66 65 72 20 61 73 to the buffer as
028820: 20 6E 65 65 64 65 64 2E 20 54 68 69 73 20 20 69 needed. This i
028830: 73 20 20 69 6E 74 65 6E 64 65 64 20 20 66 6F 72 s intended for
028840: 20 20 72 65 61 64 69 6E 67 20 20 74 65 78 74 0D reading text.
028850: 0A 20 20 20 20 20 20 20 66 69 6C 65 73 20 61 6E . files an
028860: 64 20 73 69 6D 69 6C 61 72 20 61 70 70 6C 69 63 d similar applic
028870: 61 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 ations.....
028880: 20 20 44 69 72 65 63 74 20 69 6E 70 75 74 20 28 Direct input (
028890: 63 61 6C 6C 69 6E 67 20 43 41 53 20 49 4E 20 44 calling CAS IN D
0288A0: 49 52 45 43 54 29 20 72 65 61 64 73 20 74 68 65 IRECT) reads the
0288B0: 20 77 68 6F 6C 65 20 66 69 6C 65 20 69 6E 74 6F whole file into
0288C0: 20 20 6D 65 6D 6F 72 79 0D 0A 20 20 20 20 20 20 memory..
0288D0: 20 69 6E 20 6F 6E 65 20 67 6F 2E 20 54 68 69 73 in one go. This
0288E0: 20 69 73 20 69 6E 74 65 6E 64 65 64 20 20 66 6F is intended fo
0288F0: 72 20 20 6C 6F 61 64 69 6E 67 20 20 6D 61 63 68 r loading mach
028900: 69 6E 65 20 20 63 6F 64 65 20 20 70 72 6F 67 72 ine code progr
028910: 61 6D 73 20 20 6F 72 0D 0A 20 20 20 20 20 20 20 ams or..
028920: 73 63 72 65 65 6E 20 64 75 6D 70 73 20 61 6E 64 screen dumps and
028930: 20 73 69 6D 69 6C 61 72 20 61 70 70 6C 69 63 61 similar applica
028940: 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 tions.....
028950: 20 49 6E 74 65 72 72 75 70 74 73 20 61 72 65 20 Interrupts are
028960: 64 69 73 61 62 6C 65 64 20 77 68 69 6C 73 74 20 disabled whilst
028970: 72 65 61 64 69 6E 67 20 20 66 72 6F 6D 20 20 74 reading from t
028980: 61 70 65 20 20 62 65 63 61 75 73 65 20 20 74 68 ape because th
028990: 69 73 20 20 68 61 73 0D 0A 20 20 20 20 20 20 20 is has..
0289A0: 73 65 72 69 6F 75 73 20 74 69 6D 69 6E 67 20 63 serious timing c
0289B0: 6F 6E 73 74 72 61 69 6E 74 73 2E 20 20 44 69 73 onstraints. Dis
0289C0: 61 62 6C 69 6E 67 20 20 69 6E 74 65 72 72 75 70 abling interrup
0289D0: 74 73 20 20 77 69 6C 6C 20 20 70 72 65 76 65 6E ts will preven
0289E0: 74 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 76 t the.. v
0289F0: 61 72 69 6F 75 73 20 74 69 6D 65 72 20 69 6E 74 arious timer int
028A00: 65 72 72 75 70 74 73 20 28 61 73 20 64 65 73 63 errupts (as desc
028A10: 72 69 62 65 64 20 69 6E 20 73 65 63 74 69 6F 6E ribed in section
028A20: 20 31 30 2E 31 29 20 66 72 6F 6D 20 6F 63 63 75 10.1) from occu
028A30: 72 72 69 6E 67 2E 0D 0A 20 20 20 20 20 20 20 49 rring... I
028A40: 6E 20 70 61 72 74 69 63 75 6C 61 72 20 74 68 69 n particular thi
028A50: 73 20 6D 69 67 68 74 20 6C 65 61 76 65 20 74 68 s might leave th
028A60: 65 20 73 6F 75 6E 64 20 63 68 69 70 20 6D 61 6B e sound chip mak
028A70: 69 6E 67 20 20 61 20 20 6E 6F 69 73 65 20 20 66 ing a noise f
028A80: 6F 72 20 20 61 0D 0A 20 20 20 20 20 20 20 6C 6F or a.. lo
028A90: 6E 67 20 70 65 72 69 6F 64 20 6F 66 20 74 69 6D ng period of tim
028AA0: 65 20 61 6E 64 20 73 6F 20 74 68 65 20 53 6F 75 e and so the Sou
028AB0: 6E 64 20 4D 61 6E 61 67 65 72 20 69 73 20 73 68 nd Manager is sh
028AC0: 75 74 20 64 6F 77 6E 20 20 28 73 65 65 20 20 53 ut down (see S
028AD0: 4F 55 4E 44 0D 0A 20 20 20 20 20 20 20 52 45 53 OUND.. RES
028AE0: 45 54 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 ET)..... I
028AF0: 6E 20 56 31 2E 31 20 66 69 72 6D 77 61 72 65 20 n V1.1 firmware
028B00: 74 68 65 20 20 63 61 73 73 65 74 74 65 20 20 6D the cassette m
028B10: 61 6E 61 67 65 72 20 20 72 6F 75 74 69 6E 65 73 anager routines
028B20: 20 20 66 6F 72 20 20 72 65 61 64 69 6E 67 20 20 for reading
028B30: 66 69 6C 65 73 0D 0A 20 20 20 20 20 20 20 72 65 files.. re
028B40: 74 75 72 6E 20 20 65 72 72 6F 72 20 20 63 6F 64 turn error cod
028B50: 65 73 20 20 74 6F 20 20 69 6E 64 69 63 61 74 65 es to indicate
028B60: 20 20 74 68 65 20 20 63 61 75 73 65 20 20 6F 66 the cause of
028B70: 20 20 74 68 65 20 20 65 72 72 6F 72 73 20 20 20 the errors
028B80: 28 66 6F 72 0D 0A 20 20 20 20 20 20 20 63 6F 6D (for.. com
028B90: 70 61 74 61 62 69 6C 69 74 79 20 77 69 74 68 20 patability with
028BA0: 41 4D 53 44 4F 53 29 3A 0D 0A 0D 0A 20 20 20 20 AMSDOS):....
028BB0: 20 20 20 20 20 20 20 20 20 20 20 20 23 30 30 3A #00:
028BC0: 20 20 20 20 20 20 54 68 65 20 75 73 65 72 20 68 The user h
028BD0: 69 74 20 65 73 63 61 70 65 0D 0A 20 20 20 20 20 it escape..
028BE0: 20 20 20 20 20 20 20 20 20 20 20 23 30 45 3A 20 #0E:
028BF0: 20 20 20 20 20 54 68 65 20 73 74 72 65 61 6D 20 The stream
028C00: 69 73 20 61 6C 72 65 61 64 79 2F 6E 6F 74 20 69 is already/not i
028C10: 6E 20 75 73 65 0D 0A 20 20 20 20 20 20 20 20 20 n use..
028C20: 20 20 20 20 20 20 20 23 30 46 3A 20 20 20 20 20 #0F:
028C30: 20 48 61 76 65 20 72 65 61 63 68 65 64 20 74 68 Have reached th
028C40: 65 20 65 6E 64 20 6F 66 20 74 68 65 20 66 69 6C e end of the fil
028C50: 65 0D 0A 0D 0A 20 20 20 20 20 20 20 38 2E 38 20 e.... 8.8
028C60: 57 72 69 74 69 6E 67 20 46 69 6C 65 73 2E 0D 0A Writing Files...
028C70: 0D 0A 20 20 20 20 20 20 20 42 65 66 6F 72 65 20 .. Before
028C80: 61 20 66 69 6C 65 20 63 61 6E 20 62 65 20 77 72 a file can be wr
028C90: 69 74 74 65 6E 20 69 74 20 6D 75 73 74 20 62 65 itten it must be
028CA0: 20 6F 70 65 6E 65 64 20 20 28 62 79 20 20 63 61 opened (by ca
028CB0: 6C 6C 69 6E 67 20 20 43 41 53 20 20 4F 55 54 0D lling CAS OUT.
028CC0: 0A 20 20 20 20 20 20 20 4F 50 45 4E 29 2E 20 54 . OPEN). T
028CD0: 68 69 73 20 73 65 74 73 20 75 70 20 74 68 65 20 his sets up the
028CE0: 66 69 6C 65 6E 61 6D 65 20 28 73 65 65 20 38 2E filename (see 8.
028CF0: 31 30 20 62 65 6C 6F 77 29 20 61 6E 64 20 74 68 10 below) and th
028D00: 65 20 72 65 73 74 20 6F 66 20 20 74 68 65 0D 0A e rest of the..
028D10: 20 20 20 20 20 20 20 68 65 61 64 65 72 20 74 68 header th
028D20: 61 74 20 77 69 6C 6C 20 62 65 20 77 72 69 74 74 at will be writt
028D30: 65 6E 20 69 6E 20 65 61 63 68 20 66 69 6C 65 20 en in each file
028D40: 62 6C 6F 63 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 block.....
028D50: 20 54 68 65 20 66 69 6C 65 20 6D 61 79 20 65 69 The file may ei
028D60: 74 68 65 72 20 62 65 20 6F 70 65 6E 65 64 20 20 ther be opened
028D70: 66 6F 72 20 20 63 68 61 72 61 63 74 65 72 20 20 for character
028D80: 6F 75 74 70 75 74 20 20 6F 72 20 20 66 6F 72 20 output or for
028D90: 20 64 69 72 65 63 74 0D 0A 20 20 20 20 20 20 20 direct..
028DA0: 6F 75 74 70 75 74 2C 20 62 75 74 20 6E 6F 74 20 output, but not
028DB0: 62 6F 74 68 2E 20 54 68 65 20 6D 6F 64 65 20 6F both. The mode o
028DC0: 66 20 6F 75 74 70 75 74 20 69 73 20 73 65 74 20 f output is set
028DD0: 62 79 20 74 68 65 20 66 69 72 73 74 20 77 72 69 by the first wri
028DE0: 74 65 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 74 te to.. t
028DF0: 68 65 20 66 69 6C 65 20 61 6E 64 20 6E 6F 74 20 he file and not
028E00: 77 68 65 6E 20 69 74 20 69 73 20 6F 70 65 6E 65 when it is opene
028E10: 64 2E 20 41 73 20 73 6F 6F 6E 20 61 73 20 6F 6E d. As soon as on
028E20: 65 20 6D 6F 64 65 20 69 73 20 73 65 6C 65 63 74 e mode is select
028E30: 65 64 20 69 74 0D 0A 20 20 20 20 20 20 20 62 65 ed it.. be
028E40: 63 6F 6D 65 73 20 69 6D 70 6F 73 73 69 62 6C 65 comes impossible
028E50: 20 74 6F 20 75 73 65 20 74 68 65 20 6F 74 68 65 to use the othe
028E60: 72 20 6D 6F 64 65 20 74 6F 20 77 72 69 74 65 20 r mode to write
028E70: 74 6F 20 74 68 65 20 66 69 6C 65 2E 0D 0A 0D 0A to the file.....
028E80: 20 20 20 20 20 20 20 43 68 61 72 61 63 74 65 72 Character
028E90: 20 6F 75 74 70 75 74 20 28 63 61 6C 6C 69 6E 67 output (calling
028EA0: 20 43 41 53 20 4F 55 54 20 43 48 41 52 29 20 61 CAS OUT CHAR) a
028EB0: 6C 6C 6F 77 73 20 74 68 65 20 75 73 65 72 20 20 llows the user
028EC0: 74 6F 20 20 77 72 69 74 65 20 20 74 6F 0D 0A 20 to write to..
028ED0: 20 20 20 20 20 20 74 68 65 20 66 69 6C 65 20 6F the file o
028EE0: 6E 65 20 63 68 61 72 61 63 74 65 72 20 61 74 20 ne character at
028EF0: 61 20 74 69 6D 65 2E 20 54 68 65 20 63 68 61 72 a time. The char
028F00: 61 63 74 65 72 73 20 61 72 65 20 62 75 66 66 65 acters are buffe
028F10: 72 65 64 20 75 6E 74 69 6C 20 20 61 0D 0A 20 20 red until a..
028F20: 20 20 20 20 20 63 6F 6D 70 6C 65 74 65 20 62 6C complete bl
028F30: 6F 63 6B 20 28 32 30 34 38 20 63 68 61 72 61 63 ock (2048 charac
028F40: 74 65 72 73 29 20 69 73 20 72 65 61 64 79 20 74 ters) is ready t
028F50: 6F 20 62 65 20 20 77 72 69 74 74 65 6E 20 20 77 o be written w
028F60: 68 65 72 65 75 70 6F 6E 20 20 61 0D 0A 20 20 20 hereupon a..
028F70: 20 20 20 20 66 69 6C 65 20 62 6C 6F 63 6B 20 69 file block i
028F80: 73 20 77 72 69 74 74 65 6E 20 74 6F 20 74 68 65 s written to the
028F90: 20 74 61 70 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 tape.....
028FA0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
028FB0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
028FC0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
028FD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
028FE0: 61 67 65 20 38 2E 36 0D 0A 0D 0A 0D 0A 0D 0A 0D age 8.6.........
028FF0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 69 72 65 ..... Dire
029000: 63 74 20 6F 75 74 70 75 74 20 28 63 61 6C 6C 69 ct output (calli
029010: 6E 67 20 43 41 53 20 4F 55 54 20 44 49 52 45 43 ng CAS OUT DIREC
029020: 54 29 20 77 72 69 74 65 73 20 74 68 65 20 77 68 T) writes the wh
029030: 6F 6C 65 20 20 6F 66 20 20 74 68 65 20 20 66 69 ole of the fi
029040: 6C 65 0D 0A 20 20 20 20 20 20 20 66 72 6F 6D 20 le.. from
029050: 6D 65 6D 6F 72 79 20 69 6E 20 6F 6E 65 20 67 6F memory in one go
029060: 2E 20 54 68 65 20 64 61 74 61 20 77 72 69 74 74 . The data writt
029070: 65 6E 20 69 73 20 73 74 69 6C 6C 20 20 70 61 63 en is still pac
029080: 6B 61 67 65 64 20 20 69 6E 74 6F 20 20 32 30 34 kaged into 204
029090: 38 0D 0A 20 20 20 20 20 20 20 62 79 74 65 20 62 8.. byte b
0290A0: 6C 6F 63 6B 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 locks.....
0290B0: 20 57 68 69 63 68 65 76 65 72 20 6F 75 74 70 75 Whichever outpu
0290C0: 74 20 6D 6F 64 65 20 69 73 20 75 73 65 64 2C 20 t mode is used,
0290D0: 69 74 20 69 73 20 69 6D 70 6F 72 74 61 6E 74 20 it is important
0290E0: 20 74 6F 20 20 63 6C 6F 73 65 20 20 74 68 65 20 to close the
0290F0: 20 6F 75 74 70 75 74 0D 0A 20 20 20 20 20 20 20 output..
029100: 66 69 6C 65 20 70 72 6F 70 65 72 6C 79 20 28 75 file properly (u
029110: 73 69 6E 67 20 43 41 53 20 4F 55 54 20 43 4C 4F sing CAS OUT CLO
029120: 53 45 29 20 6F 74 68 65 72 77 69 73 65 20 74 68 SE) otherwise th
029130: 65 20 6C 61 73 74 20 20 62 6C 6F 63 6B 20 20 6F e last block o
029140: 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 66 f the.. f
029150: 69 6C 65 20 77 69 6C 6C 20 6E 6F 74 20 62 65 20 ile will not be
029160: 77 72 69 74 74 65 6E 2E 0D 0A 20 20 20 20 20 20 written...
029170: 20 49 6E 74 65 72 72 75 70 74 73 20 61 72 65 20 Interrupts are
029180: 64 69 73 61 62 6C 65 64 20 20 77 68 69 6C 73 74 disabled whilst
029190: 20 20 77 72 69 74 69 6E 67 20 20 74 6F 20 20 74 writing to t
0291A0: 61 70 65 20 20 62 65 63 61 75 73 65 20 20 74 68 ape because th
0291B0: 69 73 20 20 68 69 73 0D 0A 20 20 20 20 20 20 20 is his..
0291C0: 73 65 72 69 6F 75 73 20 74 69 6D 69 6E 67 20 63 serious timing c
0291D0: 6F 6E 73 74 72 61 69 6E 74 73 2E 20 20 44 69 73 onstraints. Dis
0291E0: 61 62 6C 69 6E 67 20 20 69 6E 74 65 72 72 75 70 abling interrup
0291F0: 74 73 20 20 77 69 6C 6C 20 20 70 72 65 76 65 6E ts will preven
029200: 74 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 76 t the.. v
029210: 61 72 69 6F 75 73 20 20 74 69 6D 65 72 20 20 69 arious timer i
029220: 6E 74 65 72 72 75 70 74 73 20 20 28 61 73 20 20 nterrupts (as
029230: 64 65 73 63 72 69 62 65 64 20 20 69 6E 20 20 73 described in s
029240: 65 63 74 69 6F 6E 20 20 20 31 30 2E 31 29 20 20 ection 10.1)
029250: 20 66 72 6F 6D 0D 0A 20 20 20 20 20 20 20 6F 63 from.. oc
029260: 63 75 72 72 69 6E 67 2E 20 49 6E 20 70 61 72 74 curring. In part
029270: 69 63 75 6C 61 72 20 74 68 69 73 20 6D 69 67 68 icular this migh
029280: 74 20 6C 65 61 76 65 20 20 74 68 65 20 20 73 6F t leave the so
029290: 75 6E 64 20 20 63 68 69 70 20 20 6D 61 6B 69 6E und chip makin
0292A0: 67 20 20 61 0D 0A 20 20 20 20 20 20 20 6E 6F 69 g a.. noi
0292B0: 73 65 20 66 6F 72 20 61 20 6C 6F 6E 67 20 70 65 se for a long pe
0292C0: 72 69 6F 64 20 6F 66 20 74 69 6D 65 20 61 6E 64 riod of time and
0292D0: 20 73 6F 20 74 68 65 20 53 6F 75 6E 64 20 4D 61 so the Sound Ma
0292E0: 6E 61 67 65 72 20 69 73 20 73 68 75 74 20 20 64 nager is shut d
0292F0: 6F 77 6E 0D 0A 20 20 20 20 20 20 20 28 73 65 65 own.. (see
029300: 20 53 4F 55 4E 44 20 52 45 53 45 54 29 2E 0D 0A SOUND RESET)...
029310: 0D 0A 20 20 20 20 20 20 20 49 6E 20 56 31 2E 31 .. In V1.1
029320: 20 66 69 72 6D 77 61 72 65 20 74 68 65 20 20 63 firmware the c
029330: 61 73 73 65 74 74 65 20 20 6D 61 6E 61 67 65 72 assette manager
029340: 20 20 72 6F 75 74 69 6E 65 73 20 20 66 6F 72 20 routines for
029350: 20 77 72 69 74 69 6E 67 20 20 66 69 6C 65 73 0D writing files.
029360: 0A 20 20 20 20 20 20 20 72 65 74 75 72 6E 20 20 . return
029370: 65 72 72 6F 72 20 20 63 6F 64 65 73 20 20 74 6F error codes to
029380: 20 20 69 6E 64 69 63 61 74 65 20 20 74 68 65 20 indicate the
029390: 20 63 61 75 73 65 20 20 6F 66 20 20 74 68 65 20 cause of the
0293A0: 20 20 65 72 72 6F 72 20 20 20 28 66 6F 72 0D 0A error (for..
0293B0: 20 20 20 20 20 20 20 63 6F 6D 70 61 74 69 62 69 compatibi
0293C0: 6C 69 74 79 20 77 69 74 68 20 41 4D 53 44 4F 53 lity with AMSDOS
0293D0: 29 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ):..
0293E0: 20 20 20 20 23 30 30 3A 20 20 20 20 20 20 54 68 #00: Th
0293F0: 65 20 75 73 65 72 20 68 61 73 20 68 69 74 20 65 e user has hit e
029400: 73 63 61 70 65 0D 0A 20 20 20 20 20 20 20 20 20 scape..
029410: 20 20 20 20 20 20 20 23 30 45 3A 20 20 20 20 20 #0E:
029420: 20 54 68 65 20 73 74 72 65 61 6D 20 69 73 20 61 The stream is a
029430: 6C 72 65 61 64 79 2F 6E 6F 74 20 69 6E 20 75 73 lready/not in us
029440: 65 0D 0A 20 20 20 20 20 20 20 38 2E 39 20 52 65 e.. 8.9 Re
029450: 61 64 20 61 6E 64 20 57 72 69 74 69 6E 67 20 53 ad and Writing S
029460: 69 6D 75 6C 74 61 6E 65 6F 75 73 6C 79 2E 0D 0A imultaneously...
029470: 20 20 20 20 20 20 20 54 68 65 20 43 61 73 73 65 The Casse
029480: 74 74 65 20 4D 61 6E 61 67 65 72 20 61 6C 6C 6F tte Manager allo
029490: 77 73 20 74 77 6F 20 66 69 6C 65 73 20 74 6F 20 ws two files to
0294A0: 62 65 20 6F 70 65 6E 20 20 73 69 6D 75 6C 74 61 be open simulta
0294B0: 6E 65 6F 75 73 6C 79 2E 20 20 4F 6E 65 0D 0A 20 neously. One..
0294C0: 20 20 20 20 20 20 6D 75 73 74 20 62 65 20 6F 70 must be op
0294D0: 65 6E 20 66 6F 72 20 72 65 61 64 69 6E 67 20 20 en for reading
0294E0: 61 6E 64 20 20 74 68 65 20 20 6F 74 68 65 72 20 and the other
0294F0: 20 66 6F 72 20 20 77 72 69 74 69 6E 67 2E 20 20 for writing.
029500: 54 68 75 73 20 20 69 74 20 20 69 73 0D 0A 20 20 Thus it is..
029510: 20 20 20 20 20 70 6F 73 73 69 62 6C 65 20 74 6F possible to
029520: 20 72 65 61 64 20 66 72 6F 6D 20 6F 6E 65 20 66 read from one f
029530: 69 6C 65 20 61 6E 64 20 77 72 69 74 65 20 74 6F ile and write to
029540: 20 61 6E 6F 74 68 65 72 20 66 69 6C 65 20 61 74 another file at
029550: 20 20 74 68 65 20 20 73 61 6D 65 0D 0A 20 20 20 the same..
029560: 20 20 20 20 74 69 6D 65 2E 0D 0A 0D 0A 20 20 20 time.....
029570: 20 20 20 20 57 68 65 6E 20 74 68 65 20 43 61 73 When the Cas
029580: 73 65 74 74 65 20 4D 61 6E 61 67 65 72 20 69 73 sette Manager is
029590: 20 61 62 6F 75 74 20 74 6F 20 72 65 61 64 20 61 about to read a
0295A0: 20 62 6C 6F 63 6B 20 69 74 20 61 73 6B 73 20 74 block it asks t
0295B0: 68 65 20 75 73 65 72 20 74 6F 0D 0A 20 20 20 20 he user to..
0295C0: 20 20 20 70 72 65 73 73 20 50 4C 41 59 20 61 6E press PLAY an
0295D0: 64 20 74 68 69 73 20 69 6D 70 6C 69 65 73 20 74 d this implies t
0295E0: 68 61 74 20 74 68 65 20 74 61 70 65 20 77 69 74 hat the tape wit
0295F0: 68 20 74 68 65 20 20 66 69 6C 65 20 20 66 6F 72 h the file for
029600: 20 20 72 65 61 64 69 6E 67 0D 0A 20 20 20 20 20 reading..
029610: 20 20 73 68 6F 75 6C 64 20 62 65 20 6C 6F 61 64 should be load
029620: 65 64 2E 20 53 69 6D 69 6C 61 72 6C 79 2C 20 77 ed. Similarly, w
029630: 68 65 6E 20 69 74 20 69 73 20 61 62 6F 75 74 20 hen it is about
029640: 74 6F 20 77 72 69 74 65 20 61 20 62 6C 6F 63 6B to write a block
029650: 20 69 74 20 61 73 6B 73 0D 0A 20 20 20 20 20 20 it asks..
029660: 20 66 6F 72 20 74 68 65 20 75 73 65 72 20 74 6F for the user to
029670: 20 70 72 65 73 73 20 52 45 43 20 61 6E 64 20 50 press REC and P
029680: 4C 41 59 20 61 6E 64 20 74 68 69 73 20 69 6D 70 LAY and this imp
029690: 6C 69 65 73 20 74 68 61 74 20 74 68 65 20 20 74 lies that the t
0296A0: 61 70 65 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 ape to..
0296B0: 77 68 69 63 68 20 74 68 65 20 66 69 6C 65 20 69 which the file i
0296C0: 73 20 74 6F 20 62 65 20 77 72 69 74 74 65 6E 20 s to be written
0296D0: 73 68 6F 75 6C 64 20 62 65 20 6C 6F 61 64 65 64 should be loaded
0296E0: 2E 20 54 68 65 20 43 61 73 73 65 74 74 65 20 4D . The Cassette M
0296F0: 61 6E 61 67 65 72 0D 0A 20 20 20 20 20 20 20 61 anager.. a
029700: 73 73 75 6D 65 73 20 74 68 61 74 20 74 68 65 20 ssumes that the
029710: 74 61 70 65 20 69 73 20 6E 6F 74 20 63 68 61 6E tape is not chan
029720: 67 65 64 20 61 6E 64 20 74 68 61 74 20 74 68 65 ged and that the
029730: 20 61 70 70 72 6F 70 72 69 61 74 65 20 63 61 73 appropriate cas
029740: 73 65 74 74 65 0D 0A 20 20 20 20 20 20 20 63 6F sette.. co
029750: 6E 74 72 6F 6C 73 20 72 65 6D 61 69 6E 20 70 72 ntrols remain pr
029760: 65 73 73 65 64 20 61 73 20 72 65 71 75 65 73 74 essed as request
029770: 65 64 20 75 6E 74 69 6C 20 74 68 65 20 70 72 6F ed until the pro
029780: 6D 70 74 20 20 69 73 20 20 69 73 73 75 65 64 2E mpt is issued.
029790: 20 20 49 74 0D 0A 20 20 20 20 20 20 20 61 6C 73 It.. als
0297A0: 6F 20 61 73 73 75 6D 65 73 20 74 68 61 74 20 70 o assumes that p
0297B0: 72 65 73 73 69 6E 67 20 61 20 20 6B 65 79 20 20 ressing a key
0297C0: 6D 65 61 6E 73 20 20 74 68 61 74 20 20 74 68 65 means that the
0297D0: 20 20 70 72 6F 6D 70 74 20 20 68 61 73 20 20 62 prompt has b
0297E0: 65 65 6E 0D 0A 20 20 20 20 20 20 20 6F 62 65 79 een.. obey
0297F0: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 74 ed..... It
029800: 20 69 73 20 75 6E 77 69 73 65 20 74 6F 20 61 74 is unwise to at
029810: 74 65 6D 70 74 20 74 6F 20 72 65 61 64 20 20 61 tempt to read a
029820: 6E 64 20 20 77 72 69 74 65 20 20 73 69 6D 75 6C nd write simul
029830: 74 61 6E 65 6F 75 73 6C 79 20 20 77 69 74 68 20 taneously with
029840: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 43 61 73 the.. Cas
029850: 73 65 74 74 65 20 4D 61 6E 61 67 65 72 20 6D 65 sette Manager me
029860: 73 73 61 67 65 73 20 74 75 72 6E 65 64 20 6F 66 ssages turned of
029870: 66 2E 20 54 68 65 20 6F 6E 6C 79 20 6E 6F 74 69 f. The only noti
029880: 66 69 63 61 74 69 6F 6E 20 20 67 69 76 65 6E 20 fication given
029890: 20 6F 66 0D 0A 20 20 20 20 20 20 20 77 68 69 63 of.. whic
0298A0: 68 20 74 61 70 65 20 73 68 6F 75 6C 64 20 62 65 h tape should be
0298B0: 20 6C 6F 61 64 65 64 20 69 73 20 69 6E 20 74 68 loaded is in th
0298C0: 65 20 70 72 6F 6D 70 74 20 6D 65 73 73 61 67 65 e prompt message
0298D0: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 38 2E 31 s..... 8.1
0298E0: 30 20 46 69 6C 65 6E 61 6D 65 73 2E 0D 0A 20 20 0 Filenames...
0298F0: 20 20 20 20 20 57 68 65 6E 20 74 68 65 20 75 73 When the us
029900: 65 72 20 6F 70 65 6E 73 20 61 20 66 69 6C 65 20 er opens a file
029910: 66 6F 72 20 72 65 61 64 69 6E 67 20 6F 72 20 77 for reading or w
029920: 72 69 74 69 6E 67 20 74 68 65 20 6E 61 6D 65 20 riting the name
029930: 6F 66 20 74 68 65 20 66 69 6C 65 0D 0A 20 20 20 of the file..
029940: 20 20 20 20 74 6F 20 62 65 20 72 65 61 64 20 6F to be read o
029950: 72 20 77 72 69 74 74 65 6E 20 69 73 20 73 70 65 r written is spe
029960: 63 69 66 69 65 64 2E 20 54 68 65 20 66 69 6C 65 cified. The file
029970: 6E 61 6D 65 20 69 73 20 61 20 73 74 72 69 6E 67 name is a string
029980: 20 6F 66 20 61 6E 79 20 31 36 0D 0A 20 20 20 20 of any 16..
029990: 20 20 20 63 68 61 72 61 63 74 65 72 73 20 28 23 characters (#
0299A0: 30 30 2E 2E 23 46 46 29 2E 20 49 66 20 74 68 65 00..#FF). If the
0299B0: 20 66 69 6C 65 20 6E 61 6D 65 20 73 70 65 63 69 file name speci
0299C0: 66 69 65 64 20 69 73 20 20 6C 6F 6E 67 65 72 20 fied is longer
0299D0: 20 74 68 61 6E 20 20 31 36 0D 0A 20 20 20 20 20 than 16..
0299E0: 20 20 63 68 61 72 61 63 74 65 72 73 20 74 68 65 characters the
0299F0: 6E 20 20 69 74 20 20 69 73 20 20 74 72 75 6E 63 n it is trunc
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: 61 74 65 64 20 20 61 6E 64 20 20 69 66 20 20 69 ated and if i
029B10: 74 20 20 69 73 20 20 73 68 6F 72 74 65 72 20 20 t is shorter
029B20: 74 68 61 6E 20 20 31 36 0D 0A 20 20 20 20 20 20 than 16..
029B30: 20 63 68 61 72 61 63 74 65 72 73 20 69 74 20 69 characters it i
029B40: 73 20 70 61 64 64 65 64 20 74 6F 20 31 36 20 63 s padded to 16 c
029B50: 68 61 72 61 63 74 65 72 73 20 77 69 74 68 20 6E haracters with n
029B60: 75 6C 6C 73 20 28 63 68 61 72 61 63 74 65 72 20 ulls (character
029B70: 23 30 30 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 #00).....
029B80: 57 68 65 6E 20 6F 70 65 6E 69 6E 67 20 61 20 66 When opening a f
029B90: 69 6C 65 20 66 6F 72 20 72 65 61 64 69 6E 67 20 ile for reading
029BA0: 61 20 7A 65 72 6F 20 6C 65 6E 67 74 68 20 20 66 a zero length f
029BB0: 69 6C 65 6E 61 6D 65 20 20 6F 72 20 20 6F 6E 65 ilename or one
029BC0: 20 20 74 68 61 74 0D 0A 20 20 20 20 20 20 20 73 that.. s
029BD0: 74 61 72 74 73 20 77 69 74 68 20 61 20 6E 75 6C tarts with a nul
029BE0: 6C 20 68 61 73 20 61 20 73 70 65 63 69 61 6C 20 l has a special
029BF0: 6D 65 61 6E 69 6E 67 20 2D 20 72 65 61 64 20 74 meaning - read t
029C00: 68 65 20 6E 65 78 74 20 66 69 6C 65 20 20 6F 6E he next file on
029C10: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 74 61 the.. ta
029C20: 70 65 2E 20 54 68 65 20 43 61 73 73 65 74 74 65 pe. The Cassette
029C30: 20 4D 61 6E 61 67 65 72 20 73 65 61 72 63 68 65 Manager searche
029C40: 73 20 74 68 65 20 74 61 70 65 20 75 6E 74 69 6C s the tape until
029C50: 20 69 74 20 66 69 6E 64 73 20 74 68 65 20 20 66 it finds the f
029C60: 69 72 73 74 0D 0A 20 20 20 20 20 20 20 62 6C 6F irst.. blo
029C70: 63 6B 20 6F 66 20 61 20 66 69 6C 65 20 61 6E 64 ck of a file and
029C80: 20 69 74 20 72 65 61 64 73 20 74 68 69 73 20 66 it reads this f
029C90: 69 6C 65 2E 20 4F 6E 63 65 20 74 68 65 20 66 69 ile. Once the fi
029CA0: 72 73 74 20 62 6C 6F 63 6B 20 6F 66 20 61 20 66 rst block of a f
029CB0: 69 6C 65 0D 0A 20 20 20 20 20 20 20 68 61 73 20 ile.. has
029CC0: 62 65 65 6E 20 66 6F 75 6E 64 20 74 68 65 20 43 been found the C
029CD0: 61 73 73 65 74 74 65 20 4D 61 6E 61 67 65 72 20 assette Manager
029CE0: 77 69 6C 6C 20 6F 6E 6C 79 20 72 65 61 64 20 72 will only read r
029CF0: 6F 6D 20 74 68 61 74 20 20 66 69 6C 65 20 20 61 om that file a
029D00: 6E 64 0D 0A 20 20 20 20 20 20 20 6E 6F 20 6F 74 nd.. no ot
029D10: 68 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 42 her..... B
029D20: 41 53 49 43 20 20 75 73 65 73 20 20 61 20 20 73 ASIC uses a s
029D30: 6C 69 67 68 74 6C 79 20 20 20 65 78 74 65 6E 64 lightly extend
029D40: 65 64 20 20 20 66 6F 72 6D 20 20 20 6F 66 20 20 ed form of
029D50: 20 66 69 6C 65 6E 61 6D 65 2E 20 20 20 49 66 20 filename. If
029D60: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 66 69 the.. fi
029D70: 72 73 74 20 63 68 61 72 61 63 74 65 72 20 6F 66 rst character of
029D80: 20 61 20 42 41 53 49 43 20 66 69 6C 65 6E 61 6D a BASIC filenam
029D90: 65 20 69 73 20 61 6E 20 65 78 63 6C 61 6D 61 74 e is an exclamat
029DA0: 69 6F 6E 20 6D 61 72 6B 20 20 28 63 68 61 72 61 ion mark (chara
029DB0: 63 74 65 72 0D 0A 20 20 20 20 20 20 20 23 32 31 cter.. #21
029DC0: 29 20 74 68 65 20 42 41 53 49 43 20 74 75 72 6E ) the BASIC turn
029DD0: 73 20 74 68 65 20 70 72 6F 6D 70 74 20 6D 65 73 s the prompt mes
029DE0: 73 61 67 65 73 20 20 6F 66 66 20 20 28 73 65 65 sages off (see
029DF0: 20 20 38 2E 31 31 20 20 62 65 6C 6F 77 29 20 20 8.11 below)
029E00: 61 6E 64 0D 0A 20 20 20 20 20 20 20 72 65 6D 6F and.. remo
029E10: 76 65 73 20 74 68 65 20 65 78 63 6C 61 6D 61 74 ves the exclamat
029E20: 69 6F 6E 20 6D 61 72 6B 20 66 72 6F 6D 20 20 74 ion mark from t
029E30: 68 65 20 20 6E 61 6D 65 2E 20 20 54 68 69 73 20 he name. This
029E40: 20 66 61 63 69 6C 69 74 79 20 20 69 73 20 20 6E facility is n
029E50: 6F 74 0D 0A 20 20 20 20 20 20 20 70 72 6F 76 69 ot.. provi
029E60: 64 65 64 20 61 74 20 74 68 65 20 43 61 73 73 65 ded at the Casse
029E70: 74 74 65 20 4D 61 6E 61 67 65 72 20 6C 65 76 65 tte Manager leve
029E80: 6C 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 l..... AMS
029E90: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
029EA0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
029EB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029EC0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
029ED0: 38 2E 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 8.7.............
029EE0: 0A 20 20 20 20 20 20 20 38 2E 31 31 20 43 61 73 . 8.11 Cas
029EF0: 73 65 74 74 65 20 4D 61 6E 61 67 65 72 20 4D 65 sette Manager Me
029F00: 73 73 61 67 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 ssages.....
029F10: 20 20 54 68 65 20 43 61 73 73 65 74 74 65 20 4D The Cassette M
029F20: 61 6E 61 67 65 72 20 69 73 73 75 65 73 20 61 20 anager issues a
029F30: 6E 75 6D 62 65 72 20 6F 66 20 6D 65 73 73 61 67 number of messag
029F40: 65 73 20 74 6F 20 70 72 6F 6D 70 74 20 61 6E 64 es to prompt and
029F50: 20 20 69 6E 66 6F 72 6D 0D 0A 20 20 20 20 20 20 inform..
029F60: 20 74 68 65 20 75 73 65 72 20 61 6E 64 20 74 6F the user and to
029F70: 20 77 61 72 6E 20 77 68 65 6E 20 65 72 72 6F 72 warn when error
029F80: 73 20 20 68 61 76 65 20 20 6F 63 63 75 72 72 65 s have occurre
029F90: 64 2E 20 20 54 68 65 20 20 6D 65 73 73 61 67 65 d. The message
029FA0: 73 20 20 74 68 61 74 0D 0A 20 20 20 20 20 20 20 s that..
029FB0: 70 72 6F 6D 70 74 20 6F 72 20 69 6E 66 6F 72 6D prompt or inform
029FC0: 20 74 68 65 20 75 73 65 72 20 6D 61 79 20 62 65 the user may be
029FD0: 20 74 75 72 6E 65 64 20 6F 66 66 20 6F 72 20 6F turned off or o
029FE0: 6E 20 61 73 20 64 65 73 69 72 65 64 20 28 73 65 n as desired (se
029FF0: 65 20 20 43 41 53 0D 0A 20 20 20 20 20 20 20 4E e CAS.. N
02A000: 4F 49 53 59 29 2E 20 4D 65 73 73 61 67 65 73 20 OISY). Messages
02A010: 74 68 61 74 20 69 6E 66 6F 72 6D 20 74 68 65 20 that inform the
02A020: 75 73 65 72 20 6F 66 20 65 72 72 6F 72 73 20 63 user of errors c
02A030: 61 6E 6E 6F 74 20 62 65 20 20 74 75 72 6E 65 64 annot be turned
02A040: 20 20 6F 66 66 0D 0A 20 20 20 20 20 20 20 62 79 off.. by
02A050: 20 74 68 69 73 20 6D 65 63 68 61 6E 69 73 6D 2E this mechanism.
02A060: 0D 0A 0D 0A 20 20 20 20 20 20 20 61 2E 20 50 72 .... a. Pr
02A070: 6F 6D 70 74 20 6D 65 73 73 61 67 65 73 2E 0D 0A ompt messages...
02A080: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 50 72 .. Pr
02A090: 65 73 73 20 50 4C 41 59 20 74 68 65 6E 20 61 6E ess PLAY then an
02A0A0: 79 20 6B 65 79 3A 0D 0A 0D 0A 20 20 20 20 20 20 y key:....
02A0B0: 20 20 20 20 20 20 54 68 69 73 20 6D 65 73 73 61 This messa
02A0C0: 67 65 20 69 73 20 69 73 73 75 65 64 20 77 68 65 ge is issued whe
02A0D0: 6E 20 74 68 65 20 43 61 73 73 65 74 74 65 20 4D n the Cassette M
02A0E0: 61 6E 61 67 65 72 20 69 73 20 61 62 6F 75 74 20 anager is about
02A0F0: 74 6F 20 72 65 61 64 0D 0A 20 20 20 20 20 20 20 to read..
02A100: 20 20 20 20 20 74 68 65 20 66 69 72 73 74 20 62 the first b
02A110: 6C 6F 63 6B 20 6F 66 20 61 20 66 69 6C 65 20 66 lock of a file f
02A120: 72 6F 6D 20 74 61 70 65 20 6F 72 20 77 68 65 6E rom tape or when
02A130: 20 69 74 20 69 73 20 61 62 6F 75 74 20 74 6F 20 it is about to
02A140: 72 65 61 64 20 61 0D 0A 20 20 20 20 20 20 20 20 read a..
02A150: 20 20 20 20 62 6C 6F 63 6B 20 20 61 66 74 65 72 block after
02A160: 20 20 68 61 76 69 6E 67 20 20 77 72 69 74 74 65 having writte
02A170: 6E 20 20 74 6F 20 20 74 61 70 65 20 20 28 73 65 n to tape (se
02A180: 65 20 20 73 65 63 74 69 6F 6E 20 20 38 2E 39 29 e section 8.9)
02A190: 2E 20 20 49 74 0D 0A 20 20 20 20 20 20 20 20 20 . It..
02A1A0: 20 20 20 69 6E 64 69 63 61 74 65 73 20 74 68 61 indicates tha
02A1B0: 74 20 74 68 65 20 74 61 70 65 20 63 6F 6E 74 61 t the tape conta
02A1C0: 69 6E 69 6E 67 20 74 68 65 20 66 69 6C 65 20 74 ining the file t
02A1D0: 6F 20 62 65 20 72 65 61 64 20 73 68 6F 75 6C 64 o be read should
02A1E0: 20 20 62 65 0D 0A 20 20 20 20 20 20 20 20 20 20 be..
02A1F0: 20 20 6C 6F 61 64 65 64 20 61 6E 64 20 74 68 61 loaded and tha
02A200: 74 20 20 74 68 65 20 20 50 4C 41 59 20 20 62 75 t the PLAY bu
02A210: 74 74 6F 6E 20 20 6F 6E 20 20 74 68 65 20 20 72 tton on the r
02A220: 65 63 6F 72 64 65 72 20 20 73 68 6F 75 6C 64 20 ecorder should
02A230: 20 62 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 be..
02A240: 20 70 72 65 73 73 65 64 2E 20 54 68 65 20 43 61 pressed. The Ca
02A250: 73 73 65 74 74 65 20 4D 61 6E 61 67 65 72 20 64 ssette Manager d
02A260: 6F 65 73 20 20 6E 6F 74 20 20 69 73 73 75 65 20 oes not issue
02A270: 20 74 68 69 73 20 20 6D 65 73 73 61 67 65 20 20 this message
02A280: 61 74 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 at..
02A290: 6F 74 68 65 72 20 74 69 6D 65 73 20 73 69 6E 63 other times sinc
02A2A0: 65 20 69 74 20 61 73 73 75 6D 65 73 20 20 74 68 e it assumes th
02A2B0: 61 74 20 20 74 68 65 20 20 63 6F 72 72 65 63 74 at the correct
02A2C0: 20 20 74 61 70 65 20 20 69 73 20 20 73 74 69 6C tape is stil
02A2D0: 6C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 6C l.. l
02A2E0: 6F 61 64 65 64 20 61 6E 64 20 74 68 61 74 20 74 oaded and that t
02A2F0: 68 65 20 50 4C 41 59 20 62 75 74 74 6F 6E 20 69 he PLAY button i
02A300: 73 20 73 74 69 6C 6C 20 70 72 65 73 73 65 64 2E s still pressed.
02A310: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
02A320: 50 72 65 73 73 20 52 45 43 20 61 6E 64 20 50 4C Press REC and PL
02A330: 41 59 20 74 68 65 6E 20 61 6E 79 20 6B 65 79 3A AY then any key:
02A340: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
02A350: 54 68 69 73 20 6D 65 73 73 61 67 65 20 69 73 20 This message is
02A360: 69 73 73 75 65 64 20 77 68 65 6E 20 74 68 65 20 issued when the
02A370: 20 43 61 73 73 65 74 74 65 20 20 4D 61 6E 61 67 Cassette Manag
02A380: 65 72 20 20 69 73 20 20 61 62 6F 75 74 20 20 74 er is about t
02A390: 6F 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 77 o.. w
02A3A0: 72 69 74 65 20 74 68 65 20 66 69 72 73 74 20 62 rite the first b
02A3B0: 6C 6F 63 6B 20 6F 66 20 61 20 66 69 6C 65 20 74 lock of a file t
02A3C0: 6F 20 74 61 70 65 20 6F 72 20 77 68 65 6E 20 69 o tape or when i
02A3D0: 74 20 20 69 73 20 20 61 62 6F 75 74 20 20 74 6F t is about to
02A3E0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 77 72 .. wr
02A3F0: 69 74 65 20 61 20 62 6C 6F 63 6B 20 61 66 74 65 ite a block afte
02A400: 72 20 68 61 76 69 6E 67 20 72 65 61 64 20 66 72 r having read fr
02A410: 6F 6D 20 74 61 70 65 2E 20 49 74 20 69 6E 64 69 om tape. It indi
02A420: 63 61 74 65 73 20 74 68 61 74 20 20 74 68 65 0D cates that the.
02A430: 0A 20 20 20 20 20 20 20 20 20 20 20 20 74 61 70 . tap
02A440: 65 20 6F 6E 20 77 68 69 63 68 20 74 68 65 20 66 e on which the f
02A450: 69 6C 65 20 69 73 20 74 6F 20 62 65 20 77 72 69 ile is to be wri
02A460: 74 74 65 6E 20 73 68 6F 75 6C 64 20 62 65 20 6C tten should be l
02A470: 6F 61 64 65 64 20 61 6E 64 20 74 68 61 74 0D 0A oaded and that..
02A480: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 the
02A490: 52 45 43 20 61 6E 64 20 50 4C 41 59 20 62 75 74 REC and PLAY but
02A4A0: 74 6F 6E 73 20 6F 6E 20 74 68 65 20 72 65 63 6F tons on the reco
02A4B0: 72 64 65 72 20 73 68 6F 75 6C 64 20 62 65 20 20 rder should be
02A4C0: 70 72 65 73 73 65 64 2E 20 20 54 68 65 0D 0A 20 pressed. The..
02A4D0: 20 20 20 20 20 20 20 20 20 20 20 43 61 73 73 65 Casse
02A4E0: 74 74 65 20 4D 61 6E 61 67 65 72 20 64 6F 65 73 tte Manager does
02A4F0: 20 6E 6F 74 20 69 73 73 75 65 20 74 68 69 73 20 not issue this
02A500: 6D 65 73 73 61 67 65 20 61 74 20 6F 74 68 65 72 message at other
02A510: 20 74 69 6D 65 73 20 73 69 6E 63 65 0D 0A 20 20 times since..
02A520: 20 20 20 20 20 20 20 20 20 20 69 74 20 61 73 73 it ass
02A530: 75 6D 65 73 20 74 68 61 74 20 74 68 65 20 63 6F umes that the co
02A540: 72 72 65 63 74 20 74 61 70 65 20 69 73 20 73 74 rrect tape is st
02A550: 69 6C 6C 20 6C 6F 61 64 65 64 20 61 6E 64 20 74 ill loaded and t
02A560: 68 61 74 20 74 68 65 20 52 45 43 0D 0A 20 20 20 hat the REC..
02A570: 20 20 20 20 20 20 20 20 20 61 6E 64 20 50 4C 41 and PLA
02A580: 59 20 62 75 74 74 6F 6E 73 20 61 72 65 20 73 74 Y buttons are st
02A590: 69 6C 6C 20 70 72 65 73 73 65 64 2E 0D 0A 0D 0A ill pressed.....
02A5A0: 20 20 20 20 20 20 20 62 2E 20 49 6E 66 6F 72 6D b. Inform
02A5B0: 61 74 69 6F 6E 20 6D 65 73 73 61 67 65 73 2E 0D ation messages..
02A5C0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 46 ... F
02A5D0: 6F 75 6E 64 20 46 49 4C 45 4E 41 4D 45 20 62 6C ound FILENAME bl
02A5E0: 6F 63 6B 20 4E 0D 0A 0D 0A 20 20 20 20 20 20 20 ock N....
02A5F0: 20 20 20 20 20 54 68 69 73 20 6D 65 73 73 61 67 This messag
02A600: 65 20 69 73 20 70 72 69 6E 74 65 64 20 77 68 65 e is printed whe
02A610: 6E 20 72 65 61 64 69 6E 67 20 66 72 6F 6D 20 74 n reading from t
02A620: 68 65 20 74 61 70 65 20 20 69 66 20 20 61 20 20 he tape if a
02A630: 68 65 61 64 65 72 0D 0A 20 20 20 20 20 20 20 20 header..
02A640: 20 20 20 20 72 65 63 6F 72 64 20 69 73 20 66 6F record is fo
02A650: 75 6E 64 20 74 68 61 74 20 66 6F 72 20 61 6E 79 und that for any
02A660: 20 72 65 61 73 6F 6E 20 64 6F 65 73 20 20 6E 6F reason does no
02A670: 74 20 20 6D 61 74 63 68 20 20 74 68 65 20 20 72 t match the r
02A680: 65 63 6F 72 64 0D 0A 20 20 20 20 20 20 20 20 20 ecord..
02A690: 20 20 20 74 68 61 74 20 77 61 73 20 65 78 70 65 that was expe
02A6A0: 63 74 65 64 2E 20 54 68 69 73 20 6D 61 79 20 69 cted. This may i
02A6B0: 6E 64 69 63 61 74 65 20 74 68 61 74 20 74 68 65 ndicate that the
02A6C0: 20 74 61 70 65 20 69 73 20 20 70 6F 73 69 74 69 tape is positi
02A6D0: 6F 6E 65 64 0D 0A 20 20 20 20 20 20 20 20 20 20 oned..
02A6E0: 20 20 69 6E 63 6F 72 72 65 63 74 6C 79 20 28 74 incorrectly (t
02A6F0: 6F 6F 20 65 61 72 6C 79 20 6F 72 20 74 6F 6F 20 oo early or too
02A700: 6C 61 74 65 29 20 6F 72 20 74 68 61 74 20 20 74 late) or that t
02A710: 68 65 20 20 77 72 6F 6E 67 20 20 74 61 70 65 20 he wrong tape
02A720: 20 69 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 is..
02A730: 20 62 65 69 6E 67 20 70 6C 61 79 65 64 2E 0D 0A being played...
02A740: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 4C 6F .. Lo
02A750: 61 64 69 6E 67 20 46 49 4C 45 4E 41 4D 45 20 62 ading FILENAME b
02A760: 6C 6F 63 6B 20 4E 0D 0A 0D 0A 20 20 20 20 20 20 lock N....
02A770: 20 20 20 20 20 20 41 20 62 6C 6F 63 6B 20 6F 66 A block of
02A780: 20 74 68 65 20 66 69 6C 65 20 68 61 73 20 62 65 the file has be
02A790: 65 6E 20 66 6F 75 6E 64 20 61 6E 64 20 69 73 20 en found and is
02A7A0: 62 65 69 6E 67 20 72 65 61 64 20 66 72 6F 6D 20 being read from
02A7B0: 74 61 70 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 tape.....
02A7C0: 20 20 20 20 20 53 61 76 69 6E 67 20 46 49 4C 45 Saving FILE
02A7D0: 4E 41 4D 45 20 62 6C 6F 63 6B 20 4E 0D 0A 0D 0A NAME block N....
02A7E0: 20 20 20 20 20 20 20 20 20 20 20 20 41 20 62 6C A bl
02A7F0: 6F 63 6B 20 6F 66 20 74 68 65 20 66 69 6C 65 20 ock of the file
02A800: 69 73 20 62 65 69 6E 67 20 77 72 69 74 74 65 6E is being written
02A810: 20 74 6F 20 74 61 70 65 2E 0D 0A 0D 0A 20 20 20 to tape.....
02A820: 20 20 20 20 46 49 4C 45 4E 41 4D 45 20 69 6E 20 FILENAME in
02A830: 74 68 65 20 61 62 6F 76 65 20 6D 65 73 73 61 67 the above messag
02A840: 65 73 20 69 73 20 74 68 65 20 6E 61 6D 65 20 6F es is the name o
02A850: 66 20 20 74 68 65 20 20 66 69 6C 65 20 20 6F 72 f the file or
02A860: 20 20 27 55 6E 6E 61 6D 65 64 0D 0A 20 20 20 20 'Unnamed..
02A870: 20 20 20 66 69 6C 65 27 20 69 66 20 74 68 65 20 file' if the
02A880: 66 69 6C 65 6E 61 6D 65 20 73 74 61 72 74 73 20 filename starts
02A890: 77 69 74 68 20 61 20 6E 75 6C 6C 2E 0D 0A 0D 0A with a null.....
02A8A0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 62 6C 6F .. The blo
02A8B0: 63 6B 20 6E 75 6D 62 65 72 2C 20 4E 2C 20 69 6E ck number, N, in
02A8C0: 64 69 63 61 74 65 73 20 77 68 69 63 68 20 62 6C dicates which bl
02A8D0: 6F 63 6B 20 6F 66 20 74 68 65 20 66 69 6C 65 20 ock of the file
02A8E0: 69 73 20 20 62 65 69 6E 67 20 20 72 65 61 64 0D is being read.
02A8F0: 0A 20 20 20 20 20 20 20 6F 72 20 77 72 69 74 74 . or writt
02A900: 65 6E 2E 20 54 68 65 20 66 69 72 73 74 20 62 6C en. The first bl
02A910: 6F 63 6B 20 6F 66 20 61 20 66 69 6C 65 20 69 73 ock of a file is
02A920: 20 6E 6F 72 6D 61 6C 6C 79 20 62 6C 6F 63 6B 20 normally block
02A930: 31 2C 20 74 68 65 20 20 73 65 63 6F 6E 64 0D 0A 1, the second..
02A940: 20 20 20 20 20 20 20 62 6C 6F 63 6B 20 32 20 65 block 2 e
02A950: 74 63 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 tc.......
02A960: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
02A970: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
02A980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02A990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
02A9A0: 67 65 20 38 2E 38 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ge 8.8..........
02A9B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 63 2E 20 45 72 .... c. Er
02A9C0: 72 6F 72 20 6D 65 73 73 61 67 65 73 2E 0D 0A 0D ror messages....
02A9D0: 0A 20 20 20 20 20 20 20 20 20 20 20 52 65 77 69 . Rewi
02A9E0: 6E 64 20 74 61 70 65 0D 0A 0D 0A 20 20 20 20 20 nd tape....
02A9F0: 20 20 57 68 69 6C 65 20 73 65 61 72 63 68 69 6E While searchin
02AA00: 67 20 66 6F 72 20 61 20 62 6C 6F 63 6B 20 6F 66 g for a block of
02AA10: 20 74 68 65 20 66 69 6C 65 20 62 65 69 6E 67 20 the file being
02AA20: 72 65 61 64 2C 20 61 20 68 69 67 68 65 72 20 20 read, a higher
02AA30: 6E 75 6D 62 65 72 65 64 0D 0A 20 20 20 20 20 20 numbered..
02AA40: 20 62 6C 6F 63 6B 20 74 68 61 6E 20 74 68 61 74 block than that
02AA50: 20 72 65 71 75 69 72 65 64 20 68 61 73 20 62 65 required has be
02AA60: 65 6E 20 66 6F 75 6E 64 2E 20 54 68 65 20 72 65 en found. The re
02AA70: 71 75 69 72 65 64 20 62 6C 6F 63 6B 20 20 68 61 quired block ha
02AA80: 73 20 20 62 65 65 6E 0D 0A 20 20 20 20 20 20 20 s been..
02AA90: 6D 69 73 73 65 64 2E 20 54 68 69 73 20 6D 65 73 missed. This mes
02AAA0: 73 61 67 65 20 69 73 20 6F 66 74 65 6E 20 70 72 sage is often pr
02AAB0: 6F 64 75 63 65 64 20 20 61 66 74 65 72 20 20 61 oduced after a
02AAC0: 20 20 72 65 61 64 20 20 65 72 72 6F 72 20 20 69 read error i
02AAD0: 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 72 n the.. r
02AAE0: 65 71 75 69 72 65 64 20 62 6C 6F 63 6B 20 77 68 equired block wh
02AAF0: 65 6E 20 74 68 65 20 6E 65 78 74 20 62 6C 6F 63 en the next bloc
02AB00: 6B 20 69 73 20 66 6F 75 6E 64 2E 0D 0A 0D 0A 20 k is found.....
02AB10: 20 20 20 20 20 20 20 20 20 20 20 52 65 61 64 20 Read
02AB20: 65 72 72 6F 72 20 58 0D 0A 0D 0A 20 20 20 20 20 error X....
02AB30: 20 20 20 20 20 20 20 41 6E 20 65 72 72 6F 72 20 An error
02AB40: 6F 66 20 73 6F 6D 65 20 6B 69 6E 64 20 6F 63 63 of some kind occ
02AB50: 75 72 72 65 64 20 77 68 69 6C 73 74 20 72 65 61 urred whilst rea
02AB60: 64 69 6E 67 20 66 72 6F 6D 20 74 61 70 65 2E 20 ding from tape.
02AB70: 54 68 65 20 74 61 70 65 0D 0A 20 20 20 20 20 20 The tape..
02AB80: 20 20 20 20 20 20 73 68 6F 75 6C 64 20 62 65 20 should be
02AB90: 72 65 77 6F 75 6E 64 20 61 6E 64 20 74 68 65 20 rewound and the
02ABA0: 62 6C 6F 63 6B 20 70 6C 61 79 65 64 20 61 67 61 block played aga
02ABB0: 69 6E 2E 20 54 68 65 20 58 20 69 73 20 20 61 20 in. The X is a
02ABC0: 20 73 69 6E 67 6C 65 0D 0A 20 20 20 20 20 20 20 single..
02ABD0: 20 20 20 20 20 6C 65 74 74 65 72 20 69 6E 64 69 letter indi
02ABE0: 63 61 74 69 6E 67 20 77 68 61 74 20 6B 69 6E 64 cating what kind
02ABF0: 20 6F 66 20 72 65 61 64 20 65 72 72 6F 72 20 6F of read error o
02AC00: 63 63 75 72 72 65 64 3A 0D 0A 0D 0A 20 20 20 20 ccurred:....
02AC10: 20 20 20 20 20 20 20 20 27 61 27 20 20 20 20 20 'a'
02AC20: 20 20 20 20 20 20 42 69 74 20 74 6F 6F 20 6C 6F Bit too lo
02AC30: 6E 67 20 20 20 20 20 20 20 20 41 6E 20 69 6D 70 ng An imp
02AC40: 6F 73 73 69 62 6C 79 20 6C 6F 6E 67 20 6F 6E 65 ossibly long one
02AC50: 20 6F 72 20 20 7A 65 72 6F 0D 0A 20 20 20 20 20 or zero..
02AC60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AC70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AC80: 20 20 20 20 20 20 20 20 20 68 61 73 20 62 65 65 has bee
02AC90: 6E 20 6D 65 61 73 75 72 65 64 2E 20 20 54 68 69 n measured. Thi
02ACA0: 73 20 20 6F 66 74 65 6E 0D 0A 20 20 20 20 20 20 s often..
02ACB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02ACC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02ACD0: 20 20 20 20 20 20 20 20 69 6E 64 69 63 61 74 65 indicate
02ACE0: 73 20 72 65 61 64 69 6E 67 20 70 61 73 74 20 74 s reading past t
02ACF0: 68 65 20 20 65 6E 64 0D 0A 20 20 20 20 20 20 20 he end..
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: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AE10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AE20: 20 20 20 20 20 20 20 6F 66 20 74 68 65 20 72 65 of the re
02AE30: 63 6F 72 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 cord.....
02AE40: 20 20 20 20 20 27 62 27 20 20 20 20 20 20 20 20 'b'
02AE50: 20 20 20 43 52 43 20 65 72 72 6F 72 20 20 20 20 CRC error
02AE60: 20 20 20 20 20 20 20 44 61 74 61 20 20 20 77 61 Data wa
02AE70: 73 20 20 20 72 65 61 64 20 20 20 66 72 6F 6D 20 s read from
02AE80: 20 20 74 61 70 65 0D 0A 20 20 20 20 20 20 20 20 tape..
02AE90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AEA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AEB0: 20 20 20 20 20 20 69 6E 63 6F 72 72 65 63 74 6C incorrectl
02AEC0: 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 y.....
02AED0: 20 20 27 64 27 20 20 20 20 20 20 20 20 20 20 20 'd'
02AEE0: 42 6C 6F 63 6B 20 74 6F 6F 20 6C 6F 6E 67 20 20 Block too long
02AEF0: 20 20 20 20 54 68 65 20 64 61 74 61 20 72 65 63 The data rec
02AF00: 6F 72 64 20 20 63 6F 6E 74 61 69 6E 73 20 20 6D ord contains m
02AF10: 6F 72 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ore..
02AF20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AF30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AF40: 20 20 20 74 68 61 6E 20 74 68 65 20 65 78 70 65 than the expe
02AF50: 63 74 65 64 20 32 30 34 38 20 62 79 74 65 73 20 cted 2048 bytes
02AF60: 6F 66 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 of..
02AF70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AF80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AF90: 20 20 64 61 74 61 2E 0D 0A 0D 0A 20 20 20 20 20 data.....
02AFA0: 20 20 20 20 20 20 20 57 72 69 74 65 20 65 72 72 Write err
02AFB0: 6F 72 20 61 0D 0A 0D 0A 20 20 20 20 20 20 20 20 or a....
02AFC0: 20 20 20 20 41 6E 20 65 72 72 6F 72 20 6F 63 63 An error occ
02AFD0: 75 72 72 65 64 20 77 68 69 6C 73 74 20 77 72 69 urred whilst wri
02AFE0: 74 69 6E 67 20 74 6F 20 74 68 65 20 74 61 70 65 ting to the tape
02AFF0: 2E 20 54 68 65 72 65 20 20 69 73 20 20 6F 6E 6C . There is onl
02B000: 79 20 20 6F 6E 0D 0A 20 20 20 20 20 20 20 20 20 y on..
02B010: 20 20 20 70 6F 73 73 69 62 6C 65 20 77 72 69 74 possible writ
02B020: 65 20 65 72 72 6F 72 2E 20 54 68 69 73 20 69 6E e error. This in
02B030: 64 69 63 61 74 65 73 20 74 68 61 74 20 20 74 68 dicates that th
02B040: 65 20 20 43 61 73 73 65 74 74 65 20 20 4D 61 6E e Cassette Man
02B050: 61 67 65 72 0D 0A 20 20 20 20 20 20 20 20 20 20 ager..
02B060: 20 20 77 61 73 20 75 6E 61 62 6C 65 20 74 6F 20 was unable to
02B070: 77 72 69 74 65 20 61 20 62 69 74 20 61 73 20 66 write a bit as f
02B080: 61 73 74 20 61 73 20 77 61 73 20 20 72 65 71 75 ast as was requ
02B090: 65 73 74 65 64 2E 20 20 54 68 69 73 20 20 65 72 ested. This er
02B0A0: 72 6F 72 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ror..
02B0B0: 20 77 69 6C 6C 20 6E 65 76 65 72 20 6F 63 63 75 will never occu
02B0C0: 72 20 75 6E 6C 65 73 73 20 74 68 65 20 75 73 65 r unless the use
02B0D0: 72 20 68 61 73 20 73 65 74 20 74 68 65 20 77 72 r has set the wr
02B0E0: 69 74 65 20 20 73 70 65 65 64 20 20 62 65 79 6F ite speed beyo
02B0F0: 6E 64 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 nd..
02B100: 74 68 65 20 6D 61 78 69 6D 75 6D 20 70 6F 73 73 the maximum poss
02B110: 69 62 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ible.....
02B120: 38 2E 31 32 20 45 73 63 61 70 65 20 4B 65 79 2E 8.12 Escape Key.
02B130: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 65 .... The e
02B140: 73 63 61 70 65 20 6B 65 79 20 6F 6E 20 20 74 68 scape key on th
02B150: 65 20 20 6B 65 79 62 6F 61 72 64 20 20 6D 61 79 e keyboard may
02B160: 20 20 62 65 20 20 75 73 65 64 20 20 74 6F 20 20 be used to
02B170: 61 62 61 6E 64 6F 6E 20 20 63 61 73 73 65 74 74 abandon cassett
02B180: 65 0D 0A 20 20 20 20 20 20 20 6F 70 65 72 61 74 e.. operat
02B190: 69 6F 6E 73 20 61 74 20 63 65 72 74 61 69 6E 20 ions at certain
02B1A0: 74 69 6D 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 times.....
02B1B0: 20 57 68 65 6E 20 74 68 65 20 43 61 73 73 65 74 When the Casset
02B1C0: 74 65 20 4D 61 6E 61 67 65 72 20 69 73 73 75 65 te Manager issue
02B1D0: 73 20 6F 6E 65 20 6F 66 20 74 68 65 20 70 72 6F s one of the pro
02B1E0: 6D 70 74 20 6D 65 73 73 61 67 65 73 20 20 69 74 mpt messages it
02B1F0: 20 20 63 61 6C 6C 73 0D 0A 20 20 20 20 20 20 20 calls..
02B200: 4B 4D 20 52 45 41 44 20 43 48 41 52 20 72 65 70 KM READ CHAR rep
02B210: 65 61 74 65 64 6C 79 20 74 6F 20 65 6D 70 74 79 eatedly to empty
02B220: 20 74 68 65 20 6B 65 79 20 62 75 66 66 65 72 20 the key buffer
02B230: 6F 75 74 2E 20 54 68 65 6E 20 69 74 20 63 61 6C out. Then it cal
02B240: 6C 73 20 20 4B 4D 0D 0A 20 20 20 20 20 20 20 57 ls KM.. W
02B250: 41 49 54 20 4B 45 59 20 74 6F 20 77 61 69 74 20 AIT KEY to wait
02B260: 75 6E 74 69 6C 20 74 68 65 20 75 73 65 72 20 70 until the user p
02B270: 72 65 73 73 65 73 20 69 73 20 23 46 43 2C 20 20 resses is #FC,
02B280: 77 68 69 63 68 20 20 69 73 20 20 74 68 65 20 20 which is the
02B290: 76 61 6C 75 65 0D 0A 20 20 20 20 20 20 20 6E 6F value.. no
02B2A0: 72 6D 61 6C 6C 79 20 67 65 6E 65 72 61 74 65 64 rmally generated
02B2B0: 20 62 79 20 74 68 65 20 65 73 63 61 70 65 20 6B by the escape k
02B2C0: 65 79 2C 20 74 68 65 6E 20 74 68 65 20 43 61 73 ey, then the Cas
02B2D0: 73 65 74 74 65 20 20 4D 61 6E 61 67 65 72 20 20 sette Manager
02B2E0: 77 69 6C 6C 0D 0A 20 20 20 20 20 20 20 61 62 61 will.. aba
02B2F0: 6E 64 6F 6E 20 74 68 65 20 72 65 61 64 20 6F 72 ndon the read or
02B300: 20 77 72 69 74 65 20 61 6E 64 20 77 69 6C 6C 20 write and will
02B310: 72 65 74 75 72 6E 20 61 6E 20 65 72 72 6F 72 20 return an error
02B320: 20 63 6F 6E 64 69 74 69 6F 6E 20 20 74 6F 20 20 condition to
02B330: 74 68 65 0D 0A 20 20 20 20 20 20 20 63 61 6C 6C the.. call
02B340: 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 57 68 er..... Wh
02B350: 65 6E 20 72 65 61 64 69 6E 67 20 66 72 6F 6D 20 en reading from
02B360: 6F 72 20 77 72 69 74 69 6E 67 20 74 6F 20 74 68 or writing to th
02B370: 65 20 63 61 73 73 65 74 74 65 20 69 6E 74 65 72 e cassette inter
02B380: 72 75 70 74 73 20 20 61 72 65 20 20 64 69 73 61 rupts are disa
02B390: 62 6C 65 64 0D 0A 20 20 20 20 20 20 20 61 6E 64 bled.. and
02B3A0: 20 74 68 65 20 6E 6F 72 6D 61 6C 20 6B 65 79 20 the normal key
02B3B0: 73 63 61 6E 6E 69 6E 67 20 6D 65 63 68 61 6E 69 scanning mechani
02B3C0: 73 6D 20 69 73 20 6E 6F 74 20 61 63 74 69 76 65 sm is not active
02B3D0: 2E 20 57 68 69 6C 65 20 72 65 61 64 69 6E 67 20 . While reading
02B3E0: 20 6F 72 0D 0A 20 20 20 20 20 20 20 77 72 69 74 or.. writ
02B3F0: 69 6E 67 20 74 68 65 20 72 65 63 6F 72 64 20 20 ing the record
02B400: 6C 65 61 64 65 72 20 20 74 68 65 20 20 43 61 73 leader the Cas
02B410: 73 65 74 74 65 20 20 4D 61 6E 61 67 65 72 20 20 sette Manager
02B420: 69 74 73 65 6C 66 20 20 73 63 61 6E 73 20 20 74 itself scans t
02B430: 68 65 0D 0A 20 20 20 20 20 20 20 6B 65 79 62 6F he.. keybo
02B440: 61 72 64 20 74 6F 20 74 65 73 74 20 77 68 65 74 ard to test whet
02B450: 68 65 72 20 6B 65 79 20 36 36 2C 20 74 68 65 20 her key 66, the
02B460: 65 73 63 61 70 65 20 6B 65 79 2C 20 69 73 20 20 escape key, is
02B470: 70 72 65 73 73 65 64 2E 20 20 49 66 20 20 74 68 pressed. If th
02B480: 65 0D 0A 20 20 20 20 20 20 20 6B 65 79 20 69 73 e.. key is
02B490: 20 66 6F 75 6E 64 20 74 6F 20 62 65 20 70 72 65 found to be pre
02B4A0: 73 73 65 64 20 74 68 65 6E 20 74 68 65 20 43 61 ssed then the Ca
02B4B0: 73 73 65 74 74 65 20 4D 61 6E 61 67 65 72 20 61 ssette Manager a
02B4C0: 62 61 6E 64 6F 6E 73 20 74 68 65 20 72 65 61 64 bandons the read
02B4D0: 0D 0A 20 20 20 20 20 20 20 6F 72 20 77 72 69 74 .. or writ
02B4E0: 65 20 20 61 6E 64 20 20 72 65 74 75 72 6E 73 20 e and returns
02B4F0: 20 74 6F 20 20 74 68 65 20 20 63 61 6C 6C 65 72 to the caller
02B500: 20 20 28 77 69 74 68 20 20 61 6E 20 20 61 70 70 (with an app
02B510: 72 6F 70 72 69 61 74 65 20 20 65 72 72 6F 72 0D ropriate error.
02B520: 0A 20 20 20 20 20 20 20 63 6F 6E 64 69 74 69 6F . conditio
02B530: 6E 29 2E 20 57 68 69 6C 65 20 72 65 61 64 69 6E n). While readin
02B540: 67 20 61 6E 64 20 77 72 69 74 69 6E 67 20 74 68 g and writing th
02B550: 65 20 64 61 74 61 20 69 6E 20 74 68 65 20 72 65 e data in the re
02B560: 63 6F 72 64 20 74 68 65 72 65 20 20 69 73 0D 0A cord there is..
02B570: 20 20 20 20 20 20 20 6E 6F 20 77 61 79 20 74 6F no way to
02B580: 20 69 6E 74 65 72 72 75 70 74 20 74 68 65 20 43 interrupt the C
02B590: 61 73 73 65 74 74 65 20 4D 61 6E 61 67 65 72 2C assette Manager,
02B5A0: 20 74 68 75 73 20 70 72 65 73 73 69 6E 67 20 45 thus pressing E
02B5B0: 53 43 20 6D 61 79 20 6E 6F 74 20 62 65 0D 0A 20 SC may not be..
02B5C0: 20 20 20 20 20 20 64 65 74 65 63 74 65 64 20 66 detected f
02B5D0: 6F 72 20 73 65 76 65 72 61 6C 20 73 65 63 6F 6E or several secon
02B5E0: 64 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ds.........
02B5F0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
02B600: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
02B610: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
02B620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02B630: 70 61 67 65 20 38 2E 39 0D 0A 0D 0A 0D 0A 0D 0A page 8.9........
02B640: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 38 ........ 8
02B650: 2E 31 33 20 4C 6F 77 20 4C 65 76 65 6C 20 43 61 .13 Low Level Ca
02B660: 73 73 65 74 74 65 20 44 72 69 76 69 6E 67 2E 0D ssette Driving..
02B670: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 6F 20 61 ..... To a
02B680: 6C 6C 6F 77 20 74 68 65 20 75 73 65 72 20 74 6F llow the user to
02B690: 20 70 72 6F 64 75 63 65 20 61 20 6E 65 77 20 66 produce a new f
02B6A0: 69 6C 69 6E 67 20 73 79 73 74 65 6D 20 74 68 65 iling system the
02B6B0: 20 72 65 63 6F 72 64 20 20 72 65 61 64 20 20 61 record read a
02B6C0: 6E 64 0D 0A 20 20 20 20 20 20 20 77 72 69 74 65 nd.. write
02B6D0: 20 72 6F 75 74 69 6E 65 73 2C 20 43 41 53 20 52 routines, CAS R
02B6E0: 45 41 44 20 61 6E 64 20 43 41 53 20 57 52 49 54 EAD and CAS WRIT
02B6F0: 45 2C 20 61 72 65 20 69 6E 20 74 68 65 20 66 69 E, are in the fi
02B700: 72 6D 77 61 72 65 20 6A 75 6D 70 62 6C 6F 63 6B rmware jumpblock
02B710: 2E 0D 0A 20 20 20 20 20 20 20 54 68 65 72 65 20 ... There
02B720: 69 73 20 61 20 74 68 69 72 64 20 72 6F 75 74 69 is a third routi
02B730: 6E 65 20 61 74 20 74 68 69 73 20 6C 65 76 65 6C ne at this level
02B740: 2C 20 43 41 53 20 20 43 48 45 43 4B 2C 20 20 77 , CAS CHECK, w
02B750: 68 6F 73 65 20 20 66 61 63 69 6C 69 74 69 65 73 hose facilities
02B760: 0D 0A 20 20 20 20 20 20 20 61 72 65 20 6E 6F 74 .. are not
02B770: 20 75 73 65 64 20 62 79 20 74 68 65 20 68 69 67 used by the hig
02B780: 68 65 72 20 6C 65 76 65 6C 73 20 6F 66 20 74 68 her levels of th
02B790: 65 20 43 61 73 73 65 74 74 65 20 4D 61 6E 61 67 e Cassette Manag
02B7A0: 65 72 2E 20 20 49 74 20 20 61 6C 6C 6F 77 73 0D er. It allows.
02B7B0: 0A 20 20 20 20 20 20 20 74 68 65 20 64 61 74 61 . the data
02B7C0: 20 74 68 61 74 20 68 61 73 20 62 65 65 6E 20 77 that has been w
02B7D0: 72 69 74 74 65 6E 20 74 6F 20 74 61 70 65 20 74 ritten to tape t
02B7E0: 6F 20 62 65 20 63 6F 6D 70 61 72 65 64 20 77 69 o be compared wi
02B7F0: 74 68 20 74 68 65 20 64 61 74 61 20 69 6E 0D 0A th the data in..
02B800: 20 20 20 20 20 20 20 73 74 6F 72 65 2E 20 54 68 store. Th
02B810: 69 73 20 63 6F 75 6C 64 20 62 65 20 75 73 65 64 is could be used
02B820: 20 74 6F 20 70 65 72 66 6F 72 6D 20 61 20 72 65 to perform a re
02B830: 61 64 20 77 72 69 74 65 20 63 68 65 63 6B 20 69 ad write check i
02B840: 66 20 73 6F 20 64 65 73 69 72 65 64 2E 0D 0A 0D f so desired....
02B850: 0A 0D 0A 20 20 20 20 20 20 20 41 6C 73 6F 20 61 ... Also a
02B860: 76 61 69 6C 61 62 6C 65 20 69 6E 20 74 68 65 20 vailable in the
02B870: 66 69 72 6D 77 61 72 65 20 6A 75 6D 70 62 6C 6F firmware jumpblo
02B880: 63 6B 20 20 61 72 65 20 20 72 6F 75 74 69 6E 65 ck are routine
02B890: 73 20 20 74 6F 20 20 74 75 72 6E 20 20 74 68 65 s to turn the
02B8A0: 0D 0A 20 20 20 20 20 20 20 63 61 73 73 65 74 74 .. cassett
02B8B0: 65 20 6D 6F 74 6F 72 20 6F 6E 20 61 6E 64 20 6F e motor on and o
02B8C0: 66 66 20 28 43 41 53 20 53 54 41 52 54 20 4D 4F ff (CAS START MO
02B8D0: 54 4F 52 20 61 6E 64 20 43 41 53 20 53 54 4F 50 TOR and CAS STOP
02B8E0: 20 4D 4F 54 4F 52 29 2E 20 49 74 20 20 69 73 0D MOTOR). It is.
02B8F0: 0A 20 20 20 20 20 20 20 6E 6F 74 20 6E 65 63 65 . not nece
02B900: 73 73 61 72 79 20 74 6F 20 74 75 72 6E 20 74 68 ssary to turn th
02B910: 65 20 6D 6F 74 6F 72 20 6F 6E 20 61 6E 64 20 6F e motor on and o
02B920: 66 66 20 61 72 6F 75 6E 64 20 61 20 63 61 6C 6C ff around a call
02B930: 20 6F 66 20 43 41 53 20 20 52 45 41 44 2C 0D 0A of CAS READ,..
02B940: 20 20 20 20 20 20 20 43 41 53 20 57 52 49 54 45 CAS WRITE
02B950: 20 6F 72 20 43 41 53 20 43 48 45 43 4B 20 61 73 or CAS CHECK as
02B960: 20 74 68 65 73 65 20 72 6F 75 74 69 6E 65 73 20 these routines
02B970: 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 74 75 automatically tu
02B980: 72 6E 20 74 68 65 20 20 6D 6F 74 6F 72 0D 0A 20 rn the motor..
02B990: 20 20 20 20 20 20 6F 6E 20 61 6E 64 20 6F 66 66 on and off
02B9A0: 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02B9B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02B9C0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02B9D0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02B9E0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02B9F0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
02BA00: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
02BA10: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
02BA20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02BA30: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
02BA40: 38 2E 31 30 0D 0A 1A 65 61 6C 73 20 77 69 74 68 8.10...eals with
02BA50: 20 72 65 61 64 69 6E 67 20 66 69 6C 65 73 20 66 reading files f
02BA60: 72 6F 6D 20 61 6E 64 20 20 77 72 69 74 69 6E 67 rom and writing
02BA70: 20 20 66 69 6C 65 73 0D 0A 20 20 20 20 20 20 20 files..
02BA80: 63 6B 20 20 61 72 65 20 20 72 6F 75 74 69 6E 65 ck are routine
02BA90: 73 20 20 74 6F 20 20 74 75 72 6E 20 20 74 68 65 s to turn the
02BAA0: 0D 0A 20 20 20 20 20 20 20 63 61 73 73 65 74 74 .. cassett
02BAB0: 65 20 6D 6F 74 6F 72 20 6F 6E 20 61 6E 64 20 6F e motor on and o
02BAC0: 66 66 20 28 43 41 53 20 53 54 41 52 54 20 4D 4F ff (CAS START MO
02BAD0: 54 4F 52 20 61 6E 64 20 43 41 53 20 53 54 4F 50 TOR and CAS STOP
02BAE0: 20 4D 4F 54 4F 52 29 2E 20 49 74 20 20 69 73 0D MOTOR). It is.
02BAF0: 0A 20 20 20 20 20 20 20 6E 6F 74 20 6E 65 63 65 . not nece
02BB00: 73 73 61 72 79 20 74 6F 20 74 75 72 6E 20 74 68 ssary to turn th
02BB10: 65 20 6D 6F 74 6F 72 20 6F 6E 20 61 6E 64 20 6F e motor on and o
02BB20: 66 66 20 61 72 6F 75 6E 64 20 61 20 63 61 6C 6C ff around a call
02BB30: 20 6F 66 20 43 41 53 20 20 52 45 41 44 2C 0D 0A of CAS READ,..
02BB40: 20 20 20 20 20 20 20 43 41 53 20 57 52 49 54 45 CAS WRITE
02BB50: 20 6F 72 20 43 41 53 20 43 48 45 43 4B 20 61 73 or CAS CHECK as
02BB60: 20 74 68 65 73 65 20 72 6F 75 74 69 6E 65 73 20 these routines
02BB70: 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 74 75 automatically tu
02BB80: 72 6E 20 74 68 65 20 20 6D 6F 74 6F 72 0D 0A 20 rn the motor..
02BB90: 20 20 20 20 20 20 6F 6E 20 61 6E 64 20 6F 66 66 on and off
02BBA0: 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02BBB0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02BBC0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02BBD0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02BBE0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02BBF0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
02BC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE00: 00 44 49 53 43 20 20 20 20 42 41 53 00 00 00 00 .DISC BAS....
02BE10: 00 00 00 00 00 70 01 00 6C 00 00 00 00 00 00 00 .....p..l.......
02BE20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BE30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BE40: 6C 00 00 C2 03 5A 00 0A 00 AD 20 10 01 82 20 0F l....Z.... ... .
02BE50: 01 A2 20 0E 2C 0F 01 A2 20 0F 2C 0F 01 BB 20 0F .. .,... .,... .
02BE60: 01 BA 20 0E 01 AA 20 1C A2 38 01 A8 22 74 69 74 .. ... ..8.."tit
02BE70: 6C 65 2E 62 69 6E 22 2C 1C A3 38 01 83 20 1C A3 le.bin",.£8.. .£
02BE80: 5A 00 0A 00 AD 20 10 01 82 20 0F 01 A2 20 0E 2C Z.... ... ... .,
02BE90: 0F 01 A2 20 0F 2C 0F 01 BB 20 0F 01 BA 20 0E 01 ... .,... ... ..
02BEA0: AA 20 1C A2 38 01 A8 22 74 69 74 6C 65 2E 62 69 . ..8.."title.bi
02BEB0: 6E 22 2C 1C A3 38 01 83 20 1C A3 38 01 A8 22 64 n",.£8.. .£8.."d
02BEC0: 75 6D 70 2E 62 69 6E 22 2C 1C 00 85 01 83 20 1C ump.bin",..... .
02BED0: 00 85 01 A2 20 0F 2C 19 1A 00 10 00 14 00 CA 22 .... .,........"
02BEE0: 73 74 61 72 74 2E 62 61 73 00 00 00 1A 73 00 00 start.bas....s..
02BEF0: 00 1A 00 1A 38 20 66 69 72 6D 77 61 72 65 20 67 ....8 firmware g
02BF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
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: 00 07 C0 00 00 30 0F 18 00 0C 00 0C 07 8C 03 C6 .....0..........
02C110: 00 03 00 03 01 E3 00 F8 20 F0 38 10 00 0F E0 07 ........ .8.....
02C120: C0 00 00 00 00 00 00 00 00 00 00 00 00 03 E3 00 ................
02C130: 00 07 C0 03 E0 00 00 00 00 00 7E 03 E0 00 00 00 ..........~.....
02C140: 00 07 80 00 00 00 00 1E 00 00 00 00 00 07 C0 00 ................
02C150: 00 70 1F 04 00 1C 00 18 0F 82 07 C1 00 07 00 06 .p..............
02C160: 03 E0 87 F8 40 F8 7C 08 00 0F E0 03 80 00 00 00 ....@.|.........
02C170: 00 00 00 00 00 00 00 00 00 07 E0 80 00 03 80 03 ................
02C180: E0 00 00 00 00 00 7E 03 E7 C0 3E 00 00 07 80 77 ......~...>....w
02C190: BC 07 F0 3E 03 E7 01 F8 01 F7 C0 00 00 F0 3F 00 ...>..........?.
02C1A0: 00 3C 00 18 1F 80 0F C0 00 0F 00 06 07 E0 01 F8 .<..............
02C1B0: 80 F8 7F 08 00 0F E0 00 07 CE 3B DE 1E 38 80 FC ..........;..8..
02C1C0: 07 CE 03 E0 00 07 E0 47 C7 C0 00 FB E0 3E 00 00 .......G.....>..
02C1D0: 00 00 7E 03 EF E0 FF 80 00 0F C0 7B DE 0E 18 FF ..~........{....
02C1E0: C3 EB 06 1E 07 CF C0 00 01 F0 3F 00 00 7C 00 30 ..........?..|.0
02C1F0: 1F 80 0F C0 00 1F 00 0C 07 E0 01 F8 81 F8 7F 88 ................
02C200: 00 0F E0 00 07 D6 3D EF 1E 38 83 0F 07 D6 0F F8 ......=..8......
02C210: 00 0F E0 07 C7 C0 03 E7 E0 FF 80 00 00 00 7E 03 ..............~.
02C220: F3 E1 E3 80 00 0F C0 73 9E 1F 00 3E 03 F0 08 1F .......s...>....
02C230: 07 87 C0 00 03 F0 7F 00 00 FC 00 60 3F 80 1F C0 ...........`?...
02C240: 00 3F 00 18 0F E0 01 F8 81 F8 7F D0 00 0F FF C7 .?..............
02C250: C7 E0 39 CF 1E 38 84 0F 87 E0 1E 38 00 0F E0 07 ..9..8.....8....
02C260: C7 C7 C3 C3 E1 E3 80 00 00 00 7E 03 E3 E1 E3 C0 ..........~.....
02C270: 00 0F E0 73 9E 1F 80 3E 03 F0 00 1F 0F 87 C0 00 ...s...>........
02C280: 07 F0 7F 78 01 FC 00 60 3F BC 1F DE 00 7F 00 18 ...x...`?.......
02C290: 0F EF 01 F8 43 F0 3F E0 00 0F E0 07 C7 E0 39 CF ....C.?.......9.
02C2A0: 1F 7D 80 0F 87 E0 1E 3C 00 0F E0 07 C7 C7 C7 C3 .}.....<........
02C2B0: E1 E3 C0 00 00 00 7E 03 E3 E3 E3 C0 00 13 E0 73 ......~........s
02C2C0: 9E 1F C0 3E 03 E0 03 DF 0F 87 C0 00 0F F0 7F 04 ...>............
02C2D0: 03 FC 00 C0 3F 82 1F C1 00 FF 00 30 0F E0 81 F8 ....?......0....
02C2E0: 03 F0 1F F0 00 0F E0 07 C7 C0 39 CF 0F 7D 01 EF ..........9..}..
02C2F0: 87 C0 3E 3C 00 0F EF C7 C7 C7 C7 C3 E3 E3 C0 00 ..><............
02C300: 00 44 55 4D 50 20 20 20 20 4D 53 48 00 00 00 00 .DUMP MSH....
02C310: 00 00 02 00 00 00 85 00 F5 03 00 00 00 00 00 00 ................
02C320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C340: F5 03 00 15 05 65 20 6C 61 73 74 20 6C 69 6E 65 .....e last line
02C350: 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E 20 70 of the screen p
02C360: 72 6F 70 65 72 6C 79 20 2A 2A 0A 0D 0A 0D 3C 3C roperly **....<<
02C370: 20 50 52 45 53 53 20 53 50 41 43 45 20 3E 3E 00 PRESS SPACE >>.
02C380: 01 BB 88 21 E8 88 CD D1 BC C9 FE 01 C2 CE 86 CD ...!............
02C390: 2A 85 CD 4A 85 CD 21 85 CD 53 85 21 8F 01 C3 AB *..J..!..S.!....
02C3A0: 85 06 00 21 9A 86 09 7E 4F C9 21 E8 86 11 D3 85 ...!...~O.!.....
02C3B0: 01 02 00 ED B0 C9 FE 02 C2 CE 86 CD 2A 85 CD 4A ............*..J
02C3C0: 85 CD 21 85 CD 53 85 C3 64 85 DD 7E 00 4F DD 7E ..!..S..d..~.O.~
02C3D0: 01 47 C9 ED 43 EC 88 CD BA BB CD E7 BB 32 EE 88 .G..C........2..
02C3E0: CD 09 86 C9 DD 6E 02 DD 66 03 C3 AB 85 FE 01 C2 .....n..f.......
02C3F0: CE 86 CD 7E 85 CD 8A 85 21 8F 01 C3 AB 85 21 E6 ...~....!.....!.
02C400: 86 11 D3 85 01 02 00 ED B0 C9 CD 4A 85 CD A2 85 ...........J....
02C410: CD 53 85 C9 FE 02 C2 CE 86 CD 7E 85 CD 8A 85 C3 .S........~.....
02C420: 64 85 06 00 21 B4 86 09 7E 4F C9 22 EF 88 11 00 d...!...~O."....
02C430: 00 3E 07 32 F1 88 CD 14 86 0E 00 3A F1 88 47 E5 .>.2.......:..G.
02C440: D5 C5 CD F0 BB C1 D1 21 EE 88 BE E1 37 20 01 A7 .......!....7 ..
02C450: CB 11 2B 2B 00 10 E8 CD 6F 86 79 CD 66 86 13 E5 ..++....o.y.f...
02C460: 21 7F 02 37 ED 52 E1 38 05 2A EF 88 18 CB 23 7C !..7.R.8.*....#|
02C470: B5 C8 2B 11 00 00 22 EF 88 3E 07 BD 20 B8 7C B4 ..+..."..>.. .|.
02C480: 20 B4 3E 04 32 F1 88 18 AD 3E 1B CD 66 86 3E 31 .>.2....>..f.>1
02C490: CD 66 86 C9 E5 3E 42 CD 1E BB E1 28 04 E1 C3 59 .f...>B....(...Y
02C4A0: 86 ED 4B EC 88 79 FE 00 20 04 E1 C3 59 86 3D 4F ..K..y.. ...Y.=O
02C4B0: ED 43 EC 88 AF 3E 0A CD 66 86 3E 0D CD 66 86 3E .C...>..f.>..f.>
02C4C0: 1B CD 66 86 3E 2A CD 66 86 3E 04 CD 66 86 3E 7F ..f.>*.f.>..f.>.
02C4D0: CD 66 86 3E 02 CD 66 86 C9 21 6A 86 7E FE 00 C8 .f.>..f..!j.~...
02C4E0: CD 66 86 23 18 F6 CD 2B BD C9 0A 0D 1B 32 00 3A .f.#...+.....2.:
02C4F0: F1 88 FE 07 C8 AF CB 11 CB 11 CB 11 C9 CD 11 BC ................
02C500: F5 3E 02 CD 0E BC CD D5 86 3E 2F CD 1E BB FE 00 .>.......>/.....
02C510: 28 F7 CD 03 BB F1 CD 0E BC C9 00 01 03 04 05 06 (...............
02C520: 07 08 09 0B 0C 0D 0E 0F 10 11 13 14 15 16 17 18 ................
02C530: 19 1B 1C 1D 00 03 05 07 09 0C 0E 10 12 17 19 1B ................
02C540: 1D 20 22 24 26 29 2B 2D 2F 32 34 36 38 3B 21 EA . "$&)+-/2468;!.
02C550: 86 CD DC 86 C9 21 13 87 CD DC 86 C9 7E FE 00 C8 .....!......~...
02C560: CD 5A BB 23 18 F6 00 00 2B 00 07 2A 20 2A 20 2A .Z.#....+..* * *
02C570: 20 50 61 72 61 6D 65 74 65 72 20 45 72 72 6F 72 Parameter Error
02C580: 20 2A 20 2A 20 2A 0A 0D 55 73 65 20 7C 48 45 4C * * *..Use |HEL
02C590: 50 07 00 7C 44 55 4D 50 2C 6E 20 2D 20 77 68 65 P..|DUMP,n - whe
02C5A0: 72 65 20 6E 20 3D 20 61 20 6E 75 6D 62 65 72 20 re n = a number
02C5B0: 66 72 6F 6D 20 31 20 74 6F 20 32 35 2E 0A 0D 7C from 1 to 25...|
02C5C0: 50 2E 44 55 4D 50 2C 6E 6E 2C 6E 20 2D 20 77 68 P.DUMP,nn,n - wh
02C5D0: 65 72 65 20 6E 6E 20 3D 20 61 20 6E 75 6D 62 65 ere nn = a numbe
02C5E0: 72 20 66 72 6F 6D 20 33 39 39 20 74 6F 20 30 2E r from 399 to 0.
02C5F0: 0A 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02C600: 20 20 20 20 20 20 20 20 6E 20 3D 20 61 20 6E 75 n = a nu
02C610: 6D 62 65 72 20 66 72 6F 6D 20 31 20 74 6F 20 32 mber from 1 to 2
02C620: 35 2E 0A 0D 7C 42 2E 44 55 4D 50 2C 6E 20 2D 20 5...|B.DUMP,n -
02C630: 77 68 65 72 65 20 6E 20 3D 20 61 20 6E 75 6D 62 where n = a numb
02C640: 65 72 20 66 72 6F 6D 20 31 20 74 6F 20 32 35 2E er from 1 to 25.
02C650: 0A 0D 7C 42 50 2E 44 55 4D 50 2C 6E 6E 2C 6E 20 ..|BP.DUMP,nn,n
02C660: 2D 20 77 68 65 72 65 20 6E 6E 20 3D 20 61 20 6E - where nn = a n
02C670: 75 6D 62 65 72 20 66 72 6F 6D 20 33 39 39 20 74 umber from 399 t
02C680: 6F 20 30 2E 0A 0D 20 20 20 20 20 20 20 20 20 20 o 0...
02C690: 20 20 20 20 20 20 20 20 20 20 20 20 20 6E 20 3D n =
02C6A0: 20 61 20 6E 75 6D 62 65 72 20 66 72 6F 6D 20 31 a number from 1
02C6B0: 20 74 6F 20 32 35 2E 0A 0D 7C 48 45 4C 50 20 2D to 25...|HELP -
02C6C0: 20 64 69 73 70 6C 61 79 20 52 53 58 20 63 6F 6D display RSX com
02C6D0: 6D 61 6E 64 73 2E 0A 0D 2A 2A 20 7C 42 2E 44 55 mands...** |B.DU
02C6E0: 4D 50 20 61 6E 64 20 7C 42 50 2E 44 55 4D 50 20 MP and |BP.DUMP
02C6F0: 77 69 6C 6C 20 6E 6F 74 20 64 75 6D 70 20 74 68 will not dump th
02C700: 65 20 6C 61 73 74 20 6C 69 6E 65 20 6F 66 20 74 e last line of t
02C710: 68 65 20 73 63 72 65 65 6E 20 70 72 6F 70 65 72 he screen proper
02C720: 6C 79 20 2A 2A 0A 0D 0A 0D 3C 3C 20 50 52 45 53 ly **....<< PRES
02C730: 53 20 53 50 41 43 45 20 3E 3E 00 CC 88 C3 0A 85 S SPACE >>......
02C740: C3 36 85 C3 6D 85 C3 94 85 C3 7D 86 44 55 4D D0 .6..m.....}.DUM.
02C750: 50 2E 44 55 4D D0 42 2E 44 55 4D D0 42 50 2E 44 P.DUM.B.DUM.BP.D
02C760: 55 4D D0 48 45 4C D0 00 FC A6 BB 88 00 00 00 00 UM.HEL..........
02C770: 00 00 00 00 00 1A 20 63 70 20 31 20 20 20 20 20 ...... cp 1
02C780: 20 2A 20 2A 20 2A 0A 0D 55 73 65 20 7C 48 45 4C * * *..Use |HEL
02C790: 50 07 00 7C 44 55 4D 50 2C 6E 20 2D 20 77 68 65 P..|DUMP,n - whe
02C7A0: 72 65 20 6E 20 3D 20 61 20 6E 75 6D 62 65 72 20 re n = a number
02C7B0: 66 72 6F 6D 20 31 20 74 6F 20 32 35 2E 0A 0D 7C from 1 to 25...|
02C7C0: 50 2E 44 55 4D 50 2C 6E 6E 2C 6E 20 2D 20 77 68 P.DUMP,nn,n - wh
02C7D0: 65 72 65 20 6E 6E 20 3D 20 61 20 6E 75 6D 62 65 ere nn = a numbe
02C7E0: 72 20 66 72 6F 6D 20 33 39 39 20 74 6F 20 30 2E r from 399 to 0.
02C7F0: 0A 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02C800: 20 20 20 20 20 20 20 20 6E 20 3D 20 61 20 6E 75 n = a nu
02C810: 6D 62 65 72 20 66 72 6F 6D 20 31 20 74 6F 20 32 mber from 1 to 2
02C820: 35 2E 0A 0D 7C 42 2E 44 55 4D 50 2C 6E 20 2D 20 5...|B.DUMP,n -
02C830: 77 68 65 72 65 20 6E 20 3D 20 61 20 6E 75 6D 62 where n = a numb
02C840: 65 72 20 66 72 6F 6D 20 31 20 74 6F 20 32 35 2E er from 1 to 25.
02C850: 0A 0D 7C 42 50 2E 44 55 4D 50 2C 6E 6E 2C 6E 20 ..|BP.DUMP,nn,n
02C860: 2D 20 77 68 65 72 65 20 6E 6E 20 3D 20 61 20 6E - where nn = a n
02C870: 75 6D 62 65 72 20 66 72 6F 6D 20 33 39 39 20 74 umber from 399 t
02C880: 6F 20 30 2E 0A 0D 20 20 20 20 20 20 20 20 20 20 o 0...
02C890: 20 20 20 20 20 20 20 20 20 20 20 20 20 6E 20 3D n =
02C8A0: 20 61 20 6E 75 6D 62 65 72 20 66 72 6F 6D 20 31 a number from 1
02C8B0: 20 74 6F 20 32 35 2E 0A 0D 7C 48 45 4C 50 20 2D to 25...|HELP -
02C8C0: 20 64 69 73 70 6C 61 79 20 52 53 58 20 63 6F 6D display RSX com
02C8D0: 6D 61 6E 64 73 2E 0A 0D 2A 2A 20 7C 42 2E 44 55 mands...** |B.DU
02C8E0: 4D 50 20 61 6E 64 20 7C 42 50 2E 44 55 4D 50 20 MP and |BP.DUMP
02C8F0: 77 69 6C 6C 20 6E 6F 74 20 64 75 6D 70 20 74 68 will not dump th
02C900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB00: 00 50 54 49 54 4C 45 20 20 42 41 53 00 00 00 00 .PTITLE BAS....
02CB10: 00 00 00 00 00 70 01 00 D8 00 00 00 00 00 00 00 .....p..........
02CB20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CB30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CB40: D8 00 00 09 05 70 72 65 73 73 20 61 6E 79 20 6B .....press any k
02CB50: 65 79 2E 2E 2E 22 01 83 20 1C 03 BB 01 83 20 1C ey...".. ..... .
02CB60: 18 BB 00 0A 00 32 00 83 20 1C A3 38 00 2E 00 3C .....2.. .£8...<
02CB70: 00 9E 20 0D 00 00 E1 EF 0F 20 EC 20 19 0D 01 7C .. ...... . ...|
02CB80: 1F 00 0A 00 AD 20 10 01 AA 20 1C A2 38 01 A8 22 ..... ... ..8.."
02CB90: 74 69 74 6C 65 2E 62 69 6E 22 2C 1C A3 38 00 1A title.bin",.£8..
02CBA0: 00 14 00 A8 22 64 75 6D 70 2E 62 69 6E 22 2C 1C ...."dump.bin",.
02CBB0: 00 85 01 83 20 1C 00 85 00 1D 00 1E 00 A2 20 0F .... ......... .
02CBC0: 2C 19 1A 01 A2 20 0E 2C 0F 01 82 20 0F 01 BA 20 ,.... .,... ...
02CBD0: 0E 01 BB 20 0F 00 48 00 28 00 A9 20 19 14 2C 19 ... ..H.(.. ..,.
02CBE0: 0A 01 BF 22 07 50 6C 65 61 73 65 20 74 75 72 6E ...".Please turn
02CBF0: 20 6F 6E 20 70 72 69 6E 74 65 72 20 61 6E 64 20 on printer and
02CC00: 70 72 65 73 73 20 61 6E 79 20 6B 65 79 2E 2E 2E press any key...
02CC10: 22 01 83 20 1C 03 BB 01 83 20 1C 18 BB 00 0A 00 ".. ..... ......
02CC20: 32 00 83 20 1C A3 38 00 2E 00 3C 00 9E 20 0D 00 2.. .£8...<.. ..
02CC30: 00 E1 EF 0F 20 EC 20 19 0D 01 7C 00 42 2E 44 55 .... . ...|.B.DU
02CC40: 4D D0 2C 11 01 B0 01 BF 23 16 2C FF 03 28 19 0C M.,.....#.,..(..
02CC50: 29 01 83 20 0E 00 00 00 1A FF FF F0 1A 00 40 00 ).. ..........@.
02CC60: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
02CC70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
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: 9F 20 1E 16 03 20 01 97 20 CA 22 61 70 65 6E 36 . ... .. ."apen6
02CD10: 2E 62 61 73 00 18 00 0E 06 A8 22 73 65 74 36 2D .bas......"set6-
02CD20: 31 22 2C 1C 00 40 01 9F 20 1E 82 05 00 18 00 18 1",..@.. .......
02CD30: 06 A8 22 73 65 74 36 2D 32 22 2C 1C 00 40 01 9F .."set6-2",..@..
02CD40: 20 1E 82 05 00 23 00 22 06 A8 22 73 65 74 62 36 ....#.".."setb6
02CD50: 2D 32 22 2C 1C 00 40 01 9F 20 1E 82 05 01 AD 20 -2",..@.. .....
02CD60: 10 01 9F 20 1E 78 05 00 1C 00 2C 06 03 00 00 66 ... .x....,....f
02CD70: 69 6C E5 EF 22 61 70 65 6E 36 2D 62 22 01 9F 20 il.."apen6-b"..
02CD80: 1E 16 03 00 22 00 36 06 A8 22 62 6C 6F 63 6B 73 ....".6.."blocks
02CD90: 22 2C 1C 00 40 01 9F 20 1E 82 05 01 AD 20 10 01 ",..@.. ..... ..
02CDA0: 9F 20 1E 78 05 00 1C 00 40 06 03 00 00 66 69 6C . .x....@....fil
02CDB0: E5 EF 22 61 70 65 6E 36 2D 63 22 01 9F 20 1E 16 .."apen6-c".. ..
02CDC0: 03 00 17 00 4A 06 A8 22 6C 69 6E 65 73 22 2C 1C ....J.."lines",.
02CDD0: 00 40 01 9F 20 1E 82 05 00 1A 00 54 06 A8 22 36 .@.. ......T.."6
02CDE0: 2D 35 63 68 61 72 73 22 2C 1C 00 40 01 9F 20 1E -5chars",..@.. .
02CDF0: 82 05 00 1A 00 5E 06 A8 22 36 2D 36 63 68 61 2D .....^.."6-6cha-
02CE00: 74 22 2C 1C 00 40 01 9F 20 1E 82 05 00 1A 00 68 t",..@.. ......h
02CE10: 06 A8 22 36 2D 36 63 68 61 2D 62 22 2C 1C 00 40 .."6-6cha-b",..@
02CE20: 01 9F 20 1E 82 05 00 19 00 72 06 A8 22 36 2D 37 .. ......r.."6-7
02CE30: 63 68 61 72 22 2C 1C 00 40 01 9F 20 1E 82 05 00 char",..@.. ....
02CE40: 19 00 7C 06 A8 22 36 2D 38 63 68 61 72 22 2C 1C ..|.."6-8char",.
02CE50: 00 40 01 9F 20 1E 82 05 00 19 00 86 06 A8 22 36 .@.. ........."6
02CE60: 2D 39 63 68 61 72 22 2C 1C 00 40 01 9F 20 1E 82 -9char",..@.. ..
02CE70: 05 00 14 00 90 06 AD 20 10 01 9F 20 1E 78 05 01 ....... ... .x..
02CE80: A0 20 1E 3E 03 00 12 00 9A 06 C7 20 1E A4 06 01 . .>....... ....
02CE90: 9F 20 1E CE 04 01 C9 00 20 00 A4 06 8C 20 22 61 . ...... .... "a
02CEA0: 70 65 6E 2D 31 31 2E 70 31 22 2C 22 61 70 65 6E pen-11.p1","apen
02CEB0: 2D 31 31 2E 70 32 22 00 4B 00 AE 06 03 00 00 66 -11.p2".K......f
02CEC0: 69 6C E5 EF 22 61 70 65 6E 2D 38 22 01 9F 20 1E il.."apen-8".. .
02CED0: 02 03 01 9F 20 1E 70 03 01 9F 20 1E 0C 03 01 A1 .... .p... .....
02CEE0: 20 0D 00 00 E6 EF 0E 20 EB 20 9F 20 1E 16 03 20 ...... . . ...
02CEF0: 01 97 20 CA 22 61 70 70 65 6E 64 2D 38 2E 62 61 .. ."append-8.ba
02CF00: 00 54 49 54 4C 45 20 20 20 42 49 4E 00 00 00 00 .TITLE BIN....
02CF10: 00 00 02 00 00 A3 38 00 5C 07 00 00 00 00 00 00 .....£8.\.......
02CF20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CF30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CF40: 5C 07 00 5E 04 00 00 00 00 00 00 00 00 00 00 00 \..^............
02CF50: 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF ................
02CF60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
02CF70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
02CF80: 11 DF 38 21 02 C0 06 18 C5 E5 06 4C 1A 77 13 23 ..8!.......L.w.#
02CF90: 10 FA E1 01 00 08 09 30 06 01 B0 3F A7 ED 42 C1 .......0...?..B.
02CFA0: 10 E6 C9 00 00 00 00 00 00 00 00 01 00 0D 1A 01 ................
02CFB0: 05 0E 08 04 03 06 07 10 0F 18 12 09 00 00 00 00 ................
02CFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CFD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CFE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CFF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D0A0: 00 07 FF E3 E0 00 00 00 00 03 00 00 00 00 00 06 ................
02D0B0: 00 00 00 00 00 07 C0 00 00 10 03 E0 00 04 00 06 ................
02D0C0: 01 F0 00 F8 00 01 00 01 80 7C 00 18 1F E0 1F E0 .........|......
02D0D0: 00 0F FF 83 80 00 00 00 00 00 00 00 00 00 00 00 ................
02D0E0: 00 00 FC 00 00 03 80 03 E0 00 00 00 00 00 7E 03 ..............~.
02D0F0: E0 00 00 00 00 03 00 00 00 00 00 0E 00 00 00 00 ................
02D100: 00 07 C0 00 00 30 0F 18 00 0C 00 0C 07 8C 03 C6 .....0..........
02D110: 00 03 00 03 01 E3 00 F8 20 F0 38 10 00 0F E0 07 ........ .8.....
02D120: C0 00 00 00 00 00 00 00 00 00 00 00 00 03 E3 00 ................
02D130: 00 07 C0 03 E0 00 00 00 00 00 7E 03 E0 00 00 00 ..........~.....
02D140: 00 07 80 00 00 00 00 1E 00 00 00 00 00 07 C0 00 ................
02D150: 00 70 1F 04 00 1C 00 18 0F 82 07 C1 00 07 00 06 .p..............
02D160: 03 E0 87 F8 40 F8 7C 08 00 0F E0 03 80 00 00 00 ....@.|.........
02D170: 00 00 00 00 00 00 00 00 00 07 E0 80 00 03 80 03 ................
02D180: E0 00 00 00 00 00 7E 03 E7 C0 3E 00 00 07 80 77 ......~...>....w
02D190: BC 07 F0 3E 03 E7 01 F8 01 F7 C0 00 00 F0 3F 00 ...>..........?.
02D1A0: 00 3C 00 18 1F 80 0F C0 00 0F 00 06 07 E0 01 F8 .<..............
02D1B0: 80 F8 7F 08 00 0F E0 00 07 CE 3B DE 1E 38 80 FC ..........;..8..
02D1C0: 07 CE 03 E0 00 07 E0 47 C7 C0 00 FB E0 3E 00 00 .......G.....>..
02D1D0: 00 00 7E 03 EF E0 FF 80 00 0F C0 7B DE 0E 18 FF ..~........{....
02D1E0: C3 EB 06 1E 07 CF C0 00 01 F0 3F 00 00 7C 00 30 ..........?..|.0
02D1F0: 1F 80 0F C0 00 1F 00 0C 07 E0 01 F8 81 F8 7F 88 ................
02D200: 00 0F E0 00 07 D6 3D EF 1E 38 83 0F 07 D6 0F F8 ......=..8......
02D210: 00 0F E0 07 C7 C0 03 E7 E0 FF 80 00 00 00 7E 03 ..............~.
02D220: F3 E1 E3 80 00 0F C0 73 9E 1F 00 3E 03 F0 08 1F .......s...>....
02D230: 07 87 C0 00 03 F0 7F 00 00 FC 00 60 3F 80 1F C0 ...........`?...
02D240: 00 3F 00 18 0F E0 01 F8 81 F8 7F D0 00 0F FF C7 .?..............
02D250: C7 E0 39 CF 1E 38 84 0F 87 E0 1E 38 00 0F E0 07 ..9..8.....8....
02D260: C7 C7 C3 C3 E1 E3 80 00 00 00 7E 03 E3 E1 E3 C0 ..........~.....
02D270: 00 0F E0 73 9E 1F 80 3E 03 F0 00 1F 0F 87 C0 00 ...s...>........
02D280: 07 F0 7F 78 01 FC 00 60 3F BC 1F DE 00 7F 00 18 ...x...`?.......
02D290: 0F EF 01 F8 43 F0 3F E0 00 0F E0 07 C7 E0 39 CF ....C.?.......9.
02D2A0: 1F 7D 80 0F 87 E0 1E 3C 00 0F E0 07 C7 C7 C7 C3 .}.....<........
02D2B0: E1 E3 C0 00 00 00 7E 03 E3 E3 E3 C0 00 13 E0 73 ......~........s
02D2C0: 9E 1F C0 3E 03 E0 03 DF 0F 87 C0 00 0F F0 7F 04 ...>............
02D2D0: 03 FC 00 C0 3F 82 1F C1 00 FF 00 30 0F E0 81 F8 ....?......0....
02D2E0: 03 F0 1F F0 00 0F E0 07 C7 C0 39 CF 0F 7D 01 EF ..........9..}..
02D2F0: 87 C0 3E 3C 00 0F EF C7 C7 C7 C7 C3 E3 E3 C0 00 ..><............
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: 00 00 7E 03 E3 E3 E3 C0 00 13 F0 73 9E 0F E0 3E ..~........s...>
02D410: 03 E0 0F BF 0F 87 C0 00 1B F0 7F 02 06 FC 01 80 ................
02D420: 3F 81 1F C0 81 BF 00 60 0F E0 41 F8 07 E0 3F F8 ?......`..A...?.
02D430: 00 0F E0 07 C7 C0 39 CF 0F 7D 07 DF 87 C0 3E 3C ......9..}....><
02D440: 00 0F E0 47 C7 C7 C7 C3 E3 E3 C0 00 00 00 7E 03 ...G..........~.
02D450: E3 E3 FF C0 00 21 F0 73 9E 07 F0 3E 03 E0 1F 1F .....!.s...>....
02D460: 0F 87 C0 00 33 F0 7F 02 0C FC 01 80 3F 81 1F C0 ....3.......?...
02D470: 83 3F 00 60 0F E0 41 F8 0F E0 47 FC 00 0F E0 07 .?.`..A...G.....
02D480: C7 C0 39 CF 0F 9F 0F 8F 87 C0 3F FC 00 0F E0 47 ..9.......?....G
02D490: C7 C7 C7 C3 E3 FF C0 00 00 00 7E 03 E3 E3 E0 00 ..........~.....
02D4A0: 00 21 F8 73 9E 03 F8 3E 03 E0 1F 1F 0F 87 C0 00 .!.s...>........
02D4B0: 63 F0 7F 02 18 FC 03 00 3F 81 1F C0 86 3F 00 C0 c.......?....?..
02D4C0: 0F E0 41 F8 0F C0 81 FC 00 0F E0 07 C7 C0 39 CF ..A...........9.
02D4D0: 0F 9F 0F 8F 87 C0 3E 00 00 0F E0 47 C7 C7 C7 C3 ......>....G....
02D4E0: E3 E0 00 00 00 00 7E 03 E3 E1 E0 00 00 40 F8 73 ......~......@.s
02D4F0: 9E 01 F8 3E 23 E0 1F 1F 0F 87 C0 00 FF FC 3F 02 ...>#.........?.
02D500: 3F FF 06 00 1F 81 0F C0 8F FF C1 80 07 E0 41 F8 ?.............A.
02D510: 1F C0 80 FC 00 0F E0 07 C7 C0 39 CF 07 9E 0F 8F ..........9.....
02D520: 87 C0 1E 00 00 07 E0 87 C7 C7 C7 C3 E1 E0 00 00 ................
02D530: 00 00 7E 03 E3 E1 E0 40 00 7F FC 73 9E 20 F8 3E ..~....@...s. .>
02D540: 23 E0 1F 1F 07 87 C0 00 03 F0 3F 04 00 FC 06 00 #.........?.....
02D550: 1F 82 0F C1 00 3F 01 80 07 E0 81 F8 3F 80 80 7C .....?......?..|
02D560: 00 0F E0 07 C7 C0 39 CF 07 0E 0F 8F 87 C0 1E 04 ......9.........
02D570: 00 07 E0 87 CF C7 C3 C3 E1 E0 40 00 00 00 7E 03 ..........@...~.
02D580: E3 E0 F0 80 00 80 7C 73 9E 10 70 1E 43 E0 0F BF ......|s..p.C...
02D590: 07 CF C0 00 03 F0 1F 18 00 FC 0C 00 0F 8C 07 C6 ................
02D5A0: 00 3F 03 00 03 E3 01 F8 7F 00 40 38 00 0F E0 07 .?........@8....
02D5B0: C7 C0 39 CF 07 0E 07 DF 87 C0 0F 08 00 03 E3 07 ..9.............
02D5C0: F7 C7 C3 E7 E0 F0 80 00 00 00 7E 03 E3 E0 3F 00 ..........~...?.
02D5D0: 00 80 7C 73 9E 0F E0 0F 83 E0 03 DF 81 F7 C0 00 ..|s............
02D5E0: 03 F0 07 E0 00 FC 18 00 03 F0 01 F8 00 3F 06 00 .............?..
02D5F0: 00 FC 01 F8 FF F8 3F E0 00 0F E0 07 C7 C0 39 CF ......?.......9.
02D600: 07 0E 01 EF C7 C0 03 F0 00 00 FC 03 E7 C7 C0 FB ................
02D610: E0 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .?..............
02D620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D630: 00 00 18 00 00 00 00 00 00 00 06 00 00 00 00 00 ................
02D640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D6A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D6B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D6C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D6D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D6E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D6F0: 00 00 00 00 00 00 00 00 00 1F FF FF FF FF FF FF ................
02D700: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
02D710: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
02D720: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
02D730: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
02D740: FF FF FE 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D790: 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
02D7A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
02D7B0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
02D7C0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
02D7D0: FF FF FF FF FF FF FF FF FF FF FF F0 1A 00 40 00 ..............@.
02D7E0: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
02D7F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D800: 00 53 54 41 52 54 20 20 20 42 41 53 00 00 00 00 .START BAS....
02D810: 00 00 00 00 00 70 01 00 72 1D 00 00 00 00 00 00 .....p..r.......
02D820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D840: 72 1D 00 53 04 C7 20 1E 3A 07 01 9F 20 1E BA 04 r..S.. .:... ...
02D850: 01 C9 00 24 00 3A 07 8C 20 22 69 6E 64 65 78 2D ...$.:.. "index-
02D860: 31 22 2C 22 69 6E 64 65 78 2D 32 22 2C 22 69 6E 1","index-2","in
02D870: 64 65 78 2D 33 22 00 12 00 44 07 C7 20 1E 4E 07 dex-3"...D.. .N.
02D880: 2F 00 0A 00 D8 23 0F 2C 10 2C 19 4F 2C 19 19 2C /....#.,.,.O,..,
02D890: 19 19 01 D8 23 0E 2C 0F 2C 19 50 2C 13 2C 19 17 ....#.,.,.P,.,..
02D8A0: 01 D8 23 10 2C 0F 2C 19 50 2C 13 2C 19 19 00 27 ..#.,.,.P,.,...'
02D8B0: 00 14 00 C7 20 1E 1E 00 01 9F 20 1E 9E 02 01 A9 .... ..... .....
02D8C0: 20 19 22 2C 11 01 BF 22 4D 20 45 20 4E 20 55 20 .",..."M E N U
02D8D0: 20 28 31 29 22 00 88 00 1E 00 8C 20 31 29 20 50 (1)"...... 1) P
02D8E0: 72 65 66 61 63 65 2C 32 29 20 43 6F 6E 74 65 6E reface,2) Conten
02D8F0: 74 73 2C 33 29 20 43 68 61 70 74 65 72 20 4F 6E ts,3) Chapter On
02D900: 65 2C 34 29 20 43 68 61 70 74 65 72 20 54 77 6F e,4) Chapter Two
02D910: 2C 35 29 20 43 68 61 70 74 65 72 20 54 68 72 65 ,5) Chapter Thre
02D920: 65 2C 36 29 20 43 68 61 70 74 65 72 20 46 6F 75 e,6) Chapter Fou
02D930: 72 2C 37 29 20 43 68 61 70 74 65 72 20 46 69 76 r,7) Chapter Fiv
02D940: 65 2C 38 29 20 43 68 61 70 74 65 72 20 53 69 78 e,8) Chapter Six
02D950: 2C 39 29 20 4E 65 78 74 20 4D 65 6E 75 00 2E 00 ,9) Next Menu...
02D960: 28 00 A9 20 19 19 2C 19 11 01 BF 22 5B 49 5D 20 (.. ..,...."[I]
02D970: 49 6E 74 72 6F 64 75 63 74 69 6F 6E 20 26 20 49 Introduction & I
02D980: 6E 73 74 72 75 63 74 69 6F 6E 73 00 0A 00 32 00 nstructions...2.
02D990: 9F 20 1E 94 02 00 0A 00 3C 00 9F 20 1E A8 02 00 . ......<.. ....
02D9A0: 15 00 46 00 A1 20 FF 0A 28 19 23 29 EF 0E 20 EB ..F.. ..(.#).. .
02D9B0: 20 1E 64 00 00 1C 00 50 00 A1 20 0D 00 00 F3 F1 .d....P.. .....
02D9C0: 0F 20 FC 20 0D 00 00 F3 EE 17 20 EB 20 1E 3C 00 . . ...... . .<.
02D9D0: 00 31 00 5A 00 B2 20 0D 00 00 F3 20 A0 20 1E 6E .1.Z.. .... . .n
02D9E0: 00 2C 1E 78 00 2C 1E 82 00 2C 1E 8C 00 2C 1E 96 .,.x.,...,...,..
02D9F0: 00 2C 1E A0 00 2C 1E AA 00 2C 1E B4 00 2C 1E BE .,...,...,...,..
02DA00: 00 00 33 00 64 00 9F 20 1E 02 03 01 03 00 00 66 ..3.d.. .......f
02DA10: 69 6C E5 EF 22 69 6E 64 6F 63 2E 22 01 9F 20 1E il.."indoc.".. .
02DA20: 98 03 01 9F 20 1E 0C 03 01 9F 20 1E 34 03 01 A0 .... ..... .4...
02DA30: 20 1E 66 03 00 35 00 6E 00 9F 20 1E C6 02 01 03 .f..5.n.. .....
02DA40: 00 00 66 69 6C E5 EF 22 70 72 65 66 61 63 65 2E ..fil.."preface.
02DA50: 22 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 9F 20 ".. ..... .....
02DA60: 1E 34 03 01 A0 20 1E 66 03 00 36 00 78 00 9F 20 .4... .f..6.x..
02DA70: 1E C6 02 01 03 00 00 66 69 6C E5 EF 22 63 6F 6E .......fil.."con
02DA80: 74 65 6E 74 73 2E 22 01 9F 20 1E 98 03 01 9F 20 tents.".. .....
02DA90: 1E 0C 03 01 9F 20 1E 34 03 01 A0 20 1E 66 03 00 ..... .4... .f..
02DAA0: 22 00 82 00 9F 20 1E C6 02 01 9F 20 1E 98 03 01 ".... ..... ....
02DAB0: 9F 20 1E 0C 03 01 9F 20 1E C0 03 01 A0 20 1E 66 . ..... ..... .f
02DAC0: 03 00 22 00 8C 00 9F 20 1E C6 02 01 9F 20 1E 98 ..".... ..... ..
02DAD0: 03 01 9F 20 1E 0C 03 01 9F 20 1E D4 03 01 A0 20 ... ..... .....
02DAE0: 1E 66 03 00 34 00 96 00 9F 20 1E C6 02 01 9F 20 .f..4.... .....
02DAF0: 1E 98 03 01 9F 20 1E 0C 03 01 03 00 00 66 69 6C ..... .......fil
02DB00: E5 EF 22 63 68 61 70 2D 33 2E 22 01 9F 20 1E 34 .."chap-3.".. .4
02DB10: 03 01 A0 20 1E 66 03 00 22 00 A0 00 9F 20 1E C6 ... .f..".... ..
02DB20: 02 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 9F 20 ... ..... .....
02DB30: 1E E8 03 01 A0 20 1E 66 03 00 34 00 AA 00 9F 20 ..... .f..4....
02DB40: 1E C6 02 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 ..... ..... ....
02DB50: 03 00 00 66 69 6C E5 EF 22 63 68 61 70 2D 35 2E ...fil.."chap-5.
02DB60: 22 01 9F 20 1E 34 03 01 A0 20 1E 66 03 00 34 00 ".. .4... .f..4.
02DB70: B4 00 9F 20 1E C6 02 01 9F 20 1E 98 03 01 9F 20 ... ..... .....
02DB80: 1E 0C 03 01 03 00 00 66 69 6C E5 EF 22 63 68 61 .......fil.."cha
02DB90: 70 2D 36 2E 22 01 9F 20 1E 34 03 01 A0 20 1E 66 p-6.".. .4... .f
02DBA0: 03 00 27 00 BE 00 C7 20 1E C8 00 01 9F 20 1E 9E ..'.... ..... ..
02DBB0: 02 01 A9 20 19 22 2C 11 01 BF 22 4D 20 45 20 4E ... .",..."M E N
02DBC0: 20 55 20 20 28 32 29 22 00 9D 00 C8 00 8C 20 31 U (2)"...... 1
02DBD0: 29 20 43 68 61 70 74 65 72 20 53 65 76 65 6E 2C ) Chapter Seven,
02DBE0: 32 29 20 43 68 61 70 74 65 72 20 45 69 67 68 74 2) Chapter Eight
02DBF0: 2C 33 29 20 43 68 61 70 74 65 72 20 4E 69 6E 65 ,3) Chapter Nine
02DC00: 2C 34 29 20 43 68 61 70 74 65 72 20 54 65 6E 2C ,4) Chapter Ten,
02DC10: 35 29 20 43 68 61 70 74 65 72 20 45 6C 65 76 65 5) Chapter Eleve
02DC20: 6E 2C 36 29 20 43 68 61 70 74 65 72 20 54 77 65 n,6) Chapter Twe
02DC30: 6C 76 65 2C 37 29 20 43 68 61 70 74 65 72 20 54 lve,7) Chapter T
02DC40: 68 69 72 74 65 65 6E 2C 38 29 20 50 72 65 76 69 hirteen,8) Previ
02DC50: 6F 75 73 20 4D 65 6E 75 2C 39 29 20 4E 65 78 74 ous Menu,9) Next
02DC60: 20 4D 65 6E 75 00 0A 00 D2 00 9F 20 1E 94 02 00 Menu...... ....
02DC70: 0A 00 DC 00 9F 20 1E A8 02 00 1C 00 E6 00 A1 20 ..... .........
02DC80: 0D 00 00 F3 F1 0F 20 FC 20 0D 00 00 F3 EE 17 20 ...... . ......
02DC90: EB 20 1E DC 00 00 31 00 F0 00 B2 20 0D 00 00 F3 . ....1.... ....
02DCA0: 20 A0 20 1E FA 00 2C 1E 04 01 2C 1E 0E 01 2C 1E . ...,...,...,.
02DCB0: 18 01 2C 1E 22 01 2C 1E 2C 01 2C 1E 36 01 2C 1E ..,.".,.,.,.6.,.
02DCC0: 14 00 2C 1E 40 01 00 34 00 FA 00 9F 20 1E C6 02 ..,.@..4.... ...
02DCD0: 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 03 00 00 .. ..... .......
02DCE0: 66 69 6C E5 EF 22 63 68 61 70 2D 37 2E 22 01 9F fil.."chap-7."..
02DCF0: 20 1E 34 03 01 A0 20 1E 66 03 00 22 00 04 01 9F .4... .f.."....
02DD00: 20 1E C6 02 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 ..... ..... ...
02DD10: 01 9F 20 1E FC 03 01 A0 20 1E 66 03 00 22 00 0E .. ..... .f.."..
02DD20: 01 9F 20 1E D0 02 01 9F 20 1E 98 03 01 9F 20 1E .. ..... ..... .
02DD30: 0C 03 01 9F 20 1E 10 04 01 A0 20 1E 66 03 00 22 .... ..... .f.."
02DD40: 00 18 01 9F 20 1E D0 02 01 9F 20 1E 98 03 01 9F .... ..... .....
02DD50: 20 1E 0C 03 01 9F 20 1E 24 04 01 A0 20 1E 66 03 ..... .$... .f.
02DD60: 00 35 00 22 01 9F 20 1E D0 02 01 9F 20 1E 98 03 .5.".. ..... ...
02DD70: 01 9F 20 1E 0C 03 01 03 00 00 66 69 6C E5 EF 22 .. .......fil.."
02DD80: 63 68 61 70 2D 31 31 2E 22 01 9F 20 1E 34 03 01 chap-11.".. .4..
02DD90: A0 20 1E 66 03 00 35 00 2C 01 9F 20 1E D0 02 01 . .f..5.,.. ....
02DDA0: 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 03 00 00 66 . ..... .......f
02DDB0: 69 6C E5 EF 22 63 68 61 70 2D 31 32 2E 22 01 9F il.."chap-12."..
02DDC0: 20 1E 34 03 01 A0 20 1E 66 03 00 35 00 36 01 9F .4... .f..5.6..
02DDD0: 20 1E D0 02 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 ..... ..... ...
02DDE0: 01 03 00 00 66 69 6C E5 EF 22 63 68 61 70 2D 31 ....fil.."chap-1
02DDF0: 33 2E 22 01 9F 20 1E 34 03 01 A0 20 1E 66 03 00 3.".. .4... .f..
02DE00: 27 00 40 01 C7 20 1E B8 01 01 9F 20 1E 9E 02 01 '.@.. ..... ....
02DE10: A9 20 19 22 2C 11 01 BF 22 4D 20 45 20 4E 20 55 . .",..."M E N U
02DE20: 20 20 28 33 29 22 00 0A 00 4A 01 9F 20 1E 94 02 (3)"...J.. ...
02DE30: 00 0A 00 54 01 9F 20 1E A8 02 00 1C 00 5E 01 A1 ...T.. ......^..
02DE40: 20 0D 00 00 F3 F1 0F 20 FC 20 0D 00 00 F3 EE 17 ...... . ......
02DE50: 20 EB 20 1E 54 01 00 31 00 68 01 B2 20 0D 00 00 . .T..1.h.. ...
02DE60: F3 20 A0 20 1E 72 01 2C 1E 7C 01 2C 1E 86 01 2C . . .r.,.|.,...,
02DE70: 1E 90 01 2C 1E 9A 01 2C 1E A4 01 2C 1E AE 01 2C ...,...,...,...,
02DE80: 1E BE 00 2C 1E C2 01 00 22 00 72 01 9F 20 1E D0 ...,....".r.. ..
02DE90: 02 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 9F 20 ... ..... .....
02DEA0: 1E 38 04 01 A0 20 1E 66 03 00 22 00 7C 01 9F 20 .8... .f..".|..
02DEB0: 1E D0 02 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 ..... ..... ....
02DEC0: 9F 20 1E 4C 04 01 A0 20 1E 66 03 00 22 00 86 01 . .L... .f.."...
02DED0: 9F 20 1E E4 02 01 9F 20 1E 98 03 01 9F 20 1E 0C . ..... ..... ..
02DEE0: 03 01 9F 20 1E 88 04 01 A0 20 1E 66 03 00 35 00 ... ..... .f..5.
02DEF0: 90 01 9F 20 1E E4 02 01 9F 20 1E 98 03 01 9F 20 ... ..... .....
02DF00: 1E 0C 03 01 03 00 00 66 69 6C E5 EF 22 63 68 61 .......fil.."cha
02DF10: 70 2D 31 37 2E 22 01 9F 20 1E 34 03 01 A0 20 1E p-17.".. .4... .
02DF20: 66 03 00 22 00 9A 01 9F 20 1E EE 02 01 9F 20 1E f..".... ..... .
02DF30: 98 03 01 9F 20 1E 0C 03 01 9F 20 1E 9C 04 01 A0 .... ..... .....
02DF40: 20 1E 66 03 00 35 00 A4 01 9F 20 1E EE 02 01 9F .f..5.... .....
02DF50: 20 1E 98 03 01 9F 20 1E 0C 03 01 03 00 00 66 69 ..... .......fi
02DF60: 6C E5 EF 22 63 68 61 70 2D 31 39 2E 22 01 9F 20 l.."chap-19."..
02DF70: 1E 34 03 01 A0 20 1E 66 03 00 35 00 AE 01 9F 20 .4... .f..5....
02DF80: 1E EE 02 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 ..... ..... ....
02DF90: 03 00 00 66 69 6C E5 EF 22 63 68 61 70 2D 32 30 ...fil.."chap-20
02DFA0: 2E 22 01 9F 20 1E 34 03 01 A0 20 1E 66 03 00 AD .".. .4... .f...
02DFB0: 00 B8 01 8C 20 31 29 20 43 68 61 70 74 65 72 20 .... 1) Chapter
02DFC0: 46 6F 75 72 74 65 65 6E 2C 32 29 20 43 68 61 70 Fourteen,2) Chap
02DFD0: 74 65 72 20 46 69 66 74 65 65 6E 2C 33 29 20 43 ter Fifteen,3) C
02DFE0: 68 61 70 74 65 72 20 53 69 78 74 65 65 6E 2C 34 hapter Sixteen,4
02DFF0: 29 20 43 68 61 70 74 65 72 20 53 65 76 65 6E 74 ) Chapter Sevent
02E000: 65 65 6E 2C 35 29 20 43 68 61 70 74 65 72 20 45 een,5) Chapter E
02E010: 69 67 68 74 65 65 6E 2C 36 29 20 43 68 61 70 74 ighteen,6) Chapt
02E020: 65 72 20 4E 69 6E 65 74 65 65 6E 2C 37 29 20 43 er Nineteen,7) C
02E030: 68 61 70 74 65 72 20 54 77 65 6E 74 79 2C 38 29 hapter Twenty,8)
02E040: 20 50 72 65 76 69 6F 75 73 20 4D 65 6E 75 2C 39 Previous Menu,9
02E050: 29 20 4E 65 78 74 20 4D 65 6E 75 00 27 00 C2 01 ) Next Menu.'...
02E060: C7 20 1E 12 02 01 9F 20 1E 9E 02 01 A9 20 19 22 . ..... ..... ."
02E070: 2C 11 01 BF 22 4D 20 45 20 4E 20 55 20 20 28 34 ,..."M E N U (4
02E080: 29 22 00 0A 00 CC 01 9F 20 1E 94 02 00 0A 00 D6 )"...... .......
02E090: 01 9F 20 1E A8 02 00 1C 00 E0 01 A1 20 0D 00 00 .. ......... ...
02E0A0: F3 F1 0F 20 FC 20 0D 00 00 F3 EE 17 20 EB 20 1E ... . ...... . .
02E0B0: D6 01 00 31 00 EA 01 B2 20 0D 00 00 F3 20 A0 20 ...1.... .... .
02E0C0: 1E 6E 05 2C 1E C4 04 2C 1E B4 05 2C 1E F4 01 2C .n.,...,...,...,
02E0D0: 1E FE 01 2C 1E E6 05 2C 1E 08 02 2C 1E 40 01 2C ...,...,...,.@.,
02E0E0: 1E 1C 02 00 30 00 F4 01 9F 20 1E EE 02 01 03 00 ....0.... ......
02E0F0: 00 66 69 6C E5 EF 22 61 70 34 22 01 9F 20 1E 98 .fil.."ap4".. ..
02E100: 03 01 9F 20 1E 0C 03 01 9F 20 1E 34 03 01 A0 20 ... ..... .4...
02E110: 1E 66 03 00 33 00 FE 01 9F 20 1E EE 02 01 03 00 .f..3.... ......
02E120: 00 66 69 6C E5 EF 22 61 70 65 6E 2D 35 22 01 9F .fil.."apen-5"..
02E130: 20 1E 98 03 01 9F 20 1E 0C 03 01 9F 20 1E 34 03 ..... ..... .4.
02E140: 01 A0 20 1E 66 03 00 33 00 08 02 9F 20 1E EE 02 .. .f..3.... ...
02E150: 01 03 00 00 66 69 6C E5 EF 22 61 70 65 6E 2D 37 ....fil.."apen-7
02E160: 22 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 9F 20 ".. ..... .....
02E170: 1E 34 03 01 A0 20 1E 66 03 00 9A 00 12 02 8C 20 .4... .f.......
02E180: 31 29 20 41 70 70 65 6E 64 69 78 20 4F 6E 65 2C 1) Appendix One,
02E190: 32 29 20 41 70 70 65 6E 64 69 78 20 54 77 6F 2C 2) Appendix Two,
02E1A0: 33 29 20 41 70 70 65 6E 64 69 78 20 54 68 72 65 3) Appendix Thre
02E1B0: 65 2C 34 29 20 41 70 70 65 6E 64 69 78 20 46 6F e,4) Appendix Fo
02E1C0: 75 72 2C 35 29 20 41 70 70 65 6E 64 69 78 20 46 ur,5) Appendix F
02E1D0: 69 76 65 2C 36 29 20 41 70 70 65 6E 64 69 78 20 ive,6) Appendix
02E1E0: 53 69 78 2C 37 29 20 41 70 70 65 6E 64 69 78 20 Six,7) Appendix
02E1F0: 53 65 76 65 6E 2C 38 29 20 50 72 65 76 69 6F 75 Seven,8) Previou
02E200: 73 20 4D 65 6E 75 2C 39 29 20 4E 65 78 74 20 4D s Menu,9) Next M
02E210: 65 6E 75 00 27 00 1C 02 C7 20 1E 8A 02 01 9F 20 enu.'.... .....
02E220: 1E 9E 02 01 A9 20 19 22 2C 11 01 BF 22 4D 20 45 ..... .",..."M E
02E230: 20 4E 20 55 20 20 28 35 29 22 00 0A 00 26 02 9F N U (5)"...&..
02E240: 20 1E 94 02 00 0A 00 30 02 9F 20 1E A8 02 00 1C ......0.. .....
02E250: 00 3A 02 A1 20 0D 00 00 F3 F1 0F 20 FC 20 0D 00 .:.. ...... . ..
02E260: 00 F3 EE 17 20 EB 20 1E 30 02 00 31 00 44 02 B2 .... . .0..1.D..
02E270: 20 0D 00 00 F3 20 A0 20 1E 7C 06 2C 1E 9A 06 2C .... . .|.,...,
02E280: 1E 4E 02 2C 1E 58 02 2C 1E C2 06 2C 1E 62 02 2C .N.,.X.,...,.b.,
02E290: 1E 6C 02 2C 1E 80 02 2C 1E 14 00 00 34 00 4E 02 .l.,...,....4.N.
02E2A0: 9F 20 1E F8 02 01 03 00 00 66 69 6C E5 EF 22 61 . .......fil.."a
02E2B0: 70 65 6E 2D 31 30 22 01 9F 20 1E 98 03 01 9F 20 pen-10".. .....
02E2C0: 1E 0C 03 01 9F 20 1E 34 03 01 A0 20 1E 66 03 00 ..... .4... .f..
02E2D0: 35 00 58 02 9F 20 1E F8 02 01 9F 20 1E 98 03 01 5.X.. ..... ....
02E2E0: 9F 20 1E 0C 03 01 03 00 00 66 69 6C E5 EF 22 61 . .......fil.."a
02E2F0: 70 65 6E 2D 31 31 2E 22 01 9F 20 1E 34 03 01 A0 pen-11.".. .4...
02E300: 20 1E 66 03 00 22 00 62 02 9F 20 1E 02 03 01 9F .f..".b.. .....
02E310: 20 1E 98 03 01 9F 20 1E 0C 03 01 9F 20 1E 44 07 ..... ..... .D.
02E320: 01 A0 20 1E 66 03 00 44 00 6C 02 9F 20 1E 02 03 .. .f..D.l.. ...
02E330: 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 A8 22 74 .. ..... ....."t
02E340: 72 61 6E 73 22 2C 1C 00 40 01 A1 20 0D 00 00 E6 rans",..@.. ....
02E350: EF 0E 20 EB 20 1E 76 02 20 01 97 20 CA 22 61 70 .. . .v. .. ."ap
02E360: 65 6E 2D 31 34 2E 62 61 73 22 00 50 00 76 02 03 en-14.bas".P.v..
02E370: 00 00 66 69 6C E5 EF 22 61 70 65 6E 2D 31 34 2E ..fil.."apen-14.
02E380: 70 31 22 01 9F 20 1E 16 03 01 9F 20 1E 64 05 01 p1".. ..... .d..
02E390: AD 20 10 01 9F 20 1E 5A 05 01 03 00 00 66 69 6C . ... .Z.....fil
02E3A0: E5 EF 22 61 70 65 6E 2D 31 34 2E 70 32 22 01 9F .."apen-14.p2"..
02E3B0: 20 1E 16 03 01 A0 20 1E 66 03 00 22 00 80 02 9F ..... .f.."....
02E3C0: 20 1E 02 03 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 ..... ..... ...
02E3D0: 01 9F 20 1E 30 07 01 A0 20 1E 66 03 00 9E 00 8A .. .0... .f.....
02E3E0: 02 8C 20 31 29 20 41 70 70 65 6E 64 69 78 20 45 .. 1) Appendix E
02E3F0: 69 67 68 74 2C 32 29 20 41 70 70 65 6E 64 69 78 ight,2) Appendix
02E400: 20 4E 69 6E 65 2C 33 29 20 41 70 70 65 6E 64 69 Nine,3) Appendi
02E410: 78 20 54 65 6E 2C 34 29 20 41 70 70 65 6E 64 69 x Ten,4) Appendi
02E420: 78 20 45 6C 65 76 65 6E 2C 35 29 20 41 70 70 65 x Eleven,5) Appe
02E430: 6E 64 69 78 20 54 77 65 6C 76 65 2C 36 29 20 41 ndix Twelve,6) A
02E440: 70 70 65 6E 64 69 78 20 54 68 69 72 74 65 65 6E ppendix Thirteen
02E450: 2C 37 29 20 41 70 70 65 6E 64 69 78 20 46 6F 75 ,7) Appendix Fou
02E460: 72 74 65 65 6E 2C 38 29 20 49 6E 64 65 78 2C 39 rteen,8) Index,9
02E470: 29 20 4D 65 6E 75 20 6F 6E 65 00 51 00 94 02 A9 ) Menu one.Q....
02E480: 23 0F 2C 19 0A 2C 0F 01 BF 23 0F 2C 22 50 72 65 #.,..,...#.,"Pre
02E490: 73 73 20 74 68 65 20 6B 65 79 20 6E 75 6D 62 65 ss the key numbe
02E4A0: 72 20 6F 66 20 74 68 65 20 46 69 72 6D 77 61 72 r of the Firmwar
02E4B0: 65 20 50 61 72 74 20 79 6F 75 20 77 61 6E 74 20 e Part you want
02E4C0: 28 31 20 74 6F 20 39 29 22 01 C9 00 32 00 9E 02 (1 to 9)"...2...
02E4D0: 8A 01 9E 20 0D 00 00 E1 EF 0F 20 EC 20 17 01 C3 ... ...... . ...
02E4E0: 20 03 00 00 E1 01 A9 20 19 21 2C 0D 00 00 E1 F4 ...... .!,.....
02E4F0: 13 01 BF 20 03 00 00 E1 3B 01 B0 01 C9 00 10 00 ... ....;.......
02E500: A8 02 03 00 00 E1 EF FF 1C 28 FF 43 29 00 2D 00 .........(.C).-.
02E510: B2 02 0D 00 00 F3 EF FF 74 28 22 20 31 32 33 34 ........t(" 1234
02E520: 35 36 37 38 39 22 2C 03 00 00 E1 29 01 0D 00 00 56789",....)....
02E530: F3 EF FF 1D 28 03 00 00 E1 29 00 06 00 BC 02 C9 ....(....)......
02E540: 00 1A 00 C6 02 0D 00 00 64 69 73 E3 EF 0F 01 0D ........dis.....
02E550: 00 00 73 69 64 E5 EF 0F 01 C9 00 1A 00 D0 02 0D ..sid...........
02E560: 00 00 64 69 73 E3 EF 0F 01 0D 00 00 73 69 64 E5 ..dis.......sid.
02E570: EF 10 01 C9 00 1A 00 DA 02 0D 00 00 64 69 73 E3 ............dis.
02E580: EF 10 01 0D 00 00 73 69 64 E5 EF 0F 01 C9 00 1A ......sid.......
02E590: 00 E4 02 0D 00 00 64 69 73 E3 EF 10 01 0D 00 00 ......dis.......
02E5A0: 73 69 64 E5 EF 10 01 C9 00 1A 00 EE 02 0D 00 00 sid.............
02E5B0: 64 69 73 E3 EF 11 01 0D 00 00 73 69 64 E5 EF 0F dis.......sid...
02E5C0: 01 C9 00 1A 00 F8 02 0D 00 00 64 69 73 E3 EF 11 ..........dis...
02E5D0: 01 0D 00 00 73 69 64 E5 EF 10 01 C9 00 1A 00 02 ....sid.........
02E5E0: 03 0D 00 00 64 69 73 E3 EF 12 01 0D 00 00 73 69 ....dis.......si
02E5F0: 64 E5 EF 0F 01 C9 00 64 00 0C 03 8A 23 10 01 83 d......d....#...
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: 20 1C 03 BB 01 A9 20 19 12 2C 13 01 BF 22 07 50 ..... ..,...".P
02E710: 6C 65 61 73 65 20 69 6E 73 65 72 74 20 44 69 73 lease insert Dis
02E720: 63 20 22 0D 00 00 64 69 73 E3 22 20 73 69 64 65 c "...dis." side
02E730: 20 22 0D 00 00 73 69 64 E5 22 20 61 6E 64 20 70 "...sid." and p
02E740: 72 65 73 73 20 61 6E 79 20 6B 65 79 2E 2E 2E 22 ress any key..."
02E750: 01 83 20 1C 18 BB 01 8A 01 C9 00 4F 00 16 03 0D .. ........O....
02E760: 00 00 E1 EF 0E 01 B6 22 21 22 F4 03 00 00 66 69 ......."!"....fi
02E770: 6C E5 01 D6 20 FE 20 FF 40 01 A6 20 A3 23 17 2C l... . .@.. £#.,
02E780: 03 00 00 E1 01 0D 00 00 E1 EF 0D 00 00 E1 F4 0F ................
02E790: 01 A1 20 0D 00 00 E1 EE 19 11 20 EB 20 9F 20 1E .. ....... . . .
02E7A0: 5C 03 01 0D 00 00 E1 EF 0E 00 15 00 20 03 A1 20 \........... ..
02E7B0: FF 0A 28 19 42 29 EF 0E 20 EB 20 1E 58 07 00 17 ..(.B).. . .X...
02E7C0: 00 2A 03 BF 20 03 00 00 E1 01 D5 01 88 01 9F 20 .*.. ..........
02E7D0: 1E 5C 03 01 C9 00 1A 00 34 03 A1 20 0D 00 00 E6 .\......4.. ....
02E7E0: EF 0E 20 EB 20 1E 16 03 20 01 97 20 1E 3E 03 00 .. . ... .. .>..
02E7F0: 23 00 3E 03 B6 22 21 22 F4 03 00 00 66 69 6C E5 #.>.."!"....fil.
02E800: 01 D6 20 FE 20 FF 40 01 A6 20 A3 23 17 2C 03 00 .. . .@.. £#.,..
02E810: 00 E1 00 15 00 48 03 A1 20 FF 0A 28 19 42 29 EF .....H.. ..(.B).
02E820: 0E 20 EB 20 1E 58 07 00 13 00 52 03 BF 23 16 2C . . .X....R..#.,
02E830: 03 00 00 E1 01 D5 01 88 01 C9 00 2D 00 5C 03 A9 ...........-.\..
02E840: 23 0F 2C 19 21 2C 0F 01 BF 23 0F 2C 22 50 72 65 #.,.!,...#.,"Pre
02E850: 73 73 20 61 20 6B 65 79 2E 2E 22 01 83 20 1C 18 ss a key..".. ..
02E860: BB 01 8A 23 0F 01 C9 00 52 00 66 03 8A 23 10 01 ...#....R.f..#..
02E870: A9 20 19 21 2C 13 01 BF 22 46 20 49 20 4E 20 49 . .!,..."F I N I
02E880: 20 53 20 48 20 45 20 44 22 01 A9 20 19 17 2C 19 S H E D".. ..,.
02E890: 0A 01 BF 22 07 50 72 65 73 73 20 5B 43 5D 20 74 ...".Press [C] t
02E8A0: 6F 20 43 6F 6E 74 69 6E 75 65 20 6F 72 20 5B 45 o Continue or [E
02E8B0: 5D 20 74 6F 20 45 6E 64 22 00 15 00 70 03 A1 20 ] to End"...p..
02E8C0: FF 0A 28 19 3E 29 EF 0E 20 EB 20 1E 14 00 00 15 ..(.>).. . .....
02E8D0: 00 7A 03 A1 20 FF 0A 28 19 3A 29 EF 0E 20 EB 20 .z.. ..(.:).. .
02E8E0: 1E 8E 03 00 0A 00 84 03 A0 20 1E 70 03 00 08 00 ......... .p....
02E8F0: 8E 03 83 20 0E 00 2D 00 98 03 8A 23 10 01 A9 20 ... ..-....#...
02E900: 19 1C 2C 13 01 BF 22 07 5B 53 5D 20 53 63 72 65 ..,...".[S] Scre
02E910: 65 6E 20 6F 72 20 5B 50 5D 20 50 72 69 6E 74 65 en or [P] Printe
02E920: 72 22 00 1A 00 A2 03 A1 20 FF 0A 28 19 3C 29 EF r"...... ..(.<).
02E930: 0E 20 EB 20 0D 00 00 E6 EF 0E 01 C9 00 1A 00 AC . . ............
02E940: 03 A1 20 FF 0A 28 19 1B 29 EF 0E 20 EB 20 0D 00 .. ..(..).. . ..
02E950: 00 E6 EF 16 01 C9 00 0A 00 B6 03 A0 20 1E A2 03 ............ ...
02E960: 00 12 00 C0 03 C7 20 1E CA 03 01 9F 20 1E B0 04 ...... ..... ...
02E970: 01 C9 00 1D 00 CA 03 8C 22 63 68 61 70 2D 31 2E ........"chap-1.
02E980: 70 31 22 2C 22 63 68 61 70 2D 31 2E 70 32 22 00 p1","chap-1.p2".
02E990: 12 00 D4 03 C7 20 1E DE 03 01 9F 20 1E B0 04 01 ..... ..... ....
02E9A0: C9 00 1D 00 DE 03 8C 22 63 68 61 70 2D 32 2E 70 ......."chap-2.p
02E9B0: 31 22 2C 22 63 68 61 70 2D 32 2E 70 32 22 00 12 1","chap-2.p2"..
02E9C0: 00 E8 03 C7 20 1E F2 03 01 9F 20 1E B0 04 01 C9 .... ..... .....
02E9D0: 00 1D 00 F2 03 8C 22 63 68 61 70 2D 34 2E 70 31 ......"chap-4.p1
02E9E0: 22 2C 22 63 68 61 70 2D 34 2E 70 32 22 00 12 00 ","chap-4.p2"...
02E9F0: FC 03 C7 20 1E FC 03 01 9F 20 1E B0 04 01 C9 00 ... ..... ......
02EA00: 1D 00 06 04 8C 22 63 68 61 70 2D 38 2E 70 31 22 ....."chap-8.p1"
02EA10: 2C 22 63 68 61 70 2D 38 2E 70 32 22 00 12 00 10 ,"chap-8.p2"....
02EA20: 04 C7 20 1E 1A 04 01 9F 20 1E B0 04 01 C9 00 1D .. ..... .......
02EA30: 00 1A 04 8C 22 63 68 61 70 2D 39 2E 70 31 22 2C ...."chap-9.p1",
02EA40: 22 63 68 61 70 2D 39 2E 70 32 22 00 12 00 24 04 "chap-9.p2"...$.
02EA50: C7 20 1E 2E 04 01 9F 20 1E B0 04 01 C9 00 1F 00 . ..... ........
02EA60: 2E 04 8C 22 63 68 61 70 2D 31 30 2E 70 31 22 2C ..."chap-10.p1",
02EA70: 22 63 68 61 70 2D 31 30 2E 70 32 22 00 12 00 38 "chap-10.p2"...8
02EA80: 04 C7 20 1E 42 04 01 9F 20 1E BA 04 01 C9 00 2C .. .B... ......,
02EA90: 00 42 04 8C 22 63 68 61 70 2D 31 34 2E 70 31 22 .B.."chap-14.p1"
02EAA0: 2C 22 63 68 61 70 2D 31 34 2E 70 32 22 2C 22 63 ,"chap-14.p2","c
02EAB0: 68 61 70 2D 31 34 2E 70 33 22 00 39 00 4C 04 C7 hap-14.p3".9.L..
02EAC0: 20 1E 56 04 01 9E 20 0D 00 00 66 69 6C 65 F3 EF .V... ...file..
02EAD0: 0F 20 EC 20 11 01 C3 20 03 00 00 66 69 6C E5 01 . . ... ...fil..
02EAE0: 9F 20 1E 34 03 01 B0 01 9F 20 1E DA 02 01 9F 20 . .4..... .....
02EAF0: 1E 0C 03 00 2C 00 56 04 8C 22 63 68 61 70 2D 31 ....,.V.."chap-1
02EB00: 35 2E 70 31 22 2C 22 63 68 61 70 2D 31 35 2E 70 5.p1","chap-15.p
02EB10: 32 22 2C 22 63 68 61 70 2D 31 35 2E 70 33 22 00 2","chap-15.p3".
02EB20: 3A 00 60 04 C7 20 1E 6A 04 01 9E 20 0D 00 00 66 :.`.. .j... ...f
02EB30: 69 6C 65 F3 EF 0F 20 EC 20 19 0B 01 C3 20 03 00 ile... . .... ..
02EB40: 00 66 69 6C E5 01 9F 20 1E 34 03 01 B0 01 9F 20 .fil... .4.....
02EB50: 1E E4 02 01 9F 20 1E 0C 03 00 99 00 6A 04 8C 22 ..... ......j.."
02EB60: 63 68 61 70 2D 31 35 2E 70 34 22 2C 22 63 68 61 chap-15.p4","cha
02EB70: 70 2D 31 35 2E 70 35 22 2C 22 63 68 61 70 2D 31 p-15.p5","chap-1
02EB80: 35 2E 70 36 22 2C 22 63 68 61 70 2D 31 35 2E 70 5.p6","chap-15.p
02EB90: 37 22 2C 22 63 68 61 70 2D 31 35 2E 70 38 22 2C 7","chap-15.p8",
02EBA0: 22 63 68 61 70 2D 31 35 2E 70 39 22 2C 22 63 68 "chap-15.p9","ch
02EBB0: 61 70 2D 31 35 2E 70 31 30 22 2C 22 63 68 61 70 ap-15.p10","chap
02EBC0: 2D 31 35 2E 70 31 31 22 2C 22 63 68 61 70 2D 31 -15.p11","chap-1
02EBD0: 35 2E 70 31 32 22 2C 22 63 68 61 70 2D 31 35 2E 5.p12","chap-15.
02EBE0: 70 31 33 22 2C 22 63 68 61 70 2D 31 35 2E 70 31 p13","chap-15.p1
02EBF0: 34 22 00 2F 00 74 04 C7 20 1E 7E 04 01 9E 20 0D 4"./.t.. .~... .
02EC00: 00 00 66 69 6C 65 F3 EF 0F 20 EC 20 16 01 C3 20 ..file... . ...
02EC10: 03 00 00 66 69 6C E5 01 9F 20 1E 34 03 01 B0 01 ...fil... .4....
02EC20: C9 00 75 00 7E 04 8C 22 63 68 61 70 2D 31 35 2E ..u.~.."chap-15.
02EC30: 70 31 35 22 2C 22 63 68 61 70 2D 31 35 2E 70 31 p15","chap-15.p1
02EC40: 36 22 2C 22 63 68 61 70 2D 31 35 2E 70 31 37 22 6","chap-15.p17"
02EC50: 2C 22 63 68 61 70 2D 31 35 2E 70 31 38 22 2C 22 ,"chap-15.p18","
02EC60: 63 68 61 70 2D 31 35 2E 70 31 39 22 2C 22 63 68 chap-15.p19","ch
02EC70: 61 70 2D 31 35 2E 70 32 30 22 2C 22 63 68 61 70 ap-15.p20","chap
02EC80: 2D 31 35 2E 70 32 31 22 2C 22 63 68 61 70 2D 31 -15.p21","chap-1
02EC90: 35 2E 70 32 32 22 00 12 00 88 04 C7 20 1E 92 04 5.p22"...... ...
02ECA0: 01 9F 20 1E B0 04 01 C9 00 1F 00 92 04 8C 22 63 .. ..........."c
02ECB0: 68 61 70 2D 31 36 2E 70 31 22 2C 22 63 68 61 70 hap-16.p1","chap
02ECC0: 2D 31 36 2E 70 32 22 00 12 00 9C 04 C7 20 1E A6 -16.p2"...... ..
02ECD0: 04 01 9F 20 1E B0 04 01 C9 00 1F 00 A6 04 8C 22 ... ..........."
02ECE0: 63 68 61 70 2D 31 38 2E 70 31 22 2C 22 63 68 61 chap-18.p1","cha
02ECF0: 70 2D 31 38 2E 70 32 22 00 29 00 B0 04 9E 20 0D p-18.p2".).... .
02ED00: 00 00 66 69 6C 65 F3 EF 0F 20 EC 20 10 01 C3 20 ..file... . ...
02ED10: 03 00 00 66 69 6C E5 01 9F 20 1E 34 03 01 B0 01 ...fil... .4....
02ED20: C9 00 29 00 BA 04 9E 20 0D 00 00 66 69 6C 65 F3 ..).... ...file.
02ED30: EF 0F 20 EC 20 11 01 C3 20 03 00 00 66 69 6C E5 .. . ... ...fil.
02ED40: 01 9F 20 1E 34 03 01 B0 01 C9 00 47 00 C4 04 03 .. .4......G....
02ED50: 00 00 66 69 6C E5 EF 22 61 70 32 22 01 9F 20 1E ..fil.."ap2".. .
02ED60: EE 02 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 A1 .... ..... .....
02ED70: 20 0D 00 00 E6 EF 0E 20 EB 20 9F 20 1E 34 03 20 ...... . . .4.
02ED80: 01 97 20 CA 22 61 70 70 65 6E 64 32 2E 62 61 73 .. ."append2.bas
02ED90: 22 00 8A 00 CE 04 8A 01 BF 22 4E 6F 72 6D 61 6C "........"Normal
02EDA0: 20 54 72 61 6E 73 6C 61 74 69 6F 6E 20 54 61 62 Translation Tab
02EDB0: 6C 65 2E 22 01 BF 01 BF 22 54 68 65 20 66 6F 6C le."...."The fol
02EDC0: 6C 6F 77 69 6E 67 20 64 69 61 67 72 61 6D 20 64 lowing diagram d
02EDD0: 65 73 63 72 69 62 65 73 20 74 68 65 20 74 72 61 escribes the tra
02EDE0: 6E 73 6C 61 74 69 6F 6E 20 77 68 65 6E 20 6E 65 nslation when ne
02EDF0: 69 74 68 65 72 20 73 68 69 66 74 20 20 6E 6F 72 ither shift nor
02EE00: 20 20 63 6F 6E 74 72 6F 6C 69 73 20 70 72 65 73 controlis pres
02EE10: 73 65 64 2E 22 01 83 20 1C 18 BB 00 19 00 D8 04 sed.".. ........
02EE20: A8 22 32 2D 34 6D 61 69 6E 22 2C 1C 00 40 01 9F ."2-4main",..@..
02EE30: 20 1E 64 05 00 18 00 E2 04 A8 22 70 61 64 32 2D .d......."pad2-
02EE40: 34 22 2C 1C 00 40 01 9F 20 1E 64 05 00 18 00 EC 4",..@.. .d.....
02EE50: 04 A8 22 6A 6F 79 32 2D 34 22 2C 1C 00 40 01 9F .."joy2-4",..@..
02EE60: 20 1E 64 05 00 35 00 F6 04 AD 20 10 01 9F 20 1E .d..5.... ... .
02EE70: 5A 05 01 A8 22 32 2D 35 6D 61 69 6E 22 01 BF 22 Z..."2-5main".."
02EE80: 53 68 69 66 74 20 54 72 61 6E 73 6C 61 74 69 6F Shift Translatio
02EE90: 6E 20 54 61 62 6C 65 2E 22 00 A2 00 00 05 BF 01 n Table.".......
02EEA0: BF 22 54 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 ."The following
02EEB0: 64 69 61 67 72 61 6D 20 64 65 73 72 69 62 65 73 diagram desribes
02EEC0: 20 74 68 65 20 74 72 61 6E 73 6C 61 74 69 6F 6E the translation
02EED0: 20 77 68 65 6E 20 65 69 74 68 65 72 20 73 68 69 when either shi
02EEE0: 66 74 20 6B 65 79 20 69 73 20 70 72 65 73 73 65 ft key is presse
02EEF0: 64 2C 6F 72 20 74 68 65 20 73 68 69 66 74 20 6C d,or the shift l
02EF00: 6F 63 6B 20 69 73 20 6F 6E 2C 20 62 75 74 20 74 ock is on, but t
02EF10: 68 65 20 63 6F 6E 74 72 6F 6C 20 6B 65 79 20 69 he control key i
02EF20: 73 20 6E 6F 74 20 70 72 65 73 73 65 64 2E 22 01 s not pressed.".
02EF30: 83 20 1C 03 BB 01 83 20 1C 18 BB 00 0A 00 0A 05 . ..... ........
02EF40: 9F 20 1E 64 05 00 18 00 14 05 A8 22 70 61 64 32 . .d......."pad2
02EF50: 2D 35 22 2C 1C 00 40 01 9F 20 1E 64 05 00 22 00 -5",..@.. .d..".
02EF60: 1E 05 A8 22 6A 6F 79 32 2D 35 22 2C 1C 00 40 01 ..."joy2-5",..@.
02EF70: 9F 20 1E 64 05 01 AD 20 10 01 9F 20 1E 5A 05 00 . .d... ... .Z..
02EF80: 86 00 28 05 8A 01 BF 22 43 6F 6E 74 72 6F 6C 20 ..(...."Control
02EF90: 54 72 61 6E 73 6C 61 74 69 6F 6E 20 54 61 62 6C Translation Tabl
02EFA0: 65 2E 22 01 BF 01 BF 22 54 68 65 20 66 6F 6C 6C e."...."The foll
02EFB0: 6F 77 69 6E 67 20 64 69 61 67 72 61 6D 20 64 65 owing diagram de
02EFC0: 73 63 72 69 62 65 73 20 74 68 65 20 74 72 61 6E scribes the tran
02EFD0: 73 6C 61 74 69 6F 6E 20 77 68 65 6E 20 74 68 65 slation when the
02EFE0: 20 63 6F 6E 74 72 6F 6C 20 6B 65 79 20 69 73 20 control key is
02EFF0: 70 72 65 73 73 65 64 2E 22 01 83 20 1C 03 BB 01 pressed.".. ....
02F000: 83 20 1C 18 BB 00 19 00 32 05 A8 22 32 2D 36 6D . ......2.."2-6m
02F010: 61 69 6E 22 2C 1C 00 40 01 9F 20 1E 64 05 00 18 ain",..@.. .d...
02F020: 00 3C 05 A8 22 70 61 64 32 2D 36 22 2C 1C 00 40 .<.."pad2-6",..@
02F030: 01 9F 20 1E 64 05 00 18 00 46 05 A8 22 6A 6F 79 .. .d....F.."joy
02F040: 32 2D 36 22 2C 1C 00 40 01 9F 20 1E 64 05 00 14 2-6",..@.. .d...
02F050: 00 50 05 AD 20 10 01 9F 20 1E 5A 05 01 A0 20 1E .P.. ... .Z... .
02F060: 66 03 00 37 00 5A 05 D8 23 0F 2C 10 2C 19 4F 2C f..7.Z..#.,.,.O,
02F070: 19 19 2C 19 19 01 D8 23 0E 2C 0F 2C 19 50 2C 13 ..,....#.,.,.P,.
02F080: 2C 19 17 01 D8 23 10 2C 0F 2C 19 50 2C 13 2C 19 ,....#.,.,.P,.,.
02F090: 19 01 83 20 1C A3 38 01 C9 00 18 00 64 05 83 20 ... .£8.....d..
02F0A0: 1C 00 40 01 83 20 1C 03 BB 01 83 20 1C 18 BB 01 ..@.. ..... ....
02F0B0: C9 00 4A 00 6E 05 03 00 00 66 69 6C E5 EF 22 41 ..J.n....fil.."A
02F0C0: 50 31 2D 31 22 01 9F 20 1E EE 02 01 9F 20 1E 98 P1-1".. ..... ..
02F0D0: 03 01 9F 20 1E 0C 03 01 A1 20 0D 00 00 E6 EF 0E ... ..... ......
02F0E0: 20 EB 20 9F 20 1E 34 03 20 01 97 20 CA 22 61 70 . . .4. .. ."ap
02F0F0: 70 65 6E 64 2D 31 2E 62 61 73 22 00 19 00 78 05 pend-1.bas"...x.
02F100: A8 22 34 36 34 2D 41 50 31 22 2C 1C 00 40 01 9F ."464-AP1",..@..
02F110: 20 1E 64 05 00 1A 00 82 05 A8 22 36 31 32 38 2D .d......."6128-
02F120: 61 70 31 22 2C 1C 00 40 01 9F 20 1E 64 05 00 16 ap1",..@.. .d...
02F130: 00 8C 05 A8 22 70 61 64 73 22 2C 1C 00 40 01 9F ...."pads",..@..
02F140: 20 1E 64 05 00 16 00 96 05 A8 22 6A 6F 79 73 22 .d......."joys"
02F150: 2C 1C 00 40 01 9F 20 1E 64 05 00 24 00 A0 05 AD ,..@.. .d..$....
02F160: 20 10 01 9F 20 1E 5A 05 01 03 00 00 66 69 6C E5 ... .Z.....fil.
02F170: EF 22 61 70 31 2D 32 22 01 9F 20 1E 34 03 00 0A ."ap1-2".. .4...
02F180: 00 AA 05 A0 20 1E 66 03 00 4C 00 B4 05 03 00 00 .... .f..L......
02F190: 66 69 6C E5 EF 22 61 70 70 65 6E 64 33 22 01 9F fil.."append3"..
02F1A0: 20 1E EE 02 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 ..... ..... ...
02F1B0: 01 A1 20 0D 00 00 E6 EF 0E 20 EB 20 9F 20 1E 34 .. ...... . . .4
02F1C0: 03 20 01 97 20 CA 22 61 70 70 65 6E 64 2D 33 2E . .. ."append-3.
02F1D0: 62 61 73 22 00 19 00 BE 05 A8 22 33 2D 31 4D 41 bas"......"3-1MA
02F1E0: 49 4E 22 2C 1C 00 40 01 9F 20 1E 64 05 00 18 00 IN",..@.. .d....
02F1F0: C8 05 A8 22 50 41 44 33 2D 31 22 2C 1C 00 40 01 ..."PAD3-1",..@.
02F200: 9F 20 1E 64 05 00 18 00 D2 05 A8 22 4A 4F 59 33 . .d......."JOY3
02F210: 2D 31 22 2C 1C 00 40 01 9F 20 1E 64 05 00 14 00 -1",..@.. .d....
02F220: DC 05 AD 20 10 01 9F 20 1E 5A 05 01 A0 20 1E 66 ... ... .Z... .f
02F230: 03 00 48 00 E6 05 03 00 00 66 69 6C E5 EF 22 61 ..H......fil.."a
02F240: 70 65 6E 36 2D 61 22 01 9F 20 1E F8 02 01 9F 20 pen6-a".. .....
02F250: 1E 98 03 01 9F 20 1E 0C 03 01 A1 20 0D 00 00 E6 ..... ..... ....
02F260: EF 0E 20 EB 20 9F 20 1E 34 03 20 01 97 20 CA 22 .. . . .4. .. ."
02F270: 61 70 65 6E 36 2E 62 61 73 00 18 00 F0 05 A8 22 apen6.bas......"
02F280: 73 65 74 36 2D 31 22 2C 1C 00 40 01 9F 20 1E 64 set6-1",..@.. .d
02F290: 05 00 18 00 FA 05 A8 22 73 65 74 36 2D 32 22 2C ......."set6-2",
02F2A0: 1C 00 40 01 9F 20 1E 64 05 00 23 00 04 06 A8 22 ..@.. .d..#...."
02F2B0: 73 65 74 62 36 2D 32 22 2C 1C 00 40 01 9F 20 1E setb6-2",..@.. .
02F2C0: 64 05 01 AD 20 10 01 9F 20 1E 5A 05 00 1C 00 0E d... ... .Z.....
02F2D0: 06 03 00 00 66 69 6C E5 EF 22 61 70 65 6E 36 2D ....fil.."apen6-
02F2E0: 62 22 01 9F 20 1E 34 03 00 22 00 18 06 A8 22 62 b".. .4.."...."b
02F2F0: 6C 6F 63 6B 73 22 2C 1C 00 40 01 9F 20 1E 64 05 locks",..@.. .d.
02F300: 01 AD 20 10 01 9F 20 1E 5A 05 00 1C 00 22 06 03 .. ... .Z...."..
02F310: 00 00 66 69 6C E5 EF 22 61 70 65 6E 36 2D 63 22 ..fil.."apen6-c"
02F320: 01 9F 20 1E 34 03 00 17 00 2C 06 A8 22 6C 69 6E .. .4....,.."lin
02F330: 65 73 22 2C 1C 00 40 01 9F 20 1E 64 05 00 1A 00 es",..@.. .d....
02F340: 36 06 A8 22 36 2D 35 63 68 61 72 73 22 2C 1C 00 6.."6-5chars",..
02F350: 40 01 9F 20 1E 64 05 00 1A 00 40 06 A8 22 36 2D @.. .d....@.."6-
02F360: 36 63 68 61 2D 74 22 2C 1C 00 40 01 9F 20 1E 64 6cha-t",..@.. .d
02F370: 05 00 1A 00 4A 06 A8 22 36 2D 36 63 68 61 2D 62 ....J.."6-6cha-b
02F380: 22 2C 1C 00 40 01 9F 20 1E 64 05 00 19 00 54 06 ",..@.. .d....T.
02F390: A8 22 36 2D 37 63 68 61 72 22 2C 1C 00 40 01 9F ."6-7char",..@..
02F3A0: 20 1E 64 05 00 19 00 5E 06 A8 22 36 2D 38 63 68 .d....^.."6-8ch
02F3B0: 61 72 22 2C 1C 00 40 01 9F 20 1E 64 05 00 19 00 ar",..@.. .d....
02F3C0: 68 06 A8 22 36 2D 39 63 68 61 72 22 2C 1C 00 40 h.."6-9char",..@
02F3D0: 01 9F 20 1E 64 05 00 14 00 72 06 AD 20 10 01 9F .. .d....r.. ...
02F3E0: 20 1E 5A 05 01 A0 20 1E 66 03 00 48 00 7C 06 03 .Z... .f..H.|..
02F3F0: 00 00 66 69 6C E5 EF 22 61 70 65 6E 2D 38 22 01 ..fil.."apen-8".
02F400: 9F 20 1E F8 02 01 9F 20 1E 98 03 01 9F 20 1E 0C . ..... ..... ..
02F410: 03 01 A1 20 0D 00 00 E6 EF 0E 20 EB 20 9F 20 1E ... ...... . . .
02F420: 34 03 20 01 97 20 CA 22 61 70 65 6E 38 2E 62 61 4. .. ."apen8.ba
02F430: 73 22 00 19 00 86 06 A8 22 61 70 65 6E 38 2D 61 s"......"apen8-a
02F440: 22 2C 1C 00 40 01 9F 20 1E 64 05 00 14 00 90 06 ",..@.. .d......
02F450: AD 20 10 01 9F 20 1E 5A 05 01 9F 20 1E 66 03 00 . ... .Z... .f..
02F460: 44 00 9A 06 03 00 00 66 69 6C E5 EF 22 61 70 65 D......fil.."ape
02F470: 6E 2D 39 22 01 9F 20 1E F8 02 01 9F 20 1E 98 03 n-9".. ..... ...
02F480: 01 9F 20 1E 0C 03 01 A1 20 0D 00 00 E6 EF 0E 20 .. ..... ......
02F490: EB 20 9F 20 1E 34 03 20 01 97 20 CA 22 61 70 65 . . .4. .. ."ape
02F4A0: 6E 39 22 00 19 00 A4 06 A8 22 61 70 65 6E 39 2D n9"......"apen9-
02F4B0: 61 22 2C 1C 00 40 01 9F 20 1E 64 05 00 19 00 AE a",..@.. .d.....
02F4C0: 06 A8 22 61 70 65 6E 39 2D 62 22 2C 1C 00 40 01 .."apen9-b",..@.
02F4D0: 9F 20 1E 64 05 00 2C 00 B8 06 AD 20 10 01 9F 20 . .d..,.... ...
02F4E0: 1E 5A 05 01 03 00 00 66 69 6C E5 EF 22 61 70 65 .Z.....fil.."ape
02F4F0: 6E 2D 39 63 22 01 9F 20 1E 34 03 01 A0 20 1E 66 n-9c".. .4... .f
02F500: 03 00 49 00 C2 06 03 00 00 66 69 6C E5 EF 22 61 ..I......fil.."a
02F510: 70 65 6E 2D 31 32 2E 70 31 22 01 9F 20 1E F8 02 pen-12.p1".. ...
02F520: 01 9F 20 1E 98 03 01 9F 20 1E 0C 03 01 A1 20 0D .. ..... ..... .
02F530: 00 00 E6 EF 0E 20 EB 20 9F 20 1E 34 03 20 01 97 ..... . . .4. ..
02F540: 20 CA 22 61 70 65 6E 31 32 22 00 1F 00 CC 06 03 ."apen12"......
02F550: 00 00 66 69 6C E5 EF 22 61 70 65 6E 2D 31 32 2E ..fil.."apen-12.
02F560: 70 32 22 01 9F 20 1E 34 03 00 1A 00 D6 06 A8 22 p2".. .4......."
02F570: 31 32 2D 31 33 62 6F 74 22 2C 1C 00 40 01 9F 20 12-13bot",..@..
02F580: 1E 64 05 00 29 00 E0 06 AD 20 10 01 9F 20 1E 5A .d..).... ... .Z
02F590: 05 01 03 00 00 66 69 6C E5 EF 22 61 70 65 6E 2D .....fil.."apen-
02F5A0: 31 32 2E 70 34 22 01 9F 20 1E 34 03 00 1A 00 EA 12.p4".. .4.....
02F5B0: 06 A8 22 31 32 2D 31 34 62 6F 74 22 2C 1C 00 40 .."12-14bot",..@
02F5C0: 01 9F 20 1E 64 05 00 29 00 F4 06 AD 20 10 01 9F .. .d..).... ...
02F5D0: 20 1E 5A 05 01 03 00 00 66 69 6C E5 EF 22 61 70 .Z.....fil.."ap
02F5E0: 65 6E 2D 31 32 2E 70 35 22 01 9F 20 1E 34 03 00 en-12.p5".. .4..
02F5F0: 17 00 FE 06 A8 22 66 2D 73 79 73 22 2C 1C 00 40 ....."f-sys",..@
02F600: 01 9F 20 1E 64 05 00 2A 00 08 07 AD 20 10 01 9F .. .d..*.... ...
02F610: 20 1E 5A 05 01 03 00 00 66 69 6C E5 EF 22 61 70 .Z.....fil.."ap
02F620: 65 6E 2D 31 32 61 2E 70 36 22 01 9F 20 1E 34 03 en-12a.p6".. .4.
02F630: 00 18 00 12 07 A8 22 46 52 45 4E 43 48 22 2C 1C ......"FRENCH",.
02F640: 00 40 01 9F 20 1E 64 05 00 29 00 1C 07 AD 20 10 .@.. .d..).... .
02F650: 01 9F 20 1E 5A 05 01 03 00 00 66 69 6C E5 EF 22 .. .Z.....fil.."
02F660: 61 70 65 6E 2D 31 32 2E 70 36 22 01 9F 20 1E 34 apen-12.p6".. .4
02F670: 03 00 0A 00 26 07 A0 20 1E 66 03 00 12 00 30 07 ....&.. .f....0.
02F680: C7 20 1E 3A 07 01 9F 20 1E BA 04 01 C9 00 24 00 . .:... ......$.
02F690: 3A 07 8C 20 22 69 6E 64 65 78 2D 31 22 2C 22 69 :.. "index-1","i
02F6A0: 6E 64 65 78 2D 32 22 2C 22 69 6E 64 65 78 2D 33 ndex-2","index-3
02F6B0: 22 00 12 00 44 07 C7 20 1E 4E 07 01 9F 20 1E B0 "...D.. .N... ..
02F6C0: 04 01 C9 00 20 00 4E 07 8C 20 22 61 70 65 6E 2D .... .N.. "apen-
02F6D0: 31 33 2E 70 31 22 2C 22 61 70 65 6E 2D 31 33 2E 13.p1","apen-13.
02F6E0: 70 32 22 00 0C 00 58 07 88 01 A0 20 1E 66 03 00 p2"...X.... .f..
02F6F0: 00 00 1A 20 4B 65 72 6E 65 6C 20 20 66 6F 72 20 ... Kernel for
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=129 CHEA=0 COD=55 MUSI=3 COP=6 GRA=147 WRIT=151 198=0 199=0 STARTER=0 KBI=0 CAAV=0 L.TOURNIER=0
EXTENDED CPC DSK File SAMdisk120417( PCHAP-1 1 v CHAP-1 2 dCHAP-2 1 &'()
*+,-./012345CHAP-2 1 6CHAP-2 2 789CHAP-3 zABCDEFGHICHAP-4 1 JKLMNOPQRSTUVW
XYCHAP-4 1 ZCHAP-4 2 CHAP-5 sabcdefghijkCHAP-6 llmnopqrstuvwxyCHAP-7
rzCHAP-8 1 sCHAP-8 2 i£CONTENTS - !"#$%DISC ASDUMP NPREFACE PTITLE
ASSTART STITLE N 1 The Firmware This manual describes
the firmware of the Amstrad CPC 464/664/6128 microcomputers. It also
describes the disc operating systems (CP/M and AMSDOS). It does not des
cribe either the BASIC language supplied with the system or CP/M. The m
anual does describe certain aspects of the BASIC where these affect o
ther programs and it uses BASIC in certain example programs when descr
ibing some features of the firmware. It also describes how to call t
he firmware from CP/M. Three versions of the firmware are described. V1.
0 (on CPC464), V1.1 (on CPC664) and V1.2 (on CPC6128). Apart from
support for bank switching V1.1 and V1.2 are identical and are ref
erred to as V1.1 throughout this manual. It may be necessary for a p
rogram to deduce which firmware is fitted to the computer, and this ca
n be achieved by inspecting the on-board ROM's version number (as descr
ibed in section 10.2) using KL ROM PROBE. This will return a 0,1 or 2 d
epending on the version of firmware. The firmware is the progr
am that resides in the lower ROM and the disc controlling ROM (see secti
on 2). Its function is to control the hardware of the computer an
d to provide useful facilities for other programs to use. This avoids
every program written having to provide its own facilities.
This manual is expected to be of interest to anyone who would like to
know how the system works. It is indispensable for programmers writing m
achine code programs, particularly system programs (e.g. other la
nguages) and games. The information presented can be extremely detail
ed. It covers the operation of the firmware from the lowest level
(e.g. driving the sound chip) to the highest level (e.g. running a que
ue of sounds). It is not necessary to understand all the information gi
ven to be able to use the firmware, however, a good grasp of how the sys
tem works will aid the programmer in selecting the most appropri
ate method of performing a particular task. Two disc operati
ng systems are provided AMSDOS, which enables BASIC programs to use di
sc files in much the same way as cassette files and CP/M 2.2 the industr
y standard operating system (CP/M Plus in the CPC6128, but we do no
t discuss the diff Perences between the two in this manual). Both AMSDO
S and CP/M use the same file structure and may read and write each other
s file's. CP/M is invoked from BASIC by typing CPM. Part of CP/M (the
CCP and BDOS) is loaded from the disc in drive A. The CP/M BIOS resi
des in the disc ROM. AMSDOS is enabled whenever BASIC is first
used. This intercepts most of the cassette firmware routines and redir
ects them to disc. Thus existing BASIC programs which use cassette f
iles can use disc files with little or no modification. AMSDOS also
provides a number of external commands for erasing and renaming fil
es and redirecting the cassette firmware routines. Provided
with the disc system are a number of utility programs for formatting
and copying discs and for changing various system parameters.
These all run under CP/M. AMSTRAD CPC464/664/6128 FIRMWARE
page 1.1 1.1 The Hardware. The
diagram on the following page gives an indication of the different piece
s of hardware in the system and how they connect to each other. For mo
re information on how the hardware works see Appendix XII and the rel
evant manufacturer's data sheets. The System centres around the CPU
(Central Processing Unit) which is a Z80A microprocessor with a 4MHz clo
ck. Next in importance is the gate array which contains miscellaneous
logic to control much of the system. In particular, it controls in
k colours, screen mode and ROM enabling (see section 10 and appendix
XII). In conjunction with the CRTC (Cathode Ray Tube Controller), whi
ch is a 6845 chip, the gate array generate the video signal for the
monitor. The PSG (Programmable Sound Generator) is an AY-3-892. This
chip has three channels of sound generator, a noise generator, envelo
pe control for each channel and an I/O port. The way the sound g
enerating hardware is used is described in section 7. The I/O port is u
sed for input mode to sense the state of the keyboard and joystick swit
ches. The FDC (Floppy Disc Controller) is an NEC uPD765A chip. Only
two disc drives are supported, since the US1 line from the uPD765A is i
gnored. This results in the two disc drives being accessed as drives 0
and 1 and again as 2 and 3. The FDC supports both single and double
sided and single and double density mini-floppy disc drives. Note that
the clock frequency supplied to the uPD765A CLK pin is 4MHz rather t
han the 8MHz used with larger disc drives. Each disc drive t
akes a single 3" floppy disc. Either side of the disc may be used, depen
ding on which way up the disc is inserted into the drive. The disc int
erface contains a 16K expansion ROM, 8K of which contains the disc dr
iving software, the remainder being used by DR LOGO. The
PPI (Parallel Peripheral Interface), which is an 8255 chip, is used
to control the remainder of the system. It has three ports. Port C is
used as in output port to control the cassette recorder motor, to write
data to the cassette, to write data to the cassette, to strobe data in
or out of the PSG and to select rows of the keyboard. Port B is used
as an input port to sense the frame flyback signal, the Centronic
s port busy signal and various option links and to read data from the c
assette. Port A is used to communicate with the PSG and is set into in
put or output mode as required. Accesses to memory are synchronized
with the video logic - they are constrained to occur on microsecond b
oundaries. This has the affect of stretching each Z80 M cycle (machine c
ycle) to be a multiple of 4 T states (clock cycles). In practice this
alters the instruction timing so that the effective clock rate is appr
oximately 3.3MHz. AMSTRAD CPC464/664/6128 FIRMWARE
page 1.2
-- Monitor -------
Gate Array P
Speakers CRTC --
---- RAM
CPU
V
PSG ------
-- ----- ROM -
PPI
V Keyboard
and ---- -- Centronics Port FDC Joysticks
V V
Cassette Recorder Disc Drives
1.2 The Division of the Firmware.
The Firmware is split into 'packs' each dealing with a particular part
of the system, usually a hardware device. Each pack has a section of
this manual devoted to it where its operation is explained in detail.
The system components and their associated packs are
Keyboard Key Manager. Screen Text
VDU, Graphics VDU, Screen Pack. Cassette/Disc Cassette Ma
nager/AMSDOS. Sound Sound Manager.
Operating System Kernel, Machine Pack, Jumper. AMSTRAD CPC46
4/664/6128 FIRMWARE page 1.3 a.
Key Manager The Key Manager is more fully described in section 3. It
deals with scanning the keyboard, generating characters, function ke
ys, testing for break and scanning the joysticks. b. Text V
DU The Text VDU is more fully outlined in section 4. It deals with put
ting characters on the screen, the cursor and obeying control codes.
c. Graphics VDU The Graphics VDU is more fully presented in s
ection 5. It deals with plotting points, testing points, drawing lines
and filling areas on the screen. d. Screen Pack
The Screen Pack is more fully detailed in section 6. It interfaces the
Text and Graphics VDUs with the screen hardware and deals with aspects
of the screen that affect both of these packs, such as screen mode or i
nk colours. e. Sound Manager The Sound Manager is more fully
discussed in section 7. It deals with queuing, enveloping, synchronizi
ng and generating sounds. f. Cassette Manager/AMSDOS The Cas
sette Manager is more fully explained in section 8. It deals with rea
ding from tape, writing to tape and cassette motor control. AMSDOS is
explained more fully in section 9. It deals with reading from disc,
writing to disc and the disc motor control. g. Kernel The Ke
rnel is more fully described in sections 2, 10, 11 and 12. It is the hea
rt of the operating system and deals with interrupts, events, selectin
g ROMs and running programs. h. Machine Pack The Machine Pac
k is more fully documented in section 13. It deals with the printer and
the low level driving of the hardware. i. Jumper Jumper, or
rather, the main firmware jumpblock is listed in section 14. The entr
ies in the jumpblock are described in detail in se Pction 15. Jumper
sets up the firmware jumpblock. AMSTRAD CPC464/664/6128 FIRMWARE
page 1.4 1.3 Controlling the Fi
rmware. The firmware is controlled by the user calling published
routines rather than by the user setting the values of system variables
. This will allow the firmware's variable layout to be changed in major
ways without the user being affected. The addresses of the r
outines the user is to call need to remain constant if the firmwa
re is altered. This is achieved by using jumpblocks (see below).
The advantage of a routine interface is that it allows a number of
different system variables to be altered by the firmware in a
consistent way in one operation. If the system variables had to be set
by the user then the firmware could be left in an indeterminate state
if some variables had been set but not others. Also, the routine type
of interface ensures that all the required side effects of a change
are taken care of automatically without the user being troubled with
the details. An example of this is changing the screen mode (see
section 6.1) - changing the size of the screen requires a number of
other people to be informed of the change so that illegal screen
positions and inks are not used. 1.4 Jumpblocks. A jumpb
lock is a series of jump instructions placed in memory at well-kno
wn locations. The jumps are to the various routines in the firmware
that the user might want to call. Programs that need to use the facili
ties provided by the routines in the jumpblock should call the appropr
iate jumpblock entries. If the firmware is altered then it is quite
likely that the addresses of some of the routines available to the user
will change. By keeping the address of the jumpblock constant but alte
ring the entries in the jumpblock so that they jump to the new addresse
s of the routines, the change is hidden from the user (providing that
the user is calling routines via the jumpblock and is not acce
ssing the firmware directly). To make the change to the f
irmware completely hidden from the user it is also necessary to keep
the entry and exit conditions of the routines accessed via the jum
pblock constant. The greater part of this manual is taken up with the de
tailed entry and exit requirements of the jumpblock entries.
The jumpblock is placed in RAM so that the user can alter the entries
in it. This allows the user to trap particular entries and substitute
a new routine that will replace the standard firmware routine. P
rovided that the new routine obeys the entry and exit requirements of th
e firmware routine, the substitution will not upset programs unaware of
the change. AMSTRAD CPC464/664/6128 FIRMWARE
page 1.5 nual describes the firmware of the Amstrad CPC 464/664/6
128 microcomput in it. This allows the user to trap particular e
ntries and substitute a new routine that will replace the standar
d firmware routine. Provided that the new routine obeys the entry and
exit requirements of the firmwa There are four jumpblo
cks. These are all listed in section 14. The first and largest jump
block is the main firmware jumpblock (see sections 14.1 and 15). T
his allows the user to call most firmware routines. The second jump
block is the indirections jumpblock (see sections 14.2 and 16). The
entries in this jumpblock are used by the firmware at key moments in
order to allow the user to alter the action of the firmware. The last tw
o jumpblocks are rather special. They are to do with the Kernel and all
ow ROMs to be enabled and routines in ROMs to be called. (See sectio
ns 14.3,14.4,17 and 18). Section 1.7 below gives an example of how a
jumpblock entry might be changed to alter the action of the firmware.
1.5 Conventions. a. Notation Processor instruct
ions are generally referred to by their standard Z80 mnemonics. The ex
ceptions that prove Pthe rule are the restart instructions. The
mnemonics RST 0..RST 7 are used rather than the more usual Z80 mnemonic
s RST #00..RST #38. The registers are also referred to by their stan
dard Z80 names. The flag register as a whole is referred to as F but
the individual flags are called by their full name, e.g. carry. The fla
gs are said to be true when they are set and false when they are clea
r. Thus a JP NC instruction would jump if carry was false and not if
carry was true. Hexadecimal numbers are indicated by prefixing the
number with #, thus #7F is the number 127 in hex. All numbers not prefix
ed by # are in decimal. Large numbers are often abbrevia
ted by writing them as a multiple of 1024. For example, 32K bytes mean
s 32 times 1024 (i.e. 32768) bytes. b. Usage Routines, where
possible, take and return values in registers. Where more information
than may be held in registers is to be passed to a routine, the addr
ess of a data area is given. The location in memory of these data area
s is sometimes critical, see section 2.4. Where a routine can succee
d or fail this condition is normally passed back in the carry flag. Car
ry true normally implies success, whilst carry false normally implies
failure. The alternate register set, AF' BC' DE' HL', is reserved
for use by the system. The user should not execute an EX AF,AF'
or an EXX instruction as these will have unfortunate consequences. (Se
e Appendix XI for a full description.) AMSTRAD CPC464/664/61
28 FIRMWARE page 1.6 c. General
The logical values true and false are generally represented by #FF an
d #00 respectively. Often, however, any non-zero value is taken to mean
true. The bits in a byte are numbered 0..7, with bit 0 be
ing the least significant bit and bit 7 being the most significant bit
. Where two byte (word) values are stored (in tables etc) they
are always stored with the less significant byte first and the m
ore significant byte second, unless a specific indication to the contra
ry is given. This is in accordance with the standard way the Z80 store
s words. Tables and the like are always laid out with byte 0
being the first byte of the table. When the address of such a table
is given this is the address of byte 0 of the table unless otherwise i
ndicated. When the computer is turned on (or when it is reset) it
completely initializes itself before running any program. This initial
ization is known as early morning startup, abbreviated to EMS from now
on. 1.6 Routine Documentation. Each routine described in h
is manual has entry and exit conditions associated with it. Where th
ere are other points of interest about the routine these are normally gi
ven in a section after the entry and exit conditions. Such points includ
e whether interrupts are enabled and a fuller description of the param
eters and side effects of the routine. There are two reasons for pro
viding this information. Firstly it tells the use what will happen when
the routine is called. Secondly it tells the user what a replacement rou
tine is expected to do. The entry conditions tell the caller of the
routine what the routine expects to be passed to it. When calling
a routine all values specified must be supplied. Values may only b
e left out where the routine documents that they are optional. When
providing a replacement routine to fit this interface only information t
hat is specified may be used, although not all of it need be used.
The exit conditions tell the caller what values the routine passes
back and which processor registers re preserved. Registers that are
documented as being corrupted may be changed by the routine or may
not. The user should not rely on their contents. When providing a
routine to fit this interface it is extremely important that registers
documented as being preserved are indeed preserved and that the values
return are compatible with the original routine. Corrupting a register P
or omitting a result will usually cause the system to fail, often in
subtle and unexpected ways. AMSTRAD CPC464/664/6128 FIRMWARE
page 1.7 Often a routine will have d
ifferent exit conditions depending on some condition or other (usually
whether it worked or not). In these cases the specific differences in t
he exit conditions are given for each case and all conditions that r
emain the same irrespective of the case are given in a separate section
(marked 'always'). There are abundant examples of routine interface
s in section 15 to 18. 1.7 Example of Patching a Jumpblock.
The following is an example of how the jumpblocks may be used. At this
stage many of the concepts introduced may be unfamiliar to the reader.
However, since altering jumpblocks is an important technique for
tailoring the system to a particular purpose the example is given
here. Later sections will explain the actions taken here. Suppose an
assembler program is being written that is intended to use the printer
when it is finished. While this program is being written it would sav
e time and paper if the program could be made to use the screen instea
d of the printer. However, changing the program itself to use the screen
could introduce bugs when it is changed back to using the printer. Wh
at is needed is a way of altering the action of the firmware that dr
ives the printer - and this is what a RAM jumpblock is for.
The technique that will be used to 'connect' the printer to a p
articular text window. This can be achieved by writing a short ro
utine to send the character to the screen and patching the entry in the
jumpblock for sending characters to the printer, MC PRINT CHAR, so that
it jumps to this routine instead of its normal routine. The substit
ute routine will have to obey the entry/exit conditions for MC PRINT CHA
R. These can be found in the full description of this entry in sect
ion 15. Briefly they are as follows MC PRINT CHAR Ent
ry conditions A contains character to print.
Exit conditions If the character was s
ent OK Carry true.
If the printer timed out Carry false.
Always A and
other flags corrupt. All other registers p
reserved. AMSTRAD CPC464/664/6128 FIRMWARE
page 1.8 The action of the substitute routine will be to
select the screen stream that the printer output is to appear on, to
print the character on the stream and then to restore the stream th
at was originally selected. To do this the substitute routine will n
eed to call the routines TXT STR SELECT and TXT OUTPUT. Once
again the full descriptions of these jumpblock entries can be found
in section 15. The entry/exit conditions are as follows TX
T STR SELECT Entry conditions A
contains the stream number to select. Exit conditions
A contains previously selected stream number.
HL and flags corrupt. All other regist
ers preserved. TXT OUTPUT Entry conditions
A contains character to print. Exit
conditions All registers and flags preserved.
The code for the substitute routine could be written as follows
(stream 7 has been chosen as the stream on which printer output is to
appear) PUSH HL PUSH BC LD B,A
Save the character to print LD A,7
Printer stream number CALL TXTSTRSELECT Select the print
er stream LD C,A Save the original stream number
LD A,B Get the character again CAL
L TXTOUTPUT P Send it to the screen LD A,C
Get the original stream number CALL TXTSTRSELECT
Reselect the original stream POP BC POP HL SC
F The character was sent OK RET AMS
TRAD CPC464/664/6128 FIRMWARE page 1.9
Note the following points 1/ MC PRINT CHAR preserves HL an
d BC. The routine above uses B and C for temporary storage and HL is c
orrupted by TXT STR SELECT. HL and BC are therefore pushed and poppe
d to preserve them through the substitute routine. 2
/ MC PRINT CHAR returns a success/fail indication in the carry flag. Si
nce the routine above can never fail it always sets the carry flag to
indicate success. 3/ The routine above does not change which text
stream is selected. It selects the stream it is going to print on and re
stores the previously selected stream when it has printed the character
. The firmware is written in such a way as to allow routines to res
tore the original state when they finish if required. To
use the substitute routine it is necessary to patch it into memory and
to change the jumpblock entry for MC PRINT CHAR to jump to it. Assu
me that some memory at #AB00 has been reserved for the substitute routi
ne and that the routine has been patched into memory. The MC PRINT
CHAR entry in the jumpblock is at location #BD2B (as can be seen by insp
ecting section 13. 1.8). The three bytes of the entry should be set to t
he instruction JP #AB00 by patching as follows #BD2B
#C3 #BD2C #00 #BD2B #AB
From now on all text sent to the printer will appear on the screen on s
tream 7. Of course, stream 7 should have its window set so that it do
es not interfere with any other stream using the screen. This redi
rection will remain in force until the jumpblock entry is restored.
This can be achieved by patching the jumpblock back again or by calling
JUMP RESTORE or by causing an EMS initialization to take place by res
etting the system. AMSTRAD CPC464/664/6128 FIRMWARE
page 1.10 section 14. The first and largest
jumpblock Preface. The computers in the CPC range
contain ROMs which hold the BASIC interpreter and the 'firmware'.
The firmware consists of low level routines responsible for driving
the hardware, handling the screen, handling real-time events and oth
er similar functions. This manual describes the firmware.
This manual is applicable to the full range of CPC machines 464, 664,
6128 and 464+DDI-1. The firmware in these machines is not identical.
All 464s contain V1.0 of the firmware, all 664s contain V1.1 and all
6128s contain V1.2. All firmware calls are upwards compatible, that i
s, any firmware call available in V1.0 is available in V1.1 and V1.2 an
d any firmware call available in V1.1 is available in V1.2. Upwards com
patibility will be maintained in any future versions of the firm
ware. As stated above this manual relates only to the firmware s
ection of the ROMs. Other AMSOFT publications describe the BASIC in
terpreter (though not at a system level) and the various implementat
ions of CP/M. However, the areas in which CP/M and the firmware intera
ct are covered in this manual. Also, areas of the firmware that are af
fected by the addition of a disc interface are covered in this manual.
AMSTRAD CPC464/66
4/6128 FIRMWARE P PREFACE The computers in
the CPC range contain ROMs which hold the BASIC interpreter andeve
l) and the various implementations of CP/M. However, the areas in w
hich CP/M and the firmware interact are covered in this manual. Also,
areas of the firmware that are affected by the addition of a disc inter
face are covered in this manual.
AMSTRAD CPC464/664/6128 FIRMWARE The
Contents. 1 The Firmware. 1.1 The Hardware.
1.2 The Division of the Firmware. 1.3 Controlling the Firmware.
1.4 The Jumpblocks. 1.5 Conventions. 1.6 Routine Documenta
tion. 1.7 Example of Patching a Jumpblock. 2 ROMs, RAM an
d the Restart Instructions. 2.1 Memory Map. 2.2 ROM Sele
ction. 2.3 The Restart Instructions. 2.4 RAM and the Firmware.
2.5 Bank Switching. 3 The Keyboard. 3.1 Key
board Scanning. 3.2 Key Translation. 3.3 Characters from the K
eyboard. 3.4 Shift and Caps Lock. 3.5 Repeating Keys.
3.6 Breaks. 3.7 Function Keys and Expansion Tokens. 3.8 Joyst
icks. 4 The Text VDU. 4.1 Text VDU Coordinate Systems
. 4.2 Streams. 4.3 Text Pen and Paper Inks. 4.4 Text
Windows. 4.5 The Current Position and the Cursor. 4.6 Characte
rs and Matrices. 4.7 Character Output and Control Codes.
AMSTRAD CPC464/664/6128 FIRMWARE Contents 1
The Graphics VDU. 5.1 Graphics VDU Coordinate Systems.
5.2 The Current Graphics Position. 5.3 Graphics Pen and Paper
Inks. 5.4 Graphics Write Mode. 5.5 Graphics Window. 5
.6 Writing Characters. 5.7 Drawing Lines. 5.8 Filling Areas.
6 The Screen. 6.1 Screen Modes. 6.2 Inks a
nd Colours. 6.3 Screen Addresses. 6.4 Screen Memory Map.
7 The Sound Manager. 7.1 The Sound Chip. 7.2 To
ne Periods and Amplitudes. 7.3 Enveloping. 7.4 Sound Commands.
7.5 Sound Queues. 7.6 Synchronization. 7.7 Holding S
ounds. 8 The Cassette Manager. 8.1 File Format.
8.2 Record Format. 8.3 Bit Format. 8.4 The Header Record
. 8.5 Read and Write Speeds. 8.6 Cataloguing. 8.7 Rea
ding Files. 8.8 Writing Files. 8.9 Reading and Writing Files S
imultaneously. 8.10 Filenames. 8.11 Cassette Manager Messages.
8.12 Escape Key 8.13 Low Level Cassette Driving. AMST
RAD CPC464/664/6128 FIRMWARE Contents 2
9 AMSDOS 9.1 Features 9.2 Filenames 9.3
File Headers 9.4 Disc Organisation 9.5 Boot Sector 9.6
AMSDOS Messages 9.7 BIOS Facilities Available to AMSDOS 9.8
Store requirements 9.9 Extended Disc Parameter Blocks 10
Expansion ROMs, Resident System Extensions and RAM Programs 10.1 R
OM Addressing. 10.2 The Format of an Expansion ROM. 10.3 Foregro
und ROMs and RAM Programs. 10.4 Background ROMs. 10.5 Resident S
ystem Extensions. 10.6 External Commands. 10.7 Examples.
11 Interrupts. 11.1 The Time Interrupt. 11.2 Extern
al Interrupts. 11.3 Nonmaskable Interrupts. 11.4 Interrupts and
Events. 11.5 Interrupt Queues. 12 Events 1
2.1 Event Class. 12.2 Event Count. 12.3 Event Routine. 1
2.4 Disarming and Reinitializing Events. AMSTRAD CPC464/
664/6128 FIRMWARE Contents 3 13 T
he Machine Pack. 13.1 Hardware Interfaces. 13.2 The Printe
r. 13.3 Loading and Running Programs. 14 Firmware Jumpbloc
ks. 14.1 The Main Jumpblock. 14.1.1 Entries to the
Key Manager. 14.1.2 Entries to the Text VDU. 14.1.3 Entries to
the Graphics VDU. 14.1.4 Entries to the Screen Pack. 14.1.5 E
ntries to the Cassette Manager. 14.1.6 Entries to the Sound Manager. P
14.1.7 Entries to the Kernel. 14.1.8 Entries to the Machine P
ack. 14.1.9 Entries to the Jumper. 14.1.10 Further Entries.
14.2 Firmware Indirections. 14.2.1 Text VDU Indirections
. 14.2.2 Graphics VDU Indirections. 14.2.3 Screen Pack Indirec
tions. 14.2.4 Keyboard Manager Indirections. 14.2.5 Machine Pa
ck Indirections. 14.2.6 Further Indirections. 14.3 The High
Kernel Jumpblock. 14.4 The Lower Kernel Jumpblock. 15 The M
ain Firmware Jumpblock. 16 The Firmware Indirections. 17 Ker
nel High Entries. 18 Low Entries to the Kernel. 19 AMSDOS 'B
IOS' Facilities 20 AMSDOS External Commands AMSTRAD CPC464
/664/6128 FIRMWARE Contents 4 App
endices I Key Numbering. II Key Translation
Tables. III Repeating Keys. IV Function Keys
and Expansion Strings. V Inks and Colours. VI
Displayed Character Set. VII Text VDU Control Codes.
VIII Notes and Tone Periods. IX The Programmable Sou
nd Generator. X Kernel Block Layouts. XI Th
e Alternate Register Set. XII Hardware and Hardware Variants
XIII Hints, Tips and Workarounds. XIV Printer Tra
nslation Table. AMSTRAD CPC464/664/6128
FIRMWARE Contents 5 of the Firmwar VII
Text VDU Control Codes. VIII Notes and Tone Periods.
IX The Programmable Sound Generator. X Kernel Block L
ayouts. XI The Alternate Register Set. XII Ha
rdware and Hardware Variants XIII Hints, Tips and Workarounds.
XIV Printer Translation Table. 2 ROMs, RAM and th
e Restart Instructions The system has 32K of ROM and 64K of RAM in
the Z80's 64K address space. To allow this the ROM can be enabled or
disabled as required. Additional Expansion ROMs can be selected gi
ving up to 4128K of program area. All the Z80 restart in
structions, except for one, have been reserved for system use. RST 1 t
o RST 5 are used to extend the instruction set by implementing special
call and jump instructions that enable and disable ROMs. RST 6 is av
ailable to the user. 2.1 Memory Map. The memory map is com
plicated by the fact that into the Z80's address space of 64K bytes has
been squeezed 64K bytes of RAM, 32K bytes of ROM and provision for R
OM expansion of up to 252*16K (nearly 4M) bytes. The address space
is divided as follows Address RAM
ROM #10000 #10000
Default S
creen Upper ROMs Memory
(bank switched) #C000 #C000
Stack, Firmware
Data & Jumpblock #B100
Foreground Data
#AC00
----------------- Background Data #504 bytes for AM
SDOS ----------------- #
Memory Pool # #4000
Background Data #
Lower ROM Foreground Data
#0040 P
Firmware Area #0000
#0000 AMSTRAD CPC464/664/6128 FIRMWARE
page 2.1 The size of the two background areas depend
on the background ROMs fitted to the machine (see section 9).
The upper foreground data area need not have its lower bound at #AC00
but this is the default setting (as used by BASIC). The lower
foreground data area need only be reserved if it is needed (this area
is not used by BASIC and is set to zero length). The memory pool left
between the background data areas is also for the foreground program t
o use (see section 9). The 32K of on-board ROM is split into two secti
ons which are handled separately. Henceforth these will be discuss
ed as if they were separate ROMs. The firmware resides in the lo
wer ROM. The BASIC resides in the upper ROM. This upper ROM is bank s
witched so that up to 252 expansion ROMs (see section 9) can replace
it in the memory map. 2.2 ROM Selection. There ar
e two mechanisms for switching ROMs in and out of the address space
a. ROM State. The upper and lower ROMs may be enabled and
disabled separately. When the upper ROM is enabled data read from
addresses between #C000 and #FFFF is fetched from the ROM. Simila
rly, when the lower ROM is enabled data read form addresses between
#0000 and #3FFF is fetched from the ROM. When the ROMs are disabled
data is fetched from RAM. Note that the ROM state d
oes not affect writing which always changes the contents of RAM
. b. ROM Select. Expansion ROMs are supported by swi
tching the upper ROM area between ROMs. Expansion ROMs are add
ressed by a separate ROM select address byte implemented in I/O
space. ROM select addresses are in the range 0..251, providing for u
p to 252 expansion ROMs. When the machine is first turned on it
selects ROM zero. This will usually select the on board ROM, but a
n expansion ROM may be fitted at this address, which will pre-em
pt the on-board ROM. See section 9 for a description of the use of
expansion ROMs. 2.3 The Restart Instructions. The kernel
supports the store map in a number of ways. In particular a variety of f
acilities are provided to handle subroutine addresses extented to i
nclude ROM select and/or ROM state information. Some of the restart
instructions are used to augment the existing Z80 instruction set
. The other restarts are reserved. AMSTRAD CPC464/664/6128 FIRMWARE
page 2.2 The firmware between #
0000 and #003F is set up so that the restarts operate whatever the cu
rrent ROM state is. The user should not alter the contents of this are
a except as indicated in section 18. The restarts are as follows. A fu
ller description of their operation can be found in section 18.
a. The Extended Instruction Set. LOW JUMP (RST 1) RS
T 1 jumps to a routine in the lower 16K of memory. The two bytes fol
lowing the restart are assumed to be a 'low address' - so RST 1 can
be considered to be a three byte instruction, rather like a JP instr
uction. The top 2 bits of the 'low address' define the ROM enable
/disable state required the bottom 14 bits give the actual address (
in the range #0000 to #3FFF) to jump to once the ROM state is set
up. When the routine returns the ROM state is restored to its orig
inal setting. The firmware jumpblock, through which th
e firmware routines should be called, makes extensive use of LOW
JUMPs. These LOW JUMPs request the lower ROM to be enabled, so th
at the lower ROM may be disabled except when the firmware is active
. SIDE CALL (RST 2) RST 2 calls a routine in an asso
ciated ROM. I P t has a very specialised. A foregroun
d program (see section 9) may require more than 16K of ROM. The side
call mechanism allows for calls between two, three or four associa
ted ROMs without reference to their actual ROM select addresses
, provided that the ROMs are installed next to each other and in or
der. The two bytes following the restart instruction give the
'side address' of the routine to call - so the RST 2 can be consid
ered to be a three byte instruction, rather like a CALL instructi
on. The top 2 bits of the 'side address' specify which of the fo
ur ROMs to select the bottom 14 bits, when added to #C000, give the
actual routine address. The upper ROM is enabled, the lower ROM is
disabled. Both ROM state and the ROM select are restored to their
original settings when the routine returns. FAR CALL (RST 3
) RST 3 calls a routine anywhere in memory, in RAM or in any RO
M. The two bytes following the restart are assumed to be the addres
s of a 'far address'. The 'far address' is a three byte object,
which takes the form Bytes 0..1 Actual address
of routine to call. Byte 2 ROM select/state required.
The ROM select/state byte may take the following values 0.
.251 Select the upper ROM at this ROM select address.
Enable the upper ROM, disable the lower ROM. AMSTRAD CPC
464/664/6128 FIRMWARE page 2.3
252..255 No change of ROM select, enable/disable ROMs as
follows 252 Enable upper RO
M, enable lower ROM. 253 Enable upper ROM, disable
lower ROM. 254 Disable upper ROM, enable lower RO
M. 255 Disable upper ROM, disable lower ROM.
Note that the 'far address' is not itself contained in the
'instruction', but is pointed at. This is because the ROM select
address will depend on the particular order in which the user has
chosen to install expansion ROMs and must be established at run
time. Both the ROM state and the ROM select are restored
to their original settings when the routine returns. RA
M LAM (RST 4) RST 4 reads the bytes from RAM at the address give
n by HL. It disables both ROMs before reading and restores
the state afterwards. This 'instruction' avoids the user having
to put a read routine into the central 32K of RAM to access
RAM hidden under a ROM. Writing to a memory location
always changes the contents of RAM whatever the ROM enable state.
FIRM JUMP (RST 5) RST 5 turns on the lower ROM and jump
s to a routine. The two bytes following the restart are assumed to b
e the address to jump to - so RST 5 can be considered to be a thre
e byte instruction, rather like a JP instruction. The lower ROM is
enabled before jumping to the routine and is disabled when the rout
ine returns. The state of the upper ROM is left unchanged throughout
. b. The Other Restarts. RESET (RST 0) RST 0 r
esets the system as if the machine has just been turned on. USER RESTA
RT (RST 6) RST 6 is available for the user. It could be used to
extend the instruction set in the same way that other restarts
have been used, or it could be used for another purpose such as a b
reakpoint instruction in a debugger. Locations #0030 t
o #0037 inclusive in RAM may be patched in order to gain control of
the restart. If the lower ROM is enabled when the restart is exec
uted then the code in ROM at this address causes the ROM state
to be saved in location #002B. Then the lower ROM is disabled and t
he firmware jumps to location #0030 in RAM. If the lower ROM is di
sabled then the restart calls #0030 as normal for this Z80 res
tart instruction. AMSTRAD CPC464/664/6128 FIRMWARE P
page 2.4 INTERRUPT (RST 7) RS
T 7 is reserved for interrupts (see section 10), it must not be exe
cuted by a program. 2.4 RAM and the Firmware. The ROM st
ate should be transparent to the user. If the current foreground
program (see section 9) is in ROM then the normal ROM state is to have t
he upper ROM enabled and the lower ROM disabled. If the current foreg
round program is in RAM then the normal state is to have both ROMs disa
bled. These states allow the foreground program free access to the m
emory pool. When a firmware routine is called the lower ROM is enabled a
nd the upper ROM is usually disabled. This allows the firmware free acc
ess to the default screen memory (but not all the memory pool). When
the firmware routine returns the ROM state is automatically resto
red to what it was. The cases where the ROM state is important are
a. Stack The hardware stack should never be below #4000,
otherwise serious confusion will occur when the lower ROM is enabled
and the stack is used - for example, when interrupts occur or the fir
mware is called. Similarly, it is inadvisable to set the stack above
#C000 unless it is certain that the upper ROM is never enabled when the
stack is in use. The system provides a stack area immediatley below
#C000 which is over 256 bytes long. This should be adequate for most pu
rposes. b. Communication with the firmware. Most firmware ro
utines take their parameters in registers. However, some use data are
as in memory to pass information. Most firmware routines that use
data areas in memory read those directly without using RAM LAMs (see
above) or the equivalent. These routines are affected by the ROM
state and the ROM select. They will read data from a ROM if the ROM is e
nabled and the routine is given a suitable address. (Note that th
e jumpblock disables the upper ROM when the firmware is called). Ot
her firmware routines that use data areas in memory always read from
RAM. They are unaffected by the ROM state and the ROM select.
Routines that always access RAM will mention this in the description
of the routine. Other routines may be assumed to be affected by the
ROM state. In particular the various data blocks used by the Kernel
must lie in the central 32K of RAM for the Kernel to be able to use t
hem. AMSTRAD CPC464/664/6128 FIRMWARE pag
e 2.5 c. Communication between upper ROMs. Pro
grams in upper ROMs may call routines in other ROMs, using the vari
ous Kernel Facilities. There is no provision in the firmware, howev
er, for a program in one ROM to access constants in another. The
majority of firmware routines are called via the firmware jumpbl
ock, which starts at location #BB00, in the firmware RAM area. T
he Kernel routines associated with the memory map are called via one or
two other jumpblock areas the LOW area between #0000 and #003F, and
the HIGH area starting at #B900. All of these routines and jumpb
locks are copied out of the lower ROM into the firmware RAM area when t
he Kernel is initialized. Thus they work independently of the ROM sta
te. 2.5 Bank Switching. The ULA in the CPC6128 inclu
des circuitry for bank switching 128K RAM into the 64K memory map descr
ibed in section 2.1. The bank switched RAM replaces the RAM in the me
mory map at #0000..#3FFF, #4000..#7FFF, #8000..#BFFF and #C000..#FFFF.
The user can select an organization by calling KL BANK SELECT.
The blocks available in each organization are as follows
Organization Block accessed at memory address
#0000 #4000 #8000 #C000 0
0 1 2 3 1
0 1 2 7 2 4
5 6 7 3 0 3
2 7 P 4 0 4 2
3 5 0 5 2 3
6 0 6 2 3
7 0 7 2 3 Dur
ing EMS the CPC6128 selects organization 0 and this is the orga
nization normally associated with the firmware. Note that blocks 0 and 2
contain firmware variables, firmware jumpblocks and the stack. All th
ese need to be in their correct places for the firmware to run. AMST
RAD CPC464/664/6128 FIRMWARE page 2.6 rt Instruc
tions The system has 32K of ROM and 64K of RAM in the Z80's 64K
a 3 During EMS the CPC6128 selects organization 0 a
nd this is the organization normally associated with the firmware. No
te that blocks 0 and 2 contain firmware variables, firmware jumpblocks a
nd the stack. The documentation for a number of firmware
routines specifies that data blocks passed to them should be in the
central 32K memory. In most cases it does not matter which blocks
are switched into the memory map at these places, however, the Kerne
l accesses data blocks passed to it (e.g. ticker blocks or RSX comman
d tables) at various times (e.g. during interrupts or event process
ing) and it has no control over the bank switching at such times. It
is up to the user to ensure that the Kernel is only passed data
blocks that remain accessable. The simplest solution to this problem i
s to ensure that all Kernel data blocks are located in block 2 (b
etween #8000 and #BFFF). Organizations 4..7 are the firm
ware organization with a new block switched into the memory map at
#4000. These organizations can be used to access programs or data stored
in blocks 4..7. Organizations 1..2 are used by CP/M Plus and are
not really suitable for general use. In particular, if organization 2
is selected it is necessary to patch a progam into RAM at #0038 to ca
tch interrupts and to bank switch back to a more normal organization (
e.g. organization 1) to run the standard interrupt code.
Organization 3 is also used by CP/M Plus but it is of interest since i
t has the RAM usually used for the screen located at #4000 where it ca
n be accessed without disabling the upper ROM. Bank switching has
no effect on the CRTC. Base addresses #0000, #4000, #8000 and #C000 corr
espond to the screen being in blocks 0, 1, 2 and 3 respectively. It is n
ot possible to locate the screen in blocks 4..7. However, the firmware
routines for accessing the screen memory are affected by bank switch
ing. For example, if a base address of #C000 is set in organization 3 th
en the firmware will be unable to access the screen memory since block
1 is not in the memory map. (See section 6.4 for a full description of
the screen memory map). Organizations 4..7 can be used to set up a
complete screen in one go by using SCR SET POSITION to make the firmw
are write to the memory location at #4000 without sending a new base
address to the screen hardware. Then, when the screen has been fin
ished, the contents of this block can be quickly copied into the bloc
k actually being used by the CRTC (using KL DIR perhaps). For example, a
title screen could be set up and bank switched out of the way and then
switched back in and copied at a later date when it is wanted.
AMSTRAD CPC464/664/6128 FIRMWARE page
2.7 AP-2 $$$ ROMs, RAM and the Restart Instructions The system has
32K of ROM and 64K of RAM in the Z80's 64 3 The Keyboard.
The Key Manager is the pack associated with the keyboard. All the
attributes of the keyboard are generated and controlled by the Key
Manager. These attributes include repeat speed, shift and control
keys, function keys and key translation. The joysticks are also
scanned by the Key Manager. The Key Manager has three levels of
operation. The lowest level scans the keyboard, the middle level con
P verts the key pressings into key values and the top level
converts the key values into characters. The user may access the Key M
anager at whichever level is most appropriate for a given program. It is
usually unwise, however, for a program to mix accesses at different l
evels. 3.1 Keyboard Scanning. The keyboard is completel
y software scanned. This scan occurs automatically every fiftieth
of a second (see KM SCAN KEYS). The keyboard hardware is read and
a bit map noting which keys are pressed is constructed. This bit map is
available for testing if specific keys are pressed (see KM TEST KEY). A
s the bit map is constructed keys that are newly pressed are noted and
markers are stored in a buffer until needed. If no newly pressed
keys are found then the last key pressed may be allowed t repeat if
it is still down (see section 3.5). The keyboard is 'debounced' in
that a key must be released for two consecutive scans before it
is marked as released in the bit map. This 'debounced' hides mu
ltiple operations of the key switch as it opens or closes.
At this stage only four keys are treated specifically. The two
shift keys and the control key are not stored in the key buffer
themselves. Instead, when any other marker is stored the states of
the shift and control keys are noted and put into the buffer as w
ell. The escape key generates a marker as normal but may also ha
ve other effects depending on whether the break mechanism is arm
ed (see section 3.6). There is a problem with scanning the keyboard.
If three keys at the corners of a rectangle in the key matrix are al
l pressed at the same time then the key at the fourth corner appears t
o be pressed as well. There is no way to avoid this problem as it is
a feature of the keyboard hardware. All key combinations used by th
e firmware (and the BASIC) have been especially designed to avoid this
effect. 3.2 Key Translation. When the user asks for a key (K
M WAIT KEY or KM READ KEY) the next key pressed marker is read from the
key buffer. The marker is converted to a key number and this is looked u
p in one of the three translation tables. AMSTRAD CPC464/6
64/6128 FIRMWARE page 3.1 Which
table is used depends on whether the shift and control keys were presse
d when the key was pressed. One table is used if the control key was
pressed, another is used if either shift key was pressed but con
trol was not, the third is used if neither shift nor control k
eys were pressed. The contents of these tables can be altered by
the user as required (by calling KM SET CONTROL, KM SET SHIFT and K
M SET TRANSLATE respectively). The value extracted from the table may
be a system token, an expansion token or a character. Expansion tokens a
nd characters are used by the top level of the Key Manager (see 3.3 bel
ow) an are passed up from the middle level when they are found in a tabl
e. There are three system tokens, which are obeyed immediately they a
re found in a table. After obeying the token the next marker is re
ad from the buffer and translated. The default translation
tables are described in Appendix II. The immediately obeyed System to
kens are a. Ignore (#FF) The key pressed is
to be ignored. b. Shift lock (#FE) The shift l
ock is to be toggled (turned on if it is currently off and turn
ed off if it is on). c. Caps lock (#FD) The
caps lock is to be toggled (turned on if it is off and off i
f it is on). 3.3 Characters from the Keyboard. When the user a
sks the top level for a character (KM WAIT CHAR or KM READ CHAR) a key
is fetched from the middle level. If this is a character (#00..#
7F or #A0..#FC) then it is passed to the user. If it is one of the
32 expansion tokens (#80..#9F) then the string associated with the
token is looked up. The characters in this string P are passed to the
user one at a time with each request for a character until the end of t
he string is reached. There is only one character with a special meani
ng at this level. This is character #EF which is produced when press
ing the escape key generates a break event (see section 3.6). It has
no effects, it is merely a marker for the place in the buffer where a
break event was generated. It is intended to be used to allow all
characters before the break to be discarded. This character is not g
enerated by the translation tables and thus cannot be changed by alter
ing them. A single 'put back' character is supported. When the user pu
ts back a character this character will be returned by the next call to
the top level of the Key Manager. This is intended for use by progra
ms that need to test the next character to be read from the keyboard
without losing it (when processing breaks perhaps). In V1.1 fi
rmware it is possible to call KM FLUSH to discard any unused or unwanted
characters so that subsequent calls to KM READ CHAR or KM READ KEY wil
l not return values from a previous input. The same effect can be achiev
ed in V1.0 Firmware by repeatedly calling KM READ CHAR until it retur
ns with carry false to indicate that there are no more characters avai
lable. AMSTRAD CPC464/664/6128 FIRMWARE pag
e 3.2 3.4 Shift and Caps Lock. a. Shift lock
When shift lock is engaged then the keys pressed are
translated as if a shift key is pressed. The shi
ft lock is toggled by a stream token (see 3.2 above) which is
normally generated by pressing CTRL and CAPS LOCK. b. Caps lock
When caps lock is engaged then alphabetic characters read
from the keyboard are converted to their upper case
equivalents. This case conversion is applied be expansion
tokens are expanded and so expansions are not capitalised.
The caps lock is toggled by a system token (see 3.2 above)
which is normally generated by pressing CAPS LOCK (without
control). In V1.1 firmware it is possible to set the state of t
he locks as if the SHIFT or CAPS LOCK keys had been pressed by callin
g KM SET LOCKS. 3.5 Repeating keys. There is a table which t
he user can alter as desired, that specifies which keys are allowed to
repeat when held down (see KM SET REPEAT). The default setting for th
is table is described in Appendix III. Briefly, the default is to
allow all keys to repeat except the ESC, TAB CAPS LOCK, SHIFT, ENTER
and CTRL keys and the 12 keys in the numeric keypad (the function
keys). The speed at which keys repeat and the delay before the first
repeat can be set by the user (see KM SET DELAY). The default speed pr
oduces up to 25 characters a second with a 0.6 second start up delay.
A key is allowed to repeat if the following conditions are satisfied
1/ The appropriate time has passed since the key was first
pressed or it last repeated. 2/ The key is sti
ll pressed. 3/ No other key has been pressed since the key
was first pressed. 4/ The key is marked a
s allowed to repeat in the repeat table.
5/ There are no keys stored in the key buffer. Condition 5 above me
ans that the repeat speed and start up delay set the maximum speed at
which a key is allowed to repeat. If a program is slow about removing ke
ys from the buffer then the generation of keys will adjust itself to t
his. Thus it is impossible to get a large number of keys stored in
the buffer simply by holding a key pressed. AMSTRAD CPC464/664/6128
FIRMWARE page 3.3 3.6 Breaks.
Breaks occur when the keyboard scanner detects that the ESC key is
pressed. When the escape key is found to be pressed the indirection KM
TEST BREAK is called to deal with the break. The default setting for
this routine tests wh Pether the SHIFT, CTRL and ESC keys and no others
are pressed. If so the system is reset (by executing and RST 0),
otherwise the break mechanism is invoked. It the break mecha
nism is disarmed then no action is taken other than the normal insertio
n of the marker for the escape key into the key buffer. If the break
mechanism is armed then two additional operations take place. Firstly,
a special marker is placed into the key buffer that will generate cha
racter #EF when it is found (irrespective of the translation tables). T
his is intended to be used to allow the characters which were in
the buffer before the break occurred to be discarded. Secondly, the
synchronous break event is 'kicked'. The break mechanism can be arme
d or disarmed at any time (by calling KM ARM BREAK or KM DISARM BREAK)
. The default state is disarmed. When a break is detected the mechanis
m is disarmed automatically which prevents multiple breaks from occu
rring. The method BASIC uses to handle breaks should serve as a m
odel for other programs. BASIC's action is as follows
The break mechanism is armed. After each BASIC instruction
the synchronous event queue is polled and if a break event is
found (because it has been kicked as explained above) the b
reak event routine is run. The break event routine stops soun
d generation (SOUND HOLD) and then it discards all characters
typed before the break occurred by reading characters from
the keyboard (KM READ CHAR) until either the buffer is empt
y or the break event marker (character #EF) is found. BASIC
then turns the cursor on (TXT CUR ON) and waits for the next
character to be typed (KM WAIT CHAR). If th
e next character is the escape token (character #FC - the de
fault value generated by the ESC key) then a flag set to make
BASIC abandon execution (or run the user's ON BREAK GOSUB su
broutine) and the break event routine returns. If the next ch
aracter is any character other than escape then the break will
be ignored. If it is any character other than space then this
is 'put back' (KM CHAR RETURN). Before the event routine ret
urns the cursor is turned off (TXT CUR OFF), sound generation i
s restarted (SOUND CONTINUE) and the break mechanism is rearme
d. BASIC then continues as if nothing had happened.
When reading or writing from the cassette the ESC key is handled in a
different manner which is described in section 8.12 AMSTRAD CPC464/66
4/6128 FIRMWARE page 3.4 3.7 Fu
nction Keys and Expansion Tokens. The Key Manager allows for 32 ex
pansion tokens (values #80..#9F) which may be placed in the key translat
ion tables. Each token is associated with a string which is stored in t
he expansion buffer. When the user asks the top level for a charac
ter a key is fetched from the middle level. If this key is a character
it is passed straight back. However, if it is an expansion token then
the string associated with the token is looked up. The characters in t
his string are passed out one at a time with each request for a charact
er until the end of the string is reached. Values #80..#9F and #EF
, #FD..#FF in the expansion string are treated as characters and are
not expanded or obeyed. The user may set the string as
sociated with an expansion token (see KM SET EXPAND) and may cause any k
ey on the keyboard to generate an expansion token. The default set
tings for the expansion tokens and the keys with which they are normally
associated are given in Appendix IV. The user may also set the size and
location of the expansion buffer (see KM EXP BUFFER) the default buf
fer is at least 100 bytes long. 3.8 Joysticks. There
may be two joysticks connected to the system. These are both scanne
d in the same way as keys on the keyboard. Indeed, the second joys P
tick occupies the same locations in the key matrix as certain other
keys and is indistinguishable from then. The state of the joysti
ck can be determined by calling the routine KM GET JOYSTICK. Becau
se the joysticks are scanned like keys the pressing of joystick button
s can be detected like any other key. Firstly, individual directi
on or buttons can be tested in the key bit map (see section 3.1) by
calling KM TEST KEY. Secondly, the joystick buttons generate character
s when they are pressed (providing the translation tables are set suitab
ly) and these characters can be detected. The major problem with this l
atter method is that the rate of generation of characters depends on h
ow fast the keyboard is set to repeat. If the repeat speed in increased
to make the joystick more responsive then then the keyboard may b
ecome impossible to use. See Appendix I for the numbering of the k
eys and joystick buttons and see Appendix II for the default translatio
n tables. AMSTRAD CPC464/664/6128 FIRMWARE
page 3.5 the pack associated with the keyboard. All the attribut
characters depends on how fast the keyboard is set to repeat. If the rep
eat speed in increased to make the joystick more responsive then t
hen the keyboard may become impossible to use. See Append
ix I for the nu 4 The Text VDU. The Text VDU is a ch
aracter based screen driver. It controls 8 different streams each
of which can have an area of screen allocated to it (a window). The Te
xt VDU allows characters to be written to the screen and read from the
screen. It also treats certain 'characters' as 'control codes' which c
an have various effects, from moving the cursor to setting the colou
r of an ink. 4.1 Text VDU Coordinate System. The Text VD
U uses two coordinate systems - logical and physical. Generally th
e user specifies positions to the Text VDU in logical coordinates.
Physical coordinates are used internally and occasionally by the user to
specify positions to the Text VDU. Both systems use signed 8 bit nu
mbers and work in character positions. Each character position is 8 pi
xels (dots) wide and 8 pixels high. This means that the position of a
coordinate on the screen depends upon the screen mode.
Physical coordinates have columns running from left to right and rows r
unning top to bottom. The character position at the top left corner of
the screen is row 0, column 0. Logical coordinates are similar to p
hysical coordinates except that the character position at the top lef
t corner of the text window is row 1, column 1. 4.2 Strea
ms. The Text VDU has facilities for handling up to 8 streams at once
. Each stream has an independent state (although some facilities are s
hared and thus affect all streams when altered). The features that
are stream dependent are VDU enable.
Cursor enable (enable or disable, on or off). Cursor position
. Window size. Pen and paper inks.
Character write mode (opaque or transparent). Graphics ch
aracter write mode. The features that affect all streams are
Character matrices. Control code buffer.
Text VDU indirections. Screen mode. AMSTRAD CPC4
64/664/6128 FIRMWARE page 4.1 A
ll these features are explained in detail in the sections below. At an
y time, the stream which is currently selected may be changed withou
t adverse eff Pects provided that the control code buffer is not in u
se (see section 4.7 for further explanation). A stream will remain selec
ted until another stream is selected. This means that a program need n
ot know which stream it is using. The default stream, selected at EMS,
is stream 0. BASIC extends the stream concept to include the
printer and cassette/disc files. This extension is not part of the fi
rmware. 4.3 Text Pen and Paper Inks. Each stream has a pen a
nd a paper ink associated with it. The text pen ink is used to set the f
oreground pixels in characters (see section 4.6). The text paper ink
is used to set the background pixels in characters and to clear th
e text window. The pens and papers can be set to any ink that is valid
in the current screen mode (see section 6.1). The default setting for
a stream has the paper set to ink 0 and the pen set to ink 1. Changin
g a pen or paper ink does not change the screen it merely alters how
characters will be written in the future. 4.4 Text Windows.
Each stream has a text window associated with it. This window
specifies the area of the screen where the stream is permitted to
write characters. This allows different streams to use different
portions of the screen without interfering with each other. Window
s are trimmed so that they fit within the current screen (whose size va
ries with the screen mode, see section 6.1). The smallest size a window
allowed is 1 character wide and 1 character high. Before writing to t
he screen the position to write is forced to lie inside the window (s
ee section 4.5 below). This may cause the window to roll. Other operat
ions, such as obeying certain control codes also cause the write positi
on to be forced inside the window. A text window which does not cover
the whole screen is rolled by the firmware copying areas of screen mem
ory around. There is no alternate method available. This makes rolling
large windows a fairly consuming process. A text window which
covers the whole screen is rolled by using the hardware rather than
copying areas of memory. The offset of the start of the screen in the
screen memory can be set (see section 6.4). By changing this offset b
y +80 or -80 the whole screen can be rolled up or down by a line of ch
aracters. It is obviously a good idea to prevent windows that are b
eing used from overlapping. If they are allowed to overlap then the po
rtion in multiple use will merely contain whatever was written to i
t last. There is no precedence of windows one over another. A window oc
cupying the whole screen will overlap the other window and so if this
window is rolled it will move the contents of the other windows.
AMSTRAD CPC464/664/6128 FIRMWARE page 4.2
The default windows, set up at EMS and after changing screen m
ode, cover the whole screen. All eight windows overlap. 4.5 Th
e Current position and the Cursor. Each stream has a current position
associated with it. This is where the next character to be printed on
the screen is expected to be placed. However, if, when a character
is to be printed, the current position is found to lie outside the
text window then it is forced inside. The following steps are appli
ed in turn to force the current position inside the window
1/ If the current position is left of the edge of the window
then it is moved to the right edge of the window and up one
line. 2/ If the current position is right of the right
edge of the window then it is moved to the left edge of the
window and down one line. 3/ If the current
position is now above the top line of the window then it is
moved to the top line of the window and the contents of the win
dow are rolled down one line. 4/ If the current position is n
ow below the bottom line of the window then it is moved to t
he bottom line of the window and the content Ps of the window
are rolled up one line. When the cursor is enabled, the current posi
tion is marked by the cursor blob. However, before placing the curso
r blob on the screen, the current position is forced to lie inside th
e current window just as it is before a character is placed on the scr
een. This may cause the current position to move. If the cu
rsor is disabled then the current position may lie outside the window
and it will not be forced inside the window until, for example, a
character is printed. The current position can be changed directly
(by calling TXT SET CURSOR, TXT SET ROW or TXT SET COLUMN) or by send
ing control codes to the Text VDU. The location the current position is
moved to is not forced inside the window immediately, but only when
the window is to be written to, as described above. This allows the c
urrent position to be changed by moving via a position outside the windo
w, if required. There are two ways to disable the cursor and prevent t
he cursor blob from appearing on the screen. The first, cursor on/off
, is intended for use by systems programs. This is used in BASIC, for
example, to hide the cursor unless input is expected. The sec
ond, cursor enable/disable, is intended for use by the user. The curso
r blob will only be placed on the screen if it is both on and enabled.
In V1.1 firmware it is possible to interrogate the curre
nt enable/disable states of the VDU and cursor for the current strea
m using TXT ASK STATE. AMSTRAD CPC464/664/6128 FIRMWARE
page 4.3 The cursor blob is normally
an inverse patch. The character at the cursor position is displayed
with the text pen and paper ink reversed. This makes it easy to restore
the original form of the character position if the cursor is moved
. It is possible for the user to alter the form of the cursor blob, if
required, by changing the indirections TXT DRAW CURSOR and TXT UNDRAW CU
RSOR. 4.6 Characters and Matrices. A character is displayed on
the screen in an area 8 pixels (dots on the monitor) wide and 8 pix
els high. Thus the maximum number of characters on the screen depe
nds upon the screen mode, (see section 6. 1). Each character has a matr
ix which is an 8 byte vector that specifies the shape of the char
acter. The first byte of the vector refers to the top line of the ch
aracter and the last byte to the bottom line of the character. The
most significant bit of a byte in the vector refers to the leftmost
pixel on a line of the character and the least significant bit refers to
the rightmost pixel on a line of the character. If a bit in the matri
x is set then the pixel is in the foreground. If a bit is clear then th
e pixel is in the background. A foreground pixel in the character is a
lways set to the pen ink. The treatment of a background pixel depends o
n the character write mode of the VDU. In the default mode, opaque mode,
background pixels are set to the paper ink. There is another mode, tr
ansparent mode, in which the background pixels are not altered. Thus
in transparent mode, the character is written over the top of the c
urrent contents of the screen. This is useful for annotating pictures
or generating composite characters. The Text VDU is capable o
f printing 256 different characters, although special effort is required
to print the first 32 characters which are usually interpreted as cont
rol codes. The matrices for the characters are normally stored in the R
OM but the user may arrange for any number of the characters to have mat
rices stored in RAM where they may then be altered. The default settin
g, at EMS, is to have all the matrices in ROM. (BASIC takes special ac
tion during its own initialization to create 16 'user defined' matric
es.) The default character set is described in Appendix V1.
When the user sets up a table of user defined matrices, by calling TXT
SET M TABLE, it is initialized with the current settings of the
matrices from ROM or RAM. This m Peans that extending that table does
not alter the current matrices. Contracting the table will make
the characters lost revert to their default matrice in ROM. When cha
racters are read from the screen (by calling (TXT RD CHAR) the pixels on
the screen are converted to the form of a matrix. This is compared w
ith the current character matrices to find which character it is. This
means that changing the character matrices or altering the screen may m
ake a character unrecognisable, in particular, changing the pen or pa
per ink can cause confusion. Usually these problems result in the
character appearing to be a space (character #20) and so special precaut
ions are taken to avoid generating spaces - after some ink changes real
spaces may be read as block graphics characters #80 or #8F.
To allow the user to change how characters are written to and read
from the screen, the indirections TXT WRITE CHAR and TXT UNWRITE are p
rovided. AMSTRAD CPC464/664/6128 FIRMWARE
page 4.4 4.7 Character Output and Control Codes.
The main character output routine for the Text VDU is TXT OUTPUT. This o
beys control codes (character 0..31) and prints all other characters. Ch
aracters sent to TXT OUTPUT pass through various levels of ind
irection and can be delt with by various output routines. TXT OUTPUT u
ses the TXT OUT ACTION indirection to sort out whether the character is
a printing character, is a control code to be obeyed or is the paramet
er of a control code. TXT OUT ACTION normally calls TXT WRITE CHAR to
print characters on the screen. However, if the graphics character wr
ite mode is selected then characters are printed using the Graphics V
DU character write routine (see 5.6 below.) This mode can be selected
on a character by character basis using a control code or on all char
acters sent (see TXT SET GRAPHIC). When graphic character write m
ode is selected control codes are not obeyed but are printed by the g
raphics routine instead. TXT OUT ACTION deals with a c
ontrol code in the following manner 1/ T
he code is stored at the start of the control code buffe
r. 2/ The code is looked up in the control code table to fin
d out how many parameters it requires. 3/ If
no parameters are required go directly to step 5. 4/ If one
or more parameters are required the TXT OUT ACTION returns but
the next characters sent to it are added to the control code
buffer rather than being printed or obeyed. This continues unt
il sufficient parameter characters have been received.
5/ The code is looked up in the control code table to get the
address of the routine to call to perform the control code
and this routine is then executed. 6/ The cont
rol code buffer is discarded and the next character sent
may be printed or may be the start of a new control code se
quence. The user can change the operation of a control code y changin
g the entry for it in the control code table (see TXT GET CONTROLS).
This contains a 3 byte entry for each code and entries are stored
in ascending order (i.e. the entry for #00 first, #01 next and so on).
Bits 0..3 of the first byte of each entry specifies the number o
f parameters required. This must lie in the range 0..9 as the control
code buffer is only capable of storing up to 9 parameters. In
V1.1 firmware bit 7 specifies whether the code is affected when the VDU
is disabled. If bit 7 is set then the code is to be ignored when the
VDU is disabled otherwise it is to be obeyed. The second and third bytes
are the address of the routine to call to obey the code. This routine
should lie in the central 32K of RAM or in the lower ROM (which will b
e enabled). It should conform to the following entry/exit conditio
ns AMSTRAD CPC464/664/6128 FIRMWARE page
4. P5 AP-4 $$$ Text VDU. The Text VDU is a character based sc
reen driver. It controls 8 different CHAP-2 P1 &'()*+,-./012345CHAP
-2 P1 6CHAP-2 P2 789CHAP-3 zABCDEFGHICHAP-4 $$$JKLMNOPQRSTUVWXY
Entry A contains the last character added to the b
uffer. B contains the number of characters in the buffer (
including the control code). C contains th
e same as A. HL contains the address of the control code bu
ffer (points at the control code). Exit
AF,BC,DE and HL corrupt. All other registers preser
ved. The control code buffer is shared between all streams. A contro
l code sequence should be completed before a stream is changed oth
erwise unexpected effects may occur. The default control c
ode actions, set at EMS and when TXT RESET is called, are described
in Appendix VII. It is possible to disable the text stream by call
ing TXT VDU DISABLE. When disabled the stream will not write any charac
ters to the screen and in V1.1 firmware control codes may not be obe
yed (as described above). Normal operation can be restored by call TXT
VDU ENABLE. Note, however, that calling these routines will empty t
he control code buffer. This effect may be used to avoid problems when
the state of the control buffer is unknown (when printing an
error message perhaps). AMSTRAD
CPC464/664/6128 FIRMWARE page 4.6 differe
nt 5 The Graphics VDU. The Graphics VDU allows indivi
dual pixels (dots) to be set or tested and lines to be drawn. The plot
ting takes place on an ideal screen that is always 640 points wide a
nd 400 points high. This means that more than one point on the ideal
screen will map onto a particular pixel on the real screen. The widt
h of the ideal screen (640 points) is chosen to be the horizontal numb
er of pixels on the screen in the highest resolution mode (mode 2). Th
e height of the ideal screen (400 points) is chosen to be twice the ver
tical number of pixels on the screen in all modes. This ensures that
the aspect ratio of the screen is approximately unity, i.e. a cir
cle looks circular and not elliptical. 5.1 Graphics VDU
Coordinate Systems. The Graphics VDU uses 4 coordinate systems.
The user specifies positions in user coordinates or relative coordina
tes or occasionally in standard coordinates. Internally the Graphi
cs VDU uses base coordinates (or occasionally standard coordinates).
User coordinates, relative coordinates, and standard coordinates are
all very similar. They all use 16 bit numbers and work on points with
X-coordinates running left to right and Y-coordinates running bottom
to top. The screen is always 400 points high and 640 points wide
whatever the Pscreen mode. This means that a pixel (dot on the screen)
is mapped onto by 8 points in mode 0, 4 points in mode 1 and 2 points
in mode 2. The origin (coordinate (0,0)) of these systems vary
In standard coordinates the origin is the point at the bottom
left corner of the screen. The origin of user coord
inates can be set by the user. The default origin is at the
bottom left corner of the screen. This make the default us
er coordinates the same as the standard coordinates.
The origin of relative coordinates is the current position
(see 5.2 below). This allows plotting to be carried out
independently of the position on the screen and is useful if
a particular shape is to be repeated on the screen a number
of times or if it is inconvenient to keep track of the
current location. Base coordinates are a physical coordinat
e system which deals with pixels. X-coordinates run left to right an
d Y-coordinates run bottom to top. Pixel (0,0) is the pixel at the bo
ttom left corner of the screen. Because this coordinate system works
in pixels the coordinates of positions on the screen depend upon
the screen mode. Base coordinates are unsigned 16 bit numbers and
only coordinates that refer to a pixel on the screen are valid.
AMSTRAD CPC464/664/6128 FIRMWARE page 5.1
Graphics routines convert from relative coordinates t
o user coordinates, if necessary, and then from user coordinates t
o base coordinates before accessing the physical screen. During the
latter conversion there is a loss of accuracy because of the mappin
g of multiple points onto a single pixel. This could make shapes drawn
on the screen appear asymmetrical (particularly circles) but the Graph
ics VDU avoids this by rounding the coordinates towards the user origi
n. Thus symmetrical shapes should be drawn symmetrically about the u
ser origin to take advantage of the rounding. If the shape is not centr
ed on the user origin then the asymmetry may reappear. In V1.1
firmware it is possible to call GRA FROM USER to convert from user to
base coordinates - this will make using routines in the lower level scr
een pack easier (e.g. SCR DOT POSITION, SCR HORIZONTAL, SCR VERTICAL).
5.2 The Current Graphics Position. The Graphics VDU stor
es a current position. This is the user coordinate of the last po
int specified to the Graphics VDU (or the origin after clearing the
graphics window). The origin of relative coordinates is specified
to be at this point, thus relative coordinates are an offset fr
om the current position. When drawing a line one end is at the positi
on specified while the other end is at the current graphics pos
ition. When drawing a character on the screen using the graphics char
acter write routine the character is placed with the current graphics
position being the top left corner of the character. After
plotting or testing a point or drawing a line the current positi
on is moved to the position specified. After writing a character the cur
rent graphics position is moved right by the width of the characte
r ready for the next character to be written. 5.3 Graphics Pen and Pap
er Inks. The Graphics VDU has a pen (foreground) ink and a paper (
background) ink. The graphics pen ink is used to plot pixels and to set
foreground pixels when writing characters (see 5.6 below) and drawing li
nes (see 5.7 below). The graphics paper ink is used to clear the
graphics window and to set background pixels when writing characters or
drawing lines. The pen and paper can be set to any ink valid i
n the current screen mode (see section 6.2). The default has the pape
r set to ink 0 and the pen set to ink 1. Changing the pen or paper ink d
oes not change the screen it merely alters how the pixels will be wri
tten in the future. 5.4 Graphics Write Mode. Pi Pxels plo
tted by the Graphics VDU are plotted using the current graphics wr
ite mode. This specifies how the ink to be plotted interacts wi
th the ink a pixel is currently set to. AMSTRAD CPC464/664/6128 FIRM
WARE page 5.2 There are four wr
ite modes 0FORCE NEW INK 1EXCLUS
IVE-OR NEW INK xor OLD 2AND NEW INK and OLD
3OR NEW INK or OLD NEW is the
ink that the pixels will be set to. OLD is the ink that the pi
xel is currently set to. INK is the ink that is to be plotted.
The default Graphics write mode is FORCE mode. The Text VDU always
sets pixels as if it is operating in this mode. Also the graphics
window is cleared by writing in FORCE mode irrespective of the actual
write mode. Provided that suitable ink settings are chosen, AND
mode and OR mode allow particular bits in pixel to be cleared or set.
This allows the Graphics VDU to write in 'bit planes' and by choosing
the colours of the inks carefully overlapping shapes can be drawn an
d automatically hidden behind one another. If the inks are ch
osen suitably, EXCLUSIVE-OR mode can be used to plot over the current co
ntents of the screen. It is also useful because a shape can be remo
ved from the screen by redrawing it since exclusive-oring with
the same ink twice restores the original setting of the pixel.
The graphics write mode may be set by calling SCR ACCESS or by using a
control code (see Appendix VII). 5.5 Graphics Window. The G
raphics VDU allows a single window to be specified. This allows the us
er to mix text and graphics on the screen without them interfe
ring with each other. If the text windows are allowed to overlap
the graphics window then the contents of the graphics window will be m
oved when the text windows are rolled. The graphics window cannot be
rolled. When plotting point, drawing lines or writing characters n
o pixel outside the graphics window is ever written. Unlike the text
windows no action is taken to force a point inside the window - a
ctions outside the window will be lost. Conversely, when testing po
ints, points outside the window are all deemed to be set to the cur
rent graphics paper ink. Points inside the window are written and read
as expected. The graphics window is related to a specific are
a of the screen and not to the user coordinate system. Thus, changing
the origin of the user coordinate system will not move the location
of the window on the screen although it does change the user coordinates
of points in the window. The default graphics window, set a
t EMS and after changing screen mode, covers the whole screen.
AMSTRAD CPC464/664/6128 FIRMWARE page 5.3
5.6 Writing Characters. The Graphics VDU write ch
aracter routine draws a character with the current graphics position
at the top left corner of the character. The current position is moved r
ight by width of a character in the current screen mode. The distance mo
ved varies in mode 0 it is 32 points in mode 1, 16 points and in mode 2
, 8 points. Control codes, characters 0..31, are printed and are not ob
eyed. In V1.0 firmware the character is always written opaquely irresp
ective of what mode the Text VDU is using to write characters, i.e.
The character background is set to the graphics paper ink and
the foreground is set to the graphics pen ink. However, the curr
ent graphics write mode is used to plot the pixels in the character (s
ee 5.4 above). In the V1.1 firmware the foreground to the char
acter is always written in the graphics pen ink using the current graphi
cs write mode. How the background to the character is written depends on
the background write mode set by calling GRA SET BACK. If the backgrou
nd mode is opaque then the background to the character is written in
the graphics paper P ink using the current graphics write mode. If the
background mode is transparent then the background pixels are not pl
otted at all, the current settings of these pixels are left unchanged
. 5.7 Drawing Lines (Only applicable to V1.1 firmware) The
Graphics VDU has a number of options that affect the way that line
s are drawn on the screen. These include the background write mode,
the first point mode, the line mask and the graphics write mode. Th
e line mask is an 8 bit, bit significant value that specifies whe
ther pixels on the line are foreground or background. If the bit of the
mask corresponding to a pixel is one then the pixel is foreground. If th
e bit is zero then the pixel is background. The mask is used repeat
edly along the length of the line. i.e. Bit 7 of the mask corresp
onds to pixels 1, 9, 17, ... of the line, bit 6 to pixels 2, 10, 18,
... etc. Foreground pixels of a line are plotted in the graphics pe
n and ink using the graphics write mode. How background pixels ar
e plotted depends upon the background write mode. If the background
mode is opaque then the background pixels are plotted in the graphic
s paper ink using the graphics write mode. If the background m
ode is transparent then the pixels are not plotted at all, the c
urrent settings of the pixels are left unchanged. The first
point mode specifies whether the pixel at the current graphics po
sition is to be include in the line or not. Not plotting the first pi
xel of a line is particularly useful for drawing lines when the grap
hics write mode is XOR. For instance, the corner pixels of a box will
be plotted twice if the first pixels of lines are plotted and thi
s will result in these pixels not being set in XOR mode.
AMSTRAD CPC464/664/6128 FIRMWARE page 5.4
5.8 Filling Areas (Only applicable to V1.1 firmware) Th
e Graphics VDU provides a generalised area fill routine. The user dra
ws the outline of the area to be filled using the standard line draw
ing and pixel plotting routines and then moves the current posit
ion to any pixel inside the area and calls the fill routine, GRA FILL.
This will set all pixels inside the area to the fill ink irrespe
ctive of what the current graphics write mode is set to. (i.e. GRA FILL
always works as if FORCE mode was selected). The fill routine rec
ognises pixels making up the edge of the area by the ink that they are
set to. All pixels set to either the current graphics pen ink or th
e ink that is being used to fill the area with are treated as edge pix
els. (These two inks may be the same). Edge pixels need only lie dia
gonally adjacent to each other, it is not necessary for them to be
orthogonally adjacent. Of course, the edge of the graphics window are al
so treated as edges of the area to fill and so pixels outside the graph
ics window will be affected. GRA FILL uses a buffer supplied
by the user for storing the information. The more complicated the
area the longer the buffer will need be. If the supplied buffer is too
short then parts of the area will be ignored and will not be filled.
By supplying a long enough buffer any arbitrary complicated shape ma
y be filled. A
MSTRAD CPC464/664/6128 FIRMWARE page 5.5 e Graphic
s VDU allows individual pixels (dots) to be set or tested and linforma
tion. The more complicated the area the longer the buffer will need be.
If the supplied buffer is too short then P 6 The Screen Pack.
The Screen Pack is used by the Text and Graphics VDUs to access the
hardware of the screen. It also controls the features of the screen
that affect both the Text VDU and Graphics VDU, such as what mode the
screen is in. 6.1 Screen Modes. The screen has three
modes of operation, numbered 0, 1 and 2. The modes have different
resolutions and display different numbers of inks on the screen.
All modes have a vertical resolution of 200 pixels (picture elements
or dots on the screen). The horizontal resolution varies from 160
pixels to 640 pixels. As each character is 8 pixels by 8 pixels the
number of characters across the screen varies with the mode - from 20
characters to 80 characters. The screen is always 25 characters high.
The number of inks that can be displayed on the screen varies with the
screen resolution. When the screen is 640 pixels wide only 2 inks can
be displayed, when the screen is 320 pixels wide 4 inks can be
displayed and when the screen is 160 pixels wide 16 inks can be d
isplayed. In summary, the modes are Mode Pix
el size Character size Inks 0 160 x 200
20 x 25 16 1 320 x 200 4
0 x 25 4 2 640 x 200 80 x 25
2 The default screen mode, set at EMS, is mode 1.
The screen mode is set by calling SCR SET MODE which also has other e
ffects. Firstly, the screen is cleared to ink 0. If text and graphic
s paper inks are not set to ink 0 then this will become apparent on the
screen when characters are written or windows are cleared. If the user
wishes to alter this screen clearing operation for some reason then it m
ay be intercepted at the SCR MODE CLEAR indirection. Secondly,
the Text and Graphics VDUs are set into standard states. The windows ar
e all set to cover the whole screen. If the pen and paper inks are ou
t of range for the new mode then they are masked (with #01 or #03) to b
ring them into range. The current text positions are moved to the top le
ft corner of the screen and the text cursors are turned off (see TXT C
UR OFF). The current graphics position and the user origin are move
d to the bottom left corner of the screen. AMSTRAD CPC464/664/6128 F
IRMWARE page 6.1 6.2 Inks and C
olours. The various screen modes allow pixels (dots on the screen) to
be set to different numbers of inks as follows Mode
0 16 inks, 0..15 Mode 1 4 inks, 0..3
Mode 2 2 inks, 0..1 How the ink for a pi
xel is encoded into a byte of screen memory is described in section
6.4. The ink that a pixel is set to determines what colour the pixel
is displayed in. However, the colour associated with an ink is not fixe
d, it can be changed. There are 27 colours available. Each ink may be
set to any of these colours. The border to the screen acts much like
an ink and can have its colour specified as well. The display hardwar
e fetches the ink value from the screen memory for each pixel as it i
s displayed. This ink value is used to access a small area of RAM insi
de the gate array called the 'palette'. The palette contains the actual
colour which is to be displayed by the monitor for that particular
ink. Changing entries in the palette thus causes all pixels set to
that ink to change colour when they are next displayed (i.e. within
1/50th of a second or so). In fact the Screen Pack allows t
wo colours to be associated with an ink (or the border). These are lo
aded into the palette alternately under software control. If the two
colours associated with an ink are different then the ink will flash,
if the colours are the same then the ink will be steady. The user can
change the rate of alternation, from the default of 5 cycles per seco
nd, if required (see SCR SET FLASHING). When specifying
colours P the Screen Pack uses an ordering that corresponds to
a grey scale on a monochrome monitor. This runs from the darkest colo
ur (black), colour 0, to the brightest colour (bright white), colour 26
. The colours do not appear to have any particular ordering when view
ed on a colour monitor. The palette uses a different (and apparently
nonsensical) numbering scheme for the colours. The Screen Pack automat
ically translates the grey scale number to the hardware number
and vice versa when appropriate. Unless the user is driving the ha
rdware directly the hardware numbers will never be encountered.
The default settings for the colour of each ink and a list of the 27
colours available are given in Appendix V. 6.3 Screen Addresses.
The Screen Pack does not use a coordinate system itself. It uses
screen addresses. However, it does work with the physical and base
coordinate system of the Text and Graphics VDUs described in section
4.1 and 5.1 respectively. In particular, routines are provided to
convert positions given in physical or base coordinates to screen
addresses. AMSTRAD CPC464/664/6128 FIRMWARE
page 6.2 A screen address is, prosaically enough, th
e address of a byte within the screen memory. To specify a particular p
ixel a screen address is often passed to a routine along with a mask
that indicates exactly which pixel is required. Routines are provided
for stepping a screen address up, down, right and left one byte. (The
screen map makes this a non-trivial operation.) 6.4 Screen M
emory Map. The screen is a memory mapped pixel screen. The screen memo
ry fills 16K of RAM in all modes. The default location for the screen
, set at EMS, is the 16K of RAM starting at #C000. This lies undern
eath the upper ROM, when it is enabled, which keeps the screen out of
the way of the rest of the system. However, his also means that the upp
er ROM has to be disabled whenever the screen is read. The firmware jum
pblock uses LOW JUMP restarts which turn the upper ROM off to ensure tha
t the screen memory is accessible if required. It is possible
to change the location of the screen memory to any of the 4 16K memory
blocks on 16K boundaries (see SCR SET BASE). However, only #C000 and #4
000 are useful #0000 and #8000 both overlap the firmware jumpblocks
or other system areas. The descriptions below all assume the default s
creen location at #C000. In V1.1 firmware is it possible to set the lo
cation of the screen that is used by the screen pack routines indepen
dently of setting the hardware value. This will then enable text and
graphics to be produced in the 'screen' that isn't currently in view - s
witching to the other possible location (#4000 to #C000) will cause t
he already prepared graphics etc. to instantly appear - thus avoiding
flicker and enabling smooth animation effects. The screen memo
ry map is not simple. Fortunately it is not necessary to understand it
because the Text and Graphics VDUs provide idealised models of the scr
een. However, to achieve maximum speed for certain applications (such
as animated games) it may be necessary to access the screen memory d
irectly. The screen memory is divided into 8 blocks, each 2K bytes lon
g. Block 0 runs from #C000 to #C7FF, block 1 runs from #C800 to #CFFF,
and so on. Each line of pixels on the screen uses 80 consecutive bytes
from a block. The top line of the screen comes from block 0, the second
from block 1 and so on until the eighth line which comes from block 7.
The sequence starts with block 0 again on the ninth line and repeats
in this fashion all the way down the screen. The successive lines in
a block are stored consecutively so there are 48 unused bytes at the e
nd of each block. There is further complication in this scre
en map. The description above assumes that the first byte displayed
from the block is the first byte of the block. In practice the offse
t in a block of the first byte to be display Pcan be set to any e
ven value (see SCR SET OFFSET). The same offset applies to all eight
blocks. A block wraps around from its last byte to its first byte,
thus #C7FE, #C7FF and #C000 are consecutive bytes in block 0 and coul
d all be on the same line of the screen. Altering the offset by + or
- 80 MOD 2048 (the length of a line) rolls the screen up or down by
one character line (8 pixels lines). This effect is used by the Text VDU
when rolling the entire screen. AMSTRAD CPC464/664/6128 FI
RMWARE page 6.3 The meaning of
the bytes accessed as described above varies with the screen mode. Eac
h byte stores the inks for 2, 4 or 8 pixels. The bits used to encode ea
ch pixel are not arranged in an obvious manner. The following table sp
ecifies which bits of screen memory are used to encode which pixel
in the various modes. The bit numbers given in the table are the bits o
f the screen byte. They are given in the order of bits in the pixel - t
he first bit given is most significant bit of a pixel and the last bit
is the least significant bit. Mode 0
Mode 1 Mode 2 ---------------------------------------
--------------- Leftmost pixel Bits 1,5,3,7 Bits 3,7 B
it 7 . Bit 6
. Bits 2,6 Bit 5
. Bit 4 .
Bits 0,4,2,6 Bits 1,5 Bit 3 .
Bit 2 Rightmost pixel
Bits 0,4 Bit 1
Bit 0 The following diagram illustrate the mapping from pixels on th
e screen to addresses in screen memory for the simple case of a base add
ress of #C000 and an offset of 0. ------------------ 8
0 BYTES ----------------------
#C000 #C001 ................
........... #C04E #C04F #C800 #C801 ..........................
. #C84E #C84F 1ST #D000 #D001 ........................... #D04E
#D04F CHAR #D800 #D801 ........................... #D84E #D84F
ROW
#F000 #F001 ........................... #F04E #F04F #
F800 #F801 ........................... #F84E #F84F V #C050 #C05
1 ........................... #C09E #C09F #C850 #C851 ..........
................. #C89E #C89F
200 ...............................................
....... PIXEL
LINES
#FF30 #FF31 ........................... #FF7E #FF7F #C780 #C781
........................... #C7CE #C7CF #CF80 #CF81 .........
.................. #CFCE #CFCF
25th ........................................
.............. CHAR
ROW #F780 #F781 ........................... #F7CE #F7CF
#FF80 #FF81 ........................... #FFCE #FFCF
V V #C7D0..#C7FF, #CFD0..#CFFF, ... , #FFD0..#FFFF are unused.
On the CPC6128 the base address sets which block will be used for the
screen memory. Base addresses of #0000, #4000, #8000 and #C000
correspond to blocks 0, 1, 2, and 3. It is not possible for the screen
memory to be located in blocks 4...7. Where the block being used for
screen memory actually appears in the memory map depends on the bank
switching (see section 2.5). AMSTRAD CPC464/664/6128 FIRMWARE
page 6.4 cs VDUs to access the hardwar P
7 The Sound Manager. The Sound Manager deals with the
sound chip. It allows various envelopes and sounds to be set up and
played under control of the user. Most of the control is achieved
using software rather than the sound chip hardware. 7.1 The
Sound Chip. The sound chip used is the General Instruments AY-3-89
12. This has three channels and a pseudo-random noise generator
that can be connected to any of the channels. The chip has a limited
number of amplitude envelopes available ( see Appendix IX ) but th
e software enveloping, described below, can achieve all that the ha
rdware is capable of, and more. Tone enveloping is all done by the
software there is no hardware support. The sound generated
by the chip uses square waveforms. There is no way to generate any other
waveform. It is possible to access the sound chip directly should t
he need arise However, the routine MC SOUND REGISTER should be used t
o write to registers of the sound chip. This is because the keyboard i
s attached to the I/O port of the sound chip and the keyboard scannin
g routine expects to find the sound chip in a standard state ( i.e. not
in use) Also, there are timing constraints on accesses to the chipus
ing MC SOUND REGISTER will avoid consideration of these details.
The sound chip has three independent sound channels. The outputs from
these are mixed together to form two stereo channels - sound channels
A and B are mixed to form one stereo channel and sound channels B and
C are mixed to form the other stereo channel. The stereo sound is
available on the output jack on the back of the machine. However,
there is only a single internal speaker and so the two stereo channels
are mixed together to drive this. The volume of sound from the i
nternal speaker can be controlled by the volume knob on the side of th
e machine near the on/off switch. This control overrides the other vol
ume methods described below. 7.2 Tone Periods and Amplitudes.
The sound chip allows 16 different amplitudes in the range 0..15.
Amplitude 0 is no sound at all, amplitude 15 is maximum volume.
The pitch of a note to be generated is specified by the period of the
note rather than by the frequency. This period is given in microsecond u
nits. Thus, the tone period specified and the frequency of the tone ge
nerated are related by the formula AMSTRAD CPC464/664/6128 FIRMWARE
page 7.1 Tone period
125000/Frequency See Appendix VIII for a list of the suggested peri
ods for generating musical notes. 7.3 Enveloping.
Real sounds rarely have a constant volume. Enveloping allows an
approximation to the variation in volume of real sound to be made. The
sound is split into a number of sections each of which can increase
the volume, decrease the volume, or keep it constant. The length of
these sections can be varied, as can the rate of increase or decrease i
n volume. For example, a note generated by a musical instrument may be
considered to have 3 sections as follows Attack The volume of the
note rises rapidly to its peak. Sustain The volume of the note remai
ns constant while the note is played. Decay Th
e volume falls away slowly to zero as the note finishes.
/ /
/
/ / P
/ /
/
Attack Sustain Decay
The Sound Manager allows two types of envelopes amplitude envelopes
to control a sound's volume and tone envelopes its pitch ( the pitch
is varied in much the same way as the volume ). The user can set up to 1
5 different envelopes of each type. The exact formats of the data bl
ock specifying envelopes are given in SOUND AMPL ENVELOPE and SOUND TON
E ENVELOPE. a. Amplitude envelopes. An amplitude envelop
e is used to control the volume and length of sound. It can have up
to five sections. Each section can be either hardware or a software
section. Software sections are either absolute or relative.
AMSTRAD CPC464/664/6128 FIRMWARE page 7.2
Hardware sections write values into the sound chip registers 11,1
2 an 13 to set up a hardware envelope. ( See Appendix IX for a descrip
tion of the sound chip registers). Generally a hardware section will
be followed by a software section that does nothing except wait for
a time long enough for the hardware envelope to operate. An a
bsolute software section specifies a volume to set and a time to wait
before obeying the next solution. A relative software section specifie
s an step size, a number of steps and a time to wait. For each step req
uested, the current volume is changed by the given step size and the
n the Sound manager waits for the given time after each step before o
beying the next. Amplitude envelopes are set by calling SOUND AMPL ENV
ELOPE. b. Tone envelopes. A tone envelope controls the pitch
of the sound. It can have up to five sections. Each section can be
either an absolute or a relative section. The sections of a tone enve
lope are not necessarily related to those of an amplitude envelope.
An absolute section specifies a tone period to set and a time to wait
before obeying the next section. A relative section specifies a
n step size, a number of steps and a time to wait. For each step req
uested, the current tone period is changed by the given step size a
nd then the Sound Manager waits for the given time after each step be
fore obeying the next step. If the tone envelope is completed before
the sound duration expires (see section 7.4f) then the final
pitch is held constant. Alternatively, tone envelopes can be
set to repeat themselves automatically. This allows tremulo effects
to be created. Tone envelopes are set by calling SOUND TONE ENVELOPE
7.4 Sound Commands When a sound is given to the Sound Man
ager to be played, by calling SOUND QUEUE, a lot of information need
s to be specified. This is described briefly below. The detailed la
yout of a sound command data block is described in SOUND QUEUE.
a. Initial tone period. The sound is issued with an initial to
ne period. The pitch of the sound can be varied from this initial v
alue using a tone envelope. If no envelope is specified the pitch remai
ns constant. An initial tone period of zero means no tone is to be gen
erated, presumable the sound is to be pure noise ( see(e)below.
AMSTRAD CPC464/664/6128 FIRMWARE page 7.3
b. Initial volume The sound is issued with an initial
volume. The volume of the sound can be varied from this initial value
using an amplitude envelope. If no amplitude envelope is specified the
n the volume remains constant. c. Tone envelope. This specif
ies which tone envelope to use. If no envelope is specified then the pit
ch of the sound remains constant. d. Amplitude envelope. Thi
s specifies which amplitude to use. If no envelope is specified then
default system envelope is used. This keeps the volume of the sound
constant and lasts for 2 seconds. e. Noise period. If the n
oise period Pis zero then no noise is to be added to the sound. Any ot
her value sets the period for the pseudo-random noise generator and add
s noise to the tone generated. Note that there is only one noise ge
nerator and so if two sounds are to use it at the same time they will
need to agree on the period. f. Duration. The length of a s
ound can be specified in two ways, either as an absolute time ( du
ration ) or as a number of operations of the amplitude envelope.
In the latter case the envelope is run one or more times and the sound
finishes when the envelope has been executed the specified number of t
imes. In the former case, if the duration is longer than the envelo
pe then the sound is cut short. If the duration is longer than the enve
lope then the final amplitude is held until the duration expires.
g. Channels and Synchronisation Bits. The sound can be issued to
one or more channels. If a sound is issued to more than one channel th
en these channels automatically rendezvous with each other. Rendezvous
requirements can be set explicitly as well. Also the sound can be h
eld or the sound queue can be flushed (see section 7.6).
7.5 Sound Queues. Each channel has a queue associated with it. Each
queue has space to store at least three sounds. The sound at the head
of each queue may be running and making music on its channel or it may
be waiting for various synchronisation requirements ( see 7.6 below
). When a sound command is issued the sound is placed into the queues
for the channels specified by the command. When the sound reaches the
head of the queue, and providing its synchronisation requirements ar
e met, it is executed. AMSTRAD CPC464/664/6128 FIRMWARE
page 7.4 If a sound that has th
e flush bit is put into a queue then all sounds queued for that channel
are discarded and any executing sound is stopped immediately. Thu
s a sound with the flush bit set will move to the head of the queue imm
ediately and may commence execution. A routine (SOUND CHECK ) is pro
vided to test the status of the sound at the head of a queue and to de
termine how much free space is in a queue. It is also possible to set
up a sound event for each queue ( by calling SOUND ARM EVENT ). This sy
nchronous event is ' kicked ' when the queue has a free space in it. T
he sound event mechanism allows the generation of sound to be carried on
as a background task whilst some other action is being carried out.
7.6 Synchronisation. There are two mechanisms to allow sou
nds on different channels to be synchronised. These are holding sounds
and rendezvous. The purpose of synchronisation is to ensure that soun
ds start simultaneously. For example, a simulation of an instrument
might use one channel to generate the fundamental note and anothe
r channel to generate the harmonics of the note. The synchronisati
on mechanism, particularly rendezvous, my be used to ensure that the f
undamental and the harmonic sounds start exactly together. A
sound can be specified to be held when it is issued. This means that wh
en it reaches the head of the sound queue it is not executed imm
ediately. Instead it waits until it is explicitly released ( by call
ing SOUND RELEASE ) before it starts execution. A sound can have rende
zvous requirements set on it when it is issued. If a sound is issued to
more than one channel then these channels all set rendezvous with each
other automatically. When a sound with a rendezvous set reaches th
e head of the sound queue it is not executed immediately. Instead it wa
its until sounds with matching rendezvous requirements reach the head
of their sound queues. Only when all rendezvous sounds are found
to be present and ready to run do they start. For instance
, sound on channel A marked to rendezvous with a sound on channel B wil
l not start - and vice versa! If a sound is ready to start on chann
el B that is not marked to rendezvous with channel A P then it star
ts but the sound on channel A continues to wait for its rendezvous.
7.7 Holding Sounds. It is possible to stop a sound while i
t is executing by calling SOUND HOLD. This will stop a channel making a
ny sound and will save the state of the sound. The sound can be res
tarted from where it was held by calling SOUND CONTINUE. However, if a
hardware envelope was running when the sound was held then it is impossi
ble to predict the effect of restarting the sound. The hardware envelope
may or may not continue from where it was held. AMSTRAD CP
C464/664/6128 FIRMWARE page 7.5
Calling SOUND HOLD is different from setting the hold bit when issuing
a sound as described in section 7.6 above. SOUND HOLD stops all sounds b
eing generated at any time whilst the hold bit is a method for sy
nchronising sounds and prevents a particular sound starting when it rea
ches the head of the queue.
AMSTRAD CPC464/6
64/6128 FIRMWARE page 7.6 enveloprom setting the
hold bit when issuing a sound as described in section 7.6 above. SOUND
HOLD stops all sounds being generated at any time whilst the hold bit
is a method for synchronising sounds and prevents a particular soun
d 8 The Cassette Manager. The Cassette Manager deals wit
h reading files from and writing files to tape. These operations can e
ither be performed on a character by character basis or on a whole fi
le at once. There is no hardware support for the cassette, even th
e timing for reading and writing bits is performed by software.
The format of data on the tape is described in great detail. This will
only be of academic interest to must users. More general information
can be found in sections 8.4 onwards. In the case of V1.1 machines or t
he CPC464 with a DDI-1 fitted, a TAPE command will have to be used to
access the Tape Operating System. 8.1 File Format. A fil
e on tape is split into blocks each with a header record and a data r
ecord containing up to 2K (2048) bytes of data. The cassette motor w
hich is under software control is turned off between each file block to
allow time to process the data read or to generate the data to be wri
tten. The motor start-up gap also serves to separate the blocks fro
m each other. The general format of a block is as follows
Motor File header File data Start-up record
record However, the first and last block
s of a file have an extra pause before and after them respectively
, to separate files on the tape. Their formats are thus
First block
Motor Pre-file File header File data
start-up gap record record
Last block
Motor File header File data Post-file
start-up record record gap
AMSTRAD CPC464/664/612 P8 FIRMWARE p
age 8.1 There is a strong distinction between the file heade
r record and the file data record. The header record is writ
ten using one synchronisation character (#2C) and the data recor
d with another (#16). This means that when the Cassette Manager is se
arching for a file header it is impossible for it to find a file da
ta record by mistake, and vice versa. See 8.2 below for the u
se of the synchronisation characters. 8.2 Record Format.
A record can contain any number of data bytes from 1 to 65536. The
data is split into segments each of which is 256 bytes long. The last
segment is padded out to 256 bytes with zeros when writing if
necessary. When reading a record any extra bytes are ignored although
they are accumulated into the CRC. The layout of a record is as f
ollows
Leader Segment 1 ........... Segment N Trailer
There are N segments where 256*N is the length of data (plus paddin
g) to be written. A file header record always contains one seg
ment a file data record contains from one to eight segments (usually 8
segments). a. Leader. At the start of all records a lea
der is written which has the following layout
Pre-rec
ord Zero Sync gap 2048 one
bits bit bit The leading gap is there to en
sure the failure of any attempt to synchronise on end of a precedi
ng record or on data that was on the tape and that has been over-reco
rded. The long sequence of one bits is used to calculate the speed at
which the data was written and hence to calculate the threshold value
used to distinguish one bits from zero bits. The single zero
bit is used to mark the impending end of the leader and is also used
to determine whether the recording has been inverted (see section 8.3).
The synchronisation byte is there to help prevent spuriou
s synchronisation on sequences of bits such as might be found in a
record. If an incorrect value for the sync byte is found then an
attempt has been made to synchronise on the middle of a record or on
the wrong type of record. This byte is used to distinguish header
records from data records in a file block (header records use #2C
while data records use #16). AMSTRAD CPC464/664/6128 FIRMWARE
page 8.2 b. Segments Eac
h segment contains 256 data bytes and has the following format
Byte
1 Byte 2 .......... Byte 256 CRC 1 CRC 2 'CRC 1' is
the more significant byte and 'CRC 2' the less significant byte of t
he logical NOT of the CRC calculated for the 256 bytes in the segment. (
The CRC polynominal used is 'X(15)+X(12)+X(5)+1' with an initial spe
ed of #FFFF). (Numbers in brackets means squared). c. Trailer
The trailer is simply an extra 32 one bits written to the end of the
record. 8.3 Bit Format. A bit is written to the tape as a p
eriod of low level followed by an equal period of high level. A one is
written to the tape with these periods twice as long as those of zer
o. The length of the period for a zero can be set by the user (see CAS S
ET SPEED). The tape circuitry has a tendency to move the positions
of edges (transitions from high to low or low to high) so as to balan
ce out the difference between ones and zeros written to tape. Precompens
atio P n is used - which adds to the period of one bit and
subtracts from the period of a zero bit to make the waveform closer t
o the ideal when it is read. When reading, the speed at which
the recording was made is determined by timing the one bits in the r
ecord leader. As this is a long sequence of the same bit the
edges are not shifted and no precompensation is applied. Sin
ce the speed is established independently for each record this a
utomatically takes into account most tape speed variations.
Data is written low-high but may but may be inverted when read (i.e.
high-low). It is important for the firmware to determine whether the w
aveform being read is inverted or not. If this is not achieved then th
e bits will not be read properly as the following example shows
Inversion detected
0 0 1 1
Inversions not detected 0
1
The zero bit in the record leader is used to determine whether the
recording has been inverted. Bytes written to the tape are wr
itten with the most significant bit first and the least significant b
it last. AMSTRAD CPC464/664/6128 FIRMWARE
page 8.3 8.4 The Header Record. The header reco
rd in a file block contains information about the file and about the da
ta in the following data record. Some of the entries in the header are
used by the system for various purposes. The remaining entries
are available for the user to set when writing a file, and to read w
hen reading a file. These entries are the file type (byte 18) and all th
e user fields (bytes 24..36) including the logical length (bytes 24..25)
and the entry address (bytes 26..27). The user fields will all be set
to zero if they are not used. The header is laid out as follows
System fields Bytes 0..15 Filename Padded
to 16 bytes with nulls. Byte 16 Block number The first bl
ock is normally block 1 and block num
bers increase by 1 on successive blo
cks. Byte 17 Last block A non-zero value means that thi
s is the last block of a file.
Byte 18 File type A value recording the type of the
file (see below). Bytes 19..
20 Data length The number of data bytes in a
record. Bytes 21..22 Data location Where th
e data was written originally.
Byte 23 First block A non-zero value means that this is
the first block of a file.
User fields Bytes 24..25 Logical length This is the total le
ngth of the file in bytes.
Bytes 26..27 Entry address The execution address for machine
code programs. Bytes 28..63 Unal
located These are unallocated and may be
used as required. The file type (byte 18) is split into
a number of fields Bit 0 Protection If this bit is
set the file is protected in some w
ay. Bits 1..3 File contents 0 Internal BASIC.
1 Binary.
2 Screen image. 3 ASCII
4..7 are unallocated. Bits 4..7
Version ASCII files should be version 1, all
other files should be version 0. AM !P!!!!!!!!!STRAD
CPC464/664/6128 FIRMWARE page 8.4
8.5 Read and Write Speeds. The Cassette Manager is capable of read
ing and writing date at speeds ranging from 700 baud to 2500 baud. Ther
e are two speeds commonly used in this range, 1000 baud (the default spe
ed selected at EMS) and 2000 baud. The default speed is chosen to e nea
r the slowest speed to give maximum reliability. The reliability at 2
000 baud is still good, however, particularly when playing back on t
he same machine that was used to record a tape. Bits are w
ritten to the tape as a single cycle of a tone. The tone for a one alway
s has half the frequency of the tone for a zero. Thus ones are twice as
long as zeros on the tape. This means that the baud rates given above a
re only averages and vary according to the actual data written.
Even with the built in cassette mechanism the Cassette Manager has to
precompensate the waveform written to the tape to achieve the speeds
quoted. This means that the lengths of bits written are altered (ones
lengthened, zeros shortened) to try to make a waveform read closer to
the ideal after the edges of the waveform have been shifted by the
cassette circuitry. It is only necessary to set the Cassette Manager's
write speed. When recording a record from tape the record leader is
used to calculate the speed at which it was written. This also allows
the tape speed variations between different machines. 8.6
Cataloguing. To generate a catalogue from the tape the Cassette Mana
ger reads a sequence of file blocks and prints information from them
. The file blocks may come from any file, in any order. Cataloguing
continues until the user hits the escape key. The informatio
n is reported as follows FILENAME block N L
Ok FILENAME is either the name of the file of 'Unnamed file' if
the filename starts with a null. The block number, N, indica
tes which block of the file it is. Normally block 1 is the first block o
f the file. L is the character representing the file type and protec
tion status of the file. It is formed by adding #24 (character '$') to t
he file type from the header masked with #0F. This gives the following
characters $ an unprotected BASIC program.
% a protected BASIC program. & a binar
y file. ' a protected binary file *
an ASCII file. AMSTRAD CPC464/664/6128 FIRMWARE
page 8.5 and writing files to file. It is formed by a
dding #24 (character '$') to the file type from the header masked with
#0F. This gives the foll Other characters are possible but the
above are the standard file types that are written by the on board
ROM. The above information is printed when the header record is
read correctly. Ok is printed after the data record has been
read correctly. 8.7 Reading Files. Before a file can be rea
d from it must be opened (by calling CAS IN OPEN). This sets up the f
ilename (see 8.10 below) and reads the first block of the file so that
the header can be inspected. The file may either be opened for charact
er input or for direct input, but not both. The mode of input is set by
the first access to the file and not when it is opened. As soon as one m
ode is selected it becomes impossible to use the other mode to access t
he file. Character input (calling CAS IN CHAR) allows the user to read
the file sequentially one character at a time. Blocks of the file are r
ead from "P""""""""" tape into the buffer as needed. This is intended
for reading text files and similar applications. Direct in
put (calling CAS IN DIRECT) reads the whole file into memory in one go.
This is intended for loading machine code programs or screen dump
s and similar applications. Interrupts are disabled whilst reading fr
om tape because this has serious timing constraints. Disabling int
errupts will prevent the various timer interrupts (as described in se
ction 10.1) from occurring. In particular this might leave the sound chi
p making a noise for a long period of time and so the Sound Manager
is shut down (see SOUND RESET). In V1.1 firmware the casset
te manager routines for reading files return error codes to ind
icate the cause of the errors (for compatability with AMSDOS)
#00 The user hit escape #0E The strea
m is already/not in use #0F Have reached the end of the fi
le 8.8 Writing Files. Before a file can be written it must b
e opened (by calling CAS OUT OPEN). This sets up the filename (see 8
.10 below) and the rest of the header that will be written in each file
block. The file may either be opened for character output or for
direct output, but not both. The mode of output is set by the first wr
ite to the file and not when it is opened. As soon as one mode is selec
ted it becomes impossible to use the other mode to write to the file.
Character output (calling CAS OUT CHAR) allows the user to write to
the file one character at a time. The characters are buffered until a
complete block (2048 characters) is ready to be written whereupon a
file block is written to the tape. AMSTRAD CPC464/664/6128 FIRMWA
RE page 8.6 Direct output (call
ing CAS OUT DIRECT) writes the whole of the file from memory in one g
o. The data written is still packaged into 2048 byte blocks.
Whichever output mode is used, it is important to close the output
file properly (using CAS OUT CLOSE) otherwise the last block of the
file will not be written. Interrupts are disabled whilst writing to
tape because this his serious timing constraints. Disabling interru
pts will prevent the various timer interrupts (as described in
section 10.1) from occurring. In particular this might leave the s
ound chip making a noise for a long period of time and so the Sound M
anager is shut down (see SOUND RESET). In V1.1 firmware the
cassette manager routines for writing files return error codes t
o indicate the cause of the error (for compatibility with AMSDO
S) #00 The user has hit escape #0E T
he stream is already/not in use 8.9 Read and Writing Simultaneously.
The Cassette Manager allows two files to be open simultaneously. One
must be open for reading and the other for writing. Thus it is
possible to read from one file and write to another file at the same
time. When the Cassette Manager is about to read a block it asks the
user to press PLAY and this implies that the tape with the file for
reading should be loaded. Similarly, when it is about to write a block i
t asks for the user to press REC and PLAY and this implies that the tap
e to which the file is to be written should be loaded. The Cassette Man
ager assumes that the tape is not changed and that the appropriate casse
tte controls remain pressed as requested until the prompt is issued.
It also assumes that pressing a key means that the prompt has bee
n obeyed. It is unwise to attempt to read and write simulta
neously with the Cassette Manager messages turned off. The only notifi
cation given of which tape should be loaded is in the prompt messages.
8.10 Filenames. When the user opens a file for reading or wri
ting the name of the file to be read or written is specified. The filena
me is a string of any 16 characters (#00..#FF). If the file name specifi
ed is longer than 16 characters then it is trunc #P#########ated
and if it is shorter than 16 characters it is padded to 16 charac
ters with nulls (character #00). When opening a file for reading a zer
o length filename or one that starts with a null has a special meani
ng - read the next file on the tape. The Cassette Manager searches the
tape until it finds the first block of a file and it reads this file.
Once the first block of a file has been found the Cassette Manager will
only read rom that file and no other. BASIC uses a slight
ly extended form of filename. If the first character of a BA
SIC filename is an exclamation mark (character #21) the BASIC turns the
prompt messages off (see 8.11 below) and removes the exclamation m
ark from the name. This facility is not provided at the Cassette M
anager level. AMSTRAD CPC464/664/6128 FIRMWARE
page 8.7 8.11 Cassette Manager Messages. The
Cassette Manager issues a number of messages to prompt and inform the
user and to warn when errors have occurred. The messages that promp
t or inform the user may be turned off or on as desired (see CAS NOISY)
. Messages that inform the user of errors cannot be turned off by this
mechanism. a. Prompt messages. Press PLAY then any key
This message is issued when the Cassette Manager is about to rea
d the first block of a file from tape or when it is about to read a
block after having written to tape (see section 8.9). It
indicates that the tape containing the file to be read should be
loaded and that the PLAY button on the recorder should be
pressed. The Cassette Manager does not issue this message at
other times since it assumes that the correct tape is still
loaded and that the PLAY button is still pressed. Press
REC and PLAY then any key This message is issued when the Casset
te Manager is about to write the first block of a file to tape
or when it is about to write a block after having read from tape
. It indicates that the tape on which the file is to be written sh
ould be loaded and that the REC and PLAY buttons on the recorder sh
ould be pressed. The Cassette Manager does not issue this message
at other times since it assumes that the correct tape is still loa
ded and that the REC and PLAY buttons are still pressed.
b. Information messages. Found FILENAME block N Th
is message is printed when reading from the tape if a header rec
ord is found that for any reason does not match the record that
was expected. This may indicate that the tape is positioned incor
rectly (too early or too late) or that the wrong tape is being
played. Loading FILENAME block N A block of the fi
le has been found and is being read from tape. Saving FILENAME bl
ock N A block of the file is being written to tape. FIL
ENAME in the above messages is the name of the file or 'Unnamed file
' if the filename starts with a null. The block number, N, indicates
which block of the file is being read or written. The first block of
a file is normally block 1, the second block 2 etc. AMSTRAD
CPC464/664/6128 FIRMWARE page 8.8
c. Error messages. Rewind tape While searching for a
block of the file being read, a higher numbered block than that requir
ed has been found. The required block has been missed. This message is
often produced after a read error in the required block when the
next block is found. Read error X An error of some
kind occurred whilst reading from tape. The tape should be rewound
and the block played again. The X is a single letter indicating
what kind of read error occurred 'a' Bit too long
An impossibly long one or zero
has been measured. This often
indicates reading past the end $P$$$$$$$$$
of the record. 'b' CRC error Data
was read from tape incor
rectly. 'd' Block too long The data record contai
ns more than the expected 2048 b
ytes of data. Writ
e error a An error occurred whilst writing to the tape. There is
only on possible write error. This indicates that the Cassette
Manager was unable to write a bit as fast as was requested. Thi
s error will never occur unless the user has set the write speed
beyond the maximum possible. 8.12 Escape Key.
The escape key on the keyboard may be used to abandon cassette o
perations at certain times. When the Cassette Manager issues one of th
e prompt messages it calls KM READ CHAR repeatedly to empty the key bu
ffer out. Then it calls KM WAIT KEY to wait until the user presses is #
FC, which is the value normally generated by the escape key, then th
e Cassette Manager will abandon the read or write and will return an e
rror condition to the caller. When reading from or writing
to the cassette interrupts are disabled and the normal key scanning me
chanism is not active. While reading or writing the record leader the
Cassette Manager itself scans the keyboard to test whether key 66,
the escape key, is pressed. If the key is found to be pressed then t
he Cassette Manager abandons the read or write and returns to the c
aller (with an appropriate error condition). While reading and writi
ng the data in the record there is no way to interrupt the Cassette Man
ager, thus pressing ESC may not be detected for several seconds.
AMSTRAD CPC464/664/6128 FIRMWARE page 8.9
8.13 Low Level Cassette Driving. To allow the us
er to produce a new filing system the record read and write routines,
CAS READ and CAS WRITE, are in the firmware jumpblock. There is a third
routine at this level, CAS CHECK, whose facilities are not used by th
e higher levels of the Cassette Manager. It allows the data that has b
een written to tape to be compared with the data in store. This could be
used to perform a read write check if so desired. Also available in
the firmware jumpblock are routines to turn the cassette motor on
and off (CAS START MOTOR and CAS STOP MOTOR). It is not necessary to tu
rn the motor on and off around a call of CAS READ, CAS WRITE or CAS CHE
CK as these routines automatically turn the motor on and off.
AMSTRAD CPC464/664/6128 FIRMWARE page 8.10 eals
with reading files from and writing files ck are routines to turn
the cassette motor on and off (CAS START MOTOR and CAS STOP MOTOR). It
is not necessary to turn the motor on and off around a call of CAS REA
D, CAS WRITE or CAS CHECK as these routines automatically turn the moto
r on and off.
AMDISC BASpllZ , , 8"title.bin",£8 £Z
, , 8"title.bin",£8 £8"dump.bin", ,"start.bass8 firmware g %P%%%%%%%%%0 8
pw8G08s988sxC9s09DUMP MSHe last line of the screen properly ** PRESS SPAC
E !*J!S!!O!*J!SdOGC2nf!!JSd!O"2G!7 ++oyf!7R8*#+" 2f1fB(YKy YOC f ff*ffff!jf#+
2/( "$&)+-/2468!!Z#+* * * Parameter Error * * * Use HELPDUMP,n - where n a nu
mber from 1 to 25. P.DUMP,nn,n - where nn a number from 399 to 0.
n a number from 1 to 25. B.DUMP,n - where n a number from 1 to 25.
BP.DUMP,nn,n - where nn a number from 399 to 0. n a
number from 1 to 25. HELP - display RSX commands. ** B.DUMP and BP.DUMP will n
ot dump the last line of the screen properly ** PRESS SPACE 6mDUMP.DUMB.DUM
BP.DUMHEL cp 1 * * * Use HELPDUMP,n - where n a number from 1 to 25. P.D
UMP,nn,n - where nn a number from 399 to 0. n a number
from 1 to 25. B.DUMP,n - where n a number from 1 to 25. BP.DUMP,nn,n - where
nn a number from 399 to 0. n a number from 1 to 25. H
ELP - display RSX commands. ** B.DUMP and BP.DUMP will not dump thPTITLE BASpp
ress any key..." 2 £8. 8"title.bin",£8"dump.bin", , , H( , "Please t
urn on printer and press any key..." 2 £8. B.DUM,#,() "apen6.bas"set6-1
", "set6-2", #""setb6-2", x,fil"apen6-b" "6"blocks", xfil"apen6-c" J"lines",
T"6-5chars", "6-6cha-t", h"6-6cha-b", r"6-7char", "6-8char", "6-9char", x
"apen-11.p1","apen-11.p2"Kfil"apen-8" p "append-8.baTITLE BIN£88!Lw#0
B 0 8pw8G08s988sxC9s09 &P&&&&&&&&&sA9G!s3AG9G!scA9Gs#A9s #9spC89s9START BASpr
rS $ "index-1","index-2","index-3"D N/ #,,O,,#,,P,,#,,P,,' ","M E N U (1)" 1
) Preface,2) Contents,3) Chapter One,4) Chapter Two,5) Chapter Three,6) Chapter
Four,7) Chapter Five,8) Chapter Six,9) Next Menu.( ,"I Introduction & Instructio
ns 2 F (#) dP 1Z n,x,,,,,,,3d fil"indoc." 4 f5n fil"preface." 4
f6x fil"contents." 4 f" f" f4 fil"chap-3." 4 f" f4 fil"chap-5
." 4 f4 fil"chap-6." 4 f' ","M E N U (2)" 1) Chapter Seven,2) Chapter Eight
,3) Chapter Nine,4) Chapter Ten,5) Chapter Eleven,6) Chapter Twelve,7) Chapter T
hirteen,8) Previous Menu,9) Next Menu 1 ,,,,",,,6,,4 fil"chap-7."
4 f" f" f" $ f5" fil"chap-11." 4 f5, fil"chap-12." 4 f56 fil"c
hap-13." 4 f' ","M E N U (3)" J T T1h r,,,,,,,,"r 8 f" L f"
f5 fil"chap-17." 4 f" f5 fil"chap-19." 4 f5 fil"chap-20." 4 f 1) C
hapter Fourteen,2) Chapter Fifteen,3) Chapter Sixteen,4) Chapter Seventeen,5) Ch
apter Eighteen,6) Chapter Nineteen,7) Chapter Twenty,8) Previous Menu,9) Next Me
nu' ","M E N U (4)" 1 n,,,,,,,,0 fil"ap4" 4 f3 fil"apen-5" 4
f3 fil"apen-7" 4 f 1) Appendix One,2) Appendix Two,3) Appendix Three,4) Appen
dix Four,5) Appendix Five,6) Appendix Six,7) Appendix Seven,8) Previous Menu,9)
Next Menu' ","M E N U (5)" & 0 01D ,,N,X,,b,l,,4N fil"apen-10" 4
f5X fil"apen-11." 4 f"b D fDl "trans", v "apen-14.bas"Pvfil"apen-14.
p1" d Zfil"apen-14.p2" f" 0 f 1) Appendix Eight,2) Appendix Nine,3) Append
ix Ten,4) Appendix Eleven,5) Appendix Twelve,6) Appendix Thirteen,7) Appendix Fo
urteen,8) Index,9) Menu oneQ#, ,#,"Press the key number of the Firmware Part you
want (1 to 9)"2 !, (C)- t(" 123456789",) () dis sid dis sid dis sid dis s
id dis sid dis sid dis sidd# 'P''''''''' ,"Please insert Disc " dis" side " si
d" and press any key..." O "!"fil £#, (B) X* 4 #"!"fil £#,H
(B) XR#,-#,!,#,"Press a key.." #Rf# !,"F I N I S H E D" , "Press C to Continu
e or E to End"p () z () p -# ,"S Screen or P Printer" () () "ch
ap-1.p1","chap-1.p2" "chap-2.p1","chap-2.p2" "chap-4.p1","chap-4.p2" "chap-8.
p1","chap-8.p2" "chap-9.p1","chap-9.p2"$ . ."chap-10.p1","chap-10.p2"8 B ,B"cha
p-14.p1","chap-14.p2","chap-14.p3"9L V file fil 4 ,V"chap-15.p1","chap-15.p2
","chap-15.p3" j file fil 4 j"chap-15.p4","chap-15.p5","chap-15.p6","chap-15
.p7","chap-15.p8","chap-15.p9","chap-15.p10","chap-15.p11","chap-15.p12","chap-1
5.p13","chap-15.p14"/t file fil 4u"chap-15.p15","chap-15.p16","chap-15.p17",
"chap-15.p18","chap-15.p19","chap-15.p20","chap-15.p21","chap-15.p22" "chap-16.
p1","chap-16.p2" "chap-18.p1","chap-18.p2") file fil 4) file fil 4Gfil"ap
2" 4 "append2.bas""Normal Translation Table.""The following diagram desc
ribes the translation when neither shift nor controlis pressed." "2-4main", d"
pad2-4", d"joy2-4", d5 Z"2-5main""Shift Translation Table.""The following diagr
am desribes the translation when either shift key is pressed,or the shift lock i
s on, but the control key is not pressed." d"pad2-5", d""joy2-5", d Z("Cont
rol Translation Table.""The following diagram describes the translation when the
control key is pressed." 2"2-6main", d"pad2-6", dF"joy2-6", dP Z f7Z#,,O,,#,,
P,,#,,P,, £8d Jnfil"AP1-1" 4 "append-1.bas"x"464-AP1", d"6128-ap1", d"
pads", d"joys", d$ Zfil"ap1-2" 4 fLfil"append3" 4 "append-3.bas""3-1MA
IN", d"PAD3-1", d"JOY3-1", d Z fHfil"apen6-a" 4 "apen6.bas"set6-1", d"s
et6-2", d#"setb6-2", d Zfil"apen6-b" 4""blocks", d Z"fil"apen6-c" 4,"lines", d
6"6-5chars", d"6-6cha-t", dJ"6-6cha-b", dT"6-7char", d"6-8char", dh"6-9char", dr
Z fHfil"apen-8" 4 "apen8.bas""apen8-a", d Z fDfil"apen-9" 4 "
apen9""apen9-a", d"apen9-b", d, Zfil"apen-9c" 4 fIfil"apen-12.p1" 4 "ap
en12"fil"apen-12.p2" 4"12-13bot", d) Zfil"apen-12.p4" 4"12-14bot", d) Zfil"ape
n-12.p5" 4"f-sys", d* Zfil"apen-12a.p6" 4"FRENCH", d) Zfil"apen-12.p6" 4 & f0
$ "index-1","index-2","index-3"D N N "apen-13.p1","apen-13.p2"X f Kernel for