000000: 45 58 54 45 4E 44 45 44 20 43 50 43 20 44 53 4B EXTENDED CPC DSK
000010: 20 46 69 6C 65 0D 0A 44 69 73 6B 2D 49 6E 66 6F File..Disk-Info
000020: 0D 0A 53 41 4D 64 69 73 6B 31 32 30 34 31 37 00 ..SAMdisk120417.
000030: 28 01 00 00 13 13 13 13 13 13 13 13 13 13 13 13 (...............
000040: 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ................
000050: 13 13 13 13 13 13 13 13 13 13 13 13 00 00 00 00 ................
000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
000110: 00 00 00 00 02 09 50 E5 00 00 C1 02 00 00 00 02 ......P.........
000120: 00 00 C2 02 00 00 00 02 00 00 C3 02 00 00 00 02 ................
000130: 00 00 C4 02 00 00 00 02 00 00 C5 02 00 00 00 02 ................
000140: 00 00 C6 02 00 00 00 02 00 00 C7 02 00 00 00 02 ................
000150: 00 00 C8 02 00 00 00 02 00 00 C9 02 00 00 00 02 ................
000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000200: 00 43 48 41 50 2D 31 35 20 D0 31 30 00 00 00 7F .CHAP-15 .10....
000210: 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 tuvwxyz{|}~.....
000220: 00 43 48 41 50 2D 31 35 20 D0 31 31 00 00 00 80 .CHAP-15 .11....
000230: 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 ................
000240: 00 43 48 41 50 2D 31 35 20 D0 31 31 01 00 00 01 .CHAP-15 .11....
000250: 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d...............
000260: 00 43 48 41 50 2D 31 35 20 D0 31 32 00 00 00 78 .CHAP-15 .12...x
000270: 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 00 efghijklmnopqrs.
000280: 00 43 48 41 50 2D 31 35 20 D0 31 33 00 00 00 80 .CHAP-15 .13....
000290: 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 ...............£
0002A0: 00 43 48 41 50 2D 31 35 20 D0 31 34 00 00 00 7B .CHAP-15 .14...{
0002B0: A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 ................
0002C0: 00 43 48 41 50 2D 31 35 20 D0 34 20 00 00 00 79 .CHAP-15 .4 ...y
0002D0: 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 ................
0002E0: 00 43 48 41 50 2D 31 35 20 D0 35 20 00 00 00 7D .CHAP-15 .5 ...}
0002F0: 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 .............. !
000300: 00 43 48 41 50 2D 31 35 20 D0 36 20 00 00 00 80 .CHAP-15 .6 ....
000310: 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 "#$%&'()*+,-./01
000320: 00 43 48 41 50 2D 31 35 20 D0 36 20 01 00 00 03 .CHAP-15 .6 ....
000330: 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2...............
000340: 00 43 48 41 50 2D 31 35 20 D0 37 20 00 00 00 7C .CHAP-15 .7 ...|
000350: 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 3456789:;<=>?@AB
000360: 00 43 48 41 50 2D 31 35 20 D0 38 20 00 00 00 80 .CHAP-15 .8 ....
000370: 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 CDEFGHIJKLMNOPQR
000380: 00 43 48 41 50 2D 31 35 20 D0 38 20 01 00 00 07 .CHAP-15 .8 ....
000390: 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 S...............
0003A0: 00 43 48 41 50 2D 31 35 20 D0 39 20 00 00 00 80 .CHAP-15 .9 ....
0003B0: 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 TUVWXYZ[\]^_`abc
0003C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0003D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0003E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0003F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000A10: 20 20 20 31 31 34 3A 20 53 43 52 20 52 45 50 41 114: SCR REPA
000A20: 43 4B 20 20 20 20 20 20 20 20 20 20 20 20 20 20 CK
000A30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000A40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000A50: 20 20 20 20 23 42 43 35 36 0D 0A 0D 0A 0D 0A 20 #BC56......
000A60: 20 20 20 20 20 20 43 6F 6D 70 72 65 73 73 20 61 Compress a
000A70: 20 63 68 61 72 61 63 74 65 72 20 6D 61 74 72 69 character matri
000A80: 78 20 74 6F 20 74 68 65 20 73 74 61 6E 64 61 72 x to the standar
000A90: 64 20 66 6F 72 6D 2E 0D 0A 0D 0A 0D 0A 20 20 20 d form.......
000AA0: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D Action:.....
000AB0: 0A 20 20 20 20 20 20 20 41 20 63 68 61 72 61 63 . A charac
000AC0: 74 65 72 20 6F 6E 20 74 68 65 20 73 63 72 65 65 ter on the scree
000AD0: 6E 20 69 73 20 63 6F 6E 76 65 72 74 65 64 20 74 n is converted t
000AE0: 6F 20 61 20 6D 61 74 72 69 78 20 62 79 20 20 63 o a matrix by c
000AF0: 6F 6D 70 61 72 69 6E 67 20 20 65 61 63 68 0D 0A omparing each..
000B00: 20 20 20 20 20 20 20 70 69 78 65 6C 20 77 69 74 pixel wit
000B10: 68 20 61 6E 20 20 69 6E 6B 2E 20 20 49 66 20 20 h an ink. If
000B20: 74 68 65 20 20 70 69 78 65 6C 20 20 69 73 20 20 the pixel is
000B30: 73 65 74 20 20 74 6F 20 20 74 68 61 74 20 20 69 set to that i
000B40: 6E 6B 20 20 74 68 65 6E 20 20 74 68 65 0D 0A 20 nk then the..
000B50: 20 20 20 20 20 20 61 70 70 72 6F 70 72 69 61 74 appropriat
000B60: 65 20 62 69 74 20 69 6E 20 74 68 65 20 63 68 61 e bit in the cha
000B70: 72 61 63 74 65 72 20 6D 61 74 72 69 78 20 69 73 racter matrix is
000B80: 20 73 65 74 2C 20 6F 74 68 65 72 77 69 73 65 20 set, otherwise
000B90: 74 68 65 20 20 62 69 74 20 20 69 73 0D 0A 20 20 the bit is..
000BA0: 20 20 20 20 20 63 6C 65 61 72 65 64 2E 0D 0A 0D cleared....
000BB0: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
000BC0: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
000BD0: 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 . A contai
000BE0: 6E 73 20 74 68 65 20 65 6E 63 6F 64 65 64 20 69 ns the encoded i
000BF0: 6E 6B 20 74 6F 20 6D 61 74 63 68 20 61 67 61 69 nk to match agai
000C00: 6E 73 74 2E 0D 0A 20 20 20 20 20 20 20 48 20 63 nst... H c
000C10: 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 68 79 73 ontains the phys
000C20: 69 63 61 6C 20 63 68 61 72 61 63 74 65 72 20 63 ical character c
000C30: 6F 6C 75 6D 6E 20 74 6F 20 72 65 61 64 20 66 72 olumn to read fr
000C40: 6F 6D 2E 0D 0A 20 20 20 20 20 20 20 4C 20 63 6F om... L co
000C50: 6E 74 61 69 6E 73 20 74 68 65 20 70 68 79 73 69 ntains the physi
000C60: 63 61 6C 20 63 68 61 72 61 63 74 65 72 20 72 6F cal character ro
000C70: 77 20 74 6F 20 72 65 61 64 20 66 72 6F 6D 2E 0D w to read from..
000C80: 0A 20 20 20 20 20 20 20 44 45 20 63 6F 6E 74 61 . DE conta
000C90: 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 ins the address
000CA0: 6F 66 20 74 68 65 20 61 72 65 61 20 74 6F 20 63 of the area to c
000CB0: 6F 6E 73 74 72 75 63 74 20 74 68 65 20 6D 61 74 onstruct the mat
000CC0: 72 69 78 20 69 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 rix in.......
000CD0: 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 Exit conditi
000CE0: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
000CF0: 20 41 46 2C 20 42 43 2C 20 44 45 20 61 6E 64 20 AF, BC, DE and
000D00: 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 HL corrupt...
000D10: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
000D20: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
000D30: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E d....... N
000D40: 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 otes:......
000D50: 20 20 54 68 65 20 63 68 61 72 61 63 74 65 72 20 The character
000D60: 70 6F 73 69 74 69 6F 6E 20 69 73 20 67 69 76 65 position is give
000D70: 6E 20 69 6E 20 70 68 79 73 69 63 61 6C 20 63 6F n in physical co
000D80: 6F 72 64 69 6E 61 74 65 73 20 69 6E 20 20 77 68 ordinates in wh
000D90: 69 63 68 20 20 72 6F 77 0D 0A 20 20 20 20 20 20 ich row..
000DA0: 20 30 2C 20 63 6F 6C 75 6D 6E 20 30 20 69 73 20 0, column 0 is
000DB0: 74 68 65 20 74 6F 70 20 6C 65 66 74 20 63 6F 72 the top left cor
000DC0: 6E 65 72 20 6F 66 20 74 68 65 20 73 63 72 65 65 ner of the scree
000DD0: 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 n....... T
000DE0: 68 65 20 63 68 61 72 61 63 74 65 72 20 70 6F 73 he character pos
000DF0: 69 74 69 6F 6E 20 67 69 76 65 6E 20 69 73 20 6E ition given is n
000E00: 6F 74 20 63 68 65 63 6B 65 64 20 66 6F 72 20 6C ot checked for l
000E10: 65 67 61 6C 69 74 79 2E 20 20 41 6E 20 20 69 6C egality. An il
000E20: 6C 65 67 61 6C 0D 0A 20 20 20 20 20 20 20 70 6F legal.. po
000E30: 73 69 74 69 6F 6E 20 20 28 6F 6E 65 20 20 6F 75 sition (one ou
000E40: 74 73 69 64 65 20 20 74 68 65 20 20 6C 69 6D 69 tside the limi
000E50: 74 73 20 20 6F 66 20 20 20 74 68 65 20 20 20 73 ts of the s
000E60: 63 72 65 65 6E 29 20 20 20 77 69 6C 6C 20 20 20 creen) will
000E70: 68 61 76 65 0D 0A 20 20 20 20 20 20 20 75 6E 70 have.. unp
000E80: 72 65 64 69 63 74 61 62 6C 65 20 65 66 66 65 63 redictable effec
000E90: 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ts.......
000EA0: 54 68 65 20 6D 61 74 72 69 78 20 70 72 6F 64 75 The matrix produ
000EB0: 63 65 64 20 68 61 73 20 74 68 65 20 6E 6F 72 6D ced has the norm
000EC0: 61 6C 20 6C 61 79 6F 75 74 2E 20 49 74 20 69 73 al layout. It is
000ED0: 20 38 20 62 79 74 65 73 20 6C 6F 6E 67 2C 20 20 8 bytes long,
000EE0: 73 74 6F 72 65 64 0D 0A 20 20 20 20 20 20 20 74 stored.. t
000EF0: 6F 70 20 6C 69 6E 65 20 66 69 72 73 74 20 61 6E op line first an
000F00: 64 20 62 6F 74 74 6F 6D 20 6C 69 6E 65 20 6C 61 d bottom line la
000F10: 73 74 2C 20 74 68 65 20 6D 6F 73 74 20 73 69 67 st, the most sig
000F20: 6E 69 66 69 63 61 6E 74 20 62 69 74 20 20 6F 66 nificant bit of
000F30: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 62 79 the.. by
000F40: 74 65 20 72 65 66 65 72 73 20 74 6F 20 74 68 65 te refers to the
000F50: 20 6C 65 66 74 6D 6F 73 74 20 70 69 78 65 6C 20 leftmost pixel
000F60: 6F 66 20 61 20 6C 69 6E 65 20 61 6E 64 20 74 68 of a line and th
000F70: 65 20 6C 65 61 73 74 20 20 73 69 67 6E 69 66 69 e least signifi
000F80: 63 61 6E 74 0D 0A 20 20 20 20 20 20 20 62 69 74 cant.. bit
000F90: 20 74 6F 20 74 68 65 20 72 69 67 68 74 6D 6F 73 to the rightmos
000FA0: 74 20 70 69 78 65 6C 2E 0D 0A 0D 0A 0D 0A 20 20 t pixel.......
000FB0: 20 20 20 20 20 42 65 63 61 75 73 65 20 74 68 65 Because the
000FC0: 20 70 69 78 65 6C 73 20 61 72 65 20 74 65 73 74 pixels are test
000FD0: 65 64 20 66 6F 72 20 62 65 69 6E 67 20 73 65 74 ed for being set
000FE0: 20 74 6F 20 6F 6E 6C 79 20 6F 6E 65 20 69 6E 6B to only one ink
000FF0: 20 74 68 65 20 6D 61 74 72 69 78 0D 0A 20 20 20 the matrix..
001000: 20 20 20 20 70 72 6F 64 75 63 65 64 20 69 73 20 produced is
001010: 6E 6F 74 20 61 6E 20 65 78 61 63 74 20 72 65 70 not an exact rep
001020: 72 65 73 65 6E 74 61 74 69 6F 6E 20 6F 66 20 77 resentation of w
001030: 68 61 74 20 69 73 20 69 6E 20 74 68 65 20 20 73 hat is in the s
001040: 63 72 65 65 6E 2E 20 20 49 74 0D 0A 20 20 20 20 creen. It..
001050: 20 20 20 6D 61 79 20 62 65 20 6E 65 63 65 73 73 may be necess
001060: 61 72 79 2C 20 77 68 65 6E 20 74 72 79 69 6E 67 ary, when trying
001070: 20 74 6F 20 72 65 61 64 20 63 68 61 72 61 63 74 to read charact
001080: 65 72 73 20 66 72 6F 6D 20 74 68 65 20 20 73 63 ers from the sc
001090: 72 65 65 6E 2C 20 20 74 6F 0D 0A 20 20 20 20 20 reen, to..
0010A0: 20 20 72 65 70 61 63 6B 20 75 73 69 6E 67 20 76 repack using v
0010B0: 61 72 69 6F 75 73 20 64 69 66 66 65 72 65 6E 74 arious different
0010C0: 20 69 6E 6B 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 inks.....
0010D0: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
0010E0: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 43 52 20 :.... SCR
0010F0: 55 4E 50 41 43 4B 0D 0A 20 20 20 20 20 20 20 54 UNPACK.. T
001100: 58 54 20 52 44 20 43 48 41 52 0D 0A 0D 0A 20 20 XT RD CHAR....
001110: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
001120: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
001130: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
001140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001150: 70 61 67 65 20 31 35 2E 31 31 39 0D 0A 0D 0A 0D page 15.119.....
001160: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
001170: 31 31 35 3A 20 53 43 52 20 41 43 43 45 53 53 20 115: SCR ACCESS
001180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0011A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0011B0: 20 23 42 43 35 39 0D 0A 0D 0A 20 20 20 20 20 20 #BC59....
0011C0: 20 53 65 74 20 74 68 65 20 73 63 72 65 65 6E 20 Set the screen
0011D0: 77 72 69 74 65 20 6D 6F 64 65 20 66 6F 72 20 74 write mode for t
0011E0: 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 2E he Graphics VDU.
0011F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F .... Actio
001200: 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 n:.... Set
001210: 20 74 68 65 20 47 72 61 70 68 69 63 73 20 56 44 the Graphics VD
001220: 55 20 77 72 69 74 65 20 6D 6F 64 65 20 73 6F 20 U write mode so
001230: 74 68 61 74 20 74 68 65 20 47 72 61 70 68 69 63 that the Graphic
001240: 73 20 56 44 55 20 70 6C 6F 74 73 20 20 70 69 78 s VDU plots pix
001250: 65 6C 73 0D 0A 20 20 20 20 20 20 20 62 79 20 77 els.. by w
001260: 72 69 74 69 6E 67 2C 20 61 6E 64 69 6E 67 2C 20 riting, anding,
001270: 6F 72 69 6E 67 20 6F 72 20 65 78 63 6C 75 73 69 oring or exclusi
001280: 76 65 2D 6F 72 69 6E 67 2E 0D 0A 0D 0A 20 20 20 ve-oring.....
001290: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
0012A0: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
0012B0: 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 72 A contains the r
0012C0: 65 71 75 69 72 65 64 20 77 72 69 74 65 20 6D 6F equired write mo
0012D0: 64 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 de..... Ex
0012E0: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
0012F0: 0D 0A 20 20 20 20 20 20 20 41 46 2C 20 42 43 2C .. AF, BC,
001300: 20 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 DE and HL corru
001310: 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 pt... All
001320: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
001330: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 preserved.....
001340: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 Notes:....
001350: 20 20 20 20 20 20 54 68 65 20 77 72 69 74 65 20 The write
001360: 6D 6F 64 65 20 69 73 20 6D 61 73 6B 65 64 20 77 mode is masked w
001370: 69 74 68 20 23 30 33 20 74 6F 20 6D 61 6B 65 20 ith #03 to make
001380: 69 74 20 6C 65 67 61 6C 2E 20 20 54 68 65 20 20 it legal. The
001390: 77 72 69 74 65 20 20 6D 6F 64 65 73 0D 0A 20 20 write modes..
0013A0: 20 20 20 20 20 61 72 65 3A 0D 0A 20 20 20 20 20 are:..
0013B0: 20 20 20 20 20 20 20 20 20 20 20 30 3A 20 46 4F 0: FO
0013C0: 52 43 45 20 6D 6F 64 65 3A 20 20 20 20 20 20 4E RCE mode: N
0013D0: 45 57 20 3D 20 49 4E 4B 0D 0A 20 20 20 20 20 20 EW = INK..
0013E0: 20 20 20 20 20 20 20 20 20 20 31 3A 20 58 4F 52 1: XOR
0013F0: 20 6D 6F 64 65 3A 20 20 20 20 20 20 20 20 4E 45 mode: NE
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: 57 20 3D 20 49 4E 4B 20 65 78 63 6C 75 73 69 76 W = INK exclusiv
001510: 65 2D 6F 72 20 4F 4C 44 0D 0A 20 20 20 20 20 20 e-or OLD..
001520: 20 20 20 20 20 20 20 20 20 20 32 3A 20 41 4E 44 2: AND
001530: 20 6D 6F 64 65 3A 20 20 20 20 20 20 20 20 4E 45 mode: NE
001540: 57 20 3D 20 49 4E 4B 20 61 6E 64 20 4F 4C 44 0D W = INK and OLD.
001550: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
001560: 20 33 3A 20 4F 52 20 6D 6F 64 65 3A 20 20 20 20 3: OR mode:
001570: 20 20 20 20 20 4E 45 57 20 3D 20 49 4E 4B 20 6F NEW = INK o
001580: 72 20 4F 4C 44 0D 0A 0D 0A 20 20 20 20 20 20 20 r OLD....
001590: 20 20 20 20 20 4E 45 57 20 69 73 20 74 68 65 20 NEW is the
0015A0: 66 69 6E 61 6C 20 73 65 74 74 69 6E 67 20 6F 66 final setting of
0015B0: 20 74 68 65 20 70 69 78 65 6C 2E 0D 0A 20 20 20 the pixel...
0015C0: 20 20 20 20 20 20 20 20 20 4F 4C 44 20 69 73 20 OLD is
0015D0: 74 68 65 20 63 75 72 72 65 6E 74 20 73 65 74 74 the current sett
0015E0: 69 6E 67 20 6F 66 20 74 68 65 20 70 69 78 65 6C ing of the pixel
0015F0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
001600: 20 49 4E 4B 20 69 73 20 74 68 65 20 69 6E 6B 20 INK is the ink
001610: 62 65 69 6E 67 20 70 6C 6F 74 74 65 64 2E 0D 0A being plotted...
001620: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 64 .... The d
001630: 65 66 61 75 6C 74 20 6D 6F 64 65 20 69 73 20 46 efault mode is F
001640: 4F 52 43 45 20 6D 6F 64 65 20 28 6D 6F 64 65 20 ORCE mode (mode
001650: 30 29 20 61 6E 64 20 69 73 20 73 65 74 20 61 74 0) and is set at
001660: 20 45 4D 53 20 61 6E 64 20 77 68 65 6E 20 53 43 EMS and when SC
001670: 52 0D 0A 20 20 20 20 20 20 20 52 45 53 45 54 20 R.. RESET
001680: 69 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A 0D 0A is called.......
001690: 20 20 20 20 20 20 20 53 65 74 74 69 6E 67 20 74 Setting t
0016A0: 68 65 20 77 72 69 74 65 20 6D 6F 64 65 20 61 66 he write mode af
0016B0: 66 65 63 74 73 20 68 6F 77 20 74 68 65 20 69 6E fects how the in
0016C0: 64 69 72 65 63 74 69 6F 6E 20 72 6F 75 74 69 6E direction routin
0016D0: 65 20 20 53 43 52 20 20 57 52 49 54 45 0D 0A 20 e SCR WRITE..
0016E0: 20 20 20 20 20 20 73 65 74 73 20 70 69 78 65 6C sets pixel
0016F0: 73 2E 20 47 72 61 70 68 69 63 73 20 56 44 55 20 s. Graphics VDU
001700: 70 6C 6F 74 74 69 6E 67 20 72 6F 75 74 69 6E 65 plotting routine
001710: 73 20 63 61 6C 6C 20 74 68 69 73 20 20 69 6E 64 s call this ind
001720: 69 72 65 63 74 69 6F 6E 20 20 74 6F 0D 0A 20 20 irection to..
001730: 20 20 20 20 20 73 65 74 20 70 69 78 65 6C 73 20 set pixels
001740: 61 6E 64 20 73 6F 20 74 68 65 20 77 72 69 74 65 and so the write
001750: 20 6D 6F 64 65 20 61 66 66 65 63 74 73 20 74 68 mode affects th
001760: 65 20 47 72 61 70 68 69 63 73 20 56 44 55 2E 20 e Graphics VDU.
001770: 4E 6F 20 54 65 78 74 20 56 44 55 0D 0A 20 20 20 No Text VDU..
001780: 20 20 20 20 72 6F 75 74 69 6E 65 73 20 20 63 61 routines ca
001790: 6C 6C 20 20 74 68 69 73 20 20 69 6E 64 69 72 65 ll this indire
0017A0: 63 74 69 6F 6E 20 20 28 74 68 65 79 20 20 73 65 ction (they se
0017B0: 74 20 20 70 69 78 65 6C 73 20 20 6F 6E 20 20 74 t pixels on t
0017C0: 68 65 20 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 he screen..
0017D0: 20 20 20 64 69 72 65 63 74 6C 79 29 20 61 6E 64 directly) and
0017E0: 20 73 6F 20 74 68 65 20 77 72 69 74 65 20 6D 6F so the write mo
0017F0: 64 65 20 64 6F 65 73 20 6E 6F 74 20 20 61 66 66 de does not aff
001800: 65 63 74 20 20 74 68 65 20 20 54 65 78 74 20 20 ect the Text
001810: 56 44 55 2E 20 20 54 68 65 0D 0A 20 20 20 20 20 VDU. The..
001820: 20 20 72 6F 75 74 69 6E 65 73 20 74 68 61 74 20 routines that
001830: 63 6C 65 61 72 20 61 72 65 61 73 20 6F 66 20 74 clear areas of t
001840: 68 65 20 73 63 72 65 65 6E 20 28 65 2E 67 2E 20 he screen (e.g.
001850: 47 52 41 20 20 43 4C 45 41 52 20 20 57 49 4E 44 GRA CLEAR WIND
001860: 4F 57 29 20 20 61 63 74 0D 0A 20 20 20 20 20 20 OW) act..
001870: 20 6C 69 6B 65 20 74 68 65 20 54 65 78 74 20 56 like the Text V
001880: 44 55 20 61 6E 64 20 61 72 65 20 75 6E 61 66 66 DU and are unaff
001890: 65 63 74 65 64 20 62 79 20 74 68 65 20 77 72 69 ected by the wri
0018A0: 74 65 20 6D 6F 64 65 2E 0D 0A 0D 0A 0D 0A 0D 0A te mode.........
0018B0: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
0018C0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
0018D0: 20 20 20 20 47 52 41 20 44 45 46 41 55 4C 54 0D GRA DEFAULT.
0018E0: 0A 20 20 20 20 20 20 20 53 43 52 20 49 4E 49 54 . SCR INIT
0018F0: 49 41 4C 49 53 45 0D 0A 20 20 20 20 20 20 20 53 IALISE.. S
001900: 43 52 20 52 45 53 45 54 0D 0A 20 20 20 20 20 20 CR RESET..
001910: 20 53 43 52 20 57 52 49 54 45 0D 0A 0D 0A 0D 0A SCR WRITE......
001920: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
001930: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
001940: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
001950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001960: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
001970: 31 32 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 120.............
001980: 0A 20 20 20 20 20 20 20 31 31 36 3A 20 53 43 52 . 116: SCR
001990: 20 50 49 58 45 4C 53 20 20 20 20 20 20 20 20 20 PIXELS
0019A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0019B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0019C0: 20 20 20 20 20 20 20 20 20 23 42 43 35 43 0D 0A #BC5C..
0019D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 57 72 69 74 65 .... Write
0019E0: 20 61 20 70 69 78 65 6C 20 74 6F 20 74 68 65 20 a pixel to the
0019F0: 73 63 72 65 65 6E 20 69 67 6E 6F 72 69 6E 67 20 screen ignoring
001A00: 74 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 the Graphics VDU
001A10: 20 77 72 69 74 65 20 6D 6F 64 65 2E 0D 0A 0D 0A write mode.....
001A20: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
001A30: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 72 69 ...... Wri
001A40: 74 65 20 61 20 70 69 78 65 6C 20 6F 72 20 70 69 te a pixel or pi
001A50: 78 65 6C 73 20 74 6F 20 74 68 65 20 73 63 72 65 xels to the scre
001A60: 65 6E 2E 20 54 68 65 20 70 6F 73 69 74 69 6F 6E en. The position
001A70: 20 20 74 6F 20 20 77 72 69 74 65 20 20 61 74 20 to write at
001A80: 20 69 73 0D 0A 20 20 20 20 20 20 20 67 69 76 65 is.. give
001A90: 6E 20 62 79 20 61 20 73 63 72 65 65 6E 20 61 64 n by a screen ad
001AA0: 64 72 65 73 73 20 61 6E 64 20 70 69 78 65 6C 20 dress and pixel
001AB0: 6D 61 73 6B 2E 20 54 68 65 20 70 69 78 65 6C 20 mask. The pixel
001AC0: 69 73 20 61 6C 77 61 79 73 20 20 73 65 74 20 20 is always set
001AD0: 74 6F 0D 0A 20 20 20 20 20 20 20 74 68 65 20 69 to.. the i
001AE0: 6E 6B 20 73 75 70 70 6C 69 65 64 20 77 68 61 74 nk supplied what
001AF0: 65 76 65 72 20 6D 6F 64 65 20 6F 66 20 77 72 69 ever mode of wri
001B00: 74 69 6E 67 20 74 68 65 20 47 72 61 70 68 69 63 ting the Graphic
001B10: 73 20 56 44 55 20 69 73 20 75 73 69 6E 67 2E 0D s VDU is using..
001B20: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
001B30: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
001B40: 0A 0D 0A 20 20 20 20 20 20 20 42 20 63 6F 6E 74 ... B cont
001B50: 61 69 6E 73 20 74 68 65 20 65 6E 63 6F 64 65 64 ains the encoded
001B60: 20 69 6E 6B 20 74 6F 20 77 72 69 74 65 2E 0D 0A ink to write...
001B70: 20 20 20 20 20 20 20 43 20 63 6F 6E 74 61 69 6E C contain
001B80: 73 20 74 68 65 20 6D 61 73 6B 20 66 6F 72 20 74 s the mask for t
001B90: 68 65 20 70 69 78 65 6C 28 73 29 2E 0D 0A 20 20 he pixel(s)...
001BA0: 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 HL contains
001BB0: 20 74 68 65 20 73 63 72 65 65 6E 20 61 64 64 72 the screen addr
001BC0: 65 73 73 20 6F 66 20 74 68 65 20 70 69 78 65 6C ess of the pixel
001BD0: 28 73 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 (s).......
001BE0: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
001BF0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
001C00: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
001C10: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
001C20: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
001C30: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ...... Not
001C40: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
001C50: 54 68 65 20 73 63 72 65 65 6E 20 61 64 64 72 65 The screen addre
001C60: 73 73 20 69 73 20 6E 6F 74 20 63 68 65 63 6B 65 ss is not checke
001C70: 64 20 61 6E 64 20 73 6F 20 20 70 61 73 73 69 6E d and so passin
001C80: 67 20 20 61 6E 20 20 69 6E 76 61 6C 69 64 20 20 g an invalid
001C90: 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 61 screen.. a
001CA0: 64 64 72 65 73 73 20 77 69 6C 6C 20 68 61 76 65 ddress will have
001CB0: 20 75 6E 70 72 65 64 69 63 74 61 62 6C 65 20 72 unpredictable r
001CC0: 65 73 75 6C 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 esults.......
001CD0: 20 20 20 20 54 68 65 20 70 69 78 65 6C 20 6D 61 The pixel ma
001CE0: 73 6B 20 6D 61 79 20 62 65 20 61 20 63 6F 6D 62 sk may be a comb
001CF0: 69 6E 65 64 20 6D 61 73 6B 20 66 6F 72 20 6D 6F ined mask for mo
001D00: 72 65 20 74 68 61 6E 20 20 6F 6E 65 20 20 70 69 re than one pi
001D10: 78 65 6C 20 20 28 74 68 75 73 0D 0A 20 20 20 20 xel (thus..
001D20: 20 20 20 73 70 65 65 64 69 6E 67 20 75 70 20 70 speeding up p
001D30: 6C 6F 74 74 69 6E 67 20 69 6E 20 63 65 72 74 61 lotting in certa
001D40: 69 6E 20 63 61 73 65 73 29 2E 0D 0A 0D 0A 0D 0A in cases).......
001D50: 20 20 20 20 20 20 20 54 6F 20 70 6C 6F 74 20 61 To plot a
001D60: 20 70 69 78 65 6C 20 75 73 69 6E 67 20 74 68 65 pixel using the
001D70: 20 47 72 61 70 68 69 63 73 20 56 44 55 20 77 72 Graphics VDU wr
001D80: 69 74 65 20 6D 6F 64 65 20 53 43 52 20 57 52 49 ite mode SCR WRI
001D90: 54 45 20 73 68 6F 75 6C 64 20 20 62 65 0D 0A 20 TE should be..
001DA0: 20 20 20 20 20 20 63 61 6C 6C 65 64 2E 20 53 43 called. SC
001DB0: 52 20 50 49 58 45 4C 53 20 69 73 20 65 71 75 69 R PIXELS is equi
001DC0: 76 61 6C 65 6E 74 20 74 6F 20 63 61 6C 6C 69 6E valent to callin
001DD0: 67 20 53 43 52 20 57 52 49 54 45 20 77 68 65 6E g SCR WRITE when
001DE0: 20 74 68 65 20 64 65 66 61 75 6C 74 0D 0A 20 20 the default..
001DF0: 20 20 20 20 20 6D 6F 64 65 20 28 46 4F 52 43 45 mode (FORCE
001E00: 20 6D 6F 64 65 29 20 69 73 20 20 73 65 6C 65 63 mode) is selec
001E10: 74 65 64 2E 20 20 54 68 65 20 20 54 65 78 74 20 ted. The Text
001E20: 20 56 44 55 20 20 73 65 74 73 20 20 74 68 65 20 VDU sets the
001E30: 20 70 69 78 65 6C 73 20 20 69 6E 0D 0A 20 20 20 pixels in..
001E40: 20 20 20 20 63 68 61 72 61 63 74 65 72 73 20 75 characters u
001E50: 73 69 6E 67 20 46 4F 52 43 45 20 6D 6F 64 65 2E sing FORCE mode.
001E60: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 ........ R
001E70: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
001E80: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 43 52 20 ..... SCR
001E90: 57 52 49 54 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D WRITE...........
001EA0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
001EB0: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
001EC0: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
001ED0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001EE0: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
001EF0: 2E 31 32 31 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .121............
001F00: 0D 0A 20 20 20 20 20 20 20 31 31 37 3A 20 53 43 .. 117: SC
001F10: 52 20 48 4F 52 49 5A 4F 4E 54 41 4C 20 20 20 20 R HORIZONTAL
001F20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001F30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
001F40: 20 20 20 20 20 20 20 20 20 20 23 42 43 35 46 0D #BC5F.
001F50: 0A 0D 0A 20 20 20 20 20 20 20 50 6C 6F 74 20 61 ... Plot a
001F60: 20 70 75 72 65 6C 79 20 68 6F 72 69 7A 6F 6E 74 purely horizont
001F70: 61 6C 20 6C 69 6E 65 2E 0D 0A 0D 0A 20 20 20 20 al line.....
001F80: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 Action:....
001F90: 20 20 20 20 20 44 72 61 77 20 61 20 6C 69 6E 65 Draw a line
001FA0: 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 74 on the screen t
001FB0: 68 61 74 20 72 75 6E 73 20 68 6F 72 69 7A 6F 6E hat runs horizon
001FC0: 74 61 6C 6C 79 2E 20 54 68 65 20 20 70 69 78 65 tally. The pixe
001FD0: 6C 73 20 20 6F 6E 20 20 74 68 65 0D 0A 20 20 20 ls on the..
001FE0: 20 20 20 20 6C 69 6E 65 20 61 72 65 20 70 6C 6F line are plo
001FF0: 74 74 65 64 20 75 73 69 6E 67 20 74 68 65 20 53 tted using the S
002000: 43 52 20 57 52 49 54 45 20 20 69 6E 64 69 72 65 CR WRITE indire
002010: 63 74 69 6F 6E 20 20 61 6E 64 20 20 74 68 75 73 ction and thus
002020: 20 20 75 73 65 20 20 74 68 65 0D 0A 20 20 20 20 use the..
002030: 20 20 20 63 75 72 72 65 6E 74 20 47 72 61 70 68 current Graph
002040: 69 63 73 20 56 44 55 20 77 72 69 74 65 20 6D 6F ics VDU write mo
002050: 64 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E de..... En
002060: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
002070: 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 ... A cont
002080: 61 69 6E 73 20 74 68 65 20 65 6E 63 6F 64 65 64 ains the encoded
002090: 20 69 6E 6B 20 74 6F 20 64 72 61 77 20 69 6E 2E ink to draw in.
0020A0: 0D 0A 20 20 20 20 20 20 20 44 45 20 63 6F 6E 74 .. DE cont
0020B0: 61 69 6E 73 20 74 68 65 20 62 61 73 65 20 58 20 ains the base X
0020C0: 63 6F 6F 72 64 69 6E 61 74 65 20 6F 66 20 74 68 coordinate of th
0020D0: 65 20 73 74 61 72 74 20 6F 66 20 74 68 65 20 6C e start of the l
0020E0: 69 6E 65 2E 0D 0A 20 20 20 20 20 20 20 42 43 20 ine... BC
0020F0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 62 61 73 contains the bas
002100: 65 20 58 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F e X coordinate o
002110: 66 20 74 68 65 20 65 6E 64 20 6F 66 20 74 68 65 f the end of the
002120: 20 6C 69 6E 65 2E 0D 0A 20 20 20 20 20 20 20 48 line... H
002130: 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 62 L contains the b
002140: 61 73 65 20 59 20 63 6F 6F 72 64 69 6E 61 74 65 ase Y coordinate
002150: 20 6F 66 20 74 68 65 20 6C 69 6E 65 2E 0D 0A 0D of the line....
002160: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
002170: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
002180: 20 20 20 20 20 41 46 2C 20 42 43 2C 20 44 45 20 AF, BC, DE
002190: 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D and HL corrupt..
0021A0: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 . All othe
0021B0: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
0021C0: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 erved.......
0021D0: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 Notes:......
0021E0: 20 20 20 20 20 20 54 68 65 20 65 6E 64 70 6F 69 The endpoi
0021F0: 6E 74 73 20 6F 66 20 74 68 65 20 6C 69 6E 65 20 nts of the line
002200: 61 72 65 20 67 69 76 65 6E 20 69 6E 20 62 61 73 are given in bas
002210: 65 20 63 6F 6F 72 64 69 6E 61 74 65 73 2E 20 69 e coordinates. i
002220: 2E 65 2E 20 28 30 2C 30 29 20 69 73 0D 0A 20 20 .e. (0,0) is..
002230: 20 20 20 20 20 74 68 65 20 70 69 78 65 6C 20 69 the pixel i
002240: 6E 20 74 68 65 20 62 6F 74 74 6F 6D 20 6C 65 66 n the bottom lef
002250: 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 t corner of the
002260: 73 63 72 65 65 6E 20 61 6E 64 20 65 61 63 68 20 screen and each
002270: 20 63 6F 6F 72 64 69 6E 61 74 65 0D 0A 20 20 20 coordinate..
002280: 20 20 20 20 70 6F 73 69 74 69 6F 6E 20 72 65 66 position ref
002290: 65 72 73 20 74 6F 20 61 20 73 69 6E 67 6C 65 20 ers to a single
0022A0: 70 69 78 65 6C 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 pixel.......
0022B0: 20 20 20 54 68 65 20 65 6E 64 70 6F 69 6E 74 73 The endpoints
0022C0: 20 61 72 65 20 6E 6F 74 20 63 68 65 63 6B 65 64 are not checked
0022D0: 20 66 6F 72 20 62 65 69 6E 67 20 6C 65 67 61 6C for being legal
0022E0: 20 28 77 69 74 68 69 6E 20 20 74 68 65 20 20 6C (within the l
0022F0: 69 6D 69 74 73 20 20 6F 66 0D 0A 20 20 20 20 20 imits of..
002300: 20 20 74 68 65 20 73 63 72 65 65 6E 29 2E 20 49 the screen). I
002310: 66 20 74 68 65 79 20 61 72 65 20 6E 6F 74 20 20 f they are not
002320: 6C 65 67 61 6C 20 20 74 68 65 6E 20 20 75 6E 70 legal then unp
002330: 72 65 64 69 63 74 61 62 6C 65 20 20 65 66 66 65 redictable effe
002340: 63 74 73 20 20 6D 61 79 0D 0A 20 20 20 20 20 20 cts may..
002350: 20 6F 63 63 75 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 occur.......
002360: 20 20 20 20 54 68 65 20 73 74 61 72 74 20 58 20 The start X
002370: 63 6F 6F 72 64 69 6E 61 74 65 20 6D 75 73 74 20 coordinate must
002380: 62 65 20 20 6C 65 73 73 20 20 74 68 61 6E 20 20 be less than
002390: 6F 72 20 20 65 71 75 61 6C 20 20 74 6F 20 20 74 or equal to t
0023A0: 68 65 20 20 65 6E 64 20 20 58 0D 0A 20 20 20 20 he end X..
0023B0: 20 20 20 63 6F 6F 72 64 69 6E 61 74 65 2E 0D 0A coordinate...
0023C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 .... This
0023D0: 72 6F 75 74 69 6E 65 20 6D 61 79 20 62 65 20 75 routine may be u
0023E0: 73 65 64 20 74 6F 20 64 75 70 6C 69 63 61 74 65 sed to duplicate
0023F0: 20 74 68 65 20 6D 65 74 68 6F 64 20 74 68 61 74 the method that
002400: 20 74 68 65 20 47 72 61 70 68 69 63 73 20 56 44 the Graphics VD
002410: 55 0D 0A 20 20 20 20 20 20 20 75 73 65 73 20 66 U.. uses f
002420: 6F 72 20 70 6C 6F 74 74 69 6E 67 20 6C 69 6E 65 or plotting line
002430: 73 20 2D 20 69 74 20 73 70 6C 69 74 73 20 61 20 s - it splits a
002440: 6C 69 6E 65 20 20 74 68 61 74 20 20 69 73 20 20 line that is
002450: 6D 6F 72 65 20 20 68 6F 72 69 7A 6F 6E 74 61 6C more horizontal
002460: 0D 0A 20 20 20 20 20 20 20 74 68 61 6E 20 76 65 .. than ve
002470: 72 74 69 63 61 6C 20 69 6E 74 6F 20 61 20 6E 75 rtical into a nu
002480: 6D 62 65 72 20 6F 66 20 73 65 67 6D 65 6E 74 73 mber of segments
002490: 20 74 68 61 74 20 61 72 65 20 70 75 72 65 6C 79 that are purely
0024A0: 20 68 6F 72 69 7A 6F 6E 74 61 6C 20 61 6E 64 0D horizontal and.
0024B0: 0A 20 20 20 20 20 20 20 70 6C 6F 74 73 20 74 68 . plots th
0024C0: 65 73 65 20 73 65 70 61 72 61 74 65 6C 79 2E 0D ese separately..
0024D0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
0024E0: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
0024F0: 0D 0A 20 20 20 20 20 20 20 47 52 41 20 46 52 4F .. GRA FRO
002500: 4D 20 55 53 45 52 0D 0A 20 20 20 20 20 20 20 47 M USER.. G
002510: 52 41 20 4C 49 4E 45 20 41 42 53 4F 4C 55 54 45 RA LINE ABSOLUTE
002520: 0D 0A 20 20 20 20 20 20 20 47 52 41 20 4C 49 4E .. GRA LIN
002530: 45 20 52 45 4C 41 54 49 56 45 0D 0A 20 20 20 20 E RELATIVE..
002540: 20 20 20 53 43 52 20 56 45 52 54 49 43 41 4C 0D SCR VERTICAL.
002550: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
002560: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
002570: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
002580: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
002590: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
0025A0: 65 20 31 35 2E 31 32 32 0D 0A 0D 0A 0D 0A 0D 0A e 15.122........
0025B0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 31 38 ...... 118
0025C0: 3A 20 53 43 52 20 56 45 52 54 49 43 41 4C 20 20 : SCR VERTICAL
0025D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0025E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0025F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
002600: 43 36 32 0D 0A 0D 0A 20 20 20 20 20 20 20 50 6C C62.... Pl
002610: 6F 74 20 61 20 70 75 72 65 6C 79 20 76 65 72 74 ot a purely vert
002620: 69 63 61 6C 20 6C 69 6E 65 2E 0D 0A 0D 0A 20 20 ical line.....
002630: 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A Action:....
002640: 20 20 20 20 20 20 20 44 72 61 77 20 61 20 6C 69 Draw a li
002650: 6E 65 20 20 6F 6E 20 20 74 68 65 20 20 73 63 72 ne on the scr
002660: 65 65 6E 20 20 74 68 61 74 20 20 72 75 6E 73 20 een that runs
002670: 20 76 65 72 74 69 63 61 6C 6C 79 2E 20 20 54 68 vertically. Th
002680: 65 20 20 53 43 52 20 20 57 52 49 54 45 0D 0A 20 e SCR WRITE..
002690: 20 20 20 20 20 20 69 6E 64 69 72 65 63 74 69 6F indirectio
0026A0: 6E 20 69 73 20 75 73 65 64 20 74 6F 20 20 70 6C n is used to pl
0026B0: 6F 74 20 20 70 69 78 65 6C 20 20 69 6E 20 20 74 ot pixel in t
0026C0: 68 65 20 20 6C 69 6E 65 20 20 74 68 75 73 20 20 he line thus
0026D0: 74 68 65 20 20 63 75 72 72 65 6E 74 0D 0A 20 20 the current..
0026E0: 20 20 20 20 20 47 72 61 70 68 69 63 73 20 56 44 Graphics VD
0026F0: 55 20 77 72 69 74 65 20 6D 6F 64 65 20 69 73 20 U write mode is
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: 75 73 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 used.....
002810: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
002820: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 6F :.... A co
002830: 6E 74 61 69 6E 73 20 74 68 65 20 65 6E 63 6F 64 ntains the encod
002840: 65 64 20 69 6E 6B 20 74 6F 20 64 72 61 77 20 69 ed ink to draw i
002850: 6E 2E 0D 0A 20 20 20 20 20 20 20 44 45 20 63 6F n... DE co
002860: 6E 74 61 69 6E 73 20 74 68 65 20 62 61 73 65 20 ntains the base
002870: 58 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F 66 20 X coordinate of
002880: 74 68 65 20 6C 69 6E 65 2E 0D 0A 20 20 20 20 20 the line...
002890: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 HL contains th
0028A0: 65 20 62 61 73 65 20 59 20 63 6F 6F 72 64 69 6E e base Y coordin
0028B0: 61 74 65 20 6F 66 20 74 68 65 20 73 74 61 72 74 ate of the start
0028C0: 20 6F 66 20 74 68 65 20 6C 69 6E 65 2E 0D 0A 20 of the line...
0028D0: 20 20 20 20 20 20 42 43 20 63 6F 6E 74 61 69 6E BC contain
0028E0: 73 20 74 68 65 20 62 61 73 65 20 59 20 63 6F 6F s the base Y coo
0028F0: 72 64 69 6E 61 74 65 20 6F 66 20 74 68 65 20 65 rdinate of the e
002900: 6E 64 20 6F 66 20 74 68 65 20 6C 69 6E 65 2E 0D nd of the line..
002910: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
002920: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
002930: 20 20 20 20 20 41 46 2C 20 42 43 2C 20 44 45 20 AF, BC, DE
002940: 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D and HL corrupt..
002950: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 . All othe
002960: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
002970: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 erved.......
002980: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 Notes:......
002990: 20 20 20 20 20 20 54 68 65 20 65 6E 64 70 6F 69 The endpoi
0029A0: 6E 74 73 20 6F 66 20 74 68 65 20 6C 69 6E 65 20 nts of the line
0029B0: 61 72 65 20 67 69 76 65 6E 20 69 6E 20 62 61 73 are given in bas
0029C0: 65 20 63 6F 6F 72 64 69 6E 61 74 65 73 2E 20 69 e coordinates. i
0029D0: 2E 65 2E 20 28 30 2C 30 29 20 69 73 0D 0A 20 20 .e. (0,0) is..
0029E0: 20 20 20 20 20 74 68 65 20 70 69 78 65 6C 20 69 the pixel i
0029F0: 6E 20 74 68 65 20 62 6F 74 74 6F 6D 20 6C 65 66 n the bottom lef
002A00: 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 t corner of the
002A10: 73 63 72 65 65 6E 20 61 6E 64 20 65 61 63 68 20 screen and each
002A20: 20 63 6F 6F 72 64 69 6E 61 74 65 0D 0A 20 20 20 coordinate..
002A30: 20 20 20 20 70 6F 73 69 74 69 6F 6E 20 72 65 66 position ref
002A40: 65 72 73 20 74 6F 20 61 20 73 69 6E 67 6C 65 20 ers to a single
002A50: 70 69 78 65 6C 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 pixel.......
002A60: 20 20 20 54 68 65 20 65 6E 64 70 6F 69 6E 74 73 The endpoints
002A70: 20 61 72 65 20 6E 6F 74 20 63 68 65 63 6B 65 64 are not checked
002A80: 20 66 6F 72 20 62 65 69 6E 67 20 6C 65 67 61 6C for being legal
002A90: 20 28 77 69 74 68 69 6E 20 20 74 68 65 20 20 6C (within the l
002AA0: 69 6D 69 74 73 20 20 6F 66 0D 0A 20 20 20 20 20 imits of..
002AB0: 20 20 74 68 65 20 73 63 72 65 65 6E 29 2E 20 49 the screen). I
002AC0: 66 20 74 68 65 79 20 61 72 65 20 6E 6F 74 20 20 f they are not
002AD0: 6C 65 67 61 6C 20 20 74 68 65 6E 20 20 75 6E 70 legal then unp
002AE0: 72 65 64 69 63 74 61 62 6C 65 20 20 65 66 66 65 redictable effe
002AF0: 63 74 73 20 20 6D 61 79 0D 0A 20 20 20 20 20 20 cts may..
002B00: 20 6F 63 63 75 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 occur.......
002B10: 20 20 20 20 54 68 65 20 73 74 61 72 74 20 59 20 The start Y
002B20: 63 6F 6F 72 64 69 6E 61 74 65 20 6D 75 73 74 20 coordinate must
002B30: 62 65 20 20 6C 65 73 73 20 20 74 68 61 6E 20 20 be less than
002B40: 6F 72 20 20 65 71 75 61 6C 20 20 74 6F 20 20 74 or equal to t
002B50: 68 65 20 20 65 6E 64 20 20 59 0D 0A 20 20 20 20 he end Y..
002B60: 20 20 20 63 6F 6F 72 64 69 6E 61 74 65 2E 0D 0A coordinate...
002B70: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 .... This
002B80: 72 6F 75 74 69 6E 65 20 6D 61 79 20 62 65 20 75 routine may be u
002B90: 73 65 64 20 74 6F 20 64 75 70 6C 69 63 61 74 65 sed to duplicate
002BA0: 20 74 68 65 20 6D 65 74 68 6F 64 20 74 68 61 74 the method that
002BB0: 20 74 68 65 20 47 72 61 70 68 69 63 73 20 56 44 the Graphics VD
002BC0: 55 0D 0A 20 20 20 20 20 20 20 75 73 65 73 20 66 U.. uses f
002BD0: 6F 72 20 70 6C 6F 74 74 69 6E 67 20 6C 69 6E 65 or plotting line
002BE0: 73 20 2D 20 69 74 20 73 70 6C 69 74 73 20 61 20 s - it splits a
002BF0: 6C 69 6E 65 20 74 68 61 74 20 69 73 20 6D 6F 72 line that is mor
002C00: 65 20 76 65 72 74 69 63 61 6C 20 20 74 68 61 6E e vertical than
002C10: 0D 0A 20 20 20 20 20 20 20 68 6F 72 69 7A 6F 6E .. horizon
002C20: 74 61 6C 20 69 6E 74 6F 20 61 20 6E 75 6D 62 65 tal into a numbe
002C30: 72 20 6F 66 20 73 65 67 6D 65 6E 74 73 20 20 74 r of segments t
002C40: 68 61 74 20 20 61 72 65 20 20 70 75 72 65 6C 79 hat are purely
002C50: 20 20 76 65 72 74 69 63 61 6C 20 20 61 6E 64 0D vertical and.
002C60: 0A 20 20 20 20 20 20 20 70 6C 6F 74 73 20 74 68 . plots th
002C70: 65 73 65 20 73 65 70 61 72 61 74 65 6C 79 2E 0D ese separately..
002C80: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 ....... Re
002C90: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
002CA0: 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 46 .... GRA F
002CB0: 52 4F 4D 20 55 53 45 52 0D 0A 20 20 20 20 20 20 ROM USER..
002CC0: 20 47 52 41 20 4C 49 4E 45 20 41 42 53 4F 4C 55 GRA LINE ABSOLU
002CD0: 54 45 0D 0A 20 20 20 20 20 20 20 47 52 41 20 4C TE.. GRA L
002CE0: 49 4E 45 20 52 45 4C 41 54 49 56 45 0D 0A 20 20 INE RELATIVE..
002CF0: 20 20 20 20 20 53 43 52 20 48 4F 52 49 5A 4F 4E SCR HORIZON
002D00: 54 41 4C 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 TAL............
002D10: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
002D20: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
002D30: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
002D40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002D50: 20 70 61 67 65 20 31 35 2E 31 32 33 0D 0A 0D 0A page 15.123....
002D60: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
002D70: 20 31 31 39 3A 20 43 41 53 20 49 4E 49 54 49 41 119: CAS INITIA
002D80: 4C 49 53 45 20 20 20 20 20 20 20 20 20 20 20 20 LISE
002D90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002DA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002DB0: 20 20 23 42 43 36 35 0D 0A 0D 0A 0D 0A 20 20 20 #BC65......
002DC0: 20 20 20 20 49 6E 69 74 69 61 6C 69 7A 65 20 74 Initialize t
002DD0: 68 65 20 43 61 73 73 65 74 74 65 20 4D 61 6E 61 he Cassette Mana
002DE0: 67 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ger.......
002DF0: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 Action:......
002E00: 20 20 20 20 20 46 75 6C 6C 20 69 6E 69 74 69 61 Full initia
002E10: 6C 69 7A 61 74 69 6F 6E 20 6F 66 20 74 68 65 20 lization of the
002E20: 43 61 73 73 65 74 74 65 20 4D 61 6E 61 67 65 72 Cassette Manager
002E30: 20 28 61 73 20 75 73 65 64 20 64 75 72 69 6E 67 (as used during
002E40: 20 45 4D 53 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 EMS).......
002E50: 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 Entry conditi
002E60: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
002E70: 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D No conditions..
002E80: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
002E90: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
002EA0: 0D 0A 20 20 20 20 20 20 20 41 46 2C 42 43 2C 44 .. AF,BC,D
002EB0: 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 E and HL corrupt
002EC0: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
002ED0: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
002EE0: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
002EF0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
002F00: 0A 20 20 20 20 20 20 20 4F 70 65 72 61 74 69 6F . Operatio
002F10: 6E 73 20 63 61 72 72 69 65 64 20 6F 75 74 20 61 ns carried out a
002F20: 72 65 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 re:......
002F30: 20 20 20 20 20 20 20 20 20 41 6C 6C 20 73 74 72 All str
002F40: 65 61 6D 73 20 61 72 65 20 6D 61 72 6B 65 64 20 eams are marked
002F50: 63 6C 6F 73 65 64 2E 0D 0A 20 20 20 20 20 20 20 closed...
002F60: 20 20 20 20 20 20 20 20 20 54 68 65 20 64 65 66 The def
002F70: 61 75 6C 74 20 77 72 69 74 65 20 73 70 65 65 64 ault write speed
002F80: 20 69 73 20 73 65 74 20 75 70 2E 0D 0A 20 20 20 is set up...
002F90: 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 The
002FA0: 20 70 72 6F 6D 70 74 20 6D 65 73 73 61 67 65 73 prompt messages
002FB0: 20 61 72 65 20 74 75 72 6E 65 64 20 6F 66 66 2E are turned off.
002FC0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
002FD0: 20 20 54 68 65 20 63 61 73 73 65 74 74 65 20 6D The cassette m
002FE0: 6F 74 6F 72 20 69 73 20 74 75 72 6E 65 64 20 6F otor is turned o
002FF0: 66 66 20 28 65 78 63 65 70 74 20 6F 6E 20 56 31 ff (except on V1
003000: 2E 30 20 66 69 72 6D 77 61 72 65 29 2E 0D 0A 0D .0 firmware)....
003010: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
003020: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
003030: 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 .. CAS IN
003040: 41 42 41 4E 44 4F 4E 0D 0A 20 20 20 20 20 20 20 ABANDON..
003050: 43 41 53 20 4E 4F 49 53 59 0D 0A 20 20 20 20 20 CAS NOISY..
003060: 20 20 43 41 53 20 4F 55 54 20 41 42 41 4E 44 4F CAS OUT ABANDO
003070: 4E 0D 0A 20 20 20 20 20 20 20 43 41 53 20 53 45 N.. CAS SE
003080: 54 20 53 50 45 45 44 0D 0A 20 20 20 20 20 20 20 T SPEED..
003090: 43 41 53 20 53 54 4F 50 20 4D 4F 54 4F 52 0D 0A CAS STOP MOTOR..
0030A0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0030B0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
0030C0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
0030D0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
0030E0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
0030F0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
003100: 20 31 35 2E 31 32 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.124.........
003110: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 32 30 3A ..... 120:
003120: 20 43 41 53 20 53 45 54 20 53 50 45 45 44 20 20 CAS SET SPEED
003130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003150: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 #BC
003160: 36 38 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 68.... Set
003170: 20 74 68 65 20 77 72 69 74 65 20 73 70 65 65 64 the write speed
003180: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
003190: 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 on:.... Se
0031A0: 74 20 74 68 65 20 6C 65 6E 67 74 68 20 74 6F 20 t the length to
0031B0: 77 72 69 74 65 20 62 69 74 73 20 61 6E 64 20 74 write bits and t
0031C0: 68 65 20 61 6D 6F 75 6E 74 20 6F 66 20 20 77 72 he amount of wr
0031D0: 69 74 65 20 20 70 72 65 63 6F 6D 70 65 6E 73 61 ite precompensa
0031E0: 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 74 6F 20 tion.. to
0031F0: 61 70 70 6C 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 apply.....
003200: 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E Entry condition
003210: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 s:.... HL
003220: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 6C 65 6E contains the len
003230: 67 74 68 20 6F 66 20 68 61 6C 66 20 61 20 7A 65 gth of half a ze
003240: 72 6F 20 62 69 74 2E 0D 0A 20 20 20 20 20 20 20 ro bit...
003250: 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 A contains the p
003260: 72 65 63 6F 6D 70 65 6E 73 61 74 69 6F 6E 20 74 recompensation t
003270: 6F 20 61 70 70 6C 79 2E 0D 0A 0D 0A 20 20 20 20 o apply.....
003280: 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F Exit conditio
003290: 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 ns:.... AF
0032A0: 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E and HL corrupt.
0032B0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
0032C0: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
0032D0: 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 served.....
0032E0: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 Notes:....
0032F0: 20 20 20 54 68 65 20 73 70 65 65 64 20 73 75 70 The speed sup
003300: 70 6C 69 65 64 20 69 73 20 74 68 65 20 6C 65 6E plied is the len
003310: 67 74 68 20 6F 66 20 68 61 6C 66 20 61 20 7A 65 gth of half a ze
003320: 72 6F 20 62 69 74 20 69 6E 20 6D 69 63 72 6F 73 ro bit in micros
003330: 65 63 6F 6E 64 73 2E 20 41 0D 0A 20 20 20 20 20 econds. A..
003340: 20 20 6F 6E 65 20 62 69 74 20 69 73 20 77 72 69 one bit is wri
003350: 74 74 65 6E 20 61 73 20 74 77 69 63 65 20 74 68 tten as twice th
003360: 65 20 20 6C 65 6E 67 74 68 20 20 6F 66 20 20 61 e length of a
003370: 20 20 7A 65 72 6F 20 20 62 69 74 2E 20 20 54 68 zero bit. Th
003380: 65 20 20 73 70 65 65 64 0D 0A 20 20 20 20 20 20 e speed..
003390: 20 73 75 70 70 6C 69 65 64 20 63 61 6E 20 62 65 supplied can be
0033A0: 20 72 65 6C 61 74 65 64 20 74 6F 20 20 74 68 65 related to the
0033B0: 20 20 61 76 65 72 61 67 65 20 20 62 61 75 64 20 average baud
0033C0: 20 72 61 74 65 20 20 28 61 73 73 75 6D 69 6E 67 rate (assuming
0033D0: 20 20 65 71 75 61 6C 0D 0A 0D 0A 20 20 20 20 20 equal....
0033E0: 20 20 6E 75 6D 62 65 72 73 20 6F 66 20 6F 6E 65 numbers of one
0033F0: 73 20 61 6E 64 20 7A 65 72 6F 73 29 20 62 79 20 s and zeros) by
003400: 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 65 71 the following eq
003410: 75 61 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 uation:....
003420: 20 20 20 20 20 20 20 20 20 20 20 41 76 65 72 61 Avera
003430: 67 65 20 62 61 75 64 20 72 61 74 65 0D 0A 0D 0A ge baud rate....
003440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003450: 3D 20 31 20 30 30 30 20 30 30 30 20 2F 20 28 33 = 1 000 000 / (3
003460: 20 2A 20 48 61 6C 66 7A 65 72 6F 20 6C 65 6E 67 * Halfzero leng
003470: 74 68 29 0D 0A 20 20 20 20 20 20 20 20 20 20 20 th)..
003480: 20 20 20 20 20 3D 20 20 20 33 33 33 20 33 33 33 = 333 333
003490: 20 2F 20 48 61 6C 66 7A 65 72 6F 20 6C 65 6E 67 / Halfzero leng
0034A0: 74 68 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 th.... The
0034B0: 20 68 61 6C 66 7A 65 72 6F 20 6C 65 6E 67 74 68 halfzero length
0034C0: 20 6D 75 73 74 20 6C 69 65 20 62 65 74 77 65 65 must lie betwee
0034D0: 6E 20 31 33 30 20 61 6E 64 20 34 38 30 20 6D 69 n 130 and 480 mi
0034E0: 63 72 6F 73 65 63 6F 6E 64 73 2E 20 20 56 61 6C croseconds. Val
0034F0: 75 65 73 0D 0A 20 20 20 20 20 20 20 6F 75 74 73 ues.. outs
003500: 69 64 65 20 74 68 69 73 20 72 61 6E 67 65 20 77 ide this range w
003510: 69 6C 6C 20 63 61 75 73 65 20 72 65 61 64 20 61 ill cause read a
003520: 6E 64 20 77 72 69 74 65 20 65 72 72 6F 72 73 2E nd write errors.
003530: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 70 .... The p
003540: 72 65 63 6F 6D 70 65 6E 73 61 74 69 6F 6E 20 73 recompensation s
003550: 75 70 70 6C 69 65 64 20 69 73 20 74 68 65 20 65 upplied is the e
003560: 78 74 72 61 20 6C 65 6E 67 74 68 2C 20 69 6E 20 xtra length, in
003570: 6D 69 63 72 6F 73 65 63 6F 6E 64 73 2C 20 20 74 microseconds, t
003580: 6F 0D 0A 20 20 20 20 20 20 20 61 64 64 20 74 6F o.. add to
003590: 20 68 61 6C 66 20 61 20 6F 6E 65 20 62 69 74 20 half a one bit
0035A0: 61 6E 64 20 74 6F 20 73 75 62 74 72 61 63 74 20 and to subtract
0035B0: 20 66 72 6F 6D 20 20 68 61 6C 66 20 20 61 20 20 from half a
0035C0: 7A 65 72 6F 20 20 62 69 74 20 20 75 6E 64 65 72 zero bit under
0035D0: 0D 0A 20 20 20 20 20 20 20 63 65 72 74 61 69 6E .. certain
0035E0: 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 20 54 68 65 conditions. The
0035F0: 20 61 6D 6F 75 6E 74 20 6F 66 20 70 72 65 63 6F amount of preco
003600: 6D 70 65 6E 73 61 74 69 6F 6E 20 72 65 71 75 69 mpensation requi
003610: 72 65 64 20 76 61 72 69 65 73 20 77 69 74 68 0D red varies with.
003620: 0A 20 20 20 20 20 20 20 74 68 65 20 73 70 65 65 . the spee
003630: 64 20 28 6D 6F 72 65 20 69 73 20 72 65 71 75 69 d (more is requi
003640: 72 65 64 20 61 74 20 68 69 67 68 65 72 20 62 61 red at higher ba
003650: 75 64 20 72 61 74 65 73 29 2E 0D 0A 0D 0A 20 20 ud rates).....
003660: 20 20 20 20 20 54 68 65 20 70 72 65 63 6F 6D 70 The precomp
003670: 65 6E 73 61 74 69 6F 6E 20 6D 61 79 20 6C 69 65 ensation may lie
003680: 20 62 65 74 77 65 65 6E 20 30 20 61 6E 64 20 20 between 0 and
003690: 32 35 35 20 20 6D 69 63 72 6F 73 65 63 6F 6E 64 255 microsecond
0036A0: 73 20 20 61 6C 74 68 6F 75 67 68 0D 0A 20 20 20 s although..
0036B0: 20 20 20 20 74 68 65 20 68 69 67 68 65 72 20 73 the higher s
0036C0: 65 74 74 69 6E 67 73 20 61 72 65 20 6E 6F 74 20 ettings are not
0036D0: 75 73 65 66 75 6C 20 61 73 20 74 68 65 79 20 77 useful as they w
0036E0: 69 6C 6C 20 63 61 75 73 65 20 72 65 61 64 20 20 ill cause read
0036F0: 61 6E 64 20 20 77 72 69 74 65 0D 0A 20 20 20 20 and write..
003700: 20 20 20 65 72 72 6F 72 73 2E 0D 0A 0D 0A 20 20 errors.....
003710: 20 20 20 20 20 54 68 65 20 64 65 66 61 75 6C 74 The default
003720: 20 68 61 6C 66 20 7A 65 72 6F 20 6C 65 6E 67 74 half zero lengt
003730: 68 20 20 61 6E 64 20 20 70 72 65 63 6F 6D 70 65 h and precompe
003740: 6E 73 61 74 69 6F 6E 20 20 73 65 74 74 69 6E 67 nsation setting
003750: 73 20 20 61 72 65 20 20 33 33 33 0D 0A 20 20 20 s are 333..
003760: 20 20 20 20 6D 69 63 72 6F 73 65 63 6F 6E 64 73 microseconds
003770: 20 20 28 31 30 30 30 20 20 62 61 75 64 29 20 20 (1000 baud)
003780: 61 6E 64 20 20 32 35 20 20 6D 69 63 72 6F 73 65 and 25 microse
003790: 63 6F 6E 64 73 20 20 72 65 73 70 65 63 74 69 76 conds respectiv
0037A0: 65 6C 79 2E 20 20 20 54 68 65 0D 0A 20 20 20 20 ely. The..
0037B0: 20 20 20 63 6F 6D 6D 6F 6E 6C 79 20 75 73 65 64 commonly used
0037C0: 20 66 61 73 74 65 72 20 73 65 74 74 69 6E 67 20 faster setting
0037D0: 69 73 20 31 36 37 20 6D 69 63 72 6F 73 65 63 6F is 167 microseco
0037E0: 6E 64 73 20 28 32 30 30 30 20 62 61 75 64 29 20 nds (2000 baud)
0037F0: 20 77 69 74 68 20 20 35 30 0D 0A 20 20 20 20 20 with 50..
003800: 20 20 6D 69 63 72 6F 73 65 63 6F 6E 64 73 20 6F microseconds o
003810: 66 20 70 72 65 63 6F 6D 70 65 6E 73 61 74 69 6F f precompensatio
003820: 6E 2E 20 54 68 65 73 65 20 20 76 61 6C 75 65 73 n. These values
003830: 20 20 68 61 76 65 20 20 62 65 65 6E 20 20 64 65 have been de
003840: 74 65 72 6D 69 6E 65 64 0D 0A 20 20 20 20 20 20 termined..
003850: 20 61 66 74 65 72 20 65 78 74 65 6E 73 69 76 65 after extensive
003860: 20 74 65 73 74 69 6E 67 20 61 6E 64 20 74 68 65 testing and the
003870: 20 75 73 65 72 20 69 73 20 61 64 76 69 73 65 64 user is advised
003880: 20 74 6F 20 73 74 69 63 6B 20 74 6F 20 74 68 65 to stick to the
003890: 6D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C m..... Rel
0038A0: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
0038B0: 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E 49 54 . CAS INIT
0038C0: 49 41 4C 49 53 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A IALISE..........
0038D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
0038E0: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
0038F0: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
003900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003910: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 32 page 15.12
003920: 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 5..............
003930: 20 20 20 20 20 20 31 32 31 3A 20 43 41 53 20 4E 121: CAS N
003940: 4F 49 53 59 20 20 20 20 20 20 20 20 20 20 20 20 OISY
003950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003970: 20 20 20 20 20 20 20 23 42 43 36 42 0D 0A 0D 0A #BC6B....
003980: 0D 0A 20 20 20 20 20 20 20 45 6E 61 62 6C 65 20 .. Enable
003990: 6F 72 20 64 69 73 61 62 6C 65 20 70 72 6F 6D 70 or disable promp
0039A0: 74 20 6D 65 73 73 61 67 65 73 2E 0D 0A 0D 0A 0D t messages......
0039B0: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
0039C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 69 73 61 ..... Disa
0039D0: 62 6C 69 6E 67 20 6D 65 73 73 61 67 65 73 20 77 bling messages w
0039E0: 69 6C 6C 20 70 72 65 76 65 6E 74 20 74 68 65 20 ill prevent the
0039F0: 70 72 6F 6D 70 74 20 20 61 6E 64 20 20 69 6E 66 prompt and inf
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: 6F 72 6D 61 74 69 6F 6E 20 20 6D 65 73 73 61 67 ormation messag
003B10: 65 73 0D 0A 20 20 20 20 20 20 20 66 72 6F 6D 20 es.. from
003B20: 62 65 69 6E 67 20 70 72 69 6E 74 65 64 2E 20 49 being printed. I
003B30: 74 20 77 69 6C 6C 20 6E 6F 74 20 20 70 72 65 76 t will not prev
003B40: 65 6E 74 20 20 65 72 72 6F 72 20 20 6D 65 73 73 ent error mess
003B50: 61 67 65 73 20 20 66 72 6F 6D 20 20 62 65 69 6E ages from bein
003B60: 67 0D 0A 20 20 20 20 20 20 20 70 72 69 6E 74 65 g.. printe
003B70: 64 2E 20 45 6E 61 62 6C 69 6E 67 20 6D 65 73 73 d. Enabling mess
003B80: 61 67 65 73 20 61 6C 6C 6F 77 73 20 61 6C 6C 20 ages allows all
003B90: 6D 65 73 73 61 67 65 73 20 74 6F 20 62 65 20 70 messages to be p
003BA0: 72 69 6E 74 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 rinted.....
003BB0: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
003BC0: 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 ns:.... If
003BD0: 20 6D 65 73 73 61 67 65 73 20 61 72 65 20 74 6F messages are to
003BE0: 20 62 65 20 65 6E 61 62 6C 65 64 3A 0D 0A 0D 0A be enabled:....
003BF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003C00: 41 20 6D 75 73 74 20 62 65 20 7A 65 72 6F 2E 0D A must be zero..
003C10: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 6D 65 73 ... If mes
003C20: 73 61 67 65 73 20 61 72 65 20 74 6F 20 62 65 20 sages are to be
003C30: 64 69 73 61 62 6C 65 64 3A 0D 0A 0D 0A 20 20 20 disabled:....
003C40: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 6D A m
003C50: 75 73 74 20 62 65 20 6E 6F 6E 2D 7A 65 72 6F 2E ust be non-zero.
003C60: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
003C70: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
003C80: 20 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 74 AF corrupt
003C90: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
003CA0: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
003CB0: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
003CC0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
003CD0: 0A 20 20 20 20 20 20 20 54 68 65 20 70 72 6F 6D . The prom
003CE0: 70 74 20 61 6E 64 20 69 6E 66 6F 72 6D 61 74 69 pt and informati
003CF0: 6F 6E 20 6D 65 73 73 61 67 65 73 20 77 68 69 63 on messages whic
003D00: 68 20 61 72 65 20 74 75 72 6E 65 64 20 6F 66 66 h are turned off
003D10: 20 61 72 65 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 are:......
003D20: 20 20 20 20 20 20 20 20 20 20 20 50 72 65 73 73 Press
003D30: 20 50 4C 41 59 20 74 68 65 6E 20 61 6E 79 20 6B PLAY then any k
003D40: 65 79 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ey:..
003D50: 20 20 20 20 20 50 72 65 73 73 20 52 45 43 20 61 Press REC a
003D60: 6E 64 20 50 4C 41 59 20 74 68 65 6E 20 61 6E 79 nd PLAY then any
003D70: 20 6B 65 79 3A 0D 0A 20 20 20 20 20 20 20 20 20 key:..
003D80: 20 20 20 20 20 20 20 46 6F 75 6E 64 20 3C 46 49 Found <FI
003D90: 4C 45 4E 41 4D 45 3E 20 62 6C 6F 63 6B 20 3C 4E LENAME> block <N
003DA0: 3E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 >..
003DB0: 20 20 20 4C 6F 61 64 69 6E 67 20 3C 46 49 4C 45 Loading <FILE
003DC0: 4E 41 4D 45 3E 20 62 6C 6F 63 6B 20 3C 4E 3E 0D NAME> block <N>.
003DD0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
003DE0: 20 53 61 76 69 6E 67 20 3C 46 49 4C 45 4E 41 4D Saving <FILENAM
003DF0: 45 3E 20 62 6C 6F 63 6B 20 3C 4E 3E 0D 0A 0D 0A E> block <N>....
003E00: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 65 72 72 .. The err
003E10: 6F 72 20 6D 65 73 73 61 67 65 73 20 77 68 69 63 or messages whic
003E20: 68 20 61 72 65 20 6E 6F 74 20 74 75 72 6E 65 64 h are not turned
003E30: 20 6F 66 66 20 61 72 65 3A 0D 0A 0D 0A 0D 0A 20 off are:......
003E40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 R
003E50: 65 61 64 20 65 72 72 6F 72 20 3C 78 3E 0D 0A 20 ead error <x>..
003E60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 W
003E70: 72 69 74 65 20 65 72 72 6F 72 20 61 0D 0A 20 20 rite error a..
003E80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 Re
003E90: 77 69 6E 64 20 74 61 70 65 0D 0A 0D 0A 0D 0A 0D wind tape.......
003EA0: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
003EB0: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 entries:....
003EC0: 20 20 20 43 41 53 20 49 4E 49 54 49 41 4C 49 53 CAS INITIALIS
003ED0: 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 E............
003EE0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
003EF0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
003F00: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
003F10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
003F20: 61 67 65 20 31 35 2E 31 32 36 0D 0A 0D 0A 0D 0A age 15.126......
003F30: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
003F40: 32 32 3A 20 43 41 53 20 53 54 41 52 54 20 4D 4F 22: CAS START MO
003F50: 54 4F 52 20 20 20 20 20 20 20 20 20 20 20 20 20 TOR
003F60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003F70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
003F80: 23 42 43 36 45 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #BC6E......
003F90: 20 20 53 74 61 72 74 20 74 68 65 20 63 61 73 73 Start the cass
003FA0: 65 74 74 65 20 6D 6F 74 6F 72 2E 0D 0A 0D 0A 0D ette motor......
003FB0: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
003FC0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 75 72 6E ..... Turn
003FD0: 20 74 68 65 20 63 61 73 73 65 74 74 65 20 6D 6F the cassette mo
003FE0: 74 6F 72 20 6F 6E 20 61 6E 64 20 77 61 69 74 20 tor on and wait
003FF0: 66 6F 72 20 69 74 20 74 6F 20 70 69 63 6B 20 75 for it to pick u
004000: 70 20 73 70 65 65 64 20 69 66 20 69 74 20 20 77 p speed if it w
004010: 61 73 0D 0A 20 20 20 20 20 20 20 70 72 65 76 69 as.. previ
004020: 6F 75 73 6C 79 20 6F 66 66 2E 0D 0A 0D 0A 0D 0A ously off.......
004030: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
004040: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
004050: 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F No conditio
004060: 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns.......
004070: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
004080: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 ...... If
004090: 74 68 65 20 6D 6F 74 6F 72 20 74 75 72 6E 65 64 the motor turned
0040A0: 20 6F 6E 20 4F 4B 3A 0D 0A 0D 0A 20 20 20 20 20 on OK:....
0040B0: 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 Carry
0040C0: 20 74 72 75 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 true.....
0040D0: 20 49 66 20 74 68 65 20 75 73 65 72 20 68 69 74 If the user hit
0040E0: 20 65 73 63 61 70 65 3A 0D 0A 0D 0A 20 20 20 20 escape:....
0040F0: 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 Carr
004100: 79 20 66 61 6C 73 65 2E 0D 0A 0D 0A 20 20 20 20 y false.....
004110: 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A 20 20 Always:....
004120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 A
004130: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 72 65 contains the pre
004140: 76 69 6F 75 73 20 6D 6F 74 6F 72 20 73 74 61 74 vious motor stat
004150: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 e.....
004160: 20 20 20 20 20 20 4F 74 68 65 72 20 66 6C 61 67 Other flag
004170: 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 s corrupt...
004180: 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 All
004190: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
0041A0: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 preserved.....
0041B0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 Notes:....
0041C0: 20 20 20 20 20 20 49 66 20 20 74 68 65 20 20 6D If the m
0041D0: 6F 74 6F 72 20 20 69 73 20 20 6E 6F 74 20 20 61 otor is not a
0041E0: 6C 72 65 61 64 79 20 20 6F 6E 20 20 74 68 65 6E lready on then
0041F0: 20 20 74 68 65 20 20 72 6F 75 74 69 6E 65 20 20 the routine
004200: 20 77 61 69 74 73 20 20 20 66 6F 72 0D 0A 20 20 waits for..
004210: 20 20 20 20 20 61 70 70 72 6F 78 69 6D 61 74 65 approximate
004220: 6C 79 20 74 77 6F 20 73 65 63 6F 6E 64 73 20 74 ly two seconds t
004230: 6F 20 61 6C 6C 6F 77 20 74 68 65 20 74 61 70 65 o allow the tape
004240: 20 74 6F 20 72 65 61 63 68 20 66 75 6C 6C 20 73 to reach full s
004250: 70 65 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 peed.....
004260: 54 68 65 20 6D 6F 74 6F 72 20 69 73 20 61 6C 77 The motor is alw
004270: 61 79 73 20 74 75 72 6E 65 64 20 6F 6E 20 62 79 ays turned on by
004280: 20 74 68 69 73 20 72 6F 75 74 69 6E 65 2E 20 49 this routine. I
004290: 66 20 74 68 65 20 20 75 73 65 72 20 20 68 69 74 f the user hit
0042A0: 73 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 65 s the.. e
0042B0: 73 63 61 70 65 20 6B 65 79 20 74 68 65 6E 20 74 scape key then t
0042C0: 68 65 20 74 69 6D 65 20 73 70 65 6E 74 20 77 61 he time spent wa
0042D0: 69 74 69 6E 67 20 66 6F 72 20 74 68 65 20 6D 6F iting for the mo
0042E0: 74 6F 72 20 74 6F 20 70 69 63 6B 20 75 70 20 20 tor to pick up
0042F0: 73 70 65 65 64 0D 0A 20 20 20 20 20 20 20 69 73 speed.. is
004300: 20 74 72 75 6E 63 61 74 65 64 2E 0D 0A 0D 0A 20 truncated.....
004310: 20 20 20 20 20 20 54 68 65 20 70 72 65 76 69 6F The previo
004320: 75 73 20 6D 6F 74 6F 72 20 73 74 61 74 65 20 6D us motor state m
004330: 61 79 20 62 65 20 70 61 73 73 65 64 20 74 6F 20 ay be passed to
004340: 43 41 53 20 52 45 53 54 4F 52 45 20 4D 4F 54 4F CAS RESTORE MOTO
004350: 52 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 R.........
004360: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
004370: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 41 53 20 :.... CAS
004380: 52 45 53 54 4F 52 45 20 4D 4F 54 4F 52 0D 0A 20 RESTORE MOTOR..
004390: 20 20 20 20 20 20 43 41 53 20 53 54 4F 50 20 4D CAS STOP M
0043A0: 4F 54 4F 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A OTOR............
0043B0: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
0043C0: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
0043D0: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
0043E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0043F0: 20 20 70 61 67 65 20 31 35 2E 31 32 37 0D 0A 0D page 15.127...
004400: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
004410: 20 20 31 32 33 3A 20 43 41 53 20 53 54 4F 50 20 123: CAS STOP
004420: 4D 4F 54 4F 52 20 20 20 20 20 20 20 20 20 20 20 MOTOR
004430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004450: 20 20 20 23 42 43 37 31 0D 0A 0D 0A 0D 0A 20 20 #BC71......
004460: 20 20 20 20 20 53 74 6F 70 20 74 68 65 20 63 61 Stop the ca
004470: 73 73 65 74 74 65 20 6D 6F 74 6F 72 2E 0D 0A 0D ssette motor....
004480: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
004490: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 75 :...... Tu
0044A0: 72 6E 20 74 68 65 20 63 61 73 73 65 74 74 65 20 rn the cassette
0044B0: 6D 6F 74 6F 72 20 6F 66 66 20 61 6E 64 20 72 65 motor off and re
0044C0: 74 75 72 6E 20 69 74 73 20 70 72 65 76 69 6F 75 turn its previou
0044D0: 73 20 73 74 61 74 65 2E 0D 0A 0D 0A 0D 0A 20 20 s state.......
0044E0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
0044F0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
004500: 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 No conditions
004510: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
004520: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
004530: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 .... If th
004540: 65 20 6D 6F 74 6F 72 20 77 61 73 20 74 75 72 6E e motor was turn
004550: 65 64 20 6F 66 66 20 4F 4B 3A 0D 0A 0D 0A 0D 0A ed off OK:......
004560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004570: 43 61 72 72 79 20 74 72 75 65 2E 0D 0A 0D 0A 0D Carry true......
004580: 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 75 . If the u
004590: 73 65 72 20 68 69 74 20 65 73 63 61 70 65 3A 0D ser hit escape:.
0045A0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
0045B0: 20 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 Carry false
0045C0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C ....... Al
0045D0: 77 61 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ways:....
0045E0: 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 A conta
0045F0: 69 6E 73 20 74 68 65 20 70 72 65 76 69 6F 75 73 ins the previous
004600: 20 6D 6F 74 6F 72 20 73 74 61 74 65 2E 0D 0A 0D motor state....
004610: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
004620: 20 4F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 Other flags cor
004630: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 rupt...
004640: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
004650: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
004660: 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rved.....
004670: 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 Notes:......
004680: 20 20 20 54 68 65 20 6D 6F 74 6F 72 20 69 73 20 The motor is
004690: 61 6C 77 61 79 73 20 74 75 72 6E 65 64 20 6F 66 always turned of
0046A0: 66 20 62 79 20 74 68 69 73 20 72 6F 75 74 69 6E f by this routin
0046B0: 65 2E 20 54 68 65 72 65 20 69 73 20 6E 6F 20 20 e. There is no
0046C0: 64 65 6C 61 79 20 20 74 6F 0D 0A 20 20 20 20 20 delay to..
0046D0: 20 20 61 6C 6C 6F 77 20 74 68 65 20 6D 6F 74 6F allow the moto
0046E0: 72 20 74 6F 20 73 6C 6F 77 20 64 6F 77 6E 2E 0D r to slow down..
0046F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
004700: 70 72 65 76 69 6F 75 73 20 6D 6F 74 6F 72 20 73 previous motor s
004710: 74 61 74 65 20 6D 61 79 20 62 65 20 70 61 73 73 tate may be pass
004720: 65 64 20 74 6F 20 43 41 53 20 52 45 53 54 4F 52 ed to CAS RESTOR
004730: 45 20 4D 4F 54 4F 52 2E 0D 0A 0D 0A 0D 0A 20 20 E MOTOR.......
004740: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
004750: 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ries:....
004760: 43 41 53 20 52 45 53 54 4F 52 45 20 4D 4F 54 4F CAS RESTORE MOTO
004770: 52 0D 0A 20 20 20 20 20 20 20 43 41 53 20 53 54 R.. CAS ST
004780: 41 52 54 20 4D 4F 54 4F 52 0D 0A 0D 0A 0D 0A 0D ART MOTOR.......
004790: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
0047A0: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
0047B0: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
0047C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0047D0: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 page 15.1
0047E0: 32 38 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 28..............
0047F0: 20 20 20 20 20 20 20 31 32 34 3A 20 43 41 53 20 124: CAS
004800: 52 45 53 54 4F 52 45 20 4D 4F 54 4F 52 20 20 20 RESTORE MOTOR
004810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004830: 20 20 20 20 20 20 20 20 23 42 43 37 34 0D 0A 0D #BC74...
004840: 0A 0D 0A 20 20 20 20 20 20 20 52 65 73 74 6F 72 ... Restor
004850: 65 20 70 72 65 76 69 6F 75 73 20 73 74 61 74 65 e previous state
004860: 20 6F 66 20 63 61 73 73 65 74 74 65 20 6D 6F 74 of cassette mot
004870: 6F 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 or.......
004880: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
004890: 20 20 20 20 54 75 72 6E 20 74 68 65 20 63 61 73 Turn the cas
0048A0: 73 65 74 74 65 20 6D 6F 74 6F 72 20 6F 6E 20 6F sette motor on o
0048B0: 72 20 6F 66 66 20 61 67 61 69 6E 2E 20 57 61 69 r off again. Wai
0048C0: 74 20 66 6F 72 20 20 6D 6F 74 6F 72 20 20 74 6F t for motor to
0048D0: 20 20 70 69 63 6B 20 20 75 70 0D 0A 20 20 20 20 pick up..
0048E0: 20 20 20 73 70 65 65 64 20 77 68 65 6E 20 74 75 speed when tu
0048F0: 72 6E 69 6E 67 20 74 68 65 20 6D 6F 74 6F 72 20 rning the motor
004900: 6F 6E 20 69 66 20 69 74 20 69 73 20 63 75 72 72 on if it is curr
004910: 65 6E 74 6C 79 20 6F 66 66 2E 0D 0A 0D 0A 0D 0A ently off.......
004920: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
004930: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
004940: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
004950: 74 68 65 20 70 72 65 76 69 6F 75 73 20 6D 6F 74 the previous mot
004960: 6F 72 20 73 74 61 74 65 2E 0D 0A 0D 0A 0D 0A 20 or state.......
004970: 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 Exit condi
004980: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
004990: 20 20 20 49 66 20 74 68 65 20 6D 6F 74 6F 72 20 If the motor
0049A0: 77 61 73 20 74 75 72 6E 65 64 20 6F 6E 20 6F 72 was turned on or
0049B0: 20 6F 66 66 20 4F 4B 3A 0D 0A 0D 0A 0D 0A 20 20 off OK:......
0049C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 Ca
0049D0: 72 72 79 20 74 72 75 65 2E 0D 0A 0D 0A 20 20 20 rry true.....
0049E0: 20 20 20 20 49 66 20 74 68 65 20 75 73 65 72 20 If the user
0049F0: 68 69 74 20 65 73 63 61 70 65 3A 0D 0A 0D 0A 20 hit escape:....
004A00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
004A10: 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 0D 0A 0D arry false......
004A20: 0A 20 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D . Always:.
004A30: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
004A40: 20 20 20 41 20 61 6E 64 20 6F 74 68 65 72 20 66 A and other f
004A50: 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 lags corrupt...
004A60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
004A70: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
004A80: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
004A90: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
004AA0: 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F .. This ro
004AB0: 75 74 69 6E 65 20 75 73 65 73 20 74 68 65 20 70 utine uses the p
004AC0: 72 65 76 69 6F 75 73 20 6D 6F 74 6F 72 20 73 74 revious motor st
004AD0: 61 74 65 20 61 73 20 72 65 74 75 72 6E 65 64 20 ate as returned
004AE0: 20 62 79 20 20 43 41 53 20 20 53 54 41 52 54 0D by CAS START.
004AF0: 0A 20 20 20 20 20 20 20 4D 4F 54 4F 52 20 6F 72 . MOTOR or
004B00: 20 43 41 53 20 53 54 4F 50 20 4D 4F 54 4F 52 2E CAS STOP MOTOR.
004B10: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 63 61 .... If ca
004B20: 6C 6C 69 6E 67 20 74 68 69 73 20 72 6F 75 74 69 lling this routi
004B30: 6E 65 20 72 65 73 75 6C 74 73 20 69 6E 20 74 68 ne results in th
004B40: 65 20 6D 6F 74 6F 72 20 62 65 69 6E 67 20 74 75 e motor being tu
004B50: 72 6E 65 64 20 6F 6E 20 20 77 68 65 6E 20 20 69 rned on when i
004B60: 74 0D 0A 20 20 20 20 20 20 20 69 73 20 63 75 72 t.. is cur
004B70: 72 65 6E 74 6C 79 20 6F 66 66 20 74 68 65 6E 20 rently off then
004B80: 74 68 65 20 72 6F 75 74 69 6E 65 20 77 61 69 74 the routine wait
004B90: 73 20 66 6F 72 20 61 70 70 72 6F 78 69 6D 61 74 s for approximat
004BA0: 65 6C 79 20 74 77 6F 20 20 73 65 63 6F 6E 64 73 ely two seconds
004BB0: 0D 0A 20 20 20 20 20 20 20 74 6F 20 61 6C 6C 6F .. to allo
004BC0: 77 20 74 68 65 20 74 61 70 65 20 74 6F 20 72 65 w the tape to re
004BD0: 61 63 68 20 66 75 6C 6C 20 73 70 65 65 64 2E 0D ach full speed..
004BE0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6D 6F ... The mo
004BF0: 74 6F 72 20 69 73 20 61 6C 77 61 79 73 20 74 75 tor is always tu
004C00: 72 6E 65 64 20 6F 6E 20 6F 72 20 6F 66 66 20 28 rned on or off (
004C10: 61 73 20 61 70 70 72 6F 70 72 69 61 74 65 29 20 as appropriate)
004C20: 62 79 20 74 68 69 73 20 72 6F 75 74 69 6E 65 2E by this routine.
004C30: 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 .. If the
004C40: 75 73 65 72 20 68 69 74 73 20 74 68 65 20 65 73 user hits the es
004C50: 63 61 70 65 20 6B 65 79 20 74 68 65 6E 20 74 68 cape key then th
004C60: 69 73 20 6D 65 72 65 6C 79 20 20 74 72 75 6E 63 is merely trunc
004C70: 61 74 65 73 20 20 74 68 65 20 20 74 69 6D 65 0D ates the time.
004C80: 0A 20 20 20 20 20 20 20 73 70 65 6E 74 20 77 61 . spent wa
004C90: 69 74 69 6E 67 20 66 6F 72 20 74 68 65 20 6D 6F iting for the mo
004CA0: 74 6F 72 20 74 6F 20 70 69 63 6B 20 75 70 20 73 tor to pick up s
004CB0: 70 65 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 peed.....
004CC0: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
004CD0: 0D 0A 0D 0A 20 20 20 20 20 20 20 43 41 53 20 53 .... CAS S
004CE0: 54 41 52 54 20 4D 4F 54 4F 52 0D 0A 20 20 20 20 TART MOTOR..
004CF0: 20 20 20 43 41 53 20 53 54 4F 50 20 4D 4F 54 4F CAS STOP MOTO
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: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
004E10: 20 20 20 34 34 3A 20 54 58 54 20 43 55 52 20 4F 44: TXT CUR O
004E20: 46 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 FF
004E30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004E40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004E50: 20 20 20 20 23 42 42 38 34 0D 0A 0D 0A 0D 0A 0D #BB84.......
004E60: 0A 20 20 20 20 20 20 20 44 69 73 73 61 6C 6C 6F . Dissallo
004E70: 77 20 63 75 72 73 6F 72 20 64 69 73 70 6C 61 79 w cursor display
004E80: 20 2D 20 73 79 73 74 65 6D 2E 0D 0A 0D 0A 0D 0A - system.......
004E90: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
004EA0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 50 ........ P
004EB0: 72 65 76 65 6E 74 20 74 68 65 20 63 75 72 73 6F revent the curso
004EC0: 72 20 62 6C 6F 62 20 66 6F 72 20 74 68 65 20 63 r blob for the c
004ED0: 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 65 urrently selecte
004EE0: 64 20 73 74 72 65 61 6D 20 20 66 72 6F 6D 20 20 d stream from
004EF0: 62 65 69 6E 67 0D 0A 20 20 20 20 20 20 20 70 6C being.. pl
004F00: 61 63 65 64 20 6F 6E 20 74 68 65 20 73 63 72 65 aced on the scre
004F10: 65 6E 2E 20 54 68 65 20 63 75 72 73 6F 72 20 62 en. The cursor b
004F20: 6C 6F 62 20 77 69 6C 6C 20 62 65 20 72 65 6D 6F lob will be remo
004F30: 76 65 64 20 66 72 6F 6D 20 74 68 65 20 20 73 63 ved from the sc
004F40: 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 69 6D 6D reen.. imm
004F50: 65 64 69 61 74 65 6C 79 20 69 66 20 69 74 20 69 ediately if it i
004F60: 73 20 63 75 72 72 65 6E 74 6C 79 20 74 68 65 72 s currently ther
004F70: 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 e.........
004F80: 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E Entry condition
004F90: 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 s:........
004FA0: 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D No conditions..
004FB0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
004FC0: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
004FD0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C ...... All
004FE0: 20 72 65 67 69 73 74 65 72 73 20 61 6E 64 20 66 registers and f
004FF0: 6C 61 67 73 20 70 72 65 73 65 72 76 65 64 2E 0D lags preserved..
005000: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
005010: 74 65 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 tes:........
005020: 20 20 20 54 75 72 6E 69 6E 67 20 74 68 65 20 63 Turning the c
005030: 75 72 73 6F 72 20 6F 6E 20 61 6E 64 20 6F 66 66 ursor on and off
005040: 20 69 73 20 69 6E 74 65 6E 64 65 64 20 66 6F 72 is intended for
005050: 20 75 73 65 20 62 79 20 73 79 73 74 65 6D 20 52 use by system R
005060: 4F 4D 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 OMs.........
005070: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
005080: 65 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 es:........
005090: 20 20 54 58 54 20 41 53 4B 20 53 54 41 54 45 0D TXT ASK STATE.
0050A0: 0A 20 20 20 20 20 20 20 54 58 54 20 43 55 52 20 . TXT CUR
0050B0: 44 49 53 41 42 4C 45 0D 0A 20 20 20 20 20 20 20 DISABLE..
0050C0: 54 58 54 20 43 55 52 20 4F 4E 0D 0A 20 20 20 20 TXT CUR ON..
0050D0: 20 20 20 54 58 54 20 44 52 41 57 20 43 55 52 53 TXT DRAW CURS
0050E0: 4F 52 0D 0A 20 20 20 20 20 20 20 54 58 54 20 55 OR.. TXT U
0050F0: 4E 44 52 41 57 20 43 55 52 53 4F 52 0D 0A 0D 0A NDRAW CURSOR....
005100: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
005110: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
005120: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
005130: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
005140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005150: 20 70 61 67 65 20 31 35 2E 34 36 0D 0A 0D 0A 0D page 15.46.....
005160: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
005170: 34 35 3A 20 54 58 54 20 56 41 4C 49 44 41 54 45 45: TXT VALIDATE
005180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0051A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0051B0: 20 23 42 42 38 37 0D 0A 0D 0A 20 20 20 20 20 20 #BB87....
0051C0: 20 43 68 65 63 6B 20 69 66 20 61 20 63 75 72 73 Check if a curs
0051D0: 6F 72 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 77 or position is w
0051E0: 69 74 68 69 6E 20 74 68 65 20 77 69 6E 64 6F 77 ithin the window
0051F0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 ....... Ac
005200: 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 tion:....
005210: 43 68 65 63 6B 20 61 20 73 63 72 65 65 6E 20 70 Check a screen p
005220: 6F 73 69 74 69 6F 6E 20 74 6F 20 73 65 65 20 69 osition to see i
005230: 66 20 69 74 20 6C 69 65 73 20 77 69 74 68 69 6E f it lies within
005240: 20 74 68 65 20 20 63 75 72 72 65 6E 74 20 20 77 the current w
005250: 69 6E 64 6F 77 2E 0D 0A 20 20 20 20 20 20 20 49 indow... I
005260: 66 20 69 74 20 64 6F 65 73 20 6E 6F 74 20 74 68 f it does not th
005270: 65 6E 20 64 65 74 65 72 6D 69 6E 65 20 74 68 65 en determine the
005280: 20 70 6F 73 69 74 69 6F 6E 20 77 68 65 72 65 20 position where
005290: 61 20 63 68 61 72 61 63 74 65 72 20 77 6F 75 6C a character woul
0052A0: 64 20 20 62 65 0D 0A 20 20 20 20 20 20 20 70 72 d be.. pr
0052B0: 69 6E 74 65 64 20 61 66 74 65 72 20 61 70 70 6C inted after appl
0052C0: 79 69 6E 67 20 74 68 65 20 20 72 75 6C 65 73 20 ying the rules
0052D0: 20 66 6F 72 20 20 66 6F 72 63 69 6E 67 20 20 74 for forcing t
0052E0: 68 65 20 20 73 63 72 65 65 6E 20 20 70 6F 73 69 he screen posi
0052F0: 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 69 6E 73 tion.. ins
005300: 69 64 65 20 74 68 65 20 77 69 6E 64 6F 77 2E 0D ide the window..
005310: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
005320: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
005330: 20 20 20 20 20 20 48 20 63 6F 6E 74 61 69 6E 73 H contains
005340: 20 74 68 65 20 6C 6F 67 69 63 61 6C 20 63 6F 6C the logical col
005350: 75 6D 6E 20 6F 66 20 74 68 65 20 70 6F 73 69 74 umn of the posit
005360: 69 6F 6E 20 74 6F 20 63 68 65 63 6B 2E 0D 0A 20 ion to check...
005370: 20 20 20 20 20 20 4C 20 63 6F 6E 74 61 69 6E 73 L contains
005380: 20 74 68 65 20 6C 6F 67 69 63 61 6C 20 72 6F 77 the logical row
005390: 20 6F 66 20 74 68 65 20 70 6F 73 69 74 69 6F 6E of the position
0053A0: 20 74 6F 20 63 68 65 63 6B 2E 0D 0A 0D 0A 20 20 to check.....
0053B0: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
0053C0: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
0053D0: 49 66 20 70 72 69 6E 74 69 6E 67 20 61 74 20 74 If printing at t
0053E0: 68 65 20 70 6F 73 69 74 69 6F 6E 20 77 6F 75 6C he position woul
0053F0: 64 20 6E 6F 74 20 63 61 75 73 65 20 74 68 65 20 d not cause the
005400: 77 69 6E 64 6F 77 20 74 6F 20 72 6F 6C 6C 3A 0D window to roll:.
005410: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
005420: 20 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A Carry true...
005430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005440: 42 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 B corrupt.....
005450: 20 20 20 20 20 49 66 20 70 72 69 6E 74 69 6E 67 If printing
005460: 20 61 74 20 74 68 65 20 70 6F 73 69 74 69 6F 6E at the position
005470: 20 77 6F 75 6C 64 20 63 61 75 73 65 20 74 68 65 would cause the
005480: 20 77 69 6E 64 6F 77 20 74 6F 20 72 6F 6C 6C 20 window to roll
005490: 75 70 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 up:....
0054A0: 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C Carry fal
0054B0: 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 se...
0054C0: 20 20 20 20 20 42 20 63 6F 6E 74 61 69 6E 73 20 B contains
0054D0: 23 46 46 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 #FF..... I
0054E0: 66 20 70 72 69 6E 74 69 6E 67 20 61 74 20 74 68 f printing at th
0054F0: 65 20 70 6F 73 69 74 69 6F 6E 20 77 6F 75 6C 64 e position would
005500: 20 63 61 75 73 65 20 74 68 65 20 77 69 6E 64 6F cause the windo
005510: 77 20 74 6F 20 72 6F 6C 6C 20 64 6F 77 6E 3A 0D w to roll down:.
005520: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
005530: 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D Carry false..
005540: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
005550: 20 42 20 63 6F 6E 74 61 69 6E 73 20 23 30 30 2E B contains #00.
005560: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 79 .... Alway
005570: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s:....
005580: 20 20 20 20 20 20 48 20 63 6F 6E 74 61 69 6E 73 H contains
005590: 20 74 68 65 20 6C 6F 67 69 63 61 6C 20 63 6F 6C the logical col
0055A0: 75 6D 6E 20 61 74 20 77 68 69 63 68 20 61 20 63 umn at which a c
0055B0: 68 61 72 61 63 74 65 72 20 20 77 6F 75 6C 64 20 haracter would
0055C0: 20 62 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 be..
0055D0: 20 20 20 20 20 70 72 69 6E 74 65 64 2E 0D 0A 20 printed...
0055E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4C L
0055F0: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 6C 6F contains the lo
005600: 67 69 63 61 6C 20 72 6F 77 20 61 74 20 20 77 68 gical row at wh
005610: 69 63 68 20 20 61 20 20 63 68 61 72 61 63 74 65 ich a characte
005620: 72 20 20 77 6F 75 6C 64 20 20 62 65 0D 0A 20 20 r would be..
005630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 pr
005640: 69 6E 74 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 inted.....
005650: 20 20 20 20 20 20 20 20 20 20 41 20 61 6E 64 20 A and
005660: 6F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 other flags corr
005670: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 upt...
005680: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
005690: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
0056A0: 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ved.......
0056B0: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 Notes:......
0056C0: 20 20 20 20 54 68 65 20 70 6F 73 69 74 69 6F 6E The position
0056D0: 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 61 on the screen a
0056E0: 72 65 20 67 69 76 65 6E 20 69 6E 20 6C 6F 67 69 re given in logi
0056F0: 63 61 6C 20 63 6F 6F 72 64 69 6E 61 74 65 73 2E cal coordinates.
005700: 20 69 2E 65 2E 20 20 52 6F 77 0D 0A 20 20 20 20 i.e. Row..
005710: 20 20 20 31 2C 20 63 6F 6C 75 6D 6E 20 31 20 69 1, column 1 i
005720: 73 20 74 68 65 20 74 6F 70 20 6C 65 66 74 20 63 s the top left c
005730: 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 77 69 6E orner of the win
005740: 64 6F 77 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 dow.......
005750: 20 42 65 66 6F 72 65 20 77 72 69 74 69 6E 67 20 Before writing
005760: 61 20 63 68 61 72 61 63 74 65 72 20 6F 72 20 70 a character or p
005770: 75 74 74 69 6E 67 20 74 68 65 20 63 75 72 73 6F utting the curso
005780: 72 20 62 6C 6F 62 20 20 6F 6E 20 20 74 68 65 20 r blob on the
005790: 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 screen..
0057A0: 74 68 65 20 54 65 78 74 20 56 44 55 20 76 61 6C the Text VDU val
0057B0: 69 64 61 74 65 73 20 74 68 65 20 63 75 72 72 65 idates the curre
0057C0: 6E 74 20 20 70 6F 73 69 74 69 6F 6E 2C 20 20 70 nt position, p
0057D0: 65 72 66 6F 72 6D 73 20 20 61 6E 79 20 20 72 65 erforms any re
0057E0: 71 75 69 72 65 64 0D 0A 20 20 20 20 20 20 20 72 quired.. r
0057F0: 6F 6C 6C 20 74 68 65 6E 20 77 72 69 74 65 73 20 oll then writes
005800: 61 74 20 74 68 65 20 61 70 70 72 6F 70 72 69 61 at the appropria
005810: 74 65 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A te position.....
005820: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
005830: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
005840: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
005850: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005860: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
005870: 2E 34 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D .47.............
005880: 0A 20 20 20 20 20 20 20 54 68 65 20 61 6C 67 6F . The algo
005890: 72 69 74 68 6D 20 74 6F 20 77 6F 72 6B 20 6F 75 rithm to work ou
0058A0: 74 20 74 68 65 20 70 6F 73 69 74 69 6F 6E 20 74 t the position t
0058B0: 6F 20 70 72 69 6E 74 20 61 74 2C 20 66 72 6F 6D o print at, from
0058C0: 20 74 68 65 20 20 70 6F 73 69 74 69 6F 6E 0D 0A the position..
0058D0: 20 20 20 20 20 20 20 74 6F 20 63 68 65 63 6B 2C to check,
0058E0: 20 69 73 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D is as follows:.
0058F0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 2F ....... 1/
005900: 20 49 66 20 74 68 65 20 70 6F 73 69 74 69 6F 6E If the position
005910: 20 69 73 20 72 69 67 68 74 20 6F 66 20 74 68 65 is right of the
005920: 20 72 69 67 68 74 20 65 64 67 65 20 20 6F 66 20 right edge of
005930: 20 74 68 65 20 20 77 69 6E 64 6F 77 20 20 69 74 the window it
005940: 20 20 69 73 0D 0A 20 20 20 20 20 20 20 6D 6F 76 is.. mov
005950: 65 64 20 74 6F 20 74 68 65 20 6C 65 66 74 20 65 ed to the left e
005960: 64 67 65 20 6F 66 20 74 68 65 20 77 69 6E 64 6F dge of the windo
005970: 77 20 6F 6E 20 74 68 65 20 6E 65 78 74 20 6C 69 w on the next li
005980: 6E 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ne.........
005990: 20 20 32 2F 20 49 66 20 74 68 65 20 70 6F 73 69 2/ If the posi
0059A0: 74 69 6F 6E 20 69 73 20 6C 65 66 74 20 6F 66 20 tion is left of
0059B0: 74 68 65 20 6C 65 66 74 20 65 64 67 65 20 6F 66 the left edge of
0059C0: 20 74 68 65 20 77 69 6E 64 6F 77 20 69 74 20 69 the window it i
0059D0: 73 20 20 6D 6F 76 65 64 0D 0A 20 20 20 20 20 20 s moved..
0059E0: 20 74 6F 20 74 68 65 20 72 69 67 68 74 20 65 64 to the right ed
0059F0: 67 65 20 6F 66 20 74 68 65 20 77 69 6E 64 6F 77 ge of the window
005A00: 20 6F 6E 20 74 68 65 20 70 72 65 76 69 6F 75 73 on the previous
005A10: 20 6C 69 6E 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 line.........
005A20: 20 20 20 20 20 33 2F 20 49 66 20 74 68 65 20 70 3/ If the p
005A30: 6F 73 69 74 69 6F 6E 20 69 73 20 6E 6F 77 20 61 osition is now a
005A40: 62 6F 76 65 20 74 68 65 20 74 6F 70 20 65 64 67 bove the top edg
005A50: 65 20 6F 66 20 74 68 65 20 77 69 6E 64 6F 77 20 e of the window
005A60: 74 68 65 6E 20 69 74 20 20 69 73 0D 0A 20 20 20 then it is..
005A70: 20 20 20 20 6D 6F 76 65 64 20 74 6F 20 74 68 65 moved to the
005A80: 20 74 6F 70 20 65 64 67 65 20 6F 66 20 20 74 68 top edge of th
005A90: 65 20 20 77 69 6E 64 6F 77 20 20 61 6E 64 20 20 e window and
005AA0: 74 68 65 20 20 77 69 6E 64 6F 77 20 20 6E 65 65 the window nee
005AB0: 64 20 20 72 6F 6C 6C 69 6E 67 0D 0A 20 20 20 20 d rolling..
005AC0: 20 20 20 64 6F 77 6E 77 61 72 64 73 2E 0D 0A 0D downwards....
005AD0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 34 2F 20 49 ..... 4/ I
005AE0: 66 20 74 68 65 20 70 6F 73 69 74 69 6F 6E 20 69 f the position i
005AF0: 73 20 6E 6F 77 20 62 65 6C 6F 77 20 74 68 65 20 s now below the
005B00: 62 6F 74 74 6F 6D 20 65 64 67 65 20 6F 66 20 74 bottom edge of t
005B10: 68 65 20 20 77 69 6E 64 6F 77 20 20 69 74 20 20 he window it
005B20: 69 73 0D 0A 20 20 20 20 20 20 20 6D 6F 76 65 64 is.. moved
005B30: 20 74 6F 20 74 68 65 20 62 6F 74 74 6F 6D 20 65 to the bottom e
005B40: 64 67 65 20 6F 66 20 74 68 65 20 77 69 6E 64 6F dge of the windo
005B50: 77 20 61 6E 64 20 74 68 65 20 20 77 69 6E 64 6F w and the windo
005B60: 77 20 20 6E 65 65 64 73 20 20 72 6F 6C 6C 69 6E w needs rollin
005B70: 67 0D 0A 20 20 20 20 20 20 20 75 70 77 61 72 64 g.. upward
005B80: 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 s.........
005B90: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
005BA0: 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 :........
005BB0: 53 43 52 20 48 57 20 52 4F 4C 4C 0D 0A 20 20 20 SCR HW ROLL..
005BC0: 20 20 20 20 53 43 52 20 53 57 20 52 4F 4C 4C 0D SCR SW ROLL.
005BD0: 0A 20 20 20 20 20 20 20 54 58 54 20 47 45 54 20 . TXT GET
005BE0: 43 55 52 53 4F 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A CURSOR..........
005BF0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
005C00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
005C10: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
005C20: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
005C30: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
005C40: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
005C50: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
005C60: 65 20 31 35 2E 34 38 0D 0A 0D 0A 0D 0A 0D 0A 0D e 15.48.........
005C70: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 34 36 3A 20 ..... 46:
005C80: 54 58 54 20 50 4C 41 43 45 20 43 55 52 53 4F 52 TXT PLACE CURSOR
005C90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005CA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005CB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 42 #BB
005CC0: 38 41 0D 0A 0D 0A 20 20 20 20 20 20 20 50 75 74 8A.... Put
005CD0: 20 61 20 63 75 72 73 6F 72 20 62 6C 6F 62 20 6F a cursor blob o
005CE0: 6E 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D n the screen....
005CF0: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
005D00: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 50 75 :...... Pu
005D10: 74 20 61 20 63 75 72 73 6F 72 20 62 6C 6F 62 20 t a cursor blob
005D20: 6F 6E 20 20 74 68 65 20 20 73 63 72 65 65 6E 20 on the screen
005D30: 20 61 74 20 20 74 68 65 20 20 63 75 72 73 6F 72 at the cursor
005D40: 20 20 70 6F 73 69 74 69 6F 6E 20 20 66 6F 72 20 position for
005D50: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 63 75 72 the.. cur
005D60: 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 65 64 20 rently selected
005D70: 73 74 72 65 61 6D 2E 0D 0A 0D 0A 0D 0A 20 20 20 stream.......
005D80: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
005D90: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
005DA0: 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E No conditions.
005DB0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 ...... Exi
005DC0: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
005DD0: 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 63 6F 72 ... AF cor
005DE0: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C rupt... Al
005DF0: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
005E00: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
005E10: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
005E20: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 58 54 20 ..... TXT
005E30: 50 4C 41 43 45 20 43 55 52 53 4F 52 20 69 73 20 PLACE CURSOR is
005E40: 70 72 6F 76 69 64 65 64 20 74 6F 20 61 6C 6C 6F provided to allo
005E50: 77 20 74 68 65 20 75 73 65 72 20 74 6F 20 72 75 w the user to ru
005E60: 6E 20 6D 75 6C 74 69 70 6C 65 20 63 75 72 73 6F n multiple curso
005E70: 72 73 0D 0A 20 20 20 20 20 20 20 69 6E 20 61 20 rs.. in a
005E80: 77 69 6E 64 6F 77 2E 20 54 68 65 20 69 6E 64 69 window. The indi
005E90: 72 65 63 74 69 6F 6E 20 54 58 54 20 44 52 41 57 rection TXT DRAW
005EA0: 20 20 43 55 52 53 4F 52 20 20 73 68 6F 75 6C 64 CURSOR should
005EB0: 20 20 62 65 20 20 63 61 6C 6C 65 64 20 20 66 6F be called fo
005EC0: 72 0D 0A 20 20 20 20 20 20 20 6D 65 72 65 6C 79 r.. merely
005ED0: 20 70 6C 61 63 69 6E 67 20 74 68 65 20 6E 6F 72 placing the nor
005EE0: 6D 61 6C 20 63 75 72 73 6F 72 20 62 6C 6F 62 20 mal cursor blob
005EF0: 20 6F 6E 20 20 74 68 65 20 20 73 63 72 65 65 6E on the screen
005F00: 2E 20 20 48 69 67 68 65 72 20 20 6C 65 76 65 6C . Higher level
005F10: 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 6E 65 .. routine
005F20: 73 2C 20 73 75 63 68 20 61 73 20 54 58 54 20 4F s, such as TXT O
005F30: 55 54 50 55 54 20 61 6E 64 20 54 58 54 20 53 45 UTPUT and TXT SE
005F40: 54 20 43 55 52 53 4F 52 2C 20 61 75 74 6F 6D 61 T CURSOR, automa
005F50: 74 69 63 61 6C 6C 79 20 20 72 65 6D 6F 76 65 0D tically remove.
005F60: 0A 20 20 20 20 20 20 20 61 6E 64 20 70 6C 61 63 . and plac
005F70: 65 20 74 68 65 20 6E 6F 72 6D 61 6C 20 63 75 72 e the normal cur
005F80: 73 6F 72 20 77 68 65 6E 20 61 70 70 72 6F 70 72 sor when appropr
005F90: 69 61 74 65 2C 20 74 68 65 20 75 73 65 72 20 6D iate, the user m
005FA0: 75 73 74 20 64 65 61 6C 20 20 77 69 74 68 0D 0A ust deal with..
005FB0: 20 20 20 20 20 20 20 61 6E 79 20 6F 74 68 65 72 any other
005FC0: 20 63 75 72 73 6F 72 73 2E 0D 0A 0D 0A 0D 0A 20 cursors.......
005FD0: 20 20 20 20 20 20 49 74 20 69 73 20 6E 6F 74 20 It is not
005FE0: 73 61 66 65 20 74 6F 20 63 61 6C 6C 20 54 58 54 safe to call TXT
005FF0: 20 50 4C 41 43 45 20 43 55 52 53 4F 52 20 74 77 PLACE CURSOR tw
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: 69 63 65 20 61 74 20 61 20 20 70 61 72 74 69 63 ice at a partic
006110: 75 6C 61 72 20 20 73 63 72 65 65 6E 0D 0A 20 20 ular screen..
006120: 20 20 20 20 20 70 6F 73 69 74 69 6F 6E 20 77 69 position wi
006130: 74 68 6F 75 74 20 63 61 6C 6C 69 6E 67 20 54 58 thout calling TX
006140: 54 20 52 45 4D 4F 56 45 20 43 55 52 53 4F 52 20 T REMOVE CURSOR
006150: 69 6E 20 62 65 74 77 65 65 6E 20 62 65 63 61 75 in between becau
006160: 73 65 20 74 68 69 73 20 6D 61 79 0D 0A 20 20 20 se this may..
006170: 20 20 20 20 6C 65 61 76 65 20 61 20 73 70 75 72 leave a spur
006180: 69 6F 75 73 20 63 75 72 73 6F 72 20 62 6C 6F 62 ious cursor blob
006190: 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 77 on the screen w
0061A0: 68 65 6E 20 74 68 65 20 63 75 72 73 6F 72 20 70 hen the cursor p
0061B0: 6F 73 69 74 69 6F 6E 20 69 73 0D 0A 20 20 20 20 osition is..
0061C0: 20 20 20 6D 6F 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 moved.......
0061D0: 20 20 20 20 20 20 54 68 65 20 63 75 72 73 6F 72 The cursor
0061E0: 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 66 6F 72 position is for
0061F0: 63 65 64 20 74 6F 20 20 62 65 20 20 69 6E 73 69 ced to be insi
006200: 64 65 20 20 74 68 65 20 20 77 69 6E 64 6F 77 20 de the window
006210: 20 62 65 66 6F 72 65 20 20 74 68 65 0D 0A 20 20 before the..
006220: 20 20 20 20 20 63 75 72 73 6F 72 20 62 6C 6F 62 cursor blob
006230: 20 69 73 20 64 72 61 77 6E 2E 0D 0A 0D 0A 0D 0A is drawn.......
006240: 20 20 20 20 20 20 20 54 68 65 20 63 75 72 73 6F The curso
006250: 72 20 62 6C 6F 62 20 69 73 20 61 6E 20 69 6E 76 r blob is an inv
006260: 65 72 73 65 20 20 70 61 74 63 68 20 20 66 6F 72 erse patch for
006270: 6D 65 64 20 20 62 79 20 20 65 78 63 6C 75 73 69 med by exclusi
006280: 76 65 2D 6F 72 69 6E 67 20 20 74 68 65 0D 0A 20 ve-oring the..
006290: 20 20 20 20 20 20 63 6F 6E 74 65 6E 74 73 20 6F contents o
0062A0: 66 20 74 68 65 20 73 63 72 65 65 6E 20 61 74 20 f the screen at
0062B0: 74 68 65 20 63 75 72 73 6F 72 20 70 6F 73 69 74 the cursor posit
0062C0: 69 6F 6E 20 77 69 74 68 20 74 68 65 20 65 78 63 ion with the exc
0062D0: 6C 75 73 69 76 65 2D 6F 72 20 6F 66 0D 0A 20 20 lusive-or of..
0062E0: 20 20 20 20 20 74 68 65 20 63 75 72 72 65 6E 74 the current
0062F0: 20 70 65 6E 20 61 6E 64 20 70 61 70 65 72 20 69 pen and paper i
006300: 6E 6B 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 nks..... R
006310: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
006320: 0A 0D 0A 20 20 20 20 20 20 20 54 58 54 20 44 52 ... TXT DR
006330: 41 57 20 43 55 52 53 4F 52 0D 0A 20 20 20 20 20 AW CURSOR..
006340: 20 20 54 58 54 20 52 45 4D 4F 56 45 20 43 55 52 TXT REMOVE CUR
006350: 53 4F 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 SOR............
006360: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
006370: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
006380: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
006390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0063A0: 20 20 70 61 67 65 20 31 35 2E 34 39 0D 0A 0D 0A page 15.49....
0063B0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
0063C0: 20 34 37 3A 20 54 58 54 20 52 45 4D 4F 56 45 20 47: TXT REMOVE
0063D0: 43 55 52 53 4F 52 20 20 20 20 20 20 20 20 20 20 CURSOR
0063E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0063F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006400: 20 20 23 42 42 38 44 0D 0A 0D 0A 20 20 20 20 20 #BB8D....
006410: 20 20 54 61 6B 65 20 61 20 63 75 72 73 6F 72 20 Take a cursor
006420: 62 6C 6F 62 20 6F 66 66 20 74 68 65 20 73 63 72 blob off the scr
006430: 65 65 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 een..... A
006440: 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 ction:....
006450: 20 54 61 6B 65 20 74 68 65 20 63 75 72 73 6F 72 Take the cursor
006460: 20 62 6C 6F 62 20 6F 66 66 20 74 68 65 20 73 63 blob off the sc
006470: 72 65 65 6E 20 61 74 20 20 74 68 65 20 20 63 75 reen at the cu
006480: 72 73 6F 72 20 20 70 6F 73 69 74 69 6F 6E 20 20 rsor position
006490: 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 of the..
0064A0: 63 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 currently select
0064B0: 65 64 20 73 74 72 65 61 6D 2E 0D 0A 0D 0A 20 20 ed stream.....
0064C0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
0064D0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tions:....
0064E0: 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D No conditions..
0064F0: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
006500: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
006510: 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 74 2E AF corrupt.
006520: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
006530: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
006540: 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 served.....
006550: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
006560: 20 20 20 20 20 54 58 54 20 52 45 4D 4F 56 45 20 TXT REMOVE
006570: 43 55 52 53 4F 52 20 69 73 20 70 72 6F 76 69 64 CURSOR is provid
006580: 65 64 20 20 74 6F 20 20 61 6C 6C 6F 77 20 20 74 ed to allow t
006590: 68 65 20 20 75 73 65 72 20 20 74 6F 20 20 72 75 he user to ru
0065A0: 6E 20 20 6D 75 6C 74 69 70 6C 65 0D 0A 20 20 20 n multiple..
0065B0: 20 20 20 20 63 75 72 73 6F 72 73 20 69 6E 20 61 cursors in a
0065C0: 20 77 69 6E 64 6F 77 2E 20 54 68 65 20 20 69 6E window. The in
0065D0: 64 69 72 65 63 74 69 6F 6E 20 20 54 58 54 20 20 direction TXT
0065E0: 55 4E 44 52 41 57 20 20 43 55 52 53 4F 52 20 20 UNDRAW CURSOR
0065F0: 73 68 6F 75 6C 64 20 20 62 65 0D 0A 20 20 20 20 should be..
006600: 20 20 20 63 61 6C 6C 65 64 20 66 6F 72 20 6D 65 called for me
006610: 72 65 6C 79 20 72 65 6D 6F 76 69 6E 67 20 74 68 rely removing th
006620: 65 20 6E 6F 72 6D 61 6C 20 66 72 6F 6D 20 74 68 e normal from th
006630: 65 20 20 73 63 72 65 65 6E 2E 20 20 48 69 67 68 e screen. High
006640: 65 72 20 20 6C 65 76 65 6C 0D 0A 20 20 20 20 20 er level..
006650: 20 20 72 6F 75 74 69 6E 65 73 2C 20 73 75 63 68 routines, such
006660: 20 61 73 20 54 58 54 20 4F 55 54 50 55 54 20 61 as TXT OUTPUT a
006670: 6E 64 20 54 58 54 20 53 45 54 20 43 55 52 53 4F nd TXT SET CURSO
006680: 52 2C 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 R, automatically
006690: 20 20 72 65 6D 6F 76 65 0D 0A 20 20 20 20 20 20 remove..
0066A0: 20 61 6E 64 20 70 6C 61 63 65 20 74 68 65 20 6E and place the n
0066B0: 6F 72 6D 61 6C 20 63 75 72 73 6F 72 20 77 68 65 ormal cursor whe
0066C0: 6E 20 61 70 70 72 6F 70 72 69 61 74 65 2C 20 74 n appropriate, t
0066D0: 68 65 20 75 73 65 72 20 6D 75 73 74 20 64 65 61 he user must dea
0066E0: 6C 20 20 77 69 74 68 0D 0A 20 20 20 20 20 20 20 l with..
0066F0: 61 6E 79 20 6F 74 68 65 72 20 63 75 72 73 6F 72 any other cursor
006700: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s....... T
006710: 58 54 20 52 45 4D 4F 56 45 20 43 55 52 53 4F 52 XT REMOVE CURSOR
006720: 20 73 68 6F 75 6C 64 20 6F 6E 6C 79 20 62 65 20 should only be
006730: 75 73 65 64 20 74 6F 20 72 65 6D 6F 76 65 20 61 used to remove a
006740: 20 63 75 72 73 6F 72 20 70 6C 61 63 65 64 20 6F cursor placed o
006750: 6E 20 74 68 65 0D 0A 20 20 20 20 20 20 20 73 63 n the.. sc
006760: 72 65 65 6E 20 62 79 20 63 61 6C 6C 69 6E 67 20 reen by calling
006770: 54 58 54 20 50 4C 41 43 45 20 43 55 52 53 4F 52 TXT PLACE CURSOR
006780: 2E 20 54 68 65 20 63 75 72 73 6F 72 20 73 68 6F . The cursor sho
006790: 75 6C 64 20 62 65 20 72 65 6D 6F 76 65 64 20 20 uld be removed
0067A0: 77 68 65 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 when.. the
0067B0: 20 63 75 72 73 6F 72 20 70 6F 73 69 74 69 6F 6E cursor position
0067C0: 20 69 73 20 74 6F 20 62 65 20 63 68 61 6E 67 65 is to be change
0067D0: 64 20 28 72 6F 6C 6C 69 6E 67 20 20 74 68 65 20 d (rolling the
0067E0: 20 77 69 6E 64 6F 77 20 20 69 6D 70 6C 69 63 69 window implici
0067F0: 74 6C 79 0D 0A 20 20 20 20 20 20 20 63 68 61 6E tly.. chan
006800: 67 65 73 20 74 68 65 20 63 75 72 73 6F 72 20 70 ges the cursor p
006810: 6F 73 69 74 69 6F 6E 29 20 6F 72 20 74 68 65 20 osition) or the
006820: 73 63 72 65 65 6E 20 20 69 73 20 20 74 6F 20 20 screen is to
006830: 72 65 61 64 20 20 6F 72 20 20 77 72 69 74 74 65 read or writte
006840: 6E 2E 0D 0A 20 20 20 20 20 20 20 49 6E 63 6F 72 n... Incor
006850: 72 65 63 74 20 75 73 65 20 6F 66 20 74 68 69 73 rect use of this
006860: 20 72 6F 75 74 69 6E 65 20 6D 61 79 20 72 65 73 routine may res
006870: 75 6C 74 20 69 6E 20 20 61 20 20 73 70 75 72 69 ult in a spuri
006880: 6F 75 73 20 20 63 75 72 73 6F 72 20 20 62 6C 6F ous cursor blo
006890: 62 0D 0A 20 20 20 20 20 20 20 62 65 69 6E 67 20 b.. being
0068A0: 67 65 6E 65 72 61 74 65 64 2E 0D 0A 0D 0A 0D 0A generated.......
0068B0: 20 20 20 20 20 20 20 54 68 65 20 63 75 72 73 6F The curso
0068C0: 72 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 66 6F r position is fo
0068D0: 72 63 65 64 20 74 6F 20 20 62 65 20 20 69 6E 73 rced to be ins
0068E0: 69 64 65 20 20 74 68 65 20 20 77 69 6E 64 6F 77 ide the window
0068F0: 20 20 62 65 66 6F 72 65 20 20 74 68 65 0D 0A 20 before the..
006900: 20 20 20 20 20 20 63 75 72 73 6F 72 20 62 6C 6F cursor blo
006910: 62 20 69 73 20 72 65 6D 6F 76 65 64 20 28 74 68 b is removed (th
006920: 69 73 20 73 68 6F 75 6C 64 20 6E 6F 74 20 6D 61 is should not ma
006930: 74 74 65 72 20 61 73 20 54 58 54 20 50 4C 41 43 tter as TXT PLAC
006940: 45 20 43 55 52 53 4F 52 20 68 61 73 0D 0A 20 20 E CURSOR has..
006950: 20 20 20 20 20 61 6C 72 65 61 64 79 20 64 6F 6E already don
006960: 65 20 74 68 69 73 29 2E 0D 0A 0D 0A 0D 0A 20 20 e this).......
006970: 20 20 20 20 20 54 68 65 20 63 75 72 73 6F 72 20 The cursor
006980: 62 6C 6F 62 20 69 73 20 61 6E 20 69 6E 76 65 72 blob is an inver
006990: 73 65 20 20 70 61 74 63 68 20 20 66 6F 72 6D 65 se patch forme
0069A0: 64 20 20 62 79 20 20 65 78 63 6C 75 73 69 76 65 d by exclusive
0069B0: 2D 6F 72 69 6E 67 20 20 74 68 65 0D 0A 20 20 20 -oring the..
0069C0: 20 20 20 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 contents of
0069D0: 74 68 65 20 73 63 72 65 65 6E 20 61 74 20 74 68 the screen at th
0069E0: 65 20 63 75 72 73 6F 72 20 70 6F 73 69 74 69 6F e cursor positio
0069F0: 6E 20 77 69 74 68 20 74 68 65 20 65 78 63 6C 75 n with the exclu
006A00: 73 69 76 65 2D 6F 72 20 6F 66 0D 0A 20 20 20 20 sive-or of..
006A10: 20 20 20 74 68 65 20 63 75 72 72 65 6E 74 20 70 the current p
006A20: 65 6E 20 61 6E 64 20 70 61 70 65 72 20 69 6E 6B en and paper ink
006A30: 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A s...............
006A40: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
006A50: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 ntries:....
006A60: 20 20 54 58 54 20 50 4C 41 43 45 20 43 55 52 53 TXT PLACE CURS
006A70: 4F 52 0D 0A 20 20 20 20 20 20 20 54 58 54 20 55 OR.. TXT U
006A80: 4E 44 52 41 57 20 43 55 52 53 4F 52 0D 0A 0D 0A NDRAW CURSOR....
006A90: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
006AA0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
006AB0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
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 70 61 67 65 20 31 35 page 15
006AE0: 2E 35 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D .50.............
006AF0: 0A 20 20 20 20 20 20 20 34 38 3A 20 54 58 54 20 . 48: TXT
006B00: 53 45 54 20 50 45 4E 20 20 20 20 20 20 20 20 20 SET PEN
006B10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006B20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006B30: 20 20 20 20 20 20 20 20 20 23 42 42 39 30 0D 0A #BB90..
006B40: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 ...... Set
006B50: 20 69 6E 6B 20 66 6F 72 20 77 72 69 74 69 6E 67 ink for writing
006B60: 20 63 68 61 72 61 63 74 65 72 73 2E 0D 0A 0D 0A characters.....
006B70: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F .... Actio
006B80: 6E 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 n:........
006B90: 20 53 65 74 20 74 68 65 20 70 65 6E 20 69 6E 6B Set the pen ink
006BA0: 20 66 6F 72 20 74 68 65 20 63 75 72 72 65 6E 74 for the current
006BB0: 6C 79 20 73 65 6C 65 63 74 65 64 20 73 74 72 65 ly selected stre
006BC0: 61 6D 2E 20 20 54 68 69 73 20 20 69 73 20 20 74 am. This is t
006BD0: 68 65 20 20 69 6E 6B 0D 0A 20 20 20 20 20 20 20 he ink..
006BE0: 74 68 61 74 20 69 73 20 75 73 65 64 20 66 6F 72 that is used for
006BF0: 20 77 72 69 74 69 6E 67 20 63 68 61 72 61 63 74 writing charact
006C00: 65 72 73 20 28 74 68 65 20 66 6F 72 65 67 72 6F ers (the foregro
006C10: 75 6E 64 20 69 6E 6B 29 2E 0D 0A 0D 0A 0D 0A 0D und ink)........
006C20: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
006C30: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 0D nditions:.......
006C40: 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 . A contai
006C50: 6E 73 20 69 6E 6B 20 74 6F 20 75 73 65 2E 0D 0A ns ink to use...
006C60: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 ...... Exi
006C70: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
006C80: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 61 ..... AF a
006C90: 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A nd HL corrupt...
006CA0: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
006CB0: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
006CC0: 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 rved.........
006CD0: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A Notes:......
006CE0: 20 20 20 20 20 20 20 54 68 65 20 69 6E 6B 20 69 The ink i
006CF0: 73 20 6D 61 73 6B 65 64 20 74 6F 20 62 72 69 6E s masked to brin
006D00: 67 20 69 74 20 77 69 74 68 69 6E 20 74 68 65 20 g it within the
006D10: 72 61 6E 67 65 20 6F 66 20 6C 65 67 61 6C 20 69 range of legal i
006D20: 6E 6B 73 20 20 66 6F 72 20 20 74 68 65 0D 0A 20 nks for the..
006D30: 20 20 20 20 20 20 63 75 72 72 65 6E 74 20 73 63 current sc
006D40: 72 65 65 6E 20 6D 6F 64 65 2E 20 54 68 61 74 20 reen mode. That
006D50: 69 73 20 77 69 74 68 20 23 30 46 20 69 6E 20 6D is with #0F in m
006D60: 6F 64 65 20 30 2C 20 23 30 33 20 69 6E 20 6D 6F ode 0, #03 in mo
006D70: 64 65 20 31 20 61 6E 64 20 23 30 31 0D 0A 20 20 de 1 and #01..
006D80: 20 20 20 20 20 69 6E 20 6D 6F 64 65 20 32 2E 0D in mode 2..
006D90: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
006DA0: 63 75 72 73 6F 72 20 62 6C 6F 62 20 77 69 6C 6C cursor blob will
006DB0: 20 62 65 20 72 65 64 72 61 77 6E 20 75 73 69 6E be redrawn usin
006DC0: 67 20 74 68 65 20 6E 65 77 20 69 6E 6B 20 28 69 g the new ink (i
006DD0: 66 20 65 6E 61 62 6C 65 64 29 2E 0D 0A 0D 0A 0D f enabled)......
006DE0: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
006DF0: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
006E00: 20 20 20 20 20 47 52 41 20 53 45 54 20 50 45 4E GRA SET PEN
006E10: 0D 0A 20 20 20 20 20 20 20 53 43 52 20 53 45 54 .. SCR SET
006E20: 20 49 4E 4B 0D 0A 20 20 20 20 20 20 20 54 58 54 INK.. TXT
006E30: 20 47 45 54 20 50 45 4E 0D 0A 20 20 20 20 20 20 GET PEN..
006E40: 20 54 58 54 20 53 45 54 20 50 41 50 45 52 0D 0A TXT SET PAPER..
006E50: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
006E60: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
006E70: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
006E80: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
006E90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006EA0: 20 70 61 67 65 20 31 35 2E 35 31 0D 0A 0D 0A 0D page 15.51.....
006EB0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
006EC0: 34 39 3A 20 54 58 54 20 47 45 54 20 50 45 4E 20 49: TXT GET PEN
006ED0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006EE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006EF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006F00: 20 23 42 42 39 33 0D 0A 0D 0A 0D 0A 20 20 20 20 #BB93......
006F10: 20 20 20 47 65 74 20 69 6E 6B 20 66 6F 72 20 77 Get ink for w
006F20: 72 69 74 69 6E 67 20 63 68 61 72 61 63 74 65 72 riting character
006F30: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 s....... A
006F40: 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 ction:......
006F50: 20 20 20 41 73 6B 20 77 68 61 74 20 74 68 65 20 Ask what the
006F60: 70 65 6E 20 69 6E 6B 20 69 73 20 73 65 74 20 74 pen ink is set t
006F70: 6F 20 66 6F 72 20 74 68 65 20 63 75 72 72 65 6E o for the curren
006F80: 74 6C 79 20 73 65 6C 65 63 74 65 64 20 73 74 72 tly selected str
006F90: 65 61 6D 2E 20 54 68 69 73 0D 0A 20 20 20 20 20 eam. This..
006FA0: 20 20 69 73 20 74 68 65 20 69 6E 6B 20 75 73 65 is the ink use
006FB0: 64 20 66 6F 72 20 77 72 69 74 69 6E 67 20 63 68 d for writing ch
006FC0: 61 72 61 63 74 65 72 73 20 28 66 6F 72 65 67 72 aracters (foregr
006FD0: 6F 75 6E 64 20 69 6E 6B 29 2E 0D 0A 0D 0A 0D 0A ound ink).......
006FE0: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
006FF0: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
007000: 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F No conditio
007010: 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns.......
007020: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
007030: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 ...... A c
007040: 6F 6E 74 61 69 6E 73 20 74 68 65 20 69 6E 6B 2E ontains the ink.
007050: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 6C 61 ...... Fla
007060: 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 gs corrupt...
007070: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
007080: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
007090: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E d....... N
0070A0: 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 otes:......
0070B0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 68 This routine h
0070C0: 61 73 20 6E 6F 20 6F 74 68 65 72 20 65 66 66 65 as no other effe
0070D0: 63 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 cts.........
0070E0: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
0070F0: 65 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 es:........
007100: 20 20 47 52 41 20 47 45 54 20 50 45 4E 0D 0A 20 GRA GET PEN..
007110: 20 20 20 20 20 20 53 43 52 20 47 45 54 20 49 4E SCR GET IN
007120: 4B 0D 0A 20 20 20 20 20 20 20 54 58 54 20 47 45 K.. TXT GE
007130: 54 20 50 41 50 45 52 0D 0A 20 20 20 20 20 20 20 T PAPER..
007140: 54 58 54 20 53 45 54 20 50 45 4E 0D 0A 0D 0A 0D TXT SET PEN.....
007150: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
007160: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
007170: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
007180: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
007190: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
0071A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
0071B0: 67 65 20 31 35 2E 35 32 0D 0A 0D 0A 0D 0A 0D 0A ge 15.52........
0071C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 35 30 3A ...... 50:
0071D0: 20 54 58 54 20 53 45 54 20 50 41 50 45 52 20 20 TXT SET PAPER
0071E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0071F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
007210: 42 39 36 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 B96......
007220: 53 65 74 20 69 6E 6B 20 66 6F 72 20 77 72 69 74 Set ink for writ
007230: 69 6E 67 20 74 65 78 74 20 62 61 63 6B 67 72 6F ing text backgro
007240: 75 6E 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 und.......
007250: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 Action:......
007260: 20 20 20 20 20 53 65 74 20 74 68 65 20 74 65 78 Set the tex
007270: 74 20 70 61 70 65 72 20 69 6E 6B 20 66 6F 72 20 t paper ink for
007280: 74 68 65 20 63 75 72 72 65 6E 74 6C 79 20 73 65 the currently se
007290: 6C 65 63 74 65 64 20 73 74 72 65 61 6D 2E 20 54 lected stream. T
0072A0: 68 69 73 20 69 73 20 20 74 68 65 0D 0A 20 20 20 his is the..
0072B0: 20 20 20 20 69 6E 6B 20 75 73 65 64 20 66 6F 72 ink used for
0072C0: 20 77 72 69 74 69 6E 67 20 74 68 65 20 62 61 63 writing the bac
0072D0: 6B 67 72 6F 75 6E 64 20 74 6F 20 63 68 61 72 61 kground to chara
0072E0: 63 74 65 72 73 20 61 6E 64 20 66 6F 72 20 63 6C cters and for cl
0072F0: 65 61 72 69 6E 67 20 74 68 65 0D 0A 20 20 20 20 earing the..
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 74 65 78 74 20 77 69 6E 64 6F 77 2E 0D text window..
007410: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
007420: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
007430: 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 ... A cont
007440: 61 69 6E 73 20 74 68 65 20 69 6E 6B 20 74 6F 20 ains the ink to
007450: 75 73 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 use.......
007460: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
007470: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
007480: 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E and HL corrupt.
007490: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
0074A0: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
0074B0: 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 served.......
0074C0: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A Notes:......
0074D0: 20 20 20 20 20 20 20 54 68 65 20 69 6E 6B 20 69 The ink i
0074E0: 73 20 6D 61 73 6B 65 64 20 74 6F 20 62 72 69 6E s masked to brin
0074F0: 67 20 69 74 20 77 69 74 68 69 6E 20 74 68 65 20 g it within the
007500: 72 61 6E 67 65 20 6F 66 20 6C 65 67 61 6C 20 69 range of legal i
007510: 6E 6B 73 20 20 66 6F 72 20 20 74 68 65 0D 0A 20 nks for the..
007520: 20 20 20 20 20 20 63 75 72 72 65 6E 74 20 73 63 current sc
007530: 72 65 65 6E 20 6D 6F 64 65 2E 20 54 68 61 74 20 reen mode. That
007540: 69 73 20 77 69 74 68 20 23 30 46 20 69 6E 20 6D is with #0F in m
007550: 6F 64 65 20 30 2C 20 23 30 33 20 69 6E 20 6D 6F ode 0, #03 in mo
007560: 64 65 20 31 20 61 6E 64 20 23 30 31 0D 0A 20 20 de 1 and #01..
007570: 20 20 20 20 20 69 6E 20 6D 6F 64 65 20 32 2E 0D in mode 2..
007580: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
007590: 63 75 72 73 6F 72 20 62 6C 6F 62 20 77 69 6C 6C cursor blob will
0075A0: 20 62 65 20 72 65 64 72 61 77 6E 20 75 73 69 6E be redrawn usin
0075B0: 67 20 74 68 65 20 6E 65 77 20 69 6E 6B 20 28 69 g the new ink (i
0075C0: 66 20 65 6E 61 62 6C 65 64 29 2E 0D 0A 0D 0A 0D f enabled)......
0075D0: 0A 20 20 20 20 20 20 20 54 68 69 73 20 69 6E 6B . This ink
0075E0: 20 77 69 6C 6C 20 62 65 20 75 73 65 64 20 77 68 will be used wh
0075F0: 65 6E 20 63 6C 65 61 72 69 6E 67 20 61 72 65 61 en clearing area
007600: 73 20 6F 66 20 74 68 65 20 74 65 78 74 20 77 69 s of the text wi
007610: 6E 64 6F 77 20 20 28 62 79 20 20 54 58 54 0D 0A ndow (by TXT..
007620: 20 20 20 20 20 20 20 43 4C 45 41 52 20 57 49 4E CLEAR WIN
007630: 44 4F 57 20 61 6E 64 20 63 65 72 74 61 69 6E 20 DOW and certain
007640: 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 29 2E 0D control codes)..
007650: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
007660: 20 72 6F 75 74 69 6E 65 20 64 6F 65 73 20 6E 6F routine does no
007670: 74 20 63 6C 65 61 72 20 74 68 65 20 74 65 78 74 t clear the text
007680: 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A 0D 0A 20 20 window.......
007690: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
0076A0: 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ries:......
0076B0: 20 20 47 52 41 20 47 45 54 20 50 41 50 45 52 0D GRA GET PAPER.
0076C0: 0A 20 20 20 20 20 20 20 53 43 52 20 53 45 54 20 . SCR SET
0076D0: 49 4E 4B 0D 0A 20 20 20 20 20 20 20 54 58 54 20 INK.. TXT
0076E0: 47 45 54 20 50 41 50 45 52 0D 0A 20 20 20 20 20 GET PAPER..
0076F0: 20 20 54 58 54 20 53 45 54 20 50 45 4E 0D 0A 0D TXT SET PEN...
007700: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
007710: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
007720: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
007730: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
007740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007750: 70 61 67 65 20 31 35 2E 35 33 0D 0A 0D 0A 0D 0A page 15.53......
007760: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 35 ........ 5
007770: 31 3A 20 54 58 54 20 47 45 54 20 50 41 50 45 52 1: TXT GET PAPER
007780: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0077A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0077B0: 23 42 42 39 39 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 #BB99........
0077C0: 20 20 20 20 47 65 74 20 69 6E 6B 20 66 6F 72 20 Get ink for
0077D0: 77 72 69 74 69 6E 67 20 62 61 63 6B 67 72 6F 75 writing backgrou
0077E0: 6E 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 nd.........
0077F0: 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 0D Action:.......
007800: 0A 20 20 20 20 20 20 20 41 73 6B 20 77 68 61 74 . Ask what
007810: 20 74 68 65 20 70 61 70 65 72 20 69 6E 6B 20 69 the paper ink i
007820: 73 20 73 65 74 20 74 6F 20 66 6F 72 20 74 68 65 s set to for the
007830: 20 20 63 75 72 72 65 6E 74 6C 79 20 20 73 65 6C currently sel
007840: 65 63 74 65 64 20 20 73 74 72 65 61 6D 2E 0D 0A ected stream...
007850: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
007860: 20 69 6E 6B 20 75 73 65 64 20 66 6F 72 20 77 72 ink used for wr
007870: 69 74 69 6E 67 20 74 68 65 20 62 61 63 6B 67 72 iting the backgr
007880: 6F 75 6E 64 20 74 6F 20 63 68 61 72 61 63 74 65 ound to characte
007890: 72 73 20 61 6E 64 20 66 6F 72 20 63 6C 65 61 72 rs and for clear
0078A0: 69 6E 67 0D 0A 20 20 20 20 20 20 20 74 68 65 20 ing.. the
0078B0: 74 65 78 74 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A text window.....
0078C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 .... Entry
0078D0: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
0078E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F .... No co
0078F0: 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 0D nditions........
007900: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
007910: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 0D 0A ditions:........
007920: 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E A contain
007930: 73 20 74 68 65 20 69 6E 6B 2E 0D 0A 0D 0A 0D 0A s the ink.......
007940: 0D 0A 20 20 20 20 20 20 20 46 6C 61 67 73 20 63 .. Flags c
007950: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
007960: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
007970: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
007980: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ...... Not
007990: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
0079A0: 54 68 69 73 20 72 6F 75 74 69 6E 65 20 68 61 73 This routine has
0079B0: 20 6E 6F 20 6F 74 68 65 72 20 65 66 66 65 63 74 no other effect
0079C0: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 s....... R
0079D0: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
0079E0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 ..... GRA
0079F0: 47 45 54 20 50 41 50 45 52 0D 0A 20 20 20 20 20 GET PAPER..
007A00: 20 20 53 43 52 20 47 45 54 20 49 4E 4B 0D 0A 20 SCR GET INK..
007A10: 20 20 20 20 20 20 54 58 54 20 47 45 54 20 50 45 TXT GET PE
007A20: 4E 0D 0A 20 20 20 20 20 20 20 54 58 54 20 53 45 N.. TXT SE
007A30: 54 20 50 41 50 45 52 0D 0A 0D 0A 0D 0A 0D 0A 0D T PAPER.........
007A40: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
007A50: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
007A60: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
007A70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007A80: 20 20 20 20 70 61 67 65 20 31 35 2E 35 34 0D 0A page 15.54..
007A90: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
007AA0: 20 20 20 35 32 3A 20 54 58 54 20 49 4E 56 45 52 52: TXT INVER
007AB0: 53 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 SE
007AC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007AD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
007AE0: 42 39 43 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 B9C......
007AF0: 53 77 61 70 20 63 75 72 72 65 6E 74 20 70 65 6E Swap current pen
007B00: 20 61 6E 64 20 70 61 70 65 72 20 69 6E 6B 73 20 and paper inks
007B10: 6F 76 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 over.......
007B20: 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 Action:......
007B30: 20 20 20 20 20 20 45 78 63 68 61 6E 67 65 20 74 Exchange t
007B40: 68 65 20 74 65 78 74 20 70 65 6E 20 61 6E 64 20 he text pen and
007B50: 70 61 70 65 72 20 28 66 6F 72 65 67 72 6F 75 6E paper (foregroun
007B60: 64 20 61 6E 64 20 62 61 63 6B 67 72 6F 75 6E 64 d and background
007B70: 29 20 20 69 6E 6B 73 20 20 66 6F 72 0D 0A 20 20 ) inks for..
007B80: 20 20 20 20 20 74 68 65 20 63 75 72 72 65 6E 74 the current
007B90: 6C 79 20 73 65 6C 65 63 74 65 64 20 73 74 72 65 ly selected stre
007BA0: 61 6D 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 am.......
007BB0: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
007BC0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F :...... No
007BD0: 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A conditions.....
007BE0: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
007BF0: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
007C00: 20 20 20 20 20 20 41 46 20 61 6E 64 20 48 4C 20 AF and HL
007C10: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
007C20: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
007C30: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
007C40: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
007C50: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
007C60: 20 49 6E 20 56 31 2E 31 20 66 69 72 6D 77 61 72 In V1.1 firmwar
007C70: 65 20 74 68 65 20 63 75 72 73 6F 72 20 62 6C 6F e the cursor blo
007C80: 62 20 69 73 20 72 65 6D 6F 76 65 64 20 61 6E 64 b is removed and
007C90: 20 72 65 70 6C 61 63 65 64 20 20 61 6E 64 20 20 replaced and
007CA0: 73 6F 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 so the..
007CB0: 63 75 72 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E current position
007CC0: 20 69 73 20 66 6F 72 63 65 64 20 6C 65 67 61 6C is forced legal
007CD0: 20 28 69 6E 73 69 64 65 20 74 68 65 20 77 69 6E (inside the win
007CE0: 64 6F 77 29 20 20 77 68 69 63 68 20 20 6D 61 79 dow) which may
007CF0: 20 63 61 75 73 65 0D 0A 20 20 20 20 20 20 20 74 cause.. t
007D00: 68 65 20 77 69 6E 64 6F 77 20 74 6F 20 72 6F 6C he window to rol
007D10: 6C 2E 20 49 6E 20 56 31 2E 30 20 66 69 72 6D 77 l. In V1.0 firmw
007D20: 61 72 65 20 74 68 65 20 63 75 72 73 6F 72 20 62 are the cursor b
007D30: 6C 6F 62 20 20 69 73 20 20 6E 6F 74 20 20 72 65 lob is not re
007D40: 64 72 61 77 6E 0D 0A 20 20 20 20 20 20 20 61 6E drawn.. an
007D50: 64 20 73 6F 20 69 74 20 73 68 6F 75 6C 64 20 62 d so it should b
007D60: 65 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 e on the screen
007D70: 77 68 65 6E 20 74 68 69 73 20 72 6F 75 74 69 6E when this routin
007D80: 65 20 69 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A e is called.....
007D90: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
007DA0: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
007DB0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 58 54 20 ..... TXT
007DC0: 53 45 54 20 50 41 50 45 52 0D 0A 20 20 20 20 20 SET PAPER..
007DD0: 20 20 54 58 54 20 53 45 54 20 50 45 4E 0D 0A 0D TXT SET PEN...
007DE0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
007DF0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
007E00: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
007E10: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
007E20: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
007E30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007E40: 70 61 67 65 20 31 35 2E 35 35 0D 0A 0D 0A 0D 0A page 15.55......
007E50: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 35 ........ 5
007E60: 33 3A 20 54 58 54 20 53 45 54 20 42 41 43 4B 20 3: TXT SET BACK
007E70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007E80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007E90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007EA0: 23 42 42 39 46 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #BB9F......
007EB0: 20 20 41 6C 6C 6F 77 20 6F 72 20 64 69 73 61 6C Allow or disal
007EC0: 6C 6F 77 20 62 61 63 6B 67 72 6F 75 6E 64 20 62 low background b
007ED0: 65 69 6E 67 20 77 72 69 74 74 65 6E 2E 0D 0A 0D eing written....
007EE0: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
007EF0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 :...... Se
007F00: 74 20 63 68 61 72 61 63 74 65 72 20 77 72 69 74 t character writ
007F10: 65 20 6D 6F 64 65 20 74 6F 20 6F 70 61 71 75 65 e mode to opaque
007F20: 20 6F 72 20 74 72 61 6E 73 70 61 72 65 6E 74 20 or transparent
007F30: 20 66 6F 72 20 20 74 68 65 20 20 63 75 72 72 65 for the curre
007F40: 6E 74 6C 79 0D 0A 20 20 20 20 20 20 20 73 65 6C ntly.. sel
007F50: 65 63 74 65 64 20 73 74 72 65 61 6D 2E 20 4F 70 ected stream. Op
007F60: 61 71 75 65 20 6D 6F 64 65 20 77 72 69 74 65 73 aque mode writes
007F70: 20 20 62 61 63 6B 67 72 6F 75 6E 64 20 20 77 69 background wi
007F80: 74 68 20 20 74 68 65 20 20 63 68 61 72 61 63 74 th the charact
007F90: 65 72 2E 0D 0A 20 20 20 20 20 20 20 54 72 61 6E er... Tran
007FA0: 73 70 61 72 65 6E 74 20 6D 6F 64 65 20 77 72 69 sparent mode wri
007FB0: 74 65 73 20 74 68 65 20 63 68 61 72 61 63 74 65 tes the characte
007FC0: 72 20 6F 6E 20 74 6F 70 20 6F 66 20 74 68 65 20 r on top of the
007FD0: 20 63 75 72 72 65 6E 74 20 20 63 6F 6E 74 65 6E current conten
007FE0: 74 73 0D 0A 20 20 20 20 20 20 20 6F 66 20 74 68 ts.. of th
007FF0: 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 e screen.......
008000: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
008010: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
008020: 20 20 20 20 49 66 20 74 68 65 20 62 61 63 6B 67 If the backg
008030: 72 6F 75 6E 64 20 69 73 20 74 6F 20 62 65 20 77 round is to be w
008040: 72 69 74 74 65 6E 20 28 6F 70 61 71 75 65 20 6D ritten (opaque m
008050: 6F 64 65 29 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ode):....
008060: 20 20 20 20 20 20 20 20 20 41 20 6D 75 73 74 20 A must
008070: 62 65 20 7A 65 72 6F 2E 0D 0A 0D 0A 20 20 20 20 be zero.....
008080: 20 20 20 49 66 20 62 61 63 6B 67 72 6F 75 6E 64 If background
008090: 20 69 73 20 6E 6F 74 20 74 6F 20 62 65 20 77 72 is not to be wr
0080A0: 69 74 74 65 6E 20 28 74 72 61 6E 73 70 61 72 65 itten (transpare
0080B0: 6E 74 20 6D 6F 64 65 29 3A 0D 0A 0D 0A 20 20 20 nt mode):....
0080C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 6D A m
0080D0: 75 73 74 20 62 65 20 6E 6F 6E 2D 7A 65 72 6F 2E ust be non-zero.
0080E0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 ...... Exi
0080F0: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 20 t conditions:..
008100: 20 20 20 20 20 20 41 46 20 61 6E 64 20 48 4C 20 AF and HL
008110: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
008120: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
008130: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
008140: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
008150: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 s:...... W
008160: 72 69 74 69 6E 67 20 69 6E 20 74 72 61 6E 73 70 riting in transp
008170: 61 72 65 6E 74 20 6D 6F 64 65 20 69 73 20 69 6E arent mode is in
008180: 74 65 6E 64 65 64 20 66 6F 72 20 20 61 6E 6E 6F tended for anno
008190: 74 61 74 69 6E 67 20 20 64 69 61 67 72 61 6D 73 tating diagrams
0081A0: 20 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 73 69 and.. si
0081B0: 6D 69 6C 61 72 20 61 70 70 6C 69 63 61 74 69 6F milar applicatio
0081C0: 6E 73 2E 20 49 74 20 63 61 6E 20 68 61 76 65 20 ns. It can have
0081D0: 75 6E 66 6F 72 74 75 6E 61 74 65 20 65 66 66 65 unfortunate effe
0081E0: 63 74 73 20 69 66 20 20 69 74 20 20 69 73 20 20 cts if it is
0081F0: 75 73 65 64 0D 0A 20 20 20 20 20 20 20 67 65 6E used.. gen
008200: 65 72 61 6C 6C 79 20 20 62 65 63 61 75 73 65 20 erally because
008210: 20 6F 76 65 72 77 72 69 74 69 6E 67 20 20 61 20 overwriting a
008220: 20 63 68 61 72 61 63 74 65 72 20 20 77 69 6C 6C character will
008230: 20 20 6E 6F 74 20 20 72 65 6D 6F 76 65 20 20 20 not remove
008240: 74 68 65 0D 0A 20 20 20 20 20 20 20 63 68 61 72 the.. char
008250: 61 63 74 65 72 20 75 6E 64 65 72 6E 65 61 74 68 acter underneath
008260: 20 74 68 75 73 20 63 72 65 61 74 69 6E 67 20 61 thus creating a
008270: 6E 20 69 6E 63 6F 6D 70 72 65 68 65 6E 73 69 62 n incomprehensib
008280: 6C 65 20 6A 75 6D 62 6C 65 20 20 6F 6E 20 20 74 le jumble on t
008290: 68 65 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 he.. scree
0082A0: 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 n....... S
0082B0: 65 74 74 69 6E 67 20 74 68 65 20 63 68 61 72 61 etting the chara
0082C0: 63 74 65 72 20 77 72 69 74 65 20 6D 6F 64 65 20 cter write mode
0082D0: 64 6F 65 73 20 6E 6F 74 20 61 66 66 65 63 74 20 does not affect
0082E0: 74 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 the Graphics VDU
0082F0: 2E 20 20 49 6E 0D 0A 20 20 20 20 20 20 20 56 31 . In.. V1
008300: 2E 31 20 66 69 72 6D 77 61 72 65 20 74 68 65 20 .1 firmware the
008310: 72 6F 75 74 69 6E 65 20 47 52 41 20 53 45 54 20 routine GRA SET
008320: 42 41 43 4B 20 73 65 74 73 20 20 74 68 65 20 20 BACK sets the
008330: 65 71 75 69 76 61 6C 65 6E 74 20 20 67 72 61 70 equivalent grap
008340: 68 69 63 73 0D 0A 20 20 20 20 20 20 20 62 61 63 hics.. bac
008350: 6B 67 72 6F 75 6E 64 20 77 72 69 74 65 20 6D 6F kground write mo
008360: 64 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 de.......
008370: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
008380: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 ...... GRA
008390: 20 53 45 54 20 42 41 43 4B 0D 0A 20 20 20 20 20 SET BACK..
0083A0: 20 20 54 58 54 20 47 45 54 20 42 41 43 4B 0D 0A TXT GET BACK..
0083B0: 20 20 20 20 20 20 20 54 58 54 20 57 52 20 43 48 TXT WR CH
0083C0: 41 52 0D 0A 20 20 20 20 20 20 20 54 58 54 20 57 AR.. TXT W
0083D0: 52 49 54 45 20 43 48 41 52 0D 0A 0D 0A 0D 0A 0D RITE CHAR.......
0083E0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
0083F0: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
008400: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
008410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
008420: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
008430: 35 36 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 56..............
008440: 20 20 20 20 20 20 20 35 34 3A 20 54 58 54 20 47 54: TXT G
008450: 45 54 20 42 41 43 4B 20 20 20 20 20 20 20 20 20 ET BACK
008460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
008470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
008480: 20 20 20 20 20 20 20 20 23 42 42 41 32 0D 0A 0D #BBA2...
008490: 0A 0D 0A 20 20 20 20 20 20 20 41 73 6B 20 69 66 ... Ask if
0084A0: 20 62 61 63 6B 67 72 6F 75 6E 64 20 69 73 20 62 background is b
0084B0: 65 69 6E 67 20 77 72 69 74 74 65 6E 2E 0D 0A 0D eing written....
0084C0: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
0084D0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 65 :...... Ge
0084E0: 74 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 t the character
0084F0: 77 72 69 74 65 20 6D 6F 64 65 20 66 6F 72 20 74 write mode for t
008500: 68 65 20 63 75 72 72 65 6E 74 6C 79 20 73 65 6C he currently sel
008510: 65 63 74 65 64 20 73 74 72 65 61 6D 2E 0D 0A 0D ected stream....
008520: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
008530: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
008540: 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 . No condi
008550: 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 tions.......
008560: 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F Exit conditio
008570: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
008580: 49 66 20 62 61 63 6B 67 72 6F 75 6E 64 20 69 73 If background is
008590: 20 74 6F 20 62 65 20 77 72 69 74 74 65 6E 20 28 to be written (
0085A0: 6F 70 61 71 75 65 20 6D 6F 64 65 29 3A 0D 0A 0D opaque mode):...
0085B0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
0085C0: 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 7A 65 A contains ze
0085D0: 72 6F 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ro.......
0085E0: 49 66 20 62 61 63 6B 67 72 6F 75 6E 64 20 69 73 If background is
0085F0: 20 6E 6F 74 20 74 6F 20 62 65 20 77 72 69 74 74 not to be writt
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: 65 6E 20 28 74 72 61 6E 73 70 61 72 65 6E 74 20 en (transparent
008710: 6D 6F 64 65 29 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 mode):......
008720: 20 20 20 20 20 20 20 20 20 20 20 20 41 20 63 6F A co
008730: 6E 74 61 69 6E 73 20 6E 6F 6E 2D 7A 65 72 6F 2E ntains non-zero.
008740: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 ...... Alw
008750: 61 79 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ays:......
008760: 20 20 20 20 20 20 20 20 20 20 44 45 2C 48 4C 20 DE,HL
008770: 61 6E 64 20 66 6C 61 67 73 20 63 6F 72 72 75 70 and flags corrup
008780: 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 t...
008790: 20 20 20 20 41 6C 6C 20 72 65 67 69 73 74 65 72 All register
0087A0: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
0087B0: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
0087C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
0087D0: 20 6F 6E 6C 79 20 61 70 70 6C 69 65 73 20 74 6F only applies to
0087E0: 20 74 68 65 20 54 65 78 74 20 56 44 55 2C 20 20 the Text VDU,
0087F0: 74 68 65 20 20 47 72 61 70 68 69 63 73 20 20 56 the Graphics V
008800: 44 55 20 20 61 6C 77 61 79 73 20 20 77 72 69 74 DU always writ
008810: 65 73 0D 0A 20 20 20 20 20 20 20 6F 70 61 71 75 es.. opaqu
008820: 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 e....... R
008830: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
008840: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 58 54 20 ..... TXT
008850: 53 45 54 20 42 41 43 4B 0D 0A 0D 0A 0D 0A 0D 0A SET BACK........
008860: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
008870: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
008880: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
008890: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
0088A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
0088B0: 65 20 31 35 2E 35 37 0D 0A 0D 0A 0D 0A 0D 0A 0D e 15.57.........
0088C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 35 35 3A 20 ..... 55:
0088D0: 54 58 54 20 47 45 54 20 4D 41 54 52 49 58 20 20 TXT GET MATRIX
0088E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0088F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
008900: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 42 #BB
008910: 41 35 0D 0A 0D 0A 20 20 20 20 20 20 20 47 65 74 A5.... Get
008920: 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 the address of
008930: 61 20 63 68 61 72 61 63 74 65 72 20 6D 61 74 72 a character matr
008940: 69 78 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 ix...........
008950: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 Action:....
008960: 20 20 20 20 20 20 43 61 6C 63 75 6C 61 74 65 20 Calculate
008970: 61 20 70 6F 69 6E 74 65 72 20 74 6F 20 74 68 65 a pointer to the
008980: 20 6D 61 74 72 69 78 20 66 6F 72 20 61 20 63 68 matrix for a ch
008990: 61 72 61 63 74 65 72 20 61 6E 64 20 64 65 74 65 aracter and dete
0089A0: 72 6D 69 6E 65 20 69 66 20 20 69 74 0D 0A 20 20 rmine if it..
0089B0: 20 20 20 20 20 69 73 20 61 20 75 73 65 72 20 64 is a user d
0089C0: 65 66 69 6E 65 64 20 6D 61 74 72 69 78 2E 0D 0A efined matrix...
0089D0: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
0089E0: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
0089F0: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
008A00: 74 68 65 20 63 68 61 72 61 63 74 65 72 20 77 68 the character wh
008A10: 6F 73 65 20 6D 61 74 72 69 78 20 69 73 20 74 6F ose matrix is to
008A20: 20 62 65 20 66 6F 75 6E 64 2E 0D 0A 0D 0A 20 20 be found.....
008A30: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
008A40: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
008A50: 49 66 20 74 68 65 20 6D 61 74 72 69 78 20 69 6E If the matrix in
008A60: 20 74 68 65 20 75 73 65 72 20 64 65 66 69 6E 65 the user define
008A70: 64 20 6D 61 74 72 69 78 20 74 61 62 6C 65 3A 0D d matrix table:.
008A80: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
008A90: 20 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A Carry true...
008AA0: 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 .. If the
008AB0: 6D 61 74 72 69 78 20 69 73 20 69 6E 20 74 68 65 matrix is in the
008AC0: 20 6C 6F 77 65 72 20 52 4F 4D 3A 0D 0A 0D 0A 20 lower ROM:....
008AD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
008AE0: 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 0D 0A 20 arry false.....
008AF0: 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D Always:...
008B00: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
008B10: 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 HL contains the
008B20: 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 address of the
008B30: 6D 61 74 72 69 78 2E 0D 0A 0D 0A 20 20 20 20 20 matrix.....
008B40: 20 20 20 20 20 20 20 20 20 20 20 41 20 61 6E 64 A and
008B50: 20 6F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 other flags cor
008B60: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 rupt...
008B70: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
008B80: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
008B90: 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rved.......
008BA0: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
008BB0: 20 20 20 20 20 54 68 65 20 6D 61 74 72 69 78 20 The matrix
008BC0: 6D 61 79 20 62 65 20 69 6E 20 52 41 4D 20 6F 72 may be in RAM or
008BD0: 20 69 6E 20 52 4F 4D 2E 20 54 68 65 20 20 54 65 in ROM. The Te
008BE0: 78 74 20 20 56 44 55 20 20 61 73 73 75 6D 65 73 xt VDU assumes
008BF0: 20 20 74 68 61 74 20 20 74 68 65 0D 0A 20 20 20 that the..
008C00: 20 20 20 20 61 70 70 72 6F 70 72 69 61 74 65 20 appropriate
008C10: 52 4F 4D 73 20 61 72 65 20 65 6E 61 62 6C 65 64 ROMs are enabled
008C20: 20 6F 72 20 64 69 73 61 62 6C 65 64 20 77 68 65 or disabled whe
008C30: 6E 20 69 74 20 63 61 6C 6C 73 20 74 68 69 73 20 n it calls this
008C40: 72 6F 75 74 69 6E 65 20 74 6F 0D 0A 20 20 20 20 routine to..
008C50: 20 20 20 67 65 74 20 74 68 65 20 6D 61 74 72 69 get the matri
008C60: 78 20 66 6F 72 20 61 20 63 68 61 72 61 63 74 65 x for a characte
008C70: 72 2E 20 28 54 68 65 20 6C 6F 77 65 72 20 52 4F r. (The lower RO
008C80: 4D 20 69 73 20 6F 6E 2C 20 74 68 65 20 75 70 70 M is on, the upp
008C90: 65 72 20 52 4F 4D 20 69 73 0D 0A 20 20 20 20 20 er ROM is..
008CA0: 20 20 6E 6F 72 6D 61 6C 6C 79 20 6F 66 66 29 2E normally off).
008CB0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
008CC0: 20 6D 61 74 72 69 78 20 69 73 20 73 74 6F 72 65 matrix is store
008CD0: 64 20 61 73 20 61 6E 20 38 20 62 79 74 65 20 62 d as an 8 byte b
008CE0: 69 74 20 73 69 67 6E 69 66 69 63 61 6E 74 20 20 it significant
008CF0: 76 65 63 74 6F 72 2E 20 20 54 68 65 20 20 66 69 vector. The fi
008D00: 72 73 74 0D 0A 20 20 20 20 20 20 20 62 79 74 65 rst.. byte
008D10: 20 64 65 73 63 72 69 62 65 73 20 74 68 65 20 74 describes the t
008D20: 6F 70 20 6C 69 6E 65 20 6F 66 20 74 68 65 20 63 op line of the c
008D30: 68 61 72 61 63 74 65 72 20 61 6E 64 20 20 74 68 haracter and th
008D40: 65 20 20 6C 61 73 74 20 20 62 79 74 65 20 20 74 e last byte t
008D50: 68 65 0D 0A 20 20 20 20 20 20 20 62 6F 74 74 6F he.. botto
008D60: 6D 20 6C 69 6E 65 2E 20 42 69 74 20 37 20 6F 66 m line. Bit 7 of
008D70: 20 61 20 62 79 74 65 20 72 65 66 65 72 73 20 74 a byte refers t
008D80: 6F 20 74 68 65 20 6C 65 66 74 6D 6F 73 74 20 70 o the leftmost p
008D90: 69 78 65 6C 20 20 6F 66 20 20 61 20 20 6C 69 6E ixel of a lin
008DA0: 65 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 62 69 e.. and bi
008DB0: 74 20 30 20 74 6F 20 74 68 65 20 72 69 67 68 74 t 0 to the right
008DC0: 6D 6F 73 74 20 70 69 78 65 6C 2E 20 49 66 20 61 most pixel. If a
008DD0: 20 62 69 74 20 69 73 20 73 65 74 20 69 6E 20 74 bit is set in t
008DE0: 68 65 20 20 6D 61 74 72 69 78 20 20 74 68 65 6E he matrix then
008DF0: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 70 69 78 .. the pix
008E00: 65 6C 20 73 68 6F 75 6C 64 20 62 65 20 77 72 69 el should be wri
008E10: 74 74 65 6E 20 69 6E 20 74 68 65 20 70 65 6E 20 tten in the pen
008E20: 69 6E 6B 2E 20 49 66 20 74 68 65 20 62 69 74 20 ink. If the bit
008E30: 69 73 20 6E 6F 74 20 73 65 74 20 74 68 65 6E 0D is not set then.
008E40: 0A 20 20 20 20 20 20 20 74 68 65 20 70 69 78 65 . the pixe
008E50: 6C 20 73 68 6F 75 6C 64 20 65 69 74 68 65 72 20 l should either
008E60: 62 65 20 77 72 69 74 74 65 6E 20 69 6E 20 74 68 be written in th
008E70: 65 20 20 70 61 70 65 72 20 20 69 6E 6B 20 20 6F e paper ink o
008E80: 72 20 20 6C 65 66 74 20 20 61 6C 6F 6E 65 0D 0A r left alone..
008E90: 20 20 20 20 20 20 20 28 64 65 70 65 6E 64 69 6E (dependin
008EA0: 67 20 6F 6E 20 74 68 65 20 63 68 61 72 61 63 74 g on the charact
008EB0: 65 72 20 77 72 69 74 65 20 6D 6F 64 65 29 2E 0D er write mode)..
008EC0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
008ED0: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
008EE0: 20 20 20 20 20 20 20 54 58 54 20 53 45 54 20 4D TXT SET M
008EF0: 41 54 52 49 58 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ATRIX..........
008F00: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
008F10: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
008F20: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
008F30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
008F40: 20 20 70 61 67 65 20 31 35 2E 35 38 0D 0A 1A 49 page 15.58...I
008F50: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
008F60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
008F70: 20 20 70 61 67 65 20 31 35 2E 35 39 0D 0A 1A 79 page 15.59...y
008F80: 6F 20 74 68 65 20 6C 65 66 74 6D 6F 73 74 20 70 o the leftmost p
008F90: 69 78 65 6C 20 20 6F 66 20 20 61 20 20 6C 69 6E ixel of a lin
008FA0: 65 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 62 69 e.. and bi
008FB0: 74 20 30 20 74 6F 20 74 68 65 20 72 69 67 68 74 t 0 to the right
008FC0: 6D 6F 73 74 20 70 69 78 65 6C 2E 20 49 66 20 61 most pixel. If a
008FD0: 20 62 69 74 20 69 73 20 73 65 74 20 69 6E 20 74 bit is set in t
008FE0: 68 65 20 20 6D 61 74 72 69 78 20 20 74 68 65 6E he matrix then
008FF0: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 70 69 78 .. the pix
009000: 65 6C 20 73 68 6F 75 6C 64 20 62 65 20 77 72 69 el should be wri
009010: 74 74 65 6E 20 69 6E 20 74 68 65 20 70 65 6E 20 tten in the pen
009020: 69 6E 6B 2E 20 49 66 20 74 68 65 20 62 69 74 20 ink. If the bit
009030: 69 73 20 6E 6F 74 20 73 65 74 20 74 68 65 6E 0D is not set then.
009040: 0A 20 20 20 20 20 20 20 74 68 65 20 70 69 78 65 . the pixe
009050: 6C 20 73 68 6F 75 6C 64 20 65 69 74 68 65 72 20 l should either
009060: 62 65 20 77 72 69 74 74 65 6E 20 69 6E 20 74 68 be written in th
009070: 65 20 20 70 61 70 65 72 20 20 69 6E 6B 20 20 6F e paper ink o
009080: 72 20 20 6C 65 66 74 20 20 61 6C 6F 6E 65 0D 0A r left alone..
009090: 20 20 20 20 20 20 20 28 64 65 70 65 6E 64 69 6E (dependin
0090A0: 67 20 6F 6E 20 74 68 65 20 63 68 61 72 61 63 74 g on the charact
0090B0: 65 72 20 77 72 69 74 65 20 6D 6F 64 65 29 2E 0D er write mode)..
0090C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
0090D0: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
0090E0: 20 20 20 20 20 20 20 54 58 54 20 53 45 54 20 4D TXT SET M
0090F0: 41 54 52 49 58 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ATRIX..........
009100: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
009110: 20 20 20 35 36 3A 20 54 58 54 20 53 45 54 20 4D 56: TXT SET M
009120: 41 54 52 49 58 20 20 20 20 20 20 20 20 20 20 20 ATRIX
009130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
009140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
009150: 20 20 20 20 23 42 42 41 38 0D 0A 0D 0A 20 20 20 #BBA8....
009160: 20 20 20 20 53 65 74 20 61 20 63 68 61 72 61 63 Set a charac
009170: 74 65 72 20 6D 61 74 72 69 78 2E 0D 0A 0D 0A 20 ter matrix.....
009180: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
009190: 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 65 20 . Set the
0091A0: 6D 61 74 72 69 78 20 66 6F 72 20 61 20 75 73 65 matrix for a use
0091B0: 72 20 64 65 66 69 6E 65 64 20 63 68 61 72 61 63 r defined charac
0091C0: 74 65 72 2E 20 49 66 20 74 68 65 20 63 68 61 72 ter. If the char
0091D0: 61 63 74 65 72 20 20 69 73 20 20 6E 6F 74 0D 0A acter is not..
0091E0: 20 20 20 20 20 20 20 75 73 65 72 20 64 65 66 69 user defi
0091F0: 6E 65 64 20 74 68 65 6E 20 6E 6F 20 61 63 74 69 ned then no acti
009200: 6F 6E 20 69 73 20 74 61 6B 65 6E 2E 0D 0A 0D 0A on is taken.....
009210: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
009220: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
009230: 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 A contains th
009240: 65 20 63 68 61 72 61 63 74 65 72 20 77 68 6F 73 e character whos
009250: 65 20 6D 61 74 72 69 78 20 69 73 20 74 6F 20 62 e matrix is to b
009260: 65 20 73 65 74 2E 0D 0A 20 20 20 20 20 20 20 48 e set... H
009270: 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 L contains the a
009280: 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 6D 61 ddress of the ma
009290: 74 72 69 78 20 74 6F 20 73 65 74 2E 0D 0A 0D 0A trix to set.....
0092A0: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
0092B0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
0092C0: 20 20 49 66 20 74 68 65 20 63 68 61 72 61 63 74 If the charact
0092D0: 65 72 20 69 73 20 75 73 65 72 20 64 65 66 69 6E er is user defin
0092E0: 61 62 6C 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 able:....
0092F0: 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 74 Carry t
009300: 72 75 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 rue..... I
009310: 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 f the character
009320: 69 73 20 6E 6F 74 20 75 73 65 72 20 64 65 66 69 is not user defi
009330: 6E 61 62 6C 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 nable:....
009340: 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 Carry
009350: 66 61 6C 73 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 false.....
009360: 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A 20 20 20 20 Always:....
009370: 20 20 20 20 20 20 20 20 20 20 20 20 41 2C 42 43 A,BC
009380: 2C 44 45 2C 48 4C 20 61 6E 64 20 6F 74 68 65 72 ,DE,HL and other
009390: 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D flags corrupt..
0093A0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0093B0: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
0093C0: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
0093D0: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
0093E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6D .... The m
0093F0: 61 74 72 69 78 20 69 73 20 73 74 6F 72 65 64 20 atrix is stored
009400: 61 73 20 61 6E 20 38 20 62 79 74 65 20 62 69 74 as an 8 byte bit
009410: 20 73 69 67 6E 69 66 69 63 61 6E 74 20 20 76 65 significant ve
009420: 63 74 6F 72 2E 20 20 54 68 65 20 20 66 69 72 73 ctor. The firs
009430: 74 0D 0A 20 20 20 20 20 20 20 62 79 74 65 20 64 t.. byte d
009440: 65 73 63 72 69 62 65 73 20 74 68 65 20 74 6F 70 escribes the top
009450: 20 6C 69 6E 65 20 6F 66 20 74 68 65 20 63 68 61 line of the cha
009460: 72 61 63 74 65 72 20 61 6E 64 20 20 74 68 65 20 racter and the
009470: 20 6C 61 73 74 20 20 62 79 74 65 20 20 74 68 65 last byte the
009480: 0D 0A 20 20 20 20 20 20 20 62 6F 74 74 6F 6D 20 .. bottom
009490: 6C 69 6E 65 2E 20 42 69 74 20 37 20 6F 66 20 61 line. Bit 7 of a
0094A0: 20 62 79 74 65 20 72 65 66 65 72 73 20 74 6F 20 byte refers to
0094B0: 74 68 65 20 6C 65 66 74 6D 6F 73 74 20 70 69 78 the leftmost pix
0094C0: 65 6C 20 20 6F 66 20 20 61 20 20 6C 69 6E 65 0D el of a line.
0094D0: 0A 20 20 20 20 20 20 20 61 6E 64 20 62 69 74 20 . and bit
0094E0: 30 20 74 6F 20 74 68 65 20 72 69 67 68 74 6D 6F 0 to the rightmo
0094F0: 73 74 20 70 69 78 65 6C 2E 20 49 66 20 61 20 62 st pixel. If a b
009500: 69 74 20 69 73 20 73 65 74 20 69 6E 20 74 68 65 it is set in the
009510: 20 20 6D 61 74 72 69 78 20 20 74 68 65 6E 0D 0A matrix then..
009520: 20 20 20 20 20 20 20 74 68 65 20 70 69 78 65 6C the pixel
009530: 20 73 68 6F 75 6C 64 20 62 65 20 77 72 69 74 74 should be writt
009540: 65 6E 20 69 6E 20 74 68 65 20 70 65 6E 20 69 6E en in the pen in
009550: 6B 2E 20 49 66 20 61 20 62 69 74 20 69 73 20 6E k. If a bit is n
009560: 6F 74 20 20 73 65 74 20 20 74 68 65 6E 0D 0A 20 ot set then..
009570: 20 20 20 20 20 20 74 68 65 20 70 69 78 65 6C 20 the pixel
009580: 73 68 6F 75 6C 64 20 65 69 74 68 65 72 20 62 65 should either be
009590: 20 77 72 69 74 74 65 6E 20 69 6E 20 74 68 65 20 written in the
0095A0: 20 70 61 70 65 72 20 20 69 6E 6B 20 20 6F 72 20 paper ink or
0095B0: 20 6C 65 66 74 20 20 61 6C 6F 6E 65 0D 0A 20 20 left alone..
0095C0: 20 20 20 20 20 28 64 65 70 65 6E 64 69 6E 67 20 (depending
0095D0: 77 68 65 74 68 65 72 20 74 68 65 20 63 68 61 72 whether the char
0095E0: 61 63 74 65 72 20 77 72 69 74 65 20 6D 6F 64 65 acter write mode
0095F0: 20 69 73 20 6F 70 61 71 75 65 20 20 6F 72 20 20 is opaque or
009600: 74 72 61 6E 73 70 61 72 65 6E 74 0D 0A 20 20 20 transparent..
009610: 20 20 20 20 63 75 72 72 65 6E 74 6C 79 29 2E 0D currently)..
009620: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6D 61 ... The ma
009630: 74 72 69 78 20 69 73 20 63 6F 70 69 65 64 20 66 trix is copied f
009640: 72 6F 6D 20 74 68 65 20 61 72 65 61 20 67 69 76 rom the area giv
009650: 65 6E 20 20 69 6E 74 6F 20 20 74 68 65 20 20 63 en into the c
009660: 68 61 72 61 63 74 65 72 20 20 6D 61 74 72 69 78 haracter matrix
009670: 0D 0A 20 20 20 20 20 20 20 74 61 62 6C 65 20 77 .. table w
009680: 69 74 68 6F 75 74 20 75 73 69 6E 67 20 52 41 4D ithout using RAM
009690: 20 4C 41 4D 73 20 74 68 75 73 20 74 68 65 20 6D LAMs thus the m
0096A0: 61 74 72 69 63 65 73 20 63 61 6E 20 20 62 65 20 atrices can be
0096B0: 20 73 65 74 20 20 66 72 6F 6D 20 20 52 4F 4D 0D set from ROM.
0096C0: 0A 20 20 20 20 20 20 20 70 72 6F 76 69 64 69 6E . providin
0096D0: 67 20 69 74 20 69 73 20 65 6E 61 62 6C 65 64 2E g it is enabled.
0096E0: 20 28 4E 6F 74 65 20 68 6F 77 65 76 65 72 20 74 (Note however t
0096F0: 68 61 74 20 74 68 65 20 6A 75 6D 70 62 6C 6F 63 hat the jumpbloc
009700: 6B 20 64 69 73 61 62 6C 65 73 20 74 68 65 0D 0A k disables the..
009710: 20 20 20 20 20 20 20 75 70 70 65 72 20 52 4F 4D upper ROM
009720: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 74 )..... Alt
009730: 65 72 69 6E 67 20 61 20 63 68 61 72 61 63 74 65 ering a characte
009740: 72 20 6D 61 74 72 69 78 20 63 68 61 6E 67 65 73 r matrix changes
009750: 20 74 68 65 20 6D 61 74 72 69 78 20 20 66 6F 72 the matrix for
009760: 20 20 61 6C 6C 20 20 73 74 72 65 61 6D 73 2E 20 all streams.
009770: 20 49 74 0D 0A 20 20 20 20 20 20 20 64 6F 65 73 It.. does
009780: 20 6E 6F 74 20 61 6C 74 65 72 20 61 6E 79 20 63 not alter any c
009790: 68 61 72 61 63 74 65 72 20 6F 6E 20 74 68 65 20 haracter on the
0097A0: 73 63 72 65 65 6E 3B 20 69 74 20 63 68 61 6E 67 screen; it chang
0097B0: 65 73 20 20 77 68 61 74 20 20 77 69 6C 6C 20 20 es what will
0097C0: 62 65 0D 0A 20 20 20 20 20 20 20 70 6C 61 63 65 be.. place
0097D0: 64 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 d on the screen
0097E0: 74 68 65 20 6E 65 78 74 20 74 69 6D 65 20 74 68 the next time th
0097F0: 65 20 63 68 61 72 61 63 74 65 72 20 69 73 20 77 e character is w
009800: 72 69 74 74 65 6E 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 ritten.........
009810: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
009820: 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tries:....
009830: 20 54 58 54 20 47 45 54 20 4D 41 54 52 49 58 0D TXT GET MATRIX.
009840: 0A 20 20 20 20 20 20 20 54 58 54 20 53 45 54 20 . TXT SET
009850: 4D 20 54 41 42 4C 45 0D 0A 0D 0A 0D 0A 0D 0A 0D M TABLE.........
009860: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
009870: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
009880: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
009890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0098A0: 20 20 20 20 70 61 67 65 20 31 35 2E 35 39 0D 0A page 15.59..
0098B0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
0098C0: 20 20 20 35 37 3A 20 54 58 54 20 53 45 54 20 4D 57: TXT SET M
0098D0: 20 54 41 42 4C 45 20 20 20 20 20 20 20 20 20 20 TABLE
0098E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0098F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
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: 20 20 20 20 23 42 42 41 42 0D 0A 0D 0A 20 20 20 #BBAB....
009A10: 20 20 20 20 53 65 74 20 74 68 65 20 75 73 65 72 Set the user
009A20: 20 64 65 66 69 6E 65 64 20 6D 61 74 72 69 78 20 defined matrix
009A30: 74 61 62 6C 65 20 61 64 64 72 65 73 73 2E 0D 0A table address...
009A40: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
009A50: 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 .... Set t
009A60: 68 65 20 75 73 65 72 20 64 65 66 69 6E 65 64 20 he user defined
009A70: 6D 61 74 72 69 78 20 74 61 62 6C 65 20 61 6E 64 matrix table and
009A80: 20 74 68 65 20 6E 75 6D 62 65 72 20 6F 66 20 63 the number of c
009A90: 68 61 72 61 63 74 65 72 73 20 69 6E 20 20 74 68 haracters in th
009AA0: 65 0D 0A 20 20 20 20 20 20 20 74 61 62 6C 65 2E e.. table.
009AB0: 20 54 68 65 20 74 61 62 6C 65 20 69 73 20 69 6E The table is in
009AC0: 69 74 69 61 6C 69 7A 65 64 20 77 69 74 68 20 74 itialized with t
009AD0: 68 65 20 63 75 72 72 65 6E 74 20 6D 61 74 72 69 he current matri
009AE0: 78 20 73 65 74 74 69 6E 67 73 2E 0D 0A 0D 0A 20 x settings.....
009AF0: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
009B00: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
009B10: 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 DE contains th
009B20: 65 20 66 69 72 73 74 20 63 68 61 72 61 63 74 65 e first characte
009B30: 72 20 69 6E 20 74 68 65 20 74 61 62 6C 65 2E 0D r in the table..
009B40: 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 . HL conta
009B50: 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 ins the address
009B60: 6F 66 20 74 68 65 20 73 74 61 72 74 20 6F 66 20 of the start of
009B70: 74 68 65 20 6E 65 77 20 74 61 62 6C 65 2E 0D 0A the new table...
009B80: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
009B90: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
009BA0: 20 20 20 20 49 66 20 74 68 65 72 65 20 77 61 73 If there was
009BB0: 20 6E 6F 20 75 73 65 72 20 64 65 66 69 6E 65 64 no user defined
009BC0: 20 6D 61 74 72 69 78 20 74 61 62 6C 65 20 62 65 matrix table be
009BD0: 66 6F 72 65 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 fore:......
009BE0: 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 Carry
009BF0: 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 false...
009C00: 20 20 20 20 20 20 20 20 20 41 20 61 6E 64 20 48 A and H
009C10: 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 L corrupt.....
009C20: 20 20 20 20 20 49 66 20 74 68 65 72 65 20 77 61 If there wa
009C30: 73 20 61 20 75 73 65 72 20 64 65 66 69 6E 65 64 s a user defined
009C40: 20 6D 61 74 72 69 78 20 74 61 62 6C 65 20 62 65 matrix table be
009C50: 66 6F 72 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 fore:....
009C60: 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 74 Carry t
009C70: 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 rue...
009C80: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
009C90: 20 74 68 65 20 66 69 72 73 74 20 63 68 61 72 61 the first chara
009CA0: 63 74 65 72 20 69 6E 20 74 68 65 20 6F 6C 64 20 cter in the old
009CB0: 74 61 62 6C 65 2E 0D 0A 20 20 20 20 20 20 20 20 table...
009CC0: 20 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 HL conta
009CD0: 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 ins the address
009CE0: 6F 66 20 74 68 65 20 6F 6C 64 20 74 61 62 6C 65 of the old table
009CF0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 ..... Alwa
009D00: 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ys:....
009D10: 20 20 20 20 20 20 20 42 43 2C 44 45 20 61 6E 64 BC,DE and
009D20: 20 6F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 other flags cor
009D30: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 rupt...
009D40: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
009D50: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
009D60: 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rved.....
009D70: 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 Notes:....
009D80: 20 49 66 20 74 68 65 20 66 69 72 73 74 20 63 68 If the first ch
009D90: 61 72 61 63 74 65 72 20 73 70 65 63 69 66 69 65 aracter specifie
009DA0: 64 20 69 73 20 20 69 6E 20 20 74 68 65 20 20 72 d is in the r
009DB0: 61 6E 67 65 20 20 30 2E 2E 32 35 35 20 20 74 68 ange 0..255 th
009DC0: 65 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 en the..
009DD0: 6D 61 74 72 69 63 65 73 20 66 6F 72 20 61 6C 6C matrices for all
009DE0: 20 63 68 61 72 61 63 74 65 72 73 20 62 65 74 77 characters betw
009DF0: 65 65 6E 20 74 68 61 74 20 63 68 61 72 61 63 74 een that charact
009E00: 65 72 20 61 6E 64 20 20 63 68 61 72 61 63 74 65 er and characte
009E10: 72 20 20 32 35 35 0D 0A 20 20 20 20 20 20 20 61 r 255.. a
009E20: 72 65 20 74 6F 20 62 65 20 73 74 6F 72 65 64 20 re to be stored
009E30: 69 6E 20 74 68 65 20 75 73 65 72 20 64 65 66 69 in the user defi
009E40: 6E 65 64 20 74 61 62 6C 65 2E 0D 0A 0D 0A 20 20 ned table.....
009E50: 20 20 20 20 20 49 66 20 74 68 65 20 66 69 72 73 If the firs
009E60: 74 20 63 68 61 72 61 63 74 65 72 20 73 70 65 63 t character spec
009E70: 69 66 69 65 64 20 69 73 20 6E 6F 74 20 69 6E 20 ified is not in
009E80: 74 68 65 20 72 61 6E 67 65 20 30 2E 2E 32 35 35 the range 0..255
009E90: 20 20 74 68 65 6E 20 20 74 68 65 0D 0A 20 20 20 then the..
009EA0: 20 20 20 20 75 73 65 72 20 64 65 66 69 6E 65 64 user defined
009EB0: 20 6D 61 74 72 69 78 20 74 61 62 6C 65 20 69 73 matrix table is
009EC0: 20 64 65 65 6D 65 64 20 74 6F 20 63 6F 6E 74 61 deemed to conta
009ED0: 69 6E 20 6E 6F 20 20 6D 61 74 72 69 63 65 73 20 in no matrices
009EE0: 20 28 61 6E 64 20 20 74 68 65 0D 0A 20 20 20 20 (and the..
009EF0: 20 20 20 74 61 62 6C 65 20 61 64 64 72 65 73 73 table address
009F00: 20 70 61 73 73 65 64 20 69 73 20 69 67 6E 6F 72 passed is ignor
009F10: 65 64 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ed)..... T
009F20: 68 65 20 74 61 62 6C 65 20 6D 75 73 74 20 62 65 he table must be
009F30: 20 28 32 35 36 20 2D 20 66 69 72 73 74 20 63 68 (256 - first ch
009F40: 61 72 29 20 2A 20 38 20 62 79 74 65 73 20 6C 6F ar) * 8 bytes lo
009F50: 6E 67 2E 20 54 68 65 20 6D 61 74 72 69 63 65 73 ng. The matrices
009F60: 20 20 61 72 65 0D 0A 20 20 20 20 20 20 20 73 74 are.. st
009F70: 6F 72 65 64 20 69 6E 20 74 68 65 20 74 61 62 6C ored in the tabl
009F80: 65 20 69 6E 20 61 73 63 65 6E 64 69 6E 67 20 6F e in ascending o
009F90: 72 64 65 72 2E 20 54 68 65 20 74 61 62 6C 65 20 rder. The table
009FA0: 69 73 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 20 is initialized
009FB0: 77 69 74 68 0D 0A 20 20 20 20 20 20 20 74 68 65 with.. the
009FC0: 20 63 75 72 72 65 6E 74 20 6D 61 74 72 69 78 20 current matrix
009FD0: 73 65 74 74 69 6E 67 73 2C 20 77 68 65 74 68 65 settings, whethe
009FE0: 72 20 74 68 65 79 20 77 65 72 65 20 70 72 65 76 r they were prev
009FF0: 69 6F 75 73 6C 79 20 69 6E 20 52 41 4D 20 6F 72 iously in RAM or
00A000: 20 69 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 20 in.. the
00A010: 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ROM..... T
00A020: 68 65 20 74 61 62 6C 65 20 73 68 6F 75 6C 64 20 he table should
00A030: 6E 6F 74 20 62 65 20 6C 6F 63 61 74 65 64 20 69 not be located i
00A040: 6E 20 52 41 4D 20 75 6E 64 65 72 6E 65 61 74 68 n RAM underneath
00A050: 20 61 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 a ROM.....
00A060: 20 20 49 74 20 69 73 20 70 65 72 6D 69 73 73 69 It is permissi
00A070: 62 6C 65 20 66 6F 72 20 74 68 65 20 6E 65 77 20 ble for the new
00A080: 61 6E 64 20 6F 6C 64 20 6D 61 74 72 69 78 20 74 and old matrix t
00A090: 61 62 6C 65 73 20 74 6F 20 20 6F 76 65 72 6C 61 ables to overla
00A0A0: 70 20 20 28 74 68 75 73 0D 0A 20 20 20 20 20 20 p (thus..
00A0B0: 20 61 6C 6C 6F 77 69 6E 67 20 74 68 65 20 74 61 allowing the ta
00A0C0: 62 6C 65 20 20 74 6F 20 20 62 65 20 20 65 78 74 ble to be ext
00A0D0: 65 6E 64 65 64 20 20 6F 72 20 20 63 6F 6E 74 72 ended or contr
00A0E0: 61 63 74 65 64 29 20 20 70 72 6F 76 69 64 69 6E acted) providin
00A0F0: 67 20 20 74 68 61 74 0D 0A 20 20 20 20 20 20 20 g that..
00A100: 6D 61 74 72 69 63 65 73 20 69 6E 20 74 68 65 20 matrices in the
00A110: 6E 65 77 20 74 61 62 6C 65 20 6F 63 63 75 70 79 new table occupy
00A120: 20 61 6E 20 61 64 64 72 65 73 73 20 20 65 61 72 an address ear
00A130: 6C 69 65 72 20 20 74 6F 20 20 74 68 65 20 20 61 lier to the a
00A140: 64 64 72 65 73 73 0D 0A 20 20 20 20 20 20 20 74 ddress.. t
00A150: 68 61 74 20 74 68 65 79 20 6F 63 63 75 70 69 65 hat they occupie
00A160: 64 20 69 6E 20 74 68 65 20 6F 6C 64 20 74 61 62 d in the old tab
00A170: 6C 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 le.............
00A180: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
00A190: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
00A1A0: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
00A1B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A1C0: 20 20 70 61 67 65 20 31 35 2E 36 30 0D 0A 0D 0A page 15.60....
00A1D0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
00A1E0: 20 41 6C 6C 20 73 74 72 65 61 6D 73 20 73 68 61 All streams sha
00A1F0: 72 65 20 74 68 65 20 6D 61 74 72 69 78 20 74 61 re the matrix ta
00A200: 62 6C 65 20 20 73 6F 20 20 61 6E 79 20 20 63 68 ble so any ch
00A210: 61 6E 67 65 73 20 20 74 6F 20 20 69 74 20 20 77 anges to it w
00A220: 69 6C 6C 20 20 62 65 0D 0A 20 20 20 20 20 20 20 ill be..
00A230: 72 65 66 6C 65 63 74 65 64 20 6F 6E 20 61 6C 6C reflected on all
00A240: 20 73 74 72 65 61 6D 73 2E 0D 0A 0D 0A 0D 0A 0D streams........
00A250: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 ....... Re
00A260: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
00A270: 0D 0A 20 20 20 20 20 20 20 54 58 54 20 47 45 54 .. TXT GET
00A280: 20 4D 20 54 41 42 4C 45 0D 0A 20 20 20 20 20 20 M TABLE..
00A290: 20 54 58 54 20 53 45 54 20 4D 41 54 52 49 58 0D TXT SET MATRIX.
00A2A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00A2B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00A2C0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00A2D0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00A2E0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00A2F0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ...............
00A300: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
00A310: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
00A320: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
00A330: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A340: 20 20 70 61 67 65 20 31 35 2E 36 31 0D 0A 0D 0A page 15.61....
00A350: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
00A360: 20 35 38 3A 20 54 58 54 20 47 45 54 20 4D 20 54 58: TXT GET M T
00A370: 41 42 4C 45 20 20 20 20 20 20 20 20 20 20 20 20 ABLE
00A380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A3A0: 20 20 23 42 42 41 45 0D 0A 0D 0A 0D 0A 20 20 20 #BBAE......
00A3B0: 20 20 20 20 47 65 74 20 75 73 65 72 20 64 65 66 Get user def
00A3C0: 69 6E 65 64 20 6D 61 74 72 69 78 20 74 61 62 6C ined matrix tabl
00A3D0: 65 20 61 64 64 72 65 73 73 2E 0D 0A 0D 0A 0D 0A e address.......
00A3E0: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
00A3F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 47 65 74 20 74 .... Get t
00A400: 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 he address of th
00A410: 65 20 63 75 72 72 65 6E 74 20 75 73 65 72 20 64 e current user d
00A420: 65 66 69 6E 65 64 20 6D 61 74 72 69 78 20 74 61 efined matrix ta
00A430: 62 6C 65 20 61 6E 64 20 74 68 65 20 66 69 72 73 ble and the firs
00A440: 74 0D 0A 20 20 20 20 20 20 20 63 68 61 72 61 63 t.. charac
00A450: 74 65 72 20 69 6E 20 74 68 65 20 74 61 62 6C 65 ter in the table
00A460: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ....... En
00A470: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
00A480: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 ..... No c
00A490: 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A onditions.......
00A4A0: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
00A4B0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
00A4C0: 20 20 20 20 49 66 20 74 68 65 72 65 20 69 73 20 If there is
00A4D0: 6E 6F 20 75 73 65 72 20 64 65 66 69 6E 65 64 20 no user defined
00A4E0: 6D 61 74 72 69 78 20 74 61 62 6C 65 3A 0D 0A 0D matrix table:...
00A4F0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
00A500: 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D Carry false..
00A510: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
00A520: 20 41 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 A and HL corrup
00A530: 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 t....... I
00A540: 66 20 74 68 65 72 65 20 69 73 20 61 20 75 73 65 f there is a use
00A550: 72 20 64 65 66 69 6E 65 64 20 6D 61 74 72 69 78 r defined matrix
00A560: 20 74 61 62 6C 65 3A 0D 0A 0D 0A 0D 0A 20 20 20 table:......
00A570: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 Car
00A580: 72 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 ry true...
00A590: 20 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 A cont
00A5A0: 61 69 6E 73 20 74 68 65 20 66 69 72 73 74 20 63 ains the first c
00A5B0: 68 61 72 61 63 74 65 72 20 69 6E 20 74 68 65 20 haracter in the
00A5C0: 74 61 62 6C 65 2E 0D 0A 20 20 20 20 20 20 20 20 table...
00A5D0: 20 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 HL conta
00A5E0: 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 ins the address
00A5F0: 6F 66 20 74 68 65 20 73 74 61 72 74 20 6F 66 20 of the start of
00A600: 74 68 65 20 74 61 62 6C 65 2E 0D 0A 0D 0A 0D 0A the table.......
00A610: 20 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A Always:..
00A620: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
00A630: 20 20 20 20 4F 74 68 65 72 20 66 6C 61 67 73 20 Other flags
00A640: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
00A650: 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 All ot
00A660: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
00A670: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
00A680: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 Notes:....
00A690: 20 20 20 20 20 20 54 68 65 20 6D 61 74 72 69 63 The matric
00A6A0: 65 73 20 66 6F 72 20 63 68 61 72 61 63 74 65 72 es for character
00A6B0: 73 20 62 65 74 77 65 65 6E 20 74 68 65 20 66 69 s between the fi
00A6C0: 72 73 74 20 63 68 61 72 61 63 74 65 72 20 20 61 rst character a
00A6D0: 6E 64 20 20 32 35 35 20 20 61 72 65 0D 0A 20 20 nd 255 are..
00A6E0: 20 20 20 20 20 73 74 6F 72 65 64 20 69 6E 20 74 stored in t
00A6F0: 68 65 20 74 61 62 6C 65 20 69 6E 20 61 73 63 65 he table in asce
00A700: 6E 64 69 6E 67 20 6F 72 64 65 72 2E 20 45 61 63 nding order. Eac
00A710: 68 20 6D 61 74 72 69 78 20 69 73 20 38 20 62 79 h matrix is 8 by
00A720: 74 65 73 20 6C 6F 6E 67 2E 0D 0A 0D 0A 0D 0A 20 tes long.......
00A730: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
00A740: 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tries:....
00A750: 20 54 58 54 20 47 45 54 20 4D 41 54 52 49 58 0D TXT GET MATRIX.
00A760: 0A 20 20 20 20 20 20 20 54 58 54 20 53 45 54 20 . TXT SET
00A770: 4D 20 54 41 42 4C 45 0D 0A 0D 0A 0D 0A 0D 0A 0D M TABLE.........
00A780: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
00A790: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
00A7A0: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
00A7B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A7C0: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 36 32 page 15.62
00A7D0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
00A7E0: 20 20 20 20 20 35 39 3A 20 54 58 54 20 47 45 54 59: TXT GET
00A7F0: 20 43 4F 4E 54 52 4F 4C 53 20 20 20 20 20 20 20 CONTROLS
00A800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00A820: 20 20 20 20 20 20 23 42 42 42 31 0D 0A 0D 0A 20 #BBB1....
00A830: 20 20 20 20 20 20 46 65 74 63 68 20 61 64 64 72 Fetch addr
00A840: 65 73 73 20 6F 66 20 63 6F 6E 74 72 6F 6C 20 63 ess of control c
00A850: 6F 64 65 20 74 61 62 6C 65 2E 0D 0A 0D 0A 20 20 ode table.....
00A860: 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A Action:....
00A870: 20 20 20 20 20 20 20 47 65 74 20 74 68 65 20 61 Get the a
00A880: 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 63 6F ddress of the co
00A890: 6E 74 72 6F 6C 20 63 6F 64 65 20 74 61 62 6C 65 ntrol code table
00A8A0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
00A8B0: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
00A8C0: 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 . No condi
00A8D0: 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 tions.....
00A8E0: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
00A8F0: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 :.... HL c
00A900: 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 ontains the addr
00A910: 65 73 73 20 6F 66 20 74 68 65 20 63 6F 6E 74 72 ess of the contr
00A920: 6F 6C 20 63 6F 64 65 20 74 61 62 6C 65 2E 0D 0A ol code table...
00A930: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
00A940: 20 72 65 67 69 73 74 65 72 73 20 61 6E 64 20 66 registers and f
00A950: 6C 61 67 73 20 70 72 65 73 65 72 76 65 64 2E 0D lags preserved..
00A960: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
00A970: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 73 .... All s
00A980: 74 72 65 61 6D 73 20 73 68 61 72 65 20 6F 6E 65 treams share one
00A990: 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 74 61 control code ta
00A9A0: 62 6C 65 20 73 6F 20 74 68 61 74 20 61 6E 79 20 ble so that any
00A9B0: 63 68 61 6E 67 65 73 20 20 6D 61 64 65 20 20 74 changes made t
00A9C0: 6F 0D 0A 20 20 20 20 20 20 20 74 68 65 20 74 61 o.. the ta
00A9D0: 62 6C 65 20 77 69 6C 6C 20 61 66 66 65 63 74 20 ble will affect
00A9E0: 61 6C 6C 20 73 74 72 65 61 6D 73 2E 0D 0A 0D 0A all streams.....
00A9F0: 20 20 20 20 20 20 20 54 68 65 20 63 6F 6E 74 72 The contr
00AA00: 6F 6C 20 63 6F 64 65 20 74 61 62 6C 65 20 68 61 ol code table ha
00AA10: 73 20 61 20 33 20 62 79 74 65 20 65 6E 74 72 79 s a 3 byte entry
00AA20: 20 66 6F 72 20 65 61 63 68 20 63 6F 6E 74 72 6F for each contro
00AA30: 6C 20 20 63 6F 64 65 2E 20 20 54 68 65 0D 0A 20 l code. The..
00AA40: 20 20 20 20 20 20 65 6E 74 72 69 65 73 20 61 72 entries ar
00AA50: 65 20 73 74 6F 72 65 64 20 69 6E 20 61 73 63 65 e stored in asce
00AA60: 6E 64 69 6E 67 20 6F 72 64 65 72 2C 20 73 6F 20 nding order, so
00AA70: 74 68 65 20 65 6E 74 72 79 20 66 6F 72 20 23 30 the entry for #0
00AA80: 30 20 20 69 73 20 20 66 69 72 73 74 0D 0A 20 20 0 is first..
00AA90: 20 20 20 20 20 61 6E 64 20 74 68 61 74 20 66 6F and that fo
00AAA0: 72 20 23 31 46 20 69 73 20 6C 61 73 74 2E 20 54 r #1F is last. T
00AAB0: 68 65 20 66 69 72 73 74 20 62 79 74 65 20 6F 66 he first byte of
00AAC0: 20 65 61 63 68 20 65 6E 74 72 79 20 69 73 20 20 each entry is
00AAD0: 74 68 65 20 20 6E 75 6D 62 65 72 0D 0A 20 20 20 the number..
00AAE0: 20 20 20 20 6F 66 20 70 61 72 61 6D 65 74 65 72 of parameter
00AAF0: 73 20 74 68 65 20 63 6F 6E 74 72 6F 6C 20 63 6F s the control co
00AB00: 64 65 20 72 65 71 75 69 72 65 73 2C 20 74 68 65 de requires, the
00AB10: 20 6F 74 68 65 72 20 74 77 6F 20 62 79 74 65 73 other two bytes
00AB20: 20 20 61 72 65 20 20 74 68 65 0D 0A 20 20 20 20 are the..
00AB30: 20 20 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 address of th
00AB40: 65 20 72 6F 75 74 69 6E 65 20 74 6F 20 63 61 6C e routine to cal
00AB50: 6C 20 74 68 65 20 70 72 6F 63 65 73 73 20 74 68 l the process th
00AB60: 65 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 20 e control code
00AB70: 77 68 65 6E 20 20 61 6C 6C 0D 0A 20 20 20 20 20 when all..
00AB80: 20 20 69 74 73 20 70 61 72 61 6D 65 74 65 72 73 its parameters
00AB90: 20 68 61 76 65 20 62 65 65 6E 20 72 65 63 65 69 have been recei
00ABA0: 76 65 64 2E 20 54 68 65 20 72 6F 75 74 69 6E 65 ved. The routine
00ABB0: 20 6D 75 73 74 20 62 65 20 6C 6F 63 61 74 65 64 must be located
00ABC0: 20 69 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 in the..
00ABD0: 20 63 65 6E 74 72 61 6C 20 33 32 4B 20 6F 66 20 central 32K of
00ABE0: 52 41 4D 20 61 6E 64 20 69 74 20 6D 75 73 74 20 RAM and it must
00ABF0: 6F 62 65 79 20 74 68 65 20 66 6F 6C 6C 6F 77 69 obey the followi
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: 6E 67 20 69 6E 74 65 72 66 61 63 65 3A 0D 0A 0D ng interface:...
00AD10: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 3A ... Entry:
00AD20: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
00AD30: 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 A contains the
00AD40: 20 6C 61 73 74 20 63 68 61 72 61 63 74 65 72 20 last character
00AD50: 61 64 64 65 64 20 74 6F 20 74 68 65 20 62 75 66 added to the buf
00AD60: 66 65 72 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 fer...
00AD70: 20 20 20 20 20 20 42 20 63 6F 6E 74 61 69 6E 73 B contains
00AD80: 20 74 68 65 20 6C 65 6E 67 74 68 20 6F 66 20 74 the length of t
00AD90: 68 65 20 62 75 66 66 65 72 20 20 28 69 6E 63 6C he buffer (incl
00ADA0: 75 64 69 6E 67 20 20 74 68 65 20 20 63 6F 6E 74 uding the cont
00ADB0: 72 6F 6C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 rol..
00ADC0: 20 20 20 20 20 63 6F 64 65 29 2E 0D 0A 20 20 20 code)...
00ADD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 20 63 C c
00ADE0: 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 61 6D 65 ontains the same
00ADF0: 20 61 73 20 41 2E 0D 0A 20 20 20 20 20 20 20 20 as A...
00AE00: 20 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 HL conta
00AE10: 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 ins the address
00AE20: 6F 66 20 74 68 65 20 63 6F 6E 74 72 6F 6C 20 63 of the control c
00AE30: 6F 64 65 20 62 75 66 66 65 72 20 28 70 6F 69 6E ode buffer (poin
00AE40: 74 73 20 61 74 0D 0A 20 20 20 20 20 20 20 20 20 ts at..
00AE50: 20 20 20 20 20 20 20 74 68 65 20 63 6F 6E 74 72 the contr
00AE60: 6F 6C 20 63 6F 64 65 29 2E 0D 0A 0D 0A 20 20 20 ol code).....
00AE70: 20 20 20 20 20 45 78 69 74 3A 0D 0A 20 20 20 20 Exit:..
00AE80: 20 20 20 20 20 20 20 20 20 20 20 20 41 46 2C 42 AF,B
00AE90: 43 2C 44 45 2C 48 4C 20 63 6F 72 72 75 70 74 2E C,DE,HL corrupt.
00AEA0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
00AEB0: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
00AEC0: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
00AED0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 73 20 74 68 .... As th
00AEE0: 65 20 63 6F 6E 74 72 6F 6C 20 62 75 66 66 65 72 e control buffer
00AEF0: 20 6F 6E 6C 79 20 68 61 73 20 73 70 61 63 65 20 only has space
00AF00: 74 6F 20 73 74 6F 72 65 20 39 20 20 70 61 72 61 to store 9 para
00AF10: 6D 65 74 65 72 20 20 63 68 61 72 61 63 74 65 72 meter character
00AF20: 73 0D 0A 20 20 20 20 20 20 20 74 68 65 20 6E 75 s.. the nu
00AF30: 6D 62 65 72 20 6F 66 20 70 61 72 61 6D 65 74 65 mber of paramete
00AF40: 72 73 20 72 65 71 75 69 72 65 64 20 73 68 6F 75 rs required shou
00AF50: 6C 64 20 62 65 20 6C 69 6D 69 74 65 64 20 74 6F ld be limited to
00AF60: 20 39 20 6F 72 20 66 65 77 65 72 2E 0D 0A 0D 0A 9 or fewer.....
00AF70: 20 20 20 20 20 20 20 54 68 65 20 63 6F 6E 74 72 The contr
00AF80: 6F 6C 20 63 6F 64 65 20 74 61 62 6C 65 20 69 73 ol code table is
00AF90: 20 72 65 69 6E 69 74 69 61 6C 69 7A 65 64 20 74 reinitialized t
00AFA0: 6F 20 69 74 73 20 64 65 66 61 75 6C 74 20 20 72 o its default r
00AFB0: 6F 75 74 69 6E 65 73 20 20 77 68 65 6E 0D 0A 20 outines when..
00AFC0: 20 20 20 20 20 20 54 58 54 20 52 45 53 45 54 20 TXT RESET
00AFD0: 69 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A 20 20 is called.....
00AFE0: 20 20 20 20 20 49 6E 20 56 31 2E 31 20 66 69 72 In V1.1 fir
00AFF0: 6D 77 61 72 65 20 74 68 65 20 66 69 72 73 74 20 mware the first
00B000: 62 79 74 65 20 6F 66 20 65 61 63 68 20 65 6E 74 byte of each ent
00B010: 72 79 20 61 6C 73 6F 20 20 73 70 65 63 69 66 69 ry also specifi
00B020: 65 73 20 20 77 68 65 74 68 65 72 0D 0A 20 20 20 es whether..
00B030: 20 20 20 20 74 68 65 20 63 6F 6E 74 72 6F 6C 20 the control
00B040: 63 6F 64 65 73 20 69 73 20 74 6F 20 62 65 20 20 codes is to be
00B050: 64 69 73 61 62 6C 65 64 20 20 77 68 65 6E 20 20 disabled when
00B060: 74 68 65 20 20 56 44 55 20 20 69 73 20 20 64 69 the VDU is di
00B070: 73 61 62 6C 65 64 20 20 6F 72 0D 0A 20 20 20 20 sabled or..
00B080: 20 20 20 77 68 65 74 68 65 72 20 69 74 20 69 73 whether it is
00B090: 20 61 6C 77 61 79 73 20 74 6F 20 62 65 20 6F 62 always to be ob
00B0A0: 65 79 65 64 2E 20 42 69 74 20 37 20 6F 66 20 74 eyed. Bit 7 of t
00B0B0: 68 65 20 62 79 74 65 20 20 69 73 20 20 73 65 74 he byte is set
00B0C0: 20 20 69 66 20 20 74 68 65 0D 0A 20 20 20 20 20 if the..
00B0D0: 20 20 63 6F 64 65 20 69 73 20 74 6F 20 62 65 20 code is to be
00B0E0: 64 69 73 61 62 6C 65 64 2E 0D 0A 0D 0A 20 20 20 disabled.....
00B0F0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
00B100: 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ies:.... T
00B110: 58 54 20 4F 55 54 50 55 54 0D 0A 0D 0A 0D 0A 20 XT OUTPUT......
00B120: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
00B130: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
00B140: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
00B150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B160: 20 20 70 61 67 65 20 31 35 2E 36 33 0D 0A 0D 0A page 15.63....
00B170: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
00B180: 20 36 30 3A 20 54 58 54 20 53 54 52 20 53 45 4C 60: TXT STR SEL
00B190: 45 43 54 20 20 20 20 20 20 20 20 20 20 20 20 20 ECT
00B1A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B1B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B1C0: 20 20 23 42 42 42 34 0D 0A 0D 0A 20 20 20 20 20 #BBB4....
00B1D0: 20 20 53 65 6C 65 63 74 20 61 20 54 65 78 74 20 Select a Text
00B1E0: 56 44 55 20 73 74 72 65 61 6D 2E 0D 0A 0D 0A 0D VDU stream......
00B1F0: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
00B200: 0A 0D 0A 20 20 20 20 20 20 20 4D 61 6B 65 20 61 ... Make a
00B210: 20 67 69 76 65 6E 20 20 73 74 72 65 61 6D 20 20 given stream
00B220: 74 68 65 20 20 63 75 72 72 65 6E 74 6C 79 20 20 the currently
00B230: 73 65 6C 65 63 74 65 64 20 20 73 74 72 65 61 6D selected stream
00B240: 20 20 28 69 66 20 20 69 74 20 20 69 73 6E 27 74 (if it isn't
00B250: 0D 0A 20 20 20 20 20 20 20 61 6C 72 65 61 64 79 .. already
00B260: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 )..... Ent
00B270: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
00B280: 0D 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 .. A conta
00B290: 69 6E 73 20 74 68 65 20 72 65 71 75 69 72 65 64 ins the required
00B2A0: 20 73 74 72 65 61 6D 2E 0D 0A 0D 0A 20 20 20 20 stream.....
00B2B0: 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F Exit conditio
00B2C0: 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 ns:.... A
00B2D0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 72 65 contains the pre
00B2E0: 76 69 6F 75 73 6C 79 20 73 65 6C 65 63 74 65 64 viously selected
00B2F0: 20 73 74 72 65 61 6D 2E 0D 0A 0D 0A 20 20 20 20 stream.....
00B300: 20 20 20 48 4C 20 61 6E 64 20 66 6C 61 67 73 20 HL and flags
00B310: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
00B320: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
00B330: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
00B340: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
00B350: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s:...... T
00B360: 68 65 20 72 65 71 75 65 73 74 65 64 20 73 74 72 he requested str
00B370: 65 61 6D 20 6E 75 6D 62 65 72 20 69 73 20 6D 61 eam number is ma
00B380: 73 6B 65 64 20 28 77 69 74 68 20 23 30 37 29 20 sked (with #07)
00B390: 74 6F 20 20 6D 61 6B 65 20 20 69 74 20 20 69 6E to make it in
00B3A0: 74 6F 20 20 61 0D 0A 20 20 20 20 20 20 20 6C 65 to a.. le
00B3B0: 67 61 6C 20 73 74 72 65 61 6D 20 6E 75 6D 62 65 gal stream numbe
00B3C0: 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4D r....... M
00B3D0: 61 6E 79 20 61 74 74 72 69 62 75 74 65 73 20 6F any attributes o
00B3E0: 66 20 74 68 65 20 54 65 78 74 20 56 44 55 20 6D f the Text VDU m
00B3F0: 61 79 20 62 65 20 73 65 74 20 69 6E 64 65 70 65 ay be set indepe
00B400: 6E 64 65 6E 74 6C 79 20 6F 6E 20 20 64 69 66 66 ndently on diff
00B410: 65 72 65 6E 74 0D 0A 20 20 20 20 20 20 20 73 74 erent.. st
00B420: 72 65 61 6D 73 2E 20 49 74 20 69 73 20 69 6D 70 reams. It is imp
00B430: 6F 72 74 61 6E 74 20 74 6F 20 65 6E 73 75 72 65 ortant to ensure
00B440: 20 74 68 61 74 20 74 68 65 20 63 6F 72 72 65 63 that the correc
00B450: 74 20 73 74 72 65 61 6D 20 69 73 20 73 65 6C 65 t stream is sele
00B460: 63 74 65 64 0D 0A 20 20 20 20 20 20 20 77 68 65 cted.. whe
00B470: 6E 20 61 6E 74 20 6F 66 20 74 68 65 73 65 20 61 n ant of these a
00B480: 72 65 20 61 6C 74 65 72 65 64 2E 20 54 68 65 73 re altered. Thes
00B490: 65 20 61 74 74 72 69 62 75 74 65 73 20 61 72 65 e attributes are
00B4A0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 :......
00B4B0: 20 20 20 20 20 20 20 50 65 6E 20 69 6E 6B 2E 0D Pen ink..
00B4C0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
00B4D0: 20 50 61 70 65 72 20 69 6E 6B 2E 0D 0A 0D 0A 20 Paper ink.....
00B4E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
00B4F0: 75 72 73 6F 72 20 70 6F 73 69 74 69 6F 6E 2E 0D ursor position..
00B500: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
00B510: 20 57 69 6E 64 6F 77 20 6C 69 6D 69 74 73 2E 0D Window limits..
00B520: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
00B530: 20 43 75 72 73 6F 72 20 65 6E 61 62 6C 65 2F 64 Cursor enable/d
00B540: 69 73 61 62 6C 65 2E 0D 0A 20 20 20 20 20 20 20 isable...
00B550: 20 20 20 20 20 20 20 20 20 43 75 72 73 6F 72 20 Cursor
00B560: 6F 6E 2F 6F 66 66 2E 0D 0A 20 20 20 20 20 20 20 on/off...
00B570: 20 20 20 20 20 20 20 20 20 56 44 55 20 65 6E 61 VDU ena
00B580: 62 6C 65 2F 64 69 73 61 62 6C 65 2E 0D 0A 20 20 ble/disable...
00B590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 68 Ch
00B5A0: 61 72 61 63 74 65 72 20 77 72 69 74 65 20 6D 6F aracter write mo
00B5B0: 64 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 de...
00B5C0: 20 20 20 20 20 47 72 61 70 68 69 63 73 20 63 68 Graphics ch
00B5D0: 61 72 61 63 74 65 72 20 77 72 69 74 65 20 6D 6F aracter write mo
00B5E0: 64 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 de.......
00B5F0: 49 66 20 74 68 65 20 73 74 72 65 61 6D 20 69 73 If the stream is
00B600: 20 61 6C 72 65 61 64 79 20 73 65 6C 65 63 74 65 already selecte
00B610: 64 20 74 68 65 6E 20 74 68 69 73 20 72 6F 75 74 d then this rout
00B620: 69 6E 65 20 20 72 65 74 75 72 6E 73 20 20 71 75 ine returns qu
00B630: 69 63 6B 6C 79 2E 0D 0A 20 20 20 20 20 20 20 49 ickly... I
00B640: 74 20 69 73 20 6E 6F 74 20 75 6E 72 65 61 73 6F t is not unreaso
00B650: 6E 61 62 6C 65 20 74 6F 20 72 65 70 65 61 74 65 nable to repeate
00B660: 64 6C 79 20 20 73 65 6C 65 63 74 20 20 61 20 20 dly select a
00B670: 73 74 72 65 61 6D 20 20 28 62 65 66 6F 72 65 20 stream (before
00B680: 20 65 61 63 68 0D 0A 20 20 20 20 20 20 20 63 68 each.. ch
00B690: 61 72 61 63 74 65 72 20 73 65 6E 74 2C 20 66 6F aracter sent, fo
00B6A0: 72 20 65 78 61 6D 70 6C 65 29 2E 0D 0A 0D 0A 0D r example)......
00B6B0: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
00B6C0: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 entries:....
00B6D0: 20 20 20 54 58 54 20 4F 55 54 50 55 54 0D 0A 0D TXT OUTPUT...
00B6E0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
00B6F0: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
00B700: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
00B710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B720: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
00B730: 20 31 35 2E 36 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.64..........
00B740: 0D 0A 0D 0A 20 20 20 20 20 20 20 36 31 3A 20 54 .... 61: T
00B750: 58 54 20 53 57 41 50 20 53 54 52 45 41 4D 53 20 XT SWAP STREAMS
00B760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B780: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 42 42 #BBB
00B790: 37 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 77 7...... Sw
00B7A0: 61 70 20 74 68 65 20 73 74 61 74 65 73 20 6F 66 ap the states of
00B7B0: 20 74 77 6F 20 73 74 72 65 61 6D 73 2E 0D 0A 0D two streams....
00B7C0: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
00B7D0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 :...... Th
00B7E0: 65 20 73 74 72 65 61 6D 20 64 65 73 63 72 69 70 e stream descrip
00B7F0: 74 6F 72 73 20 66 6F 72 20 74 77 6F 20 73 74 72 tors for two str
00B800: 65 61 6D 73 20 61 72 65 20 20 65 78 63 68 61 6E eams are exchan
00B810: 67 65 64 2E 20 20 54 68 65 20 20 63 75 72 72 65 ged. The curre
00B820: 6E 74 6C 79 0D 0A 20 20 20 20 20 20 20 73 65 6C ntly.. sel
00B830: 65 63 74 65 64 20 73 74 72 65 61 6D 20 6E 75 6D ected stream num
00B840: 62 65 72 20 72 65 6D 61 69 6E 73 20 74 68 65 20 ber remains the
00B850: 73 61 6D 65 20 28 61 6C 74 68 6F 75 67 68 20 69 same (although i
00B860: 74 73 20 20 64 65 73 63 72 69 70 74 6F 72 20 20 ts descriptor
00B870: 6D 61 79 0D 0A 20 20 20 20 20 20 20 68 61 76 65 may.. have
00B880: 20 62 65 65 6E 20 61 6C 74 65 72 65 64 29 2E 0D been altered)..
00B890: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
00B8A0: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
00B8B0: 0A 0D 0A 20 20 20 20 20 20 20 42 20 63 6F 6E 74 ... B cont
00B8C0: 61 69 6E 73 20 61 20 73 74 72 65 61 6D 20 6E 75 ains a stream nu
00B8D0: 6D 62 65 72 2E 0D 0A 20 20 20 20 20 20 20 43 20 mber... C
00B8E0: 63 6F 6E 74 61 69 6E 73 20 61 6E 6F 74 68 65 72 contains another
00B8F0: 20 73 74 72 65 61 6D 20 6E 75 6D 62 65 72 2E 0D stream number..
00B900: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
00B910: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
00B920: 0D 0A 20 20 20 20 20 20 20 41 46 2C 42 43 2C 44 .. AF,BC,D
00B930: 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 E and HL corrupt
00B940: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
00B950: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
00B960: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
00B970: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
00B980: 0A 20 20 20 20 20 20 20 54 68 65 20 73 74 72 65 . The stre
00B990: 61 6D 20 6E 75 6D 62 65 72 73 20 70 61 73 73 65 am numbers passe
00B9A0: 64 20 61 72 65 20 6D 61 73 6B 65 64 20 28 77 69 d are masked (wi
00B9B0: 74 68 20 23 30 37 29 20 74 6F 20 74 68 61 74 20 th #07) to that
00B9C0: 74 68 65 79 20 61 72 65 20 6C 65 67 61 6C 0D 0A they are legal..
00B9D0: 20 20 20 20 20 20 20 73 74 72 65 61 6D 20 6E 75 stream nu
00B9E0: 6D 62 65 72 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 mbers.......
00B9F0: 20 20 20 54 68 65 20 61 74 74 72 69 62 75 74 65 The attribute
00BA00: 73 20 74 68 61 74 20 61 72 65 20 65 78 63 68 61 s that are excha
00BA10: 6E 67 65 64 20 61 72 65 3A 0D 0A 0D 0A 0D 0A 20 nged are:......
00BA20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 P
00BA30: 65 6E 20 69 6E 6B 2E 0D 0A 20 20 20 20 20 20 20 en ink...
00BA40: 20 20 20 20 20 20 20 20 20 50 61 70 65 72 20 69 Paper i
00BA50: 6E 6B 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 nk...
00BA60: 20 20 20 20 20 43 75 72 73 6F 72 20 70 6F 73 69 Cursor posi
00BA70: 74 69 6F 6E 2E 0D 0A 20 20 20 20 20 20 20 20 20 tion...
00BA80: 20 20 20 20 20 20 20 57 69 6E 64 6F 77 20 6C 69 Window li
00BA90: 6D 69 74 73 2E 0D 0A 20 20 20 20 20 20 20 20 20 mits...
00BAA0: 20 20 20 20 20 20 20 43 75 72 73 6F 72 20 65 6E Cursor en
00BAB0: 61 62 6C 65 2F 64 69 73 61 62 6C 65 2E 0D 0A 20 able/disable...
00BAC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
00BAD0: 75 72 73 6F 72 20 6F 6E 2F 6F 66 66 2E 0D 0A 20 ursor on/off...
00BAE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 56 V
00BAF0: 44 55 20 65 6E 61 62 6C 65 2F 64 69 73 61 62 6C DU enable/disabl
00BB00: 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 e...
00BB10: 20 20 20 20 43 68 61 72 61 63 74 65 72 20 77 72 Character wr
00BB20: 69 74 65 20 6D 6F 64 65 2E 0D 0A 20 20 20 20 20 ite mode...
00BB30: 20 20 20 20 20 20 20 20 20 20 20 47 72 61 70 68 Graph
00BB40: 69 63 73 20 63 68 61 72 61 63 74 65 72 20 77 72 ics character wr
00BB50: 69 74 65 20 6D 6F 64 65 2E 0D 0A 0D 0A 0D 0A 20 ite mode.......
00BB60: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
00BB70: 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tries:......
00BB80: 20 20 20 54 58 54 20 53 54 52 20 53 45 4C 45 43 TXT STR SELEC
00BB90: 54 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 T..............
00BBA0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
00BBB0: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
00BBC0: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
00BBD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00BBE0: 20 20 70 61 67 65 20 31 35 2E 36 35 0D 0A 0D 0A page 15.65....
00BBF0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
00BC00: 20 36 32 3A 20 47 52 41 20 49 4E 49 54 49 41 4C 62: GRA INITIAL
00BC10: 49 53 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ISE
00BC20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00BC30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00BC40: 20 20 23 42 42 42 41 0D 0A 0D 0A 0D 0A 20 20 20 #BBBA......
00BC50: 20 20 20 20 49 6E 69 74 69 61 6C 69 7A 65 20 74 Initialize t
00BC60: 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 2E he Graphics VDU.
00BC70: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 ...... Act
00BC80: 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion:......
00BC90: 20 54 68 65 20 47 72 61 70 68 69 63 73 20 56 44 The Graphics VD
00BCA0: 55 20 69 73 20 66 75 6C 6C 79 20 69 6E 69 74 69 U is fully initi
00BCB0: 61 6C 69 7A 65 64 20 28 61 73 20 64 75 72 69 6E alized (as durin
00BCC0: 67 20 45 4D 53 29 2E 20 41 6C 6C 20 47 72 61 70 g EMS). All Grap
00BCD0: 68 69 63 20 56 44 55 0D 0A 20 20 20 20 20 20 20 hic VDU..
00BCE0: 76 61 72 69 61 62 6C 65 73 20 61 6E 64 20 69 6E variables and in
00BCF0: 64 69 72 65 63 74 69 6F 6E 73 20 61 72 65 20 73 directions are s
00BD00: 65 74 20 74 6F 20 74 68 65 69 72 20 64 65 66 61 et to their defa
00BD10: 75 6C 74 20 76 61 6C 75 65 73 2E 0D 0A 0D 0A 0D ult values......
00BD20: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
00BD30: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
00BD40: 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 No conditi
00BD50: 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons.......
00BD60: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
00BD70: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
00BD80: 2C 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 63 6F ,BC,DE and HL co
00BD90: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 rrupt... A
00BDA0: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
00BDB0: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
00BDC0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
00BDD0: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s:...... T
00BDE0: 68 65 20 66 75 6C 6C 20 6F 70 65 72 61 74 69 6F he full operatio
00BDF0: 6E 20 69 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 n is:......
00BE00: 20 20 20 20 20 20 53 65 74 20 74 68 65 20 47 72 Set the Gr
00BE10: 61 70 68 69 63 73 20 56 44 55 20 69 6E 64 69 72 aphics VDU indir
00BE20: 65 63 74 69 6F 6E 73 20 28 47 52 41 20 20 50 4C ections (GRA PL
00BE30: 4F 54 2C 20 20 47 52 41 20 20 54 45 53 54 20 20 OT, GRA TEST
00BE40: 61 6E 64 20 20 47 52 41 0D 0A 20 20 20 20 20 20 and GRA..
00BE50: 20 20 20 20 20 4C 49 4E 45 29 20 74 6F 20 74 68 LINE) to th
00BE60: 65 69 72 20 64 65 66 61 75 6C 74 20 72 6F 75 74 eir default rout
00BE70: 69 6E 65 73 2E 0D 0A 20 20 20 20 20 20 20 20 20 ines...
00BE80: 20 20 53 65 74 20 74 68 65 20 67 72 61 70 68 69 Set the graphi
00BE90: 63 73 20 70 61 70 65 72 20 74 6F 20 69 6E 6B 20 cs paper to ink
00BEA0: 30 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 53 0... S
00BEB0: 65 74 20 74 68 65 20 67 72 61 70 68 69 63 73 20 et the graphics
00BEC0: 70 65 6E 20 74 6F 20 69 6E 6B 20 31 2E 0D 0A 20 pen to ink 1...
00BED0: 20 20 20 20 20 20 20 20 20 20 53 65 74 20 74 68 Set th
00BEE0: 65 20 75 73 65 72 20 6F 72 69 67 69 6E 20 74 6F e user origin to
00BEF0: 20 74 68 65 20 62 6F 74 74 6F 6D 20 6C 65 66 74 the bottom left
00BF00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
00BF10: 0A 00 00 00 02 09 50 E5 0A 00 C1 02 00 00 00 02 ......P.........
00BF20: 0A 00 C2 02 00 00 00 02 0A 00 C3 02 00 00 00 02 ................
00BF30: 0A 00 C4 02 00 00 00 02 0A 00 C5 02 00 00 00 02 ................
00BF40: 0A 00 C6 02 00 00 00 02 0A 00 C7 02 00 00 00 02 ................
00BF50: 0A 00 C8 02 00 00 00 02 0A 00 C9 02 00 00 00 02 ................
00BF60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00C000: 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 73 corner of the s
00C010: 63 72 65 65 6E 2E 0D 0A 20 20 20 20 20 20 20 20 creen...
00C020: 20 20 20 4D 6F 76 65 20 74 68 65 20 63 75 72 72 Move the curr
00C030: 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 74 6F 20 ent position to
00C040: 74 68 65 20 75 73 65 72 20 6F 72 69 67 69 6E 2E the user origin.
00C050: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 53 65 74 .. Set
00C060: 20 74 68 65 20 67 72 61 70 68 69 63 73 20 77 69 the graphics wi
00C070: 6E 64 6F 77 20 74 6F 20 63 6F 76 65 72 20 74 68 ndow to cover th
00C080: 65 20 77 68 6F 6C 65 20 73 63 72 65 65 6E 2E 0D e whole screen..
00C090: 0A 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 . The
00C0A0: 67 72 61 70 68 69 63 73 20 62 61 63 6B 67 72 6F graphics backgro
00C0B0: 75 6E 64 20 77 72 69 74 65 20 6D 6F 64 65 20 69 und write mode i
00C0C0: 73 20 73 65 74 20 74 6F 20 6F 70 61 71 75 65 2E s set to opaque.
00C0D0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 54 68 65 .. The
00C0E0: 20 6C 69 6E 65 20 6D 61 73 6B 20 69 73 20 73 65 line mask is se
00C0F0: 74 20 74 6F 20 23 46 46 20 61 6E 64 20 74 68 65 t to #FF and the
00C100: 20 66 69 72 73 74 20 70 69 78 65 6C 20 6C 69 6E first pixel lin
00C110: 65 73 20 61 72 65 20 70 6C 6F 74 74 65 64 2E 0D es are plotted..
00C120: 0A 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 . The
00C130: 67 72 61 70 68 69 63 73 20 77 69 6E 64 6F 77 20 graphics window
00C140: 69 73 20 6E 6F 74 20 63 6C 65 61 72 65 64 2E 0D is not cleared..
00C150: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
00C160: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
00C170: 0D 0A 20 20 20 20 20 20 20 47 52 41 20 44 45 46 .. GRA DEF
00C180: 41 55 4C 54 0D 0A 20 20 20 20 20 20 20 47 52 41 AULT.. GRA
00C190: 20 52 45 53 45 54 0D 0A 20 20 20 20 20 20 20 53 RESET.. S
00C1A0: 43 52 20 49 4E 49 54 49 41 4C 49 53 45 0D 0A 0D CR INITIALISE...
00C1B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ...............
00C1C0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
00C1D0: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
00C1E0: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
00C1F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C200: 20 20 70 61 67 65 20 31 35 2E 36 36 0D 0A 0D 0A page 15.66....
00C210: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
00C220: 20 36 33 3A 20 47 52 41 20 52 45 53 45 54 20 20 63: GRA RESET
00C230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C260: 20 20 23 42 42 42 44 0D 0A 0D 0A 0D 0A 20 20 20 #BBBD......
00C270: 20 20 20 20 52 65 73 65 74 20 74 68 65 20 47 72 Reset the Gr
00C280: 61 70 68 69 63 73 20 56 44 55 2E 0D 0A 0D 0A 0D aphics VDU......
00C290: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
00C2A0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 2D 69 ..... Re-i
00C2B0: 6E 69 74 69 61 6C 69 7A 65 20 74 68 65 20 47 72 nitialize the Gr
00C2C0: 61 70 68 69 63 73 20 56 44 55 20 69 6E 64 69 72 aphics VDU indir
00C2D0: 65 63 74 69 6F 6E 73 20 74 6F 20 74 68 65 69 72 ections to their
00C2E0: 20 64 65 66 61 75 6C 74 20 20 72 6F 75 74 69 6E default routin
00C2F0: 65 73 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 73 es.. and s
00C300: 65 74 20 64 65 66 61 75 6C 74 20 6D 6F 64 65 73 et default modes
00C310: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ....... En
00C320: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
00C330: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 ..... No c
00C340: 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A onditions.......
00C350: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
00C360: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
00C370: 20 20 20 20 41 46 2C 42 43 2C 44 45 20 61 6E 64 AF,BC,DE and
00C380: 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 HL corrupt...
00C390: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
00C3A0: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
00C3B0: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
00C3C0: 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 Notes:......
00C3D0: 20 20 20 53 65 74 73 20 74 68 65 20 47 72 61 70 Sets the Grap
00C3E0: 68 69 63 73 20 56 44 55 20 69 6E 64 69 72 65 63 hics VDU indirec
00C3F0: 74 69 6F 6E 73 20 28 47 52 41 20 50 4C 4F 54 2C tions (GRA PLOT,
00C400: 20 47 52 41 20 54 45 53 54 20 61 6E 64 20 20 47 GRA TEST and G
00C410: 52 41 20 20 4C 49 4E 45 29 0D 0A 20 20 20 20 20 RA LINE)..
00C420: 20 20 74 6F 20 74 68 65 69 72 20 64 65 66 61 75 to their defau
00C430: 6C 74 20 20 72 6F 75 74 69 6E 65 73 2E 20 20 56 lt routines. V
00C440: 31 2E 31 20 20 66 69 72 6D 77 61 72 65 20 20 61 1.1 firmware a
00C450: 6C 73 6F 20 20 73 65 74 73 20 20 74 68 65 20 20 lso sets the
00C460: 67 72 61 70 68 69 63 73 0D 0A 20 20 20 20 20 20 graphics..
00C470: 20 62 61 63 6B 67 72 6F 75 6E 64 20 6D 6F 64 65 background mode
00C480: 20 74 6F 20 6F 70 61 71 75 65 2C 20 73 65 74 73 to opaque, sets
00C490: 20 74 68 65 20 6C 69 6E 65 20 6D 61 73 6B 20 20 the line mask
00C4A0: 74 6F 20 20 23 46 46 20 20 61 6E 64 20 20 73 65 to #FF and se
00C4B0: 74 73 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 ts the..
00C4C0: 66 69 72 73 74 20 70 69 78 65 6C 20 6F 66 20 6C first pixel of l
00C4D0: 69 6E 65 73 20 74 6F 20 62 65 20 70 6C 6F 74 74 ines to be plott
00C4E0: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
00C4F0: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
00C500: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 ...... GRA
00C510: 20 44 45 46 41 55 4C 54 0D 0A 20 20 20 20 20 20 DEFAULT..
00C520: 20 47 52 41 20 49 4E 49 54 49 41 4C 49 53 45 0D GRA INITIALISE.
00C530: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00C540: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00C550: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
00C560: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
00C570: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
00C580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C590: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
00C5A0: 35 2E 36 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 5.67............
00C5B0: 0D 0A 20 20 20 20 20 20 20 36 34 3A 20 47 52 41 .. 64: GRA
00C5C0: 20 4D 4F 56 45 20 41 42 53 4F 4C 55 54 45 20 20 MOVE ABSOLUTE
00C5D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C5E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C5F0: 20 20 20 20 20 20 20 20 20 20 23 42 42 43 30 0D #BBC0.
00C600: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
00C610: 4D 6F 76 65 20 74 6F 20 61 6E 20 61 62 73 6F 6C Move to an absol
00C620: 75 74 65 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D ute position....
00C630: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 ....... Ac
00C640: 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tion:......
00C650: 20 20 4D 6F 76 65 20 74 68 65 20 63 75 72 72 65 Move the curre
00C660: 6E 74 20 70 6F 73 69 74 69 6F 6E 20 74 6F 20 61 nt position to a
00C670: 6E 20 61 62 73 6F 6C 75 74 65 20 70 6F 73 69 74 n absolute posit
00C680: 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion.......
00C690: 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E Entry condition
00C6A0: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 s:...... D
00C6B0: 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 72 E contains the r
00C6C0: 65 71 75 69 72 65 64 20 75 73 65 72 20 58 20 63 equired user X c
00C6D0: 6F 6F 72 64 69 6E 61 74 65 2E 0D 0A 20 20 20 20 oordinate...
00C6E0: 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 HL contains t
00C6F0: 68 65 20 72 65 71 75 69 72 65 64 20 75 73 65 72 he required user
00C700: 20 59 20 63 6F 6F 72 64 69 6E 61 74 65 2E 0D 0A Y coordinate...
00C710: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
00C720: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
00C730: 0A 20 20 20 20 20 20 20 41 46 2C 42 43 2C 44 45 . AF,BC,DE
00C740: 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E and HL corrupt.
00C750: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
00C760: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
00C770: 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 served.......
00C780: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A Notes:......
00C790: 20 20 20 20 20 20 20 54 68 65 20 6E 65 77 20 70 The new p
00C7A0: 6F 73 69 74 69 6F 6E 20 69 73 20 67 69 76 65 6E osition is given
00C7B0: 20 69 6E 20 75 73 65 72 20 63 6F 6F 72 64 69 6E in user coordin
00C7C0: 61 74 65 73 2E 20 69 2E 65 2E 20 20 52 65 6C 61 ates. i.e. Rela
00C7D0: 74 69 76 65 20 20 74 6F 20 20 74 68 65 0D 0A 20 tive to the..
00C7E0: 20 20 20 20 20 20 75 73 65 72 20 6F 72 69 67 69 user origi
00C7F0: 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 n....... T
00C800: 68 65 20 6E 65 77 20 70 6F 73 69 74 69 6F 6E 20 he new position
00C810: 63 61 6E 20 62 65 20 6F 75 74 73 69 64 65 20 74 can be outside t
00C820: 68 65 20 67 72 61 70 68 69 63 73 20 77 69 6E 64 he graphics wind
00C830: 6F 77 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ow.......
00C840: 54 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 The Graphics VDU
00C850: 20 70 6C 6F 74 74 69 6E 67 2C 20 74 65 73 74 69 plotting, testi
00C860: 6E 67 20 61 6E 64 20 6C 69 6E 65 20 64 72 61 77 ng and line draw
00C870: 69 6E 67 20 72 6F 75 74 69 6E 65 73 20 61 6C 6C ing routines all
00C880: 20 20 6D 6F 76 65 0D 0A 20 20 20 20 20 20 20 74 move.. t
00C890: 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 he current graph
00C8A0: 69 63 73 20 70 6F 73 69 74 69 6F 6E 20 74 6F 20 ics position to
00C8B0: 74 68 65 20 20 70 6F 69 6E 74 20 20 28 6F 72 20 the point (or
00C8C0: 20 65 6E 64 70 6F 69 6E 74 29 20 20 73 70 65 63 endpoint) spec
00C8D0: 69 66 69 65 64 0D 0A 20 20 20 20 20 20 20 61 75 ified.. au
00C8E0: 74 6F 6D 61 74 69 63 61 6C 6C 79 2E 0D 0A 0D 0A tomatically.....
00C8F0: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
00C900: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 entries:......
00C910: 20 20 20 20 20 20 47 52 41 20 41 53 4B 20 43 55 GRA ASK CU
00C920: 52 53 4F 52 0D 0A 20 20 20 20 20 20 20 47 52 41 RSOR.. GRA
00C930: 20 4D 4F 56 45 20 52 45 4C 41 54 49 56 45 0D 0A MOVE RELATIVE..
00C940: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00C950: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
00C960: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
00C970: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
00C980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C990: 20 20 20 20 20 70 61 67 65 20 31 35 2E 36 38 0D page 15.68.
00C9A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
00C9B0: 20 20 20 20 36 35 3A 20 47 52 41 20 4D 4F 56 45 65: GRA MOVE
00C9C0: 20 52 45 4C 41 54 49 56 45 20 20 20 20 20 20 20 RELATIVE
00C9D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C9E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C9F0: 20 20 20 20 20 23 42 42 43 33 0D 0A 0D 0A 0D 0A #BBC3......
00CA00: 20 20 20 20 20 20 20 4D 6F 76 65 20 72 65 6C 61 Move rela
00CA10: 74 69 76 65 20 74 6F 20 63 75 72 72 65 6E 74 20 tive to current
00CA20: 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 position.......
00CA30: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
00CA40: 0A 0D 0A 20 20 20 20 20 20 20 4D 6F 76 65 20 74 ... Move t
00CA50: 68 65 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 he current posit
00CA60: 69 6F 6E 20 74 6F 20 72 65 6C 61 74 69 76 65 20 ion to relative
00CA70: 74 6F 20 69 74 73 20 63 75 72 72 65 6E 74 20 70 to its current p
00CA80: 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 osition.......
00CA90: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
00CAA0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
00CAB0: 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 61 DE contains a
00CAC0: 20 73 69 67 6E 65 64 20 58 20 6F 66 66 73 65 74 signed X offset
00CAD0: 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E ... HL con
00CAE0: 74 61 69 6E 73 20 61 20 73 69 67 6E 65 64 20 59 tains a signed Y
00CAF0: 20 6F 66 66 73 65 74 2E 0D 0A 0D 0A 0D 0A 20 20 offset.......
00CB00: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
00CB10: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
00CB20: 20 20 41 46 2C 42 43 2C 44 45 20 61 6E 64 20 48 AF,BC,DE and H
00CB30: 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 L corrupt...
00CB40: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
00CB50: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
00CB60: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
00CB70: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
00CB80: 20 54 68 65 20 6E 65 77 20 70 6F 73 69 74 69 6F The new positio
00CB90: 6E 20 63 61 6E 20 62 65 20 6F 75 74 73 69 64 65 n can be outside
00CBA0: 20 74 68 65 20 67 72 61 70 68 69 63 73 20 77 69 the graphics wi
00CBB0: 6E 64 6F 77 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ndow.......
00CBC0: 20 20 54 68 65 20 47 72 61 70 68 69 63 73 20 56 The Graphics V
00CBD0: 44 55 20 70 6C 6F 74 74 69 6E 67 2C 20 74 65 73 DU plotting, tes
00CBE0: 74 69 6E 67 20 61 6E 64 20 6C 69 6E 65 20 64 72 ting and line dr
00CBF0: 61 77 69 6E 67 20 72 6F 75 74 69 6E 65 73 20 61 awing routines a
00CC00: 6C 6C 20 20 6D 6F 76 65 0D 0A 20 20 20 20 20 20 ll move..
00CC10: 20 74 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 the current gra
00CC20: 70 68 69 63 73 20 70 6F 73 69 74 69 6F 6E 20 74 phics position t
00CC30: 6F 20 74 68 65 20 20 70 6F 69 6E 74 20 20 28 6F o the point (o
00CC40: 72 20 20 65 6E 64 70 6F 69 6E 74 29 20 20 73 70 r endpoint) sp
00CC50: 65 63 69 66 69 65 64 0D 0A 20 20 20 20 20 20 20 ecified..
00CC60: 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 2E 0D 0A automatically...
00CC70: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 ........ R
00CC80: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
00CC90: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 ....... GR
00CCA0: 41 20 41 53 4B 20 43 55 52 53 4F 52 0D 0A 20 20 A ASK CURSOR..
00CCB0: 20 20 20 20 20 47 52 41 20 4D 4F 56 45 20 41 42 GRA MOVE AB
00CCC0: 53 4F 4C 55 54 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A SOLUTE..........
00CCD0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00CCE0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
00CCF0: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
00CD00: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
00CD10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00CD20: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 36 page 15.6
00CD30: 39 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 9..............
00CD40: 20 20 20 20 20 20 36 36 3A 20 47 52 41 20 41 53 66: GRA AS
00CD50: 4B 20 43 55 52 53 4F 52 20 20 20 20 20 20 20 20 K CURSOR
00CD60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00CD70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00CD80: 20 20 20 20 20 20 20 23 42 42 43 36 0D 0A 0D 0A #BBC6....
00CD90: 0D 0A 20 20 20 20 20 20 20 47 65 74 20 74 68 65 .. Get the
00CDA0: 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 69 6F current positio
00CDB0: 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 n....... A
00CDC0: 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 ction:......
00CDD0: 20 20 20 41 73 6B 20 77 68 65 72 65 20 74 68 65 Ask where the
00CDE0: 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 69 63 current graphic
00CDF0: 73 20 70 6F 73 69 74 69 6F 6E 20 69 73 2E 0D 0A s position is...
00CE00: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 .... Entry
00CE10: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
00CE20: 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 .. No cond
00CE30: 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 itions.......
00CE40: 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 Exit conditi
00CE50: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
00CE60: 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 DE contains the
00CE70: 20 75 73 65 72 20 58 20 63 6F 6F 72 64 69 6E 61 user X coordina
00CE80: 74 65 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 te... HL c
00CE90: 6F 6E 74 61 69 6E 73 20 74 68 65 20 75 73 65 72 ontains the user
00CEA0: 20 59 20 63 6F 6F 72 64 69 6E 61 74 65 2E 0D 0A Y coordinate...
00CEB0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 63 6F .... AF co
00CEC0: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 rrupt... A
00CED0: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
00CEE0: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
00CEF0: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
00CF00: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
00CF10: 20 6E 65 77 20 70 6F 73 69 74 69 6F 6E 20 69 73 new position is
00CF20: 20 67 69 76 65 6E 20 69 6E 20 75 73 65 72 20 63 given in user c
00CF30: 6F 6F 72 64 69 6E 61 74 65 73 2E 20 69 2E 65 2E oordinates. i.e.
00CF40: 20 20 52 65 6C 61 74 69 76 65 20 20 74 6F 20 20 Relative to
00CF50: 74 68 65 0D 0A 20 20 20 20 20 20 20 75 73 65 72 the.. user
00CF60: 20 6F 72 69 67 69 6E 2E 0D 0A 0D 0A 0D 0A 20 20 origin.......
00CF70: 20 20 20 20 20 54 68 65 20 47 72 61 70 68 69 63 The Graphic
00CF80: 73 20 56 44 55 20 70 6C 6F 74 74 69 6E 67 2C 20 s VDU plotting,
00CF90: 74 65 73 74 69 6E 67 20 61 6E 64 20 6C 69 6E 65 testing and line
00CFA0: 20 64 72 61 77 69 6E 67 20 72 6F 75 74 69 6E 65 drawing routine
00CFB0: 73 20 61 6C 6C 20 20 6D 6F 76 65 0D 0A 20 20 20 s all move..
00CFC0: 20 20 20 20 74 68 65 20 63 75 72 72 65 6E 74 20 the current
00CFD0: 67 72 61 70 68 69 63 73 20 70 6F 73 69 74 69 6F graphics positio
00CFE0: 6E 20 74 6F 20 74 68 65 20 20 70 6F 69 6E 74 20 n to the point
00CFF0: 20 28 6F 72 20 20 65 6E 64 70 6F 69 6E 74 29 20 (or endpoint)
00D000: 20 73 70 65 63 69 66 69 65 64 0D 0A 20 20 20 20 specified..
00D010: 20 20 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 automatically
00D020: 2E 20 54 68 75 73 2C 20 74 68 65 20 70 6F 73 69 . Thus, the posi
00D030: 74 69 6F 6E 20 72 65 74 75 72 6E 65 64 20 69 73 tion returned is
00D040: 20 70 72 6F 62 61 62 6C 79 20 77 68 65 72 65 20 probably where
00D050: 74 68 65 20 20 6C 61 73 74 0D 0A 20 20 20 20 20 the last..
00D060: 20 20 70 6F 69 6E 74 20 77 61 73 20 70 6C 6F 74 point was plot
00D070: 74 65 64 20 6F 72 20 74 65 73 74 65 64 2E 0D 0A ted or tested...
00D080: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
00D090: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
00D0A0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 ..... GRA
00D0B0: 4D 4F 56 45 20 41 42 53 4F 4C 55 54 45 0D 0A 20 MOVE ABSOLUTE..
00D0C0: 20 20 20 20 20 20 47 52 41 20 4D 4F 56 45 20 52 GRA MOVE R
00D0D0: 45 4C 41 54 49 56 45 0D 0A 0D 0A 0D 0A 0D 0A 0D ELATIVE.........
00D0E0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
00D0F0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
00D100: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
00D110: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
00D120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D130: 70 61 67 65 20 31 35 2E 37 30 0D 0A 0D 0A 0D 0A page 15.70......
00D140: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 36 ........ 6
00D150: 37 3A 20 47 52 41 20 53 45 54 20 4F 52 49 47 49 7: GRA SET ORIGI
00D160: 4E 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 N
00D170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D190: 23 42 42 43 39 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #BBC9......
00D1A0: 20 20 53 65 74 20 74 68 65 20 6F 72 69 67 69 6E Set the origin
00D1B0: 20 6F 66 20 74 68 65 20 75 73 65 72 20 63 6F 6F of the user coo
00D1C0: 72 64 69 6E 61 74 65 73 2E 0D 0A 0D 0A 0D 0A 20 rdinates.......
00D1D0: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
00D1E0: 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 ... Set th
00D1F0: 65 20 6C 6F 63 61 74 69 6F 6E 20 6F 66 20 74 68 e location of th
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: 65 20 75 73 65 72 20 6F 72 69 67 69 6E 20 20 61 e user origin a
00D310: 6E 64 20 20 6D 6F 76 65 20 20 74 68 65 20 20 63 nd move the c
00D320: 75 72 72 65 6E 74 20 20 70 6F 73 69 74 69 6F 6E urrent position
00D330: 0D 0A 20 20 20 20 20 20 20 74 68 65 72 65 2E 0D .. there..
00D340: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
00D350: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
00D360: 0A 0D 0A 20 20 20 20 20 20 20 44 45 20 63 6F 6E ... DE con
00D370: 74 61 69 6E 73 20 74 68 65 20 73 74 61 6E 64 61 tains the standa
00D380: 72 64 20 58 20 63 6F 6F 72 64 69 6E 61 74 65 20 rd X coordinate
00D390: 6F 66 20 74 68 65 20 6F 72 69 67 69 6E 2E 0D 0A of the origin...
00D3A0: 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 HL contai
00D3B0: 6E 73 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 ns the standard
00D3C0: 59 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F 66 20 Y coordinate of
00D3D0: 74 68 65 20 6F 72 69 67 69 6E 2E 0D 0A 0D 0A 0D the origin......
00D3E0: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
00D3F0: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
00D400: 20 20 20 20 20 41 46 2C 42 43 2C 44 45 20 61 6E AF,BC,DE an
00D410: 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 0D d HL corrupt....
00D420: 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
00D430: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
00D440: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
00D450: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
00D460: 0A 20 20 20 20 20 20 20 54 68 65 20 6F 72 69 67 . The orig
00D470: 69 6E 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 67 in position is g
00D480: 69 76 65 6E 20 69 73 20 73 74 61 6E 64 61 72 64 iven is standard
00D490: 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 69 6E 20 coordinates in
00D4A0: 77 68 69 63 68 20 28 30 2C 30 29 20 69 73 0D 0A which (0,0) is..
00D4B0: 20 20 20 20 20 20 20 74 68 65 20 62 6F 74 74 6F the botto
00D4C0: 6D 20 6C 65 66 74 20 63 6F 72 6E 65 72 20 6F 66 m left corner of
00D4D0: 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A the screen.....
00D4E0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 64 65 66 .. The def
00D4F0: 61 75 6C 74 20 6F 72 69 67 69 6E 20 70 6F 73 69 ault origin posi
00D500: 74 69 6F 6E 20 69 73 20 61 74 20 28 30 2C 30 29 tion is at (0,0)
00D510: 2E 20 57 68 65 6E 65 76 65 72 20 74 68 65 20 73 . Whenever the s
00D520: 63 72 65 65 6E 20 20 6D 6F 64 65 20 20 69 73 0D creen mode is.
00D530: 0A 20 20 20 20 20 20 20 63 68 61 6E 67 65 64 2C . changed,
00D540: 20 62 79 20 63 61 6C 6C 69 6E 67 20 53 43 52 20 by calling SCR
00D550: 53 45 54 20 20 4D 4F 44 45 2C 20 20 74 68 65 20 SET MODE, the
00D560: 20 6F 72 69 67 69 6E 20 20 69 73 20 20 72 65 73 origin is res
00D570: 74 6F 72 65 64 20 20 74 6F 20 20 69 74 73 0D 0A tored to its..
00D580: 20 20 20 20 20 20 20 64 65 66 61 75 6C 74 20 70 default p
00D590: 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 0D 0A osition.........
00D5A0: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
00D5B0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
00D5C0: 20 20 20 20 47 52 41 20 46 52 4F 4D 20 55 53 45 GRA FROM USE
00D5D0: 52 0D 0A 20 20 20 20 20 20 20 47 52 41 20 47 45 R.. GRA GE
00D5E0: 54 20 4F 52 49 47 49 4E 0D 0A 0D 0A 0D 0A 0D 0A T ORIGIN........
00D5F0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00D600: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
00D610: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
00D620: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
00D630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D640: 20 20 20 20 20 70 61 67 65 20 31 35 2E 37 31 0D page 15.71.
00D650: 0A 1A 20 20 23 42 42 38 34 0D 0A 0D 0A 0D 0A 0D .. #BB84.......
00D660: 0A 20 20 20 20 20 20 20 44 69 73 73 61 6C 6C 6F . Dissallo
00D670: 77 20 63 75 72 73 6F 72 20 64 69 73 70 6C 61 79 w cursor display
00D680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D900: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
00D910: 20 20 20 36 38 3A 20 47 52 41 20 47 45 54 20 4F 68: GRA GET O
00D920: 52 49 47 49 4E 20 20 20 20 20 20 20 20 20 20 20 RIGIN
00D930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D950: 20 20 20 20 23 42 42 43 43 0D 0A 0D 0A 0D 0A 20 #BBCC......
00D960: 20 20 20 20 20 20 47 65 74 20 74 68 65 20 6F 72 Get the or
00D970: 69 67 69 6E 20 6F 66 20 74 68 65 20 75 73 65 72 igin of the user
00D980: 20 63 6F 6F 72 64 69 6E 61 74 65 73 2E 0D 0A 0D coordinates....
00D990: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
00D9A0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 73 6B 20 ..... Ask
00D9B0: 77 68 65 72 65 20 74 68 65 20 75 73 65 72 20 63 where the user c
00D9C0: 6F 6F 72 64 69 6E 61 74 65 20 6F 72 69 67 69 6E oordinate origin
00D9D0: 20 69 73 20 6C 6F 63 61 74 65 64 2E 0D 0A 0D 0A is located.....
00D9E0: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
00D9F0: 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A onditions.......
00DA00: 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 No condit
00DA10: 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions.......
00DA20: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
00DA30: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 s:...... D
00DA40: 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 E contains the s
00DA50: 74 61 6E 64 61 72 64 20 58 20 63 6F 6F 72 64 69 tandard X coordi
00DA60: 6E 61 74 65 20 6F 66 20 74 68 65 20 6F 72 69 67 nate of the orig
00DA70: 69 6E 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 in... HL c
00DA80: 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 74 61 6E ontains the stan
00DA90: 64 61 72 64 20 59 20 63 6F 6F 72 64 69 6E 61 74 dard Y coordinat
00DAA0: 65 20 6F 66 20 74 68 65 20 6F 72 69 67 69 6E 2E e of the origin.
00DAB0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C ...... All
00DAC0: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
00DAD0: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
00DAE0: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
00DAF0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6F .... The o
00DB00: 72 69 67 69 6E 20 70 6F 73 69 74 69 6F 6E 20 69 rigin position i
00DB10: 73 20 67 69 76 65 6E 20 69 73 20 73 74 61 6E 64 s given is stand
00DB20: 61 72 64 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 ard coordinates
00DB30: 69 6E 20 77 68 69 63 68 20 28 30 2C 30 29 20 69 in which (0,0) i
00DB40: 73 0D 0A 20 20 20 20 20 20 20 74 68 65 20 62 6F s.. the bo
00DB50: 74 74 6F 6D 20 6C 65 66 74 20 63 6F 72 6E 65 72 ttom left corner
00DB60: 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E 2E 0D of the screen..
00DB70: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 ....... Re
00DB80: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
00DB90: 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 53 .... GRA S
00DBA0: 45 54 20 4F 52 49 47 49 4E 0D 0A 0D 0A 0D 0A 0D ET ORIGIN.......
00DBB0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00DBC0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
00DBD0: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
00DBE0: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
00DBF0: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
00DC00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00DC10: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 37 32 page 15.72
00DC20: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
00DC30: 20 20 20 20 20 36 39 3A 20 47 52 41 20 57 49 4E 69: GRA WIN
00DC40: 20 57 49 44 54 48 20 20 20 20 20 20 20 20 20 20 WIDTH
00DC50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00DC60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00DC70: 20 20 20 20 20 20 23 42 42 43 46 0D 0A 0D 0A 20 #BBCF....
00DC80: 20 20 20 20 20 20 53 65 74 20 74 68 65 20 72 69 Set the ri
00DC90: 67 68 74 20 61 6E 64 20 6C 65 66 74 20 65 64 67 ght and left edg
00DCA0: 65 73 20 6F 66 20 74 68 65 20 67 72 61 70 68 69 es of the graphi
00DCB0: 63 73 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A 20 20 cs window.....
00DCC0: 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A Action:....
00DCD0: 20 20 20 20 20 20 20 53 65 74 20 74 68 65 20 68 Set the h
00DCE0: 6F 72 69 7A 6F 6E 74 61 6C 20 70 6F 73 69 74 69 orizontal positi
00DCF0: 6F 6E 20 6F 66 20 74 68 65 20 67 72 61 70 68 69 on of the graphi
00DD00: 63 73 20 77 69 6E 64 6F 77 2E 20 54 68 65 20 6C cs window. The l
00DD10: 65 66 74 20 61 6E 64 20 72 69 67 68 74 0D 0A 20 eft and right..
00DD20: 20 20 20 20 20 20 65 64 67 65 73 20 61 72 65 20 edges are
00DD30: 72 65 73 70 65 63 74 69 76 65 6C 79 20 74 68 65 respectively the
00DD40: 20 66 69 72 73 74 20 61 6E 64 20 6C 61 73 74 20 first and last
00DD50: 70 6F 69 6E 74 73 20 74 68 61 74 20 6C 69 65 20 points that lie
00DD60: 20 69 6E 73 69 64 65 20 20 74 68 65 0D 0A 20 20 inside the..
00DD70: 20 20 20 20 20 77 69 6E 64 6F 77 20 68 6F 72 69 window hori
00DD80: 7A 6F 6E 74 61 6C 6C 79 2E 0D 0A 0D 0A 20 20 20 zontally.....
00DD90: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
00DDA0: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
00DDB0: 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 DE contains the
00DDC0: 73 74 61 6E 64 61 72 64 20 58 20 63 6F 6F 72 64 standard X coord
00DDD0: 69 6E 61 74 65 20 6F 66 20 6F 6E 65 20 65 64 67 inate of one edg
00DDE0: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 e..... HL
00DDF0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 74 61 contains the sta
00DE00: 6E 64 61 72 64 20 59 20 63 6F 6F 72 64 69 6E 61 ndard Y coordina
00DE10: 74 65 20 6F 66 20 74 68 65 20 6F 74 68 65 72 20 te of the other
00DE20: 65 64 67 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 edge.....
00DE30: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
00DE40: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C 42 43 .... AF,BC
00DE50: 2C 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 ,DE and HL corru
00DE60: 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 pt... All
00DE70: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
00DE80: 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E ved..... N
00DE90: 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 otes:....
00DEA0: 54 68 65 20 77 69 6E 64 6F 77 20 65 64 67 65 73 The window edges
00DEB0: 20 61 72 65 20 67 69 76 65 6E 20 69 6E 20 73 74 are given in st
00DEC0: 61 6E 64 61 72 64 20 63 6F 6F 72 64 69 6E 61 74 andard coordinat
00DED0: 65 73 20 69 6E 20 77 68 69 63 68 20 20 28 30 2C es in which (0,
00DEE0: 30 29 20 20 69 73 0D 0A 20 20 20 20 20 20 20 74 0) is.. t
00DEF0: 68 65 20 62 6F 74 74 6F 6D 20 6C 65 66 74 20 63 he bottom left c
00DF00: 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 73 63 72 orner of the scr
00DF10: 65 65 6E 20 61 6E 64 20 63 6F 6F 72 64 69 6E 61 een and coordina
00DF20: 74 65 73 20 61 72 65 20 73 69 67 6E 65 64 20 31 tes are signed 1
00DF30: 36 20 62 69 74 0D 0A 20 20 20 20 20 20 20 6E 75 6 bit.. nu
00DF40: 6D 62 65 72 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 mbers.....
00DF50: 20 54 68 65 20 6C 65 66 74 20 65 64 67 65 20 6F The left edge o
00DF60: 66 20 74 68 65 20 77 69 6E 64 6F 77 20 69 73 20 f the window is
00DF70: 64 65 65 6D 65 64 20 74 6F 20 62 65 20 74 68 65 deemed to be the
00DF80: 20 20 73 6D 61 6C 6C 65 72 20 20 6F 66 20 20 74 smaller of t
00DF90: 68 65 20 20 74 77 6F 0D 0A 20 20 20 20 20 20 20 he two..
00DFA0: 65 64 67 65 20 73 75 70 70 6C 69 65 64 2E 0D 0A edge supplied...
00DFB0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 77 69 6E .. The win
00DFC0: 64 6F 77 20 77 69 6C 6C 20 62 65 20 74 72 75 6E dow will be trun
00DFD0: 63 61 74 65 64 2C 20 69 66 20 6E 65 63 65 73 73 cated, if necess
00DFE0: 61 72 79 2C 20 74 6F 20 6D 61 6B 65 20 69 74 20 ary, to make it
00DFF0: 66 69 74 20 74 68 65 20 73 63 72 65 65 6E 2E 0D fit the screen..
00E000: 0A 20 20 20 20 20 20 20 54 68 65 20 65 64 67 65 . The edge
00E010: 73 20 61 72 65 20 6D 6F 76 65 64 20 74 6F 20 73 s are moved to s
00E020: 63 72 65 65 6E 20 62 79 74 65 20 62 6F 75 6E 64 creen byte bound
00E030: 61 72 69 65 73 20 73 6F 20 74 68 61 74 20 74 68 aries so that th
00E040: 65 20 77 69 6E 64 6F 77 20 20 6F 6E 6C 79 0D 0A e window only..
00E050: 20 20 20 20 20 20 20 63 6F 6E 74 61 69 6E 73 20 contains
00E060: 77 68 6F 6C 65 20 62 79 74 65 73 20 28 74 68 65 whole bytes (the
00E070: 20 6C 65 66 74 20 65 64 67 65 20 69 73 20 6D 6F left edge is mo
00E080: 76 65 64 20 6C 65 66 74 2C 20 74 68 65 20 72 69 ved left, the ri
00E090: 67 68 74 20 20 65 64 67 65 20 20 69 73 0D 0A 20 ght edge is..
00E0A0: 20 20 20 20 20 20 6D 6F 76 65 64 20 72 69 67 68 moved righ
00E0B0: 74 29 2E 20 54 68 69 73 20 6D 6F 76 65 73 20 74 t). This moves t
00E0C0: 68 65 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 6F he coordinates o
00E0D0: 66 20 74 68 65 20 65 64 67 65 73 20 20 61 73 20 f the edges as
00E0E0: 20 66 6F 6C 6C 6F 77 73 20 20 69 6E 0D 0A 20 20 follows in..
00E0F0: 20 20 20 20 20 74 68 65 20 76 61 72 69 6F 75 73 the various
00E100: 20 6D 6F 64 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 modes:....
00E110: 20 20 20 20 20 20 4D 6F 64 65 20 20 20 20 20 20 Mode
00E120: 20 20 20 20 20 20 20 20 20 20 20 4C 65 66 74 20 Left
00E130: 45 64 67 65 20 20 20 20 20 20 20 20 20 20 20 20 Edge
00E140: 20 20 52 69 67 68 74 20 45 64 67 65 0D 0A 20 20 Right Edge..
00E150: 20 20 20 20 20 20 20 20 20 20 30 20 20 20 20 20 0
00E160: 20 20 20 20 20 20 20 20 20 20 20 20 20 4D 75 6C Mul
00E170: 74 69 70 6C 65 20 6F 66 20 32 20 20 20 20 20 20 tiple of 2
00E180: 20 20 4D 75 6C 74 69 70 6C 65 20 6F 66 20 32 20 Multiple of 2
00E190: 6D 69 6E 75 73 20 31 0D 0A 20 20 20 20 20 20 20 minus 1..
00E1A0: 20 20 20 20 20 31 20 20 20 20 20 20 20 20 20 20 1
00E1B0: 20 20 20 20 20 20 20 20 4D 75 6C 74 69 70 6C 65 Multiple
00E1C0: 20 6F 66 20 34 20 20 20 20 20 20 20 20 4D 75 6C of 4 Mul
00E1D0: 74 69 70 6C 65 20 6F 66 20 34 20 6D 69 6E 75 73 tiple of 4 minus
00E1E0: 20 31 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 1..
00E1F0: 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2
00E200: 20 20 20 4D 75 6C 74 69 70 6C 65 20 6F 66 20 38 Multiple of 8
00E210: 20 20 20 20 20 20 20 20 4D 75 6C 74 69 70 6C 65 Multiple
00E220: 20 6F 66 20 38 20 6D 69 6E 75 73 20 31 0D 0A 0D of 8 minus 1...
00E230: 0A 20 20 20 20 20 20 20 54 68 65 20 64 65 66 61 . The defa
00E240: 75 6C 74 20 77 69 6E 64 6F 77 20 63 6F 76 65 72 ult window cover
00E250: 73 20 74 68 65 20 77 68 6F 6C 65 20 73 63 72 65 s the whole scre
00E260: 65 6E 2E 20 57 68 65 6E 65 76 65 72 20 74 68 65 en. Whenever the
00E270: 20 20 73 63 72 65 65 6E 20 20 6D 6F 64 65 0D 0A screen mode..
00E280: 20 20 20 20 20 20 20 69 73 20 63 68 61 6E 67 65 is change
00E290: 64 20 74 68 65 20 77 69 6E 64 6F 77 20 69 73 20 d the window is
00E2A0: 72 65 73 74 6F 72 65 64 20 74 6F 20 69 74 73 20 restored to its
00E2B0: 64 65 66 61 75 6C 74 20 73 69 7A 65 2E 0D 0A 0D default size....
00E2C0: 0A 20 20 20 20 20 20 20 41 6C 6C 20 47 72 61 70 . All Grap
00E2D0: 68 69 63 73 20 56 44 55 20 70 6F 69 6E 74 20 70 hics VDU point p
00E2E0: 6C 6F 74 74 69 6E 67 20 61 6E 64 20 6C 69 6E 65 lotting and line
00E2F0: 20 64 72 61 77 69 6E 67 20 72 6F 75 74 69 6E 65 drawing routine
00E300: 73 20 74 65 73 74 20 77 68 65 74 68 65 72 0D 0A s test whether..
00E310: 20 20 20 20 20 20 20 74 68 65 20 70 6F 69 6E 74 the point
00E320: 73 20 74 68 65 79 20 61 72 65 20 61 62 6F 75 74 s they are about
00E330: 20 74 6F 20 70 6C 6F 74 20 6C 69 65 20 69 6E 73 to plot lie ins
00E340: 69 64 65 20 74 68 65 20 77 69 6E 64 6F 77 3B 20 ide the window;
00E350: 69 66 20 20 74 68 65 79 20 20 61 72 65 0D 0A 20 if they are..
00E360: 20 20 20 20 20 20 6E 6F 74 20 74 68 65 6E 20 74 not then t
00E370: 68 65 20 70 6F 69 6E 74 73 20 61 72 65 20 6E 6F he points are no
00E380: 74 20 70 6C 6F 74 74 65 64 2E 0D 0A 0D 0A 0D 0A t plotted.......
00E390: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
00E3A0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
00E3B0: 20 20 20 20 47 52 41 20 47 45 54 20 57 20 57 49 GRA GET W WI
00E3C0: 44 54 48 0D 0A 20 20 20 20 20 20 20 47 52 41 20 DTH.. GRA
00E3D0: 57 49 4E 20 48 45 49 47 48 54 0D 0A 0D 0A 0D 0A WIN HEIGHT......
00E3E0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
00E3F0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
00E400: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
00E410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E420: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
00E430: 2E 37 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D .73.............
00E440: 0A 20 20 20 20 20 20 20 37 30 3A 20 47 52 41 20 . 70: GRA
00E450: 57 49 4E 20 48 45 49 47 48 54 20 20 20 20 20 20 WIN HEIGHT
00E460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00E480: 20 20 20 20 20 20 20 20 20 23 42 42 44 32 0D 0A #BBD2..
00E490: 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 65 .. Set the
00E4A0: 20 74 6F 70 20 61 6E 64 20 62 6F 74 74 6F 6D 20 top and bottom
00E4B0: 65 64 67 65 73 20 6F 66 20 74 68 65 20 67 72 61 edges of the gra
00E4C0: 70 68 69 63 73 20 77 69 6E 64 6F 77 2E 0D 0A 0D phics window....
00E4D0: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
00E4E0: 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 ... Set th
00E4F0: 65 20 76 65 72 74 69 63 61 6C 20 70 6F 73 69 74 e vertical posit
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: 69 6F 6E 20 6F 66 20 74 68 65 20 67 72 61 70 68 ion of the graph
00E610: 69 63 73 20 77 69 6E 64 6F 77 2E 20 54 68 65 20 ics window. The
00E620: 74 6F 70 20 20 61 6E 64 20 20 62 6F 74 74 6F 6D top and bottom
00E630: 0D 0A 20 20 20 20 20 20 20 65 64 67 65 73 20 61 .. edges a
00E640: 72 65 20 72 65 73 70 65 63 74 69 76 65 6C 79 20 re respectively
00E650: 74 68 65 20 6C 61 73 74 20 61 6E 64 20 66 69 72 the last and fir
00E660: 73 74 20 70 6F 69 6E 74 73 20 74 68 61 74 20 6C st points that l
00E670: 69 65 20 20 69 6E 73 69 64 65 20 20 74 68 65 0D ie inside the.
00E680: 0A 20 20 20 20 20 20 20 77 69 6E 64 6F 77 20 76 . window v
00E690: 65 72 74 69 63 61 6C 6C 79 2E 0D 0A 0D 0A 20 20 ertically.....
00E6A0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
00E6B0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tions:....
00E6C0: 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 DE contains the
00E6D0: 20 73 74 61 6E 64 61 72 64 20 58 20 63 6F 6F 72 standard X coor
00E6E0: 64 69 6E 61 74 65 20 6F 66 20 6F 6E 65 20 65 64 dinate of one ed
00E6F0: 67 65 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 ge... HL c
00E700: 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 74 61 6E ontains the stan
00E710: 64 61 72 64 20 59 20 63 6F 6F 72 64 69 6E 61 74 dard Y coordinat
00E720: 65 20 6F 66 20 74 68 65 20 6F 74 68 65 72 20 65 e of the other e
00E730: 64 67 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 dge..... E
00E740: 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D xit conditions:.
00E750: 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C 42 43 2C ... AF,BC,
00E760: 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 DE and HL corrup
00E770: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 72 t... All r
00E780: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
00E790: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
00E7A0: 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 Notes:......
00E7B0: 20 20 20 54 68 65 20 77 69 6E 64 6F 77 20 65 64 The window ed
00E7C0: 67 65 73 20 61 72 65 20 67 69 76 65 6E 20 69 6E ges are given in
00E7D0: 20 73 74 61 6E 64 61 72 64 20 63 6F 6F 72 64 69 standard coordi
00E7E0: 6E 61 74 65 73 20 69 6E 20 77 68 69 63 68 20 20 nates in which
00E7F0: 28 30 2C 30 29 20 20 69 73 0D 0A 20 20 20 20 20 (0,0) is..
00E800: 20 20 74 68 65 20 62 6F 74 74 6F 6D 20 6C 65 66 the bottom lef
00E810: 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 t corner of the
00E820: 73 63 72 65 65 6E 20 61 6E 64 20 63 6F 6F 72 64 screen and coord
00E830: 69 6E 61 74 65 73 20 61 72 65 20 73 69 67 6E 65 inates are signe
00E840: 64 20 31 36 20 62 69 74 0D 0A 20 20 20 20 20 20 d 16 bit..
00E850: 20 6E 75 6D 62 65 72 73 2E 0D 0A 0D 0A 0D 0A 20 numbers.......
00E860: 20 20 20 20 20 20 54 68 65 20 74 6F 70 20 65 64 The top ed
00E870: 67 65 20 77 69 6C 6C 20 62 65 20 20 64 65 65 6D ge will be deem
00E880: 65 64 20 20 74 6F 20 20 62 65 20 20 74 68 65 20 ed to be the
00E890: 20 68 69 67 68 65 72 20 20 6F 66 20 20 74 68 65 higher of the
00E8A0: 20 20 74 77 6F 20 20 65 64 67 65 73 0D 0A 20 20 two edges..
00E8B0: 20 20 20 20 20 73 75 70 70 6C 69 65 64 2E 0D 0A supplied...
00E8C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 77 .... The w
00E8D0: 69 6E 64 6F 77 20 77 69 6C 6C 20 62 65 20 74 72 indow will be tr
00E8E0: 75 6E 63 61 74 65 64 2C 20 69 66 20 6E 65 63 65 uncated, if nece
00E8F0: 73 73 61 72 79 2C 20 74 6F 20 6D 61 6B 65 20 69 ssary, to make i
00E900: 74 20 66 69 74 20 74 68 65 20 73 63 72 65 65 6E t fit the screen
00E910: 2E 0D 0A 20 20 20 20 20 20 20 54 68 65 20 65 64 ... The ed
00E920: 67 65 73 20 77 69 6C 6C 20 62 65 20 6D 6F 76 65 ges will be move
00E930: 64 20 74 6F 20 6C 69 65 20 6F 6E 20 73 63 72 65 d to lie on scre
00E940: 65 6E 20 6C 69 6E 65 20 62 6F 75 6E 64 61 72 69 en line boundari
00E950: 65 73 20 73 6F 20 74 68 61 74 20 20 6F 6E 6C 79 es so that only
00E960: 0D 0A 20 20 20 20 20 20 20 77 68 6F 6C 65 20 73 .. whole s
00E970: 63 72 65 65 6E 20 6C 69 6E 65 73 20 61 72 65 20 creen lines are
00E980: 69 6E 63 6C 75 64 65 64 20 69 6E 20 74 68 65 20 included in the
00E990: 77 69 6E 64 6F 77 20 28 74 68 65 20 74 6F 70 20 window (the top
00E9A0: 20 65 64 67 65 20 20 77 69 6C 6C 20 20 62 65 0D edge will be.
00E9B0: 0A 20 20 20 20 20 20 20 6D 6F 76 65 64 20 75 70 . moved up
00E9C0: 2C 20 74 68 65 20 62 6F 74 74 6F 6D 20 65 64 67 , the bottom edg
00E9D0: 65 20 77 69 6C 6C 20 62 65 20 6D 6F 76 65 64 20 e will be moved
00E9E0: 64 6F 77 6E 29 2E 20 54 68 69 73 20 6D 6F 76 65 down). This move
00E9F0: 73 20 20 74 68 65 20 20 62 6F 74 74 6F 6D 0D 0A s the bottom..
00EA00: 20 20 20 20 20 20 20 65 64 67 65 20 74 6F 20 61 edge to a
00EA10: 6E 20 65 76 65 6E 20 63 6F 6F 72 64 69 6E 61 74 n even coordinat
00EA20: 65 20 61 6E 64 20 74 68 65 20 74 6F 70 20 65 64 e and the top ed
00EA30: 67 65 20 74 6F 20 61 6E 20 6F 64 64 20 63 6F 6F ge to an odd coo
00EA40: 72 64 69 6E 61 74 65 2E 0D 0A 0D 0A 0D 0A 20 20 rdinate.......
00EA50: 20 20 20 20 20 54 68 65 20 64 65 66 61 75 6C 74 The default
00EA60: 20 77 69 6E 64 6F 77 20 63 6F 76 65 72 73 20 74 window covers t
00EA70: 68 65 20 77 68 6F 6C 65 20 73 63 72 65 65 6E 2E he whole screen.
00EA80: 20 57 68 65 6E 65 76 65 72 20 74 68 65 20 20 73 Whenever the s
00EA90: 63 72 65 65 6E 20 20 6D 6F 64 65 0D 0A 20 20 20 creen mode..
00EAA0: 20 20 20 20 69 73 20 63 68 61 6E 67 65 64 20 74 is changed t
00EAB0: 68 65 20 77 69 6E 64 6F 77 20 69 73 20 72 65 73 he window is res
00EAC0: 74 6F 72 65 64 20 74 6F 20 69 74 73 20 64 65 66 tored to its def
00EAD0: 61 75 6C 74 20 73 69 7A 65 2E 0D 0A 0D 0A 0D 0A ault size.......
00EAE0: 20 20 20 20 20 20 20 41 6C 6C 20 47 72 61 70 68 All Graph
00EAF0: 69 63 73 20 56 44 55 20 70 6F 69 6E 74 20 70 6C ics VDU point pl
00EB00: 6F 74 74 69 6E 67 20 61 6E 64 20 6C 69 6E 65 20 otting and line
00EB10: 64 72 61 77 69 6E 67 20 72 6F 75 74 69 6E 65 73 drawing routines
00EB20: 20 74 65 73 74 20 77 68 65 74 68 65 72 0D 0A 20 test whether..
00EB30: 20 20 20 20 20 20 74 68 65 20 70 6F 69 6E 74 73 the points
00EB40: 20 74 68 65 79 20 61 72 65 20 61 62 6F 75 74 20 they are about
00EB50: 74 6F 20 70 6C 6F 74 20 6C 69 65 20 69 6E 73 69 to plot lie insi
00EB60: 64 65 20 74 68 65 20 77 69 6E 64 6F 77 3B 20 69 de the window; i
00EB70: 66 20 20 74 68 65 79 20 20 61 72 65 0D 0A 20 20 f they are..
00EB80: 20 20 20 20 20 6E 6F 74 20 74 68 65 6E 20 74 68 not then th
00EB90: 65 20 70 6F 69 6E 74 73 20 61 72 65 20 6E 6F 74 e points are not
00EBA0: 20 70 6C 6F 74 74 65 64 2E 0D 0A 0D 0A 0D 0A 20 plotted.......
00EBB0: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
00EBC0: 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tries:......
00EBD0: 20 20 20 47 52 41 20 47 45 54 20 57 20 48 45 49 GRA GET W HEI
00EBE0: 47 48 54 0D 0A 20 20 20 20 20 20 20 47 52 41 20 GHT.. GRA
00EBF0: 57 49 4E 20 57 49 44 54 48 0D 0A 0D 0A 0D 0A 0D WIN WIDTH.......
00EC00: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
00EC10: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
00EC20: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
00EC30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00EC40: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
00EC50: 37 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 74..............
00EC60: 20 20 20 20 20 20 20 37 31 3A 20 47 52 41 20 47 71: GRA G
00EC70: 45 54 20 57 20 57 49 44 54 48 20 20 20 20 20 20 ET W WIDTH
00EC80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00EC90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00ECA0: 20 20 20 20 20 20 20 20 23 42 42 44 35 0D 0A 0D #BBD5...
00ECB0: 0A 0D 0A 20 20 20 20 20 20 20 47 65 74 20 74 68 ... Get th
00ECC0: 65 20 6C 65 66 74 20 61 6E 64 20 72 69 67 68 74 e left and right
00ECD0: 20 65 64 67 65 73 20 6F 66 20 74 68 65 20 67 72 edges of the gr
00ECE0: 61 70 68 69 63 73 20 77 69 6E 64 6F 77 2E 0D 0A aphics window...
00ECF0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F .... Actio
00ED00: 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 n:...... A
00ED10: 73 6B 20 74 68 65 20 68 6F 72 69 7A 6F 6E 74 61 sk the horizonta
00ED20: 6C 20 70 6F 73 69 74 69 6F 6E 20 6F 66 20 74 68 l position of th
00ED30: 65 20 67 72 61 70 68 69 63 73 20 77 69 6E 64 6F e graphics windo
00ED40: 77 2E 20 54 68 65 20 6C 65 66 74 20 61 6E 64 20 w. The left and
00ED50: 72 69 67 68 74 0D 0A 20 20 20 20 20 20 20 65 64 right.. ed
00ED60: 67 65 73 20 61 72 65 20 72 65 73 70 65 63 74 69 ges are respecti
00ED70: 76 65 6C 79 20 74 68 65 20 66 69 72 73 74 20 61 vely the first a
00ED80: 6E 64 20 6C 61 73 74 20 70 6F 69 6E 74 73 20 74 nd last points t
00ED90: 68 61 74 20 6C 69 65 20 20 69 6E 73 69 64 65 20 hat lie inside
00EDA0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 77 69 6E the.. win
00EDB0: 64 6F 77 20 68 6F 72 69 7A 6F 6E 74 61 6C 6C 79 dow horizontally
00EDC0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ....... En
00EDD0: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
00EDE0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 ..... No c
00EDF0: 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A onditions.......
00EE00: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
00EE10: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
00EE20: 20 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 DE contains
00EE30: 74 68 65 20 73 74 61 6E 64 61 72 64 20 58 20 63 the standard X c
00EE40: 6F 6F 72 64 69 6E 61 74 65 20 6F 66 20 74 68 65 oordinate of the
00EE50: 20 6C 65 66 74 20 65 64 67 65 20 6F 66 20 74 68 left edge of th
00EE60: 65 20 77 69 6E 64 6F 77 2E 0D 0A 20 20 20 20 20 e window...
00EE70: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 HL contains th
00EE80: 65 20 73 74 61 6E 64 61 72 64 20 59 20 63 6F 6F e standard Y coo
00EE90: 72 64 69 6E 61 74 65 20 6F 66 20 74 68 65 20 72 rdinate of the r
00EEA0: 69 67 68 74 20 65 64 67 65 20 6F 66 20 74 68 65 ight edge of the
00EEB0: 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A 0D 0A 20 20 window.......
00EEC0: 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 74 0D AF corrupt.
00EED0: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 . All othe
00EEE0: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
00EEF0: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 erved.......
00EF00: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 Notes:......
00EF10: 20 20 20 20 20 20 54 68 65 20 77 69 6E 64 6F 77 The window
00EF20: 20 65 64 67 65 73 20 61 72 65 20 67 69 76 65 6E edges are given
00EF30: 20 69 6E 20 73 74 61 6E 64 61 72 64 20 63 6F 6F in standard coo
00EF40: 72 64 69 6E 61 74 65 73 20 69 6E 20 77 68 69 63 rdinates in whic
00EF50: 68 20 20 28 30 2C 30 29 20 20 69 73 0D 0A 20 20 h (0,0) is..
00EF60: 20 20 20 20 20 74 68 65 20 62 6F 74 74 6F 6D 20 the bottom
00EF70: 6C 65 66 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 left corner of t
00EF80: 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A he screen.......
00EF90: 20 20 20 20 20 20 20 54 68 65 20 65 64 67 65 73 The edges
00EFA0: 20 6D 61 79 20 6E 6F 74 20 62 65 20 65 78 61 63 may not be exac
00EFB0: 74 6C 79 20 74 68 65 20 73 61 6D 65 20 61 73 20 tly the same as
00EFC0: 74 68 6F 73 65 20 74 68 61 74 20 77 65 72 65 20 those that were
00EFD0: 73 65 74 20 75 73 69 6E 67 20 47 52 41 0D 0A 20 set using GRA..
00EFE0: 20 20 20 20 20 20 57 49 4E 20 57 49 44 54 48 20 WIN WIDTH
00EFF0: 61 73 20 74 68 65 20 77 69 6E 64 6F 77 20 69 73 as the window is
00F000: 20 74 72 75 6E 63 61 74 65 64 20 74 6F 20 66 69 truncated to fi
00F010: 74 20 74 68 65 20 73 63 72 65 65 6E 2C 20 61 6E t the screen, an
00F020: 64 20 74 68 65 20 20 65 64 67 65 73 0D 0A 20 20 d the edges..
00F030: 20 20 20 20 20 61 72 65 20 6D 6F 76 65 64 20 74 are moved t
00F040: 6F 20 73 63 72 65 65 6E 20 62 79 74 65 20 62 6F o screen byte bo
00F050: 75 6E 64 61 72 69 65 73 20 73 6F 20 74 68 61 74 undaries so that
00F060: 20 74 68 65 20 77 69 6E 64 6F 77 20 20 6F 6E 6C the window onl
00F070: 79 20 20 63 6F 6E 74 61 69 6E 73 0D 0A 20 20 20 y contains..
00F080: 20 20 20 20 77 68 6F 6C 65 20 62 79 74 65 73 2E whole bytes.
00F090: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 ........ R
00F0A0: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
00F0B0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 ..... GRA
00F0C0: 47 45 54 20 57 20 48 45 49 47 48 54 0D 0A 20 20 GET W HEIGHT..
00F0D0: 20 20 20 20 20 47 52 41 20 49 4E 20 57 49 44 54 GRA IN WIDT
00F0E0: 48 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D H...............
00F0F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
00F100: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
00F110: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
00F120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00F130: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
00F140: 37 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 75..............
00F150: 20 20 20 20 20 20 20 37 32 3A 20 47 52 41 20 47 72: GRA G
00F160: 45 54 20 57 20 48 45 49 47 48 54 20 20 20 20 20 ET W HEIGHT
00F170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00F180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00F190: 20 20 20 20 20 20 20 20 23 42 42 44 38 0D 0A 0D #BBD8...
00F1A0: 0A 0D 0A 20 20 20 20 20 20 20 47 65 74 20 74 68 ... Get th
00F1B0: 65 20 74 6F 70 20 61 6E 64 20 62 6F 74 74 6F 6D e top and bottom
00F1C0: 20 65 64 67 65 73 20 6F 66 20 74 68 65 20 67 72 edges of the gr
00F1D0: 61 70 68 69 63 73 20 77 69 6E 64 6F 77 2E 0D 0A aphics window...
00F1E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F .... Actio
00F1F0: 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 n:...... A
00F200: 73 6B 20 74 68 65 20 76 65 72 74 69 63 61 6C 20 sk the vertical
00F210: 70 6F 73 69 74 69 6F 6E 20 6F 66 20 74 68 65 20 position of the
00F220: 67 72 61 70 68 69 63 73 20 77 69 6E 64 6F 77 2E graphics window.
00F230: 20 54 68 65 20 74 6F 70 20 20 61 6E 64 20 20 62 The top and b
00F240: 6F 74 74 6F 6D 0D 0A 20 20 20 20 20 20 20 65 64 ottom.. ed
00F250: 67 65 73 20 61 72 65 20 72 65 73 70 65 63 74 69 ges are respecti
00F260: 76 65 6C 79 20 74 68 65 20 6C 61 73 74 20 61 6E vely the last an
00F270: 64 20 66 69 72 73 74 20 70 6F 69 6E 74 73 20 74 d first points t
00F280: 68 61 74 20 6C 69 65 20 20 69 6E 73 69 64 65 20 hat lie inside
00F290: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 67 72 61 the.. gra
00F2A0: 70 68 69 63 73 20 77 69 6E 64 6F 77 20 76 65 72 phics window ver
00F2B0: 74 69 63 61 6C 6C 79 2E 0D 0A 0D 0A 0D 0A 20 20 tically.......
00F2C0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
00F2D0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
00F2E0: 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 No conditions
00F2F0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
00F300: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
00F310: 0D 0A 0D 0A 20 20 20 20 20 20 20 44 45 20 63 6F .... DE co
00F320: 6E 74 61 69 6E 73 20 74 68 65 20 73 74 61 6E 64 ntains the stand
00F330: 61 72 64 20 58 20 63 6F 6F 72 64 69 6E 61 74 65 ard X coordinate
00F340: 20 6F 66 20 74 68 65 20 74 6F 70 20 65 64 67 65 of the top edge
00F350: 20 6F 66 20 74 68 65 20 77 69 6E 64 6F 77 2E 0D of the window..
00F360: 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 . HL conta
00F370: 69 6E 73 20 74 68 65 20 73 74 61 6E 64 61 72 64 ins the standard
00F380: 20 20 59 20 20 63 6F 6F 72 64 69 6E 61 74 65 20 Y coordinate
00F390: 20 6F 66 20 20 74 68 65 20 20 62 6F 74 74 6F 6D of the bottom
00F3A0: 20 65 64 67 65 20 20 6F 66 20 20 74 68 65 0D 0A edge of the..
00F3B0: 20 20 20 20 20 20 20 77 69 6E 64 6F 77 2E 0D 0A window...
00F3C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 63 6F .... AF co
00F3D0: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 rrupt... A
00F3E0: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
00F3F0: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
00F400: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
00F410: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
00F420: 20 77 69 6E 64 6F 77 20 65 64 67 65 73 20 61 72 window edges ar
00F430: 65 20 67 69 76 65 6E 20 69 6E 20 73 74 61 6E 64 e given in stand
00F440: 61 72 64 20 63 6F 6F 72 64 69 6E 61 74 65 73 2E ard coordinates.
00F450: 20 20 69 2E 65 2E 20 20 57 69 74 68 20 20 28 30 i.e. With (0
00F460: 2C 30 29 0D 0A 20 20 20 20 20 20 20 62 65 69 6E ,0).. bein
00F470: 67 20 74 68 65 20 62 6F 74 74 6F 6D 20 6C 65 66 g the bottom lef
00F480: 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 t corner of the
00F490: 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 screen.......
00F4A0: 20 20 20 20 54 68 65 20 65 64 67 65 73 20 6D 61 The edges ma
00F4B0: 79 20 6E 6F 74 20 62 65 20 65 78 61 63 74 6C 79 y not be exactly
00F4C0: 20 74 68 65 20 73 61 6D 65 20 61 73 20 74 68 61 the same as tha
00F4D0: 74 20 70 61 73 73 65 64 20 74 6F 20 47 52 41 20 t passed to GRA
00F4E0: 57 49 4E 20 48 45 49 47 48 54 0D 0A 20 20 20 20 WIN HEIGHT..
00F4F0: 20 20 20 61 73 20 74 68 65 20 77 69 6E 64 6F 77 as the window
00F500: 20 69 73 20 74 72 75 6E 63 61 74 65 64 20 74 6F is truncated to
00F510: 20 66 69 74 20 74 68 65 20 73 63 72 65 65 6E 2C fit the screen,
00F520: 20 61 6E 64 20 74 68 65 20 65 64 67 65 73 20 61 and the edges a
00F530: 72 65 20 20 6D 6F 76 65 64 0D 0A 20 20 20 20 20 re moved..
00F540: 20 20 74 6F 20 6C 69 65 20 6F 6E 20 73 63 72 65 to lie on scre
00F550: 65 6E 20 6C 69 6E 65 20 62 6F 75 6E 64 61 72 69 en line boundari
00F560: 65 73 20 73 6F 20 74 68 61 74 20 6F 6E 6C 79 20 es so that only
00F570: 77 68 6F 6C 65 20 73 63 72 65 65 6E 20 20 6C 69 whole screen li
00F580: 6E 65 73 20 20 61 72 65 0D 0A 20 20 20 20 20 20 nes are..
00F590: 20 69 6E 63 6C 75 64 65 64 20 69 6E 20 74 68 65 included in the
00F5A0: 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A 0D 0A 0D 0A window.........
00F5B0: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
00F5C0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
00F5D0: 20 20 20 20 47 52 41 20 47 45 54 20 57 20 57 49 GRA GET W WI
00F5E0: 44 54 48 0D 0A 20 20 20 20 20 20 20 47 52 41 20 DTH.. GRA
00F5F0: 57 49 4E 20 48 45 49 47 48 54 0D 0A 0D 0A 0D 0A WIN HEIGHT......
00F600: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
00F610: 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 AMSTRAD CPC46
00F620: 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 4/664/6128 FIRMW
00F630: 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ARE
00F640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
00F650: 61 67 65 20 31 35 2E 37 36 0D 0A 0D 0A 0D 0A 0D age 15.76.......
00F660: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 37 33 ....... 73
00F670: 3A 20 47 52 41 20 43 4C 45 41 52 20 57 49 4E 44 : GRA CLEAR WIND
00F680: 4F 57 20 20 20 20 20 20 20 20 20 20 20 20 20 20 OW
00F690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00F6A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
00F6B0: 42 42 44 42 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 BBDB......
00F6C0: 20 43 6C 65 61 72 20 74 68 65 20 67 72 61 70 68 Clear the graph
00F6D0: 69 63 73 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A 0D ics window......
00F6E0: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
00F6F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 6C 65 61 ..... Clea
00F700: 72 20 74 68 65 20 67 72 61 70 68 69 63 73 20 77 r the graphics w
00F710: 69 6E 64 6F 77 20 74 6F 20 74 68 65 20 67 72 61 indow to the gra
00F720: 70 68 69 63 73 20 70 61 70 65 72 20 69 6E 6B 2E phics paper ink.
00F730: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 ...... Ent
00F740: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
00F750: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F .... No co
00F760: 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 nditions.......
00F770: 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 Exit condi
00F780: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
00F790: 20 20 20 41 46 2C 42 43 2C 44 45 20 61 6E 64 20 AF,BC,DE and
00F7A0: 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 HL corrupt...
00F7B0: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
00F7C0: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
00F7D0: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E d....... N
00F7E0: 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 otes:......
00F7F0: 20 20 54 68 65 20 63 75 72 72 65 6E 74 20 67 72 The current gr
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: 61 70 68 69 63 73 20 70 6F 73 69 74 69 6F 6E 20 aphics position
00F910: 69 73 20 6D 6F 76 65 64 20 20 74 6F 20 20 74 68 is moved to th
00F920: 65 20 20 6F 72 69 67 69 6E 20 20 6F 66 20 20 74 e origin of t
00F930: 68 65 20 20 75 73 65 72 0D 0A 20 20 20 20 20 20 he user..
00F940: 20 63 6F 6F 72 64 69 6E 61 74 65 73 2E 0D 0A 0D coordinates....
00F950: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
00F960: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
00F970: 0D 0A 20 20 20 20 20 20 20 47 52 41 20 53 45 54 .. GRA SET
00F980: 20 50 41 50 45 52 0D 0A 20 20 20 20 20 20 20 47 PAPER.. G
00F990: 52 41 20 57 49 4E 20 48 45 49 47 48 54 0D 0A 20 RA WIN HEIGHT..
00F9A0: 20 20 20 20 20 20 47 52 41 20 57 49 4E 20 57 49 GRA WIN WI
00F9B0: 44 54 48 0D 0A 20 20 20 20 20 20 20 53 43 52 20 DTH.. SCR
00F9C0: 43 4C 45 41 52 0D 0A 20 20 20 20 20 20 20 54 58 CLEAR.. TX
00F9D0: 54 20 43 4C 45 41 52 20 57 49 4E 44 4F 57 0D 0A T CLEAR WINDOW..
00F9E0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00F9F0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00FA00: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
00FA10: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
00FA20: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
00FA30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00FA40: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 37 page 15.7
00FA50: 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 7..............
00FA60: 20 20 20 20 20 20 37 34 3A 20 47 52 41 20 53 45 74: GRA SE
00FA70: 54 20 50 45 4E 20 20 20 20 20 20 20 20 20 20 20 T PEN
00FA80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00FA90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00FAA0: 20 20 20 20 20 20 20 23 42 42 44 45 0D 0A 0D 0A #BBDE....
00FAB0: 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 65 .. Set the
00FAC0: 20 67 72 61 70 68 69 63 73 20 70 6C 6F 74 74 69 graphics plotti
00FAD0: 6E 67 20 69 6E 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 ng ink.......
00FAE0: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D Action:.....
00FAF0: 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 65 20 . Set the
00FB00: 67 72 61 70 68 69 63 73 20 70 65 6E 20 69 6E 6B graphics pen ink
00FB10: 2E 20 54 68 69 73 20 69 73 20 74 68 65 20 69 6E . This is the in
00FB20: 6B 20 20 62 79 20 20 74 68 65 20 20 47 72 61 70 k by the Grap
00FB30: 68 69 63 73 20 20 56 44 55 20 20 66 6F 72 0D 0A hics VDU for..
00FB40: 20 20 20 20 20 20 20 70 6C 6F 74 74 69 6E 67 20 plotting
00FB50: 70 6F 69 6E 74 73 2C 20 64 72 61 77 69 6E 67 20 points, drawing
00FB60: 6C 69 6E 65 73 20 61 6E 64 20 77 72 69 74 69 6E lines and writin
00FB70: 67 20 63 68 61 72 61 63 74 65 72 73 2E 0D 0A 0D g characters....
00FB80: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
00FB90: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
00FBA0: 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 . A contai
00FBB0: 6E 73 20 74 68 65 20 72 65 71 75 69 72 65 64 20 ns the required
00FBC0: 69 6E 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ink.......
00FBD0: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
00FBE0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
00FBF0: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
00FC00: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
00FC10: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
00FC20: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ...... Not
00FC30: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
00FC40: 54 68 65 20 69 6E 6B 20 69 73 20 6D 61 73 6B 65 The ink is maske
00FC50: 64 20 74 6F 20 62 72 69 6E 67 20 69 74 20 69 6E d to bring it in
00FC60: 20 74 6F 20 72 61 6E 67 65 20 20 6F 66 20 20 69 to range of i
00FC70: 6E 6B 73 20 20 66 6F 72 20 20 74 68 65 20 20 63 nks for the c
00FC80: 75 72 72 65 6E 74 0D 0A 20 20 20 20 20 20 20 73 urrent.. s
00FC90: 63 72 65 65 6E 20 6D 6F 64 65 2E 20 49 6E 20 6D creen mode. In m
00FCA0: 6F 64 65 20 30 20 74 68 65 20 6D 61 73 6B 20 69 ode 0 the mask i
00FCB0: 73 20 23 30 46 2C 20 69 6E 20 6D 6F 64 65 20 31 s #0F, in mode 1
00FCC0: 20 69 74 20 20 69 73 20 20 23 30 33 20 20 61 6E it is #03 an
00FCD0: 64 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 6D 6F d in.. mo
00FCE0: 64 65 20 32 20 69 74 20 69 73 20 23 30 31 2E 0D de 2 it is #01..
00FCF0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E 20 56 ..... In V
00FD00: 31 2E 31 20 66 69 72 6D 77 61 72 65 20 74 68 65 1.1 firmware the
00FD10: 20 67 72 61 70 68 69 63 73 20 70 65 6E 20 69 6E graphics pen in
00FD20: 6B 20 69 73 20 74 61 6B 65 6E 20 74 6F 20 64 65 k is taken to de
00FD30: 6C 69 6D 69 74 20 74 68 65 20 65 64 67 65 20 20 limit the edge
00FD40: 6F 66 0D 0A 20 20 20 20 20 20 20 74 68 65 20 61 of.. the a
00FD50: 72 65 61 20 74 6F 20 66 69 6C 6C 20 77 68 65 6E rea to fill when
00FD60: 20 66 6C 6F 6F 64 20 66 69 6C 6C 69 6E 67 20 61 flood filling a
00FD70: 72 65 61 73 20 6F 66 20 74 68 65 20 73 63 72 65 reas of the scre
00FD80: 65 6E 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 en.........
00FD90: 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 Related entrie
00FDA0: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 s:...... G
00FDB0: 52 41 20 47 45 54 20 50 45 4E 0D 0A 20 20 20 20 RA GET PEN..
00FDC0: 20 20 20 47 52 41 20 53 45 54 20 50 41 50 45 52 GRA SET PAPER
00FDD0: 0D 0A 20 20 20 20 20 20 20 53 43 52 20 53 45 54 .. SCR SET
00FDE0: 20 49 4E 4B 0D 0A 20 20 20 20 20 20 20 54 58 54 INK.. TXT
00FDF0: 20 53 45 54 20 50 45 4E 0D 0A 0D 0A 0D 0A 0D 0A SET PEN........
00FE00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
00FE10: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
00FE20: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
00FE30: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
00FE40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00FE50: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 37 page 15.7
00FE60: 38 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 8..............
00FE70: 20 20 20 20 20 20 37 35 3A 20 47 52 41 20 47 45 75: GRA GE
00FE80: 54 20 50 45 4E 20 20 20 20 20 20 20 20 20 20 20 T PEN
00FE90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00FEA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00FEB0: 20 20 20 20 20 20 20 23 42 42 45 31 0D 0A 0D 0A #BBE1....
00FEC0: 0D 0A 20 20 20 20 20 20 20 47 65 74 20 74 68 65 .. Get the
00FED0: 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 69 63 current graphic
00FEE0: 73 20 70 6C 6F 74 74 69 6E 67 20 69 6E 6B 2E 0D s plotting ink..
00FEF0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
00FF00: 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 on:......
00FF10: 41 73 6B 20 77 68 61 74 20 74 68 65 20 63 75 72 Ask what the cur
00FF20: 72 65 6E 74 20 67 72 61 70 68 69 63 73 20 70 65 rent graphics pe
00FF30: 6E 20 69 6E 6B 20 69 73 20 73 65 74 20 74 6F 2E n ink is set to.
00FF40: 20 54 68 69 73 20 69 73 20 74 68 65 20 69 6E 6B This is the ink
00FF50: 20 20 75 73 65 64 0D 0A 20 20 20 20 20 20 20 62 used.. b
00FF60: 79 20 74 68 65 20 47 72 61 70 68 69 63 73 20 56 y the Graphics V
00FF70: 44 55 20 66 6F 72 20 70 6C 6F 74 74 69 6E 67 20 DU for plotting
00FF80: 70 6F 69 6E 74 73 2C 20 20 64 72 61 77 69 6E 67 points, drawing
00FF90: 20 20 6C 69 6E 65 73 20 20 61 6E 64 20 20 77 72 lines and wr
00FFA0: 69 74 69 6E 67 0D 0A 20 20 20 20 20 20 20 63 68 iting.. ch
00FFB0: 61 72 61 63 74 65 72 73 2E 0D 0A 0D 0A 0D 0A 20 aracters.......
00FFC0: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
00FFD0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
00FFE0: 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E No condition
00FFF0: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 s....... E
010000: 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D xit conditions:.
010010: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 6F ..... A co
010020: 6E 74 61 69 6E 73 20 74 68 65 20 69 6E 6B 2E 0D ntains the ink..
010030: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 6C 61 67 ..... Flag
010040: 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 s corrupt...
010050: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
010060: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
010070: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
010080: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
010090: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 68 61 This routine ha
0100A0: 73 20 6E 6F 20 6F 74 68 65 72 20 65 66 66 65 63 s no other effec
0100B0: 74 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ts.........
0100C0: 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 Related entrie
0100D0: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 s:...... G
0100E0: 52 41 20 47 45 54 20 50 41 50 45 52 0D 0A 20 20 RA GET PAPER..
0100F0: 20 20 20 20 20 47 52 41 20 53 45 54 20 50 45 4E GRA SET PEN
010100: 0D 0A 20 20 20 20 20 20 20 53 43 52 20 47 45 54 .. SCR GET
010110: 20 49 4E 4B 0D 0A 20 20 20 20 20 20 20 54 58 54 INK.. TXT
010120: 20 47 45 54 20 50 45 4E 0D 0A 0D 0A 0D 0A 0D 0A GET PEN........
010130: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
010140: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
010150: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
010160: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
010170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010180: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
010190: 31 35 2E 37 39 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.79...........
0101A0: 0A 0D 0A 20 20 20 20 20 20 20 37 36 3A 20 47 52 ... 76: GR
0101B0: 41 20 53 45 54 20 50 41 50 45 52 20 20 20 20 20 A SET PAPER
0101C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0101D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0101E0: 20 20 20 20 20 20 20 20 20 20 20 23 42 42 45 34 #BBE4
0101F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 ...... Set
010200: 20 74 68 65 20 67 72 61 70 68 69 63 73 20 62 61 the graphics ba
010210: 63 6B 67 72 6F 75 6E 64 20 69 6E 6B 2E 0D 0A 0D ckground ink....
010220: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
010230: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 :...... Se
010240: 74 20 74 68 65 20 67 72 61 70 68 69 63 73 20 70 t the graphics p
010250: 61 70 65 72 20 69 6E 6B 2E 0D 0A 0D 0A 0D 0A 20 aper ink.......
010260: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
010270: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
010280: 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 A contains t
010290: 68 65 20 72 65 71 75 69 72 65 64 20 69 6E 6B 2E he required ink.
0102A0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 ...... Exi
0102B0: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
0102C0: 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 63 6F 72 ... AF cor
0102D0: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C rupt... Al
0102E0: 6C 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 l registers pres
0102F0: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 erved.......
010300: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 Notes:......
010310: 20 20 20 20 20 20 54 68 65 20 69 6E 6B 20 69 73 The ink is
010320: 20 6D 61 73 6B 65 64 20 74 6F 20 62 72 69 6E 67 masked to bring
010330: 20 69 74 20 69 6E 20 74 6F 20 72 61 6E 67 65 20 it in to range
010340: 20 6F 66 20 20 69 6E 6B 73 20 20 66 6F 72 20 20 of inks for
010350: 74 68 65 20 20 63 75 72 72 65 6E 74 0D 0A 20 20 the current..
010360: 20 20 20 20 20 73 63 72 65 65 6E 20 6D 6F 64 65 screen mode
010370: 2E 20 49 6E 20 6D 6F 64 65 20 30 20 74 68 65 20 . In mode 0 the
010380: 6D 61 73 6B 20 69 73 20 23 30 46 2C 20 69 6E 20 mask is #0F, in
010390: 6D 6F 64 65 20 31 20 69 74 20 20 69 73 20 20 23 mode 1 it is #
0103A0: 30 33 20 20 61 6E 64 20 20 69 6E 0D 0A 20 20 20 03 and in..
0103B0: 20 20 20 20 6D 6F 64 65 20 32 20 69 74 20 69 73 mode 2 it is
0103C0: 20 23 30 31 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #01.......
0103D0: 20 20 54 68 65 20 70 61 70 65 72 20 69 6E 6B 20 The paper ink
0103E0: 69 73 20 74 68 65 20 69 6E 6B 20 20 74 68 61 74 is the ink that
0103F0: 20 20 69 73 20 20 75 73 65 64 20 20 66 6F 72 20 is used for
010400: 20 63 6C 65 61 72 69 6E 67 20 20 74 68 65 20 20 clearing the
010410: 67 72 61 70 68 69 63 73 0D 0A 20 20 20 20 20 20 graphics..
010420: 20 77 69 6E 64 6F 77 2C 20 61 6E 64 20 77 72 69 window, and wri
010430: 74 69 6E 67 20 74 68 65 20 62 61 63 6B 67 72 6F ting the backgro
010440: 75 6E 64 20 74 6F 20 63 68 61 72 61 63 74 65 72 und to character
010450: 73 2E 20 20 49 74 20 20 69 73 20 20 61 73 73 75 s. It is assu
010460: 6D 65 64 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 med to..
010470: 63 6F 76 65 72 20 65 76 65 72 79 77 68 65 72 65 cover everywhere
010480: 20 6F 75 74 73 69 64 65 20 74 68 65 20 67 72 61 outside the gra
010490: 70 68 69 63 73 20 77 69 6E 64 6F 77 20 77 68 65 phics window whe
0104A0: 6E 20 74 65 73 74 69 6E 67 20 70 6F 69 6E 74 73 n testing points
0104B0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E ....... In
0104C0: 20 56 31 2E 31 20 66 69 72 6D 77 61 72 65 20 74 V1.1 firmware t
0104D0: 68 65 20 20 67 72 61 70 68 69 63 73 20 20 70 61 he graphics pa
0104E0: 70 65 72 20 20 69 6E 6B 20 20 69 73 20 20 75 73 per ink is us
0104F0: 65 64 20 20 74 6F 20 20 70 6C 6F 74 20 20 70 69 ed to plot pi
010500: 78 65 6C 73 0D 0A 20 20 20 20 20 20 20 63 6F 72 xels.. cor
010510: 72 65 73 70 6F 6E 64 69 6E 67 20 74 6F 20 61 20 responding to a
010520: 7A 65 72 6F 20 62 69 74 20 69 6E 20 74 68 65 20 zero bit in the
010530: 6C 69 6E 65 20 6D 61 73 6B 20 77 68 65 6E 20 64 line mask when d
010540: 72 61 77 69 6E 67 20 6C 69 6E 65 73 2E 0D 0A 0D rawing lines....
010550: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
010560: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
010570: 0D 0A 20 20 20 20 20 20 20 47 52 41 20 47 45 54 .. GRA GET
010580: 20 50 41 50 45 52 0D 0A 20 20 20 20 20 20 20 47 PAPER.. G
010590: 52 41 20 53 45 54 20 50 45 4E 0D 0A 20 20 20 20 RA SET PEN..
0105A0: 20 20 20 53 43 52 20 47 45 54 20 49 4E 4B 0D 0A SCR GET INK..
0105B0: 20 20 20 20 20 20 20 54 58 54 20 53 45 54 20 50 TXT SET P
0105C0: 41 50 45 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A APER............
0105D0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
0105E0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
0105F0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
010600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010610: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
010620: 31 35 2E 38 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.80...........
010630: 0A 0D 0A 20 20 20 20 20 20 20 37 37 3A 20 47 52 ... 77: GR
010640: 41 20 47 45 54 20 50 41 50 45 52 20 20 20 20 20 A GET PAPER
010650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010670: 20 20 20 20 20 20 20 20 20 20 20 23 42 42 45 37 #BBE7
010680: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 65 74 ...... Get
010690: 20 74 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 the current gra
0106A0: 70 68 69 63 73 20 62 61 63 6B 67 72 6F 75 6E 64 phics background
0106B0: 20 69 6E 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ink.......
0106C0: 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 Action:......
0106D0: 20 20 20 20 20 20 41 73 6B 20 77 68 61 74 20 74 Ask what t
0106E0: 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 he current graph
0106F0: 69 63 73 20 70 61 70 65 72 20 69 6E 6B 20 69 73 ics paper ink is
010700: 20 73 65 74 20 74 6F 2E 0D 0A 0D 0A 0D 0A 20 20 set to.......
010710: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
010720: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
010730: 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 No conditions
010740: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
010750: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
010760: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 6F 6E .... A con
010770: 74 61 69 6E 73 20 74 68 65 20 69 6E 6B 2E 0D 0A tains the ink...
010780: 0D 0A 0D 0A 20 20 20 20 20 20 20 46 6C 61 67 73 .... Flags
010790: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
0107A0: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
0107B0: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
0107C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ...... Not
0107D0: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
0107E0: 54 68 65 20 70 61 70 65 72 20 69 6E 6B 20 69 73 The paper ink is
0107F0: 20 74 68 65 20 69 6E 6B 20 20 74 68 61 74 20 20 the ink that
010800: 69 73 20 20 75 73 65 64 20 20 66 6F 72 20 20 63 is used for c
010810: 6C 65 61 72 69 6E 67 20 20 74 68 65 20 20 67 72 learing the gr
010820: 61 70 68 69 63 73 0D 0A 20 20 20 20 20 20 20 77 aphics.. w
010830: 69 6E 64 6F 77 2C 20 61 6E 64 20 77 72 69 74 69 indow, and writi
010840: 6E 67 20 62 61 63 6B 67 72 6F 75 6E 64 20 74 6F ng background to
010850: 20 63 68 61 72 61 63 74 65 72 73 2E 20 49 74 20 characters. It
010860: 69 73 20 61 73 73 75 6D 65 64 20 20 74 6F 20 20 is assumed to
010870: 63 6F 76 65 72 0D 0A 20 20 20 20 20 20 20 65 76 cover.. ev
010880: 65 72 79 77 68 65 72 65 20 6F 75 74 73 69 64 65 erywhere outside
010890: 20 74 68 65 20 67 72 61 70 68 69 63 73 20 77 69 the graphics wi
0108A0: 6E 64 6F 77 20 77 68 65 6E 20 74 65 73 74 69 6E ndow when testin
0108B0: 67 20 70 6F 69 6E 74 73 2E 0D 0A 0D 0A 0D 0A 0D g points........
0108C0: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
0108D0: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
0108E0: 20 20 20 20 20 47 52 41 20 47 45 54 20 50 45 4E GRA GET PEN
0108F0: 0D 0A 20 20 20 20 20 20 20 47 52 41 20 53 45 54 .. GRA SET
010900: 20 50 41 50 45 52 0D 0A 20 20 20 20 20 20 20 53 PAPER.. S
010910: 43 52 20 47 45 54 20 49 4E 4B 0D 0A 20 20 20 20 CR GET INK..
010920: 20 20 20 54 58 54 20 47 45 54 20 50 41 50 45 52 TXT GET PAPER
010930: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
010940: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
010950: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
010960: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
010970: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
010980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010990: 20 20 20 70 61 67 65 20 31 35 2E 38 31 0D 0A 0D page 15.81...
0109A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
0109B0: 20 20 37 38 3A 20 47 52 41 20 50 4C 4F 54 20 41 78: GRA PLOT A
0109C0: 42 53 4F 4C 55 54 45 20 20 20 20 20 20 20 20 20 BSOLUTE
0109D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0109E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0109F0: 20 20 20 23 42 42 45 41 0D 0A 0D 0A 0D 0A 20 20 #BBEA......
010A00: 20 20 20 20 20 50 6C 6F 74 20 61 20 70 6F 69 6E Plot a poin
010A10: 74 20 61 74 20 61 6E 20 61 62 73 6F 6C 75 74 65 t at an absolute
010A20: 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A position.......
010A30: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
010A40: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 63 .... The c
010A50: 75 72 72 65 6E 74 20 67 72 61 70 68 69 63 20 70 urrent graphic p
010A60: 6F 73 69 74 69 6F 6E 20 69 73 20 6D 6F 76 65 64 osition is moved
010A70: 20 74 6F 20 74 68 65 20 70 6F 73 69 74 69 6F 6E to the position
010A80: 20 73 75 70 70 6C 69 65 64 2E 20 49 66 20 20 69 supplied. If i
010A90: 74 0D 0A 20 20 20 20 20 20 20 6C 69 65 73 20 69 t.. lies i
010AA0: 6E 73 69 64 65 20 74 68 65 20 67 72 61 70 68 69 nside the graphi
010AB0: 63 73 20 77 69 6E 64 6F 77 20 74 68 65 6E 20 20 cs window then
010AC0: 74 68 65 20 20 70 6F 69 6E 74 20 20 69 73 20 20 the point is
010AD0: 70 6C 6F 74 74 65 64 20 20 69 6E 20 20 74 68 65 plotted in the
010AE0: 0D 0A 20 20 20 20 20 20 20 63 75 72 72 65 6E 74 .. current
010AF0: 20 67 72 61 70 68 69 63 73 20 70 65 6E 20 69 6E graphics pen in
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: 6B 20 75 73 69 6E 67 20 74 68 65 20 63 75 72 72 k using the curr
010C10: 65 6E 74 20 67 72 61 70 68 69 63 73 20 77 72 69 ent graphics wri
010C20: 74 65 20 6D 6F 64 65 2E 20 49 66 20 74 68 65 0D te mode. If the.
010C30: 0A 20 20 20 20 20 20 20 70 6F 69 6E 74 20 6C 69 . point li
010C40: 65 73 20 6F 75 74 73 69 64 65 20 74 68 65 20 67 es outside the g
010C50: 72 61 70 68 69 63 73 20 77 69 6E 64 6F 77 20 74 raphics window t
010C60: 68 65 6E 20 6E 6F 20 61 63 74 69 6F 6E 20 69 73 hen no action is
010C70: 20 74 61 6B 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 taken.......
010C80: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
010C90: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
010CA0: 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 DE contains th
010CB0: 65 20 75 73 65 72 20 58 20 63 6F 6F 72 64 69 6E e user X coordin
010CC0: 61 74 65 20 74 6F 20 70 6C 6F 74 20 61 74 2E 0D ate to plot at..
010CD0: 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 . HL conta
010CE0: 69 6E 73 20 74 68 65 20 75 73 65 72 20 59 20 63 ins the user Y c
010CF0: 6F 6F 72 64 69 6E 61 74 65 20 74 6F 20 70 6C 6F oordinate to plo
010D00: 74 20 61 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 t at.......
010D10: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
010D20: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 s:...... A
010D30: 46 2C 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 63 F,BC,DE and HL c
010D40: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
010D50: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
010D60: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
010D70: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
010D80: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 :.... The
010D90: 70 6F 73 69 74 69 6F 6E 20 74 6F 20 70 6C 6F 74 position to plot
010DA0: 20 61 74 20 69 73 20 67 69 76 65 6E 20 69 6E 20 at is given in
010DB0: 75 73 65 72 20 63 6F 6F 72 64 69 6E 61 74 65 73 user coordinates
010DC0: 2E 20 69 2E 65 2E 20 52 65 6C 61 74 69 76 65 20 . i.e. Relative
010DD0: 74 6F 0D 0A 20 20 20 20 20 20 20 74 68 65 20 75 to.. the u
010DE0: 73 65 72 20 6F 72 69 67 69 6E 2E 0D 0A 0D 0A 0D ser origin......
010DF0: 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 . This rou
010E00: 74 69 6E 65 20 63 61 6C 6C 73 20 74 68 65 20 47 tine calls the G
010E10: 52 41 20 50 4C 4F 54 20 69 6E 64 69 72 65 63 74 RA PLOT indirect
010E20: 69 6F 6E 20 74 6F 20 70 6C 6F 74 20 74 68 65 20 ion to plot the
010E30: 70 6F 69 6E 74 2E 20 49 6E 20 20 69 74 73 0D 0A point. In its..
010E40: 20 20 20 20 20 20 20 74 75 72 6E 20 47 52 41 20 turn GRA
010E50: 50 4C 4F 54 20 63 61 6C 6C 73 20 74 68 65 20 53 PLOT calls the S
010E60: 43 52 20 57 52 49 54 45 20 69 6E 64 69 72 65 63 CR WRITE indirec
010E70: 74 69 6F 6E 20 74 6F 20 73 65 74 20 74 68 65 20 tion to set the
010E80: 70 69 78 65 6C 20 28 69 66 20 20 69 74 0D 0A 20 pixel (if it..
010E90: 20 20 20 20 20 20 69 73 20 69 6E 20 74 68 65 20 is in the
010EA0: 77 69 6E 64 6F 77 29 2E 0D 0A 0D 0A 0D 0A 0D 0A window).........
010EB0: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
010EC0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
010ED0: 20 20 20 20 47 52 41 20 50 4C 4F 54 0D 0A 20 20 GRA PLOT..
010EE0: 20 20 20 20 20 47 52 41 20 50 4C 4F 54 20 52 45 GRA PLOT RE
010EF0: 4C 41 54 49 56 45 0D 0A 20 20 20 20 20 20 20 47 LATIVE.. G
010F00: 52 41 20 54 45 53 54 20 41 42 53 4F 4C 55 54 45 RA TEST ABSOLUTE
010F10: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
010F20: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
010F30: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
010F40: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
010F50: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
010F60: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
010F70: 65 20 31 35 2E 38 32 0D 0A 0D 0A 0D 0A 0D 0A 0D e 15.82.........
010F80: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 37 39 3A 20 ..... 79:
010F90: 47 52 41 20 50 4C 4F 54 20 52 45 4C 41 54 49 56 GRA PLOT RELATIV
010FA0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
010FB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
010FC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 42 #BB
010FD0: 45 44 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 50 ED...... P
010FE0: 6C 6F 74 20 61 20 70 6F 69 6E 74 20 72 65 6C 61 lot a point rela
010FF0: 74 69 76 65 20 74 6F 20 74 68 65 20 63 75 72 72 tive to the curr
011000: 65 6E 74 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D ent position....
011010: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
011020: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 :...... Th
011030: 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 69 e current graphi
011040: 63 73 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 6D cs position is m
011050: 6F 76 65 64 20 74 6F 20 74 68 65 20 20 70 6F 73 oved to the pos
011060: 69 74 69 6F 6E 20 20 73 75 70 70 6C 69 65 64 2E ition supplied.
011070: 20 20 49 66 0D 0A 20 20 20 20 20 20 20 74 68 69 If.. thi
011080: 73 20 6C 69 65 73 20 69 6E 73 69 64 65 20 74 68 s lies inside th
011090: 65 20 67 72 61 70 68 69 63 73 20 77 69 6E 64 6F e graphics windo
0110A0: 77 20 74 68 65 6E 20 74 68 65 20 70 6F 69 6E 74 w then the point
0110B0: 20 69 73 20 70 6C 6F 74 74 65 64 20 69 6E 20 20 is plotted in
0110C0: 74 68 65 0D 0A 20 20 20 20 20 20 20 63 75 72 72 the.. curr
0110D0: 65 6E 74 20 67 72 61 70 68 69 63 73 20 70 65 6E ent graphics pen
0110E0: 20 69 6E 6B 20 75 73 69 6E 67 20 74 68 65 20 63 ink using the c
0110F0: 75 72 72 65 6E 74 20 67 72 61 70 68 69 63 73 20 urrent graphics
011100: 77 72 69 74 65 20 6D 6F 64 65 2E 20 49 66 20 74 write mode. If t
011110: 68 65 0D 0A 20 20 20 20 20 20 20 70 6F 69 6E 74 he.. point
011120: 20 6C 69 65 73 20 6F 75 74 73 69 64 65 20 74 68 lies outside th
011130: 65 20 67 72 61 70 68 69 63 73 20 77 69 6E 64 6F e graphics windo
011140: 77 20 74 68 65 6E 20 6E 6F 20 61 63 74 69 6F 6E w then no action
011150: 20 69 73 20 74 61 6B 65 6E 2E 0D 0A 0D 0A 0D 0A is taken.......
011160: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
011170: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
011180: 20 20 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 DE contains
011190: 20 61 20 73 69 67 6E 65 64 20 58 20 6F 66 66 73 a signed X offs
0111A0: 65 74 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 et... HL c
0111B0: 6F 6E 74 61 69 6E 73 20 61 20 73 69 67 6E 65 64 ontains a signed
0111C0: 20 59 20 6F 66 66 73 65 74 2E 0D 0A 0D 0A 0D 0A Y offset.......
0111D0: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
0111E0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
0111F0: 20 20 20 20 41 46 2C 42 43 2C 44 45 20 61 6E 64 AF,BC,DE and
011200: 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 HL corrupt...
011210: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
011220: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
011230: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
011240: 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 Notes:......
011250: 20 20 20 54 68 65 20 70 6F 73 69 74 69 6F 6E 20 The position
011260: 74 6F 20 20 70 6C 6F 74 20 20 61 74 20 20 69 73 to plot at is
011270: 20 20 67 69 76 65 6E 20 20 69 6E 20 20 72 65 6C given in rel
011280: 61 74 69 76 65 20 20 63 6F 6F 72 64 69 6E 61 74 ative coordinat
011290: 65 73 2E 20 20 69 2E 65 2E 0D 0A 20 20 20 20 20 es. i.e...
0112A0: 20 20 52 65 6C 61 74 69 76 65 20 74 6F 20 74 68 Relative to th
0112B0: 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 69 e current graphi
0112C0: 63 73 20 70 6F 73 69 74 69 6F 6E 2E 2E 0D 0A 0D cs position.....
0112D0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 ... This r
0112E0: 6F 75 74 69 6E 65 20 63 61 6C 6C 73 20 74 68 65 outine calls the
0112F0: 20 47 52 41 20 50 4C 4F 54 20 69 6E 64 69 72 65 GRA PLOT indire
011300: 63 74 69 6F 6E 20 74 6F 20 70 6C 6F 74 20 74 68 ction to plot th
011310: 65 20 70 6F 69 6E 74 2E 20 49 6E 20 20 69 74 73 e point. In its
011320: 0D 0A 20 20 20 20 20 20 20 74 75 72 6E 20 47 52 .. turn GR
011330: 41 20 50 4C 4F 54 20 63 61 6C 6C 73 20 74 68 65 A PLOT calls the
011340: 20 53 43 52 20 57 52 49 54 45 20 69 6E 64 69 72 SCR WRITE indir
011350: 65 63 74 69 6F 6E 20 74 6F 20 73 65 74 20 74 68 ection to set th
011360: 65 20 70 69 78 65 6C 20 28 69 66 20 20 69 74 0D e pixel (if it.
011370: 0A 20 20 20 20 20 20 20 69 73 20 69 6E 20 74 68 . is in th
011380: 65 20 77 69 6E 64 6F 77 29 2E 0D 0A 0D 0A 0D 0A e window).......
011390: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
0113A0: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 entries:......
0113B0: 20 20 20 20 20 20 47 52 41 20 50 4C 4F 54 0D 0A GRA PLOT..
0113C0: 20 20 20 20 20 20 20 47 52 41 20 50 4C 4F 54 20 GRA PLOT
0113D0: 52 45 4C 41 54 49 56 45 0D 0A 20 20 20 20 20 20 RELATIVE..
0113E0: 20 47 52 41 20 54 45 53 54 20 41 42 53 4F 4C 55 GRA TEST ABSOLU
0113F0: 54 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A TE..............
011400: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
011410: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
011420: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
011430: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
011440: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
011450: 65 20 31 35 2E 38 33 0D 0A 0D 0A 0D 0A 0D 0A 0D e 15.83.........
011460: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 38 30 3A 20 ..... 80:
011470: 47 52 41 20 54 45 53 54 20 41 42 53 4F 4C 55 54 GRA TEST ABSOLUT
011480: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
011490: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0114A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 42 #BB
0114B0: 46 30 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 F0...... T
0114C0: 65 73 74 20 61 20 70 6F 69 6E 74 20 61 74 20 61 est a point at a
0114D0: 6E 20 61 62 73 6F 6C 75 74 65 20 70 6F 73 69 74 n absolute posit
0114E0: 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion.......
0114F0: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 Action:......
011500: 20 20 20 20 20 54 68 65 20 63 75 72 72 65 6E 74 The current
011510: 20 67 72 61 70 68 69 63 73 20 70 6F 73 69 74 69 graphics positi
011520: 6F 6E 20 69 73 20 6D 6F 76 65 64 20 74 6F 20 74 on is moved to t
011530: 68 65 20 70 6F 73 69 74 69 6F 6E 20 73 75 70 70 he position supp
011540: 6C 69 65 64 2E 20 49 66 20 69 74 0D 0A 20 20 20 lied. If it..
011550: 20 20 20 20 6C 69 65 73 20 69 6E 73 69 64 65 20 lies inside
011560: 74 68 65 20 67 72 61 70 68 69 63 73 20 77 69 6E the graphics win
011570: 64 6F 77 20 74 68 65 6E 20 74 68 65 20 70 69 78 dow then the pix
011580: 65 6C 20 69 73 20 72 65 61 64 20 66 72 6F 6D 20 el is read from
011590: 74 68 65 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 the screen..
0115A0: 20 20 20 61 6E 64 20 74 68 65 20 69 6E 6B 20 69 and the ink i
0115B0: 74 20 69 73 20 73 65 74 20 74 6F 20 69 73 20 64 t is set to is d
0115C0: 65 63 6F 64 65 64 20 61 6E 64 20 72 65 74 75 72 ecoded and retur
0115D0: 6E 65 64 2E 20 49 66 20 74 68 65 20 70 6F 73 69 ned. If the posi
0115E0: 74 69 6F 6E 20 6C 69 65 73 0D 0A 20 20 20 20 20 tion lies..
0115F0: 20 20 6F 75 74 73 69 64 65 20 74 68 65 20 67 72 outside the gr
011600: 61 70 68 69 63 73 20 77 69 6E 64 6F 77 20 74 68 aphics window th
011610: 65 6E 20 74 68 65 20 63 75 72 72 65 6E 74 20 70 en the current p
011620: 61 70 65 72 20 69 6E 6B 20 69 73 20 72 65 74 75 aper ink is retu
011630: 72 6E 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rned.......
011640: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
011650: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
011660: 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 DE contains the
011670: 75 73 65 72 20 58 20 63 6F 6F 72 64 69 6E 61 74 user X coordinat
011680: 65 20 74 6F 20 74 65 73 74 20 61 74 2E 0D 0A 20 e to test at...
011690: 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E HL contain
0116A0: 73 20 74 68 65 20 75 73 65 72 20 59 20 63 6F 6F s the user Y coo
0116B0: 72 64 69 6E 61 74 65 20 74 6F 20 74 65 73 74 20 rdinate to test
0116C0: 61 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 at.......
0116D0: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
0116E0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 ...... A c
0116F0: 6F 6E 74 61 69 6E 73 20 74 68 65 20 69 6E 6B 20 ontains the ink
011700: 6F 66 20 74 68 65 20 73 70 65 63 69 66 69 65 64 of the specified
011710: 20 70 6F 69 6E 74 20 28 6F 72 20 74 68 65 20 67 point (or the g
011720: 72 61 70 68 69 63 73 20 70 61 70 65 72 20 69 6E raphics paper in
011730: 6B 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 k).......
011740: 42 43 2C 44 45 2C 48 4C 20 61 6E 64 20 66 6C 61 BC,DE,HL and fla
011750: 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 gs corrupt...
011760: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
011770: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
011780: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E d....... N
011790: 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 otes:......
0117A0: 20 20 54 68 65 20 70 6F 73 69 74 69 6F 6E 20 74 The position t
0117B0: 6F 20 74 65 73 74 20 69 73 20 67 69 76 65 6E 20 o test is given
0117C0: 69 6E 20 75 73 65 72 20 63 6F 6F 72 64 69 6E 61 in user coordina
0117D0: 74 65 73 2E 20 20 69 2E 65 2E 20 20 52 65 6C 61 tes. i.e. Rela
0117E0: 74 69 76 65 20 20 74 6F 0D 0A 20 20 20 20 20 20 tive to..
0117F0: 20 74 68 65 20 75 73 65 72 20 6F 72 69 67 69 6E the user origin
011800: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
011810: 69 73 20 72 6F 75 74 69 6E 65 20 63 61 6C 6C 73 is routine calls
011820: 20 74 68 65 20 47 52 41 20 54 45 53 54 20 69 6E the GRA TEST in
011830: 64 69 72 65 63 74 69 6F 6E 20 74 6F 20 74 65 73 direction to tes
011840: 74 20 74 68 65 20 70 6F 69 6E 74 2E 20 49 6E 20 t the point. In
011850: 20 69 74 73 0D 0A 20 20 20 20 20 20 20 74 75 72 its.. tur
011860: 6E 20 47 52 41 20 54 45 53 54 20 63 61 6C 6C 73 n GRA TEST calls
011870: 20 74 68 65 20 53 43 52 20 52 45 41 44 20 69 6E the SCR READ in
011880: 64 69 72 65 63 74 69 6F 6E 20 74 6F 20 74 65 73 direction to tes
011890: 74 20 74 68 65 20 70 69 78 65 6C 20 28 69 66 20 t the pixel (if
0118A0: 20 69 74 0D 0A 20 20 20 20 20 20 20 69 73 20 69 it.. is i
0118B0: 6E 20 74 68 65 20 77 69 6E 64 6F 77 29 2E 0D 0A n the window)...
0118C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
0118D0: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
0118E0: 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 50 4C ... GRA PL
0118F0: 4F 54 20 41 42 53 4F 4C 55 54 45 0D 0A 20 20 20 OT ABSOLUTE..
011900: 20 20 20 20 47 52 41 20 54 45 53 54 0D 0A 20 20 GRA TEST..
011910: 20 20 20 20 20 47 52 41 20 54 45 53 54 20 52 45 GRA TEST RE
011920: 4C 41 54 49 56 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A LATIVE..........
011930: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
011940: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
011950: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
011960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011970: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
011980: 31 35 2E 38 34 0D 0A 1A 35 20 24 24 24 FF 00 FF 15.84...5 $$$...
011990: 20 20 20 36 38 3A 20 47 52 41 20 47 45 54 20 4F 68: GRA GET O
0119A0: 52 49 47 49 4E 20 20 20 20 20 20 20 20 20 20 20 RIGIN
0119B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0119C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0119D0: 20 20 20 20 23 42 42 43 43 0D 0A 0D 0A 0D 0A 20 #BBCC......
0119E0: 20 20 20 20 20 20 47 65 74 20 74 68 65 20 6F 72 Get the or
0119F0: 69 67 69 6E 20 6F 66 20 74 68 65 20 75 73 65 72 igin of the user
011A00: 2E 38 34 0D 0A 1A 2D 31 35 20 24 24 24 FF 00 FF .84...-15 $$$...
011A10: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
011A20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011A30: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
011A40: 31 30 37 0D 0A 1A 20 20 20 20 20 20 20 20 20 20 107...
011A50: 23 42 42 43 43 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #BBCC......
011A60: 20 20 47 65 74 20 74 68 65 20 6F 72 69 67 69 6E Get the origin
011A70: 20 6F 66 20 74 68 65 20 75 73 65 72 20 63 6F 6F of the user coo
011A80: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
011A90: 20 72 6F 75 74 69 6E 65 20 63 61 6C 6C 73 20 74 routine calls t
011AA0: 68 65 20 47 52 41 20 54 45 53 54 20 69 6E 64 69 he GRA TEST indi
011AB0: 72 65 63 74 69 6F 6E 20 74 6F 20 74 65 73 74 20 rection to test
011AC0: 74 68 65 20 70 6F 69 6E 74 2E 20 49 6E 20 20 69 the point. In i
011AD0: 74 73 0D 0A 20 20 20 20 20 20 20 74 75 72 6E 20 ts.. turn
011AE0: 47 52 41 20 54 45 53 54 20 63 61 6C 6C 73 20 74 GRA TEST calls t
011AF0: 68 65 20 53 43 52 20 52 45 41 44 20 69 6E 64 69 he SCR READ indi
011B00: 72 65 63 74 69 6F 6E 20 74 6F 20 74 65 73 74 20 rection to test
011B10: 74 68 65 20 70 69 78 65 6C 20 28 69 66 20 20 69 the pixel (if i
011B20: 74 0D 0A 20 20 20 20 20 20 20 69 73 20 69 6E 20 t.. is in
011B30: 74 68 65 20 77 69 6E 64 6F 77 29 2E 0D 0A 0D 0A the window).....
011B40: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
011B50: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D ed entries:.....
011B60: 0A 20 20 20 20 20 20 20 47 52 41 20 50 4C 4F 54 . GRA PLOT
011B70: 20 41 42 53 4F 4C 55 54 45 0D 0A 20 20 20 20 20 ABSOLUTE..
011B80: 20 20 47 52 41 20 54 45 53 54 0D 0A 20 20 20 20 GRA TEST..
011B90: 20 20 20 47 52 41 20 54 45 53 54 20 52 45 4C 41 GRA TEST RELA
011BA0: 54 49 56 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A TIVE............
011BB0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
011BC0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
011BD0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
011BE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011BF0: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
011C00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
011C10: 20 20 20 38 31 3A 20 47 52 41 20 54 45 53 54 20 81: GRA TEST
011C20: 52 45 4C 41 54 49 56 45 20 20 20 20 20 20 20 20 RELATIVE
011C30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011C40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011C50: 20 20 20 20 23 42 42 46 33 0D 0A 0D 0A 0D 0A 20 #BBF3......
011C60: 20 20 20 20 20 20 54 65 73 74 20 61 20 70 6F 69 Test a poi
011C70: 6E 74 20 72 65 6C 61 74 69 76 65 20 74 6F 20 74 nt relative to t
011C80: 68 65 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 he current posit
011C90: 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion.......
011CA0: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 Action:......
011CB0: 20 20 20 20 20 54 68 65 20 63 75 72 72 65 6E 74 The current
011CC0: 20 67 72 61 70 68 69 63 73 20 70 6F 73 69 74 69 graphics positi
011CD0: 6F 6E 20 69 73 20 6D 6F 76 65 64 20 74 6F 20 74 on is moved to t
011CE0: 68 65 20 70 6F 73 69 74 69 6F 6E 20 73 75 70 70 he position supp
011CF0: 6C 69 65 64 2E 20 49 66 20 69 74 0D 0A 20 20 20 lied. If it..
011D00: 20 20 20 20 6C 69 65 73 20 69 6E 73 69 64 65 20 lies inside
011D10: 74 68 65 20 67 72 61 70 68 69 63 73 20 77 69 6E the graphics win
011D20: 64 6F 77 20 74 68 65 6E 20 74 68 65 20 70 69 78 dow then the pix
011D30: 65 6C 20 69 73 20 72 65 61 64 20 66 72 6F 6D 20 el is read from
011D40: 74 68 65 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 the screen..
011D50: 20 20 20 61 6E 64 20 74 68 65 20 69 6E 6B 20 69 and the ink i
011D60: 74 20 69 73 20 73 65 74 20 74 6F 20 69 73 20 64 t is set to is d
011D70: 65 63 6F 64 65 64 20 61 6E 64 20 72 65 74 75 72 ecoded and retur
011D80: 6E 65 64 2E 20 49 66 20 74 68 65 20 20 70 6F 73 ned. If the pos
011D90: 69 74 69 6F 6E 20 20 69 73 0D 0A 20 20 20 20 20 ition is..
011DA0: 20 20 6F 75 74 73 69 64 65 20 74 68 65 20 67 72 outside the gr
011DB0: 61 70 68 69 63 73 20 77 69 6E 64 6F 77 20 74 68 aphics window th
011DC0: 65 6E 20 74 68 65 20 63 75 72 72 65 6E 74 20 70 en the current p
011DD0: 61 70 65 72 20 69 6E 6B 20 69 73 20 72 65 74 75 aper ink is retu
011DE0: 72 6E 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rned.......
011DF0: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
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: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
011F10: 44 45 20 63 6F 6E 74 61 69 6E 73 20 61 20 73 69 DE contains a si
011F20: 67 6E 65 64 20 58 20 6F 66 66 73 65 74 2E 0D 0A gned X offset...
011F30: 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 HL contai
011F40: 6E 73 20 61 20 73 69 67 6E 65 64 20 59 20 6F 66 ns a signed Y of
011F50: 66 73 65 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 fset.......
011F60: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
011F70: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 s:...... A
011F80: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 69 6E contains the in
011F90: 6B 20 6F 66 20 74 68 65 20 73 70 65 63 69 66 69 k of the specifi
011FA0: 65 64 20 70 6F 69 6E 74 20 28 6F 72 20 74 68 65 ed point (or the
011FB0: 20 67 72 61 70 68 69 63 73 20 70 61 70 65 72 20 graphics paper
011FC0: 69 6E 6B 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ink).......
011FD0: 20 20 42 43 2C 44 45 2C 48 4C 20 61 6E 64 20 66 BC,DE,HL and f
011FE0: 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 lags corrupt...
011FF0: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
012000: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
012010: 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ved.......
012020: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 Notes:......
012030: 20 20 20 20 54 68 65 20 70 6F 73 69 74 69 6F 6E The position
012040: 20 74 6F 20 74 65 73 74 20 69 73 20 67 69 76 65 to test is give
012050: 6E 20 69 6E 20 72 65 6C 61 74 69 76 65 20 63 6F n in relative co
012060: 6F 72 64 69 6E 61 74 65 73 2E 20 20 69 2E 65 2E ordinates. i.e.
012070: 20 20 52 65 6C 61 74 69 76 65 0D 0A 20 20 20 20 Relative..
012080: 20 20 20 74 6F 20 74 68 65 20 63 75 72 72 65 6E to the curren
012090: 74 20 67 72 61 70 68 69 63 73 20 70 6F 73 69 74 t graphics posit
0120A0: 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion.......
0120B0: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 63 61 This routine ca
0120C0: 6C 6C 73 20 74 68 65 20 47 52 41 20 54 45 53 54 lls the GRA TEST
0120D0: 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 74 6F 20 indirection to
0120E0: 74 65 73 74 20 74 68 65 20 70 6F 69 6E 74 2E 20 test the point.
0120F0: 49 6E 20 20 69 74 73 0D 0A 20 20 20 20 20 20 20 In its..
012100: 74 75 72 6E 20 47 52 41 20 54 45 53 54 20 63 61 turn GRA TEST ca
012110: 6C 6C 73 20 74 68 65 20 53 43 52 20 52 45 41 44 lls the SCR READ
012120: 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 74 6F 20 indirection to
012130: 74 65 73 74 20 74 68 65 20 70 69 78 65 6C 20 28 test the pixel (
012140: 69 66 20 20 69 74 0D 0A 20 20 20 20 20 20 20 69 if it.. i
012150: 73 20 69 6E 20 74 68 65 20 77 69 6E 64 6F 77 29 s in the window)
012160: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
012170: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
012180: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 ...... GRA
012190: 20 50 4C 4F 54 20 52 45 4C 41 54 49 56 45 0D 0A PLOT RELATIVE..
0121A0: 20 20 20 20 20 20 20 47 52 41 20 54 45 53 54 0D GRA TEST.
0121B0: 0A 20 20 20 20 20 20 20 47 52 41 20 54 45 53 54 . GRA TEST
0121C0: 20 41 42 53 4F 4C 55 54 45 0D 0A 0D 0A 0D 0A 0D ABSOLUTE.......
0121D0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
0121E0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
0121F0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
012200: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
012210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
012220: 67 65 20 31 35 2E 38 35 0D 0A 0D 0A 0D 0A 0D 0A ge 15.85........
012230: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 38 32 3A ...... 82:
012240: 20 47 52 41 20 4C 49 4E 45 20 41 42 53 4F 4C 55 GRA LINE ABSOLU
012250: 54 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 TE
012260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
012280: 42 46 36 0D 0A 0D 0A 20 20 20 20 20 20 20 44 72 BF6.... Dr
012290: 61 77 20 61 20 6C 69 6E 65 20 74 6F 20 61 6E 20 aw a line to an
0122A0: 61 62 73 6F 6C 75 74 65 20 70 6F 73 69 74 69 6F absolute positio
0122B0: 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 n..... Act
0122C0: 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4D ion:.... M
0122D0: 6F 76 65 20 74 68 65 20 63 75 72 72 65 6E 74 20 ove the current
0122E0: 67 72 61 70 68 69 63 73 20 20 70 6F 73 69 74 69 graphics positi
0122F0: 6F 6E 20 20 74 6F 20 20 74 68 65 20 20 65 6E 64 on to the end
012300: 70 6F 69 6E 74 20 20 73 75 70 70 6C 69 65 64 2E point supplied.
012310: 20 20 41 6C 6C 0D 0A 20 20 20 20 20 20 20 70 6F All.. po
012320: 69 6E 74 73 20 62 65 74 77 65 65 6E 20 74 68 69 ints between thi
012330: 73 20 70 6F 73 69 74 69 6F 6E 20 61 6E 64 20 74 s position and t
012340: 68 65 20 70 72 65 76 69 6F 75 73 20 67 72 61 70 he previous grap
012350: 68 69 63 73 20 20 70 6F 73 69 74 69 6F 6E 20 20 hics position
012360: 74 68 61 74 0D 0A 20 20 20 20 20 20 20 6C 69 65 that.. lie
012370: 20 69 6E 73 69 64 65 20 74 68 65 20 67 72 61 70 inside the grap
012380: 68 69 63 73 20 77 69 6E 64 6F 77 20 6D 61 79 20 hics window may
012390: 62 65 20 70 6C 6F 74 74 65 64 2E 20 50 6F 69 6E be plotted. Poin
0123A0: 74 73 20 74 68 61 74 20 6C 69 65 20 6F 75 74 73 ts that lie outs
0123B0: 69 64 65 0D 0A 20 20 20 20 20 20 20 74 68 65 20 ide.. the
0123C0: 67 72 61 70 68 69 63 73 20 77 69 6E 64 6F 77 20 graphics window
0123D0: 61 72 65 20 69 67 6E 6F 72 65 64 2E 0D 0A 0D 0A are ignored.....
0123E0: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
0123F0: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
012400: 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 DE contains t
012410: 68 65 20 75 73 65 72 20 58 20 63 6F 6F 72 64 69 he user X coordi
012420: 6E 61 74 65 20 6F 66 20 74 68 65 20 65 6E 64 70 nate of the endp
012430: 6F 69 6E 74 2E 0D 0A 20 20 20 20 20 20 20 48 4C oint... HL
012440: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 75 73 contains the us
012450: 65 72 20 59 20 63 6F 6F 72 64 69 6E 61 74 65 20 er Y coordinate
012460: 6F 66 20 74 68 65 20 65 6E 64 70 6F 69 6E 74 2E of the endpoint.
012470: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
012480: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
012490: 20 20 20 20 20 20 41 46 2C 42 43 2C 44 45 20 61 AF,BC,DE a
0124A0: 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A nd HL corrupt...
0124B0: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
0124C0: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
0124D0: 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rved.....
0124E0: 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 Notes:....
0124F0: 20 54 68 65 20 70 6F 73 69 74 69 6F 6E 20 6F 66 The position of
012500: 20 74 68 65 20 65 6E 64 20 6F 66 20 74 68 65 20 the end of the
012510: 6C 69 6E 65 20 69 73 20 67 69 76 65 6E 20 69 6E line is given in
012520: 20 75 73 65 72 20 63 6F 6F 72 64 69 6E 61 74 65 user coordinate
012530: 73 2E 20 69 2E 65 2E 0D 0A 20 20 20 20 20 20 20 s. i.e...
012540: 52 65 6C 61 74 69 76 65 20 74 6F 20 74 68 65 20 Relative to the
012550: 75 73 65 72 20 6F 72 69 67 69 6E 2E 0D 0A 0D 0A user origin.....
012560: 20 20 20 20 20 20 20 49 6E 20 56 31 2E 30 20 66 In V1.0 f
012570: 69 72 6D 77 61 72 65 20 74 68 65 20 70 6F 69 6E irmware the poin
012580: 74 73 20 77 69 6C 6C 20 62 65 20 70 6C 6F 74 74 ts will be plott
012590: 65 64 20 69 6E 20 20 74 68 65 20 20 63 75 72 72 ed in the curr
0125A0: 65 6E 74 20 20 67 72 61 70 68 69 63 73 0D 0A 20 ent graphics..
0125B0: 20 20 20 20 20 20 70 65 6E 20 69 6E 6B 20 75 73 pen ink us
0125C0: 69 6E 67 20 74 68 65 20 63 75 72 72 65 6E 74 20 ing the current
0125D0: 67 72 61 70 68 69 63 73 20 77 72 69 74 65 20 6D graphics write m
0125E0: 6F 64 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 ode..... I
0125F0: 6E 20 56 31 2E 31 20 66 69 72 6D 77 61 72 65 20 n V1.1 firmware
012600: 74 68 65 20 73 65 74 74 69 6E 67 20 6F 66 20 20 the setting of
012610: 74 68 65 20 20 6C 69 6E 65 20 20 6D 61 73 6B 20 the line mask
012620: 20 64 65 74 65 72 6D 69 6E 65 73 20 20 68 6F 77 determines how
012630: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 70 69 the.. pi
012640: 78 65 6C 73 20 6F 6E 20 74 68 65 20 6C 69 6E 65 xels on the line
012650: 20 77 69 6C 6C 20 62 65 20 70 6C 6F 74 74 65 64 will be plotted
012660: 2E 20 54 68 65 20 6C 69 6E 65 20 6D 61 73 6B 20 . The line mask
012670: 69 73 20 20 62 69 74 20 20 73 69 67 6E 69 66 69 is bit signifi
012680: 63 61 6E 74 0D 0A 20 20 20 20 20 20 20 61 6E 64 cant.. and
012690: 20 69 73 20 75 73 65 64 20 72 65 70 65 61 74 65 is used repeate
0126A0: 64 6C 79 20 69 6E 20 74 68 65 20 6F 72 64 65 72 dly in the order
0126B0: 20 62 69 74 20 37 2C 20 62 69 74 20 36 20 64 6F bit 7, bit 6 do
0126C0: 77 6E 20 20 74 6F 20 20 62 69 74 20 20 30 20 20 wn to bit 0
0126D0: 66 6F 72 0D 0A 20 20 20 20 20 20 20 65 61 63 68 for.. each
0126E0: 20 70 69 78 65 6C 20 69 6E 20 74 68 65 20 6C 69 pixel in the li
0126F0: 6E 65 2E 20 49 66 20 74 68 65 20 62 69 74 20 69 ne. If the bit i
012700: 73 20 6F 6E 65 20 74 68 65 6E 20 74 68 65 20 70 s one then the p
012710: 69 78 65 6C 20 69 73 20 70 6C 6F 74 74 65 64 20 ixel is plotted
012720: 69 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 20 67 in.. the g
012730: 72 61 70 68 69 63 73 20 70 65 6E 20 69 6E 6B 20 raphics pen ink
012740: 75 73 69 6E 67 20 74 68 65 20 63 75 72 72 65 6E using the curren
012750: 74 20 67 72 61 70 68 69 63 73 20 77 72 69 74 65 t graphics write
012760: 20 6D 6F 64 65 2E 20 49 66 20 74 68 65 20 62 69 mode. If the bi
012770: 74 0D 0A 20 20 20 20 20 20 20 69 73 20 7A 65 72 t.. is zer
012780: 6F 20 74 68 65 6E 20 74 68 65 20 61 63 74 69 6F o then the actio
012790: 6E 20 64 65 70 65 6E 64 73 20 6F 6E 20 74 68 65 n depends on the
0127A0: 20 67 72 61 70 68 69 63 73 20 62 61 63 6B 67 72 graphics backgr
0127B0: 6F 75 6E 64 20 77 72 69 74 65 20 6D 6F 64 65 2E ound write mode.
0127C0: 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 .. If the
0127D0: 62 61 63 6B 67 72 6F 75 6E 64 20 6D 6F 64 65 20 background mode
0127E0: 69 73 20 6F 70 61 71 75 65 20 74 68 65 6E 20 74 is opaque then t
0127F0: 68 65 20 20 70 69 78 65 6C 20 20 69 73 20 20 70 he pixel is p
012800: 6C 6F 74 74 65 64 20 20 69 6E 20 20 74 68 65 0D lotted in the.
012810: 0A 20 20 20 20 20 20 20 67 72 61 70 68 69 63 73 . graphics
012820: 20 70 61 70 65 72 20 69 6E 6B 20 75 73 69 6E 67 paper ink using
012830: 20 74 68 65 20 20 63 75 72 72 65 6E 74 20 20 67 the current g
012840: 72 61 70 68 69 63 73 20 20 77 72 69 74 65 20 20 raphics write
012850: 6D 6F 64 65 2E 20 20 49 66 20 20 74 68 65 0D 0A mode. If the..
012860: 20 20 20 20 20 20 20 62 61 63 6B 67 72 6F 75 6E backgroun
012870: 64 20 6D 6F 64 65 20 69 73 20 74 72 61 6E 73 70 d mode is transp
012880: 61 72 65 6E 74 20 74 68 65 6E 20 74 68 65 20 70 arent then the p
012890: 69 78 65 6C 20 69 73 20 6E 6F 74 20 70 6C 6F 74 ixel is not plot
0128A0: 74 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 ted..... I
0128B0: 6E 20 56 31 2E 31 20 66 69 72 6D 77 61 72 65 20 n V1.1 firmware
0128C0: 74 68 65 20 66 69 72 73 74 20 70 69 78 65 6C 20 the first pixel
0128D0: 6F 66 20 74 68 65 20 6C 69 6E 65 20 20 28 74 68 of the line (th
0128E0: 61 74 20 20 61 74 20 20 74 68 65 20 20 70 72 65 at at the pre
0128F0: 76 69 6F 75 73 0D 0A 20 20 20 20 20 20 20 67 72 vious.. gr
012900: 61 70 68 69 63 73 20 70 6F 73 69 74 69 6F 6E 29 aphics position)
012910: 20 69 73 20 6E 6F 74 20 70 6C 6F 74 74 65 64 20 is not plotted
012920: 69 66 20 74 68 65 20 66 69 72 73 74 20 70 6F 69 if the first poi
012930: 6E 74 20 70 6C 6F 74 74 69 6E 67 20 6D 6F 64 65 nt plotting mode
012940: 20 20 69 73 0D 0A 20 20 20 20 20 20 20 73 65 74 is.. set
012950: 20 66 61 6C 73 65 2E 0D 0A 0D 0A 20 20 20 20 20 false.....
012960: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 63 This routine c
012970: 61 6C 6C 73 20 74 68 65 20 47 52 41 20 4C 49 4E alls the GRA LIN
012980: 45 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 74 6F E indirection to
012990: 20 64 72 61 77 20 74 68 65 20 6C 69 6E 65 2E 20 draw the line.
0129A0: 20 49 6E 20 20 69 74 73 0D 0A 20 20 20 20 20 20 In its..
0129B0: 20 74 75 72 6E 20 47 52 41 20 4C 49 4E 45 20 63 turn GRA LINE c
0129C0: 61 6C 6C 73 20 74 68 65 20 53 43 52 20 57 52 49 alls the SCR WRI
0129D0: 54 45 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 74 TE indirection t
0129E0: 6F 20 77 72 69 74 65 20 74 68 65 20 70 69 78 65 o write the pixe
0129F0: 6C 73 20 28 66 6F 72 0D 0A 20 20 20 20 20 20 20 ls (for..
012A00: 70 69 78 65 6C 73 20 69 6E 20 74 68 65 20 67 72 pixels in the gr
012A10: 61 70 68 69 63 73 20 77 69 6E 64 6F 77 29 2E 0D aphics window)..
012A20: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
012A30: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 d entries:....
012A40: 20 20 20 20 20 47 52 41 20 4C 49 4E 45 0D 0A 20 GRA LINE..
012A50: 20 20 20 20 20 20 47 52 41 20 4C 49 4E 45 20 52 GRA LINE R
012A60: 45 4C 41 54 49 56 45 0D 0A 20 20 20 20 20 20 20 ELATIVE..
012A70: 47 52 41 20 53 45 54 20 42 41 43 4B 0D 0A 20 20 GRA SET BACK..
012A80: 20 20 20 20 20 47 52 41 20 53 45 54 20 46 49 52 GRA SET FIR
012A90: 53 54 0D 0A 20 20 20 20 20 20 20 47 52 41 20 53 ST.. GRA S
012AA0: 45 54 20 4C 49 4E 45 20 4D 41 53 4B 0D 0A 0D 0A ET LINE MASK....
012AB0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
012AC0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
012AD0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
012AE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012AF0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
012B00: 31 35 2E 38 36 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.86...........
012B10: 0A 0D 0A 20 20 20 20 20 20 20 38 33 3A 20 47 52 ... 83: GR
012B20: 41 20 4C 49 4E 45 20 52 45 4C 41 54 49 56 45 20 A LINE RELATIVE
012B30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012B40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012B50: 20 20 20 20 20 20 20 20 20 20 20 23 42 42 46 39 #BBF9
012B60: 0D 0A 0D 0A 20 20 20 20 20 20 20 44 72 61 77 20 .... Draw
012B70: 61 20 6C 69 6E 65 20 72 65 6C 61 74 69 76 65 20 a line relative
012B80: 74 6F 20 74 68 65 20 63 75 72 72 65 6E 74 20 70 to the current p
012B90: 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 osition.....
012BA0: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 Action:....
012BB0: 20 20 20 20 20 4D 6F 76 65 20 74 68 65 20 63 75 Move the cu
012BC0: 72 72 65 6E 74 20 67 72 61 70 68 69 63 73 20 20 rrent graphics
012BD0: 70 6F 73 69 74 69 6F 6E 20 20 74 6F 20 20 74 68 position to th
012BE0: 65 20 20 65 6E 64 70 6F 69 6E 74 20 20 73 75 70 e endpoint sup
012BF0: 70 6C 69 65 64 2E 20 20 41 6C 6C 0D 0A 20 20 20 plied. All..
012C00: 20 20 20 20 70 6F 69 6E 74 73 20 62 65 74 77 65 points betwe
012C10: 65 6E 20 74 68 69 73 20 70 6F 73 69 74 69 6F 6E en this position
012C20: 20 61 6E 64 20 74 68 65 20 70 72 65 76 69 6F 75 and the previou
012C30: 73 20 67 72 61 70 68 69 63 73 20 20 70 6F 73 69 s graphics posi
012C40: 74 69 6F 6E 20 20 74 68 61 74 0D 0A 20 20 20 20 tion that..
012C50: 20 20 20 6C 69 65 20 69 6E 73 69 64 65 20 74 68 lie inside th
012C60: 65 20 67 72 61 70 68 69 63 73 20 77 69 6E 64 6F e graphics windo
012C70: 77 20 6D 61 79 20 62 65 20 70 6C 6F 74 74 65 64 w may be plotted
012C80: 2E 20 50 6F 69 6E 74 73 20 74 68 61 74 20 6C 69 . Points that li
012C90: 65 20 6F 75 74 73 69 64 65 0D 0A 20 20 20 20 20 e outside..
012CA0: 20 20 74 68 65 20 67 72 61 70 68 69 63 73 20 77 the graphics w
012CB0: 69 6E 64 6F 77 20 61 72 65 20 69 67 6E 6F 72 65 indow are ignore
012CC0: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 d..... Ent
012CD0: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
012CE0: 0D 0A 20 20 20 20 20 20 20 44 45 20 63 6F 6E 74 .. DE cont
012CF0: 61 69 6E 73 20 74 68 65 20 73 69 67 6E 65 64 20 ains the signed
012D00: 58 20 6F 66 66 73 65 74 20 6F 66 20 74 68 65 20 X offset of the
012D10: 65 6E 64 70 6F 69 6E 74 2E 0D 0A 20 20 20 20 20 endpoint...
012D20: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 HL contains th
012D30: 65 20 73 69 67 6E 65 64 20 59 20 6F 66 66 73 65 e signed Y offse
012D40: 74 20 6F 66 20 74 68 65 20 65 6E 64 70 6F 69 6E t of the endpoin
012D50: 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 t..... Exi
012D60: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
012D70: 0A 20 20 20 20 20 20 20 41 46 2C 42 43 2C 44 45 . AF,BC,DE
012D80: 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E and HL corrupt.
012D90: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
012DA0: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
012DB0: 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 served.....
012DC0: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 Notes:....
012DD0: 20 20 20 54 68 65 20 70 6F 73 69 74 69 6F 6E 20 The position
012DE0: 6F 66 20 74 68 65 20 65 6E 64 20 6F 66 20 74 68 of the end of th
012DF0: 65 20 6C 69 6E 65 20 69 73 20 67 69 76 65 6E 20 e line is given
012E00: 69 6E 20 72 65 6C 61 74 69 76 65 20 20 63 6F 6F in relative coo
012E10: 72 64 69 6E 61 74 65 73 2E 0D 0A 20 20 20 20 20 rdinates...
012E20: 20 20 69 2E 65 2E 20 52 65 6C 61 74 69 76 65 20 i.e. Relative
012E30: 74 6F 20 74 68 65 20 63 75 72 72 65 6E 74 20 67 to the current g
012E40: 72 61 70 68 69 63 73 20 70 6F 73 69 74 69 6F 6E raphics position
012E50: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E 20 56 ..... In V
012E60: 31 2E 30 20 66 69 72 6D 77 61 72 65 20 74 68 65 1.0 firmware the
012E70: 20 70 6F 69 6E 74 73 20 77 69 6C 6C 20 62 65 20 points will be
012E80: 70 6C 6F 74 74 65 64 20 69 6E 20 20 74 68 65 20 plotted in the
012E90: 20 63 75 72 72 65 6E 74 20 20 67 72 61 70 68 69 current graphi
012EA0: 63 73 0D 0A 20 20 20 20 20 20 20 70 65 6E 20 69 cs.. pen i
012EB0: 6E 6B 20 75 73 69 6E 67 20 74 68 65 20 63 75 72 nk using the cur
012EC0: 72 65 6E 74 20 67 72 61 70 68 69 63 73 20 77 72 rent graphics wr
012ED0: 69 74 65 20 6D 6F 64 65 2E 0D 0A 0D 0A 20 20 20 ite mode.....
012EE0: 20 20 20 20 49 6E 20 56 31 2E 31 20 66 69 72 6D In V1.1 firm
012EF0: 77 61 72 65 20 74 68 65 20 73 65 74 74 69 6E 67 ware the setting
012F00: 20 6F 66 20 20 74 68 65 20 20 6C 69 6E 65 20 20 of the line
012F10: 6D 61 73 6B 20 20 64 65 74 65 72 6D 69 6E 65 73 mask determines
012F20: 20 20 68 6F 77 20 20 74 68 65 0D 0A 20 20 20 20 how the..
012F30: 20 20 20 70 69 78 65 6C 73 20 6F 6E 20 74 68 65 pixels on the
012F40: 20 6C 69 6E 65 20 77 69 6C 6C 20 62 65 20 70 6C line will be pl
012F50: 6F 74 74 65 64 2E 20 54 68 65 20 6C 69 6E 65 20 otted. The line
012F60: 6D 61 73 6B 20 69 73 20 20 62 69 74 20 20 73 69 mask is bit si
012F70: 67 6E 69 66 69 63 61 6E 74 0D 0A 20 20 20 20 20 gnificant..
012F80: 20 20 61 6E 64 20 69 73 20 75 73 65 64 20 72 65 and is used re
012F90: 70 65 61 74 65 64 6C 79 20 69 6E 20 74 68 65 20 peatedly in the
012FA0: 6F 72 64 65 72 20 62 69 74 20 37 2C 20 62 69 74 order bit 7, bit
012FB0: 20 36 20 64 6F 77 6E 20 20 74 6F 20 20 62 69 74 6 down to bit
012FC0: 20 20 30 20 20 66 6F 72 0D 0A 20 20 20 20 20 20 0 for..
012FD0: 20 65 61 63 68 20 70 69 78 65 6C 20 69 6E 20 74 each pixel in t
012FE0: 68 65 20 6C 69 6E 65 2E 20 49 66 20 74 68 65 20 he line. If the
012FF0: 62 69 74 20 69 73 20 6F 6E 65 20 74 68 65 6E 20 bit is one then
013000: 74 68 65 20 70 69 78 65 6C 20 69 73 20 70 6C 6F the pixel is plo
013010: 74 74 65 64 20 69 6E 0D 0A 20 20 20 20 20 20 20 tted in..
013020: 74 68 65 20 67 72 61 70 68 69 63 73 20 70 65 6E the graphics pen
013030: 20 69 6E 6B 20 75 73 69 6E 67 20 74 68 65 20 63 ink using the c
013040: 75 72 72 65 6E 74 20 67 72 61 70 68 69 63 73 20 urrent graphics
013050: 77 72 69 74 65 20 6D 6F 64 65 2E 20 49 66 20 74 write mode. If t
013060: 68 65 20 62 69 74 0D 0A 20 20 20 20 20 20 20 69 he bit.. i
013070: 73 20 7A 65 72 6F 20 74 68 65 6E 20 74 68 65 20 s zero then the
013080: 61 63 74 69 6F 6E 20 64 65 70 65 6E 64 73 20 6F action depends o
013090: 6E 20 74 68 65 20 67 72 61 70 68 69 63 73 20 62 n the graphics b
0130A0: 61 63 6B 67 72 6F 75 6E 64 20 77 72 69 74 65 20 ackground write
0130B0: 6D 6F 64 65 2E 0D 0A 20 20 20 20 20 20 20 49 66 mode... If
0130C0: 20 74 68 65 20 62 61 63 6B 67 72 6F 75 6E 64 20 the background
0130D0: 6D 6F 64 65 20 69 73 20 6F 70 61 71 75 65 20 74 mode is opaque t
0130E0: 68 65 6E 20 74 68 65 20 20 70 69 78 65 6C 20 20 hen the pixel
0130F0: 69 73 20 20 70 6C 6F 74 74 65 64 20 20 69 6E 20 is plotted in
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: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 67 72 61 the.. gra
013210: 70 68 69 63 73 20 70 61 70 65 72 20 69 6E 6B 20 phics paper ink
013220: 75 73 69 6E 67 20 74 68 65 20 20 63 75 72 72 65 using the curre
013230: 6E 74 20 20 67 72 61 70 68 69 63 73 20 20 77 72 nt graphics wr
013240: 69 74 65 20 20 6D 6F 64 65 2E 20 20 49 66 20 20 ite mode. If
013250: 74 68 65 0D 0A 20 20 20 20 20 20 20 62 61 63 6B the.. back
013260: 67 72 6F 75 6E 64 20 6D 6F 64 65 20 69 73 20 74 ground mode is t
013270: 72 61 6E 73 70 61 72 65 6E 74 20 74 68 65 6E 20 ransparent then
013280: 74 68 65 20 70 69 78 65 6C 20 69 73 20 6E 6F 74 the pixel is not
013290: 20 70 6C 6F 74 74 65 64 2E 0D 0A 0D 0A 20 20 20 plotted.....
0132A0: 20 20 20 20 49 6E 20 56 31 2E 31 20 66 69 72 6D In V1.1 firm
0132B0: 77 61 72 65 20 74 68 65 20 66 69 72 73 74 20 70 ware the first p
0132C0: 69 78 65 6C 20 6F 66 20 74 68 65 20 6C 69 6E 65 ixel of the line
0132D0: 20 20 28 74 68 61 74 20 20 61 74 20 20 74 68 65 (that at the
0132E0: 20 20 70 72 65 76 69 6F 75 73 0D 0A 20 20 20 20 previous..
0132F0: 20 20 20 67 72 61 70 68 69 63 73 20 70 6F 73 69 graphics posi
013300: 74 69 6F 6E 29 20 69 73 20 6E 6F 74 20 70 6C 6F tion) is not plo
013310: 74 74 65 64 20 69 66 20 74 68 65 20 66 69 72 73 tted if the firs
013320: 74 20 70 6F 69 6E 74 20 70 6C 6F 74 74 69 6E 67 t point plotting
013330: 20 6D 6F 64 65 20 20 69 73 0D 0A 20 20 20 20 20 mode is..
013340: 20 20 73 65 74 20 66 61 6C 73 65 2E 0D 0A 0D 0A set false.....
013350: 20 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 This rout
013360: 69 6E 65 20 63 61 6C 6C 73 20 74 68 65 20 47 52 ine calls the GR
013370: 41 20 4C 49 4E 45 20 69 6E 64 69 72 65 63 74 69 A LINE indirecti
013380: 6F 6E 20 74 6F 20 64 72 61 77 20 74 68 65 20 6C on to draw the l
013390: 69 6E 65 2E 20 20 49 6E 20 20 69 74 73 0D 0A 20 ine. In its..
0133A0: 20 20 20 20 20 20 74 75 72 6E 20 47 52 41 20 4C turn GRA L
0133B0: 49 4E 45 20 63 61 6C 6C 73 20 74 68 65 20 53 43 INE calls the SC
0133C0: 52 20 57 52 49 54 45 20 69 6E 64 69 72 65 63 74 R WRITE indirect
0133D0: 69 6F 6E 20 74 6F 20 77 72 69 74 65 20 74 68 65 ion to write the
0133E0: 20 70 69 78 65 6C 73 20 28 66 6F 72 0D 0A 20 20 pixels (for..
0133F0: 20 20 20 20 20 70 69 78 65 6C 73 20 69 6E 20 74 pixels in t
013400: 68 65 20 67 72 61 70 68 69 63 73 20 77 69 6E 64 he graphics wind
013410: 6F 77 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ow).......
013420: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
013430: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 :.... GRA
013440: 4C 49 4E 45 0D 0A 20 20 20 20 20 20 20 47 52 41 LINE.. GRA
013450: 20 4C 49 4E 45 20 41 42 53 4F 4C 55 54 45 0D 0A LINE ABSOLUTE..
013460: 20 20 20 20 20 20 20 47 52 41 20 53 45 54 20 42 GRA SET B
013470: 41 43 4B 0D 0A 20 20 20 20 20 20 20 47 52 41 20 ACK.. GRA
013480: 53 45 54 20 46 49 52 53 54 0D 0A 20 20 20 20 20 SET FIRST..
013490: 20 20 47 52 41 20 53 45 54 20 4C 49 4E 45 20 4D GRA SET LINE M
0134A0: 41 53 4B 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 ASK..........
0134B0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
0134C0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
0134D0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
0134E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0134F0: 70 61 67 65 20 31 35 2E 38 37 0D 0A 0D 0A 0D 0A page 15.87......
013500: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 38 ........ 8
013510: 34 3A 20 47 52 41 20 57 52 20 43 48 41 52 20 20 4: GRA WR CHAR
013520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013550: 23 42 42 46 43 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #BBFC......
013560: 20 20 50 75 74 20 61 20 63 68 61 72 61 63 74 65 Put a characte
013570: 72 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 r on the screen
013580: 61 74 20 74 68 65 20 63 75 72 72 65 6E 74 20 67 at the current g
013590: 72 61 70 68 69 63 73 20 70 6F 73 69 74 69 6F 6E raphics position
0135A0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 ....... Ac
0135B0: 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tion:......
0135C0: 20 20 57 72 69 74 65 20 61 20 63 68 61 72 61 63 Write a charac
0135D0: 74 65 72 20 6F 6E 20 74 68 65 20 73 63 72 65 65 ter on the scree
0135E0: 6E 20 61 74 20 74 68 65 20 63 75 72 72 65 6E 74 n at the current
0135F0: 20 67 72 61 70 68 69 63 73 20 70 6F 73 69 74 69 graphics positi
013600: 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 on.......
013610: 45 6E 74 72 79 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 Entry:......
013620: 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 A contains th
013630: 65 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 77 e character to w
013640: 72 69 74 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rite.......
013650: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
013660: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 s:...... A
013670: 46 2C 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 63 F,BC,DE and HL c
013680: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
013690: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
0136A0: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
0136B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
0136C0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 :...... Th
0136D0: 65 20 63 68 61 72 61 63 74 65 72 20 69 73 20 77 e character is w
0136E0: 72 69 74 74 65 6E 20 77 69 74 68 20 69 74 73 20 ritten with its
0136F0: 74 6F 70 20 6C 65 66 74 20 63 6F 72 6E 65 72 20 top left corner
013700: 20 62 65 69 6E 67 20 20 74 68 65 20 20 63 75 72 being the cur
013710: 72 65 6E 74 0D 0A 20 20 20 20 20 20 20 67 72 61 rent.. gra
013720: 70 68 69 63 73 20 70 6F 73 69 74 69 6F 6E 2E 0D phics position..
013730: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 ..... All
013740: 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 70 characters are p
013750: 72 69 6E 74 65 64 2C 20 65 76 65 6E 20 63 6F 6E rinted, even con
013760: 74 72 6F 6C 20 63 6F 64 65 73 20 28 63 68 61 72 trol codes (char
013770: 61 63 74 65 72 73 20 23 30 30 2E 2E 23 31 46 29 acters #00..#1F)
013780: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
013790: 65 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 69 e current positi
0137A0: 6F 6E 20 69 73 20 6D 6F 76 65 64 20 72 69 67 68 on is moved righ
0137B0: 74 20 62 79 20 20 74 68 65 20 20 77 69 64 74 68 t by the width
0137C0: 20 20 6F 66 20 20 74 68 65 20 20 63 68 61 72 61 of the chara
0137D0: 63 74 65 72 0D 0A 20 20 20 20 20 20 20 28 72 65 cter.. (re
0137E0: 61 64 79 20 66 6F 72 20 61 6E 6F 74 68 65 72 20 ady for another
0137F0: 63 68 61 72 61 63 74 65 72 20 74 6F 20 62 65 20 character to be
013800: 77 72 69 74 74 65 6E 29 2E 20 49 6E 20 6D 6F 64 written). In mod
013810: 65 20 30 20 74 68 69 73 20 6D 6F 76 65 20 69 73 e 0 this move is
013820: 20 33 32 0D 0A 20 20 20 20 20 20 20 70 6F 69 6E 32.. poin
013830: 74 73 20 72 69 67 68 74 2C 20 69 6E 20 6D 6F 64 ts right, in mod
013840: 65 20 31 20 74 68 65 20 6D 6F 76 65 20 69 73 20 e 1 the move is
013850: 31 36 20 70 6F 69 6E 74 73 20 72 69 67 68 74 20 16 points right
013860: 61 6E 64 20 69 6E 20 6D 6F 64 65 20 20 32 20 20 and in mode 2
013870: 69 74 0D 0A 20 20 20 20 20 20 20 69 73 20 38 20 it.. is 8
013880: 70 6F 69 6E 74 73 2E 0D 0A 0D 0A 20 20 20 20 20 points.....
013890: 20 20 54 68 65 20 63 68 61 72 61 63 74 65 72 20 The character
0138A0: 77 69 6C 6C 20 62 65 20 70 6C 6F 74 74 65 64 20 will be plotted
0138B0: 69 6E 20 74 68 65 20 67 72 61 70 68 69 63 73 20 in the graphics
0138C0: 70 65 6E 20 69 6E 6B 2E 20 49 6E 20 74 68 65 20 pen ink. In the
0138D0: 63 61 73 65 20 20 6F 66 0D 0A 20 20 20 20 20 20 case of..
0138E0: 20 56 31 2E 30 20 66 69 72 6D 77 61 72 65 2C 20 V1.0 firmware,
0138F0: 56 31 2E 31 20 66 69 72 6D 77 61 72 65 20 77 68 V1.1 firmware wh
013900: 65 6E 20 74 68 65 20 62 61 63 6B 67 72 6F 75 6E en the backgroun
013910: 64 20 77 72 69 74 65 20 6D 6F 64 65 20 69 73 20 d write mode is
013920: 73 65 74 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 set to..
013930: 6F 70 61 71 75 65 2C 20 74 68 65 20 62 61 63 6B opaque, the back
013940: 67 72 6F 75 6E 64 20 20 74 6F 20 20 74 68 65 20 ground to the
013950: 20 63 68 61 72 61 63 74 65 72 20 20 77 69 6C 6C character will
013960: 20 20 62 65 20 20 70 6C 6F 74 74 65 64 20 20 69 be plotted i
013970: 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 67 n the.. g
013980: 72 61 70 68 69 63 73 20 70 61 70 65 72 20 69 6E raphics paper in
013990: 6B 2E 20 49 6E 20 74 68 65 20 63 61 73 65 20 6F k. In the case o
0139A0: 66 20 56 31 2E 31 20 66 69 72 6D 77 61 72 65 20 f V1.1 firmware
0139B0: 77 68 65 6E 20 20 74 68 65 20 20 62 61 63 6B 67 when the backg
0139C0: 72 6F 75 6E 64 0D 0A 20 20 20 20 20 20 20 77 72 round.. wr
0139D0: 69 74 65 20 6D 6F 64 65 20 69 73 20 20 73 65 74 ite mode is set
0139E0: 20 20 74 6F 20 20 74 72 61 6E 73 70 61 72 65 6E to transparen
0139F0: 74 20 20 74 68 65 20 20 62 61 63 6B 67 72 6F 75 t the backgrou
013A00: 6E 64 20 20 70 69 78 65 6C 73 20 20 61 72 65 20 nd pixels are
013A10: 20 6E 6F 74 0D 0A 20 20 20 20 20 20 20 70 6C 6F not.. plo
013A20: 74 74 65 64 2E 20 50 69 78 65 6C 73 20 69 6E 20 tted. Pixels in
013A30: 74 68 65 20 63 68 61 72 61 63 74 65 72 20 74 68 the character th
013A40: 61 74 20 6C 69 65 20 6F 75 74 73 69 64 65 20 74 at lie outside t
013A50: 68 65 20 67 72 61 70 68 69 63 73 20 20 77 69 6E he graphics win
013A60: 64 6F 77 0D 0A 20 20 20 20 20 20 20 77 69 6C 6C dow.. will
013A70: 20 6E 6F 74 20 62 65 20 70 6C 6F 74 74 65 64 2E not be plotted.
013A80: 20 54 68 65 20 20 70 69 78 65 6C 73 20 20 61 72 The pixels ar
013A90: 65 20 20 70 6C 6F 74 74 65 64 20 20 75 73 69 6E e plotted usin
013AA0: 67 20 20 74 68 65 20 20 53 43 52 20 20 57 52 49 g the SCR WRI
013AB0: 54 45 0D 0A 20 20 20 20 20 20 20 69 6E 64 69 72 TE.. indir
013AC0: 65 63 74 69 6F 6E 20 73 6F 20 74 68 65 79 20 61 ection so they a
013AD0: 72 65 20 77 72 69 74 74 65 6E 20 75 73 69 6E 67 re written using
013AE0: 20 74 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 the current gra
013AF0: 70 68 69 63 73 20 77 72 69 74 65 20 6D 6F 64 65 phics write mode
013B00: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
013B10: 74 65 64 20 45 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted Entries:....
013B20: 20 20 20 20 20 20 20 47 52 41 20 53 45 54 20 42 GRA SET B
013B30: 41 43 4B 0D 0A 20 20 20 20 20 20 20 54 58 54 20 ACK.. TXT
013B40: 53 45 54 20 47 52 41 50 48 49 43 0D 0A 20 20 20 SET GRAPHIC..
013B50: 20 20 20 20 54 58 54 20 57 52 20 43 48 41 52 0D TXT WR CHAR.
013B60: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
013B70: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
013B80: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
013B90: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
013BA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
013BB0: 67 65 20 31 35 2E 38 38 0D 0A 0D 0A 0D 0A 0D 0A ge 15.88........
013BC0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 38 35 3A ...... 85:
013BD0: 20 53 43 52 20 49 4E 49 54 49 41 4C 49 53 45 20 SCR INITIALISE
013BE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013BF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013C00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
013C10: 42 46 46 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 BFF......
013C20: 49 6E 69 74 69 61 6C 69 7A 65 20 74 68 65 20 53 Initialize the S
013C30: 63 72 65 65 6E 20 50 61 63 6B 2E 0D 0A 0D 0A 0D creen Pack......
013C40: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
013C50: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 75 6C 6C ..... Full
013C60: 20 69 6E 69 74 69 61 6C 69 7A 61 74 69 6F 6E 20 initialization
013C70: 6F 66 20 74 68 65 20 53 63 72 65 65 6E 20 20 50 of the Screen P
013C80: 61 63 6B 20 20 28 61 73 20 20 75 73 65 64 20 20 ack (as used
013C90: 64 75 72 69 6E 67 20 20 45 4D 53 29 2E 20 20 41 during EMS). A
013CA0: 6C 6C 0D 0A 20 20 20 20 20 20 20 53 63 72 65 65 ll.. Scree
013CB0: 6E 20 50 61 63 6B 20 76 61 72 69 61 62 6C 65 73 n Pack variables
013CC0: 20 20 61 6E 64 20 20 69 6E 64 69 72 65 63 74 69 and indirecti
013CD0: 6F 6E 73 20 20 61 72 65 20 20 69 6E 69 74 69 61 ons are initia
013CE0: 6C 69 7A 65 64 2C 20 20 61 6C 73 6F 20 20 74 68 lized, also th
013CF0: 65 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E e.. screen
013D00: 20 6D 6F 64 65 20 61 6E 64 20 74 68 65 20 69 6E mode and the in
013D10: 6B 73 20 61 72 65 20 69 6E 69 74 69 61 6C 69 7A ks are initializ
013D20: 65 64 20 74 6F 20 74 68 65 69 72 20 64 65 66 61 ed to their defa
013D30: 75 6C 74 20 73 65 74 74 69 6E 67 73 2E 0D 0A 0D ult settings....
013D40: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
013D50: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
013D60: 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 . No condi
013D70: 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 tions.......
013D80: 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F Exit conditio
013D90: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
013DA0: 41 46 2C 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 AF,BC,DE and HL
013DB0: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
013DC0: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
013DD0: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
013DE0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
013DF0: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s:...... T
013E00: 68 65 20 73 63 72 65 65 6E 20 69 6E 64 69 72 65 he screen indire
013E10: 63 74 69 6F 6E 73 20 28 53 43 52 20 52 45 41 44 ctions (SCR READ
013E20: 2C 20 53 43 52 20 57 52 49 54 45 20 61 6E 64 20 , SCR WRITE and
013E30: 53 43 52 20 4D 4F 44 45 20 20 43 4C 45 41 52 29 SCR MODE CLEAR)
013E40: 20 20 61 72 65 0D 0A 20 20 20 20 20 20 20 73 65 are.. se
013E50: 74 20 74 6F 20 74 68 65 69 72 20 64 65 66 61 75 t to their defau
013E60: 6C 74 20 72 6F 75 74 69 6E 65 73 2E 0D 0A 20 20 lt routines...
013E70: 20 20 20 20 20 54 68 65 20 69 6E 6B 73 20 61 72 The inks ar
013E80: 65 20 73 65 74 20 74 6F 20 74 68 65 69 72 20 64 e set to their d
013E90: 65 66 61 75 6C 74 20 63 6F 6C 6F 75 72 73 20 28 efault colours (
013EA0: 73 65 65 20 41 70 70 65 6E 64 69 78 20 56 29 2E see Appendix V).
013EB0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 69 6E 6B .. The ink
013EC0: 20 66 6C 61 73 68 69 6E 67 20 70 65 72 69 6F 64 flashing period
013ED0: 73 20 61 72 65 20 73 65 74 20 74 6F 20 74 68 65 s are set to the
013EE0: 69 72 20 64 65 66 61 75 6C 74 20 76 61 6C 75 65 ir default value
013EF0: 73 2E 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 s... The s
013F00: 63 72 65 65 6E 20 69 73 20 70 75 74 20 69 6E 74 creen is put int
013F10: 6F 20 6D 6F 64 65 20 31 2E 0D 0A 20 20 20 20 20 o mode 1...
013F20: 20 20 54 68 65 20 73 63 72 65 65 6E 20 62 61 73 The screen bas
013F30: 65 20 69 73 20 73 65 74 20 74 6F 20 70 75 74 20 e is set to put
013F40: 74 68 65 20 73 63 72 65 65 6E 20 6D 65 6D 6F 72 the screen memor
013F50: 79 20 61 74 20 23 43 30 30 30 2E 2E 23 46 46 46 y at #C000..#FFF
013F60: 46 20 28 75 6E 64 65 72 0D 0A 20 20 20 20 20 20 F (under..
013F70: 20 74 68 65 20 75 70 70 65 72 20 52 4F 4D 2E 0D the upper ROM..
013F80: 0A 20 20 20 20 20 20 20 54 68 65 20 73 63 72 65 . The scre
013F90: 65 6E 20 6F 66 66 73 65 74 20 69 73 20 73 65 74 en offset is set
013FA0: 20 74 6F 20 30 2E 0D 0A 20 20 20 20 20 20 20 54 to 0... T
013FB0: 68 65 20 73 63 72 65 65 6E 20 69 73 20 63 6C 65 he screen is cle
013FC0: 61 72 65 64 20 74 6F 20 69 6E 6B 20 30 2E 0D 0A ared to ink 0...
013FD0: 20 20 20 20 20 20 20 54 68 65 20 47 72 61 70 68 The Graph
013FE0: 69 63 73 20 56 44 55 20 77 72 69 74 65 20 6D 6F ics VDU write mo
013FF0: 64 65 20 69 73 20 73 65 74 20 74 6F 20 46 4F 52 de is set to FOR
014000: 43 45 20 6D 6F 64 65 2E 0D 0A 20 20 20 20 20 20 CE mode...
014010: 20 54 68 65 20 69 6E 6B 20 66 6C 61 73 68 69 6E The ink flashin
014020: 67 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 g frame flyback
014030: 65 76 65 6E 74 20 69 73 20 73 65 74 20 75 70 2E event is set up.
014040: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
014050: 20 69 6E 69 74 69 61 6C 69 7A 61 74 69 6F 6E 20 initialization
014060: 69 73 20 70 65 72 66 6F 72 6D 65 64 20 69 6E 20 is performed in
014070: 61 6E 20 6F 72 64 65 72 20 74 68 61 74 20 61 74 an order that at
014080: 74 65 6D 70 74 73 20 74 6F 20 61 76 6F 69 64 20 tempts to avoid
014090: 74 68 65 0D 0A 20 20 20 20 20 20 20 70 72 65 76 the.. prev
0140A0: 69 6F 75 73 20 63 6F 6E 74 65 6E 74 73 20 6F 66 ious contents of
0140B0: 20 74 68 65 20 73 63 72 65 65 6E 20 62 65 63 6F the screen beco
0140C0: 6D 69 6E 67 20 76 69 73 69 62 6C 65 20 28 61 74 ming visible (at
0140D0: 20 45 4D 53 20 74 68 65 20 20 63 6F 6E 74 65 6E EMS the conten
0140E0: 74 73 0D 0A 20 20 20 20 20 20 20 77 69 6C 6C 20 ts.. will
0140F0: 62 65 20 72 61 6E 64 6F 6D 29 2E 0D 0A 0D 0A 0D be random)......
014100: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
014110: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 d entries:....
014120: 20 20 20 20 20 47 52 41 20 49 4E 49 54 49 41 4C GRA INITIAL
014130: 49 53 45 0D 0A 20 20 20 20 20 20 20 53 43 52 20 ISE.. SCR
014140: 52 45 53 45 54 0D 0A 20 20 20 20 20 20 20 54 58 RESET.. TX
014150: 54 20 49 4E 49 54 49 41 4C 49 53 45 0D 0A 0D 0A T INITIALISE....
014160: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
014170: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
014180: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
014190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0141A0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
0141B0: 31 35 2E 38 39 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.89...........
0141C0: 0A 0D 0A 20 20 20 20 20 20 20 38 36 3A 20 53 43 ... 86: SC
0141D0: 52 20 52 45 53 45 54 20 20 20 20 20 20 20 20 20 R RESET
0141E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0141F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014200: 20 20 20 20 20 20 20 20 20 20 20 23 42 43 30 32 #BC02
014210: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 73 ...... Res
014220: 65 74 20 74 68 65 20 53 63 72 65 65 6E 20 50 61 et the Screen Pa
014230: 63 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ck.......
014240: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
014250: 20 20 20 20 52 65 69 6E 69 74 69 61 6C 69 7A 65 Reinitialize
014260: 73 20 74 68 65 20 53 63 72 65 65 6E 20 50 61 63 s the Screen Pac
014270: 6B 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 20 61 k indirections a
014280: 6E 64 20 74 68 65 20 69 6E 6B 20 20 63 6F 6C 6F nd the ink colo
014290: 75 72 73 2E 20 20 41 6C 73 6F 0D 0A 20 20 20 20 urs. Also..
0142A0: 20 20 20 72 65 69 6E 69 74 69 61 6C 69 7A 65 73 reinitializes
0142B0: 20 74 68 65 20 66 6C 61 73 68 20 72 61 74 65 20 the flash rate
0142C0: 61 6E 64 20 47 72 61 70 68 69 63 73 20 56 44 55 and Graphics VDU
0142D0: 20 77 72 69 74 65 20 6D 6F 64 65 2E 0D 0A 0D 0A write mode.....
0142E0: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
0142F0: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
014300: 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 No condit
014310: 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions.......
014320: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
014330: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 s:...... A
014340: 46 2C 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 63 F,BC,DE and HL c
014350: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
014360: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
014370: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
014380: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
014390: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 :...... Th
0143A0: 65 20 73 63 72 65 65 6E 20 69 6E 64 69 72 65 63 e screen indirec
0143B0: 74 69 6F 6E 73 20 28 53 43 52 20 52 45 41 44 2C tions (SCR READ,
0143C0: 20 53 43 52 20 57 52 49 54 45 20 61 6E 64 20 53 SCR WRITE and S
0143D0: 43 52 20 4D 4F 44 45 20 20 43 4C 45 41 52 29 20 CR MODE CLEAR)
0143E0: 20 61 72 65 0D 0A 20 20 20 20 20 20 20 73 65 74 are.. set
0143F0: 20 74 6F 20 74 68 65 69 72 20 64 65 66 61 75 6C to their defaul
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: 74 20 72 6F 75 74 69 6E 65 73 2E 0D 0A 0D 0A 0D t routines......
014510: 0A 20 20 20 20 20 20 20 54 68 65 20 69 6E 6B 73 . The inks
014520: 20 61 72 65 20 73 65 74 20 74 6F 20 74 68 65 69 are set to thei
014530: 72 20 64 65 66 61 75 6C 74 20 63 6F 6C 6F 75 72 r default colour
014540: 73 20 28 73 65 65 20 41 70 70 65 6E 64 69 78 20 s (see Appendix
014550: 56 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 V).......
014560: 54 68 65 20 69 6E 6B 20 66 6C 61 73 68 69 6E 67 The ink flashing
014570: 20 70 65 72 69 6F 64 73 20 61 72 65 20 73 65 74 periods are set
014580: 20 74 6F 20 74 68 65 69 72 20 64 65 66 61 75 6C to their defaul
014590: 74 20 76 61 6C 75 65 73 2E 0D 0A 0D 0A 0D 0A 20 t values.......
0145A0: 20 20 20 20 20 20 54 68 65 20 47 72 61 70 68 69 The Graphi
0145B0: 63 73 20 56 44 55 20 77 72 69 74 65 20 6D 6F 64 cs VDU write mod
0145C0: 65 20 69 73 20 73 65 74 20 74 6F 20 46 4F 52 43 e is set to FORC
0145D0: 45 20 6D 6F 64 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 E mode.......
0145E0: 20 20 20 20 54 68 65 20 69 6E 6B 73 20 61 72 65 The inks are
0145F0: 20 6E 6F 74 20 70 61 73 73 65 64 20 74 6F 20 74 not passed to t
014600: 68 65 20 68 61 72 64 77 61 72 65 2E 20 54 68 69 he hardware. Thi
014610: 73 20 77 69 6C 6C 20 62 65 20 20 64 6F 6E 65 20 s will be done
014620: 20 77 68 65 6E 20 20 74 68 65 0D 0A 20 20 20 20 when the..
014630: 20 20 20 69 6E 6B 73 20 66 6C 61 73 68 20 6E 65 inks flash ne
014640: 78 74 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 xt.........
014650: 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 Related entrie
014660: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 s:...... S
014670: 43 52 20 49 4E 49 54 49 41 4C 49 53 45 0D 0A 20 CR INITIALISE..
014680: 20 20 20 20 20 20 53 43 52 20 53 45 54 20 41 43 SCR SET AC
014690: 43 45 53 53 0D 0A 20 20 20 20 20 20 20 53 43 52 CESS.. SCR
0146A0: 20 53 45 54 20 46 4C 41 53 48 49 4E 47 0D 0A 20 SET FLASHING..
0146B0: 20 20 20 20 20 20 53 43 52 20 53 45 54 20 49 4E SCR SET IN
0146C0: 4B 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 K............
0146D0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
0146E0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
0146F0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
014700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014710: 70 61 67 65 20 31 35 2E 39 30 0D 0A 0D 0A 0D 0A page 15.90......
014720: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 38 ........ 8
014730: 37 3A 20 53 43 52 20 53 45 54 20 4F 46 46 53 45 7: SCR SET OFFSE
014740: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 T
014750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014770: 23 42 43 30 35 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #BC05......
014780: 20 20 53 65 74 20 74 68 65 20 6F 66 66 73 65 74 Set the offset
014790: 20 6F 66 20 74 68 65 20 73 74 61 72 74 20 6F 66 of the start of
0147A0: 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A the screen.....
0147B0: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
0147C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 ...... Set
0147D0: 20 74 68 65 20 6F 66 66 73 65 74 20 6F 66 20 74 the offset of t
0147E0: 68 65 20 66 69 72 73 74 20 63 68 61 72 61 63 74 he first charact
0147F0: 65 72 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E er on the screen
014800: 2E 20 42 79 20 63 68 61 6E 67 69 6E 67 20 20 74 . By changing t
014810: 68 69 73 0D 0A 20 20 20 20 20 20 20 6F 66 66 73 his.. offs
014820: 65 74 20 74 68 65 20 73 63 72 65 65 6E 20 63 61 et the screen ca
014830: 6E 20 62 65 20 72 6F 6C 6C 65 64 2E 0D 0A 0D 0A n be rolled.....
014840: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
014850: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
014860: 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 HL contai
014870: 6E 73 20 74 68 65 20 72 65 71 75 69 72 65 64 20 ns the required
014880: 6F 66 66 73 65 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 offset.......
014890: 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 Exit conditi
0148A0: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
0148B0: 20 41 46 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 AF and HL corru
0148C0: 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 pt... All
0148D0: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
0148E0: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A preserved.......
0148F0: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
014900: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6F 66 ... The of
014910: 66 73 65 74 20 70 61 73 73 65 64 20 69 73 20 6D fset passed is m
014920: 61 73 6B 65 64 20 77 69 74 68 20 23 30 37 46 45 asked with #07FE
014930: 20 74 6F 20 6D 61 6B 65 20 73 75 72 65 20 69 74 to make sure it
014940: 20 69 73 20 6E 6F 74 20 74 6F 6F 20 20 62 69 67 is not too big
014950: 0D 0A 20 20 20 20 20 20 20 74 6F 20 6D 61 6B 65 .. to make
014960: 20 74 68 61 74 20 74 68 65 20 6F 66 66 73 65 74 that the offset
014970: 20 69 73 20 20 65 76 65 6E 2E 20 20 28 54 68 65 is even. (The
014980: 20 20 73 63 72 65 65 6E 20 20 69 73 20 20 6F 6E screen is on
014990: 6C 79 20 20 63 61 70 61 62 6C 65 20 20 6F 66 0D ly capable of.
0149A0: 0A 20 20 20 20 20 20 20 72 6F 6C 6C 69 6E 67 20 . rolling
0149B0: 69 6E 20 74 77 6F 20 62 79 74 65 20 69 6E 63 72 in two byte incr
0149C0: 65 6D 65 6E 74 73 29 2E 0D 0A 0D 0A 0D 0A 20 20 ements).......
0149D0: 20 20 20 20 20 54 68 65 20 73 63 72 65 65 6E 20 The screen
0149E0: 62 61 73 65 20 61 6E 64 20 73 63 72 65 65 6E 20 base and screen
0149F0: 6F 66 66 73 65 74 20 61 72 65 20 63 6F 6D 62 69 offset are combi
014A00: 6E 65 64 20 69 6E 74 6F 20 61 20 73 69 6E 67 6C ned into a singl
014A10: 65 20 76 61 6C 75 65 20 61 6E 64 0D 0A 20 20 20 e value and..
014A20: 20 20 20 20 73 65 6E 74 20 74 6F 20 74 68 65 20 sent to the
014A30: 68 61 72 64 77 61 72 65 20 74 6F 67 65 74 68 65 hardware togethe
014A40: 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 r....... T
014A50: 68 65 20 73 63 72 65 65 6E 20 6F 66 66 73 65 74 he screen offset
014A60: 20 69 73 20 75 73 65 64 20 62 79 20 53 43 52 20 is used by SCR
014A70: 43 48 41 52 20 50 4F 53 49 54 49 4F 4E 20 61 6E CHAR POSITION an
014A80: 64 20 53 43 52 20 44 4F 54 20 50 4F 53 49 54 49 d SCR DOT POSITI
014A90: 4F 4E 20 74 6F 0D 0A 20 20 20 20 20 20 20 63 61 ON to.. ca
014AA0: 6C 63 75 6C 61 74 65 20 73 63 72 65 65 6E 20 61 lculate screen a
014AB0: 64 64 72 65 73 73 65 73 2E 20 49 66 20 74 68 65 ddresses. If the
014AC0: 20 73 63 72 65 65 6E 20 6F 66 66 73 65 74 20 69 screen offset i
014AD0: 73 20 63 68 61 6E 67 65 64 20 6D 65 72 65 6C 79 s changed merely
014AE0: 20 20 62 79 0D 0A 20 20 20 20 20 20 20 63 61 6C by.. cal
014AF0: 6C 69 6E 67 20 74 68 65 20 4D 61 63 68 69 6E 65 ling the Machine
014B00: 20 50 61 63 6B 20 72 6F 75 74 69 6E 65 20 4D 43 Pack routine MC
014B10: 20 53 43 52 45 45 4E 20 4F 46 46 53 45 54 20 74 SCREEN OFFSET t
014B20: 68 65 6E 20 20 74 68 65 20 20 54 65 78 74 20 20 hen the Text
014B30: 61 6E 64 0D 0A 20 20 20 20 20 20 20 47 72 61 70 and.. Grap
014B40: 68 69 63 73 20 56 44 55 73 20 77 69 6C 6C 20 75 hics VDUs will u
014B50: 73 65 20 69 6E 63 6F 72 72 65 63 74 20 73 63 72 se incorrect scr
014B60: 65 65 6E 20 61 64 64 72 65 73 73 65 73 2E 0D 0A een addresses...
014B70: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6F .... The o
014B80: 66 66 73 65 74 20 69 73 20 73 65 74 20 74 6F 20 ffset is set to
014B90: 7A 65 72 6F 20 77 68 65 6E 20 74 68 65 20 73 63 zero when the sc
014BA0: 72 65 65 6E 20 6D 6F 64 65 20 69 73 20 73 65 74 reen mode is set
014BB0: 20 6F 72 20 74 68 65 20 73 63 72 65 65 6E 20 69 or the screen i
014BC0: 73 0D 0A 20 20 20 20 20 20 20 63 6C 65 61 72 65 s.. cleare
014BD0: 64 20 62 79 20 63 61 6C 6C 69 6E 67 20 53 43 52 d by calling SCR
014BE0: 20 43 4C 45 41 52 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 CLEAR.........
014BF0: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
014C00: 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tries:......
014C10: 20 20 20 4D 43 20 53 43 52 45 45 4E 20 4F 46 46 MC SCREEN OFF
014C20: 53 45 54 0D 0A 20 20 20 20 20 20 20 53 43 52 20 SET.. SCR
014C30: 47 45 54 20 4C 4F 43 41 54 49 4F 4E 0D 0A 20 20 GET LOCATION..
014C40: 20 20 20 20 20 53 43 52 20 48 57 20 52 4F 4C 4C SCR HW ROLL
014C50: 0D 0A 20 20 20 20 20 20 20 53 43 52 20 53 45 54 .. SCR SET
014C60: 20 42 41 53 45 0D 0A 20 20 20 20 20 20 20 53 43 BASE.. SC
014C70: 52 20 53 45 54 20 50 4F 53 49 54 49 4F 4E 0D 0A R SET POSITION..
014C80: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
014C90: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
014CA0: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
014CB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014CC0: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 39 page 15.9
014CD0: 31 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 1..............
014CE0: 20 20 20 20 20 20 38 38 3A 20 53 43 52 20 53 45 88: SCR SE
014CF0: 54 20 42 41 53 45 20 20 20 20 20 20 20 20 20 20 T BASE
014D00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014D10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014D20: 20 20 20 20 20 20 20 23 42 43 30 38 0D 0A 0D 0A #BC08....
014D30: 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 65 .. Set the
014D40: 20 61 72 65 61 20 6F 66 20 52 41 4D 20 74 6F 20 area of RAM to
014D50: 75 73 65 20 66 6F 72 20 74 68 65 20 73 63 72 65 use for the scre
014D60: 65 6E 20 6D 65 6D 6F 72 79 2E 0D 0A 0D 0A 0D 0A en memory.......
014D70: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
014D80: 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 .... Set t
014D90: 68 65 20 62 61 73 65 20 61 64 64 72 65 73 73 20 he base address
014DA0: 6F 66 20 74 68 65 20 73 63 72 65 65 6E 20 6D 65 of the screen me
014DB0: 6D 6F 72 79 2E 20 54 68 69 73 20 63 61 6E 20 65 mory. This can e
014DC0: 20 75 73 65 64 20 74 6F 20 6D 6F 76 65 20 74 68 used to move th
014DD0: 65 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E e.. screen
014DE0: 20 6F 75 74 20 66 72 6F 6D 20 75 6E 64 65 72 6E out from undern
014DF0: 65 61 74 68 20 74 68 65 20 75 70 70 65 72 20 52 eath the upper R
014E00: 4F 4D 20 20 6F 72 20 20 74 6F 20 20 64 69 73 70 OM or to disp
014E10: 6C 61 79 20 20 61 20 20 70 72 65 70 61 72 65 64 lay a prepared
014E20: 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 .. screen
014E30: 69 6E 73 74 61 6E 74 6C 79 2E 0D 0A 0D 0A 0D 0A instantly.......
014E40: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
014E50: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
014E60: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
014E70: 74 68 65 20 6D 6F 72 65 20 73 69 67 6E 69 66 69 the more signifi
014E80: 63 61 6E 74 20 62 79 74 65 20 6F 66 20 74 68 65 cant byte of the
014E90: 20 62 61 73 65 20 61 64 64 72 65 73 73 2E 0D 0A base address...
014EA0: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
014EB0: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
014EC0: 0A 20 20 20 20 20 20 20 41 46 20 61 6E 64 20 48 . AF and H
014ED0: 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 L corrupt...
014EE0: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
014EF0: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
014F00: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
014F10: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
014F20: 20 54 68 65 20 73 63 72 65 65 6E 20 6D 65 6D 6F The screen memo
014F30: 72 79 20 63 61 6E 20 6F 6E 6C 79 20 62 65 20 6C ry can only be l
014F40: 6F 63 61 74 65 64 20 6F 6E 20 61 20 31 36 4B 20 ocated on a 16K
014F50: 62 6F 75 6E 64 61 72 79 20 73 6F 20 20 74 68 65 boundary so the
014F60: 20 20 76 61 6C 75 65 0D 0A 20 20 20 20 20 20 20 value..
014F70: 70 61 73 73 65 64 20 69 6E 20 6D 61 73 6B 65 64 passed in masked
014F80: 20 77 69 74 68 20 23 43 30 2E 20 54 68 65 20 64 with #C0. The d
014F90: 65 66 61 75 6C 74 20 73 63 72 65 65 6E 20 62 61 efault screen ba
014FA0: 73 65 2C 20 20 73 65 74 20 20 61 74 20 20 45 4D se, set at EM
014FB0: 53 2C 20 20 69 73 0D 0A 20 20 20 20 20 20 20 23 S, is.. #
014FC0: 43 30 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 C0.......
014FD0: 54 68 65 20 6F 66 66 73 65 74 20 69 73 20 63 6F The offset is co
014FE0: 6D 62 69 6E 65 64 20 77 69 74 68 20 74 68 65 20 mbined with the
014FF0: 73 63 72 65 65 6E 20 62 61 73 65 20 69 6E 74 6F screen base into
015000: 20 61 20 73 69 6E 67 6C 65 20 76 61 6C 75 65 20 a single value
015010: 20 77 68 69 63 68 0D 0A 20 20 20 20 20 20 20 69 which.. i
015020: 73 20 73 65 6E 74 20 74 6F 20 74 68 65 20 68 61 s sent to the ha
015030: 72 64 77 61 72 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 rdware.......
015040: 20 20 20 20 54 68 65 20 73 63 72 65 65 6E 20 62 The screen b
015050: 61 73 65 20 61 64 64 72 65 73 73 20 69 73 20 75 ase address is u
015060: 73 65 64 20 62 79 20 20 53 43 52 20 20 43 48 41 sed by SCR CHA
015070: 52 20 20 50 4F 53 49 54 49 4F 4E 20 20 61 6E 64 R POSITION and
015080: 20 20 53 43 52 20 20 44 4F 54 0D 0A 20 20 20 20 SCR DOT..
015090: 20 20 20 50 4F 53 49 54 49 4F 4E 20 74 6F 20 63 POSITION to c
0150A0: 61 6C 63 75 6C 61 74 65 20 73 63 72 65 65 6E 20 alculate screen
0150B0: 61 64 64 72 65 73 73 65 73 2E 20 49 66 20 74 68 addresses. If th
0150C0: 65 20 73 63 72 65 65 6E 20 62 61 73 65 20 69 73 e screen base is
0150D0: 20 20 63 68 61 6E 67 65 64 0D 0A 20 20 20 20 20 changed..
0150E0: 20 20 6D 65 72 65 6C 79 20 62 79 20 63 61 6C 6C merely by call
0150F0: 69 6E 67 20 74 68 65 20 4D 61 63 68 69 6E 65 20 ing the Machine
015100: 50 61 63 6B 20 72 6F 75 74 69 6E 65 20 4D 43 20 Pack routine MC
015110: 53 43 52 45 45 4E 20 4F 46 46 53 45 54 20 20 74 SCREEN OFFSET t
015120: 68 65 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 hen the..
015130: 20 74 65 78 74 20 61 6E 64 20 67 72 61 70 68 69 text and graphi
015140: 63 73 20 56 44 55 73 20 77 69 6C 6C 20 75 73 65 cs VDUs will use
015150: 20 69 6E 63 6F 72 72 65 63 74 20 73 63 72 65 65 incorrect scree
015160: 6E 20 61 64 64 72 65 73 73 65 73 2E 0D 0A 0D 0A n addresses.....
015170: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 63 72 .. The scr
015180: 65 65 6E 20 6D 65 6D 6F 72 79 20 69 73 20 6E 6F een memory is no
015190: 74 20 63 6C 65 61 72 65 64 20 77 68 65 6E 20 74 t cleared when t
0151A0: 68 65 20 73 63 72 65 65 6E 20 62 61 73 65 20 69 he screen base i
0151B0: 73 20 73 65 74 2C 20 75 73 65 20 20 53 43 52 0D s set, use SCR.
0151C0: 0A 20 20 20 20 20 20 20 43 4C 45 41 52 20 74 6F . CLEAR to
0151D0: 20 64 6F 20 74 68 69 73 2E 0D 0A 0D 0A 20 20 20 do this.....
0151E0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
0151F0: 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4D ies:.... M
015200: 43 20 53 43 52 45 45 4E 20 4F 46 46 53 45 54 0D C SCREEN OFFSET.
015210: 0A 20 20 20 20 20 20 20 53 43 52 20 47 45 54 20 . SCR GET
015220: 4C 4F 43 41 54 49 4F 4E 0D 0A 20 20 20 20 20 20 LOCATION..
015230: 20 53 43 52 20 53 45 54 20 4F 46 46 53 45 54 0D SCR SET OFFSET.
015240: 0A 20 20 20 20 20 20 20 53 43 52 20 53 45 54 20 . SCR SET
015250: 50 4F 53 49 54 49 4F 4E 0D 0A 0D 0A 0D 0A 0D 0A POSITION........
015260: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
015270: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
015280: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
015290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0152A0: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 39 page 15.9
0152B0: 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 2..............
0152C0: 20 20 20 20 20 20 38 39 3A 20 53 43 52 20 47 45 89: SCR GE
0152D0: 54 20 4C 4F 43 41 54 49 4F 4E 20 20 20 20 20 20 T LOCATION
0152E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0152F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015300: 20 20 20 20 20 20 20 23 42 43 30 42 0D 0A 0D 0A #BC0B....
015310: 0D 0A 20 20 20 20 20 20 20 46 65 74 63 68 20 63 .. Fetch c
015320: 75 72 72 65 6E 74 20 62 61 73 65 20 61 6E 64 20 urrent base and
015330: 6F 66 66 73 65 74 20 73 65 74 74 69 6E 67 73 2E offset settings.
015340: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 ...... Act
015350: 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion:......
015360: 20 41 73 6B 20 77 68 65 72 65 20 74 68 65 20 73 Ask where the s
015370: 63 72 65 65 6E 20 6D 65 6D 6F 72 79 20 69 73 20 creen memory is
015380: 6C 6F 63 61 74 65 64 20 61 6E 64 20 20 77 68 65 located and whe
015390: 72 65 20 20 74 68 65 20 20 73 74 61 72 74 20 20 re the start
0153A0: 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 of the..
0153B0: 73 63 72 65 65 6E 20 69 73 2E 0D 0A 0D 0A 0D 0A screen is.......
0153C0: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
0153D0: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
0153E0: 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F No conditio
0153F0: 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns.......
015400: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
015410: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 ...... A c
015420: 6F 6E 74 61 69 6E 73 20 74 68 65 20 6D 6F 72 65 ontains the more
015430: 20 73 69 67 6E 69 66 69 63 61 6E 74 20 62 79 74 significant byt
015440: 65 20 6F 66 20 74 68 65 20 62 61 73 65 20 61 64 e of the base ad
015450: 64 72 65 73 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 dress.......
015460: 20 20 20 46 6C 61 67 73 20 63 6F 72 72 75 70 74 Flags corrupt
015470: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
015480: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
015490: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
0154A0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
0154B0: 0A 20 20 20 20 20 20 20 54 68 65 20 62 61 73 65 . The base
0154C0: 20 61 6E 64 20 6F 66 66 73 65 74 73 20 72 65 74 and offsets ret
0154D0: 75 72 6E 65 64 20 62 79 20 74 68 69 73 20 72 6F urned by this ro
0154E0: 75 74 69 6E 65 20 6D 61 79 20 6E 6F 74 20 62 65 utine may not be
0154F0: 20 74 68 65 20 20 73 61 6D 65 20 20 61 73 0D 0A the same as..
015500: 20 20 20 20 20 20 20 74 68 6F 73 65 20 73 65 74 those set
015510: 20 75 73 69 6E 67 20 53 43 52 20 53 45 54 20 42 using SCR SET B
015520: 41 53 45 20 6F 72 20 53 43 52 20 53 45 54 20 4F ASE or SCR SET O
015530: 46 46 53 45 54 2E 20 54 68 69 73 20 20 69 73 20 FFSET. This is
015540: 20 62 65 63 61 75 73 65 20 20 74 68 65 0D 0A 20 because the..
015550: 20 20 20 20 20 20 76 61 6C 75 65 73 20 61 72 65 values are
015560: 20 6D 61 73 6B 65 64 20 74 6F 20 6D 61 6B 65 20 masked to make
015570: 74 68 65 6D 20 6C 65 67 61 6C 20 61 6E 64 20 74 them legal and t
015580: 68 65 20 20 73 63 72 65 65 6E 20 20 6F 66 66 73 he screen offs
015590: 65 74 20 20 69 73 20 20 61 6C 73 6F 0D 0A 20 20 et is also..
0155A0: 20 20 20 20 20 63 68 61 6E 67 65 64 20 77 68 65 changed whe
0155B0: 6E 20 74 68 65 20 68 61 72 64 77 61 72 65 20 73 n the hardware s
0155C0: 63 72 65 65 6E 20 72 6F 6C 6C 69 6E 67 20 20 72 creen rolling r
0155D0: 6F 75 74 69 6E 65 2C 20 20 53 43 52 20 20 48 57 outine, SCR HW
0155E0: 20 20 52 4F 4C 4C 2C 20 20 69 73 0D 0A 20 20 20 ROLL, is..
0155F0: 20 20 20 20 75 73 65 64 2E 0D 0A 0D 0A 0D 0A 0D used........
015600: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
015610: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
015620: 20 20 20 20 20 53 43 52 20 53 45 54 20 42 41 53 SCR SET BAS
015630: 45 0D 0A 20 20 20 20 20 20 20 53 43 52 20 53 45 E.. SCR SE
015640: 54 20 4F 46 46 53 45 54 0D 0A 20 20 20 20 20 20 T OFFSET..
015650: 20 53 43 52 20 53 45 54 20 50 4F 53 49 54 49 4F SCR SET POSITIO
015660: 4E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D N...............
015670: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
015680: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
015690: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
0156A0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
0156B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0156C0: 70 61 67 65 20 31 35 2E 39 33 0D 0A 0D 0A 0D 0A page 15.93......
0156D0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 39 ........ 9
0156E0: 30 3A 20 53 43 52 20 53 45 54 20 4D 4F 44 45 20 0: SCR SET MODE
0156F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
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: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015820: 23 42 43 30 45 0D 0A 0D 0A 20 20 20 20 20 20 20 #BC0E....
015830: 53 65 74 20 73 63 72 65 65 6E 20 69 6E 74 6F 20 Set screen into
015840: 61 20 6E 65 77 20 6D 6F 64 65 2E 0D 0A 0D 0A 20 a new mode.....
015850: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
015860: 0A 20 20 20 20 20 20 20 50 75 74 20 74 68 65 20 . Put the
015870: 73 63 72 65 65 6E 20 69 6E 74 6F 20 61 20 6E 65 screen into a ne
015880: 77 20 20 6D 6F 64 65 20 20 61 6E 64 20 20 6D 61 w mode and ma
015890: 6B 65 20 20 73 75 72 65 20 20 74 68 61 74 20 20 ke sure that
0158A0: 74 68 65 20 20 54 65 78 74 20 20 61 6E 64 0D 0A the Text and..
0158B0: 20 20 20 20 20 20 20 47 72 61 70 68 69 63 73 20 Graphics
0158C0: 56 44 55 73 20 61 72 65 20 73 65 74 20 75 70 20 VDUs are set up
0158D0: 63 6F 72 72 65 63 74 6C 79 2E 0D 0A 0D 0A 20 20 correctly.....
0158E0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
0158F0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tions:....
015900: 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 A contains the
015910: 72 65 71 75 69 72 65 64 20 6D 6F 64 65 2E 0D 0A required mode...
015920: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
015930: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
015940: 20 20 20 20 41 46 2C 42 43 2C 44 45 20 61 6E 64 AF,BC,DE and
015950: 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 HL corrupt...
015960: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
015970: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
015980: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ed..... No
015990: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
0159A0: 20 54 68 65 20 6D 6F 64 65 20 72 65 71 75 65 73 The mode reques
0159B0: 74 65 64 20 69 73 20 6D 61 72 6B 65 64 20 77 69 ted is marked wi
0159C0: 74 68 20 23 30 33 2E 20 49 66 20 74 68 65 20 20 th #03. If the
0159D0: 72 65 73 75 6C 74 69 6E 67 20 20 76 61 6C 75 65 resulting value
0159E0: 20 20 69 73 20 20 33 0D 0A 20 20 20 20 20 20 20 is 3..
0159F0: 74 68 65 6E 20 6E 6F 20 61 63 74 69 6F 6E 20 69 then no action i
015A00: 73 20 74 61 6B 65 6E 2E 20 4F 74 68 65 72 77 69 s taken. Otherwi
015A10: 73 65 20 6F 6E 65 20 6F 66 20 74 68 65 20 66 6F se one of the fo
015A20: 6C 6C 6F 77 69 6E 67 20 20 73 63 72 65 65 6E 20 llowing screen
015A30: 20 6D 6F 64 65 73 0D 0A 20 20 20 20 20 20 20 69 modes.. i
015A40: 73 20 73 65 74 20 75 70 3A 0D 0A 0D 0A 0D 0A 20 s set up:......
015A50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4D M
015A60: 6F 64 65 20 30 3A 20 20 20 31 36 30 20 78 20 32 ode 0: 160 x 2
015A70: 30 30 20 70 69 78 65 6C 73 2C 20 20 20 32 30 20 00 pixels, 20
015A80: 78 20 32 35 20 63 68 61 72 61 63 74 65 72 73 2E x 25 characters.
015A90: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
015AA0: 20 20 4D 6F 64 65 20 31 3A 20 20 20 33 32 30 20 Mode 1: 320
015AB0: 78 20 32 30 30 20 70 69 78 65 6C 73 2C 20 20 20 x 200 pixels,
015AC0: 34 30 20 78 20 32 35 20 63 68 61 72 61 63 74 65 40 x 25 characte
015AD0: 72 73 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 rs...
015AE0: 20 20 20 20 20 4D 6F 64 65 20 32 3A 20 20 20 36 Mode 2: 6
015AF0: 34 30 20 78 20 32 30 30 20 70 69 78 65 6C 73 2C 40 x 200 pixels,
015B00: 20 20 20 38 30 20 78 20 32 35 20 63 68 61 72 61 80 x 25 chara
015B10: 63 74 65 72 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 cters.......
015B20: 20 20 20 41 74 20 61 20 65 61 72 6C 79 20 73 74 At a early st
015B30: 61 67 65 20 74 68 65 20 73 63 72 65 65 6E 20 69 age the screen i
015B40: 73 20 63 6C 65 61 72 65 64 20 74 6F 20 61 76 6F s cleared to avo
015B50: 69 64 20 74 68 65 20 20 6F 6C 64 20 20 63 6F 6E id the old con
015B60: 74 65 6E 74 73 20 20 6F 66 0D 0A 20 20 20 20 20 tents of..
015B70: 20 20 74 68 65 20 73 63 72 65 65 6E 20 62 65 69 the screen bei
015B80: 6E 67 20 64 69 73 70 6C 61 79 65 64 20 69 6E 20 ng displayed in
015B90: 74 68 65 20 77 72 6F 6E 67 20 6D 6F 64 65 2E 20 the wrong mode.
015BA0: 54 68 65 20 73 63 72 65 65 6E 20 69 73 20 63 6C The screen is cl
015BB0: 65 61 72 65 64 20 62 79 0D 0A 20 20 20 20 20 20 eared by..
015BC0: 20 63 61 6C 6C 69 6E 67 20 74 68 65 20 53 43 52 calling the SCR
015BD0: 20 4D 4F 44 45 20 43 4C 45 41 52 20 69 6E 64 69 MODE CLEAR indi
015BE0: 72 65 63 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 rection.......
015BF0: 20 20 20 20 20 41 6C 6C 20 74 68 65 20 74 65 78 All the tex
015C00: 74 20 61 6E 64 20 67 72 61 70 68 69 63 73 20 77 t and graphics w
015C10: 69 6E 64 6F 77 73 20 61 72 65 20 73 65 74 20 74 indows are set t
015C20: 6F 20 63 6F 76 65 72 20 20 74 68 65 20 20 77 68 o cover the wh
015C30: 6F 6C 65 20 20 73 63 72 65 65 6E 0D 0A 20 20 20 ole screen..
015C40: 20 20 20 20 61 6E 64 20 74 68 65 20 67 72 61 70 and the grap
015C50: 68 69 63 73 20 75 73 65 72 20 6F 72 69 67 69 6E hics user origin
015C60: 20 69 73 20 73 65 74 20 74 6F 20 74 68 65 20 62 is set to the b
015C70: 6F 74 74 6F 6D 20 6C 65 66 74 20 63 6F 72 6E 65 ottom left corne
015C80: 72 20 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 r of the..
015C90: 20 20 20 73 63 72 65 65 6E 2E 20 54 68 65 20 63 screen. The c
015CA0: 75 72 73 6F 72 20 62 6C 6F 62 73 20 66 6F 72 20 ursor blobs for
015CB0: 61 6C 6C 20 74 65 78 74 20 73 74 72 65 61 6D 73 all text streams
015CC0: 20 61 72 65 20 74 75 72 6E 65 64 20 20 6F 66 66 are turned off
015CD0: 2E 20 20 53 74 72 65 61 6D 0D 0A 20 20 20 20 20 . Stream..
015CE0: 20 20 7A 65 72 6F 20 69 73 20 73 65 6C 65 63 74 zero is select
015CF0: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
015D00: 54 68 65 20 63 75 72 72 65 6E 74 20 74 65 78 74 The current text
015D10: 20 61 6E 64 20 20 67 72 61 70 68 69 63 73 20 20 and graphics
015D20: 70 65 6E 20 20 61 6E 64 20 20 70 61 70 65 72 20 pen and paper
015D30: 20 69 6E 6B 73 20 20 61 72 65 20 20 6D 61 73 6B inks are mask
015D40: 65 64 20 20 61 73 0D 0A 20 20 20 20 20 20 20 61 ed as.. a
015D50: 70 70 72 6F 70 72 69 61 74 65 20 66 6F 72 20 74 ppropriate for t
015D60: 68 65 20 6E 65 77 20 6D 6F 64 65 20 28 73 65 65 he new mode (see
015D70: 20 54 58 54 20 53 45 54 20 50 45 4E 20 65 74 20 TXT SET PEN et
015D80: 20 61 6C 29 2E 20 20 57 68 65 6E 20 20 63 68 61 al). When cha
015D90: 6E 67 69 6E 67 0D 0A 20 20 20 20 20 20 20 6D 6F nging.. mo
015DA0: 64 65 20 74 6F 20 61 20 6D 6F 64 65 20 74 68 61 de to a mode tha
015DB0: 74 20 61 6C 6C 6F 77 73 20 66 65 77 65 72 20 69 t allows fewer i
015DC0: 6E 6B 73 20 6F 6E 20 74 68 65 20 73 63 72 65 65 nks on the scree
015DD0: 6E 20 74 68 69 73 20 6D 61 79 20 63 61 75 73 65 n this may cause
015DE0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 70 65 6E the.. pen
015DF0: 20 61 6E 64 20 70 61 70 65 72 20 69 6E 6B 73 20 and paper inks
015E00: 74 6F 20 63 68 61 6E 67 65 2E 0D 0A 0D 0A 0D 0A to change.......
015E10: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
015E20: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 entries:......
015E30: 20 20 20 20 20 20 4D 43 20 53 45 54 20 4D 4F 44 MC SET MOD
015E40: 45 0D 0A 20 20 20 20 20 20 20 53 43 52 20 47 45 E.. SCR GE
015E50: 54 20 4D 4F 44 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A T MODE..........
015E60: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
015E70: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
015E80: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
015E90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015EA0: 20 20 20 20 20 70 61 67 65 20 31 35 2E 39 34 0D page 15.94.
015EB0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
015EC0: 20 20 20 20 39 31 3A 20 53 43 52 20 47 45 54 20 91: SCR GET
015ED0: 4D 4F 44 45 20 20 20 20 20 20 20 20 20 20 20 20 MODE
015EE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015EF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
015F00: 20 20 20 20 20 23 42 43 31 31 0D 0A 0D 0A 20 20 #BC11....
015F10: 20 20 20 20 20 41 73 6B 20 74 68 65 20 63 75 72 Ask the cur
015F20: 72 65 6E 74 20 73 63 72 65 65 6E 20 6D 6F 64 65 rent screen mode
015F30: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 ....... Ac
015F40: 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 tion:....
015F50: 46 65 74 63 68 20 61 6E 64 20 74 65 73 74 20 74 Fetch and test t
015F60: 68 65 20 63 75 72 72 65 6E 74 20 73 63 72 65 65 he current scree
015F70: 6E 20 6D 6F 64 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 n mode.......
015F80: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
015F90: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
015FA0: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A No conditions...
015FB0: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
015FC0: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
015FD0: 20 20 20 20 20 20 49 66 20 63 75 72 72 65 6E 74 If current
015FE0: 20 6D 6F 64 65 20 69 73 20 6D 6F 64 65 20 30 3A mode is mode 0:
015FF0: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
016000: 20 20 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D Carry true..
016010: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
016020: 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 Zero false...
016030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 A
016040: 63 6F 6E 74 61 69 6E 73 20 30 2E 0D 0A 0D 0A 20 contains 0.....
016050: 20 20 20 20 20 20 49 66 20 63 75 72 72 65 6E 74 If current
016060: 20 6D 6F 64 65 20 69 73 20 6D 6F 64 65 20 31 3A mode is mode 1:
016070: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
016080: 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E Carry false.
016090: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0160A0: 20 20 5A 65 72 6F 20 74 72 75 65 2E 0D 0A 20 20 Zero true...
0160B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 A
0160C0: 63 6F 6E 74 61 69 6E 73 20 31 2E 0D 0A 0D 0A 20 contains 1.....
0160D0: 20 20 20 20 20 20 49 66 20 63 75 72 72 65 6E 74 If current
0160E0: 20 6D 6F 64 65 20 69 73 20 6D 6F 64 65 20 32 3A mode is mode 2:
0160F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
016100: 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E Carry false.
016110: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
016120: 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 Zero false...
016130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
016140: 20 63 6F 6E 74 61 69 6E 73 20 32 2E 0D 0A 0D 0A contains 2.....
016150: 20 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A Always:..
016160: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
016170: 20 20 4F 74 68 65 72 20 66 6C 61 67 73 20 63 6F Other flags co
016180: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 rrupt...
016190: 20 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 All othe
0161A0: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
0161B0: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 erved.......
0161C0: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 Notes:....
0161D0: 20 20 20 20 54 68 65 20 6D 6F 64 65 73 20 61 72 The modes ar
0161E0: 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 e:....
0161F0: 20 20 20 20 20 20 4D 6F 64 65 20 30 3A 20 20 20 Mode 0:
016200: 31 36 30 20 78 20 32 30 30 20 70 69 78 65 6C 73 160 x 200 pixels
016210: 2C 20 20 20 32 30 20 78 20 32 35 20 63 68 61 72 , 20 x 25 char
016220: 61 63 74 65 72 73 2E 0D 0A 20 20 20 20 20 20 20 acters...
016230: 20 20 20 20 20 20 20 20 20 4D 6F 64 65 20 31 3A Mode 1:
016240: 20 20 20 33 32 30 20 78 20 32 30 30 20 70 69 78 320 x 200 pix
016250: 65 6C 73 2C 20 20 20 34 30 20 78 20 32 35 20 63 els, 40 x 25 c
016260: 68 61 72 61 63 74 65 72 73 2E 0D 0A 20 20 20 20 haracters...
016270: 20 20 20 20 20 20 20 20 20 20 20 20 4D 6F 64 65 Mode
016280: 20 32 3A 20 20 20 36 34 30 20 78 20 32 30 30 20 2: 640 x 200
016290: 70 69 78 65 6C 73 2C 20 20 20 38 30 20 78 20 32 pixels, 80 x 2
0162A0: 35 20 63 68 61 72 61 63 74 65 72 73 2E 0D 0A 0D 5 characters....
0162B0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
0162C0: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
0162D0: 20 20 20 20 20 20 20 53 43 52 20 53 45 54 20 4D SCR SET M
0162E0: 4F 44 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ODE............
0162F0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
016300: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
016310: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
016320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016330: 20 20 70 61 67 65 20 31 35 2E 39 35 0D 0A 1A 0A page 15.95....
016340: 1A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
016350: 20 20 20 20 23 42 42 43 43 0D 0A 0D 0A 0D 0A 20 #BBCC......
016360: 20 20 20 20 20 20 47 65 74 20 74 68 65 20 6F 72 Get the or
016370: 69 67 69 6E 20 6F 66 20 74 68 65 20 75 73 65 72 igin of the user
016380: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 rrupt...
016390: 20 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 All othe
0163A0: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
0163B0: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 erved.......
0163C0: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 Notes:....
0163D0: 20 20 20 20 54 68 65 20 6D 6F 64 65 73 20 61 72 The modes ar
0163E0: 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 e:....
0163F0: 20 20 20 20 20 20 4D 6F 64 65 20 30 3A 20 20 20 Mode 0:
016400: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
016410: 20 20 20 39 32 3A 20 53 43 52 20 43 4C 45 41 52 92: SCR CLEAR
016420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016450: 20 20 20 20 23 42 43 31 34 0D 0A 0D 0A 0D 0A 20 #BC14......
016460: 20 20 20 20 20 20 43 6C 65 61 72 20 74 68 65 20 Clear the
016470: 73 63 72 65 65 6E 20 28 74 6F 20 69 6E 6B 20 7A screen (to ink z
016480: 65 72 6F 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ero).......
016490: 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 Action:......
0164A0: 20 20 20 20 20 20 43 6C 65 61 72 20 74 68 65 20 Clear the
0164B0: 77 68 6F 6C 65 20 6F 66 20 73 63 72 65 65 6E 20 whole of screen
0164C0: 6D 65 6D 6F 72 79 20 74 6F 20 7A 65 72 6F 2E 0D memory to zero..
0164D0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
0164E0: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
0164F0: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E ... No con
016500: 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 ditions.......
016510: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
016520: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
016530: 20 20 41 46 2C 42 43 2C 44 45 20 61 6E 64 20 48 AF,BC,DE and H
016540: 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 L corrupt...
016550: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
016560: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
016570: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
016580: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
016590: 20 41 74 20 61 6E 20 65 61 72 6C 79 20 73 74 61 At an early sta
0165A0: 67 65 20 74 68 65 20 69 6E 6B 20 66 6C 61 73 68 ge the ink flash
0165B0: 69 6E 67 20 69 73 20 74 75 72 6E 65 64 20 6F 66 ing is turned of
0165C0: 66 20 61 6E 64 20 74 68 65 20 69 6E 6B 73 20 61 f and the inks a
0165D0: 72 65 20 20 61 6C 6C 0D 0A 20 20 20 20 20 20 20 re all..
0165E0: 73 65 74 20 74 6F 20 74 68 65 20 73 61 6D 65 20 set to the same
0165F0: 63 6F 6C 6F 75 72 20 61 73 20 69 6E 6B 20 30 2E colour as ink 0.
016600: 20 54 68 69 73 20 6D 61 6B 65 73 20 74 68 65 20 This makes the
016610: 73 63 72 65 65 6E 20 63 6C 65 61 72 69 6E 67 20 screen clearing
016620: 61 70 70 65 61 72 0D 0A 20 20 20 20 20 20 20 69 appear.. i
016630: 6E 73 74 61 6E 74 61 6E 65 6F 75 73 2E 20 57 68 nstantaneous. Wh
016640: 65 6E 20 61 6C 6C 20 74 68 65 20 73 63 72 65 65 en all the scree
016650: 6E 20 6D 65 6D 6F 72 79 20 68 61 73 20 62 65 65 n memory has bee
016660: 6E 20 73 65 74 20 74 6F 20 20 30 20 20 74 68 65 n set to 0 the
016670: 20 20 69 6E 6B 0D 0A 20 20 20 20 20 20 20 66 6C ink.. fl
016680: 61 73 68 69 6E 67 20 69 73 20 74 75 72 6E 65 64 ashing is turned
016690: 20 62 61 63 6B 20 6F 6E 20 28 61 6E 20 69 6E 6B back on (an ink
0166A0: 20 66 6C 61 73 68 69 6E 67 20 20 65 76 65 6E 74 flashing event
0166B0: 20 20 69 73 20 20 61 64 64 65 64 20 20 74 6F 20 is added to
0166C0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 66 72 61 the.. fra
0166D0: 6D 65 20 66 6C 79 62 61 63 6B 20 71 75 65 75 65 me flyback queue
0166E0: 29 20 61 6E 64 20 61 6C 6C 20 69 6E 6B 73 20 61 ) and all inks a
0166F0: 72 65 20 73 65 74 20 74 6F 20 74 68 65 69 72 20 re set to their
016700: 70 72 6F 70 65 72 20 63 6F 6C 6F 75 72 73 2E 0D proper colours..
016710: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
016720: 68 65 20 74 65 78 74 20 70 61 70 65 72 20 69 6E he text paper in
016730: 6B 20 61 6E 64 20 67 72 61 70 68 69 63 73 20 70 k and graphics p
016740: 61 70 65 72 20 69 6E 6B 20 61 72 65 20 6E 6F 74 aper ink are not
016750: 20 73 65 74 20 74 6F 20 69 6E 6B 20 30 20 74 68 set to ink 0 th
016760: 69 73 0D 0A 20 20 20 20 20 20 20 77 69 6C 6C 20 is.. will
016770: 62 65 63 6F 6D 65 20 61 70 70 61 72 65 6E 74 20 become apparent
016780: 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 20 77 on the screen w
016790: 68 65 6E 20 20 63 68 61 72 61 63 74 65 72 73 20 hen characters
0167A0: 20 61 72 65 20 20 77 72 69 74 74 65 6E 20 20 6F are written o
0167B0: 72 0D 0A 20 20 20 20 20 20 20 77 69 6E 64 6F 77 r.. window
0167C0: 73 20 61 72 65 20 63 6C 65 61 72 65 64 2E 0D 0A s are cleared...
0167D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 .... The s
0167E0: 63 72 65 65 6E 20 6F 66 66 73 65 74 20 69 73 20 creen offset is
0167F0: 73 65 74 20 74 6F 20 7A 65 72 6F 2E 0D 0A 0D 0A set to zero.....
016800: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
016810: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D ed entries:.....
016820: 0A 20 20 20 20 20 20 20 47 52 41 20 43 4C 45 41 . GRA CLEA
016830: 52 20 57 49 4E 44 4F 57 0D 0A 20 20 20 20 20 20 R WINDOW..
016840: 20 53 43 52 20 4D 4F 44 45 20 43 4C 45 41 52 0D SCR MODE CLEAR.
016850: 0A 20 20 20 20 20 20 20 54 58 54 20 43 4C 45 41 . TXT CLEA
016860: 52 20 57 49 4E 44 4F 57 0D 0A 0D 0A 0D 0A 0D 0A R WINDOW........
016870: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
016880: 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 AMSTRAD CPC46
016890: 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 4/664/6128 FIRMW
0168A0: 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ARE
0168B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
0168C0: 61 67 65 20 31 35 2E 39 36 0D 0A 0D 0A 0D 0A 0D age 15.96.......
0168D0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 39 33 ....... 93
0168E0: 3A 20 53 43 52 20 43 48 41 52 20 4C 49 4D 49 54 : SCR CHAR LIMIT
0168F0: 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 S
016900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
016920: 42 43 31 37 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 BC17......
016930: 20 41 73 6B 20 74 68 65 20 73 69 7A 65 20 6F 66 Ask the size of
016940: 20 74 68 65 20 73 63 72 65 65 6E 20 69 6E 20 63 the screen in c
016950: 68 61 72 61 63 74 65 72 73 2E 0D 0A 0D 0A 0D 0A haracters.......
016960: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
016970: 0D 0A 0D 0A 20 20 20 20 20 20 20 47 65 74 20 74 .... Get t
016980: 68 65 20 6C 61 73 74 20 63 68 61 72 61 63 74 65 he last characte
016990: 72 20 72 6F 77 20 61 6E 64 20 63 6F 6C 75 6D 6E r row and column
0169A0: 20 6F 6E 20 74 68 65 20 20 73 63 72 65 65 6E 20 on the screen
0169B0: 20 69 6E 20 20 74 68 65 20 20 63 75 72 72 65 6E in the curren
0169C0: 74 0D 0A 20 20 20 20 20 20 20 6D 6F 64 65 2E 0D t.. mode..
0169D0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
0169E0: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
0169F0: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E ... No con
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: 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 ditions.......
016B10: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
016B20: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
016B30: 20 20 42 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 B contains the
016B40: 20 70 68 79 73 69 63 61 6C 20 6C 61 73 74 20 63 physical last c
016B50: 6F 6C 75 6D 6E 20 6F 6E 20 74 68 65 20 73 63 72 olumn on the scr
016B60: 65 65 6E 2E 0D 0A 20 20 20 20 20 20 20 43 20 63 een... C c
016B70: 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 68 79 73 ontains the phys
016B80: 69 63 61 6C 20 6C 61 73 74 20 72 6F 77 20 6F 6E ical last row on
016B90: 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A the screen.....
016BA0: 0D 0A 20 20 20 20 20 20 20 41 46 20 63 6F 72 72 .. AF corr
016BB0: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C upt... All
016BC0: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
016BD0: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
016BE0: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
016BF0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
016C00: 20 73 63 72 65 65 6E 20 65 64 67 65 73 20 61 72 screen edges ar
016C10: 65 20 67 69 76 65 6E 20 69 6E 20 70 68 79 73 69 e given in physi
016C20: 63 61 6C 20 63 6F 6F 72 64 69 6E 61 74 65 73 2E cal coordinates.
016C30: 20 69 2E 65 2E 20 52 6F 77 20 30 2C 20 63 6F 6C i.e. Row 0, col
016C40: 75 6D 6E 0D 0A 20 20 20 20 20 20 20 30 20 69 73 umn.. 0 is
016C50: 20 74 68 65 20 74 6F 70 20 6C 65 66 74 20 63 6F the top left co
016C60: 72 6E 65 72 20 6F 66 20 74 68 65 20 20 73 63 72 rner of the scr
016C70: 65 65 6E 2E 20 20 54 68 69 73 20 20 6D 65 61 6E een. This mean
016C80: 73 20 20 74 68 61 74 20 20 74 68 65 20 20 6C 61 s that the la
016C90: 73 74 0D 0A 20 20 20 20 20 20 20 63 6F 6C 75 6D st.. colum
016CA0: 6E 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 n on the screen
016CB0: 69 73 20 31 39 20 69 6E 20 6D 6F 64 65 20 30 2C is 19 in mode 0,
016CC0: 20 33 39 20 69 6E 20 6D 6F 64 65 20 31 20 61 6E 39 in mode 1 an
016CD0: 64 20 37 39 20 69 6E 20 20 6D 6F 64 65 20 20 32 d 79 in mode 2
016CE0: 2E 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6C 61 ... The la
016CF0: 73 74 20 72 6F 77 20 6F 6E 20 74 68 65 20 73 63 st row on the sc
016D00: 72 65 65 6E 20 69 73 20 32 34 20 69 6E 20 61 6C reen is 24 in al
016D10: 6C 20 6D 6F 64 65 73 2E 0D 0A 0D 0A 0D 0A 0D 0A l modes.........
016D20: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
016D30: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
016D40: 20 20 20 20 53 43 52 20 47 45 54 20 4D 4F 44 45 SCR GET MODE
016D50: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
016D60: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
016D70: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
016D80: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
016D90: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
016DA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016DB0: 20 70 61 67 65 20 31 35 2E 39 37 0D 0A 0D 0A 0D page 15.97.....
016DC0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
016DD0: 39 34 3A 20 53 43 52 20 43 48 41 52 20 50 4F 53 94: SCR CHAR POS
016DE0: 49 54 49 4F 4E 20 20 20 20 20 20 20 20 20 20 20 ITION
016DF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016E00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016E10: 20 23 42 43 31 41 0D 0A 0D 0A 20 20 20 20 20 20 #BC1A....
016E20: 20 43 6F 6E 76 65 72 74 20 70 68 79 73 69 63 61 Convert physica
016E30: 6C 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 74 6F l coordinates to
016E40: 20 61 20 73 63 72 65 65 6E 20 70 6F 73 69 74 69 a screen positi
016E50: 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 on..... Ac
016E60: 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 tion:....
016E70: 43 61 6C 63 75 6C 61 74 65 20 74 68 65 20 73 63 Calculate the sc
016E80: 72 65 65 6E 20 61 64 64 72 65 73 73 20 6F 66 20 reen address of
016E90: 74 68 65 20 74 6F 70 20 6C 65 66 74 20 20 63 6F the top left co
016EA0: 72 6E 65 72 20 20 6F 66 20 20 61 20 20 63 68 61 rner of a cha
016EB0: 72 61 63 74 65 72 0D 0A 20 20 20 20 20 20 20 70 racter.. p
016EC0: 6F 73 69 74 69 6F 6E 20 6F 6E 20 74 68 65 20 73 osition on the s
016ED0: 63 72 65 65 6E 2E 20 41 6C 73 6F 20 72 65 74 75 creen. Also retu
016EE0: 72 6E 73 20 74 68 65 20 77 69 64 74 68 20 6F 66 rns the width of
016EF0: 20 61 20 63 68 61 72 61 63 74 65 72 20 20 69 6E a character in
016F00: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 63 75 the.. cu
016F10: 72 72 65 6E 74 20 6D 6F 64 65 2E 0D 0A 0D 0A 20 rrent mode.....
016F20: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
016F30: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
016F40: 20 20 48 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 H contains the
016F50: 20 70 68 79 73 69 63 61 6C 20 63 68 61 72 61 63 physical charac
016F60: 74 65 72 20 63 6F 6C 75 6D 6E 2E 0D 0A 20 20 20 ter column...
016F70: 20 20 20 20 4C 20 63 6F 6E 74 61 69 6E 73 20 74 L contains t
016F80: 68 65 20 70 68 79 73 69 63 61 6C 20 63 68 61 72 he physical char
016F90: 61 63 74 65 72 20 72 6F 77 2E 0D 0A 0D 0A 20 20 acter row.....
016FA0: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
016FB0: 69 6F 6E 73 0D 0A 0D 0A 20 20 20 20 20 20 20 48 ions.... H
016FC0: 4C 20 63 6F 6E 74 61 69 6E 73 20 20 74 68 65 20 L contains the
016FD0: 20 73 63 72 65 65 6E 20 20 61 64 64 72 65 73 73 screen address
016FE0: 20 20 6F 66 20 20 74 68 65 20 20 74 6F 70 20 20 of the top
016FF0: 6C 65 66 74 20 20 63 6F 72 6E 65 72 20 20 6F 66 left corner of
017000: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 63 68 the.. ch
017010: 61 72 61 63 74 65 72 2E 0D 0A 20 20 20 20 20 20 aracter...
017020: 20 42 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 B contains the
017030: 77 69 64 74 68 20 69 6E 20 62 79 74 65 73 20 6F width in bytes o
017040: 66 20 61 20 63 68 61 72 61 63 74 65 72 20 69 6E f a character in
017050: 20 73 63 72 65 65 6E 20 6D 65 6D 6F 72 79 2E 0D screen memory..
017060: 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 63 6F 72 ... AF cor
017070: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C rupt... Al
017080: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
017090: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
0170A0: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
0170B0: 0A 20 20 20 20 20 20 20 54 68 65 20 63 68 61 72 . The char
0170C0: 61 63 74 65 72 20 70 6F 73 69 74 69 6F 6E 20 69 acter position i
0170D0: 73 20 67 69 76 65 6E 20 69 6E 20 70 68 79 73 69 s given in physi
0170E0: 63 61 6C 20 63 6F 6F 72 64 69 6E 61 74 65 73 2E cal coordinates.
0170F0: 20 69 2E 65 2E 20 20 52 6F 77 20 20 30 2C 0D 0A i.e. Row 0,..
017100: 20 20 20 20 20 20 20 63 6F 6C 75 6D 6E 20 30 20 column 0
017110: 69 73 20 74 68 65 20 74 6F 70 20 6C 65 66 74 20 is the top left
017120: 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 73 63 corner of the sc
017130: 72 65 65 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 reen.....
017140: 54 68 65 20 63 68 61 72 61 63 74 65 72 20 70 6F The character po
017150: 73 69 74 69 6F 6E 20 67 69 76 65 6E 20 20 69 73 sition given is
017160: 20 20 6E 6F 74 20 20 63 68 65 63 6B 65 64 20 20 not checked
017170: 66 6F 72 20 20 62 65 69 6E 67 20 20 6C 65 67 61 for being lega
017180: 6C 2E 20 20 41 6E 0D 0A 20 20 20 20 20 20 20 69 l. An.. i
017190: 6C 6C 65 67 61 6C 20 70 6F 73 69 74 69 6F 6E 20 llegal position
0171A0: 28 6F 6E 65 20 6F 75 74 73 69 64 65 20 74 68 65 (one outside the
0171B0: 20 6C 69 6D 69 74 73 20 6F 66 20 74 68 65 20 73 limits of the s
0171C0: 63 72 65 65 6E 29 20 77 69 6C 6C 20 20 67 65 6E creen) will gen
0171D0: 65 72 61 74 65 0D 0A 20 20 20 20 20 20 20 61 20 erate.. a
0171E0: 6D 65 61 6E 69 6E 67 6C 65 73 73 20 73 63 72 65 meaningless scre
0171F0: 65 6E 20 61 64 64 72 65 73 73 2E 0D 0A 0D 0A 20 en address.....
017200: 20 20 20 20 20 20 54 68 65 20 63 6F 6E 76 65 72 The conver
017210: 73 69 6F 6E 20 74 6F 20 73 63 72 65 65 6E 20 61 sion to screen a
017220: 64 64 72 65 73 73 20 75 73 65 73 20 74 68 65 20 ddress uses the
017230: 66 6F 6C 6C 6F 77 69 6E 67 20 66 6F 72 6D 75 6C following formul
017240: 61 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 a:....
017250: 20 20 20 20 20 20 53 63 72 65 65 6E 20 61 64 64 Screen add
017260: 72 65 73 73 20 3D 20 53 63 72 65 65 6E 20 62 61 ress = Screen ba
017270: 73 65 20 2B 20 28 42 6C 6F 63 6B 20 6F 66 66 73 se + (Block offs
017280: 65 74 20 4D 4F 44 20 23 30 38 30 30 29 0D 0A 0D et MOD #0800)...
017290: 0A 20 20 20 20 20 20 20 77 68 65 72 65 3A 0D 0A . where:..
0172A0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0172B0: 20 20 42 6C 6F 63 6B 20 6F 66 66 73 65 74 20 3D Block offset =
0172C0: 20 28 52 6F 77 20 2A 20 38 30 29 20 2B 20 28 43 (Row * 80) + (C
0172D0: 6F 6C 75 6D 6E 20 2A 20 57 69 64 74 68 29 20 2B olumn * Width) +
0172E0: 20 53 63 72 65 65 6E 20 6F 66 66 73 65 74 2E 0D Screen offset..
0172F0: 0A 0D 0A 20 20 20 20 20 20 20 61 6E 64 3A 0D 0A ... and:..
017300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017310: 53 63 72 65 65 6E 20 62 61 73 65 20 20 20 20 69 Screen base i
017320: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 s the address of
017330: 20 74 68 65 20 73 74 61 72 74 20 6F 66 20 73 63 the start of sc
017340: 72 65 65 6E 20 6D 65 6D 6F 72 79 2E 0D 0A 0D 0A reen memory.....
017350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017360: 57 69 64 74 68 20 20 20 20 20 20 20 20 20 20 69 Width i
017370: 73 20 74 68 65 20 77 69 64 74 68 20 6F 66 20 61 s the width of a
017380: 20 63 68 61 72 61 63 74 65 72 20 69 6E 20 20 62 character in b
017390: 79 74 65 73 20 20 69 6E 20 20 74 68 65 0D 0A 20 ytes in the..
0173A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0173B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 cu
0173C0: 72 72 65 6E 74 20 6D 6F 64 65 20 28 34 20 69 6E rrent mode (4 in
0173D0: 20 6D 6F 64 65 20 30 2C 20 32 20 69 6E 20 6D 6F mode 0, 2 in mo
0173E0: 64 65 20 31 2C 20 20 31 20 20 69 6E 0D 0A 20 20 de 1, 1 in..
0173F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017400: 20 20 20 20 20 20 20 20 20 20 20 20 20 6D 6F 64 mod
017410: 65 20 32 29 0D 0A 0D 0A 20 20 20 20 20 20 20 20 e 2)....
017420: 20 20 20 20 20 20 20 20 53 63 72 65 65 6E 20 6F Screen o
017430: 66 66 73 65 74 20 20 69 73 20 6F 66 66 73 65 74 ffset is offset
017440: 20 6F 66 20 74 68 65 20 66 69 72 73 74 20 62 79 of the first by
017450: 74 65 20 74 6F 20 62 65 20 64 69 73 70 6C 61 79 te to be display
017460: 65 64 20 6F 6E 0D 0A 20 20 20 20 20 20 20 20 20 ed on..
017470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017480: 20 20 20 20 20 20 74 68 65 20 73 63 72 65 65 6E the screen
017490: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
0174A0: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
0174B0: 20 20 20 20 20 20 20 53 43 52 20 44 4F 54 20 50 SCR DOT P
0174C0: 4F 53 49 54 49 4F 4E 0D 0A 20 20 20 20 20 20 20 OSITION..
0174D0: 53 43 52 20 4E 45 58 54 20 42 59 54 45 0D 0A 20 SCR NEXT BYTE..
0174E0: 20 20 20 20 20 20 53 43 52 20 4E 45 58 54 20 4C SCR NEXT L
0174F0: 49 4E 45 0D 0A 20 20 20 20 20 20 20 53 43 52 20 INE.. SCR
017500: 50 52 45 56 20 42 59 54 45 0D 0A 20 20 20 20 20 PREV BYTE..
017510: 20 20 53 43 52 20 50 52 45 56 20 4C 49 4E 45 0D SCR PREV LINE.
017520: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
017530: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
017540: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
017550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017560: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 39 38 page 15.98
017570: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
017580: 20 20 20 20 20 39 35 3A 20 53 43 52 20 44 4F 54 95: SCR DOT
017590: 20 50 4F 53 49 54 49 4F 4E 20 20 20 20 20 20 20 POSITION
0175A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0175B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0175C0: 20 20 20 20 20 20 23 42 43 31 44 0D 0A 0D 0A 20 #BC1D....
0175D0: 20 20 20 20 20 20 43 6F 6E 76 65 72 74 20 62 61 Convert ba
0175E0: 73 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 74 6F s coordinates to
0175F0: 20 61 20 73 63 72 65 65 6E 20 70 6F 73 69 74 69 a screen positi
017600: 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 on..... Ac
017610: 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 tion:....
017620: 43 61 6C 63 75 6C 61 74 65 20 74 68 65 20 73 63 Calculate the sc
017630: 72 65 65 6E 20 61 64 64 72 65 73 73 20 61 6E 64 reen address and
017640: 20 6D 61 73 6B 20 66 6F 72 20 20 61 20 20 70 69 mask for a pi
017650: 78 65 6C 2E 20 20 41 6C 73 6F 20 20 72 65 74 75 xel. Also retu
017660: 72 6E 20 20 61 6E 0D 0A 20 20 20 20 20 20 20 69 rn an.. i
017670: 6E 64 69 63 61 74 69 6F 6E 20 6F 66 20 74 68 65 ndication of the
017680: 20 6E 75 6D 62 65 72 20 6F 66 20 70 69 78 65 6C number of pixel
017690: 73 20 69 6E 20 61 20 73 63 72 65 65 6E 20 20 62 s in a screen b
0176A0: 79 74 65 20 20 69 6E 20 20 74 68 65 20 20 63 75 yte in the cu
0176B0: 72 72 65 6E 74 0D 0A 20 20 20 20 20 20 20 6D 6F rrent.. mo
0176C0: 64 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E de..... En
0176D0: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
0176E0: 0A 0D 0A 20 20 20 20 20 20 20 44 45 20 63 6F 6E ... DE con
0176F0: 74 61 69 6E 73 20 74 68 65 20 62 61 73 65 20 58 tains the base X
017700: 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F 66 20 61 coordinate of a
017710: 20 70 69 78 65 6C 2E 0D 0A 20 20 20 20 20 20 20 pixel...
017720: 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 HL contains the
017730: 62 61 73 65 20 59 20 63 6F 6F 72 64 69 6E 61 74 base Y coordinat
017740: 65 20 6F 66 20 61 20 70 69 78 65 6C 2E 0D 0A 0D e of a pixel....
017750: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
017760: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
017770: 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 HL contains t
017780: 68 65 20 73 63 72 65 65 6E 20 61 64 64 72 65 73 he screen addres
017790: 73 20 6F 66 20 74 68 65 20 70 69 78 65 6C 2E 0D s of the pixel..
0177A0: 0A 20 20 20 20 20 20 20 43 20 63 6F 6E 74 61 69 . C contai
0177B0: 6E 73 20 74 68 65 20 6D 61 73 6B 20 66 6F 72 20 ns the mask for
0177C0: 74 68 65 20 70 69 78 65 6C 2E 0D 0A 20 20 20 20 the pixel...
0177D0: 20 20 20 42 20 63 6F 6E 74 61 69 6E 73 20 6F 6E B contains on
0177E0: 65 20 6C 65 73 73 20 74 68 61 6E 20 74 68 65 20 e less than the
0177F0: 6E 75 6D 62 65 72 20 6F 66 20 70 69 78 65 6C 73 number of pixels
017800: 20 69 6E 20 61 20 62 79 74 65 2E 0D 0A 0D 0A 20 in a byte.....
017810: 20 20 20 20 20 20 41 46 20 61 6E 64 20 44 45 20 AF and DE
017820: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
017830: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
017840: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
017850: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
017860: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 70 .... The p
017870: 69 78 65 6C 20 70 6F 73 69 74 69 6F 6E 20 69 73 ixel position is
017880: 20 67 69 76 65 6E 20 69 6E 20 62 61 73 65 20 63 given in base c
017890: 6F 6F 72 64 69 6E 61 74 65 73 2E 20 20 69 2E 65 oordinates. i.e
0178A0: 2E 20 20 28 30 2C 30 29 20 20 69 73 20 20 74 68 . (0,0) is th
0178B0: 65 0D 0A 20 20 20 20 20 20 20 70 69 78 65 6C 20 e.. pixel
0178C0: 69 6E 20 74 68 65 20 62 6F 74 74 6F 6D 20 6C 65 in the bottom le
0178D0: 66 74 20 63 6F 72 6E 65 72 20 6F 66 20 20 74 68 ft corner of th
0178E0: 65 20 20 73 63 72 65 65 6E 20 20 61 6E 64 20 20 e screen and
0178F0: 65 61 63 68 20 20 63 6F 6F 72 64 69 6E 61 74 65 each coordinate
017900: 0D 0A 20 20 20 20 20 20 20 70 6F 73 69 74 69 6F .. positio
017910: 6E 20 72 65 66 65 72 73 20 74 6F 20 61 20 73 69 n refers to a si
017920: 6E 67 6C 65 20 70 69 78 65 6C 2E 0D 0A 0D 0A 20 ngle pixel.....
017930: 20 20 20 20 20 20 54 68 65 20 70 69 78 65 6C 20 The pixel
017940: 70 6F 73 69 74 69 6F 6E 20 69 73 20 6E 6F 74 20 position is not
017950: 63 68 65 63 6B 65 64 20 66 6F 72 20 62 65 69 6E checked for bein
017960: 67 20 6C 65 67 61 6C 20 28 77 69 74 68 69 6E 20 g legal (within
017970: 20 74 68 65 20 20 6C 69 6D 69 74 73 0D 0A 20 20 the limits..
017980: 20 20 20 20 20 6F 66 20 74 68 65 20 73 63 72 65 of the scre
017990: 65 6E 29 2E 20 49 66 20 69 74 20 69 73 20 6E 6F en). If it is no
0179A0: 74 20 74 68 65 6E 20 74 68 65 20 20 73 63 72 65 t then the scre
0179B0: 65 6E 20 20 61 64 64 72 65 73 73 20 20 63 61 6C en address cal
0179C0: 63 75 6C 61 74 65 64 20 20 69 73 0D 0A 20 20 20 culated is..
0179D0: 20 20 20 20 6D 65 61 6E 69 6E 67 6C 65 73 73 2E meaningless.
0179E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 63 .... The c
0179F0: 6F 6E 76 65 72 73 69 6F 6E 20 74 6F 20 73 63 72 onversion to scr
017A00: 65 65 6E 20 61 64 64 72 65 73 73 20 75 73 65 73 een address uses
017A10: 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 66 the following f
017A20: 6F 72 6D 75 6C 61 3A 0D 0A 0D 0A 20 20 20 20 20 ormula:....
017A30: 20 20 53 63 72 65 65 6E 20 61 64 64 72 65 73 73 Screen address
017A40: 3D 53 63 72 65 65 6E 20 62 61 73 65 2B 28 4C 69 =Screen base+(Li
017A50: 6E 65 20 69 6E 20 72 6F 77 2A 23 30 38 30 30 29 ne in row*#0800)
017A60: 2B 28 52 6F 77 20 6F 66 66 73 65 74 20 4D 4F 44 +(Row offset MOD
017A70: 20 23 30 38 30 30 29 0D 0A 0D 0A 20 20 20 20 20 #0800)....
017A80: 20 20 57 68 65 72 65 3A 0D 0A 0D 0A 20 20 20 20 Where:....
017A90: 20 20 20 20 20 20 20 53 63 72 65 65 6E 20 62 61 Screen ba
017AA0: 73 65 20 20 20 69 73 20 74 68 65 20 73 74 61 72 se is the star
017AB0: 74 20 61 64 64 72 65 73 73 20 6F 66 20 73 63 72 t address of scr
017AC0: 65 65 6E 20 6D 65 6D 6F 72 79 0D 0A 0D 0A 20 20 een memory....
017AD0: 20 20 20 20 20 20 20 20 20 4C 69 6E 65 20 69 6E Line in
017AE0: 20 72 6F 77 20 20 20 3D 20 28 31 39 39 20 2D 20 row = (199 -
017AF0: 59 20 63 6F 6F 72 64 69 6E 61 74 65 29 20 4D 4F Y coordinate) MO
017B00: 44 20 38 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 D 8....
017B10: 20 20 52 6F 77 20 6F 66 66 73 65 74 20 20 20 20 Row offset
017B20: 3D 20 28 52 6F 77 20 6E 75 6D 62 65 72 20 2A 20 = (Row number *
017B30: 38 30 29 20 2B 20 42 79 74 65 20 69 6E 20 72 6F 80) + Byte in ro
017B40: 77 20 2B 20 53 63 72 65 65 6E 20 6F 66 66 73 65 w + Screen offse
017B50: 74 0D 0A 0D 0A 20 20 20 20 20 20 20 61 6E 64 3A t.... and:
017B60: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 52 .... R
017B70: 6F 77 20 6E 75 6D 62 65 72 20 20 20 20 3D 20 28 ow number = (
017B80: 31 39 39 20 2D 20 59 20 63 6F 6F 72 64 69 6E 61 199 - Y coordina
017B90: 74 65 29 2F 38 0D 0A 0D 0A 20 20 20 20 20 20 20 te)/8....
017BA0: 20 20 20 20 42 79 74 65 20 69 6E 20 72 6F 77 20 Byte in row
017BB0: 20 20 3D 20 58 20 63 6F 6F 72 64 69 6E 61 74 65 = X coordinate
017BC0: 2F 42 79 74 65 20 77 69 64 74 68 0D 0A 0D 0A 20 /Byte width....
017BD0: 20 20 20 20 20 20 20 20 20 20 53 63 72 65 65 6E Screen
017BE0: 20 6F 66 66 73 65 74 20 69 73 20 74 68 65 20 6F offset is the o
017BF0: 66 66 73 65 74 20 6F 66 20 74 68 65 20 66 69 72 ffset of the fir
017C00: 73 74 20 62 79 74 65 20 74 6F 20 62 65 20 20 64 st byte to be d
017C10: 69 73 70 6C 61 79 65 64 20 20 6F 6E 0D 0A 20 20 isplayed on..
017C20: 20 20 20 20 20 20 20 20 20 74 68 65 20 73 63 72 the scr
017C30: 65 65 6E 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A een.............
017C40: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
017C50: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
017C60: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
017C70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017C80: 20 20 20 70 61 67 65 20 31 35 2E 39 39 0D 0A 0D page 15.99...
017C90: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
017CA0: 20 20 20 20 20 20 42 79 74 65 20 77 69 64 74 68 Byte width
017CB0: 20 20 20 20 69 73 20 74 68 65 20 6E 75 6D 62 65 is the numbe
017CC0: 72 20 6F 66 20 70 69 78 65 6C 73 20 69 6E 20 61 r of pixels in a
017CD0: 20 20 62 79 74 65 20 20 69 6E 20 20 74 68 65 20 byte in the
017CE0: 20 63 75 72 72 65 6E 74 0D 0A 20 20 20 20 20 20 current..
017CF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
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: 20 20 20 6D 6F 64 65 20 28 32 20 69 6E 20 6D 6F mode (2 in mo
017E10: 64 65 20 30 2C 20 34 20 69 6E 20 6D 6F 64 65 20 de 0, 4 in mode
017E20: 31 2C 20 38 20 69 6E 20 6D 6F 64 65 20 32 29 2E 1, 8 in mode 2).
017E30: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 58 20 63 ...... X c
017E40: 6F 6F 72 64 69 6E 61 74 65 20 4D 4F 44 20 42 79 oordinate MOD By
017E50: 74 65 20 77 69 64 74 68 20 69 73 20 75 73 65 64 te width is used
017E60: 20 74 6F 20 20 63 61 6C 63 75 6C 61 74 65 20 20 to calculate
017E70: 74 68 65 20 20 6D 61 73 6B 20 20 66 6F 72 20 20 the mask for
017E80: 74 68 65 0D 0A 20 20 20 20 20 20 20 61 70 70 72 the.. appr
017E90: 6F 70 72 69 61 74 65 20 70 69 78 65 6C 2E 0D 0A opriate pixel...
017EA0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
017EB0: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
017EC0: 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 46 52 ... GRA FR
017ED0: 4F 4D 20 55 53 45 52 0D 0A 20 20 20 20 20 20 20 OM USER..
017EE0: 53 43 52 20 43 48 41 52 20 50 4F 53 49 54 49 4F SCR CHAR POSITIO
017EF0: 4E 0D 0A 20 20 20 20 20 20 20 53 43 52 20 4E 45 N.. SCR NE
017F00: 58 54 20 42 59 54 45 0D 0A 20 20 20 20 20 20 20 XT BYTE..
017F10: 53 43 52 20 4E 45 58 54 20 4C 49 4E 45 0D 0A 20 SCR NEXT LINE..
017F20: 20 20 20 20 20 20 53 43 52 20 50 52 45 56 20 42 SCR PREV B
017F30: 59 54 45 0D 0A 20 20 20 20 20 20 20 53 43 52 20 YTE.. SCR
017F40: 50 52 45 56 20 4C 49 4E 45 0D 0A 0D 0A 0D 0A 0D PREV LINE.......
017F50: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
017F60: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
017F70: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
017F80: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
017F90: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
017FA0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
017FB0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
017FC0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
017FD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
017FE0: 61 67 65 20 31 35 2E 31 30 30 0D 0A 0D 0A 0D 0A age 15.100......
017FF0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 39 ........ 9
018000: 36 3A 20 53 43 52 20 4E 45 58 54 20 42 59 54 45 6: SCR NEXT BYTE
018010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018040: 23 42 43 32 30 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #BC20......
018050: 20 20 53 74 65 70 20 61 20 73 63 72 65 65 6E 20 Step a screen
018060: 61 64 64 72 65 73 73 20 72 69 67 68 74 20 6F 6E address right on
018070: 65 20 62 79 74 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 e byte.......
018080: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D Action:.....
018090: 0A 20 20 20 20 20 20 20 43 61 6C 63 75 6C 61 74 . Calculat
0180A0: 65 20 74 68 65 20 73 63 72 65 65 6E 20 61 64 64 e the screen add
0180B0: 72 65 73 73 20 6F 66 20 74 68 65 20 62 79 74 65 ress of the byte
0180C0: 20 72 69 67 68 74 20 6F 66 20 74 68 65 20 73 75 right of the su
0180D0: 70 70 6C 69 65 64 20 20 73 63 72 65 65 6E 0D 0A pplied screen..
0180E0: 20 20 20 20 20 20 20 61 64 64 72 65 73 73 2E 0D address..
0180F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
018100: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
018110: 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E ... HL con
018120: 74 61 69 6E 73 20 61 20 73 63 72 65 65 6E 20 61 tains a screen a
018130: 64 64 72 65 73 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 ddress.......
018140: 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 Exit conditi
018150: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
018160: 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 HL contains the
018170: 20 75 70 64 61 74 65 64 20 73 63 72 65 65 6E 20 updated screen
018180: 61 64 64 72 65 73 73 2E 0D 0A 0D 0A 0D 0A 20 20 address.......
018190: 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 74 2E AF corrupt.
0181A0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
0181B0: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
0181C0: 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 served.......
0181D0: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A Notes:......
0181E0: 20 20 20 20 20 20 20 4D 6F 76 69 6E 67 20 6F 66 Moving of
0181F0: 66 20 74 68 65 20 65 6E 64 20 6F 66 20 74 68 65 f the end of the
018200: 20 73 63 72 65 65 6E 20 6C 69 6E 65 20 69 73 20 screen line is
018210: 6E 6F 74 20 70 72 65 76 65 6E 74 65 64 2E 20 49 not prevented. I
018220: 74 20 77 69 6C 6C 20 73 69 6D 70 6C 79 0D 0A 20 t will simply..
018230: 20 20 20 20 20 20 70 6F 69 6E 74 20 74 68 65 20 point the
018240: 73 63 72 65 65 6E 20 61 64 64 72 65 73 73 20 20 screen address
018250: 61 74 20 20 74 68 65 20 20 6E 65 78 74 20 20 62 at the next b
018260: 79 74 65 20 20 69 6E 20 20 74 68 65 20 20 73 63 yte in the sc
018270: 72 65 65 6E 20 20 62 6C 6F 63 6B 2E 0D 0A 20 20 reen block...
018280: 20 20 20 20 20 4E 6F 72 6D 61 6C 6C 79 20 74 68 Normally th
018290: 69 73 20 77 69 6C 6C 20 62 65 20 74 68 65 20 66 is will be the f
0182A0: 69 72 73 74 20 62 79 74 65 20 6F 6E 20 61 20 73 irst byte on a s
0182B0: 63 72 65 65 6E 20 6C 69 6E 65 20 38 20 20 73 63 creen line 8 sc
0182C0: 72 65 65 6E 20 20 6C 69 6E 65 73 0D 0A 20 20 20 reen lines..
0182D0: 20 20 20 20 64 6F 77 6E 20 66 72 6F 6D 20 74 68 down from th
0182E0: 65 20 6F 6C 64 20 6C 69 6E 65 20 28 69 2E 65 2E e old line (i.e.
0182F0: 20 64 6F 77 6E 20 6F 6E 65 20 63 68 61 72 61 63 down one charac
018300: 74 65 72 20 72 6F 77 29 2E 20 48 6F 77 65 76 65 ter row). Howeve
018310: 72 2C 20 20 6D 6F 76 69 6E 67 0D 0A 20 20 20 20 r, moving..
018320: 20 20 20 72 69 67 68 74 20 6F 66 66 20 74 68 65 right off the
018330: 20 65 6E 64 20 6F 66 20 74 68 65 20 6C 61 73 74 end of the last
018340: 20 73 63 72 65 65 6E 20 6C 69 6E 65 20 69 6E 20 screen line in
018350: 61 20 62 6C 6F 63 6B 20 77 69 6C 6C 20 70 6F 69 a block will poi
018360: 6E 74 20 74 6F 20 74 68 65 0D 0A 20 20 20 20 20 nt to the..
018370: 20 20 73 63 72 65 65 6E 20 61 64 64 72 65 73 73 screen address
018380: 20 61 74 20 74 68 65 20 73 74 61 72 74 20 6F 66 at the start of
018390: 20 74 68 65 20 34 38 20 62 79 74 65 73 20 69 6E the 48 bytes in
0183A0: 20 74 68 65 20 62 6C 6F 63 6B 20 74 68 61 74 20 the block that
0183B0: 61 72 65 20 20 6E 6F 74 0D 0A 20 20 20 20 20 20 are not..
0183C0: 20 64 69 73 70 6C 61 79 65 64 20 6F 6E 20 74 68 displayed on th
0183D0: 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 e screen.......
0183E0: 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 This routi
0183F0: 6E 65 20 69 73 20 69 6E 74 65 6E 64 65 64 20 74 ne is intended t
018400: 6F 20 62 65 20 75 73 65 64 20 66 6F 72 20 6D 6F o be used for mo
018410: 76 69 6E 67 20 74 68 65 20 73 63 72 65 65 6E 20 ving the screen
018420: 61 64 64 72 65 73 73 20 77 68 65 6E 0D 0A 20 20 address when..
018430: 20 20 20 20 20 70 75 74 74 69 6E 67 20 63 68 61 putting cha
018440: 72 61 63 74 65 72 73 20 6F 72 20 64 72 61 77 69 racters or drawi
018450: 6E 67 20 6C 69 6E 65 73 20 6F 6E 20 74 68 65 20 ng lines on the
018460: 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 screen.........
018470: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
018480: 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tries:......
018490: 20 20 20 53 43 52 20 43 48 41 52 20 50 4F 53 49 SCR CHAR POSI
0184A0: 54 49 4F 4E 0D 0A 20 20 20 20 20 20 20 53 43 52 TION.. SCR
0184B0: 20 44 4F 54 20 50 4F 53 49 54 49 4F 4E 0D 0A 20 DOT POSITION..
0184C0: 20 20 20 20 20 20 53 43 52 20 4E 45 58 54 20 4C SCR NEXT L
0184D0: 49 4E 45 0D 0A 20 20 20 20 20 20 20 53 43 52 20 INE.. SCR
0184E0: 50 52 45 56 20 42 59 54 45 0D 0A 20 20 20 20 20 PREV BYTE..
0184F0: 20 20 53 43 52 20 50 52 45 56 20 4C 49 4E 45 0D SCR PREV LINE.
018500: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
018510: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
018520: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
018530: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
018540: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
018550: 65 20 31 35 2E 31 30 31 0D 0A 0D 0A 0D 0A 0D 0A e 15.101........
018560: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 39 37 3A ...... 97:
018570: 20 53 43 52 20 50 52 45 56 20 42 59 54 45 20 20 SCR PREV BYTE
018580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0185A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
0185B0: 43 32 33 0D 0A 0D 0A 20 20 20 20 20 20 20 53 74 C23.... St
0185C0: 65 70 20 61 20 73 63 72 65 65 6E 20 61 64 64 72 ep a screen addr
0185D0: 65 73 73 20 6C 65 66 74 20 6F 6E 65 20 62 79 74 ess left one byt
0185E0: 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 e....... A
0185F0: 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 ction:......
018600: 20 20 20 43 61 6C 63 75 6C 61 74 65 20 74 68 65 Calculate the
018610: 20 73 63 72 65 65 6E 20 61 64 64 72 65 73 73 20 screen address
018620: 6F 66 20 74 68 65 20 62 79 74 65 20 6C 65 66 74 of the byte left
018630: 20 6F 66 20 74 68 65 20 20 73 75 70 70 6C 69 65 of the supplie
018640: 64 20 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 d screen..
018650: 20 20 61 64 64 72 65 73 73 2E 0D 0A 0D 0A 0D 0A address.......
018660: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
018670: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
018680: 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 HL contains
018690: 20 61 20 73 63 72 65 65 6E 20 61 64 64 72 65 73 a screen addres
0186A0: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 s....... E
0186B0: 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D xit conditions:.
0186C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 ..... HL c
0186D0: 6F 6E 74 61 69 6E 73 20 74 68 65 20 75 70 64 61 ontains the upda
0186E0: 74 65 64 20 73 63 72 65 65 6E 20 61 64 64 72 65 ted screen addre
0186F0: 73 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ss.......
018700: 41 46 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 AF corrupt...
018710: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
018720: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
018730: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E d....... N
018740: 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 otes:......
018750: 20 20 4D 6F 76 69 6E 67 20 6F 66 66 20 74 68 65 Moving off the
018760: 20 73 74 61 72 74 20 6F 66 20 74 68 65 20 73 63 start of the sc
018770: 72 65 65 6E 20 6C 69 6E 65 20 20 69 73 20 20 6E reen line is n
018780: 6F 74 20 20 70 72 65 76 65 6E 74 65 64 2E 20 20 ot prevented.
018790: 49 74 20 20 77 69 6C 6C 0D 0A 20 20 20 20 20 20 It will..
0187A0: 20 73 69 6D 70 6C 79 20 70 6F 69 6E 74 20 74 68 simply point th
0187B0: 65 20 73 63 72 65 65 6E 20 61 64 64 72 65 73 73 e screen address
0187C0: 20 61 74 20 74 68 65 20 70 72 65 76 69 6F 75 73 at the previous
0187D0: 20 20 62 79 74 65 20 20 69 6E 20 20 74 68 65 20 byte in the
0187E0: 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 screen..
0187F0: 62 6C 6F 63 6B 2E 20 4E 6F 72 6D 61 6C 6C 79 20 block. Normally
018800: 74 68 69 73 20 77 69 6C 6C 20 62 65 20 74 68 65 this will be the
018810: 20 6C 61 73 74 20 62 79 74 65 20 6F 6E 20 61 20 last byte on a
018820: 73 63 72 65 65 6E 20 6C 69 6E 65 20 20 38 20 20 screen line 8
018830: 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 6C screen.. l
018840: 69 6E 65 73 20 75 70 20 66 72 6F 6D 20 74 68 65 ines up from the
018850: 20 6F 6C 64 20 6C 69 6E 65 20 28 69 2E 65 2E 20 old line (i.e.
018860: 64 6F 77 6E 20 20 6F 6E 65 20 20 63 68 61 72 61 down one chara
018870: 63 74 65 72 20 20 72 6F 77 29 2E 20 20 48 6F 77 cter row). How
018880: 65 76 65 72 2C 0D 0A 20 20 20 20 20 20 20 6D 6F ever,.. mo
018890: 76 69 6E 67 20 6C 65 66 74 20 6F 66 66 20 74 68 ving left off th
0188A0: 65 20 73 74 61 72 74 20 6F 66 20 74 68 65 20 74 e start of the t
0188B0: 6F 70 20 73 63 72 65 65 6E 20 6C 69 6E 65 20 69 op screen line i
0188C0: 6E 20 61 20 62 6C 6F 63 6B 20 77 69 6C 6C 20 70 n a block will p
0188D0: 6F 69 6E 74 0D 0A 20 20 20 20 20 20 20 74 6F 20 oint.. to
0188E0: 74 68 65 20 73 63 72 65 65 6E 20 61 64 64 72 65 the screen addre
0188F0: 73 73 20 61 74 20 74 68 65 20 6C 61 73 74 20 6F ss at the last o
018900: 66 20 74 68 65 20 34 38 20 62 79 74 65 73 20 69 f the 48 bytes i
018910: 6E 20 20 74 68 65 20 20 62 6C 6F 63 6B 20 20 74 n the block t
018920: 68 61 74 0D 0A 20 20 20 20 20 20 20 61 72 65 20 hat.. are
018930: 6E 6F 74 20 64 69 73 70 6C 61 79 65 64 20 6F 6E not displayed on
018940: 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A the screen.....
018950: 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F .. This ro
018960: 75 74 69 6E 65 20 69 73 20 69 6E 74 65 6E 64 65 utine is intende
018970: 64 20 74 6F 20 62 65 20 75 73 65 64 20 66 6F 72 d to be used for
018980: 20 6D 6F 76 69 6E 67 20 74 68 65 20 73 63 72 65 moving the scre
018990: 65 6E 20 61 64 64 72 65 73 73 20 77 68 65 6E 0D en address when.
0189A0: 0A 20 20 20 20 20 20 20 70 75 74 74 69 6E 67 20 . putting
0189B0: 63 68 61 72 61 63 74 65 72 73 20 6F 72 20 64 72 characters or dr
0189C0: 61 77 69 6E 67 20 6C 69 6E 65 73 20 6F 6E 20 74 awing lines on t
0189D0: 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A he screen.......
0189E0: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
0189F0: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 entries:......
018A00: 20 20 20 20 20 20 53 43 52 20 43 48 41 52 20 50 SCR CHAR P
018A10: 4F 53 49 54 49 4F 4E 0D 0A 20 20 20 20 20 20 20 OSITION..
018A20: 53 43 52 20 44 4F 54 20 50 4F 53 49 54 49 4F 4E SCR DOT POSITION
018A30: 0D 0A 20 20 20 20 20 20 20 53 43 52 20 4E 45 58 .. SCR NEX
018A40: 54 20 42 59 54 45 0D 0A 20 20 20 20 20 20 20 53 T BYTE.. S
018A50: 43 52 20 4E 45 58 54 20 4C 49 4E 45 0D 0A 20 20 CR NEXT LINE..
018A60: 20 20 20 20 20 53 43 52 20 50 52 45 56 20 4C 49 SCR PREV LI
018A70: 4E 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A NE..............
018A80: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
018A90: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
018AA0: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
018AB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018AC0: 20 20 70 61 67 65 20 31 35 2E 31 30 32 0D 0A 0D page 15.102...
018AD0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
018AE0: 20 20 39 38 3A 20 53 43 52 20 4E 45 58 54 20 4C 98: SCR NEXT L
018AF0: 49 4E 45 20 20 20 20 20 20 20 20 20 20 20 20 20 INE
018B00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018B10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018B20: 20 20 20 23 42 43 32 36 0D 0A 0D 0A 0D 0A 20 20 #BC26......
018B30: 20 20 20 20 20 53 74 65 70 20 61 20 73 63 72 65 Step a scre
018B40: 65 6E 20 61 64 64 72 65 73 73 20 64 6F 77 6E 20 en address down
018B50: 6F 6E 65 20 6C 69 6E 65 2E 0D 0A 0D 0A 0D 0A 20 one line.......
018B60: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
018B70: 0A 0D 0A 20 20 20 20 20 20 20 43 61 6C 63 75 6C ... Calcul
018B80: 61 74 65 20 74 68 65 20 73 63 72 65 65 6E 20 61 ate the screen a
018B90: 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 62 79 ddress of the by
018BA0: 74 65 20 20 62 65 6C 6F 77 20 20 74 68 65 20 20 te below the
018BB0: 73 75 70 70 6C 69 65 64 20 20 73 63 72 65 65 6E supplied screen
018BC0: 0D 0A 20 20 20 20 20 20 20 61 64 64 72 65 73 73 .. address
018BD0: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
018BE0: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
018BF0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C :...... HL
018C00: 20 63 6F 6E 74 61 69 6E 73 20 61 20 73 63 72 65 contains a scre
018C10: 65 6E 20 61 64 64 72 65 73 73 2E 0D 0A 0D 0A 0D en address......
018C20: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
018C30: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
018C40: 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 HL contains
018C50: 20 74 68 65 20 75 70 64 61 74 65 64 20 73 63 72 the updated scr
018C60: 65 65 6E 20 61 64 64 72 65 73 73 2E 0D 0A 0D 0A een address.....
018C70: 0D 0A 20 20 20 20 20 20 20 41 46 20 63 6F 72 72 .. AF corr
018C80: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C upt... All
018C90: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
018CA0: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
018CB0: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
018CC0: 0D 0A 20 20 20 20 20 20 20 4D 6F 76 69 6E 67 20 .. Moving
018CD0: 6F 66 66 20 74 68 65 20 20 62 6F 74 74 6F 6D 20 off the bottom
018CE0: 20 6F 66 20 20 74 68 65 20 20 73 63 72 65 65 6E of the screen
018CF0: 20 20 69 73 20 20 6E 6F 74 20 20 70 72 65 76 65 is not preve
018D00: 6E 74 65 64 20 20 28 61 6E 64 20 20 6E 6F 74 0D nted (and not.
018D10: 0A 20 20 20 20 20 20 20 72 65 63 6F 6D 6D 65 6E . recommen
018D20: 64 65 64 29 2E 20 41 66 74 65 72 20 6D 6F 76 69 ded). After movi
018D30: 6E 67 20 6F 66 66 20 74 68 65 20 62 6F 74 74 6F ng off the botto
018D40: 6D 20 74 68 65 20 73 63 72 65 65 6E 20 20 61 64 m the screen ad
018D50: 64 72 65 73 73 20 20 69 73 20 20 6E 6F 74 0D 0A dress is not..
018D60: 20 20 20 20 20 20 20 75 73 65 66 75 6C 2E 0D 0A useful...
018D70: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 .... This
018D80: 72 6F 75 74 69 6E 65 20 69 73 20 69 6E 74 65 6E routine is inten
018D90: 64 65 64 20 74 6F 20 62 65 20 75 73 65 64 20 66 ded to be used f
018DA0: 6F 72 20 6D 6F 76 69 6E 67 20 74 68 65 20 73 63 or moving the sc
018DB0: 72 65 65 6E 20 61 64 64 72 65 73 73 20 77 68 65 reen address whe
018DC0: 6E 0D 0A 20 20 20 20 20 20 20 70 75 74 74 69 6E n.. puttin
018DD0: 67 20 63 68 61 72 61 63 74 65 72 73 20 6F 72 20 g characters or
018DE0: 64 72 61 77 69 6E 67 20 6C 69 6E 65 73 20 6F 6E drawing lines on
018DF0: 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A the screen.....
018E00: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
018E10: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D ed entries:.....
018E20: 0A 20 20 20 20 20 20 20 53 43 52 20 43 48 41 52 . SCR CHAR
018E30: 20 50 4F 53 49 54 49 4F 4E 0D 0A 20 20 20 20 20 POSITION..
018E40: 20 20 53 43 52 20 44 4F 54 20 50 4F 53 49 54 49 SCR DOT POSITI
018E50: 4F 4E 0D 0A 20 20 20 20 20 20 20 53 43 52 20 4E ON.. SCR N
018E60: 45 58 54 20 42 59 54 45 0D 0A 20 20 20 20 20 20 EXT BYTE..
018E70: 20 53 43 52 20 50 52 45 56 20 42 59 54 45 0D 0A SCR PREV BYTE..
018E80: 20 20 20 20 20 20 20 53 43 52 20 50 52 45 56 20 SCR PREV
018E90: 4C 49 4E 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A LINE............
018EA0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
018EB0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
018EC0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
018ED0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018EE0: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
018EF0: 35 2E 31 30 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 5.103...........
018F00: 0A 0D 0A 20 20 20 20 20 20 20 39 39 3A 20 53 43 ... 99: SC
018F10: 52 20 50 52 45 56 20 4C 49 4E 45 20 20 20 20 20 R PREV LINE
018F20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018F30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018F40: 20 20 20 20 20 20 20 20 20 20 20 23 42 43 32 39 #BC29
018F50: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 74 65 ...... Ste
018F60: 70 20 61 20 73 63 72 65 65 6E 20 61 64 64 72 65 p a screen addre
018F70: 73 73 20 75 70 20 6F 6E 65 20 6C 69 6E 65 2E 0D ss up one line..
018F80: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
018F90: 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 on:......
018FA0: 43 61 6C 63 75 6C 61 74 65 20 74 68 65 20 73 63 Calculate the sc
018FB0: 72 65 65 6E 20 61 64 64 72 65 73 73 20 6F 66 20 reen address of
018FC0: 74 68 65 20 62 79 74 65 20 20 61 62 6F 76 65 20 the byte above
018FD0: 20 74 68 65 20 20 73 75 70 70 6C 69 65 64 20 20 the supplied
018FE0: 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 61 screen.. a
018FF0: 64 64 72 65 73 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 ddress.......
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: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
019110: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
019120: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 61 20 HL contains a
019130: 73 63 72 65 65 6E 20 61 64 64 72 65 73 73 2E 0D screen address..
019140: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
019150: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
019160: 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 .. HL cont
019170: 61 69 6E 73 20 74 68 65 20 75 70 64 61 74 65 64 ains the updated
019180: 20 73 63 72 65 65 6E 20 61 64 64 72 65 73 73 2E screen address.
019190: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 ...... AF
0191A0: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
0191B0: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
0191C0: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
0191D0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
0191E0: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4D s:...... M
0191F0: 6F 76 69 6E 67 20 20 6F 66 66 20 20 74 68 65 20 oving off the
019200: 20 74 6F 70 20 20 6F 66 20 20 74 68 65 20 20 73 top of the s
019210: 63 72 65 65 6E 20 20 69 73 20 20 6E 6F 74 20 20 creen is not
019220: 70 72 65 76 65 6E 74 65 64 20 20 28 61 6E 64 20 prevented (and
019230: 20 20 6E 6F 74 0D 0A 20 20 20 20 20 20 20 72 65 not.. re
019240: 63 6F 6D 6D 65 6E 64 65 64 29 2E 20 41 66 74 65 commended). Afte
019250: 72 20 6D 6F 76 69 6E 67 20 6F 66 66 20 74 68 65 r moving off the
019260: 20 20 74 6F 70 20 20 74 68 65 20 20 73 63 72 65 top the scre
019270: 65 6E 20 20 61 64 64 72 65 73 73 20 20 69 73 20 en address is
019280: 20 6E 6F 74 0D 0A 20 20 20 20 20 20 20 75 73 65 not.. use
019290: 66 75 6C 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ful.......
0192A0: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 69 73 This routine is
0192B0: 20 69 6E 74 65 6E 64 65 64 20 74 6F 20 62 65 20 intended to be
0192C0: 75 73 65 64 20 66 6F 72 20 6D 6F 76 69 6E 67 20 used for moving
0192D0: 74 68 65 20 73 63 72 65 65 6E 20 61 64 64 72 65 the screen addre
0192E0: 73 73 20 77 68 65 6E 0D 0A 20 20 20 20 20 20 20 ss when..
0192F0: 70 75 74 74 69 6E 67 20 63 68 61 72 61 63 74 65 putting characte
019300: 72 73 20 6F 72 20 64 72 61 77 69 6E 67 20 6C 69 rs or drawing li
019310: 6E 65 73 20 6F 6E 20 74 68 65 20 73 63 72 65 65 nes on the scree
019320: 6E 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 n.........
019330: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
019340: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 43 :...... SC
019350: 52 20 43 48 41 52 20 50 4F 53 49 54 49 4F 4E 0D R CHAR POSITION.
019360: 0A 20 20 20 20 20 20 20 53 43 52 20 44 4F 54 20 . SCR DOT
019370: 50 4F 53 49 54 49 4F 4E 0D 0A 20 20 20 20 20 20 POSITION..
019380: 20 53 43 52 20 4E 45 58 54 20 42 59 54 45 0D 0A SCR NEXT BYTE..
019390: 20 20 20 20 20 20 20 53 43 52 20 4E 45 58 54 20 SCR NEXT
0193A0: 4C 49 4E 45 0D 0A 20 20 20 20 20 20 20 53 43 52 LINE.. SCR
0193B0: 20 50 52 45 56 20 42 59 54 45 0D 0A 0D 0A 0D 0A PREV BYTE......
0193C0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
0193D0: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
0193E0: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
0193F0: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
019400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019410: 70 61 67 65 20 31 35 2E 31 30 34 0D 0A 0D 0A 0D page 15.104.....
019420: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
019430: 31 30 30 3A 20 53 43 52 20 49 4E 4B 20 45 4E 43 100: SCR INK ENC
019440: 4F 44 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ODE
019450: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019470: 20 23 42 43 32 43 0D 0A 0D 0A 20 20 20 20 20 20 #BC2C....
019480: 20 45 6E 63 6F 64 65 20 61 6E 20 69 6E 6B 20 74 Encode an ink t
019490: 6F 20 63 6F 76 65 72 20 61 6C 6C 20 70 69 78 65 o cover all pixe
0194A0: 6C 73 20 69 6E 20 61 20 62 79 74 65 2E 0D 0A 0D ls in a byte....
0194B0: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
0194C0: 0A 0D 0A 20 20 20 20 20 20 20 43 6F 6E 76 65 72 ... Conver
0194D0: 74 20 61 6E 20 69 6E 6B 20 74 6F 20 74 68 65 20 t an ink to the
0194E0: 65 6E 63 6F 64 65 64 20 66 6F 72 6D 20 74 68 61 encoded form tha
0194F0: 74 20 77 69 6C 6C 20 73 65 74 20 61 6C 6C 20 70 t will set all p
019500: 69 78 65 6C 73 20 69 6E 20 61 20 20 62 79 74 65 ixels in a byte
019510: 0D 0A 20 20 20 20 20 20 20 74 6F 20 74 68 65 20 .. to the
019520: 69 6E 6B 2E 20 54 68 69 73 20 65 6E 63 6F 64 65 ink. This encode
019530: 64 20 69 6E 6B 20 20 63 61 6E 20 20 74 68 65 6E d ink can then
019540: 20 20 62 65 20 20 6D 61 73 6B 65 64 20 20 74 6F be masked to
019550: 20 20 67 65 6E 65 72 61 74 65 20 20 74 68 65 0D generate the.
019560: 0A 20 20 20 20 20 20 20 61 70 70 72 6F 70 72 69 . appropri
019570: 61 74 65 20 76 61 6C 75 65 20 74 6F 20 73 65 74 ate value to set
019580: 20 61 20 73 69 6E 67 6C 65 20 70 69 78 65 6C 20 a single pixel
019590: 74 6F 20 74 68 65 20 69 6E 6B 2E 0D 0A 0D 0A 20 to the ink.....
0195A0: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
0195B0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
0195C0: 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 A contains an
0195D0: 69 6E 6B 20 6E 75 6D 62 65 72 2E 0D 0A 0D 0A 20 ink number.....
0195E0: 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 Exit condi
0195F0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tions:....
019600: 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 A contains the
019610: 65 6E 63 6F 64 65 64 20 69 6E 6B 2E 0D 0A 0D 0A encoded ink.....
019620: 20 20 20 20 20 20 20 46 6C 61 67 73 20 63 6F 72 Flags cor
019630: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C rupt... Al
019640: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
019650: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
019660: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
019670: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 65 6E ... The en
019680: 63 6F 64 69 6E 67 20 69 73 20 6E 6F 74 20 74 72 coding is not tr
019690: 69 76 69 61 6C 20 61 73 20 74 68 65 20 70 69 78 ivial as the pix
0196A0: 65 6C 73 20 69 6E 20 61 20 20 62 79 74 65 20 20 els in a byte
0196B0: 61 72 65 20 20 69 6E 74 65 72 6C 65 61 76 65 64 are interleaved
0196C0: 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 61 6C 73 .. and als
0196D0: 6F 20 74 68 65 20 62 69 74 73 20 69 6E 20 61 20 o the bits in a
0196E0: 70 69 78 65 6C 20 61 72 65 20 6E 6F 74 20 69 6E pixel are not in
0196F0: 20 74 68 65 20 6F 62 76 69 6F 75 73 20 6F 72 64 the obvious ord
019700: 65 72 2E 20 20 54 68 65 20 20 70 69 78 65 6C 0D er. The pixel.
019710: 0A 20 20 20 20 20 20 20 62 69 74 73 20 61 72 65 . bits are
019720: 20 28 6D 6F 73 74 20 73 69 67 6E 69 66 69 63 61 (most significa
019730: 6E 74 20 74 6F 20 6C 65 61 73 74 20 73 69 67 6E nt to least sign
019740: 69 66 69 63 61 6E 74 29 3A 0D 0A 0D 0A 20 20 20 ificant):....
019750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019760: 20 20 20 20 20 20 20 4D 6F 64 65 20 30 20 20 20 Mode 0
019770: 20 20 20 20 20 20 20 20 20 20 20 4D 6F 64 65 20 Mode
019780: 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4D 1 M
019790: 6F 64 65 20 32 0D 0A 20 20 20 20 20 20 20 4C 65 ode 2.. Le
0197A0: 66 74 6D 6F 73 74 20 70 69 78 65 6C 3A 20 20 20 ftmost pixel:
0197B0: 20 42 69 74 73 20 31 2C 35 2C 33 2C 37 20 20 20 Bits 1,5,3,7
0197C0: 20 20 20 20 20 42 69 74 73 20 33 2C 37 20 20 20 Bits 3,7
0197D0: 20 20 20 20 20 20 20 20 20 42 69 74 20 37 0D 0A Bit 7..
0197E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0197F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019820: 20 20 42 69 74 20 36 0D 0A 20 20 20 20 20 20 20 Bit 6..
019830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019850: 20 20 20 20 20 20 20 42 69 74 73 20 32 2C 36 20 Bits 2,6
019860: 20 20 20 20 20 20 20 20 20 20 20 42 69 74 20 35 Bit 5
019870: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
019880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0198A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0198B0: 20 20 20 20 42 69 74 20 34 0D 0A 20 20 20 20 20 Bit 4..
0198C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0198D0: 20 20 20 20 20 42 69 74 73 20 30 2C 34 2C 32 2C Bits 0,4,2,
0198E0: 36 20 20 20 20 20 20 20 20 42 69 74 73 20 31 2C 6 Bits 1,
0198F0: 35 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 5 Bit
019900: 20 33 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 3..
019910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019940: 20 20 20 20 20 20 42 69 74 20 32 0D 0A 20 20 20 Bit 2..
019950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019970: 20 20 20 20 20 20 20 20 20 20 20 42 69 74 73 20 Bits
019980: 30 2C 34 20 20 20 20 20 20 20 20 20 20 20 20 42 0,4 B
019990: 69 74 20 31 0D 0A 20 20 20 20 20 20 20 52 69 67 it 1.. Rig
0199A0: 68 74 6D 6F 73 74 20 70 69 78 65 6C 3A 20 20 20 htmost pixel:
0199B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0199C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0199D0: 20 20 20 20 20 20 20 20 42 69 74 20 30 0D 0A 0D Bit 0...
0199E0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 54 65 ... The Te
0199F0: 78 74 20 61 6E 64 20 47 72 61 70 68 69 63 73 20 xt and Graphics
019A00: 56 44 55 73 20 73 74 6F 72 65 20 74 68 65 69 72 VDUs store their
019A10: 20 70 65 6E 20 20 61 6E 64 20 20 70 61 70 65 72 pen and paper
019A20: 20 20 69 6E 6B 73 20 20 69 6E 20 20 74 68 69 73 inks in this
019A30: 0D 0A 20 20 20 20 20 20 20 65 6E 63 6F 64 65 64 .. encoded
019A40: 20 66 6F 72 6D 20 66 6F 72 20 65 61 73 65 20 6F form for ease o
019A50: 66 20 75 73 65 20 69 6E 74 65 72 6E 61 6C 6C 79 f use internally
019A60: 2E 20 54 68 69 73 20 20 73 61 76 65 73 20 20 74 . This saves t
019A70: 69 6D 65 20 20 63 6F 6E 76 65 72 74 69 6E 67 0D ime converting.
019A80: 0A 20 20 20 20 20 20 20 74 68 65 20 69 6E 6B 20 . the ink
019A90: 66 6F 72 20 65 61 63 68 20 70 69 78 65 6C 20 70 for each pixel p
019AA0: 6C 6F 74 74 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 lotted.......
019AB0: 20 20 20 20 54 68 65 20 65 6E 63 6F 64 69 6E 67 The encoding
019AC0: 20 69 73 20 64 69 66 66 65 72 65 6E 74 20 69 6E is different in
019AD0: 20 64 69 66 66 65 72 65 6E 74 20 6D 6F 64 65 73 different modes
019AE0: 20 61 6E 64 20 73 6F 20 61 6C 6C 20 69 6E 6B 73 and so all inks
019AF0: 20 20 68 61 76 65 20 20 74 6F 0D 0A 20 20 20 20 have to..
019B00: 20 20 20 62 65 20 72 65 2D 65 6E 63 6F 64 65 64 be re-encoded
019B10: 20 77 68 65 6E 20 74 68 65 20 73 63 72 65 65 6E when the screen
019B20: 20 6D 6F 64 65 20 69 73 20 63 68 61 6E 67 65 64 mode is changed
019B30: 2E 20 53 43 52 20 53 45 54 20 4D 4F 44 45 20 64 . SCR SET MODE d
019B40: 6F 65 73 20 20 74 68 69 73 0D 0A 20 20 20 20 20 oes this..
019B50: 20 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 automatically
019B60: 66 6F 72 20 74 68 65 20 54 65 78 74 20 56 44 55 for the Text VDU
019B70: 20 61 6E 64 20 47 72 61 70 68 69 63 73 20 56 44 and Graphics VD
019B80: 55 20 70 65 6E 20 61 6E 64 20 70 61 70 65 72 20 U pen and paper
019B90: 69 6E 6B 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 inks.........
019BA0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
019BB0: 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ies:......
019BC0: 20 53 43 52 20 49 4E 4B 20 44 45 43 4F 44 45 0D SCR INK DECODE.
019BD0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
019BE0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
019BF0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
019C00: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
019C10: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
019C20: 65 20 31 35 2E 31 30 35 0D 0A 0D 0A 0D 0A 0D 0A e 15.105........
019C30: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 30 31 ...... 101
019C40: 3A 20 53 43 52 20 49 4E 4B 20 44 45 43 4F 44 45 : SCR INK DECODE
019C50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019C60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019C70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
019C80: 43 32 46 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 C2F......
019C90: 44 65 63 6F 64 65 20 61 6E 20 65 6E 63 6F 64 65 Decode an encode
019CA0: 64 20 69 6E 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 d ink.......
019CB0: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A Action:......
019CC0: 20 20 20 20 20 20 20 43 6F 6E 76 65 72 74 20 61 Convert a
019CD0: 6E 20 65 6E 63 6F 64 65 64 20 69 6E 6B 20 74 6F n encoded ink to
019CE0: 20 74 68 65 20 61 70 70 72 6F 70 72 69 61 74 65 the appropriate
019CF0: 20 69 6E 6B 20 6E 75 6D 62 65 72 2E 0D 0A 0D 0A ink number.....
019D00: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
019D10: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
019D20: 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E A contain
019D30: 73 20 61 6E 20 65 6E 63 6F 64 65 64 20 69 6E 6B s an encoded ink
019D40: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
019D50: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
019D60: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 6F 6E .... A con
019D70: 74 61 69 6E 73 20 74 68 65 20 69 6E 6B 20 6E 75 tains the ink nu
019D80: 6D 62 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 mber.......
019D90: 20 20 46 6C 61 67 73 20 63 6F 72 72 75 70 74 2E Flags corrupt.
019DA0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
019DB0: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
019DC0: 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 served.......
019DD0: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A Notes:......
019DE0: 20 20 20 20 20 20 20 54 68 65 20 64 65 63 6F 64 The decod
019DF0: 69 6E 67 20 69 73 20 70 65 72 66 6F 72 6D 65 64 ing is performed
019E00: 20 62 79 20 64 65 63 6F 64 69 6E 67 20 74 68 65 by decoding the
019E10: 20 69 6E 6B 20 6F 66 20 74 68 65 20 6C 65 66 74 ink of the left
019E20: 6D 6F 73 74 20 70 69 78 65 6C 20 69 6E 0D 0A 20 most pixel in..
019E30: 20 20 20 20 20 20 74 68 65 20 65 6E 63 6F 64 65 the encode
019E40: 64 20 69 6E 6B 2E 20 54 68 65 20 69 6E 6B 20 66 d ink. The ink f
019E50: 6F 72 20 74 68 69 73 20 70 69 78 65 6C 20 69 73 or this pixel is
019E60: 20 65 6E 63 6F 64 65 64 20 20 69 6E 20 20 74 68 encoded in th
019E70: 65 20 20 66 6F 6C 6C 6F 77 69 6E 67 0D 0A 20 20 e following..
019E80: 20 20 20 20 20 62 69 74 73 20 28 6D 6F 73 74 20 bits (most
019E90: 73 69 67 6E 69 66 69 63 61 6E 74 20 74 6F 20 6C significant to l
019EA0: 65 61 73 74 20 73 69 67 6E 69 66 69 63 61 6E 74 east significant
019EB0: 29 20 20 69 6E 20 20 74 68 65 20 20 76 61 72 69 ) in the vari
019EC0: 6F 75 73 20 20 73 63 72 65 65 6E 0D 0A 20 20 20 ous screen..
019ED0: 20 20 20 20 6D 6F 64 65 73 3A 0D 0A 0D 0A 0D 0A modes:......
019EE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019EF0: 4D 6F 64 65 20 30 3A 20 20 20 42 69 74 73 20 31 Mode 0: Bits 1
019F00: 2C 35 2C 33 2C 37 0D 0A 20 20 20 20 20 20 20 20 ,5,3,7..
019F10: 20 20 20 20 20 20 20 20 4D 6F 64 65 20 31 3A 20 Mode 1:
019F20: 20 20 42 69 74 73 20 33 2C 37 0D 0A 20 20 20 20 Bits 3,7..
019F30: 20 20 20 20 20 20 20 20 20 20 20 20 4D 6F 64 65 Mode
019F40: 20 32 3A 20 20 20 42 69 74 20 37 0D 0A 0D 0A 0D 2: Bit 7.....
019F50: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
019F60: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A d entries:......
019F70: 20 20 20 20 20 20 20 53 43 52 20 49 4E 4B 20 45 SCR INK E
019F80: 4E 43 4F 44 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D NCODE...........
019F90: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ...............
019FA0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
019FB0: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
019FC0: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
019FD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019FE0: 20 70 61 67 65 20 31 35 2E 31 30 36 0D 0A 0D 0A page 15.106....
019FF0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
01A000: 20 31 30 32 3A 20 53 43 52 20 53 45 54 20 49 4E 102: SCR SET IN
01A010: 4B 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 K
01A020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A040: 20 20 23 42 43 33 32 0D 0A 0D 0A 20 20 20 20 20 #BC32....
01A050: 20 20 53 65 74 20 74 68 65 20 63 6F 6C 6F 75 72 Set the colour
01A060: 73 20 69 6E 20 77 68 69 63 68 20 74 6F 20 64 69 s in which to di
01A070: 73 70 6C 61 79 20 61 6E 20 69 6E 6B 2E 0D 0A 0D splay an ink....
01A080: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
01A090: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 :.... Set
01A0A0: 77 68 69 63 68 20 63 6F 6C 6F 75 72 73 20 77 69 which colours wi
01A0B0: 6C 6C 20 62 65 20 75 73 65 64 20 74 6F 20 64 69 ll be used to di
01A0C0: 73 70 6C 61 79 20 61 6E 20 69 6E 6B 2E 20 49 66 splay an ink. If
01A0D0: 20 74 68 65 20 20 74 77 6F 20 20 63 6F 6C 6F 75 the two colou
01A0E0: 72 73 0D 0A 20 20 20 20 20 20 20 61 72 65 20 74 rs.. are t
01A0F0: 68 65 20 73 61 6D 65 20 74 68 65 6E 20 74 68 65 he same then the
01A100: 20 69 6E 6B 20 77 69 6C 6C 20 72 65 6D 61 69 6E ink will remain
01A110: 20 61 20 73 74 65 61 64 79 20 63 6F 6C 6F 75 72 a steady colour
01A120: 2E 20 49 66 20 74 68 65 20 20 63 6F 6C 6F 75 72 . If the colour
01A130: 73 0D 0A 20 20 20 20 20 20 20 61 72 65 20 64 69 s.. are di
01A140: 66 66 65 72 65 6E 74 20 74 68 65 6E 20 74 68 65 fferent then the
01A150: 20 69 6E 6B 20 77 69 6C 6C 20 61 6C 74 65 72 6E ink will altern
01A160: 61 74 65 20 62 65 74 77 65 65 6E 20 74 68 65 73 ate between thes
01A170: 65 20 74 77 6F 20 63 6F 6C 6F 75 72 73 2E 0D 0A e two colours...
01A180: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
01A190: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
01A1A0: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
01A1B0: 61 6E 20 69 6E 6B 20 6E 75 6D 62 65 72 2E 0D 0A an ink number...
01A1C0: 20 20 20 20 20 20 20 42 20 63 6F 6E 74 61 69 6E B contain
01A1D0: 73 20 74 68 65 20 66 69 72 73 74 20 63 6F 6C 6F s the first colo
01A1E0: 75 72 2E 0D 0A 20 20 20 20 20 20 20 43 20 63 6F ur... C co
01A1F0: 6E 74 61 69 6E 73 20 74 68 65 20 73 65 63 6F 6E ntains the secon
01A200: 64 20 63 6F 6C 6F 75 72 2E 0D 0A 0D 0A 20 20 20 d colour.....
01A210: 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 Exit conditi
01A220: 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ons:.... A
01A230: 46 2C 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 63 F,BC,DE and HL c
01A240: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
01A250: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
01A260: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
01A270: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
01A280: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 :.... The
01A290: 69 6E 6B 20 6E 75 6D 62 65 72 20 69 73 20 6D 61 ink number is ma
01A2A0: 73 6B 65 64 20 77 69 74 68 20 23 30 46 20 74 6F sked with #0F to
01A2B0: 20 6D 61 6B 65 20 73 75 72 65 20 69 74 20 69 73 make sure it is
01A2C0: 20 20 6C 65 67 61 6C 2C 20 20 61 6E 64 20 20 74 legal, and t
01A2D0: 68 65 0D 0A 20 20 20 20 20 20 20 63 6F 6C 6F 75 he.. colou
01A2E0: 72 73 20 61 72 65 20 6D 61 73 6B 65 64 20 77 69 rs are masked wi
01A2F0: 74 68 20 23 31 46 2E 20 43 6F 6C 6F 75 72 73 20 th #1F. Colours
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: 32 37 2E 2E 33 31 20 61 72 65 20 6E 6F 74 20 69 27..31 are not i
01A410: 6E 74 65 6E 64 65 64 20 66 6F 72 20 20 75 73 65 ntended for use
01A420: 3B 0D 0A 0D 0A 20 20 20 20 20 20 20 74 68 65 79 ;.... they
01A430: 20 61 72 65 20 6D 65 72 65 6C 79 20 64 75 70 6C are merely dupl
01A440: 69 63 61 74 65 73 20 6F 66 20 6F 74 68 65 72 20 icates of other
01A450: 63 6F 6C 6F 75 72 73 20 61 76 61 69 6C 61 62 6C colours availabl
01A460: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 e..... The
01A470: 20 6E 65 77 20 63 6F 6C 6F 75 72 73 20 66 6F 72 new colours for
01A480: 20 61 6E 20 69 6E 6B 20 61 72 65 20 6E 6F 74 20 an ink are not
01A490: 73 65 6E 74 20 74 6F 20 74 68 65 20 20 68 61 72 sent to the har
01A4A0: 64 77 61 72 65 20 20 69 6D 6D 65 64 69 61 74 65 dware immediate
01A4B0: 6C 79 2E 0D 0A 20 20 20 20 20 20 20 54 68 65 79 ly... They
01A4C0: 20 61 72 65 20 73 74 6F 72 65 64 20 61 6E 64 20 are stored and
01A4D0: 77 69 6C 6C 20 61 70 70 65 61 72 20 6F 6E 20 74 will appear on t
01A4E0: 68 65 20 20 73 63 72 65 65 6E 20 20 77 68 65 6E he screen when
01A4F0: 20 20 74 68 65 20 20 6E 65 78 74 20 20 66 72 61 the next fra
01A500: 6D 65 0D 0A 20 20 20 20 20 20 20 66 6C 79 62 61 me.. flyba
01A510: 63 6B 20 6F 63 63 75 72 73 2E 0D 0A 0D 0A 20 20 ck occurs.....
01A520: 20 20 20 20 20 54 68 65 20 6C 65 6E 67 74 68 20 The length
01A530: 6F 66 20 74 69 6D 65 20 66 6F 72 20 77 68 69 63 of time for whic
01A540: 68 20 65 61 63 68 20 63 6F 6C 6F 75 72 20 69 73 h each colour is
01A550: 20 64 69 73 70 6C 61 79 65 64 20 20 6F 6E 20 20 displayed on
01A560: 74 68 65 20 20 73 63 72 65 65 6E 0D 0A 20 20 20 the screen..
01A570: 20 20 20 20 63 61 6E 20 62 65 20 73 65 74 20 62 can be set b
01A580: 79 20 63 61 6C 6C 69 6E 67 20 53 43 52 20 53 45 y calling SCR SE
01A590: 54 20 46 4C 41 53 48 49 4E 47 2E 0D 0A 0D 0A 20 T FLASHING.....
01A5A0: 20 20 20 20 20 20 54 68 65 20 69 6E 6B 73 20 61 The inks a
01A5B0: 72 65 20 73 65 74 20 74 6F 20 74 68 65 69 72 20 re set to their
01A5C0: 64 65 66 61 75 6C 74 20 63 6F 6C 6F 75 72 73 20 default colours
01A5D0: 61 74 20 45 4D 53 20 61 6E 64 20 77 68 65 6E 20 at EMS and when
01A5E0: 53 43 52 20 52 45 53 45 54 20 69 73 0D 0A 20 20 SCR RESET is..
01A5F0: 20 20 20 20 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A called.....
01A600: 20 20 20 20 20 20 20 54 68 65 20 76 61 72 69 6F The vario
01A610: 75 73 20 63 6F 6C 6F 75 72 73 20 61 76 61 69 6C us colours avail
01A620: 61 62 6C 65 20 61 6E 64 20 74 68 65 20 20 64 65 able and the de
01A630: 66 61 75 6C 74 20 20 69 6E 6B 20 20 63 6F 6C 6F fault ink colo
01A640: 75 72 73 20 20 73 65 74 20 20 61 72 65 0D 0A 20 urs set are..
01A650: 20 20 20 20 20 20 64 65 73 63 72 69 62 65 64 20 described
01A660: 69 6E 20 41 70 70 65 6E 64 69 78 20 56 2E 0D 0A in Appendix V...
01A670: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
01A680: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
01A690: 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 53 45 ... GRA SE
01A6A0: 54 20 50 41 50 45 52 0D 0A 20 20 20 20 20 20 20 T PAPER..
01A6B0: 47 52 41 20 53 45 54 20 50 45 4E 0D 0A 20 20 20 GRA SET PEN..
01A6C0: 20 20 20 20 53 43 52 20 47 45 54 20 49 4E 4B 0D SCR GET INK.
01A6D0: 0A 20 20 20 20 20 20 20 53 43 52 20 53 45 54 20 . SCR SET
01A6E0: 42 4F 52 44 45 52 0D 0A 20 20 20 20 20 20 20 53 BORDER.. S
01A6F0: 43 52 20 53 45 54 20 46 4C 41 53 48 49 4E 47 0D CR SET FLASHING.
01A700: 0A 20 20 20 20 20 20 20 54 58 54 20 53 45 54 20 . TXT SET
01A710: 50 41 50 45 52 0D 0A 20 20 20 20 20 20 20 54 58 PAPER.. TX
01A720: 54 20 53 45 54 20 50 45 4E 0D 0A 0D 0A 0D 0A 0D T SET PEN.......
01A730: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
01A740: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
01A750: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
01A760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A770: 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 30 37 page 15.107
01A780: 0D 0A 1A 48 41 50 2D 31 35 20 24 24 24 FF 00 FF ...HAP-15 $$$...
01A790: 20 20 20 39 32 3A 20 53 43 52 20 43 4C 45 41 52 92: SCR CLEAR
01A7A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A7B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A7C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01A7D0: 20 20 20 20 23 42 43 31 34 0D 0A 0D 0A 0D 0A 20 #BC14......
01A7E0: 20 20 20 20 20 20 43 6C 65 61 72 20 74 68 65 20 Clear the
01A7F0: 73 63 72 65 65 6E 20 28 74 6F 20 69 6E 6B 20 7A screen (to ink z
01A800: 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 R............
01A810: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
01A820: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
01A830: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
01A840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
01A850: 61 67 65 20 31 35 2E 31 32 39 0D 0A 1A 0D 0A 20 age 15.129.....
01A860: 20 20 20 20 20 20 41 73 6B 20 74 68 65 20 63 6F Ask the co
01A870: 6C 6F 75 72 73 20 61 6E 20 69 6E 6B 20 69 73 20 lours an ink is
01A880: 00 43 48 41 50 2D 31 35 20 50 37 20 00 00 00 7D .CHAP-15 P7 ...}
01A890: 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 3456789:;<=>?@AB
01A8A0: 00 43 48 41 50 2D 31 35 20 50 38 20 00 00 00 80 .CHAP-15 P8 ....
01A8B0: 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 CDEFGHIJKLMNOPQR
01A8C0: 00 43 48 41 50 2D 31 35 20 50 38 20 01 00 00 07 .CHAP-15 P8 ....
01A8D0: 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 S...............
01A8E0: 00 43 48 41 50 2D 31 35 20 50 39 20 00 00 00 80 .CHAP-15 P9 ....
01A8F0: 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 TUVWXYZ[\]^_`abc
01A900: E5 43 48 41 50 2D 31 35 20 42 41 4B 00 00 00 7F .CHAP-15 BAK....
01A910: 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 defghijklmnopqrs
01A920: 00 43 48 41 50 2D 31 35 20 50 31 30 00 00 00 7F .CHAP-15 P10....
01A930: 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 tuvwxyz{|}~.....
01A940: 00 43 48 41 50 2D 31 35 20 50 34 20 00 00 00 79 .CHAP-15 P4 ...y
01A950: 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 ................
01A960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01A970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01A980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01A990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01A9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01A9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01A9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01A9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01A9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01A9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01AA00: 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 Notes:......
01AA10: 20 20 20 54 68 65 20 69 6E 6B 20 6E 75 6D 62 65 The ink numbe
01AA20: 72 20 69 73 20 6D 61 73 6B 65 64 20 77 69 74 68 r is masked with
01AA30: 20 23 30 46 20 20 74 6F 20 20 6D 61 6B 65 20 20 #0F to make
01AA40: 73 75 72 65 20 20 69 74 20 20 69 73 20 20 6C 65 sure it is le
01AA50: 67 61 6C 2E 20 20 54 68 65 0D 0A 20 20 20 20 20 gal. The..
01AA60: 20 20 63 6F 6C 6F 75 72 73 20 72 65 74 75 72 6E colours return
01AA70: 65 64 20 6D 61 79 20 6E 6F 74 20 62 65 20 74 68 ed may not be th
01AA80: 65 20 73 61 6D 65 20 61 73 20 74 68 6F 73 65 20 e same as those
01AA90: 73 75 70 70 6C 69 65 64 20 74 6F 20 20 74 68 65 supplied to the
01AAA0: 20 20 53 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 Screen..
01AAB0: 20 50 61 63 6B 20 61 73 20 74 68 65 20 63 6F 6C Pack as the col
01AAC0: 6F 75 72 73 20 61 72 65 20 6D 61 73 6B 65 64 20 ours are masked
01AAD0: 77 68 65 6E 20 74 68 65 79 20 61 72 65 20 73 65 when they are se
01AAE0: 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 t....... T
01AAF0: 68 65 20 6E 65 77 20 63 6F 6C 6F 75 72 20 66 6F he new colour fo
01AB00: 72 20 61 6E 20 69 6E 6B 20 61 72 65 20 6E 6F 74 r an ink are not
01AB10: 20 73 65 6E 74 20 20 74 6F 20 20 74 68 65 20 20 sent to the
01AB20: 68 61 72 64 77 61 72 65 20 20 69 6D 6D 65 64 69 hardware immedi
01AB30: 61 74 65 6C 79 0D 0A 20 20 20 20 20 20 20 77 68 ately.. wh
01AB40: 65 6E 20 74 68 65 79 20 61 72 65 20 73 65 74 2E en they are set.
01AB50: 20 54 68 65 79 20 61 72 65 20 73 74 6F 72 65 64 They are stored
01AB60: 20 61 6E 64 20 61 70 70 65 61 72 20 6F 6E 20 74 and appear on t
01AB70: 68 65 20 73 63 72 65 65 6E 20 20 77 68 65 6E 20 he screen when
01AB80: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 6E 65 78 the.. nex
01AB90: 74 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 t frame flyback
01ABA0: 6F 63 63 75 72 73 2E 20 54 68 69 73 20 6D 65 61 occurs. This mea
01ABB0: 6E 73 20 74 68 61 74 20 74 68 65 20 20 63 6F 6C ns that the col
01ABC0: 6F 75 72 73 20 20 72 65 74 75 72 6E 65 64 20 20 ours returned
01ABD0: 6D 61 79 0D 0A 20 20 20 20 20 20 20 6E 6F 74 20 may.. not
01ABE0: 61 63 74 75 61 6C 6C 79 20 62 65 20 76 69 73 69 actually be visi
01ABF0: 62 6C 65 20 74 6F 20 74 68 65 20 75 73 65 72 20 ble to the user
01AC00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
01AC10: 20 20 20 31 32 35 3A 20 43 41 53 20 49 4E 20 4F 125: CAS IN O
01AC20: 50 45 4E 20 20 20 20 20 20 20 20 20 20 20 20 20 PEN
01AC30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01AC40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01AC50: 20 20 20 20 23 42 43 37 37 0D 0A 0D 0A 0D 0A 20 #BC77......
01AC60: 20 20 20 20 20 20 4F 70 65 6E 20 61 20 66 69 6C Open a fil
01AC70: 65 20 66 6F 72 20 69 6E 70 75 74 2E 0D 0A 0D 0A e for input.....
01AC80: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
01AC90: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 ...... Set
01ACA0: 20 75 70 20 74 68 65 20 72 65 61 64 20 73 74 72 up the read str
01ACB0: 65 61 6D 20 66 6F 72 20 72 65 61 64 69 6E 67 20 eam for reading
01ACC0: 61 20 66 69 6C 65 20 61 6E 64 20 72 65 61 64 20 a file and read
01ACD0: 74 68 65 20 66 69 72 73 74 20 62 6C 6F 63 6B 2E the first block.
01ACE0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 ...... Ent
01ACF0: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
01AD00: 0D 0A 0D 0A 20 20 20 20 20 20 20 42 20 63 6F 6E .... B con
01AD10: 74 61 69 6E 73 20 74 68 65 20 6C 65 6E 67 74 68 tains the length
01AD20: 20 6F 66 20 74 68 65 20 66 69 6C 65 6E 61 6D 65 of the filename
01AD30: 2E 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E ... HL con
01AD40: 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 tains the addres
01AD50: 73 20 6F 66 20 74 68 65 20 66 69 6C 65 6E 61 6D s of the filenam
01AD60: 65 2E 0D 0A 20 20 20 20 20 20 20 44 45 20 63 6F e... DE co
01AD70: 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 65 ntains the addre
01AD80: 73 73 20 6F 66 20 61 20 32 4B 20 62 75 66 66 65 ss of a 2K buffe
01AD90: 72 20 74 6F 20 75 73 65 2E 0D 0A 0D 0A 0D 0A 20 r to use.......
01ADA0: 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 Exit condi
01ADB0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
01ADC0: 20 20 20 49 66 20 74 68 65 20 66 69 6C 65 20 77 If the file w
01ADD0: 61 73 20 6F 70 65 6E 65 64 20 4F 4B 3A 0D 0A 0D as opened OK:...
01ADE0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
01ADF0: 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A 20 20 Carry true...
01AE00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5A 65 Ze
01AE10: 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 ro false...
01AE20: 20 20 20 20 20 20 20 20 20 20 20 48 4C 20 63 6F HL co
01AE30: 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 65 ntains the addre
01AE40: 73 73 20 20 6F 66 20 20 61 20 20 62 75 66 66 65 ss of a buffe
01AE50: 72 20 20 63 6F 6E 74 61 69 6E 69 6E 67 20 20 74 r containing t
01AE60: 68 65 20 20 66 69 6C 65 0D 0A 20 20 20 20 20 20 he file..
01AE70: 20 20 20 20 20 20 20 20 20 20 68 65 61 64 65 72 header
01AE80: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
01AE90: 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 DE contains t
01AEA0: 68 65 20 64 61 74 61 20 6C 6F 63 61 74 69 6F 6E he data location
01AEB0: 20 28 66 72 6F 6D 20 74 68 65 20 68 65 61 64 65 (from the heade
01AEC0: 72 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 r).....
01AED0: 20 20 20 20 20 20 20 42 43 20 63 6F 6E 74 61 69 BC contai
01AEE0: 6E 73 20 74 68 65 20 6C 6F 67 69 63 61 6C 20 66 ns the logical f
01AEF0: 69 6C 65 20 6C 65 6E 67 74 68 20 28 66 72 6F 6D ile length (from
01AF00: 20 74 68 65 20 68 65 61 64 65 72 29 2E 0D 0A 20 the header)...
01AF10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
01AF20: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 66 69 contains the fi
01AF30: 6C 65 20 74 79 70 65 20 28 66 72 6F 6D 20 74 68 le type (from th
01AF40: 65 20 68 65 61 64 65 72 29 2E 0D 0A 0D 0A 20 20 e header).....
01AF50: 20 20 20 20 20 49 66 20 74 68 65 20 73 74 72 65 If the stre
01AF60: 61 6D 20 69 73 20 69 6E 20 75 73 65 3A 0D 0A 0D am is in use:...
01AF70: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
01AF80: 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 Carry false...
01AF90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5A Z
01AFA0: 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 ero false...
01AFB0: 20 20 20 20 20 20 20 20 20 20 20 20 49 6E 20 56 In V
01AFC0: 31 2E 31 3A 20 41 20 63 6F 6E 74 61 69 6E 73 20 1.1: A contains
01AFD0: 61 6E 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 20 an error number
01AFE0: 28 23 30 45 29 2E 0D 0A 20 20 20 20 20 20 20 20 (#0E)...
01AFF0: 20 20 20 20 20 20 20 20 49 6E 20 56 31 2E 30 3A In V1.0:
01B000: 20 41 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 A corrupt...
01B010: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 43 2C BC,
01B020: 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 DE and HL corrup
01B030: 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 t..... If
01B040: 74 68 65 20 75 73 65 72 20 68 69 74 20 65 73 63 the user hit esc
01B050: 61 70 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ape:....
01B060: 20 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 Carry fa
01B070: 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 lse...
01B080: 20 20 20 20 20 20 5A 65 72 6F 20 74 72 75 65 2E Zero true.
01B090: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
01B0A0: 20 20 49 6E 20 56 31 2E 31 3A 20 41 20 63 6F 6E In V1.1: A con
01B0B0: 74 61 69 6E 73 20 61 6E 20 65 72 72 6F 72 20 6E tains an error n
01B0C0: 75 6D 62 65 72 20 28 23 30 30 29 2E 0D 0A 20 20 umber (#00)...
01B0D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6E In
01B0E0: 20 56 31 2E 30 3A 20 41 20 63 6F 72 72 75 70 74 V1.0: A corrupt
01B0F0: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
01B100: 20 20 20 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 BC,DE and HL
01B110: 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 0D 0A 20 20 corrupt.......
01B120: 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A Always:....
01B130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01B140: 49 58 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 IX and other fla
01B150: 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 gs corrupt...
01B160: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C All
01B170: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
01B180: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
01B190: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
01B1A0: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
01B1B0: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
01B1C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01B1D0: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 page 15.1
01B1E0: 33 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 30..............
01B1F0: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
01B200: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 ... This r
01B210: 6F 75 74 69 6E 65 20 63 61 6E 20 72 65 74 75 72 outine can retur
01B220: 6E 20 74 77 6F 20 65 72 72 6F 72 20 6E 75 6D 62 n two error numb
01B230: 65 72 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ers:......
01B240: 20 20 20 20 20 20 20 20 20 20 23 30 30 3A 20 20 #00:
01B250: 20 20 20 20 54 68 65 20 75 73 65 72 20 68 69 74 The user hit
01B260: 20 65 73 63 61 70 65 2E 0D 0A 20 20 20 20 20 20 escape...
01B270: 20 20 20 20 20 20 20 20 20 20 23 30 45 3A 20 20 #0E:
01B280: 20 20 20 20 54 68 65 20 73 74 72 65 61 6D 20 69 The stream i
01B290: 73 20 61 6C 72 65 61 64 79 20 69 6E 20 75 73 65 s already in use
01B2A0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
01B2B0: 65 20 32 4B 20 62 75 66 66 65 72 20 28 32 30 34 e 2K buffer (204
01B2C0: 38 20 62 79 74 65 73 29 20 73 75 70 70 6C 69 65 8 bytes) supplie
01B2D0: 64 20 69 73 20 75 73 65 64 20 74 6F 20 73 74 6F d is used to sto
01B2E0: 72 65 20 74 68 65 20 63 6F 6E 74 65 6E 74 73 20 re the contents
01B2F0: 6F 66 20 61 0D 0A 20 20 20 20 20 20 20 62 6C 6F of a.. blo
01B300: 63 6B 20 6F 66 20 74 68 65 20 66 69 6C 65 20 77 ck of the file w
01B310: 68 65 6E 20 69 74 20 69 73 20 72 65 61 64 20 66 hen it is read f
01B320: 72 6F 6D 20 74 61 70 65 2E 20 49 74 20 20 77 69 rom tape. It wi
01B330: 6C 6C 20 20 72 65 6D 61 69 6E 20 20 69 6E 20 20 ll remain in
01B340: 75 73 65 0D 0A 20 20 20 20 20 20 20 75 6E 74 69 use.. unti
01B350: 6C 20 74 68 65 20 66 69 6C 65 20 69 73 20 63 6C l the file is cl
01B360: 6F 73 65 64 20 62 79 20 63 61 6C 6C 69 6E 67 20 osed by calling
01B370: 65 69 74 68 65 72 20 43 41 53 20 20 49 4E 20 20 either CAS IN
01B380: 43 4C 4F 53 45 20 20 6F 72 20 20 43 41 53 20 20 CLOSE or CAS
01B390: 49 4E 0D 0A 20 20 20 20 20 20 20 41 42 41 4E 44 IN.. ABAND
01B3A0: 4F 4E 2E 20 54 68 65 20 62 75 66 66 65 72 20 6D ON. The buffer m
01B3B0: 61 79 20 6C 69 65 20 61 6E 79 77 68 65 72 65 20 ay lie anywhere
01B3C0: 69 6E 20 6D 65 6D 6F 72 79 2C 20 65 76 65 6E 20 in memory, even
01B3D0: 75 6E 64 65 72 6E 65 61 74 68 20 61 20 52 4F 4D underneath a ROM
01B3E0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
01B3F0: 65 20 66 69 6C 65 6E 61 6D 65 20 70 61 73 73 65 e filename passe
01B400: 64 20 69 73 20 63 6F 70 69 65 64 20 69 6E 74 6F d is copied into
01B410: 20 74 68 65 20 72 65 61 64 20 73 74 72 65 61 6D the read stream
01B420: 20 64 65 73 63 72 69 70 74 6F 72 2E 20 20 49 66 descriptor. If
01B430: 20 20 69 74 0D 0A 20 20 20 20 20 20 20 69 73 20 it.. is
01B440: 6C 6F 6E 67 65 72 20 74 68 61 6E 20 31 36 20 63 longer than 16 c
01B450: 68 61 72 61 63 74 65 72 73 20 74 68 65 6E 20 69 haracters then i
01B460: 74 20 69 73 20 74 72 75 6E 63 61 74 65 64 20 20 t is truncated
01B470: 74 6F 20 20 31 36 20 20 63 68 61 72 61 63 74 65 to 16 characte
01B480: 72 73 2E 0D 0A 20 20 20 20 20 20 20 49 66 20 69 rs... If i
01B490: 74 20 69 73 20 73 68 6F 72 74 65 72 20 74 68 65 t is shorter the
01B4A0: 6E 20 69 74 20 69 73 20 70 61 64 64 65 64 20 77 n it is padded w
01B4B0: 69 74 68 20 6E 75 6C 6C 73 20 28 23 30 30 29 20 ith nulls (#00)
01B4C0: 74 6F 20 31 36 20 20 63 68 61 72 61 63 74 65 72 to 16 character
01B4D0: 73 2E 0D 0A 20 20 20 20 20 20 20 57 68 69 6C 65 s... While
01B4E0: 20 74 68 65 20 66 69 6C 65 6E 61 6D 65 20 6D 61 the filename ma
01B4F0: 79 20 63 6F 6E 74 61 69 6E 20 61 6E 79 20 63 68 y contain any ch
01B500: 61 72 61 63 74 65 72 2C 20 20 69 74 20 20 69 73 aracter, it is
01B510: 20 20 62 65 73 74 20 20 74 6F 20 20 61 76 6F 69 best to avoi
01B520: 64 0D 0A 20 20 20 20 20 20 20 6E 75 6C 6C 73 2E d.. nulls.
01B530: 20 4C 6F 77 65 72 20 63 61 73 65 20 41 53 43 49 Lower case ASCI
01B540: 49 20 6C 65 74 74 65 72 73 20 28 63 68 61 72 61 I letters (chara
01B550: 63 74 65 72 73 20 23 36 31 2E 2E 23 37 41 29 20 cters #61..#7A)
01B560: 61 72 65 20 63 6F 6E 76 65 72 74 65 64 20 74 6F are converted to
01B570: 0D 0A 20 20 20 20 20 20 20 74 68 65 69 72 20 75 .. their u
01B580: 70 70 65 72 20 63 61 73 65 20 65 71 75 69 76 61 pper case equiva
01B590: 6C 65 6E 74 73 20 28 63 68 61 72 61 63 74 65 72 lents (character
01B5A0: 73 20 23 34 31 2E 2E 23 35 41 29 2E 20 54 68 65 s #41..#5A). The
01B5B0: 20 20 66 69 6C 65 6E 61 6D 65 20 20 6D 61 79 0D filename may.
01B5C0: 0A 20 20 20 20 20 20 20 6C 69 65 20 61 6E 79 77 . lie anyw
01B5D0: 68 65 72 65 20 69 6E 20 52 41 4D 2C 20 65 76 65 here in RAM, eve
01B5E0: 6E 20 75 6E 64 65 72 6E 65 61 74 68 20 61 20 52 n underneath a R
01B5F0: 4F 4D 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 OM.......
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: 54 68 65 20 66 69 6C 65 6E 61 6D 65 20 69 73 20 The filename is
01B710: 6E 6F 72 6D 61 6C 6C 79 20 74 68 65 20 6E 61 6D normally the nam
01B720: 65 20 6F 66 20 74 68 65 20 66 69 6C 65 20 20 74 e of the file t
01B730: 68 61 74 20 20 69 73 20 20 74 6F 20 20 62 65 20 hat is to be
01B740: 20 72 65 61 64 2E 0D 0A 20 20 20 20 20 20 20 48 read... H
01B750: 6F 77 65 76 65 72 2C 20 61 20 7A 65 72 6F 20 6C owever, a zero l
01B760: 65 6E 67 74 68 20 66 69 6C 65 6E 61 6D 65 20 28 ength filename (
01B770: 6F 72 20 20 6F 6E 65 20 20 73 74 61 72 74 69 6E or one startin
01B780: 67 20 20 77 69 74 68 20 20 61 20 20 6E 75 6C 6C g with a null
01B790: 29 20 20 69 73 0D 0A 20 20 20 20 20 20 20 74 72 ) is.. tr
01B7A0: 65 61 74 65 64 20 73 70 65 63 69 61 6C 6C 79 2E eated specially.
01B7B0: 20 49 74 20 69 73 20 74 61 6B 65 6E 20 74 6F 20 It is taken to
01B7C0: 6D 65 61 6E 20 72 65 61 64 20 74 68 65 20 6E 65 mean read the ne
01B7D0: 78 74 20 66 69 6C 65 20 6F 6E 20 74 68 65 20 74 xt file on the t
01B7E0: 61 70 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ape.......
01B7F0: 20 57 68 65 6E 20 74 68 65 20 66 69 6C 65 20 69 When the file i
01B800: 73 20 6F 70 65 6E 65 64 20 66 6F 72 20 72 65 61 s opened for rea
01B810: 64 69 6E 67 20 74 68 65 20 66 69 72 73 74 20 62 ding the first b
01B820: 6C 6F 63 6B 20 20 6F 66 20 20 74 68 65 20 20 66 lock of the f
01B830: 69 6C 65 20 20 69 73 0D 0A 20 20 20 20 20 20 20 ile is..
01B840: 72 65 61 64 20 69 6D 6D 65 64 69 61 74 65 6C 79 read immediately
01B850: 2E 20 54 68 65 20 61 64 64 72 65 73 73 20 6F 66 . The address of
01B860: 20 74 68 65 20 61 72 65 61 20 77 68 65 72 65 20 the area where
01B870: 74 68 65 20 68 65 61 64 65 72 20 20 66 72 6F 6D the header from
01B880: 20 20 74 68 69 73 0D 0A 20 20 20 20 20 20 20 62 this.. b
01B890: 6C 6F 63 6B 20 69 73 20 73 74 6F 72 65 64 20 69 lock is stored i
01B8A0: 73 20 70 61 73 73 65 64 20 62 61 63 6B 20 74 6F s passed back to
01B8B0: 20 74 68 65 20 75 73 65 72 20 73 6F 20 74 68 61 the user so tha
01B8C0: 74 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 63 61 t information ca
01B8D0: 6E 20 20 62 65 0D 0A 20 20 20 20 20 20 20 65 78 n be.. ex
01B8E0: 74 72 61 63 74 65 64 20 66 72 6F 6D 20 69 74 2E tracted from it.
01B8F0: 20 54 68 69 73 20 61 72 65 61 20 77 69 6C 6C 20 This area will
01B900: 6C 69 65 20 69 6E 20 74 68 65 20 63 65 6E 74 72 lie in the centr
01B910: 61 6C 20 33 32 4B 20 6F 66 20 20 52 41 4D 2E 20 al 32K of RAM.
01B920: 20 54 68 65 0D 0A 20 20 20 20 20 20 20 75 73 65 The.. use
01B930: 72 20 69 73 20 6E 6F 74 20 61 6C 6C 6F 77 65 64 r is not allowed
01B940: 20 74 6F 20 77 72 69 74 65 20 74 6F 20 74 68 65 to write to the
01B950: 20 68 65 61 64 65 72 2C 20 6F 6E 6C 79 20 20 72 header, only r
01B960: 65 61 64 20 20 66 72 6F 6D 20 20 69 74 2E 20 20 ead from it.
01B970: 54 68 65 0D 0A 20 20 20 20 20 20 20 43 61 73 73 The.. Cass
01B980: 65 74 74 65 20 4D 61 6E 61 67 65 72 20 75 73 65 ette Manager use
01B990: 73 20 66 69 65 6C 64 73 20 69 6E 20 74 68 65 20 s fields in the
01B9A0: 68 65 61 64 65 72 20 66 6F 72 20 69 74 73 20 6F header for its o
01B9B0: 77 6E 20 70 75 72 70 6F 73 65 73 20 61 6E 64 20 wn purposes and
01B9C0: 73 6F 0D 0A 20 20 20 20 20 20 20 74 68 65 73 65 so.. these
01B9D0: 20 6D 61 79 20 64 69 66 66 65 72 20 66 72 6F 6D may differ from
01B9E0: 20 74 68 6F 73 65 20 72 65 61 64 20 66 72 6F 6D those read from
01B9F0: 20 74 68 65 20 74 61 70 65 2E 20 54 68 65 20 66 the tape. The f
01BA00: 69 6C 65 20 74 79 70 65 2C 20 6C 6F 67 69 63 61 ile type, logica
01BA10: 6C 0D 0A 20 20 20 20 20 20 20 6C 65 6E 67 74 68 l.. length
01BA20: 2C 20 65 6E 74 72 79 20 70 6F 69 6E 74 20 61 6E , entry point an
01BA30: 64 20 61 6C 6C 20 75 73 65 72 20 66 69 65 6C 64 d all user field
01BA40: 73 20 77 69 6C 6C 20 20 72 65 6D 61 69 6E 20 20 s will remain
01BA50: 75 6E 63 68 61 6E 67 65 64 2E 20 20 28 73 65 65 unchanged. (see
01BA60: 0D 0A 20 20 20 20 20 20 20 73 65 63 74 69 6F 6E .. section
01BA70: 20 38 20 66 6F 72 20 61 20 64 65 73 63 72 69 70 8 for a descrip
01BA80: 74 69 6F 6E 20 6F 66 20 74 68 65 20 68 65 61 64 tion of the head
01BA90: 65 72 29 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 er).........
01BAA0: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
01BAB0: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
01BAC0: 43 41 53 20 49 4E 20 41 42 41 4E 44 4F 4E 0D 0A CAS IN ABANDON..
01BAD0: 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 43 48 CAS IN CH
01BAE0: 41 52 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 AR.. CAS I
01BAF0: 4E 20 43 4C 4F 53 45 0D 0A 20 20 20 20 20 20 20 N CLOSE..
01BB00: 43 41 53 20 49 4E 20 44 49 52 45 43 54 0D 0A 20 CAS IN DIRECT..
01BB10: 20 20 20 20 20 20 43 41 53 20 49 4E 20 4F 50 45 CAS IN OPE
01BB20: 4E 20 28 44 49 53 43 29 0D 0A 20 20 20 20 20 20 N (DISC)..
01BB30: 20 43 41 53 20 4F 55 54 20 4F 50 45 4E 0D 0A 0D CAS OUT OPEN...
01BB40: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ...............
01BB50: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
01BB60: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
01BB70: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
01BB80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BB90: 20 70 61 67 65 20 31 35 2E 31 33 31 0D 0A 0D 0A page 15.131....
01BBA0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
01BBB0: 20 31 32 35 3A 20 43 41 53 20 49 4E 20 4F 50 45 125: CAS IN OPE
01BBC0: 4E 20 44 49 53 43 20 20 20 20 20 20 20 20 20 20 N DISC
01BBD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BBE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BBF0: 20 20 23 42 43 37 37 0D 0A 0D 0A 0D 0A 20 20 20 #BC77......
01BC00: 20 20 20 20 4F 70 65 6E 20 61 20 66 69 6C 65 20 Open a file
01BC10: 66 6F 72 20 69 6E 70 75 74 2E 0D 0A 0D 0A 0D 0A for input.......
01BC20: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
01BC30: 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 75 .... Set u
01BC40: 70 20 74 68 65 20 72 65 61 64 20 73 74 72 65 61 p the read strea
01BC50: 6D 20 66 6F 72 20 72 65 61 64 69 6E 67 20 61 20 m for reading a
01BC60: 66 69 6C 65 20 61 6E 64 20 72 65 61 64 20 74 68 file and read th
01BC70: 65 20 68 65 61 64 65 72 20 69 66 20 74 68 65 72 e header if ther
01BC80: 65 0D 0A 20 20 20 20 20 20 20 69 73 20 6F 6E 65 e.. is one
01BC90: 2C 20 6F 74 68 65 72 20 77 69 73 65 20 63 72 65 , other wise cre
01BCA0: 61 74 65 20 61 20 66 61 6B 65 20 68 65 61 64 65 ate a fake heade
01BCB0: 72 20 69 6E 20 73 74 6F 72 65 2E 0D 0A 0D 0A 0D r in store......
01BCC0: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
01BCD0: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
01BCE0: 20 20 20 20 20 20 42 20 63 6F 6E 74 61 69 6E 73 B contains
01BCF0: 20 74 68 65 20 6C 65 6E 67 74 68 20 6F 66 20 74 the length of t
01BD00: 68 65 20 66 69 6C 65 6E 61 6D 65 2E 0D 0A 20 20 he filename...
01BD10: 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 HL contains
01BD20: 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 the address of
01BD30: 74 68 65 20 66 69 6C 65 6E 61 6D 65 2E 0D 0A 20 the filename...
01BD40: 20 20 20 20 20 20 44 45 20 63 6F 6E 74 61 69 6E DE contain
01BD50: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 s the address of
01BD60: 20 61 20 32 4B 20 62 75 66 66 65 72 20 74 6F 20 a 2K buffer to
01BD70: 75 73 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 use.......
01BD80: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
01BD90: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 :.... If t
01BDA0: 68 65 20 66 69 6C 65 20 77 61 73 20 6F 70 65 6E he file was open
01BDB0: 65 64 20 4F 4B 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 ed OK:......
01BDC0: 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 Carr
01BDD0: 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 y true...
01BDE0: 20 20 20 20 20 20 20 20 20 5A 65 72 6F 20 66 61 Zero fa
01BDF0: 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 lse...
01BE00: 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E HL contain
01BE10: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 20 6F s the address o
01BE20: 66 20 20 61 20 20 62 75 66 66 65 72 20 20 63 6F f a buffer co
01BE30: 6E 74 61 69 6E 69 6E 67 20 20 74 68 65 20 20 66 ntaining the f
01BE40: 69 6C 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ile..
01BE50: 20 20 20 20 20 68 65 61 64 65 72 2E 0D 0A 20 20 header...
01BE60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 45 DE
01BE70: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 64 61 contains the da
01BE80: 74 61 20 6C 6F 63 61 74 69 6F 6E 20 28 66 72 6F ta location (fro
01BE90: 6D 20 74 68 65 20 68 65 61 64 65 72 29 2E 0D 0A m the header)...
01BEA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BEB0: 42 43 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 BC contains the
01BEC0: 6C 6F 67 69 63 61 6C 20 66 69 6C 65 20 6C 65 6E logical file len
01BED0: 67 74 68 20 28 66 72 6F 6D 20 74 68 65 20 68 65 gth (from the he
01BEE0: 61 64 65 72 29 2E 0D 0A 20 20 20 20 20 20 20 20 ader)...
01BEF0: 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 A contai
01BF00: 6E 73 20 74 68 65 20 66 69 6C 65 20 74 79 70 65 ns the file type
01BF10: 20 28 66 72 6F 6D 20 74 68 65 20 68 65 61 64 65 (from the heade
01BF20: 72 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 r).......
01BF30: 49 66 20 74 68 65 20 73 74 72 65 61 6D 20 69 73 If the stream is
01BF40: 20 61 6C 72 65 61 64 79 20 6F 70 65 6E 3A 0D 0A already open:..
01BF50: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
01BF60: 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E Carry false.
01BF70: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
01BF80: 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 Zero false...
01BF90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
01BFA0: 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 65 72 72 contains an err
01BFB0: 6F 72 20 6E 75 6D 62 65 72 20 28 23 30 45 29 2E or number (#0E).
01BFC0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
01BFD0: 20 20 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 63 BC,DE and HL c
01BFE0: 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 20 20 20 orrupt.....
01BFF0: 20 20 49 66 20 74 68 65 20 6F 70 65 6E 20 66 61 If the open fa
01C000: 69 6C 65 64 20 66 6F 72 20 61 6E 79 20 6F 74 68 iled for any oth
01C010: 65 72 20 72 65 61 73 6F 6E 3A 0D 0A 0D 0A 20 20 er reason:....
01C020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 Ca
01C030: 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 rry false...
01C040: 20 20 20 20 20 20 20 20 20 20 20 20 5A 65 72 6F Zero
01C050: 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 true...
01C060: 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 A contai
01C070: 6E 73 20 61 6E 20 65 72 72 6F 72 20 6E 75 6D 62 ns an error numb
01C080: 65 72 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 er...
01C090: 20 20 20 20 20 42 43 2C 44 45 20 61 6E 64 20 48 BC,DE and H
01C0A0: 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 L corrupt.....
01C0B0: 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A Always:....
01C0C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01C0D0: 49 58 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 IX and other fla
01C0E0: 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 gs corrupt...
01C0F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6C 6C all
01C100: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
01C110: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
01C120: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
01C130: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
01C140: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
01C150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01C160: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
01C170: 2E 31 33 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .132............
01C180: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
01C190: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
01C1A0: 32 4B 20 62 75 66 66 65 72 20 28 32 30 34 38 20 2K buffer (2048
01C1B0: 62 79 74 65 73 29 20 73 75 70 70 6C 69 65 64 20 bytes) supplied
01C1C0: 69 73 20 75 73 65 64 20 74 6F 20 73 74 6F 72 65 is used to store
01C1D0: 20 74 68 65 20 63 6F 6E 74 65 6E 74 73 20 6F 66 the contents of
01C1E0: 20 61 0D 0A 20 20 20 20 20 20 20 62 6C 6F 63 6B a.. block
01C1F0: 20 6F 66 20 74 68 65 20 66 69 6C 65 20 77 68 65 of the file whe
01C200: 6E 20 69 74 20 69 73 20 72 65 61 64 20 66 72 6F n it is read fro
01C210: 6D 20 64 69 73 63 2E 20 49 74 20 20 77 69 6C 6C m disc. It will
01C220: 20 20 72 65 6D 61 69 6E 20 20 69 6E 20 20 75 73 remain in us
01C230: 65 0D 0A 20 20 20 20 20 20 20 75 6E 74 69 6C 20 e.. until
01C240: 74 68 65 20 66 69 6C 65 20 69 73 20 63 6C 6F 73 the file is clos
01C250: 65 64 20 62 79 20 63 61 6C 6C 69 6E 67 20 65 69 ed by calling ei
01C260: 74 68 65 72 20 43 41 53 20 20 49 4E 20 20 43 4C ther CAS IN CL
01C270: 4F 53 45 20 20 6F 72 20 20 43 41 53 20 20 49 4E OSE or CAS IN
01C280: 0D 0A 20 20 20 20 20 20 20 41 42 41 4E 44 4F 4E .. ABANDON
01C290: 2E 20 54 68 65 20 62 75 66 66 65 72 20 6D 61 79 . The buffer may
01C2A0: 20 6C 69 65 20 61 6E 79 77 68 65 72 65 20 69 6E lie anywhere in
01C2B0: 20 6D 65 6D 6F 72 79 2C 20 65 76 65 6E 20 75 6E memory, even un
01C2C0: 64 65 72 6E 65 61 74 68 20 61 20 52 4F 4D 2E 0D derneath a ROM..
01C2D0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
01C2E0: 66 69 6C 65 6E 61 6D 65 20 6D 75 73 74 20 63 6F filename must co
01C2F0: 6E 66 6F 72 6D 20 74 6F 20 20 74 68 65 20 20 41 nform to the A
01C300: 4D 53 44 4F 53 20 20 63 6F 6E 76 65 6E 74 69 6F MSDOS conventio
01C310: 6E 73 20 20 77 69 74 68 20 20 6E 6F 20 20 77 69 ns with no wi
01C320: 6C 64 0D 0A 20 20 20 20 20 20 20 63 61 72 64 73 ld.. cards
01C330: 2E 20 54 68 65 20 66 69 6C 65 6E 61 6D 65 20 6D . The filename m
01C340: 61 79 20 6C 69 65 20 61 6E 79 77 68 65 72 65 20 ay lie anywhere
01C350: 69 6E 20 52 41 4D 2C 20 65 76 65 6E 20 75 6E 64 in RAM, even und
01C360: 65 72 6E 65 61 74 68 20 61 20 52 4F 4D 2E 0D 0A erneath a ROM...
01C370: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 .... If th
01C380: 65 20 74 79 70 65 20 70 61 72 74 20 6F 66 20 74 e type part of t
01C390: 68 65 20 66 69 6C 65 6E 61 6D 65 20 69 73 20 6F he filename is o
01C3A0: 6D 69 74 74 65 64 20 20 41 4D 53 44 4F 53 20 20 mitted AMSDOS
01C3B0: 77 69 6C 6C 20 20 61 74 74 65 6D 70 74 20 20 74 will attempt t
01C3C0: 6F 0D 0A 20 20 20 20 20 20 20 6F 70 65 6E 2C 20 o.. open,
01C3D0: 69 6E 20 74 75 72 6E 2C 20 61 20 66 69 6C 65 20 in turn, a file
01C3E0: 77 69 74 68 20 74 68 65 20 66 6F 6C 6C 6F 77 69 with the followi
01C3F0: 6E 67 20 74 79 70 65 20 70 61 72 74 73 20 27 2E ng type parts '.
01C400: 27 2C 27 2E 42 41 53 27 2C 27 2E 42 49 4E 27 2E ','.BAS','.BIN'.
01C410: 0D 0A 20 20 20 20 20 20 20 49 66 20 6E 6F 6E 65 .. If none
01C420: 20 6F 66 20 74 68 65 73 65 20 65 78 69 73 74 20 of these exist
01C430: 74 68 65 6E 20 74 68 65 20 6F 70 65 6E 20 77 69 then the open wi
01C440: 6C 6C 20 66 61 69 6C 2E 0D 0A 0D 0A 0D 0A 20 20 ll fail.......
01C450: 20 20 20 20 20 57 68 65 6E 20 74 68 65 20 66 69 When the fi
01C460: 6C 65 20 20 69 73 20 20 6F 70 65 6E 65 64 20 20 le is opened
01C470: 74 68 65 20 20 66 69 72 73 74 20 20 72 65 63 6F the first reco
01C480: 72 64 20 20 6F 66 20 20 74 68 65 20 20 66 69 6C rd of the fil
01C490: 65 20 20 69 73 20 20 72 65 61 64 0D 0A 20 20 20 e is read..
01C4A0: 20 20 20 20 69 6D 6D 65 64 69 61 74 65 6C 79 2E immediately.
01C4B0: 20 49 66 20 74 68 69 73 20 72 65 63 6F 72 64 20 If this record
01C4C0: 63 6F 6E 74 61 69 6E 73 20 61 20 68 65 61 64 65 contains a heade
01C4D0: 72 20 74 68 65 6E 20 69 74 20 69 73 20 20 63 6F r then it is co
01C4E0: 70 69 65 64 20 20 69 6E 74 6F 0D 0A 20 20 20 20 pied into..
01C4F0: 20 20 20 73 74 6F 72 65 2C 20 6F 74 68 65 72 77 store, otherw
01C500: 69 73 65 20 61 20 66 61 6B 65 20 68 65 61 64 65 ise a fake heade
01C510: 72 20 69 73 20 63 6F 6E 73 74 72 75 63 74 65 64 r is constructed
01C520: 20 69 6E 20 73 74 6F 72 65 2E 20 54 68 65 20 61 in store. The a
01C530: 64 64 72 65 73 73 20 6F 66 0D 0A 20 20 20 20 20 ddress of..
01C540: 20 20 74 68 65 20 61 72 65 61 20 77 68 65 72 65 the area where
01C550: 20 74 68 65 20 68 65 61 64 65 72 20 69 73 20 73 the header is s
01C560: 74 6F 72 65 64 20 69 73 20 70 61 73 73 65 64 20 tored is passed
01C570: 62 61 63 6B 20 74 6F 20 74 68 65 20 75 73 65 72 back to the user
01C580: 20 73 6F 20 74 68 61 74 0D 0A 20 20 20 20 20 20 so that..
01C590: 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 63 61 6E information can
01C5A0: 20 62 65 20 65 78 74 72 61 63 74 65 64 20 66 72 be extracted fr
01C5B0: 6F 6D 20 20 69 74 2E 20 20 54 68 69 73 20 20 61 om it. This a
01C5C0: 72 65 61 20 20 77 69 6C 6C 20 20 6C 69 65 20 20 rea will lie
01C5D0: 69 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 in the..
01C5E0: 63 65 6E 74 72 61 6C 20 33 32 4B 20 6F 66 20 52 central 32K of R
01C5F0: 41 4D 2E 20 54 68 65 20 75 73 65 72 20 69 73 20 AM. The user is
01C600: 6E 6F 74 20 61 6C 6C 6F 77 65 64 20 74 6F 20 77 not allowed to w
01C610: 72 69 74 65 20 20 74 6F 20 20 74 68 65 20 20 68 rite to the h
01C620: 65 61 64 65 72 2C 0D 0A 20 20 20 20 20 20 20 6F eader,.. o
01C630: 6E 6C 79 20 72 65 61 64 20 66 72 6F 6D 20 69 74 nly read from it
01C640: 2E 20 41 4D 53 44 4F 53 20 75 73 65 73 20 20 66 . AMSDOS uses f
01C650: 69 65 6C 64 73 20 20 69 6E 20 20 74 68 65 20 20 ields in the
01C660: 68 65 61 64 65 72 20 20 66 6F 72 20 20 69 74 73 header for its
01C670: 20 20 6F 77 6E 0D 0A 20 20 20 20 20 20 20 70 75 own.. pu
01C680: 72 70 6F 73 65 73 20 61 6E 64 20 73 6F 20 74 68 rposes and so th
01C690: 65 73 65 20 6D 61 79 20 64 69 66 66 65 72 20 66 ese may differ f
01C6A0: 72 6F 6D 20 74 68 6F 73 65 20 72 65 61 64 20 66 rom those read f
01C6B0: 72 6F 6D 20 20 74 68 65 20 20 64 69 73 63 2E 20 rom the disc.
01C6C0: 20 54 68 65 0D 0A 20 20 20 20 20 20 20 66 69 6C The.. fil
01C6D0: 65 20 74 79 70 65 2C 20 6C 6F 67 69 63 61 6C 20 e type, logical
01C6E0: 6C 65 6E 67 74 68 2C 20 65 6E 74 72 79 20 70 6F length, entry po
01C6F0: 69 6E 74 20 61 6E 64 20 61 6C 6C 20 75 73 65 72 int and all user
01C700: 20 66 69 65 6C 64 73 20 77 69 6C 6C 20 72 65 6D fields will rem
01C710: 61 69 6E 0D 0A 20 20 20 20 20 20 20 75 6E 63 68 ain.. unch
01C720: 61 6E 67 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 anged.........
01C730: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
01C740: 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ries:......
01C750: 20 20 43 41 53 20 49 4E 20 41 42 41 4E 44 4F 4E CAS IN ABANDON
01C760: 20 28 44 49 53 43 29 0D 0A 20 20 20 20 20 20 20 (DISC)..
01C770: 43 41 53 20 49 4E 20 43 48 41 52 20 28 44 49 53 CAS IN CHAR (DIS
01C780: 43 29 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 C).. CAS I
01C790: 4E 20 43 4C 4F 53 45 20 28 44 49 53 43 29 0D 0A N CLOSE (DISC)..
01C7A0: 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 4F 50 CAS IN OP
01C7B0: 45 4E 0D 0A 20 20 20 20 20 20 20 43 41 53 20 4F EN.. CAS O
01C7C0: 55 54 20 4F 50 45 4E 20 28 44 49 53 43 29 0D 0A UT OPEN (DISC)..
01C7D0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
01C7E0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
01C7F0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
01C800: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
01C810: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
01C820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01C830: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
01C840: 35 2E 31 33 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 5.133...........
01C850: 0A 0D 0A 20 20 20 20 20 20 20 31 32 36 3A 20 43 ... 126: C
01C860: 41 53 20 49 4E 20 43 4C 4F 53 45 20 20 20 20 20 AS IN CLOSE
01C870: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01C880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01C890: 20 20 20 20 20 23 42 43 37 41 0D 0A 0D 0A 20 20 #BC7A....
01C8A0: 20 20 20 20 20 43 6C 6F 73 65 20 74 68 65 20 69 Close the i
01C8B0: 6E 70 75 74 20 66 69 6C 65 20 70 72 6F 70 65 72 nput file proper
01C8C0: 6C 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 ly..... Ac
01C8D0: 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 tion:....
01C8E0: 4D 61 72 6B 20 74 68 65 20 72 65 61 64 20 73 74 Mark the read st
01C8F0: 72 65 61 6D 20 61 73 20 63 6C 6F 73 65 64 2E 0D ream as closed..
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: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
01CA10: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
01CA20: 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 No conditi
01CA30: 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 ons..... E
01CA40: 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D xit conditions:.
01CA50: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
01CA60: 20 73 74 72 65 61 6D 20 77 61 73 20 63 6C 6F 73 stream was clos
01CA70: 65 64 20 4F 4B 3A 0D 0A 0D 0A 20 20 20 20 20 20 ed OK:....
01CA80: 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 Carry
01CA90: 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 true...
01CAA0: 20 20 20 20 20 20 20 41 20 63 6F 72 72 75 70 74 A corrupt
01CAB0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
01CAC0: 68 65 20 73 74 72 65 61 6D 20 77 61 73 20 6E 6F he stream was no
01CAD0: 74 20 6F 70 65 6E 3A 0D 0A 0D 0A 20 20 20 20 20 t open:....
01CAE0: 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 Carry
01CAF0: 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 false...
01CB00: 20 20 20 20 20 20 20 20 20 49 6E 20 56 31 2E 31 In V1.1
01CB10: 3A 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 : A contains an
01CB20: 65 72 72 6F 72 20 6E 75 6D 62 65 72 20 28 23 30 error number (#0
01CB30: 45 29 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 E)...
01CB40: 20 20 20 20 20 49 6E 20 56 31 2E 30 3A 20 41 20 In V1.0: A
01CB50: 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 20 20 corrupt.....
01CB60: 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A 20 20 Always:....
01CB70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 43 BC
01CB80: 2C 44 45 2C 48 4C 20 61 6E 64 20 6F 74 68 65 72 ,DE,HL and other
01CB90: 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D flags corrupt..
01CBA0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
01CBB0: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
01CBC0: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
01CBD0: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
01CBE0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 ...... Thi
01CBF0: 73 20 72 6F 75 74 69 6E 65 20 63 61 6E 20 6F 6E s routine can on
01CC00: 6C 79 20 72 65 74 75 72 6E 20 6F 6E 65 20 65 72 ly return one er
01CC10: 72 6F 72 20 6E 75 6D 62 65 72 3A 0D 0A 0D 0A 0D ror number:.....
01CC20: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
01CC30: 20 23 30 45 3A 20 54 68 65 20 73 74 72 65 61 6D #0E: The stream
01CC40: 20 69 73 20 6E 6F 74 20 6F 70 65 6E 2E 0D 0A 0D is not open....
01CC50: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 ... This r
01CC60: 6F 75 74 69 6E 65 20 73 68 6F 75 6C 64 20 62 65 outine should be
01CC70: 20 63 61 6C 6C 65 64 20 74 6F 20 63 6C 6F 73 65 called to close
01CC80: 20 61 20 66 69 6C 65 20 61 66 74 65 72 20 20 72 a file after r
01CC90: 65 61 64 69 6E 67 20 20 66 72 6F 6D 20 20 69 74 eading from it
01CCA0: 0D 0A 20 20 20 20 20 20 20 75 73 69 6E 67 20 65 .. using e
01CCB0: 69 74 68 65 72 20 43 41 53 20 49 4E 20 43 48 41 ither CAS IN CHA
01CCC0: 52 20 6F 72 20 43 41 53 20 49 4E 20 44 49 52 45 R or CAS IN DIRE
01CCD0: 43 54 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 CT.......
01CCE0: 54 68 65 20 75 73 65 72 20 6D 61 79 20 72 65 63 The user may rec
01CCF0: 6C 61 69 6D 20 74 68 65 20 62 75 66 66 65 72 20 laim the buffer
01CD00: 70 61 73 73 65 64 20 74 6F 20 43 41 53 20 49 4E passed to CAS IN
01CD10: 20 20 4F 50 45 4E 20 20 61 66 74 65 72 20 20 63 OPEN after c
01CD20: 61 6C 6C 69 6E 67 0D 0A 20 20 20 20 20 20 20 74 alling.. t
01CD30: 68 69 73 20 72 6F 75 74 69 6E 65 2E 0D 0A 0D 0A his routine.....
01CD40: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
01CD50: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 ed entries:....
01CD60: 20 20 20 20 20 20 43 41 53 20 49 4E 20 41 42 41 CAS IN ABA
01CD70: 4E 44 4F 4E 0D 0A 20 20 20 20 20 20 20 43 41 53 NDON.. CAS
01CD80: 20 49 4E 20 43 4C 4F 53 45 20 28 44 49 53 43 29 IN CLOSE (DISC)
01CD90: 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 .. CAS IN
01CDA0: 4F 50 45 4E 0D 0A 20 20 20 20 20 20 20 43 41 53 OPEN.. CAS
01CDB0: 20 4F 55 54 20 43 4C 4F 53 45 0D 0A 0D 0A 0D 0A OUT CLOSE......
01CDC0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
01CDD0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
01CDE0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
01CDF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01CE00: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
01CE10: 31 33 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 134.............
01CE20: 0A 20 20 20 20 20 20 20 31 32 36 3A 20 43 41 53 . 126: CAS
01CE30: 20 49 4E 20 43 4C 4F 53 45 20 28 44 49 53 43 29 IN CLOSE (DISC)
01CE40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01CE50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01CE60: 20 20 20 20 20 20 20 20 20 23 42 43 37 41 0D 0A #BC7A..
01CE70: 0D 0A 20 20 20 20 20 20 20 43 6C 6F 73 65 20 74 .. Close t
01CE80: 68 65 20 69 6E 70 75 74 20 66 69 6C 65 20 70 72 he input file pr
01CE90: 6F 70 65 72 6C 79 2E 0D 0A 0D 0A 20 20 20 20 20 operly.....
01CEA0: 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 Action:....
01CEB0: 20 20 20 20 4D 61 72 6B 20 74 68 65 20 72 65 61 Mark the rea
01CEC0: 64 20 73 74 72 65 61 6D 20 61 73 20 63 6C 6F 73 d stream as clos
01CED0: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ed..... En
01CEE0: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
01CEF0: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E ... No con
01CF00: 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 ditions.....
01CF10: 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F Exit conditio
01CF20: 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 ns:.... If
01CF30: 20 74 68 65 20 73 74 72 65 61 6D 20 77 61 73 20 the stream was
01CF40: 63 6C 6F 73 65 64 20 4F 4B 3A 0D 0A 0D 0A 20 20 closed OK:....
01CF50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 Ca
01CF60: 72 72 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 rry true...
01CF70: 20 20 20 20 20 20 20 20 20 20 20 5A 65 72 6F 20 Zero
01CF80: 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 false...
01CF90: 20 20 20 20 20 20 20 20 41 20 63 6F 72 72 75 70 A corrup
01CFA0: 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 t..... If
01CFB0: 74 68 65 20 73 74 72 65 61 6D 20 69 73 20 6E 6F the stream is no
01CFC0: 74 20 6F 70 65 6E 3A 0D 0A 0D 0A 20 20 20 20 20 t open:....
01CFD0: 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 Carry
01CFE0: 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 false...
01CFF0: 20 20 20 20 20 20 20 20 20 5A 65 72 6F 20 66 61 Zero fa
01D000: 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 lse...
01D010: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
01D020: 20 61 6E 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 an error number
01D030: 20 28 23 30 45 29 2E 0D 0A 0D 0A 20 20 20 20 20 (#0E).....
01D040: 20 20 49 66 20 74 68 65 20 63 6C 6F 73 65 20 66 If the close f
01D050: 61 69 6C 65 64 20 66 6F 72 20 61 6E 79 20 6F 74 ailed for any ot
01D060: 68 65 72 20 72 65 61 73 6F 6E 3A 0D 0A 0D 0A 20 her reason:....
01D070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
01D080: 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 arry false...
01D090: 20 20 20 20 20 20 20 20 20 20 20 20 20 5A 65 72 Zer
01D0A0: 6F 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 o true...
01D0B0: 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 A conta
01D0C0: 69 6E 73 20 61 6E 20 65 72 72 6F 72 20 6E 75 6D ins an error num
01D0D0: 62 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ber..... A
01D0E0: 6C 77 61 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 lways:....
01D0F0: 20 20 20 20 20 20 20 20 20 20 42 43 2C 44 45 2C BC,DE,
01D100: 48 4C 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 HL and other fla
01D110: 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 gs corrupt...
01D120: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C All
01D130: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
01D140: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 preserved.....
01D150: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
01D160: 20 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 This rout
01D170: 69 6E 65 20 73 68 6F 75 6C 64 20 62 65 20 63 61 ine should be ca
01D180: 6C 6C 65 64 20 74 6F 20 63 6C 6F 73 65 20 61 20 lled to close a
01D190: 66 69 6C 65 20 61 66 74 65 72 20 20 72 65 61 64 file after read
01D1A0: 69 6E 67 20 20 66 72 6F 6D 20 20 69 74 0D 0A 20 ing from it..
01D1B0: 20 20 20 20 20 20 75 73 69 6E 67 20 65 69 74 68 using eith
01D1C0: 65 72 20 43 41 53 20 49 4E 20 43 48 41 52 20 6F er CAS IN CHAR o
01D1D0: 72 20 43 41 53 20 49 4E 20 44 49 52 45 43 54 2E r CAS IN DIRECT.
01D1E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 75 .... The u
01D1F0: 73 65 72 20 6D 61 79 20 72 65 63 6C 61 69 6D 20 ser may reclaim
01D200: 74 68 65 20 62 75 66 66 65 72 20 70 61 73 73 65 the buffer passe
01D210: 64 20 74 6F 20 43 41 53 20 49 4E 20 20 4F 50 45 d to CAS IN OPE
01D220: 4E 20 20 61 66 74 65 72 20 20 63 61 6C 6C 69 6E N after callin
01D230: 67 0D 0A 20 20 20 20 20 20 20 74 68 69 73 20 72 g.. this r
01D240: 6F 75 74 69 6E 65 2E 0D 0A 0D 0A 20 20 20 20 20 outine.....
01D250: 20 20 54 68 65 20 64 72 69 76 65 20 6D 6F 74 6F The drive moto
01D260: 72 20 69 66 20 74 75 72 6E 65 64 20 6F 66 66 20 r if turned off
01D270: 69 6D 6D 65 64 69 61 74 65 6C 79 20 61 66 74 65 immediately afte
01D280: 72 20 20 74 68 65 20 20 69 6E 70 75 74 20 20 66 r the input f
01D290: 69 6C 65 20 20 68 61 73 0D 0A 20 20 20 20 20 20 ile has..
01D2A0: 20 63 6C 6F 73 65 64 2E 20 54 68 69 73 20 69 73 closed. This is
01D2B0: 20 64 6F 6E 65 20 73 6F 20 74 68 61 74 20 61 20 done so that a
01D2C0: 6C 6F 61 64 65 64 20 70 72 6F 67 72 61 6D 20 20 loaded program
01D2D0: 77 68 69 63 68 20 20 74 61 6B 65 73 20 20 6F 76 which takes ov
01D2E0: 65 72 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 er the..
01D2F0: 6D 61 63 68 69 6E 65 20 69 73 20 6E 6F 74 20 6C machine is not l
01D300: 65 66 74 20 77 69 74 68 20 74 68 65 20 6D 6F 74 eft with the mot
01D310: 6F 72 20 72 75 6E 6E 69 6E 67 20 69 6E 64 65 66 or running indef
01D320: 69 6E 69 74 65 6C 79 2E 0D 0A 0D 0A 20 20 20 20 initely.....
01D330: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
01D340: 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 41 es:.... CA
01D350: 53 20 49 4E 20 41 42 41 4E 44 4F 4E 20 28 44 49 S IN ABANDON (DI
01D360: 53 43 29 0D 0A 20 20 20 20 20 20 20 43 41 53 20 SC).. CAS
01D370: 49 4E 20 43 4C 4F 53 45 0D 0A 20 20 20 20 20 20 IN CLOSE..
01D380: 20 43 41 53 20 49 4E 20 4F 50 45 4E 20 28 44 49 CAS IN OPEN (DI
01D390: 53 43 29 0D 0A 20 20 20 20 20 20 20 43 41 53 20 SC).. CAS
01D3A0: 4F 55 54 20 43 4C 4F 53 45 20 28 44 49 53 43 29 OUT CLOSE (DISC)
01D3B0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
01D3C0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
01D3D0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
01D3E0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
01D3F0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
01D400: 20 31 35 2E 31 33 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.135.........
01D410: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 32 37 3A ..... 127:
01D420: 20 43 41 53 20 49 4E 20 41 42 41 4E 44 4F 4E 20 CAS IN ABANDON
01D430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01D440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01D450: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 #BC
01D460: 37 44 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 7D...... C
01D470: 6C 6F 73 65 20 74 68 65 20 69 6E 70 75 74 20 66 lose the input f
01D480: 69 6C 65 20 69 6D 6D 65 64 69 61 74 65 6C 79 2E ile immediately.
01D490: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 ...... Act
01D4A0: 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion:......
01D4B0: 20 41 62 61 6E 64 6F 6E 20 72 65 61 64 69 6E 67 Abandon reading
01D4C0: 20 66 72 6F 6D 20 74 68 65 20 72 65 61 64 20 73 from the read s
01D4D0: 74 72 65 61 6D 20 61 6E 64 20 63 6C 6F 73 65 20 tream and close
01D4E0: 69 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 it.......
01D4F0: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
01D500: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F :...... No
01D510: 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A conditions.....
01D520: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
01D530: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
01D540: 20 20 20 20 20 20 41 46 2C 42 43 2C 44 45 20 61 AF,BC,DE a
01D550: 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A nd HL corrupt...
01D560: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
01D570: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
01D580: 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rved.......
01D590: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
01D5A0: 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E This routin
01D5B0: 65 20 69 73 20 20 69 6E 74 65 6E 64 65 64 20 20 e is intended
01D5C0: 66 6F 72 20 20 75 73 65 20 20 61 66 74 65 72 20 for use after
01D5D0: 20 61 6E 20 20 65 72 72 6F 72 20 20 6F 72 20 20 an error or
01D5E0: 69 6E 20 20 73 69 6D 69 6C 61 72 0D 0A 20 20 20 in similar..
01D5F0: 20 20 20 20 63 69 72 63 75 6D 73 74 61 6E 63 65 circumstance
01D600: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s....... T
01D610: 68 65 20 75 73 65 72 20 6D 61 79 20 72 65 63 6C he user may recl
01D620: 61 69 6D 20 74 68 65 20 62 75 66 66 65 72 20 70 aim the buffer p
01D630: 61 73 73 65 64 20 74 6F 20 43 41 53 20 49 4E 20 assed to CAS IN
01D640: 20 4F 50 45 4E 20 20 61 66 74 65 72 20 20 63 61 OPEN after ca
01D650: 6C 6C 69 6E 67 0D 0A 20 20 20 20 20 20 20 74 68 lling.. th
01D660: 69 73 20 72 6F 75 74 69 6E 65 2E 0D 0A 0D 0A 0D is routine......
01D670: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
01D680: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A d entries:......
01D690: 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 41 42 CAS IN AB
01D6A0: 41 4E 44 4F 4E 20 28 44 49 53 43 29 0D 0A 20 20 ANDON (DISC)..
01D6B0: 20 20 20 20 20 43 41 53 20 49 4E 20 43 4C 4F 53 CAS IN CLOS
01D6C0: 45 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E E.. CAS IN
01D6D0: 20 4F 50 45 4E 0D 0A 20 20 20 20 20 20 20 43 41 OPEN.. CA
01D6E0: 53 20 4F 55 54 20 41 42 41 4E 44 4F 4E 0D 0A 0D S OUT ABANDON...
01D6F0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
01D700: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
01D710: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
01D720: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
01D730: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
01D740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
01D750: 61 67 65 20 31 35 2E 31 33 36 0D 0A 0D 0A 0D 0A age 15.136......
01D760: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
01D770: 32 37 3A 20 43 41 53 20 49 4E 20 41 42 41 4E 44 27: CAS IN ABAND
01D780: 4F 4E 20 28 44 49 53 43 29 20 20 20 20 20 20 20 ON (DISC)
01D790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01D7A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01D7B0: 23 42 43 37 44 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #BC7D......
01D7C0: 20 20 43 6C 6F 73 65 20 74 68 65 20 69 6E 70 75 Close the inpu
01D7D0: 74 20 66 69 6C 65 20 69 6D 6D 65 64 69 61 74 65 t file immediate
01D7E0: 6C 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ly.......
01D7F0: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
01D800: 20 20 20 20 41 62 61 6E 64 6F 6E 20 72 65 61 64 Abandon read
01D810: 69 6E 67 20 66 72 6F 6D 20 74 68 65 20 72 65 61 ing from the rea
01D820: 64 20 73 74 72 65 61 6D 20 61 6E 64 20 63 6C 6F d stream and clo
01D830: 73 65 20 69 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 se it.......
01D840: 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 Entry conditi
01D850: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
01D860: 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D No conditions..
01D870: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
01D880: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
01D890: 0D 0A 20 20 20 20 20 20 20 41 46 2C 42 43 2C 44 .. AF,BC,D
01D8A0: 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 E and HL corrupt
01D8B0: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
01D8C0: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
01D8D0: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
01D8E0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
01D8F0: 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 . This rou
01D900: 74 69 6E 65 20 69 73 20 20 69 6E 74 65 6E 64 65 tine is intende
01D910: 64 20 20 66 6F 72 20 20 75 73 65 20 20 61 66 74 d for use aft
01D920: 65 72 20 20 61 6E 20 20 65 72 72 6F 72 20 20 6F er an error o
01D930: 72 20 20 69 6E 20 20 73 69 6D 69 6C 61 72 0D 0A r in similar..
01D940: 20 20 20 20 20 20 20 63 69 72 63 75 6D 73 74 61 circumsta
01D950: 6E 63 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 nces.......
01D960: 20 20 54 68 65 20 75 73 65 72 20 6D 61 79 20 72 The user may r
01D970: 65 63 6C 61 69 6D 20 74 68 65 20 62 75 66 66 65 eclaim the buffe
01D980: 72 20 70 61 73 73 65 64 20 74 6F 20 43 41 53 20 r passed to CAS
01D990: 49 4E 20 20 4F 50 45 4E 20 20 61 66 74 65 72 20 IN OPEN after
01D9A0: 20 63 61 6C 6C 69 6E 67 0D 0A 20 20 20 20 20 20 calling..
01D9B0: 20 74 68 69 73 20 72 6F 75 74 69 6E 65 2E 0D 0A this routine...
01D9C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
01D9D0: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
01D9E0: 0A 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E ... CAS IN
01D9F0: 20 41 42 41 4E 44 4F 4E 0D 0A 20 20 20 20 20 20 ABANDON..
01DA00: 20 43 41 53 20 49 4E 20 43 4C 4F 53 45 20 28 44 CAS IN CLOSE (D
01DA10: 49 53 43 29 0D 0A 20 20 20 20 20 20 20 43 41 53 ISC).. CAS
01DA20: 20 49 4E 20 4F 50 45 4E 20 28 44 49 53 43 29 0D IN OPEN (DISC).
01DA30: 0A 20 20 20 20 20 20 20 43 41 53 20 4F 55 54 20 . CAS OUT
01DA40: 41 42 41 4E 44 4F 4E 20 28 44 49 53 43 29 0D 0A ABANDON (DISC)..
01DA50: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
01DA60: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
01DA70: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
01DA80: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
01DA90: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
01DAA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01DAB0: 70 61 67 65 20 31 35 2E 31 33 37 0D 0A 0D 0A 0D page 15.137.....
01DAC0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
01DAD0: 31 32 38 3A 20 43 41 53 20 49 4E 20 43 48 41 52 128: CAS IN CHAR
01DAE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01DAF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01DB00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01DB10: 20 23 42 43 38 30 0D 0A 0D 0A 20 20 20 20 20 20 #BC80....
01DB20: 20 52 65 61 64 20 61 20 63 68 61 72 61 63 74 65 Read a characte
01DB30: 72 20 66 72 6F 6D 20 74 68 65 20 69 6E 70 75 74 r from the input
01DB40: 20 66 69 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 file.....
01DB50: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 Action:....
01DB60: 20 20 20 52 65 61 64 20 61 20 63 68 61 72 61 63 Read a charac
01DB70: 74 65 72 20 66 72 6F 6D 20 74 68 65 20 69 6E 70 ter from the inp
01DB80: 75 74 20 73 74 72 65 61 6D 2E 20 46 65 74 63 68 ut stream. Fetch
01DB90: 65 73 20 62 6C 6F 63 6B 73 20 20 66 72 6F 6D 20 es blocks from
01DBA0: 20 74 61 70 65 20 20 61 73 0D 0A 20 20 20 20 20 tape as..
01DBB0: 20 20 72 65 71 75 69 72 65 64 2E 0D 0A 0D 0A 20 required.....
01DBC0: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
01DBD0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
01DBE0: 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E No conditions.
01DBF0: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
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: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
01DD10: 20 20 20 20 20 20 49 66 20 74 68 65 20 63 68 61 If the cha
01DD20: 72 61 63 74 65 72 20 77 61 73 20 72 65 61 64 20 racter was read
01DD30: 4F 4B 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 OK:....
01DD40: 20 20 20 20 20 20 20 43 61 72 72 79 20 74 72 75 Carry tru
01DD50: 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 e...
01DD60: 20 20 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D Zero false..
01DD70: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
01DD80: 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 A contains the
01DD90: 63 68 61 72 61 63 74 65 72 20 72 65 61 64 20 66 character read f
01DDA0: 72 6F 6D 20 74 68 65 20 66 69 6C 65 2E 0D 0A 0D rom the file....
01DDB0: 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 65 . If the e
01DDC0: 6E 64 20 6F 66 20 74 68 65 20 66 69 6C 65 20 77 nd of the file w
01DDD0: 61 73 20 66 6F 75 6E 64 3A 0D 0A 0D 0A 20 20 20 as found:....
01DDE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 Car
01DDF0: 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 ry false...
01DE00: 20 20 20 20 20 20 20 20 20 20 20 5A 65 72 6F 20 Zero
01DE10: 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 false...
01DE20: 20 20 20 20 20 20 20 20 49 6E 20 56 31 2E 31 3A In V1.1:
01DE30: 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 65 A contains an e
01DE40: 72 72 6F 72 20 6E 75 6D 62 65 72 20 28 23 30 45 rror number (#0E
01DE50: 20 6F 72 20 23 30 46 29 2E 0D 0A 20 20 20 20 20 or #0F)...
01DE60: 20 20 20 20 20 20 20 20 20 20 20 49 6E 20 56 31 In V1
01DE70: 2E 30 3A 20 41 20 63 6F 72 72 75 70 74 2E 0D 0A .0: A corrupt...
01DE80: 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 .. If the
01DE90: 75 73 65 72 20 68 69 74 20 65 73 63 61 70 65 3A user hit escape:
01DEA0: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
01DEB0: 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E Carry false.
01DEC0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
01DED0: 20 20 5A 65 72 6F 20 74 72 75 65 2E 0D 0A 20 20 Zero true...
01DEE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6E In
01DEF0: 20 56 31 2E 31 3A 20 41 20 63 6F 6E 74 61 69 6E V1.1: A contain
01DF00: 73 20 61 6E 20 65 72 72 6F 72 20 6E 75 6D 62 65 s an error numbe
01DF10: 72 20 28 23 30 30 29 2E 0D 0A 20 20 20 20 20 20 r (#00)...
01DF20: 20 20 20 20 20 20 20 20 20 20 49 6E 20 56 31 2E In V1.
01DF30: 30 3A 20 41 20 63 6F 72 72 75 70 74 2E 0D 0A 20 0: A corrupt...
01DF40: 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 20 Always:..
01DF50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 I
01DF60: 58 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 X and other flag
01DF70: 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 s corrupt...
01DF80: 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 All
01DF90: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
01DFA0: 70 72 65 73 65 72 76 65 64 2E 0D 0A 20 20 20 20 preserved...
01DFB0: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 Notes:....
01DFC0: 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 This routine
01DFD0: 20 63 61 6E 20 72 65 74 75 72 6E 20 74 68 72 65 can return thre
01DFE0: 65 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 73 3A e error numbers:
01DFF0: 0D 0A 0D 0A 20 20 20 20 20 20 20 23 30 30 3A 20 .... #00:
01E000: 20 20 20 20 54 68 65 20 75 73 65 72 20 68 69 74 The user hit
01E010: 20 65 73 63 61 70 65 2E 0D 0A 20 20 20 20 20 20 escape...
01E020: 20 23 30 45 3A 20 20 20 20 20 54 68 65 20 73 74 #0E: The st
01E030: 72 65 61 6D 20 69 73 20 6E 6F 74 20 6F 70 65 6E ream is not open
01E040: 20 66 6F 72 20 72 65 61 64 69 6E 67 20 63 68 61 for reading cha
01E050: 72 61 63 74 65 72 73 20 6F 72 20 74 68 65 20 75 racters or the u
01E060: 73 65 72 20 68 69 74 0D 0A 20 20 20 20 20 20 20 ser hit..
01E070: 20 20 20 20 20 20 20 20 20 65 73 63 61 70 65 20 escape
01E080: 70 72 65 76 69 6F 75 73 6C 79 2E 0D 0A 20 20 20 previously...
01E090: 20 20 20 20 23 30 46 3A 20 20 20 20 20 48 61 76 #0F: Hav
01E0A0: 65 20 72 65 61 63 68 65 64 20 74 68 65 20 65 6E e reached the en
01E0B0: 64 20 6F 66 20 74 68 65 20 66 69 6C 65 2E 0D 0A d of the file...
01E0C0: 0D 0A 20 20 20 20 20 20 20 4F 6E 63 65 20 74 68 .. Once th
01E0D0: 65 20 66 69 72 73 74 20 63 68 61 72 61 63 74 65 e first characte
01E0E0: 72 20 68 61 73 20 62 65 65 6E 20 72 65 61 64 20 r has been read
01E0F0: 66 72 6F 6D 20 61 20 66 69 6C 65 20 69 74 20 63 from a file it c
01E100: 61 6E 20 6F 6E 6C 79 20 62 65 20 75 73 65 64 0D an only be used.
01E110: 0A 20 20 20 20 20 20 20 66 6F 72 20 63 68 61 72 . for char
01E120: 61 63 74 65 72 20 62 79 20 63 68 61 72 61 63 74 acter by charact
01E130: 65 72 20 61 63 63 65 73 73 2E 20 49 74 20 69 73 er access. It is
01E140: 20 6E 6F 74 20 20 70 6F 73 73 69 62 6C 65 20 20 not possible
01E150: 74 6F 20 20 73 77 69 74 63 68 20 20 74 6F 0D 0A to switch to..
01E160: 20 20 20 20 20 20 20 64 69 72 65 63 74 20 72 65 direct re
01E170: 61 64 69 6E 67 20 28 62 79 20 43 41 53 20 49 4E ading (by CAS IN
01E180: 20 44 49 52 45 43 54 29 2E 0D 0A 0D 0A 20 20 20 DIRECT).....
01E190: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
01E1A0: 69 65 73 3A 0D 0A 20 20 20 20 20 20 20 43 41 53 ies:.. CAS
01E1B0: 20 49 4E 20 43 48 41 52 20 28 44 49 53 43 29 0D IN CHAR (DISC).
01E1C0: 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 43 . CAS IN C
01E1D0: 4C 4F 53 45 0D 0A 20 20 20 20 20 20 20 43 41 53 LOSE.. CAS
01E1E0: 20 49 4E 20 44 49 52 45 43 54 0D 0A 20 20 20 20 IN DIRECT..
01E1F0: 20 20 20 43 41 53 20 49 4E 20 4F 50 45 4E 0D 0A CAS IN OPEN..
01E200: 20 20 20 20 20 20 20 43 41 53 20 4F 55 54 20 43 CAS OUT C
01E210: 48 41 52 0D 0A 20 20 20 20 20 20 20 43 41 53 20 HAR.. CAS
01E220: 52 45 54 55 52 4E 0D 0A 20 20 20 20 20 20 20 43 RETURN.. C
01E230: 41 53 20 54 45 53 54 20 45 4F 46 0D 0A 0D 0A 20 AS TEST EOF....
01E240: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
01E250: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
01E260: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
01E270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01E280: 20 70 61 67 65 20 31 35 2E 31 33 38 0D 0A 0D 0A page 15.138....
01E290: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
01E2A0: 20 31 32 38 3A 20 43 41 53 20 49 4E 20 43 48 41 128: CAS IN CHA
01E2B0: 52 20 28 44 49 53 43 29 20 20 20 20 20 20 20 20 R (DISC)
01E2C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01E2D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01E2E0: 20 20 23 42 43 38 30 0D 0A 0D 0A 20 20 20 20 20 #BC80....
01E2F0: 20 20 52 65 61 64 20 61 20 63 68 61 72 61 63 74 Read a charact
01E300: 65 72 20 66 72 6F 6D 20 61 6E 20 69 6E 70 75 74 er from an input
01E310: 20 66 69 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 file.....
01E320: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 Action:....
01E330: 20 20 20 52 65 61 64 20 61 20 63 68 61 72 61 63 Read a charac
01E340: 74 65 72 20 66 72 6F 6D 20 74 68 65 20 69 6E 70 ter from the inp
01E350: 75 74 20 73 74 72 65 61 6D 2E 0D 0A 0D 0A 20 20 ut stream.....
01E360: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
01E370: 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tions:....
01E380: 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D No conditions:.
01E390: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
01E3A0: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
01E3B0: 20 20 20 20 20 49 66 20 74 68 65 20 63 68 61 72 If the char
01E3C0: 61 63 74 65 72 20 77 61 73 20 72 65 61 64 20 4F acter was read O
01E3D0: 4B 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 K:....
01E3E0: 20 20 20 20 20 20 20 43 61 72 72 79 20 74 72 75 Carry tru
01E3F0: 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 e..
01E400: 20 20 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D Zero false..
01E410: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
01E420: 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 A contains the
01E430: 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 20 character read
01E440: 66 72 6F 6D 20 74 68 65 20 66 69 6C 65 2E 0D 0A from the file...
01E450: 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 .. If the
01E460: 65 6E 64 20 6F 66 20 74 68 65 20 66 69 6C 65 20 end of the file
01E470: 77 61 73 20 66 6F 75 6E 64 2C 20 6F 72 20 73 74 was found, or st
01E480: 72 65 61 6D 20 6E 6F 74 20 6F 70 65 6E 20 61 73 ream not open as
01E490: 20 65 78 70 65 63 74 65 64 3A 0D 0A 20 20 20 20 expected:..
01E4A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 Car
01E4B0: 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 ry false...
01E4C0: 20 20 20 20 20 20 20 20 20 20 20 20 5A 65 72 6F Zero
01E4D0: 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 false...
01E4E0: 20 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 A cont
01E4F0: 61 69 6E 73 20 61 6E 20 65 72 72 6F 72 20 6E 75 ains an error nu
01E500: 6D 62 65 72 20 28 23 30 45 2C 20 23 30 46 20 6F mber (#0E, #0F o
01E510: 72 20 23 31 41 29 2E 0D 0A 0D 0A 20 20 20 20 20 r #1A).....
01E520: 20 20 49 66 20 66 61 69 6C 65 64 20 66 6F 72 20 If failed for
01E530: 61 6E 79 20 6F 74 68 65 72 20 72 65 61 73 6F 6E any other reason
01E540: 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 :..
01E550: 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E Carry false.
01E560: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
01E570: 20 20 20 5A 65 72 6F 20 74 72 75 65 2E 0D 0A 20 Zero true...
01E580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01E590: 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 65 72 A contains an er
01E5A0: 72 6F 72 20 6E 75 6D 62 65 72 2E 0D 0A 20 20 20 ror number...
01E5B0: 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 20 20 20 Always:..
01E5C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 58 IX
01E5D0: 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 73 and other flags
01E5E0: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
01E5F0: 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 All
01E600: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
01E610: 70 72 65 73 65 72 76 65 64 2E 0D 0A 20 20 20 20 preserved...
01E620: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 Notes:....
01E630: 20 20 20 20 4F 6E 63 65 20 74 68 65 20 63 68 61 Once the cha
01E640: 72 61 63 74 65 72 20 68 61 73 20 62 65 65 6E 20 racter has been
01E650: 72 65 61 64 20 66 72 6F 6D 20 61 20 66 69 6C 65 read from a file
01E660: 20 74 68 65 20 72 65 73 74 20 6F 66 20 74 68 65 the rest of the
01E670: 20 66 69 6C 65 20 20 6D 61 79 0D 0A 20 20 20 20 file may..
01E680: 20 20 20 6F 6E 6C 79 20 62 65 20 72 65 61 64 20 only be read
01E690: 63 68 61 72 61 63 74 65 72 20 20 62 79 20 20 63 character by c
01E6A0: 68 61 72 61 63 74 65 72 20 20 28 75 73 69 6E 67 haracter (using
01E6B0: 20 20 43 41 53 20 20 49 4E 20 20 43 48 41 52 29 CAS IN CHAR)
01E6C0: 2E 20 20 49 74 20 20 69 73 0D 0A 20 20 20 20 20 . It is..
01E6D0: 20 20 69 6D 70 6F 73 73 69 62 6C 65 20 74 6F 20 impossible to
01E6E0: 73 77 69 74 63 68 20 74 6F 20 64 69 72 65 63 74 switch to direct
01E6F0: 20 72 65 61 64 69 6E 67 20 28 62 79 20 43 41 53 reading (by CAS
01E700: 20 49 4E 20 44 49 52 45 43 54 29 2E 0D 0A 0D 0A IN DIRECT).....
01E710: 20 20 20 20 20 20 20 54 68 65 20 43 50 2F 4D 20 The CP/M
01E720: 65 6E 64 20 6F 66 20 66 69 6C 65 20 63 68 61 72 end of file char
01E730: 61 63 74 65 72 20 28 23 31 41 29 20 69 73 20 74 acter (#1A) is t
01E740: 72 65 61 74 65 64 20 61 73 20 65 6E 64 20 6F 66 reated as end of
01E750: 20 66 69 6C 65 20 20 28 63 61 72 72 79 0D 0A 20 file (carry..
01E760: 20 20 20 20 20 20 66 61 6C 73 65 2C 20 7A 65 72 false, zer
01E770: 6F 20 66 61 6C 73 65 29 2E 20 20 48 6F 77 65 76 o false). Howev
01E780: 65 72 2C 20 20 69 74 20 20 69 73 20 20 70 6F 73 er, it is pos
01E790: 73 69 62 6C 65 20 20 74 6F 20 20 63 6F 6E 74 69 sible to conti
01E7A0: 6E 75 65 20 20 72 65 61 64 69 6E 67 0D 0A 20 20 nue reading..
01E7B0: 20 20 20 20 20 63 68 61 72 61 63 74 65 72 73 20 characters
01E7C0: 75 6E 74 69 6C 20 74 68 65 20 68 61 72 64 20 65 until the hard e
01E7D0: 6E 64 20 6F 66 20 66 69 6C 65 2E 20 54 68 65 20 nd of file. The
01E7E0: 65 72 72 6F 72 20 20 6E 75 6D 62 65 72 20 20 72 error number r
01E7F0: 65 74 75 72 6E 65 64 20 20 69 73 0D 0A 20 20 20 eturned is..
01E800: 20 20 20 20 73 65 74 20 74 6F 20 23 31 41 20 66 set to #1A f
01E810: 6F 72 20 73 6F 66 74 20 28 43 50 2F 4D 29 20 65 or soft (CP/M) e
01E820: 6E 64 20 6F 66 20 66 69 6C 65 20 61 6E 64 20 23 nd of file and #
01E830: 30 46 20 66 6F 72 20 68 61 72 64 20 65 6E 64 20 0F for hard end
01E840: 20 6F 66 20 20 66 69 6C 65 2E 0D 0A 20 20 20 20 of file...
01E850: 20 20 20 54 68 65 20 61 63 74 69 6F 6E 20 66 6F The action fo
01E860: 72 20 73 70 6F 74 74 69 6E 67 20 73 6F 66 74 20 r spotting soft
01E870: 61 6E 64 20 6F 66 20 20 66 69 6C 65 20 20 69 73 and of file is
01E880: 20 20 6E 6F 74 20 20 70 65 72 66 6F 72 6D 65 64 not performed
01E890: 20 20 62 79 20 20 74 68 65 0D 0A 20 20 20 20 20 by the..
01E8A0: 20 20 65 71 75 69 76 61 6C 65 6E 74 20 63 61 73 equivalent cas
01E8B0: 73 65 74 74 65 20 76 65 72 73 69 6F 6E 20 6F 66 sette version of
01E8C0: 20 74 68 65 20 72 6F 75 74 69 6E 65 20 61 6E 64 the routine and
01E8D0: 20 77 69 6C 6C 20 6E 65 76 65 72 20 20 72 65 74 will never ret
01E8E0: 75 72 6E 20 20 23 31 41 0D 0A 20 20 20 20 20 20 urn #1A..
01E8F0: 20 77 68 65 6E 20 63 61 72 72 79 20 69 73 20 66 when carry is f
01E900: 61 6C 73 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 alse.....
01E910: 49 66 20 61 20 66 69 6C 65 20 63 6F 6E 74 61 69 If a file contai
01E920: 6E 69 6E 67 20 62 69 6E 61 72 79 20 64 61 74 61 ning binary data
01E930: 20 69 73 20 72 65 61 64 20 75 73 69 6E 67 20 74 is read using t
01E940: 68 69 73 20 20 72 6F 75 74 69 6E 65 20 20 74 68 his routine th
01E950: 65 6E 20 20 69 74 0D 0A 20 20 20 20 20 20 20 77 en it.. w
01E960: 69 6C 6C 20 62 65 20 6E 65 63 65 73 73 61 72 79 ill be necessary
01E970: 20 74 6F 20 73 70 6F 74 20 73 6F 66 74 20 45 4F to spot soft EO
01E980: 46 20 61 6E 64 20 69 67 6E 6F 72 65 20 69 74 2E F and ignore it.
01E990: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
01E9A0: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 ed entries:....
01E9B0: 20 20 20 20 20 20 43 41 53 20 49 4E 20 43 48 41 CAS IN CHA
01E9C0: 52 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E R.. CAS IN
01E9D0: 20 43 4C 4F 53 45 20 28 44 49 53 43 29 0D 0A 20 CLOSE (DISC)..
01E9E0: 20 20 20 20 20 20 43 41 53 20 49 4E 20 44 49 52 CAS IN DIR
01E9F0: 45 43 54 20 28 44 49 53 43 29 0D 0A 20 20 20 20 ECT (DISC)..
01EA00: 20 20 20 43 41 53 20 49 4E 20 4F 50 45 4E 20 28 CAS IN OPEN (
01EA10: 44 49 53 43 29 0D 0A 20 20 20 20 20 20 20 43 41 DISC).. CA
01EA20: 53 20 4F 55 54 20 43 48 41 52 20 28 44 49 53 43 S OUT CHAR (DISC
01EA30: 29 0D 0A 20 20 20 20 20 20 20 43 41 53 20 52 45 ).. CAS RE
01EA40: 54 55 52 4E 20 28 44 49 53 43 29 0D 0A 20 20 20 TURN (DISC)..
01EA50: 20 20 20 20 43 41 53 20 54 45 53 54 20 45 4F 46 CAS TEST EOF
01EA60: 20 28 44 49 53 43 29 0D 0A 0D 0A 20 20 20 20 20 (DISC)....
01EA70: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
01EA80: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
01EA90: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
01EAA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
01EAB0: 65 20 31 35 2E 31 33 39 0D 0A 1A 20 20 20 20 20 e 15.139...
01EAC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01EAD0: 20 20 20 20 23 42 43 37 37 0D 0A 0D 0A 0D 0A 20 #BC77......
01EAE0: 20 20 20 20 20 20 4F 70 65 6E 20 61 20 66 69 6C Open a fil
01EAF0: 65 20 66 6F 72 20 69 6E 70 75 74 2E 0D 0A 0D 0A e for input.....
01EB00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
01EB10: 20 20 20 31 30 33 3A 20 53 43 52 20 47 45 54 20 103: SCR GET
01EB20: 49 4E 4B 20 20 20 20 20 20 20 20 20 20 20 20 20 INK
01EB30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01EB40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01EB50: 20 20 20 20 23 42 43 33 35 0D 0A 0D 0A 0D 0A 20 #BC35......
01EB60: 20 20 20 20 20 20 41 73 6B 20 74 68 65 20 63 6F Ask the co
01EB70: 6C 6F 75 72 73 20 61 6E 20 69 6E 6B 20 69 73 20 lours an ink is
01EB80: 63 75 72 72 65 6E 74 6C 79 20 64 69 73 70 6C 61 currently displa
01EB90: 79 65 64 20 69 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 yed in.......
01EBA0: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D Action:.....
01EBB0: 0A 20 20 20 20 20 20 20 47 65 74 20 74 68 65 20 . Get the
01EBC0: 74 77 6F 20 63 6F 6C 6F 75 72 73 20 74 68 61 74 two colours that
01EBD0: 20 61 72 65 20 75 73 65 64 20 74 6F 20 64 69 73 are used to dis
01EBE0: 70 6C 61 79 20 61 6E 20 69 6E 6B 20 6F 6E 20 74 play an ink on t
01EBF0: 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A he screen.......
01EC00: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
01EC10: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
01EC20: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
01EC30: 61 6E 20 69 6E 6B 20 6E 75 6D 62 65 72 2E 0D 0A an ink number...
01EC40: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
01EC50: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
01EC60: 0A 20 20 20 20 20 20 20 42 20 63 6F 6E 74 61 69 . B contai
01EC70: 6E 73 20 74 68 65 20 66 69 72 73 74 20 63 6F 6C ns the first col
01EC80: 6F 75 72 2E 0D 0A 20 20 20 20 20 20 20 43 20 63 our... C c
01EC90: 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 65 63 6F ontains the seco
01ECA0: 6E 64 20 63 6F 6C 6F 75 72 2E 0D 0A 0D 0A 0D 0A nd colour.......
01ECB0: 20 20 20 20 20 20 20 41 46 2C 44 45 20 61 6E 64 AF,DE and
01ECC0: 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 HL corrupt...
01ECD0: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
01ECE0: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
01ECF0: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
01ED00: 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 Notes:......
01ED10: 20 20 20 54 68 65 20 69 6E 6B 20 6E 75 6D 62 65 The ink numbe
01ED20: 72 20 69 73 20 6D 61 73 6B 65 64 20 77 69 74 68 r is masked with
01ED30: 20 23 30 46 20 20 74 6F 20 20 6D 61 6B 65 20 20 #0F to make
01ED40: 73 75 72 65 20 20 69 74 20 20 69 73 20 20 6C 65 sure it is le
01ED50: 67 61 6C 2E 20 20 54 68 65 0D 0A 20 20 20 20 20 gal. The..
01ED60: 20 20 63 6F 6C 6F 75 72 73 20 72 65 74 75 72 6E colours return
01ED70: 65 64 20 6D 61 79 20 6E 6F 74 20 62 65 20 74 68 ed may not be th
01ED80: 65 20 73 61 6D 65 20 61 73 20 74 68 6F 73 65 20 e same as those
01ED90: 73 75 70 70 6C 69 65 64 20 74 6F 20 20 74 68 65 supplied to the
01EDA0: 20 20 53 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 Screen..
01EDB0: 20 50 61 63 6B 20 61 73 20 74 68 65 20 63 6F 6C Pack as the col
01EDC0: 6F 75 72 73 20 61 72 65 20 6D 61 73 6B 65 64 20 ours are masked
01EDD0: 77 68 65 6E 20 74 68 65 79 20 61 72 65 20 73 65 when they are se
01EDE0: 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 t....... T
01EDF0: 68 65 20 6E 65 77 20 63 6F 6C 6F 75 72 20 66 6F he new colour fo
01EE00: 72 20 61 6E 20 69 6E 6B 20 61 72 65 20 6E 6F 74 r an ink are not
01EE10: 20 73 65 6E 74 20 20 74 6F 20 20 74 68 65 20 20 sent to the
01EE20: 68 61 72 64 77 61 72 65 20 20 69 6D 6D 65 64 69 hardware immedi
01EE30: 61 74 65 6C 79 0D 0A 20 20 20 20 20 20 20 77 68 ately.. wh
01EE40: 65 6E 20 74 68 65 79 20 61 72 65 20 73 65 74 2E en they are set.
01EE50: 20 54 68 65 79 20 61 72 65 20 73 74 6F 72 65 64 They are stored
01EE60: 20 61 6E 64 20 61 70 70 65 61 72 20 6F 6E 20 74 and appear on t
01EE70: 68 65 20 73 63 72 65 65 6E 20 20 77 68 65 6E 20 he screen when
01EE80: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 6E 65 78 the.. nex
01EE90: 74 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 t frame flyback
01EEA0: 6F 63 63 75 72 73 2E 20 54 68 69 73 20 6D 65 61 occurs. This mea
01EEB0: 6E 73 20 74 68 61 74 20 74 68 65 20 20 63 6F 6C ns that the col
01EEC0: 6F 75 72 73 20 20 72 65 74 75 72 6E 65 64 20 20 ours returned
01EED0: 6D 61 79 0D 0A 20 20 20 20 20 20 20 6E 6F 74 20 may.. not
01EEE0: 61 63 74 75 61 6C 6C 79 20 62 65 20 76 69 73 69 actually be visi
01EEF0: 62 6C 65 20 74 6F 20 74 68 65 20 75 73 65 72 20 ble to the user
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: 79 65 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 yet.......
01F010: 20 54 68 65 20 64 65 66 61 75 6C 74 20 73 65 74 The default set
01F020: 74 69 6E 67 73 20 66 6F 72 20 74 68 65 20 69 6E tings for the in
01F030: 6B 73 20 61 6E 64 20 74 68 65 20 20 76 61 72 69 ks and the vari
01F040: 6F 75 73 20 20 63 6F 6C 6F 75 72 73 20 20 61 76 ous colours av
01F050: 61 69 6C 61 62 6C 65 0D 0A 20 20 20 20 20 20 20 ailable..
01F060: 61 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6E are described in
01F070: 20 41 70 70 65 6E 64 69 78 20 56 2E 0D 0A 0D 0A Appendix V.....
01F080: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
01F090: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 ntries:....
01F0A0: 20 20 47 52 41 20 47 45 54 20 50 41 50 45 52 0D GRA GET PAPER.
01F0B0: 0A 20 20 20 20 20 20 20 47 52 41 20 47 45 54 20 . GRA GET
01F0C0: 50 45 4E 0D 0A 20 20 20 20 20 20 20 53 43 52 20 PEN.. SCR
01F0D0: 47 45 54 20 42 4F 52 44 45 52 0D 0A 20 20 20 20 GET BORDER..
01F0E0: 20 20 20 53 43 52 20 53 45 54 20 49 4E 4B 0D 0A SCR SET INK..
01F0F0: 20 20 20 20 20 20 20 54 58 54 20 47 45 54 20 50 TXT GET P
01F100: 41 50 45 52 0D 0A 20 20 20 20 20 20 20 54 58 54 APER.. TXT
01F110: 20 47 45 54 20 50 45 4E 0D 0A 0D 0A 0D 0A 0D 0A GET PEN........
01F120: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
01F130: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
01F140: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
01F150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F160: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 30 page 15.10
01F170: 38 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 8..............
01F180: 20 20 20 20 20 20 31 30 34 3A 20 53 43 52 20 53 104: SCR S
01F190: 45 54 20 42 4F 52 44 45 52 20 20 20 20 20 20 20 ET BORDER
01F1A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F1B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F1C0: 20 20 20 20 20 20 20 23 42 43 33 38 0D 0A 0D 0A #BC38....
01F1D0: 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 65 .. Set the
01F1E0: 20 63 6F 6C 6F 75 72 73 20 69 6E 20 77 68 69 63 colours in whic
01F1F0: 68 20 74 6F 20 64 69 73 70 6C 61 79 20 74 68 65 h to display the
01F200: 20 62 6F 72 64 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 border.......
01F210: 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A Action:....
01F220: 0D 0A 20 20 20 20 20 20 20 53 65 74 20 77 68 69 .. Set whi
01F230: 63 68 20 74 77 6F 20 63 6F 6C 6F 75 72 73 20 77 ch two colours w
01F240: 69 6C 6C 20 62 65 20 75 73 65 64 20 74 6F 20 64 ill be used to d
01F250: 69 73 70 6C 61 79 20 74 68 65 20 62 6F 72 64 65 isplay the borde
01F260: 72 2E 20 49 66 20 20 74 68 65 20 20 74 77 6F 0D r. If the two.
01F270: 0A 20 20 20 20 20 20 20 63 6F 6C 6F 75 72 73 20 . colours
01F280: 61 72 65 20 74 68 65 20 73 61 6D 65 20 74 68 65 are the same the
01F290: 6E 20 74 68 65 20 62 6F 72 64 65 72 20 77 69 6C n the border wil
01F2A0: 6C 20 72 65 6D 61 69 6E 20 61 20 73 74 65 61 64 l remain a stead
01F2B0: 79 20 20 63 6F 6C 6F 75 72 2E 20 20 49 66 0D 0A y colour. If..
01F2C0: 20 20 20 20 20 20 20 74 68 65 20 63 6F 6C 6F 75 the colou
01F2D0: 72 73 20 61 72 65 20 64 69 66 66 65 72 65 6E 74 rs are different
01F2E0: 20 74 68 65 6E 20 74 68 65 20 62 6F 72 64 65 72 then the border
01F2F0: 20 77 69 6C 6C 20 61 6C 74 65 72 6E 61 74 65 20 will alternate
01F300: 62 65 74 77 65 65 6E 20 74 68 65 73 65 0D 0A 20 between these..
01F310: 20 20 20 20 20 20 74 77 6F 20 63 6F 6C 6F 75 72 two colour
01F320: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 s....... E
01F330: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
01F340: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 42 20 63 ...... B c
01F350: 6F 6E 74 61 69 6E 73 20 74 68 65 20 66 69 72 73 ontains the firs
01F360: 74 20 63 6F 6C 6F 75 72 2E 0D 0A 20 20 20 20 20 t colour...
01F370: 20 20 43 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 C contains the
01F380: 20 73 65 63 6F 6E 64 20 63 6F 6C 6F 75 72 2E 0D second colour..
01F390: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
01F3A0: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
01F3B0: 0D 0A 20 20 20 20 20 20 20 41 46 2C 42 43 2C 44 .. AF,BC,D
01F3C0: 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 E and HL corrupt
01F3D0: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
01F3E0: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
01F3F0: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
01F400: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
01F410: 0A 20 20 20 20 20 20 20 54 68 65 20 63 6F 6C 6F . The colo
01F420: 75 72 73 20 61 72 65 20 6D 61 73 6B 65 64 20 77 urs are masked w
01F430: 69 74 68 20 23 31 46 20 74 6F 20 65 6E 73 75 72 ith #1F to ensur
01F440: 65 20 74 68 61 74 20 74 68 65 79 20 61 72 65 20 e that they are
01F450: 6C 65 67 61 6C 2E 20 43 6F 6C 6F 75 72 73 0D 0A legal. Colours..
01F460: 20 20 20 20 20 20 20 32 37 2E 2E 33 31 20 61 72 27..31 ar
01F470: 65 20 6E 6F 74 20 69 6E 74 65 6E 64 65 64 20 66 e not intended f
01F480: 6F 72 20 75 73 65 3B 20 74 68 65 79 20 61 72 65 or use; they are
01F490: 20 6D 65 72 65 6C 79 20 64 75 70 6C 69 63 61 74 merely duplicat
01F4A0: 65 73 20 20 6F 66 20 20 6F 74 68 65 72 0D 0A 20 es of other..
01F4B0: 20 20 20 20 20 20 63 6F 6C 6F 75 72 73 20 61 76 colours av
01F4C0: 61 69 6C 61 62 6C 65 2E 0D 0A 0D 0A 0D 0A 20 20 ailable.......
01F4D0: 20 20 20 20 20 54 68 65 20 20 6E 65 77 20 20 63 The new c
01F4E0: 6F 6C 6F 75 72 73 20 20 66 6F 72 20 20 74 68 65 olours for the
01F4F0: 20 20 62 6F 72 64 65 72 20 20 61 72 65 20 20 6E border are n
01F500: 6F 74 20 20 73 65 6E 74 20 20 74 6F 20 20 74 68 ot sent to th
01F510: 65 20 20 68 61 72 64 77 61 72 65 0D 0A 20 20 20 e hardware..
01F520: 20 20 20 20 69 6D 6D 65 64 69 61 74 65 6C 79 2E immediately.
01F530: 20 54 68 65 79 20 61 72 65 20 73 74 6F 72 65 64 They are stored
01F540: 20 61 6E 64 20 77 69 6C 6C 20 61 70 70 65 61 72 and will appear
01F550: 20 6F 6E 20 74 68 65 20 20 73 63 72 65 65 6E 20 on the screen
01F560: 20 77 68 65 6E 20 20 74 68 65 0D 0A 20 20 20 20 when the..
01F570: 20 20 20 6E 65 78 74 20 66 72 61 6D 65 20 66 6C next frame fl
01F580: 79 62 61 63 6B 20 6F 63 63 75 72 73 2E 0D 0A 0D yback occurs....
01F590: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6C 65 ... The le
01F5A0: 6E 67 74 68 20 6F 66 20 74 69 6D 65 20 66 6F 72 ngth of time for
01F5B0: 20 77 68 69 63 68 20 65 61 63 68 20 63 6F 6C 6F which each colo
01F5C0: 75 72 20 69 73 20 64 69 73 70 6C 61 79 65 64 20 ur is displayed
01F5D0: 20 6F 6E 20 20 74 68 65 20 20 73 63 72 65 65 6E on the screen
01F5E0: 0D 0A 20 20 20 20 20 20 20 63 61 6E 20 62 65 20 .. can be
01F5F0: 73 65 74 20 62 79 20 63 61 6C 6C 69 6E 67 20 53 set by calling S
01F600: 43 52 20 53 45 54 20 46 4C 41 53 48 49 4E 47 2E CR SET FLASHING.
01F610: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 62 .... The b
01F620: 6F 72 64 65 72 20 69 73 20 73 65 74 20 74 6F 20 order is set to
01F630: 69 74 73 20 64 65 66 61 75 6C 74 20 63 6F 6C 6F its default colo
01F640: 75 72 73 20 61 74 20 45 4D 53 20 61 6E 64 20 77 urs at EMS and w
01F650: 68 65 6E 20 53 43 52 20 52 45 53 45 54 20 20 69 hen SCR RESET i
01F660: 73 0D 0A 20 20 20 20 20 20 20 63 61 6C 6C 65 64 s.. called
01F670: 2E 20 54 68 65 20 64 65 66 61 75 6C 74 20 63 6F . The default co
01F680: 6C 6F 75 72 20 61 6E 64 20 74 68 65 20 63 6F 6C lour and the col
01F690: 6F 75 72 73 20 61 76 61 69 6C 61 62 6C 65 20 61 ours available a
01F6A0: 72 65 20 64 65 73 63 72 69 62 65 64 20 20 69 6E re described in
01F6B0: 0D 0A 20 20 20 20 20 20 20 41 70 70 65 6E 64 69 .. Appendi
01F6C0: 78 20 56 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 x V..... R
01F6D0: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
01F6E0: 0A 0D 0A 20 20 20 20 20 20 20 53 43 52 20 47 45 ... SCR GE
01F6F0: 54 20 42 4F 52 44 45 52 0D 0A 20 20 20 20 20 20 T BORDER..
01F700: 20 53 43 52 20 53 45 54 20 46 4C 41 53 48 49 4E SCR SET FLASHIN
01F710: 47 0D 0A 20 20 20 20 20 20 20 53 43 52 20 53 45 G.. SCR SE
01F720: 54 20 49 4E 4B 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D T INK...........
01F730: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
01F740: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
01F750: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
01F760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F770: 20 20 20 70 61 67 65 20 31 35 2E 31 30 39 0D 0A page 15.109..
01F780: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
01F790: 20 20 20 31 30 35 3A 20 53 43 52 20 47 45 54 20 105: SCR GET
01F7A0: 42 4F 52 44 45 52 20 20 20 20 20 20 20 20 20 20 BORDER
01F7B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F7C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01F7D0: 20 20 20 20 23 42 43 33 42 0D 0A 0D 0A 0D 0A 20 #BC3B......
01F7E0: 20 20 20 20 20 20 41 73 6B 20 74 68 65 20 63 6F Ask the co
01F7F0: 6C 6F 75 72 73 20 74 68 65 20 62 6F 72 64 65 72 lours the border
01F800: 20 69 73 20 63 75 72 72 65 6E 74 6C 79 20 64 69 is currently di
01F810: 73 70 6C 61 79 65 64 20 69 6E 2E 0D 0A 0D 0A 0D splayed in......
01F820: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
01F830: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 65 74 20 ..... Get
01F840: 74 68 65 20 74 77 6F 20 63 6F 6C 6F 75 72 73 20 the two colours
01F850: 75 73 65 64 20 74 6F 20 64 69 73 70 6C 61 79 20 used to display
01F860: 74 68 65 20 62 6F 72 64 65 72 20 6F 6E 20 74 68 the border on th
01F870: 65 20 63 75 72 72 65 6E 74 20 73 63 72 65 65 6E e current screen
01F880: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ....... En
01F890: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
01F8A0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 ..... No c
01F8B0: 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A onditions.......
01F8C0: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
01F8D0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
01F8E0: 20 20 20 20 42 20 63 6F 6E 74 61 69 6E 73 20 74 B contains t
01F8F0: 68 65 20 66 69 72 73 74 20 63 6F 6C 6F 75 72 2E he first colour.
01F900: 0D 0A 20 20 20 20 20 20 20 43 20 63 6F 6E 74 61 .. C conta
01F910: 69 6E 73 20 74 68 65 20 73 65 63 6F 6E 64 20 63 ins the second c
01F920: 6F 6C 6F 75 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 olour.......
01F930: 20 20 20 41 46 2C 20 44 45 20 61 6E 64 20 48 4C AF, DE and HL
01F940: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
01F950: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
01F960: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
01F970: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ...... Not
01F980: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
01F990: 54 68 65 20 63 6F 6C 6F 75 72 73 20 72 65 74 75 The colours retu
01F9A0: 72 6E 65 64 20 6D 61 79 20 6E 6F 74 20 62 65 20 rned may not be
01F9B0: 74 68 65 20 73 61 6D 65 20 20 61 73 20 20 74 68 the same as th
01F9C0: 6F 73 65 20 20 73 75 70 70 6C 69 65 64 20 20 74 ose supplied t
01F9D0: 6F 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 53 o the.. S
01F9E0: 63 72 65 65 6E 20 50 61 63 6B 20 61 73 20 74 68 creen Pack as th
01F9F0: 65 79 20 61 72 65 20 6D 61 73 6B 65 64 20 77 68 ey are masked wh
01FA00: 65 6E 20 74 68 65 79 20 61 72 65 20 73 65 74 2E en they are set.
01FA10: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
01FA20: 20 20 6E 65 77 20 20 63 6F 6C 6F 75 72 73 20 20 new colours
01FA30: 66 6F 72 20 20 74 68 65 20 20 62 6F 72 64 65 72 for the border
01FA40: 20 20 61 72 65 20 20 6E 6F 74 20 20 73 65 6E 74 are not sent
01FA50: 20 20 74 6F 20 20 74 68 65 20 20 68 61 72 64 77 to the hardw
01FA60: 61 72 65 0D 0A 20 20 20 20 20 20 20 69 6D 6D 65 are.. imme
01FA70: 64 69 61 74 65 6C 79 20 77 68 65 6E 20 74 68 65 diately when the
01FA80: 79 20 61 72 65 20 73 65 74 2E 20 54 68 65 79 20 y are set. They
01FA90: 20 61 72 65 20 20 73 74 6F 72 65 64 20 20 61 6E are stored an
01FAA0: 64 20 20 61 70 70 65 61 72 20 20 6F 6E 20 20 74 d appear on t
01FAB0: 68 65 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 he.. scree
01FAC0: 6E 20 77 68 65 6E 20 74 68 65 20 6E 65 78 74 20 n when the next
01FAD0: 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 6F 63 frame flyback oc
01FAE0: 63 75 72 73 2E 20 54 68 69 73 20 6D 65 61 6E 73 curs. This means
01FAF0: 20 74 68 61 74 20 74 68 65 20 63 6F 6C 6F 75 72 that the colour
01FB00: 73 0D 0A 20 20 20 20 20 20 20 72 65 74 75 72 6E s.. return
01FB10: 65 64 20 6D 61 79 20 6E 6F 74 20 61 63 74 75 61 ed may not actua
01FB20: 6C 6C 79 20 62 65 20 76 69 73 69 62 6C 65 20 74 lly be visible t
01FB30: 6F 20 74 68 65 20 75 73 65 72 20 79 65 74 2E 0D o the user yet..
01FB40: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
01FB50: 64 65 66 61 75 6C 74 20 62 6F 72 64 65 72 20 63 default border c
01FB60: 6F 6C 6F 75 72 20 61 6E 64 20 74 68 65 20 63 6F olour and the co
01FB70: 6C 6F 75 72 73 20 61 76 61 69 6C 61 62 6C 65 20 lours available
01FB80: 61 72 65 20 20 64 65 73 63 72 69 62 65 64 20 20 are described
01FB90: 69 6E 0D 0A 20 20 20 20 20 20 20 41 70 70 65 6E in.. Appen
01FBA0: 64 69 78 20 56 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 dix V.........
01FBB0: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
01FBC0: 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ries:......
01FBD0: 20 20 53 43 52 20 47 45 54 20 49 4E 4B 0D 0A 20 SCR GET INK..
01FBE0: 20 20 20 20 20 20 53 43 52 20 53 45 54 20 42 4F SCR SET BO
01FBF0: 52 44 45 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A RDER............
01FC00: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
01FC10: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
01FC20: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
01FC30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01FC40: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 31 page 15.11
01FC50: 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 0..............
01FC60: 20 20 20 20 20 20 31 30 36 3A 20 53 43 52 20 53 106: SCR S
01FC70: 45 54 20 46 4C 41 53 48 49 4E 47 20 20 20 20 20 ET FLASHING
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 23 42 43 33 45 0D 0A 0D 0A #BC3E....
01FCB0: 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 65 .. Set the
01FCC0: 20 66 6C 61 73 68 20 70 65 72 69 6F 64 73 2E 0D flash periods..
01FCD0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
01FCE0: 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 on:......
01FCF0: 53 65 74 20 66 6F 72 20 68 6F 77 20 6C 6F 6E 67 Set for how long
01FD00: 20 65 61 63 68 20 6F 66 20 74 68 65 20 74 77 6F each of the two
01FD10: 20 63 6F 6C 6F 75 72 73 20 66 6F 72 20 74 68 65 colours for the
01FD20: 20 69 6E 6B 73 20 61 6E 64 20 20 74 68 65 20 20 inks and the
01FD30: 62 6F 72 64 65 72 0D 0A 20 20 20 20 20 20 20 61 border.. a
01FD40: 72 65 20 74 6F 20 62 65 20 64 69 73 70 6C 61 79 re to be display
01FD50: 65 64 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E ed on the screen
01FD60: 2E 20 54 68 65 73 65 20 73 65 74 74 69 6E 67 73 . These settings
01FD70: 20 61 70 70 6C 79 20 20 74 6F 20 20 61 6C 6C 20 apply to all
01FD80: 20 69 6E 6B 73 0D 0A 20 20 20 20 20 20 20 61 6E inks.. an
01FD90: 64 20 74 68 65 20 62 6F 72 64 65 72 2E 0D 0A 0D d the border....
01FDA0: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
01FDB0: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
01FDC0: 0A 20 20 20 20 20 20 20 48 20 63 6F 6E 74 61 69 . H contai
01FDD0: 6E 73 20 74 68 65 20 70 65 72 69 6F 64 20 66 6F ns the period fo
01FDE0: 72 20 74 68 65 20 66 69 72 73 74 20 63 6F 6C 6F r the first colo
01FDF0: 75 72 2E 0D 0A 20 20 20 20 20 20 20 4C 20 63 6F ur... L co
01FE00: 6E 74 61 69 6E 73 20 74 68 65 20 70 65 72 69 6F ntains the perio
01FE10: 64 20 66 6F 72 20 74 68 65 20 73 65 63 6F 6E 64 d for the second
01FE20: 20 63 6F 6C 6F 75 72 2E 0D 0A 0D 0A 0D 0A 20 20 colour.......
01FE30: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
01FE40: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
01FE50: 20 20 41 46 20 61 6E 64 20 48 4C 20 63 6F 72 72 AF and HL corr
01FE60: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C upt... All
01FE70: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
01FE80: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
01FE90: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
01FEA0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 .... The f
01FEB0: 6C 61 73 68 20 70 65 72 69 6F 64 73 20 61 72 65 lash periods are
01FEC0: 20 67 69 76 65 6E 20 69 6E 20 66 72 61 6D 65 20 given in frame
01FED0: 20 66 6C 79 62 61 63 6B 73 20 20 28 31 2F 35 30 flybacks (1/50
01FEE0: 20 20 6F 72 20 20 31 2F 36 30 20 20 6F 66 20 20 or 1/60 of
01FEF0: 61 0D 0A 20 20 20 20 20 20 20 73 65 63 6F 6E 64 a.. second
01FF00: 29 2E 20 41 20 70 65 72 69 6F 64 20 6F 66 20 30 ). A period of 0
01FF10: 20 69 73 20 74 61 6B 65 6E 20 74 6F 20 6D 65 61 is taken to mea
01FF20: 6E 20 61 20 70 65 72 69 6F 64 20 6F 66 20 32 35 n a period of 25
01FF30: 36 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 6....... T
01FF40: 68 65 20 64 65 66 61 75 6C 74 20 73 65 74 74 69 he default setti
01FF50: 6E 67 20 66 6F 72 20 74 68 65 20 66 6C 61 73 68 ng for the flash
01FF60: 20 70 65 72 69 6F 64 73 20 69 73 20 31 30 20 66 periods is 10 f
01FF70: 72 61 6D 65 20 66 6C 79 62 61 63 6B 73 20 28 31 rame flybacks (1
01FF80: 2F 35 20 6F 72 0D 0A 20 20 20 20 20 20 20 31 2F /5 or.. 1/
01FF90: 36 20 6F 66 20 61 20 73 65 63 6F 6E 64 29 2E 20 6 of a second).
01FFA0: 54 68 69 73 20 69 73 20 73 65 74 20 61 74 20 45 This is set at E
01FFB0: 4D 53 20 61 6E 64 20 77 68 65 6E 20 53 43 52 20 MS and when SCR
01FFC0: 52 45 53 45 54 20 69 73 20 63 61 6C 6C 65 64 2E RESET is called.
01FFD0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
01FFE0: 20 6E 65 77 20 66 6C 61 73 68 20 70 65 72 69 6F new flash perio
01FFF0: 64 73 20 61 72 65 20 6E 6F 74 20 75 73 65 64 20 ds are not used
020000: 69 6D 6D 65 64 69 61 74 65 6C 79 20 62 75 74 20 immediately but
020010: 77 68 65 6E 20 74 68 65 20 69 6E 6B 73 20 20 6E when the inks n
020020: 65 78 74 0D 0A 20 20 20 20 20 20 20 66 6C 61 73 ext.. flas
020030: 68 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 h.........
020040: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
020050: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 43 :...... SC
020060: 52 20 47 45 54 20 46 4C 41 53 48 49 4E 47 0D 0A R GET FLASHING..
020070: 20 20 20 20 20 20 20 53 43 52 20 53 45 54 20 42 SCR SET B
020080: 4F 52 44 45 52 0D 0A 20 20 20 20 20 20 20 53 43 ORDER.. SC
020090: 52 20 53 45 54 20 49 4E 4B 0D 0A 0D 0A 0D 0A 0D R SET INK.......
0200A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
0200B0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
0200C0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
0200D0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
0200E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
0200F0: 61 67 65 20 31 35 2E 31 31 31 0D 0A 0D 0A 0D 0A age 15.111......
020100: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
020110: 30 37 3A 20 53 43 52 20 47 45 54 20 46 4C 41 53 07: SCR GET FLAS
020120: 48 49 4E 47 20 20 20 20 20 20 20 20 20 20 20 20 HING
020130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020150: 23 42 43 34 31 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #BC41......
020160: 20 20 41 73 6B 20 74 68 65 20 63 75 72 72 65 6E Ask the curren
020170: 74 20 66 6C 61 73 68 20 70 65 72 69 6F 64 73 2E t flash periods.
020180: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 ...... Act
020190: 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion:......
0201A0: 20 47 65 74 20 74 68 65 20 74 69 6D 65 20 66 6F Get the time fo
0201B0: 72 20 77 68 69 63 68 20 65 61 63 68 20 6F 66 20 r which each of
0201C0: 74 68 65 20 74 77 6F 20 63 6F 6C 6F 75 72 73 20 the two colours
0201D0: 61 73 73 6F 63 69 61 74 65 64 20 77 69 74 68 20 associated with
0201E0: 61 6E 20 20 69 6E 6B 0D 0A 20 20 20 20 20 20 20 an ink..
0201F0: 6F 72 20 74 68 65 20 62 6F 72 64 65 72 20 69 73 or the border is
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: 20 64 69 73 70 6C 61 79 65 64 2E 0D 0A 0D 0A 0D displayed......
020310: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
020320: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
020330: 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 No conditi
020340: 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons.......
020350: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
020360: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 20 :...... H
020370: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 65 72 contains the per
020380: 69 6F 64 20 66 6F 72 20 74 68 65 20 66 69 72 73 iod for the firs
020390: 74 20 63 6F 6C 6F 75 72 2E 0D 0A 20 20 20 20 20 t colour...
0203A0: 20 20 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 L contains the
0203B0: 20 70 65 72 69 6F 64 20 66 6F 72 20 74 68 65 20 period for the
0203C0: 73 65 63 6F 6E 64 20 63 6F 6C 6F 75 72 2E 0D 0A second colour...
0203D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 63 6F .... AF co
0203E0: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 rrupt... A
0203F0: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
020400: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
020410: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
020420: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
020430: 20 66 6C 61 73 68 20 70 65 72 69 6F 64 73 20 61 flash periods a
020440: 72 65 20 67 69 76 65 6E 20 69 6E 20 66 72 61 6D re given in fram
020450: 65 20 20 66 6C 79 62 61 63 6B 73 20 20 28 31 2F e flybacks (1/
020460: 35 30 20 20 6F 72 20 20 31 2F 36 30 20 20 6F 66 50 or 1/60 of
020470: 20 20 61 0D 0A 20 20 20 20 20 20 20 73 65 63 6F a.. seco
020480: 6E 64 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 nd).......
020490: 20 41 20 70 65 72 69 6F 64 20 6F 66 20 30 20 6D A period of 0 m
0204A0: 65 61 6E 73 20 32 35 36 2E 0D 0A 0D 0A 0D 0A 0D eans 256........
0204B0: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
0204C0: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
0204D0: 20 20 20 20 20 53 43 52 20 53 45 54 20 46 4C 41 SCR SET FLA
0204E0: 53 48 49 4E 47 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D SHING...........
0204F0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
020500: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
020510: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
020520: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
020530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020540: 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 31 32 page 15.112
020550: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
020560: 20 20 20 20 20 31 30 38 3A 20 53 43 52 20 46 49 108: SCR FI
020570: 4C 4C 20 42 4F 58 20 20 20 20 20 20 20 20 20 20 LL BOX
020580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0205A0: 20 20 20 20 20 20 23 42 43 34 34 0D 0A 0D 0A 0D #BC44.....
0205B0: 0A 20 20 20 20 20 20 20 46 69 6C 6C 20 61 20 63 . Fill a c
0205C0: 68 61 72 61 63 74 65 72 20 61 72 65 61 20 6F 66 haracter area of
0205D0: 20 74 68 65 20 73 63 72 65 65 6E 20 77 69 74 68 the screen with
0205E0: 20 61 6E 20 69 6E 6B 2E 0D 0A 0D 0A 0D 0A 20 20 an ink.......
0205F0: 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A Action:....
020600: 0D 0A 20 20 20 20 20 20 20 46 69 6C 6C 20 61 20 .. Fill a
020610: 72 65 63 74 61 6E 67 75 6C 61 72 20 61 72 65 61 rectangular area
020620: 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E 20 77 of the screen w
020630: 69 74 68 20 61 6E 20 69 6E 6B 2E 20 54 68 65 20 ith an ink. The
020640: 20 62 6F 75 6E 64 61 72 69 65 73 20 20 6F 66 0D boundaries of.
020650: 0A 20 20 20 20 20 20 20 74 68 69 73 20 61 72 65 . this are
020660: 61 20 61 72 65 20 67 69 76 65 6E 20 69 6E 20 63 a are given in c
020670: 68 61 72 61 63 74 65 72 20 70 6F 73 69 74 69 6F haracter positio
020680: 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns.......
020690: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
0206A0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 :...... A
0206B0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 65 6E 63 contains the enc
0206C0: 6F 64 65 64 20 69 6E 6B 20 74 6F 20 66 69 6C 6C oded ink to fill
0206D0: 20 74 68 65 20 61 72 65 61 20 77 69 74 68 2E 0D the area with..
0206E0: 0A 20 20 20 20 20 20 20 48 20 63 6F 6E 74 61 69 . H contai
0206F0: 6E 73 20 74 68 65 20 70 68 79 73 69 63 61 6C 20 ns the physical
020700: 6C 65 66 74 20 63 6F 6C 75 6D 6E 20 6F 66 20 74 left column of t
020710: 68 65 20 61 72 65 61 20 74 6F 20 66 69 6C 6C 2E he area to fill.
020720: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 20 63 ...... D c
020730: 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 68 79 73 ontains the phys
020740: 69 63 61 6C 20 72 69 67 68 74 20 63 6F 6C 75 6D ical right colum
020750: 6E 20 6F 66 20 74 68 65 20 61 72 65 61 20 74 6F n of the area to
020760: 20 66 69 6C 6C 2E 0D 0A 20 20 20 20 20 20 20 4C fill... L
020770: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 68 contains the ph
020780: 79 73 69 63 61 6C 20 74 6F 70 20 72 6F 77 20 6F ysical top row o
020790: 66 20 74 68 65 20 61 72 65 61 20 74 6F 20 66 69 f the area to fi
0207A0: 6C 6C 2E 0D 0A 20 20 20 20 20 20 20 45 20 63 6F ll... E co
0207B0: 6E 74 61 69 6E 73 20 74 68 65 20 70 68 79 73 69 ntains the physi
0207C0: 63 61 6C 20 62 6F 74 74 6F 6D 20 72 6F 77 20 6F cal bottom row o
0207D0: 66 20 74 68 65 20 61 72 65 61 20 74 6F 20 66 69 f the area to fi
0207E0: 6C 6C 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ll.......
0207F0: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
020800: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C ...... AF,
020810: 20 42 43 2C 20 44 45 20 61 6E 64 20 48 4C 20 63 BC, DE and HL c
020820: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
020830: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
020840: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
020850: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
020860: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 :...... Th
020870: 65 20 61 72 65 61 20 62 6F 75 6E 64 61 72 69 65 e area boundarie
020880: 73 20 61 72 65 20 67 69 76 65 6E 20 69 6E 20 70 s are given in p
020890: 68 79 73 69 63 61 6C 20 20 63 6F 6F 72 64 69 6E hysical coordin
0208A0: 61 74 65 73 2E 20 20 69 2E 65 2E 20 20 52 6F 77 ates. i.e. Row
0208B0: 20 20 30 2C 0D 0A 20 20 20 20 20 20 20 63 6F 6C 0,.. col
0208C0: 75 6D 6E 20 30 20 69 73 20 74 68 65 20 74 6F 70 umn 0 is the top
0208D0: 20 6C 65 66 74 20 63 6F 72 6E 65 72 20 6F 66 20 left corner of
0208E0: 74 68 65 20 73 63 72 65 65 6E 2E 20 54 68 65 79 the screen. They
0208F0: 20 20 61 72 65 20 20 6E 6F 74 20 20 63 68 65 63 are not chec
020900: 6B 65 64 0D 0A 20 20 20 20 20 20 20 66 6F 72 20 ked.. for
020910: 6C 65 67 61 6C 69 74 79 2E 20 49 66 20 69 6C 6C legality. If ill
020920: 65 67 61 6C 20 62 6F 75 6E 64 61 72 69 65 73 20 egal boundaries
020930: 61 72 65 20 70 61 73 73 65 64 20 28 65 64 67 65 are passed (edge
020940: 73 20 6F 66 20 20 74 68 65 20 20 73 63 72 65 65 s of the scree
020950: 6E 29 0D 0A 20 20 20 20 20 20 20 74 68 65 6E 20 n).. then
020960: 75 6E 70 72 65 64 69 63 74 61 62 6C 65 20 65 66 unpredictable ef
020970: 66 65 63 74 73 20 6D 61 79 20 6F 63 63 75 72 2E fects may occur.
020980: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
020990: 20 73 63 72 65 65 6E 20 69 73 20 77 72 69 74 74 screen is writt
0209A0: 65 6E 20 64 69 72 65 63 74 6C 79 20 77 69 74 68 en directly with
0209B0: 6F 75 74 20 75 73 69 6E 67 20 61 6E 79 20 6F 74 out using any ot
0209C0: 68 65 72 20 77 72 69 74 65 20 20 72 6F 75 74 69 her write routi
0209D0: 6E 65 2E 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ne... The
0209E0: 63 75 72 72 65 6E 74 20 47 72 61 70 68 69 63 73 current Graphics
0209F0: 20 56 44 55 20 77 72 69 74 65 20 6D 6F 64 65 20 VDU write mode
020A00: 69 73 20 74 68 65 72 65 66 6F 72 65 20 69 67 6E is therefore ign
020A10: 6F 72 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 ored.........
020A20: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
020A30: 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ies:......
020A40: 20 53 43 52 20 43 4C 45 41 52 0D 0A 20 20 20 20 SCR CLEAR..
020A50: 20 20 20 53 43 52 20 46 4C 4F 4F 44 20 42 4F 58 SCR FLOOD BOX
020A60: 0D 0A 20 20 20 20 20 20 20 54 58 54 20 43 4C 45 .. TXT CLE
020A70: 41 52 20 57 49 4E 44 4F 57 0D 0A 0D 0A 0D 0A 0D AR WINDOW.......
020A80: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
020A90: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
020AA0: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
020AB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020AC0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
020AD0: 31 35 2E 31 31 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.113..........
020AE0: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 30 39 3A 20 .... 109:
020AF0: 53 43 52 20 46 4C 4F 4F 44 20 42 4F 58 20 20 20 SCR FLOOD BOX
020B00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020B10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020B20: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 34 #BC4
020B30: 37 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 69 7...... Fi
020B40: 6C 6C 20 61 20 62 79 74 65 20 61 72 65 61 20 6F ll a byte area o
020B50: 66 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D f the screen....
020B60: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
020B70: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 69 :...... Fi
020B80: 6C 6C 20 61 20 72 65 63 74 61 6E 67 75 6C 61 72 ll a rectangular
020B90: 20 61 72 65 61 20 6F 66 20 74 68 65 20 73 63 72 area of the scr
020BA0: 65 65 6E 20 77 69 74 68 20 61 6E 20 69 6E 6B 2E een with an ink.
020BB0: 20 54 68 65 20 20 62 6F 75 6E 64 61 72 69 65 73 The boundaries
020BC0: 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 74 68 65 of.. the
020BD0: 20 61 72 65 61 20 6D 75 73 74 20 6C 69 65 20 6F area must lie o
020BE0: 6E 20 62 79 74 65 20 62 6F 75 6E 64 61 72 69 65 n byte boundarie
020BF0: 73 2E 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 s. This routine
020C00: 77 69 6C 6C 20 20 6E 6F 74 20 20 66 69 6C 6C 20 will not fill
020C10: 20 61 6E 0D 0A 20 20 20 20 20 20 20 61 72 62 69 an.. arbi
020C20: 74 72 61 72 79 20 61 72 65 61 20 6F 66 20 74 68 trary area of th
020C30: 65 20 73 63 72 65 65 6E 20 74 6F 20 70 69 78 65 e screen to pixe
020C40: 6C 20 61 20 62 6F 75 6E 64 61 72 79 2E 0D 0A 0D l a boundary....
020C50: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
020C60: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
020C70: 0A 20 20 20 20 20 20 20 43 20 63 6F 6E 74 61 69 . C contai
020C80: 6E 73 20 74 68 65 20 65 6E 63 6F 64 65 64 20 69 ns the encoded i
020C90: 6E 6B 20 74 6F 20 66 69 6C 6C 20 74 68 65 20 61 nk to fill the a
020CA0: 72 65 61 20 77 69 74 68 2E 0D 0A 0D 0A 20 20 20 rea with.....
020CB0: 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 HL contains
020CC0: 74 68 65 20 73 63 72 65 65 6E 20 61 64 64 72 65 the screen addre
020CD0: 73 73 20 6F 66 20 74 68 65 20 74 6F 70 20 6C 65 ss of the top le
020CE0: 66 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 ft corner of the
020CF0: 20 20 61 72 65 61 20 20 74 6F 0D 0A 20 20 20 20 area to..
020D00: 20 20 20 66 69 6C 6C 2E 0D 0A 0D 0A 20 20 20 20 fill.....
020D10: 20 20 20 44 20 63 6F 6E 74 61 69 6E 73 20 74 68 D contains th
020D20: 65 20 28 75 6E 73 69 67 6E 65 64 29 20 77 69 64 e (unsigned) wid
020D30: 74 68 20 6F 66 20 74 68 65 20 61 72 65 61 20 74 th of the area t
020D40: 6F 20 66 69 6C 6C 20 69 6E 20 62 79 74 65 73 2E o fill in bytes.
020D50: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 20 63 6F 6E .... E con
020D60: 74 61 69 6E 73 20 74 68 65 20 28 75 6E 73 69 67 tains the (unsig
020D70: 6E 65 64 29 20 68 65 69 67 68 74 20 6F 66 20 74 ned) height of t
020D80: 68 65 20 61 72 65 61 20 74 6F 20 66 69 6C 6C 20 he area to fill
020D90: 69 6E 20 73 63 72 65 65 6E 20 6C 69 6E 65 73 2E in screen lines.
020DA0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 ...... Exi
020DB0: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
020DC0: 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C 20 42 43 ... AF, BC
020DD0: 2C 20 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 , DE and HL corr
020DE0: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C upt... All
020DF0: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 20 other register
020E00: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A preserved.......
020E10: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
020E20: 0A 20 20 20 20 20 20 20 54 68 65 20 77 68 6F 6C . The whol
020E30: 65 20 6F 66 20 74 68 65 20 72 65 63 74 61 6E 67 e of the rectang
020E40: 6C 65 20 62 65 69 6E 67 20 63 6C 65 61 72 65 64 le being cleared
020E50: 20 6D 75 73 74 20 6C 69 65 20 6F 6E 20 20 74 68 must lie on th
020E60: 65 20 20 73 63 72 65 65 6E 2E 20 20 49 66 0D 0A e screen. If..
020E70: 20 20 20 20 20 20 20 61 6E 79 20 6F 66 20 69 74 any of it
020E80: 20 6C 69 65 73 20 6F 66 66 20 74 68 65 20 73 63 lies off the sc
020E90: 72 65 65 6E 20 74 68 65 6E 20 75 6E 70 72 65 64 reen then unpred
020EA0: 69 63 74 61 62 6C 65 20 65 66 66 65 63 74 73 20 ictable effects
020EB0: 6D 61 79 20 6F 63 63 75 72 2E 0D 0A 0D 0A 0D 0A may occur.......
020EC0: 20 20 20 20 20 20 20 41 20 68 65 69 67 68 74 20 A height
020ED0: 6F 72 20 77 69 64 74 68 20 6F 66 20 30 20 69 73 or width of 0 is
020EE0: 20 74 61 6B 65 6E 20 74 6F 20 6D 65 61 6E 20 32 taken to mean 2
020EF0: 35 36 20 28 77 68 69 63 68 20 69 73 20 74 6F 6F 56 (which is too
020F00: 20 6C 61 72 67 65 20 74 6F 20 66 69 74 0D 0A 20 large to fit..
020F10: 20 20 20 20 20 20 6F 6E 20 74 68 65 20 73 63 72 on the scr
020F20: 65 65 6E 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 een).......
020F30: 20 20 54 68 65 20 73 63 72 65 65 6E 20 69 73 20 The screen is
020F40: 77 72 69 74 74 65 6E 20 64 69 72 65 63 74 6C 79 written directly
020F50: 20 77 69 74 68 6F 75 74 20 75 73 69 6E 67 20 61 without using a
020F60: 6E 79 20 6F 74 68 65 72 20 77 72 69 74 65 20 20 ny other write
020F70: 72 6F 75 74 69 6E 65 2E 0D 0A 20 20 20 20 20 20 routine...
020F80: 20 54 68 65 20 63 75 72 72 65 6E 74 20 47 72 61 The current Gra
020F90: 70 68 69 63 73 20 56 44 55 20 77 72 69 74 65 20 phics VDU write
020FA0: 6D 6F 64 65 20 69 73 20 74 68 65 72 65 66 6F 72 mode is therefor
020FB0: 65 20 69 67 6E 6F 72 65 64 2E 0D 0A 0D 0A 0D 0A e ignored.......
020FC0: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
020FD0: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 entries:......
020FE0: 20 20 20 20 20 20 47 52 41 20 43 4C 45 41 52 20 GRA CLEAR
020FF0: 57 49 4E 44 4F 57 0D 0A 20 20 20 20 20 20 20 53 WINDOW.. S
021000: 43 52 20 43 4C 45 41 52 0D 0A 20 20 20 20 20 20 CR CLEAR..
021010: 20 53 43 52 20 46 49 4C 4C 20 42 4F 58 0D 0A 0D SCR FILL BOX...
021020: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
021030: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
021040: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
021050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
021060: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
021070: 2E 31 31 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .114............
021080: 0D 0A 20 20 20 20 20 20 20 31 31 30 3A 20 53 43 .. 110: SC
021090: 52 20 43 48 41 52 20 49 4E 56 45 52 54 20 20 20 R CHAR INVERT
0210A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0210B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0210C0: 20 20 20 20 20 20 20 20 20 20 23 42 43 34 41 0D #BC4A.
0210D0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E 76 65 ..... Inve
0210E0: 72 74 20 61 20 63 68 61 72 61 63 74 65 72 20 70 rt a character p
0210F0: 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 osition.......
021100: 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A Action:....
021110: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 70 69 78 .. All pix
021120: 65 6C 73 20 61 74 20 61 20 63 68 61 72 61 63 74 els at a charact
021130: 65 72 20 70 6F 73 69 74 69 6F 6E 20 74 68 61 74 er position that
021140: 20 61 72 65 20 77 72 69 74 74 65 6E 20 20 69 6E are written in
021150: 20 20 6F 6E 65 20 20 69 6E 6B 20 20 61 72 65 0D one ink are.
021160: 0A 20 20 20 20 20 20 20 72 65 77 72 69 74 74 65 . rewritte
021170: 6E 20 69 6E 20 61 20 73 65 63 6F 6E 64 20 69 6E n in a second in
021180: 6B 2C 20 61 6E 64 20 20 76 69 63 65 20 20 76 65 k, and vice ve
021190: 72 73 61 2E 20 20 54 68 69 73 20 20 67 69 76 65 rsa. This give
0211A0: 73 20 20 61 6E 20 20 69 6E 76 65 72 73 65 0D 0A s an inverse..
0211B0: 20 20 20 20 20 20 20 65 66 66 65 63 74 20 74 6F effect to
0211C0: 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 70 the character p
0211D0: 6F 73 69 74 69 6F 6E 2E 20 49 6E 76 65 72 74 69 osition. Inverti
0211E0: 6E 67 20 20 74 68 65 20 20 63 68 61 72 61 63 74 ng the charact
0211F0: 65 72 20 20 61 20 20 73 65 63 6F 6E 64 0D 0A 20 er a second..
021200: 20 20 20 20 20 20 74 69 6D 65 20 77 69 6C 6C 20 time will
021210: 72 65 73 74 6F 72 65 20 74 68 65 20 6F 72 69 67 restore the orig
021220: 69 6E 61 6C 20 69 6E 6B 73 2E 20 54 68 69 73 20 inal inks. This
021230: 65 66 66 65 63 74 20 69 73 20 75 73 65 64 20 74 effect is used t
021240: 6F 20 20 64 72 61 77 20 20 74 68 65 0D 0A 20 20 o draw the..
021250: 20 20 20 20 20 54 65 78 74 20 56 44 55 20 63 75 Text VDU cu
021260: 72 73 6F 72 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 rsors.......
021270: 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 Entry conditi
021280: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
021290: 20 42 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 65 B contains an e
0212A0: 6E 63 6F 64 65 64 20 69 6E 6B 2E 0D 0A 20 20 20 ncoded ink...
0212B0: 20 20 20 20 43 20 63 6F 6E 74 61 69 6E 73 20 61 C contains a
0212C0: 6E 6F 74 68 65 72 20 65 6E 63 6F 64 65 64 20 69 nother encoded i
0212D0: 6E 6B 2E 0D 0A 20 20 20 20 20 20 20 48 20 63 6F nk... H co
0212E0: 6E 74 61 69 6E 73 20 61 20 70 68 79 73 69 63 61 ntains a physica
0212F0: 6C 20 63 68 61 72 61 63 74 65 72 20 63 6F 6C 75 l character colu
021300: 6D 6E 2E 0D 0A 20 20 20 20 20 20 20 4C 20 63 6F mn... L co
021310: 6E 74 61 69 6E 73 20 61 20 70 68 79 73 69 63 61 ntains a physica
021320: 6C 20 63 68 61 72 61 63 74 65 72 20 72 6F 77 2E l character row.
021330: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 ...... Exi
021340: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
021350: 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C 20 42 43 ... AF, BC
021360: 2C 20 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 , DE and HL corr
021370: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C upt... All
021380: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
021390: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
0213A0: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
0213B0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 63 68 61 .. The cha
0213C0: 72 61 63 74 65 72 20 70 6F 73 69 74 69 6F 6E 20 racter position
0213D0: 69 73 20 67 69 76 65 6E 20 69 6E 20 70 68 79 73 is given in phys
0213E0: 69 63 61 6C 20 63 6F 6F 72 64 69 6E 61 74 65 73 ical coordinates
0213F0: 20 20 69 2E 65 2E 20 20 52 6F 77 20 20 30 2C 0D i.e. Row 0,.
021400: 0A 20 20 20 20 20 20 20 63 6F 6C 75 6D 6E 20 30 . column 0
021410: 20 69 73 20 74 68 65 20 74 6F 70 20 6C 65 66 74 is the top left
021420: 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 73 corner of the s
021430: 63 72 65 65 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 creen.....
021440: 20 54 68 65 20 63 68 61 72 61 63 74 65 72 20 70 The character p
021450: 6F 73 69 74 69 6F 6E 20 67 69 76 65 6E 20 20 69 osition given i
021460: 73 20 20 6E 6F 74 20 20 63 68 65 63 6B 65 64 20 s not checked
021470: 20 66 6F 72 20 20 62 65 69 6E 67 20 20 6C 65 67 for being leg
021480: 61 6C 2E 20 20 41 6E 0D 0A 20 20 20 20 20 20 20 al. An..
021490: 69 6C 6C 65 67 61 6C 20 70 6F 73 69 74 69 6F 6E illegal position
0214A0: 20 28 6F 6E 65 20 6F 75 74 73 69 64 65 20 74 68 (one outside th
0214B0: 65 20 6C 69 6D 69 74 73 20 20 6F 66 20 20 74 68 e limits of th
0214C0: 65 20 20 73 63 72 65 65 6E 29 20 20 77 69 6C 6C e screen) will
0214D0: 20 20 68 61 76 65 0D 0A 20 20 20 20 20 20 20 75 have.. u
0214E0: 6E 70 72 65 64 69 63 74 61 62 6C 65 20 65 66 66 npredictable eff
0214F0: 65 63 74 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ects.....
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: 41 6C 6C 20 70 69 78 65 6C 73 20 61 74 20 74 68 All pixels at th
021610: 65 20 20 63 68 61 72 61 63 74 65 72 20 20 70 6F e character po
021620: 73 69 74 69 6F 6E 20 20 61 72 65 20 20 65 78 63 sition are exc
021630: 6C 75 73 69 76 65 2D 6F 72 65 64 20 20 77 69 74 lusive-ored wit
021640: 68 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 65 h the.. e
021650: 78 63 6C 75 73 69 76 65 2D 6F 72 20 6F 66 20 20 xclusive-or of
021660: 74 68 65 20 20 74 77 6F 20 20 69 6E 6B 73 20 20 the two inks
021670: 73 75 70 70 6C 69 65 64 2E 20 20 50 69 78 65 6C supplied. Pixel
021680: 73 20 20 61 74 20 20 74 68 65 20 20 63 68 61 72 s at the char
021690: 61 63 74 65 72 0D 0A 20 20 20 20 20 20 20 70 6F acter.. po
0216A0: 73 69 74 69 6F 6E 20 74 68 61 74 20 61 72 65 20 sition that are
0216B0: 73 65 74 20 74 6F 20 6F 6E 65 20 6F 66 20 74 68 set to one of th
0216C0: 65 20 74 77 6F 20 69 6E 6B 73 20 73 75 70 70 6C e two inks suppl
0216D0: 69 65 64 20 20 77 69 6C 6C 20 20 74 68 65 72 65 ied will there
0216E0: 66 6F 72 65 0D 0A 20 20 20 20 20 20 20 62 65 20 fore.. be
0216F0: 73 65 74 20 74 6F 20 74 68 65 20 6F 74 68 65 72 set to the other
021700: 20 73 75 70 70 6C 69 65 64 20 69 6E 6B 2E 20 50 supplied ink. P
021710: 69 78 65 6C 73 20 73 65 74 20 74 6F 20 6F 74 68 ixels set to oth
021720: 65 72 20 69 6E 6B 73 20 20 77 69 6C 6C 20 20 61 er inks will a
021730: 6C 73 6F 0D 0A 20 20 20 20 20 20 20 62 65 20 61 lso.. be a
021740: 6C 74 65 72 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 ltered.........
021750: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
021760: 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tries:......
021770: 20 20 20 54 58 54 20 50 4C 41 43 45 20 43 55 52 TXT PLACE CUR
021780: 53 4F 52 0D 0A 20 20 20 20 20 20 20 54 58 54 20 SOR.. TXT
021790: 52 45 4D 4F 56 45 20 43 55 52 53 4F 52 0D 0A 0D REMOVE CURSOR...
0217A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0217B0: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
0217C0: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
0217D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0217E0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
0217F0: 31 35 2E 31 31 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.115..........
021800: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 31 31 3A 20 .... 111:
021810: 53 43 52 20 48 57 20 52 4F 4C 4C 20 20 20 20 20 SCR HW ROLL
021820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
021830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
021840: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 34 #BC4
021850: 44 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 6F 76 65 D.... Move
021860: 20 74 68 65 20 77 68 6F 6C 65 20 73 63 72 65 65 the whole scree
021870: 6E 20 75 70 20 6F 72 20 64 6F 77 6E 20 65 69 67 n up or down eig
021880: 68 74 20 70 69 78 65 6C 20 6C 69 6E 65 73 20 28 ht pixel lines (
021890: 6F 6E 65 20 63 68 61 72 61 63 74 65 72 29 2E 0D one character)..
0218A0: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
0218B0: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 6F 6C 6C :.... Roll
0218C0: 20 74 68 65 20 73 63 72 65 65 6E 20 75 73 69 6E the screen usin
0218D0: 67 20 74 68 65 20 68 61 72 64 77 61 72 65 2E 20 g the hardware.
0218E0: 54 68 65 20 20 6E 65 77 20 20 6C 69 6E 65 20 20 The new line
0218F0: 61 70 70 65 61 72 69 6E 67 20 20 6F 6E 20 20 74 appearing on t
021900: 68 65 0D 0A 20 20 20 20 20 20 20 73 63 72 65 65 he.. scree
021910: 6E 20 69 73 20 63 6C 65 61 72 65 64 2E 0D 0A 0D n is cleared....
021920: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
021930: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
021940: 20 20 20 20 49 66 20 74 68 65 20 73 63 72 65 65 If the scree
021950: 6E 20 69 73 20 72 6F 6C 6C 65 64 20 64 6F 77 6E n is rolled down
021960: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 :....
021970: 20 20 20 20 20 42 20 6D 75 73 74 20 62 65 20 7A B must be z
021980: 65 72 6F 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 ero..... I
021990: 66 20 74 68 65 20 73 63 72 65 65 6E 20 69 73 20 f the screen is
0219A0: 74 6F 20 72 6F 6C 6C 20 75 70 3A 0D 0A 0D 0A 20 to roll up:....
0219B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 B
0219C0: 20 6D 75 73 74 20 62 65 20 6E 6F 6E 2D 7A 65 72 must be non-zer
0219D0: 6F 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 o..... Alw
0219E0: 61 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ays:....
0219F0: 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 A contai
021A00: 6E 73 20 74 68 65 20 65 6E 63 6F 64 65 64 20 69 ns the encoded i
021A10: 6E 6B 20 74 6F 20 63 6C 65 61 72 20 74 68 65 20 nk to clear the
021A20: 6E 65 77 20 6C 69 6E 65 20 74 6F 2E 0D 0A 0D 0A new line to.....
021A30: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
021A40: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
021A50: 20 20 41 46 2C 20 42 43 2C 20 44 45 20 61 6E 64 AF, BC, DE and
021A60: 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 HL corrupt...
021A70: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
021A80: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
021A90: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ed..... No
021AA0: 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 tes:.... T
021AB0: 68 65 20 73 63 72 65 65 6E 20 69 73 20 72 6F 6C he screen is rol
021AC0: 6C 65 64 20 62 79 20 20 63 68 61 6E 67 69 6E 67 led by changing
021AD0: 20 20 74 68 65 20 20 73 63 72 65 65 6E 20 20 6F the screen o
021AE0: 66 66 73 65 74 20 20 28 73 65 65 20 20 53 43 52 ffset (see SCR
021AF0: 20 20 53 45 54 0D 0A 20 20 20 20 20 20 20 4F 46 SET.. OF
021B00: 46 53 45 54 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 FSET).....
021B10: 20 52 6F 6C 6C 69 6E 67 20 74 68 65 20 73 63 72 Rolling the scr
021B20: 65 65 6E 20 75 70 77 61 72 64 73 20 6D 6F 76 65 een upwards move
021B30: 73 20 74 68 65 20 73 63 72 65 65 6E 20 63 6F 6E s the screen con
021B40: 74 65 6E 74 73 20 75 70 20 61 6E 64 20 63 6C 65 tents up and cle
021B50: 61 72 73 20 74 68 65 0D 0A 20 20 20 20 20 20 20 ars the..
021B60: 6E 65 77 20 62 6F 74 74 6F 6D 20 6C 69 6E 65 2E new bottom line.
021B70: 20 54 68 65 20 73 63 72 65 65 6E 20 6F 66 66 73 The screen offs
021B80: 65 74 20 69 73 20 74 68 65 72 65 66 6F 72 65 20 et is therefore
021B90: 69 6E 63 72 65 61 73 65 64 20 62 79 20 20 38 30 increased by 80
021BA0: 20 20 28 4D 4F 44 0D 0A 20 20 20 20 20 20 20 23 (MOD.. #
021BB0: 30 38 30 30 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 0800).....
021BC0: 20 52 6F 6C 6C 69 6E 67 20 74 68 65 20 73 63 72 Rolling the scr
021BD0: 65 65 6E 20 64 6F 77 6E 77 61 72 64 73 20 6D 6F een downwards mo
021BE0: 76 65 73 20 74 68 65 20 73 63 72 65 65 6E 20 63 ves the screen c
021BF0: 6F 6E 74 65 6E 74 73 20 64 6F 77 6E 20 61 6E 64 ontents down and
021C00: 20 63 6C 65 61 72 73 0D 0A 20 20 20 20 20 20 20 clears..
021C10: 74 68 65 20 6E 65 77 20 74 6F 70 20 6C 69 6E 65 the new top line
021C20: 2E 20 54 68 65 20 73 63 72 65 65 6E 20 6F 66 66 . The screen off
021C30: 73 65 74 20 69 73 20 74 68 65 72 65 66 6F 72 65 set is therefore
021C40: 20 64 65 63 72 65 61 73 65 64 20 62 79 20 38 30 decreased by 80
021C50: 20 20 28 4D 4F 44 0D 0A 20 20 20 20 20 20 20 23 (MOD.. #
021C60: 30 38 30 30 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 0800).....
021C70: 20 54 68 65 20 6E 65 77 20 6C 69 6E 65 20 69 73 The new line is
021C80: 20 63 6C 65 61 72 65 64 20 62 79 20 77 72 69 74 cleared by writ
021C90: 69 6E 67 20 74 6F 20 69 74 20 64 69 72 65 63 74 ing to it direct
021CA0: 6C 79 20 20 74 68 75 73 20 20 74 68 65 20 20 47 ly thus the G
021CB0: 72 61 70 68 69 63 73 0D 0A 20 20 20 20 20 20 20 raphics..
021CC0: 56 44 55 20 77 72 69 74 65 20 6D 6F 64 65 20 69 VDU write mode i
021CD0: 73 20 69 67 6E 6F 72 65 64 2E 0D 0A 0D 0A 20 20 s ignored.....
021CE0: 20 20 20 20 20 54 68 65 20 54 65 78 74 20 56 44 The Text VD
021CF0: 55 20 72 6F 6C 6C 20 63 6F 75 6E 74 20 69 73 20 U roll count is
021D00: 6E 6F 74 20 63 68 61 6E 67 65 64 20 62 79 20 74 not changed by t
021D10: 68 69 73 20 72 6F 75 74 69 6E 65 20 20 28 73 65 his routine (se
021D20: 65 20 20 54 58 54 20 20 47 45 54 0D 0A 20 20 20 e TXT GET..
021D30: 20 20 20 20 57 49 4E 44 4F 57 29 2E 0D 0A 20 20 WINDOW)...
021D40: 20 20 20 20 20 53 70 65 63 69 61 6C 20 70 72 65 Special pre
021D50: 63 61 75 74 69 6F 6E 73 20 61 72 65 20 74 61 6B cautions are tak
021D60: 65 6E 20 74 6F 20 6D 61 6B 65 20 73 75 72 65 20 en to make sure
021D70: 74 68 61 74 20 20 74 68 65 20 20 73 63 72 65 65 that the scree
021D80: 6E 20 20 69 73 20 20 6B 65 70 74 0D 0A 20 20 20 n is kept..
021D90: 20 20 20 20 6C 6F 6F 6B 69 6E 67 20 70 72 65 73 looking pres
021DA0: 65 6E 74 61 62 6C 65 20 64 75 72 69 6E 67 20 74 entable during t
021DB0: 68 65 20 72 6F 6C 6C 69 6E 67 20 61 6E 64 20 69 he rolling and i
021DC0: 6E 20 20 70 61 72 74 69 63 75 6C 61 72 20 20 64 n particular d
021DD0: 75 72 69 6E 67 20 20 74 68 65 0D 0A 20 20 20 20 uring the..
021DE0: 20 20 20 63 6C 65 61 72 69 6E 67 20 6F 66 20 74 clearing of t
021DF0: 68 65 20 6E 65 77 20 6C 69 6E 65 2E 20 50 72 69 he new line. Pri
021E00: 6E 63 69 70 61 6C 6C 79 20 74 68 69 73 20 63 6F ncipally this co
021E10: 6E 73 69 73 74 73 20 20 6F 66 20 20 63 6C 65 61 nsists of clea
021E20: 72 69 6E 67 20 20 74 68 65 0D 0A 20 20 20 20 20 ring the..
021E30: 20 20 6E 65 77 20 6C 69 6E 65 20 69 6E 20 74 77 new line in tw
021E40: 6F 20 70 61 72 74 73 2E 20 46 69 72 73 74 20 74 o parts. First t
021E50: 68 65 20 70 61 72 74 20 20 74 68 61 74 20 20 69 he part that i
021E60: 73 20 20 6E 6F 74 20 20 76 69 73 69 62 6C 65 20 s not visible
021E70: 20 6F 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 on the..
021E80: 20 73 63 72 65 65 6E 20 28 62 79 20 76 69 72 74 screen (by virt
021E90: 75 65 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E ue of the screen
021EA0: 20 61 64 64 72 65 73 73 69 6E 67 29 20 69 73 20 addressing) is
021EB0: 63 6C 65 61 72 65 64 2E 20 20 54 68 65 6E 2C 20 cleared. Then,
021EC0: 20 61 66 74 65 72 0D 0A 20 20 20 20 20 20 20 77 after.. w
021ED0: 61 69 74 69 6E 67 20 66 6F 72 20 66 72 61 6D 65 aiting for frame
021EE0: 20 66 6C 79 62 61 63 6B 20 61 6E 64 20 63 68 61 flyback and cha
021EF0: 6E 67 69 6E 67 20 74 68 65 20 73 63 72 65 65 6E nging the screen
021F00: 20 6F 66 66 73 65 74 2C 20 20 74 68 65 20 20 73 offset, the s
021F10: 65 63 6F 6E 64 0D 0A 20 20 20 20 20 20 20 68 61 econd.. ha
021F20: 6C 66 20 6F 66 20 74 68 65 20 6C 69 6E 65 20 74 lf of the line t
021F30: 68 61 74 20 77 61 73 20 70 61 72 74 20 6F 66 20 hat was part of
021F40: 74 68 65 20 6C 69 6E 65 20 74 68 61 74 20 6A 75 the line that ju
021F50: 73 74 20 20 72 6F 6C 6C 65 64 20 20 6F 66 66 20 st rolled off
021F60: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 73 63 72 the.. scr
021F70: 65 65 6E 20 69 73 20 63 6C 65 61 72 65 64 2E 0D een is cleared..
021F80: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
021F90: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 20 20 20 20 d entries:..
021FA0: 20 20 20 53 43 52 20 53 45 54 20 4F 46 46 53 45 SCR SET OFFSE
021FB0: 54 0D 0A 20 20 20 20 20 20 20 53 43 52 20 53 57 T.. SCR SW
021FC0: 20 52 4F 4C 4C 0D 0A 0D 0A 20 20 20 20 20 20 20 ROLL....
021FD0: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
021FE0: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
021FF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022000: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
022010: 31 35 2E 31 31 36 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.116..........
022020: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 31 32 3A 20 .... 112:
022030: 53 43 52 20 53 57 20 52 4F 4C 4C 20 20 20 20 20 SCR SW ROLL
022040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022060: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 35 #BC5
022070: 30 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 6F 76 65 0.... Move
022080: 20 61 6E 20 61 72 65 61 20 20 6F 66 20 20 74 68 an area of th
022090: 65 20 20 73 63 72 65 65 6E 20 20 75 70 20 20 6F e screen up o
0220A0: 72 20 20 64 6F 77 6E 20 20 65 69 67 68 74 20 20 r down eight
0220B0: 70 69 78 65 6C 20 20 6C 69 6E 65 73 20 20 28 6F pixel lines (o
0220C0: 6E 65 0D 0A 20 20 20 20 20 20 20 63 68 61 72 61 ne.. chara
0220D0: 63 74 65 72 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 cter).....
0220E0: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 Action:....
0220F0: 20 20 20 52 6F 6C 6C 20 61 6E 20 61 72 65 61 20 Roll an area
022100: 6F 66 20 74 68 65 20 73 63 72 65 65 6E 20 62 79 of the screen by
022110: 20 20 63 6F 70 79 69 6E 67 2E 20 20 54 68 65 20 copying. The
022120: 20 61 72 65 61 20 20 74 6F 20 20 62 65 20 20 72 area to be r
022130: 6F 6C 6C 65 64 20 20 69 73 0D 0A 20 20 20 20 20 olled is..
022140: 20 20 73 70 65 63 69 66 69 65 64 20 69 6E 20 63 specified in c
022150: 68 61 72 61 63 74 65 72 20 70 6F 73 69 74 69 6F haracter positio
022160: 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ns..... En
022170: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
022180: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
022190: 20 73 63 72 65 65 6E 20 69 73 20 74 6F 20 72 6F screen is to ro
0221A0: 6C 6C 20 64 6F 77 6E 3A 0D 0A 0D 0A 20 20 20 20 ll down:....
0221B0: 20 20 20 20 20 20 20 20 20 20 20 20 42 20 6D 75 B mu
0221C0: 73 74 20 62 65 20 7A 65 72 6F 2E 0D 0A 0D 0A 20 st be zero.....
0221D0: 20 20 20 20 20 20 49 66 20 74 68 65 20 73 63 72 If the scr
0221E0: 65 65 6E 20 69 73 20 74 6F 20 72 6F 6C 6C 20 75 een is to roll u
0221F0: 70 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 p:....
022200: 20 20 20 20 20 20 42 20 6D 75 73 74 20 62 65 20 B must be
022210: 6E 6F 6E 2D 7A 65 72 6F 2E 0D 0A 0D 0A 20 20 20 non-zero.....
022220: 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A 20 Always:....
022230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
022240: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 65 6E contains the en
022250: 63 6F 64 65 64 20 69 6E 6B 20 74 6F 20 63 6C 65 coded ink to cle
022260: 61 72 20 74 68 65 20 6E 65 77 20 6C 69 6E 65 20 ar the new line
022270: 74 6F 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 to...
022280: 20 20 20 20 20 48 20 63 6F 6E 74 61 69 6E 73 20 H contains
022290: 74 68 65 20 70 68 79 73 69 63 61 6C 20 6C 65 66 the physical lef
0222A0: 74 20 63 6F 6C 75 6D 6E 20 6F 66 20 74 68 65 20 t column of the
0222B0: 61 72 65 61 20 74 6F 20 72 6F 6C 6C 2E 0D 0A 20 area to roll...
0222C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 D
0222D0: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 68 contains the ph
0222E0: 79 73 69 63 61 6C 20 72 69 67 68 74 20 63 6F 6C ysical right col
0222F0: 75 6D 6E 20 6F 66 20 74 68 65 20 61 72 65 61 20 umn of the area
022300: 74 6F 20 72 6F 6C 6C 2E 0D 0A 20 20 20 20 20 20 to roll...
022310: 20 20 20 20 20 20 20 20 20 20 4C 20 63 6F 6E 74 L cont
022320: 61 69 6E 73 20 74 68 65 20 70 68 79 73 69 63 61 ains the physica
022330: 6C 20 74 6F 70 20 72 6F 77 20 6F 66 20 74 68 65 l top row of the
022340: 20 61 72 65 61 20 74 6F 20 72 6F 6C 6C 2E 0D 0A area to roll...
022350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022360: 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 E contains the p
022370: 68 79 73 69 63 61 6C 20 62 6F 74 74 6F 6D 20 72 hysical bottom r
022380: 6F 77 20 6F 66 20 74 68 65 20 61 72 65 61 20 74 ow of the area t
022390: 6F 20 72 6F 6C 6C 2E 0D 0A 0D 0A 20 20 20 20 20 o roll.....
0223A0: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
0223B0: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C s:.... AF,
0223C0: 20 42 43 2C 20 44 45 20 61 6E 64 20 48 4C 20 63 BC, DE and HL c
0223D0: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
0223E0: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
0223F0: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
022400: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
022410: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 61 72 ... The ar
022420: 65 61 20 62 6F 75 6E 64 61 72 69 65 73 20 61 72 ea boundaries ar
022430: 65 20 67 69 76 65 6E 20 69 6E 20 70 68 79 73 69 e given in physi
022440: 63 61 6C 20 20 63 6F 6F 72 64 69 6E 61 74 65 73 cal coordinates
022450: 2E 20 20 69 2E 65 2E 20 20 52 6F 77 20 20 30 2C . i.e. Row 0,
022460: 0D 0A 20 20 20 20 20 20 20 63 6F 6C 75 6D 6E 20 .. column
022470: 30 20 69 73 20 74 68 65 20 74 6F 70 20 6C 65 66 0 is the top lef
022480: 74 20 63 6F 72 6E 65 72 20 6F 66 20 74 68 65 20 t corner of the
022490: 73 63 72 65 65 6E 2E 20 54 68 65 20 62 6F 75 6E screen. The boun
0224A0: 64 61 72 69 65 73 20 61 72 65 20 20 6E 6F 74 0D daries are not.
0224B0: 0A 20 20 20 20 20 20 20 63 68 65 63 6B 65 64 20 . checked
0224C0: 66 6F 72 20 6C 65 67 61 6C 69 74 79 2E 20 49 66 for legality. If
0224D0: 20 69 6C 6C 65 67 61 6C 20 62 6F 75 6E 64 61 72 illegal boundar
0224E0: 69 65 73 20 61 72 65 20 70 61 73 73 65 64 20 28 ies are passed (
0224F0: 65 64 67 65 73 20 20 6F 66 20 20 74 68 65 0D 0A edges of the..
022500: 20 20 20 20 20 20 20 73 63 72 65 65 6E 29 20 74 screen) t
022510: 68 65 6E 20 75 6E 70 72 65 64 69 63 74 61 62 6C hen unpredictabl
022520: 65 20 65 66 66 65 63 74 73 20 6D 61 79 20 6F 63 e effects may oc
022530: 63 75 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 cur..... R
022540: 6F 6C 6C 69 6E 67 20 74 68 65 20 61 72 65 61 20 olling the area
022550: 75 70 77 61 72 64 73 20 6D 6F 76 65 73 20 74 68 upwards moves th
022560: 65 20 63 6F 6E 74 65 6E 74 73 20 20 75 70 20 20 e contents up
022570: 61 6E 64 20 20 63 6C 65 61 72 73 20 20 74 68 65 and clears the
022580: 20 20 6E 65 77 0D 0A 20 20 20 20 20 20 20 62 6F new.. bo
022590: 74 74 6F 6D 20 6C 69 6E 65 2E 20 52 6F 6C 6C 69 ttom line. Rolli
0225A0: 6E 67 20 74 68 65 20 61 72 65 61 20 64 6F 77 6E ng the area down
0225B0: 77 61 72 64 73 20 6D 6F 76 65 73 20 74 68 65 20 wards moves the
0225C0: 61 72 65 61 20 20 63 6F 6E 74 65 6E 74 73 20 20 area contents
0225D0: 64 6F 77 6E 0D 0A 20 20 20 20 20 20 20 63 6C 65 down.. cle
0225E0: 61 72 73 20 74 68 65 20 74 6F 70 20 6E 65 77 20 ars the top new
0225F0: 6C 69 6E 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 line.....
022600: 54 68 65 20 6C 69 6E 65 20 69 73 20 63 6C 65 61 The line is clea
022610: 72 65 64 20 62 79 20 77 72 69 74 69 6E 67 20 74 red by writing t
022620: 6F 20 69 74 20 64 69 72 65 63 74 6C 79 3B 20 74 o it directly; t
022630: 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 20 he Graphics VDU
022640: 20 77 72 69 74 65 0D 0A 20 20 20 20 20 20 20 6D write.. m
022650: 6F 64 65 20 69 73 20 69 67 6E 6F 72 65 64 2E 0D ode is ignored..
022660: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 54 65 ... The Te
022670: 78 74 20 56 44 55 20 72 6F 6C 6C 20 63 6F 75 6E xt VDU roll coun
022680: 74 20 69 73 20 6E 6F 74 20 63 68 61 6E 67 65 64 t is not changed
022690: 20 62 79 20 74 68 69 73 20 72 6F 75 74 69 6E 65 by this routine
0226A0: 20 20 28 73 65 65 20 20 54 58 54 20 20 47 45 54 (see TXT GET
0226B0: 0D 0A 20 20 20 20 20 20 20 57 49 4E 44 4F 57 29 .. WINDOW)
0226C0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 53 70 65 63 ..... Spec
0226D0: 69 61 6C 20 70 72 65 63 61 75 74 69 6F 6E 73 20 ial precautions
0226E0: 61 72 65 20 74 61 6B 65 6E 20 74 6F 20 6D 61 6B are taken to mak
0226F0: 65 20 73 75 72 65 20 74 68 61 74 20 20 74 68 65 e sure that the
022700: 20 20 73 63 72 65 65 6E 20 20 69 73 20 20 6B 65 screen is ke
022710: 70 74 0D 0A 20 20 20 20 20 20 20 6C 6F 6F 6B 69 pt.. looki
022720: 6E 67 20 70 72 65 73 65 6E 74 61 62 6C 65 20 64 ng presentable d
022730: 75 72 69 6E 67 20 74 68 65 20 72 6F 6C 6C 69 6E uring the rollin
022740: 67 2E 0D 0A 20 20 20 20 20 20 20 50 72 69 6E 63 g... Princ
022750: 69 70 61 6C 6C 79 20 74 68 69 73 20 63 6F 6E 73 ipally this cons
022760: 69 73 74 73 20 77 61 69 74 69 6E 67 20 66 6F 72 ists waiting for
022770: 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 62 frame flyback b
022780: 65 66 6F 72 65 20 20 70 65 72 66 6F 72 6D 69 6E efore performin
022790: 67 0D 0A 20 20 20 20 20 20 20 74 68 65 20 63 6F g.. the co
0227A0: 70 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 py..... Re
0227B0: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
0227C0: 0D 0A 20 20 20 20 20 20 20 53 43 52 20 48 57 20 .. SCR HW
0227D0: 52 4F 4C 4C 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ROLL.... A
0227E0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
0227F0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
022800: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
022810: 1D 00 00 00 02 09 50 E5 1D 00 C1 02 00 00 00 02 ......P.........
022820: 1D 00 C2 02 00 00 00 02 1D 00 C3 02 00 00 00 02 ................
022830: 1D 00 C4 02 00 00 00 02 1D 00 C5 02 00 00 00 02 ................
022840: 1D 00 C6 02 00 00 00 02 1D 00 C7 02 00 00 00 02 ................
022850: 1D 00 C8 02 00 00 00 02 1D 00 C9 02 00 00 00 02 ................
022860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022910: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
022920: 35 2E 31 31 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 5.117...........
022930: 0A 0D 0A 20 20 20 20 20 20 20 31 31 33 3A 20 53 ... 113: S
022940: 43 52 20 55 4E 50 41 43 4B 20 20 20 20 20 20 20 CR UNPACK
022950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022970: 20 20 20 20 20 20 20 20 20 20 20 23 42 43 35 33 #BC53
022980: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 70 ...... Exp
022990: 61 6E 64 20 61 20 63 68 61 72 61 63 74 65 72 20 and a character
0229A0: 6D 61 74 72 69 78 20 66 6F 72 20 74 68 65 20 63 matrix for the c
0229B0: 75 72 72 65 6E 74 20 73 63 72 65 65 6E 20 6D 6F urrent screen mo
0229C0: 64 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 de.......
0229D0: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
0229E0: 20 20 20 20 43 6F 6E 76 65 72 74 20 61 20 6D 61 Convert a ma
0229F0: 74 72 69 78 20 66 72 6F 6D 20 69 74 73 20 73 74 trix from its st
022A00: 61 6E 64 61 72 64 20 66 6F 72 6D 20 74 6F 20 61 andard form to a
022A10: 20 73 65 74 20 20 6F 66 20 20 70 69 78 65 6C 20 set of pixel
022A20: 20 6D 61 73 6B 73 20 20 61 73 0D 0A 20 20 20 20 masks as..
022A30: 20 20 20 61 70 70 72 6F 70 72 69 61 74 65 20 66 appropriate f
022A40: 6F 72 20 74 68 65 20 63 75 72 72 65 6E 74 20 73 or the current s
022A50: 63 72 65 65 6E 20 6D 6F 64 65 2E 0D 0A 0D 0A 0D creen mode......
022A60: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
022A70: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
022A80: 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E HL contain
022A90: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 s the address of
022AA0: 20 61 20 6D 61 74 72 69 78 2E 0D 0A 20 20 20 20 a matrix...
022AB0: 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 DE contains t
022AC0: 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 61 6E he address of an
022AD0: 20 61 72 65 61 20 74 6F 20 75 6E 70 61 63 6B 20 area to unpack
022AE0: 69 6E 74 6F 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 into.......
022AF0: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
022B00: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 s:...... A
022B10: 46 2C 20 42 43 2C 20 44 45 20 61 6E 64 20 48 4C F, BC, DE and HL
022B20: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
022B30: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
022B40: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
022B50: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ...... Not
022B60: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
022B70: 54 68 65 20 6D 61 74 72 69 78 20 69 73 20 63 6F The matrix is co
022B80: 6E 76 65 72 74 65 64 20 69 6E 74 6F 20 61 20 73 nverted into a s
022B90: 65 72 69 65 73 20 6F 66 20 6D 61 73 6B 73 20 20 eries of masks
022BA0: 77 68 69 63 68 20 20 63 6F 76 65 72 20 20 61 6C which cover al
022BB0: 6C 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 73 l the.. s
022BC0: 63 72 65 65 6E 20 62 79 74 65 73 20 69 6E 20 74 creen bytes in t
022BD0: 68 65 20 63 68 61 72 61 63 74 65 72 2E 20 54 68 he character. Th
022BE0: 69 73 20 6D 65 61 6E 73 20 74 68 61 74 20 65 61 is means that ea
022BF0: 63 68 20 62 79 74 65 20 6F 66 20 74 68 65 20 6D ch byte of the m
022C00: 61 74 72 69 78 0D 0A 20 20 20 20 20 20 20 69 73 atrix.. is
022C10: 20 63 6F 6E 76 65 72 74 65 64 20 74 6F 20 34 20 converted to 4
022C20: 62 79 74 65 73 20 69 6E 20 6D 6F 64 65 20 30 2C bytes in mode 0,
022C30: 20 32 20 62 79 74 65 73 20 69 6E 20 6D 6F 64 65 2 bytes in mode
022C40: 20 31 20 20 61 6E 64 20 20 31 20 20 62 79 74 65 1 and 1 byte
022C50: 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 6D 6F 64 in.. mod
022C60: 65 20 32 2E 20 54 68 75 73 20 74 68 65 20 75 6E e 2. Thus the un
022C70: 70 61 63 6B 69 6E 67 20 61 72 65 61 20 6D 75 73 packing area mus
022C80: 74 20 62 65 20 33 32 2C 20 31 36 20 6F 72 20 38 t be 32, 16 or 8
022C90: 20 62 79 74 65 73 20 6C 6F 6E 67 2E 0D 0A 0D 0A bytes long.....
022CA0: 0D 0A 20 20 20 20 20 20 20 49 66 20 61 20 62 69 .. If a bi
022CB0: 74 20 69 6E 20 74 68 65 20 6D 61 74 72 69 78 20 t in the matrix
022CC0: 69 73 20 73 65 74 20 20 74 68 65 6E 20 20 74 68 is set then th
022CD0: 65 20 20 61 70 70 72 6F 70 72 69 61 74 65 20 20 e appropriate
022CE0: 70 69 78 65 6C 20 20 6D 61 73 6B 20 20 69 73 0D pixel mask is.
022CF0: 0A 20 20 20 20 20 20 20 69 6E 63 6C 75 64 65 64 . included
022D00: 20 69 6E 20 74 68 65 20 75 6E 70 61 63 6B 65 64 in the unpacked
022D10: 20 76 65 72 73 69 6F 6E 20 28 74 68 65 20 62 69 version (the bi
022D20: 74 73 20 61 72 65 20 73 65 74 20 74 6F 20 6F 6E ts are set to on
022D30: 65 29 2E 20 20 4F 74 68 65 72 77 69 73 65 0D 0A e). Otherwise..
022D40: 20 20 20 20 20 20 20 74 68 65 20 70 69 78 65 6C the pixel
022D50: 20 6D 61 73 6B 20 69 73 20 6E 6F 74 20 69 6E 63 mask is not inc
022D60: 6C 75 64 65 64 20 69 6E 20 74 68 65 20 75 6E 70 luded in the unp
022D70: 61 63 6B 65 64 20 76 65 72 73 69 6F 6E 20 28 74 acked version (t
022D80: 68 65 20 20 62 69 74 73 20 20 61 72 65 0D 0A 20 he bits are..
022D90: 20 20 20 20 20 20 73 65 74 20 74 6F 20 7A 65 72 set to zer
022DA0: 6F 29 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 o).........
022DB0: 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 Related entrie
022DC0: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 s:...... S
022DD0: 43 52 20 52 45 50 41 43 4B 0D 0A 0D 0A 0D 0A 0D CR REPACK.......
022DE0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
022DF0: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
022E00: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
022E10: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
022E20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022E30: 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 31 38 page 15.118
022E40: 0D 0A 1A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
022E50: 20 20 20 20 23 42 43 33 35 0D 0A 0D 0A 0D 0A 20 #BC35......
022E60: 20 20 20 20 20 20 41 73 6B 20 74 68 65 20 63 6F Ask the co
022E70: 6C 6F 75 72 73 20 61 6E 20 69 6E 6B 20 69 73 20 lours an ink is
022E80: 74 20 62 65 20 33 32 2C 20 31 36 20 6F 72 20 38 t be 32, 16 or 8
022E90: 20 62 79 74 65 73 20 6C 6F 6E 67 2E 0D 0A 0D 0A bytes long.....
022EA0: 0D 0A 20 20 20 20 20 20 20 49 66 20 61 20 62 69 .. If a bi
022EB0: 74 20 69 6E 20 74 68 65 20 6D 61 74 72 69 78 20 t in the matrix
022EC0: 69 73 20 73 65 74 20 20 74 68 65 6E 20 20 74 68 is set then th
022ED0: 65 20 20 61 70 70 72 6F 70 72 69 61 74 65 20 20 e appropriate
022EE0: 70 69 78 65 6C 20 20 6D 61 73 6B 20 20 69 73 0D pixel mask is.
022EF0: 0A 20 20 20 20 20 20 20 69 6E 63 6C 75 64 65 64 . included
022F00: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
022F10: 20 20 20 33 32 3A 20 54 58 54 20 52 44 20 43 48 32: TXT RD CH
022F20: 41 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 AR
022F30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022F40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022F50: 20 20 20 20 23 42 42 36 30 0D 0A 0D 0A 20 20 20 #BB60....
022F60: 20 20 20 20 52 65 61 64 20 61 20 63 68 61 72 61 Read a chara
022F70: 63 74 65 72 20 66 72 6F 6D 20 74 68 65 20 73 63 cter from the sc
022F80: 72 65 65 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 reen.....
022F90: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 Action:....
022FA0: 20 20 52 65 61 64 20 61 20 63 68 61 72 61 63 74 Read a charact
022FB0: 65 72 20 66 72 6F 6D 20 20 74 68 65 20 20 73 63 er from the sc
022FC0: 72 65 65 6E 20 20 61 74 20 20 74 68 65 20 20 63 reen at the c
022FD0: 75 72 73 6F 72 20 20 70 6F 73 69 74 69 6F 6E 20 ursor position
022FE0: 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 of the..
022FF0: 20 63 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 currently selec
023000: 74 65 64 20 73 74 72 65 61 6D 2E 0D 0A 0D 0A 20 ted stream.....
023010: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
023020: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
023030: 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E No conditions.
023040: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
023050: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
023060: 20 20 20 20 20 20 49 66 20 61 20 72 65 63 6F 67 If a recog
023070: 6E 69 73 61 62 6C 65 20 63 68 61 72 61 63 74 65 nisable characte
023080: 72 20 77 61 73 20 66 6F 75 6E 64 3A 0D 0A 20 20 r was found:..
023090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 Ca
0230A0: 72 72 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 rry true...
0230B0: 20 20 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E A con
0230C0: 74 61 69 6E 73 20 74 68 65 20 63 68 61 72 61 63 tains the charac
0230D0: 74 65 72 20 72 65 61 64 2E 0D 0A 0D 0A 20 20 20 ter read.....
0230E0: 20 20 20 20 49 66 20 6E 6F 20 72 65 63 6F 67 6E If no recogn
0230F0: 69 73 61 62 6C 65 20 63 68 61 72 61 63 74 65 72 isable character
023100: 20 77 61 73 20 66 6F 75 6E 64 3A 0D 0A 20 20 20 was found:..
023110: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 Car
023120: 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 ry false...
023130: 20 20 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E A con
023140: 74 61 69 6E 73 20 7A 65 72 6F 2E 0D 0A 0D 0A 20 tains zero.....
023150: 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D Always:...
023160: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
023170: 20 4F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 Other flags cor
023180: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 rupt...
023190: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
0231A0: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
0231B0: 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rved.....
0231C0: 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 Notes:....
0231D0: 20 49 6E 20 56 31 2E 31 20 66 69 72 6D 77 61 72 In V1.1 firmwar
0231E0: 65 20 74 68 65 20 63 75 72 73 6F 72 20 20 70 6F e the cursor po
0231F0: 73 69 74 69 6F 6E 20 20 69 73 20 20 66 6F 72 63 sition is forc
023200: 65 64 20 20 6C 65 67 61 6C 20 20 28 69 6E 73 69 ed legal (insi
023210: 64 65 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 de the..
023220: 77 69 6E 64 6F 77 29 20 62 65 66 6F 72 65 20 74 window) before t
023230: 68 65 20 63 68 61 72 61 63 74 65 72 20 69 73 20 he character is
023240: 72 65 61 64 2E 20 54 68 69 73 20 6D 61 79 20 20 read. This may
023250: 63 61 75 73 65 20 20 74 68 65 20 20 73 63 72 65 cause the scre
023260: 65 6E 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 72 en to.. r
023270: 6F 6C 6C 2E 20 54 68 65 20 73 61 6D 65 20 69 73 oll. The same is
023280: 20 6E 6F 74 20 74 72 75 65 20 69 6E 20 56 31 2E not true in V1.
023290: 30 20 66 69 72 6D 77 61 72 65 20 77 68 65 72 65 0 firmware where
0232A0: 20 74 68 65 20 63 75 72 73 6F 72 20 20 70 6F 73 the cursor pos
0232B0: 69 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 69 73 ition.. is
0232C0: 20 6E 6F 74 20 20 66 6F 72 63 65 64 20 20 6C 65 not forced le
0232D0: 67 61 6C 20 20 61 6E 64 20 20 73 74 65 70 73 20 gal and steps
0232E0: 20 6D 75 73 74 20 20 62 65 20 20 74 61 6B 65 6E must be taken
0232F0: 20 20 74 6F 20 20 61 76 6F 69 64 20 20 72 65 61 to avoid rea
023300: 64 69 6E 67 0D 0A 20 20 20 20 20 20 20 63 68 61 ding.. cha
023310: 72 61 63 74 65 72 73 20 66 72 6F 6D 20 6F 75 74 racters from out
023320: 73 69 64 65 20 74 68 65 20 77 69 6E 64 6F 77 2E side the window.
023330: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 72 .... The r
023340: 65 61 64 20 69 73 20 70 65 72 66 6F 72 6D 65 64 ead is performed
023350: 20 62 79 20 63 6F 6D 70 61 72 69 6E 67 20 74 68 by comparing th
023360: 65 20 6D 61 74 72 69 78 20 66 6F 75 6E 64 20 6F e matrix found o
023370: 6E 20 74 68 65 20 73 63 72 65 65 6E 20 77 69 74 n the screen wit
023380: 68 0D 0A 20 20 20 20 20 20 20 74 68 65 20 6D 61 h.. the ma
023390: 74 72 69 63 65 73 20 75 73 65 64 20 74 6F 20 67 trices used to g
0233A0: 65 6E 65 72 61 74 65 20 20 63 68 61 72 61 63 74 enerate charact
0233B0: 65 72 73 2E 20 20 41 73 20 20 61 20 20 72 65 73 ers. As a res
0233C0: 75 6C 74 20 20 63 68 61 6E 67 69 6E 67 20 20 61 ult changing a
0233D0: 0D 0A 20 20 20 20 20 20 20 63 68 61 72 61 63 74 .. charact
0233E0: 65 72 20 6D 61 74 72 69 78 2C 20 63 68 61 6E 67 er matrix, chang
0233F0: 69 6E 67 20 74 68 65 20 70 65 6E 20 6F 72 20 20 ing the pen or
023400: 70 61 70 65 72 20 20 69 6E 6B 73 2C 20 20 6F 72 paper inks, or
023410: 20 20 63 68 61 6E 67 69 6E 67 20 20 74 68 65 0D changing the.
023420: 0A 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 28 . screen (
023430: 65 2E 67 2E 20 20 64 72 61 77 69 6E 67 20 20 61 e.g. drawing a
023440: 20 20 6C 69 6E 65 20 20 74 68 72 6F 75 67 68 20 line through
023450: 20 61 20 20 63 68 61 72 61 63 74 65 72 29 20 20 a character)
023460: 6D 61 79 20 20 6D 61 6B 65 20 20 74 68 65 0D 0A may make the..
023470: 20 20 20 20 20 20 20 63 68 61 72 61 63 74 65 72 character
023480: 20 75 6E 72 65 61 64 61 62 6C 65 2E 0D 0A 0D 0A unreadable.....
023490: 20 20 20 20 20 20 20 54 6F 20 61 63 74 75 61 6C To actual
0234A0: 6C 79 20 72 65 61 64 20 20 74 68 65 20 20 63 68 ly read the ch
0234B0: 61 72 61 63 74 65 72 20 20 66 72 6F 6D 20 20 74 aracter from t
0234C0: 68 65 20 20 73 63 72 65 65 6E 20 20 74 68 65 20 he screen the
0234D0: 20 54 58 54 20 20 55 4E 57 52 49 54 45 0D 0A 20 TXT UNWRITE..
0234E0: 20 20 20 20 20 20 69 6E 64 69 72 65 63 74 69 6F indirectio
0234F0: 6E 20 69 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A n is called.....
023500: 20 20 20 20 20 20 20 53 70 65 63 69 61 6C 20 20 Special
023510: 70 72 65 63 61 75 74 69 6F 6E 73 20 20 61 72 65 precautions are
023520: 20 20 74 61 6B 65 6E 20 20 61 67 61 69 6E 73 74 taken against
023530: 20 20 67 65 6E 65 72 61 74 69 6E 67 20 20 69 6E generating in
023540: 76 65 72 73 65 20 20 20 73 70 61 63 65 0D 0A 20 verse space..
023550: 20 20 20 20 20 20 28 63 68 61 72 61 63 74 65 72 (character
023560: 20 23 38 46 29 2E 20 49 6E 69 74 69 61 6C 6C 79 #8F). Initially
023570: 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 69 the character i
023580: 73 20 20 72 65 61 64 20 20 61 73 73 75 6D 69 6E s read assumin
023590: 67 20 20 74 68 61 74 20 20 74 68 65 0D 0A 20 20 g that the..
0235A0: 20 20 20 20 20 62 61 63 6B 67 72 6F 75 6E 64 20 background
0235B0: 74 6F 20 74 68 65 20 63 68 61 72 61 63 74 65 72 to the character
0235C0: 20 77 61 73 20 77 72 69 74 74 65 6E 20 69 6E 20 was written in
0235D0: 74 68 65 20 63 75 72 72 65 6E 74 20 70 61 70 65 the current pape
0235E0: 72 20 20 69 6E 6B 20 20 61 6E 64 0D 0A 20 20 20 r ink and..
0235F0: 20 20 20 20 74 72 65 61 74 69 6E 67 20 61 6E 79 treating any
023600: 20 6F 74 68 65 72 20 69 6E 6B 20 61 73 20 66 6F other ink as fo
023610: 72 65 67 72 6F 75 6E 64 2E 20 49 66 20 20 74 68 reground. If th
023620: 69 73 20 20 66 61 69 6C 73 20 20 74 6F 20 20 67 is fails to g
023630: 65 6E 65 72 61 74 65 20 20 61 0D 0A 20 20 20 20 enerate a..
023640: 20 20 20 72 65 63 6F 67 6E 69 73 61 62 6C 65 20 recognisable
023650: 63 68 61 72 61 63 74 65 72 20 6F 72 20 69 74 20 character or it
023660: 67 65 6E 65 72 61 74 65 73 20 69 6E 76 65 72 73 generates invers
023670: 65 20 73 70 61 63 65 20 74 68 65 6E 20 61 6E 6F e space then ano
023680: 74 68 65 72 20 20 74 72 79 0D 0A 20 20 20 20 20 ther try..
023690: 20 20 69 73 20 6D 61 64 65 20 62 79 20 61 73 73 is made by ass
0236A0: 75 6D 69 6E 67 20 74 68 61 74 20 74 68 65 20 66 uming that the f
0236B0: 6F 72 65 67 72 6F 75 6E 64 20 74 6F 20 74 68 65 oreground to the
0236C0: 20 63 68 61 72 61 63 74 65 72 20 20 77 61 73 20 character was
0236D0: 20 77 72 69 74 74 65 6E 0D 0A 20 20 20 20 20 20 written..
0236E0: 20 69 6E 20 74 68 65 20 63 75 72 72 65 6E 74 20 in the current
0236F0: 70 65 6E 20 69 6E 6B 20 61 6E 64 20 74 72 65 61 pen ink and trea
023700: 74 69 6E 67 20 61 6E 79 20 6F 74 68 65 72 20 69 ting any other i
023710: 6E 6B 20 61 73 20 62 61 63 6B 67 72 6F 75 6E 64 nk as background
023720: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
023730: 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 73 characters are s
023740: 63 61 6E 6E 65 64 20 73 74 61 72 74 69 6E 67 20 canned starting
023750: 77 69 74 68 20 23 30 30 20 61 6E 64 20 66 69 6E with #00 and fin
023760: 69 73 68 69 6E 67 20 77 69 74 68 20 23 46 46 2E ishing with #FF.
023770: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
023780: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 20 20 20 ed entries:..
023790: 20 20 20 20 54 58 54 20 55 4E 57 52 49 54 45 0D TXT UNWRITE.
0237A0: 0A 20 20 20 20 20 20 20 54 58 54 20 57 52 20 43 . TXT WR C
0237B0: 48 41 52 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D HAR.... AM
0237C0: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
0237D0: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
0237E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0237F0: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
023800: 35 2E 33 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 5.34............
023810: 0D 0A 20 20 20 20 20 20 20 33 33 3A 20 54 58 54 .. 33: TXT
023820: 20 53 45 54 20 47 52 41 50 48 49 43 20 20 20 20 SET GRAPHIC
023830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023850: 20 20 20 20 20 20 20 20 20 20 23 42 42 36 33 0D #BB63.
023860: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 75 72 6E ..... Turn
023870: 20 6F 6E 20 6F 72 20 6F 66 66 20 74 68 65 20 47 on or off the G
023880: 72 61 70 68 69 63 73 20 56 44 55 20 77 72 69 74 raphics VDU writ
023890: 65 20 63 68 61 72 61 63 74 65 72 20 6F 70 74 69 e character opti
0238A0: 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 on.......
0238B0: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 Action:....
0238C0: 20 20 45 6E 61 62 6C 65 20 6F 72 20 64 69 73 61 Enable or disa
0238D0: 62 6C 65 20 67 72 61 70 68 69 63 20 63 68 61 72 ble graphic char
0238E0: 61 63 74 65 72 20 77 72 69 74 69 6E 67 20 6F 6E acter writing on
0238F0: 20 74 68 65 20 63 75 72 72 65 6E 74 6C 79 20 20 the currently
023900: 73 65 6C 65 63 74 65 64 0D 0A 20 20 20 20 20 20 selected..
023910: 20 73 74 72 65 61 6D 2E 0D 0A 0D 0A 0D 0A 20 20 stream.......
023920: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
023930: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
023940: 20 20 20 49 66 20 67 72 61 70 68 69 63 20 77 72 If graphic wr
023950: 69 74 69 6E 67 20 69 73 20 74 6F 20 62 65 20 74 iting is to be t
023960: 75 72 6E 65 64 20 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 urned on:......
023970: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
023980: 20 6D 75 73 74 20 62 65 20 6E 6F 6E 2D 7A 65 72 must be non-zer
023990: 6F 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 o....... I
0239A0: 66 20 74 68 65 20 67 72 61 70 68 69 63 20 77 72 f the graphic wr
0239B0: 69 74 69 6E 67 20 69 73 20 74 6F 20 62 65 20 74 iting is to be t
0239C0: 75 72 6E 65 64 20 6F 66 66 3A 0D 0A 0D 0A 0D 0A urned off:......
0239D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0239E0: 41 20 6D 75 73 74 20 63 6F 6E 74 61 69 6E 20 7A A must contain z
0239F0: 65 72 6F 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ero.......
023A00: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
023A10: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
023A20: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
023A30: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
023A40: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
023A50: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ...... Not
023A60: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
023A70: 57 68 65 6E 20 67 72 61 70 68 69 63 20 63 68 61 When graphic cha
023A80: 72 61 63 74 65 72 20 77 72 69 74 69 6E 67 20 69 racter writing i
023A90: 73 20 65 6E 61 62 6C 65 64 20 74 68 65 6E 20 61 s enabled then a
023AA0: 6C 6C 20 63 68 61 72 61 63 74 65 72 73 20 73 65 ll characters se
023AB0: 6E 74 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 54 nt to.. T
023AC0: 58 54 20 4F 55 54 50 55 54 20 61 72 65 20 70 72 XT OUTPUT are pr
023AD0: 69 6E 74 65 64 20 75 73 69 6E 67 20 74 68 65 20 inted using the
023AE0: 47 72 61 70 68 69 63 73 20 56 44 55 20 28 73 65 Graphics VDU (se
023AF0: 65 20 47 52 41 20 57 52 20 43 48 41 52 29 20 72 e GRA WR CHAR) r
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: 61 74 68 65 72 0D 0A 20 20 20 20 20 20 20 74 68 ather.. th
023C10: 65 6E 20 74 68 65 20 54 65 78 74 20 56 44 55 20 en the Text VDU
023C20: 28 73 65 65 20 54 58 54 20 20 57 52 20 20 43 48 (see TXT WR CH
023C30: 41 52 29 2E 20 20 41 6C 73 6F 20 20 61 6C 6C 20 AR). Also all
023C40: 20 63 6F 6E 74 72 6F 6C 20 20 63 6F 64 65 73 20 control codes
023C50: 20 61 72 65 0D 0A 20 20 20 20 20 20 20 70 72 69 are.. pri
023C60: 6E 74 65 64 20 72 61 74 68 65 72 20 74 68 61 6E nted rather than
023C70: 20 6F 62 65 79 65 64 2E 20 43 68 61 72 61 63 74 obeyed. Charact
023C80: 65 72 73 20 73 65 6E 74 20 74 6F 20 54 58 54 20 ers sent to TXT
023C90: 20 57 52 20 20 43 48 41 52 20 20 77 69 6C 6C 20 WR CHAR will
023CA0: 20 62 65 0D 0A 20 20 20 20 20 20 20 70 72 69 6E be.. prin
023CB0: 74 65 64 20 61 73 20 6E 6F 72 6D 61 6C 2E 0D 0A ted as normal...
023CC0: 0D 0A 0D 0A 20 20 20 20 20 20 20 43 68 61 72 61 .... Chara
023CD0: 63 74 65 72 20 70 72 69 6E 74 69 6E 67 20 69 73 cter printing is
023CE0: 20 6E 6F 74 20 70 72 65 76 65 6E 74 65 64 20 62 not prevented b
023CF0: 79 20 64 69 73 61 62 6C 69 6E 67 20 74 68 65 20 y disabling the
023D00: 20 54 65 78 74 20 20 56 44 55 20 20 28 77 69 74 Text VDU (wit
023D10: 68 0D 0A 20 20 20 20 20 20 20 54 58 54 20 56 44 h.. TXT VD
023D20: 55 20 44 49 53 41 42 4C 45 29 20 69 66 20 67 72 U DISABLE) if gr
023D30: 61 70 68 69 63 20 63 68 61 72 61 63 74 65 72 20 aphic character
023D40: 77 72 69 74 69 6E 67 20 69 73 20 65 6E 61 62 6C writing is enabl
023D50: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
023D60: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
023D70: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 47 ........ G
023D80: 52 41 20 57 52 20 43 48 41 52 0D 0A 20 20 20 20 RA WR CHAR..
023D90: 20 20 20 54 58 54 20 4F 55 54 50 55 54 0D 0A 0D TXT OUTPUT...
023DA0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
023DB0: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
023DC0: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
023DD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023DE0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
023DF0: 20 31 35 2E 33 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.35..........
023E00: 0D 0A 0D 0A 20 20 20 20 20 20 20 33 34 3A 20 54 .... 34: T
023E10: 58 54 20 57 49 4E 20 45 4E 41 42 4C 45 20 20 20 XT WIN ENABLE
023E20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023E30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023E40: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 42 36 #BB6
023E50: 36 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 6...... Se
023E60: 74 20 74 68 65 20 73 69 7A 65 20 6F 66 20 74 68 t the size of th
023E70: 65 20 63 75 72 72 65 6E 74 20 74 65 78 74 20 77 e current text w
023E80: 69 6E 64 6F 77 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 indow.......
023E90: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A Action:......
023EA0: 20 20 20 20 20 20 20 53 65 74 20 74 68 65 20 62 Set the b
023EB0: 6F 75 6E 64 61 72 69 65 73 20 6F 66 20 74 68 65 oundaries of the
023EC0: 20 77 69 6E 64 6F 77 20 6F 6E 20 74 68 65 20 63 window on the c
023ED0: 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 65 urrently selecte
023EE0: 64 20 73 74 72 65 61 6D 2E 20 54 68 65 0D 0A 20 d stream. The..
023EF0: 20 20 20 20 20 20 65 64 67 65 73 20 61 72 65 20 edges are
023F00: 74 68 65 20 66 69 72 73 74 20 61 6E 64 20 6C 61 the first and la
023F10: 73 74 20 63 68 61 72 61 63 74 65 72 20 63 6F 6C st character col
023F20: 75 6D 6E 73 20 69 6E 73 69 64 65 20 74 68 65 20 umns inside the
023F30: 20 77 69 6E 64 6F 77 20 20 61 6E 64 0D 0A 20 20 window and..
023F40: 20 20 20 20 20 74 68 65 20 66 69 72 73 74 20 61 the first a
023F50: 6E 64 20 6C 61 73 74 20 63 68 61 72 61 63 74 65 nd last characte
023F60: 72 20 72 6F 77 73 20 69 6E 73 69 64 65 20 74 68 r rows inside th
023F70: 65 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A 0D 0A 20 e window.......
023F80: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
023F90: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
023FA0: 20 20 48 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 H contains the
023FB0: 20 70 68 79 73 69 63 61 6C 20 63 6F 6C 75 6D 6E physical column
023FC0: 20 6F 66 20 6F 6E 65 20 65 64 67 65 2E 0D 0A 20 of one edge...
023FD0: 20 20 20 20 20 20 44 20 63 6F 6E 74 61 69 6E 73 D contains
023FE0: 20 74 68 65 20 70 68 79 73 69 63 61 6C 20 63 6F the physical co
023FF0: 6C 75 6D 6E 20 6F 66 20 74 68 65 20 6F 74 68 65 lumn of the othe
024000: 72 20 65 64 67 65 2E 0D 0A 20 20 20 20 20 20 20 r edge...
024010: 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 70 L contains the p
024020: 68 79 73 69 63 61 6C 20 72 6F 77 20 6F 66 20 6F hysical row of o
024030: 6E 65 20 65 64 67 65 2E 0D 0A 20 20 20 20 20 20 ne edge...
024040: 20 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 E contains the
024050: 70 68 79 73 69 63 61 6C 20 72 6F 77 20 6F 66 20 physical row of
024060: 74 68 65 20 6F 74 68 65 72 20 65 64 67 65 2E 0D the other edge..
024070: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
024080: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
024090: 20 20 20 20 20 41 46 2C 42 43 2C 44 45 20 61 6E AF,BC,DE an
0240A0: 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 d HL corrupt...
0240B0: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
0240C0: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
0240D0: 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E ved..... N
0240E0: 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 otes:....
0240F0: 54 68 65 20 65 64 67 65 20 70 6F 73 69 74 69 6F The edge positio
024100: 6E 73 20 61 72 65 20 67 69 76 65 6E 20 69 6E 20 ns are given in
024110: 70 68 79 73 69 63 61 6C 20 73 63 72 65 65 6E 20 physical screen
024120: 63 6F 6F 72 64 69 6E 61 74 65 73 20 20 69 2E 65 coordinates i.e
024130: 2E 20 20 52 6F 77 0D 0A 20 20 20 20 20 20 20 30 . Row.. 0
024140: 2C 20 63 6F 6C 75 6D 6E 20 30 20 69 73 20 74 68 , column 0 is th
024150: 65 20 74 6F 70 20 6C 65 66 74 20 63 6F 72 6E 65 e top left corne
024160: 72 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E 20 r of the screen
024170: 61 6E 64 20 20 74 68 65 20 20 63 6F 6F 72 64 69 and the coordi
024180: 6E 61 74 65 73 0D 0A 20 20 20 20 20 20 20 61 72 nates.. ar
024190: 65 20 73 69 67 6E 65 64 20 6E 75 6D 62 65 72 73 e signed numbers
0241A0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
0241B0: 77 69 6E 64 6F 77 20 69 73 20 74 72 75 6E 63 61 window is trunca
0241C0: 74 65 64 2C 20 69 66 20 6E 65 63 65 73 73 61 72 ted, if necessar
0241D0: 79 2C 20 73 6F 20 74 68 61 74 20 69 74 20 66 69 y, so that it fi
0241E0: 74 73 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E ts on the screen
0241F0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
024200: 6C 65 66 74 20 63 6F 6C 75 6D 6E 20 6F 66 20 74 left column of t
024210: 68 65 20 77 69 6E 64 6F 77 20 69 73 20 74 61 6B he window is tak
024220: 65 6E 20 74 6F 20 62 65 20 74 68 65 20 73 6D 61 en to be the sma
024230: 6C 6C 65 72 20 6F 66 20 48 20 20 61 6E 64 20 20 ller of H and
024240: 44 2E 0D 0A 20 20 20 20 20 20 20 54 68 65 20 74 D... The t
024250: 6F 70 20 72 6F 77 20 6F 66 20 74 68 65 20 77 69 op row of the wi
024260: 6E 64 6F 77 20 69 73 20 74 61 6B 65 6E 20 74 6F ndow is taken to
024270: 20 62 65 20 74 68 65 20 73 6D 61 6C 6C 65 72 20 be the smaller
024280: 6F 66 20 4C 20 61 6E 64 20 45 2E 0D 0A 0D 0A 20 of L and E.....
024290: 20 20 20 20 20 20 54 68 65 20 63 75 72 73 6F 72 The cursor
0242A0: 20 69 73 20 6D 6F 76 65 64 20 74 6F 20 74 68 65 is moved to the
0242B0: 20 74 6F 70 20 6C 65 66 74 20 63 6F 72 6E 65 72 top left corner
0242C0: 20 6F 66 20 74 68 65 20 77 69 6E 64 6F 77 2E 0D of the window..
0242D0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 77 69 ... The wi
0242E0: 6E 64 6F 77 20 69 73 20 6E 6F 74 20 63 6C 65 61 ndow is not clea
0242F0: 72 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 red..... I
024300: 66 20 74 68 65 20 77 69 6E 64 6F 77 20 63 6F 76 f the window cov
024310: 65 72 73 20 74 68 65 20 77 68 6F 6C 65 20 73 63 ers the whole sc
024320: 72 65 65 6E 20 74 68 65 6E 20 77 68 65 6E 20 74 reen then when t
024330: 68 65 20 77 69 6E 64 6F 77 20 20 69 73 20 20 72 he window is r
024340: 6F 6C 6C 65 64 0D 0A 20 20 20 20 20 20 20 74 68 olled.. th
024350: 65 20 68 61 72 64 77 61 72 65 20 72 6F 6C 6C 20 e hardware roll
024360: 72 6F 75 74 69 6E 65 20 28 73 65 65 20 53 43 52 routine (see SCR
024370: 20 48 57 20 20 52 4F 4C 4C 29 20 20 77 69 6C 6C HW ROLL) will
024380: 20 20 62 65 20 20 75 73 65 64 2E 20 20 49 66 20 be used. If
024390: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 77 69 6E the.. win
0243A0: 64 6F 77 20 63 6F 76 65 72 73 20 6C 65 73 73 20 dow covers less
0243B0: 74 68 61 6E 20 74 68 65 20 20 77 68 6F 6C 65 20 than the whole
0243C0: 73 63 72 65 65 6E 20 74 68 65 20 20 73 6F 66 74 screen the soft
0243D0: 77 61 72 65 20 20 72 6F 6C 6C 20 20 72 6F 75 74 ware roll rout
0243E0: 69 6E 65 0D 0A 20 20 20 20 20 20 20 28 73 65 65 ine.. (see
0243F0: 20 53 43 52 20 53 57 20 52 4F 4C 4C 29 20 77 69 SCR SW ROLL) wi
024400: 6C 6C 20 62 65 20 75 73 65 64 2E 0D 0A 0D 0A 20 ll be used.....
024410: 20 20 20 20 20 20 54 68 65 20 64 65 66 61 75 6C The defaul
024420: 74 20 74 65 78 74 20 77 69 6E 64 6F 77 20 63 6F t text window co
024430: 76 65 72 73 20 74 68 65 20 77 68 6F 6C 65 20 73 vers the whole s
024440: 63 72 65 65 6E 20 61 6E 64 20 69 73 20 73 65 74 creen and is set
024450: 20 75 70 20 77 68 65 6E 20 54 58 54 0D 0A 20 20 up when TXT..
024460: 20 20 20 20 20 49 4E 49 54 49 41 4C 49 53 45 20 INITIALISE
024470: 6F 72 20 53 43 52 20 53 45 54 20 4D 4F 44 45 20 or SCR SET MODE
024480: 69 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A 0D 0A is called.......
024490: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
0244A0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
0244B0: 20 20 20 20 54 58 54 20 47 45 54 20 57 49 4E 44 TXT GET WIND
0244C0: 4F 57 0D 0A 20 20 20 20 20 20 20 54 58 54 20 56 OW.. TXT V
0244D0: 41 4C 49 44 41 54 45 0D 0A 0D 0A 0D 0A 0D 0A 0D ALIDATE.........
0244E0: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
0244F0: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
024500: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
024510: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024520: 20 20 20 20 70 61 67 65 20 31 35 2E 33 36 0D 0A page 15.36..
024530: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
024540: 20 20 20 33 35 3A 20 54 58 54 20 47 45 54 20 57 35: TXT GET W
024550: 49 4E 44 4F 57 20 20 20 20 20 20 20 20 20 20 20 INDOW
024560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024570: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024580: 20 20 20 20 23 42 42 36 39 0D 0A 0D 0A 0D 0A 20 #BB69......
024590: 20 20 20 20 20 20 47 65 74 20 74 68 65 20 73 69 Get the si
0245A0: 7A 65 20 6F 66 20 74 68 65 20 63 75 72 72 65 6E ze of the curren
0245B0: 74 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A 0D 0A 20 t window.......
0245C0: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
0245D0: 0A 0D 0A 20 20 20 20 20 20 20 47 65 74 20 74 68 ... Get th
0245E0: 65 20 62 6F 75 6E 64 61 72 69 65 73 20 6F 66 20 e boundaries of
0245F0: 74 68 65 20 77 69 6E 64 6F 77 20 6F 6E 20 74 68 the window on th
024600: 65 20 63 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 e currently sele
024610: 63 74 65 64 20 73 74 72 65 61 6D 20 20 61 6E 64 cted stream and
024620: 0D 0A 20 20 20 20 20 20 20 77 68 65 74 68 65 72 .. whether
024630: 20 69 74 20 63 6F 76 65 72 73 20 74 68 65 20 77 it covers the w
024640: 68 6F 6C 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A hole screen.....
024650: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
024660: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
024670: 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 No condit
024680: 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions.......
024690: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
0246A0: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 s:...... I
0246B0: 66 20 74 68 65 20 77 69 6E 64 6F 77 20 63 6F 76 f the window cov
0246C0: 65 72 73 20 74 68 65 20 77 68 6F 6C 65 20 73 63 ers the whole sc
0246D0: 72 65 65 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 reen:......
0246E0: 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 Carry
0246F0: 20 66 61 6C 73 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 false.......
024700: 20 20 20 20 49 66 20 74 68 65 20 77 69 6E 64 6F If the windo
024710: 77 20 63 6F 76 65 72 73 20 6C 65 73 73 20 74 68 w covers less th
024720: 61 6E 20 74 68 65 20 77 68 6F 6C 65 20 73 63 72 an the whole scr
024730: 65 65 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 een:....
024740: 20 20 20 20 20 20 20 20 43 61 72 72 79 20 74 72 Carry tr
024750: 75 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C ue..... Al
024760: 77 61 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ways:....
024770: 20 20 20 20 20 20 20 20 20 48 20 63 6F 6E 74 61 H conta
024780: 69 6E 73 20 74 68 65 20 6C 65 66 74 6D 6F 73 74 ins the leftmost
024790: 20 63 6F 6C 75 6D 6E 20 69 6E 20 74 68 65 20 77 column in the w
0247A0: 69 6E 64 6F 77 2E 0D 0A 20 20 20 20 20 20 20 20 indow...
0247B0: 20 20 20 20 20 20 20 20 44 20 63 6F 6E 74 61 69 D contai
0247C0: 6E 73 20 74 68 65 20 72 69 67 68 74 6D 6F 73 74 ns the rightmost
0247D0: 20 63 6F 6C 75 6D 6E 20 69 6E 20 74 68 65 20 77 column in the w
0247E0: 69 6E 64 6F 77 2E 0D 0A 20 20 20 20 20 20 20 20 indow...
0247F0: 20 20 20 20 20 20 20 20 4C 20 63 6F 6E 74 61 69 L contai
024800: 6E 73 20 74 68 65 20 74 6F 70 6D 6F 73 74 20 72 ns the topmost r
024810: 6F 77 20 69 6E 20 74 68 65 20 77 69 6E 64 6F 77 ow in the window
024820: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
024830: 20 20 20 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 E contains th
024840: 65 20 62 6F 74 74 6F 6D 6D 6F 73 74 20 72 6F 77 e bottommost row
024850: 20 69 6E 20 74 68 65 20 77 69 6E 64 6F 77 2E 0D in the window..
024860: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
024870: 20 20 20 41 20 63 6F 72 72 75 70 74 2E 0D 0A 20 A corrupt...
024880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
024890: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
0248A0: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
0248B0: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
0248C0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 62 6F 75 .. The bou
0248D0: 6E 64 61 72 69 65 73 20 6F 66 20 74 68 65 20 77 ndaries of the w
0248E0: 69 6E 64 6F 77 20 61 72 65 20 67 69 76 65 6E 20 indow are given
0248F0: 69 6E 20 70 68 79 73 69 63 61 6C 20 20 63 6F 6F in physical coo
024900: 72 64 69 6E 61 74 65 73 2E 20 20 69 2E 65 2E 0D rdinates. i.e..
024910: 0A 20 20 20 20 20 20 20 52 6F 77 20 30 2C 20 63 . Row 0, c
024920: 6F 6C 75 6D 6E 20 30 20 69 73 20 74 68 65 20 74 olumn 0 is the t
024930: 6F 70 20 6C 65 66 74 20 63 6F 72 6E 65 72 20 6F op left corner o
024940: 66 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D f the screen....
024950: 0A 20 20 20 20 20 20 20 54 68 65 20 62 6F 75 6E . The boun
024960: 64 61 72 69 65 73 20 72 65 74 75 72 6E 65 64 20 daries returned
024970: 62 79 20 74 68 69 73 20 72 6F 75 74 69 6E 65 20 by this routine
024980: 6D 61 79 20 6E 6F 74 20 62 65 20 74 68 65 20 73 may not be the s
024990: 61 6D 65 20 20 61 73 20 20 74 68 6F 73 65 0D 0A ame as those..
0249A0: 20 20 20 20 20 20 20 73 65 74 20 77 68 65 6E 20 set when
0249B0: 54 58 54 20 57 49 4E 20 45 4E 41 42 4C 45 20 77 TXT WIN ENABLE w
0249C0: 61 73 20 63 61 6C 6C 65 64 20 62 65 63 61 75 73 as called becaus
0249D0: 65 20 74 68 65 20 77 69 6E 64 6F 77 20 69 73 20 e the window is
0249E0: 74 72 75 6E 63 61 74 65 64 20 20 74 6F 0D 0A 20 truncated to..
0249F0: 20 20 20 20 20 20 66 69 74 20 74 68 65 20 73 63 fit the sc
024A00: 72 65 65 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 reen.....
024A10: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 2E Related entries.
024A20: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 58 54 20 56 .... TXT V
024A30: 41 4C 49 44 41 54 45 0D 0A 20 20 20 20 20 20 20 ALIDATE..
024A40: 54 58 54 20 57 49 4E 20 45 4E 41 42 4C 45 0D 0A TXT WIN ENABLE..
024A50: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
024A60: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
024A70: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
024A80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024A90: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
024AA0: 31 35 2E 33 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.37...........
024AB0: 0A 0D 0A 20 20 20 20 20 20 20 33 36 3A 20 54 58 ... 36: TX
024AC0: 54 20 43 4C 45 41 52 20 57 49 4E 44 4F 57 20 20 T CLEAR WINDOW
024AD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024AE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024AF0: 20 20 20 20 20 20 20 20 20 20 20 23 42 42 36 43 #BB6C
024B00: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 6C 65 ...... Cle
024B10: 61 72 20 63 75 72 72 65 6E 74 20 77 69 6E 64 6F ar current windo
024B20: 77 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 w....... A
024B30: 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 ction:......
024B40: 20 20 20 43 6C 65 61 72 20 74 68 65 20 74 65 78 Clear the tex
024B50: 74 20 77 69 6E 64 6F 77 20 6F 66 20 74 68 65 20 t window of the
024B60: 63 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 currently select
024B70: 65 64 20 73 74 72 65 61 6D 20 20 74 6F 20 20 74 ed stream to t
024B80: 68 65 20 20 70 61 70 65 72 0D 0A 20 20 20 20 20 he paper..
024B90: 20 20 69 6E 6B 20 6F 66 20 74 68 65 20 63 75 72 ink of the cur
024BA0: 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 65 64 20 rently selected
024BB0: 73 74 72 65 61 6D 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D stream..........
024BC0: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
024BD0: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
024BE0: 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 No conditi
024BF0: 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ons...........
024C00: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
024C10: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
024C20: 20 20 41 46 2C 42 43 2C 44 45 20 61 6E 64 20 48 AF,BC,DE and H
024C30: 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 L corrupt...
024C40: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
024C50: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
024C60: 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
024C70: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
024C80: 20 20 20 20 20 54 68 65 20 63 75 72 73 6F 72 20 The cursor
024C90: 69 73 20 6D 6F 76 65 64 20 74 6F 20 74 68 65 20 is moved to the
024CA0: 74 6F 70 20 6C 65 66 74 20 63 6F 72 6E 65 72 20 top left corner
024CB0: 6F 66 20 74 68 65 20 77 69 6E 64 6F 77 2E 0D 0A of the window...
024CC0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
024CD0: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
024CE0: 0A 0D 0A 20 20 20 20 20 20 20 47 52 41 20 43 4C ... GRA CL
024CF0: 45 41 52 20 57 49 4E 44 4F 57 0D 0A 20 20 20 20 EAR WINDOW..
024D00: 20 20 20 53 43 52 20 43 4C 45 41 52 0D 0A 20 20 SCR CLEAR..
024D10: 20 20 20 20 20 54 58 54 20 53 45 54 20 50 41 50 TXT SET PAP
024D20: 45 52 0D 0A 20 20 20 20 20 20 20 54 58 54 20 57 ER.. TXT W
024D30: 49 4E 20 45 4E 41 42 4C 45 0D 0A 0D 0A 0D 0A 0D IN ENABLE.......
024D40: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
024D50: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
024D60: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
024D70: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
024D80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024D90: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
024DA0: 33 38 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 38..............
024DB0: 20 20 20 20 20 20 20 33 37 3A 20 54 58 54 20 53 37: TXT S
024DC0: 45 54 20 43 4F 4C 55 4D 4E 20 20 20 20 20 20 20 ET COLUMN
024DD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024DE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
024DF0: 20 20 20 20 20 20 20 20 23 42 42 36 46 0D 0A 0D #BB6F...
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: 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 63 75 ... Set cu
024F10: 72 73 6F 72 20 68 6F 72 69 7A 6F 6E 74 61 6C 20 rsor horizontal
024F20: 70 6F 73 69 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 position:......
024F30: 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D Action:...
024F40: 0A 0D 0A 20 20 20 20 20 20 20 4D 6F 76 65 20 74 ... Move t
024F50: 68 65 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 he current posit
024F60: 69 6F 6E 20 6F 66 20 74 68 65 20 63 75 72 72 65 ion of the curre
024F70: 6E 74 6C 79 20 73 65 6C 65 63 74 65 64 20 73 74 ntly selected st
024F80: 72 65 61 6D 20 20 74 6F 20 20 61 20 20 6E 65 77 ream to a new
024F90: 0D 0A 20 20 20 20 20 20 20 63 6F 6C 75 6D 6E 2E .. column.
024FA0: 20 54 68 65 20 63 75 72 73 6F 72 20 62 6C 6F 62 The cursor blob
024FB0: 20 77 69 6C 6C 20 62 65 20 72 65 6D 6F 76 65 64 will be removed
024FC0: 20 66 72 6F 6D 20 74 68 65 20 63 75 72 72 65 6E from the curren
024FD0: 74 20 70 6F 73 69 74 69 6F 6E 20 20 61 6E 64 0D t position and.
024FE0: 0A 20 20 20 20 20 20 20 72 65 64 72 61 77 6E 20 . redrawn
024FF0: 61 74 20 74 68 65 20 6E 65 77 20 70 6F 73 69 74 at the new posit
025000: 69 6F 6E 20 28 69 66 20 74 68 65 20 63 75 72 73 ion (if the curs
025010: 6F 72 20 69 73 20 65 6E 61 62 6C 65 64 20 61 6E or is enabled an
025020: 64 20 74 75 72 6E 65 64 20 6F 6E 29 2E 0D 0A 0D d turned on)....
025030: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
025040: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
025050: 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 . A contai
025060: 6E 73 20 74 68 65 20 72 65 71 75 69 72 65 64 20 ns the required
025070: 6C 6F 67 69 63 61 6C 20 63 6F 6C 75 6D 6E 20 66 logical column f
025080: 6F 72 20 74 68 65 20 63 75 72 73 6F 72 2E 0D 0A or the cursor...
025090: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
0250A0: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
0250B0: 0A 20 20 20 20 20 20 20 41 46 20 61 6E 64 20 48 . AF and H
0250C0: 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 L corrupt...
0250D0: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
0250E0: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
0250F0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
025100: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
025110: 20 54 68 65 20 72 65 71 75 69 72 65 64 20 63 6F The required co
025120: 6C 75 6D 6E 20 69 73 20 67 69 76 65 6E 20 69 6E lumn is given in
025130: 20 6C 6F 67 69 63 61 6C 20 63 6F 6F 72 64 69 6E logical coordin
025140: 61 74 65 73 2E 20 69 2E 65 2E 20 43 6F 6C 75 6D ates. i.e. Colum
025150: 6E 20 31 20 20 69 73 0D 0A 20 20 20 20 20 20 20 n 1 is..
025160: 74 68 65 20 6C 65 66 74 6D 6F 73 74 20 63 6F 6C the leftmost col
025170: 75 6D 6E 20 6F 66 20 74 68 65 20 77 69 6E 64 6F umn of the windo
025180: 77 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 w.........
025190: 20 54 68 65 20 63 75 72 73 6F 72 20 6D 61 79 20 The cursor may
0251A0: 62 65 20 6D 6F 76 65 64 20 6F 75 74 73 69 64 65 be moved outside
0251B0: 20 74 68 65 20 20 77 69 6E 64 6F 77 2E 20 20 48 the window. H
0251C0: 6F 77 20 20 65 76 65 72 2C 20 20 69 74 20 20 77 ow ever, it w
0251D0: 69 6C 6C 20 20 62 65 0D 0A 20 20 20 20 20 20 20 ill be..
0251E0: 66 6F 72 63 65 64 20 74 6F 20 6C 69 65 20 69 6E forced to lie in
0251F0: 73 69 64 65 20 74 68 65 20 77 69 6E 64 6F 77 20 side the window
025200: 62 65 66 6F 72 65 20 61 6E 79 20 63 68 61 72 61 before any chara
025210: 63 74 65 72 73 20 20 69 73 20 20 77 72 69 74 74 cters is writt
025220: 65 6E 20 20 62 79 0D 0A 0D 0A 0D 0A 0D 0A 20 20 en by........
025230: 20 20 20 20 20 74 68 65 20 54 65 78 74 20 56 44 the Text VD
025240: 55 20 28 73 65 65 20 54 58 54 20 56 41 4C 49 44 U (see TXT VALID
025250: 41 54 45 29 20 6F 72 20 74 68 65 20 63 75 72 73 ATE) or the curs
025260: 6F 72 20 62 6C 6F 62 20 69 73 20 64 72 61 77 6E or blob is drawn
025270: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
025280: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
025290: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ........ T
0252A0: 58 54 20 47 45 54 20 43 55 52 53 4F 52 0D 0A 20 XT GET CURSOR..
0252B0: 20 20 20 20 20 20 54 58 54 20 53 45 54 20 43 55 TXT SET CU
0252C0: 52 53 4F 52 0D 0A 20 20 20 20 20 20 20 54 58 54 RSOR.. TXT
0252D0: 20 53 45 54 20 52 4F 57 0D 0A 0D 0A 0D 0A 0D 0A SET ROW........
0252E0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
0252F0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
025300: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
025310: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
025320: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
025330: 65 20 31 35 2E 33 39 0D 0A 0D 0A 0D 0A 0D 0A 0D e 15.39.........
025340: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 33 38 3A 20 ..... 38:
025350: 54 58 54 20 53 45 54 20 52 4F 57 20 20 20 20 20 TXT SET ROW
025360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
025370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
025380: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 42 #BB
025390: 37 32 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 72........
0253A0: 20 53 65 74 20 63 75 72 73 6F 72 20 76 65 72 74 Set cursor vert
0253B0: 69 63 61 6C 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A ical position...
0253C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 ...... Act
0253D0: 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ion:........
0253E0: 20 20 20 4D 6F 76 65 20 74 68 65 20 63 75 72 72 Move the curr
0253F0: 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 6F 66 20 ent position of
025400: 74 68 65 20 63 75 72 72 65 6E 74 6C 79 20 73 65 the currently se
025410: 6C 65 63 74 65 64 20 73 74 72 65 61 6D 20 20 74 lected stream t
025420: 6F 20 20 61 20 20 6E 65 77 0D 0A 20 20 20 20 20 o a new..
025430: 20 20 72 6F 77 2E 20 54 68 65 20 63 75 72 73 6F row. The curso
025440: 72 20 62 6C 6F 62 20 77 69 6C 6C 20 62 65 20 72 r blob will be r
025450: 65 6D 6F 76 65 64 20 66 72 6F 6D 20 20 74 68 65 emoved from the
025460: 20 20 63 75 72 72 65 6E 74 20 20 70 6F 73 69 74 current posit
025470: 69 6F 6E 20 20 61 6E 64 0D 0A 20 20 20 20 20 20 ion and..
025480: 20 72 65 64 72 61 77 6E 20 61 74 20 74 68 65 20 redrawn at the
025490: 6E 65 77 20 70 6F 73 69 74 69 6F 6E 20 28 69 66 new position (if
0254A0: 20 74 68 65 20 63 75 72 73 6F 72 20 69 73 20 65 the cursor is e
0254B0: 6E 61 62 6C 65 64 20 61 6E 64 20 74 75 72 6E 65 nabled and turne
0254C0: 64 20 6F 6E 29 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 d on).........
0254D0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
0254E0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 tions:........
0254F0: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
025500: 74 68 65 20 72 65 71 75 69 72 65 64 20 6C 6F 67 the required log
025510: 69 63 61 6C 20 72 6F 77 20 66 6F 72 20 74 68 65 ical row for the
025520: 20 63 75 72 73 6F 72 2E 0D 0A 0D 0A 0D 0A 0D 0A cursor.........
025530: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
025540: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 itions:........
025550: 20 20 20 20 20 20 41 46 20 61 6E 64 20 48 4C 20 AF and HL
025560: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
025570: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
025580: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
025590: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
0255A0: 74 65 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 tes:........
0255B0: 20 20 20 54 68 65 20 72 65 71 75 69 72 65 64 20 The required
0255C0: 72 6F 77 20 69 73 20 67 69 76 65 6E 20 69 6E 20 row is given in
0255D0: 6C 6F 67 69 63 61 6C 20 63 6F 6F 72 64 69 6E 61 logical coordina
0255E0: 74 65 73 2E 20 69 2E 65 2E 20 52 6F 77 20 20 31 tes. i.e. Row 1
0255F0: 20 20 69 73 20 20 74 68 65 0D 0A 20 20 20 20 20 is the..
025600: 20 20 74 6F 70 6D 6F 73 74 20 72 6F 77 20 6F 66 topmost row of
025610: 20 74 68 65 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A the window.....
025620: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 63 .... The c
025630: 75 72 73 6F 72 20 6D 61 79 20 62 65 20 6D 6F 76 ursor may be mov
025640: 65 64 20 6F 75 74 73 69 64 65 20 74 68 65 20 20 ed outside the
025650: 77 69 6E 64 6F 77 2E 20 20 48 6F 77 20 20 65 76 window. How ev
025660: 65 72 2C 20 20 69 74 20 20 77 69 6C 6C 20 20 62 er, it will b
025670: 65 0D 0A 20 20 20 20 20 20 20 66 6F 72 63 65 64 e.. forced
025680: 20 74 6F 20 6C 69 65 20 69 6E 73 69 64 65 20 74 to lie inside t
025690: 68 65 20 77 69 6E 64 6F 77 20 62 65 66 6F 72 65 he window before
0256A0: 20 61 6E 79 20 63 68 61 72 61 63 74 65 72 73 20 any characters
0256B0: 20 69 73 20 20 77 72 69 74 74 65 6E 20 20 62 79 is written by
0256C0: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 54 65 78 .. the Tex
0256D0: 74 20 56 44 55 20 28 73 65 65 20 54 58 54 20 56 t VDU (see TXT V
0256E0: 41 4C 49 44 41 54 45 29 20 6F 72 20 74 68 65 20 ALIDATE) or the
0256F0: 63 75 72 73 6F 72 20 62 6C 6F 62 20 69 73 20 64 cursor blob is d
025700: 72 61 77 6E 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 rawn.........
025710: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
025720: 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ies:.... T
025730: 58 54 20 47 45 54 20 43 55 52 53 4F 52 0D 0A 20 XT GET CURSOR..
025740: 20 20 20 20 20 20 54 58 54 20 53 45 54 20 43 4F TXT SET CO
025750: 4C 55 4D 4E 0D 0A 20 20 20 20 20 20 20 54 58 54 LUMN.. TXT
025760: 20 53 45 54 20 43 55 52 53 4F 52 0D 0A 0D 0A 0D SET CURSOR.....
025770: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
025780: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
025790: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
0257A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0257B0: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
0257C0: 34 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 40..............
0257D0: 20 20 20 20 20 20 20 33 39 3A 20 54 58 54 20 53 39: TXT S
0257E0: 45 54 20 43 55 52 53 4F 52 20 20 20 20 20 20 20 ET CURSOR
0257F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
025800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
025810: 20 20 20 20 20 20 20 20 23 42 42 37 35 0D 0A 0D #BB75...
025820: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 ..... Set
025830: 63 75 72 73 6F 72 20 70 6F 73 69 74 69 6F 6E 2E cursor position.
025840: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
025850: 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ction:........
025860: 20 20 20 20 20 4D 6F 76 65 20 74 68 65 20 63 75 Move the cu
025870: 72 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 6F rrent position o
025880: 66 20 74 68 65 20 63 75 72 72 65 6E 74 6C 79 20 f the currently
025890: 73 65 6C 65 63 74 65 64 20 73 74 72 65 61 6D 20 selected stream
0258A0: 20 74 6F 20 20 61 20 20 6E 65 77 0D 0A 20 20 20 to a new..
0258B0: 20 20 20 20 72 6F 77 20 61 6E 64 20 63 6F 6C 75 row and colu
0258C0: 6D 6E 2E 20 54 68 65 20 63 75 72 73 6F 72 20 62 mn. The cursor b
0258D0: 6C 6F 62 20 20 77 69 6C 6C 20 20 62 65 20 20 72 lob will be r
0258E0: 65 6D 6F 76 65 64 20 20 66 72 6F 6D 20 20 74 68 emoved from th
0258F0: 65 20 20 63 75 72 72 65 6E 74 0D 0A 20 20 20 20 e current..
025900: 20 20 20 70 6F 73 69 74 69 6F 6E 20 61 6E 64 20 position and
025910: 72 65 64 72 61 77 6E 20 61 74 20 74 68 65 20 6E redrawn at the n
025920: 65 77 20 70 6F 73 69 74 69 6F 6E 20 28 69 66 20 ew position (if
025930: 74 68 65 20 63 75 72 73 6F 72 20 69 73 20 65 6E the cursor is en
025940: 61 62 6C 65 64 20 61 6E 64 0D 0A 20 20 20 20 20 abled and..
025950: 20 20 74 75 72 6E 65 64 20 6F 6E 29 2E 0D 0A 0D turned on)....
025960: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
025970: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
025980: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 20 63 6F ..... H co
025990: 6E 74 61 69 6E 73 20 74 68 65 20 72 65 71 75 69 ntains the requi
0259A0: 72 65 64 20 6C 6F 67 69 63 61 6C 20 63 6F 6C 75 red logical colu
0259B0: 6D 6E 2E 0D 0A 20 20 20 20 20 20 20 4C 20 63 6F mn... L co
0259C0: 6E 74 61 69 6E 73 20 74 68 65 20 72 65 71 75 69 ntains the requi
0259D0: 72 65 64 20 6C 6F 67 69 63 61 6C 20 72 6F 77 2E red logical row.
0259E0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 ........ E
0259F0: 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D xit conditions:.
025A00: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 61 ..... AF a
025A10: 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A nd HL corrupt...
025A20: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
025A30: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
025A40: 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rved.......
025A50: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
025A60: 20 20 20 20 20 54 68 65 20 72 65 71 75 69 72 65 The require
025A70: 64 20 72 6F 77 20 69 73 20 67 69 76 65 6E 20 69 d row is given i
025A80: 6E 20 6C 6F 67 69 63 61 6C 20 63 6F 6F 72 64 69 n logical coordi
025A90: 6E 61 74 65 73 2E 20 69 2E 65 2E 20 52 6F 77 20 nates. i.e. Row
025AA0: 20 31 2C 20 20 63 6F 6C 75 6D 6E 0D 0A 20 20 20 1, column..
025AB0: 20 20 20 20 31 20 69 73 20 74 68 65 20 74 6F 70 1 is the top
025AC0: 20 6C 65 66 74 20 63 6F 72 6E 65 72 20 6F 66 20 left corner of
025AD0: 74 68 65 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A 0D the window......
025AE0: 0A 20 20 20 20 20 20 20 54 68 65 20 63 75 72 73 . The curs
025AF0: 6F 72 20 6D 61 79 20 62 65 20 6D 6F 76 65 64 20 or may be moved
025B00: 6F 75 74 73 69 64 65 20 74 68 65 20 20 77 69 6E outside the win
025B10: 64 6F 77 2E 20 20 48 6F 77 20 20 65 76 65 72 2C dow. How ever,
025B20: 20 20 69 74 20 20 77 69 6C 6C 20 20 62 65 0D 0A it will be..
025B30: 20 20 20 20 20 20 20 66 6F 72 63 65 64 20 74 6F forced to
025B40: 20 6C 69 65 20 69 6E 73 69 64 65 20 74 68 65 20 lie inside the
025B50: 77 69 6E 64 6F 77 20 62 65 66 6F 72 65 20 61 6E window before an
025B60: 79 20 63 68 61 72 61 63 74 65 72 73 20 20 69 73 y characters is
025B70: 20 20 77 72 69 74 74 65 6E 20 20 62 79 0D 0A 20 written by..
025B80: 20 20 20 20 20 20 74 68 65 20 54 65 78 74 20 56 the Text V
025B90: 44 55 20 28 73 65 65 20 54 58 54 20 56 41 4C 49 DU (see TXT VALI
025BA0: 44 41 54 45 29 20 6F 72 20 74 68 65 20 63 75 72 DATE) or the cur
025BB0: 73 6F 72 20 62 6C 6F 62 20 69 73 20 64 72 61 77 sor blob is draw
025BC0: 6E 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 n.........
025BD0: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
025BE0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 58 :...... TX
025BF0: 54 20 47 45 54 20 43 55 52 53 4F 52 0D 0A 20 20 T GET CURSOR..
025C00: 20 20 20 20 20 54 58 54 20 53 45 54 20 43 4F 4C TXT SET COL
025C10: 55 4D 4E 0D 0A 20 20 20 20 20 20 20 54 58 54 20 UMN.. TXT
025C20: 53 45 54 20 52 4F 57 0D 0A 0D 0A 0D 0A 0D 0A 0D SET ROW.........
025C30: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
025C40: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
025C50: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
025C60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
025C70: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 34 31 page 15.41
025C80: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
025C90: 20 20 20 20 20 34 30 3A 20 54 58 54 20 47 45 54 40: TXT GET
025CA0: 20 43 55 52 53 4F 52 20 20 20 20 20 20 20 20 20 CURSOR
025CB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
025CC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
025CD0: 20 20 20 20 20 20 23 42 42 37 38 0D 0A 0D 0A 0D #BB78.....
025CE0: 0A 20 20 20 20 20 20 20 41 73 6B 20 63 75 72 72 . Ask curr
025CF0: 65 6E 74 20 63 75 72 73 6F 72 20 70 6F 73 69 74 ent cursor posit
025D00: 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion.......
025D10: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 Action:......
025D20: 20 20 20 20 20 47 65 74 20 74 68 65 20 63 75 72 Get the cur
025D30: 72 65 6E 74 20 6C 6F 63 61 74 69 6F 6E 20 6F 66 rent location of
025D40: 20 74 68 65 20 63 75 72 73 6F 72 20 61 6E 64 20 the cursor and
025D50: 61 20 63 6F 75 6E 74 20 6F 66 20 20 74 68 65 20 a count of the
025D60: 20 6E 75 6D 62 65 72 20 20 6F 66 0D 0A 20 20 20 number of..
025D70: 20 20 20 20 74 69 6D 65 73 20 74 68 65 20 77 69 times the wi
025D80: 6E 64 6F 77 20 6F 66 20 74 68 65 20 63 75 72 72 ndow of the curr
025D90: 65 6E 74 6C 79 20 73 65 6C 65 63 74 65 64 20 73 ently selected s
025DA0: 74 72 65 61 6D 20 68 61 73 20 72 6F 6C 6C 65 64 tream has rolled
025DB0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ....... En
025DC0: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
025DD0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 ..... No c
025DE0: 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A onditions.......
025DF0: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
025E00: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
025E10: 20 20 20 20 48 20 63 6F 6E 74 61 69 6E 73 20 74 H contains t
025E20: 68 65 20 6C 6F 67 69 63 61 6C 20 63 75 72 73 6F he logical curso
025E30: 72 20 63 6F 6C 75 6D 6E 2E 0D 0A 20 20 20 20 20 r column...
025E40: 20 20 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 L contains the
025E50: 20 6C 6F 67 69 63 61 6C 20 63 75 72 73 6F 72 20 logical cursor
025E60: 72 6F 77 2E 0D 0A 20 20 20 20 20 20 20 41 20 63 row... A c
025E70: 6F 6E 74 61 69 6E 73 20 74 68 65 20 63 75 72 72 ontains the curr
025E80: 65 6E 74 20 72 6F 6C 6C 20 63 6F 75 6E 74 2E 0D ent roll count..
025E90: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 6C 61 67 ..... Flag
025EA0: 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 s corrupt...
025EB0: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
025EC0: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
025ED0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ....... No
025EE0: 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 tes:......
025EF0: 20 54 68 65 20 63 75 72 73 6F 72 20 70 6F 73 69 The cursor posi
025F00: 74 69 6F 6E 20 69 73 20 67 69 76 65 6E 20 20 69 tion is given i
025F10: 6E 20 20 6C 6F 67 69 63 61 6C 20 20 63 6F 6F 72 n logical coor
025F20: 64 69 6E 61 74 65 73 2E 20 20 69 2E 65 2E 20 20 dinates. i.e.
025F30: 52 6F 77 20 20 31 2C 0D 0A 20 20 20 20 20 20 20 Row 1,..
025F40: 63 6F 6C 75 6D 6E 20 31 20 69 73 20 74 68 65 20 column 1 is the
025F50: 74 6F 70 20 6C 65 66 74 20 63 6F 72 6E 65 72 20 top left corner
025F60: 6F 66 20 74 68 65 20 77 69 6E 64 6F 77 2E 0D 0A of the window...
025F70: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 72 .... The r
025F80: 6F 6C 6C 20 63 6F 75 6E 74 20 70 61 73 73 65 64 oll count passed
025F90: 20 6F 75 74 20 68 61 73 20 6E 6F 20 61 62 73 6F out has no abso
025FA0: 6C 75 74 65 20 6D 65 61 6E 69 6E 67 2E 20 49 74 lute meaning. It
025FB0: 20 20 69 73 20 20 64 65 63 72 65 6D 65 6E 74 65 is decremente
025FC0: 64 0D 0A 20 20 20 20 20 20 20 77 68 65 6E 20 74 d.. when t
025FD0: 68 65 20 77 69 6E 64 6F 77 20 69 73 20 72 6F 6C he window is rol
025FE0: 6C 65 64 20 75 70 20 61 6E 64 20 69 73 20 69 6E led up and is in
025FF0: 63 72 65 6D 65 6E 74 65 64 20 20 77 68 65 6E 20 cremented when
026000: 20 74 68 65 20 20 77 69 6E 64 6F 77 20 20 69 73 the window is
026010: 0D 0A 20 20 20 20 20 20 20 72 6F 6C 6C 65 64 20 .. rolled
026020: 64 6F 77 6E 2E 20 49 74 20 6D 61 79 20 62 65 20 down. It may be
026030: 75 73 65 64 20 74 6F 20 64 65 74 65 72 6D 69 6E used to determin
026040: 65 20 77 68 65 74 68 65 72 20 74 68 65 20 77 69 e whether the wi
026050: 6E 64 6F 77 20 68 61 73 20 72 6F 6C 6C 65 64 0D ndow has rolled.
026060: 0A 20 20 20 20 20 20 20 62 79 20 63 6F 6D 70 61 . by compa
026070: 72 69 6E 67 20 69 74 20 77 69 74 68 20 61 20 70 ring it with a p
026080: 72 65 76 69 6F 75 73 20 76 61 6C 75 65 2E 0D 0A revious value...
026090: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 70 .... The p
0260A0: 6F 73 69 74 69 6F 6E 20 72 65 70 6F 72 74 65 64 osition reported
0260B0: 20 6D 61 79 20 6E 6F 74 20 62 65 20 69 6E 73 69 may not be insi
0260C0: 64 65 20 74 68 65 20 77 69 6E 64 6F 77 20 61 6E de the window an
0260D0: 64 20 69 73 2C 20 20 74 68 65 72 65 66 6F 72 65 d is, therefore
0260E0: 2C 0D 0A 20 20 20 20 20 20 20 6E 6F 74 20 6E 65 ,.. not ne
0260F0: 63 65 73 73 61 72 69 6C 79 20 74 68 65 20 70 6F cessarily the po
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: 73 69 74 69 6F 6E 20 61 74 20 20 77 68 69 63 68 sition at which
026210: 20 20 74 68 65 20 20 6E 65 78 74 20 20 63 68 61 the next cha
026220: 72 61 63 74 65 72 20 20 77 69 6C 6C 20 20 62 65 racter will be
026230: 0D 0A 20 20 20 20 20 20 20 70 72 69 6E 74 65 64 .. printed
026240: 2E 20 55 73 65 20 54 58 54 20 56 41 4C 49 44 41 . Use TXT VALIDA
026250: 54 45 20 74 6F 20 63 68 65 63 6B 20 74 68 69 73 TE to check this
026260: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
026270: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
026280: 0D 0A 20 20 20 20 20 20 20 54 58 54 20 53 45 54 .. TXT SET
026290: 20 43 4F 4C 55 4D 4E 0D 0A 20 20 20 20 20 20 20 COLUMN..
0262A0: 54 58 54 20 53 45 54 20 43 55 52 53 4F 52 0D 0A TXT SET CURSOR..
0262B0: 20 20 20 20 20 20 20 54 58 54 20 53 45 54 20 52 TXT SET R
0262C0: 4F 57 0D 0A 20 20 20 20 20 20 20 54 58 54 20 56 OW.. TXT V
0262D0: 41 4C 49 44 41 54 45 0D 0A 0D 0A 0D 0A 0D 0A 0D ALIDATE.........
0262E0: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
0262F0: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
026300: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
026310: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026320: 20 20 20 20 70 61 67 65 20 31 35 2E 34 32 0D 0A page 15.42..
026330: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
026340: 20 20 20 34 31 3A 20 54 58 54 20 43 55 52 20 45 41: TXT CUR E
026350: 4E 41 42 4C 45 20 20 20 20 20 20 20 20 20 20 20 NABLE
026360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
026380: 42 37 42 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 B7B......
026390: 41 6C 6C 6F 77 20 63 75 72 73 6F 72 20 64 69 73 Allow cursor dis
0263A0: 70 6C 61 79 20 2D 20 75 73 65 72 2E 0D 0A 0D 0A play - user.....
0263B0: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
0263C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C ...... All
0263D0: 6F 77 20 74 68 65 20 63 75 72 73 6F 72 20 62 6C ow the cursor bl
0263E0: 6F 62 20 66 6F 72 20 74 68 65 20 63 75 72 72 65 ob for the curre
0263F0: 6E 74 6C 79 20 73 65 6C 65 63 74 65 64 20 73 74 ntly selected st
026400: 72 65 61 6D 20 74 6F 20 20 62 65 20 20 70 6C 61 ream to be pla
026410: 63 65 64 0D 0A 20 20 20 20 20 20 20 6F 6E 20 20 ced.. on
026420: 74 68 65 20 20 73 63 72 65 65 6E 2E 20 20 54 68 the screen. Th
026430: 65 20 20 63 75 72 73 6F 72 20 20 62 6C 6F 62 20 e cursor blob
026440: 20 77 69 6C 6C 20 20 62 65 20 20 70 6C 61 63 65 will be place
026450: 64 20 20 6F 6E 20 20 74 68 65 20 20 73 63 72 65 d on the scre
026460: 65 6E 0D 0A 20 20 20 20 20 20 20 69 6D 6D 65 64 en.. immed
026470: 69 61 74 65 6C 79 20 75 6E 6C 65 73 73 20 74 68 iately unless th
026480: 65 20 63 75 72 73 6F 72 20 69 73 20 74 75 72 6E e cursor is turn
026490: 65 64 20 6F 66 66 20 28 73 65 65 20 54 58 54 20 ed off (see TXT
0264A0: 43 55 52 20 4F 46 46 29 2E 0D 0A 0D 0A 0D 0A 0D CUR OFF)........
0264B0: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
0264C0: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 0D nditions:.......
0264D0: 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 . No condi
0264E0: 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 tions.........
0264F0: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
026500: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 ions:........
026510: 20 20 20 20 41 46 20 63 6F 72 72 75 70 74 2E 0D AF corrupt..
026520: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 . All othe
026530: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
026540: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 erved.........
026550: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
026560: 0A 0D 0A 20 20 20 20 20 20 20 43 75 72 73 6F 72 ... Cursor
026570: 20 65 6E 61 62 6C 69 6E 67 20 61 6E 64 20 64 69 enabling and di
026580: 73 61 62 6C 69 6E 67 20 69 73 20 69 6E 74 65 6E sabling is inten
026590: 64 65 64 20 66 6F 72 20 75 73 65 20 62 79 20 74 ded for use by t
0265A0: 68 65 20 75 73 65 72 2E 20 20 49 74 20 20 69 73 he user. It is
0265B0: 0D 0A 20 20 20 20 20 20 20 61 6C 73 6F 20 75 73 .. also us
0265C0: 65 64 20 77 68 65 6E 20 74 68 65 20 56 44 55 20 ed when the VDU
0265D0: 20 69 73 20 20 64 69 73 61 62 6C 65 64 20 20 28 is disabled (
0265E0: 54 58 54 20 20 56 44 55 20 20 45 4E 41 42 4C 45 TXT VDU ENABLE
0265F0: 20 20 61 6E 64 20 20 54 58 54 20 20 56 44 55 0D and TXT VDU.
026600: 0A 20 20 20 20 20 20 20 44 49 53 41 42 4C 45 29 . DISABLE)
026610: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
026620: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
026630: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ........ T
026640: 58 54 20 41 53 4B 20 53 54 41 54 45 0D 0A 20 20 XT ASK STATE..
026650: 20 20 20 20 20 54 58 54 20 43 55 52 20 44 49 53 TXT CUR DIS
026660: 41 42 4C 45 0D 0A 20 20 20 20 20 20 20 54 58 54 ABLE.. TXT
026670: 20 43 55 52 20 4F 4E 0D 0A 20 20 20 20 20 20 20 CUR ON..
026680: 54 58 54 20 44 52 41 57 20 43 55 52 53 4F 52 0D TXT DRAW CURSOR.
026690: 0A 20 20 20 20 20 20 20 54 58 54 20 55 4E 44 52 . TXT UNDR
0266A0: 41 57 20 43 55 52 53 4F 52 0D 0A 0D 0A 0D 0A 0D AW CURSOR.......
0266B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
0266C0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
0266D0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
0266E0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
0266F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
026700: 67 65 20 31 35 2E 34 33 0D 0A 0D 0A 0D 0A 0D 0A ge 15.43........
026710: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 34 32 3A ...... 42:
026720: 20 54 58 54 20 43 55 52 20 44 49 53 41 42 4C 45 TXT CUR DISABLE
026730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
026760: 42 37 45 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 B7E......
026770: 44 69 73 73 61 6C 6C 6F 77 20 63 75 72 73 6F 72 Dissallow cursor
026780: 20 64 69 73 70 6C 61 79 20 2D 20 75 73 65 72 2E display - user.
026790: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 ...... Act
0267A0: 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ion:......
0267B0: 20 50 72 65 76 65 6E 74 20 74 68 65 20 63 75 72 Prevent the cur
0267C0: 73 6F 72 20 62 6C 6F 62 20 66 6F 72 20 74 68 65 sor blob for the
0267D0: 20 63 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 currently selec
0267E0: 74 65 64 20 73 74 72 65 61 6D 20 20 66 72 6F 6D ted stream from
0267F0: 20 20 62 65 69 6E 67 0D 0A 20 20 20 20 20 20 20 being..
026800: 70 6C 61 63 65 64 20 6F 6E 20 74 68 65 20 73 63 placed on the sc
026810: 72 65 65 6E 2E 20 54 68 65 20 63 75 72 73 6F 72 reen. The cursor
026820: 20 62 6C 6F 62 20 77 69 6C 6C 20 62 65 20 72 65 blob will be re
026830: 6D 6F 76 65 64 20 66 72 6F 6D 20 74 68 65 20 20 moved from the
026840: 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 69 screen.. i
026850: 6D 6D 65 64 69 61 74 65 6C 79 20 69 66 20 69 74 mmediately if it
026860: 20 69 73 20 63 75 72 72 65 6E 74 6C 79 20 74 68 is currently th
026870: 65 72 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ere.......
026880: 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E Entry condition
026890: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E s:...... N
0268A0: 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D o conditions....
0268B0: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
0268C0: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
0268D0: 20 20 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 AF corrup
0268E0: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
0268F0: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
026900: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
026910: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
026920: 0D 0A 20 20 20 20 20 20 20 43 75 72 73 6F 72 20 .. Cursor
026930: 65 6E 61 62 6C 69 6E 67 20 61 6E 64 20 64 69 73 enabling and dis
026940: 61 62 6C 69 6E 67 20 69 73 20 69 6E 74 65 6E 64 abling is intend
026950: 65 64 20 66 6F 72 20 75 73 65 20 62 79 20 74 68 ed for use by th
026960: 65 20 75 73 65 72 2E 20 20 49 74 20 20 69 73 0D e user. It is.
026970: 0A 20 20 20 20 20 20 20 61 6C 73 6F 20 75 73 65 . also use
026980: 64 20 77 68 65 6E 20 74 68 65 20 56 44 55 20 20 d when the VDU
026990: 69 73 20 20 64 69 73 61 62 6C 65 64 20 20 28 54 is disabled (T
0269A0: 58 54 20 20 56 44 55 20 20 45 4E 41 42 4C 45 20 XT VDU ENABLE
0269B0: 20 61 6E 64 20 20 54 58 54 20 20 56 44 55 0D 0A and TXT VDU..
0269C0: 20 20 20 20 20 20 20 44 49 53 41 42 4C 45 29 2E DISABLE).
0269D0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
0269E0: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
0269F0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 58 :...... TX
026A00: 54 20 41 53 4B 20 53 54 41 54 45 0D 0A 20 20 20 T ASK STATE..
026A10: 20 20 20 20 54 58 54 20 43 55 52 20 45 4E 41 42 TXT CUR ENAB
026A20: 4C 45 0D 0A 20 20 20 20 20 20 20 54 58 54 20 43 LE.. TXT C
026A30: 55 52 20 4F 46 46 0D 0A 20 20 20 20 20 20 20 54 UR OFF.. T
026A40: 58 54 20 44 52 41 57 20 43 55 52 53 4F 52 0D 0A XT DRAW CURSOR..
026A50: 20 20 20 20 20 20 20 54 58 54 20 55 4E 44 52 41 TXT UNDRA
026A60: 57 20 43 55 52 53 4F 52 0D 0A 0D 0A 0D 0A 0D 0A W CURSOR........
026A70: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
026A80: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
026A90: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
026AA0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
026AB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026AC0: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
026AD0: 2E 34 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D .44.............
026AE0: 0A 20 20 20 20 20 20 20 34 33 3A 20 54 58 54 20 . 43: TXT
026AF0: 43 55 52 20 4F 4E 20 20 20 20 20 20 20 20 20 20 CUR ON
026B00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026B10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
026B20: 20 20 20 20 20 20 20 20 20 23 42 42 38 31 0D 0A #BB81..
026B30: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C ...... All
026B40: 6F 77 20 63 75 72 73 6F 72 20 64 69 73 70 6C 61 ow cursor displa
026B50: 79 20 2D 20 73 79 73 74 65 6D 2E 0D 0A 0D 0A 0D y - system......
026B60: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
026B70: 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 :........
026B80: 41 6C 6C 6F 77 20 74 68 65 20 63 75 72 73 6F 72 Allow the cursor
026B90: 20 62 6C 6F 62 20 66 6F 72 20 74 68 65 20 63 75 blob for the cu
026BA0: 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 65 64 rrently selected
026BB0: 20 73 74 72 65 61 6D 20 74 6F 20 20 62 65 20 20 stream to be
026BC0: 70 6C 61 63 65 64 0D 0A 20 20 20 20 20 20 20 6F placed.. o
026BD0: 6E 20 20 74 68 65 20 20 73 63 72 65 65 6E 2E 20 n the screen.
026BE0: 20 54 68 65 20 20 63 75 72 73 6F 72 20 20 62 6C The cursor bl
026BF0: 6F 62 20 20 77 69 6C 6C 20 20 62 65 20 20 70 6C ob will be pl
026C00: 61 63 65 64 20 20 6F 6E 20 20 74 68 65 20 20 73 aced on the s
026C10: 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 69 6D creen.. im
026C20: 6D 65 64 69 61 74 65 6C 79 20 75 6E 6C 65 73 73 mediately unless
026C30: 20 74 68 65 20 63 75 72 73 6F 72 20 69 6E 20 64 the cursor in d
026C40: 69 73 61 62 6C 65 64 20 28 73 65 65 20 54 58 54 isabled (see TXT
026C50: 20 43 55 52 20 44 49 53 41 42 4C 45 29 2E 0D 0A CUR DISABLE)...
026C60: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 ...... Ent
026C70: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
026C80: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F .... No co
026C90: 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 nditions.......
026CA0: 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 Exit condi
026CB0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
026CC0: 20 20 20 41 6C 6C 20 72 65 67 69 73 74 65 72 73 All registers
026CD0: 20 61 6E 64 20 66 6C 61 67 73 20 70 72 65 73 65 and flags prese
026CE0: 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rved.......
026CF0: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
026D00: 20 20 20 20 20 54 75 72 6E 69 6E 67 20 74 68 65 Turning the
026D10: 20 63 75 72 73 6F 72 20 6F 6E 20 61 6E 64 20 6F cursor on and o
026D20: 66 66 20 69 73 20 69 6E 74 65 6E 64 65 64 20 66 ff is intended f
026D30: 6F 72 20 75 73 65 20 62 79 20 73 79 73 74 65 6D or use by system
026D40: 20 52 4F 4D 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ROMs.........
026D50: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
026D60: 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 ries:........
026D70: 20 20 20 20 54 58 54 20 41 53 4B 20 53 54 41 54 TXT ASK STAT
026D80: 45 0D 0A 20 20 20 20 20 20 20 54 58 54 20 43 55 E.. TXT CU
026D90: 52 20 45 4E 41 42 4C 45 0D 0A 20 20 20 20 20 20 R ENABLE..
026DA0: 20 54 58 54 20 43 55 52 20 4F 46 46 0D 0A 20 20 TXT CUR OFF..
026DB0: 20 20 20 20 20 54 58 54 20 44 52 41 57 20 43 55 TXT DRAW CU
026DC0: 52 53 4F 52 0D 0A 20 20 20 20 20 20 20 54 58 54 RSOR.. TXT
026DD0: 20 55 4E 44 52 41 57 20 43 55 52 53 4F 52 0D 0A UNDRAW CURSOR..
026DE0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
026DF0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
026E00: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
026E10: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
026E20: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
026E30: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
026E40: 65 20 31 35 2E 34 35 0D 0A 1A 20 20 20 20 20 20 e 15.45...
026E50: 20 20 20 20 23 42 42 36 30 0D 0A 0D 0A 20 20 20 #BB60....
026E60: 20 20 20 20 52 65 61 64 20 61 20 63 68 61 72 61 Read a chara
026E70: 63 74 65 72 20 66 72 6F 6D 20 74 68 65 20 73 63 cter from the sc
026E80: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F .... No co
026E90: 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 nditions.......
026EA0: 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 Exit condi
026EB0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
026EC0: 20 20 20 41 6C 6C 20 72 65 67 69 73 74 65 72 73 All registers
026ED0: 20 61 6E 64 20 66 6C 61 67 73 20 70 72 65 73 65 and flags prese
026EE0: 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rved.......
026EF0: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
026F00: 20 20 20 20 20 54 75 72 6E 69 6E 67 20 74 68 65 Turning the
026F10: 20 63 75 72 73 6F 72 20 6F 6E 20 61 6E 64 20 6F cursor on and o
026F20: 66 66 20 69 73 20 69 6E 74 65 6E 64 65 64 20 66 ff is intended f
026F30: 6F 72 20 75 73 65 20 62 79 20 73 79 73 74 65 6D or use by system
026F40: 20 52 4F 4D 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ROMs.........
026F50: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
026F60: 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 ries:........
026F70: 20 20 20 20 54 58 54 20 41 53 4B 20 53 54 41 54 TXT ASK STAT
026F80: 45 0D 0A 20 20 20 20 20 20 20 54 58 54 20 43 55 E.. TXT CU
026F90: 52 20 45 4E 41 42 4C 45 0D 0A 20 20 20 20 20 20 R ENABLE..
026FA0: 20 54 58 54 20 43 55 52 20 4F 46 46 0D 0A 20 20 TXT CUR OFF..
026FB0: 20 20 20 20 20 54 58 54 20 44 52 41 57 20 43 55 TXT DRAW CU
026FC0: 52 53 4F 52 0D 0A 20 20 20 20 20 20 20 54 58 54 RSOR.. TXT
026FD0: 20 55 4E 44 52 41 57 20 43 55 52 53 4F 52 0D 0A UNDRAW CURSOR..
026FE0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
026FF0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
027000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027200: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
027210: 20 20 20 31 32 39 3A 20 43 41 53 20 49 4E 20 44 129: CAS IN D
027220: 49 52 45 43 54 20 20 20 20 20 20 20 20 20 20 20 IRECT
027230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027250: 20 20 20 20 23 42 43 38 33 0D 0A 0D 0A 20 20 20 #BC83....
027260: 20 20 20 20 52 65 61 64 20 74 68 65 20 69 6E 70 Read the inp
027270: 75 74 20 66 69 6C 65 20 69 6E 74 6F 20 73 74 6F ut file into sto
027280: 72 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 re..... Ac
027290: 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 tion:....
0272A0: 52 65 61 64 20 74 68 65 20 69 6E 70 75 74 20 66 Read the input f
0272B0: 69 6C 65 20 64 69 72 65 63 74 6C 79 20 69 6E 74 ile directly int
0272C0: 6F 20 73 74 6F 72 65 20 69 6E 20 20 6F 6E 65 20 o store in one
0272D0: 20 67 6F 20 20 72 61 74 68 65 72 20 20 74 68 61 go rather tha
0272E0: 6E 20 20 6F 6E 65 0D 0A 20 20 20 20 20 20 20 63 n one.. c
0272F0: 68 61 72 61 63 74 65 72 20 61 74 20 61 20 74 69 haracter at a ti
027300: 6D 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E me..... En
027310: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
027320: 0A 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 . HL conta
027330: 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 ins the address
027340: 74 6F 20 70 75 74 20 74 68 65 20 66 69 6C 65 20 to put the file
027350: 28 61 6E 79 77 68 65 72 65 20 69 6E 20 52 41 4D (anywhere in RAM
027360: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 )..... Exi
027370: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
027380: 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 66 . If the f
027390: 69 6C 65 20 77 61 73 20 72 65 61 64 20 4F 4B 3A ile was read OK:
0273A0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0273B0: 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A 20 Carry true...
0273C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5A Z
0273D0: 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 ero false...
0273E0: 20 20 20 20 20 20 20 20 20 20 20 20 48 4C 20 63 HL c
0273F0: 6F 6E 74 61 69 6E 73 20 74 68 65 20 65 6E 74 72 ontains the entr
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: 79 20 61 64 64 72 65 73 73 20 28 66 72 6F 6D 20 y address (from
027510: 74 68 65 20 68 65 61 64 65 72 29 2E 0D 0A 20 20 the header)...
027520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 A
027530: 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 20 20 corrupt.....
027540: 20 20 20 49 66 20 74 68 65 20 66 69 6C 65 20 77 If the file w
027550: 61 73 20 6E 6F 74 20 6F 70 65 6E 20 61 73 20 65 as not open as e
027560: 78 70 65 63 74 65 64 3A 0D 0A 20 20 20 20 20 20 xpected:..
027570: 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 Carry
027580: 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 false...
027590: 20 20 20 20 20 20 20 20 5A 65 72 6F 20 66 61 6C Zero fal
0275A0: 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 se...
0275B0: 20 20 20 20 20 49 6E 20 56 31 2E 31 3A 20 41 20 In V1.1: A
0275C0: 63 6F 6E 74 61 69 6E 73 20 61 6E 20 65 72 72 6F contains an erro
0275D0: 72 20 6E 75 6D 62 65 72 20 28 23 30 45 29 2E 0D r number (#0E)..
0275E0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0275F0: 20 49 6E 20 56 31 2E 30 3A 20 41 20 63 6F 72 72 In V1.0: A corr
027600: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 upt...
027610: 20 20 20 20 20 20 48 4C 20 63 6F 72 72 75 70 74 HL corrupt
027620: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
027630: 68 65 20 75 73 65 72 20 68 69 74 20 65 73 63 61 he user hit esca
027640: 70 65 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 pe:..
027650: 20 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 Carry false
027660: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
027670: 20 20 20 5A 65 72 6F 20 74 72 75 65 2E 0D 0A 20 Zero true...
027680: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 I
027690: 6E 20 56 31 2E 31 3A 20 41 20 63 6F 6E 74 61 69 n V1.1: A contai
0276A0: 6E 73 20 61 6E 20 65 72 72 6F 72 20 6E 75 6D 62 ns an error numb
0276B0: 65 72 20 28 23 30 30 29 2E 0D 0A 20 20 20 20 20 er (#00)...
0276C0: 20 20 20 20 20 20 20 20 20 20 20 49 6E 20 56 31 In V1
0276D0: 2E 30 3A 20 41 20 63 6F 72 72 75 70 74 2E 0D 0A .0: A corrupt...
0276E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0276F0: 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 HL corrupt...
027700: 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 20 20 20 Always:..
027710: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 43 2C BC,
027720: 20 44 45 2C 20 49 58 20 61 6E 64 20 6F 74 68 65 DE, IX and othe
027730: 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E r flags corrupt.
027740: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
027750: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
027760: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
027770: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
027780: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 ... This r
027790: 6F 75 74 69 6E 65 20 63 61 6E 20 72 65 74 75 72 outine can retur
0277A0: 6E 20 74 77 6F 20 65 72 72 6F 72 20 6E 75 6D 62 n two error numb
0277B0: 65 72 73 3A 0D 0A 20 20 20 20 20 20 20 23 30 30 ers:.. #00
0277C0: 3A 20 20 20 20 20 54 68 65 20 75 73 65 72 20 68 : The user h
0277D0: 69 74 20 65 73 63 61 70 65 2E 0D 0A 20 20 20 20 it escape...
0277E0: 20 20 20 23 30 45 3A 20 20 20 20 20 54 68 65 20 #0E: The
0277F0: 73 74 72 65 61 6D 20 69 73 20 6E 6F 74 20 6F 70 stream is not op
027800: 65 6E 20 66 6F 72 20 72 65 61 64 69 6E 67 20 64 en for reading d
027810: 69 72 65 63 74 6C 79 20 6F 72 20 74 68 65 20 20 irectly or the
027820: 75 73 65 72 20 20 68 69 74 0D 0A 20 20 20 20 20 user hit..
027830: 20 20 20 20 20 20 20 20 20 20 20 65 73 63 61 70 escap
027840: 65 20 70 72 65 76 69 6F 75 73 6C 79 2E 0D 0A 0D e previously....
027850: 0A 20 20 20 20 20 20 20 54 68 65 20 72 65 61 64 . The read
027860: 20 73 74 72 65 61 6D 20 6D 75 73 74 20 62 65 20 stream must be
027870: 6E 65 77 6C 79 20 6F 70 65 6E 65 64 20 28 62 79 newly opened (by
027880: 20 43 41 53 20 49 4E 20 4F 50 45 4E 29 2E 20 49 CAS IN OPEN). I
027890: 66 20 20 74 68 65 20 20 73 74 72 65 61 6D 0D 0A f the stream..
0278A0: 20 20 20 20 20 20 20 68 61 73 20 62 65 65 6E 20 has been
0278B0: 75 73 65 64 20 66 6F 72 20 63 68 61 72 61 63 74 used for charact
0278C0: 65 72 20 61 63 63 65 73 73 20 28 62 79 20 63 61 er access (by ca
0278D0: 6C 6C 69 6E 67 20 43 41 53 20 49 4E 20 43 48 41 lling CAS IN CHA
0278E0: 52 29 20 74 68 65 6E 20 69 74 20 69 73 0D 0A 20 R) then it is..
0278F0: 20 20 20 20 20 20 6E 6F 74 20 70 6F 73 73 69 62 not possib
027900: 6C 65 20 74 6F 20 64 69 72 65 63 74 6C 79 20 72 le to directly r
027910: 65 61 64 20 74 68 65 20 66 69 6C 65 2E 20 20 4E ead the file. N
027920: 65 69 74 68 65 72 20 20 69 73 20 20 69 74 20 20 either is it
027930: 70 6F 73 73 69 62 6C 65 20 20 74 6F 0D 0A 0D 0A possible to....
027940: 20 20 20 20 20 20 20 64 69 72 65 63 74 6C 79 20 directly
027950: 72 65 61 64 20 66 72 6F 6D 20 74 68 65 20 66 69 read from the fi
027960: 6C 65 20 6D 6F 72 65 20 74 68 61 6E 20 6F 6E 63 le more than onc
027970: 65 2E 20 54 68 69 73 20 77 69 6C 6C 20 20 6D 65 e. This will me
027980: 72 65 6C 79 20 20 63 6F 72 72 75 70 74 0D 0A 20 rely corrupt..
027990: 20 20 20 20 20 20 74 68 65 20 63 6F 70 79 20 6F the copy o
0279A0: 66 20 74 68 65 20 66 69 6C 65 20 72 65 61 64 2E f the file read.
0279B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 62 .... The b
0279C0: 75 66 66 65 72 20 6F 66 20 64 61 74 61 20 72 65 uffer of data re
0279D0: 61 64 20 77 68 65 6E 20 74 68 65 20 73 74 72 65 ad when the stre
0279E0: 61 6D 20 77 61 73 20 6F 70 65 6E 65 64 20 69 73 am was opened is
0279F0: 20 20 63 6F 70 69 65 64 20 20 74 6F 20 20 69 74 copied to it
027A00: 73 0D 0A 20 20 20 20 20 20 20 63 6F 72 72 65 63 s.. correc
027A10: 74 20 70 6F 73 69 74 69 6F 6E 20 61 6E 64 20 74 t position and t
027A20: 68 65 20 72 65 6D 61 69 6E 64 65 72 20 6F 66 20 he remainder of
027A30: 74 68 65 20 66 69 6C 65 20 28 69 66 20 61 6E 79 the file (if any
027A40: 29 20 69 73 20 20 61 6C 73 6F 20 20 72 65 61 64 ) is also read
027A50: 0D 0A 20 20 20 20 20 20 20 69 6E 74 6F 20 73 74 .. into st
027A60: 6F 72 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 ore..... R
027A70: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
027A80: 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 43 . CAS IN C
027A90: 48 41 52 20 20 20 20 20 20 20 20 20 20 20 20 20 HAR
027AA0: 20 20 20 20 20 43 41 53 20 49 4E 20 44 49 52 45 CAS IN DIRE
027AB0: 43 54 20 28 44 49 53 43 29 0D 0A 20 20 20 20 20 CT (DISC)..
027AC0: 20 20 43 41 53 20 49 4E 20 43 4C 4F 53 45 20 20 CAS IN CLOSE
027AD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
027AE0: 41 53 20 49 4E 20 4F 50 45 4E 0D 0A 20 20 20 20 AS IN OPEN..
027AF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027B00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027B10: 43 41 53 20 4F 55 54 20 44 49 52 45 43 54 0D 0A CAS OUT DIRECT..
027B20: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
027B30: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
027B40: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
027B50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027B60: 20 20 20 20 70 61 67 65 20 31 35 2E 31 34 30 0D page 15.140.
027B70: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
027B80: 20 20 20 20 31 32 39 3A 20 43 41 53 20 49 4E 20 129: CAS IN
027B90: 44 49 52 45 43 54 20 28 44 49 53 43 29 20 20 20 DIRECT (DISC)
027BA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027BB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027BC0: 20 20 20 20 20 23 42 43 38 33 0D 0A 0D 0A 20 20 #BC83....
027BD0: 20 20 20 20 20 52 65 61 64 20 74 68 65 20 69 6E Read the in
027BE0: 70 75 74 20 66 69 6C 65 20 69 6E 74 6F 20 73 74 put file into st
027BF0: 6F 72 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ore..... A
027C00: 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 ction:....
027C10: 20 52 65 61 64 20 74 68 65 20 69 6E 70 75 74 20 Read the input
027C20: 66 69 6C 65 20 64 69 72 65 63 74 6C 79 20 69 6E file directly in
027C30: 74 6F 20 73 74 6F 72 65 20 69 6E 20 20 6F 6E 65 to store in one
027C40: 20 20 67 6F 20 20 72 61 74 68 65 72 20 20 74 68 go rather th
027C50: 61 6E 20 20 6F 6E 65 0D 0A 20 20 20 20 20 20 20 an one..
027C60: 63 68 61 72 61 63 74 65 72 20 61 74 20 61 20 74 character at a t
027C70: 69 6D 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 ime..... E
027C80: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
027C90: 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 63 6F .... HL co
027CA0: 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 65 ntains the addre
027CB0: 73 73 20 74 6F 20 70 75 74 20 74 68 65 20 66 69 ss to put the fi
027CC0: 6C 65 20 28 61 6E 79 77 68 65 72 65 20 69 6E 20 le (anywhere in
027CD0: 52 41 4D 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 RAM).....
027CE0: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
027CF0: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 .... If th
027D00: 65 20 66 69 6C 65 20 77 61 73 20 72 65 61 64 20 e file was read
027D10: 4F 4B 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 OK:....
027D20: 20 20 20 20 20 20 20 20 43 61 72 72 79 20 74 72 Carry tr
027D30: 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ue...
027D40: 20 20 20 20 20 20 5A 65 72 6F 20 66 61 6C 73 65 Zero false
027D50: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
027D60: 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 HL contains
027D70: 74 68 65 20 65 6E 74 72 79 20 61 64 64 72 65 73 the entry addres
027D80: 73 20 28 66 72 6F 6D 20 74 68 65 20 68 65 61 64 s (from the head
027D90: 65 72 29 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 er)...
027DA0: 20 20 20 20 20 20 20 41 20 63 6F 72 72 75 70 74 A corrupt
027DB0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
027DC0: 68 65 20 73 74 72 65 61 6D 20 69 73 20 6E 6F 74 he stream is not
027DD0: 20 6F 70 65 6E 20 61 73 20 65 78 70 65 63 74 65 open as expecte
027DE0: 64 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 d:..
027DF0: 20 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 Carry false
027E00: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
027E10: 20 20 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D Zero false..
027E20: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
027E30: 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 A contains an
027E40: 65 72 72 6F 72 20 6E 75 6D 62 65 72 20 28 23 30 error number (#0
027E50: 45 29 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 E)...
027E60: 20 20 20 20 20 20 48 4C 20 63 6F 72 72 75 70 74 HL corrupt
027E70: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
027E80: 68 65 20 72 65 61 64 20 66 61 69 6C 65 64 20 66 he read failed f
027E90: 6F 72 20 61 6E 79 20 6F 74 68 65 72 20 72 65 61 or any other rea
027EA0: 73 6F 6E 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 son:..
027EB0: 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C Carry fal
027EC0: 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 se...
027ED0: 20 20 20 20 20 20 5A 65 72 6F 20 74 72 75 65 2E Zero true.
027EE0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
027EF0: 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E A contains an
027F00: 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 2E 0D 0A error number...
027F10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027F20: 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 HL corrupt...
027F30: 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 20 20 Always:..
027F40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 43 BC
027F50: 2C 20 44 45 2C 20 49 58 20 61 6E 64 20 6F 74 68 , DE, IX and oth
027F60: 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 er flags corrupt
027F70: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
027F80: 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 All other reg
027F90: 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 isters preserved
027FA0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
027FB0: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 s:.... The
027FC0: 20 72 65 61 64 20 73 74 72 65 61 6D 20 6D 75 73 read stream mus
027FD0: 74 20 62 65 20 6E 65 77 6C 79 20 6F 70 65 6E 65 t be newly opene
027FE0: 64 20 28 62 79 20 43 41 53 20 49 4E 20 4F 50 45 d (by CAS IN OPE
027FF0: 4E 29 2E 20 49 66 20 20 74 68 65 20 20 73 74 72 N). If the str
028000: 65 61 6D 0D 0A 20 20 20 20 20 20 20 68 61 73 20 eam.. has
028010: 62 65 65 6E 20 75 73 65 64 20 66 6F 72 20 63 68 been used for ch
028020: 61 72 61 63 74 65 72 20 61 63 63 65 73 73 20 28 aracter access (
028030: 62 79 20 63 61 6C 6C 69 6E 67 20 43 41 53 20 49 by calling CAS I
028040: 4E 20 43 48 41 52 20 6F 72 20 43 41 53 20 54 45 N CHAR or CAS TE
028050: 53 54 0D 0A 20 20 20 20 20 20 20 45 4F 46 29 20 ST.. EOF)
028060: 74 68 65 6E 20 69 74 20 69 73 20 6E 6F 74 20 70 then it is not p
028070: 6F 73 73 69 62 6C 65 20 74 6F 20 64 69 72 65 63 ossible to direc
028080: 74 6C 79 20 72 65 61 64 20 74 68 65 20 66 69 6C tly read the fil
028090: 65 2E 20 4E 65 69 74 68 65 72 20 69 73 20 20 69 e. Neither is i
0280A0: 74 0D 0A 20 20 20 20 20 20 20 70 6F 73 73 69 62 t.. possib
0280B0: 6C 65 20 74 6F 20 64 69 72 65 63 74 6C 79 20 72 le to directly r
0280C0: 65 61 64 20 66 72 6F 6D 20 74 68 65 20 66 69 6C ead from the fil
0280D0: 65 20 6D 6F 72 65 20 74 68 61 6E 20 6F 6E 63 65 e more than once
0280E0: 2E 20 20 28 41 6E 79 20 20 61 74 74 65 6D 70 74 . (Any attempt
0280F0: 0D 0A 20 20 20 20 20 20 20 74 6F 20 64 6F 20 73 .. to do s
028100: 6F 20 77 69 6C 6C 20 63 6F 72 72 75 70 74 20 74 o will corrupt t
028110: 68 65 20 63 6F 70 79 20 6F 66 20 74 68 65 20 66 he copy of the f
028120: 69 6C 65 20 72 65 61 64 2E 0D 0A 0D 0A 20 20 20 ile read.....
028130: 20 20 20 20 49 66 20 74 68 65 20 66 69 6C 65 20 If the file
028140: 68 61 73 20 61 20 68 65 61 64 65 72 20 20 74 68 has a header th
028150: 65 6E 20 20 74 68 65 20 20 6E 75 6D 62 65 72 20 en the number
028160: 20 6F 66 20 20 62 79 74 65 73 20 20 72 65 61 64 of bytes read
028170: 20 20 69 73 20 20 74 68 61 74 0D 0A 20 20 20 20 is that..
028180: 20 20 20 72 65 63 6F 72 64 65 64 20 69 6E 20 74 recorded in t
028190: 68 65 20 32 34 20 62 69 74 20 66 69 6C 65 20 6C he 24 bit file l
0281A0: 65 6E 67 74 68 20 66 69 65 6C 64 20 28 62 79 74 ength field (byt
0281B0: 65 73 20 20 36 34 2E 2E 36 36 20 20 6F 66 20 20 es 64..66 of
0281C0: 74 68 65 20 20 64 69 73 63 0D 0A 20 20 20 20 20 the disc..
0281D0: 20 20 66 69 6C 65 20 68 65 61 64 65 72 29 2E 20 file header).
0281E0: 49 66 20 74 68 65 72 65 20 69 73 20 6E 6F 20 68 If there is no h
0281F0: 65 61 64 65 72 20 74 68 65 20 66 69 6C 65 20 69 eader the file i
028200: 73 20 72 65 61 64 20 75 6E 74 69 6C 20 68 61 72 s read until har
028210: 64 20 65 6E 64 20 6F 66 0D 0A 20 20 20 20 20 20 d end of..
028220: 20 66 69 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 file.....
028230: 20 54 68 65 20 43 50 2F 4D 20 65 6E 64 20 6F 66 The CP/M end of
028240: 20 66 69 6C 65 20 63 68 61 72 61 63 74 65 72 2C file character,
028250: 20 23 31 41 20 69 73 20 6E 6F 74 20 74 72 65 61 #1A is not trea
028260: 74 65 64 20 61 73 20 65 6E 64 20 6F 66 20 66 69 ted as end of fi
028270: 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 le..... Re
028280: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
028290: 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 .. CAS IN
0282A0: 43 48 41 52 20 28 44 49 53 43 29 0D 0A 20 20 20 CHAR (DISC)..
0282B0: 20 20 20 20 43 41 53 20 49 4E 20 43 4C 4F 53 45 CAS IN CLOSE
0282C0: 20 28 44 49 53 43 29 20 20 20 20 20 20 20 20 20 (DISC)
0282D0: 20 43 41 53 20 49 4E 20 4F 50 45 4E 20 28 44 49 CAS IN OPEN (DI
0282E0: 53 43 29 0D 0A 20 20 20 20 20 20 20 43 41 53 20 SC).. CAS
0282F0: 49 4E 20 44 49 52 45 43 54 20 20 20 20 20 20 20 IN DIRECT
028300: 20 20 20 20 20 20 20 20 20 43 41 53 20 4F 55 54 CAS OUT
028310: 20 44 49 52 45 43 54 20 28 44 49 53 43 29 0D 0A DIRECT (DISC)..
028320: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
028330: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
028340: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
028350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028360: 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 34 page 15.14
028370: 31 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 1..............
028380: 20 20 20 20 20 20 31 33 30 3A 20 43 41 53 20 52 130: CAS R
028390: 45 54 55 52 4E 20 20 20 20 20 20 20 20 20 20 20 ETURN
0283A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0283B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0283C0: 20 20 20 20 20 20 20 23 42 43 38 36 0D 0A 0D 0A #BC86....
0283D0: 0D 0A 20 20 20 20 20 20 20 50 75 74 20 74 68 65 .. Put the
0283E0: 20 6C 61 73 74 20 63 68 61 72 61 63 74 65 72 20 last character
0283F0: 72 65 61 64 20 62 61 63 6B 2E 0D 0A 0D 0A 0D 0A read back.......
028400: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
028410: 0D 0A 0D 0A 20 20 20 20 20 20 20 50 75 74 20 74 .... Put t
028420: 68 65 20 6C 61 73 74 20 63 68 61 72 61 63 74 65 he last characte
028430: 72 20 72 65 61 64 20 62 79 20 43 41 53 20 49 4E r read by CAS IN
028440: 20 43 48 41 52 20 62 61 63 6B 20 69 6E 74 6F 20 CHAR back into
028450: 74 68 65 20 72 65 61 64 20 20 62 75 66 66 65 72 the read buffer
028460: 2E 0D 0A 20 20 20 20 20 20 20 54 68 65 20 63 68 ... The ch
028470: 61 72 61 63 74 65 72 20 77 69 6C 6C 20 62 65 20 aracter will be
028480: 72 65 2D 72 65 61 64 20 6E 65 78 74 20 74 69 6D re-read next tim
028490: 65 20 43 41 53 20 49 4E 20 43 48 41 52 20 69 73 e CAS IN CHAR is
0284A0: 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 called.......
0284B0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
0284C0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
0284D0: 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 No conditions
0284E0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
0284F0: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
028500: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 72 .... All r
028510: 65 67 69 73 74 65 72 73 20 61 6E 64 20 66 6C 61 egisters and fla
028520: 67 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D gs preserved....
028530: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
028540: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 74 20 ...... It
028550: 69 73 20 6F 6E 6C 79 20 70 6F 73 73 69 62 6C 65 is only possible
028560: 20 74 6F 20 75 73 65 20 74 68 69 73 20 72 6F 75 to use this rou
028570: 74 69 6E 65 20 74 6F 20 72 65 74 75 72 6E 20 74 tine to return t
028580: 68 65 20 20 6C 61 73 74 20 20 63 68 61 72 61 63 he last charac
028590: 74 65 72 0D 0A 20 20 20 20 20 20 20 74 68 61 74 ter.. that
0285A0: 20 68 61 73 20 62 65 65 6E 20 72 65 61 64 20 62 has been read b
0285B0: 79 20 43 41 53 20 49 4E 20 43 48 41 52 2E 20 41 y CAS IN CHAR. A
0285C0: 74 20 6C 65 61 73 74 20 6F 6E 65 20 20 63 68 61 t least one cha
0285D0: 72 61 63 74 65 72 20 20 6D 75 73 74 20 20 68 61 racter must ha
0285E0: 76 65 0D 0A 20 20 20 20 20 20 20 62 65 65 6E 20 ve.. been
0285F0: 72 65 61 64 20 73 69 6E 63 65 3A 0D 0A 0D 0A 0D read since:.....
028600: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
028610: 20 74 68 65 20 73 74 72 65 61 6D 20 77 61 73 20 the stream was
028620: 6F 70 65 6E 65 64 0D 0A 20 20 20 20 20 20 20 20 opened..
028630: 20 20 6F 72 20 20 20 20 74 68 65 20 6C 61 73 74 or the last
028640: 20 63 68 61 72 61 63 74 65 72 20 77 61 73 20 72 character was r
028650: 65 74 75 72 6E 65 64 0D 0A 20 20 20 20 20 20 20 eturned..
028660: 20 20 20 6F 72 20 20 20 20 74 68 65 20 6C 61 73 or the las
028670: 74 20 74 65 73 74 20 66 6F 72 20 65 6E 64 20 6F t test for end o
028680: 66 20 66 69 6C 65 20 77 61 73 20 6D 61 64 65 2E f file was made.
028690: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 ........ R
0286A0: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
0286B0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 41 53 20 ..... CAS
0286C0: 49 4E 20 43 48 41 52 0D 0A 20 20 20 20 20 20 20 IN CHAR..
0286D0: 43 41 53 20 52 45 54 55 52 4E 20 28 44 49 53 43 CAS RETURN (DISC
0286E0: 29 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D )...............
0286F0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
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: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
028810: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
028820: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
028830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028840: 20 20 20 70 61 67 65 20 31 35 2E 31 34 32 0D 0A page 15.142..
028850: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
028860: 20 20 20 31 33 30 3A 20 43 41 53 20 52 45 54 55 130: CAS RETU
028870: 52 4E 20 28 44 49 53 43 29 20 20 20 20 20 20 20 RN (DISC)
028880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0288A0: 20 20 20 20 23 42 43 38 36 0D 0A 0D 0A 0D 0A 20 #BC86......
0288B0: 20 20 20 20 20 20 50 75 74 20 74 68 65 20 6C 61 Put the la
0288C0: 73 74 20 63 68 61 72 61 63 74 65 72 20 72 65 61 st character rea
0288D0: 64 20 62 61 63 6B 2E 0D 0A 0D 0A 0D 0A 20 20 20 d back.......
0288E0: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D Action:.....
0288F0: 0A 20 20 20 20 20 20 20 50 75 74 20 74 68 65 20 . Put the
028900: 6C 61 73 74 20 63 68 61 72 61 63 74 65 72 20 72 last character r
028910: 65 61 64 20 62 79 20 43 41 53 20 49 4E 20 43 48 ead by CAS IN CH
028920: 41 52 20 62 61 63 6B 20 69 6E 74 6F 20 74 68 65 AR back into the
028930: 20 72 65 61 64 20 20 62 75 66 66 65 72 2E 0D 0A read buffer...
028940: 20 20 20 20 20 20 20 54 68 65 20 63 68 61 72 61 The chara
028950: 63 74 65 72 20 77 69 6C 6C 20 62 65 20 72 65 2D cter will be re-
028960: 72 65 61 64 20 6E 65 78 74 20 74 69 6D 65 20 43 read next time C
028970: 41 53 20 49 4E 20 43 48 41 52 20 69 73 20 63 61 AS IN CHAR is ca
028980: 6C 6C 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 lled.......
028990: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
0289A0: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
0289B0: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A No conditions...
0289C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
0289D0: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
0289E0: 0A 20 20 20 20 20 20 20 41 6C 6C 20 72 65 67 69 . All regi
0289F0: 73 74 65 72 73 20 61 6E 64 20 66 6C 61 67 73 20 sters and flags
028A00: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A preserved.......
028A10: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
028A20: 0A 0D 0A 20 20 20 20 20 20 20 49 74 20 69 73 20 ... It is
028A30: 6F 6E 6C 79 20 70 6F 73 73 69 62 6C 65 20 74 6F only possible to
028A40: 20 75 73 65 20 74 68 69 73 20 72 6F 75 74 69 6E use this routin
028A50: 65 20 74 6F 20 72 65 74 75 72 6E 20 74 68 65 20 e to return the
028A60: 20 6C 61 73 74 20 20 63 68 61 72 61 63 74 65 72 last character
028A70: 0D 0A 20 20 20 20 20 20 20 74 68 61 74 20 68 61 .. that ha
028A80: 73 20 62 65 65 6E 20 72 65 61 64 20 62 79 20 43 s been read by C
028A90: 41 53 20 49 4E 20 43 48 41 52 2E 20 41 74 20 6C AS IN CHAR. At l
028AA0: 65 61 73 74 20 6F 6E 65 20 20 63 68 61 72 61 63 east one charac
028AB0: 74 65 72 20 20 6D 75 73 74 20 20 68 61 76 65 0D ter must have.
028AC0: 0A 20 20 20 20 20 20 20 62 65 65 6E 20 72 65 61 . been rea
028AD0: 64 20 73 69 6E 63 65 3A 0D 0A 0D 0A 0D 0A 20 20 d since:......
028AE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
028AF0: 65 20 73 74 72 65 61 6D 20 77 61 73 20 6F 70 65 e stream was ope
028B00: 6E 65 64 0D 0A 20 20 20 20 20 20 20 20 20 20 6F ned.. o
028B10: 72 20 20 20 20 74 68 65 20 6C 61 73 74 20 63 68 r the last ch
028B20: 61 72 61 63 74 65 72 20 77 61 73 20 72 65 74 75 aracter was retu
028B30: 72 6E 65 64 0D 0A 20 20 20 20 20 20 20 20 20 20 rned..
028B40: 6F 72 20 20 20 20 74 68 65 20 6C 61 73 74 20 74 or the last t
028B50: 65 73 74 20 66 6F 72 20 65 6E 64 20 6F 66 20 66 est for end of f
028B60: 69 6C 65 20 77 61 73 20 6D 61 64 65 2E 0D 0A 0D ile was made....
028B70: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
028B80: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
028B90: 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 .. CAS IN
028BA0: 43 48 41 52 20 28 44 49 53 43 29 0D 0A 20 20 20 CHAR (DISC)..
028BB0: 20 20 20 20 43 41 53 20 52 45 54 55 52 4E 0D 0A CAS RETURN..
028BC0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
028BD0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
028BE0: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
028BF0: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
028C00: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
028C10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028C20: 70 61 67 65 20 31 35 2E 31 34 33 0D 0A 0D 0A 0D page 15.143.....
028C30: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
028C40: 31 33 31 3A 20 43 41 53 20 54 45 53 54 20 45 4F 131: CAS TEST EO
028C50: 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 F
028C60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028C70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028C80: 20 23 42 43 38 39 0D 0A 0D 0A 20 20 20 20 20 20 #BC89....
028C90: 20 48 61 76 65 20 77 65 20 72 65 61 63 68 65 64 Have we reached
028CA0: 20 74 68 65 20 65 6E 64 20 6F 66 20 74 68 65 20 the end of the
028CB0: 66 69 6C 65 20 79 65 74 3F 0D 0A 0D 0A 20 20 20 file yet?....
028CC0: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 Action:....
028CD0: 20 20 20 20 20 20 54 65 73 74 20 69 66 20 74 68 Test if th
028CE0: 65 20 65 6E 64 20 6F 66 20 74 68 65 20 69 6E 70 e end of the inp
028CF0: 75 74 20 66 69 6C 65 20 68 61 73 20 62 65 65 6E ut file has been
028D00: 20 72 65 61 63 68 65 64 2E 0D 0A 0D 0A 20 20 20 reached.....
028D10: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
028D20: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
028D30: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A No conditions...
028D40: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
028D50: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
028D60: 20 20 20 20 49 66 20 74 68 65 20 65 6E 64 20 6F If the end o
028D70: 66 20 74 68 65 20 66 69 6C 65 20 77 61 73 20 6E f the file was n
028D80: 6F 74 20 66 6F 75 6E 64 3A 0D 0A 0D 0A 20 20 20 ot found:....
028D90: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 Car
028DA0: 72 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 ry true...
028DB0: 20 20 20 20 20 20 20 20 20 20 5A 65 72 6F 20 66 Zero f
028DC0: 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 alse...
028DD0: 20 20 20 20 20 20 20 41 20 63 6F 72 72 75 70 74 A corrupt
028DE0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
028DF0: 68 65 20 65 6E 64 20 6F 66 20 74 68 65 20 66 69 he end of the fi
028E00: 6C 65 20 77 61 73 20 66 6F 75 6E 64 3A 0D 0A 0D le was found:...
028E10: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
028E20: 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 Carry false...
028E30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5A Z
028E40: 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 ero false...
028E50: 20 20 20 20 20 20 20 20 20 20 20 20 49 6E 20 56 In V
028E60: 31 2E 31 3A 20 41 20 63 6F 6E 74 61 69 6E 73 20 1.1: A contains
028E70: 61 6E 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 20 an error number
028E80: 28 23 30 45 20 6F 72 20 23 30 46 29 2E 0D 0A 20 (#0E or #0F)...
028E90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 I
028EA0: 6E 20 56 31 2E 30 3A 20 41 20 63 6F 72 72 75 70 n V1.0: A corrup
028EB0: 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 t..... If
028EC0: 74 68 65 20 75 73 65 72 20 68 69 74 20 65 73 63 the user hit esc
028ED0: 61 70 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ape:....
028EE0: 20 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 Carry fa
028EF0: 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 lse...
028F00: 20 20 20 20 20 20 5A 65 72 6F 20 74 72 75 65 2E Zero true.
028F10: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
028F20: 20 20 49 6E 20 56 31 2E 31 3A 20 41 20 63 6F 6E In V1.1: A con
028F30: 74 61 69 6E 73 20 61 6E 20 65 72 72 6F 72 20 6E tains an error n
028F40: 75 6D 62 65 72 20 28 23 30 30 29 2E 0D 0A 20 20 umber (#00)...
028F50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6E In
028F60: 20 56 31 2E 30 3A 20 41 20 63 6F 72 72 75 70 74 V1.0: A corrupt
028F70: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 ..... Alwa
028F80: 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ys:....
028F90: 20 20 20 20 20 20 20 49 58 20 61 6E 64 20 6F 74 IX and ot
028FA0: 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 her flags corrup
028FB0: 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 t...
028FC0: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
028FD0: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
028FE0: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 d..... Not
028FF0: 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 es:.... Th
029000: 69 73 20 72 6F 75 74 69 6E 65 20 63 61 6E 20 72 is routine can r
029010: 65 74 75 72 6E 20 74 68 72 65 65 20 65 72 72 6F eturn three erro
029020: 72 20 6E 75 6D 62 65 72 73 3A 0D 0A 0D 0A 20 20 r numbers:....
029030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 30 #0
029040: 30 3A 20 20 20 20 20 20 54 68 65 20 75 73 65 20 0: The use
029050: 68 69 74 20 65 73 63 61 70 65 2E 0D 0A 20 20 20 hit escape...
029060: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 30 45 #0E
029070: 3A 20 20 20 20 20 20 54 68 65 20 73 74 72 65 61 : The strea
029080: 6D 20 69 73 20 6E 6F 74 20 6F 70 65 6E 20 66 6F m is not open fo
029090: 72 20 20 72 65 61 64 69 6E 67 20 20 63 68 61 72 r reading char
0290A0: 61 63 74 65 72 73 20 20 6F 72 0D 0A 20 20 20 20 acters or..
0290B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0290C0: 20 20 20 20 20 20 74 68 65 20 75 73 65 72 20 68 the user h
0290D0: 69 74 20 65 73 63 61 70 65 20 70 72 65 76 69 6F it escape previo
0290E0: 75 73 6C 79 2E 0D 0A 20 20 20 20 20 20 20 20 20 usly...
0290F0: 20 20 20 20 20 20 20 23 30 46 3A 20 20 20 20 20 #0F:
029100: 20 48 61 76 65 20 72 65 61 63 68 65 64 20 74 68 Have reached th
029110: 65 20 65 6E 64 20 6F 66 20 74 68 65 20 66 69 6C e end of the fil
029120: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 43 61 6C e..... Cal
029130: 6C 69 6E 67 20 74 68 69 73 20 72 6F 75 74 69 6E ling this routin
029140: 65 20 70 75 74 20 74 68 65 20 73 74 72 65 61 6D e put the stream
029150: 20 69 6E 74 6F 20 63 68 61 72 61 63 74 65 72 20 into character
029160: 69 6E 70 75 74 20 6D 6F 64 65 2E 20 20 49 74 20 input mode. It
029170: 20 69 73 0D 0A 20 20 20 20 20 20 20 6E 6F 74 20 is.. not
029180: 70 6F 73 73 69 62 6C 65 20 74 6F 20 75 73 65 20 possible to use
029190: 64 69 72 65 63 74 20 72 65 61 64 69 6E 67 20 61 direct reading a
0291A0: 66 74 65 72 20 63 61 6C 6C 69 6E 67 20 74 68 69 fter calling thi
0291B0: 73 20 72 6F 75 74 69 6E 65 2E 0D 0A 0D 0A 20 20 s routine.....
0291C0: 20 20 20 20 20 49 74 20 69 73 20 6E 6F 74 20 70 It is not p
0291D0: 6F 73 73 69 62 6C 65 20 74 6F 20 63 61 6C 6C 20 ossible to call
0291E0: 43 41 53 20 52 45 54 55 52 4E 20 20 61 66 74 65 CAS RETURN afte
0291F0: 72 20 20 74 68 69 73 20 20 72 6F 75 74 69 6E 65 r this routine
029200: 20 20 68 61 73 20 20 62 65 65 6E 0D 0A 20 20 20 has been..
029210: 20 20 20 20 63 61 6C 6C 65 64 2E 20 41 20 63 68 called. A ch
029220: 61 72 61 63 74 65 72 20 6D 75 73 74 20 62 65 20 aracter must be
029230: 72 65 61 64 20 66 69 72 73 74 2E 0D 0A 0D 0A 20 read first.....
029240: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
029250: 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tries:....
029260: 20 43 41 53 20 49 4E 20 43 48 41 52 0D 0A 20 20 CAS IN CHAR..
029270: 20 20 20 20 20 43 41 53 20 54 45 53 54 20 45 4F CAS TEST EO
029280: 46 20 28 44 49 53 43 29 0D 0A 0D 0A 20 20 20 20 F (DISC)....
029290: 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 AMSTRAD CPC46
0292A0: 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 4/664/6128 FIRMW
0292B0: 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ARE
0292C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
0292D0: 67 65 20 31 35 2E 31 34 34 0D 0A 0D 0A 0D 0A 0D ge 15.144.......
0292E0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 33 ....... 13
0292F0: 31 3A 20 43 41 53 20 54 45 53 54 20 45 4F 46 20 1: CAS TEST EOF
029300: 28 44 49 53 43 29 20 20 20 20 20 20 20 20 20 20 (DISC)
029310: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
029330: 42 43 38 39 0D 0A 0D 0A 20 20 20 20 20 20 20 48 BC89.... H
029340: 61 76 65 20 77 65 20 72 65 61 63 68 65 64 20 74 ave we reached t
029350: 68 65 20 65 6E 64 20 6F 66 20 74 68 65 20 66 69 he end of the fi
029360: 6C 65 20 79 65 74 3F 0D 0A 0D 0A 20 20 20 20 20 le yet?....
029370: 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 Action:....
029380: 20 20 20 20 54 65 73 74 20 69 66 20 74 68 65 20 Test if the
029390: 65 6E 64 20 6F 66 20 74 68 65 20 69 6E 70 75 74 end of the input
0293A0: 20 66 69 6C 65 20 68 61 73 20 62 65 65 6E 20 72 file has been r
0293B0: 65 61 63 68 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 eached.....
0293C0: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
0293D0: 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ns:.... No
0293E0: 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A conditions.....
0293F0: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
029400: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
029410: 20 20 49 66 20 74 68 65 20 65 6E 64 20 6F 66 20 If the end of
029420: 74 68 65 20 66 69 6C 65 20 77 61 73 20 6E 6F 74 the file was not
029430: 20 66 6F 75 6E 64 3A 0D 0A 0D 0A 20 20 20 20 20 found:....
029440: 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 Carry
029450: 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 true...
029460: 20 20 20 20 20 20 20 20 5A 65 72 6F 20 66 61 6C Zero fal
029470: 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 se...
029480: 20 20 20 20 20 41 20 63 6F 72 72 75 70 74 2E 0D A corrupt..
029490: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
0294A0: 20 65 6E 64 20 6F 66 20 74 68 65 20 66 69 6C 65 end of the file
0294B0: 20 77 61 73 20 66 6F 75 6E 64 20 6F 72 20 73 74 was found or st
0294C0: 72 65 61 6D 20 77 61 73 20 6E 6F 74 20 6F 70 65 ream was not ope
0294D0: 6E 20 61 73 20 65 78 70 65 63 74 65 64 3A 0D 0A n as expected:..
0294E0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0294F0: 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A Carry false...
029500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029510: 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 20 Zero false...
029520: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 63 A c
029530: 6F 6E 74 61 69 6E 73 20 61 6E 20 65 72 72 6F 72 ontains an error
029540: 20 6E 75 6D 62 65 72 20 28 23 30 45 2C 23 30 46 number (#0E,#0F
029550: 20 6F 72 20 23 31 41 29 2E 0D 0A 0D 0A 20 20 20 or #1A).....
029560: 20 20 20 20 49 66 20 66 61 69 6C 65 64 20 66 6F If failed fo
029570: 72 20 61 6E 79 20 6F 74 68 65 72 20 72 65 61 73 r any other reas
029580: 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 on:....
029590: 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C Carry fal
0295A0: 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 se...
0295B0: 20 20 20 20 20 5A 65 72 6F 20 74 72 75 65 2E 0D Zero true..
0295C0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0295D0: 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 65 A contains an e
0295E0: 72 72 6F 72 20 6E 75 6D 62 65 72 2E 0D 0A 0D 0A rror number.....
0295F0: 20 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A Always:..
029600: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
029610: 20 20 49 58 20 61 6E 64 20 6F 74 68 65 72 20 66 IX and other f
029620: 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 lags corrupt...
029630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 A
029640: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
029650: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
029660: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
029670: 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F .. This ro
029680: 75 74 69 6E 65 20 77 69 6C 6C 20 72 65 70 6F 72 utine will repor
029690: 74 20 65 6E 64 20 6F 66 20 66 69 6C 65 20 20 69 t end of file i
0296A0: 66 20 20 65 69 74 68 65 72 20 20 74 68 65 72 65 f either there
0296B0: 20 20 61 72 65 20 20 6E 6F 20 20 6D 6F 72 65 0D are no more.
0296C0: 0A 20 20 20 20 20 20 20 63 68 61 72 61 63 74 65 . characte
0296D0: 72 73 20 69 6E 20 74 68 65 20 66 69 6C 65 20 6F rs in the file o
0296E0: 72 20 69 66 20 74 68 65 20 6E 65 78 74 20 63 68 r if the next ch
0296F0: 61 72 61 63 74 65 72 20 74 6F 20 62 65 20 72 65 aracter to be re
029700: 61 64 20 69 73 20 74 68 65 20 43 50 2F 4D 0D 0A ad is the CP/M..
029710: 20 20 20 20 20 20 20 65 6E 64 20 6F 66 20 66 69 end of fi
029720: 6C 65 20 63 68 61 72 61 63 74 65 72 20 23 31 41 le character #1A
029730: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 43 61 6C 6C ..... Call
029740: 69 6E 67 20 74 68 69 73 20 72 6F 75 74 69 6E 65 ing this routine
029750: 20 70 75 74 73 20 74 68 65 20 73 74 72 65 61 6D puts the stream
029760: 20 69 6E 74 6F 20 63 68 61 72 61 63 74 65 72 20 into character
029770: 69 6E 70 75 74 20 6D 6F 64 65 2E 20 49 74 20 20 input mode. It
029780: 69 73 0D 0A 20 20 20 20 20 20 20 6E 6F 74 20 70 is.. not p
029790: 6F 73 73 69 62 6C 65 20 74 6F 20 75 73 65 20 64 ossible to use d
0297A0: 69 72 65 63 74 20 72 65 61 64 69 6E 67 20 61 66 irect reading af
0297B0: 74 65 72 20 63 61 6C 6C 69 6E 67 20 74 68 69 73 ter calling this
0297C0: 20 72 6F 75 74 69 6E 65 2E 0D 0A 0D 0A 20 20 20 routine.....
0297D0: 20 20 20 20 49 74 20 69 73 20 6E 6F 74 20 70 6F It is not po
0297E0: 73 73 69 62 6C 65 20 74 6F 20 63 61 6C 6C 20 43 ssible to call C
0297F0: 41 53 20 52 45 54 55 52 4E 20 20 61 66 74 65 72 AS RETURN after
029800: 20 20 74 68 69 73 20 20 72 6F 75 74 69 6E 65 20 this routine
029810: 20 68 61 73 20 20 62 65 65 6E 0D 0A 20 20 20 20 has been..
029820: 20 20 20 63 61 6C 6C 65 64 2E 20 41 20 63 68 61 called. A cha
029830: 72 61 63 74 65 72 20 6D 75 73 74 20 62 65 20 72 racter must be r
029840: 65 61 64 20 66 69 72 73 74 2E 0D 0A 0D 0A 20 20 ead first.....
029850: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
029860: 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ries:....
029870: 43 41 53 20 49 4E 20 43 48 41 52 20 28 44 49 53 CAS IN CHAR (DIS
029880: 43 29 0D 0A 20 20 20 20 20 20 20 43 41 53 20 54 C).. CAS T
029890: 45 53 54 20 45 4F 46 0D 0A 0D 0A 0D 0A 0D 0A 0D EST EOF.........
0298A0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
0298B0: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
0298C0: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
0298D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0298E0: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 page 15.1
0298F0: 34 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 45..............
029900: 20 20 20 20 20 20 20 31 33 32 3A 20 43 41 53 20 132: CAS
029910: 4F 55 54 20 4F 50 45 4E 20 20 20 20 20 20 20 20 OUT OPEN
029920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
029940: 20 20 20 20 20 20 20 20 23 42 43 38 43 0D 0A 0D #BC8C...
029950: 0A 20 20 20 20 20 20 20 4F 70 65 6E 20 61 20 66 . Open a f
029960: 69 6C 65 20 66 6F 72 20 6F 75 74 70 75 74 2E 0D ile for output..
029970: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
029980: 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 on:.... Se
029990: 74 20 75 70 20 74 68 65 20 77 72 69 74 65 20 73 t up the write s
0299A0: 74 72 65 61 6D 20 66 6F 72 20 6F 75 74 70 75 74 tream for output
0299B0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
0299C0: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
0299D0: 0A 20 20 20 20 20 20 20 42 20 63 6F 6E 74 61 69 . B contai
0299E0: 6E 73 20 74 68 65 20 6C 65 6E 67 74 68 20 6F 66 ns the length of
0299F0: 20 74 68 65 20 66 69 6C 65 6E 61 6D 65 2E 0D 0A the filename...
029A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 01 00 00 Track-Info......
029A10: 23 00 00 00 02 09 50 E5 23 00 C1 02 00 00 00 02 #.....P.#.......
029A20: 23 00 C2 02 00 00 00 02 23 00 C3 02 00 00 00 02 #.......#.......
029A30: 23 00 C4 02 00 00 00 02 23 00 C5 02 00 00 00 02 #.......#.......
029A40: 23 00 C6 02 00 00 00 02 23 00 C7 02 00 00 00 02 #.......#.......
029A50: 23 00 C8 02 00 00 00 02 23 00 C9 02 00 00 00 02 #.......#.......
029A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029B00: 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 HL contai
029B10: 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F ns the address o
029B20: 66 20 74 68 65 20 66 69 6C 65 6E 61 6D 65 2E 0D f the filename..
029B30: 0A 20 20 20 20 20 20 20 44 45 20 63 6F 6E 74 61 . DE conta
029B40: 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 ins the address
029B50: 6F 66 20 61 20 32 4B 20 62 75 66 66 65 72 20 74 of a 2K buffer t
029B60: 6F 20 75 73 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 o use.....
029B70: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
029B80: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 :.... If t
029B90: 68 65 20 75 73 65 72 20 68 69 74 20 65 73 63 61 he user hit esca
029BA0: 70 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 pe:....
029BB0: 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C Carry fal
029BC0: 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 se...
029BD0: 20 20 20 20 20 5A 65 72 6F 20 74 72 75 65 2E 0D Zero true..
029BE0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
029BF0: 20 49 6E 20 56 31 2E 31 3A 20 41 20 63 6F 6E 74 In V1.1: A cont
029C00: 61 69 6E 73 20 61 6E 20 65 72 72 6F 72 20 6E 75 ains an error nu
029C10: 6D 62 65 72 20 28 23 30 30 29 2E 0D 0A 20 20 20 mber (#00)...
029C20: 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6E 20 In
029C30: 56 31 2E 30 3A 20 41 20 63 6F 72 72 75 70 74 2E V1.0: A corrupt.
029C40: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
029C50: 20 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 0D HL corrupt....
029C60: 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 73 . If the s
029C70: 74 72 65 61 6D 20 69 73 20 69 6E 20 75 73 65 20 tream is in use
029C80: 61 6C 72 65 61 64 79 3A 0D 0A 0D 0A 20 20 20 20 already:....
029C90: 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 Carr
029CA0: 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 y false...
029CB0: 20 20 20 20 20 20 20 20 20 20 5A 65 72 6F 20 66 Zero f
029CC0: 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 alse...
029CD0: 20 20 20 20 20 20 20 49 6E 20 56 31 2E 31 3A 20 In V1.1:
029CE0: 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 65 72 A contains an er
029CF0: 72 6F 72 20 6E 75 6D 62 65 72 20 28 23 30 45 29 ror number (#0E)
029D00: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
029D10: 20 20 20 49 6E 20 56 31 2E 30 3A 20 41 20 63 6F In V1.0: A co
029D20: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 rrupt...
029D30: 20 20 20 20 20 20 20 20 48 4C 20 63 6F 72 72 75 HL corru
029D40: 70 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 pt..... If
029D50: 20 74 68 65 20 66 69 6C 65 20 77 61 73 20 6F 70 the file was op
029D60: 65 6E 65 64 20 4F 4B 3A 0D 0A 0D 0A 20 20 20 20 ened OK:....
029D70: 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 Carr
029D80: 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 y true...
029D90: 20 20 20 20 20 20 20 20 20 5A 65 72 6F 20 66 61 Zero fa
029DA0: 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 lse...
029DB0: 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E HL contain
029DC0: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 s the address of
029DD0: 20 61 20 20 62 75 66 66 65 72 20 20 63 6F 6E 74 a buffer cont
029DE0: 61 69 6E 69 6E 67 20 20 74 68 65 20 20 68 65 61 aining the hea
029DF0: 64 65 72 0D 0A 20 20 20 20 20 20 20 20 20 20 20 der..
029E00: 20 20 20 20 20 74 68 61 74 20 77 69 6C 6C 20 62 that will b
029E10: 65 20 77 72 69 74 74 65 6E 20 74 6F 20 65 61 63 e written to eac
029E20: 68 20 66 69 6C 65 20 62 6C 6F 63 6B 2E 0D 0A 0D h file block....
029E30: 0A 20 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D . Always:.
029E40: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
029E50: 20 20 20 42 43 2C 44 45 2C 49 58 20 61 6E 64 20 BC,DE,IX and
029E60: 6F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 other flags corr
029E70: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 upt...
029E80: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
029E90: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
029EA0: 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E ved..... N
029EB0: 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 otes:....
029EC0: 54 68 69 73 20 72 6F 75 74 69 6E 65 20 63 61 6E This routine can
029ED0: 20 6F 6E 6C 79 20 72 65 74 75 72 6E 20 74 77 6F only return two
029EE0: 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 73 2E 0D error numbers..
029EF0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
029F00: 20 20 20 23 30 30 3A 20 20 20 20 20 20 54 68 65 #00: The
029F10: 20 75 73 65 72 20 68 69 74 20 65 73 63 61 70 65 user hit escape
029F20: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
029F30: 20 20 20 23 30 45 3A 20 54 68 65 20 73 74 72 65 #0E: The stre
029F40: 61 6D 20 69 73 20 61 6C 72 65 61 64 79 20 6F 70 am is already op
029F50: 65 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 57 68 en..... Wh
029F60: 65 6E 20 77 72 69 74 69 6E 67 20 66 69 6C 65 73 en writing files
029F70: 20 63 68 61 72 61 63 74 65 72 20 62 79 20 63 68 character by ch
029F80: 61 72 61 63 74 65 72 20 74 68 65 20 32 4B 20 62 aracter the 2K b
029F90: 75 66 66 65 72 20 20 28 32 30 34 38 20 20 62 79 uffer (2048 by
029FA0: 74 65 73 29 0D 0A 20 20 20 20 20 20 20 73 75 70 tes).. sup
029FB0: 70 6C 69 65 64 20 69 73 20 75 73 65 64 20 74 6F plied is used to
029FC0: 20 20 73 74 6F 72 65 20 20 74 68 65 20 20 63 6F store the co
029FD0: 6E 74 65 6E 74 73 20 20 6F 66 20 20 61 20 20 62 ntents of a b
029FE0: 6C 6F 63 6B 20 20 6F 66 20 20 74 68 65 20 20 66 lock of the f
029FF0: 69 6C 65 0D 0A 20 20 20 20 20 20 20 62 65 66 6F ile.. befo
02A000: 72 65 20 69 74 20 69 73 20 77 72 69 74 74 65 6E re it is written
02A010: 20 74 6F 20 74 61 70 65 2E 20 49 74 20 77 69 6C to tape. It wil
02A020: 6C 20 72 65 6D 61 69 6E 20 69 6E 20 20 75 73 65 l remain in use
02A030: 20 20 75 6E 74 69 6C 20 20 74 68 65 20 20 66 69 until the fi
02A040: 6C 65 0D 0A 20 20 20 20 20 20 20 69 73 20 63 6C le.. is cl
02A050: 6F 73 65 64 20 62 79 20 63 61 6C 6C 69 6E 67 20 osed by calling
02A060: 65 69 74 68 65 72 20 43 41 53 20 4F 55 54 20 43 either CAS OUT C
02A070: 4C 4F 53 45 20 20 6F 72 20 20 43 41 53 20 20 4F LOSE or CAS O
02A080: 55 54 20 20 41 42 41 4E 44 4F 4E 2E 20 20 54 68 UT ABANDON. Th
02A090: 65 0D 0A 20 20 20 20 20 20 20 62 75 66 66 65 72 e.. buffer
02A0A0: 20 6D 61 79 20 72 65 73 69 64 65 20 61 6E 79 77 may reside anyw
02A0B0: 68 65 72 65 20 69 6E 20 6D 65 6D 6F 72 79 20 2D here in memory -
02A0C0: 20 65 76 65 6E 20 75 6E 64 65 72 6E 65 61 74 68 even underneath
02A0D0: 20 61 20 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 20 20 20 a ROM.......
02A0E0: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
02A0F0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
02A100: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
02A110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
02A120: 61 67 65 20 31 35 2E 31 34 36 0D 0A 0D 0A 0D 0A age 15.146......
02A130: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 ........ W
02A140: 68 65 6E 20 74 68 65 20 73 74 72 65 61 6D 20 69 hen the stream i
02A150: 73 20 6F 70 65 6E 65 64 20 66 6F 72 20 77 72 69 s opened for wri
02A160: 74 69 6E 67 2C 20 61 20 68 65 61 64 65 72 20 69 ting, a header i
02A170: 73 20 73 65 74 20 75 70 20 20 77 68 69 63 68 20 s set up which
02A180: 20 77 69 6C 6C 0D 0A 20 20 20 20 20 20 20 62 65 will.. be
02A190: 20 77 72 69 74 74 65 6E 20 61 74 20 74 68 65 20 written at the
02A1A0: 73 74 61 72 74 20 6F 66 20 65 61 63 68 20 62 6C start of each bl
02A1B0: 6F 63 6B 20 6F 66 20 74 68 65 20 66 69 6C 65 2E ock of the file.
02A1C0: 20 4D 61 6E 79 20 6F 66 20 74 68 65 20 20 66 69 Many of the fi
02A1D0: 65 6C 64 73 0D 0A 20 20 20 20 20 20 20 69 6E 20 elds.. in
02A1E0: 74 68 65 20 68 65 61 64 65 72 20 61 72 65 20 73 the header are s
02A1F0: 65 74 20 62 79 20 74 68 65 20 43 61 73 73 65 74 et by the Casset
02A200: 74 65 20 4D 61 6E 61 67 65 72 20 62 75 74 20 20 te Manager but
02A210: 74 68 65 20 20 72 65 6D 61 69 6E 64 65 72 20 20 the remainder
02A220: 61 72 65 0D 0A 20 20 20 20 20 20 20 61 76 61 69 are.. avai
02A230: 6C 61 62 6C 65 20 66 6F 72 20 75 73 65 20 62 79 lable for use by
02A240: 20 74 68 65 20 75 73 65 72 2E 20 54 68 65 20 61 the user. The a
02A250: 64 64 72 65 73 73 20 6F 66 20 74 68 69 73 20 68 ddress of this h
02A260: 65 61 64 65 72 20 69 73 20 70 61 73 73 65 64 20 eader is passed
02A270: 74 6F 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 74 to...... t
02A280: 68 65 20 75 73 65 72 20 73 6F 20 74 68 61 74 20 he user so that
02A290: 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 63 61 6E 20 information can
02A2A0: 62 65 20 73 74 6F 72 65 64 20 69 6E 20 69 74 2E be stored in it.
02A2B0: 20 54 68 65 20 75 73 65 72 20 20 6D 61 79 20 20 The user may
02A2C0: 77 72 69 74 65 0D 0A 20 20 20 20 20 20 20 74 6F write.. to
02A2D0: 20 74 68 65 20 66 69 6C 65 20 74 79 70 65 2C 20 the file type,
02A2E0: 6C 6F 67 69 63 61 6C 20 6C 65 6E 67 74 68 2C 20 logical length,
02A2F0: 65 6E 74 72 79 20 70 6F 69 6E 74 20 61 6E 64 20 entry point and
02A300: 61 6C 6C 20 75 73 65 72 20 66 69 65 6C 64 73 2E all user fields.
02A310: 20 54 68 65 0D 0A 20 20 20 20 20 20 20 75 73 65 The.. use
02A320: 72 20 69 73 20 6E 6F 74 20 61 6C 6C 6F 77 65 64 r is not allowed
02A330: 20 74 6F 20 77 72 69 74 65 20 74 6F 20 61 6E 79 to write to any
02A340: 20 6F 74 68 65 72 20 66 69 65 6C 64 20 20 69 6E other field in
02A350: 20 20 74 68 65 20 20 68 65 61 64 65 72 2E 20 20 the header.
02A360: 54 68 65 0D 0A 20 20 20 20 20 20 20 75 73 65 72 The.. user
02A370: 20 73 65 74 61 62 6C 65 20 66 69 65 6C 64 73 20 setable fields
02A380: 61 72 65 20 61 6C 6C 20 7A 65 72 6F 69 7A 65 64 are all zeroized
02A390: 20 69 6E 69 74 69 61 6C 6C 79 2C 20 77 69 74 68 initially, with
02A3A0: 20 74 68 65 20 65 78 63 65 70 74 69 6F 6E 20 20 the exception
02A3B0: 6F 66 0D 0A 20 20 20 20 20 20 20 74 68 65 20 66 of.. the f
02A3C0: 69 6C 65 20 74 79 70 65 20 77 68 69 63 68 20 69 ile type which i
02A3D0: 73 20 20 73 65 74 20 20 74 6F 20 20 75 6E 70 72 s set to unpr
02A3E0: 6F 74 65 63 74 65 64 20 20 41 53 43 49 49 20 20 otected ASCII
02A3F0: 76 65 72 73 69 6F 6E 20 20 31 2E 20 20 28 53 65 version 1. (Se
02A400: 65 0D 0A 20 20 20 20 20 20 20 73 65 63 74 69 6F e.. sectio
02A410: 6E 20 38 2E 34 20 66 6F 72 20 61 20 64 65 73 63 n 8.4 for a desc
02A420: 72 69 70 74 69 6F 6E 20 6F 66 20 74 68 65 20 68 ription of the h
02A430: 65 61 64 65 72 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 eader).......
02A440: 20 20 20 20 54 68 65 20 66 69 6C 65 6E 61 6D 65 The filename
02A450: 20 70 61 73 73 65 64 20 69 73 20 63 6F 70 69 65 passed is copie
02A460: 64 20 69 6E 74 6F 20 74 68 65 20 77 72 69 74 65 d into the write
02A470: 20 73 74 72 65 61 6D 20 64 65 73 63 72 69 70 74 stream descript
02A480: 6F 72 2E 20 49 66 20 20 69 74 0D 0A 20 20 20 20 or. If it..
02A490: 20 20 20 69 73 20 6C 6F 6E 67 65 72 20 20 74 68 is longer th
02A4A0: 61 6E 20 20 31 36 20 20 63 68 61 72 61 63 74 65 an 16 characte
02A4B0: 72 73 20 20 20 74 68 65 6E 20 20 20 69 74 20 20 rs then it
02A4C0: 20 69 73 20 20 20 74 72 75 6E 63 61 74 65 64 20 is truncated
02A4D0: 20 20 74 6F 20 20 20 31 36 0D 0A 20 20 20 20 20 to 16..
02A4E0: 20 20 63 68 61 72 61 63 74 65 72 73 2E 20 49 66 characters. If
02A4F0: 20 69 74 20 69 73 20 73 68 6F 72 74 65 72 20 20 it is shorter
02A500: 20 74 68 61 6E 20 20 20 31 36 20 20 20 63 68 61 than 16 cha
02A510: 72 61 63 74 65 72 73 20 20 20 74 68 65 6E 20 20 racters then
02A520: 20 69 74 20 20 20 69 73 0D 0A 20 20 20 20 20 20 it is..
02A530: 20 70 61 64 64 65 64 20 77 69 74 68 20 6E 75 6C padded with nul
02A540: 6C 73 20 28 23 30 30 29 20 20 74 6F 20 20 31 36 ls (#00) to 16
02A550: 20 20 20 63 68 61 72 61 63 74 65 72 73 2E 20 20 characters.
02A560: 20 57 68 69 6C 65 20 20 20 74 68 65 20 20 20 66 While the f
02A570: 69 6C 65 6E 61 6D 65 0D 0A 20 20 20 20 20 20 20 ilename..
02A580: 6D 61 79 20 63 6F 6E 74 61 69 6E 20 61 6E 79 20 may contain any
02A590: 63 68 61 72 61 63 74 65 72 2C 20 69 74 20 20 69 character, it i
02A5A0: 73 20 20 20 62 65 73 74 20 20 20 74 6F 20 20 20 s best to
02A5B0: 61 76 6F 69 64 20 20 20 6E 75 6C 6C 73 2E 20 20 avoid nulls.
02A5C0: 20 4C 6F 77 65 72 0D 0A 20 20 20 20 20 20 20 63 Lower.. c
02A5D0: 61 73 65 20 41 53 43 49 49 20 20 6C 65 74 74 65 ase ASCII lette
02A5E0: 72 73 20 20 28 63 68 61 72 61 63 74 65 72 73 20 rs (characters
02A5F0: 20 23 36 31 2E 2E 23 37 41 29 20 20 61 72 65 20 #61..#7A) are
02A600: 20 63 6F 6E 76 65 72 74 65 64 20 20 74 6F 20 20 converted to
02A610: 74 68 65 69 72 0D 0A 20 20 20 20 20 20 20 75 70 their.. up
02A620: 70 65 72 20 20 63 61 73 65 20 20 65 71 75 69 76 per case equiv
02A630: 61 6C 65 6E 74 73 20 20 28 63 68 61 72 61 63 74 alents (charact
02A640: 65 72 73 20 20 23 34 31 2E 2E 23 35 41 29 2E 20 ers #41..#5A).
02A650: 20 54 68 65 20 20 66 69 6C 65 6E 61 6D 65 20 20 The filename
02A660: 20 6D 61 79 0D 0A 20 20 20 20 20 20 20 6C 69 65 may.. lie
02A670: 20 61 6E 79 77 68 65 72 65 20 69 6E 20 52 41 4D anywhere in RAM
02A680: 2C 20 65 76 65 6E 20 75 6E 64 65 72 6E 65 61 74 , even underneat
02A690: 68 20 61 20 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 0D 0A h a ROM.........
02A6A0: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
02A6B0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
02A6C0: 20 20 20 20 43 41 53 20 49 4E 20 4F 50 45 4E 0D CAS IN OPEN.
02A6D0: 0A 20 20 20 20 20 20 20 43 41 53 20 4F 55 54 20 . CAS OUT
02A6E0: 41 42 41 4E 44 4F 4E 0D 0A 20 20 20 20 20 20 20 ABANDON..
02A6F0: 43 41 53 20 4F 55 54 20 43 48 41 52 0D 0A 20 20 CAS OUT CHAR..
02A700: 20 20 20 20 20 43 41 53 20 4F 55 54 20 43 4C 4F CAS OUT CLO
02A710: 53 45 0D 0A 20 20 20 20 20 20 20 43 41 53 20 4F SE.. CAS O
02A720: 55 54 20 44 49 52 45 43 54 0D 0A 20 20 20 20 20 UT DIRECT..
02A730: 20 20 43 41 53 20 4F 55 54 20 4F 50 45 4E 20 28 CAS OUT OPEN (
02A740: 44 49 53 43 29 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D DISC)...........
02A750: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02A760: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02A770: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
02A780: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
02A790: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
02A7A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02A7B0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
02A7C0: 31 35 2E 31 34 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.147..........
02A7D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 33 32 3A 20 .... 132:
02A7E0: 43 41 53 20 4F 55 54 20 4F 50 45 4E 20 28 44 49 CAS OUT OPEN (DI
02A7F0: 53 43 29 20 20 20 20 20 20 20 20 20 20 20 20 20 SC)
02A800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02A810: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 43 38 #BC8
02A820: 43 0D 0A 0D 0A 20 20 20 20 20 20 20 4F 70 65 6E C.... Open
02A830: 20 61 20 66 69 6C 65 20 66 6F 72 20 6F 75 74 70 a file for outp
02A840: 75 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 ut..... Ac
02A850: 74 69 6F 6E 3A 0D 0A 20 20 20 20 20 20 20 53 65 tion:.. Se
02A860: 74 20 75 70 20 74 68 65 20 77 72 69 74 65 20 73 t up the write s
02A870: 74 72 65 61 6D 20 66 6F 72 20 6F 75 74 70 75 74 tream for output
02A880: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
02A890: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
02A8A0: 0A 20 20 20 20 20 20 20 42 20 63 6F 6E 74 61 69 . B contai
02A8B0: 6E 73 20 74 68 65 20 6C 65 6E 67 74 68 20 6F 66 ns the length of
02A8C0: 20 74 68 65 20 66 69 6C 65 6E 61 6D 65 2E 0D 0A the filename...
02A8D0: 20 20 20 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 HL contai
02A8E0: 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F ns the address o
02A8F0: 66 20 74 68 65 20 66 69 6C 65 6E 61 6D 65 2E 0D f the filename..
02A900: 0A 20 20 20 20 20 20 20 44 45 20 63 6F 6E 74 61 . DE conta
02A910: 69 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 ins the address
02A920: 6F 66 20 61 20 32 4B 20 62 75 66 66 65 72 20 74 of a 2K buffer t
02A930: 6F 20 75 73 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 o use.....
02A940: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
02A950: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 :.... If t
02A960: 68 65 20 66 69 6C 65 20 77 61 73 20 6F 70 65 6E he file was open
02A970: 65 64 20 4F 4B 3A 0D 0A 20 20 20 20 20 20 20 20 ed OK:..
02A980: 20 20 20 20 20 20 20 20 43 61 72 72 79 20 74 72 Carry tr
02A990: 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ue...
02A9A0: 20 20 20 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E Zero false.
02A9B0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02A9C0: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 HL contains th
02A9D0: 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 e address of the
02A9E0: 20 62 75 66 66 65 72 20 63 6F 6E 74 61 69 6E 69 buffer containi
02A9F0: 6E 67 20 74 68 65 20 68 65 61 64 65 72 2E 0D 0A ng the header...
02AA00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AA10: 41 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 A corrupt...
02AA20: 20 20 20 49 66 20 74 68 65 20 73 74 72 65 61 6D If the stream
02AA30: 20 69 73 20 6F 70 65 6E 20 61 6C 72 65 61 64 79 is open already
02AA40: 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 :..
02AA50: 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D Carry false..
02AA60: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02AA70: 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 Zero false...
02AA80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 A
02AA90: 63 6F 6E 74 61 69 6E 73 20 61 6E 20 65 72 72 6F contains an erro
02AAA0: 72 20 6E 75 6D 62 65 72 20 28 23 30 45 29 2E 0D r number (#0E)..
02AAB0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02AAC0: 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 HL corrupt...
02AAD0: 20 20 20 20 20 49 66 20 74 68 65 20 6F 70 65 6E If the open
02AAE0: 20 66 61 69 6C 65 64 20 66 6F 72 20 61 6E 79 20 failed for any
02AAF0: 6F 74 68 65 72 20 72 65 61 73 6F 6E 3A 0D 0A 20 other reason:..
02AB00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
02AB10: 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 arry false...
02AB20: 20 20 20 20 20 20 20 20 20 20 20 20 20 5A 65 72 Zer
02AB30: 6F 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 o true...
02AB40: 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 A conta
02AB50: 69 6E 73 20 61 20 65 72 72 6F 72 20 6E 75 6D 62 ins a error numb
02AB60: 65 72 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 er...
02AB70: 20 20 20 20 20 48 4C 20 63 6F 72 72 75 70 74 2E HL corrupt.
02AB80: 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 79 73 3A .. Always:
02AB90: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02ABA0: 20 20 42 43 2C 44 45 2C 49 58 20 61 6E 64 20 6F BC,DE,IX and o
02ABB0: 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 ther flags corru
02ABC0: 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 pt...
02ABD0: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
02ABE0: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
02ABF0: 65 64 2E 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ed... Note
02AC00: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 68 65 s:.... Whe
02AC10: 6E 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 n characters are
02AC20: 20 6F 75 74 70 75 74 20 74 6F 20 74 68 65 20 66 output to the f
02AC30: 69 6C 65 20 75 73 69 6E 67 20 43 41 53 20 4F 55 ile using CAS OU
02AC40: 54 20 43 48 41 52 20 61 20 32 4B 20 20 62 75 66 T CHAR a 2K buf
02AC50: 66 65 72 0D 0A 20 20 20 20 20 20 20 73 75 70 70 fer.. supp
02AC60: 6C 69 65 64 20 69 73 20 75 73 65 64 20 62 79 20 lied is used by
02AC70: 41 4D 53 44 4F 53 20 74 6F 20 62 75 66 66 65 72 AMSDOS to buffer
02AC80: 20 74 68 65 20 6F 75 74 70 75 74 2E 20 49 74 20 the output. It
02AC90: 77 69 6C 6C 20 72 65 6D 61 69 6E 20 69 6E 20 75 will remain in u
02ACA0: 73 65 0D 0A 20 20 20 20 20 20 20 75 6E 74 69 6C se.. until
02ACB0: 20 74 68 65 20 66 69 6C 65 20 69 73 20 63 6C 6F the file is clo
02ACC0: 73 65 64 20 62 79 20 63 61 6C 6C 69 6E 67 20 65 sed by calling e
02ACD0: 69 74 68 65 72 20 43 41 53 20 4F 55 54 20 43 4C ither CAS OUT CL
02ACE0: 4F 53 45 20 20 6F 72 20 20 43 41 53 20 20 4F 55 OSE or CAS OU
02ACF0: 54 0D 0A 20 20 20 20 20 20 20 41 42 41 4E 44 4F T.. ABANDO
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: 4E 2E 20 54 68 65 20 62 75 66 66 65 72 20 6D 61 N. The buffer ma
02AE10: 79 20 72 65 73 69 64 65 20 61 6E 79 77 68 65 72 y reside anywher
02AE20: 65 20 69 6E 20 6D 65 6D 6F 72 79 20 2D 20 65 76 e in memory - ev
02AE30: 65 6E 20 75 6E 64 65 72 6E 65 61 74 68 20 20 61 en underneath a
02AE40: 0D 0A 20 20 20 20 20 20 20 52 4F 4D 2E 0D 0A 0D .. ROM....
02AE50: 0A 20 20 20 20 20 20 20 54 68 65 20 66 69 6C 65 . The file
02AE60: 6E 61 6D 65 20 70 61 73 73 65 64 20 6D 75 73 74 name passed must
02AE70: 20 63 6F 6E 66 6F 72 6D 20 74 6F 20 41 4D 53 44 conform to AMSD
02AE80: 4F 53 20 63 6F 6E 76 65 6E 74 69 6F 6E 73 20 20 OS conventions
02AE90: 77 69 74 68 20 20 6E 6F 20 20 77 69 6C 64 0D 0A with no wild..
02AEA0: 20 20 20 20 20 20 20 63 61 72 64 73 2E 20 49 74 cards. It
02AEB0: 20 69 73 20 63 6F 70 69 65 64 20 69 6E 74 6F 20 is copied into
02AEC0: 74 68 65 20 77 72 69 74 65 20 73 74 72 65 61 6D the write stream
02AED0: 20 68 65 61 64 65 72 2E 20 54 68 65 20 66 69 6C header. The fil
02AEE0: 65 6E 61 6D 65 20 6D 79 20 20 6C 69 65 0D 0A 20 ename my lie..
02AEF0: 20 20 20 20 20 20 61 6E 79 77 68 65 72 65 20 69 anywhere i
02AF00: 6E 20 52 41 4D 20 2D 20 65 76 65 6E 20 75 6E 64 n RAM - even und
02AF10: 65 72 6E 65 61 74 68 20 61 20 52 4F 4D 2E 0D 0A erneath a ROM...
02AF20: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 69 6C .. The fil
02AF30: 65 20 69 73 20 6F 70 65 6E 65 64 20 77 69 74 68 e is opened with
02AF40: 20 61 20 74 79 70 65 20 70 61 72 74 20 6F 66 20 a type part of
02AF50: 27 2E 24 24 24 27 20 72 65 67 61 72 64 6C 65 73 '.$$$' regardles
02AF60: 73 20 6F 66 20 20 74 68 65 20 20 74 79 70 65 0D s of the type.
02AF70: 0A 20 20 20 20 20 20 20 70 61 72 74 20 73 75 70 . part sup
02AF80: 70 6C 69 65 64 2E 20 41 6E 79 20 65 78 69 73 74 plied. Any exist
02AF90: 69 6E 67 20 66 69 6C 65 20 77 69 74 68 20 74 68 ing file with th
02AFA0: 65 20 73 61 6D 65 20 6E 61 6D 65 20 61 6E 64 20 e same name and
02AFB0: 74 79 70 65 20 20 70 61 72 74 20 20 6F 66 0D 0A type part of..
02AFC0: 20 20 20 20 20 20 20 27 2E 24 24 24 27 20 69 73 '.$$$' is
02AFD0: 20 64 65 6C 65 74 65 64 2E 20 54 68 65 20 66 69 deleted. The fi
02AFE0: 6C 65 20 69 73 20 72 65 6E 61 6D 65 64 20 74 6F le is renamed to
02AFF0: 20 69 74 73 20 73 75 70 70 6C 69 65 64 20 6E 61 its supplied na
02B000: 6D 65 20 20 77 68 65 6E 20 20 43 41 53 0D 0A 20 me when CAS..
02B010: 20 20 20 20 20 20 4F 55 54 20 43 4C 4F 53 45 20 OUT CLOSE
02B020: 69 73 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A 20 20 is called.....
02B030: 20 20 20 20 20 57 68 65 6E 20 74 68 65 20 73 74 When the st
02B040: 72 65 61 6D 20 69 73 20 6F 70 65 6E 65 64 20 61 ream is opened a
02B050: 61 20 68 65 61 64 65 72 20 69 73 20 73 65 74 20 a header is set
02B060: 75 70 2E 20 4D 61 6E 79 20 6F 66 20 74 68 65 20 up. Many of the
02B070: 20 66 69 65 6C 64 73 20 20 69 6E 0D 0A 20 20 20 fields in..
02B080: 20 20 20 20 74 68 65 20 68 65 61 64 65 72 20 61 the header a
02B090: 72 65 20 73 65 74 20 62 79 20 41 4D 53 44 4F 53 re set by AMSDOS
02B0A0: 20 62 75 74 20 74 68 65 20 72 65 6D 61 69 6E 64 but the remaind
02B0B0: 65 72 20 61 72 65 20 61 76 61 69 6C 61 62 6C 65 er are available
02B0C0: 20 20 66 6F 72 20 20 75 73 65 0D 0A 20 20 20 20 for use..
02B0D0: 20 20 20 62 79 20 74 68 65 20 75 73 65 72 2E 20 by the user.
02B0E0: 54 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 The address of t
02B0F0: 68 69 73 20 68 65 61 64 65 72 20 69 73 20 70 61 his header is pa
02B100: 73 73 65 64 20 74 6F 20 74 68 65 20 75 73 65 72 ssed to the user
02B110: 20 20 73 6F 20 20 74 68 65 0D 0A 20 20 20 20 20 so the..
02B120: 20 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 63 61 information ca
02B130: 6E 20 62 65 20 73 74 6F 72 65 64 20 69 6E 20 69 n be stored in i
02B140: 74 2E 20 54 68 65 20 75 73 65 72 20 6D 61 79 20 t. The user may
02B150: 77 72 69 74 65 20 74 6F 20 74 68 65 20 66 69 6C write to the fil
02B160: 65 20 20 74 79 70 65 2C 0D 0A 20 20 20 20 20 20 e type,..
02B170: 20 6C 6F 67 69 63 61 6C 20 6C 65 6E 67 74 68 2C logical length,
02B180: 20 65 6E 74 72 79 20 70 6F 69 6E 74 20 61 6E 64 entry point and
02B190: 20 61 6C 6C 20 20 6F 74 68 65 72 20 20 66 69 65 all other fie
02B1A0: 6C 64 73 2E 20 20 54 68 65 20 20 75 73 65 20 20 lds. The use
02B1B0: 69 73 20 20 6E 6F 74 0D 0A 20 20 20 20 20 20 20 is not..
02B1C0: 61 6C 6C 6F 77 65 64 20 74 6F 20 77 72 69 74 65 allowed to write
02B1D0: 20 74 6F 20 61 6E 79 20 6F 74 68 65 72 20 66 69 to any other fi
02B1E0: 65 6C 64 20 6F 66 20 74 68 65 20 68 65 61 64 65 eld of the heade
02B1F0: 72 2E 20 54 68 65 20 20 75 73 65 72 20 20 73 65 r. The user se
02B200: 74 61 62 6C 65 0D 0A 20 20 20 20 20 20 20 66 69 table.. fi
02B210: 65 6C 64 73 20 61 72 65 20 61 6C 6C 20 7A 65 72 elds are all zer
02B220: 6F 69 7A 65 64 20 69 6E 69 74 69 61 6C 6C 79 2C oized initially,
02B230: 20 77 69 74 68 20 74 68 65 20 65 78 63 65 70 74 with the except
02B240: 69 6F 6E 20 6F 66 20 74 68 65 20 66 69 6C 65 20 ion of the file
02B250: 74 79 70 65 0D 0A 20 20 20 20 20 20 20 77 68 69 type.. whi
02B260: 63 68 20 69 73 20 73 65 74 20 74 6F 20 75 6E 70 ch is set to unp
02B270: 72 6F 74 65 63 74 65 64 20 41 53 43 49 49 20 76 rotected ASCII v
02B280: 65 72 73 69 6F 6E 20 31 2E 0D 0A 0D 0A 20 20 20 ersion 1.....
02B290: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
02B2A0: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
02B2B0: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
02B2C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
02B2D0: 61 67 65 20 31 35 2E 31 34 38 0D 0A 0D 0A 0D 0A age 15.148......
02B2E0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ........ T
02B2F0: 68 65 20 68 65 61 64 65 72 20 74 79 70 65 20 66 he header type f
02B300: 69 65 6C 64 20 6D 75 73 74 20 62 65 20 77 72 69 ield must be wri
02B310: 74 74 65 6E 20 74 6F 20 62 65 66 6F 72 65 20 43 tten to before C
02B320: 41 53 20 4F 55 54 20 20 43 48 41 52 20 20 6F 72 AS OUT CHAR or
02B330: 20 20 43 41 53 0D 0A 20 20 20 20 20 20 20 4F 55 CAS.. OU
02B340: 54 20 44 49 52 45 43 54 20 69 73 20 63 61 6C 6C T DIRECT is call
02B350: 65 64 2E 20 54 68 65 20 74 79 70 65 20 66 69 65 ed. The type fie
02B360: 6C 64 20 6D 75 73 74 20 6E 6F 74 20 62 65 20 61 ld must not be a
02B370: 6C 74 65 72 65 64 20 61 66 74 65 72 20 63 61 6C ltered after cal
02B380: 6C 69 6E 67 0D 0A 20 20 20 20 20 20 20 65 69 74 ling.. eit
02B390: 68 65 72 20 6F 66 20 74 68 65 73 65 20 72 6F 75 her of these rou
02B3A0: 74 69 6E 65 73 2E 20 49 66 20 74 68 65 20 66 69 tines. If the fi
02B3B0: 6C 65 20 74 79 70 65 20 69 73 20 73 65 74 20 74 le type is set t
02B3C0: 6F 20 20 61 6E 79 20 20 74 79 70 65 20 20 6F 74 o any type ot
02B3D0: 68 65 72 0D 0A 20 20 20 20 20 20 20 74 68 61 6E her.. than
02B3E0: 20 75 6E 70 72 6F 74 65 63 74 65 64 20 41 53 43 unprotected ASC
02B3F0: 49 49 20 74 68 65 6E 20 73 70 61 63 65 20 77 69 II then space wi
02B400: 6C 6C 20 62 65 20 20 70 72 65 73 65 72 76 65 64 ll be preserved
02B410: 20 20 66 6F 72 20 20 74 68 65 20 20 68 65 61 64 for the head
02B420: 65 72 0D 0A 20 20 20 20 20 20 20 77 68 69 63 68 er.. which
02B430: 20 77 68 65 6E 20 74 68 65 20 66 69 6C 65 20 69 when the file i
02B440: 73 20 63 6C 6F 73 65 64 2E 0D 0A 0D 0A 0D 0A 0D s closed........
02B450: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
02B460: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
02B470: 20 20 20 20 20 43 41 53 20 49 4E 20 4F 50 45 4E CAS IN OPEN
02B480: 20 28 44 49 53 43 29 0D 0A 20 20 20 20 20 20 20 (DISC)..
02B490: 43 41 53 20 4F 55 54 20 41 42 41 4E 44 4F 4E 20 CAS OUT ABANDON
02B4A0: 28 44 49 53 43 29 0D 0A 20 20 20 20 20 20 20 43 (DISC).. C
02B4B0: 41 53 20 4F 55 54 20 43 48 41 52 20 28 44 49 53 AS OUT CHAR (DIS
02B4C0: 43 29 0D 0A 20 20 20 20 20 20 20 43 41 53 20 4F C).. CAS O
02B4D0: 55 54 20 43 4C 4F 53 45 20 28 44 49 53 43 29 0D UT CLOSE (DISC).
02B4E0: 0A 20 20 20 20 20 20 20 43 41 53 20 4F 55 54 20 . CAS OUT
02B4F0: 44 49 52 45 43 54 20 28 44 49 53 43 29 0D 0A 20 DIRECT (DISC)..
02B500: 20 20 20 20 20 20 43 41 53 20 4F 55 54 20 4F 50 CAS OUT OP
02B510: 45 4E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A EN..............
02B520: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
02B530: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
02B540: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
02B550: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
02B560: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
02B570: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
02B580: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
02B590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02B5A0: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
02B5B0: 35 2E 31 34 39 0D 0A 1A 20 31 35 2E 31 35 30 0D 5.149... 15.150.
02B5C0: 0A 1A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02B5D0: 20 20 20 20 23 42 43 38 33 0D 0A 0D 0A 20 20 20 #BC83....
02B5E0: 20 20 20 20 52 65 61 64 20 74 68 65 20 69 6E 70 Read the inp
02B5F0: 75 74 20 66 69 6C 65 20 69 6E 74 6F 20 73 74 6F ut file into sto
02B600: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
02B610: 20 20 20 31 33 33 3A 20 43 41 53 20 4F 55 54 20 133: CAS OUT
02B620: 43 4C 4F 53 45 20 20 20 20 20 20 20 20 20 20 20 CLOSE
02B630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02B640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02B650: 20 20 20 20 23 42 43 38 46 0D 0A 0D 0A 20 20 20 #BC8F....
02B660: 20 20 20 20 43 6C 6F 73 65 20 74 68 65 20 6F 75 Close the ou
02B670: 74 70 75 74 20 66 69 6C 65 20 70 72 6F 70 65 72 tput file proper
02B680: 6C 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 ly..... Ac
02B690: 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 tion:....
02B6A0: 4D 61 72 6B 20 74 68 65 20 77 72 69 74 65 20 73 Mark the write s
02B6B0: 74 72 65 61 6D 20 61 73 20 63 6C 6F 73 65 64 20 tream as closed
02B6C0: 61 6E 64 20 77 72 69 74 65 20 74 68 65 20 6C 61 and write the la
02B6D0: 73 74 20 62 75 66 66 65 72 20 61 72 65 61 20 6F st buffer area o
02B6E0: 66 20 64 61 74 61 0D 0A 0D 0A 20 20 20 20 20 20 f data....
02B6F0: 20 74 6F 20 74 61 70 65 2E 0D 0A 0D 0A 20 20 20 to tape.....
02B700: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
02B710: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
02B720: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A No conditions...
02B730: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
02B740: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
02B750: 20 20 20 20 49 66 20 74 68 65 20 73 74 72 65 61 If the strea
02B760: 6D 20 77 61 73 20 63 6C 6F 73 65 64 20 4F 4B 3A m was closed OK:
02B770: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
02B780: 20 20 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D Carry true..
02B790: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02B7A0: 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 Zero false...
02B7B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 A
02B7C0: 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 20 20 corrupt.....
02B7D0: 20 20 20 49 66 20 74 68 65 20 73 74 72 65 61 6D If the stream
02B7E0: 20 69 73 20 6E 6F 74 20 6F 70 65 6E 3A 0D 0A 0D is not open:...
02B7F0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02B800: 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 Carry false...
02B810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5A Z
02B820: 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 ero false...
02B830: 20 20 20 20 20 20 20 20 20 20 20 20 49 6E 20 56 In V
02B840: 31 2E 31 3A 20 41 20 63 6F 6E 74 61 69 6E 73 20 1.1: A contains
02B850: 61 6E 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 20 an error number
02B860: 28 23 30 45 29 2E 0D 0A 20 20 20 20 20 20 20 20 (#0E)...
02B870: 20 20 20 20 20 20 20 20 49 6E 20 56 31 2E 30 3A In V1.0:
02B880: 20 41 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 A corrupt...
02B890: 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 20 20 20 Always:..
02B8A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 43 2C BC,
02B8B0: 20 44 45 2C 20 48 4C 2C 20 49 58 20 61 6E 64 20 DE, HL, IX and
02B8C0: 6F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 other flags corr
02B8D0: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 upt...
02B8E0: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
02B8F0: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
02B900: 76 65 64 2E 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ved... Not
02B910: 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 es:.... Th
02B920: 69 73 20 72 6F 75 74 69 6E 65 20 63 61 6E 20 72 is routine can r
02B930: 65 74 75 72 6E 20 74 77 6F 20 65 72 72 6F 72 20 eturn two error
02B940: 6E 75 6D 62 65 72 73 3A 0D 0A 0D 0A 20 20 20 20 numbers:....
02B950: 20 20 20 20 20 20 20 20 20 20 20 20 23 30 30 3A #00:
02B960: 20 20 20 20 20 20 54 68 65 20 75 73 65 72 20 68 The user h
02B970: 69 74 20 65 73 63 61 70 65 2E 0D 0A 20 20 20 20 it escape...
02B980: 20 20 20 20 20 20 20 20 20 20 20 20 23 30 45 3A #0E:
02B990: 20 20 20 20 20 20 54 68 65 20 73 74 72 65 61 6D The stream
02B9A0: 20 69 73 20 6E 6F 74 20 6F 70 65 6E 2E 0D 0A 0D is not open....
02B9B0: 0A 20 20 20 20 20 20 20 49 74 20 69 73 20 6E 65 . It is ne
02B9C0: 63 65 73 73 61 72 79 20 74 6F 20 63 61 6C 6C 20 cessary to call
02B9D0: 74 68 69 73 20 72 6F 75 74 69 6E 65 20 61 66 74 this routine aft
02B9E0: 65 72 20 75 73 69 6E 67 20 43 41 53 20 4F 55 54 er using CAS OUT
02B9F0: 20 43 48 41 52 20 20 6F 72 20 20 43 41 53 0D 0A CHAR or CAS..
02BA00: 20 20 20 20 20 20 20 4F 55 54 20 44 49 52 45 43 OUT DIREC
02BA10: 54 20 74 6F 20 63 61 75 73 65 20 74 68 65 20 6C T to cause the l
02BA20: 61 73 74 20 62 6C 6F 63 6B 20 6F 66 20 64 61 74 ast block of dat
02BA30: 61 20 74 6F 20 62 65 20 77 72 69 74 74 65 6E 20 a to be written
02BA40: 74 6F 20 74 68 65 20 20 74 61 70 65 2E 0D 0A 20 to the tape...
02BA50: 20 20 20 20 20 20 49 66 20 74 68 65 20 62 6C 6F If the blo
02BA60: 63 6B 20 69 73 20 7A 65 72 6F 20 62 79 74 65 73 ck is zero bytes
02BA70: 20 6C 6F 6E 67 20 28 6E 6F 74 68 69 6E 67 20 68 long (nothing h
02BA80: 61 73 20 62 65 65 6E 20 77 72 69 74 74 65 6E 20 as been written
02BA90: 74 6F 20 74 68 65 20 66 69 6C 65 29 0D 0A 20 20 to the file)..
02BAA0: 20 20 20 20 20 74 68 65 6E 20 6E 6F 74 68 69 6E then nothin
02BAB0: 67 20 69 73 20 77 72 69 74 74 65 6E 20 74 6F 20 g is written to
02BAC0: 74 61 70 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 tape.....
02BAD0: 49 66 20 77 72 69 74 69 6E 67 20 69 73 20 74 6F If writing is to
02BAE0: 20 62 65 20 61 62 61 6E 64 6F 6E 65 64 20 74 68 be abandoned th
02BAF0: 65 20 43 41 53 20 4F 55 54 20 4F 50 45 4E 20 20 e CAS OUT OPEN
02BB00: 73 68 6F 75 6C 64 20 20 62 65 20 20 63 61 6C 6C should be call
02BB10: 65 64 20 20 61 73 0D 0A 20 20 20 20 20 20 20 74 ed as.. t
02BB20: 68 69 73 20 64 6F 65 73 20 6E 6F 74 20 77 72 69 his does not wri
02BB30: 74 65 20 74 68 65 20 6C 61 73 74 20 62 6C 6F 63 te the last bloc
02BB40: 6B 20 6F 66 20 64 61 74 61 20 74 6F 20 74 68 65 k of data to the
02BB50: 20 74 61 70 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 tape.....
02BB60: 20 49 66 20 74 68 65 20 75 73 65 72 20 68 69 74 If the user hit
02BB70: 73 20 65 73 63 61 70 65 20 64 75 72 69 6E 67 20 s escape during
02BB80: 74 68 65 20 77 72 69 74 69 6E 67 20 6F 66 20 74 the writing of t
02BB90: 68 65 20 6C 61 73 74 20 62 6C 6F 63 6B 20 74 68 he last block th
02BBA0: 65 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 en the..
02BBB0: 66 69 6C 65 20 69 73 20 6C 65 66 74 20 6F 70 65 file is left ope
02BBC0: 6E 20 61 6E 64 20 69 73 20 6E 6F 74 20 63 6C 6F n and is not clo
02BBD0: 73 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 sed..... T
02BBE0: 68 65 20 75 73 65 72 20 6D 61 79 20 72 65 63 6C he user may recl
02BBF0: 61 69 6D 20 74 68 65 20 62 75 66 66 65 72 20 70 aim the buffer p
02BC00: 61 73 73 65 64 20 74 6F 20 43 41 53 20 4F 55 54 assed to CAS OUT
02BC10: 20 4F 50 45 4E 20 20 61 66 74 65 72 20 20 63 61 OPEN after ca
02BC20: 6C 6C 69 6E 67 0D 0A 20 20 20 20 20 20 20 74 68 lling.. th
02BC30: 69 73 20 72 6F 75 74 69 6E 65 2E 0D 0A 0D 0A 20 is routine.....
02BC40: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
02BC50: 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tries:....
02BC60: 20 43 41 53 20 49 4E 20 43 4C 4F 53 45 0D 0A 20 CAS IN CLOSE..
02BC70: 20 20 20 20 20 20 43 41 53 20 4F 55 54 20 41 42 CAS OUT AB
02BC80: 41 4E 44 4F 4E 0D 0A 20 20 20 20 20 20 20 43 41 ANDON.. CA
02BC90: 53 20 4F 55 54 20 43 4C 4F 53 45 20 28 44 49 53 S OUT CLOSE (DIS
02BCA0: 43 29 0D 0A 20 20 20 20 20 20 20 43 41 53 20 4F C).. CAS O
02BCB0: 55 54 20 4F 50 45 4E 0D 0A 0D 0A 20 20 20 20 20 UT OPEN....
02BCC0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
02BCD0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
02BCE0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
02BCF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
02BD00: 65 20 31 35 2E 31 35 30 0D 0A 0D 0A 0D 0A 0D 0A e 15.150........
02BD10: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 33 33 ...... 133
02BD20: 3A 20 43 41 53 20 4F 55 54 20 43 4C 4F 53 45 20 : CAS OUT CLOSE
02BD30: 28 44 49 53 43 29 20 20 20 20 20 20 20 20 20 20 (DISC)
02BD40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02BD50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
02BD60: 43 38 46 0D 0A 0D 0A 20 20 20 20 20 20 20 43 6C C8F.... Cl
02BD70: 6F 73 65 20 74 68 65 20 6F 75 74 70 75 74 20 66 ose the output f
02BD80: 69 6C 65 20 70 72 6F 70 65 72 6C 79 2E 0D 0A 0D ile properly....
02BD90: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
02BDA0: 0A 0D 0A 20 20 20 20 20 20 20 4D 61 72 6B 20 74 ... Mark t
02BDB0: 68 65 20 77 72 69 74 65 20 73 74 72 65 61 6D 20 he write stream
02BDC0: 61 73 20 63 6C 6F 73 65 64 20 61 6E 64 20 67 69 as closed and gi
02BDD0: 76 65 20 69 74 20 69 74 73 20 63 6F 72 72 65 63 ve it its correc
02BDE0: 74 20 6E 61 6D 65 2E 0D 0A 0D 0A 20 20 20 20 20 t name.....
02BDF0: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
02BE00: 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ns:.... No
02BE10: 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A conditions.....
02BE20: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
02BE30: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
02BE40: 20 20 20 20 49 66 20 74 68 65 20 73 74 72 65 61 If the strea
02BE50: 6D 20 77 61 73 20 63 6C 6F 73 65 64 20 4F 4B 3A m was closed OK:
02BE60: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ......
02BE70: 20 20 20 20 20 20 43 61 72 72 79 20 74 72 75 65 Carry true
02BE80: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
02BE90: 20 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0A Zero false...
02BEA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02BEB0: 41 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 0D 0A A corrupt.......
02BEC0: 20 20 20 20 20 20 20 49 66 20 74 68 65 20 73 74 If the st
02BED0: 72 65 61 6D 20 69 73 20 6E 6F 74 20 6F 70 65 6E ream is not open
02BEE0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 :......
02BEF0: 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C Carry fal
02BF00: 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 se...
02BF10: 20 20 20 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E Zero false.
02BF20: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02BF30: 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 A contains an
02BF40: 65 72 72 6F 72 20 6E 75 6D 62 65 72 20 28 23 30 error number (#0
02BF50: 45 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 E).......
02BF60: 49 66 20 74 68 65 20 63 6C 6F 73 65 20 66 61 69 If the close fai
02BF70: 6C 65 64 20 66 6F 72 20 61 6E 79 20 6F 74 68 65 led for any othe
02BF80: 72 20 72 65 61 73 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 r reason:......
02BF90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
02BFA0: 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 arry false...
02BFB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 5A 65 72 Zer
02BFC0: 6F 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 o true...
02BFD0: 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 A conta
02BFE0: 69 6E 73 20 61 6E 20 65 72 72 6F 72 20 6E 75 6D ins an error num
02BFF0: 62 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ber.......
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: 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A 20 20 20 20 Always:....
02C110: 20 20 20 20 20 20 20 20 20 20 20 20 42 43 2C 44 BC,D
02C120: 45 2C 48 4C 2C 49 58 20 61 6E 64 20 6F 74 68 65 E,HL,IX and othe
02C130: 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E r flags corrupt.
02C140: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02C150: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
02C160: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
02C170: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
02C180: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 74 :...... It
02C190: 20 69 73 20 6E 65 63 65 73 73 61 72 79 20 74 6F is necessary to
02C1A0: 20 63 61 6C 6C 20 74 68 69 73 20 72 6F 75 74 69 call this routi
02C1B0: 6E 65 20 61 66 74 65 72 20 75 73 69 6E 67 20 43 ne after using C
02C1C0: 41 53 20 4F 55 54 20 43 48 41 52 20 20 6F 72 20 AS OUT CHAR or
02C1D0: 20 43 41 53 0D 0A 20 20 20 20 20 20 20 4F 55 54 CAS.. OUT
02C1E0: 20 44 49 52 45 43 54 20 74 6F 20 65 6E 73 75 72 DIRECT to ensur
02C1F0: 65 20 74 68 61 74 20 61 6C 6C 20 74 68 65 20 64 e that all the d
02C200: 61 74 61 20 69 73 20 20 77 72 69 74 74 65 6E 20 ata is written
02C210: 20 74 6F 20 20 74 68 65 20 20 64 69 73 63 2C 20 to the disc,
02C220: 20 74 6F 0D 0A 20 20 20 20 20 20 20 77 72 69 74 to.. writ
02C230: 65 20 74 68 65 20 68 65 61 64 65 72 20 74 6F 20 e the header to
02C240: 74 68 65 20 73 74 61 72 74 20 6F 66 20 74 68 65 the start of the
02C250: 20 66 69 6C 65 20 61 6E 64 20 74 6F 20 20 67 69 file and to gi
02C260: 76 65 20 20 74 68 65 20 20 66 69 6C 65 20 20 69 ve the file i
02C270: 74 73 0D 0A 20 20 20 20 20 20 20 74 72 75 65 20 ts.. true
02C280: 6E 61 6D 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 name.......
02C290: 20 20 49 66 20 6E 6F 20 64 61 74 61 20 68 61 73 If no data has
02C2A0: 20 62 65 65 6E 20 77 72 69 74 74 65 6E 20 74 6F been written to
02C2B0: 20 74 68 65 20 20 66 69 6C 65 20 20 74 68 65 6E the file then
02C2C0: 20 20 69 74 20 20 69 73 20 20 61 62 61 6E 64 6F it is abando
02C2D0: 6E 65 64 20 20 61 6E 64 0D 0A 20 20 20 20 20 20 ned and..
02C2E0: 20 6E 6F 74 68 69 6E 67 20 69 73 20 77 72 69 74 nothing is writ
02C2F0: 74 65 6E 20 74 6F 20 64 69 73 63 2E 20 54 68 69 ten to disc. Thi
02C300: 73 20 69 73 20 66 6F 72 20 20 63 6F 6D 70 61 74 s is for compat
02C310: 61 62 69 6C 69 74 79 20 20 77 69 74 68 20 20 63 ability with c
02C320: 61 73 73 65 74 74 65 0D 0A 20 20 20 20 20 20 20 assette..
02C330: 72 6F 75 74 69 6E 65 73 2E 0D 0A 0D 0A 0D 0A 0D routines........
02C340: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
02C350: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
02C360: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
02C370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02C380: 20 20 20 70 61 67 65 20 31 35 2E 31 35 31 0D 0A page 15.151..
02C390: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
02C3A0: 20 20 20 57 68 65 6E 20 74 68 65 20 66 69 6C 65 When the file
02C3B0: 20 77 61 73 20 6F 70 65 6E 65 64 20 69 74 20 77 was opened it w
02C3C0: 61 73 20 67 69 76 65 6E 20 74 68 65 20 74 79 70 as given the typ
02C3D0: 65 20 70 61 72 74 20 20 6F 66 20 20 27 2E 24 24 e part of '.$$
02C3E0: 24 27 2E 20 20 54 68 69 73 0D 0A 20 20 20 20 20 $'. This..
02C3F0: 20 20 72 6F 75 74 69 6E 65 20 77 69 6C 6C 20 72 routine will r
02C400: 65 6E 61 6D 65 20 74 68 65 20 66 69 6C 65 20 74 ename the file t
02C410: 6F 20 69 74 73 20 74 72 75 65 20 6E 61 6D 65 20 o its true name
02C420: 61 6E 64 20 72 65 6E 61 6D 65 20 61 6E 79 20 20 and rename any
02C430: 65 78 69 73 74 69 6E 67 0D 0A 20 20 20 20 20 20 existing..
02C440: 20 76 65 72 73 69 6F 6E 20 74 6F 20 68 61 76 65 version to have
02C450: 20 61 20 27 2E 42 41 4B 27 20 74 79 70 65 20 70 a '.BAK' type p
02C460: 61 72 74 2E 20 54 68 69 73 20 20 65 6E 73 75 72 art. This ensur
02C470: 65 73 20 20 74 68 61 74 20 20 61 6E 79 20 20 70 es that any p
02C480: 72 65 76 69 6F 75 73 0D 0A 20 20 20 20 20 20 20 revious..
02C490: 76 65 72 73 69 6F 6E 20 6F 66 20 74 68 65 20 66 version of the f
02C4A0: 69 6C 65 20 69 73 20 61 75 74 6F 6D 61 74 69 63 ile is automatic
02C4B0: 61 6C 6C 79 20 6B 65 70 74 20 61 73 20 61 20 20 ally kept as a
02C4C0: 62 61 63 6B 75 70 2E 20 20 41 6E 79 20 20 65 78 backup. Any ex
02C4D0: 69 73 74 69 6E 67 0D 0A 20 20 20 20 20 20 20 27 isting.. '
02C4E0: 2E 42 41 4B 27 20 76 65 72 73 69 6F 6E 20 69 73 .BAK' version is
02C4F0: 20 64 65 6C 65 74 65 64 2E 20 49 66 2C 20 77 68 deleted. If, wh
02C500: 65 6E 20 74 68 65 20 66 69 6C 65 20 77 61 73 20 en the file was
02C510: 20 6F 70 65 6E 65 64 2C 20 20 74 68 65 20 20 63 opened, the c
02C520: 61 6C 6C 65 72 0D 0A 20 20 20 20 20 20 20 64 69 aller.. di
02C530: 64 20 6E 6F 74 20 73 70 65 63 69 66 79 20 74 68 d not specify th
02C540: 65 20 74 79 70 65 20 70 61 72 74 20 74 68 65 6E e type part then
02C550: 20 20 41 4D 53 44 4F 53 20 20 77 69 6C 6C 20 20 AMSDOS will
02C560: 75 73 65 20 20 74 68 65 20 20 74 79 70 65 20 20 use the type
02C570: 70 61 72 74 0D 0A 20 20 20 20 20 20 20 27 2E 42 part.. '.B
02C580: 41 53 27 20 66 6F 72 20 42 41 53 49 43 20 66 69 AS' for BASIC fi
02C590: 6C 65 73 2C 20 27 2E 42 49 4E 27 20 66 6F 72 20 les, '.BIN' for
02C5A0: 62 69 6E 61 72 79 20 66 69 6C 65 73 20 61 6E 64 binary files and
02C5B0: 20 27 2E 20 27 20 66 6F 72 20 61 6C 6C 20 6F 74 '. ' for all ot
02C5C0: 68 65 72 0D 0A 20 20 20 20 20 20 20 66 69 6C 65 her.. file
02C5D0: 73 2C 20 61 73 20 73 70 65 63 69 66 69 65 64 20 s, as specified
02C5E0: 62 79 20 74 68 65 20 66 69 6C 65 20 74 79 70 65 by the file type
02C5F0: 20 66 69 65 6C 64 20 69 6E 20 74 68 65 20 68 65 field in the he
02C600: 61 64 65 72 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 ader.........
02C610: 20 20 20 20 49 66 20 74 68 65 20 61 63 74 75 61 If the actua
02C620: 6C 20 6C 65 6E 67 74 68 20 6F 66 20 74 68 65 20 l length of the
02C630: 66 69 6C 65 20 69 73 20 6E 6F 74 20 61 20 6D 75 file is not a mu
02C640: 6C 74 69 70 6C 65 20 20 6F 66 20 20 31 32 38 20 ltiple of 128
02C650: 20 62 79 74 65 73 20 20 28 61 0D 0A 20 20 20 20 bytes (a..
02C660: 20 20 20 43 50 2F 4D 20 72 65 63 6F 72 64 29 20 CP/M record)
02C670: 74 68 65 6E 20 61 20 43 50 2F 4D 20 65 6E 64 20 then a CP/M end
02C680: 6F 66 20 66 69 6C 65 20 63 68 61 72 61 63 74 65 of file characte
02C690: 72 2C 20 23 31 41 2C 20 69 73 20 61 64 64 65 64 r, #1A, is added
02C6A0: 20 20 74 6F 20 20 74 68 65 0D 0A 20 20 20 20 20 to the..
02C6B0: 20 20 66 69 6C 65 2E 20 54 68 69 73 20 61 64 64 file. This add
02C6C0: 69 74 69 6F 6E 61 6C 20 63 68 61 72 61 63 74 65 itional characte
02C6D0: 72 20 69 73 20 6E 6F 74 20 72 65 63 6F 72 64 65 r is not recorde
02C6E0: 64 20 69 6E 20 74 68 65 20 6C 65 6E 67 74 68 20 d in the length
02C6F0: 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 of the..
02C700: 20 66 69 6C 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 file.........
02C710: 20 20 20 20 20 49 66 20 77 72 69 74 69 6E 67 20 If writing
02C720: 69 73 20 74 6F 20 62 65 20 61 62 61 6E 64 6F 6E is to be abandon
02C730: 65 64 20 74 68 65 20 43 41 53 20 4F 55 54 20 4F ed the CAS OUT O
02C740: 50 45 4E 20 20 73 68 6F 75 6C 64 20 20 62 65 20 PEN should be
02C750: 20 63 61 6C 6C 65 64 20 20 61 73 0D 0A 20 20 20 called as..
02C760: 20 20 20 20 74 68 69 73 20 64 6F 65 73 20 6E 6F this does no
02C770: 74 20 77 72 69 74 65 20 61 6E 79 20 6D 6F 72 65 t write any more
02C780: 20 64 61 74 61 20 74 6F 20 64 69 73 63 2E 0D 0A data to disc...
02C790: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
02C7A0: 20 75 73 65 72 20 6D 61 79 20 72 65 63 6C 61 69 user may reclai
02C7B0: 6D 20 74 68 65 20 62 75 66 66 65 72 20 70 61 73 m the buffer pas
02C7C0: 73 65 64 20 74 6F 20 43 41 53 20 4F 55 54 20 4F sed to CAS OUT O
02C7D0: 50 45 4E 20 20 61 66 74 65 72 20 20 63 61 6C 6C PEN after call
02C7E0: 69 6E 67 0D 0A 20 20 20 20 20 20 20 74 68 69 73 ing.. this
02C7F0: 20 72 6F 75 74 69 6E 65 2E 0D 0A 0D 0A 0D 0A 0D routine........
02C800: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
02C810: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A d entries:......
02C820: 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 .. CAS IN
02C830: 43 4C 4F 53 45 20 28 44 49 53 43 29 0D 0A 20 20 CLOSE (DISC)..
02C840: 20 20 20 20 20 43 41 53 20 4F 55 54 20 41 42 41 CAS OUT ABA
02C850: 4E 44 4F 4E 20 28 44 49 53 43 29 0D 0A 20 20 20 NDON (DISC)..
02C860: 20 20 20 20 43 41 53 20 4F 55 54 20 43 4C 4F 53 CAS OUT CLOS
02C870: 45 0D 0A 20 20 20 20 20 20 20 43 41 53 20 4F 55 E.. CAS OU
02C880: 54 20 4F 50 45 4E 20 28 44 49 53 43 29 0D 0A 0D T OPEN (DISC)...
02C890: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02C8A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
02C8B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
02C8C0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
02C8D0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
02C8E0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
02C8F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
02C900: 65 20 31 35 2E 31 35 32 0D 0A 0D 0A 0D 0A 0D 0A e 15.152........
02C910: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 33 34 ...... 134
02C920: 3A 20 43 41 53 20 4F 55 54 20 41 42 41 4E 44 4F : CAS OUT ABANDO
02C930: 4E 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 N
02C940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02C950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 #B
02C960: 43 39 32 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 C92......
02C970: 43 6C 6F 73 65 20 69 6E 20 6F 75 74 70 75 74 20 Close in output
02C980: 66 69 6C 65 20 69 6D 6D 65 64 69 61 74 65 6C 79 file immediately
02C990: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 ....... Ac
02C9A0: 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tion:......
02C9B0: 20 20 41 62 61 6E 64 6F 6E 20 74 68 65 20 20 6F Abandon the o
02C9C0: 75 74 70 75 74 20 20 66 69 6C 65 20 20 61 6E 64 utput file and
02C9D0: 20 20 6D 61 72 6B 20 20 74 68 65 20 20 77 72 69 mark the wri
02C9E0: 74 65 20 20 73 74 72 65 61 6D 20 20 63 6C 6F 73 te stream clos
02C9F0: 65 64 2E 20 20 41 6E 79 0D 0A 20 20 20 20 20 20 ed. Any..
02CA00: 20 75 6E 77 72 69 74 74 65 6E 20 64 61 74 61 20 unwritten data
02CA10: 69 73 20 64 69 73 63 61 72 64 65 64 20 61 6E 64 is discarded and
02CA20: 20 6E 6F 74 20 77 72 69 74 74 65 6E 20 74 6F 20 not written to
02CA30: 74 61 70 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tape.......
02CA40: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
02CA50: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
02CA60: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A No conditions...
02CA70: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
02CA80: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
02CA90: 0A 20 20 20 20 20 20 20 41 46 2C 20 42 43 2C 20 . AF, BC,
02CAA0: 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 DE and HL corrup
02CAB0: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
02CAC0: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
02CAD0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
02CAE0: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
02CAF0: 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F .. This ro
02CB00: 75 74 69 6E 65 20 69 6E 20 20 69 6E 74 65 6E 64 utine in intend
02CB10: 65 64 20 20 66 6F 72 20 20 75 73 65 20 20 61 66 ed for use af
02CB20: 74 65 72 20 20 61 6E 20 20 65 72 72 6F 72 20 20 ter an error
02CB30: 6F 72 20 20 69 6E 20 20 73 69 6D 69 6C 61 72 0D or in similar.
02CB40: 0A 20 20 20 20 20 20 20 63 69 72 63 75 6D 73 74 . circumst
02CB50: 61 6E 63 65 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ances.........
02CB60: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
02CB70: 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ries:......
02CB80: 20 20 43 41 53 20 49 4E 20 41 42 41 4E 44 4F 4E CAS IN ABANDON
02CB90: 0D 0A 20 20 20 20 20 20 20 43 41 53 20 4F 55 54 .. CAS OUT
02CBA0: 20 41 42 41 4E 44 4F 4E 20 28 44 49 53 43 29 0D ABANDON (DISC).
02CBB0: 0A 20 20 20 20 20 20 20 43 41 53 20 4F 55 54 20 . CAS OUT
02CBC0: 43 4C 4F 53 45 0D 0A 20 20 20 20 20 20 20 43 41 CLOSE.. CA
02CBD0: 53 20 4F 55 54 20 4F 50 45 4E 0D 0A 0D 0A 0D 0A S OUT OPEN......
02CBE0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
02CBF0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
02CC00: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
02CC10: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
02CC20: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
02CC30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02CC40: 20 20 70 61 67 65 20 31 35 2E 31 35 33 0D 0A 0D page 15.153...
02CC50: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
02CC60: 20 20 31 33 34 3A 20 43 41 53 20 4F 55 54 20 41 134: CAS OUT A
02CC70: 42 41 4E 44 4F 4E 20 28 44 49 53 43 29 20 20 20 BANDON (DISC)
02CC80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02CC90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02CCA0: 20 20 20 23 42 43 39 32 0D 0A 0D 0A 0D 0A 20 20 #BC92......
02CCB0: 20 20 20 20 20 43 6C 6F 73 65 20 69 6E 20 6F 75 Close in ou
02CCC0: 74 70 75 74 20 66 69 6C 65 20 69 6D 6D 65 64 69 tput file immedi
02CCD0: 61 74 65 6C 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 ately.......
02CCE0: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A Action:......
02CCF0: 20 20 20 20 20 20 20 41 62 61 6E 64 6F 6E 20 74 Abandon t
02CD00: 68 65 20 20 6F 75 74 70 75 74 20 20 66 69 6C 65 he output file
02CD10: 20 20 61 6E 64 20 20 6D 61 72 6B 20 20 74 68 65 and mark the
02CD20: 20 20 77 72 69 74 65 20 20 73 74 72 65 61 6D 20 write stream
02CD30: 20 63 6C 6F 73 65 64 2E 20 20 41 6E 79 0D 0A 20 closed. Any..
02CD40: 20 20 20 20 20 20 75 6E 77 72 69 74 74 65 6E 20 unwritten
02CD50: 64 61 74 61 20 69 73 20 64 69 73 63 61 72 64 65 data is discarde
02CD60: 64 20 61 6E 64 20 6E 6F 74 20 77 72 69 74 74 65 d and not writte
02CD70: 6E 20 74 6F 20 64 69 73 63 2E 0D 0A 0D 0A 0D 0A n to disc.......
02CD80: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
02CD90: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
02CDA0: 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F No conditio
02CDB0: 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns.......
02CDC0: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
02CDD0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C ...... AF,
02CDE0: 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 BC,DE and HL cor
02CDF0: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C rupt... Al
02CE00: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
02CE10: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
02CE20: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
02CE30: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
02CE40: 20 20 72 6F 75 74 69 6E 65 20 20 69 6E 20 20 69 routine in i
02CE50: 6E 74 65 6E 64 65 64 20 20 66 6F 72 20 20 75 73 ntended for us
02CE60: 65 20 20 61 66 74 65 72 20 20 61 6E 20 20 65 72 e after an er
02CE70: 72 6F 72 20 20 20 6F 72 20 20 20 73 69 6D 69 6C ror or simil
02CE80: 61 72 0D 0A 20 20 20 20 20 20 20 63 69 72 63 75 ar.. circu
02CE90: 6D 73 74 61 6E 63 65 73 2E 0D 0A 0D 0A 0D 0A 20 mstances.......
02CEA0: 20 20 20 20 20 20 49 66 20 6D 6F 72 65 20 74 68 If more th
02CEB0: 61 6E 20 6F 6E 65 20 31 36 4B 20 70 68 79 73 69 an one 16K physi
02CEC0: 63 61 6C 20 65 78 74 65 6E 74 20 68 61 73 20 61 cal extent has a
02CED0: 6C 72 65 61 64 79 20 62 65 65 6E 20 77 72 69 74 lready been writ
02CEE0: 74 65 6E 20 74 6F 20 20 64 69 73 63 0D 0A 20 20 ten to disc..
02CEF0: 20 20 20 20 20 74 68 65 6E 20 74 68 65 20 66 69 then the fi
02CF00: 6C 65 20 77 69 6C 6C 20 61 70 70 65 61 72 20 69 le will appear i
02CF10: 6E 20 74 68 65 20 64 69 73 63 20 64 69 72 65 63 n the disc direc
02CF20: 74 6F 72 79 20 77 69 74 68 20 61 20 20 74 79 70 tory with a typ
02CF30: 65 20 20 70 61 72 74 20 20 6F 66 0D 0A 20 20 20 e part of..
02CF40: 20 20 20 20 27 2E 24 24 24 27 2E 20 4F 74 68 65 '.$$$'. Othe
02CF50: 72 77 69 73 65 20 74 68 65 20 66 69 6C 65 20 77 rwise the file w
02CF60: 69 6C 6C 20 64 69 73 61 70 70 65 61 72 2E 20 54 ill disappear. T
02CF70: 68 69 73 20 69 73 20 62 65 63 61 75 73 65 20 65 his is because e
02CF80: 61 63 68 20 31 36 4B 20 6F 66 0D 0A 20 20 20 20 ach 16K of..
02CF90: 20 20 20 61 20 66 69 6C 65 20 72 65 71 75 69 72 a file requir
02CFA0: 65 73 20 61 20 64 69 72 65 63 74 6F 72 79 20 65 es a directory e
02CFB0: 6E 74 72 79 2E 20 41 20 64 69 72 65 63 74 6F 72 ntry. A director
02CFC0: 79 20 65 6E 74 72 79 20 69 73 20 6E 6F 74 20 77 y entry is not w
02CFD0: 72 69 74 74 65 6E 20 74 6F 0D 0A 20 20 20 20 20 ritten to..
02CFE0: 20 20 64 69 73 63 20 75 6E 74 69 6C 20 74 68 65 disc until the
02CFF0: 20 31 36 4B 20 68 61 73 20 62 65 65 6E 20 77 72 16K has been wr
02D000: 69 74 74 65 6E 20 6F 72 20 20 61 20 20 66 69 6C itten or a fil
02D010: 65 20 20 69 73 20 20 63 6C 6F 73 65 64 20 20 28 e is closed (
02D020: 43 41 53 20 20 4F 55 54 0D 0A 20 20 20 20 20 20 CAS OUT..
02D030: 20 43 4C 4F 53 45 29 2E 0D 0A 0D 0A 0D 0A 0D 0A CLOSE).........
02D040: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
02D050: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
02D060: 20 20 20 20 43 41 53 20 49 4E 20 41 42 41 4E 44 CAS IN ABAND
02D070: 4F 4E 20 28 44 49 53 43 29 0D 0A 20 20 20 20 20 ON (DISC)..
02D080: 20 20 43 41 53 20 4F 55 54 20 41 42 41 4E 44 4F CAS OUT ABANDO
02D090: 4E 0D 0A 20 20 20 20 20 20 20 43 41 53 20 4F 55 N.. CAS OU
02D0A0: 54 20 43 4C 4F 53 45 20 28 44 49 53 43 29 0D 0A T CLOSE (DISC)..
02D0B0: 20 20 20 20 20 20 20 43 41 53 20 4F 55 54 20 4F CAS OUT O
02D0C0: 50 45 4E 20 28 44 49 53 43 29 0D 0A 0D 0A 0D 0A PEN (DISC)......
02D0D0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
02D0E0: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
02D0F0: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
02D100: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
02D110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02D120: 20 20 70 61 67 65 20 31 35 2E 31 35 34 0D 0A 0D page 15.154...
02D130: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
02D140: 20 20 31 33 35 3A 20 43 41 53 20 4F 55 54 20 43 135: CAS OUT C
02D150: 48 41 52 20 20 20 20 20 20 20 20 20 20 20 20 20 HAR
02D160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02D170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02D180: 20 20 20 23 42 43 39 35 0D 0A 0D 0A 20 20 20 20 #BC95....
02D190: 20 20 20 57 72 69 74 65 20 61 20 63 68 61 72 61 Write a chara
02D1A0: 63 74 65 72 20 74 6F 20 74 68 65 20 6F 75 74 70 cter to the outp
02D1B0: 75 74 20 66 69 6C 65 2E 0D 0A 0D 0A 20 20 20 20 ut file.....
02D1C0: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 Action:....
02D1D0: 20 20 20 20 20 41 64 64 20 61 20 63 68 61 72 61 Add a chara
02D1E0: 63 74 65 72 20 74 6F 20 74 68 65 20 62 75 66 66 cter to the buff
02D1F0: 65 72 20 66 6F 72 20 74 68 65 20 77 72 69 74 65 er for the write
02D200: 20 73 74 72 65 61 6D 2E 20 49 66 20 74 68 65 20 stream. If the
02D210: 20 62 75 66 66 65 72 20 20 69 73 0D 0A 20 20 20 buffer is..
02D220: 20 20 20 20 61 6C 72 65 61 64 79 20 66 75 6C 6C already full
02D230: 20 74 68 65 6E 20 69 74 20 69 73 20 77 72 69 74 then it is writ
02D240: 74 65 6E 20 74 6F 20 74 61 70 65 20 62 65 66 6F ten to tape befo
02D250: 72 65 20 74 68 65 20 20 6E 65 77 20 20 63 68 61 re the new cha
02D260: 72 61 63 74 65 72 20 20 69 73 0D 0A 20 20 20 20 racter is..
02D270: 20 20 20 69 6E 73 65 72 74 65 64 2E 0D 0A 0D 0A inserted.....
02D280: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
02D290: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
02D2A0: 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 A contains th
02D2B0: 65 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 77 e character to w
02D2C0: 72 69 74 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rite.....
02D2D0: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
02D2E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 .... If th
02D2F0: 65 20 63 68 61 72 61 63 74 65 72 20 77 61 73 20 e character was
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: 77 72 69 74 74 65 6E 20 4F 4B 3A 0D 0A 20 20 20 written OK:..
02D410: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 Car
02D420: 72 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 ry true...
02D430: 20 20 20 20 20 20 20 20 20 20 5A 65 72 6F 20 66 Zero f
02D440: 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 alse...
02D450: 20 20 20 20 20 20 20 41 20 63 6F 72 72 75 70 74 A corrupt
02D460: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
02D470: 68 65 20 66 69 6C 65 20 77 61 73 20 6E 6F 74 20 he file was not
02D480: 6F 70 65 6E 20 61 73 20 65 78 70 65 63 74 65 64 open as expected
02D490: 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 :..
02D4A0: 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D Carry false..
02D4B0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02D4C0: 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 Zero false...
02D4D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6E In
02D4E0: 20 56 31 2E 31 3A 20 41 20 63 6F 6E 74 61 69 6E V1.1: A contain
02D4F0: 73 20 61 6E 20 65 72 72 6F 72 20 6E 75 6D 62 65 s an error numbe
02D500: 72 20 28 23 30 45 29 2E 0D 0A 20 20 20 20 20 20 r (#0E)...
02D510: 20 20 20 20 20 20 20 20 20 20 49 6E 20 56 31 2E In V1.
02D520: 30 3A 20 41 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0: A corrupt....
02D530: 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 75 . If the u
02D540: 73 65 72 20 68 69 74 20 65 73 63 61 70 65 3A 0D ser hit escape:.
02D550: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02D560: 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 Carry false...
02D570: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5A Z
02D580: 65 72 6F 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 ero true...
02D590: 20 20 20 20 20 20 20 20 20 20 20 49 6E 20 56 31 In V1
02D5A0: 2E 31 3A 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 .1: A contains a
02D5B0: 6E 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 20 28 n error number (
02D5C0: 23 30 30 29 2E 0D 0A 20 20 20 20 20 20 20 20 20 #00)...
02D5D0: 20 20 20 20 20 20 20 49 6E 20 56 31 2E 30 3A 20 In V1.0:
02D5E0: 41 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 A corrupt...
02D5F0: 20 20 20 41 6C 77 61 79 73 3A 0D 0A 20 20 20 20 Always:..
02D600: 20 20 20 20 20 20 20 20 20 20 20 20 41 2C 20 49 A, I
02D610: 58 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 X and other flag
02D620: 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 s corrupt...
02D630: 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 All
02D640: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
02D650: 70 72 65 73 65 72 76 65 64 2E 0D 0A 20 20 20 20 preserved...
02D660: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 Notes:....
02D670: 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 This routine
02D680: 20 63 61 6E 20 72 65 74 75 72 6E 20 74 77 6F 20 can return two
02D690: 65 72 72 6F 72 20 6E 75 6D 62 65 72 73 3A 0D 0A error numbers:..
02D6A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02D6B0: 23 30 30 3A 20 20 20 20 20 20 54 68 65 20 75 73 #00: The us
02D6C0: 65 72 20 68 69 74 20 65 73 63 61 70 65 2E 0D 0A er hit escape...
02D6D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02D6E0: 23 30 45 3A 20 20 20 20 20 20 54 68 65 20 73 74 #0E: The st
02D6F0: 72 65 61 6D 20 69 73 20 6E 6F 74 20 6F 70 65 6E ream is not open
02D700: 20 66 6F 72 20 20 77 72 69 74 69 6E 67 20 20 63 for writing c
02D710: 68 61 72 61 63 74 65 72 73 20 20 6F 66 0D 0A 20 haracters of..
02D720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02D730: 20 20 20 20 20 20 20 20 20 74 68 65 20 75 73 65 the use
02D740: 72 20 68 69 74 20 65 73 63 61 70 65 20 70 72 65 r hit escape pre
02D750: 76 69 6F 75 73 6C 79 2E 0D 0A 0D 0A 20 20 20 20 viously.....
02D760: 20 20 20 49 66 20 74 68 69 73 20 72 6F 75 74 69 If this routi
02D770: 6E 65 20 72 65 74 75 72 6E 73 20 74 68 65 20 66 ne returns the f
02D780: 69 6C 65 20 6E 6F 74 20 6F 70 65 6E 20 61 73 20 ile not open as
02D790: 65 78 70 65 63 74 65 64 20 20 63 6F 6E 64 69 74 expected condit
02D7A0: 69 6F 6E 20 20 74 68 65 6E 0D 0A 20 20 20 20 20 ion then..
02D7B0: 20 20 65 69 74 68 65 72 20 74 68 65 20 75 73 65 either the use
02D7C0: 72 20 68 61 73 20 68 69 74 20 65 73 63 61 70 65 r has hit escape
02D7D0: 20 70 72 65 76 69 6F 75 73 6C 79 20 6F 72 20 74 previously or t
02D7E0: 68 65 20 66 69 6C 65 20 68 61 73 20 62 65 65 6E he file has been
02D7F0: 20 77 72 69 74 74 65 6E 0D 0A 20 20 20 20 20 20 written..
02D800: 20 75 73 69 6E 67 20 43 41 53 20 4F 55 54 20 44 using CAS OUT D
02D810: 49 52 45 43 54 2E 20 49 6E 20 65 69 74 68 65 72 IRECT. In either
02D820: 20 63 61 73 65 2C 20 6F 72 20 69 66 20 20 65 73 case, or if es
02D830: 63 61 70 65 20 20 69 73 20 20 70 72 65 73 73 65 cape is presse
02D840: 64 2C 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 d, the..
02D850: 63 68 61 72 61 63 74 65 72 20 73 65 6E 74 20 77 character sent w
02D860: 69 6C 6C 20 62 65 20 64 69 73 63 61 72 64 65 64 ill be discarded
02D870: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 74 20 69 ..... It i
02D880: 73 20 6E 65 63 65 73 73 61 72 79 20 74 6F 20 63 s necessary to c
02D890: 61 6C 6C 20 43 41 53 20 4F 55 54 20 43 4C 4F 53 all CAS OUT CLOS
02D8A0: 45 20 61 66 74 65 72 20 73 65 6E 64 69 6E 67 20 E after sending
02D8B0: 61 6C 6C 20 74 68 65 20 63 68 61 72 61 63 74 65 all the characte
02D8C0: 72 73 0D 0A 20 20 20 20 20 20 20 74 6F 20 74 68 rs.. to th
02D8D0: 65 20 66 69 6C 65 20 74 6F 20 65 6E 73 75 72 65 e file to ensure
02D8E0: 20 74 68 61 74 20 74 68 65 20 6C 61 73 74 20 62 that the last b
02D8F0: 6C 6F 63 6B 20 69 73 20 77 72 69 74 74 65 6E 20 lock is written
02D900: 74 6F 20 74 68 65 20 74 61 70 65 2E 0D 0A 0D 0A to the tape.....
02D910: 20 20 20 20 20 20 20 4F 6E 63 65 20 74 68 65 20 Once the
02D920: 72 6F 75 74 69 6E 65 20 68 61 73 20 62 65 65 6E routine has been
02D930: 20 63 61 6C 6C 65 64 20 69 74 20 20 69 73 20 20 called it is
02D940: 6E 6F 74 20 20 70 6F 73 73 69 62 6C 65 20 20 74 not possible t
02D950: 6F 20 20 73 77 69 74 63 68 20 20 74 6F 0D 0A 20 o switch to..
02D960: 20 20 20 20 20 20 64 69 72 65 63 74 6C 79 20 77 directly w
02D970: 72 69 74 69 6E 67 20 74 68 65 20 66 69 6C 65 2E riting the file.
02D980: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
02D990: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 ed entries:....
02D9A0: 20 20 20 20 20 20 43 41 53 20 49 4E 20 43 48 41 CAS IN CHA
02D9B0: 52 0D 0A 20 20 20 20 20 20 20 43 41 53 20 4F 55 R.. CAS OU
02D9C0: 54 20 43 48 41 52 20 28 44 49 53 43 29 20 20 20 T CHAR (DISC)
02D9D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02D9E0: 20 43 41 53 20 4F 55 54 20 44 49 52 45 43 54 0D CAS OUT DIRECT.
02D9F0: 0A 20 20 20 20 20 20 20 43 41 53 20 4F 55 54 20 . CAS OUT
02DA00: 43 4C 4F 53 45 20 20 20 20 20 20 20 20 20 20 20 CLOSE
02DA10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
02DA20: 41 53 20 4F 55 54 20 4F 50 45 4E 0D 0A 0D 0A 20 AS OUT OPEN....
02DA30: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
02DA40: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
02DA50: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
02DA60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02DA70: 20 70 61 67 65 20 31 35 2E 31 35 35 0D 0A 0D 0A page 15.155....
02DA80: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
02DA90: 20 31 33 35 3A 20 43 41 53 20 4F 55 54 20 43 48 135: CAS OUT CH
02DAA0: 41 52 20 28 44 49 53 43 29 20 20 20 20 20 20 20 AR (DISC)
02DAB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02DAC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02DAD0: 20 20 23 42 43 39 35 0D 0A 0D 0A 20 20 20 20 20 #BC95....
02DAE0: 20 20 57 72 69 74 65 20 61 20 63 68 61 72 61 63 Write a charac
02DAF0: 74 65 72 20 74 6F 20 61 6E 20 6F 75 74 70 75 74 ter to an output
02DB00: 20 66 69 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 file.....
02DB10: 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 Action:....
02DB20: 20 20 20 41 64 64 20 61 20 63 68 61 72 61 63 74 Add a charact
02DB30: 65 72 20 74 6F 20 74 68 65 20 62 75 66 66 65 72 er to the buffer
02DB40: 20 66 6F 72 20 74 68 65 20 77 72 69 74 65 20 73 for the write s
02DB50: 74 72 65 61 6D 2E 20 49 66 20 74 68 65 20 20 62 tream. If the b
02DB60: 75 66 66 65 72 20 20 69 73 0D 0A 20 20 20 20 20 uffer is..
02DB70: 20 20 61 6C 72 65 61 64 79 20 66 75 6C 6C 20 74 already full t
02DB80: 68 65 6E 20 69 74 20 69 73 20 77 72 69 74 74 65 hen it is writte
02DB90: 6E 20 74 6F 20 64 69 73 63 20 62 65 66 6F 72 65 n to disc before
02DBA0: 20 74 68 65 20 20 6E 65 77 20 20 63 68 61 72 61 the new chara
02DBB0: 63 74 65 72 20 20 69 73 0D 0A 20 20 20 20 20 20 cter is..
02DBC0: 20 69 6E 73 65 72 74 65 64 2E 0D 0A 0D 0A 20 20 inserted.....
02DBD0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
02DBE0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tions:....
02DBF0: 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 A contains the
02DC00: 63 68 61 72 61 63 74 65 72 20 74 6F 20 77 72 69 character to wri
02DC10: 74 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 te..... Ex
02DC20: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
02DC30: 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 .. If the
02DC40: 63 68 61 72 61 63 74 65 72 20 77 61 73 20 77 72 character was wr
02DC50: 69 74 74 65 6E 20 4F 4B 3A 0D 0A 0D 0A 20 20 20 itten OK:....
02DC60: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 Car
02DC70: 72 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 ry true...
02DC80: 20 20 20 20 20 20 20 20 20 20 5A 65 72 6F 20 66 Zero f
02DC90: 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 alse...
02DCA0: 20 20 20 20 20 20 20 41 20 63 6F 72 72 75 70 74 A corrupt
02DCB0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
02DCC0: 68 65 20 73 74 72 65 61 6D 20 69 73 20 6E 6F 74 he stream is not
02DCD0: 20 6F 70 65 6E 20 61 73 20 65 78 70 65 63 74 65 open as expecte
02DCE0: 64 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 d:....
02DCF0: 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 Carry fals
02DD00: 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 e...
02DD10: 20 20 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D Zero false..
02DD20: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02DD30: 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 65 A contains an e
02DD40: 72 72 6F 72 20 6E 75 6D 62 65 72 20 28 23 30 45 rror number (#0E
02DD50: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 )..... If
02DD60: 66 61 69 6C 65 64 20 66 6F 72 20 61 6E 79 20 6F failed for any o
02DD70: 74 68 65 72 20 72 65 61 73 6F 6E 3A 0D 0A 0D 0A ther reason:....
02DD80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02DD90: 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 0D 0A Carry false.....
02DDA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02DDB0: 5A 65 72 6F 20 74 72 75 65 2E 0D 0A 20 20 20 20 Zero true...
02DDC0: 20 20 20 20 20 20 20 20 20 20 20 20 41 20 63 6F A co
02DDD0: 6E 74 61 69 6E 73 20 61 6E 20 65 72 72 6F 72 20 ntains an error
02DDE0: 6E 75 6D 62 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 number.....
02DDF0: 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A 20 20 20 Always:....
02DE00: 20 20 20 20 20 20 20 20 20 20 20 20 20 49 58 20 IX
02DE10: 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 73 20 and other flags
02DE20: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
02DE30: 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 All ot
02DE40: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
02DE50: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 eserved.....
02DE60: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 Notes:....
02DE70: 20 20 20 20 49 74 20 69 73 20 6E 65 63 65 73 73 It is necess
02DE80: 61 72 79 20 74 6F 20 63 61 6C 6C 20 43 41 53 20 ary to call CAS
02DE90: 4F 55 54 20 43 4C 4F 53 45 20 61 66 74 65 72 20 OUT CLOSE after
02DEA0: 73 65 6E 64 69 6E 67 20 61 6C 6C 20 74 68 65 20 sending all the
02DEB0: 63 68 61 72 61 63 74 65 72 73 0D 0A 20 20 20 20 characters..
02DEC0: 20 20 20 74 6F 20 74 68 65 20 66 69 6C 65 20 74 to the file t
02DED0: 6F 20 65 6E 73 75 72 65 20 74 68 61 74 20 74 68 o ensure that th
02DEE0: 65 20 66 69 6C 65 20 69 73 20 63 6F 72 72 65 63 e file is correc
02DEF0: 74 6C 79 20 77 72 69 74 74 65 6E 20 74 6F 20 64 tly written to d
02DF00: 69 73 63 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4F isc..... O
02DF10: 6E 63 65 20 74 68 65 20 72 6F 75 74 69 6E 65 20 nce the routine
02DF20: 68 61 73 20 62 65 65 6E 20 63 61 6C 6C 65 64 20 has been called
02DF30: 69 74 20 20 69 73 20 20 6E 6F 74 20 20 70 6F 73 it is not pos
02DF40: 73 69 62 6C 65 20 20 74 6F 20 20 73 77 69 74 63 sible to switc
02DF50: 68 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 64 69 h to.. di
02DF60: 72 65 63 74 6C 79 20 77 72 69 74 69 6E 67 20 74 rectly writing t
02DF70: 68 65 20 66 69 6C 65 20 28 43 41 53 20 4F 55 54 he file (CAS OUT
02DF80: 20 44 49 52 45 43 54 29 2E 0D 0A 0D 0A 20 20 20 DIRECT).....
02DF90: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
02DFA0: 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 ies:.... C
02DFB0: 41 53 20 49 4E 20 43 48 41 52 20 28 44 49 53 43 AS IN CHAR (DISC
02DFC0: 29 0D 0A 20 20 20 20 20 20 20 43 41 53 20 4F 55 ).. CAS OU
02DFD0: 54 20 43 48 41 52 0D 0A 20 20 20 20 20 20 20 43 T CHAR.. C
02DFE0: 41 53 20 4F 55 54 20 43 4C 4F 53 45 20 28 44 49 AS OUT CLOSE (DI
02DFF0: 53 43 29 0D 0A 20 20 20 20 20 20 20 43 41 53 20 SC).. CAS
02E000: 4F 55 54 20 44 49 52 45 43 54 20 28 44 49 53 43 OUT DIRECT (DISC
02E010: 29 0D 0A 20 20 20 20 20 20 20 43 41 53 20 4F 55 ).. CAS OU
02E020: 54 20 4F 50 45 4E 20 28 44 49 53 43 29 0D 0A 0D T OPEN (DISC)...
02E030: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
02E040: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
02E050: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
02E060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02E070: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
02E080: 2E 31 35 36 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A .156............
02E090: 0D 0A 20 20 20 20 20 20 20 31 33 36 3A 20 43 41 .. 136: CA
02E0A0: 53 20 4F 55 54 20 44 49 52 45 43 54 20 20 20 20 S OUT DIRECT
02E0B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02E0C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02E0D0: 20 20 20 20 20 20 20 20 20 20 23 42 43 39 38 0D #BC98.
02E0E0: 0A 0D 0A 20 20 20 20 20 20 20 57 72 69 74 65 20 ... Write
02E0F0: 74 68 65 20 6F 75 74 70 75 74 20 66 69 6C 65 20 the output file
02E100: 64 69 72 65 63 74 6C 79 20 66 72 6F 6D 20 73 74 directly from st
02E110: 6F 72 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ore..... A
02E120: 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 ction:....
02E130: 20 57 72 69 74 65 20 74 68 65 20 63 6F 6E 74 65 Write the conte
02E140: 6E 74 73 20 6F 66 20 73 74 6F 72 65 20 64 69 72 nts of store dir
02E150: 65 63 74 6C 79 20 6F 75 74 20 74 6F 20 74 68 65 ectly out to the
02E160: 20 6F 75 74 70 75 74 20 66 69 6C 65 2E 0D 0A 0D output file....
02E170: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
02E180: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
02E190: 20 20 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 HL contains
02E1A0: 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 the address of t
02E1B0: 68 65 20 64 61 74 61 20 74 6F 20 77 72 69 74 65 he data to write
02E1C0: 2E 0D 0A 20 20 20 20 20 20 20 44 45 20 63 6F 6E ... DE con
02E1D0: 74 61 69 6E 73 20 74 68 65 20 6C 65 6E 67 74 68 tains the length
02E1E0: 20 6F 66 20 74 68 65 20 64 61 74 61 20 74 6F 20 of the data to
02E1F0: 77 72 69 74 65 2E 0D 0A 20 20 20 20 20 20 20 42 write... B
02E200: 43 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 65 C contains the e
02E210: 6E 74 72 79 20 61 64 64 72 65 73 73 20 28 74 6F ntry address (to
02E220: 20 67 6F 20 69 6E 74 6F 20 74 68 65 20 68 65 61 go into the hea
02E230: 64 65 72 29 2E 0D 0A 20 20 20 20 20 20 20 41 20 der)... A
02E240: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 66 69 6C contains the fil
02E250: 65 20 74 79 70 65 20 28 74 6F 20 67 6F 20 69 6E e type (to go in
02E260: 74 6F 20 74 68 65 20 68 65 61 64 65 72 29 2E 0D to the header)..
02E270: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
02E280: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 onditions:....
02E290: 20 20 20 20 20 49 66 20 74 68 65 20 66 69 6C 65 If the file
02E2A0: 20 77 61 73 20 77 72 69 74 74 65 6E 20 4F 4B 3A was written OK:
02E2B0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02E2C0: 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A 20 Carry true...
02E2D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5A Z
02E2E0: 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 ero false...
02E2F0: 20 20 20 20 20 20 20 20 20 20 20 20 41 20 63 6F A co
02E300: 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 rrupt.....
02E310: 20 49 66 20 74 68 65 20 66 69 6C 65 20 77 61 73 If the file was
02E320: 20 6E 6F 74 20 6F 70 65 6E 20 61 73 20 65 78 70 not open as exp
02E330: 65 63 74 65 64 3A 0D 0A 20 20 20 20 20 20 20 20 ected:..
02E340: 20 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 Carry fa
02E350: 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 lse...
02E360: 20 20 20 20 20 20 5A 65 72 6F 20 66 61 6C 73 65 Zero false
02E370: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
02E380: 20 20 20 49 6E 20 56 31 2E 31 3A 20 41 20 63 6F In V1.1: A co
02E390: 6E 74 61 69 6E 73 20 61 6E 20 65 72 72 6F 72 20 ntains an error
02E3A0: 6E 75 6D 62 65 72 20 28 23 30 45 29 2E 0D 0A 20 number (#0E)...
02E3B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 I
02E3C0: 6E 20 56 31 2E 30 3A 20 61 20 63 6F 72 72 75 70 n V1.0: a corrup
02E3D0: 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 t..... If
02E3E0: 74 68 65 20 75 73 65 72 20 68 69 74 20 65 73 63 the user hit esc
02E3F0: 61 70 65 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 ape:..
02E400: 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 Carry fals
02E410: 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 e...
02E420: 20 20 20 20 5A 65 72 6F 20 74 72 75 65 2E 0D 0A Zero true...
02E430: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02E440: 20 20 49 6E 20 56 31 2E 31 3A 20 41 20 63 6F 6E In V1.1: A con
02E450: 74 61 69 6E 73 20 61 6E 20 65 72 72 6F 72 20 6E tains an error n
02E460: 75 6D 62 65 72 20 28 23 30 30 29 2E 0D 0A 20 20 umber (#00)...
02E470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6E In
02E480: 20 56 31 2E 30 3A 20 41 20 63 6F 72 72 75 70 74 V1.0: A corrupt
02E490: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 79 73 ... Always
02E4A0: 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 :..
02E4B0: 20 20 20 42 43 2C 20 44 45 2C 20 48 4C 2C 20 49 BC, DE, HL, I
02E4C0: 58 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 X and other flag
02E4D0: 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 s corrupt...
02E4E0: 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 All
02E4F0: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
02E500: 70 72 65 73 65 72 76 65 64 2E 0D 0A 20 20 20 20 preserved...
02E510: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 Notes:....
02E520: 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 This routine
02E530: 20 63 61 6E 20 72 65 74 75 72 6E 20 74 77 6F 20 can return two
02E540: 65 72 72 6F 72 20 6E 75 6D 62 65 72 73 3A 0D 0A error numbers:..
02E550: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02E560: 20 20 23 30 30 3A 20 20 20 20 20 20 54 68 65 20 #00: The
02E570: 75 73 65 72 20 68 69 74 20 65 73 63 61 70 65 2E user hit escape.
02E580: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02E590: 20 20 23 30 45 3A 20 20 20 20 20 20 54 68 65 20 #0E: The
02E5A0: 73 74 72 65 61 6D 20 69 73 20 6E 6F 74 20 6E 65 stream is not ne
02E5B0: 77 6C 79 20 6F 70 65 6E 65 64 2E 0D 0A 0D 0A 20 wly opened.....
02E5C0: 20 20 20 20 20 20 41 66 74 65 72 20 77 72 69 74 After writ
02E5D0: 69 6E 67 20 74 68 65 20 66 69 6C 65 20 69 74 20 ing the file it
02E5E0: 6D 75 73 74 20 62 65 20 63 6C 6F 73 65 64 20 75 must be closed u
02E5F0: 73 69 6E 67 20 43 41 53 20 4F 55 54 20 43 4C 4F sing CAS OUT CLO
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: 53 45 20 74 6F 20 65 6E 73 75 72 65 0D 0A 20 20 SE to ensure..
02E710: 20 20 20 20 20 74 68 61 74 20 74 68 65 20 6C 61 that the la
02E720: 73 74 20 62 6C 6F 63 6B 20 6F 66 20 74 68 65 20 st block of the
02E730: 66 69 6C 65 20 69 73 20 77 72 69 74 74 65 6E 20 file is written
02E740: 74 6F 20 74 61 70 65 2E 0D 0A 0D 0A 20 20 20 20 to tape.....
02E750: 20 20 20 49 74 20 69 73 20 6E 6F 74 20 70 6F 73 It is not pos
02E760: 73 69 62 6C 65 20 20 74 6F 20 20 63 68 61 6E 67 sible to chang
02E770: 65 20 20 74 68 65 20 20 6D 65 74 68 6F 64 20 20 e the method
02E780: 66 6F 72 20 20 77 72 69 74 69 6E 67 20 20 66 69 for writing fi
02E790: 6C 65 73 20 20 66 72 6F 6D 0D 0A 20 20 20 20 20 les from..
02E7A0: 20 20 63 68 61 72 61 63 74 65 72 20 6F 75 74 70 character outp
02E7B0: 75 74 20 28 75 73 69 6E 67 20 43 41 53 20 4F 55 ut (using CAS OU
02E7C0: 54 20 43 48 41 52 29 20 74 6F 20 64 69 72 65 63 T CHAR) to direc
02E7D0: 74 20 6F 75 74 70 75 74 20 28 75 73 69 6E 67 20 t output (using
02E7E0: 43 41 53 20 20 4F 55 54 0D 0A 20 20 20 20 20 20 CAS OUT..
02E7F0: 20 44 49 52 45 43 54 29 20 6F 72 20 76 69 73 61 DIRECT) or visa
02E800: 20 76 65 72 73 61 20 6F 6E 63 65 20 74 68 65 20 versa once the
02E810: 6D 65 74 68 6F 64 20 20 68 61 73 20 20 62 65 65 method has bee
02E820: 6E 20 20 63 68 6F 73 65 6E 2E 20 20 4E 6F 72 20 n chosen. Nor
02E830: 20 69 73 20 20 69 74 0D 0A 20 20 20 20 20 20 20 is it..
02E840: 70 6F 73 73 69 62 6C 65 20 74 6F 20 64 69 72 65 possible to dire
02E850: 63 74 6C 79 20 77 72 69 74 65 20 61 20 66 69 6C ctly write a fil
02E860: 65 20 69 6E 20 74 77 6F 20 6F 66 20 6D 6F 72 65 e in two of more
02E870: 20 70 61 72 74 73 20 62 79 20 63 61 6C 6C 69 6E parts by callin
02E880: 67 20 20 43 41 53 0D 0A 20 20 20 20 20 20 20 4F g CAS.. O
02E890: 55 54 20 44 49 52 45 43 54 20 6D 6F 72 65 20 74 UT DIRECT more t
02E8A0: 68 61 6E 20 6F 6E 63 65 20 2D 20 74 68 69 73 20 han once - this
02E8B0: 77 69 6C 6C 20 77 72 69 74 65 20 63 6F 72 72 75 will write corru
02E8C0: 70 74 20 20 64 61 74 61 2E 20 20 41 74 74 65 6D pt data. Attem
02E8D0: 70 74 69 6E 67 0D 0A 20 20 20 20 20 20 20 74 6F pting.. to
02E8E0: 20 62 72 65 61 6B 20 74 68 65 73 65 20 72 75 6C break these rul
02E8F0: 65 73 20 77 69 6C 6C 20 72 65 73 75 6C 74 20 69 es will result i
02E900: 6E 20 61 20 66 69 6C 65 20 6E 6F 74 20 6F 70 65 n a file not ope
02E910: 6E 20 61 73 20 65 78 70 65 63 74 65 64 20 65 72 n as expected er
02E920: 72 6F 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 ror..... R
02E930: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 0D 0A elated entries..
02E940: 0D 0A 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 .. CAS IN
02E950: 44 49 52 45 43 54 20 20 20 20 20 20 20 20 20 20 DIRECT
02E960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02E970: 43 41 53 20 4F 55 54 20 44 49 52 45 43 54 20 28 CAS OUT DIRECT (
02E980: 44 49 53 43 29 0D 0A 20 20 20 20 20 20 20 43 41 DISC).. CA
02E990: 53 20 4F 55 54 20 43 4C 4F 53 45 20 20 20 20 20 S OUT CLOSE
02E9A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02E9B0: 20 20 20 20 20 43 41 53 20 4F 55 54 20 4F 50 45 CAS OUT OPE
02E9C0: 4E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 N.... AMST
02E9D0: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
02E9E0: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
02E9F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02EA00: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 page 15.1
02EA10: 35 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 57..............
02EA20: 20 20 20 20 20 20 20 31 33 36 3A 20 43 41 53 20 136: CAS
02EA30: 4F 55 54 20 44 49 52 45 43 54 20 28 44 49 53 43 OUT DIRECT (DISC
02EA40: 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )
02EA50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02EA60: 20 20 20 20 20 20 20 20 23 42 43 39 38 0D 0A 0D #BC98...
02EA70: 0A 20 20 20 20 20 20 20 57 72 69 74 65 20 74 68 . Write th
02EA80: 65 20 6F 75 74 70 75 74 20 66 69 6C 65 20 64 69 e output file di
02EA90: 72 65 63 74 6C 79 20 66 72 6F 6D 20 73 74 6F 72 rectly from stor
02EAA0: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 e..... Act
02EAB0: 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 ion:.... W
02EAC0: 72 69 74 65 20 74 68 65 20 63 6F 6E 74 65 6E 74 rite the content
02EAD0: 73 20 6F 66 20 73 74 6F 72 65 20 64 69 72 65 63 s of store direc
02EAE0: 74 6C 79 20 6F 75 74 20 74 6F 20 74 68 65 20 6F tly out to the o
02EAF0: 75 74 70 75 74 20 66 69 6C 65 2E 0D 0A 0D 0A 20 utput file.....
02EB00: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
02EB10: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
02EB20: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 HL contains th
02EB30: 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 e address of the
02EB40: 20 64 61 74 61 20 74 6F 20 77 72 69 74 65 20 28 data to write (
02EB50: 74 6F 20 67 6F 20 69 6E 74 6F 20 74 68 65 20 68 to go into the h
02EB60: 65 61 64 65 72 29 2E 0D 0A 20 20 20 20 20 20 20 eader)...
02EB70: 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 DE contains the
02EB80: 6C 65 6E 67 74 68 20 6F 66 20 74 68 65 20 64 61 length of the da
02EB90: 74 61 20 74 6F 20 77 72 69 74 65 20 28 74 6F 20 ta to write (to
02EBA0: 67 6F 20 69 6E 74 6F 20 74 68 65 20 68 65 61 64 go into the head
02EBB0: 65 72 29 2E 0D 0A 20 20 20 20 20 20 20 42 43 20 er)... BC
02EBC0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 65 6E 74 contains the ent
02EBD0: 72 79 20 61 64 64 72 65 73 73 20 28 74 6F 20 67 ry address (to g
02EBE0: 6F 20 69 6E 74 6F 20 74 68 65 20 68 65 61 64 65 o into the heade
02EBF0: 72 29 2E 0D 0A 20 20 20 20 20 20 20 41 20 63 6F r)... A co
02EC00: 6E 74 61 69 6E 73 20 74 68 65 20 66 69 6C 65 20 ntains the file
02EC10: 74 79 70 65 20 28 74 6F 20 67 6F 20 69 6E 74 6F type (to go into
02EC20: 20 74 68 65 20 68 65 61 64 65 72 29 2E 0D 0A 0D the header)....
02EC30: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
02EC40: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
02EC50: 20 20 20 49 66 20 74 68 65 20 66 69 6C 65 20 77 If the file w
02EC60: 61 73 20 77 72 69 74 74 65 6E 20 4F 4B 3A 0D 0A as written OK:..
02EC70: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
02EC80: 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A 20 Carry true...
02EC90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5A Z
02ECA0: 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 ero false...
02ECB0: 20 20 20 20 20 20 20 20 20 20 20 20 41 20 63 6F A co
02ECC0: 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 rrupt.....
02ECD0: 20 49 66 20 74 68 65 20 73 74 72 65 61 6D 20 69 If the stream i
02ECE0: 73 20 6E 6F 74 20 6F 70 65 6E 20 61 73 20 65 78 s not open as ex
02ECF0: 70 65 63 74 65 64 3A 0D 0A 0D 0A 20 20 20 20 20 pected:....
02ED00: 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 Carry
02ED10: 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 false...
02ED20: 20 20 20 20 20 20 20 20 20 5A 65 72 6F 20 66 61 Zero fa
02ED30: 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 lse...
02ED40: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
02ED50: 20 61 6E 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 an error number
02ED60: 20 28 23 30 45 29 2E 0D 0A 0D 0A 20 20 20 20 20 (#0E).....
02ED70: 20 20 49 66 20 66 61 69 6C 65 64 20 66 6F 72 20 If failed for
02ED80: 61 6E 79 20 6F 74 68 65 72 20 72 65 61 73 6F 6E any other reason
02ED90: 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 :..
02EDA0: 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D Carry false..
02EDB0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02EDC0: 20 5A 65 72 6F 20 74 72 75 65 2E 0D 0A 20 20 20 Zero true...
02EDD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 63 A c
02EDE0: 6F 6E 74 61 69 6E 73 20 61 6E 20 65 72 72 6F 72 ontains an error
02EDF0: 20 6E 75 6D 62 65 72 2E 0D 0A 0D 0A 20 20 20 20 number.....
02EE00: 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A 20 20 Always:....
02EE10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 43 BC
02EE20: 2C 20 44 45 2C 20 48 4C 2C 20 49 58 20 61 6E 64 , DE, HL, IX and
02EE30: 20 6F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 other flags cor
02EE40: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 rupt...
02EE50: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
02EE60: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
02EE70: 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rved.....
02EE80: 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 Notes:....
02EE90: 20 41 66 74 65 72 20 77 72 69 74 69 6E 67 20 74 After writing t
02EEA0: 68 65 20 66 69 6C 65 20 69 74 20 6D 75 73 74 20 he file it must
02EEB0: 62 65 20 63 6C 6F 73 65 64 20 75 73 69 6E 67 20 be closed using
02EEC0: 43 41 53 20 4F 55 54 20 43 4C 4F 53 45 20 74 6F CAS OUT CLOSE to
02EED0: 20 65 6E 73 75 72 65 0D 0A 20 20 20 20 20 20 20 ensure..
02EEE0: 74 68 61 74 20 74 68 65 20 66 69 6C 65 20 69 73 that the file is
02EEF0: 20 77 72 69 74 74 65 6E 20 74 6F 20 64 69 73 63 written to disc
02EF00: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 74 20 69 ..... It i
02EF10: 73 20 6E 6F 74 20 70 6F 73 73 69 62 6C 65 20 20 s not possible
02EF20: 74 6F 20 20 63 68 61 6E 67 65 20 20 74 68 65 20 to change the
02EF30: 20 6D 65 74 68 6F 64 20 20 66 6F 72 20 20 77 72 method for wr
02EF40: 69 74 69 6E 67 20 20 66 69 6C 65 73 20 20 66 72 iting files fr
02EF50: 6F 6D 0D 0A 20 20 20 20 20 20 20 63 68 61 72 61 om.. chara
02EF60: 63 74 65 72 20 6F 75 74 70 75 74 20 28 75 73 69 cter output (usi
02EF70: 6E 67 20 43 41 53 20 4F 55 54 20 43 48 41 52 29 ng CAS OUT CHAR)
02EF80: 20 74 6F 20 64 69 72 65 63 74 20 6F 75 74 70 75 to direct outpu
02EF90: 74 20 28 75 73 69 6E 67 20 43 41 53 20 20 4F 55 t (using CAS OU
02EFA0: 54 0D 0A 20 20 20 20 20 20 20 44 49 52 45 43 54 T.. DIRECT
02EFB0: 29 20 6F 72 20 76 69 73 61 20 76 65 72 73 61 20 ) or visa versa
02EFC0: 6F 6E 63 65 20 74 68 65 20 6D 65 74 68 6F 64 20 once the method
02EFD0: 20 68 61 73 20 20 62 65 65 6E 20 20 63 68 6F 73 has been chos
02EFE0: 65 6E 2E 20 20 4E 6F 72 20 20 69 73 20 20 69 74 en. Nor is it
02EFF0: 0D 0A 20 20 20 20 20 20 20 70 6F 73 73 69 62 6C .. possibl
02F000: 65 20 74 6F 20 64 69 72 65 63 74 6C 79 20 77 72 e to directly wr
02F010: 69 74 65 20 61 20 66 69 6C 65 20 69 6E 20 74 77 ite a file in tw
02F020: 6F 20 6F 66 20 6D 6F 72 65 20 70 61 72 74 73 20 o of more parts
02F030: 62 79 20 63 61 6C 6C 69 6E 67 20 20 43 41 53 0D by calling CAS.
02F040: 0A 20 20 20 20 20 20 20 4F 55 54 20 44 49 52 45 . OUT DIRE
02F050: 43 54 20 6D 6F 72 65 20 74 68 61 6E 20 6F 6E 63 CT more than onc
02F060: 65 20 2D 20 74 68 69 73 20 77 69 6C 6C 20 77 72 e - this will wr
02F070: 69 74 65 20 63 6F 72 72 75 70 74 20 64 61 74 61 ite corrupt data
02F080: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
02F090: 74 65 64 20 65 6E 74 72 69 65 73 0D 0A 0D 0A 20 ted entries....
02F0A0: 20 20 20 20 20 20 43 41 53 20 49 4E 20 44 49 52 CAS IN DIR
02F0B0: 45 43 54 20 28 44 49 53 43 29 0D 0A 20 20 20 20 ECT (DISC)..
02F0C0: 20 20 20 43 41 53 20 4F 55 54 20 43 4C 4F 53 45 CAS OUT CLOSE
02F0D0: 20 28 44 49 53 43 29 0D 0A 20 20 20 20 20 20 20 (DISC)..
02F0E0: 43 41 53 20 4F 55 54 20 44 49 52 45 43 54 0D 0A CAS OUT DIRECT..
02F0F0: 20 20 20 20 20 20 20 43 41 53 20 4F 55 54 20 4F CAS OUT O
02F100: 50 45 4E 20 28 44 49 53 43 29 0D 0A 0D 0A 0D 0A PEN (DISC)......
02F110: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
02F120: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
02F130: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
02F140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02F150: 20 20 20 20 70 61 67 65 20 31 35 2E 31 35 38 0D page 15.158.
02F160: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
02F170: 20 20 20 20 31 33 37 3A 20 43 41 53 20 43 41 54 137: CAS CAT
02F180: 41 4C 4F 47 20 20 20 20 20 20 20 20 20 20 20 20 ALOG
02F190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02F1A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02F1B0: 20 20 20 20 20 23 42 43 39 42 0D 0A 0D 0A 0D 0A #BC9B......
02F1C0: 20 20 20 20 20 20 20 47 65 6E 65 72 61 74 65 20 Generate
02F1D0: 61 20 63 61 74 61 6C 6F 67 75 65 20 66 72 6F 6D a catalogue from
02F1E0: 20 74 61 70 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 tape.......
02F1F0: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A Action:......
02F200: 20 20 20 20 20 20 20 52 65 61 64 20 66 69 6C 65 Read file
02F210: 20 62 6C 6F 63 6B 73 20 74 6F 20 63 68 65 63 6B blocks to check
02F220: 20 74 68 65 69 72 20 76 61 6C 69 64 69 74 79 20 their validity
02F230: 61 6E 64 20 70 72 69 6E 74 20 20 69 6E 66 6F 72 and print infor
02F240: 6D 61 74 69 6F 6E 20 20 61 62 6F 75 74 0D 0A 20 mation about..
02F250: 20 20 20 20 20 20 74 68 65 6D 20 6F 6E 20 74 68 them on th
02F260: 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 e screen.......
02F270: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
02F280: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
02F290: 20 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 DE contains
02F2A0: 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 61 the address of a
02F2B0: 20 32 4B 20 62 75 66 66 65 72 20 74 6F 20 75 73 2K buffer to us
02F2C0: 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 e....... E
02F2D0: 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D xit conditions:.
02F2E0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
02F2F0: 68 65 20 63 61 74 61 6C 6F 67 69 6E 67 20 77 65 he cataloging we
02F300: 6E 74 20 4F 4B 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 nt OK:......
02F310: 20 20 20 20 20 20 20 20 20 20 20 20 43 61 72 72 Carr
02F320: 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 y true...
02F330: 20 20 20 20 20 20 20 20 20 5A 65 72 6F 20 66 61 Zero fa
02F340: 6C 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 lse...
02F350: 20 20 20 20 20 20 41 20 63 6F 72 72 75 70 74 2E A corrupt.
02F360: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 ...... If
02F370: 74 68 65 20 72 65 61 64 20 73 74 72 65 61 6D 20 the read stream
02F380: 77 61 73 20 69 6E 20 75 73 65 3A 0D 0A 0D 0A 0D was in use:.....
02F390: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02F3A0: 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 Carry false...
02F3B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5A Z
02F3C0: 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 ero false...
02F3D0: 20 20 20 20 20 20 20 20 20 20 20 20 49 6E 20 56 In V
02F3E0: 31 2E 31 3A 20 41 20 63 6F 6E 74 61 69 6E 73 20 1.1: A contains
02F3F0: 61 6E 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 20 an error number
02F400: 28 23 30 45 29 2E 2E 0D 0A 20 20 20 20 20 20 20 (#0E)....
02F410: 20 20 20 20 20 20 20 20 20 49 6E 20 56 31 2E 30 In V1.0
02F420: 3A 20 41 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A : A corrupt.....
02F430: 20 20 20 20 20 20 20 41 6C 77 61 79 73 0D 0A 0D Always...
02F440: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
02F450: 20 20 20 42 43 2C 20 44 45 2C 20 48 4C 2C 20 49 BC, DE, HL, I
02F460: 58 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 X and other flag
02F470: 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 s corrupt...
02F480: 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 All
02F490: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
02F4A0: 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ved.......
02F4B0: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 Notes:......
02F4C0: 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 This routine
02F4D0: 20 63 61 6E 20 6F 6E 6C 79 20 72 65 74 75 72 6E can only return
02F4E0: 20 6F 6E 65 20 65 72 72 6F 72 20 6E 75 6D 62 65 one error numbe
02F4F0: 72 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 r:......
02F500: 20 20 20 20 20 20 20 20 23 30 45 3A 20 20 20 20 #0E:
02F510: 20 20 54 68 65 20 73 74 72 65 61 6D 20 69 73 20 The stream is
02F520: 61 6C 72 65 61 64 79 20 69 6E 20 75 73 65 2E 0D already in use..
02F530: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 ... This r
02F540: 6F 75 74 69 6E 65 20 75 73 65 73 20 74 68 65 20 outine uses the
02F550: 72 65 61 64 20 73 74 72 65 61 6D 20 61 6E 64 20 read stream and
02F560: 73 6F 20 74 68 65 20 20 73 74 72 65 61 6D 20 20 so the stream
02F570: 6D 75 73 74 20 20 62 65 20 20 63 6C 6F 73 65 64 must be closed
02F580: 0D 0A 20 20 20 20 20 20 20 77 68 65 6E 20 69 74 .. when it
02F590: 20 69 73 20 63 61 6C 6C 65 64 2E 20 54 68 65 20 is called. The
02F5A0: 72 65 61 64 20 73 74 72 65 61 6D 20 72 65 6D 61 read stream rema
02F5B0: 69 6E 73 20 63 6C 6F 73 65 64 20 20 77 68 65 6E ins closed when
02F5C0: 20 20 74 68 69 73 20 20 72 6F 75 74 69 6E 65 0D this routine.
02F5D0: 0A 20 20 20 20 20 20 20 65 78 69 74 73 2E 20 54 . exits. T
02F5E0: 68 65 20 77 72 69 74 65 20 73 74 72 65 61 6D 20 he write stream
02F5F0: 69 73 20 75 6E 61 66 66 65 63 74 65 64 20 62 79 is unaffected by
02F600: 20 74 68 69 73 20 72 6F 75 74 69 6E 65 2E 0D 0A this routine...
02F610: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
02F620: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
02F630: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
02F640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02F650: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
02F660: 31 35 39 0D 0A 1A 61 64 20 74 68 65 20 69 6E 70 159...ad the inp
02F670: 75 74 20 66 69 6C 65 20 69 6E 74 6F 20 73 74 6F ut file into sto
02F680: 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 All
02F690: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
02F6A0: 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ved.......
02F6B0: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 Notes:......
02F6C0: 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 This routine
02F6D0: 20 63 61 6E 20 6F 6E 6C 79 20 72 65 74 75 72 6E can only return
02F6E0: 20 6F 6E 65 20 65 72 72 6F 72 20 6E 75 6D 62 65 one error numbe
02F6F0: 72 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 r:......
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=36 CHEA=0 COD=49 MUSI=0 COP=10 GRA=279 WRIT=213 198=0 199=2 STARTER=0 KBI=0 CAAV=0 L.TOURNIER=0
EXTENDED CPC DSK File SAMdisk120417( PCHAP-15 10tuvwxyzCHAP-15 11 CHAP-15 1
1dCHAP-15 12xefghijklmnopqrsCHAP-15 13£CHAP-15 14CHAP-15 4 yCHAP-15 5 !CHAP-15
6 "#$%&'()*+,-./01CHAP-15 6 2CHAP-15 7 3456789ABCHAP-15 8 CDEFGHIJKLMNOPQRCHAP-1
5 8 SCHAP-15 9 TUVWXYZabc 114 SCR REPACK
#BC56 Compress a character matrix to the
standard form. Action A character on the screen is conv
erted to a matrix by comparing each pixel with an ink. If the pixe
l is set to that ink then the appropriate bit in the character ma
trix is set, otherwise the bit is cleared. Entry condition
s A contains the encoded ink to match against. H contains th
e physical character column to read from. L contains the physical charac
ter row to read from. DE contains the address of the area to construct t
he matrix in. Exit conditions AF, BC, DE and HL corrupt.
All other registers preserved. Notes The charac
ter position is given in physical coordinates in which row 0, column 0
is the top left corner of the screen. The character position given
is not checked for legality. An illegal position (one outside the
limits of the screen) will have unpredictable effects.
The matrix produced has the normal layout. It is 8 bytes long, stored
top line first and bottom line last, the most significant bit of the
byte refers to the leftmost pixel of a line and the least significant
bit to the rightmost pixel. Because the pixels are tested for being
set to only one ink the matrix produced is not an exact representation
of what is in the screen. It may be necessary, when trying to read cha
racters from the screen, to repack using various different inks.
Related entries SCR UNPACK TXT RD CHAR AMSTRAD
CPC464/664/6128 FIRMWARE page 15.119
115 SCR ACCESS #BC59
Set the screen write mode for the Graphics VDU. Action Se
t the Graphics VDU write mode so that the Graphics VDU plots pixels by
writing, anding, oring or exclusive-oring. Entry conditions
A contains the required write mode. Exit conditions AF, BC,
DE and HL corrupt. All other registers preserved. Notes
The write mode is masked with #03 to make it legal. The write modes
are 0 FORCE mode NEW INK 1 XOR mode
NE PW INK exclusive-or OLD 2 AND mode NEW INK a
nd OLD 3 OR mode NEW INK or OLD NEW is
the final setting of the pixel. OLD is the current setting of the p
ixel. INK is the ink being plotted. The default mode
is FORCE mode (mode 0) and is set at EMS and when SCR RESET is called.
Setting the write mode affects how the indirection routine SCR WRIT
E sets pixels. Graphics VDU plotting routines call this indirection to
set pixels and so the write mode affects the Graphics VDU. No Text VDU
routines call this indirection (they set pixels on the screen
directly) and so the write mode does not affect the Text VDU. The
routines that clear areas of the screen (e.g. GRA CLEAR WINDOW) act
like the Text VDU and are unaffected by the write mode. Relat
ed entries GRA DEFAULT SCR INITIALISE SCR RESET
SCR WRITE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.120 116 SCR PIXELS
#BC5C Write a pixel to the screen ignorin
g the Graphics VDU write mode. Action Write a pixel or p
ixels to the screen. The position to write at is given by a screen a
ddress and pixel mask. The pixel is always set to the ink supplied wha
tever mode of writing the Graphics VDU is using. Entry conditions
B contains the encoded ink to write. C contains the mask for t
he pixel(s). HL contains the screen address of the pixel(s).
Exit conditions AF corrupt. All other registers preserved.
Notes The screen address is not checked and so passing
an invalid screen address will have unpredictable results.
The pixel mask may be a combined mask for more than one pixel (thus
speeding up plotting in certain cases). To plot a pixel using the G
raphics VDU write mode SCR WRITE should be called. SCR PIXELS is equiva
lent to calling SCR WRITE when the default mode (FORCE mode) is selecte
d. The Text VDU sets the pixels in characters using FORCE mode.
Related entries SCR WRITE AMSTR
AD CPC464/664/6128 FIRMWARE page 15.121
117 SCR HORIZONTAL #BC5F
Plot a purely horizontal line. Action Draw a line on t
he screen that runs horizontally. The pixels on the line are plotted
using the SCR WRITE indirection and thus use the current Graphics V
DU write mode. Entry conditions A contains the encoded ink t
o draw in. DE contains the base X coordinate of the start of the line.
BC contains the base X coordinate of the end of the line. HL cont
ains the base Y coordinate of the line. Exit conditions AF
, BC, DE and HL corrupt. All other registers preserved. Note
s The endpoints of the line are given in base coordinates. i.e. (0,0
) is the pixel in the bottom left corner of the screen and each coordin
ate position refers to a single pixel. The endpoints are not
checked for being legal (within the limits of the screen). If they a
re not legal then unpredictable effects may occur. The
start X coordinate must be less than or equal to the end X coord
inate. This routine may be used to duplicate the method that the Gra
phics VDU uses for plotting lines - it splits a line that is more ho
rizontal than vertical into a number of segments that are purely horizon
tal and plots these separately. Related entries
GRA FROM USER GRA LINE ABSOLUTE GRA LINE RELATIVE SCR VE
RTICAL AMSTRAD CPC464/664/6128 FIRMWARE
page 15.122 118 SCR VERTICAL
#BC62 Plot a purely vertical line. Actio
n Draw a line on the screen that runs vertically. The SCR WRI
TE indirection is used to plot pixel in the line thus the curren
t Graphics VDU write mode is Pused. Entry conditions
A contains the encoded ink to draw in. DE contains the base X coordin
ate of the line. HL contains the base Y coordinate of the start of the l
ine. BC contains the base Y coordinate of the end of the line.
Exit conditions AF, BC, DE and HL corrupt. All other register
s preserved. Notes The endpoints of the line are given i
n base coordinates. i.e. (0,0) is the pixel in the bottom left corner of
the screen and each coordinate position refers to a single pixel.
The endpoints are not checked for being legal (within the limits of
the screen). If they are not legal then unpredictable effects may
occur. The start Y coordinate must be less than or equal
to the end Y coordinate. This routine may be used to dupl
icate the method that the Graphics VDU uses for plotting lines - it spli
ts a line that is more vertical than horizontal into a number of segmen
ts that are purely vertical and plots these separately.
Related entries GRA FROM USER GRA LINE ABSOLUTE G
RA LINE RELATIVE SCR HORIZONTAL AMSTRAD CPC464/664/612
8 FIRMWARE page 15.123 119 CAS INI
TIALISE #BC65 Initializ
e the Cassette Manager. Action Full initialization of th
e Cassette Manager (as used during EMS). Entry conditions
No conditions. Exit conditions AF,BC,DE and HL corrupt
. All other registers preserved. Notes Operation
s carried out are All streams are marked closed.
The default write speed is set up. The prompt messages a
re turned off. The cassette motor is turned off (except on V1.0
firmware). Related entries CAS IN ABANDON CAS
NOISY CAS OUT ABANDON CAS SET SPEED CAS STOP MOTOR
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.124 120 CAS SET SPEED
#BC68 Set the write speed. Action
Set the length to write bits and the amount of write precompensation
to apply. Entry conditions HL contains the length of
half a zero bit. A contains the precompensation to apply. Exi
t conditions AF and HL corrupt. All other registers preserved.
Notes The speed supplied is the length of half a zero bit i
n microseconds. A one bit is written as twice the length of a zero
bit. The speed supplied can be related to the average baud rate (
assuming equal numbers of ones and zeros) by the following equation
Average baud rate 1 000 000 / (3 * Halfzer
o length) 333 333 / Halfzero length The halfzero l
ength must lie between 130 and 480 microseconds. Values outside this ra
nge will cause read and write errors. The precompensation supplied is
the extra length, in microseconds, to add to half a one bit and to subt
ract from half a zero bit under certain conditions. The amount of
precompensation required varies with the speed (more is required at high
er baud rates). The precompensation may lie between 0 and 255 micros
econds although the higher settings are not useful as they will cause r
ead and write errors. The default half zero length and pre
compensation settings are 333 microseconds (1000 baud) and 25 mi
croseconds respectively. The commonly used faster setting is 167 micr
oseconds (2000 baud) with 50 microseconds of precompensation. These v
alues have been determined after extensive testing and the user is ad
vised to stick to them. Related entries CAS INITIALISE
AMSTRAD CPC464/664/6128 FIRMWARE page 1
5.125 121 CAS NOISY
#BC6B Enable or disable prompt messages. Actio
n Disabling messages will prevent the prompt and inf Pormation m
essages from being printed. It will not prevent error messages from
being printed. Enabling messages allows all messages to be printed.
Entry conditions If messages are to be enabled
A must be zero. If messages are to be disabled A
must be non-zero. Exit conditions AF corrupt. All o
ther registers preserved. Notes The prompt and informati
on messages which are turned off are Press PLAY then any ke
y Press REC and PLAY then any key Found FILENA
ME block N Loading FILENAME block N Saving FIL
ENAME block N The error messages which are not turned off are
Read error x Write error a Rewi
nd tape Related entries CAS INITIALISE
AMSTRAD CPC464/664/6128 FIRMWARE page 15.126
122 CAS START MOTOR #BC6
E Start the cassette motor. Action Turn the
cassette motor on and wait for it to pick up speed if it was previously
off. Entry conditions No conditions. Exit c
onditions If the motor turned on OK Carry true.
If the user hit escape Carry false. Always
A contains the previous motor state. Othe
r flags corrupt. All other registers preserved. Notes
If the motor is not already on then the routine waits fo
r approximately two seconds to allow the tape to reach full speed.
The motor is always turned on by this routine. If the user hits the
escape key then the time spent waiting for the motor to pick up speed
is truncated. The previous motor state may be passed to CAS RESTORE
MOTOR. Related entries CAS RESTORE MOTOR CAS ST
OP MOTOR AMSTRAD CPC464/664/6128 FIRMWARE
page 15.127 123 CAS STOP MOTOR
#BC71 Stop the cassette motor. Act
ion Turn the cassette motor off and return its previous state.
Entry conditions No conditions. Exit conditions
If the motor was turned off OK Carry true.
If the user hit escape Carry false. Alwa
ys A contains the previous motor state. Ot
her flags corrupt. All other registers preserved. Not
es The motor is always turned off by this routine. There is no dela
y to allow the motor to slow down. The previous motor state
may be passed to CAS RESTORE MOTOR. Related entries CAS R
ESTORE MOTOR CAS START MOTOR AMSTRAD CPC464/664/6128 F
IRMWARE page 15.128 124 CAS RESTOR
E MOTOR #BC74 Restore prev
ious state of cassette motor. Action Turn the cassette m
otor on or off again. Wait for motor to pick up speed when turning t
he motor on if it is currently off. Entry conditions A c
ontains the previous motor state. Exit conditions If the
motor was turned on or off OK Carry true. If the
user hit escape Carry false. Always
A and other flags corrupt. All other registers preserved
. Notes This routine uses the previous motor state as return
ed by CAS START MOTOR or CAS STOP MOTOR. If calling this ro
utine results in the motor being turned on when it is currently off th
en the routine waits for approximately two seconds to allow the tape to
reach full speed. The motor is always turned on or off (as appropriat
e) by this routine. If the user hits the escape key then this merely tr
uncates the time spent waiting for the motor to pick up speed.
Related entries CAS START MOTOR CAS STOP MOTO P
44 TXT CUR OFF #BB84
Dissallow cursor display - system. Action
Prevent the cursor blob for the currently selected stream from being
placed on the screen. The cursor blob will be removed from the screen
immediately if it is currently there. Entry conditions
No conditions. Exit conditions All registers and
flags preserved. Notes Turning the cursor on and off
is intended for use by system ROMs. Related entries
TXT ASK STATE TXT CUR DISABLE TXT CUR ON TXT DRAW CURSO
R TXT UNDRAW CURSOR AMSTRAD CPC464/664/6128 FIRM
WARE page 15.46 45 TXT VALIDATE
#BB87 Check if a cursor
position is within the window. Action Check a screen posi
tion to see if it lies within the current window. If it does not then
determine the position where a character would be printed after applyin
g the rules for forcing the screen position inside the window.
Entry conditions H contains the logical column of the position
to check. L contains the logical row of the position to check.
Exit conditions If printing at the position would not cause the windo
w to roll Carry true. B corrupt. I
f printing at the position would cause the window to roll up
Carry false. B contains #FF. If printing at the posit
ion would cause the window to roll down Carry false.
B contains #00. Always H contains the logi
cal column at which a character would be printed.
L contains the logical row at which a character would be
printed. A and other flags corrupt. All
other registers preserved. Notes The position on the sc
reen are given in logical coordinates. i.e. Row 1, column 1 is the top
left corner of the window. Before writing a character or putting the
cursor blob on the screen the Text VDU validates the current positi
on, performs any required roll then writes at the appropriate positio
n. AMSTRAD CPC464/664/6128 FIRMWARE p
age 15.47 The algorithm to work out the position to print at
, from the position to check, is as follows 1/ If the pos
ition is right of the right edge of the window it is moved to the l
eft edge of the window on the next line. 2/ If the position is lef
t of the left edge of the window it is moved to the right edge of the w
indow on the previous line. 3/ If the position is now above the to
p edge of the window then it is moved to the top edge of the window
and the window need rolling downwards. 4/ If the posit
ion is now below the bottom edge of the window it is moved to the bot
tom edge of the window and the window needs rolling upwards.
Related entries SCR HW ROLL SCR SW ROLL TXT
GET CURSOR AMSTRAD CPC
464/664/6128 FIRMWARE page 15.48
46 TXT PLACE CURSOR #BB8A
Put a cursor blob on the screen. Action Put a cursor blo
b on the screen at the cursor position for the currently selecte
d stream. Entry conditions No conditions. Ex
it conditions AF corrupt. All other registers preserved.
Notes TXT PLACE CURSOR is provided to allow the user to run
multiple cursors in a window. The indirection TXT DRAW CURSOR should
be called for merely placing the normal cursor blob on the screen.
Higher level routines, such as TXT OUTPUT and TXT SET CURSOR, automat
ically remove and place the normal cursor when appropriate, the user mu
st deal with any other cursors. It is not safe to call TXT
PLACE CURSOR tw Pice at a particular screen position without calling
TXT REMOVE CURSOR in between because this may leave a spurious cursor bl
ob on the screen when the cursor position is moved. The curs
or position is forced to be inside the window before the cursor bl
ob is drawn. The cursor blob is an inverse patch formed by exclu
sive-oring the contents of the screen at the cursor position with the e
xclusive-or of the current pen and paper inks. Related entries
TXT DRAW CURSOR TXT REMOVE CURSOR AMSTRAD C
PC464/664/6128 FIRMWARE page 15.49
47 TXT REMOVE CURSOR #BB8D
Take a cursor blob off the screen. Action Take the cursor
blob off the screen at the cursor position of the currently selecte
d stream. Entry conditions No conditions. Exit con
ditions AF corrupt. All other registers preserved. N
otes TXT REMOVE CURSOR is provided to allow the user to run m
ultiple cursors in a window. The indirection TXT UNDRAW CURSOR shou
ld be called for merely removing the normal from the screen. Higher
level routines, such as TXT OUTPUT and TXT SET CURSOR, automatically re
move and place the normal cursor when appropriate, the user must deal w
ith any other cursors. TXT REMOVE CURSOR should only be used
to remove a cursor placed on the screen by calling TXT PLACE CURSOR. Th
e cursor should be removed when the cursor position is to be changed (r
olling the window implicitly changes the cursor position) or the scre
en is to read or written. Incorrect use of this routine may result
in a spurious cursor blob being generated. The cursor po
sition is forced to be inside the window before the cursor blob is
removed (this should not matter as TXT PLACE CURSOR has already done th
is). The cursor blob is an inverse patch formed by exclusive-ori
ng the contents of the screen at the cursor position with the exclusive
-or of the current pen and paper inks. Related entri
es TXT PLACE CURSOR TXT UNDRAW CURSOR AMSTRAD
CPC464/664/6128 FIRMWARE page 15.50
48 TXT SET PEN #BB90
Set ink for writing characters. Action Set th
e pen ink for the currently selected stream. This is the ink that is
used for writing characters (the foreground ink). Entry condition
s A contains ink to use. Exit conditions
AF and HL corrupt. All other registers preserved. Notes
The ink is masked to bring it within the range of legal inks for
the current screen mode. That is with #0F in mode 0, #03 in mode 1 and #
01 in mode 2. The cursor blob will be redrawn using the new
ink (if enabled). Related entries GRA SET PEN SC
R SET INK TXT GET PEN TXT SET PAPER AMSTRA
D CPC464/664/6128 FIRMWARE page 15.51
49 TXT GET PEN #BB93
Get ink for writing characters. Action Ask what t
he pen ink is set to for the currently selected stream. This is the ink
used for writing characters (foreground ink). Entry conditions
No conditions. Exit conditions A contains the ink
. Flags corrupt. All other registers preserved.
Notes This routine has no other effects. Related entri
es GRA GET PEN SCR GET INK TXT GET PAPER T
XT SET PEN AMSTRAD CPC464/664/6128 FIRMWAR
E page 15.52 50 TXT SET PAPER
#BB96 Set ink for writin
g text background. Action Set the text paper ink for the
currently selected stream. This is the ink used for writing the backgr
ound to characters and for clearing the P text window. Entr
y conditions A contains the ink to use. Exit conditions
AF and HL corrupt. All other registers preserved.
Notes The ink is masked to bring it within the range of legal inks
for the current screen mode. That is with #0F in mode 0, #03 in mode
1 and #01 in mode 2. The cursor blob will be redrawn using t
he new ink (if enabled). This ink will be used when clearing areas o
f the text window (by TXT CLEAR WINDOW and certain control codes).
This routine does not clear the text window. Related entrie
s GRA GET PAPER SCR SET INK TXT GET PAPER TX
T SET PEN AMSTRAD CPC464/664/6128 FIRMWARE
page 15.53 51 TXT GET PAPER
#BB99 Get ink for writing background.
Action Ask what the paper ink is set to for the curr
ently selected stream. The ink used for writing the background t
o characters and for clearing the text window. Entry condi
tions No conditions. Exit conditions A
contains the ink. Flags corrupt. All other registers pres
erved. Notes This routine has no other effects.
Related entries GRA GET PAPER SCR GET INK TXT
GET PEN TXT SET PAPER AMSTRAD CPC464/664/6128 FIRMWARE
page 15.54 52 TXT INVERSE
#BB9C Swap current pen and paper
inks over. Action Exchange the text pen and paper (foreg
round and background) inks for the currently selected stream.
Entry conditions No conditions. Exit conditions
AF and HL corrupt. All other registers preserved.
Notes In V1.1 firmware the cursor blob is removed and replaced and
so the current position is forced legal (inside the window) which ma
y cause the window to roll. In V1.0 firmware the cursor blob is not r
edrawn and so it should be on the screen when this routine is called.
Related entries TXT SET PAPER TXT SET PEN
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.55 53 TXT SET BACK
#BB9F Allow or disallow background be
ing written. Action Set character write mode to opaque o
r transparent for the currently selected stream. Opaque mode writes
background with the character. Transparent mode writes the character
on top of the current contents of the screen. Entry condit
ions If the background is to be written (opaque mode)
A must be zero. If background is not to be written (transparent m
ode) A must be non-zero. Exit conditions
AF and HL corrupt. All other registers preserved. Notes
Writing in transparent mode is intended for annotating diagrams and
similar applications. It can have unfortunate effects if it is used
generally because overwriting a character will not remove the
character underneath thus creating an incomprehensible jumble on the
screen. Setting the character write mode does not affect the Gra
phics VDU. In V1.1 firmware the routine GRA SET BACK sets the equival
ent graphics background write mode. Related entries
GRA SET BACK TXT GET BACK TXT WR CHAR TXT WRITE CHA
R AMSTRAD CPC464/664/6128 FIRMWARE
page 15.56 54 TXT GET BACK
#BBA2 Ask if background is being written.
Action Get the character write mode for the currently selected stre
am. Entry conditions No conditions. Exit con
ditions If background is to be written (opaque mode)
A contains zero. If background is not to be writt Pen (transp
arent mode) A contains non-zero. Always
DE,HL and flags corrupt. All registers preserved.
Notes This only applies to the Text VDU, the Graphics
VDU always writes opaque. Related entries TX
T SET BACK AMSTRAD CPC464/664/6128 FIRMWARE
page 15.57 55 TXT GET MATRIX
#BBA5 Get the address of a character mat
rix. Action Calculate a pointer to the matrix for a ch
aracter and determine if it is a user defined matrix. Entry c
onditions A contains the character whose matrix is to be found.
Exit conditions If the matrix in the user defined matrix table
Carry true. If the matrix is in the lower ROM
Carry false. Always HL contains the addr
ess of the matrix. A and other flags corrupt.
All other registers preserved. Notes The matrix may be
in RAM or in ROM. The Text VDU assumes that the appropriate ROMs a
re enabled or disabled when it calls this routine to get the matrix for
a character. (The lower ROM is on, the upper ROM is normally off).
The matrix is stored as an 8 byte bit significant vector. The first
byte describes the top line of the character and the last byte the
bottom line. Bit 7 of a byte refers to the leftmost pixel of a line
and bit 0 to the rightmost pixel. If a bit is set in the matrix then
the pixel should be written in the pen ink. If the bit is not set then
the pixel should either be written in the paper ink or left alone
(depending on the character write mode). Related entries
TXT SET MATRIX AMSTRAD CPC464/664/6128 FIRMWARE
page 15.58 IRMWARE page 15.59 yo the lef
tmost pixel of a line and bit 0 to the rightmost pixel. If a bit is s
et in the matrix then the pixel should be written in the pen ink. If t
he bit is not set then the pixel should either be written in the paper
ink or left alone (depending on the character write mode).
Related entries TXT SET MATRIX 56 TXT
SET MATRIX #BBA8 Set a c
haracter matrix. Action Set the matrix for a user defined ch
aracter. If the character is not user defined then no action is taken.
Entry conditions A contains the character whose matrix is t
o be set. HL contains the address of the matrix to set. Exit c
onditions If the character is user definable Carry
true. If the character is not user definable Carry
false. Always A,BC,DE,HL and other flags corrupt.
All other registers preserved. Notes The mat
rix is stored as an 8 byte bit significant vector. The first byte des
cribes the top line of the character and the last byte the bottom li
ne. Bit 7 of a byte refers to the leftmost pixel of a line and bit 0
to the rightmost pixel. If a bit is set in the matrix then the pixel s
hould be written in the pen ink. If a bit is not set then the pixel sh
ould either be written in the paper ink or left alone (depending wh
ether the character write mode is opaque or transparent currently).
The matrix is copied from the area given into the character matrix
table without using RAM LAMs thus the matrices can be set from ROM
providing it is enabled. (Note however that the jumpblock disables the
upper ROM). Altering a character matrix changes the matrix for
all streams. It does not alter any character on the screen it changes
what will be placed on the screen the next time the character is writ
ten. Related entries TXT GET MATRIX TXT SET M TA
BLE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.59 57 TXT SET M TABLE
P #BBAB Set the user defined matrix table address.
Action Set the user defined matrix table and the number of char
acters in the table. The table is initialized with the current matrix s
ettings. Entry conditions DE contains the first character in
the table. HL contains the address of the start of the new table.
Exit conditions If there was no user defined matrix table before
Carry false. A and HL corrupt. I
f there was a user defined matrix table before Carry true.
A contains the first character in the old table.
HL contains the address of the old table. Always B
C,DE and other flags corrupt. All other registers preserved.
Notes If the first character specified is in the range 0..
255 then the matrices for all characters between that character and c
haracter 255 are to be stored in the user defined table. If t
he first character specified is not in the range 0..255 then the user
defined matrix table is deemed to contain no matrices (and the table
address passed is ignored). The table must be (256 - first char) * 8 b
ytes long. The matrices are stored in the table in ascending order. The
table is initialized with the current matrix settings, whether they we
re previously in RAM or in the ROM. The table should not be lo
cated in RAM underneath a ROM. It is permissible for the new and old m
atrix tables to overlap (thus allowing the table to be extended or
contracted) providing that matrices in the new table occupy an addre
ss earlier to the address that they occupied in the old table.
AMSTRAD CPC464/664/6128 FIRMWARE page 15
.60 All streams share the matrix table so any changes to
it will be reflected on all streams. Related ent
ries TXT GET M TABLE TXT SET MATRIX
AMST
RAD CPC464/664/6128 FIRMWARE page 15.61
58 TXT GET M TABLE #BBAE
Get user defined matrix table address. Action G
et the address of the current user defined matrix table and the first ch
aracter in the table. Entry conditions No conditions.
Exit conditions If there is no user defined matrix table
Carry false. A and HL corrupt.
If there is a user defined matrix table Carry true.
A contains the first character in the table. HL conta
ins the address of the start of the table. Always
Other flags corrupt. All other registers preserved.
Notes The matrices for characters between the first character and
255 are stored in the table in ascending order. Each matrix is 8 byte
s long. Related entries TXT GET MATRIX TXT SET M T
ABLE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.62 59 TXT GET CONTROLS
#BBB1 Fetch address of control code table.
Action Get the address of the control code table. Entry con
ditions No conditions. Exit conditions HL contains
the address of the control code table. All other registers and flags pr
eserved. Notes All streams share one control code table so t
hat any changes made to the table will affect all streams. T
he control code table has a 3 byte entry for each control code. The en
tries are stored in ascending order, so the entry for #00 is first and
that for #1F is last. The first byte of each entry is the number of p
arameters the control code requires, the other two bytes are the addre
ss of the routine to call the process the control code when all its pa
rameters have been received. The routine must be located in the central
32K of RAM and it must obey the followi Png interface Entry
A contains the last character added to the buffer. B
contains the length of the buffer (including the control co
de). C contains the same as A. HL contains the
address of the control code buffer (points at the control code
). Exit AF,BC,DE,HL corrupt. All ot
her registers preserved. As the control buffer only has space to store
9 parameter characters the number of parameters required should be li
mited to 9 or fewer. The control code table is reinitialized to its de
fault routines when TXT RESET is called. In V1.1 firmware th
e first byte of each entry also specifies whether the control codes is
to be disabled when the VDU is disabled or whether it is always
to be obeyed. Bit 7 of the byte is set if the code is to be disabled
. Related entries TXT OUTPUT AMSTRAD CPC464/664/
6128 FIRMWARE page 15.63 60 TXT S
TR SELECT #BBB4 Select a
Text VDU stream. Action Make a given stream the curren
tly selected stream (if it isn't already). Entry conditio
ns A contains the required stream. Exit conditions
A contains the previously selected stream. HL and flags corrupt.
All other registers preserved. Notes The requested s
tream number is masked (with #07) to make it into a legal stream num
ber. Many attributes of the Text VDU may be set independently on di
fferent streams. It is important to ensure that the correct stream is se
lected when ant of these are altered. These attributes are
Pen ink. Paper ink. Cursor position.
Window limits. Cursor enable/disable.
Cursor on/off. VDU enable/disable. C
haracter write mode. Graphics character write mode.
If the stream is already selected then this routine returns quickly.
It is not unreasonable to repeatedly select a stream (before each c
haracter sent, for example). Related entries TXT OUTPUT
AMSTRAD CPC464/664/6128 FIRMWARE page
15.64 61 TXT SWAP STREAMS
#BBB7 Swap the states of two streams. Action
The stream descriptors for two streams are exchanged. The current
ly selected stream number remains the same (although its descriptor ma
y have been altered). Entry conditions B contain
s a stream number. C contains another stream number. Exit co
nditions AF,BC,DE and HL corrupt. All other registers preser
ved. Notes The stream numbers passed are masked (with #0
7) to that they are legal stream numbers. The attributes tha
t are exchanged are Pen ink. Paper ink.
Cursor position. Window limits.
Cursor enable/disable. Cursor on/off. VDU ena
ble/disable. Character write mode. Graphics ch
aracter write mode. Related entries TXT STR SELECT
AMSTRAD CPC464/664/6128 FIRMWARE page
15.65 62 GRA INITIALISE
#BBBA Initialize the Graphics VDU. Action
The Graphics VDU is fully initialized (as during EMS). All Graphic VDU
variables and indirections are set to their default values. E
ntry conditions No conditions. Exit conditions
AF,BC,DE and HL corrupt. All other registers preserved.
Notes The full operation is Set the Graphics VDU in
directions (GRA PLOT, GRA TEST and GRA LINE) to their default r
outines. Set the graphics paper to ink 0. Set the graphi
cs pen to ink 1. Set the user origin to the bottom left P
corner of the screen. Move the current position to the user origin.
Set the graphics window to cover the whole screen. The
graphics background write mode is set to opaque. The line mask is se
t to #FF and the first pixel lines are plotted. The graphics window
is not cleared. Related entries GRA DEFAULT GRA
RESET SCR INITIALISE AMSTRAD CPC464/664/6128 FIR
MWARE page 15.66 63 GRA RESET
#BBBD Reset the Grap
hics VDU. Action Re-initialize the Graphics VDU indirect
ions to their default routines and set default modes. Entry
conditions No conditions. Exit conditions A
F,BC,DE and HL corrupt. All other registers preserved. Notes
Sets the Graphics VDU indirections (GRA PLOT, GRA TEST and GRA LI
NE) to their default routines. V1.1 firmware also sets the graphi
cs background mode to opaque, sets the line mask to #FF and sets th
e first pixel of lines to be plotted. Related entries
GRA DEFAULT GRA INITIALISE
AMSTRAD CPC464/664/6128 FIRMWARE page 15.67
64 GRA MOVE ABSOLUTE
#BBC0 Move to an absolute position. Action
Move the current position to an absolute position. Entry co
nditions DE contains the required user X coordinate. HL cont
ains the required user Y coordinate. Exit conditions AF,
BC,DE and HL corrupt. All other registers preserved. Notes
The new position is given in user coordinates. i.e. Relative to th
e user origin. The new position can be outside the graphics
window. The Graphics VDU plotting, testing and line drawing routines
all move the current graphics position to the point (or endpoint)
specified automatically. Related entries GRA ASK
CURSOR GRA MOVE RELATIVE AMSTRAD CPC464/664/6
128 FIRMWARE page 15.68 65 GRA MO
VE RELATIVE #BBC3 Move re
lative to current position. Action Move the current posi
tion to relative to its current position. Entry conditions
DE contains a signed X offset. HL contains a signed Y offset.
Exit conditions AF,BC,DE and HL corrupt. All other regi
sters preserved. Notes The new position can be outside t
he graphics window. The Graphics VDU plotting, testing and line draw
ing routines all move the current graphics position to the point (or
endpoint) specified automatically. Related entries
GRA ASK CURSOR GRA MOVE ABSOLUTE
AMSTRAD CPC464/664/6128 FIRMWARE page 15.69
66 GRA ASK CURSOR
#BBC6 Get the current position. Action As
k where the current graphics position is. Entry conditions
No conditions. Exit conditions DE contains the user X
coordinate. HL contains the user Y coordinate. AF corrupt.
All other registers preserved. Notes The new pos
ition is given in user coordinates. i.e. Relative to the user origin.
The Graphics VDU plotting, testing and line drawing routines all m
ove the current graphics position to the point (or endpoint) specifi
ed automatically. Thus, the position returned is probably where the las
t point was plotted or tested. Related entries
GRA MOVE ABSOLUTE GRA MOVE RELATIVE AMSTR
AD CPC464/664/6128 FIRMWARE page 15.70
67 GRA SET ORIGIN #BBC9
Set the origin of the user coordinates. Action S
et the location of th Pe user origin and move the current position
there. Entry conditions DE contains the standard X coor
dinate of the origin. HL contains the standard Y coordinate of the origi
n. Exit conditions AF,BC,DE and HL corrupt.
All other registers preserved. Notes The origin position
is given is standard coordinates in which (0,0) is the bottom left corn
er of the screen. The default origin position is at (0,0). Whenever
the screen mode is changed, by calling SCR SET MODE, the origin is
restored to its default position. Related entries
GRA FROM USER GRA GET ORIGIN AMS
TRAD CPC464/664/6128 FIRMWARE page 15.71 #BB84
Dissallow cursor display 68 GRA GET ORIGIN
#BBCC Get the origin of the us
er coordinates. Action Ask where the user coordinate origi
n is located. Entry conditions. No conditions.
Exit conditions DE contains the standard X coordinate of the orig
in. HL contains the standard Y coordinate of the origin. All
other registers preserved. Notes The origin position is
given is standard coordinates in which (0,0) is the bottom left corner
of the screen. Related entries GRA SET ORIGIN
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.72 69 GRA WIN WIDTH
#BBCF Set the right and left edges
of the graphics window. Action Set the horizontal position o
f the graphics window. The left and right edges are respectively the fir
st and last points that lie inside the window horizontally.
Entry conditions DE contains the standard X coordinate of one edge.
HL contains the standard Y coordinate of the other edge. Exit
conditions AF,BC,DE and HL corrupt. All registers preserved.
Notes The window edges are given in standard coordinates in w
hich (0,0) is the bottom left corner of the screen and coordinates are
signed 16 bit numbers. The left edge of the window is deemed
to be the smaller of the two edge supplied. The window wil
l be truncated, if necessary, to make it fit the screen. The edges are m
oved to screen byte boundaries so that the window only contains whole b
ytes (the left edge is moved left, the right edge is moved right). Thi
s moves the coordinates of the edges as follows in the various modes
Mode Left Edge Right Edge
0 Multiple of 2 Multiple of 2 minus 1 1
Multiple of 4 Multiple of 4 minus 1 2
Multiple of 8 Multiple of 8 minus 1 The default wind
ow covers the whole screen. Whenever the screen mode is changed the wi
ndow is restored to its default size. All Graphics VDU point plotting
and line drawing routines test whether the points they are about to plot
lie inside the window if they are not then the points are not plotted
. Related entries GRA GET W WIDTH GRA WIN HEIGHT
AMSTRAD CPC464/664/6128 FIRMWARE p
age 15.73 70 GRA WIN HEIGHT
#BBD2 Set the top and bottom edges of the graphics windo
w. Action Set the vertical posit Pion of the graphics windo
w. The top and bottom edges are respectively the last and first points
that lie inside the window vertically. Entry conditions
DE contains the standard X coordinate of one edge. HL contains th
e standard Y coordinate of the other edge. Exit conditions A
F,BC,DE and HL corrupt. All registers preserved. Notes
The window edges are given in standard coordinates in which (0,0) is
the bottom left corner of the screen and coordinates are signed 16 bit
numbers. The top edge will be deemed to be the higher of
the two edges supplied. The window will be truncated, if
necessary, to make it fit the screen. The edges will be moved to lie on
screen line boundaries so that only whole screen lines are included in
the window (the top edge will be moved up, the bottom edge will be mo
ved down). This moves the bottom edge to an even coordinate and the to
p edge to an odd coordinate. The default window covers the whole scr
een. Whenever the screen mode is changed the window is restored to its
default size. All Graphics VDU point plotting and line drawing rout
ines test whether the points they are about to plot lie inside the windo
w if they are not then the points are not plotted. Related
entries GRA GET W HEIGHT GRA WIN WIDTH AM
STRAD CPC464/664/6128 FIRMWARE page 15.74
71 GRA GET W WIDTH #BBD5
Get the left and right edges of the graphics window. Acti
on Ask the horizontal position of the graphics window. The left and
right edges are respectively the first and last points that lie inside
the window horizontally. Entry conditions No co
nditions. Exit conditions DE contains the standard X coo
rdinate of the left edge of the window. HL contains the standard Y coord
inate of the right edge of the window. AF corrupt All other
registers preserved. Notes The window edges are given in
standard coordinates in which (0,0) is the bottom left corner of the
screen. The edges may not be exactly the same as those that were set
using GRA WIN WIDTH as the window is truncated to fit the screen, and t
he edges are moved to screen byte boundaries so that the window only
contains whole bytes. Related entries GRA GET
W HEIGHT GRA IN WIDTH AMSTRAD CPC464/664/6128
FIRMWARE page 15.75 72 GRA GET W
HEIGHT #BBD8 Get the top
and bottom edges of the graphics window. Action Ask the
vertical position of the graphics window. The top and bottom edges ar
e respectively the last and first points that lie inside the graphics
window vertically. Entry conditions No conditions.
Exit conditions DE contains the standard X coordinate of the
top edge of the window. HL contains the standard Y coordinate of the
bottom edge of the window. AF corrupt. All other
registers preserved. Notes The window edges are given i
n standard coordinates. i.e. With (0,0) being the bottom left corner
of the screen. The edges may not be exactly the same as that passed
to GRA WIN HEIGHT as the window is truncated to fit the screen, and the
edges are moved to lie on screen line boundaries so that only whole scr
een lines are included in the window. Related entries
GRA GET W WIDTH GRA WIN HEIGHT AMSTRAD
CPC464/664/6128 FIRMWARE page 15.76
73 GRA CLEAR WINDOW #BBDB
Clear the graphics window. Action Clear the graphi
cs window to the graphics paper ink. Entry conditions No
conditions. Exit conditions AF,BC,DE and HL corrupt.
All other registers preserved. Notes The current g
r P aphics position is moved to the origin of the user c
oordinates. Related entries GRA SET PAPER GRA
WIN HEIGHT GRA WIN WIDTH SCR CLEAR TXT CLEAR WINDOW
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.77 74 GRA SET PEN
#BBDE Set the graphics plotting i
nk. Action Set the graphics pen ink. This is the ink by
the Graphics VDU for plotting points, drawing lines and writing cha
racters. Entry conditions A contains the required ink.
Exit conditions AF corrupt. All other registers p
reserved. Notes The ink is masked to bring it in to rang
e of inks for the current screen mode. In mode 0 the mask is #0F, i
n mode 1 it is #03 and in mode 2 it is #01. In V1.1 firm
ware the graphics pen ink is taken to delimit the edge of the area to f
ill when flood filling areas of the screen. Related entries
GRA GET PEN GRA SET PAPER SCR SET INK TXT SET PEN
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.78 75 GRA GET PEN
#BBE1 Get the current graphics plotting
ink. Action Ask what the current graphics pen ink is se
t to. This is the ink used by the Graphics VDU for plotting points, dr
awing lines and writing characters. Entry conditions
No conditions. Exit conditions A contains the in
k. Flags corrupt. All other registers preserved.
Notes This routine has no other effects. Related entr
ies GRA GET PAPER GRA SET PEN SCR GET INK TX
T GET PEN AMSTRAD CPC464/664/6128 FIRMWARE
page 15.79 76 GRA SET PAPER
#BBE4 Set the graphics ba
ckground ink. Action Set the graphics paper ink.
Entry conditions A contains the required ink. Exit
conditions AF corrupt. All registers preserved.
Notes The ink is masked to bring it in to range of inks for the
current screen mode. In mode 0 the mask is #0F, in mode 1 it is #03
and in mode 2 it is #01. The paper ink is the ink that is
used for clearing the graphics window, and writing the background
to characters. It is assumed to cover everywhere outside the graphic
s window when testing points. In V1.1 firmware the graphics paper
ink is used to plot pixels corresponding to a zero bit in the line
mask when drawing lines. Related entries GRA GET PAPE
R GRA SET PEN SCR GET INK TXT SET PAPER
AMSTRAD CPC464/664/6128 FIRMWARE page 15.80
77 GRA GET PAPER
#BBE7 Get the current graphics background ink. Acti
on Ask what the current graphics paper ink is set to. En
try conditions No conditions. Exit conditions
A contains the ink. Flags corrupt. All other registers pre
served. Notes The paper ink is the ink that is used
for clearing the graphics window, and writing background to character
s. It is assumed to cover everywhere outside the graphics window when
testing points. Related entries GRA GET PEN GR
A SET PAPER SCR GET INK TXT GET PAPER
AMSTRAD CPC464/664/6128 FIRMWARE page 15.
81 78 GRA PLOT ABSOLUTE
#BBEA Plot a point at an absolute position. Actio
n The current graphic position is moved to the position supplied. If
it lies inside the graphics window then the point is plotted in
the current graphics pen in Pk using the current graphics write mode. I
f the point lies outside the graphics window then no action is taken.
Entry conditions DE contains the user X coordinate to plot
at. HL contains the user Y coordinate to plot at. Exit cond
itions AF,BC,DE and HL corrupt. All other registers preserve
d. Notes The position to plot at is given in user coordina
tes. i.e. Relative to the user origin. This routine calls th
e GRA PLOT indirection to plot the point. In its turn GRA PLOT calls th
e SCR WRITE indirection to set the pixel (if it is in the window).
Related entries GRA PLOT GRA PLOT RELATIVE
GRA TEST ABSOLUTE AMSTRAD CPC464/664/6128 FIRMW
ARE page 15.82 79 GRA PLOT RELATI
VE #BBED Plot a point rel
ative to the current position. Action The current graphi
cs position is moved to the position supplied. If this lies inside th
e graphics window then the point is plotted in the current graphics pen
ink using the current graphics write mode. If the point lies outside th
e graphics window then no action is taken. Entry conditions
DE contains a signed X offset. HL contains a signed Y offset.
Exit conditions AF,BC,DE and HL corrupt. All other reg
isters preserved. Notes The position to plot at is g
iven in relative coordinates. i.e. Relative to the current graphics
position.. This routine calls the GRA PLOT indirection to plot the p
oint. In its turn GRA PLOT calls the SCR WRITE indirection to set the p
ixel (if it is in the window). Related entries
GRA PLOT GRA PLOT RELATIVE GRA TEST ABSOLUTE
AMSTRAD CPC464/664/6128 FIRMWARE page 15
.83 80 GRA TEST ABSOLUTE
#BBF0 Test a point at an absolute position. Acti
on The current graphics position is moved to the position supplied.
If it lies inside the graphics window then the pixel is read from the sc
reen and the ink it is set to is decoded and returned. If the position l
ies outside the graphics window then the current paper ink is returned.
Entry conditions DE contains the user X coordinate to te
st at. HL contains the user Y coordinate to test at. Exit co
nditions A contains the ink of the specified point (or the graphics
paper ink). BC,DE,HL and flags corrupt. All other registers
preserved. Notes The position to test is given in user c
oordinates. i.e. Relative to the user origin. This routin
e calls the GRA TEST indirection to test the point. In its turn GRA TES
T calls the SCR READ indirection to test the pixel (if it is in the win
dow). Related entries GRA PLOT ABSOLUTE GRA TE
ST GRA TEST RELATIVE AMSTRAD CPC464/664/6128 FIR
MWARE page 15.84 5 $$$ 68 GRA GET ORIGIN
#BBCC Get the origin of the use
r.84 -15 $$$6128 FIRMWARE page 15.107 #BBC
C Get the origin of the user coo This routine calls the G
RA TEST indirection to test the point. In its turn GRA TEST calls the S
CR READ indirection to test the pixel (if it is in the window).
Related entries GRA PLOT ABSOLUTE GRA TEST GR
A TEST RELATIVE AMSTRAD CPC464/664/6128 FIRMWARE
page 15 81 GRA TEST RELATIVE
#BBF3 Test a point relative to the cur
rent position. Action The current graphics position is m
oved to the position supplied. If it lies inside the graphics window the
n the pixel is read from the screen and the ink it is set to is decoded
and returned. If the position is outside the graphics window then the
current paper ink is returned. Entry conditio Pns DE co
ntains a signed X offset. HL contains a signed Y offset. Exi
t conditions A contains the ink of the specified point (or the graph
ics paper ink). BC,DE,HL and flags corrupt. All other regist
ers preserved. Notes The position to test is given in re
lative coordinates. i.e. Relative to the current graphics position.
This routine calls the GRA TEST indirection to test the point. In its
turn GRA TEST calls the SCR READ indirection to test the pixel (if it
is in the window). Related entries GRA PLOT RE
LATIVE GRA TEST GRA TEST ABSOLUTE AMSTRA
D CPC464/664/6128 FIRMWARE page 15.85
82 GRA LINE ABSOLUTE #BBF6
Draw a line to an absolute position. Action Move the cu
rrent graphics position to the endpoint supplied. All points betwe
en this position and the previous graphics position that lie inside th
e graphics window may be plotted. Points that lie outside the graphics w
indow are ignored. Entry conditions DE contains the user X c
oordinate of the endpoint. HL contains the user Y coordinate of the endp
oint. Exit conditions AF,BC,DE and HL corrupt. All o
ther registers preserved. Notes The position of the end of t
he line is given in user coordinates. i.e. Relative to the user origin.
In V1.0 firmware the points will be plotted in the current graphics
pen ink using the current graphics write mode. In V1.1 firmwa
re the setting of the line mask determines how the pixels on the l
ine will be plotted. The line mask is bit significant and is used repe
atedly in the order bit 7, bit 6 down to bit 0 for each pixel in the
line. If the bit is one then the pixel is plotted in the graphics pen i
nk using the current graphics write mode. If the bit is zero then the ac
tion depends on the graphics background write mode. If the background mo
de is opaque then the pixel is plotted in the graphics paper ink us
ing the current graphics write mode. If the background mode is tra
nsparent then the pixel is not plotted. In V1.1 firmware the first pix
el of the line (that at the previous graphics position) is not plott
ed if the first point plotting mode is set false. This routin
e calls the GRA LINE indirection to draw the line. In its turn GRA LIN
E calls the SCR WRITE indirection to write the pixels (for pixels in the
graphics window). Related entries GRA LINE GRA LINE
RELATIVE GRA SET BACK GRA SET FIRST GRA SET LINE MASK
AMSTRAD CPC464/664/6128 FIRMWARE pag
e 15.86 83 GRA LINE RELATIVE
#BBF9 Draw a line relative to the current position.
Action Move the current graphics position to the endpoint sup
plied. All points between this position and the previous graphics posi
tion that lie inside the graphics window may be plotted. Points that li
e outside the graphics window are ignored. Entry conditions
DE contains the signed X offset of the endpoint. HL contains the
signed Y offset of the endpoint. Exit conditions AF,BC,DE a
nd HL corrupt. All other registers preserved. Notes
The position of the end of the line is given in relative coordinates. i
.e. Relative to the current graphics position. In V1.0 firmware the po
ints will be plotted in the current graphics pen ink using the curren
t graphics write mode. In V1.1 firmware the setting of the line mas
k determines how the pixels on the line will be plotted. The line mas
k is bit significant and is used repeatedly in the order bit 7, bit 6
down to bit 0 for each pixel in the line. If the bit is one then the
pixel is plotted in the graphics pen ink using the current graphics wri
te mode. If the bit is zero then the action depends on the graphics back
ground write mode. If the background mode is opaque then the pixel is
plotted in P the graphics paper ink using the current graphics wr
ite mode. If the background mode is transparent then the pixel is not
plotted. In V1.1 firmware the first pixel of the line (that at the
previous graphics position) is not plotted if the first point plotting
mode is set false. This routine calls the GRA LINE indirecti
on to draw the line. In its turn GRA LINE calls the SCR WRITE indirect
ion to write the pixels (for pixels in the graphics window).
Related entries GRA LINE GRA LINE ABSOLUTE GRA SET BA
CK GRA SET FIRST GRA SET LINE MASK AMSTRAD CPC46
4/664/6128 FIRMWARE page 15.87 84
GRA WR CHAR #BBFC
Put a character on the screen at the current graphics position. Acti
on Write a character on the screen at the current graphics position.
Entry A contains the character to write. Ex
it conditions AF,BC,DE and HL corrupt. All other registers p
reserved. Notes The character is written with its top le
ft corner being the current graphics position. All charac
ters are printed, even control codes (characters #00..#1F). The curr
ent position is moved right by the width of the character (ready fo
r another character to be written). In mode 0 this move is 32 points rig
ht, in mode 1 the move is 16 points right and in mode 2 it is 8 points
. The character will be plotted in the graphics pen ink. In the case
of V1.0 firmware, V1.1 firmware when the background write mode is set t
o opaque, the background to the character will be plotted in the
graphics paper ink. In the case of V1.1 firmware when the background
write mode is set to transparent the background pixels are not
plotted. Pixels in the character that lie outside the graphics window
will not be plotted. The pixels are plotted using the SCR WRITE
indirection so they are written using the current graphics write mode.
Related Entries GRA SET BACK TXT SET GRAPHIC TXT
WR CHAR AMSTRAD CPC464/664/6128 FIRMWARE
page 15.88 85 SCR INITIALISE
#BBFF Initialize the Screen Pack.
Action Full initialization of the Screen Pack (as used during E
MS). All Screen Pack variables and indirections are initialized, a
lso the screen mode and the inks are initialized to their default setti
ngs. Entry conditions No conditions. Exit co
nditions AF,BC,DE and HL corrupt. All other registers preser
ved. Notes The screen indirections (SCR READ, SCR WRITE
and SCR MODE CLEAR) are set to their default routines. The ink
s are set to their default colours (see Appendix V). The ink flashing pe
riods are set to their default values. The screen is put into mode 1.
The screen base is set to put the screen memory at #C000..#FFFF (under
the upper ROM. The screen offset is set to 0. The screen is
cleared to ink 0. The Graphics VDU write mode is set to FORCE mode.
The ink flashing frame flyback event is set up. The initializat
ion is performed in an order that attempts to avoid the previous content
s of the screen becoming visible (at EMS the contents will be random).
Related entries GRA INITIALISE SCR RESET
TXT INITIALISE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.89 86 SCR RESET
#BC02 Reset the Screen Pack.
Action Reinitializes the Screen Pack indirections and the ink col
ours. Also reinitializes the flash rate and Graphics VDU write mode.
Entry conditions No conditions. Exit condition
s AF,BC,DE and HL corrupt. All other registers preserved.
Notes The screen indirections (SCR READ, SCR WRITE and SCR
MODE CLEAR) are set to their defaul Pt routines. The ink
s are set to their default colours (see Appendix V). The ink flashin
g periods are set to their default values. The Graphics VDU write mo
de is set to FORCE mode. The inks are not passed to the hardware. Th
is will be done when the inks flash next. Related entri
es SCR INITIALISE SCR SET ACCESS SCR SET FLASHING
SCR SET INK AMSTRAD CPC464/664/6128 FIRMWARE
page 15.90 87 SCR SET OFFSET
#BC05 Set the offset of the start of
the screen. Action Set the offset of the first character
on the screen. By changing this offset the screen can be rolled.
Entry conditions HL contains the required offset.
Exit conditions AF and HL corrupt. All other registers pres
erved. Notes The offset passed is masked with #07FE to m
ake sure it is not too big to make that the offset is even. (The scr
een is only capable of rolling in two byte increments).
The screen base and screen offset are combined into a single value and s
ent to the hardware together. The screen offset is used by SCR CHAR
POSITION and SCR DOT POSITION to calculate screen addresses. If the scre
en offset is changed merely by calling the Machine Pack routine MC SCRE
EN OFFSET then the Text and Graphics VDUs will use incorrect screen a
ddresses. The offset is set to zero when the screen mode is set or t
he screen is cleared by calling SCR CLEAR. Related entries
MC SCREEN OFFSET SCR GET LOCATION SCR HW ROLL
SCR SET BASE SCR SET POSITION AMSTRAD CPC464/664/6128 FIR
MWARE page 15.91 88 SCR SET BASE
#BC08 Set the area o
f RAM to use for the screen memory. Action Set the base
address of the screen memory. This can e used to move the screen out fro
m underneath the upper ROM or to display a prepared screen instantl
y. Entry conditions A contains the more significant byte
of the base address. Exit conditions AF and HL corrupt.
All other registers preserved. Notes The screen
memory can only be located on a 16K boundary so the value passed in m
asked with #C0. The default screen base, set at EMS, is #C0.
The offset is combined with the screen base into a single value which
is sent to the hardware. The screen base address is used by SCR
CHAR POSITION and SCR DOT POSITION to calculate screen addresses.
If the screen base is changed merely by calling the Machine Pack routin
e MC SCREEN OFFSET then the text and graphics VDUs will use incorrect
screen addresses. The screen memory is not cleared when the screen b
ase is set, use SCR CLEAR to do this. Related entries
MC SCREEN OFFSET SCR GET LOCATION SCR SET OFFSET SCR
SET POSITION AMSTRAD CPC464/664/6128 FIRMWARE
page 15.92 89 SCR GET LOCATION
#BC0B Fetch current base and offset settin
gs. Action Ask where the screen memory is located and w
here the start of the screen is. Entry conditions
No conditions. Exit conditions A contains the more
significant byte of the base address. Flags corrupt. All ot
her registers preserved. Notes The base and offsets retu
rned by this routine may not be the same as those set using SCR SET BA
SE or SCR SET OFFSET. This is because the values are masked to make t
hem legal and the screen offset is also changed when the hardware sc
reen rolling routine, SCR HW ROLL, is used. Related e
ntries SCR SET BASE SCR SET OFFSET SCR SET POSITION
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.93 90 SCR SET MODE P
#BC0E Set screen into a new mode.
Action Put the screen into a new mode and make sure that t
he Text and Graphics VDUs are set up correctly. Entry condit
ions A contains the required mode. Exit conditions
AF,BC,DE and HL corrupt. All other registers preserved. Notes
The mode requested is marked with #03. If the resulting value is
3 then no action is taken. Otherwise one of the following screen mod
es is set up Mode 0 160 x 200 pixels, 20 x 25 c
haracters. Mode 1 320 x 200 pixels, 40 x 25 characters.
Mode 2 640 x 200 pixels, 80 x 25 characters. At a
early stage the screen is cleared to avoid the old contents of the sc
reen being displayed in the wrong mode. The screen is cleared by calling
the SCR MODE CLEAR indirection. All the text and graphics windows a
re set to cover the whole screen and the graphics user origin is set
to the bottom left corner of the screen. The cursor blobs for all text
streams are turned off. Stream zero is selected. The curr
ent text and graphics pen and paper inks are masked as appropria
te for the new mode (see TXT SET PEN et al). When changing mode to a
mode that allows fewer inks on the screen this may cause the pen and pap
er inks to change. Related entries MC SET MODE
SCR GET MODE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.94 91 SCR GET MODE
#BC11 Ask the current screen mode.
Action Fetch and test the current screen mode. Entry c
onditions No conditions. Exit conditions If curr
ent mode is mode 0 Carry true. Zero false.
A contains 0. If current mode is mode 1
Carry false. Zero true. A contains 1.
If current mode is mode 2 Carry false.
Zero false. A contains 2. Always
Other flags corrupt. All other registers preserved.
Notes The modes are Mode 0 160 x 200 pixels,
20 x 25 characters. Mode 1 320 x 200 pixels, 40 x 25 charac
ters. Mode 2 640 x 200 pixels, 80 x 25 characters.
Related entries SCR SET MODE AMSTRAD CPC464/66
4/6128 FIRMWARE page 15.95 #BBCC
Get the origin of the userrrupt. All other registe
rs preserved. Notes The modes are Mode
0 92 SCR CLEAR
#BC14 Clear the screen (to ink zero). Action
Clear the whole of screen memory to zero. Entry conditions
No conditions. Exit conditions AF,BC,DE and H
L corrupt. All other registers preserved. Notes
At an early stage the ink flashing is turned off and the inks are all s
et to the same colour as ink 0. This makes the screen clearing appear in
stantaneous. When all the screen memory has been set to 0 the ink fla
shing is turned back on (an ink flashing event is added to the fram
e flyback queue) and all inks are set to their proper colours. If th
e text paper ink and graphics paper ink are not set to ink 0 this will b
ecome apparent on the screen when characters are written or windows
are cleared. The screen offset is set to zero. Relate
d entries GRA CLEAR WINDOW SCR MODE CLEAR TXT CLEAR
WINDOW AMSTRAD CPC464/664/6128 FIRMWARE
page 15.96 93 SCR CHAR LIMITS
#BC17 Ask the size of the screen in char
acters. Action Get the last character row and column on
the screen in the current mode. Entry conditions
No con Pditions. Exit conditions B contains the ph
ysical last column on the screen. C contains the physical last row on th
e screen. AF corrupt. All other registers preserved.
Notes The screen edges are given in physical coordinates. i.e
. Row 0, column 0 is the top left corner of the screen. This means t
hat the last column on the screen is 19 in mode 0, 39 in mode 1 and 79
in mode 2. The last row on the screen is 24 in all modes.
Related entries SCR GET MODE
AMSTRAD CPC464/664/6128 FIRMWARE page 15.97
94 SCR CHAR POSITION #BC1A
Convert physical coordinates to a screen position. Action
Calculate the screen address of the top left corner of a character
position on the screen. Also returns the width of a character in the
current mode. Entry conditions H contains the physica
l character column. L contains the physical character row. Exi
t conditions HL contains the screen address of the top left co
rner of the character. B contains the width in bytes of a char
acter in screen memory. AF corrupt. All other registers preser
ved. Notes The character position is given in physical coord
inates. i.e. Row 0, column 0 is the top left corner of the screen.
The character position given is not checked for being legal. An
illegal position (one outside the limits of the screen) will generate
a meaningless screen address. The conversion to screen address us
es the following formula Screen address Screen base + (Block
offset MOD #0800) where Block offset (Row * 80) +
(Column * Width) + Screen offset. and Screen base
is the address of the start of screen memory. Width
is the width of a character in bytes in the
current mode (4 in mode 0, 2 in mode 1, 1 in m
ode 2) Screen offset is offset of the first byte to be displ
ayed on the screen. Related entries
SCR DOT POSITION SCR NEXT BYTE SCR NEXT LINE SCR
PREV BYTE SCR PREV LINE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.98 95 SCR DOT POSITION
#BC1D Convert bas coordinates to
a screen position. Action Calculate the screen address and
mask for a pixel. Also return an indication of the number of pixels
in a screen byte in the current mode. Entry conditions
DE contains the base X coordinate of a pixel. HL contains the ba
se Y coordinate of a pixel. Exit conditions HL contains the
screen address of the pixel. C contains the mask for the pixel.
B contains one less than the number of pixels in a byte. AF and DE cor
rupt. All other registers preserved. Notes The pixel
position is given in base coordinates. i.e. (0,0) is the pixel in t
he bottom left corner of the screen and each coordinate position re
fers to a single pixel. The pixel position is not checked for being le
gal (within the limits of the screen). If it is not then the screen
address calculated is meaningless. The conversion to screen
address uses the following formula Screen addressScreen base+(Line in
row*#0800)+(Row offset MOD #0800) Where Screen base is
the start address of screen memory Line in row (199 - Y coordi
nate) MOD 8 Row offset (Row number * 80) + Byte in row + Scree
n offset and Row number (199 - Y coordinate)/8
Byte in row X coordinate/Byte width Screen offset is t
he offset of the first byte to be displayed on the screen.
AMSTRAD CPC464/664/6128 FIRMWARE page 15.9
9 Byte width is the number of pixels in a byte in
the current P mode (2 in mode 0, 4 in mode 1, 8 in m
ode 2). X coordinate MOD Byte width is used to calculate the mask
for the appropriate pixel. Related entries
GRA FROM USER SCR CHAR POSITION SCR NEXT BYTE SCR NEXT L
INE SCR PREV BYTE SCR PREV LINE
AMSTRAD CPC464/664/612
8 FIRMWARE page 15.100 96 SCR NEXT
BYTE #BC20 Step a sc
reen address right one byte. Action Calculate the screen
address of the byte right of the supplied screen address.
Entry conditions HL contains a screen address. Exit cond
itions HL contains the updated screen address. AF corrup
t. All other registers preserved. Notes Moving o
ff the end of the screen line is not prevented. It will simply point the
screen address at the next byte in the screen block. Normally t
his will be the first byte on a screen line 8 screen lines down from t
he old line (i.e. down one character row). However, moving right off th
e end of the last screen line in a block will point to the screen addres
s at the start of the 48 bytes in the block that are not displayed on t
he screen. This routine is intended to be used for moving the screen
address when putting characters or drawing lines on the screen.
Related entries SCR CHAR POSITION SCR DOT POSITION
SCR NEXT LINE SCR PREV BYTE SCR PREV LINE
AMSTRAD CPC464/664/6128 FIRMWARE page 15.101
97 SCR PREV BYTE #BC
23 Step a screen address left one byte. Action
Calculate the screen address of the byte left of the supplied screen
address. Entry conditions HL contains a screen address.
Exit conditions HL contains the updated screen address.
AF corrupt. All other registers preserved. Notes
Moving off the start of the screen line is not prevented. It w
ill simply point the screen address at the previous byte in the scre
en block. Normally this will be the last byte on a screen line 8 scree
n lines up from the old line (i.e. down one character row). However,
moving left off the start of the top screen line in a block will point
to the screen address at the last of the 48 bytes in the block that
are not displayed on the screen. This routine is intended to
be used for moving the screen address when putting characters or drawing
lines on the screen. Related entries SCR CHAR POSITIO
N SCR DOT POSITION SCR NEXT BYTE SCR NEXT LINE S
CR PREV LINE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.102 98 SCR NEXT LINE
#BC26 Step a screen address down one lin
e. Action Calculate the screen address of the byte belo
w the supplied screen address. Entry conditions
HL contains a screen address. Exit conditions HL co
ntains the updated screen address. AF corrupt. All other reg
isters preserved. Notes Moving off the bottom of the s
creen is not prevented (and not recommended). After moving off the
bottom the screen address is not useful. This routine is
intended to be used for moving the screen address when putting character
s or drawing lines on the screen. Related entries SCR
CHAR POSITION SCR DOT POSITION SCR NEXT BYTE SCR PREV BY
TE SCR PREV LINE AMSTRAD CPC464/664/6128 FIRMW
ARE page 15.103 99 SCR PREV LINE
#BC29 Step a screen ad
dress up one line. Action Calculate the screen address o
f the byte above the supplied screen address. P Entry c
onditions HL contains a screen address. Exit conditions
HL contains the updated screen address. AF corrupt.
All other registers preserved. Notes Moving off th
e top of the screen is not prevented (and not recommended). Af
ter moving off the top the screen address is not useful.
This routine is intended to be used for moving the screen address when
putting characters or drawing lines on the screen. Related entri
es SCR CHAR POSITION SCR DOT POSITION SCR NEXT BYTE
SCR NEXT LINE SCR PREV BYTE AMSTRAD CP
C464/664/6128 FIRMWARE page 15.104
100 SCR INK ENCODE #BC2C
Encode an ink to cover all pixels in a byte. Action Convert
an ink to the encoded form that will set all pixels in a byte to the i
nk. This encoded ink can then be masked to generate the appropria
te value to set a single pixel to the ink. Entry conditions
A contains an ink number. Exit conditions A contains the enc
oded ink. Flags corrupt. All other registers preserved.
Notes The encoding is not trivial as the pixels in a byte are
interleaved and also the bits in a pixel are not in the obvious order.
The pixel bits are (most significant to least significant)
Mode 0 Mode 1 Mode 2 Leftmos
t pixel Bits 1,5,3,7 Bits 3,7 Bit 7
Bit 6
Bits 2,6 Bit 5
Bit 4 Bits 0,4,2,6
Bits 1,5 Bit 3
Bit 2 Bits 0,4
Bit 1 Rightmost pixel
Bit 0 The Text and Graphics VDUs store their pen and paper inks
in this encoded form for ease of use internally. This saves time co
nverting the ink for each pixel plotted. The encoding is dif
ferent in different modes and so all inks have to be re-encoded when t
he screen mode is changed. SCR SET MODE does this automatically for the
Text VDU and Graphics VDU pen and paper inks. Related entries
SCR INK DECODE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.105 101 SCR INK DECODE
#BC2F Decode an encoded ink.
Action Convert an encoded ink to the appropriate ink numbe
r. Entry conditions A contains an encoded ink.
Exit conditions A contains the ink number. Flags corr
upt. All other registers preserved. Notes The de
coding is performed by decoding the ink of the leftmost pixel in the enc
oded ink. The ink for this pixel is encoded in the following bits (mo
st significant to least significant) in the various screen modes
Mode 0 Bits 1,5,3,7 Mode 1 Bits 3,7
Mode 2 Bit 7 Related entries SCR INK ENC
ODE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.106 102 SCR SET INK
#BC32 Set the colours in which to displ
ay an ink. Action Set which colours will be used to displa
y an ink. If the two colours are the same then the ink will remain a s
teady colour. If the colours are different then the ink will alternate
between these two colours. Entry conditions A contains an in
k number. B contains the first colour. C contains the second col
our. Exit conditions AF,BC,DE and HL corrupt. All ot
her registers preserved. Notes The ink number is masked wi
th #0F to make sure it is legal, and the colours are masked with #1F.
Colours P27..31 are not intended for use they are merely duplicate
s of other colours available. The new colours for an ink are not sent
to the hardware immediately. They are stored and will appear on the s
creen when the next frame flyback occurs. The length of ti
me for which each colour is displayed on the screen can be set by cal
ling SCR SET FLASHING. The inks are set to their default colours at EM
S and when SCR RESET is called. The various colours available
and the default ink colours set are described in Appendix V.
Related entries GRA SET PAPER GRA SET PEN SC
R GET INK SCR SET BORDER SCR SET FLASHING TXT SET PAPER
TXT SET PEN AMSTRAD CPC464/664/6128 FIRMWARE
page 15.107 HAP-15 $$$ 92 SCR CLEAR
#BC14 Clear the screen (to ink zR
AMSTRAD CPC464/664/6128 FIRMWARE page 15.129
Ask the colours an ink is CHAP-15 P7 3456789ABCHAP-15 P8 CDEFGHIJKLMNO
PQRCHAP-15 P8 SCHAP-15 P9 TUVWXYZabcCHAP-15 BAKdefghijklmnopqrsCHAP-15 P10tuvwxy
zCHAP-15 P4 yNotes The ink number is masked with #0F to make sure
it is legal. The colours returned may not be the same as those supp
lied to the Screen Pack as the colours are masked when they are set.
The new colour for an ink are not sent to the hardware immediatel
y when they are set. They are stored and appear on the screen when the
next frame flyback occurs. This means that the colours returned may
not actually be visible to the user 125 CAS IN OPEN
#BC77 Open a file for
input. Action Set up the read stream for reading a file
and read the first block. Entry conditions B contains t
he length of the filename. HL contains the address of the filename.
DE contains the address of a 2K buffer to use. Exit conditions
If the file was opened OK Carry true.
Zero false. HL contains the address of a buffer contai
ning the file header. DE contains the data l
ocation (from the header). BC contains the logical file lengt
h (from the header). A contains the file type (from the header)
. If the stream is in use Carry false.
Zero false. In V1.1 A contains an error number (#0E).
In V1.0 A corrupt. BC,DE and HL corrupt.
If the user hit escape Carry false. Zero tr
ue. In V1.1 A contains an error number (#00).
In V1.0 A corrupt. BC,DE and HL corrupt. Always
IX and other flags corrupt. All other registers
preserved. AMSTRAD CPC464/664/6128 FIRMWARE
page 15.130 Notes This routine can return
two error numbers #00 The user hit escape.
#0E The stream is already in use. The 2K buffer (2048 by
tes) supplied is used to store the contents of a block of the file when
it is read from tape. It will remain in use until the file is closed
by calling either CAS IN CLOSE or CAS IN ABANDON. The buffer may l
ie anywhere in memory, even underneath a ROM. The filename passed is
copied into the read stream descriptor. If it is longer than 16 chara
cters then it is truncated to 16 characters. If it is shorter then it
is padded with nulls (#00) to 16 characters. While the filename may co
ntain any character, it is best to avoid nulls. Lower case ASCII le
tters (characters #61..#7A) are converted to their upper case equivalent
s (characters #41..#5A). The filename may lie anywhere in RAM, even un
derneath a ROM. PThe filename is normally the name of the file th
at is to be read. However, a zero length filename (or one starting
with a null) is treated specially. It is taken to mean read the nex
t file on the tape. When the file is opened for reading the first bl
ock of the file is read immediately. The address of the area where t
he header from this block is stored is passed back to the user so that
information can be extracted from it. This area will lie in the centra
l 32K of RAM. The user is not allowed to write to the header, only re
ad from it. The Cassette Manager uses fields in the header for its ow
n purposes and so these may differ from those read from the tape. The fi
le type, logical length, entry point and all user fields will remain u
nchanged. (see section 8 for a description of the header).
Related entries CAS IN ABANDON CAS IN CHAR CAS IN
CLOSE CAS IN DIRECT CAS IN OPEN (DISC) CAS OUT OPEN
AMSTRAD CPC464/664/6128 FIRMWARE p
age 15.131 125 CAS IN OPEN DISC
#BC77 Open a file for input. Action
Set up the read stream for reading a file and read the header if there
is one, other wise create a fake header in store. Entry condit
ions B contains the length of the filename. HL contains the
address of the filename. DE contains the address of a 2K buffer to use.
Exit conditions If the file was opened OK
Carry true. Zero false. HL contains the a
ddress of a buffer containing the file header.
DE contains the data location (from the header). BC cont
ains the logical file length (from the header). A contains the
file type (from the header). If the stream is already open
Carry false. Zero false. A contain
s an error number (#0E). BC,DE and HL corrupt. If the
open failed for any other reason Carry false.
Zero true. A contains an error number. BC,D
E and HL corrupt. Always IX and other flags corrupt
. all other registers preserved. AMSTRAD CPC4
64/664/6128 FIRMWARE page 15.132 N
otes The 2K buffer (2048 bytes) supplied is used to store the conten
ts of a block of the file when it is read from disc. It will remain i
n use until the file is closed by calling either CAS IN CLOSE or CA
S IN ABANDON. The buffer may lie anywhere in memory, even underneath a
ROM. The filename must conform to the AMSDOS conventions with n
o wild cards. The filename may lie anywhere in RAM, even underneath a R
OM. If the type part of the filename is omitted AMSDOS will attem
pt to open, in turn, a file with the following type parts '.','.BAS','.
BIN'. If none of these exist then the open will fail. When t
he file is opened the first record of the file is read immedia
tely. If this record contains a header then it is copied into store, o
therwise a fake header is constructed in store. The address of the area
where the header is stored is passed back to the user so that informatio
n can be extracted from it. This area will lie in the central 32K
of RAM. The user is not allowed to write to the header, only read fr
om it. AMSDOS uses fields in the header for its own purposes and
so these may differ from those read from the disc. The file type, log
ical length, entry point and all user fields will remain unchanged.
Related entries CAS IN ABANDON (DISC) CAS IN CHAR
(DISC) CAS IN CLOSE (DISC) CAS IN OPEN CAS OUT OPEN (DIS
C) AMSTRAD CPC464/664/6128 FIRMW
ARE page 15.133 126 CAS IN CLOSE
#BC7A Close the input file pro
perly. Action Mark the read stream as closed. P E
ntry conditions No conditions. Exit conditions If
the stream was closed OK Carry true. A corru
pt. If the stream was not open Carry false.
In V1.1 A contains an error number (#0E). In V1.0 A c
orrupt. Always BC,DE,HL and other flags corrupt.
All other registers preserved. Notes This r
outine can only return one error number #0E The stream is n
ot open. This routine should be called to close a file after readin
g from it using either CAS IN CHAR or CAS IN DIRECT. The u
ser may reclaim the buffer passed to CAS IN OPEN after calling this r
outine. Related entries CAS IN ABANDON CAS IN CL
OSE (DISC) CAS IN OPEN CAS OUT CLOSE AMSTRAD C
PC464/664/6128 FIRMWARE page 15.134
126 CAS IN CLOSE (DISC) #BC7A
Close the input file properly. Action Mark the read stream
as closed. Entry conditions No conditions. Exit c
onditions If the stream was closed OK Carry true.
Zero false. A corrupt. If the stream
is not open Carry false. Zero false.
A contains an error number (#0E). If the close failed for an
y other reason Carry false. Zero true.
A contains an error number. Always BC,D
E,HL and other flags corrupt. All other registers preserved.
Notes This routine should be called to close a file after rea
ding from it using either CAS IN CHAR or CAS IN DIRECT. The
user may reclaim the buffer passed to CAS IN OPEN after calling this
routine. The drive motor if turned off immediately after the input
file has closed. This is done so that a loaded program which takes o
ver the machine is not left with the motor running indefinitely.
Related entries CAS IN ABANDON (DISC) CAS IN CLOSE
CAS IN OPEN (DISC) CAS OUT CLOSE (DISC) AMSTRAD CPC464/
664/6128 FIRMWARE page 15.135 127
CAS IN ABANDON #BC7D Cl
ose the input file immediately. Action Abandon reading f
rom the read stream and close it. Entry conditions No co
nditions. Exit conditions AF,BC,DE and HL corrupt.
All other registers preserved. Notes This routine is
intended for use after an error or in similar circumstances.
The user may reclaim the buffer passed to CAS IN OPEN after calling
this routine. Related entries CAS IN ABANDON
(DISC) CAS IN CLOSE CAS IN OPEN CAS OUT ABANDON
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.136 127 CAS IN ABANDON (DISC)
#BC7D Close the input file immediately.
Action Abandon reading from the read stream and close it.
Entry conditions No conditions. Exit conditio
ns AF,BC,DE and HL corrupt. All other registers preserved.
Notes This routine is intended for use after an err
or or in similar circumstances. The user may reclaim the
buffer passed to CAS IN OPEN after calling this routine.
Related entries CAS IN ABANDON CAS IN CLOSE (DISC)
CAS IN OPEN (DISC) CAS OUT ABANDON (DISC)
AMSTRAD CPC464/664/6128 FIRMWARE page 15.137
128 CAS IN CHAR
#BC80 Read a character from the input file. Action
Read a character from the input stream. Fetches blocks from tape as
required. Entry conditions No conditions. Exit
Pconditions If the character was read OK Carry t
rue. Zero false. A contains the character read
from the file. If the end of the file was found Ca
rry false. Zero false. In V1.1 A contains an e
rror number (#0E or #0F). In V1.0 A corrupt. If the u
ser hit escape Carry false. Zero true.
In V1.1 A contains an error number (#00). In V1.0 A
corrupt. Always IX and other flags corrupt.
All other registers preserved. Notes This routine can r
eturn three error numbers #00 The user hit escape. #0E
The stream is not open for reading characters or the user hit
escape previously. #0F Have reached the end of the file. O
nce the first character has been read from a file it can only be used fo
r character by character access. It is not possible to switch to dir
ect reading (by CAS IN DIRECT). Related entries CAS IN CHAR (D
ISC) CAS IN CLOSE CAS IN DIRECT CAS IN OPEN CAS
OUT CHAR CAS RETURN CAS TEST EOF AMSTRAD CPC464/664/61
28 FIRMWARE page 15.138 128 CAS IN
CHAR (DISC) #BC80 Read a cha
racter from an input file. Action Read a character from the
input stream. Entry conditions No conditions Exit
conditions If the character was read OK Carry true
Zero false. A contains the character read f
rom the file. If the end of the file was found, or stream not open as
expected Carry false. Zero false.
A contains an error number (#0E, #0F or #1A). If failed for an
y other reason Carry false. Zero true.
A contains an error number. Always IX and
other flags corrupt. All other registers preserved. N
otes Once the character has been read from a file the rest of the file
may only be read character by character (using CAS IN CHAR). It
is impossible to switch to direct reading (by CAS IN DIRECT).
The CP/M end of file character (#1A) is treated as end of file (carry
false, zero false). However, it is possible to continue reading
characters until the hard end of file. The error number returned is s
et to #1A for soft (CP/M) end of file and #0F for hard end of file. Th
e action for spotting soft and of file is not performed by the equ
ivalent cassette version of the routine and will never return #1A when
carry is false. If a file containing binary data is read using this
routine then it will be necessary to spot soft EOF and ignore it.
Related entries CAS IN CHAR CAS IN CLOSE (DISC)
CAS IN DIRECT (DISC) CAS IN OPEN (DISC) CAS OUT CHAR (DISC)
CAS RETURN (DISC) CAS TEST EOF (DISC) AMSTRAD CPC464/664/6
128 FIRMWARE page 15.139 #BC
77 Open a file for input. 103 SCR GET INK
#BC35 Ask the colours an
ink is currently displayed in. Action Get the two colou
rs that are used to display an ink on the screen. Entry conditions
A contains an ink number. Exit conditions B c
ontains the first colour. C contains the second colour. AF,D
E and HL corrupt. All other registers preserved. Notes
The ink number is masked with #0F to make sure it is legal. The
colours returned may not be the same as those supplied to the Screen
Pack as the colours are masked when they are set. The new colou
r for an ink are not sent to the hardware immediately when they are
set. They are stored and appear on the screen when the next frame flyb
ack occurs. This means that the colours returned may not actually be
visible to the user Pyet. The default settings for the inks and th
e various colours available are described in Appendix V. Re
lated entries GRA GET PAPER GRA GET PEN SCR GET BORDER
SCR SET INK TXT GET PAPER TXT GET PEN
AMSTRAD CPC464/664/6128 FIRMWARE page 15.108
104 SCR SET BORDER #BC3
8 Set the colours in which to display the border. Action
Set which two colours will be used to display the border. If the
two colours are the same then the border will remain a steady colour.
If the colours are different then the border will alternate between thes
e two colours. Entry conditions B contains the f
irst colour. C contains the second colour. Exit conditions
AF,BC,DE and HL corrupt. All other registers preserved.
Notes The colours are masked with #1F to ensure that they are
legal. Colours 27..31 are not intended for use they are merely duplicat
es of other colours available. The new colours for the
border are not sent to the hardware immediately. They are stored
and will appear on the screen when the next frame flyback occurs.
The length of time for which each colour is displayed on the screen
can be set by calling SCR SET FLASHING. The border is set to
its default colours at EMS and when SCR RESET is called. The default co
lour and the colours available are described in Appendix V. R
elated entries SCR GET BORDER SCR SET FLASHING SCR SET
INK AMSTRAD CPC464/664/6128 FIRMWARE
page 15.109 105 SCR GET BORDER
#BC3B Ask the colours the border is currently disp
layed in. Action Get the two colours used to display the
border on the current screen. Entry conditions No condi
tions. Exit conditions B contains the first colour.
C contains the second colour. AF, DE and HL corrupt. All
other registers preserved. Notes The colours returned m
ay not be the same as those supplied to the Screen Pack as they are
masked when they are set. The new colours for the border are
not sent to the hardware immediately when they are set. They are
stored and appear on the screen when the next frame flyback occurs.
This means that the colours returned may not actually be visible to the
user yet. The default border colour and the colours available are d
escribed in Appendix V. Related entries SCR G
ET INK SCR SET BORDER AMSTRAD CPC464/664/6128 FIRM
WARE page 15.110 106 SCR SET FLASH
ING #BC3E Set the flash p
eriods. Action Set for how long each of the two colours
for the inks and the border are to be displayed on the screen. These s
ettings apply to all inks and the border. Entry condition
s H contains the period for the first colour. L contains the
period for the second colour. Exit conditions AF and HL
corrupt. All other registers preserved. Notes T
he flash periods are given in frame flybacks (1/50 or 1/60 of a se
cond). A period of 0 is taken to mean a period of 256. The default s
etting for the flash periods is 10 frame flybacks (1/5 or 1/6 of a secon
d). This is set at EMS and when SCR RESET is called. The new flash p
eriods are not used immediately but when the inks next flash.
Related entries SCR GET FLASHING SCR SET BORDER
SCR SET INK AMSTRAD CPC464/664/6128 FIRMWARE
page 15.111 107 SCR GET FLASHING
#BC41 Ask the current flash period
s. Action Get the time for which each of the two colours
associated with an ink or the border is P displayed. Entr
y conditions No conditions. Exit conditions
H contains the period for the first colour. L contains the period for th
e second colour. AF corrupt. All other registers preserved.
Notes The flash periods are given in frame flybacks (1
/50 or 1/60 of a second). A period of 0 means 256.
Related entries SCR SET FLASHING
AMSTRAD CPC464/664/6128 FIRMWARE page 15.112
108 SCR FILL BOX
#BC44 Fill a character area of the screen with an ink.
Action Fill a rectangular area of the screen with an ink. The b
oundaries of this area are given in character positions. En
try conditions A contains the encoded ink to fill the area with.
H contains the physical left column of the area to fill. D cont
ains the physical right column of the area to fill. L contains the physi
cal top row of the area to fill. E contains the physical bottom row of t
he area to fill. Exit conditions AF, BC, DE and HL corru
pt. All other registers preserved. Notes The are
a boundaries are given in physical coordinates. i.e. Row 0, column 0
is the top left corner of the screen. They are not checked for legal
ity. If illegal boundaries are passed (edges of the screen) then unpre
dictable effects may occur. The screen is written directly without u
sing any other write routine. The current Graphics VDU write mode is th
erefore ignored. Related entries SCR CLEAR SCR
FLOOD BOX TXT CLEAR WINDOW AMSTRAD CPC464/664/612
8 FIRMWARE page 15.113 109 SCR FLO
OD BOX #BC47 Fill a by
te area of the screen. Action Fill a rectangular area of
the screen with an ink. The boundaries of the area must lie on byte b
oundaries. This routine will not fill an arbitrary area of the screen
to pixel a boundary. Entry conditions C contains the en
coded ink to fill the area with. HL contains the screen address of the
top left corner of the area to fill. D contains the (unsign
ed) width of the area to fill in bytes. E contains the (unsigned) heig
ht of the area to fill in screen lines. Exit conditions
AF, BC, DE and HL corrupt. All other register preserved. Not
es The whole of the rectangle being cleared must lie on the screen.
If any of it lies off the screen then unpredictable effects may occur.
A height or width of 0 is taken to mean 256 (which is too large to f
it on the screen). The screen is written directly without us
ing any other write routine. The current Graphics VDU write mode is the
refore ignored. Related entries GRA CLEAR WINDOW
SCR CLEAR SCR FILL BOX AMSTRAD CPC464/664/6128 FIRMWA
RE page 15.114 110 SCR CHAR INVERT
#BC4A Invert a characte
r position. Action All pixels at a character position th
at are written in one ink are rewritten in a second ink, and vice
versa. This gives an inverse effect to the character position. Inver
ting the character a second time will restore the original inks. Thi
s effect is used to draw the Text VDU cursors. Entry condi
tions B contains an encoded ink. C contains another encoded
ink. H contains a physical character column. L contains a physic
al character row. Exit conditions AF, BC, DE and HL corr
upt. All other registers preserved. Notes The char
acter position is given in physical coordinates i.e. Row 0, column 0
is the top left corner of the screen. The character position given is
not checked for being legal. An illegal position (one outside the
limits of the screen) will have unpredictable effects.
PAll pixels at the character position are exclusive-ored with the
exclusive-or of the two inks supplied. Pixels at the character
position that are set to one of the two inks supplied will therefore b
e set to the other supplied ink. Pixels set to other inks will also be
altered. Related entries TXT PLACE CURSOR TXT
REMOVE CURSOR AMSTRAD CPC464/664/6128 FIRMWARE
page 15.115 111 SCR HW ROLL
#BC4D Move the whole screen up or down eig
ht pixel lines (one character). Action Roll the screen using
the hardware. The new line appearing on the screen is cleared.
Entry conditions If the screen is rolled down
B must be zero. If the screen is to roll up B mus
t be non-zero. Always A contains the encoded ink to
clear the new line to. Exit conditions AF, BC, DE and HL co
rrupt. All other registers preserved. Notes The scre
en is rolled by changing the screen offset (see SCR SET OFFSET).
Rolling the screen upwards moves the screen contents up and clears the
new bottom line. The screen offset is therefore increased by 80 (MOD
#0800). Rolling the screen downwards moves the screen contents
down and clears the new top line. The screen offset is therefore decrea
sed by 80 (MOD #0800). The new line is cleared by writing to
it directly thus the Graphics VDU write mode is ignored. Th
e Text VDU roll count is not changed by this routine (see TXT GET WIN
DOW). Special precautions are taken to make sure that the screen is
kept looking presentable during the rolling and in particular during
the clearing of the new line. Principally this consists of clearing t
he new line in two parts. First the part that is not visible on th
e screen (by virtue of the screen addressing) is cleared. Then, after
waiting for frame flyback and changing the screen offset, the second
half of the line that was part of the line that just rolled off the
screen is cleared. Related entries SCR SET OFFSET
SCR SW ROLL AMSTRAD CPC464/664/6128 FIRMWARE
page 15.116 112 SCR SW ROLL
#BC50 Move an area of the screen up or down
eight pixel lines (one character). Action Roll an
area of the screen by copying. The area to be rolled is specifie
d in character positions. Entry conditions If the screen is
to roll down B must be zero. If the screen is to ro
ll up B must be non-zero. Always
A contains the encoded ink to clear the new line to. H contain
s the physical left column of the area to roll. D contains the
physical right column of the area to roll. L contains the physi
cal top row of the area to roll. E contains the physical bottom
row of the area to roll. Exit conditions AF, BC, DE and HL
corrupt. All other registers preserved. Notes The ar
ea boundaries are given in physical coordinates. i.e. Row 0, column
0 is the top left corner of the screen. The boundaries are not checked
for legality. If illegal boundaries are passed (edges of the screen) t
hen unpredictable effects may occur. Rolling the area upwards moves th
e contents up and clears the new bottom line. Rolling the area down
wards moves the area contents down clears the top new line.
The line is cleared by writing to it directly the Graphics VDU write mo
de is ignored. The Text VDU roll count is not changed by this routine
(see TXT GET WINDOW). Special precautions are taken to make
sure that the screen is kept looking presentable during the rolling
. Principally this consists waiting for frame flyback before performing
the copy. Related entries SCR HW ROLL AMS
TRAD CPC464/664/6128 FIRMWARE P page 15.117
113 SCR UNPACK #BC53
Expand a character matrix for the current screen mode.
Action Convert a matrix from its standard form to a set of pixel
masks as appropriate for the current screen mode. Entry con
ditions HL contains the address of a matrix. DE contains the
address of an area to unpack into. Exit conditions AF,
BC, DE and HL corrupt. All other registers preserved. Notes
The matrix is converted into a series of masks which cover all t
he screen bytes in the character. This means that each byte of the matri
x is converted to 4 bytes in mode 0, 2 bytes in mode 1 and 1 byte in
mode 2. Thus the unpacking area must be 32, 16 or 8 bytes long.
If a bit in the matrix is set then the appropriate pixel mask is
included in the unpacked version (the bits are set to one). Otherwise
the pixel mask is not included in the unpacked version (the bits are
set to zero). Related entries SCR REPACK
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.118 #BC35 Ask the colours an ink is t be 3
2, 16 or 8 bytes long. If a bit in the matrix is set then the app
ropriate pixel mask is included 32 TXT RD CHAR
#BB60 Read a character fr
om the screen. Action Read a character from the screen at
the cursor position of the currently selected stream. En
try conditions No conditions. Exit conditions If a
recognisable character was found Carry true.
A contains the character read. If no recognisable character was found
Carry false. A contains zero. Always
Other flags corrupt. All other registers pr
eserved. Notes In V1.1 firmware the cursor position is fo
rced legal (inside the window) before the character is read. This may
cause the screen to roll. The same is not true in V1.0 firmware whe
re the cursor position is not forced legal and steps must be tak
en to avoid reading characters from outside the window. The
read is performed by comparing the matrix found on the screen with the
matrices used to generate characters. As a result changing a chara
cter matrix, changing the pen or paper inks, or changing the screen
(e.g. drawing a line through a character) may make the charact
er unreadable. To actually read the character from the screen th
e TXT UNWRITE indirection is called. Special precautions a
re taken against generating inverse space (character #8F). Initial
ly the character is read assuming that the background to the charact
er was written in the current paper ink and treating any other ink as
foreground. If this fails to generate a recognisable character or i
t generates inverse space then another try is made by assuming that the
foreground to the character was written in the current pen ink and tr
eating any other ink as background. The characters are scanned startin
g with #00 and finishing with #FF. Related entries TXT UNWRITE
TXT WR CHAR AMSTRAD CPC464/664/6128 FIRMWARE
page 15.34 33 TXT SET GRAPHIC
#BB63 Turn on or off the Graphics VDU writ
e character option. Action Enable or disable graphic chara
cter writing on the currently selected stream. Entry condit
ions If graphic writing is to be turned on A mu
st be non-zero. If the graphic writing is to be turned off
A must contain zero. Exit conditions AF corr
upt. All other registers preserved. Notes When g
raphic character writing is enabled then all characters sent to TXT OUT
PUT are printed using the Graphics VDU (see GRA WR CHAR) r Pather then
the Text VDU (see TXT WR CHAR). Also all control codes are printe
d rather than obeyed. Characters sent to TXT WR CHAR will be printed
as normal. Character printing is not prevented by disabling the Te
xt VDU (with TXT VDU DISABLE) if graphic character writing is enabled.
Related entries GRA WR CHAR TXT OUTPUT
AMSTRAD CPC464/664/6128 FIRMWARE page 15.
35 34 TXT WIN ENABLE
#BB66 Set the size of the current text window. Ac
tion Set the boundaries of the window on the currently selected stre
am. The edges are the first and last character columns inside the windo
w and the first and last character rows inside the window.
Entry conditions H contains the physical column of one edge. D
contains the physical column of the other edge. L contains the physical
row of one edge. E contains the physical row of the other edge.
Exit conditions AF,BC,DE and HL corrupt. All other register
s preserved. Notes The edge positions are given in physical
screen coordinates i.e. Row 0, column 0 is the top left corner of the
screen and the coordinates are signed numbers. The window is
truncated, if necessary, so that it fits on the screen. The left colu
mn of the window is taken to be the smaller of H and D. The top row of
the window is taken to be the smaller of L and E. The cursor is moved
to the top left corner of the window. The window is not cleared.
If the window covers the whole screen then when the window is rolled
the hardware roll routine (see SCR HW ROLL) will be used. If the
window covers less than the whole screen the software roll routine
(see SCR SW ROLL) will be used. The default text window covers the
whole screen and is set up when TXT INITIALISE or SCR SET MODE is called
. Related entries TXT GET WINDOW TXT VALIDATE
AMSTRAD CPC464/664/6128 FIRMWARE page 1
5.36 35 TXT GET WINDOW
#BB69 Get the size of the current window. Actio
n Get the boundaries of the window on the currently selected stream
and whether it covers the whole screen. Entry conditions
No conditions. Exit conditions If the window c
overs the whole screen Carry false. If the wind
ow covers less than the whole screen Carry true. Al
ways H contains the leftmost column in the window.
D contains the rightmost column in the window. L contain
s the topmost row in the window. E contains the bottommost row
in the window. A corrupt. All other register
s preserved. Notes The boundaries of the window are given in
physical coordinates. i.e. Row 0, column 0 is the top left corner of
the screen. The boundaries returned by this routine may not be the sam
e as those set when TXT WIN ENABLE was called because the window is tr
uncated to fit the screen. Related entries. TXT VAL
IDATE TXT WIN ENABLE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.37 36 TXT CLEAR WINDOW
#BB6C Clear current window.
Action Clear the text window of the currently selected s
tream to the paper ink of the currently selected stream.
Entry conditions No conditions. Exit conditions
AF,BC,DE and HL corrupt. All other registers preserved.
Notes The cursor is moved to the top left corner of the
window. Related entries GRA CLEAR WINDOW SCR C
LEAR TXT SET PAPER TXT WIN ENABLE
AMSTRAD CPC464/664/6128 FIRMWARE page 15.38
37 TXT SET COLUMN #
BB6F P Set cursor horizontal position Action
Move the current position of the currently selected stream to a new
column. The cursor blob will be removed from the current position and
redrawn at the new position (if the cursor is enabled and turned on).
Entry conditions A contains the required logical column for the cu
rsor. Exit conditions AF and HL corrupt. All oth
er registers preserved. Notes The required column is giv
en in logical coordinates. i.e. Column 1 is the leftmost column of the
window. The cursor may be moved outside the window. How ever,
it will be forced to lie inside the window before any characters is
written by the Text VDU (see TXT VALIDATE) or the cursor blob is
drawn. Related entries TXT GET CURSOR TXT SE
T CURSOR TXT SET ROW AMSTRAD CPC464/664/6128 FIR
MWARE page 15.39 38 TXT SET ROW
#BB72 Set cursor v
ertical position. Action Move the current position o
f the currently selected stream to a new row. The cursor blob will be
removed from the current position and redrawn at the new position (
if the cursor is enabled and turned on). Entry conditions
A contains the required logical row for the cursor. Exit con
ditions AF and HL corrupt. All other registers preserved.
Notes The required row is given in logical coordinat
es. i.e. Row 1 is the topmost row of the window. The cu
rsor may be moved outside the window. How ever, it will be forced
to lie inside the window before any characters is written by the Text
VDU (see TXT VALIDATE) or the cursor blob is drawn. Related entri
es TXT GET CURSOR TXT SET COLUMN TXT SET CURSOR
AMSTRAD CPC464/664/6128 FIRMWARE page 15.40
39 TXT SET CURSOR
#BB75 Set cursor position. Action
Move the current position of the currently selected stream to a new
row and column. The cursor blob will be removed from the current p
osition and redrawn at the new position (if the cursor is enabled and tu
rned on). Entry conditions H contains the required l
ogical column. L contains the required logical row. Exit c
onditions AF and HL corrupt. All other registers preserved.
Notes The required row is given in logical coordinates.
i.e. Row 1, column 1 is the top left corner of the window.
The cursor may be moved outside the window. How ever, it will be
forced to lie inside the window before any characters is written by t
he Text VDU (see TXT VALIDATE) or the cursor blob is drawn. Relate
d entries TXT GET CURSOR TXT SET COLUMN TXT SET ROW
AMSTRAD CPC464/664/6128 FIRMWARE pa
ge 15.41 40 TXT GET CURSOR
#BB78 Ask current cursor position. Action
Get the current location of the cursor and a count of the number o
f times the window of the currently selected stream has rolled.
Entry conditions No conditions. Exit conditions
H contains the logical cursor column. L contains the logical cur
sor row. A contains the current roll count. Flags corrupt.
All other registers preserved. Notes The cursor p
osition is given in logical coordinates. i.e. Row 1, column 1 is t
he top left corner of the window. The roll count passed out has no a
bsolute meaning. It is decremented when the window is rolled up and is
incremented when the window is rolled down. It may be used to deter
mine whether the window has rolled by comparing it with a previous value
. The position reported may not be inside the window and is, theref
ore, not necessarily the po P sition at which the next cha
racter will be printed. Use TXT VALIDATE to check this. Rela
ted entries TXT SET COLUMN TXT SET CURSOR TXT SET RO
W TXT VALIDATE AMSTRAD CPC464/664/6128 FIRMWARE
page 15.42 41 TXT CUR ENABLE
#BB7B Allow cursor display - user.
Action Allow the cursor blob for the currently selected strea
m to be placed on the screen. The cursor blob will be placed
on the screen immediately unless the cursor is turned off (see TXT CUR
OFF). Entry conditions No conditions.
Exit conditions AF corrupt. All other registers preserved
. Notes Cursor enabling and disabling is intended fo
r use by the user. It is also used when the VDU is disabled (TXT V
DU ENABLE and TXT VDU DISABLE). Related entries
TXT ASK STATE TXT CUR DISABLE TXT CUR ON TXT DRA
W CURSOR TXT UNDRAW CURSOR AMSTRAD CPC464/664/61
28 FIRMWARE page 15.43 42 TXT CUR
DISABLE #BB7E Dissallo
w cursor display - user. Action Prevent the cursor blob
for the currently selected stream from being placed on the screen. The
cursor blob will be removed from the screen immediately if it is curre
ntly there. Entry conditions No conditions.
Exit conditions AF corrupt. All other registers preserved.
Notes Cursor enabling and disabling is intended for use b
y the user. It is also used when the VDU is disabled (TXT VDU ENA
BLE and TXT VDU DISABLE). Related entries
TXT ASK STATE TXT CUR ENABLE TXT CUR OFF TXT DRAW CURSO
R TXT UNDRAW CURSOR AMSTRAD CPC464/6
64/6128 FIRMWARE page 15.44 43 TX
T CUR ON #BB81 A
llow cursor display - system. Action Allow the curso
r blob for the currently selected stream to be placed on the screen.
The cursor blob will be placed on the screen immediately unles
s the cursor in disabled (see TXT CUR DISABLE). Entry conditions
No conditions. Exit conditions All registers
and flags preserved. Notes Turning the cursor on and off
is intended for use by system ROMs. Related entries
TXT ASK STATE TXT CUR ENABLE TXT CUR OFF TXT DRAW CURSO
R TXT UNDRAW CURSOR AMSTRAD CPC464/664
/6128 FIRMWARE page 15.45 #BB60
Read a character from the sc No conditions. Exit condition
s All registers and flags preserved. Notes T
urning the cursor on and off is intended for use by system ROMs. R
elated entries TXT ASK STATE TXT CUR ENABLE TXT CU
R OFF TXT DRAW CURSOR TXT UNDRAW CURSOR
129 CAS IN DIRECT
#BC83 Read the input file into store. Action
Read the input file directly into store in one go rather than one
character at a time. Entry conditions HL contains the ad
dress to put the file (anywhere in RAM). Exit conditions If
the file was read OK Carry true. Zero false.
HL contains the entr !P!!!!!!!!!y address (from the header).
A corrupt. If the file was not open as expected
Carry false. Zero false. In V1.1 A c
ontains an error number (#0E). In V1.0 A corrupt.
HL corrupt. If the user hit escape Carry false.
Zero true. In V1.1 A contains an error number (
#00). In V1.0 A corrupt. HL corrupt. A
lways BC, DE, IX and other flags corrupt. All
other registers preserved. Notes This routine can return two e
rror numbers #00 The user hit escape. #0E The stream is
not open for reading directly or the user hit escape previous
ly. The read stream must be newly opened (by CAS IN OPEN). If the st
ream has been used for character access (by calling CAS IN CHAR) then it
is not possible to directly read the file. Neither is it possible
to directly read from the file more than once. This will merely corr
upt the copy of the file read. The buffer of data read when th
e stream was opened is copied to its correct position and the remaind
er of the file (if any) is also read into store. Related ent
ries CAS IN CHAR CAS IN DIRECT (DISC) CAS IN CL
OSE CAS IN OPEN CAS OUT DIR
ECT AMSTRAD CPC464/664/6128 FIRMWARE page 15
.140 129 CAS IN DIRECT (DISC)
#BC83 Read the input file into store. Action
Read the input file directly into store in one go rather than one
character at a time. Entry conditions HL contains the add
ress to put the file (anywhere in RAM). Exit conditions If t
he file was read OK Carry true. Zero false
. HL contains the entry address (from the header).
A corrupt. If the stream is not open as expected
Carry false. Zero false. A contains an e
rror number (#0E). HL corrupt. If the read failed fo
r any other reason Carry false. Zero true.
A contains an error number. HL corrupt.
Always BC, DE, IX and other flags corrupt.
All other registers preserved. Notes The read stream must be
newly opened (by CAS IN OPEN). If the stream has been used for charac
ter access (by calling CAS IN CHAR or CAS TEST EOF) then it is not possi
ble to directly read the file. Neither is it possible to directly read
from the file more than once. (Any attempt to do so will corrupt the c
opy of the file read. If the file has a header then the number of
bytes read is that recorded in the 24 bit file length field (bytes
64..66 of the disc file header). If there is no header the file is re
ad until hard end of file. The CP/M end of file character, #1A
is not treated as end of file. Related entries CAS IN CHAR
(DISC) CAS IN CLOSE (DISC) CAS IN OPEN (DISC) CAS IN DI
RECT CAS OUT DIRECT (DISC) AMSTRAD CPC464/664/6128 FI
RMWARE page 15.141 130 CAS RETURN
#BC86 Put the last
character read back. Action Put the last character read
by CAS IN CHAR back into the read buffer. The character will be re-read
next time CAS IN CHAR is called. Entry conditions No co
nditions. Exit conditions All registers and flags preser
ved. Notes It is only possible to use this routine to re
turn the last character that has been read by CAS IN CHAR. At least on
e character must have been read since the stream
was opened or the last character was returned or th
e last test for end of file was made. Related entries
CAS IN CHAR CAS RETURN (DISC) "P""""""""
" AMSTRAD CPC464/664/6128 FIRMWARE page 15.142
130 CAS RETURN (DISC)
#BC86 Put the last character read back. Action
Put the last character read by CAS IN CHAR back into the read buffer.
The character will be re-read next time CAS IN CHAR is called.
Entry conditions No conditions. Exit conditions
All registers and flags preserved. Notes It is only
possible to use this routine to return the last character that has be
en read by CAS IN CHAR. At least one character must have been read si
nce the stream was opened or the last charact
er was returned or the last test for end of file was made.
Related entries CAS IN CHAR (DISC) CAS RETURN
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.143 131 CAS TEST EOF
#BC89 Have we reached the end of the file ye
t Action Test if the end of the input file has been reached.
Entry conditions No conditions. Exit conditions
If the end of the file was not found Carry true.
Zero false. A corrupt. If the end of th
e file was found Carry false. Zero false.
In V1.1 A contains an error number (#0E or #0F).
In V1.0 A corrupt. If the user hit escape Carry fa
lse. Zero true. In V1.1 A contains an error nu
mber (#00). In V1.0 A corrupt. Always
IX and other flags corrupt. All other registers preserved.
Notes This routine can return three error numbers
#00 The use hit escape. #0E The stream is no
t open for reading characters or the user hit esca
pe previously. #0F Have reached the end of the file.
Calling this routine put the stream into character input mode. It is
not possible to use direct reading after calling this routine. It
is not possible to call CAS RETURN after this routine has been call
ed. A character must be read first. Related entries CAS IN C
HAR CAS TEST EOF (DISC) AMSTRAD CPC464/664/6128 FIRMWARE
page 15.144 131 CAS TEST EOF (DISC)
#BC89 Have we reached the end of
the file yet Action Test if the end of the input file has be
en reached. Entry conditions No conditions. Exit c
onditions If the end of the file was not found Carr
y true. Zero false. A corrupt. If th
e end of the file was found or stream was not open as expected
Carry false. Zero false. A contains an error
number (#0E,#0F or #1A). If failed for any other reason
Carry false. Zero true. A contains an er
ror number. Always IX and other flags corrupt.
All other registers preserved. Notes This routi
ne will report end of file if either there are no more characters
in the file or if the next character to be read is the CP/M end of file
character #1A. Calling this routine puts the stream into character inp
ut mode. It is not possible to use direct reading after calling this ro
utine. It is not possible to call CAS RETURN after this routine ha
s been called. A character must be read first. Related entrie
s CAS IN CHAR (DISC) CAS TEST EOF AMSTRAD
CPC464/664/6128 FIRMWARE page 15.145
132 CAS OUT OPEN #BC8C
Open a file for output. Action Set up the write stream
for output. Entry conditions B contains the length of the fi
lename. #P######### HL contains the address of the filename. DE
contains the address of a 2K buffer to use. Exit conditions
If the user hit escape Carry false. Zero tr
ue. In V1.1 A contains an error number (#00).
In V1.0 A corrupt. HL corrupt. If the stream is in us
e already Carry false. Zero false.
In V1.1 A contains an error number (#0E). In V1.0 A cor
rupt. HL corrupt. If the file was opened OK
Carry true. Zero false. HL contains
the address of a buffer containing the header that will be
written to each file block. Always BC,DE,IX and oth
er flags corrupt. All other registers preserved. Note
s This routine can only return two error numbers. #
00 The user hit escape. #0E The stream is already open.
When writing files character by character the 2K buffer (2048 bytes)
supplied is used to store the contents of a block of the file
before it is written to tape. It will remain in use until the file
is closed by calling either CAS OUT CLOSE or CAS OUT ABANDON. The
buffer may reside anywhere in memory - even underneath a ROM. AM
STRAD CPC464/664/6128 FIRMWARE page 15.146
When the stream is opened for writing, a header is set up which will
be written at the start of each block of the file. Many of the fields
in the header are set by the Cassette Manager but the remainder are
available for use by the user. The address of this header is passed to
the user so that information can be stored in it. The user may write
to the file type, logical length, entry point and all user fields. The
user is not allowed to write to any other field in the header. The
user setable fields are all zeroized initially, with the exception of
the file type which is set to unprotected ASCII version 1. (See
section 8.4 for a description of the header). The filename passe
d is copied into the write stream descriptor. If it is longer than 16
characters then it is truncated to 16 characters. If it is
shorter than 16 characters then it is padded with nulls (#0
0) to 16 characters. While the filename may contain any charac
ter, it is best to avoid nulls. Lower case ASCII letters (c
haracters #61..#7A) are converted to their upper case equivalents
(characters #41..#5A). The filename may lie anywhere in RAM, even
underneath a ROM. Related entries CAS IN OPEN
CAS OUT ABANDON CAS OUT CHAR CAS OUT CLOSE CAS OUT DIRE
CT CAS OUT OPEN (DISC)
AMSTRAD CPC464/664/6128 FIRMWARE page 15.147
132 CAS OUT OPEN (DISC)
#BC8C Open a file for output. Action Set up the
write stream for output. Entry conditions B contains the len
gth of the filename. HL contains the address of the filename. DE
contains the address of a 2K buffer to use. Exit conditions
If the file was opened OK Carry true. Zero fa
lse. HL contains the address of the buffer containing the heade
r. A corrupt. If the stream is open already
Carry false. Zero false. A contains an e
rror number (#0E). HL corrupt. If the open failed for a
ny other reason Carry false. Zero true.
A contains a error number. HL corrupt. Alway
s BC,DE,IX and other flags corrupt. All other
registers preserved. Notes When characters are output to the f
ile using CAS OUT CHAR a 2K buffer supplied is used by AMSDOS to buffer
the output. It will remain in use until the file is closed by calling e
ither CAS OUT CLOSE or CAS OUT ABANDO $P$$$$$$$$$N. The buffer may r
eside anywhere in memory - even underneath a ROM. The filenam
e passed must conform to AMSDOS conventions with no wild cards. It is
copied into the write stream header. The filename my lie anywhere in R
AM - even underneath a ROM. The file is opened with a type part of '.$
$$' regardless of the type part supplied. Any existing file with the s
ame name and type part of '.$$$' is deleted. The file is renamed to it
s supplied name when CAS OUT CLOSE is called. When the strea
m is opened aa header is set up. Many of the fields in the header are
set by AMSDOS but the remainder are available for use by the user. The
address of this header is passed to the user so the information can b
e stored in it. The user may write to the file type, logical length, en
try point and all other fields. The use is not allowed to write to
any other field of the header. The user setable fields are all zeroiz
ed initially, with the exception of the file type which is set to unprot
ected ASCII version 1. AMSTRAD CPC464/664/6128 FIRMWARE
page 15.148 The header type field must be writte
n to before CAS OUT CHAR or CAS OUT DIRECT is called. The type field
must not be altered after calling either of these routines. If the file
type is set to any type other than unprotected ASCII then space will
be preserved for the header which when the file is closed.
Related entries CAS IN OPEN (DISC) CAS OUT ABANDON (DIS
C) CAS OUT CHAR (DISC) CAS OUT CLOSE (DISC) CAS OUT DIRE
CT (DISC) CAS OUT OPEN
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.149 15.150 #BC83 Re
ad the input file into sto 133 CAS OUT CLOSE
#BC8F Close the output file properly.
Action Mark the write stream as closed and write the last buffe
r area of data to tape. Entry conditions No condit
ions. Exit conditions If the stream was closed OK
Carry true. Zero false. A corrupt.
If the stream is not open Carry false.
Zero false. In V1.1 A contains an error number (#0E).
In V1.0 A corrupt. Always BC, DE, HL, IX and
other flags corrupt. All other registers preserved. No
tes This routine can return two error numbers #00
The user hit escape. #0E The stream is not open.
It is necessary to call this routine after using CAS OUT CHAR or CAS
OUT DIRECT to cause the last block of data to be written to the tape.
If the block is zero bytes long (nothing has been written to the file)
then nothing is written to tape. If writing is to be abandoned the C
AS OUT OPEN should be called as this does not write the last block o
f data to the tape. If the user hits escape during the writing of the
last block then the file is left open and is not closed. The
user may reclaim the buffer passed to CAS OUT OPEN after calling this
routine. Related entries CAS IN CLOSE CAS OUT ABANDO
N CAS OUT CLOSE (DISC) CAS OUT OPEN AMSTRAD CPC464/664
/6128 FIRMWARE page 15.150 133 CAS
OUT CLOSE (DISC) #BC8F Close t
he output file properly. Action Mark the write stream as clo
sed and give it its correct name. Entry conditions No condit
ions. Exit conditions If the stream was closed OK
Carry true. Zero false. A corrupt
. If the stream is not open Carry false.
Zero false. A contains an error number (#0E).
If the close failed for any other reason Carry false.
Zero true. A contains an error number.
%P%%%%%%%%% Always BC,DE,HL,IX and other flags corrupt
. All other registers preserved. Notes It
is necessary to call this routine after using CAS OUT CHAR or CAS OUT
DIRECT to ensure that all the data is written to the disc, to writ
e the header to the start of the file and to give the file its true
name. If no data has been written to the file then it is abando
ned and nothing is written to disc. This is for compatability with c
assette routines. AMSTRAD CPC464/664/6128 FIRMWARE
page 15.151 When the file was opened it w
as given the type part of '.$$$'. This routine will rename the file t
o its true name and rename any existing version to have a '.BAK' type p
art. This ensures that any previous version of the file is automatic
ally kept as a backup. Any existing '.BAK' version is deleted. If, wh
en the file was opened, the caller did not specify the type part then
AMSDOS will use the type part '.BAS' for BASIC files, '.BIN' for
binary files and '. ' for all other files, as specified by the file type
field in the header. If the actual length of the file is not a mu
ltiple of 128 bytes (a CP/M record) then a CP/M end of file characte
r, #1A, is added to the file. This additional character is not recorde
d in the length of the file. If writing is to be abandon
ed the CAS OUT OPEN should be called as this does not write any more
data to disc. The user may reclaim the buffer passed to CAS OUT O
PEN after calling this routine. Related entries
CAS IN CLOSE (DISC) CAS OUT ABANDON (DISC) CAS OUT CLOSE
CAS OUT OPEN (DISC)
AMSTRAD CPC464/664/6128 FIRMWARE page 15.152
134 CAS OUT ABANDON #BC9
2 Close in output file immediately. Action A
bandon the output file and mark the write stream closed. Any un
written data is discarded and not written to tape. Entry conditions
No conditions. Exit conditions AF, BC, DE an
d HL corrupt. All other registers preserved. Notes
This routine in intended for use after an error or in similar
circumstances. Related entries CAS IN ABANDON
CAS OUT ABANDON (DISC) CAS OUT CLOSE CAS OUT OPEN
AMSTRAD CPC464/664/6128 FIRMWARE
page 15.153 134 CAS OUT ABANDON (DISC)
#BC92 Close in output file immediately.
Action Abandon the output file and mark the write
stream closed. Any unwritten data is discarded and not written to disc
. Entry conditions No conditions. Exit condi
tions AF,BC,DE and HL corrupt. All other registers preserved
. Notes This routine in intended for use after an
error or similar circumstances. If more than one 16K p
hysical extent has already been written to disc then the file will appe
ar in the disc directory with a type part of '.$$$'. Otherwise the fi
le will disappear. This is because each 16K of a file requires a directo
ry entry. A directory entry is not written to disc until the 16K has bee
n written or a file is closed (CAS OUT CLOSE). Relat
ed entries CAS IN ABANDON (DISC) CAS OUT ABANDON CAS
OUT CLOSE (DISC) CAS OUT OPEN (DISC) AMSTRA
D CPC464/664/6128 FIRMWARE page 15.154
135 CAS OUT CHAR #BC95
Write a character to the output file. Action Add a char
acter to the buffer for the write stream. If the buffer is already ful
l then it is written to tape before the new character is inserted.
Entry conditions A contains the character to write.
Exit conditions If the character was &P&&&&&&&&&written OK
Carry true. Zero false. A corrupt.
If the file was not open as expected Carry false.
Zero false. In V1.1 A contains an error number (#0E)
. In V1.0 A corrupt. If the user hit escape
Carry false. Zero true. In V1.1 A cont
ains an error number (#00). In V1.0 A corrupt. Always
A, IX and other flags corrupt. All other regist
ers preserved. Notes This routine can return two error numbers
#00 The user hit escape. #0E The st
ream is not open for writing characters of the use
r hit escape previously. If this routine returns the file not open as
expected condition then either the user has hit escape previously or t
he file has been written using CAS OUT DIRECT. In either case, or if es
cape is pressed, the character sent will be discarded. It i
s necessary to call CAS OUT CLOSE after sending all the characters to th
e file to ensure that the last block is written to the tape. Once the
routine has been called it is not possible to switch to directly w
riting the file. Related entries CAS IN CHAR CAS OUT
CHAR (DISC) CAS OUT DIRECT CAS OUT CLOSE
CAS OUT OPEN AMSTRAD CPC464/664/6128 FIRMWARE
page 15.155 135 CAS OUT CHAR (DISC)
#BC95 Write a character to an output f
ile. Action Add a character to the buffer for the write stre
am. If the buffer is already full then it is written to disc before th
e new character is inserted. Entry conditions A c
ontains the character to write. Exit conditions If the chara
cter was written OK Carry true. Zero false.
A corrupt. If the stream is not open as expected
Carry false. Zero false. A cont
ains an error number (#0E). If failed for any other reason
Carry false. Zero true. A contains a
n error number. Always IX and other flags corrupt.
All other registers preserved. Notes It is
necessary to call CAS OUT CLOSE after sending all the characters to the
file to ensure that the file is correctly written to disc. Once the ro
utine has been called it is not possible to switch to directly wri
ting the file (CAS OUT DIRECT). Related entries CAS IN CHAR
(DISC) CAS OUT CHAR CAS OUT CLOSE (DISC) CAS OUT DIRECT
(DISC) CAS OUT OPEN (DISC) AMSTRAD CPC464/664/6128 FIRMW
ARE page 15.156 136 CAS OUT DIRECT
#BC98 Write the output f
ile directly from store. Action Write the contents of store
directly out to the output file. Entry conditions HL contain
s the address of the data to write. DE contains the length of the data t
o write. BC contains the entry address (to go into the header).
A contains the file type (to go into the header). Exit conditions
If the file was written OK Carry true. Z
ero false. A corrupt. If the file was not open as exp
ected Carry false. Zero false.
In V1.1 A contains an error number (#0E). In V1.0 a corrupt.
If the user hit escape Carry false.
Zero true. In V1.1 A contains an error number (#00).
In V1.0 A corrupt. Always BC, DE, HL, IX and o
ther flags corrupt. All other registers preserved. Note
s This routine can return two error numbers #00
The user hit escape. #0E The stream is not newly opened.
After writing the file it must be closed using CAS OUT CLO 'P'''''''
''SE to ensure that the last block of the file is written to tape.
It is not possible to change the method for writing files from
character output (using CAS OUT CHAR) to direct output (using CAS OUT
DIRECT) or visa versa once the method has been chosen. Nor is it
possible to directly write a file in two of more parts by calling CAS
OUT DIRECT more than once - this will write corrupt data. Attempting
to break these rules will result in a file not open as expected error.
Related entries CAS IN DIRECT CAS OUT DIRECT
(DISC) CAS OUT CLOSE CAS OUT OPEN AM
STRAD CPC464/664/6128 FIRMWARE page 15.157
136 CAS OUT DIRECT (DISC) #BC98
Write the output file directly from store. Action W
rite the contents of store directly out to the output file. Entry cond
itions HL contains the address of the data to write (to go into the he
ader). DE contains the length of the data to write (to go into the heade
r). BC contains the entry address (to go into the header). A con
tains the file type (to go into the header). Exit conditions
If the file was written OK Carry true. Zero
false. A corrupt. If the stream is not open as expec
ted Carry false. Zero false.
A contains an error number (#0E). If failed for any other reason
Carry false. Zero true. A contai
ns an error number. Always BC, DE, HL, IX and other
flags corrupt. All other registers preserved. Notes
After writing the file it must be closed using CAS OUT CLOSE to ensure
that the file is written to disc. It is not possible to cha
nge the method for writing files from character output (using CAS
OUT CHAR) to direct output (using CAS OUT DIRECT) or visa versa once th
e method has been chosen. Nor is it possible to directly write a f
ile in two of more parts by calling CAS OUT DIRECT more than once - thi
s will write corrupt data. Related entries CAS IN DIRECT (DI
SC) CAS OUT CLOSE (DISC) CAS OUT DIRECT CAS OUT OPEN (DI
SC) AMSTRAD CPC464/664/6128 FIRMWARE pag
e 15.158 137 CAS CATALOG
#BC9B Generate a catalogue from tape. Actio
n Read file blocks to check their validity and print information a
bout them on the screen. Entry conditions DE con
tains the address of a 2K buffer to use. Exit conditions
If the cataloging went OK Carry true. Zer
o false. A corrupt. If the read stream was in use
Carry false. Zero false. I
n V1.1 A contains an error number (#0E).. In V1.0 A corrupt.
Always BC, DE, HL, IX and other flags corrupt.
All registers preserved. Notes This routine
can only return one error number #0E The stream is al
ready in use. This routine uses the read stream and so the stream mu
st be closed when it is called. The read stream remains closed when
this routine exits. The write stream is unaffected by this routine.
AMSTRAD CPC464/664/6128 FIRMWARE page 15.15
9 ad the input file into sto All registers preserved. No
tes This routine can only return one error number