Firmware Guide (UK) (Disk 2 face 1) (19xx) [UTILITAIRE].dsk
HexaDumpAscii only
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              
Tous droits réservés. Reproduction sans autorisation interdite. © Kukulcan