Firmware Guide (UK) (Disk 1 face 2) (19xx) [UTILITAIRE].dsk
   
Choose sector :
Size : 512 (Real : 512)
000000: 00 43 48 41 50 2D 31 30 20 D0 31 20 00 00 00 80 .CHAP-10 .1 ....
000010: 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C ... !"#$%&'()*+,
000020: 00 43 48 41 50 2D 31 30 20 D0 31 20 01 00 00 02 .CHAP-10 .1 ....
000030: 2D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -...............
000040: 00 43 48 41 50 2D 31 30 20 D0 32 20 00 00 00 80 .CHAP-10 .2 ....
000050: 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D ./0123456789:;<=
000060: 00 43 48 41 50 2D 31 30 20 D0 32 20 01 00 00 05 .CHAP-10 .2 ....
000070: 3E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >...............
000080: 00 43 48 41 50 2D 31 31 20 A0 20 20 00 00 00 54 .CHAP-11 . ...T
000090: 3F 40 41 42 43 44 45 46 47 48 49 00 00 00 00 00 ?@ABCDEFGHI.....
0000A0: 00 43 48 41 50 2D 31 32 20 A0 20 20 00 00 00 51 .CHAP-12 . ...Q
0000B0: 4A 4B 4C 4D 4E 4F 50 51 52 53 54 00 00 00 00 00 JKLMNOPQRST.....
0000C0: 00 43 48 41 50 2D 31 33 20 A0 20 20 00 00 00 47 .CHAP-13 . ...G
0000D0: 55 56 57 58 59 5A 5B 5C 5D 00 00 00 00 00 00 00 UVWXYZ[\].......
0000E0: 00 43 48 41 50 2D 31 34 20 D0 31 20 00 00 00 80 .CHAP-14 .1 ....
0000F0: 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D ^_`abcdefghijklm
000100: 00 43 48 41 50 2D 31 34 20 D0 32 20 00 00 00 7D .CHAP-14 .2 ...}
000110: 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D nopqrstuvwxyz{|}
000120: 00 43 48 41 50 2D 31 34 20 D0 33 20 00 00 00 27 .CHAP-14 .3 ...'
000130: 7E 7F 80 81 82 00 00 00 00 00 00 00 00 00 00 00 ~...............
000140: 00 43 48 41 50 2D 31 35 20 D0 31 20 00 00 00 7F .CHAP-15 .1 ....
000150: 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 ................
000160: 00 43 48 41 50 2D 31 35 20 D0 32 20 00 00 00 80 .CHAP-15 .2 ....
000170: 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 ................
000180: 00 43 48 41 50 2D 31 35 20 D0 32 20 01 00 00 03 .CHAP-15 .2 ....
000190: A3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001A0: 00 43 48 41 50 2D 31 35 20 D0 33 20 00 00 00 71 .CHAP-15 .3 ...q
0001B0: A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 00 ................
0001C0: 00 43 48 41 50 2D 39 20 20 D0 31 20 00 00 00 80 .CHAP-9 .1 ....
0001D0: 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 ................
0001E0: 00 43 48 41 50 2D 39 20 20 D0 31 20 01 00 00 01 .CHAP-9 .1 ....
0001F0: 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Size : 512 (Real : 512)
000000: 00 43 48 41 50 2D 39 20 20 D0 32 20 00 00 00 4E .CHAP-9 .2 ...N
000010: 13 14 15 16 17 18 19 1A 1B 1C 00 00 00 00 00 00 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000010: 20 20 20 39 20 41 4D 53 44 4F 53 0D 0A 0D 0A 20 9 AMSDOS....
000020: 20 20 20 20 20 20 41 4D 53 44 4F 53 20 69 73 20 AMSDOS is
000030: 61 20 64 69 73 63 20 6F 70 65 72 61 74 69 6E 67 a disc operating
000040: 20 73 79 73 74 65 6D 20 75 73 65 64 20 20 77 69 system used wi
000050: 74 68 20 20 61 6C 6C 20 20 74 68 65 20 20 43 50 th all the CP
000060: 43 20 20 72 61 6E 67 65 20 20 6F 66 0D 0A 20 20 C range of..
000070: 20 20 20 20 20 63 6F 6D 70 75 74 65 72 2C 20 6F computer, o
000080: 66 20 63 6F 75 72 73 65 2C 20 69 6E 20 74 68 65 f course, in the
000090: 20 63 61 73 65 20 6F 66 20 20 74 68 65 20 20 34 case of the 4
0000A0: 36 34 20 20 74 68 65 20 20 44 44 49 2D 31 20 20 64 the DDI-1
0000B0: 68 61 73 20 20 74 6F 20 20 62 65 0D 0A 20 20 20 has to be..
0000C0: 20 20 20 20 66 69 74 74 65 64 2E 20 41 4D 53 44 fitted. AMSD
0000D0: 4F 53 20 65 6E 61 62 6C 65 73 20 70 72 6F 67 72 OS enables progr
0000E0: 61 6D 73 20 74 6F 20 62 65 20 61 63 63 65 73 73 ams to be access
0000F0: 20 64 69 73 63 20 66 69 6C 65 73 20 69 6E 20 20 disc files in
000100: 61 20 20 73 69 6D 69 6C 61 72 0D 0A 20 20 20 20 a similar..
000110: 20 20 20 6D 61 6E 6E 65 72 20 74 6F 20 63 61 73 manner to cas
000120: 73 65 74 74 65 20 66 69 6C 65 73 2C 20 69 6E 64 sette files, ind
000130: 65 65 64 20 65 78 69 73 74 69 6E 67 20 70 72 6F eed existing pro
000140: 67 72 61 6D 73 20 77 68 69 63 68 20 63 75 72 72 grams which curr
000150: 65 6E 74 6C 79 20 75 73 65 0D 0A 20 20 20 20 20 ently use..
000160: 20 20 74 68 65 20 63 61 73 73 65 74 74 65 20 73 the cassette s
000170: 68 6F 75 6C 64 20 62 65 20 61 62 6C 65 20 74 6F hould be able to
000180: 20 20 75 73 65 20 20 64 69 73 63 20 20 66 69 6C use disc fil
000190: 65 73 20 20 77 69 74 68 20 20 6C 69 74 74 6C 65 es with little
0001A0: 20 20 6F 72 20 20 6E 6F 0D 0A 20 20 20 20 20 20 or no..
0001B0: 20 6D 6F 64 69 66 69 63 61 74 69 6F 6E 2E 20 54 modification. T
0001C0: 68 65 20 6D 61 69 6E 20 73 6F 75 72 63 65 20 6F he main source o
0001D0: 66 20 69 6E 63 6F 6D 70 61 74 61 62 69 6C 69 74 f incompatabilit
0001E0: 79 20 20 77 69 6C 6C 20 20 62 65 20 20 66 69 6C y will be fil
0001F0: 65 6E 61 6D 65 73 2C 0D 0A 20 20 20 20 20 20 20 enames,..
Size : 512 (Real : 512)
000000: 41 4D 53 44 4F 53 20 66 69 6C 65 6E 61 6D 65 73 AMSDOS filenames
000010: 20 6D 75 73 74 20 63 6F 6E 66 6F 72 6D 20 74 6F must conform to
000020: 20 43 50 2F 4D 20 73 74 61 6E 64 61 72 64 73 20 CP/M standards
000030: 62 75 74 20 63 61 73 73 65 74 74 65 20 66 69 6C but cassette fil
000040: 65 6E 61 6D 65 73 0D 0A 20 20 20 20 20 20 20 61 enames.. a
000050: 72 65 20 66 61 72 20 6C 65 73 73 20 72 65 73 74 re far less rest
000060: 72 69 63 74 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 ricted.......
000070: 20 20 20 20 41 4D 53 44 4F 53 20 68 61 73 20 62 AMSDOS has b
000080: 65 65 6E 20 64 65 73 69 67 6E 65 64 20 74 6F 20 een designed to
000090: 63 6F 6D 70 6C 65 6D 65 6E 74 20 43 50 2F 4D 2C complement CP/M,
0000A0: 20 6E 6F 74 20 74 6F 20 63 6F 6D 70 65 74 65 20 not to compete
0000B0: 20 77 69 74 68 20 20 69 74 2E 0D 0A 20 20 20 20 with it...
0000C0: 20 20 20 54 68 65 79 20 73 68 61 72 65 20 74 68 They share th
0000D0: 65 20 73 61 6D 65 20 66 69 6C 65 20 73 74 72 75 e same file stru
0000E0: 63 74 75 72 65 20 61 6E 64 20 63 61 6E 20 72 65 cture and can re
0000F0: 61 64 20 61 6E 64 20 77 72 69 74 65 20 65 61 63 ad and write eac
000100: 68 20 6F 74 68 65 72 27 73 0D 0A 20 20 20 20 20 h other's..
000110: 20 20 66 69 6C 65 73 2E 0D 0A 0D 0A 20 20 20 20 files.....
000120: 20 20 20 41 4D 53 44 4F 53 20 72 65 73 69 64 65 AMSDOS reside
000130: 73 20 69 6E 20 74 68 65 20 73 61 6D 65 20 52 4F s in the same RO
000140: 4D 20 61 73 20 74 68 65 20 43 50 2F 4D 20 42 49 M as the CP/M BI
000150: 4F 53 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 OS.......
000160: 39 2E 31 20 46 65 61 74 75 72 65 73 2E 0D 0A 0D 9.1 Features....
000170: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 44 4F 53 ... AMSDOS
000180: 20 70 72 6F 76 69 64 65 73 20 74 68 65 20 66 6F provides the fo
000190: 6C 6C 6F 77 69 6E 67 20 66 61 63 69 6C 69 74 69 llowing faciliti
0001A0: 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 es:....
0001B0: 20 20 20 20 20 20 20 53 77 69 74 63 68 69 6E 67 Switching
0001C0: 20 74 68 65 20 63 61 73 73 65 74 74 65 20 69 6E the cassette in
0001D0: 70 75 74 20 61 6E 64 20 6F 75 74 70 75 74 20 73 put and output s
0001E0: 74 72 65 61 6D 73 20 74 6F 20 20 61 6E 64 20 20 treams to and
0001F0: 66 72 6F 6D 0D 0A 20 20 20 20 20 20 20 20 20 20 from..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 64 69 73 63 2E 20 53 6F 20 74 disc. So t
000010: 68 61 74 20 61 6C 6C 20 74 68 65 20 66 61 63 69 hat all the faci
000020: 6C 69 74 69 65 73 20 61 76 61 69 6C 61 62 6C 65 lities available
000030: 20 20 6F 6E 20 20 74 68 65 20 20 63 61 73 73 65 on the casse
000040: 74 74 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 tte..
000050: 20 20 20 20 20 62 65 63 6F 6D 65 20 61 76 61 69 become avai
000060: 6C 61 62 6C 65 20 6F 6E 20 64 69 73 63 2E 0D 0A lable on disc...
000070: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000080: 20 20 44 69 73 70 6C 61 79 69 6E 67 20 74 68 65 Displaying the
000090: 20 64 69 73 63 20 64 69 72 65 63 74 6F 72 79 2E disc directory.
0000A0: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
0000B0: 20 20 20 20 45 72 61 73 69 6E 67 20 64 69 73 63 Erasing disc
0000C0: 20 66 69 6C 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 files.....
0000D0: 20 20 20 20 20 20 20 20 20 20 20 52 65 6E 61 6D Renam
0000E0: 69 6E 67 20 64 69 73 63 20 66 69 6C 65 73 2E 0D ing disc files..
0000F0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
000100: 20 20 20 53 65 6C 65 63 74 69 6E 67 20 74 68 65 Selecting the
000110: 20 64 65 66 61 75 6C 74 20 64 72 69 76 65 20 61 default drive a
000120: 6E 64 20 75 73 65 72 2E 0D 0A 0D 0A 0D 0A 0D 0A nd user.........
000130: 20 20 20 20 20 20 20 57 68 65 6E 65 76 65 72 20 Whenever
000140: 41 4D 53 44 4F 53 20 63 72 65 61 74 65 73 20 61 AMSDOS creates a
000150: 20 6E 65 77 20 66 69 6C 65 20 69 74 20 69 73 20 new file it is
000160: 61 6C 77 61 79 73 20 67 69 76 65 6E 20 61 20 20 always given a
000170: 6E 61 6D 65 20 20 77 69 74 68 20 20 61 0D 0A 20 name with a..
000180: 20 20 20 20 20 20 74 79 70 65 20 70 61 72 74 20 type part
000190: 6F 66 20 2E 24 24 24 20 72 65 67 61 72 64 6C 65 of .$$$ regardle
0001A0: 73 73 20 6F 66 20 74 68 65 20 20 67 69 76 65 6E ss of the given
0001B0: 20 20 6E 61 6D 65 2E 20 20 57 68 65 6E 20 20 74 name. When t
0001C0: 68 65 20 20 66 69 6C 65 20 20 69 73 0D 0A 20 20 he file is..
0001D0: 20 20 20 20 20 63 6C 6F 73 65 64 20 61 6E 79 20 closed any
0001E0: 70 72 65 76 69 6F 75 73 20 76 65 72 73 69 6F 6E previous version
0001F0: 20 6F 66 20 74 68 65 20 66 69 6C 65 20 69 73 20 of the file is
Size : 512 (Real : 512)
000000: 72 65 6E 61 6D 65 64 20 77 69 74 68 20 20 61 20 renamed with a
000010: 20 2E 42 41 4B 20 20 74 79 70 65 0D 0A 20 20 20 .BAK type..
000020: 20 20 20 20 70 61 72 74 20 61 6E 64 20 74 68 65 part and the
000030: 20 6E 65 77 20 76 65 72 73 69 6F 6E 20 69 73 20 new version is
000040: 72 65 6E 61 6D 65 64 20 66 72 6F 6D 20 2E 24 24 renamed from .$$
000050: 24 20 74 6F 20 69 74 73 20 70 72 6F 70 65 72 20 $ to its proper
000060: 6E 61 6D 65 2E 20 20 41 6E 79 0D 0A 20 20 20 20 name. Any..
000070: 20 20 20 65 78 69 73 74 69 6E 67 20 2E 42 41 4B existing .BAK
000080: 20 76 65 72 73 69 6F 6E 20 69 73 20 64 65 6C 65 version is dele
000090: 74 65 64 2E 20 54 68 69 73 20 67 69 76 65 73 20 ted. This gives
0000A0: 61 6E 20 20 61 75 74 6F 6D 61 74 69 63 20 20 6F an automatic o
0000B0: 6E 65 20 20 6C 65 76 65 6C 0D 0A 20 20 20 20 20 ne level..
0000C0: 20 20 66 69 6C 65 20 62 61 63 6B 2D 75 70 2E 0D file back-up..
0000D0: 0A 0D 0A 20 20 20 20 20 20 20 46 6F 72 20 65 78 ... For ex
0000E0: 61 6D 70 6C 65 2C 20 69 66 20 74 68 65 20 64 69 ample, if the di
0000F0: 73 63 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 sc contains the
000100: 66 69 6C 65 73 20 46 52 45 44 2E 42 41 53 20 61 files FRED.BAS a
000110: 6E 64 20 46 52 45 44 2E 42 41 4B 20 20 61 6E 64 nd FRED.BAK and
000120: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 75 73 65 .. the use
000130: 72 20 6F 70 65 6E 73 20 61 20 66 69 6C 65 20 63 r opens a file c
000140: 61 6C 6C 65 64 20 46 52 45 44 2E 42 41 53 20 74 alled FRED.BAS t
000150: 68 65 20 41 4D 53 44 4F 53 20 20 77 69 6C 6C 20 he AMSDOS will
000160: 20 63 72 65 61 74 65 20 20 61 20 20 6E 65 77 0D create a new.
000170: 0A 20 20 20 20 20 20 20 66 69 6C 65 20 63 61 6C . file cal
000180: 6C 65 64 20 46 52 45 44 2E 24 24 24 2E 20 57 68 led FRED.$$$. Wh
000190: 65 6E 20 74 68 65 20 66 69 6C 65 20 69 73 20 63 en the file is c
0001A0: 6C 6F 73 65 64 20 74 68 65 20 65 78 69 73 74 69 losed the existi
0001B0: 6E 67 20 46 52 45 44 2E 42 41 4B 20 69 73 0D 0A ng FRED.BAK is..
0001C0: 20 20 20 20 20 20 20 64 65 6C 65 74 65 64 2C 20 deleted,
0001D0: 46 52 45 44 2E 42 41 53 20 69 73 20 72 65 6E 61 FRED.BAS is rena
0001E0: 6D 65 64 20 74 6F 20 46 52 45 44 2E 42 41 4B 20 med to FRED.BAK
0001F0: 61 6E 64 20 46 52 45 44 2E 24 24 24 20 69 73 20 and FRED.$$$ is
Size : 512 (Real : 512)
000000: 74 68 65 6E 20 20 72 65 6E 61 6D 65 64 0D 0A 20 then renamed..
000010: 20 20 20 20 20 20 74 6F 20 46 52 45 44 2E 42 41 to FRED.BA
000020: 53 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C S..... All
000030: 20 41 4D 53 44 4F 53 20 66 61 63 69 6C 69 74 69 AMSDOS faciliti
000040: 65 73 20 20 61 72 65 20 20 69 6D 70 6C 65 6D 65 es are impleme
000050: 6E 74 65 64 20 20 65 69 74 68 65 72 20 20 62 79 nted either by
000060: 20 20 69 6E 74 65 72 63 65 70 74 69 6E 67 20 20 intercepting
000070: 74 68 65 0D 0A 20 20 20 20 20 20 20 63 61 73 73 the.. cass
000080: 65 74 74 65 20 66 69 72 6D 77 61 72 65 20 63 61 ette firmware ca
000090: 6C 6C 73 20 6F 72 20 62 79 20 65 78 74 65 72 6E lls or by extern
0000A0: 61 6C 20 63 6F 6D 6D 61 6E 64 73 2E 0D 0A 0D 0A al commands.....
0000B0: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
0000C0: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
0000D0: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 70 61 67 65 20 39 2E 31 0D page 9.1.
000100: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
000110: 20 20 20 20 54 68 65 20 69 6E 74 65 72 63 65 70 The intercep
000120: 74 65 64 20 66 69 72 6D 77 61 72 65 20 63 61 6C ted firmware cal
000130: 6C 73 20 61 72 65 3A 0D 0A 0D 0A 0D 0A 20 20 20 ls are:......
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 43 41 53 CAS
000150: 20 49 4E 20 4F 50 45 4E 0D 0A 20 20 20 20 20 20 IN OPEN..
000160: 20 20 20 20 20 20 20 20 20 20 43 41 53 20 49 4E CAS IN
000170: 20 43 48 41 52 0D 0A 20 20 20 20 20 20 20 20 20 CHAR..
000180: 20 20 20 20 20 20 20 43 41 53 20 49 4E 20 44 49 CAS IN DI
000190: 52 45 43 54 0D 0A 20 20 20 20 20 20 20 20 20 20 RECT..
0001A0: 20 20 20 20 20 20 43 41 53 20 52 45 54 55 52 4E CAS RETURN
0001B0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0001C0: 20 20 43 41 53 20 54 45 53 54 20 45 4F 46 0D 0A CAS TEST EOF..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 43 41 53 20 49 4E 20 43 4C 4F 53 45 0D 0A 20 20 CAS IN CLOSE..
0001F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 41 CA
Size : 512 (Real : 512)
000000: 53 20 49 4E 20 41 42 41 4E 44 4F 4E 0D 0A 20 20 S IN ABANDON..
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 41 CA
000020: 53 20 4F 55 54 20 4F 50 45 4E 0D 0A 0D 0A 20 20 S OUT OPEN....
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 41 CA
000040: 53 20 4F 55 54 20 43 48 41 52 0D 0A 20 20 20 20 S OUT CHAR..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 43 41 53 20 CAS
000060: 4F 55 54 20 44 49 52 45 43 54 0D 0A 20 20 20 20 OUT DIRECT..
000070: 20 20 20 20 20 20 20 20 20 20 20 20 43 41 53 20 CAS
000080: 4F 55 54 20 43 4C 4F 53 45 0D 0A 20 20 20 20 20 OUT CLOSE..
000090: 20 20 20 20 20 20 20 20 20 20 20 43 41 53 20 4F CAS O
0000A0: 55 54 20 41 42 41 4E 44 4F 4E 0D 0A 20 20 20 20 UT ABANDON..
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 43 41 53 20 CAS
0000C0: 4F 55 54 20 43 41 54 41 4C 4F 47 0D 0A 0D 0A 0D OUT CATALOG.....
0000D0: 0A 20 20 20 20 20 20 20 54 68 65 20 72 65 6D 61 . The rema
0000E0: 69 6E 69 6E 67 20 63 61 73 73 65 74 74 65 20 66 ining cassette f
0000F0: 69 72 6D 77 61 72 65 20 63 61 6C 6C 73 20 61 72 irmware calls ar
000100: 65 20 6E 6F 74 20 69 6E 74 65 72 63 65 70 74 65 e not intercepte
000110: 64 20 20 61 6E 64 20 20 72 65 6D 61 69 6E 0D 0A d and remain..
000120: 20 20 20 20 20 20 20 75 6E 61 66 66 65 63 74 65 unaffecte
000130: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 d....... F
000140: 75 6C 6C 20 64 65 73 63 72 69 70 74 69 6F 6E 73 ull descriptions
000150: 20 6F 66 20 62 6F 74 68 20 74 68 65 20 74 61 70 of both the tap
000160: 65 20 61 6E 64 20 64 69 73 63 20 76 65 72 73 69 e and disc versi
000170: 6F 6E 73 20 6F 66 20 74 68 65 73 65 20 72 6F 75 ons of these rou
000180: 74 69 6E 65 73 0D 0A 20 20 20 20 20 20 20 61 72 tines.. ar
000190: 65 20 67 69 76 65 6E 20 69 6E 20 73 65 63 74 69 e given in secti
0001A0: 6F 6E 20 31 35 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 on 15.......
0001B0: 20 20 20 54 68 65 20 41 4D 53 44 4F 53 20 65 78 The AMSDOS ex
0001C0: 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 73 20 ternal commands
0001D0: 61 72 65 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 are:......
0001E0: 20 20 20 20 20 20 20 20 20 20 41 20 20 20 20 20 A
0001F0: 20 20 20 20 53 65 6C 65 63 74 73 20 64 65 66 61 Selects defa
Size : 512 (Real : 512)
000000: 75 6C 74 20 64 72 69 76 65 20 41 3A 0D 0A 20 20 ult drive A:..
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 20 B
000020: 20 20 20 20 20 20 20 20 53 65 6C 65 63 74 73 20 Selects
000030: 64 65 66 61 75 6C 74 20 64 72 69 76 65 20 42 3A default drive B:
000040: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000050: 20 20 43 50 4D 20 20 20 20 20 20 20 43 6F 6C 64 CPM Cold
000060: 20 62 6F 6F 74 20 43 50 2F 4D 0D 0A 20 20 20 20 boot CP/M..
000070: 20 20 20 20 20 20 20 20 20 20 20 20 44 49 52 20 DIR
000080: 20 20 20 20 20 20 44 69 73 70 6C 61 79 20 64 69 Display di
000090: 73 63 20 64 69 72 65 63 74 6F 72 79 0D 0A 20 20 sc directory..
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 49 DI
0000B0: 53 43 20 20 20 20 20 20 52 65 64 69 72 65 63 74 SC Redirect
0000C0: 20 63 61 73 73 65 74 74 65 20 72 6F 75 74 69 6E cassette routin
0000D0: 65 73 20 74 6F 20 64 69 73 63 0D 0A 20 20 20 20 es to disc..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 44 49 53 43 DISC
0000F0: 2E 49 4E 20 20 20 52 65 64 69 72 65 63 74 20 63 .IN Redirect c
000100: 61 73 73 65 74 74 65 20 69 6E 70 75 74 20 72 6F assette input ro
000110: 75 74 69 6E 65 73 20 74 6F 20 64 69 73 63 0D 0A utines to disc..
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 44 49 53 43 2E 4F 55 54 20 20 52 65 64 69 72 65 DISC.OUT Redire
000140: 63 74 20 63 61 73 73 65 74 74 65 20 6F 75 74 70 ct cassette outp
000150: 75 74 20 72 6F 75 74 69 6E 65 73 20 74 6F 20 64 ut routines to d
000160: 69 73 63 0D 0A 20 20 20 20 20 20 20 20 20 20 20 isc..
000170: 20 20 20 20 20 44 52 49 56 45 20 20 20 20 20 53 DRIVE S
000180: 65 6C 65 63 74 20 64 65 66 61 75 6C 74 20 64 72 elect default dr
000190: 69 76 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ive..
0001A0: 20 20 20 20 20 45 52 41 20 20 20 20 20 20 20 45 ERA E
0001B0: 72 61 73 65 20 66 69 6C 65 73 0D 0A 20 20 20 20 rase files..
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 52 45 4E 20 REN
0001D0: 20 20 20 20 20 20 52 65 6E 61 6D 65 20 66 69 6C Rename fil
0001E0: 65 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 es..
0001F0: 20 20 20 20 54 41 50 45 20 20 20 20 20 20 52 65 TAPE Re
Size : 512 (Real : 512)
000000: 64 69 72 65 63 74 20 63 61 73 73 65 74 74 65 20 direct cassette
000010: 72 6F 75 74 69 6E 65 73 20 74 6F 20 63 61 73 73 routines to cass
000020: 65 74 74 65 0D 0A 20 20 20 20 20 20 20 20 20 20 ette..
000030: 20 20 20 20 20 20 54 41 50 45 2E 49 4E 20 20 20 TAPE.IN
000040: 52 65 64 69 72 65 63 74 20 63 61 73 73 65 74 74 Redirect cassett
000050: 65 20 69 6E 70 75 74 20 72 6F 75 74 69 6E 65 73 e input routines
000060: 20 74 6F 20 63 61 73 73 65 74 74 65 0D 0A 20 20 to cassette..
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 41 TA
000080: 50 45 2E 4F 55 54 20 20 52 65 64 69 72 65 63 74 PE.OUT Redirect
000090: 20 63 61 73 73 65 74 74 65 20 6F 75 74 70 75 74 cassette output
0000A0: 20 72 6F 75 74 69 6E 65 73 20 74 6F 20 63 61 73 routines to cas
0000B0: 73 65 74 74 65 0D 0A 20 20 20 20 20 20 20 20 20 sette..
0000C0: 20 20 20 20 20 20 20 55 53 45 52 20 20 20 20 20 USER
0000D0: 20 53 65 6C 65 63 74 20 64 65 66 61 75 6C 74 20 Select default
0000E0: 75 73 65 72 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 user..........
0000F0: 20 20 20 20 20 46 72 6F 6D 20 42 41 53 49 43 20 From BASIC
000100: 61 6C 6C 20 74 68 65 73 65 20 63 6F 6D 6D 61 6E all these comman
000110: 64 73 20 6D 75 73 74 20 62 65 20 70 72 65 63 65 ds must be prece
000120: 64 65 64 20 62 79 20 61 20 27 7C 27 2E 0D 0A 0D ded by a '|'....
000130: 0A 0D 0A 20 20 20 20 20 20 20 53 6F 6D 65 20 6F ... Some o
000140: 66 20 74 68 65 73 65 20 63 6F 6D 6D 61 6E 64 73 f these commands
000150: 20 72 65 71 75 69 72 65 20 70 61 72 61 6D 65 74 require paramet
000160: 65 72 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ers.......
000170: 20 46 75 6C 6C 20 64 65 73 63 72 69 70 74 69 6F Full descriptio
000180: 6E 73 20 6F 66 20 74 68 65 73 65 20 65 78 74 65 ns of these exte
000190: 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 73 20 61 72 rnal commands ar
0001A0: 65 20 67 69 76 65 6E 20 69 6E 20 73 65 63 74 69 e given in secti
0001B0: 6F 6E 20 32 30 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A on 20...........
0001C0: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
0001D0: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
0001E0: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
0001F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
Size : 512 (Real : 512)
000000: 20 20 20 20 20 70 61 67 65 20 39 2E 32 0D 0A 0D page 9.2...
000010: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
000020: 20 20 39 2E 32 20 46 69 6C 65 6E 61 6D 65 73 0D 9.2 Filenames.
000030: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 44 ..... AMSD
000040: 4F 53 20 66 69 6C 65 6E 61 6D 65 73 20 61 72 65 OS filenames are
000050: 20 75 70 77 61 72 64 73 20 63 6F 6D 70 61 74 69 upwards compati
000060: 62 6C 65 20 77 69 74 68 20 43 50 2F 4D 20 20 66 ble with CP/M f
000070: 69 6C 65 6E 61 6D 65 73 2E 20 20 42 75 74 20 20 ilenames. But
000080: 69 73 0D 0A 20 20 20 20 20 20 20 61 64 64 69 74 is.. addit
000090: 69 6F 6E 20 74 68 65 20 75 73 65 72 20 6E 75 6D ion the user num
0000A0: 62 65 72 20 6D 61 79 20 61 6C 73 6F 20 20 62 65 ber may also be
0000B0: 20 20 73 70 65 63 69 66 69 65 64 20 20 61 6E 64 specified and
0000C0: 20 20 6E 6F 6E 2D 73 69 67 6E 69 66 69 63 61 6E non-significan
0000D0: 74 0D 0A 20 20 20 20 20 20 20 73 70 61 63 65 73 t.. spaces
0000E0: 20 61 72 65 20 70 65 72 6D 69 74 74 65 64 20 62 are permitted b
0000F0: 65 66 6F 72 65 20 20 61 6E 64 20 20 61 66 74 65 efore and afte
000100: 72 20 20 74 68 65 20 20 6E 61 6D 65 20 20 61 6E r the name an
000110: 64 20 20 61 6E 79 20 20 65 6D 62 65 64 64 65 64 d any embedded
000120: 0D 0A 20 20 20 20 20 20 20 70 75 6E 63 74 75 61 .. punctua
000130: 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 tion.......
000140: 20 20 45 78 61 6D 70 6C 65 73 3A 0D 0A 0D 0A 0D Examples:.....
000150: 0A 20 20 20 20 20 20 20 20 20 20 20 41 4E 41 4D . ANAM
000160: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
000170: 44 65 66 61 75 6C 74 20 75 73 65 72 2C 20 64 72 Default user, dr
000180: 69 76 65 2C 20 61 6E 64 20 74 79 70 65 0D 0A 20 ive, and type..
000190: 20 20 20 20 20 20 20 20 20 20 31 30 3A 57 4F 4D 10:WOM
0001A0: 42 41 54 2E 54 58 54 20 20 20 20 20 20 20 44 65 BAT.TXT De
0001B0: 66 61 75 6C 74 20 64 72 69 76 65 2C 20 61 6E 64 fault drive, and
0001C0: 20 75 73 65 72 20 6E 75 6D 62 65 72 20 31 30 0D user number 10.
0001D0: 0A 20 20 20 20 20 20 20 20 20 20 20 32 41 3A 57 . 2A:W
0001E0: 4F 4D 42 41 54 2E 54 58 54 20 20 20 20 20 20 20 OMBAT.TXT
0001F0: 55 73 65 72 20 32 2C 20 6F 6E 20 44 72 69 76 65 User 2, on Drive
Size : 512 (Real : 512)
000000: 20 41 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 A:..
000010: 2A 2E 2A 20 20 20 20 20 20 20 20 20 20 20 20 20 *.*
000020: 20 20 20 20 44 65 66 61 75 6C 74 20 64 72 69 76 Default driv
000030: 65 2C 20 75 73 65 72 2C 20 61 6E 64 20 61 6C 6C e, user, and all
000040: 20 66 69 6C 65 73 0D 0A 20 20 20 20 20 20 20 20 files..
000050: 20 20 20 35 42 20 3A 20 50 4F 53 53 55 4D 20 2E 5B : POSSUM .
000060: 20 24 24 24 20 20 20 41 20 6E 61 6D 65 20 77 69 $$$ A name wi
000070: 74 68 20 6E 6F 6E 2D 73 69 67 6E 69 66 69 63 61 th non-significa
000080: 6E 74 20 73 70 61 63 65 73 0D 0A 20 20 20 20 20 nt spaces..
000090: 20 20 20 20 20 20 61 3A 61 61 72 64 3F 61 72 6B a:aard?ark
0000A0: 20 20 20 20 20 20 20 20 20 20 4C 6F 77 65 72 63 Lowerc
0000B0: 61 73 65 2C 20 41 4D 53 44 4F 53 20 77 69 6C 6C ase, AMSDOS will
0000C0: 20 63 6F 6E 76 65 72 74 20 74 6F 20 75 70 70 65 convert to uppe
0000D0: 72 63 61 73 65 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rcase......
0000E0: 20 20 49 66 20 67 69 76 65 6E 2C 20 74 68 65 20 If given, the
0000F0: 75 73 65 72 20 6E 75 6D 62 65 72 20 6D 75 73 74 user number must
000100: 20 62 65 20 69 6E 20 74 68 65 20 72 61 6E 67 65 be in the range
000110: 20 30 2E 2E 31 35 2C 20 74 68 65 20 64 72 69 76 0..15, the driv
000120: 65 20 6C 65 74 74 65 72 0D 0A 20 20 20 20 20 20 e letter..
000130: 20 6D 75 73 74 20 62 65 20 41 20 6F 72 20 42 2E must be A or B.
000140: 20 49 66 20 65 69 74 68 65 72 20 74 68 65 20 75 If either the u
000150: 73 65 72 20 6F 72 20 74 68 65 20 64 72 69 76 65 ser or the drive
000160: 20 69 73 20 67 69 76 65 6E 20 74 68 65 79 20 6D is given they m
000170: 75 73 74 20 20 62 65 0D 0A 20 20 20 20 20 20 20 ust be..
000180: 66 6F 6C 6C 6F 77 65 64 20 62 79 20 61 20 63 6F followed by a co
000190: 6C 6F 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 lon.......
0001A0: 20 54 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 63 The following c
0001B0: 68 61 72 61 63 74 65 72 73 20 6D 61 79 20 62 65 haracters may be
0001C0: 20 75 73 65 64 20 69 6E 20 74 68 65 20 6E 61 6D used in the nam
0001D0: 65 20 61 6E 64 20 74 79 70 65 20 70 61 72 74 73 e and type parts
0001E0: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 :....
0001F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 61 2D 7A a-z
Size : 512 (Real : 512)
000000: 20 41 2D 5A 20 30 2D 39 20 21 20 22 20 23 20 24 A-Z 0-9 ! " # $
000010: 20 26 20 27 20 2B 20 2D 20 40 20 5E 20 27 20 7D & ' + - @ ^ ' }
000020: 20 7B 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6E 79 {.... Any
000030: 20 6F 74 68 65 72 20 63 68 61 72 61 63 74 65 72 other character
000040: 73 20 77 69 6C 6C 20 63 61 75 73 65 20 74 68 65 s will cause the
000050: 20 63 6F 6D 6D 61 6E 64 73 20 74 6F 20 66 61 69 commands to fai
000060: 6C 20 77 69 74 68 20 74 68 65 20 6D 65 73 73 61 l with the messa
000070: 67 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ge:....
000080: 20 20 20 20 20 20 20 42 41 44 20 43 4F 4D 4D 41 BAD COMMA
000090: 4E 44 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ND.... The
0000A0: 20 63 68 61 72 61 63 74 65 72 73 20 27 3F 27 20 characters '?'
0000B0: 61 6E 64 20 27 2A 27 20 61 72 65 20 77 69 6C 64 and '*' are wild
0000C0: 63 61 72 64 73 2C 20 74 68 61 74 20 69 73 2C 20 cards, that is,
0000D0: 77 68 65 6E 20 70 6C 61 63 65 64 20 20 77 69 74 when placed wit
0000E0: 68 69 6E 0D 0A 20 20 20 20 20 20 20 61 20 66 69 hin.. a fi
0000F0: 6C 65 6E 61 6D 65 20 6F 72 20 74 79 70 65 20 69 lename or type i
000100: 74 20 77 69 6C 6C 20 62 65 20 69 6E 74 65 72 70 t will be interp
000110: 72 65 74 65 64 20 61 73 20 20 27 61 6E 79 20 20 reted as 'any
000120: 76 61 6C 69 64 20 20 63 68 61 72 61 63 74 65 72 valid character
000130: 27 2E 0D 0A 20 20 20 20 20 20 20 46 6F 72 20 65 '... For e
000140: 78 61 6D 70 6C 65 20 69 66 20 74 68 65 20 66 69 xample if the fi
000150: 6C 65 6E 61 6D 65 20 27 47 3F 3F 45 3F 3F 2E 42 lename 'G??E??.B
000160: 2A 27 20 77 61 73 20 75 73 65 64 20 69 6E 20 74 *' was used in t
000170: 68 65 20 20 7C 44 49 52 20 20 63 6F 6D 6D 61 6E he |DIR comman
000180: 64 0D 0A 20 20 20 20 20 20 20 74 68 65 6E 20 74 d.. then t
000190: 68 65 20 66 69 6C 65 73 20 27 47 41 4D 45 31 2E he files 'GAME1.
0001A0: 42 41 53 27 20 27 47 41 4D 45 31 2E 42 41 4B 27 BAS' 'GAME1.BAK'
0001B0: 20 27 47 41 4D 45 32 39 2E 42 41 53 27 20 20 61 'GAME29.BAS' a
0001C0: 6E 64 20 20 27 47 52 45 45 54 2E 42 41 53 27 2C nd 'GREET.BAS',
0001D0: 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 61 6E 79 .. and any
0001E0: 20 6D 61 74 63 68 69 6E 67 20 63 6F 6D 62 69 6E matching combin
0001F0: 61 74 69 6F 6E 73 2C 20 77 6F 75 6C 64 20 62 65 ations, would be
Size : 512 (Real : 512)
000000: 20 64 69 73 70 6C 61 79 65 64 20 69 6E 20 74 68 displayed in th
000010: 65 20 64 69 72 65 63 74 6F 72 79 2E 0D 0A 0D 0A e directory.....
000020: 0D 0A 20 20 20 20 20 20 20 57 68 65 6E 20 70 61 .. When pa
000030: 73 73 69 6E 67 20 20 61 20 20 66 69 6C 65 6E 61 ssing a filena
000040: 6D 65 2C 20 20 41 4D 53 44 4F 53 20 20 73 68 69 me, AMSDOS shi
000050: 66 74 73 20 20 6C 6F 77 65 72 20 20 63 61 73 65 fts lower case
000060: 20 20 6C 65 74 74 65 72 73 20 20 69 6E 74 6F 0D letters into.
000070: 0A 20 20 20 20 20 20 20 75 70 70 65 72 63 61 73 . uppercas
000080: 65 20 61 6E 64 20 72 65 6D 6F 76 65 73 20 62 69 e and removes bi
000090: 74 20 37 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 t 7..... I
0000A0: 66 20 74 68 65 20 75 73 65 72 20 6F 72 20 64 72 f the user or dr
0000B0: 69 76 65 20 69 73 20 6F 6D 69 74 74 65 64 20 74 ive is omitted t
0000C0: 68 65 6E 20 74 68 65 20 63 75 72 72 65 6E 74 20 hen the current
0000D0: 20 64 65 66 61 75 6C 74 20 20 76 61 6C 75 65 73 default values
0000E0: 20 20 61 72 65 0D 0A 20 20 20 20 20 20 20 61 73 are.. as
0000F0: 73 75 6D 65 64 2E 20 54 68 65 73 65 20 64 65 66 sumed. These def
000100: 61 75 6C 74 73 20 6D 61 79 20 62 65 20 73 65 74 aults may be set
000110: 20 62 79 20 74 68 65 20 75 73 65 72 2E 0D 0A 0D by the user....
000120: 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 74 . If the t
000130: 79 70 65 20 70 61 72 74 20 69 73 20 6F 6D 69 74 ype part is omit
000140: 74 65 64 20 74 68 65 6E 20 20 61 20 20 64 65 66 ted then a def
000150: 61 75 6C 74 20 20 74 79 70 65 20 20 69 73 20 20 ault type is
000160: 61 73 73 75 6D 65 64 2E 20 20 54 68 69 73 0D 0A assumed. This..
000170: 20 20 20 20 20 20 20 64 65 70 65 6E 64 73 20 6F depends o
000180: 6E 20 74 68 65 20 63 6F 6E 74 65 78 74 20 69 6E n the context in
000190: 20 77 68 69 63 68 20 74 68 65 20 6E 61 6D 65 20 which the name
0001A0: 69 73 20 62 65 69 6E 67 20 75 73 65 64 2C 20 62 is being used, b
0001B0: 75 74 20 75 73 75 61 6C 6C 79 20 20 61 0D 0A 20 ut usually a..
0001C0: 20 20 20 20 20 20 64 65 66 61 75 6C 74 20 74 79 default ty
0001D0: 70 65 20 70 61 72 74 20 6F 66 20 74 68 72 65 65 pe part of three
0001E0: 20 73 70 61 63 65 73 20 69 73 20 61 73 73 75 6D spaces is assum
0001F0: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 39 2E ed..... 9.
Size : 512 (Real : 512)
000000: 33 20 46 69 6C 65 20 48 65 61 64 65 72 73 0D 0A 3 File Headers..
000010: 0D 0A 20 20 20 20 20 20 20 43 61 73 73 65 74 74 .. Cassett
000020: 65 20 66 69 6C 65 73 20 61 72 65 20 20 73 75 62 e files are sub
000030: 64 69 76 69 64 65 64 20 20 69 6E 74 6F 20 20 32 divided into 2
000040: 4B 20 20 62 6C 6F 63 6B 73 2C 20 20 65 61 63 68 K blocks, each
000050: 20 20 6F 66 20 20 77 68 69 63 68 20 20 69 73 0D of which is.
000060: 0A 20 20 20 20 20 20 20 70 72 65 63 65 64 65 64 . preceded
000070: 20 62 79 20 68 65 61 64 65 72 2E 20 43 50 2F 4D by header. CP/M
000080: 20 66 69 6C 65 73 20 64 6F 20 6E 6F 74 20 68 61 files do not ha
000090: 76 65 20 68 65 61 64 65 72 73 2E 20 41 4D 53 44 ve headers. AMSD
0000A0: 4F 53 20 66 69 6C 65 73 20 20 6D 61 79 2C 0D 0A OS files may,..
0000B0: 20 20 20 20 20 20 20 6F 72 20 6D 61 79 20 6E 6F or may no
0000C0: 74 20 68 61 76 65 20 61 20 68 65 61 64 65 72 20 t have a header
0000D0: 64 65 70 65 6E 64 69 6E 67 20 6F 6E 20 74 68 65 depending on the
0000E0: 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 74 68 65 contents of the
0000F0: 20 20 66 69 6C 65 2E 20 20 54 68 69 73 0D 0A 20 file. This..
000100: 20 20 20 20 20 20 77 69 6C 6C 20 6E 6F 74 20 63 will not c
000110: 61 75 73 65 20 70 72 6F 62 6C 65 6D 73 20 66 6F ause problems fo
000120: 72 20 70 72 6F 67 72 61 6D 73 20 77 72 69 74 74 r programs writt
000130: 65 6E 20 69 6E 20 42 41 53 49 43 20 20 62 75 74 en in BASIC but
000140: 20 20 69 74 20 20 69 73 20 20 61 6E 0D 0A 20 20 it is an..
000150: 20 20 20 20 20 69 6D 70 6F 72 74 61 6E 74 20 64 important d
000160: 69 66 66 65 72 65 6E 63 65 20 62 65 74 77 65 65 ifference betwee
000170: 6E 20 63 61 73 73 65 74 74 65 20 61 6E 64 20 64 n cassette and d
000180: 69 73 63 20 66 69 6C 65 73 2E 0D 0A 0D 0A 0D 0A isc files.......
000190: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
0001A0: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
0001B0: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 20 20 20 20 70 61 67 65 20 39 2E 33 0D 0A 0D page 9.3...
0001E0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
0001F0: 20 20 55 6E 70 72 6F 74 65 63 74 65 64 20 41 53 Unprotected AS
Size : 512 (Real : 512)
000000: 43 49 49 20 66 69 6C 65 73 20 64 6F 20 6E 6F 20 CII files do no
000010: 68 61 76 65 20 68 65 61 64 65 72 2E 20 41 6C 6C have header. All
000020: 20 6F 74 68 65 72 20 41 4D 53 44 4F 53 20 66 69 other AMSDOS fi
000030: 6C 65 73 20 68 61 76 65 0D 0A 20 20 20 20 20 20 les have..
000040: 20 61 20 73 69 6E 67 6C 65 20 68 65 61 64 65 72 a single header
000050: 20 69 6E 20 74 68 65 20 66 69 72 73 74 20 31 32 in the first 12
000060: 38 20 62 79 74 65 73 20 6F 66 20 74 68 65 20 66 8 bytes of the f
000070: 69 6C 65 2C 20 74 68 65 20 68 65 61 64 65 72 20 ile, the header
000080: 72 65 63 6F 72 64 2E 0D 0A 20 20 20 20 20 20 20 record...
000090: 54 68 65 73 65 20 68 65 61 64 65 72 73 20 61 72 These headers ar
0000A0: 65 20 64 65 74 65 63 74 65 64 20 62 79 20 63 68 e detected by ch
0000B0: 65 63 6B 73 75 6D 6D 69 6E 67 20 74 68 65 20 66 ecksumming the f
0000C0: 69 72 73 74 20 36 37 20 62 79 74 65 73 20 20 6F irst 67 bytes o
0000D0: 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 72 f the.. r
0000E0: 65 63 6F 72 64 2E 20 49 66 20 74 68 65 20 63 68 ecord. If the ch
0000F0: 65 63 6B 73 75 6D 20 69 73 20 61 73 20 65 78 70 ecksum is as exp
000100: 65 63 74 65 64 20 74 68 65 6E 20 61 20 68 65 61 ected then a hea
000110: 64 65 72 20 20 69 73 20 20 70 72 65 73 65 6E 74 der is present
000120: 2C 20 20 69 66 0D 0A 20 20 20 20 20 20 20 6E 6F , if.. no
000130: 74 20 74 68 65 6E 20 74 68 65 72 65 20 69 73 20 t then there is
000140: 6E 6F 20 68 65 61 64 65 72 2E 20 54 68 75 73 20 no header. Thus
000150: 69 74 20 20 69 73 20 20 70 6F 73 73 69 62 6C 65 it is possible
000160: 2C 20 20 74 68 6F 75 67 68 20 20 75 6E 6C 69 6B , though unlik
000170: 65 6C 79 2C 0D 0A 20 20 20 20 20 20 20 74 68 61 ely,.. tha
000180: 74 20 61 20 66 69 6C 65 20 77 69 74 68 6F 75 74 t a file without
000190: 20 61 20 68 65 61 64 65 72 20 63 6F 75 6C 64 20 a header could
0001A0: 62 65 20 6D 69 73 74 61 6B 65 6E 20 66 6F 72 20 be mistaken for
0001B0: 6F 6E 65 20 77 69 74 68 20 61 20 68 65 61 64 65 one with a heade
0001C0: 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 r....... T
0001D0: 68 65 20 66 6F 72 6D 61 74 20 6F 66 20 74 68 65 he format of the
0001E0: 20 68 65 61 64 65 72 20 72 65 63 6F 72 64 20 69 header record i
0001F0: 73 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D s as follows:...
Size : 512 (Real : 512)
000000: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 42 ... B
000010: 79 74 65 73 20 20 20 30 2E 2E 36 33 20 20 20 20 ytes 0..63
000020: 20 20 20 43 61 73 73 65 74 74 65 2F 44 69 73 63 Cassette/Disc
000030: 20 68 65 61 64 65 72 20 28 73 65 65 20 62 65 6C header (see bel
000040: 6F 77 29 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ow)......
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 36 34 2E 64.
000060: 2E 36 36 20 20 20 20 20 20 4C 65 6E 67 74 68 20 .66 Length
000070: 6F 66 20 74 68 65 20 66 69 6C 65 20 69 6E 20 20 of the file in
000080: 62 79 74 65 73 2C 20 20 65 78 63 6C 75 64 69 6E bytes, excludin
000090: 67 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 g the..
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 20 20 20 20 20 20 20 68 65 61 64 65 72 20 20 header
0000C0: 20 72 65 63 6F 72 64 2E 20 20 20 32 34 20 20 20 record. 24
0000D0: 62 69 74 20 20 20 6E 75 6D 62 65 72 2C 20 20 20 bit number,
0000E0: 6C 65 61 73 74 0D 0A 20 20 20 20 20 20 20 20 20 least..
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 73 69 67 6E 69 66 69 63 61 significa
000110: 6E 74 20 62 79 74 65 20 69 6E 20 6C 6F 77 65 73 nt byte in lowes
000120: 74 20 61 64 64 72 65 73 73 0D 0A 0D 0A 0D 0A 20 t address......
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 36 37 2E 2E 36 38 20 20 20 20 20 20 53 67..68 S
000150: 69 78 74 65 65 6E 20 62 69 74 20 63 68 65 63 6B ixteen bit check
000160: 73 75 6D 2C 20 73 75 6D 20 6F 66 20 62 79 74 65 sum, sum of byte
000170: 73 20 30 2E 2E 36 36 0D 0A 0D 0A 0D 0A 20 20 20 s 0..66......
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 36 39 2E 2E 31 32 37 20 20 20 20 20 55 6E 64 69..127 Und
0001A0: 65 66 69 6E 65 64 0D 0A 0D 0A 0D 0A 20 20 20 20 efined......
0001B0: 20 20 20 54 68 65 20 75 73 65 20 74 68 61 74 20 The use that
0001C0: 74 68 65 20 63 61 73 73 65 74 74 65 20 6D 61 6E the cassette man
0001D0: 61 67 65 72 20 6D 61 6B 65 73 20 6F 66 20 74 68 ager makes of th
0001E0: 65 20 68 65 61 64 65 72 20 69 73 20 64 65 73 63 e header is desc
0001F0: 72 69 62 65 64 20 20 69 6E 0D 0A 20 20 20 20 20 ribed in..
Size : 512 (Real : 512)
000000: 20 20 73 65 63 74 69 6F 6E 20 38 2E 34 2E 20 41 section 8.4. A
000010: 4D 53 44 4F 53 20 75 73 65 73 20 74 68 65 20 68 MSDOS uses the h
000020: 65 61 64 65 72 20 61 73 20 66 6F 6C 6C 6F 77 73 eader as follows
000030: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 :......
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 20 42 79 74 65 73 0D 0A 0D 0A 0D 0A 20 20 20 20 Bytes......
000060: 20 20 20 46 69 6C 65 6E 61 6D 65 20 20 20 20 20 Filename
000070: 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 0
000080: 55 73 65 72 20 6E 75 6D 62 65 72 2C 20 23 30 30 User number, #00
000090: 2E 2E 23 46 46 0D 0A 20 20 20 20 20 20 20 20 20 ..#FF..
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 31 2E 2E 2E 38 20 20 20 20 20 4E 61 6D 65 20 1...8 Name
0000C0: 70 61 72 74 2C 20 70 61 64 64 65 64 20 77 69 74 part, padded wit
0000D0: 68 20 73 70 61 63 65 73 0D 0A 20 20 20 20 20 20 h spaces..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 39 2E 2E 2E 31 31 20 20 20 20 54 79 9...11 Ty
000100: 70 65 20 70 61 72 74 2C 20 70 61 64 64 65 64 20 pe part, padded
000110: 77 69 74 68 20 73 70 61 63 65 73 0D 0A 20 20 20 with spaces..
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 20 20 20 31 32 2E 2E 2E 31 35 20 20 12...15
000140: 20 23 30 30 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 #00......
000150: 20 42 6C 6F 63 6B 20 6E 75 6D 62 65 72 20 20 20 Block number
000160: 20 20 20 20 31 36 20 20 20 20 20 20 20 20 4E 6F 16 No
000170: 74 20 75 73 65 64 2C 20 73 65 74 20 74 6F 20 30 t used, set to 0
000180: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4C 61 73 ...... Las
000190: 74 20 62 6C 6F 63 6B 20 20 20 20 20 20 20 20 20 t block
0001A0: 31 37 20 20 20 20 20 20 20 20 4E 6F 74 20 75 73 17 Not us
0001B0: 65 64 2C 20 73 65 74 20 74 6F 20 30 0D 0A 0D 0A ed, set to 0....
0001C0: 20 20 20 20 20 20 20 46 69 6C 65 20 74 79 70 65 File type
0001D0: 20 20 20 20 20 20 20 20 20 20 31 38 20 20 20 20 18
0001E0: 20 20 20 20 41 73 20 70 65 72 20 63 61 73 73 65 As per casse
0001F0: 74 74 65 0D 0A 0D 0A 20 20 20 20 20 20 20 44 61 tte.... Da
Size : 512 (Real : 512)
000000: 74 61 20 6C 65 6E 67 74 68 20 20 20 20 20 20 20 ta length
000010: 20 31 39 2E 2E 2E 32 30 20 20 20 41 73 20 70 65 19...20 As pe
000020: 72 20 63 61 73 73 65 74 74 65 0D 0A 0D 0A 20 20 r cassette....
000030: 20 20 20 20 20 44 61 74 61 20 6C 6F 63 61 74 69 Data locati
000040: 6F 6E 20 20 20 20 20 20 32 31 2E 2E 2E 32 32 20 on 21...22
000050: 20 20 41 73 20 70 65 72 20 63 61 73 73 65 74 74 As per cassett
000060: 65 0D 0A 0D 0A 20 20 20 20 20 20 20 46 69 72 73 e.... Firs
000070: 74 20 62 6C 6F 63 6B 20 20 20 20 20 20 20 20 32 t block 2
000080: 33 20 20 20 20 20 20 20 20 53 65 74 20 74 6F 20 3 Set to
000090: 23 46 46 2C 20 6F 6E 6C 79 20 75 73 65 64 20 66 #FF, only used f
0000A0: 6F 72 20 6F 75 74 70 75 74 20 66 69 6C 65 73 0D or output files.
0000B0: 0A 0D 0A 20 20 20 20 20 20 20 4C 6F 67 69 63 61 ... Logica
0000C0: 6C 20 6C 65 6E 67 74 68 20 20 20 20 20 32 34 2E l length 24.
0000D0: 2E 2E 32 35 20 20 20 41 73 20 70 65 72 20 63 61 ..25 As per ca
0000E0: 73 73 65 74 74 65 0D 0A 0D 0A 20 20 20 20 20 20 ssette....
0000F0: 20 45 6E 74 72 79 20 61 64 64 72 65 73 73 20 20 Entry address
000100: 20 20 20 20 32 36 2E 2E 2E 32 37 20 20 20 41 73 26...27 As
000110: 20 70 65 72 20 63 61 73 73 65 74 74 65 0D 0A 0D per cassette...
000120: 0A 20 20 20 20 20 20 20 55 6E 61 6C 6C 6F 63 61 . Unalloca
000130: 74 65 64 20 20 20 20 20 20 20 20 32 38 2E 2E 2E ted 28...
000140: 36 33 20 20 20 41 73 20 70 65 72 20 63 61 73 73 63 As per cass
000150: 65 74 74 65 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ette........
000160: 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 AMSTRAD CPC46
000170: 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 4/664/6128 FIRMW
000180: 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ARE
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001A0: 20 70 61 67 65 20 39 2E 34 0D 0A 0D 0A 0D 0A 0D page 9.4.......
0001B0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 68 ....... Wh
0001C0: 65 6E 20 61 20 66 69 6C 65 20 77 69 74 68 6F 75 en a file withou
0001D0: 74 20 61 20 68 65 61 64 65 72 20 69 73 20 6F 70 t a header is op
0001E0: 65 6E 65 64 20 66 6F 72 20 20 69 6E 70 75 74 20 ened for input
0001F0: 20 61 20 20 66 61 6B 65 20 20 68 65 61 64 65 72 a fake header
Size : 512 (Real : 512)
000000: 20 20 69 73 0D 0A 20 20 20 20 20 20 20 63 6F 6E is.. con
000010: 73 74 72 75 63 74 65 64 20 69 6E 20 73 74 6F 72 structed in stor
000020: 65 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D e as follows:...
000030: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 79 74 Byt
000050: 65 73 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 es...... F
000060: 69 6C 65 6E 61 6D 65 20 20 20 20 20 20 20 20 20 ilename
000070: 20 20 30 20 20 20 20 20 20 20 20 20 55 73 65 72 0 User
000080: 20 6E 75 6D 62 65 72 2C 20 23 30 30 2E 2E 23 46 number, #00..#F
000090: 46 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 F..
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2E 2E 1..
0000B0: 38 20 20 20 20 20 20 4E 61 6D 65 20 70 61 72 74 8 Name part
0000C0: 2C 20 70 61 64 64 65 64 20 77 69 74 68 20 73 70 , padded with sp
0000D0: 61 63 65 73 0D 0A 20 20 20 20 20 20 20 20 20 20 aces..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 39 2E 2E 31 31 20 20 20 20 20 54 79 70 65 20 70 9..11 Type p
000100: 61 72 74 2C 20 70 61 64 64 65 64 20 77 69 74 68 art, padded with
000110: 20 73 70 61 63 65 73 0D 0A 20 20 20 20 20 20 20 spaces..
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 31 32 2E 2E 31 35 20 20 20 20 23 30 30 12..15 #00
000140: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 69 6C ...... Fil
000150: 65 20 74 79 70 65 20 20 20 20 20 20 20 20 20 20 e type
000160: 31 38 20 20 20 20 20 20 20 20 23 31 36 2C 20 75 18 #16, u
000170: 6E 70 72 6F 74 65 63 74 65 64 20 41 53 43 49 49 nprotected ASCII
000180: 20 76 65 72 73 69 6F 6E 20 31 0D 0A 20 20 20 20 version 1..
000190: 20 20 20 44 61 74 61 20 6C 6F 63 61 74 69 6F 6E Data location
0001A0: 20 20 20 20 20 20 31 39 2E 2E 32 30 20 20 20 20 19..20
0001B0: 41 64 64 72 65 73 73 20 6F 66 20 32 4B 20 62 75 Address of 2K bu
0001C0: 66 66 65 72 0D 0A 20 20 20 20 20 20 20 46 69 72 ffer.. Fir
0001D0: 73 74 20 62 6C 6F 63 6B 20 20 20 20 20 20 20 20 st block
0001E0: 32 33 20 20 20 20 20 20 20 20 23 46 46 0D 0A 0D 23 #FF...
0001F0: 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
Size : 512 (Real : 512)
000000: 68 65 72 20 66 69 65 6C 64 73 20 61 72 65 20 73 her fields are s
000010: 65 74 20 74 6F 20 7A 65 72 6F 2E 0D 0A 0D 0A 0D et to zero......
000020: 0A 20 20 20 20 20 20 20 39 2E 34 20 44 69 73 63 . 9.4 Disc
000030: 20 4F 72 67 61 6E 69 73 61 74 69 6F 6E 0D 0A 0D Organisation...
000040: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 44 4F 53 ... AMSDOS
000050: 20 61 6E 64 20 74 68 65 20 43 50 2F 4D 20 32 2E and the CP/M 2.
000060: 32 20 42 49 4F 53 20 73 75 70 70 6F 72 74 20 20 2 BIOS support
000070: 74 68 72 65 65 20 20 64 69 66 66 65 72 65 6E 74 three different
000080: 20 20 64 69 73 63 20 20 66 6F 72 6D 61 74 73 3A disc formats:
000090: 0D 0A 20 20 20 20 20 20 20 53 59 53 54 45 4D 20 .. SYSTEM
0000A0: 66 6F 72 6D 61 74 2C 20 44 41 54 41 20 4F 4E 4C format, DATA ONL
0000B0: 59 20 66 6F 72 6D 61 74 2C 20 61 6E 64 20 49 42 Y format, and IB
0000C0: 4D 20 66 6F 72 6D 61 74 2E 20 54 68 65 20 20 43 M format. The C
0000D0: 50 2F 4D 20 20 50 6C 75 73 20 20 42 49 4F 53 0D P/M Plus BIOS.
0000E0: 0A 20 20 20 20 20 20 20 73 75 70 70 6F 72 74 73 . supports
0000F0: 20 74 68 65 20 53 59 53 54 45 4D 20 61 6E 64 20 the SYSTEM and
000100: 44 41 54 41 20 66 6F 72 6D 61 74 73 20 62 75 74 DATA formats but
000110: 20 6E 6F 74 20 49 42 4D 20 66 6F 72 6D 61 74 2E not IBM format.
000120: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
000130: 20 42 49 4F 53 20 61 75 74 6F 6D 61 74 69 63 61 BIOS automatica
000140: 6C 6C 79 20 64 65 74 65 63 74 73 20 74 68 65 20 lly detects the
000150: 66 6F 72 6D 61 74 20 6F 66 20 61 20 64 69 73 63 format of a disc
000160: 2E 20 55 6E 64 65 72 20 20 43 50 2F 4D 20 20 74 . Under CP/M t
000170: 68 69 73 0D 0A 20 20 20 20 20 20 20 6F 63 63 75 his.. occu
000180: 72 73 20 66 6F 72 20 64 72 69 76 65 20 41 20 61 rs for drive A a
000190: 74 20 61 20 77 61 72 6D 20 62 6F 6F 74 20 61 6E t a warm boot an
0001A0: 64 20 66 6F 72 20 64 72 69 76 65 20 42 20 74 68 d for drive B th
0001B0: 65 20 66 69 72 73 74 20 74 69 6D 65 20 69 74 20 e first time it
0001C0: 69 73 0D 0A 20 20 20 20 20 20 20 61 63 63 65 73 is.. acces
0001D0: 73 65 64 2E 20 55 6E 64 65 72 20 41 4D 53 44 4F sed. Under AMSDO
0001E0: 53 20 74 68 69 73 20 6F 63 63 75 72 73 20 65 61 S this occurs ea
0001F0: 63 68 20 74 69 6D 65 20 61 20 64 69 73 63 20 77 ch time a disc w
Size : 512 (Real : 512)
000000: 69 74 68 20 6E 6F 20 6F 70 65 6E 20 66 69 6C 65 ith no open file
000010: 73 0D 0A 20 20 20 20 20 20 20 69 73 20 61 63 63 s.. is acc
000020: 65 73 73 65 64 2E 20 54 6F 20 70 65 72 6D 69 74 essed. To permit
000030: 20 74 68 69 73 20 61 75 74 6F 6D 61 74 69 63 20 this automatic
000040: 64 65 74 65 63 74 69 6F 6E 20 65 61 63 68 20 66 detection each f
000050: 6F 72 6D 61 74 20 68 61 73 20 75 6E 69 71 75 65 ormat has unique
000060: 0D 0A 20 20 20 20 20 20 20 73 65 63 74 6F 72 20 .. sector
000070: 6E 75 6D 62 65 72 73 20 61 73 20 64 65 74 61 69 numbers as detai
000080: 6C 65 64 20 62 65 6C 6F 77 2E 0D 0A 0D 0A 0D 0A led below.......
000090: 20 20 20 20 20 20 20 33 20 69 6E 63 68 20 64 69 3 inch di
0000A0: 73 63 73 20 61 72 65 20 64 6F 75 62 6C 65 20 73 scs are double s
0000B0: 69 64 65 64 2C 20 62 75 74 20 6F 6E 6C 79 20 6F ided, but only o
0000C0: 6E 65 20 73 69 64 65 20 6D 61 79 20 62 65 20 61 ne side may be a
0000D0: 63 63 65 73 73 65 64 20 61 74 20 20 61 0D 0A 20 ccessed at a..
0000E0: 20 20 20 20 20 20 74 69 6D 65 20 64 65 70 65 6E time depen
0000F0: 64 69 6E 67 20 6F 6E 20 77 68 69 63 68 20 77 61 ding on which wa
000100: 79 20 72 6F 75 6E 64 20 74 68 65 20 75 73 65 72 y round the user
000110: 20 69 6E 73 65 72 74 73 20 74 68 65 20 64 69 73 inserts the dis
000120: 63 2E 20 54 68 65 72 65 20 20 6D 79 0D 0A 20 20 c. There my..
000130: 20 20 20 20 20 62 65 20 64 69 66 66 65 72 65 6E be differen
000140: 74 20 66 6F 72 6D 61 74 73 20 6F 6E 20 74 68 65 t formats on the
000150: 20 74 77 6F 20 73 69 64 65 73 2E 0D 0A 0D 0A 0D two sides......
000160: 0A 20 20 20 20 20 20 20 43 6F 6D 6D 6F 6E 20 54 . Common T
000170: 6F 20 41 6C 6C 20 46 6F 72 6D 61 74 73 0D 0A 0D o All Formats...
000180: 0A 0D 0A 20 20 20 20 20 20 20 53 69 6E 67 6C 65 ... Single
000190: 20 73 69 64 65 64 20 28 74 68 65 20 74 77 6F 20 sided (the two
0001A0: 73 69 64 65 73 20 6F 66 20 61 20 33 20 69 6E 63 sides of a 3 inc
0001B0: 68 20 64 69 73 63 20 61 72 65 20 74 72 65 61 74 h disc are treat
0001C0: 65 64 20 73 65 70 61 72 61 74 65 6C 79 29 2E 0D ed separately)..
0001D0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 35 31 32 20 ..... 512
0001E0: 62 79 74 65 20 70 68 79 73 69 63 61 6C 20 73 65 byte physical se
0001F0: 63 74 6F 72 20 73 69 7A 65 2E 0D 0A 0D 0A 0D 0A ctor size.......
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 34 30 20 74 72 61 63 6B 20 40 track
000010: 6E 75 6D 62 65 72 65 64 20 30 20 74 6F 20 33 39 numbered 0 to 39
000020: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 30 ....... 10
000030: 32 34 20 62 79 74 65 20 43 50 2F 4D 20 62 6C 6F 24 byte CP/M blo
000040: 63 6B 20 73 69 7A 65 2E 0D 0A 0D 0A 0D 0A 20 20 ck size.......
000050: 20 20 20 20 20 36 34 20 64 69 72 65 63 74 6F 72 64 director
000060: 79 20 65 6E 74 72 69 65 73 2E 0D 0A 0D 0A 0D 0A y entries.......
000070: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
000080: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
000090: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 20 20 20 20 70 61 67 65 20 39 2E 35 0D 0A 0D page 9.5...
0000C0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
0000D0: 20 20 53 79 73 74 65 6D 20 46 6F 72 6D 61 74 0D System Format.
0000E0: 0A 0D 0A 20 20 20 20 20 20 20 39 20 73 65 63 74 ... 9 sect
0000F0: 6F 72 73 20 70 65 72 20 74 72 61 63 6B 20 6E 75 ors per track nu
000100: 6D 62 65 72 65 64 20 23 34 31 20 74 6F 20 23 34 mbered #41 to #4
000110: 39 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 32 20 72 9..... 2 r
000120: 65 73 65 72 76 65 64 20 74 72 61 63 6B 73 2E 0D eserved tracks..
000130: 0A 0D 0A 20 20 20 20 20 20 20 32 20 74 6F 20 31 ... 2 to 1
000140: 20 73 65 63 74 6F 72 20 69 6E 74 65 72 6C 65 61 sector interlea
000150: 76 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ve..... Th
000160: 65 20 73 79 73 74 65 6D 20 66 6F 72 6D 61 74 20 e system format
000170: 69 73 20 74 68 65 20 6D 61 69 6E 20 20 66 6F 72 is the main for
000180: 6D 61 74 20 20 73 75 70 70 6F 72 74 65 64 2C 20 mat supported,
000190: 20 43 50 2F 4D 20 20 63 61 6E 20 20 6F 6E 6C 79 CP/M can only
0001A0: 20 20 62 65 0D 0A 20 20 20 20 20 20 20 6C 6F 61 be.. loa
0001B0: 64 65 64 20 28 43 6F 6C 64 20 42 6F 6F 74 29 20 ded (Cold Boot)
0001C0: 66 72 6F 6D 20 61 20 73 79 73 74 65 6D 20 66 6F from a system fo
0001D0: 72 6D 61 74 20 64 69 73 63 2E 20 43 50 2F 4D 20 rmat disc. CP/M
0001E0: 32 2E 32 20 61 6C 73 6F 20 72 65 71 75 69 72 65 2.2 also require
0001F0: 73 20 61 0D 0A 20 20 20 20 20 20 20 73 79 73 74 s a.. syst
Size : 512 (Real : 512)
000000: 65 6D 20 66 6F 72 6D 61 74 20 64 69 73 63 20 74 em format disc t
000010: 6F 20 77 61 72 6D 20 62 6F 6F 74 2E 20 20 54 68 o warm boot. Th
000020: 65 20 20 72 65 73 65 72 76 65 64 20 20 74 72 61 e reserved tra
000030: 63 6B 73 20 20 61 72 65 20 20 75 73 65 64 20 20 cks are used
000040: 61 73 0D 0A 20 20 20 20 20 20 20 66 6F 6C 6C 6F as.. follo
000050: 77 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ws:....
000060: 20 20 20 20 20 20 20 54 72 61 63 6B 20 30 20 73 Track 0 s
000070: 65 63 74 6F 72 20 23 34 31 3A 20 20 20 20 20 20 ector #41:
000080: 20 20 20 20 20 62 6F 6F 74 20 73 65 63 74 6F 72 boot sector
000090: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
0000A0: 20 20 20 20 20 54 72 61 63 6B 20 30 20 73 65 63 Track 0 sec
0000B0: 74 6F 72 20 23 34 32 3A 20 20 20 20 20 20 20 20 tor #42:
0000C0: 20 20 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E configuration
0000D0: 20 73 65 63 74 6F 72 2E 0D 0A 0D 0A 20 20 20 20 sector.....
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 54 72 61 63 Trac
0000F0: 6B 20 30 20 73 65 63 74 6F 72 73 20 23 34 33 2E k 0 sectors #43.
000100: 2E 23 34 37 3A 20 20 20 20 20 75 6E 75 73 65 64 .#47: unused
000110: 5C 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 \....
000120: 20 20 20 20 20 54 72 61 63 6B 20 30 20 73 65 63 Track 0 sec
000130: 74 6F 72 73 20 23 34 38 2E 2E 23 34 39 3A 20 20 tors #48..#49:
000140: 20 20 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 20 and..
000150: 20 20 20 20 20 20 20 20 54 72 61 63 6B 20 31 20 Track 1
000160: 73 65 63 74 6F 72 73 20 23 34 31 2E 2E 23 34 39 sectors #41..#49
000170: 3A 20 20 20 20 20 43 43 50 20 61 6E 64 20 42 49 : CCP and BI
000180: 4F 53 0D 0A 0D 0A 20 20 20 20 20 20 20 43 50 2F OS.... CP/
000190: 4D 20 50 6C 75 73 20 6F 6E 6C 79 20 75 73 65 73 M Plus only uses
0001A0: 20 54 72 61 63 6B 20 30 20 73 65 63 74 6F 72 20 Track 0 sector
0001B0: 23 34 31 20 61 73 20 61 20 62 6F 6F 74 20 73 65 #41 as a boot se
0001C0: 63 74 6F 72 0D 0A 20 20 20 20 20 20 20 54 72 61 ctor.. Tra
0001D0: 63 6B 20 30 20 73 65 63 74 6F 72 20 23 34 32 2E ck 0 sector #42.
0001E0: 2E 2E 23 34 39 20 61 6E 64 20 54 72 61 63 6B 20 ..#49 and Track
0001F0: 31 20 61 72 65 20 75 6E 75 73 65 64 2E 0D 0A 0D 1 are unused....
Size : 512 (Real : 512)
000000: 0A 20 20 20 20 20 20 20 4E 6F 74 65 3A 20 41 6E . Note: An
000010: 6F 74 68 65 72 20 66 6F 72 6D 61 74 20 63 61 6C other format cal
000020: 6C 65 64 20 27 56 45 4E 44 4F 52 27 20 66 6F 72 led 'VENDOR' for
000030: 6D 61 74 20 69 73 20 61 20 20 73 70 65 63 69 61 mat is a specia
000040: 6C 20 20 76 65 72 73 69 6F 6E 20 20 6F 66 0D 0A l version of..
000050: 20 20 20 20 20 20 20 73 79 73 74 65 6D 20 66 6F system fo
000060: 72 6D 61 74 20 77 68 69 63 68 20 64 6F 65 73 20 rmat which does
000070: 6E 6F 74 20 63 6F 6E 74 61 69 6E 20 61 6E 79 20 not contain any
000080: 73 6F 66 74 77 61 72 65 20 6F 6E 20 74 68 65 20 software on the
000090: 74 77 6F 20 20 72 65 73 65 72 76 65 64 0D 0A 20 two reserved..
0000A0: 20 20 20 20 20 20 74 72 61 63 6B 73 2E 20 49 74 tracks. It
0000B0: 20 69 73 20 69 6E 74 65 6E 64 65 64 20 66 6F 72 is intended for
0000C0: 20 75 73 65 20 69 6E 20 73 6F 66 74 77 61 72 65 use in software
0000D0: 20 64 69 73 74 72 69 62 75 74 69 6F 6E 2E 0D 0A distribution...
0000E0: 0D 0A 20 20 20 20 20 20 20 44 61 74 61 20 4F 6E .. Data On
0000F0: 6C 79 20 46 6F 72 6D 61 74 0D 0A 0D 0A 20 20 20 ly Format....
000100: 20 20 20 20 39 20 73 65 63 74 6F 72 73 20 70 65 9 sectors pe
000110: 72 20 74 72 61 63 6B 20 6E 75 6D 62 65 72 65 64 r track numbered
000120: 20 23 43 31 20 74 6F 20 23 43 39 2E 0D 0A 0D 0A #C1 to #C9.....
000130: 20 20 20 20 20 20 20 30 20 72 65 73 65 72 76 65 0 reserve
000140: 64 20 74 72 61 63 6B 73 2E 0D 0A 0D 0A 20 20 20 d tracks.....
000150: 20 20 20 20 32 20 74 6F 20 31 20 73 65 63 74 6F 2 to 1 secto
000160: 72 20 69 6E 74 65 72 6C 65 61 76 65 2E 0D 0A 0D r interleave....
000170: 0A 20 20 20 20 20 20 20 54 68 69 73 20 66 6F 72 . This for
000180: 6D 61 74 20 69 73 20 6E 6F 74 20 72 65 63 6F 6D mat is not recom
000190: 6D 65 6E 64 65 64 20 66 6F 72 20 75 73 65 20 77 mended for use w
0001A0: 69 74 68 20 43 50 2F 4D 20 32 2E 32 20 73 69 6E ith CP/M 2.2 sin
0001B0: 63 65 20 69 74 20 20 69 73 20 20 6E 6F 74 0D 0A ce it is not..
0001C0: 20 20 20 20 20 20 20 70 6F 73 73 69 62 6C 65 20 possible
0001D0: 74 6F 20 27 77 61 72 6D 20 62 6F 6F 74 27 20 66 to 'warm boot' f
0001E0: 72 6F 6D 20 69 74 2E 20 48 6F 77 65 76 65 72 2C rom it. However,
0001F0: 20 62 65 63 61 75 73 65 20 74 68 65 72 65 20 20 because there
Size : 512 (Real : 512)
000000: 69 73 20 20 61 20 20 6C 69 74 74 6C 65 0D 0A 20 is a little..
000010: 20 20 20 20 20 20 6D 6F 72 65 20 64 69 73 63 20 more disc
000020: 73 70 61 63 65 20 61 76 61 69 6C 61 62 6C 65 20 space available
000030: 69 74 20 69 73 20 75 73 65 66 75 6C 20 66 6F 72 it is useful for
000040: 20 41 4D 53 44 4F 53 20 6F 72 20 43 50 2F 4D 20 AMSDOS or CP/M
000050: 50 6C 75 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 Plus.....
000060: 49 42 4D 20 46 6F 72 6D 61 74 0D 0A 0D 0A 20 20 IBM Format....
000070: 20 20 20 20 20 38 20 73 65 63 74 6F 72 73 20 70 8 sectors p
000080: 65 72 20 74 72 61 63 6B 20 6E 75 6D 62 65 72 65 er track numbere
000090: 64 20 31 20 74 6F 20 38 0D 0A 0D 0A 20 20 20 20 d 1 to 8....
0000A0: 20 20 20 31 20 72 65 73 65 72 76 65 64 20 74 72 1 reserved tr
0000B0: 61 63 6B 0D 0A 0D 0A 20 20 20 20 20 20 20 6E 6F ack.... no
0000C0: 20 73 65 63 74 6F 72 20 69 6E 74 65 72 6C 65 61 sector interlea
0000D0: 76 65 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ve...... T
0000E0: 68 69 73 20 66 6F 72 6D 61 74 20 69 73 20 6C 6F his format is lo
0000F0: 67 69 63 61 6C 6C 79 20 74 68 65 20 73 61 6D 65 gically the same
000100: 20 61 73 20 74 68 65 20 73 69 6E 67 6C 65 2D 73 as the single-s
000110: 69 64 65 64 20 66 6F 72 6D 61 74 20 20 75 73 65 ided format use
000120: 64 20 20 62 79 0D 0A 20 20 20 20 20 20 20 43 50 d by.. CP
000130: 2F 4D 20 6F 6E 20 74 68 65 20 49 42 4D 20 50 43 /M on the IBM PC
000140: 2E 20 49 74 20 69 73 20 69 6E 74 65 6E 64 65 64 . It is intended
000150: 20 20 66 6F 72 20 20 73 70 65 63 69 61 6C 69 73 for specialis
000160: 74 20 20 75 73 65 20 20 61 6E 64 20 20 69 73 20 t use and is
000170: 20 6E 6F 74 0D 0A 20 20 20 20 20 20 20 6F 74 68 not.. oth
000180: 65 72 77 69 73 65 20 72 65 63 6F 6D 6D 65 6E 64 erwise recommend
000190: 65 64 20 61 73 20 69 74 20 69 73 20 6E 6F 74 20 ed as it is not
0001A0: 70 6F 73 73 69 62 6C 65 20 74 6F 20 27 77 61 72 possible to 'war
0001B0: 6D 20 62 6F 6F 74 27 20 66 72 6F 6D 20 69 74 2E m boot' from it.
0001C0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
0001D0: 20 20 20 20 20 41 4D 53 54 52 41 44 20 34 36 34 AMSTRAD 464
0001E0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
0001F0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 70 61 67 65 20 39 2E 36 0D 0A 0D 0A 0D page 9.6.....
000020: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
000030: 39 2E 35 20 42 6F 6F 74 20 53 65 63 74 6F 72 0D 9.5 Boot Sector.
000040: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E 20 6F ..... In o
000050: 72 64 65 72 20 74 68 61 74 20 6E 6F 6E 2D 43 50 rder that non-CP
000060: 2F 4D 20 73 79 73 74 65 6D 73 20 6D 61 79 20 62 /M systems may b
000070: 65 20 69 6D 70 6C 65 6D 65 6E 74 65 64 20 61 74 e implemented at
000080: 20 61 20 6C 61 74 65 72 20 64 61 74 65 20 20 74 a later date t
000090: 68 65 0D 0A 20 20 20 20 20 20 20 42 49 4F 53 20 he.. BIOS
0000A0: 69 6E 69 74 69 61 6C 69 7A 61 74 69 6F 6E 20 69 initialization i
0000B0: 73 20 70 65 72 66 6F 72 6D 65 64 2C 20 69 6E 20 s performed, in
0000C0: 70 61 72 74 2C 20 62 79 20 61 20 62 6F 6F 74 20 part, by a boot
0000D0: 70 72 6F 67 72 61 6D 20 77 68 69 63 68 20 20 69 program which i
0000E0: 73 0D 0A 20 20 20 20 20 20 20 72 65 61 64 20 66 s.. read f
0000F0: 72 6F 6D 20 74 68 65 20 64 69 73 63 20 62 65 66 rom the disc bef
000100: 6F 72 65 20 61 74 74 65 6D 70 74 69 6E 67 20 74 ore attempting t
000110: 6F 20 6C 6F 61 64 20 20 43 50 2F 4D 2E 20 20 49 o load CP/M. I
000120: 6E 20 20 74 68 65 20 20 6E 6F 6E 2D 43 50 2F 4D n the non-CP/M
000130: 0D 0A 20 20 20 20 20 20 20 63 61 73 65 20 74 68 .. case th
000140: 65 20 62 6F 6F 74 20 70 72 6F 67 72 61 6D 20 77 e boot program w
000150: 6F 75 6C 64 20 6E 6F 74 20 6A 75 6D 70 20 74 6F ould not jump to
000160: 20 74 68 65 20 77 61 72 6D 20 62 6F 6F 74 20 72 the warm boot r
000170: 6F 75 74 69 6E 65 20 20 62 75 74 20 20 67 6F 0D outine but go.
000180: 0A 20 20 20 20 20 20 20 6F 6E 20 69 74 73 20 6F . on its o
000190: 77 6E 20 77 61 79 2C 20 75 73 69 6E 67 20 74 68 wn way, using th
0001A0: 65 20 42 49 4F 53 20 61 6E 64 20 66 69 72 6D 77 e BIOS and firmw
0001B0: 61 72 65 20 72 6F 75 74 69 6E 65 73 20 61 73 20 are routines as
0001C0: 64 65 73 69 72 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 desired.......
0001D0: 20 20 20 20 20 54 68 65 20 62 6F 6F 74 20 70 72 The boot pr
0001E0: 6F 67 72 61 6D 20 69 73 20 69 6E 20 74 68 65 20 ogram is in the
0001F0: 62 6F 6F 74 20 20 73 65 63 74 6F 72 20 20 77 68 boot sector wh
Size : 512 (Real : 512)
000000: 69 63 68 20 20 69 73 20 20 74 68 65 20 20 66 69 ich is the fi
000010: 72 73 74 20 20 73 65 63 74 6F 72 0D 0A 20 20 20 rst sector..
000020: 20 20 20 20 28 73 65 63 74 6F 72 20 23 34 31 29 (sector #41)
000030: 20 6F 6E 20 74 72 61 63 6B 20 30 2E 0D 0A 0D 0A on track 0.....
000040: 20 20 20 20 20 20 20 44 75 72 69 6E 67 20 61 20 During a
000050: 63 6F 6C 64 20 62 6F 6F 74 20 74 68 65 20 42 49 cold boot the BI
000060: 4F 53 20 69 73 20 69 6E 69 74 69 61 6C 69 7A 65 OS is initialize
000070: 64 20 69 6E 74 6F 20 61 20 6D 69 6E 69 6D 75 6D d into a minimum
000080: 20 73 74 61 74 65 20 62 65 66 6F 72 65 0D 0A 20 state before..
000090: 20 20 20 20 20 20 6C 6F 61 64 69 6E 67 20 61 6E loading an
0000A0: 64 20 65 78 65 63 75 74 69 6E 67 20 74 68 65 20 d executing the
0000B0: 62 6F 6F 74 20 70 72 6F 67 72 61 6D 2E 20 54 68 boot program. Th
0000C0: 69 73 20 73 74 61 74 65 20 69 73 20 61 73 20 66 is state is as f
0000D0: 6F 6C 6C 6F 77 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 ollows.......
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C All
0000F0: 20 72 6F 75 74 69 6E 65 73 20 69 6E 20 74 68 65 routines in the
000100: 20 52 4F 4D 20 63 6F 70 79 20 6F 66 20 74 68 65 ROM copy of the
000110: 20 42 49 4F 53 20 20 6A 75 6D 70 62 6C 6F 63 6B BIOS jumpblock
000120: 20 20 61 6C 6C 20 20 74 68 65 0D 0A 20 20 20 20 all the..
000130: 20 20 20 20 20 20 20 20 20 20 20 20 72 6F 75 74 rout
000140: 69 6E 65 73 20 69 6E 20 74 68 65 20 65 78 74 65 ines in the exte
000150: 6E 64 65 64 20 6A 75 6D 70 62 6C 6F 63 6B 20 61 nded jumpblock a
000160: 72 65 20 61 76 61 69 6C 61 62 6C 65 2E 0D 0A 0D re available....
000170: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000180: 20 41 6C 74 65 72 6E 61 74 65 20 61 6E 64 20 49 Alternate and I
000190: 59 20 72 65 67 69 73 74 65 72 20 73 61 76 69 6E Y register savin
0001A0: 67 20 69 73 20 65 6E 61 62 6C 65 64 2E 0D 0A 0D g is enabled....
0001B0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0001C0: 20 49 6E 74 65 72 72 75 70 74 73 20 61 72 65 20 Interrupts are
0001D0: 69 6E 64 69 72 65 63 74 65 64 20 76 69 61 20 74 indirected via t
0001E0: 68 65 20 42 49 4F 53 20 61 6E 64 20 72 75 6E 20 he BIOS and run
0001F0: 6F 6E 20 74 68 65 20 20 42 49 4F 53 27 73 0D 0A on the BIOS's..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 73 74 61 63 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 stack.....
000020: 20 20 20 20 20 20 20 20 20 20 44 69 73 63 20 6D Disc m
000030: 65 73 73 61 67 65 73 20 61 72 65 20 65 6E 61 62 essages are enab
000040: 6C 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 led.....
000050: 20 20 20 20 20 20 20 20 54 68 65 20 69 6E 69 74 The init
000060: 69 61 6C 20 63 6F 6D 6D 61 6E 64 20 62 75 66 66 ial command buff
000070: 65 72 20 69 73 20 65 6D 70 74 79 2E 0D 0A 0D 0A er is empty.....
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 54 68 65 20 20 49 4F 42 59 54 45 20 20 61 74 20 The IOBYTE at
0000A0: 20 23 30 30 30 33 20 20 69 73 20 20 69 6E 69 74 #0003 is init
0000B0: 69 61 6C 69 7A 65 64 20 20 74 6F 20 20 23 38 31 ialized to #81
0000C0: 20 20 28 4C 53 54 3A 3D 4C 50 54 3A 2C 0D 0A 20 (LST:=LPT:,..
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 P
0000E0: 55 4E 3A 3D 54 54 59 3A 2C 20 52 44 52 3A 3D 54 UN:=TTY:, RDR:=T
0000F0: 54 59 3A 2C 20 43 4F 4E 3A 3D 43 52 54 3A 29 2E TY:, CON:=CRT:).
000100: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
000110: 20 20 20 20 54 68 65 20 63 75 72 72 65 6E 74 20 The current
000120: 64 72 69 76 65 20 61 74 20 23 30 30 30 34 20 69 drive at #0004 i
000130: 73 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 74 6F s initialized to
000140: 20 23 30 30 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 #00.....
000150: 20 20 20 20 20 20 20 20 20 54 68 65 20 73 65 72 The ser
000160: 69 61 6C 20 69 6E 74 65 72 66 61 63 65 20 69 73 ial interface is
000170: 20 6E 6F 74 20 69 6E 69 74 69 61 6C 69 7A 65 64 not initialized
000180: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
000190: 20 20 20 20 20 54 68 65 20 43 43 50 20 61 6E 64 The CCP and
0001A0: 20 42 44 4F 53 20 61 72 65 20 6E 6F 74 20 69 6E BDOS are not in
0001B0: 20 73 74 6F 72 65 2E 0D 0A 0D 0A 20 20 20 20 20 store.....
0001C0: 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 43 The C
0001D0: 50 2F 4D 20 6A 75 6D 70 73 20 61 74 20 23 30 30 P/M jumps at #00
0001E0: 30 30 20 61 6E 64 20 23 30 30 30 35 20 61 72 65 00 and #0005 are
0001F0: 20 6E 6F 74 20 69 6E 69 74 69 61 6C 69 7A 65 64 not initialized
Size : 512 (Real : 512)
000000: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
000010: 65 20 62 6F 6F 74 20 73 65 63 74 6F 72 20 69 73 e boot sector is
000020: 20 72 65 61 64 20 61 6E 64 20 6C 6F 61 64 65 64 read and loaded
000030: 20 69 6E 74 6F 20 20 73 74 6F 72 65 20 20 61 74 into store at
000040: 20 20 23 30 31 30 30 3B 20 20 74 68 65 20 20 73 #0100; the s
000050: 74 61 63 6B 0D 0A 20 20 20 20 20 20 20 70 6F 69 tack.. poi
000060: 6E 74 65 72 20 69 73 20 69 6E 69 74 69 61 6C 69 nter is initiali
000070: 7A 65 64 20 74 6F 20 61 20 76 61 6C 75 65 20 69 zed to a value i
000080: 6D 6D 65 64 69 61 74 65 6C 79 20 62 65 6C 6F 77 mmediately below
000090: 20 20 74 68 65 20 20 42 49 4F 53 27 73 20 20 64 the BIOS's d
0000A0: 61 74 61 0D 0A 20 20 20 20 20 20 20 28 23 41 44 ata.. (#AD
0000B0: 33 33 20 69 73 20 6E 6F 72 6D 61 6C 29 20 61 72 33 is normal) ar
0000C0: 65 61 20 61 6E 64 20 74 68 65 20 62 6F 6F 74 20 ea and the boot
0000D0: 70 72 6F 67 72 61 6D 20 69 73 20 65 6E 74 65 72 program is enter
0000E0: 65 64 20 61 74 20 20 23 30 31 30 30 2E 20 20 54 ed at #0100. T
0000F0: 68 65 0D 0A 20 20 20 20 20 20 20 62 6F 6F 74 20 he.. boot
000100: 70 72 6F 67 72 61 6D 20 6D 61 79 20 75 73 65 20 program may use
000110: 73 74 6F 72 65 20 66 72 6F 6D 20 23 30 31 30 30 store from #0100
000120: 20 75 70 77 61 72 64 73 20 20 75 6E 74 69 6C 20 upwards until
000130: 20 69 74 20 20 72 65 61 63 68 65 73 20 20 74 68 it reaches th
000140: 65 0D 0A 20 20 20 20 20 20 20 73 74 61 63 6B 2E e.. stack.
000150: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 6F 20 ...... To
000160: 72 75 6E 20 43 50 2F 4D 20 74 68 65 20 62 6F 6F run CP/M the boo
000170: 74 20 70 72 6F 67 72 61 6D 20 6D 75 73 74 2C 20 t program must,
000180: 61 74 20 6C 65 61 73 74 2C 20 6A 75 6D 70 20 20 at least, jump
000190: 74 6F 20 20 74 68 65 20 20 77 61 72 6D 20 20 62 to the warm b
0001A0: 6F 6F 74 0D 0A 20 20 20 20 20 20 20 65 6E 74 72 oot.. entr
0001B0: 79 20 69 6E 20 74 68 65 20 52 4F 4D 20 6A 75 6D y in the ROM jum
0001C0: 70 62 6C 6F 63 6B 2E 0D 0A 0D 0A 20 20 20 20 20 pblock.....
0001D0: 20 20 54 68 65 20 62 6F 6F 74 20 70 72 6F 67 72 The boot progr
0001E0: 61 6D 20 66 6F 72 20 43 50 2F 4D 20 32 2E 32 20 am for CP/M 2.2
0001F0: 6C 6F 61 64 73 20 61 6E 64 20 6F 62 65 79 73 20 loads and obeys
Size : 512 (Real : 512)
000000: 74 68 65 20 63 6F 6E 66 69 67 75 72 61 74 69 6F the configuratio
000010: 6E 20 73 65 63 74 6F 72 0D 0A 20 20 20 20 20 20 n sector..
000020: 20 61 6E 64 20 74 68 65 6E 20 77 61 72 6D 20 62 and then warm b
000030: 6F 6F 74 73 20 43 50 2F 4D 2E 0D 0A 0D 0A 20 20 oots CP/M.....
000040: 20 20 20 20 20 54 68 65 20 62 6F 6F 74 20 70 72 The boot pr
000050: 6F 67 72 61 6D 20 66 6F 72 20 43 50 2F 4D 20 50 ogram for CP/M P
000060: 6C 75 73 20 73 65 61 72 63 68 65 73 20 66 6F 72 lus searches for
000070: 2C 20 6C 6F 61 64 73 20 61 6E 64 20 65 78 65 63 , loads and exec
000080: 75 74 65 73 20 61 20 66 69 6C 65 0D 0A 20 20 20 utes a file..
000090: 20 20 20 20 77 69 74 68 20 74 68 65 20 74 79 70 with the typ
0000A0: 65 20 70 61 72 74 20 2E 45 4D 53 2E 0D 0A 0D 0A e part .EMS.....
0000B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
0000C0: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
0000D0: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 39 2E page 9.
000100: 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 7..............
000110: 20 20 20 20 20 20 54 68 65 20 62 6F 6F 74 20 70 The boot p
000120: 72 6F 67 72 61 6D 20 68 61 73 20 74 68 65 20 66 rogram has the f
000130: 6F 6C 6C 6F 77 69 6E 67 20 69 6E 74 65 72 66 61 ollowing interfa
000140: 63 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ce:.... En
000150: 74 72 79 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 try:....
000160: 20 20 20 20 20 20 20 20 53 50 3D 68 69 67 68 65 SP=highe
000170: 73 74 20 61 64 64 72 65 73 73 20 61 76 61 69 6C st address avail
000180: 61 62 6C 65 2B 31 20 28 61 20 67 6F 6F 64 20 70 able+1 (a good p
000190: 6C 61 63 65 20 66 6F 72 20 74 68 65 20 73 74 61 lace for the sta
0001A0: 63 6B 29 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ck)..
0001B0: 20 20 20 20 20 42 43 3D 61 64 64 72 65 73 73 20 BC=address
0001C0: 6F 66 20 52 4F 4D 20 63 6F 70 79 20 6F 66 20 42 of ROM copy of B
0001D0: 49 4F 53 20 6A 75 6D 70 62 6C 6F 63 6B 20 28 42 IOS jumpblock (B
0001E0: 4F 4F 54 29 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 OOT)......
0001F0: 20 45 78 69 74 3A 0D 0A 0D 0A 20 20 20 20 20 20 Exit:....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 54 6F 20 72 75 6E To run
000010: 20 43 50 2F 4D 20 74 68 65 20 70 72 6F 67 72 61 CP/M the progra
000020: 6D 20 73 68 6F 75 6C 64 20 6A 75 6D 70 20 74 68 m should jump th
000030: 65 20 74 68 65 20 20 57 42 4F 4F 54 20 20 65 6E e the WBOOT en
000040: 74 72 79 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 try in..
000050: 20 20 20 20 20 20 20 20 20 74 68 65 20 61 62 6F the abo
000060: 76 65 20 6A 75 6D 70 62 6C 6F 63 6B 0D 0A 0D 0A ve jumpblock....
000070: 20 20 20 20 20 20 20 54 68 65 20 52 4F 4D 20 63 The ROM c
000080: 6F 70 79 20 6F 66 20 74 68 65 20 42 49 4F 53 20 opy of the BIOS
000090: 6A 75 6D 70 62 6C 6F 63 6B 20 73 68 6F 75 6C 64 jumpblock should
0000A0: 20 6E 6F 74 20 20 62 65 20 20 75 73 65 64 20 20 not be used
0000B0: 61 74 20 20 61 6E 79 20 20 74 69 6D 65 0D 0A 20 at any time..
0000C0: 20 20 20 20 20 20 28 69 6E 64 65 65 64 2C 20 6F (indeed, o
0000D0: 6E 6C 79 20 74 68 65 20 62 6F 6F 74 20 70 72 6F nly the boot pro
0000E0: 67 72 61 6D 20 6B 6E 6F 77 73 20 77 68 65 72 65 gram knows where
0000F0: 20 69 74 20 69 73 29 2E 0D 0A 0D 0A 20 20 20 20 it is).....
000100: 20 20 20 39 2E 36 20 41 4D 53 44 4F 53 20 4D 65 9.6 AMSDOS Me
000110: 73 73 61 67 65 73 0D 0A 0D 0A 20 20 20 20 20 20 ssages....
000120: 20 41 4D 53 44 4F 53 20 75 73 65 73 20 74 68 65 AMSDOS uses the
000130: 20 43 50 2F 4D 20 32 2E 32 20 42 49 4F 53 20 69 CP/M 2.2 BIOS i
000140: 6E 20 6F 72 64 65 72 20 74 68 65 20 61 63 63 65 n order the acce
000150: 73 73 20 74 68 65 20 64 69 73 63 2E 20 20 54 68 ss the disc. Th
000160: 75 73 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 us the..
000170: 42 49 4F 53 20 6D 65 73 73 61 67 65 73 20 77 69 BIOS messages wi
000180: 6C 6C 20 62 65 20 64 69 73 70 6C 61 79 65 64 20 ll be displayed
000190: 69 6E 20 74 68 65 20 65 76 65 6E 74 20 6F 66 20 in the event of
0001A0: 20 61 20 20 64 69 73 63 20 20 65 72 72 6F 72 2E a disc error.
0001B0: 20 20 54 68 69 73 0D 0A 20 20 20 20 20 20 20 73 This.. s
0001C0: 65 63 74 69 6F 6E 20 65 78 70 6C 61 69 6E 73 20 ection explains
0001D0: 74 68 65 20 6D 65 61 6E 69 6E 67 20 6F 66 20 74 the meaning of t
0001E0: 68 65 20 41 4D 53 44 4F 53 20 6D 65 73 73 61 67 he AMSDOS messag
0001F0: 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 6E es..... In
Size : 512 (Real : 512)
000000: 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 3C the following <
000010: 64 72 69 76 65 3E 20 6D 65 61 6E 73 20 41 20 6F drive> means A o
000020: 72 20 20 42 2C 20 20 3C 66 69 6C 65 6E 61 6D 65 r B, <filename
000030: 3E 20 20 6D 65 61 6E 73 20 20 61 6E 20 20 41 4D > means an AM
000040: 53 44 4F 53 0D 0A 20 20 20 20 20 20 20 66 69 6C SDOS.. fil
000050: 65 6E 61 6D 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 ename.....
000060: 20 20 20 20 20 20 20 20 20 20 42 61 64 20 63 6F Bad co
000070: 6D 6D 61 6E 64 0D 0A 0D 0A 20 20 20 20 20 20 20 mmand....
000080: 54 68 65 72 65 20 69 73 20 61 20 73 79 6E 74 61 There is a synta
000090: 78 20 65 72 72 6F 72 20 69 6E 20 61 20 63 6F 6D x error in a com
0000A0: 6D 61 6E 64 20 6F 72 20 66 69 6C 65 6E 61 6D 65 mand or filename
0000B0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
0000C0: 20 20 20 20 20 3C 66 69 6C 65 6E 61 6D 65 3E 20 <filename>
0000D0: 61 6C 72 65 61 64 79 20 65 78 69 73 74 73 0D 0A already exists..
0000E0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 75 73 65 .. The use
0000F0: 72 20 69 73 20 74 72 79 69 6E 67 20 74 6F 20 72 r is trying to r
000100: 65 6E 61 6D 65 20 61 20 66 69 6C 65 20 74 6F 20 ename a file to
000110: 61 20 6E 61 6D 65 20 77 68 69 63 68 20 69 73 20 a name which is
000120: 61 6C 72 65 61 64 79 20 69 6E 20 75 73 65 2E 0D already in use..
000130: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
000140: 20 20 20 3C 66 69 6C 65 6E 61 6D 65 3E 20 6E 6F <filename> no
000150: 74 20 66 6F 75 6E 64 0D 0A 0D 0A 20 20 20 20 20 t found....
000160: 20 20 54 68 65 20 75 73 65 72 20 69 73 20 74 72 The user is tr
000170: 79 69 6E 67 20 74 6F 20 6F 70 65 6E 20 66 6F 72 ying to open for
000180: 20 69 6E 70 75 74 2C 20 65 72 61 73 65 20 6F 72 input, erase or
000190: 20 72 65 6E 61 6D 65 20 61 20 66 69 6C 65 20 74 rename a file t
0001A0: 68 61 74 20 64 6F 65 73 0D 0A 20 20 20 20 20 20 hat does..
0001B0: 20 6E 6F 74 20 65 78 69 73 74 2E 0D 0A 0D 0A 20 not exist.....
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 D
0001D0: 72 69 76 65 20 3C 64 72 69 76 65 3E 3A 20 64 69 rive <drive>: di
0001E0: 72 65 63 74 6F 72 79 20 66 75 6C 6C 0D 0A 0D 0A rectory full....
0001F0: 20 20 20 20 20 20 20 54 68 65 72 65 20 69 73 20 There is
Size : 512 (Real : 512)
000000: 6E 6F 20 6D 6F 72 65 20 66 72 65 65 20 64 69 72 no more free dir
000010: 65 63 74 6F 72 79 20 20 65 6E 74 72 69 65 73 20 ectory entries
000020: 20 28 36 34 20 20 64 69 72 65 63 74 6F 72 79 20 (64 directory
000030: 20 65 6E 74 72 69 65 73 20 20 70 65 72 0D 0A 20 entries per..
000040: 20 20 20 20 20 20 64 69 73 63 29 2E 0D 0A 0D 0A disc).....
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 44 72 69 76 65 20 3C 64 72 69 76 65 3E 3A 20 64 Drive <drive>: d
000070: 69 73 63 20 66 75 6C 6C 0D 0A 0D 0A 20 20 20 20 isc full....
000080: 20 20 20 54 68 65 72 65 20 69 73 20 6E 6F 20 6D There is no m
000090: 6F 72 65 20 66 72 65 65 20 64 69 73 63 20 62 6C ore free disc bl
0000A0: 6F 63 6B 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ocks.....
0000B0: 20 20 20 20 20 20 20 20 20 44 72 69 76 65 20 3C Drive <
0000C0: 64 72 69 76 65 3E 3A 20 64 69 73 63 20 63 68 61 drive>: disc cha
0000D0: 6E 67 65 64 2C 20 63 6C 6F 73 69 6E 67 20 3C 66 nged, closing <f
0000E0: 69 6C 65 6E 61 6D 65 3E 0D 0A 0D 0A 20 20 20 20 ilename>....
0000F0: 20 20 20 54 68 65 20 75 73 65 72 20 68 61 73 20 The user has
000100: 63 68 61 6E 67 65 64 20 74 68 65 20 64 69 73 63 changed the disc
000110: 20 77 68 69 6C 65 20 66 69 6C 65 73 20 77 65 72 while files wer
000120: 65 20 73 74 69 6C 6C 20 6F 70 65 6E 20 6F 6E 20 e still open on
000130: 69 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 it.....
000140: 20 20 20 20 20 20 20 3C 66 69 6C 65 6E 61 6D 65 <filename
000150: 3E 20 69 73 20 72 65 61 64 20 6F 6E 6C 79 0D 0A > is read only..
000160: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 75 73 65 .. The use
000170: 72 20 69 73 20 20 74 72 79 69 6E 67 20 20 74 6F r is trying to
000180: 20 20 65 72 61 73 65 20 20 6F 72 20 20 72 65 6E erase or ren
000190: 61 6D 65 20 20 61 20 20 66 69 6C 65 20 20 77 68 ame a file wh
0001A0: 69 63 68 20 20 69 73 20 20 6D 61 72 6B 65 64 0D ich is marked.
0001B0: 0A 20 20 20 20 20 20 20 72 65 61 64 2D 6F 6E 6C . read-onl
0001C0: 79 2E 20 4D 61 79 20 61 6C 73 6F 20 62 65 20 63 y. May also be c
0001D0: 61 75 73 65 64 20 62 79 20 63 6C 6F 73 69 6E 67 aused by closing
0001E0: 20 61 20 66 69 6C 65 20 77 68 65 6E 20 65 78 69 a file when exi
0001F0: 73 74 69 6E 67 20 20 76 65 72 73 69 6F 6E 0D 0A sting version..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 6F 66 20 74 68 65 20 66 69 of the fi
000010: 6C 65 20 69 73 20 72 65 61 64 2D 6F 6E 6C 79 2E le is read-only.
000020: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
000030: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
000040: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
000070: 65 20 39 2E 38 0D 0A 1A 74 65 72 2C 20 6F 66 20 e 9.8...ter, of
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000010: 20 20 20 39 2E 37 20 42 49 4F 53 20 46 61 63 69 9.7 BIOS Faci
000020: 6C 69 74 69 65 73 20 41 76 61 69 6C 61 62 6C 65 lities Available
000030: 20 74 6F 20 41 4D 53 44 4F 53 0D 0A 0D 0A 20 20 to AMSDOS....
000040: 20 20 20 20 20 41 4D 53 44 4F 53 20 75 73 65 73 AMSDOS uses
000050: 20 74 68 65 20 43 50 2F 4D 20 42 49 4F 53 20 32 the CP/M BIOS 2
000060: 2E 32 20 74 6F 20 61 63 63 65 73 73 20 74 68 65 .2 to access the
000070: 20 20 64 69 73 63 2E 20 20 49 6E 20 20 6F 72 64 disc. In ord
000080: 65 72 20 20 74 68 61 74 20 20 61 0D 0A 20 20 20 er that a..
000090: 20 20 20 20 70 72 6F 67 72 61 6D 20 72 75 6E 6E program runn
0000A0: 69 6E 67 20 75 6E 64 65 72 20 41 4D 53 44 4F 53 ing under AMSDOS
0000B0: 20 6D 61 79 20 61 63 63 65 73 73 20 74 68 65 20 may access the
0000C0: 64 69 73 63 20 64 69 72 65 63 74 6C 79 20 6E 69 disc directly ni
0000D0: 6E 65 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 ne of the..
0000E0: 20 20 20 42 49 4F 53 20 65 78 74 65 6E 64 65 64 BIOS extended
0000F0: 20 6A 75 6D 70 62 6C 6F 63 6B 20 20 72 6F 75 74 jumpblock rout
000100: 69 6E 65 73 20 20 61 72 65 20 20 61 76 61 69 6C ines are avail
000110: 61 62 6C 65 2E 20 20 54 68 65 20 20 72 6F 75 74 able. The rout
000120: 69 6E 65 73 20 20 61 72 65 0D 0A 20 20 20 20 20 ines are..
000130: 20 20 61 63 63 65 73 73 65 64 20 61 73 20 65 78 accessed as ex
000140: 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 73 2E ternal commands.
000150: 20 41 6E 20 65 78 61 6D 70 6C 65 20 6F 66 20 75 An example of u
000160: 73 69 6E 67 20 74 68 65 73 65 20 20 63 6F 6D 6D sing these comm
000170: 61 6E 64 73 20 20 69 73 0D 0A 20 20 20 20 20 20 ands is..
000180: 20 67 69 76 65 6E 20 69 6E 20 73 65 63 74 69 6F given in sectio
000190: 6E 20 31 30 2E 36 2E 0D 0A 0D 0A 20 20 20 20 20 n 10.6.....
0001A0: 20 20 4E 6F 74 65 3A 20 54 68 65 20 42 49 4F 53 Note: The BIOS
0001B0: 20 65 78 74 65 6E 64 65 64 20 6A 75 6D 70 62 6C extended jumpbl
0001C0: 6F 63 6B 20 69 74 73 65 6C 66 20 69 73 20 6E 6F ock itself is no
0001D0: 74 20 61 76 61 69 6C 61 62 6C 65 2C 20 20 69 6E t available, in
0001E0: 64 65 65 64 20 20 69 74 0D 0A 0D 0A 20 20 20 20 deed it....
0001F0: 20 20 20 64 6F 65 73 20 6E 6F 74 20 65 78 69 73 does not exis
Size : 512 (Real : 512)
000000: 74 20 69 6E 20 74 68 65 20 41 4D 53 44 4F 53 20 t in the AMSDOS
000010: 65 6E 76 69 72 6F 6E 6D 65 6E 74 2E 0D 0A 0D 0A environment.....
000020: 20 20 20 20 20 20 20 54 68 65 20 42 49 4F 53 20 The BIOS
000030: 72 6F 75 74 69 6E 65 73 20 61 76 61 69 6C 61 62 routines availab
000040: 6C 65 20 61 6E 64 20 74 68 65 69 72 20 63 6F 6D le and their com
000050: 6D 61 6E 64 20 6E 61 6D 65 73 20 61 72 65 20 61 mand names are a
000060: 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 20 s follows:....
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 45 SE
000080: 54 20 4D 45 53 53 41 47 45 20 20 20 20 20 20 20 T MESSAGE
000090: 20 20 20 20 20 20 20 20 20 20 20 20 43 74 72 6C Ctrl
0000A0: 20 28 23 30 31 29 0D 0A 20 20 20 20 20 20 20 20 (#01)..
0000B0: 20 20 20 20 20 20 20 20 53 45 54 55 50 20 44 49 SETUP DI
0000C0: 53 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 SC
0000D0: 20 20 20 20 20 20 43 74 72 6C 20 28 23 30 32 29 Ctrl (#02)
0000E0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0000F0: 20 20 53 45 4C 45 43 54 20 46 4F 52 4D 41 54 20 SELECT FORMAT
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 43 74 72 6C 20 28 23 30 33 29 0D 0A 20 20 20 20 Ctrl (#03)..
000120: 20 20 20 20 20 20 20 20 20 20 20 20 52 45 41 44 READ
000130: 20 53 45 43 54 4F 52 20 20 20 20 20 20 20 20 20 SECTOR
000140: 20 20 20 20 20 20 20 20 20 20 43 74 72 6C 20 28 Ctrl (
000150: 23 30 34 29 0D 0A 20 20 20 20 20 20 20 20 20 20 #04)..
000160: 20 20 20 20 20 20 57 52 49 54 45 20 53 45 43 54 WRITE SECT
000170: 4F 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 OR
000180: 20 20 20 20 43 74 72 6C 20 28 23 30 35 29 0D 0A Ctrl (#05)..
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001A0: 46 4F 52 4D 41 54 20 54 52 41 43 4B 20 20 20 20 FORMAT TRACK
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 74 Ct
0001C0: 72 6C 20 28 23 30 36 29 0D 0A 20 20 20 20 20 20 rl (#06)..
0001D0: 20 20 20 20 20 20 20 20 20 20 4D 4F 56 45 20 54 MOVE T
0001E0: 52 41 43 4B 20 20 20 20 20 20 20 20 20 20 20 20 RACK
0001F0: 20 20 20 20 20 20 20 20 43 74 72 6C 20 28 23 30 Ctrl (#0
Size : 512 (Real : 512)
000000: 37 29 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 7)..
000010: 20 20 20 20 47 45 54 20 44 52 20 53 54 41 54 55 GET DR STATU
000020: 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 S
000030: 20 20 43 74 72 6C 20 28 23 30 38 29 0D 0A 20 20 Ctrl (#08)..
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 45 SE
000050: 54 20 52 45 54 52 59 20 43 4F 55 4E 54 20 20 20 T RETRY COUNT
000060: 20 20 20 20 20 20 20 20 20 20 20 20 43 74 72 6C Ctrl
000070: 20 28 23 30 39 29 0D 0A 0D 0A 20 20 20 20 20 20 (#09)....
000080: 20 54 68 65 73 65 20 72 6F 75 74 69 6E 65 73 20 These routines
000090: 61 72 65 20 64 65 73 63 72 69 62 65 64 20 69 6E are described in
0000A0: 20 73 65 63 74 69 6F 6E 20 31 39 2E 0D 0A 0D 0A section 19.....
0000B0: 20 20 20 20 20 20 20 54 68 65 20 77 6F 72 64 20 The word
0000C0: 61 74 20 23 42 45 34 30 20 63 6F 6E 74 61 69 6E at #BE40 contain
0000D0: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 s the address of
0000E0: 20 74 68 65 20 20 64 69 73 63 20 20 70 61 72 61 the disc para
0000F0: 6D 65 74 65 72 20 20 68 65 61 64 65 72 0D 0A 20 meter header..
000100: 20 20 20 20 20 20 76 65 63 74 6F 72 2E 20 44 69 vector. Di
000110: 73 63 20 70 61 72 61 6D 65 74 65 72 20 68 65 61 sc parameter hea
000120: 64 65 72 73 20 61 6E 64 20 65 78 74 65 6E 64 65 ders and extende
000130: 64 20 64 69 73 63 20 70 61 72 61 6D 65 74 65 72 d disc parameter
000140: 20 62 6C 6F 63 6B 73 20 20 6D 61 79 0D 0A 20 20 blocks may..
000150: 20 20 20 20 20 62 65 20 70 61 74 63 68 65 64 20 be patched
000160: 61 73 20 72 65 71 75 69 72 65 64 20 28 73 65 65 as required (see
000170: 20 73 65 63 74 69 6F 6E 20 39 2E 38 29 2E 0D 0A section 9.8)...
000180: 0D 0A 0D 0A 20 20 20 20 20 20 20 4F 6E 6C 79 20 .... Only
000190: 74 68 65 20 42 49 4F 53 20 66 61 63 69 6C 69 74 the BIOS facilit
0001A0: 69 65 73 20 6D 65 6E 74 69 6F 6E 65 64 20 68 65 ies mentioned he
0001B0: 72 65 20 6D 61 79 20 62 65 20 20 75 73 65 64 20 re may be used
0001C0: 20 66 72 6F 6D 20 20 61 20 20 70 72 6F 67 72 61 from a progra
0001D0: 6D 0D 0A 20 20 20 20 20 20 20 72 75 6E 6E 69 6E m.. runnin
0001E0: 67 20 75 6E 64 65 72 20 41 4D 53 44 4F 53 2E 0D g under AMSDOS..
0001F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 39 2E 38 20 ..... 9.8
Size : 512 (Real : 512)
000000: 53 74 6F 72 65 20 72 65 71 75 69 72 65 6D 65 6E Store requiremen
000010: 74 73 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 ts...... W
000020: 68 65 6E 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 hen initialized
000030: 41 4D 53 44 4F 53 20 72 65 73 65 72 76 65 73 20 AMSDOS reserves
000040: 23 35 30 30 20 62 79 74 65 73 20 6F 66 20 6D 65 #500 bytes of me
000050: 6D 6F 72 79 20 66 72 6F 6D 20 74 68 65 20 20 6D mory from the m
000060: 65 6D 6F 72 79 0D 0A 20 20 20 20 20 20 20 70 6F emory.. po
000070: 6F 6C 20 61 6E 64 20 74 68 65 20 6B 65 72 6E 65 ol and the kerne
000080: 6C 20 20 72 65 73 65 72 76 65 73 20 20 61 6E 6F l reserves ano
000090: 74 68 65 72 20 20 34 20 20 66 6F 72 20 20 69 74 ther 4 for it
0000A0: 73 20 20 65 78 74 65 72 6E 61 6C 20 20 63 6F 6D s external com
0000B0: 6D 61 6E 64 0D 0A 20 20 20 20 20 20 20 63 68 61 mand.. cha
0000C0: 69 6E 69 6E 67 20 69 6E 66 6F 72 6D 61 74 69 6F ining informatio
0000D0: 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 n....... W
0000E0: 68 65 6E 20 6C 6F 61 64 69 6E 67 20 61 20 6D 61 hen loading a ma
0000F0: 63 68 69 6E 65 20 63 6F 64 65 20 70 72 6F 67 72 chine code progr
000100: 61 6D 20 66 72 6F 6D 20 64 69 73 63 20 20 69 6E am from disc in
000110: 74 6F 20 20 73 74 6F 72 65 20 20 75 73 69 6E 67 to store using
000120: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 41 4D the.. AM
000130: 53 44 4F 53 20 72 6F 75 74 69 6E 65 20 43 41 53 SDOS routine CAS
000140: 20 49 4E 20 44 49 52 45 43 54 20 69 74 20 69 73 IN DIRECT it is
000150: 20 69 6D 70 6F 72 74 61 6E 74 20 74 68 61 74 20 important that
000160: 20 41 4D 53 44 4F 53 27 73 20 20 76 61 72 69 61 AMSDOS's varia
000170: 62 6C 65 73 0D 0A 20 20 20 20 20 20 20 61 72 65 bles.. are
000180: 20 6E 6F 74 20 6F 76 65 72 77 72 69 74 74 65 6E not overwritten
000190: 2E 20 54 68 69 73 20 70 72 65 73 65 6E 74 73 20 . This presents
0001A0: 61 20 70 72 6F 62 6C 65 6D 20 73 69 6E 63 65 20 a problem since
0001B0: 69 6E 20 20 67 65 6E 65 72 61 6C 20 20 69 74 20 in general it
0001C0: 20 69 73 0D 0A 20 20 20 20 20 20 20 6E 6F 74 20 is.. not
0001D0: 70 6F 73 73 69 62 6C 65 20 74 6F 20 64 69 73 63 possible to disc
0001E0: 6F 76 65 72 20 77 68 65 72 65 20 74 68 65 73 65 over where these
0001F0: 20 76 61 72 69 61 62 6C 65 73 20 61 72 65 21 20 variables are!
Size : 512 (Real : 512)
000000: 20 54 68 69 73 20 20 69 73 20 20 62 65 63 61 75 This is becau
000010: 73 65 0D 0A 20 20 20 20 20 20 20 76 61 72 69 61 se.. varia
000020: 62 6C 65 73 20 66 6F 72 20 65 78 70 61 6E 73 69 bles for expansi
000030: 6F 6E 20 52 4F 4D 73 20 61 72 65 20 61 6C 6C 6F on ROMs are allo
000040: 63 61 74 65 64 20 64 79 6E 61 6D 69 63 61 6C 6C cated dynamicall
000050: 79 2E 20 4E 6F 74 65 20 74 68 61 74 20 74 68 69 y. Note that thi
000060: 73 0D 0A 20 20 20 20 20 20 20 70 72 6F 62 6C 65 s.. proble
000070: 6D 20 64 6F 65 73 20 6E 6F 74 20 61 72 69 73 65 m does not arise
000080: 20 20 77 68 65 6E 20 20 6C 6F 61 64 69 6E 67 20 when loading
000090: 20 66 72 6F 6D 20 20 74 68 65 20 20 63 61 73 73 from the cass
0000A0: 65 74 74 65 20 20 73 69 6E 63 65 20 20 74 68 65 ette since the
0000B0: 0D 0A 20 20 20 20 20 20 20 63 61 73 73 65 74 74 .. cassett
0000C0: 65 20 6D 61 6E 61 67 65 72 27 73 20 76 61 72 69 e manager's vari
0000D0: 61 62 6C 65 73 20 61 72 65 20 69 6E 20 74 68 65 ables are in the
0000E0: 20 66 69 72 6D 77 61 72 65 20 76 61 72 69 61 62 firmware variab
0000F0: 6C 65 20 61 72 65 61 2E 0D 0A 0D 0A 0D 0A 20 20 le area.......
000100: 20 20 20 20 20 41 4D 53 44 4F 53 20 72 65 73 65 AMSDOS rese
000110: 72 76 65 73 20 73 74 6F 72 65 20 66 72 6F 6D 20 rves store from
000120: 74 68 65 20 74 6F 70 20 6F 66 20 20 6D 65 6D 6F the top of memo
000130: 72 79 20 20 70 6F 6F 6C 20 20 73 6F 20 20 74 68 ry pool so th
000140: 65 20 20 73 69 6D 70 6C 65 73 74 0D 0A 20 20 20 e simplest..
000150: 20 20 20 20 73 6F 6C 75 74 69 6F 6E 20 69 73 20 solution is
000160: 74 6F 20 61 6C 77 61 79 73 20 6C 6F 61 64 20 6D to always load m
000170: 61 63 68 69 6E 65 20 63 6F 64 65 20 70 72 6F 67 achine code prog
000180: 72 61 6D 73 20 69 6E 74 6F 20 20 74 68 65 20 20 rams into the
000190: 62 6F 74 74 6F 6D 20 20 6F 66 0D 0A 20 20 20 20 bottom of..
0001A0: 20 20 20 73 74 6F 72 65 2E 20 54 68 65 20 70 72 store. The pr
0001B0: 6F 67 72 61 6D 20 63 61 6E 20 74 68 65 6E 20 72 ogram can then r
0001C0: 65 6C 6F 63 61 74 65 20 69 74 73 65 6C 66 20 74 elocate itself t
0001D0: 6F 20 20 61 20 20 68 69 67 68 65 72 20 20 61 64 o a higher ad
0001E0: 64 72 65 73 73 20 20 69 66 0D 0A 20 20 20 20 20 dress if..
0001F0: 20 20 72 65 71 75 69 72 65 64 2E 0D 0A 0D 0A 0D required......
Size : 512 (Real : 512)
000000: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
000010: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
000020: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 20 20 20 20 20 70 61 67 65 20 39 2E 39 page 9.9
000050: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
000060: 20 20 20 20 20 41 6C 74 65 72 6E 61 74 69 76 65 Alternative
000070: 6C 79 20 74 68 65 20 6D 61 63 68 69 6E 65 20 63 ly the machine c
000080: 6F 64 65 20 70 72 6F 67 72 61 6D 20 63 6F 75 6C ode program coul
000090: 64 20 62 65 20 6C 6F 61 64 65 64 20 69 6E 20 74 d be loaded in t
0000A0: 77 6F 20 20 73 74 61 67 65 73 3A 0D 0A 20 20 20 wo stages:..
0000B0: 20 20 20 20 66 69 72 73 74 20 6C 6F 61 64 20 61 first load a
0000C0: 6E 64 20 72 75 6E 20 61 20 73 6D 61 6C 6C 20 6C nd run a small l
0000D0: 6F 61 64 65 72 20 69 6E 20 74 68 65 20 62 6F 74 oader in the bot
0000E0: 74 6F 6D 20 6F 66 20 73 74 6F 72 65 2E 20 20 54 tom of store. T
0000F0: 68 65 20 20 61 63 74 69 6F 6E 0D 0A 20 20 20 20 he action..
000100: 20 20 20 6F 66 20 4D 43 20 42 4F 4F 54 20 50 52 of MC BOOT PR
000110: 4F 47 52 41 4D 20 77 69 6C 6C 20 68 61 76 65 20 OGRAM will have
000120: 73 68 75 74 20 64 6F 77 6E 20 61 6C 6C 20 52 53 shut down all RS
000130: 58 73 20 20 61 6E 64 20 20 65 78 74 65 6E 73 69 Xs and extensi
000140: 6F 6E 20 20 52 4F 4D 73 2E 0D 0A 20 20 20 20 20 on ROMs...
000150: 20 20 54 68 65 20 6C 6F 61 64 65 72 20 70 72 6F The loader pro
000160: 67 72 61 6D 20 73 68 6F 75 6C 64 20 6E 6F 77 20 gram should now
000170: 69 6E 69 74 69 61 6C 69 7A 65 20 41 4D 53 44 4F initialize AMSDO
000180: 53 20 20 75 73 69 6E 67 20 20 4B 4C 20 20 49 4E S using KL IN
000190: 49 54 20 20 42 41 43 4B 0D 0A 20 20 20 20 20 20 IT BACK..
0001A0: 20 74 68 75 73 20 66 6F 72 63 69 6E 67 20 41 4D thus forcing AM
0001B0: 53 44 4F 53 20 76 61 72 69 61 62 6C 65 73 20 74 SDOS variables t
0001C0: 6F 20 62 65 20 77 68 65 72 65 76 65 72 20 79 6F o be wherever yo
0001D0: 75 20 73 6F 20 77 69 73 68 2E 20 20 54 68 65 20 u so wish. The
0001E0: 20 6C 6F 61 64 65 72 0D 0A 20 20 20 20 20 20 20 loader..
0001F0: 63 61 6E 20 6E 6F 77 20 6C 6F 61 64 20 74 68 65 can now load the
Size : 512 (Real : 512)
000000: 20 6D 61 63 68 69 6E 65 20 63 6F 64 65 20 70 72 machine code pr
000010: 6F 67 72 61 6D 20 75 73 69 6E 67 20 74 68 65 20 ogram using the
000020: 41 4D 53 44 4F 53 20 72 6F 75 74 69 6E 65 73 20 AMSDOS routines
000030: 43 41 53 20 49 4E 0D 0A 20 20 20 20 20 20 20 4F CAS IN.. O
000040: 50 45 4E 2C 20 43 41 53 20 49 4E 20 44 49 52 45 PEN, CAS IN DIRE
000050: 43 54 2C 20 61 6E 64 20 43 41 53 20 49 4E 20 43 CT, and CAS IN C
000060: 4C 4F 53 45 20 74 6F 67 65 74 68 65 72 20 77 69 LOSE together wi
000070: 74 68 20 4D 43 20 53 54 41 52 54 20 50 52 4F 47 th MC START PROG
000080: 52 41 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 RAM..... I
000090: 6E 20 6F 72 64 65 72 20 74 6F 20 69 6E 69 74 69 n order to initi
0000A0: 61 6C 69 7A 65 20 41 4D 53 44 4F 53 20 75 73 69 alize AMSDOS usi
0000B0: 6E 67 20 4B 4C 20 49 4E 49 54 20 42 41 43 4B 2C ng KL INIT BACK,
0000C0: 20 41 4D 53 44 4F 53 27 73 20 52 4F 4D 20 20 6E AMSDOS's ROM n
0000D0: 75 6D 62 65 72 0D 0A 20 20 20 20 20 20 20 69 73 umber.. is
0000E0: 20 72 65 71 75 69 72 65 64 2E 20 54 6F 20 64 65 required. To de
0000F0: 74 65 72 6D 69 6E 65 20 41 4D 53 44 4F 53 27 73 termine AMSDOS's
000100: 20 52 4F 4D 20 20 6E 75 6D 62 65 72 20 20 6C 6F ROM number lo
000110: 6F 6B 20 20 61 74 20 20 61 6E 79 20 20 6F 66 20 ok at any of
000120: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 69 6E 74 the.. int
000130: 65 72 63 65 70 74 65 64 20 20 63 61 73 73 65 74 ercepted casset
000140: 74 65 20 20 6A 75 6D 70 62 6C 6F 63 6B 20 20 65 te jumpblock e
000150: 6E 74 72 69 65 73 20 20 77 69 74 68 20 20 74 68 ntries with th
000160: 65 20 20 20 44 49 53 43 20 20 20 72 6F 75 74 69 e DISC routi
000170: 6E 65 73 0D 0A 20 20 20 20 20 20 20 73 65 6C 65 nes.. sele
000180: 63 74 65 64 2E 20 45 61 63 68 20 65 6E 74 72 79 cted. Each entry
000190: 20 69 73 20 61 20 66 61 72 20 63 61 6C 6C 2C 20 is a far call,
0001A0: 74 68 65 20 61 64 64 72 65 73 73 20 70 61 72 74 the address part
0001B0: 20 6F 66 20 20 77 68 69 63 68 20 20 70 6F 69 6E of which poin
0001C0: 74 73 0D 0A 20 20 20 20 20 20 20 61 74 20 61 20 ts.. at a
0001D0: 74 68 72 65 65 20 62 79 74 65 20 66 61 72 20 61 three byte far a
0001E0: 64 64 72 65 73 73 2C 20 74 68 65 20 74 68 69 72 ddress, the thir
0001F0: 64 20 70 61 72 74 20 6F 66 20 74 68 65 20 66 61 d part of the fa
Size : 512 (Real : 512)
000000: 72 20 61 64 64 72 65 73 73 20 69 73 20 20 74 68 r address is th
000010: 65 0D 0A 20 20 20 20 20 20 20 52 4F 4D 20 6E 75 e.. ROM nu
000020: 6D 62 65 72 2E 20 4F 62 76 69 6F 75 73 6C 79 20 mber. Obviously
000030: 74 68 69 73 20 73 68 6F 75 6C 64 20 62 65 20 64 this should be d
000040: 6F 6E 65 20 62 65 66 6F 72 65 20 41 4D 53 44 4F one before AMSDO
000050: 53 20 69 73 20 73 68 75 74 20 64 6F 6E 65 2E 0D S is shut done..
000060: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 73 74 69 ... Existi
000070: 6E 67 20 6D 61 63 68 69 6E 65 20 63 6F 64 65 20 ng machine code
000080: 70 72 6F 67 72 61 6D 73 2C 20 64 65 76 65 6C 6F programs, develo
000090: 70 65 64 20 6F 6E 20 63 61 73 73 65 74 74 65 20 ped on cassette
0000A0: 73 79 73 74 65 6D 73 20 20 77 69 74 68 6F 75 74 systems without
0000B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 61 6E 79 20 65 .... any e
0000C0: 78 70 61 6E 73 69 6F 6E 20 52 4F 4D 73 2C 20 66 xpansion ROMs, f
0000D0: 72 65 71 75 65 6E 74 6C 79 20 6F 6E 6C 79 20 75 requently only u
0000E0: 73 65 20 73 74 6F 72 65 20 74 6F 20 20 23 41 42 se store to #AB
0000F0: 46 46 20 20 69 6E 20 20 6F 72 64 65 72 20 20 74 FF in order t
000100: 6F 0D 0A 20 20 20 20 20 20 20 61 76 6F 69 64 20 o.. avoid
000110: 42 41 53 49 43 73 20 76 61 72 69 61 62 6C 65 73 BASICs variables
000120: 2E 20 54 68 65 73 65 20 63 61 6E 20 65 61 73 69 . These can easi
000130: 6C 79 20 62 65 20 6D 6F 64 69 66 69 65 64 20 20 ly be modified
000140: 74 6F 20 20 75 73 65 20 20 41 4D 53 44 4F 53 2E to use AMSDOS.
000150: 0D 0A 20 20 20 20 20 20 20 57 72 69 74 65 20 73 .. Write s
000160: 6F 6D 65 20 6D 61 63 68 69 6E 65 20 63 6F 64 65 ome machine code
000170: 20 74 6F 20 20 69 6E 69 74 69 61 6C 69 7A 65 20 to initialize
000180: 20 41 4D 53 44 4F 53 20 20 75 73 69 6E 67 20 20 AMSDOS using
000190: 4B 4C 20 20 49 4E 49 54 20 20 42 41 43 4B 2E 0D KL INIT BACK..
0001A0: 0A 20 20 20 20 20 20 20 41 4D 53 44 4F 53 20 77 . AMSDOS w
0001B0: 69 6C 6C 20 72 65 73 65 72 76 65 20 52 41 4D 20 ill reserve RAM
0001C0: 64 6F 77 6E 20 74 6F 20 23 41 42 46 43 2C 20 61 down to #ABFC, a
0001D0: 6C 6D 6F 73 74 20 20 74 68 65 20 20 73 61 6D 65 lmost the same
0001E0: 20 20 61 73 20 20 75 73 65 64 20 20 62 79 0D 0A as used by..
0001F0: 20 20 20 20 20 20 20 42 41 53 49 43 2E 0D 0A 0D BASIC....
Size : 512 (Real : 512)
000000: 0A 20 20 20 20 20 20 20 39 2E 39 20 45 78 74 65 . 9.9 Exte
000010: 6E 64 65 64 20 44 69 73 63 20 50 61 72 61 6D 65 nded Disc Parame
000020: 74 65 72 20 42 6C 6F 63 6B 73 0D 0A 0D 0A 20 20 ter Blocks....
000030: 20 20 20 20 20 49 6E 20 20 6F 72 64 65 72 20 20 In order
000040: 74 6F 20 20 66 61 63 69 6C 69 74 61 74 65 20 20 to facilitate
000050: 72 65 61 64 69 6E 67 20 20 61 6E 64 20 20 77 72 reading and wr
000060: 69 74 69 6E 67 20 20 27 66 6F 72 65 69 67 6E 27 iting 'foreign'
000070: 20 20 64 69 73 63 73 20 20 6F 66 0D 0A 20 20 20 discs of..
000080: 20 20 20 20 64 69 66 66 65 72 69 6E 67 20 66 6F differing fo
000090: 72 6D 61 74 73 2C 20 61 6C 6C 20 74 68 65 20 70 rmats, all the p
0000A0: 61 72 61 6D 65 74 65 72 73 20 63 6F 6E 63 65 72 arameters concer
0000B0: 6E 69 6E 67 20 61 20 64 72 69 76 65 20 61 72 65 ning a drive are
0000C0: 20 20 6B 65 70 74 20 20 69 6E 0D 0A 20 20 20 20 kept in..
0000D0: 20 20 20 52 41 4D 20 69 6E 20 61 6E 20 65 78 74 RAM in an ext
0000E0: 65 6E 64 65 64 20 43 50 2F 4D 20 64 69 73 63 20 ended CP/M disc
0000F0: 70 61 72 61 6D 65 74 65 72 20 62 6C 6F 63 6B 20 parameter block
000100: 28 58 50 42 29 2E 20 20 54 68 65 20 20 6B 6E 6F (XPB). The kno
000110: 77 6C 65 64 67 61 62 6C 65 0D 0A 20 20 20 20 20 wledgable..
000120: 20 20 75 73 65 72 20 6D 61 79 20 70 61 74 63 68 user may patch
000130: 20 61 6E 20 58 50 42 2E 0D 0A 0D 0A 0D 0A 20 20 an XPB.......
000140: 20 20 20 20 20 54 68 65 72 65 20 61 72 65 20 74 There are t
000150: 77 6F 20 58 50 42 73 2C 20 6F 6E 65 20 70 65 72 wo XPBs, one per
000160: 20 64 72 69 76 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 drive.......
000170: 20 20 20 20 58 50 42 20 73 74 72 75 63 74 75 72 XPB structur
000180: 65 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 62 e:...... b
000190: 79 74 65 73 20 30 2E 2E 2E 31 34 3A 20 20 20 20 ytes 0...14:
0001A0: 20 20 20 73 74 61 6E 64 61 72 64 20 43 50 2F 4D standard CP/M
0001B0: 20 32 2E 32 20 44 50 42 20 28 73 65 65 20 62 65 2.2 DPB (see be
0001C0: 6C 6F 77 29 2E 0D 0A 20 20 20 20 20 20 20 62 79 low)... by
0001D0: 74 65 20 20 31 35 3A 20 20 20 20 20 20 20 20 20 te 15:
0001E0: 20 20 66 69 72 73 74 20 73 65 63 74 6F 72 20 6E first sector n
0001F0: 75 6D 62 65 72 2E 0D 0A 20 20 20 20 20 20 20 20 umber...
Size : 512 (Real : 512)
000000: 20 20 20 20 20 31 36 3A 20 20 20 20 20 20 20 20 16:
000010: 20 20 20 6E 75 6D 62 65 72 20 6F 66 20 73 65 63 number of sec
000020: 74 6F 72 73 20 70 65 72 20 74 72 61 63 6B 2E 0D tors per track..
000030: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 31 37 . 17
000040: 3A 20 20 20 20 20 20 20 20 20 20 20 67 61 70 20 : gap
000050: 6C 65 6E 67 74 68 20 28 72 65 61 64 2F 77 72 69 length (read/wri
000060: 74 65 29 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 te)...
000070: 20 20 20 31 38 3A 20 20 20 20 20 20 20 20 20 20 18:
000080: 20 67 61 70 20 6C 65 6E 67 74 68 20 28 66 6F 72 gap length (for
000090: 6D 61 74 29 2E 0D 0A 20 20 20 20 20 20 20 20 20 mat)...
0000A0: 20 20 20 20 31 39 3A 20 20 20 20 20 20 20 20 20 19:
0000B0: 20 20 66 69 6C 6C 65 72 20 62 79 74 65 20 66 6F filler byte fo
0000C0: 72 20 66 6F 72 6D 61 74 74 69 6E 67 2E 0D 0A 20 r formatting...
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 32 30 3A 20 20:
0000E0: 20 20 20 20 20 20 20 20 20 20 6C 6F 67 28 32 29 log(2)
0000F0: 28 73 65 63 74 6F 72 20 73 69 7A 65 29 2D 37 2C (sector size)-7,
000100: 27 4E 27 20 66 6F 72 20 75 50 44 37 36 35 41 2E 'N' for uPD765A.
000110: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 32 .. 2
000120: 31 3A 20 20 20 20 20 20 20 20 20 20 20 73 65 63 1: sec
000130: 74 6F 72 20 73 69 7A 65 2F 31 32 38 0D 0A 20 20 tor size/128..
000140: 20 20 20 20 20 20 20 20 20 20 20 32 32 3A 20 20 22:
000150: 20 20 20 20 20 20 20 20 20 72 65 73 65 72 76 65 reserve
000160: 64 3A 20 63 75 72 72 65 6E 74 20 74 72 61 63 6B d: current track
000170: 20 28 73 65 74 20 62 79 20 42 49 4F 53 29 2E 0D (set by BIOS)..
000180: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 32 33 . 23
000190: 3A 20 20 20 20 20 20 20 20 20 20 20 72 65 73 65 : rese
0001A0: 72 76 65 64 3A 20 23 30 30 2D 2D 3E 6E 6F 74 20 rved: #00-->not
0001B0: 61 6C 69 67 6E 65 64 2C 20 23 46 46 2D 2D 3E 61 aligned, #FF-->a
0001C0: 6C 69 67 6E 65 64 20 28 73 65 74 20 62 79 0D 0A ligned (set by..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 20 20 20 42 49 4F 53 29 BIOS)
0001F0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 32 .. 2
Size : 512 (Real : 512)
000000: 34 3A 20 20 20 20 20 20 20 20 20 20 20 23 30 30 4: #00
000010: 2D 2D 3E 61 75 74 6F 2D 73 65 6C 65 63 74 20 66 -->auto-select f
000020: 6F 72 6D 61 74 2C 20 23 46 46 2D 2D 3E 64 6F 6E ormat, #FF-->don
000030: 27 74 20 20 61 75 74 6F 2D 73 65 6C 65 63 74 0D 't auto-select.
000040: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000050: 20 20 20 20 20 20 20 20 20 20 20 20 66 6F 72 6D form
000060: 61 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 at.......
000070: 54 68 65 20 58 50 42 20 66 6F 72 20 61 20 64 72 The XPB for a dr
000080: 69 76 65 20 6D 61 79 20 62 65 20 20 66 6F 75 6E ive may be foun
000090: 64 20 20 62 79 20 20 61 63 63 65 73 73 69 6E 67 d by accessing
0000A0: 20 20 74 68 65 20 20 44 69 73 63 20 20 50 61 72 the Disc Par
0000B0: 61 6D 65 74 65 72 0D 0A 20 20 20 20 20 20 20 48 ameter.. H
0000C0: 65 61 64 65 72 20 28 44 50 48 29 20 76 65 63 74 eader (DPH) vect
0000D0: 6F 72 2E 20 54 68 65 20 66 69 72 73 74 20 77 6F or. The first wo
0000E0: 72 64 20 6F 66 20 74 68 65 20 44 50 48 20 69 73 rd of the DPH is
0000F0: 20 74 68 65 20 61 64 64 72 65 73 73 20 20 6F 66 the address of
000100: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 58 50 the.. XP
000110: 42 20 66 6F 72 20 64 72 69 76 65 20 41 2C 20 74 B for drive A, t
000120: 68 65 20 73 65 63 6F 6E 64 20 77 6F 72 64 20 69 he second word i
000130: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 s the address of
000140: 20 74 68 65 20 58 50 42 20 20 66 6F 72 20 20 64 the XPB for d
000150: 72 69 76 65 0D 0A 20 20 20 20 20 20 20 42 2E 20 rive.. B.
000160: 54 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 The address of t
000170: 68 65 20 44 50 48 20 69 73 20 73 74 6F 72 65 64 he DPH is stored
000180: 20 61 74 20 6C 6F 63 61 74 69 6F 6E 20 23 42 45 at location #BE
000190: 34 30 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 40.........
0001A0: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
0001B0: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
0001C0: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
0001E0: 61 67 65 20 39 2E 31 30 0D 0A 0D 0A 0D 0A 0D 0A age 9.10........
0001F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
Size : 512 (Real : 512)
000000: 20 76 61 6C 75 65 73 20 73 74 6F 72 65 64 20 69 values stored i
000010: 6E 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 43 n the standard C
000020: 50 2F 4D 20 32 2E 32 20 44 50 42 20 28 44 69 73 P/M 2.2 DPB (Dis
000030: 63 20 50 61 72 61 6D 65 74 65 72 20 20 42 6C 6F c Parameter Blo
000040: 63 6B 29 0D 0A 20 20 20 20 20 20 20 61 72 65 20 ck).. are
000050: 6F 66 74 65 6E 20 64 65 72 69 76 65 64 20 66 72 often derived fr
000060: 6F 6D 20 74 68 65 20 64 61 74 61 20 62 6C 6F 63 om the data bloc
000070: 6B 20 61 6C 6C 6F 63 61 74 69 6F 6E 20 73 69 7A k allocation siz
000080: 65 2C 20 42 4C 53 2C 20 20 77 68 69 63 68 20 20 e, BLS, which
000090: 69 73 0D 0A 20 20 20 20 20 20 20 74 68 65 20 6E is.. the n
0000A0: 75 6D 62 65 72 20 6F 66 20 62 79 74 65 73 20 69 umber of bytes i
0000B0: 6E 20 61 20 62 6C 6F 63 6B 20 61 6E 64 20 77 68 n a block and wh
0000C0: 69 63 68 20 6D 61 79 20 62 65 20 31 30 32 34 2C ich may be 1024,
0000D0: 20 32 30 34 38 2C 20 34 30 39 36 2C 20 38 31 39 2048, 4096, 819
0000E0: 32 0D 0A 20 20 20 20 20 20 20 6F 72 20 31 36 33 2.. or 163
0000F0: 38 34 2E 20 54 68 65 20 76 61 6C 75 65 20 6F 66 84. The value of
000100: 20 42 4C 53 20 69 73 20 6E 6F 74 20 73 74 6F 72 BLS is not stor
000110: 65 64 20 69 6E 20 74 68 65 20 20 44 50 42 20 20 ed in the DPB
000120: 62 75 74 20 20 69 74 20 20 6D 61 79 20 20 62 65 but it may be
000130: 0D 0A 20 20 20 20 20 20 20 64 65 64 75 63 65 64 .. deduced
000140: 20 66 72 6F 6D 20 74 68 65 20 20 76 61 6C 75 65 from the value
000150: 73 20 20 73 74 6F 72 65 64 20 20 74 68 65 72 65 s stored there
000160: 2E 20 20 43 50 2F 4D 20 20 70 6C 75 73 20 20 68 . CP/M plus h
000170: 61 73 20 20 61 20 20 73 6C 69 67 68 74 6C 79 0D as a slightly.
000180: 0A 20 20 20 20 20 20 20 64 69 66 66 65 72 65 6E . differen
000190: 74 20 44 50 42 2E 20 54 68 65 20 43 50 2F 4D 20 t DPB. The CP/M
0001A0: 32 2E 32 20 44 50 42 20 69 73 20 6C 61 69 64 20 2.2 DPB is laid
0001B0: 6F 75 74 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D out as follows:.
0001C0: 0A 0D 0A 20 20 20 20 20 20 20 62 79 74 65 73 20 ... bytes
0001D0: 20 20 20 30 2E 2E 31 20 20 28 53 50 54 29 3A 20 0..1 (SPT):
0001E0: 20 54 6F 74 61 6C 20 6E 75 6D 62 65 72 20 6F 66 Total number of
0001F0: 20 31 32 38 20 62 79 74 65 20 72 65 63 6F 72 64 128 byte record
Size : 512 (Real : 512)
000000: 73 20 6F 6E 20 65 61 63 68 20 74 72 61 63 6B 2E s on each track.
000010: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000020: 20 20 20 20 20 32 20 20 28 42 53 48 29 3A 20 20 2 (BSH):
000030: 6C 6F 67 28 32 29 42 4C 53 2D 37 2E 0D 0A 20 20 log(2)BLS-7...
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 20 33 20 20 28 42 4C 4D 29 3A 20 20 42 4C 53 2F 3 (BLM): BLS/
000060: 31 32 38 2D 31 2E 0D 0A 20 20 20 20 20 20 20 20 128-1...
000070: 20 20 20 20 20 20 20 20 20 20 20 34 20 20 28 45 4 (E
000080: 58 4D 29 3A 20 20 49 66 20 44 53 4D 3C 32 35 36 XM): If DSM<256
000090: 20 74 68 65 6E 20 42 4C 53 2F 31 30 32 34 2D 31 then BLS/1024-1
0000A0: 20 65 6C 73 65 20 42 4C 53 2F 32 30 34 38 2D 31 else BLS/2048-1
0000B0: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
0000C0: 20 20 20 35 2E 2E 36 20 20 28 44 53 4D 29 3A 20 5..6 (DSM):
0000D0: 20 54 6F 74 61 6C 20 73 69 7A 65 20 6F 66 20 64 Total size of d
0000E0: 69 73 63 20 62 6C 6F 63 6B 73 20 65 78 63 6C 75 isc blocks exclu
0000F0: 64 69 6E 67 20 61 6E 79 0D 0A 20 20 20 20 20 20 ding any..
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 20 20 20 20 20 20 20 20 72 65 73 65 72 76 65 64 reserved
000120: 20 74 72 61 63 6B 73 2E 0D 0A 20 20 20 20 20 20 tracks...
000130: 20 20 20 20 20 20 20 20 20 20 37 2E 2E 38 20 20 7..8
000140: 28 44 52 4D 29 3A 20 20 54 6F 74 61 6C 20 6E 75 (DRM): Total nu
000150: 6D 62 65 72 20 6F 66 20 64 69 72 65 63 74 6F 72 mber of director
000160: 79 20 65 6E 74 72 69 65 73 20 2D 31 2E 0D 0A 20 y entries -1...
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 39 2E 9.
000180: 2E 31 30 20 28 41 4C 30 2F 31 29 3A 20 42 69 74 .10 (AL0/1): Bit
000190: 20 73 69 67 6E 69 66 69 63 61 6E 74 20 72 65 70 significant rep
0001A0: 72 65 73 65 6E 74 61 74 69 6F 6E 20 6F 66 20 6E resentation of n
0001B0: 75 6D 62 65 72 20 6F 66 0D 0A 20 20 20 20 20 20 umber of..
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 20 20 20 20 20 20 20 64 69 72 65 63 74 6F 72 director
0001E0: 79 20 62 6C 6F 63 6B 73 20 28 23 30 30 38 30 2D y blocks (#0080-
0001F0: 2D 3E 31 2C 20 23 30 30 43 30 2D 2D 3E 32 20 65 ->1, #00C0-->2 e
Size : 512 (Real : 512)
000000: 74 63 29 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 tc)...
000010: 20 20 20 20 31 31 2E 2E 31 32 20 20 28 43 4B 53 11..12 (CKS
000020: 29 3A 20 20 4C 65 6E 67 74 68 20 6F 66 20 63 68 ): Length of ch
000030: 65 63 6B 73 75 6D 20 76 65 63 74 6F 72 2E 20 4E ecksum vector. N
000040: 6F 72 6D 61 6C 6C 79 20 44 52 4D 2F 34 2B 31 20 ormally DRM/4+1
000050: 62 75 74 0D 0A 20 20 20 20 20 20 20 20 20 20 20 but..
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 69 66 20 63 68 65 63 6B 73 75 6D 6D 69 if checksummi
000080: 6E 67 20 69 73 20 6E 6F 74 20 72 65 71 75 69 72 ng is not requir
000090: 65 64 20 74 68 65 6E 20 30 2E 0D 0A 20 20 20 20 ed then 0...
0000A0: 20 20 20 20 20 20 20 20 20 20 31 33 2E 2E 31 34 13..14
0000B0: 20 20 28 4F 46 46 29 3A 20 20 4E 75 6D 62 65 72 (OFF): Number
0000C0: 20 6F 66 20 72 65 73 65 72 76 65 64 20 74 72 61 of reserved tra
0000D0: 63 6B 73 2E 20 54 68 69 73 20 69 73 20 61 6C 73 cks. This is als
0000E0: 6F 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 o the..
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 74 72 61 63 6B 20 6F 6E 20 77 68 track on wh
000110: 69 63 68 20 74 68 65 20 64 69 72 65 63 74 6F 72 ich the director
000120: 79 20 73 74 61 72 74 73 2E 0D 0A 0D 0A 20 20 20 y starts.....
000130: 20 20 20 20 54 68 65 20 58 50 42 73 20 66 6F 72 The XPBs for
000140: 20 74 68 65 20 64 69 66 66 65 72 65 6E 74 20 66 the different f
000150: 6F 72 6D 61 74 73 20 61 72 65 20 69 6E 69 74 69 ormats are initi
000160: 61 6C 69 7A 65 64 20 61 73 20 66 6F 6C 6C 6F 77 alized as follow
000170: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 79 73 s:.... Sys
000180: 74 65 6D 20 66 6F 72 6D 61 74 0D 0A 0D 0A 20 20 tem format....
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 33 36 36
0001A0: 20 20 20 20 20 20 20 20 72 65 63 6F 72 64 73 20 records
0001B0: 70 65 72 20 74 72 61 63 6B 0D 0A 20 20 20 20 20 per track..
0001C0: 20 20 20 20 20 20 20 20 20 20 20 33 20 20 20 20 3
0001D0: 20 20 20 20 20 62 6C 6F 63 6B 20 73 68 69 66 74 block shift
0001E0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0001F0: 20 20 37 20 20 20 20 20 20 20 20 20 62 6C 6F 63 7 bloc
Size : 512 (Real : 512)
000000: 6B 20 6D 61 73 6B 0D 0A 20 20 20 20 20 20 20 20 k mask..
000010: 20 20 20 20 20 20 20 20 30 20 20 20 20 20 20 20 0
000020: 20 20 65 78 74 65 6E 74 20 6D 61 73 6B 0D 0A 20 extent mask..
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 1
000040: 37 30 20 20 20 20 20 20 20 6E 75 6D 62 65 72 20 70 number
000050: 6F 66 20 62 6C 6F 63 6B 73 2D 31 0D 0A 20 20 20 of blocks-1..
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 36 33 20 63
000070: 20 20 20 20 20 20 20 6E 75 6D 62 65 72 20 6F 66 number of
000080: 20 64 69 72 65 63 74 6F 72 79 20 65 6E 74 72 69 directory entri
000090: 65 73 2D 31 0D 0A 20 20 20 20 20 20 20 20 20 20 es-1..
0000A0: 20 20 20 20 20 20 23 30 30 43 30 20 20 20 20 20 #00C0
0000B0: 32 20 64 69 72 65 63 74 6F 72 79 20 62 6C 6F 63 2 directory bloc
0000C0: 6B 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ks..
0000D0: 20 20 20 20 31 36 20 20 20 20 20 20 20 20 73 69 16 si
0000E0: 7A 65 20 6F 66 20 63 68 65 63 6B 73 75 6D 20 76 ze of checksum v
0000F0: 65 63 74 6F 72 0D 0A 20 20 20 20 20 20 20 20 20 ector..
000100: 20 20 20 20 20 20 20 32 20 20 20 20 20 20 20 20 2
000110: 20 72 65 73 65 72 76 65 64 20 74 72 61 63 6B 73 reserved tracks
000120: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000130: 20 20 23 34 31 20 20 20 20 20 20 20 66 69 72 73 #41 firs
000140: 74 20 73 65 63 74 6F 72 20 6E 75 6D 62 65 72 0D t sector number.
000150: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000160: 20 39 20 20 20 20 20 20 20 20 20 73 65 63 74 6F 9 secto
000170: 72 73 20 70 65 72 20 74 72 61 63 6B 0D 0A 20 20 rs per track..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 34 32 42
000190: 20 20 20 20 20 20 20 20 67 61 70 20 6C 65 6E 67 gap leng
0001A0: 74 68 20 28 72 65 61 64 2F 77 72 69 74 65 29 0D th (read/write).
0001B0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0001C0: 20 38 32 20 20 20 20 20 20 20 20 67 61 70 20 6C 82 gap l
0001D0: 65 6E 67 74 68 20 28 66 6F 72 6D 61 74 29 0D 0A ength (format)..
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001F0: 23 45 35 20 20 20 20 20 20 20 66 69 6C 6C 65 72 #E5 filler
Size : 512 (Real : 512)
000000: 20 62 79 74 65 0D 0A 20 20 20 20 20 20 20 20 20 byte..
000010: 20 20 20 20 20 20 20 32 20 20 20 20 20 20 20 20 2
000020: 20 6C 6F 67 28 32 29 28 73 65 63 74 6F 72 20 73 log(2)(sector s
000030: 69 7A 65 29 2D 37 0D 0A 20 20 20 20 20 20 20 20 ize)-7..
000040: 20 20 20 20 20 20 20 20 34 20 20 20 20 20 20 20 4
000050: 20 20 72 65 63 6F 72 64 73 20 70 65 72 20 74 72 records per tr
000060: 61 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ack..
000070: 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 63 0 c
000080: 75 72 72 65 6E 74 20 74 72 61 63 6B 0D 0A 20 20 urrent track..
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 0
0000A0: 20 20 20 20 20 20 20 20 6E 6F 74 20 61 6C 69 67 not alig
0000B0: 6E 65 64 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ned..
0000C0: 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 64 0 d
0000D0: 6F 20 61 75 74 6F 20 73 65 6C 65 63 74 20 66 6F o auto select fo
0000E0: 72 6D 61 74 0D 0A 0D 0A 20 20 20 20 20 20 20 44 rmat.... D
0000F0: 61 74 61 20 6F 6E 6C 79 20 66 6F 72 6D 61 74 0D ata only format.
000100: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
000110: 20 20 20 33 36 20 20 20 20 20 20 20 20 72 65 63 36 rec
000120: 6F 72 64 73 20 70 65 72 20 74 72 61 63 6B 0D 0A ords per track..
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 33 20 20 20 20 20 20 20 20 20 62 6C 6F 63 6B 20 3 block
000150: 73 68 69 66 74 0D 0A 20 20 20 20 20 20 20 20 20 shift..
000160: 20 20 20 20 20 20 20 37 20 20 20 20 20 20 20 20 7
000170: 20 62 6C 6F 63 6B 20 6D 61 73 6B 0D 0A 20 20 20 block mask..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 20 0
000190: 20 20 20 20 20 20 20 65 78 74 65 6E 74 20 6D 61 extent ma
0001A0: 73 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 sk..
0001B0: 20 20 20 20 31 37 39 20 20 20 20 20 20 20 6E 75 179 nu
0001C0: 6D 62 65 72 20 6F 66 20 62 6C 6F 63 6B 73 2D 31 mber of blocks-1
0001D0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0001E0: 20 20 36 33 20 20 20 20 20 20 20 20 6E 75 6D 62 63 numb
0001F0: 65 72 20 6F 66 20 64 69 72 65 63 74 6F 72 79 20 er of directory
Size : 512 (Real : 512)
000000: 65 6E 74 72 69 65 73 2D 31 0D 0A 20 20 20 20 20 entries-1..
000010: 20 20 20 20 20 20 20 20 20 20 20 23 30 30 43 30 #00C0
000020: 20 20 20 20 20 32 20 64 69 72 65 63 74 6F 72 79 2 directory
000030: 20 62 6C 6F 63 6B 73 0D 0A 20 20 20 20 20 20 20 blocks..
000040: 20 20 20 20 20 20 20 20 20 31 36 20 20 20 20 20 16
000050: 20 20 20 73 69 7A 65 20 6F 66 20 63 68 65 63 6B size of check
000060: 73 75 6D 20 76 65 63 74 6F 72 0D 0A 20 20 20 20 sum vector..
000070: 20 20 20 20 20 20 20 20 20 20 20 20 30 20 20 20 0
000080: 20 20 20 20 20 20 72 65 73 65 72 76 65 64 20 74 reserved t
000090: 72 61 63 6B 73 0D 0A 20 20 20 20 20 20 20 20 20 racks..
0000A0: 20 20 20 20 20 20 20 23 43 31 20 20 20 20 20 20 #C1
0000B0: 20 66 69 72 73 74 20 73 65 63 74 6F 72 20 6E 75 first sector nu
0000C0: 6D 62 65 72 0D 0A 20 20 20 20 20 20 20 20 20 20 mber..
0000D0: 20 20 20 20 20 20 39 20 20 20 20 20 20 20 20 20 9
0000E0: 73 65 63 74 6F 72 73 20 70 65 72 20 74 72 61 63 sectors per trac
0000F0: 6B 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 k.... AMST
000100: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
000110: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 70 61 67 65 20 39 2E 31 32 20 28 70 61 72 74 20 page 9.12 (part
000140: 31 29 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 1)..............
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 34 32 20 20 20 20 20 20 20 20 67 61 70 20 6C 65 42 gap le
000170: 6E 67 74 68 20 28 72 65 61 64 2F 77 72 69 74 65 ngth (read/write
000180: 29 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 )..
000190: 20 20 20 38 32 20 20 20 20 20 20 20 20 67 61 70 82 gap
0001A0: 20 6C 65 6E 67 74 68 20 28 66 6F 72 6D 61 74 29 length (format)
0001B0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0001C0: 20 20 23 45 35 20 20 20 20 20 20 20 66 69 6C 6C #E5 fill
0001D0: 65 72 20 62 79 74 65 0D 0A 20 20 20 20 20 20 20 er byte..
0001E0: 20 20 20 20 20 20 20 20 20 32 20 20 20 20 20 20 2
0001F0: 20 20 20 6C 6F 67 28 32 29 28 73 65 63 74 6F 72 log(2)(sector
Size : 512 (Real : 512)
000000: 20 73 69 7A 65 29 2D 37 0D 0A 20 20 20 20 20 20 size)-7..
000010: 20 20 20 20 20 20 20 20 20 20 34 20 20 20 20 20 4
000020: 20 20 20 20 72 65 63 6F 72 64 73 20 70 65 72 20 records per
000030: 74 72 61 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 track..
000040: 20 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 0
000050: 20 63 75 72 72 65 6E 74 20 74 72 61 63 6B 0D 0A current track..
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 30 20 20 20 20 20 20 20 20 20 6E 6F 74 20 61 6C 0 not al
000080: 69 67 6E 65 64 0D 0A 20 20 20 20 20 20 20 20 20 igned..
000090: 20 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 0
0000A0: 20 64 6F 20 61 75 74 6F 2D 73 65 6C 65 63 74 20 do auto-select
0000B0: 66 6F 72 6D 61 74 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A format..........
0000C0: 20 20 20 20 20 20 20 49 42 4D 20 46 6F 72 6D 61 IBM Forma
0000D0: 74 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 t....
0000E0: 20 20 20 20 20 33 32 20 20 20 20 20 20 20 20 72 32 r
0000F0: 65 63 6F 72 64 73 20 70 65 72 20 74 72 61 63 6B ecords per track
000100: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000110: 20 20 33 20 20 20 20 20 20 20 20 20 62 6C 6F 63 3 bloc
000120: 6B 20 73 68 69 66 74 0D 0A 20 20 20 20 20 20 20 k shift..
000130: 20 20 20 20 20 20 20 20 20 37 20 20 20 20 20 20 7
000140: 20 20 20 62 6C 6F 63 6B 20 6D 61 73 6B 0D 0A 20 block mask..
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 0
000160: 20 20 20 20 20 20 20 20 20 65 78 74 65 6E 74 20 extent
000170: 6D 61 73 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 mask..
000180: 20 20 20 20 20 20 31 35 35 20 20 20 20 20 20 20 155
000190: 6E 75 6D 62 65 72 20 6F 66 20 62 6C 6F 63 6B 73 number of blocks
0001A0: 2D 31 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 -1..
0001B0: 20 20 20 20 36 33 20 20 20 20 20 20 20 20 6E 75 63 nu
0001C0: 6D 62 65 72 20 6F 66 20 64 69 72 65 63 74 6F 72 mber of director
0001D0: 79 20 65 6E 74 72 69 65 73 2D 31 0D 0A 20 20 20 y entries-1..
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 30 30 #00
0001F0: 43 30 20 20 20 20 20 32 20 64 69 72 65 63 74 6F C0 2 directo
Size : 512 (Real : 512)
000000: 72 79 20 62 6C 6F 63 6B 73 0D 0A 20 20 20 20 20 ry blocks..
000010: 20 20 20 20 20 20 20 20 20 20 20 31 36 20 20 20 16
000020: 20 20 20 20 20 73 69 7A 65 20 6F 66 20 63 68 65 size of che
000030: 63 6B 73 75 6D 20 76 65 63 74 6F 72 0D 0A 20 20 cksum vector..
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 20 1
000050: 20 20 20 20 20 20 20 20 72 65 73 65 72 76 65 64 reserved
000060: 20 74 72 61 63 6B 73 0D 0A 20 20 20 20 20 20 20 tracks..
000070: 20 20 20 20 20 20 20 20 20 23 30 31 20 20 20 20 #01
000080: 20 20 20 66 69 72 73 74 20 73 65 63 74 6F 72 20 first sector
000090: 6E 75 6D 62 65 72 0D 0A 20 20 20 20 20 20 20 20 number..
0000A0: 20 20 20 20 20 20 20 20 38 20 20 20 20 20 20 20 8
0000B0: 20 20 73 65 63 74 6F 72 73 20 70 65 72 20 74 72 sectors per tr
0000C0: 61 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ack..
0000D0: 20 20 20 20 20 34 32 20 20 20 20 20 20 20 20 67 42 g
0000E0: 61 70 20 6C 65 6E 67 74 68 20 28 72 65 61 64 2F ap length (read/
0000F0: 77 72 69 74 65 29 0D 0A 20 20 20 20 20 20 20 20 write)..
000100: 20 20 20 20 20 20 20 20 38 30 20 20 20 20 20 20 80
000110: 20 20 67 61 70 20 6C 65 6E 67 74 68 20 28 66 6F gap length (fo
000120: 72 6D 61 74 29 0D 0A 20 20 20 20 20 20 20 20 20 rmat)..
000130: 20 20 20 20 20 20 20 23 45 35 20 20 20 20 20 20 #E5
000140: 20 66 69 6C 6C 65 72 20 62 79 74 65 0D 0A 20 20 filler byte..
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 20 2
000160: 20 20 20 20 20 20 20 20 6C 6F 67 28 32 29 28 73 log(2)(s
000170: 65 63 74 6F 72 20 73 69 7A 65 29 2D 37 0D 0A 20 ector size)-7..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 34 4
000190: 20 20 20 20 20 20 20 20 20 72 65 63 6F 72 64 73 records
0001A0: 20 70 65 72 20 74 72 61 63 6B 0D 0A 20 20 20 20 per track..
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 30 20 20 20 0
0001C0: 20 20 20 20 20 20 63 75 72 72 65 6E 74 20 74 72 current tr
0001D0: 61 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ack..
0001E0: 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 6E 0 n
0001F0: 6F 74 20 61 6C 69 67 6E 65 64 0D 0A 20 20 20 20 ot aligned..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 30 20 20 20 0
000010: 20 20 20 20 20 20 64 6F 20 61 75 74 6F 20 73 65 do auto se
000020: 6C 65 63 74 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A lect............
000030: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
000040: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
000050: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
000060: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
000070: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
000080: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
000090: 20 20 20 20 20 70 61 67 65 20 39 2E 31 32 20 28 page 9.12 (
0000A0: 70 61 72 74 20 32 29 0D 0A 1A 4F 53 20 69 73 20 part 2)...OS is
0000B0: 61 20 64 69 73 63 20 6F 70 65 72 61 74 69 6E 67 a disc operating
0000C0: 20 73 79 73 74 65 6D 20 75 73 65 64 20 20 77 69 system used wi
0000D0: 74 68 20 20 61 6C 6C 20 20 74 68 65 20 20 43 50 th all the CP
0000E0: 43 20 20 72 61 6E 67 65 20 20 6F 66 0D 0A 20 20 C range of..
0000F0: 20 20 20 20 20 63 6F 6D 70 75 74 65 72 2C 20 6F computer, o
000100: 20 20 20 20 20 20 20 20 38 30 20 20 20 20 20 20 80
000110: 20 20 67 61 70 20 6C 65 6E 67 74 68 20 28 66 6F gap length (fo
000120: 72 6D 61 74 29 0D 0A 20 20 20 20 20 20 20 20 20 rmat)..
000130: 20 20 20 20 20 20 20 23 45 35 20 20 20 20 20 20 #E5
000140: 20 66 69 6C 6C 65 72 20 62 79 74 65 0D 0A 20 20 filler byte..
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 20 2
000160: 20 20 20 20 20 20 20 20 6C 6F 67 28 32 29 28 73 log(2)(s
000170: 65 63 74 6F 72 20 73 69 7A 65 29 2D 37 0D 0A 20 ector size)-7..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 34 4
000190: 20 20 20 20 20 20 20 20 20 72 65 63 6F 72 64 73 records
0001A0: 20 70 65 72 20 74 72 61 63 6B 0D 0A 20 20 20 20 per track..
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 30 20 20 20 0
0001C0: 20 20 20 20 20 20 63 75 72 72 65 6E 74 20 74 72 current tr
0001D0: 61 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ack..
0001E0: 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 6E 0 n
0001F0: 6F 74 20 61 6C 69 67 6E 65 64 0D 0A 20 20 20 20 ot aligned..
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
000010: 30 20 45 78 70 61 6E 73 69 6F 6E 20 52 4F 4D 73 0 Expansion ROMs
000020: 2C 20 52 65 73 69 64 65 6E 74 20 53 79 73 74 65 , Resident Syste
000030: 6D 20 45 78 74 65 6E 73 69 6F 6E 73 20 61 6E 64 m Extensions and
000040: 20 52 41 4D 20 50 72 6F 67 72 61 6D 73 2E 0D 0A RAM Programs...
000050: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 73 .... The s
000060: 79 73 74 65 6D 20 63 61 6E 20 61 64 64 72 65 73 ystem can addres
000070: 73 20 75 70 20 74 6F 20 32 35 32 20 65 78 70 61 s up to 252 expa
000080: 6E 73 69 6F 6E 20 52 4F 4D 73 2C 20 6D 61 70 70 nsion ROMs, mapp
000090: 65 64 20 6F 76 65 72 20 20 74 68 65 20 20 74 6F ed over the to
0000A0: 70 0D 0A 20 20 20 20 20 20 20 31 36 4B 20 6F 66 p.. 16K of
0000B0: 20 6D 65 6D 6F 72 79 2C 20 73 74 61 72 74 69 6E memory, startin
0000C0: 67 20 61 74 20 23 43 30 30 30 2E 20 54 68 65 20 g at #C000. The
0000D0: 4B 65 72 6E 65 6C 20 73 75 70 70 6F 72 74 73 20 Kernel supports
0000E0: 74 77 6F 20 76 61 72 69 65 74 69 65 73 20 6F 66 two varieties of
0000F0: 0D 0A 20 20 20 20 20 20 20 65 78 70 61 6E 73 69 .. expansi
000100: 6F 6E 20 52 4F 4D 2C 20 66 6F 72 65 67 72 6F 75 on ROM, foregrou
000110: 6E 64 20 61 6E 64 20 62 61 63 6B 67 72 6F 75 6E nd and backgroun
000120: 64 2E 20 41 20 72 65 73 69 64 65 6E 74 20 73 79 d. A resident sy
000130: 73 74 65 6D 20 20 65 78 74 65 6E 73 69 6F 6E 0D stem extension.
000140: 0A 20 20 20 20 20 20 20 28 52 53 58 29 20 69 73 . (RSX) is
000150: 20 73 69 6D 69 6C 61 72 20 69 6E 20 75 73 65 20 similar in use
000160: 74 6F 20 61 20 62 61 63 6B 67 72 6F 75 6E 64 20 to a background
000170: 52 4F 4D 2C 20 62 75 74 20 6D 75 73 74 20 62 65 ROM, but must be
000180: 20 20 6C 6F 61 64 65 64 20 20 69 6E 74 6F 0D 0A loaded into..
000190: 20 20 20 20 20 20 20 52 41 4D 20 62 65 66 6F 72 RAM befor
0001A0: 65 20 69 74 20 63 61 6E 20 62 65 20 75 73 65 64 e it can be used
0001B0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 ....... A
0001C0: 66 6F 72 65 67 72 6F 75 6E 64 20 52 4F 4D 20 63 foreground ROM c
0001D0: 6F 6E 74 61 69 6E 73 20 6F 6E 65 20 6F 72 20 6D ontains one or m
0001E0: 6F 72 65 20 70 72 6F 67 72 61 6D 73 2C 20 6F 6E ore programs, on
0001F0: 6C 79 20 6F 6E 65 20 6F 66 20 77 68 69 63 68 20 ly one of which
Size : 512 (Real : 512)
000000: 20 6D 61 79 0D 0A 20 20 20 20 20 20 20 62 65 20 may.. be
000010: 72 75 6E 6E 69 6E 67 20 61 74 20 6F 6E 65 20 74 running at one t
000020: 69 6D 65 2E 20 54 68 65 20 6F 6E 2D 62 6F 61 72 ime. The on-boar
000030: 64 20 42 41 53 49 43 20 69 73 20 74 68 65 20 20 d BASIC is the
000040: 64 65 66 61 75 6C 74 20 20 66 6F 72 65 67 72 6F default foregro
000050: 75 6E 64 0D 0A 20 20 20 20 20 20 20 70 72 6F 67 und.. prog
000060: 72 61 6D 2E 20 4F 74 68 65 72 20 70 6F 73 73 69 ram. Other possi
000070: 62 6C 65 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 ble foreground p
000080: 72 6F 67 72 61 6D 73 20 61 72 65 3A 0D 0A 0D 0A rograms are:....
000090: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0000A0: 20 20 2D 20 6F 74 68 65 72 20 73 79 73 74 65 6D - other system
0000B0: 73 2C 20 73 75 63 68 20 61 73 20 46 4F 52 54 48 s, such as FORTH
0000C0: 20 6F 72 20 43 50 2F 4D 2E 0D 0A 20 20 20 20 20 or CP/M...
0000D0: 20 20 20 20 20 20 20 20 20 20 20 2D 20 61 70 70 - app
0000E0: 6C 69 63 61 74 69 6F 6E 73 2C 20 73 75 63 68 20 lications, such
0000F0: 61 73 20 61 20 57 6F 72 64 20 50 72 6F 63 65 73 as a Word Proces
000100: 73 6F 72 20 6F 72 20 53 70 72 65 61 64 20 53 68 sor or Spread Sh
000110: 65 65 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 eet...
000120: 20 20 20 20 20 20 2D 20 74 6F 6F 6C 73 2C 20 73 - tools, s
000130: 75 63 68 20 61 73 20 61 6E 20 41 73 73 65 6D 62 uch as an Assemb
000140: 6C 65 72 20 6F 72 20 44 65 62 75 67 67 65 72 2E ler or Debugger.
000150: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 52 ...... A R
000160: 41 4D 20 70 72 6F 67 72 61 6D 2C 20 6F 6E 63 65 AM program, once
000170: 20 6C 6F 61 64 65 64 2C 20 74 61 6B 65 73 20 6F loaded, takes o
000180: 76 65 72 20 74 68 65 20 6D 61 63 68 69 6E 65 20 ver the machine
000190: 69 6E 20 20 6D 75 63 68 20 20 74 68 65 20 20 73 in much the s
0001A0: 61 6D 65 0D 0A 20 20 20 20 20 20 20 77 61 79 20 ame.. way
0001B0: 61 73 20 61 20 66 6F 72 65 67 72 6F 75 6E 64 20 as a foreground
0001C0: 52 4F 4D 20 70 72 6F 67 72 61 6D 2E 20 47 61 6D ROM program. Gam
0001D0: 65 73 20 77 69 6C 6C 20 67 65 6E 65 72 61 6C 6C es will generall
0001E0: 79 20 62 65 20 52 41 4D 20 70 72 6F 67 72 61 6D y be RAM program
0001F0: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s....... T
Size : 512 (Real : 512)
000000: 68 65 72 65 20 6D 61 79 20 62 65 20 75 70 20 74 here may be up t
000010: 6F 20 31 36 20 62 61 63 6B 67 72 6F 75 6E 64 20 o 16 background
000020: 52 4F 4D 73 2C 20 65 61 63 68 20 20 6F 66 20 20 ROMs, each of
000030: 77 68 69 63 68 20 20 70 72 6F 76 69 64 65 73 20 which provides
000040: 20 73 6F 6D 65 0D 0A 20 20 20 20 20 20 20 73 6F some.. so
000050: 72 74 20 6F 66 20 73 65 72 76 69 63 65 20 69 6E rt of service in
000060: 64 65 70 65 6E 64 65 6E 74 20 6F 66 20 74 68 65 dependent of the
000070: 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 foreground prog
000080: 72 61 6D 2E 20 49 74 20 69 73 20 20 65 78 70 65 ram. It is expe
000090: 63 74 65 64 0D 0A 20 20 20 20 20 20 20 74 68 61 cted.. tha
0000A0: 74 20 65 78 70 61 6E 73 69 6F 6E 20 70 65 72 69 t expansion peri
0000B0: 70 68 65 72 61 6C 73 20 77 69 6C 6C 20 65 61 63 pherals will eac
0000C0: 68 20 68 61 76 65 20 61 6E 20 61 73 73 6F 63 69 h have an associ
0000D0: 61 74 65 64 20 62 61 63 6B 67 72 6F 75 6E 64 20 ated background
0000E0: 52 4F 4D 0D 0A 20 20 20 20 20 20 20 63 6F 6E 74 ROM.. cont
0000F0: 61 69 6E 69 6E 67 20 20 73 75 69 74 61 62 6C 65 aining suitable
000100: 20 20 73 75 70 70 6F 72 74 20 20 72 6F 75 74 69 support routi
000110: 6E 65 73 2E 20 20 4F 74 68 65 72 20 20 62 61 63 nes. Other bac
000120: 6B 67 72 6F 75 6E 64 20 20 52 4F 4D 73 20 20 6D kground ROMs m
000130: 61 79 0D 0A 20 20 20 20 20 20 20 61 75 67 6D 65 ay.. augme
000140: 6E 74 20 74 68 65 20 65 78 69 73 74 69 6E 67 20 nt the existing
000150: 20 6D 61 63 68 69 6E 65 20 20 73 6F 66 74 77 61 machine softwa
000160: 72 65 3B 20 20 66 6F 72 20 20 65 78 61 6D 70 6C re; for exampl
000170: 65 2C 20 20 62 79 20 20 70 72 6F 76 69 64 69 6E e, by providin
000180: 67 0D 0A 20 20 20 20 20 20 20 66 75 72 74 68 65 g.. furthe
000190: 72 20 67 72 61 70 68 69 63 73 20 66 75 6E 63 74 r graphics funct
0001A0: 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions.......
0001B0: 20 20 41 20 72 65 73 69 64 65 6E 74 20 73 79 73 A resident sys
0001C0: 74 65 6D 20 65 78 74 65 6E 73 69 6F 6E 20 28 52 tem extension (R
0001D0: 53 58 29 2C 20 6F 6E 63 65 20 6C 6F 61 64 65 64 SX), once loaded
0001E0: 2C 20 70 72 6F 76 69 64 65 73 20 73 6F 6D 65 20 , provides some
0001F0: 73 6F 72 74 20 20 6F 66 0D 0A 20 20 20 20 20 20 sort of..
Size : 512 (Real : 512)
000000: 20 73 65 72 76 69 63 65 20 69 6E 20 74 68 65 20 service in the
000010: 73 61 6D 65 20 77 61 79 20 20 61 73 20 20 61 20 same way as a
000020: 20 62 61 63 6B 67 72 6F 75 6E 64 20 20 52 4F 4D background ROM
000030: 2E 20 20 41 6E 20 20 52 53 58 20 20 6D 69 67 68 . An RSX migh
000040: 74 2C 20 20 66 6F 72 0D 0A 20 20 20 20 20 20 20 t, for..
000050: 65 78 61 6D 70 6C 65 2C 20 70 72 6F 76 69 64 65 example, provide
000060: 20 73 70 65 63 69 61 6C 20 73 75 70 70 6F 72 74 special support
000070: 20 66 6F 72 20 61 20 67 69 76 65 6E 20 70 72 69 for a given pri
000080: 6E 74 65 72 20 20 2D 20 20 77 68 65 72 65 20 20 nter - where
000090: 69 74 20 20 69 73 0D 0A 20 20 20 20 20 20 20 6D it is.. m
0000A0: 6F 72 65 20 65 63 6F 6E 6F 6D 69 63 61 6C 20 74 ore economical t
0000B0: 6F 20 70 72 6F 76 69 64 65 20 74 68 65 20 73 6F o provide the so
0000C0: 66 74 77 61 72 65 20 6F 6E 20 63 61 73 73 65 74 ftware on casset
0000D0: 74 65 20 72 61 74 68 65 72 20 74 68 61 6E 20 69 te rather than i
0000E0: 6E 20 52 4F 4D 0D 0A 20 20 20 20 20 20 20 28 6F n ROM.. (o
0000F0: 72 20 50 52 4F 4D 29 2E 0D 0A 0D 0A 0D 0A 20 20 r PROM).......
000100: 20 20 20 20 20 31 30 2E 31 20 52 4F 4D 20 41 64 10.1 ROM Ad
000110: 64 72 65 73 73 69 6E 67 2E 0D 0A 0D 0A 0D 0A 20 dressing.......
000120: 20 20 20 20 20 20 45 78 70 61 6E 73 69 6F 6E 20 Expansion
000130: 52 4F 4D 73 20 68 61 76 65 20 52 4F 4D 20 61 64 ROMs have ROM ad
000140: 64 72 65 73 73 20 69 6E 20 74 68 65 20 72 61 6E dress in the ran
000150: 67 65 20 30 2E 2E 32 35 31 2E 20 54 6F 20 73 65 ge 0..251. To se
000160: 6C 65 63 74 20 61 20 67 69 76 65 6E 0D 0A 20 20 lect a given..
000170: 20 20 20 20 20 52 4F 4D 20 74 68 65 20 4B 65 72 ROM the Ker
000180: 6E 65 6C 20 73 65 74 73 20 69 74 73 20 52 4F 4D nel sets its ROM
000190: 20 61 64 64 72 65 73 73 20 62 79 20 77 72 69 74 address by writ
0001A0: 69 6E 67 20 74 6F 20 49 2F 4F 20 20 61 64 64 72 ing to I/O addr
0001B0: 65 73 73 20 20 23 44 46 30 30 2E 0D 0A 20 20 20 ess #DF00...
0001C0: 20 20 20 20 49 66 20 61 20 52 4F 4D 20 69 73 20 If a ROM is
0001D0: 66 69 74 74 65 64 20 61 74 20 74 68 65 20 61 64 fitted at the ad
0001E0: 64 72 65 73 73 20 20 73 65 6C 65 63 74 65 64 2C dress selected,
0001F0: 20 20 74 68 65 6E 20 20 61 6C 6C 20 20 66 75 72 then all fur
Size : 512 (Real : 512)
000000: 74 68 65 72 20 20 72 65 61 64 0D 0A 20 20 20 20 ther read..
000010: 20 20 20 61 63 63 65 73 73 65 73 20 74 6F 20 74 accesses to t
000020: 68 65 20 74 6F 70 20 31 36 4B 20 6F 66 20 6D 65 he top 16K of me
000030: 6D 6F 72 79 20 77 69 6C 6C 20 72 65 74 75 72 6E mory will return
000040: 20 64 61 74 61 20 66 72 6F 6D 20 74 68 65 20 20 data from the
000050: 65 78 70 61 6E 73 69 6F 6E 0D 0A 20 20 20 20 20 expansion..
000060: 20 20 52 4F 4D 2E 20 49 66 20 6E 6F 20 52 4F 4D ROM. If no ROM
000070: 20 69 73 20 66 69 74 74 65 64 20 61 74 20 74 68 is fitted at th
000080: 65 20 63 75 72 72 65 6E 74 6C 79 20 20 73 65 6C e currently sel
000090: 65 63 74 65 64 20 20 52 4F 4D 20 20 61 64 64 72 ected ROM addr
0000A0: 65 73 73 20 20 74 68 65 0D 0A 20 20 20 20 20 20 ess the..
0000B0: 20 63 6F 6E 74 65 6E 74 73 20 6F 66 20 74 68 65 contents of the
0000C0: 20 6F 6E 2D 62 6F 61 72 64 20 52 4F 4D 20 61 72 on-board ROM ar
0000D0: 65 20 72 65 74 75 72 6E 65 64 2E 0D 0A 0D 0A 0D e returned......
0000E0: 0A 20 20 20 20 20 20 20 57 68 65 6E 20 74 68 65 . When the
0000F0: 20 6D 61 63 68 69 6E 65 20 20 69 73 20 20 66 69 machine is fi
000100: 72 73 74 20 20 74 75 72 6E 65 64 20 20 6F 6E 20 rst turned on
000110: 20 52 4F 4D 20 20 30 20 20 69 73 20 20 73 65 6C ROM 0 is sel
000120: 65 63 74 65 64 20 20 61 73 20 20 74 68 65 0D 0A ected as the..
000130: 20 20 20 20 20 20 20 66 6F 72 65 67 72 6F 75 6E foregroun
000140: 64 20 70 72 6F 67 72 61 6D 2E 20 49 66 20 6E 6F d program. If no
000150: 20 65 78 70 61 6E 73 69 6F 6E 20 52 4F 4D 20 69 expansion ROM i
000160: 73 20 66 69 74 74 65 64 20 61 74 20 20 52 4F 4D s fitted at ROM
000170: 20 20 61 64 64 72 65 73 73 20 20 30 2C 0D 0A 20 address 0,..
000180: 20 20 20 20 20 20 74 68 65 20 6F 6E 2D 62 6F 61 the on-boa
000190: 72 64 20 52 4F 4D 20 69 73 20 75 73 65 64 2C 20 rd ROM is used,
0001A0: 61 6E 64 20 42 41 53 49 43 20 69 73 20 65 6E 74 and BASIC is ent
0001B0: 65 72 65 64 2E 20 49 66 20 61 6E 20 65 78 70 61 ered. If an expa
0001C0: 6E 73 69 6F 6E 20 52 4F 4D 20 69 73 0D 0A 20 20 nsion ROM is..
0001D0: 20 20 20 20 20 66 69 74 74 65 64 20 61 74 20 52 fitted at R
0001E0: 4F 4D 20 61 64 64 72 65 73 73 20 30 20 69 74 20 OM address 0 it
0001F0: 74 61 6B 65 73 20 70 72 65 63 65 64 65 6E 63 65 takes precedence
Size : 512 (Real : 512)
000000: 20 6F 76 65 72 20 74 68 65 20 6F 6E 2D 62 6F 61 over the on-boa
000010: 72 64 20 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 rd ROM.........
000020: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
000030: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
000040: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 70 61 67 65 20 31 30 2E 31 0D 0A 0D 0A page 10.1....
000070: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
000080: 20 49 6E 20 56 31 2E 30 20 66 69 72 6D 77 61 72 In V1.0 firmwar
000090: 65 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D e background ROM
0000A0: 73 20 6D 75 73 74 20 62 65 20 66 69 74 74 65 64 s must be fitted
0000B0: 20 61 74 20 20 52 4F 4D 20 20 61 64 64 72 65 73 at ROM addres
0000C0: 73 65 73 20 20 69 6E 0D 0A 20 20 20 20 20 20 20 ses in..
0000D0: 74 68 65 20 72 61 6E 67 65 20 31 2E 2E 2E 37 2E the range 1...7.
0000E0: 20 46 6F 72 65 67 72 6F 75 6E 64 20 52 4F 4D 73 Foreground ROMs
0000F0: 20 6D 75 73 74 20 62 65 20 20 66 69 74 74 65 64 must be fitted
000100: 20 20 73 6F 20 20 74 68 61 74 20 20 74 68 65 72 so that ther
000110: 65 20 20 61 72 65 0D 0A 20 20 20 20 20 20 20 63 e are.. c
000120: 6F 6E 74 69 67 75 6F 75 73 20 52 4F 4D 73 20 66 ontiguous ROMs f
000130: 72 6F 6D 20 61 64 64 72 65 73 73 20 31 2E 20 57 rom address 1. W
000140: 68 65 6E 20 73 65 61 72 63 68 69 6E 67 20 66 6F hen searching fo
000150: 72 20 20 61 20 20 66 6F 72 65 67 72 6F 75 6E 64 r a foreground
000160: 20 20 52 4F 4D 0D 0A 20 20 20 20 20 20 20 74 68 ROM.. th
000170: 65 20 6B 65 72 6E 65 6C 20 73 74 61 72 74 73 20 e kernel starts
000180: 61 74 20 61 64 64 72 65 73 73 20 30 20 20 61 6E at address 0 an
000190: 64 20 20 77 6F 72 6B 73 20 20 75 70 77 61 72 64 d works upward
0001A0: 73 20 20 75 6E 74 69 6C 20 20 74 68 65 20 20 66 s until the f
0001B0: 69 72 73 74 0D 0A 20 20 20 20 20 20 20 61 64 64 irst.. add
0001C0: 72 65 73 73 20 67 72 65 61 74 65 72 20 74 68 61 ress greater tha
0001D0: 6E 20 30 20 69 66 20 66 6F 75 6E 64 2E 0D 0A 0D n 0 if found....
0001E0: 0A 20 20 20 20 20 20 20 49 6E 20 56 31 2E 31 20 . In V1.1
0001F0: 66 69 72 6D 77 61 72 65 20 62 61 63 6B 67 72 6F firmware backgro
Size : 512 (Real : 512)
000000: 75 6E 64 20 52 4F 4D 73 20 6D 61 79 20 62 65 20 und ROMs may be
000010: 66 69 74 74 65 64 20 61 74 20 52 4F 4D 20 61 64 fitted at ROM ad
000020: 64 72 65 73 73 65 73 20 69 6E 20 74 68 65 0D 0A dresses in the..
000030: 20 20 20 20 20 20 20 72 61 6E 67 65 20 30 2E 2E range 0..
000040: 2E 31 35 2E 20 46 6F 72 65 67 72 6F 75 6E 64 20 .15. Foreground
000050: 52 4F 4D 73 20 6D 75 73 74 20 62 65 20 66 69 74 ROMs must be fit
000060: 74 65 64 20 63 6F 6E 74 69 67 75 6F 75 73 6C 79 ted contiguously
000070: 20 66 72 6F 6D 20 61 64 64 72 65 73 73 0D 0A 20 from address..
000080: 20 20 20 20 20 20 31 36 20 6F 72 20 61 74 20 61 16 or at a
000090: 6E 79 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F ny background RO
0000A0: 4D 20 61 64 64 72 65 73 73 2E 20 57 68 65 6E 20 M address. When
0000B0: 73 65 61 72 63 68 69 6E 67 20 66 6F 72 20 20 61 searching for a
0000C0: 20 20 66 6F 72 65 67 72 6F 75 6E 64 0D 0A 20 20 foreground..
0000D0: 20 20 20 20 20 52 4F 4D 20 74 68 65 20 6B 65 72 ROM the ker
0000E0: 6E 65 6C 20 73 74 61 72 74 73 20 61 74 20 61 64 nel starts at ad
0000F0: 64 72 65 73 73 20 30 20 61 6E 64 20 77 6F 72 6B dress 0 and work
000100: 73 20 75 70 77 61 72 64 73 20 75 6E 74 69 6C 20 s upwards until
000110: 20 74 68 65 20 20 66 69 72 73 74 0D 0A 20 20 20 the first..
000120: 20 20 20 20 75 6E 75 73 65 64 20 61 64 64 72 65 unused addre
000130: 73 73 20 67 72 65 61 74 65 72 20 74 68 61 6E 20 ss greater than
000140: 31 35 20 69 73 20 66 6F 75 6E 64 2E 0D 0A 0D 0A 15 is found.....
000150: 20 20 20 20 20 20 20 49 6E 20 65 69 74 68 65 72 In either
000160: 20 63 61 73 65 20 69 66 20 61 6E 20 65 78 70 61 case if an expa
000170: 6E 73 69 6F 6E 20 52 4F 4D 20 30 20 69 73 20 66 nsion ROM 0 is f
000180: 69 74 74 65 64 20 74 68 65 20 20 6F 6E 2D 62 6F itted the on-bo
000190: 61 72 64 20 20 52 4F 4D 20 20 63 61 6E 0D 0A 20 ard ROM can..
0001A0: 20 20 20 20 20 20 73 74 69 6C 6C 20 62 65 20 61 still be a
0001B0: 63 63 65 73 73 65 64 20 61 74 20 74 68 65 20 66 ccessed at the f
0001C0: 69 72 73 74 20 75 6E 75 73 65 64 20 52 4F 4D 20 irst unused ROM
0001D0: 61 64 64 72 65 73 73 2E 0D 0A 0D 0A 20 20 20 20 address.....
0001E0: 20 20 20 54 68 65 20 4B 65 72 6E 65 6C 20 20 73 The Kernel s
0001F0: 75 70 70 6F 72 74 73 20 20 61 20 20 27 66 61 72 upports a 'far
Size : 512 (Real : 512)
000000: 20 20 61 64 64 72 65 73 73 27 20 20 77 68 69 63 address' whic
000010: 68 20 20 6D 79 20 20 62 65 20 20 75 73 65 64 20 h my be used
000020: 20 74 6F 20 20 63 61 6C 6C 0D 0A 20 20 20 20 20 to call..
000030: 20 20 73 75 62 72 6F 75 74 69 6E 65 73 20 69 6E subroutines in
000040: 20 65 78 70 61 6E 73 69 6F 6E 20 52 4F 4D 73 2E expansion ROMs.
000050: 20 54 68 65 20 20 27 66 61 72 20 20 61 64 64 72 The 'far addr
000060: 65 73 73 27 20 20 69 73 20 20 61 20 20 74 68 72 ess' is a thr
000070: 65 65 20 20 62 79 74 65 0D 0A 20 20 20 20 20 20 ee byte..
000080: 20 6F 62 6A 65 63 74 2C 20 74 68 65 20 6C 61 73 object, the las
000090: 74 20 62 79 74 65 20 6F 66 20 77 68 69 63 68 20 t byte of which
0000A0: 69 73 20 20 61 20 20 52 4F 4D 20 20 73 65 6C 65 is a ROM sele
0000B0: 63 74 20 20 6E 75 6D 62 65 72 2E 20 20 53 69 6E ct number. Sin
0000C0: 63 65 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 ce the..
0000D0: 61 72 72 61 6E 67 65 6D 65 6E 74 20 6F 66 20 52 arrangement of R
0000E0: 4F 4D 73 20 69 6E 20 61 6E 20 65 78 70 61 6E 73 OMs in an expans
0000F0: 69 6F 6E 20 63 61 72 64 20 69 73 20 71 75 69 74 ion card is quit
000100: 65 20 20 61 72 62 69 74 72 61 72 79 20 20 74 68 e arbitrary th
000110: 65 20 20 52 4F 4D 0D 0A 20 20 20 20 20 20 20 73 e ROM.. s
000120: 65 6C 65 63 74 20 70 61 72 74 20 6F 66 20 74 68 elect part of th
000130: 65 20 27 66 61 72 20 61 64 64 72 65 73 73 27 20 e 'far address'
000140: 6D 75 73 74 20 62 65 20 65 73 74 61 62 6C 69 73 must be establis
000150: 68 65 64 20 61 74 20 72 75 6E 20 74 69 6D 65 2E hed at run time.
000160: 20 20 54 68 65 0D 0A 20 20 20 20 20 20 20 27 73 The.. 's
000170: 69 64 65 77 61 79 73 27 20 52 4F 4D 20 61 64 64 ideways' ROM add
000180: 72 65 73 73 69 6E 67 20 66 61 63 69 6C 69 74 79 ressing facility
000190: 20 20 61 6C 6C 6F 77 73 20 20 61 20 20 66 6F 72 allows a for
0001A0: 65 67 72 6F 75 6E 64 20 20 70 72 6F 67 72 61 6D eground program
0001B0: 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 6F 63 63 to.. occ
0001C0: 75 70 79 20 75 70 20 74 6F 20 20 66 6F 75 72 20 upy up to four
0001D0: 20 63 6F 6E 74 69 67 75 6F 75 73 20 20 52 4F 4D contiguous ROM
0001E0: 20 20 73 65 6C 65 63 74 20 20 61 64 64 72 65 73 select addres
0001F0: 73 65 73 2C 20 20 61 6E 64 20 20 73 75 70 70 6F ses, and suppo
Size : 512 (Real : 512)
000000: 72 74 73 0D 0A 20 20 20 20 20 20 20 73 75 62 72 rts.. subr
000010: 6F 75 74 69 6E 65 20 63 61 6C 6C 73 20 62 65 74 outine calls bet
000020: 77 65 65 6E 20 74 68 65 20 52 4F 4D 73 20 77 69 ween the ROMs wi
000030: 74 68 6F 75 74 20 20 72 65 71 75 69 72 69 6E 67 thout requiring
000040: 20 20 74 68 65 20 20 70 72 6F 67 72 61 6D 20 20 the program
000050: 74 6F 0D 0A 20 20 20 20 20 20 20 6B 6E 6F 77 20 to.. know
000060: 74 68 65 20 61 63 74 75 61 6C 20 52 4F 4D 20 61 the actual ROM a
000070: 64 64 72 65 73 73 20 6F 66 20 61 6E 79 20 6F 66 ddress of any of
000080: 20 74 68 65 6D 2E 0D 0A 0D 0A 20 20 20 20 20 20 them.....
000090: 20 31 30 2E 32 20 54 68 65 20 46 6F 72 6D 61 74 10.2 The Format
0000A0: 20 6F 66 20 61 6E 20 45 78 70 61 6E 73 69 6F 6E of an Expansion
0000B0: 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ROM.....
0000C0: 41 6E 20 65 78 70 61 6E 73 69 6F 6E 20 52 4F 4D An expansion ROM
0000D0: 20 6D 61 79 20 62 65 20 75 70 20 74 6F 20 31 36 may be up to 16
0000E0: 4B 20 62 79 74 65 73 20 6C 6F 6E 67 2C 20 74 68 K bytes long, th
0000F0: 65 20 66 69 72 73 74 20 62 79 74 65 20 62 65 69 e first byte bei
000100: 6E 67 20 20 61 74 0D 0A 20 20 20 20 20 20 20 61 ng at.. a
000110: 64 64 72 65 73 73 20 23 43 30 30 30 2E 20 54 68 ddress #C000. Th
000120: 65 20 66 69 72 73 74 20 66 65 77 20 62 79 74 65 e first few byte
000130: 73 20 6F 66 20 74 68 65 20 52 4F 4D 20 61 72 65 s of the ROM are
000140: 20 74 68 65 20 27 52 4F 4D 20 50 72 65 66 69 78 the 'ROM Prefix
000150: 27 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 6D 75 ' and.. mu
000160: 73 74 20 74 61 6B 65 20 74 68 65 20 66 6F 72 6D st take the form
000170: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 :....
000180: 20 20 20 20 20 42 79 74 65 20 30 20 3A 20 20 52 Byte 0 : R
000190: 4F 4D 20 74 79 70 65 2E 0D 0A 20 20 20 20 20 20 OM type...
0001A0: 20 20 20 20 20 20 20 20 20 20 42 79 74 65 20 31 Byte 1
0001B0: 20 3A 20 20 52 4F 4D 20 4D 61 72 6B 20 4E 75 6D : ROM Mark Num
0001C0: 62 65 72 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 ber...
0001D0: 20 20 20 20 20 20 42 79 74 65 20 32 20 3A 20 20 Byte 2 :
0001E0: 52 4F 4D 20 56 65 72 73 69 6F 6E 20 4E 75 6D 62 ROM Version Numb
0001F0: 65 72 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 er...
Size : 512 (Real : 512)
000000: 20 20 20 20 20 42 79 74 65 20 33 20 3A 20 20 52 Byte 3 : R
000010: 4F 4D 20 4D 6F 64 69 66 69 63 61 74 69 6F 6E 20 OM Modification
000020: 4C 65 76 65 6C 2E 0D 0A 20 20 20 20 20 20 20 20 Level...
000030: 20 20 20 20 20 20 20 20 42 79 74 65 20 34 20 3A Byte 4 :
000040: 20 20 45 78 74 65 72 6E 61 6C 20 43 6F 6D 6D 61 External Comma
000050: 6E 64 20 54 61 62 6C 65 2E 0D 0A 0D 0A 20 20 20 nd Table.....
000060: 20 20 20 20 54 68 65 20 52 4F 4D 20 74 79 70 65 The ROM type
000070: 20 73 70 65 63 69 66 69 65 73 20 77 68 61 74 20 specifies what
000080: 73 6F 72 74 20 6F 66 20 52 4F 4D 20 74 68 69 73 sort of ROM this
000090: 20 20 69 73 20 20 61 6E 64 20 20 6D 75 73 74 20 is and must
0000A0: 20 74 61 6B 65 20 20 74 68 65 0D 0A 20 20 20 20 take the..
0000B0: 20 20 20 66 6F 6C 6C 6F 77 69 6E 67 20 76 61 6C following val
0000C0: 75 65 73 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 ues:..
0000D0: 20 20 20 20 20 20 30 3A 20 20 20 46 6F 72 65 67 0: Foreg
0000E0: 72 6F 75 6E 64 20 52 4F 4D 2E 0D 0A 20 20 20 20 round ROM...
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 31 3A 20 20 1:
000100: 20 42 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 2E Background ROM.
000110: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000120: 20 20 32 3A 20 20 20 45 78 74 65 6E 73 69 6F 6E 2: Extension
000130: 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ROM.....
000140: 54 68 65 20 6F 6E 2D 62 6F 61 72 64 20 52 4F 4D The on-board ROM
000150: 20 6D 75 73 74 20 62 65 20 75 6E 69 71 75 65 20 must be unique
000160: 69 6E 20 68 61 76 69 6E 67 20 62 69 74 20 37 20 in having bit 7
000170: 6F 66 20 74 68 65 20 74 79 70 65 20 20 62 79 74 of the type byt
000180: 65 20 20 73 65 74 0D 0A 20 20 20 20 20 20 20 28 e set.. (
000190: 74 68 75 73 20 69 74 73 20 74 79 70 65 20 62 79 thus its type by
0001A0: 74 65 20 69 73 20 23 38 30 29 2E 20 54 68 69 73 te is #80). This
0001B0: 20 6D 61 72 6B 65 72 20 69 73 20 75 73 65 64 20 marker is used
0001C0: 74 6F 20 64 65 74 65 63 74 20 74 68 65 20 65 6E to detect the en
0001D0: 64 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 66 6F d of.. fo
0001E0: 72 65 67 72 6F 75 6E 64 20 52 4F 4D 73 2E 20 49 reground ROMs. I
0001F0: 66 20 61 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 f a foreground p
Size : 512 (Real : 512)
000000: 72 6F 67 72 61 6D 20 77 69 6C 6C 20 6E 6F 74 20 rogram will not
000010: 66 69 74 20 20 69 6E 74 6F 20 20 61 20 20 73 69 fit into a si
000020: 6E 67 6C 65 0D 0A 20 20 20 20 20 20 20 52 4F 4D ngle.. ROM
000030: 20 74 68 65 6E 20 74 68 65 20 65 78 74 72 61 20 then the extra
000040: 52 4F 4D 73 20 72 65 71 75 69 72 65 64 20 73 68 ROMs required sh
000050: 6F 75 6C 64 20 62 65 20 6D 61 72 6B 65 64 20 61 ould be marked a
000060: 73 20 65 78 74 65 6E 73 69 6F 6E 20 52 4F 4D 73 s extension ROMs
000070: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
000080: 6D 61 72 6B 20 6E 75 6D 62 65 72 2C 20 76 65 72 mark number, ver
000090: 73 69 6F 6E 20 6E 75 6D 62 65 72 20 61 6E 64 20 sion number and
0000A0: 6D 6F 64 69 66 69 63 61 74 69 6F 6E 20 6C 65 76 modification lev
0000B0: 65 6C 20 6D 61 79 20 62 65 20 20 73 65 74 20 20 el may be set
0000C0: 74 6F 0D 0A 20 20 20 20 20 20 20 61 6E 79 20 76 to.. any v
0000D0: 61 6C 75 65 73 20 72 65 71 75 69 72 65 64 2E 0D alues required..
0000E0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 65 78 ... The ex
0000F0: 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 20 74 ternal command t
000100: 61 62 6C 65 20 63 6F 6D 70 72 69 73 65 73 20 61 able comprises a
000110: 20 6C 69 73 74 20 6F 66 20 20 63 6F 6D 6D 61 6E list of comman
000120: 64 20 20 6E 61 6D 65 73 20 20 61 6E 64 20 20 61 d names and a
000130: 0D 0A 20 20 20 20 20 20 20 6A 75 6D 70 62 6C 6F .. jumpblo
000140: 63 6B 2E 20 45 61 63 68 20 63 6F 6D 6D 61 6E 64 ck. Each command
000150: 20 6E 61 6D 65 20 69 73 20 69 6D 70 6C 69 63 69 name is implici
000160: 74 6C 79 20 61 73 73 6F 63 69 61 74 65 64 20 20 tly associated
000170: 77 69 74 68 20 20 74 68 65 20 20 73 61 6D 65 0D with the same.
000180: 0A 20 20 20 20 20 20 20 6E 75 6D 62 65 72 65 64 . numbered
000190: 20 65 6E 74 72 79 20 69 6E 20 74 68 65 20 6A 75 entry in the ju
0001A0: 6D 70 62 6C 6F 63 6B 2E 20 54 68 65 20 74 61 62 mpblock. The tab
0001B0: 6C 65 20 74 61 6B 65 73 20 74 68 65 20 66 6F 72 le takes the for
0001C0: 6D 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 m:..
0001D0: 20 20 20 20 42 79 74 65 73 20 30 2E 2E 31 20 20 Bytes 0..1
0001E0: 3A 41 64 64 72 65 73 73 20 6F 66 20 63 6F 6D 6D :Address of comm
0001F0: 61 6E 64 20 6E 61 6D 65 20 74 61 62 6C 65 0D 0A and name table..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 42 79 74 65 73 20 32 2E 2E 34 20 20 3A 4A 75 6D Bytes 2..4 :Jum
000020: 70 62 6C 6F 63 6B 20 65 6E 74 72 79 20 30 0D 0A pblock entry 0..
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 42 79 74 65 73 20 35 2E 2E 37 20 20 3A 4A 75 6D Bytes 5..7 :Jum
000050: 70 62 6C 6F 63 6B 20 65 6E 74 72 79 20 31 0D 0A pblock entry 1..
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 2E 2E 2E 65 74 63 20 3A 2E 2E 2E 65 74 63 0D 0A ...etc :...etc..
000080: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
000090: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
0000A0: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 20 20 20 20 70 61 67 65 20 31 30 2E 32 0D page 10.2.
0000D0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
0000E0: 20 20 20 20 54 68 65 20 63 6F 6D 6D 61 6E 64 20 The command
0000F0: 6E 61 6D 65 20 74 61 62 6C 65 20 69 73 20 61 20 name table is a
000100: 6C 69 73 74 20 6F 66 20 6E 61 6D 65 73 2C 20 65 list of names, e
000110: 61 63 68 20 6F 66 20 77 68 69 63 68 20 6D 61 79 ach of which may
000120: 20 62 65 20 75 70 20 20 74 6F 0D 0A 20 20 20 20 be up to..
000130: 20 20 20 31 36 20 63 68 61 72 61 63 74 65 72 73 16 characters
000140: 20 6C 6F 6E 67 2E 20 54 68 65 20 6C 61 73 74 20 long. The last
000150: 63 68 61 72 61 63 74 65 72 20 6F 66 20 65 61 63 character of eac
000160: 68 20 6E 61 6D 65 20 6D 75 73 74 20 20 68 61 76 h name must hav
000170: 65 20 20 62 69 74 20 20 37 0D 0A 20 20 20 20 20 e bit 7..
000180: 20 20 73 65 74 20 62 75 74 20 6E 6F 20 6F 74 68 set but no oth
000190: 65 72 20 63 68 61 72 61 63 74 65 72 20 6D 61 79 er character may
0001A0: 2E 20 54 68 65 20 74 61 62 6C 65 20 20 69 73 20 . The table is
0001B0: 20 74 65 72 6D 69 6E 61 74 65 64 20 20 62 79 20 terminated by
0001C0: 20 61 20 20 6E 75 6C 6C 0D 0A 20 20 20 20 20 20 a null..
0001D0: 20 28 63 68 61 72 61 63 74 65 72 20 30 29 20 61 (character 0) a
0001E0: 66 74 65 72 20 74 68 65 20 6C 61 73 74 20 63 68 fter the last ch
0001F0: 61 72 61 63 74 65 72 20 6F 66 20 74 68 65 20 6C aracter of the l
Size : 512 (Real : 512)
000000: 61 73 74 20 20 6E 61 6D 65 2E 20 20 41 70 61 72 ast name. Apar
000010: 74 20 20 66 72 6F 6D 0D 0A 20 20 20 20 20 20 20 t from..
000020: 74 68 65 20 66 61 63 74 20 74 68 61 74 20 61 6C the fact that al
000030: 6C 20 63 68 61 72 61 63 74 65 72 73 20 6D 75 73 l characters mus
000040: 74 20 62 65 20 69 6E 20 74 68 65 20 72 61 6E 67 t be in the rang
000050: 65 20 30 2E 2E 31 32 37 20 61 6E 64 20 74 68 61 e 0..127 and tha
000060: 74 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 66 t the.. f
000070: 69 72 73 74 20 63 68 61 72 61 63 74 65 72 20 6D irst character m
000080: 61 79 20 6E 6F 74 20 62 65 20 61 20 6E 75 6C 6C ay not be a null
000090: 2C 20 74 68 65 72 65 20 61 72 65 20 6E 6F 20 20 , there are no
0000A0: 72 65 73 74 72 69 63 74 69 6F 6E 73 20 20 6F 6E restrictions on
0000B0: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 63 68 the.. ch
0000C0: 61 72 61 63 74 65 72 73 20 69 6E 20 63 6F 6D 6D aracters in comm
0000D0: 61 6E 64 20 6E 61 6D 65 73 2E 20 48 6F 77 65 76 and names. Howev
0000E0: 65 72 2C 20 20 69 66 20 20 75 6E 73 75 69 74 61 er, if unsuita
0000F0: 62 6C 65 20 20 63 68 61 72 61 63 74 65 72 73 20 ble characters
000100: 20 61 72 65 0D 0A 20 20 20 20 20 20 20 63 68 6F are.. cho
000110: 73 65 6E 20 69 74 20 6D 61 79 20 70 72 6F 76 65 sen it may prove
000120: 20 69 6D 70 6F 73 73 69 62 6C 65 20 66 6F 72 20 impossible for
000130: 70 72 6F 67 72 61 6D 73 20 73 75 63 68 20 61 73 programs such as
000140: 20 20 42 41 53 49 43 20 20 74 6F 20 20 61 63 63 BASIC to acc
000150: 65 73 73 0D 0A 20 20 20 20 20 20 20 74 68 65 20 ess.. the
000160: 63 6F 6D 6D 61 6E 64 73 2E 20 42 41 53 49 43 20 commands. BASIC
000170: 65 78 70 65 63 74 73 20 61 6C 70 68 61 62 65 74 expects alphabet
000180: 69 63 20 63 68 61 72 61 63 74 65 72 73 20 69 6E ic characters in
000190: 20 74 68 65 20 20 63 6F 6D 6D 61 6E 64 6E 61 6D the commandnam
0001A0: 65 73 0D 0A 20 20 20 20 20 20 20 74 6F 20 62 65 es.. to be
0001B0: 20 69 6E 20 75 70 70 65 72 20 63 61 73 65 20 61 in upper case a
0001C0: 6E 64 20 77 69 6C 6C 20 6E 6F 74 20 61 6C 6C 6F nd will not allo
0001D0: 77 20 63 68 61 72 61 63 74 65 72 73 20 73 75 63 w characters suc
0001E0: 68 20 61 73 20 61 20 73 70 61 63 65 20 6F 72 0D h as a space or.
0001F0: 0A 20 20 20 20 20 20 20 63 6F 6D 6D 61 20 69 6E . comma in
Size : 512 (Real : 512)
000000: 20 74 68 65 20 63 6F 6D 6D 61 6E 64 20 6E 61 6D the command nam
000010: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 e..... The
000020: 20 52 4F 4D 20 70 72 65 66 69 78 20 66 6F 72 20 ROM prefix for
000030: 74 68 65 20 6F 6E 2D 62 6F 61 72 64 20 52 4F 4D the on-board ROM
000040: 20 69 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 is:....
000050: 20 20 20 20 20 20 20 20 20 20 20 20 4F 52 47 20 ORG
000060: 23 43 30 30 30 20 20 20 20 20 20 20 20 20 20 20 #C000
000070: 3B 53 74 61 72 74 20 6F 66 20 74 68 65 20 52 4F ;Start of the RO
000080: 4D 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 M....
000090: 20 20 20 20 20 20 20 20 20 44 45 46 42 20 23 38 DEFB #8
0000A0: 30 2B 30 20 20 20 20 20 20 20 20 20 20 3B 4F 6E 0+0 ;On
0000B0: 20 62 6F 61 72 64 20 52 4F 4D 2C 20 46 6F 72 65 board ROM, Fore
0000C0: 67 72 6F 75 6E 64 0D 0A 20 20 20 20 20 20 20 20 ground..
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 44 45 46 42 DEFB
0000E0: 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1
0000F0: 3B 4D 61 72 6B 20 31 0D 0A 20 20 20 20 20 20 20 ;Mark 1..
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 44 45 46 DEF
000110: 42 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 B 0
000120: 20 3B 56 65 72 73 69 6F 6E 20 30 0D 0A 20 20 20 ;Version 0..
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 44 45 46 42 20 30 20 20 20 20 20 20 20 20 20 DEFB 0
000150: 20 20 20 20 20 3B 4D 6F 64 69 66 69 63 61 74 69 ;Modificati
000160: 6F 6E 20 30 0D 0A 0D 0A 20 20 20 20 20 20 20 20 on 0....
000170: 20 20 20 20 20 20 20 20 20 20 20 20 44 45 46 57 DEFW
000180: 20 4E 41 4D 45 5F 54 41 42 4C 45 20 20 20 20 20 NAME_TABLE
000190: 3B 41 64 64 72 65 73 73 20 6F 66 20 6E 61 6D 65 ;Address of name
0001A0: 20 74 61 62 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 table.....
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4A J
0001C0: 50 20 53 54 41 52 54 5F 42 41 53 49 43 20 20 20 P START_BASIC
0001D0: 20 20 20 3B 54 68 65 20 6F 6E 6C 79 20 65 6E 74 ;The only ent
0001E0: 72 79 20 69 6E 20 74 68 65 20 6A 75 6D 70 62 6C ry in the jumpbl
0001F0: 6F 63 6B 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 41 ock.... NA
Size : 512 (Real : 512)
000000: 4D 45 5F 54 41 42 4C 45 3A 20 20 44 45 46 42 20 ME_TABLE: DEFB
000010: 27 42 41 53 49 27 2C 27 43 27 2B 23 38 30 20 3B 'BASI','C'+#80 ;
000020: 54 68 65 20 6F 6E 6C 79 20 63 6F 6D 6D 61 6E 64 The only command
000030: 20 6E 61 6D 65 0D 0A 20 20 20 20 20 20 20 20 20 name..
000040: 20 20 20 20 20 20 20 20 20 20 20 44 45 46 42 20 DEFB
000050: 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 0 ;
000060: 45 6E 64 20 6F 66 20 74 61 62 6C 65 20 6D 61 72 End of table mar
000070: 6B 65 72 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ker......
000080: 54 68 65 20 52 4F 4D 20 70 72 65 66 69 78 20 66 The ROM prefix f
000090: 6F 72 20 61 20 73 65 72 69 61 6C 20 49 2F 4F 20 or a serial I/O
0000A0: 63 61 72 64 20 6D 69 67 68 74 20 62 65 3A 0D 0A card might be:..
0000B0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0000C0: 20 20 20 20 20 20 4F 52 47 20 23 43 30 30 30 20 ORG #C000
0000D0: 20 20 20 20 20 20 20 20 20 20 3B 53 74 61 72 74 ;Start
0000E0: 20 6F 66 20 52 4F 4D 0D 0A 0D 0A 20 20 20 20 20 of ROM....
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 D
000100: 45 46 42 20 31 20 20 20 20 20 20 20 20 20 20 20 EFB 1
000110: 20 20 20 3B 42 61 63 6B 67 72 6F 75 6E 64 20 52 ;Background R
000120: 4F 4D 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 OM..
000130: 20 20 20 20 20 20 20 20 44 45 46 42 20 30 20 20 DEFB 0
000140: 20 20 20 20 20 20 20 20 20 20 20 20 3B 4D 61 72 ;Mar
000150: 6B 20 30 0D 0A 20 20 20 20 20 20 20 20 20 20 20 k 0..
000160: 20 20 20 20 20 20 20 20 20 44 45 46 42 20 35 20 DEFB 5
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 56 65 ;Ve
000180: 72 73 69 6F 6E 20 35 0D 0A 20 20 20 20 20 20 20 rsion 5..
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 44 45 46 DEF
0001A0: 42 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 B 0
0001B0: 20 3B 4D 6F 64 69 66 69 63 61 74 69 6F 6E 20 30 ;Modification 0
0001C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
0001D0: 20 20 20 20 20 20 20 20 44 45 46 57 20 4E 41 4D DEFW NAM
0001E0: 45 5F 54 41 42 4C 45 20 20 20 20 20 3B 41 64 64 E_TABLE ;Add
0001F0: 72 65 73 73 20 6F 66 20 6E 61 6D 65 20 74 61 62 ress of name tab
Size : 512 (Real : 512)
000000: 6C 65 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 le....
000010: 20 20 20 20 20 20 20 20 20 20 4A 50 20 45 4D 53 JP EMS
000020: 5F 45 4E 54 52 59 20 20 20 20 20 20 20 20 3B 30 _ENTRY ;0
000030: 20 42 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 20 Background ROM
000040: 70 6F 77 65 72 2D 75 70 20 65 6E 74 72 79 0D 0A power-up entry..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 4A 50 20 52 45 53 45 54 20 20 20 20 JP RESET
000070: 20 20 20 20 20 20 20 20 3B 31 0D 0A 20 20 20 20 ;1..
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 4A 50 20 53 45 54 5F 42 41 55 44 5F 52 41 54 45 JP SET_BAUD_RATE
0000A0: 20 20 20 20 3B 32 0D 0A 20 20 20 20 20 20 20 20 ;2..
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 4A 50 20 47 JP G
0000C0: 45 54 5F 43 48 41 52 41 43 54 45 52 20 20 20 20 ET_CHARACTER
0000D0: 3B 33 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ;3..
0000E0: 20 20 20 20 20 20 20 20 4A 50 20 50 55 54 5F 43 JP PUT_C
0000F0: 48 41 52 41 43 54 45 52 20 20 20 20 3B 34 0D 0A HARACTER ;4..
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 20 20 20 20 20 20 20 2E 2E 2E 65 74 63 0D 0A 0D ...etc...
000120: 0A 20 20 20 20 20 20 20 4E 41 4D 45 5F 54 41 42 . NAME_TAB
000130: 4C 45 3A 20 20 44 45 46 42 20 27 53 49 4F 20 44 LE: DEFB 'SIO D
000140: 52 49 56 45 27 2C 27 52 27 2B 23 38 30 20 20 20 RIVE','R'+#80
000150: 20 20 20 20 20 20 20 20 20 3B 30 0D 0A 20 20 20 ;0..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 44 45 46 42 20 27 53 49 4F 2E 52 45 53 45 27 DEFB 'SIO.RESE'
000180: 2C 27 54 27 2B 23 38 30 20 20 20 20 20 20 20 20 ,'T'+#80
000190: 20 20 20 20 20 3B 31 0D 0A 20 20 20 20 20 20 20 ;1..
0001A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 44 45 46 DEF
0001B0: 42 20 27 53 49 4F 2E 53 45 54 2E 42 41 55 27 2C B 'SIO.SET.BAU',
0001C0: 27 44 27 2B 23 38 30 20 20 20 20 20 20 20 20 20 'D'+#80
0001D0: 20 3B 32 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ;2..
0001E0: 20 20 20 20 20 20 20 20 20 44 45 46 42 20 27 53 DEFB 'S
0001F0: 49 4F 2E 47 45 54 2E 43 48 41 27 2C 27 52 27 2B IO.GET.CHA','R'+
Size : 512 (Real : 512)
000000: 23 38 30 20 20 20 20 20 20 20 20 20 20 3B 33 0D #80 ;3.
000010: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000020: 20 20 20 20 20 44 45 46 42 20 27 53 49 4F 2E 50 DEFB 'SIO.P
000030: 55 54 2E 43 48 41 27 2C 27 52 27 2B 23 38 30 20 UT.CHA','R'+#80
000040: 20 20 20 20 20 20 20 20 20 3B 34 0D 0A 20 20 20 ;4..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 2E 2E 2E 65 74 63 0D 0A 20 ...etc..
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 20 44 45 46 42 20 30 20 20 20 20 20 20 20 DEFB 0
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 20 20 20 3B 45 6E 64 20 6F 66 20 74 ;End of t
0000B0: 61 62 6C 65 20 6D 61 72 6B 65 72 0D 0A 0D 0A 0D able marker.....
0000C0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
0000D0: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
0000E0: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
000110: 31 30 2E 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 10.3............
000120: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 20 74 68 .. Note th
000130: 61 74 20 74 68 65 20 63 6F 6D 6D 61 6E 64 20 6E at the command n
000140: 61 6D 65 20 74 61 62 6C 65 20 65 6E 74 72 79 20 ame table entry
000150: 66 6F 72 20 74 68 65 20 70 6F 77 65 72 2D 75 70 for the power-up
000160: 20 65 6E 74 72 79 20 69 6E 63 6C 75 64 65 73 0D entry includes.
000170: 0A 20 20 20 20 20 20 20 61 20 73 70 61 63 65 2E . a space.
000180: 20 54 68 69 73 20 69 73 20 73 74 69 6C 6C 20 61 This is still a
000190: 20 6C 65 67 61 6C 20 6E 61 6D 65 20 62 75 74 20 legal name but
0001A0: 74 68 65 20 42 41 53 49 43 20 77 69 6C 6C 20 6E the BASIC will n
0001B0: 65 76 65 72 20 20 62 65 20 20 61 62 6C 65 0D 0A ever be able..
0001C0: 20 20 20 20 20 20 20 74 6F 20 67 65 6E 65 72 61 to genera
0001D0: 74 65 20 69 74 20 62 65 63 61 75 73 65 20 6F 66 te it because of
0001E0: 20 74 68 65 20 77 61 79 20 69 74 20 75 73 65 73 the way it uses
0001F0: 20 73 70 61 63 65 73 2E 20 42 65 63 61 75 73 65 spaces. Because
Size : 512 (Real : 512)
000000: 20 42 41 53 49 43 20 63 61 6E 6E 6F 74 0D 0A 20 BASIC cannot..
000010: 20 20 20 20 20 20 67 65 6E 65 72 61 74 65 20 74 generate t
000020: 68 65 20 6E 61 6D 65 20 69 74 20 69 73 20 69 6D he name it is im
000030: 70 6F 73 73 69 62 6C 65 20 20 66 6F 72 20 20 61 possible for a
000040: 20 20 42 41 53 49 43 20 20 75 73 65 72 20 20 74 BASIC user t
000050: 6F 20 20 63 61 6C 6C 20 20 74 68 65 0D 0A 20 20 o call the..
000060: 20 20 20 20 20 70 6F 77 65 72 2D 75 70 20 65 6E power-up en
000070: 74 72 79 20 62 79 20 6D 69 73 74 61 6B 65 20 28 try by mistake (
000080: 73 65 65 20 73 65 63 74 69 6F 6E 20 31 30 2E 34 see section 10.4
000090: 29 0D 0A 0D 0A 20 20 20 20 20 20 20 31 30 2E 33 ).... 10.3
0000A0: 20 46 6F 72 65 67 72 6F 75 6E 64 20 52 4F 4D 73 Foreground ROMs
0000B0: 20 61 6E 64 20 52 41 4D 20 50 72 6F 67 72 61 6D and RAM Program
0000C0: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 61 63 s..... Eac
0000D0: 68 20 6F 66 20 74 68 65 20 65 6E 74 72 69 65 73 h of the entries
0000E0: 20 74 6F 20 74 68 65 20 66 6F 72 65 67 72 6F 75 to the foregrou
0000F0: 6E 64 20 52 4F 4D 20 69 73 20 65 78 70 65 63 74 nd ROM is expect
000100: 65 64 20 74 6F 20 20 72 65 70 72 65 73 65 6E 74 ed to represent
000110: 20 20 61 0D 0A 20 20 20 20 20 20 20 73 65 70 61 a.. sepa
000120: 72 61 74 65 20 70 72 6F 67 72 61 6D 2C 20 77 68 rate program, wh
000130: 6F 73 65 20 6E 61 6D 65 20 69 73 20 67 69 76 65 ose name is give
000140: 6E 20 62 79 20 74 68 65 20 20 63 6F 72 72 65 73 n by the corres
000150: 70 6F 6E 64 69 6E 67 20 20 65 6E 74 72 79 20 20 ponding entry
000160: 69 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 20 6E in.. the n
000170: 61 6D 65 20 74 61 62 6C 65 2E 20 54 68 65 20 66 ame table. The f
000180: 69 72 73 74 20 65 6E 74 72 79 20 6F 66 20 52 4F irst entry of RO
000190: 4D 20 30 20 69 73 20 74 68 65 20 64 65 66 61 75 M 0 is the defau
0001A0: 6C 74 20 70 6F 77 65 72 2D 75 70 20 65 6E 74 72 lt power-up entr
0001B0: 79 0D 0A 20 20 20 20 20 20 20 70 6F 69 6E 74 20 y.. point
0001C0: 61 74 20 74 68 65 20 65 6E 64 20 6F 66 20 45 4D at the end of EM
0001D0: 53 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4F 6E 63 S..... Onc
0001E0: 65 20 61 20 52 41 4D 20 20 70 72 6F 67 72 61 6D e a RAM program
0001F0: 20 20 68 61 73 20 20 62 65 65 6E 20 20 6C 6F 61 has been loa
Size : 512 (Real : 512)
000000: 64 65 64 20 20 69 74 20 20 69 73 20 20 74 72 65 ded it is tre
000010: 61 74 65 64 20 20 6D 75 63 68 20 20 6C 69 6B 65 ated much like
000020: 20 20 61 0D 0A 20 20 20 20 20 20 20 66 6F 72 65 a.. fore
000030: 67 72 6F 75 6E 64 20 52 4F 4D 2C 20 65 78 63 65 ground ROM, exce
000040: 70 74 20 74 68 61 74 20 69 74 20 64 6F 65 73 20 pt that it does
000050: 6E 6F 74 20 68 61 76 65 20 61 20 20 52 4F 4D 20 not have a ROM
000060: 20 70 72 65 66 69 78 2C 20 20 61 6E 64 20 20 74 prefix, and t
000070: 68 65 0D 0A 20 20 20 20 20 20 20 72 65 71 75 69 he.. requi
000080: 72 65 64 20 65 6E 74 72 79 20 70 6F 69 6E 74 20 red entry point
000090: 69 73 20 64 65 74 65 72 6D 69 6E 65 64 20 73 65 is determined se
0000A0: 70 61 72 61 74 65 6C 79 2E 0D 0A 0D 0A 20 20 20 parately.....
0000B0: 20 20 20 20 4A 75 73 74 20 62 65 66 6F 72 65 20 Just before
0000C0: 61 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F a foreground pro
0000D0: 67 72 61 6D 20 69 73 20 65 6E 74 65 72 65 64 20 gram is entered
0000E0: 74 68 65 20 6D 61 63 68 69 6E 65 20 20 69 73 20 the machine is
0000F0: 20 72 65 73 65 74 20 20 74 6F 0D 0A 20 20 20 20 reset to..
000100: 20 20 20 69 74 73 20 45 4D 53 20 73 74 61 74 65 its EMS state
000110: 3B 20 20 69 2E 65 2E 20 20 61 6C 6C 20 20 74 68 ; i.e. all th
000120: 65 20 20 68 61 72 64 77 61 72 65 20 20 61 6E 64 e hardware and
000130: 20 20 61 6C 6C 20 20 74 68 65 20 20 66 69 72 6D all the firm
000140: 77 61 72 65 20 20 61 72 65 0D 0A 20 20 20 20 20 ware are..
000150: 20 20 69 6E 69 74 69 61 6C 69 7A 65 64 2E 20 54 initialized. T
000160: 68 65 20 65 6E 76 69 72 6F 6E 6D 65 6E 74 20 61 he environment a
000170: 6E 64 20 65 6E 74 72 79 20 63 6F 6E 64 69 74 69 nd entry conditi
000180: 6F 6E 73 20 61 72 65 20 61 73 20 66 6F 6C 6C 6F ons are as follo
000190: 77 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 65 ws:.... Me
0001A0: 6D 6F 72 79 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 mory:....
0001B0: 20 20 20 53 65 63 74 69 6F 6E 20 32 20 64 65 73 Section 2 des
0001C0: 63 72 69 62 65 73 20 74 68 65 20 6D 65 6D 6F 72 cribes the memor
0001D0: 79 20 6C 61 79 6F 75 74 20 6F 66 20 74 68 65 20 y layout of the
0001E0: 73 79 73 74 65 6D 2E 20 54 68 72 65 65 20 61 72 system. Three ar
0001F0: 65 61 73 20 6F 66 0D 0A 20 20 20 20 20 20 20 20 eas of..
Size : 512 (Real : 512)
000000: 20 20 6D 65 6D 6F 72 79 20 61 72 65 20 61 76 61 memory are ava
000010: 69 6C 61 62 6C 65 20 74 6F 20 74 68 65 20 70 72 ilable to the pr
000020: 6F 67 72 61 6D 2E 0D 0A 0D 0A 20 20 20 20 20 20 ogram.....
000030: 20 20 20 20 31 2E 20 54 68 65 20 53 74 61 74 69 1. The Stati
000040: 63 20 56 61 72 69 61 62 6C 65 20 41 72 65 61 2E c Variable Area.
000050: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 54 68 .... Th
000060: 65 20 61 72 65 61 20 66 72 6F 6D 20 23 41 43 30 e area from #AC0
000070: 30 20 74 6F 20 23 42 30 46 46 20 69 6E 63 6C 75 0 to #B0FF inclu
000080: 73 69 76 65 20 69 73 20 72 65 73 65 72 76 65 64 sive is reserved
000090: 20 66 6F 72 20 75 73 65 20 20 62 79 20 20 74 68 for use by th
0000A0: 65 0D 0A 20 20 20 20 20 20 20 20 20 20 66 6F 72 e.. for
0000B0: 65 67 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D 20 eground program
0000C0: 2D 20 61 6C 74 68 6F 75 67 68 20 20 69 74 20 20 - although it
0000D0: 6D 61 79 20 20 75 73 65 20 20 6D 6F 72 65 20 20 may use more
0000E0: 6F 72 20 20 6C 65 73 73 20 20 61 73 20 20 69 74 or less as it
0000F0: 0D 0A 20 20 20 20 20 20 20 20 20 20 72 65 71 75 .. requ
000100: 69 72 65 73 2E 20 49 74 20 69 73 20 61 6C 73 6F ires. It is also
000110: 20 70 6F 73 73 69 62 6C 65 20 74 6F 20 72 65 73 possible to res
000120: 65 72 76 65 20 20 61 20 20 66 6F 72 65 67 72 6F erve a foregro
000130: 75 6E 64 20 20 64 61 74 61 20 20 61 72 65 61 0D und data area.
000140: 0A 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 . start
000150: 69 6E 67 20 61 74 20 23 30 30 34 30 20 69 66 20 ing at #0040 if
000160: 74 68 69 73 20 69 73 20 72 65 71 75 69 72 65 64 this is required
000170: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 32 ..... 2
000180: 2E 20 54 68 65 20 53 74 61 63 6B 2E 0D 0A 0D 0A . The Stack.....
000190: 20 20 20 20 20 20 20 20 20 20 54 68 65 20 68 61 The ha
0001A0: 72 64 77 61 72 65 20 73 74 61 63 6B 20 69 73 20 rdware stack is
0001B0: 73 65 74 20 74 6F 20 61 6E 20 61 72 65 61 20 69 set to an area i
0001C0: 6D 6D 65 64 69 61 74 65 6C 79 20 62 65 6C 6F 77 mmediately below
0001D0: 20 23 43 30 30 30 20 20 77 68 69 63 68 0D 0A 20 #C000 which..
0001E0: 20 20 20 20 20 20 20 20 20 69 73 20 61 74 20 6C is at l
0001F0: 65 61 73 74 20 32 35 36 20 62 79 74 65 73 20 6C east 256 bytes l
Size : 512 (Real : 512)
000000: 6F 6E 67 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ong.....
000010: 20 20 33 2E 20 54 68 65 20 4D 61 69 6E 20 4D 65 3. The Main Me
000020: 6D 6F 72 79 20 50 6F 6F 6C 2E 0D 0A 0D 0A 20 20 mory Pool.....
000030: 20 20 20 20 20 20 20 20 4D 6F 73 74 20 6F 66 20 Most of
000040: 74 68 65 20 72 65 73 74 20 6F 66 20 6D 65 6D 6F the rest of memo
000050: 72 79 20 77 69 6C 6C 20 20 62 65 20 20 61 76 61 ry will be ava
000060: 69 6C 61 62 6C 65 20 20 74 6F 20 20 74 68 65 20 ilable to the
000070: 20 66 6F 72 65 67 72 6F 75 6E 64 0D 0A 20 20 20 foreground..
000080: 20 20 20 20 20 20 20 70 72 6F 67 72 61 6D 2C 20 program,
000090: 64 65 70 65 6E 64 69 6E 67 20 6F 6E 20 77 68 61 depending on wha
0000A0: 74 20 6D 65 6D 6F 72 79 20 69 73 20 74 61 6B 65 t memory is take
0000B0: 6E 20 62 79 20 61 6E 79 20 20 62 61 63 6B 67 72 n by any backgr
0000C0: 6F 75 6E 64 20 20 52 4F 4D 73 0D 0A 20 20 20 20 ound ROMs..
0000D0: 20 20 20 20 20 20 77 68 69 63 68 20 74 68 65 20 which the
0000E0: 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 72 foreground progr
0000F0: 61 6D 20 63 68 6F 6F 73 65 73 20 74 6F 20 69 6E am chooses to in
000100: 69 74 69 61 6C 69 7A 65 2E 0D 0A 0D 0A 0D 0A 20 itialize.......
000110: 20 20 20 20 20 20 52 65 67 69 73 74 65 72 73 3A Registers:
000120: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ......
000130: 54 68 65 20 62 61 73 65 20 61 6E 64 20 6C 69 6D The base and lim
000140: 69 74 20 6F 66 20 74 68 65 20 20 66 72 65 65 20 it of the free
000150: 20 6D 65 6D 6F 72 79 20 20 61 72 65 61 20 20 61 memory area a
000160: 72 65 20 20 70 61 73 73 65 64 20 20 74 6F 20 20 re passed to
000170: 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 70 the.. p
000180: 72 6F 67 72 61 6D 20 69 6E 20 72 65 67 69 73 74 rogram in regist
000190: 65 72 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ers.......
0001A0: 20 20 20 20 42 43 20 3D 20 41 64 64 72 65 73 73 BC = Address
0001B0: 20 6F 66 20 74 68 65 20 68 69 67 68 65 73 74 20 of the highest
0001C0: 75 73 61 62 6C 65 20 62 79 74 65 20 69 6E 20 6D usable byte in m
0001D0: 65 6D 6F 72 79 2E 20 28 23 42 30 46 46 29 0D 0A emory. (#B0FF)..
0001E0: 20 20 20 20 20 20 20 20 20 20 44 45 20 3D 20 41 DE = A
0001F0: 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 6C 6F ddress of the lo
Size : 512 (Real : 512)
000000: 77 65 73 74 20 75 73 61 62 6C 65 20 62 79 74 65 west usable byte
000010: 20 69 6E 20 74 68 65 20 6D 65 6D 6F 72 79 20 70 in the memory p
000020: 6F 6F 6C 2E 20 28 23 30 30 34 30 29 0D 0A 20 20 ool. (#0040)..
000030: 20 20 20 20 20 20 20 20 48 4C 20 3D 20 41 64 64 HL = Add
000040: 72 65 73 73 20 6F 66 20 74 68 65 20 68 69 67 68 ress of the high
000050: 65 73 74 20 62 79 74 65 20 69 6E 20 74 68 65 20 est byte in the
000060: 6D 65 6D 6F 72 79 20 70 6F 6F 6C 2E 20 28 23 41 memory pool. (#A
000070: 42 46 46 29 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 BFF)..........
000080: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
000090: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
0000A0: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 70 61 67 65 20 31 30 2E 34 0D 0A 0D 0A 0D page 10.4.....
0000D0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0000E0: 4E 6F 74 65 20 74 68 61 74 20 74 68 65 20 70 72 Note that the pr
0000F0: 6F 67 72 61 6D 20 69 73 20 66 72 65 65 20 74 6F ogram is free to
000100: 20 75 73 65 20 61 6E 79 20 6D 65 6D 6F 72 79 20 use any memory
000110: 20 62 65 74 77 65 65 6E 20 20 74 68 65 20 20 61 between the a
000120: 64 64 72 65 73 73 0D 0A 20 20 20 20 20 20 20 67 ddress.. g
000130: 69 76 65 6E 20 69 6E 20 44 45 20 61 6E 64 20 74 iven in DE and t
000140: 68 65 20 61 64 64 72 65 73 73 20 69 6E 20 42 43 he address in BC
000150: 20 69 6E 63 6C 75 73 69 76 65 20 28 69 2E 65 2E inclusive (i.e.
000160: 20 23 30 30 34 30 20 74 6F 20 23 42 30 46 46 29 #0040 to #B0FF)
000170: 2E 20 54 68 65 0D 0A 20 20 20 20 20 20 20 63 6F . The.. co
000180: 6E 74 65 6E 74 73 20 6F 66 20 48 4C 20 72 65 66 ntents of HL ref
000190: 6C 65 63 74 20 74 68 65 20 73 74 61 6E 64 61 72 lect the standar
0001A0: 64 20 61 6C 6C 6F 63 61 74 69 6F 6E 20 66 6F 72 d allocation for
0001B0: 20 20 73 74 61 74 69 63 20 20 76 61 72 69 61 62 static variab
0001C0: 6C 65 73 3B 0D 0A 20 20 20 20 20 20 20 74 68 65 les;.. the
0001D0: 20 70 72 6F 67 72 61 6D 20 69 73 20 66 72 65 65 program is free
0001E0: 20 74 6F 20 75 73 65 20 6D 6F 72 65 2C 20 6F 72 to use more, or
0001F0: 20 6C 65 73 73 2C 20 61 73 20 74 68 65 20 6D 6F less, as the mo
Size : 512 (Real : 512)
000000: 6F 64 20 74 61 6B 65 73 20 69 74 2E 20 41 6C 73 od takes it. Als
000010: 6F 20 61 0D 0A 20 20 20 20 20 20 20 66 6F 72 65 o a.. fore
000020: 67 72 6F 75 6E 64 20 64 61 74 61 20 61 72 65 61 ground data area
000030: 20 6D 61 79 20 62 65 20 72 65 73 65 72 76 65 64 may be reserved
000040: 20 61 74 20 74 68 65 20 62 6F 74 74 6F 6D 20 6F at the bottom o
000050: 66 20 73 74 6F 72 65 20 20 61 73 20 20 77 65 6C f store as wel
000060: 6C 2E 0D 0A 20 20 20 20 20 20 20 54 68 65 20 70 l... The p
000070: 72 6F 67 72 61 6D 20 73 68 6F 75 6C 64 20 73 65 rogram should se
000080: 74 20 48 4C 20 61 6E 64 20 44 45 20 74 6F 20 72 t HL and DE to r
000090: 65 66 6C 65 63 74 20 74 68 65 20 61 72 65 61 20 eflect the area
0000A0: 69 74 20 69 73 20 20 75 73 69 6E 67 20 20 66 6F it is using fo
0000B0: 72 0D 0A 20 20 20 20 20 20 20 76 61 72 69 61 62 r.. variab
0000C0: 6C 65 73 20 62 65 66 6F 72 65 20 69 6E 69 74 69 les before initi
0000D0: 61 6C 69 7A 69 6E 67 20 61 6E 79 20 62 61 63 6B alizing any back
0000E0: 67 72 6F 75 6E 64 20 52 4F 4D 73 20 28 73 65 65 ground ROMs (see
0000F0: 20 62 65 6C 6F 77 29 2E 0D 0A 0D 0A 20 20 20 20 below).....
000100: 20 20 20 53 50 20 69 73 20 73 65 74 20 74 6F 20 SP is set to
000110: 74 68 65 20 6D 61 63 68 69 6E 65 20 70 72 6F 76 the machine prov
000120: 69 64 65 64 20 61 72 65 61 20 23 43 30 30 30 2E ided area #C000.
000130: 20 54 68 65 20 70 72 6F 67 72 61 6D 20 20 63 61 The program ca
000140: 6E 20 20 64 65 70 65 6E 64 0D 0A 20 20 20 20 20 n depend..
000150: 20 20 6F 6E 20 61 74 20 6C 65 61 73 74 20 32 35 on at least 25
000160: 36 20 62 79 74 65 73 20 6F 66 20 73 74 61 63 6B 6 bytes of stack
000170: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
000180: 63 6F 6E 74 65 6E 74 73 20 6F 66 20 74 68 65 20 contents of the
000190: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
0001A0: 69 73 20 69 6E 64 65 74 65 72 6D 69 6E 61 74 65 is indeterminate
0001B0: 2E 20 20 4E 6F 74 65 20 20 74 68 61 74 20 20 74 . Note that t
0001C0: 68 65 0D 0A 20 20 20 20 20 20 20 61 6C 74 65 72 he.. alter
0001D0: 6E 61 74 65 20 72 65 67 69 73 74 65 72 20 73 65 nate register se
0001E0: 74 20 28 41 46 27 20 42 43 27 20 44 45 27 20 20 t (AF' BC' DE'
0001F0: 48 4C 27 29 20 20 69 73 20 20 6E 6F 74 20 20 61 HL') is not a
Size : 512 (Real : 512)
000000: 76 61 69 6C 61 62 6C 65 20 20 74 6F 20 20 74 68 vailable to th
000010: 65 0D 0A 20 20 20 20 20 20 20 70 72 6F 67 72 61 e.. progra
000020: 6D 2E 20 28 42 75 74 20 73 65 65 20 41 70 70 65 m. (But see Appe
000030: 6E 64 69 78 20 58 49 29 2E 0D 0A 0D 0A 20 20 20 ndix XI).....
000040: 20 20 20 20 52 4F 4D 20 73 65 6C 65 63 74 20 73 ROM select s
000050: 74 61 74 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 tate:....
000060: 20 20 20 20 20 20 20 20 20 46 6F 72 20 52 4F 4D For ROM
000070: 20 70 72 6F 67 72 61 6D 73 3A 20 20 20 20 20 20 programs:
000080: 20 54 68 65 20 66 6F 72 65 67 72 6F 75 6E 64 20 The foreground
000090: 52 4F 4D 20 69 73 20 73 65 6C 65 63 74 65 64 2E ROM is selected.
0000A0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 20 20 20 20 20 20 20 20 54 68 65 20 75 70 The up
0000D0: 70 65 72 20 52 4F 4D 20 69 73 20 65 6E 61 62 6C per ROM is enabl
0000E0: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ed.....
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 T
000110: 68 65 20 6C 6F 77 65 72 20 52 4F 4D 20 69 73 20 he lower ROM is
000120: 64 69 73 61 62 6C 65 64 2E 0D 0A 0D 0A 20 20 20 disabled.....
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 46 6F 72 For
000140: 20 52 41 4D 20 70 72 6F 67 72 61 6D 73 3A 20 20 RAM programs:
000150: 20 20 20 20 20 4E 6F 20 52 4F 4D 20 69 73 20 73 No ROM is s
000160: 65 6C 65 63 74 65 64 2E 0D 0A 20 20 20 20 20 20 elected...
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 54 68 65 20 75 70 70 65 72 20 52 4F 4D 20 The upper ROM
0001A0: 69 73 20 64 69 73 61 62 6C 65 64 0D 0A 20 20 20 is disabled..
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 20 20 20 20 54 68 65 20 6C 6F 77 65 72 20 52 The lower R
0001E0: 4F 4D 20 69 73 20 64 69 73 61 62 6C 65 64 2E 0D OM is disabled..
0001F0: 0A 0D 0A 20 20 20 20 20 20 20 47 65 6E 65 72 61 ... Genera
Size : 512 (Real : 512)
000000: 6C 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 l:....
000010: 20 20 20 20 20 20 49 6E 74 65 72 72 75 70 74 73 Interrupts
000020: 20 61 72 65 20 65 6E 61 62 6C 65 64 2E 0D 0A 0D are enabled....
000030: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000040: 20 41 6C 6C 20 68 61 72 64 77 61 72 65 20 20 61 All hardware a
000050: 6E 64 20 20 66 69 72 6D 77 61 72 65 20 20 69 73 nd firmware is
000060: 20 20 69 6E 20 20 69 74 73 20 20 69 6E 69 74 69 in its initi
000070: 61 6C 20 20 73 74 61 74 65 2E 20 20 49 6E 0D 0A al state. In..
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 70 61 72 74 69 63 75 6C 61 72 20 61 6E 79 20 65 particular any e
0000A0: 78 70 61 6E 73 69 6F 6E 20 64 65 76 69 63 65 73 xpansion devices
0000B0: 20 66 69 74 74 65 64 20 68 61 76 65 20 62 65 65 fitted have bee
0000C0: 6E 20 72 65 73 65 74 2C 20 20 62 75 74 0D 0A 20 n reset, but..
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6E n
0000E0: 6F 74 20 79 65 74 20 69 6E 69 74 69 61 6C 69 7A ot yet initializ
0000F0: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 74 ed..... It
000100: 20 69 73 20 20 74 68 65 20 20 66 6F 72 65 67 72 is the foregr
000110: 6F 75 6E 64 20 20 70 72 6F 67 72 61 6D 27 73 20 ound program's
000120: 20 72 65 73 70 6F 6E 73 69 62 69 6C 69 74 79 20 responsibility
000130: 20 74 6F 20 20 69 6E 69 74 69 61 6C 69 7A 65 20 to initialize
000140: 20 61 6E 79 0D 0A 20 20 20 20 20 20 20 62 61 63 any.. bac
000150: 6B 67 72 6F 75 6E 64 20 52 4F 4D 73 20 72 65 71 kground ROMs req
000160: 75 69 72 65 64 20 61 6E 64 20 74 6F 20 6C 6F 61 uired and to loa
000170: 64 20 20 61 6E 64 20 20 69 6E 69 74 69 61 6C 69 d and initiali
000180: 7A 65 20 20 61 6E 79 20 20 52 53 58 73 2E 20 20 ze any RSXs.
000190: 54 68 65 0D 0A 20 20 20 20 20 20 20 4B 65 72 6E The.. Kern
0001A0: 65 6C 20 65 6E 74 72 79 20 27 4B 4C 20 52 4F 4D el entry 'KL ROM
0001B0: 20 57 41 4C 4B 27 20 6C 6F 6F 6B 73 20 66 6F 72 WALK' looks for
0001C0: 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 73 background ROMs
0001D0: 20 20 61 6E 64 20 20 69 6E 69 74 69 61 6C 69 7A and initializ
0001E0: 65 73 0D 0A 20 20 20 20 20 20 20 61 6E 79 20 74 es.. any t
0001F0: 68 61 74 20 69 74 20 66 69 6E 64 73 2E 20 54 68 hat it finds. Th
Size : 512 (Real : 512)
000000: 65 20 4B 65 72 6E 65 6C 20 65 6E 74 72 79 20 27 e Kernel entry '
000010: 4B 4C 20 49 4E 49 54 20 42 41 43 4B 27 20 77 69 KL INIT BACK' wi
000020: 6C 6C 20 20 69 6E 69 74 69 61 6C 69 7A 65 20 20 ll initialize
000030: 61 0D 0A 20 20 20 20 20 20 20 70 61 72 74 69 63 a.. partic
000040: 75 6C 61 72 20 62 61 63 6B 67 72 6F 75 6E 64 20 ular background
000050: 52 4F 4D 2E 20 54 68 65 73 65 20 65 6E 74 72 69 ROM. These entri
000060: 65 73 20 6D 75 73 74 20 62 65 20 70 61 73 73 65 es must be passe
000070: 64 20 74 68 65 20 20 61 64 64 72 65 73 73 65 73 d the addresses
000080: 0D 0A 20 20 20 20 20 20 20 6F 66 20 74 68 65 20 .. of the
000090: 6C 6F 77 65 73 74 20 61 6E 64 20 68 69 67 68 65 lowest and highe
0000A0: 73 74 20 62 79 74 65 73 20 69 6E 20 74 68 65 20 st bytes in the
0000B0: 6D 65 6D 6F 72 79 20 70 6F 6F 6C 20 77 68 69 63 memory pool whic
0000C0: 68 20 20 69 73 20 20 77 68 79 20 20 74 68 65 0D h is why the.
0000D0: 0A 20 20 20 20 20 20 20 66 6F 72 65 67 72 6F 75 . foregrou
0000E0: 6E 64 20 70 72 6F 67 72 61 6D 20 6D 75 73 74 20 nd program must
0000F0: 72 65 73 65 72 76 65 20 69 74 73 20 66 69 78 65 reserve its fixe
000100: 64 20 64 61 74 61 20 61 72 65 61 20 62 65 66 6F d data area befo
000110: 72 65 20 77 69 6E 64 69 6E 67 20 20 75 70 0D 0A re winding up..
000120: 20 20 20 20 20 20 20 74 68 65 20 62 61 63 6B 67 the backg
000130: 72 6F 75 6E 64 20 52 4F 4D 73 2E 20 54 68 65 20 round ROMs. The
000140: 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 73 20 background ROMs
000150: 6D 61 79 20 61 6C 6C 6F 63 61 74 65 20 6D 65 6D may allocate mem
000160: 6F 72 79 20 66 6F 72 20 74 68 65 69 72 0D 0A 20 ory for their..
000170: 20 20 20 20 20 20 6F 77 6E 20 75 73 65 20 62 79 own use by
000180: 20 6D 6F 76 69 6E 67 20 20 65 69 74 68 65 72 20 moving either
000190: 20 6F 72 20 20 62 6F 74 68 20 20 62 6F 75 6E 64 or both bound
0001A0: 61 72 69 65 73 2E 20 20 49 66 2C 20 20 74 68 65 aries. If, the
0001B0: 72 65 66 6F 72 65 2C 20 20 74 68 65 0D 0A 20 20 refore, the..
0001C0: 20 20 20 20 20 66 6F 72 65 67 72 6F 75 6E 64 20 foreground
0001D0: 70 72 6F 67 72 61 6D 20 64 6F 65 73 20 61 6C 6C program does all
0001E0: 6F 77 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F ow background RO
0001F0: 4D 73 20 74 6F 20 66 75 6E 63 74 69 6F 6E 20 69 Ms to function i
Size : 512 (Real : 512)
000000: 74 20 6D 75 73 74 20 63 6F 70 65 0D 0A 20 20 20 t must cope..
000010: 20 20 20 20 77 69 74 68 20 61 20 6D 65 6D 6F 72 with a memor
000020: 79 20 70 6F 6F 6C 20 20 77 68 69 6C 73 74 20 20 y pool whilst
000030: 62 6F 75 6E 64 73 20 20 61 72 65 20 20 6E 6F 74 bounds are not
000040: 20 20 66 69 78 65 64 20 20 75 6E 74 69 6C 20 20 fixed until
000050: 61 66 74 65 72 20 20 61 6C 6C 0D 0A 20 20 20 20 after all..
000060: 20 20 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F background RO
000070: 4D 73 20 68 61 76 65 20 62 65 65 6E 20 69 6E 69 Ms have been ini
000080: 74 69 61 6C 69 7A 65 64 2E 20 4E 6F 74 65 20 74 tialized. Note t
000090: 68 61 74 20 74 68 65 20 6C 6F 63 61 74 69 6F 6E hat the location
0000A0: 20 20 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 20 of the..
0000B0: 20 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F foreground pro
0000C0: 67 72 61 6D 27 73 20 64 61 74 61 20 61 72 65 61 gram's data area
0000D0: 73 20 61 72 65 20 66 69 78 65 64 20 77 68 69 6C s are fixed whil
0000E0: 73 74 20 61 20 62 61 63 6B 67 72 6F 75 6E 64 20 st a background
0000F0: 20 70 72 6F 67 72 61 6D 0D 0A 20 20 20 20 20 20 program..
000100: 20 6D 75 73 74 20 64 65 61 6C 20 77 69 74 68 20 must deal with
000110: 76 61 72 69 61 62 6C 65 20 64 61 74 61 20 61 72 variable data ar
000120: 65 61 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 eas..... I
000130: 66 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D f background ROM
000140: 73 20 61 72 65 20 6E 6F 74 20 69 6E 69 74 69 61 s are not initia
000150: 6C 69 7A 65 64 20 74 68 65 6E 20 74 68 65 20 20 lized then the
000160: 6D 65 6D 6F 72 79 20 20 6D 61 70 20 20 69 73 20 memory map is
000170: 20 76 65 72 79 0D 0A 20 20 20 20 20 20 20 73 69 very.. si
000180: 6D 70 6C 65 2C 20 62 75 74 20 73 69 6E 63 65 20 mple, but since
000190: 64 69 73 63 73 2C 20 6C 69 67 68 74 20 70 65 6E discs, light pen
0001A0: 73 2C 20 65 74 63 20 61 72 65 20 6C 69 6B 65 6C s, etc are likel
0001B0: 79 20 74 6F 20 75 73 65 20 20 62 61 63 6B 67 72 y to use backgr
0001C0: 6F 75 6E 64 0D 0A 20 20 20 20 20 20 20 52 4F 4D ound.. ROM
0001D0: 73 20 20 66 6F 72 20 20 73 75 70 70 6F 72 74 20 s for support
0001E0: 20 73 6F 66 74 77 61 72 65 20 20 69 74 20 20 69 software it i
0001F0: 73 20 20 72 61 74 68 65 72 20 20 6C 69 6D 69 74 s rather limit
Size : 512 (Real : 512)
000000: 69 6E 67 20 20 6E 6F 74 20 20 74 6F 20 20 61 6C ing not to al
000010: 6C 6F 77 0D 0A 20 20 20 20 20 20 20 62 61 63 6B low.. back
000020: 67 72 6F 75 6E 64 20 52 4F 4D 73 20 65 76 65 6E ground ROMs even
000030: 20 66 6F 72 20 61 6E 20 61 70 70 61 72 65 6E 74 for an apparent
000040: 6C 79 20 27 64 65 64 69 63 61 74 65 64 27 20 67 ly 'dedicated' g
000050: 61 6D 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ame..... T
000060: 68 65 20 6F 6E 2D 62 6F 61 72 64 20 42 41 53 49 he on-board BASI
000070: 43 20 69 6E 69 74 69 61 6C 69 7A 65 73 20 61 6C C initializes al
000080: 6C 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D l background ROM
000090: 73 20 61 74 20 20 45 4D 53 2E 20 20 54 68 65 20 s at EMS. The
0000A0: 20 75 73 65 72 0D 0A 20 20 20 20 20 20 20 63 68 user.. ch
0000B0: 6F 6F 73 65 73 20 77 68 65 74 68 65 72 20 74 6F ooses whether to
0000C0: 20 6C 6F 61 64 20 61 6E 79 20 52 53 58 73 20 66 load any RSXs f
0000D0: 72 6F 6D 20 74 61 70 65 2E 0D 0A 0D 0A 0D 0A 0D rom tape........
0000E0: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
0000F0: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
000100: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000120: 20 20 20 70 61 67 65 20 31 30 2E 35 0D 0A 0D 0A page 10.5....
000130: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
000140: 20 31 30 2E 34 20 42 61 63 6B 67 72 6F 75 6E 64 10.4 Background
000150: 20 52 4F 4D 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 ROMs.....
000160: 20 42 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 73 Background ROMs
000170: 20 20 6C 69 65 20 20 64 6F 72 6D 61 6E 74 20 20 lie dormant
000180: 75 6E 74 69 6C 20 20 69 6E 69 74 69 61 6C 69 7A until initializ
000190: 65 64 20 20 62 79 20 20 74 68 65 20 20 66 6F 72 ed by the for
0001A0: 65 67 72 6F 75 6E 64 0D 0A 20 20 20 20 20 20 20 eground..
0001B0: 70 72 6F 67 72 61 6D 2E 20 44 75 72 69 6E 67 20 program. During
0001C0: 69 6E 69 74 69 61 6C 69 7A 61 74 69 6F 6E 20 74 initialization t
0001D0: 68 65 20 62 61 63 6B 67 72 6F 75 6E 64 20 20 73 he background s
0001E0: 6F 66 74 77 61 72 65 20 20 6D 61 79 20 20 61 6C oftware may al
0001F0: 6C 6F 63 61 74 65 0D 0A 20 20 20 20 20 20 20 69 locate.. i
Size : 512 (Real : 512)
000000: 74 73 65 6C 66 20 73 6F 6D 65 20 6D 65 6D 6F 72 tself some memor
000010: 79 20 61 6E 64 20 69 6E 69 74 69 61 6C 69 7A 65 y and initialize
000020: 20 61 6E 79 20 20 64 61 74 61 20 20 73 74 72 75 any data stru
000030: 63 74 75 72 65 73 20 20 61 6E 20 20 68 61 72 64 ctures an hard
000040: 77 61 72 65 2E 0D 0A 20 20 20 20 20 20 20 50 72 ware... Pr
000050: 6F 76 69 64 69 6E 67 20 74 68 65 20 69 6E 69 74 oviding the init
000060: 69 61 6C 69 7A 61 74 69 6F 6E 20 69 73 20 73 75 ialization is su
000070: 63 63 65 73 73 66 75 6C 20 74 68 65 20 4B 65 72 ccessful the Ker
000080: 6E 65 6C 20 70 6C 61 63 65 73 20 20 74 68 65 20 nel places the
000090: 20 52 4F 4D 0D 0A 20 20 20 20 20 20 20 6F 6E 20 ROM.. on
0000A0: 74 68 65 20 6C 69 73 74 20 6F 66 20 70 6F 73 73 the list of poss
0000B0: 69 62 6C 65 20 74 61 6B 65 72 73 20 66 6F 72 20 ible takers for
0000C0: 65 78 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 external command
0000D0: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 s..... The
0000E0: 20 66 69 72 73 74 20 65 6E 74 72 79 20 69 6E 20 first entry in
0000F0: 61 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D a background ROM
000100: 27 73 20 6A 75 6D 70 62 6C 6F 63 6B 20 69 73 20 's jumpblock is
000110: 20 69 74 20 20 69 6E 69 74 69 61 6C 69 7A 61 74 it initializat
000120: 69 6F 6E 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 ion.. rout
000130: 69 6E 65 2E 20 54 68 69 73 20 72 6F 75 74 69 6E ine. This routin
000140: 65 20 6D 75 73 74 20 6F 6E 6C 79 20 62 65 20 63 e must only be c
000150: 61 6C 6C 65 64 20 62 79 20 74 68 65 20 66 69 72 alled by the fir
000160: 6D 77 61 72 65 20 77 68 65 6E 20 74 68 65 20 52 mware when the R
000170: 4F 4D 0D 0A 20 20 20 20 20 20 20 69 73 20 69 6E OM.. is in
000180: 69 74 69 61 6C 69 7A 65 64 20 69 74 20 69 73 20 itialized it is
000190: 6E 6F 74 20 6D 65 61 6E 74 20 66 6F 72 20 74 68 not meant for th
0001A0: 65 20 75 73 65 72 20 74 6F 20 63 61 6C 6C 2E 20 e user to call.
0001B0: 20 54 72 69 63 6B 73 20 20 73 75 63 68 20 20 61 Tricks such a
0001C0: 73 0D 0A 20 20 20 20 20 20 20 69 6E 63 6C 75 64 s.. includ
0001D0: 69 6E 67 20 61 20 73 70 61 63 65 20 69 6E 20 20 ing a space in
0001E0: 74 68 65 20 20 6E 61 6D 65 20 20 6D 61 6B 65 73 the name makes
0001F0: 20 20 69 74 20 20 69 6D 70 6F 73 73 69 62 6C 65 it impossible
Size : 512 (Real : 512)
000000: 20 20 66 6F 72 20 20 42 41 53 49 43 20 20 74 6F for BASIC to
000010: 0D 0A 20 20 20 20 20 20 20 67 65 6E 65 72 61 74 .. generat
000020: 65 20 74 68 65 20 63 6F 72 72 65 63 74 20 6E 61 e the correct na
000030: 6D 65 20 61 6E 64 20 68 65 6E 63 65 20 69 6D 70 me and hence imp
000040: 6F 73 73 69 62 6C 65 20 66 6F 72 20 20 61 20 20 ossible for a
000050: 42 41 53 49 43 20 20 75 73 65 72 20 20 74 6F 0D BASIC user to.
000060: 0A 20 20 20 20 20 20 20 63 61 6C 6C 20 74 68 65 . call the
000070: 20 65 6E 74 72 79 2E 20 54 68 65 20 65 6E 74 72 entry. The entr
000080: 79 20 61 6E 64 20 65 78 69 74 20 63 6F 6E 64 69 y and exit condi
000090: 74 69 6F 6E 73 20 66 6F 72 20 20 74 68 65 20 20 tions for the
0000A0: 69 6E 69 74 69 61 6C 69 7A 61 74 69 6F 6E 0D 0A initialization..
0000B0: 20 20 20 20 20 20 20 72 6F 75 74 69 6E 65 20 61 routine a
0000C0: 72 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E re:.... En
0000D0: 74 72 79 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 try:....
0000E0: 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 DE contains th
0000F0: 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 e address of the
000100: 20 6C 6F 77 65 73 74 20 62 79 74 65 20 69 6E 20 lowest byte in
000110: 74 68 65 20 6D 65 6D 6F 72 79 20 70 6F 6F 6C 2E the memory pool.
000120: 0D 0A 20 20 20 20 20 20 20 20 20 20 48 4C 20 63 .. HL c
000130: 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 64 72 ontains the addr
000140: 65 73 73 20 6F 66 20 74 68 65 20 68 69 67 68 65 ess of the highe
000150: 73 74 20 62 79 74 65 20 69 6E 20 74 68 65 20 6D st byte in the m
000160: 65 6D 6F 72 79 20 70 6F 6F 6C 2E 0D 0A 0D 0A 20 emory pool.....
000170: 20 20 20 20 20 20 45 78 69 74 3A 0D 0A 0D 0A 20 Exit:....
000180: 20 20 20 20 20 20 20 20 20 49 66 20 74 68 65 20 If the
000190: 69 6E 69 74 69 61 6C 69 7A 61 74 69 6F 6E 20 77 initialization w
0001A0: 61 73 20 73 75 63 63 65 73 73 66 75 6C 0D 0A 0D as successful...
0001B0: 0A 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 . Carry
0001C0: 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 true...
0001D0: 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 DE contains th
0001E0: 65 20 6E 65 77 20 61 64 64 72 65 73 73 20 6F 66 e new address of
0001F0: 20 74 68 65 20 6C 6F 77 65 73 74 20 62 79 74 65 the lowest byte
Size : 512 (Real : 512)
000000: 20 69 6E 20 74 68 65 20 6D 65 6D 6F 72 79 20 70 in the memory p
000010: 6F 6F 6C 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 ool...
000020: 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 HL contains the
000030: 6E 65 77 20 61 64 64 72 65 73 73 20 6F 66 20 74 new address of t
000040: 68 65 20 68 69 67 68 65 73 74 20 62 79 74 65 20 he highest byte
000050: 69 6E 20 74 68 65 20 6D 65 6D 6F 72 79 20 70 6F in the memory po
000060: 6F 6C 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ol.....
000070: 20 49 66 20 74 68 65 20 69 6E 69 74 69 61 6C 69 If the initiali
000080: 7A 61 74 69 6F 6E 20 66 61 69 6C 65 64 3A 0D 0A zation failed:..
000090: 0D 0A 20 20 20 20 20 20 20 20 20 20 43 61 72 72 .. Carr
0000A0: 79 20 66 61 6C 73 65 2E 0D 0A 20 20 20 20 20 20 y false...
0000B0: 20 20 20 20 44 45 20 61 6E 64 20 48 4C 20 70 72 DE and HL pr
0000C0: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 eserved.....
0000D0: 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D Always:...
0000E0: 0A 20 20 20 20 20 20 20 20 20 20 41 2C 20 42 43 . A, BC
0000F0: 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 73 and other flags
000100: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
000110: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
000120: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
000130: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ed..... No
000140: 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 tes:.... T
000150: 68 65 20 75 70 70 65 72 20 52 4F 4D 20 69 73 20 he upper ROM is
000160: 65 6E 61 62 6C 65 64 20 61 6E 64 20 73 65 6C 65 enabled and sele
000170: 63 74 65 64 2E 0D 0A 20 20 20 20 20 20 20 54 68 cted... Th
000180: 65 20 6C 6F 77 65 72 20 52 4F 4D 20 69 73 20 64 e lower ROM is d
000190: 69 73 61 62 6C 65 64 2E 0D 0A 0D 0A 20 20 20 20 isabled.....
0001A0: 20 20 20 54 68 65 20 72 6F 75 74 69 6E 65 20 6D The routine m
0001B0: 61 79 20 6E 6F 74 20 75 73 65 20 74 68 65 20 61 ay not use the a
0001C0: 6C 74 65 72 6E 61 74 65 20 72 65 67 69 73 74 65 lternate registe
0001D0: 72 20 73 65 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 r set.....
0001E0: 20 54 68 65 20 52 4F 4D 20 6D 61 79 20 61 6C 6C The ROM may all
0001F0: 6F 63 61 74 65 20 69 74 73 65 6C 66 20 6D 65 6D ocate itself mem
Size : 512 (Real : 512)
000000: 6F 72 79 20 65 69 74 68 65 72 20 61 74 20 74 68 ory either at th
000010: 65 20 74 6F 70 20 6F 72 20 74 68 65 20 62 6F 74 e top or the bot
000020: 74 6F 6D 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 tom of..
000030: 74 68 65 20 6D 65 6D 6F 72 79 20 70 6F 6F 6C 20 the memory pool
000040: 28 6F 72 20 62 6F 74 68 29 2C 20 73 69 6D 70 6C (or both), simpl
000050: 79 20 62 79 20 63 68 61 6E 67 69 6E 67 20 74 68 y by changing th
000060: 65 20 61 70 70 72 6F 70 72 69 61 74 65 20 72 65 e appropriate re
000070: 67 69 73 74 65 72 0D 0A 20 20 20 20 20 20 20 61 gister.. a
000080: 6E 64 20 72 65 74 75 72 6E 69 6E 67 20 74 68 65 nd returning the
000090: 20 6E 65 77 20 76 61 6C 75 65 2E 20 46 6F 72 20 new value. For
0000A0: 65 78 61 6D 70 6C 65 2C 20 74 6F 20 72 65 73 65 example, to rese
0000B0: 72 76 65 20 32 35 36 20 20 62 79 74 65 73 20 20 rve 256 bytes
0000C0: 67 69 76 65 6E 0D 0A 20 20 20 20 20 20 20 61 6E given.. an
0000D0: 20 61 64 64 72 65 73 73 20 6F 66 20 23 41 42 37 address of #AB7
0000E0: 46 20 61 73 20 74 68 65 20 74 6F 70 20 6F 66 20 F as the top of
0000F0: 74 68 65 20 70 6F 6F 6C 20 74 68 65 20 70 72 6F the pool the pro
000100: 67 72 61 6D 20 77 6F 75 6C 64 20 20 73 75 62 74 gram would subt
000110: 72 61 63 74 0D 0A 20 20 20 20 20 20 20 32 35 36 ract.. 256
000120: 20 66 72 6F 6D 20 48 4C 20 67 69 76 69 6E 67 20 from HL giving
000130: 61 20 6E 65 77 20 74 6F 70 20 20 6F 66 20 20 70 a new top of p
000140: 6F 6F 6C 20 20 61 64 64 72 65 73 73 20 20 6F 66 ool address of
000150: 20 20 23 41 41 37 46 2E 20 20 54 68 65 20 20 61 #AA7F. The a
000160: 72 65 61 0D 0A 20 20 20 20 20 20 20 70 72 65 73 rea.. pres
000170: 65 72 76 65 64 20 77 6F 75 6C 64 20 62 65 20 66 erved would be f
000180: 72 6F 6D 20 23 41 41 38 30 20 74 6F 20 23 41 42 rom #AA80 to #AB
000190: 37 46 20 69 6E 63 6C 75 73 69 76 65 2E 0D 0A 0D 7F inclusive....
0001A0: 0A 20 20 20 20 20 20 20 54 68 65 20 63 61 72 72 . The carr
0001B0: 79 20 66 61 6C 73 65 20 72 65 74 75 72 6E 20 69 y false return i
0001C0: 73 20 6F 6E 6C 79 20 72 65 63 6F 67 6E 69 7A 65 s only recognize
0001D0: 64 20 69 6E 20 56 31 2E 31 20 20 66 69 72 6D 77 d in V1.1 firmw
0001E0: 61 72 65 2E 20 20 49 6E 20 20 56 31 2E 30 0D 0A are. In V1.0..
0001F0: 20 20 20 20 20 20 20 66 69 72 6D 77 61 72 65 20 firmware
Size : 512 (Real : 512)
000000: 74 68 69 73 20 77 69 6C 6C 20 62 65 20 74 72 65 this will be tre
000010: 61 74 65 64 20 61 73 20 69 66 20 63 61 72 72 79 ated as if carry
000020: 20 77 61 73 20 72 65 74 75 72 6E 65 64 20 74 72 was returned tr
000030: 75 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 ue...........
000040: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
000050: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
000060: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 70 61 67 65 20 31 30 2E 36 0D 0A 1A FF 00 FF page 10.6......
000090: 65 20 31 30 2E 38 0D 0A 1A 4F 4D 73 2C 20 52 65 e 10.8...OMs, Re
0000A0: 73 69 64 65 6E 74 20 53 79 73 74 65 6D 20 45 78 sident System Ex
0000B0: 74 65 6E 73 69 6F 6E 73 20 61 6E 64 20 52 41 4D tensions and RAM
0000C0: 20 50 72 6F 67 72 61 6D 73 2E 0D 0A 0D 0A 0D 0A Programs.......
0000D0: 20 20 20 20 20 20 20 54 68 65 20 73 79 73 74 65 The syste
0000E0: 6D 20 63 61 6E 20 61 64 64 72 65 73 73 20 75 70 m can address up
0000F0: 20 74 6F 20 32 35 32 20 65 78 70 61 6E 73 69 6F to 252 expansio
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000010: 20 20 20 57 68 65 6E 20 74 68 65 20 69 6E 69 74 When the init
000020: 69 61 6C 69 7A 61 74 69 6F 6E 20 72 6F 75 74 69 ialization routi
000030: 6E 65 20 72 65 74 75 72 6E 73 2C 20 74 68 65 20 ne returns, the
000040: 4B 65 72 6E 65 6C 20 73 74 6F 72 65 73 20 74 68 Kernel stores th
000050: 65 20 61 64 64 72 65 73 73 0D 0A 20 20 20 20 20 e address..
000060: 20 20 6F 66 20 74 68 65 20 62 61 73 65 20 6F 66 of the base of
000070: 20 74 68 65 20 75 70 70 65 72 20 61 72 65 61 20 the upper area
000080: 77 68 69 63 68 20 74 68 65 20 52 4F 4D 20 68 61 which the ROM ha
000090: 73 20 61 6C 6C 6F 63 61 74 65 64 20 69 74 73 65 s allocated itse
0000A0: 6C 66 20 28 69 2E 65 2E 0D 0A 20 20 20 20 20 20 lf (i.e...
0000B0: 20 48 4C 2B 31 29 2E 20 57 68 65 6E 65 76 65 72 HL+1). Whenever
0000C0: 20 61 6E 20 65 6E 74 72 79 20 69 6E 20 74 68 65 an entry in the
0000D0: 20 52 4F 4D 20 69 73 20 63 61 6C 6C 65 64 20 74 ROM is called t
0000E0: 68 69 73 20 61 64 64 72 65 73 73 20 20 69 73 20 his address is
0000F0: 20 70 61 73 73 65 64 0D 0A 20 20 20 20 20 20 20 passed..
000100: 69 6E 20 74 68 65 20 49 59 20 69 6E 64 65 78 20 in the IY index
000110: 72 65 67 69 73 74 65 72 2E 20 54 68 69 73 20 61 register. This a
000120: 6C 6C 6F 77 73 20 74 68 65 20 52 4F 4D 20 72 6F llows the ROM ro
000130: 75 74 69 6E 65 20 20 74 6F 20 20 61 63 63 65 73 utine to acces
000140: 73 20 20 69 74 73 0D 0A 20 20 20 20 20 20 20 75 s its.. u
000150: 70 70 65 72 20 76 61 72 69 61 62 6C 65 20 20 61 pper variable a
000160: 72 65 61 20 20 65 61 73 69 6C 79 20 20 65 6E 6F rea easily eno
000170: 75 67 68 20 20 65 76 65 6E 20 20 74 68 6F 75 67 ugh even thoug
000180: 68 20 20 69 74 20 20 77 61 73 20 20 61 6C 6C 6F h it was allo
000190: 63 61 74 65 64 0D 0A 20 20 20 20 20 20 20 64 79 cated.. dy
0001A0: 6E 61 6D 69 63 61 6C 6C 79 2E 20 41 63 63 65 73 namically. Acces
0001B0: 73 20 74 6F 20 61 6E 79 20 6C 6F 77 65 72 20 76 s to any lower v
0001C0: 61 72 69 61 62 6C 65 20 20 61 72 65 61 20 20 73 ariable area s
0001D0: 68 6F 75 6C 64 20 20 62 65 20 20 64 6F 6E 65 20 hould be done
0001E0: 20 76 69 61 0D 0A 20 20 20 20 20 20 20 70 6F 69 via.. poi
0001F0: 6E 74 65 72 73 20 69 6E 20 74 68 65 20 75 70 70 nters in the upp
Size : 512 (Real : 512)
000000: 65 72 20 61 72 65 61 2E 20 53 69 6E 63 65 20 62 er area. Since b
000010: 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 73 20 64 ackground ROMs d
000020: 6F 20 6E 6F 74 20 75 73 65 20 20 61 62 73 6F 6C o not use absol
000030: 75 74 65 0D 0A 20 20 20 20 20 20 20 61 72 65 61 ute.. area
000040: 73 20 6F 66 20 6D 65 6D 6F 72 79 2C 20 70 72 6F s of memory, pro
000050: 62 6C 65 6D 73 20 6F 66 20 62 61 63 6B 67 72 6F blems of backgro
000060: 75 6E 64 20 52 4F 4D 73 20 63 6C 61 73 68 69 6E und ROMs clashin
000070: 67 20 77 69 74 68 20 65 61 63 68 20 20 6F 74 68 g with each oth
000080: 65 72 0D 0A 20 20 20 20 20 20 20 6F 72 20 20 77 er.. or w
000090: 69 74 68 20 20 74 68 65 20 20 66 6F 72 65 67 72 ith the foregr
0000A0: 6F 75 6E 64 20 20 70 72 6F 67 72 61 6D 20 20 77 ound program w
0000B0: 69 6C 6C 20 20 6E 65 76 65 72 20 20 61 72 69 73 ill never aris
0000C0: 65 2E 20 20 4E 6F 74 65 20 20 74 68 61 74 20 20 e. Note that
0000D0: 61 0D 0A 20 20 20 20 20 20 20 62 61 63 6B 67 72 a.. backgr
0000E0: 6F 75 6E 64 20 52 4F 4D 20 69 73 20 76 65 72 79 ound ROM is very
0000F0: 20 6C 69 6B 65 6C 79 20 74 6F 20 65 78 70 65 63 likely to expec
000100: 74 20 74 68 61 74 20 69 74 73 20 75 70 70 65 72 t that its upper
000110: 20 64 61 74 61 20 61 72 65 61 20 20 6C 69 65 73 data area lies
000120: 0D 0A 20 20 20 20 20 20 20 61 62 6F 76 65 20 23 .. above #
000130: 30 30 34 30 20 73 6F 20 74 68 61 74 20 69 74 20 0040 so that it
000140: 69 73 20 61 63 63 65 73 73 69 62 6C 65 20 69 72 is accessible ir
000150: 72 65 73 70 65 63 74 69 76 65 20 6F 66 20 77 68 respective of wh
000160: 65 74 68 65 72 20 74 68 65 20 6C 6F 77 65 72 0D ether the lower.
000170: 0A 20 20 20 20 20 20 20 52 4F 4D 20 69 73 20 65 . ROM is e
000180: 6E 61 62 6C 65 64 20 6F 72 20 6E 6F 74 2E 0D 0A nabled or not...
000190: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 ...... If
0001A0: 74 68 65 20 69 6E 69 74 69 61 6C 69 7A 61 74 69 the initializati
0001B0: 6F 6E 20 69 73 20 73 75 63 63 65 73 73 66 75 6C on is successful
0001C0: 20 74 68 65 6E 20 74 68 65 20 4B 65 72 6E 65 6C then the Kernel
0001D0: 20 20 61 6C 73 6F 20 20 70 6C 61 63 65 73 20 20 also places
0001E0: 74 68 65 0D 0A 20 20 20 20 20 20 20 52 4F 4D 20 the.. ROM
0001F0: 6F 6E 20 69 74 73 20 6C 69 73 74 20 6F 66 20 70 on its list of p
Size : 512 (Real : 512)
000000: 6F 73 73 69 62 6C 65 20 68 61 6E 64 6C 65 72 73 ossible handlers
000010: 20 6F 66 20 65 78 74 65 72 6E 61 6C 20 63 6F 6D of external com
000020: 6D 61 6E 64 73 20 28 73 65 65 20 62 65 6C 6F 77 mands (see below
000030: 29 2E 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 20 )... Note
000040: 74 68 61 74 20 77 68 65 6E 20 74 68 65 20 6C 69 that when the li
000050: 73 74 20 69 73 20 73 63 61 6E 6E 65 64 20 66 6F st is scanned fo
000060: 72 20 65 78 74 65 72 6E 61 6C 20 20 63 6F 6D 6D r external comm
000070: 61 6E 64 73 20 20 74 68 65 20 20 6C 61 74 65 73 ands the lates
000080: 74 0D 0A 20 20 20 20 20 20 20 61 64 64 69 74 69 t.. additi
000090: 6F 6E 20 69 73 20 74 72 69 65 64 20 66 69 72 73 on is tried firs
0000A0: 74 2E 20 54 68 65 20 65 6E 74 72 79 20 4B 4C 20 t. The entry KL
0000B0: 52 4F 4D 20 57 41 4C 4B 20 70 72 6F 63 65 73 73 ROM WALK process
0000C0: 65 73 20 74 68 65 20 20 52 4F 4D 73 20 20 69 6E es the ROMs in
0000D0: 0D 0A 20 20 20 20 20 20 20 72 65 76 65 72 73 65 .. reverse
0000E0: 20 61 64 64 72 65 73 73 20 6F 72 64 65 72 20 28 address order (
0000F0: 31 35 2C 20 31 34 2C 20 2E 2E 2E 30 29 2C 20 69 15, 14, ...0), i
000100: 67 6E 6F 72 69 6E 67 20 61 6E 79 20 67 61 70 73 gnoring any gaps
000110: 20 6F 66 20 20 66 6F 72 65 67 72 6F 75 6E 64 0D of foreground.
000120: 0A 20 20 20 20 20 20 20 52 4F 4D 73 2C 20 74 68 . ROMs, th
000130: 75 73 20 74 68 65 20 52 4F 4D 73 20 77 69 6C 6C us the ROMs will
000140: 20 62 65 20 73 65 61 72 63 68 65 64 20 69 6E 20 be searched in
000150: 74 68 65 20 6F 72 64 65 72 20 30 2C 20 31 2C 20 the order 0, 1,
000160: 2E 2E 2E 31 35 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ...15.........
000170: 20 20 20 20 20 31 30 2E 35 20 52 65 73 69 64 65 10.5 Reside
000180: 6E 74 20 53 79 73 74 65 6D 20 45 78 74 65 6E 73 nt System Extens
000190: 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 ions.........
0001A0: 20 20 20 20 41 6E 20 52 53 58 20 69 73 20 73 69 An RSX is si
0001B0: 6D 69 6C 61 72 20 74 6F 20 61 20 62 61 63 6B 67 milar to a backg
0001C0: 72 6F 75 6E 64 20 52 4F 4D 2E 20 52 65 73 70 6F round ROM. Respo
0001D0: 6E 73 69 62 69 6C 69 74 79 20 66 6F 72 20 20 6C nsibility for l
0001E0: 6F 61 64 69 6E 67 20 20 61 6E 0D 0A 20 20 20 20 oading an..
0001F0: 20 20 20 52 53 58 20 61 6E 64 20 70 72 6F 76 69 RSX and provi
Size : 512 (Real : 512)
000000: 64 69 6E 67 20 69 74 20 77 69 74 68 20 6D 65 6D ding it with mem
000010: 6F 72 79 20 6C 69 65 73 20 77 69 74 68 20 74 68 ory lies with th
000020: 65 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F e foreground pro
000030: 67 72 61 6D 2E 20 20 54 6F 0D 0A 20 20 20 20 20 gram. To..
000040: 20 20 66 69 74 20 69 6E 20 77 69 74 68 20 74 68 fit in with th
000050: 65 20 64 79 6E 61 6D 69 63 20 61 6C 6C 6F 63 61 e dynamic alloca
000060: 74 69 6F 6E 20 6F 66 20 6D 65 6D 6F 72 79 20 74 tion of memory t
000070: 6F 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D o background ROM
000080: 73 20 69 74 20 20 69 73 0D 0A 20 20 20 20 20 20 s it is..
000090: 20 72 65 63 6F 6D 6D 65 6E 64 65 64 20 74 68 61 recommended tha
0000A0: 74 20 52 53 58 73 20 73 68 6F 75 6C 64 20 62 65 t RSXs should be
0000B0: 20 70 6F 73 69 74 69 6F 6E 20 69 6E 64 65 70 65 position indepe
0000C0: 6E 64 65 6E 74 20 6F 72 20 72 65 6C 6F 63 61 74 ndent or relocat
0000D0: 65 64 20 77 68 65 6E 0D 0A 20 20 20 20 20 20 20 ed when..
0000E0: 6C 6F 61 64 65 64 2E 20 41 6E 20 52 53 58 20 63 loaded. An RSX c
0000F0: 6F 75 6C 64 20 62 65 20 72 65 6C 6F 63 61 74 65 ould be relocate
000100: 64 20 62 79 20 20 77 72 69 74 69 6E 67 20 20 61 d by writing a
000110: 20 20 73 68 6F 72 74 20 42 41 53 49 43 20 27 6C short BASIC 'l
000120: 6F 61 64 65 72 27 0D 0A 20 20 20 20 20 20 20 70 oader'.. p
000130: 72 6F 67 72 61 6D 20 77 68 69 63 68 20 72 65 61 rogram which rea
000140: 64 73 20 74 68 65 20 52 53 58 20 69 6E 20 61 20 ds the RSX in a
000150: 66 6F 72 6D 61 74 20 77 68 69 63 68 20 6D 61 79 format which may
000160: 20 62 65 20 72 65 6C 6F 63 61 74 65 64 20 20 65 be relocated e
000170: 61 73 69 6C 79 0D 0A 20 20 20 20 20 20 20 61 6E asily.. an
000180: 64 20 50 4F 4B 45 73 20 69 6E 74 6F 20 73 74 6F d POKEs into sto
000190: 72 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 re.........
0001A0: 20 20 4F 6E 63 65 20 61 6E 20 52 53 58 20 69 73 Once an RSX is
0001B0: 20 6C 6F 61 64 20 69 74 20 6D 61 79 20 62 65 20 load it may be
0001C0: 70 6C 61 63 65 64 20 6F 6E 20 74 68 65 20 6C 69 placed on the li
0001D0: 73 74 20 6F 66 20 70 6F 73 73 69 62 6C 65 20 20 st of possible
0001E0: 68 61 6E 64 6C 65 72 73 0D 0A 20 20 20 20 20 20 handlers..
0001F0: 20 6F 66 20 65 78 74 65 72 6E 61 6C 20 63 6F 6D of external com
Size : 512 (Real : 512)
000000: 6D 61 6E 64 73 20 28 73 65 65 20 66 6F 6C 6C 6F mands (see follo
000010: 77 69 6E 67 20 20 70 61 67 65 29 20 20 62 79 20 wing page) by
000020: 20 63 61 6C 6C 69 6E 67 20 20 4B 4C 20 20 4C 4F calling KL LO
000030: 47 20 20 45 58 54 2C 0D 0A 20 20 20 20 20 20 20 G EXT,..
000040: 70 61 73 73 69 6E 67 20 69 74 20 74 68 65 20 61 passing it the a
000050: 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 52 53 ddress of the RS
000060: 58 73 20 65 78 74 65 72 6E 61 6C 20 63 6F 6D 6D Xs external comm
000070: 61 6E 64 20 74 61 62 6C 65 20 61 6E 64 20 20 61 and table and a
000080: 20 20 66 6F 75 72 0D 0A 20 20 20 20 20 20 20 62 four.. b
000090: 79 74 65 20 62 6C 6F 63 6B 20 6F 66 20 6D 65 6D yte block of mem
0000A0: 6F 72 79 20 28 69 6E 20 74 68 65 20 63 65 6E 74 ory (in the cent
0000B0: 72 61 6C 20 33 32 4B 20 6F 66 20 52 41 4D 29 20 ral 32K of RAM)
0000C0: 66 6F 72 20 74 68 65 20 4B 65 72 6E 65 6C 27 73 for the Kernel's
0000D0: 20 75 73 65 2E 0D 0A 20 20 20 20 20 20 20 54 68 use... Th
0000E0: 65 20 66 6F 72 6D 61 74 20 6F 66 20 74 68 65 20 e format of the
0000F0: 74 61 62 6C 65 20 69 73 20 65 78 61 63 74 6C 79 table is exactly
000100: 20 74 68 65 20 73 61 6D 65 20 61 73 20 66 6F 72 the same as for
000110: 20 20 61 20 20 62 61 63 6B 67 72 6F 75 6E 64 20 a background
000120: 20 52 4F 4D 0D 0A 20 20 20 20 20 20 20 28 73 65 ROM.. (se
000130: 65 20 73 65 63 74 69 6F 6E 20 31 30 2E 32 29 2E e section 10.2).
000140: 20 54 68 65 20 6F 6E 6C 79 20 64 69 66 66 65 72 The only differ
000150: 65 6E 63 65 20 69 73 20 69 6E 20 20 74 68 65 20 ence is in the
000160: 20 69 6E 74 65 72 70 72 65 74 61 74 69 6F 6E 20 interpretation
000170: 20 6F 66 0D 0A 20 20 20 20 20 20 20 74 68 65 20 of.. the
000180: 20 74 61 62 6C 65 20 20 2D 20 20 74 68 65 20 20 table - the
000190: 66 69 72 73 74 20 20 65 6E 74 72 79 20 20 69 6E first entry in
0001A0: 20 20 74 68 65 20 20 6A 75 6D 70 62 6C 6F 63 6B the jumpblock
0001B0: 20 20 69 73 20 20 6E 6F 74 20 20 20 63 61 6C 6C is not call
0001C0: 65 64 0D 0A 20 20 20 20 20 20 20 61 75 74 6F 6D ed.. autom
0001D0: 61 74 69 63 61 6C 6C 79 20 20 62 79 20 20 74 68 atically by th
0001E0: 65 20 20 4B 65 72 6E 65 6C 20 20 61 6E 64 20 20 e Kernel and
0001F0: 74 68 75 73 20 20 6E 65 65 64 20 20 6E 6F 74 20 thus need not
Size : 512 (Real : 512)
000000: 20 62 65 20 20 20 74 68 65 20 20 20 52 53 58 27 be the RSX'
000010: 73 0D 0A 20 20 20 20 20 20 20 69 6E 69 74 69 61 s.. initia
000020: 6C 69 7A 61 74 69 6F 6E 20 72 6F 75 74 69 6E 65 lization routine
000030: 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
000040: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
000050: 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 AMSTRAD CPC464
000060: 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 /664/6128 FIRMWA
000070: 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RE
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
000090: 61 67 65 20 31 30 2E 37 0D 0A 0D 0A 0D 0A 0D 0A age 10.7........
0000A0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 6F 72 ...... For
0000B0: 20 65 78 61 6D 70 6C 65 2C 20 74 68 65 20 77 61 example, the wa
0000C0: 79 20 74 6F 20 61 64 64 20 61 6E 20 65 78 74 65 y to add an exte
0000D0: 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 20 74 61 62 rnal command tab
0000E0: 6C 65 20 66 6F 72 20 20 61 20 20 67 72 61 70 68 le for a graph
0000F0: 69 63 73 0D 0A 20 20 20 20 20 20 20 65 78 74 65 ics.. exte
000100: 6E 73 69 6F 6E 20 66 6F 72 20 42 41 53 49 43 20 nsion for BASIC
000110: 6D 69 67 68 74 20 62 65 3A 0D 0A 0D 0A 20 20 20 might be:....
000120: 20 20 20 20 49 4E 49 54 49 41 4C 49 5A 45 3A 20 INITIALIZE:
000130: 20 20 20 20 20 20 20 4C 44 20 48 4C 2C 57 4F 52 LD HL,WOR
000140: 4B 5F 53 50 41 43 45 20 20 20 20 20 20 20 20 20 K_SPACE
000150: 3B 52 53 58 20 70 6F 77 65 72 2D 75 70 20 52 6F ;RSX power-up Ro
000160: 75 74 69 6E 65 0D 0A 20 20 20 20 20 20 20 20 20 utine..
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 4C 44 20 42 43 2C 52 53 58 5F 54 41 42 4C 45 LD BC,RSX_TABLE
000190: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0001A0: 20 20 20 20 20 20 20 20 20 20 20 20 4A 50 20 4B JP K
0001B0: 4C 5F 4C 4F 47 5F 45 58 54 0D 0A 0D 0A 20 20 20 L_LOG_EXT....
0001C0: 20 20 20 20 57 4F 52 4B 5F 53 50 41 43 45 3A 20 WORK_SPACE:
0001D0: 20 20 20 20 20 20 20 44 45 46 53 20 34 20 20 20 DEFS 4
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001F0: 3B 41 72 65 61 20 66 6F 72 20 4B 65 72 6E 65 6C ;Area for Kernel
Size : 512 (Real : 512)
000000: 20 74 6F 20 75 73 65 0D 0A 0D 0A 20 20 20 20 20 to use....
000010: 20 20 52 53 58 5F 54 41 42 4C 45 3A 20 20 20 20 RSX_TABLE:
000020: 20 20 20 20 20 44 45 46 57 20 4E 41 4D 45 5F 54 DEFW NAME_T
000030: 41 42 4C 45 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ABLE....
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 20 20 4A 50 20 44 52 41 57 5F 43 49 52 43 4C 45 JP DRAW_CIRCLE
000060: 20 20 20 20 20 20 20 20 20 20 20 3B 30 0D 0A 20 ;0..
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 20 20 20 20 20 20 20 4A 50 20 44 52 41 57 JP DRAW
000090: 5F 54 52 49 41 4E 47 4C 45 20 20 20 20 20 20 20 _TRIANGLE
0000A0: 20 20 3B 31 0D 0A 20 20 20 20 20 20 20 20 20 20 ;1..
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 4A 50 20 46 49 4C 4C 5F 41 52 45 41 20 20 20 20 JP FILL_AREA
0000D0: 20 20 20 20 20 20 20 20 20 3B 32 0D 0A 0D 0A 20 ;2....
0000E0: 20 20 20 20 20 20 4E 41 4D 45 5F 54 41 42 4C 45 NAME_TABLE
0000F0: 20 20 20 20 20 20 20 20 20 44 45 46 42 20 27 43 DEFB 'C
000100: 49 52 43 4C 27 2C 27 45 27 2B 23 38 30 20 20 20 IRCL','E'+#80
000110: 20 20 3B 30 0D 0A 20 20 20 20 20 20 20 20 20 20 ;0..
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 44 45 46 42 20 27 54 52 49 41 4E 47 4C 27 2C 27 DEFB 'TRIANGL','
000140: 45 27 2B 23 38 30 20 20 20 3B 31 0D 0A 20 20 20 E'+#80 ;1..
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 20 20 20 20 20 20 20 44 45 46 42 20 27 46 49 4C DEFB 'FIL
000170: 27 2C 27 4C 27 2B 23 38 30 20 20 20 20 20 20 20 ','L'+#80
000180: 3B 32 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ;2..
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 45 DE
0001A0: 46 42 20 23 30 30 0D 0A 0D 0A 20 20 20 20 20 20 FB #00....
0001B0: 20 4E 6F 74 65 20 74 68 61 74 20 77 68 65 6E 20 Note that when
0001C0: 74 68 65 20 6C 69 73 74 20 69 73 20 73 63 61 6E the list is scan
0001D0: 6E 65 64 20 66 6F 72 20 20 65 78 74 65 72 6E 61 ned for externa
0001E0: 6C 20 20 63 6F 6D 6D 61 6E 64 73 20 20 74 68 65 l commands the
0001F0: 20 6C 61 74 65 73 74 0D 0A 20 20 20 20 20 20 20 latest..
Size : 512 (Real : 512)
000000: 61 64 64 69 74 69 6F 6E 20 69 73 20 74 72 69 65 addition is trie
000010: 64 20 66 69 72 73 74 2E 20 53 69 6E 63 65 20 52 d first. Since R
000020: 53 58 27 73 20 77 69 6C 6C 2C 20 69 6E 20 67 65 SX's will, in ge
000030: 6E 65 72 61 6C 2C 20 62 65 20 6C 6F 61 64 65 64 neral, be loaded
000040: 20 61 66 74 65 72 0D 0A 20 20 20 20 20 20 20 62 after.. b
000050: 61 63 6B 67 72 6F 75 6E 64 20 20 52 4F 4D 73 20 ackground ROMs
000060: 20 68 61 76 65 20 20 62 65 65 6E 20 20 69 6E 69 have been ini
000070: 74 69 61 6C 69 7A 65 64 2C 20 20 52 53 58 20 20 tialized, RSX
000080: 63 6F 6D 6D 61 6E 64 73 20 20 77 69 6C 6C 20 20 commands will
000090: 20 74 61 6B 65 0D 0A 20 20 20 20 20 20 20 70 72 take.. pr
0000A0: 65 63 65 64 65 6E 63 65 20 20 6F 76 65 72 20 20 ecedence over
0000B0: 74 68 6F 73 65 20 20 69 6E 20 20 62 61 63 6B 67 those in backg
0000C0: 72 6F 75 6E 64 20 20 52 4F 4D 73 2E 20 20 54 68 round ROMs. Th
0000D0: 65 20 20 65 6E 74 72 79 20 20 61 6E 64 20 20 20 e entry and
0000E0: 65 78 69 74 0D 0A 20 20 20 20 20 20 20 63 6F 6E exit.. con
0000F0: 64 69 74 69 6F 6E 73 20 66 6F 72 20 20 65 78 74 ditions for ext
000100: 65 72 6E 61 6C 20 20 63 6F 6D 6D 61 6E 64 73 20 ernal commands
000110: 20 61 72 65 20 20 64 69 73 63 75 73 73 65 64 20 are discussed
000120: 20 69 6E 20 20 74 68 65 20 20 66 6F 6C 6C 6F 77 in the follow
000130: 69 6E 67 0D 0A 20 20 20 20 20 20 20 73 65 63 74 ing.. sect
000140: 69 6F 6E 20 28 73 65 63 74 69 6F 6E 20 31 30 2E ion (section 10.
000150: 36 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 30 6)..... 10
000160: 2E 36 20 45 78 74 65 72 6E 61 6C 20 43 6F 6D 6D .6 External Comm
000170: 61 6E 64 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ands.....
000180: 4F 6E 63 65 20 74 68 65 20 66 6F 72 65 67 72 6F Once the foregro
000190: 75 6E 64 20 70 72 6F 67 72 61 6D 20 20 68 61 73 und program has
0001A0: 20 20 64 65 63 69 64 65 64 20 20 74 68 61 74 20 decided that
0001B0: 20 69 74 20 20 68 61 73 20 20 61 6E 20 20 65 78 it has an ex
0001C0: 74 65 72 6E 61 6C 0D 0A 20 20 20 20 20 20 20 63 ternal.. c
0001D0: 6F 6D 6D 61 6E 64 20 6F 6E 20 69 74 73 20 68 61 ommand on its ha
0001E0: 6E 64 73 20 69 74 20 73 68 6F 75 6C 64 20 63 61 nds it should ca
0001F0: 6C 6C 20 74 68 65 20 4B 65 72 6E 65 6C 20 65 6E ll the Kernel en
Size : 512 (Real : 512)
000000: 74 72 79 20 4B 4C 20 46 49 4E 44 20 20 43 4F 4D try KL FIND COM
000010: 4D 41 4E 44 2C 0D 0A 20 20 20 20 20 20 20 70 61 MAND,.. pa
000020: 73 73 69 6E 67 20 74 6F 20 69 74 20 61 20 73 74 ssing to it a st
000030: 72 69 6E 67 20 67 69 76 69 6E 67 20 74 68 65 20 ring giving the
000040: 63 6F 6D 6D 61 6E 64 20 20 6E 61 6D 65 2E 20 20 command name.
000050: 54 68 69 73 20 20 72 6F 75 74 69 6E 65 20 20 66 This routine f
000060: 69 72 73 74 0D 0A 20 20 20 20 20 20 20 61 74 74 irst.. att
000070: 65 6D 70 74 73 20 74 6F 20 66 69 6E 64 20 61 6E empts to find an
000080: 20 52 53 58 20 6F 72 20 61 20 62 61 63 6B 67 72 RSX or a backgr
000090: 6F 75 6E 64 20 20 52 4F 4D 20 20 77 68 6F 73 65 ound ROM whose
0000A0: 20 20 65 78 74 65 72 6E 61 6C 20 20 63 6F 6D 6D external comm
0000B0: 61 6E 64 0D 0A 20 20 20 20 20 20 20 74 61 62 6C and.. tabl
0000C0: 65 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 63 e contains the c
0000D0: 6F 6D 6D 61 6E 64 2E 20 4F 6E 6C 79 20 74 68 6F ommand. Only tho
0000E0: 73 65 20 52 53 58 73 20 61 6E 64 20 52 4F 4D 73 se RSXs and ROMs
0000F0: 20 77 68 69 63 68 20 20 68 61 76 65 20 20 62 65 which have be
000100: 65 6E 0D 0A 20 20 20 20 20 20 20 73 75 69 74 61 en.. suita
000110: 62 6C 79 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 bly initialized
000120: 61 72 65 20 74 61 6B 65 6E 20 69 6E 74 6F 20 63 are taken into c
000130: 6F 6E 73 69 64 65 72 61 74 69 6F 6E 2E 20 49 66 onsideration. If
000140: 20 74 68 65 20 20 63 6F 6D 6D 61 6E 64 20 20 69 the command i
000150: 73 0D 0A 20 20 20 20 20 20 20 66 6F 75 6E 64 20 s.. found
000160: 74 68 65 6E 20 74 68 65 20 27 66 61 72 20 61 64 then the 'far ad
000170: 64 72 65 73 73 27 20 6F 66 20 74 68 65 20 63 6F dress' of the co
000180: 72 72 65 73 70 6F 6E 64 69 6E 67 20 6A 75 6D 70 rresponding jump
000190: 62 6C 6F 63 6B 20 20 65 6E 74 72 79 20 20 69 73 block entry is
0001A0: 0D 0A 20 20 20 20 20 20 20 72 65 74 75 72 6E 65 .. returne
0001B0: 64 20 28 73 65 65 20 73 65 63 74 69 6F 6E 20 32 d (see section 2
0001C0: 2E 33 29 2E 20 49 66 20 74 68 65 20 63 6F 6D 6D .3). If the comm
0001D0: 61 6E 64 20 69 73 20 6E 6F 74 20 20 66 6F 75 6E and is not foun
0001E0: 64 20 20 74 68 65 20 20 72 6F 75 74 69 6E 65 0D d the routine.
0001F0: 0A 20 20 20 20 20 20 20 73 74 61 72 74 73 20 61 . starts a
Size : 512 (Real : 512)
000000: 74 20 52 4F 4D 20 30 20 61 6E 64 20 73 65 61 72 t ROM 0 and sear
000010: 63 68 65 73 20 20 66 6F 72 20 20 61 20 20 66 6F ches for a fo
000020: 72 65 67 72 6F 75 6E 64 20 20 52 4F 4D 20 20 77 reground ROM w
000030: 68 6F 73 65 20 20 65 78 74 65 72 6E 61 6C 0D 0A hose external..
000040: 20 20 20 20 20 20 20 63 6F 6D 6D 61 6E 64 20 74 command t
000050: 61 62 6C 65 20 63 6F 6E 74 61 69 6E 73 20 74 68 able contains th
000060: 65 20 63 6F 6D 6D 61 6E 64 2E 20 49 66 20 61 20 e command. If a
000070: 66 6F 72 65 67 72 6F 75 6E 64 20 52 4F 4D 20 69 foreground ROM i
000080: 73 20 20 66 6F 75 6E 64 2C 74 68 65 6E 0D 0A 20 s found,then..
000090: 20 20 20 20 20 20 74 68 65 20 73 79 73 74 65 6D the system
0000A0: 20 72 65 73 65 74 73 20 61 6E 64 20 65 6E 74 65 resets and ente
0000B0: 72 73 20 74 68 65 20 61 70 70 72 6F 70 72 69 61 rs the appropria
0000C0: 74 65 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 te foreground pr
0000D0: 6F 67 72 61 6D 2E 20 49 66 20 6E 6F 0D 0A 20 20 ogram. If no..
0000E0: 20 20 20 20 20 6D 61 74 63 68 20 66 6F 72 20 74 match for t
0000F0: 68 65 20 63 6F 6D 6D 61 6E 64 20 63 61 6E 20 62 he command can b
000100: 65 20 66 6F 75 6E 64 20 61 20 66 61 69 6C 75 72 e found a failur
000110: 65 20 69 6E 64 69 63 61 74 69 6F 6E 20 69 73 20 e indication is
000120: 72 65 74 75 72 6E 65 64 2E 0D 0A 0D 0A 20 20 20 returned.....
000130: 20 20 20 20 4E 6F 74 65 20 74 68 61 74 20 74 68 Note that th
000140: 65 20 65 78 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 e external comma
000150: 6E 64 20 6D 65 63 68 61 6E 69 73 6D 20 61 6C 6C nd mechanism all
000160: 6F 77 73 20 62 6F 74 68 20 20 66 6F 72 20 20 66 ows both for f
000170: 69 6E 64 69 6E 67 20 20 6F 66 0D 0A 20 20 20 20 inding of..
000180: 20 20 20 62 61 63 6B 67 72 6F 75 6E 64 20 61 6E background an
000190: 64 20 52 53 58 20 72 6F 75 74 69 6E 65 73 2C 20 d RSX routines,
0001A0: 61 6E 64 20 66 6F 72 20 73 77 69 74 63 68 69 6E and for switchin
0001B0: 67 20 6F 66 20 66 6F 72 65 67 72 6F 75 6E 64 20 g of foreground
0001C0: 70 72 6F 67 72 61 6D 73 2E 0D 0A 20 20 20 20 20 programs...
0001D0: 20 20 4E 6F 74 65 20 61 6C 73 6F 20 74 68 61 74 Note also that
0001E0: 20 74 68 65 20 66 69 72 73 74 20 63 6F 6D 6D 61 the first comma
0001F0: 6E 64 20 6E 61 6D 65 20 69 6E 20 61 20 62 61 63 nd name in a bac
Size : 512 (Real : 512)
000000: 6B 67 72 6F 75 6E 64 20 52 4F 4D 20 20 63 6F 72 kground ROM cor
000010: 72 65 73 70 6F 6E 64 73 0D 0A 20 20 20 20 20 20 responds..
000020: 20 74 6F 20 74 68 65 20 69 6D 70 6C 69 63 69 74 to the implicit
000030: 20 69 6E 69 74 69 61 6C 69 7A 61 74 69 6F 6E 20 initialization
000040: 65 6E 74 72 79 2C 20 61 6E 64 20 73 68 6F 75 6C entry, and shoul
000050: 64 20 20 6E 6F 74 20 20 62 65 20 20 75 73 65 64 d not be used
000060: 20 20 61 73 20 20 61 0D 0A 20 20 20 20 20 20 20 as a..
000070: 63 6F 6D 6D 61 6E 64 2E 0D 0A 0D 0A 20 20 20 20 command.....
000080: 20 20 20 54 68 65 20 66 69 72 73 74 20 74 69 6D The first tim
000090: 65 20 61 20 62 61 63 6B 67 72 6F 75 6E 64 20 20 e a background
0000A0: 6F 72 20 20 52 53 58 20 20 72 6F 75 74 69 6E 65 or RSX routine
0000B0: 20 20 69 73 20 20 75 73 65 64 20 20 74 68 65 20 is used the
0000C0: 20 65 78 74 65 72 6E 61 6C 0D 0A 20 20 20 20 20 external..
0000D0: 20 20 63 6F 6D 6D 61 6E 64 20 6D 65 63 68 61 6E command mechan
0000E0: 69 73 6D 20 73 68 6F 75 6C 64 20 62 65 20 75 73 ism should be us
0000F0: 65 64 20 74 6F 20 65 73 74 61 62 6C 69 73 68 20 ed to establish
000100: 69 74 73 20 20 6A 75 6D 70 62 6C 6F 63 6B 20 20 its jumpblock
000110: 61 64 64 72 65 73 73 2E 0D 0A 20 20 20 20 20 20 address...
000120: 20 54 68 69 73 20 6D 61 79 20 74 68 65 6E 20 62 This may then b
000130: 65 20 73 74 6F 72 65 64 20 61 6E 64 20 75 73 65 e stored and use
000140: 64 20 64 69 72 65 63 74 6C 79 20 66 6F 72 20 73 d directly for s
000150: 75 62 73 65 71 75 65 6E 74 20 63 61 6C 6C 73 20 ubsequent calls
000160: 6F 66 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 of the..
000170: 72 6F 75 74 69 6E 65 2E 20 49 74 20 69 73 20 66 routine. It is f
000180: 6F 6F 6C 69 73 68 20 74 6F 20 61 73 73 75 6D 65 oolish to assume
000190: 20 74 68 61 74 20 61 20 70 61 72 74 69 63 75 6C that a particul
0001A0: 61 72 20 62 61 63 6B 67 72 6F 75 6E 64 20 20 52 ar background R
0001B0: 4F 4D 20 20 69 73 0D 0A 20 20 20 20 20 20 20 61 OM is.. a
0001C0: 6C 77 61 79 73 20 70 6C 75 67 67 65 64 20 69 6E lways plugged in
0001D0: 74 6F 20 74 68 65 20 73 61 6D 65 20 73 6F 63 6B to the same sock
0001E0: 65 74 20 20 6F 72 20 20 74 68 61 74 20 20 61 20 et or that a
0001F0: 20 72 65 6C 6F 63 61 74 61 62 6C 65 20 20 52 53 relocatable RS
Size : 512 (Real : 512)
000000: 58 20 20 69 73 0D 0A 20 20 20 20 20 20 20 61 6C X is.. al
000010: 77 61 79 73 20 6C 6F 63 61 74 65 64 20 61 74 20 ways located at
000020: 74 68 65 20 73 61 6D 65 20 61 64 64 72 65 73 73 the same address
000030: 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
000040: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
000050: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
000060: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 70 61 67 65 20 31 30 2E 38 0D 0A 0D 0A 0D 0A page 10.8......
000090: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ........ T
0000A0: 68 65 20 66 69 72 73 74 20 74 69 6D 65 20 61 20 he first time a
0000B0: 62 61 63 6B 67 72 6F 75 6E 64 20 20 6F 72 20 20 background or
0000C0: 52 53 58 20 20 72 6F 75 74 69 6E 65 20 20 69 73 RSX routine is
0000D0: 20 20 75 73 65 64 20 20 74 68 65 20 20 65 78 74 used the ext
0000E0: 65 72 6E 61 6C 0D 0A 20 20 20 20 20 20 20 63 6F ernal.. co
0000F0: 6D 6D 61 6E 64 20 6D 65 63 68 61 6E 69 73 6D 20 mmand mechanism
000100: 73 68 6F 75 6C 64 20 62 65 20 75 73 65 64 20 74 should be used t
000110: 6F 20 65 73 74 61 62 6C 69 73 68 20 69 74 73 20 o establish its
000120: 20 6A 75 6D 70 62 6C 6F 63 6B 20 20 61 64 64 72 jumpblock addr
000130: 65 73 73 2E 0D 0A 20 20 20 20 20 20 20 54 68 69 ess... Thi
000140: 73 20 6D 61 79 20 74 68 65 6E 20 62 65 20 73 74 s may then be st
000150: 6F 72 65 64 20 61 6E 64 20 75 73 65 64 20 64 69 ored and used di
000160: 72 65 63 74 6C 79 20 66 6F 72 20 73 75 62 73 65 rectly for subse
000170: 71 75 65 6E 74 20 63 61 6C 6C 73 20 6F 66 20 20 quent calls of
000180: 74 68 65 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 the.. rout
000190: 69 6E 65 2E 20 49 74 20 69 73 20 66 6F 6F 6C 69 ine. It is fooli
0001A0: 73 68 20 74 6F 20 61 73 73 75 6D 65 20 74 68 61 sh to assume tha
0001B0: 74 20 61 20 70 61 72 74 69 63 75 6C 61 72 20 62 t a particular b
0001C0: 61 63 6B 67 72 6F 75 6E 64 20 20 52 4F 4D 20 20 ackground ROM
0001D0: 69 73 0D 0A 20 20 20 20 20 20 20 61 6C 77 61 79 is.. alway
0001E0: 73 20 70 6C 75 67 67 65 64 20 69 6E 74 6F 20 74 s plugged into t
0001F0: 68 65 20 73 61 6D 65 20 73 6F 63 6B 65 74 20 20 he same socket
Size : 512 (Real : 512)
000000: 6F 72 20 20 74 68 61 74 20 20 61 20 20 72 65 6C or that a rel
000010: 6F 63 61 74 61 62 6C 65 20 20 52 53 58 20 20 69 ocatable RSX i
000020: 73 0D 0A 20 20 20 20 20 20 20 61 6C 77 61 79 73 s.. always
000030: 20 6C 6F 63 61 74 65 64 20 61 74 20 74 68 65 20 located at the
000040: 73 61 6D 65 20 61 64 64 72 65 73 73 2E 0D 0A 0D same address....
000050: 0A 20 20 20 20 20 20 20 49 74 20 69 73 20 74 68 . It is th
000060: 65 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F e foreground pro
000070: 67 72 61 6D 27 73 20 72 65 73 70 6F 6E 73 69 62 gram's responsib
000080: 69 6C 69 74 79 20 74 6F 20 69 6E 76 6F 6B 65 20 ility to invoke
000090: 20 74 68 65 20 20 65 78 74 65 72 6E 61 6C 0D 0A the external..
0000A0: 20 20 20 20 20 20 20 63 6F 6D 6D 61 6E 64 20 6F command o
0000B0: 6E 63 65 20 69 74 73 20 61 64 64 72 65 73 73 20 nce its address
0000C0: 68 61 73 20 62 65 65 6E 20 66 6F 75 6E 64 2C 20 has been found,
0000D0: 61 6E 64 20 74 6F 20 70 61 73 73 20 69 74 73 20 and to pass its
0000E0: 70 61 72 61 6D 65 74 65 72 73 20 69 6E 0D 0A 20 parameters in..
0000F0: 20 20 20 20 20 20 61 20 73 75 69 74 61 62 6C 65 a suitable
000100: 20 66 6F 72 6D 2E 20 42 41 53 49 43 20 69 6E 20 form. BASIC in
000110: 74 68 65 20 6F 6E 2D 62 6F 61 72 64 20 52 4F 4D the on-board ROM
000120: 20 66 75 6E 63 74 69 6F 6E 73 20 61 73 20 20 66 functions as f
000130: 6F 6C 6C 6F 77 73 2C 20 20 61 6E 64 0D 0A 20 20 ollows, and..
000140: 20 20 20 20 20 73 68 6F 75 6C 64 20 73 65 72 76 should serv
000150: 65 20 61 73 20 61 20 6D 6F 64 65 6C 20 66 6F 72 e as a model for
000160: 20 6F 74 68 65 72 20 66 6F 72 65 67 72 6F 75 6E other foregroun
000170: 64 20 70 72 6F 67 72 61 6D 73 20 69 66 20 6F 6E d programs if on
000180: 6C 79 20 74 6F 20 61 6C 6C 6F 77 0D 0A 20 20 20 ly to allow..
000190: 20 20 20 20 63 6F 6D 6D 6F 6E 20 75 73 65 20 6F common use o
0001A0: 66 20 63 6F 6D 6D 61 6E 64 73 20 62 79 20 6F 74 f commands by ot
0001B0: 68 65 72 20 73 79 73 74 65 6D 73 3A 0D 0A 0D 0A her systems:....
0001C0: 20 20 20 20 20 20 20 20 20 20 20 41 6E 20 65 78 An ex
0001D0: 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 20 69 ternal command i
0001E0: 73 20 69 64 65 6E 74 69 66 69 65 64 20 62 79 20 s identified by
0001F0: 61 20 76 65 72 74 69 63 61 6C 20 62 61 72 20 28 a vertical bar (
Size : 512 (Real : 512)
000000: 27 7C 27 29 20 66 6F 6C 6C 6F 77 65 64 0D 0A 20 '|') followed..
000010: 20 20 20 20 20 20 20 20 20 20 62 79 20 74 68 65 by the
000020: 20 63 6F 6D 6D 61 6E 64 20 6E 61 6D 65 2C 20 6F command name, o
000030: 70 74 69 6F 6E 61 6C 6C 79 20 66 6F 6C 6C 6F 77 ptionally follow
000040: 65 64 20 62 79 20 61 20 6C 69 73 74 20 6F 66 20 ed by a list of
000050: 20 70 61 72 61 6D 65 74 65 72 73 2E 0D 0A 20 20 parameters...
000060: 20 20 20 20 20 20 20 20 20 54 68 65 20 62 61 72 The bar
000070: 20 64 6F 65 73 20 6E 6F 74 20 66 6F 72 6D 20 70 does not form p
000080: 61 72 74 20 6F 66 20 74 68 65 20 63 6F 6D 6D 61 art of the comma
000090: 6E 64 20 6E 61 6D 65 2E 20 54 68 65 20 20 63 6F nd name. The co
0000A0: 6D 6D 61 6E 64 20 20 6E 61 6D 65 0D 0A 20 20 20 mmand name..
0000B0: 20 20 20 20 20 20 20 20 6D 75 73 74 20 63 6F 6E must con
0000C0: 73 69 73 74 20 6F 66 20 61 6C 70 68 61 62 65 74 sist of alphabet
0000D0: 69 63 20 20 63 68 61 72 61 63 74 65 72 73 20 20 ic characters
0000E0: 28 77 68 69 63 68 20 20 61 72 65 20 20 63 6F 6E (which are con
0000F0: 76 65 72 74 65 64 20 20 74 6F 0D 0A 20 20 20 20 verted to..
000100: 20 20 20 20 20 20 20 75 70 70 65 72 20 63 61 73 upper cas
000110: 65 29 2C 20 6E 75 6D 65 72 69 63 20 63 68 61 72 e), numeric char
000120: 61 63 74 65 72 73 20 6F 72 20 64 6F 74 73 2E 0D acters or dots..
000130: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 50 61 ... Pa
000140: 72 61 6D 65 74 65 72 73 20 61 72 65 20 70 61 73 rameters are pas
000150: 73 65 64 20 62 79 20 76 61 6C 75 65 2C 20 74 68 sed by value, th
000160: 61 74 20 69 73 20 65 61 63 68 20 70 61 72 61 6D at is each param
000170: 65 74 65 72 20 20 6D 61 79 20 20 62 65 20 20 61 eter may be a
000180: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 6E 75 6D .. num
000190: 65 72 69 63 20 65 78 70 72 65 73 73 69 6F 6E 2C eric expression,
0001A0: 20 74 68 65 20 63 61 6C 63 75 6C 61 74 65 64 20 the calculated
0001B0: 76 61 6C 75 65 20 6F 66 20 77 68 69 63 68 20 69 value of which i
0001C0: 73 20 70 61 73 73 65 64 2C 20 6F 72 20 61 6E 0D s passed, or an.
0001D0: 0A 20 20 20 20 20 20 20 20 20 20 20 61 64 64 72 . addr
0001E0: 65 73 73 2E 20 54 68 65 20 6E 75 6D 62 65 72 20 ess. The number
0001F0: 61 6E 64 20 74 79 70 65 20 6F 66 20 70 61 72 61 and type of para
Size : 512 (Real : 512)
000000: 6D 65 74 65 72 73 20 6D 75 73 74 20 62 65 20 61 meters must be a
000010: 67 72 65 65 64 20 20 62 65 74 77 65 65 6E 0D 0A greed between..
000020: 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 42 the B
000030: 41 53 49 43 20 70 72 6F 67 72 61 6D 20 20 61 6E ASIC program an
000040: 64 20 20 74 68 65 20 20 63 6F 6D 6D 61 6E 64 20 d the command
000050: 20 62 65 63 61 75 73 65 20 20 42 41 53 49 43 20 because BASIC
000060: 20 70 65 72 66 6F 72 6D 73 20 20 6E 6F 0D 0A 20 performs no..
000070: 20 20 20 20 20 20 20 20 20 20 63 68 65 63 6B 69 checki
000080: 6E 67 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ng.....
000090: 20 20 45 61 63 68 20 70 61 72 61 6D 65 74 65 72 Each parameter
0000A0: 20 70 61 73 73 65 64 20 69 73 20 61 20 74 77 6F passed is a two
0000B0: 20 62 79 74 65 20 6E 75 6D 62 65 72 2C 20 20 77 byte number, w
0000C0: 68 6F 73 65 20 20 69 6E 74 65 72 70 72 65 74 61 hose interpreta
0000D0: 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 20 20 20 tion..
0000E0: 20 64 65 70 65 6E 64 73 20 6F 6E 20 69 74 73 20 depends on its
0000F0: 74 79 70 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 type:....
000100: 20 20 20 20 49 6E 74 65 67 65 72 20 65 78 70 72 Integer expr
000110: 65 73 73 69 6F 6E 3A 20 20 20 20 20 20 74 77 6F ession: two
000120: 27 73 20 63 6F 6D 70 6C 65 6D 65 6E 74 20 20 76 's complement v
000130: 61 6C 75 65 20 20 6F 66 20 20 74 68 65 20 20 49 alue of the I
000140: 6E 74 65 67 65 72 0D 0A 20 20 20 20 20 20 20 20 nteger..
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 resu
000170: 6C 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 lt...
000180: 52 65 61 6C 20 65 78 70 72 65 73 73 69 6F 6E 3A Real expression:
000190: 20 20 20 20 20 20 20 20 20 74 68 65 20 20 52 65 the Re
0001A0: 61 6C 20 20 72 65 73 75 6C 74 20 20 66 6F 72 63 al result forc
0001B0: 65 64 20 20 20 74 6F 20 20 20 55 6E 73 69 67 6E ed to Unsign
0001C0: 65 64 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ed..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 49 6E 74 65 67 65 72 2E Integer.
0001F0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 56 61 72 .. Var
Size : 512 (Real : 512)
000000: 69 61 62 6C 65 20 72 65 66 65 72 65 6E 63 65 3A iable reference:
000010: 20 20 20 20 20 20 61 64 64 72 65 73 73 20 6F 66 address of
000020: 20 74 68 65 20 76 61 6C 75 65 20 6F 66 20 61 20 the value of a
000030: 76 61 72 69 61 62 6C 65 20 28 66 6F 72 20 61 0D variable (for a.
000040: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 73 74 72 69 6E 67 20 20 74 68 69 string thi
000070: 73 20 20 69 73 20 20 74 68 65 20 20 61 64 64 72 s is the addr
000080: 65 73 73 20 20 20 6F 66 20 20 20 74 68 65 0D 0A ess of the..
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 20 20 20 64 65 73 63 72 69 70 74 6F 72 29 2E descriptor).
0000C0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 41 20 73 .. A s
0000D0: 74 72 69 6E 67 20 64 65 73 63 72 69 70 74 6F 72 tring descriptor
0000E0: 20 69 73 20 74 68 72 65 65 20 20 62 79 74 65 73 is three bytes
0000F0: 20 20 6C 6F 6E 67 2E 20 20 42 79 74 65 20 20 30 long. Byte 0
000100: 20 20 63 6F 6E 74 61 69 6E 73 20 20 74 68 65 0D contains the.
000110: 0A 20 20 20 20 20 20 20 20 20 20 20 6C 65 6E 67 . leng
000120: 74 68 20 6F 66 20 74 68 65 20 73 74 72 69 6E 67 th of the string
000130: 2E 20 42 79 74 65 73 20 31 20 61 6E 64 20 32 20 . Bytes 1 and 2
000140: 63 6F 6E 74 61 69 6E 20 74 68 65 20 61 64 64 72 contain the addr
000150: 65 73 73 20 77 68 65 72 65 20 20 74 68 65 0D 0A ess where the..
000160: 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6E strin
000170: 67 20 69 73 20 73 74 6F 72 65 64 2E 20 49 66 20 g is stored. If
000180: 74 68 65 20 73 74 72 69 6E 67 20 6C 65 6E 67 74 the string lengt
000190: 68 20 69 73 20 30 20 74 68 65 6E 20 20 74 68 65 h is 0 then the
0001A0: 20 20 61 64 64 72 65 73 73 20 20 6F 66 0D 0A 20 address of..
0001B0: 20 20 20 20 20 20 20 20 20 20 74 68 65 20 20 73 the s
0001C0: 74 72 69 6E 67 20 20 69 73 20 20 6D 65 61 6E 69 tring is meani
0001D0: 6E 67 6C 65 73 73 2E 20 20 53 74 72 69 6E 67 20 ngless. String
0001E0: 20 76 61 72 69 61 62 6C 65 73 20 20 6D 61 79 20 variables may
0001F0: 20 62 65 20 20 63 68 61 6E 67 65 64 0D 0A 20 20 be changed..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 70 72 6F 76 69 64 69 providi
000010: 6E 67 20 74 68 61 74 20 74 68 65 20 73 74 72 69 ng that the stri
000020: 6E 67 20 64 65 73 63 72 69 70 74 6F 72 20 69 73 ng descriptor is
000030: 20 6E 6F 74 20 61 6C 74 65 72 65 64 20 69 6E 20 not altered in
000040: 61 6E 79 20 77 61 79 2E 0D 0A 0D 0A 20 20 20 20 any way.....
000050: 20 20 20 45 6E 74 72 79 3A 0D 0A 20 20 20 20 20 Entry:..
000060: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
000070: 20 74 68 65 20 6E 75 6D 62 65 72 20 6F 66 20 70 the number of p
000080: 61 72 61 6D 65 74 65 72 73 2E 0D 0A 20 20 20 20 arameters...
000090: 20 20 20 20 20 20 20 49 58 20 63 6F 6E 74 61 69 IX contai
0000A0: 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F ns the address o
0000B0: 66 20 74 68 65 20 70 61 72 61 6D 65 74 65 72 73 f the parameters
0000C0: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 49 59 ... IY
0000D0: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 64 contains the ad
0000E0: 64 72 65 73 73 20 6F 66 20 20 74 68 65 20 20 52 dress of the R
0000F0: 4F 4D 27 73 20 20 75 70 70 65 72 20 20 64 61 74 OM's upper dat
000100: 61 20 20 61 72 65 61 20 20 69 66 20 20 74 68 65 a area if the
000110: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 63 6F 6D .. com
000120: 6D 61 6E 64 20 77 61 73 20 66 6F 75 6E 64 20 69 mand was found i
000130: 6E 20 61 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 n a background R
000140: 4F 4D 2E 20 49 66 20 74 68 65 20 63 6F 6D 6D 61 OM. If the comma
000150: 6E 64 20 77 61 73 20 66 6F 75 6E 64 20 69 6E 0D nd was found in.
000160: 0A 20 20 20 20 20 20 20 20 20 20 20 61 6E 20 52 . an R
000170: 53 58 27 73 20 65 78 74 65 72 6E 61 6C 20 63 6F SX's external co
000180: 6D 6D 61 6E 64 20 74 61 62 6C 65 20 74 68 65 6E mmand table then
000190: 20 49 59 20 69 73 20 75 6E 64 65 66 69 6E 65 64 IY is undefined
0001A0: 2E 0D 0A 20 20 20 20 20 20 20 45 78 69 74 3A 0D ... Exit:.
0001B0: 0A 20 20 20 20 20 20 20 20 20 20 20 41 46 2C 42 . AF,B
0001C0: 43 2C 44 45 2C 48 4C 2C 49 58 20 61 6E 64 20 49 C,DE,HL,IX and I
0001D0: 59 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 Y corrupt...
0001E0: 20 20 20 20 20 20 20 41 6C 74 65 72 6E 61 74 65 Alternate
0001F0: 20 72 65 67 69 73 74 65 72 20 73 65 74 20 75 6E register set un
Size : 512 (Real : 512)
000000: 74 6F 75 63 68 65 64 2E 0D 0A 20 20 20 20 20 20 touched...
000010: 20 4E 6F 74 65 73 3A 0D 0A 20 20 20 20 20 20 20 Notes:..
000020: 20 20 20 20 49 6E 64 65 78 20 72 65 67 69 73 74 Index regist
000030: 65 72 20 49 58 20 63 6F 6E 74 61 69 6E 73 20 74 er IX contains t
000040: 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 he address of th
000050: 65 20 70 61 72 61 6D 65 74 65 72 73 2E 20 49 66 e parameters. If
000060: 20 74 68 65 72 65 0D 0A 20 20 20 20 20 20 20 20 there..
000070: 20 20 20 61 72 65 20 6E 6F 20 70 61 72 61 6D 65 are no parame
000080: 74 65 72 73 20 74 68 65 6E 20 74 68 65 20 69 74 ters then the it
000090: 68 20 70 61 72 61 6D 65 74 65 72 20 69 73 20 61 h parameter is a
0000A0: 74 20 6F 66 66 73 65 74 20 28 6E 2D 69 29 78 32 t offset (n-i)x2
0000B0: 20 66 72 6F 6D 0D 0A 20 20 20 20 20 20 20 20 20 from..
0000C0: 20 20 74 68 65 20 69 6E 64 65 78 20 72 65 67 69 the index regi
0000D0: 73 74 65 72 20 61 64 64 72 65 73 73 20 2D 20 20 ster address -
0000E0: 73 6F 20 20 74 68 65 20 20 31 73 74 20 20 70 61 so the 1st pa
0000F0: 72 61 6D 65 74 65 72 20 20 69 73 20 20 61 74 20 rameter is at
000100: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 the..
000110: 20 6C 61 72 67 65 73 74 20 6F 66 66 73 65 74 2C largest offset,
000120: 20 61 6E 64 20 74 68 65 20 6C 61 73 74 20 70 61 and the last pa
000130: 72 61 6D 65 74 65 72 20 69 73 20 70 6F 69 6E 74 rameter is point
000140: 65 64 20 74 6F 20 62 79 20 49 58 2E 0D 0A 0D 0A ed to by IX.....
000150: 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 49 The I
000160: 59 20 72 65 67 69 73 74 65 72 20 69 73 20 73 65 Y register is se
000170: 74 20 62 79 20 74 68 65 20 4B 65 72 6E 65 6C 20 t by the Kernel
000180: 61 6E 64 20 6E 6F 74 20 62 79 20 42 41 53 49 43 and not by BASIC
000190: 2E 20 54 68 65 20 20 41 20 20 61 6E 64 0D 0A 20 . The A and..
0001A0: 20 20 20 20 20 20 20 20 20 20 49 58 20 72 65 67 IX reg
0001B0: 69 73 74 65 72 73 20 61 6E 64 20 74 68 65 20 70 isters and the p
0001C0: 61 72 61 6D 65 74 65 72 20 61 72 65 61 20 61 72 arameter area ar
0001D0: 65 20 73 65 74 20 62 79 20 42 41 53 49 43 2E 0D e set by BASIC..
0001E0: 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 ... AMSTRA
0001F0: 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 D CPC464/664/612
Size : 512 (Real : 512)
000000: 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 8 FIRMWARE
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 20 70 61 67 65 20 31 30 2E 39 page 10.9
000030: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
000040: 20 20 20 20 20 31 30 2E 37 20 45 78 61 6D 70 6C 10.7 Exampl
000050: 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es.......
000060: 61 29 20 41 20 73 69 6D 70 6C 65 20 65 78 74 65 a) A simple exte
000070: 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 2E 0D 0A 0D rnal command....
000080: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 65 ... This e
000090: 78 61 6D 70 6C 65 20 75 73 65 73 20 74 68 65 20 xample uses the
0000A0: 42 49 4F 53 20 72 6F 75 74 69 6E 65 20 53 45 54 BIOS routine SET
0000B0: 20 4D 45 53 53 41 47 45 20 74 68 61 74 20 69 73 MESSAGE that is
0000C0: 20 61 76 61 69 6C 61 62 6C 65 20 61 73 20 61 6E available as an
0000D0: 0D 0A 20 20 20 20 20 20 20 65 78 74 65 72 6E 61 .. externa
0000E0: 6C 20 63 6F 6D 6D 61 6E 64 20 75 6E 64 65 72 20 l command under
0000F0: 41 4D 53 44 4F 53 2E 20 53 45 54 20 4D 45 53 53 AMSDOS. SET MESS
000100: 41 47 45 20 74 75 72 6E 73 20 6F 6E 20 6F 72 20 AGE turns on or
000110: 20 6F 66 66 20 20 74 68 65 20 20 64 69 73 63 0D off the disc.
000120: 0A 20 20 20 20 20 20 20 65 72 72 6F 72 20 6D 65 . error me
000130: 73 73 61 67 65 73 20 61 6E 64 20 68 61 73 20 74 ssages and has t
000140: 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 69 6E 74 he following int
000150: 65 72 66 61 63 65 3A 0D 0A 0D 0A 0D 0A 20 20 20 erface:......
000160: 20 20 20 20 20 20 20 20 53 45 54 20 4D 45 53 53 SET MESS
000170: 41 47 45 20 20 20 20 20 20 20 20 20 20 20 20 20 AGE
000180: 20 20 20 20 20 20 20 20 20 20 20 43 6F 6D 6D 61 Comma
000190: 6E 64 20 6E 61 6D 65 3A 43 6F 6E 74 72 6F 6C 20 nd name:Control
0001A0: 41 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 A......
0001B0: 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F Entry conditio
0001C0: 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns:......
0001D0: 20 20 20 20 20 20 20 20 20 41 20 3D 20 23 30 30 A = #00
0001E0: 20 3D 3E 20 20 54 75 72 6E 20 64 69 73 63 20 65 => Turn disc e
0001F0: 72 72 6F 72 20 6D 65 73 73 61 67 65 73 20 6F 6E rror messages on
Size : 512 (Real : 512)
000000: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
000010: 20 20 20 41 20 3D 20 23 46 46 20 3D 3E 20 20 54 A = #FF => T
000020: 75 72 6E 20 64 69 73 63 20 65 72 72 6F 72 20 6D urn disc error m
000030: 65 73 73 61 67 65 73 20 6F 66 66 2E 0D 0A 0D 0A essages off.....
000040: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 45 78 69 .. Exi
000050: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
000060: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
000070: 20 20 20 41 20 3D 20 50 72 65 76 69 6F 73 20 73 A = Previos s
000080: 74 61 74 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 tate...
000090: 20 20 20 20 20 20 20 48 4C 20 61 6E 64 20 66 6C HL and fl
0000A0: 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A ags corrupt.....
0000B0: 0D 0A 20 20 20 20 20 20 20 42 65 66 6F 72 65 20 .. Before
0000C0: 69 74 20 69 73 20 70 6F 73 73 69 62 6C 65 20 74 it is possible t
0000D0: 6F 20 75 73 65 20 74 68 65 20 65 78 74 65 72 6E o use the extern
0000E0: 61 6C 20 63 6F 6D 6D 61 6E 64 20 69 74 20 69 73 al command it is
0000F0: 20 20 6E 65 63 65 73 73 61 72 79 20 20 74 6F 0D necessary to.
000100: 0A 20 20 20 20 20 20 20 65 73 74 61 62 6C 69 73 . establis
000110: 68 20 74 68 65 20 73 74 6F 72 65 20 61 6E 64 20 h the store and
000120: 66 61 72 20 20 61 64 64 72 65 73 73 20 20 6F 66 far address of
000130: 20 20 74 68 65 20 20 72 6F 75 74 69 6E 65 2E 20 the routine.
000140: 20 54 68 69 73 20 20 6D 61 79 20 20 62 65 0D 0A This may be..
000150: 20 20 20 20 20 20 20 70 65 72 66 6F 72 6D 65 64 performed
000160: 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A as follows:....
000170: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000180: 20 20 4C 44 20 48 4C 2C 43 4D 44 5F 4E 41 4D 45 LD HL,CMD_NAME
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001A0: 3B 50 6F 69 6E 74 65 72 20 74 6F 20 63 6F 6D 6D ;Pointer to comm
0001B0: 61 6E 64 20 6E 61 6D 65 0D 0A 20 20 20 20 20 20 and name..
0001C0: 20 20 20 20 20 20 20 20 20 20 43 41 4C 4C 20 4B CALL K
0001D0: 4C 5F 46 49 4E 44 5F 43 4F 4D 4D 41 4E 44 20 20 L_FIND_COMMAND
0001E0: 20 20 20 20 20 20 20 20 3B 41 73 6B 20 4B 65 72 ;Ask Ker
0001F0: 6E 65 6C 20 77 68 65 72 65 20 69 74 20 69 73 0D nel where it is.
Size : 512 (Real : 512)
000000: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000010: 20 4A 52 20 4E 43 2C 45 52 52 4F 52 5F 52 4F 55 JR NC,ERROR_ROU
000020: 54 49 4E 45 20 20 20 20 20 20 20 20 20 20 20 3B TINE ;
000030: 43 6F 6D 6D 61 6E 64 20 6E 6F 74 20 66 6F 75 6E Command not foun
000040: 64 20 65 72 72 6F 72 0D 0A 20 20 20 20 20 20 20 d error..
000050: 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..
000060: 20 20 20 4C 44 20 28 43 4D 44 5F 46 41 52 5F 41 LD (CMD_FAR_A
000070: 44 44 52 45 53 53 2B 30 29 2C 48 4C 20 20 20 20 DDRESS+0),HL
000080: 20 3B 53 74 6F 72 65 20 61 64 64 72 65 73 73 0D ;Store address.
000090: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0000A0: 20 4C 44 20 41 2C 43 0D 0A 20 20 20 20 20 20 20 LD A,C..
0000B0: 20 20 20 20 20 20 20 20 20 4C 44 20 28 43 4D 44 LD (CMD
0000C0: 5F 46 41 52 5F 41 44 44 52 45 53 53 2B 32 29 2C _FAR_ADDRESS+2),
0000D0: 41 20 20 20 20 20 20 53 74 6F 72 65 20 52 4F 4D A Store ROM
0000E0: 20 6E 75 6D 62 65 72 0D 0A 0D 0A 20 20 20 20 20 number....
0000F0: 20 20 43 4D 44 5F 4E 41 4D 45 3A 20 20 20 20 20 CMD_NAME:
000100: 20 20 20 20 20 44 45 46 42 20 23 30 31 2B 23 38 DEFB #01+#8
000110: 30 20 20 20 20 20 20 20 20 3B 43 6F 6E 74 72 6F 0 ;Contro
000120: 6C 20 41 20 3D 20 23 30 31 0D 0A 20 20 20 20 20 l A = #01..
000130: 20 20 43 4D 44 5F 46 41 52 5F 41 44 44 52 45 53 CMD_FAR_ADDRES
000140: 53 20 20 20 20 44 45 46 53 20 33 20 20 20 20 20 S DEFS 3
000150: 20 20 20 20 20 20 20 20 20 3B 41 72 65 61 20 66 ;Area f
000160: 6F 72 20 73 74 6F 72 69 6E 67 20 66 61 72 20 61 or storing far a
000170: 64 64 72 65 73 73 0D 0A 0D 0A 0D 0A 20 20 20 20 ddress......
000180: 20 20 20 48 61 76 69 6E 67 20 66 6F 75 6E 64 20 Having found
000190: 74 68 65 20 66 61 72 20 61 64 64 72 65 73 73 20 the far address
0001A0: 6F 66 20 74 68 65 20 72 6F 75 74 69 6E 65 20 69 of the routine i
0001B0: 74 20 63 61 6E 20 6E 6F 77 20 62 65 20 63 61 6C t can now be cal
0001C0: 6C 65 64 2E 20 20 46 6F 72 0D 0A 20 20 20 20 20 led. For..
0001D0: 20 20 65 78 61 6D 70 6C 65 3A 0D 0A 0D 0A 0D 0A example:......
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001F0: 4C 44 20 41 2C 30 20 20 20 20 20 20 20 20 20 20 LD A,0
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 45 ;E
000010: 6E 61 62 6C 65 20 6D 65 73 73 61 67 65 73 0D 0A nable messages..
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 52 53 54 20 33 20 20 20 20 20 20 20 20 20 20 20 RST 3
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 46 ;F
000050: 61 72 20 43 41 4C 4C 0D 0A 20 20 20 20 20 20 20 ar CALL..
000060: 20 20 20 20 20 20 20 20 20 44 45 46 57 20 43 4D DEFW CM
000070: 44 5F 46 41 52 5F 41 44 44 52 45 53 53 20 20 20 D_FAR_ADDRESS
000080: 20 20 20 20 20 20 20 3B 50 6F 69 6E 74 65 72 20 ;Pointer
000090: 74 6F 20 66 61 72 20 61 64 64 72 65 73 73 0D 0A to far address..
0000A0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
0000B0: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
0000C0: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
0000D0: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 70 61 67 65 20 31 30 2E 31 30 0D 0A 0D 0A 0D page 10.10.....
000100: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
000110: 62 29 20 41 20 63 6F 6D 70 6C 65 78 20 65 78 74 b) A complex ext
000120: 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 0D 0A 0D ernal command...
000130: 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 65 ... This e
000140: 78 61 6D 70 6C 65 20 75 73 65 73 20 74 68 65 20 xample uses the
000150: 49 4E 43 48 41 52 20 65 78 74 65 72 6E 61 6C 20 INCHAR external
000160: 63 6F 6D 6D 61 6E 64 20 70 72 6F 76 69 64 65 64 command provided
000170: 20 62 79 20 20 74 68 65 20 20 73 65 72 69 61 6C by the serial
000180: 0D 0A 20 20 20 20 20 20 20 69 6E 74 65 72 66 61 .. interfa
000190: 63 65 2E 20 49 4E 43 48 41 52 20 72 65 61 64 73 ce. INCHAR reads
0001A0: 20 61 20 63 68 61 72 61 63 74 65 72 20 66 72 6F a character fro
0001B0: 6D 20 74 68 65 20 53 65 72 69 61 6C 20 49 6E 74 m the Serial Int
0001C0: 65 72 66 61 63 65 20 61 6E 64 20 20 68 61 73 0D erface and has.
0001D0: 0A 20 20 20 20 20 20 20 74 68 65 20 66 6F 6C 6C . the foll
0001E0: 6F 77 69 6E 67 20 69 6E 74 65 72 66 61 63 65 3A owing interface:
0001F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ......
Size : 512 (Real : 512)
000000: 20 49 4E 43 48 41 52 20 20 20 20 20 20 20 20 20 INCHAR
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 43 6F 6D 6D 61 6E 64 20 6E 61 6D 65 Command name
000030: 3A 49 4E 43 48 41 52 0D 0A 0D 0A 0D 0A 20 20 20 :INCHAR......
000040: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
000050: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
000060: 20 20 20 20 20 20 20 20 20 20 20 41 20 3D 20 4E A = N
000070: 75 6D 62 65 72 20 6F 66 20 70 61 72 61 6D 65 74 umber of paramet
000080: 65 72 73 20 28 73 68 6F 75 6C 64 20 62 65 20 32 ers (should be 2
000090: 29 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 )...
0000A0: 20 20 20 20 49 58 20 3D 20 41 64 64 72 65 73 73 IX = Address
0000B0: 20 6F 66 20 70 61 72 61 6D 65 74 65 72 20 62 6C of parameter bl
0000C0: 6F 63 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ock.....
0000D0: 20 20 20 20 20 20 20 20 49 58 2B 32 20 3D 20 41 IX+2 = A
0000E0: 64 64 72 65 73 73 20 74 6F 20 73 74 6F 72 65 20 ddress to store
0000F0: 73 74 61 74 75 73 2F 0D 0A 20 20 20 20 20 20 20 status/..
000100: 20 20 20 20 20 20 20 20 20 49 58 2B 30 20 3D 20 IX+0 =
000110: 41 64 64 72 65 73 73 20 74 6F 20 73 74 6F 72 65 Address to store
000120: 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 2E character read.
000130: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 ...... Exi
000140: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
000150: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
000160: 20 20 20 41 46 2C 42 43 2C 44 45 2C 48 4C 2C 49 AF,BC,DE,HL,I
000170: 58 20 61 6E 64 20 49 59 20 63 6F 72 72 75 70 74 X and IY corrupt
000180: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 42 65 ....... Be
000190: 66 6F 72 65 20 69 74 20 69 73 20 70 6F 73 73 69 fore it is possi
0001A0: 62 6C 65 20 74 6F 20 75 73 65 20 74 68 65 20 65 ble to use the e
0001B0: 78 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 20 xternal command
0001C0: 69 74 20 69 73 20 20 6E 65 63 65 73 73 61 72 79 it is necessary
0001D0: 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 65 73 74 to.. est
0001E0: 61 62 6C 69 73 68 20 61 6E 64 20 73 74 6F 72 65 ablish and store
0001F0: 20 74 68 65 20 66 61 72 20 20 61 64 64 72 65 73 the far addres
Size : 512 (Real : 512)
000000: 73 20 20 6F 66 20 20 74 68 65 20 20 72 6F 75 74 s of the rout
000010: 69 6E 65 2E 20 20 54 68 69 73 20 20 6D 61 79 20 ine. This may
000020: 20 62 65 0D 0A 20 20 20 20 20 20 20 70 65 72 66 be.. perf
000030: 6F 72 6D 65 64 20 61 73 20 66 6F 6C 6C 6F 77 73 ormed as follows
000040: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 :......
000050: 20 20 20 20 20 20 20 4C 44 20 48 4C 2C 43 4D 44 LD HL,CMD
000060: 5F 54 41 42 4C 45 20 20 20 20 20 20 20 20 20 20 _TABLE
000070: 20 20 20 20 20 3B 50 6F 69 6E 74 65 72 20 74 6F ;Pointer to
000080: 20 63 6F 6D 6D 61 6E 64 20 6E 61 6D 65 0D 0A 20 command name..
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 C
0000A0: 41 4C 4C 20 4B 4C 5F 46 49 4E 44 5F 43 4F 4D 4D ALL KL_FIND_COMM
0000B0: 41 4E 44 20 20 20 20 20 20 20 20 20 20 3B 41 73 AND ;As
0000C0: 6B 20 4B 65 72 6E 65 6C 20 77 68 65 72 65 20 69 k Kernel where i
0000D0: 74 20 69 73 0D 0A 20 20 20 20 20 20 20 20 20 20 t is..
0000E0: 20 20 20 20 20 20 4A 52 20 4E 43 2C 45 52 52 4F JR NC,ERRO
0000F0: 52 5F 52 4F 55 54 49 4E 45 20 20 20 20 20 20 20 R_ROUTINE
000100: 20 20 20 20 3B 43 6F 6D 6D 61 6E 64 20 6E 6F 74 ;Command not
000110: 20 66 6F 75 6E 64 20 65 72 72 6F 72 0D 0A 20 20 found error..
000120: 20 20 20 20 20 3B 0D 0A 20 20 20 20 20 20 20 20 ;..
000130: 20 20 20 20 20 20 20 20 4C 44 20 28 43 4D 44 5F LD (CMD_
000140: 46 41 52 5F 41 44 44 52 45 53 53 2B 30 29 2C 48 FAR_ADDRESS+0),H
000150: 4C 20 20 20 20 20 3B 53 74 6F 72 65 20 61 64 64 L ;Store add
000160: 72 65 73 73 0D 0A 20 20 20 20 20 20 20 20 20 20 ress..
000170: 20 20 20 20 20 20 4C 44 20 41 2C 43 0D 0A 20 20 LD A,C..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4C 44 LD
000190: 20 28 43 4D 44 5F 46 41 52 5F 41 44 44 52 45 53 (CMD_FAR_ADDRES
0001A0: 53 2B 32 29 2C 41 20 20 20 20 20 20 3B 53 74 6F S+2),A ;Sto
0001B0: 72 65 20 52 4F 4D 20 6E 75 6D 62 65 72 0D 0A 0D re ROM number...
0001C0: 0A 20 20 20 20 20 20 20 43 4D 44 5F 4E 41 4D 45 . CMD_NAME
0001D0: 3A 20 20 20 20 20 20 20 20 20 20 44 45 46 42 20 : DEFB
0001E0: 27 49 4E 43 48 41 27 2C 27 52 27 2B 23 38 30 0D 'INCHA','R'+#80.
0001F0: 0A 20 20 20 20 20 20 20 43 4D 44 5F 46 41 52 5F . CMD_FAR_
Size : 512 (Real : 512)
000000: 41 44 44 52 45 53 53 3A 20 20 20 44 45 46 53 20 ADDRESS: DEFS
000010: 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 3 ;
000020: 41 72 65 61 20 66 6F 72 20 73 74 6F 72 69 6E 67 Area for storing
000030: 20 66 61 72 20 61 64 64 72 65 73 73 0D 0A 0D 0A far address....
000040: 20 20 20 20 20 20 20 48 61 76 69 6E 67 20 66 6F Having fo
000050: 75 6E 64 20 74 68 65 20 66 61 72 20 61 64 64 72 und the far addr
000060: 65 73 73 20 6F 66 20 74 68 65 20 72 6F 75 74 69 ess of the routi
000070: 6E 65 20 69 74 20 63 61 6E 20 6E 6F 77 20 62 65 ne it can now be
000080: 20 63 61 6C 6C 65 64 2E 20 20 46 6F 72 0D 0A 20 called. For..
000090: 20 20 20 20 20 20 65 78 61 6D 70 6C 65 3A 0D 0A example:..
0000A0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0000B0: 20 20 4C 44 20 41 2C 32 20 20 20 20 20 20 20 20 LD A,2
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000D0: 3B 32 20 70 61 72 61 6D 65 74 65 72 73 0D 0A 20 ;2 parameters..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4C L
0000F0: 44 20 49 58 2C 50 41 52 41 4D 5F 42 4C 4F 43 4B D IX,PARAM_BLOCK
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 41 64 ;Ad
000110: 64 72 65 73 73 20 6F 66 20 70 61 72 61 6D 65 74 dress of paramet
000120: 65 72 20 62 6C 6F 63 6B 0D 0A 20 20 20 20 20 20 er block..
000130: 20 20 20 20 20 20 20 20 20 20 52 53 54 20 33 20 RST 3
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000150: 20 20 20 20 20 20 20 20 3B 46 41 52 20 43 41 4C ;FAR CAL
000160: 4C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 L..
000170: 20 20 20 44 45 46 57 20 43 4D 44 5F 46 41 52 5F DEFW CMD_FAR_
000180: 41 44 44 52 45 53 53 20 20 20 20 20 20 20 20 20 ADDRESS
000190: 20 3B 50 6F 69 6E 74 65 72 20 74 6F 20 66 61 72 ;Pointer to far
0001A0: 20 61 64 64 72 65 73 73 0D 0A 20 20 20 20 20 20 address..
0001B0: 20 20 20 20 20 20 20 20 20 20 4C 44 20 48 4C 2C LD HL,
0001C0: 28 53 54 41 54 55 53 29 20 20 20 20 20 20 20 20 (STATUS)
0001D0: 20 20 20 20 20 20 20 20 3B 48 4C 3D 53 65 72 69 ;HL=Seri
0001E0: 61 6C 20 49 6E 74 65 72 66 61 63 65 20 73 74 61 al Interface sta
0001F0: 74 75 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 tus..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 4C 44 20 41 2C 28 43 48 41 52 29 LD A,(CHAR)
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 3B 41 3D 43 68 61 72 61 63 74 65 72 20 ;A=Character
000030: 72 65 61 64 20 28 69 66 20 61 6E 79 29 0D 0A 0D read (if any)...
000040: 0A 20 20 20 20 20 20 20 50 41 52 41 4D 5F 42 4C . PARAM_BL
000050: 4F 43 4B 20 20 20 20 20 20 20 20 44 45 46 57 20 OCK DEFW
000060: 53 54 41 54 55 53 20 20 20 20 20 20 20 20 20 3B STATUS ;
000070: 46 69 72 73 74 20 70 61 72 61 6D 65 74 65 72 20 First parameter
000080: 69 73 20 73 74 61 74 75 73 0D 0A 20 20 20 20 20 is status..
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 20 44 45 46 57 20 43 48 41 52 20 20 DEFW CHAR
0000B0: 20 20 20 20 20 20 20 20 20 3B 53 65 63 6F 6E 64 ;Second
0000C0: 20 70 61 72 61 6D 65 74 65 72 20 69 73 20 63 68 parameter is ch
0000D0: 61 72 61 63 74 65 72 0D 0A 20 20 20 20 20 20 20 aracter..
0000E0: 3B 0D 0A 20 20 20 20 20 20 20 53 54 41 54 55 53 ;.. STATUS
0000F0: 3A 20 20 20 20 20 20 20 20 20 20 20 20 44 45 46 : DEF
000100: 57 20 23 30 30 30 30 0D 0A 20 20 20 20 20 20 20 W #0000..
000110: 43 48 41 52 3A 20 20 20 20 20 20 20 20 20 20 20 CHAR:
000120: 20 20 20 44 45 46 57 20 23 30 30 30 30 0D 0A 0D DEFW #0000...
000130: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
000140: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
000150: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 70 61 67 65 20 31 30 2E 31 31 0D 0A page 10.11..
000180: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000190: 20 20 20 63 29 20 50 61 73 73 69 6E 67 20 64 69 c) Passing di
0001A0: 66 66 65 72 65 6E 74 20 74 79 70 65 73 20 6F 66 fferent types of
0001B0: 20 70 61 72 61 6D 65 74 65 72 0D 0A 0D 0A 0D 0A parameter......
0001C0: 20 20 20 20 20 20 20 54 68 69 73 20 65 78 6D 70 This exmp
0001D0: 6C 65 20 75 73 65 73 20 61 6E 20 69 6E 76 65 6E le uses an inven
0001E0: 74 65 64 20 65 78 74 65 72 6E 61 6C 20 63 6F 6D ted external com
0001F0: 6D 61 6E 64 20 77 68 69 63 68 20 74 61 6B 65 73 mand which takes
Size : 512 (Real : 512)
000000: 20 61 20 73 74 72 69 6E 67 20 20 6F 66 0D 0A 20 a string of..
000010: 20 20 20 20 20 20 63 68 61 72 61 63 74 65 72 73 characters
000020: 2C 20 6C 6F 6F 6B 73 20 74 68 65 73 65 20 75 70 , looks these up
000030: 20 69 6E 20 61 6E 20 69 6E 64 65 78 20 61 6E 64 in an index and
000040: 20 72 65 74 75 72 6E 73 20 61 20 72 65 66 65 72 returns a refer
000050: 65 6E 63 65 20 6E 75 6D 62 65 72 2E 0D 0A 20 20 ence number...
000060: 20 20 20 20 20 54 68 65 20 65 78 74 65 72 6E 61 The externa
000070: 6C 20 63 6F 6D 6D 61 6E 64 20 69 73 20 61 73 73 l command is ass
000080: 75 6D 65 64 20 74 6F 20 62 65 20 64 65 73 69 67 umed to be desig
000090: 6E 65 64 20 74 6F 20 62 65 20 63 61 6C 6C 65 64 ned to be called
0000A0: 20 66 72 6F 6D 20 42 41 53 49 43 0D 0A 20 20 20 from BASIC..
0000B0: 20 20 20 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D as follows:.
0000C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
0000D0: 20 20 20 20 20 7C 52 45 46 4E 55 4D 2C 40 43 48 |REFNUM,@CH
0000E0: 41 52 54 52 49 4E 47 24 2C 49 4E 44 45 58 4E 55 ARTRING$,INDEXNU
0000F0: 4D 2C 40 52 45 46 4E 55 4D 0D 0A 0D 0A 0D 0A 20 M,@REFNUM......
000100: 20 20 20 20 20 20 69 2E 65 2E 20 54 68 65 20 66 i.e. The f
000110: 69 72 73 74 20 70 61 72 61 6D 65 74 65 72 20 69 irst parameter i
000120: 73 20 61 20 73 74 72 69 6E 67 20 28 77 68 6F 73 s a string (whos
000130: 65 20 61 64 64 72 65 73 73 20 69 73 20 20 70 61 e address is pa
000140: 73 73 65 64 29 20 20 77 68 69 63 68 0D 0A 20 20 ssed) which..
000150: 20 20 20 20 20 69 73 20 74 6F 20 62 65 20 6C 6F is to be lo
000160: 6F 6B 65 64 20 75 70 2E 20 54 68 65 20 73 65 63 oked up. The sec
000170: 6F 6E 64 20 70 61 72 61 6D 65 74 65 72 20 69 73 ond parameter is
000180: 20 61 20 6E 75 6D 62 65 72 20 73 70 65 63 69 66 a number specif
000190: 79 69 6E 67 20 20 77 68 69 63 68 0D 0A 20 20 20 ying which..
0001A0: 20 20 20 20 69 6E 64 65 78 20 74 6F 20 75 73 65 index to use
0001B0: 2C 20 61 6E 64 20 74 68 65 20 74 68 69 72 64 20 , and the third
0001C0: 70 61 72 61 6D 65 74 65 72 20 69 73 20 61 20 76 parameter is a v
0001D0: 61 72 69 61 62 6C 65 20 28 77 68 6F 73 65 20 61 ariable (whose a
0001E0: 64 64 72 65 73 73 20 20 69 73 0D 0A 20 20 20 20 ddress is..
0001F0: 20 20 20 70 61 73 73 65 64 29 20 77 68 69 63 68 passed) which
Size : 512 (Real : 512)
000000: 20 69 73 20 74 6F 20 62 65 20 73 65 74 20 74 6F is to be set to
000010: 20 74 68 65 20 72 65 71 75 69 72 65 64 20 72 65 the required re
000020: 66 65 72 65 6E 63 65 20 6E 75 6D 62 65 72 2E 0D ference number..
000030: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
000040: 66 61 72 20 61 64 64 72 65 73 73 20 6F 66 20 74 far address of t
000050: 68 65 20 72 6F 75 74 69 6E 65 20 63 61 6E 20 62 he routine can b
000060: 65 20 65 73 74 61 62 6C 69 73 68 65 64 20 69 6E e established in
000070: 20 74 68 65 20 73 61 6D 65 20 20 77 61 79 20 20 the same way
000080: 61 73 0D 0A 20 20 20 20 20 20 20 77 61 73 20 64 as.. was d
000090: 65 73 63 72 69 62 65 64 20 69 6E 20 74 68 65 20 escribed in the
0000A0: 70 72 65 76 69 6F 75 73 20 74 77 6F 20 65 78 61 previous two exa
0000B0: 6D 70 6C 65 73 2E 20 54 6F 20 63 61 6C 6C 20 74 mples. To call t
0000C0: 68 69 73 20 72 6F 75 74 69 6E 65 20 20 66 72 6F his routine fro
0000D0: 6D 0D 0A 20 20 20 20 20 20 20 61 20 6D 61 63 68 m.. a mach
0000E0: 69 6E 65 20 63 6F 64 65 20 70 72 6F 67 72 61 6D ine code program
0000F0: 20 69 74 20 69 73 20 6E 65 63 65 73 73 61 72 79 it is necessary
000100: 20 74 6F 20 73 65 74 20 75 70 20 74 68 65 20 20 to set up the
000110: 70 61 72 61 6D 65 74 65 72 20 20 62 6C 6F 63 6B parameter block
000120: 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 61 20 73 .. and a s
000130: 74 72 69 6E 67 20 64 65 73 63 72 69 70 74 6F 72 tring descriptor
000140: 2E 20 54 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 . The following
000150: 73 75 62 72 6F 75 74 69 6E 65 20 64 6F 65 73 20 subroutine does
000160: 74 68 69 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 this:......
000170: 20 20 47 45 54 5F 52 45 46 5F 4E 55 4D 3A 20 20 GET_REF_NUM:
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 20 20 20 20 20 3B 45 6E 74 72 79 3A ;Entry:
0001A0: 20 48 4C 3D 41 64 64 72 65 73 73 20 6F 66 20 73 HL=Address of s
0001B0: 74 72 69 6E 67 2E 0D 0A 20 20 20 20 20 20 20 20 tring...
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 3B 20 20 20 20 20 20 20 41 20 ; A
0001F0: 3D 4C 65 6E 67 74 68 20 6F 66 20 73 74 72 69 6E =Length of strin
Size : 512 (Real : 512)
000000: 67 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 g...
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 3B 20 20 20 20 20 20 20 44 45 3D 49 6E 64 ; DE=Ind
000040: 65 78 20 6E 75 6D 62 65 72 2E 0D 0A 20 20 20 20 ex number...
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 20 20 20 3B 45 78 69 74 3A ;Exit:
000080: 20 20 48 4C 3D 52 65 66 65 72 65 6E 63 65 20 6E HL=Reference n
000090: 75 6D 62 65 72 2E 0D 0A 20 20 20 20 20 20 20 20 umber...
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 46 AF
0000D0: 2C 42 43 2C 44 45 2C 49 58 2C 49 59 20 63 6F 72 ,BC,DE,IX,IY cor
0000E0: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 rupt...
0000F0: 20 20 20 20 20 20 20 4C 44 20 28 53 54 52 5F 44 LD (STR_D
000100: 45 53 43 52 49 50 54 4F 52 2B 30 29 2C 41 20 20 ESCRIPTOR+0),A
000110: 20 20 20 20 20 3B 53 74 6F 72 65 20 6C 65 6E 67 ;Store leng
000120: 74 68 20 6F 66 20 73 74 72 69 6E 67 2E 0D 0A 0D th of string....
000130: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000140: 20 4C 44 20 28 53 54 52 5F 44 45 53 43 52 49 50 LD (STR_DESCRIP
000150: 54 4F 52 2B 31 29 2C 48 4C 20 20 20 20 20 20 3B TOR+1),HL ;
000160: 53 74 6F 72 65 20 61 64 64 72 65 73 73 20 6F 66 Store address of
000170: 20 73 74 72 69 6E 67 0D 0A 20 20 20 20 20 20 20 string..
000180: 20 20 20 20 20 20 20 20 20 4C 44 20 28 50 41 52 LD (PAR
000190: 41 4D 5F 42 4C 4F 43 4B 2B 32 29 2C 44 45 20 20 AM_BLOCK+2),DE
0001A0: 20 20 20 20 20 20 20 3B 53 74 6F 72 65 20 69 6E ;Store in
0001B0: 64 65 78 20 6E 75 6D 62 65 72 0D 0A 20 20 20 20 dex number..
0001C0: 20 20 20 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 ;..
0001D0: 20 20 20 20 20 20 4C 44 20 41 2C 33 20 20 20 20 LD A,3
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001F0: 20 20 20 20 3B 33 20 70 61 72 61 6D 65 74 65 72 ;3 parameter
Size : 512 (Real : 512)
000000: 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 s..
000010: 20 20 20 4C 44 20 49 58 2C 50 41 52 41 4D 5F 42 LD IX,PARAM_B
000020: 4C 4F 43 4B 20 20 20 20 20 20 20 20 20 20 20 20 LOCK
000030: 20 3B 41 64 64 72 65 73 73 20 6F 66 20 70 61 72 ;Address of par
000040: 61 6D 65 74 65 72 20 62 6C 6F 63 6B 0D 0A 20 20 ameter block..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 53 RS
000060: 54 20 33 20 20 20 20 20 20 20 20 20 20 20 20 20 T 3
000070: 20 20 20 20 20 20 20 20 20 20 20 20 3B 46 41 52 ;FAR
000080: 20 43 41 4C 4C 0D 0A 20 20 20 20 20 20 20 20 20 CALL..
000090: 20 20 20 20 20 20 20 44 45 46 57 20 43 4D 44 5F DEFW CMD_
0000A0: 46 41 52 5F 41 44 44 52 45 53 53 20 20 20 20 20 FAR_ADDRESS
0000B0: 20 20 20 20 20 3B 50 6F 69 6E 74 65 72 20 74 6F ;Pointer to
0000C0: 20 66 61 72 20 61 64 64 72 65 73 73 0D 0A 20 20 far address..
0000D0: 20 20 20 20 20 3B 0D 0A 20 20 20 20 20 20 20 20 ;..
0000E0: 20 20 20 20 20 20 20 20 4C 44 20 48 4C 2C 52 45 LD HL,RE
0000F0: 46 5F 4E 55 4D 20 20 20 20 20 20 20 20 20 20 20 F_NUM
000100: 20 20 20 20 20 20 3B 48 4C 3D 52 65 66 65 72 65 ;HL=Refere
000110: 6E 63 65 20 6E 75 6D 62 65 72 0D 0A 20 20 20 20 nce number..
000120: 20 20 20 20 20 20 20 20 20 20 20 20 52 45 54 0D RET.
000130: 0A 0D 0A 20 20 20 20 20 20 20 50 41 52 41 4D 5F ... PARAM_
000140: 42 4C 4F 43 4B 3A 20 20 20 20 20 20 20 44 45 46 BLOCK: DEF
000150: 57 20 53 54 52 5F 44 45 53 43 52 49 50 54 4F 52 W STR_DESCRIPTOR
000160: 20 3B 46 69 72 73 74 20 70 61 72 61 6D 61 74 65 ;First paramate
000170: 72 20 69 73 20 61 64 64 72 65 73 73 20 6F 66 0D r is address of.
000180: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B ;
0001B0: 73 74 72 69 6E 67 20 64 65 73 72 69 70 74 6F 72 string desriptor
0001C0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 44 45 46 57 DEFW
0001E0: 20 20 23 30 30 30 30 20 20 20 20 20 20 20 20 20 #0000
0001F0: 3B 53 65 63 6F 6E 64 20 20 70 61 72 61 6D 65 74 ;Second paramet
Size : 512 (Real : 512)
000000: 65 72 20 20 69 73 20 20 69 6E 64 65 78 0D 0A 20 er is index..
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 6E 75 ;nu
000040: 6D 62 65 72 0D 0A 20 20 20 20 20 20 20 20 20 20 mber..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 44 45 46 57 20 52 45 46 4E 55 4D 20 20 20 20 20 DEFW REFNUM
000070: 20 20 20 20 3B 54 68 69 72 64 20 70 61 72 61 6D ;Third param
000080: 65 74 65 72 20 69 73 20 61 64 64 72 65 73 73 20 eter is address
000090: 6F 66 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 of..
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 3B 73 74 6F 72 65 20 66 6F 72 20 72 65 66 ;store for ref
0000D0: 65 72 65 6E 63 65 20 6E 75 6D 62 65 72 0D 0A 20 erence number..
0000E0: 20 20 20 20 20 20 3B 0D 0A 20 20 20 20 20 20 20 ;..
0000F0: 53 54 52 5F 44 45 53 43 52 49 50 54 4F 52 20 20 STR_DESCRIPTOR
000100: 20 20 20 44 45 46 42 20 23 30 30 20 20 20 20 20 DEFB #00
000110: 20 20 20 20 20 20 20 3B 4C 65 6E 67 74 68 0D 0A ;Length..
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 20 20 20 20 20 20 44 45 46 57 20 23 DEFW #
000140: 30 30 30 30 20 20 20 20 20 20 20 20 20 20 3B 41 0000 ;A
000150: 64 64 72 65 73 73 0D 0A 20 20 20 20 20 20 20 3B ddress.. ;
000160: 0D 0A 20 20 20 20 20 20 20 52 45 46 4E 55 4D 20 .. REFNUM
000170: 20 20 20 20 20 20 20 20 20 20 20 20 44 45 46 57 DEFW
000180: 20 23 30 30 30 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A #0000..........
000190: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
0001A0: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
0001B0: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 20 20 20 20 20 20 70 61 67 65 20 31 30 2E 31 page 10.1
0001E0: 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 2..............
0001F0: 20 20 20 20 20 20 54 68 65 20 65 78 74 65 72 6E The extern
Size : 512 (Real : 512)
000000: 61 6C 20 63 6F 6D 6D 61 6E 64 20 72 6F 75 74 69 al command routi
000010: 6E 65 20 74 68 61 74 20 69 73 20 62 65 69 6E 67 ne that is being
000020: 20 20 63 61 6C 6C 65 64 20 20 68 61 73 20 20 74 called has t
000030: 6F 20 20 70 69 63 6B 20 20 74 68 65 0D 0A 20 20 o pick the..
000040: 20 20 20 20 20 70 61 72 61 6D 65 74 65 72 73 20 parameters
000050: 6F 75 74 20 6F 66 20 74 68 65 20 70 72 61 6D 65 out of the prame
000060: 74 65 72 20 62 6C 6F 63 6B 20 61 6E 64 20 69 74 ter block and it
000070: 20 6D 69 67 68 74 20 77 6F 72 6B 20 61 73 20 66 might work as f
000080: 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 0D 0A 0D 0A 20 ollows:........
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4C L
0000A0: 44 20 4C 2C 28 49 58 2B 30 29 0D 0A 20 20 20 20 D L,(IX+0)..
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 4C 44 20 48 LD H
0000C0: 2C 28 49 58 2B 31 29 20 20 20 20 20 20 20 20 20 ,(IX+1)
0000D0: 20 20 20 20 20 20 20 20 20 20 3B 48 4C 3D 41 64 ;HL=Ad
0000E0: 64 72 65 73 73 20 6F 66 20 73 74 72 69 6E 67 0D dress of string.
0000F0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B ;
000120: 64 65 73 63 72 69 70 74 6F 72 0D 0A 20 20 20 20 descriptor..
000130: 20 20 20 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 ;..
000140: 20 20 20 20 20 20 4C 44 20 41 2C 28 48 4C 29 0D LD A,(HL).
000150: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000160: 20 49 4E 43 20 48 4C 20 20 20 20 20 20 20 20 20 INC HL
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B ;
000180: 41 3D 4C 65 6E 67 74 68 20 6F 66 20 74 68 65 20 A=Length of the
000190: 73 74 72 69 6E 67 0D 0A 0D 0A 20 20 20 20 20 20 string....
0001A0: 20 20 20 20 20 20 20 20 20 20 4C 44 20 45 2C 28 LD E,(
0001B0: 48 4C 29 0D 0A 20 20 20 20 20 20 20 20 20 20 20 HL)..
0001C0: 20 20 20 20 20 49 4E 43 20 48 4C 0D 0A 20 20 20 INC HL..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 4C 44 20 LD
0001E0: 44 2C 28 48 4C 29 0D 0A 20 20 20 20 20 20 20 20 D,(HL)..
0001F0: 20 20 20 20 20 20 20 20 45 58 20 48 4C 2C 44 45 EX HL,DE
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 3B 48 4C 3D 41 64 64 72 65 73 ;HL=Addres
000020: 73 20 6F 66 20 73 74 72 69 6E 67 2E 0D 0A 20 20 s of string...
000030: 20 20 20 20 20 3B 0D 0A 20 20 20 20 20 20 20 20 ;..
000040: 20 20 20 20 20 20 20 20 4C 44 20 45 2C 28 49 58 LD E,(IX
000050: 2B 32 29 0D 0A 20 20 20 20 20 20 20 20 20 20 20 +2)..
000060: 20 20 20 20 20 4C 44 20 44 2C 28 49 58 2B 33 29 LD D,(IX+3)
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 20 3B 44 45 3D 49 6E 64 65 78 20 6E 75 6D ;DE=Index num
000090: 62 65 72 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ber....
0000A0: 20 20 20 20 20 20 20 2E 2E 2E 20 20 20 20 20 20 ...
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 20 20 20 3B 4C 6F 6F 6B 20 75 70 20 73 74 ;Look up st
0000D0: 72 69 6E 67 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ring....
0000E0: 20 20 20 20 20 20 20 20 4C 44 20 28 49 58 2B 34 LD (IX+4
0000F0: 29 2C 4C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ),L..
000100: 20 20 20 20 20 4C 44 20 28 49 58 2B 35 29 2C 48 LD (IX+5),H
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000120: 20 20 20 3B 53 74 6F 72 65 20 72 65 73 75 6C 74 ;Store result
000130: 69 6E 67 20 72 65 66 65 72 65 6E 63 65 0D 0A 20 ing reference..
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 R
000150: 45 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ET
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 6E 75 ;nu
000170: 6D 62 65 72 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A mber............
000180: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
000190: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0001A0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0001B0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
0001C0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
0001D0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
0001E0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
0001F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
Size : 512 (Real : 512)
000000: 65 20 31 30 2E 31 33 0D 0A 1A 24 24 24 FF 00 FF e 10.13...$$$...
000010: 68 65 6E 20 74 68 65 20 69 6E 69 74 69 61 6C 69 hen the initiali
000020: 7A 61 74 69 6F 6E 20 72 6F 75 74 69 6E 65 20 72 zation routine r
000030: 65 74 75 72 6E 73 2C 20 74 68 65 20 4B 65 72 6E eturns, the Kern
000040: 65 6C 20 73 74 6F 72 65 73 20 74 68 65 20 61 64 el stores the ad
000050: 64 72 65 73 73 0D 0A 20 20 20 20 20 20 20 6F 66 dress.. of
000060: 20 74 68 65 20 62 61 73 65 20 6F 66 20 74 68 65 the base of the
000070: 20 75 70 70 65 72 20 61 72 65 61 20 77 68 69 63 upper area whic
000080: 20 20 20 3B 44 45 3D 49 6E 64 65 78 20 6E 75 6D ;DE=Index num
000090: 62 65 72 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ber....
0000A0: 20 20 20 20 20 20 20 2E 2E 2E 20 20 20 20 20 20 ...
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 20 20 20 3B 4C 6F 6F 6B 20 75 70 20 73 74 ;Look up st
0000D0: 72 69 6E 67 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ring....
0000E0: 20 20 20 20 20 20 20 20 4C 44 20 28 49 58 2B 34 LD (IX+4
0000F0: 29 2C 4C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ),L..
000100: 20 20 20 20 20 4C 44 20 28 49 58 2B 35 29 2C 48 LD (IX+5),H
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000120: 20 20 20 3B 53 74 6F 72 65 20 72 65 73 75 6C 74 ;Store result
000130: 69 6E 67 20 72 65 66 65 72 65 6E 63 65 0D 0A 20 ing reference..
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 R
000150: 45 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ET
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 6E 75 ;nu
000170: 6D 62 65 72 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A mber............
000180: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
000190: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0001A0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0001B0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
0001C0: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
0001D0: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
0001E0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
0001F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
000010: 31 20 49 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D 1 Interrupts....
000020: 0A 20 20 20 20 20 20 20 54 68 65 72 65 20 69 73 . There is
000030: 20 6F 6E 6C 79 20 6F 6E 65 20 73 6F 75 72 63 65 only one source
000040: 20 20 6F 66 20 20 69 6E 74 65 72 72 75 70 74 73 of interrupts
000050: 20 20 69 6E 20 20 61 6E 20 20 75 6E 65 78 70 61 in an unexpa
000060: 6E 64 65 64 20 20 6D 61 63 68 69 6E 65 2C 0D 0A nded machine,..
000070: 20 20 20 20 20 20 20 6E 61 6D 65 6C 79 20 20 61 namely a
000080: 20 20 72 65 67 75 6C 61 72 20 20 74 69 6D 65 20 regular time
000090: 20 69 6E 74 65 72 72 75 70 74 2E 20 20 45 78 70 interrupt. Exp
0000A0: 61 6E 73 69 6F 6E 20 20 62 6F 61 72 64 73 20 20 ansion boards
0000B0: 6D 61 79 20 20 67 65 6E 65 72 61 74 65 0D 0A 20 may generate..
0000C0: 20 20 20 20 20 20 69 6E 74 65 72 72 75 70 74 73 interrupts
0000D0: 2C 20 62 75 74 20 73 75 69 74 61 62 6C 65 20 73 , but suitable s
0000E0: 6F 66 74 77 61 72 65 20 6D 75 73 74 20 62 65 20 oftware must be
0000F0: 70 72 6F 76 69 64 65 64 20 74 6F 20 20 64 65 61 provided to dea
000100: 6C 20 20 77 69 74 68 20 20 74 68 65 0D 0A 20 20 l with the..
000110: 20 20 20 20 20 65 78 74 72 61 20 69 6E 74 65 72 extra inter
000120: 72 75 70 74 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 rupts.....
000130: 20 54 68 65 20 73 79 73 74 65 6D 20 72 75 6E 73 The system runs
000140: 20 77 69 74 68 20 69 6E 74 65 72 72 75 70 74 73 with interrupts
000150: 20 20 65 6E 61 62 6C 65 64 20 20 6D 6F 73 74 20 enabled most
000160: 20 6F 66 20 20 74 68 65 20 20 74 69 6D 65 2E 20 of the time.
000170: 20 49 74 20 20 69 73 0D 0A 20 20 20 20 20 20 20 It is..
000180: 69 6E 61 64 76 69 73 61 62 6C 65 20 74 6F 20 64 inadvisable to d
000190: 69 73 61 62 6C 65 20 69 6E 74 65 72 72 75 70 74 isable interrupt
0001A0: 73 20 66 6F 72 20 61 20 70 72 6F 6C 6F 6E 67 65 s for a prolonge
0001B0: 64 20 70 65 72 69 6F 64 20 20 69 66 20 20 74 68 d period if th
0001C0: 69 73 20 20 69 73 0D 0A 20 20 20 20 20 20 20 61 is is.. a
0001D0: 76 6F 69 64 61 62 6C 65 20 62 65 63 61 75 73 65 voidable because
0001E0: 20 74 68 65 20 74 69 6D 65 20 69 6E 74 65 72 72 the time interr
0001F0: 75 70 74 73 20 77 69 6C 6C 20 62 65 20 6D 69 73 upts will be mis
Size : 512 (Real : 512)
000000: 73 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 sed.......
000010: 20 41 20 6E 75 6D 62 65 72 20 6F 66 20 66 69 72 A number of fir
000020: 6D 77 61 72 65 20 72 6F 75 74 69 6E 65 73 20 65 mware routines e
000030: 6E 61 62 6C 65 20 69 6E 74 65 72 72 75 70 74 73 nable interrupts
000040: 20 61 6E 64 20 74 68 69 73 20 20 69 73 20 20 72 and this is r
000050: 65 6D 61 72 6B 65 64 0D 0A 20 20 20 20 20 20 20 emarked..
000060: 75 70 6F 6E 20 69 6E 20 74 68 65 69 72 20 64 65 upon in their de
000070: 73 63 72 69 70 74 69 6F 6E 73 2E 20 49 6E 20 70 scriptions. In p
000080: 61 72 74 69 63 75 6C 61 72 20 74 68 65 20 6B 65 articular the ke
000090: 72 6E 65 6C 20 72 6F 75 74 69 6E 65 73 20 20 64 rnel routines d
0000A0: 65 61 6C 69 6E 67 0D 0A 20 20 20 20 20 20 20 77 ealing.. w
0000B0: 69 74 68 20 52 4F 4D 73 20 61 6E 64 20 74 68 65 ith ROMs and the
0000C0: 20 20 72 65 73 74 61 72 74 20 20 69 6E 73 74 72 restart instr
0000D0: 75 63 74 69 6F 6E 73 20 20 28 20 20 65 67 2E 20 uctions ( eg.
0000E0: 20 4C 4F 57 20 20 4A 55 4D 50 20 20 29 20 20 65 LOW JUMP ) e
0000F0: 6E 61 62 6C 65 0D 0A 20 20 20 20 20 20 20 69 6E nable.. in
000100: 74 65 72 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 20 terrupts.......
000110: 20 20 20 20 20 20 31 31 2E 31 20 20 20 54 68 65 11.1 The
000120: 20 54 69 6D 65 20 49 6E 74 65 72 72 75 70 74 2E Time Interrupt.
000130: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
000140: 20 74 69 6D 65 20 69 6E 74 65 72 72 75 70 74 20 time interrupt
000150: 6F 63 63 75 72 73 20 72 6F 75 67 68 6C 79 20 6F occurs roughly o
000160: 6E 63 65 20 65 76 65 72 79 20 31 2F 33 30 30 74 nce every 1/300t
000170: 68 20 6F 66 20 61 20 20 73 65 63 6F 6E 64 2E 20 h of a second.
000180: 20 4F 6E 0D 0A 20 20 20 20 20 20 20 6D 61 63 68 On.. mach
000190: 69 6E 65 73 20 77 69 74 68 20 50 41 4C 20 6D 6F ines with PAL mo
0001A0: 6E 69 74 6F 72 73 20 28 61 73 20 69 6E 20 74 68 nitors (as in th
0001B0: 65 20 55 4B 20 29 20 6F 72 20 53 45 43 41 4D 20 e UK ) or SECAM
0001C0: 6D 6F 6E 69 74 6F 72 73 20 28 20 20 61 73 20 20 monitors ( as
0001D0: 69 6E 0D 0A 20 20 20 20 20 20 20 46 72 61 6E 63 in.. Franc
0001E0: 65 20 29 20 74 68 65 20 74 69 6D 65 72 20 69 73 e ) the timer is
0001F0: 20 73 79 6E 63 68 72 6F 6E 69 73 65 64 20 20 77 synchronised w
Size : 512 (Real : 512)
000000: 69 74 68 20 20 66 72 61 6D 65 20 20 66 6C 79 62 ith frame flyb
000010: 61 63 6B 20 20 65 76 65 72 79 20 20 73 69 78 74 ack every sixt
000020: 68 0D 0A 20 20 20 20 20 20 20 74 69 63 6B 2E 20 h.. tick.
000030: 4F 6E 20 6D 61 63 68 69 6E 65 73 20 75 73 69 6E On machines usin
000040: 67 20 4E 54 53 43 20 6D 6F 6E 69 74 6F 72 73 20 g NTSC monitors
000050: 28 20 61 73 20 69 6E 20 74 68 65 20 55 53 20 29 ( as in the US )
000060: 20 20 74 68 65 20 20 74 69 6D 65 72 20 20 69 73 the timer is
000070: 0D 0A 20 20 20 20 20 20 20 73 79 6E 63 68 72 6F .. synchro
000080: 6E 69 73 65 64 20 77 69 74 68 20 66 72 61 6D 65 nised with frame
000090: 20 66 6C 79 62 61 63 6B 20 65 76 65 72 79 20 66 flyback every f
0000A0: 69 66 74 68 20 74 69 63 6B 2E 20 54 68 65 20 20 ifth tick. The
0000B0: 74 69 6D 65 20 20 69 6E 74 65 72 72 75 70 74 0D time interrupt.
0000C0: 0A 20 20 20 20 20 20 20 69 73 20 70 72 6F 63 65 . is proce
0000D0: 73 73 65 64 20 62 79 20 74 68 65 20 4B 65 72 6E ssed by the Kern
0000E0: 65 6C 20 61 6E 64 20 70 72 65 73 65 6E 74 65 64 el and presented
0000F0: 20 74 6F 20 74 68 65 20 72 65 73 74 20 6F 66 20 to the rest of
000100: 74 68 65 20 73 79 73 74 65 6D 20 20 69 6E 0D 0A the system in..
000110: 20 20 20 20 20 20 20 61 20 6E 75 6D 62 65 72 20 a number
000120: 6F 66 20 77 61 79 73 20 3A 0D 0A 0D 0A 0D 0A 0D of ways :.......
000130: 0A 20 20 20 20 20 20 20 61 2E 20 46 61 73 74 20 . a. Fast
000140: 54 69 63 6B 65 72 20 49 6E 74 65 72 72 75 70 74 Ticker Interrupt
000150: 73 2E 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.
000160: 50 65 72 69 6F 64 20 3D 20 31 2F 33 30 30 74 68 Period = 1/300th
000170: 20 6F 66 20 61 20 73 65 63 6F 6E 64 2E 0D 0A 0D of a second....
000180: 0A 0D 0A 20 20 20 20 20 20 20 46 6F 72 20 61 20 ... For a
000190: 68 69 67 68 20 72 65 73 6F 6C 75 74 69 6F 6E 20 high resolution
0001A0: 6F 72 20 76 65 72 79 20 73 68 6F 72 74 20 70 65 or very short pe
0001B0: 72 69 6F 64 20 74 69 6D 69 6E 67 20 28 20 6E 6F riod timing ( no
0001C0: 74 20 20 69 6E 74 65 6E 64 65 64 20 20 66 6F 72 t intended for
0001D0: 0D 0A 20 20 20 20 20 20 20 67 65 6E 65 72 61 6C .. general
0001E0: 20 75 73 65 20 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 use ).......
0001F0: 20 20 20 20 62 2E 20 53 6F 75 6E 64 20 47 65 6E b. Sound Gen
Size : 512 (Real : 512)
000000: 65 72 61 74 69 6F 6E 20 49 6E 74 65 72 72 75 70 eration Interrup
000010: 74 2E 20 20 20 20 20 20 20 20 20 20 50 65 72 69 t. Peri
000020: 6F 64 20 3D 20 31 2F 31 4F 4F 74 68 20 6F 66 20 od = 1/1OOth of
000030: 61 20 73 65 63 6F 6E 64 2E 0D 0A 0D 0A 0D 0A 20 a second.......
000040: 20 20 20 20 20 20 54 68 69 73 20 69 6E 74 65 72 This inter
000050: 72 75 70 74 20 64 72 69 76 65 73 20 74 68 65 20 rupt drives the
000060: 73 6F 75 6E 64 20 67 65 6E 65 72 61 74 69 6F 6E sound generation
000070: 20 66 69 72 6D 77 61 72 65 2C 20 62 75 74 20 69 firmware, but i
000080: 73 20 20 6F 74 68 65 72 77 69 73 65 0D 0A 20 20 s otherwise..
000090: 20 20 20 20 20 6E 6F 74 20 76 69 73 69 62 6C 65 not visible
0000A0: 20 74 6F 20 74 68 65 20 73 79 73 74 65 6D 2E 0D to the system..
0000B0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 63 2E 20 46 ..... c. F
0000C0: 72 61 6D 65 20 46 6C 79 62 61 63 6B 20 49 6E 74 rame Flyback Int
0000D0: 65 72 72 75 70 74 2E 20 20 20 20 20 20 20 20 20 errupt.
0000E0: 20 20 20 20 50 65 72 69 6F 64 20 3D 20 31 2F 35 Period = 1/5
0000F0: 30 74 68 20 6F 72 20 36 30 74 68 20 6F 66 20 61 0th or 60th of a
000100: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
000140: 65 63 6F 6E 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 econd.....
000150: 20 46 6F 72 20 61 63 74 69 6F 6E 73 20 77 68 69 For actions whi
000160: 63 68 20 6D 75 73 74 20 74 61 6B 65 20 70 6C 61 ch must take pla
000170: 63 65 20 64 75 72 69 6E 67 20 66 72 61 6D 65 20 ce during frame
000180: 66 6C 79 62 61 63 6B 2E 20 20 49 6E 6B 20 20 66 flyback. Ink f
000190: 6C 61 73 68 69 6E 67 0D 0A 20 20 20 20 20 20 20 lashing..
0001A0: 69 73 20 70 65 72 66 6F 72 6D 65 64 20 64 75 72 is performed dur
0001B0: 69 6E 67 20 61 20 66 72 61 6D 65 20 66 6C 79 62 ing a frame flyb
0001C0: 61 63 6B 20 69 6E 74 65 72 72 75 70 74 2C 20 66 ack interrupt, f
0001D0: 6F 72 20 65 78 61 6D 70 6C 65 2E 0D 0A 0D 0A 20 or example.....
0001E0: 20 20 20 20 20 20 64 2E 20 54 69 63 6B 65 72 20 d. Ticker
0001F0: 49 6E 74 65 72 72 75 70 74 2E 20 20 20 20 20 20 Interrupt.
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 50 65 72 Per
000010: 69 6F 64 20 3D 20 31 2F 35 30 74 68 20 6F 66 20 iod = 1/50th of
000020: 61 20 73 65 63 6F 6E 64 2E 0D 0A 0D 0A 20 20 20 a second.....
000030: 20 20 20 20 54 68 69 73 20 69 73 20 74 68 65 20 This is the
000040: 67 65 6E 65 72 61 6C 20 70 75 72 70 6F 73 65 20 general purpose
000050: 74 69 63 6B 65 72 20 69 6E 74 65 72 72 75 70 74 ticker interrupt
000060: 2E 20 54 68 65 20 6B 65 79 62 6F 61 72 64 20 69 . The keyboard i
000070: 73 20 20 73 63 61 6E 6E 65 64 0D 0A 20 20 20 20 s scanned..
000080: 20 20 20 61 74 20 74 68 65 20 73 74 61 72 74 20 at the start
000090: 6F 66 20 65 61 63 68 20 74 69 63 6B 65 72 20 69 of each ticker i
0000A0: 6E 74 65 72 72 75 70 74 2E 0D 0A 0D 0A 0D 0A 20 nterrupt.......
0000B0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
0000C0: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
0000D0: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 70 61 67 65 20 31 31 2E 31 0D 0A 0D 0A page 11.1....
000100: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
000110: 20 65 2E 20 53 79 73 74 65 6D 20 43 6C 6F 63 6B e. System Clock
000120: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 72 ..... Ther
000130: 65 20 69 73 20 61 20 74 69 6D 65 72 20 74 68 61 e is a timer tha
000140: 74 20 63 6F 75 6E 74 73 20 66 61 73 74 20 74 69 t counts fast ti
000150: 63 6B 73 20 69 65 2E 20 31 2F 33 30 30 74 68 73 cks ie. 1/300ths
000160: 20 6F 66 20 61 20 73 65 63 6F 6E 64 2E 20 54 68 of a second. Th
000170: 69 73 0D 0A 20 20 20 20 20 20 20 63 61 6E 20 62 is.. can b
000180: 65 20 75 73 65 64 20 74 6F 20 6D 65 61 73 75 72 e used to measur
000190: 65 20 65 6C 61 70 73 65 64 20 74 69 6D 65 20 77 e elapsed time w
0001A0: 69 74 68 6F 75 74 20 73 65 74 74 69 6E 67 20 20 ithout setting
0001B0: 75 70 20 20 61 20 20 72 65 6C 61 74 69 76 65 6C up a relativel
0001C0: 79 0D 0A 20 20 20 20 20 20 20 65 78 70 65 6E 73 y.. expens
0001D0: 69 76 65 20 66 61 73 74 20 74 69 63 6B 20 65 76 ive fast tick ev
0001E0: 65 6E 74 2E 20 54 68 65 20 74 69 6D 65 72 20 69 ent. The timer i
0001F0: 73 20 72 65 61 64 20 62 79 20 63 61 6C 6C 69 6E s read by callin
Size : 512 (Real : 512)
000000: 67 20 4B 4C 20 54 49 4D 45 20 50 4C 45 41 53 45 g KL TIME PLEASE
000010: 0D 0A 20 20 20 20 20 20 20 61 6E 64 20 6D 61 79 .. and may
000020: 20 62 65 20 73 65 74 20 62 79 20 63 61 6C 6C 69 be set by calli
000030: 6E 67 20 4B 4C 20 54 49 4D 45 20 53 45 54 2E 0D ng KL TIME SET..
000040: 0A 0D 0A 20 20 20 20 20 20 20 31 31 2E 32 20 45 ... 11.2 E
000050: 78 74 65 72 6E 61 6C 20 49 6E 74 65 72 72 75 70 xternal Interrup
000060: 74 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ts..... Th
000070: 65 20 5A 38 30 20 69 73 20 72 75 6E 20 20 69 6E e Z80 is run in
000080: 20 20 69 6E 74 65 72 72 75 70 74 20 20 6D 6F 64 interrupt mod
000090: 65 20 20 31 2E 20 20 57 68 69 63 68 20 20 69 73 e 1. Which is
0000A0: 20 20 74 6F 20 20 73 61 79 20 20 74 68 61 74 20 to say that
0000B0: 20 61 6C 6C 0D 0A 20 20 20 20 20 20 20 69 6E 74 all.. int
0000C0: 65 72 72 75 70 74 73 20 63 61 75 73 65 20 20 61 errupts cause a
0000D0: 6E 20 20 52 53 54 37 20 20 74 6F 20 20 62 65 20 n RST7 to be
0000E0: 20 65 78 65 63 75 74 65 64 20 20 62 79 20 20 74 executed by t
0000F0: 68 65 20 20 70 72 6F 63 65 73 73 6F 72 2E 20 20 he processor.
000100: 54 68 65 0D 0A 20 20 20 20 20 20 20 69 6E 74 65 The.. inte
000110: 72 72 75 70 74 20 68 61 6E 64 6C 69 6E 67 20 63 rrupt handling c
000120: 6F 64 65 20 69 6E 20 74 68 65 20 4B 65 72 6E 65 ode in the Kerne
000130: 6C 20 63 61 6E 20 64 69 73 74 69 6E 67 75 69 73 l can distinguis
000140: 68 20 62 65 74 77 65 65 6E 20 74 68 65 20 74 69 h between the ti
000150: 6D 65 0D 0A 20 20 20 20 20 20 20 69 6E 74 65 72 me.. inter
000160: 72 75 70 74 20 61 6E 64 20 61 6E 20 65 78 74 65 rupt and an exte
000170: 72 6E 61 6C 20 20 69 6E 74 65 72 72 75 70 74 2E rnal interrupt.
000180: 20 20 49 74 20 20 64 6F 65 73 20 20 74 68 69 73 It does this
000190: 20 20 62 79 20 20 72 65 2D 65 6E 61 62 6C 69 6E by re-enablin
0001A0: 67 0D 0A 20 20 20 20 20 20 20 69 6E 74 65 72 72 g.. interr
0001B0: 75 70 74 73 20 69 6E 73 69 64 65 20 74 68 65 20 upts inside the
0001C0: 69 6E 74 65 72 72 75 70 74 20 72 6F 75 74 69 6E interrupt routin
0001D0: 65 2E 20 49 66 20 74 68 65 20 69 6E 74 65 72 72 e. If the interr
0001E0: 75 70 74 20 72 65 70 65 61 74 73 20 74 68 65 6E upt repeats then
0001F0: 0D 0A 20 20 20 20 20 20 20 69 74 20 69 73 20 61 .. it is a
Size : 512 (Real : 512)
000000: 73 73 75 6D 65 64 20 74 6F 20 62 65 20 61 6E 20 ssumed to be an
000010: 65 78 74 65 72 6E 61 6C 20 69 6E 74 65 72 72 75 external interru
000020: 70 74 2C 20 6F 74 68 65 72 77 69 73 65 20 69 74 pt, otherwise it
000030: 20 69 73 20 74 61 6B 65 6E 20 74 6F 20 62 65 0D is taken to be.
000040: 0A 20 20 20 20 20 20 20 61 20 74 69 6D 65 20 69 . a time i
000050: 6E 74 65 72 72 75 70 74 2E 20 4E 6F 74 65 20 74 nterrupt. Note t
000060: 68 61 74 20 74 68 69 73 20 72 65 71 75 69 72 65 hat this require
000070: 73 20 74 68 61 74 20 74 68 65 20 73 6F 75 72 63 s that the sourc
000080: 65 20 6F 66 20 20 65 78 74 65 72 6E 61 6C 0D 0A e of external..
000090: 20 20 20 20 20 20 20 69 6E 74 65 72 72 75 70 74 interrupt
0000A0: 73 20 73 68 6F 75 6C 64 20 6E 6F 74 20 63 6C 65 s should not cle
0000B0: 61 72 20 74 68 65 20 69 6E 74 65 72 72 75 70 74 ar the interrupt
0000C0: 20 63 6F 6E 64 69 74 69 6F 6E 20 75 6E 74 69 6C condition until
0000D0: 20 74 68 65 20 73 6F 66 74 77 61 72 65 0D 0A 20 the software..
0000E0: 20 20 20 20 20 20 72 65 73 65 74 73 20 69 74 2E resets it.
0000F0: 20 55 6E 6C 65 73 73 20 73 70 65 63 69 61 6C 20 Unless special
000100: 61 63 74 69 6F 6E 20 69 73 20 74 61 6B 65 6E 20 action is taken
000110: 69 6E 20 68 61 72 64 77 61 72 65 2C 20 5A 38 30 in hardware, Z80
000120: 20 20 70 65 72 69 70 68 65 72 61 6C 0D 0A 20 20 peripheral..
000130: 20 20 20 20 20 63 68 69 70 73 20 77 69 6C 6C 20 chips will
000140: 6E 6F 74 20 6F 62 65 79 20 74 68 69 73 20 72 65 not obey this re
000150: 71 75 69 72 65 6D 65 6E 74 2E 20 49 6E 20 73 75 quirement. In su
000160: 63 68 20 20 63 61 73 65 73 20 20 74 68 65 20 20 ch cases the
000170: 72 65 63 6F 6D 6D 65 6E 64 65 64 0D 0A 20 20 20 recommended..
000180: 20 20 20 20 63 6F 75 72 73 65 20 6F 66 20 61 63 course of ac
000190: 74 69 6F 6E 20 69 73 20 64 65 73 63 72 69 62 65 tion is describe
0001A0: 64 20 69 6E 20 41 70 70 65 6E 64 69 78 20 58 49 d in Appendix XI
0001B0: 49 49 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 42 65 II..... Be
0001C0: 66 6F 72 65 20 61 6E 20 65 78 74 65 72 6E 61 6C fore an external
0001D0: 20 69 6E 74 65 72 72 75 70 74 20 69 73 20 65 6E interrupt is en
0001E0: 61 62 6C 65 64 20 69 74 73 20 69 6E 74 65 72 72 abled its interr
0001F0: 75 70 74 20 68 61 6E 64 6C 65 72 20 6D 75 73 74 upt handler must
Size : 512 (Real : 512)
000000: 20 20 62 65 0D 0A 20 20 20 20 20 20 20 27 20 69 be.. ' i
000010: 6E 73 74 61 6C 6C 65 64 20 27 2E 20 54 68 69 73 nstalled '. This
000020: 20 69 73 20 64 6F 6E 65 20 62 79 20 63 6F 70 79 is done by copy
000030: 69 6E 67 20 74 68 65 20 35 20 62 79 74 65 73 20 ing the 5 bytes
000040: 61 74 20 61 64 64 72 65 73 73 20 23 30 30 33 42 at address #003B
000050: 20 74 6F 0D 0A 20 20 20 20 20 20 20 61 20 6E 65 to.. a ne
000060: 77 20 20 6C 6F 63 61 74 69 6F 6E 20 20 61 6E 64 w location and
000070: 20 20 72 65 70 6C 61 63 69 6E 67 20 20 74 68 65 replacing the
000080: 6D 20 20 62 79 20 20 73 75 69 74 61 62 6C 65 20 m by suitable
000090: 20 63 6F 64 65 20 20 28 20 20 70 72 6F 62 61 62 code ( probab
0000A0: 6C 79 0D 0A 20 20 20 20 20 20 20 69 6E 63 6C 75 ly.. inclu
0000B0: 64 69 6E 67 20 61 20 6A 75 6D 70 20 29 2E 20 57 ding a jump ). W
0000C0: 68 65 6E 20 74 68 65 20 4B 65 72 6E 65 6C 20 64 hen the Kernel d
0000D0: 65 74 65 63 74 73 20 61 6E 20 65 78 74 65 72 6E etects an extern
0000E0: 61 6C 20 20 69 6E 74 65 72 72 75 70 74 20 20 69 al interrupt i
0000F0: 74 0D 0A 20 20 20 20 20 20 20 63 61 6C 6C 73 20 t.. calls
000100: 61 64 64 72 65 73 73 20 23 30 30 33 42 20 69 6E address #003B in
000110: 20 52 41 4D 20 74 6F 20 70 72 6F 63 65 73 73 20 RAM to process
000120: 74 68 65 20 69 6E 74 65 72 72 75 70 74 2E 0D 0A the interrupt...
000130: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000140: 20 45 6E 74 72 79 3A 0D 0A 0D 0A 20 20 20 20 20 Entry:....
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A No conditions...
000170: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000180: 20 45 78 69 74 3A 0D 0A 0D 0A 20 20 20 20 20 20 Exit:....
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 46 2C AF,
0001A0: 20 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 63 6F BC,DE and HL co
0001B0: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 rrupt...
0001C0: 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 6F All o
0001D0: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
0001E0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 reserved.....
0001F0: 20 20 20 20 20 20 20 20 20 20 20 20 4E 6F 74 65 Note
Size : 512 (Real : 512)
000000: 73 3A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 s:..
000010: 20 20 20 20 20 20 20 49 6E 74 65 72 72 75 70 74 Interrupt
000020: 73 20 61 72 65 20 64 69 73 61 62 6C 65 64 20 61 s are disabled a
000030: 6E 64 20 6D 75 73 74 20 72 65 6D 61 69 6E 20 64 nd must remain d
000040: 69 73 61 62 6C 65 64 2E 0D 0A 20 20 20 20 20 20 isabled...
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 The
000060: 20 6C 6F 77 65 72 20 52 4F 4D 20 69 73 20 64 69 lower ROM is di
000070: 73 61 62 6C 65 64 2E 0D 0A 20 20 20 20 20 20 20 sabled...
000080: 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 The
000090: 75 70 70 65 72 20 52 4F 4D 20 73 65 6C 65 63 74 upper ROM select
0000A0: 20 61 6E 64 20 73 74 61 74 65 20 61 72 65 20 69 and state are i
0000B0: 6E 64 65 74 65 72 6D 69 6E 61 74 65 2E 0D 0A 20 ndeterminate...
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000D0: 20 20 54 68 65 20 61 6C 74 65 72 6E 61 74 65 20 The alternate
0000E0: 72 65 67 69 73 74 65 72 20 73 65 74 20 6D 75 73 register set mus
0000F0: 74 20 6E 6F 74 20 62 65 20 74 6F 75 63 68 65 64 t not be touched
000100: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
000110: 69 6E 74 65 72 72 75 70 74 20 72 6F 75 74 69 6E interrupt routin
000120: 65 20 6D 75 73 74 20 65 73 74 61 62 6C 69 73 68 e must establish
000130: 20 77 68 65 74 68 65 72 20 20 69 74 20 20 63 61 whether it ca
000140: 6E 20 20 64 65 61 6C 20 20 77 69 74 68 20 20 74 n deal with t
000150: 68 65 0D 0A 20 20 20 20 20 20 20 69 6E 74 65 72 he.. inter
000160: 72 75 70 74 2C 20 61 6E 64 20 69 66 20 73 6F 20 rupt, and if so
000170: 69 74 20 6D 75 73 74 20 61 74 20 6C 65 61 73 74 it must at least
000180: 20 63 6C 65 61 72 20 69 74 2E 20 49 66 20 20 74 clear it. If t
000190: 68 65 20 20 69 6E 74 65 72 72 75 70 74 20 20 69 he interrupt i
0001A0: 73 0D 0A 20 20 20 20 20 20 20 6E 6F 74 20 74 68 s.. not th
0001B0: 65 20 72 65 73 70 6F 6E 73 69 62 69 6C 69 74 79 e responsibility
0001C0: 20 6F 66 20 74 68 65 20 72 6F 75 74 69 6E 65 20 of the routine
0001D0: 74 68 65 6E 20 69 74 20 73 68 6F 75 6C 64 20 6A then it should j
0001E0: 75 6D 70 20 74 6F 20 74 68 65 20 20 63 6F 70 79 ump to the copy
0001F0: 0D 0A 20 20 20 20 20 20 20 6F 66 20 74 68 65 20 .. of the
Size : 512 (Real : 512)
000000: 62 79 74 65 73 20 74 61 6B 65 6E 20 66 72 6F 6D bytes taken from
000010: 20 6C 6F 63 61 74 69 6F 6E 20 23 30 30 33 42 20 location #003B
000020: 77 68 69 63 68 20 6D 61 79 20 62 65 20 63 6F 6D which may be com
000030: 70 65 74 65 6E 74 20 74 6F 20 20 64 65 61 6C 0D petent to deal.
000040: 0A 20 20 20 20 20 20 20 77 69 74 68 20 74 68 65 . with the
000050: 20 69 6E 74 65 72 72 75 70 74 2E 20 54 68 69 73 interrupt. This
000060: 20 72 65 71 75 69 72 65 73 20 74 68 65 20 63 6F requires the co
000070: 64 65 20 70 61 74 63 68 65 64 20 61 74 20 20 6C de patched at l
000080: 6F 63 61 74 69 6F 6E 20 20 23 30 30 33 42 0D 0A ocation #003B..
000090: 20 20 20 20 20 20 20 74 6F 20 62 65 20 70 6F 73 to be pos
0000A0: 69 74 69 6F 6E 20 69 6E 64 65 70 65 6E 64 65 6E ition independen
0000B0: 74 20 69 6E 20 63 61 73 65 20 61 20 73 65 63 6F t in case a seco
0000C0: 6E 64 20 65 78 74 65 72 6E 61 6C 20 69 6E 74 65 nd external inte
0000D0: 72 72 75 70 74 20 68 61 6E 64 6C 65 72 0D 0A 20 rrupt handler..
0000E0: 20 20 20 20 20 20 69 73 20 69 6E 73 74 61 6C 6C is install
0000F0: 65 64 2E 20 54 68 65 20 63 6F 64 65 20 70 75 74 ed. The code put
000100: 20 61 74 20 23 30 30 33 42 20 61 74 20 45 4D 53 at #003B at EMS
000110: 20 69 73 20 70 6F 73 69 74 69 6F 6E 20 20 69 6E is position in
000120: 64 65 70 65 6E 64 65 6E 74 20 20 2D 0D 0A 20 20 dependent -..
000130: 20 20 20 20 20 69 74 20 6D 65 72 65 6C 79 20 72 it merely r
000140: 65 74 75 72 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 eturns.....
000150: 20 20 4E 6F 74 65 20 74 68 61 74 20 69 6E 74 65 Note that inte
000160: 72 72 75 70 74 20 68 61 6E 64 6C 69 6E 67 20 63 rrupt handling c
000170: 6F 64 65 20 6D 75 73 74 20 62 65 20 20 69 6E 20 ode must be in
000180: 20 52 41 4D 20 20 73 6F 6D 65 77 68 65 72 65 20 RAM somewhere
000190: 20 62 65 74 77 65 65 6E 0D 0A 20 20 20 20 20 20 between..
0001A0: 20 23 30 30 34 30 20 61 6E 64 20 23 42 46 46 46 #0040 and #BFFF
0001B0: 2E 20 49 6E 74 65 72 72 75 70 74 20 68 61 6E 64 . Interrupt hand
0001C0: 6C 65 72 73 20 73 68 6F 75 6C 64 20 62 65 20 61 lers should be a
0001D0: 73 20 73 68 6F 72 74 20 61 73 20 70 6F 73 73 69 s short as possi
0001E0: 62 6C 65 2E 20 49 66 0D 0A 20 20 20 20 20 20 20 ble. If..
0001F0: 61 6E 20 69 6E 74 65 72 72 75 70 74 20 72 65 71 an interrupt req
Size : 512 (Real : 512)
000000: 75 69 72 65 73 20 61 20 6C 6F 74 20 6F 66 20 20 uires a lot of
000010: 70 72 6F 63 65 73 73 69 6E 67 20 20 62 65 79 6F processing beyo
000020: 6E 64 20 20 74 68 61 74 20 20 72 65 71 75 69 72 nd that requir
000030: 65 64 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 63 ed to.. c
000040: 6C 65 61 72 20 69 74 2C 20 74 68 65 6E 20 74 68 lear it, then th
000050: 65 20 69 6E 74 65 72 72 75 70 74 20 73 68 6F 75 e interrupt shou
000060: 6C 64 20 6B 69 63 6B 20 20 61 6E 20 20 65 76 65 ld kick an eve
000070: 6E 74 20 20 74 6F 20 20 64 6F 20 20 74 68 65 20 nt to do the
000080: 20 77 6F 72 6B 0D 0A 20 20 20 20 20 20 20 6F 75 work.. ou
000090: 74 73 69 64 65 20 74 68 65 20 69 6E 74 65 72 72 tside the interr
0000A0: 75 70 74 20 70 61 74 68 2E 0D 0A 0D 0A 0D 0A 0D upt path........
0000B0: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
0000C0: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
0000D0: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 70 61 67 65 20 31 31 2E 32 0D 0A page 11.2..
000100: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000110: 20 20 20 31 31 2E 33 20 4E 6F 6E 6D 61 73 6B 61 11.3 Nonmaska
000120: 62 6C 65 20 49 6E 74 65 72 72 75 70 74 73 2E 0D ble Interrupts..
000130: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 72 65 20 ... There
000140: 69 73 20 6E 6F 20 70 72 6F 76 69 73 69 6F 6E 20 is no provision
000150: 66 6F 72 20 68 61 6E 64 6C 69 6E 67 20 61 20 6E for handling a n
000160: 6F 6E 6D 61 73 6B 61 62 6C 65 20 20 69 6E 74 65 onmaskable inte
000170: 72 72 75 70 74 20 20 28 4E 4D 49 29 20 20 69 6E rrupt (NMI) in
000180: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 66 69 72 .. the fir
000190: 6D 77 61 72 65 20 28 64 65 73 70 69 74 65 20 74 mware (despite t
0001A0: 68 65 20 66 61 63 74 20 74 68 61 74 20 4E 4D 49 he fact that NMI
0001B0: 20 69 73 20 61 76 61 69 6C 61 62 6C 65 20 6F 6E is available on
0001C0: 20 20 74 68 65 20 20 65 78 74 65 72 6E 61 6C 0D the external.
0001D0: 0A 20 20 20 20 20 20 20 62 75 73 20 63 6F 6E 6E . bus conn
0001E0: 65 63 74 6F 72 29 2E 20 56 61 72 69 6F 75 73 20 ector). Various
0001F0: 66 69 72 6D 77 61 72 65 20 20 72 6F 75 74 69 6E firmware routin
Size : 512 (Real : 512)
000000: 65 73 20 20 28 6E 6F 74 61 62 6C 79 20 20 74 68 es (notably th
000010: 6F 73 65 20 20 63 6F 6E 6E 65 63 74 65 64 0D 0A ose connected..
000020: 20 20 20 20 20 20 20 77 69 74 68 20 64 72 69 76 with driv
000030: 69 6E 67 20 74 68 65 20 43 65 6E 74 72 6F 6E 69 ing the Centroni
000040: 63 73 20 70 6F 72 74 2C 20 74 68 65 20 50 50 49 cs port, the PPI
000050: 20 74 6F 20 61 63 63 65 73 73 20 74 68 65 20 73 to access the s
000060: 6F 75 6E 64 20 63 68 69 70 20 61 6E 64 0D 0A 20 ound chip and..
000070: 20 20 20 20 20 20 6B 65 79 62 6F 61 72 64 2C 20 keyboard,
000080: 61 6E 64 20 74 68 65 20 63 61 73 73 65 74 74 65 and the cassette
000090: 29 20 77 69 6C 6C 20 68 61 76 65 20 74 69 6D 69 ) will have timi
0000A0: 6E 67 20 63 6F 6E 73 74 72 61 69 6E 74 73 20 20 ng constraints
0000B0: 76 69 6F 6C 61 74 65 64 20 20 69 66 0D 0A 20 20 violated if..
0000C0: 20 20 20 20 20 4E 4D 49 73 20 6F 63 63 75 72 20 NMIs occur
0000D0: 77 68 69 6C 73 74 20 74 68 65 79 20 61 72 65 20 whilst they are
0000E0: 61 63 74 69 76 65 2E 20 49 74 20 69 73 20 72 65 active. It is re
0000F0: 63 6F 6D 6D 65 6E 64 65 64 20 74 68 61 74 20 20 commended that
000100: 4E 4D 49 20 20 73 68 6F 75 6C 64 0D 0A 20 20 20 NMI should..
000110: 20 20 20 20 6E 6F 74 20 62 65 20 75 73 65 64 2E not be used.
000120: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 31 2E 34 20 .... 11.4
000130: 49 6E 74 65 72 72 75 70 74 73 20 61 6E 64 20 45 Interrupts and E
000140: 76 65 6E 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 vents.......
000150: 20 20 20 41 73 20 61 20 67 65 6E 65 72 61 6C 20 As a general
000160: 72 75 6C 65 20 68 61 72 64 77 61 72 65 20 69 6E rule hardware in
000170: 74 65 72 72 75 70 74 73 20 73 68 6F 75 6C 64 20 terrupts should
000180: 62 65 20 74 72 61 6E 73 66 6F 72 6D 65 64 20 69 be transformed i
000190: 6E 74 6F 20 74 68 65 69 72 0D 0A 20 20 20 20 20 nto their..
0001A0: 20 20 73 6F 66 74 77 61 72 65 20 65 71 75 69 76 software equiv
0001B0: 61 6C 65 6E 74 73 2C 20 27 65 76 65 6E 74 73 27 alents, 'events'
0001C0: 2C 20 61 73 20 73 6F 6F 6E 20 61 73 20 70 6F 73 , as soon as pos
0001D0: 73 69 62 6C 65 2E 20 54 68 65 20 20 68 61 6E 64 sible. The hand
0001E0: 6C 69 6E 67 20 20 6F 66 0D 0A 20 20 20 20 20 20 ling of..
0001F0: 20 65 76 65 6E 74 73 20 69 73 20 6D 6F 72 65 20 events is more
Size : 512 (Real : 512)
000000: 66 6C 65 78 69 62 6C 65 20 74 68 61 6E 20 74 68 flexible than th
000010: 65 20 68 61 6E 64 6C 69 6E 67 20 6F 66 20 68 61 e handling of ha
000020: 72 64 77 61 72 65 20 69 6E 74 65 72 72 75 70 74 rdware interrupt
000030: 73 20 2D 20 66 6F 72 0D 0A 20 20 20 20 20 20 20 s - for..
000040: 65 78 61 6D 70 6C 65 20 74 68 65 72 65 20 61 72 example there ar
000050: 65 20 6E 6F 20 72 65 73 74 72 69 63 74 69 6F 6E e no restriction
000060: 73 20 6F 6E 20 77 68 65 72 65 20 65 76 65 6E 74 s on where event
000070: 20 72 6F 75 74 69 6E 65 73 20 6D 61 79 20 20 72 routines may r
000080: 65 73 69 64 65 2C 0D 0A 20 20 20 20 20 20 20 6F eside,.. o
000090: 72 20 6F 6E 20 69 6E 74 65 72 72 75 70 74 20 65 r on interrupt e
0000A0: 6E 61 62 6C 69 6E 67 2E 0D 0A 0D 0A 20 20 20 20 nabling.....
0000B0: 20 20 20 45 76 65 6E 74 73 20 61 72 65 20 64 65 Events are de
0000C0: 73 63 72 69 62 65 64 20 62 79 20 61 6E 20 65 76 scribed by an ev
0000D0: 65 6E 74 20 62 6C 6F 63 6B 2E 20 54 68 69 73 20 ent block. This
0000E0: 62 6C 6F 63 6B 20 63 6F 6E 74 61 69 6E 73 20 74 block contains t
0000F0: 68 65 20 20 65 76 65 6E 74 0D 0A 20 20 20 20 20 he event..
000100: 20 20 63 6C 61 73 73 2C 20 74 68 65 20 65 76 65 class, the eve
000110: 6E 74 20 63 6F 75 6E 74 20 61 6E 64 20 61 6E 20 nt count and an
000120: 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 20 61 event routine a
000130: 64 64 72 65 73 73 2E 20 20 57 68 65 6E 20 20 61 ddress. When a
000140: 6E 20 20 65 76 65 6E 74 0D 0A 20 20 20 20 20 20 n event..
000150: 20 6F 63 63 75 72 73 20 74 68 65 20 65 76 65 6E occurs the even
000160: 74 20 62 6C 6F 63 6B 20 69 73 20 27 6B 69 63 6B t block is 'kick
000170: 65 64 27 20 61 6E 64 20 74 68 65 20 20 4B 65 72 ed' and the Ker
000180: 6E 65 6C 20 20 61 72 72 61 6E 67 65 73 20 20 66 nel arranges f
000190: 6F 72 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 or the..
0001A0: 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 74 6F event routine to
0001B0: 20 62 65 20 63 61 6C 6C 65 64 20 6F 6E 63 65 20 be called once
0001C0: 66 6F 72 20 65 61 63 68 20 6B 69 63 6B 20 20 28 for each kick (
0001D0: 74 68 65 20 20 6E 75 6D 62 65 72 20 20 6F 66 20 the number of
0001E0: 20 6B 69 63 6B 73 0D 0A 20 20 20 20 20 20 20 6F kicks.. o
0001F0: 75 74 73 74 61 6E 64 69 6E 67 20 69 73 20 6B 65 utstanding is ke
Size : 512 (Real : 512)
000000: 70 74 20 69 6E 20 74 68 65 20 65 76 65 6E 74 20 pt in the event
000010: 62 6C 6F 63 6B 29 2E 20 20 54 68 65 20 20 65 76 block). The ev
000020: 65 6E 74 20 20 72 6F 75 74 69 6E 65 20 20 69 73 ent routine is
000030: 20 20 6E 6F 74 0D 0A 20 20 20 20 20 20 20 6E 65 not.. ne
000040: 63 65 73 73 61 72 69 6C 79 20 63 61 6C 6C 65 64 cessarily called
000050: 20 69 6D 6D 65 64 69 61 74 65 6C 79 2E 20 57 68 immediately. Wh
000060: 65 6E 20 74 68 65 20 65 76 65 6E 74 20 72 6F 75 en the event rou
000070: 74 69 6E 65 20 69 73 20 61 63 74 75 61 6C 6C 79 tine is actually
000080: 20 72 75 6E 0D 0A 20 20 20 20 20 20 20 64 65 70 run.. dep
000090: 65 6E 64 73 20 6F 6E 20 74 68 65 20 65 76 65 6E ends on the even
0000A0: 74 20 63 6C 61 73 73 20 61 73 20 66 6F 6C 6C 6F t class as follo
0000B0: 77 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ws:....
0000C0: 20 20 61 2E 20 45 78 70 72 65 73 73 20 41 73 79 a. Express Asy
0000D0: 6E 63 68 72 6F 6E 6F 75 73 20 45 76 65 6E 74 73 nchronous Events
0000E0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
0000F0: 54 68 69 73 20 69 73 20 61 6E 20 75 6E 75 73 75 This is an unusu
000100: 61 6C 20 63 6C 61 73 73 20 6F 66 20 65 76 65 6E al class of even
000110: 74 2E 20 20 54 68 65 20 20 65 76 65 6E 20 20 72 t. The even r
000120: 6F 75 74 69 6E 65 20 20 69 73 20 20 63 61 6C 6C outine is call
000130: 65 64 0D 0A 20 20 20 20 20 20 20 20 20 20 20 69 ed.. i
000140: 6D 6D 65 64 69 61 74 65 6C 79 20 64 75 72 69 6E mmediately durin
000150: 67 20 20 69 6E 74 65 72 72 75 70 74 20 20 70 72 g interrupt pr
000160: 6F 63 65 73 73 69 6E 67 2E 20 20 54 68 65 20 20 ocessing. The
000170: 72 6F 75 74 69 6E 65 20 20 6D 75 73 74 20 20 62 routine must b
000180: 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 61 63 e.. ac
000190: 63 65 73 73 69 62 6C 65 20 62 79 20 74 68 65 20 cessible by the
0001A0: 69 6E 74 65 72 72 75 70 74 20 63 6F 64 65 2C 20 interrupt code,
0001B0: 69 74 20 6D 61 79 20 20 6E 6F 74 20 20 65 6E 61 it may not ena
0001C0: 62 6C 65 20 20 69 6E 74 65 72 72 75 70 74 73 2C ble interrupts,
0001D0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 63 6F 72 .. cor
0001E0: 72 75 70 74 20 74 68 65 20 49 58 20 61 6E 64 20 rupt the IX and
0001F0: 49 59 20 72 65 67 69 73 74 65 72 73 20 6F 72 20 IY registers or
Size : 512 (Real : 512)
000000: 75 73 65 20 74 68 65 20 61 6C 74 65 72 6E 61 74 use the alternat
000010: 65 20 72 65 67 69 73 74 65 72 20 73 65 74 2E 0D e register set..
000020: 0A 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 . The
000030: 72 6F 75 74 69 6E 65 20 73 68 6F 75 6C 64 20 62 routine should b
000040: 65 20 61 73 20 73 68 6F 72 74 20 61 73 20 70 6F e as short as po
000050: 73 73 69 62 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 ssible.....
000060: 20 20 20 20 20 20 62 2E 20 4E 6F 72 6D 61 6C 20 b. Normal
000070: 41 73 79 6E 63 68 72 6F 6E 6F 75 73 20 45 76 65 Asynchronous Eve
000080: 6E 74 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 nts.....
000090: 20 20 20 54 68 69 73 20 69 73 20 74 68 65 20 6D This is the m
0000A0: 6F 73 74 20 66 6C 65 78 69 62 6C 65 20 73 6F 72 ost flexible sor
0000B0: 74 20 6F 66 20 65 76 65 6E 74 2E 20 57 68 65 6E t of event. When
0000C0: 20 74 68 65 20 65 76 65 6E 74 20 69 73 20 20 6B the event is k
0000D0: 69 63 6B 65 64 0D 0A 20 20 20 20 20 20 20 20 20 icked..
0000E0: 20 20 74 68 65 20 65 76 65 6E 74 20 72 6F 75 74 the event rout
0000F0: 69 6E 65 20 69 73 20 6E 6F 74 20 63 61 6C 6C 65 ine is not calle
000100: 64 2C 20 62 75 74 20 74 68 65 20 65 76 65 6E 74 d, but the event
000110: 20 62 6C 6F 63 6B 20 69 73 20 70 6C 61 63 65 64 block is placed
000120: 20 20 6F 6E 0D 0A 20 20 20 20 20 20 20 20 20 20 on..
000130: 20 74 68 65 20 69 6E 74 65 72 72 75 70 74 20 65 the interrupt e
000140: 76 65 6E 74 20 70 65 6E 64 69 6E 67 20 71 75 65 vent pending que
000150: 75 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ue.....
000160: 20 20 4F 6E 63 65 20 74 68 65 20 63 75 72 72 65 Once the curre
000170: 6E 74 20 69 6E 74 65 72 72 75 70 74 20 68 61 73 nt interrupt has
000180: 20 62 65 65 6E 20 20 70 72 6F 63 65 73 73 65 64 been processed
000190: 2C 20 20 6A 75 73 74 20 20 62 65 66 6F 72 65 20 , just before
0001A0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 the..
0001B0: 20 4B 65 72 6E 65 6C 20 20 72 65 74 75 72 6E 73 Kernel returns
0001C0: 20 20 66 72 6F 6D 20 20 74 68 65 20 20 69 6E 74 from the int
0001D0: 65 72 72 75 70 74 20 20 70 61 74 68 2C 20 20 61 errupt path, a
0001E0: 6E 79 20 20 65 76 65 6E 74 73 20 20 6F 6E 20 20 ny events on
0001F0: 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 the..
Size : 512 (Real : 512)
000000: 69 6E 74 65 72 72 75 70 74 20 65 76 65 6E 74 20 interrupt event
000010: 70 65 6E 64 69 6E 67 20 71 75 65 75 65 20 61 72 pending queue ar
000020: 65 20 70 72 6F 63 65 73 73 65 64 2E 20 57 68 69 e processed. Whi
000030: 6C 65 20 74 68 65 20 65 76 65 6E 74 73 20 20 61 le the events a
000040: 72 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 62 re.. b
000050: 65 69 6E 67 20 70 72 6F 63 65 73 73 65 64 20 74 eing processed t
000060: 68 65 20 73 79 73 74 65 6D 20 69 73 20 72 75 6E he system is run
000070: 6E 69 6E 67 20 77 69 74 68 20 69 6E 74 65 72 72 ning with interr
000080: 75 70 74 73 20 65 6E 61 62 6C 65 64 20 20 61 6E upts enabled an
000090: 64 0D 0A 20 20 20 20 20 20 20 20 20 20 20 6D 61 d.. ma
0000A0: 79 20 62 65 20 72 65 67 61 72 64 65 64 20 61 73 y be regarded as
0000B0: 20 6E 6F 20 6C 6F 6E 67 65 72 20 62 65 69 6E 67 no longer being
0000C0: 20 69 6E 20 74 68 65 20 69 6E 74 65 72 72 75 70 in the interrup
0000D0: 74 20 20 70 61 74 68 2E 20 20 49 74 20 20 69 73 t path. It is
0000E0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 75 73 69 .. usi
0000F0: 6E 67 20 69 74 73 20 6F 77 6E 20 73 74 61 63 6B ng its own stack
000100: 20 20 72 61 74 68 65 72 20 20 74 68 61 6E 20 20 rather than
000110: 74 68 65 20 20 6D 61 69 6E 20 20 73 79 73 74 65 the main syste
000120: 6D 20 20 73 74 61 63 6B 2E 20 20 54 68 69 73 0D m stack. This.
000130: 0A 20 20 20 20 20 20 20 20 20 20 20 70 72 69 76 . priv
000140: 61 74 65 20 73 74 61 63 6B 20 69 73 20 31 32 38 ate stack is 128
000150: 20 62 79 74 65 73 20 6C 6F 6E 67 2E 0D 0A 0D 0A bytes long.....
000160: 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 61 The a
000170: 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E synchronous even
000180: 74 20 72 6F 75 74 69 6E 65 20 69 73 2C 20 74 68 t routine is, th
000190: 65 72 65 66 6F 72 65 2C 20 63 61 6C 6C 65 64 20 erefore, called
0001A0: 73 68 6F 72 74 6C 79 20 61 66 74 65 72 0D 0A 20 shortly after..
0001B0: 20 20 20 20 20 20 20 20 20 20 74 68 65 20 65 76 the ev
0001C0: 65 6E 74 20 69 73 20 6B 69 63 6B 65 64 20 61 6E ent is kicked an
0001D0: 64 20 69 73 20 6E 6F 74 20 72 65 73 74 72 69 63 d is not restric
0001E0: 74 65 64 20 69 6E 20 77 68 61 74 20 20 69 74 20 ted in what it
0001F0: 20 6D 61 79 20 20 64 6F 20 20 6F 72 0D 0A 20 20 may do or..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 77 68 65 72 65 20 69 where i
000010: 74 20 6D 61 79 20 62 65 20 6C 6F 63 61 74 65 64 t may be located
000020: 2E 20 54 68 65 20 65 76 65 6E 74 20 72 6F 75 74 . The event rout
000030: 69 6E 65 20 6D 61 79 20 74 61 6B 65 20 61 73 20 ine may take as
000040: 6C 6F 6E 67 20 74 6F 20 72 75 6E 0D 0A 20 20 20 long to run..
000050: 20 20 20 20 20 20 20 20 61 73 20 69 73 20 6E 65 as is ne
000060: 65 64 65 64 2E 20 41 6E 79 20 66 75 72 74 68 65 eded. Any furthe
000070: 72 20 6B 69 63 6B 73 20 72 65 63 65 69 76 65 64 r kicks received
000080: 20 64 75 72 69 6E 67 20 74 68 65 20 74 69 6D 65 during the time
000090: 20 74 68 61 74 20 20 74 68 65 0D 0A 20 20 20 20 that the..
0000A0: 20 20 20 20 20 20 20 65 76 65 6E 74 20 72 6F 75 event rou
0000B0: 74 69 6E 65 20 69 73 20 72 75 6E 6E 69 6E 67 20 tine is running
0000C0: 77 69 6C 6C 20 62 65 20 61 64 64 65 64 20 74 6F will be added to
0000D0: 20 74 68 65 20 65 76 65 6E 74 20 63 6F 75 6E 74 the event count
0000E0: 20 61 6E 64 20 77 69 6C 6C 0D 0A 20 20 20 20 20 and will..
0000F0: 20 20 20 20 20 20 62 65 20 70 72 6F 63 65 73 73 be process
000100: 65 64 20 62 65 66 6F 72 65 20 72 65 74 75 72 6E ed before return
000110: 69 6E 67 20 74 6F 20 74 68 65 20 69 6E 74 65 72 ing to the inter
000120: 72 75 70 74 20 70 72 6F 67 72 61 6D 2E 0D 0A 0D rupt program....
000130: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
000140: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
000150: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
000180: 31 31 2E 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 11.3............
000190: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 63 2E 20 .. c.
0001A0: 53 79 6E 63 68 72 6F 6E 6F 75 73 20 45 76 65 6E Synchronous Even
0001B0: 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ts.......
0001C0: 20 20 20 20 53 79 6E 63 68 72 6F 6E 6F 75 73 20 Synchronous
0001D0: 65 76 65 6E 74 73 20 61 72 65 20 71 75 65 75 65 events are queue
0001E0: 64 20 6F 6E 20 20 74 68 65 20 20 73 79 6E 63 68 d on the synch
0001F0: 72 6F 6E 6F 75 73 20 20 65 76 65 6E 74 20 20 70 ronous event p
Size : 512 (Real : 512)
000000: 65 6E 64 69 6E 67 0D 0A 20 20 20 20 20 20 20 20 ending..
000010: 20 20 20 71 75 65 75 65 2E 20 54 68 65 79 20 61 queue. They a
000020: 72 65 20 6E 6F 74 20 70 72 6F 63 65 73 73 65 64 re not processed
000030: 20 75 6E 74 69 6C 20 74 68 65 20 66 6F 72 65 67 until the foreg
000040: 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D 20 20 61 round program a
000050: 6C 6C 6F 77 73 0D 0A 20 20 20 20 20 20 20 20 20 llows..
000060: 20 20 74 68 65 20 20 71 75 65 75 65 20 20 74 6F the queue to
000070: 20 20 62 65 20 20 70 72 6F 63 65 73 73 65 64 2E be processed.
000080: 20 20 54 68 69 73 20 20 63 61 6E 20 20 62 65 20 This can be
000090: 20 75 73 65 64 20 20 20 74 6F 20 20 20 63 6F 6E used to con
0000A0: 74 72 6F 6C 0D 0A 20 20 20 20 20 20 20 20 20 20 trol..
0000B0: 20 69 6E 74 65 72 61 63 74 69 6F 6E 73 20 62 65 interactions be
0000C0: 74 77 65 65 6E 20 64 69 66 66 65 72 65 6E 74 20 tween different
0000D0: 70 61 72 74 73 20 6F 66 20 70 72 6F 67 72 61 6D parts of program
0000E0: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 s....... 1
0000F0: 31 2E 35 20 49 6E 74 65 72 72 75 70 74 20 51 75 1.5 Interrupt Qu
000100: 65 75 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 eues.......
000110: 20 20 54 68 65 20 76 61 72 69 6F 75 73 20 74 69 The various ti
000120: 6D 65 20 69 6E 74 65 72 72 75 70 74 73 20 20 70 me interrupts p
000130: 72 6F 76 69 64 65 20 20 74 68 72 65 65 20 20 73 rovide three s
000140: 6F 75 72 63 65 73 20 20 6F 66 20 20 27 6B 69 63 ources of 'kic
000150: 6B 73 27 20 20 66 6F 72 0D 0A 20 20 20 20 20 20 ks' for..
000160: 20 65 76 65 6E 74 73 2E 20 54 68 65 20 65 76 65 events. The eve
000170: 6E 74 73 20 74 6F 20 62 65 20 6B 69 63 6B 65 64 nts to be kicked
000180: 20 77 68 65 6E 20 65 61 63 68 20 6F 66 20 74 68 when each of th
000190: 65 20 69 6E 74 65 72 72 75 70 74 73 20 6F 63 63 e interrupts occ
0001A0: 75 72 20 20 61 72 65 0D 0A 20 20 20 20 20 20 20 ur are..
0001B0: 73 74 6F 72 65 64 20 6F 6E 20 71 75 65 75 65 73 stored on queues
0001C0: 2C 20 6F 6E 65 20 20 71 75 65 75 65 20 20 66 6F , one queue fo
0001D0: 72 20 20 65 61 63 68 20 20 73 6F 75 72 63 65 20 r each source
0001E0: 20 6F 66 20 20 6B 69 63 6B 73 2E 20 20 54 68 65 of kicks. The
0001F0: 20 20 75 73 65 72 0D 0A 20 20 20 20 20 20 20 70 user.. p
Size : 512 (Real : 512)
000000: 72 6F 76 69 64 65 73 20 61 6E 20 61 72 65 61 20 rovides an area
000010: 74 6F 20 73 74 6F 72 65 20 66 6F 72 20 74 68 65 to store for the
000020: 20 4B 65 72 6E 65 6C 27 73 20 75 73 65 2E 20 54 Kernel's use. T
000030: 68 65 20 73 69 7A 65 20 6F 66 20 20 74 68 65 20 he size of the
000040: 20 61 72 65 61 0D 0A 20 20 20 20 20 20 20 64 65 area.. de
000050: 70 65 6E 64 73 20 6F 6E 20 77 68 69 63 68 20 71 pends on which q
000060: 75 65 75 65 20 69 74 20 69 73 20 66 6F 72 2E 20 ueue it is for.
000070: 54 68 65 20 6C 61 73 74 20 37 20 62 79 74 65 73 The last 7 bytes
000080: 20 20 6F 66 20 20 74 68 65 20 20 61 72 65 61 20 of the area
000090: 20 61 72 65 0D 0A 20 20 20 20 20 20 20 61 6C 77 are.. alw
0000A0: 61 79 73 20 61 6E 20 65 76 65 6E 74 20 62 6C 6F ays an event blo
0000B0: 63 6B 20 77 68 69 63 68 20 74 68 65 20 75 73 65 ck which the use
0000C0: 72 20 73 68 6F 75 6C 64 20 69 6E 69 74 69 61 6C r should initial
0000D0: 69 7A 65 20 20 61 70 70 72 6F 70 72 69 61 74 65 ize appropriate
0000E0: 6C 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ly.......
0000F0: 41 70 70 65 6E 64 69 78 20 58 20 64 65 73 63 72 Appendix X descr
000100: 69 62 65 73 20 74 68 65 20 6C 61 79 6F 75 74 20 ibes the layout
000110: 6F 66 20 74 68 65 73 65 20 62 6C 6F 63 6B 73 20 of these blocks
000120: 69 6E 20 67 72 65 61 74 65 72 20 64 65 74 61 69 in greater detai
000130: 6C 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 l.......
000140: 20 20 20 61 2E 20 46 61 73 74 20 54 69 63 6B 65 a. Fast Ticke
000150: 72 20 45 76 65 6E 74 73 2E 0D 0A 0D 0A 0D 0A 20 r Events.......
000160: 20 20 20 20 20 20 20 20 20 20 45 76 65 6E 74 73 Events
000170: 20 6F 6E 20 74 68 65 20 66 61 73 74 20 74 69 63 on the fast tic
000180: 6B 65 72 20 71 75 65 75 65 20 61 72 65 20 27 6B ker queue are 'k
000190: 69 63 6B 65 64 27 20 6F 6E 20 65 61 63 68 20 20 icked' on each
0001A0: 66 61 73 74 20 20 74 69 63 6B 65 72 0D 0A 20 20 fast ticker..
0001B0: 20 20 20 20 20 20 20 20 20 69 6E 74 65 72 72 75 interru
0001C0: 70 74 2C 20 69 2E 65 2E 20 65 76 65 72 79 20 31 pt, i.e. every 1
0001D0: 2F 33 30 30 74 68 20 6F 66 20 61 20 73 65 63 6F /300th of a seco
0001E0: 6E 64 2E 20 41 20 66 61 73 74 20 74 69 63 6B 65 nd. A fast ticke
0001F0: 72 20 62 6C 6F 63 6B 20 20 69 73 0D 0A 20 20 20 r block is..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 39 20 62 79 74 65 73 20 9 bytes
000010: 6C 6F 6E 67 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 long.......
000020: 20 20 20 20 20 20 62 2E 20 54 69 63 6B 65 72 20 b. Ticker
000030: 45 76 65 6E 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 Events.......
000040: 20 20 20 20 20 20 20 20 45 61 63 68 20 65 76 65 Each eve
000050: 6E 74 20 6F 6E 20 74 68 65 20 74 69 63 6B 65 72 nt on the ticker
000060: 20 71 75 65 75 65 20 69 73 20 61 73 73 6F 63 69 queue is associ
000070: 61 74 65 64 20 20 77 69 74 68 20 20 61 20 20 74 ated with a t
000080: 69 6D 65 72 2E 20 20 54 68 65 0D 0A 20 20 20 20 imer. The..
000090: 20 20 20 20 20 20 20 74 69 6D 65 72 20 6D 61 79 timer may
0000A0: 20 62 65 20 61 20 27 6F 6E 65 20 73 68 6F 74 27 be a 'one shot'
0000B0: 2C 20 77 68 69 63 68 20 67 6F 65 73 20 6F 66 66 , which goes off
0000C0: 20 20 6F 6E 63 65 2C 20 20 6F 72 20 20 61 20 20 once, or a
0000D0: 72 65 70 65 61 74 65 72 2C 0D 0A 20 20 20 20 20 repeater,..
0000E0: 20 20 20 20 20 20 77 68 69 63 68 20 67 6F 65 73 which goes
0000F0: 20 6F 66 66 20 70 65 72 69 6F 64 69 63 61 6C 6C off periodicall
000100: 79 2E 20 54 68 65 20 74 69 6D 65 72 20 63 6F 75 y. The timer cou
000110: 6E 74 73 20 20 74 69 63 6B 65 72 20 20 69 6E 74 nts ticker int
000120: 65 72 72 75 70 74 73 2C 0D 0A 20 20 20 20 20 20 errupts,..
000130: 20 20 20 20 20 69 2E 65 2E 20 31 2F 35 30 74 68 i.e. 1/50th
000140: 73 20 6F 66 20 61 20 73 65 63 6F 6E 64 2C 20 61 s of a second, a
000150: 6E 64 20 77 68 65 6E 20 20 73 75 66 66 69 63 69 nd when suffici
000160: 65 6E 74 20 20 68 61 76 65 20 20 6F 63 63 75 72 ent have occur
000170: 72 65 64 20 20 69 74 0D 0A 20 20 20 20 20 20 20 red it..
000180: 20 20 20 20 67 6F 65 73 20 6F 66 66 2E 20 45 61 goes off. Ea
000190: 63 68 20 74 69 6D 65 20 74 68 65 20 74 69 6D 65 ch time the time
0001A0: 72 20 61 73 73 6F 63 69 61 74 65 64 20 77 69 74 r associated wit
0001B0: 68 20 61 6E 20 20 65 76 65 6E 74 20 20 67 6F 65 h an event goe
0001C0: 73 20 20 6F 66 66 0D 0A 20 20 20 20 20 20 20 20 s off..
0001D0: 20 20 20 74 68 65 20 65 76 65 6E 74 20 69 73 20 the event is
0001E0: 6B 69 63 6B 65 64 2E 20 41 20 74 69 63 6B 65 72 kicked. A ticker
0001F0: 20 62 6C 6F 63 6B 20 69 73 20 31 33 20 62 79 74 block is 13 byt
Size : 512 (Real : 512)
000000: 65 73 20 6C 6F 6E 67 2E 0D 0A 0D 0A 0D 0A 20 20 es long.......
000010: 20 20 20 20 20 20 20 20 20 63 2E 20 46 72 61 6D c. Fram
000020: 65 20 46 6C 79 62 61 63 6B 20 45 76 65 6E 74 73 e Flyback Events
000030: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 .......
000040: 20 20 45 76 65 6E 74 73 20 6F 6E 20 74 68 65 20 Events on the
000050: 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 71 75 frame flyback qu
000060: 65 75 65 20 61 72 65 20 6B 69 63 6B 65 64 20 6F eue are kicked o
000070: 6E 20 65 61 63 68 20 66 72 61 6D 65 20 66 6C 79 n each frame fly
000080: 62 61 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 back..
000090: 20 69 6E 74 65 72 72 75 70 74 2C 20 69 2E 65 2E interrupt, i.e.
0000A0: 20 31 2F 35 30 74 68 20 6F 66 20 61 20 73 65 63 1/50th of a sec
0000B0: 6F 6E 64 20 6F 6E 20 50 41 4C 20 6F 72 20 20 53 ond on PAL or S
0000C0: 45 43 41 4D 20 20 6D 61 63 68 69 6E 65 73 20 20 ECAM machines
0000D0: 61 6E 64 0D 0A 20 20 20 20 20 20 20 20 20 20 20 and..
0000E0: 65 76 65 72 79 20 31 2F 36 30 74 68 20 6F 66 20 every 1/60th of
0000F0: 61 20 73 65 63 6F 6E 64 20 6F 6E 20 4E 54 53 43 a second on NTSC
000100: 20 6D 61 63 68 69 6E 65 73 2E 20 41 20 66 72 61 machines. A fra
000110: 6D 65 20 20 66 6C 79 62 61 63 6B 20 20 62 6C 6F me flyback blo
000120: 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 69 ck.. i
000130: 73 20 39 20 62 79 74 65 73 20 6C 6F 6E 67 2E 0D s 9 bytes long..
000140: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
000150: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
000160: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
000170: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 31 page 11
0001A0: 2E 34 0D 0A 1A 68 65 72 65 20 69 73 20 6F 6E 6C .4...here is onl
0001B0: 79 20 6F 6E 65 20 73 6F 75 72 63 65 20 20 6F 66 y one source of
0001C0: 20 20 69 6E 74 65 72 72 75 70 74 73 20 20 69 6E interrupts in
0001D0: 20 20 61 6E 20 20 75 6E 65 78 70 61 6E 64 65 64 an unexpanded
0001E0: 20 20 6D 61 63 68 69 6E 65 2C 0D 0A 20 20 20 20 machine,..
0001F0: 20 20 20 6E 61 6D 65 6C 79 20 20 61 20 20 72 65 namely a re
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
000010: 32 20 45 76 65 6E 74 73 2E 0D 0A 0D 0A 0D 0A 20 2 Events.......
000020: 20 20 20 20 20 20 54 68 65 20 65 76 65 6E 20 6D The even m
000030: 65 63 68 61 6E 69 73 6D 20 69 73 20 70 72 69 6D echanism is prim
000040: 61 72 69 6C 79 20 70 72 6F 76 69 64 65 64 20 62 arily provided b
000050: 79 20 74 68 65 20 4B 65 72 6E 65 6C 20 74 6F 20 y the Kernel to
000060: 73 75 70 70 6F 72 74 20 20 74 68 65 0D 0A 20 20 support the..
000070: 20 20 20 20 20 68 61 6E 64 6C 69 6E 67 20 20 6F handling o
000080: 66 20 20 69 6E 74 65 72 72 75 70 74 73 20 20 61 f interrupts a
000090: 6E 64 20 20 6F 74 68 65 72 20 20 65 78 74 65 72 nd other exter
0000A0: 6E 61 6C 20 20 65 76 65 6E 74 73 2E 20 20 48 6F nal events. Ho
0000B0: 77 65 76 65 72 2C 20 20 74 68 65 0D 0A 20 20 20 wever, the..
0000C0: 20 20 20 20 6D 65 63 68 61 6E 69 73 6D 20 6D 61 mechanism ma
0000D0: 79 20 61 6C 73 6F 20 62 65 20 75 73 65 64 20 74 y also be used t
0000E0: 6F 20 68 61 6E 64 6C 65 20 69 6E 74 65 72 6E 61 o handle interna
0000F0: 6C 20 20 65 76 65 6E 74 73 20 20 69 6E 20 20 63 l events in c
000100: 6F 6D 70 6C 69 63 61 74 65 64 0D 0A 20 20 20 20 omplicated..
000110: 20 20 20 70 72 6F 67 72 61 6D 73 20 20 28 73 75 programs (su
000120: 63 68 20 20 61 73 20 20 61 20 20 73 69 6D 75 6C ch as a simul
000130: 61 74 69 6F 6E 2C 20 20 66 6F 72 20 20 20 65 78 ation, for ex
000140: 61 6D 70 6C 65 29 2E 20 20 20 41 6E 20 20 20 65 ample). An e
000150: 76 65 6E 74 20 20 20 69 73 0D 0A 20 20 20 20 20 vent is..
000160: 20 20 63 68 61 72 61 63 74 65 72 69 73 65 64 20 characterised
000170: 62 79 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 by the following
000180: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 :......
000190: 20 20 61 2E 20 45 76 65 6E 74 20 43 6C 61 73 73 a. Event Class
0001A0: 20 28 73 65 65 20 73 65 63 74 69 6F 6E 20 31 32 (see section 12
0001B0: 2E 31 29 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .1)......
0001C0: 20 20 20 20 45 76 65 6E 74 73 20 6D 61 79 20 62 Events may b
0001D0: 65 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 6F 72 e synchronous or
0001E0: 20 61 73 79 6E 63 68 72 6F 6E 6F 75 73 2C 20 65 asynchronous, e
0001F0: 78 70 72 65 73 73 20 6F 72 20 6E 6F 72 6D 61 6C xpress or normal
Size : 512 (Real : 512)
000000: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 .......
000010: 20 20 62 2E 20 45 76 65 6E 74 20 50 72 69 6F 72 b. Event Prior
000020: 69 74 79 20 28 73 65 65 20 73 65 63 74 69 6F 6E ity (see section
000030: 20 31 32 2E 31 29 0D 0A 0D 0A 0D 0A 20 20 20 20 12.1)......
000040: 20 20 20 20 20 20 20 53 79 6E 63 68 72 6F 6E 6F Synchrono
000050: 75 73 20 65 76 65 6E 74 73 20 68 61 76 65 20 61 us events have a
000060: 6E 20 61 73 73 6F 63 69 61 74 65 64 20 70 72 69 n associated pri
000070: 6F 72 69 74 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 ority.......
000080: 20 20 20 20 20 20 20 63 2E 20 45 76 65 6E 74 20 c. Event
000090: 43 6F 75 6E 74 20 28 73 65 65 20 73 65 63 74 69 Count (see secti
0000A0: 6F 6E 20 31 32 2E 32 29 0D 0A 0D 0A 0D 0A 20 20 on 12.2)......
0000B0: 20 20 20 20 20 20 20 20 20 45 61 63 68 20 74 69 Each ti
0000C0: 6D 65 20 61 6E 20 65 76 65 6E 74 20 6F 63 63 75 me an event occu
0000D0: 72 73 20 74 68 65 20 63 6F 75 6E 74 20 69 73 20 rs the count is
0000E0: 69 6E 63 72 65 6D 65 6E 74 65 64 2E 0D 0A 20 20 incremented...
0000F0: 20 20 20 20 20 20 20 20 20 45 61 63 68 20 74 69 Each ti
000100: 6D 65 20 61 6E 20 65 76 65 6E 74 20 69 73 20 70 me an event is p
000110: 72 6F 63 65 73 73 65 64 20 74 68 65 20 63 6F 75 rocessed the cou
000120: 6E 74 20 69 73 20 64 65 63 72 65 6D 65 6E 74 65 nt is decremente
000130: 64 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 54 d... T
000140: 68 65 20 65 76 65 6E 74 20 6D 61 79 20 62 65 20 he event may be
000150: 64 69 73 61 72 6D 65 64 20 62 79 20 73 65 74 74 disarmed by sett
000160: 69 6E 67 20 74 68 65 20 63 6F 75 6E 74 20 6E 65 ing the count ne
000170: 67 61 74 69 76 65 2E 0D 0A 0D 0A 20 20 20 20 20 gative.....
000180: 20 20 20 20 20 20 64 2E 20 45 76 65 6E 74 20 52 d. Event R
000190: 6F 75 74 69 6E 65 2E 20 28 73 65 65 20 73 65 63 outine. (see sec
0001A0: 74 69 6F 6E 20 31 32 2E 33 29 0D 0A 0D 0A 20 20 tion 12.3)....
0001B0: 20 20 20 20 20 20 20 20 20 54 68 65 20 61 64 64 The add
0001C0: 72 65 73 73 20 6F 66 20 74 68 65 20 72 6F 75 74 ress of the rout
0001D0: 69 6E 65 20 77 68 69 63 68 20 69 73 20 63 61 6C ine which is cal
0001E0: 6C 65 64 20 74 6F 20 70 72 6F 63 65 73 73 20 74 led to process t
0001F0: 68 65 20 65 76 65 6E 74 2E 0D 0A 0D 0A 0D 0A 20 he event.......
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 41 6E 20 65 76 65 6E 74 20 61 An event a
000010: 70 70 65 61 72 73 20 74 6F 20 74 68 65 20 4B 65 ppears to the Ke
000020: 72 6E 65 6C 20 61 73 20 61 20 64 61 74 61 20 62 rnel as a data b
000030: 6C 6F 63 6B 20 20 63 6F 6E 74 61 69 6E 69 6E 67 lock containing
000040: 20 20 74 68 65 20 20 61 62 6F 76 65 0D 0A 20 20 the above..
000050: 20 20 20 20 20 76 61 6C 75 65 73 20 28 73 65 65 values (see
000060: 20 41 70 70 65 6E 64 69 78 20 58 20 66 6F 72 20 Appendix X for
000070: 74 68 65 20 65 78 61 63 74 20 6C 61 79 6F 75 74 the exact layout
000080: 20 6F 66 20 61 6E 20 20 65 76 65 6E 74 20 20 62 of an event b
000090: 6C 6F 63 6B 29 2E 20 20 54 68 65 0D 0A 20 20 20 lock). The..
0000A0: 20 20 20 20 62 6C 6F 63 6B 20 6D 75 73 74 20 62 block must b
0000B0: 65 20 69 6E 20 74 68 65 20 63 65 6E 74 72 61 6C e in the central
0000C0: 20 33 32 4B 20 62 79 74 65 73 20 6F 66 20 6D 65 32K bytes of me
0000D0: 6D 6F 72 79 2C 20 73 6F 20 74 68 61 74 20 20 74 mory, so that t
0000E0: 68 65 20 20 4B 65 72 6E 65 6C 0D 0A 20 20 20 20 he Kernel..
0000F0: 20 20 20 63 61 6E 20 61 63 63 65 73 73 20 69 74 can access it
000100: 20 77 69 74 68 6F 75 74 20 77 6F 72 72 79 69 6E without worryin
000110: 67 20 61 62 6F 75 74 20 74 68 65 20 52 4F 4D 20 g about the ROM
000120: 65 6E 61 62 6C 65 20 73 74 61 74 65 2E 0D 0A 0D enable state....
000130: 0A 20 20 20 20 20 20 20 57 68 65 6E 20 61 6E 20 . When an
000140: 65 76 65 6E 74 20 6F 63 63 75 72 73 20 74 68 65 event occurs the
000150: 20 61 73 73 6F 63 69 61 74 65 64 20 65 76 65 6E associated even
000160: 74 20 62 6C 6F 63 6B 20 69 73 20 6B 69 63 6B 65 t block is kicke
000170: 64 20 20 62 79 20 20 63 61 6C 6C 69 6E 67 0D 0A d by calling..
000180: 20 20 20 20 20 20 20 4B 4C 20 45 56 45 4E 54 2E KL EVENT.
000190: 20 49 66 20 74 68 65 20 65 76 65 6E 74 20 63 6F If the event co
0001A0: 75 6E 74 20 20 69 73 20 20 6E 65 67 61 74 69 76 unt is negativ
0001B0: 65 2C 20 20 74 68 65 20 20 27 6B 69 63 6B 27 20 e, the 'kick'
0001C0: 20 69 73 20 20 69 67 6E 6F 72 65 64 2C 0D 0A 20 is ignored,..
0001D0: 20 20 20 20 20 20 6F 74 68 65 72 77 69 73 65 20 otherwise
0001E0: 74 68 65 20 65 76 65 6E 74 20 63 6F 75 6E 74 20 the event count
0001F0: 69 73 20 69 6E 63 72 65 6D 65 6E 74 65 64 20 28 is incremented (
Size : 512 (Real : 512)
000000: 75 70 20 74 6F 20 61 20 6D 61 78 69 6D 75 6D 20 up to a maximum
000010: 6F 66 20 31 32 37 29 20 20 61 6E 64 0D 0A 20 20 of 127) and..
000020: 20 20 20 20 20 74 68 65 20 65 76 65 6E 74 20 72 the event r
000030: 6F 75 74 69 6E 65 20 77 69 6C 6C 20 20 62 65 20 outine will be
000040: 20 63 61 6C 6C 65 64 20 20 61 74 20 20 73 6F 6D called at som
000050: 65 20 20 74 69 6D 65 20 20 69 6E 20 20 74 68 65 e time in the
000060: 20 20 66 75 74 75 72 65 20 20 2D 0D 0A 20 20 20 future -..
000070: 20 20 20 20 64 65 70 65 6E 64 69 6E 67 20 6F 6E depending on
000080: 20 74 68 65 20 65 76 65 6E 74 20 63 6C 61 73 73 the event class
000090: 2E 20 57 68 65 6E 20 74 68 65 20 65 76 65 6E 74 . When the event
0000A0: 20 72 6F 75 74 69 6E 65 20 72 65 74 75 72 6E 73 routine returns
0000B0: 20 74 68 65 20 65 76 65 6E 74 0D 0A 20 20 20 20 the event..
0000C0: 20 20 20 63 6F 75 6E 74 20 69 73 20 64 65 63 72 count is decr
0000D0: 65 6D 65 6E 74 65 64 2C 20 75 6E 6C 65 73 73 20 emented, unless
0000E0: 69 74 20 68 61 73 20 62 65 65 6E 20 73 65 74 20 it has been set
0000F0: 74 6F 20 7A 65 72 6F 20 20 6F 72 20 20 6E 65 67 to zero or neg
000100: 61 74 69 76 65 20 20 69 6E 0D 0A 20 20 20 20 20 ative in..
000110: 20 20 74 68 65 20 6D 65 61 6E 74 69 6D 65 2E 0D the meantime..
000120: 0A 0D 0A 20 20 20 20 20 20 20 31 32 2E 31 20 45 ... 12.1 E
000130: 76 65 6E 74 20 43 6C 61 73 73 2E 0D 0A 0D 0A 20 vent Class.....
000140: 20 20 20 20 20 20 45 76 65 6E 74 73 20 61 72 65 Events are
000150: 20 65 69 74 68 65 72 20 73 79 6E 63 68 72 6F 6E either synchron
000160: 6F 75 73 20 6F 72 20 61 73 79 6E 63 68 72 6F 6E ous or asynchron
000170: 6F 75 73 2E 20 41 73 79 6E 63 68 72 6F 6E 6F 75 ous. Asynchronou
000180: 73 20 65 76 65 6E 74 73 20 61 72 65 0D 0A 20 20 s events are..
000190: 20 20 20 20 20 69 6E 74 65 6E 64 65 64 20 66 6F intended fo
0001A0: 72 20 74 68 65 20 70 72 6F 63 65 73 73 69 6E 67 r the processing
0001B0: 20 6F 66 20 65 78 74 65 72 6E 61 6C 20 65 76 65 of external eve
0001C0: 6E 74 73 20 20 77 68 69 63 68 20 20 72 65 71 75 nts which requ
0001D0: 69 72 65 20 20 61 6C 6D 6F 73 74 0D 0A 20 20 20 ire almost..
0001E0: 20 20 20 20 69 6D 6D 65 64 69 61 74 65 20 73 65 immediate se
0001F0: 72 76 69 63 65 2E 20 54 68 65 20 70 72 6F 63 65 rvice. The proce
Size : 512 (Real : 512)
000000: 73 73 69 6E 67 20 6F 66 20 61 73 79 6E 63 68 72 ssing of asynchr
000010: 6F 6E 6F 75 73 20 65 76 65 6E 74 73 20 70 72 65 onous events pre
000020: 2D 65 6D 70 74 73 20 74 68 65 0D 0A 20 20 20 20 -empts the..
000030: 20 20 20 6D 61 69 6E 20 70 72 6F 67 72 61 6D 2E main program.
000040: 20 54 68 65 20 20 70 72 6F 63 65 73 73 69 6E 67 The processing
000050: 20 20 6F 66 20 20 73 79 6E 63 68 72 6F 6E 6F 75 of synchronou
000060: 73 20 20 65 76 65 6E 74 73 20 20 69 73 20 20 75 s events is u
000070: 6E 64 65 72 20 20 74 68 65 0D 0A 20 20 20 20 20 nder the..
000080: 20 20 63 6F 6D 70 6C 65 74 65 20 63 6F 6E 74 72 complete contr
000090: 6F 6C 20 6F 66 20 74 68 65 20 6D 61 69 6E 20 70 ol of the main p
0000A0: 72 6F 67 72 61 6D 2C 20 77 68 69 63 68 20 20 77 rogram, which w
0000B0: 69 6C 6C 2C 20 20 69 6E 20 20 67 65 6E 65 72 61 ill, in genera
0000C0: 6C 2C 20 20 64 65 61 6C 0D 0A 20 20 20 20 20 20 l, deal..
0000D0: 20 77 69 74 68 20 74 68 65 6D 20 77 68 65 6E 20 with them when
0000E0: 69 74 20 69 73 20 63 6F 6E 76 65 6E 69 65 6E 74 it is convenient
0000F0: 20 74 6F 20 64 6F 20 73 6F 2E 0D 0A 0D 0A 0D 0A to do so.......
000100: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
000110: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
000120: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 20 70 61 67 65 20 31 32 2E 31 0D 0A 0D page 12.1...
000150: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
000160: 20 20 61 2E 20 41 73 79 6E 63 68 72 6F 6E 6F 75 a. Asynchronou
000170: 73 20 45 76 65 6E 74 73 2E 0D 0A 20 20 20 20 20 s Events...
000180: 20 20 41 6E 20 61 73 79 6E 63 68 72 6F 6E 6F 75 An asynchronou
000190: 73 20 65 76 65 6E 74 20 69 73 20 70 72 6F 63 65 s event is proce
0001A0: 73 73 65 64 20 69 6D 6D 65 64 69 61 74 65 6C 79 ssed immediately
0001B0: 20 74 68 65 20 65 76 65 6E 74 20 69 73 20 20 6B the event is k
0001C0: 69 63 6B 65 64 20 20 2D 0D 0A 20 20 20 20 20 20 icked -..
0001D0: 20 6F 72 20 61 6C 6D 6F 73 74 20 69 6D 6D 65 64 or almost immed
0001E0: 69 61 74 65 6C 79 20 69 66 20 74 68 65 20 6B 69 iately if the ki
0001F0: 63 6B 20 6F 63 63 75 72 73 20 69 6E 20 74 68 65 ck occurs in the
Size : 512 (Real : 512)
000000: 20 69 6E 74 65 72 72 75 70 74 20 70 61 74 68 20 interrupt path
000010: 20 2D 20 20 73 65 65 0D 0A 20 20 20 20 20 20 20 - see..
000020: 73 65 63 74 69 6F 6E 20 31 31 20 6F 6E 20 69 6E section 11 on in
000030: 74 65 72 72 75 70 74 73 2E 20 54 68 65 20 4B 65 terrupts. The Ke
000040: 72 6E 65 6C 20 64 6F 65 73 20 6E 6F 74 20 70 72 rnel does not pr
000050: 6F 76 69 64 65 20 20 61 6E 79 20 20 69 6E 74 65 ovide any inte
000060: 72 6C 6F 63 6B 73 0D 0A 20 20 20 20 20 20 20 62 rlocks.. b
000070: 65 74 77 65 65 6E 20 61 73 79 6E 63 68 72 6F 6E etween asynchron
000080: 6F 75 73 20 65 76 65 6E 74 73 20 61 6E 64 20 74 ous events and t
000090: 68 65 20 6D 61 69 6E 20 70 72 6F 67 72 61 6D 20 he main program
0000A0: 6F 72 20 6F 74 68 65 72 20 20 65 76 65 6E 74 73 or other events
0000B0: 2C 20 20 73 6F 0D 0A 20 20 20 20 20 20 20 63 61 , so.. ca
0000C0: 72 65 20 6D 75 73 74 20 62 65 20 65 78 65 72 63 re must be exerc
0000D0: 69 73 65 64 20 74 6F 20 61 76 6F 69 64 20 69 6E ised to avoid in
0000E0: 74 65 72 61 63 74 69 6F 6E 73 2E 20 49 74 20 20 teractions. It
0000F0: 69 73 20 20 6D 6F 73 74 20 20 75 6E 77 69 73 65 is most unwise
000100: 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 63 61 6C to.. cal
000110: 6C 20 72 6F 75 74 69 6E 65 73 20 74 68 61 74 20 l routines that
000120: 61 72 65 20 6E 6F 74 20 72 65 2D 65 6E 74 72 61 are not re-entra
000130: 6E 74 20 20 2D 20 20 66 6F 72 20 20 65 78 61 6D nt - for exam
000140: 70 6C 65 2C 20 20 74 68 65 20 20 66 69 72 6D 77 ple, the firmw
000150: 61 72 65 0D 0A 20 20 20 20 20 20 20 73 63 72 65 are.. scre
000160: 65 6E 20 64 72 69 76 69 6E 67 20 72 6F 75 74 69 en driving routi
000170: 6E 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 nes..... I
000180: 66 20 74 68 65 20 65 76 65 6E 74 20 63 6F 75 6E f the event coun
000190: 74 20 69 73 20 73 74 69 6C 6C 20 67 72 65 61 74 t is still great
0001A0: 65 72 20 74 68 61 6E 20 7A 65 72 6F 20 77 68 65 er than zero whe
0001B0: 6E 20 74 68 65 20 20 65 76 65 6E 74 20 20 72 6F n the event ro
0001C0: 75 74 69 6E 65 0D 0A 20 20 20 20 20 20 20 72 65 utine.. re
0001D0: 74 75 72 6E 73 2C 20 69 74 20 69 73 20 64 65 63 turns, it is dec
0001E0: 72 65 6D 65 6E 74 65 64 2E 20 49 66 20 74 68 65 remented. If the
0001F0: 20 63 6F 75 6E 74 20 20 72 65 6D 61 69 6E 73 20 count remains
Size : 512 (Real : 512)
000000: 20 67 72 65 61 74 65 72 20 20 74 68 61 6E 20 20 greater than
000010: 7A 65 72 6F 0D 0A 20 20 20 20 20 20 20 74 68 65 zero.. the
000020: 6E 20 74 68 65 20 70 72 6F 63 65 73 73 20 69 73 n the process is
000030: 20 72 65 70 65 61 74 65 64 20 28 74 68 65 20 65 repeated (the e
000040: 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 69 73 20 vent routine is
000050: 20 63 61 6C 6C 65 64 20 20 61 67 61 69 6E 20 20 called again
000060: 61 6E 64 0D 0A 20 20 20 20 20 20 20 74 68 65 20 and.. the
000070: 65 76 65 6E 74 20 63 6F 75 6E 74 20 69 73 20 64 event count is d
000080: 65 63 72 65 6D 65 6E 74 65 64 29 20 75 6E 74 69 ecremented) unti
000090: 6C 20 74 68 65 20 63 6F 75 6E 74 20 62 65 63 6F l the count beco
0000A0: 6D 65 73 20 7A 65 72 6F 20 6F 72 20 69 73 20 73 mes zero or is s
0000B0: 65 74 0D 0A 20 20 20 20 20 20 20 6E 65 67 61 74 et.. negat
0000C0: 69 76 65 20 28 73 65 65 20 31 32 2E 32 20 62 65 ive (see 12.2 be
0000D0: 6C 6F 77 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 low).....
0000E0: 62 2E 20 53 79 6E 63 68 72 6F 6E 6F 75 73 20 45 b. Synchronous E
0000F0: 76 65 6E 74 73 2E 0D 0A 20 20 20 20 20 20 20 53 vents... S
000100: 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 ynchronous event
000110: 73 20 61 72 65 20 6E 6F 74 20 70 72 6F 63 65 73 s are not proces
000120: 73 65 64 20 77 68 65 6E 20 74 68 65 20 65 76 65 sed when the eve
000130: 6E 74 20 69 73 20 6B 69 63 6B 65 64 2C 20 62 75 nt is kicked, bu
000140: 74 20 61 72 65 0D 0A 20 20 20 20 20 20 20 70 6C t are.. pl
000150: 61 63 65 64 20 6F 6E 20 74 68 65 20 73 79 6E 63 aced on the sync
000160: 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 20 71 75 hronous event qu
000170: 65 75 65 2C 20 77 61 69 74 69 6E 67 20 74 6F 20 eue, waiting to
000180: 62 65 20 70 72 6F 63 65 73 73 65 64 2E 20 45 76 be processed. Ev
000190: 65 6E 74 73 0D 0A 20 20 20 20 20 20 20 61 72 65 ents.. are
0001A0: 20 71 75 65 75 65 64 20 69 6E 20 64 65 73 63 65 queued in desce
0001B0: 6E 64 69 6E 67 20 6F 72 64 65 72 20 6F 66 20 70 nding order of p
0001C0: 72 69 6F 72 69 74 79 20 20 2D 20 20 65 71 75 61 riority - equa
0001D0: 6C 20 20 70 72 69 6F 72 69 74 79 20 20 65 76 65 l priority eve
0001E0: 6E 74 73 0D 0A 20 20 20 20 20 20 20 61 66 74 65 nts.. afte
0001F0: 72 20 74 68 6F 73 65 20 61 6C 72 65 61 64 79 20 r those already
Size : 512 (Real : 512)
000000: 6F 6E 20 74 68 65 20 71 75 65 75 65 2E 0D 0A 0D on the queue....
000010: 0A 20 20 20 20 20 20 20 54 68 65 20 20 66 6F 72 . The for
000020: 65 67 72 6F 75 6E 64 20 20 70 72 6F 67 72 61 6D eground program
000030: 20 20 73 68 6F 75 6C 64 20 20 70 6F 6C 6C 20 20 should poll
000040: 74 68 65 20 20 73 79 6E 63 68 72 6F 6E 6F 75 73 the synchronous
000050: 20 20 65 76 65 6E 74 20 20 71 75 65 75 65 0D 0A event queue..
000060: 20 20 20 20 20 20 20 72 65 67 75 6C 61 72 6C 79 regularly
000070: 2C 20 74 6F 20 73 65 65 20 69 66 20 74 68 65 72 , to see if ther
000080: 65 20 61 72 65 20 61 6E 79 20 65 76 65 6E 74 73 e are any events
000090: 20 6F 75 74 73 74 61 6E 64 69 6E 67 2E 20 20 49 outstanding. I
0000A0: 66 20 20 74 68 65 72 65 20 20 61 72 65 0D 0A 20 f there are..
0000B0: 20 20 20 20 20 20 74 68 65 6E 20 69 74 20 73 68 then it sh
0000C0: 6F 75 6C 64 20 70 72 6F 63 65 73 73 20 74 68 65 ould process the
0000D0: 6D 2E 20 54 68 65 20 64 69 66 66 65 72 65 6E 63 m. The differenc
0000E0: 65 20 20 62 65 74 77 65 65 6E 20 20 73 79 6E 63 e between sync
0000F0: 68 72 6F 6E 6F 75 73 20 20 61 6E 64 0D 0A 20 20 hronous and..
000100: 20 20 20 20 20 61 73 79 6E 63 68 72 6F 6E 6F 75 asynchronou
000110: 73 20 65 76 65 6E 74 73 20 69 73 2C 20 74 68 65 s events is, the
000120: 72 65 66 6F 72 65 2C 20 74 68 61 74 20 74 68 65 refore, that the
000130: 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 foreground prog
000140: 72 61 6D 20 64 65 63 69 64 65 73 0D 0A 20 20 20 ram decides..
000150: 20 20 20 20 77 68 65 6E 20 73 79 6E 63 68 72 6F when synchro
000160: 6E 6F 75 73 20 65 76 65 6E 74 73 20 73 68 6F 75 nous events shou
000170: 6C 64 20 62 65 20 70 72 6F 63 65 73 73 65 64 2C ld be processed,
000180: 20 62 75 74 20 20 74 68 65 20 20 65 76 65 6E 74 but the event
000190: 20 20 27 6B 69 63 6B 65 72 27 0D 0A 20 20 20 20 'kicker'..
0001A0: 20 20 20 64 65 63 69 64 65 73 20 77 68 65 6E 20 decides when
0001B0: 61 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 asynchronous eve
0001C0: 6E 74 73 20 20 61 72 65 20 20 70 72 6F 63 65 73 nts are proces
0001D0: 73 65 64 2E 20 20 50 72 6F 76 69 64 65 64 20 20 sed. Provided
0001E0: 74 68 61 74 20 20 74 68 65 0D 0A 20 20 20 20 20 that the..
0001F0: 20 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F foreground pro
Size : 512 (Real : 512)
000000: 67 72 61 6D 20 74 61 6B 65 73 20 73 75 69 74 61 gram takes suita
000010: 62 6C 65 20 63 61 72 65 2C 20 74 68 65 72 65 20 ble care, there
000020: 73 68 6F 75 6C 64 20 62 65 20 6E 6F 20 20 64 69 should be no di
000030: 66 66 69 63 75 6C 74 79 0D 0A 20 20 20 20 20 20 fficulty..
000040: 20 69 6E 20 68 61 6E 64 6C 69 6E 67 20 74 68 65 in handling the
000050: 20 69 6E 74 65 72 61 63 74 69 6F 6E 73 20 61 6E interactions an
000060: 64 20 72 65 73 6F 75 72 63 65 20 73 68 61 72 69 d resource shari
000070: 6E 67 20 62 65 74 77 65 65 6E 20 20 73 79 6E 63 ng between sync
000080: 68 72 6F 6E 6F 75 73 0D 0A 20 20 20 20 20 20 20 hronous..
000090: 65 76 65 6E 74 73 20 61 6E 64 20 74 68 65 20 66 events and the f
0000A0: 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 72 61 oreground progra
0000B0: 6D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 57 68 65 m..... Whe
0000C0: 6E 20 74 68 65 20 66 6F 72 65 67 72 6F 75 6E 64 n the foreground
0000D0: 20 70 72 6F 67 72 61 6D 20 66 69 6E 64 73 20 74 program finds t
0000E0: 68 65 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 he synchronous e
0000F0: 76 65 6E 74 20 71 75 65 75 65 20 20 69 73 20 20 vent queue is
000100: 6E 6F 74 0D 0A 20 20 20 20 20 20 20 65 6D 70 74 not.. empt
000110: 79 20 69 74 20 73 68 6F 75 6C 64 20 28 62 75 74 y it should (but
000120: 20 69 73 20 6E 6F 74 20 63 6F 6E 73 74 72 61 69 is not constrai
000130: 6E 65 64 20 74 6F 29 20 20 69 6E 73 74 72 75 63 ned to) instruc
000140: 74 20 20 74 68 65 20 20 4B 65 72 6E 65 6C 20 20 t the Kernel
000150: 74 6F 0D 0A 20 20 20 20 20 20 20 70 72 6F 63 65 to.. proce
000160: 73 73 20 74 68 65 20 66 69 72 73 74 20 65 76 65 ss the first eve
000170: 6E 74 20 6F 6E 20 74 68 65 20 71 75 65 75 65 2E nt on the queue.
000180: 20 57 68 65 6E 20 61 20 73 79 6E 63 68 72 6F 6E When a synchron
000190: 6F 75 73 20 65 76 65 6E 74 20 72 6F 75 74 69 6E ous event routin
0001A0: 65 0D 0A 20 20 20 20 20 20 20 69 73 20 72 75 6E e.. is run
0001B0: 20 74 68 65 20 4B 65 72 6E 65 6C 20 72 65 6D 65 the Kernel reme
0001C0: 6D 62 65 72 73 20 74 68 65 20 70 72 69 6F 72 69 mbers the priori
0001D0: 74 79 20 6F 66 20 74 68 65 20 65 76 65 6E 74 2E ty of the event.
0001E0: 20 20 49 6E 20 20 74 68 65 20 20 65 76 65 6E 74 In the event
0001F0: 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 6E 65 .. routine
Size : 512 (Real : 512)
000000: 20 74 68 65 20 73 79 6E 63 68 72 6F 6E 6F 75 73 the synchronous
000010: 20 65 76 65 6E 74 20 71 75 65 75 65 20 6D 61 79 event queue may
000020: 20 20 62 65 20 20 70 6F 6C 6C 65 64 2C 20 20 62 be polled, b
000030: 75 74 20 20 74 68 65 20 20 4B 65 72 6E 65 6C 0D ut the Kernel.
000040: 0A 20 20 20 20 20 20 20 68 69 64 65 73 20 61 6E . hides an
000050: 79 20 65 76 65 6E 74 20 77 68 6F 73 65 20 70 72 y event whose pr
000060: 69 6F 72 69 74 79 20 69 73 20 6C 65 73 73 20 74 iority is less t
000070: 68 61 6E 20 6F 72 20 20 65 71 75 61 6C 20 20 74 han or equal t
000080: 6F 20 20 74 68 61 74 20 20 65 76 65 6E 74 0D 0A o that event..
000090: 20 20 20 20 20 20 20 63 75 72 72 65 6E 74 6C 79 currently
0000A0: 20 62 65 69 6E 67 20 70 72 6F 63 65 73 73 65 64 being processed
0000B0: 2E 20 57 68 65 6E 20 74 68 65 20 65 76 65 6E 74 . When the event
0000C0: 20 72 6F 75 74 69 6E 65 20 72 65 74 75 72 6E 73 routine returns
0000D0: 20 74 68 65 20 70 72 65 76 69 6F 75 73 0D 0A 20 the previous..
0000E0: 20 20 20 20 20 20 65 76 65 6E 74 20 70 72 69 6F event prio
0000F0: 72 69 74 79 20 69 73 20 72 65 73 74 6F 72 65 64 rity is restored
000100: 20 2D 20 20 73 6F 20 20 74 68 65 20 20 70 72 6F - so the pro
000110: 63 65 73 73 69 6E 67 20 20 6F 66 20 20 65 76 65 cessing of eve
000120: 6E 74 73 20 20 6D 61 79 20 20 62 65 0D 0A 20 20 nts may be..
000130: 20 20 20 20 20 6E 65 73 74 65 64 2E 0D 0A 0D 0A nested.....
000140: 20 20 20 20 20 20 20 54 68 65 20 73 79 6E 63 68 The synch
000150: 72 6F 6E 6F 75 73 20 65 76 65 6E 74 20 70 72 69 ronous event pri
000160: 6F 72 69 74 69 65 73 20 61 72 65 20 73 70 6C 69 orities are spli
000170: 74 20 69 6E 74 6F 20 20 74 77 6F 20 20 72 61 6E t into two ran
000180: 67 65 73 2C 20 20 65 78 70 72 65 73 73 0D 0A 20 ges, express..
000190: 20 20 20 20 20 20 61 6E 64 20 6E 6F 72 6D 61 6C and normal
0001A0: 2E 20 41 6C 6C 20 65 78 70 72 65 73 73 20 65 76 . All express ev
0001B0: 65 6E 74 73 20 68 61 76 65 20 68 69 67 68 65 72 ents have higher
0001C0: 20 70 72 69 6F 72 69 74 69 65 73 20 74 68 61 6E priorities than
0001D0: 20 61 6C 6C 20 20 6E 6F 72 6D 61 6C 0D 0A 20 20 all normal..
0001E0: 20 20 20 20 20 65 76 65 6E 74 73 2E 20 54 68 65 events. The
0001F0: 20 4B 65 72 6E 65 6C 20 70 72 6F 76 69 64 65 73 Kernel provides
Size : 512 (Real : 512)
000000: 20 61 20 6D 65 63 68 61 6E 69 73 6D 20 74 6F 20 a mechanism to
000010: 64 69 73 61 62 6C 65 20 74 68 65 20 20 70 72 6F disable the pro
000020: 63 65 73 73 69 6E 67 20 20 6F 66 0D 0A 20 20 20 cessing of..
000030: 20 20 20 20 6E 6F 72 6D 61 6C 20 65 76 65 6E 74 normal event
000040: 73 2C 20 77 69 74 68 6F 75 74 20 61 66 66 65 63 s, without affec
000050: 74 69 6E 67 20 65 78 70 72 65 73 73 20 65 76 65 ting express eve
000060: 6E 74 73 2E 20 54 68 69 73 20 6D 61 79 20 62 65 nts. This may be
000070: 20 20 75 73 65 64 20 20 74 6F 0D 0A 20 20 20 20 used to..
000080: 20 20 20 69 6D 70 6C 65 6D 65 6E 74 20 27 63 72 implement 'cr
000090: 69 74 69 63 61 6C 20 72 65 67 69 6F 6E 73 27 20 itical regions'
0000A0: 74 68 72 6F 75 67 68 20 77 68 69 63 68 20 6E 6F through which no
0000B0: 72 6D 61 6C 20 65 76 65 6E 74 73 20 6D 61 79 20 rmal events may
0000C0: 69 6E 74 65 72 61 63 74 2E 0D 0A 20 20 20 20 20 interact...
0000D0: 20 20 54 68 65 20 73 79 6E 63 68 72 6F 6E 6F 75 The synchronou
0000E0: 73 20 65 76 65 6E 74 20 27 6B 69 63 6B 65 64 27 s event 'kicked'
0000F0: 20 20 62 79 20 20 74 68 65 20 20 4B 65 79 20 20 by the Key
000100: 4D 61 6E 61 67 65 72 20 20 62 72 65 61 6B 20 20 Manager break
000110: 68 61 6E 64 6C 69 6E 67 0D 0A 20 20 20 20 20 20 handling..
000120: 20 6D 65 63 68 61 6E 69 73 6D 20 69 73 20 61 6E mechanism is an
000130: 20 65 78 61 6D 70 6C 65 20 6F 66 20 61 6E 20 65 example of an e
000140: 78 70 72 65 73 73 20 73 79 6E 63 68 72 6F 6E 6F xpress synchrono
000150: 75 73 20 65 76 65 6E 74 2E 0D 0A 0D 0A 20 20 20 us event.....
000160: 20 20 20 20 31 32 2E 32 20 45 76 65 6E 74 20 43 12.2 Event C
000170: 6F 75 6E 74 2E 0D 0A 20 20 20 20 20 20 20 54 68 ount... Th
000180: 65 20 6D 61 69 6E 20 70 75 72 70 6F 73 65 20 6F e main purpose o
000190: 66 20 74 68 65 20 65 76 65 6E 74 20 63 6F 75 6E f the event coun
0001A0: 74 20 69 73 20 74 6F 20 6B 65 65 70 20 74 72 61 t is to keep tra
0001B0: 63 6B 20 6F 66 20 74 68 65 20 64 69 66 66 65 72 ck of the differ
0001C0: 65 6E 63 65 0D 0A 20 20 20 20 20 20 20 62 65 74 ence.. bet
0001D0: 77 65 65 6E 20 74 68 65 20 6E 75 6D 62 65 72 20 ween the number
0001E0: 6F 66 20 74 69 6D 65 73 20 74 68 65 20 65 76 65 of times the eve
0001F0: 6E 74 20 68 61 73 20 62 65 65 6E 20 6B 69 63 6B nt has been kick
Size : 512 (Real : 512)
000000: 65 64 2C 20 61 6E 64 20 74 68 65 20 20 6E 75 6D ed, and the num
000010: 62 65 72 0D 0A 20 20 20 20 20 20 20 61 20 74 69 ber.. a ti
000020: 6D 65 73 20 74 68 65 20 65 76 65 6E 74 20 68 61 mes the event ha
000030: 73 20 62 65 65 6E 20 70 72 6F 63 65 73 73 65 64 s been processed
000040: 2E 20 54 68 69 73 20 65 6E 73 75 72 65 73 20 74 . This ensures t
000050: 68 61 74 20 61 20 6B 69 63 6B 20 69 73 20 20 6E hat a kick is n
000060: 6F 74 0D 0A 20 20 20 20 20 20 20 6D 69 73 73 65 ot.. misse
000070: 64 20 69 66 20 69 74 20 6F 63 63 75 72 73 20 62 d if it occurs b
000080: 65 66 6F 72 65 20 74 68 65 20 70 72 65 76 69 6F efore the previo
000090: 75 73 20 6B 69 63 6B 20 68 61 73 20 62 65 65 6E us kick has been
0000A0: 20 20 70 72 6F 63 65 73 73 65 64 2E 20 20 54 68 processed. Th
0000B0: 65 0D 0A 20 20 20 20 20 20 20 65 76 65 6E 74 20 e.. event
0000C0: 63 6F 75 6E 74 20 69 73 20 6E 6F 72 6D 61 6C 6C count is normall
0000D0: 79 20 69 6E 63 72 65 6D 65 6E 74 65 64 20 20 77 y incremented w
0000E0: 68 65 6E 20 20 74 68 65 20 20 65 76 65 6E 74 20 hen the event
0000F0: 20 69 73 20 20 6B 69 63 6B 65 64 20 20 61 6E 64 is kicked and
000100: 0D 0A 20 20 20 20 20 20 20 64 65 63 72 65 6D 65 .. decreme
000110: 6E 74 65 64 20 77 68 65 6E 20 74 68 65 20 65 76 nted when the ev
000120: 65 6E 74 20 72 6F 75 74 69 6E 65 20 72 65 74 75 ent routine retu
000130: 72 6E 73 2E 20 48 6F 77 65 76 65 72 20 74 68 65 rns. However the
000140: 20 20 65 78 61 63 74 20 20 61 63 74 69 6F 6E 0D exact action.
000150: 0A 20 20 20 20 20 20 20 64 65 70 65 6E 64 73 20 . depends
000160: 6F 6E 20 74 68 65 20 65 76 65 6E 74 20 63 6F 75 on the event cou
000170: 6E 74 20 61 73 20 66 6F 6C 6C 6F 77 73 3A 0D 0A nt as follows:..
000180: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
000190: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
0001A0: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001C0: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 32 2E page 12.
0001D0: 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 2..............
0001E0: 20 20 20 20 20 20 20 20 20 20 49 6E 63 72 65 6D Increm
0001F0: 65 6E 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ent.....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 2D 31 32 38 2E 2E 2D 32 -128..-2
000010: 3A 20 54 68 65 20 63 6F 75 6E 74 20 69 73 20 6E : The count is n
000020: 6F 74 20 63 68 61 6E 67 65 64 20 2D 20 74 68 65 ot changed - the
000030: 20 65 76 65 6E 74 20 69 73 20 69 67 6E 6F 72 65 event is ignore
000040: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 d.....
000050: 20 20 20 20 20 20 2D 31 3A 20 20 20 20 20 20 20 -1:
000060: 54 68 69 73 20 76 61 6C 75 65 20 69 73 20 69 6C This value is il
000070: 6C 65 67 61 6C 2E 0D 0A 0D 0A 20 20 20 20 20 20 legal.....
000080: 20 20 20 20 20 20 20 20 20 20 30 3A 20 20 20 20 0:
000090: 20 20 20 20 54 68 65 20 63 6F 75 6E 74 20 69 73 The count is
0000A0: 20 69 6E 63 72 65 6D 65 6E 74 65 64 20 61 6E 64 incremented and
0000B0: 20 20 65 76 65 6E 74 20 20 70 72 6F 63 65 73 73 event process
0000C0: 69 6E 67 20 20 69 73 0D 0A 20 20 20 20 20 20 20 ing is..
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 20 20 20 69 6E 69 74 69 61 74 65 64 20 61 73 20 initiated as
0000F0: 72 65 71 75 69 72 65 64 20 62 79 20 74 68 65 20 required by the
000100: 65 76 65 6E 20 63 6C 61 73 73 2E 0D 0A 0D 0A 20 even class.....
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 1
000120: 2E 2E 31 32 36 3A 20 20 20 54 68 65 20 63 6F 75 ..126: The cou
000130: 6E 74 20 69 73 20 69 6E 63 72 65 6D 65 6E 74 65 nt is incremente
000140: 64 20 62 75 74 20 6E 6F 20 66 75 72 74 68 65 72 d but no further
000150: 20 20 61 63 74 69 6F 6E 20 20 69 73 0D 0A 20 20 action is..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 74 61 6B 65 6E 2E 20 54 taken. T
000180: 68 65 20 65 76 65 6E 74 20 69 73 20 77 61 69 74 he event is wait
000190: 69 6E 67 20 66 6F 72 20 61 20 70 72 65 76 69 6F ing for a previo
0001A0: 75 73 20 6B 69 63 6B 20 20 74 6F 0D 0A 20 20 20 us kick to..
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001C0: 20 20 20 20 20 20 20 62 65 20 70 72 6F 63 65 73 be proces
0001D0: 73 65 64 20 6F 72 20 66 6F 72 20 70 72 6F 63 65 sed or for proce
0001E0: 73 73 69 6E 67 20 74 6F 20 63 6F 6D 70 6C 65 74 ssing to complet
0001F0: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 e.....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 31 32 37 3A 20 20 20 20 20 20 127:
000010: 54 68 65 20 63 6F 75 6E 74 20 69 73 20 6E 6F 74 The count is not
000020: 20 63 68 61 6E 67 65 64 20 2D 20 74 68 65 20 6B changed - the k
000030: 69 63 6B 20 69 73 20 69 67 6E 6F 72 65 64 2E 0D ick is ignored..
000040: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 44 65 ... De
000050: 63 72 65 6D 65 6E 74 2E 0D 0A 0D 0A 20 20 20 20 crement.....
000060: 20 20 20 20 20 20 20 20 20 20 20 20 2D 31 32 38 -128
000070: 3A 20 20 20 20 20 54 68 69 73 20 76 61 6C 75 65 : This value
000080: 20 69 73 20 69 6C 6C 65 67 61 6C 2E 0D 0A 0D 0A is illegal.....
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 2D 31 32 37 2E 2E 30 3A 20 20 54 68 65 20 63 6F -127..0: The co
0000B0: 75 6E 74 20 69 73 20 6E 6F 74 20 20 63 68 61 6E unt is not chan
0000C0: 67 65 64 20 20 2D 20 20 74 68 65 20 20 65 76 65 ged - the eve
0000D0: 6E 74 20 20 68 61 73 20 20 62 65 65 6E 0D 0A 20 nt has been..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 64 69 73 61 72 6D 65 disarme
000100: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 d.....
000110: 20 20 20 20 20 20 31 3A 20 20 20 20 20 20 20 20 1:
000120: 54 68 65 20 63 6F 75 6E 74 20 69 73 20 64 65 63 The count is dec
000130: 72 65 6D 65 6E 74 65 64 20 61 6E 64 20 74 68 65 remented and the
000140: 20 20 65 76 65 6E 74 20 20 70 72 6F 63 65 73 73 event process
000150: 69 6E 67 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ing..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
000170: 73 20 74 65 72 6D 69 6E 61 74 65 64 2E 0D 0A 0D s terminated....
000180: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000190: 20 32 2E 2E 31 32 37 3A 20 20 20 54 68 65 20 63 2..127: The c
0001A0: 6F 75 6E 74 20 69 73 20 64 65 63 72 65 6D 65 6E ount is decremen
0001B0: 74 65 64 20 61 6E 64 20 74 68 65 20 20 65 76 65 ted and the eve
0001C0: 6E 74 20 20 70 72 6F 63 65 73 73 69 6E 67 0D 0A nt processing..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 20 20 69 73 20 63 6F 6E is con
0001F0: 74 69 6E 75 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 tinued.....
Size : 512 (Real : 512)
000000: 20 20 4E 6F 74 65 20 74 68 61 74 20 74 68 65 20 Note that the
000010: 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 6D 61 event routine ma
000020: 79 20 64 69 73 61 72 6D 20 69 74 73 65 6C 66 20 y disarm itself
000030: 20 62 79 20 20 73 65 74 74 69 6E 67 20 20 74 68 by setting th
000040: 65 20 20 63 6F 75 6E 74 0D 0A 20 20 20 20 20 20 e count..
000050: 20 6E 65 67 61 74 69 76 65 20 28 62 79 20 63 6F negative (by co
000060: 6E 76 65 6E 74 69 6F 6E 20 74 6F 20 2D 36 34 29 nvention to -64)
000070: 20 61 6E 64 20 20 63 61 6E 20 20 64 69 73 63 61 and can disca
000080: 72 64 20 20 75 6E 77 61 6E 74 65 64 20 20 6B 69 rd unwanted ki
000090: 63 6B 73 20 20 62 79 0D 0A 20 20 20 20 20 20 20 cks by..
0000A0: 73 65 74 74 69 6E 67 20 69 74 73 20 63 6F 75 6E setting its coun
0000B0: 74 20 74 6F 20 6F 6E 65 2E 0D 0A 0D 0A 20 20 20 t to one.....
0000C0: 20 20 20 20 31 32 2E 33 20 45 76 65 6E 74 20 52 12.3 Event R
0000D0: 6F 75 74 69 6E 65 2E 0D 0A 0D 0A 20 20 20 20 20 outine.....
0000E0: 20 20 49 6E 20 67 65 6E 65 72 61 6C 20 74 68 65 In general the
0000F0: 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 address of the
000100: 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 69 73 event routine is
000110: 20 67 69 76 65 6E 20 61 73 20 61 20 33 20 62 79 given as a 3 by
000120: 74 65 20 20 27 66 61 72 0D 0A 20 20 20 20 20 20 te 'far..
000130: 20 61 64 64 72 65 73 73 27 20 28 73 65 65 20 73 address' (see s
000140: 65 63 74 69 6F 6E 20 32 20 6F 6E 20 74 68 65 20 ection 2 on the
000150: 6D 65 6D 6F 72 79 20 6C 61 79 6F 75 74 29 2E 20 memory layout).
000160: 54 68 69 73 20 61 6C 6C 6F 77 73 20 74 68 65 20 This allows the
000170: 72 6F 75 74 69 6E 65 0D 0A 20 20 20 20 20 20 20 routine..
000180: 74 6F 20 62 65 20 6C 6F 63 61 74 65 64 20 69 6E to be located in
000190: 20 61 6E 79 20 52 4F 4D 20 6F 72 20 61 6E 79 77 any ROM or anyw
0001A0: 68 65 72 65 20 69 6E 20 52 41 4D 2E 0D 0A 0D 0A here in RAM.....
0001B0: 20 20 20 20 20 20 20 41 20 73 70 65 63 69 61 6C A special
0001C0: 20 66 6F 72 6D 20 6F 66 20 74 68 65 20 61 64 64 form of the add
0001D0: 72 65 73 73 20 63 6C 61 73 73 20 6D 61 79 20 73 ress class may s
0001E0: 70 65 63 69 66 79 20 74 68 65 20 72 6F 75 74 69 pecify the routi
0001F0: 6E 65 20 20 61 73 20 20 61 74 20 20 61 0D 0A 20 ne as at a..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 27 6E 65 61 72 20 61 64 64 72 'near addr
000010: 65 73 73 27 2E 20 54 68 69 73 20 64 6F 65 73 20 ess'. This does
000020: 6E 6F 74 20 63 68 61 6E 67 65 20 74 68 65 20 52 not change the R
000030: 4F 4D 20 73 74 61 74 65 20 61 6E 64 20 73 6F 20 OM state and so
000040: 74 68 65 20 20 72 6F 75 74 69 6E 65 0D 0A 20 20 the routine..
000050: 20 20 20 20 20 6D 75 73 74 20 62 65 20 6C 6F 63 must be loc
000060: 61 74 65 64 20 65 69 74 68 65 72 20 69 6E 20 74 ated either in t
000070: 68 65 20 6C 6F 77 65 72 20 52 4F 4D 20 6F 72 20 he lower ROM or
000080: 69 6E 20 74 68 65 20 63 65 6E 74 72 61 6C 20 33 in the central 3
000090: 32 4B 20 6F 66 20 20 52 41 4D 2E 0D 0A 20 20 20 2K of RAM...
0000A0: 20 20 20 20 54 68 65 20 52 4F 4D 20 73 65 6C 65 The ROM sele
0000B0: 63 74 20 62 79 74 65 20 6F 66 20 74 68 65 20 27 ct byte of the '
0000C0: 66 61 72 20 61 64 64 72 65 73 73 27 20 69 73 20 far address' is
0000D0: 69 67 6E 6F 72 65 64 20 61 6E 64 20 74 68 65 20 ignored and the
0000E0: 6F 74 68 65 72 20 20 74 77 6F 0D 0A 20 20 20 20 other two..
0000F0: 20 20 20 62 79 74 65 73 20 74 61 6B 65 6E 20 61 bytes taken a
000100: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 s the address of
000110: 20 74 68 65 20 72 6F 75 74 69 6E 65 2E 20 43 61 the routine. Ca
000120: 6C 6C 69 6E 67 20 20 61 20 20 27 6E 65 61 72 20 lling a 'near
000130: 20 61 64 64 72 65 73 73 27 0D 0A 20 20 20 20 20 address'..
000140: 20 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 event routine
000150: 72 65 71 75 69 72 65 73 20 61 20 6C 69 74 74 6C requires a littl
000160: 65 20 6C 65 73 73 20 77 6F 72 6B 20 74 68 61 6E e less work than
000170: 20 20 63 61 6C 6C 69 6E 67 20 20 61 20 20 66 75 calling a fu
000180: 6C 6C 20 20 27 66 61 72 0D 0A 20 20 20 20 20 20 ll 'far..
000190: 20 61 64 64 72 65 73 73 27 2C 20 61 6E 64 20 69 address', and i
0001A0: 73 20 75 73 65 64 20 62 79 20 74 68 65 20 66 69 s used by the fi
0001B0: 72 6D 77 61 72 65 20 69 74 73 65 6C 66 2E 0D 0A rmware itself...
0001C0: 0D 0A 20 20 20 20 20 20 20 31 32 2E 34 20 44 69 .. 12.4 Di
0001D0: 73 61 72 6D 69 6E 67 20 61 6E 64 20 52 65 69 6E sarming and Rein
0001E0: 69 74 69 61 6C 69 7A 69 6E 67 20 45 76 65 6E 74 itializing Event
0001F0: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 42 65 66 s..... Bef
Size : 512 (Real : 512)
000000: 6F 72 65 20 61 6E 20 65 76 65 6E 74 20 62 6C 6F ore an event blo
000010: 63 6B 20 6D 61 79 20 62 65 20 72 65 69 6E 69 74 ck may be reinit
000020: 69 61 6C 69 7A 65 64 20 74 68 65 20 65 76 65 6E ialized the even
000030: 74 20 6D 75 73 74 20 62 65 20 64 69 73 61 72 6D t must be disarm
000040: 65 64 2E 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ed... This
000050: 20 65 6E 73 75 72 65 73 20 74 68 61 74 20 74 68 ensures that th
000060: 65 20 65 76 65 6E 74 20 69 73 20 72 65 6D 6F 76 e event is remov
000070: 65 64 20 66 72 6F 6D 20 74 68 65 20 76 61 72 69 ed from the vari
000080: 6F 75 73 20 65 76 65 6E 74 20 20 70 65 6E 64 69 ous event pendi
000090: 6E 67 0D 0A 20 20 20 20 20 20 20 71 75 65 75 65 ng.. queue
0000A0: 73 20 61 6E 64 20 70 72 65 76 65 6E 74 73 20 74 s and prevents t
0000B0: 68 65 20 65 76 65 6E 74 20 71 75 65 75 65 73 20 he event queues
0000C0: 62 65 69 6E 67 20 63 6F 72 72 75 70 74 65 64 20 being corrupted
0000D0: 20 77 68 65 6E 20 20 74 68 65 20 20 65 76 65 6E when the even
0000E0: 74 0D 0A 20 20 20 20 20 20 20 62 6C 6F 63 6B 20 t.. block
0000F0: 69 73 20 69 6E 69 74 69 61 6C 69 7A 65 64 2E 20 is initialized.
000100: 41 6E 20 61 73 79 6E 63 68 72 6F 6E 6F 75 73 20 An asynchronous
000110: 65 76 65 6E 74 20 6D 75 73 74 20 6E 6F 74 20 62 event must not b
000120: 65 20 20 72 65 69 6E 69 74 69 61 6C 69 7A 65 64 e reinitialized
000130: 0D 0A 20 20 20 20 20 20 20 66 72 6F 6D 20 69 6E .. from in
000140: 73 69 64 65 20 69 74 73 20 61 73 79 6E 63 68 72 side its asynchr
000150: 6F 6E 6F 75 73 20 20 65 76 65 6E 74 20 20 72 6F onous event ro
000160: 75 74 69 6E 65 20 20 28 62 65 63 61 75 73 65 20 utine (because
000170: 20 69 6E 20 20 74 68 69 73 20 20 63 61 73 65 0D in this case.
000180: 0A 20 20 20 20 20 20 20 64 69 73 61 72 6D 69 6E . disarmin
000190: 67 20 74 68 65 20 65 76 65 6E 74 20 64 6F 65 73 g the event does
0001A0: 20 6E 6F 74 20 72 65 6D 6F 76 65 20 74 68 65 20 not remove the
0001B0: 65 76 65 6E 74 20 66 72 6F 6D 20 74 68 65 20 69 event from the i
0001C0: 6E 74 65 72 72 75 70 74 20 65 76 65 6E 74 0D 0A nterrupt event..
0001D0: 20 20 20 20 20 20 20 70 65 6E 64 69 6E 67 20 71 pending q
0001E0: 75 65 75 65 29 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ueue)...........
0001F0: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
Size : 512 (Real : 512)
000000: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
000010: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 70 61 67 65 20 31 32 2E 33 0D 0A 0D page 12.3...
000040: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
000050: 20 20 53 79 6E 63 68 72 6F 6E 6F 75 73 20 61 6E Synchronous an
000060: 64 20 61 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 d asynchronous e
000070: 76 65 6E 74 73 20 61 72 65 20 64 69 73 61 72 6D vents are disarm
000080: 65 64 20 69 6E 20 64 69 66 66 65 72 65 6E 74 20 ed in different
000090: 6D 61 6E 6E 65 72 73 2E 0D 0A 0D 0A 0D 0A 20 20 manners.......
0000A0: 20 20 20 20 20 20 20 20 20 61 2E 20 41 73 79 6E a. Asyn
0000B0: 63 68 72 6F 6E 6F 75 73 20 45 76 65 6E 74 73 2E chronous Events.
0000C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ......
0000D0: 20 41 6E 20 61 73 79 6E 63 68 72 6F 6E 6F 75 73 An asynchronous
0000E0: 20 65 76 65 6E 74 20 73 68 6F 75 6C 64 20 62 65 event should be
0000F0: 20 20 64 69 73 61 72 6D 65 64 20 20 62 79 20 20 disarmed by
000100: 63 61 6C 6C 69 6E 67 20 20 4B 4C 20 20 44 49 53 calling KL DIS
000110: 41 52 4D 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ARM..
000120: 45 56 45 4E 54 2E 20 54 68 69 73 20 73 65 74 73 EVENT. This sets
000130: 20 74 68 65 20 65 76 65 6E 74 20 63 6F 75 6E 74 the event count
000140: 20 74 6F 20 61 20 6E 65 67 61 74 69 76 65 20 76 to a negative v
000150: 61 6C 75 65 20 28 2D 36 34 29 61 6E 64 20 74 68 alue (-64)and th
000160: 75 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 70 us.. p
000170: 72 65 76 65 6E 74 73 20 6B 69 63 6B 73 20 68 61 revents kicks ha
000180: 76 69 6E 67 20 61 6E 79 20 65 66 66 65 63 74 2E ving any effect.
000190: 20 49 66 20 74 68 65 20 65 76 65 6E 74 20 69 73 If the event is
0001A0: 20 6F 6E 20 74 68 65 20 69 6E 74 65 72 72 75 70 on the interrup
0001B0: 74 0D 0A 20 20 20 20 20 20 20 20 20 20 20 65 76 t.. ev
0001C0: 65 6E 74 20 70 65 6E 64 69 6E 67 20 71 75 65 75 ent pending queu
0001D0: 65 20 74 68 65 6E 20 69 74 20 77 69 6C 6C 20 62 e then it will b
0001E0: 65 20 64 69 73 63 61 72 64 65 64 20 6F 6E 6C 79 e discarded only
0001F0: 20 77 68 65 6E 20 61 6E 20 61 74 74 65 6D 70 74 when an attempt
Size : 512 (Real : 512)
000000: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 69 73 20 .. is
000010: 6D 61 64 65 20 74 6F 20 70 72 6F 63 65 73 73 20 made to process
000020: 74 68 65 20 65 76 65 6E 74 20 61 6E 64 20 6E 6F the event and no
000030: 74 20 69 6D 6D 65 64 69 61 74 65 6C 79 20 74 68 t immediately th
000040: 61 74 20 74 68 65 20 65 76 65 6E 74 20 69 73 0D at the event is.
000050: 0A 20 20 20 20 20 20 20 20 20 20 20 64 69 73 61 . disa
000060: 72 6D 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 rmed.........
000070: 20 20 20 20 20 20 20 20 62 2E 20 53 79 6E 63 68 b. Synch
000080: 72 6F 6E 6F 75 73 20 45 76 65 6E 74 73 2E 0D 0A ronous Events...
000090: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 41 .... A
0000A0: 20 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 20 65 synchronous e
0000B0: 76 65 6E 74 20 20 73 68 6F 75 6C 64 20 20 62 65 vent should be
0000C0: 20 20 64 69 73 61 72 6D 65 64 20 20 62 79 20 20 disarmed by
0000D0: 63 61 6C 6C 69 6E 67 20 20 4B 4C 20 20 20 44 45 calling KL DE
0000E0: 4C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 53 59 L.. SY
0000F0: 4E 43 48 52 4F 4E 4F 55 53 2E 20 54 68 69 73 20 NCHRONOUS. This
000100: 73 65 74 73 20 74 68 65 20 65 76 65 6E 74 20 63 sets the event c
000110: 6F 75 6E 74 20 74 6F 20 61 20 6E 65 67 61 74 69 ount to a negati
000120: 76 65 20 20 76 61 6C 75 65 20 20 28 2D 36 34 29 ve value (-64)
000130: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 61 6E 64 .. and
000140: 20 72 65 6D 6F 76 65 73 20 74 68 65 20 65 76 65 removes the eve
000150: 6E 74 20 62 6C 6F 63 6B 20 66 72 6F 6D 20 20 74 nt block from t
000160: 68 65 20 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 he synchronous
000170: 20 65 76 65 6E 74 20 20 70 65 6E 64 69 6E 67 0D event pending.
000180: 0A 20 20 20 20 20 20 20 20 20 20 20 71 75 65 75 . queu
000190: 65 20 28 69 66 20 69 74 20 69 73 20 6F 6E 20 74 e (if it is on t
0001A0: 68 65 20 71 75 65 75 65 29 2E 0D 0A 0D 0A 0D 0A he queue).......
0001B0: 20 20 20 20 20 20 20 54 68 65 20 61 62 6F 76 65 The above
0001C0: 20 70 72 6F 63 65 64 75 72 65 73 20 70 72 65 76 procedures prev
0001D0: 65 6E 74 20 74 68 65 20 65 76 65 6E 74 20 62 65 ent the event be
0001E0: 69 6E 67 20 73 75 63 63 65 73 73 66 75 6C 6C 79 ing successfully
0001F0: 20 6B 69 63 6B 65 64 2C 20 74 68 65 79 0D 0A 20 kicked, they..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 64 6F 20 6E 6F 74 20 70 72 65 do not pre
000010: 76 65 6E 74 20 61 74 74 65 6D 70 74 73 20 62 65 vent attempts be
000020: 69 6E 67 20 6D 61 64 65 20 74 6F 20 6B 69 63 6B ing made to kick
000030: 20 74 68 65 20 65 76 65 6E 74 2E 20 41 20 20 66 the event. A f
000040: 61 73 74 20 20 74 69 63 6B 65 72 2C 0D 0A 20 20 ast ticker,..
000050: 20 20 20 20 20 66 72 61 6D 65 20 66 6C 79 62 61 frame flyba
000060: 63 6B 20 6F 72 20 74 69 63 6B 65 72 20 65 76 65 ck or ticker eve
000070: 6E 74 20 28 73 65 65 20 73 65 63 74 69 6F 6E 20 nt (see section
000080: 31 31 2E 35 29 20 77 69 6C 6C 20 73 74 69 6C 6C 11.5) will still
000090: 20 62 65 20 6F 6E 20 20 69 74 73 0D 0A 20 20 20 be on its..
0000A0: 20 20 20 20 61 70 70 72 6F 70 72 69 61 74 65 20 appropriate
0000B0: 71 75 65 75 65 20 61 6E 64 20 77 69 6C 6C 20 73 queue and will s
0000C0: 74 69 6C 6C 20 62 65 20 72 65 63 65 69 76 69 6E till be receivin
0000D0: 67 20 72 65 67 75 6C 61 72 20 61 74 74 65 6D 70 g regular attemp
0000E0: 74 73 20 74 6F 20 6B 69 63 6B 0D 0A 20 20 20 20 ts to kick..
0000F0: 20 20 20 69 74 2E 20 54 6F 20 70 72 65 76 65 6E it. To preven
000100: 74 20 74 69 6D 65 20 62 65 69 6E 67 20 77 61 73 t time being was
000110: 74 65 64 20 28 61 6E 64 20 74 68 65 20 20 73 79 ted (and the sy
000120: 73 74 65 6D 20 20 66 72 6F 6D 20 20 62 65 69 6E stem from bein
000130: 67 20 20 73 6C 6F 77 65 64 0D 0A 20 20 20 20 20 g slowed..
000140: 20 20 64 6F 77 6E 20 62 65 63 61 75 73 65 20 6F down because o
000150: 66 20 69 74 29 20 74 68 65 20 65 76 65 6E 74 20 f it) the event
000160: 73 68 6F 75 6C 64 20 62 65 20 20 72 65 6D 6F 76 should be remov
000170: 65 64 20 20 66 72 6F 6D 20 20 74 68 65 20 20 69 ed from the i
000180: 6E 74 65 72 72 75 70 74 0D 0A 20 20 20 20 20 20 nterrupt..
000190: 20 71 75 65 75 65 20 62 79 20 63 61 6C 6C 69 6E queue by callin
0001A0: 67 20 4B 4C 20 44 45 4C 20 46 41 53 54 20 54 49 g KL DEL FAST TI
0001B0: 43 4B 45 52 2C 20 20 4B 4C 20 20 44 45 4C 20 20 CKER, KL DEL
0001C0: 46 52 41 4D 45 20 20 46 4C 59 20 20 6F 72 20 20 FRAME FLY or
0001D0: 4B 4C 20 20 44 45 4C 0D 0A 20 20 20 20 20 20 20 KL DEL..
0001E0: 54 49 43 4B 45 52 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D TICKER..........
0001F0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
Size : 512 (Real : 512)
000000: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
000010: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ...............
000020: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
000030: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
000040: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 70 61 67 65 20 31 32 2E 34 0D 0A 1A 20 page 12.4...
000070: 20 68 61 6E 64 6C 69 6E 67 20 20 6F 66 20 20 69 handling of i
000080: 31 31 2E 35 29 20 77 69 6C 6C 20 73 74 69 6C 6C 11.5) will still
000090: 20 62 65 20 6F 6E 20 20 69 74 73 0D 0A 20 20 20 be on its..
0000A0: 20 20 20 20 61 70 70 72 6F 70 72 69 61 74 65 20 appropriate
0000B0: 71 75 65 75 65 20 61 6E 64 20 77 69 6C 6C 20 73 queue and will s
0000C0: 74 69 6C 6C 20 62 65 20 72 65 63 65 69 76 69 6E till be receivin
0000D0: 67 20 72 65 67 75 6C 61 72 20 61 74 74 65 6D 70 g regular attemp
0000E0: 74 73 20 74 6F 20 6B 69 63 6B 0D 0A 20 20 20 20 ts to kick..
0000F0: 20 20 20 69 74 2E 20 54 6F 20 70 72 65 76 65 6E it. To preven
000100: 74 20 74 69 6D 65 20 62 65 69 6E 67 20 77 61 73 t time being was
000110: 74 65 64 20 28 61 6E 64 20 74 68 65 20 20 73 79 ted (and the sy
000120: 73 74 65 6D 20 20 66 72 6F 6D 20 20 62 65 69 6E stem from bein
000130: 67 20 20 73 6C 6F 77 65 64 0D 0A 20 20 20 20 20 g slowed..
000140: 20 20 64 6F 77 6E 20 62 65 63 61 75 73 65 20 6F down because o
000150: 66 20 69 74 29 20 74 68 65 20 65 76 65 6E 74 20 f it) the event
000160: 73 68 6F 75 6C 64 20 62 65 20 20 72 65 6D 6F 76 should be remov
000170: 65 64 20 20 66 72 6F 6D 20 20 74 68 65 20 20 69 ed from the i
000180: 6E 74 65 72 72 75 70 74 0D 0A 20 20 20 20 20 20 nterrupt..
000190: 20 71 75 65 75 65 20 62 79 20 63 61 6C 6C 69 6E queue by callin
0001A0: 67 20 4B 4C 20 44 45 4C 20 46 41 53 54 20 54 49 g KL DEL FAST TI
0001B0: 43 4B 45 52 2C 20 20 4B 4C 20 20 44 45 4C 20 20 CKER, KL DEL
0001C0: 46 52 41 4D 45 20 20 46 4C 59 20 20 6F 72 20 20 FRAME FLY or
0001D0: 4B 4C 20 20 44 45 4C 0D 0A 20 20 20 20 20 20 20 KL DEL..
0001E0: 54 49 43 4B 45 52 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D TICKER..........
0001F0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
000010: 33 20 54 68 65 20 4D 61 63 68 69 6E 65 20 50 61 3 The Machine Pa
000020: 63 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ck..... Th
000030: 65 20 4D 61 63 68 69 6E 65 20 50 61 63 6B 20 64 e Machine Pack d
000040: 65 61 6C 73 20 77 69 74 68 20 74 68 65 20 6C 6F eals with the lo
000050: 77 20 6C 65 76 65 6C 20 64 72 69 76 69 6E 67 20 w level driving
000060: 6F 66 20 74 68 65 20 68 61 72 64 77 61 72 65 2E of the hardware.
000070: 20 20 49 74 0D 0A 20 20 20 20 20 20 20 61 6C 73 It.. als
000080: 6F 20 74 61 6C 6B 73 20 74 6F 20 74 68 65 20 43 o talks to the C
000090: 65 6E 74 72 6F 6E 69 63 73 20 70 6F 72 74 20 28 entronics port (
0000A0: 61 6E 64 20 68 65 6E 63 65 20 74 68 65 20 70 72 and hence the pr
0000B0: 69 6E 74 65 72 29 20 20 61 6E 64 20 20 69 73 20 inter) and is
0000C0: 20 69 6E 0D 0A 20 20 20 20 20 20 20 63 68 61 72 in.. char
0000D0: 67 65 20 6F 66 20 72 75 6E 6E 69 6E 67 20 27 6C ge of running 'l
0000E0: 6F 61 64 20 61 6E 64 20 67 6F 27 20 70 72 6F 67 oad and go' prog
0000F0: 72 61 6D 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rams.....
000100: 31 33 2E 31 20 48 61 72 64 77 61 72 65 20 49 6E 13.1 Hardware In
000110: 74 65 72 66 61 63 65 73 2E 0D 0A 0D 0A 20 20 20 terfaces.....
000120: 20 20 20 20 54 68 65 20 72 6F 75 74 69 6E 65 73 The routines
000130: 20 70 72 6F 76 69 64 65 64 20 66 6F 72 20 64 72 provided for dr
000140: 69 76 69 6E 67 20 74 68 65 20 68 61 72 64 77 61 iving the hardwa
000150: 72 65 20 61 72 65 20 6F 6E 6C 79 20 74 6F 20 62 re are only to b
000160: 65 20 75 73 65 64 20 20 62 79 0D 0A 20 20 20 20 e used by..
000170: 20 20 20 74 68 6F 73 65 20 77 68 6F 20 75 6E 64 those who und
000180: 65 72 73 74 61 6E 64 20 74 68 65 20 68 61 72 64 erstand the hard
000190: 77 61 72 65 20 61 6E 64 20 20 68 6F 77 20 20 74 ware and how t
0001A0: 68 65 20 20 66 69 72 6D 77 61 72 65 20 20 64 72 he firmware dr
0001B0: 69 76 65 73 20 20 74 68 65 0D 0A 20 20 20 20 20 ives the..
0001C0: 20 20 68 61 72 64 77 61 72 65 2E 20 54 68 65 20 hardware. The
0001D0: 75 73 65 72 20 73 68 6F 75 6C 64 20 6E 6F 74 20 user should not
0001E0: 61 63 63 65 73 73 20 20 74 68 65 20 20 68 61 72 access the har
0001F0: 64 77 61 72 65 20 20 64 69 72 65 63 74 6C 79 20 dware directly
Size : 512 (Real : 512)
000000: 20 77 68 65 6E 20 20 61 0D 0A 20 20 20 20 20 20 when a..
000010: 20 4D 61 63 68 69 6E 65 20 50 61 63 6B 20 72 6F Machine Pack ro
000020: 75 74 69 6E 65 20 69 73 20 70 72 6F 76 69 64 65 utine is provide
000030: 64 20 66 6F 72 20 74 68 69 73 20 70 75 72 70 6F d for this purpo
000040: 73 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4F 66 se..... Of
000050: 74 65 6E 20 74 68 65 72 65 20 61 72 65 20 68 69 ten there are hi
000060: 67 68 65 72 20 6C 65 76 65 6C 20 72 6F 75 74 69 gher level routi
000070: 6E 65 73 20 74 68 61 74 20 61 63 63 6F 6D 70 6C nes that accompl
000080: 69 73 68 20 74 68 65 20 73 61 6D 65 20 65 66 66 ish the same eff
000090: 65 63 74 73 0D 0A 20 20 20 20 20 20 20 62 75 74 ects.. but
0000A0: 20 61 6C 73 6F 20 6B 65 65 70 20 74 68 65 20 66 also keep the f
0000B0: 69 72 6D 77 61 72 65 20 69 6E 66 6F 72 6D 65 64 irmware informed
0000C0: 20 6F 66 20 20 74 68 65 20 20 63 75 72 72 65 6E of the curren
0000D0: 74 20 20 73 65 74 74 69 6E 67 73 2E 20 20 57 68 t settings. Wh
0000E0: 65 72 65 0D 0A 20 20 20 20 20 20 20 70 6F 73 73 ere.. poss
0000F0: 69 62 6C 65 20 74 68 65 73 65 20 68 69 67 68 65 ible these highe
000100: 72 20 6C 65 76 65 6C 20 72 6F 75 74 69 6E 65 73 r level routines
000110: 20 73 68 6F 75 6C 64 20 62 65 20 75 73 65 64 20 should be used
000120: 20 61 6E 64 20 20 74 68 65 20 20 4D 61 63 68 69 and the Machi
000130: 6E 65 0D 0A 20 20 20 20 20 20 20 50 61 63 6B 20 ne.. Pack
000140: 72 6F 75 74 69 6E 65 20 61 76 6F 69 64 65 64 2E routine avoided.
000150: 20 55 73 69 6E 67 20 74 68 65 20 4D 61 63 68 69 Using the Machi
000160: 6E 65 20 50 61 63 6B 20 72 6F 75 74 69 6E 65 73 ne Pack routines
000170: 20 20 6D 61 79 20 20 63 61 75 73 65 20 20 74 68 may cause th
000180: 65 0D 0A 20 20 20 20 20 20 20 66 69 72 6D 77 61 e.. firmwa
000190: 72 65 20 74 6F 20 6D 61 6B 65 20 65 72 72 6F 6E re to make erron
0001A0: 65 6F 75 73 20 61 73 73 75 6D 70 74 69 6F 6E 73 eous assumptions
0001B0: 20 61 62 6F 75 74 20 74 68 65 20 63 75 72 72 65 about the curre
0001C0: 6E 74 20 73 65 74 74 69 6E 67 73 20 20 61 6E 64 nt settings and
0001D0: 0D 0A 20 20 20 20 20 20 20 6D 61 79 20 63 61 75 .. may cau
0001E0: 73 65 20 69 74 20 74 6F 20 67 6F 20 77 72 6F 6E se it to go wron
0001F0: 67 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 g..... The
Size : 512 (Real : 512)
000000: 20 4D 61 63 68 69 6E 65 20 50 61 63 6B 20 6D 61 Machine Pack ma
000010: 6B 65 73 20 63 65 72 74 61 69 6E 20 61 73 73 75 kes certain assu
000020: 6D 70 74 69 6F 6E 73 20 20 61 62 6F 75 74 20 20 mptions about
000030: 74 68 65 20 20 73 74 61 74 65 20 20 6F 66 20 20 the state of
000040: 74 68 65 0D 0A 20 20 20 20 20 20 20 68 61 72 64 the.. hard
000050: 77 61 72 65 20 77 68 65 6E 20 69 74 20 61 63 63 ware when it acc
000060: 65 73 73 65 73 20 69 74 2E 20 49 6E 20 70 61 72 esses it. In par
000070: 74 69 63 75 6C 61 72 2C 20 50 50 49 20 70 6F 72 ticular, PPI por
000080: 74 20 41 20 69 73 20 61 73 73 75 6D 65 64 20 20 t A is assumed
000090: 74 6F 0D 0A 20 20 20 20 20 20 20 62 65 20 69 6E to.. be in
0000A0: 20 6F 75 74 70 75 74 20 6D 6F 64 65 20 61 6E 64 output mode and
0000B0: 20 74 68 65 20 73 6F 75 6E 64 20 63 68 69 70 2C the sound chip,
0000C0: 20 55 4C 41 20 43 52 54 43 20 61 6E 64 20 43 65 ULA CRTC and Ce
0000D0: 6E 74 72 6F 6E 69 63 73 20 70 6F 72 74 20 61 72 ntronics port ar
0000E0: 65 0D 0A 20 20 20 20 20 20 20 61 73 73 75 6D 65 e.. assume
0000F0: 64 20 74 6F 20 62 65 20 69 6E 61 63 74 69 76 65 d to be inactive
000100: 3B 20 74 68 61 74 20 69 73 2C 20 6E 6F 74 20 68 ; that is, not h
000110: 61 6C 66 77 61 79 20 74 68 72 6F 75 67 68 20 73 alfway through s
000120: 65 74 74 69 6E 67 20 20 61 20 20 76 61 6C 75 65 etting a value
000130: 0D 0A 20 20 20 20 20 20 20 69 6E 74 6F 20 61 20 .. into a
000140: 63 68 69 70 20 72 65 67 69 73 74 65 72 2E 20 49 chip register. I
000150: 74 20 20 69 73 20 20 75 73 75 61 6C 6C 79 20 20 t is usually
000160: 65 73 73 65 6E 74 69 61 6C 20 20 74 68 61 74 20 essential that
000170: 20 69 6E 74 65 72 72 75 70 74 73 20 20 62 65 0D interrupts be.
000180: 0A 20 20 20 20 20 20 20 64 69 73 61 62 6C 65 64 . disabled
000190: 20 77 68 65 6E 20 61 63 63 65 73 73 69 6E 67 20 when accessing
0001A0: 74 68 65 20 68 61 72 64 77 61 72 65 20 64 69 72 the hardware dir
0001B0: 65 63 74 6C 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 ectly.......
0001C0: 20 20 20 54 68 65 72 65 20 61 72 65 20 66 6F 75 There are fou
0001D0: 72 20 6D 61 69 6E 20 61 72 65 61 73 20 6F 66 20 r main areas of
0001E0: 74 68 65 20 68 61 72 64 77 61 72 65 20 74 68 61 the hardware tha
0001F0: 74 20 74 68 65 20 4D 61 63 68 69 6E 65 20 50 61 t the Machine Pa
Size : 512 (Real : 512)
000000: 63 6B 20 20 64 65 61 6C 73 0D 0A 20 20 20 20 20 ck deals..
000010: 20 20 77 69 74 68 3A 0D 0A 0D 0A 0D 0A 20 20 20 with:......
000020: 20 20 20 20 61 2E 20 54 68 65 20 73 63 72 65 65 a. The scree
000030: 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 n.......
000040: 20 20 20 54 68 65 72 65 20 61 72 65 20 74 68 72 There are thr
000050: 65 65 20 61 73 70 65 63 74 73 20 6F 66 20 74 68 ee aspects of th
000060: 65 20 73 63 72 65 65 6E 20 20 64 69 73 70 6C 61 e screen displa
000070: 79 20 20 74 68 61 74 20 20 63 61 6E 20 20 62 65 y that can be
000080: 20 20 73 65 74 0D 0A 20 20 20 20 20 20 20 20 20 set..
000090: 20 20 75 73 69 6E 67 20 74 68 65 20 4D 61 63 68 using the Mach
0000A0: 69 6E 65 20 50 61 63 6B 2E 20 54 68 65 73 65 20 ine Pack. These
0000B0: 61 72 65 20 74 68 65 20 73 63 72 65 65 6E 20 6D are the screen m
0000C0: 6F 64 65 20 28 73 65 74 20 62 79 20 20 63 61 6C ode (set by cal
0000D0: 6C 69 6E 67 0D 0A 20 20 20 20 20 20 20 20 20 20 ling..
0000E0: 20 4D 43 20 53 45 54 20 4D 4F 44 45 29 20 61 6E MC SET MODE) an
0000F0: 64 20 74 68 65 20 73 63 72 65 65 6E 20 62 61 73 d the screen bas
000100: 65 20 61 6E 64 20 6F 66 66 73 65 74 20 28 73 65 e and offset (se
000110: 74 20 20 62 79 20 20 63 61 6C 6C 69 6E 67 20 20 t by calling
000120: 28 4D 43 0D 0A 20 20 20 20 20 20 20 20 20 20 20 (MC..
000130: 53 45 54 20 4F 46 46 53 45 54 29 2E 0D 0A 0D 0A SET OFFSET).....
000140: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 54 68 65 .. The
000150: 20 73 63 72 65 65 6E 20 6D 6F 64 65 20 73 65 74 screen mode set
000160: 73 20 68 6F 77 20 6D 61 6E 79 20 70 69 78 65 6C s how many pixel
000170: 73 20 61 72 65 20 64 69 73 70 6C 61 79 65 64 20 s are displayed
000180: 6F 6E 20 20 74 68 65 20 20 73 63 72 65 65 6E 0D on the screen.
000190: 0A 20 20 20 20 20 20 20 20 20 20 20 61 6E 64 20 . and
0001A0: 68 6F 77 20 6D 61 6E 79 20 69 6E 6B 73 20 6D 61 how many inks ma
0001B0: 79 20 62 65 20 75 73 65 64 20 61 73 20 66 6F 6C y be used as fol
0001C0: 6C 6F 77 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 lows:......
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 4D 6F 64 65 20 20 20 20 20 20 52 Mode R
0001F0: 65 73 6F 6C 75 74 69 6F 6E 20 20 20 20 20 20 20 esolution
Size : 512 (Real : 512)
000000: 20 20 20 49 6E 6B 73 0D 0A 20 20 20 20 20 20 20 Inks..
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 30 20 20 20 20 20 20 20 20 20 31 36 30 0 160
000030: 20 78 20 32 30 30 20 20 20 20 20 20 20 20 20 20 x 200
000040: 20 31 36 0D 0A 20 20 20 20 20 20 20 20 20 20 20 16..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 1
000060: 20 20 20 20 20 20 20 20 20 33 32 30 20 78 20 32 320 x 2
000070: 30 30 20 20 20 20 20 20 20 20 20 20 20 34 0D 0A 00 4..
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 20 20 20 20 20 20 20 20 20 20 32 20 20 20 20 20 2
0000A0: 20 20 20 20 36 34 30 20 78 20 32 30 30 20 20 20 640 x 200
0000B0: 20 20 20 20 20 20 20 20 32 0D 0A 0D 0A 0D 0A 20 2......
0000C0: 20 20 20 20 20 20 20 20 20 20 54 68 65 20 73 63 The sc
0000D0: 72 65 65 6E 20 62 61 73 65 20 73 65 74 73 20 77 reen base sets w
0000E0: 68 69 63 68 20 31 36 4B 20 62 6C 6F 63 6B 20 6F hich 16K block o
0000F0: 66 20 6D 65 6D 6F 72 79 20 20 69 73 20 20 75 73 f memory is us
000100: 65 64 20 20 66 6F 72 20 20 74 68 65 0D 0A 20 20 ed for the..
000110: 20 20 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 screen
000120: 6D 65 6D 6F 72 79 2E 20 54 68 65 6F 72 65 74 69 memory. Theoreti
000130: 63 61 6C 6C 79 2C 20 61 6E 79 20 6F 66 20 23 30 cally, any of #0
000140: 30 30 30 2C 20 23 34 30 30 30 2C 20 23 38 30 30 000, #4000, #800
000150: 30 20 6F 72 20 20 23 43 30 30 30 0D 0A 20 20 20 0 or #C000..
000160: 20 20 20 20 20 20 20 20 63 6F 75 6C 64 20 62 65 could be
000170: 20 75 73 65 64 20 62 75 74 2C 20 69 6E 20 70 72 used but, in pr
000180: 61 63 74 69 63 65 2C 20 20 6F 74 68 65 72 20 20 actice, other
000190: 63 6F 6E 73 69 64 65 72 61 74 69 6F 6E 73 20 20 considerations
0001A0: 6D 65 61 6E 20 20 74 68 61 74 0D 0A 20 20 20 20 mean that..
0001B0: 20 20 20 20 20 20 20 6F 6E 6C 79 20 23 34 30 30 only #400
0001C0: 30 20 61 6E 64 20 23 43 30 30 30 20 6D 61 79 20 0 and #C000 may
0001D0: 62 65 20 75 73 65 66 75 6C 2E 0D 0A 0D 0A 0D 0A be useful.......
0001E0: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
0001F0: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
Size : 512 (Real : 512)
000000: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 70 61 67 65 20 31 33 2E 31 0D 0A 0D page 13.1...
000030: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
000040: 20 20 20 20 20 20 54 68 65 20 73 63 72 65 65 6E The screen
000050: 20 6F 66 66 73 65 74 20 73 65 74 73 20 77 68 69 offset sets whi
000060: 63 68 20 62 79 74 65 20 69 6E 20 74 68 65 20 73 ch byte in the s
000070: 63 72 65 65 6E 20 6D 65 6D 6F 72 79 20 20 69 73 creen memory is
000080: 20 20 74 6F 20 20 62 65 0D 0A 20 20 20 20 20 20 to be..
000090: 20 20 20 20 20 64 69 73 70 6C 61 79 65 64 20 66 displayed f
0000A0: 69 72 73 74 2E 20 43 68 61 6E 67 69 6E 67 20 74 irst. Changing t
0000B0: 68 65 20 73 63 72 65 65 6E 20 6F 66 66 73 65 74 he screen offset
0000C0: 20 77 69 6C 6C 20 6D 6F 76 65 20 74 68 65 20 63 will move the c
0000D0: 6F 6E 74 65 6E 74 73 0D 0A 20 20 20 20 20 20 20 ontents..
0000E0: 20 20 20 20 6F 66 20 74 68 65 20 73 63 72 65 65 of the scree
0000F0: 6E 20 69 6E 20 6F 6E 65 20 67 6F 2E 20 54 68 69 n in one go. Thi
000100: 73 20 69 73 20 75 73 65 64 20 66 6F 72 20 72 6F s is used for ro
000110: 6C 6C 69 6E 67 20 74 68 65 20 73 63 72 65 65 6E lling the screen
000120: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
000130: 41 20 66 75 6C 6C 65 72 20 64 65 73 63 72 69 70 A fuller descrip
000140: 74 69 6F 6E 20 6F 66 20 74 68 65 20 73 63 72 65 tion of the scre
000150: 65 6E 20 6C 61 79 6F 75 74 20 61 6E 64 20 69 74 en layout and it
000160: 73 20 72 65 6C 61 74 69 6F 6E 73 68 69 70 20 20 s relationship
000170: 74 6F 0D 0A 20 20 20 20 20 20 20 20 20 20 20 74 to.. t
000180: 68 65 73 65 20 61 73 70 65 63 74 73 20 63 61 6E hese aspects can
000190: 20 62 65 20 66 6F 75 6E 64 20 69 6E 20 73 65 63 be found in sec
0001A0: 74 69 6F 6E 20 36 20 6F 6E 20 74 68 65 20 53 63 tion 6 on the Sc
0001B0: 72 65 65 6E 20 50 61 63 6B 2E 0D 0A 0D 0A 20 20 reen Pack.....
0001C0: 20 20 20 20 20 20 20 20 20 49 66 20 61 64 64 72 If addr
0001D0: 65 73 73 65 73 20 61 72 65 20 74 6F 20 62 65 20 esses are to be
0001E0: 72 65 61 64 20 62 61 63 6B 20 66 72 6F 6D 20 20 read back from
0001F0: 74 68 65 20 20 43 52 54 20 20 63 6F 6E 74 72 6F the CRT contro
Size : 512 (Real : 512)
000000: 6C 6C 65 72 20 20 63 68 69 70 2C 0D 0A 20 20 20 ller chip,..
000010: 20 20 20 20 20 20 20 20 77 68 65 6E 20 75 73 69 when usi
000020: 6E 67 20 61 20 6C 69 67 68 74 20 70 65 6E 20 66 ng a light pen f
000030: 6F 72 20 69 6E 73 74 61 6E 63 65 2C 20 74 68 65 or instance, the
000040: 6E 20 20 63 61 72 65 66 75 6C 20 20 69 6E 73 70 n careful insp
000050: 65 63 74 69 6F 6E 20 20 6F 66 0D 0A 0D 0A 20 20 ection of....
000060: 20 20 20 20 20 20 20 20 20 74 68 65 20 77 61 79 the way
000070: 20 74 68 65 20 73 63 72 65 65 6E 20 6D 65 6D 6F the screen memo
000080: 72 79 20 69 73 20 61 64 64 72 65 73 73 65 64 20 ry is addressed
000090: 77 69 6C 6C 20 62 65 20 6E 65 65 64 65 64 20 74 will be needed t
0000A0: 6F 20 74 72 61 6E 73 6C 61 74 65 0D 0A 20 20 20 o translate..
0000B0: 20 20 20 20 20 20 20 20 74 68 65 20 73 63 72 65 the scre
0000C0: 65 6E 20 61 64 64 72 65 73 73 20 72 65 61 64 20 en address read
0000D0: 66 72 6F 6D 20 74 68 65 20 63 68 69 70 20 74 6F from the chip to
0000E0: 20 74 68 65 20 20 61 63 74 75 61 6C 20 20 70 6F the actual po
0000F0: 73 69 74 69 6F 6E 20 20 6F 6E 0D 0A 20 20 20 20 sition on..
000100: 20 20 20 20 20 20 20 74 68 65 20 73 63 72 65 65 the scree
000110: 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 n.....
000120: 20 54 68 65 20 4D 61 63 68 69 6E 65 20 50 61 63 The Machine Pac
000130: 6B 20 61 6C 73 6F 20 70 72 6F 76 69 64 65 73 20 k also provides
000140: 61 20 72 6F 75 74 69 6E 65 20 28 4D 43 20 57 41 a routine (MC WA
000150: 49 54 20 46 4C 59 42 41 43 4B 29 20 74 6F 20 77 IT FLYBACK) to w
000160: 61 69 74 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ait..
000170: 75 6E 74 69 6C 20 66 72 61 6D 65 20 66 6C 79 62 until frame flyb
000180: 61 63 6B 20 6F 63 63 75 72 73 20 28 74 68 65 20 ack occurs (the
000190: 20 73 74 61 72 74 20 20 6F 66 20 20 74 68 65 20 start of the
0001A0: 20 76 65 72 74 69 63 61 6C 20 20 72 65 74 72 61 vertical retra
0001B0: 63 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 70 ce.. p
0001C0: 65 72 69 6F 64 29 2E 20 54 68 69 73 20 6D 61 79 eriod). This may
0001D0: 20 62 65 20 75 73 65 64 20 74 6F 20 65 6E 73 75 be used to ensu
0001E0: 72 65 20 74 68 61 74 20 6F 70 65 72 61 74 69 6F re that operatio
0001F0: 6E 73 20 6F 6E 20 74 68 65 20 20 73 63 72 65 65 ns on the scree
Size : 512 (Real : 512)
000000: 6E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 61 72 n.. ar
000010: 65 20 70 65 72 66 6F 72 6D 65 64 20 77 69 74 68 e performed with
000020: 20 61 73 20 6C 69 74 74 6C 65 20 64 69 73 72 75 as little disru
000030: 70 74 69 6F 6E 20 20 61 73 20 20 69 73 20 20 70 ption as is p
000040: 6F 73 73 69 62 6C 65 20 20 74 6F 20 20 74 68 65 ossible to the
000050: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 70 69 63 .. pic
000060: 74 75 72 65 20 6F 6E 20 74 68 65 20 6D 6F 6E 69 ture on the moni
000070: 74 6F 72 20 73 69 6E 63 65 20 6E 6F 20 70 69 63 tor since no pic
000080: 74 75 72 65 20 69 73 20 67 65 6E 65 72 61 74 65 ture is generate
000090: 64 20 20 64 75 72 69 6E 67 20 20 74 68 69 73 0D d during this.
0000A0: 0A 20 20 20 20 20 20 20 20 20 20 20 70 65 72 69 . peri
0000B0: 6F 64 2E 20 41 73 20 61 6E 20 61 6C 74 65 72 6E od. As an altern
0000C0: 61 74 69 76 65 20 74 6F 20 77 61 69 74 69 6E 67 ative to waiting
0000D0: 20 66 6F 72 20 66 72 61 6D 65 20 66 6C 79 62 61 for frame flyba
0000E0: 63 6B 20 20 65 78 70 6C 69 63 69 74 6C 79 0D 0A ck explicitly..
0000F0: 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 75 the u
000100: 73 65 72 20 73 68 6F 75 6C 64 20 63 6F 6E 73 69 ser should consi
000110: 64 65 72 20 73 65 74 74 69 6E 67 20 20 75 70 20 der setting up
000120: 20 61 20 20 66 72 61 6D 65 20 20 66 6C 79 62 61 a frame flyba
000130: 63 6B 20 20 65 76 65 6E 74 20 20 61 73 0D 0A 20 ck event as..
000140: 20 20 20 20 20 20 20 20 20 20 64 65 73 63 72 69 descri
000150: 62 65 64 20 69 6E 20 73 65 63 74 69 6F 6E 20 31 bed in section 1
000160: 31 2E 35 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 1.5.....
000170: 20 20 20 54 68 65 20 20 76 65 72 74 69 63 61 6C The vertical
000180: 20 20 72 65 74 72 61 63 65 20 20 70 65 72 69 6F retrace perio
000190: 64 20 20 69 73 20 20 6E 6F 74 20 20 76 65 72 79 d is not very
0001A0: 20 20 6C 6F 6E 67 2E 20 20 46 75 72 74 68 65 72 long. Further
0001B0: 6D 6F 72 65 2C 0D 0A 20 20 20 20 20 20 20 20 20 more,..
0001C0: 20 20 61 70 70 72 6F 78 69 6D 61 74 65 6C 79 20 approximately
0001D0: 31 30 30 20 6D 69 63 72 6F 73 65 63 6F 6E 64 73 100 microseconds
0001E0: 20 66 72 6F 6D 20 69 74 73 20 73 74 61 72 74 2C from its start,
0001F0: 20 20 61 20 20 74 69 6D 65 20 20 69 6E 74 65 72 a time inter
Size : 512 (Real : 512)
000000: 72 75 70 74 0D 0A 20 20 20 20 20 20 20 20 20 20 rupt..
000010: 20 6F 63 63 75 72 73 20 74 68 61 74 20 77 69 6C occurs that wil
000020: 6C 20 63 61 75 73 65 20 74 68 65 20 66 72 61 6D l cause the fram
000030: 65 20 66 6C 79 62 61 63 6B 20 65 76 65 6E 74 73 e flyback events
000040: 20 20 74 6F 20 20 62 65 20 20 70 72 6F 63 65 73 to be proces
000050: 73 65 64 0D 0A 20 20 20 20 20 20 20 20 20 20 20 sed..
000060: 28 73 65 65 20 73 65 63 74 69 6F 6E 20 31 31 29 (see section 11)
000070: 2E 20 54 68 65 73 65 20 6D 61 79 20 74 61 6B 65 . These may take
000080: 20 61 20 73 69 67 6E 69 66 69 63 61 6E 74 20 6C a significant l
000090: 65 6E 67 74 68 20 6F 66 20 74 69 6D 65 20 20 6F ength of time o
0000A0: 75 74 0D 0A 20 20 20 20 20 20 20 20 20 20 20 6F ut.. o
0000B0: 66 20 74 68 65 20 72 65 74 72 61 63 65 20 70 65 f the retrace pe
0000C0: 72 69 6F 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 riod.....
0000D0: 62 2E 20 54 68 65 20 69 6E 6B 73 2E 0D 0A 20 20 b. The inks...
0000E0: 20 20 20 20 20 20 20 20 20 54 68 65 20 4D 61 63 The Mac
0000F0: 68 69 6E 65 20 50 61 63 6B 20 64 65 61 6C 73 20 hine Pack deals
000100: 77 69 74 68 20 73 65 74 74 69 6E 67 20 74 68 65 with setting the
000110: 20 63 6F 6C 6F 75 72 73 20 6F 66 20 69 6E 6B 73 colours of inks
000120: 2E 20 54 68 65 72 65 20 20 69 73 0D 0A 20 20 20 . There is..
000130: 20 20 20 20 20 20 20 20 61 20 66 75 6C 6C 65 72 a fuller
000140: 20 65 78 70 6C 61 6E 61 74 69 6F 6E 20 6F 66 20 explanation of
000150: 74 68 65 20 72 65 6C 61 74 69 6F 6E 73 68 69 70 the relationship
000160: 20 62 65 74 77 65 65 6E 20 69 6E 6B 73 20 61 6E between inks an
000170: 64 20 20 63 6F 6C 6F 75 72 73 0D 0A 20 20 20 20 d colours..
000180: 20 20 20 20 20 20 20 69 6E 20 73 65 63 74 69 6F in sectio
000190: 6E 20 36 2E 32 2E 20 42 72 69 65 66 6C 79 2C 20 n 6.2. Briefly,
0001A0: 74 68 65 20 63 6F 6C 6F 75 72 20 66 6F 72 20 65 the colour for e
0001B0: 61 63 68 20 69 6E 6B 20 20 61 6E 64 20 20 74 68 ach ink and th
0001C0: 65 20 20 62 6F 72 64 65 72 0D 0A 20 20 20 20 20 e border..
0001D0: 20 20 20 20 20 20 63 61 6E 20 62 65 20 73 70 65 can be spe
0001E0: 63 69 66 69 65 64 20 69 6E 64 65 70 65 6E 64 65 cified independe
0001F0: 6E 74 6C 79 20 61 6E 64 20 63 68 61 6E 67 65 64 ntly and changed
Size : 512 (Real : 512)
000000: 20 61 74 20 77 69 6C 6C 2E 20 4E 6F 74 65 2C 20 at will. Note,
000010: 68 6F 77 65 76 65 72 2C 0D 0A 20 20 20 20 20 20 however,..
000020: 20 20 20 20 20 74 68 61 74 20 74 68 65 20 4D 61 that the Ma
000030: 63 68 69 6E 65 20 50 61 63 6B 20 64 65 61 6C 73 chine Pack deals
000040: 20 77 69 74 68 20 74 68 65 20 68 61 72 64 77 61 with the hardwa
000050: 72 65 20 20 72 65 70 72 65 73 65 6E 74 61 74 69 re representati
000060: 6F 6E 73 20 20 6F 66 0D 0A 20 20 20 20 20 20 20 ons of..
000070: 20 20 20 20 63 6F 6C 6F 75 72 73 20 61 6E 64 20 colours and
000080: 6E 6F 74 20 74 68 65 20 67 72 65 79 20 73 63 61 not the grey sca
000090: 6C 65 20 63 6F 6C 6F 75 72 73 20 74 68 61 74 20 le colours that
0000A0: 74 68 65 20 53 63 72 65 65 6E 20 20 50 61 63 6B the Screen Pack
0000B0: 20 20 75 73 65 73 0D 0A 20 20 20 20 20 20 20 20 uses..
0000C0: 20 20 20 61 6E 64 20 61 6C 73 6F 20 74 68 61 74 and also that
0000D0: 20 61 6E 20 69 6E 6B 20 6D 61 79 20 6F 6E 6C 79 an ink may only
0000E0: 20 62 65 20 73 65 74 20 74 6F 20 6F 6E 65 20 63 be set to one c
0000F0: 6F 6C 6F 75 72 2C 20 20 74 68 65 20 20 66 6C 61 olour, the fla
000100: 73 68 69 6E 67 0D 0A 20 20 20 20 20 20 20 20 20 shing..
000110: 20 20 69 6E 6B 73 20 61 72 65 20 6D 61 64 65 20 inks are made
000120: 62 79 20 74 68 65 20 53 63 72 65 65 6E 20 50 61 by the Screen Pa
000130: 63 6B 20 73 65 74 74 69 6E 67 20 74 77 6F 20 63 ck setting two c
000140: 6F 6C 6F 75 72 73 20 61 6C 74 65 72 6E 61 74 65 olours alternate
000150: 6C 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ly.....
000160: 20 20 54 77 6F 20 72 6F 75 74 69 6E 65 73 20 61 Two routines a
000170: 72 65 20 70 72 6F 76 69 64 65 64 20 66 6F 72 20 re provided for
000180: 73 65 74 74 69 6E 67 20 74 68 65 20 63 6F 6C 6F setting the colo
000190: 75 72 73 20 6F 66 20 69 6E 6B 73 2E 20 4D 43 20 urs of inks. MC
0001A0: 20 53 45 54 0D 0A 20 20 20 20 20 20 20 20 20 20 SET..
0001B0: 20 49 4E 4B 53 20 61 6C 6C 6F 77 73 20 74 68 65 INKS allows the
0001C0: 20 63 6F 6C 6F 75 72 73 20 6F 66 20 61 6C 6C 20 colours of all
0001D0: 31 36 20 69 6E 6B 73 20 61 6E 64 20 74 68 65 20 16 inks and the
0001E0: 62 6F 72 64 65 72 20 20 74 6F 20 20 62 65 20 20 border to be
0001F0: 73 65 74 0D 0A 20 20 20 20 20 20 20 20 20 20 20 set..
Size : 512 (Real : 512)
000000: 28 61 6C 74 68 6F 75 67 68 20 6E 6F 74 20 61 6C (although not al
000010: 6C 20 6F 66 20 74 68 65 20 69 6E 6B 73 20 6D 61 l of the inks ma
000020: 79 20 62 65 20 76 69 73 69 62 6C 65 20 6F 6E 20 y be visible on
000030: 74 68 65 20 73 63 72 65 65 6E 20 69 6E 20 20 74 the screen in t
000040: 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 63 he.. c
000050: 75 72 72 65 6E 74 20 6D 6F 64 65 29 2E 20 4D 43 urrent mode). MC
000060: 20 43 4C 45 41 52 20 49 4E 4B 53 20 73 65 74 73 CLEAR INKS sets
000070: 20 74 68 65 20 63 6F 6C 6F 75 72 20 6F 66 20 74 the colour of t
000080: 68 65 20 62 6F 72 64 65 72 20 69 6E 6B 20 61 6E he border ink an
000090: 64 0D 0A 20 20 20 20 20 20 20 20 20 20 20 73 65 d.. se
0000A0: 74 73 20 61 6C 6C 20 31 36 20 69 6E 6B 73 20 74 ts all 16 inks t
0000B0: 6F 20 74 68 65 20 73 61 6D 65 20 20 63 6F 6C 6F o the same colo
0000C0: 75 72 2E 20 20 54 68 65 20 20 6C 61 74 74 65 72 ur. The latter
0000D0: 20 20 69 73 20 20 75 73 65 64 20 20 77 68 65 6E is used when
0000E0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 63 6C 65 .. cle
0000F0: 61 72 69 6E 67 20 74 68 65 20 73 63 72 65 65 6E aring the screen
000100: 20 74 6F 20 6D 61 6B 65 20 74 68 65 20 6F 70 65 to make the ope
000110: 72 61 74 69 6F 6E 20 61 70 70 65 61 72 20 69 6E ration appear in
000120: 73 74 61 6E 74 61 6E 65 6F 75 73 2E 0D 0A 0D 0A stantaneous.....
000130: 20 20 20 20 20 20 20 63 2E 20 54 68 65 20 73 6F c. The so
000140: 75 6E 64 20 63 68 69 70 2E 0D 0A 20 20 20 20 20 und chip...
000150: 20 20 20 20 20 20 41 20 72 6F 75 74 69 6E 65 2C A routine,
000160: 20 4D 43 20 53 4F 55 4E 44 20 52 45 47 49 53 54 MC SOUND REGIST
000170: 45 52 2C 20 69 73 20 70 72 6F 76 69 64 65 64 20 ER, is provided
000180: 74 6F 20 77 72 69 74 65 20 74 6F 20 20 61 20 20 to write to a
000190: 72 65 67 69 73 74 65 72 0D 0A 20 20 20 20 20 20 register..
0001A0: 20 20 20 20 20 6F 66 20 74 68 65 20 73 6F 75 6E of the soun
0001B0: 64 20 63 68 69 70 2E 20 54 68 69 73 20 69 73 20 d chip. This is
0001C0: 75 73 65 64 20 62 79 20 74 68 65 20 53 6F 75 6E used by the Soun
0001D0: 64 20 4D 61 6E 61 67 65 72 20 66 6F 72 20 20 68 d Manager for h
0001E0: 61 72 64 77 61 72 65 0D 0A 20 20 20 20 20 20 20 ardware..
0001F0: 20 20 20 20 61 63 63 65 73 73 2E 0D 0A 0D 0A 20 access.....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 64 2E 20 54 68 65 20 43 65 6E d. The Cen
000010: 74 72 6F 6E 69 63 73 20 70 6F 72 74 2E 0D 0A 20 tronics port...
000020: 20 20 20 20 20 20 20 20 20 20 54 77 6F 20 72 6F Two ro
000030: 75 74 69 6E 65 73 20 61 72 65 20 70 72 6F 76 69 utines are provi
000040: 64 65 64 20 74 6F 20 61 63 63 65 73 73 20 74 68 ded to access th
000050: 65 20 43 65 6E 74 72 6F 6E 69 63 73 20 70 6F 72 e Centronics por
000060: 74 2E 20 20 4D 43 20 20 42 55 53 59 0D 0A 20 20 t. MC BUSY..
000070: 20 20 20 20 20 20 20 20 20 50 52 49 4E 54 45 52 PRINTER
000080: 20 74 65 73 74 73 20 69 66 20 69 74 20 69 73 20 tests if it is
000090: 62 75 73 79 2E 20 4D 43 20 53 45 4E 44 20 50 52 busy. MC SEND PR
0000A0: 49 4E 54 45 52 20 73 74 72 6F 62 65 73 20 64 61 INTER strobes da
0000B0: 74 61 20 20 6F 75 74 20 20 6F 66 0D 0A 20 20 20 ta out of..
0000C0: 20 20 20 20 20 20 20 20 69 74 2E 20 44 61 74 61 it. Data
0000D0: 20 73 68 6F 75 6C 64 20 6E 6F 74 20 62 65 20 73 should not be s
0000E0: 65 6E 74 20 77 68 69 6C 65 20 74 68 65 20 70 6F ent while the po
0000F0: 72 74 20 69 73 20 62 75 73 79 2E 0D 0A 0D 0A 20 rt is busy.....
000100: 20 20 20 20 20 20 20 20 20 20 54 68 65 20 43 65 The Ce
000110: 6E 74 72 6F 6E 69 63 73 20 70 6F 72 74 20 69 73 ntronics port is
000120: 20 75 73 65 64 20 62 79 20 74 68 65 20 70 72 69 used by the pri
000130: 6E 74 65 72 20 20 72 6F 75 74 69 6E 65 73 20 20 nter routines
000140: 70 72 6F 76 69 64 65 64 20 20 69 6E 0D 0A 20 20 provided in..
000150: 20 20 20 20 20 20 20 20 20 74 68 65 20 4D 61 63 the Mac
000160: 68 69 6E 65 20 50 61 63 6B 20 61 6E 64 20 64 65 hine Pack and de
000170: 73 63 72 69 62 65 64 20 62 65 6C 6F 77 2E 0D 0A scribed below...
000180: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
000190: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
0001A0: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001C0: 20 20 20 20 20 20 70 61 67 65 20 31 33 2E 32 0D page 13.2.
0001D0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
0001E0: 20 20 20 20 31 33 2E 32 20 54 68 65 20 50 72 69 13.2 The Pri
0001F0: 6E 74 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 nter.....
Size : 512 (Real : 512)
000000: 54 68 65 72 65 20 69 73 20 61 20 72 6F 75 74 69 There is a routi
000010: 6E 65 2C 20 4D 43 20 50 52 49 4E 54 20 43 48 41 ne, MC PRINT CHA
000020: 52 2C 20 77 68 69 63 68 20 63 61 6C 6C 73 20 61 R, which calls a
000030: 6E 20 69 6E 64 69 72 65 63 74 69 6F 6E 2C 20 4D n indirection, M
000040: 43 20 57 41 49 54 0D 0A 20 20 20 20 20 20 20 50 C WAIT.. P
000050: 52 49 4E 54 45 52 2C 20 66 6F 72 20 73 65 6E 64 RINTER, for send
000060: 69 6E 67 20 63 68 61 72 61 63 74 65 72 73 20 74 ing characters t
000070: 6F 20 74 68 65 20 20 70 72 69 6E 74 65 72 2C 20 o the printer,
000080: 20 6F 72 20 20 72 61 74 68 65 72 2C 20 20 74 6F or rather, to
000090: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 43 65 the.. Ce
0000A0: 6E 74 72 6F 6E 69 63 73 20 70 6F 72 74 2E 20 49 ntronics port. I
0000B0: 6E 20 56 31 2E 31 20 66 69 72 6D 77 61 72 65 2C n V1.1 firmware,
0000C0: 20 62 65 66 6F 72 65 20 73 65 6E 64 69 6E 67 20 before sending
0000D0: 20 74 68 65 20 20 63 68 61 72 61 63 74 65 72 73 the characters
0000E0: 20 20 4D 43 0D 0A 20 20 20 20 20 20 20 50 52 49 MC.. PRI
0000F0: 4E 54 20 43 48 41 52 20 74 72 61 6E 73 6C 61 74 NT CHAR translat
000100: 65 73 20 74 68 65 6D 20 75 73 69 6E 67 20 74 68 es them using th
000110: 65 20 70 72 69 6E 74 65 72 20 20 74 72 61 6E 73 e printer trans
000120: 6C 61 74 69 6F 6E 20 20 74 61 62 6C 65 2E 20 20 lation table.
000130: 54 68 65 0D 0A 0D 0A 20 20 20 20 20 20 20 75 73 The.... us
000140: 65 72 20 63 61 6E 20 73 65 74 20 74 68 65 20 74 er can set the t
000150: 72 61 6E 73 6C 61 74 69 6F 6E 73 20 62 79 20 63 ranslations by c
000160: 61 6C 6C 69 6E 67 20 20 4D 43 20 20 50 52 49 4E alling MC PRIN
000170: 54 20 20 54 52 41 4E 53 4C 41 54 49 4F 4E 2E 20 T TRANSLATION.
000180: 20 54 68 65 0D 0A 20 20 20 20 20 20 20 64 65 66 The.. def
000190: 61 75 6C 74 20 74 72 61 6E 73 6C 61 74 69 6F 6E ault translation
0001A0: 20 74 61 62 6C 65 20 28 73 65 65 20 41 70 70 65 table (see Appe
0001B0: 6E 64 69 78 20 58 49 56 29 20 6F 6E 6C 79 20 20 ndix XIV) only
0001C0: 61 66 66 65 63 74 73 20 20 63 68 61 72 61 63 74 affects charact
0001D0: 65 72 73 0D 0A 20 20 20 20 20 20 20 69 6E 20 74 ers.. in t
0001E0: 68 65 20 72 61 6E 67 65 20 23 41 30 2E 2E 23 41 he range #A0..#A
0001F0: 46 20 61 6E 64 20 69 73 20 64 65 73 69 67 6E 65 F and is designe
Size : 512 (Real : 512)
000000: 64 20 74 6F 20 6D 61 6B 65 20 74 68 65 73 65 20 d to make these
000010: 20 63 68 61 72 61 63 74 65 72 73 20 20 70 72 69 characters pri
000020: 6E 74 0D 0A 20 20 20 20 20 20 20 6D 6F 72 65 20 nt.. more
000030: 72 65 61 73 6F 6E 61 62 6C 79 20 6F 6E 20 74 68 reasonably on th
000040: 65 20 44 4D 50 2D 31 20 70 72 69 6E 74 65 72 20 e DMP-1 printer
000050: 66 6F 72 20 76 61 72 69 6F 75 73 20 6C 61 6E 67 for various lang
000060: 75 61 67 65 20 6F 70 74 69 6F 6E 73 2E 0D 0A 0D uage options....
000070: 0A 20 20 20 20 20 20 20 4D 43 20 57 41 49 54 20 . MC WAIT
000080: 50 52 49 4E 54 45 52 20 77 61 69 74 73 20 75 6E PRINTER waits un
000090: 74 69 6C 20 74 68 65 20 43 65 6E 74 72 6F 6E 69 til the Centroni
0000A0: 63 73 20 70 6F 72 74 20 69 73 20 6E 6F 74 20 62 cs port is not b
0000B0: 75 73 79 20 20 61 6E 64 20 20 74 68 65 6E 0D 0A usy and then..
0000C0: 20 20 20 20 20 20 20 73 65 6E 64 73 20 74 68 65 sends the
0000D0: 20 67 69 76 65 6E 20 63 68 61 72 61 63 74 65 72 given character
0000E0: 73 20 74 6F 20 69 74 2E 20 49 66 20 74 68 65 20 s to it. If the
0000F0: 70 6F 72 74 20 72 65 6D 61 69 6E 73 20 62 75 73 port remains bus
000100: 79 20 66 6F 72 20 61 20 20 6C 6F 6E 67 0D 0A 20 y for a long..
000110: 20 20 20 20 20 20 74 69 6D 65 20 74 68 65 6E 20 time then
000120: 74 68 65 20 72 6F 75 74 69 6E 65 20 74 69 6D 65 the routine time
000130: 73 20 6F 75 74 20 61 6E 64 20 72 65 74 75 72 6E s out and return
000140: 73 20 20 69 6E 64 69 63 61 74 69 6E 67 20 20 74 s indicating t
000150: 68 61 74 20 20 69 74 20 20 68 61 73 0D 0A 20 20 hat it has..
000160: 20 20 20 20 20 66 61 69 6C 65 64 20 74 6F 20 73 failed to s
000170: 65 6E 64 20 74 68 65 20 63 68 61 72 61 63 74 65 end the characte
000180: 72 2E 20 54 68 69 73 20 74 69 6D 65 20 6F 75 74 r. This time out
000190: 20 63 61 6E 20 20 62 65 20 20 75 73 65 64 20 20 can be used
0001A0: 74 6F 20 20 70 72 65 76 65 6E 74 0D 0A 20 20 20 to prevent..
0001B0: 20 20 20 20 70 72 6F 67 72 61 6D 73 20 20 27 68 programs 'h
0001C0: 61 6E 67 69 6E 67 27 20 20 62 65 63 61 75 73 65 anging' because
0001D0: 20 20 74 68 65 79 20 20 61 72 65 20 20 77 61 69 they are wai
0001E0: 74 69 6E 67 20 20 20 66 6F 72 20 20 20 61 20 20 ting for a
0001F0: 20 28 70 6F 73 73 69 62 6C 79 0D 0A 20 20 20 20 (possibly..
Size : 512 (Real : 512)
000000: 20 20 20 6E 6F 6E 2D 65 78 69 73 74 65 6E 74 29 non-existent)
000010: 20 70 72 69 6E 74 65 72 20 74 6F 20 62 65 63 6F printer to beco
000020: 6D 65 20 72 65 61 64 79 2E 0D 0A 0D 0A 0D 0A 20 me ready.......
000030: 20 20 20 20 20 20 4D 43 20 57 41 49 54 20 50 52 MC WAIT PR
000040: 49 4E 54 45 52 20 61 6C 6C 6F 77 73 20 74 68 65 INTER allows the
000050: 20 75 73 65 72 20 74 6F 20 69 6E 74 65 72 63 65 user to interce
000060: 70 74 20 63 68 61 72 61 63 74 65 72 73 20 74 6F pt characters to
000070: 20 62 65 20 73 65 6E 74 20 20 74 6F 0D 0A 20 20 be sent to..
000080: 20 20 20 20 20 74 68 65 20 70 72 69 6E 74 65 72 the printer
000090: 2E 20 54 68 69 73 20 63 6F 75 6C 64 20 61 6C 6C . This could all
0000A0: 6F 77 20 73 70 65 63 69 61 6C 20 65 73 63 61 70 ow special escap
0000B0: 65 20 73 65 71 75 65 6E 63 65 73 20 74 6F 20 62 e sequences to b
0000C0: 65 20 20 69 6E 73 65 72 74 65 64 0D 0A 20 20 20 e inserted..
0000D0: 20 20 20 20 69 66 20 6E 65 65 64 65 64 2C 20 6F if needed, o
0000E0: 72 20 69 74 20 63 6F 75 6C 64 20 61 6C 6C 6F 77 r it could allow
0000F0: 20 74 68 65 20 70 72 69 6E 74 65 72 20 74 6F 20 the printer to
000100: 62 65 20 64 69 73 61 62 6C 65 64 20 6F 72 20 74 be disabled or t
000110: 68 65 20 20 6C 65 6E 67 74 68 0D 0A 20 20 20 20 he length..
000120: 20 20 20 6F 66 20 74 68 65 20 74 69 6D 65 20 6F of the time o
000130: 75 74 20 74 6F 20 62 65 20 63 68 61 6E 67 65 64 ut to be changed
000140: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 33 ....... 13
000150: 2E 33 20 4C 6F 61 64 69 6E 67 20 61 6E 64 20 52 .3 Loading and R
000160: 75 6E 6E 69 6E 67 20 50 72 6F 67 72 61 6D 73 2E unning Programs.
000170: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
000180: 20 4D 61 63 68 69 6E 65 20 50 61 63 6B 20 70 72 Machine Pack pr
000190: 6F 76 69 64 65 73 20 74 77 6F 20 72 6F 75 74 69 ovides two routi
0001A0: 6E 65 73 20 66 6F 72 20 72 75 6E 6E 69 6E 67 20 nes for running
0001B0: 70 72 6F 67 72 61 6D 73 2C 20 4D 43 20 20 53 54 programs, MC ST
0001C0: 41 52 54 0D 0A 20 20 20 20 20 20 20 50 52 4F 47 ART.. PROG
0001D0: 52 41 4D 20 61 6E 64 20 4D 43 20 42 4F 4F 54 20 RAM and MC BOOT
0001E0: 50 52 4F 47 52 41 4D 2E 0D 0A 0D 0A 0D 0A 20 20 PROGRAM.......
0001F0: 20 20 20 20 20 4D 43 20 53 54 41 52 54 20 50 52 MC START PR
Size : 512 (Real : 512)
000000: 4F 47 52 41 4D 20 69 73 20 74 68 65 20 73 69 6D OGRAM is the sim
000010: 70 6C 65 72 20 6F 66 20 74 68 65 20 20 74 77 6F pler of the two
000020: 20 20 72 6F 75 74 69 6E 65 73 2E 20 20 49 74 20 routines. It
000030: 20 63 6F 6D 70 6C 65 74 65 6C 79 0D 0A 20 20 20 completely..
000040: 20 20 20 20 72 65 2D 69 6E 69 74 69 61 6C 69 7A re-initializ
000050: 65 20 61 6C 6C 20 74 68 65 20 66 69 72 6D 77 61 e all the firmwa
000060: 72 65 20 61 6E 64 20 74 68 65 6E 20 65 6E 74 65 re and then ente
000070: 72 73 20 74 68 65 20 67 69 76 65 6E 20 70 72 6F rs the given pro
000080: 67 72 61 6D 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 gram.......
000090: 20 20 4D 43 20 42 4F 4F 54 20 50 52 4F 47 52 41 MC BOOT PROGRA
0000A0: 4D 20 69 73 20 6D 6F 72 65 20 63 6F 6D 70 6C 65 M is more comple
0000B0: 78 2E 20 49 74 20 69 73 20 66 6F 72 20 6C 6F 61 x. It is for loa
0000C0: 64 69 6E 67 20 61 20 70 72 6F 67 72 61 6D 20 69 ding a program i
0000D0: 6E 74 6F 20 20 52 41 4D 0D 0A 20 20 20 20 20 20 nto RAM..
0000E0: 20 61 6E 64 20 72 75 6E 6E 69 6E 67 20 69 74 2E and running it.
0000F0: 20 54 68 65 20 75 73 65 72 20 73 75 70 70 6C 69 The user suppli
000100: 65 73 20 61 20 72 6F 75 74 69 6E 65 20 74 6F 20 es a routine to
000110: 4D 43 20 20 42 4F 4F 54 20 20 50 52 4F 47 52 41 MC BOOT PROGRA
000120: 4D 20 20 74 68 61 74 0D 0A 20 20 20 20 20 20 20 M that..
000130: 77 69 6C 6C 20 6C 6F 61 64 20 74 68 65 20 70 72 will load the pr
000140: 6F 67 72 61 6D 20 61 6E 64 20 72 65 74 75 72 6E ogram and return
000150: 20 69 74 73 20 65 6E 74 72 79 20 20 70 6F 69 6E its entry poin
000160: 74 2E 20 20 42 65 66 6F 72 65 20 20 74 68 69 73 t. Before this
000170: 20 20 6C 6F 61 64 0D 0A 20 20 20 20 20 20 20 72 load.. r
000180: 6F 75 74 69 6E 65 20 69 73 20 63 61 6C 6C 65 64 outine is called
000190: 20 61 73 20 6D 75 63 68 20 6F 66 20 74 68 65 20 as much of the
0001A0: 66 69 72 6D 77 61 72 65 20 61 73 20 69 73 20 70 firmware as is p
0001B0: 6F 73 73 69 62 6C 65 20 69 73 20 20 72 65 73 65 ossible is rese
0001C0: 74 20 20 73 6F 0D 0A 20 20 20 20 20 20 20 74 68 t so.. th
0001D0: 61 74 20 74 68 65 20 61 72 65 20 6F 66 20 6D 65 at the are of me
0001E0: 6D 6F 72 79 20 62 65 74 77 65 65 6E 20 23 30 30 mory between #00
0001F0: 34 30 20 61 6E 64 20 74 68 65 20 62 61 73 65 20 40 and the base
Size : 512 (Real : 512)
000000: 6F 66 20 74 68 65 20 66 69 72 6D 77 61 72 65 20 of the firmware
000010: 20 52 41 4D 0D 0A 20 20 20 20 20 20 20 61 74 20 RAM.. at
000020: 23 42 31 30 30 20 69 73 20 61 76 61 69 6C 61 62 #B100 is availab
000030: 6C 65 20 66 6F 72 20 75 73 65 2E 20 49 66 20 74 le for use. If t
000040: 68 65 20 73 79 73 74 65 6D 20 77 65 72 65 20 6E he system were n
000050: 6F 74 20 20 72 65 73 65 74 20 20 74 68 65 6E 20 ot reset then
000060: 20 61 6E 0D 0A 20 20 20 20 20 20 20 61 63 74 69 an.. acti
000070: 76 65 20 69 6E 64 69 72 65 63 74 69 6F 6E 2C 20 ve indirection,
000080: 65 76 65 6E 74 20 6F 72 20 69 6E 74 65 72 72 75 event or interru
000090: 70 74 20 72 6F 75 74 69 6E 65 20 20 6D 69 67 68 pt routine migh
0000A0: 74 20 20 62 65 20 20 6F 76 65 72 77 72 69 74 74 t be overwritt
0000B0: 65 6E 0D 0A 20 20 20 20 20 20 20 77 69 74 68 20 en.. with
0000C0: 64 69 73 61 73 74 72 6F 75 73 20 63 6F 6E 73 65 disastrous conse
0000D0: 71 75 65 6E 63 65 73 2E 0D 0A 0D 0A 20 20 20 20 quences.....
0000E0: 20 20 20 49 66 20 74 68 65 20 70 72 6F 67 72 61 If the progra
0000F0: 6D 20 69 73 20 6C 6F 61 64 65 64 20 73 75 63 63 m is loaded succ
000100: 65 73 73 66 75 6C 6C 79 20 62 79 20 20 4D 43 20 essfully by MC
000110: 20 42 4F 4F 54 20 20 50 52 4F 47 52 41 4D 20 20 BOOT PROGRAM
000120: 74 68 65 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 then the..
000130: 20 20 66 69 72 6D 77 61 72 65 20 20 69 73 20 20 firmware is
000140: 63 6F 6D 70 6C 65 74 65 6C 79 20 20 69 6E 69 74 completely init
000150: 69 61 6C 69 7A 65 64 20 20 61 6E 64 20 20 74 68 ialized and th
000160: 65 20 20 70 72 6F 67 72 61 6D 20 20 69 73 20 20 e program is
000170: 65 6E 74 65 72 65 64 2E 0D 0A 20 20 20 20 20 20 entered...
000180: 20 48 6F 77 65 76 65 72 2C 20 69 66 20 74 68 65 However, if the
000190: 20 6C 6F 61 64 69 6E 67 20 66 61 69 6C 73 20 74 loading fails t
0001A0: 68 65 6E 20 61 6E 20 61 70 70 72 6F 70 72 69 61 hen an appropria
0001B0: 74 65 20 6D 65 73 73 61 67 65 20 20 69 73 20 20 te message is
0001C0: 70 72 69 6E 74 65 64 0D 0A 20 20 20 20 20 20 20 printed..
0001D0: 61 6E 64 20 74 68 65 20 70 72 65 76 69 6F 75 73 and the previous
0001E0: 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 foreground prog
0001F0: 72 61 6D 20 20 69 73 20 20 72 65 73 74 61 72 74 ram is restart
Size : 512 (Real : 512)
000000: 65 64 2E 20 20 49 66 20 20 74 68 65 20 20 70 72 ed. If the pr
000010: 65 76 69 6F 75 73 0D 0A 20 20 20 20 20 20 20 70 evious.. p
000020: 72 6F 67 72 61 6D 20 77 61 73 20 69 74 73 65 6C rogram was itsel
000030: 66 20 61 20 52 41 4D 20 70 72 6F 67 72 61 6D 20 f a RAM program
000040: 20 74 68 65 6E 20 20 74 68 65 20 20 64 65 66 61 then the defa
000050: 75 6C 74 20 20 52 4F 4D 20 20 69 73 20 20 65 6E ult ROM is en
000060: 74 65 72 65 64 0D 0A 20 20 20 20 20 20 20 69 6E tered.. in
000070: 73 74 65 61 64 20 62 65 63 61 75 73 65 20 69 74 stead because it
000080: 20 69 73 20 6C 69 6B 65 6C 79 20 74 68 61 74 20 is likely that
000090: 74 68 65 20 70 72 65 76 69 6F 75 73 20 70 72 6F the previous pro
0000A0: 67 72 61 6D 20 20 77 61 73 20 20 63 6F 72 72 75 gram was corru
0000B0: 70 74 65 64 0D 0A 20 20 20 20 20 20 20 77 68 65 pted.. whe
0000C0: 6E 20 74 68 65 20 61 74 74 65 6D 70 74 20 74 6F n the attempt to
0000D0: 20 6C 6F 61 64 20 74 68 65 20 6E 65 77 20 6F 6E load the new on
0000E0: 65 20 77 61 73 20 6D 61 64 65 2E 0D 0A 0D 0A 0D e was made......
0000F0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
000100: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
000110: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
000140: 65 20 31 33 2E 33 0D 0A 1A 20 6C 6F 77 20 6C 65 e 13.3... low le
000150: 76 65 6C 20 64 72 69 76 69 6E 67 20 6F 66 20 74 vel driving of t
000160: 68 65 20 68 61 72 64 77 61 72 65 2E 20 20 49 74 he hardware. It
000170: 0D 0A 20 20 20 20 20 20 20 61 6C 73 6F 20 74 61 .. also ta
000180: 20 48 6F 77 65 76 65 72 2C 20 69 66 20 74 68 65 However, if the
000190: 20 6C 6F 61 64 69 6E 67 20 66 61 69 6C 73 20 74 loading fails t
0001A0: 68 65 6E 20 61 6E 20 61 70 70 72 6F 70 72 69 61 hen an appropria
0001B0: 74 65 20 6D 65 73 73 61 67 65 20 20 69 73 20 20 te message is
0001C0: 70 72 69 6E 74 65 64 0D 0A 20 20 20 20 20 20 20 printed..
0001D0: 61 6E 64 20 74 68 65 20 70 72 65 76 69 6F 75 73 and the previous
0001E0: 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 foreground prog
0001F0: 72 61 6D 20 20 69 73 20 20 72 65 73 74 61 72 74 ram is restart
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
000010: 34 20 46 69 72 6D 77 61 72 65 20 4A 75 6D 70 62 4 Firmware Jumpb
000020: 6C 6F 63 6B 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 locks.....
000030: 20 54 68 65 72 65 20 61 72 65 20 61 20 6E 75 6D There are a num
000040: 62 65 72 20 6F 66 20 6A 75 6D 70 62 6C 6F 63 6B ber of jumpblock
000050: 73 20 70 72 6F 76 69 64 65 64 20 62 79 20 74 68 s provided by th
000060: 65 20 66 69 72 6D 77 61 72 65 2E 20 54 68 65 20 e firmware. The
000070: 6C 61 72 67 65 73 74 0D 0A 20 20 20 20 20 20 20 largest..
000080: 6F 66 20 74 68 65 73 65 20 69 73 20 74 68 65 20 of these is the
000090: 6D 61 69 6E 20 66 69 72 6D 77 61 72 65 20 6A 75 main firmware ju
0000A0: 6D 70 62 6C 6F 63 6B 2E 20 54 68 69 73 20 69 73 mpblock. This is
0000B0: 20 69 6E 74 65 6E 64 65 64 20 74 6F 20 20 62 65 intended to be
0000C0: 20 20 75 73 65 64 0D 0A 20 20 20 20 20 20 20 62 used.. b
0000D0: 79 20 70 72 6F 67 72 61 6D 73 20 74 6F 20 61 63 y programs to ac
0000E0: 63 65 73 73 20 74 68 65 20 66 69 72 6D 77 61 72 cess the firmwar
0000F0: 65 20 72 6F 75 74 69 6E 65 73 20 69 6E 20 74 68 e routines in th
000100: 65 20 6C 6F 77 65 72 20 20 52 4F 4D 2E 20 20 42 e lower ROM. B
000110: 41 53 49 43 2C 0D 0A 20 20 20 20 20 20 20 66 6F ASIC,.. fo
000120: 72 20 69 6E 73 74 61 6E 63 65 2C 20 75 73 65 73 r instance, uses
000130: 20 74 68 65 73 65 20 6A 75 6D 70 73 2E 20 4E 6F these jumps. No
000140: 74 65 2C 20 68 6F 77 65 76 65 72 20 74 68 61 74 te, however that
000150: 20 74 68 65 20 20 66 69 72 6D 77 61 72 65 20 20 the firmware
000160: 64 6F 65 73 0D 0A 20 20 20 20 20 20 20 6E 6F 74 does.. not
000170: 20 75 73 65 20 74 68 69 73 20 6A 75 6D 70 62 6C use this jumpbl
000180: 6F 63 6B 20 66 6F 72 20 69 6E 74 65 72 6E 61 6C ock for internal
000190: 20 63 6F 6D 6D 75 6E 69 63 61 74 69 6F 6E 20 20 communication
0001A0: 77 69 74 68 20 20 69 74 73 65 6C 66 2E 20 20 54 with itself. T
0001B0: 68 69 73 0D 0A 20 20 20 20 20 20 20 6D 65 61 6E his.. mean
0001C0: 73 20 20 74 68 61 74 20 20 61 6C 74 65 72 69 6E s that alterin
0001D0: 67 20 20 74 68 65 20 20 6A 75 6D 70 62 6C 6F 63 g the jumpbloc
0001E0: 6B 20 20 77 69 6C 6C 20 20 63 61 75 73 65 20 20 k will cause
0001F0: 42 41 53 49 43 20 20 74 6F 20 20 20 62 65 68 61 BASIC to beha
Size : 512 (Real : 512)
000000: 76 65 0D 0A 20 20 20 20 20 20 20 64 69 66 66 65 ve.. diffe
000010: 72 65 6E 74 6C 79 20 62 75 74 20 77 69 6C 6C 20 rently but will
000020: 6E 6F 74 20 63 61 75 73 65 20 74 68 65 20 66 69 not cause the fi
000030: 72 6D 77 61 72 65 20 74 6F 20 62 65 68 61 76 65 rmware to behave
000040: 20 64 69 66 66 65 72 65 6E 74 6C 79 2E 0D 0A 0D differently....
000050: 0A 20 20 20 20 20 20 20 54 68 65 20 6D 6F 73 74 . The most
000060: 20 20 69 6D 70 6F 72 74 61 6E 74 20 20 6A 75 6D important jum
000070: 70 62 6C 6F 63 6B 20 20 69 73 20 20 74 68 65 20 pblock is the
000080: 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 20 20 6A indirections j
000090: 75 6D 70 62 6C 6F 63 6B 2E 20 20 54 68 65 0D 0A umpblock. The..
0000A0: 20 20 20 20 20 20 20 69 6E 64 69 72 65 63 74 69 indirecti
0000B0: 6F 6E 73 20 61 72 65 20 6A 75 6D 70 73 20 74 68 ons are jumps th
0000C0: 61 74 20 61 72 65 20 75 73 65 64 20 62 79 20 74 at are used by t
0000D0: 68 65 20 66 69 72 6D 77 61 72 65 20 20 61 74 20 he firmware at
0000E0: 20 6B 65 79 20 20 70 6F 69 6E 74 73 2E 0D 0A 20 key points...
0000F0: 20 20 20 20 20 20 54 68 69 73 20 61 6C 6C 6F 77 This allow
000100: 73 20 74 68 65 20 75 73 65 72 20 74 6F 20 61 6C s the user to al
000110: 74 65 72 20 74 68 65 20 61 63 74 69 6F 6E 20 20 ter the action
000120: 6F 66 20 20 66 69 72 6D 77 61 72 65 20 20 72 6F of firmware ro
000130: 75 74 69 6E 65 73 2E 20 20 54 68 65 0D 0A 20 20 utines. The..
000140: 20 20 20 20 20 65 6E 74 72 69 65 73 20 69 6E 20 entries in
000150: 74 68 69 73 20 6A 75 6D 70 62 6C 6F 63 6B 20 61 this jumpblock a
000160: 72 65 20 6E 6F 74 20 69 6E 74 65 6E 64 65 64 20 re not intended
000170: 66 6F 72 20 74 68 65 20 75 73 65 72 20 74 6F 20 for the user to
000180: 63 61 6C 6C 2C 20 20 6F 6E 6C 79 0D 0A 20 20 20 call, only..
000190: 20 20 20 20 66 6F 72 20 74 68 65 20 66 69 72 6D for the firm
0001A0: 77 61 72 65 20 74 6F 20 63 61 6C 6C 2E 20 41 6C ware to call. Al
0001B0: 74 65 72 69 6E 67 20 61 6E 20 69 6E 64 69 72 65 tering an indire
0001C0: 63 74 69 6F 6E 20 20 69 73 20 20 74 68 65 20 20 ction is the
0001D0: 6D 65 74 68 6F 64 20 20 74 6F 0D 0A 20 20 20 20 method to..
0001E0: 20 20 20 6D 61 6B 65 20 74 68 65 20 66 69 72 6D make the firm
0001F0: 77 61 72 65 20 62 65 68 61 76 65 20 64 69 66 66 ware behave diff
Size : 512 (Real : 512)
000000: 65 72 65 6E 74 6C 79 2E 0D 0A 0D 0A 20 20 20 20 erently.....
000010: 20 20 20 54 68 65 20 72 65 6D 61 69 6E 69 6E 67 The remaining
000020: 20 74 77 6F 20 6A 75 6D 70 62 6C 6F 63 6B 73 20 two jumpblocks
000030: 61 72 65 20 61 73 73 6F 63 69 61 74 65 64 20 77 are associated w
000040: 69 74 68 20 74 68 65 20 4B 65 72 6E 65 6C 2E 20 ith the Kernel.
000050: 4F 6E 65 20 69 73 20 20 61 0D 0A 20 20 20 20 20 One is a..
000060: 20 20 6A 75 6D 70 62 6C 6F 63 6B 20 74 6F 20 61 jumpblock to a
000070: 6C 6C 6F 77 20 74 68 65 20 75 73 65 72 20 74 6F llow the user to
000080: 20 63 61 6C 6C 20 76 61 72 69 6F 75 73 20 75 73 call various us
000090: 65 66 75 6C 20 4B 65 72 6E 65 6C 20 72 6F 75 74 eful Kernel rout
0000A0: 69 6E 65 73 20 20 74 6F 0D 0A 20 20 20 20 20 20 ines to..
0000B0: 20 64 6F 20 77 69 74 68 20 63 68 61 6E 67 69 6E do with changin
0000C0: 67 20 52 4F 4D 20 73 74 61 74 65 73 20 61 6E 64 g ROM states and
0000D0: 20 74 68 65 20 6C 69 6B 65 2E 20 54 68 65 20 6F the like. The o
0000E0: 74 68 65 72 20 69 73 20 6E 6F 74 20 61 20 6A 75 ther is not a ju
0000F0: 6D 70 62 6C 6F 63 6B 0D 0A 20 20 20 20 20 20 20 mpblock..
000100: 61 73 20 73 75 63 68 2C 20 6A 75 73 74 20 61 6E as such, just an
000110: 20 61 72 65 61 20 77 68 65 72 65 20 74 68 65 20 area where the
000120: 72 6F 75 74 69 6E 65 73 20 61 72 65 20 61 74 20 routines are at
000130: 20 70 75 62 6C 69 73 68 65 64 20 20 61 64 64 72 published addr
000140: 65 73 73 65 73 2E 0D 0A 20 20 20 20 20 20 20 54 esses... T
000150: 68 65 73 65 20 61 72 65 20 67 65 6E 65 72 61 6C hese are general
000160: 20 75 74 69 6C 69 74 79 20 72 6F 75 74 69 6E 65 utility routine
000170: 73 20 61 6E 64 20 72 65 73 74 61 72 74 73 2E 20 s and restarts.
000180: 49 6E 20 67 65 6E 65 72 61 6C 20 6E 65 69 74 68 In general neith
000190: 65 72 20 6F 66 0D 0A 20 20 20 20 20 20 20 74 68 er of.. th
0001A0: 65 73 65 20 61 72 65 61 73 20 73 68 6F 75 6C 64 ese areas should
0001B0: 20 62 65 20 61 6C 74 65 72 65 64 20 62 79 20 74 be altered by t
0001C0: 68 65 20 75 73 65 72 2E 0D 0A 0D 0A 20 20 20 20 he user.....
0001D0: 20 20 20 54 68 65 20 72 6F 75 74 69 6E 65 73 20 The routines
0001E0: 69 6E 20 20 74 68 65 73 65 20 20 6A 75 6D 70 62 in these jumpb
0001F0: 6C 6F 63 6B 73 20 20 61 72 65 20 20 62 72 69 65 locks are brie
Size : 512 (Real : 512)
000000: 66 6C 79 20 20 6C 69 73 74 65 64 20 20 62 65 6C fly listed bel
000010: 6F 77 2E 20 20 4D 6F 72 65 0D 0A 20 20 20 20 20 ow. More..
000020: 20 20 63 6F 6D 70 6C 65 78 20 64 65 73 63 72 69 complex descri
000030: 70 74 69 6F 6E 73 20 6F 66 20 74 68 65 20 72 6F ptions of the ro
000040: 75 74 69 6E 65 73 20 63 61 6E 20 62 65 20 66 6F utines can be fo
000050: 75 6E 64 20 69 6E 20 73 65 63 74 69 6F 6E 73 20 und in sections
000060: 31 35 2C 20 20 31 36 2C 0D 0A 20 20 20 20 20 20 15, 16,..
000070: 20 31 37 20 61 6E 64 20 31 38 2E 0D 0A 20 20 20 17 and 18...
000080: 20 20 20 20 41 4D 53 44 4F 53 20 70 72 6F 76 69 AMSDOS provi
000090: 64 65 73 20 61 20 6E 75 6D 62 65 72 20 6F 66 20 des a number of
0000A0: 65 78 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 external command
0000B0: 73 20 20 77 68 69 63 68 20 20 61 6C 6C 6F 77 20 s which allow
0000C0: 20 74 68 65 20 20 75 73 65 72 0D 0A 20 20 20 20 the user..
0000D0: 20 20 20 61 63 63 65 73 73 20 20 74 6F 20 20 74 access to t
0000E0: 68 65 20 20 6C 6F 77 20 20 6C 65 76 65 6C 20 20 he low level
0000F0: 64 69 73 63 20 20 64 72 69 76 69 6E 67 20 20 61 disc driving a
000100: 6E 64 20 20 74 6F 20 20 68 69 67 68 20 20 6C 65 nd to high le
000110: 76 65 6C 20 20 64 69 73 63 0D 0A 20 20 20 20 20 vel disc..
000120: 20 20 6F 70 65 72 61 74 69 6F 6E 73 2E 0D 0A 20 operations...
000130: 20 20 20 20 20 20 54 68 65 73 65 20 63 6F 6D 6D These comm
000140: 61 6E 64 73 20 61 72 65 20 20 61 63 63 65 73 73 ands are access
000150: 65 64 20 20 75 73 69 6E 67 20 20 74 68 65 20 20 ed using the
000160: 65 78 74 65 72 6E 61 6C 20 20 63 6F 6D 6D 61 6E external comman
000170: 64 20 20 6D 65 63 68 61 6E 69 73 6D 0D 0A 20 20 d mechanism..
000180: 20 20 20 20 20 64 65 73 63 72 69 62 65 64 20 69 described i
000190: 6E 20 73 65 63 74 69 6F 6E 20 31 30 2C 20 69 2E n section 10, i.
0001A0: 65 2E 20 54 68 65 20 63 61 6C 6C 65 72 20 70 61 e. The caller pa
0001B0: 73 73 65 73 20 74 68 65 20 63 6F 6D 6D 61 6E 64 sses the command
0001C0: 20 6E 61 6D 65 20 74 6F 20 4B 4C 0D 0A 20 20 20 name to KL..
0001D0: 20 20 20 20 46 49 4E 44 20 43 4F 4D 4D 41 4E 44 FIND COMMAND
0001E0: 20 20 61 6E 64 20 20 66 61 72 20 20 63 61 6C 6C and far call
0001F0: 73 20 20 74 68 65 20 20 72 65 73 75 6C 74 69 6E s the resultin
Size : 512 (Real : 512)
000000: 67 20 20 72 6F 75 74 69 6E 65 2E 20 20 4D 6F 72 g routine. Mor
000010: 65 20 20 63 6F 6D 70 6C 65 78 0D 0A 20 20 20 20 e complex..
000020: 20 20 20 64 65 73 63 72 69 70 74 69 6F 6E 73 20 descriptions
000030: 6F 66 20 74 68 65 73 65 20 63 6F 6D 6D 61 6E 64 of these command
000040: 73 20 63 61 6E 20 62 65 20 66 6F 75 6E 64 20 69 s can be found i
000050: 6E 20 73 65 63 74 69 6F 6E 73 20 31 39 20 61 6E n sections 19 an
000060: 64 20 32 30 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 d 20.....
000070: 31 34 2E 31 20 54 68 65 20 4D 61 69 6E 20 4A 75 14.1 The Main Ju
000080: 6D 70 62 6C 6F 63 6B 2E 0D 0A 20 20 20 20 20 20 mpblock...
000090: 20 54 68 65 20 6D 61 69 6E 20 66 69 72 6D 77 61 The main firmwa
0000A0: 72 65 20 6A 75 6D 70 62 6C 6F 63 6B 20 6C 69 65 re jumpblock lie
0000B0: 73 20 69 6E 20 52 41 4D 20 62 65 74 77 65 65 6E s in RAM between
0000C0: 20 20 61 64 64 72 65 73 73 65 73 20 20 23 42 42 addresses #BB
0000D0: 30 30 20 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 00 and..
0000E0: 23 42 44 35 44 2E 20 45 61 63 68 20 65 6E 74 72 #BD5D. Each entr
0000F0: 79 20 20 69 6E 20 20 74 68 65 20 20 6A 75 6D 70 y in the jump
000100: 62 6C 6F 63 6B 20 20 6F 63 63 75 70 69 65 73 20 block occupies
000110: 20 74 68 72 65 65 20 20 62 79 74 65 73 20 20 61 three bytes a
000120: 6E 64 20 20 69 73 0D 0A 20 20 20 20 20 20 20 69 nd is.. i
000130: 6E 69 74 69 61 6C 69 7A 65 64 20 74 6F 20 75 73 nitialized to us
000140: 65 20 4C 4F 57 20 4A 55 4D 50 20 72 65 73 74 61 e LOW JUMP resta
000150: 72 74 73 20 28 52 53 54 20 31 29 20 74 68 61 74 rts (RST 1) that
000160: 20 63 61 75 73 65 20 74 68 65 20 6C 6F 77 65 72 cause the lower
000170: 20 20 52 4F 4D 0D 0A 20 20 20 20 20 20 20 74 6F ROM.. to
000180: 20 62 65 20 65 6E 61 62 6C 65 64 2C 20 73 6F 20 be enabled, so
000190: 74 68 61 74 20 74 68 65 20 66 69 72 6D 77 61 72 that the firmwar
0001A0: 65 20 72 6F 75 74 69 6E 65 73 20 63 61 6E 20 62 e routines can b
0001B0: 65 20 72 75 6E 2C 20 61 6E 64 20 74 68 65 20 75 e run, and the u
0001C0: 70 70 65 72 0D 0A 20 20 20 20 20 20 20 52 4F 4D pper.. ROM
0001D0: 20 74 6F 20 62 65 20 64 69 73 61 62 6C 65 64 2C to be disabled,
0001E0: 20 73 6F 20 74 68 61 74 20 74 68 65 20 73 63 72 so that the scr
0001F0: 65 65 6E 20 6D 65 6D 6F 72 79 20 69 73 20 61 63 een memory is ac
Size : 512 (Real : 512)
000000: 63 65 73 73 69 62 6C 65 20 77 68 69 6C 65 20 20 cessible while
000010: 74 68 65 0D 0A 20 20 20 20 20 20 20 66 69 72 6D the.. firm
000020: 77 61 72 65 20 69 73 20 72 75 6E 6E 69 6E 67 2E ware is running.
000030: 20 46 75 6C 6C 20 64 65 73 63 72 69 70 74 69 6F Full descriptio
000040: 6E 73 20 6F 66 20 74 68 65 73 65 20 72 6F 75 74 ns of these rout
000050: 69 6E 65 73 20 63 61 6E 20 62 65 20 20 66 6F 75 ines can be fou
000060: 6E 64 0D 0A 20 20 20 20 20 20 20 69 6E 20 73 65 nd.. in se
000070: 63 74 69 6F 6E 20 31 35 2E 0D 0A 20 20 20 20 20 ction 15...
000080: 20 20 41 66 74 65 72 20 74 68 65 20 6A 75 6D 70 After the jump
000090: 62 6C 6F 63 6B 20 68 61 73 20 62 65 65 6E 20 73 block has been s
0000A0: 65 74 20 75 70 20 20 61 74 20 20 45 4D 53 20 20 et up at EMS
0000B0: 69 74 20 20 69 73 20 20 70 61 74 63 68 65 64 20 it is patched
0000C0: 20 62 79 20 20 74 68 65 0D 0A 20 20 20 20 20 20 by the..
0000D0: 20 69 6E 69 74 69 61 6C 69 7A 61 74 69 6F 6E 20 initialization
0000E0: 6F 66 20 74 68 65 20 41 4D 53 44 4F 53 20 52 4F of the AMSDOS RO
0000F0: 4D 20 74 6F 20 20 69 6E 73 74 61 6C 6C 20 20 74 M to install t
000100: 68 65 20 20 64 69 73 63 20 20 28 72 61 74 68 65 he disc (rathe
000110: 72 20 20 74 68 61 6E 0D 0A 20 20 20 20 20 20 20 r than..
000120: 63 61 73 73 65 74 74 65 29 20 61 73 20 64 65 66 cassette) as def
000130: 61 75 6C 74 20 62 75 74 20 69 73 20 6E 6F 74 20 ault but is not
000140: 20 6F 74 68 65 72 77 69 73 65 20 20 61 6C 74 65 otherwise alte
000150: 72 65 64 20 20 62 79 20 20 74 68 65 20 20 66 69 red by the fi
000160: 72 6D 77 61 72 65 0D 0A 20 20 20 20 20 20 20 75 rmware.. u
000170: 6E 74 69 6C 20 74 68 65 20 73 79 73 74 65 6D 20 ntil the system
000180: 69 73 20 72 65 69 6E 69 74 69 61 6C 69 7A 65 64 is reinitialized
000190: 2E 20 49 66 20 61 6E 79 20 65 6E 74 72 69 65 73 . If any entries
0001A0: 20 61 72 65 20 63 68 61 6E 67 65 64 20 74 68 65 are changed the
0001B0: 6E 20 20 69 74 0D 0A 20 20 20 20 20 20 20 69 73 n it.. is
0001C0: 20 74 68 65 20 75 73 65 72 27 73 20 72 65 73 70 the user's resp
0001D0: 6F 6E 73 69 62 69 6C 69 74 79 20 74 6F 20 75 6E onsibility to un
0001E0: 64 6F 20 20 74 68 65 20 20 61 6C 74 65 72 61 74 do the alterat
0001F0: 69 6F 6E 73 2E 20 20 54 68 69 73 20 20 63 61 6E ions. This can
Size : 512 (Real : 512)
000000: 20 20 62 65 0D 0A 20 20 20 20 20 20 20 61 63 68 be.. ach
000010: 69 65 76 65 64 20 62 79 20 63 61 6C 6C 69 6E 67 ieved by calling
000020: 20 4A 55 4D 50 20 20 52 45 53 54 4F 52 45 20 20 JUMP RESTORE
000030: 77 68 69 63 68 20 20 63 6F 6D 70 6C 65 74 65 6C which completel
000040: 79 20 20 69 6E 69 74 69 61 6C 69 7A 65 73 20 20 y initializes
000050: 74 68 65 0D 0A 20 20 20 20 20 20 20 6A 75 6D 70 the.. jump
000060: 62 6C 6F 63 6B 20 62 75 74 20 74 68 69 73 20 77 block but this w
000070: 69 6C 6C 20 6C 6F 73 65 20 61 6E 79 20 6F 74 68 ill lose any oth
000080: 65 72 20 70 61 74 63 68 65 73 2C 20 73 75 63 68 er patches, such
000090: 20 61 73 20 74 68 6F 73 65 20 6D 61 64 65 20 20 as those made
0000A0: 62 79 0D 0A 20 20 20 20 20 20 20 41 4D 53 44 4F by.. AMSDO
0000B0: 53 2E 20 49 74 20 69 73 20 62 65 74 74 65 72 20 S. It is better
0000C0: 74 6F 20 63 6F 70 79 20 74 68 65 20 20 6F 72 69 to copy the ori
0000D0: 67 69 6E 61 6C 20 20 63 6F 6E 74 65 6E 74 73 20 ginal contents
0000E0: 20 6F 66 20 20 74 68 65 20 20 63 68 61 6E 67 65 of the change
0000F0: 64 0D 0A 20 20 20 20 20 20 20 65 6E 74 72 69 65 d.. entrie
000100: 73 20 62 61 63 6B 2E 0D 0A 20 20 20 20 20 20 20 s back...
000110: 31 34 2E 31 2E 31 20 45 6E 74 72 69 65 73 20 74 14.1.1 Entries t
000120: 6F 20 74 68 65 20 4B 65 79 20 4D 61 6E 61 67 65 o the Key Manage
000130: 72 2E 0D 0A 20 20 20 20 20 20 20 54 68 65 20 4B r... The K
000140: 65 79 20 4D 61 6E 61 67 65 72 20 64 65 61 6C 73 ey Manager deals
000150: 20 77 69 74 68 20 74 68 65 20 6B 65 79 62 6F 61 with the keyboa
000160: 72 64 20 61 6E 64 20 74 68 65 20 6A 6F 79 73 74 rd and the joyst
000170: 69 63 6B 73 2E 0D 0A 20 20 20 20 20 20 20 49 4E icks... IN
000180: 49 54 49 41 4C 49 5A 41 54 49 4F 4E 0D 0A 20 20 ITIALIZATION..
000190: 20 20 20 20 20 30 20 20 20 20 23 42 42 30 30 20 0 #BB00
0001A0: 20 4B 4D 20 49 4E 49 54 49 41 4C 49 5A 45 20 20 KM INITIALIZE
0001B0: 20 20 20 20 20 49 6E 69 74 69 61 6C 69 7A 65 20 Initialize
0001C0: 74 68 65 20 4B 65 79 20 4D 61 6E 61 67 65 72 2E the Key Manager.
0001D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
0001E0: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
0001F0: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 34 2E page 14.
000020: 31 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 1..............
000030: 20 20 20 20 20 20 31 20 20 20 20 23 42 42 30 33 1 #BB03
000040: 20 20 4B 4D 20 52 45 53 45 54 20 20 20 20 20 20 KM RESET
000050: 20 20 20 20 20 20 52 65 73 65 74 20 74 68 65 20 Reset the
000060: 20 4B 65 79 20 20 4D 61 6E 61 67 65 72 20 20 2D Key Manager -
000070: 20 20 63 6C 65 61 72 20 20 61 6C 6C 0D 0A 20 20 clear all..
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 20 62 75 66 66 65 72 73 2C 20 20 20 buffers,
0000B0: 20 72 65 73 74 6F 72 65 20 20 20 20 73 74 61 6E restore stan
0000C0: 64 61 72 64 20 20 20 20 6B 65 79 0D 0A 20 20 20 dard key..
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 65 78 70 61 6E 73 69 6F 6E 73 20 61 expansions a
000100: 6E 64 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 2E nd indirections.
000110: 0D 0A 20 20 20 20 20 20 20 43 48 41 52 41 43 54 .. CHARACT
000120: 45 52 53 0D 0A 0D 0A 20 20 20 20 20 20 20 32 20 ERS.... 2
000130: 20 20 20 23 42 42 30 36 20 20 4B 4D 20 57 41 49 #BB06 KM WAI
000140: 54 20 43 48 41 52 20 20 20 20 20 20 20 20 57 61 T CHAR Wa
000150: 69 74 20 66 6F 72 20 74 68 65 20 6E 65 78 74 20 it for the next
000160: 63 68 61 72 61 63 74 65 72 20 20 66 72 6F 6D 20 character from
000170: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 the..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 6B 65 79 key
0001A0: 62 6F 61 72 64 2E 0D 0A 20 20 20 20 20 20 20 33 board... 3
0001B0: 20 20 20 20 23 42 42 30 39 20 20 4B 4D 20 52 45 #BB09 KM RE
0001C0: 41 44 20 43 48 41 52 20 20 20 20 20 20 20 20 54 AD CHAR T
0001D0: 65 73 74 20 69 66 20 61 20 63 68 61 72 61 63 74 est if a charact
0001E0: 65 72 20 69 73 20 61 76 61 69 6C 61 62 6C 65 20 er is available
0001F0: 20 66 72 6F 6D 0D 0A 20 20 20 20 20 20 20 20 20 from..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
000020: 65 20 6B 65 79 62 6F 61 72 64 2E 0D 0A 20 20 20 e keyboard...
000030: 20 20 20 20 34 20 20 20 20 23 42 42 30 43 20 20 4 #BB0C
000040: 4B 4D 20 43 48 41 52 20 52 45 54 55 52 4E 20 20 KM CHAR RETURN
000050: 20 20 20 20 52 65 74 75 72 6E 20 20 61 20 20 73 Return a s
000060: 69 6E 67 6C 65 20 20 63 68 61 72 61 63 74 65 72 ingle character
000070: 20 20 74 6F 20 20 20 74 68 65 0D 0A 20 20 20 20 to the..
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 6B 65 79 62 6F 61 72 64 20 66 6F 72 20 keyboard for
0000B0: 6E 65 78 74 20 74 69 6D 65 2E 0D 0A 20 20 20 20 next time...
0000C0: 20 20 20 31 39 31 20 20 23 42 44 33 44 20 20 4B 191 #BD3D K
0000D0: 4D 20 46 4C 55 53 48 20 20 20 20 20 20 20 20 20 M FLUSH
0000E0: 20 20 20 44 69 73 63 61 72 64 20 20 61 6C 6C 20 Discard all
0000F0: 20 70 65 6E 64 69 6E 67 20 20 63 68 61 72 61 63 pending charac
000100: 74 65 72 73 20 20 61 6E 64 0D 0A 20 20 20 20 20 ters and..
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 6B 65 79 73 2E 0D 0A 20 20 20 20 20 20 20 keys...
000140: 35 20 20 20 20 23 42 42 30 46 20 20 4B 4D 20 53 5 #BB0F KM S
000150: 45 54 20 45 58 50 41 4E 44 20 20 20 20 20 20 20 ET EXPAND
000160: 53 65 74 20 61 6E 20 65 78 70 61 6E 73 69 6F 6E Set an expansion
000170: 20 73 74 72 69 6E 67 2E 0D 0A 20 20 20 20 20 20 string...
000180: 20 36 20 20 20 20 23 42 42 31 32 20 20 4B 4D 20 6 #BB12 KM
000190: 47 45 54 20 45 58 50 41 4E 44 20 20 20 20 20 20 GET EXPAND
0001A0: 20 47 65 74 20 20 61 20 20 63 68 61 72 61 63 74 Get a charact
0001B0: 65 72 20 20 66 72 6F 6D 20 20 61 6E 20 20 65 78 er from an ex
0001C0: 70 61 6E 73 69 6F 6E 0D 0A 20 20 20 20 20 20 20 pansion..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001F0: 73 74 72 69 6E 67 2E 0D 0A 20 20 20 20 20 20 20 string...
Size : 512 (Real : 512)
000000: 37 20 20 20 20 23 42 42 31 35 20 20 4B 4D 20 45 7 #BB15 KM E
000010: 58 50 20 42 55 46 46 45 52 20 20 20 20 20 20 20 XP BUFFER
000020: 41 6C 6C 6F 63 61 74 65 20 20 61 20 20 20 62 75 Allocate a bu
000030: 66 66 65 72 20 20 20 66 6F 72 20 20 20 65 78 70 ffer for exp
000040: 61 6E 73 69 6F 6E 0D 0A 20 20 20 20 20 20 20 20 ansion..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
000070: 74 72 69 6E 67 73 2E 0D 0A 0D 0A 20 20 20 20 20 trings.....
000080: 20 20 4B 45 59 53 0D 0A 0D 0A 0D 0A 20 20 20 20 KEYS......
000090: 20 20 20 38 20 20 20 20 23 42 42 31 38 20 20 4B 8 #BB18 K
0000A0: 4D 20 57 41 49 54 20 4B 45 59 20 20 20 20 20 20 M WAIT KEY
0000B0: 20 20 20 57 61 69 74 20 20 66 6F 72 20 20 74 68 Wait for th
0000C0: 65 20 20 6E 65 78 74 20 20 6B 65 79 20 20 20 66 e next key f
0000D0: 72 6F 6D 20 20 20 74 68 65 0D 0A 20 20 20 20 20 rom the..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 6B 65 79 62 6F 61 72 64 2E 0D 0A 0D 0A 20 keyboard.....
000110: 20 20 20 20 20 20 39 20 20 20 20 23 42 42 31 42 9 #BB1B
000120: 20 20 4B 4D 20 52 45 41 44 20 4B 45 59 20 20 20 KM READ KEY
000130: 20 20 20 20 20 20 54 65 73 74 20 6F 66 20 61 20 Test of a
000140: 6B 65 79 20 69 73 20 20 61 76 61 69 6C 61 62 6C key is availabl
000150: 65 20 20 66 72 6F 6D 20 20 74 68 65 0D 0A 20 20 e from the..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 6B 65 79 62 6F 61 72 64 2E 0D 0A keyboard...
000190: 0D 0A 20 20 20 20 20 20 20 31 30 20 20 20 23 42 .. 10 #B
0001A0: 42 31 45 20 20 4B 4D 20 54 45 53 54 20 4B 45 59 B1E KM TEST KEY
0001B0: 20 20 20 20 20 20 20 20 20 54 65 73 74 20 69 66 Test if
0001C0: 20 61 20 6B 65 79 20 69 73 20 70 72 65 73 73 65 a key is presse
0001D0: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 39 30 d..... 190
0001E0: 20 20 23 42 44 33 41 20 20 4B 4D 20 53 45 54 20 #BD3A KM SET
0001F0: 4C 4F 43 4B 53 20 20 20 20 20 20 20 20 53 65 74 LOCKS Set
Size : 512 (Real : 512)
000000: 20 20 74 68 65 20 20 53 68 69 66 74 20 20 4C 6F the Shift Lo
000010: 63 6B 20 20 61 6E 64 20 20 43 61 70 73 20 20 4C ck and Caps L
000020: 6F 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ock..
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 stat
000050: 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 31 es..... 11
000060: 20 20 20 23 42 42 32 31 20 20 4B 4D 20 47 45 54 #BB21 KM GET
000070: 20 53 54 41 54 45 20 20 20 20 20 20 20 20 46 65 STATE Fe
000080: 74 63 68 20 43 61 70 73 20 4C 6F 63 6B 20 61 6E tch Caps Lock an
000090: 64 20 53 68 69 66 74 20 4C 6F 63 6B 20 73 74 61 d Shift Lock sta
0000A0: 74 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 tes..... 1
0000B0: 32 20 20 20 23 42 42 32 34 20 20 4B 4D 20 47 45 2 #BB24 KM GE
0000C0: 54 20 4A 4F 59 53 54 49 43 4B 20 20 20 20 20 46 T JOYSTICK F
0000D0: 65 74 63 68 20 20 20 20 63 75 72 72 65 6E 74 20 etch current
0000E0: 20 20 20 73 74 61 74 65 20 20 20 20 6F 66 20 20 state of
0000F0: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 the..
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6A 6F jo
000120: 79 73 74 69 63 6B 28 73 29 2E 0D 0A 0D 0A 20 20 ystick(s).....
000130: 20 20 20 20 20 54 52 41 4E 53 4C 41 54 49 4F 4E TRANSLATION
000140: 20 54 41 42 4C 45 53 0D 0A 0D 0A 0D 0A 20 20 20 TABLES......
000150: 20 20 20 20 31 33 20 20 20 23 42 42 32 37 20 20 13 #BB27
000160: 4B 4D 20 53 45 54 20 54 52 41 4E 53 4C 41 54 45 KM SET TRANSLATE
000170: 20 20 20 20 53 65 74 20 65 6E 74 72 79 20 20 69 Set entry i
000180: 6E 20 20 6B 65 79 20 20 74 72 61 6E 73 6C 61 74 n key translat
000190: 69 6F 6E 20 20 74 61 62 6C 65 0D 0A 20 20 20 20 ion table..
0001A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001C0: 20 20 20 77 69 74 68 6F 75 74 20 73 68 69 66 74 without shift
0001D0: 20 6F 72 20 63 6F 6E 74 72 6F 6C 2E 0D 0A 0D 0A or control.....
0001E0: 20 20 20 20 20 20 20 31 34 20 20 20 23 42 42 32 14 #BB2
0001F0: 41 20 20 4B 4D 20 47 45 54 20 54 52 41 4E 53 4C A KM GET TRANSL
Size : 512 (Real : 512)
000000: 41 54 45 20 20 20 20 47 65 74 20 65 6E 74 72 79 ATE Get entry
000010: 20 66 72 6F 6D 20 6B 65 79 20 20 74 72 61 6E 73 from key trans
000020: 6C 61 74 69 6F 6E 20 20 74 61 62 6C 65 0D 0A 20 lation table..
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 20 20 20 20 20 20 77 69 74 68 6F 75 74 20 73 68 without sh
000060: 69 66 74 20 6F 72 20 63 6F 6E 74 72 6F 6C 2E 0D ift or control..
000070: 0A 0D 0A 20 20 20 20 20 20 20 31 35 20 20 20 23 ... 15 #
000080: 42 42 32 44 20 20 4B 4D 20 53 45 54 20 53 48 49 BB2D KM SET SHI
000090: 46 54 20 20 20 20 20 20 20 20 53 65 74 20 65 6E FT Set en
0000A0: 74 72 79 20 20 69 6E 20 20 6B 65 79 20 20 74 72 try in key tr
0000B0: 61 6E 73 6C 61 74 69 6F 6E 20 20 74 61 62 6C 65 anslation table
0000C0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 20 20 20 20 20 20 20 20 20 77 68 65 6E 20 73 68 when sh
0000F0: 69 66 74 20 6B 65 79 20 69 73 20 70 72 65 73 73 ift key is press
000100: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 36 ed..... 16
000110: 20 20 20 23 42 42 33 30 20 20 4B 4D 20 47 45 54 #BB30 KM GET
000120: 20 53 48 49 46 54 20 20 20 20 20 20 20 20 47 65 SHIFT Ge
000130: 74 20 65 6E 74 72 79 20 66 72 6F 6D 20 6B 65 79 t entry from key
000140: 20 20 74 72 61 6E 73 6C 61 74 69 6F 6E 20 20 74 translation t
000150: 61 62 6C 65 0D 0A 20 20 20 20 20 20 20 20 20 20 able..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 65 whe
000180: 6E 20 73 68 69 66 74 20 6B 65 79 20 69 73 20 70 n shift key is p
000190: 72 65 73 73 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 ressed.....
0001A0: 20 20 31 37 20 20 20 23 42 42 33 33 20 20 4B 4D 17 #BB33 KM
0001B0: 20 53 45 54 20 43 4F 4E 54 52 4F 4C 20 20 20 20 SET CONTROL
0001C0: 20 20 53 65 74 20 65 6E 74 72 79 20 20 69 6E 20 Set entry in
0001D0: 20 6B 65 79 20 20 74 72 61 6E 73 6C 61 74 69 6F key translatio
0001E0: 6E 20 20 74 61 62 6C 65 0D 0A 20 20 20 20 20 20 n table..
0001F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 77 68 65 6E 20 63 6F 6E 74 72 6F 6C 20 6B 65 when control ke
000020: 79 20 69 73 20 70 72 65 73 73 65 64 2E 0D 0A 0D y is pressed....
000030: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
000040: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
000050: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
000080: 31 34 2E 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 14.2............
000090: 0D 0A 20 20 20 20 20 20 20 31 38 20 20 20 23 42 .. 18 #B
0000A0: 42 33 36 20 20 4B 4D 20 47 45 54 20 43 4F 4E 54 B36 KM GET CONT
0000B0: 52 4F 4C 20 20 20 20 20 20 47 65 74 20 65 6E 74 ROL Get ent
0000C0: 72 79 20 66 6F 72 6D 20 6B 65 79 20 20 74 72 61 ry form key tra
0000D0: 6E 73 6C 61 74 69 6F 6E 20 20 74 61 62 6C 65 0D nslation table.
0000E0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 20 77 68 65 6E 20 63 6F 6E when con
000110: 74 72 6F 6C 20 6B 65 79 20 69 73 20 70 72 65 73 trol key is pres
000120: 73 65 64 2E 0D 0A 20 20 20 20 20 20 20 52 45 50 sed... REP
000130: 45 41 54 49 4E 47 0D 0A 0D 0A 0D 0A 20 20 20 20 EATING......
000140: 20 20 20 31 39 20 20 20 23 42 42 33 39 20 20 4B 19 #BB39 K
000150: 4D 20 53 45 54 20 52 45 50 45 41 54 20 20 20 20 M SET REPEAT
000160: 20 20 20 53 65 74 20 77 68 65 74 68 65 72 20 61 Set whether a
000170: 20 6B 65 79 20 6D 61 79 20 72 65 70 65 61 74 2E key may repeat.
000180: 0D 0A 0D 0A 20 20 20 20 20 20 20 32 30 20 20 20 .... 20
000190: 23 42 42 33 43 20 20 4B 4D 20 47 45 54 20 52 45 #BB3C KM GET RE
0001A0: 50 45 41 54 20 20 20 20 20 20 20 41 73 6B 20 69 PEAT Ask i
0001B0: 66 20 61 20 6B 65 79 20 69 73 20 61 6C 6C 6F 77 f a key is allow
0001C0: 65 64 20 74 6F 20 72 65 70 65 61 74 2E 0D 0A 0D ed to repeat....
0001D0: 0A 20 20 20 20 20 20 20 32 31 20 20 20 23 42 42 . 21 #BB
0001E0: 33 46 20 20 4B 4D 20 53 45 54 20 44 45 4C 41 59 3F KM SET DELAY
0001F0: 20 20 20 20 20 20 20 20 53 65 74 20 73 74 61 72 Set star
Size : 512 (Real : 512)
000000: 74 20 75 70 20 64 65 6C 61 79 20 61 6E 64 20 72 t up delay and r
000010: 65 70 65 61 74 20 73 70 65 65 64 2E 0D 0A 0D 0A epeat speed.....
000020: 20 20 20 20 20 20 20 32 32 20 20 20 23 42 42 34 22 #BB4
000030: 32 20 20 4B 4D 20 47 45 54 20 44 45 4C 41 59 20 2 KM GET DELAY
000040: 20 20 20 20 20 20 20 47 65 74 20 73 74 61 72 74 Get start
000050: 20 75 70 20 64 65 6C 61 79 20 61 6E 64 20 72 65 up delay and re
000060: 70 65 61 74 20 73 70 65 65 64 2E 0D 0A 0D 0A 0D peat speed......
000070: 0A 0D 0A 20 20 20 20 20 20 20 42 52 45 41 4B 53 ... BREAKS
000080: 0D 0A 0D 0A 20 20 20 20 20 20 20 32 33 20 20 20 .... 23
000090: 23 42 42 34 35 20 20 4B 4D 20 41 52 4D 20 42 52 #BB45 KM ARM BR
0000A0: 45 41 4B 20 20 20 20 20 20 20 20 41 6C 6C 6F 77 EAK Allow
0000B0: 20 62 72 65 61 6B 20 65 76 65 6E 74 73 20 74 6F break events to
0000C0: 20 62 65 20 67 65 6E 65 72 61 74 65 64 2E 0D 0A be generated...
0000D0: 0D 0A 20 20 20 20 20 20 20 32 34 20 20 20 23 42 .. 24 #B
0000E0: 42 34 38 20 20 4B 4D 20 44 49 53 41 52 4D 20 42 B48 KM DISARM B
0000F0: 52 45 41 4B 20 20 20 20 20 50 72 65 76 65 6E 74 REAK Prevent
000100: 20 20 20 62 72 65 61 6B 20 20 20 65 76 65 6E 74 break event
000110: 20 20 20 66 72 6F 6D 20 20 20 62 65 69 6E 67 0D from being.
000120: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 20 20 20 20 20 67 65 6E 65 72 61 74 65 generate
000150: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 32 35 20 d..... 25
000160: 20 20 23 42 42 34 42 20 20 4B 4D 20 42 52 45 41 #BB4B KM BREA
000170: 4B 20 45 56 45 4E 54 20 20 20 20 20 20 47 65 6E K EVENT Gen
000180: 65 72 61 74 65 20 61 20 62 72 65 61 6B 20 65 76 erate a break ev
000190: 65 6E 74 20 28 69 66 20 61 72 6D 65 64 29 2E 0D ent (if armed)..
0001A0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 34 2E 31 ..... 14.1
0001B0: 2E 32 20 45 6E 74 72 69 65 73 20 74 6F 20 74 68 .2 Entries to th
0001C0: 65 20 54 65 78 74 20 56 44 55 2E 0D 0A 0D 0A 0D e Text VDU......
0001D0: 0A 20 20 20 20 20 20 20 54 68 65 20 54 65 78 74 . The Text
0001E0: 20 56 44 55 20 69 73 20 61 20 63 68 61 72 61 63 VDU is a charac
0001F0: 74 65 72 20 62 61 73 65 64 20 73 63 72 65 65 6E ter based screen
Size : 512 (Real : 512)
000000: 20 64 72 69 76 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 driver.......
000010: 20 20 20 20 20 49 4E 49 54 49 41 4C 49 5A 41 54 INITIALIZAT
000020: 49 4F 4E 0D 0A 0D 0A 20 20 20 20 20 20 20 32 36 ION.... 26
000030: 20 20 20 23 42 42 34 45 20 20 54 58 54 20 49 4E #BB4E TXT IN
000040: 49 54 49 41 4C 49 53 45 20 20 20 20 20 20 49 6E ITIALISE In
000050: 69 74 69 61 6C 69 7A 65 20 74 68 65 20 54 65 78 itialize the Tex
000060: 74 20 56 44 55 2E 0D 0A 0D 0A 20 20 20 20 20 20 t VDU.....
000070: 20 32 37 20 20 20 23 42 42 35 31 20 20 54 58 54 27 #BB51 TXT
000080: 20 52 45 53 45 54 20 20 20 20 20 20 20 20 20 20 RESET
000090: 20 52 65 73 65 74 20 74 68 65 20 54 65 78 74 20 Reset the Text
0000A0: 56 44 55 20 2D 20 20 72 65 73 74 6F 72 65 20 20 VDU - restore
0000B0: 64 65 66 61 75 6C 74 0D 0A 20 20 20 20 20 20 20 default..
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 69 6E 64 69 72 65 63 74 69 6F 6E 73 20 20 20 20 indirections
0000F0: 61 6E 64 20 20 20 20 63 6F 6E 74 72 6F 6C 20 20 and control
000100: 20 20 63 6F 64 65 0D 0A 20 20 20 20 20 20 20 20 code..
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 f
000130: 75 6E 63 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 unctions.....
000140: 20 20 20 20 32 38 20 20 20 23 42 42 35 34 20 20 28 #BB54
000150: 54 58 54 20 56 44 55 20 45 4E 41 42 4C 45 20 20 TXT VDU ENABLE
000160: 20 20 20 20 41 6C 6C 6F 77 20 63 68 61 72 61 63 Allow charac
000170: 74 65 72 73 20 74 6F 20 62 65 20 70 6C 61 63 65 ters to be place
000180: 64 20 20 6F 6E 20 20 74 68 65 0D 0A 20 20 20 20 d on the..
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001B0: 20 20 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 20 20 screen.....
0001C0: 20 20 20 20 20 32 39 20 20 20 23 42 42 35 37 20 29 #BB57
0001D0: 20 54 58 54 20 56 44 55 20 44 49 53 41 42 4C 45 TXT VDU DISABLE
0001E0: 20 20 20 20 20 50 72 65 76 65 6E 74 20 63 68 61 Prevent cha
0001F0: 72 61 63 74 65 72 73 20 66 72 6F 6D 20 20 62 65 racters from be
Size : 512 (Real : 512)
000000: 69 6E 67 20 20 70 6C 61 63 65 64 0D 0A 20 20 20 ing placed..
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 6F 6E 20 74 68 65 20 73 63 72 65 65 on the scree
000040: 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 39 32 n..... 192
000050: 20 20 23 42 44 34 30 20 20 54 58 54 20 41 53 4B #BD40 TXT ASK
000060: 20 53 54 41 54 45 20 20 20 20 20 20 20 47 65 74 STATE Get
000070: 20 73 74 61 74 65 20 6F 66 20 74 68 65 20 74 65 state of the te
000080: 78 74 20 56 44 55 2E 0D 0A 0D 0A 0D 0A 20 20 20 xt VDU.......
000090: 20 20 20 20 43 48 41 52 41 43 54 45 52 53 0D 0A CHARACTERS..
0000A0: 0D 0A 20 20 20 20 20 20 20 33 30 20 20 23 42 42 .. 30 #BB
0000B0: 35 41 20 20 54 58 54 20 20 4F 55 54 50 55 54 20 5A TXT OUTPUT
0000C0: 20 20 20 20 20 20 20 20 20 4F 75 74 70 75 74 20 Output
0000D0: 61 20 63 68 61 72 61 63 74 65 72 20 6F 72 20 20 a character or
0000E0: 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 74 6F 0D control code to.
0000F0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 20 20 20 20 20 20 20 20 74 68 65 20 54 65 78 74 the Text
000120: 20 56 44 55 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 VDU.....
000130: 33 31 20 20 20 23 42 42 35 44 20 20 54 58 54 20 31 #BB5D TXT
000140: 57 52 20 43 48 41 52 20 20 20 20 20 20 20 20 20 WR CHAR
000150: 57 72 69 74 65 20 61 20 63 68 61 72 61 63 74 65 Write a characte
000160: 72 20 6F 6E 74 6F 20 74 68 65 20 73 63 72 65 65 r onto the scree
000170: 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 33 32 20 n..... 32
000180: 20 20 23 42 42 36 30 20 20 54 58 54 20 52 44 20 #BB60 TXT RD
000190: 43 48 41 52 20 20 20 20 20 20 20 20 20 52 65 61 CHAR Rea
0001A0: 64 20 61 20 63 68 61 72 61 63 74 65 72 20 66 72 d a character fr
0001B0: 6F 6D 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A om the screen...
0001C0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
0001D0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
0001E0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
0001F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
000010: 34 2E 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 4.3.............
000020: 0A 20 20 20 20 20 20 20 33 33 20 20 20 23 42 42 . 33 #BB
000030: 36 33 20 20 54 58 54 20 53 45 54 20 47 52 41 50 63 TXT SET GRAP
000040: 48 49 43 20 20 20 20 20 54 75 72 6E 20 20 6F 6E HIC Turn on
000050: 20 20 6F 72 20 20 6F 66 66 20 20 74 68 65 20 20 or off the
000060: 47 72 61 70 68 69 63 73 20 20 20 56 44 55 0D 0A Graphics VDU..
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 20 20 20 20 20 20 20 63 68 61 72 61 63 74 65 72 character
0000A0: 20 77 72 69 74 69 6E 67 20 6F 70 74 69 6F 6E 2E writing option.
0000B0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 49 4E ...... WIN
0000C0: 44 4F 57 53 0D 0A 0D 0A 20 20 20 20 20 20 20 33 DOWS.... 3
0000D0: 34 20 20 20 23 42 42 36 36 20 20 54 58 54 20 57 4 #BB66 TXT W
0000E0: 49 4E 20 45 4E 41 42 4C 45 20 20 20 20 20 20 53 IN ENABLE S
0000F0: 65 74 20 73 69 7A 65 20 6F 66 20 74 68 65 20 63 et size of the c
000100: 75 72 72 65 6E 74 20 74 65 78 74 20 77 69 6E 64 urrent text wind
000110: 6F 77 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 33 35 ow..... 35
000120: 20 20 20 23 42 42 36 39 20 20 54 58 54 20 47 45 #BB69 TXT GE
000130: 54 20 57 49 4E 44 4F 57 20 20 20 20 20 20 47 65 T WINDOW Ge
000140: 74 20 20 74 68 65 20 20 73 69 7A 65 20 20 6F 66 t the size of
000150: 20 20 74 68 65 20 20 63 75 72 72 65 6E 74 20 20 the current
000160: 74 65 78 74 0D 0A 20 20 20 20 20 20 20 20 20 20 text..
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 6E win
000190: 64 6F 77 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 33 dow..... 3
0001A0: 36 20 20 20 23 42 42 36 43 20 20 54 58 54 20 43 6 #BB6C TXT C
0001B0: 4C 45 41 52 20 57 49 4E 44 4F 57 20 20 20 20 43 LEAR WINDOW C
0001C0: 6C 65 61 72 20 63 75 72 72 65 6E 74 20 77 69 6E lear current win
0001D0: 64 6F 77 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 dow.......
0001E0: 20 43 55 52 53 4F 52 0D 0A 0D 0A 20 20 20 20 20 CURSOR....
0001F0: 20 20 33 37 20 20 20 23 42 42 36 46 20 20 54 58 37 #BB6F TX
Size : 512 (Real : 512)
000000: 54 20 53 45 54 20 43 4F 4C 55 4D 4E 20 20 20 20 T SET COLUMN
000010: 20 20 53 65 74 20 63 75 72 73 6F 72 20 68 6F 72 Set cursor hor
000020: 69 7A 6F 6E 74 61 6C 20 70 6F 73 69 74 69 6F 6E izontal position
000030: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 33 38 20 20 ..... 38
000040: 20 23 42 42 37 32 20 20 54 58 54 20 53 45 54 20 #BB72 TXT SET
000050: 52 4F 57 20 20 20 20 20 20 20 20 20 53 65 74 20 ROW Set
000060: 63 75 72 73 6F 72 20 76 65 72 74 69 63 61 6C 20 cursor vertical
000070: 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 position.....
000080: 20 20 20 20 33 39 20 20 20 23 42 42 37 35 20 20 39 #BB75
000090: 54 58 54 20 53 45 54 20 43 55 52 53 4F 52 20 20 TXT SET CURSOR
0000A0: 20 20 20 20 53 65 74 20 63 75 72 73 6F 72 20 70 Set cursor p
0000B0: 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 osition.....
0000C0: 20 20 20 34 30 20 20 20 23 42 42 37 38 20 20 54 40 #BB78 T
0000D0: 58 54 20 47 45 54 20 43 55 52 53 4F 52 20 20 20 XT GET CURSOR
0000E0: 20 20 20 41 73 6B 20 63 75 72 72 65 6E 74 20 63 Ask current c
0000F0: 75 72 73 6F 72 20 70 6F 73 69 74 69 6F 6E 2E 0D ursor position..
000100: 0A 0D 0A 20 20 20 20 20 20 20 34 31 20 20 20 23 ... 41 #
000110: 42 42 37 42 20 20 54 58 54 20 43 55 52 20 45 4E BB7B TXT CUR EN
000120: 41 42 4C 45 20 20 20 20 20 20 41 6C 6C 6F 77 20 ABLE Allow
000130: 63 75 72 73 6F 72 20 64 69 73 70 6C 61 79 20 2D cursor display -
000140: 20 75 73 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 user.....
000150: 20 34 32 20 20 20 23 42 42 37 45 20 20 54 58 54 42 #BB7E TXT
000160: 20 43 55 52 20 44 49 53 41 42 4C 45 20 20 20 20 CUR DISABLE
000170: 20 44 69 73 73 61 6C 6C 6F 77 20 63 75 72 73 6F Dissallow curso
000180: 72 20 64 69 73 70 6C 61 79 20 2D 20 75 73 65 72 r display - user
000190: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 34 33 20 20 ..... 43
0001A0: 20 23 42 42 38 31 20 20 54 58 54 20 43 55 52 20 #BB81 TXT CUR
0001B0: 4F 4E 20 20 20 20 20 20 20 20 20 20 41 6C 6C 6F ON Allo
0001C0: 77 20 63 75 72 73 6F 72 20 64 69 73 70 6C 61 79 w cursor display
0001D0: 20 2D 20 73 79 73 74 65 6D 2E 0D 0A 0D 0A 20 20 - system.....
0001E0: 20 20 20 20 20 34 34 20 20 20 23 42 42 38 34 20 44 #BB84
0001F0: 20 54 58 54 20 43 55 52 20 4F 46 46 20 20 20 20 TXT CUR OFF
Size : 512 (Real : 512)
000000: 20 20 20 20 20 44 69 73 73 61 6C 6C 6F 77 20 63 Dissallow c
000010: 75 72 73 6F 72 20 64 69 73 70 6C 61 79 20 2D 20 ursor display -
000020: 73 79 73 74 65 6D 2E 0D 0A 0D 0A 20 20 20 20 20 system.....
000030: 20 20 34 35 20 20 20 23 42 42 38 37 20 20 54 58 45 #BB87 TX
000040: 54 20 56 41 4C 49 44 41 54 45 20 20 20 20 20 20 T VALIDATE
000050: 20 20 43 68 65 63 6B 20 69 66 20 61 20 63 75 72 Check if a cur
000060: 73 6F 72 20 70 6F 73 69 74 69 6F 6E 20 20 69 73 sor position is
000070: 20 20 77 69 74 68 69 6E 0D 0A 20 20 20 20 20 20 within..
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 74 68 65 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A the window.....
0000B0: 20 20 20 20 20 20 20 34 36 20 20 20 23 42 42 38 46 #BB8
0000C0: 41 20 20 54 58 54 20 50 4C 41 43 45 20 43 55 52 A TXT PLACE CUR
0000D0: 53 4F 52 20 20 20 20 50 75 74 20 61 20 63 75 72 SOR Put a cur
0000E0: 73 6F 72 20 62 6C 6F 62 20 6F 6E 20 74 68 65 20 sor blob on the
0000F0: 73 63 72 65 65 6E 2E 0D 0A 0D 0A 20 20 20 20 20 screen.....
000100: 20 20 34 37 20 20 20 23 42 42 38 44 20 20 54 58 47 #BB8D TX
000110: 54 20 52 45 4D 4F 56 45 20 43 55 52 53 4F 52 20 T REMOVE CURSOR
000120: 20 20 54 61 6B 65 20 61 20 63 75 72 73 6F 72 20 Take a cursor
000130: 62 6C 6F 62 20 6F 66 66 20 74 68 65 20 73 63 72 blob off the scr
000140: 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 een.......
000150: 20 49 4E 4B 53 0D 0A 0D 0A 20 20 20 20 20 20 20 INKS....
000160: 34 38 20 20 20 23 42 42 39 30 20 20 54 58 54 20 48 #BB90 TXT
000170: 53 45 54 20 50 45 4E 20 20 20 20 20 20 20 20 20 SET PEN
000180: 53 65 74 20 69 6E 6B 20 66 6F 72 20 77 72 69 74 Set ink for writ
000190: 69 6E 67 20 63 68 61 72 61 63 74 65 72 73 2E 0D ing characters..
0001A0: 0A 0D 0A 20 20 20 20 20 20 20 34 39 20 20 20 23 ... 49 #
0001B0: 42 42 39 33 20 20 54 58 54 20 47 45 54 20 50 45 BB93 TXT GET PE
0001C0: 4E 20 20 20 20 20 20 20 20 20 47 65 74 20 69 6E N Get in
0001D0: 6B 20 66 6F 72 20 77 72 69 74 69 6E 67 20 63 68 k for writing ch
0001E0: 61 72 61 63 74 65 72 73 2E 0D 0A 0D 0A 20 20 20 aracters.....
0001F0: 20 20 20 20 35 30 20 20 20 23 42 42 39 36 20 20 50 #BB96
Size : 512 (Real : 512)
000000: 54 58 54 20 53 45 54 20 50 41 50 45 52 20 20 20 TXT SET PAPER
000010: 20 20 20 20 53 65 74 20 69 6E 6B 20 66 6F 72 20 Set ink for
000020: 77 72 69 74 69 6E 67 20 74 65 78 74 20 62 61 63 writing text bac
000030: 6B 67 72 6F 75 6E 64 2E 0D 0A 0D 0A 20 20 20 20 kground.....
000040: 20 20 20 35 31 20 20 20 23 42 42 39 39 20 20 54 51 #BB99 T
000050: 58 54 20 47 45 54 20 50 41 50 45 52 20 20 20 20 XT GET PAPER
000060: 20 20 20 47 65 74 20 69 6E 6B 20 66 6F 72 20 77 Get ink for w
000070: 72 69 74 69 6E 67 20 74 65 78 74 20 62 61 63 6B riting text back
000080: 67 72 6F 75 6E 64 2E 0D 0A 0D 0A 20 20 20 20 20 ground.....
000090: 20 20 35 32 20 20 20 23 42 42 39 43 20 20 54 58 52 #BB9C TX
0000A0: 54 20 49 4E 56 45 52 53 45 20 20 20 20 20 20 20 T INVERSE
0000B0: 20 20 53 77 61 70 20 63 75 72 72 65 6E 74 20 70 Swap current p
0000C0: 65 6E 20 61 6E 64 20 70 61 70 65 72 20 69 6E 6B en and paper ink
0000D0: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 35 33 20 s..... 53
0000E0: 20 20 23 42 42 39 46 20 20 54 58 54 20 53 45 54 #BB9F TXT SET
0000F0: 20 42 41 43 4B 20 20 20 20 20 20 20 20 41 6C 6C BACK All
000100: 6F 77 20 20 6F 72 20 20 64 69 73 73 61 6C 6C 6F ow or dissallo
000110: 77 20 20 62 61 63 6B 67 72 6F 75 6E 64 20 62 65 w background be
000120: 69 6E 67 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ing..
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 writ
000150: 74 65 6E 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ten.............
000160: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
000170: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
000180: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001A0: 20 20 20 20 70 61 67 65 20 31 34 2E 34 0D 0A 0D page 14.4...
0001B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
0001C0: 20 20 35 34 20 20 20 23 42 42 41 32 20 20 54 58 54 #BBA2 TX
0001D0: 54 20 47 45 54 20 42 41 43 4B 20 20 20 20 20 20 T GET BACK
0001E0: 20 20 41 73 6B 20 69 66 20 62 61 63 6B 67 72 6F Ask if backgro
0001F0: 75 6E 64 20 69 73 20 62 65 69 6E 67 20 77 72 69 und is being wri
Size : 512 (Real : 512)
000000: 74 74 65 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 tten.....
000010: 4D 41 54 52 49 43 45 53 0D 0A 0D 0A 20 20 20 20 MATRICES....
000020: 20 20 20 35 35 20 20 20 23 42 42 41 35 20 20 54 55 #BBA5 T
000030: 58 54 20 47 45 54 20 4D 41 54 52 49 58 20 20 20 XT GET MATRIX
000040: 20 20 20 47 65 74 20 74 68 65 20 61 64 64 72 65 Get the addre
000050: 73 73 20 6F 66 20 61 20 63 68 61 72 61 63 74 65 ss of a characte
000060: 72 20 6D 61 74 72 69 78 2E 0D 0A 0D 0A 20 20 20 r matrix.....
000070: 20 20 20 20 35 36 20 20 20 23 42 42 41 38 20 20 56 #BBA8
000080: 54 58 54 20 53 45 54 20 4D 41 54 52 49 58 20 20 TXT SET MATRIX
000090: 20 20 20 20 53 65 74 20 61 20 63 68 61 72 61 63 Set a charac
0000A0: 74 65 72 20 6D 61 74 72 69 78 2E 0D 0A 0D 0A 20 ter matrix.....
0000B0: 20 20 20 20 20 20 35 37 20 20 20 23 42 42 41 42 57 #BBAB
0000C0: 20 20 54 58 54 20 53 45 54 20 4D 20 54 41 42 4C TXT SET M TABL
0000D0: 45 20 20 20 20 20 53 65 74 20 20 74 68 65 20 20 E Set the
0000E0: 75 73 65 72 20 20 64 65 66 69 6E 65 64 20 20 6D user defined m
0000F0: 61 74 72 69 78 20 20 74 61 62 6C 65 0D 0A 20 20 atrix table..
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000120: 20 20 20 20 20 61 64 64 72 65 73 73 2E 0D 0A 0D address....
000130: 0A 20 20 20 20 20 20 20 35 38 20 20 20 23 42 42 . 58 #BB
000140: 41 45 20 20 54 58 54 20 47 45 54 20 4D 20 54 41 AE TXT GET M TA
000150: 42 4C 45 20 20 20 20 20 47 65 74 20 75 73 65 72 BLE Get user
000160: 20 64 65 66 69 6E 65 64 20 6D 61 74 72 69 78 20 defined matrix
000170: 74 61 62 6C 65 20 61 64 64 72 65 73 73 2E 0D 0A table address...
000180: 0D 0A 0D 0A 20 20 20 20 20 20 20 43 4F 4E 54 52 .... CONTR
000190: 4F 4C 20 43 4F 44 45 53 0D 0A 0D 0A 20 20 20 20 OL CODES....
0001A0: 20 20 20 35 39 20 20 20 23 42 42 42 31 20 20 54 59 #BBB1 T
0001B0: 58 54 20 47 45 54 20 43 4F 4E 54 52 4F 4C 53 20 XT GET CONTROLS
0001C0: 20 20 20 46 65 74 63 68 20 61 64 64 72 65 73 73 Fetch address
0001D0: 20 6F 66 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 of control code
0001E0: 20 74 61 62 6C 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 table.......
0001F0: 20 20 20 20 53 54 52 45 41 4D 53 0D 0A 0D 0A 20 STREAMS....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 36 30 20 20 20 23 42 42 42 34 60 #BBB4
000010: 20 20 54 58 54 20 53 54 52 20 53 45 4C 45 43 54 TXT STR SELECT
000020: 20 20 20 20 20 20 53 65 6C 65 63 74 20 20 54 65 Select Te
000030: 78 74 20 56 44 55 20 73 74 72 65 61 6D 2E 0D 0A xt VDU stream...
000040: 0D 0A 20 20 20 20 20 20 20 36 31 20 20 20 23 42 .. 61 #B
000050: 42 42 37 20 20 54 58 54 20 53 57 41 50 20 53 54 BB7 TXT SWAP ST
000060: 52 45 41 4D 53 20 20 20 20 53 77 61 70 20 74 68 REAMS Swap th
000070: 65 20 73 74 61 74 65 73 20 6F 66 20 74 77 6F 20 e states of two
000080: 73 74 72 65 61 6D 73 2E 0D 0A 0D 0A 0D 0A 20 20 streams.......
000090: 20 20 20 20 20 31 34 2E 31 2E 33 20 45 6E 74 72 14.1.3 Entr
0000A0: 69 65 73 20 74 6F 20 74 68 65 20 47 72 61 70 68 ies to the Graph
0000B0: 69 63 73 20 56 44 55 0D 0A 0D 0A 20 20 20 20 20 ics VDU....
0000C0: 20 20 54 68 65 20 47 72 61 70 68 69 63 73 20 56 The Graphics V
0000D0: 44 55 20 64 65 61 6C 73 20 77 69 74 68 20 69 6E DU deals with in
0000E0: 64 69 76 69 64 75 61 6C 20 70 69 78 65 6C 73 2E dividual pixels.
0000F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 4E 49 ...... INI
000100: 54 49 41 4C 49 5A 41 54 49 4F 4E 0D 0A 0D 0A 20 TIALIZATION....
000110: 20 20 20 20 20 20 36 32 20 20 20 23 42 42 42 41 62 #BBBA
000120: 20 20 47 52 41 20 49 4E 49 54 49 41 4C 49 53 45 GRA INITIALISE
000130: 20 20 20 20 20 20 49 6E 69 74 69 61 6C 69 7A 65 Initialize
000140: 20 74 68 65 20 47 72 61 70 68 69 63 73 20 56 44 the Graphics VD
000150: 55 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 36 33 20 U..... 63
000160: 20 20 23 42 42 42 44 20 20 47 52 41 20 52 45 53 #BBBD GRA RES
000170: 45 54 20 20 20 20 20 20 20 20 20 20 20 52 65 73 ET Res
000180: 65 74 20 20 74 68 65 20 20 47 72 61 70 68 69 63 et the Graphic
000190: 73 20 20 56 44 55 20 20 2D 20 72 65 73 74 6F 72 s VDU - restor
0001A0: 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 e..
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001C0: 20 20 20 20 20 20 20 20 20 20 73 74 61 6E 64 61 standa
0001D0: 72 64 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 2E rd indirections.
0001E0: 0D 0A 20 20 20 20 20 20 20 31 39 33 20 20 23 42 .. 193 #B
0001F0: 44 34 33 20 20 47 52 41 20 44 45 46 41 55 4C 54 D43 GRA DEFAULT
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 53 65 74 20 64 65 66 Set def
000010: 61 75 6C 74 20 47 72 61 70 68 69 63 73 20 56 44 ault Graphics VD
000020: 55 20 6D 6F 64 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 U modes.......
000030: 20 20 20 20 20 43 55 52 52 45 4E 54 20 50 4F 53 CURRENT POS
000040: 49 54 49 4F 4E 0D 0A 0D 0A 20 20 20 20 20 20 20 ITION....
000050: 36 34 20 20 20 23 42 42 43 30 20 20 47 52 41 20 64 #BBC0 GRA
000060: 4D 4F 56 45 20 41 42 53 4F 4C 55 54 45 20 20 20 MOVE ABSOLUTE
000070: 4D 6F 76 65 20 74 6F 20 61 6E 20 61 62 73 6F 6C Move to an absol
000080: 75 74 65 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D ute position....
000090: 0A 20 20 20 20 20 20 20 36 35 20 20 20 23 42 42 . 65 #BB
0000A0: 43 33 20 20 47 52 41 20 4D 4F 56 45 20 52 45 4C C3 GRA MOVE REL
0000B0: 41 54 49 56 45 20 20 20 4D 6F 76 65 20 72 65 6C ATIVE Move rel
0000C0: 61 74 69 76 65 20 74 6F 20 63 75 72 72 65 6E 74 ative to current
0000D0: 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 position.....
0000E0: 20 20 20 20 20 36 36 20 20 20 23 42 42 43 36 20 66 #BBC6
0000F0: 20 47 52 41 20 41 53 4B 20 43 55 52 53 4F 52 20 GRA ASK CURSOR
000100: 20 20 20 20 20 47 65 74 20 74 68 65 20 63 75 72 Get the cur
000110: 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A rent position...
000120: 0D 0A 20 20 20 20 20 20 20 36 37 20 20 20 23 42 .. 67 #B
000130: 42 43 39 20 20 47 52 41 20 53 45 54 20 4F 52 49 BC9 GRA SET ORI
000140: 47 49 4E 20 20 20 20 20 20 53 65 74 20 20 20 74 GIN Set t
000150: 68 65 20 20 20 6F 72 69 67 69 6E 20 20 20 6F 66 he origin of
000160: 20 20 20 20 74 68 65 20 20 20 20 75 73 65 72 0D the user.
000170: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 20 20 20 20 63 6F 6F 72 64 69 6E 61 coordina
0001A0: 74 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 36 tes..... 6
0001B0: 38 20 20 20 23 42 42 43 43 20 20 47 52 41 20 47 8 #BBCC GRA G
0001C0: 45 54 20 4F 52 49 47 49 4E 20 20 20 20 20 20 47 ET ORIGIN G
0001D0: 65 74 20 20 20 74 68 65 20 20 20 6F 72 69 67 69 et the origi
0001E0: 6E 20 20 20 6F 66 20 20 20 20 74 68 65 20 20 20 n of the
0001F0: 20 75 73 65 72 0D 0A 20 20 20 20 20 20 20 20 20 user..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6F co
000020: 6F 72 64 69 6E 61 74 65 73 2E 0D 0A 0D 0A 20 20 ordinates.....
000030: 20 20 20 20 20 31 39 37 20 20 23 42 44 34 46 20 197 #BD4F
000040: 20 47 52 41 20 46 52 4F 4D 20 55 53 45 52 20 20 GRA FROM USER
000050: 20 20 20 20 20 43 6F 6E 76 65 72 74 20 20 75 73 Convert us
000060: 65 72 20 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 er coordinates
000070: 20 20 74 6F 20 20 20 62 61 73 65 0D 0A 20 20 20 to base..
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 63 6F 6F 72 64 69 6E 61 74 65 73 2E coordinates.
0000B0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
0000C0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
0000D0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
000100: 20 31 34 2E 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 14.5...........
000110: 0A 0D 0A 20 20 20 20 20 20 20 57 49 4E 44 4F 57 ... WINDOW
000120: 0D 0A 0D 0A 20 20 20 20 20 20 20 36 39 20 20 20 .... 69
000130: 23 42 42 43 46 20 20 47 52 41 20 57 49 4E 20 57 #BBCF GRA WIN W
000140: 49 44 54 48 20 20 20 20 20 20 20 53 65 74 20 20 IDTH Set
000150: 6C 65 66 74 20 20 61 6E 64 20 20 72 69 67 68 74 left and right
000160: 20 20 65 64 67 65 73 20 20 6F 66 20 20 20 74 68 edges of th
000170: 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 e..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 20 20 20 20 20 20 67 72 61 70 68 69 graphi
0001A0: 63 73 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A 20 20 cs window.....
0001B0: 20 20 20 20 20 37 30 20 20 20 23 42 42 44 32 20 70 #BBD2
0001C0: 20 47 52 41 20 57 49 4E 20 48 45 49 47 48 54 20 GRA WIN HEIGHT
0001D0: 20 20 20 20 20 53 65 74 20 20 74 6F 70 20 20 61 Set top a
0001E0: 6E 64 20 20 62 6F 74 74 6F 6D 20 20 65 64 67 65 nd bottom edge
0001F0: 73 20 20 6F 66 20 20 20 74 68 65 0D 0A 20 20 20 s of the..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 67 72 61 70 68 69 63 73 20 77 69 6E graphics win
000030: 64 6F 77 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 37 dow..... 7
000040: 31 20 20 20 23 42 42 44 35 20 20 47 52 41 20 47 1 #BBD5 GRA G
000050: 45 54 20 57 20 57 49 44 54 48 20 20 20 20 20 47 ET W WIDTH G
000060: 65 74 20 74 68 65 20 6C 65 66 74 20 61 6E 64 20 et the left and
000070: 72 69 67 68 74 20 20 65 64 67 65 73 20 20 6F 66 right edges of
000080: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 the..
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 72 gr
0000B0: 61 70 68 69 63 73 20 77 69 6E 64 6F 77 2E 0D 0A aphics window...
0000C0: 0D 0A 20 20 20 20 20 20 20 37 32 20 20 20 23 42 .. 72 #B
0000D0: 42 44 38 20 20 47 52 41 20 47 45 54 20 57 20 48 BD8 GRA GET W H
0000E0: 45 49 47 48 54 20 20 20 20 47 65 74 20 74 68 65 EIGHT Get the
0000F0: 20 74 6F 70 20 61 6E 64 20 62 6F 74 74 6F 6D 20 top and bottom
000100: 20 65 64 67 65 73 20 20 6F 66 20 20 74 68 65 0D edges of the.
000110: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 20 20 20 20 67 72 61 70 68 69 63 73 graphics
000140: 20 77 69 6E 64 6F 77 2E 0D 0A 0D 0A 20 20 20 20 window.....
000150: 20 20 20 37 33 20 20 20 23 42 42 44 42 20 20 47 73 #BBDB G
000160: 52 41 20 43 4C 45 41 52 20 57 49 4E 44 4F 57 20 RA CLEAR WINDOW
000170: 20 20 20 43 6C 65 61 72 20 74 68 65 20 67 72 61 Clear the gra
000180: 70 68 69 63 73 20 77 69 6E 64 6F 77 2E 0D 0A 0D phics window....
000190: 0A 0D 0A 20 20 20 20 20 20 20 49 4E 4B 53 0D 0A ... INKS..
0001A0: 0D 0A 20 20 20 20 20 20 20 37 34 20 20 20 23 42 .. 74 #B
0001B0: 42 44 45 20 20 47 52 41 20 53 45 54 20 50 45 4E BDE GRA SET PEN
0001C0: 20 20 20 20 20 20 20 20 20 53 65 74 20 74 68 65 Set the
0001D0: 20 67 72 61 70 68 69 63 73 20 70 6C 6F 74 74 69 graphics plotti
0001E0: 6E 67 20 69 6E 6B 2E 0D 0A 0D 0A 20 20 20 20 20 ng ink.....
0001F0: 20 20 37 35 20 20 20 23 42 42 45 31 20 20 47 52 75 #BBE1 GR
Size : 512 (Real : 512)
000000: 41 20 47 45 54 20 50 45 4E 20 20 20 20 20 20 20 A GET PEN
000010: 20 20 47 65 74 20 74 68 65 20 63 75 72 72 65 6E Get the curren
000020: 74 20 67 72 61 70 68 69 63 73 20 70 6C 6F 74 74 t graphics plott
000030: 69 6E 67 20 69 6E 6B 2E 0D 0A 0D 0A 20 20 20 20 ing ink.....
000040: 20 20 20 37 36 20 20 20 23 42 42 45 34 20 20 47 76 #BBE4 G
000050: 52 41 20 53 45 54 20 50 41 50 45 52 20 20 20 20 RA SET PAPER
000060: 20 20 20 53 65 74 20 74 68 65 20 67 72 61 70 68 Set the graph
000070: 69 63 73 20 62 61 63 6B 67 72 6F 75 6E 64 20 69 ics background i
000080: 6E 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 37 37 nk..... 77
000090: 20 20 20 23 42 42 45 37 20 20 47 52 41 20 47 45 #BBE7 GRA GE
0000A0: 54 20 50 41 50 45 52 20 20 20 20 20 20 20 47 65 T PAPER Ge
0000B0: 74 20 74 68 65 20 20 63 75 72 72 65 6E 74 20 20 t the current
0000C0: 67 72 61 70 68 69 63 73 20 20 62 61 63 6B 67 72 graphics backgr
0000D0: 6F 75 6E 64 0D 0A 20 20 20 20 20 20 20 20 20 20 ound..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6E 6B ink
000100: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 39 34 20 ..... 194
000110: 20 23 42 44 34 36 20 20 47 52 41 20 53 45 54 20 #BD46 GRA SET
000120: 42 41 43 4B 20 20 20 20 20 20 20 20 53 65 74 20 BACK Set
000130: 20 77 68 65 74 68 65 72 20 20 62 61 63 6B 67 72 whether backgr
000140: 6F 75 6E 64 20 20 69 73 20 20 20 74 6F 20 20 20 ound is to
000150: 62 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 be..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 74 writt
000180: 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 en.......
000190: 50 4C 4F 54 54 49 4E 47 0D 0A 0D 0A 20 20 20 20 PLOTTING....
0001A0: 20 20 20 37 38 20 20 20 23 42 42 45 41 20 20 47 78 #BBEA G
0001B0: 52 41 20 50 4C 4F 54 20 41 42 53 4F 4C 55 54 45 RA PLOT ABSOLUTE
0001C0: 20 20 20 50 6C 6F 74 20 61 20 70 6F 69 6E 74 20 Plot a point
0001D0: 61 74 20 61 6E 20 61 62 73 6F 6C 75 74 65 20 70 at an absolute p
0001E0: 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 osition.....
0001F0: 20 20 20 37 39 20 20 20 23 42 42 45 44 20 20 47 79 #BBED G
Size : 512 (Real : 512)
000000: 52 41 20 50 4C 4F 54 20 52 45 4C 41 54 49 56 45 RA PLOT RELATIVE
000010: 20 20 20 50 6C 6F 74 20 61 20 70 6F 69 6E 74 20 Plot a point
000020: 72 65 6C 61 74 69 76 65 20 74 6F 20 20 74 68 65 relative to the
000030: 20 20 63 75 72 72 65 6E 74 0D 0A 20 20 20 20 20 current..
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 20 position.....
000070: 20 20 20 20 20 20 54 45 53 54 49 4E 47 0D 0A 0D TESTING...
000080: 0A 20 20 20 20 20 20 20 38 30 20 20 20 23 42 42 . 80 #BB
000090: 46 30 20 20 47 52 41 20 54 45 53 54 20 41 42 53 F0 GRA TEST ABS
0000A0: 4F 4C 55 54 45 20 20 20 54 65 73 74 20 61 20 70 OLUTE Test a p
0000B0: 6F 69 6E 74 20 61 74 20 61 6E 20 61 62 73 6F 6C oint at an absol
0000C0: 75 74 65 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D ute position....
0000D0: 0A 20 20 20 20 20 20 20 38 31 20 20 20 23 42 42 . 81 #BB
0000E0: 46 33 20 20 47 52 41 20 54 45 53 54 20 52 45 4C F3 GRA TEST REL
0000F0: 41 54 49 56 45 20 20 20 54 65 73 74 20 61 20 70 ATIVE Test a p
000100: 6F 69 6E 74 20 72 65 6C 61 74 69 76 65 20 74 6F oint relative to
000110: 20 20 74 68 65 20 20 63 75 72 72 65 6E 74 0D 0A the current..
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 20 20 20 20 70 6F 73 69 74 69 6F 6E 2E position.
000150: 0D 0A 0D 0A 20 20 20 20 20 20 20 4C 49 4E 45 20 .... LINE
000160: 44 52 41 57 49 4E 47 0D 0A 0D 0A 20 20 20 20 20 DRAWING....
000170: 20 20 38 32 20 20 20 23 42 42 46 36 20 20 47 52 82 #BBF6 GR
000180: 41 20 4C 49 4E 45 20 41 42 53 4F 4C 55 54 45 20 A LINE ABSOLUTE
000190: 20 20 44 72 61 77 20 61 20 6C 69 6E 65 20 74 6F Draw a line to
0001A0: 20 61 6E 20 61 62 73 6F 6C 75 74 65 20 70 6F 73 an absolute pos
0001B0: 69 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 ition.....
0001C0: 20 38 33 20 20 20 23 42 42 46 39 20 20 47 52 41 83 #BBF9 GRA
0001D0: 20 4C 49 4E 45 20 52 45 4C 41 54 49 56 45 20 20 LINE RELATIVE
0001E0: 20 44 72 61 77 20 61 20 6C 69 6E 65 20 72 65 6C Draw a line rel
0001F0: 61 74 69 76 65 20 20 74 6F 20 20 74 68 65 20 20 ative to the
Size : 512 (Real : 512)
000000: 63 75 72 72 65 6E 74 0D 0A 20 20 20 20 20 20 20 current..
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 position.....
000040: 20 20 20 20 31 39 35 20 20 23 42 44 34 39 20 20 195 #BD49
000050: 47 52 41 20 53 45 54 20 46 49 52 53 54 20 20 20 GRA SET FIRST
000060: 20 20 20 20 53 65 74 20 77 68 65 74 68 65 72 20 Set whether
000070: 66 69 72 73 74 20 70 6F 69 6E 74 20 6F 66 20 61 first point of a
000080: 20 20 6C 69 6E 65 20 20 69 73 0D 0A 20 20 20 20 line is..
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 20 20 74 6F 20 62 65 20 70 6C 6F 74 74 65 64 to be plotted
0000C0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 39 36 20 ..... 196
0000D0: 20 23 42 44 34 43 20 20 47 52 41 20 53 45 54 20 #BD4C GRA SET
0000E0: 4C 49 4E 45 20 4D 41 53 4B 20 20 20 53 65 74 20 LINE MASK Set
0000F0: 6D 61 73 6B 20 66 6F 72 20 64 72 61 77 69 6E 67 mask for drawing
000100: 20 6C 69 6E 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 lines.......
000110: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
000120: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
000130: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000150: 20 70 61 67 65 20 31 34 2E 36 0D 0A 0D 0A 0D 0A page 14.6......
000160: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
000170: 52 45 41 20 46 49 4C 4C 49 4E 47 0D 0A 0D 0A 20 REA FILLING....
000180: 20 20 20 20 20 20 31 39 38 20 20 23 42 44 35 32 198 #BD52
000190: 20 20 47 52 41 20 46 49 4C 4C 20 20 20 20 20 20 GRA FILL
0001A0: 20 20 20 20 20 20 46 69 6C 6C 20 61 6E 20 61 72 Fill an ar
0001B0: 65 61 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E ea of the screen
0001C0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 43 48 41 52 ..... CHAR
0001D0: 41 43 54 45 52 20 44 52 41 57 49 4E 47 0D 0A 0D ACTER DRAWING...
0001E0: 0A 20 20 20 20 20 20 20 38 34 20 20 20 23 42 42 . 84 #BB
0001F0: 46 43 20 20 47 52 41 20 57 52 20 43 48 41 52 20 FC GRA WR CHAR
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 50 75 74 20 61 20 63 68 Put a ch
000010: 61 72 61 63 74 65 72 20 6F 6E 20 74 68 65 20 73 aracter on the s
000020: 63 72 65 65 6E 20 20 61 74 20 20 74 68 65 0D 0A creen at the..
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 20 20 20 20 20 20 20 63 75 72 72 65 6E 74 20 67 current g
000060: 72 61 70 68 69 63 73 20 70 6F 73 69 74 69 6F 6E raphics position
000070: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 34 2E 31 ..... 14.1
000080: 2E 34 20 45 6E 74 72 69 65 73 20 74 6F 20 74 68 .4 Entries to th
000090: 65 20 53 63 72 65 65 6E 20 50 61 63 6B 0D 0A 0D e Screen Pack...
0000A0: 0A 20 20 20 20 20 20 20 54 68 65 20 53 63 72 65 . The Scre
0000B0: 65 6E 20 50 61 63 6B 20 69 6E 74 65 72 66 61 63 en Pack interfac
0000C0: 65 73 20 74 68 65 20 54 65 78 74 20 61 6E 64 20 es the Text and
0000D0: 47 72 61 70 68 69 63 73 20 56 44 55 73 20 20 74 Graphics VDUs t
0000E0: 6F 20 20 74 68 65 20 20 73 63 72 65 65 6E 0D 0A o the screen..
0000F0: 20 20 20 20 20 20 20 68 61 72 64 77 61 72 65 2E hardware.
000100: 20 53 63 72 65 65 6E 20 66 75 6E 63 74 69 6F 6E Screen function
000110: 73 20 74 68 61 74 20 61 66 66 65 63 74 20 62 6F s that affect bo
000120: 74 68 20 74 65 78 74 20 20 61 6E 64 20 20 67 72 th text and gr
000130: 61 70 68 69 63 73 20 20 28 65 2E 67 2E 0D 0A 20 aphics (e.g...
000140: 20 20 20 20 20 20 69 6E 6B 20 63 6F 6C 6F 75 72 ink colour
000150: 73 29 20 61 72 65 20 6C 6F 63 61 74 65 64 20 69 s) are located i
000160: 6E 20 74 68 65 20 53 63 72 65 65 6E 20 50 61 63 n the Screen Pac
000170: 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 4E 49 k..... INI
000180: 54 49 41 4C 49 5A 41 54 49 4F 4E 0D 0A 0D 0A 20 TIALIZATION....
000190: 20 20 20 20 20 20 38 35 20 20 20 23 42 42 46 46 85 #BBFF
0001A0: 20 20 53 43 52 20 49 4E 49 54 49 41 4C 49 53 45 SCR INITIALISE
0001B0: 20 20 20 20 20 20 49 6E 69 74 69 61 6C 69 7A 65 Initialize
0001C0: 20 74 68 65 20 53 63 72 65 65 6E 20 50 61 63 6B the Screen Pack
0001D0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 38 36 20 20 ..... 86
0001E0: 20 23 42 43 30 32 20 20 53 43 52 20 52 45 53 45 #BC02 SCR RESE
0001F0: 54 20 20 20 20 20 20 20 20 20 20 20 52 65 73 65 T Rese
Size : 512 (Real : 512)
000000: 74 20 20 74 68 65 20 20 53 63 72 65 65 6E 20 20 t the Screen
000010: 50 61 63 6B 20 20 20 2D 20 20 20 72 65 73 74 6F Pack - resto
000020: 72 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 re..
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 20 20 20 20 20 20 20 20 73 74 61 6E 64 stand
000050: 61 72 64 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 ard indirections
000060: 2C 20 69 6E 6B 20 63 6F 6C 6F 75 72 73 20 61 6E , ink colours an
000070: 64 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 d..
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 20 20 20 20 20 20 20 20 20 20 66 6C 61 73 68 20 flash
0000A0: 72 61 74 65 73 2E 0D 0A 20 20 20 20 20 20 20 53 rates... S
0000B0: 43 52 45 45 4E 20 48 41 52 44 57 41 52 45 0D 0A CREEN HARDWARE..
0000C0: 0D 0A 20 20 20 20 20 20 20 38 37 20 20 23 42 43 .. 87 #BC
0000D0: 30 35 20 20 53 43 52 20 53 45 54 20 4F 46 46 53 05 SCR SET OFFS
0000E0: 45 54 20 20 20 20 20 20 20 53 65 74 20 74 68 65 ET Set the
0000F0: 20 6F 66 66 73 65 74 20 6F 66 20 20 74 68 65 20 offset of the
000100: 20 73 74 61 72 74 20 20 6F 66 20 20 74 68 65 0D start of the.
000110: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 20 20 20 20 73 63 72 65 65 6E 2E 0D screen..
000140: 0A 0D 0A 20 20 20 20 20 20 20 38 38 20 20 23 42 ... 88 #B
000150: 43 30 38 20 20 53 43 52 20 53 45 54 20 42 41 53 C08 SCR SET BAS
000160: 45 20 20 20 20 20 20 20 20 20 53 65 74 20 74 68 E Set th
000170: 65 20 61 72 65 61 20 6F 66 20 52 41 4D 20 20 74 e area of RAM t
000180: 6F 20 20 75 73 65 20 20 66 6F 72 20 20 74 68 65 o use for the
000190: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0001A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001B0: 20 20 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 screen
0001C0: 6D 65 6D 6F 72 79 2E 0D 0A 0D 0A 20 20 20 20 20 memory.....
0001D0: 20 20 31 39 39 20 23 42 44 35 35 20 20 53 43 52 199 #BD55 SCR
0001E0: 20 53 45 54 20 50 4F 53 49 54 49 4F 4E 20 20 20 SET POSITION
0001F0: 20 20 53 65 74 20 74 68 65 20 6C 6F 63 61 74 69 Set the locati
Size : 512 (Real : 512)
000000: 6F 6E 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E on of the screen
000010: 20 20 6D 65 6D 6F 72 79 0D 0A 20 20 20 20 20 20 memory..
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 77 69 74 68 6F 75 74 20 6D 6F 76 69 6E 67 20 without moving
000050: 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 20 the screen.....
000060: 20 20 20 20 20 20 38 39 20 20 23 42 43 30 42 20 89 #BC0B
000070: 20 53 43 52 20 47 45 54 20 4C 4F 43 41 54 49 4F SCR GET LOCATIO
000080: 4E 20 20 20 20 20 46 65 74 63 68 20 20 20 63 75 N Fetch cu
000090: 72 72 65 6E 74 20 20 20 62 61 73 65 20 20 20 61 rrent base a
0000A0: 6E 64 20 20 20 20 6F 66 66 73 65 74 0D 0A 20 20 nd offset..
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000D0: 20 20 20 20 20 73 65 74 74 69 6E 67 73 2E 0D 0A settings...
0000E0: 0D 0A 20 20 20 20 20 20 20 4D 4F 44 45 0D 0A 0D .. MODE...
0000F0: 0A 20 20 20 20 20 20 20 39 30 20 20 23 42 43 30 . 90 #BC0
000100: 45 20 20 53 43 52 20 53 45 54 20 4D 4F 44 45 20 E SCR SET MODE
000110: 20 20 20 20 20 20 20 20 53 65 74 20 73 63 72 65 Set scre
000120: 65 6E 20 69 6E 74 6F 20 6E 65 77 20 6D 6F 64 65 en into new mode
000130: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 39 31 20 20 ..... 91
000140: 23 42 43 31 31 20 20 53 43 52 20 47 45 54 20 4D #BC11 SCR GET M
000150: 4F 44 45 20 20 20 20 20 20 20 20 20 41 73 6B 20 ODE Ask
000160: 74 68 65 20 63 75 72 72 65 6E 74 20 73 63 72 65 the current scre
000170: 65 6E 20 6D 6F 64 65 2E 0D 0A 0D 0A 20 20 20 20 en mode.....
000180: 20 20 20 39 32 20 20 23 42 43 31 34 20 20 53 43 92 #BC14 SC
000190: 52 20 43 4C 45 41 52 20 20 20 20 20 20 20 20 20 R CLEAR
0001A0: 20 20 20 43 6C 65 61 72 20 74 68 65 20 73 63 72 Clear the scr
0001B0: 65 65 6E 20 28 74 6F 20 69 6E 6B 20 7A 65 72 6F een (to ink zero
0001C0: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 39 33 20 )..... 93
0001D0: 20 23 42 43 31 37 20 20 53 43 52 20 43 48 41 52 #BC17 SCR CHAR
0001E0: 20 4C 49 4D 49 54 53 20 20 20 20 20 20 41 73 20 LIMITS As
0001F0: 6B 20 73 69 7A 65 20 6F 66 20 74 68 65 20 73 63 k size of the sc
Size : 512 (Real : 512)
000000: 72 65 65 6E 20 69 6E 20 63 68 61 72 61 63 74 65 reen in characte
000010: 72 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 53 43 rs..... SC
000020: 52 45 45 4E 20 41 44 44 52 45 53 53 45 53 0D 0A REEN ADDRESSES..
000030: 0D 0A 20 20 20 20 20 20 20 39 34 20 20 23 42 43 .. 94 #BC
000040: 31 41 20 20 53 43 52 20 43 48 41 52 20 50 4F 53 1A SCR CHAR POS
000050: 49 54 49 4F 4E 20 20 20 20 43 6F 6E 76 65 72 74 ITION Convert
000060: 20 20 70 68 79 73 69 63 61 6C 20 20 63 6F 6F 72 physical coor
000070: 64 69 6E 61 74 65 73 20 20 74 6F 20 20 20 61 0D dinates to a.
000080: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 20 20 20 20 73 63 72 65 65 6E 20 70 screen p
0000B0: 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 osition.....
0000C0: 20 20 20 39 35 20 20 23 42 43 31 44 20 20 53 43 95 #BC1D SC
0000D0: 52 20 44 4F 54 20 50 4F 53 49 54 49 4F 4E 20 20 R DOT POSITION
0000E0: 20 20 20 43 6F 6E 76 65 72 74 20 62 61 73 65 20 Convert base
0000F0: 63 6F 6F 72 64 69 6E 61 74 65 73 20 74 6F 20 20 coordinates to
000100: 61 20 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 a screen..
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 70 6F 73 69 74 69 6F 6E 2E 0D 0A 0D 0A 20 position.....
000140: 20 20 20 20 20 20 39 36 20 20 23 42 43 32 30 20 96 #BC20
000150: 20 53 43 52 20 4E 45 58 54 20 42 59 54 45 20 20 SCR NEXT BYTE
000160: 20 20 20 20 20 20 53 74 65 70 20 61 20 73 63 72 Step a scr
000170: 65 65 6E 20 61 64 64 72 65 73 73 20 72 69 67 68 een address righ
000180: 74 20 6F 6E 65 20 62 79 74 65 2E 0D 0A 0D 0A 0D t one byte......
000190: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
0001A0: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
0001B0: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 34 page 14
0001E0: 2E 37 0D 0A 1A 20 20 20 20 20 20 20 20 20 20 70 .7... p
0001F0: 61 67 65 20 31 34 2E 31 30 0D 0A 1A 6F 66 20 74 age 14.10...of t
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000010: 20 20 20 39 37 20 20 23 42 43 32 33 20 20 53 43 97 #BC23 SC
000020: 52 20 50 52 45 56 20 42 59 54 45 20 20 20 20 20 R PREV BYTE
000030: 20 20 20 53 74 65 70 20 61 20 73 63 72 65 65 6E Step a screen
000040: 20 61 64 64 72 65 73 73 20 6C 65 66 74 20 6F 6E address left on
000050: 65 20 62 79 74 65 2E 0D 0A 0D 0A 20 20 20 20 20 e byte.....
000060: 20 20 39 38 20 20 23 42 43 32 36 20 20 53 43 52 98 #BC26 SCR
000070: 20 4E 45 58 54 20 4C 49 4E 45 20 20 20 20 20 20 NEXT LINE
000080: 20 20 53 74 65 70 20 61 20 73 63 72 65 65 6E 20 Step a screen
000090: 61 64 64 72 65 73 73 20 64 6F 77 6E 20 6F 6E 65 address down one
0000A0: 20 6C 69 6E 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 line.....
0000B0: 20 39 39 20 20 23 42 43 32 39 20 20 53 43 52 20 99 #BC29 SCR
0000C0: 50 52 45 56 20 4C 49 4E 45 20 20 20 20 20 20 20 PREV LINE
0000D0: 20 53 74 65 70 20 61 20 73 63 72 65 65 6E 20 61 Step a screen a
0000E0: 64 64 72 65 73 73 20 75 70 20 6F 6E 65 20 6C 69 ddress up one li
0000F0: 6E 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ne.......
000100: 49 4E 4B 53 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 INKS......
000110: 20 31 30 30 20 23 42 43 32 43 20 20 53 43 52 20 100 #BC2C SCR
000120: 49 4E 4B 20 45 4E 43 4F 44 45 20 20 20 20 20 20 INK ENCODE
000130: 20 45 6E 63 6F 64 65 20 61 6E 20 69 6E 6B 20 74 Encode an ink t
000140: 6F 20 63 6F 76 65 72 20 61 6C 6C 20 70 69 78 65 o cover all pixe
000150: 6C 73 20 69 6E 20 61 0D 0A 20 20 20 20 20 20 20 ls in a..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 62 79 74 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 byte.....
000190: 31 30 31 20 23 42 43 32 46 20 20 53 43 52 20 49 101 #BC2F SCR I
0001A0: 4E 4B 20 44 45 43 4F 44 45 20 20 20 20 20 20 20 NK DECODE
0001B0: 44 65 63 6F 64 65 20 61 6E 20 65 6E 63 6F 64 65 Decode an encode
0001C0: 64 20 69 6E 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 d ink.....
0001D0: 20 31 30 32 20 23 42 43 33 32 20 20 53 43 52 20 102 #BC32 SCR
0001E0: 53 45 54 20 49 4E 4B 20 20 20 20 20 20 20 20 20 SET INK
0001F0: 20 53 65 74 20 74 68 65 20 63 6F 6C 6F 75 72 73 Set the colours
Size : 512 (Real : 512)
000000: 20 69 6E 20 77 68 69 63 68 20 74 6F 20 64 69 73 in which to dis
000010: 70 6C 61 79 20 61 6E 0D 0A 20 20 20 20 20 20 20 play an..
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 69 6E 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ink..... 1
000050: 30 33 20 23 42 43 33 35 20 20 53 43 52 20 47 45 03 #BC35 SCR GE
000060: 54 20 49 4E 4B 20 20 20 20 20 20 20 20 20 20 41 T INK A
000070: 73 6B 20 74 68 65 20 63 6F 6C 6F 75 72 73 20 61 sk the colours a
000080: 6E 20 20 69 6E 6B 20 20 69 73 20 20 63 75 72 72 n ink is curr
000090: 65 6E 74 6C 79 0D 0A 20 20 20 20 20 20 20 20 20 ently..
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 di
0000C0: 73 70 6C 61 79 65 64 20 69 6E 2E 0D 0A 0D 0A 20 splayed in.....
0000D0: 20 20 20 20 20 20 31 30 34 20 23 42 43 33 38 20 104 #BC38
0000E0: 20 53 43 52 20 53 45 54 20 42 4F 52 44 45 52 20 SCR SET BORDER
0000F0: 20 20 20 20 20 20 53 65 74 20 74 68 65 20 63 6F Set the co
000100: 6C 6F 75 72 73 20 69 6E 20 20 77 68 69 63 68 20 lours in which
000110: 20 74 6F 20 20 64 69 73 70 6C 61 79 0D 0A 20 20 to display..
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 20 20 74 68 65 20 62 6F 72 64 65 72 2E the border.
000150: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 30 35 20 23 .... 105 #
000160: 42 43 33 42 20 20 53 43 52 20 47 45 54 20 42 4F BC3B SCR GET BO
000170: 52 44 45 52 20 20 20 20 20 20 20 41 73 6B 20 20 RDER Ask
000180: 74 68 65 20 20 20 63 6F 6C 6F 75 72 73 20 20 20 the colours
000190: 74 68 65 20 20 20 62 6F 72 64 65 72 20 20 20 69 the border i
0001A0: 73 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 s..
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001C0: 20 20 20 20 20 20 20 20 20 20 63 75 72 72 65 6E curren
0001D0: 74 6C 79 20 64 69 73 70 6C 61 79 65 64 20 69 6E tly displayed in
0001E0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 30 36 20 ..... 106
0001F0: 23 42 43 33 45 20 20 53 43 52 20 53 45 54 20 46 #BC3E SCR SET F
Size : 512 (Real : 512)
000000: 4C 41 53 48 49 4E 47 20 20 20 20 20 53 65 74 20 LASHING Set
000010: 74 68 65 20 66 6C 61 73 68 20 70 65 72 69 6F 64 the flash period
000020: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 30 37 s..... 107
000030: 20 23 42 43 34 31 20 20 53 43 52 20 47 45 54 20 #BC41 SCR GET
000040: 46 4C 41 53 48 49 4E 47 20 20 20 20 20 41 73 6B FLASHING Ask
000050: 20 74 68 65 20 63 75 72 72 65 6E 74 20 66 6C 61 the current fla
000060: 73 68 20 70 65 72 69 6F 64 73 2E 0D 0A 0D 0A 0D sh periods......
000070: 0A 20 20 20 20 20 20 20 4D 49 53 43 45 4C 4C 41 . MISCELLA
000080: 4E 45 4F 55 53 0D 0A 0D 0A 0D 0A 20 20 20 20 20 NEOUS......
000090: 20 20 31 30 38 20 23 42 43 34 34 20 20 53 43 52 108 #BC44 SCR
0000A0: 20 46 49 4C 4C 20 42 4F 58 20 20 20 20 20 20 20 FILL BOX
0000B0: 20 20 46 69 6C 6C 20 61 20 63 68 61 72 61 63 74 Fill a charact
0000C0: 65 72 20 61 72 65 61 20 20 6F 66 20 20 74 68 65 er area of the
0000D0: 20 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 screen..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 77 69 74 68 20 61 6E 20 69 6E 6B 2E 0D 0A 0D with an ink....
000110: 0A 20 20 20 20 20 20 20 31 30 39 20 23 42 43 34 . 109 #BC4
000120: 37 20 20 53 43 52 20 46 4C 4F 4F 44 20 42 4F 58 7 SCR FLOOD BOX
000130: 20 20 20 20 20 20 20 20 46 69 6C 6C 20 61 20 62 Fill a b
000140: 79 74 65 20 61 72 65 61 20 6F 66 20 74 68 65 20 yte area of the
000150: 73 63 72 65 65 6E 20 77 69 74 68 20 61 6E 0D 0A screen with an..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 20 20 69 6E 6B 2E 0D 0A 0D 0A 20 ink.....
000190: 20 20 20 20 20 20 31 31 30 20 23 42 43 34 41 20 110 #BC4A
0001A0: 20 53 43 52 20 43 48 41 52 20 49 4E 56 45 52 54 SCR CHAR INVERT
0001B0: 20 20 20 20 20 20 49 6E 76 65 72 74 20 61 20 63 Invert a c
0001C0: 68 61 72 61 63 74 65 72 20 70 6F 73 69 74 69 6F haracter positio
0001D0: 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 31 31 n..... 111
0001E0: 20 23 42 43 34 44 20 20 53 43 52 20 48 57 20 52 #BC4D SCR HW R
0001F0: 4F 4C 4C 20 20 20 20 20 20 20 20 20 20 4D 6F 76 OLL Mov
Size : 512 (Real : 512)
000000: 65 20 74 68 65 20 77 68 6F 6C 65 20 73 63 72 65 e the whole scre
000010: 65 6E 20 75 70 20 6F 72 20 64 6F 77 6E 20 65 69 en up or down ei
000020: 67 68 74 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ght..
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 20 20 20 20 20 20 20 20 20 70 69 78 65 pixe
000050: 6C 20 6C 69 6E 65 73 20 28 6F 6E 65 20 63 68 61 l lines (one cha
000060: 72 61 63 74 65 72 29 2E 0D 0A 0D 0A 20 20 20 20 racter).....
000070: 20 20 20 31 31 32 20 23 42 43 35 30 20 20 53 43 112 #BC50 SC
000080: 52 20 53 57 20 52 4F 4C 4C 20 20 20 20 20 20 20 R SW ROLL
000090: 20 20 20 4D 6F 76 65 20 61 6E 20 61 72 65 61 20 Move an area
0000A0: 6F 66 20 74 68 65 20 73 63 72 65 65 6E 20 75 70 of the screen up
0000B0: 20 6F 72 20 20 64 6F 77 6E 0D 0A 20 20 20 20 20 or down..
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 20 20 65 69 67 68 74 20 70 69 78 65 6C 20 6C 69 eight pixel li
0000F0: 6E 65 73 20 28 6F 6E 65 20 63 68 61 72 61 63 74 nes (one charact
000100: 65 72 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 er)..... 1
000110: 31 33 20 23 42 43 35 33 20 20 53 43 52 20 55 4E 13 #BC53 SCR UN
000120: 50 41 43 4B 20 20 20 20 20 20 20 20 20 20 20 45 PACK E
000130: 78 70 61 6E 64 20 20 61 20 20 63 68 61 72 61 63 xpand a charac
000140: 74 65 72 20 20 6D 61 74 72 69 78 20 20 66 6F 72 ter matrix for
000150: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 the..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 cu
000180: 72 72 65 6E 74 20 73 63 72 65 65 6E 20 6D 6F 64 rrent screen mod
000190: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 31 34 e..... 114
0001A0: 20 23 42 43 35 36 20 20 53 43 52 20 52 45 50 41 #BC56 SCR REPA
0001B0: 43 4B 20 20 20 20 20 20 20 20 20 20 20 43 6F 6D CK Com
0001C0: 70 72 65 73 73 20 61 20 20 63 68 61 72 61 63 74 press a charact
0001D0: 65 72 20 20 6D 61 74 72 69 78 20 20 74 6F 20 20 er matrix to
0001E0: 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 the..
0001F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 6E stan
000010: 64 61 72 64 20 66 6F 72 6D 2E 0D 0A 0D 0A 0D 0A dard form.......
000020: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
000030: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
000040: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
000070: 34 2E 38 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 4.8.............
000080: 0A 20 20 20 20 20 20 20 31 31 35 20 23 42 43 35 . 115 #BC5
000090: 39 20 20 53 43 52 20 41 43 43 45 53 53 20 20 20 9 SCR ACCESS
0000A0: 20 20 20 20 20 20 20 20 53 65 74 20 74 68 65 20 Set the
0000B0: 20 73 63 72 65 65 6E 20 20 77 72 69 74 65 20 20 screen write
0000C0: 6D 6F 64 65 20 20 66 6F 72 20 20 74 68 65 0D 0A mode for the..
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 47 72 61 70 68 69 63 73 20 Graphics
000100: 56 44 55 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 VDU..... 1
000110: 31 36 20 23 42 43 35 43 20 20 53 43 52 20 50 49 16 #BC5C SCR PI
000120: 58 45 4C 53 20 20 20 20 20 20 20 20 20 20 20 57 XELS W
000130: 72 69 74 65 20 61 20 70 69 78 65 6C 20 74 6F 20 rite a pixel to
000140: 74 68 65 20 20 73 63 72 65 65 6E 20 20 69 67 6E the screen ign
000150: 6F 72 69 6E 67 0D 0A 0D 0A 20 20 20 20 20 20 20 oring....
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 74 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 the Graphics VDU
000190: 20 77 72 69 74 65 20 6D 6F 64 65 2E 0D 0A 20 20 write mode...
0001A0: 20 20 20 20 20 4C 49 4E 45 20 44 52 41 57 49 4E LINE DRAWIN
0001B0: 47 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 31 G...... 11
0001C0: 37 20 23 42 43 35 37 20 20 53 43 52 20 48 4F 52 7 #BC57 SCR HOR
0001D0: 49 5A 4F 4E 54 41 4C 20 20 20 20 20 20 20 50 6C IZONTAL Pl
0001E0: 6F 74 20 61 20 70 75 72 65 6C 79 20 68 6F 72 69 ot a purely hori
0001F0: 7A 6F 6E 74 61 6C 20 6C 69 6E 65 2E 0D 0A 0D 0A zontal line.....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 31 31 38 20 23 42 43 36 32 118 #BC62
000010: 20 20 53 43 52 20 56 45 52 54 49 43 41 4C 20 20 SCR VERTICAL
000020: 20 20 20 20 20 20 20 50 6C 6F 74 20 61 20 70 75 Plot a pu
000030: 72 65 6C 79 20 76 65 72 74 69 63 61 6C 20 6C 69 rely vertical li
000040: 6E 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ne.......
000050: 31 34 2E 31 2E 35 20 45 6E 74 72 69 65 73 20 74 14.1.5 Entries t
000060: 6F 20 74 68 65 20 43 61 73 73 65 74 74 65 20 4D o the Cassette M
000070: 61 6E 61 67 65 72 2F 41 4D 53 44 4F 53 0D 0A 0D anager/AMSDOS...
000080: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 43 61 ... The Ca
000090: 73 73 65 74 74 65 20 4D 61 6E 61 67 65 72 20 68 ssette Manager h
0000A0: 61 6E 64 6C 65 73 20 72 65 61 64 69 6E 67 20 66 andles reading f
0000B0: 69 6C 65 73 20 66 72 6F 6D 20 74 61 70 65 20 61 iles from tape a
0000C0: 6E 64 20 77 72 69 74 69 6E 67 20 66 69 6C 65 73 nd writing files
0000D0: 0D 0A 20 20 20 20 20 20 20 74 6F 20 74 61 70 65 .. to tape
0000E0: 2E 20 41 4D 53 44 4F 53 20 69 6E 74 65 72 63 65 . AMSDOS interce
0000F0: 70 74 73 20 74 68 65 20 73 74 61 72 72 65 64 20 pts the starred
000100: 65 6E 74 72 69 65 73 20 61 6E 64 20 72 65 64 69 entries and redi
000110: 72 65 63 74 73 20 20 74 68 65 6D 20 20 73 6F 0D rects them so.
000120: 0A 20 20 20 20 20 20 20 74 68 65 79 20 72 65 61 . they rea
000130: 64 20 66 72 6F 6D 20 61 6E 64 20 77 72 69 74 65 d from and write
000140: 20 74 6F 20 64 69 73 63 2E 20 54 68 65 20 65 78 to disc. The ex
000150: 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 73 20 ternal commands
000160: 54 41 50 45 20 61 6E 64 20 20 44 49 53 43 0D 0A TAPE and DISC..
000170: 20 20 20 20 20 20 20 63 61 6E 20 62 65 20 75 73 can be us
000180: 65 64 20 74 6F 20 73 77 69 74 63 68 20 62 65 74 ed to switch bet
000190: 77 65 65 6E 20 74 68 65 20 74 61 70 65 20 20 61 ween the tape a
0001A0: 6E 64 20 20 64 69 73 63 20 20 76 65 72 73 69 6F nd disc versio
0001B0: 6E 73 20 20 6F 66 20 20 74 68 65 73 65 0D 0A 20 ns of these..
0001C0: 20 20 20 20 20 20 72 6F 75 74 69 6E 65 73 20 28 routines (
0001D0: 73 65 65 20 73 65 63 74 69 6F 6E 20 31 34 2E 36 see section 14.6
0001E0: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 4E 49 )..... INI
0001F0: 54 49 41 4C 49 5A 41 54 49 4F 4E 0D 0A 0D 0A 20 TIALIZATION....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 31 31 39 20 23 42 43 36 35 20 119 #BC65
000010: 20 43 41 53 20 49 4E 49 54 49 41 4C 49 53 45 20 CAS INITIALISE
000020: 20 20 20 20 20 20 49 6E 69 74 69 61 6C 69 7A 65 Initialize
000030: 20 20 74 68 65 20 20 43 61 73 73 65 74 74 65 20 the Cassette
000040: 20 4D 61 6E 61 67 65 72 20 20 20 2D 0D 0A 20 20 Manager -..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 63 6C 6F 73 65 20 61 6C 6C 20 73 close all s
000080: 74 72 65 61 6D 73 2C 20 73 65 74 20 20 64 65 66 treams, set def
000090: 61 75 6C 74 20 20 73 70 65 65 64 0D 0A 20 20 20 ault speed..
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 20 20 61 6E 64 20 65 6E 61 62 6C 65 20 6D and enable m
0000D0: 65 73 73 61 67 65 73 2E 0D 0A 0D 0A 20 20 20 20 essages.....
0000E0: 20 20 20 31 32 30 20 23 42 43 36 38 20 20 43 41 120 #BC68 CA
0000F0: 53 20 53 45 54 20 53 50 45 45 44 20 20 20 20 20 S SET SPEED
000100: 20 20 20 53 65 74 20 74 68 65 20 77 72 69 74 65 Set the write
000110: 20 73 70 65 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 speed.....
000120: 20 20 31 32 31 20 23 42 43 36 42 20 20 43 41 53 121 #BC6B CAS
000130: 20 4E 4F 49 53 59 20 20 20 20 20 20 20 20 20 20 NOISY
000140: 20 20 45 6E 61 62 6C 65 20 6F 72 20 64 69 73 61 Enable or disa
000150: 62 6C 65 20 70 72 6F 6D 70 74 20 6D 65 73 73 61 ble prompt messa
000160: 67 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4D ges..... M
000170: 4F 54 4F 52 20 43 4F 4E 54 52 4F 4C 0D 0A 0D 0A OTOR CONTROL....
000180: 20 20 20 20 20 20 20 31 32 32 20 23 42 43 36 45 122 #BC6E
000190: 20 20 43 41 53 20 53 54 41 52 54 20 4D 4F 54 4F CAS START MOTO
0001A0: 52 20 20 20 20 20 20 53 74 61 72 74 20 74 68 65 R Start the
0001B0: 20 63 61 73 73 65 74 74 65 20 6D 6F 74 6F 72 2E cassette motor.
0001C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 32 33 20 23 .... 123 #
0001D0: 42 43 37 31 20 20 43 41 53 20 53 54 4F 50 20 4D BC71 CAS STOP M
0001E0: 4F 54 4F 52 20 20 20 20 20 20 20 53 74 6F 70 20 OTOR Stop
0001F0: 74 68 65 20 63 61 73 73 65 74 74 65 20 6D 6F 74 the cassette mot
Size : 512 (Real : 512)
000000: 6F 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 32 or..... 12
000010: 34 20 23 42 43 37 34 20 20 43 41 53 20 52 45 53 4 #BC74 CAS RES
000020: 54 4F 52 45 20 4D 4F 54 4F 52 20 20 20 20 52 65 TORE MOTOR Re
000030: 73 74 6F 72 65 20 20 70 72 65 76 69 6F 75 73 20 store previous
000040: 20 73 74 61 74 65 20 20 6F 66 20 20 63 61 73 73 state of cass
000050: 65 74 74 65 0D 0A 20 20 20 20 20 20 20 20 20 20 ette..
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 6D 6F 74 mot
000080: 6F 72 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 or.........
000090: 20 20 52 45 41 44 49 4E 47 20 46 49 4C 45 53 0D READING FILES.
0000A0: 0A 0D 0A 20 20 20 20 20 20 20 31 32 35 20 23 42 ... 125 #B
0000B0: 43 37 37 20 20 2A 43 41 53 20 49 4E 20 4F 50 45 C77 *CAS IN OPE
0000C0: 4E 20 20 20 20 20 20 20 20 20 4F 70 65 6E 20 61 N Open a
0000D0: 20 66 69 6C 65 20 66 6F 72 20 69 6E 70 75 74 2E file for input.
0000E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 32 36 20 23 .... 126 #
0000F0: 42 43 37 41 20 20 2A 43 41 53 20 49 4E 20 43 4C BC7A *CAS IN CL
000100: 4F 53 45 20 20 20 20 20 20 20 20 43 6C 6F 73 65 OSE Close
000110: 20 74 68 65 20 69 6E 70 75 74 20 66 69 6C 65 20 the input file
000120: 70 72 6F 70 65 72 6C 79 2E 0D 0A 0D 0A 20 20 20 properly.....
000130: 20 20 20 20 31 32 37 20 23 42 43 37 44 20 20 2A 127 #BC7D *
000140: 43 41 53 20 49 4E 20 41 42 41 4E 44 4F 4E 20 20 CAS IN ABANDON
000150: 20 20 20 20 43 6C 6F 73 65 20 74 68 65 20 69 6E Close the in
000160: 70 75 74 20 66 69 6C 65 20 69 6D 6D 65 64 69 61 put file immedia
000170: 74 65 6C 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 tely.....
000180: 31 32 38 20 23 42 43 38 30 20 20 2A 43 41 53 20 128 #BC80 *CAS
000190: 49 4E 20 43 48 41 52 20 20 20 20 20 20 20 20 20 IN CHAR
0001A0: 52 65 61 64 20 61 20 63 68 61 72 61 63 74 65 72 Read a character
0001B0: 20 66 72 6F 6D 20 74 68 65 20 69 6E 70 75 74 20 from the input
0001C0: 66 69 6C 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 file.....
0001D0: 31 32 39 20 23 42 43 38 33 20 20 2A 43 41 53 20 129 #BC83 *CAS
0001E0: 49 4E 20 44 49 52 45 43 54 20 20 20 20 20 20 20 IN DIRECT
0001F0: 52 65 61 64 20 74 68 65 20 69 6E 70 75 74 20 66 Read the input f
Size : 512 (Real : 512)
000000: 69 6C 65 20 69 6E 74 6F 20 73 74 6F 72 65 2E 0D ile into store..
000010: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
000020: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
000030: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
000060: 65 20 31 34 2E 39 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A e 14.9..........
000070: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 33 30 20 23 .... 130 #
000080: 42 43 38 36 20 20 2A 43 41 53 20 52 45 54 55 52 BC86 *CAS RETUR
000090: 4E 20 20 20 20 20 20 20 20 20 20 50 75 74 20 74 N Put t
0000A0: 68 65 20 6C 61 73 74 20 63 68 61 72 61 63 74 65 he last characte
0000B0: 72 20 72 65 61 64 20 62 61 63 6B 2E 0D 0A 0D 0A r read back.....
0000C0: 20 20 20 20 20 20 20 31 33 31 20 23 42 43 38 39 131 #BC89
0000D0: 20 20 2A 43 41 53 20 54 45 53 54 20 45 4F 46 20 *CAS TEST EOF
0000E0: 20 20 20 20 20 20 20 48 61 76 65 20 77 65 20 72 Have we r
0000F0: 65 61 63 68 65 64 20 74 68 65 20 65 6E 64 20 20 eached the end
000100: 6F 66 20 20 74 68 65 20 20 66 69 6C 65 0D 0A 20 of the file..
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 20 20 79 65 74 3F 0D 0A 0D 0A 20 20 yet?....
000140: 20 20 20 20 20 57 52 49 54 49 4E 47 20 46 49 4C WRITING FIL
000150: 45 53 0D 0A 0D 0A 20 20 20 20 20 20 20 31 33 32 ES.... 132
000160: 20 23 42 43 38 43 20 2A 43 41 53 20 4F 55 54 20 #BC8C *CAS OUT
000170: 4F 50 45 4E 20 20 20 20 20 20 20 20 20 4F 70 65 OPEN Ope
000180: 6E 20 61 20 66 69 6C 65 20 66 6F 72 20 6F 75 74 n a file for out
000190: 70 75 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 put..... 1
0001A0: 33 33 20 23 42 43 38 46 20 2A 43 41 53 20 4F 55 33 #BC8F *CAS OU
0001B0: 54 20 43 4C 4F 53 45 20 20 20 20 20 20 20 20 43 T CLOSE C
0001C0: 6C 6F 73 65 20 74 68 65 20 6F 75 74 70 75 74 20 lose the output
0001D0: 66 69 6C 65 20 70 72 6F 70 65 72 6C 79 2E 0D 0A file properly...
0001E0: 0D 0A 20 20 20 20 20 20 20 31 33 34 20 23 42 43 .. 134 #BC
0001F0: 39 32 20 20 2A 43 41 53 20 4F 55 54 20 41 42 41 92 *CAS OUT ABA
Size : 512 (Real : 512)
000000: 4E 44 4F 4E 20 20 20 20 20 43 6C 6F 73 65 20 74 NDON Close t
000010: 68 65 20 6F 75 74 70 75 74 20 66 69 6C 65 20 69 he output file i
000020: 6D 6D 65 64 69 61 74 65 6C 79 2E 0D 0A 0D 0A 20 mmediately.....
000030: 20 20 20 20 20 20 31 33 35 20 23 42 43 39 35 20 135 #BC95
000040: 20 2A 43 41 53 20 4F 55 54 20 43 48 41 52 20 20 *CAS OUT CHAR
000050: 20 20 20 20 20 20 57 72 69 74 65 20 61 20 63 68 Write a ch
000060: 61 72 61 63 74 65 72 20 74 6F 20 74 68 65 20 6F aracter to the o
000070: 75 74 70 75 74 20 66 69 6C 65 2E 0D 0A 0D 0A 20 utput file.....
000080: 20 20 20 20 20 20 31 33 36 20 23 42 43 39 38 20 136 #BC98
000090: 20 2A 43 41 53 20 4F 55 54 20 44 49 52 45 43 54 *CAS OUT DIRECT
0000A0: 20 20 20 20 20 20 57 72 69 74 65 20 74 68 65 20 Write the
0000B0: 6F 75 74 70 75 74 20 20 66 69 6C 65 20 20 64 69 output file di
0000C0: 72 65 63 74 6C 79 20 20 66 72 6F 6D 0D 0A 20 20 rectly from..
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 73 74 6F 72 65 2E 0D 0A 0D 0A 20 store.....
000100: 20 20 20 20 20 20 43 41 54 41 4C 4F 47 55 49 4E CATALOGUIN
000110: 47 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 33 G...... 13
000120: 37 20 23 42 43 39 42 20 20 2A 43 41 53 20 43 41 7 #BC9B *CAS CA
000130: 54 41 4C 4F 47 20 20 20 20 20 20 20 20 20 47 65 TALOG Ge
000140: 6E 65 72 61 74 65 20 61 20 63 61 74 61 6C 6F 67 nerate a catalog
000150: 75 65 20 66 72 6F 6D 20 74 68 65 20 74 61 70 65 ue from the tape
000160: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 45 ....... RE
000170: 43 4F 52 44 53 0D 0A 0D 0A 0D 0A 20 20 20 20 20 CORDS......
000180: 20 20 31 33 38 20 23 42 43 39 45 20 20 43 41 53 138 #BC9E CAS
000190: 20 57 52 49 54 45 20 20 20 20 20 20 20 20 20 20 WRITE
0001A0: 20 20 57 72 69 74 65 20 61 20 72 65 63 6F 72 64 Write a record
0001B0: 20 74 6F 20 74 61 70 65 2E 0D 0A 0D 0A 20 20 20 to tape.....
0001C0: 20 20 20 20 31 33 39 20 23 42 43 41 31 20 20 43 139 #BCA1 C
0001D0: 41 53 20 52 45 41 44 20 20 20 20 20 20 20 20 20 AS READ
0001E0: 20 20 20 20 52 65 61 64 20 61 20 72 65 63 6F 72 Read a recor
0001F0: 64 20 66 72 6F 6D 20 74 61 70 65 2E 0D 0A 0D 0A d from tape.....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 31 34 30 20 23 42 43 41 34 140 #BCA4
000010: 20 20 43 41 53 20 43 48 45 43 4B 20 20 20 20 20 CAS CHECK
000020: 20 20 20 20 20 20 20 43 6F 6D 70 61 72 65 20 61 Compare a
000030: 20 20 72 65 63 6F 72 64 20 20 6F 6E 20 20 74 61 record on ta
000040: 70 65 20 20 77 69 74 68 20 20 74 68 65 0D 0A 20 pe with the..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 63 6F 6E 74 65 6E 74 73 20 6F contents o
000080: 66 20 73 74 6F 72 65 2E 0D 0A 0D 0A 0D 0A 20 20 f store.......
000090: 20 20 20 20 20 31 34 2E 31 2E 36 20 45 6E 74 72 14.1.6 Entr
0000A0: 69 65 73 20 74 6F 20 74 68 65 20 53 6F 75 6E 64 ies to the Sound
0000B0: 20 4D 61 6E 61 67 65 72 2E 0D 0A 0D 0A 0D 0A 20 Manager.......
0000C0: 20 20 20 20 20 20 54 68 65 20 53 6F 75 6E 64 20 The Sound
0000D0: 4D 61 6E 61 67 65 72 20 63 6F 6E 74 72 6F 6C 73 Manager controls
0000E0: 20 74 68 65 20 73 6F 75 6E 64 20 63 68 69 70 2E the sound chip.
0000F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 4E 49 ...... INI
000100: 54 49 41 4C 49 5A 41 54 49 4F 4E 0D 0A 0D 0A 20 TIALIZATION....
000110: 20 20 20 20 20 20 31 34 31 20 23 42 43 41 37 20 141 #BCA7
000120: 20 53 4F 55 4E 44 20 52 45 53 45 54 20 20 20 20 SOUND RESET
000130: 20 20 20 20 20 20 52 65 73 65 74 20 74 68 65 20 Reset the
000140: 53 6F 75 6E 64 20 20 4D 61 6E 61 67 65 72 20 20 Sound Manager
000150: 2D 20 20 73 68 75 74 20 20 74 68 65 0D 0A 20 20 - shut the..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 73 6F 75 6E 64 20 63 68 69 70 20 sound chip
000190: 20 75 70 20 20 61 6E 64 20 20 63 6C 65 61 72 20 up and clear
0001A0: 20 61 6C 6C 20 20 73 6F 75 6E 64 0D 0A 20 20 20 all sound..
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 20 20 20 71 75 65 75 65 73 2E 0D 0A 0D 0A 20 queues.....
0001E0: 20 20 20 20 20 20 53 4F 55 4E 44 20 51 55 45 55 SOUND QUEU
0001F0: 45 53 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ES...... 1
Size : 512 (Real : 512)
000000: 34 32 20 23 42 43 41 41 20 20 53 4F 55 4E 44 20 42 #BCAA SOUND
000010: 51 55 45 55 45 20 20 20 20 20 20 20 20 20 20 41 QUEUE A
000020: 64 64 20 61 20 73 6F 75 6E 64 20 74 6F 20 61 20 dd a sound to a
000030: 73 6F 75 6E 64 20 71 75 65 75 65 2E 0D 0A 0D 0A sound queue.....
000040: 20 20 20 20 20 20 20 31 34 33 20 23 42 43 41 44 143 #BCAD
000050: 20 20 53 4F 55 4E 44 20 43 48 45 43 4B 20 20 20 SOUND CHECK
000060: 20 20 20 20 20 20 20 41 73 6B 20 69 66 20 20 74 Ask if t
000070: 68 65 72 65 20 20 69 73 20 20 73 70 61 63 65 20 here is space
000080: 20 69 6E 20 20 61 20 20 73 6F 75 6E 64 0D 0A 20 in a sound..
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 20 20 20 20 20 71 75 65 75 65 2E 0D 0A 0D 0A queue.....
0000C0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
0000D0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
0000E0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
000110: 31 34 2E 31 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 14.10...........
000120: 0A 0D 0A 20 20 20 20 20 20 20 31 34 34 20 23 42 ... 144 #B
000130: 43 42 30 20 20 53 4F 55 4E 44 20 41 52 4D 20 45 CB0 SOUND ARM E
000140: 56 45 4E 54 20 20 20 20 20 20 53 65 74 20 75 70 VENT Set up
000150: 20 61 6E 20 65 76 65 6E 74 20 74 6F 20 62 65 20 an event to be
000160: 72 75 6E 20 77 68 65 6E 20 61 20 73 6F 75 6E 64 run when a sound
000170: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 20 20 20 20 20 71 75 65 75 65 20 62 queue b
0001A0: 65 63 6F 6D 65 73 20 6E 6F 74 20 66 75 6C 6C 2E ecomes not full.
0001B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 53 4F 55 4E 44 .... SOUND
0001C0: 53 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 34 S...... 14
0001D0: 35 20 23 42 43 42 33 20 20 53 4F 55 4E 44 20 52 5 #BCB3 SOUND R
0001E0: 45 4C 45 41 53 45 20 20 20 20 20 20 20 20 41 6C ELEASE Al
0001F0: 6C 6F 77 73 20 73 6F 75 6E 64 73 20 74 6F 20 68 lows sounds to h
Size : 512 (Real : 512)
000000: 61 70 70 65 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 appen.....
000010: 20 31 34 36 20 23 42 43 42 36 20 20 53 4F 55 4E 146 #BCB6 SOUN
000020: 44 20 48 4F 4C 44 20 20 20 20 20 20 20 20 20 20 D HOLD
000030: 20 53 74 6F 70 20 61 6C 6C 20 73 6F 75 6E 64 20 Stop all sound
000040: 69 6E 20 6D 69 64 20 66 6C 69 67 68 74 2E 0D 0A in mid flight...
000050: 0D 0A 20 20 20 20 20 20 20 31 34 37 20 23 42 43 .. 147 #BC
000060: 42 39 20 20 53 4F 55 4E 44 20 43 4F 4E 54 49 4E B9 SOUND CONTIN
000070: 55 45 20 20 20 20 20 20 20 52 65 73 74 61 72 74 UE Restart
000080: 20 73 6F 75 6E 64 20 20 61 66 74 65 72 20 20 74 sound after t
000090: 68 65 79 20 20 68 61 76 65 20 20 62 65 65 6E 0D hey have been.
0000A0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 20 20 20 20 20 20 73 74 6F 70 70 65 64 2E stopped.
0000D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 4E 56 ...... ENV
0000E0: 45 4C 4F 50 45 53 0D 0A 0D 0A 0D 0A 20 20 20 20 ELOPES......
0000F0: 20 20 20 31 34 38 20 23 42 43 42 43 20 20 53 4F 148 #BCBC SO
000100: 55 4E 44 20 41 4D 50 4C 20 45 4E 56 45 4C 4F 50 UND AMPL ENVELOP
000110: 45 20 20 53 65 74 20 75 70 20 61 6E 20 61 6D 70 E Set up an amp
000120: 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 65 2E litude envelope.
000130: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 34 39 20 23 .... 149 #
000140: 42 43 42 46 20 20 53 4F 55 4E 44 20 54 4F 4E 45 BCBF SOUND TONE
000150: 20 45 4E 56 45 4C 4F 50 45 20 20 53 65 74 20 75 ENVELOPE Set u
000160: 70 20 61 20 74 6F 6E 65 20 65 6E 76 65 6C 6F 70 p a tone envelop
000170: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 35 30 e..... 150
000180: 20 23 42 43 43 32 20 20 53 4F 55 4E 44 20 41 20 #BCC2 SOUND A
000190: 41 44 44 52 45 53 53 20 20 20 20 20 20 47 65 74 ADDRESS Get
0001A0: 20 20 74 68 65 20 20 61 64 64 72 65 73 73 20 20 the address
0001B0: 6F 66 20 20 20 61 6E 20 20 20 61 6D 70 6C 69 74 of an amplit
0001C0: 75 64 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ude..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 65 6E 76 65 enve
0001F0: 6C 6F 70 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 lope.....
Size : 512 (Real : 512)
000000: 31 35 31 20 23 42 43 43 35 20 20 53 4F 55 4E 44 151 #BCC5 SOUND
000010: 20 54 20 41 44 44 52 45 53 53 20 20 20 20 20 20 T ADDRESS
000020: 47 65 74 20 74 68 65 20 61 64 64 72 65 73 73 20 Get the address
000030: 6F 66 20 61 20 74 6F 6E 65 20 65 6E 76 65 6C 6F of a tone envelo
000040: 70 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 pe.......
000050: 31 34 2E 31 2E 37 20 45 6E 74 72 69 65 73 20 74 14.1.7 Entries t
000060: 6F 20 74 68 65 20 4B 65 72 6E 65 6C 0D 0A 0D 0A o the Kernel....
000070: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 4B 65 72 .. The Ker
000080: 6E 65 6C 20 68 61 6E 64 6C 65 73 20 73 79 6E 63 nel handles sync
000090: 68 72 6F 6E 6F 75 73 20 61 6E 64 20 61 73 79 6E hronous and asyn
0000A0: 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 2E chronous events.
0000B0: 20 49 74 20 69 73 20 61 6C 73 6F 20 20 69 6E 0D It is also in.
0000C0: 0A 20 20 20 20 20 20 20 63 68 61 72 67 65 20 6F . charge o
0000D0: 66 20 74 68 65 20 73 74 6F 72 65 20 6D 61 70 20 f the store map
0000E0: 61 6E 64 20 73 77 69 74 63 68 69 6E 67 20 52 4F and switching RO
0000F0: 4D 73 20 6F 6E 20 61 6E 64 20 6F 66 66 2E 20 41 Ms on and off. A
000100: 70 61 72 74 20 66 72 6F 6D 20 20 74 68 65 0D 0A part from the..
000110: 20 20 20 20 20 20 20 65 6E 74 72 69 65 73 20 6C entries l
000120: 69 73 74 65 64 20 62 65 6C 6F 77 2C 20 74 68 65 isted below, the
000130: 20 4B 65 72 6E 65 6C 20 68 61 73 20 69 74 73 20 Kernel has its
000140: 6F 77 6E 20 6A 75 6D 70 62 6C 6F 63 6B 20 61 6E own jumpblock an
000150: 64 20 61 20 6E 75 6D 62 65 72 20 6F 66 0D 0A 20 d a number of..
000160: 20 20 20 20 20 20 72 6F 75 74 69 6E 65 73 20 77 routines w
000170: 68 6F 73 65 20 61 64 64 72 65 73 73 65 73 20 61 hose addresses a
000180: 72 65 20 70 75 62 6C 69 73 68 65 64 2E 20 54 68 re published. Th
000190: 65 73 65 20 65 78 74 72 61 20 65 6E 74 72 69 65 ese extra entrie
0001A0: 73 20 61 72 65 20 6C 69 73 74 65 64 0D 0A 20 20 s are listed..
0001B0: 20 20 20 20 20 69 6E 20 73 65 63 74 69 6F 6E 73 in sections
0001C0: 20 31 34 2E 33 20 61 6E 64 20 31 34 2E 34 20 62 14.3 and 14.4 b
0001D0: 65 6C 6F 77 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 elow.......
0001E0: 20 20 49 4E 49 54 49 41 4C 49 5A 41 54 49 4F 4E INITIALIZATION
0001F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 35 32 ...... 152
Size : 512 (Real : 512)
000000: 20 23 42 43 43 38 20 20 4B 4C 20 43 48 4F 4B 45 #BCC8 KL CHOKE
000010: 20 4F 46 46 20 20 20 20 20 20 20 20 20 52 65 73 OFF Res
000020: 65 74 20 74 68 65 20 4B 65 72 6E 65 6C 20 2D 20 et the Kernel -
000030: 20 63 6C 65 61 72 73 20 20 61 6C 6C 20 20 65 76 clears all ev
000040: 65 6E 74 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ent..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 20 20 71 75 65 75 queu
000070: 65 73 20 65 74 63 2E 0D 0A 0D 0A 20 20 20 20 20 es etc.....
000080: 20 20 31 35 33 20 23 42 43 43 42 20 20 4B 4C 20 153 #BCCB KL
000090: 52 4F 4D 20 57 41 4C 4B 20 20 20 20 20 20 20 20 ROM WALK
0000A0: 20 20 46 69 6E 64 20 20 61 6E 64 20 20 69 6E 69 Find and ini
0000B0: 74 69 61 6C 69 7A 65 20 20 61 6C 6C 20 20 62 61 tialize all ba
0000C0: 63 6B 67 72 6F 75 6E 64 0D 0A 20 20 20 20 20 20 ckground..
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 52 4F 4D 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 ROMs.....
000100: 20 31 35 34 20 23 42 43 43 45 20 20 4B 4C 20 49 154 #BCCE KL I
000110: 4E 49 54 20 42 41 43 4B 20 20 20 20 20 20 20 20 NIT BACK
000120: 20 49 6E 69 74 69 61 6C 69 7A 65 20 20 61 20 20 Initialize a
000130: 70 61 72 74 69 63 75 6C 61 72 20 20 20 62 61 63 particular bac
000140: 6B 67 72 6F 75 6E 64 0D 0A 20 20 20 20 20 20 20 kground..
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ROM..... 1
000180: 35 35 20 23 42 43 44 31 20 20 4B 4C 20 4C 4F 47 55 #BCD1 KL LOG
000190: 20 45 58 54 20 20 20 20 20 20 20 20 20 20 20 49 EXT I
0001A0: 6E 74 72 6F 64 75 63 65 20 61 6E 20 52 53 58 20 ntroduce an RSX
0001B0: 74 6F 20 74 68 65 20 66 69 72 6D 77 61 72 65 2E to the firmware.
0001C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 35 36 20 23 .... 156 #
0001D0: 42 43 44 34 20 20 4B 4C 20 46 49 4E 44 20 43 4F BCD4 KL FIND CO
0001E0: 4D 4D 41 4E 44 20 20 20 20 20 20 53 65 61 72 63 MMAND Searc
0001F0: 68 20 66 6F 72 20 61 6E 20 52 53 58 20 6F 72 20 h for an RSX or
Size : 512 (Real : 512)
000000: 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D 20 6F background ROM o
000010: 72 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 r..
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 20 20 20 20 20 20 66 6F 72 65 67 72 foregr
000040: 6F 75 6E 64 20 52 4F 4D 20 74 6F 20 70 72 6F 63 ound ROM to proc
000050: 65 73 73 20 61 20 63 6F 6D 6D 61 6E 64 2E 0D 0A ess a command...
000060: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000070: 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 AMSTRAD CPC46
000080: 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 4/664/6128 FIRMW
000090: 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ARE
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
0000B0: 61 67 65 20 31 34 2E 31 31 0D 0A 0D 0A 0D 0A 0D age 14.11.......
0000C0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 46 52 ....... FR
0000D0: 41 4D 45 20 46 4C 59 42 41 43 4B 20 4C 49 53 54 AME FLYBACK LIST
0000E0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 35 37 ...... 157
0000F0: 20 23 42 43 44 37 20 20 4B 4C 20 4E 45 57 20 46 #BCD7 KL NEW F
000100: 52 41 4D 45 20 46 4C 59 20 20 20 20 20 49 6E 69 RAME FLY Ini
000110: 74 69 61 6C 69 7A 65 20 61 6E 64 20 70 75 74 20 tialize and put
000120: 61 20 20 62 6C 6F 63 6B 20 20 6F 6E 74 6F 20 20 a block onto
000130: 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 the..
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000150: 20 20 20 20 20 20 20 20 20 20 20 20 66 72 61 6D fram
000160: 65 20 66 6C 79 62 61 63 6B 20 6C 69 73 74 2E 0D e flyback list..
000170: 0A 0D 0A 20 20 20 20 20 20 20 31 35 38 20 23 42 ... 158 #B
000180: 43 44 41 20 20 4B 4C 20 41 44 44 20 46 52 41 4D CDA KL ADD FRAM
000190: 45 20 46 4C 59 20 20 20 20 20 50 75 74 20 61 20 E FLY Put a
0001A0: 62 6C 6F 63 6B 20 20 6F 6E 74 6F 20 20 74 68 65 block onto the
0001B0: 20 20 66 72 61 6D 65 20 20 66 6C 79 62 61 63 6B frame flyback
0001C0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 20 6C 69 73 74 2E 0D 0A list...
0001F0: 0D 0A 20 20 20 20 20 20 20 31 35 39 20 23 42 43 .. 159 #BC
Size : 512 (Real : 512)
000000: 44 44 20 20 4B 4C 20 44 45 4C 20 46 52 41 4D 45 DD KL DEL FRAME
000010: 20 46 4C 59 20 20 20 20 20 52 65 6D 6F 76 65 20 FLY Remove
000020: 61 20 62 6C 6F 63 6B 20 66 72 6F 6D 20 74 68 65 a block from the
000030: 20 66 72 61 6D 65 20 20 66 6C 79 62 61 63 6B 0D frame flyback.
000040: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 6C 69 73 74 2E 0D 0A 0D list....
000070: 0A 20 20 20 20 20 20 20 46 41 53 54 20 54 49 43 . FAST TIC
000080: 4B 45 52 20 4C 49 53 54 0D 0A 0D 0A 0D 0A 20 20 KER LIST......
000090: 20 20 20 20 20 31 36 30 20 23 42 43 45 30 20 20 160 #BCE0
0000A0: 4B 4C 20 4E 45 57 20 46 41 53 54 20 54 49 43 4B KL NEW FAST TICK
0000B0: 45 52 20 20 20 49 6E 69 74 69 61 6C 69 7A 65 20 ER Initialize
0000C0: 61 6E 64 20 70 75 74 20 61 20 20 62 6C 6F 63 6B and put a block
0000D0: 20 20 6F 6E 74 6F 20 20 74 68 65 0D 0A 20 20 20 onto the..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 66 61 73 74 20 74 69 63 6B 20 6C 69 fast tick li
000110: 73 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 36 st..... 16
000120: 31 20 23 42 43 45 33 20 20 4B 4C 20 41 44 44 20 1 #BCE3 KL ADD
000130: 46 41 53 54 20 54 49 43 4B 45 52 20 20 20 50 75 FAST TICKER Pu
000140: 74 20 61 20 62 6C 6F 63 6B 20 6F 6E 74 6F 20 74 t a block onto t
000150: 68 65 20 66 61 73 74 20 74 69 63 6B 20 6C 69 73 he fast tick lis
000160: 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 36 32 t..... 162
000170: 20 23 42 43 45 36 20 20 4B 4C 20 44 45 4C 20 46 #BCE6 KL DEL F
000180: 41 53 54 20 54 49 43 4B 45 52 20 20 20 52 65 6D AST TICKER Rem
000190: 6F 76 65 20 61 20 20 62 6C 6F 63 6B 20 20 66 72 ove a block fr
0001A0: 6F 6D 20 20 74 68 65 20 20 66 61 73 74 20 20 74 om the fast t
0001B0: 69 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ick..
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 6C 69 73 74 list
0001E0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 49 43 4B ..... TICK
0001F0: 20 4C 49 53 54 0D 0A 0D 0A 0D 0A 20 20 20 20 20 LIST......
Size : 512 (Real : 512)
000000: 20 20 31 36 33 20 23 42 43 45 39 20 20 4B 4C 20 163 #BCE9 KL
000010: 41 44 44 20 54 49 43 4B 45 52 20 20 20 20 20 20 ADD TICKER
000020: 20 20 50 75 74 20 61 20 62 6C 6F 63 6B 20 6F 6E Put a block on
000030: 74 6F 20 74 68 65 20 74 69 63 6B 20 6C 69 73 74 to the tick list
000040: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 36 34 20 ..... 164
000050: 23 42 43 45 43 20 20 4B 4C 20 44 45 4C 20 54 49 #BCEC KL DEL TI
000060: 43 4B 45 52 20 20 20 20 20 20 20 20 52 65 6D 6F CKER Remo
000070: 76 65 20 61 20 62 6C 6F 63 6B 20 66 72 6F 6D 20 ve a block from
000080: 74 68 65 20 74 69 63 6B 20 6C 69 73 74 2E 0D 0A the tick list...
000090: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 56 45 4E 54 .... EVENT
0000A0: 53 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 36 S...... 16
0000B0: 35 20 23 42 43 45 46 20 20 4B 4C 20 49 4E 49 54 5 #BCEF KL INIT
0000C0: 20 45 56 45 4E 54 20 20 20 20 20 20 20 20 49 6E EVENT In
0000D0: 69 74 69 61 6C 69 7A 65 20 61 6E 20 65 76 65 6E itialize an even
0000E0: 74 20 62 6C 6F 63 6B 2E 0D 0A 0D 0A 20 20 20 20 t block.....
0000F0: 20 20 20 31 36 36 20 23 42 43 46 32 20 20 4B 4C 166 #BCF2 KL
000100: 20 45 56 45 4E 54 20 20 20 20 20 20 20 20 20 20 EVENT
000110: 20 20 20 27 4B 69 63 6B 27 20 61 6E 20 65 76 65 'Kick' an eve
000120: 6E 74 20 62 6C 6F 63 6B 2E 0D 0A 0D 0A 20 20 20 nt block.....
000130: 20 20 20 20 31 36 37 20 23 42 43 46 35 20 20 4B 167 #BCF5 K
000140: 4C 20 53 59 4E 43 20 52 45 53 45 54 20 20 20 20 L SYNC RESET
000150: 20 20 20 20 43 6C 65 61 72 20 73 79 6E 63 68 72 Clear synchr
000160: 6F 6E 6F 75 73 20 65 76 65 6E 74 20 71 75 65 75 onous event queu
000170: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 36 38 e..... 168
000180: 20 23 42 43 46 38 20 20 4B 4C 20 44 45 4C 20 53 #BCF8 KL DEL S
000190: 59 4E 43 48 52 4F 4E 4F 55 53 20 20 20 52 65 6D YNCHRONOUS Rem
0001A0: 6F 76 65 20 61 20 73 79 6E 63 68 72 6F 6E 6F 75 ove a synchronou
0001B0: 73 20 20 65 76 65 6E 74 20 20 66 72 6F 6D 20 20 s event from
0001C0: 74 68 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 the..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 65 76 65 6E even
0001F0: 74 20 71 75 65 75 65 2E 0D 0A 0D 0A 20 20 20 20 t queue.....
Size : 512 (Real : 512)
000000: 20 20 20 31 36 39 20 23 42 43 46 42 20 20 4B 4C 169 #BCFB KL
000010: 20 4E 45 58 54 20 53 59 4E 43 20 20 20 20 20 20 NEXT SYNC
000020: 20 20 20 47 65 74 20 74 68 65 20 6E 65 78 74 20 Get the next
000030: 65 76 65 6E 74 20 66 72 6F 6D 20 74 68 65 20 71 event from the q
000040: 75 65 75 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ueue.....
000050: 31 37 30 20 23 42 43 46 45 20 20 4B 4C 20 44 4F 170 #BCFE KL DO
000060: 20 53 59 4E 43 20 20 20 20 20 20 20 20 20 20 20 SYNC
000070: 50 65 72 66 6F 72 6D 20 61 6E 20 65 76 65 6E 74 Perform an event
000080: 20 72 6F 75 74 69 6E 65 2E 0D 0A 0D 0A 20 20 20 routine.....
000090: 20 20 20 20 31 37 31 20 23 42 44 30 31 20 20 4B 171 #BD01 K
0000A0: 4C 20 44 4F 4E 45 20 53 59 4E 43 20 20 20 20 20 L DONE SYNC
0000B0: 20 20 20 20 46 69 6E 69 73 68 20 70 72 6F 63 65 Finish proce
0000C0: 73 73 69 6E 67 20 61 6E 20 65 76 65 6E 74 2E 0D ssing an event..
0000D0: 0A 0D 0A 20 20 20 20 20 20 20 31 37 32 20 23 42 ... 172 #B
0000E0: 44 30 34 20 20 4B 4C 20 45 56 45 4E 54 20 44 49 D04 KL EVENT DI
0000F0: 53 41 42 4C 45 20 20 20 20 20 44 69 73 61 62 6C SABLE Disabl
000100: 65 20 6E 6F 72 6D 61 6C 20 73 79 6E 63 68 72 6F e normal synchro
000110: 6E 6F 75 73 20 65 76 65 6E 74 73 2E 0D 0A 0D 0A nous events.....
000120: 20 20 20 20 20 20 20 31 37 33 20 23 42 44 30 37 173 #BD07
000130: 20 20 4B 4C 20 45 56 45 4E 54 20 45 4E 41 42 4C KL EVENT ENABL
000140: 45 20 20 20 20 20 20 45 6E 61 62 6C 65 20 6E 6F E Enable no
000150: 72 6D 61 6C 20 73 79 6E 63 68 72 6F 6E 6F 75 73 rmal synchronous
000160: 20 65 76 65 6E 74 73 2E 0D 0A 0D 0A 20 20 20 20 events.....
000170: 20 20 20 31 37 34 20 23 42 44 30 41 20 20 4B 4C 174 #BD0A KL
000180: 20 44 49 53 41 52 4D 20 45 56 45 4E 54 20 20 20 DISARM EVENT
000190: 20 20 20 50 72 65 76 65 6E 74 20 61 6E 20 65 76 Prevent an ev
0001A0: 65 6E 74 20 66 72 6F 6D 20 6F 63 63 75 72 72 69 ent from occurri
0001B0: 6E 67 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 ng.............
0001C0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 AMSTRAD CP
0001D0: 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 C464/664/6128 FI
0001E0: 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 RMWARE
0001F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
Size : 512 (Real : 512)
000000: 20 20 70 61 67 65 20 31 34 2E 31 32 0D 0A 0D 0A page 14.12....
000010: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
000020: 20 45 4C 41 50 53 45 44 20 54 49 4D 45 0D 0A 0D ELAPSED TIME...
000030: 0A 0D 0A 20 20 20 20 20 20 20 31 37 35 20 23 42 ... 175 #B
000040: 44 30 44 20 20 4B 4C 20 54 49 4D 45 20 50 4C 45 D0D KL TIME PLE
000050: 41 53 45 20 20 20 20 20 20 20 41 73 6B 20 74 68 ASE Ask th
000060: 65 20 65 6C 61 70 73 65 64 20 74 69 6D 65 2E 0D e elapsed time..
000070: 0A 0D 0A 20 20 20 20 20 20 20 31 37 36 20 23 42 ... 176 #B
000080: 44 31 30 20 20 4B 4C 20 54 49 4D 45 20 53 45 54 D10 KL TIME SET
000090: 20 20 20 20 20 20 20 20 20 20 53 65 74 20 74 68 Set th
0000A0: 65 20 65 6C 61 70 73 65 64 20 74 69 6D 65 2E 0D e elapsed time..
0000B0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 42 41 4E 4B ..... BANK
0000C0: 20 53 57 49 54 43 48 49 4E 47 0D 0A 0D 0A 0D 0A SWITCHING......
0000D0: 20 20 20 20 20 20 20 32 30 31 20 23 42 44 35 42 201 #BD5B
0000E0: 20 20 4B 4C 20 42 41 4E 4B 20 53 57 49 54 43 48 KL BANK SWITCH
0000F0: 20 20 20 20 20 20 20 53 65 6C 65 63 74 20 61 20 Select a
000100: 6D 65 6D 6F 72 79 20 6F 72 67 61 6E 69 7A 61 74 memory organizat
000110: 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ion..... 1
000120: 34 2E 31 2E 38 20 45 6E 74 72 69 65 73 20 74 6F 4.1.8 Entries to
000130: 20 74 68 65 20 4D 61 63 68 69 6E 65 20 50 61 63 the Machine Pac
000140: 6B 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 k.... The
000150: 4D 61 63 68 69 6E 65 20 50 61 63 6B 20 70 72 6F Machine Pack pro
000160: 76 69 64 65 73 20 61 6E 20 69 6E 74 65 72 66 61 vides an interfa
000170: 63 65 20 74 6F 20 74 68 65 20 6D 61 63 68 69 6E ce to the machin
000180: 65 20 20 68 61 72 64 77 61 72 65 2E 20 20 4D 6F e hardware. Mo
000190: 73 74 0D 0A 20 20 20 20 20 20 20 70 61 63 6B 73 st.. packs
0001A0: 20 75 73 65 20 4D 61 63 68 69 6E 65 20 74 6F 20 use Machine to
0001B0: 61 63 63 65 73 73 20 61 6E 79 20 68 61 72 64 77 access any hardw
0001C0: 61 72 65 20 74 68 65 79 20 75 73 65 2E 20 54 68 are they use. Th
0001D0: 65 20 6D 61 6A 6F 72 20 65 78 63 65 70 74 69 6F e major exceptio
0001E0: 6E 0D 0A 20 20 20 20 20 20 20 69 73 20 74 68 65 n.. is the
0001F0: 20 43 61 73 73 65 74 74 65 20 4D 61 6E 61 67 65 Cassette Manage
Size : 512 (Real : 512)
000000: 72 20 77 68 69 63 68 2C 20 66 6F 72 20 73 70 65 r which, for spe
000010: 65 64 20 20 72 65 61 73 6F 6E 73 2C 20 20 70 65 ed reasons, pe
000020: 72 66 6F 72 6D 73 20 20 69 74 73 20 20 6F 77 6E rforms its own
000030: 0D 0A 20 20 20 20 20 20 20 68 61 72 64 77 61 72 .. hardwar
000040: 65 20 61 63 63 65 73 73 2E 0D 0A 0D 0A 20 20 20 e access.....
000050: 20 20 20 20 50 52 4F 47 52 41 4D 53 0D 0A 0D 0A PROGRAMS....
000060: 20 20 20 20 20 20 20 31 37 37 20 23 42 44 31 33 177 #BD13
000070: 20 20 4D 43 20 42 4F 4F 54 20 50 52 4F 47 52 41 MC BOOT PROGRA
000080: 4D 20 20 20 20 20 20 4C 6F 61 64 20 61 6E 64 20 M Load and
000090: 72 75 6E 20 61 20 66 6F 72 65 67 72 6F 75 6E 64 run a foreground
0000A0: 20 70 72 6F 67 72 61 6D 2E 0D 0A 0D 0A 20 20 20 program.....
0000B0: 20 20 20 20 31 37 38 20 23 42 44 31 36 20 20 4D 178 #BD16 M
0000C0: 43 20 53 54 41 52 54 20 50 52 4F 47 52 41 4D 20 C START PROGRAM
0000D0: 20 20 20 20 52 75 6E 20 61 20 66 6F 72 65 67 72 Run a foregr
0000E0: 6F 75 6E 64 20 70 72 6F 67 72 61 6D 2E 0D 0A 0D ound program....
0000F0: 0A 0D 0A 20 20 20 20 20 20 20 53 43 52 45 45 4E ... SCREEN
000100: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 37 39 20 23 .... 179 #
000110: 42 44 31 39 20 20 4D 43 20 57 41 49 54 20 46 4C BD19 MC WAIT FL
000120: 59 42 41 43 4B 20 20 20 20 20 20 57 61 69 74 20 YBACK Wait
000130: 66 6F 72 20 66 72 61 6D 65 20 66 6C 79 62 61 63 for frame flybac
000140: 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 38 30 k..... 180
000150: 20 23 42 44 31 43 20 20 4D 43 20 53 45 54 20 4D #BD1C MC SET M
000160: 4F 44 45 20 20 20 20 20 20 20 20 20 20 53 65 74 ODE Set
000170: 20 74 68 65 20 73 63 72 65 65 6E 20 6D 6F 64 65 the screen mode
000180: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 38 31 20 ..... 181
000190: 23 42 44 31 46 20 20 4D 43 20 53 43 52 45 45 4E #BD1F MC SCREEN
0001A0: 20 4F 46 46 53 45 54 20 20 20 20 20 53 65 74 20 OFFSET Set
0001B0: 74 68 65 20 73 63 72 65 65 6E 20 6F 66 66 73 65 the screen offse
0001C0: 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 38 32 t..... 182
0001D0: 20 23 42 44 32 32 20 20 4D 43 20 43 4C 45 41 52 #BD22 MC CLEAR
0001E0: 20 49 4E 4B 53 20 20 20 20 20 20 20 20 53 65 74 INKS Set
0001F0: 20 61 6C 6C 20 69 6E 6B 73 20 74 6F 20 6F 6E 65 all inks to one
Size : 512 (Real : 512)
000000: 20 63 6F 6C 6F 75 72 2E 0D 0A 0D 0A 20 20 20 20 colour.....
000010: 20 20 20 31 38 33 20 23 42 44 32 35 20 20 4D 43 183 #BD25 MC
000020: 20 53 45 54 20 49 4E 4B 53 20 20 20 20 20 20 20 SET INKS
000030: 20 20 20 53 65 74 20 63 6F 6C 6F 75 72 73 20 6F Set colours o
000040: 66 20 61 6C 6C 20 74 68 65 20 69 6E 6B 73 2E 0D f all the inks..
000050: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 50 52 49 4E ..... PRIN
000060: 54 45 52 0D 0A 0D 0A 20 20 20 20 20 20 20 31 38 TER.... 18
000070: 34 20 23 42 44 32 38 20 20 4D 43 20 52 45 53 45 4 #BD28 MC RESE
000080: 54 20 50 52 49 4E 54 45 52 20 20 20 20 20 52 65 T PRINTER Re
000090: 73 65 74 20 74 68 65 20 70 72 69 6E 74 65 72 20 set the printer
0000A0: 69 6E 64 69 72 65 63 74 69 6F 6E 73 2E 0D 0A 0D indirections....
0000B0: 0A 20 20 20 20 20 20 20 32 30 30 20 23 42 44 35 . 200 #BD5
0000C0: 38 20 20 4D 43 20 50 52 49 4E 54 20 54 52 41 4E 8 MC PRINT TRAN
0000D0: 53 4C 41 54 49 4F 4E 20 53 65 74 20 74 68 65 20 SLATION Set the
0000E0: 70 72 69 6E 74 65 72 20 74 72 61 6E 73 6C 61 74 printer translat
0000F0: 69 6F 6E 20 74 61 62 6C 65 2E 0D 0A 0D 0A 20 20 ion table.....
000100: 20 20 20 20 20 31 38 35 20 23 42 44 32 42 20 20 185 #BD2B
000110: 4D 43 20 50 52 49 4E 54 20 43 48 41 52 20 20 20 MC PRINT CHAR
000120: 20 20 20 20 20 54 72 61 6E 73 6C 61 74 65 20 61 Translate a
000130: 20 63 68 61 72 61 63 74 65 72 20 74 68 65 6E 20 character then
000140: 73 65 6E 64 20 69 74 20 20 74 6F 0D 0A 20 20 20 send it to..
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 74 68 65 20 43 65 6E 74 72 6F 6E 69 the Centroni
000180: 63 73 20 70 6F 72 74 2E 0D 0A 0D 0A 20 20 20 20 cs port.....
000190: 20 20 20 31 38 36 20 23 42 44 32 45 20 20 4D 43 186 #BD2E MC
0001A0: 20 42 55 53 59 20 50 52 49 4E 54 45 52 20 20 20 BUSY PRINTER
0001B0: 20 20 20 54 65 73 74 20 69 66 20 74 68 65 20 43 Test if the C
0001C0: 65 6E 74 72 6F 6E 69 63 73 20 70 6F 72 74 20 69 entronics port i
0001D0: 73 20 62 75 73 79 2E 0D 0A 0D 0A 20 20 20 20 20 s busy.....
0001E0: 20 20 31 38 37 20 23 42 44 33 31 20 20 4D 43 20 187 #BD31 MC
0001F0: 53 45 4E 44 20 50 52 49 4E 54 45 52 20 20 20 20 SEND PRINTER
Size : 512 (Real : 512)
000000: 20 20 53 65 6E 64 20 61 20 20 63 68 61 72 61 63 Send a charac
000010: 74 65 72 20 20 74 6F 20 20 74 68 65 20 20 43 65 ter to the Ce
000020: 6E 74 72 6F 6E 69 63 73 0D 0A 20 20 20 20 20 20 ntronics..
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 20 70 6F 72 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 port.....
000060: 20 53 4F 55 4E 44 20 43 48 49 50 0D 0A 0D 0A 20 SOUND CHIP....
000070: 20 20 20 20 20 20 31 38 38 20 23 42 44 33 34 20 188 #BD34
000080: 20 4D 43 20 53 4F 55 4E 44 20 52 45 47 49 53 54 MC SOUND REGIST
000090: 45 52 20 20 20 20 53 65 6E 64 20 64 61 74 61 20 ER Send data
0000A0: 74 6F 20 61 20 73 6F 75 6E 64 20 63 68 69 70 20 to a sound chip
0000B0: 72 65 67 69 73 74 65 72 2E 0D 0A 0D 0A 0D 0A 20 register.......
0000C0: 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 34 36 AMSTRAD 46
0000D0: 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 4/664/6128 FIRMW
0000E0: 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ARE
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 70 61 67 65 20 31 34 2E 31 33 0D 0A 0D 0A page 14.13....
000110: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
000120: 20 31 34 2E 31 2E 39 20 45 6E 74 72 69 65 73 20 14.1.9 Entries
000130: 74 6F 20 4A 75 6D 70 65 72 0D 0A 0D 0A 20 20 20 to Jumper....
000140: 20 20 20 20 4A 75 6D 70 65 72 20 73 65 74 73 20 Jumper sets
000150: 75 70 20 74 68 65 20 6D 61 69 6E 20 6A 75 6D 70 up the main jump
000160: 62 6C 6F 63 6B 2E 0D 0A 0D 0A 20 20 20 20 20 20 block.....
000170: 20 49 4E 49 54 49 41 4C 49 5A 41 54 49 4F 4E 0D INITIALIZATION.
000180: 0A 0D 0A 20 20 20 20 20 20 20 31 38 39 20 23 42 ... 189 #B
000190: 44 33 37 20 20 4A 55 4D 50 20 52 45 53 54 4F 52 D37 JUMP RESTOR
0001A0: 45 20 20 20 20 20 20 20 20 20 52 65 73 74 6F 72 E Restor
0001B0: 65 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 6A e the standard j
0001C0: 75 6D 70 62 6C 6F 63 6B 2E 0D 0A 0D 0A 20 20 20 umpblock.....
0001D0: 20 20 20 20 31 34 2E 32 20 46 69 72 6D 77 61 72 14.2 Firmwar
0001E0: 65 20 49 6E 64 69 72 65 63 74 69 6F 6E 73 0D 0A e Indirections..
0001F0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 66 69 72 .. The fir
Size : 512 (Real : 512)
000000: 6D 77 61 72 65 20 69 6E 64 69 72 65 63 74 69 6F mware indirectio
000010: 6E 73 20 6C 69 73 74 65 64 20 68 65 72 65 20 61 ns listed here a
000020: 72 65 20 74 61 6B 65 6E 20 61 74 20 6B 65 79 20 re taken at key
000030: 70 6F 69 6E 74 73 20 20 69 6E 20 20 74 68 65 0D points in the.
000040: 0A 20 20 20 20 20 20 20 66 69 72 6D 77 61 72 65 . firmware
000050: 20 74 68 75 73 20 61 6C 6C 6F 77 69 6E 67 20 74 thus allowing t
000060: 68 65 20 75 73 65 72 20 74 6F 20 20 70 72 6F 76 he user to prov
000070: 69 64 65 20 20 73 75 62 73 74 69 74 75 74 65 20 ide substitute
000080: 20 72 6F 75 74 69 6E 65 73 20 20 66 6F 72 0D 0A routines for..
000090: 20 20 20 20 20 20 20 6D 61 6E 79 20 66 69 72 6D many firm
0000A0: 77 61 72 65 20 61 63 74 69 6F 6E 73 2C 20 77 69 ware actions, wi
0000B0: 74 68 6F 75 74 20 68 61 76 69 6E 67 20 74 6F 20 thout having to
0000C0: 72 65 70 6C 61 63 65 20 61 20 20 63 6F 6D 70 6C replace a compl
0000D0: 65 74 65 20 20 66 69 72 6D 77 61 72 65 0D 0A 20 ete firmware..
0000E0: 20 20 20 20 20 20 70 61 63 6B 61 67 65 2E 20 54 package. T
0000F0: 68 65 73 65 20 69 6E 64 69 72 65 63 74 69 6F 6E hese indirection
000100: 73 20 61 72 65 20 6E 6F 74 20 69 6E 74 65 6E 64 s are not intend
000110: 65 64 20 66 6F 72 20 74 68 65 20 75 73 65 72 20 ed for the user
000120: 20 74 6F 20 20 63 61 6C 6C 20 20 2D 0D 0A 20 20 to call -..
000130: 20 20 20 20 20 74 68 65 72 65 20 69 73 20 75 73 there is us
000140: 75 61 6C 6C 79 20 61 20 68 69 67 68 65 72 20 6C ually a higher l
000150: 65 76 65 6C 20 72 6F 75 74 69 6E 65 20 69 6E 20 evel routine in
000160: 74 68 65 20 6D 61 69 6E 20 66 69 72 6D 77 61 72 the main firmwar
000170: 65 20 6A 75 6D 70 62 6C 6F 63 6B 0D 0A 20 20 20 e jumpblock..
000180: 20 20 20 20 74 68 61 74 20 69 73 20 6D 6F 72 65 that is more
000190: 20 73 75 69 74 61 62 6C 65 2E 0D 0A 0D 0A 20 20 suitable.....
0001A0: 20 20 20 20 20 54 68 65 20 69 6E 64 69 72 65 63 The indirec
0001B0: 74 69 6F 6E 73 20 61 72 65 20 73 65 74 20 75 70 tions are set up
0001C0: 20 62 79 20 74 68 65 20 70 61 63 6B 20 74 6F 20 by the pack to
0001D0: 77 68 6F 6D 20 20 74 68 65 79 20 20 61 70 70 6C whom they appl
0001E0: 79 20 20 77 68 65 6E 65 76 65 72 0D 0A 20 20 20 y whenever..
0001F0: 20 20 20 20 69 74 73 20 72 65 73 65 74 20 28 6F its reset (o
Size : 512 (Real : 512)
000000: 72 20 69 6E 69 74 69 61 6C 69 7A 65 29 20 72 6F r initialize) ro
000010: 75 74 69 6E 65 20 69 73 20 63 61 6C 6C 65 64 20 utine is called
000020: 61 6E 64 20 64 75 72 69 6E 67 20 45 4D 53 3B 20 and during EMS;
000030: 20 74 68 65 79 20 20 61 72 65 0D 0A 20 20 20 20 they are..
000040: 20 20 20 6E 6F 74 20 6F 74 68 65 72 77 69 73 65 not otherwise
000050: 20 61 6C 74 65 72 65 64 20 62 79 20 74 68 65 20 altered by the
000060: 66 69 72 6D 77 61 72 65 2E 0D 0A 0D 0A 20 20 20 firmware.....
000070: 20 20 20 20 54 68 65 20 69 6E 64 69 72 65 63 74 The indirect
000080: 69 6F 6E 73 20 61 72 65 20 61 6C 6C 20 20 74 68 ions are all th
000090: 72 65 65 20 20 62 79 74 65 73 20 20 6C 6F 6E 67 ree bytes long
0000A0: 20 20 61 6E 64 20 20 75 73 65 20 20 73 74 61 6E and use stan
0000B0: 64 61 72 64 20 20 6A 75 6D 70 0D 0A 20 20 20 20 dard jump..
0000C0: 20 20 20 69 6E 73 74 72 75 63 74 69 6F 6E 73 20 instructions
0000D0: 28 23 43 33 29 2E 20 49 66 20 61 20 52 4F 4D 20 (#C3). If a ROM
0000E0: 73 74 61 74 65 20 6F 74 68 65 72 20 74 68 61 6E state other than
0000F0: 20 75 70 70 65 72 20 52 4F 4D 73 20 64 69 73 61 upper ROMs disa
000100: 62 6C 65 64 20 20 61 6E 64 0D 0A 20 20 20 20 20 bled and..
000110: 20 20 6C 6F 77 65 72 20 52 4F 4D 20 65 6E 61 62 lower ROM enab
000120: 6C 65 64 20 69 73 20 72 65 71 75 69 72 65 64 20 led is required
000130: 74 68 65 6E 20 74 68 65 20 61 70 70 72 6F 70 72 then the appropr
000140: 69 61 74 65 20 72 65 73 74 61 72 74 20 69 6E 73 iate restart ins
000150: 74 72 75 63 74 69 6F 6E 0D 0A 20 20 20 20 20 20 truction..
000160: 20 6D 69 67 68 74 20 62 65 20 73 75 62 73 74 69 might be substi
000170: 74 75 74 65 64 20 28 73 65 65 20 73 65 63 74 69 tuted (see secti
000180: 6F 6E 20 32 2E 33 29 2E 20 54 68 65 20 20 69 6E on 2.3). The in
000190: 64 69 72 65 63 74 69 6F 6E 73 20 20 61 72 65 20 directions are
0001A0: 20 74 6F 20 20 62 65 0D 0A 20 20 20 20 20 20 20 to be..
0001B0: 66 6F 75 6E 64 20 62 65 74 77 65 65 6E 20 23 42 found between #B
0001C0: 44 43 44 20 61 6E 64 20 23 42 44 46 36 2E 0D 0A DCD and #BDF6...
0001D0: 0D 0A 20 20 20 20 20 20 20 41 74 20 74 68 69 73 .. At this
0001E0: 20 6C 65 76 65 6C 20 6F 66 20 6F 70 65 72 61 74 level of operat
0001F0: 69 6F 6E 20 76 65 72 79 20 6C 69 74 74 6C 65 20 ion very little
Size : 512 (Real : 512)
000000: 76 61 6C 69 64 61 74 69 6F 6E 20 69 73 20 63 61 validation is ca
000010: 72 72 69 65 64 20 20 6F 75 74 2E 20 20 49 66 0D rried out. If.
000020: 0A 20 20 20 20 20 20 20 69 6E 63 6F 72 72 65 63 . incorrec
000030: 74 20 70 61 72 61 6D 65 74 65 72 73 20 61 72 65 t parameters are
000040: 20 70 61 73 73 65 64 20 6F 72 20 61 20 20 73 75 passed or a su
000050: 62 73 74 69 74 75 74 65 20 20 72 6F 75 74 69 6E bstitute routin
000060: 65 20 20 63 6F 72 72 75 70 74 73 20 20 61 0D 0A e corrupts a..
000070: 20 20 20 20 20 20 20 72 65 67 69 73 74 65 72 20 register
000080: 69 6E 20 64 65 66 69 61 6E 63 65 20 6F 66 20 74 in defiance of t
000090: 68 65 20 64 6F 63 75 6D 65 6E 74 65 64 20 20 69 he documented i
0000A0: 6E 74 65 72 66 61 63 65 20 20 74 68 65 6E 20 20 nterface then
0000B0: 74 68 65 20 20 66 69 72 6D 77 61 72 65 0D 0A 20 the firmware..
0000C0: 20 20 20 20 20 20 77 69 6C 6C 20 70 72 6F 62 61 will proba
0000D0: 62 6C 79 20 63 65 61 73 65 20 74 6F 20 66 75 6E bly cease to fun
0000E0: 63 74 69 6F 6E 20 61 73 20 65 78 70 65 63 74 65 ction as expecte
0000F0: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 6F 72 d..... Mor
000100: 65 20 64 65 74 61 69 6C 65 64 20 64 65 73 63 72 e detailed descr
000110: 69 70 74 69 6F 6E 73 20 6F 66 20 74 68 65 73 65 iptions of these
000120: 20 72 6F 75 74 69 6E 65 73 20 63 61 6E 20 62 65 routines can be
000130: 20 66 6F 75 6E 64 20 20 69 6E 20 20 73 65 63 74 found in sect
000140: 69 6F 6E 0D 0A 20 20 20 20 20 20 20 31 36 2E 0D ion.. 16..
000150: 0A 0D 0A 20 20 20 20 20 20 20 31 34 2E 32 2E 31 ... 14.2.1
000160: 20 54 65 78 74 20 56 44 55 20 49 6E 64 69 72 65 Text VDU Indire
000170: 63 74 69 6F 6E 73 0D 0A 0D 0A 20 20 20 20 20 20 ctions....
000180: 20 30 20 20 20 23 42 44 43 44 20 20 54 58 54 20 0 #BDCD TXT
000190: 44 52 41 57 20 43 55 52 53 4F 52 20 20 20 20 20 DRAW CURSOR
0001A0: 20 50 6C 61 63 65 20 74 68 65 20 63 75 72 73 6F Place the curso
0001B0: 72 20 62 6C 6F 62 20 20 6F 6E 20 20 74 68 65 20 r blob on the
0001C0: 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 20 20 20 screen..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001F0: 28 69 66 20 65 6E 61 62 6C 65 64 29 2E 0D 0A 0D (if enabled)....
Size : 512 (Real : 512)
000000: 0A 20 20 20 20 20 20 20 31 20 20 20 23 42 44 44 . 1 #BDD
000010: 30 20 20 54 58 54 20 55 4E 44 52 41 57 20 43 55 0 TXT UNDRAW CU
000020: 52 53 4F 52 20 20 20 20 52 65 6D 6F 76 65 20 74 RSOR Remove t
000030: 68 65 20 63 75 72 73 6F 72 20 62 6C 6F 62 20 66 he cursor blob f
000040: 72 6F 6D 20 74 68 65 20 73 63 72 65 65 6E 0D 0A rom the screen..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 28 69 66 20 65 6E 61 62 6C (if enabl
000080: 65 64 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 32 ed)..... 2
000090: 20 20 20 23 42 44 44 33 20 20 54 58 54 20 57 52 #BDD3 TXT WR
0000A0: 49 54 45 20 43 48 41 52 20 20 20 20 20 20 20 57 ITE CHAR W
0000B0: 72 69 74 65 20 61 20 63 68 61 72 61 63 74 65 72 rite a character
0000C0: 20 66 72 6F 6D 20 74 68 65 20 73 63 72 65 65 6E from the screen
0000D0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 33 20 20 20 ..... 3
0000E0: 23 42 44 44 36 20 20 54 58 54 20 55 4E 57 52 49 #BDD6 TXT UNWRI
0000F0: 54 45 20 20 20 20 20 20 20 20 20 20 52 65 61 64 TE Read
000100: 20 61 20 63 68 61 72 61 63 74 65 72 20 66 72 6F a character fro
000110: 6D 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D m the screen....
000120: 0A 20 20 20 20 20 20 20 34 20 20 20 23 42 44 44 . 4 #BDD
000130: 39 20 20 54 58 54 20 4F 55 54 20 41 43 54 49 4F 9 TXT OUT ACTIO
000140: 4E 20 20 20 20 20 20 20 4F 75 74 70 75 74 20 61 N Output a
000150: 20 63 68 61 72 61 63 74 65 72 20 6F 72 20 63 6F character or co
000160: 6E 74 72 6F 6C 20 63 6F 64 65 2E 0D 0A 0D 0A 20 ntrol code.....
000170: 20 20 20 20 20 20 31 34 2E 32 2E 32 20 47 72 61 14.2.2 Gra
000180: 70 68 69 63 73 20 56 44 55 20 49 6E 64 69 72 65 phics VDU Indire
000190: 63 74 69 6F 6E 73 0D 0A 0D 0A 20 20 20 20 20 20 ctions....
0001A0: 20 35 20 20 20 23 42 44 44 43 20 20 47 52 41 20 5 #BDDC GRA
0001B0: 50 4C 4F 54 20 20 20 20 20 20 20 20 20 20 20 20 PLOT
0001C0: 20 50 6C 6F 74 20 61 20 70 6F 69 6E 74 2E 0D 0A Plot a point...
0001D0: 0D 0A 20 20 20 20 20 20 20 36 20 20 20 23 42 44 .. 6 #BD
0001E0: 44 46 20 20 47 52 41 20 54 45 53 54 20 20 20 20 DF GRA TEST
0001F0: 20 20 20 20 20 20 20 20 20 54 65 73 74 20 61 20 Test a
Size : 512 (Real : 512)
000000: 70 6F 69 6E 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 point.....
000010: 20 37 20 20 20 23 42 44 45 32 20 20 47 52 41 20 7 #BDE2 GRA
000020: 4C 49 4E 45 20 20 20 20 20 20 20 20 20 20 20 20 LINE
000030: 20 44 72 61 77 20 61 20 6C 69 6E 65 2E 0D 0A 0D Draw a line....
000040: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 ..... AMST
000050: 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 RAD CPC464/664/6
000060: 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 128 FIRMWARE
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 34 2E page 14.
000090: 31 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 14..............
0000A0: 20 20 20 20 20 20 20 31 34 2E 32 2E 33 20 53 63 14.2.3 Sc
0000B0: 72 65 65 6E 20 50 61 63 6B 20 49 6E 64 69 72 65 reen Pack Indire
0000C0: 63 74 69 6F 6E 73 0D 0A 0D 0A 0D 0A 20 20 20 20 ctions......
0000D0: 20 20 20 38 20 20 20 23 42 44 45 35 20 20 53 43 8 #BDE5 SC
0000E0: 52 20 52 45 41 44 20 20 20 20 20 20 20 20 20 20 R READ
0000F0: 20 20 20 52 65 61 64 20 61 20 70 69 78 65 6C 20 Read a pixel
000100: 66 72 6F 6D 20 74 68 65 20 73 63 72 65 65 6E 2E from the screen.
000110: 0D 0A 0D 0A 20 20 20 20 20 20 20 39 20 20 20 23 .... 9 #
000120: 42 44 45 38 20 20 53 43 52 20 57 52 49 54 45 20 BDE8 SCR WRITE
000130: 20 20 20 20 20 20 20 20 20 20 20 57 72 69 74 65 Write
000140: 20 61 20 70 69 78 65 6C 28 73 29 20 74 6F 20 74 a pixel(s) to t
000150: 68 65 20 20 73 63 72 65 65 6E 20 20 75 73 69 6E he screen usin
000160: 67 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 g..
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 20 20 20 20 20 74 68 65 20 63 75 the cu
000190: 72 72 65 6E 74 20 67 72 61 70 68 69 63 73 20 77 rrent graphics w
0001A0: 72 69 74 65 20 6D 6F 64 65 2E 0D 0A 0D 0A 20 20 rite mode.....
0001B0: 20 20 20 20 20 31 30 20 20 23 42 44 45 42 20 20 10 #BDEB
0001C0: 53 43 52 20 4D 4F 44 45 20 43 4C 45 41 52 20 20 SCR MODE CLEAR
0001D0: 20 20 20 20 20 43 6C 65 61 72 20 74 68 65 20 73 Clear the s
0001E0: 63 72 65 65 6E 20 74 6F 20 69 6E 6B 20 30 2E 0D creen to ink 0..
0001F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 34 2E 32 ..... 14.2
Size : 512 (Real : 512)
000000: 2E 34 20 4B 65 79 62 6F 61 72 64 20 4D 61 6E 61 .4 Keyboard Mana
000010: 67 65 72 20 49 6E 64 69 72 65 63 74 69 6F 6E 73 ger Indirections
000020: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 31 20 ...... 11
000030: 20 23 42 44 45 45 20 20 4B 4D 20 54 45 53 54 20 #BDEE KM TEST
000040: 42 52 45 41 4B 20 20 20 20 20 20 20 20 54 65 73 BREAK Tes
000050: 74 20 66 6F 72 20 62 72 65 61 6B 20 28 6F 72 20 t for break (or
000060: 72 65 73 65 74 29 2E 0D 0A 0D 0A 20 20 20 20 20 reset).....
000070: 20 20 31 33 20 20 23 42 44 46 34 20 20 4B 4D 20 13 #BDF4 KM
000080: 53 43 41 4E 20 4B 45 59 53 20 20 20 20 20 20 20 SCAN KEYS
000090: 20 20 53 63 61 6E 20 74 68 65 20 6B 65 79 62 6F Scan the keybo
0000A0: 61 72 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ard.......
0000B0: 20 31 34 2E 32 2E 35 20 4D 61 63 68 69 6E 65 20 14.2.5 Machine
0000C0: 50 61 63 6B 20 49 6E 64 69 72 65 63 74 69 6F 6E Pack Indirection
0000D0: 73 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 32 s...... 12
0000E0: 20 20 23 42 44 46 31 20 20 4D 43 20 57 41 49 54 #BDF1 MC WAIT
0000F0: 20 50 52 49 4E 54 45 52 20 20 20 20 20 20 50 72 PRINTER Pr
000100: 69 6E 74 20 61 20 63 68 61 72 61 63 74 65 72 20 int a character
000110: 6F 72 20 74 69 6D 65 20 6F 75 74 2E 0D 0A 0D 0A or time out.....
000120: 0D 0A 20 20 20 20 20 20 20 31 34 2E 33 20 54 68 .. 14.3 Th
000130: 65 20 48 69 67 68 20 4B 65 72 6E 65 6C 20 4A 75 e High Kernel Ju
000140: 6D 70 62 6C 6F 63 6B 0D 0A 0D 0A 0D 0A 20 20 20 mpblock......
000150: 20 20 20 20 54 68 65 20 68 69 67 68 20 4B 65 72 The high Ker
000160: 6E 65 6C 20 6A 75 6D 70 62 6C 6F 63 6B 20 69 73 nel jumpblock is
000170: 20 70 72 6F 76 69 64 65 64 20 74 6F 20 61 6C 6C provided to all
000180: 6F 77 20 74 68 65 20 75 73 65 72 20 74 6F 20 20 ow the user to
000190: 74 75 72 6E 20 20 52 4F 4D 73 0D 0A 20 20 20 20 turn ROMs..
0001A0: 20 20 20 6F 6E 20 61 6E 64 20 6F 66 66 20 61 6E on and off an
0001B0: 64 20 20 74 6F 20 20 61 63 63 65 73 73 20 20 6D d to access m
0001C0: 65 6D 6F 72 79 20 20 75 6E 64 65 72 6E 65 61 74 emory underneat
0001D0: 68 20 20 52 4F 4D 73 20 20 77 68 69 6C 65 20 20 h ROMs while
0001E0: 74 68 65 79 20 20 61 72 65 0D 0A 20 20 20 20 20 they are..
0001F0: 20 20 65 6E 61 62 6C 65 64 2E 20 54 68 65 20 65 enabled. The e
Size : 512 (Real : 512)
000000: 6E 74 72 69 65 73 20 69 6E 20 74 68 69 73 20 6A ntries in this j
000010: 75 6D 70 62 6C 6F 63 6B 20 61 72 65 20 6E 6F 74 umpblock are not
000020: 20 61 6C 6C 20 6A 75 6D 70 20 20 69 6E 73 74 72 all jump instr
000030: 75 63 74 69 6F 6E 73 2C 0D 0A 20 20 20 20 20 20 uctions,..
000040: 20 73 6F 6D 65 20 65 6E 74 72 69 65 73 20 61 72 some entries ar
000050: 65 20 74 68 65 20 73 74 61 72 74 20 6F 66 20 72 e the start of r
000060: 6F 75 74 69 6E 65 73 2C 20 74 68 75 73 20 74 68 outines, thus th
000070: 65 20 75 73 65 72 20 73 68 6F 75 6C 64 20 6E 6F e user should no
000080: 74 20 61 6C 74 65 72 0D 0A 20 20 20 20 20 20 20 t alter..
000090: 61 6E 79 20 6F 66 20 74 68 65 20 65 6E 74 72 69 any of the entri
0000A0: 65 73 20 20 69 6E 20 20 74 68 69 73 20 20 6A 75 es in this ju
0000B0: 6D 70 62 6C 6F 63 6B 2E 20 20 54 68 65 20 20 68 mpblock. The h
0000C0: 69 67 68 20 20 4B 65 72 6E 65 6C 20 20 6A 75 6D igh Kernel jum
0000D0: 70 62 6C 6F 63 6B 0D 0A 20 20 20 20 20 20 20 6F pblock.. o
0000E0: 63 63 75 70 69 65 73 20 73 74 6F 72 65 20 66 72 ccupies store fr
0000F0: 6F 6D 20 23 42 39 30 30 20 75 70 77 61 72 64 73 om #B900 upwards
000100: 2E 20 4D 6F 72 65 20 64 65 74 61 69 6C 65 64 20 . More detailed
000110: 64 65 73 63 72 69 70 74 69 6F 6E 73 20 20 6F 66 descriptions of
000120: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 72 6F the.. ro
000130: 75 74 69 6E 65 73 20 69 6E 20 69 74 20 63 61 6E utines in it can
000140: 20 62 65 20 66 6F 75 6E 64 20 69 6E 20 73 65 63 be found in sec
000150: 74 69 6F 6E 20 31 37 2E 0D 0A 0D 0A 0D 0A 20 20 tion 17.......
000160: 20 20 20 20 20 30 20 20 20 23 42 39 30 30 20 20 0 #B900
000170: 4B 4C 20 55 20 52 4F 4D 20 45 4E 41 42 4C 45 20 KL U ROM ENABLE
000180: 20 20 20 20 20 54 75 72 6E 20 6F 6E 20 74 68 65 Turn on the
000190: 20 63 75 72 72 65 6E 74 20 75 70 70 65 72 20 52 current upper R
0001A0: 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 31 20 OM..... 1
0001B0: 20 20 23 42 39 30 33 20 20 4B 4C 20 55 20 52 4F #B903 KL U RO
0001C0: 4D 20 44 49 53 41 42 4C 45 20 20 20 20 20 54 75 M DISABLE Tu
0001D0: 72 6E 20 6F 66 66 20 74 68 65 20 75 70 70 65 72 rn off the upper
0001E0: 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ROM.....
0001F0: 32 20 20 20 23 42 39 30 36 20 20 4B 4C 20 4C 20 2 #B906 KL L
Size : 512 (Real : 512)
000000: 52 4F 4D 20 45 4E 41 42 4C 45 20 20 20 20 20 20 ROM ENABLE
000010: 54 75 72 6E 20 6F 6E 20 74 68 65 20 6C 6F 77 65 Turn on the lowe
000020: 72 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 20 20 r ROM.....
000030: 20 33 20 20 20 23 42 39 30 39 20 20 4B 4C 20 4C 3 #B909 KL L
000040: 20 52 4F 4D 20 44 49 53 41 42 4C 45 20 20 20 20 ROM DISABLE
000050: 20 54 75 72 6E 20 6F 66 66 20 74 68 65 20 6C 6F Turn off the lo
000060: 77 65 72 20 52 4F 4D 2E 0D 0A 0D 0A 20 20 20 20 wer ROM.....
000070: 20 20 20 34 20 20 20 23 42 39 30 43 20 20 4B 4C 4 #B90C KL
000080: 20 52 4F 4D 20 52 45 53 54 4F 52 45 20 20 20 20 ROM RESTORE
000090: 20 20 20 52 65 73 74 6F 72 65 20 74 68 65 20 70 Restore the p
0000A0: 72 65 76 69 6F 75 73 20 52 4F 4D 20 73 74 61 74 revious ROM stat
0000B0: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 35 20 20 e..... 5
0000C0: 20 23 42 39 30 46 20 20 4B 4C 20 52 4F 4D 20 53 #B90F KL ROM S
0000D0: 45 4C 45 43 54 20 20 20 20 20 20 20 20 53 65 6C ELECT Sel
0000E0: 65 63 74 20 61 20 70 61 72 74 69 63 75 6C 61 72 ect a particular
0000F0: 20 75 70 70 65 72 20 52 4F 4D 2E 0D 0A 0D 0A 20 upper ROM.....
000100: 20 20 20 20 20 20 36 20 20 20 23 42 39 31 32 20 6 #B912
000110: 20 4B 4C 20 43 55 52 52 20 53 45 4C 45 43 54 49 KL CURR SELECTI
000120: 4F 4E 20 20 20 20 41 73 6B 20 20 77 68 69 63 68 ON Ask which
000130: 20 20 75 70 70 65 72 20 20 52 4F 4D 20 20 69 73 upper ROM is
000140: 20 20 20 63 75 72 72 65 6E 74 6C 79 0D 0A 20 20 currently..
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 73 65 6C 65 63 74 65 64 2E 0D 0A selected...
000180: 0D 0A 20 20 20 20 20 20 20 37 20 20 20 23 42 39 .. 7 #B9
000190: 31 35 20 20 4B 4C 20 50 52 4F 42 45 20 52 4F 4D 15 KL PROBE ROM
0001A0: 20 20 20 20 20 20 20 20 20 41 73 6B 20 63 6C 61 Ask cla
0001B0: 73 73 20 61 6E 64 20 76 65 72 73 69 6F 6E 20 6F ss and version o
0001C0: 66 20 61 20 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 0D 0A f a ROM.........
0001D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
0001E0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
0001F0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 34 page 14
000020: 2E 31 35 0D 0A 1A 0D 0A 0D 0A 20 20 20 20 20 20 .15.......
000030: 20 54 68 65 72 65 20 61 72 65 20 61 20 6E 75 6D There are a num
000040: 62 65 72 20 6F 66 20 6A 75 6D 70 62 6C 6F 63 6B ber of jumpblock
000050: 73 20 70 72 6F 76 69 64 65 64 20 62 79 20 74 68 s provided by th
000060: 65 20 66 69 72 6D 77 61 72 65 2E 20 54 68 65 20 e firmware. The
000070: 6C 61 72 67 65 73 74 0D 0A 20 20 20 20 20 20 20 largest..
000080: 20 52 4F 4D 20 52 45 53 54 4F 52 45 20 20 20 20 ROM RESTORE
000090: 20 20 20 52 65 73 74 6F 72 65 20 74 68 65 20 70 Restore the p
0000A0: 72 65 76 69 6F 75 73 20 52 4F 4D 20 73 74 61 74 revious ROM stat
0000B0: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 35 20 20 e..... 5
0000C0: 20 23 42 39 30 46 20 20 4B 4C 20 52 4F 4D 20 53 #B90F KL ROM S
0000D0: 45 4C 45 43 54 20 20 20 20 20 20 20 20 53 65 6C ELECT Sel
0000E0: 65 63 74 20 61 20 70 61 72 74 69 63 75 6C 61 72 ect a particular
0000F0: 20 75 70 70 65 72 20 52 4F 4D 2E 0D 0A 0D 0A 20 upper ROM.....
000100: 20 20 20 20 20 20 36 20 20 20 23 42 39 31 32 20 6 #B912
000110: 20 4B 4C 20 43 55 52 52 20 53 45 4C 45 43 54 49 KL CURR SELECTI
000120: 4F 4E 20 20 20 20 41 73 6B 20 20 77 68 69 63 68 ON Ask which
000130: 20 20 75 70 70 65 72 20 20 52 4F 4D 20 20 69 73 upper ROM is
000140: 20 20 20 63 75 72 72 65 6E 74 6C 79 0D 0A 20 20 currently..
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 73 65 6C 65 63 74 65 64 2E 0D 0A selected...
000180: 0D 0A 20 20 20 20 20 20 20 37 20 20 20 23 42 39 .. 7 #B9
000190: 31 35 20 20 4B 4C 20 50 52 4F 42 45 20 52 4F 4D 15 KL PROBE ROM
0001A0: 20 20 20 20 20 20 20 20 20 41 73 6B 20 63 6C 61 Ask cla
0001B0: 73 73 20 61 6E 64 20 76 65 72 73 69 6F 6E 20 6F ss and version o
0001C0: 66 20 61 20 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 0D 0A f a ROM.........
0001D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
0001E0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
0001F0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000010: 20 20 20 38 20 20 20 23 42 39 31 38 20 20 4B 4C 8 #B918 KL
000020: 20 52 4F 4D 20 44 45 53 45 4C 45 43 54 20 20 20 ROM DESELECT
000030: 20 20 20 52 65 73 74 6F 72 65 20 20 20 74 68 65 Restore the
000040: 20 20 20 70 72 65 76 69 6F 75 73 20 20 20 75 70 previous up
000050: 70 65 72 20 20 20 52 4F 4D 0D 0A 20 20 20 20 20 per ROM..
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 73 65 6C 65 63 74 69 6F 6E 2E 0D 0A 0D 0A selection.....
000090: 20 20 20 20 20 20 20 39 20 20 20 23 42 39 31 42 9 #B91B
0000A0: 20 20 4B 4C 20 4C 44 49 52 20 20 20 20 20 20 20 KL LDIR
0000B0: 20 20 20 20 20 20 20 4D 6F 76 65 20 73 74 6F 72 Move stor
0000C0: 65 20 28 4C 44 49 52 29 20 77 69 74 68 20 52 4F e (LDIR) with RO
0000D0: 4D 73 20 64 69 73 61 62 6C 65 64 2E 0D 0A 0D 0A Ms disabled.....
0000E0: 20 20 20 20 20 20 20 31 30 20 20 23 42 39 31 45 10 #B91E
0000F0: 20 20 4B 4C 20 4C 44 44 52 20 20 20 20 20 20 20 KL LDDR
000100: 20 20 20 20 20 20 20 4D 6F 76 65 20 73 74 6F 72 Move stor
000110: 65 20 28 4C 44 44 52 29 20 77 69 74 68 20 52 4F e (LDDR) with RO
000120: 4D 73 20 64 69 73 61 62 6C 65 64 2E 0D 0A 0D 0A Ms disabled.....
000130: 20 20 20 20 20 20 20 31 31 20 20 23 42 39 32 31 11 #B921
000140: 20 20 4B 4C 20 50 4F 4C 4C 20 53 59 4E 43 48 52 KL POLL SYNCHR
000150: 4F 4E 4F 55 53 20 20 43 68 65 63 6B 20 69 66 20 ONOUS Check if
000160: 61 6E 20 65 76 65 6E 74 20 77 69 74 68 20 68 69 an event with hi
000170: 67 68 65 72 20 70 72 69 6F 72 69 74 79 0D 0A 20 gher priority..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001A0: 20 20 20 20 20 20 74 68 61 6E 20 74 68 65 20 63 than the c
0001B0: 75 72 72 65 6E 74 20 65 76 65 6E 74 20 69 73 20 urrent event is
0001C0: 70 65 6E 64 69 6E 67 2E 0D 0A 0D 0A 20 20 20 20 pending.....
0001D0: 20 20 20 31 34 20 20 23 42 39 32 41 20 20 4B 4C 14 #B92A KL
0001E0: 20 53 43 41 4E 20 4E 45 45 44 45 44 20 20 20 20 SCAN NEEDED
0001F0: 20 20 20 45 6E 73 75 72 65 20 6B 65 79 62 6F 61 Ensure keyboa
Size : 512 (Real : 512)
000000: 72 64 20 20 69 73 20 20 73 63 61 6E 6E 65 64 20 rd is scanned
000010: 20 61 74 20 20 6E 65 78 74 0D 0A 20 20 20 20 20 at next..
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 6F 70 70 6F 72 74 75 6E 69 74 79 2E 0D 0A opportunity...
000050: 0D 0A 20 20 20 20 20 20 20 28 4E 2E 42 3E 20 74 .. (N.B> t
000060: 68 65 72 65 20 61 72 65 20 6E 6F 20 65 6E 74 72 here are no entr
000070: 69 65 73 20 31 32 20 6F 72 20 31 33 29 2E 0D 0A ies 12 or 13)...
000080: 0D 0A 0D 0A 20 20 20 20 20 20 20 31 34 2E 34 20 .... 14.4
000090: 54 68 65 20 4C 6F 77 20 4B 65 72 6E 65 6C 20 4A The Low Kernel J
0000A0: 75 6D 70 62 6C 6F 63 6B 2E 0D 0A 0D 0A 0D 0A 20 umpblock.......
0000B0: 20 20 20 20 20 20 54 68 65 20 4B 65 72 6E 65 6C The Kernel
0000C0: 20 70 72 6F 76 69 64 65 73 20 61 20 6E 75 6D 62 provides a numb
0000D0: 65 72 20 6F 66 20 75 73 65 66 75 6C 20 72 6F 75 er of useful rou
0000E0: 74 69 6E 65 73 20 69 6E 20 74 68 65 20 61 72 65 tines in the are
0000F0: 61 20 6F 66 20 20 6D 65 6D 6F 72 79 0D 0A 20 20 a of memory..
000100: 20 20 20 20 20 62 65 74 77 65 65 6E 20 23 30 30 between #00
000110: 30 20 61 6E 64 20 23 30 30 33 46 2E 20 54 68 65 0 and #003F. The
000120: 73 65 20 61 72 65 20 61 76 61 69 6C 61 62 6C 65 se are available
000130: 2C 20 69 6E 20 73 6F 6D 65 20 63 61 73 65 73 2C , in some cases,
000140: 20 62 6F 74 68 20 61 73 20 20 61 0D 0A 20 20 20 both as a..
000150: 20 20 20 20 70 75 62 6C 69 73 68 65 64 20 72 6F published ro
000160: 75 74 69 6E 65 20 61 64 64 72 65 73 73 20 61 6E utine address an
000170: 64 20 61 73 20 61 20 72 65 73 74 61 72 74 20 69 d as a restart i
000180: 6E 73 74 72 75 63 74 69 6F 6E 2E 20 49 6E 20 67 nstruction. In g
000190: 65 6E 65 72 61 6C 20 74 68 65 0D 0A 20 20 20 20 eneral the..
0001A0: 20 20 20 72 6F 75 74 69 6E 65 73 20 61 72 65 20 routines are
0001B0: 61 76 61 69 6C 61 62 6C 65 20 62 6F 74 68 20 69 available both i
0001C0: 6E 20 52 4F 4D 20 61 6E 64 20 52 41 4D 20 73 6F n ROM and RAM so
0001D0: 20 77 68 65 74 68 65 72 20 74 68 65 20 6C 6F 77 whether the low
0001E0: 65 72 20 52 4F 4D 20 69 73 0D 0A 20 20 20 20 20 er ROM is..
0001F0: 20 20 65 6E 61 62 6C 65 64 20 64 6F 65 73 20 6E enabled does n
Size : 512 (Real : 512)
000000: 6F 74 20 6D 61 74 74 65 72 2E 20 54 68 65 72 65 ot matter. There
000010: 20 61 72 65 20 61 6C 73 6F 20 61 20 63 6F 75 70 are also a coup
000020: 6C 65 20 20 6F 66 20 20 61 72 65 61 73 20 20 61 le of areas a
000030: 76 61 69 6C 61 62 6C 65 0D 0A 20 20 20 20 20 20 vailable..
000040: 20 66 6F 72 20 74 68 65 20 75 73 65 72 20 74 6F for the user to
000050: 20 70 61 74 63 68 20 74 6F 20 74 72 61 70 20 52 patch to trap R
000060: 53 54 20 20 36 73 20 20 61 6E 64 20 20 69 6E 74 ST 6s and int
000070: 65 72 72 75 70 74 73 20 20 66 72 6F 6D 20 20 65 errupts from e
000080: 78 74 65 72 6E 61 6C 0D 0A 20 20 20 20 20 20 20 xternal..
000090: 68 61 72 64 77 61 72 65 2E 0D 0A 0D 0A 0D 0A 20 hardware.......
0000A0: 20 20 20 20 20 20 54 68 65 20 6C 6F 77 20 4B 65 The low Ke
0000B0: 72 6E 65 6C 20 6A 75 6D 70 62 6C 6F 63 6B 20 69 rnel jumpblock i
0000C0: 73 20 20 6E 6F 74 20 20 69 6E 74 65 6E 64 65 64 s not intended
0000D0: 20 20 66 6F 72 20 20 74 68 65 20 20 75 73 65 72 for the user
0000E0: 20 20 74 6F 20 20 61 6C 74 65 72 2E 0D 0A 20 20 to alter...
0000F0: 20 20 20 20 20 48 6F 77 65 76 65 72 2C 20 69 74 However, it
000100: 20 6D 61 79 20 62 65 20 6E 65 63 65 73 73 61 72 may be necessar
000110: 79 20 74 6F 20 61 6C 74 65 72 20 69 74 20 75 6E y to alter it un
000120: 64 65 72 20 63 65 72 74 61 69 6E 20 20 63 69 72 der certain cir
000130: 63 75 6D 73 74 61 6E 63 65 73 2E 0D 0A 20 20 20 cumstances...
000140: 20 20 20 20 49 6E 20 70 61 72 74 69 63 75 6C 61 In particula
000150: 72 20 74 68 65 20 49 4E 54 45 52 52 55 50 54 20 r the INTERRUPT
000160: 45 4E 54 52 59 20 28 62 79 20 70 61 74 63 68 69 ENTRY (by patchi
000170: 6E 67 20 74 68 65 20 6A 75 6D 70 20 61 74 20 20 ng the jump at
000180: 23 30 30 33 38 29 20 20 6F 72 0D 0A 20 20 20 20 #0038) or..
000190: 20 20 20 74 68 65 20 52 45 53 45 54 20 45 4E 54 the RESET ENT
0001A0: 52 59 20 28 62 79 20 20 70 61 74 63 68 69 6E 67 RY (by patching
0001B0: 20 20 74 68 65 20 20 62 79 74 65 73 20 20 66 72 the bytes fr
0001C0: 6F 6D 20 20 23 30 30 30 30 2E 2E 23 30 30 30 37 om #0000..#0007
0001D0: 29 2E 20 20 49 66 20 20 61 0D 0A 20 20 20 20 20 ). If a..
0001E0: 20 20 70 72 6F 67 72 61 6D 20 64 6F 65 73 20 63 program does c
0001F0: 68 61 6E 67 65 20 61 6E 79 20 6C 6F 63 61 74 69 hange any locati
Size : 512 (Real : 512)
000000: 6F 6E 73 20 69 6E 20 74 68 65 20 6A 75 6D 70 62 ons in the jumpb
000010: 6C 6F 63 6B 20 28 6F 74 68 65 72 20 20 74 68 61 lock (other tha
000020: 6E 20 20 74 68 6F 73 65 0D 0A 20 20 20 20 20 20 n those..
000030: 20 69 6E 20 74 68 65 20 55 53 45 52 20 52 45 53 in the USER RES
000040: 54 41 52 54 20 6F 72 20 45 58 54 20 49 4E 54 45 TART or EXT INTE
000050: 52 52 55 50 54 20 61 72 65 61 73 29 20 74 68 65 RRUPT areas) the
000060: 6E 20 69 74 20 69 73 20 20 74 68 65 20 20 70 72 n it is the pr
000070: 6F 67 72 61 6D 27 73 0D 0A 20 20 20 20 20 20 20 ogram's..
000080: 72 65 73 70 6F 6E 73 69 62 69 6C 69 74 79 20 74 responsibility t
000090: 6F 20 65 6E 73 75 72 65 20 74 68 61 74 20 74 68 o ensure that th
0000A0: 65 20 6C 6F 77 65 72 20 52 4F 4D 20 69 73 20 65 e lower ROM is e
0000B0: 6E 61 62 6C 65 64 20 6F 72 20 74 68 65 20 6F 72 nabled or the or
0000C0: 69 67 69 6E 61 6C 0D 0A 20 20 20 20 20 20 20 63 iginal.. c
0000D0: 6F 6E 74 65 6E 74 73 20 61 72 65 20 72 65 73 74 ontents are rest
0000E0: 6F 72 65 64 20 77 68 65 6E 20 61 6E 79 20 6F 74 ored when any ot
0000F0: 68 65 72 20 70 72 6F 67 72 61 6D 73 20 72 75 6E her programs run
000100: 73 2E 20 49 6E 20 70 61 72 74 69 63 75 6C 61 72 s. In particular
000110: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 70 72 the.. pr
000120: 6F 67 72 61 6D 20 6D 75 73 74 20 73 6F 72 74 20 ogram must sort
000130: 6F 75 74 20 74 68 65 20 73 74 61 74 65 20 77 68 out the state wh
000140: 65 6E 20 69 6E 74 65 72 72 75 70 74 73 20 6F 63 en interrupts oc
000150: 63 75 72 20 28 68 65 6E 63 65 20 74 68 65 20 20 cur (hence the
000160: 6E 65 65 64 0D 0A 20 20 20 20 20 20 20 74 6F 20 need.. to
000170: 70 61 74 63 68 20 74 68 65 20 49 4E 54 45 52 52 patch the INTERR
000180: 55 50 54 20 45 4E 54 52 59 29 2E 0D 0A 0D 0A 0D UPT ENTRY)......
000190: 0A 20 20 20 20 20 20 20 4D 6F 72 65 20 64 65 74 . More det
0001A0: 61 69 6C 65 64 20 64 65 73 63 72 69 70 74 69 6F ailed descriptio
0001B0: 6E 73 20 6F 66 20 74 68 65 20 72 6F 75 74 69 6E ns of the routin
0001C0: 65 73 20 69 6E 20 74 68 69 73 20 20 6A 75 6D 70 es in this jump
0001D0: 62 6C 6F 63 6B 20 20 63 61 6E 20 20 62 65 0D 0A block can be..
0001E0: 20 20 20 20 20 20 20 66 6F 75 6E 64 20 69 6E 20 found in
0001F0: 73 65 63 74 69 6F 6E 20 31 38 2E 0D 0A 0D 0A 0D section 18......
Size : 512 (Real : 512)
000000: 0A 20 20 20 20 20 20 20 23 30 30 30 30 20 20 52 . #0000 R
000010: 53 54 20 30 20 20 52 45 53 45 54 20 45 4E 54 52 ST 0 RESET ENTR
000020: 59 20 20 20 20 20 20 20 43 6F 6D 70 6C 65 74 65 Y Complete
000030: 6C 79 20 72 65 73 65 74 20 20 74 68 65 20 20 6D ly reset the m
000040: 61 63 68 69 6E 65 20 20 61 73 20 20 69 66 0D 0A achine as if..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 70 6F 77 65 72 65 64 20 75 powered u
000080: 70 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 23 30 30 p..... #00
000090: 30 38 20 20 52 53 54 20 31 20 20 4C 4F 57 20 4A 08 RST 1 LOW J
0000A0: 55 4D 50 20 20 20 20 20 20 20 20 20 20 4A 75 6D UMP Jum
0000B0: 70 20 74 6F 20 6C 6F 77 65 72 20 52 4F 4D 20 20 p to lower ROM
0000C0: 6F 72 20 20 52 41 4D 2C 20 20 74 61 6B 65 73 20 or RAM, takes
0000D0: 20 61 6E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 an..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 69 6E 6C 69 inli
000100: 6E 65 20 27 6C 6F 77 20 61 64 64 72 65 73 73 27 ne 'low address'
000110: 20 74 6F 20 6A 75 6D 70 20 74 6F 2E 0D 0A 0D 0A to jump to.....
000120: 20 20 20 20 20 20 20 23 30 30 30 42 20 20 20 20 #000B
000130: 20 20 20 20 20 4B 4C 20 4C 4F 57 20 50 43 48 4C KL LOW PCHL
000140: 20 20 20 20 20 20 20 4A 75 6D 70 20 74 6F 20 6C Jump to l
000150: 6F 77 65 72 20 52 4F 4D 20 6F 72 20 52 41 4D 2C ower ROM or RAM,
000160: 20 48 4C 20 20 63 6F 6E 74 61 69 6E 73 0D 0A 20 HL contains..
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 20 20 74 68 65 20 27 6C 6F 77 20 61 the 'low a
0001A0: 64 64 72 65 73 73 27 20 74 6F 20 6A 75 6D 70 20 ddress' to jump
0001B0: 74 6F 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 23 30 to..... #0
0001C0: 30 30 45 20 20 20 20 20 20 20 20 20 50 43 42 43 00E PCBC
0001D0: 20 49 4E 53 54 52 55 43 54 49 4F 4E 20 20 4A 75 INSTRUCTION Ju
0001E0: 6D 70 20 74 6F 20 61 64 64 72 65 73 73 20 69 6E mp to address in
0001F0: 20 42 43 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A BC.............
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
000010: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
000020: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 70 61 67 65 20 31 34 2E 31 36 0D 0A 0D page 14.16...
000050: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
000060: 20 20 23 30 30 31 30 20 20 52 53 54 20 32 20 53 #0010 RST 2 S
000070: 49 44 45 20 43 41 4C 4C 20 20 20 20 20 20 20 20 IDE CALL
000080: 20 20 43 61 6C 6C 20 74 6F 20 61 20 73 69 64 65 Call to a side
000090: 77 61 79 73 20 52 4F 4D 2C 20 20 74 61 6B 65 73 ways ROM, takes
0000A0: 20 20 69 6E 6C 69 6E 65 0D 0A 20 20 20 20 20 20 inline..
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000D0: 20 27 73 69 64 65 20 61 64 64 72 65 73 73 27 20 'side address'
0000E0: 74 6F 20 63 61 6C 6C 2E 0D 0A 0D 0A 20 20 20 20 to call.....
0000F0: 20 20 20 23 30 30 31 33 20 20 4B 4C 20 53 49 44 #0013 KL SID
000100: 45 20 50 43 48 4C 20 20 20 20 20 20 20 20 20 20 E PCHL
000110: 20 20 20 43 61 6C 6C 20 74 6F 20 61 20 73 69 64 Call to a sid
000120: 65 77 61 79 73 20 20 52 4F 4D 2C 20 20 48 4C 20 eways ROM, HL
000130: 20 63 6F 6E 74 61 69 6E 73 0D 0A 20 20 20 20 20 contains..
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 20 20 27 73 69 64 65 20 61 64 64 72 65 73 73 27 'side address'
000170: 20 74 6F 20 63 61 6C 6C 2E 0D 0A 0D 0A 20 20 20 to call.....
000180: 20 20 20 20 23 30 30 31 36 20 20 50 43 44 45 20 #0016 PCDE
000190: 49 4E 53 54 52 55 43 54 49 4F 4E 20 20 20 20 20 INSTRUCTION
0001A0: 20 20 20 20 4A 75 6D 70 20 74 6F 20 61 64 64 72 Jump to addr
0001B0: 65 73 73 20 69 6E 20 44 45 2E 0D 0A 0D 0A 20 20 ess in DE.....
0001C0: 20 20 20 20 20 23 30 30 31 38 20 20 52 53 54 20 #0018 RST
0001D0: 33 20 46 41 52 20 43 41 4C 4C 20 20 20 20 20 20 3 FAR CALL
0001E0: 20 20 20 20 20 43 61 6C 6C 20 61 20 72 6F 75 74 Call a rout
0001F0: 69 6E 65 20 20 69 6E 20 20 61 6E 79 20 20 52 4F ine in any RO
Size : 512 (Real : 512)
000000: 4D 20 20 6F 72 20 20 52 41 4D 2C 0D 0A 20 20 20 M or RAM,..
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 74 61 6B 65 73 20 61 6E 20 69 6E 6C takes an inl
000040: 69 6E 65 20 61 64 64 72 65 73 73 20 20 6F 66 20 ine address of
000050: 20 74 68 65 20 20 27 66 61 72 0D 0A 20 20 20 20 the 'far..
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 20 61 64 64 72 65 73 73 27 20 74 6F 20 63 address' to c
000090: 61 6C 6C 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 23 all..... #
0000A0: 30 30 31 42 20 20 4B 4C 20 46 41 52 20 50 43 48 001B KL FAR PCH
0000B0: 4C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 L C
0000C0: 61 6C 6C 20 61 20 72 6F 75 74 69 6E 65 20 69 6E all a routine in
0000D0: 20 61 6E 79 20 52 4F 4D 20 20 6F 72 20 20 52 41 any ROM or RA
0000E0: 4D 2C 20 20 43 0D 0A 20 20 20 20 20 20 20 20 20 M, C..
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6E an
000110: 64 20 48 4C 20 63 6F 6E 74 61 69 6E 20 74 68 65 d HL contain the
000120: 20 20 27 66 61 72 20 20 61 64 64 72 65 73 73 27 'far address'
000130: 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 20 20 20 to..
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6C cal
000160: 6C 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 23 30 30 l..... #00
000170: 31 45 20 20 50 43 48 4C 20 49 4E 53 54 52 55 43 1E PCHL INSTRUC
000180: 54 49 4F 4E 20 20 20 20 20 20 20 20 20 4A 75 6D TION Jum
000190: 70 20 74 6F 20 61 64 64 72 65 73 73 20 69 6E 20 p to address in
0001A0: 48 4C 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 23 30 HL..... #0
0001B0: 30 32 30 20 20 52 53 54 20 34 20 52 41 4D 20 4C 020 RST 4 RAM L
0001C0: 41 4D 20 20 20 20 20 20 20 20 20 20 20 20 4C 44 AM LD
0001D0: 20 41 2C 28 48 4C 29 20 77 69 74 68 20 61 6C 6C A,(HL) with all
0001E0: 20 52 4F 4D 73 20 64 69 73 61 62 6C 65 64 2E 0D ROMs disabled..
0001F0: 0A 0D 0A 20 20 20 20 20 20 20 23 30 30 32 33 20 ... #0023
Size : 512 (Real : 512)
000000: 20 4B 4C 20 46 41 52 20 49 43 41 4C 4C 20 20 20 KL FAR ICALL
000010: 20 20 20 20 20 20 20 20 20 20 43 61 6C 6C 20 61 Call a
000020: 20 72 6F 75 74 69 6E 65 20 69 6E 20 61 6E 79 20 routine in any
000030: 52 4F 4D 20 6F 72 20 20 52 41 4D 2C 20 20 48 4C ROM or RAM, HL
000040: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 70 6F 69 6E 74 73 20 points
000070: 61 74 20 74 68 65 20 27 66 61 72 20 61 64 64 72 at the 'far addr
000080: 65 73 73 27 20 74 6F 20 63 61 6C 6C 2E 0D 0A 0D ess' to call....
000090: 0A 20 20 20 20 20 20 20 23 30 30 32 38 20 20 52 . #0028 R
0000A0: 53 54 20 35 20 46 49 52 4D 20 4A 55 4D 50 20 20 ST 5 FIRM JUMP
0000B0: 20 20 20 20 20 20 20 20 4A 75 6D 70 20 74 6F 20 Jump to
0000C0: 6C 6F 77 65 72 20 20 52 4F 4D 2C 20 20 74 61 6B lower ROM, tak
0000D0: 65 73 20 20 61 6E 20 20 69 6E 6C 69 6E 65 0D 0A es an inline..
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 61 64 64 72 65 73 73 20 74 address t
000110: 6F 20 6A 75 6D 70 20 74 6F 2E 0D 0A 0D 0A 20 20 o jump to.....
000120: 20 20 20 20 20 23 30 30 33 30 20 20 52 53 54 20 #0030 RST
000130: 36 20 55 53 45 52 20 52 45 53 54 41 52 54 20 20 6 USER RESTART
000140: 20 20 20 20 20 52 4F 4D 20 76 65 72 73 69 6F 6E ROM version
000150: 20 73 61 76 65 73 20 63 75 72 72 65 6E 74 20 52 saves current R
000160: 4F 4D 20 73 74 61 74 65 20 69 6E 0D 0A 20 20 20 OM state in..
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 23 30 30 32 42 2C 20 74 75 72 6E 73 #002B, turns
0001A0: 20 74 68 65 20 20 6C 6F 77 65 72 20 20 52 4F 4D the lower ROM
0001B0: 20 20 6F 66 66 20 20 61 6E 64 0D 0A 20 20 20 20 off and..
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 6A 75 6D 70 73 20 74 6F 20 74 68 65 20 jumps to the
0001F0: 52 41 4D 20 76 65 72 73 69 6F 6E 2E 20 52 41 4D RAM version. RAM
Size : 512 (Real : 512)
000000: 20 20 76 65 72 73 69 6F 6E 0D 0A 20 20 20 20 20 version..
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 6D 61 79 20 62 65 20 70 61 74 63 68 65 64 may be patched
000040: 20 20 62 79 20 20 74 68 65 20 20 75 73 65 72 20 by the user
000050: 20 62 65 74 77 65 65 6E 0D 0A 20 20 20 20 20 20 between..
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 23 30 30 33 30 20 61 6E 64 20 23 30 30 33 37 #0030 and #0037
000090: 20 69 6E 63 6C 75 73 69 76 65 6C 79 2E 0D 0A 0D inclusively....
0000A0: 0A 20 20 20 20 20 20 20 23 30 30 33 38 20 20 52 . #0038 R
0000B0: 53 54 20 37 20 49 4E 54 45 52 52 55 50 54 20 45 ST 7 INTERRUPT E
0000C0: 4E 54 52 59 20 20 20 20 54 68 69 73 20 72 65 73 NTRY This res
0000D0: 74 61 72 74 20 69 73 20 6E 6F 74 20 61 76 61 69 tart is not avai
0000E0: 6C 61 62 6C 65 20 61 73 20 69 74 20 69 73 0D 0A lable as it is..
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 20 20 20 20 20 20 20 75 73 65 64 20 20 66 6F 72 used for
000120: 20 20 69 6E 74 65 72 72 75 70 74 73 20 20 28 5A interrupts (Z
000130: 38 30 20 20 69 6E 74 65 72 72 75 70 74 0D 0A 20 80 interrupt..
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 20 20 20 20 20 20 6D 6F 64 65 20 31 29 2E 0D 0A mode 1)...
000170: 0D 0A 20 20 20 20 20 20 20 23 30 30 33 42 20 20 .. #003B
000180: 45 58 54 20 49 4E 54 45 52 52 55 50 54 20 20 20 EXT INTERRUPT
000190: 20 20 20 20 20 20 20 20 20 57 68 65 6E 20 20 61 When a
0001A0: 6E 20 20 69 6E 74 65 72 72 75 70 74 20 20 6F 63 n interrupt oc
0001B0: 63 75 72 73 20 20 20 6F 6E 20 20 20 74 68 65 0D curs on the.
0001C0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 65 78 70 61 6E 73 69 6F expansio
0001F0: 6E 20 20 70 6F 72 74 20 20 74 68 65 20 20 66 69 n port the fi
Size : 512 (Real : 512)
000000: 72 6D 77 61 72 65 20 20 20 63 61 6C 6C 73 0D 0A rmware calls..
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 20 20 20 6C 6F 63 61 74 69 6F 6E 20 location
000040: 23 30 30 33 42 20 69 6E 20 52 41 4D 2E 20 20 54 #003B in RAM. T
000050: 68 65 20 20 75 73 65 72 20 20 6D 61 79 0D 0A 20 he user may..
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 20 20 20 20 70 61 74 63 68 20 20 20 62 65 patch be
000090: 74 77 65 65 6E 20 20 20 23 30 30 33 42 20 20 20 tween #003B
0000A0: 61 6E 64 20 20 20 20 23 30 30 33 46 0D 0A 20 20 and #003F..
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000D0: 20 20 20 20 20 69 6E 63 6C 75 73 69 76 65 20 74 inclusive t
0000E0: 6F 20 74 72 61 70 20 74 68 69 73 20 6F 63 63 75 o trap this occu
0000F0: 72 72 65 6E 63 65 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D rrence..........
000100: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
000110: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
000120: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
000130: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
000140: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 70 61 67 65 20 31 34 2E 31 37 0D 0A 1A 68 65 20 page 14.17...he
000170: 6C 61 72 67 65 73 74 0D 0A 20 20 20 20 20 20 20 largest..
000180: 45 58 54 20 49 4E 54 45 52 52 55 50 54 20 20 20 EXT INTERRUPT
000190: 20 20 20 20 20 20 20 20 20 57 68 65 6E 20 20 61 When a
0001A0: 6E 20 20 69 6E 74 65 72 72 75 70 74 20 20 6F 63 n interrupt oc
0001B0: 63 75 72 73 20 20 20 6F 6E 20 20 20 74 68 65 0D curs on the.
0001C0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 65 78 70 61 6E 73 69 6F expansio
0001F0: 6E 20 20 70 6F 72 74 20 20 74 68 65 20 20 66 69 n port the fi
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
000010: 35 20 54 68 65 20 4D 61 69 6E 20 46 69 72 6D 77 5 The Main Firmw
000020: 61 72 65 20 4A 75 6D 70 62 6C 6F 63 6B 2E 0D 0A are Jumpblock...
000030: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 .... This
000040: 73 65 63 74 69 6F 6E 20 64 65 73 63 72 69 62 65 section describe
000050: 73 20 69 6E 20 64 65 74 61 69 6C 20 74 68 65 20 s in detail the
000060: 65 6E 74 72 79 20 61 6E 64 20 65 78 69 74 20 63 entry and exit c
000070: 6F 6E 64 69 74 69 6F 6E 73 20 61 6E 64 20 74 68 onditions and th
000080: 65 0D 0A 20 20 20 20 20 20 20 65 66 66 65 63 74 e.. effect
000090: 73 20 6F 66 20 61 6C 6C 20 74 68 65 20 72 6F 75 s of all the rou
0000A0: 74 69 6E 65 73 20 69 6E 20 74 68 65 20 6D 61 69 tines in the mai
0000B0: 6E 20 66 69 72 6D 77 61 72 65 20 6A 75 6D 70 62 n firmware jumpb
0000C0: 6C 6F 63 6B 2E 20 20 54 68 65 20 20 6D 61 69 6E lock. The main
0000D0: 0D 0A 20 20 20 20 20 20 20 66 69 72 6D 77 61 72 .. firmwar
0000E0: 65 20 6A 75 6D 70 62 6C 6F 63 6B 20 69 73 20 64 e jumpblock is d
0000F0: 65 73 63 72 69 62 65 64 20 69 6E 20 73 65 63 74 escribed in sect
000100: 69 6F 6E 20 31 34 2E 31 2E 0D 0A 0D 0A 0D 0A 20 ion 14.1.......
000110: 20 20 20 20 20 20 54 68 65 20 75 73 65 72 20 20 The user
000120: 69 73 20 20 61 64 76 69 73 65 64 20 20 74 6F 20 is advised to
000130: 20 72 65 61 64 20 20 74 68 65 20 20 73 65 63 74 read the sect
000140: 69 6F 6E 73 20 20 6F 6E 20 20 65 61 63 68 20 20 ions on each
000150: 70 61 63 6B 20 20 62 65 66 6F 72 65 0D 0A 20 20 pack before..
000160: 20 20 20 20 20 61 74 74 65 6D 70 74 69 6E 67 20 attempting
000170: 74 6F 20 75 6E 64 65 72 73 74 61 6E 64 20 74 68 to understand th
000180: 65 20 6A 75 6D 70 62 6C 6F 63 6B 20 65 6E 74 72 e jumpblock entr
000190: 69 65 73 2E 20 54 68 65 20 72 65 6C 65 76 61 6E ies. The relevan
0001A0: 74 20 20 73 65 63 74 69 6F 6E 73 0D 0A 20 20 20 t sections..
0001B0: 20 20 20 20 61 72 65 3A 0D 0A 0D 0A 0D 0A 20 20 are:......
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4B 65 Ke
0001D0: 79 20 4D 61 6E 61 67 65 72 20 20 20 20 20 20 20 y Manager
0001E0: 20 20 28 4B 4D 29 20 20 20 20 20 20 53 65 63 74 (KM) Sect
0001F0: 69 6F 6E 20 33 2E 0D 0A 20 20 20 20 20 20 20 20 ion 3...
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 54 65 78 74 20 56 44 55 Text VDU
000010: 20 20 20 20 20 20 20 20 20 20 20 20 28 54 58 54 (TXT
000020: 29 20 20 20 20 20 53 65 63 74 69 6F 6E 20 34 2E ) Section 4.
000030: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000040: 20 20 47 72 61 70 68 69 63 73 20 56 44 55 20 20 Graphics VDU
000050: 20 20 20 20 20 20 28 47 52 41 29 20 20 20 20 20 (GRA)
000060: 53 65 63 74 69 6F 6E 20 35 2E 0D 0A 20 20 20 20 Section 5...
000070: 20 20 20 20 20 20 20 20 20 20 20 20 53 63 72 65 Scre
000080: 65 6E 20 50 61 63 6B 20 20 20 20 20 20 20 20 20 en Pack
000090: 28 53 43 52 29 20 20 20 20 20 53 65 63 74 69 6F (SCR) Sectio
0000A0: 6E 20 36 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 n 6...
0000B0: 20 20 20 20 20 20 53 6F 75 6E 64 20 4D 61 6E 61 Sound Mana
0000C0: 67 65 72 20 20 20 20 20 20 20 28 53 4F 55 4E 44 ger (SOUND
0000D0: 29 20 20 20 53 65 63 74 69 6F 6E 20 37 2E 0D 0A ) Section 7...
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 43 61 73 73 65 74 74 65 20 4D 61 6E 61 67 65 72 Cassette Manager
000100: 20 20 20 20 28 43 41 53 29 20 20 20 20 20 53 65 (CAS) Se
000110: 63 74 69 6F 6E 20 38 2E 0D 0A 20 20 20 20 20 20 ction 8...
000120: 20 20 20 20 20 20 20 20 20 20 41 4D 53 44 4F 53 AMSDOS
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 20 20 20 20 20 53 65 63 74 69 6F 6E 20 Section
000150: 39 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 9...
000160: 20 20 20 20 4B 65 72 6E 65 6C 20 20 20 20 20 20 Kernel
000170: 20 20 20 20 20 20 20 20 28 4B 4C 29 20 20 20 20 (KL)
000180: 20 20 53 65 63 74 69 6F 6E 73 20 32 2C 20 31 30 Sections 2, 10
000190: 2C 20 31 31 20 61 6E 64 20 31 32 2E 0D 0A 20 20 , 11 and 12...
0001A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4D 61 Ma
0001B0: 63 68 69 6E 65 20 50 61 63 6B 20 20 20 20 20 20 chine Pack
0001C0: 20 20 28 4D 43 29 20 20 20 20 20 20 53 65 63 74 (MC) Sect
0001D0: 69 6F 6E 20 31 33 2E 0D 0A 0D 0A 0D 0A 20 20 20 ion 13.......
0001E0: 20 20 20 20 54 68 65 20 74 6F 70 20 6C 69 6E 65 The top line
0001F0: 20 6F 66 20 65 61 63 68 20 64 65 73 63 72 69 70 of each descrip
Size : 512 (Real : 512)
000000: 74 69 6F 6E 20 68 61 73 20 74 68 65 20 66 6F 6C tion has the fol
000010: 6C 6F 77 69 6E 67 20 6C 61 79 6F 75 74 3A 0D 0A lowing layout:..
000020: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
000030: 20 20 20 20 3C 45 6E 74 72 79 20 6E 75 6D 62 65 <Entry numbe
000040: 72 3E 3A 20 20 20 20 20 3C 45 6E 74 72 79 20 6E r>: <Entry n
000050: 61 6D 65 3E 20 20 20 20 20 20 20 20 3C 45 6E 74 ame> <Ent
000060: 72 79 20 61 64 64 72 65 73 73 3E 0D 0A 0D 0A 0D ry address>.....
000070: 0A 20 20 20 20 20 20 20 45 6E 74 72 69 65 73 20 . Entries
000080: 69 6E 20 74 68 65 20 6A 75 6D 70 62 6C 6F 63 6B in the jumpblock
000090: 20 61 72 65 20 20 6E 75 6D 62 65 72 65 64 20 20 are numbered
0000A0: 73 74 61 72 74 69 6E 67 20 20 66 72 6F 6D 20 20 starting from
0000B0: 30 2E 20 20 54 68 65 20 20 65 6E 74 72 79 0D 0A 0. The entry..
0000C0: 20 20 20 20 20 20 20 61 64 64 72 65 73 73 20 69 address i
0000D0: 73 20 74 68 65 20 61 64 64 72 65 73 73 20 74 6F s the address to
0000E0: 20 63 61 6C 6C 20 74 6F 20 69 6E 76 6F 6B 65 20 call to invoke
0000F0: 74 68 65 20 66 69 72 6D 77 61 72 65 20 72 6F 75 the firmware rou
000100: 74 69 6E 65 20 20 6F 72 20 20 74 68 65 0D 0A 20 tine or the..
000110: 20 20 20 20 20 20 61 64 64 72 65 73 73 20 6F 66 address of
000120: 20 74 68 65 20 74 68 72 65 65 20 62 79 74 65 73 the three bytes
000130: 20 74 6F 20 70 61 74 63 68 20 20 74 6F 20 20 69 to patch to i
000140: 6E 74 65 72 63 65 70 74 20 20 74 68 65 20 20 72 ntercept the r
000150: 6F 75 74 69 6E 65 2E 20 20 54 68 65 0D 0A 20 20 outine. The..
000160: 20 20 20 20 20 65 6E 74 72 79 20 61 64 64 72 65 entry addre
000170: 73 73 20 63 61 6E 20 62 65 20 63 61 6C 63 75 6C ss can be calcul
000180: 61 74 65 64 20 61 73 3A 0D 0A 0D 0A 0D 0A 20 20 ated as:......
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 6E En
0001A0: 74 72 79 20 61 64 64 72 65 73 73 20 3D 20 53 74 try address = St
0001B0: 61 72 74 20 6F 66 20 6A 75 6D 70 62 6C 6F 63 6B art of jumpblock
0001C0: 20 2B 33 20 2A 20 45 6E 74 72 79 20 6E 75 6D 62 +3 * Entry numb
0001D0: 65 72 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 er...... E
0001E0: 61 63 68 20 65 6E 74 72 79 20 69 73 20 6E 61 6D ach entry is nam
0001F0: 65 64 20 61 6E 64 20 69 73 20 72 65 66 65 72 72 ed and is referr
Size : 512 (Real : 512)
000000: 65 64 20 74 6F 20 62 79 20 6E 61 6D 65 20 74 68 ed to by name th
000010: 72 6F 75 67 68 6F 75 74 20 74 68 69 73 20 6D 61 roughout this ma
000020: 6E 75 61 6C 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 nual.....
000030: 54 68 65 20 6C 61 73 74 20 73 65 63 74 69 6F 6E The last section
000040: 20 6F 66 20 65 61 63 68 20 64 65 73 63 72 69 70 of each descrip
000050: 74 69 6F 6E 20 69 73 20 61 20 6C 69 73 74 20 20 tion is a list
000060: 6F 66 20 20 72 65 6C 61 74 65 64 20 20 72 6F 75 of related rou
000070: 74 69 6E 65 73 2E 0D 0A 20 20 20 20 20 20 20 54 tines... T
000080: 68 65 20 75 73 65 72 20 69 73 20 61 64 76 69 73 he user is advis
000090: 65 64 20 74 6F 20 6C 6F 6F 6B 20 61 74 20 74 68 ed to look at th
0000A0: 65 73 65 20 61 73 20 74 68 65 20 6C 69 73 74 20 ese as the list
0000B0: 6D 61 79 20 69 6E 63 6C 75 64 65 20 20 72 6F 75 may include rou
0000C0: 74 69 6E 65 73 0D 0A 20 20 20 20 20 20 20 6D 6F tines.. mo
0000D0: 72 65 20 73 75 69 74 65 64 20 66 6F 72 20 20 74 re suited for t
0000E0: 68 65 20 20 61 70 70 6C 69 63 61 74 69 6F 6E 20 he application
0000F0: 20 62 65 69 6E 67 20 20 63 6F 6E 73 69 64 65 72 being consider
000100: 65 64 2E 20 20 43 6F 6E 76 65 72 73 65 6C 79 20 ed. Conversely
000110: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 72 6F 75 the.. rou
000120: 74 69 6E 65 73 20 6D 61 79 20 73 68 65 64 20 66 tines may shed f
000130: 75 72 74 68 65 72 20 6C 69 67 68 74 20 6F 6E 20 urther light on
000140: 68 6F 77 20 74 68 65 20 6F 72 69 67 69 6E 61 6C how the original
000150: 20 72 6F 75 74 69 6E 65 73 20 73 68 6F 75 6C 64 routines should
000160: 20 62 65 0D 0A 20 20 20 20 20 20 20 75 73 65 64 be.. used
000170: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
000180: 65 20 64 65 73 63 72 69 70 74 69 6F 6E 73 20 6F e descriptions o
000190: 66 20 74 68 65 20 72 6F 75 74 69 6E 65 73 20 61 f the routines a
0001A0: 72 65 20 66 6F 72 20 74 68 65 20 64 65 66 61 75 re for the defau
0001B0: 6C 74 20 72 6F 75 74 69 6E 65 20 74 68 61 74 20 lt routine that
0001C0: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 65 6E 74 the.. ent
0001D0: 72 79 20 6A 75 6D 70 73 20 74 6F 2E 20 54 68 65 ry jumps to. The
0001E0: 20 75 73 65 72 20 6D 61 79 20 63 68 61 6E 67 65 user may change
0001F0: 20 74 68 65 20 65 6E 74 72 79 20 61 6E 64 20 74 the entry and t
Size : 512 (Real : 512)
000000: 68 69 73 20 6D 61 79 20 20 61 6C 74 65 72 20 20 his may alter
000010: 74 68 65 0D 0A 20 20 20 20 20 20 20 61 63 74 69 the.. acti
000020: 6F 6E 20 6F 66 20 74 68 65 20 72 6F 75 74 69 6E on of the routin
000030: 65 2E 20 54 68 65 20 75 73 65 72 20 69 73 20 61 e. The user is a
000040: 64 76 69 73 65 64 20 74 6F 20 73 74 69 63 6B 20 dvised to stick
000050: 74 6F 20 74 68 65 20 20 65 6E 74 72 79 2F 65 78 to the entry/ex
000060: 69 74 0D 0A 20 20 20 20 20 20 20 63 6F 6E 64 69 it.. condi
000070: 74 69 6F 6E 73 20 64 65 73 63 72 69 62 65 64 20 tions described
000080: 6F 74 68 65 72 77 69 73 65 20 70 72 6F 67 72 61 otherwise progra
000090: 6D 73 20 74 68 61 74 20 63 61 6C 6C 20 74 68 65 ms that call the
0000A0: 20 20 72 6F 75 74 69 6E 65 20 20 28 42 41 53 49 routine (BASI
0000B0: 43 0D 0A 20 20 20 20 20 20 20 66 6F 72 20 65 78 C.. for ex
0000C0: 61 6D 70 6C 65 29 20 6D 61 79 20 63 65 61 73 65 ample) may cease
0000D0: 20 74 6F 20 6F 70 65 72 61 74 65 20 63 6F 72 72 to operate corr
0000E0: 65 63 74 6C 79 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ectly...........
0000F0: 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 AMSTRAD C
000100: 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 PC464/664/6128 F
000110: 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 IRMWARE
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 70 61 67 65 20 31 35 2E 31 0D 0A 0D page 15.1...
000140: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
000150: 20 20 30 3A 20 4B 4D 20 49 4E 49 54 49 41 4C 49 0: KM INITIALI
000160: 53 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 SE
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 23 42 42 30 30 0D 0A 0D 0A 0D 0A 20 20 #BB00......
0001A0: 20 20 20 20 20 49 6E 69 74 69 61 6C 69 7A 65 20 Initialize
0001B0: 74 68 65 20 4B 65 79 20 4D 61 6E 61 67 65 72 0D the Key Manager.
0001C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
0001D0: 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 on:......
0001E0: 46 75 6C 6C 20 69 6E 69 74 69 61 6C 69 7A 61 74 Full initializat
0001F0: 69 6F 6E 20 6F 66 20 74 68 65 20 20 4B 65 79 20 ion of the Key
Size : 512 (Real : 512)
000000: 20 4D 61 6E 61 67 65 72 20 20 28 61 73 20 20 64 Manager (as d
000010: 75 72 69 6E 67 20 20 45 4D 53 29 2E 20 20 41 6C uring EMS). Al
000020: 6C 20 20 4B 65 79 0D 0A 20 20 20 20 20 20 20 4D l Key.. M
000030: 61 6E 61 67 65 72 20 76 61 72 69 61 62 6C 65 73 anager variables
000040: 2C 20 20 62 75 66 66 65 72 73 20 20 61 6E 64 20 , buffers and
000050: 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 20 20 61 indirections a
000060: 72 65 20 20 69 6E 69 74 69 61 6C 69 7A 65 64 2E re initialized.
000070: 20 20 54 68 65 0D 0A 20 20 20 20 20 20 20 70 72 The.. pr
000080: 65 76 69 6F 75 73 20 73 74 61 74 65 20 6F 66 20 evious state of
000090: 74 68 65 20 4B 65 79 20 4D 61 6E 61 67 65 72 20 the Key Manager
0000A0: 69 73 20 6C 6F 73 74 2E 0D 0A 0D 0A 0D 0A 20 20 is lost.......
0000B0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
0000C0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
0000D0: 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 No conditions
0000E0: 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0000F0: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
000100: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C ...... AF,
000110: 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 BC,DE and HL cor
000120: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C rupt... Al
000130: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
000140: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
000150: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
000160: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
000170: 4B 65 79 20 4D 61 6E 61 67 65 72 20 69 6E 64 69 Key Manager indi
000180: 72 65 63 74 69 6F 6E 20 28 4B 4D 20 20 54 45 53 rection (KM TES
000190: 54 20 20 4B 45 59 29 20 20 69 73 20 20 73 65 74 T KEY) is set
0001A0: 20 20 74 6F 20 20 69 74 73 20 20 64 65 66 61 75 to its defau
0001B0: 6C 74 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 69 lt.. routi
0001C0: 6E 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ne..... Th
0001D0: 65 20 6B 65 79 20 62 75 66 66 65 72 20 69 73 20 e key buffer is
0001E0: 73 65 74 20 75 70 20 28 74 6F 20 62 65 20 65 6D set up (to be em
0001F0: 70 74 79 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 pty).....
Size : 512 (Real : 512)
000000: 54 68 65 20 65 78 70 61 6E 73 69 6F 6E 20 62 75 The expansion bu
000010: 66 66 65 72 20 69 73 20 73 65 74 20 75 70 20 61 ffer is set up a
000020: 6E 64 20 74 68 65 20 65 78 70 61 6E 73 69 6F 6E nd the expansion
000030: 73 20 20 61 72 65 20 20 73 65 74 20 20 74 6F 20 s are set to
000040: 20 74 68 65 69 72 0D 0A 20 20 20 20 20 20 20 64 their.. d
000050: 65 66 61 75 6C 74 20 73 74 72 69 6E 67 73 2E 0D efault strings..
000060: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 74 72 ... The tr
000070: 61 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 20 anslation table
000080: 61 72 65 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 are initialized
000090: 74 6F 20 74 68 65 69 72 20 64 65 66 61 75 6C 74 to their default
0000A0: 20 74 72 61 6E 73 6C 61 74 69 6F 6E 73 2E 0D 0A translations...
0000B0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 72 65 70 .. The rep
0000C0: 65 61 74 69 6E 67 20 6B 65 79 20 6D 61 70 20 69 eating key map i
0000D0: 73 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 74 6F s initialized to
0000E0: 20 69 74 73 20 64 65 66 61 75 6C 74 20 73 74 61 its default sta
0000F0: 74 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 te..... Th
000100: 65 20 72 65 70 65 61 74 20 73 70 65 65 64 73 20 e repeat speeds
000110: 61 72 65 20 73 65 74 20 74 6F 20 74 68 65 69 72 are set to their
000120: 20 64 65 66 61 75 6C 74 20 76 61 6C 75 65 73 2E default values.
000130: 0D 0A 0D 0A 20 20 20 20 20 20 20 53 68 69 66 74 .... Shift
000140: 20 61 6E 64 20 63 61 70 73 20 6C 6F 63 6B 20 61 and caps lock a
000150: 72 65 20 74 75 72 6E 65 64 20 6F 66 66 2E 0D 0A re turned off...
000160: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 62 72 65 .. The bre
000170: 61 6B 20 65 76 65 6E 74 20 69 73 20 64 69 73 61 ak event is disa
000180: 72 6D 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rmed.....
000190: 53 65 65 20 41 70 70 65 6E 64 69 63 65 73 20 49 See Appendices I
0001A0: 49 2C 20 49 49 49 20 61 6E 64 20 49 56 20 20 66 I, III and IV f
0001B0: 6F 72 20 20 74 68 65 20 20 64 65 66 61 75 6C 74 or the default
0001C0: 20 20 74 72 61 6E 73 6C 61 74 69 6F 6E 20 20 74 translation t
0001D0: 61 62 6C 65 73 2C 0D 0A 20 20 20 20 20 20 20 72 ables,.. r
0001E0: 65 70 65 61 74 69 6E 67 20 6B 65 79 20 74 61 62 epeating key tab
0001F0: 6C 65 20 61 6E 64 20 65 78 70 61 6E 73 69 6F 6E le and expansion
Size : 512 (Real : 512)
000000: 20 73 74 72 69 6E 67 73 2E 0D 0A 0D 0A 20 20 20 strings.....
000010: 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 This routine
000020: 20 65 6E 61 62 6C 65 73 20 69 6E 74 65 72 72 75 enables interru
000030: 70 74 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 pts..... R
000040: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
000050: 0A 0D 0A 20 20 20 20 20 20 20 4B 4D 20 52 45 53 ... KM RES
000060: 45 54 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ET...... A
000070: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
000080: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
0000B0: 20 31 35 2E 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.2...........
0000C0: 0A 0D 0A 20 20 20 20 20 20 20 31 3A 20 4B 4D 20 ... 1: KM
0000D0: 52 45 53 45 54 20 20 20 20 20 20 20 20 20 20 20 RESET
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 20 20 20 20 23 42 42 30 33 #BB03
000110: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 73 ...... Res
000120: 65 74 20 74 68 65 20 4B 65 79 20 4D 61 6E 61 67 et the Key Manag
000130: 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 er.......
000140: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
000150: 20 20 20 20 52 65 69 6E 69 74 69 61 6C 69 7A 65 Reinitialize
000160: 73 20 74 68 65 20 4B 65 79 20 4D 61 6E 61 67 65 s the Key Manage
000170: 72 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 20 61 r indirections a
000180: 6E 64 20 62 75 66 66 65 72 73 2E 0D 0A 0D 0A 0D nd buffers......
000190: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
0001A0: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
0001B0: 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 No conditi
0001C0: 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons.......
0001D0: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
0001E0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
0001F0: 2C 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 63 6F ,BC,DE and HL co
Size : 512 (Real : 512)
000000: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 rrupt... A
000010: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
000020: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
000030: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
000040: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
000050: 20 4B 65 79 20 4D 61 6E 61 67 65 72 20 69 6E 64 Key Manager ind
000060: 69 72 65 63 74 69 6F 6E 20 28 4B 4D 20 20 54 45 irection (KM TE
000070: 53 54 20 20 4B 45 59 29 20 20 69 73 20 20 73 65 ST KEY) is se
000080: 74 20 20 74 6F 20 20 69 74 73 20 20 64 65 66 61 t to its defa
000090: 75 6C 74 0D 0A 20 20 20 20 20 20 20 72 6F 75 74 ult.. rout
0000A0: 69 6E 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ine.......
0000B0: 20 54 68 65 20 6B 65 79 20 62 75 66 66 65 72 20 The key buffer
0000C0: 69 73 20 73 65 74 20 75 70 20 28 74 6F 20 62 65 is set up (to be
0000D0: 20 65 6D 70 74 79 29 2E 0D 0A 0D 0A 0D 0A 20 20 empty).......
0000E0: 20 20 20 20 20 54 68 65 20 65 78 70 61 6E 73 69 The expansi
0000F0: 6F 6E 20 62 75 66 66 65 72 20 69 73 20 73 65 74 on buffer is set
000100: 20 75 70 20 61 6E 64 20 74 68 65 20 65 78 70 61 up and the expa
000110: 6E 73 69 6F 6E 73 20 20 61 72 65 20 20 73 65 74 nsions are set
000120: 20 20 74 6F 20 20 74 68 65 69 72 0D 0A 20 20 20 to their..
000130: 20 20 20 20 64 65 66 61 75 6C 74 20 73 74 72 69 default stri
000140: 6E 67 73 20 28 73 65 65 20 41 70 70 65 6E 64 69 ngs (see Appendi
000150: 78 20 49 56 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 x IV).......
000160: 20 20 20 54 68 65 20 62 72 65 61 6B 20 65 76 65 The break eve
000170: 6E 74 20 69 73 20 64 69 73 61 72 6D 65 64 2E 0D nt is disarmed..
000180: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 ..... All
000190: 70 65 6E 64 69 6E 67 20 6B 65 79 73 20 61 6E 64 pending keys and
0001A0: 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 characters are
0001B0: 64 69 73 63 61 72 64 65 64 2E 0D 0A 0D 0A 0D 0A discarded.......
0001C0: 20 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 This rout
0001D0: 69 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E 74 65 ine enables inte
0001E0: 72 72 75 70 74 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 rrupts.......
0001F0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
Size : 512 (Real : 512)
000000: 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B ies:.... K
000010: 4D 20 44 49 53 41 52 4D 20 42 52 45 41 4B 0D 0A M DISARM BREAK..
000020: 20 20 20 20 20 20 20 4B 4D 20 45 58 50 20 42 55 KM EXP BU
000030: 46 46 45 52 0D 0A 20 20 20 20 20 20 20 4B 4D 20 FFER.. KM
000040: 49 4E 49 54 49 41 4C 49 53 45 0D 0A 0D 0A 0D 0A INITIALISE......
000050: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
000060: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
000070: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 page
0000A0: 20 31 35 2E 33 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.3...........
0000B0: 0A 0D 0A 20 20 20 20 20 20 20 32 3A 20 4B 4D 20 ... 2: KM
0000C0: 57 41 49 54 20 43 48 41 52 20 20 20 20 20 20 20 WAIT CHAR
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 23 42 42 30 36 #BB06
000100: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 61 69 ...... Wai
000110: 74 20 66 6F 72 20 74 68 65 20 6E 65 78 74 20 63 t for the next c
000120: 68 61 72 61 63 74 65 72 20 66 72 6F 6D 20 74 68 haracter from th
000130: 65 20 6B 65 79 62 6F 61 72 64 2E 0D 0A 0D 0A 0D e keyboard......
000140: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
000150: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 72 79 20 ..... Try
000160: 74 6F 20 67 65 74 20 61 20 63 68 61 72 61 63 74 to get a charact
000170: 65 72 20 66 72 6F 6D 20 74 68 65 20 6B 65 79 20 er from the key
000180: 62 75 66 66 65 72 20 6F 72 20 20 74 68 65 20 20 buffer or the
000190: 63 75 72 72 65 6E 74 20 20 65 78 70 61 6E 73 69 current expansi
0001A0: 6F 6E 0D 0A 20 20 20 20 20 20 20 73 74 72 69 6E on.. strin
0001B0: 67 2E 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 g. This routine
0001C0: 77 61 69 74 73 20 20 75 6E 74 69 6C 20 20 61 20 waits until a
0001D0: 20 63 68 61 72 61 63 74 65 72 20 20 69 73 20 20 character is
0001E0: 61 76 61 69 6C 61 62 6C 65 20 20 69 66 20 20 6E available if n
0001F0: 6F 0D 0A 20 20 20 20 20 20 20 63 68 61 72 61 63 o.. charac
Size : 512 (Real : 512)
000000: 74 65 72 20 69 73 20 69 6D 6D 65 64 69 61 74 65 ter is immediate
000010: 6C 79 20 61 76 61 69 6C 61 62 6C 65 2E 0D 0A 0D ly available....
000020: 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 ... Entry
000030: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D conditions:.....
000040: 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 . No condi
000050: 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 tions.....
000060: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
000070: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 43 61 :...... Ca
000080: 72 72 79 20 74 72 75 65 2E 0D 0A 20 20 20 20 20 rry true...
000090: 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 A contains the
0000A0: 20 63 68 61 72 61 63 74 65 72 2E 0D 0A 20 20 20 character...
0000B0: 20 20 20 20 4F 74 68 65 72 20 66 6C 61 67 73 20 Other flags
0000C0: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
0000D0: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
0000E0: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
0000F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
000100: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s:...... T
000110: 68 65 20 70 6F 73 73 69 62 6C 65 20 73 6F 75 72 he possible sour
000120: 63 65 73 20 66 6F 72 20 67 65 6E 65 72 61 74 69 ces for generati
000130: 6E 67 20 74 68 65 20 6E 65 78 74 20 20 63 68 61 ng the next cha
000140: 72 61 63 74 65 72 20 20 61 72 65 2C 20 20 69 6E racter are, in
000150: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 6F 72 the.. or
000160: 64 65 72 20 74 68 61 74 20 74 68 65 79 20 61 72 der that they ar
000170: 65 20 74 65 73 74 65 64 3A 0D 0A 0D 0A 0D 0A 20 e tested:......
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 T
000190: 68 65 20 27 70 75 74 20 62 61 63 6B 27 20 63 68 he 'put back' ch
0001A0: 61 72 61 63 74 65 72 2E 0D 0A 20 20 20 20 20 20 aracter...
0001B0: 20 20 20 20 20 20 20 20 20 20 54 68 65 20 6E 65 The ne
0001C0: 78 74 20 63 68 61 72 61 63 74 65 72 20 6F 66 20 xt character of
0001D0: 61 6E 20 65 78 70 61 6E 73 69 6F 6E 20 73 74 72 an expansion str
0001E0: 69 6E 67 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 ing...
0001F0: 20 20 20 20 20 20 54 68 65 20 66 69 72 73 74 20 The first
Size : 512 (Real : 512)
000000: 63 68 61 72 61 63 74 65 72 20 6F 66 20 61 6E 20 character of an
000010: 65 78 70 61 6E 73 69 6F 6E 20 73 74 72 69 6E 67 expansion string
000020: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
000030: 20 20 20 41 20 63 68 61 72 61 63 74 65 72 20 66 A character f
000040: 72 6F 6D 20 61 20 6B 65 79 20 74 72 61 6E 73 6C rom a key transl
000050: 61 74 69 6F 6E 20 74 61 62 6C 65 2E 0D 0A 0D 0A ation table.....
000060: 0D 0A 20 20 20 20 20 20 20 45 78 70 61 6E 73 69 .. Expansi
000070: 6F 6E 20 74 6F 6B 65 6E 73 20 66 6F 75 6E 64 20 on tokens found
000080: 69 6E 20 74 68 65 20 6B 65 79 20 74 72 61 6E 73 in the key trans
000090: 6C 61 74 69 6F 6E 20 74 61 62 6C 65 20 20 61 72 lation table ar
0000A0: 65 20 20 65 78 70 61 6E 64 65 64 20 20 74 6F 0D e expanded to.
0000B0: 0A 20 20 20 20 20 20 20 74 68 65 69 72 20 61 73 . their as
0000C0: 73 6F 63 69 61 74 65 64 20 73 74 72 69 6E 67 73 sociated strings
0000D0: 2E 20 45 78 70 61 6E 73 69 6F 6E 20 74 6F 6B 65 . Expansion toke
0000E0: 6E 73 20 66 6F 75 6E 64 20 69 6E 20 65 78 70 61 ns found in expa
0000F0: 6E 73 69 6F 6E 20 20 73 74 72 69 6E 67 73 0D 0A nsion strings..
000100: 20 20 20 20 20 20 20 61 72 65 20 6E 6F 74 20 65 are not e
000110: 78 70 61 6E 64 65 64 20 62 75 74 20 61 72 65 20 xpanded but are
000120: 74 72 65 61 74 65 64 20 61 73 20 63 68 61 72 61 treated as chara
000130: 63 74 65 72 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 cters.......
000140: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
000150: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
000160: 4B 4D 20 43 48 41 52 20 52 45 54 55 52 4E 0D 0A KM CHAR RETURN..
000170: 20 20 20 20 20 20 20 4B 4D 20 52 45 41 44 20 43 KM READ C
000180: 48 41 52 0D 0A 20 20 20 20 20 20 20 4B 4D 20 57 HAR.. KM W
000190: 41 49 54 20 4B 45 59 0D 0A 0D 0A 0D 0A 0D 0A 0D AIT KEY.........
0001A0: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
0001B0: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
0001C0: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
0001F0: 31 35 2E 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.4............
Size : 512 (Real : 512)
000000: 0D 0A 20 20 20 20 20 20 20 33 3A 20 4B 4D 20 52 .. 3: KM R
000010: 45 41 44 20 43 48 41 52 20 20 20 20 20 20 20 20 EAD CHAR
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 20 20 20 20 20 20 20 23 42 42 30 39 0D #BB09.
000050: 0A 0D 0A 20 20 20 20 20 20 20 54 65 73 74 20 69 ... Test i
000060: 66 20 61 20 63 68 61 72 61 63 74 65 72 20 69 73 f a character is
000070: 20 61 76 61 69 6C 61 62 6C 65 20 66 72 6F 6D 20 available from
000080: 74 68 65 20 6B 65 79 62 6F 61 72 64 2E 0D 0A 0D the keyboard....
000090: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
0000A0: 0A 20 20 20 20 20 20 20 54 72 79 20 74 6F 20 67 . Try to g
0000B0: 65 74 20 61 20 63 68 61 72 61 63 74 65 72 20 66 et a character f
0000C0: 72 6F 6D 20 74 68 65 20 6B 65 79 20 62 75 66 66 rom the key buff
0000D0: 65 72 20 6F 72 20 20 74 68 65 20 20 63 75 72 72 er or the curr
0000E0: 65 6E 74 20 20 65 78 70 61 6E 73 69 6F 6E 0D 0A ent expansion..
0000F0: 20 20 20 20 20 20 20 73 74 72 69 6E 67 2E 20 54 string. T
000100: 68 69 73 20 72 6F 75 74 69 6E 65 20 64 6F 65 73 his routine does
000110: 20 6E 6F 74 20 77 61 69 74 20 66 6F 72 20 61 20 not wait for a
000120: 63 68 61 72 61 63 74 65 72 20 74 6F 20 62 65 63 character to bec
000130: 6F 6D 65 20 61 76 61 69 6C 61 62 6C 65 0D 0A 20 ome available..
000140: 20 20 20 20 20 20 69 66 20 74 68 65 72 65 20 69 if there i
000150: 73 20 6E 6F 20 63 68 61 72 61 63 74 65 72 20 61 s no character a
000160: 76 61 69 6C 61 62 6C 65 20 69 6D 6D 65 64 69 61 vailable immedia
000170: 74 65 6C 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 tely.....
000180: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
000190: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 :.... No c
0001A0: 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 onditions.....
0001B0: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
0001C0: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
0001D0: 49 66 20 74 68 65 72 65 20 77 61 73 20 61 20 63 If there was a c
0001E0: 68 61 72 61 63 74 65 72 20 61 76 61 69 6C 61 62 haracter availab
0001F0: 6C 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 le:....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 43 61 72 72 79 20 74 72 75 Carry tru
000010: 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 e...
000020: 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 74 A contains t
000030: 68 65 20 63 68 61 72 61 63 74 65 72 2E 0D 0A 0D he character....
000040: 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 72 65 . If there
000050: 20 77 61 73 20 6E 6F 20 63 68 61 72 61 63 74 65 was no characte
000060: 72 20 61 76 61 69 6C 61 62 6C 65 2E 0D 0A 0D 0A r available.....
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0A 20 20 Carry false...
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 A
0000A0: 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 20 20 20 corrupt.....
0000B0: 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D 0A 20 20 Always:....
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4F 74 Ot
0000D0: 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 her flags corrup
0000E0: 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 t...
0000F0: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
000100: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
000110: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 d..... Not
000120: 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 es:.... Th
000130: 65 20 70 6F 73 73 69 62 6C 65 20 73 6F 75 72 63 e possible sourc
000140: 65 73 20 66 6F 72 20 67 65 6E 65 72 61 74 69 6E es for generatin
000150: 67 20 74 68 65 20 6E 65 78 74 20 20 63 68 61 72 g the next char
000160: 61 63 74 65 72 20 20 61 72 65 2C 20 20 69 6E 20 acter are, in
000170: 20 74 68 65 0D 0A 20 20 20 20 20 20 20 6F 72 64 the.. ord
000180: 65 72 20 74 68 61 74 20 74 68 65 79 20 61 72 65 er that they are
000190: 20 74 65 73 74 65 64 3A 0D 0A 0D 0A 20 20 20 20 tested:....
0001A0: 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 The
0001B0: 27 70 75 74 20 62 61 63 6B 27 20 63 68 61 72 61 'put back' chara
0001C0: 63 74 65 72 2E 0D 0A 20 20 20 20 20 20 20 20 20 cter...
0001D0: 20 20 20 20 20 20 20 54 68 65 20 6E 65 78 74 20 The next
0001E0: 63 68 61 72 61 63 74 65 72 20 6F 66 20 61 6E 20 character of an
0001F0: 65 78 70 61 6E 73 69 6F 6E 20 73 74 72 69 6E 67 expansion string
Size : 512 (Real : 512)
000000: 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
000010: 20 20 20 54 68 65 20 66 69 72 73 74 20 63 68 61 The first cha
000020: 72 61 63 74 65 72 20 6F 66 20 61 6E 20 65 78 70 racter of an exp
000030: 61 6E 73 69 6F 6E 20 73 74 72 69 6E 67 2E 0D 0A ansion string...
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 41 20 63 68 61 72 61 63 74 65 72 20 66 72 6F 6D A character from
000060: 20 61 20 6B 65 79 20 74 72 61 6E 73 6C 61 74 69 a key translati
000070: 6F 6E 20 74 61 62 6C 65 2E 0D 0A 0D 0A 20 20 20 on table.....
000080: 20 20 20 20 45 78 70 61 6E 73 69 6F 6E 20 74 6F Expansion to
000090: 6B 65 6E 73 20 69 6E 20 74 68 65 20 6B 65 79 20 kens in the key
0000A0: 74 72 61 6E 73 6C 61 74 69 6F 6E 20 20 74 61 62 translation tab
0000B0: 6C 65 20 20 77 69 6C 6C 20 20 62 65 20 20 65 78 le will be ex
0000C0: 70 61 6E 64 65 64 20 20 74 6F 0D 0A 20 20 20 20 panded to..
0000D0: 20 20 20 74 68 65 69 72 20 61 73 73 6F 63 69 61 their associa
0000E0: 74 65 64 20 73 74 72 69 6E 67 73 2E 20 45 78 70 ted strings. Exp
0000F0: 61 6E 73 69 6F 6E 20 74 6F 6B 65 6E 73 20 66 6F ansion tokens fo
000100: 75 6E 64 20 69 6E 20 65 78 70 61 6E 73 69 6F 6E und in expansion
000110: 20 20 73 74 72 69 6E 67 73 0D 0A 20 20 20 20 20 strings..
000120: 20 20 61 72 65 20 6E 6F 74 20 65 78 70 61 6E 64 are not expand
000130: 65 64 20 62 75 74 20 61 72 65 20 74 72 65 61 74 ed but are treat
000140: 65 64 20 61 73 20 63 68 61 72 61 63 74 65 72 73 ed as characters
000150: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 73 ..... This
000160: 20 72 6F 75 74 69 6E 65 20 77 69 6C 6C 20 61 6C routine will al
000170: 77 61 79 73 20 72 65 74 75 72 6E 20 61 20 63 68 ways return a ch
000180: 61 72 61 63 74 65 72 20 69 66 20 6F 6E 65 20 69 aracter if one i
000190: 73 20 61 76 61 69 6C 61 62 6C 65 2E 20 49 74 20 s available. It
0001A0: 69 73 0D 0A 20 20 20 20 20 20 20 74 68 65 72 65 is.. there
0001B0: 66 6F 72 65 20 70 6F 73 73 69 62 6C 65 20 74 6F fore possible to
0001C0: 20 66 6C 75 73 68 20 6F 75 74 20 74 68 65 20 4B flush out the K
0001D0: 65 79 20 4D 61 6E 61 67 65 72 20 62 75 66 66 65 ey Manager buffe
0001E0: 72 73 20 62 79 20 63 61 6C 6C 69 6E 67 20 20 4B rs by calling K
0001F0: 4D 0D 0A 20 20 20 20 20 20 20 52 45 41 44 20 43 M.. READ C
Size : 512 (Real : 512)
000000: 48 41 52 20 72 65 70 65 61 74 65 64 6C 79 20 75 HAR repeatedly u
000010: 6E 74 69 6C 20 69 74 20 72 65 70 6F 72 74 73 20 ntil it reports
000020: 74 68 61 74 20 6E 6F 20 63 68 61 72 61 63 74 65 that no characte
000030: 72 20 69 73 20 61 76 61 69 6C 61 62 6C 65 2E 0D r is available..
000040: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
000050: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 d entries:....
000060: 20 20 20 20 20 4B 4D 20 43 48 41 52 20 52 45 54 KM CHAR RET
000070: 55 52 4E 0D 0A 20 20 20 20 20 20 20 4B 4D 20 46 URN.. KM F
000080: 4C 55 53 48 0D 0A 20 20 20 20 20 20 20 4B 4D 20 LUSH.. KM
000090: 52 45 41 44 20 4B 45 59 0D 0A 20 20 20 20 20 20 READ KEY..
0000A0: 20 4B 4D 20 57 41 49 54 20 43 48 41 52 0D 0A 0D KM WAIT CHAR...
0000B0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0000C0: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
0000D0: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
000100: 65 20 31 35 2E 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A e 15.5..........
000110: 0D 0A 0D 0A 20 20 20 20 20 20 20 34 3A 20 4B 4D .... 4: KM
000120: 20 43 48 41 52 20 52 45 54 55 52 4E 20 20 20 20 CHAR RETURN
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000150: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 42 30 #BB0
000160: 43 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 C...... Re
000170: 74 75 72 6E 20 61 20 73 69 6E 67 6C 65 20 63 68 turn a single ch
000180: 61 72 61 63 74 65 72 20 74 6F 20 74 68 65 20 6B aracter to the k
000190: 65 79 62 6F 61 72 64 20 66 6F 72 20 6E 65 78 74 eyboard for next
0001A0: 20 74 69 6D 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 time.......
0001B0: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A Action:......
0001C0: 20 20 20 20 20 20 20 53 61 76 65 20 61 20 63 68 Save a ch
0001D0: 61 72 61 63 74 65 72 20 66 6F 72 20 74 68 65 20 aracter for the
0001E0: 6E 65 78 74 20 63 61 6C 6C 20 6F 66 20 4B 4D 20 next call of KM
0001F0: 52 45 41 44 20 43 48 41 52 20 6F 72 20 4B 4D 20 READ CHAR or KM
Size : 512 (Real : 512)
000000: 57 41 49 54 20 43 48 41 52 2E 0D 0A 0D 0A 0D 0A WAIT CHAR.......
000010: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
000020: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
000030: 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 20 A contains
000040: 74 68 65 20 63 68 61 72 61 63 74 65 72 20 74 6F the character to
000050: 20 70 75 74 20 62 61 63 6B 2E 0D 0A 0D 0A 0D 0A put back.......
000060: 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 Exit cond
000070: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 itions:......
000080: 20 20 20 20 41 6C 6C 20 72 65 67 69 73 74 65 72 All register
000090: 73 20 61 6E 64 20 66 6C 61 67 73 20 70 72 65 73 s and flags pres
0000A0: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 erved.........
0000B0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
0000C0: 0A 20 20 20 20 20 20 20 54 68 65 20 27 70 75 74 . The 'put
0000D0: 20 62 61 63 6B 27 20 63 68 61 72 61 63 74 65 72 back' character
0000E0: 20 77 69 6C 6C 20 62 65 20 72 65 74 75 72 6E 65 will be returne
0000F0: 64 20 62 65 66 6F 72 65 20 61 6E 79 20 20 6F 74 d before any ot
000100: 68 65 72 20 20 63 68 61 72 61 63 74 65 72 0D 0A her character..
000110: 20 20 20 20 20 20 20 69 73 20 67 65 6E 65 72 61 is genera
000120: 74 65 64 20 62 79 20 74 68 65 20 6B 65 79 62 6F ted by the keybo
000130: 61 72 64 2E 20 49 74 20 77 69 6C 6C 20 6E 6F 74 ard. It will not
000140: 20 62 65 20 20 65 78 70 61 6E 64 65 64 20 20 28 be expanded (
000150: 6F 72 20 20 6F 74 68 65 72 77 69 73 65 0D 0A 20 or otherwise..
000160: 20 20 20 20 20 20 64 65 61 6C 74 20 77 69 74 68 dealt with
000170: 29 20 62 75 74 20 77 69 6C 6C 20 62 65 20 72 65 ) but will be re
000180: 74 75 72 6E 65 64 20 61 73 20 69 74 20 69 73 2E turned as it is.
000190: 20 54 68 65 20 20 27 70 75 74 20 20 62 61 63 6B The 'put back
0001A0: 27 20 20 63 68 61 72 61 63 74 65 72 0D 0A 20 20 ' character..
0001B0: 20 20 20 20 20 6E 65 65 64 20 6E 6F 74 20 68 61 need not ha
0001C0: 76 65 20 62 65 65 6E 20 72 65 61 64 20 66 72 6F ve been read fro
0001D0: 6D 20 74 68 65 20 6B 65 79 62 6F 61 72 64 2C 20 m the keyboard,
0001E0: 69 74 20 63 6F 75 6C 64 20 62 65 20 69 6E 73 65 it could be inse
0001F0: 72 74 65 64 20 62 79 20 74 68 65 0D 0A 20 20 20 rted by the..
Size : 512 (Real : 512)
000000: 20 20 20 20 75 73 65 72 20 66 6F 72 20 73 6F 6D user for som
000010: 65 20 70 75 72 70 6F 73 65 2E 0D 0A 0D 0A 0D 0A e purpose.......
000020: 20 20 20 20 20 20 20 49 74 20 69 73 20 6F 6E 6C It is onl
000030: 79 20 70 6F 73 73 69 62 6C 65 20 74 6F 20 68 61 y possible to ha
000040: 76 65 20 6F 6E 65 20 27 70 75 74 20 62 61 63 6B ve one 'put back
000050: 27 20 63 68 61 72 61 63 74 65 72 2E 20 49 66 20 ' character. If
000060: 74 68 69 73 20 20 72 6F 75 74 69 6E 65 0D 0A 20 this routine..
000070: 20 20 20 20 20 20 69 73 20 63 61 6C 6C 65 64 20 is called
000080: 74 77 69 63 65 20 77 69 74 68 6F 75 74 20 72 65 twice without re
000090: 61 64 69 6E 67 20 61 20 63 68 61 72 61 63 74 65 ading a characte
0000A0: 72 20 20 62 65 74 77 65 65 6E 20 20 74 68 65 73 r between thes
0000B0: 65 20 20 74 68 65 6E 20 20 74 68 65 0D 0A 20 20 e then the..
0000C0: 20 20 20 20 20 66 69 72 73 74 20 28 70 75 74 20 first (put
0000D0: 62 61 63 6B 27 20 77 69 6C 6C 20 62 65 20 6C 6F back' will be lo
0000E0: 73 74 2E 20 46 75 72 74 68 65 72 6D 6F 72 65 2C st. Furthermore,
0000F0: 20 20 69 74 20 20 69 73 20 20 6E 6F 74 20 20 70 it is not p
000100: 6F 73 73 69 62 6C 65 20 20 74 6F 0D 0A 20 20 20 ossible to..
000110: 20 20 20 20 72 65 74 75 72 6E 20 63 68 61 72 61 return chara
000120: 63 74 65 72 20 32 35 35 20 28 62 65 63 61 75 73 cter 255 (becaus
000130: 65 20 74 68 69 73 20 69 73 20 75 73 65 64 20 61 e this is used a
000140: 73 20 74 68 65 20 6D 61 72 6B 65 72 20 66 6F 72 s the marker for
000150: 20 20 6E 6F 20 20 27 70 75 74 0D 0A 20 20 20 20 no 'put..
000160: 20 20 20 62 61 63 6B 27 20 63 68 61 72 61 63 74 back' charact
000170: 65 72 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 er).......
000180: 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 Related entries
000190: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4D :...... KM
0001A0: 20 52 45 41 44 20 43 48 41 52 0D 0A 20 20 20 20 READ CHAR..
0001B0: 20 20 20 4B 4D 20 57 41 49 54 20 43 48 41 52 0D KM WAIT CHAR.
0001C0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
0001D0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0001E0: 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 AMSTRAD CPC464/6
0001F0: 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 64/6128 FIRMWARE
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
000020: 65 20 31 35 2E 36 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A e 15.6..........
000030: 0D 0A 0D 0A 20 20 20 20 20 20 20 35 3A 20 4B 4D .... 5: KM
000040: 20 53 45 54 20 45 58 50 41 4E 44 20 20 20 20 20 SET EXPAND
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 20 20 20 20 20 23 42 42 30 #BB0
000080: 46 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 F.... Set
000090: 61 6E 20 65 78 70 61 6E 73 69 6F 6E 20 73 74 72 an expansion str
0000A0: 69 6E 67 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ing..... A
0000B0: 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 ction:....
0000C0: 20 53 65 74 20 74 68 65 20 65 78 70 61 6E 73 69 Set the expansi
0000D0: 6F 6E 20 73 74 72 69 6E 67 20 61 73 73 6F 63 69 on string associ
0000E0: 61 74 65 64 20 77 69 74 68 20 61 6E 20 65 78 70 ated with an exp
0000F0: 61 6E 73 69 6F 6E 20 74 6F 6B 65 6E 2E 0D 0A 0D ansion token....
000100: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
000110: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
000120: 20 20 20 20 42 20 63 6F 6E 74 61 69 6E 73 20 74 B contains t
000130: 68 65 20 65 78 70 61 6E 73 69 6F 6E 20 74 6F 6B he expansion tok
000140: 65 6E 20 66 6F 72 20 74 68 65 20 65 78 70 61 6E en for the expan
000150: 73 69 6F 6E 20 74 6F 20 73 65 74 2E 0D 0A 20 20 sion to set...
000160: 20 20 20 20 20 43 20 63 6F 6E 74 61 69 6E 73 20 C contains
000170: 74 68 65 20 6C 65 6E 67 74 68 20 6F 66 20 74 68 the length of th
000180: 65 20 73 74 72 69 6E 67 2E 0D 0A 20 20 20 20 20 e string...
000190: 20 20 48 4C 20 63 6F 6E 74 61 69 6E 73 20 74 68 HL contains th
0001A0: 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 e address of the
0001B0: 20 73 74 72 69 6E 67 2E 0D 0A 0D 0A 20 20 20 20 string.....
0001C0: 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F Exit conditio
0001D0: 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 ns:.... If
0001E0: 20 74 68 65 20 65 78 70 61 6E 73 69 6F 6E 20 69 the expansion i
0001F0: 73 20 4F 4B 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 s OK:....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 74 Carry t
000010: 72 75 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 rue..... I
000020: 66 20 74 68 65 20 73 74 72 69 6E 67 20 77 61 73 f the string was
000030: 20 74 6F 6F 20 6C 6F 6E 67 20 6F 72 20 74 68 65 too long or the
000040: 20 74 6F 6B 65 6E 20 77 61 73 20 69 6E 76 61 6C token was inval
000050: 69 64 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 id:....
000060: 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C Carry fal
000070: 73 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C se..... Al
000080: 77 61 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ways:....
000090: 20 20 20 20 20 20 20 20 20 41 2C 42 43 2C 44 45 A,BC,DE
0000A0: 2C 48 4C 20 61 6E 64 20 6F 74 68 65 72 20 66 6C ,HL and other fl
0000B0: 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 ags corrupt...
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 6C Al
0000D0: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
0000E0: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
0000F0: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 20 .. Notes:
000100: 54 68 65 20 73 74 72 69 6E 67 20 74 6F 20 62 65 The string to be
000110: 20 73 65 74 20 6D 61 79 20 6C 69 65 20 61 6E 79 set may lie any
000120: 77 68 65 72 65 20 69 6E 20 52 41 4D 2E 20 45 78 where in RAM. Ex
000130: 70 61 6E 73 69 6F 6E 20 73 74 72 69 6E 67 73 0D pansion strings.
000140: 0A 20 20 20 20 20 20 20 63 61 6E 6E 6F 74 20 62 . cannot b
000150: 65 20 73 65 74 20 64 69 72 65 63 74 6C 79 20 66 e set directly f
000160: 72 6F 6D 20 52 4F 4D 2E 0D 0A 0D 0A 0D 0A 20 20 rom ROM.......
000170: 20 20 20 20 20 54 68 65 20 63 68 61 72 61 63 74 The charact
000180: 65 72 73 20 69 6E 20 74 68 65 20 73 74 72 69 6E ers in the strin
000190: 67 20 61 72 65 20 20 6E 6F 74 20 20 65 78 70 61 g are not expa
0001A0: 6E 64 65 64 20 20 28 6F 72 20 20 6F 74 68 65 72 nded (or other
0001B0: 77 69 73 65 20 20 64 65 61 6C 74 0D 0A 20 20 20 wise dealt..
0001C0: 20 20 20 20 77 69 74 68 29 2E 20 49 74 20 69 73 with). It is
0001D0: 20 74 68 65 72 65 66 6F 72 65 20 70 6F 73 73 69 therefore possi
0001E0: 62 6C 65 20 74 6F 20 70 75 74 20 61 6E 79 20 63 ble to put any c
0001F0: 68 61 72 61 63 74 65 72 20 69 6E 74 6F 20 61 6E haracter into an
Size : 512 (Real : 512)
000000: 20 65 78 70 61 6E 73 69 6F 6E 0D 0A 20 20 20 20 expansion..
000010: 20 20 20 73 74 72 69 6E 67 2E 0D 0A 0D 0A 0D 0A string.......
000020: 20 20 20 20 20 20 20 49 66 20 74 68 65 72 65 20 If there
000030: 69 73 20 69 6E 73 75 66 66 69 63 69 65 6E 74 20 is insufficient
000040: 72 6F 6F 6D 20 69 6E 20 74 68 65 20 20 65 78 70 room in the exp
000050: 61 6E 73 69 6F 6E 20 20 62 75 66 66 65 72 20 20 ansion buffer
000060: 66 6F 72 20 20 74 68 65 20 20 6E 65 77 0D 0A 20 for the new..
000070: 20 20 20 20 20 20 73 74 72 69 6E 67 20 74 68 65 string the
000080: 6E 20 6E 6F 20 63 68 61 6E 67 65 20 69 73 20 6D n no change is m
000090: 61 64 65 20 74 6F 20 74 68 65 20 65 78 70 61 6E ade to the expan
0000A0: 73 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 sions.......
0000B0: 20 20 20 49 66 20 74 68 65 20 73 74 72 69 6E 67 If the string
0000C0: 20 73 65 74 20 69 73 20 63 75 72 72 65 6E 74 6C set is currentl
0000D0: 79 20 62 65 69 6E 67 20 75 73 65 64 20 74 6F 20 y being used to
0000E0: 67 65 6E 65 72 61 74 65 20 20 63 68 61 72 61 63 generate charac
0000F0: 74 65 72 73 20 20 28 62 79 0D 0A 20 20 20 20 20 ters (by..
000100: 20 20 4B 4D 20 52 45 41 44 20 43 48 41 52 20 6F KM READ CHAR o
000110: 72 20 4B 4D 20 57 41 49 54 20 43 48 41 52 29 20 r KM WAIT CHAR)
000120: 74 68 65 6E 20 74 68 65 20 75 6E 72 65 61 64 20 then the unread
000130: 70 6F 72 74 69 6F 6E 20 6F 66 20 74 68 65 20 73 portion of the s
000140: 74 72 69 6E 67 20 69 73 0D 0A 20 20 20 20 20 20 tring is..
000150: 20 64 69 73 63 61 72 64 65 64 2E 20 54 68 65 20 discarded. The
000160: 6E 65 78 74 20 63 68 61 72 61 63 74 65 72 20 77 next character w
000170: 69 6C 6C 20 62 65 20 72 65 61 64 20 66 72 6F 6D ill be read from
000180: 20 74 68 65 20 6B 65 79 20 62 75 66 66 65 72 2E the key buffer.
000190: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 ...... Thi
0001A0: 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 s routine enable
0001B0: 73 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D s interrupts....
0001C0: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
0001D0: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 entries:....
0001E0: 20 20 20 4B 4D 20 47 45 54 20 45 58 50 41 4E 44 KM GET EXPAND
0001F0: 0D 0A 20 20 20 20 20 20 20 4B 4D 20 52 45 41 44 .. KM READ
Size : 512 (Real : 512)
000000: 20 43 48 41 52 0D 0A 20 20 20 20 20 20 20 4B 4D CHAR.. KM
000010: 20 57 41 49 54 20 43 48 41 52 0D 0A 0D 0A 0D 0A WAIT CHAR......
000020: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
000030: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
000040: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E page 15.
000070: 37 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 7..............
000080: 20 20 20 20 20 20 36 3A 20 4B 4D 20 47 45 54 20 6: KM GET
000090: 45 58 50 41 4E 44 20 20 20 20 20 20 20 20 20 20 EXPAND
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 20 20 20 20 20 20 20 23 42 42 31 32 0D 0A 0D 0A #BB12....
0000D0: 0D 0A 20 20 20 20 20 20 20 47 65 74 20 61 20 63 .. Get a c
0000E0: 68 61 72 61 63 74 65 72 20 66 72 6F 6D 20 61 6E haracter from an
0000F0: 20 65 78 70 61 6E 73 69 6F 6E 20 73 74 72 69 6E expansion strin
000100: 67 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 g....... A
000110: 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 ction:......
000120: 20 20 20 52 65 61 64 20 61 20 63 68 61 72 61 63 Read a charac
000130: 74 65 72 20 66 72 6F 6D 20 61 6E 20 20 65 78 70 ter from an exp
000140: 61 6E 73 69 6F 6E 20 20 73 74 72 69 6E 67 2E 20 ansion string.
000150: 20 54 68 65 20 20 63 68 61 72 61 63 74 65 72 73 The characters
000160: 20 20 69 6E 20 20 74 68 65 0D 0A 20 20 20 20 20 in the..
000170: 20 20 73 74 72 69 6E 67 20 61 72 65 20 6E 75 6D string are num
000180: 62 65 72 65 64 20 73 74 61 72 74 69 6E 67 20 66 bered starting f
000190: 72 6F 6D 20 30 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 rom 0.......
0001A0: 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 Entry conditi
0001B0: 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons:......
0001C0: 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 6E 20 65 A contains an e
0001D0: 78 70 61 6E 73 69 6F 6E 20 74 6F 6B 65 6E 2E 0D xpansion token..
0001E0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4C 20 63 6F ..... L co
0001F0: 6E 74 61 69 6E 73 20 74 68 65 20 63 68 61 72 61 ntains the chara
Size : 512 (Real : 512)
000000: 63 74 65 72 20 6E 75 6D 62 65 72 2E 0D 0A 0D 0A cter number.....
000010: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
000020: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
000030: 20 20 20 20 20 20 49 66 20 74 68 65 20 63 68 61 If the cha
000040: 72 61 63 74 65 72 20 77 61 73 20 66 6F 75 6E 64 racter was found
000050: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 :......
000060: 20 20 20 20 20 20 20 20 20 20 43 61 72 72 79 20 Carry
000070: 74 72 75 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 true...
000080: 20 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 A cont
000090: 61 69 6E 73 20 74 68 65 20 63 68 61 72 61 63 74 ains the charact
0000A0: 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 er.......
0000B0: 49 66 20 74 68 65 20 74 6F 6B 65 6E 20 77 61 73 If the token was
0000C0: 20 69 6E 76 61 6C 69 64 20 6F 72 20 74 68 65 20 invalid or the
0000D0: 73 74 72 69 6E 67 20 77 61 73 20 6E 6F 74 20 6C string was not l
0000E0: 6F 6E 67 20 65 6E 6F 75 67 68 3A 0D 0A 0D 0A 0D ong enough:.....
0000F0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000100: 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E Carry false.
000110: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000120: 20 20 20 20 20 41 20 63 6F 72 72 75 70 74 2E 0D A corrupt..
000130: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 ..... Alwa
000140: 79 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ys:......
000150: 20 20 20 20 20 20 20 20 20 20 20 20 44 45 20 61 DE a
000160: 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 73 20 63 nd other flags c
000170: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
000180: 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C 20 All
000190: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
0001A0: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A preserved.......
0001B0: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
0001C0: 0A 20 20 20 20 20 20 20 54 68 65 20 63 68 61 72 . The char
0001D0: 61 63 74 65 72 73 20 69 6E 20 74 68 65 20 65 78 acters in the ex
0001E0: 70 61 6E 73 69 6F 6E 20 73 74 72 69 6E 67 20 61 pansion string a
0001F0: 72 65 20 6E 6F 74 20 65 78 70 61 6E 64 65 64 20 re not expanded
Size : 512 (Real : 512)
000000: 28 6F 72 20 20 6F 74 68 65 72 77 69 73 65 0D 0A (or otherwise..
000010: 20 20 20 20 20 20 20 64 65 61 6C 74 20 77 69 74 dealt wit
000020: 68 29 2E 20 49 74 20 69 73 20 74 68 65 72 65 66 h). It is theref
000030: 6F 72 65 20 70 6F 73 73 69 62 6C 65 20 74 6F 20 ore possible to
000040: 70 75 74 20 20 61 6E 79 20 20 63 68 61 72 61 63 put any charac
000050: 74 65 72 20 20 69 6E 74 6F 20 20 61 6E 0D 0A 20 ter into an..
000060: 20 20 20 20 20 20 65 78 70 61 6E 73 69 6F 6E 20 expansion
000070: 73 74 72 69 6E 67 2E 0D 0A 0D 0A 0D 0A 20 20 20 string.......
000080: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
000090: 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B ies:.... K
0000A0: 4D 20 52 45 41 44 20 43 48 41 52 0D 0A 20 20 20 M READ CHAR..
0000B0: 20 20 20 20 4B 4D 20 53 45 54 20 45 58 50 41 4E KM SET EXPAN
0000C0: 44 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D D...... AM
0000D0: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
0000E0: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
000110: 31 35 2E 38 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 15.8............
000120: 0D 0A 20 20 20 20 20 20 20 37 3A 20 4B 4D 20 45 .. 7: KM E
000130: 58 50 20 42 55 46 46 45 52 20 20 20 20 20 20 20 XP BUFFER
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 20 20 20 20 20 20 20 20 20 20 23 42 42 31 35 0D #BB15.
000170: 0A 0D 0A 20 20 20 20 20 20 20 41 6C 6C 6F 63 61 ... Alloca
000180: 74 65 20 61 20 62 75 66 66 65 72 20 66 6F 72 20 te a buffer for
000190: 65 78 70 61 6E 73 69 6F 6E 20 73 74 72 69 6E 67 expansion string
0001A0: 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 s..... Act
0001B0: 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 ion:.... S
0001C0: 65 74 20 74 68 65 20 61 64 64 72 65 73 73 20 61 et the address a
0001D0: 6E 64 20 6C 65 6E 67 74 68 20 6F 66 20 74 68 65 nd length of the
0001E0: 20 20 65 78 70 61 6E 73 69 6F 6E 20 20 62 75 66 expansion buf
0001F0: 66 65 72 2E 20 20 49 6E 69 74 69 61 6C 69 7A 65 fer. Initialize
Size : 512 (Real : 512)
000000: 20 20 74 68 65 0D 0A 20 20 20 20 20 20 20 62 75 the.. bu
000010: 66 66 65 72 20 77 69 74 68 20 74 68 65 20 64 65 ffer with the de
000020: 66 61 75 6C 74 20 65 78 70 61 6E 73 69 6F 6E 20 fault expansion
000030: 73 74 72 69 6E 67 73 2E 0D 0A 0D 0A 20 20 20 20 strings.....
000040: 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 Entry conditi
000050: 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 44 ons:.... D
000060: 45 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 61 E contains the a
000070: 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 62 75 ddress of the bu
000080: 66 66 65 72 2E 0D 0A 20 20 20 20 20 20 20 48 4C ffer... HL
000090: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 6C 65 contains the le
0000A0: 6E 67 74 68 20 6F 66 20 74 68 65 20 62 75 66 66 ngth of the buff
0000B0: 65 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 er..... Ex
0000C0: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
0000D0: 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 .. If the
0000E0: 62 75 66 66 65 72 20 69 73 20 4F 4B 3A 0D 0A 0D buffer is OK:...
0000F0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000100: 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A 0D 0A Carry true.....
000110: 20 20 20 20 20 20 20 49 66 20 74 68 65 20 62 75 If the bu
000120: 66 66 65 72 20 69 73 20 74 6F 6F 20 73 68 6F 72 ffer is too shor
000130: 74 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 t.....
000140: 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 Carry fals
000150: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 e..... Alw
000160: 61 79 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ays:....
000170: 20 20 20 20 20 20 20 20 41 2C 42 43 2C 44 45 2C A,BC,DE,
000180: 48 4C 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 HL and other fla
000190: 67 73 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 gs corrupt...
0001A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 41 6C 6C All
0001B0: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
0001C0: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 preserved.....
0001D0: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
0001E0: 0D 0A 20 20 20 20 20 20 20 54 68 65 20 62 75 66 .. The buf
0001F0: 66 65 72 20 6D 75 73 74 20 6E 6F 74 20 62 65 20 fer must not be
Size : 512 (Real : 512)
000000: 6C 6F 63 61 74 65 64 20 75 6E 64 65 72 6E 65 61 located undernea
000010: 74 68 20 61 20 52 4F 4D 20 20 61 6E 64 20 20 69 th a ROM and i
000020: 74 20 20 6D 75 73 74 20 20 62 65 20 20 61 74 0D t must be at.
000030: 0A 20 20 20 20 20 20 20 6C 65 61 73 74 20 34 39 . least 49
000040: 20 62 79 74 65 73 20 6C 6F 6E 67 20 20 28 69 2E bytes long (i.
000050: 65 2E 20 20 68 61 76 65 20 20 73 75 66 66 69 63 e. have suffic
000060: 69 65 6E 74 20 20 73 70 61 63 65 20 20 66 6F 72 ient space for
000070: 20 20 74 68 65 20 20 64 65 66 61 75 6C 74 0D 0A the default..
000080: 20 20 20 20 20 20 20 65 78 70 61 6E 73 69 6F 6E expansion
000090: 20 73 74 72 69 6E 67 73 29 2E 20 49 66 20 74 68 strings). If th
0000A0: 65 20 6E 65 77 20 62 75 66 66 65 72 20 69 73 20 e new buffer is
0000B0: 74 6F 6F 20 73 68 6F 72 74 20 74 68 65 6E 20 74 too short then t
0000C0: 68 65 20 6F 6C 64 20 62 75 66 66 65 72 0D 0A 20 he old buffer..
0000D0: 20 20 20 20 20 20 69 73 20 6C 65 66 74 20 75 6E is left un
0000E0: 63 68 61 6E 67 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 changed.......
0000F0: 20 20 20 20 20 54 68 65 20 64 65 66 61 75 6C 74 The default
000100: 20 65 78 70 61 6E 73 69 6F 6E 20 73 74 72 69 6E expansion strin
000110: 67 73 20 61 72 65 20 67 69 76 65 6E 20 69 6E 20 gs are given in
000120: 41 70 70 65 6E 64 69 78 20 49 56 2E 0D 0A 0D 0A Appendix IV.....
000130: 0D 0A 20 20 20 20 20 20 20 41 6E 79 20 65 78 70 .. Any exp
000140: 61 6E 73 69 6F 6E 20 73 74 72 69 6E 67 20 63 75 ansion string cu
000150: 72 72 65 6E 74 6C 79 20 62 65 69 6E 67 20 72 65 rrently being re
000160: 61 64 20 69 73 20 64 69 73 63 61 72 64 65 64 2E ad is discarded.
000170: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 69 ...... Thi
000180: 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 s routine enable
000190: 73 20 69 6E 74 65 72 72 75 70 74 73 2E 0D 0A 0D s interrupts....
0001A0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ...........
0001B0: 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 Related entrie
0001C0: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4D 20 s:.... KM
0001D0: 47 45 54 20 45 58 50 41 4E 44 0D 0A 20 20 20 20 GET EXPAND..
0001E0: 20 20 20 4B 4D 20 53 45 54 20 45 58 50 41 4E 44 KM SET EXPAND
0001F0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
Size : 512 (Real : 512)
000000: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
000010: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
000020: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
000040: 67 65 20 31 35 2E 39 0D 0A 0D 0A 0D 0A 0D 0A 0D ge 15.9.........
000050: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 38 3A 20 4B ..... 8: K
000060: 4D 20 57 41 49 54 20 4B 45 59 20 20 20 20 20 20 M WAIT KEY
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 42 #BB
0000A0: 31 38 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 57 18...... W
0000B0: 61 69 74 20 66 6F 72 20 6E 65 78 74 20 6B 65 79 ait for next key
0000C0: 20 66 72 6F 6D 20 74 68 65 20 6B 65 79 62 6F 61 from the keyboa
0000D0: 72 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 rd.......
0000E0: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
0000F0: 20 20 20 20 54 72 79 20 74 6F 20 67 65 74 20 61 Try to get a
000100: 20 6B 65 79 20 66 72 6F 6D 20 74 68 65 20 6B 65 key from the ke
000110: 79 20 62 75 66 66 65 72 2E 20 54 68 69 73 20 72 y buffer. This r
000120: 6F 75 74 69 6E 65 20 77 61 69 74 73 20 75 6E 74 outine waits unt
000130: 69 6C 20 20 61 20 20 6B 65 79 0D 0A 20 20 20 20 il a key..
000140: 20 20 20 69 73 20 66 6F 75 6E 64 20 69 66 20 6E is found if n
000150: 6F 20 6B 65 79 20 69 73 20 69 6D 6D 65 64 69 61 o key is immedia
000160: 74 65 6C 79 20 61 76 61 69 6C 61 62 6C 65 2E 0D tely available..
000170: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
000180: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
000190: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E ... No con
0001A0: 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 ditions.......
0001B0: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
0001C0: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
0001D0: 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A 20 Carry true...
0001E0: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
0001F0: 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 6F the character o
Size : 512 (Real : 512)
000000: 72 20 65 78 70 61 6E 73 69 6F 6E 20 74 6F 6B 65 r expansion toke
000010: 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4F n....... O
000020: 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 ther flags corru
000030: 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 pt... All
000040: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
000050: 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ved.......
000060: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 Notes:......
000070: 20 20 20 20 54 68 65 20 6E 65 78 74 20 6B 65 79 The next key
000080: 20 69 73 20 72 65 61 64 20 66 72 6F 6D 20 74 68 is read from th
000090: 65 20 6B 65 79 20 20 62 75 66 66 65 72 20 20 61 e key buffer a
0000A0: 6E 64 20 20 74 72 61 6E 73 6C 61 74 65 64 20 20 nd translated
0000B0: 75 73 69 6E 67 20 20 74 68 65 0D 0A 20 20 20 20 using the..
0000C0: 20 20 20 61 70 70 72 6F 70 72 69 61 74 65 20 6B appropriate k
0000D0: 65 79 20 74 72 61 6E 73 6C 61 74 69 6F 6E 20 74 ey translation t
0000E0: 61 62 6C 65 2E 20 45 78 70 61 6E 73 69 6F 6E 20 able. Expansion
0000F0: 74 6F 6B 65 6E 73 20 61 72 65 20 20 6E 6F 74 20 tokens are not
000100: 20 65 78 70 61 6E 64 65 64 0D 0A 20 20 20 20 20 expanded..
000110: 20 20 62 75 74 20 61 72 65 20 20 70 61 73 73 65 but are passe
000120: 64 20 20 6F 75 74 20 20 66 6F 72 20 20 74 68 65 d out for the
000130: 20 20 75 73 65 72 20 20 74 6F 20 20 64 65 61 6C user to deal
000140: 20 20 77 69 74 68 2C 20 20 61 73 20 20 61 72 65 with, as are
000150: 20 20 6E 6F 72 6D 61 6C 0D 0A 20 20 20 20 20 20 normal..
000160: 20 63 68 61 72 61 63 74 65 72 73 2E 20 4F 74 68 characters. Oth
000170: 65 72 20 4B 65 79 20 20 4D 61 6E 61 67 65 72 20 er Key Manager
000180: 20 74 6F 6B 65 6E 73 20 20 28 73 68 69 66 74 20 tokens (shift
000190: 20 6C 6F 63 6B 2C 20 20 63 61 70 73 20 20 6C 6F lock, caps lo
0001A0: 63 6B 20 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 ck and..
0001B0: 69 67 6E 6F 72 65 29 20 61 72 65 20 6F 62 65 79 ignore) are obey
0001C0: 65 64 20 62 75 74 20 61 72 65 20 6E 6F 74 20 70 ed but are not p
0001D0: 61 73 73 65 64 20 6F 75 74 2E 0D 0A 0D 0A 0D 0A assed out.......
0001E0: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
0001F0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
Size : 512 (Real : 512)
000000: 20 20 20 20 4B 4D 20 52 45 41 44 20 4B 45 59 0D KM READ KEY.
000010: 0A 20 20 20 20 20 20 20 4B 4D 20 57 41 49 54 20 . KM WAIT
000020: 43 48 41 52 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A CHAR............
000030: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
000040: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
000050: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
000060: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 30 0D page 15.10.
000090: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
0000A0: 20 20 20 20 39 3A 20 4B 4D 20 52 45 41 44 20 4B 9: KM READ K
0000B0: 45 59 20 20 20 20 20 20 20 20 20 20 20 20 20 20 EY
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 20 20 20 20 20 23 42 42 31 42 0D 0A 0D 0A 20 20 #BB1B....
0000F0: 20 20 20 20 20 54 65 73 74 20 69 66 20 61 20 6B Test if a k
000100: 65 79 20 69 73 20 61 76 61 69 6C 61 62 6C 65 20 ey is available
000110: 66 72 6F 6D 20 74 68 65 20 6B 65 79 62 6F 61 72 from the keyboar
000120: 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 d..... Act
000130: 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 ion:.... T
000140: 72 79 20 74 6F 20 67 65 74 20 61 20 6B 65 79 20 ry to get a key
000150: 66 72 6F 6D 20 74 68 65 20 6B 65 79 20 62 75 66 from the key buf
000160: 66 65 72 2E 20 54 68 69 73 20 72 6F 75 74 69 6E fer. This routin
000170: 65 20 64 6F 65 73 20 6E 6F 74 20 77 61 69 74 20 e does not wait
000180: 69 66 20 6E 6F 0D 0A 20 20 20 20 20 20 20 6B 65 if no.. ke
000190: 79 20 69 73 20 61 76 61 69 6C 61 62 6C 65 20 69 y is available i
0001A0: 6D 6D 65 64 69 61 74 65 6C 79 2E 0D 0A 0D 0A 20 mmediately.....
0001B0: 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 Entry cond
0001C0: 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 itions:....
0001D0: 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E No conditions.
0001E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
0001F0: 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 conditions.....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 49 66 20 61 20 6B 65 79 20 77 If a key w
000010: 61 73 20 61 76 61 69 6C 61 62 6C 65 3A 0D 0A 0D as available:...
000020: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000030: 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0A 0D 0A Carry true.....
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 41 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 63 A contains the c
000060: 68 61 72 61 63 74 65 72 20 6F 72 20 65 78 70 61 haracter or expa
000070: 6E 73 69 6F 6E 20 74 6F 6B 65 6E 2E 0D 0A 0D 0A nsion token.....
000080: 20 20 20 20 20 20 20 49 66 20 6E 6F 20 6B 65 79 If no key
000090: 20 77 61 73 20 61 76 61 69 6C 61 62 6C 65 3A 0D was available:.
0000A0: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
0000B0: 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E 0D Carry false..
0000C0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0000D0: 20 41 20 63 6F 72 72 75 70 74 2E 0D 0A 0D 0A 20 A corrupt.....
0000E0: 20 20 20 20 20 20 41 6C 77 61 79 73 3A 0D 0A 0D Always:...
0000F0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000100: 20 4F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 Other flags cor
000110: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 rupt...
000120: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
000130: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
000140: 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rved.....
000150: 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 Notes:......
000160: 20 20 20 54 68 65 20 6E 65 78 74 20 6B 65 79 20 The next key
000170: 69 73 20 72 65 61 64 20 66 72 6F 6D 20 74 68 65 is read from the
000180: 20 6B 65 79 20 20 62 75 66 66 65 72 20 20 61 6E key buffer an
000190: 64 20 20 74 72 61 6E 73 6C 61 74 65 64 20 20 75 d translated u
0001A0: 73 69 6E 67 20 20 74 68 65 0D 0A 20 20 20 20 20 sing the..
0001B0: 20 20 61 70 70 72 6F 70 72 69 61 74 65 20 6B 65 appropriate ke
0001C0: 79 20 74 72 61 6E 73 6C 61 74 69 6F 6E 20 74 61 y translation ta
0001D0: 62 6C 65 2E 20 45 78 70 61 6E 73 69 6F 6E 20 74 ble. Expansion t
0001E0: 6F 6B 65 6E 73 20 61 72 65 20 20 6E 6F 74 20 20 okens are not
0001F0: 65 78 70 61 6E 64 65 64 0D 0A 20 20 20 20 20 20 expanded..
Size : 512 (Real : 512)
000000: 20 62 75 74 20 61 72 65 20 20 70 61 73 73 65 64 but are passed
000010: 20 20 6F 75 74 20 20 66 6F 72 20 20 74 68 65 20 out for the
000020: 20 75 73 65 72 20 20 74 6F 20 20 64 65 61 6C 20 user to deal
000030: 20 77 69 74 68 2C 20 20 61 73 20 20 61 72 65 20 with, as are
000040: 20 6E 6F 72 6D 61 6C 0D 0A 20 20 20 20 20 20 20 normal..
000050: 63 68 61 72 61 63 74 65 72 73 2E 20 4F 74 68 65 characters. Othe
000060: 72 20 4B 65 79 20 20 4D 61 6E 61 67 65 72 20 20 r Key Manager
000070: 74 6F 6B 65 6E 73 20 20 28 73 68 69 66 74 20 20 tokens (shift
000080: 6C 6F 63 6B 2C 20 20 63 61 70 73 20 20 6C 6F 63 lock, caps loc
000090: 6B 20 20 61 6E 64 0D 0A 20 20 20 20 20 20 20 69 k and.. i
0000A0: 67 6E 6F 72 65 29 20 61 72 65 20 6F 62 65 79 65 gnore) are obeye
0000B0: 64 20 62 75 74 20 61 72 65 20 6E 6F 74 20 70 61 d but are not pa
0000C0: 73 73 65 64 20 6F 75 74 2E 0D 0A 0D 0A 0D 0A 20 ssed out.......
0000D0: 20 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 This routi
0000E0: 6E 65 20 77 69 6C 6C 20 61 6C 77 61 79 73 20 72 ne will always r
0000F0: 65 74 75 72 6E 20 61 20 6B 65 79 20 20 69 66 20 eturn a key if
000100: 20 6F 6E 65 20 20 69 73 20 20 61 76 61 69 6C 61 one is availa
000110: 62 6C 65 2E 20 20 49 74 20 20 69 73 0D 0A 20 20 ble. It is..
000120: 20 20 20 20 20 74 68 65 72 65 66 6F 72 65 20 70 therefore p
000130: 6F 73 73 69 62 6C 65 20 74 6F 20 66 6C 75 73 68 ossible to flush
000140: 20 6F 75 74 20 74 68 65 20 6B 65 79 20 62 75 66 out the key buf
000150: 66 65 72 20 62 79 20 63 61 6C 6C 69 6E 67 20 4B fer by calling K
000160: 4D 20 52 45 41 44 20 20 4B 45 59 0D 0A 20 20 20 M READ KEY..
000170: 20 20 20 20 72 65 70 65 61 74 65 64 6C 79 20 75 repeatedly u
000180: 6E 74 69 6C 20 69 74 20 63 6C 61 69 6D 20 6E 6F ntil it claim no
000190: 20 6B 65 79 20 69 73 20 61 76 61 69 6C 61 62 6C key is availabl
0001A0: 65 2E 20 4E 6F 74 65 2C 20 68 6F 77 65 76 65 72 e. Note, however
0001B0: 2C 20 74 68 61 74 20 74 68 65 0D 0A 20 20 20 20 , that the..
0001C0: 20 20 20 27 70 75 74 20 62 61 63 6B 27 20 63 68 'put back' ch
0001D0: 61 72 61 63 74 65 72 20 6F 72 20 61 20 70 61 72 aracter or a par
0001E0: 74 69 61 6C 6C 79 20 72 65 61 64 20 65 78 70 61 tially read expa
0001F0: 6E 73 69 6F 6E 20 73 74 72 69 6E 67 20 69 73 20 nsion string is
Size : 512 (Real : 512)
000000: 20 69 67 6E 6F 72 65 64 2E 0D 0A 20 20 20 20 20 ignored...
000010: 20 20 49 74 20 69 73 20 61 64 76 69 73 61 62 6C It is advisabl
000020: 65 20 74 6F 20 75 73 65 20 4B 4D 20 52 45 41 44 e to use KM READ
000030: 20 43 48 41 52 20 74 6F 20 66 6C 75 73 68 20 74 CHAR to flush t
000040: 68 65 73 65 20 6F 75 74 20 20 77 68 65 6E 20 20 hese out when
000050: 65 6D 70 74 79 69 6E 67 0D 0A 20 20 20 20 20 20 emptying..
000060: 20 74 68 65 20 4B 65 79 20 4D 61 6E 61 67 65 72 the Key Manager
000070: 20 62 75 66 66 65 72 73 2C 20 6F 72 2C 20 69 6E buffers, or, in
000080: 20 56 31 2E 31 20 66 69 72 6D 77 61 72 65 2C 20 V1.1 firmware,
000090: 74 6F 20 63 61 6C 6C 20 4B 4D 20 46 4C 55 53 48 to call KM FLUSH
0000A0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 ....... Re
0000B0: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
0000C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4D 20 46 4C .... KM FL
0000D0: 55 53 48 0D 0A 20 20 20 20 20 20 20 4B 4D 20 52 USH.. KM R
0000E0: 45 41 44 20 43 48 41 52 0D 0A 20 20 20 20 20 20 EAD CHAR..
0000F0: 20 4B 4D 20 57 41 49 54 20 4B 45 59 0D 0A 0D 0A KM WAIT KEY....
000100: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
000110: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
000120: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
000150: 2E 31 31 0D 0A 1A 65 74 61 69 6C 20 74 68 65 20 .11...etail the
000160: 65 6E 74 72 79 20 61 6E 64 20 65 78 69 74 20 63 entry and exit c
000170: 6F 6E 64 69 74 69 6F 6E 73 20 61 6E 64 20 74 68 onditions and th
000180: 6E 74 69 6C 20 69 74 20 63 6C 61 69 6D 20 6E 6F ntil it claim no
000190: 20 6B 65 79 20 69 73 20 61 76 61 69 6C 61 62 6C key is availabl
0001A0: 65 2E 20 4E 6F 74 65 2C 20 68 6F 77 65 76 65 72 e. Note, however
0001B0: 2C 20 74 68 61 74 20 74 68 65 0D 0A 20 20 20 20 , that the..
0001C0: 20 20 20 27 70 75 74 20 62 61 63 6B 27 20 63 68 'put back' ch
0001D0: 61 72 61 63 74 65 72 20 6F 72 20 61 20 70 61 72 aracter or a par
0001E0: 74 69 61 6C 6C 79 20 72 65 61 64 20 65 78 70 61 tially read expa
0001F0: 6E 73 69 6F 6E 20 73 74 72 69 6E 67 20 69 73 20 nsion string is
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000010: 20 20 20 31 30 3A 20 4B 4D 20 54 45 53 54 20 4B 10: KM TEST K
000020: 45 59 20 20 20 20 20 20 20 20 20 20 20 20 20 20 EY
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 20 20 20 20 23 42 42 31 45 0D 0A 0D 0A 20 20 20 #BB1E....
000060: 20 20 20 20 54 65 73 74 20 69 66 20 61 20 6B 65 Test if a ke
000070: 79 20 69 73 20 70 72 65 73 73 65 64 2E 0D 0A 0D y is pressed....
000080: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
000090: 0A 0D 0A 20 20 20 20 20 20 20 54 65 73 74 20 69 ... Test i
0000A0: 66 20 61 20 70 61 72 74 69 63 75 6C 61 72 20 6B f a particular k
0000B0: 65 79 20 6F 72 20 6A 6F 79 73 74 69 63 6B 20 62 ey or joystick b
0000C0: 75 74 74 6F 6E 20 69 73 20 70 72 65 73 73 65 64 utton is pressed
0000D0: 2E 20 54 68 69 73 20 20 69 73 20 20 64 6F 6E 65 . This is done
0000E0: 0D 0A 20 20 20 20 20 20 20 75 73 69 6E 67 20 74 .. using t
0000F0: 68 65 20 20 6B 65 79 20 20 73 74 61 74 65 20 20 he key state
000100: 6D 61 70 20 20 72 61 74 68 65 72 20 20 74 68 65 map rather the
000110: 6E 20 20 62 79 20 20 61 63 63 65 73 73 69 6E 67 n by accessing
000120: 20 20 74 68 65 20 20 6B 65 79 62 6F 61 72 64 0D the keyboard.
000130: 0A 20 20 20 20 20 20 20 68 61 72 64 77 61 72 65 . hardware
000140: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
000150: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
000160: 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 . A contai
000170: 6E 73 20 74 68 65 20 6B 65 79 20 6E 75 6D 62 65 ns the key numbe
000180: 72 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 r..... Exi
000190: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
0001A0: 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 6B . If the k
0001B0: 65 79 20 69 73 20 70 72 65 73 73 65 64 3A 0D 0A ey is pressed:..
0001C0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0001D0: 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 0D Zero false....
0001E0: 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 6B . If the k
0001F0: 65 79 20 69 73 20 6E 6F 74 20 70 72 65 73 73 65 ey is not presse
Size : 512 (Real : 512)
000000: 64 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 d:....
000010: 20 20 20 20 20 20 5A 65 72 6F 20 74 72 75 65 2E Zero true.
000020: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 79 .... Alway
000030: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s:....
000040: 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 Carry fals
000050: 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 e...
000060: 20 20 20 20 43 20 63 6F 6E 74 61 69 6E 73 20 74 C contains t
000070: 68 65 20 63 75 72 72 65 6E 74 20 73 68 69 66 74 he current shift
000080: 20 61 6E 64 20 63 6F 6E 74 72 6F 6C 20 73 74 61 and control sta
000090: 74 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 te.....
0000A0: 20 20 20 20 20 20 20 41 2C 48 4C 20 61 6E 64 20 A,HL and
0000B0: 6F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 other flags corr
0000C0: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 upt...
0000D0: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
0000E0: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
0000F0: 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E ved..... N
000100: 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 otes:....
000110: 54 68 65 20 73 68 69 66 74 20 61 6E 64 20 63 6F The shift and co
000120: 6E 74 72 6F 6C 20 73 74 61 74 65 73 20 61 72 65 ntrol states are
000130: 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 20 automatically
000140: 72 65 61 64 20 20 77 68 65 6E 20 20 61 20 20 6B read when a k
000150: 65 79 20 20 69 73 0D 0A 20 20 20 20 20 20 20 73 ey is.. s
000160: 63 61 6E 6E 65 64 2E 20 49 66 20 62 69 74 20 37 canned. If bit 7
000170: 20 69 73 20 73 65 74 20 74 68 65 6E 20 74 68 65 is set then the
000180: 20 63 6F 6E 74 72 6F 6C 20 6B 65 79 20 69 73 20 control key is
000190: 70 72 65 73 73 65 64 20 61 6E 64 20 69 66 20 62 pressed and if b
0001A0: 69 74 20 20 35 0D 0A 20 20 20 20 20 20 20 69 73 it 5.. is
0001B0: 20 73 65 74 20 74 68 65 6E 20 6F 6E 65 20 6F 66 set then one of
0001C0: 20 74 68 65 20 73 68 69 66 74 20 6B 65 79 73 20 the shift keys
0001D0: 69 73 20 70 72 65 73 73 65 64 2E 0D 0A 0D 0A 20 is pressed.....
0001E0: 20 20 20 20 20 20 54 68 65 20 6B 65 79 20 6E 75 The key nu
0001F0: 6D 62 65 72 20 69 73 20 6E 6F 74 20 63 68 65 63 mber is not chec
Size : 512 (Real : 512)
000000: 6B 65 64 2E 20 41 6E 20 69 6E 76 61 6C 69 64 20 ked. An invalid
000010: 6B 65 79 20 6E 75 6D 62 65 72 20 77 69 6C 6C 20 key number will
000020: 67 65 6E 65 72 61 74 65 20 74 68 65 0D 0A 20 20 generate the..
000030: 20 20 20 20 20 63 6F 72 72 65 63 74 20 73 68 69 correct shi
000040: 66 74 20 61 6E 64 20 63 6F 6E 74 72 6F 6C 20 73 ft and control s
000050: 74 61 74 65 73 20 62 75 74 20 74 68 65 20 73 74 tates but the st
000060: 61 74 65 20 6F 66 20 74 68 65 20 6B 65 79 20 74 ate of the key t
000070: 65 73 74 65 64 20 20 77 69 6C 6C 0D 0A 20 20 20 ested will..
000080: 20 20 20 20 62 65 20 6D 65 61 6E 69 6E 67 6C 65 be meaningle
000090: 73 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ss..... Th
0000A0: 65 20 6B 65 79 20 73 74 61 74 65 20 6D 61 70 20 e key state map
0000B0: 77 68 69 63 68 20 74 68 69 73 20 72 6F 75 74 69 which this routi
0000C0: 6E 65 20 74 65 73 74 73 20 69 73 20 75 70 64 61 ne tests is upda
0000D0: 74 65 64 20 62 79 20 74 68 65 20 20 6B 65 79 62 ted by the keyb
0000E0: 6F 61 72 64 0D 0A 20 20 20 20 20 20 20 73 63 61 oard.. sca
0000F0: 6E 6E 69 6E 67 20 72 6F 75 74 69 6E 65 2E 20 4E nning routine. N
000100: 6F 72 6D 61 6C 6C 79 20 74 68 69 73 20 72 75 6E ormally this run
000110: 20 69 73 20 65 76 65 72 79 20 66 69 66 74 69 65 is every fiftie
000120: 74 68 20 6F 66 20 61 20 73 65 63 6F 6E 64 20 20 th of a second
000130: 61 6E 64 0D 0A 20 20 20 20 20 20 20 73 6F 20 74 and.. so t
000140: 68 65 20 73 74 61 74 65 20 6D 61 79 20 62 65 20 he state may be
000150: 6F 75 74 20 6F 66 20 64 61 74 65 20 20 62 79 20 out of date by
000160: 20 74 68 61 74 20 20 6D 75 63 68 2E 20 20 54 68 that much. Th
000170: 65 20 20 6B 65 79 20 20 64 65 62 6F 75 6E 63 69 e key debounci
000180: 6E 67 0D 0A 20 20 20 20 20 20 20 72 65 71 75 69 ng.. requi
000190: 72 65 73 20 74 68 61 74 20 61 20 6B 65 79 20 73 res that a key s
0001A0: 68 6F 75 6C 64 20 62 65 20 72 65 6C 65 61 73 65 hould be release
0001B0: 64 20 66 6F 72 20 74 77 6F 20 73 63 61 6E 73 20 d for two scans
0001C0: 6F 66 20 20 74 68 65 20 20 6B 65 79 62 6F 61 72 of the keyboar
0001D0: 64 0D 0A 20 20 20 20 20 20 20 62 65 66 6F 72 65 d.. before
0001E0: 20 69 74 20 69 73 20 6D 61 72 6B 65 64 20 61 73 it is marked as
0001F0: 20 72 65 6C 65 61 73 65 64 20 69 6E 20 74 68 65 released in the
Size : 512 (Real : 512)
000000: 20 6B 65 79 20 73 74 61 74 65 20 6D 61 70 3B 20 key state map;
000010: 74 68 65 20 70 72 65 73 73 69 6E 67 20 20 6F 66 the pressing of
000020: 0D 0A 20 20 20 20 20 20 20 61 20 6B 65 79 20 69 .. a key i
000030: 73 20 64 65 74 65 63 74 65 64 20 69 6D 6D 65 64 s detected immed
000040: 69 61 74 65 6C 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 iately.......
000050: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
000060: 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B ies:.... K
000070: 4D 20 47 45 54 20 4A 4F 59 53 54 49 43 4B 0D 0A M GET JOYSTICK..
000080: 20 20 20 20 20 20 20 4B 4D 20 47 45 54 20 53 54 KM GET ST
000090: 41 54 45 0D 0A 20 20 20 20 20 20 20 4B 4D 20 52 ATE.. KM R
0000A0: 45 41 44 20 4B 45 59 0D 0A 0D 0A 0D 0A 0D 0A 0D EAD KEY.........
0000B0: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
0000C0: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
0000D0: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 70 61 67 65 20 31 35 2E 31 32 0D 0A page 15.12..
000100: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000110: 20 20 20 31 31 3A 20 4B 4D 20 47 45 54 20 53 54 11: KM GET ST
000120: 41 54 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ATE
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000150: 20 20 20 20 23 42 42 32 31 0D 0A 0D 0A 0D 0A 20 #BB21......
000160: 20 20 20 20 20 20 46 65 74 63 68 20 43 61 70 73 Fetch Caps
000170: 20 4C 6F 63 6B 20 61 6E 64 20 53 68 69 66 74 20 Lock and Shift
000180: 4C 6F 63 6B 20 73 74 61 74 65 73 2E 0D 0A 0D 0A Lock states.....
000190: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F .... Actio
0001A0: 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 n:...... A
0001B0: 73 6B 20 69 66 20 74 68 65 20 6B 65 79 62 6F 61 sk if the keyboa
0001C0: 72 64 20 69 73 20 63 75 72 72 65 6E 74 6C 79 20 rd is currently
0001D0: 73 68 69 66 74 20 6C 6F 63 6B 65 64 20 6F 72 20 shift locked or
0001E0: 63 61 70 73 20 6C 6F 63 6B 65 64 2E 0D 0A 0D 0A caps locked.....
0001F0: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
Size : 512 (Real : 512)
000000: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
000010: 20 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 No condit
000020: 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions.......
000030: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
000040: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4C s:...... L
000050: 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 68 contains the sh
000060: 69 66 74 20 6C 6F 63 6B 20 73 74 61 74 65 2E 0D ift lock state..
000070: 0A 20 20 20 20 20 20 20 48 20 63 6F 6E 74 61 69 . H contai
000080: 6E 73 20 74 68 65 20 63 61 70 73 20 6C 6F 63 6B ns the caps lock
000090: 20 73 74 61 74 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 state.......
0000A0: 20 20 20 20 41 46 20 63 6F 72 72 75 70 74 2E 0D AF corrupt..
0000B0: 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 . All othe
0000C0: 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 r registers pres
0000D0: 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 erved.......
0000E0: 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 Notes:......
0000F0: 20 20 20 20 20 20 54 68 65 20 6C 6F 63 6B 20 73 The lock s
000100: 74 61 74 65 73 20 61 72 65 3A 0D 0A 0D 0A 0D 0A tates are:......
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000120: 23 30 30 20 20 20 20 20 20 20 6D 65 61 6E 73 20 #00 means
000130: 74 68 65 20 6C 6F 63 6B 20 69 73 20 6F 66 66 0D the lock is off.
000140: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000150: 20 23 46 46 20 20 20 20 20 20 20 6D 65 61 6E 73 #FF means
000160: 20 74 68 65 20 6C 6F 63 6B 20 69 73 20 6F 6E 0D the lock is on.
000170: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
000180: 64 65 66 61 75 6C 74 20 6C 6F 63 6B 20 73 74 61 default lock sta
000190: 74 65 73 20 61 72 65 20 6F 66 66 2E 0D 0A 0D 0A tes are off.....
0001A0: 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 .. Related
0001B0: 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 entries:......
0001C0: 20 20 20 20 20 20 4B 4D 20 53 45 54 20 4C 4F 43 KM SET LOC
0001D0: 4B 53 0D 0A 20 20 20 20 20 20 20 4B 4D 20 54 45 KS.. KM TE
0001E0: 53 54 20 4B 45 59 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ST KEY..........
0001F0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
Size : 512 (Real : 512)
000000: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
000010: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
000020: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 70 61 67 65 20 31 35 2E 31 33 0D 0A 0D 0A 0D page 15.13.....
000050: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
000060: 31 32 3A 20 4B 4D 20 47 45 54 20 4A 4F 59 53 54 12: KM GET JOYST
000070: 49 43 4B 20 20 20 20 20 20 20 20 20 20 20 20 20 ICK
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 23 42 42 32 34 0D 0A 0D 0A 0D 0A 20 20 20 20 #BB24......
0000B0: 20 20 20 46 65 74 63 68 20 63 75 72 72 65 6E 74 Fetch current
0000C0: 20 73 74 61 74 65 20 6F 66 20 74 68 65 20 6A 6F state of the jo
0000D0: 79 73 74 69 63 6B 28 73 29 2E 0D 0A 0D 0A 0D 0A ystick(s).......
0000E0: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
0000F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 73 6B 20 77 .... Ask w
000100: 68 61 74 20 74 68 65 20 63 75 72 72 65 6E 74 20 hat the current
000110: 73 74 61 74 65 73 20 6F 66 20 74 68 65 20 6A 6F states of the jo
000120: 79 73 74 69 63 6B 73 20 61 72 65 2E 20 54 68 65 ysticks are. The
000130: 73 65 20 61 72 65 20 72 65 61 64 20 20 66 72 6F se are read fro
000140: 6D 0D 0A 20 20 20 20 20 20 20 74 68 65 20 6B 65 m.. the ke
000150: 79 20 73 74 61 74 65 20 6D 61 70 20 72 61 74 68 y state map rath
000160: 65 72 20 74 68 61 6E 20 62 79 20 61 63 63 65 73 er than by acces
000170: 73 69 6E 67 20 74 68 65 20 6B 65 79 62 6F 61 72 sing the keyboar
000180: 64 20 68 61 72 64 77 61 72 65 2E 0D 0A 0D 0A 0D d hardware......
000190: 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F . Entry co
0001A0: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
0001B0: 20 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 No conditi
0001C0: 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ons.......
0001D0: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
0001E0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 20 :...... H
0001F0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 74 61 contains the sta
Size : 512 (Real : 512)
000000: 74 65 20 6F 66 20 6A 6F 79 73 74 69 63 6B 20 30 te of joystick 0
000010: 2E 0D 0A 20 20 20 20 20 20 20 4C 20 63 6F 6E 74 ... L cont
000020: 61 69 6E 73 20 74 68 65 20 73 74 61 74 65 20 6F ains the state o
000030: 66 20 6A 6F 79 73 74 69 63 6B 20 31 2E 0D 0A 20 f joystick 1...
000040: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
000050: 20 74 68 65 20 73 74 61 74 65 20 6F 66 20 6A 6F the state of jo
000060: 79 73 74 69 63 6B 20 30 2E 0D 0A 0D 0A 20 20 20 ystick 0.....
000070: 20 20 20 20 46 6C 61 67 73 20 63 6F 72 72 75 70 Flags corrup
000080: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
000090: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
0000A0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 reserved.....
0000B0: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 Notes:....
0000C0: 20 20 20 20 20 49 6E 20 6E 6F 72 6D 61 6C 20 6F In normal o
0000D0: 70 65 72 61 74 69 6F 6E 20 74 68 65 20 6B 65 79 peration the key
0000E0: 20 73 74 61 74 65 20 6D 61 70 20 69 73 20 75 70 state map is up
0000F0: 64 61 74 65 64 20 62 79 20 74 68 65 20 20 6B 65 dated by the ke
000100: 79 20 20 73 63 61 6E 6E 69 6E 67 0D 0A 20 20 20 y scanning..
000110: 20 20 20 20 72 6F 75 74 69 6E 65 20 65 76 65 72 routine ever
000120: 79 20 66 69 66 74 69 65 74 68 20 6F 66 20 61 20 y fiftieth of a
000130: 20 73 65 63 6F 6E 64 20 20 73 6F 20 20 74 68 65 second so the
000140: 20 20 73 74 61 74 65 20 20 72 65 74 75 72 6E 65 state returne
000150: 64 20 20 6D 61 79 20 20 62 65 0D 0A 20 20 20 20 d may be..
000160: 20 20 20 73 6C 69 67 68 74 6C 79 20 6F 75 74 20 slightly out
000170: 6F 66 20 64 61 74 65 2E 0D 0A 0D 0A 0D 0A 20 20 of date.......
000180: 20 20 20 20 20 54 68 65 20 6A 6F 79 73 74 69 63 The joystic
000190: 6B 20 73 74 61 74 65 73 20 61 72 65 20 62 69 74 k states are bit
0001A0: 20 73 69 67 6E 69 66 69 63 61 6E 74 20 61 73 20 significant as
0001B0: 66 6F 6C 6C 6F 77 73 3A 0D 0A 0D 0A 20 20 20 20 follows:....
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 20 Bit
0001D0: 30 20 20 20 20 20 55 70 2E 0D 0A 20 20 20 20 20 0 Up...
0001E0: 20 20 20 20 20 20 20 20 20 20 20 42 69 74 20 31 Bit 1
0001F0: 20 20 20 20 20 44 6F 77 6E 2E 0D 0A 20 20 20 20 Down...
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 20 Bit
000010: 32 20 20 20 20 20 4C 65 66 74 2E 0D 0A 20 20 20 2 Left...
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 Bit
000030: 20 33 20 20 20 20 20 52 69 67 68 74 2E 0D 0A 20 3 Right...
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 B
000050: 69 74 20 34 20 20 20 20 20 46 69 72 65 20 32 2E it 4 Fire 2.
000060: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000070: 20 20 42 69 74 20 35 20 20 20 20 20 46 69 72 65 Bit 5 Fire
000080: 20 31 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 1...
000090: 20 20 20 20 20 42 69 74 20 36 20 20 20 20 20 53 Bit 6 S
0000A0: 70 61 72 65 20 6A 6F 79 73 74 69 63 6B 20 62 75 pare joystick bu
0000B0: 74 74 6F 6E 20 28 75 73 75 61 6C 6C 79 20 75 6E tton (usually un
0000C0: 63 6F 6E 6E 65 63 74 65 64 29 2E 0D 0A 20 20 20 connected)...
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 Bit
0000E0: 20 37 20 20 20 20 20 41 6C 77 61 79 73 20 7A 65 7 Always ze
0000F0: 72 6F 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 ro..... If
000100: 20 61 20 62 69 74 20 69 73 20 73 65 74 20 74 68 a bit is set th
000110: 65 6E 20 74 68 65 20 61 70 70 72 6F 70 72 69 61 en the appropria
000120: 74 65 20 62 75 74 74 6F 6E 20 69 73 20 70 72 65 te button is pre
000130: 73 73 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 ssed.....
000140: 4A 6F 79 73 74 69 63 6B 20 31 20 69 73 20 69 6E Joystick 1 is in
000150: 64 69 73 74 69 6E 67 75 69 73 68 61 62 6C 65 20 distinguishable
000160: 66 72 6F 6D 20 63 65 72 74 61 69 6E 20 6B 65 79 from certain key
000170: 73 20 6F 6E 20 74 68 65 20 6B 65 79 62 6F 61 72 s on the keyboar
000180: 64 20 28 73 65 65 0D 0A 20 20 20 20 20 20 20 41 d (see.. A
000190: 70 70 65 6E 64 69 78 20 31 29 2E 0D 0A 0D 0A 20 ppendix 1).....
0001A0: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
0001B0: 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tries:....
0001C0: 20 4B 4D 20 54 45 53 54 20 4B 45 59 0D 0A 0D 0A KM TEST KEY....
0001D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
0001E0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
0001F0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
000020: 2E 31 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D .14.............
000030: 0A 20 20 20 20 20 20 20 31 33 3A 20 4B 4D 20 53 . 13: KM S
000040: 45 54 20 54 52 41 4E 53 4C 41 54 45 20 20 20 20 ET TRANSLATE
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 20 20 23 42 42 32 37 0D 0A #BB27..
000080: 0D 0A 20 20 20 20 20 20 20 53 65 74 20 65 6E 74 .. Set ent
000090: 72 79 20 69 6E 20 6E 6F 72 6D 61 6C 20 6B 65 79 ry in normal key
0000A0: 20 74 72 61 6E 73 6C 61 74 65 20 74 61 62 6C 65 translate table
0000B0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 ..... Acti
0000C0: 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 on:.... Se
0000D0: 74 20 77 68 61 74 20 63 68 61 72 61 63 74 65 72 t what character
0000E0: 20 6F 72 20 74 6F 6B 65 6E 20 61 20 6B 65 79 20 or token a key
0000F0: 77 69 6C 6C 20 62 65 20 74 72 61 6E 73 6C 61 74 will be translat
000100: 65 64 20 74 6F 20 20 77 68 65 6E 20 20 6E 65 69 ed to when nei
000110: 74 68 65 72 0D 0A 20 20 20 20 20 20 20 73 68 69 ther.. shi
000120: 66 74 20 6E 6F 72 20 63 6F 6E 74 72 6F 6C 20 69 ft nor control i
000130: 73 20 70 72 65 73 73 65 64 2E 0D 0A 0D 0A 20 20 s pressed.....
000140: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
000150: 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tions:....
000160: 20 41 20 63 6F 6E 74 61 69 6E 73 20 61 20 6B 65 A contains a ke
000170: 79 20 6E 75 6D 62 65 72 2E 0D 0A 20 20 20 20 20 y number...
000180: 20 20 42 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 B contains the
000190: 20 6E 65 77 20 74 72 61 6E 73 6C 61 74 69 6F 6E new translation
0001A0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 ..... Exit
0001B0: 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A conditions:....
0001C0: 20 20 20 20 20 20 20 41 46 20 61 6E 64 20 48 4C AF and HL
0001D0: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
0001E0: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
0001F0: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
000010: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 :.... If t
000020: 68 65 20 6B 65 79 20 6E 75 6D 62 65 72 20 69 73 he key number is
000030: 20 69 6E 76 61 6C 69 64 20 28 67 72 65 61 74 65 invalid (greate
000040: 72 20 20 74 68 61 6E 20 20 37 39 29 20 20 74 68 r than 79) th
000050: 65 6E 20 20 6E 6F 20 20 61 63 74 69 6F 6E 20 20 en no action
000060: 69 73 0D 0A 20 20 20 20 20 20 20 74 61 6B 65 6E is.. taken
000070: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 6F 73 74 ..... Most
000080: 20 76 61 6C 75 65 73 20 69 6E 20 74 68 65 20 74 values in the t
000090: 61 62 6C 65 20 61 72 65 20 74 72 65 61 74 65 64 able are treated
0000A0: 20 61 73 20 63 68 61 72 61 63 74 65 72 73 20 61 as characters a
0000B0: 6E 64 20 61 72 65 20 70 61 73 73 65 64 20 62 61 nd are passed ba
0000C0: 63 6B 0D 0A 20 20 20 20 20 20 20 74 6F 20 74 68 ck.. to th
0000D0: 65 20 75 73 65 72 2E 20 48 6F 77 65 76 65 72 2C e user. However,
0000E0: 20 74 68 65 72 65 20 61 72 65 20 63 65 72 74 61 there are certa
0000F0: 69 6E 20 73 70 65 63 69 61 6C 20 76 61 6C 75 65 in special value
000100: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s:....
000110: 20 20 20 20 20 20 23 38 30 2E 2E 23 39 46 20 20 #80..#9F
000120: 61 72 65 20 20 74 68 65 20 20 65 78 70 61 6E 73 are the expans
000130: 69 6F 6E 20 20 74 6F 6B 65 6E 73 20 20 61 6E 64 ion tokens and
000140: 20 20 61 72 65 20 20 65 78 70 61 6E 64 65 64 20 are expanded
000150: 20 74 6F 0D 0A 20 20 20 20 20 20 20 20 20 20 20 to..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 c
000170: 68 61 72 61 63 74 65 72 20 73 74 72 69 6E 67 73 haracter strings
000180: 20 77 68 65 6E 20 4B 4D 20 52 45 41 44 20 43 48 when KM READ CH
000190: 41 52 20 6F 72 20 4B 4D 20 57 41 49 54 20 43 48 AR or KM WAIT CH
0001A0: 41 52 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 AR..
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 is
0001C0: 20 63 61 6C 6C 65 64 20 61 6C 74 68 6F 75 67 68 called although
0001D0: 20 74 68 65 79 20 61 72 65 20 70 61 73 73 65 64 they are passed
0001E0: 20 20 62 61 63 6B 20 20 6C 69 6B 65 20 20 61 6E back like an
0001F0: 79 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 y..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 6F 74 68 oth
000010: 65 72 20 63 68 61 72 61 63 74 65 72 20 77 68 65 er character whe
000020: 6E 20 4B 4D 20 52 45 41 44 20 4B 45 59 20 6F 72 n KM READ KEY or
000030: 20 4B 4D 20 57 41 49 54 20 4B 45 59 20 20 69 73 KM WAIT KEY is
000040: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6C 6C call
000060: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ed.....
000070: 20 20 20 20 20 20 20 23 46 44 20 20 20 20 20 20 #FD
000080: 20 69 73 20 74 68 65 20 63 61 70 73 20 6C 6F 63 is the caps loc
000090: 6B 20 74 6F 6B 65 6E 20 61 6E 64 20 63 61 75 73 k token and caus
0000A0: 65 73 20 74 68 65 20 63 61 70 73 20 6C 6F 63 6B es the caps lock
0000B0: 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 20 20 20 to..
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000D0: 74 6F 67 67 6C 65 20 28 74 75 72 6E 20 6F 6E 20 toggle (turn on
0000E0: 69 66 20 6F 66 66 20 61 6E 64 20 76 69 63 65 20 if off and vice
0000F0: 76 65 72 73 61 29 2E 0D 0A 0D 0A 20 20 20 20 20 versa).....
000100: 20 20 20 20 20 20 20 20 20 20 20 23 46 45 20 20 #FE
000110: 20 20 20 20 20 69 73 20 74 68 65 20 73 68 69 66 is the shif
000120: 74 20 6C 6F 63 6B 20 74 6F 6B 65 6E 20 61 6E 64 t lock token and
000130: 20 63 61 75 73 65 73 20 74 68 65 20 20 73 68 69 causes the shi
000140: 66 74 20 20 6C 6F 63 6B 0D 0A 20 20 20 20 20 20 ft lock..
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 20 20 20 20 74 6F 20 74 6F 67 67 6C 65 20 28 74 to toggle (t
000170: 75 72 6E 20 6F 6E 20 69 66 20 6F 66 66 20 61 6E urn on if off an
000180: 64 20 76 69 63 65 20 76 65 72 73 61 29 2E 0D 0A d vice versa)...
000190: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0001A0: 20 20 23 46 46 20 20 20 20 20 20 20 69 73 20 74 #FF is t
0001B0: 68 65 20 69 67 6E 6F 72 65 20 74 6F 6B 65 6E 20 he ignore token
0001C0: 61 6E 64 20 6D 65 61 6E 73 20 20 74 68 65 20 20 and means the
0001D0: 6B 65 79 20 20 73 68 6F 75 6C 64 20 20 62 65 0D key should be.
0001E0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0001F0: 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6F 77 throw
Size : 512 (Real : 512)
000000: 6E 20 61 77 61 79 2E 0D 0A 0D 0A 20 20 20 20 20 n away.....
000010: 20 20 43 68 61 72 61 63 74 65 72 73 20 23 45 30 Characters #E0
000020: 2E 2E 23 46 43 20 68 61 76 65 20 73 70 65 63 69 ..#FC have speci
000030: 61 6C 20 6D 65 61 6E 69 6E 67 73 20 74 6F 20 20 al meanings to
000040: 74 68 65 20 20 42 41 53 49 43 20 20 74 6F 20 20 the BASIC to
000050: 64 6F 20 20 77 69 74 68 0D 0A 20 20 20 20 20 20 do with..
000060: 20 65 64 69 74 69 6E 67 2C 20 63 75 72 73 6F 72 editing, cursor
000070: 69 6E 67 20 61 6E 64 20 62 72 65 61 6B 73 2E 0D ing and breaks..
000080: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 65 20 ..... See
000090: 41 70 70 65 6E 64 69 78 20 49 49 20 66 6F 72 20 Appendix II for
0000A0: 61 20 66 75 6C 6C 20 6C 69 73 74 69 6E 67 20 6F a full listing o
0000B0: 66 20 74 68 65 20 64 65 66 61 75 6C 74 20 74 72 f the default tr
0000C0: 61 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 73 anslation tables
0000D0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 ....... Re
0000E0: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
0000F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4D 20 47 45 .... KM GE
000100: 54 20 54 52 41 4E 53 4C 41 54 45 0D 0A 20 20 20 T TRANSLATE..
000110: 20 20 20 20 4B 4D 20 53 45 54 20 43 4F 4E 54 52 KM SET CONTR
000120: 4F 4C 0D 0A 20 20 20 20 20 20 20 4B 4D 20 53 45 OL.. KM SE
000130: 54 20 53 48 49 46 54 0D 0A 0D 0A 0D 0A 0D 0A 0D T SHIFT.........
000140: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
000150: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
000160: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 70 61 67 65 20 31 35 2E 31 35 0D 0A page 15.15..
000190: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
0001A0: 20 20 20 31 34 3A 20 4B 4D 20 47 45 54 20 54 52 14: KM GET TR
0001B0: 41 4E 53 4C 41 54 45 20 20 20 20 20 20 20 20 20 ANSLATE
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 23 42 42 32 41 0D 0A 0D 0A 0D 0A 20 #BB2A......
0001F0: 20 20 20 20 20 20 47 65 74 20 65 6E 74 72 79 20 Get entry
Size : 512 (Real : 512)
000000: 66 72 6F 6D 20 6E 6F 72 6D 61 6C 20 74 72 61 6E from normal tran
000010: 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 2E 0D 0A slation table...
000020: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F .... Actio
000030: 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 73 6B n:.... Ask
000040: 20 77 68 61 74 20 63 68 61 72 61 63 74 65 72 20 what character
000050: 6F 72 20 74 6F 6B 65 6E 20 61 20 6B 65 79 20 77 or token a key w
000060: 69 6C 6C 20 62 65 20 74 72 61 6E 73 6C 61 74 65 ill be translate
000070: 64 20 74 6F 20 20 77 68 65 6E 20 20 6E 65 69 74 d to when neit
000080: 68 65 72 0D 0A 20 20 20 20 20 20 20 73 68 69 66 her.. shif
000090: 74 20 6E 6F 72 20 63 6F 6E 74 72 6F 6C 20 69 73 t nor control is
0000A0: 20 70 72 65 73 73 65 64 2E 0D 0A 0D 0A 20 20 20 pressed.....
0000B0: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
0000C0: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
0000D0: 41 20 63 6F 6E 74 61 69 6E 73 20 61 20 6B 65 79 A contains a key
0000E0: 20 6E 75 6D 62 65 72 0D 0A 0D 0A 20 20 20 20 20 number....
0000F0: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
000100: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 s:.... A c
000110: 6F 6E 74 61 69 6E 73 20 74 68 65 20 63 75 72 72 ontains the curr
000120: 65 6E 74 20 74 72 61 6E 73 6C 61 74 69 6F 6E 2E ent translation.
000130: 0D 0A 0D 0A 20 20 20 20 20 20 20 48 4C 20 61 6E .... HL an
000140: 64 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E d flags corrupt.
000150: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 .. All oth
000160: 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 65 er registers pre
000170: 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 served.....
000180: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 Notes:....
000190: 20 20 20 54 68 65 20 6B 65 79 20 6E 75 6D 62 65 The key numbe
0001A0: 72 20 69 73 20 6E 6F 74 20 63 68 65 63 6B 65 64 r is not checked
0001B0: 2E 20 49 66 20 69 74 20 69 73 20 69 6E 76 61 6C . If it is inval
0001C0: 69 64 20 28 67 72 65 61 74 65 72 20 74 68 61 6E id (greater than
0001D0: 20 37 39 29 20 74 68 65 6E 0D 0A 20 20 20 20 20 79) then..
0001E0: 20 20 74 68 65 20 74 72 61 6E 73 6C 61 74 69 6F the translatio
0001F0: 6E 20 72 65 74 75 72 6E 65 64 20 69 73 20 6D 65 n returned is me
Size : 512 (Real : 512)
000000: 61 6E 69 6E 67 6C 65 73 73 2E 0D 0A 0D 0A 20 20 aningless.....
000010: 20 20 20 20 20 4D 6F 73 74 20 76 61 6C 75 65 73 Most values
000020: 20 69 6E 20 74 68 65 20 74 61 62 6C 65 20 61 72 in the table ar
000030: 65 20 74 72 65 61 74 65 64 20 61 73 20 63 68 61 e treated as cha
000040: 72 61 63 74 65 72 73 20 61 6E 64 20 61 72 65 20 racters and are
000050: 70 61 73 73 65 64 20 62 61 63 6B 0D 0A 20 20 20 passed back..
000060: 20 20 20 20 74 6F 20 74 68 65 20 75 73 65 72 2E to the user.
000070: 20 48 6F 77 65 76 65 72 2C 20 74 68 65 72 65 20 However, there
000080: 61 72 65 20 63 65 72 74 61 69 6E 20 73 70 65 63 are certain spec
000090: 69 61 6C 20 76 61 6C 75 65 73 3A 0D 0A 0D 0A 20 ial values:....
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
0000B0: 38 30 2E 2E 23 39 46 20 20 61 72 65 20 20 74 68 80..#9F are th
0000C0: 65 20 20 65 78 70 61 6E 73 69 6F 6E 20 20 74 6F e expansion to
0000D0: 6B 65 6E 73 20 20 61 6E 64 20 20 61 72 65 20 20 kens and are
0000E0: 65 78 70 61 6E 64 65 64 20 20 74 6F 0D 0A 20 20 expanded to..
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 20 63 68 61 72 61 63 74 65 characte
000110: 72 20 73 74 72 69 6E 67 73 20 77 68 65 6E 20 4B r strings when K
000120: 4D 20 52 45 41 44 20 43 48 41 52 20 6F 72 20 4B M READ CHAR or K
000130: 4D 20 57 41 49 54 20 43 48 41 52 0D 0A 20 20 20 M WAIT CHAR..
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000150: 20 20 20 20 20 20 20 69 73 20 63 61 6C 6C 65 64 is called
000160: 20 61 6C 74 68 6F 75 67 68 20 74 68 65 79 20 61 although they a
000170: 72 65 20 70 61 73 73 65 64 20 20 62 61 63 6B 20 re passed back
000180: 20 6C 69 6B 65 20 20 61 6E 79 0D 0A 20 20 20 20 like any..
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001A0: 20 20 20 20 20 20 6F 74 68 65 72 20 63 68 61 72 other char
0001B0: 61 63 74 65 72 20 77 68 65 6E 20 4B 4D 20 52 45 acter when KM RE
0001C0: 41 44 20 4B 45 59 20 6F 72 20 4B 4D 20 54 45 53 AD KEY or KM TES
0001D0: 54 20 4B 45 59 20 20 69 73 0D 0A 20 20 20 20 20 T KEY is..
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001F0: 20 20 20 20 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A called.....
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 23 46 44 20 20 20 20 20 20 20 69 73 20 74 68 65 #FD is the
000020: 20 63 61 70 73 20 6C 6F 63 6B 20 74 6F 6B 65 6E caps lock token
000030: 20 61 6E 64 20 63 61 75 73 65 73 20 74 68 65 20 and causes the
000040: 63 61 70 73 20 6C 6F 63 6B 20 20 74 6F 0D 0A 20 caps lock to..
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 74 6F 67 67 6C 65 20 toggle
000070: 28 74 75 72 6E 20 6F 6E 20 69 66 20 6F 66 66 20 (turn on if off
000080: 61 6E 64 20 76 69 63 65 20 76 65 72 73 61 29 2E and vice versa).
000090: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
0000A0: 20 20 20 20 23 46 45 20 20 20 20 20 20 20 69 73 #FE is
0000B0: 20 74 68 65 20 73 68 69 66 74 20 6C 6F 63 6B 20 the shift lock
0000C0: 74 6F 6B 65 6E 20 61 6E 64 20 63 61 75 73 65 73 token and causes
0000D0: 20 74 68 65 20 20 73 68 69 66 74 20 20 6C 6F 63 the shift loc
0000E0: 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 k..
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6F 20 to
000100: 74 6F 67 67 6C 65 20 28 74 75 72 6E 20 6F 6E 20 toggle (turn on
000110: 69 66 20 6F 66 66 20 61 6E 64 20 76 69 63 65 20 if off and vice
000120: 76 65 72 73 61 29 2E 0D 0A 0D 0A 20 20 20 20 20 versa).....
000130: 20 20 20 20 20 20 20 20 20 20 20 23 46 46 20 20 #FF
000140: 20 20 20 20 20 69 73 20 74 68 65 20 69 67 6E 6F is the igno
000150: 72 65 20 74 6F 6B 65 6E 20 61 6E 64 20 6D 65 61 re token and mea
000160: 6E 73 20 20 74 68 65 20 20 6B 65 79 20 20 73 68 ns the key sh
000170: 6F 75 6C 64 20 20 62 65 0D 0A 20 20 20 20 20 20 ould be..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 74 68 72 6F 77 6E 20 61 77 61 79 2E thrown away.
0001A0: 0D 0A 0D 0A 20 20 20 20 20 20 20 43 68 61 72 61 .... Chara
0001B0: 63 74 65 72 73 20 23 45 30 2E 2E 23 46 43 20 68 cters #E0..#FC h
0001C0: 61 76 65 20 73 70 65 63 69 61 6C 20 6D 65 61 6E ave special mean
0001D0: 69 6E 67 73 20 74 6F 20 20 74 68 65 20 20 42 41 ings to the BA
0001E0: 53 49 43 20 20 74 6F 20 20 64 6F 20 20 77 69 74 SIC to do wit
0001F0: 68 0D 0A 20 20 20 20 20 20 20 65 64 69 74 69 6E h.. editin
Size : 512 (Real : 512)
000000: 67 2C 20 63 75 72 73 6F 72 69 6E 67 20 61 6E 64 g, cursoring and
000010: 20 62 72 65 61 6B 73 2E 0D 0A 0D 0A 20 20 20 20 breaks.....
000020: 20 20 20 53 65 65 20 41 70 70 65 6E 64 69 78 20 See Appendix
000030: 49 49 20 66 6F 72 20 61 20 66 75 6C 6C 20 6C 69 II for a full li
000040: 73 74 69 6E 67 20 6F 66 20 74 68 65 20 64 65 66 sting of the def
000050: 61 75 6C 74 20 74 72 61 6E 73 6C 61 74 69 6F 6E ault translation
000060: 20 74 61 62 6C 65 73 2E 0D 0A 0D 0A 20 20 20 20 tables.....
000070: 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 69 Related entri
000080: 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4D es:.... KM
000090: 20 47 45 54 20 43 4F 4E 54 52 4F 4C 0D 0A 20 20 GET CONTROL..
0000A0: 20 20 20 20 20 4B 4D 20 47 45 54 20 53 48 49 46 KM GET SHIF
0000B0: 54 0D 0A 20 20 20 20 20 20 20 4B 4D 20 53 45 54 T.. KM SET
0000C0: 20 54 52 41 4E 53 4C 41 54 45 0D 0A 0D 0A 0D 0A TRANSLATE......
0000D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
0000E0: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
0000F0: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 31 page 15.1
000120: 36 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 6..............
000130: 20 20 20 20 20 20 31 35 3A 20 4B 4D 20 53 45 54 15: KM SET
000140: 20 53 48 49 46 54 20 20 20 20 20 20 20 20 20 20 SHIFT
000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 23 42 42 32 44 0D 0A 0D 0A #BB2D....
000180: 20 20 20 20 20 20 20 53 65 74 20 65 6E 74 72 79 Set entry
000190: 20 69 6E 20 73 68 69 66 74 65 64 20 6B 65 79 20 in shifted key
0001A0: 74 72 61 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C translation tabl
0001B0: 65 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 e..... Act
0001C0: 69 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 ion:.... S
0001D0: 65 74 20 77 68 61 74 20 63 68 61 72 61 63 74 65 et what characte
0001E0: 72 20 6F 72 20 74 6F 6B 65 6E 20 61 20 6B 65 79 r or token a key
0001F0: 20 77 69 6C 6C 20 62 65 20 74 72 61 6E 73 6C 61 will be transla
Size : 512 (Real : 512)
000000: 74 65 64 20 74 6F 20 20 77 68 65 6E 20 20 63 6F ted to when co
000010: 6E 74 72 6F 6C 0D 0A 20 20 20 20 20 20 20 69 73 ntrol.. is
000020: 20 6E 6F 74 20 70 72 65 73 73 65 64 20 62 75 74 not pressed but
000030: 20 73 68 69 66 74 20 69 73 20 70 72 65 73 73 65 shift is presse
000040: 64 20 6F 72 20 73 68 69 66 74 20 6C 6F 63 6B 20 d or shift lock
000050: 69 73 20 6F 6E 3A 0D 0A 0D 0A 20 20 20 20 20 20 is on:....
000060: 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E Entry condition
000070: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 s:.... A c
000080: 6F 6E 74 61 69 6E 73 20 61 20 6B 65 79 20 6E 75 ontains a key nu
000090: 6D 62 65 72 2E 0D 0A 20 20 20 20 20 20 20 42 20 mber... B
0000A0: 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 6E 65 77 contains the new
0000B0: 20 74 72 61 6E 73 6C 61 74 69 6F 6E 2E 0D 0A 0D translation....
0000C0: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
0000D0: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 ditions:....
0000E0: 20 20 20 41 46 20 61 6E 64 20 48 4C 20 63 6F 72 AF and HL cor
0000F0: 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C rupt... Al
000100: 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 l other register
000110: 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A s preserved.....
000120: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
000130: 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 20 6B . If the k
000140: 65 79 20 6E 75 6D 62 65 72 20 69 73 20 69 6E 76 ey number is inv
000150: 61 6C 69 64 20 28 67 72 65 61 74 65 72 20 20 74 alid (greater t
000160: 68 61 6E 20 20 37 39 29 20 20 74 68 65 6E 20 20 han 79) then
000170: 6E 6F 20 20 61 63 74 69 6F 6E 20 20 69 73 0D 0A no action is..
000180: 20 20 20 20 20 20 20 74 61 6B 65 6E 2E 0D 0A 0D taken....
000190: 0A 0D 0A 20 20 20 20 20 20 20 4D 6F 73 74 20 76 ... Most v
0001A0: 61 6C 75 65 73 20 69 6E 20 74 68 65 20 74 61 62 alues in the tab
0001B0: 6C 65 20 61 72 65 20 74 72 65 61 74 65 64 20 61 le are treated a
0001C0: 73 20 63 68 61 72 61 63 74 65 72 73 20 61 6E 64 s characters and
0001D0: 20 61 72 65 20 70 61 73 73 65 64 20 62 61 63 6B are passed back
0001E0: 0D 0A 20 20 20 20 20 20 20 74 6F 20 74 68 65 20 .. to the
0001F0: 75 73 65 72 2E 20 48 6F 77 65 76 65 72 2C 20 74 user. However, t
Size : 512 (Real : 512)
000000: 68 65 72 65 20 61 72 65 20 63 65 72 74 61 69 6E here are certain
000010: 20 73 70 65 63 69 61 6C 20 76 61 6C 75 65 73 3A special values:
000020: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
000030: 20 20 20 20 23 38 30 2E 2E 23 39 46 20 20 61 72 #80..#9F ar
000040: 65 20 20 74 68 65 20 20 65 78 70 61 6E 73 69 6F e the expansio
000050: 6E 20 20 74 6F 6B 65 6E 73 20 20 61 6E 64 20 20 n tokens and
000060: 61 72 65 20 20 65 78 70 61 6E 64 65 64 20 20 74 are expanded t
000070: 6F 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 o..
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 61 cha
000090: 72 61 63 74 65 72 20 73 74 72 69 6E 67 73 20 77 racter strings w
0000A0: 68 65 6E 20 4B 4D 20 52 45 41 44 20 43 48 41 52 hen KM READ CHAR
0000B0: 20 6F 72 20 4B 4D 20 57 41 49 54 20 43 48 41 52 or KM WAIT CHAR
0000C0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 69 73 20 63 is c
0000E0: 61 6C 6C 65 64 20 61 6C 74 68 6F 75 67 68 20 74 alled although t
0000F0: 68 65 79 20 61 72 65 20 70 61 73 73 65 64 20 20 hey are passed
000100: 62 61 63 6B 20 20 6C 69 6B 65 20 20 61 6E 79 0D back like any.
000110: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
000120: 20 20 20 20 20 20 20 20 20 20 20 6F 74 68 65 72 other
000130: 20 63 68 61 72 61 63 74 65 72 20 77 68 65 6E 20 character when
000140: 4B 4D 20 52 45 41 44 20 4B 45 59 20 6F 72 20 4B KM READ KEY or K
000150: 4D 20 54 45 53 54 20 4B 45 59 20 20 69 73 0D 0A M TEST KEY is..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 20 20 63 61 6C 6C 65 64 called
000180: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 .....
000190: 20 20 20 20 20 23 46 44 20 20 20 20 20 20 20 69 #FD i
0001A0: 73 20 74 68 65 20 63 61 70 73 20 6C 6F 63 6B 20 s the caps lock
0001B0: 74 6F 6B 65 6E 20 61 6E 64 20 63 61 75 73 65 73 token and causes
0001C0: 20 74 68 65 20 63 61 70 73 20 6C 6F 63 6B 20 20 the caps lock
0001D0: 74 6F 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 to..
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6F to
0001F0: 67 67 6C 65 20 28 74 75 72 6E 20 6F 6E 20 69 66 ggle (turn on if
Size : 512 (Real : 512)
000000: 20 6F 66 66 20 61 6E 64 20 76 69 63 65 20 76 65 off and vice ve
000010: 72 73 61 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 rsa).....
000020: 20 20 20 20 20 20 20 20 20 23 46 45 20 20 20 20 #FE
000030: 20 20 20 69 73 20 74 68 65 20 73 68 69 66 74 20 is the shift
000040: 6C 6F 63 6B 20 74 6F 6B 65 6E 20 61 6E 64 20 63 lock token and c
000050: 61 75 73 65 73 20 74 68 65 20 20 73 68 69 66 74 auses the shift
000060: 20 20 6C 6F 63 6B 0D 0A 20 20 20 20 20 20 20 20 lock..
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 74 6F 20 74 6F 67 67 6C 65 20 28 74 75 72 to toggle (tur
000090: 6E 20 6F 6E 20 69 66 20 6F 66 66 20 61 6E 64 20 n on if off and
0000A0: 76 69 63 65 20 76 65 72 73 61 29 2E 0D 0A 0D 0A vice versa).....
0000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000C0: 23 46 46 20 20 20 20 20 20 20 69 73 20 74 68 65 #FF is the
0000D0: 20 69 67 6E 6F 72 65 20 74 6F 6B 65 6E 20 61 6E ignore token an
0000E0: 64 20 6D 65 61 6E 73 20 20 74 68 65 20 20 6B 65 d means the ke
0000F0: 79 20 20 73 68 6F 75 6C 64 20 20 62 65 0D 0A 20 y should be..
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 20 20 20 20 20 20 20 20 20 74 68 72 6F 77 6E 20 thrown
000120: 61 77 61 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 away.....
000130: 43 68 61 72 61 63 74 65 72 73 20 23 45 30 2E 2E Characters #E0..
000140: 23 46 43 20 68 61 76 65 20 73 70 65 63 69 61 6C #FC have special
000150: 20 6D 65 61 6E 69 6E 67 73 20 74 6F 20 20 74 68 meanings to th
000160: 65 20 20 42 41 53 49 43 20 20 74 6F 20 20 64 6F e BASIC to do
000170: 20 20 77 69 74 68 0D 0A 20 20 20 20 20 20 20 65 with.. e
000180: 64 69 74 69 6E 67 2C 20 63 75 72 73 6F 72 69 6E diting, cursorin
000190: 67 20 61 6E 64 20 62 72 65 61 6B 73 2E 0D 0A 0D g and breaks....
0001A0: 0A 0D 0A 20 20 20 20 20 20 20 53 65 65 20 41 70 ... See Ap
0001B0: 70 65 6E 64 69 78 20 49 49 20 66 6F 72 20 61 20 pendix II for a
0001C0: 66 75 6C 6C 20 6C 69 73 74 69 6E 67 20 6F 66 20 full listing of
0001D0: 74 68 65 20 64 65 66 61 75 6C 74 20 74 72 61 6E the default tran
0001E0: 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 73 2E 0D slation tables..
0001F0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
Size : 512 (Real : 512)
000000: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
000010: 0D 0A 20 20 20 20 20 20 20 4B 4D 20 47 45 54 20 .. KM GET
000020: 43 4F 4E 54 52 4F 4C 0D 0A 20 20 20 20 20 20 20 CONTROL..
000030: 4B 4D 20 47 45 54 20 53 48 49 46 54 0D 0A 20 20 KM GET SHIFT..
000040: 20 20 20 20 20 4B 4D 20 53 45 54 20 54 52 41 4E KM SET TRAN
000050: 53 4C 41 54 45 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 SLATE........
000060: 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 AMSTRAD CPC4
000070: 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 64/664/6128 FIRM
000080: 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 WARE
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 70 61 67 65 20 31 35 2E 31 37 0D 0A 0D 0A 0D 0A page 15.17......
0000B0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 ........ 1
0000C0: 36 3A 20 4B 4D 20 47 45 54 20 53 48 49 46 54 20 6: KM GET SHIFT
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 23 42 42 33 30 0D 0A 0D 0A 20 20 20 20 20 20 20 #BB30....
000110: 47 65 74 20 65 6E 74 72 79 20 66 72 6F 6D 20 73 Get entry from s
000120: 68 69 66 74 65 64 20 6B 65 79 20 74 72 61 6E 73 hifted key trans
000130: 6C 61 74 69 6F 6E 20 74 61 62 6C 65 2E 0D 0A 0D lation table....
000140: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
000150: 0A 0D 0A 20 20 20 20 20 20 20 41 73 6B 20 77 68 ... Ask wh
000160: 61 74 20 63 68 61 72 61 63 74 65 72 20 6F 72 20 at character or
000170: 74 6F 6B 65 6E 20 61 20 6B 65 79 20 77 69 6C 6C token a key will
000180: 20 62 65 20 74 72 61 6E 73 6C 61 74 65 64 20 74 be translated t
000190: 6F 20 20 77 68 65 6E 20 20 63 6F 6E 74 72 6F 6C o when control
0001A0: 0D 0A 20 20 20 20 20 20 20 69 73 20 6E 6F 74 20 .. is not
0001B0: 70 72 65 73 73 65 64 20 62 75 74 20 73 68 69 66 pressed but shif
0001C0: 74 20 69 73 20 70 72 65 73 73 65 64 20 6F 72 20 t is pressed or
0001D0: 73 68 69 66 74 20 6C 6F 63 6B 20 69 73 20 6F 6E shift lock is on
0001E0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
0001F0: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
Size : 512 (Real : 512)
000000: 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 . A contai
000010: 6E 73 20 61 20 6B 65 79 20 6E 75 6D 62 65 72 2E ns a key number.
000020: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
000030: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
000040: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
000050: 20 74 68 65 20 63 75 72 72 65 6E 74 20 74 72 61 the current tra
000060: 6E 73 6C 61 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 20 nslation.....
000070: 20 20 20 20 48 4C 20 61 6E 64 20 66 6C 61 67 73 HL and flags
000080: 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 corrupt...
000090: 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 All other regi
0000A0: 73 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E sters preserved.
0000B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 .... Notes
0000C0: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 :.... The
0000D0: 6B 65 79 20 6E 75 6D 62 65 72 20 69 73 20 6E 6F key number is no
0000E0: 74 20 63 68 65 63 6B 65 64 2E 20 49 66 20 69 74 t checked. If it
0000F0: 20 69 73 20 69 6E 76 61 6C 69 64 20 28 67 72 65 is invalid (gre
000100: 61 74 65 72 20 74 68 61 6E 20 37 39 29 20 74 68 ater than 79) th
000110: 65 6E 0D 0A 20 20 20 20 20 20 20 74 68 65 20 74 en.. the t
000120: 72 61 6E 73 6C 61 74 69 6F 6E 20 72 65 74 75 72 ranslation retur
000130: 6E 65 64 20 69 73 20 6D 65 61 6E 69 6E 67 6C 65 ned is meaningle
000140: 73 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 6F ss..... Mo
000150: 73 74 20 76 61 6C 75 65 73 20 69 6E 20 74 68 65 st values in the
000160: 20 74 61 62 6C 65 20 61 72 65 20 74 72 65 61 74 table are treat
000170: 65 64 20 61 73 20 63 68 61 72 61 63 74 65 72 73 ed as characters
000180: 20 61 6E 64 20 61 72 65 20 70 61 73 73 65 64 20 and are passed
000190: 62 61 63 6B 0D 0A 20 20 20 20 20 20 20 74 6F 20 back.. to
0001A0: 74 68 65 20 75 73 65 72 2E 20 48 6F 77 65 76 65 the user. Howeve
0001B0: 72 2C 20 74 68 65 72 65 20 61 72 65 20 63 65 72 r, there are cer
0001C0: 74 61 69 6E 20 73 70 65 63 69 61 6C 20 76 61 6C tain special val
0001D0: 75 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ues:....
0001E0: 20 20 20 20 20 20 20 20 23 38 30 2E 2E 23 39 46 #80..#9F
0001F0: 20 20 61 72 65 20 20 74 68 65 20 20 65 78 70 61 are the expa
Size : 512 (Real : 512)
000000: 6E 73 69 6F 6E 20 20 74 6F 6B 65 6E 73 20 20 61 nsion tokens a
000010: 6E 64 20 20 61 72 65 20 20 65 78 70 61 6E 64 65 nd are expande
000020: 64 20 20 74 6F 0D 0A 0D 0A 20 20 20 20 20 20 20 d to....
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 63 68 61 72 61 63 74 65 72 20 73 74 72 character str
000050: 69 6E 67 73 20 77 68 65 6E 20 4B 4D 20 52 45 41 ings when KM REA
000060: 44 20 43 48 41 52 20 6F 72 20 4B 4D 20 57 41 49 D CHAR or KM WAI
000070: 54 20 43 48 41 52 0D 0A 20 20 20 20 20 20 20 20 T CHAR..
000080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000090: 20 20 69 73 20 63 61 6C 6C 65 64 20 61 6C 74 68 is called alth
0000A0: 6F 75 67 68 20 74 68 65 79 20 61 72 65 20 70 61 ough they are pa
0000B0: 73 73 65 64 20 20 62 61 63 6B 20 20 6C 69 6B 65 ssed back like
0000C0: 20 20 61 6E 79 0D 0A 20 20 20 20 20 20 20 20 20 any..
0000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000E0: 20 6F 74 68 65 72 20 63 68 61 72 61 63 74 65 72 other character
0000F0: 20 77 68 65 6E 20 4B 4D 20 52 45 41 44 20 4B 45 when KM READ KE
000100: 59 20 6F 72 20 4B 4D 20 54 45 53 54 20 4B 45 59 Y or KM TEST KEY
000110: 20 20 69 73 0D 0A 20 20 20 20 20 20 20 20 20 20 is..
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 63 61 6C 6C 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 called.....
000140: 20 20 20 20 20 20 20 20 20 20 20 23 46 44 20 20 #FD
000150: 20 20 20 20 20 69 73 20 74 68 65 20 63 61 70 73 is the caps
000160: 20 6C 6F 63 6B 20 74 6F 6B 65 6E 20 61 6E 64 20 lock token and
000170: 63 61 75 73 65 73 20 74 68 65 20 63 61 70 73 20 causes the caps
000180: 6C 6F 63 6B 20 20 74 6F 0D 0A 20 20 20 20 20 20 lock to..
000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001A0: 20 20 20 20 74 6F 67 67 6C 65 20 28 74 75 72 6E toggle (turn
0001B0: 20 6F 6E 20 69 66 20 6F 66 66 20 61 6E 64 20 76 on if off and v
0001C0: 69 63 65 20 76 65 72 73 61 29 2E 0D 0A 0D 0A 20 ice versa).....
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
0001E0: 46 45 20 20 20 20 20 20 20 69 73 20 74 68 65 20 FE is the
0001F0: 73 68 69 66 74 20 6C 6F 63 6B 20 74 6F 6B 65 6E shift lock token
Size : 512 (Real : 512)
000000: 20 61 6E 64 20 63 61 75 73 65 73 20 74 68 65 20 and causes the
000010: 20 73 68 69 66 74 20 20 6C 6F 63 6B 0D 0A 20 20 shift lock..
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 20 20 20 20 74 6F 20 74 6F 67 67 6C to toggl
000040: 65 20 28 74 75 72 6E 20 6F 6E 20 69 66 20 6F 66 e (turn on if of
000050: 66 20 61 6E 64 20 76 69 63 65 20 76 65 72 73 61 f and vice versa
000060: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ).....
000070: 20 20 20 20 20 20 23 46 46 20 20 20 20 20 20 20 #FF
000080: 69 73 20 74 68 65 20 69 67 6E 6F 72 65 20 74 6F is the ignore to
000090: 6B 65 6E 20 61 6E 64 20 6D 65 61 6E 73 20 20 74 ken and means t
0000A0: 68 65 20 20 6B 65 79 20 20 73 68 6F 75 6C 64 20 he key should
0000B0: 20 62 65 0D 0A 20 20 20 20 20 20 20 20 20 20 20 be..
0000C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
0000D0: 68 72 6F 77 6E 20 61 77 61 79 2E 0D 0A 0D 0A 20 hrown away.....
0000E0: 20 20 20 20 20 20 43 68 61 72 61 63 74 65 72 73 Characters
0000F0: 20 23 45 30 2E 2E 23 46 43 20 68 61 76 65 20 73 #E0..#FC have s
000100: 70 65 63 69 61 6C 20 6D 65 61 6E 69 6E 67 73 20 pecial meanings
000110: 74 6F 20 20 74 68 65 20 20 42 41 53 49 43 20 20 to the BASIC
000120: 74 6F 20 20 64 6F 20 20 77 69 74 68 0D 0A 20 20 to do with..
000130: 20 20 20 20 20 65 64 69 74 69 6E 67 2C 20 63 75 editing, cu
000140: 72 73 6F 72 69 6E 67 20 61 6E 64 20 62 72 65 61 rsoring and brea
000150: 6B 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 ks..... Se
000160: 65 20 41 70 70 65 6E 64 69 78 20 49 49 20 66 6F e Appendix II fo
000170: 72 20 61 20 66 75 6C 6C 20 6C 69 73 74 69 6E 67 r a full listing
000180: 20 6F 66 20 74 68 65 20 64 65 66 61 75 6C 74 20 of the default
000190: 74 72 61 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C translation tabl
0001A0: 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 es..... Re
0001B0: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
0001C0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4D 20 47 45 .... KM GE
0001D0: 54 20 43 4F 4E 54 52 4F 4C 0D 0A 20 20 20 20 20 T CONTROL..
0001E0: 20 20 4B 4D 20 47 45 54 20 53 48 49 46 54 0D 0A KM GET SHIFT..
0001F0: 20 20 20 20 20 20 20 4B 4D 20 53 45 54 20 54 52 KM SET TR
Size : 512 (Real : 512)
000000: 41 4E 53 4C 41 54 45 0D 0A 0D 0A 0D 0A 0D 0A 0D ANSLATE.........
000010: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
000020: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
000030: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 20 20 20 20 70 61 67 65 20 31 35 2E 31 38 0D 0A page 15.18..
000060: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000070: 20 20 20 31 37 3A 20 4B 4D 20 53 45 54 20 43 4F 17: KM SET CO
000080: 4E 54 52 4F 4C 20 20 20 20 20 20 20 20 20 20 20 NTROL
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000B0: 20 20 20 20 23 42 42 33 33 0D 0A 0D 0A 20 20 20 #BB33....
0000C0: 20 20 20 20 53 65 74 20 65 6E 74 72 79 20 69 6E Set entry in
0000D0: 20 63 6F 6E 74 72 6F 6C 20 6B 65 79 20 74 72 61 control key tra
0000E0: 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 2E 0D nslation table..
0000F0: 0A 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E ... Action
000100: 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 :.... Set
000110: 61 20 63 68 61 72 61 63 74 65 72 20 6F 72 20 74 a character or t
000120: 6F 6B 65 6E 20 61 20 6B 65 79 20 77 69 6C 6C 20 oken a key will
000130: 62 65 20 74 72 61 6E 73 6C 61 74 65 64 20 74 6F be translated to
000140: 20 77 68 65 6E 20 20 63 6F 6E 74 72 6F 6C 20 20 when control
000150: 69 73 0D 0A 20 20 20 20 20 20 20 70 72 65 73 73 is.. press
000160: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ed..... En
000170: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
000180: 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 ... A cont
000190: 61 69 6E 73 20 61 20 6B 65 79 20 6E 75 6D 62 65 ains a key numbe
0001A0: 72 2E 0D 0A 20 20 20 20 20 20 20 42 20 63 6F 6E r... B con
0001B0: 74 61 69 6E 73 20 74 68 65 20 6E 65 77 20 74 72 tains the new tr
0001C0: 61 6E 73 6C 61 74 69 6F 6E 2E 0D 0A 0D 0A 20 20 anslation.....
0001D0: 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 74 Exit condit
0001E0: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
0001F0: 41 46 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 AF and HL corrup
Size : 512 (Real : 512)
000000: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
000010: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
000020: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 reserved.....
000030: 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 Notes:....
000040: 20 20 20 20 20 49 66 20 74 68 65 20 6B 65 79 20 If the key
000050: 6E 75 6D 62 65 72 20 69 73 20 69 6E 76 61 6C 69 number is invali
000060: 64 20 28 67 72 65 61 74 65 72 20 20 74 68 61 6E d (greater than
000070: 20 20 37 39 29 20 20 74 68 65 6E 20 20 6E 6F 20 79) then no
000080: 20 61 63 74 69 6F 6E 20 20 69 73 0D 0A 20 20 20 action is..
000090: 20 20 20 20 74 61 6B 65 6E 2E 0D 0A 0D 0A 20 20 taken.....
0000A0: 20 20 20 20 20 4D 6F 73 74 20 76 61 6C 75 65 73 Most values
0000B0: 20 69 6E 20 74 68 65 20 74 61 62 6C 65 20 61 72 in the table ar
0000C0: 65 20 74 72 65 61 74 65 64 20 61 73 20 63 68 61 e treated as cha
0000D0: 72 61 63 74 65 72 73 20 61 6E 64 20 61 72 65 20 racters and are
0000E0: 70 61 73 73 65 64 20 62 61 63 6B 0D 0A 20 20 20 passed back..
0000F0: 20 20 20 20 74 6F 20 74 68 65 20 75 73 65 72 2E to the user.
000100: 20 48 6F 77 65 76 65 72 2C 20 74 68 65 72 65 20 However, there
000110: 61 72 65 20 63 65 72 74 61 69 6E 20 73 70 65 63 are certain spec
000120: 69 61 6C 20 76 61 6C 75 65 73 3A 0D 0A 0D 0A 20 ial values:....
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
000140: 38 30 2E 2E 23 39 46 20 20 61 72 65 20 20 74 68 80..#9F are th
000150: 65 20 20 65 78 70 61 6E 73 69 6F 6E 20 20 74 6F e expansion to
000160: 6B 65 6E 73 20 20 61 6E 64 20 20 61 72 65 20 20 kens and are
000170: 65 78 70 61 6E 64 65 64 20 20 74 6F 0D 0A 20 20 expanded to..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 20 20 20 20 63 68 61 72 61 63 74 65 characte
0001A0: 72 20 73 74 72 69 6E 67 73 20 77 68 65 6E 20 4B r strings when K
0001B0: 4D 20 52 45 41 44 20 43 48 41 52 20 6F 72 20 4B M READ CHAR or K
0001C0: 4D 20 57 41 49 54 20 43 48 41 52 0D 0A 20 20 20 M WAIT CHAR..
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 69 73 20 63 61 6C 6C 65 64 is called
0001F0: 20 61 6C 74 68 6F 75 67 68 20 74 68 65 79 20 61 although they a
Size : 512 (Real : 512)
000000: 72 65 20 70 61 73 73 65 64 20 20 62 61 63 6B 20 re passed back
000010: 20 6C 69 6B 65 20 20 61 6E 79 0D 0A 20 20 20 20 like any..
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 20 20 6F 74 68 65 72 20 63 68 61 72 other char
000040: 61 63 74 65 72 20 77 68 65 6E 20 4B 4D 20 52 45 acter when KM RE
000050: 41 44 20 4B 45 59 20 6F 72 20 4B 4D 20 54 45 53 AD KEY or KM TES
000060: 54 20 4B 45 59 20 20 69 73 0D 0A 20 20 20 20 20 T KEY is..
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 20 20 20 20 20 63 61 6C 6C 65 64 2E 0D 0A 0D 0A called.....
000090: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0000A0: 20 20 23 46 44 20 20 20 20 20 20 20 69 73 20 74 #FD is t
0000B0: 68 65 20 63 61 70 73 20 6C 6F 63 6B 20 74 6F 6B he caps lock tok
0000C0: 65 6E 20 61 6E 64 20 63 61 75 73 65 73 20 74 68 en and causes th
0000D0: 65 20 63 61 70 73 20 6C 6F 63 6B 20 20 74 6F 0D e caps lock to.
0000E0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0000F0: 20 20 20 20 20 20 20 20 20 20 20 74 6F 67 67 6C toggl
000100: 65 20 28 74 75 72 6E 20 6F 6E 20 69 66 20 6F 66 e (turn on if of
000110: 66 20 61 6E 64 20 76 69 63 65 20 76 65 72 73 61 f and vice versa
000120: 29 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ).....
000130: 20 20 20 20 20 20 23 46 45 20 20 20 20 20 20 20 #FE
000140: 69 73 20 74 68 65 20 73 68 69 66 74 20 6C 6F 63 is the shift loc
000150: 6B 20 74 6F 6B 65 6E 20 61 6E 64 20 63 61 75 73 k token and caus
000160: 65 73 20 74 68 65 20 20 73 68 69 66 74 20 20 6C es the shift l
000170: 6F 63 6B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ock..
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
000190: 6F 20 74 6F 67 67 6C 65 20 28 74 75 72 6E 20 6F o toggle (turn o
0001A0: 6E 20 69 66 20 6F 66 66 20 61 6E 64 20 76 69 63 n if off and vic
0001B0: 65 20 76 65 72 73 61 29 2E 0D 0A 0D 0A 20 20 20 e versa).....
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 46 46 #FF
0001D0: 20 20 20 20 20 20 20 69 73 20 74 68 65 20 69 67 is the ig
0001E0: 6E 6F 72 65 20 74 6F 6B 65 6E 20 61 6E 64 20 6D nore token and m
0001F0: 65 61 6E 73 20 20 74 68 65 20 20 6B 65 79 20 20 eans the key
Size : 512 (Real : 512)
000000: 73 68 6F 75 6C 64 20 20 62 65 0D 0A 20 20 20 20 should be..
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 74 68 72 6F 77 6E 20 61 77 61 thrown awa
000030: 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 43 68 61 y..... Cha
000040: 72 61 63 74 65 72 73 20 23 45 30 2E 2E 23 46 43 racters #E0..#FC
000050: 20 68 61 76 65 20 73 70 65 63 69 61 6C 20 6D 65 have special me
000060: 61 6E 69 6E 67 73 20 74 6F 20 20 74 68 65 20 20 anings to the
000070: 42 41 53 49 43 20 20 74 6F 20 20 64 6F 20 20 77 BASIC to do w
000080: 69 74 68 0D 0A 20 20 20 20 20 20 20 65 64 69 74 ith.. edit
000090: 69 6E 67 2C 20 63 75 72 73 6F 72 69 6E 67 20 61 ing, cursoring a
0000A0: 6E 64 20 62 72 65 61 6B 73 2E 0D 0A 0D 0A 20 20 nd breaks.....
0000B0: 20 20 20 20 20 53 65 65 20 41 70 70 65 6E 64 69 See Appendi
0000C0: 78 20 49 49 20 66 6F 72 20 61 20 66 75 6C 6C 20 x II for a full
0000D0: 6C 69 73 74 69 6E 67 20 6F 66 20 74 68 65 20 64 listing of the d
0000E0: 65 66 61 75 6C 74 20 74 72 61 6E 73 6C 61 74 69 efault translati
0000F0: 6F 6E 20 74 61 62 6C 65 73 2E 0D 0A 0D 0A 0D 0A on tables.......
000100: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
000110: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 ntries:....
000120: 20 20 4B 4D 20 47 45 54 20 43 4F 4E 54 52 4F 4C KM GET CONTROL
000130: 0D 0A 20 20 20 20 20 20 20 4B 4D 20 47 45 54 20 .. KM GET
000140: 53 48 49 46 54 0D 0A 20 20 20 20 20 20 20 4B 4D SHIFT.. KM
000150: 20 53 45 54 20 54 52 41 4E 53 4C 41 54 45 0D 0A SET TRANSLATE..
000160: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ..........
000170: 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F AMSTRAD CPC464/
000180: 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 664/6128 FIRMWAR
000190: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
0001A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 67 pag
0001B0: 65 20 31 35 2E 31 39 0D 0A 0D 0A 0D 0A 0D 0A 0D e 15.19.........
0001C0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 31 38 3A 20 ..... 18:
0001D0: 4B 4D 20 47 45 54 20 43 4F 4E 54 52 4F 4C 20 20 KM GET CONTROL
0001E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 42 42 #BB
000010: 33 36 0D 0A 0D 0A 20 20 20 20 20 20 20 47 65 74 36.... Get
000020: 20 65 6E 74 72 79 20 66 72 6F 6D 20 63 6F 6E 74 entry from cont
000030: 72 6F 6C 20 6B 65 79 20 74 72 61 6E 73 6C 61 74 rol key translat
000040: 69 6F 6E 20 74 61 62 6C 65 2E 0D 0A 0D 0A 20 20 ion table.....
000050: 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A Action:....
000060: 20 20 20 20 20 20 20 41 73 6B 20 77 68 61 74 20 Ask what
000070: 61 20 63 68 61 72 61 63 74 65 72 20 6F 72 20 74 a character or t
000080: 6F 6B 65 6E 20 61 20 6B 65 79 20 77 69 6C 6C 20 oken a key will
000090: 62 65 20 74 72 61 6E 73 6C 61 74 65 64 20 74 6F be translated to
0000A0: 20 77 68 65 6E 20 63 6F 6E 74 72 6F 6C 0D 0A 20 when control..
0000B0: 20 20 20 20 20 20 69 73 20 70 72 65 73 73 65 64 is pressed
0000C0: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
0000D0: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
0000E0: 0A 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 . A contai
0000F0: 6E 73 20 61 20 6B 65 79 20 6E 75 6D 62 65 72 2E ns a key number.
000100: 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 .... Exit
000110: 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 conditions:....
000120: 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E 73 A contains
000130: 20 74 68 65 20 63 75 72 72 65 6E 74 20 74 72 61 the current tra
000140: 6E 73 6C 61 74 69 6F 6E 2E 0D 0A 20 20 20 20 20 nslation...
000150: 20 20 48 4C 20 61 6E 64 20 66 6C 61 67 73 20 63 HL and flags c
000160: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
000170: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
000180: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
000190: 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D .. Notes:.
0001A0: 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 6B 65 ... The ke
0001B0: 79 20 6E 75 6D 62 65 72 20 69 73 20 6E 6F 74 20 y number is not
0001C0: 63 68 65 63 6B 65 64 2E 20 49 66 20 69 74 20 69 checked. If it i
0001D0: 73 20 69 6E 76 61 6C 69 64 20 28 67 72 65 61 74 s invalid (great
0001E0: 65 72 20 74 68 61 6E 20 37 39 29 20 74 68 65 6E er than 79) then
0001F0: 0D 0A 20 20 20 20 20 20 20 74 68 65 20 74 72 61 .. the tra
Size : 512 (Real : 512)
000000: 6E 73 6C 61 74 69 6F 6E 20 72 65 74 75 72 6E 65 nslation returne
000010: 64 20 69 73 20 6D 65 61 6E 69 6E 67 6C 65 73 73 d is meaningless
000020: 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4D 6F 73 74 ..... Most
000030: 20 76 61 6C 75 65 73 20 69 6E 20 74 68 65 20 74 values in the t
000040: 61 62 6C 65 20 61 72 65 20 74 72 65 61 74 65 64 able are treated
000050: 20 61 73 20 63 68 61 72 61 63 74 65 72 73 20 61 as characters a
000060: 6E 64 20 61 72 65 20 70 61 73 73 65 64 20 62 61 nd are passed ba
000070: 63 6B 0D 0A 20 20 20 20 20 20 20 74 6F 20 74 68 ck.. to th
000080: 65 20 75 73 65 72 2E 20 48 6F 77 65 76 65 72 2C e user. However,
000090: 20 74 68 65 72 65 20 61 72 65 20 63 65 72 74 61 there are certa
0000A0: 69 6E 20 73 70 65 63 69 61 6C 20 76 61 6C 75 65 in special value
0000B0: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 s:....
0000C0: 20 20 20 20 20 20 23 38 30 2E 2E 23 39 46 20 20 #80..#9F
0000D0: 61 72 65 20 20 74 68 65 20 20 65 78 70 61 6E 73 are the expans
0000E0: 69 6F 6E 20 20 74 6F 6B 65 6E 73 20 20 61 6E 64 ion tokens and
0000F0: 20 20 61 72 65 20 20 65 78 70 61 6E 64 65 64 20 are expanded
000100: 20 74 6F 0D 0A 20 20 20 20 20 20 20 20 20 20 20 to..
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 c
000120: 68 61 72 61 63 74 65 72 20 73 74 72 69 6E 67 73 haracter strings
000130: 20 77 68 65 6E 20 4B 4D 20 52 45 41 44 20 43 48 when KM READ CH
000140: 41 52 20 6F 72 20 4B 4D 20 57 41 49 54 20 43 48 AR or KM WAIT CH
000150: 41 52 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 AR..
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 is
000170: 20 63 61 6C 6C 65 64 20 61 6C 74 68 6F 75 67 68 called although
000180: 20 74 68 65 79 20 61 72 65 20 70 61 73 73 65 64 they are passed
000190: 20 20 62 61 63 6B 20 20 6C 69 6B 65 20 20 61 6E back like an
0001A0: 79 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 y..
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 6F 74 68 oth
0001C0: 65 72 20 63 68 61 72 61 63 74 65 72 20 77 68 65 er character whe
0001D0: 6E 20 4B 4D 20 52 45 41 44 20 4B 45 59 20 6F 72 n KM READ KEY or
0001E0: 20 4B 4D 20 54 45 53 54 20 4B 45 59 20 20 69 73 KM TEST KEY is
0001F0: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6C 6C call
000010: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 ed.....
000020: 20 20 20 20 20 20 20 23 46 44 20 20 20 20 20 20 #FD
000030: 20 69 73 20 74 68 65 20 63 61 70 73 20 6C 6F 63 is the caps loc
000040: 6B 20 74 6F 6B 65 6E 20 61 6E 64 20 63 61 75 73 k token and caus
000050: 65 73 20 74 68 65 20 63 61 70 73 20 6C 6F 63 6B es the caps lock
000060: 20 20 74 6F 0D 0A 20 20 20 20 20 20 20 20 20 20 to..
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000080: 74 6F 67 67 6C 65 20 28 74 75 72 6E 20 6F 6E 20 toggle (turn on
000090: 69 66 20 6F 66 66 20 61 6E 64 20 76 69 63 65 20 if off and vice
0000A0: 76 65 72 73 61 29 2E 0D 0A 0D 0A 20 20 20 20 20 versa).....
0000B0: 20 20 20 20 20 20 20 20 20 20 20 23 46 45 20 20 #FE
0000C0: 20 20 20 20 20 69 73 20 74 68 65 20 73 68 69 66 is the shif
0000D0: 74 20 6C 6F 63 6B 20 74 6F 6B 65 6E 20 61 6E 64 t lock token and
0000E0: 20 63 61 75 73 65 73 20 74 68 65 20 20 73 68 69 causes the shi
0000F0: 66 74 20 20 6C 6F 63 6B 0D 0A 20 20 20 20 20 20 ft lock..
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 20 20 20 20 74 6F 20 74 6F 67 67 6C 65 20 28 74 to toggle (t
000120: 75 72 6E 20 6F 6E 20 69 66 20 6F 66 66 20 61 6E urn on if off an
000130: 64 20 76 69 63 65 20 76 65 72 73 61 29 2E 0D 0A d vice versa)...
000140: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000150: 20 20 23 46 46 20 20 20 20 20 20 20 69 73 20 74 #FF is t
000160: 68 65 20 69 67 6E 6F 72 65 20 74 6F 6B 65 6E 20 he ignore token
000170: 61 6E 64 20 6D 65 61 6E 73 20 20 74 68 65 20 20 and means the
000180: 6B 65 79 20 20 73 68 6F 75 6C 64 20 20 62 65 0D key should be.
000190: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0001A0: 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6F 77 throw
0001B0: 6E 20 61 77 61 79 2E 0D 0A 0D 0A 20 20 20 20 20 n away.....
0001C0: 20 20 43 68 61 72 61 63 74 65 72 73 20 23 45 30 Characters #E0
0001D0: 2E 2E 23 46 43 20 68 61 76 65 20 73 70 65 63 69 ..#FC have speci
0001E0: 61 6C 20 6D 65 61 6E 69 6E 67 73 20 74 6F 20 20 al meanings to
0001F0: 74 68 65 20 20 42 41 53 49 43 20 20 74 6F 20 20 the BASIC to
Size : 512 (Real : 512)
000000: 64 6F 20 20 77 69 74 68 0D 0A 20 20 20 20 20 20 do with..
000010: 20 65 64 69 74 69 6E 67 2C 20 63 75 72 73 6F 72 editing, cursor
000020: 69 6E 67 20 61 6E 64 20 62 72 65 61 6B 73 2E 0D ing and breaks..
000030: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 65 20 ..... See
000040: 41 70 70 65 6E 64 69 78 20 49 49 20 66 6F 72 20 Appendix II for
000050: 61 20 66 75 6C 6C 20 6C 69 73 74 69 6E 67 20 6F a full listing o
000060: 66 20 74 68 65 20 64 65 66 61 75 6C 74 20 74 72 f the default tr
000070: 61 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 73 anslation tables
000080: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 ....... Re
000090: 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A lated entries:..
0000A0: 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4D 20 47 45 .... KM GE
0000B0: 54 20 43 4F 4E 54 52 4F 4C 0D 0A 20 20 20 20 20 T CONTROL..
0000C0: 20 20 4B 4D 20 47 45 54 20 53 48 49 46 54 0D 0A KM GET SHIFT..
0000D0: 20 20 20 20 20 20 20 4B 4D 20 53 45 54 20 54 52 KM SET TR
0000E0: 41 4E 53 4C 41 54 45 0D 0A 0D 0A 0D 0A 0D 0A 0D ANSLATE.........
0000F0: 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 20 . AMSTRAD
000100: 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 20 CPC464/664/6128
000110: 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 20 FIRMWARE
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 70 61 67 65 20 31 35 2E 32 30 0D 0A page 15.20..
000140: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000150: 20 20 20 31 39 3A 20 4B 4D 20 53 45 54 20 52 45 19: KM SET RE
000160: 50 45 41 54 20 20 20 20 20 20 20 20 20 20 20 20 PEAT
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 23 42 42 33 39 0D 0A 0D 0A 0D 0A 20 #BB39......
0001A0: 20 20 20 20 20 20 53 65 74 20 77 68 65 74 68 65 Set whethe
0001B0: 72 20 61 20 6B 65 79 20 6D 61 79 20 72 65 70 65 r a key may repe
0001C0: 61 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 at.......
0001D0: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
0001E0: 20 20 20 20 53 65 74 20 74 68 65 20 65 6E 74 72 Set the entr
0001F0: 79 20 69 6E 20 74 68 65 20 72 65 70 65 61 74 69 y in the repeati
Size : 512 (Real : 512)
000000: 6E 67 20 6B 65 79 20 6D 61 70 20 74 68 61 74 20 ng key map that
000010: 64 65 74 65 72 6D 69 6E 65 73 20 77 68 65 74 68 determines wheth
000020: 65 72 20 20 61 20 20 6B 65 79 0D 0A 20 20 20 20 er a key..
000030: 20 20 20 69 73 20 61 6C 6C 6F 77 65 64 20 74 6F is allowed to
000040: 20 72 65 70 65 61 74 20 6F 72 20 6E 6F 74 2E 0D repeat or not..
000050: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 ..... Entr
000060: 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D y conditions:...
000070: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
000080: 20 6B 65 79 20 69 73 20 74 6F 20 62 65 20 61 6C key is to be al
000090: 6C 6F 77 65 64 20 74 6F 20 72 65 70 65 61 74 3A lowed to repeat:
0000A0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 ......
0000B0: 20 20 20 20 20 20 42 20 63 6F 6E 74 61 69 6E 73 B contains
0000C0: 20 23 46 46 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 #FF.......
0000D0: 20 20 49 66 20 74 68 65 20 6B 65 79 20 69 73 20 If the key is
0000E0: 6E 6F 74 20 74 6F 20 62 65 20 61 6C 6C 6F 77 65 not to be allowe
0000F0: 64 20 74 6F 20 72 65 70 65 61 74 3A 0D 0A 0D 0A d to repeat:....
000100: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000110: 20 20 42 20 63 6F 6E 74 61 69 6E 73 20 23 30 30 B contains #00
000120: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 ...... Alw
000130: 61 79 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ays:......
000140: 20 20 20 20 20 20 20 20 20 20 41 20 63 6F 6E 74 A cont
000150: 61 69 6E 73 20 74 68 65 20 6B 65 79 20 6E 75 6D ains the key num
000160: 62 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ber.......
000170: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
000180: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
000190: 2C 42 43 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 ,BC and HL corru
0001A0: 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 pt... All
0001B0: 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 other registers
0001C0: 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A preserved.......
0001D0: 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D Notes:...
0001E0: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
0001F0: 20 6B 65 79 20 6E 75 6D 62 65 72 20 69 73 20 69 key number is i
Size : 512 (Real : 512)
000000: 6E 76 61 6C 69 64 20 28 67 72 65 61 74 65 72 20 nvalid (greater
000010: 20 74 68 61 6E 20 20 37 39 29 20 20 74 68 65 6E than 79) then
000020: 20 20 6E 6F 20 20 61 63 74 69 6F 6E 20 20 69 73 no action is
000030: 0D 0A 20 20 20 20 20 20 20 74 61 6B 65 6E 2E 0D .. taken..
000040: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 ..... The
000050: 64 65 66 61 75 6C 74 20 72 65 70 65 61 74 69 6E default repeatin
000060: 67 20 6B 65 79 73 20 61 72 65 20 6C 69 73 74 65 g keys are liste
000070: 64 20 69 6E 20 41 70 70 65 6E 64 69 78 20 49 49 d in Appendix II
000080: 49 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 I....... R
000090: 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D elated entries:.
0000A0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4D 20 47 ..... KM G
0000B0: 45 54 20 52 45 50 45 41 54 0D 0A 20 20 20 20 20 ET REPEAT..
0000C0: 20 20 4B 4D 20 53 45 54 20 44 45 4C 41 59 0D 0A KM SET DELAY..
0000D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 ...... AMS
0000E0: 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F TRAD CPC464/664/
0000F0: 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 6128 FIRMWARE
000100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000110: 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 35 page 15
000120: 2E 32 31 0D 0A 1A 20 20 20 20 20 20 20 20 20 20 .21...
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000150: 20 20 20 20 23 42 42 31 45 0D 0A 0D 0A 20 20 20 #BB1E....
000160: 20 20 20 20 54 65 73 74 20 69 66 20 61 20 6B 65 Test if a ke
000170: 79 20 69 73 20 70 72 65 73 73 65 64 2E 0D 0A 0D y is pressed....
000180: 00 43 48 41 50 2D 31 34 20 50 33 20 00 00 00 27 .CHAP-14 P3 ...'
000190: 7E 7F 80 81 82 00 00 00 00 00 00 00 00 00 00 00 ~...............
0001A0: 00 43 48 41 50 2D 31 35 20 50 31 20 00 00 00 7F .CHAP-15 P1 ....
0001B0: 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 ................
0001C0: 00 43 48 41 50 2D 31 35 20 24 24 24 00 00 00 80 .CHAP-15 $$$....
0001D0: 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 ................
0001E0: E5 43 48 41 50 2D 31 35 20 50 32 20 01 00 00 07 .CHAP-15 P2 ....
0001F0: A3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Size : 512 (Real : 512)
000000: 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A . Notes:..
000010: 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 .... If th
000020: 65 20 6B 65 79 20 6E 75 6D 62 65 72 20 69 73 20 e key number is
000030: 69 6E 76 61 6C 69 64 20 28 67 72 65 61 74 65 72 invalid (greater
000040: 20 20 74 68 61 6E 20 20 37 39 29 20 20 74 68 65 than 79) the
000050: 6E 20 20 6E 6F 20 20 61 63 74 69 6F 6E 20 20 69 n no action i
000060: 73 0D 0A 20 20 20 20 20 20 20 74 61 6B 65 6E 2E s.. taken.
000070: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
000080: 20 64 65 66 61 75 6C 74 20 72 65 70 65 61 74 69 default repeati
000090: 6E 67 20 6B 65 79 73 20 61 72 65 20 6C 69 73 74 ng keys are list
0000A0: 65 64 20 69 6E 20 41 70 70 65 6E 64 69 78 20 49 ed in Appendix I
0000B0: 49 49 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 II.......
0000C0: 52 65 6C 61 74 65 64 20 65 6E 74 72 69 65 73 3A Related entries:
0000D0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4B 4D 20 ...... KM
0000E0: 47 45 54 20 52 45 50 45 41 54 0D 0A 20 20 20 20 GET REPEAT..
0000F0: 20 20 20 4B 4D 20 53 45 54 20 44 45 4C 41 59 0D KM SET DELAY.
000100: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D ....... AM
000110: 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 34 STRAD CPC464/664
000120: 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 20 /6128 FIRMWARE
000130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000140: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
000150: 35 2E 32 31 0D 0A 1A 74 61 69 6C 20 74 68 65 20 5.21...tail the
000160: 65 6E 74 72 79 20 61 6E 64 20 65 78 69 74 20 63 entry and exit c
000170: 6F 6E 64 69 74 69 6F 6E 73 20 61 6E 64 20 74 68 onditions and th
000180: 74 61 69 6E 73 20 74 68 65 20 6B 65 79 20 6E 75 tains the key nu
000190: 6D 62 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 mber.......
0001A0: 20 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E Exit condition
0001B0: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 s:...... A
0001C0: 46 2C 42 43 20 61 6E 64 20 48 4C 20 63 6F 72 72 F,BC and HL corr
0001D0: 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C upt... All
0001E0: 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 72 73 other registers
0001F0: 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D preserved......
Size : 512 (Real : 512)
000000: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
000010: 20 20 20 32 30 3A 20 4B 4D 20 53 45 54 20 44 45 20: KM SET DE
000020: 4C 41 59 20 20 20 20 20 20 20 20 20 20 20 20 20 LAY
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000050: 20 20 20 20 23 42 42 33 43 0D 0A 0D 0A 0D 0A 20 #BB3C......
000060: 20 20 20 20 20 20 41 73 6B 20 69 66 20 61 20 6B Ask if a k
000070: 65 79 20 69 73 20 61 6C 6C 6F 77 65 64 20 74 6F ey is allowed to
000080: 20 72 65 70 65 61 74 2E 0D 0A 0D 0A 0D 0A 20 20 repeat.......
000090: 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A Action:....
0000A0: 0D 0A 20 20 20 20 20 20 20 54 65 73 74 20 74 68 .. Test th
0000B0: 65 20 65 6E 74 72 79 20 69 6E 20 74 68 65 20 72 e entry in the r
0000C0: 65 70 65 61 74 69 6E 67 20 6B 65 79 20 6D 61 70 epeating key map
0000D0: 20 74 68 61 74 20 73 61 79 73 20 20 77 68 65 74 that says whet
0000E0: 68 65 72 20 20 61 20 20 6B 65 79 20 20 69 73 0D her a key is.
0000F0: 0A 20 20 20 20 20 20 20 61 6C 6C 6F 77 65 64 20 . allowed
000100: 74 6F 20 72 65 70 65 61 74 20 6F 72 20 6E 6F 74 to repeat or not
000110: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E ....... En
000120: 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D try conditions:.
000130: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 ..... If t
000140: 68 65 20 6B 65 79 20 69 73 20 61 6C 6C 6F 77 65 he key is allowe
000150: 64 20 74 6F 20 72 65 70 65 61 74 3A 0D 0A 0D 0A d to repeat:....
000160: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
000170: 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0A 0D Zero false....
000180: 0A 0D 0A 20 20 20 20 20 20 20 49 66 20 74 68 65 ... If the
000190: 20 6B 65 79 20 69 73 20 6E 6F 74 20 61 6C 6C 6F key is not allo
0001A0: 77 65 64 20 74 6F 20 72 65 70 65 61 74 3A 0D 0A wed to repeat:..
0001B0: 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 ....
0001C0: 20 20 20 20 5A 65 72 6F 20 74 72 75 65 2E 0D 0A Zero true...
0001D0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 6C 77 61 79 .... Alway
0001E0: 73 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 s......
0001F0: 20 20 20 20 20 20 20 43 61 72 72 79 20 66 61 6C Carry fal
Size : 512 (Real : 512)
000000: 73 65 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 se...
000010: 20 20 20 20 20 41 2C 48 4C 20 61 6E 64 20 6F 74 A,HL and ot
000020: 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 her flags corrup
000030: 74 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 t...
000040: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
000050: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
000060: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E d....... N
000070: 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 otes:......
000080: 20 20 54 68 65 20 6B 65 79 20 6E 75 6D 62 65 72 The key number
000090: 20 69 73 20 6E 6F 74 20 63 68 65 63 6B 65 64 2E is not checked.
0000A0: 20 49 66 20 69 74 20 69 73 20 69 6E 76 61 6C 69 If it is invali
0000B0: 64 20 28 67 72 65 61 74 65 72 20 74 68 61 6E 20 d (greater than
0000C0: 37 39 29 20 74 68 65 6E 0D 0A 20 20 20 20 20 20 79) then..
0000D0: 20 74 68 65 20 72 65 70 65 61 74 20 73 74 61 74 the repeat stat
0000E0: 65 20 72 65 74 75 72 6E 65 64 20 69 73 20 6D 65 e returned is me
0000F0: 61 6E 69 6E 67 6C 65 73 73 2E 0D 0A 0D 0A 0D 0A aningless.......
000100: 20 20 20 20 20 20 20 54 68 65 20 64 65 66 61 75 The defau
000110: 6C 74 20 72 65 70 65 61 74 69 6E 67 20 6B 65 79 lt repeating key
000120: 73 20 61 72 65 20 6C 69 73 74 65 64 20 69 6E 20 s are listed in
000130: 41 70 70 65 6E 64 69 78 20 49 49 49 2E 0D 0A 0D Appendix III....
000140: 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 ... Relate
000150: 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A d entries:......
000160: 20 20 20 20 20 20 20 4B 4D 20 53 45 54 20 52 45 KM SET RE
000170: 50 45 41 54 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A PEAT............
000180: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
000190: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
0001A0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001C0: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
0001D0: 31 35 2E 32 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.22...........
0001E0: 0A 0D 0A 20 20 20 20 20 20 20 32 31 3A 20 4B 4D ... 21: KM
0001F0: 20 53 45 54 20 44 45 4C 41 59 20 20 20 20 20 20 SET DELAY
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 20 20 20 20 20 23 42 42 33 46 #BB3F
000030: 0D 0A 0D 0A 20 20 20 20 20 20 20 53 65 74 20 73 .... Set s
000040: 74 61 72 74 20 64 65 6C 61 79 20 61 6E 64 20 72 tart delay and r
000050: 65 70 65 61 74 20 73 70 65 65 64 2E 0D 0A 0D 0A epeat speed.....
000060: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
000070: 0D 0A 20 20 20 20 20 20 20 53 65 74 20 74 68 65 .. Set the
000080: 20 74 69 6D 65 20 62 65 66 6F 72 65 20 6B 65 79 time before key
000090: 73 20 66 69 72 73 74 20 72 65 70 65 61 74 20 28 s first repeat (
0000A0: 73 74 61 72 74 20 75 70 20 64 65 6C 61 79 29 20 start up delay)
0000B0: 20 61 6E 64 20 20 74 68 65 20 20 74 69 6D 65 0D and the time.
0000C0: 0A 20 20 20 20 20 20 20 62 65 74 77 65 65 6E 20 . between
0000D0: 72 65 70 65 61 74 73 20 28 72 65 70 65 61 74 20 repeats (repeat
0000E0: 73 70 65 65 64 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 speed).......
0000F0: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
000100: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
000110: 20 20 48 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 H contains the
000120: 20 6E 65 77 20 73 74 61 72 74 20 75 70 20 64 65 new start up de
000130: 6C 61 79 2E 0D 0A 20 20 20 20 20 20 20 4C 20 63 lay... L c
000140: 6F 6E 74 61 69 6E 73 20 74 68 65 20 6E 65 77 20 ontains the new
000150: 72 65 70 65 61 74 20 73 70 65 65 64 2E 0D 0A 0D repeat speed....
000160: 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 ... Exit c
000170: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
000180: 20 20 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 AF corrup
000190: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
0001A0: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
0001B0: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
0001C0: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
0001D0: 0D 0A 20 20 20 20 20 20 20 42 6F 74 68 20 64 65 .. Both de
0001E0: 6C 61 79 73 20 61 72 65 20 67 69 76 65 6E 20 69 lays are given i
0001F0: 6E 20 20 73 63 61 6E 73 20 20 6F 66 20 20 74 68 n scans of th
Size : 512 (Real : 512)
000000: 65 20 20 6B 65 79 62 6F 61 72 64 2E 20 20 54 68 e keyboard. Th
000010: 65 20 20 6B 65 79 62 6F 61 72 64 20 20 69 73 0D e keyboard is.
000020: 0A 20 20 20 20 20 20 20 73 63 61 6E 6E 65 64 20 . scanned
000030: 65 76 65 72 79 20 66 69 66 74 69 65 74 68 20 6F every fiftieth o
000040: 66 20 61 20 73 65 63 6F 6E 64 2E 0D 0A 0D 0A 0D f a second......
000050: 0A 20 20 20 20 20 20 20 41 20 73 74 61 72 74 20 . A start
000060: 75 70 20 64 65 6C 61 79 20 6F 72 20 72 65 70 65 up delay or repe
000070: 61 74 20 73 70 65 65 64 20 6F 66 20 30 20 69 73 at speed of 0 is
000080: 20 74 61 6B 65 6E 20 74 6F 20 6D 65 61 6E 20 32 taken to mean 2
000090: 35 36 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 56.......
0000A0: 54 68 65 20 64 65 66 61 75 6C 74 20 73 74 61 72 The default star
0000B0: 74 20 75 70 20 64 65 6C 61 79 20 69 73 20 33 30 t up delay is 30
0000C0: 20 73 63 61 6E 73 20 28 30 2E 36 20 73 65 63 6F scans (0.6 seco
0000D0: 6E 64 73 29 20 61 6E 64 20 20 74 68 65 20 20 64 nds) and the d
0000E0: 65 66 61 75 6C 74 0D 0A 20 20 20 20 20 20 20 72 efault.. r
0000F0: 65 70 65 61 74 20 73 70 65 65 64 20 69 73 20 32 epeat speed is 2
000100: 20 73 63 61 6E 73 20 28 30 2E 30 34 20 73 65 63 scans (0.04 sec
000110: 6F 6E 64 73 20 6F 72 20 32 35 20 63 68 61 72 61 onds or 25 chara
000120: 63 74 65 72 73 20 61 20 73 65 63 6F 6E 64 29 2E cters a second).
000130: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ...... Not
000140: 65 20 74 68 61 74 20 61 20 6B 65 79 20 69 73 20 e that a key is
000150: 70 72 65 76 65 6E 74 65 64 20 66 72 6F 6D 20 72 prevented from r
000160: 65 70 65 61 74 69 6E 67 20 28 62 79 20 74 68 65 epeating (by the
000170: 20 20 6B 65 79 20 20 73 63 61 6E 6E 65 72 29 20 key scanner)
000180: 20 69 66 0D 0A 20 20 20 20 20 20 20 74 68 65 20 if.. the
000190: 6B 65 79 20 62 75 66 66 65 72 20 69 73 20 6E 6F key buffer is no
0001A0: 74 20 65 6D 70 74 79 2E 20 54 68 75 73 20 20 74 t empty. Thus t
0001B0: 68 65 20 20 61 63 74 75 61 6C 20 20 72 65 70 65 he actual repe
0001C0: 61 74 20 20 73 70 65 65 64 20 20 69 73 20 20 74 at speed is t
0001D0: 68 65 0D 0A 20 20 20 20 20 20 20 73 6C 6F 77 65 he.. slowe
0001E0: 72 20 6F 66 20 74 68 65 20 73 75 70 70 6C 69 65 r of the supplie
0001F0: 64 20 72 65 70 65 61 74 20 73 70 65 65 64 20 61 d repeat speed a
Size : 512 (Real : 512)
000000: 6E 64 20 74 68 65 20 72 61 74 65 20 61 74 20 20 nd the rate at
000010: 77 68 69 63 68 20 20 63 68 61 72 61 63 74 65 72 which character
000020: 73 0D 0A 20 20 20 20 20 20 20 61 72 65 20 72 65 s.. are re
000030: 6D 6F 76 65 64 20 66 72 6F 6D 20 74 68 65 20 62 moved from the b
000040: 75 66 66 65 72 2E 20 54 68 69 73 20 69 73 20 69 uffer. This is i
000050: 6E 74 65 6E 64 65 64 20 74 6F 20 70 72 65 76 65 ntended to preve
000060: 6E 74 20 74 68 65 20 75 73 65 72 20 66 72 6F 6D nt the user from
000070: 0D 0A 20 20 20 20 20 20 20 67 65 74 74 69 6E 67 .. getting
000080: 20 74 6F 6F 20 66 61 72 20 61 68 65 61 64 20 6F too far ahead o
000090: 66 20 61 20 70 72 6F 67 72 61 6D 20 74 68 61 74 f a program that
0000A0: 20 69 73 20 72 75 6E 6E 69 6E 67 20 73 6C 75 67 is running slug
0000B0: 67 69 73 68 6C 79 2E 0D 0A 0D 0A 0D 0A 20 20 20 gishly.......
0000C0: 20 20 20 20 54 68 65 20 73 74 61 72 74 20 75 70 The start up
0000D0: 20 64 65 6C 61 79 20 61 6E 64 20 72 65 70 65 61 delay and repea
0000E0: 74 20 73 70 65 65 64 20 61 70 70 6C 79 20 74 6F t speed apply to
0000F0: 20 61 6C 6C 20 6B 65 79 73 20 6F 6E 20 74 68 65 all keys on the
000100: 20 20 6B 65 79 62 6F 61 72 64 0D 0A 20 20 20 20 keyboard..
000110: 20 20 20 74 68 61 74 20 61 72 65 20 73 65 74 20 that are set
000120: 74 6F 20 72 65 70 65 61 74 2E 0D 0A 0D 0A 0D 0A to repeat.......
000130: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 Related e
000140: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
000150: 20 20 20 20 4B 4D 20 47 45 54 20 44 45 4C 41 59 KM GET DELAY
000160: 0D 0A 20 20 20 20 20 20 20 4B 4D 20 53 45 54 20 .. KM SET
000170: 52 45 50 45 41 54 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A REPEAT..........
000180: 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 41 44 .. AMSTRAD
000190: 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 32 38 CPC464/664/6128
0001A0: 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 20 20 FIRMWARE
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001C0: 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 33 0D page 15.23.
0001D0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 .............
0001E0: 20 20 20 20 32 32 3A 20 4B 4D 20 47 45 54 20 44 22: KM GET D
0001F0: 45 4C 41 59 20 20 20 20 20 20 20 20 20 20 20 20 ELAY
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 23 42 42 34 32 0D 0A 0D 0A 0D 0A #BB42......
000030: 20 20 20 20 20 20 20 47 65 74 20 73 74 61 72 74 Get start
000040: 20 75 70 20 64 65 6C 61 79 20 61 6E 64 20 72 65 up delay and re
000050: 70 65 61 74 20 73 70 65 65 64 2E 0D 0A 0D 0A 0D peat speed......
000060: 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D . Action:.
000070: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 73 6B 20 ..... Ask
000080: 74 68 65 20 74 69 6D 65 20 62 65 66 6F 72 65 20 the time before
000090: 6B 65 79 73 20 66 69 72 73 74 20 72 65 70 65 61 keys first repea
0000A0: 74 20 28 73 74 61 72 74 20 75 70 20 64 65 6C 61 t (start up dela
0000B0: 79 29 20 20 61 6E 64 20 20 74 68 65 20 20 74 69 y) and the ti
0000C0: 6D 65 0D 0A 20 20 20 20 20 20 20 62 65 74 77 65 me.. betwe
0000D0: 65 6E 20 72 65 70 65 61 74 73 20 28 72 65 70 65 en repeats (repe
0000E0: 61 74 20 73 70 65 65 64 29 2E 0D 0A 0D 0A 0D 0A at speed).......
0000F0: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
000100: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
000110: 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F No conditio
000120: 6E 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ns.......
000130: 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A Exit conditions:
000140: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 48 20 63 ...... H c
000150: 6F 6E 74 61 69 6E 73 20 74 68 65 20 73 74 61 72 ontains the star
000160: 74 20 75 70 20 64 65 6C 61 79 2E 0D 0A 20 20 20 t up delay...
000170: 20 20 20 20 4C 20 63 6F 6E 74 61 69 6E 73 20 74 L contains t
000180: 68 65 20 72 65 70 65 61 74 20 73 70 65 65 64 2E he repeat speed.
000190: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 ...... AF
0001A0: 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 corrupt...
0001B0: 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 All other regis
0001C0: 74 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D ters preserved..
0001D0: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 ..... Note
0001E0: 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 42 s:...... B
0001F0: 6F 74 68 20 64 65 6C 61 79 73 20 61 72 65 20 67 oth delays are g
Size : 512 (Real : 512)
000000: 69 76 65 6E 20 69 6E 20 20 73 63 61 6E 73 20 20 iven in scans
000010: 6F 66 20 20 74 68 65 20 20 6B 65 79 62 6F 61 72 of the keyboar
000020: 64 2E 20 20 54 68 65 20 20 6B 65 79 62 6F 61 72 d. The keyboar
000030: 64 20 20 69 73 0D 0A 20 20 20 20 20 20 20 73 63 d is.. sc
000040: 61 6E 6E 65 64 20 65 76 65 72 79 20 66 69 66 74 anned every fift
000050: 69 65 74 68 20 6F 66 20 61 20 73 65 63 6F 6E 64 ieth of a second
000060: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 ....... A
000070: 72 65 70 65 61 74 20 73 70 65 65 64 20 6F 72 20 repeat speed or
000080: 73 74 61 72 74 20 75 70 20 64 65 6C 61 79 20 6F start up delay o
000090: 66 20 30 20 6D 65 61 6E 73 20 32 35 36 2E 0D 0A f 0 means 256...
0000A0: 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 74 .... Relat
0000B0: 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D ed entries:.....
0000C0: 0A 20 20 20 20 20 20 20 4B 4D 20 53 45 54 20 44 . KM SET D
0000D0: 45 4C 41 59 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ELAY............
0000E0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0000F0: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
000100: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
000110: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 page 15.2
000140: 34 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 4..............
000150: 20 20 20 20 20 20 32 33 3A 20 4B 4D 20 41 52 4D 23: KM ARM
000160: 20 42 52 45 41 4B 53 20 20 20 20 20 20 20 20 20 BREAKS
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 20 20 20 20 20 20 23 42 42 34 35 0D 0A 0D 0A #BB45....
0001A0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 6F 77 20 62 .. Allow b
0001B0: 72 65 61 6B 20 65 76 65 6E 74 73 20 74 6F 20 62 reak events to b
0001C0: 65 20 67 65 6E 65 72 61 74 65 64 2E 0D 0A 0D 0A e generated.....
0001D0: 0D 0A 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A .. Action:
0001E0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 72 6D ...... Arm
0001F0: 20 74 68 65 20 62 72 65 61 6B 20 6D 65 63 68 61 the break mecha
Size : 512 (Real : 512)
000000: 6E 69 73 6D 2E 20 54 68 65 20 6E 65 78 74 20 63 nism. The next c
000010: 61 6C 6C 20 6F 66 20 4B 4D 20 42 52 45 41 4B 20 all of KM BREAK
000020: 45 56 45 4E 54 20 77 69 6C 6C 20 67 65 6E 65 72 EVENT will gener
000030: 61 74 65 0D 0A 20 20 20 20 20 20 20 61 20 62 72 ate.. a br
000040: 65 61 6B 20 65 76 65 6E 74 2E 0D 0A 0D 0A 0D 0A eak event.......
000050: 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E Entry con
000060: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
000070: 20 20 20 20 20 44 45 20 63 6F 6E 74 61 69 6E 73 DE contains
000080: 20 74 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 the address of
000090: 74 68 65 20 62 72 65 61 6B 20 65 76 65 6E 74 20 the break event
0000A0: 72 6F 75 74 69 6E 65 2E 0D 0A 20 20 20 20 20 20 routine...
0000B0: 20 43 20 63 6F 6E 74 61 69 6E 73 20 74 68 65 20 C contains the
0000C0: 52 4F 4D 20 73 65 6C 65 63 74 20 61 64 64 72 65 ROM select addre
0000D0: 73 73 20 66 6F 72 20 74 68 69 73 20 72 6F 75 74 ss for this rout
0000E0: 69 6E 65 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ine.......
0000F0: 20 45 78 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 Exit conditions
000100: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 :...... AF
000110: 2C 42 43 2C 44 45 20 61 6E 64 20 48 4C 20 63 6F ,BC,DE and HL co
000120: 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 41 rrupt... A
000130: 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 65 ll other registe
000140: 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A 0D rs preserved....
000150: 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 65 73 3A ... Notes:
000160: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 ...... The
000170: 20 62 72 65 61 6B 20 6D 65 63 68 61 6E 69 73 6D break mechanism
000180: 20 63 61 6E 20 62 65 20 64 69 73 61 72 6D 65 64 can be disarmed
000190: 20 62 79 20 63 61 6C 6C 69 6E 67 20 4B 4D 20 44 by calling KM D
0001A0: 49 53 41 52 4D 20 42 52 45 41 4B 20 28 6F 72 20 ISARM BREAK (or
0001B0: 20 4B 4D 0D 0A 20 20 20 20 20 20 20 52 45 53 45 KM.. RESE
0001C0: 54 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 T).......
0001D0: 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 This routine ena
0001E0: 62 6C 65 73 20 69 6E 74 65 72 72 75 70 74 73 2E bles interrupts.
0001F0: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C ...... Rel
Size : 512 (Real : 512)
000000: 61 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D ated entries:...
000010: 0A 0D 0A 20 20 20 20 20 20 20 4B 4D 20 42 52 45 ... KM BRE
000020: 41 4B 20 45 56 45 4E 54 0D 0A 20 20 20 20 20 20 AK EVENT..
000030: 20 4B 4D 20 44 49 53 41 52 4D 20 42 52 45 41 4B KM DISARM BREAK
000040: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
000050: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
000060: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
000070: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
000080: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000A0: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 page 15.2
0000B0: 35 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 5..............
0000C0: 20 20 20 20 20 20 32 34 3A 20 4B 4D 20 44 49 53 24: KM DIS
0000D0: 41 52 4D 20 42 52 45 41 4B 20 20 20 20 20 20 20 ARM BREAK
0000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000100: 20 20 20 20 20 20 20 23 42 42 34 38 0D 0A 0D 0A #BB48....
000110: 0D 0A 20 20 20 20 20 20 20 50 72 65 76 65 6E 74 .. Prevent
000120: 20 62 72 65 61 6B 20 65 76 65 6E 74 73 20 66 72 break events fr
000130: 6F 6D 20 62 65 69 6E 67 20 67 65 6E 65 72 61 74 om being generat
000140: 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 ed.......
000150: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
000160: 20 20 20 20 44 69 73 61 72 6D 20 74 68 65 20 62 Disarm the b
000170: 72 65 61 6B 20 6D 65 63 68 61 6E 69 73 6D 2E 20 reak mechanism.
000180: 46 72 6F 6D 20 6E 6F 77 20 6F 6E 20 74 68 65 20 From now on the
000190: 67 65 6E 65 72 61 74 69 6F 6E 20 6F 66 20 62 72 generation of br
0001A0: 65 61 6B 20 65 76 65 6E 74 73 0D 0A 20 20 20 20 eak events..
0001B0: 20 20 20 62 79 20 4B 4D 20 42 52 45 41 4B 20 45 by KM BREAK E
0001C0: 56 45 4E 54 20 77 69 6C 6C 20 62 65 20 73 75 70 VENT will be sup
0001D0: 70 72 65 73 73 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 pressed.......
0001E0: 20 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 Entry condi
0001F0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
Size : 512 (Real : 512)
000000: 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 No conditions
000010: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 ....... Ex
000020: 69 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A it conditions:..
000030: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 46 20 61 6E .... AF an
000040: 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 d HL corrupt...
000050: 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 All other
000060: 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 registers preser
000070: 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ved.......
000080: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 Notes:......
000090: 20 20 20 20 42 72 65 61 6B 20 65 76 65 6E 74 73 Break events
0000A0: 20 63 61 6E 20 62 65 20 72 65 61 72 6D 65 64 20 can be rearmed
0000B0: 62 79 20 63 61 6C 6C 69 6E 67 20 4B 4D 20 41 52 by calling KM AR
0000C0: 4D 20 42 52 45 41 4B 2E 0D 0A 0D 0A 0D 0A 20 20 M BREAK.......
0000D0: 20 20 20 20 20 54 68 65 20 64 65 66 61 75 6C 74 The default
0000E0: 20 73 74 61 74 65 20 6F 66 20 74 68 65 20 62 72 state of the br
0000F0: 65 61 6B 20 6D 65 63 68 61 6E 69 73 6D 20 69 73 eak mechanism is
000100: 20 64 69 73 61 72 6D 65 64 2C 20 74 68 75 73 20 disarmed, thus
000110: 63 61 6C 6C 69 6E 67 20 20 4B 4D 0D 0A 20 20 20 calling KM..
000120: 20 20 20 20 52 45 53 45 54 20 77 69 6C 6C 20 61 RESET will a
000130: 6C 73 6F 20 64 69 73 61 72 6D 20 62 72 65 61 6B lso disarm break
000140: 73 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 s....... T
000150: 68 69 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 his routine enab
000160: 6C 65 73 20 69 6E 74 65 72 72 75 70 74 73 2E 0D les interrupts..
000170: 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 52 65 6C 61 ..... Rela
000180: 74 65 64 20 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A ted entries:....
000190: 0D 0A 20 20 20 20 20 20 20 4B 4D 20 41 52 4D 20 .. KM ARM
0001A0: 42 52 45 41 4B 0D 0A 20 20 20 20 20 20 20 4B 4D BREAK.. KM
0001B0: 20 42 52 45 41 4B 20 45 56 45 4E 54 0D 0A 0D 0A BREAK EVENT....
0001C0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0001D0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 ............
0001E0: 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 34 36 AMSTRAD CPC46
0001F0: 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 4D 57 4/664/6128 FIRMW
Size : 512 (Real : 512)
000000: 41 52 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ARE
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
000020: 61 67 65 20 31 35 2E 32 36 0D 0A 0D 0A 0D 0A 0D age 15.26.......
000030: 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 32 35 ....... 25
000040: 3A 20 4B 4D 20 42 52 45 41 4B 20 45 56 45 4E 54 : KM BREAK EVENT
000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 #
000080: 42 42 34 42 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 BB4B......
000090: 20 47 65 6E 65 72 61 74 65 20 61 20 62 72 65 61 Generate a brea
0000A0: 6B 20 65 76 65 6E 74 20 28 69 66 20 61 72 6D 65 k event (if arme
0000B0: 64 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 d).......
0000C0: 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 Action:......
0000D0: 20 20 20 20 54 72 79 20 74 6F 20 67 65 6E 65 72 Try to gener
0000E0: 61 74 65 20 61 20 62 72 65 61 6B 20 65 76 65 6E ate a break even
0000F0: 74 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 t....... E
000100: 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A ntry conditions:
000110: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 ...... No
000120: 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D conditions......
000130: 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E . Exit con
000140: 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 ditions:......
000150: 20 20 20 20 20 41 46 20 61 6E 64 20 48 4C 20 63 AF and HL c
000160: 6F 72 72 75 70 74 2E 0D 0A 20 20 20 20 20 20 20 orrupt...
000170: 41 6C 6C 20 6F 74 68 65 72 20 72 65 67 69 73 74 All other regist
000180: 65 72 73 20 70 72 65 73 65 72 76 65 64 2E 0D 0A ers preserved...
000190: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 74 ...... Not
0001A0: 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 es:......
0001B0: 49 66 20 74 68 65 20 62 72 65 61 6B 20 6D 65 63 If the break mec
0001C0: 68 61 6E 69 73 6D 20 69 73 20 64 69 73 61 72 6D hanism is disarm
0001D0: 65 64 20 74 68 65 6E 20 6E 6F 20 61 63 74 69 6F ed then no actio
0001E0: 6E 20 69 73 20 74 61 6B 65 6E 2E 20 20 4F 74 68 n is taken. Oth
0001F0: 65 72 77 69 73 65 0D 0A 20 20 20 20 20 20 20 61 erwise.. a
Size : 512 (Real : 512)
000000: 20 62 72 65 61 6B 20 65 76 65 6E 74 20 69 73 20 break event is
000010: 67 65 6E 65 72 61 74 65 64 20 61 6E 64 20 61 20 generated and a
000020: 73 70 65 63 69 61 6C 20 6D 61 72 6B 65 72 20 69 special marker i
000030: 73 20 70 6C 61 63 65 64 20 69 6E 74 6F 20 74 68 s placed into th
000040: 65 20 6B 65 79 0D 0A 20 20 20 20 20 20 20 62 75 e key.. bu
000050: 66 66 65 72 2E 20 54 68 69 73 20 6D 61 72 6B 65 ffer. This marke
000060: 72 20 67 65 6E 65 72 61 74 65 73 20 61 20 62 72 r generates a br
000070: 65 61 6B 20 65 76 65 6E 74 20 74 6F 6B 65 6E 20 eak event token
000080: 28 23 45 46 29 20 77 68 65 6E 20 72 65 61 64 20 (#EF) when read
000090: 66 72 6F 6D 0D 0A 20 20 20 20 20 20 20 74 68 65 from.. the
0000A0: 20 62 75 66 66 65 72 2E 20 20 54 68 65 20 20 62 buffer. The b
0000B0: 72 65 61 6B 20 20 6D 65 63 68 61 6E 69 73 6D 20 reak mechanism
0000C0: 20 69 73 20 20 61 75 74 6F 6D 61 74 69 63 61 6C is automatical
0000D0: 6C 79 20 20 64 69 73 61 72 6D 65 64 20 20 61 66 ly disarmed af
0000E0: 74 65 72 0D 0A 20 20 20 20 20 20 20 67 65 6E 65 ter.. gene
0000F0: 72 61 74 69 6E 67 20 61 20 62 72 65 61 6B 20 65 rating a break e
000100: 76 65 6E 74 20 73 6F 20 74 68 61 74 20 6D 75 6C vent so that mul
000110: 74 69 70 6C 65 20 62 72 65 61 6B 73 20 63 61 6E tiple breaks can
000120: 20 62 65 20 61 76 6F 69 64 65 64 2E 0D 0A 0D 0A be avoided.....
000130: 0D 0A 20 20 20 20 20 20 20 54 68 69 73 20 72 6F .. This ro
000140: 75 74 69 6E 65 20 6D 61 79 20 72 75 6E 20 66 72 utine may run fr
000150: 6F 6D 20 74 68 65 20 69 6E 74 65 72 72 75 70 74 om the interrupt
000160: 20 70 61 74 68 20 61 6E 64 20 20 74 68 75 73 20 path and thus
000170: 20 64 6F 65 73 20 20 6E 6F 74 20 20 61 6E 64 0D does not and.
000180: 0A 20 20 20 20 20 20 20 73 68 6F 75 6C 64 20 6E . should n
000190: 6F 74 20 65 6E 61 62 6C 65 20 69 6E 74 65 72 72 ot enable interr
0001A0: 75 70 74 73 2E 20 4E 6F 74 65 2C 20 68 6F 77 65 upts. Note, howe
0001B0: 76 65 72 2C 20 74 68 61 74 20 75 73 69 6E 67 20 ver, that using
0001C0: 61 20 4C 4F 57 20 4A 55 4D 50 20 20 74 6F 0D 0A a LOW JUMP to..
0001D0: 20 20 20 20 20 20 20 63 61 6C 6C 20 74 68 65 20 call the
0001E0: 72 6F 75 74 69 6E 65 20 28 61 73 20 74 68 65 20 routine (as the
0001F0: 66 69 72 6D 77 61 72 65 20 6A 75 6D 70 62 6C 6F firmware jumpblo
Size : 512 (Real : 512)
000000: 63 6B 20 69 73 20 73 65 74 20 74 6F 20 64 6F 29 ck is set to do)
000010: 20 64 6F 65 73 20 20 65 6E 61 62 6C 65 0D 0A 20 does enable..
000020: 20 20 20 20 20 20 69 6E 74 65 72 72 75 70 74 73 interrupts
000030: 20 61 6E 64 20 20 73 6F 20 20 74 68 65 20 20 6A and so the j
000040: 75 6D 70 62 6C 6F 63 6B 20 20 6D 61 79 20 20 6E umpblock may n
000050: 6F 74 20 20 62 65 20 20 75 73 65 64 20 20 64 69 ot be used di
000060: 72 65 63 74 6C 79 20 20 66 72 6F 6D 0D 0A 20 20 rectly from..
000070: 20 20 20 20 20 69 6E 74 65 72 72 75 70 74 20 72 interrupt r
000080: 6F 75 74 69 6E 65 73 2E 0D 0A 0D 0A 0D 0A 20 20 outines.......
000090: 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 Related ent
0000A0: 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ries:......
0000B0: 20 20 4B 4D 20 41 52 4D 20 42 52 45 41 4B 0D 0A KM ARM BREAK..
0000C0: 20 20 20 20 20 20 20 4B 4D 20 44 49 53 41 52 4D KM DISARM
0000D0: 20 42 52 45 41 4B 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A BREAK..........
0000E0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
0000F0: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
000100: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
000110: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
000120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000130: 20 70 61 67 65 20 31 35 2E 32 37 0D 0A 0D 0A 0D page 15.27.....
000140: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
000150: 32 36 3A 20 54 58 54 20 49 4E 49 54 49 41 4C 49 26: TXT INITIALI
000160: 53 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 SE
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000190: 20 23 42 42 34 45 0D 0A 0D 0A 20 20 20 20 20 20 #BB4E....
0001A0: 20 49 6E 69 74 69 61 6C 69 73 65 20 74 68 65 20 Initialise the
0001B0: 54 65 78 74 20 56 44 55 2E 0D 0A 0D 0A 20 20 20 Text VDU.....
0001C0: 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 20 Action:....
0001D0: 20 20 20 20 20 20 46 75 6C 6C 20 69 6E 69 74 69 Full initi
0001E0: 61 6C 69 7A 61 74 69 6F 6E 20 6F 66 20 74 68 65 alization of the
0001F0: 20 54 65 78 74 20 56 44 55 20 28 61 73 20 75 73 Text VDU (as us
Size : 512 (Real : 512)
000000: 65 64 20 64 75 72 69 6E 67 20 45 4D 53 29 2E 20 ed during EMS).
000010: 41 6C 6C 20 54 65 78 74 20 56 44 55 0D 0A 20 20 All Text VDU..
000020: 20 20 20 20 20 76 61 72 69 61 62 6C 65 73 20 61 variables a
000030: 6E 64 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 20 nd indirections
000040: 61 72 65 20 69 6E 69 74 69 61 6C 69 7A 65 64 2C are initialized,
000050: 20 74 68 65 20 70 72 65 76 69 6F 75 73 20 56 44 the previous VD
000060: 55 20 73 74 61 74 65 20 20 69 73 0D 0A 20 20 20 U state is..
000070: 20 20 20 20 6C 6F 73 74 2E 0D 0A 0D 0A 20 20 20 lost.....
000080: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
000090: 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 ions:....
0000A0: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A No conditions:..
0000B0: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
0000C0: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
0000D0: 20 20 20 20 41 46 2C 42 43 2C 44 45 20 61 6E 64 AF,BC,DE and
0000E0: 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 HL corrupt...
0000F0: 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 All other r
000100: 65 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 egisters preserv
000110: 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F ed..... No
000120: 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 tes:.... T
000130: 68 65 20 54 65 78 74 20 56 44 55 20 69 6E 64 69 he Text VDU indi
000140: 72 65 63 74 69 6F 6E 73 20 28 54 58 54 20 44 52 rections (TXT DR
000150: 41 57 20 43 55 52 53 4F 52 2C 20 20 54 58 54 20 AW CURSOR, TXT
000160: 20 55 4E 44 52 41 57 20 20 43 55 52 53 4F 52 2C UNDRAW CURSOR,
000170: 20 20 54 58 54 0D 0A 20 20 20 20 20 20 20 57 52 TXT.. WR
000180: 49 54 45 20 43 48 41 52 2C 20 54 58 54 20 55 4E ITE CHAR, TXT UN
000190: 57 52 49 54 45 20 61 6E 64 20 54 58 54 20 4F 55 WRITE and TXT OU
0001A0: 54 20 41 43 54 49 4F 4E 29 20 61 72 65 20 73 65 T ACTION) are se
0001B0: 74 20 74 6F 20 20 74 68 65 69 72 20 20 64 65 66 t to their def
0001C0: 61 75 6C 74 0D 0A 20 20 20 20 20 20 20 72 6F 75 ault.. rou
0001D0: 74 69 6E 65 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 tines.....
0001E0: 20 54 68 65 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 The control cod
0001F0: 65 20 74 61 62 6C 65 20 69 73 20 73 65 74 20 75 e table is set u
Size : 512 (Real : 512)
000000: 70 20 74 6F 20 70 65 72 66 6F 72 6D 20 74 68 65 p to perform the
000010: 20 64 65 66 61 75 6C 74 20 20 63 6F 6E 74 72 6F default contro
000020: 6C 20 20 63 6F 64 65 0D 0A 20 20 20 20 20 20 20 l code..
000030: 61 63 74 69 6F 6E 73 2E 0D 0A 0D 0A 20 20 20 20 actions.....
000040: 20 20 20 54 68 65 20 75 73 65 72 20 64 65 66 69 The user defi
000050: 6E 65 64 20 63 68 61 72 61 63 74 65 72 20 74 61 ned character ta
000060: 62 6C 65 20 69 73 20 73 65 74 20 74 6F 20 65 6D ble is set to em
000070: 70 74 79 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 53 pty..... S
000080: 74 72 65 61 6D 20 30 20 69 73 20 73 65 6C 65 63 tream 0 is selec
000090: 74 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ted..... A
0000A0: 6C 6C 20 73 74 72 65 61 6D 73 20 61 72 65 20 73 ll streams are s
0000B0: 65 74 20 74 6F 20 74 68 65 69 72 20 64 65 66 61 et to their defa
0000C0: 75 6C 74 20 73 74 61 74 65 73 3A 0D 0A 0D 0A 0D ult states:.....
0000D0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0000E0: 20 54 68 65 20 74 65 78 74 20 70 61 70 65 72 20 The text paper
0000F0: 28 62 61 63 6B 67 72 6F 75 6E 64 29 20 69 73 20 (background) is
000100: 73 65 74 20 74 6F 20 69 6E 6B 20 30 2E 0D 0A 20 set to ink 0...
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 T
000120: 68 65 20 74 65 78 74 20 70 65 6E 20 28 66 6F 72 he text pen (for
000130: 65 67 72 6F 75 6E 64 29 20 69 73 20 73 65 74 20 eground) is set
000140: 74 6F 20 69 6E 6B 20 31 2E 0D 0A 20 20 20 20 20 to ink 1...
000150: 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 74 The t
000160: 65 78 74 20 77 69 6E 64 6F 77 20 69 73 20 73 65 ext window is se
000170: 74 20 74 6F 20 74 68 65 20 65 6E 74 69 72 65 20 t to the entire
000180: 73 63 72 65 65 6E 2E 0D 0A 20 20 20 20 20 20 20 screen...
000190: 20 20 20 20 20 20 20 20 20 54 68 65 20 74 65 78 The tex
0001A0: 74 20 63 75 72 73 6F 72 20 69 73 20 65 6E 61 62 t cursor is enab
0001B0: 6C 65 64 20 62 75 74 20 74 75 72 6E 65 64 20 6F led but turned o
0001C0: 66 66 2E 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ff...
0001D0: 20 20 20 20 20 54 68 65 20 63 68 61 72 61 63 74 The charact
0001E0: 65 72 20 77 72 69 74 65 20 6D 6F 64 65 20 69 73 er write mode is
0001F0: 20 73 65 74 20 74 6F 20 6F 70 61 71 75 65 2E 0D set to opaque..
Size : 512 (Real : 512)
000000: 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 ...
000010: 20 20 20 54 68 65 20 56 44 55 20 69 73 20 65 6E The VDU is en
000020: 61 62 6C 65 64 2E 0D 0A 20 20 20 20 20 20 20 20 abled...
000030: 20 20 20 20 20 20 20 20 54 68 65 20 67 72 61 70 The grap
000040: 68 69 63 73 20 63 68 61 72 61 63 74 65 72 20 77 hics character w
000050: 72 69 74 65 20 6D 6F 64 65 20 69 73 20 74 75 72 rite mode is tur
000060: 6E 20 6F 66 66 2E 0D 0A 20 20 20 20 20 20 20 20 n off...
000070: 20 20 20 20 20 20 20 20 54 68 65 20 63 75 72 73 The curs
000080: 6F 72 20 69 73 20 6D 6F 76 65 64 20 74 6F 20 74 or is moved to t
000090: 68 65 20 74 6F 70 20 6C 65 66 74 20 63 6F 72 6E he top left corn
0000A0: 65 72 20 6F 66 20 74 68 65 20 77 69 6E 64 6F 77 er of the window
0000B0: 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 ....... Th
0000C0: 65 20 64 65 66 61 75 6C 74 20 63 68 61 72 61 63 e default charac
0000D0: 74 65 72 20 73 65 74 20 61 6E 64 20 74 68 65 20 ter set and the
0000E0: 64 65 66 61 75 6C 74 20 73 65 74 74 69 6E 67 20 default setting
0000F0: 66 6F 72 20 74 68 65 20 63 6F 6E 74 72 6F 6C 20 for the control
000100: 63 6F 64 65 0D 0A 20 20 20 20 20 20 20 74 61 62 code.. tab
000110: 6C 65 20 61 72 65 20 64 65 73 63 72 69 62 65 64 le are described
000120: 20 69 6E 20 41 70 70 65 6E 64 69 63 65 73 20 56 in Appendices V
000130: 49 20 61 6E 64 20 56 49 49 2E 0D 0A 0D 0A 0D 0A I and VII.......
000140: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 45 Related E
000150: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
000160: 20 20 20 20 53 43 52 20 49 4E 49 54 49 41 4C 49 SCR INITIALI
000170: 53 45 0D 0A 20 20 20 20 20 20 20 54 58 54 20 52 SE.. TXT R
000180: 45 53 45 54 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ESET..........
000190: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
0001A0: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
0001B0: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 70 61 67 65 20 31 35 2E 32 38 0D 0A 0D 0A 0D page 15.28.....
0001E0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0001F0: 32 37 3A 20 54 58 54 20 52 45 53 45 54 20 20 20 27: TXT RESET
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 23 42 42 35 31 0D 0A 0D 0A 0D 0A 20 20 20 20 #BB51......
000040: 20 20 20 52 65 73 65 74 20 74 68 65 20 54 65 78 Reset the Tex
000050: 74 20 56 44 55 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 t VDU.......
000060: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A Action:......
000070: 20 20 20 20 20 20 20 52 65 69 6E 69 74 69 61 6C Reinitial
000080: 69 7A 65 20 74 68 65 20 54 65 78 74 20 56 44 55 ize the Text VDU
000090: 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 20 61 6E indirections an
0000A0: 64 20 74 68 65 20 20 63 6F 6E 74 72 6F 6C 20 20 d the control
0000B0: 63 6F 64 65 20 20 74 61 62 6C 65 73 2E 0D 0A 20 code tables...
0000C0: 20 20 20 20 20 20 44 6F 65 73 20 6E 6F 74 20 61 Does not a
0000D0: 66 66 65 63 74 20 61 6E 79 20 6F 74 68 65 72 20 ffect any other
0000E0: 61 73 70 65 63 74 20 6F 66 20 74 68 65 20 54 65 aspect of the Te
0000F0: 78 74 20 56 44 55 2E 0D 0A 0D 0A 0D 0A 20 20 20 xt VDU.......
000100: 20 20 20 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 Entry condit
000110: 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 ions:......
000120: 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E No conditions.
000130: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 78 69 ...... Exi
000140: 74 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D t conditions:...
000150: 0A 0D 0A 20 20 20 20 20 20 20 41 46 2C 42 43 2C ... AF,BC,
000160: 44 45 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 DE and HL corrup
000170: 74 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F t... All o
000180: 74 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 ther registers p
000190: 72 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 reserved.......
0001A0: 20 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A Notes:....
0001B0: 20 20 20 20 20 20 20 54 68 65 20 54 65 78 74 20 The Text
0001C0: 56 44 55 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 VDU indirections
0001D0: 20 54 58 54 20 44 52 41 57 20 20 43 55 52 53 4F TXT DRAW CURSO
0001E0: 52 2C 20 20 54 58 54 20 20 55 4E 44 52 41 57 20 R, TXT UNDRAW
0001F0: 20 43 55 52 53 4F 52 2C 20 20 54 58 54 0D 0A 20 CURSOR, TXT..
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 57 52 49 54 45 20 43 48 41 52 WRITE CHAR
000010: 2C 20 54 58 54 20 55 4E 57 52 49 54 45 20 61 6E , TXT UNWRITE an
000020: 64 20 54 58 54 20 4F 55 54 20 41 43 54 49 4F 4E d TXT OUT ACTION
000030: 20 61 72 65 20 73 65 74 20 20 74 6F 20 20 74 68 are set to th
000040: 65 69 72 20 20 64 65 66 61 75 6C 74 0D 0A 20 20 eir default..
000050: 20 20 20 20 20 72 6F 75 74 69 6E 65 73 2E 0D 0A routines...
000060: 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 65 20 63 .... The c
000070: 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 74 61 62 6C ontrol code tabl
000080: 65 20 69 73 20 73 65 74 20 75 70 20 74 6F 20 70 e is set up to p
000090: 65 72 66 6F 72 6D 20 74 68 65 20 20 64 65 66 61 erform the defa
0000A0: 75 6C 74 20 20 63 6F 6E 74 72 6F 6C 20 20 63 6F ult control co
0000B0: 64 65 0D 0A 20 20 20 20 20 20 20 61 63 74 69 6F de.. actio
0000C0: 6E 73 20 28 73 65 65 20 41 70 70 65 6E 64 69 78 ns (see Appendix
0000D0: 20 56 49 49 29 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A VII)...........
0000E0: 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 45 Related E
0000F0: 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 ntries:......
000100: 20 20 20 20 54 58 54 20 49 4E 49 54 49 41 4C 49 TXT INITIALI
000110: 53 45 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A SE..............
000120: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
000130: 0D 0A 0D 0A 20 20 20 20 20 20 20 41 4D 53 54 52 .... AMSTR
000140: 41 44 20 43 50 43 34 36 34 2F 36 36 34 2F 36 31 AD CPC464/664/61
000150: 32 38 20 46 49 52 4D 57 41 52 45 20 20 20 20 20 28 FIRMWARE
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 70 61 67 65 20 31 35 2E 32 page 15.2
000180: 39 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 9..............
000190: 20 20 20 20 20 20 32 38 3A 20 54 58 54 20 56 44 28: TXT VD
0001A0: 55 20 45 4E 41 42 4C 45 20 20 20 20 20 20 20 20 U ENABLE
0001B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 20 20 20 20 20 20 23 42 42 35 34 0D 0A 0D 0A #BB54....
0001E0: 0D 0A 20 20 20 20 20 20 20 41 6C 6C 6F 77 20 63 .. Allow c
0001F0: 68 61 72 61 63 74 65 72 73 20 74 6F 20 62 65 20 haracters to be
Size : 512 (Real : 512)
000000: 70 6C 61 63 65 64 20 6F 6E 20 74 68 65 20 73 63 placed on the sc
000010: 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 reen.......
000020: 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 Action:......
000030: 20 20 20 20 20 20 50 65 72 6D 69 74 20 63 68 61 Permit cha
000040: 72 61 63 74 65 72 73 20 74 6F 20 62 65 20 70 72 racters to be pr
000050: 69 6E 74 65 64 20 77 68 65 6E 20 72 65 71 75 65 inted when reque
000060: 73 74 65 64 20 28 62 79 20 63 61 6C 6C 69 6E 67 sted (by calling
000070: 20 54 58 54 20 20 4F 55 54 50 55 54 0D 0A 20 20 TXT OUTPUT..
000080: 20 20 20 20 20 6F 72 20 54 58 54 20 57 52 20 43 or TXT WR C
000090: 48 41 52 29 2E 20 45 6E 61 62 6C 69 6E 67 20 61 HAR). Enabling a
0000A0: 70 70 6C 69 65 73 20 74 6F 20 74 68 65 20 20 63 pplies to the c
0000B0: 75 72 72 65 6E 74 6C 79 20 20 73 65 6C 65 63 74 urrently select
0000C0: 65 64 20 20 73 74 72 65 61 6D 2E 0D 0A 20 20 20 ed stream...
0000D0: 20 20 20 20 54 68 65 20 63 75 72 73 6F 72 20 62 The cursor b
0000E0: 6C 6F 62 20 69 73 20 61 6C 73 6F 20 65 6E 61 62 lob is also enab
0000F0: 6C 65 64 20 28 62 79 20 63 61 6C 6C 69 6E 67 20 led (by calling
000100: 54 58 54 20 43 55 52 20 45 4E 41 42 4C 45 29 2E TXT CUR ENABLE).
000110: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 45 6E 74 ...... Ent
000120: 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A ry conditions:..
000130: 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F 20 63 6F .... No co
000140: 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A 0D 0A 20 nditions.......
000150: 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 Exit condi
000160: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
000170: 20 20 20 41 46 20 63 6F 72 72 75 70 74 2E 0D 0A AF corrupt...
000180: 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 All other
000190: 20 72 65 67 69 73 74 65 72 73 20 70 72 65 73 65 registers prese
0001A0: 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 rved.......
0001B0: 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 Notes:......
0001C0: 20 20 20 20 20 54 68 65 20 63 6F 6E 74 72 6F 6C The control
0001D0: 20 63 6F 64 65 20 62 75 66 66 65 72 20 75 73 65 code buffer use
0001E0: 64 20 62 79 20 54 58 54 20 4F 55 54 50 55 54 20 d by TXT OUTPUT
0001F0: 69 73 20 65 6D 70 74 69 65 64 2C 20 61 6E 79 20 is emptied, any
Size : 512 (Real : 512)
000000: 20 69 6E 63 6F 6D 70 6C 65 74 65 0D 0A 20 20 20 incomplete..
000010: 20 20 20 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 control code
000020: 20 73 65 71 75 65 6E 63 65 20 77 69 6C 6C 20 62 sequence will b
000030: 65 20 6C 6F 73 74 2E 0D 0A 0D 0A 0D 0A 0D 0A 0D e lost..........
000040: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
000050: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
000060: 20 20 20 20 20 54 58 54 20 41 53 4B 20 53 54 41 TXT ASK STA
000070: 54 45 0D 0A 20 20 20 20 20 20 20 54 58 54 20 43 TE.. TXT C
000080: 55 52 20 45 4E 41 42 4C 45 0D 0A 20 20 20 20 20 UR ENABLE..
000090: 20 20 54 58 54 20 4F 55 54 50 55 54 0D 0A 20 20 TXT OUTPUT..
0000A0: 20 20 20 20 20 54 58 54 20 56 44 55 20 44 49 53 TXT VDU DIS
0000B0: 41 42 4C 45 0D 0A 20 20 20 20 20 20 20 54 58 54 ABLE.. TXT
0000C0: 20 57 52 20 43 48 41 52 0D 0A 0D 0A 0D 0A 0D 0A WR CHAR........
0000D0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
0000E0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
0000F0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
000100: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000120: 20 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 page
000130: 31 35 2E 33 30 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 15.30...........
000140: 0A 0D 0A 20 20 20 20 20 20 20 32 39 3A 20 54 58 ... 29: TX
000150: 54 20 56 44 55 20 44 49 53 41 42 4C 45 20 20 20 T VDU DISABLE
000160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000180: 20 20 20 20 20 20 20 20 20 20 20 23 42 42 35 37 #BB57
000190: 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 50 72 65 ...... Pre
0001A0: 76 65 6E 74 20 63 68 61 72 61 63 74 65 72 20 62 vent character b
0001B0: 65 69 6E 67 20 70 6C 61 63 65 64 20 6F 6E 20 74 eing placed on t
0001C0: 68 65 20 73 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A he screen.......
0001D0: 20 20 20 20 20 20 20 41 63 74 69 6F 6E 3A 0D 0A Action:..
0001E0: 0D 0A 0D 0A 20 20 20 20 20 20 20 50 72 65 76 65 .... Preve
0001F0: 6E 74 73 20 63 68 61 72 61 63 74 65 72 73 20 62 nts characters b
Size : 512 (Real : 512)
000000: 65 69 6E 67 20 70 72 69 6E 74 65 64 20 6F 6E 20 eing printed on
000010: 74 68 65 20 73 63 72 65 65 6E 20 28 77 68 65 6E the screen (when
000020: 20 20 54 58 54 20 20 4F 55 54 50 55 54 20 20 6F TXT OUTPUT o
000030: 72 0D 0A 20 20 20 20 20 20 20 54 58 54 20 57 52 r.. TXT WR
000040: 20 43 48 41 52 20 69 73 20 63 61 6C 6C 65 64 29 CHAR is called)
000050: 2E 20 41 70 70 6C 69 65 73 20 74 6F 20 74 68 65 . Applies to the
000060: 20 63 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 currently selec
000070: 74 65 64 20 73 74 72 65 61 6D 2E 20 20 54 68 65 ted stream. The
000080: 0D 0A 20 20 20 20 20 20 20 63 75 72 73 6F 72 20 .. cursor
000090: 62 6C 6F 62 20 69 73 20 61 6C 73 6F 20 64 69 73 blob is also dis
0000A0: 61 62 6C 65 64 20 28 62 79 20 63 61 6C 6C 69 6E abled (by callin
0000B0: 67 20 54 58 54 20 43 55 52 20 44 49 53 41 42 4C g TXT CUR DISABL
0000C0: 45 29 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 E).......
0000D0: 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E 73 Entry conditions
0000E0: 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E 6F :...... No
0000F0: 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0A 0D 0A conditions.....
000100: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
000110: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 nditions:......
000120: 20 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 74 AF corrupt
000130: 2E 0D 0A 20 20 20 20 20 20 20 41 6C 6C 20 6F 74 ... All ot
000140: 68 65 72 20 72 65 67 69 73 74 65 72 73 20 70 72 her registers pr
000150: 65 73 65 72 76 65 64 2E 0D 0A 0D 0A 0D 0A 20 20 eserved.......
000160: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 0D Notes:.....
000170: 0A 20 20 20 20 20 20 20 54 68 65 20 63 6F 6E 74 . The cont
000180: 72 6F 6C 20 63 6F 64 65 20 62 75 66 66 65 72 20 rol code buffer
000190: 75 73 65 64 20 62 79 20 54 58 54 20 4F 55 54 50 used by TXT OUTP
0001A0: 55 54 20 69 73 20 65 6D 70 74 69 65 64 2C 20 61 UT is emptied, a
0001B0: 6E 79 20 20 69 6E 63 6F 6D 70 6C 65 74 65 0D 0A ny incomplete..
0001C0: 20 20 20 20 20 20 20 63 6F 6E 74 72 6F 6C 20 63 control c
0001D0: 6F 64 65 20 73 65 71 75 65 6E 63 65 20 77 69 6C ode sequence wil
0001E0: 6C 20 62 65 20 6C 6F 73 74 2E 0D 0A 0D 0A 0D 0A l be lost.......
0001F0: 20 20 20 20 20 20 20 49 6E 20 56 31 2E 31 20 66 In V1.1 f
Size : 512 (Real : 512)
000000: 69 72 6D 77 61 72 65 20 63 6F 6E 74 72 6F 6C 20 irmware control
000010: 63 6F 64 65 73 20 61 72 65 20 73 74 69 6C 6C 20 codes are still
000020: 6F 62 65 79 65 64 20 62 79 20 54 58 54 20 4F 55 obeyed by TXT OU
000030: 54 50 55 54 2E 20 49 6E 20 56 31 2E 31 0D 0A 20 TPUT. In V1.1..
000040: 20 20 20 20 20 20 66 69 72 6D 77 61 72 65 20 6F firmware o
000050: 6E 6C 79 20 74 68 6F 73 65 20 63 6F 6E 74 72 6F nly those contro
000060: 6C 20 63 6F 64 65 73 20 77 68 69 63 68 20 61 72 l codes which ar
000070: 65 20 6D 61 72 6B 65 64 20 69 6E 20 74 68 65 20 e marked in the
000080: 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 0D 0A 20 20 control code..
000090: 20 20 20 20 20 74 61 62 6C 65 20 77 69 6C 6C 20 table will
0000A0: 62 65 20 6F 62 65 79 65 64 3B 20 6F 74 68 65 72 be obeyed; other
0000B0: 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 20 77 control codes w
0000C0: 69 6C 6C 20 62 65 20 69 67 6E 6F 72 65 64 20 28 ill be ignored (
0000D0: 73 65 65 20 73 65 63 74 69 6F 6E 0D 0A 20 20 20 see section..
0000E0: 20 20 20 20 34 2E 37 29 2E 0D 0A 0D 0A 0D 0A 0D 4.7)........
0000F0: 0A 20 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 . Related
000100: 65 6E 74 72 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 entries:......
000110: 20 20 20 20 20 54 58 54 20 41 53 4B 20 53 54 41 TXT ASK STA
000120: 54 45 0D 0A 20 20 20 20 20 20 20 54 58 54 20 43 TE.. TXT C
000130: 55 52 20 45 4E 41 42 4C 45 0D 0A 20 20 20 20 20 UR ENABLE..
000140: 20 20 54 58 54 20 4F 55 54 50 55 54 0D 0A 20 20 TXT OUTPUT..
000150: 20 20 20 20 20 54 58 54 20 56 44 55 20 44 49 53 TXT VDU DIS
000160: 41 42 4C 45 0D 0A 20 20 20 20 20 20 20 54 58 54 ABLE.. TXT
000170: 20 57 52 20 43 48 41 52 0D 0A 0D 0A 0D 0A 0D 0A WR CHAR........
000180: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
000190: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
0001A0: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
0001B0: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
0001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001D0: 20 70 61 67 65 20 31 35 2E 33 31 0D 0A 0D 0A 0D page 15.31.....
0001E0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 .........
0001F0: 33 30 3A 20 54 58 54 20 4F 55 54 50 55 54 20 20 30: TXT OUTPUT
Size : 512 (Real : 512)
000000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 23 42 42 35 41 0D 0A 0D 0A 20 20 20 20 20 20 #BB5A....
000040: 20 4F 75 74 70 75 74 20 61 20 63 68 61 72 61 63 Output a charac
000050: 74 65 72 20 6F 72 20 63 6F 6E 74 72 6F 6C 20 63 ter or control c
000060: 6F 64 65 20 74 6F 20 74 68 65 20 54 65 78 74 20 ode to the Text
000070: 56 44 55 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 41 VDU..... A
000080: 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 ction:......
000090: 20 20 20 4F 75 74 70 75 74 20 63 68 61 72 61 63 Output charac
0000A0: 74 65 72 73 20 74 6F 20 74 68 65 20 73 63 72 65 ters to the scre
0000B0: 65 6E 20 61 6E 64 20 20 6F 62 65 79 20 20 63 6F en and obey co
0000C0: 6E 74 72 6F 6C 20 20 63 6F 64 65 73 20 20 28 63 ntrol codes (c
0000D0: 68 61 72 61 63 74 65 72 73 0D 0A 20 20 20 20 20 haracters..
0000E0: 20 20 23 30 30 2E 2E 23 31 46 29 2E 20 57 6F 72 #00..#1F). Wor
0000F0: 6B 73 20 6F 6E 20 74 68 65 20 63 75 72 72 65 6E ks on the curren
000100: 74 6C 79 20 73 65 6C 65 63 74 65 64 20 73 74 72 tly selected str
000110: 65 61 6D 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 eam.......
000120: 20 45 6E 74 72 79 20 63 6F 6E 64 69 74 69 6F 6E Entry condition
000130: 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 20 63 s:.... A c
000140: 6F 6E 74 61 69 6E 73 20 74 68 65 20 63 68 61 72 ontains the char
000150: 61 63 74 65 72 20 74 6F 20 73 65 6E 64 2E 0D 0A acter to send...
000160: 0D 0A 20 20 20 20 20 20 20 45 78 69 74 20 63 6F .. Exit co
000170: 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 20 20 20 nditions:....
000180: 20 20 20 20 41 6C 6C 20 72 65 67 69 73 74 65 72 All register
000190: 73 20 61 6E 64 20 66 6C 61 67 73 20 70 72 65 73 s and flags pres
0001A0: 65 72 76 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 erved.....
0001B0: 20 4E 6F 74 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 Notes:....
0001C0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 63 This routine c
0001D0: 61 6C 6C 73 20 74 68 65 20 54 58 54 20 4F 55 54 alls the TXT OUT
0001E0: 20 41 43 54 49 4F 4E 20 69 6E 64 69 72 65 63 74 ACTION indirect
0001F0: 69 6F 6E 20 74 6F 20 64 6F 20 20 74 68 65 20 20 ion to do the
Size : 512 (Real : 512)
000000: 77 6F 72 6B 20 20 6F 66 0D 0A 20 20 20 20 20 20 work of..
000010: 20 70 72 69 6E 74 69 6E 67 20 74 68 65 20 63 68 printing the ch
000020: 61 72 61 63 74 65 72 20 6F 72 20 6F 62 65 79 69 aracter or obeyi
000030: 6E 67 20 74 68 65 20 63 6F 6E 74 72 6F 6C 20 63 ng the control c
000040: 6F 64 65 20 64 65 73 63 72 69 62 65 64 20 62 65 ode described be
000050: 6C 6F 77 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 43 low..... C
000060: 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 20 6D 61 79 ontrol codes may
000070: 20 74 61 6B 65 20 75 70 20 74 6F 20 39 20 70 61 take up to 9 pa
000080: 72 61 6D 65 74 65 72 73 2E 20 54 68 65 73 65 20 rameters. These
000090: 20 61 72 65 20 20 74 68 65 20 20 63 68 61 72 61 are the chara
0000A0: 63 74 65 72 73 0D 0A 20 20 20 20 20 20 20 73 65 cters.. se
0000B0: 6E 74 20 66 6F 6C 6C 6F 77 69 6E 67 20 74 68 65 nt following the
0000C0: 20 69 6E 69 74 69 61 6C 20 20 63 6F 6E 74 72 6F initial contro
0000D0: 6C 20 20 63 6F 64 65 2E 20 20 54 68 65 20 20 63 l code. The c
0000E0: 68 61 72 61 63 74 65 72 73 20 20 73 65 6E 74 20 haracters sent
0000F0: 20 61 72 65 0D 0A 20 20 20 20 20 20 20 73 74 6F are.. sto
000100: 72 65 64 20 69 6E 20 74 68 65 20 63 6F 6E 74 72 red in the contr
000110: 6F 6C 20 63 6F 64 65 20 62 75 66 66 65 72 20 75 ol code buffer u
000120: 6E 74 69 6C 20 73 75 66 66 69 63 69 65 6E 74 20 ntil sufficient
000130: 68 61 76 65 20 62 65 65 6E 20 20 72 65 63 65 69 have been recei
000140: 76 65 64 0D 0A 20 20 20 20 20 20 20 74 6F 20 6D ved.. to m
000150: 61 6B 65 20 75 70 20 61 6C 6C 20 74 68 65 20 70 ake up all the p
000160: 61 72 61 6D 65 74 65 72 73 2E 20 54 68 65 20 63 arameters. The c
000170: 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 62 75 66 66 ontrol code buff
000180: 65 72 20 20 69 73 20 20 6F 6E 6C 79 20 20 6C 6F er is only lo
000190: 6E 67 0D 0A 20 20 20 20 20 20 20 65 6E 6F 75 67 ng.. enoug
0001A0: 68 20 74 6F 20 61 63 63 65 70 74 20 39 20 70 61 h to accept 9 pa
0001B0: 72 61 6D 65 74 65 72 20 63 68 61 72 61 63 74 65 rameter characte
0001C0: 72 73 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 54 68 rs..... Th
0001D0: 65 72 65 20 69 73 20 6F 6E 6C 79 20 6F 6E 65 20 ere is only one
0001E0: 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 62 75 66 control code buf
0001F0: 66 65 72 20 66 6F 72 20 61 6C 6C 20 73 74 72 65 fer for all stre
Size : 512 (Real : 512)
000000: 61 6D 73 2E 20 49 74 20 69 73 20 74 68 65 72 65 ams. It is there
000010: 66 6F 72 65 0D 0A 20 20 20 20 20 20 20 70 6F 73 fore.. pos
000020: 73 69 62 6C 65 20 74 6F 20 67 65 74 20 75 6E 70 sible to get unp
000030: 72 65 64 69 63 74 61 62 6C 65 20 72 65 73 75 6C redictable resul
000040: 74 73 20 69 66 20 74 68 65 20 6F 75 74 70 75 74 ts if the output
000050: 20 73 74 72 65 61 6D 20 69 73 20 20 63 68 61 6E stream is chan
000060: 67 65 64 0D 0A 20 20 20 20 20 20 20 6D 69 64 77 ged.. midw
000070: 61 79 20 74 68 72 6F 75 67 68 20 73 65 6E 64 69 ay through sendi
000080: 6E 67 20 61 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 ng a control cod
000090: 65 20 73 65 71 75 65 6E 63 65 2E 0D 0A 0D 0A 20 e sequence.....
0000A0: 20 20 20 20 20 20 49 66 20 74 68 65 20 56 44 55 If the VDU
0000B0: 20 69 73 20 64 69 73 61 62 6C 65 64 20 74 68 65 is disabled the
0000C0: 6E 20 6E 6F 20 20 63 68 61 72 61 63 74 65 72 73 n no characters
0000D0: 20 20 77 69 6C 6C 20 20 62 65 20 20 70 72 69 6E will be prin
0000E0: 74 65 64 20 20 6F 6E 20 20 74 68 65 0D 0A 20 20 ted on the..
0000F0: 20 20 20 20 20 73 63 72 65 65 6E 2E 20 49 6E 20 screen. In
000100: 56 31 2E 30 20 66 69 72 6D 77 61 72 65 20 61 6C V1.0 firmware al
000110: 6C 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 20 l control codes
000120: 77 69 6C 6C 20 73 74 69 6C 6C 20 62 65 20 6F 62 will still be ob
000130: 65 79 65 64 20 62 75 74 20 69 6E 0D 0A 20 20 20 eyed but in..
000140: 20 20 20 20 56 31 2E 31 20 66 69 72 6D 77 61 72 V1.1 firmwar
000150: 65 20 6F 6E 6C 79 20 74 68 6F 73 65 20 63 6F 64 e only those cod
000160: 65 73 20 6D 61 72 6B 65 64 20 69 6E 20 74 68 65 es marked in the
000170: 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 74 61 control code ta
000180: 62 6C 65 20 61 73 20 20 74 6F 0D 0A 20 20 20 20 ble as to..
000190: 20 20 20 62 65 20 6F 62 65 79 65 64 20 77 68 65 be obeyed whe
0001A0: 6E 20 74 68 65 20 56 44 55 20 69 73 20 64 69 73 n the VDU is dis
0001B0: 61 62 6C 65 64 20 77 69 6C 6C 20 62 65 20 6F 62 abled will be ob
0001C0: 65 79 65 64 20 28 73 65 65 20 73 65 63 74 69 6F eyed (see sectio
0001D0: 6E 20 34 2E 37 29 2E 0D 0A 0D 0A 20 20 20 20 20 n 4.7).....
0001E0: 20 20 49 66 20 74 68 65 20 67 72 61 70 68 69 63 If the graphic
0001F0: 20 63 68 61 72 61 63 74 65 72 20 77 72 69 74 65 character write
Size : 512 (Real : 512)
000000: 20 6D 6F 64 65 20 69 73 20 65 6E 61 62 6C 65 64 mode is enabled
000010: 20 74 68 65 6E 20 61 6C 6C 20 63 68 61 72 61 63 then all charac
000020: 74 65 72 73 20 61 6E 64 0D 0A 20 20 20 20 20 20 ters and..
000030: 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 20 61 control codes a
000040: 72 65 20 70 72 69 6E 74 65 64 20 75 73 69 6E 67 re printed using
000050: 20 74 68 65 20 47 72 61 70 68 69 63 73 20 56 44 the Graphics VD
000060: 55 20 72 6F 75 74 69 6E 65 2C 20 47 52 41 20 57 U routine, GRA W
000070: 52 20 20 43 48 41 52 2C 0D 0A 20 20 20 20 20 20 R CHAR,..
000080: 20 61 6E 64 20 61 72 65 20 6E 6F 74 20 6F 62 65 and are not obe
000090: 79 65 64 2E 0D 0A 0D 0A 20 20 20 20 20 20 20 43 yed..... C
0000A0: 68 61 72 61 63 74 65 72 73 20 61 72 65 20 77 72 haracters are wr
0000B0: 69 74 74 65 6E 20 69 6E 20 20 74 68 65 20 20 73 itten in the s
0000C0: 61 6D 65 20 20 77 61 79 20 20 74 68 61 74 20 20 ame way that
0000D0: 54 58 54 20 20 57 52 20 20 43 48 41 52 20 20 77 TXT WR CHAR w
0000E0: 72 69 74 65 73 0D 0A 20 20 20 20 20 20 20 63 68 rites.. ch
0000F0: 61 72 61 63 74 65 72 73 2E 0D 0A 0D 0A 0D 0A 20 aracters.......
000100: 20 20 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E Related en
000110: 74 72 69 65 73 3A 0D 0A 0D 0A 20 20 20 20 20 20 tries:....
000120: 20 47 52 41 20 57 52 20 43 48 41 52 0D 0A 20 20 GRA WR CHAR..
000130: 20 20 20 20 20 54 58 54 20 4F 55 54 20 41 43 54 TXT OUT ACT
000140: 49 4F 4E 0D 0A 20 20 20 20 20 20 20 54 58 54 20 ION.. TXT
000150: 53 45 54 20 47 52 41 50 48 49 43 0D 0A 20 20 20 SET GRAPHIC..
000160: 20 20 20 20 54 58 54 20 56 44 55 20 44 49 53 41 TXT VDU DISA
000170: 42 4C 45 0D 0A 20 20 20 20 20 20 20 54 58 54 20 BLE.. TXT
000180: 56 44 55 20 45 4E 41 42 4C 45 0D 0A 20 20 20 20 VDU ENABLE..
000190: 20 20 20 54 58 54 20 57 52 20 43 48 41 52 0D 0A TXT WR CHAR..
0001A0: 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 41 ........ A
0001B0: 4D 53 54 52 41 44 20 43 50 43 34 36 34 2F 36 36 MSTRAD CPC464/66
0001C0: 34 2F 36 31 32 38 20 46 49 52 4D 57 41 52 45 20 4/6128 FIRMWARE
0001D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0001E0: 20 20 20 20 20 20 20 20 20 20 70 61 67 65 20 31 page 1
0001F0: 35 2E 33 32 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 5.32............
Size : 512 (Real : 512)
000000: 0D 0A 20 20 20 20 20 20 20 33 31 3A 20 54 58 54 .. 31: TXT
000010: 20 57 52 20 43 48 41 52 20 20 20 20 20 20 20 20 WR CHAR
000020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000040: 20 20 20 20 23 42 42 35 44 0D 0A 0D 0A 0D 0A 20 #BB5D......
000050: 20 20 20 20 20 20 57 72 69 74 65 20 61 20 63 68 Write a ch
000060: 61 72 61 63 74 65 72 20 74 6F 20 74 68 65 20 73 aracter to the s
000070: 63 72 65 65 6E 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 creen.......
000080: 20 20 20 41 63 74 69 6F 6E 3A 0D 0A 0D 0A 0D 0A Action:......
000090: 20 20 20 20 20 20 20 50 72 69 6E 74 20 61 20 63 Print a c
0000A0: 68 61 72 61 63 74 65 72 20 20 6F 6E 20 20 74 68 haracter on th
0000B0: 65 20 20 73 63 72 65 65 6E 20 20 61 74 20 20 74 e screen at t
0000C0: 68 65 20 20 63 75 72 73 6F 72 20 20 70 6F 73 69 he cursor posi
0000D0: 74 69 6F 6E 20 20 6F 66 20 20 74 68 65 0D 0A 20 tion of the..
0000E0: 20 20 20 20 20 20 63 75 72 72 65 6E 74 6C 79 20 currently
0000F0: 73 65 6C 65 63 74 65 64 20 73 74 72 65 61 6D 2E selected stream.
000100: 20 43 6F 6E 74 72 6F 6C 20 20 63 6F 64 65 73 20 Control codes
000110: 20 28 63 68 61 72 61 63 74 65 72 73 20 20 23 30 (characters #0
000120: 30 2E 2E 23 31 46 29 20 20 61 72 65 0D 0A 20 20 0..#1F) are..
000130: 20 20 20 20 20 70 72 69 6E 74 65 72 20 61 6E 64 printer and
000140: 20 6E 6F 74 20 6F 62 65 79 65 64 2E 0D 0A 0D 0A not obeyed.....
000150: 0D 0A 20 20 20 20 20 20 20 45 6E 74 72 79 20 63 .. Entry c
000160: 6F 6E 64 69 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A onditions:......
000170: 20 20 20 20 20 20 20 41 20 63 6F 6E 74 61 69 6E A contain
000180: 73 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 s the character
000190: 74 6F 20 70 72 69 6E 74 2E 0D 0A 0D 0A 0D 0A 20 to print.......
0001A0: 20 20 20 20 20 20 45 78 69 74 20 63 6F 6E 64 69 Exit condi
0001B0: 74 69 6F 6E 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 tions:......
0001C0: 20 20 20 41 46 2C 42 43 2C 44 45 20 61 6E 64 20 AF,BC,DE and
0001D0: 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0A 20 20 20 HL corrupt...
0001E0: 20 20 20 20 41 6C 6C 20 6F 74 68 65 72 20 72 65 All other re
0001F0: 67 69 73 74 65 72 73 20 70 72 65 73 65 72 76 65 gisters preserve
Size : 512 (Real : 512)
000000: 64 2E 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 20 4E d....... N
000010: 6F 74 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 otes:......
000020: 20 20 49 66 20 74 68 65 20 56 44 55 20 69 73 20 If the VDU is
000030: 64 69 73 61 62 6C 65 64 20 74 68 65 6E 20 6E 6F disabled then no
000040: 20 63 68 61 72 61 63 74 65 72 20 77 69 6C 6C 20 character will
000050: 62 65 20 70 72 69 6E 74 65 64 2E 0D 0A 0D 0A 0D be printed......
000060: 0A 20 20 20 20 20 20 20 42 65 66 6F 72 65 20 70 . Before p
000070: 72 69 6E 74 69 6E 67 20 74 68 65 20 63 68 61 72 rinting the char
000080: 61 63 74 65 72 20 74 68 65 20 63 75 72 73 6F 72 acter the cursor
000090: 20 70 6F 73 69 74 69 6F 6E 20 20 69 73 20 20 66 position is f
0000A0: 6F 72 63 65 64 20 20 74 6F 20 20 6C 69 65 0D 0A orced to lie..
0000B0: 20 20 20 20 20 20 20 77 69 74 68 69 6E 20 20 74 within t
0000C0: 68 65 20 20 74 65 78 74 20 20 77 69 6E 64 6F 77 he text window
0000D0: 20 20 28 73 65 65 20 20 54 58 54 20 20 56 41 4C (see TXT VAL
0000E0: 49 44 41 54 45 29 2E 20 20 41 66 74 65 72 20 20 IDATE). After
0000F0: 70 72 69 6E 74 69 6E 67 20 20 74 68 65 0D 0A 20 printing the..
000100: 20 20 20 20 20 20 63 68 61 72 61 63 74 65 72 20 character
000110: 74 68 65 20 63 75 72 73 6F 72 20 69 73 20 6D 6F the cursor is mo
000120: 76 65 64 20 72 69 67 68 74 20 6F 6E 65 20 63 68 ved right one ch
000130: 61 72 61 63 74 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 aracter.......
000140: 20 20 20 20 20 54 6F 20 70 75 74 20 74 68 65 20 To put the
000150: 63 68 61 72 61 63 74 65 72 20 6F 6E 20 74 68 65 character on the
000160: 20 73 63 72 65 65 6E 20 74 68 69 73 20 72 6F 75 screen this rou
000170: 74 69 6E 65 20 63 61 6C 6C 73 20 20 74 68 65 20 tine calls the
000180: 20 54 58 54 20 20 57 52 49 54 45 0D 0A 20 20 20 TXT WRITE..
000190: 20 20 20 20 43 48 41 52 20 69 6E 64 69 72 65 63 CHAR indirec
0001A0: 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 tion.........
0001B0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
0001C0: 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ies:......
0001D0: 20 47 52 41 20 57 52 20 43 48 41 52 0D 0A 20 20 GRA WR CHAR..
0001E0: 20 20 20 20 20 54 58 54 20 4F 55 54 50 55 54 0D TXT OUTPUT.
0001F0: 0A 20 20 20 20 20 20 20 54 58 54 20 52 44 20 43 . TXT RD C
Size : 512 (Real : 512)
000000: 48 41 52 0D 0A 20 20 20 20 20 20 20 54 58 54 20 HAR.. TXT
000010: 57 52 49 54 45 20 43 48 41 52 0D 0A 0D 0A 0D 0A WRITE CHAR......
000020: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 20 ..............
000030: 20 20 20 20 20 41 4D 53 54 52 41 44 20 43 50 43 AMSTRAD CPC
000040: 34 36 34 2F 36 36 34 2F 36 31 32 38 20 46 49 52 464/664/6128 FIR
000050: 4D 57 41 52 45 20 20 20 20 20 20 20 20 20 20 20 MWARE
000060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
000070: 20 70 61 67 65 20 31 35 2E 33 33 0D 0A 1A 74 6F page 15.33...to
000080: 61 63 74 65 72 20 74 68 65 20 63 75 72 73 6F 72 acter the cursor
000090: 20 70 6F 73 69 74 69 6F 6E 20 20 69 73 20 20 66 position is f
0000A0: 6F 72 63 65 64 20 20 74 6F 20 20 6C 69 65 0D 0A orced to lie..
0000B0: 20 20 20 20 20 20 20 77 69 74 68 69 6E 20 20 74 within t
0000C0: 68 65 20 20 74 65 78 74 20 20 77 69 6E 64 6F 77 he text window
0000D0: 20 20 28 73 65 65 20 20 54 58 54 20 20 56 41 4C (see TXT VAL
0000E0: 49 44 41 54 45 29 2E 20 20 41 66 74 65 72 20 20 IDATE). After
0000F0: 70 72 69 6E 74 69 6E 67 20 20 74 68 65 0D 0A 20 printing the..
000100: 20 20 20 20 20 20 63 68 61 72 61 63 74 65 72 20 character
000110: 74 68 65 20 63 75 72 73 6F 72 20 69 73 20 6D 6F the cursor is mo
000120: 76 65 64 20 72 69 67 68 74 20 6F 6E 65 20 63 68 ved right one ch
000130: 61 72 61 63 74 65 72 2E 0D 0A 0D 0A 0D 0A 20 20 aracter.......
000140: 20 20 20 20 20 54 6F 20 70 75 74 20 74 68 65 20 To put the
000150: 63 68 61 72 61 63 74 65 72 20 6F 6E 20 74 68 65 character on the
000160: 20 73 63 72 65 65 6E 20 74 68 69 73 20 72 6F 75 screen this rou
000170: 74 69 6E 65 20 63 61 6C 6C 73 20 20 74 68 65 20 tine calls the
000180: 20 54 58 54 20 20 57 52 49 54 45 0D 0A 20 20 20 TXT WRITE..
000190: 20 20 20 20 43 48 41 52 20 69 6E 64 69 72 65 63 CHAR indirec
0001A0: 74 69 6F 6E 2E 0D 0A 0D 0A 0D 0A 0D 0A 20 20 20 tion.........
0001B0: 20 20 20 20 52 65 6C 61 74 65 64 20 65 6E 74 72 Related entr
0001C0: 69 65 73 3A 0D 0A 0D 0A 0D 0A 20 20 20 20 20 20 ies:......
0001D0: 20 47 52 41 20 57 52 20 43 48 41 52 0D 0A 20 20 GRA WR CHAR..
0001E0: 20 20 20 20 20 54 58 54 20 4F 55 54 50 55 54 0D TXT OUTPUT.
0001F0: 0A 20 20 20 20 20 20 20 54 58 54 20 52 44 20 43 . TXT RD C
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
Size : 512 (Real : 512)
000000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0000F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0001F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
   
Tous droits réservés. Reproduction sans autorisation interdite. © Kukulcan