000000: 45 58 54 45 4E 44 45 44 20 43 50 43 20 44 53 4B EXTENDED CPC DSK
000010: 20 46 69 6C 65 0D 0A 44 69 73 6B 2D 49 6E 66 6F File..Disk-Info
000020: 0D 0A 53 41 4D 64 69 73 6B 31 36 30 32 32 30 00 ..SAMdisk160220.
000030: 28 01 00 00 13 13 13 13 13 13 13 13 13 13 13 13 (...............
000040: 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ................
000050: 13 13 13 13 13 13 13 13 13 13 13 13 00 00 00 00 ................
000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
000110: 00 00 01 00 02 09 4E E5 00 00 C1 02 00 00 00 02 ......N.........
000120: 00 00 C6 02 00 00 00 02 00 00 C2 02 00 00 00 02 ................
000130: 00 00 C7 02 00 00 00 02 00 00 C3 02 00 00 00 02 ................
000140: 00 00 C8 02 00 00 00 02 00 00 C4 02 00 00 00 02 ................
000150: 00 00 C9 02 00 00 00 02 00 00 C5 02 00 00 00 02 ................
000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000200: 00 38 32 35 35 20 20 20 20 54 58 54 00 00 00 44 .8255 TXT...D
000210: 02 03 04 05 06 07 08 09 0A 00 00 00 00 00 00 00 ................
000220: 00 38 32 35 35 32 20 20 20 54 58 54 00 00 00 4B .82552 TXT...K
000230: 0B 0C 0D 0E 0F 10 11 12 13 14 00 00 00 00 00 00 ................
000240: 00 42 44 4F 53 20 20 20 20 54 58 54 00 00 00 33 .BDOS TXT...3
000250: 15 16 17 18 19 1A 1B 00 00 00 00 00 00 00 00 00 ................
000260: 00 43 41 53 20 20 20 20 20 54 58 54 00 00 00 74 .CAS TXT...t
000270: 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 00 .... !"#$%&'()*.
000280: 00 43 4F 4E 4E 45 43 54 20 54 58 54 00 00 00 2F .CONNECT TXT.../
000290: 2B 2C 2D 2E 2F 30 00 00 00 00 00 00 00 00 00 00 +,-./0..........
0002A0: 00 43 4F 4E 54 43 48 41 52 54 58 54 00 00 00 1C .CONTCHARTXT....
0002B0: 31 32 33 34 00 00 00 00 00 00 00 00 00 00 00 00 1234............
0002C0: 00 43 52 54 43 20 20 20 20 54 58 54 00 00 00 80 .CRTC TXT....
0002D0: 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 56789:;<=>?@ABCD
0002E0: 00 43 52 54 43 20 20 20 20 54 58 54 01 00 00 2F .CRTC TXT.../
0002F0: 45 46 47 48 49 4A 00 00 00 00 00 00 00 00 00 00 EFGHIJ..........
000300: 00 45 58 50 41 4E 20 20 20 54 58 54 00 00 00 0B .EXPAN TXT....
000310: 4B 4C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 KL..............
000320: 00 46 49 4E 44 45 52 20 20 44 41 54 00 00 00 1B .FINDER DAT....
000330: 4D 4E 4F 50 00 00 00 00 00 00 00 00 00 00 00 00 MNOP............
000340: 00 47 41 54 45 20 20 20 20 54 58 54 00 00 00 74 .GATE TXT...t
000350: 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 00 QRSTUVWXYZ[\]^_.
000360: 00 47 52 41 20 20 20 20 20 54 58 54 00 00 00 47 .GRA TXT...G
000370: 60 61 62 63 64 65 66 67 68 00 00 00 00 00 00 00 `abcdefgh.......
000380: 00 48 41 52 44 57 41 52 45 54 58 54 00 00 00 0E .HARDWARETXT....
000390: 69 6A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ij..............
0003A0: 00 48 49 2D 4B 45 52 4E 20 54 58 54 00 00 00 4A .HI-KERN TXT...J
0003B0: 6B 6C 6D 6E 6F 70 71 72 73 74 00 00 00 00 00 00 klmnopqrst......
0003C0: 00 49 4E 44 49 52 45 43 54 54 58 54 00 00 00 68 .INDIRECTTXT...h
0003D0: 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 00 00 00 uvwxyz{|}~......
0003E0: 00 49 4F 50 4F 52 54 53 20 54 58 54 00 00 00 09 .IOPORTS TXT....
0003F0: 82 83 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000400: 63 61 6E 20 0D 8A 66 75 6E 63 74 69 6F 6E 2E 0D can ..function..
000410: 0D 4D 6F 64 65 20 30 20 2D 20 42 61 73 69 63 20 .Mode 0 - Basic
000420: 49 6E 70 75 74 2F 4F 75 74 70 75 74 0D 4D 6F 64 Input/Output.Mod
000430: 65 20 31 20 2D 20 53 74 72 6F 62 65 64 20 49 6E e 1 - Strobed In
000440: 70 75 74 2F 4F 75 74 70 75 74 20 2A 2A 4E 4F 54 put/Output **NOT
000450: 20 55 53 45 44 20 42 59 20 43 50 43 2A 2A 0D 4D USED BY CPC**.M
000460: 6F 64 65 20 32 20 2D 20 42 69 2D 44 69 72 65 63 ode 2 - Bi-Direc
000470: 74 69 6F 6E 61 6C 20 42 75 73 20 20 20 2A 2A 4E tional Bus **N
000480: 4F 54 20 55 53 45 44 20 42 59 20 43 50 43 2A 2A OT USED BY CPC**
000490: 0D 0D 49 6E 20 73 6F 6D 65 20 6F 66 20 74 68 65 ..In some of the
0004A0: 73 65 20 6D 6F 64 65 73 20 70 6F 72 74 90 20 43 se modes port. C
0004B0: 90 20 69 73 90 20 75 73 65 64 90 20 61 73 20 61 . is. used. as a
0004C0: 20 63 6F 6E 74 72 6F 6C 2F 73 74 61 74 75 73 20 control/status
0004D0: 70 6F 72 74 20 66 6F 72 20 0D 8A 70 6F 72 74 20 port for ..port
0004E0: 41 20 6F 72 20 42 2E 20 49 74 20 63 61 6E 90 20 A or B. It can.
0004F0: 62 65 90 20 75 73 65 64 90 20 74 6F 90 20 63 6F be. used. to. co
000500: 6E 66 69 72 6D 20 77 68 65 6E 20 64 61 74 61 20 nfirm when data
000510: 74 72 61 6E 73 66 65 72 20 6D 61 79 20 74 61 6B transfer may tak
000520: 65 20 0D 8A 70 6C 61 63 65 2C 20 61 6E 64 20 72 e ..place, and r
000530: 65 66 6C 65 63 74 20 61 6E 79 20 6F 74 68 65 72 eflect any other
000540: 20 66 6C 61 67 73 2E 20 54 68 65 20 38 32 35 35 flags. The 8255
000550: 20 50 50 49 20 69 73 20 74 68 65 72 65 66 6F 72 PPI is therefor
000560: 65 20 73 75 70 70 6C 69 65 64 20 0D 8A 77 69 74 e supplied ..wit
000570: 68 20 74 68 65 20 61 64 64 65 64 20 6F 70 74 69 h the added opti
000580: 6F 6E 20 66 6F 72 20 74 68 65 20 75 73 65 72 20 on for the user
000590: 74 6F 20 73 65 74 20 6F 72 20 72 65 73 65 74 20 to set or reset
0005A0: 61 6E 79 20 69 6E 64 69 76 69 64 75 61 6C 20 62 any individual b
0005B0: 69 74 73 20 0D 8A 69 6E 20 70 6F 72 74 20 43 2E its ..in port C.
0005C0: 0D 0D 54 68 65 20 49 2F 4F 20 73 74 61 74 75 73 ..The I/O status
0005D0: 2C 20 6D 6F 64 65 20 6F 66 20 6F 70 65 72 61 74 , mode of operat
0005E0: 69 6F 6E 90 20 61 6E 64 90 20 62 69 74 90 20 73 ion. and. bit. s
0005F0: 65 74 74 69 6E 67 20 69 73 20 64 65 66 69 6E 65 etting is define
000600: 00 4B 45 52 4E 41 4C 20 20 54 58 54 00 00 00 80 .KERNAL TXT....
000610: 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 ................
000620: 00 4B 45 52 4E 41 4C 20 20 54 58 54 01 00 00 64 .KERNAL TXT...d
000630: 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 00 00 00 ................
000640: 00 4B 45 59 4D 41 50 20 20 54 58 54 00 00 00 29 .KEYMAP TXT...)
000650: A1 A2 A3 A4 A5 A6 00 00 00 00 00 00 00 00 00 00 ..£.............
000660: 00 4B 4D 20 20 20 20 20 20 54 58 54 00 00 00 4B .KM TXT...K
000670: A7 A8 A9 AA AB AC AD AE AF B0 00 00 00 00 00 00 ................
000680: 00 44 49 53 43 20 20 20 20 20 20 20 00 00 00 16 .DISC ....
000690: B1 B2 B3 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0006A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000800: 64 20 62 79 20 74 68 65 20 0D 8A 38 32 35 35 20 d by the ..8255
000810: 50 50 49 20 63 6F 6E 74 72 6F 6C 90 20 62 79 74 PPI control. byt
000820: 65 2E 90 20 28 54 68 65 90 20 63 6F 6E 74 72 6F e.. (The. contro
000830: 6C 90 20 62 79 74 65 90 20 69 73 90 20 61 63 63 l. byte. is. acc
000840: 65 73 73 65 64 90 20 75 73 69 6E 67 20 70 6F 72 essed. using por
000850: 74 20 0D 8A 26 46 37 78 78 2E 28 38 32 35 35 20 t ..&F7xx.(8255
000860: 43 6F 6E 74 72 6F 6C 20 70 6F 72 74 29 29 0D 0D Control port))..
000870: 54 68 65 20 70 6F 72 74 73 20 6D 61 79 20 62 65 The ports may be
000880: 20 61 63 63 65 73 73 65 64 20 73 65 70 61 72 61 accessed separa
000890: 74 65 6C 79 20 62 79 20 74 68 65 20 43 50 55 2E tely by the CPU.
0008A0: 0D 0D 50 6F 72 74 20 41 20 69 73 20 61 63 63 65 ..Port A is acce
0008B0: 73 73 65 64 20 75 73 69 6E 67 20 70 6F 72 74 20 ssed using port
0008C0: 26 46 34 78 78 2E 0D 50 6F 72 74 20 42 20 69 73 &F4xx..Port B is
0008D0: 20 61 63 63 65 73 73 65 64 20 75 73 69 6E 67 20 accessed using
0008E0: 70 6F 72 74 20 26 46 35 78 78 2E 0D 50 6F 72 74 port &F5xx..Port
0008F0: 20 43 20 69 73 20 61 63 63 65 73 73 65 64 20 75 C is accessed u
000900: 73 69 6E 67 20 70 6F 72 74 20 26 46 36 78 78 2E sing port &F6xx.
000910: 20 0D 0D 4E 4F 54 45 3A 0D 0D 4D 6F 64 65 20 30 ..NOTE:..Mode 0
000920: 20 6F 70 65 72 61 74 69 6F 6E 3A 0D 0D 4D 6F 64 operation:..Mod
000930: 65 20 30 20 6F 70 65 72 61 74 69 6F 6E 20 64 6F e 0 operation do
000940: 65 73 20 6E 6F 74 20 72 65 71 75 69 72 65 90 20 es not require.
000950: 6F 74 68 65 72 90 20 70 6F 72 74 73 90 20 74 6F other. ports. to
000960: 20 62 65 20 75 73 65 64 20 74 6F 20 63 6F 6E 74 be used to cont
000970: 72 6F 6C 20 0D 8A 64 61 74 61 20 74 72 61 6E 73 rol ..data trans
000980: 66 65 72 2E 20 44 61 74 61 20 6D 61 79 20 6F 6E fer. Data may on
000990: 6C 79 20 62 65 20 73 65 6E 74 20 74 6F 90 20 61 ly be sent to. a
0009A0: 20 70 6F 72 74 20 69 66 20 74 68 65 20 70 6F 72 port if the por
0009B0: 74 20 69 73 20 64 65 66 69 6E 65 64 20 0D 8A 61 t is defined ..a
0009C0: 73 20 6F 75 74 70 75 74 2C 20 61 6E 64 20 64 61 s output, and da
0009D0: 74 61 20 6D 61 79 20 6F 6E 6C 79 20 62 65 20 72 ta may only be r
0009E0: 65 61 64 90 20 66 72 6F 6D 20 61 20 70 6F 72 74 ead. from a port
0009F0: 20 77 68 65 6E 20 74 68 65 20 70 6F 72 74 20 69 when the port i
000A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000C00: 73 20 73 65 74 20 0D 8A 74 6F 20 69 6E 70 75 74 s set ..to input
000C10: 2E 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ...=============
000C20: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
000C30: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
000C40: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
000C50: 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 55 73 69 6E 67 =========..Using
000C60: 20 74 68 65 20 38 32 35 35 20 50 6F 72 74 73 0D the 8255 Ports.
000C70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
000C80: 2D 2D 2D 2D 0D 0D 57 68 65 6E 20 77 72 69 74 69 ----..When writi
000C90: 6E 67 20 74 6F 20 61 20 70 6F 72 74 3A 0D 0D 31 ng to a port:..1
000CA0: 29 20 4D 61 6B 65 20 73 75 72 65 90 74 68 65 90 ) Make sure.the.
000CB0: 70 6F 72 74 20 69 73 20 6F 70 65 72 61 74 69 6E port is operatin
000CC0: 67 20 61 73 20 6F 75 74 70 75 74 2E 20 28 54 68 g as output. (Th
000CD0: 69 73 20 69 73 20 64 6F 6E 65 20 62 79 20 73 65 is is done by se
000CE0: 6E 64 69 6E 67 20 0D 8A 20 20 20 61 20 63 6F 6E nding .. a con
000CF0: 74 72 6F 6C 20 62 79 74 65 20 74 6F 20 70 6F 72 trol byte to por
000D00: 74 20 26 46 37 78 78 29 2E 0D 32 29 20 57 72 69 t &F7xx)..2) Wri
000D10: 74 65 20 74 68 65 20 64 61 74 61 20 74 6F 20 74 te the data to t
000D20: 68 65 20 70 6F 72 74 2E 0D 33 29 20 52 65 74 75 he port..3) Retu
000D30: 72 6E 20 74 68 65 20 70 6F 72 74 20 74 6F 20 69 rn the port to i
000D40: 74 27 73 20 6F 72 69 67 69 6E 61 6C 20 49 2F 4F t's original I/O
000D50: 20 53 74 61 74 75 73 2E 0D 0D 57 68 65 6E 20 72 Status...When r
000D60: 65 61 64 69 6E 67 20 66 72 6F 6D 20 61 20 70 6F eading from a po
000D70: 72 74 3A 0D 0D 31 29 20 4D 61 6B 65 20 73 75 72 rt:..1) Make sur
000D80: 65 20 74 68 65 20 70 6F 72 74 20 69 73 20 6F 70 e the port is op
000D90: 65 72 61 74 69 6E 67 90 20 61 73 20 69 6E 70 75 erating. as inpu
000DA0: 74 2E 20 28 54 68 69 73 20 69 73 20 64 6F 6E 65 t. (This is done
000DB0: 20 62 79 20 73 65 6E 64 69 6E 67 20 0D 8A 20 20 by sending ..
000DC0: 20 61 20 63 6F 6E 74 72 6F 6C 20 62 79 74 65 20 a control byte
000DD0: 74 6F 20 70 6F 72 74 20 26 46 37 78 78 29 2E 0D to port &F7xx)..
000DE0: 32 29 20 52 65 61 64 20 74 68 65 20 64 61 74 61 2) Read the data
000DF0: 20 66 72 6F 6D 20 74 68 65 20 70 6F 72 74 2E 0D from the port..
000E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001000: 33 29 20 52 65 74 75 72 6E 20 74 68 65 20 70 6F 3) Return the po
001010: 72 74 20 74 6F 20 69 74 27 73 20 6F 72 69 67 69 rt to it's origi
001020: 6E 61 6C 20 49 2F 4F 20 53 74 61 74 75 73 2E 0D nal I/O Status..
001030: 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D .===============
001040: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001050: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001060: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001070: 3D 3D 3D 3D 3D 3D 3D 0D 0D 38 32 35 35 20 50 50 =======..8255 PP
001080: 49 20 43 6F 6E 74 72 6F 6C 20 42 79 74 65 0D 2D I Control Byte.-
001090: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0010A0: 2D 2D 2D 2D 0D 0D 54 68 69 73 20 62 79 74 65 20 ----..This byte
0010B0: 63 6F 6E 74 72 6F 6C 73 20 74 68 65 20 49 6E 70 controls the Inp
0010C0: 75 74 2F 4F 75 74 70 75 74 20 28 49 2F 4F 29 20 ut/Output (I/O)
0010D0: 73 74 61 74 75 73 20 61 6E 64 20 6F 70 65 72 61 status and opera
0010E0: 74 69 6E 67 20 6D 6F 64 65 20 6F 66 20 0D 8A 65 ting mode of ..e
0010F0: 61 63 68 20 70 6F 72 74 2E 0D 0D 49 74 20 61 6C ach port...It al
001100: 73 6F 20 68 61 73 20 61 20 73 65 63 6F 6E 64 61 so has a seconda
001110: 72 79 20 66 75 6E 63 74 69 6F 6E 20 77 68 69 63 ry function whic
001120: 68 20 61 6C 6C 6F 77 73 20 74 68 65 20 75 73 65 h allows the use
001130: 72 20 74 6F 20 73 65 74 20 6F 72 20 72 65 73 65 r to set or rese
001140: 74 20 0D 8A 61 20 70 61 72 74 69 63 75 6C 61 72 t ..a particular
001150: 20 62 69 74 20 6F 66 20 70 6F 72 74 20 43 2E 0D bit of port C..
001160: 0D 54 6F 20 73 65 6E 64 20 61 20 63 6F 6E 74 72 .To send a contr
001170: 6F 6C 20 62 79 74 65 90 20 74 6F 90 20 74 68 65 ol byte. to. the
001180: 90 20 38 32 35 35 2C 90 20 73 69 6D 70 6C 79 90 . 8255,. simply.
001190: 20 73 65 6E 74 90 20 74 68 65 20 62 79 74 65 20 sent. the byte
0011A0: 74 6F 20 70 6F 72 74 20 0D 8A 26 46 37 78 78 2E to port ..&F7xx.
0011B0: 20 28 4E 4F 54 45 3A 20 54 68 65 20 63 6F 6E 74 (NOTE: The cont
0011C0: 72 6F 6C 90 20 62 79 74 65 90 20 63 61 6E 90 20 rol. byte. can.
0011D0: 6F 6E 6C 79 90 20 62 65 90 20 77 72 69 74 74 65 only. be. writte
0011E0: 6E 2C 90 20 69 74 20 63 61 6E 6E 6F 74 20 62 65 n,. it cannot be
0011F0: 20 0D 8A 72 65 61 64 2E 29 0D 0D 54 68 65 20 66 ..read.)..The f
001200: 38 32 35 35 20 50 61 72 61 6C 6C 65 6C 20 50 65 8255 Parallel Pe
001210: 72 69 70 68 65 72 61 6C 20 49 6E 74 65 72 66 61 ripheral Interfa
001220: 63 65 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ce.-------------
001230: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
001240: 2D 2D 2D 2D 2D 0D 0D 54 68 65 20 38 32 35 35 20 -----..The 8255
001250: 69 73 20 61 20 67 65 6E 65 72 61 6C 20 70 75 72 is a general pur
001260: 70 6F 73 65 90 20 69 6E 70 75 74 90 20 6F 75 74 pose. input. out
001270: 70 75 74 90 20 63 68 69 70 2E 20 49 74 20 69 73 put. chip. It is
001280: 20 63 6F 6E 6E 65 63 74 65 64 20 74 6F 20 0D 8A connected to ..
001290: 74 68 65 20 50 53 47 2C 20 6B 65 79 62 6F 61 72 the PSG, keyboar
0012A0: 64 20 61 6E 64 20 63 61 73 73 65 74 74 65 20 72 d and cassette r
0012B0: 65 63 6F 72 64 65 72 2E 0D 0D 50 72 6F 67 72 61 ecorder...Progra
0012C0: 6D 6D 69 6E 67 20 74 68 65 20 38 32 35 35 0D 2D mming the 8255.-
0012D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0012E0: 2D 2D 2D 0D 0D 54 68 65 20 38 32 35 35 20 68 61 ---..The 8255 ha
0012F0: 73 20 33 20 38 2D 62 69 74 90 20 70 6F 72 74 73 s 3 8-bit. ports
001300: 90 20 28 41 2C 42 90 20 61 6E 64 90 20 43 29 2C . (A,B. and. C),
001310: 90 20 65 61 63 68 90 20 6F 66 20 77 68 69 63 68 . each. of which
001320: 20 63 61 6E 20 68 61 76 65 20 61 20 0D 8A 64 69 can have a ..di
001330: 66 66 65 72 65 6E 74 20 49 2F 4F 20 53 74 61 74 fferent I/O Stat
001340: 75 73 90 20 28 69 2E 65 2E 90 20 69 6E 70 75 74 us. (i.e.. input
001350: 90 20 6F 72 90 20 6F 75 74 70 75 74 29 2E 90 20 . or. output)..
001360: 50 6F 72 74 90 20 43 90 20 63 61 6E 20 61 6C 73 Port. C. can als
001370: 6F 20 62 65 20 0D 8A 70 72 6F 67 72 61 6D 6D 65 o be ..programme
001380: 64 20 74 6F 20 6F 70 65 72 61 74 65 20 69 6E 20 d to operate in
001390: 74 77 6F 20 68 61 6C 76 65 73 2E 20 28 41 73 20 two halves. (As
0013A0: 74 77 6F 20 73 65 70 61 72 61 74 65 20 34 2D 62 two separate 4-b
0013B0: 69 74 20 70 6F 72 74 73 29 2E 20 0D 0D 54 68 65 it ports). ..The
0013C0: 72 65 20 61 72 65 20 33 90 20 62 61 73 69 63 90 re are 3. basic.
0013D0: 20 6D 6F 64 65 73 90 20 6F 66 90 20 6F 70 65 72 modes. of. oper
0013E0: 61 74 69 6F 6E 90 20 75 6E 64 65 72 90 20 77 68 ation. under. wh
0013F0: 69 63 68 90 20 74 68 65 90 20 70 6F 72 74 73 20 ich. the. ports
001400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
001410: 01 00 01 00 02 09 4E E5 01 00 C1 02 00 00 00 02 ......N.........
001420: 01 00 C6 02 00 00 00 02 01 00 C2 02 00 00 00 02 ................
001430: 01 00 C7 02 00 00 00 02 01 00 C3 02 00 00 00 02 ................
001440: 01 00 C8 02 00 00 00 02 01 00 C4 02 00 00 00 02 ................
001450: 01 00 C9 02 00 00 00 02 01 00 C5 02 00 00 00 02 ................
001460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001500: 75 6E 63 74 69 6F 6E 20 74 6F 20 62 65 20 65 78 unction to be ex
001510: 65 63 75 74 65 64 20 62 79 20 74 68 65 90 20 38 ecuted by the. 8
001520: 32 35 35 90 20 69 73 20 64 65 70 65 6E 64 61 6E 255. is dependan
001530: 74 20 6F 6E 20 74 68 65 20 73 74 61 74 65 20 6F t on the state o
001540: 66 20 0D 8A 62 69 74 20 37 2E 0D 0D 49 66 20 62 f ..bit 7...If b
001550: 69 74 20 37 20 69 73 20 31 2C 20 74 68 65 20 72 it 7 is 1, the r
001560: 65 6D 61 69 6E 69 6E 67 90 20 62 69 74 73 90 20 emaining. bits.
001570: 61 72 65 20 75 73 65 64 20 74 6F 20 64 65 66 69 are used to defi
001580: 6E 65 20 74 68 65 20 49 2F 4F 20 73 74 61 74 75 ne the I/O statu
001590: 73 2C 20 0D 8A 61 6E 64 20 6F 70 65 72 61 74 69 s, ..and operati
0015A0: 6E 67 20 6D 6F 64 65 20 6F 66 20 65 61 63 68 20 ng mode of each
0015B0: 70 6F 72 74 2E 20 0D 0D 49 66 20 62 69 74 20 37 port. ..If bit 7
0015C0: 20 69 73 20 30 2C 20 74 68 65 20 72 65 6D 61 69 is 0, the remai
0015D0: 6E 69 6E 67 90 20 62 69 74 73 90 20 61 72 65 90 ning. bits. are.
0015E0: 20 75 73 65 64 20 74 6F 20 64 65 74 65 72 6D 69 used to determi
0015F0: 6E 65 20 77 68 61 74 20 62 69 74 20 69 73 20 0D ne what bit is .
001600: 8A 73 65 74 20 28 73 65 74 20 74 6F 20 31 29 20 .set (set to 1)
001610: 6F 72 20 72 65 73 65 74 20 28 73 65 74 20 74 6F or reset (set to
001620: 20 30 29 20 6F 66 20 70 6F 72 74 20 43 2E 0D 0D 0) of port C...
001630: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001640: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001650: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001660: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001670: 3D 3D 3D 3D 3D 3D 0D 0D 43 6F 6E 66 69 67 75 72 ======..Configur
001680: 61 74 69 6F 6E 20 63 6F 6E 74 72 6F 6C 20 62 79 ation control by
001690: 74 65 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D te.-------------
0016A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 57 -------------..W
0016B0: 68 65 6E 20 62 69 74 20 37 20 69 73 20 73 65 74 hen bit 7 is set
0016C0: 20 74 6F 20 31 2C 20 74 68 65 20 63 6F 6D 6D 61 to 1, the comma
0016D0: 6E 64 20 62 79 74 65 20 6F 70 65 72 61 74 65 73 nd byte operates
0016E0: 20 69 6E 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E in the followin
0016F0: 67 20 0D 8A 77 61 79 3A 0D 0D 42 69 74 20 37 3A g ..way:..Bit 7:
001700: 65 20 6D 61 79 20 63 72 61 73 68 2E 20 28 54 68 e may crash. (Th
001710: 65 20 66 69 72 6D 77 61 72 65 90 20 65 78 70 65 e firmware. expe
001720: 63 74 73 90 20 74 68 65 90 20 6F 70 65 72 61 74 cts. the. operat
001730: 69 6E 67 20 6D 6F 64 65 73 20 74 6F 20 62 65 20 ing modes to be
001740: 0D 8A 74 68 65 20 73 61 6D 65 20 61 73 20 67 69 ..the same as gi
001750: 76 65 6E 20 62 65 6C 6F 77 29 2E 20 0D 0D 50 6F ven below). ..Po
001760: 72 74 20 41 20 28 50 6F 72 74 20 61 64 64 72 65 rt A (Port addre
001770: 73 73 3A 26 46 34 78 78 29 20 28 49 2F 4F 20 53 ss:&F4xx) (I/O S
001780: 74 61 74 75 73 3A 20 4F 75 74 70 75 74 29 20 28 tatus: Output) (
001790: 4F 70 65 72 61 74 69 6E 67 20 6D 6F 64 65 3A 20 Operating mode:
0017A0: 30 29 0D 2D 2D 2D 2D 2D 2D 0D 0D 42 69 74 20 37 0).------..Bit 7
0017B0: 3A 20 7D 20 50 53 47 20 64 61 74 61 0D 42 69 74 : } PSG data.Bit
0017C0: 20 36 3A 20 7D 0D 42 69 74 20 35 3A 20 7D 0D 42 6: }.Bit 5: }.B
0017D0: 69 74 20 34 3A 20 7D 0D 42 69 74 20 33 3A 20 7D it 4: }.Bit 3: }
0017E0: 0D 42 69 74 20 32 3A 20 7D 0D 42 69 74 20 31 3A .Bit 2: }.Bit 1:
0017F0: 20 7D 0D 42 69 74 20 30 3A 20 7D 0D 0D 3D 3D 3D }.Bit 0: }..===
001800: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001810: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001820: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001830: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001840: 3D 3D 3D 0D 0D 50 6F 72 74 20 42 20 28 50 6F 72 ===..Port B (Por
001850: 74 20 61 64 64 72 65 73 73 3A 20 26 46 35 78 78 t address: &F5xx
001860: 29 20 28 49 2F 4F 20 53 74 61 74 75 73 3A 20 49 ) (I/O Status: I
001870: 6E 70 75 74 29 20 28 4F 70 65 72 61 74 69 6E 67 nput) (Operating
001880: 20 6D 6F 64 65 3A 20 30 29 0D 2D 2D 2D 2D 2D 2D mode: 0).------
001890: 0D 0D 42 69 74 90 37 3A 90 43 61 73 73 65 74 74 ..Bit.7:.Cassett
0018A0: 65 20 72 65 61 64 20 64 61 74 61 0D 0D 42 69 74 e read data..Bit
0018B0: 20 36 3A 20 50 72 69 6E 74 65 72 20 63 6F 6E 66 6: Printer conf
0018C0: 69 67 75 72 61 74 69 6F 6E 0D 09 31 3A 20 4E 6F iguration..1: No
0018D0: 74 2D 72 65 61 64 79 2C 20 20 30 3A 20 52 65 61 t-ready, 0: Rea
0018E0: 64 79 0D 0D 42 69 74 20 35 3A 20 45 78 70 61 6E dy..Bit 5: Expan
0018F0: 73 69 6F 6E 20 70 65 72 69 70 68 65 72 61 6C 20 sion peripheral
001900: 20 43 6F 6E 74 72 6F 6C 20 62 79 74 65 20 66 75 Control byte fu
001910: 6E 63 74 69 6F 6E 20 28 31 3D 43 6F 6E 66 69 67 nction (1=Config
001920: 75 72 61 74 69 6F 6E 20 63 6F 6E 74 72 6F 6C 20 uration control
001930: 62 79 74 65 29 0D 0D 42 69 74 20 36 3A 20 7D 20 byte)..Bit 6: }
001940: 4F 70 65 72 61 74 69 6E 67 20 4D 6F 64 65 20 28 Operating Mode (
001950: 50 6F 72 74 20 41 20 61 6E 64 20 50 6F 72 74 20 Port A and Port
001960: 43 20 75 70 70 65 72 29 0D 42 69 74 20 35 3A 20 C upper).Bit 5:
001970: 7D 20 0D 0D 42 69 74 20 34 3A 20 50 6F 72 74 20 } ..Bit 4: Port
001980: 41 20 49 2F 4F 20 53 74 61 74 75 73 0D 09 20 30 A I/O Status.. 0
001990: 3A 20 4F 75 74 70 75 74 2C 20 31 3A 20 49 6E 70 : Output, 1: Inp
0019A0: 75 74 0D 0D 42 69 74 20 33 3A 20 50 6F 72 74 20 ut..Bit 3: Port
0019B0: 43 20 28 75 70 70 65 72 29 20 49 2F 4F 20 53 74 C (upper) I/O St
0019C0: 61 74 75 73 20 0D 09 20 30 3A 20 4F 75 74 70 75 atus .. 0: Outpu
0019D0: 74 2C 20 31 3A 20 49 6E 70 75 74 0D 0D 42 69 74 t, 1: Input..Bit
0019E0: 20 32 3A 20 4F 70 65 72 61 74 69 6E 67 20 4D 6F 2: Operating Mo
0019F0: 64 65 20 73 65 6C 65 63 74 69 6F 6E 20 28 50 6F de selection (Po
001A00: 72 74 20 42 20 61 6E 64 20 50 6F 72 74 20 43 20 rt B and Port C
001A10: 6C 6F 77 65 72 29 0D 0D 42 69 74 20 31 3A 20 50 lower)..Bit 1: P
001A20: 6F 72 74 20 42 20 49 2F 4F 20 53 74 61 74 75 73 ort B I/O Status
001A30: 0D 09 30 3A 20 4F 75 74 70 75 74 2C 20 31 3A 20 ..0: Output, 1:
001A40: 49 6E 70 75 74 0D 0D 42 69 74 20 30 3A 20 50 6F Input..Bit 0: Po
001A50: 72 74 20 43 20 28 6C 6F 77 65 72 29 20 49 2F 4F rt C (lower) I/O
001A60: 20 53 74 61 74 75 73 0D 09 30 3A 20 4F 75 74 70 Status..0: Outp
001A70: 75 74 2C 20 31 3A 20 49 6E 70 75 74 0D 0D 50 6F ut, 1: Input..Po
001A80: 72 74 20 41 20 61 6E 64 20 50 6F 72 74 20 43 20 rt A and Port C
001A90: 28 75 70 70 65 72 29 20 4F 70 65 72 61 74 69 6E (upper) Operatin
001AA0: 67 20 6D 6F 64 65 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D g mode.---------
001AB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
001AC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 42 -------------..B
001AD0: 69 74 20 36 09 09 42 69 74 20 35 09 09 4D 6F 64 it 6..Bit 5..Mod
001AE0: 65 20 73 65 6C 65 63 74 69 6F 6E 0D 2D 2D 2D 2D e selection.----
001AF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
001B00: 64 65 74 65 63 74 0D 09 31 3A 20 45 78 70 61 6E detect..1: Expan
001B10: 73 69 6F 6E 20 70 65 72 69 70 68 65 72 61 6C 20 sion peripheral
001B20: 70 72 65 73 65 6E 74 2C 20 30 3A 20 4E 6F 74 20 present, 0: Not
001B30: 70 72 65 73 65 6E 74 0D 0D 42 69 74 20 34 3A 20 present..Bit 4:
001B40: 53 63 72 65 65 6E 20 72 65 66 72 65 73 68 20 66 Screen refresh f
001B50: 72 65 71 75 65 6E 63 79 20 28 64 65 66 69 6E 65 requency (define
001B60: 64 20 62 79 20 68 61 72 64 77 61 72 65 29 0D 09 d by hardware)..
001B70: 31 3A 20 35 30 48 7A 20 20 20 20 30 3A 20 36 30 1: 50Hz 0: 60
001B80: 48 7A 0D 0D 42 69 74 20 33 3A 20 7D 20 43 6F 6D Hz..Bit 3: } Com
001B90: 70 75 74 65 72 20 6E 61 6D 65 20 6F 6E 20 70 6F puter name on po
001BA0: 77 65 72 2D 75 70 2E 0D 42 69 74 20 32 3A 20 7D wer-up..Bit 2: }
001BB0: 0D 42 69 74 20 31 3A 20 7D 0D 0D 42 69 74 20 30 .Bit 1: }..Bit 0
001BC0: 3A 20 56 53 59 4E 43 20 73 74 61 74 75 73 20 28 : VSYNC status (
001BD0: 46 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 73 74 Frame flyback st
001BE0: 61 74 75 73 29 0D 09 31 3A 20 56 53 59 4E 43 20 atus)..1: VSYNC
001BF0: 6F 63 63 75 72 65 64 2C 20 30 3A 20 6E 6F 20 56 occured, 0: no V
001C00: 53 59 4E 43 0D 0D 54 61 62 6C 65 20 73 68 6F 77 SYNC..Table show
001C10: 69 6E 67 20 43 6F 6D 70 75 74 65 72 20 6E 61 6D ing Computer nam
001C20: 65 20 6F 6E 20 70 6F 77 65 72 2D 75 70 3A 0D 0D e on power-up:..
001C30: 42 69 74 20 33 20 20 20 20 20 20 42 69 74 20 32 Bit 3 Bit 2
001C40: 20 20 20 20 42 69 74 20 31 20 20 20 20 43 6F 6D Bit 1 Com
001C50: 70 75 74 65 72 20 6E 61 6D 65 0D 2D 2D 2D 2D 2D puter name.-----
001C60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
001C70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
001C80: 2D 2D 2D 0D 0D 20 20 20 30 20 20 20 20 20 20 20 ---.. 0
001C90: 30 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 0 0
001CA0: 49 73 70 0D 20 20 20 30 20 20 20 20 20 20 20 30 Isp. 0 0
001CB0: 20 20 20 20 20 20 31 20 20 20 20 20 20 20 20 54 1 T
001CC0: 72 69 75 6D 70 68 0D 20 20 20 30 20 20 20 20 20 riumph. 0
001CD0: 20 20 31 20 20 20 20 20 20 30 20 20 20 20 20 20 1 0
001CE0: 20 20 53 61 69 73 68 6F 0D 20 20 20 30 20 20 20 Saisho. 0
001CF0: 20 20 20 20 31 20 20 20 20 20 20 31 20 20 20 20 1 1
001D00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
001D10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 30 09 09 ----------. 0..
001D20: 20 20 30 09 09 4D 6F 64 65 20 30 09 0D 20 20 30 0..Mode 0.. 0
001D30: 09 09 20 20 31 09 09 4D 6F 64 65 20 31 0D 20 20 .. 1..Mode 1.
001D40: 31 09 09 20 20 30 09 09 4D 6F 64 65 20 32 0D 20 1.. 0..Mode 2.
001D50: 20 31 09 09 20 20 31 09 09 4D 6F 64 65 20 32 0D 1.. 1..Mode 2.
001D60: 0D 50 6F 72 74 20 42 20 61 6E 64 20 50 6F 72 74 .Port B and Port
001D70: 20 43 20 28 6C 6F 77 65 72 29 20 6F 70 65 72 61 C (lower) opera
001D80: 74 69 6E 67 20 6D 6F 64 65 0D 2D 2D 2D 2D 2D 2D ting mode.------
001D90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
001DA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
001DB0: 2D 2D 0D 0D 42 69 74 20 32 09 09 4D 6F 64 65 20 --..Bit 2..Mode
001DC0: 53 65 6C 65 63 74 69 6F 6E 0D 2D 2D 2D 2D 2D 2D Selection.------
001DD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
001DE0: 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 30 09 09 4D --------.. 0..M
001DF0: 6F 64 65 20 30 0D 20 20 31 09 09 4D 6F 64 65 20 ode 0. 1..Mode
001E00: 31 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 1..=============
001E10: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001E20: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001E30: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001E40: 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 42 69 74 20 53 =========..Bit S
001E50: 65 74 2F 52 65 73 65 74 20 63 6F 6E 74 72 6F 6C et/Reset control
001E60: 20 62 79 74 65 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D byte.----------
001E70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
001E80: 0D 0D 57 68 65 6E 20 62 69 74 20 37 20 69 73 20 ..When bit 7 is
001E90: 73 65 74 20 74 6F 90 20 30 2C 90 20 74 68 65 90 set to. 0,. the.
001EA0: 20 63 6F 6E 74 72 6F 6C 90 20 62 79 74 65 20 6F control. byte o
001EB0: 70 65 72 61 74 65 73 20 69 6E 20 74 68 65 20 66 perates in the f
001EC0: 6F 6C 6C 6F 77 69 6E 67 20 0D 8A 77 61 79 3A 0D ollowing ..way:.
001ED0: 0D 42 69 74 20 37 3A 20 43 6F 6E 74 72 6F 6C 20 .Bit 7: Control
001EE0: 62 79 74 65 20 66 75 6E 63 74 69 6F 6E 20 28 30 byte function (0
001EF0: 3D 42 69 74 20 53 65 74 2F 52 65 73 65 74 20 63 =Bit Set/Reset c
001F00: 20 20 20 20 53 6F 6C 61 76 6F 78 0D 20 20 20 31 Solavox. 1
001F10: 20 20 20 20 20 20 20 30 20 20 20 20 20 20 30 20 0 0
001F20: 20 20 20 20 20 20 20 41 77 61 0D 20 20 20 31 20 Awa. 1
001F30: 20 20 20 20 20 20 30 20 20 20 20 20 20 31 20 20 0 1
001F40: 20 20 20 20 20 20 53 63 68 6E 65 69 64 65 72 0D Schneider.
001F50: 20 20 20 31 20 20 20 20 20 20 20 31 20 20 20 20 1 1
001F60: 20 20 30 20 20 20 20 20 20 20 20 4F 72 69 6F 6E 0 Orion
001F70: 0D 20 20 20 31 20 20 20 20 20 20 20 31 20 20 20 . 1 1
001F80: 20 20 20 31 20 20 20 20 20 20 20 20 41 6D 73 74 1 Amst
001F90: 72 61 64 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D rad..===========
001FA0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001FB0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001FC0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
001FD0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 50 6F 72 ===========..Por
001FE0: 74 20 43 20 28 50 6F 72 74 20 61 64 64 72 65 73 t C (Port addres
001FF0: 73 3A 20 26 46 36 78 78 29 20 28 49 2F 4F 20 53 s: &F6xx) (I/O S
002000: 74 61 74 75 73 3A 20 4F 75 74 70 75 74 29 20 28 tatus: Output) (
002010: 4F 70 65 72 61 74 69 6E 67 20 6D 6F 64 65 3A 20 Operating mode:
002020: 30 29 0D 2D 2D 2D 2D 2D 2D 0D 0D 42 69 74 20 37 0).------..Bit 7
002030: 3A 20 7D 20 50 53 47 20 63 6F 6E 74 72 6F 6C 0D : } PSG control.
002040: 42 69 74 20 36 3A 20 7D 0D 0D 42 69 74 90 35 3A Bit 6: }..Bit.5:
002050: 20 43 61 73 73 65 74 74 65 20 77 72 69 74 65 20 Cassette write
002060: 64 61 74 61 0D 0D 42 69 74 20 34 3A 20 43 61 73 data..Bit 4: Cas
002070: 73 65 74 74 65 20 6D 6F 74 6F 72 20 63 6F 6E 74 sette motor cont
002080: 72 6F 6C 0D 20 20 20 20 20 20 20 20 31 3A 20 54 rol. 1: T
002090: 75 72 6E 20 6D 6F 74 6F 72 20 6F 6E 2C 20 30 3A urn motor on, 0:
0020A0: 20 54 75 72 6E 20 6D 6F 74 6F 72 20 6F 66 66 0D Turn motor off.
0020B0: 8A 0D 42 69 74 20 33 3A 20 7D 20 4B 65 79 62 6F ..Bit 3: } Keybo
0020C0: 61 72 64 20 6C 69 6E 65 20 74 6F 20 62 65 20 73 ard line to be s
0020D0: 63 61 6E 6E 65 64 20 28 30 2D 31 30 29 0D 42 69 canned (0-10).Bi
0020E0: 74 20 32 3A 20 7D 0D 42 69 74 20 31 3A 20 7D 0D t 2: }.Bit 1: }.
0020F0: 42 69 74 20 30 3A 20 7D 0D 0D 3D 3D 3D 3D 3D 3D Bit 0: }..======
002100: 6F 6E 74 72 6F 6C 20 62 79 74 65 29 0D 0D 42 69 ontrol byte)..Bi
002110: 74 20 36 3A 20 7D 20 4E 6F 74 20 75 73 65 64 2E t 6: } Not used.
002120: 20 28 73 65 6E 64 20 30 29 0D 42 69 74 20 35 3A (send 0).Bit 5:
002130: 20 7D 0D 42 69 74 20 34 3A 20 7D 0D 0D 42 69 74 }.Bit 4: }..Bit
002140: 20 33 3A 20 7D 20 42 69 74 20 74 6F 20 63 68 61 3: } Bit to cha
002150: 6E 67 65 2E 0D 42 69 74 20 32 3A 20 7D 0D 42 69 nge..Bit 2: }.Bi
002160: 74 20 31 3A 20 7D 0D 0D 42 69 74 20 30 3A 20 42 t 1: }..Bit 0: B
002170: 69 74 20 6F 70 65 72 61 74 69 6F 6E 0D 09 31 3A it operation..1:
002180: 20 53 65 74 20 62 69 74 20 28 6D 61 6B 65 20 62 Set bit (make b
002190: 69 74 3D 31 29 2C 20 30 3A 20 52 65 73 65 74 20 it=1), 0: Reset
0021A0: 62 69 74 20 28 6D 61 6B 65 20 62 69 74 3D 30 29 bit (make bit=0)
0021B0: 0D 0D 54 61 62 6C 65 20 74 6F 20 73 68 6F 77 20 ..Table to show
0021C0: 68 6F 77 20 62 69 74 20 74 6F 20 63 68 61 6E 67 how bit to chang
0021D0: 65 20 69 73 20 63 6F 64 65 64 3A 0D 0D 42 69 74 e is coded:..Bit
0021E0: 20 33 09 09 42 69 74 20 32 09 09 42 69 74 20 31 3..Bit 2..Bit 1
0021F0: 09 09 42 69 74 20 73 65 6C 65 63 74 65 64 0D 2D ..Bit selected.-
002200: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
002210: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
002220: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
002230: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 30 09 09 -----------. 0..
002240: 20 20 30 09 09 20 20 30 09 09 42 69 74 20 30 0D 0.. 0..Bit 0.
002250: 20 30 09 09 20 20 30 09 09 20 20 31 09 09 42 69 0.. 0.. 1..Bi
002260: 74 20 31 0D 20 30 09 09 20 20 31 09 09 20 20 30 t 1. 0.. 1.. 0
002270: 09 09 42 69 74 20 32 0D 20 30 09 09 20 20 31 09 ..Bit 2. 0.. 1.
002280: 09 20 20 31 09 09 42 69 74 20 33 0D 20 31 09 09 . 1..Bit 3. 1..
002290: 20 20 30 09 09 20 20 30 09 09 42 69 74 20 34 0D 0.. 0..Bit 4.
0022A0: 20 31 09 09 20 20 30 09 09 20 20 31 09 09 42 69 1.. 0.. 1..Bi
0022B0: 74 20 35 0D 20 31 09 09 20 20 31 09 09 20 20 30 t 5. 1.. 1.. 0
0022C0: 09 09 42 69 74 20 36 0D 20 31 09 09 20 20 31 09 ..Bit 6. 1.. 1.
0022D0: 09 20 20 31 09 09 42 69 74 20 37 0D 0D 3D 3D 3D . 1..Bit 7..===
0022E0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0022F0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002300: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002310: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002320: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002330: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002340: 0D 0D 50 72 6F 67 72 61 6D 6D 69 6E 67 20 45 78 ..Programming Ex
002350: 61 6D 70 6C 65 73 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D amples.---------
002360: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 31 29 20 -----------..1)
002370: 55 73 69 6E 67 20 74 68 65 20 63 6F 6E 74 72 6F Using the contro
002380: 6C 20 62 79 74 65 0D 0D 61 29 20 53 65 74 74 69 l byte..a) Setti
002390: 6E 67 20 62 69 74 20 37 20 6F 66 20 70 6F 72 74 ng bit 7 of port
0023A0: 20 43 20 74 6F 20 31 2C 0D 0D 4C 44 20 42 2C 26 C to 1,..LD B,&
0023B0: 46 37 09 09 3B 38 32 35 35 20 43 6F 6E 74 72 6F F7..;8255 Contro
0023C0: 6C 20 70 6F 72 74 0D 4C 44 20 41 2C 25 30 30 30 l port.LD A,%000
0023D0: 30 31 31 31 31 09 09 3B 42 69 74 20 53 65 74 2F 01111..;Bit Set/
0023E0: 72 65 73 65 74 20 66 75 6E 63 74 69 6F 6E 0D 4F reset function.O
0023F0: 55 54 20 28 43 29 2C 41 09 09 3B 53 65 6E 64 20 UT (C),A..;Send
002400: 69 74 20 74 6F 20 38 32 35 35 0D 52 45 54 0D 0D it to 8255.RET..
002410: 62 29 20 53 65 74 20 70 6F 72 74 20 41 90 20 74 b) Set port A. t
002420: 6F 90 20 69 6E 70 75 74 2C 90 20 6F 70 65 72 61 o. input,. opera
002430: 74 69 6E 67 90 20 69 6E 90 20 6D 6F 64 65 90 20 ting. in. mode.
002440: 30 2C 90 20 70 6F 72 74 90 20 42 20 74 6F 20 6F 0,. port. B to o
002450: 75 74 70 75 74 2C 20 0D 8A 6F 70 65 72 61 74 69 utput, ..operati
002460: 6E 67 20 69 6E 20 6D 6F 64 65 20 30 20 61 6E 64 ng in mode 0 and
002470: 20 70 6F 72 74 20 43 20 74 6F 20 69 6E 70 75 74 port C to input
002480: 2C 20 6F 70 65 72 61 74 69 6E 67 20 69 6E 20 6D , operating in m
002490: 6F 64 65 20 30 2E 0D 0D 4C 44 20 42 2C 26 46 37 ode 0...LD B,&F7
0024A0: 09 09 3B 38 32 35 35 20 43 6F 6E 74 72 6F 6C 20 ..;8255 Control
0024B0: 70 6F 72 74 0D 4C 44 20 41 2C 25 31 30 30 31 31 port.LD A,%10011
0024C0: 30 30 31 09 09 3B 43 6F 6E 66 69 67 75 72 61 74 001..;Configurat
0024D0: 69 6F 6E 20 66 75 6E 63 74 69 6F 6E 0D 4F 55 54 ion function.OUT
0024E0: 20 28 43 29 2C 41 09 09 3B 53 65 6E 64 20 69 74 (C),A..;Send it
0024F0: 20 74 6F 20 38 32 35 35 0D 52 45 54 0D 0D 3D 3D to 8255.RET..==
002500: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002510: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002520: 3D 3D 0D 0D 50 6F 72 74 20 55 73 61 67 65 0D 2D ==..Port Usage.-
002530: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 46 6F 72 20 65 ---------..For e
002540: 61 63 68 20 70 6F 72 74 2C 20 74 68 65 20 70 6F ach port, the po
002550: 72 74 20 61 64 64 72 65 73 73 90 20 28 61 74 90 rt address. (at.
002560: 20 77 68 69 63 68 90 20 74 68 65 20 70 6F 72 74 which. the port
002570: 20 63 61 6E 20 62 65 20 61 63 63 65 73 73 65 64 can be accessed
002580: 29 20 0D 8A 69 74 27 73 20 6E 6F 72 6D 61 6C 20 ) ..it's normal
002590: 49 2F 4F 20 53 74 61 74 75 73 20 28 75 6E 6C 65 I/O Status (unle
0025A0: 73 73 90 20 63 68 61 6E 67 65 64 90 20 62 79 90 ss. changed. by.
0025B0: 20 74 68 65 20 75 73 65 72 29 2C 20 69 74 27 73 the user), it's
0025C0: 20 6F 70 65 72 61 74 69 6E 67 20 0D 8A 6D 6F 64 operating ..mod
0025D0: 65 20 28 75 6E 6C 65 73 73 20 63 68 61 6E 67 65 e (unless change
0025E0: 64 20 62 79 20 74 68 65 20 75 73 65 72 29 20 61 d by the user) a
0025F0: 72 65 20 67 69 76 65 6E 2E 0D 0D 46 6F 72 20 6D re given...For m
002600: 6F 72 65 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 ore information
002610: 6F 6E 20 61 90 20 70 61 72 74 69 63 75 6C 61 72 on a. particular
002620: 90 20 66 75 6E 63 74 69 6F 6E 90 20 6F 66 20 65 . function. of e
002630: 61 63 68 20 70 6F 72 74 2C 20 73 65 65 20 74 68 ach port, see th
002640: 65 20 0D 8A 61 70 70 72 6F 70 69 61 74 65 20 70 e ..appropiate p
002650: 61 72 74 20 6F 66 20 74 68 65 20 43 50 43 20 47 art of the CPC G
002660: 75 69 64 65 2E 0D 0D 4E 4F 54 45 3A 20 49 66 20 uide...NOTE: If
002670: 79 6F 75 20 61 72 65 20 75 73 69 6E 67 20 74 68 you are using th
002680: 65 20 66 69 72 6D 77 61 72 65 2C 20 61 6C 77 61 e firmware, alwa
002690: 79 73 20 72 65 74 75 72 6E 20 74 68 65 20 6F 70 ys return the op
0026A0: 65 72 61 74 69 6E 67 20 6D 6F 64 65 73 20 0D 8A erating modes ..
0026B0: 61 6E 64 20 49 2F 4F 20 73 74 61 74 75 73 20 6F and I/O status o
0026C0: 66 20 74 68 65 20 70 6F 72 74 73 20 75 73 65 64 f the ports used
0026D0: 90 20 74 6F 20 74 68 65 69 72 20 73 74 61 74 75 . to their statu
0026E0: 73 20 62 65 6C 6F 77 2C 20 6F 74 68 65 72 77 69 s below, otherwi
0026F0: 73 65 20 74 68 65 20 0D 8A 66 69 72 6D 77 61 72 se the ..firmwar
002700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
002710: 02 00 01 00 02 09 4E E5 02 00 C1 02 00 00 00 02 ......N.........
002720: 02 00 C6 02 00 00 00 02 02 00 C2 02 00 00 00 02 ................
002730: 02 00 C7 02 00 00 00 02 02 00 C3 02 00 00 00 02 ................
002740: 02 00 C8 02 00 00 00 02 02 00 C4 02 00 00 00 02 ................
002750: 02 00 C9 02 00 00 00 02 02 00 C5 02 00 00 00 02 ................
002760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002800: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002810: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002820: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002830: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002840: 3D 3D 3D 3D 0D 0D 32 29 20 55 73 69 6E 67 20 70 ====..2) Using p
002850: 6F 72 74 20 41 2F 42 2F 43 2C 0D 0D 49 6E 20 74 ort A/B/C,..In t
002860: 68 69 73 20 65 78 61 6D 70 6C 65 2C 20 70 6F 72 his example, por
002870: 74 20 41 20 69 73 20 73 65 74 20 74 6F 90 20 6F t A is set to. o
002880: 75 74 70 75 74 2C 20 70 6F 72 74 20 42 20 69 73 utput, port B is
002890: 20 73 65 74 20 74 6F 20 69 6E 70 75 74 2C 20 61 set to input, a
0028A0: 6E 64 20 0D 8A 70 6F 72 74 20 43 20 69 73 20 73 nd ..port C is s
0028B0: 65 74 20 74 6F 20 6F 75 74 70 75 74 2C 20 61 6E et to output, an
0028C0: 64 20 74 68 65 79 20 61 72 65 20 61 6C 6C 20 6F d they are all o
0028D0: 70 65 72 61 74 69 6E 67 20 69 6E 20 6D 6F 64 65 perating in mode
0028E0: 20 30 2E 0D 0D 57 65 20 77 69 6C 6C 20 6F 6E 6C 0...We will onl
0028F0: 79 20 62 65 20 75 73 69 6E 67 20 70 6F 72 74 20 y be using port
002900: 41 20 66 6F 72 20 74 68 65 73 65 20 65 78 61 6D A for these exam
002910: 70 6C 65 73 2E 0D 0D 61 29 20 52 65 61 64 69 6E ples...a) Readin
002920: 67 20 66 72 6F 6D 20 70 6F 72 74 20 41 2C 0D 0D g from port A,..
002930: 09 09 09 3B 53 65 74 20 70 6F 72 74 20 41 20 74 ...;Set port A t
002940: 6F 20 69 6E 70 75 74 0D 20 20 20 20 20 20 20 20 o input.
002950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
002960: 0D 4C 44 20 42 2C 26 46 37 09 09 3B 38 32 35 35 .LD B,&F7..;8255
002970: 20 43 6F 6E 74 72 6F 6C 20 70 6F 72 74 0D 4C 44 Control port.LD
002980: 20 41 2C 25 31 30 30 31 30 30 31 30 09 09 3B 43 A,%10010010..;C
002990: 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 66 75 6E onfiguration fun
0029A0: 63 74 69 6F 6E 0D 4F 55 54 20 28 43 29 2C 41 09 ction.OUT (C),A.
0029B0: 09 3B 53 65 6E 64 20 74 6F 20 38 32 35 35 0D 0D .;Send to 8255..
0029C0: 4C 44 20 42 2C 26 46 34 09 09 3B 50 6F 72 74 20 LD B,&F4..;Port
0029D0: 41 20 70 6F 72 74 20 61 64 64 72 65 73 73 0D 49 A port address.I
0029E0: 4E 20 45 2C 28 43 29 09 09 3B 47 65 74 20 62 79 N E,(C)..;Get by
0029F0: 74 65 20 66 72 6F 6D 20 70 6F 72 74 0D 0D 09 09 te from port....
002A00: 63 74 69 6F 6E 2E 0D 0D 4D 6F 64 65 20 30 20 2D ction...Mode 0 -
002A10: 20 42 61 73 69 63 20 49 6E 70 75 74 2F 4F 75 74 Basic Input/Out
002A20: 70 75 74 0D 4D 6F 64 65 20 31 20 2D 20 53 74 72 put.Mode 1 - Str
002A30: 6F 62 65 64 20 49 6E 70 75 74 2F 4F 75 74 70 75 obed Input/Outpu
002A40: 74 20 2A 2A 4E 4F 54 20 55 53 45 44 20 42 59 20 t **NOT USED BY
002A50: 43 50 43 2A 2A 0D 4D 6F 64 65 20 32 20 2D 20 42 CPC**.Mode 2 - B
002A60: 69 2D 44 69 72 65 63 74 69 6F 6E 61 6C 20 42 75 i-Directional Bu
002A70: 73 20 20 20 2A 2A 4E 4F 54 20 55 53 45 44 20 42 s **NOT USED B
002A80: 59 20 43 50 43 2A 2A 0D 0D 49 6E 20 73 6F 6D 65 Y CPC**..In some
002A90: 20 6F 66 20 74 68 65 73 65 20 6D 6F 64 65 73 20 of these modes
002AA0: 70 6F 72 74 20 20 43 20 20 69 73 20 20 75 73 65 port C is use
002AB0: 64 20 20 61 73 20 61 20 63 6F 6E 74 72 6F 6C 2F d as a control/
002AC0: 73 74 61 74 75 73 20 70 6F 72 74 20 66 6F 72 0D status port for.
002AD0: 70 6F 72 74 20 41 20 6F 72 20 42 2E 20 49 74 20 port A or B. It
002AE0: 63 61 6E 20 20 62 65 20 20 75 73 65 64 20 20 74 can be used t
002AF0: 6F 20 20 63 6F 6E 66 69 72 6D 20 77 68 65 6E 20 o confirm when
002B00: 64 61 74 61 20 74 72 61 6E 73 66 65 72 20 6D 61 data transfer ma
002B10: 79 20 74 61 6B 65 0D 70 6C 61 63 65 2C 20 61 6E y take.place, an
002B20: 64 20 72 65 66 6C 65 63 74 20 61 6E 79 20 6F 74 d reflect any ot
002B30: 68 65 72 20 66 6C 61 67 73 2E 20 54 68 65 20 38 her flags. The 8
002B40: 32 35 35 20 50 50 49 20 69 73 20 74 68 65 72 65 255 PPI is there
002B50: 66 6F 72 65 20 73 75 70 70 6C 69 65 64 0D 77 69 fore supplied.wi
002B60: 74 68 20 74 68 65 20 61 64 64 65 64 20 6F 70 74 th the added opt
002B70: 69 6F 6E 20 66 6F 72 20 74 68 65 20 75 73 65 72 ion for the user
002B80: 20 74 6F 20 73 65 74 20 6F 72 20 72 65 73 65 74 to set or reset
002B90: 20 61 6E 79 20 69 6E 64 69 76 69 64 75 61 6C 20 any individual
002BA0: 62 69 74 73 0D 69 6E 20 70 6F 72 74 20 43 2E 0D bits.in port C..
002BB0: 0D 54 68 65 20 49 2F 4F 20 73 74 61 74 75 73 2C .The I/O status,
002BC0: 20 6D 6F 64 65 20 6F 66 20 6F 70 65 72 61 74 69 mode of operati
002BD0: 6F 6E 20 20 61 6E 64 20 20 62 69 74 20 20 73 65 on and bit se
002BE0: 74 74 69 6E 67 20 69 73 20 64 65 66 69 6E 65 64 tting is defined
002BF0: 20 62 79 20 74 68 65 0D 38 32 35 35 20 50 50 49 by the.8255 PPI
002C00: 09 3B 52 65 67 69 73 74 65 72 20 45 20 68 6F 6C .;Register E hol
002C10: 64 73 20 76 61 6C 75 65 20 66 72 6F 6D 20 70 6F ds value from po
002C20: 72 74 0D 0D 09 09 09 3B 52 65 74 75 72 6E 20 70 rt.....;Return p
002C30: 6F 72 74 20 49 2F 4F 20 73 74 61 74 75 73 20 61 ort I/O status a
002C40: 6E 64 20 6F 70 65 72 61 74 69 6E 67 20 6D 6F 64 nd operating mod
002C50: 65 73 0D 09 09 09 3B 74 6F 20 70 72 65 76 69 6F es....;to previo
002C60: 75 73 20 73 65 74 74 69 6E 67 73 2E 0D 0D 4C 44 us settings...LD
002C70: 20 42 2C 26 46 37 09 09 3B 38 32 35 35 20 43 6F B,&F7..;8255 Co
002C80: 6E 74 72 6F 6C 20 70 6F 72 74 0D 4C 44 20 41 2C ntrol port.LD A,
002C90: 25 31 30 30 30 30 30 31 30 09 09 3B 43 6F 6E 66 %10000010..;Conf
002CA0: 69 67 75 72 61 74 69 6F 6E 20 66 75 6E 63 74 69 iguration functi
002CB0: 6F 6E 0D 4F 55 54 20 28 43 29 2C 41 09 09 3B 53 on.OUT (C),A..;S
002CC0: 65 6E 64 20 74 6F 20 38 32 35 35 0D 52 45 54 0D end to 8255.RET.
002CD0: 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D .===============
002CE0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002CF0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002D00: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
002D10: 3D 3D 3D 3D 3D 3D 3D 0D 0D 62 29 20 57 72 69 74 =======..b) Writ
002D20: 69 6E 67 20 74 6F 20 70 6F 72 74 20 41 2C 0D 0D ing to port A,..
002D30: 09 09 09 3B 53 65 74 20 70 6F 72 74 20 41 20 74 ...;Set port A t
002D40: 6F 20 6F 75 74 70 75 74 0D 20 20 20 20 20 20 20 o output.
002D50: 20 20 20 20 20 20 20 20 20 0D 09 09 09 3B 28 4E ....;(N
002D60: 6F 74 65 20 74 68 65 20 6E 65 78 74 20 66 65 77 ote the next few
002D70: 20 6C 69 6E 65 73 20 61 72 65 20 6E 6F 74 20 6E lines are not n
002D80: 65 63 65 73 73 61 72 79 0D 09 09 09 3B 61 73 20 ecessary....;as
002D90: 70 6F 72 74 20 41 20 69 73 20 61 6C 72 65 61 64 port A is alread
002DA0: 79 20 61 63 74 69 6E 67 20 61 73 20 6F 75 74 70 y acting as outp
002DB0: 75 74 2C 20 68 6F 77 65 76 65 72 0D 09 09 09 3B ut, however....;
002DC0: 69 74 20 69 73 20 67 69 76 65 6E 20 68 65 72 65 it is given here
002DD0: 20 6A 75 73 74 20 74 6F 20 6D 61 6B 65 20 74 68 just to make th
002DE0: 65 20 65 78 61 6D 70 6C 65 0D 09 09 09 3B 6D 6F e example....;mo
002DF0: 72 65 20 75 6E 64 65 72 73 74 61 6E 64 61 62 6C re understandabl
002E00: 20 63 6F 6E 74 72 6F 6C 20 20 62 79 74 65 2E 20 control byte.
002E10: 20 28 54 68 65 20 20 63 6F 6E 74 72 6F 6C 20 20 (The control
002E20: 62 79 74 65 20 20 69 73 20 20 61 63 63 65 73 73 byte is access
002E30: 65 64 20 20 75 73 69 6E 67 20 70 6F 72 74 0D 26 ed using port.&
002E40: 46 37 78 78 2E 28 38 32 35 35 20 43 6F 6E 74 72 F7xx.(8255 Contr
002E50: 6F 6C 20 70 6F 72 74 29 29 0D 0D 54 68 65 20 70 ol port))..The p
002E60: 6F 72 74 73 20 6D 61 79 20 62 65 20 61 63 63 65 orts may be acce
002E70: 73 73 65 64 20 73 65 70 61 72 61 74 65 6C 79 20 ssed separately
002E80: 62 79 20 74 68 65 20 43 50 55 2E 0D 0D 50 6F 72 by the CPU...Por
002E90: 74 20 41 20 69 73 20 61 63 63 65 73 73 65 64 20 t A is accessed
002EA0: 75 73 69 6E 67 20 70 6F 72 74 20 26 46 34 78 78 using port &F4xx
002EB0: 2E 0D 50 6F 72 74 20 42 20 69 73 20 61 63 63 65 ..Port B is acce
002EC0: 73 73 65 64 20 75 73 69 6E 67 20 70 6F 72 74 20 ssed using port
002ED0: 26 46 35 78 78 2E 0D 50 6F 72 74 20 43 20 69 73 &F5xx..Port C is
002EE0: 20 61 63 63 65 73 73 65 64 20 75 73 69 6E 67 20 accessed using
002EF0: 70 6F 72 74 20 26 46 36 78 78 2E 0D 0D 4E 4F 54 port &F6xx...NOT
002F00: 45 3A 0D 0D 4D 6F 64 65 20 30 20 6F 70 65 72 61 E:..Mode 0 opera
002F10: 74 69 6F 6E 3A 0D 0D 4D 6F 64 65 20 30 20 6F 70 tion:..Mode 0 op
002F20: 65 72 61 74 69 6F 6E 20 64 6F 65 73 20 6E 6F 74 eration does not
002F30: 20 72 65 71 75 69 72 65 20 20 6F 74 68 65 72 20 require other
002F40: 20 70 6F 72 74 73 20 20 74 6F 20 62 65 20 75 73 ports to be us
002F50: 65 64 20 74 6F 20 63 6F 6E 74 72 6F 6C 0D 64 61 ed to control.da
002F60: 74 61 20 74 72 61 6E 73 66 65 72 2E 20 44 61 74 ta transfer. Dat
002F70: 61 20 6D 61 79 20 6F 6E 6C 79 20 62 65 20 73 65 a may only be se
002F80: 6E 74 20 74 6F 20 20 61 20 70 6F 72 74 20 69 66 nt to a port if
002F90: 20 74 68 65 20 70 6F 72 74 20 69 73 20 64 65 66 the port is def
002FA0: 69 6E 65 64 0D 61 73 20 6F 75 74 70 75 74 2C 20 ined.as output,
002FB0: 61 6E 64 20 64 61 74 61 20 6D 61 79 20 6F 6E 6C and data may onl
002FC0: 79 20 62 65 20 72 65 61 64 20 20 66 72 6F 6D 20 y be read from
002FD0: 61 20 70 6F 72 74 20 77 68 65 6E 20 74 68 65 20 a port when the
002FE0: 70 6F 72 74 20 69 73 20 73 65 74 0D 74 6F 20 69 port is set.to i
002FF0: 6E 70 75 74 2E 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D nput...=========
003000: 65 29 0D 0D 4C 44 20 42 2C 26 46 37 09 09 3B 38 e)..LD B,&F7..;8
003010: 32 35 35 20 43 6F 6E 74 72 6F 6C 20 70 6F 72 74 255 Control port
003020: 0D 4C 44 20 41 2C 25 31 30 30 30 30 30 31 30 09 .LD A,%10000010.
003030: 09 3B 43 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 .;Configuration
003040: 66 75 6E 63 74 69 6F 6E 0D 4F 55 54 20 28 43 29 function.OUT (C)
003050: 2C 41 09 09 3B 53 65 6E 64 20 74 6F 20 38 32 35 ,A..;Send to 825
003060: 35 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5.
003070: 20 20 20 20 20 20 20 20 20 20 0D 4C 44 20 42 2C .LD B,
003080: 26 46 34 09 09 3B 70 6F 72 74 20 41 20 70 6F 72 &F4..;port A por
003090: 74 20 61 64 64 72 65 73 73 0D 0D 09 09 09 3B 52 t address.....;R
0030A0: 65 67 69 73 74 65 72 20 45 20 68 6F 6C 64 73 20 egister E holds
0030B0: 76 61 6C 75 65 20 74 6F 20 70 75 74 20 69 6E 74 value to put int
0030C0: 6F 20 70 6F 72 74 0D 0D 4C 44 20 45 2C 26 46 46 o port..LD E,&FF
0030D0: 09 09 3B 44 61 74 61 20 74 6F 20 70 75 74 20 69 ..;Data to put i
0030E0: 6E 74 6F 20 70 6F 72 74 0D 4F 55 54 20 28 43 29 nto port.OUT (C)
0030F0: 2C 41 09 09 3B 53 65 6E 64 20 74 6F 20 70 6F 72 ,A..;Send to por
003100: 74 20 41 0D 0D 09 09 09 3B 52 65 74 75 72 6E 20 t A.....;Return
003110: 70 6F 72 74 20 49 2F 4F 20 73 74 61 74 75 73 20 port I/O status
003120: 61 6E 64 20 6F 70 65 72 61 74 69 6E 67 20 6D 6F and operating mo
003130: 64 65 73 0D 09 09 09 3B 74 6F 20 70 72 65 76 69 des....;to previ
003140: 6F 75 73 20 73 65 74 74 69 6E 67 73 2E 0D 0D 4C ous settings...L
003150: 44 20 42 2C 26 46 37 09 09 3B 38 32 35 35 20 43 D B,&F7..;8255 C
003160: 6F 6E 74 72 6F 6C 20 70 6F 72 74 0D 4C 44 20 41 ontrol port.LD A
003170: 2C 25 31 30 30 30 30 30 31 30 09 09 3B 43 6F 6E ,%10000010..;Con
003180: 66 69 67 75 72 61 74 69 6F 6E 20 66 75 6E 63 74 figuration funct
003190: 69 6F 6E 0D 4F 55 54 20 28 43 29 2C 41 0D 52 45 ion.OUT (C),A.RE
0031A0: 54 0D 1A 74 72 6F 6C 20 70 6F 72 74 0D 4C 44 20 T..trol port.LD
0031B0: 41 2C 25 31 30 30 30 30 30 31 30 09 09 3B 43 6F A,%10000010..;Co
0031C0: 6E 66 69 67 75 72 61 74 69 6F 6E 20 66 75 6E 63 nfiguration func
0031D0: 74 69 6F 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A tio.............
0031E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0031F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
003200: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
003210: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
003220: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
003230: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 55 =============..U
003240: 73 69 6E 67 20 74 68 65 20 38 32 35 35 20 50 6F sing the 8255 Po
003250: 72 74 73 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D rts.------------
003260: 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 57 68 65 6E 20 77 --------..When w
003270: 72 69 74 69 6E 67 20 74 6F 20 61 20 70 6F 72 74 riting to a port
003280: 3A 0D 0D 31 29 20 4D 61 6B 65 20 73 75 72 65 20 :..1) Make sure
003290: 74 68 65 20 70 6F 72 74 20 69 73 20 6F 70 65 72 the port is oper
0032A0: 61 74 69 6E 67 20 61 73 20 6F 75 74 70 75 74 2E ating as output.
0032B0: 20 28 54 68 69 73 20 69 73 20 64 6F 6E 65 20 62 (This is done b
0032C0: 79 20 73 65 6E 64 69 6E 67 0D 20 20 20 61 20 63 y sending. a c
0032D0: 6F 6E 74 72 6F 6C 20 62 79 74 65 20 74 6F 20 70 ontrol byte to p
0032E0: 6F 72 74 20 26 46 37 78 78 29 2E 0D 32 29 20 57 ort &F7xx)..2) W
0032F0: 72 69 74 65 20 74 68 65 20 64 61 74 61 20 74 6F rite the data to
003300: 20 74 68 65 20 70 6F 72 74 2E 0D 33 29 20 52 65 the port..3) Re
003310: 74 75 72 6E 20 74 68 65 20 70 6F 72 74 20 74 6F turn the port to
003320: 20 69 74 27 73 20 6F 72 69 67 69 6E 61 6C 20 49 it's original I
003330: 2F 4F 20 53 74 61 74 75 73 2E 0D 0D 57 68 65 6E /O Status...When
003340: 20 72 65 61 64 69 6E 67 20 66 72 6F 6D 20 61 20 reading from a
003350: 70 6F 72 74 3A 0D 0D 31 29 20 4D 61 6B 65 20 73 port:..1) Make s
003360: 75 72 65 20 74 68 65 20 70 6F 72 74 20 69 73 20 ure the port is
003370: 6F 70 65 72 61 74 69 6E 67 20 20 61 73 20 69 6E operating as in
003380: 70 75 74 2E 20 28 54 68 69 73 20 69 73 20 64 6F put. (This is do
003390: 6E 65 20 62 79 20 73 65 6E 64 69 6E 67 0D 20 20 ne by sending.
0033A0: 20 61 20 63 6F 6E 74 72 6F 6C 20 62 79 74 65 20 a control byte
0033B0: 74 6F 20 70 6F 72 74 20 26 46 37 78 78 29 2E 0D to port &F7xx)..
0033C0: 32 29 20 52 65 61 64 20 74 68 65 20 64 61 74 61 2) Read the data
0033D0: 20 66 72 6F 6D 20 74 68 65 20 70 6F 72 74 2E 0D from the port..
0033E0: 33 29 20 52 65 74 75 72 6E 20 74 68 65 20 70 6F 3) Return the po
0033F0: 72 74 20 74 6F 20 69 74 27 73 20 6F 72 69 67 69 rt to it's origi
003400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003600: 6E 61 6C 20 49 2F 4F 20 53 74 61 74 75 73 2E 0D nal I/O Status..
003610: 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D .===============
003620: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
003630: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
003640: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
003650: 3D 3D 3D 3D 3D 3D 3D 0D 0D 38 32 35 35 20 50 50 =======..8255 PP
003660: 49 20 43 6F 6E 74 72 6F 6C 20 42 79 74 65 0D 2D I Control Byte.-
003670: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
003680: 2D 2D 2D 2D 0D 0D 54 68 69 73 20 62 79 74 65 20 ----..This byte
003690: 63 6F 6E 74 72 6F 6C 73 20 74 68 65 20 49 6E 70 controls the Inp
0036A0: 75 74 2F 4F 75 74 70 75 74 20 28 49 2F 4F 29 20 ut/Output (I/O)
0036B0: 73 74 61 74 75 73 20 61 6E 64 20 6F 70 65 72 61 status and opera
0036C0: 74 69 6E 67 20 6D 6F 64 65 20 6F 66 0D 65 61 63 ting mode of.eac
0036D0: 68 20 70 6F 72 74 2E 0D 0D 49 74 20 61 6C 73 6F h port...It also
0036E0: 20 68 61 73 20 61 20 73 65 63 6F 6E 64 61 72 79 has a secondary
0036F0: 20 66 75 6E 63 74 69 6F 6E 20 77 68 69 63 68 20 function which
003700: 61 6C 6C 6F 77 73 20 74 68 65 20 75 73 65 72 20 allows the user
003710: 74 6F 20 73 65 74 20 6F 72 20 72 65 73 65 74 0D to set or reset.
003720: 61 20 70 61 72 74 69 63 75 6C 61 72 20 62 69 74 a particular bit
003730: 20 6F 66 20 70 6F 72 74 20 43 2E 0D 0D 54 6F 20 of port C...To
003740: 73 65 6E 64 20 61 20 63 6F 6E 74 72 6F 6C 20 62 send a control b
003750: 79 74 65 20 20 74 6F 20 20 74 68 65 20 20 38 32 yte to the 82
003760: 35 35 2C 20 20 73 69 6D 70 6C 79 20 20 73 65 6E 55, simply sen
003770: 74 20 20 74 68 65 20 62 79 74 65 20 74 6F 20 70 t the byte to p
003780: 6F 72 74 0D 26 46 37 78 78 2E 20 28 4E 4F 54 45 ort.&F7xx. (NOTE
003790: 3A 20 54 68 65 20 63 6F 6E 74 72 6F 6C 20 20 62 : The control b
0037A0: 79 74 65 20 20 63 61 6E 20 20 6F 6E 6C 79 20 20 yte can only
0037B0: 62 65 20 20 77 72 69 74 74 65 6E 2C 20 20 69 74 be written, it
0037C0: 20 63 61 6E 6E 6F 74 20 62 65 0D 72 65 61 64 2E cannot be.read.
0037D0: 29 0D 0D 54 68 65 20 66 75 6E 63 74 69 6F 6E 20 )..The function
0037E0: 74 6F 20 62 65 20 65 78 65 63 75 74 65 64 20 62 to be executed b
0037F0: 79 20 74 68 65 20 20 38 32 35 35 20 20 69 73 20 y the 8255 is
003800: 38 32 35 35 20 50 61 72 61 6C 6C 65 6C 20 50 65 8255 Parallel Pe
003810: 72 69 70 68 65 72 61 6C 20 49 6E 74 65 72 66 61 ripheral Interfa
003820: 63 65 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ce.-------------
003830: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
003840: 2D 2D 2D 2D 2D 0D 0D 54 68 65 20 38 20 44 71 80 -----..The 8 Dq.
003850: 0C 70 60 63 27 88 88 00 88 04 8E 01 CF 87 80 04 .p`c'...........
003860: 87 80 04 08 4F CF 82 00 87 80 01 CF CF 80 00 01 ....O...........
003870: 87 80 01 CF CF 8C 03 82 07 C0 CF 92 01 CF 82 04 ................
003880: 4F 8C 00 00 80 88 0C 01 88 09 CF 81 80 70 01 83 O............p..
003890: 88 4F 87 84 18 41 CF 80 08 02 0C 80 0E 04 89 CF .O...A..........
0038A0: 8E 00 89 CF 8C 0E 04 04 08 01 81 88 4F 84 88 0C ............O...
0038B0: 00 04 89 88 04 C0 F0 70 07 84 80 08 04 8E 00 00 .......p........
0038C0: 02 00 88 4F 81 83 88 4F C3 C4 C0 40 70 40 40 40 ...O...O...@p@@@
0038D0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
0038E0: 40 70 70 01 83 88 4F C3 C4 C0 40 4F 83 8E 04 4F @pp...O...@O...O
0038F0: C4 4F C3 C0 0C 82 01 CF CF 87 80 04 81 84 4F CF .O............O.
003900: C3 9E 41 9C CF CF 8E 00 89 CF CF 9C 42 41 CF CF ..A.........BA..
003910: 88 0E 0C 03 CF CF 80 08 CF 80 03 82 0C 03 CF 8C ................
003920: 0E 00 CF 83 8E 00 88 4F 8E 70 09 82 08 88 88 04 .......O.p......
003930: 88 00 81 CF 92 40 10 4F 84 01 8E 01 80 04 4F CF .....@.O......O.
003940: C3 82 40 88 40 CF CF 82 00 87 80 01 CF CF 80 04 ..@.@...........
003950: CF CF 80 00 01 87 80 01 C2 40 CF CF 87 80 04 81 .........@......
003960: CF CF 9C 4F CF 8C 0E 00 CF 8E 01 84 00 4F 8C 88 ...O.........O..
003970: 70 07 84 80 08 04 8E 00 00 08 09 CF 81 80 4F 80 p.............O.
003980: 07 88 04 8E 01 88 4F 82 00 CF 81 80 00 4F 83 8E ......O......O..
003990: 01 80 88 04 40 CF C3 9E 04 4F 81 80 00 4F 84 08 ....@....O...O..
0039A0: 07 8E 04 8E 01 88 4F C1 C0 0C 82 01 CF 87 80 04 ......O.........
0039B0: 81 84 42 40 F0 70 01 83 88 04 88 4F 8E 04 88 4F ..B@.p.....O...O
0039C0: C4 4F CF 8C 8E 04 02 0C 4F CF 80 00 09 88 04 4F .O......O......O
0039D0: CF 80 08 CF CF 80 07 88 04 8E 01 82 00 00 CF CF ................
0039E0: 80 00 89 88 04 CF CF 80 03 82 0C 03 CF CF 81 83 ................
0039F0: 88 4F CF 87 80 04 81 84 4F 8C 0E 00 F0 08 80 00 .O......O.......
003A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
003A10: 03 00 01 00 02 09 4E E5 03 00 C1 02 00 00 00 02 ......N.........
003A20: 03 00 C6 02 00 00 00 02 03 00 C2 02 00 00 00 02 ................
003A30: 03 00 C7 02 00 00 00 02 03 00 C3 02 00 00 00 02 ................
003A40: 03 00 C8 02 00 00 00 02 03 00 C4 02 00 00 00 02 ................
003A50: 03 00 C9 02 00 00 00 02 03 00 C5 02 00 00 00 02 ................
003A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003B00: 64 65 70 65 6E 64 61 6E 74 20 6F 6E 20 74 68 65 dependant on the
003B10: 20 73 74 61 74 65 20 6F 66 0D 62 69 74 20 37 2E state of.bit 7.
003B20: 0D 0D 49 66 20 62 69 74 20 37 20 69 73 20 31 2C ..If bit 7 is 1,
003B30: 20 74 68 65 20 72 65 6D 61 69 6E 69 6E 67 20 20 the remaining
003B40: 62 69 74 73 20 20 61 72 65 20 75 73 65 64 20 74 bits are used t
003B50: 6F 20 64 65 66 69 6E 65 20 74 68 65 20 49 2F 4F o define the I/O
003B60: 20 73 74 61 74 75 73 2C 0D 61 6E 64 20 6F 70 65 status,.and ope
003B70: 72 61 74 69 6E 67 20 6D 6F 64 65 20 6F 66 20 65 rating mode of e
003B80: 61 63 68 20 70 6F 72 74 2E 0D 0D 49 66 20 62 69 ach port...If bi
003B90: 74 20 37 20 69 73 20 30 2C 20 74 68 65 20 72 65 t 7 is 0, the re
003BA0: 6D 61 69 6E 69 6E 67 20 20 62 69 74 73 20 20 61 maining bits a
003BB0: 72 65 20 20 75 73 65 64 20 74 6F 20 64 65 74 65 re used to dete
003BC0: 72 6D 69 6E 65 20 77 68 61 74 20 62 69 74 20 69 rmine what bit i
003BD0: 73 0D 73 65 74 20 28 73 65 74 20 74 6F 20 31 29 s.set (set to 1)
003BE0: 20 6F 72 20 72 65 73 65 74 20 28 73 65 74 20 74 or reset (set t
003BF0: 6F 20 30 29 20 6F 66 20 70 6F 72 74 20 43 2E 0D o 0) of port C..
003C00: 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D .===============
003C10: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
003C20: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
003C30: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
003C40: 3D 3D 3D 3D 3D 3D 3D 0D 0D 43 6F 6E 66 69 67 75 =======..Configu
003C50: 72 61 74 69 6F 6E 20 63 6F 6E 74 72 6F 6C 20 62 ration control b
003C60: 79 74 65 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D yte.------------
003C70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D --------------..
003C80: 57 68 65 6E 20 62 69 74 20 37 20 69 73 20 73 65 When bit 7 is se
003C90: 74 20 74 6F 20 31 2C 20 74 68 65 20 63 6F 6D 6D t to 1, the comm
003CA0: 61 6E 64 20 62 79 74 65 20 6F 70 65 72 61 74 65 and byte operate
003CB0: 73 20 69 6E 20 74 68 65 20 66 6F 6C 6C 6F 77 69 s in the followi
003CC0: 6E 67 0D 77 61 79 3A 0D 0D 42 69 74 20 37 3A 20 ng.way:..Bit 7:
003CD0: 43 6F 6E 74 72 6F 6C 20 62 79 74 65 20 66 75 6E Control byte fun
003CE0: 63 74 69 6F 6E 20 28 31 3D 43 6F 6E 66 69 67 75 ction (1=Configu
003CF0: 72 61 74 69 6F 6E 20 63 6F 6E 74 72 6F 6C 20 62 ration control b
003D00: 20 20 77 68 69 63 68 20 20 74 68 65 20 70 6F 72 which the por
003D10: 74 20 63 61 6E 20 62 65 20 61 63 63 65 73 73 65 t can be accesse
003D20: 64 29 0D 69 74 27 73 20 6E 6F 72 6D 61 6C 20 49 d).it's normal I
003D30: 2F 4F 20 53 74 61 74 75 73 20 28 75 6E 6C 65 73 /O Status (unles
003D40: 73 20 20 63 68 61 6E 67 65 64 20 20 62 79 20 20 s changed by
003D50: 74 68 65 20 75 73 65 72 29 2C 20 69 74 27 73 20 the user), it's
003D60: 6F 70 65 72 61 74 69 6E 67 0D 6D 6F 64 65 20 28 operating.mode (
003D70: 75 6E 6C 65 73 73 20 63 68 61 6E 67 65 64 20 62 unless changed b
003D80: 79 20 74 68 65 20 75 73 65 72 29 20 61 72 65 20 y the user) are
003D90: 67 69 76 65 6E 2E 0D 0D 46 6F 72 20 6D 6F 72 65 given...For more
003DA0: 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 6F 6E 20 information on
003DB0: 61 20 20 70 61 72 74 69 63 75 6C 61 72 20 20 66 a particular f
003DC0: 75 6E 63 74 69 6F 6E 20 20 6F 66 20 65 61 63 68 unction of each
003DD0: 20 70 6F 72 74 2C 20 73 65 65 20 74 68 65 0D 61 port, see the.a
003DE0: 70 70 72 6F 70 69 61 74 65 20 70 61 72 74 20 6F ppropiate part o
003DF0: 66 20 74 68 65 20 43 50 43 20 47 75 69 64 65 2E f the CPC Guide.
003E00: 0D 0D 4E 4F 54 45 3A 20 49 66 20 79 6F 75 20 61 ..NOTE: If you a
003E10: 72 65 20 75 73 69 6E 67 20 74 68 65 20 66 69 72 re using the fir
003E20: 6D 77 61 72 65 2C 20 61 6C 77 61 79 73 20 72 65 mware, always re
003E30: 74 75 72 6E 20 74 68 65 20 6F 70 65 72 61 74 69 turn the operati
003E40: 6E 67 20 6D 6F 64 65 73 0D 61 6E 64 20 49 2F 4F ng modes.and I/O
003E50: 20 73 74 61 74 75 73 20 6F 66 20 74 68 65 20 70 status of the p
003E60: 6F 72 74 73 20 75 73 65 64 20 20 74 6F 20 74 68 orts used to th
003E70: 65 69 72 20 73 74 61 74 75 73 20 62 65 6C 6F 77 eir status below
003E80: 2C 20 6F 74 68 65 72 77 69 73 65 20 74 68 65 0D , otherwise the.
003E90: 66 69 72 6D 77 61 72 65 20 6D 61 79 20 63 72 61 firmware may cra
003EA0: 73 68 2E 20 28 54 68 65 20 66 69 72 6D 77 61 72 sh. (The firmwar
003EB0: 65 20 20 65 78 70 65 63 74 73 20 20 74 68 65 20 e expects the
003EC0: 20 6F 70 65 72 61 74 69 6E 67 20 6D 6F 64 65 73 operating modes
003ED0: 20 74 6F 20 62 65 0D 74 68 65 20 73 61 6D 65 20 to be.the same
003EE0: 61 73 20 67 69 76 65 6E 20 62 65 6C 6F 77 29 2E as given below).
003EF0: 0D 0D 50 6F 72 74 20 41 20 28 50 6F 72 74 20 61 ..Port A (Port a
003F00: 79 74 65 29 0D 0D 42 69 74 20 36 3A 20 7D 20 4F yte)..Bit 6: } O
003F10: 70 65 72 61 74 69 6E 67 20 4D 6F 64 65 20 28 50 perating Mode (P
003F20: 6F 72 74 20 41 20 61 6E 64 20 50 6F 72 74 20 43 ort A and Port C
003F30: 20 75 70 70 65 72 29 0D 42 69 74 20 35 3A 20 7D upper).Bit 5: }
003F40: 0D 0D 42 69 74 20 34 3A 20 50 6F 72 74 20 41 20 ..Bit 4: Port A
003F50: 49 2F 4F 20 53 74 61 74 75 73 0D 20 20 20 20 20 I/O Status.
003F60: 20 20 20 20 30 3A 20 4F 75 74 70 75 74 2C 20 31 0: Output, 1
003F70: 3A 20 49 6E 70 75 74 0D 0D 42 69 74 20 33 3A 20 : Input..Bit 3:
003F80: 50 6F 72 74 20 43 20 28 75 70 70 65 72 29 20 49 Port C (upper) I
003F90: 2F 4F 20 53 74 61 74 75 73 0D 20 20 20 20 20 20 /O Status.
003FA0: 20 20 20 30 3A 20 4F 75 74 70 75 74 2C 20 31 3A 0: Output, 1:
003FB0: 20 49 6E 70 75 74 0D 0D 42 69 74 20 32 3A 20 4F Input..Bit 2: O
003FC0: 70 65 72 61 74 69 6E 67 20 4D 6F 64 65 20 73 65 perating Mode se
003FD0: 6C 65 63 74 69 6F 6E 20 28 50 6F 72 74 20 42 20 lection (Port B
003FE0: 61 6E 64 20 50 6F 72 74 20 43 20 6C 6F 77 65 72 and Port C lower
003FF0: 29 0D 0D 42 69 74 20 31 3A 20 50 6F 72 74 20 42 )..Bit 1: Port B
004000: 20 49 2F 4F 20 53 74 61 74 75 73 0D 20 20 20 20 I/O Status.
004010: 20 20 20 20 30 3A 20 4F 75 74 70 75 74 2C 20 31 0: Output, 1
004020: 3A 20 49 6E 70 75 74 0D 0D 42 69 74 20 30 3A 20 : Input..Bit 0:
004030: 50 6F 72 74 20 43 20 28 6C 6F 77 65 72 29 20 49 Port C (lower) I
004040: 2F 4F 20 53 74 61 74 75 73 0D 20 20 20 20 20 20 /O Status.
004050: 20 20 30 3A 20 4F 75 74 70 75 74 2C 20 31 3A 20 0: Output, 1:
004060: 49 6E 70 75 74 0D 0D 50 6F 72 74 20 41 20 61 6E Input..Port A an
004070: 64 20 50 6F 72 74 20 43 20 28 75 70 70 65 72 29 d Port C (upper)
004080: 20 4F 70 65 72 61 74 69 6E 67 20 6D 6F 64 65 0D Operating mode.
004090: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0040A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0040B0: 2D 2D 2D 2D 2D 2D 0D 0D 42 69 74 20 36 20 20 20 ------..Bit 6
0040C0: 20 20 20 20 20 20 20 20 42 69 74 20 35 20 20 20 Bit 5
0040D0: 20 20 20 20 20 20 20 20 4D 6F 64 65 20 73 65 6C Mode sel
0040E0: 65 63 74 69 6F 6E 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D ection.---------
0040F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
004100: 64 64 72 65 73 73 3A 26 46 34 78 78 29 20 28 49 ddress:&F4xx) (I
004110: 2F 4F 20 53 74 61 74 75 73 3A 20 4F 75 74 70 75 /O Status: Outpu
004120: 74 29 20 28 4F 70 65 72 61 74 69 6E 67 20 6D 6F t) (Operating mo
004130: 64 65 3A 20 30 29 0D 2D 2D 2D 2D 2D 2D 0D 0D 42 de: 0).------..B
004140: 69 74 20 37 3A 20 7D 20 50 53 47 20 64 61 74 61 it 7: } PSG data
004150: 0D 42 69 74 20 36 3A 20 7D 0D 42 69 74 20 35 3A .Bit 6: }.Bit 5:
004160: 20 7D 0D 42 69 74 20 34 3A 20 7D 0D 42 69 74 20 }.Bit 4: }.Bit
004170: 33 3A 20 7D 0D 42 69 74 20 32 3A 20 7D 0D 42 69 3: }.Bit 2: }.Bi
004180: 74 20 31 3A 20 7D 0D 42 69 74 20 30 3A 20 7D 0D t 1: }.Bit 0: }.
004190: 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D .===============
0041A0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0041B0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0041C0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0041D0: 3D 3D 3D 3D 3D 3D 3D 0D 0D 50 6F 72 74 20 42 20 =======..Port B
0041E0: 28 50 6F 72 74 20 61 64 64 72 65 73 73 3A 20 26 (Port address: &
0041F0: 46 35 78 78 29 20 28 49 2F 4F 20 53 74 61 74 75 F5xx) (I/O Statu
004200: 73 3A 20 49 6E 70 75 74 29 20 28 4F 70 65 72 61 s: Input) (Opera
004210: 74 69 6E 67 20 6D 6F 64 65 3A 20 30 29 0D 2D 2D ting mode: 0).--
004220: 2D 2D 2D 2D 0D 0D 42 69 74 20 37 3A 20 43 61 73 ----..Bit 7: Cas
004230: 73 65 74 74 65 20 72 65 61 64 20 64 61 74 61 0D sette read data.
004240: 0D 42 69 74 20 36 3A 20 50 72 69 6E 74 65 72 20 .Bit 6: Printer
004250: 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 0D 20 20 configuration.
004260: 20 20 20 20 20 20 31 3A 20 4E 6F 74 2D 72 65 61 1: Not-rea
004270: 64 79 2C 20 20 30 3A 20 52 65 61 64 79 0D 0D 42 dy, 0: Ready..B
004280: 69 74 20 35 3A 20 45 78 70 61 6E 73 69 6F 6E 20 it 5: Expansion
004290: 70 65 72 69 70 68 65 72 61 6C 20 64 65 74 65 63 peripheral detec
0042A0: 74 0D 20 20 20 20 20 20 20 20 31 3A 20 45 78 70 t. 1: Exp
0042B0: 61 6E 73 69 6F 6E 20 70 65 72 69 70 68 65 72 61 ansion periphera
0042C0: 6C 20 70 72 65 73 65 6E 74 2C 20 30 3A 20 4E 6F l present, 0: No
0042D0: 74 20 70 72 65 73 65 6E 74 0D 0D 42 69 74 20 34 t present..Bit 4
0042E0: 3A 20 53 63 72 65 65 6E 20 72 65 66 72 65 73 68 : Screen refresh
0042F0: 20 66 72 65 71 75 65 6E 63 79 20 28 64 65 66 69 frequency (defi
004300: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
004310: 2D 2D 2D 2D 2D 0D 20 20 30 20 20 20 20 20 20 20 -----. 0
004320: 20 20 20 20 20 20 20 20 30 20 20 20 20 20 20 20 0
004330: 20 20 20 20 20 20 4D 6F 64 65 20 30 0D 20 20 30 Mode 0. 0
004340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 1
004350: 20 20 20 20 20 20 20 20 20 20 20 20 20 4D 6F 64 Mod
004360: 65 20 31 0D 20 20 31 20 20 20 20 20 20 20 20 20 e 1. 1
004370: 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 0
004380: 20 20 20 20 4D 6F 64 65 20 32 0D 20 20 31 20 20 Mode 2. 1
004390: 20 20 20 20 20 20 20 20 20 20 20 20 20 31 20 20 1
0043A0: 20 20 20 20 20 20 20 20 20 20 20 4D 6F 64 65 20 Mode
0043B0: 32 0D 0D 50 6F 72 74 20 42 20 61 6E 64 20 50 6F 2..Port B and Po
0043C0: 72 74 20 43 20 28 6C 6F 77 65 72 29 20 6F 70 65 rt C (lower) ope
0043D0: 72 61 74 69 6E 67 20 6D 6F 64 65 0D 2D 2D 2D 2D rating mode.----
0043E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0043F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
004400: 2D 2D 2D 2D 0D 0D 42 69 74 20 32 20 20 20 20 20 ----..Bit 2
004410: 20 20 20 20 20 20 4D 6F 64 65 20 53 65 6C 65 63 Mode Selec
004420: 74 69 6F 6E 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D tion.-----------
004430: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
004440: 2D 2D 2D 0D 0D 20 20 30 20 20 20 20 20 20 20 20 ---.. 0
004450: 20 20 20 20 20 4D 6F 64 65 20 30 0D 20 20 31 20 Mode 0. 1
004460: 20 20 20 20 20 20 20 20 20 20 20 20 4D 6F 64 65 Mode
004470: 20 31 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 1..============
004480: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004490: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0044A0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0044B0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 42 69 74 20 ==========..Bit
0044C0: 53 65 74 2F 52 65 73 65 74 20 63 6F 6E 74 72 6F Set/Reset contro
0044D0: 6C 20 62 79 74 65 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D l byte.---------
0044E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0044F0: 2D 0D 0D 57 68 65 6E 20 62 69 74 20 37 20 69 73 -..When bit 7 is
004500: 6E 65 64 20 62 79 20 68 61 72 64 77 61 72 65 29 ned by hardware)
004510: 0D 20 20 20 20 20 20 20 20 31 3A 20 35 30 48 7A . 1: 50Hz
004520: 20 20 20 20 30 3A 20 36 30 48 7A 0D 0D 42 69 74 0: 60Hz..Bit
004530: 20 33 3A 20 7D 20 43 6F 6D 70 75 74 65 72 20 6E 3: } Computer n
004540: 61 6D 65 20 6F 6E 20 70 6F 77 65 72 2D 75 70 2E ame on power-up.
004550: 0D 42 69 74 20 32 3A 20 7D 0D 42 69 74 20 31 3A .Bit 2: }.Bit 1:
004560: 20 7D 0D 0D 42 69 74 20 30 3A 20 56 53 59 4E 43 }..Bit 0: VSYNC
004570: 20 73 74 61 74 75 73 20 28 46 72 61 6D 65 20 66 status (Frame f
004580: 6C 79 62 61 63 6B 20 73 74 61 74 75 73 29 0D 20 lyback status).
004590: 20 20 20 20 20 20 20 31 3A 20 56 53 59 4E 43 20 1: VSYNC
0045A0: 6F 63 63 75 72 65 64 2C 20 30 3A 20 6E 6F 20 56 occured, 0: no V
0045B0: 53 59 4E 43 0D 0D 54 61 62 6C 65 20 73 68 6F 77 SYNC..Table show
0045C0: 69 6E 67 20 43 6F 6D 70 75 74 65 72 20 6E 61 6D ing Computer nam
0045D0: 65 20 6F 6E 20 70 6F 77 65 72 2D 75 70 3A 0D 0D e on power-up:..
0045E0: 42 69 74 20 33 20 20 20 20 20 20 42 69 74 20 32 Bit 3 Bit 2
0045F0: 20 20 20 20 42 69 74 20 31 20 20 20 20 43 6F 6D Bit 1 Com
004600: 70 75 74 65 72 20 6E 61 6D 65 0D 2D 2D 2D 2D 2D puter name.-----
004610: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
004620: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
004630: 2D 2D 2D 0D 0D 20 20 20 30 20 20 20 20 20 20 20 ---.. 0
004640: 30 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 0 0
004650: 49 73 70 0D 20 20 20 30 20 20 20 20 20 20 20 30 Isp. 0 0
004660: 20 20 20 20 20 20 31 20 20 20 20 20 20 20 20 54 1 T
004670: 72 69 75 6D 70 68 0D 20 20 20 30 20 20 20 20 20 riumph. 0
004680: 20 20 31 20 20 20 20 20 20 30 20 20 20 20 20 20 1 0
004690: 20 20 53 61 69 73 68 6F 0D 20 20 20 30 20 20 20 Saisho. 0
0046A0: 20 20 20 20 31 20 20 20 20 20 20 31 20 20 20 20 1 1
0046B0: 20 20 20 20 53 6F 6C 61 76 6F 78 0D 20 20 20 31 Solavox. 1
0046C0: 20 20 20 20 20 20 20 30 20 20 20 20 20 20 30 20 0 0
0046D0: 20 20 20 20 20 20 20 41 77 61 0D 20 20 20 31 20 Awa. 1
0046E0: 20 20 20 20 20 20 30 20 20 20 20 20 20 31 20 20 0 1
0046F0: 20 20 20 20 20 20 53 63 68 6E 65 69 64 65 72 0D Schneider.
004700: 20 73 65 74 20 74 6F 20 20 30 2C 20 20 74 68 65 set to 0, the
004710: 20 20 63 6F 6E 74 72 6F 6C 20 20 62 79 74 65 20 control byte
004720: 6F 70 65 72 61 74 65 73 20 69 6E 20 74 68 65 20 operates in the
004730: 66 6F 6C 6C 6F 77 69 6E 67 0D 77 61 79 3A 0D 0D following.way:..
004740: 42 69 74 20 37 3A 20 43 6F 6E 74 72 6F 6C 20 62 Bit 7: Control b
004750: 79 74 65 20 66 75 6E 63 74 69 6F 6E 20 28 30 3D yte function (0=
004760: 42 69 74 20 53 65 74 2F 52 65 73 65 74 20 63 6F Bit Set/Reset co
004770: 6E 74 72 6F 6C 20 62 79 74 65 29 0D 0D 42 69 74 ntrol byte)..Bit
004780: 20 36 3A 20 7D 20 4E 6F 74 20 75 73 65 64 2E 20 6: } Not used.
004790: 28 73 65 6E 64 20 30 29 0D 42 69 74 20 35 3A 20 (send 0).Bit 5:
0047A0: 7D 0D 42 69 74 20 34 3A 20 7D 0D 0D 42 69 74 20 }.Bit 4: }..Bit
0047B0: 33 3A 20 7D 20 42 69 74 20 74 6F 20 63 68 61 6E 3: } Bit to chan
0047C0: 67 65 2E 0D 42 69 74 20 32 3A 20 7D 0D 42 69 74 ge..Bit 2: }.Bit
0047D0: 20 31 3A 20 7D 0D 0D 42 69 74 20 30 3A 20 42 69 1: }..Bit 0: Bi
0047E0: 74 20 6F 70 65 72 61 74 69 6F 6E 0D 20 20 20 20 t operation.
0047F0: 20 20 20 20 31 3A 20 53 65 74 20 62 69 74 20 28 1: Set bit (
004800: 6D 61 6B 65 20 62 69 74 3D 31 29 2C 20 30 3A 20 make bit=1), 0:
004810: 52 65 73 65 74 20 62 69 74 20 28 6D 61 6B 65 20 Reset bit (make
004820: 62 69 74 3D 30 29 0D 0D 54 61 62 6C 65 20 74 6F bit=0)..Table to
004830: 20 73 68 6F 77 20 68 6F 77 20 62 69 74 20 74 6F show how bit to
004840: 20 63 68 61 6E 67 65 20 69 73 20 63 6F 64 65 64 change is coded
004850: 3A 0D 0D 42 69 74 20 33 20 20 20 20 20 20 20 20 :..Bit 3
004860: 20 20 20 42 69 74 20 32 20 20 20 20 20 20 20 20 Bit 2
004870: 20 20 20 42 69 74 20 31 20 20 20 20 20 20 20 20 Bit 1
004880: 20 20 20 42 69 74 20 73 65 6C 65 63 74 65 64 0D Bit selected.
004890: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0048A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0048B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0048C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 30 20 ------------. 0
0048D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 0
0048E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 0
0048F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 Bit
004900: 20 20 20 31 20 20 20 20 20 20 20 31 20 20 20 20 1 1
004910: 20 20 30 20 20 20 20 20 20 20 20 4F 72 69 6F 6E 0 Orion
004920: 0D 20 20 20 31 20 20 20 20 20 20 20 31 20 20 20 . 1 1
004930: 20 20 20 31 20 20 20 20 20 20 20 20 41 6D 73 74 1 Amst
004940: 72 61 64 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D rad..===========
004950: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004960: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004970: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004980: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 50 6F 72 ===========..Por
004990: 74 20 43 20 28 50 6F 72 74 20 61 64 64 72 65 73 t C (Port addres
0049A0: 73 3A 20 26 46 36 78 78 29 20 28 49 2F 4F 20 53 s: &F6xx) (I/O S
0049B0: 74 61 74 75 73 3A 20 4F 75 74 70 75 74 29 20 28 tatus: Output) (
0049C0: 4F 70 65 72 61 74 69 6E 67 20 6D 6F 64 65 3A 20 Operating mode:
0049D0: 30 29 0D 2D 2D 2D 2D 2D 2D 0D 0D 42 69 74 20 37 0).------..Bit 7
0049E0: 3A 20 7D 20 50 53 47 20 63 6F 6E 74 72 6F 6C 0D : } PSG control.
0049F0: 42 69 74 20 36 3A 20 7D 0D 0D 42 69 74 20 35 3A Bit 6: }..Bit 5:
004A00: 20 43 61 73 73 65 74 74 65 20 77 72 69 74 65 20 Cassette write
004A10: 64 61 74 61 0D 0D 42 69 74 20 34 3A 20 43 61 73 data..Bit 4: Cas
004A20: 73 65 74 74 65 20 6D 6F 74 6F 72 20 63 6F 6E 74 sette motor cont
004A30: 72 6F 6C 0D 20 20 20 20 20 20 20 20 31 3A 20 54 rol. 1: T
004A40: 75 72 6E 20 6D 6F 74 6F 72 20 6F 6E 2C 20 30 3A urn motor on, 0:
004A50: 20 54 75 72 6E 20 6D 6F 74 6F 72 20 6F 66 66 0D Turn motor off.
004A60: 0D 42 69 74 20 33 3A 20 7D 20 4B 65 79 62 6F 61 .Bit 3: } Keyboa
004A70: 72 64 20 6C 69 6E 65 20 74 6F 20 62 65 20 73 63 rd line to be sc
004A80: 61 6E 6E 65 64 20 28 30 2D 31 30 29 0D 42 69 74 anned (0-10).Bit
004A90: 20 32 3A 20 7D 0D 42 69 74 20 31 3A 20 7D 0D 42 2: }.Bit 1: }.B
004AA0: 69 74 20 30 3A 20 7D 0D 0D 3D 3D 3D 3D 3D 3D 3D it 0: }..=======
004AB0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004AC0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004AD0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004AE0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D ===============.
004AF0: 0D 50 72 6F 67 72 61 6D 6D 69 6E 67 20 45 78 61 .Programming Exa
004B00: 20 30 0D 20 30 20 20 20 20 20 20 20 20 20 20 20 0. 0
004B10: 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 20 0
004B20: 20 20 20 20 20 31 20 20 20 20 20 20 20 20 20 20 1
004B30: 20 20 20 42 69 74 20 31 0D 20 30 20 20 20 20 20 Bit 1. 0
004B40: 20 20 20 20 20 20 20 20 20 20 20 31 20 20 20 20 1
004B50: 20 20 20 20 20 20 20 20 20 20 20 30 20 20 20 20 0
004B60: 20 20 20 20 20 20 20 20 20 42 69 74 20 32 0D 20 Bit 2.
004B70: 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0
004B80: 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1
004B90: 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 42 1 B
004BA0: 69 74 20 33 0D 20 31 20 20 20 20 20 20 20 20 20 it 3. 1
004BB0: 20 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 0
004BC0: 20 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 0
004BD0: 20 20 20 20 20 42 69 74 20 34 0D 20 31 20 20 20 Bit 4. 1
004BE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 20 0
004BF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 31 20 20 1
004C00: 20 20 20 20 20 20 20 20 20 20 20 42 69 74 20 35 Bit 5
004C10: 0D 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 . 1
004C20: 20 20 20 31 20 20 20 20 20 20 20 20 20 20 20 20 1
004C30: 20 20 20 30 20 20 20 20 20 20 20 20 20 20 20 20 0
004C40: 20 42 69 74 20 36 0D 20 31 20 20 20 20 20 20 20 Bit 6. 1
004C50: 20 20 20 20 20 20 20 20 20 31 20 20 20 20 20 20 1
004C60: 20 20 20 20 20 20 20 20 20 31 20 20 20 20 20 20 1
004C70: 20 20 20 20 20 20 20 42 69 74 20 37 0D 0D 3D 3D Bit 7..==
004C80: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004C90: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004CA0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004CB0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
004CC0: 3D 3D 3D 0D 0D 50 6F 72 74 20 55 73 61 67 65 0D ===..Port Usage.
004CD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 46 6F 72 20 ----------..For
004CE0: 65 61 63 68 20 70 6F 72 74 2C 20 74 68 65 20 70 each port, the p
004CF0: 6F 72 74 20 61 64 64 72 65 73 73 20 20 28 61 74 ort address (at
004D00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
004D10: 04 00 01 00 02 09 4E E5 04 00 C1 02 00 00 00 02 ......N.........
004D20: 04 00 C6 02 00 00 00 02 04 00 C2 02 00 00 00 02 ................
004D30: 04 00 C7 02 00 00 00 02 04 00 C3 02 00 00 00 02 ................
004D40: 04 00 C8 02 00 00 00 02 04 00 C4 02 00 00 00 02 ................
004D50: 04 00 C9 02 00 00 00 02 04 00 C5 02 00 00 00 02 ................
004D60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004E00: 6D 70 6C 65 73 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D mples.----------
004E10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 31 29 20 55 ----------..1) U
004E20: 73 69 6E 67 20 74 68 65 20 63 6F 6E 74 72 6F 6C sing the control
004E30: 20 62 79 74 65 0D 0D 61 29 20 53 65 74 74 69 6E byte..a) Settin
004E40: 67 20 62 69 74 20 37 20 6F 66 20 70 6F 72 74 20 g bit 7 of port
004E50: 43 20 74 6F 20 31 2C 0D 0D 4C 44 20 42 2C 26 46 C to 1,..LD B,&F
004E60: 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7
004E70: 20 3B 38 32 35 35 20 43 6F 6E 74 72 6F 6C 20 70 ;8255 Control p
004E80: 6F 72 74 0D 4C 44 20 41 2C 25 30 30 30 30 31 31 ort.LD A,%000011
004E90: 31 31 20 20 20 20 20 20 20 20 20 20 3B 42 69 74 11 ;Bit
004EA0: 20 53 65 74 2F 72 65 73 65 74 20 66 75 6E 63 74 Set/reset funct
004EB0: 69 6F 6E 0D 4F 55 54 20 28 43 29 2C 41 20 20 20 ion.OUT (C),A
004EC0: 20 20 20 20 20 20 20 20 20 20 20 20 3B 53 65 6E ;Sen
004ED0: 64 20 69 74 20 74 6F 20 38 32 35 35 0D 52 45 54 d it to 8255.RET
004EE0: 0D 0D 62 29 20 53 65 74 20 70 6F 72 74 20 41 20 ..b) Set port A
004EF0: 20 74 6F 20 20 69 6E 70 75 74 2C 20 20 6F 70 65 to input, ope
004F00: 72 61 74 69 6E 67 20 20 69 6E 20 20 6D 6F 64 65 rating in mode
004F10: 20 20 30 2C 20 20 70 6F 72 74 20 20 42 20 74 6F 0, port B to
004F20: 20 6F 75 74 70 75 74 2C 0D 6F 70 65 72 61 74 69 output,.operati
004F30: 6E 67 20 69 6E 20 6D 6F 64 65 20 30 20 61 6E 64 ng in mode 0 and
004F40: 20 70 6F 72 74 20 43 20 74 6F 20 69 6E 70 75 74 port C to input
004F50: 2C 20 6F 70 65 72 61 74 69 6E 67 20 69 6E 20 6D , operating in m
004F60: 6F 64 65 20 30 2E 0D 0D 4C 44 20 42 2C 26 46 37 ode 0...LD B,&F7
004F70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
004F80: 3B 38 32 35 35 20 43 6F 6E 74 72 6F 6C 20 70 6F ;8255 Control po
004F90: 72 74 0D 4C 44 20 41 2C 25 31 30 30 31 31 30 30 rt.LD A,%1001100
004FA0: 31 20 20 20 20 20 20 20 20 20 20 3B 43 6F 6E 66 1 ;Conf
004FB0: 69 67 75 72 61 74 69 6F 6E 20 66 75 6E 63 74 69 iguration functi
004FC0: 6F 6E 0D 4F 55 54 20 28 43 29 2C 41 20 20 20 20 on.OUT (C),A
004FD0: 20 20 20 20 20 20 20 20 20 20 20 3B 53 65 6E 64 ;Send
004FE0: 20 69 74 20 74 6F 20 38 32 35 35 0D 52 45 54 0D it to 8255.RET.
004FF0: 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D .===============
005000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0050A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0050B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0050C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0050D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0050E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0050F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0051A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0051B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0051C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0051D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0051E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0051F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005200: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
005210: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
005220: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
005230: 3D 3D 3D 3D 3D 3D 3D 0D 0D 32 29 20 55 73 69 6E =======..2) Usin
005240: 67 20 70 6F 72 74 20 41 2F 42 2F 43 2C 0D 0D 49 g port A/B/C,..I
005250: 6E 20 74 68 69 73 20 65 78 61 6D 70 6C 65 2C 20 n this example,
005260: 70 6F 72 74 20 41 20 69 73 20 73 65 74 20 74 6F port A is set to
005270: 20 20 6F 75 74 70 75 74 2C 20 70 6F 72 74 20 42 output, port B
005280: 20 69 73 20 73 65 74 20 74 6F 20 69 6E 70 75 74 is set to input
005290: 2C 20 61 6E 64 0D 70 6F 72 74 20 43 20 69 73 20 , and.port C is
0052A0: 73 65 74 20 74 6F 20 6F 75 74 70 75 74 2C 20 61 set to output, a
0052B0: 6E 64 20 74 68 65 79 20 61 72 65 20 61 6C 6C 20 nd they are all
0052C0: 6F 70 65 72 61 74 69 6E 67 20 69 6E 20 6D 6F 64 operating in mod
0052D0: 65 20 30 2E 0D 0D 57 65 20 77 69 6C 6C 20 6F 6E e 0...We will on
0052E0: 6C 79 20 62 65 20 75 73 69 6E 67 20 70 6F 72 74 ly be using port
0052F0: 20 41 20 66 6F 72 20 74 68 65 73 65 20 65 78 61 A for these exa
005300: 6D 70 6C 65 73 2E 0D 0D 61 29 20 52 65 61 64 69 mples...a) Readi
005310: 6E 67 20 66 72 6F 6D 20 70 6F 72 74 20 41 2C 0D ng from port A,.
005320: 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
005330: 20 20 20 20 20 20 20 20 20 3B 53 65 74 20 70 6F ;Set po
005340: 72 74 20 41 20 74 6F 20 69 6E 70 75 74 0D 0D 4C rt A to input..L
005350: 44 20 42 2C 26 46 37 20 20 20 20 20 20 20 20 20 D B,&F7
005360: 20 20 20 20 20 20 20 3B 38 32 35 35 20 43 6F 6E ;8255 Con
005370: 74 72 6F 6C 20 70 6F 72 74 0D 4C 44 20 41 2C 25 trol port.LD A,%
005380: 31 30 30 31 30 30 31 30 20 20 20 20 20 20 20 20 10010010
005390: 20 20 3B 43 6F 6E 66 69 67 75 72 61 74 69 6F 6E ;Configuration
0053A0: 20 66 75 6E 63 74 69 6F 6E 0D 4F 55 54 20 28 43 function.OUT (C
0053B0: 29 2C 41 20 20 20 20 20 20 20 20 20 20 20 20 20 ),A
0053C0: 20 20 3B 53 65 6E 64 20 74 6F 20 38 32 35 35 0D ;Send to 8255.
0053D0: 0D 4C 44 20 42 2C 26 46 34 20 20 20 20 20 20 20 .LD B,&F4
0053E0: 20 20 20 20 20 20 20 20 20 3B 50 6F 72 74 20 41 ;Port A
0053F0: 20 70 6F 72 74 20 61 64 64 72 65 73 73 0D 49 4E port address.IN
005400: 1B 40 45 72 72 6F 72 20 63 6F 64 65 73 3A 0D 0D .@Error codes:..
005410: 49 66 20 62 69 74 20 36 20 3D 20 30 20 74 68 65 If bit 6 = 0 the
005420: 6E 20 74 68 65 20 65 72 72 6F 72 20 6E 75 6D 62 n the error numb
005430: 65 72 73 20 61 72 65 20 61 73 20 66 6F 6C 6C 6F ers are as follo
005440: 77 73 3A 0D 0D 26 30 45 20 20 20 20 20 46 69 6C ws:..&0E Fil
005450: 65 20 69 73 20 6E 6F 74 20 6F 70 65 6E 20 61 73 e is not open as
005460: 20 65 78 70 65 63 74 65 64 0D 26 30 46 20 20 20 expected.&0F
005470: 20 20 48 61 72 64 20 65 6E 64 20 6F 66 20 66 69 Hard end of fi
005480: 6C 65 0D 0D 26 31 30 20 20 20 20 20 42 61 64 20 le..&10 Bad
005490: 63 6F 6D 6D 61 6E 64 20 28 69 6E 63 6F 72 72 65 command (incorre
0054A0: 63 74 20 66 69 6C 65 6E 61 6D 65 3F 29 0D 26 31 ct filename?).&1
0054B0: 31 20 20 20 20 20 46 69 6C 65 20 65 78 69 73 74 1 File exist
0054C0: 73 2E 0D 26 31 32 20 20 20 20 20 46 69 6C 65 20 s..&12 File
0054D0: 64 6F 65 73 6E 27 74 20 65 78 69 73 74 2E 0D 26 doesn't exist..&
0054E0: 31 33 20 20 20 20 20 44 69 72 65 63 74 6F 72 79 13 Directory
0054F0: 20 66 75 6C 6C 0D 26 31 34 20 20 20 20 20 44 69 full.&14 Di
005500: 73 63 20 69 73 20 66 75 6C 6C 2E 0D 26 31 35 20 sc is full..&15
005510: 20 20 20 20 44 69 73 63 20 68 61 73 20 62 65 65 Disc has bee
005520: 6E 20 63 68 61 6E 67 65 64 20 77 69 74 68 20 66 n changed with f
005530: 69 6C 65 73 20 6F 70 65 6E 2E 0D 26 31 36 20 20 iles open..&16
005540: 20 20 20 46 69 6C 65 20 69 73 20 72 65 61 64 2D File is read-
005550: 6F 6E 6C 79 0D 0D 26 31 41 20 20 20 20 20 53 6F only..&1A So
005560: 66 74 20 65 6E 64 20 6F 66 20 66 69 6C 65 0D 0D ft end of file..
005570: 26 30 30 20 20 20 20 20 55 73 65 72 20 68 61 73 &00 User has
005580: 20 68 69 74 20 65 73 63 61 70 65 0D 0D 49 66 20 hit escape..If
005590: 62 69 74 20 36 20 3D 20 31 20 74 68 65 6E 20 74 bit 6 = 1 then t
0055A0: 68 65 20 65 72 72 6F 72 20 69 73 20 61 73 20 66 he error is as f
0055B0: 6F 6C 6C 6F 77 73 3A 0D 0D 42 69 74 20 35 20 20 ollows:..Bit 5
0055C0: 20 44 61 74 61 20 45 72 72 6F 72 20 20 20 20 20 Data Error
0055D0: 20 28 64 61 74 61 20 63 6F 72 72 75 70 74 69 6F (data corruptio
0055E0: 6E 20 6F 6E 20 64 69 73 63 29 0D 42 69 74 20 34 n on disc).Bit 4
0055F0: 20 20 20 4F 76 65 72 72 75 6E 20 45 72 72 6F 72 Overrun Error
005600: 20 45 2C 28 43 29 20 20 20 20 20 20 20 20 20 20 E,(C)
005610: 20 20 20 20 20 20 3B 47 65 74 20 62 79 74 65 20 ;Get byte
005620: 66 72 6F 6D 20 70 6F 72 74 0D 0D 20 20 20 20 20 from port..
005630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005640: 20 20 20 3B 52 65 67 69 73 74 65 72 20 45 20 68 ;Register E h
005650: 6F 6C 64 73 20 76 61 6C 75 65 20 66 72 6F 6D 20 olds value from
005660: 70 6F 72 74 0D 0D 20 20 20 20 20 20 20 20 20 20 port..
005670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 52 ;R
005680: 65 74 75 72 6E 20 70 6F 72 74 20 49 2F 4F 20 73 eturn port I/O s
005690: 74 61 74 75 73 20 61 6E 64 20 6F 70 65 72 61 74 tatus and operat
0056A0: 69 6E 67 20 6D 6F 64 65 73 0D 20 20 20 20 20 20 ing modes.
0056B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0056C0: 20 20 3B 74 6F 20 70 72 65 76 69 6F 75 73 20 73 ;to previous s
0056D0: 65 74 74 69 6E 67 73 2E 0D 0D 4C 44 20 42 2C 26 ettings...LD B,&
0056E0: 46 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 F7
0056F0: 20 20 3B 38 32 35 35 20 43 6F 6E 74 72 6F 6C 20 ;8255 Control
005700: 70 6F 72 74 0D 4C 44 20 41 2C 25 31 30 30 30 30 port.LD A,%10000
005710: 30 31 30 20 20 20 20 20 20 20 20 20 20 3B 43 6F 010 ;Co
005720: 6E 66 69 67 75 72 61 74 69 6F 6E 20 66 75 6E 63 nfiguration func
005730: 74 69 6F 6E 0D 4F 55 54 20 28 43 29 2C 41 20 20 tion.OUT (C),A
005740: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 53 65 ;Se
005750: 6E 64 20 74 6F 20 38 32 35 35 0D 52 45 54 0D 0D nd to 8255.RET..
005760: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
005770: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
005780: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
005790: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0057A0: 3D 3D 3D 3D 3D 3D 0D 0D 62 29 20 57 72 69 74 69 ======..b) Writi
0057B0: 6E 67 20 74 6F 20 70 6F 72 74 20 41 2C 0D 0D 20 ng to port A,..
0057C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0057D0: 20 20 20 20 20 20 20 3B 53 65 74 20 70 6F 72 74 ;Set port
0057E0: 20 41 20 74 6F 20 6F 75 74 70 75 74 0D 0D 20 20 A to output..
0057F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005800: 20 20 20 28 64 61 74 61 20 6E 6F 74 20 73 75 70 (data not sup
005810: 70 6C 69 65 64 20 74 6F 20 46 44 43 20 71 75 69 plied to FDC qui
005820: 63 6B 20 65 6E 6F 75 67 68 29 0D 42 69 74 20 33 ck enough).Bit 3
005830: 20 20 20 44 72 69 76 65 20 6E 6F 74 20 72 65 61 Drive not rea
005840: 64 79 20 28 64 69 73 63 20 6E 6F 74 20 69 6E 20 dy (disc not in
005850: 64 72 69 76 65 29 0D 42 69 74 20 32 20 20 20 4E drive).Bit 2 N
005860: 6F 20 64 61 74 61 20 28 73 65 63 74 6F 72 20 6E o data (sector n
005870: 6F 74 20 66 6F 75 6E 64 29 0D 42 69 74 20 31 20 ot found).Bit 1
005880: 20 20 6E 6F 74 20 77 72 69 74 61 62 6C 65 20 20 not writable
005890: 20 20 28 64 69 73 63 20 69 73 20 77 72 69 74 65 (disc is write
0058A0: 20 70 72 6F 74 65 63 74 65 64 29 0D 62 69 74 20 protected).bit
0058B0: 30 20 20 20 61 64 64 72 65 73 73 20 6D 61 72 6B 0 address mark
0058C0: 20 6D 69 73 73 69 6E 67 20 28 63 61 6E 6E 6F 74 missing (cannot
0058D0: 20 64 65 74 65 72 6D 69 6E 65 20 74 68 65 20 66 determine the f
0058E0: 6F 72 6D 61 74 20 66 6F 72 20 74 68 65 20 64 61 ormat for the da
0058F0: 74 61 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 ta.
005900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005910: 20 69 6E 20 74 68 65 20 73 65 63 74 6F 72 29 2E in the sector).
005920: 0D 0D 45 72 72 6F 72 20 73 74 61 74 75 73 20 62 ..Error status b
005930: 75 66 66 65 72 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D uffer.----------
005940: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 54 68 65 20 66 ---------..The f
005950: 69 72 73 74 20 76 61 6C 75 65 20 69 73 20 20 74 irst value is t
005960: 68 65 20 20 6E 75 6D 62 65 72 20 20 6F 66 20 20 he number of
005970: 62 79 74 65 73 20 20 72 65 63 69 65 76 65 64 20 bytes recieved
005980: 64 75 72 69 6E 67 20 74 68 65 20 72 65 73 75 6C during the resul
005990: 74 0D 70 68 61 73 65 20 6F 66 20 74 68 65 20 46 t.phase of the F
0059A0: 44 43 20 28 61 73 20 20 64 65 73 63 72 69 62 65 DC (as describe
0059B0: 64 20 20 65 6C 73 65 77 68 65 72 65 29 20 64 69 d elsewhere) di
0059C0: 73 63 20 63 6F 6E 74 72 6F 6C 6C 65 72 2C 20 74 sc controller, t
0059D0: 68 6F 73 65 0D 66 6F 6C 6C 6F 77 69 6E 67 20 61 hose.following a
0059E0: 72 65 20 74 68 65 20 62 79 74 65 73 20 72 65 63 re the bytes rec
0059F0: 69 65 76 65 64 2E 20 28 46 6F 72 20 61 20 66 75 ieved. (For a fu
005A00: 20 20 20 20 20 20 3B 28 4E 6F 74 65 20 74 68 65 ;(Note the
005A10: 20 6E 65 78 74 20 66 65 77 20 6C 69 6E 65 73 20 next few lines
005A20: 61 72 65 20 6E 6F 74 20 6E 65 63 65 73 73 61 72 are not necessar
005A30: 79 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y.
005A40: 20 20 20 20 20 20 20 20 20 20 3B 61 73 20 70 6F ;as po
005A50: 72 74 20 41 20 69 73 20 61 6C 72 65 61 64 79 20 rt A is already
005A60: 61 63 74 69 6E 67 20 61 73 20 6F 75 74 70 75 74 acting as output
005A70: 2C 20 68 6F 77 65 76 65 72 0D 20 20 20 20 20 20 , however.
005A80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005A90: 20 20 3B 69 74 20 69 73 20 67 69 76 65 6E 20 68 ;it is given h
005AA0: 65 72 65 20 6A 75 73 74 20 74 6F 20 6D 61 6B 65 ere just to make
005AB0: 20 74 68 65 20 65 78 61 6D 70 6C 65 0D 20 20 20 the example.
005AC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005AD0: 20 20 20 20 20 3B 6D 6F 72 65 20 75 6E 64 65 72 ;more under
005AE0: 73 74 61 6E 64 61 62 6C 65 29 0D 0D 4C 44 20 42 standable)..LD B
005AF0: 2C 26 46 37 20 20 20 20 20 20 20 20 20 20 20 20 ,&F7
005B00: 20 20 20 20 3B 38 32 35 35 20 43 6F 6E 74 72 6F ;8255 Contro
005B10: 6C 20 70 6F 72 74 0D 4C 44 20 41 2C 25 31 30 30 l port.LD A,%100
005B20: 30 30 30 31 30 20 20 20 20 20 20 20 20 20 20 3B 00010 ;
005B30: 43 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 66 75 Configuration fu
005B40: 6E 63 74 69 6F 6E 0D 4F 55 54 20 28 43 29 2C 41 nction.OUT (C),A
005B50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B ;
005B60: 53 65 6E 64 20 74 6F 20 38 32 35 35 0D 0D 4C 44 Send to 8255..LD
005B70: 20 42 2C 26 46 34 20 20 20 20 20 20 20 20 20 20 B,&F4
005B80: 20 20 20 20 20 20 3B 70 6F 72 74 20 41 20 70 6F ;port A po
005B90: 72 74 20 61 64 64 72 65 73 73 0D 0D 20 20 20 20 rt address..
005BA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005BB0: 20 20 20 20 3B 52 65 67 69 73 74 65 72 20 45 20 ;Register E
005BC0: 68 6F 6C 64 73 20 76 61 6C 75 65 20 74 6F 20 70 holds value to p
005BD0: 75 74 20 69 6E 74 6F 20 70 6F 72 74 0D 0D 4C 44 ut into port..LD
005BE0: 20 45 2C 26 46 46 20 20 20 20 20 20 20 20 20 20 E,&FF
005BF0: 20 20 20 20 20 20 3B 44 61 74 61 20 74 6F 20 70 ;Data to p
005C00: 6C 6C 20 64 65 73 63 72 69 70 74 69 6F 6E 20 73 ll description s
005C10: 65 65 20 6E 6F 74 65 73 20 6F 6E 0D 46 44 43 29 ee notes on.FDC)
005C20: 2E 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ...-------------
005C30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
005C40: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
005C50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
005C60: 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 42 49 4F 53 3A 20 --------..BIOS:
005C70: 53 45 54 20 4D 45 53 53 41 47 45 20 2D 20 53 65 SET MESSAGE - Se
005C80: 74 20 6D 65 73 73 61 67 65 73 20 74 6F 20 62 65 t messages to be
005C90: 20 64 69 73 70 6C 61 79 65 64 20 6F 72 20 6E 6F displayed or no
005CA0: 74 2E 0D 0D 45 6E 74 72 79 3A 0D 0D 49 66 20 6D t...Entry:..If m
005CB0: 65 73 73 61 67 65 73 20 61 72 65 20 74 6F 20 62 essages are to b
005CC0: 65 20 65 6E 61 62 6C 65 64 3A 0D 0D 41 20 3D 20 e enabled:..A =
005CD0: 26 30 0D 0D 49 66 20 6D 65 73 73 61 67 65 73 20 &0..If messages
005CE0: 64 69 73 61 62 6C 65 64 3A 0D 0D 41 20 3D 20 26 disabled:..A = &
005CF0: 46 46 0D 0D 45 78 69 74 3A 0D 0D 41 20 3D 20 70 FF..Exit:..A = p
005D00: 72 65 76 69 6F 75 73 20 73 74 61 74 65 0D 48 4C revious state.HL
005D10: 20 61 6E 64 20 66 6C 61 67 73 20 63 6F 72 72 75 and flags corru
005D20: 70 74 2E 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D pt...-----------
005D30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
005D40: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
005D50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
005D60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 42 49 4F 53 ----------..BIOS
005D70: 3A 20 53 45 54 55 50 20 44 49 53 43 20 2D 20 53 : SETUP DISC - S
005D80: 65 74 75 70 20 64 69 73 63 20 69 6E 66 6F 72 6D etup disc inform
005D90: 61 74 69 6F 6E 0D 0D 45 6E 74 72 79 3A 0D 0D 48 ation..Entry:..H
005DA0: 4C 20 3D 20 61 64 64 72 65 73 73 20 6F 66 20 70 L = address of p
005DB0: 61 72 61 6D 65 74 65 72 20 62 6C 6F 63 6B 0D 0D arameter block..
005DC0: 45 78 69 74 3A 0D 0D 41 46 2C 42 43 2C 44 45 2C Exit:..AF,BC,DE,
005DD0: 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0D 4E 6F 74 HL corrupt...Not
005DE0: 65 73 3A 0D 0D 50 61 72 61 6D 65 74 65 72 20 62 es:..Parameter b
005DF0: 6C 6F 63 6B 3A 0D 0D 42 79 74 65 20 20 20 20 44 lock:..Byte D
005E00: 75 74 20 69 6E 74 6F 20 70 6F 72 74 0D 4F 55 54 ut into port.OUT
005E10: 20 28 43 29 2C 41 20 20 20 20 20 20 20 20 20 20 (C),A
005E20: 20 20 20 20 20 3B 53 65 6E 64 20 74 6F 20 70 6F ;Send to po
005E30: 72 74 20 41 0D 0D 20 20 20 20 20 20 20 20 20 20 rt A..
005E40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 52 ;R
005E50: 65 74 75 72 6E 20 70 6F 72 74 20 49 2F 4F 20 73 eturn port I/O s
005E60: 74 61 74 75 73 20 61 6E 64 20 6F 70 65 72 61 74 tatus and operat
005E70: 69 6E 67 20 6D 6F 64 65 73 0D 20 20 20 20 20 20 ing modes.
005E80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005E90: 20 20 3B 74 6F 20 70 72 65 76 69 6F 75 73 20 73 ;to previous s
005EA0: 65 74 74 69 6E 67 73 2E 0D 0D 4C 44 20 42 2C 26 ettings...LD B,&
005EB0: 46 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 F7
005EC0: 20 20 3B 38 32 35 35 20 43 6F 6E 74 72 6F 6C 20 ;8255 Control
005ED0: 70 6F 72 74 0D 4C 44 20 41 2C 25 31 30 30 30 30 port.LD A,%10000
005EE0: 30 31 30 20 20 20 20 20 20 20 20 20 20 3B 43 6F 010 ;Co
005EF0: 6E 66 69 67 75 72 61 74 69 6F 6E 20 66 75 6E 63 nfiguration func
005F00: 74 69 6F 6E 0D 4F 55 54 20 28 43 29 2C 41 0D 52 tion.OUT (C),A.R
005F10: 45 54 0D 0D 1A 75 72 70 6F 73 65 20 20 69 6E 70 ET...urpose inp
005F20: 75 74 20 20 6F 75 74 70 75 74 20 20 63 68 69 70 ut output chip
005F30: 2E 20 1A 31 30 30 30 30 30 31 30 09 09 3B 43 6F . .10000010..;Co
005F40: 6E 66 69 67 75 72 61 74 69 6F 6E 20 66 75 6E 63 nfiguration func
005F50: 74 69 6F 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A tio.............
005F60: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
005F70: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
005F80: 20 20 20 20 20 20 3B 70 6F 72 74 20 41 20 70 6F ;port A po
005F90: 72 74 20 61 64 64 72 65 73 73 0D 0D 20 20 20 20 rt address..
005FA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
005FB0: 20 20 20 20 3B 52 65 67 69 73 74 65 72 20 45 20 ;Register E
005FC0: 68 6F 6C 64 73 20 76 61 6C 75 65 20 74 6F 20 70 holds value to p
005FD0: 75 74 20 69 6E 74 6F 20 70 6F 72 74 0D 0D 4C 44 ut into port..LD
005FE0: 20 45 2C 26 46 46 20 20 20 20 20 20 20 20 20 20 E,&FF
005FF0: 20 20 20 20 20 20 3B 44 61 74 61 20 74 6F 20 70 ;Data to p
006000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
006010: 05 00 01 00 02 09 4E E5 05 00 C1 02 00 00 00 02 ......N.........
006020: 05 00 C6 02 00 00 00 02 05 00 C2 02 00 00 00 02 ................
006030: 05 00 C7 02 00 00 00 02 05 00 C3 02 00 00 00 02 ................
006040: 05 00 C8 02 00 00 00 02 05 00 C4 02 00 00 00 02 ................
006050: 05 00 C9 02 00 00 00 02 05 00 C5 02 00 00 00 02 ................
006060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006100: 65 66 61 75 6C 74 20 20 20 20 20 20 20 20 20 46 efault F
006110: 75 6E 63 74 69 6F 6E 0D 0D 30 2C 31 20 20 20 20 unction..0,1
006120: 20 35 30 20 20 20 20 20 20 20 20 20 20 20 20 20 50
006130: 20 4D 6F 74 6F 72 20 6F 6E 20 74 69 6D 65 6F 75 Motor on timeou
006140: 74 20 28 32 30 20 6D 69 6C 6C 69 73 65 63 6F 6E t (20 millisecon
006150: 64 20 75 6E 69 74 73 29 0D 32 2C 33 20 20 20 20 d units).2,3
006160: 20 32 35 30 20 20 20 20 20 20 20 20 20 20 20 20 250
006170: 20 4D 6F 74 6F 72 20 6F 66 66 20 74 69 6D 65 6F Motor off timeo
006180: 75 74 20 28 32 30 20 6D 69 6C 6C 69 73 65 63 6F ut (20 milliseco
006190: 6E 64 20 75 6E 69 74 73 29 0D 34 20 20 20 20 20 nd units).4
0061A0: 20 20 31 37 35 20 20 20 20 20 20 20 20 20 20 20 175
0061B0: 20 20 57 72 69 74 65 20 6F 66 66 20 74 69 6D 65 Write off time
0061C0: 20 28 31 30 20 6D 69 63 72 6F 73 65 63 6F 6E 64 (10 microsecond
0061D0: 20 75 6E 69 74 73 29 0D 35 20 20 20 20 20 20 20 units).5
0061E0: 31 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 15
0061F0: 48 65 61 64 20 73 65 74 74 6C 65 20 74 69 6D 65 Head settle time
006200: 20 28 31 20 6D 69 6C 6C 69 73 65 63 6F 6E 64 20 (1 millisecond
006210: 75 6E 69 74 73 29 0D 36 20 20 20 20 20 20 20 31 units).6 1
006220: 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 2 S
006230: 74 65 70 20 72 61 74 65 20 74 69 6D 65 20 28 31 tep rate time (1
006240: 20 6D 69 6C 6C 69 73 65 63 6F 6E 64 20 75 6E 69 millisecond uni
006250: 74 73 29 0D 37 20 20 20 20 20 20 20 31 20 20 20 ts).7 1
006260: 20 20 20 20 20 20 20 20 20 20 20 20 7D 20 48 65 } He
006270: 61 64 20 75 6E 6C 6F 61 64 20 64 65 6C 61 79 20 ad unload delay
006280: 20 20 20 20 20 20 20 20 20 20 20 20 7C 0D 38 20 |.8
006290: 20 20 20 20 20 20 31 20 20 20 20 20 20 20 20 20 1
0062A0: 20 20 20 20 20 20 7D 20 62 69 74 73 20 37 2D 31 } bits 7-1
0062B0: 20 2D 20 68 65 61 64 20 6C 6F 61 64 20 64 65 6C - head load del
0062C0: 61 79 20 20 20 20 7C 20 73 65 65 20 69 6E 66 6F ay | see info
0062D0: 20 6F 6E 20 46 44 43 0D 20 20 20 20 20 20 20 20 on FDC.
0062E0: 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1
0062F0: 62 69 74 20 20 20 20 30 20 2D 20 6E 6F 6E 2D 44 bit 0 - non-D
006300: 0D 4F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 .Other flags cor
006310: 72 75 70 74 0D 0D 4E 6F 74 65 73 3A 0D 0D 46 6F rupt..Notes:..Fo
006320: 72 6D 61 74 20 68 65 61 64 65 72 20 64 61 74 61 rmat header data
006330: 3A 0D 0D 54 68 69 73 20 69 73 20 74 68 65 20 73 :..This is the s
006340: 61 6D 65 20 61 73 20 74 68 65 20 20 66 6F 72 6D ame as the form
006350: 61 74 20 20 64 61 74 61 20 20 73 65 6E 74 20 20 at data sent
006360: 74 6F 20 74 68 65 20 46 44 43 20 66 6F 72 20 69 to the FDC for i
006370: 74 73 20 66 6F 72 6D 61 74 0D 63 6F 6D 6D 61 6E ts format.comman
006380: 64 2E 20 54 68 65 20 66 6F 72 6D 61 74 20 68 65 d. The format he
006390: 61 64 65 72 20 64 61 74 61 20 20 63 6F 6E 73 69 ader data consi
0063A0: 73 74 73 20 20 6F 66 20 20 65 6E 74 72 69 65 73 sts of entries
0063B0: 20 20 6F 66 20 34 20 62 79 74 65 73 2E 20 41 6E of 4 bytes. An
0063C0: 0D 65 6E 74 72 79 20 69 73 20 6E 65 65 64 65 64 .entry is needed
0063D0: 20 70 65 72 20 73 65 63 74 6F 72 2E 0D 0D 45 61 per sector...Ea
0063E0: 63 68 20 65 6E 74 72 79 20 68 61 73 20 74 68 65 ch entry has the
0063F0: 20 66 6F 72 6D 3A 0D 0D 42 79 74 65 0D 0D 30 20 form:..Byte..0
006400: 20 20 20 20 20 20 20 74 72 61 63 6B 20 6E 75 6D track num
006410: 62 65 72 0D 31 20 20 20 20 20 20 20 20 68 65 61 ber.1 hea
006420: 64 20 6E 75 6D 62 65 72 20 28 73 69 64 65 29 0D d number (side).
006430: 32 20 20 20 20 20 20 20 20 73 65 63 74 6F 72 20 2 sector
006440: 6E 75 6D 62 65 72 0D 33 20 20 20 20 20 20 20 20 number.3
006450: 73 65 63 74 6F 72 20 73 69 7A 65 20 28 30 20 2D sector size (0 -
006460: 20 31 32 38 20 62 79 74 65 73 2C 20 31 20 2D 20 128 bytes, 1 -
006470: 32 35 36 20 62 79 74 65 73 2C 20 32 20 2D 20 35 256 bytes, 2 - 5
006480: 31 32 20 62 79 74 65 73 2C 20 65 74 63 29 0D 0D 12 bytes, etc)..
006490: 28 66 6F 72 20 73 70 65 63 69 61 6C 20 66 6F 72 (for special for
0064A0: 6D 61 74 73 20 69 74 20 69 73 20 6E 6F 74 20 20 mats it is not
0064B0: 6E 65 63 65 73 73 61 72 79 20 20 66 6F 72 20 20 necessary for
0064C0: 74 68 65 20 74 72 61 63 6B 20 6E 75 6D 62 65 72 the track number
0064D0: 20 74 6F 20 62 65 0D 74 68 65 20 73 61 6D 65 20 to be.the same
0064E0: 61 73 20 74 68 65 20 74 72 61 63 6B 20 20 74 68 as the track th
0064F0: 65 20 20 64 72 69 76 65 20 20 72 65 61 64 69 6E e drive readin
006500: 4D 41 20 6D 6F 64 65 20 20 20 20 20 20 20 7C 20 MA mode |
006510: 53 50 45 43 49 46 59 20 63 6F 6D 6D 61 6E 64 0D SPECIFY command.
006520: 0D 54 68 65 20 70 72 6F 67 72 61 6D 6D 65 64 20 .The programmed
006530: 76 61 6C 75 65 73 20 61 72 65 20 75 73 65 64 20 values are used
006540: 66 6F 72 20 62 6F 74 68 20 64 72 69 76 65 73 2E for both drives.
006550: 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ..--------------
006560: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
006570: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
006580: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
006590: 2D 2D 2D 2D 2D 2D 2D 0D 0D 42 49 4F 53 3A 20 53 -------..BIOS: S
0065A0: 45 4C 45 43 54 20 46 4F 52 4D 41 54 20 2D 20 49 ELECT FORMAT - I
0065B0: 6E 69 74 69 6C 69 73 65 20 64 61 74 61 20 70 61 nitilise data pa
0065C0: 72 61 6D 65 74 65 72 73 20 66 6F 72 20 73 65 6C rameters for sel
0065D0: 65 63 74 65 64 20 66 6F 72 6D 61 74 0D 0D 45 6E ected format..En
0065E0: 74 72 79 3A 0D 0D 41 20 3D 20 26 34 31 2C 20 26 try:..A = &41, &
0065F0: 43 31 20 6F 72 20 26 30 31 0D 0D 26 34 31 20 2D C1 or &01..&41 -
006600: 20 53 79 73 74 65 6D 20 66 6F 72 6D 61 74 0D 26 System format.&
006610: 43 31 20 2D 20 44 61 74 61 20 66 6F 72 6D 61 74 C1 - Data format
006620: 0D 26 30 31 20 2D 20 49 42 4D 20 66 6F 72 6D 61 .&01 - IBM forma
006630: 74 0D 0D 45 20 3D 20 64 72 69 76 65 20 6E 75 6D t..E = drive num
006640: 62 65 72 20 28 41 20 3D 20 30 2C 20 42 20 3D 20 ber (A = 0, B =
006650: 31 29 0D 0D 45 78 69 74 3A 0D 0D 41 46 2C 42 43 1)..Exit:..AF,BC
006660: 2C 44 45 2C 48 4C 20 63 6F 72 72 75 70 74 2E 0D ,DE,HL corrupt..
006670: 0D 4E 6F 74 65 73 3A 0D 0D 42 79 74 65 73 20 30 .Notes:..Bytes 0
006680: 2D 32 31 20 61 72 65 20 72 65 73 65 74 20 74 6F -21 are reset to
006690: 20 74 68 65 20 20 76 61 6C 75 65 73 20 20 66 6F the values fo
0066A0: 72 20 65 61 63 68 20 70 61 72 74 69 63 75 6C 61 r each particula
0066B0: 72 20 66 6F 72 6D 61 74 2E 20 42 79 74 65 73 0D r format. Bytes.
0066C0: 32 32 2D 32 34 20 72 65 6D 61 69 6E 20 75 6E 74 22-24 remain unt
0066D0: 6F 75 63 68 65 64 2E 0D 0D 49 66 20 74 68 65 20 ouched...If the
0066E0: 75 73 65 72 20 77 61 6E 74 73 20 74 6F 20 75 73 user wants to us
0066F0: 65 20 61 20 73 70 65 63 69 61 6C 20 66 6F 72 6D e a special form
006700: 67 2F 77 72 69 74 69 6E 67 20 68 65 61 64 20 69 g/writing head i
006710: 73 20 6C 6F 63 61 74 65 64 20 6F 6E 2C 0D 61 6C s located on,.al
006720: 73 6F 20 79 6F 75 20 63 61 6E 20 68 61 76 65 20 so you can have
006730: 64 69 66 66 65 72 65 6E 74 20 73 65 63 74 6F 72 different sector
006740: 20 6E 75 6D 62 65 72 73 20 61 6E 64 20 68 65 61 numbers and hea
006750: 64 20 76 61 6C 75 65 73 29 2E 0D 0D 54 68 65 20 d values)...The
006760: 45 78 70 61 6E 64 65 64 20 64 69 73 63 20 70 61 Expanded disc pa
006770: 72 61 6D 65 74 65 72 20 62 6C 6F 63 6B 20 6D 75 rameter block mu
006780: 73 74 20 62 65 20 69 6E 69 74 69 61 6C 69 73 65 st be initialise
006790: 64 20 66 6F 72 20 74 68 65 20 72 65 71 75 69 72 d for the requir
0067A0: 65 64 0D 66 6F 72 6D 61 74 2E 0D 0D 2D 2D 2D 2D ed.format...----
0067B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0067C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0067D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0067E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0067F0: 2D 2D 0D 0D 42 49 4F 53 3A 20 4D 4F 56 45 20 54 --..BIOS: MOVE T
006800: 52 41 43 4B 20 2D 20 4D 6F 76 65 20 74 6F 20 73 RACK - Move to s
006810: 70 65 63 69 66 69 65 64 20 74 72 61 63 6B 0D 0D pecified track..
006820: 45 6E 74 72 79 3A 0D 0D 45 20 3D 20 64 72 69 76 Entry:..E = driv
006830: 65 20 6E 75 6D 62 65 72 0D 44 20 3D 20 74 72 61 e number.D = tra
006840: 63 6B 20 6E 75 6D 62 65 72 0D 0D 45 78 69 74 3A ck number..Exit:
006850: 0D 0D 49 66 20 6D 6F 76 65 64 20 4F 4B 3A 0D 0D ..If moved OK:..
006860: 43 61 72 72 79 20 74 72 75 65 2E 0D 41 20 3D 20 Carry true..A =
006870: 30 0D 48 4C 20 75 6E 63 68 61 6E 67 65 64 2E 0D 0.HL unchanged..
006880: 0D 49 66 20 6D 6F 76 65 20 66 61 69 6C 65 64 3A .If move failed:
006890: 0D 0D 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 41 ..Carry false..A
0068A0: 20 3D 20 65 72 72 6F 72 20 73 74 61 74 75 73 20 = error status
0068B0: 62 79 74 65 0D 48 4C 20 3D 20 61 64 64 72 65 73 byte.HL = addres
0068C0: 73 20 6F 66 20 65 72 72 6F 72 20 73 74 61 74 75 s of error statu
0068D0: 73 20 62 75 66 66 65 72 0D 0D 4F 74 68 65 72 20 s buffer..Other
0068E0: 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D flags corrupt...
0068F0: 4E 6F 74 65 73 3A 0D 0D 54 68 65 20 72 65 61 64 Notes:..The read
006900: 61 74 2C 20 74 68 65 79 20 6D 75 73 74 20 70 6F at, they must po
006910: 6B 65 20 69 6E 74 6F 20 74 68 65 0D 65 78 74 65 ke into the.exte
006920: 6E 64 65 64 20 64 69 73 63 20 70 61 72 61 6D 65 nded disc parame
006930: 74 65 72 20 62 6C 6F 63 6B 20 64 69 72 65 63 74 ter block direct
006940: 6C 79 2E 0D 0D 4D 61 6B 65 20 73 75 72 65 2C 20 ly...Make sure,
006950: 61 75 74 6F 20 73 65 6C 65 63 74 20 66 6F 72 6D auto select form
006960: 61 74 20 3D 20 4E 4F 2C 20 6F 74 68 65 72 77 69 at = NO, otherwi
006970: 73 65 2C 20 77 68 65 6E 20 61 20 6E 65 77 20 64 se, when a new d
006980: 69 73 63 20 69 73 20 70 75 74 0D 69 6E 20 61 6E isc is put.in an
006990: 64 20 6F 70 65 72 61 74 65 64 20 6F 6E 2C 20 74 d operated on, t
0069A0: 68 65 20 64 69 73 63 20 70 61 72 61 6D 65 74 65 he disc paramete
0069B0: 72 20 62 6C 6F 63 6B 20 77 69 6C 6C 20 63 68 61 r block will cha
0069C0: 6E 67 65 2E 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D nge...----------
0069D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0069E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0069F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
006A00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 42 49 4F -----------..BIO
006A10: 53 3A 20 52 45 41 44 20 53 45 43 54 4F 52 20 2D S: READ SECTOR -
006A20: 20 52 65 61 64 20 61 20 73 65 63 74 6F 72 20 69 Read a sector i
006A30: 6E 74 6F 20 6D 65 6D 6F 72 79 0D 0D 45 6E 74 72 nto memory..Entr
006A40: 79 3A 0D 0D 48 4C 20 3D 20 61 64 64 72 65 73 73 y:..HL = address
006A50: 20 74 6F 20 70 75 74 20 73 65 63 74 6F 72 20 64 to put sector d
006A60: 61 74 61 0D 45 20 3D 20 64 72 69 76 65 20 6E 75 ata.E = drive nu
006A70: 6D 62 65 72 20 28 30 2D 31 29 0D 44 20 3D 20 74 mber (0-1).D = t
006A80: 72 61 63 6B 20 6E 75 6D 62 65 72 20 28 30 2D 34 rack number (0-4
006A90: 32 29 0D 43 20 3D 20 73 65 63 74 6F 72 20 6E 75 2).C = sector nu
006AA0: 6D 62 65 72 20 28 61 6E 79 20 2D 20 64 65 70 65 mber (any - depe
006AB0: 6E 64 73 20 6F 6E 20 66 6F 72 6D 61 74 29 0D 0D nds on format)..
006AC0: 45 78 69 74 3A 0D 0D 49 66 20 73 65 63 74 6F 72 Exit:..If sector
006AD0: 20 72 65 61 64 20 4F 4B 3A 0D 0D 43 61 72 72 79 read OK:..Carry
006AE0: 20 74 72 75 65 2E 20 41 20 3D 20 30 2E 0D 0D 49 true. A = 0...I
006AF0: 66 20 66 61 69 6C 65 64 20 74 6F 20 72 65 61 64 f failed to read
006B00: 2F 77 72 69 74 65 2F 66 6F 72 6D 61 74 20 20 72 /write/format r
006B10: 6F 75 74 69 6E 65 73 20 20 6D 6F 76 65 20 20 61 outines move a
006B20: 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 20 74 6F utomatically to
006B30: 20 20 74 68 65 20 20 63 6F 72 72 65 63 74 0D 74 the correct.t
006B40: 72 61 63 6B 2E 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D rack...---------
006B50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
006B60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
006B70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
006B80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 42 -------------..B
006B90: 49 4F 53 3A 20 47 45 54 20 44 52 20 53 54 41 54 IOS: GET DR STAT
006BA0: 55 53 20 2D 20 47 65 74 20 73 74 61 74 75 73 20 US - Get status
006BB0: 72 65 67 69 73 74 65 72 20 33 20 6F 66 20 75 50 register 3 of uP
006BC0: 44 37 36 35 41 20 64 69 73 63 20 63 6F 6E 74 72 D765A disc contr
006BD0: 6F 6C 6C 65 72 0D 0D 45 6E 74 72 79 3A 0D 0D 41 oller..Entry:..A
006BE0: 20 3D 20 64 72 69 76 65 20 6E 75 6D 62 65 72 0D = drive number.
006BF0: 0D 45 78 69 74 3A 0D 0D 49 66 20 63 61 72 72 79 .Exit:..If carry
006C00: 20 74 72 75 65 3A 0D 0D 41 20 3D 20 64 72 69 76 true:..A = driv
006C10: 65 20 73 74 61 74 75 73 20 62 79 74 65 20 61 73 e status byte as
006C20: 20 62 65 6C 6F 77 20 28 53 74 61 74 75 73 20 72 below (Status r
006C30: 65 67 69 73 74 65 72 20 33 20 6F 66 20 46 44 43 egister 3 of FDC
006C40: 29 2E 0D 48 4C 20 75 6E 63 68 61 6E 67 65 64 2E )..HL unchanged.
006C50: 0D 0D 49 66 20 63 61 72 72 79 20 66 61 6C 73 65 ..If carry false
006C60: 3A 0D 0D 48 4C 20 3D 20 61 64 64 72 65 73 73 20 :..HL = address
006C70: 6F 66 20 65 72 72 6F 72 20 20 73 74 61 74 75 73 of error status
006C80: 20 20 62 75 66 66 65 72 2C 20 20 73 65 63 6F 6E buffer, secon
006C90: 64 20 20 62 79 74 65 20 20 3D 20 73 74 61 74 75 d byte = statu
006CA0: 73 20 62 79 74 65 20 61 73 0D 62 65 6C 6F 77 0D s byte as.below.
006CB0: 41 20 63 6F 72 72 75 70 74 0D 0D 4F 74 68 65 72 A corrupt..Other
006CC0: 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 0D 0D flags corrupt..
006CD0: 4E 6F 74 65 73 3A 0D 0D 42 69 74 20 20 20 20 20 Notes:..Bit
006CE0: 46 75 6E 63 74 69 6F 6E 0D 0D 37 20 20 20 20 20 Function..7
006CF0: 20 20 75 6E 64 65 66 69 6E 65 64 0D 36 20 20 20 undefined.6
006D00: 20 73 65 63 74 6F 72 20 63 6F 72 72 65 63 74 6C sector correctl
006D10: 79 3A 0D 0D 43 61 72 72 79 20 66 61 6C 73 65 2E y:..Carry false.
006D20: 20 41 20 3D 20 65 72 72 6F 72 20 73 74 61 74 75 A = error statu
006D30: 73 20 62 79 74 65 20 28 73 65 65 20 61 62 6F 76 s byte (see abov
006D40: 65 29 0D 48 4C 20 3D 20 61 64 64 72 65 73 73 20 e).HL = address
006D50: 6F 66 20 65 72 72 6F 72 20 73 74 61 74 75 73 20 of error status
006D60: 62 75 66 66 65 72 20 28 73 65 65 20 61 62 6F 76 buffer (see abov
006D70: 65 29 0D 0D 4F 74 68 65 72 20 66 6C 61 67 73 20 e)..Other flags
006D80: 63 6F 72 72 75 70 74 2E 0D 0D 2D 2D 2D 2D 2D 2D corrupt...------
006D90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
006DA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
006DB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
006DC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D ---------------.
006DD0: 42 49 4F 53 3A 20 57 52 49 54 45 20 53 45 43 54 BIOS: WRITE SECT
006DE0: 4F 52 20 2D 20 57 72 69 74 65 20 61 20 73 65 63 OR - Write a sec
006DF0: 74 6F 72 20 74 6F 20 64 69 73 63 0D 0D 45 6E 74 tor to disc..Ent
006E00: 72 79 3A 0D 0D 48 4C 20 3D 20 61 64 64 72 65 73 ry:..HL = addres
006E10: 73 20 74 6F 20 67 65 74 20 73 65 63 74 6F 72 20 s to get sector
006E20: 64 61 74 61 20 66 72 6F 6D 0D 45 20 3D 20 64 72 data from.E = dr
006E30: 69 76 65 20 6E 75 6D 62 65 72 20 28 41 20 3D 20 ive number (A =
006E40: 30 2C 20 42 20 3D 20 31 29 0D 44 20 3D 20 74 72 0, B = 1).D = tr
006E50: 61 63 6B 20 6E 75 6D 62 65 72 0D 43 20 3D 20 73 ack number.C = s
006E60: 65 63 74 6F 72 20 6E 75 6D 62 65 72 0D 0D 45 78 ector number..Ex
006E70: 69 74 3A 0D 0D 49 66 20 73 65 63 74 6F 72 20 77 it:..If sector w
006E80: 72 69 74 74 65 6E 20 4F 4B 3A 0D 0D 43 61 72 72 ritten OK:..Carr
006E90: 79 20 74 72 75 65 2E 0D 41 20 3D 20 30 0D 48 4C y true..A = 0.HL
006EA0: 20 75 6E 63 68 61 6E 67 65 64 2E 0D 0D 49 66 20 unchanged...If
006EB0: 73 65 63 74 6F 72 20 77 61 73 6E 27 74 20 77 72 sector wasn't wr
006EC0: 69 74 74 65 6E 20 63 6F 72 72 65 63 74 6C 79 3A itten correctly:
006ED0: 0D 0D 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 41 ..Carry false..A
006EE0: 20 3D 20 65 72 72 6F 72 20 62 79 74 65 20 20 20 = error byte
006EF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
006F00: 20 20 20 20 66 6C 61 67 20 20 74 6F 20 20 69 6E flag to in
006F10: 64 69 63 61 74 65 20 20 69 66 20 20 64 72 69 76 dicate if driv
006F20: 65 20 20 69 73 20 20 77 72 69 74 65 20 20 70 72 e is write pr
006F30: 6F 74 65 63 74 65 64 20 20 28 31 3A 77 72 69 74 otected (1:writ
006F40: 65 0D 20 20 20 20 20 20 20 20 70 72 6F 74 65 63 e. protec
006F50: 74 65 64 29 0D 35 20 20 20 20 20 20 20 46 6C 61 ted).5 Fla
006F60: 67 20 74 6F 20 69 6E 64 69 63 61 74 65 20 69 66 g to indicate if
006F70: 20 64 72 69 76 65 20 72 65 61 64 79 20 28 31 3D drive ready (1=
006F80: 72 65 61 64 79 29 0D 34 20 20 20 20 20 20 20 46 ready).4 F
006F90: 6C 61 67 20 74 6F 20 69 6E 64 69 63 61 74 65 20 lag to indicate
006FA0: 69 66 20 68 65 61 64 20 69 73 20 6F 6E 20 74 72 if head is on tr
006FB0: 61 63 6B 20 30 20 28 31 3D 61 74 20 74 72 61 63 ack 0 (1=at trac
006FC0: 6B 20 30 29 0D 33 20 20 20 20 20 20 20 75 6E 64 k 0).3 und
006FD0: 65 66 69 6E 65 64 0D 32 20 20 20 20 20 20 20 68 efined.2 h
006FE0: 65 61 64 2F 73 69 64 65 20 28 30 29 0D 31 20 20 ead/side (0).1
006FF0: 20 20 20 20 20 30 0D 30 20 20 20 20 20 20 20 73 0.0 s
007000: 65 6C 65 63 74 65 64 20 64 72 69 76 65 20 28 41 elected drive (A
007010: 3D 30 2C 20 42 3D 31 29 0D 0D 49 66 20 61 6E 79 =0, B=1)..If any
007020: 20 6F 66 20 74 68 65 20 62 69 74 73 20 34 2D 36 of the bits 4-6
007030: 20 61 72 65 20 73 65 74 20 28 31 29 20 74 68 65 are set (1) the
007040: 6E 20 74 68 61 74 20 65 72 72 6F 72 20 20 68 61 n that error ha
007050: 73 20 6F 63 63 75 72 65 64 2E 0D 0D 2D 2D 2D 2D s occured...----
007060: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007070: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007080: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007090: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0070A0: 2D 0D 0D 42 49 4F 53 3A 20 20 53 45 54 20 20 52 -..BIOS: SET R
0070B0: 45 54 52 59 20 20 20 43 4F 55 4E 54 20 20 20 2D ETRY COUNT -
0070C0: 20 20 20 53 65 74 20 20 20 74 68 65 20 20 20 6E Set the n
0070D0: 75 6D 62 65 72 20 20 20 6F 66 20 20 20 72 65 74 umber of ret
0070E0: 72 69 65 73 20 20 66 6F 72 0D 20 20 20 20 20 20 ries for.
0070F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007100: 20 20 20 28 73 65 65 20 61 62 6F 76 65 29 0D 48 (see above).H
007110: 4C 20 3D 20 61 64 64 72 65 73 73 20 6F 66 20 65 L = address of e
007120: 72 72 6F 72 20 73 74 61 74 75 73 20 62 75 66 66 rror status buff
007130: 65 72 0D 0D 4F 74 68 65 72 20 66 6C 61 67 73 20 er..Other flags
007140: 63 6F 72 72 75 70 74 2E 0D 0D 2D 2D 2D 2D 2D 2D corrupt...------
007150: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007160: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007170: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007180: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007190: 0D 0D 42 49 4F 53 3A 20 46 4F 52 4D 41 54 20 54 ..BIOS: FORMAT T
0071A0: 52 41 43 4B 20 2D 20 20 46 6F 72 6D 61 74 20 20 RACK - Format
0071B0: 61 20 20 74 72 61 63 6B 20 20 28 69 6E 69 74 69 a track (initi
0071C0: 61 6C 69 73 65 20 20 61 20 20 74 72 61 63 6B 20 alise a track
0071D0: 66 6F 72 20 64 61 74 61 0D 20 20 20 20 20 20 20 for data.
0071E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
0071F0: 74 6F 72 61 67 65 29 0D 0D 45 6E 74 72 79 3A 0D torage)..Entry:.
007200: 0D 48 4C 20 3D 20 61 64 64 72 65 73 73 20 6F 66 .HL = address of
007210: 20 66 6F 72 6D 61 74 20 68 65 61 64 65 72 20 64 format header d
007220: 61 74 61 0D 45 20 3D 20 64 72 69 76 65 20 6E 75 ata.E = drive nu
007230: 6D 62 65 72 0D 44 20 3D 20 74 72 61 63 6B 20 6E mber.D = track n
007240: 75 6D 62 65 72 0D 0D 45 78 69 74 20 63 6F 6E 64 umber..Exit cond
007250: 69 74 69 6F 6E 73 3A 0D 0D 49 66 20 74 72 61 63 itions:..If trac
007260: 6B 20 66 6F 72 6D 61 74 74 65 64 20 4F 4B 3A 0D k formatted OK:.
007270: 0D 43 61 72 72 79 20 74 72 75 65 2E 0D 41 20 3D .Carry true..A =
007280: 20 30 0D 48 4C 20 75 6E 63 68 61 6E 67 65 64 2E 0.HL unchanged.
007290: 2E 0D 0D 49 66 20 66 61 69 6C 65 64 20 74 6F 20 ...If failed to
0072A0: 66 6F 72 6D 61 74 20 74 72 61 63 6B 20 63 6F 72 format track cor
0072B0: 72 65 63 74 6C 79 3A 0D 0D 43 61 72 72 79 20 66 rectly:..Carry f
0072C0: 61 6C 73 65 2E 0D 41 20 3D 20 65 72 72 6F 72 20 alse..A = error
0072D0: 73 74 61 74 75 73 20 62 79 74 65 0D 48 4C 20 3D status byte.HL =
0072E0: 20 61 64 64 72 65 73 73 20 6F 66 20 65 72 72 6F address of erro
0072F0: 72 20 73 74 61 74 75 73 20 62 75 66 66 65 72 0D r status buffer.
007300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
007310: 06 00 01 00 02 09 4E E5 06 00 C1 02 00 00 00 02 ......N.........
007320: 06 00 C6 02 00 00 00 02 06 00 C2 02 00 00 00 02 ................
007330: 06 00 C7 02 00 00 00 02 06 00 C3 02 00 00 00 02 ................
007340: 06 00 C8 02 00 00 00 02 06 00 C4 02 00 00 00 02 ................
007350: 06 00 C9 02 00 00 00 02 06 00 C5 02 00 00 00 02 ................
007360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007400: 20 20 20 20 20 20 20 20 20 20 72 65 61 64 2F 77 read/w
007410: 72 69 74 65 2F 66 6F 72 6D 61 74 20 63 6F 6D 6D rite/format comm
007420: 61 6E 64 73 0D 0D 45 6E 74 72 79 3A 0D 0D 41 20 ands..Entry:..A
007430: 3D 20 6E 65 77 20 76 61 6C 75 65 20 66 6F 72 20 = new value for
007440: 72 65 74 72 79 20 63 6F 75 6E 74 0D 0D 45 78 69 retry count..Exi
007450: 74 3A 0D 0D 41 20 3D 20 6F 6C 64 20 76 61 6C 75 t:..A = old valu
007460: 65 0D 48 4C 20 61 6E 64 20 66 6C 61 67 73 20 63 e.HL and flags c
007470: 6F 72 72 75 70 74 2E 0D 0D 4E 6F 74 65 73 3A 0D orrupt...Notes:.
007480: 0D 54 68 65 20 64 65 66 61 75 6C 74 20 76 61 6C .The default val
007490: 75 65 20 69 73 20 31 36 2E 0D 0D 2D 2D 2D 2D 2D ue is 16...-----
0074A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0074B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0074C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0074D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0074E0: 0D 0D 1A 20 62 69 74 20 36 20 3D 20 30 20 74 68 ... bit 6 = 0 th
0074F0: 65 6E 20 74 68 65 20 65 72 72 6F 72 20 6E 75 6D en the error num
007500: 62 65 72 73 20 61 72 65 20 61 73 20 66 6F 6C 6C bers are as foll
007510: 6F 77 73 3A 0D 0D 26 30 45 09 46 69 6C 65 20 69 ows:..&0E.File i
007520: 73 20 6E 6F 74 20 6F 70 65 6E 20 61 73 20 65 78 s not open as ex
007530: 70 65 63 74 65 64 0D 26 30 46 09 48 61 72 64 20 pected.&0F.Hard
007540: 65 6E 64 20 6F 66 20 66 69 6C 65 0D 0D 1A 6E 63 end of file...nc
007550: 74 69 6F 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A tio.............
007560: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
007570: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
007580: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007590: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0075A0: 2D 0D 0D 42 49 4F 53 3A 20 20 53 45 54 20 20 52 -..BIOS: SET R
0075B0: 45 54 52 59 20 20 20 43 4F 55 4E 54 20 20 20 2D ETRY COUNT -
0075C0: 20 20 20 53 65 74 20 20 20 74 68 65 20 20 20 6E Set the n
0075D0: 75 6D 62 65 72 20 20 20 6F 66 20 20 20 72 65 74 umber of ret
0075E0: 72 69 65 73 20 20 66 6F 72 0D 20 20 20 20 20 20 ries for.
0075F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007600: 74 65 20 0D 8A 65 72 72 6F 72 73 2E 0D 0D 0D 0D te ..errors.....
007610: 54 68 65 20 64 65 66 61 75 6C 74 20 68 61 6C 66 The default half
007620: 90 20 7A 65 72 6F 90 20 6C 65 6E 67 74 68 90 20 . zero. length.
007630: 61 6E 64 90 20 70 72 65 63 6F 6D 70 65 6E 73 61 and. precompensa
007640: 74 69 6F 6E 90 20 73 65 74 74 69 6E 67 73 20 61 tion. settings a
007650: 72 65 20 33 33 33 20 0D 8A 6D 69 63 72 6F 73 65 re 333 ..microse
007660: 63 6F 6E 64 73 20 28 31 30 30 30 20 62 61 75 64 conds (1000 baud
007670: 29 20 61 6E 64 20 32 35 20 6D 69 63 72 6F 73 65 ) and 25 microse
007680: 63 6F 6E 64 73 20 72 65 73 70 65 63 74 69 76 6C conds respectivl
007690: 79 2E 20 54 68 65 20 63 6F 6D 6D 6F 6E 6C 79 20 y. The commonly
0076A0: 0D 8A 75 73 65 64 90 20 66 61 73 74 65 72 90 20 ..used. faster.
0076B0: 73 65 74 74 69 6E 67 90 20 69 73 90 20 31 36 37 setting. is. 167
0076C0: 90 90 20 6D 69 63 72 6F 73 65 63 6F 6E 64 73 90 .. microseconds.
0076D0: 90 20 28 32 30 30 30 90 20 62 61 75 64 29 90 20 . (2000. baud).
0076E0: 77 69 74 68 90 20 35 30 20 0D 8A 6D 69 63 72 6F with. 50 ..micro
0076F0: 73 65 63 6F 6E 64 73 20 6F 66 20 70 72 65 63 6F seconds of preco
007700: 6D 70 65 6E 73 61 74 69 6F 6E 2E 90 20 54 68 65 mpensation.. The
007710: 73 65 90 20 76 61 6C 75 65 73 90 20 68 61 76 65 se. values. have
007720: 90 20 62 65 65 6E 20 64 65 74 65 72 6D 69 6E 65 . been determine
007730: 64 20 0D 8A 61 66 74 65 72 20 65 78 74 65 6E 73 d ..after extens
007740: 69 76 65 20 74 65 73 74 69 6E 67 20 61 6E 64 20 ive testing and
007750: 74 68 65 20 75 73 65 72 20 69 73 20 61 64 76 69 the user is advi
007760: 73 65 64 20 74 6F 20 73 74 69 63 6B 20 74 6F 20 sed to stick to
007770: 74 68 65 6D 2E 0D 0D 0D 0D 2D 2D 2D 2D 2D 2D 2D them.....-------
007780: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007790: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0077A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0077B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D --------------..
0077C0: 26 42 43 36 42 20 2D 20 43 41 53 20 4E 4F 49 53 &BC6B - CAS NOIS
0077D0: 59 20 2D 20 41 6C 6C 6F 77 20 6D 65 73 73 61 67 Y - Allow messag
0077E0: 65 73 20 74 6F 20 62 65 20 70 72 69 6E 74 65 64 es to be printed
0077F0: 0D 0D 0D 0D 45 6E 74 72 79 3A 0D 0D 0D 0D 49 66 ....Entry:....If
007800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0078A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0078B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0078C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0078D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0078E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0078F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0079A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0079B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0079C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0079D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0079E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0079F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
007A00: 20 6D 65 73 73 61 67 65 73 20 61 72 65 20 74 6F messages are to
007A10: 20 62 65 20 65 6E 61 62 6C 65 64 3A 0D 0D 0D 0D be enabled:....
007A20: 41 20 3D 20 30 0D 0D 0D 0D 49 66 20 6D 65 73 73 A = 0....If mess
007A30: 61 67 65 73 20 61 72 65 20 74 6F 20 62 65 20 64 ages are to be d
007A40: 69 73 61 62 6C 65 64 3A 0D 0D 0D 0D 41 20 3C 3E isabled:....A <>
007A50: 20 30 0D 0D 0D 0D 45 78 69 74 3A 0D 0D 0D 0D 41 0....Exit:....A
007A60: 46 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 4E 6F F corrupt.....No
007A70: 74 65 73 3A 0D 0D 0D 0D 54 68 65 20 70 72 6F 6D tes:....The prom
007A80: 70 74 20 6D 65 73 73 61 67 65 73 20 73 75 63 68 pt messages such
007A90: 20 61 73 20 27 50 72 65 73 73 20 50 4C 41 59 90 as 'Press PLAY.
007AA0: 20 74 68 65 6E 20 61 6E 79 20 6B 65 79 22 20 61 then any key" a
007AB0: 72 65 20 74 75 72 6E 65 64 20 6F 66 66 2E 20 0D re turned off. .
007AC0: 8A 45 72 72 6F 72 20 6D 65 73 73 61 67 65 73 20 .Error messages
007AD0: 73 75 63 68 20 61 73 20 27 52 65 61 64 20 65 72 such as 'Read er
007AE0: 72 6F 72 20 61 27 20 65 74 63 20 61 72 65 20 6E ror a' etc are n
007AF0: 6F 74 2E 0D 0D 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D ot.....---------
007B00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007B10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007B20: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007B30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 26 42 ------------..&B
007B40: 43 36 45 20 2D 20 43 41 53 20 53 54 41 52 54 20 C6E - CAS START
007B50: 4D 4F 54 4F 52 20 2D 20 53 74 61 72 74 20 63 61 MOTOR - Start ca
007B60: 73 73 65 74 74 65 20 6D 6F 74 6F 72 2E 0D 0D 0D ssette motor....
007B70: 0D 45 6E 74 72 79 3A 0D 0D 0D 0D 4E 6F 6E 65 0D .Entry:....None.
007B80: 0D 0D 0D 45 78 69 74 3A 0D 0D 0D 0D 49 66 20 74 ...Exit:....If t
007B90: 68 65 20 6D 6F 74 6F 72 20 74 75 72 6E 65 64 20 he motor turned
007BA0: 6F 6E 20 4F 4B 3A 0D 0D 0D 0D 43 61 72 72 79 20 on OK:....Carry
007BB0: 74 72 75 65 2E 0D 0D 0D 0D 49 66 20 74 68 65 20 true.....If the
007BC0: 75 73 65 72 20 68 69 74 20 65 73 63 61 70 65 3A user hit escape:
007BD0: 0D 0D 0D 0D 43 61 72 72 79 20 66 61 6C 73 65 2E ....Carry false.
007BE0: 0D 0D 0D 0D 41 20 3D 20 70 72 65 76 69 6F 75 73 ....A = previous
007BF0: 20 6D 6F 74 6F 72 20 73 74 61 74 65 0D 0D 4F 74 motor state..Ot
007C00: 00 43 41 53 20 20 20 20 20 20 20 20 00 00 00 00 .CAS ....
007C10: 00 00 0D 00 00 72 01 00 0D 39 00 00 00 00 00 00 .....r...9......
007C20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007C30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007C40: 0D 39 00 DA 02 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 1A .9...--------...
007C50: 24 24 FF 00 FF 00 00 0D 00 00 72 01 00 91 37 00 $$........r...7.
007C60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007C70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007C80: 26 42 43 36 35 20 2D 20 43 41 53 20 49 4E 49 54 &BC65 - CAS INIT
007C90: 49 41 4C 49 53 45 20 2D 20 49 6E 69 74 69 61 6C IALISE - Initial
007CA0: 69 73 65 20 74 68 65 20 63 61 73 73 65 74 74 65 ise the cassette
007CB0: 20 6D 61 6E 61 67 65 72 0D 0D 0D 0D 45 6E 74 72 manager....Entr
007CC0: 79 3A 0D 0D 0D 0D 4E 6F 6E 65 0D 0D 0D 0D 45 78 y:....None....Ex
007CD0: 69 74 3A 0D 0D 0D 0D 41 46 2C 42 43 2C 44 45 2C it:....AF,BC,DE,
007CE0: 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 4E HL corrupt.....N
007CF0: 6F 74 65 73 3A 0D 0D 0D 0D 41 6C 6C 20 73 74 72 otes:....All str
007D00: 65 61 6D 73 20 61 72 65 20 6D 61 72 6B 65 64 20 eams are marked
007D10: 63 6C 6F 73 65 64 2E 0D 0D 54 68 65 20 64 65 66 closed...The def
007D20: 61 75 6C 74 20 77 72 69 74 65 20 73 70 65 65 64 ault write speed
007D30: 20 69 73 20 73 65 74 20 75 70 2E 0D 0D 54 68 65 is set up...The
007D40: 20 70 72 6F 6D 70 74 20 6D 65 73 73 61 67 65 73 prompt messages
007D50: 20 61 72 65 20 74 75 72 6E 65 64 20 6F 6E 2E 0D are turned on..
007D60: 0D 54 68 65 20 63 61 73 73 65 74 74 65 20 6D 6F .The cassette mo
007D70: 74 6F 72 20 69 73 20 74 75 72 6E 65 64 20 6F 66 tor is turned of
007D80: 66 20 28 65 78 63 65 70 74 20 6F 6E 20 56 31 2E f (except on V1.
007D90: 30 29 0D 0D 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0)....----------
007DA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007DB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007DC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007DD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 26 42 43 -----------..&BC
007DE0: 36 38 20 2D 20 43 41 53 20 53 45 54 20 53 50 45 68 - CAS SET SPE
007DF0: 45 44 20 2D 20 53 65 74 20 74 68 65 20 77 72 69 ED - Set the wri
007E00: 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 her flags corrup
007E10: 74 2E 0D 0D 0D 0D 4E 6F 74 65 73 3A 0D 0D 0D 0D t.....Notes:....
007E20: 54 68 65 20 70 72 65 76 69 6F 75 73 20 73 74 61 The previous sta
007E30: 74 65 20 6D 61 79 20 62 65 20 73 65 6E 74 20 74 te may be sent t
007E40: 6F 20 43 41 53 20 52 45 53 54 4F 52 45 20 4D 4F o CAS RESTORE MO
007E50: 54 4F 52 2E 0D 0D 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D TOR.....--------
007E60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007E70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007E80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007E90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 0D 0D ------------....
007EA0: 26 42 43 37 31 20 2D 20 43 41 53 20 53 54 4F 50 &BC71 - CAS STOP
007EB0: 20 4D 4F 54 4F 52 20 2D 20 53 74 6F 70 20 63 61 MOTOR - Stop ca
007EC0: 73 73 65 74 74 65 20 6D 6F 74 6F 72 2E 20 0D 0D ssette motor. ..
007ED0: 0D 0D 45 6E 74 72 79 3A 0D 0D 0D 0D 4E 6F 6E 65 ..Entry:....None
007EE0: 0D 0D 0D 0D 45 78 69 74 3A 0D 0D 0D 0D 49 66 20 ....Exit:....If
007EF0: 6D 6F 74 6F 72 20 77 61 73 20 74 75 72 6E 65 64 motor was turned
007F00: 20 6F 66 66 20 4F 4B 3A 0D 0D 0D 0D 43 61 72 72 off OK:....Carr
007F10: 79 20 74 72 75 65 2E 0D 0D 0D 0D 49 66 20 74 68 y true.....If th
007F20: 65 20 75 73 65 72 20 68 69 74 20 65 73 63 61 70 e user hit escap
007F30: 65 3A 0D 0D 0D 0D 43 61 72 72 79 20 66 61 6C 73 e:....Carry fals
007F40: 65 0D 0D 0D 0D 41 20 3D 20 70 72 65 76 69 6F 75 e....A = previou
007F50: 73 20 73 74 61 74 65 0D 0D 4F 74 68 65 72 20 66 s state..Other f
007F60: 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D 0D lags corrupt....
007F70: 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D .---------------
007F80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007F90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007FA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
007FB0: 2D 2D 2D 2D 2D 2D 0D 0D 0D 0D 26 42 43 37 34 20 ------....&BC74
007FC0: 2D 20 43 41 53 20 52 45 53 54 4F 52 45 20 4D 4F - CAS RESTORE MO
007FD0: 54 4F 52 20 2D 20 52 65 73 74 6F 72 65 20 70 72 TOR - Restore pr
007FE0: 65 76 69 6F 75 73 20 73 74 61 74 65 20 6F 66 20 evious state of
007FF0: 6D 6F 74 6F 72 0D 0D 0D 0D 45 6E 74 72 79 3A 0D motor....Entry:.
008000: 74 65 20 73 70 65 65 64 0D 0D 0D 0D 45 6E 74 72 te speed....Entr
008010: 79 3A 0D 0D 0D 0D 48 4C 20 3D 20 6C 65 6E 67 74 y:....HL = lengt
008020: 68 20 6F 66 20 68 61 6C 66 20 61 20 7A 65 72 6F h of half a zero
008030: 20 62 69 74 0D 0D 41 20 3D 20 70 72 65 63 6F 6D bit..A = precom
008040: 70 65 6E 73 61 74 69 6F 6E 20 74 6F 20 61 70 70 pensation to app
008050: 6C 79 0D 0D 0D 0D 45 78 69 74 3A 0D 0D 0D 0D 41 ly....Exit:....A
008060: 46 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 F and HL corrupt
008070: 2E 0D 0D 0D 0D 4E 6F 74 65 73 3A 0D 0D 0D 0D 54 .....Notes:....T
008080: 68 65 20 73 70 65 65 64 20 73 75 70 70 6C 69 65 he speed supplie
008090: 64 20 69 73 20 74 68 65 20 6C 65 6E 67 74 68 20 d is the length
0080A0: 6F 66 20 61 20 68 61 6C 66 20 7A 65 72 6F 20 62 of a half zero b
0080B0: 69 74 20 69 6E 20 6D 69 72 63 6F 73 65 63 6F 6E it in mircosecon
0080C0: 64 73 2E 20 41 20 0D 8A 6F 6E 65 20 62 69 74 20 ds. A ..one bit
0080D0: 69 73 20 77 72 69 74 74 65 6E 20 74 77 69 63 65 is written twice
0080E0: 20 74 68 65 20 6C 65 6E 67 74 68 90 20 6F 66 20 the length. of
0080F0: 61 20 7A 65 72 6F 20 62 69 74 2E 20 54 68 65 20 a zero bit. The
008100: 73 70 65 65 64 20 73 75 70 70 6C 69 65 64 20 0D speed supplied .
008110: 8A 63 61 6E 20 62 65 20 72 65 6C 61 74 65 64 20 .can be related
008120: 74 6F 20 74 68 65 90 20 61 76 65 72 61 67 65 90 to the. average.
008130: 20 62 61 75 64 90 20 72 61 74 65 90 20 28 61 73 baud. rate. (as
008140: 73 75 6D 69 6E 67 20 65 71 75 61 6C 20 6E 75 6D suming equal num
008150: 62 65 72 73 20 6F 66 20 0D 8A 6F 6E 65 73 20 61 bers of ..ones a
008160: 6E 64 20 7A 65 72 6F 73 29 20 62 79 20 74 68 65 nd zeros) by the
008170: 20 66 6F 6C 6C 6F 77 69 6E 67 20 65 71 75 61 74 following equat
008180: 69 6F 6E 73 3A 0D 0D 0D 0D 41 76 65 72 61 67 65 ions:....Average
008190: 20 62 61 75 64 20 72 61 74 65 3A 0D 0D 0D 0D 3D baud rate:....=
0081A0: 20 31 20 30 30 30 20 30 30 30 2F 28 33 2A 68 61 1 000 000/(3*ha
0081B0: 6C 66 20 7A 65 72 6F 20 6C 65 6E 67 74 68 29 0D lf zero length).
0081C0: 0D 3D 20 33 33 33 20 33 33 33 2F 48 61 6C 66 20 .= 333 333/Half
0081D0: 7A 65 72 6F 20 6C 65 6E 67 74 68 0D 0D 0D 0D 54 zero length....T
0081E0: 68 65 20 68 61 6C 66 20 7A 65 72 6F 20 6C 65 6E he half zero len
0081F0: 67 74 68 20 6D 75 73 74 20 62 65 90 20 62 65 74 gth must be. bet
008200: 0D 0D 0D 41 20 3D 20 70 72 65 76 69 6F 75 73 20 ...A = previous
008210: 73 74 61 74 65 0D 0D 0D 0D 45 78 69 74 3A 0D 0D state....Exit:..
008220: 0D 0D 49 66 20 6D 6F 74 6F 72 20 73 65 74 20 61 ..If motor set a
008230: 73 20 61 70 70 72 6F 70 69 61 74 65 20 77 61 73 s appropiate was
008240: 20 4F 4B 3A 0D 0D 0D 0D 43 61 72 72 79 20 74 72 OK:....Carry tr
008250: 75 65 2E 0D 0D 0D 0D 45 73 63 61 70 65 20 77 61 ue.....Escape wa
008260: 73 20 70 72 65 73 73 65 64 3A 0D 0D 0D 0D 43 61 s pressed:....Ca
008270: 72 72 79 20 66 61 6C 73 65 2E 0D 0D 0D 0D 41 20 rry false.....A
008280: 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 73 20 and other flags
008290: 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 2D 2D 2D 2D corrupt.....----
0082A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0082B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0082C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0082D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0082E0: 2D 0D 0D 0D 0D 26 42 43 37 37 20 2D 20 43 41 53 -....&BC77 - CAS
0082F0: 20 49 4E 20 4F 50 45 4E 20 2D 20 4F 70 65 6E 20 IN OPEN - Open
008300: 61 20 66 69 6C 65 20 66 6F 72 20 69 6E 70 75 74 a file for input
008310: 0D 0D 0D 0D 45 6E 74 72 79 3A 0D 0D 0D 0D 42 20 ....Entry:....B
008320: 3D 20 6C 65 6E 67 74 68 20 6F 66 20 66 69 6C 65 = length of file
008330: 6E 61 6D 65 0D 0D 48 4C 20 3D 20 61 64 64 72 65 name..HL = addre
008340: 73 73 20 6F 66 20 66 69 6C 65 6E 61 6D 65 0D 0D ss of filename..
008350: 44 45 20 3D 20 32 4B 20 62 75 66 66 65 72 20 74 DE = 2K buffer t
008360: 6F 20 75 73 65 0D 0D 0D 0D 45 78 69 74 3A 0D 0D o use....Exit:..
008370: 0D 0D 49 66 20 74 68 65 20 66 69 6C 65 20 77 61 ..If the file wa
008380: 73 20 6F 70 65 6E 65 64 20 4F 4B 3A 0D 0D 0D 0D s opened OK:....
008390: 43 61 72 72 79 20 74 72 75 65 2E 0D 0D 5A 65 72 Carry true...Zer
0083A0: 6F 20 66 61 6C 73 65 2E 0D 0D 48 4C 20 3D 20 61 o false...HL = a
0083B0: 64 64 72 65 73 73 20 6F 66 20 61 20 62 75 66 66 ddress of a buff
0083C0: 65 72 20 63 6F 6E 74 61 69 6E 69 6E 67 20 74 68 er containing th
0083D0: 65 20 66 69 6C 65 20 68 65 61 64 65 72 0D 0D 44 e file header..D
0083E0: 45 20 3D 20 64 61 74 61 20 6C 6F 63 61 74 69 6F E = data locatio
0083F0: 6E 20 28 66 72 6F 6D 20 68 65 61 64 65 72 29 0D n (from header).
008400: 77 65 65 6E 20 31 33 30 20 61 6E 64 20 34 38 30 ween 130 and 480
008410: 20 6D 69 63 72 6F 73 65 63 6F 6E 64 73 2E 20 56 microseconds. V
008420: 61 6C 75 65 73 20 0D 8A 6F 75 74 73 69 64 65 20 alues ..outside
008430: 74 68 65 73 65 20 76 61 6C 75 65 73 20 77 69 6C these values wil
008440: 6C 20 63 61 75 73 65 20 72 65 61 64 20 61 6E 64 l cause read and
008450: 20 77 72 69 74 65 20 65 72 72 6F 72 73 2E 0D 0D write errors...
008460: 0D 0D 54 68 65 20 70 72 65 63 6F 6D 70 65 6E 73 ..The precompens
008470: 61 74 69 6F 6E 20 73 75 70 70 6C 69 65 64 20 69 ation supplied i
008480: 73 20 74 68 65 90 20 65 78 74 72 61 20 6C 65 6E s the. extra len
008490: 67 74 68 2C 20 69 6E 20 6D 69 63 72 6F 73 65 63 gth, in microsec
0084A0: 6F 6E 64 73 2C 20 74 6F 20 0D 8A 61 64 64 20 74 onds, to ..add t
0084B0: 6F 20 68 61 6C 66 20 61 20 6F 6E 65 90 20 62 69 o half a one. bi
0084C0: 74 90 20 61 6E 64 90 20 74 6F 90 20 73 75 62 74 t. and. to. subt
0084D0: 72 61 63 74 90 20 66 72 6F 6D 90 20 68 61 6C 66 ract. from. half
0084E0: 20 61 20 7A 65 72 6F 20 62 69 74 20 75 6E 64 65 a zero bit unde
0084F0: 72 20 0D 8A 63 65 72 74 61 69 6E 20 63 6F 6E 64 r ..certain cond
008500: 69 74 69 6F 6E 73 2E 20 54 68 65 20 61 6D 6F 75 itions. The amou
008510: 6E 74 20 6F 66 20 70 72 65 63 6F 6D 70 65 6E 73 nt of precompens
008520: 61 74 69 6F 6E 20 72 65 71 75 69 72 65 64 20 76 ation required v
008530: 61 72 69 65 73 20 77 69 74 68 20 0D 8A 74 68 65 aries with ..the
008540: 20 73 70 65 65 64 20 28 6D 6F 72 65 20 69 73 20 speed (more is
008550: 72 65 71 75 69 72 65 64 20 61 74 20 68 69 67 68 required at high
008560: 65 72 20 62 61 75 64 20 72 61 74 65 73 29 2E 0D er baud rates)..
008570: 0D 0D 0D 54 68 65 20 70 72 65 63 6F 6D 70 65 6E ...The precompen
008580: 73 61 74 69 6F 6E 20 6D 61 79 20 6C 69 65 90 20 sation may lie.
008590: 62 65 74 77 65 65 6E 90 20 30 90 20 61 6E 64 20 between. 0. and
0085A0: 32 35 35 20 6D 69 63 72 6F 73 65 63 6F 6E 64 73 255 microseconds
0085B0: 20 61 6C 74 68 6F 75 67 68 20 0D 8A 74 68 65 20 although ..the
0085C0: 68 69 67 68 65 72 20 73 65 74 74 69 6E 67 73 20 higher settings
0085D0: 61 72 65 20 6E 6F 74 20 75 73 65 66 75 6C 90 20 are not useful.
0085E0: 61 73 90 20 74 68 65 79 20 77 69 6C 6C 20 63 61 as. they will ca
0085F0: 75 73 65 20 72 65 61 64 20 61 6E 64 20 77 72 69 use read and wri
008600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
008610: 07 00 01 00 02 09 4E E5 07 00 C1 02 00 00 00 02 ......N.........
008620: 07 00 C6 02 00 00 00 02 07 00 C2 02 00 00 00 02 ................
008630: 07 00 C7 02 00 00 00 02 07 00 C3 02 00 00 00 02 ................
008640: 07 00 C8 02 00 00 00 02 07 00 C4 02 00 00 00 02 ................
008650: 07 00 C9 02 00 00 00 02 07 00 C5 02 00 00 00 02 ................
008660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008700: 0D 42 43 20 3D 20 6C 65 6E 67 74 68 20 6F 66 20 .BC = length of
008710: 66 69 6C 65 20 28 66 72 6F 6D 20 68 65 61 64 65 file (from heade
008720: 72 29 0D 0D 41 20 3D 20 66 69 6C 65 20 74 79 70 r)..A = file typ
008730: 65 0D 0D 0D 0D 49 66 20 73 74 72 65 61 6D 20 69 e....If stream i
008740: 73 20 69 6E 20 75 73 65 3A 0D 0D 0D 0D 43 61 72 s in use:....Car
008750: 72 79 20 66 61 6C 73 65 2E 0D 0D 5A 65 72 6F 20 ry false...Zero
008760: 66 61 6C 73 65 2E 0D 0D 42 43 2C 44 45 2C 48 4C false...BC,DE,HL
008770: 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 56 31 2E corrupt.....V1.
008780: 30 0D 0D 2D 2D 2D 2D 20 20 41 20 63 6F 72 72 75 0..---- A corru
008790: 70 74 2E 0D 0D 0D 0D 56 31 2E 31 0D 0D 2D 2D 2D pt.....V1.1..---
0087A0: 2D 20 20 41 20 3D 20 65 72 72 6F 72 20 6E 75 6D - A = error num
0087B0: 62 65 72 20 28 26 30 45 29 0D 0D 0D 0D 49 66 20 ber (&0E)....If
0087C0: 75 73 65 72 20 68 69 74 20 65 73 63 61 70 65 3A user hit escape:
0087D0: 0D 0D 0D 0D 43 61 72 72 79 20 66 61 6C 73 65 2E ....Carry false.
0087E0: 0D 0D 5A 65 72 6F 20 74 72 75 65 2E 0D 0D 42 43 ..Zero true...BC
0087F0: 2C 44 45 2C 48 4C 20 63 6F 72 72 75 70 74 2E 0D ,DE,HL corrupt..
008800: 0D 0D 0D 56 31 2E 30 0D 0D 2D 2D 2D 2D 20 20 41 ...V1.0..---- A
008810: 20 63 6F 72 72 75 70 74 0D 0D 0D 0D 56 31 2E 31 corrupt....V1.1
008820: 0D 0D 2D 2D 2D 2D 20 20 41 20 3D 20 65 72 72 6F ..---- A = erro
008830: 72 20 6E 75 6D 62 65 72 20 28 26 30 30 29 0D 0D r number (&00)..
008840: 0D 0D 0D 0D 49 58 20 61 6E 64 20 6F 74 68 65 72 ....IX and other
008850: 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D flags corrupt..
008860: 0D 0D 0D 4E 6F 74 65 73 3A 0D 0D 0D 0D 54 68 65 ...Notes:....The
008870: 20 32 6B 20 62 75 66 66 65 72 20 73 75 70 70 6C 2k buffer suppl
008880: 69 65 64 20 69 73 20 75 73 65 64 20 74 6F 20 73 ied is used to s
008890: 74 6F 72 65 20 74 68 65 20 63 6F 6E 74 65 6E 74 tore the content
0088A0: 73 20 6F 66 20 61 20 62 6C 6F 63 6B 20 6F 66 20 s of a block of
0088B0: 74 68 65 20 0D 8A 66 69 6C 65 2E 20 49 74 20 77 the ..file. It w
0088C0: 69 6C 6C 20 72 65 6D 61 69 6E 90 20 69 6E 90 20 ill remain. in.
0088D0: 75 73 65 90 20 75 6E 74 69 6C 90 20 65 69 74 68 use. until. eith
0088E0: 65 72 90 20 43 41 53 90 20 49 4E 90 20 43 4C 4F er. CAS. IN. CLO
0088F0: 53 45 20 6F 72 20 43 41 53 20 49 4E 20 0D 8A 41 SE or CAS IN ..A
008900: 20 70 6F 73 73 69 62 6C 65 90 20 74 6F 20 64 69 possible. to di
008910: 72 65 63 74 20 0D 8A 72 65 61 64 69 6E 67 20 28 rect ..reading (
008920: 62 79 20 43 41 53 20 49 4E 20 44 49 52 45 43 54 by CAS IN DIRECT
008930: 29 2E 0D 0D 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ).....----------
008940: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
008950: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
008960: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
008970: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 8A 0D 0D 26 -----------....&
008980: 42 43 38 33 20 2D 20 43 41 53 20 49 4E 20 44 49 BC83 - CAS IN DI
008990: 52 45 43 54 20 2D 20 52 65 61 64 20 61 20 69 6E RECT - Read a in
0089A0: 70 75 74 20 66 69 6C 65 20 69 6E 74 6F 20 73 74 put file into st
0089B0: 6F 72 65 2E 0D 0D 0D 0D 45 6E 74 72 79 3A 0D 0D ore.....Entry:..
0089C0: 0D 0D 48 4C 20 3D 20 61 64 64 72 65 73 73 20 74 ..HL = address t
0089D0: 6F 20 70 75 74 20 74 68 65 20 66 69 6C 65 20 28 o put the file (
0089E0: 61 6E 79 77 68 65 72 65 20 69 6E 20 72 61 6D 29 anywhere in ram)
0089F0: 0D 0D 0D 0D 45 78 69 74 3A 0D 0D 0D 0D 49 66 20 ....Exit:....If
008A00: 66 69 6C 65 20 77 61 73 20 72 65 61 64 20 4F 4B file was read OK
008A10: 3A 0D 0D 0D 0D 43 61 72 72 79 20 74 72 75 65 2E :....Carry true.
008A20: 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0D 48 4C Zero false...HL
008A30: 20 3D 20 65 6E 74 72 79 20 61 64 64 72 65 73 73 = entry address
008A40: 0D 0D 41 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D ..A corrupt.....
008A50: 49 66 20 66 69 6C 65 20 77 61 73 20 6E 6F 74 20 If file was not
008A60: 6F 70 65 6E 65 64 20 63 6F 72 72 65 63 74 6C 79 opened correctly
008A70: 3A 0D 0D 0D 0D 43 61 72 72 79 20 66 61 6C 73 65 :....Carry false
008A80: 2E 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0D 48 . Zero false...H
008A90: 4C 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 56 31 L corrupt.....V1
008AA0: 2E 30 0D 0D 2D 2D 2D 2D 20 41 20 63 6F 72 72 75 .0..---- A corru
008AB0: 70 74 2E 0D 0D 0D 0D 56 31 2E 31 0D 0D 2D 2D 2D pt.....V1.1..---
008AC0: 2D 20 41 20 3D 20 65 72 72 6F 72 20 6E 75 6D 62 - A = error numb
008AD0: 65 72 20 28 26 30 45 29 0D 0D 0D 0D 49 66 20 75 er (&0E)....If u
008AE0: 73 65 72 20 68 69 74 20 65 73 63 61 70 65 3A 0D ser hit escape:.
008AF0: 0D 0D 0D 43 61 72 72 79 20 66 61 6C 73 65 0D 0D ...Carry false..
008B00: 42 41 4E 44 4F 4E 20 69 73 20 63 61 6C 6C 65 64 BANDON is called
008B10: 2E 20 54 68 65 20 62 75 66 66 65 72 90 20 6D 61 . The buffer. ma
008B20: 79 90 20 62 65 90 20 73 74 6F 72 65 64 90 20 61 y. be. stored. a
008B30: 6E 79 77 68 65 72 65 2C 20 65 76 65 6E 20 75 6E nywhere, even un
008B40: 64 65 72 20 61 20 0D 8A 52 4F 4D 2E 0D 0D 0D 0D der a ..ROM.....
008B50: 41 20 66 69 6C 65 6E 61 6D 65 20 6F 66 20 30 20 A filename of 0
008B60: 63 68 61 72 61 63 74 65 72 73 20 69 73 20 74 72 characters is tr
008B70: 65 61 74 65 64 20 74 6F 20 6D 65 61 6E 2C 20 6C eated to mean, l
008B80: 6F 61 64 20 74 68 65 20 6E 65 78 74 20 66 69 6C oad the next fil
008B90: 65 20 66 72 6F 6D 20 0D 8A 63 61 73 73 65 74 74 e from ..cassett
008BA0: 65 2E 0D 0D 0D 0D 54 68 65 20 66 69 6C 65 6E 61 e.....The filena
008BB0: 6D 65 20 69 73 20 73 68 6F 72 74 65 6E 65 64 20 me is shortened
008BC0: 74 6F 90 20 31 36 90 20 63 68 61 72 61 63 74 65 to. 16. characte
008BD0: 72 73 90 20 69 66 90 20 69 74 20 69 73 20 6C 6F rs. if. it is lo
008BE0: 6E 67 65 72 20 74 68 61 6E 20 31 36 20 0D 8A 63 nger than 16 ..c
008BF0: 68 61 72 61 63 74 65 72 73 2E 49 66 20 69 74 20 haracters.If it
008C00: 69 73 20 6C 65 73 73 20 74 68 61 6E 20 31 36 90 is less than 16.
008C10: 20 63 68 61 72 61 63 74 65 72 73 90 20 69 74 20 characters. it
008C20: 69 73 20 70 61 64 64 65 64 20 77 69 74 68 20 26 is padded with &
008C30: 30 30 20 74 6F 20 0D 8A 31 36 20 63 68 61 72 61 00 to ..16 chara
008C40: 63 74 65 72 73 2E 20 54 68 65 20 41 53 43 49 49 cters. The ASCII
008C50: 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 characters are
008C60: 74 75 72 6E 65 64 20 74 6F 20 75 70 70 65 72 20 turned to upper
008C70: 63 61 73 65 2E 0D 0D 0D 0D 57 68 65 6E 20 74 68 case.....When th
008C80: 65 20 66 69 6C 65 20 69 73 90 20 6F 70 65 6E 65 e file is. opene
008C90: 64 90 20 66 6F 72 90 20 72 65 61 64 69 6E 67 90 d. for. reading.
008CA0: 20 74 68 65 90 20 66 69 72 73 74 90 20 62 6C 6F the. first. blo
008CB0: 63 6B 20 69 73 20 72 65 61 64 2E 20 54 68 65 20 ck is read. The
008CC0: 0D 8A 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 ..address of the
008CD0: 20 61 72 65 61 20 77 68 65 72 65 90 20 74 68 65 area where. the
008CE0: 90 20 68 65 61 64 65 72 90 20 66 72 6F 6D 90 20 . header. from.
008CF0: 74 68 69 73 90 20 62 6C 6F 63 6B 20 69 73 20 73 this. block is s
008D00: 5A 65 72 6F 20 74 72 75 65 2E 0D 0D 48 4C 20 63 Zero true...HL c
008D10: 6F 72 72 75 70 74 2E 0D 0D 0D 0D 56 31 2E 30 0D orrupt.....V1.0.
008D20: 0D 2D 2D 2D 2D 20 41 20 63 6F 72 72 75 70 74 2E .---- A corrupt.
008D30: 0D 0D 0D 0D 56 31 2E 31 0D 0D 2D 2D 2D 2D 20 41 ....V1.1..---- A
008D40: 20 3D 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 20 = error number
008D50: 28 26 30 30 29 0D 0D 0D 0D 0D 0D 44 45 2C 49 58 (&00)......DE,IX
008D60: 2C 42 43 20 61 6E 64 20 6F 74 68 65 72 20 66 6C ,BC and other fl
008D70: 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D ags corrupt.....
008D80: 4E 6F 74 65 73 3A 0D 0D 0D 0D 54 68 65 20 73 74 Notes:....The st
008D90: 72 65 61 6D 20 6D 75 73 74 20 6E 65 20 6E 65 77 ream must ne new
008DA0: 6C 79 20 6F 70 65 6E 65 64 90 20 28 62 79 90 20 ly opened. (by.
008DB0: 43 41 53 90 20 49 4E 20 4F 50 45 4E 29 2E 20 49 CAS. IN OPEN). I
008DC0: 66 20 74 68 65 20 73 74 72 65 61 6D 20 68 61 73 f the stream has
008DD0: 20 0D 8A 62 65 65 6E 20 75 73 65 64 20 66 6F 72 ..been used for
008DE0: 20 63 68 61 72 61 63 74 65 72 20 61 63 63 65 73 character acces
008DF0: 73 90 20 74 68 65 6E 90 20 69 74 90 20 69 73 90 s. then. it. is.
008E00: 20 6E 6F 74 20 70 6F 73 73 69 62 6C 65 20 74 6F not possible to
008E10: 20 64 69 72 65 63 74 6C 79 20 0D 8A 72 65 61 64 directly ..read
008E20: 20 74 68 65 20 66 69 6C 65 2E 20 49 74 20 69 73 the file. It is
008E30: 20 6E 6F 74 90 20 70 6F 73 73 69 62 6C 65 90 20 not. possible.
008E40: 74 6F 90 20 72 65 61 64 90 20 74 68 65 20 66 69 to. read. the fi
008E50: 6C 65 20 69 6E 74 6F 20 73 74 6F 72 65 20 6D 6F le into store mo
008E60: 72 65 20 0D 8A 74 68 61 6E 20 6F 6E 63 65 2E 20 re ..than once.
008E70: 54 68 69 73 20 77 69 6C 6C 20 63 6F 72 72 75 70 This will corrup
008E80: 74 20 74 68 65 20 63 6F 70 79 20 6F 66 20 74 68 t the copy of th
008E90: 65 20 66 69 6C 65 20 72 65 61 64 2E 0D 0D 0D 0D e file read.....
008EA0: 54 68 65 20 62 75 66 66 65 72 20 6F 66 20 64 61 The buffer of da
008EB0: 74 61 20 72 65 61 64 20 77 68 65 6E 90 20 74 68 ta read when. th
008EC0: 65 90 20 73 74 72 65 61 6D 90 20 77 61 73 20 6F e. stream. was o
008ED0: 70 65 6E 65 64 20 69 73 20 63 6F 70 69 65 64 20 pened is copied
008EE0: 74 6F 20 69 74 73 20 0D 8A 63 6F 72 72 65 63 74 to its ..correct
008EF0: 20 70 6F 73 69 74 69 6F 6E 20 61 6E 64 20 74 68 position and th
008F00: 74 6F 72 65 64 20 69 73 20 0D 8A 70 61 73 73 65 tored is ..passe
008F10: 64 20 62 61 63 6B 20 74 6F 20 74 68 65 20 75 73 d back to the us
008F20: 65 72 20 73 6F 20 74 68 61 74 90 20 74 68 65 20 er so that. the
008F30: 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 63 61 6E 20 information can
008F40: 62 65 20 65 78 74 72 61 63 74 65 64 20 66 72 6F be extracted fro
008F50: 6D 20 0D 8A 69 74 2E 20 54 68 65 20 75 73 65 72 m ..it. The user
008F60: 20 69 73 20 6E 6F 74 20 61 6C 6C 6F 77 65 64 90 is not allowed.
008F70: 20 74 6F 90 20 77 72 69 74 65 90 20 74 6F 90 20 to. write. to.
008F80: 69 74 2C 20 6F 6E 6C 79 20 72 65 61 64 20 66 72 it, only read fr
008F90: 6F 6D 20 69 74 2E 54 68 69 73 20 0D 8A 61 72 65 om it.This ..are
008FA0: 61 20 77 69 6C 6C 20 6C 69 65 20 69 6E 20 74 68 a will lie in th
008FB0: 65 90 20 63 65 6E 74 72 61 6C 90 20 33 32 6B 90 e. central. 32k.
008FC0: 20 6F 66 90 20 72 61 6D 2E 20 54 68 65 20 63 61 of. ram. The ca
008FD0: 73 73 65 74 74 65 20 6D 61 6E 61 67 65 72 20 75 ssette manager u
008FE0: 73 65 73 20 0D 8A 73 6F 6D 65 20 66 69 65 6C 64 ses ..some field
008FF0: 73 20 69 6E 20 74 68 65 20 68 65 61 64 65 72 20 s in the header
009000: 66 6F 72 20 69 74 73 20 6F 77 6E 20 70 75 72 70 for its own purp
009010: 6F 73 65 73 20 73 6F 20 74 68 65 73 65 20 6D 61 oses so these ma
009020: 79 20 76 61 72 79 2E 0D 0D 0D 0D 2D 2D 2D 2D 2D y vary.....-----
009030: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009040: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009050: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009060: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009070: 0D 8A 0D 0D 26 42 43 37 41 20 2D 20 43 41 53 20 ....&BC7A - CAS
009080: 49 4E 20 43 4C 4F 53 45 20 2D 20 43 6C 6F 73 65 IN CLOSE - Close
009090: 20 69 6E 70 75 74 20 66 69 6C 65 20 70 72 6F 70 input file prop
0090A0: 65 72 6C 79 2E 0D 0D 0D 0D 45 6E 74 72 79 3A 0D erly.....Entry:.
0090B0: 0D 0D 0D 4E 6F 6E 65 0D 0D 0D 0D 45 78 69 74 3A ...None....Exit:
0090C0: 0D 0D 0D 0D 49 66 20 73 74 72 65 61 6D 20 77 61 ....If stream wa
0090D0: 73 20 63 6C 6F 73 65 64 20 4F 4B 3A 0D 0D 0D 0D s closed OK:....
0090E0: 43 61 72 72 79 20 74 72 75 65 2E 0D 0D 41 20 63 Carry true...A c
0090F0: 6F 72 72 75 70 74 2E 0D 0D 0D 0D 49 66 20 74 68 orrupt.....If th
009100: 65 20 72 65 6D 61 69 6E 64 65 72 20 6F 66 20 74 e remainder of t
009110: 68 65 20 66 69 6C 65 20 69 73 20 61 6C 73 6F 20 he file is also
009120: 72 65 61 64 2E 0D 0D 0D 0D 2D 2D 2D 2D 2D 2D 2D read.....-------
009130: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009140: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009150: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009160: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 8A --------------..
009170: 0D 0D 26 42 43 38 36 20 2D 20 43 41 53 20 52 45 ..&BC86 - CAS RE
009180: 54 55 52 4E 20 2D 20 50 75 74 20 62 61 63 6B 20 TURN - Put back
009190: 74 68 65 20 6C 61 73 74 20 63 68 61 72 61 63 74 the last charact
0091A0: 65 72 20 72 65 61 64 0D 0D 0D 0D 45 6E 74 72 79 er read....Entry
0091B0: 3A 0D 0D 0D 0D 4E 6F 6E 65 0D 0D 0D 0D 45 78 69 :....None....Exi
0091C0: 74 3A 0D 0D 0D 0D 41 6C 6C 20 70 72 65 73 65 72 t:....All preser
0091D0: 76 65 64 2E 0D 0D 0D 0D 4E 6F 74 65 73 3A 0D 0D ved.....Notes:..
0091E0: 0D 0D 54 68 69 73 20 69 73 20 6F 6E 6C 79 20 70 ..This is only p
0091F0: 6F 73 73 69 62 6C 65 20 69 66 20 74 68 65 90 20 ossible if the.
009200: 66 69 6C 65 90 20 68 61 73 90 20 62 65 65 6E 90 file. has. been.
009210: 20 72 65 61 64 20 69 6E 20 62 79 20 75 73 69 6E read in by usin
009220: 67 20 43 41 53 20 49 4E 20 0D 8A 43 48 41 52 2E g CAS IN ..CHAR.
009230: 20 41 74 20 6C 65 61 73 74 20 6F 6E 65 20 63 68 At least one ch
009240: 61 72 61 63 74 65 72 20 6D 75 73 74 20 68 61 76 aracter must hav
009250: 65 20 62 65 65 6E 20 72 65 61 64 20 73 69 6E 63 e been read sinc
009260: 65 3A 0D 0D 0D 0D 0D 0D 61 29 20 74 68 65 20 73 e:......a) the s
009270: 74 72 65 61 6D 20 77 61 73 20 6F 70 65 6E 65 64 tream was opened
009280: 0D 0D 62 29 20 74 68 65 20 6C 61 73 74 20 63 68 ..b) the last ch
009290: 61 72 61 63 74 65 72 20 77 61 73 20 72 65 74 75 aracter was retu
0092A0: 72 6E 65 64 2E 0D 0D 63 29 20 74 68 65 20 6C 61 rned...c) the la
0092B0: 73 74 20 74 65 73 74 20 66 6F 72 20 65 6F 66 20 st test for eof
0092C0: 77 61 73 20 6D 61 64 65 2E 0D 0D 0D 0D 2D 2D 2D was made.....---
0092D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0092E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0092F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009300: 65 20 73 74 72 65 61 6D 20 77 61 73 20 6E 6F 74 e stream was not
009310: 20 6F 70 65 6E 3A 0D 0D 0D 0D 43 61 72 72 79 20 open:....Carry
009320: 66 61 6C 73 65 0D 0D 0D 0D 56 31 2E 30 0D 0D 2D false....V1.0..-
009330: 2D 2D 2D 20 41 20 63 6F 72 72 75 70 74 2E 0D 0D --- A corrupt...
009340: 0D 0D 56 31 2E 31 0D 0D 2D 2D 2D 2D 20 41 20 3D ..V1.1..---- A =
009350: 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 20 28 26 error number (&
009360: 30 45 29 0D 0D 0D 0D 42 43 2C 44 45 2C 48 4C 20 0E)....BC,DE,HL
009370: 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 73 20 and other flags
009380: 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 2D 2D 2D 2D corrupt.....----
009390: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0093A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0093B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0093C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0093D0: 2D 0D 8A 0D 0D 26 42 43 37 44 20 2D 20 43 41 53 -....&BC7D - CAS
0093E0: 20 49 4E 20 41 42 41 4E 44 4F 4E 20 2D 20 43 6C IN ABANDON - Cl
0093F0: 6F 73 65 20 69 6E 70 75 74 20 66 69 6C 65 20 73 ose input file s
009400: 74 72 61 69 67 68 74 20 61 77 61 79 0D 0D 0D 0D traight away....
009410: 45 6E 74 72 79 3A 0D 0D 0D 0D 4E 6F 6E 65 0D 0D Entry:....None..
009420: 0D 0D 45 78 69 74 3A 0D 0D 0D 0D 41 46 2C 42 43 ..Exit:....AF,BC
009430: 2C 44 45 2C 48 4C 20 63 6F 72 72 75 70 74 2E 0D ,DE,HL corrupt..
009440: 0D 0D 0D 4E 6F 74 65 73 3A 0D 0D 0D 0D 54 68 69 ...Notes:....Thi
009450: 73 20 69 73 20 6D 65 61 6E 74 20 74 6F 20 62 65 s is meant to be
009460: 20 75 73 65 64 20 61 66 74 65 72 20 61 6E 20 65 used after an e
009470: 72 72 6F 72 20 68 61 73 20 6F 63 63 75 72 65 64 rror has occured
009480: 2E 0D 0D 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D .....-----------
009490: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0094A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0094B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0094C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 8A 0D 0D 26 42 ----------....&B
0094D0: 43 38 30 20 2D 20 43 41 53 20 49 4E 20 43 48 41 C80 - CAS IN CHA
0094E0: 52 20 2D 20 52 65 61 64 20 61 20 63 68 61 72 61 R - Read a chara
0094F0: 63 74 65 72 20 66 72 6F 6D 20 74 68 65 20 69 6E cter from the in
009500: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009510: 2D 2D 0D 8A 0D 0D 26 42 43 38 39 20 2D 20 43 41 --....&BC89 - CA
009520: 53 20 54 45 53 54 20 45 4F 46 20 2D 20 43 68 65 S TEST EOF - Che
009530: 63 6B 20 69 66 20 65 6E 64 20 6F 66 20 66 69 6C ck if end of fil
009540: 65 20 68 61 73 20 62 65 65 6E 20 72 65 61 63 68 e has been reach
009550: 65 64 0D 0D 0D 0D 45 6E 74 72 79 3A 0D 0D 0D 0D ed....Entry:....
009560: 4E 6F 6E 65 0D 0D 0D 0D 45 78 69 74 3A 0D 0D 0D None....Exit:...
009570: 0D 49 66 20 74 68 65 20 65 6E 64 20 6F 66 20 66 .If the end of f
009580: 69 6C 65 20 77 61 73 20 6E 6F 74 20 66 6F 75 6E ile was not foun
009590: 64 3A 0D 0D 0D 0D 43 61 72 72 79 20 74 72 75 65 d:....Carry true
0095A0: 2E 20 5A 65 72 6F 20 66 61 6C 73 65 2E 20 41 20 . Zero false. A
0095B0: 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 49 66 20 65 corrupt.....If e
0095C0: 6E 64 20 6F 66 20 66 69 6C 65 20 77 61 73 20 66 nd of file was f
0095D0: 6F 75 6E 64 3A 0D 0D 0D 0D 43 61 72 72 79 20 66 ound:....Carry f
0095E0: 61 6C 73 65 2E 20 5A 65 72 6F 20 66 61 6C 73 65 alse. Zero false
0095F0: 2E 0D 0D 0D 0D 56 31 2E 30 0D 0D 2D 2D 2D 2D 20 .....V1.0..----
009600: 41 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 56 31 A corrupt.....V1
009610: 2E 31 0D 0D 2D 2D 2D 2D 20 41 20 3D 20 65 72 72 .1..---- A = err
009620: 6F 72 20 6E 75 6D 62 65 72 20 28 26 30 45 20 2D or number (&0E -
009630: 20 73 74 72 65 61 6D 20 69 73 20 6E 6F 74 20 6F stream is not o
009640: 70 65 6E 20 6F 72 20 26 30 46 20 2D 20 65 6E 64 pen or &0F - end
009650: 20 6F 66 20 66 69 6C 65 29 0D 0D 0D 0D 49 66 20 of file)....If
009660: 74 68 65 20 75 73 65 72 20 68 69 74 20 65 73 63 the user hit esc
009670: 61 70 65 3A 0D 0D 0D 0D 43 61 72 72 79 20 66 61 ape:....Carry fa
009680: 6C 73 65 2E 20 5A 65 72 6F 20 74 72 75 65 2E 0D lse. Zero true..
009690: 0D 0D 0D 56 31 2E 30 0D 0D 2D 2D 2D 2D 20 41 20 ...V1.0..---- A
0096A0: 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 56 31 2E 31 corrupt.....V1.1
0096B0: 0D 0D 2D 2D 2D 2D 20 41 20 3D 20 65 72 72 6F 72 ..---- A = error
0096C0: 20 6E 75 6D 62 65 72 20 28 26 30 30 29 0D 0D 0D number (&00)...
0096D0: 0D 49 58 20 61 6E 64 20 6F 74 68 65 72 20 66 6C .IX and other fl
0096E0: 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D ags corrupt.....
0096F0: 43 61 6C 6C 69 6E 67 20 74 68 69 73 20 72 6F 75 Calling this rou
009700: 70 75 74 20 66 69 6C 65 0D 0D 0D 0D 45 6E 74 72 put file....Entr
009710: 79 3A 0D 0D 0D 0D 4E 6F 6E 65 0D 0D 0D 0D 45 78 y:....None....Ex
009720: 69 74 3A 0D 0D 0D 0D 49 66 20 63 68 61 72 61 63 it:....If charac
009730: 74 65 72 20 77 61 73 20 72 65 61 64 20 4F 4B 3A ter was read OK:
009740: 0D 0D 0D 0D 43 61 72 72 79 20 74 72 75 65 2E 20 ....Carry true.
009750: 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0D 41 20 3D Zero false...A =
009760: 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 0D character read.
009770: 0D 0D 0D 49 66 20 65 6E 64 20 6F 66 20 66 69 6C ...If end of fil
009780: 65 20 77 61 73 20 66 6F 75 6E 64 3A 0D 0D 0D 0D e was found:....
009790: 43 61 72 72 79 20 66 61 6C 73 65 2E 20 5A 65 72 Carry false. Zer
0097A0: 6F 20 66 61 6C 73 65 2E 20 0D 0D 0D 0D 56 31 2E o false. ....V1.
0097B0: 30 0D 0D 2D 2D 2D 2D 20 41 20 63 6F 72 72 75 70 0..---- A corrup
0097C0: 74 2E 0D 0D 0D 0D 56 31 2E 31 0D 0D 2D 2D 2D 2D t.....V1.1..----
0097D0: 20 41 20 3D 20 65 72 72 6F 72 20 6E 75 6D 62 65 A = error numbe
0097E0: 72 20 28 26 30 45 29 0D 0D 0D 0D 49 66 20 75 73 r (&0E)....If us
0097F0: 65 72 20 68 69 74 20 65 73 63 61 70 65 3A 0D 0D er hit escape:..
009800: 0D 0D 43 61 72 72 79 20 66 61 6C 73 65 2E 0D 0D ..Carry false...
009810: 5A 65 72 6F 20 74 72 75 65 2E 0D 0D 0D 0D 56 31 Zero true.....V1
009820: 2E 30 0D 0D 2D 2D 2D 2D 20 41 20 63 6F 72 72 75 .0..---- A corru
009830: 70 74 2E 0D 0D 0D 0D 56 31 2E 31 0D 0D 2D 2D 2D pt.....V1.1..---
009840: 2D 20 41 20 3D 20 65 72 72 6F 72 20 6E 75 6D 62 - A = error numb
009850: 65 72 20 28 26 30 30 29 0D 0D 0D 0D 49 58 20 61 er (&00)....IX a
009860: 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 73 20 63 nd other flags c
009870: 6F 72 72 75 70 74 2E 0D 0D 0D 0D 4E 6F 74 65 73 orrupt.....Notes
009880: 3A 0D 0D 0D 0D 4F 6E 63 65 20 74 68 65 20 66 69 :....Once the fi
009890: 72 73 74 20 63 68 61 72 61 63 74 65 72 20 68 61 rst character ha
0098A0: 73 20 62 65 65 6E 20 72 65 61 64 20 66 72 6F 6D s been read from
0098B0: 20 61 20 66 69 6C 65 20 69 74 20 63 61 6E 20 6F a file it can o
0098C0: 6E 6C 79 20 62 65 20 75 73 65 64 20 0D 8A 66 6F nly be used ..fo
0098D0: 72 20 63 68 61 72 61 63 74 65 72 20 62 79 90 20 r character by.
0098E0: 63 68 61 72 61 63 74 65 72 90 20 61 63 63 65 73 character. acces
0098F0: 73 2E 90 20 49 74 90 20 69 73 90 20 6E 6F 74 90 s.. It. is. not.
009900: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
009910: 08 00 01 00 02 09 4E E5 08 00 C1 02 00 00 00 02 ......N.........
009920: 08 00 C6 02 00 00 00 02 08 00 C2 02 00 00 00 02 ................
009930: 08 00 C7 02 00 00 00 02 08 00 C3 02 00 00 00 02 ................
009940: 08 00 C8 02 00 00 00 02 08 00 C4 02 00 00 00 02 ................
009950: 08 00 C9 02 00 00 00 02 08 00 C5 02 00 00 00 02 ................
009960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009A00: 74 69 6E 65 20 70 75 74 73 20 74 68 65 20 73 74 tine puts the st
009A10: 72 65 61 6D 90 20 69 6E 74 6F 20 63 68 61 72 61 ream. into chara
009A20: 63 74 65 72 20 69 6E 70 75 74 20 6D 6F 64 65 2E cter input mode.
009A30: 20 49 74 20 69 73 20 0D 8A 6E 6F 74 20 70 6F 73 It is ..not pos
009A40: 73 69 62 6C 65 20 74 6F 20 75 73 65 20 64 69 72 sible to use dir
009A50: 65 63 74 20 72 65 61 64 69 6E 67 20 61 66 74 65 ect reading afte
009A60: 72 20 74 68 69 73 20 72 6F 75 74 69 6E 65 20 68 r this routine h
009A70: 61 73 20 62 65 65 6E 20 63 61 6C 6C 65 64 2E 0D as been called..
009A80: 0D 0D 0D 49 74 20 69 73 20 6E 6F 74 20 70 6F 73 ...It is not pos
009A90: 73 69 62 6C 65 20 74 6F 90 20 63 61 6C 6C 90 20 sible to. call.
009AA0: 43 41 53 90 20 52 45 54 55 52 4E 90 20 61 66 74 CAS. RETURN. aft
009AB0: 65 72 90 20 74 68 69 73 20 72 6F 75 74 69 6E 65 er. this routine
009AC0: 20 68 61 73 20 62 65 65 6E 20 0D 8A 63 61 6C 6C has been ..call
009AD0: 65 64 2E 20 41 20 63 68 61 72 61 63 74 65 72 20 ed. A character
009AE0: 6D 75 73 74 20 62 65 20 72 65 61 64 20 66 69 72 must be read fir
009AF0: 73 74 2E 0D 0D 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D st.....---------
009B00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009B10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009B20: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009B30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 8A --------------..
009B40: 0D 0D 26 42 43 38 43 20 2D 20 43 41 53 20 4F 55 ..&BC8C - CAS OU
009B50: 54 20 4F 50 45 4E 20 2D 20 4F 70 65 6E 20 61 20 T OPEN - Open a
009B60: 66 69 6C 65 20 66 6F 72 20 6F 75 74 70 75 74 0D file for output.
009B70: 0D 0D 0D 45 6E 74 72 79 3A 0D 0D 0D 0D 42 20 3D ...Entry:....B =
009B80: 20 6C 65 6E 67 74 68 20 6F 66 20 66 69 6C 65 6E length of filen
009B90: 61 6D 65 0D 0D 48 4C 20 3D 20 61 64 64 72 65 73 ame..HL = addres
009BA0: 73 20 6F 66 20 66 69 6C 65 6E 61 6D 65 0D 0D 44 s of filename..D
009BB0: 45 20 3D 20 61 64 64 72 65 73 73 20 6F 66 20 32 E = address of 2
009BC0: 6B 20 62 75 66 66 65 72 0D 0D 0D 0D 45 78 69 74 k buffer....Exit
009BD0: 3A 0D 0D 0D 0D 49 66 20 74 68 65 20 66 69 6C 65 :....If the file
009BE0: 20 77 61 73 20 6F 70 65 6E 65 64 20 4F 4B 3A 0D was opened OK:.
009BF0: 0D 0D 0D 43 61 72 72 79 20 74 72 75 65 2E 0D 0D ...Carry true...
009C00: 20 61 73 20 65 78 70 65 63 74 65 64 3A 0D 0D 0D as expected:...
009C10: 0D 43 61 72 72 79 20 66 61 6C 73 65 2E 20 5A 65 .Carry false. Ze
009C20: 72 6F 20 66 61 6C 73 65 2E 20 41 20 3D 20 26 30 ro false. A = &0
009C30: 45 20 28 65 72 72 6F 72 20 6E 75 6D 62 65 72 29 E (error number)
009C40: 0D 0D 0D 0D 49 66 20 63 6F 6D 6D 61 6E 64 20 66 ....If command f
009C50: 61 69 6C 65 64 3A 0D 0D 0D 0D 43 61 72 72 79 20 ailed:....Carry
009C60: 66 61 6C 73 65 2E 0D 0D 5A 65 72 6F 20 74 72 75 false...Zero tru
009C70: 65 2E 0D 0D 41 20 3D 20 65 72 72 6F 72 20 6E 75 e...A = error nu
009C80: 6D 62 65 72 0D 0D 0D 0D 0D 0D 42 43 2C 44 45 2C mber......BC,DE,
009C90: 48 4C 2C 49 58 20 61 6E 64 20 6F 74 68 65 72 20 HL,IX and other
009CA0: 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D flags corrupt...
009CB0: 0D 0D 4E 6F 74 65 73 3A 0D 0D 0D 0D 41 66 74 65 ..Notes:....Afte
009CC0: 72 20 77 72 69 74 69 6E 67 20 74 68 65 20 66 69 r writing the fi
009CD0: 6C 65 20 69 74 20 6D 75 73 74 90 20 62 65 90 20 le it must. be.
009CE0: 63 6C 6F 73 65 64 90 20 77 69 74 68 20 43 41 53 closed. with CAS
009CF0: 20 4F 55 54 20 43 4C 4F 53 45 20 66 6F 72 20 74 OUT CLOSE for t
009D00: 68 65 20 0D 8A 66 69 6C 65 20 74 6F 20 6D 61 6B he ..file to mak
009D10: 65 20 73 75 72 65 20 74 68 65 20 66 69 6C 65 20 e sure the file
009D20: 69 73 20 77 72 69 74 74 65 6E 20 74 6F 20 64 69 is written to di
009D30: 73 6B 2E 0D 0D 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D sk.....---------
009D40: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009D50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009D60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009D70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 0D -------------...
009D80: 0D 26 42 43 39 42 20 2D 20 43 41 53 20 43 41 54 .&BC9B - CAS CAT
009D90: 41 4C 4F 47 20 2D 20 47 65 6E 65 72 61 74 65 20 ALOG - Generate
009DA0: 61 20 63 61 74 61 6C 6F 67 75 65 20 66 72 6F 6D a catalogue from
009DB0: 20 63 61 73 73 65 74 74 65 0D 0D 0D 0D 45 6E 74 cassette....Ent
009DC0: 72 79 3A 0D 0D 0D 0D 44 45 20 3D 20 61 64 64 72 ry:....DE = addr
009DD0: 65 73 73 20 6F 66 20 32 6B 20 62 75 66 66 65 72 ess of 2k buffer
009DE0: 20 74 6F 20 75 73 65 2E 0D 0D 0D 0D 45 78 69 74 to use.....Exit
009DF0: 3A 0D 0D 0D 0D 49 66 20 74 68 65 20 63 61 74 61 :....If the cata
009E00: 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0D 48 4C 20 Zero false...HL
009E10: 3D 20 61 64 64 72 65 73 73 20 6F 66 20 61 20 62 = address of a b
009E20: 75 66 66 65 72 90 20 63 6F 6E 74 61 69 6E 69 6E uffer. containin
009E30: 67 90 20 74 68 65 90 20 68 65 61 64 65 72 20 74 g. the. header t
009E40: 68 61 74 20 77 69 6C 6C 20 62 65 20 77 72 69 74 hat will be writ
009E50: 74 65 6E 20 0D 8A 74 6F 20 65 61 63 68 20 62 6C ten ..to each bl
009E60: 6F 63 6B 2E 0D 0D 41 20 63 6F 72 72 75 70 74 2E ock...A corrupt.
009E70: 0D 0D 0D 0D 49 66 20 73 74 72 65 61 6D 20 69 73 ....If stream is
009E80: 20 69 6E 20 75 73 65 3A 0D 0D 0D 0D 43 61 72 72 in use:....Carr
009E90: 79 20 66 61 6C 73 65 2E 0D 0D 5A 65 72 6F 20 66 y false...Zero f
009EA0: 61 6C 73 65 2E 0D 0D 48 4C 20 63 6F 72 72 75 70 alse...HL corrup
009EB0: 74 2E 0D 0D 0D 0D 56 31 2E 30 0D 0D 2D 2D 2D 2D t.....V1.0..----
009EC0: 20 20 41 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D A corrupt.....
009ED0: 56 31 2E 31 0D 0D 2D 2D 2D 2D 20 20 41 20 3D 20 V1.1..---- A =
009EE0: 65 72 72 6F 72 20 6E 75 6D 62 65 72 20 28 26 30 error number (&0
009EF0: 45 29 0D 0D 0D 0D 49 66 20 75 73 65 72 20 68 69 E)....If user hi
009F00: 74 20 65 73 63 61 70 65 3A 0D 0D 0D 0D 43 61 72 t escape:....Car
009F10: 72 79 20 66 61 6C 73 65 2E 0D 0D 5A 65 72 6F 20 ry false...Zero
009F20: 74 72 75 65 2E 0D 0D 48 4C 20 63 6F 72 72 75 70 true...HL corrup
009F30: 74 2E 0D 0D 0D 0D 56 31 2E 30 0D 0D 2D 2D 2D 2D t.....V1.0..----
009F40: 20 20 41 20 63 6F 72 72 75 70 74 0D 0D 0D 0D 56 A corrupt....V
009F50: 31 2E 31 0D 0D 2D 2D 2D 2D 20 20 41 20 3D 20 65 1.1..---- A = e
009F60: 72 72 6F 72 20 6E 75 6D 62 65 72 20 28 26 30 30 rror number (&00
009F70: 29 0D 0D 0D 0D 0D 0D 42 43 2C 44 45 2C 49 58 20 )......BC,DE,IX
009F80: 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 73 20 and other flags
009F90: 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 2D 2D 2D 2D corrupt.....----
009FA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009FB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009FC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009FD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
009FE0: 2D 2D 2D 0D 8A 0D 0D 26 42 43 38 46 20 2D 20 43 ---....&BC8F - C
009FF0: 41 53 20 4F 55 54 20 43 4C 4F 53 45 20 2D 20 43 AS OUT CLOSE - C
00A000: 6C 6F 67 75 65 20 77 65 6E 74 20 4F 4B 3A 0D 0D logue went OK:..
00A010: 0D 0D 43 61 72 72 79 20 74 72 75 65 2E 20 5A 65 ..Carry true. Ze
00A020: 72 6F 20 66 61 6C 73 65 2E 20 41 20 63 6F 72 72 ro false. A corr
00A030: 75 70 74 2E 0D 0D 0D 0D 49 66 20 74 68 65 20 73 upt.....If the s
00A040: 74 72 65 61 6D 20 77 61 73 20 69 6E 20 75 73 65 tream was in use
00A050: 3A 0D 0D 0D 0D 43 61 72 72 79 20 66 61 6C 73 65 :....Carry false
00A060: 2E 20 5A 65 72 6F 20 66 61 6C 73 65 2E 20 0D 0D . Zero false. ..
00A070: 0D 0D 56 31 2E 30 0D 0D 2D 2D 2D 2D 20 41 20 63 ..V1.0..---- A c
00A080: 6F 72 72 75 70 74 2E 0D 0D 0D 0D 56 31 2E 31 0D orrupt.....V1.1.
00A090: 0D 2D 2D 2D 2D 20 41 20 3D 20 26 30 45 20 28 65 .---- A = &0E (e
00A0A0: 72 72 6F 72 20 6E 75 6D 62 65 72 29 0D 0D 0D 0D rror number)....
00A0B0: 42 43 2C 44 45 2C 48 4C 2C 49 58 20 61 6E 64 20 BC,DE,HL,IX and
00A0C0: 6F 74 68 65 72 20 66 6C 61 67 73 2E 0D 0D 0D 0D other flags.....
00A0D0: 4E 6F 74 65 73 3A 0D 0D 0D 0D 54 68 65 20 72 65 Notes:....The re
00A0E0: 61 64 20 73 74 72 65 61 6D 20 6D 75 73 74 20 62 ad stream must b
00A0F0: 65 20 63 6C 6F 73 65 64 20 62 65 66 6F 72 65 20 e closed before
00A100: 74 68 69 73 20 72 6F 75 74 69 6E 65 20 69 73 20 this routine is
00A110: 63 61 6C 6C 65 64 2E 0D 0D 0D 0D 54 68 65 20 70 called.....The p
00A120: 72 6F 6D 70 74 20 6D 65 73 73 61 67 65 73 20 61 rompt messages a
00A130: 72 65 20 74 75 72 6E 65 64 20 6F 6E 2E 0D 0D 0D re turned on....
00A140: 0D 57 68 65 6E 20 74 68 65 20 63 61 74 61 6C 6F .When the catalo
00A150: 67 20 69 73 20 75 73 73 75 65 64 2C 20 74 68 65 g is ussued, the
00A160: 20 64 69 72 65 63 74 6F 72 79 20 69 73 20 72 65 directory is re
00A170: 61 64 20 69 6E 74 6F 20 6D 65 6D 6F 72 79 2E 0D ad into memory..
00A180: 0D 4F 6E 6C 79 20 74 68 6F 73 65 20 66 69 6C 65 .Only those file
00A190: 73 20 69 6E 20 74 68 65 20 63 75 72 72 65 6E 74 s in the current
00A1A0: 90 20 75 73 65 72 90 20 61 6E 64 2F 6F 72 20 61 . user. and/or a
00A1B0: 72 65 20 73 65 74 20 74 6F 20 64 69 72 65 63 74 re set to direct
00A1C0: 6F 72 79 20 61 72 65 20 0D 8A 70 75 74 20 69 6E ory are ..put in
00A1D0: 74 6F 20 74 68 65 20 62 75 66 66 65 72 2E 20 54 to the buffer. T
00A1E0: 68 65 90 20 62 75 66 66 65 72 90 20 67 69 76 65 he. buffer. give
00A1F0: 73 90 20 61 6C 6C 90 20 74 68 65 20 66 69 6C 65 s. all. the file
00A200: 6C 6F 73 65 20 74 68 65 20 6F 75 74 70 75 74 20 lose the output
00A210: 66 69 6C 65 20 63 6F 72 72 65 63 74 6C 79 2E 0D file correctly..
00A220: 0D 0D 0D 45 6E 74 72 79 3A 0D 0D 0D 0D 4E 6F 6E ...Entry:....Non
00A230: 65 0D 0D 0D 0D 45 78 69 74 3A 0D 0D 0D 0D 49 66 e....Exit:....If
00A240: 20 73 74 72 65 61 6D 20 77 61 73 20 63 6C 6F 73 stream was clos
00A250: 65 64 20 4F 4B 3A 0D 0D 0D 0D 43 61 72 72 79 20 ed OK:....Carry
00A260: 74 72 75 65 2E 20 5A 65 72 6F 20 66 61 6C 73 65 true. Zero false
00A270: 2E 0D 0D 41 20 63 6F 72 72 75 70 74 2E 0D 0D 0D ...A corrupt....
00A280: 0D 49 66 20 74 68 65 20 73 74 72 65 61 6D 20 77 .If the stream w
00A290: 61 73 20 6E 6F 74 20 6F 70 65 6E 3A 0D 0D 0D 0D as not open:....
00A2A0: 43 61 72 72 79 20 66 61 6C 73 65 2E 20 5A 65 72 Carry false. Zer
00A2B0: 6F 20 66 61 6C 73 65 2E 0D 0D 0D 0D 56 31 2E 30 o false.....V1.0
00A2C0: 0D 0D 2D 2D 2D 2D 20 41 20 63 6F 72 72 75 70 74 ..---- A corrupt
00A2D0: 2E 0D 0D 0D 0D 56 31 2E 31 0D 0D 2D 2D 2D 2D 20 .....V1.1..----
00A2E0: 41 20 3D 20 65 72 72 6F 72 20 6E 75 6D 62 65 72 A = error number
00A2F0: 20 28 26 30 45 29 0D 0D 0D 0D 49 66 20 74 68 65 (&0E)....If the
00A300: 20 75 73 65 72 20 68 69 74 20 65 73 63 61 70 65 user hit escape
00A310: 3A 0D 0D 0D 0D 43 61 72 72 79 20 66 61 6C 73 65 :....Carry false
00A320: 2E 20 5A 65 72 6F 20 74 72 75 65 2E 0D 0D 0D 0D . Zero true.....
00A330: 56 31 2E 30 0D 0D 2D 2D 2D 2D 20 41 20 63 6F 72 V1.0..---- A cor
00A340: 72 75 70 74 2E 0D 0D 0D 0D 56 31 2E 31 0D 0D 2D rupt.....V1.1..-
00A350: 2D 2D 2D 20 41 20 3D 20 65 72 72 6F 72 20 6E 75 --- A = error nu
00A360: 6D 62 65 72 20 28 26 30 30 29 0D 0D 0D 0D 49 58 mber (&00)....IX
00A370: 2C 42 43 2C 44 45 2C 48 4C 20 61 6E 64 20 6F 74 ,BC,DE,HL and ot
00A380: 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 her flags corrup
00A390: 74 2E 0D 0D 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D t.....----------
00A3A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00A3B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00A3C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00A3D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 8A 0D -------------...
00A3E0: 0D 26 42 43 39 32 20 2D 20 43 41 53 20 4F 55 54 .&BC92 - CAS OUT
00A3F0: 20 41 42 41 4E 44 4F 4E 20 2D 20 43 6C 6F 73 65 ABANDON - Close
00A400: 73 20 6D 61 74 63 68 69 6E 67 20 74 68 6F 73 65 s matching those
00A410: 20 0D 8A 63 72 69 74 65 72 69 61 2C 20 61 6E 64 ..criteria, and
00A420: 20 74 68 65 20 6E 61 6D 65 73 20 61 72 65 20 69 the names are i
00A430: 6E 20 61 6C 70 68 61 62 65 74 69 63 61 6C 20 6F n alphabetical o
00A440: 72 64 65 72 2E 0D 0D 0D 0D 49 66 20 6E 6F 20 66 rder.....If no f
00A450: 69 6C 65 73 20 6D 61 74 63 68 20 74 68 69 73 2C iles match this,
00A460: 20 74 68 65 20 62 75 66 66 65 72 20 77 69 6C 6C the buffer will
00A470: 20 73 74 61 72 74 20 77 69 74 68 20 61 20 7A 65 start with a ze
00A480: 72 6F 2E 0D 0D 0D 0D 54 68 65 20 63 61 74 61 6C ro.....The catal
00A490: 6F 67 20 66 6F 72 6D 61 74 3A 0D 0D 0D 0D 45 6E og format:....En
00A4A0: 74 72 79 20 31 2C 45 6E 74 72 79 20 32 2E 2E 2E try 1,Entry 2...
00A4B0: 0D 0D 0D 0D 0D 0D 57 68 65 72 65 20 65 6E 74 72 ......Where entr
00A4C0: 79 20 66 6F 72 6D 61 74 20 69 73 3A 0D 0D 0D 0D y format is:....
00A4D0: 42 79 74 65 20 30 3A 09 09 4D 61 72 6B 65 72 20 Byte 0:..Marker
00A4E0: 28 26 46 46 29 0D 0D 42 79 74 65 20 31 2D 31 32 (&FF)..Byte 1-12
00A4F0: 3A 09 46 69 6C 65 6E 61 6D 65 20 0D 0D 0D 0D 09 :.Filename .....
00A500: 09 38 20 63 68 61 72 61 63 74 65 72 20 6E 61 6D .8 character nam
00A510: 65 20 70 61 72 74 20 70 61 64 64 65 64 20 77 69 e part padded wi
00A520: 74 68 20 73 70 61 63 65 73 0D 0D 0D 0D 09 09 33 th spaces......3
00A530: 20 63 68 61 72 61 63 74 65 72 20 65 78 74 65 6E character exten
00A540: 73 69 6F 6E 20 70 61 72 74 20 70 61 64 64 65 64 sion part padded
00A550: 20 77 69 74 68 20 73 70 61 63 65 73 0D 0D 0D 0D with spaces....
00A560: 09 09 45 78 74 65 6E 73 69 6F 6E 20 70 61 72 74 ..Extension part
00A570: 3A 0D 0D 0D 0D 09 09 42 79 74 65 20 30 3A 09 09 :......Byte 0:..
00A580: 42 69 74 20 37 3A 20 31 3A 20 52 65 61 64 20 4F Bit 7: 1: Read O
00A590: 6E 6C 79 2C 0D 0D 09 09 09 09 20 20 20 20 20 20 nly,......
00A5A0: 20 30 3A 20 52 65 61 64 20 77 72 69 74 65 2E 0D 0: Read write..
00A5B0: 0D 0D 0D 42 79 74 65 20 31 33 3A 09 53 69 7A 65 ...Byte 13:.Size
00A5C0: 20 6F 66 20 66 69 6C 65 20 69 6E 20 4B 2E 0D 0D of file in K...
00A5D0: 42 79 74 65 20 31 34 3A 09 4D 61 72 6B 65 72 20 Byte 14:.Marker
00A5E0: 28 26 30 30 29 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 2D (&00)..........-
00A5F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00A600: 20 6F 75 74 70 75 74 20 66 69 6C 65 20 69 6D 6D output file imm
00A610: 65 64 69 61 74 65 6C 79 2E 0D 0D 0D 0D 45 6E 74 ediately.....Ent
00A620: 72 79 3A 0D 0D 0D 0D 4E 6F 6E 65 0D 0D 0D 0D 45 ry:....None....E
00A630: 78 69 74 3A 0D 0D 0D 0D 41 46 2C 42 43 2C 44 45 xit:....AF,BC,DE
00A640: 2C 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D ,HL corrupt.....
00A650: 4E 6F 74 65 73 3A 0D 0D 0D 0D 54 68 69 73 20 69 Notes:....This i
00A660: 73 20 69 6E 74 65 6E 64 65 64 20 74 6F 20 62 65 s intended to be
00A670: 20 75 73 65 64 20 61 66 74 65 72 20 61 6E 20 65 used after an e
00A680: 72 72 6F 72 20 68 61 73 20 6F 63 63 75 72 65 64 rror has occured
00A690: 2E 0D 0D 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D .....-----------
00A6A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00A6B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00A6C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00A6D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 8A 0D 0D ------------....
00A6E0: 26 42 43 39 35 20 2D 20 43 41 53 20 4F 55 54 20 &BC95 - CAS OUT
00A6F0: 43 48 41 52 20 2D 20 57 72 69 74 65 20 61 20 63 CHAR - Write a c
00A700: 68 61 72 61 63 74 65 72 20 74 6F 20 74 68 65 20 haracter to the
00A710: 6F 75 74 70 75 74 20 66 69 6C 65 0D 0D 0D 0D 45 output file....E
00A720: 6E 74 72 79 3A 0D 0D 0D 0D 41 20 3D 20 63 68 61 ntry:....A = cha
00A730: 72 61 63 74 65 72 0D 0D 0D 0D 45 78 69 74 3A 0D racter....Exit:.
00A740: 0D 0D 0D 49 66 20 63 68 61 72 61 63 74 65 72 20 ...If character
00A750: 77 61 73 20 77 72 69 74 74 65 6E 20 4F 4B 3A 0D was written OK:.
00A760: 0D 0D 0D 43 61 72 72 79 20 74 72 75 65 2E 20 5A ...Carry true. Z
00A770: 65 72 6F 20 66 61 6C 73 65 2E 0D 0D 41 20 3D 20 ero false...A =
00A780: 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 49 66 20 74 corrupt.....If t
00A790: 68 65 20 66 69 6C 65 20 77 61 73 20 6E 6F 74 20 he file was not
00A7A0: 6F 70 65 6E 20 61 73 20 65 78 70 65 63 74 65 64 open as expected
00A7B0: 3A 0D 0D 0D 0D 43 61 72 72 79 20 66 61 6C 73 65 :....Carry false
00A7C0: 2E 20 5A 65 72 6F 20 66 61 6C 73 65 2E 20 0D 0D . Zero false. ..
00A7D0: 0D 0D 56 31 2E 30 0D 0D 2D 2D 2D 2D 20 41 20 63 ..V1.0..---- A c
00A7E0: 6F 72 72 75 70 74 2E 0D 0D 0D 0D 56 31 2E 31 0D orrupt.....V1.1.
00A7F0: 0D 2D 2D 2D 2D 20 41 20 3D 20 65 72 72 6F 72 20 .---- A = error
00A800: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00A810: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00A820: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00A830: 2D 2D 2D 2D 2D 2D 0D 8A 0D 0D 26 42 43 39 45 20 ------....&BC9E
00A840: 2D 20 43 41 53 20 57 52 49 54 45 20 2D 20 57 72 - CAS WRITE - Wr
00A850: 69 74 65 20 61 20 68 65 61 64 65 72 6C 65 73 73 ite a headerless
00A860: 20 66 69 6C 65 20 74 6F 20 74 61 70 65 2E 0D 0D file to tape...
00A870: 0D 0D 45 6E 74 72 79 3A 0D 0D 0D 0D 48 4C 20 3D ..Entry:....HL =
00A880: 20 61 64 64 72 65 73 73 20 6F 66 20 64 61 74 61 address of data
00A890: 20 74 6F 20 77 72 69 74 65 0D 0D 44 45 20 3D 20 to write..DE =
00A8A0: 6C 65 6E 67 74 68 20 6F 66 20 64 61 74 61 20 74 length of data t
00A8B0: 6F 20 77 72 69 74 65 0D 0D 41 20 3D 20 73 79 6E o write..A = syn
00A8C0: 63 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 77 c character to w
00A8D0: 72 69 74 65 20 61 74 20 65 6E 64 20 6F 66 20 74 rite at end of t
00A8E0: 68 65 20 6C 65 61 64 65 72 0D 0D 0D 0D 45 78 69 he leader....Exi
00A8F0: 74 3A 0D 0D 0D 0D 49 66 20 74 68 65 20 72 65 63 t:....If the rec
00A900: 6F 72 64 20 77 61 73 20 77 72 69 74 74 65 6E 20 ord was written
00A910: 4F 4B 3A 0D 0D 0D 0D 43 61 72 72 79 20 74 72 75 OK:....Carry tru
00A920: 65 2E 20 41 20 63 6F 72 72 75 70 74 2E 0D 0D 0D e. A corrupt....
00A930: 0D 49 66 20 61 6E 20 65 72 72 6F 72 20 6F 63 63 .If an error occ
00A940: 75 72 65 64 3A 0D 0D 0D 0D 43 61 72 72 79 20 66 ured:....Carry f
00A950: 61 6C 73 65 2E 20 41 20 3D 20 65 72 72 6F 72 20 alse. A = error
00A960: 63 6F 64 65 0D 0D 0D 0D 42 43 2C 44 45 2C 48 4C code....BC,DE,HL
00A970: 2C 49 58 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D ,IX corrupt.....
00A980: 4E 6F 74 65 73 3A 0D 0D 0D 0D 41 20 6C 65 6E 67 Notes:....A leng
00A990: 74 68 20 6F 66 20 30 20 69 73 20 74 61 6B 65 6E th of 0 is taken
00A9A0: 20 74 6F 20 6D 65 61 6E 20 36 35 35 33 36 20 62 to mean 65536 b
00A9B0: 79 74 65 73 2E 20 54 68 65 20 64 61 74 61 20 74 ytes. The data t
00A9C0: 6F 20 62 65 20 77 72 69 74 74 65 6E 20 6D 61 79 o be written may
00A9D0: 20 0D 8A 6C 69 65 20 61 6E 79 77 68 65 72 65 2C ..lie anywhere,
00A9E0: 20 65 76 65 6E 20 75 6E 64 65 72 20 61 20 72 6F even under a ro
00A9F0: 6D 2E 0D 0D 0D 0D 54 68 65 20 73 79 6E 63 20 63 m.....The sync c
00AA00: 6E 75 6D 62 65 72 20 28 26 30 45 29 0D 0D 0D 0D number (&0E)....
00AA10: 49 66 20 75 73 65 72 20 68 69 74 20 65 73 63 61 If user hit esca
00AA20: 70 65 3A 0D 0D 0D 0D 43 61 72 72 79 20 66 61 6C pe:....Carry fal
00AA30: 73 65 2E 0D 0D 5A 65 72 6F 20 74 72 75 65 2E 0D se...Zero true..
00AA40: 0D 0D 0D 56 31 2E 30 0D 0D 2D 2D 2D 2D 20 41 20 ...V1.0..---- A
00AA50: 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 56 31 2E 31 corrupt.....V1.1
00AA60: 0D 0D 2D 2D 2D 2D 20 41 20 3D 20 65 72 72 6F 72 ..---- A = error
00AA70: 20 6E 75 6D 62 65 72 20 28 26 30 30 29 0D 0D 0D number (&00)...
00AA80: 0D 41 2C 49 58 20 61 6E 64 20 6F 74 68 65 72 20 .A,IX and other
00AA90: 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D flags corrupt...
00AAA0: 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ..--------------
00AAB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00AAC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00AAD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00AAE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 8A 0D 0D 26 42 43 ---------....&BC
00AAF0: 39 38 20 2D 20 43 41 53 20 4F 55 54 20 44 49 52 98 - CAS OUT DIR
00AB00: 45 43 54 20 2D 20 57 72 69 74 65 20 74 68 65 20 ECT - Write the
00AB10: 6F 75 74 70 75 74 20 66 69 6C 65 20 66 72 6F 6D output file from
00AB20: 20 73 74 6F 72 65 2E 0D 0D 0D 0D 45 6E 74 72 79 store.....Entry
00AB30: 3A 0D 0D 0D 0D 48 4C 20 3D 20 61 64 64 72 65 73 :....HL = addres
00AB40: 73 20 6F 66 20 74 68 65 20 64 61 74 61 20 74 6F s of the data to
00AB50: 20 77 72 69 74 65 0D 0D 44 45 20 3D 20 6C 65 6E write..DE = len
00AB60: 67 74 68 20 6F 66 20 64 61 74 61 20 74 6F 20 77 gth of data to w
00AB70: 72 69 74 65 0D 0D 42 43 20 3D 20 65 6E 74 72 79 rite..BC = entry
00AB80: 20 61 64 64 72 65 73 73 0D 0D 41 20 3D 20 66 69 address..A = fi
00AB90: 6C 65 20 74 79 70 65 0D 0D 0D 0D 45 78 69 74 3A le type....Exit:
00ABA0: 0D 0D 0D 0D 49 66 20 66 69 6C 65 20 77 61 73 20 ....If file was
00ABB0: 77 72 69 74 74 65 6E 20 4F 4B 3A 0D 0D 0D 0D 43 written OK:....C
00ABC0: 61 72 72 79 20 74 72 75 65 2E 0D 0D 5A 65 72 6F arry true...Zero
00ABD0: 20 66 61 6C 73 65 2E 0D 0D 41 20 63 6F 72 72 75 false...A corru
00ABE0: 70 74 2E 0D 0D 0D 0D 49 66 20 74 68 65 20 73 74 pt.....If the st
00ABF0: 72 65 61 6D 20 69 73 20 6E 6F 74 20 6F 70 65 6E ream is not open
00AC00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00AC10: 09 00 01 00 02 09 4E E5 09 00 C1 02 00 00 00 02 ......N.........
00AC20: 09 00 C6 02 00 00 00 02 09 00 C2 02 00 00 00 02 ................
00AC30: 09 00 C7 02 00 00 00 02 09 00 C3 02 00 00 00 02 ................
00AC40: 09 00 C8 02 00 00 00 02 09 00 C4 02 00 00 00 02 ................
00AC50: 09 00 C9 02 00 00 00 02 09 00 C5 02 00 00 00 02 ................
00AC60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AD00: 68 61 72 61 74 63 72 65 20 69 73 20 75 73 65 64 haratcre is used
00AD10: 20 74 6F 20 64 69 73 74 69 6E 67 75 69 73 68 20 to distinguish
00AD20: 68 65 61 64 65 72 20 72 65 63 6F 72 64 73 20 28 header records (
00AD30: 73 79 6E 63 20 69 73 20 26 32 63 29 20 0D 8A 66 sync is &2c) ..f
00AD40: 72 6F 6D 20 64 61 74 61 20 72 65 63 6F 72 64 73 rom data records
00AD50: 20 28 73 79 6E 63 20 69 73 20 26 31 36 29 2E 90 (sync is &16)..
00AD60: 20 4F 74 68 65 72 90 20 73 79 6E 63 20 63 68 61 Other. sync cha
00AD70: 72 61 63 74 65 72 73 20 63 6F 75 6C 64 20 62 65 racters could be
00AD80: 20 75 73 65 64 20 0D 8A 62 75 74 20 74 68 65 20 used ..but the
00AD90: 72 65 73 75 6C 74 69 6E 67 20 72 65 63 6F 72 64 resulting record
00ADA0: 20 77 6F 75 6C 64 20 72 65 71 75 69 72 65 90 20 would require.
00ADB0: 73 70 65 63 69 61 6C 90 20 61 63 74 69 6F 6E 20 special. action
00ADC0: 74 6F 20 62 65 20 74 61 6B 65 6E 20 74 6F 20 0D to be taken to .
00ADD0: 8A 72 65 61 64 20 69 74 2E 0D 0D 0D 0D 54 68 65 .read it.....The
00ADE0: 20 65 72 72 6F 72 20 63 6F 64 65 73 20 61 72 65 error codes are
00ADF0: 3A 0D 0D 0D 0D 30 20 2D 20 54 68 65 20 65 73 63 :....0 - The esc
00AE00: 61 70 65 20 6B 65 79 20 77 61 73 20 70 72 65 73 ape key was pres
00AE10: 73 65 64 0D 0D 31 20 2D 20 54 68 65 20 63 61 73 sed..1 - The cas
00AE20: 73 65 74 74 65 20 6D 61 6E 61 67 65 72 20 77 61 sette manager wa
00AE30: 73 20 75 6E 61 62 6C 65 20 74 6F 90 20 67 65 74 s unable to. get
00AE40: 20 62 61 63 6B 20 74 6F 20 77 72 69 74 69 6E 67 back to writing
00AE50: 20 61 20 62 69 74 20 66 61 73 74 20 0D 8A 20 20 a bit fast ..
00AE60: 20 20 65 6E 6F 75 67 68 2E 0D 0D 0D 0D 54 68 65 enough.....The
00AE70: 20 63 61 73 73 65 74 74 65 20 6D 6F 74 6F 72 20 cassette motor
00AE80: 69 73 20 74 75 72 6E 65 64 20 6F 6E 90 20 62 79 is turned on. by
00AE90: 90 20 74 68 69 73 20 72 6F 75 74 69 6E 65 20 61 . this routine a
00AEA0: 6E 64 20 74 68 65 6E 20 72 65 73 74 6F 72 65 64 nd then restored
00AEB0: 20 74 6F 20 0D 8A 69 74 73 20 6F 72 69 67 69 6E to ..its origin
00AEC0: 61 6C 20 73 74 61 74 75 73 2E 0D 0D 0D 0D 49 6E al status.....In
00AED0: 74 65 72 75 70 74 73 20 61 72 65 20 64 69 73 61 terupts are disa
00AEE0: 62 6C 65 64 20 61 6E 64 20 74 68 65 20 73 6F 75 bled and the sou
00AEF0: 6E 64 90 20 6D 61 6E 61 67 65 72 90 20 69 73 20 nd. manager. is
00AF00: 43 4F 4E 4E 45 43 54 4F 52 53 0D 3D 3D 3D 3D 3D CONNECTORS.=====
00AF10: 3D 3D 3D 3D 3D 0D 0D 0D 4E 43 20 2D 09 50 69 6E =====...NC -.Pin
00AF20: 20 6E 6F 74 20 63 6F 6E 6E 65 63 74 65 64 0D 0D not connected..
00AF30: 41 20 62 61 72 20 61 62 6F 76 65 20 74 68 65 20 A bar above the
00AF40: 70 69 6E 20 6E 61 6D 65 2C 20 69 6E 64 69 63 61 pin name, indica
00AF50: 74 65 73 20 74 68 61 74 20 74 68 65 20 73 69 67 tes that the sig
00AF60: 6E 61 6C 20 69 73 20 61 63 74 69 76 65 20 77 68 nal is active wh
00AF70: 65 6E 20 6C 6F 77 2C 0D 6F 72 20 61 20 30 56 20 en low,.or a 0V
00AF80: 69 73 20 61 70 70 6C 69 65 64 2E 0D 0D 47 4E 44 is applied...GND
00AF90: 09 2D 20 30 56 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D .- 0V..=========
00AFA0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00AFB0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00AFC0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00AFD0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00AFE0: 3D 3D 3D 3D 3D 3D 0D 0D 0D 50 72 69 6E 74 65 72 ======...Printer
00AFF0: 20 50 6F 72 74 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D Port.==========
00B000: 3D 3D 0D 0D 09 09 41 73 20 73 65 65 6E 20 66 72 ==....As seen fr
00B010: 6F 6D 20 74 68 65 20 72 65 61 72 0D 0D 0D 0D 31 om the rear....1
00B020: 37 20 31 36 20 31 35 20 31 34 20 31 33 20 31 32 7 16 15 14 13 12
00B030: 20 31 31 20 31 30 20 39 20 20 38 20 20 37 20 20 11 10 9 8 7
00B040: 36 20 20 35 20 20 34 20 20 33 20 20 32 20 20 31 6 5 4 3 2 1
00B050: 0D 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 .- - - - -
00B060: 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D - - - - - -
00B070: 20 20 2D 20 20 2D 7C 7C 2D 20 20 2D 20 20 2D 20 - -||- - -
00B080: 20 2D 20 0D 2D 20 20 2D 20 20 2D 20 20 2D 20 20 - .- - - -
00B090: 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D - - - - - -
00B0A0: 20 20 2D 20 20 2D 20 20 2D 7C 7C 2D 20 20 2D 20 - - -||- -
00B0B0: 20 2D 20 20 2D 0D 33 35 20 33 34 20 33 33 20 33 - -.35 34 33 3
00B0C0: 32 20 33 31 20 33 30 20 32 39 20 32 38 20 32 37 2 31 30 29 28 27
00B0D0: 20 32 36 20 32 35 20 32 34 20 32 33 20 32 32 20 26 25 24 23 22
00B0E0: 32 31 20 32 30 20 31 39 0D 0D 09 5F 5F 5F 5F 5F 21 20 19..._____
00B0F0: 5F 0D 31 09 53 74 72 6F 62 65 0D 0D 32 09 44 30 _.1.Strobe..2.D0
00B100: 73 68 75 74 20 64 6F 77 6E 20 73 6F 20 74 68 61 shut down so tha
00B110: 74 20 6E 6F 20 0D 8A 6E 6F 74 65 20 6C 61 73 74 t no ..note last
00B120: 73 20 66 6F 72 20 74 68 65 20 64 75 72 61 74 69 s for the durati
00B130: 6F 6E 20 6F 66 20 74 68 65 20 72 65 63 6F 72 64 on of the record
00B140: 20 62 65 69 6E 67 20 6C 6F 61 64 65 64 2E 0D 0D being loaded...
00B150: 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ..--------------
00B160: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00B170: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00B180: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00B190: 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 0D 0D 26 42 43 41 --------....&BCA
00B1A0: 31 20 2D 20 43 41 53 20 52 45 41 44 20 2D 20 52 1 - CAS READ - R
00B1B0: 65 61 64 20 61 20 72 65 63 6F 72 64 20 66 72 6F ead a record fro
00B1C0: 6D 20 74 61 70 65 0D 0D 0D 0D 45 6E 74 72 79 3A m tape....Entry:
00B1D0: 0D 0D 0D 0D 48 4C 20 3D 20 61 64 64 72 65 73 73 ....HL = address
00B1E0: 20 74 6F 20 70 75 74 20 64 61 74 61 0D 0D 44 45 to put data..DE
00B1F0: 20 3D 20 6C 65 6E 67 74 68 20 6F 66 20 64 61 74 = length of dat
00B200: 61 0D 0D 41 20 3D 20 73 79 6E 63 20 63 68 61 72 a..A = sync char
00B210: 61 63 74 65 72 20 65 78 70 65 63 74 65 64 20 61 acter expected a
00B220: 74 20 65 6E 64 20 6F 66 20 6C 65 61 64 65 72 2E t end of leader.
00B230: 0D 0D 0D 0D 45 78 69 74 3A 0D 0D 0D 0D 49 66 20 ....Exit:....If
00B240: 72 65 63 6F 72 64 20 77 61 73 20 72 65 61 64 20 record was read
00B250: 4F 4B 3A 0D 0D 0D 0D 43 61 72 72 79 20 74 72 75 OK:....Carry tru
00B260: 65 2E 20 41 20 63 6F 72 72 75 70 74 2E 0D 0D 0D e. A corrupt....
00B270: 0D 49 66 20 61 6E 20 65 72 72 6F 72 20 6F 63 63 .If an error occ
00B280: 75 72 65 64 3A 0D 0D 0D 0D 43 61 72 72 79 20 66 ured:....Carry f
00B290: 61 6C 73 65 2E 20 41 20 3D 20 65 72 72 6F 72 20 alse. A = error
00B2A0: 63 6F 64 65 0D 0D 0D 0D 42 43 2C 44 45 2C 48 4C code....BC,DE,HL
00B2B0: 2C 49 58 20 61 6E 64 20 6F 74 68 65 72 20 66 6C ,IX and other fl
00B2C0: 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D ags corrupt.....
00B2D0: 4E 6F 74 65 73 3A 0D 0D 0D 0D 49 74 20 69 73 20 Notes:....It is
00B2E0: 6E 6F 74 20 6E 65 63 65 73 73 61 72 79 20 74 6F not necessary to
00B2F0: 20 72 65 61 64 20 61 6C 6C 90 20 74 68 65 90 20 read all. the.
00B300: 0D 0D 33 09 44 31 0D 0D 34 09 44 32 0D 0D 35 09 ..3.D1..4.D2..5.
00B310: 44 33 0D 0D 36 09 44 34 0D 0D 37 09 44 35 0D 0D D3..6.D4..7.D5..
00B320: 38 09 44 36 0D 0D 39 09 44 37 0D 0D 31 30 09 4E 8.D6..9.D7..10.N
00B330: 43 0D 0D 31 31 09 42 75 73 79 0D 0D 31 32 09 4E C..11.Busy..12.N
00B340: 43 0D 0D 31 33 09 4E 43 0D 0D 31 34 09 47 6E 64 C..13.NC..14.Gnd
00B350: 0D 0D 31 35 09 4E 43 0D 0D 31 36 09 47 6E 64 0D ..15.NC..16.Gnd.
00B360: 0D 31 37 09 4E 43 0D 0D 31 39 09 47 6E 64 0D 0D .17.NC..19.Gnd..
00B370: 32 30 09 4E 43 0D 0D 32 31 09 47 6E 64 0D 0D 32 20.NC..21.Gnd..2
00B380: 32 09 4E 43 0D 0D 32 33 09 47 6E 64 0D 0D 32 34 2.NC..23.Gnd..24
00B390: 09 4E 43 0D 0D 32 35 09 47 6E 64 0D 0D 32 36 09 .NC..25.Gnd..26.
00B3A0: 4E 43 0D 0D 32 37 09 47 6E 64 0D 0D 32 38 09 4E NC..27.Gnd..28.N
00B3B0: 43 0D 0D 32 39 09 47 6E 64 0D 0D 33 30 09 4E 43 C..29.Gnd..30.NC
00B3C0: 0D 0D 33 31 09 47 6E 64 0D 0D 33 32 09 4E 43 0D ..31.Gnd..32.NC.
00B3D0: 0D 33 33 09 47 6E 64 0D 0D 3D 3D 3D 3D 3D 3D 3D .33.Gnd..=======
00B3E0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00B3F0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00B400: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00B410: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00B420: 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D 4A 6F 79 73 =========...Joys
00B430: 74 69 63 6B 20 53 6F 63 6B 65 74 0D 3D 3D 3D 3D tick Socket.====
00B440: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D 0D 20 ===========....
00B450: 20 20 20 20 20 20 20 20 20 20 20 20 41 73 20 73 As s
00B460: 65 65 6E 20 66 72 6F 6D 20 74 68 65 20 72 65 61 een from the rea
00B470: 72 0D 0D 0D 20 20 20 20 5F 5F 5F 5F 5F 5F 5F 5F r... ________
00B480: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
00B490: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
00B4A0: 5F 5F 0D 20 20 20 20 5C 20 20 20 20 20 20 20 20 __. \
00B4B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B4C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B4D0: 2F 0D 20 20 20 20 20 5C 09 31 09 32 09 33 09 34 /. \.1.2.3.4
00B4E0: 09 35 20 20 20 2F 0D 20 20 20 20 20 20 5C 20 20 .5 /. \
00B4F0: 2A 20 20 20 20 20 20 2A 20 20 20 20 20 20 20 2A * * *
00B500: 64 61 74 61 90 20 62 79 74 65 73 20 69 6E 20 74 data. bytes in t
00B510: 68 65 20 72 65 63 6F 72 64 2E 20 20 49 66 20 61 he record. If a
00B520: 20 0D 8A 6C 65 6E 67 74 68 20 6F 66 20 6C 65 73 ..length of les
00B530: 73 20 74 68 61 6E 90 20 74 68 61 74 90 20 77 72 s than. that. wr
00B540: 69 74 74 65 6E 90 20 69 73 90 20 73 70 65 63 69 itten. is. speci
00B550: 66 69 65 64 90 20 6F 6E 6C 79 20 74 68 61 74 20 fied. only that
00B560: 6E 75 6D 62 65 72 20 6F 66 20 0D 8A 62 79 74 65 number of ..byte
00B570: 73 20 77 69 6C 6C 20 62 65 20 72 65 61 64 2E 20 s will be read.
00B580: 54 72 79 69 6E 67 90 20 74 6F 90 20 72 65 61 64 Trying. to. read
00B590: 90 20 6D 6F 72 65 90 20 62 79 74 65 73 20 74 68 . more. bytes th
00B5A0: 61 6E 20 74 68 6F 73 65 20 74 68 61 74 20 68 61 an those that ha
00B5B0: 76 65 20 0D 8A 62 65 65 6E 20 77 72 69 74 74 65 ve ..been writte
00B5C0: 6E 20 77 69 6C 6C 20 67 69 76 65 20 61 6E 20 65 n will give an e
00B5D0: 72 72 6F 72 20 28 75 73 75 61 6C 6C 79 20 6F 76 rror (usually ov
00B5E0: 65 72 72 75 6E 29 2E 0D 0D 0D 0D 53 65 65 20 43 errun).....See C
00B5F0: 41 53 20 57 52 49 54 45 0D 0D 0D 0D 4F 6E 65 20 AS WRITE....One
00B600: 65 78 74 72 61 20 65 72 72 6F 72 20 63 61 6E 20 extra error can
00B610: 6F 63 63 75 72 3A 0D 0D 0D 0D 32 20 2D 20 41 20 occur:....2 - A
00B620: 43 52 43 20 66 61 69 6C 75 72 65 20 77 61 73 20 CRC failure was
00B630: 64 65 74 65 63 74 65 64 2E 0D 0D 0D 0D 2D 2D 2D detected.....---
00B640: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00B650: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00B660: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00B670: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00B680: 2D 2D 2D 0D 0D 0D 0D 26 42 43 41 34 20 2D 20 43 ---....&BCA4 - C
00B690: 41 53 20 43 48 45 43 4B 20 2D 20 43 68 65 63 6B AS CHECK - Check
00B6A0: 20 61 20 72 65 63 6F 72 64 20 6F 6E 20 63 61 73 a record on cas
00B6B0: 73 65 74 74 65 20 77 69 74 68 20 64 61 74 61 20 sette with data
00B6C0: 69 6E 20 6D 65 6D 6F 72 79 0D 0D 0D 0D 45 6E 74 in memory....Ent
00B6D0: 72 79 3A 0D 0D 0D 0D 48 4C 20 3D 20 73 74 61 72 ry:....HL = star
00B6E0: 74 20 61 64 64 72 65 73 73 20 6F 66 20 64 61 74 t address of dat
00B6F0: 61 20 74 6F 20 72 65 61 64 0D 0D 44 45 20 3D 20 a to read..DE =
00B700: 20 20 20 20 20 20 20 2A 20 20 20 20 20 20 2A 20 * *
00B710: 20 20 2F 20 0D 20 20 20 20 20 20 20 5C 20 20 20 / . \
00B720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2F /
00B740: 0D 20 20 20 20 20 20 20 20 5C 20 20 20 20 2A 20 . \ *
00B750: 20 20 20 20 20 2A 20 20 20 20 20 20 20 2A 20 20 * *
00B760: 20 20 20 20 20 2A 20 20 20 20 2F 0D 09 20 5C 20 * /.. \
00B770: 20 20 36 09 20 20 20 20 37 09 20 20 20 20 38 09 6. 7. 8.
00B780: 20 20 20 20 39 20 20 20 2F 0D 20 20 20 20 20 20 9 /.
00B790: 20 20 20 20 5C 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F \___________
00B7A0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F ________________
00B7B0: 5F 2F 0D 0D 0D 31 09 55 70 0D 0D 32 09 44 6F 77 _/...1.Up..2.Dow
00B7C0: 6E 0D 0D 33 09 4C 65 66 74 0D 0D 34 09 52 69 67 n..3.Left..4.Rig
00B7D0: 68 74 0D 0D 35 09 53 70 61 72 65 09 28 45 78 74 ht..5.Spare.(Ext
00B7E0: 72 61 20 66 69 72 65 20 62 75 74 74 6F 6E 20 66 ra fire button f
00B7F0: 6F 72 20 41 4D 58 20 6D 6F 75 73 65 29 0D 0D 36 or AMX mouse)..6
00B800: 09 46 69 72 65 20 32 0D 0D 37 09 46 69 72 65 20 .Fire 2..7.Fire
00B810: 31 0D 0D 38 09 43 6F 6D 6D 6F 6E 0D 0D 39 09 43 1..8.Common..9.C
00B820: 6F 6D 6D 6F 6E 20 32 0D 0D 3D 3D 3D 3D 3D 3D 3D ommon 2..=======
00B830: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00B840: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00B850: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00B860: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00B870: 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D 53 74 65 72 =========...Ster
00B880: 65 6F 20 53 6F 63 6B 65 74 0D 3D 3D 3D 3D 3D 3D eo Socket.======
00B890: 3D 3D 3D 3D 3D 3D 3D 0D 0D 20 20 20 20 20 20 20 =======..
00B8A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 69 ri
00B8B0: 67 68 74 0D 20 20 20 20 20 20 20 20 20 20 20 20 ght.
00B8C0: 20 20 20 20 20 20 20 20 20 20 7C 0D 20 20 20 20 |.
00B8D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B8E0: 20 20 7C 0D 20 20 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F |. __________
00B8F0: 5F 5F 20 20 20 20 20 20 20 20 7C 0D 20 2F 20 20 __ |. /
00B900: 6C 65 6E 67 74 68 20 6F 66 20 64 61 74 61 0D 0D length of data..
00B910: 41 20 3D 20 73 79 6E 63 20 63 68 61 72 61 63 74 A = sync charact
00B920: 65 72 0D 0D 0D 0D 45 78 69 74 3A 0D 0D 0D 0D 49 er....Exit:....I
00B930: 66 20 72 65 63 6F 72 64 20 77 61 73 20 63 68 65 f record was che
00B940: 63 6B 65 64 20 4F 4B 3A 0D 0D 0D 0D 43 61 72 72 cked OK:....Carr
00B950: 79 20 74 72 75 65 2E 20 41 20 63 6F 72 72 75 70 y true. A corrup
00B960: 74 2E 0D 0D 0D 0D 49 66 20 61 6E 20 65 72 72 6F t.....If an erro
00B970: 72 20 6F 63 63 75 72 65 64 3A 0D 0D 0D 0D 43 61 r occured:....Ca
00B980: 72 72 79 20 66 61 6C 73 65 2E 20 41 20 3D 20 65 rry false. A = e
00B990: 72 72 6F 72 20 63 6F 64 65 2E 0D 0D 0D 0D 42 43 rror code.....BC
00B9A0: 2C 44 45 2C 48 4C 2C 49 58 20 61 6E 64 20 6F 74 ,DE,HL,IX and ot
00B9B0: 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 70 her flags corrup
00B9C0: 74 2E 0D 0D 0D 0D 4E 6F 74 65 73 3A 0D 0D 0D 0D t.....Notes:....
00B9D0: 53 65 65 20 43 41 53 20 52 45 41 44 0D 0D 0D 0D See CAS READ....
00B9E0: 4F 6E 65 20 65 78 74 72 61 20 63 6F 64 65 20 6D One extra code m
00B9F0: 61 79 20 62 65 20 72 65 74 75 72 6E 65 64 20 62 ay be returned b
00BA00: 79 20 74 68 69 73 20 72 6F 75 74 69 6E 65 2E 0D y this routine..
00BA10: 0D 0D 0D 33 20 2D 20 54 68 65 20 64 61 74 61 20 ...3 - The data
00BA20: 69 73 20 64 69 66 66 65 72 65 6E 74 20 74 6F 20 is different to
00BA30: 74 68 61 74 20 69 6E 20 6D 65 6D 6F 72 79 0D 0D that in memory..
00BA40: 0D 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ..--------------
00BA50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00BA60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00BA70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00BA80: 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 1A 24 24 FF 00 FF --------...$$...
00BA90: 6F 77 73 3A 0D 0D 26 30 45 09 46 69 6C 65 20 69 ows:..&0E.File i
00BAA0: 73 20 6E 6F 74 20 6F 70 65 6E 20 61 73 20 65 78 s not open as ex
00BAB0: 70 65 63 74 65 64 0D 26 30 46 09 48 61 72 64 20 pected.&0F.Hard
00BAC0: 65 6E 64 20 6F 66 20 66 69 6C 65 0D 0D 1A 6E 63 end of file...nc
00BAD0: 74 69 6F 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A tio.............
00BAE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00BAF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00BB00: 20 20 20 20 20 20 20 20 20 20 7C 5F 5F 5F 5F 5F |_____
00BB10: 20 5F 5F 5F 20 2D 2D 0D 7C 20 20 20 20 20 20 20 ___ --.|
00BB20: 20 20 20 20 20 20 7C 5F 5F 5F 5F 5F 7C 5F 5F 5F |_____|___
00BB30: 7C 20 20 7C 0D 20 5C 5F 5F 5F 5F 5F 5F 5F 5F 5F | |. \_________
00BB40: 5F 5F 5F 7C 20 20 20 20 20 20 20 20 20 20 2D 2D ___| --
00BB50: 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
00BB60: 20 20 7C 20 20 20 20 20 20 20 20 7C 0D 20 20 20 | |.
00BB70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 |
00BB80: 20 20 20 20 20 20 20 7C 0D 20 20 20 20 20 20 20 |.
00BB90: 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 |
00BBA0: 20 20 6C 65 66 74 0D 20 20 20 20 20 20 20 20 20 left.
00BBB0: 20 20 20 20 20 20 20 67 6E 64 0D 0D 0D 3D 3D 3D gnd...===
00BBC0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00BBD0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00BBE0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00BBF0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00BC00: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D =============...
00BC10: 4D 6F 6E 69 74 6F 72 20 53 6F 63 6B 65 74 0D 3D Monitor Socket.=
00BC20: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D =============...
00BC30: 09 09 73 65 65 6E 20 66 72 6F 6D 20 72 65 61 72 ..seen from rear
00BC40: 0D 0D 0D 09 09 20 20 20 20 20 0D 09 09 20 20 20 ..... ...
00BC50: 20 5F 5F 5F 20 20 20 5F 5F 5F 0D 20 20 20 20 20 ___ ___.
00BC60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2F 20 /
00BC70: 20 20 7C 5F 7C 20 20 20 5C 0D 20 20 20 20 20 20 |_| \.
00BC80: 20 20 20 20 20 20 20 20 20 20 20 20 2F 20 35 20 / 5
00BC90: 20 20 20 20 20 20 31 20 5C 0D 20 20 20 20 20 20 1 \.
00BCA0: 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 2A 20 | *
00BCB0: 20 20 36 20 20 20 2A 20 20 7C 0D 20 20 20 20 20 6 * |.
00BCC0: 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 |
00BCD0: 20 20 20 2A 20 20 20 20 20 20 7C 0D 20 20 20 20 * |.
00BCE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 |
00BCF0: 2A 20 20 20 20 20 20 20 2A 20 20 7C 0D 20 20 20 * * |.
00BD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00BF00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00BF10: 0A 00 01 00 02 09 4E E5 0A 00 C1 02 00 00 00 02 ......N.........
00BF20: 0A 00 C6 02 00 00 00 02 0A 00 C2 02 00 00 00 02 ................
00BF30: 0A 00 C7 02 00 00 00 02 0A 00 C3 02 00 00 00 02 ................
00BF40: 0A 00 C8 02 00 00 00 02 0A 00 C4 02 00 00 00 02 ................
00BF50: 0A 00 C9 02 00 00 00 02 0A 00 C5 02 00 00 00 02 ................
00BF60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00C000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5C \
00C010: 20 34 20 20 20 2A 33 20 20 32 20 2F 0D 09 09 20 4 *3 2 /...
00C020: 20 20 5C 5F 5F 5F 5F 5F 5F 5F 5F 5F 2F 0D 0D 0D \_________/...
00C030: 31 09 52 65 64 20 28 41 6E 61 6C 6F 67 75 65 20 1.Red (Analogue
00C040: 73 69 67 6E 61 6C 29 0D 0D 32 09 47 72 65 65 6E signal)..2.Green
00C050: 20 28 41 6E 61 6C 6F 67 75 65 20 73 69 67 6E 61 (Analogue signa
00C060: 6C 29 0D 0D 33 09 42 6C 75 65 20 28 41 6E 61 6C l)..3.Blue (Anal
00C070: 6F 67 75 65 20 73 69 67 6E 61 6C 29 0D 0D 34 09 ogue signal)..4.
00C080: 43 6F 6D 70 6F 73 69 74 65 20 53 79 6E 63 20 28 Composite Sync (
00C090: 63 6F 6D 62 69 6E 65 64 20 48 6F 72 69 7A 6F 6E combined Horizon
00C0A0: 74 61 6C 20 61 6E 64 20 56 65 72 69 63 61 6C 20 tal and Verical
00C0B0: 73 79 6E 63 20 73 69 67 6E 61 6C 73 29 0D 0D 35 sync signals)..5
00C0C0: 09 47 6E 64 0D 0D 36 20 20 20 09 4C 75 6D 69 6E .Gnd..6 .Lumin
00C0D0: 61 6E 63 65 20 28 61 6E 61 6C 6F 67 75 65 20 73 ance (analogue s
00C0E0: 69 67 6E 61 6C 3B 20 6F 6E 6C 79 20 61 70 70 6C ignal; only appl
00C0F0: 69 65 73 20 74 6F 20 47 72 65 65 6E 20 53 63 72 ies to Green Scr
00C100: 65 65 6E 20 4D 6F 6E 69 74 6F 72 73 29 0D 0D 0D een Monitors)...
00C110: 0D 4E 6F 74 65 3A 0D 0D 46 6F 72 20 63 6F 6C 6F .Note:..For colo
00C120: 75 72 20 6D 6F 6E 69 74 6F 72 73 3A 0D 0D 31 29 ur monitors:..1)
00C130: 20 4F 6E 6C 79 20 74 68 65 20 52 65 64 2C 20 47 Only the Red, G
00C140: 72 65 65 6E 2C 20 42 6C 75 65 2C 20 43 6F 6D 70 reen, Blue, Comp
00C150: 6F 73 69 74 65 20 53 79 6E 63 2C 20 61 6E 64 20 osite Sync, and
00C160: 47 6E 64 20 73 69 67 6E 61 6C 73 20 61 72 65 20 Gnd signals are
00C170: 75 73 65 64 2E 0D 0D 32 29 20 54 68 65 20 52 65 used...2) The Re
00C180: 64 2C 20 47 72 65 65 6E 20 61 6E 64 20 42 6C 75 d, Green and Blu
00C190: 65 20 61 72 65 20 61 6E 61 6C 6F 67 75 65 20 73 e are analogue s
00C1A0: 69 67 6E 61 6C 73 2E 20 54 68 65 20 76 6F 6C 74 ignals. The volt
00C1B0: 61 67 65 20 6F 66 20 74 68 65 20 73 69 67 6E 61 age of the signa
00C1C0: 6C 0D 20 20 20 64 65 70 65 6E 64 73 20 6F 6E 20 l. depends on
00C1D0: 74 68 65 20 61 6D 6F 75 6E 74 20 6F 66 20 43 6F the amount of Co
00C1E0: 6C 6F 75 72 20 70 72 65 73 65 6E 74 2E 0D 0D 33 lour present...3
00C1F0: 29 20 4F 6E 6C 79 20 33 20 6C 65 76 65 6C 73 20 ) Only 3 levels
00C200: 73 73 2E 20 54 68 65 20 61 64 64 72 65 73 73 20 ss. The address
00C210: 6C 69 6E 65 73 20 68 6F 6C 64 20 74 68 65 20 70 lines hold the p
00C220: 6F 72 74 20 61 64 64 72 65 73 73 2C 20 61 6E 64 ort address, and
00C230: 20 74 68 65 0D 09 09 64 61 74 61 20 6C 69 6E 65 the...data line
00C240: 73 20 68 6F 6C 64 20 74 68 65 20 62 79 74 65 20 s hold the byte
00C250: 6F 66 20 64 61 74 61 2E 0D 5F 5F 0D 52 64 09 2D of data..__.Rd.-
00C260: 09 69 6E 64 69 63 61 74 65 73 20 74 68 65 20 43 .indicates the C
00C270: 50 55 20 69 73 20 72 65 61 64 69 6E 67 20 64 61 PU is reading da
00C280: 74 61 0D 5F 5F 0D 57 72 09 2D 09 69 6E 64 69 63 ta.__.Wr.-.indic
00C290: 61 74 65 73 20 74 68 65 20 43 50 55 20 69 73 20 ates the CPU is
00C2A0: 77 72 69 74 69 6E 67 20 64 61 74 61 0D 5F 5F 5F writing data.___
00C2B0: 5F 5F 0D 52 65 73 65 74 09 2D 09 77 68 65 6E 20 __.Reset.-.when
00C2C0: 74 68 69 73 20 73 69 67 6E 61 6C 20 69 73 20 6C this signal is l
00C2D0: 6F 77 2C 20 74 68 65 20 43 50 55 20 72 65 73 65 ow, the CPU rese
00C2E0: 74 73 2C 20 74 68 65 20 70 72 6F 67 72 61 6D 20 ts, the program
00C2F0: 63 6F 75 6E 74 65 72 0D 09 09 62 65 63 6F 6D 65 counter...become
00C300: 73 20 7A 65 72 6F 2C 20 61 6E 64 20 74 68 65 20 s zero, and the
00C310: 70 72 6F 67 72 61 6D 20 69 73 20 73 74 61 72 74 program is start
00C320: 65 64 20 65 78 65 63 75 74 69 6E 67 2E 0D 5F 5F ed executing..__
00C330: 5F 0D 49 72 71 09 2D 09 57 68 65 6E 20 6C 6F 77 _.Irq.-.When low
00C340: 2C 20 74 68 65 20 43 50 55 20 69 73 20 69 6E 74 , the CPU is int
00C350: 65 72 72 75 70 74 65 64 2E 0D 0D 0D 53 6F 75 6E errupted....Soun
00C360: 64 09 2D 09 6D 6F 6E 6F 20 6F 75 74 70 75 74 20 d.-.mono output
00C370: 6F 66 20 61 6C 6C 20 33 20 63 68 61 6E 6E 65 6C of all 3 channel
00C380: 73 20 6D 69 78 65 64 20 74 6F 67 65 74 68 65 72 s mixed together
00C390: 0D 0D 47 6E 64 09 2D 09 30 56 20 73 75 70 70 6C ..Gnd.-.0V suppl
00C3A0: 79 0D 0D 2B 35 76 09 2D 09 35 76 20 53 75 70 70 y..+5v.-.5v Supp
00C3B0: 6C 79 0D 0D 30 09 2D 09 34 4D 68 7A 20 43 6C 6F ly..0.-.4Mhz Clo
00C3C0: 63 6B 20 28 66 6F 72 20 64 72 69 76 69 6E 67 20 ck (for driving
00C3D0: 74 68 65 20 43 50 55 29 0D 0D 0D 0D 0D 3D 3D 3D the CPU).....===
00C3E0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C3F0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C400: 6F 66 20 63 6F 6C 6F 75 72 20 61 72 65 20 75 73 of colour are us
00C410: 65 64 2E 20 28 4F 6E 2C 20 68 61 6C 66 2D 6F 6E ed. (On, half-on
00C420: 2C 20 6F 66 66 29 0D 20 20 20 41 6C 6C 20 63 6F , off). All co
00C430: 6D 62 69 6E 61 74 61 74 69 6F 6E 73 20 6F 66 20 mbinatations of
00C440: 74 68 65 73 65 20 77 69 6C 6C 20 67 69 76 65 20 these will give
00C450: 32 37 20 63 6F 6C 6F 75 72 73 2E 0D 0D 46 6F 72 27 colours...For
00C460: 20 67 72 65 65 6E 20 73 63 72 65 65 6E 20 6D 6F green screen mo
00C470: 6E 69 74 6F 72 73 3A 0D 0D 31 29 20 4F 6E 6C 79 nitors:..1) Only
00C480: 20 6C 75 6D 69 6E 61 6E 63 65 20 61 6E 64 20 47 luminance and G
00C490: 6E 64 20 73 69 67 6E 61 6C 73 20 61 72 65 20 75 nd signals are u
00C4A0: 73 65 64 2E 0D 0D 32 29 20 4C 75 6D 69 6E 61 6E sed...2) Luminan
00C4B0: 63 65 20 69 73 20 61 20 61 6E 61 6C 6F 67 75 65 ce is a analogue
00C4C0: 20 73 69 67 6E 61 6C 2E 0D 20 20 20 54 68 65 72 signal.. Ther
00C4D0: 65 20 61 72 65 20 32 37 20 6C 65 76 65 6C 73 20 e are 27 levels
00C4E0: 6F 66 20 67 72 65 65 6E 20 72 61 6E 67 69 6E 67 of green ranging
00C4F0: 20 66 72 6F 6D 20 6E 6F 6E 65 2C 20 74 6F 20 66 from none, to f
00C500: 75 6C 6C 20 67 72 65 65 6E 2E 0D 0D 0D 3D 3D 3D ull green....===
00C510: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C520: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C530: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C540: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C550: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D =============...
00C560: 54 61 70 65 20 53 6F 63 6B 65 74 0D 3D 3D 3D 3D Tape Socket.====
00C570: 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D 09 09 73 65 65 6E =======.....seen
00C580: 20 66 72 6F 6D 20 72 65 61 72 0D 09 09 20 20 20 from rear...
00C590: 20 20 0D 09 09 20 20 20 20 5F 5F 5F 20 20 20 5F ... ___ _
00C5A0: 5F 5F 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 __.
00C5B0: 20 20 20 20 20 20 2F 20 20 20 7C 5F 7C 20 20 20 / |_|
00C5C0: 5C 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 \.
00C5D0: 20 20 20 20 2F 20 33 20 20 20 20 20 20 20 31 20 / 3 1
00C5E0: 5C 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 \.
00C5F0: 20 20 20 7C 20 2A 20 20 20 20 20 20 20 20 20 2A | * *
00C600: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C610: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C620: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D 44 ============...D
00C630: 69 73 63 20 44 72 69 76 65 20 32 20 53 6F 63 6B isc Drive 2 Sock
00C640: 65 74 20 28 43 50 43 36 36 34 2F 36 31 32 38 29 et (CPC664/6128)
00C650: 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D .===============
00C660: 3D 3D 3D 3D 0D 0D 0D 09 09 09 73 65 65 6E 20 66 ====......seen f
00C670: 72 6F 6D 20 72 65 61 72 0D 0D 0D 20 32 20 20 34 rom rear... 2 4
00C680: 20 20 36 20 20 38 20 31 30 20 31 32 20 31 34 20 6 8 10 12 14
00C690: 31 36 20 31 38 20 32 30 20 32 32 20 32 34 20 32 16 18 20 22 24 2
00C6A0: 36 20 32 38 20 33 30 20 33 32 20 33 34 0D 20 2D 6 28 30 32 34. -
00C6B0: 20 20 2D 7C 7C 2D 20 20 2D 20 20 2D 20 20 2D 20 -||- - - -
00C6C0: 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 - - - - -
00C6D0: 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D - - - - - -
00C6E0: 0D 20 2D 20 20 2D 7C 7C 2D 20 20 2D 20 20 2D 20 . - -||- - -
00C6F0: 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 - - - - -
00C700: 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D - - - - - -
00C710: 20 20 2D 0D 20 31 20 20 33 20 20 35 20 20 37 20 -. 1 3 5 7
00C720: 20 39 20 31 31 20 31 33 20 31 35 20 31 37 20 31 9 11 13 15 17 1
00C730: 39 20 32 31 20 32 33 20 32 35 20 32 37 20 32 39 9 21 23 25 27 29
00C740: 20 33 31 20 33 33 0D 0D 20 20 20 20 20 20 20 20 31 33..
00C750: 5F 5F 5F 5F 5F 0D 31 09 52 65 61 64 79 0D 0D 32 _____.1.Ready..2
00C760: 09 47 6E 64 0D 09 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F .Gnd..__________
00C770: 5F 5F 5F 0D 33 09 53 69 64 65 20 31 20 73 65 6C ___.3.Side 1 sel
00C780: 65 63 74 0D 0D 34 09 47 6E 64 0D 09 5F 5F 5F 5F ect..4.Gnd..____
00C790: 5F 5F 5F 5F 5F 0D 35 09 52 65 61 64 20 64 61 74 _____.5.Read dat
00C7A0: 61 0D 0D 36 09 47 6E 64 0D 09 5F 5F 5F 5F 5F 5F a..6.Gnd..______
00C7B0: 5F 5F 5F 5F 5F 5F 5F 0D 37 09 57 72 69 74 65 20 _______.7.Write
00C7C0: 50 72 6F 74 65 63 74 0D 0D 38 09 47 6E 64 0D 09 Protect..8.Gnd..
00C7D0: 5F 5F 5F 5F 5F 5F 5F 0D 39 09 54 72 61 63 6B 20 _______.9.Track
00C7E0: 30 0D 0D 31 30 09 47 6E 64 0D 09 5F 5F 5F 5F 5F 0..10.Gnd.._____
00C7F0: 5F 5F 5F 5F 5F 0D 31 31 09 57 72 69 74 65 20 47 _____.11.Write G
00C800: 20 7C 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 |.
00C810: 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 |
00C820: 20 20 7C 0D 20 20 20 20 20 20 20 20 20 20 20 20 |.
00C830: 20 20 20 20 20 7C 20 20 2A 20 20 20 20 20 20 20 | *
00C840: 2A 20 20 7C 0D 20 20 20 20 20 20 20 20 20 20 20 * |.
00C850: 20 20 20 20 20 20 20 5C 20 35 20 20 20 2A 32 20 \ 5 *2
00C860: 20 34 20 2F 0D 09 09 20 20 20 5C 5F 5F 5F 5F 5F 4 /... \_____
00C870: 5F 5F 5F 5F 2F 0D 0D 0D 31 09 52 65 6D 6F 74 65 ____/...1.Remote
00C880: 20 53 77 69 74 63 68 20 28 54 61 70 65 20 6D 6F Switch (Tape mo
00C890: 74 6F 72 20 6F 6E 2F 6F 66 66 20 73 77 69 74 63 tor on/off switc
00C8A0: 68 29 0D 0D 32 09 47 6E 64 0D 0D 33 09 52 65 6D h)..2.Gnd..3.Rem
00C8B0: 6F 74 65 20 53 77 69 74 63 68 20 28 54 61 70 65 ote Switch (Tape
00C8C0: 20 6D 6F 74 6F 72 20 6F 6E 2F 6F 66 66 20 73 77 motor on/off sw
00C8D0: 69 74 63 68 29 0D 0D 34 09 44 61 74 61 20 69 6E itch)..4.Data in
00C8E0: 20 28 64 61 74 61 20 72 65 61 64 29 0D 0D 35 09 (data read)..5.
00C8F0: 44 61 74 61 20 6F 75 74 20 28 64 61 74 61 20 77 Data out (data w
00C900: 72 69 74 74 65 6E 29 0D 0D 3D 3D 3D 3D 3D 3D 3D ritten)..=======
00C910: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C920: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C930: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C940: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00C950: 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D 45 78 70 61 =========...Expa
00C960: 6E 73 69 6F 6E 20 53 6F 63 6B 65 74 0D 3D 3D 3D nsion Socket.===
00C970: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D =============...
00C980: 09 09 09 73 65 65 6E 20 66 72 6F 6D 20 72 65 61 ...seen from rea
00C990: 72 0D 0D 0D 34 39 20 34 37 20 34 35 20 34 33 20 r...49 47 45 43
00C9A0: 34 31 20 33 39 20 33 37 20 33 35 20 33 33 20 33 41 39 37 35 33 3
00C9B0: 31 20 32 39 20 32 37 20 32 35 20 32 33 20 32 31 1 29 27 25 23 21
00C9C0: 20 31 39 20 31 37 20 31 35 20 31 33 20 31 31 20 19 17 15 13 11
00C9D0: 20 39 20 20 37 20 20 35 20 20 33 20 20 31 0D 20 9 7 5 3 1.
00C9E0: 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D - - - - - -
00C9F0: 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 - - - - -
00CA00: 61 74 65 0D 0D 31 32 09 47 6E 64 0D 09 5F 5F 5F ate..12.Gnd..___
00CA10: 5F 5F 5F 5F 5F 5F 5F 0D 31 33 09 57 72 69 74 65 _______.13.Write
00CA20: 20 44 61 74 61 0D 0D 31 34 09 47 6E 64 0D 09 5F Data..14.Gnd.._
00CA30: 5F 5F 5F 0D 31 35 09 53 74 65 70 0D 0D 31 36 09 ___.15.Step..16.
00CA40: 47 6E 64 0D 09 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F Gnd..___________
00CA50: 5F 5F 5F 5F 5F 0D 31 37 09 44 69 72 65 63 74 69 _____.17.Directi
00CA60: 6F 6E 20 53 65 6C 65 63 74 0D 0D 31 38 09 47 6E on Select..18.Gn
00CA70: 64 0D 09 5F 5F 5F 5F 5F 5F 5F 5F 0D 31 39 09 4D d..________.19.M
00CA80: 6F 74 6F 72 20 4F 6E 0D 0D 32 30 09 47 6E 64 0D otor On..20.Gnd.
00CA90: 0D 32 31 09 4E 43 0D 0D 32 32 09 47 6E 64 0D 09 .21.NC..22.Gnd..
00CAA0: 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 0D 32 ______________.2
00CAB0: 33 09 44 72 69 76 65 20 53 65 6C 65 63 74 20 31 3.Drive Select 1
00CAC0: 0D 0D 32 34 09 47 6E 64 0D 0D 32 35 09 4E 43 0D ..24.Gnd..25.NC.
00CAD0: 0D 32 36 09 47 6E 64 0D 09 5F 5F 5F 5F 5F 0D 32 .26.Gnd.._____.2
00CAE0: 37 09 49 6E 64 65 78 0D 0D 32 38 09 47 6E 64 0D 7.Index..28.Gnd.
00CAF0: 0D 32 39 09 4E 43 0D 0D 33 30 09 47 6E 64 0D 0D .29.NC..30.Gnd..
00CB00: 33 31 09 4E 43 0D 0D 33 32 09 47 6E 64 0D 0D 33 31.NC..32.Gnd..3
00CB10: 33 09 4E 43 0D 0D 33 34 09 47 6E 64 0D 0D 1A 20 3.NC..34.Gnd...
00CB20: 6C 6F 77 2C 0D 6F 1A 70 65 6E 20 61 73 20 65 78 low,.o.pen as ex
00CB30: 70 65 63 74 65 64 0D 26 30 46 09 48 61 72 64 20 pected.&0F.Hard
00CB40: 65 6E 64 20 6F 66 20 66 69 6C 65 0D 0D 1A 6E 63 end of file...nc
00CB50: 74 69 6F 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A tio.............
00CB60: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00CB70: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00CB80: 65 63 74 0D 0D 34 09 47 6E 64 0D 09 5F 5F 5F 5F ect..4.Gnd..____
00CB90: 5F 5F 5F 5F 5F 0D 35 09 52 65 61 64 20 64 61 74 _____.5.Read dat
00CBA0: 61 0D 0D 36 09 47 6E 64 0D 09 5F 5F 5F 5F 5F 5F a..6.Gnd..______
00CBB0: 5F 5F 5F 5F 5F 5F 5F 0D 37 09 57 72 69 74 65 20 _______.7.Write
00CBC0: 50 72 6F 74 65 63 74 0D 0D 38 09 47 6E 64 0D 09 Protect..8.Gnd..
00CBD0: 5F 5F 5F 5F 5F 5F 5F 0D 39 09 54 72 61 63 6B 20 _______.9.Track
00CBE0: 30 0D 0D 31 30 09 47 6E 64 0D 09 5F 5F 5F 5F 5F 0..10.Gnd.._____
00CBF0: 5F 5F 5F 5F 5F 0D 31 31 09 57 72 69 74 65 20 47 _____.11.Write G
00CC00: 20 2D 20 20 2D 20 20 2D 7C 7C 2D 20 20 2D 20 20 - - -||- -
00CC10: 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D - - - - - -
00CC20: 20 20 2D 20 20 2D 20 20 2D 0D 20 2D 20 20 2D 20 - - -. - -
00CC30: 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 - - - - -
00CC40: 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D - - - - - -
00CC50: 20 20 2D 7C 7C 2D 20 20 2D 20 20 2D 20 20 2D 20 -||- - - -
00CC60: 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 2D 20 20 - - - - -
00CC70: 2D 20 20 2D 0D 35 30 20 34 38 20 34 36 20 34 34 - -.50 48 46 44
00CC80: 20 34 32 20 34 30 20 33 38 20 33 36 20 33 34 20 42 40 38 36 34
00CC90: 33 32 20 33 30 20 32 38 20 32 36 20 32 34 20 32 32 30 28 26 24 2
00CCA0: 32 20 32 30 20 31 38 20 31 36 20 31 34 20 31 32 2 20 18 16 14 12
00CCB0: 20 31 30 20 20 38 20 20 36 20 20 34 20 20 32 0D 10 8 6 4 2.
00CCC0: 0D 41 78 78 20 2D 20 41 64 64 72 65 73 73 20 6C .Axx - Address l
00CCD0: 69 6E 65 73 0D 44 78 20 20 2D 20 44 61 74 61 20 ines.Dx - Data
00CCE0: 6C 69 6E 65 73 0D 0D 0D 0D 31 09 53 6F 75 6E 64 lines....1.Sound
00CCF0: 20 0D 0D 32 09 47 6E 64 0D 0D 33 09 41 31 35 0D ..2.Gnd..3.A15.
00CD00: 0D 34 09 41 31 34 0D 0D 35 09 41 31 33 0D 0D 36 .4.A14..5.A13..6
00CD10: 09 41 31 32 0D 0D 37 09 41 31 31 0D 0D 38 09 41 .A12..7.A11..8.A
00CD20: 31 30 0D 0D 39 09 41 39 0D 0D 31 30 09 41 38 0D 10..9.A9..10.A8.
00CD30: 0D 31 31 09 41 37 0D 0D 31 32 09 41 36 0D 0D 31 .11.A7..12.A6..1
00CD40: 33 09 41 35 0D 0D 31 34 09 41 34 0D 0D 31 35 09 3.A5..14.A4..15.
00CD50: 41 33 0D 0D 31 36 09 41 32 0D 0D 31 37 09 41 31 A3..16.A2..17.A1
00CD60: 0D 0D 31 38 09 41 30 0D 0D 31 39 09 44 37 0D 0D ..18.A0..19.D7..
00CD70: 32 30 09 44 36 0D 0D 32 31 09 44 35 0D 0D 32 32 20.D6..21.D5..22
00CD80: 09 44 34 0D 0D 32 33 09 44 33 0D 0D 32 34 09 44 .D4..23.D3..24.D
00CD90: 32 0D 0D 32 35 09 44 31 0D 0D 32 36 09 44 30 0D 2..25.D1..26.D0.
00CDA0: 0D 32 37 09 2B 35 76 0D 20 20 20 20 20 20 20 20 .27.+5v.
00CDB0: 5F 5F 5F 5F 0D 32 38 09 4D 72 65 71 0D 20 20 20 ____.28.Mreq.
00CDC0: 20 20 20 20 20 5F 5F 0D 32 39 09 4D 31 0D 20 20 __.29.M1.
00CDD0: 20 20 20 20 20 20 5F 5F 5F 5F 0D 33 30 09 52 66 ____.30.Rf
00CDE0: 73 68 0D 20 20 20 20 20 20 20 20 5F 5F 5F 5F 0D sh. ____.
00CDF0: 33 31 09 49 6F 72 71 0D 20 20 20 20 20 20 20 20 31.Iorq.
00CE00: 0D 0D 43 6F 6E 74 72 6F 6C 20 09 4E 61 6D 65 09 ..Control .Name.
00CE10: 09 50 61 72 61 6D 65 74 65 72 73 09 09 09 09 46 .Parameters....F
00CE20: 75 6E 63 74 69 6F 6E 0D 63 68 61 72 61 63 74 65 unction.characte
00CE30: 72 0D 63 6F 64 65 0D 28 41 53 43 49 49 20 76 61 r.code.(ASCII va
00CE40: 6C 75 65 29 0D 0D 26 30 30 09 09 4E 55 4C 09 09 lue)..&00..NUL..
00CE50: 4E 6F 6E 65 2E 09 09 09 09 4E 6F 74 68 69 6E 67 None.....Nothing
00CE60: 2E 0D 0D 26 30 31 09 09 53 4F 48 09 09 73 79 6D ...&01..SOH..sym
00CE70: 62 6F 6C 20 28 30 2E 2E 32 35 35 29 09 09 09 64 bol (0..255)...d
00CE80: 69 73 70 6C 61 79 20 73 79 6D 62 6F 6C 0D 0D 26 isplay symbol..&
00CE90: 30 32 09 09 53 54 58 09 09 4E 6F 6E 65 2E 09 09 02..STX..None...
00CEA0: 09 09 54 75 72 6E 20 6F 66 66 20 74 65 78 74 0D ..Turn off text.
00CEB0: 09 09 09 09 09 09 09 09 63 75 72 73 6F 72 0D 0D ........cursor..
00CEC0: 26 30 33 09 09 45 54 58 09 09 4E 6F 6E 65 2E 09 &03..ETX..None..
00CED0: 09 09 09 54 75 72 6E 20 6F 6E 20 74 65 78 74 0D ...Turn on text.
00CEE0: 09 09 09 09 09 09 09 09 63 75 72 73 6F 72 0D 0D ........cursor..
00CEF0: 26 30 34 09 09 45 4F 54 09 09 73 63 72 65 65 6E &04..EOT..screen
00CF00: 5F 6D 6F 64 65 20 28 30 2E 2E 32 29 09 09 53 65 _mode (0..2)..Se
00CF10: 74 20 73 63 72 65 65 6E 20 6D 6F 64 65 0D 0D 26 t screen mode..&
00CF20: 30 35 09 09 45 4E 51 09 09 63 68 61 72 61 63 74 05..ENQ..charact
00CF30: 65 72 20 28 30 2E 2E 32 35 35 29 09 09 64 69 73 er (0..255)..dis
00CF40: 70 6C 61 79 20 63 68 61 72 0D 09 09 09 09 09 09 play char.......
00CF50: 09 09 61 74 20 67 72 61 70 68 69 63 73 20 0D 09 ..at graphics ..
00CF60: 09 09 09 09 09 09 09 63 75 72 73 6F 72 20 70 6F .......cursor po
00CF70: 73 69 74 69 6F 6E 0D 0D 0D 26 30 36 20 09 09 41 sition...&06 ..A
00CF80: 43 4B 09 09 4E 6F 6E 65 2E 09 09 09 09 45 6E 61 CK..None.....Ena
00CF90: 62 6C 65 20 70 72 69 6E 74 69 6E 67 0D 09 09 09 ble printing....
00CFA0: 09 09 09 09 09 6F 66 20 74 65 78 74 20 63 68 61 .....of text cha
00CFB0: 72 73 0D 09 09 09 09 09 09 09 09 61 6E 64 20 69 rs.........and i
00CFC0: 6E 74 65 72 70 72 65 74 61 0D 09 09 09 09 09 09 nterpreta.......
00CFD0: 09 09 2D 74 69 6F 6E 20 6F 66 20 63 6F 6E 74 72 ..-tion of contr
00CFE0: 6F 6C 0D 09 09 09 09 09 09 09 09 63 68 61 72 73 ol.........chars
00CFF0: 2E 0D 0D 26 30 37 20 2A 09 09 42 45 4C 09 09 4E ...&07 *..BEL..N
00D000: 5F 5F 0D 33 32 09 52 64 0D 20 20 20 20 20 20 20 __.32.Rd.
00D010: 20 5F 5F 0D 33 33 09 57 72 0D 20 20 20 20 20 20 __.33.Wr.
00D020: 20 20 5F 5F 5F 5F 20 20 20 20 0D 33 34 09 48 61 ____ .34.Ha
00D030: 6C 74 0D 20 20 20 20 20 20 20 20 5F 5F 5F 0D 33 lt. ___.3
00D040: 35 09 49 6E 74 0D 20 20 20 20 20 20 20 20 5F 5F 5.Int. __
00D050: 5F 0D 33 36 09 4E 6D 69 0D 20 20 20 20 20 20 20 _.36.Nmi.
00D060: 20 5F 5F 5F 5F 0D 33 37 09 42 75 73 72 32 0D 20 ____.37.Busr2.
00D070: 20 20 20 20 20 20 20 5F 5F 5F 5F 5F 0D 33 38 09 _____.38.
00D080: 42 75 73 61 6B 0D 0D 33 39 09 52 65 61 64 79 0D Busak..39.Ready.
00D090: 09 5F 5F 5F 5F 5F 5F 5F 5F 5F 0D 34 30 09 42 75 ._________.40.Bu
00D0A0: 73 20 72 65 73 65 74 0D 20 20 20 20 20 20 20 20 s reset.
00D0B0: 5F 5F 5F 5F 5F 0D 34 31 09 52 65 73 65 74 0D 09 _____.41.Reset..
00D0C0: 5F 5F 5F 5F 5F 0D 34 32 09 52 6F 6D 65 6E 0D 0D _____.42.Romen..
00D0D0: 34 33 09 52 6F 6D 64 69 73 0D 20 20 20 20 20 20 43.Romdis.
00D0E0: 20 20 5F 5F 5F 5F 5F 0D 34 34 09 52 61 6D 72 64 _____.44.Ramrd
00D0F0: 0D 0D 34 35 09 52 61 6D 64 69 73 0D 0D 34 36 09 ..45.Ramdis..46.
00D100: 43 75 72 73 6F 72 0D 0D 34 37 09 4C 2E 70 65 6E Cursor..47.L.pen
00D110: 0D 20 20 20 20 20 20 20 20 5F 5F 5F 0D 34 38 09 . ___.48.
00D120: 45 78 70 0D 0D 34 39 09 47 6E 64 0D 0D 35 30 09 Exp..49.Gnd..50.
00D130: 30 0D 0D 0D 50 69 6E 20 64 65 73 63 72 69 70 74 0...Pin descript
00D140: 69 6F 6E 73 3A 0D 0D 0D 41 31 35 2E 2E 41 30 09 ions:...A15..A0.
00D150: 2D 09 41 64 64 72 65 73 73 20 6C 69 6E 65 73 20 -.Address lines
00D160: 28 68 6F 6C 64 73 20 6D 65 6D 6F 72 79 20 61 64 (holds memory ad
00D170: 64 72 65 73 73 29 0D 0D 0D 44 37 2E 2E 44 30 09 dress)...D7..D0.
00D180: 2D 09 44 61 74 61 20 6C 69 6E 65 73 20 28 68 6F -.Data lines (ho
00D190: 6C 64 73 20 64 61 74 61 20 62 65 69 6E 67 20 70 lds data being p
00D1A0: 6F 6B 65 64 20 6F 72 20 70 65 65 6B 65 64 29 0D oked or peeked).
00D1B0: 0D 0D 5F 5F 5F 5F 0D 49 6F 72 71 09 2D 09 77 68 ..____.Iorq.-.wh
00D1C0: 65 6E 20 6C 6F 77 2C 20 69 6E 64 69 63 61 74 65 en low, indicate
00D1D0: 73 20 43 50 55 20 69 73 20 77 72 69 74 69 6E 67 s CPU is writing
00D1E0: 20 74 6F 20 6F 72 20 72 65 61 64 69 6E 67 20 74 to or reading t
00D1F0: 6F 20 61 20 70 6F 72 74 0D 09 09 61 64 64 72 65 o a port...addre
00D200: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00D210: 0B 00 01 00 02 09 4E E5 0B 00 C1 02 00 00 00 02 ......N.........
00D220: 0B 00 C6 02 00 00 00 02 0B 00 C2 02 00 00 00 02 ................
00D230: 0B 00 C7 02 00 00 00 02 0B 00 C3 02 00 00 00 02 ................
00D240: 0B 00 C8 02 00 00 00 02 0B 00 C4 02 00 00 00 02 ................
00D250: 0B 00 C9 02 00 00 00 02 0B 00 C5 02 00 00 00 02 ................
00D260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D300: 6F 6E 65 2E 09 09 09 09 4D 61 6B 65 20 61 20 62 one.....Make a b
00D310: 65 65 70 2E 0D 0D 26 30 38 20 2A 09 09 42 53 09 eep...&08 *..BS.
00D320: 09 4E 6F 6E 65 2E 09 09 09 09 4D 6F 76 65 20 63 .None.....Move c
00D330: 75 72 73 6F 72 0D 20 20 20 20 20 20 20 20 28 62 ursor. (b
00D340: 61 63 6B 73 70 61 63 65 29 09 09 09 09 09 09 6C ackspace)......l
00D350: 65 66 74 20 61 20 63 68 61 72 0D 09 0D 0D 26 30 eft a char....&0
00D360: 39 20 2A 09 09 54 41 42 09 09 4E 6F 6E 65 2E 09 9 *..TAB..None..
00D370: 09 09 09 4D 6F 76 65 20 63 75 72 73 6F 72 0D 09 ...Move cursor..
00D380: 09 09 09 09 09 09 09 72 69 67 68 74 20 61 20 63 .......right a c
00D390: 68 61 72 2E 0D 0D 26 30 41 20 2A 09 09 4C 46 09 har...&0A *..LF.
00D3A0: 09 4E 6F 6E 65 2E 09 09 09 09 4D 6F 76 65 20 63 .None.....Move c
00D3B0: 75 72 73 6F 72 0D 09 09 09 09 09 09 09 09 64 6F ursor.........do
00D3C0: 77 6E 20 61 20 6C 69 6E 65 2E 0D 09 20 20 20 28 wn a line... (
00D3D0: 6C 69 6E 65 20 66 65 65 64 29 0D 0D 26 30 42 20 line feed)..&0B
00D3E0: 2A 09 09 56 54 09 09 4E 6F 6E 65 2E 09 09 09 09 *..VT..None.....
00D3F0: 4D 6F 76 65 20 63 75 72 73 6F 72 0D 09 09 09 09 Move cursor.....
00D400: 09 09 09 09 75 70 20 61 20 6C 69 6E 65 2E 0D 0D ....up a line...
00D410: 26 30 43 20 2A 09 09 46 46 09 09 4E 6F 6E 65 2E &0C *..FF..None.
00D420: 09 09 09 09 43 6C 65 61 72 20 74 65 78 74 0D 09 ....Clear text..
00D430: 20 20 20 28 66 6F 72 6D 20 66 65 65 64 29 09 09 (form feed)..
00D440: 09 09 09 09 77 69 6E 64 6F 77 20 61 6E 64 20 6D ....window and m
00D450: 6F 76 65 0D 09 09 09 09 09 09 09 09 63 75 72 73 ove.........curs
00D460: 6F 72 20 74 6F 20 74 6F 70 0D 09 09 09 09 09 09 or to top.......
00D470: 09 09 6C 65 66 74 0D 0D 26 30 44 20 2A 09 09 43 ..left..&0D *..C
00D480: 52 09 09 4E 6F 6E 65 2E 09 09 09 09 4D 6F 76 65 R..None.....Move
00D490: 20 63 75 72 73 6F 72 20 74 6F 0D 09 20 20 28 63 cursor to.. (c
00D4A0: 61 72 72 69 61 67 65 20 72 65 74 75 72 6E 29 09 arriage return).
00D4B0: 09 09 09 09 6C 65 66 74 20 65 64 67 65 20 6F 66 ....left edge of
00D4C0: 20 0D 09 09 09 09 09 09 09 09 77 69 6E 64 6F 77 .........window
00D4D0: 2E 0D 0D 26 30 45 09 09 53 4F 09 09 50 61 70 65 ...&0E..SO..Pape
00D4E0: 72 5F 6E 75 6D 62 65 72 20 28 30 2E 2E 31 35 29 r_number (0..15)
00D4F0: 09 09 53 65 74 20 70 61 70 65 72 20 74 6F 20 75 ..Set paper to u
00D500: 09 09 20 74 68 65 20 74 77 6F 20 76 61 6C 75 65 .. the two value
00D510: 73 0D 09 09 09 09 09 09 09 09 20 61 72 65 20 64 s......... are d
00D520: 69 66 66 65 72 65 6E 74 0D 09 09 09 09 09 09 09 ifferent........
00D530: 09 20 74 68 65 20 62 6F 72 64 65 72 20 0D 09 09 . the border ...
00D540: 09 09 09 09 09 09 20 63 6F 6C 6F 75 72 20 77 69 ...... colour wi
00D550: 6C 6C 0D 09 09 09 09 09 09 09 09 20 66 6C 61 73 ll......... flas
00D560: 68 20 62 65 74 77 65 65 6E 0D 09 09 09 09 09 09 h between.......
00D570: 09 09 20 74 68 65 20 74 77 6F 2E 0D 0D 09 09 09 .. the two......
00D580: 09 09 09 09 09 20 0D 0D 0D 0D 26 31 45 09 09 52 ..... ....&1E..R
00D590: 53 09 09 4E 6F 6E 65 2E 09 09 09 09 20 4D 6F 76 S..None..... Mov
00D5A0: 65 20 63 75 72 73 6F 72 20 74 6F 0D 09 09 09 09 e cursor to.....
00D5B0: 09 09 09 09 20 74 6F 70 20 6C 65 66 74 20 28 31 .... top left (1
00D5C0: 2C 31 29 0D 09 09 09 09 09 09 09 09 20 70 6F 73 ,1)......... pos
00D5D0: 69 74 69 6F 6E 20 69 6E 0D 09 09 09 09 09 09 09 ition in........
00D5E0: 09 20 63 75 72 72 65 6E 74 20 74 65 78 74 0D 09 . current text..
00D5F0: 09 09 09 09 09 09 09 20 77 69 6E 64 6F 77 2E 0D ....... window..
00D600: 0D 26 31 46 09 09 55 53 09 09 78 5F 74 65 78 74 .&1F..US..x_text
00D610: 5F 63 6F 6F 72 64 69 6E 61 74 65 20 28 31 2E 2E _coordinate (1..
00D620: 38 30 29 2C 20 20 20 20 20 20 20 4D 6F 76 65 20 80), Move
00D630: 63 75 72 73 6F 72 20 74 6F 0D 09 09 09 09 79 5F cursor to.....y_
00D640: 74 65 78 74 5F 63 6F 6F 72 64 69 6E 61 74 65 20 text_coordinate
00D650: 28 31 2E 2E 32 35 29 09 20 28 78 2C 79 29 20 70 (1..25). (x,y) p
00D660: 6F 73 69 74 69 6F 6E 0D 09 09 09 09 09 09 09 09 osition.........
00D670: 20 77 69 74 68 69 6E 20 74 68 65 0D 09 09 09 09 within the.....
00D680: 09 09 09 09 20 63 75 72 72 65 6E 74 6C 79 20 0D .... currently .
00D690: 09 09 09 09 09 09 09 09 20 73 65 6C 65 63 74 65 ........ selecte
00D6A0: 64 20 74 65 78 74 0D 09 09 09 09 09 09 09 09 20 d text.........
00D6B0: 77 69 6E 64 6F 77 2E 1A FF 00 00 00 00 FF FF FF window..........
00D6C0: FF 00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF ................
00D6D0: FF 00 00 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D6E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D6F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D700: 73 65 0D 0D 26 30 46 20 09 09 53 49 09 09 49 6E se..&0F ..SI..In
00D710: 6B 5F 6E 75 6D 62 65 72 20 28 30 2E 2E 31 35 29 k_number (0..15)
00D720: 09 09 53 65 74 20 70 65 6E 20 74 6F 20 75 73 65 ..Set pen to use
00D730: 0D 0D 0D 26 31 30 20 2A 09 09 44 4C 45 09 09 4E ...&10 *..DLE..N
00D740: 6F 6E 65 2E 09 09 09 09 44 65 6C 65 74 65 20 63 one.....Delete c
00D750: 75 72 72 65 6E 74 0D 09 09 09 09 09 09 09 09 63 urrent.........c
00D760: 68 61 72 61 63 74 65 72 2E 0D 0D 26 31 31 20 2A haracter...&11 *
00D770: 09 09 44 43 31 09 09 4E 6F 6E 65 2E 09 09 09 09 ..DC1..None.....
00D780: 43 6C 65 61 72 20 66 72 6F 6D 20 6C 65 66 74 0D Clear from left.
00D790: 09 09 09 09 09 09 09 09 65 64 67 65 20 74 6F 20 ........edge to
00D7A0: 63 68 61 72 0D 09 09 09 09 09 09 09 09 70 6F 73 char.........pos
00D7B0: 69 74 69 6F 6E 2E 0D 0D 26 31 32 20 2A 09 09 44 ition...&12 *..D
00D7C0: 43 32 09 09 4E 6F 6E 65 2E 09 09 09 09 43 6C 65 C2..None.....Cle
00D7D0: 61 72 20 66 72 6F 6D 20 63 68 61 72 0D 09 09 09 ar from char....
00D7E0: 09 09 09 09 09 70 6F 73 69 74 69 6F 6E 20 74 6F .....position to
00D7F0: 0D 09 09 09 09 09 09 09 09 72 69 67 68 74 20 65 .........right e
00D800: 64 67 65 20 6F 66 0D 09 09 09 09 09 09 09 09 77 dge of.........w
00D810: 69 6E 64 6F 77 2E 0D 0D 26 31 33 20 2A 09 09 44 indow...&13 *..D
00D820: 43 33 09 09 4E 6F 6E 65 2E 09 09 09 09 43 6C 65 C3..None.....Cle
00D830: 61 72 20 77 69 6E 64 6F 77 20 75 70 0D 09 09 09 ar window up....
00D840: 09 09 09 09 09 74 6F 20 63 75 72 72 65 6E 74 20 .....to current
00D850: 63 68 61 72 0D 09 09 09 09 09 09 09 09 70 6F 73 char.........pos
00D860: 69 74 69 6F 6E 2E 0D 0D 26 31 34 20 2A 09 09 44 ition...&14 *..D
00D870: 43 34 09 09 4E 6F 6E 65 2E 09 09 09 09 43 6C 65 C4..None.....Cle
00D880: 61 72 20 63 75 72 72 65 6E 74 0D 09 09 09 09 09 ar current......
00D890: 09 09 09 77 69 6E 64 6F 77 20 77 69 74 68 0D 09 ...window with..
00D8A0: 09 09 09 09 09 09 09 63 75 72 72 65 6E 74 20 70 .......current p
00D8B0: 61 70 65 72 0D 09 09 09 09 09 09 09 09 63 6F 6C aper.........col
00D8C0: 6F 75 72 2E 0D 0D 26 31 35 09 09 4E 41 4B 09 09 our...&15..NAK..
00D8D0: 4E 6F 6E 65 2E 09 09 09 09 44 69 73 61 62 6C 65 None.....Disable
00D8E0: 20 70 72 69 6E 74 69 6E 67 0D 09 09 09 09 09 09 printing.......
00D8F0: 09 09 6F 66 20 74 65 78 74 20 61 6E 64 0D 09 09 ..of text and...
00D900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00D9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DB00: 09 09 09 09 09 09 64 69 73 61 62 6C 65 0D 09 09 ......disable...
00DB10: 09 09 09 09 09 09 69 6E 74 65 72 70 72 65 74 69 ......interpreti
00DB20: 6E 67 0D 09 09 09 09 09 09 09 09 6F 74 68 65 72 ng.........other
00DB30: 20 63 6F 6E 74 72 6F 6C 0D 09 09 09 09 09 09 09 control........
00DB40: 09 63 68 61 72 73 2C 20 75 6E 74 69 6C 20 61 6E .chars, until an
00DB50: 0D 09 09 09 09 09 09 09 09 41 43 4B 20 69 73 20 .........ACK is
00DB60: 72 65 63 69 65 76 65 64 2E 0D 0D 26 31 36 09 09 recieved...&16..
00DB70: 53 59 4E 09 09 74 72 61 6E 73 70 61 72 65 6E 74 SYN..transparent
00DB80: 20 6F 6E 2F 6F 66 66 20 28 30 2E 2E 31 29 09 50 on/off (0..1).P
00DB90: 61 72 61 6D 65 74 65 72 20 6D 6F 64 20 32 0D 09 arameter mod 2..
00DBA0: 09 09 09 09 09 09 09 28 30 20 64 69 73 61 62 6C .......(0 disabl
00DBB0: 65 0D 09 09 09 09 09 09 09 09 20 31 20 65 6E 61 e......... 1 ena
00DBC0: 62 6C 65 29 0D 0D 26 31 37 09 09 45 54 42 09 09 ble)..&17..ETB..
00DBD0: 67 72 61 70 68 69 63 73 20 69 6E 6B 20 6D 6F 64 graphics ink mod
00DBE0: 65 20 28 30 2E 2E 33 29 2E 09 20 50 61 72 61 6D e (0..3).. Param
00DBF0: 65 74 65 72 20 6D 6F 64 20 34 0D 0D 09 09 09 09 eter mod 4......
00DC00: 09 09 09 09 30 20 2D 20 6E 6F 72 6D 61 6C 2F 66 ....0 - normal/f
00DC10: 6F 72 63 65 0D 09 09 09 09 09 09 09 09 31 20 2D orce.........1 -
00DC20: 20 58 4F 52 0D 09 09 09 09 09 09 09 09 32 20 2D XOR.........2 -
00DC30: 20 41 4E 44 0D 09 09 09 09 09 09 09 09 33 20 2D AND.........3 -
00DC40: 20 4F 52 0D 0D 26 31 38 09 09 43 41 4E 09 09 4E OR..&18..CAN..N
00DC50: 6F 6E 65 2E 09 09 09 09 20 45 78 63 68 61 6E 67 one..... Exchang
00DC60: 65 20 70 65 6E 0D 09 09 09 09 09 09 09 09 20 61 e pen......... a
00DC70: 6E 64 20 70 61 70 65 72 20 69 6E 6B 73 2E 0D 0D nd paper inks...
00DC80: 0D 26 31 39 09 09 45 4D 09 09 73 79 6D 62 6F 6C .&19..EM..symbol
00DC90: 5F 76 61 6C 75 65 20 28 30 2E 2E 32 35 35 29 2C _value (0..255),
00DCA0: 09 09 20 44 65 66 69 6E 65 20 61 20 75 73 65 72 .. Define a user
00DCB0: 0D 09 09 09 09 73 79 6D 62 6F 6C 5F 6C 69 6E 65 .....symbol_line
00DCC0: 5F 31 20 28 30 2E 2E 32 35 35 29 2C 09 20 20 20 _1 (0..255),.
00DCD0: 20 20 20 20 20 20 64 65 66 69 6E 65 61 62 6C 65 defineable
00DCE0: 0D 09 09 09 09 73 79 6D 62 6F 6C 5F 6C 69 6E 65 .....symbol_line
00DCF0: 5F 32 20 28 30 2E 2E 32 35 35 29 2C 09 09 20 63 _2 (0..255),.. c
00DD00: 1B 40 49 66 20 61 6E 79 6F 6E 65 20 68 61 73 20 .@If anyone has
00DD10: 61 6E 79 20 6D 6F 72 65 20 69 6E 66 6F 72 6D 61 any more informa
00DD20: 74 69 6F 6E 20 61 62 6F 75 74 20 74 68 65 20 43 tion about the C
00DD30: 52 54 43 20 61 6E 64 20 43 52 54 43 20 64 69 66 RTC and CRTC dif
00DD40: 66 65 72 65 6E 63 65 73 0D 70 6C 65 61 73 65 20 ferences.please
00DD50: 63 6F 6E 74 61 63 74 20 6D 65 2E 0D 0D 49 20 68 contact me...I h
00DD60: 61 76 65 20 65 78 70 6C 61 69 6E 65 64 20 74 68 ave explained th
00DD70: 6F 73 65 20 72 65 67 69 73 74 65 72 73 20 20 49 ose registers I
00DD80: 20 20 75 6E 64 65 72 73 74 61 6E 64 20 66 75 6C understand ful
00DD90: 6C 79 2E 20 54 68 65 20 6F 74 68 65 72 73 20 77 ly. The others w
00DDA0: 69 6C 6C 0D 62 65 20 64 65 73 63 72 69 62 65 64 ill.be described
00DDB0: 20 61 73 20 73 6F 6F 6E 20 61 73 20 20 49 20 20 as soon as I
00DDC0: 75 6E 64 65 72 73 74 61 6E 64 20 20 74 68 65 6D understand them
00DDD0: 20 20 66 75 6C 6C 79 20 61 6E 64 2C 20 49 20 63 fully and, I c
00DDE0: 61 6E 20 65 78 70 6C 61 69 6E 0D 65 78 61 63 74 an explain.exact
00DDF0: 6C 79 20 77 68 61 74 20 74 68 65 79 20 64 6F 2E ly what they do.
00DE00: 0D 0D 50 72 6F 67 72 61 6D 6D 69 6E 67 20 74 68 ..Programming th
00DE10: 65 20 43 52 54 43 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D e CRTC.---------
00DE20: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 54 68 65 -----------..The
00DE30: 20 43 52 54 43 20 68 61 73 20 31 38 20 72 65 67 CRTC has 18 reg
00DE40: 69 73 74 65 72 73 20 28 30 2D 31 37 29 20 77 68 isters (0-17) wh
00DE50: 69 63 68 20 61 72 65 20 75 73 65 64 20 74 6F 20 ich are used to
00DE60: 63 6F 6E 74 72 6F 6C 20 74 68 65 20 73 63 72 65 control the scre
00DE70: 65 6E 2C 0D 73 63 72 65 65 6E 20 63 75 72 73 6F en,.screen curso
00DE80: 72 2C 20 61 6E 64 20 74 6F 20 73 65 6E 73 65 20 r, and to sense
00DE90: 61 20 6C 69 67 68 74 20 70 65 6E 2F 67 75 6E 2E a light pen/gun.
00DEA0: 0D 0D 54 6F 20 61 63 63 65 73 73 20 74 68 65 73 ..To access thes
00DEB0: 65 20 72 65 67 69 73 74 65 72 73 2C 20 74 68 65 e registers, the
00DEC0: 20 43 52 54 43 20 20 68 61 73 20 20 33 20 63 6F CRTC has 3 co
00DED0: 6E 74 72 6F 6C 20 70 6F 72 74 73 2E 20 4F 6E 65 ntrol ports. One
00DEE0: 20 70 6F 72 74 20 74 6F 0D 73 65 6C 65 63 74 20 port to.select
00DEF0: 61 20 72 65 67 69 73 74 65 72 2C 20 6F 6E 65 20 a register, one
00DF00: 68 61 72 61 63 74 65 72 2E 0D 09 09 09 09 73 79 haracter......sy
00DF10: 6D 62 6F 6C 5F 6C 69 6E 65 5F 33 20 28 30 2E 2E mbol_line_3 (0..
00DF20: 32 35 35 29 2C 0D 09 09 09 09 73 79 6D 62 6F 6C 255),.....symbol
00DF30: 5F 6C 69 6E 65 5F 34 20 28 30 2E 2E 32 35 35 29 _line_4 (0..255)
00DF40: 2C 09 09 20 28 73 61 6D 65 20 61 73 20 53 59 4D ,.. (same as SYM
00DF50: 42 4F 4C 0D 09 09 09 09 73 79 6D 62 6F 6C 5F 6C BOL.....symbol_l
00DF60: 69 6E 65 5F 35 20 28 30 2E 2E 32 35 35 29 2C 09 ine_5 (0..255),.
00DF70: 09 20 63 6F 6D 6D 61 6E 64 20 69 6E 20 0D 09 09 . command in ...
00DF80: 09 09 73 79 6D 62 6F 6C 5F 6C 69 6E 65 5F 36 20 ..symbol_line_6
00DF90: 28 30 2E 2E 32 35 35 29 2C 09 09 20 42 41 53 49 (0..255),.. BASI
00DFA0: 43 29 2E 0D 09 09 09 09 73 79 6D 62 6F 6C 5F 6C C)......symbol_l
00DFB0: 69 6E 65 5F 37 20 28 30 2E 2E 32 35 35 29 2C 0D ine_7 (0..255),.
00DFC0: 09 09 09 09 73 79 6D 62 6F 6C 5F 6C 69 6E 65 5F ....symbol_line_
00DFD0: 38 20 28 30 2E 2E 32 35 35 29 2E 0D 0D 0D 26 31 8 (0..255)....&1
00DFE0: 41 09 09 53 55 42 09 09 78 31 5F 65 64 67 65 5F A..SUB..x1_edge_
00DFF0: 6F 66 5F 77 69 6E 64 6F 77 20 28 31 2E 2E 38 30 of_window (1..80
00E000: 29 2C 09 20 44 65 66 69 6E 65 20 74 68 65 20 73 ),. Define the s
00E010: 69 7A 65 0D 09 09 09 09 78 32 5F 65 64 67 65 5F ize.....x2_edge_
00E020: 6F 66 5F 77 69 6E 64 6F 77 20 28 31 2E 2E 38 30 of_window (1..80
00E030: 29 2C 09 20 6F 66 20 61 20 77 69 6E 64 6F 77 2E ),. of a window.
00E040: 0D 09 09 09 09 79 31 5F 65 64 67 65 5F 6F 66 5F .....y1_edge_of_
00E050: 77 69 6E 64 6F 77 20 28 31 2E 2E 32 35 29 2C 09 window (1..25),.
00E060: 0D 09 09 09 09 79 32 5F 65 64 67 65 5F 6F 66 5F .....y2_edge_of_
00E070: 77 69 6E 64 6F 77 20 28 31 2E 2E 32 35 29 2E 09 window (1..25)..
00E080: 20 54 68 65 20 6C 65 66 74 20 65 64 67 65 0D 09 The left edge..
00E090: 09 09 09 09 09 09 09 20 69 73 20 74 61 6B 65 6E ....... is taken
00E0A0: 20 74 6F 20 62 65 0D 09 09 09 09 09 09 09 09 20 to be.........
00E0B0: 74 68 65 20 73 6D 61 6C 6C 65 72 0D 09 09 09 09 the smaller.....
00E0C0: 09 09 09 09 20 76 61 6C 75 65 20 6F 66 0D 09 09 .... value of...
00E0D0: 09 09 09 09 09 78 31 5F 65 64 67 65 5F 6F 66 5F .....x1_edge_of_
00E0E0: 77 69 6E 64 6F 77 20 61 6E 64 0D 09 09 09 09 09 window and......
00E0F0: 09 09 78 32 5F 65 64 67 65 5F 6F 66 5F 77 69 6E ..x2_edge_of_win
00E100: 70 6F 72 74 20 74 6F 20 20 77 72 69 74 65 20 20 port to write
00E110: 64 61 74 61 20 20 69 6E 74 6F 20 74 68 65 20 72 data into the r
00E120: 65 67 69 73 74 65 72 20 61 6E 64 20 6F 6E 65 0D egister and one.
00E130: 70 6F 72 74 20 74 6F 20 72 65 61 64 20 64 61 74 port to read dat
00E140: 61 20 66 72 6F 6D 20 74 68 65 20 72 65 67 69 73 a from the regis
00E150: 74 65 72 2E 0D 0D 50 6F 72 74 20 61 64 64 72 65 ter...Port addre
00E160: 73 73 20 20 20 20 52 65 61 64 2F 57 72 69 74 65 ss Read/Write
00E170: 20 20 20 20 20 20 46 75 6E 63 74 69 6F 6E 2F 55 Function/U
00E180: 73 65 0D 0D 26 42 43 78 78 20 20 20 20 20 20 20 se..&BCxx
00E190: 20 20 20 20 57 20 20 20 20 20 20 20 20 20 20 20 W
00E1A0: 20 20 20 20 53 65 6C 65 63 74 20 43 52 54 43 20 Select CRTC
00E1B0: 72 65 67 69 73 74 65 72 0D 26 42 44 78 78 20 20 register.&BDxx
00E1C0: 20 20 20 20 20 20 20 20 20 57 20 20 20 20 20 20 W
00E1D0: 20 20 20 20 20 20 20 20 20 57 72 69 74 65 20 64 Write d
00E1E0: 61 74 61 20 74 6F 20 73 65 6C 65 63 74 65 64 20 ata to selected
00E1F0: 43 52 54 43 20 72 65 67 69 73 74 65 72 0D 26 42 CRTC register.&B
00E200: 46 78 78 20 20 20 20 20 20 20 20 20 20 20 52 20 Fxx R
00E210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 Re
00E220: 61 64 20 64 61 74 61 20 66 72 6F 6D 20 73 65 6C ad data from sel
00E230: 65 63 74 65 64 20 43 52 54 43 20 72 65 67 69 73 ected CRTC regis
00E240: 74 65 72 0D 0D 4E 4F 54 45 3A 20 44 75 65 20 74 ter..NOTE: Due t
00E250: 6F 20 64 69 66 66 65 72 65 6E 63 65 73 20 69 6E o differences in
00E260: 20 43 52 54 43 27 73 2C 20 20 73 6F 6D 65 20 6F CRTC's, some o
00E270: 66 20 74 68 65 20 69 6E 66 6F 72 6D 61 74 69 6F f the informatio
00E280: 6E 20 64 65 73 63 72 69 62 65 64 0D 20 20 20 20 n described.
00E290: 20 20 68 65 72 65 20 6D 61 79 20 6E 6F 74 20 77 here may not w
00E2A0: 6F 72 6B 2E 20 20 57 68 65 72 65 20 20 64 69 66 ork. Where dif
00E2B0: 66 65 72 65 6E 63 65 73 20 20 6F 63 63 75 72 20 ferences occur
00E2C0: 20 28 74 68 61 74 20 61 72 65 20 6B 6E 6F 77 6E (that are known
00E2D0: 29 2C 0D 20 20 20 20 20 20 74 68 65 79 20 77 69 ),. they wi
00E2E0: 6C 6C 20 62 65 20 6C 69 73 74 65 64 2E 0D 0D 20 ll be listed...
00E2F0: 20 20 20 20 20 49 66 20 79 6F 75 20 69 6E 74 65 If you inte
00E300: 64 6F 77 2C 20 61 6E 64 0D 09 09 09 09 09 09 09 dow, and........
00E310: 74 68 65 20 74 6F 70 20 65 64 67 65 20 69 73 20 the top edge is
00E320: 74 61 6B 65 6E 0D 09 09 09 09 09 09 09 74 6F 20 taken........to
00E330: 62 65 20 74 68 65 20 73 6D 61 6C 6C 65 72 20 76 be the smaller v
00E340: 61 6C 75 65 0D 09 09 09 09 09 09 09 6F 66 20 79 alue........of y
00E350: 31 5F 65 64 67 65 5F 6F 66 5F 77 69 6E 64 6F 77 1_edge_of_window
00E360: 20 61 6E 64 0D 09 09 09 09 09 09 09 79 32 5F 65 and........y2_e
00E370: 64 67 65 5F 6F 66 5F 77 69 6E 64 6F 77 2E 0D 09 dge_of_window...
00E380: 09 09 09 0D 0D 0D 26 31 42 09 09 45 53 43 09 09 ......&1B..ESC..
00E390: 09 09 09 09 20 4E 6F 20 65 66 66 65 63 74 2E 0D .... No effect..
00E3A0: 0D 09 09 09 09 09 09 09 09 20 28 55 73 65 64 20 ......... (Used
00E3B0: 62 79 20 61 20 0D 09 09 09 09 09 09 09 09 20 70 by a ......... p
00E3C0: 72 69 6E 74 65 72 20 74 6F 0D 09 09 09 09 09 09 rinter to.......
00E3D0: 09 09 20 61 6C 6C 6F 77 20 74 68 65 20 75 73 65 .. allow the use
00E3E0: 72 0D 09 09 09 09 09 09 09 09 20 74 6F 20 63 68 r......... to ch
00E3F0: 61 6E 67 65 20 66 6F 6E 74 0D 09 09 09 09 09 09 ange font.......
00E400: 09 09 20 73 74 79 6C 65 20 61 6E 64 0D 09 09 09 .. style and....
00E410: 09 09 09 09 09 20 6F 74 68 65 72 20 74 68 69 6E ..... other thin
00E420: 67 73 29 2E 0D 0D 26 31 43 09 09 46 53 09 09 49 gs)...&1C..FS..I
00E430: 6E 6B 5F 6E 75 6D 62 65 72 20 28 30 2E 2E 31 35 nk_number (0..15
00E440: 29 2C 09 09 20 53 65 74 20 61 6E 20 69 6E 6B 20 ),.. Set an ink
00E450: 74 6F 0D 09 09 09 09 43 6F 6C 6F 75 72 5F 31 20 to.....Colour_1
00E460: 28 30 2E 2E 33 31 29 2C 09 09 20 61 20 70 61 69 (0..31),.. a pai
00E470: 72 20 6F 66 20 0D 09 09 09 09 43 6F 6C 6F 75 72 r of .....Colour
00E480: 5F 32 20 28 30 2E 2E 33 31 29 09 09 20 63 6F 6C _2 (0..31).. col
00E490: 6F 75 72 73 2E 0D 0D 0D 0D 26 31 44 09 09 47 53 ours.....&1D..GS
00E4A0: 09 09 43 6F 6C 6F 75 72 5F 31 20 28 30 2E 2E 33 ..Colour_1 (0..3
00E4B0: 31 29 2C 09 09 20 53 65 74 20 62 6F 72 64 65 72 1),.. Set border
00E4C0: 20 74 6F 0D 09 09 09 09 43 6F 6C 6F 75 72 5F 32 to.....Colour_2
00E4D0: 20 28 30 2E 2E 33 31 29 09 09 20 61 20 70 61 69 (0..31).. a pai
00E4E0: 72 20 6F 66 0D 09 09 09 09 09 09 09 09 20 63 6F r of......... co
00E4F0: 6C 6F 75 72 73 2E 20 49 66 0D 09 09 09 09 09 09 lours. If.......
00E500: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00E510: 0C 00 01 00 02 09 4E E5 0C 00 C1 02 00 00 00 02 ......N.........
00E520: 0C 00 C6 02 00 00 00 02 0C 00 C2 02 00 00 00 02 ................
00E530: 0C 00 C7 02 00 00 00 02 0C 00 C3 02 00 00 00 02 ................
00E540: 0C 00 C8 02 00 00 00 02 0C 00 C4 02 00 00 00 02 ................
00E550: 0C 00 C9 02 00 00 00 02 0C 00 C5 02 00 00 00 02 ................
00E560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E600: 6E 64 20 74 6F 20 75 73 65 20 73 70 65 63 69 61 nd to use specia
00E610: 6C 20 65 66 66 65 63 74 73 2C 20 65 6E 73 75 72 l effects, ensur
00E620: 65 20 74 68 65 79 20 77 6F 72 6B 20 77 69 74 68 e they work with
00E630: 20 61 6C 6C 0D 20 20 20 20 20 20 43 52 54 43 20 all. CRTC
00E640: 74 79 70 65 73 2C 20 6F 72 20 79 6F 75 20 73 70 types, or you sp
00E650: 65 63 69 66 79 20 77 68 69 63 68 20 43 52 54 43 ecify which CRTC
00E660: 20 74 79 70 65 73 20 74 68 65 20 65 66 66 65 63 types the effec
00E670: 74 20 77 6F 72 6B 73 20 6F 6E 2E 0D 0D 3D 3D 3D t works on...===
00E680: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00E690: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00E6A0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00E6B0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00E6C0: 3D 3D 3D 0D 0D 0D 53 65 6C 65 63 74 69 6E 67 20 ===...Selecting
00E6D0: 61 20 72 65 67 69 73 74 65 72 0D 2D 2D 2D 2D 2D a register.-----
00E6E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D ---------------.
00E6F0: 0D 41 20 72 65 67 69 73 74 65 72 20 69 73 20 73 .A register is s
00E700: 65 6C 65 63 74 65 64 20 62 79 20 73 65 6E 64 69 elected by sendi
00E710: 6E 67 20 20 74 68 65 20 20 72 65 67 69 73 74 65 ng the registe
00E720: 72 20 6E 75 6D 62 65 72 20 28 69 6E 20 74 68 65 r number (in the
00E730: 20 72 61 6E 67 65 0D 30 2D 31 37 29 20 74 6F 20 range.0-17) to
00E740: 70 6F 72 74 20 26 42 43 78 78 2E 20 54 68 69 73 port &BCxx. This
00E750: 20 72 65 67 69 73 74 65 72 20 20 77 69 6C 6C 20 register will
00E760: 72 65 6D 61 69 6E 20 73 65 6C 65 63 74 65 64 20 remain selected
00E770: 75 6E 74 69 6C 20 61 6E 6F 74 68 65 72 0D 69 73 until another.is
00E780: 20 73 65 6C 65 63 74 65 64 2E 20 54 68 69 73 20 selected. This
00E790: 6D 65 61 6E 73 20 79 6F 75 20 63 61 6E 20 77 72 means you can wr
00E7A0: 69 74 65 20 74 6F 20 74 68 65 20 73 61 6D 65 20 ite to the same
00E7B0: 72 65 67 69 73 74 65 72 20 6D 61 6E 79 20 74 69 register many ti
00E7C0: 6D 65 73 2C 0D 77 69 74 68 6F 75 74 20 68 61 76 mes,.without hav
00E7D0: 69 6E 67 20 74 6F 20 72 65 2D 73 65 6C 65 63 74 ing to re-select
00E7E0: 20 74 68 65 20 72 65 67 69 73 74 65 72 20 65 61 the register ea
00E7F0: 63 68 20 74 69 6D 65 2E 0D 0D 28 53 65 65 20 74 ch time...(See t
00E800: 20 20 20 58 20 20 20 20 20 20 20 58 0D 2A 31 35 X X.*15
00E810: 20 20 20 20 20 20 20 20 20 20 20 20 20 52 2F 57 R/W
00E820: 20 20 20 20 20 43 75 72 73 6F 72 20 28 4C 6F 77 Cursor (Low
00E830: 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 58 ) X
00E840: 20 20 20 20 20 58 20 20 20 20 20 20 20 58 0D 31 X X.1
00E850: 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 6 R
00E860: 20 20 20 20 20 20 20 4C 69 67 68 74 20 50 65 6E Light Pen
00E870: 20 28 48 69 67 68 29 20 20 20 20 20 20 20 20 20 (High)
00E880: 20 58 20 20 20 20 20 58 20 20 20 20 20 20 20 58 X X X
00E890: 0D 31 37 20 20 20 20 20 20 20 20 20 20 20 20 20 .17
00E8A0: 20 52 20 20 20 20 20 20 20 4C 69 67 68 74 20 50 R Light P
00E8B0: 65 6E 20 28 4C 6F 77 29 20 20 20 20 20 20 20 20 en (Low)
00E8C0: 20 20 20 58 20 20 20 20 20 58 20 20 20 20 20 20 X X
00E8D0: 20 58 0D 0D 2A 20 2D 20 54 68 65 73 65 20 72 65 X..* - These re
00E8E0: 67 69 73 74 65 72 73 20 61 72 65 20 6E 6F 74 20 gisters are not
00E8F0: 75 73 65 64 20 6F 6E 20 74 68 65 20 43 50 43 2E used on the CPC.
00E900: 0D 0D 52 20 2D 20 52 65 61 64 20 6F 6E 6C 79 0D ..R - Read only.
00E910: 57 20 2D 20 57 72 69 74 65 20 6F 6E 6C 79 0D 0D W - Write only..
00E920: 52 2F 57 20 2D 20 42 6F 74 68 20 52 65 61 64 20 R/W - Both Read
00E930: 61 6E 64 20 57 72 69 74 65 0D 0D 58 20 69 6E 64 and Write..X ind
00E940: 69 63 61 74 65 73 20 74 68 65 20 20 76 61 6C 75 icates the valu
00E950: 65 73 20 20 6F 66 20 20 74 68 65 73 65 20 20 72 es of these r
00E960: 65 67 69 73 74 65 72 73 20 20 6D 61 79 20 20 76 egisters may v
00E970: 61 72 79 20 64 75 72 69 6E 67 20 6E 6F 72 6D 61 ary during norma
00E980: 6C 0D 6F 70 65 72 61 74 69 6F 6E 2E 0D 0D 4E 4F l.operation...NO
00E990: 54 45 3A 0D 0D 45 78 70 65 72 69 6D 65 6E 74 69 TE:..Experimenti
00E9A0: 6E 67 20 77 69 74 68 20 74 68 65 20 72 65 67 69 ng with the regi
00E9B0: 73 74 65 72 73 20 63 61 6E 20 20 70 72 6F 64 75 sters can produ
00E9C0: 63 65 20 69 6E 74 65 72 65 73 74 69 6E 67 20 65 ce interesting e
00E9D0: 66 66 65 63 74 73 2E 20 59 6F 75 0D 77 69 6C 6C ffects. You.will
00E9E0: 20 6E 6F 74 20 64 6F 20 61 6E 79 20 68 61 72 6D not do any harm
00E9F0: 20 62 79 20 64 6F 69 6E 67 20 20 74 68 69 73 2E by doing this.
00EA00: 68 65 20 70 72 6F 67 72 61 6D 6D 69 6E 67 20 65 he programming e
00EA10: 78 61 6D 70 6C 65 29 0D 0D 3D 3D 3D 3D 3D 3D 3D xample)..=======
00EA20: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EA30: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EA40: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EA50: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D ===============.
00EA60: 0D 0D 57 72 69 74 69 6E 67 20 74 6F 20 61 20 72 ..Writing to a r
00EA70: 65 67 69 73 74 65 72 0D 2D 2D 2D 2D 2D 2D 2D 2D egister.--------
00EA80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 4F -------------..O
00EA90: 6E 63 65 20 61 20 72 65 67 69 73 74 65 72 20 68 nce a register h
00EAA0: 61 73 20 62 65 65 6E 20 73 65 6C 65 63 74 65 64 as been selected
00EAB0: 20 75 73 69 6E 67 20 74 68 65 20 6D 65 74 68 6F using the metho
00EAC0: 64 20 61 62 6F 76 65 2C 20 74 68 65 20 75 73 65 d above, the use
00EAD0: 72 20 63 61 6E 0D 77 72 69 74 65 20 64 61 74 61 r can.write data
00EAE0: 20 69 6E 74 6F 20 69 74 2E 20 44 61 74 61 20 63 into it. Data c
00EAF0: 61 6E 20 20 62 65 20 20 77 72 69 74 74 65 6E 20 an be written
00EB00: 69 6E 74 6F 20 74 68 65 20 72 65 67 69 73 74 65 into the registe
00EB10: 72 20 62 79 20 73 65 6E 64 69 6E 67 0D 74 68 65 r by sending.the
00EB20: 20 64 61 74 61 20 74 6F 20 70 6F 72 74 20 26 42 data to port &B
00EB30: 44 78 78 2E 0D 0D 49 66 20 74 68 65 20 73 65 6C Dxx...If the sel
00EB40: 65 63 74 65 64 20 20 72 65 67 69 73 74 65 72 20 ected register
00EB50: 20 63 61 6E 6E 6F 74 20 20 62 65 20 20 77 72 69 cannot be wri
00EB60: 74 74 65 6E 20 20 74 6F 2C 20 20 74 68 65 72 65 tten to, there
00EB70: 20 20 77 69 6C 6C 20 62 65 20 6E 6F 0D 65 66 66 will be no.eff
00EB80: 65 63 74 2E 0D 0D 28 53 65 65 20 74 68 65 20 70 ect...(See the p
00EB90: 72 6F 67 72 61 6D 6D 69 6E 67 20 65 78 61 6D 70 rogramming examp
00EBA0: 6C 65 29 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D le)..===========
00EBB0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EBC0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EBD0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EBE0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D 52 65 ===========...Re
00EBF0: 61 64 69 6E 67 20 61 20 72 65 67 69 73 74 65 72 ading a register
00EC00: 20 20 4A 75 73 74 20 73 77 69 74 63 68 20 74 68 Just switch th
00EC10: 65 20 63 6F 6D 70 75 74 65 72 20 6F 66 66 20 61 e computer off a
00EC20: 6E 64 0D 74 68 65 6E 20 6F 6E 2C 20 61 6E 64 20 nd.then on, and
00EC30: 65 76 65 72 79 74 68 69 6E 67 20 77 69 6C 6C 20 everything will
00EC40: 62 65 20 6F 6B 20 61 67 61 69 6E 2E 0D 3D 3D 3D be ok again..===
00EC50: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EC60: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EC70: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EC80: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EC90: 3D 3D 3D 0D 0D 52 65 67 69 73 74 65 72 20 75 73 ===..Register us
00ECA0: 61 67 65 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D age.------------
00ECB0: 2D 2D 0D 0D 43 65 72 74 61 69 6E 20 72 65 67 69 --..Certain regi
00ECC0: 73 74 65 72 73 20 63 61 6E 20 62 65 20 75 73 65 sters can be use
00ECD0: 64 20 66 6F 72 20 76 61 72 69 6F 75 73 20 74 68 d for various th
00ECE0: 69 6E 67 73 2E 20 48 65 72 65 20 69 73 20 61 20 ings. Here is a
00ECF0: 6C 69 73 74 20 6F 66 0D 72 65 67 69 73 74 65 72 list of.register
00ED00: 73 20 61 6E 64 20 74 68 65 69 72 20 63 6F 6D 6D s and their comm
00ED10: 6F 6E 20 75 73 61 67 65 2E 0D 0D 0D 52 65 67 69 on usage....Regi
00ED20: 73 74 65 72 20 30 3A 20 20 20 20 20 48 6F 72 69 ster 0: Hori
00ED30: 7A 6F 6E 74 61 6C 20 73 70 6C 69 74 74 69 6E 67 zontal splitting
00ED40: 20 28 63 68 61 6E 67 69 6E 67 20 6F 66 20 73 63 (changing of sc
00ED50: 72 65 65 6E 20 61 64 64 72 65 73 73 2F 6D 6F 64 reen address/mod
00ED60: 65 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.
00ED70: 20 20 61 63 63 72 6F 73 73 20 6C 69 6E 65 29 2E accross line).
00ED80: 0D 52 65 67 69 73 74 65 72 20 31 3A 20 20 20 20 .Register 1:
00ED90: 20 57 69 64 74 68 20 6F 66 20 73 63 72 65 65 6E Width of screen
00EDA0: 0D 52 65 67 69 73 74 65 72 20 32 3A 20 20 20 20 .Register 2:
00EDB0: 20 61 29 20 48 6F 72 69 7A 6F 6E 74 61 6C 20 70 a) Horizontal p
00EDC0: 6F 73 69 74 69 6F 6E 69 6E 67 20 6F 66 20 73 63 ositioning of sc
00EDD0: 72 65 65 6E 0D 20 20 20 20 20 20 20 20 20 20 20 reen.
00EDE0: 20 20 20 20 20 62 29 20 53 63 72 65 65 6E 20 64 b) Screen d
00EDF0: 69 73 74 6F 72 74 69 6E 67 20 28 77 68 65 6E 20 istorting (when
00EE00: 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D .---------------
00EE10: 2D 2D 2D 0D 0D 4F 6E 63 65 20 61 20 72 65 67 69 ---..Once a regi
00EE20: 73 74 65 72 20 68 61 73 20 62 65 65 6E 20 73 65 ster has been se
00EE30: 6C 65 63 74 65 64 2C 20 20 69 74 20 20 63 61 6E lected, it can
00EE40: 20 20 62 65 20 72 65 61 64 20 66 72 6F 6D 2E 20 be read from.
00EE50: 54 68 65 20 64 61 74 61 20 69 6E 0D 74 68 65 20 The data in.the
00EE60: 72 65 67 69 73 74 65 72 20 63 61 6E 20 62 65 20 register can be
00EE70: 72 65 61 64 20 66 72 6F 6D 20 70 6F 72 74 20 26 read from port &
00EE80: 42 46 78 78 2E 0D 0D 49 66 20 74 68 65 20 72 65 BFxx...If the re
00EE90: 67 69 73 74 65 72 20 63 61 6E 6E 6F 74 20 62 65 gister cannot be
00EEA0: 20 72 65 61 64 2C 20 61 20 76 61 6C 75 65 20 6F read, a value o
00EEB0: 66 20 26 46 46 20 77 69 6C 6C 20 62 65 20 72 65 f &FF will be re
00EEC0: 74 75 72 6E 65 64 2E 0D 0D 28 53 65 65 20 74 68 turned...(See th
00EED0: 65 20 70 72 6F 67 72 61 6D 6D 69 6E 67 20 65 78 e programming ex
00EEE0: 61 6D 70 6C 65 29 0D 0D 4E 4F 54 45 3A 20 4F 6E ample)..NOTE: On
00EEF0: 20 63 65 72 74 61 69 6E 20 43 52 54 43 20 74 79 certain CRTC ty
00EF00: 70 65 73 20 74 68 69 73 20 69 73 20 6E 6F 74 20 pes this is not
00EF10: 70 6F 73 73 69 62 6C 65 2E 0D 0D 3D 3D 3D 3D 3D possible...=====
00EF20: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EF30: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EF40: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EF50: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00EF60: 3D 0D 0D 0D 52 65 67 69 73 74 65 72 20 46 75 6E =...Register Fun
00EF70: 63 74 69 6F 6E 73 20 2D 20 61 6E 64 20 6E 6F 72 ctions - and nor
00EF80: 6D 61 6C 20 76 61 6C 75 65 73 0D 2D 2D 2D 2D 2D mal values.-----
00EF90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 52 -------------..R
00EFA0: 65 67 69 73 74 65 72 20 20 20 20 20 20 20 20 52 egister R
00EFB0: 65 61 64 2F 20 20 20 52 65 67 69 73 74 65 72 20 ead/ Register
00EFC0: 54 69 74 6C 65 20 20 20 20 20 20 20 20 20 20 20 Title
00EFD0: 20 20 20 4E 6F 72 6D 61 6C 20 76 61 6C 75 65 73 Normal values
00EFE0: 0D 4E 75 6D 62 65 72 20 20 20 20 20 20 20 20 20 .Number
00EFF0: 20 57 72 69 74 65 20 20 20 20 20 20 20 20 20 20 Write
00F000: 63 68 61 6E 67 65 64 20 61 73 20 62 65 61 6D 20 changed as beam
00F010: 73 63 61 6E 73 20 73 63 72 65 65 6E 29 0D 52 65 scans screen).Re
00F020: 67 69 73 74 65 72 20 33 3A 20 20 20 20 20 53 6D gister 3: Sm
00F030: 6F 6F 74 68 20 6C 65 66 74 2D 72 69 67 68 74 20 ooth left-right
00F040: 68 61 72 64 77 61 72 65 20 73 63 72 6F 6C 6C 0D hardware scroll.
00F050: 52 65 67 69 73 74 65 72 20 34 3A 20 20 20 20 20 Register 4:
00F060: 52 75 70 74 75 72 65 2F 56 65 72 74 69 63 61 6C Rupture/Vertical
00F070: 20 53 70 6C 69 74 74 69 6E 67 20 28 61 6C 6C 6F Splitting (allo
00F080: 77 69 6E 67 20 73 63 72 65 65 6E 20 61 64 64 72 wing screen addr
00F090: 65 73 73 20 74 6F 0D 20 20 20 20 20 20 20 20 20 ess to.
00F0A0: 20 20 20 20 20 20 20 62 65 20 63 68 61 6E 67 65 be change
00F0B0: 64 20 6F 6E 20 61 6E 79 20 6C 69 6E 65 0D 52 65 d on any line.Re
00F0C0: 67 69 73 74 65 72 20 35 3A 20 20 20 20 20 56 65 gister 5: Ve
00F0D0: 72 79 20 73 6D 6F 6F 74 68 20 76 65 72 74 69 63 ry smooth vertic
00F0E0: 61 6C 20 73 63 72 6F 6C 6C 69 6E 67 0D 52 65 67 al scrolling.Reg
00F0F0: 69 73 74 65 72 20 36 3A 20 20 20 20 20 48 65 69 ister 6: Hei
00F100: 67 68 74 20 6F 66 20 73 63 72 65 65 6E 0D 52 65 ght of screen.Re
00F110: 67 69 73 74 65 72 20 37 3A 20 20 20 20 20 53 65 gister 7: Se
00F120: 74 74 69 6E 67 20 75 70 20 74 68 65 20 72 75 70 tting up the rup
00F130: 74 75 72 65 2F 73 70 6C 69 74 74 69 6E 67 20 61 ture/splitting a
00F140: 6E 64 20 76 65 72 74 69 63 61 6C 20 70 6F 73 69 nd vertical posi
00F150: 74 69 6F 6E 0D 20 20 20 20 20 20 20 20 20 20 20 tion.
00F160: 20 20 20 20 20 6F 66 20 73 63 72 65 65 6E 0D 52 of screen.R
00F170: 65 67 69 73 74 65 72 20 38 3A 20 20 20 20 20 2D egister 8: -
00F180: 0D 52 65 67 69 73 74 65 72 20 39 3A 20 20 20 20 .Register 9:
00F190: 20 2D 0D 52 65 67 69 73 74 65 72 20 31 30 3A 20 -.Register 10:
00F1A0: 20 20 20 4E 4F 54 20 55 53 45 44 0D 52 65 67 69 NOT USED.Regi
00F1B0: 73 74 65 72 20 31 31 3A 20 20 20 20 4E 4F 54 20 ster 11: NOT
00F1C0: 55 53 45 44 0D 52 65 67 69 73 74 65 72 20 31 32 USED.Register 12
00F1D0: 3A 20 20 20 20 53 65 74 74 69 6E 67 20 73 63 72 : Setting scr
00F1E0: 65 65 6E 20 61 64 64 72 65 73 73 20 2B 20 4F 76 een address + Ov
00F1F0: 65 72 73 63 61 6E 20 2B 20 48 61 72 64 77 61 72 erscan + Hardwar
00F200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00F210: 20 20 20 50 41 4C 20 20 20 53 45 43 41 4D 20 20 PAL SECAM
00F220: 20 4E 54 53 43 0D 0D 30 20 20 20 20 20 20 20 20 NTSC..0
00F230: 20 20 20 20 20 20 20 57 20 20 20 20 20 20 20 48 W H
00F240: 6F 72 69 7A 6F 6E 74 61 6C 20 54 6F 74 61 6C 20 orizontal Total
00F250: 20 20 20 20 20 20 20 20 20 36 33 20 20 20 20 36 63 6
00F260: 33 20 20 20 20 20 20 36 33 0D 31 20 20 20 20 20 3 63.1
00F270: 20 20 20 20 20 20 20 20 20 20 57 20 20 20 20 20 W
00F280: 20 20 48 6F 72 69 7A 6F 6E 74 61 6C 20 44 69 73 Horizontal Dis
00F290: 70 6C 61 79 65 64 20 20 20 20 20 20 34 30 20 20 played 40
00F2A0: 20 20 34 30 20 20 20 20 20 20 34 30 0D 32 20 20 40 40.2
00F2B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 57 20 20 W
00F2C0: 20 20 20 20 20 48 6F 72 69 7A 6F 6E 74 61 6C 20 Horizontal
00F2D0: 53 79 6E 63 20 50 6F 73 69 74 69 6F 6E 20 20 34 Sync Position 4
00F2E0: 36 20 20 20 20 34 36 20 20 20 20 20 20 34 36 0D 6 46 46.
00F2F0: 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3
00F300: 57 20 20 20 20 20 20 20 53 79 6E 63 20 57 69 64 W Sync Wid
00F310: 74 68 20 20 20 20 20 20 20 20 20 20 20 20 20 20 th
00F320: 20 20 26 38 45 20 20 20 26 38 45 20 20 20 20 20 &8E &8E
00F330: 26 38 45 0D 34 20 20 20 20 20 20 20 20 20 20 20 &8E.4
00F340: 20 20 20 20 57 20 20 20 20 20 20 20 56 65 72 74 W Vert
00F350: 69 63 61 6C 20 54 6F 74 61 6C 20 20 20 20 20 20 ical Total
00F360: 20 20 20 20 20 20 33 38 20 20 20 20 33 38 20 20 38 38
00F370: 20 20 20 20 33 31 0D 35 20 20 20 20 20 20 20 20 31.5
00F380: 20 20 20 20 20 20 20 57 20 20 20 20 20 20 20 56 W V
00F390: 65 72 74 69 63 61 6C 20 54 6F 74 61 6C 20 41 64 ertical Total Ad
00F3A0: 6A 75 73 74 20 20 20 20 20 30 20 20 20 20 20 30 just 0 0
00F3B0: 20 20 20 20 20 20 20 36 0D 36 20 20 20 20 20 20 6.6
00F3C0: 20 20 20 20 20 20 20 20 20 57 20 20 20 20 20 20 W
00F3D0: 20 56 65 72 74 69 63 61 6C 20 44 69 73 70 6C 61 Vertical Displa
00F3E0: 79 65 64 20 20 20 20 20 20 20 20 32 35 20 20 20 yed 25
00F3F0: 20 32 35 20 20 20 20 20 20 32 35 0D 37 20 20 20 25 25.7
00F400: 65 20 73 63 72 6F 6C 6C 69 6E 67 0D 52 65 67 69 e scrolling.Regi
00F410: 73 74 65 72 20 31 33 3A 20 20 20 20 48 61 72 64 ster 13: Hard
00F420: 77 61 72 65 20 73 63 72 6F 6C 6C 69 6E 67 0D 52 ware scrolling.R
00F430: 65 67 69 73 74 65 72 20 31 34 3A 20 20 20 20 4E egister 14: N
00F440: 4F 54 20 55 53 45 44 0D 52 65 67 69 73 74 65 72 OT USED.Register
00F450: 20 31 35 3A 20 20 20 20 4E 4F 54 20 55 53 45 44 15: NOT USED
00F460: 0D 52 65 67 69 73 74 65 72 20 31 36 3A 20 20 20 .Register 16:
00F470: 20 4C 69 67 68 74 20 70 65 6E 20 61 64 64 72 65 Light pen addre
00F480: 73 73 0D 52 65 67 69 73 74 65 72 20 31 37 3A 20 ss.Register 17:
00F490: 20 20 20 4C 69 67 68 74 20 70 65 6E 20 61 64 64 Light pen add
00F4A0: 72 65 73 73 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ress..==========
00F4B0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00F4C0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00F4D0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00F4E0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 52 =============..R
00F4F0: 65 67 69 73 74 65 72 20 31 20 20 2D 20 48 6F 72 egister 1 - Hor
00F500: 69 7A 6F 6E 74 61 6C 20 44 69 73 70 6C 61 79 65 izontal Displaye
00F510: 64 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D d.--------------
00F520: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00F530: 2D 2D 2D 2D 0D 0D 54 68 69 73 20 72 65 67 69 73 ----..This regis
00F540: 74 65 72 20 69 73 20 75 73 65 64 20 74 6F 20 64 ter is used to d
00F550: 65 66 69 6E 65 20 74 68 65 20 20 77 69 64 74 68 efine the width
00F560: 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E 2E 20 of the screen.
00F570: 54 68 65 20 77 69 64 74 68 20 69 73 0D 63 61 6C The width is.cal
00F580: 63 75 6C 61 74 65 64 20 69 6E 20 6D 6F 64 65 20 culated in mode
00F590: 31 20 63 68 61 72 61 63 74 65 72 20 73 69 7A 65 1 character size
00F5A0: 64 20 73 74 65 70 73 2E 0D 0D 69 2E 65 2E 20 74 d steps...i.e. t
00F5B0: 68 65 20 6E 75 6D 62 65 72 20 6F 66 20 63 68 61 he number of cha
00F5C0: 72 61 63 74 65 72 73 20 20 61 63 63 72 6F 73 73 racters accross
00F5D0: 20 20 74 68 65 20 20 73 63 72 65 65 6E 20 20 69 the screen i
00F5E0: 6E 20 6D 6F 64 65 20 31 2C 20 69 73 20 74 68 65 n mode 1, is the
00F5F0: 0D 20 20 20 20 20 73 61 6D 65 20 61 73 20 74 68 . same as th
00F600: 20 20 20 20 20 20 20 20 20 20 20 20 57 20 20 20 W
00F610: 20 20 20 20 56 65 72 74 69 63 61 6C 20 53 79 6E Vertical Syn
00F620: 63 20 50 6F 73 69 74 69 6F 6E 20 20 20 20 33 30 c Position 30
00F630: 20 20 20 20 33 30 20 20 20 20 20 20 32 37 0D 38 30 27.8
00F640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 W
00F650: 20 20 20 20 20 20 20 49 6E 74 65 72 6C 61 63 65 Interlace
00F660: 20 61 6E 64 20 53 6B 65 77 20 20 20 20 20 20 20 and Skew
00F670: 20 30 20 20 20 20 20 30 20 20 20 20 20 20 20 30 0 0 0
00F680: 0D 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .9
00F690: 20 57 20 20 20 20 20 20 20 4D 61 78 69 6D 75 6D W Maximum
00F6A0: 20 52 61 73 74 65 72 20 41 64 64 72 65 73 73 20 Raster Address
00F6B0: 20 20 20 37 20 20 20 20 20 37 20 20 20 20 20 20 7 7
00F6C0: 20 37 0D 2A 31 30 20 20 20 20 20 20 20 20 20 20 7.*10
00F6D0: 20 20 20 57 20 20 20 20 20 20 20 43 75 72 73 6F W Curso
00F6E0: 72 20 53 74 61 72 74 20 52 61 73 74 65 72 20 20 r Start Raster
00F6F0: 20 20 20 20 20 58 20 20 20 20 20 58 20 20 20 20 X X
00F700: 20 20 20 58 0D 2A 31 31 20 20 20 20 20 20 20 20 X.*11
00F710: 20 20 20 20 20 57 20 20 20 20 20 20 20 43 75 72 W Cur
00F720: 73 6F 72 20 45 6E 64 20 52 61 73 74 65 72 20 20 sor End Raster
00F730: 20 20 20 20 20 20 20 58 20 20 20 20 20 58 20 20 X X
00F740: 20 20 20 20 20 58 0D 31 32 20 20 20 20 20 20 20 X.12
00F750: 20 20 20 20 20 20 20 52 2F 57 20 20 20 20 20 53 R/W S
00F760: 74 61 72 74 20 41 64 64 72 65 73 73 20 28 48 69 tart Address (Hi
00F770: 67 68 29 20 20 20 20 20 20 58 20 20 20 20 20 58 gh) X X
00F780: 20 20 20 20 20 20 20 58 0D 31 33 20 20 20 20 20 X.13
00F790: 20 20 20 20 20 20 20 20 20 52 2F 57 20 20 20 20 R/W
00F7A0: 20 53 74 61 72 74 20 41 64 64 72 65 73 73 20 28 Start Address (
00F7B0: 4C 6F 77 29 20 20 20 20 20 20 20 58 20 20 20 20 Low) X
00F7C0: 20 58 20 20 20 20 20 20 20 58 0D 2A 31 34 20 20 X X.*14
00F7D0: 20 20 20 20 20 20 20 20 20 20 20 52 2F 57 20 20 R/W
00F7E0: 20 20 20 43 75 72 73 6F 72 20 28 48 69 67 68 29 Cursor (High)
00F7F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 58 20 20 X
00F800: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00F810: 0D 00 01 00 02 09 4E E5 0D 00 C1 02 00 00 00 02 ......N.........
00F820: 0D 00 C6 02 00 00 00 02 0D 00 C2 02 00 00 00 02 ................
00F830: 0D 00 C7 02 00 00 00 02 0D 00 C3 02 00 00 00 02 ................
00F840: 0D 00 C8 02 00 00 00 02 0D 00 C4 02 00 00 00 02 ................
00F850: 0D 00 C9 02 00 00 00 02 0D 00 C5 02 00 00 00 02 ................
00F860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F900: 65 20 6E 75 6D 62 65 72 20 70 72 6F 67 72 61 6D e number program
00F910: 6D 65 64 20 69 6E 74 6F 20 74 68 69 73 20 72 65 med into this re
00F920: 67 69 73 74 65 72 2E 0D 0D 54 68 65 72 65 66 6F gister...Therefo
00F930: 72 65 2C 20 74 68 65 20 77 69 64 74 68 20 6F 66 re, the width of
00F940: 20 74 68 65 20 73 63 72 65 65 6E 20 20 6D 61 79 the screen may
00F950: 20 20 62 65 20 69 6E 63 72 65 61 73 65 64 20 6F be increased o
00F960: 72 20 64 65 63 72 65 61 73 65 64 2C 20 74 6F 0D r decreased, to.
00F970: 67 65 74 20 74 68 65 20 64 65 73 69 72 65 64 20 get the desired
00F980: 73 63 72 65 65 6E 20 77 69 64 74 68 2E 0D 0D 49 screen width...I
00F990: 66 20 74 68 65 20 76 61 6C 75 65 20 70 72 6F 67 f the value prog
00F9A0: 72 61 6D 6D 65 64 20 69 73 20 20 69 6E 63 72 65 rammed is incre
00F9B0: 61 73 65 64 2C 20 20 74 68 65 20 20 77 69 64 74 ased, the widt
00F9C0: 68 20 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E h of the screen
00F9D0: 20 77 69 6C 6C 0D 69 6E 63 72 65 61 73 65 2C 20 will.increase,
00F9E0: 69 66 20 74 68 65 20 20 76 61 6C 75 65 20 20 70 if the value p
00F9F0: 72 6F 67 72 61 6D 6D 65 64 20 20 69 73 20 20 64 rogrammed is d
00FA00: 65 63 72 65 61 73 65 64 2C 20 20 74 68 65 20 20 ecreased, the
00FA10: 77 69 64 74 68 20 6F 66 20 74 68 65 0D 73 63 72 width of the.scr
00FA20: 65 65 6E 20 77 69 6C 6C 20 64 65 63 72 65 61 73 een will decreas
00FA30: 65 2E 0D 0D 54 68 65 20 6E 6F 72 6D 61 6C 20 77 e...The normal w
00FA40: 69 64 74 68 20 6F 66 20 74 68 65 20 20 73 63 72 idth of the scr
00FA50: 65 65 6E 20 20 69 73 20 20 34 30 20 20 63 68 61 een is 40 cha
00FA60: 72 61 63 74 65 72 73 2E 20 20 54 68 65 20 77 69 racters. The wi
00FA70: 64 74 68 20 6F 66 20 74 68 65 0D 6D 6F 6E 69 74 dth of the.monit
00FA80: 6F 72 20 73 63 72 65 65 6E 20 69 73 20 35 30 20 or screen is 50
00FA90: 63 68 61 72 61 63 74 65 72 73 2E 0D 0D 28 54 68 characters...(Th
00FAA0: 65 20 6E 75 6D 62 65 72 20 6F 66 20 62 79 74 65 e number of byte
00FAB0: 73 20 64 69 73 70 6C 61 79 65 64 20 6F 6E 20 20 s displayed on
00FAC0: 61 20 6C 69 6E 65 3D 76 61 6C 75 65 20 70 72 6F a line=value pro
00FAD0: 67 72 61 6D 6D 65 64 20 74 6F 20 72 65 67 69 73 grammed to regis
00FAE0: 74 65 72 0D 31 2A 32 29 0D 0D 3D 3D 3D 3D 3D 3D ter.1*2)..======
00FAF0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00FB00: 75 65 20 69 73 20 64 65 63 72 65 61 73 65 64 2C ue is decreased,
00FB10: 20 74 68 65 20 73 63 72 65 65 6E 20 77 69 6C 6C the screen will
00FB20: 20 73 68 69 66 74 20 64 6F 77 6E 77 61 72 64 73 shift downwards
00FB30: 2E 0D 0D 54 68 65 72 65 66 6F 72 65 2C 20 75 73 ...Therefore, us
00FB40: 69 6E 67 20 74 68 69 73 20 20 72 65 67 69 73 74 ing this regist
00FB50: 65 72 20 20 61 6E 64 20 20 72 65 67 69 73 74 65 er and registe
00FB60: 72 20 20 32 2C 20 20 69 74 20 20 69 73 20 70 6F r 2, it is po
00FB70: 73 73 69 62 6C 65 20 74 6F 0D 70 6F 73 69 74 69 ssible to.positi
00FB80: 6F 6E 20 74 68 65 20 70 69 63 74 75 72 65 20 74 on the picture t
00FB90: 6F 20 61 6E 79 20 70 6F 73 69 74 69 6F 6E 20 6F o any position o
00FBA0: 6E 20 74 68 65 20 6D 6F 6E 69 74 6F 72 20 73 63 n the monitor sc
00FBB0: 72 65 65 6E 2E 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D reen...=========
00FBC0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00FBD0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00FBE0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00FBF0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 52 =============..R
00FC00: 65 67 69 73 74 65 72 20 31 32 20 2D 20 53 74 61 egister 12 - Sta
00FC10: 72 74 20 41 64 64 72 65 73 73 20 28 48 69 67 68 rt Address (High
00FC20: 29 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ).--------------
00FC30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00FC40: 2D 2D 2D 2D 0D 0D 54 68 69 73 20 72 65 67 69 73 ----..This regis
00FC50: 74 65 72 20 73 70 65 63 69 66 79 73 20 77 68 65 ter specifys whe
00FC60: 72 65 20 74 68 65 20 73 63 72 65 65 6E 20 20 77 re the screen w
00FC70: 69 6C 6C 20 20 73 74 61 72 74 20 69 6E 20 6D 65 ill start in me
00FC80: 6D 6F 72 79 20 61 6E 64 20 68 6F 77 0D 6D 75 63 mory and how.muc
00FC90: 68 20 6D 65 6D 6F 72 79 20 69 73 20 20 74 6F 20 h memory is to
00FCA0: 20 62 65 20 20 75 73 65 64 20 20 74 6F 20 20 64 be used to d
00FCB0: 69 73 70 6C 61 79 20 20 74 68 65 20 20 73 63 72 isplay the scr
00FCC0: 65 65 6E 2E 20 20 54 6F 67 65 74 68 65 72 20 77 een. Together w
00FCD0: 69 74 68 0D 72 65 67 69 73 74 65 72 20 31 33 2C ith.register 13,
00FCE0: 20 69 74 20 61 6C 6C 6F 77 73 20 74 68 65 20 75 it allows the u
00FCF0: 73 65 72 20 74 6F 20 73 63 72 6F 6C 6C 20 74 68 ser to scroll th
00FD00: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00FD10: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00FD20: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00FD30: 0D 0D 52 65 67 69 73 74 65 72 20 32 20 20 2D 20 ..Register 2 -
00FD40: 48 6F 72 69 7A 6F 6E 74 61 6C 20 53 79 6E 63 20 Horizontal Sync
00FD50: 50 6F 73 69 74 69 6F 6E 0D 2D 2D 2D 2D 2D 2D 2D Position.-------
00FD60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
00FD70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D --------------..
00FD80: 54 68 69 73 20 72 65 67 69 73 74 65 72 20 64 65 This register de
00FD90: 66 69 6E 65 73 20 74 68 65 20 68 6F 72 69 7A 6F fines the horizo
00FDA0: 6E 74 61 6C 20 70 6F 73 69 74 69 6F 6E 20 6F 66 ntal position of
00FDB0: 20 74 68 65 20 73 63 72 65 65 6E 20 77 69 74 68 the screen with
00FDC0: 69 6E 20 74 68 65 0D 6D 6F 6E 69 74 6F 72 20 73 in the.monitor s
00FDD0: 63 72 65 65 6E 2E 0D 0D 49 66 20 74 68 65 20 70 creen...If the p
00FDE0: 72 6F 67 72 61 6D 6D 65 64 20 76 61 6C 75 65 20 rogrammed value
00FDF0: 69 73 20 20 69 6E 63 72 65 61 73 65 64 2C 20 20 is increased,
00FE00: 74 68 65 20 20 73 63 72 65 65 6E 20 20 77 69 6C the screen wil
00FE10: 6C 20 73 68 69 66 74 20 74 6F 20 74 68 65 0D 6C l shift to the.l
00FE20: 65 66 74 2C 20 69 66 20 74 68 65 20 70 72 6F 67 eft, if the prog
00FE30: 72 61 6D 6D 65 64 20 76 61 6C 75 65 20 69 73 20 rammed value is
00FE40: 20 64 65 63 72 65 61 73 65 64 2C 20 20 74 68 65 decreased, the
00FE50: 20 73 63 72 65 65 6E 20 77 69 6C 6C 20 73 68 69 screen will shi
00FE60: 66 74 20 74 6F 0D 74 68 65 20 72 69 67 68 74 2E ft to.the right.
00FE70: 0D 0D 53 6F 2C 20 75 73 69 6E 67 20 20 74 68 69 ..So, using thi
00FE80: 73 20 20 72 65 67 69 73 74 65 72 2C 20 20 74 68 s register, th
00FE90: 65 20 20 75 73 65 72 20 20 63 61 6E 20 20 70 75 e user can pu
00FEA0: 74 20 20 74 68 65 20 20 73 63 72 65 65 6E 20 20 t the screen
00FEB0: 74 6F 20 20 61 6E 79 0D 68 6F 72 69 7A 6F 6E 74 to any.horizont
00FEC0: 61 6C 20 70 6F 73 69 74 69 6F 6E 20 74 68 65 79 al position they
00FED0: 20 77 61 6E 74 2E 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D want...========
00FEE0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00FEF0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
00FF00: 65 20 73 63 72 65 65 6E 2E 0D 0D 42 69 74 20 35 e screen...Bit 5
00FF10: 20 61 6E 64 20 42 69 74 20 34 20 64 65 74 65 72 and Bit 4 deter
00FF20: 6D 69 6E 65 20 20 77 68 69 63 68 20 20 31 36 6B mine which 16k
00FF30: 20 20 62 6C 6F 63 6B 20 74 68 65 20 73 63 72 65 block the scre
00FF40: 65 6E 20 69 73 20 6C 6F 63 61 74 65 64 2C 20 69 en is located, i
00FF50: 6E 0D 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 n.the following
00FF60: 77 61 79 3A 0D 0D 42 69 74 20 35 20 20 20 42 69 way:..Bit 5 Bi
00FF70: 74 20 34 20 20 20 4D 65 6D 6F 72 79 20 62 6C 6F t 4 Memory blo
00FF80: 63 6B 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ck.-------------
00FF90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D ---------------.
00FFA0: 20 20 30 20 20 20 20 20 20 30 20 20 20 20 20 20 0 0
00FFB0: 26 30 30 30 30 2D 26 33 46 46 46 0D 20 20 30 20 &0000-&3FFF. 0
00FFC0: 20 20 20 20 20 31 20 20 20 20 20 20 26 34 30 30 1 &400
00FFD0: 30 2D 26 38 30 30 30 0D 20 20 31 20 20 20 20 20 0-&8000. 1
00FFE0: 20 30 20 20 20 20 20 20 26 38 30 30 30 2D 26 43 0 &8000-&C
00FFF0: 30 30 30 0D 20 20 31 20 20 20 20 20 20 31 20 20 000. 1 1
010000: 20 20 20 20 26 43 30 30 30 2D 26 46 46 46 46 0D &C000-&FFFF.
010010: 0D 49 6E 20 74 68 69 73 20 77 61 79 2C 20 74 68 .In this way, th
010020: 65 20 73 63 72 65 65 6E 20 63 61 6E 20 62 65 20 e screen can be
010030: 70 6F 73 69 74 69 6F 6E 65 64 20 61 6C 6D 6F 73 positioned almos
010040: 74 20 61 6E 79 77 68 65 72 65 20 69 6E 20 6D 65 t anywhere in me
010050: 6D 6F 72 79 2E 0D 0D 54 68 65 20 73 63 72 65 65 mory...The scree
010060: 6E 20 61 64 64 72 65 73 73 20 69 73 20 6F 6E 6C n address is onl
010070: 79 20 20 63 68 61 6E 67 65 64 20 20 77 68 65 6E y changed when
010080: 20 20 61 20 20 56 53 59 4E 43 20 6F 63 63 75 72 a VSYNC occur
010090: 73 2E 20 53 6F 2C 20 69 66 20 79 6F 75 0D 61 74 s. So, if you.at
0100A0: 74 65 6D 70 74 20 74 6F 20 63 68 61 6E 67 65 20 tempt to change
0100B0: 74 68 65 20 73 63 72 65 65 6E 20 61 64 64 72 65 the screen addre
0100C0: 73 73 2C 20 20 61 73 20 74 68 65 20 65 6C 65 63 ss, as the elec
0100D0: 74 72 6F 6E 20 62 65 61 6D 20 69 73 20 64 72 61 tron beam is dra
0100E0: 77 69 6E 67 0D 74 68 65 20 73 63 72 65 65 6E 2C wing.the screen,
0100F0: 20 6F 6E 6C 79 20 6F 6E 65 20 73 63 72 65 65 6E only one screen
010100: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
010110: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D ==============..
010120: 52 65 67 69 73 74 65 72 20 35 20 20 2D 20 56 65 Register 5 - Ve
010130: 72 74 69 63 61 6C 20 74 6F 74 61 6C 20 61 64 6A rtical total adj
010140: 75 73 74 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ust.------------
010150: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
010160: 2D 2D 2D 2D 2D 2D 2D 0D 0D 54 68 69 73 20 72 65 -------..This re
010170: 67 69 73 74 65 72 20 20 61 6C 6C 6F 77 73 20 20 gister allows
010180: 74 68 65 20 20 76 65 72 74 69 63 61 6C 20 20 70 the vertical p
010190: 6F 73 69 74 69 6F 6E 20 20 6F 66 20 20 74 68 65 osition of the
0101A0: 20 20 73 63 72 65 65 6E 20 20 74 6F 20 62 65 0D screen to be.
0101B0: 70 6F 73 69 74 69 6F 6E 65 64 20 74 6F 20 61 6E positioned to an
0101C0: 79 20 20 70 69 78 65 6C 20 20 6F 66 66 73 65 74 y pixel offset
0101D0: 20 20 66 72 6F 6D 20 20 74 68 65 20 20 63 75 72 from the cur
0101E0: 72 65 6E 74 20 76 65 72 74 69 63 61 6C 20 70 6F rent vertical po
0101F0: 73 69 74 69 6F 6E 0D 64 65 66 69 6E 65 64 20 69 sition.defined i
010200: 6E 20 72 65 67 69 73 74 65 72 20 37 2E 0D 0D 49 n register 7...I
010210: 66 20 74 68 65 20 76 61 6C 75 65 20 69 73 20 69 f the value is i
010220: 6E 63 72 65 61 73 65 64 2C 20 20 74 68 65 20 20 ncreased, the
010230: 70 69 63 74 75 72 65 20 20 77 69 6C 6C 20 20 73 picture will s
010240: 68 69 66 74 20 20 64 6F 77 6E 20 62 79 20 61 20 hift down by a
010250: 70 69 78 65 6C 0D 6C 69 6E 65 2C 20 69 66 20 69 pixel.line, if i
010260: 74 20 69 73 20 64 65 63 72 65 61 73 65 64 20 74 t is decreased t
010270: 68 65 20 70 69 63 74 75 72 65 20 77 69 6C 6C 20 he picture will
010280: 73 68 69 66 74 20 75 70 20 62 79 20 6F 6E 65 20 shift up by one
010290: 70 69 78 65 6C 20 6C 69 6E 65 2E 0D 0D 54 68 69 pixel line...Thi
0102A0: 73 20 72 65 67 69 73 74 65 72 20 75 73 65 64 20 s register used
0102B0: 69 6E 20 63 6F 6E 6A 75 6E 63 74 69 6F 6E 20 77 in conjunction w
0102C0: 69 74 68 20 72 65 67 69 73 74 65 72 20 31 32 20 ith register 12
0102D0: 61 6E 64 20 31 33 2C 20 63 61 6E 20 62 65 20 75 and 13, can be u
0102E0: 73 65 64 0D 74 6F 20 67 65 74 20 70 65 72 66 65 sed.to get perfe
0102F0: 63 74 20 70 69 78 65 6C 20 62 79 20 70 69 78 65 ct pixel by pixe
010300: 20 77 69 6C 6C 20 62 65 20 73 68 6F 77 6E 2E 0D will be shown..
010310: 0D 28 54 6F 20 63 68 61 6E 67 65 20 74 68 65 20 .(To change the
010320: 73 63 72 65 65 6E 20 61 64 64 72 65 73 73 20 6D screen address m
010330: 6F 72 65 20 20 74 68 61 6E 20 6F 6E 63 65 20 61 ore than once a
010340: 20 73 70 65 63 69 61 6C 20 74 65 63 68 6E 69 63 special technic
010350: 20 63 61 6C 6C 65 64 0D 22 72 75 70 74 75 72 65 called."rupture
010360: 22 20 6F 72 20 22 68 61 72 64 77 61 72 65 20 73 " or "hardware s
010370: 70 6C 69 74 74 69 6E 67 22 20 69 73 20 20 6E 65 plitting" is ne
010380: 65 64 65 64 2E 20 20 54 68 69 73 20 73 70 65 63 eded. This spec
010390: 69 61 6C 20 65 66 66 65 63 74 20 77 61 73 0D 64 ial effect was.d
0103A0: 65 76 65 6C 6F 70 65 64 20 62 79 20 54 68 65 20 eveloped by The
0103B0: 4C 6F 67 6F 6E 20 53 79 73 74 65 6D 20 64 65 6D Logon System dem
0103C0: 6F 20 74 65 61 6D 2E 29 0D 0D 54 68 65 20 43 52 o team.)..The CR
0103D0: 54 43 20 63 61 6E 6E 6F 74 20 61 63 63 65 73 73 TC cannot access
0103E0: 20 20 74 68 65 20 20 65 78 74 72 61 20 20 6D 65 the extra me
0103F0: 6D 6F 72 79 2C 20 20 73 6F 20 20 69 74 20 20 77 mory, so it w
010400: 69 6C 6C 20 6F 6E 6C 79 20 64 69 73 70 6C 61 79 ill only display
010410: 0D 73 63 72 65 65 6E 73 20 77 68 69 63 68 20 61 .screens which a
010420: 72 65 20 6C 6F 63 61 74 65 64 20 69 6E 20 6D 65 re located in me
010430: 6D 6F 72 79 20 62 6C 6F 63 6B 73 20 30 2D 33 20 mory blocks 0-3
010440: 6F 6E 6C 79 2C 20 72 65 67 61 72 64 6C 65 73 73 only, regardless
010450: 20 6F 66 20 61 6E 79 0D 72 61 6D 20 63 6F 6E 66 of any.ram conf
010460: 69 67 75 72 61 74 69 6F 6E 2E 20 28 69 2E 65 2E iguration. (i.e.
010470: 20 69 74 20 20 77 69 6C 6C 20 20 6F 6E 6C 79 20 it will only
010480: 20 64 69 73 70 6C 61 79 20 20 73 63 72 65 65 6E display screen
010490: 73 20 69 6E 20 74 68 65 20 66 69 72 73 74 0D 62 s in the first.b
0104A0: 61 6E 6B 20 6F 66 20 20 36 34 6B 29 2E 20 20 49 ank of 64k). I
0104B0: 66 20 20 79 6F 75 20 20 63 68 61 6E 67 65 20 20 f you change
0104C0: 74 68 65 20 20 72 61 6D 20 20 63 6F 6E 66 69 67 the ram config
0104D0: 75 72 61 74 69 6F 6E 2C 20 20 73 6F 20 20 74 68 uration, so th
0104E0: 61 74 20 20 61 0D 64 69 66 66 65 72 65 6E 74 20 at a.different
0104F0: 31 36 6B 20 20 62 6C 6F 63 6B 20 20 69 73 20 20 16k block is
010500: 6C 20 76 65 72 74 69 63 61 6C 20 73 63 72 6F 6C l vertical scrol
010510: 6C 69 6E 67 2E 0D 0D 28 73 65 65 20 70 72 6F 67 ling...(see prog
010520: 72 61 6D 6D 69 6E 67 20 65 78 61 6D 70 6C 65 29 ramming example)
010530: 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ..==============
010540: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
010550: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
010560: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
010570: 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 52 65 67 69 73 74 ========..Regist
010580: 65 72 20 36 20 20 2D 20 56 65 72 74 69 63 61 6C er 6 - Vertical
010590: 20 64 69 73 70 6C 61 79 65 64 0D 2D 2D 2D 2D 2D displayed.-----
0105A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0105B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 54 68 69 -----------..Thi
0105C0: 73 20 72 65 67 69 73 74 65 72 20 64 65 66 69 6E s register defin
0105D0: 65 73 20 74 68 65 20 20 68 65 69 67 68 74 20 20 es the height
0105E0: 6F 66 20 20 74 68 65 20 20 73 63 72 65 65 6E 20 of the screen
0105F0: 20 69 6E 20 63 68 61 72 61 63 74 65 72 20 73 69 in character si
010600: 7A 65 64 0D 75 6E 69 74 73 2E 0D 0D 49 66 20 74 zed.units...If t
010610: 68 65 20 76 61 6C 75 65 20 70 72 6F 67 72 61 6D he value program
010620: 6D 65 64 20 69 73 20 20 69 6E 63 72 65 61 73 65 med is increase
010630: 64 2C 20 20 74 68 65 20 20 68 65 69 67 68 74 20 d, the height
010640: 6F 66 20 74 68 65 20 73 63 72 65 65 6E 20 77 69 of the screen wi
010650: 6C 6C 0D 69 6E 63 72 65 61 73 65 2C 20 69 66 20 ll.increase, if
010660: 74 68 65 20 76 61 6C 75 65 20 20 70 72 6F 67 72 the value progr
010670: 61 6D 6D 65 64 20 20 69 73 20 20 64 65 63 72 65 ammed is decre
010680: 61 73 65 64 2C 20 20 74 68 65 20 20 68 65 69 67 ased, the heig
010690: 68 74 20 6F 66 20 74 68 65 0D 73 63 72 65 65 6E ht of the.screen
0106A0: 20 77 69 6C 6C 20 64 65 63 72 65 61 73 65 2E 0D will decrease..
0106B0: 0D 54 68 65 20 6E 6F 72 6D 61 6C 20 76 61 6C 75 .The normal valu
0106C0: 65 20 70 72 6F 67 72 61 6D 6D 65 64 20 69 73 20 e programmed is
0106D0: 32 35 2E 20 54 68 65 20 68 65 69 67 68 74 20 6F 25. The height o
0106E0: 66 20 74 68 65 20 6D 6F 6E 69 74 6F 72 20 73 63 f the monitor sc
0106F0: 72 65 65 6E 20 69 73 0D 33 35 20 63 68 61 72 61 reen is.35 chara
010700: 73 77 69 74 63 68 65 64 20 20 69 6E 74 6F 20 20 switched into
010710: 74 68 65 20 20 61 72 65 61 20 20 77 68 69 63 68 the area which
010720: 20 20 68 6F 6C 64 73 20 20 74 68 65 0D 73 63 72 holds the.scr
010730: 65 65 6E 20 74 68 65 72 65 20 77 69 6C 6C 20 62 een there will b
010740: 65 20 6E 6F 20 65 66 66 65 63 74 20 6F 6E 20 74 e no effect on t
010750: 68 65 20 70 69 63 74 75 72 65 2E 0D 0D 28 73 65 he picture...(se
010760: 65 20 74 68 65 20 64 6F 63 75 6D 65 6E 74 20 6F e the document o
010770: 6E 20 74 68 65 20 47 61 74 65 20 41 72 72 61 79 n the Gate Array
010780: 20 66 6F 72 20 6D 6F 72 65 20 69 6E 66 6F 72 6D for more inform
010790: 61 74 69 6F 6E 29 2E 0D 0D 42 69 74 20 33 20 61 ation)...Bit 3 a
0107A0: 6E 64 20 32 20 64 65 74 65 72 6D 69 6E 65 20 68 nd 2 determine h
0107B0: 6F 77 20 6D 75 63 68 20 6D 65 6D 6F 72 79 20 74 ow much memory t
0107C0: 68 65 20 43 52 54 43 20 63 61 6E 20 75 73 65 20 he CRTC can use
0107D0: 66 6F 72 20 74 68 65 20 73 63 72 65 65 6E 2E 0D for the screen..
0107E0: 54 68 65 20 43 52 54 43 20 69 73 20 63 61 70 61 The CRTC is capa
0107F0: 62 6C 65 20 6F 66 20 64 69 73 70 6C 61 79 69 6E ble of displayin
010800: 67 20 31 36 6B 20 6F 72 20 33 32 6B 20 73 63 72 g 16k or 32k scr
010810: 65 65 6E 73 2E 20 42 69 74 73 20 33 20 61 6E 64 eens. Bits 3 and
010820: 20 32 20 61 72 65 0D 64 65 66 69 6E 65 64 20 69 2 are.defined i
010830: 6E 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 n the following
010840: 77 61 79 3A 0D 0D 42 69 74 20 33 20 20 20 42 69 way:..Bit 3 Bi
010850: 74 20 32 20 20 20 53 63 72 65 65 6E 20 6D 65 6D t 2 Screen mem
010860: 6F 72 79 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ory.------------
010870: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
010880: 2D 0D 20 20 30 20 20 20 20 20 20 30 20 20 20 20 -. 0 0
010890: 20 20 31 36 6B 0D 20 20 31 20 20 20 20 20 20 30 16k. 1 0
0108A0: 20 20 20 20 20 20 31 36 6B 0D 20 20 30 20 20 20 16k. 0
0108B0: 20 20 20 31 20 20 20 20 20 20 31 36 6B 0D 20 20 1 16k.
0108C0: 31 20 20 20 20 20 20 31 20 20 20 20 20 20 33 32 1 1 32
0108D0: 6B 0D 0D 57 68 65 6E 20 74 68 65 20 43 52 54 43 k..When the CRTC
0108E0: 20 69 73 20 61 63 63 65 73 73 69 6E 67 20 33 32 is accessing 32
0108F0: 6B 2C 20 79 6F 75 20 63 61 6E 20 65 78 70 61 6E k, you can expan
010900: 63 74 65 72 73 2E 0D 0D 4E 4F 54 45 3A 0D 0D 57 cters...NOTE:..W
010910: 65 20 63 61 6E 20 66 69 6E 64 20 74 68 65 20 68 e can find the h
010920: 65 69 67 68 74 20 6F 66 20 20 74 68 65 20 20 73 eight of the s
010930: 63 72 65 65 6E 20 20 69 6E 20 70 69 78 65 6C 20 creen in pixel
010940: 6C 69 6E 65 73 2C 20 62 79 20 6D 75 6C 74 69 70 lines, by multip
010950: 6C 79 69 6E 67 0D 74 68 69 73 20 62 79 20 74 68 lying.this by th
010960: 65 20 76 61 6C 75 65 20 69 6E 20 72 65 67 69 73 e value in regis
010970: 74 65 72 20 39 20 70 6C 75 73 20 31 2E 0D 0D 48 ter 9 plus 1...H
010980: 65 69 67 68 74 20 6F 66 20 73 63 72 65 65 6E 20 eight of screen
010990: 3D 20 72 65 67 69 73 74 65 72 20 36 20 76 61 6C = register 6 val
0109A0: 75 65 2A 28 72 65 67 69 73 74 65 72 20 39 20 76 ue*(register 9 v
0109B0: 61 6C 75 65 2B 31 29 0D 0D 3D 3D 3D 3D 3D 3D 3D alue+1)..=======
0109C0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0109D0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0109E0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0109F0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D ===============.
010A00: 0D 52 65 67 69 73 74 65 72 20 37 20 20 2D 20 56 .Register 7 - V
010A10: 65 72 74 69 63 61 6C 20 73 79 6E 63 20 70 6F 73 ertical sync pos
010A20: 69 74 69 6F 6E 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ition.----------
010A30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
010A40: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 54 68 69 73 ----------..This
010A50: 20 72 65 67 69 73 74 65 72 20 64 65 66 69 6E 65 register define
010A60: 73 20 74 68 65 20 76 65 72 74 69 63 61 6C 20 20 s the vertical
010A70: 70 6F 73 69 74 69 6F 6E 20 20 6F 66 20 74 68 65 position of the
010A80: 20 73 63 72 65 65 6E 20 77 69 74 68 69 6E 20 74 screen within t
010A90: 68 65 0D 6D 6F 6E 69 74 6F 72 20 73 63 72 65 65 he.monitor scree
010AA0: 6E 2E 0D 0D 49 66 20 74 68 65 20 70 72 6F 67 72 n...If the progr
010AB0: 61 6D 6D 65 64 20 76 61 6C 75 65 20 69 73 20 20 ammed value is
010AC0: 69 6E 63 72 65 61 73 65 64 2C 20 20 74 68 65 20 increased, the
010AD0: 73 63 72 65 65 6E 20 77 69 6C 6C 20 73 68 69 66 screen will shif
010AE0: 74 20 75 70 77 61 72 64 73 2C 0D 69 66 20 74 68 t upwards,.if th
010AF0: 65 20 70 72 6F 67 72 61 6D 6D 65 64 20 76 61 6C e programmed val
010B00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
010B10: 0E 00 01 00 02 09 4E E5 0E 00 C1 02 00 00 00 02 ......N.........
010B20: 0E 00 C6 02 00 00 00 02 0E 00 C2 02 00 00 00 02 ................
010B30: 0E 00 C7 02 00 00 00 02 0E 00 C3 02 00 00 00 02 ................
010B40: 0E 00 C8 02 00 00 00 02 0E 00 C4 02 00 00 00 02 ................
010B50: 0E 00 C9 02 00 00 00 02 0E 00 C5 02 00 00 00 02 ................
010B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010C00: 64 20 74 68 65 20 73 63 72 65 65 6E 20 73 69 7A d the screen siz
010C10: 65 20 73 6F 20 74 68 61 74 0D 79 6F 75 20 63 61 e so that.you ca
010C20: 6E 20 68 61 76 65 20 61 20 70 69 63 74 75 72 65 n have a picture
010C30: 20 77 68 69 63 68 20 63 6F 76 65 72 73 20 74 68 which covers th
010C40: 65 20 62 6F 72 64 65 72 73 21 20 28 6F 76 65 72 e borders! (over
010C50: 73 63 61 6E 29 0D 0D 57 68 65 6E 20 33 32 6B 20 scan)..When 32k
010C60: 20 69 73 20 20 73 65 6C 65 63 74 65 64 2C 20 20 is selected,
010C70: 74 68 65 20 20 66 69 72 73 74 20 20 61 6E 64 20 the first and
010C80: 20 73 65 63 6F 6E 64 20 20 73 63 72 65 65 6E 73 second screens
010C90: 20 20 6F 63 63 75 70 79 20 20 74 68 65 0D 66 6F occupy the.fo
010CA0: 6C 6C 6F 77 69 6E 67 20 72 61 6E 67 65 20 6F 66 llowing range of
010CB0: 20 61 64 64 72 65 73 73 65 73 73 3A 0D 0D 46 69 addressess:..Fi
010CC0: 72 73 74 20 73 63 72 65 65 6E 20 20 20 20 53 65 rst screen Se
010CD0: 63 6F 6E 64 20 73 63 72 65 65 6E 0D 2D 2D 2D 2D cond screen.----
010CE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
010CF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 26 30 30 30 30 2D ---------.&0000-
010D00: 26 33 46 46 46 20 20 20 20 20 26 34 30 30 30 2D &3FFF &4000-
010D10: 26 37 46 46 46 0D 26 34 30 30 30 2D 26 37 46 46 &7FFF.&4000-&7FF
010D20: 46 20 20 20 20 20 26 38 30 30 30 2D 26 42 46 46 F &8000-&BFF
010D30: 46 0D 26 38 30 30 30 2D 26 42 46 46 46 20 20 20 F.&8000-&BFFF
010D40: 20 20 26 43 30 30 30 2D 26 46 46 46 46 0D 26 43 &C000-&FFFF.&C
010D50: 30 30 30 2D 26 46 46 46 46 20 20 20 20 20 26 30 000-&FFFF &0
010D60: 30 30 30 2D 26 33 46 46 46 0D 0D 28 73 65 65 20 000-&3FFF..(see
010D70: 74 68 65 20 70 72 6F 67 72 61 6D 6D 69 6E 67 20 the programming
010D80: 65 78 61 6D 70 6C 65 29 0D 0D 42 69 74 20 31 20 example)..Bit 1
010D90: 61 6E 64 20 30 20 20 61 72 65 20 20 75 73 65 64 and 0 are used
010DA0: 20 20 77 69 74 68 20 20 72 65 67 69 73 74 65 72 with register
010DB0: 20 20 31 33 20 20 74 6F 20 20 64 6F 20 68 61 72 13 to do har
010DC0: 64 77 61 72 65 20 73 63 72 6F 6C 6C 69 6E 67 2E dware scrolling.
010DD0: 0D 52 65 67 69 73 74 65 72 20 31 33 20 63 6F 6E .Register 13 con
010DE0: 74 61 69 6E 73 20 74 68 65 20 6C 6F 77 65 72 20 tains the lower
010DF0: 38 20 62 69 74 73 20 20 6F 66 20 20 74 68 65 20 8 bits of the
010E00: 4F 76 65 72 73 63 61 6E 2C 0D 3D 3D 3D 3D 3D 3D Overscan,.======
010E10: 3D 3D 3D 3D 3D 3D 0D 0D 4F 76 65 72 73 63 61 6E ======..Overscan
010E20: 20 69 73 20 74 68 65 20 65 66 66 65 63 74 20 77 is the effect w
010E30: 68 65 72 65 20 74 68 65 20 73 63 72 65 65 6E 20 here the screen
010E40: 20 69 73 20 65 78 70 61 6E 64 65 64 20 74 6F 20 is expanded to
010E50: 66 69 6C 6C 20 74 68 65 20 77 68 6F 6C 65 0D 6D fill the whole.m
010E60: 6F 6E 69 74 6F 72 20 73 63 72 65 65 6E 2C 20 53 onitor screen, S
010E70: 6F 20 74 68 65 72 65 20 61 72 65 20 6E 6F 20 62 o there are no b
010E80: 6F 72 64 65 72 73 20 72 65 6D 61 69 6E 69 6E 67 orders remaining
010E90: 2E 0D 0D 49 74 20 69 73 20 61 20 20 73 69 6D 70 ...It is a simp
010EA0: 6C 65 20 20 65 66 66 65 63 74 20 20 74 6F 20 20 le effect to
010EB0: 75 73 65 2C 20 20 62 75 74 20 20 77 6F 72 6B 69 use, but worki
010EC0: 6E 67 20 20 6F 75 74 20 73 63 72 65 65 6E 20 61 ng out screen a
010ED0: 64 64 72 65 73 73 65 73 73 0D 62 65 63 6F 6D 65 ddressess.become
010EE0: 73 20 6D 6F 72 65 20 64 69 66 66 69 63 75 6C 74 s more difficult
010EF0: 2E 20 28 65 73 70 65 63 69 61 6C 6C 79 20 20 77 . (especially w
010F00: 68 65 72 65 20 20 74 68 65 20 20 66 69 72 73 74 here the first
010F10: 20 73 63 72 65 65 6E 20 65 6E 64 73 20 61 6E 64 screen ends and
010F20: 0D 74 68 65 20 73 65 63 6F 6E 64 20 73 63 72 65 .the second scre
010F30: 65 6E 20 73 74 61 72 74 73 29 2E 0D 0D 54 6F 20 en starts)...To
010F40: 65 78 70 61 6E 64 20 74 68 65 20 73 63 72 65 65 expand the scree
010F50: 6E 2C 20 77 65 20 20 75 73 65 20 20 72 65 67 69 n, we use regi
010F60: 73 74 65 72 73 20 20 31 2C 20 20 36 2C 20 20 32 sters 1, 6, 2
010F70: 20 20 61 6E 64 20 37 2E 20 52 65 67 69 73 74 65 and 7. Registe
010F80: 72 20 31 0D 69 73 20 75 73 65 64 20 74 6F 20 73 r 1.is used to s
010F90: 65 74 20 74 68 65 20 77 69 64 74 68 20 6F 66 20 et the width of
010FA0: 20 74 68 65 20 20 73 63 72 65 65 6E 2C 20 72 65 the screen, re
010FB0: 67 69 73 74 65 72 20 36 20 74 68 65 20 68 65 69 gister 6 the hei
010FC0: 67 68 74 20 6F 66 20 74 68 65 0D 73 63 72 65 65 ght of the.scree
010FD0: 6E 2C 20 72 65 67 69 73 74 65 72 20 32 20 74 68 n, register 2 th
010FE0: 65 20 68 6F 72 69 7A 6F 6E 74 61 6C 20 70 6F 73 e horizontal pos
010FF0: 69 74 69 6F 6E 20 20 6F 66 20 74 68 65 20 73 63 ition of the sc
011000: 20 6F 66 66 73 65 74 20 61 6E 64 20 62 69 74 20 offset and bit
011010: 31 20 61 6E 64 20 30 0D 63 6F 6E 74 61 69 6E 20 1 and 0.contain
011020: 74 68 65 20 75 70 70 65 72 20 32 20 62 69 74 73 the upper 2 bits
011030: 20 20 6F 66 20 20 74 68 65 20 20 6F 66 66 73 65 of the offse
011040: 74 2E 20 20 54 68 65 20 20 6F 66 66 73 65 74 20 t. The offset
011050: 69 73 20 31 30 20 62 69 74 73 20 61 6E 64 0D 64 is 10 bits and.d
011060: 65 66 69 6E 65 73 20 74 68 65 20 70 6F 73 69 74 efines the posit
011070: 69 6F 6E 20 6F 66 20 74 68 65 20 73 63 72 65 65 ion of the scree
011080: 6E 20 20 77 69 74 68 69 6E 20 20 74 68 65 20 31 n within the 1
011090: 36 6B 20 62 6C 6F 63 6B 20 73 70 65 63 69 66 69 6k block specifi
0110A0: 65 64 20 69 6E 0D 62 69 74 73 20 35 20 61 6E 64 ed in.bits 5 and
0110B0: 20 34 2E 0D 0D 53 6F 2C 20 62 79 20 63 68 61 6E 4...So, by chan
0110C0: 67 69 6E 67 20 74 68 65 20 76 61 6C 75 65 20 63 ging the value c
0110D0: 6F 6E 74 61 69 6E 65 64 20 69 6E 20 20 72 65 67 ontained in reg
0110E0: 69 73 74 65 72 20 20 31 33 2C 20 61 6E 64 20 62 ister 13, and b
0110F0: 69 74 73 20 31 20 61 6E 64 20 30 0D 6F 66 20 72 its 1 and 0.of r
011100: 65 67 69 73 74 65 72 20 31 32 2C 20 74 68 65 20 egister 12, the
011110: 20 73 63 72 65 65 6E 20 20 63 61 6E 20 20 62 65 screen can be
011120: 20 20 73 63 72 6F 6C 6C 65 64 2E 20 20 54 68 69 scrolled. Thi
011130: 73 20 65 66 66 65 63 74 20 69 73 20 63 61 6C 6C s effect is call
011140: 65 64 0D 68 61 72 64 77 61 72 65 20 73 63 72 6F ed.hardware scro
011150: 6C 6C 69 6E 67 2E 20 28 73 65 65 20 70 72 6F 67 lling. (see prog
011160: 72 61 6D 6D 69 6E 67 20 65 78 61 6D 70 6C 65 29 ramming example)
011170: 0D 0D 53 75 6D 6D 61 72 79 3A 0D 0D 42 69 74 20 ..Summary:..Bit
011180: 37 3A 20 4E 6F 74 20 75 73 65 64 2E 0D 42 69 74 7: Not used..Bit
011190: 20 36 3A 20 4E 6F 74 20 75 73 65 64 2E 0D 0D 42 6: Not used...B
0111A0: 69 74 20 35 3A 20 7D 20 4D 65 6D 6F 72 79 20 62 it 5: } Memory b
0111B0: 6C 6F 63 6B 20 6F 66 20 73 74 61 72 74 20 6F 66 lock of start of
0111C0: 20 73 63 72 65 65 6E 0D 42 69 74 20 34 3A 20 7D screen.Bit 4: }
0111D0: 0D 0D 42 69 74 20 33 3A 20 7D 20 53 63 72 65 65 ..Bit 3: } Scree
0111E0: 6E 20 6D 65 6D 6F 72 79 0D 42 69 74 20 32 3A 20 n memory.Bit 2:
0111F0: 7D 0D 0D 42 69 74 20 31 3A 20 7D 20 4F 66 66 73 }..Bit 1: } Offs
011200: 72 65 65 6E 20 61 6E 64 20 72 65 67 69 73 74 65 reen and registe
011210: 72 0D 37 2C 20 74 68 65 20 76 65 72 74 69 63 61 r.7, the vertica
011220: 6C 20 70 6F 73 69 74 69 6F 6E 20 6F 66 20 74 68 l position of th
011230: 65 20 73 63 72 65 65 6E 2E 0D 0D 57 68 65 6E 20 e screen...When
011240: 74 68 69 73 20 69 73 20 64 6F 6E 65 2C 20 77 65 this is done, we
011250: 20 20 63 61 6E 20 20 73 65 65 20 20 74 68 61 74 can see that
011260: 20 20 70 61 72 74 73 20 20 6F 66 20 74 68 65 20 parts of the
011270: 73 63 72 65 65 6E 20 72 65 70 65 61 74 2E 20 54 screen repeat. T
011280: 6F 0D 6F 76 65 72 63 6F 6D 65 20 74 68 69 73 2C o.overcome this,
011290: 20 77 65 20 74 65 6C 6C 20 74 68 65 20 43 52 54 we tell the CRT
0112A0: 43 20 74 6F 20 20 75 73 65 20 20 33 32 6B 20 69 C to use 32k i
0112B0: 6E 73 74 65 61 64 20 6F 66 20 31 36 6B 2E 0D 0D nstead of 16k...
0112C0: 4E 4F 54 45 3A 20 4F 6E 20 20 73 6F 6D 65 20 20 NOTE: On some
0112D0: 43 52 54 43 20 20 74 79 70 65 73 2C 20 20 74 68 CRTC types, th
0112E0: 65 20 20 73 63 72 65 65 6E 20 20 77 69 64 74 68 e screen width
0112F0: 20 20 6D 75 73 74 20 20 6E 6F 74 20 20 65 78 63 must not exc
011300: 65 65 64 20 34 38 0D 20 20 20 20 20 20 63 68 61 eed 48. cha
011310: 72 61 63 74 65 72 73 20 20 6F 74 68 65 72 77 69 racters otherwi
011320: 73 65 20 20 69 74 20 20 77 69 6C 6C 20 20 20 6E se it will n
011330: 6F 74 20 20 20 77 6F 72 6B 2E 20 20 20 53 6F 20 ot work. So
011340: 20 74 6F 20 20 6D 61 69 6E 74 61 69 6E 0D 20 20 to maintain.
011350: 20 20 20 20 63 6F 6D 70 61 74 69 62 69 6C 69 74 compatibilit
011360: 79 20 6B 65 65 70 20 74 68 65 20 77 69 64 74 68 y keep the width
011370: 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E 20 62 of the screen b
011380: 65 6C 6F 77 20 34 38 2E 0D 20 20 20 20 20 20 28 elow 48.. (
011390: 41 70 6C 69 65 73 20 74 6F 20 43 52 54 43 20 74 Aplies to CRTC t
0113A0: 79 70 65 20 32 29 2E 0D 0D 54 68 65 20 63 6F 64 ype 2)...The cod
0113B0: 65 20 66 6F 72 20 6F 76 65 72 73 63 61 6E 20 69 e for overscan i
0113C0: 73 2E 0D 0D 3B 3B 20 2A 2A 2A 2A 20 73 65 74 20 s...;; **** set
0113D0: 77 69 64 74 68 20 6F 66 20 73 63 72 65 65 6E 20 width of screen
0113E0: 2A 2A 2A 2A 0D 0D 6C 64 20 62 63 2C 26 62 63 30 ****..ld bc,&bc0
0113F0: 30 2B 31 0D 6F 75 74 20 28 63 29 2C 63 0D 6C 64 0+1.out (c),c.ld
011400: 65 74 20 28 75 70 70 65 72 20 32 20 62 69 74 73 et (upper 2 bits
011410: 20 6F 66 20 6F 66 66 73 65 74 20 76 61 6C 75 65 of offset value
011420: 20 2D 20 6C 6F 77 65 72 20 38 20 62 69 74 73 20 - lower 8 bits
011430: 64 65 66 69 6E 65 64 0D 42 69 74 20 30 3A 20 7D defined.Bit 0: }
011440: 20 20 20 20 20 20 20 20 62 79 20 72 65 67 69 73 by regis
011450: 74 65 72 20 31 33 29 2E 0D 0D 3D 3D 3D 3D 3D 3D ter 13)...======
011460: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011470: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011480: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011490: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0114A0: 0D 0D 52 65 67 69 73 74 65 72 20 31 33 20 2D 20 ..Register 13 -
0114B0: 53 74 61 72 74 20 41 64 64 72 65 73 73 20 28 4C Start Address (L
0114C0: 6F 77 29 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ow).------------
0114D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0114E0: 2D 2D 2D 2D 2D 0D 0D 54 68 69 73 20 72 65 67 69 -----..This regi
0114F0: 73 74 65 72 20 64 65 66 69 6E 65 73 20 20 74 68 ster defines th
011500: 65 20 20 6C 6F 77 65 72 20 20 38 20 20 62 69 74 e lower 8 bit
011510: 73 20 20 6F 66 20 20 74 68 65 20 20 6F 66 66 73 s of the offs
011520: 65 74 20 77 69 74 68 69 6E 20 74 68 65 0D 73 65 et within the.se
011530: 6C 65 63 74 65 64 20 31 36 6B 20 62 6C 6F 63 6B lected 16k block
011540: 2E 20 54 68 69 73 20 72 65 67 69 73 74 65 72 20 . This register
011550: 69 73 20 75 73 65 64 20 69 6E 20 63 6F 6E 6A 75 is used in conju
011560: 6E 63 74 69 6F 6E 20 77 69 74 68 20 72 65 67 69 nction with regi
011570: 73 74 65 72 0D 31 32 20 74 6F 20 70 65 72 66 6F ster.12 to perfo
011580: 72 6D 20 68 61 72 64 77 61 72 65 20 73 63 72 6F rm hardware scro
011590: 6C 6C 69 6E 67 2E 0D 0D 28 73 65 65 20 70 72 6F lling...(see pro
0115A0: 67 72 61 6D 6D 69 6E 67 20 65 78 61 6D 70 6C 65 gramming example
0115B0: 29 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D )..=============
0115C0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0115D0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0115E0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0115F0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 50 72 6F 67 72 =========..Progr
011600: 20 62 63 2C 26 62 64 30 30 2B 34 38 20 20 20 20 bc,&bd00+48
011610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 34 ;4
011620: 38 20 63 68 61 72 61 63 74 65 72 73 20 77 69 64 8 characters wid
011630: 65 0D 6F 75 74 20 28 63 29 2C 63 0D 0D 3B 3B 20 e.out (c),c..;;
011640: 2A 2A 2A 2A 20 73 65 74 20 68 65 69 67 68 74 20 **** set height
011650: 6F 66 20 73 63 72 65 65 6E 20 2A 2A 2A 2A 0D 0D of screen ****..
011660: 6C 64 20 62 63 2C 26 62 63 30 30 2B 36 0D 6F 75 ld bc,&bc00+6.ou
011670: 74 20 28 63 29 2C 63 0D 6C 64 20 62 63 2C 26 62 t (c),c.ld bc,&b
011680: 64 30 30 2B 33 35 20 20 20 20 20 20 20 20 20 20 d00+35
011690: 20 20 20 20 20 20 20 20 3B 33 35 20 63 68 61 72 ;35 char
0116A0: 61 63 74 65 72 73 20 74 61 6C 6C 0D 6F 75 74 20 acters tall.out
0116B0: 28 63 29 2C 63 0D 0D 3B 3B 20 2A 2A 2A 2A 20 73 (c),c..;; **** s
0116C0: 65 74 20 68 6F 72 69 7A 6F 6E 74 61 6C 20 70 6F et horizontal po
0116D0: 73 69 74 69 6F 6E 20 6F 66 20 73 63 72 65 65 6E sition of screen
0116E0: 20 74 6F 20 6C 65 66 74 68 61 6E 64 20 73 69 64 to lefthand sid
0116F0: 65 20 2A 2A 2A 2A 0D 0D 6C 64 20 62 63 2C 26 62 e ****..ld bc,&b
011700: 63 30 30 2B 32 0D 6F 75 74 20 28 63 29 2C 63 0D c00+2.out (c),c.
011710: 6C 64 20 62 63 2C 26 62 64 30 30 2B 35 30 20 20 ld bc,&bd00+50
011720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011730: 3B 6C 65 66 74 6D 6F 73 74 20 65 64 67 65 20 6F ;leftmost edge o
011740: 66 20 73 63 72 65 65 6E 0D 6F 75 74 20 28 63 29 f screen.out (c)
011750: 2C 63 0D 0D 3B 3B 20 2A 2A 2A 2A 20 73 65 74 20 ,c..;; **** set
011760: 76 65 72 74 69 63 61 6C 20 70 6F 73 69 74 69 6F vertical positio
011770: 6E 20 6F 66 20 73 63 72 65 65 6E 20 74 6F 20 74 n of screen to t
011780: 6F 70 20 2A 2A 2A 2A 0D 0D 6C 64 20 62 63 2C 26 op ****..ld bc,&
011790: 62 63 30 30 2B 37 0D 6F 75 74 20 28 63 29 2C 63 bc00+7.out (c),c
0117A0: 0D 6C 64 20 62 63 2C 26 62 64 30 30 2B 33 35 20 .ld bc,&bd00+35
0117B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0117C0: 20 3B 74 6F 70 6D 6F 73 74 20 70 6F 73 69 74 69 ;topmost positi
0117D0: 6F 6E 20 6F 66 20 73 63 72 65 65 6E 0D 6F 75 74 on of screen.out
0117E0: 20 28 63 29 2C 63 0D 0D 3B 3B 20 2A 2A 2A 2A 20 (c),c..;; ****
0117F0: 74 65 6C 6C 20 74 68 65 20 43 52 54 43 20 74 6F tell the CRTC to
011800: 61 6D 6D 69 6E 67 20 65 78 61 6D 70 6C 65 73 0D amming examples.
011810: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
011820: 2D 2D 2D 2D 0D 0D 61 29 20 50 72 6F 67 72 61 6D ----..a) Program
011830: 6D 69 6E 67 20 74 68 65 20 43 52 54 43 2C 0D 3D ming the CRTC,.=
011840: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011850: 3D 3D 3D 3D 3D 3D 3D 0D 0D 31 29 20 53 65 6C 65 =======..1) Sele
011860: 63 74 69 6E 67 20 61 20 43 52 54 43 20 72 65 67 cting a CRTC reg
011870: 69 73 74 65 72 2C 0D 20 20 20 2D 2D 2D 2D 2D 2D ister,. ------
011880: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
011890: 2D 2D 2D 0D 0D 6C 64 20 62 63 2C 26 62 63 30 30 ---..ld bc,&bc00
0118A0: 2B 78 78 0D 6F 75 74 20 28 63 29 2C 63 0D 0D 57 +xx.out (c),c..W
0118B0: 68 65 72 65 20 78 78 20 69 73 20 74 68 65 20 72 here xx is the r
0118C0: 65 67 69 73 74 65 72 20 6E 75 6D 62 65 72 20 72 egister number r
0118D0: 65 71 75 69 72 65 64 2E 0D 0D 65 2E 67 2E 0D 0D equired...e.g...
0118E0: 54 6F 20 73 65 6C 65 63 74 20 72 65 67 69 73 74 To select regist
0118F0: 65 72 20 31 32 2C 0D 0D 6C 64 20 62 63 2C 26 62 er 12,..ld bc,&b
011900: 63 30 30 2B 31 32 0D 6F 75 74 20 28 63 29 2C 63 c00+12.out (c),c
011910: 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ..==============
011920: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011930: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011940: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011950: 3D 3D 3D 3D 3D 3D 3D 0D 0D 32 29 20 57 72 69 74 =======..2) Writ
011960: 69 6E 67 20 74 6F 20 61 20 43 52 54 43 20 72 65 ing to a CRTC re
011970: 67 69 73 74 65 72 2C 0D 20 20 20 2D 2D 2D 2D 2D gister,. -----
011980: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
011990: 2D 2D 2D 2D 2D 0D 0D 4C 44 20 62 63 2C 26 62 64 -----..LD bc,&bd
0119A0: 30 30 2B 78 78 0D 6F 75 74 20 28 63 29 2C 63 0D 00+xx.out (c),c.
0119B0: 0D 77 68 65 72 65 20 78 78 20 69 73 20 74 68 65 .where xx is the
0119C0: 20 64 61 74 61 20 74 6F 20 62 65 20 70 75 74 20 data to be put
0119D0: 69 6E 74 6F 20 74 68 65 20 63 75 72 72 65 6E 74 into the current
0119E0: 6C 79 20 73 65 6C 65 63 74 65 64 20 72 65 67 69 ly selected regi
0119F0: 73 74 65 72 2E 0D 0D 65 2E 67 2E 0D 0D 54 6F 20 ster...e.g...To
011A00: 20 75 73 65 20 33 32 6B 20 66 6F 72 20 73 63 72 use 32k for scr
011A10: 65 65 6E 20 64 69 73 70 6C 61 79 20 20 20 20 20 een display
011A20: 20 20 20 20 2A 2A 2A 2A 0D 3B 3B 20 2A 2A 2A 2A ****.;; ****
011A30: 20 28 61 6C 73 6F 20 64 65 66 69 6E 65 20 73 63 (also define sc
011A40: 72 65 65 6E 20 6D 65 6D 6F 72 79 20 72 61 6E 67 reen memory rang
011A50: 65 20 74 6F 20 62 65 20 26 63 30 30 30 2D 26 66 e to be &c000-&f
011A60: 66 66 66 29 20 2A 2A 2A 2A 0D 3B 3B 20 2A 2A 2A fff) ****.;; ***
011A70: 2A 20 67 69 76 69 6E 67 20 75 73 20 74 68 65 20 * giving us the
011A80: 73 63 72 65 65 6E 20 6D 65 6D 6F 72 79 20 74 61 screen memory ta
011A90: 6B 69 6E 67 20 75 70 20 26 43 30 30 30 2D 26 33 king up &C000-&3
011AA0: 46 46 46 20 20 20 2A 2A 2A 2A 0D 0D 6C 64 20 62 FFF ****..ld b
011AB0: 63 2C 26 62 63 30 30 2B 31 32 0D 6F 75 74 20 28 c,&bc00+12.out (
011AC0: 63 29 2C 63 0D 0D 6C 64 20 62 63 2C 26 62 64 30 c),c..ld bc,&bd0
011AD0: 30 2B 25 30 30 31 31 31 31 30 30 0D 6F 75 74 20 0+%00111100.out
011AE0: 28 63 29 2C 63 0D 0D 53 6F 20 6E 6F 77 2C 20 79 (c),c..So now, y
011AF0: 6F 75 20 73 68 6F 75 6C 64 20 68 61 76 65 20 20 ou should have
011B00: 61 20 20 6C 61 72 67 65 20 20 73 63 72 65 65 6E a large screen
011B10: 20 20 63 6F 76 65 72 69 6E 67 20 74 68 65 20 62 covering the b
011B20: 6F 72 64 65 72 73 2E 20 49 74 20 69 73 0D 6A 75 orders. It is.ju
011B30: 73 74 20 61 20 6D 61 74 74 65 72 20 6F 66 20 70 st a matter of p
011B40: 6C 6F 74 74 69 6E 67 20 67 72 61 70 68 69 63 73 lotting graphics
011B50: 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 2E 0D on the screen..
011B60: 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D .===============
011B70: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011B80: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011B90: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011BA0: 3D 3D 3D 3D 3D 3D 3D 0D 0D 63 29 20 48 61 72 64 =======..c) Hard
011BB0: 77 61 72 65 20 73 63 72 6F 6C 6C 69 6E 67 0D 3D ware scrolling.=
011BC0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011BD0: 3D 3D 3D 3D 0D 0D 48 61 72 64 77 61 72 65 20 73 ====..Hardware s
011BE0: 63 72 6F 6C 6C 69 6E 67 20 69 73 20 20 61 63 68 crolling is ach
011BF0: 69 65 76 65 64 20 20 62 79 20 20 75 73 69 6E 67 ieved by using
011C00: 70 75 74 20 31 32 38 20 69 6E 74 6F 20 72 65 67 put 128 into reg
011C10: 69 73 74 65 72 20 31 32 2C 0D 0D 3B 3B 20 73 65 ister 12,..;; se
011C20: 6C 65 63 74 20 43 52 54 43 20 72 65 67 69 73 74 lect CRTC regist
011C30: 65 72 20 31 32 0D 0D 6C 64 20 62 63 2C 26 62 63 er 12..ld bc,&bc
011C40: 30 30 2B 31 32 0D 6F 75 74 20 28 63 29 2C 63 0D 00+12.out (c),c.
011C50: 0D 3B 3B 20 77 72 69 74 65 20 74 6F 20 72 65 67 .;; write to reg
011C60: 69 73 74 65 72 20 31 32 0D 0D 6C 64 20 62 63 2C ister 12..ld bc,
011C70: 26 62 64 30 30 2B 31 32 38 0D 6F 75 74 20 28 63 &bd00+128.out (c
011C80: 29 2C 63 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ),c..===========
011C90: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011CA0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011CB0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011CC0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 33 29 20 ===========..3)
011CD0: 52 65 61 64 69 6E 67 20 66 72 6F 6D 20 61 20 43 Reading from a C
011CE0: 52 54 43 20 72 65 67 69 73 74 65 72 2C 0D 0D 6C RTC register,..l
011CF0: 64 20 62 63 2C 26 62 66 30 30 0D 69 6E 20 61 2C d bc,&bf00.in a,
011D00: 28 63 29 0D 0D 77 68 65 72 65 2C 20 74 68 65 20 (c)..where, the
011D10: 64 61 74 61 20 69 6E 20 74 68 65 20 72 65 67 69 data in the regi
011D20: 73 74 65 72 20 77 6F 75 6C 64 20 62 65 20 72 65 ster would be re
011D30: 74 75 72 6E 65 64 20 69 6E 20 72 65 67 69 73 74 turned in regist
011D40: 65 72 20 41 0D 0D 65 2E 67 2E 0D 0D 3B 3B 20 73 er A..e.g...;; s
011D50: 65 6C 65 63 74 20 43 52 54 43 20 72 65 67 69 73 elect CRTC regis
011D60: 74 65 72 20 31 32 0D 0D 6C 64 20 62 63 2C 26 62 ter 12..ld bc,&b
011D70: 63 30 30 2B 31 32 0D 6F 75 74 20 28 63 29 2C 63 c00+12.out (c),c
011D80: 0D 0D 3B 3B 20 72 65 61 64 20 64 61 74 61 20 69 ..;; read data i
011D90: 6E 20 72 65 67 69 73 74 65 72 20 31 32 0D 0D 6C n register 12..l
011DA0: 64 20 62 63 2C 26 62 66 30 30 0D 69 6E 20 61 2C d bc,&bf00.in a,
011DB0: 28 63 29 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D (c)..===========
011DC0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011DD0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011DE0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
011DF0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 62 29 20 ===========..b)
011E00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
011E10: 0F 00 01 00 02 09 4E E5 0F 00 C1 02 00 00 00 02 ......N.........
011E20: 0F 00 C6 02 00 00 00 02 0F 00 C2 02 00 00 00 02 ................
011E30: 0F 00 C7 02 00 00 00 02 0F 00 C3 02 00 00 00 02 ................
011E40: 0F 00 C8 02 00 00 00 02 0F 00 C4 02 00 00 00 02 ................
011E50: 0F 00 C9 02 00 00 00 02 0F 00 C5 02 00 00 00 02 ................
011E60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011F00: 20 20 72 65 67 69 73 74 65 72 73 20 20 31 32 20 registers 12
011F10: 20 61 6E 64 20 31 33 2E 20 54 68 65 0D 65 66 66 and 13. The.eff
011F20: 65 63 74 20 77 6F 72 6B 73 20 62 79 20 63 68 61 ect works by cha
011F30: 6E 67 69 6E 67 20 74 68 65 20 73 74 61 72 74 20 nging the start
011F40: 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 73 address of the s
011F50: 63 72 65 65 6E 2E 20 28 54 68 65 72 65 20 69 73 creen. (There is
011F60: 20 6E 6F 0D 73 68 69 66 74 69 6E 67 20 6F 72 20 no.shifting or
011F70: 6D 6F 76 69 6E 67 20 6F 66 20 64 61 74 61 29 2E moving of data).
011F80: 0D 0D 42 79 20 64 6F 69 6E 67 20 74 68 69 73 20 ..By doing this
011F90: 77 65 20 63 61 6E 20 6D 61 6B 65 20 69 74 20 6C we can make it l
011FA0: 6F 6F 6B 20 6C 69 6B 65 20 74 68 65 20 73 63 72 ook like the scr
011FB0: 65 65 6E 20 69 73 20 73 63 72 6F 6C 6C 69 6E 67 een is scrolling
011FC0: 2E 0D 0D 49 74 20 69 73 20 69 6D 70 6F 72 74 61 ...It is importa
011FD0: 6E 74 20 74 6F 20 6E 6F 74 65 2C 20 74 68 61 74 nt to note, that
011FE0: 20 6F 6E 6C 79 20 61 20 31 36 6B 20 73 63 72 65 only a 16k scre
011FF0: 65 6E 20 63 61 6E 20 62 65 20 66 75 6C 6C 79 20 en can be fully
012000: 73 63 72 6F 6C 6C 65 64 2E 0D 49 66 20 61 20 33 scrolled..If a 3
012010: 32 6B 20 73 63 72 65 65 6E 20 69 73 20 20 73 63 2k screen is sc
012020: 72 6F 6C 6C 65 64 20 20 74 6F 6F 20 20 6D 75 63 rolled too muc
012030: 68 2C 20 20 69 74 20 20 73 70 6C 69 74 73 20 69 h, it splits i
012040: 6E 74 6F 20 61 20 31 36 6B 20 73 63 72 65 65 6E nto a 16k screen
012050: 0D 77 68 69 63 68 20 72 65 70 65 61 74 73 2E 0D .which repeats..
012060: 0D 54 68 65 20 73 63 72 65 65 6E 20 69 73 20 73 .The screen is s
012070: 63 72 6F 6C 6C 65 64 20 69 6E 20 20 63 68 61 72 crolled in char
012080: 61 63 74 65 72 20 20 73 69 7A 65 64 20 63 68 75 acter sized chu
012090: 6E 6B 73 2E 20 54 68 69 73 20 70 72 6F 64 75 63 nks. This produc
0120A0: 65 73 20 76 65 72 79 0D 66 61 73 74 20 20 73 6D es very.fast sm
0120B0: 6F 6F 74 68 20 20 68 61 72 64 77 61 72 65 20 20 ooth hardware
0120C0: 73 63 72 6F 6C 6C 69 6E 67 2E 20 20 48 6F 77 65 scrolling. Howe
0120D0: 76 65 72 20 20 69 74 20 20 69 73 20 20 6F 66 74 ver it is oft
0120E0: 65 6E 20 20 74 6F 6F 20 20 66 61 73 74 2E 0D 54 en too fast..T
0120F0: 68 65 72 65 66 6F 72 65 2C 20 69 74 20 69 73 20 herefore, it is
012100: 63 72 6F 6C 6C 5F 72 69 67 68 74 0D 6C 64 20 68 croll_right.ld h
012110: 6C 2C 28 73 63 72 6F 6C 6C 5F 6F 66 66 73 65 74 l,(scroll_offset
012120: 29 0D 69 6E 63 20 68 6C 20 20 20 20 20 20 20 20 ).inc hl
012130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012140: 20 20 3B 61 64 64 20 31 0D 6C 64 20 61 2C 68 0D ;add 1.ld a,h.
012150: 61 6E 64 20 26 30 33 20 20 20 20 20 20 20 20 20 and &03
012160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012170: 3B 65 6E 73 75 72 65 20 73 63 72 6F 6C 6C 5F 6F ;ensure scroll_o
012180: 66 66 73 65 74 20 69 73 20 69 6E 20 72 61 6E 67 ffset is in rang
012190: 65 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.
0121A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0121B0: 20 20 3B 26 30 30 30 30 2D 26 30 33 66 66 0D 6C ;&0000-&03ff.l
0121C0: 64 20 68 2C 61 0D 6C 64 20 28 73 63 72 6F 6C 6C d h,a.ld (scroll
0121D0: 5F 6F 66 66 73 65 74 29 2C 68 6C 0D 72 65 74 0D _offset),hl.ret.
0121E0: 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D .===============
0121F0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
012200: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
012210: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
012220: 3D 3D 3D 3D 3D 3D 3D 0D 0D 53 63 72 6F 6C 6C 20 =======..Scroll
012230: 74 68 65 20 73 63 72 65 65 6E 20 74 6F 20 74 68 the screen to th
012240: 65 20 6C 65 66 74 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D e left.---------
012250: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
012260: 2D 2D 2D 2D 0D 0D 2E 73 63 72 6F 6C 6C 5F 6C 65 ----...scroll_le
012270: 66 74 0D 0D 6C 64 20 68 6C 2C 28 73 63 72 6F 6C ft..ld hl,(scrol
012280: 6C 5F 6F 66 66 73 65 74 29 0D 64 65 63 20 68 6C l_offset).dec hl
012290: 0D 0D 6C 64 20 61 2C 68 0D 61 6E 64 20 26 30 33 ..ld a,h.and &03
0122A0: 0D 6C 64 20 68 2C 61 0D 0D 6C 64 20 28 73 63 72 .ld h,a..ld (scr
0122B0: 6F 6C 6C 5F 6F 66 66 73 65 74 29 2C 68 6C 0D 72 oll_offset),hl.r
0122C0: 65 74 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D et..============
0122D0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0122E0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0122F0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
012300: 70 6F 73 73 69 62 6C 65 20 74 6F 20 20 68 61 76 possible to hav
012310: 65 20 20 73 6C 6F 77 65 72 20 68 61 72 64 77 61 e slower hardwa
012320: 72 65 20 73 63 72 6F 6C 6C 69 6E 67 20 62 79 20 re scrolling by
012330: 75 73 69 6E 67 0D 72 65 67 69 73 74 65 72 20 33 using.register 3
012340: 20 66 6F 72 20 20 73 6D 6F 6F 74 68 65 72 20 20 for smoother
012350: 68 6F 72 69 7A 6F 6E 74 61 6C 20 20 73 63 72 6F horizontal scro
012360: 6C 6C 69 6E 67 2C 20 20 61 6E 64 20 20 72 65 67 lling, and reg
012370: 69 73 74 65 72 20 20 35 20 66 6F 72 0D 73 6D 6F ister 5 for.smo
012380: 6F 74 68 65 72 20 76 65 72 74 69 63 61 6C 20 73 other vertical s
012390: 63 72 6F 6C 6C 69 6E 67 2E 0D 0D 49 74 20 69 73 crolling...It is
0123A0: 20 69 6D 70 6F 72 74 61 6E 74 20 74 6F 20 6E 6F important to no
0123B0: 74 65 20 74 68 61 74 20 77 68 65 6E 20 74 68 65 te that when the
0123C0: 20 73 63 72 65 65 6E 20 69 73 20 68 61 72 64 77 screen is hardw
0123D0: 61 72 65 20 73 63 72 6F 6C 6C 65 64 2C 20 61 6C are scrolled, al
0123E0: 6C 0D 73 70 72 69 74 65 73 20 70 6C 6F 74 74 65 l.sprites plotte
0123F0: 64 20 6F 6E 20 20 69 74 20 20 77 69 6C 6C 20 20 d on it will
012400: 62 65 20 20 73 63 72 6F 6C 6C 65 64 20 20 61 6C be scrolled al
012410: 73 6F 2E 20 20 53 6F 20 20 74 68 65 20 70 6F 73 so. So the pos
012420: 69 74 69 6F 6E 20 6F 66 0D 73 70 72 69 74 65 73 ition of.sprites
012430: 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 6D on the screen m
012440: 75 73 74 20 62 65 20 20 75 70 64 61 74 65 64 2C ust be updated,
012450: 20 20 74 68 65 20 73 63 72 65 65 6E 20 73 63 72 the screen scr
012460: 6F 6C 6C 65 64 2C 20 61 6E 64 20 74 68 65 6E 0D olled, and then.
012470: 72 65 70 6C 6F 74 74 65 64 2E 0D 0D 0D 2A 2A 2A replotted....***
012480: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
012490: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
0124A0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
0124B0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
0124C0: 2A 2A 0D 0D 53 63 72 6F 6C 6C 69 6E 67 20 74 68 **..Scrolling th
0124D0: 65 20 73 63 72 65 65 6E 0D 2D 2D 2D 2D 2D 2D 2D e screen.-------
0124E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 54 -------------..T
0124F0: 68 65 20 6F 66 66 73 65 74 20 69 73 20 63 6F 6E he offset is con
012500: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 53 63 72 6F ==========..Scro
012510: 6C 6C 20 74 68 65 20 73 63 72 65 65 6E 20 75 70 ll the screen up
012520: 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D .---------------
012530: 2D 2D 2D 2D 2D 0D 0D 2E 73 63 72 6F 6C 6C 5F 75 -----...scroll_u
012540: 70 0D 6C 64 20 68 6C 2C 28 73 63 72 6F 6C 6C 5F p.ld hl,(scroll_
012550: 6F 66 66 73 65 74 29 0D 6C 64 20 62 63 2C 34 30 offset).ld bc,40
012560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012570: 20 20 20 20 20 20 20 20 3B 76 61 6C 75 65 20 70 ;value p
012580: 72 6F 67 72 61 6D 6D 65 64 20 74 6F 20 72 65 67 rogrammed to reg
012590: 69 73 74 65 72 20 31 0D 61 64 64 20 68 6C 2C 62 ister 1.add hl,b
0125A0: 63 0D 6C 64 20 61 2C 68 0D 61 6E 64 20 26 30 33 c.ld a,h.and &03
0125B0: 0D 6C 64 20 68 2C 61 0D 6C 64 20 28 73 63 72 6F .ld h,a.ld (scro
0125C0: 6C 6C 5F 6F 66 66 73 65 74 29 2C 68 6C 0D 72 65 ll_offset),hl.re
0125D0: 74 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D t..=============
0125E0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0125F0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
012600: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
012610: 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 53 63 72 6F 6C =========..Scrol
012620: 6C 20 74 68 65 20 73 63 72 65 65 6E 20 64 6F 77 l the screen dow
012630: 6E 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D n.--------------
012640: 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 2E 73 63 72 6F 6C --------...scrol
012650: 6C 5F 64 6F 77 6E 0D 6C 64 20 68 6C 2C 28 73 63 l_down.ld hl,(sc
012660: 72 6F 6C 6C 5F 6F 66 66 73 65 74 29 0D 6C 64 20 roll_offset).ld
012670: 62 63 2C 34 30 0D 6F 72 20 61 0D 73 62 63 20 68 bc,40.or a.sbc h
012680: 6C 2C 62 63 0D 0D 6C 64 20 61 2C 68 0D 61 6E 64 l,bc..ld a,h.and
012690: 20 26 30 33 0D 6C 64 20 68 2C 61 0D 6C 64 20 28 &03.ld h,a.ld (
0126A0: 73 63 72 6F 6C 6C 5F 6F 66 66 73 65 74 29 2C 68 scroll_offset),h
0126B0: 6C 0D 72 65 74 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D l.ret..=========
0126C0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0126D0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0126E0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0126F0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 64 =============..d
012700: 73 74 72 75 63 74 65 64 20 20 66 72 6F 6D 20 20 structed from
012710: 62 69 74 73 20 20 30 20 20 61 6E 64 20 20 31 20 bits 0 and 1
012720: 20 6F 66 20 20 72 65 67 69 73 74 65 72 20 31 32 of register 12
012730: 2C 20 61 6E 64 0D 72 65 67 69 73 74 65 72 20 31 , and.register 1
012740: 33 2E 0D 0D 54 68 69 73 20 66 6F 72 6D 73 20 61 3...This forms a
012750: 20 31 30 20 62 69 74 20 20 6E 75 6D 62 65 72 2E 10 bit number.
012760: 20 20 28 38 20 20 62 69 74 73 20 20 66 72 6F 6D (8 bits from
012770: 20 20 72 65 67 69 73 74 65 72 20 20 31 33 2C 20 register 13,
012780: 61 6E 64 20 32 20 66 72 6F 6D 0D 72 65 67 69 73 and 2 from.regis
012790: 74 65 72 20 31 32 29 2E 20 28 26 30 30 30 30 2D ter 12). (&0000-
0127A0: 26 30 33 46 46 29 0D 0D 42 79 20 63 68 61 6E 67 &03FF)..By chang
0127B0: 69 6E 67 20 74 68 65 20 76 61 6C 75 65 20 6F 66 ing the value of
0127C0: 20 74 68 65 20 6F 66 66 73 65 74 2C 20 77 65 20 the offset, we
0127D0: 73 63 72 6F 6C 6C 20 74 68 65 20 73 63 72 65 65 scroll the scree
0127E0: 6E 2E 0D 0D 54 6F 20 73 63 72 6F 6C 6C 20 74 68 n...To scroll th
0127F0: 65 20 73 63 72 65 65 6E 20 55 50 2C 20 41 44 44 e screen UP, ADD
012800: 20 74 68 65 20 76 61 6C 75 65 20 70 72 6F 67 72 the value progr
012810: 61 6D 6D 65 64 20 74 6F 20 72 65 67 69 73 74 65 ammed to registe
012820: 72 20 31 20 74 6F 20 74 68 65 0D 6F 66 66 73 65 r 1 to the.offse
012830: 74 2E 0D 0D 54 6F 20 73 63 72 6F 6C 6C 20 74 68 t...To scroll th
012840: 65 20 73 63 72 65 65 6E 20 44 4F 57 4E 2C 20 53 e screen DOWN, S
012850: 55 42 54 52 41 43 54 20 74 68 65 20 76 61 6C 75 UBTRACT the valu
012860: 65 20 70 72 6F 67 72 61 6D 6D 65 64 20 74 6F 20 e programmed to
012870: 72 65 67 69 73 74 65 72 20 31 0D 66 72 6F 6D 20 register 1.from
012880: 74 68 65 20 6F 66 66 73 65 74 2E 0D 0D 54 6F 20 the offset...To
012890: 73 63 72 6F 6C 6C 20 74 68 65 20 73 63 72 65 65 scroll the scree
0128A0: 6E 20 52 49 47 48 54 2C 20 41 44 44 20 6F 6E 65 n RIGHT, ADD one
0128B0: 20 74 6F 20 74 68 65 20 6F 66 66 73 65 74 2E 0D to the offset..
0128C0: 0D 54 6F 20 73 63 72 6F 6C 6C 20 74 68 65 20 73 .To scroll the s
0128D0: 63 72 65 65 6E 20 4C 45 46 54 2C 20 53 55 42 54 creen LEFT, SUBT
0128E0: 52 41 43 54 20 6F 6E 65 20 66 72 6F 6D 20 74 68 RACT one from th
0128F0: 65 20 6F 66 66 73 65 74 2E 0D 0D 49 6E 20 61 6C e offset...In al
012900: 29 20 52 75 70 74 75 72 65 20 74 65 63 68 6E 69 ) Rupture techni
012910: 63 2F 56 65 72 74 69 63 61 6C 20 73 70 6C 69 74 c/Vertical split
012920: 74 69 6E 67 0D 0D 54 48 49 53 20 54 45 43 48 4E ting..THIS TECHN
012930: 49 43 20 57 41 53 20 46 4F 55 4E 44 20 42 59 20 IC WAS FOUND BY
012940: 54 48 45 20 4C 4F 47 4F 4E 20 44 45 4D 4F 20 54 THE LOGON DEMO T
012950: 45 41 4D 2E 20 49 20 54 48 49 4E 4B 20 49 54 20 EAM. I THINK IT
012960: 57 41 53 20 4C 4F 4E 47 53 48 4F 54 0D 57 48 4F WAS LONGSHOT.WHO
012970: 20 46 4F 55 4E 44 20 49 54 2C 20 4F 52 20 46 52 FOUND IT, OR FR
012980: 45 44 20 43 52 41 5A 59 2E 20 41 4C 4C 20 43 52 ED CRAZY. ALL CR
012990: 45 44 49 54 53 20 54 4F 20 54 48 45 4D 2E 20 49 EDITS TO THEM. I
0129A0: 20 48 4F 50 45 20 54 48 45 59 20 44 4F 20 4E 4F HOPE THEY DO NO
0129B0: 54 0D 4D 49 4E 44 20 4D 45 20 47 49 56 49 4E 47 T.MIND ME GIVING
0129C0: 20 41 57 41 59 20 41 20 46 45 57 20 53 45 43 52 AWAY A FEW SECR
0129D0: 45 54 53 2E 0D 0D 54 68 69 73 20 74 65 63 68 6E ETS...This techn
0129E0: 69 63 20 69 73 20 75 73 65 64 20 77 69 64 65 6C ic is used widel
0129F0: 79 20 69 6E 20 64 65 6D 6F 73 2E 20 4E 6F 72 6D y in demos. Norm
012A00: 61 6C 6C 79 20 74 68 65 20 73 63 72 65 65 6E 20 ally the screen
012A10: 61 64 64 72 65 73 73 20 63 61 6E 0D 6F 6E 6C 79 address can.only
012A20: 20 62 65 20 63 68 61 6E 67 65 64 20 6F 6E 63 65 be changed once
012A30: 2E 20 54 68 65 20 43 52 54 43 20 6F 6E 6C 79 20 . The CRTC only
012A40: 61 6C 6C 6F 77 73 20 74 68 65 20 73 63 72 65 65 allows the scree
012A50: 6E 20 61 64 64 72 65 73 73 20 74 6F 20 62 65 0D n address to be.
012A60: 63 68 61 6E 67 65 64 20 77 68 65 6E 20 61 20 56 changed when a V
012A70: 53 59 4E 43 20 6F 63 63 75 72 73 2C 20 69 2E 65 SYNC occurs, i.e
012A80: 2E 20 77 68 65 6E 20 74 68 65 20 62 65 61 6D 20 . when the beam
012A90: 68 61 73 20 66 69 6E 69 73 68 65 64 20 64 72 61 has finished dra
012AA0: 77 69 6E 67 0D 74 68 65 20 73 63 72 65 65 6E 20 wing.the screen
012AB0: 61 6E 64 20 6D 6F 76 65 73 20 62 61 63 6B 20 74 and moves back t
012AC0: 6F 20 74 68 65 20 74 6F 70 2D 6C 65 66 74 20 61 o the top-left a
012AD0: 67 61 69 6E 2C 20 73 6F 20 74 68 61 74 20 69 74 gain, so that it
012AE0: 20 63 61 6E 20 73 74 61 72 74 0D 61 67 61 69 6E can start.again
012AF0: 2E 0D 0D 54 68 69 73 20 74 65 63 68 6E 69 63 20 ...This technic
012B00: 6C 20 63 61 73 65 73 20 77 65 20 6D 75 73 74 20 l cases we must
012B10: 20 65 6E 73 75 72 65 20 20 74 68 65 20 20 6F 66 ensure the of
012B20: 66 73 65 74 20 20 72 65 6D 61 69 6E 73 20 69 6E fset remains in
012B30: 20 74 68 65 20 72 61 6E 67 65 20 26 30 30 30 30 the range &0000
012B40: 2D 0D 26 30 33 46 46 2E 0D 3D 3D 3D 3D 3D 3D 3D -.&03FF..=======
012B50: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
012B60: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
012B70: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
012B80: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D ===============.
012B90: 0D 53 65 74 74 69 6E 67 20 74 68 65 20 73 63 72 .Setting the scr
012BA0: 65 65 6E 20 6F 66 66 73 65 74 0D 2D 2D 2D 2D 2D een offset.-----
012BB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
012BC0: 2D 2D 2D 2D 0D 0D 2E 73 65 74 5F 73 63 72 65 65 ----...set_scree
012BD0: 6E 5F 6F 66 66 73 65 74 0D 6C 64 20 68 6C 2C 28 n_offset.ld hl,(
012BE0: 73 63 72 6F 6C 6C 5F 6F 66 66 73 65 74 29 20 20 scroll_offset)
012BF0: 20 20 20 20 20 20 20 20 20 3B 26 30 30 30 30 2D ;&0000-
012C00: 26 30 33 46 46 0D 0D 6C 64 20 61 2C 68 0D 6F 72 &03FF..ld a,h.or
012C10: 20 25 30 30 78 78 30 30 30 30 20 20 20 20 20 20 %00xx0000
012C20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 77 ;w
012C30: 68 65 72 65 20 20 78 78 20 20 69 73 20 20 74 68 here xx is th
012C40: 65 20 20 6D 65 6D 6F 72 79 20 20 62 6C 6F 63 6B e memory block
012C50: 20 74 68 65 0D 20 20 20 20 20 20 20 20 20 20 20 the.
012C60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012C70: 20 20 20 20 20 3B 73 63 72 65 65 6E 20 69 73 20 ;screen is
012C80: 6C 6F 63 61 74 65 64 20 69 6E 2E 0D 0D 6C 64 20 located in...ld
012C90: 62 63 2C 26 62 63 30 30 2B 31 32 20 20 20 20 20 bc,&bc00+12
012CA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 43 52 ;CR
012CB0: 54 43 20 72 65 67 69 73 74 65 72 20 31 32 0D 6F TC register 12.o
012CC0: 75 74 20 28 63 29 2C 63 20 20 20 20 20 20 20 20 ut (c),c
012CD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B ;
012CE0: 73 65 6C 65 63 74 20 43 52 54 43 20 72 65 67 69 select CRTC regi
012CF0: 73 74 65 72 20 31 32 0D 0D 6C 64 20 62 2C 26 62 ster 12..ld b,&b
012D00: 66 6F 6F 6C 73 20 74 68 65 20 43 52 54 43 20 69 fools the CRTC i
012D10: 6E 74 6F 20 74 68 69 6E 6B 69 6E 67 20 61 20 56 nto thinking a V
012D20: 53 59 4E 43 20 68 61 73 20 6F 63 63 75 72 65 64 SYNC has occured
012D30: 2C 20 73 6F 20 74 68 61 74 0D 79 6F 75 20 63 61 , so that.you ca
012D40: 6E 20 63 68 61 6E 67 65 20 74 68 65 20 73 63 72 n change the scr
012D50: 65 65 6E 20 61 64 64 72 65 73 73 2E 20 53 6F 20 een address. So
012D60: 79 6F 75 20 63 61 6E 20 63 68 61 6E 67 65 20 74 you can change t
012D70: 68 65 20 73 63 72 65 65 6E 20 61 64 64 72 65 73 he screen addres
012D80: 73 0D 61 6E 79 77 68 65 72 65 20 6F 6E 20 74 68 s.anywhere on th
012D90: 65 20 73 63 72 65 65 6E 2E 0D 0D 54 68 69 73 20 e screen...This
012DA0: 61 6C 6C 6F 77 73 20 79 6F 75 20 74 6F 20 64 6F allows you to do
012DB0: 20 61 6D 61 7A 69 6E 67 20 74 68 69 6E 67 73 2E amazing things.
012DC0: 0D 0D 65 2E 67 2E 20 74 68 65 20 74 6F 70 20 70 ..e.g. the top p
012DD0: 61 72 74 20 6F 66 20 74 68 65 20 73 63 72 65 65 art of the scree
012DE0: 6E 20 73 63 72 6F 6C 6C 69 6E 67 20 28 75 73 69 n scrolling (usi
012DF0: 6E 67 20 68 61 72 64 77 61 72 65 29 2C 20 77 68 ng hardware), wh
012E00: 69 6C 73 74 0D 74 68 65 20 6C 6F 77 65 72 20 70 ilst.the lower p
012E10: 61 72 74 20 69 73 20 73 74 61 74 69 6F 6E 61 72 art is stationar
012E20: 79 2E 20 28 41 73 20 73 65 65 6E 20 69 6E 20 53 y. (As seen in S
012E30: 75 70 65 72 20 43 61 75 6C 64 72 6F 6E 20 61 6E uper Cauldron an
012E40: 64 20 50 72 65 68 69 73 74 6F 72 69 6B 0D 49 49 d Prehistorik.II
012E50: 29 2E 0D 0D 42 6F 74 68 20 6F 66 20 74 68 65 20 )...Both of the
012E60: 73 65 63 74 69 6F 6E 73 20 6F 66 20 74 68 65 20 sections of the
012E70: 73 63 72 65 65 6E 20 63 61 6E 20 73 74 61 72 74 screen can start
012E80: 20 61 74 20 61 20 64 69 66 66 65 72 65 6E 74 20 at a different
012E90: 6D 65 6D 6F 72 79 0D 6C 6F 63 61 74 69 6F 6E 2E memory.location.
012EA0: 0D 0D 53 6F 20 74 68 69 73 20 74 65 63 68 6E 69 ..So this techni
012EB0: 63 20 69 73 20 76 65 72 79 20 66 6C 65 78 69 62 c is very flexib
012EC0: 6C 65 2E 20 42 75 74 20 69 74 20 69 73 20 6E 6F le. But it is no
012ED0: 74 20 61 6E 20 65 61 73 79 20 74 65 63 68 6E 69 t an easy techni
012EE0: 63 20 74 6F 20 64 6F 2E 0D 0D 4D 61 6E 79 20 74 c to do...Many t
012EF0: 69 6D 65 73 2C 20 74 68 65 20 73 63 72 65 65 6E imes, the screen
012F00: 64 0D 6F 75 74 20 28 63 29 2C 61 20 20 20 20 20 d.out (c),a
012F10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012F20: 20 20 3B 73 65 6E 64 20 74 6F 70 20 32 20 62 69 ;send top 2 bi
012F30: 74 73 20 6F 66 20 6F 66 66 73 65 74 20 61 6E 64 ts of offset and
012F40: 20 6D 65 6D 6F 72 79 0D 20 20 20 20 20 20 20 20 memory.
012F50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012F60: 20 20 20 20 20 20 20 20 3B 62 6C 6F 63 6B 20 73 ;block s
012F70: 63 72 65 65 6E 20 69 73 20 6C 6F 63 61 74 65 64 creen is located
012F80: 20 69 6E 0D 6C 64 20 62 63 2C 26 62 63 30 30 2B in.ld bc,&bc00+
012F90: 31 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 13
012FA0: 20 20 20 20 3B 43 52 54 43 20 72 65 67 69 73 74 ;CRTC regist
012FB0: 65 72 20 31 33 0D 6F 75 74 20 28 63 29 2C 63 20 er 13.out (c),c
012FC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012FD0: 20 20 20 20 20 20 3B 73 65 6C 65 63 74 20 43 52 ;select CR
012FE0: 54 43 20 72 65 67 69 73 74 65 72 20 31 33 0D 6C TC register 13.l
012FF0: 64 20 62 2C 26 62 64 0D 6F 75 74 20 28 63 29 2C d b,&bd.out (c),
013000: 6C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l
013010: 20 20 20 20 20 20 20 20 3B 73 65 6E 64 20 6C 6F ;send lo
013020: 77 65 72 20 38 20 62 69 74 73 20 6F 66 20 6F 66 wer 8 bits of of
013030: 66 73 65 74 0D 72 65 74 0D 0D 2E 73 63 72 6F 6C fset.ret...scrol
013040: 6C 5F 6F 66 66 73 65 74 20 64 65 66 77 20 30 20 l_offset defw 0
013050: 20 20 20 20 20 20 20 20 20 20 3B 72 65 73 65 72 ;reser
013060: 76 65 20 32 20 62 79 74 65 73 20 66 6F 72 20 6F ve 2 bytes for o
013070: 66 66 73 65 74 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D ffset..=========
013080: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
013090: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0130A0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0130B0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 53 =============..S
0130C0: 63 72 6F 6C 6C 20 74 68 65 20 73 63 72 65 65 6E croll the screen
0130D0: 20 74 6F 20 74 68 65 20 72 69 67 68 74 0D 2D 2D to the right.--
0130E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0130F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 2E 73 ------------...s
013100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
013110: 10 00 01 00 02 09 4E E5 10 00 C1 02 00 00 00 02 ......N.........
013120: 10 00 C6 02 00 00 00 02 10 00 C2 02 00 00 00 02 ................
013130: 10 00 C7 02 00 00 00 02 10 00 C3 02 00 00 00 02 ................
013140: 10 00 C8 02 00 00 00 02 10 00 C4 02 00 00 00 02 ................
013150: 10 00 C9 02 00 00 00 02 10 00 C5 02 00 00 00 02 ................
013160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013200: 20 77 69 6C 6C 20 66 6C 69 63 6B 65 72 20 61 6E will flicker an
013210: 64 20 6C 6F 6F 6B 20 77 72 6F 6E 67 2C 20 62 75 d look wrong, bu
013220: 74 20 70 65 72 73 65 76 65 72 20 61 6E 64 20 69 t persever and i
013230: 74 0D 77 69 6C 6C 20 77 6F 72 6B 2E 20 41 6C 73 t.will work. Als
013240: 6F 2C 20 6F 6E 63 65 20 79 6F 75 20 64 6F 20 67 o, once you do g
013250: 65 74 20 69 74 20 74 6F 20 77 6F 72 6B 2C 20 63 et it to work, c
013260: 68 65 63 6B 20 69 74 20 6F 6E 20 64 69 66 66 65 heck it on diffe
013270: 72 65 6E 74 20 43 52 54 43 0D 74 79 70 65 73 2E rent CRTC.types.
013280: 20 28 59 6F 75 20 63 61 6E 20 66 69 6E 64 20 6F (You can find o
013290: 75 74 20 61 20 43 52 54 43 20 74 79 70 65 2C 20 ut a CRTC type,
0132A0: 62 79 20 72 75 6E 6E 69 6E 67 20 61 20 64 65 6D by running a dem
0132B0: 6F 20 77 68 69 63 68 20 68 61 73 20 43 52 54 43 o which has CRTC
0132C0: 0D 64 65 74 65 63 74 69 6F 6E 20 69 6E 20 69 74 .detection in it
0132D0: 20 2D 20 6C 69 6B 65 20 56 4F 59 41 47 45 20 39 - like VOYAGE 9
0132E0: 33 20 62 79 20 42 45 4E 47 21 29 2E 0D 0D 41 6C 3 by BENG!)...Al
0132F0: 73 6F 2C 20 79 6F 75 20 63 61 6E 20 61 63 68 69 so, you can achi
013300: 65 76 65 20 6F 76 65 72 73 63 61 6E 20 62 79 20 eve overscan by
013310: 75 73 69 6E 67 20 74 68 69 73 20 74 65 63 68 6E using this techn
013320: 69 63 2E 0D 0D 54 6F 20 73 65 74 2D 75 70 20 74 ic...To set-up t
013330: 68 65 20 73 70 6C 69 74 20 69 73 20 65 61 73 79 he split is easy
013340: 20 65 6E 6F 75 67 68 2E 0D 0D 61 29 20 46 69 72 enough...a) Fir
013350: 73 74 20 74 68 65 20 69 6E 74 65 72 72 75 70 74 st the interrupt
013360: 20 76 65 63 74 6F 72 20 6D 75 73 74 20 62 65 20 vector must be
013370: 73 65 74 20 73 6F 20 74 68 61 74 20 69 74 20 64 set so that it d
013380: 6F 65 73 20 6E 6F 74 68 69 6E 67 2E 0D 62 29 20 oes nothing..b)
013390: 54 68 65 6E 20 65 76 65 72 79 20 66 72 61 6D 65 Then every frame
0133A0: 2D 66 6C 79 62 61 63 6B 2F 56 59 53 4E 43 2C 20 -flyback/VYSNC,
0133B0: 70 75 74 20 26 66 66 20 69 6E 74 6F 20 72 65 67 put &ff into reg
0133C0: 69 73 74 65 72 20 37 20 6F 66 20 43 52 54 43 0D ister 7 of CRTC.
0133D0: 63 29 20 54 68 65 6E 20 70 75 74 20 69 6E 20 73 c) Then put in s
0133E0: 70 6C 69 74 20 76 61 6C 75 65 73 20 74 6F 20 73 plit values to s
0133F0: 65 70 65 72 61 74 65 20 73 63 72 65 65 6E 20 75 eperate screen u
013400: 30 30 30 31 30 30 30 30 20 20 20 3B 73 63 72 65 00010000 ;scre
013410: 65 6E 20 61 64 64 72 65 73 73 20 74 6F 20 26 34 en address to &4
013420: 30 30 30 0D 6F 75 74 20 28 63 29 2C 63 0D 6C 64 000.out (c),c.ld
013430: 20 62 63 2C 26 62 63 30 30 2B 31 33 0D 6F 75 74 bc,&bc00+13.out
013440: 20 28 63 29 2C 63 0D 6C 64 20 62 63 2C 26 62 64 (c),c.ld bc,&bd
013450: 30 30 0D 6F 75 74 20 28 63 29 2C 63 0D 6A 70 20 00.out (c),c.jp
013460: 6D 61 69 6E 5F 6C 6F 6F 70 0D 0D 28 54 68 65 72 main_loop..(Ther
013470: 65 20 69 73 20 61 6E 6F 74 68 65 72 20 65 78 61 e is another exa
013480: 6D 70 6C 65 20 6F 66 20 73 70 6C 69 74 74 69 6E mple of splittin
013490: 67 20 6F 6E 20 74 68 65 20 64 69 73 63 2E 20 53 g on the disc. S
0134A0: 50 4C 49 54 2E 4D 41 58 29 0D 0D 3D 3D 3D 3D 3D PLIT.MAX)..=====
0134B0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0134C0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0134D0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0134E0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0134F0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 1A 20 74 68 6F 73 =========.. thos
013500: 65 20 72 65 67 69 73 74 65 72 73 90 1A FF 00 FF e registers.....
013510: 09 09 09 09 09 09 09 09 20 73 65 6C 65 63 74 65 ........ selecte
013520: 64 20 74 65 78 74 0D 09 09 09 09 09 09 09 09 20 d text.........
013530: 77 69 6E 64 6F 77 2E 1A FF 00 00 00 00 FF FF FF window..........
013540: FF 00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF ................
013550: FF 00 00 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
013560: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
013570: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
013580: 72 20 69 6E 69 74 69 61 6C 69 73 61 74 69 6F 6E r initialisation
013590: 20 6F 66 20 73 70 6C 69 74 0D 6F 75 74 20 28 63 of split.out (c
0135A0: 29 2C 63 20 20 20 20 20 20 20 20 20 20 20 20 20 ),c
0135B0: 20 20 3B 2A 2A 20 49 4D 50 4F 52 54 41 4E 54 20 ;** IMPORTANT
0135C0: 2A 2A 0D 6C 64 20 62 63 2C 26 62 64 30 30 0D 6F **.ld bc,&bd00.o
0135D0: 75 74 20 28 63 29 2C 63 0D 0D 6C 64 20 62 63 2C ut (c),c..ld bc,
0135E0: 26 62 63 30 30 2B 31 32 0D 6F 75 74 20 28 63 29 &bc00+12.out (c)
0135F0: 2C 63 0D 6C 64 20 62 63 2C 26 62 64 30 30 2B 25 ,c.ld bc,&bd00+%
013600: 70 2E 0D 64 29 20 54 68 65 6E 20 69 6E 20 62 6F p..d) Then in bo
013610: 74 74 6F 6D 20 6F 66 20 73 63 72 65 65 6E 2C 20 ttom of screen,
013620: 70 75 74 20 26 30 30 20 69 6E 74 6F 20 72 65 67 put &00 into reg
013630: 69 73 74 65 72 20 37 20 6F 66 20 43 52 54 43 2E ister 7 of CRTC.
013640: 0D 0D 54 68 65 20 69 6E 74 65 72 72 75 70 74 73 ..The interrupts
013650: 20 65 66 66 65 63 74 69 76 65 6C 79 20 73 70 6C effectively spl
013660: 69 74 20 74 68 65 20 73 63 72 65 65 6E 20 69 6E it the screen in
013670: 74 6F 20 36 20 62 6C 6F 63 6B 73 2E 20 53 6F 20 to 6 blocks. So
013680: 77 65 20 63 61 6E 20 65 61 73 69 6C 79 0D 77 61 we can easily.wa
013690: 69 74 20 66 6F 72 20 61 6E 20 69 6E 74 65 72 72 it for an interr
0136A0: 75 70 74 20 74 6F 20 6F 63 63 75 72 20 62 79 20 upt to occur by
0136B0: 75 73 69 6E 67 20 61 20 48 41 4C 54 20 69 6E 73 using a HALT ins
0136C0: 74 72 75 63 74 69 6F 6E 2C 20 74 68 65 6E 20 77 truction, then w
0136D0: 65 20 63 61 6E 0D 70 72 6F 67 72 61 6D 20 74 68 e can.program th
0136E0: 65 20 73 70 6C 69 74 20 76 61 6C 75 65 73 2E 0D e split values..
0136F0: 0D 28 54 68 69 73 20 63 6F 64 65 20 63 61 6E 20 .(This code can
013700: 62 65 20 66 6F 75 6E 64 20 69 6E 20 74 68 65 20 be found in the
013710: 66 69 6C 65 20 53 50 4C 54 53 48 4C 4C 2E 4D 41 file SPLTSHLL.MA
013720: 58 29 2E 0D 0D 53 69 6E 63 65 20 77 65 20 63 68 X)...Since we ch
013730: 61 6E 67 65 20 74 68 65 20 69 6E 74 65 72 72 75 ange the interru
013740: 70 74 20 76 65 63 74 6F 72 20 74 6F 20 73 6F 6D pt vector to som
013750: 65 74 68 69 6E 67 20 64 69 66 66 65 72 65 6E 74 ething different
013760: 2C 20 74 68 65 20 6B 65 79 62 6F 61 72 64 0D 77 , the keyboard.w
013770: 69 6C 6C 20 6E 6F 74 20 62 65 20 73 63 61 6E 6E ill not be scann
013780: 65 64 20 6F 72 20 61 6E 79 74 68 69 6E 67 20 64 ed or anything d
013790: 6F 6E 65 2C 20 73 6F 20 61 6C 6C 20 74 68 69 73 one, so all this
0137A0: 20 68 61 73 20 74 6F 20 62 65 20 64 6F 6E 65 2C has to be done,
0137B0: 20 62 79 0D 70 72 6F 67 72 61 6D 6D 69 6E 67 20 by.programming
0137C0: 74 68 65 20 68 61 72 64 77 61 72 65 20 64 69 72 the hardware dir
0137D0: 65 63 74 6C 79 2E 0D 0D 4E 6F 77 20 74 6F 20 61 ectly...Now to a
0137E0: 63 74 75 61 6C 6C 79 20 73 65 74 75 70 20 74 68 ctually setup th
0137F0: 65 20 73 70 6C 69 74 73 2C 20 77 65 20 75 73 65 e splits, we use
013800: 1B 40 53 65 6C 65 63 74 69 6E 67 20 61 6E 20 45 .@Selecting an E
013810: 78 70 61 6E 73 69 6F 6E 20 52 6F 6D 0D 2D 2D 2D xpansion Rom.---
013820: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
013830: 2D 2D 2D 2D 2D 2D 2D 0D 0D 54 6F 20 73 65 6C 65 -------..To sele
013840: 63 74 20 61 6E 20 65 78 70 61 6E 73 69 6F 6E 20 ct an expansion
013850: 72 6F 6D 2C 20 73 69 6D 70 6C 79 20 73 65 6E 64 rom, simply send
013860: 20 74 68 65 20 6E 75 6D 62 65 72 20 6F 66 20 74 the number of t
013870: 68 65 20 65 78 70 61 6E 73 69 6F 6E 0D 72 6F 6D he expansion.rom
013880: 20 74 6F 20 70 6F 72 74 20 26 44 46 78 78 2E 20 to port &DFxx.
013890: 28 41 6E 20 65 78 70 61 6E 73 69 6F 6E 20 20 72 (An expansion r
0138A0: 6F 6D 20 20 6D 61 79 20 20 68 61 76 65 20 61 20 om may have a
0138B0: 6E 75 6D 62 65 72 20 66 72 6F 6D 20 30 2D 32 35 number from 0-25
0138C0: 35 29 2E 0D 57 68 65 72 65 20 61 20 76 61 6C 75 5)..Where a valu
0138D0: 65 20 6F 66 20 30 20 77 69 6C 6C 20 20 73 65 6C e of 0 will sel
0138E0: 65 63 74 20 20 42 41 53 49 43 2C 20 20 61 6E 64 ect BASIC, and
0138F0: 20 20 61 20 76 61 6C 75 65 20 6F 66 20 37 20 77 a value of 7 w
013900: 69 6C 6C 20 73 65 6C 65 63 74 0D 41 4D 53 44 4F ill select.AMSDO
013910: 53 2E 0D 0D 48 6F 77 65 76 65 72 20 74 68 69 73 S...However this
013920: 20 70 72 6F 63 65 73 73 20 6F 6E 6C 79 20 73 65 process only se
013930: 6C 65 63 74 73 20 74 68 65 20 65 78 70 61 6E 73 lects the expans
013940: 69 6F 6E 20 72 6F 6D 2E 20 49 74 20 64 6F 65 73 ion rom. It does
013950: 20 6E 6F 74 20 61 6C 6C 6F 77 0D 74 68 65 20 75 not allow.the u
013960: 73 65 72 20 74 6F 20 61 63 63 65 73 73 20 61 6E ser to access an
013970: 79 20 72 6F 75 74 69 6E 65 73 20 20 69 6E 20 20 y routines in
013980: 74 68 65 20 20 72 6F 6D 2E 20 54 6F 20 61 6C 6C the rom. To all
013990: 6F 77 20 72 6F 75 74 69 6E 65 73 20 74 6F 20 62 ow routines to b
0139A0: 65 0D 61 63 63 65 73 73 65 64 20 74 68 65 20 75 e.accessed the u
0139B0: 73 65 72 20 6D 75 73 74 20 65 6E 61 62 6C 65 20 ser must enable
0139C0: 74 68 65 20 75 70 70 65 72 20 72 6F 6D 20 75 73 the upper rom us
0139D0: 69 6E 67 20 74 68 65 20 47 61 74 65 20 41 72 72 ing the Gate Arr
0139E0: 61 79 2E 20 28 53 65 65 0D 70 72 6F 67 72 61 6D ay. (See.program
0139F0: 6D 69 6E 67 20 74 68 65 20 67 61 74 65 20 61 72 ming the gate ar
013A00: 20 72 65 67 69 73 74 65 72 20 26 34 20 6F 66 20 register &4 of
013A10: 43 52 54 43 2E 0D 0D 53 69 6D 70 6C 79 20 70 72 CRTC...Simply pr
013A20: 6F 67 72 61 6D 20 74 68 65 20 68 65 69 67 68 74 ogram the height
013A30: 20 6F 66 20 74 68 65 20 62 6C 6F 63 6B 20 79 6F of the block yo
013A40: 75 20 77 61 6E 74 20 28 69 6E 20 63 68 61 72 61 u want (in chara
013A50: 63 74 65 72 20 73 69 7A 65 64 20 75 6E 69 74 73 cter sized units
013A60: 29 2D 31 2E 0D 54 68 65 6E 20 62 65 66 6F 72 65 )-1..Then before
013A70: 20 74 68 65 20 62 6C 6F 63 6B 20 77 69 6C 6C 20 the block will
013A80: 65 6E 64 2C 20 70 72 6F 67 72 61 6D 20 61 20 6E end, program a n
013A90: 65 77 20 62 6C 6F 63 6B 20 68 65 69 67 68 74 2E ew block height.
013AA0: 0D 0D 54 68 65 20 74 6F 74 61 6C 20 68 65 69 67 ..The total heig
013AB0: 68 74 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E ht of the screen
013AC0: 20 69 73 20 33 38 20 63 68 61 72 61 63 74 65 72 is 38 character
013AD0: 73 20 74 61 6C 6C 2E 20 53 6F 2C 20 61 6C 6C 20 s tall. So, all
013AE0: 74 68 65 20 62 6C 6F 63 6B 73 0D 68 65 69 67 68 the blocks.heigh
013AF0: 74 73 20 73 68 6F 75 6C 64 20 61 64 64 20 75 70 ts should add up
013B00: 20 74 6F 20 33 38 2E 0D 0D 53 6F 20 6C 65 74 73 to 38...So lets
013B10: 20 73 61 79 2C 20 77 65 20 77 61 6E 74 20 74 68 say, we want th
013B20: 65 20 73 63 72 65 65 6E 20 73 70 6C 69 74 20 69 e screen split i
013B30: 6E 20 68 61 6C 66 2E 20 57 65 20 77 61 6E 74 2C n half. We want,
013B40: 20 74 77 6F 20 62 6C 6F 63 6B 73 20 6F 66 20 68 two blocks of h
013B50: 65 69 67 68 74 0D 31 39 20 63 68 61 72 61 63 74 eight.19 charact
013B60: 65 72 73 2C 20 74 6F 70 20 62 6C 6F 63 6B 20 75 ers, top block u
013B70: 73 69 6E 67 20 6D 65 6D 6F 72 79 20 61 74 20 26 sing memory at &
013B80: 34 30 30 30 2D 26 38 30 30 30 2C 20 74 68 65 20 4000-&8000, the
013B90: 73 65 63 6F 6E 64 20 75 73 69 6E 67 20 6D 65 6D second using mem
013BA0: 6F 72 79 0D 61 74 20 26 43 30 30 30 2D 26 46 46 ory.at &C000-&FF
013BB0: 46 46 2E 0D 0D 3B 20 74 68 65 20 63 6F 64 65 20 FF...; the code
013BC0: 77 6F 75 6C 64 20 62 65 0D 0D 3D 3D 3D 3D 3D 3D would be..======
013BD0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
013BE0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
013BF0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
013C00: 72 61 79 20 74 6F 20 73 65 65 20 68 6F 77 20 74 ray to see how t
013C10: 68 69 73 20 69 73 20 64 6F 6E 65 29 2E 0D 0D 41 his is done)...A
013C20: 20 70 72 6F 67 72 61 6D 6D 69 6E 67 20 65 78 61 programming exa
013C30: 6D 70 6C 65 20 69 73 20 67 69 76 65 6E 20 74 6F mple is given to
013C40: 20 20 73 68 6F 77 20 20 68 6F 77 20 20 74 6F 20 show how to
013C50: 73 65 6C 65 63 74 20 61 6E 64 20 64 69 73 61 62 select and disab
013C60: 6C 65 20 61 6E 0D 65 78 70 61 6E 73 69 6F 6E 20 le an.expansion
013C70: 72 6F 6D 2E 0D 0D 4E 6F 74 65 20 70 6F 72 74 20 rom...Note port
013C80: 26 44 46 78 78 20 69 73 20 61 20 77 72 69 74 65 &DFxx is a write
013C90: 20 20 6F 6E 6C 79 20 20 70 6F 72 74 2C 20 72 65 only port, re
013CA0: 61 64 69 6E 67 20 77 69 6C 6C 20 72 65 74 75 72 ading will retur
013CB0: 6E 20 61 20 6E 6F 6E 73 65 6E 73 65 0D 76 61 6C n a nonsense.val
013CC0: 75 65 2E 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ue...===========
013CD0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
013CE0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
013CF0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
013D00: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 50 72 6F ===========..Pro
013D10: 67 72 61 6D 6D 69 6E 67 20 45 78 61 6D 70 6C 65 gramming Example
013D20: 73 3A 0D 0D 0D 61 29 20 53 65 6C 65 63 74 69 6E s:...a) Selectin
013D30: 67 20 61 6E 20 65 78 70 61 6E 73 69 6F 6E 20 72 g an expansion r
013D40: 6F 6D 0D 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D om. ----------
013D50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
013D60: 0D 0D 54 6F 20 73 65 6C 65 63 74 20 72 6F 6D 20 ..To select rom
013D70: 37 2E 20 28 41 4D 53 44 4F 53 29 0D 0D 6C 64 20 7. (AMSDOS)..ld
013D80: 62 63 2C 26 37 66 30 30 20 20 20 20 20 3B 47 61 bc,&7f00 ;Ga
013D90: 74 65 20 41 72 72 61 79 0D 6C 64 20 61 2C 25 31 te Array.ld a,%1
013DA0: 30 30 30 30 31 30 30 20 20 3B 65 6E 61 62 6C 65 0000100 ;enable
013DB0: 20 75 70 70 65 72 20 72 6F 6D 2C 20 64 69 73 61 upper rom, disa
013DC0: 62 6C 65 20 6C 6F 77 65 72 20 72 6F 6D 2C 20 6D ble lower rom, m
013DD0: 6F 64 65 20 30 0D 6F 75 74 20 28 63 29 2C 61 20 ode 0.out (c),a
013DE0: 20 20 20 20 20 20 3B 73 65 6E 64 20 69 74 0D 0D ;send it..
013DF0: 6C 64 20 62 63 2C 26 44 46 30 30 20 20 20 20 20 ld bc,&DF00
013E00: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
013E10: 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 6F 72 67 20 26 =========..org &
013E20: 34 30 30 30 0D 0D 64 69 20 20 20 20 20 20 20 20 4000..di
013E30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 63 ;c
013E40: 68 61 6E 67 65 20 69 6E 74 65 72 72 75 70 74 20 hange interrupt
013E50: 76 65 63 74 6F 72 0D 6C 64 20 68 6C 2C 26 63 39 vector.ld hl,&c9
013E60: 66 62 0D 6C 64 20 28 26 30 30 33 38 29 2C 68 6C fb.ld (&0038),hl
013E70: 0D 65 69 0D 0D 3B 3B 73 70 6C 69 74 74 69 6E 67 .ei..;;splitting
013E80: 20 70 61 72 74 0D 0D 2E 6D 61 69 6E 5F 6C 6F 6F part...main_loo
013E90: 70 0D 6C 64 20 62 2C 26 66 35 20 20 20 20 20 20 p.ld b,&f5
013EA0: 20 20 20 20 20 20 20 20 20 20 3B 77 61 69 74 20 ;wait
013EB0: 66 6F 72 20 66 72 61 6D 65 20 66 6C 79 62 61 63 for frame flybac
013EC0: 6B 2F 56 53 59 4E 43 0D 2E 6E 6F 5F 56 53 59 4E k/VSYNC..no_VSYN
013ED0: 43 0D 69 6E 20 61 2C 28 63 29 0D 72 72 61 0D 6A C.in a,(c).rra.j
013EE0: 70 20 6E 63 2C 6E 6F 5F 56 53 59 4E 43 0D 0D 6C p nc,no_VSYNC..l
013EF0: 64 20 62 63 2C 26 62 63 30 30 2B 37 0D 6F 75 74 d bc,&bc00+7.out
013F00: 20 28 63 29 2C 63 0D 6C 64 20 62 63 2C 26 62 64 (c),c.ld bc,&bd
013F10: 66 66 0D 6F 75 74 20 28 63 29 2C 63 20 20 20 20 ff.out (c),c
013F20: 20 20 20 20 20 20 20 20 20 20 20 3B 49 4E 49 54 ;INIT
013F30: 49 41 4C 49 53 45 20 53 50 4C 49 54 20 2A 2A 49 IALISE SPLIT **I
013F40: 4D 50 4F 52 54 41 4E 54 2A 2A 0D 0D 6C 64 20 62 MPORTANT**..ld b
013F50: 63 2C 26 62 63 30 34 0D 6F 75 74 20 28 63 29 2C c,&bc04.out (c),
013F60: 63 0D 6C 64 20 62 63 2C 26 62 64 30 30 2B 31 39 c.ld bc,&bd00+19
013F70: 2D 31 20 20 20 20 20 20 20 20 3B 68 65 69 67 68 -1 ;heigh
013F80: 74 20 6F 66 20 66 69 72 73 74 20 62 6C 6F 63 6B t of first block
013F90: 0D 6F 75 74 20 28 63 29 2C 63 0D 0D 68 61 6C 74 .out (c),c..halt
013FA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
013FB0: 20 20 20 20 3B 77 61 69 74 20 36 2E 35 20 6C 69 ;wait 6.5 li
013FC0: 6E 65 73 0D 0D 6C 64 20 62 63 2C 26 62 63 30 30 nes..ld bc,&bc00
013FD0: 2B 31 32 20 20 20 20 20 20 20 20 20 20 3B 73 63 +12 ;sc
013FE0: 72 65 65 6E 20 61 64 64 72 65 73 73 20 74 6F 20 reen address to
013FF0: 26 43 30 30 30 2D 26 46 46 46 46 0D 6F 75 74 20 &C000-&FFFF.out
014000: 3B 65 78 70 61 6E 73 69 6F 6E 20 72 6F 6D 20 73 ;expansion rom s
014010: 65 6C 65 63 74 20 70 6F 72 74 0D 6C 64 20 61 2C elect port.ld a,
014020: 37 20 20 20 20 20 20 20 20 20 20 3B 65 78 70 61 7 ;expa
014030: 6E 73 69 6F 6E 20 72 6F 6D 20 77 61 6E 74 65 64 nsion rom wanted
014040: 0D 6F 75 74 20 28 63 29 2C 61 20 20 20 20 20 20 .out (c),a
014050: 20 3B 73 65 6C 65 63 74 20 69 74 0D 72 65 74 0D ;select it.ret.
014060: 0D 0D 62 29 20 44 69 73 61 62 6C 69 6E 67 20 61 ..b) Disabling a
014070: 6E 20 65 78 70 61 6E 73 69 6F 6E 20 72 6F 6D 0D n expansion rom.
014080: 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -------------
014090: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 6C -------------..l
0140A0: 64 20 62 63 2C 26 37 66 30 30 20 20 20 20 20 3B d bc,&7f00 ;
0140B0: 47 61 74 65 20 41 72 72 61 79 0D 6C 64 20 61 2C Gate Array.ld a,
0140C0: 25 31 30 30 30 31 31 30 30 20 20 3B 75 70 70 65 %10001100 ;uppe
0140D0: 72 20 61 6E 64 20 6C 6F 77 65 72 20 72 6F 6D 20 r and lower rom
0140E0: 64 69 73 61 62 6C 65 64 2C 20 6D 6F 64 65 20 30 disabled, mode 0
0140F0: 0D 6F 75 74 20 28 63 29 2C 61 20 20 20 20 20 20 .out (c),a
014100: 20 3B 73 65 6E 64 20 69 74 0D 72 65 74 0D 0D 1A ;send it.ret...
014110: 65 6C 65 63 74 20 61 6E 20 65 78 70 61 6E 73 69 elect an expansi
014120: 6F 6E 20 72 6F 6D 2C 20 73 69 6D 70 6C 79 20 73 on rom, simply s
014130: 65 6E 64 20 74 68 65 20 6E 75 6D 62 65 72 20 6F end the number o
014140: 66 20 74 68 65 20 65 78 70 61 6E 73 69 6F 6E 20 f the expansion
014150: 0D 8A 1A 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
014160: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
014170: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
014180: 62 63 2C 26 37 66 30 30 20 20 20 20 20 3B 47 61 bc,&7f00 ;Ga
014190: 74 65 20 41 72 72 61 79 0D 6C 64 20 61 2C 25 31 te Array.ld a,%1
0141A0: 30 30 30 30 31 30 30 20 20 3B 65 6E 61 62 6C 65 0000100 ;enable
0141B0: 20 75 70 70 65 72 20 72 6F 6D 2C 20 64 69 73 61 upper rom, disa
0141C0: 62 6C 65 20 6C 6F 77 65 72 20 72 6F 6D 2C 20 6D ble lower rom, m
0141D0: 6F 64 65 20 30 0D 6F 75 74 20 28 63 29 2C 61 20 ode 0.out (c),a
0141E0: 20 20 20 20 20 20 3B 73 65 6E 64 20 69 74 0D 0D ;send it..
0141F0: 6C 64 20 62 63 2C 26 44 46 30 30 20 20 20 20 20 ld bc,&DF00
014200: 28 63 29 2C 63 0D 6C 64 20 62 63 2C 26 62 64 30 (c),c.ld bc,&bd0
014210: 30 2B 25 30 30 31 31 30 30 30 30 0D 6F 75 74 20 0+%00110000.out
014220: 28 63 29 2C 63 0D 6C 64 20 62 63 2C 26 62 63 30 (c),c.ld bc,&bc0
014230: 30 2B 31 33 0D 6F 75 74 20 28 63 29 2C 63 0D 6C 0+13.out (c),c.l
014240: 64 20 62 63 2C 26 62 64 30 30 0D 6F 75 74 20 28 d bc,&bd00.out (
014250: 63 29 2C 63 0D 0D 68 61 6C 74 20 20 20 20 20 20 c),c..halt
014260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 77 ;w
014270: 61 69 74 20 36 2E 35 20 6C 69 6E 65 73 0D 0D 6C ait 6.5 lines..l
014280: 64 20 62 2C 31 35 20 20 20 20 20 20 20 20 20 20 d b,15
014290: 20 20 20 20 20 20 20 3B 6E 6F 74 20 73 75 72 65 ;not sure
0142A0: 20 72 65 61 73 6F 6E 20 66 6F 72 20 74 68 69 73 reason for this
0142B0: 2C 20 6D 61 79 62 65 20 74 6F 20 61 6C 6C 6F 77 , maybe to allow
0142C0: 20 63 6F 6D 70 61 74 69 62 69 6C 74 79 0D 2E 77 compatibilty..w
0142D0: 61 69 74 20 64 6A 6E 7A 20 77 61 69 74 20 20 20 ait djnz wait
0142E0: 20 20 20 20 20 20 3B 77 69 74 68 20 6F 74 68 65 ;with othe
0142F0: 72 20 43 52 54 43 73 0D 0D 6C 64 20 62 63 2C 26 r CRTCs..ld bc,&
014300: 62 63 30 34 0D 6F 75 74 20 28 63 29 2C 63 0D 6C bc04.out (c),c.l
014310: 64 20 62 63 2C 26 62 64 30 30 2B 31 39 2D 31 20 d bc,&bd00+19-1
014320: 20 20 20 20 20 20 20 3B 68 65 69 67 68 74 20 6F ;height o
014330: 66 20 73 65 63 6F 6E 64 20 62 6C 6F 63 6B 0D 6F f second block.o
014340: 75 74 20 28 63 29 2C 63 0D 68 61 6C 74 0D 0D 68 ut (c),c.halt..h
014350: 61 6C 74 0D 0D 68 61 6C 74 0D 0D 68 61 6C 74 0D alt..halt..halt.
014360: 6C 64 20 62 63 2C 26 62 63 30 30 2B 37 20 20 20 ld bc,&bc00+7
014370: 20 20 20 20 20 20 20 20 3B 61 6C 73 6F 20 66 6F ;also fo
014380: 72 20 69 6E 69 74 69 61 6C 69 73 61 74 69 6F 6E r initialisation
014390: 20 6F 66 20 73 70 6C 69 74 0D 6F 75 74 20 28 63 of split.out (c
0143A0: 29 2C 63 20 20 20 20 20 20 20 20 20 20 20 20 20 ),c
0143B0: 20 20 3B 2A 2A 20 49 4D 50 4F 52 54 41 4E 54 20 ;** IMPORTANT
0143C0: 2A 2A 0D 6C 64 20 62 63 2C 26 62 64 30 30 0D 6F **.ld bc,&bd00.o
0143D0: 75 74 20 28 63 29 2C 63 0D 0D 6C 64 20 62 63 2C ut (c),c..ld bc,
0143E0: 26 62 63 30 30 2B 31 32 0D 6F 75 74 20 28 63 29 &bc00+12.out (c)
0143F0: 2C 63 0D 6C 64 20 62 63 2C 26 62 64 30 30 2B 25 ,c.ld bc,&bd00+%
014400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
014410: 11 00 01 00 02 09 4E E5 11 00 C1 02 00 00 00 02 ......N.........
014420: 11 00 C6 02 00 00 00 02 11 00 C2 02 00 00 00 02 ................
014430: 11 00 C7 02 00 00 00 02 11 00 C3 02 00 00 00 02 ................
014440: 11 00 C8 02 00 00 00 02 11 00 C4 02 00 00 00 02 ................
014450: 11 00 C9 02 00 00 00 02 11 00 C5 02 00 00 00 02 ................
014460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0145A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0145B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0145C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0145D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0145E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0145F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0146A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0146B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0146C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0146D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0146E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0146F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014700: 07 50 53 47 2E 54 58 54 00 00 00 01 00 09 C2 E0 .PSG.TXT........
014710: 00 00 2A 00 00 09 C2 E0 00 00 02 00 00 10 98 1C ..*.............
014720: 54 45 58 54 4D 41 43 41 01 00 00 D0 00 C0 00 00 TEXTMACA........
014730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014740: A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 7F FF FF CF ................
014750: 50 53 47 20 20 20 20 20 54 58 54 00 0B 52 45 41 PSG TXT..REA
014760: 44 2D 4D 45 2E 54 58 54 00 09 C2 E0 00 00 2A 00 D-ME.TXT......*.
014770: 00 09 C2 E0 00 00 02 00 00 10 98 1C 54 45 58 54 ............TEXT
014780: 4D 41 43 41 01 00 00 D0 01 00 00 00 00 00 00 00 MACA............
014790: 00 00 00 00 00 00 00 00 00 00 00 00 A6 DD 00 E4 ................
0147A0: A6 DD 00 E4 00 00 00 00 7F FF FF CE 52 45 41 44 ............READ
0147B0: 2D 4D 45 20 54 58 54 00 0B 52 45 41 44 4B 45 59 -ME TXT..READKEY
0147C0: 2E 54 58 54 00 09 C2 E0 00 00 2A 00 00 09 C2 E0 .TXT......*.....
0147D0: 00 00 02 00 00 10 98 1C 54 45 58 54 4D 41 43 41 ........TEXTMACA
0147E0: 01 00 01 04 00 00 00 00 00 00 00 00 00 00 00 00 ................
0147F0: 00 00 00 00 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 ................
014800: 00 00 00 00 7F FF FF CD 52 45 41 44 4B 45 59 20 ........READKEY
014810: 54 58 54 00 08 52 53 58 53 48 45 4C 4C 00 00 01 TXT..RSXSHELL...
014820: 00 09 C2 E0 00 00 2A 00 00 09 C2 E0 00 00 02 00 ......*.........
014830: 00 10 98 1C 54 45 58 54 4D 41 43 41 01 00 01 04 ....TEXTMACA....
014840: 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .@..............
014850: 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 ................
014860: 7F FF FF CC 52 53 58 53 48 45 4C 4C 20 20 20 00 ....RSXSHELL .
014870: 07 53 43 52 2E 54 58 54 00 00 00 01 00 09 C2 E0 .SCR.TXT........
014880: 00 00 2A 00 00 09 C2 E0 00 00 02 00 00 10 98 1C ..*.............
014890: 54 45 58 54 4D 41 43 41 01 00 01 04 00 80 00 00 TEXTMACA........
0148A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0148B0: A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 7F FF FF CB ................
0148C0: 53 43 52 20 20 20 20 20 54 58 54 00 09 53 4F 55 SCR TXT..SOU
0148D0: 4E 44 2E 54 58 54 00 01 00 09 C2 E0 00 00 2A 00 ND.TXT........*.
0148E0: 00 09 C2 E0 00 00 02 00 00 10 98 1C 54 45 58 54 ............TEXT
0148F0: 4D 41 43 41 01 00 01 04 00 C0 00 00 00 00 00 00 MACA............
014900: 08 38 32 35 35 2E 54 58 54 03 EB E4 00 28 FF ED .8255.TXT....(..
014910: 00 29 00 00 03 54 00 10 97 FC 00 11 94 92 84 02 .)...T..........
014920: 54 45 58 54 4D 41 43 41 01 00 00 00 00 00 00 00 TEXTMACA........
014930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014940: A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 7F FF FF E5 ................
014950: 38 32 35 35 20 20 20 20 54 58 54 01 09 38 32 35 8255 TXT..825
014960: 35 32 2E 54 58 54 00 00 00 00 00 00 00 00 00 00 52.TXT..........
014970: 03 54 00 10 97 FC 00 11 94 92 84 02 54 45 58 54 .T..........TEXT
014980: 4D 41 43 41 01 00 00 00 00 40 00 00 00 00 00 00 MACA.....@......
014990: 00 00 00 00 00 00 00 00 00 00 00 00 A6 DD 00 E4 ................
0149A0: A6 DD 00 E4 00 00 00 00 7F FF FF E4 38 32 35 35 ............8255
0149B0: 32 20 20 20 54 58 54 01 08 42 44 4F 53 2E 54 58 2 TXT..BDOS.TX
0149C0: 54 00 00 00 00 00 00 00 00 00 00 00 03 54 00 10 T............T..
0149D0: 97 FC 00 11 94 92 84 02 54 45 58 54 4D 41 43 41 ........TEXTMACA
0149E0: 01 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 ................
0149F0: 00 00 00 00 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 ................
014A00: 00 00 00 00 7F FF FF E3 42 44 4F 53 20 20 20 20 ........BDOS
014A10: 54 58 54 01 07 43 41 53 2E 54 58 54 00 00 00 00 TXT..CAS.TXT....
014A20: 00 00 00 00 00 00 00 00 03 54 00 10 97 FC 00 11 .........T......
014A30: 94 92 84 02 54 45 58 54 4D 41 43 41 01 00 00 00 ....TEXTMACA....
014A40: 00 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014A50: 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 ................
014A60: 7F FF FF E2 43 41 53 20 20 20 20 20 54 58 54 01 ....CAS TXT.
014A70: 0B 43 4F 4E 4E 45 43 54 2E 54 58 54 00 00 00 00 .CONNECT.TXT....
014A80: 00 00 00 00 03 54 00 10 97 FC 00 11 94 92 84 02 .....T..........
014A90: 54 45 58 54 4D 41 43 41 01 00 00 00 01 00 00 00 TEXTMACA........
014AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014AB0: A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 7F FF FF E1 ................
014AC0: 43 4F 4E 4E 45 43 54 20 54 58 54 01 0C 43 4F 4E CONNECT TXT..CON
014AD0: 54 43 48 41 52 2E 54 58 54 00 00 00 00 00 00 00 TCHAR.TXT.......
014AE0: 03 54 00 10 97 FC 00 11 94 92 84 02 54 45 58 54 .T..........TEXT
014AF0: 4D 41 43 41 01 00 00 34 00 00 00 00 00 00 00 00 MACA...4........
014B00: 00 00 00 00 00 00 00 00 00 00 00 00 A6 DD 00 E4 ................
014B10: A6 DD 00 E4 00 00 00 00 7F FF FF CA 53 4F 55 4E ............SOUN
014B20: 44 20 20 20 54 58 54 00 09 53 50 4C 49 54 2E 4D D TXT..SPLIT.M
014B30: 41 58 00 01 00 09 C2 E0 00 00 2A 00 00 09 C2 E0 AX........*.....
014B40: 00 00 02 00 00 10 98 1C 54 45 58 54 4D 41 43 41 ........TEXTMACA
014B50: 01 00 01 04 01 00 00 00 00 00 00 00 00 00 00 00 ................
014B60: 00 00 00 00 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 ................
014B70: 00 00 00 00 7F FF FF C9 53 50 4C 49 54 20 20 20 ........SPLIT
014B80: 4D 41 58 00 0C 53 50 4C 54 53 48 4C 4C 2E 4D 41 MAX..SPLTSHLL.MA
014B90: 58 09 C2 E0 00 00 2A 00 00 09 C2 E0 00 00 02 00 X.....*.........
014BA0: 00 10 98 1C 54 45 58 54 4D 41 43 41 01 00 01 38 ....TEXTMACA...8
014BB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014BC0: 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 ................
014BD0: 7F FF FF C8 53 50 4C 54 53 48 4C 4C 4D 41 58 00 ....SPLTSHLLMAX.
014BE0: 08 54 45 53 54 2E 4D 41 58 00 00 01 00 09 C2 E0 .TEST.MAX.......
014BF0: 00 04 88 00 00 09 C2 E0 00 00 02 00 00 10 98 1C ................
014C00: 54 45 58 54 4D 41 43 41 01 00 01 38 00 40 00 00 TEXTMACA...8.@..
014C10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014C20: A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 7F FF FF C7 ................
014C30: 54 45 53 54 20 20 20 20 4D 41 58 00 0C 54 45 58 TEST MAX..TEX
014C40: 54 44 49 53 50 2E 42 41 53 09 C2 E0 00 04 88 00 TDISP.BAS.......
014C50: 00 09 C2 E0 00 00 02 00 00 10 98 1C 3F 3F 3F 3F ............????
014C60: 42 49 4E 20 01 00 01 38 00 80 00 00 00 00 00 00 BIN ...8........
014C70: 00 00 00 00 00 00 00 00 00 00 00 00 A6 DD 00 E4 ................
014C80: A6 DD 00 E4 00 00 00 00 7F FF FF C6 54 45 58 54 ............TEXT
014C90: 44 49 53 50 42 41 53 00 07 54 58 54 2E 54 58 54 DISPBAS..TXT.TXT
014CA0: 00 00 00 01 00 09 C2 E0 00 04 88 00 00 09 C2 E0 ................
014CB0: 00 00 02 00 00 10 98 1C 54 45 58 54 4D 41 43 41 ........TEXTMACA
014CC0: 01 00 01 38 00 C0 00 00 00 00 00 00 00 00 00 00 ...8............
014CD0: 00 00 00 00 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 ................
014CE0: 00 00 00 00 7F FF FF C5 54 58 54 20 20 20 20 20 ........TXT
014CF0: 54 58 54 00 00 00 00 00 00 00 00 00 00 00 00 00 TXT.............
014D00: 00 00 00 00 00 00 00 00 00 00 00 00 A6 DD 00 E4 ................
014D10: A6 DD 00 E4 00 00 00 00 7F FF FF E0 43 4F 4E 54 ............CONT
014D20: 43 48 41 52 54 58 54 01 08 43 52 54 43 2E 54 58 CHARTXT..CRTC.TX
014D30: 54 00 00 00 00 00 00 00 00 00 00 00 03 54 00 10 T............T..
014D40: 97 FC 00 11 94 92 84 02 54 45 58 54 4D 41 43 41 ........TEXTMACA
014D50: 01 00 00 34 00 40 00 00 00 00 00 00 00 00 00 00 ...4.@..........
014D60: 00 00 00 00 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 ................
014D70: 00 00 00 00 7F FF FF DF 43 52 54 43 20 20 20 20 ........CRTC
014D80: 54 58 54 01 09 45 58 50 41 4E 2E 54 58 54 00 00 TXT..EXPAN.TXT..
014D90: 00 00 00 00 00 00 00 00 03 54 00 10 97 FC 00 11 .........T......
014DA0: 94 92 84 02 54 45 58 54 4D 41 43 41 01 00 00 34 ....TEXTMACA...4
014DB0: 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014DC0: 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 ................
014DD0: 7F FF FF DE 45 58 50 41 4E 20 20 20 54 58 54 01 ....EXPAN TXT.
014DE0: 0B 46 49 4C 45 5F 49 44 2E 44 49 5A 00 00 00 00 .FILE_ID.DIZ....
014DF0: 00 00 00 00 03 44 00 10 97 FC 00 11 94 92 84 02 .....D..........
014E00: 54 45 58 54 4D 41 43 41 01 00 00 34 00 C0 00 00 TEXTMACA...4....
014E10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014E20: AB EA 7D EC AB EA 7D EC 00 00 00 00 7F FF FF DD ..}...}.........
014E30: 46 49 4C 45 5F 49 44 20 44 49 5A 01 08 47 41 54 FILE_ID DIZ..GAT
014E40: 45 2E 54 58 54 00 00 00 00 00 00 00 00 00 00 00 E.TXT...........
014E50: 03 54 00 10 97 FC 00 11 94 92 84 02 54 45 58 54 .T..........TEXT
014E60: 4D 41 43 41 01 00 00 34 01 00 00 00 00 00 00 00 MACA...4........
014E70: 00 00 00 00 00 00 00 00 00 00 00 00 A6 DD 00 E4 ................
014E80: A6 DD 00 E4 00 00 00 00 7F FF FF DC 47 41 54 45 ............GATE
014E90: 20 20 20 20 54 58 54 01 07 47 52 41 2E 54 58 54 TXT..GRA.TXT
014EA0: 00 00 00 00 00 00 00 00 00 00 00 00 03 54 00 10 .............T..
014EB0: 97 FC 00 11 94 92 84 02 54 45 58 54 4D 41 43 41 ........TEXTMACA
014EC0: 01 00 00 34 01 40 00 00 00 00 00 00 00 00 00 00 ...4.@..........
014ED0: 00 00 00 00 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 ................
014EE0: 00 00 00 00 7F FF FF DB 47 52 41 20 20 20 20 20 ........GRA
014EF0: 54 58 54 01 00 00 00 00 00 00 00 00 00 00 00 00 TXT.............
014F00: 0B 56 41 52 49 4F 55 53 2E 54 58 54 00 09 C2 E0 .VARIOUS.TXT....
014F10: 00 04 88 00 00 09 C2 E0 00 00 02 00 00 10 98 1C ................
014F20: 54 45 58 54 4D 41 43 41 01 00 01 38 01 00 00 00 TEXTMACA...8....
014F30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014F40: A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 7F FF FF C4 ................
014F50: 56 41 52 49 4F 55 53 20 54 58 54 00 08 58 44 50 VARIOUS TXT..XDP
014F60: 42 2E 54 58 54 00 00 01 00 09 C2 E0 00 04 88 00 B.TXT...........
014F70: 00 09 C2 E0 00 00 02 00 00 10 98 1C 54 45 58 54 ............TEXT
014F80: 4D 41 43 41 01 00 01 38 01 40 00 00 00 00 00 00 MACA...8.@......
014F90: 00 00 00 00 00 00 00 00 00 00 00 00 A6 DD 00 E4 ................
014FA0: A6 DD 00 E4 00 00 00 00 7F FF FF C3 58 44 50 42 ............XDPB
014FB0: 20 20 20 20 54 58 54 00 0A 5A 38 30 53 45 54 2E TXT..Z80SET.
014FC0: 54 58 54 01 00 09 C2 E0 00 04 88 00 00 09 C2 E0 TXT.............
014FD0: 00 00 02 00 00 10 98 1C 54 45 58 54 4D 41 43 41 ........TEXTMACA
014FE0: 01 00 01 6C 00 00 00 00 00 00 00 00 00 00 00 00 ...l............
014FF0: 00 00 00 00 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 ................
015000: 00 00 00 00 7F FF FF C2 5A 38 30 53 45 54 20 20 ........Z80SET
015010: 54 58 54 00 1A E3 2C 94 EC 25 25 EC 2C 2C 9B 9B TXT...,..%%.,,..
015020: D4 B5 B5 B5 CE B3 6A D4 D4 81 F4 92 F4 2F 1A 1A ......j....../..
015030: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015040: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015050: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015060: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015070: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
015080: A6 DD 00 E4 00 00 00 00 7F FF FF C6 54 45 58 54 ............TEXT
015090: 44 49 53 50 42 41 53 00 07 54 58 54 2E 54 58 54 DISPBAS..TXT.TXT
0150A0: 00 00 00 01 00 09 C2 E0 00 04 88 00 00 09 C2 E0 ................
0150B0: 00 00 02 00 00 10 98 1C 54 45 58 54 4D 41 43 41 ........TEXTMACA
0150C0: 01 00 01 38 00 C0 00 00 00 00 00 00 00 00 00 00 ...8............
0150D0: 00 00 00 00 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 ................
0150E0: 00 00 00 00 7F FF FF C5 54 58 54 20 20 20 20 20 ........TXT
0150F0: 54 58 54 00 00 00 00 00 00 00 00 00 00 00 00 00 TXT.............
015100: 0C 48 41 52 44 57 41 52 45 2E 54 58 54 14 00 09 .HARDWARE.TXT...
015110: C2 E0 00 00 03 54 00 10 97 FC 00 11 94 92 84 02 .....T..........
015120: 54 45 58 54 4D 41 43 41 01 00 00 68 00 00 00 00 TEXTMACA...h....
015130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015140: A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 7F FF FF DA ................
015150: 48 41 52 44 57 41 52 45 54 58 54 01 0B 48 49 2D HARDWARETXT..HI-
015160: 4B 45 52 4E 2E 54 58 54 00 00 00 00 00 00 00 00 KERN.TXT........
015170: 03 54 00 10 97 FC 00 11 94 92 84 02 54 45 58 54 .T..........TEXT
015180: 4D 41 43 41 01 00 00 68 00 80 00 00 00 00 00 00 MACA...h........
015190: 00 00 00 00 00 00 00 00 00 00 00 00 A6 DD 00 E4 ................
0151A0: A6 DD 00 E4 00 00 00 00 7F FF FF D9 48 49 2D 4B ............HI-K
0151B0: 45 52 4E 20 54 58 54 01 0C 49 4E 44 49 52 45 43 ERN TXT..INDIREC
0151C0: 54 2E 54 58 54 09 C2 E0 00 00 2A 00 00 09 C2 E0 T.TXT.....*.....
0151D0: 00 00 02 00 00 10 98 1C 54 45 58 54 4D 41 43 41 ........TEXTMACA
0151E0: 01 00 00 68 00 C0 00 00 00 00 00 00 00 00 00 00 ...h............
0151F0: 00 00 00 00 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 ................
015200: 00 00 00 00 7F FF FF D8 49 4E 44 49 52 45 43 54 ........INDIRECT
015210: 54 58 54 00 0B 49 4F 50 4F 52 54 53 2E 54 58 54 TXT..IOPORTS.TXT
015220: 00 09 C2 E0 00 00 2A 00 00 09 C2 E0 00 00 02 00 ......*.........
015230: 00 10 98 1C 54 45 58 54 4D 41 43 41 01 00 00 9C ....TEXTMACA....
015240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015250: 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 ................
015260: 7F FF FF D7 49 4F 50 4F 52 54 53 20 54 58 54 00 ....IOPORTS TXT.
015270: 0A 4B 45 52 4E 41 4C 2E 54 58 54 01 00 09 C2 E0 .KERNAL.TXT.....
015280: 00 00 2A 00 00 09 C2 E0 00 00 02 00 00 10 98 1C ..*.............
015290: 54 45 58 54 4D 41 43 41 01 00 00 9C 00 40 00 00 TEXTMACA.....@..
0152A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0152B0: A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 7F FF FF D6 ................
0152C0: 4B 45 52 4E 41 4C 20 20 54 58 54 00 0A 4B 45 59 KERNAL TXT..KEY
0152D0: 4D 41 50 2E 54 58 54 01 00 09 C2 E0 00 00 2A 00 MAP.TXT.......*.
0152E0: 00 09 C2 E0 00 00 02 00 00 10 98 1C 54 45 58 54 ............TEXT
0152F0: 4D 41 43 41 01 00 00 9C 00 80 00 00 00 00 00 00 MACA............
015300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0153A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0153B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0153C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0153D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0153E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0153F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0154A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0154B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0154C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0154D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0154E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0154F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
015500: 00 00 00 00 00 00 00 00 00 00 00 00 A6 DD 00 E4 ................
015510: A6 DD 00 E4 00 00 00 00 7F FF FF D5 4B 45 59 4D ............KEYM
015520: 41 50 20 20 54 58 54 00 06 4B 4D 2E 54 58 54 00 AP TXT..KM.TXT.
015530: 00 00 00 01 00 09 C2 E0 00 00 2A 00 00 09 C2 E0 ..........*.....
015540: 00 00 02 00 00 10 98 1C 54 45 58 54 4D 41 43 41 ........TEXTMACA
015550: 01 00 00 9C 00 C0 00 00 00 00 00 00 00 00 00 00 ................
015560: 00 00 00 00 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 ................
015570: 00 00 00 00 7F FF FF D4 4B 4D 20 20 20 20 20 20 ........KM
015580: 54 58 54 00 0B 4C 4F 2D 4B 45 52 4E 2E 54 58 54 TXT..LO-KERN.TXT
015590: 00 09 C2 E0 00 00 2A 00 00 09 C2 E0 00 00 02 00 ......*.........
0155A0: 00 10 98 1C 54 45 58 54 4D 41 43 41 01 00 00 9C ....TEXTMACA....
0155B0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0155C0: 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 ................
0155D0: 7F FF FF D3 4C 4F 2D 4B 45 52 4E 20 54 58 54 00 ....LO-KERN TXT.
0155E0: 06 4D 43 2E 54 58 54 00 00 00 00 01 00 09 C2 E0 .MC.TXT.........
0155F0: 00 00 2A 00 00 09 C2 E0 00 00 02 00 00 10 98 1C ..*.............
015600: 54 45 58 54 4D 41 43 41 01 00 00 9C 01 40 00 00 TEXTMACA.....@..
015610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015620: A6 DD 00 E4 A6 DD 00 E4 00 00 00 00 7F FF FF D2 ................
015630: 4D 43 20 20 20 20 20 20 54 58 54 00 0C 50 4C 55 MC TXT..PLU
015640: 53 50 4F 52 54 2E 54 58 54 09 C2 E0 00 00 2A 00 SPORT.TXT.....*.
015650: 00 09 C2 E0 00 00 02 00 00 10 98 1C 54 45 58 54 ............TEXT
015660: 4D 41 43 41 01 00 00 D0 00 00 00 00 00 00 00 00 MACA............
015670: 00 00 00 00 00 00 00 00 00 00 00 00 A6 DD 00 E4 ................
015680: A6 DD 00 E4 00 00 00 00 7F FF FF D1 50 4C 55 53 ............PLUS
015690: 50 4F 52 54 54 58 54 00 0B 50 52 49 4E 54 45 52 PORTTXT..PRINTER
0156A0: 2E 54 58 54 00 09 C2 E0 00 00 2A 00 00 09 C2 E0 .TXT......*.....
0156B0: 00 00 02 00 00 10 98 1C 54 45 58 54 4D 41 43 41 ........TEXTMACA
0156C0: 01 00 00 D0 00 80 00 00 00 00 00 00 00 00 00 00 ................
0156D0: 00 00 00 00 00 00 00 00 A6 DD 00 E4 A6 DD 00 E4 ................
0156E0: 00 00 00 00 7F FF FF D0 50 52 49 4E 54 45 52 20 ........PRINTER
0156F0: 54 58 54 00 00 00 00 00 00 00 00 00 00 00 00 00 TXT.............
015700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
015710: 12 00 01 00 02 09 4E E5 12 00 C1 02 00 00 00 02 ......N.........
015720: 12 00 C6 02 00 00 00 02 12 00 C2 02 00 00 00 02 ................
015730: 12 00 C7 02 00 00 00 02 12 00 C3 02 00 00 00 02 ................
015740: 12 00 C8 02 00 00 00 02 12 00 C4 02 00 00 00 02 ................
015750: 12 00 C9 02 00 00 00 02 12 00 C5 02 00 00 00 02 ................
015760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015800: 1B 40 54 68 65 20 47 61 74 65 20 41 72 72 61 79 .@The Gate Array
015810: 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D .--------------.
015820: 0D 54 68 65 20 67 61 74 65 20 61 72 72 61 79 20 .The gate array
015830: 69 73 20 61 20 73 70 65 63 69 61 6C 6C 79 20 64 is a specially d
015840: 65 73 69 67 6E 65 64 20 63 68 69 70 20 65 78 63 esigned chip exc
015850: 6C 75 73 69 76 65 6C 79 20 66 6F 72 20 75 73 65 lusively for use
015860: 20 69 6E 20 74 68 65 0D 41 6D 73 74 72 61 64 20 in the.Amstrad
015870: 43 50 43 2E 20 49 74 20 69 73 20 66 6F 72 20 74 CPC. It is for t
015880: 68 69 73 20 72 65 61 73 6F 6E 20 6E 6F 74 20 6D his reason not m
015890: 75 63 68 20 69 73 20 6B 6E 6F 77 6E 20 61 62 6F uch is known abo
0158A0: 75 74 20 69 74 2E 0D 0D 49 74 20 69 73 20 72 65 ut it...It is re
0158B0: 73 70 6F 6E 73 69 62 6C 65 20 66 6F 72 20 20 63 sponsible for c
0158C0: 6F 6E 74 72 6F 6C 6C 69 6E 67 20 20 73 63 72 65 ontrolling scre
0158D0: 65 6E 20 20 6D 6F 64 65 2C 20 20 63 6F 6C 6F 75 en mode, colou
0158E0: 72 20 70 61 6C 65 74 74 65 2C 20 72 61 6D 0D 63 r palette, ram.c
0158F0: 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 61 6E 64 onfiguration and
015900: 20 72 6F 6D 20 63 6F 6E 66 69 67 75 72 61 74 69 rom configurati
015910: 6F 6E 2E 0D 0D 54 68 65 20 6E 65 77 20 41 53 49 on...The new ASI
015920: 43 20 47 61 74 65 20 41 72 72 61 79 20 28 69 6E C Gate Array (in
015930: 20 74 68 65 20 20 6E 65 77 20 20 50 6C 75 73 20 the new Plus
015940: 6D 61 63 68 69 6E 65 73 29 20 69 73 20 64 65 73 machines) is des
015950: 63 72 69 62 65 64 20 69 6E 20 61 0D 64 69 66 66 cribed in a.diff
015960: 65 72 65 6E 74 20 73 65 63 74 69 6F 6E 2E 20 49 erent section. I
015970: 6E 20 73 74 61 6E 64 61 72 64 20 6D 6F 64 65 20 n standard mode
015980: 6F 6E 20 74 68 65 20 50 6C 75 73 20 6D 61 63 68 on the Plus mach
015990: 69 6E 65 73 20 28 74 68 61 74 20 69 73 20 77 68 ines (that is wh
0159A0: 65 6E 0D 74 68 65 20 6E 65 77 20 41 53 49 43 20 en.the new ASIC
0159B0: 47 61 74 65 20 41 72 72 61 79 20 68 61 73 20 6E Gate Array has n
0159C0: 6F 74 20 20 62 65 65 6E 20 20 65 6E 61 62 6C 65 ot been enable
0159D0: 64 29 2C 20 69 74 20 61 63 74 73 20 61 73 20 61 d), it acts as a
0159E0: 20 73 74 61 6E 64 61 72 64 0D 67 61 74 65 20 61 standard.gate a
0159F0: 72 72 61 79 2C 20 61 6C 6C 6F 77 69 6E 67 20 70 rray, allowing p
015A00: 77 61 72 65 20 70 61 6C 6C 65 74 74 65 29 2E 0D ware pallette)..
015A10: 0D 54 68 65 20 68 61 72 64 77 61 72 65 20 63 6F .The hardware co
015A20: 6C 6F 75 72 20 6E 75 6D 62 65 72 20 69 73 20 20 lour number is
015A30: 64 69 66 66 65 72 65 6E 74 20 20 74 6F 20 20 74 different to t
015A40: 68 65 20 63 6F 6C 6F 75 72 20 72 61 6E 67 65 20 he colour range
015A50: 75 73 65 64 20 62 79 0D 74 68 65 20 66 69 72 6D used by.the firm
015A60: 77 61 72 65 2C 20 73 6F 20 61 20 63 6F 6E 76 65 ware, so a conve
015A70: 72 73 69 6F 6E 20 63 68 61 72 74 20 20 69 73 20 rsion chart is
015A80: 70 72 6F 76 69 64 65 64 20 66 6F 72 20 74 68 65 provided for the
015A90: 20 63 6F 72 72 65 73 70 6F 6E 64 69 6E 67 0D 66 corresponding.f
015AA0: 69 72 6D 77 61 72 65 2F 68 61 72 64 77 61 72 65 irmware/hardware
015AB0: 20 63 6F 6C 6F 75 72 20 76 61 6C 75 65 73 20 61 colour values a
015AC0: 6E 64 20 74 68 65 20 63 6F 72 72 65 73 70 6F 6E nd the correspon
015AD0: 64 69 6E 67 20 63 6F 6C 6F 75 72 20 6E 61 6D 65 ding colour name
015AE0: 2E 0D 0D 45 76 65 6E 20 74 68 6F 75 67 68 20 74 ...Even though t
015AF0: 68 65 72 65 20 69 73 20 70 72 6F 76 69 73 69 6F here is provisio
015B00: 6E 20 66 6F 72 20 20 33 32 20 20 63 6F 6C 6F 75 n for 32 colou
015B10: 72 73 2C 20 6F 6E 6C 79 20 32 37 20 61 72 65 20 rs, only 27 are
015B20: 70 6F 73 73 69 62 6C 65 2E 0D 54 68 65 20 72 65 possible..The re
015B30: 6D 61 69 6E 69 6E 67 20 63 6F 6C 6F 75 72 73 20 maining colours
015B40: 61 72 65 20 64 75 70 6C 69 63 61 74 65 73 20 20 are duplicates
015B50: 6F 66 20 20 74 68 6F 73 65 20 20 61 6C 72 65 61 of those alrea
015B60: 64 79 20 69 6E 20 74 68 65 20 63 6F 6C 6F 75 72 dy in the colour
015B70: 0D 70 61 6C 65 74 74 65 2E 0D 0D 4E 6F 74 65 3A .palette...Note:
015B80: 20 54 68 65 20 66 69 72 6D 77 61 72 65 20 6B 65 The firmware ke
015B90: 65 70 73 20 74 72 61 63 6B 20 6F 66 20 74 68 65 eps track of the
015BA0: 20 63 6F 6C 6F 75 72 73 20 69 74 20 69 73 20 75 colours it is u
015BB0: 73 69 6E 67 2E 20 45 76 65 72 79 20 56 53 59 4E sing. Every VSYN
015BC0: 43 0D 28 61 73 73 75 6D 69 6E 67 20 69 6E 74 65 C.(assuming inte
015BD0: 72 72 75 70 74 73 20 61 72 65 20 65 6E 61 62 6C rrupts are enabl
015BE0: 65 64 29 20 74 68 65 20 20 66 69 72 6D 77 61 72 ed) the firmwar
015BF0: 65 20 73 65 74 73 20 74 68 65 20 63 6F 6C 6F 75 e sets the colou
015C00: 72 6F 67 72 61 6D 73 20 6F 6E 20 74 68 65 20 43 rograms on the C
015C10: 50 43 20 20 74 6F 20 77 6F 72 6B 20 6F 6E 20 74 PC to work on t
015C20: 68 65 20 50 6C 75 73 20 6D 61 63 68 69 6E 65 73 he Plus machines
015C30: 0D 77 69 74 68 6F 75 74 20 6D 6F 64 69 66 69 63 .without modific
015C40: 61 74 69 6F 6E 2E 0D 0D 48 6F 77 65 76 65 72 20 ation...However
015C50: 77 68 65 6E 20 74 68 65 20 6E 65 77 20 41 53 49 when the new ASI
015C60: 43 20 67 61 74 65 20 61 72 72 61 79 20 69 73 20 C gate array is
015C70: 65 6E 61 62 6C 65 64 2C 20 69 74 20 61 6C 6C 6F enabled, it allo
015C80: 77 73 20 74 68 65 20 75 73 65 72 20 74 6F 0D 75 ws the user to.u
015C90: 73 65 20 61 20 6E 75 6D 62 65 72 20 6F 66 20 65 se a number of e
015CA0: 78 74 72 61 20 65 6E 68 61 6E 63 65 6D 65 6E 74 xtra enhancement
015CB0: 73 2E 0D 0D 54 68 65 20 47 61 74 65 20 41 72 72 s...The Gate Arr
015CC0: 61 79 20 69 73 20 64 65 73 63 72 69 62 65 64 20 ay is described
015CD0: 68 65 72 65 2C 20 20 61 73 20 20 69 74 20 20 77 here, as it w
015CE0: 6F 75 6C 64 20 62 65 20 6F 6E 20 61 20 73 74 61 ould be on a sta
015CF0: 6E 64 61 72 64 20 43 50 43 2E 0D 0D 3D 3D 3D 3D ndard CPC...====
015D00: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
015D10: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
015D20: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
015D30: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
015D40: 3D 3D 0D 0D 43 6F 6E 74 72 6F 6C 6C 69 6E 67 20 ==..Controlling
015D50: 74 68 65 20 47 61 74 65 20 41 72 72 61 79 0D 2D the Gate Array.-
015D60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
015D70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 54 68 65 20 67 ---------..The g
015D80: 61 74 65 20 61 72 72 61 79 20 69 73 20 20 63 6F ate array is co
015D90: 6E 74 72 6F 6C 6C 65 64 20 20 62 79 20 20 73 65 ntrolled by se
015DA0: 6E 64 69 6E 67 20 20 76 61 6C 75 65 73 20 20 74 nding values t
015DB0: 6F 20 70 6F 72 74 20 26 37 46 78 78 2E 20 54 68 o port &7Fxx. Th
015DC0: 65 0D 66 75 6E 63 74 69 6F 6E 20 77 68 69 63 68 e.function which
015DD0: 20 69 73 20 74 6F 20 62 65 20 70 65 72 66 6F 72 is to be perfor
015DE0: 6D 65 64 20 69 73 20 64 65 70 65 6E 64 61 6E 74 med is dependant
015DF0: 20 6F 6E 20 74 68 65 20 73 65 74 74 69 6E 67 73 on the settings
015E00: 72 73 2E 20 54 68 69 73 0D 65 6E 61 62 6C 65 73 rs. This.enables
015E10: 20 74 68 65 20 75 73 65 72 20 74 6F 20 68 61 76 the user to hav
015E20: 65 20 66 6C 61 73 68 69 6E 67 20 20 63 6F 6C 6F e flashing colo
015E30: 75 72 73 2E 20 20 49 66 20 74 68 65 20 75 73 65 urs. If the use
015E40: 72 20 73 65 6C 65 63 74 73 20 61 20 6E 65 77 0D r selects a new.
015E50: 63 6F 6C 6F 75 72 20 75 73 69 6E 67 20 74 68 65 colour using the
015E60: 20 67 61 74 65 20 61 72 72 61 79 2C 20 74 68 65 gate array, the
015E70: 20 6E 65 77 20 63 6F 6C 6F 75 72 20 77 69 6C 6C new colour will
015E80: 20 66 6C 61 73 68 20 74 65 6D 70 6F 72 61 72 69 flash temporari
015E90: 6C 79 20 61 6E 64 0D 74 68 65 6E 20 72 65 74 75 ly and.then retu
015EA0: 72 6E 20 74 6F 20 69 74 27 73 20 6F 72 69 67 69 rn to it's origi
015EB0: 6E 61 6C 20 63 6F 6C 6F 75 72 2E 20 20 54 68 69 nal colour. Thi
015EC0: 73 20 20 69 73 20 64 75 65 20 74 6F 20 74 68 65 s is due to the
015ED0: 20 66 69 72 6D 77 61 72 65 20 72 65 2D 0D 73 65 firmware re-.se
015EE0: 74 74 69 6E 67 20 74 68 65 20 63 6F 6C 6F 75 72 tting the colour
015EF0: 2E 20 57 68 65 6E 20 20 75 73 69 6E 67 20 20 74 . When using t
015F00: 68 65 20 20 66 69 72 6D 77 61 72 65 2C 20 20 75 he firmware, u
015F10: 73 65 20 20 69 74 27 73 20 72 6F 75 74 69 6E 65 se it's routine
015F20: 73 20 74 6F 0D 73 65 6C 65 63 74 20 74 68 65 20 s to.select the
015F30: 63 6F 6C 6F 75 72 2C 20 61 6E 64 20 74 68 65 20 colour, and the
015F40: 63 6F 6C 6F 75 72 20 77 69 6C 6C 20 72 65 6D 61 colour will rema
015F50: 69 6E 2E 0D 0D 53 75 6D 6D 61 72 79 3A 0D 0D 42 in...Summary:..B
015F60: 69 74 20 37 3A 20 7D 20 47 61 74 65 20 41 72 72 it 7: } Gate Arr
015F70: 61 79 20 66 75 6E 63 74 69 6F 6E 20 28 30 29 0D ay function (0).
015F80: 42 69 74 20 36 3A 20 7D 20 20 20 20 20 20 20 20 Bit 6: }
015F90: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 29 (1)
015FA0: 0D 0D 42 69 74 20 35 3A 20 4E 6F 74 20 75 73 65 ..Bit 5: Not use
015FB0: 64 2E 0D 0D 42 69 74 20 34 3A 20 7D 20 43 6F 6C d...Bit 4: } Col
015FC0: 6F 75 72 20 6E 75 6D 62 65 72 20 28 66 72 6F 6D our number (from
015FD0: 20 68 61 72 64 77 61 72 65 20 63 6F 6C 6F 75 72 hardware colour
015FE0: 20 70 61 6C 65 74 74 65 29 0D 42 69 74 20 33 3A palette).Bit 3:
015FF0: 20 7D 0D 42 69 74 20 32 3A 20 7D 0D 42 69 74 20 }.Bit 2: }.Bit
016000: 20 6F 66 20 62 69 74 73 0D 37 20 61 6E 64 20 36 of bits.7 and 6
016010: 3B 20 74 68 65 20 72 65 6D 61 69 6E 69 6E 67 20 ; the remaining
016020: 62 69 74 73 20 61 72 65 20 64 61 74 61 20 75 73 bits are data us
016030: 65 64 20 62 79 20 74 68 65 20 61 70 70 72 6F 70 ed by the approp
016040: 69 61 74 65 20 66 75 6E 63 74 69 6F 6E 2E 0D 0D iate function...
016050: 41 6C 6C 20 74 68 65 73 65 20 72 65 67 69 73 74 All these regist
016060: 65 72 73 20 61 72 65 20 77 72 69 74 65 20 6F 6E ers are write on
016070: 6C 79 20 61 6E 64 20 63 61 6E 6E 6F 74 20 62 65 ly and cannot be
016080: 20 72 65 61 64 2E 0D 0D 41 20 62 72 69 65 66 20 read...A brief
016090: 64 65 73 63 72 69 70 74 69 6F 6E 20 6F 66 20 74 description of t
0160A0: 68 65 20 20 66 75 6E 63 74 69 6F 6E 73 20 20 61 he functions a
0160B0: 72 65 20 20 64 65 73 63 72 69 62 65 64 20 62 65 re described be
0160C0: 6C 6F 77 20 77 69 74 68 20 74 68 65 69 72 0D 73 low with their.s
0160D0: 65 74 74 69 6E 67 73 20 66 6F 72 20 62 69 74 20 ettings for bit
0160E0: 37 20 61 6E 64 20 36 2E 0D 0D 42 69 74 20 37 20 7 and 6...Bit 7
0160F0: 20 20 42 69 74 20 36 20 20 20 46 75 6E 63 74 69 Bit 6 Functi
016100: 6F 6E 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D on.-------------
016110: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 30 20 -----------. 0
016120: 20 20 20 20 20 30 20 20 20 20 20 20 53 65 6C 65 0 Sele
016130: 63 74 20 77 68 69 63 68 20 70 65 6E 20 69 73 20 ct which pen is
016140: 74 6F 20 68 61 76 65 20 69 74 73 20 63 6F 6C 6F to have its colo
016150: 75 72 20 63 68 61 6E 67 65 64 2E 0D 20 20 30 20 ur changed.. 0
016160: 20 20 20 20 20 31 20 20 20 20 20 20 53 65 6C 65 1 Sele
016170: 63 74 20 63 6F 6C 6F 75 72 20 66 6F 72 20 63 75 ct colour for cu
016180: 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 65 64 rrently selected
016190: 20 70 65 6E 2E 20 28 66 72 6F 6D 0D 20 20 20 20 pen. (from.
0161A0: 20 20 20 20 20 20 20 20 20 20 20 20 68 61 72 64 hard
0161B0: 77 61 72 65 20 63 6F 6C 6F 75 72 20 70 61 6C 65 ware colour pale
0161C0: 74 74 65 29 0D 20 20 31 20 20 20 20 20 20 30 20 tte). 1 0
0161D0: 20 20 20 20 20 53 65 6C 65 63 74 20 73 63 72 65 Select scre
0161E0: 65 6E 20 6D 6F 64 65 20 61 6E 64 20 72 6F 6D 20 en mode and rom
0161F0: 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 2E 0D 20 configuration..
016200: 31 3A 20 7D 0D 42 69 74 20 30 3A 20 7D 0D 0D 3D 1: }.Bit 0: }..=
016210: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
016220: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
016230: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
016240: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
016250: 3D 3D 3D 3D 3D 0D 0D 53 65 6C 65 63 74 20 73 63 =====..Select sc
016260: 72 65 65 6E 20 6D 6F 64 65 20 61 6E 64 20 72 6F reen mode and ro
016270: 6D 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 0D m configuration.
016280: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
016290: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0162A0: 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 54 68 69 73 20 69 --------..This i
0162B0: 73 20 61 20 67 65 6E 65 72 61 6C 20 70 75 72 70 s a general purp
0162C0: 6F 73 65 20 72 65 67 69 73 74 65 72 20 72 65 73 ose register res
0162D0: 70 6F 6E 73 69 62 6C 65 20 66 6F 72 20 74 68 65 ponsible for the
0162E0: 20 73 63 72 65 65 6E 20 6D 6F 64 65 20 61 6E 64 screen mode and
0162F0: 0D 74 68 65 20 72 6F 6D 20 63 6F 6E 66 69 67 75 .the rom configu
016300: 72 61 74 69 6F 6E 2E 0D 0D 53 63 72 65 65 6E 20 ration...Screen
016310: 6D 6F 64 65 20 73 65 6C 65 63 74 69 6F 6E 0D 2D mode selection.-
016320: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
016330: 2D 2D 2D 2D 0D 0D 54 68 65 20 66 75 6E 63 74 69 ----..The functi
016340: 6F 6E 20 6F 66 20 62 69 74 73 20 20 31 20 20 61 on of bits 1 a
016350: 6E 64 20 20 30 20 20 69 73 20 20 74 6F 20 20 64 nd 0 is to d
016360: 65 66 69 6E 65 20 20 74 68 65 20 20 73 63 72 65 efine the scre
016370: 65 6E 20 6D 6F 64 65 2E 20 54 68 65 0D 73 65 74 en mode. The.set
016380: 74 69 6E 67 73 20 66 6F 72 20 62 69 74 73 20 31 tings for bits 1
016390: 20 61 6E 64 20 30 20 61 6E 64 20 20 74 68 65 20 and 0 and the
0163A0: 63 6F 72 72 65 73 70 6F 6E 64 69 6E 67 20 73 63 corresponding sc
0163B0: 72 65 65 6E 20 6D 6F 64 65 20 61 72 65 20 67 69 reen mode are gi
0163C0: 76 65 6E 0D 69 6E 20 74 68 65 20 74 61 62 6C 65 ven.in the table
0163D0: 20 62 65 6C 6F 77 2E 0D 0D 46 72 6F 6D 20 74 68 below...From th
0163E0: 65 20 20 63 6F 6D 62 69 6E 61 74 69 6F 6E 73 20 e combinations
0163F0: 20 70 6F 73 73 69 62 6C 65 2C 20 20 77 65 20 20 possible, we
016400: 20 31 20 20 20 20 20 20 31 20 20 20 20 20 20 53 1 1 S
016410: 65 6C 65 63 74 20 72 61 6D 20 63 6F 6E 66 69 67 elect ram config
016420: 75 72 61 74 69 6F 6E 20 28 62 61 6E 6B 20 73 77 uration (bank sw
016430: 69 74 63 68 69 6E 67 29 2E 0D 0D 3D 3D 3D 3D 3D itching)...=====
016440: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
016450: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
016460: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
016470: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
016480: 3D 0D 0D 50 65 6E 20 73 65 6C 65 63 74 69 6F 6E =..Pen selection
016490: 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D .-------------..
0164A0: 57 68 65 6E 20 62 69 74 20 37 20 61 6E 64 20 62 When bit 7 and b
0164B0: 69 74 20 36 20 61 72 65 20 73 65 74 20 20 74 6F it 6 are set to
0164C0: 20 30 2C 20 74 68 65 20 72 65 6D 61 69 6E 69 6E 0, the remainin
0164D0: 67 20 62 69 74 73 20 64 65 74 65 72 6D 69 6E 65 g bits determine
0164E0: 20 77 68 69 63 68 0D 70 65 6E 20 69 73 20 74 6F which.pen is to
0164F0: 20 68 61 76 65 20 69 74 73 20 63 6F 6C 6F 75 72 have its colour
016500: 20 63 68 61 6E 67 65 64 2E 20 42 69 74 73 20 20 changed. Bits
016510: 33 20 74 6F 20 30 20 64 65 66 69 6E 65 20 77 68 3 to 0 define wh
016520: 69 63 68 20 70 65 6E 20 69 73 20 74 6F 0D 62 65 ich pen is to.be
016530: 20 73 65 6C 65 63 74 65 64 2E 20 57 68 65 6E 20 selected. When
016540: 62 69 74 20 34 20 69 73 20 73 65 74 20 20 74 6F bit 4 is set to
016550: 20 20 31 2C 20 74 68 65 20 76 61 6C 75 65 20 63 1, the value c
016560: 6F 6E 74 61 69 6E 65 64 20 69 6E 20 62 69 74 73 ontained in bits
016570: 20 33 2D 30 0D 69 73 20 69 67 6E 6F 72 65 64 20 3-0.is ignored
016580: 61 6E 64 20 74 68 65 20 62 6F 72 64 65 72 20 69 and the border i
016590: 73 20 73 65 6C 65 63 74 65 64 2E 0D 0D 54 68 65 s selected...The
0165A0: 20 70 65 6E 20 72 65 6D 61 69 6E 73 20 73 65 6C pen remains sel
0165B0: 65 63 74 65 64 20 75 6E 74 69 6C 20 61 6E 6F 74 ected until anot
0165C0: 68 65 72 20 69 73 20 73 65 6C 65 63 74 65 64 2E her is selected.
0165D0: 0D 0D 45 61 63 68 20 6D 6F 64 65 20 68 61 73 20 ..Each mode has
0165E0: 61 20 66 69 78 65 64 20 6E 75 6D 62 65 72 20 6F a fixed number o
0165F0: 66 20 70 65 6E 73 2E 20 4D 6F 64 65 20 30 20 68 f pens. Mode 0 h
016600: 63 61 6E 20 20 73 65 65 20 20 74 68 61 74 20 20 can see that
016610: 34 20 20 6D 6F 64 65 73 20 63 61 6E 20 62 65 0D 4 modes can be.
016620: 64 65 66 69 6E 65 64 2C 20 61 6C 74 68 6F 75 67 defined, althoug
016630: 68 20 74 68 65 20 41 6D 73 74 72 61 64 20 6F 6E h the Amstrad on
016640: 6C 79 20 68 61 73 20 33 2E 20 4D 6F 64 65 20 33 ly has 3. Mode 3
016650: 20 69 73 20 73 69 6D 69 6C 61 72 20 74 6F 20 6D is similar to m
016660: 6F 64 65 20 30 2C 0D 62 65 63 61 75 73 65 20 69 ode 0,.because i
016670: 74 20 68 61 73 20 74 68 65 20 20 73 61 6D 65 20 t has the same
016680: 20 72 65 73 6F 6C 75 74 69 6F 6E 2C 20 20 62 75 resolution, bu
016690: 74 20 20 69 74 20 20 69 73 20 20 6C 69 6D 69 74 t it is limit
0166A0: 65 64 20 20 74 6F 20 6F 6E 6C 79 20 34 0D 63 6F ed to only 4.co
0166B0: 6C 6F 75 72 73 2E 20 54 68 69 73 20 6D 6F 64 65 lours. This mode
0166C0: 20 6D 61 79 20 62 65 20 64 69 66 66 65 72 65 6E may be differen
0166D0: 74 20 20 6F 6E 20 64 69 66 66 65 72 65 6E 74 20 t on different
0166E0: 76 65 72 73 69 6F 6E 73 20 6F 66 20 74 68 65 20 versions of the
0166F0: 47 61 74 65 0D 41 72 72 61 79 20 61 6E 64 20 6F Gate.Array and o
016700: 6E 20 64 69 66 66 65 72 65 6E 74 20 43 50 43 20 n different CPC
016710: 6D 6F 64 65 6C 73 2E 0D 0D 54 68 65 20 20 73 63 models...The sc
016720: 72 65 65 6E 20 20 6D 6F 64 65 20 20 69 73 20 20 reen mode is
016730: 63 68 61 6E 67 65 64 20 20 77 68 65 6E 20 61 20 changed when a
016740: 48 53 59 4E 43 20 6F 63 63 75 72 73 2E 0D 0D 42 HSYNC occurs...B
016750: 69 74 20 31 20 20 20 42 69 74 20 30 20 20 20 20 it 1 Bit 0
016760: 20 20 20 20 20 20 20 53 63 72 65 65 6E 20 6D 6F Screen mo
016770: 64 65 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D de.-------------
016780: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
016790: 2D 2D 2D 2D 2D 2D 0D 20 20 30 20 20 20 20 20 20 ------. 0
0167A0: 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 4D 0 M
0167B0: 6F 64 65 20 30 2C 31 36 30 78 32 30 30 2C 20 31 ode 0,160x200, 1
0167C0: 36 20 63 6F 6C 6F 75 72 73 2E 0D 20 20 30 20 20 6 colours.. 0
0167D0: 20 20 20 20 20 31 20 20 20 20 20 20 20 20 20 20 1
0167E0: 20 20 20 4D 6F 64 65 20 31 2C 33 32 30 78 32 30 Mode 1,320x20
0167F0: 30 2C 20 34 20 63 6F 6C 6F 75 72 73 2E 0D 20 20 0, 4 colours..
016800: 61 73 20 31 36 20 70 65 6E 73 2C 20 6D 6F 64 65 as 16 pens, mode
016810: 20 31 20 68 61 73 20 34 0D 70 65 6E 73 20 61 6E 1 has 4.pens an
016820: 64 20 6D 6F 64 65 20 32 20 68 61 73 20 32 20 70 d mode 2 has 2 p
016830: 65 6E 73 2E 0D 0D 53 75 6D 6D 61 72 79 0D 2D 2D ens...Summary.--
016840: 2D 2D 2D 2D 2D 0D 0D 42 69 74 20 37 3A 20 7D 20 -----..Bit 7: }
016850: 47 61 74 65 20 41 72 72 61 79 20 66 75 6E 63 74 Gate Array funct
016860: 69 6F 6E 20 28 30 29 0D 42 69 74 20 36 3A 20 7D ion (0).Bit 6: }
016870: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016880: 20 20 20 20 20 28 30 29 0D 0D 42 69 74 20 35 3A (0)..Bit 5:
016890: 20 4E 6F 74 20 75 73 65 64 0D 0D 42 69 74 20 34 Not used..Bit 4
0168A0: 3A 20 42 6F 72 64 65 72 20 73 65 6C 65 63 74 69 : Border selecti
0168B0: 6F 6E 0D 20 20 20 20 20 20 20 20 31 3D 53 65 6C on. 1=Sel
0168C0: 65 63 74 20 62 6F 72 64 65 72 2C 20 30 3D 75 73 ect border, 0=us
0168D0: 65 20 70 65 6E 20 76 61 6C 75 65 20 63 6F 6E 74 e pen value cont
0168E0: 61 69 6E 65 64 20 69 6E 20 62 69 74 73 20 33 2D ained in bits 3-
0168F0: 30 2E 0D 0D 42 69 74 20 33 3A 20 7D 20 50 65 6E 0...Bit 3: } Pen
016900: 20 6E 75 6D 62 65 72 0D 42 69 74 20 32 3A 20 7D number.Bit 2: }
016910: 0D 42 69 74 20 31 3A 20 7D 0D 42 69 74 20 30 3A .Bit 1: }.Bit 0:
016920: 20 7D 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D }..============
016930: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
016940: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
016950: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
016960: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 43 6F 6C 6F ==========..Colo
016970: 75 72 20 73 65 6C 65 63 74 69 6F 6E 0D 2D 2D 2D ur selection.---
016980: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 4F -------------..O
016990: 6E 63 65 20 74 68 65 20 70 65 6E 20 68 61 73 20 nce the pen has
0169A0: 62 65 65 6E 20 73 65 6C 65 63 74 65 64 20 74 68 been selected th
0169B0: 65 20 20 63 6F 6C 6F 75 72 20 63 61 6E 20 74 68 e colour can th
0169C0: 65 6E 20 62 65 20 63 68 61 6E 67 65 64 2E 20 42 en be changed. B
0169D0: 69 74 73 20 34 0D 74 6F 20 30 20 68 6F 6C 64 20 its 4.to 0 hold
0169E0: 74 68 65 20 63 6F 6C 6F 75 72 20 6E 75 6D 62 65 the colour numbe
0169F0: 72 20 28 66 72 6F 6D 20 74 68 65 20 68 61 72 64 r (from the hard
016A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
016A10: 13 00 01 00 02 09 4E E5 13 00 C1 02 00 00 00 02 ......N.........
016A20: 13 00 C6 02 00 00 00 02 13 00 C2 02 00 00 00 02 ................
016A30: 13 00 C7 02 00 00 00 02 13 00 C3 02 00 00 00 02 ................
016A40: 13 00 C8 02 00 00 00 02 13 00 C4 02 00 00 00 02 ................
016A50: 13 00 C9 02 00 00 00 02 13 00 C5 02 00 00 00 02 ................
016A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016B00: 31 20 20 20 20 20 20 20 30 20 20 20 20 20 20 20 1 0
016B10: 20 20 20 20 20 20 4D 6F 64 65 20 32 2C 36 34 30 Mode 2,640
016B20: 78 32 30 30 2C 20 32 20 63 6F 6C 6F 75 72 73 0D x200, 2 colours.
016B30: 20 20 31 20 20 20 20 20 20 20 31 20 20 20 20 20 1 1
016B40: 20 20 20 20 20 20 20 20 4D 6F 64 65 20 33 2C 31 Mode 3,1
016B50: 36 30 78 32 30 30 2C 20 34 20 63 6F 6C 6F 75 72 60x200, 4 colour
016B60: 73 2E 0D 0D 0D 52 6F 6D 20 63 6F 6E 66 69 67 75 s....Rom configu
016B70: 72 61 74 69 6F 6E 20 73 65 6C 65 63 74 69 6F 6E ration selection
016B80: 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D .---------------
016B90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 28 53 ------------..(S
016BA0: 65 65 20 74 68 65 20 6D 65 6D 6F 72 79 20 6D 61 ee the memory ma
016BB0: 70 20 66 6F 72 20 6D 6F 72 65 20 69 6E 66 6F 72 p for more infor
016BC0: 6D 61 74 69 6F 6E 29 0D 0D 42 69 74 20 32 20 20 mation)..Bit 2
016BD0: 69 73 20 20 75 73 65 64 20 20 74 6F 20 20 65 6E is used to en
016BE0: 61 62 6C 65 20 20 6F 72 20 20 64 69 73 61 62 6C able or disabl
016BF0: 65 20 20 74 68 65 20 20 6C 6F 77 65 72 20 20 72 e the lower r
016C00: 6F 6D 2E 20 20 54 68 65 20 20 6C 6F 77 65 72 0D om. The lower.
016C10: 72 6F 6D 20 6F 63 63 75 70 69 65 73 20 6D 65 6D rom occupies mem
016C20: 6F 72 79 20 61 64 64 72 65 73 73 65 73 73 20 20 ory addressess
016C30: 26 30 30 30 30 2D 26 33 66 66 66 2E 0D 0D 57 68 &0000-&3fff...Wh
016C40: 65 6E 20 69 74 20 69 73 20 65 6E 61 62 6C 65 64 en it is enabled
016C50: 2C 20 72 65 61 64 69 6E 67 20 66 72 6F 6D 20 20 , reading from
016C60: 26 30 30 30 30 2D 26 33 46 46 46 20 20 77 69 6C &0000-&3FFF wil
016C70: 6C 20 72 65 74 75 72 6E 20 64 61 74 61 20 69 6E l return data in
016C80: 20 74 68 65 0D 72 6F 6D 2E 20 57 68 65 6E 20 61 the.rom. When a
016C90: 20 76 61 6C 75 65 20 69 73 20 77 72 69 74 74 65 value is writte
016CA0: 6E 20 74 6F 20 26 30 30 30 30 2D 26 33 46 46 46 n to &0000-&3FFF
016CB0: 2C 20 69 74 20 77 69 6C 6C 20 62 65 20 77 72 69 , it will be wri
016CC0: 74 74 65 6E 20 74 6F 20 74 68 65 0D 72 61 6D 20 tten to the.ram
016CD0: 61 74 20 74 68 65 20 73 61 6D 65 20 61 64 64 72 at the same addr
016CE0: 65 73 73 20 61 73 20 74 68 65 20 72 6F 6D 2E 0D ess as the rom..
016CF0: 0D 57 68 65 6E 20 69 74 20 69 73 20 64 69 73 61 .When it is disa
016D00: 78 65 64 27 20 77 69 74 68 20 74 68 65 20 6D 61 xed' with the ma
016D10: 69 6E 20 72 61 6D 2E 0D 0D 54 68 65 20 43 50 55 in ram...The CPU
016D20: 20 69 73 20 63 61 70 61 62 6C 65 20 6F 66 20 20 is capable of
016D30: 61 63 63 65 73 73 69 6E 67 20 20 61 20 20 6D 61 accessing a ma
016D40: 78 69 6D 75 6D 20 20 6F 66 20 20 36 34 4B 20 20 ximum of 64K
016D50: 61 74 20 6F 6E 65 20 74 69 6D 65 2E 20 54 6F 0D at one time. To.
016D60: 61 63 63 65 73 73 20 65 78 74 72 61 20 6D 65 6D access extra mem
016D70: 6F 72 79 2C 20 62 6C 6F 63 6B 73 20 69 6E 20 74 ory, blocks in t
016D80: 68 65 20 6D 61 69 6E 20 20 72 61 6D 20 28 62 61 he main ram (ba
016D90: 6E 6B 20 31 29 20 63 61 6E 20 62 65 20 65 78 63 nk 1) can be exc
016DA0: 68 61 6E 67 65 64 0D 77 69 74 68 20 62 6C 6F 63 hanged.with bloc
016DB0: 6B 73 20 69 6E 20 74 68 65 20 65 78 74 72 61 20 ks in the extra
016DC0: 72 61 6D 2E 20 54 68 65 20 6E 75 6D 62 65 72 20 ram. The number
016DD0: 6F 66 20 62 6C 6F 63 6B 73 20 65 78 63 68 61 6E of blocks exchan
016DE0: 67 65 64 20 61 6E 64 20 74 68 65 0D 74 68 65 20 ged and the.the
016DF0: 62 6C 6F 63 6B 73 20 20 74 68 65 79 20 20 63 68 blocks they ch
016E00: 61 6E 67 65 20 20 70 6C 61 63 65 20 20 77 69 74 ange place wit
016E10: 68 20 20 63 68 61 6E 67 65 73 20 20 64 65 70 65 h changes depe
016E20: 6E 64 69 6E 67 20 20 6F 6E 20 20 74 68 65 20 72 nding on the r
016E30: 61 6D 0D 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E am.configuration
016E40: 20 75 73 65 64 2E 0D 0D 52 61 6D 20 63 6F 6E 66 used...Ram conf
016E50: 69 67 75 72 61 74 69 6F 6E 73 0D 2D 2D 2D 2D 2D igurations.-----
016E60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 42 -------------..B
016E70: 69 74 73 20 20 32 2D 30 20 20 73 65 6C 65 63 74 its 2-0 select
016E80: 20 20 77 68 69 63 68 20 20 72 61 6D 20 20 63 6F which ram co
016E90: 6E 66 69 67 75 72 61 74 69 6F 6E 20 20 20 69 73 nfiguration is
016EA0: 20 20 74 6F 20 20 62 65 20 20 75 73 65 64 2E 20 to be used.
016EB0: 20 57 68 65 6E 0D 63 6F 6E 66 69 67 75 72 61 74 When.configurat
016EC0: 69 6F 6E 20 30 20 69 73 20 73 65 6C 65 63 74 65 ion 0 is selecte
016ED0: 64 20 20 28 72 65 67 61 72 64 6C 65 73 73 20 20 d (regardless
016EE0: 6F 66 20 20 74 68 65 20 20 62 61 6E 6B 20 73 65 of the bank se
016EF0: 6C 65 63 74 65 64 29 2C 20 74 68 65 0D 43 50 55 lected), the.CPU
016F00: 62 6C 65 64 2C 20 64 61 74 61 20 72 65 61 64 20 bled, data read
016F10: 20 66 72 6F 6D 20 20 26 30 30 30 30 2D 26 33 46 from &0000-&3F
016F20: 46 46 20 77 69 6C 6C 20 72 65 74 75 72 6E 20 74 FF will return t
016F30: 68 65 20 64 61 74 61 0D 69 6E 20 74 68 65 20 72 he data.in the r
016F40: 61 6D 2E 0D 0D 53 69 6D 69 6C 61 72 6C 79 2C 20 am...Similarly,
016F50: 62 69 74 20 33 20 63 6F 6E 74 72 6F 6C 73 20 65 bit 3 controls e
016F60: 6E 61 62 6C 69 6E 67 20 6F 72 20 64 69 73 61 62 nabling or disab
016F70: 6C 69 6E 67 20 6F 66 20 74 68 65 20 75 70 70 65 ling of the uppe
016F80: 72 20 72 6F 6D 2E 0D 0D 54 68 65 20 75 70 70 65 r rom...The uppe
016F90: 72 20 72 6F 6D 20 72 65 73 69 64 65 73 20 69 6E r rom resides in
016FA0: 20 6D 65 6D 6F 72 79 20 20 61 64 64 72 65 73 73 memory address
016FB0: 65 73 73 20 26 43 30 30 30 2D 26 46 46 46 46 2E ess &C000-&FFFF.
016FC0: 20 54 68 65 20 75 70 70 65 72 20 72 6F 6D 0D 63 The upper rom.c
016FD0: 61 6E 20 62 65 20 62 61 73 69 63 20 6F 72 20 61 an be basic or a
016FE0: 6E 79 20 6F 74 68 65 72 20 20 65 78 74 72 61 20 ny other extra
016FF0: 20 65 78 70 61 6E 73 69 6F 6E 20 20 72 6F 6D 73 expansion roms
017000: 20 77 68 69 63 68 20 6D 61 79 20 62 65 20 70 6C which may be pl
017010: 75 67 67 65 64 0D 69 6E 74 6F 20 61 6E 20 65 78 ugged.into an ex
017020: 70 61 6E 73 69 6F 6E 20 62 6F 61 72 64 2E 20 54 pansion board. T
017030: 68 65 20 75 70 70 65 72 20 72 6F 6D 20 20 69 73 he upper rom is
017040: 20 73 65 6C 65 63 74 65 64 20 62 79 20 77 72 69 selected by wri
017050: 74 69 6E 67 20 74 68 65 20 72 6F 6D 0D 6E 75 6D ting the rom.num
017060: 62 65 72 20 74 6F 20 70 6F 72 74 20 26 44 46 78 ber to port &DFx
017070: 78 2E 20 28 53 65 65 20 75 70 70 65 72 20 72 6F x. (See upper ro
017080: 6D 20 73 65 6C 65 63 74 69 6F 6E 20 66 6F 72 20 m selection for
017090: 6D 6F 72 65 20 69 6E 66 6F 72 6D 61 74 69 6F 6E more information
0170A0: 29 2E 0D 0D 57 68 65 6E 20 74 68 65 20 75 70 70 )...When the upp
0170B0: 65 72 20 72 6F 6D 20 69 73 20 20 65 6E 61 62 6C er rom is enabl
0170C0: 65 64 2C 20 20 72 65 61 64 69 6E 67 20 66 72 6F ed, reading fro
0170D0: 6D 20 26 63 30 30 30 2D 26 66 66 66 66 2C 20 77 m &c000-&ffff, w
0170E0: 69 6C 6C 20 72 65 74 75 72 6E 0D 64 61 74 61 20 ill return.data
0170F0: 69 6E 20 74 68 65 20 72 6F 6D 2E 20 20 57 68 65 in the rom. Whe
017100: 20 77 69 6C 6C 20 6F 6E 6C 79 20 61 63 63 65 73 will only acces
017110: 73 20 74 68 65 20 20 6D 61 69 6E 20 20 72 61 6D s the main ram
017120: 2E 20 20 57 68 65 6E 20 63 6F 6E 66 69 67 75 72 . When configur
017130: 61 74 69 6F 6E 20 32 20 69 73 20 73 65 6C 65 63 ation 2 is selec
017140: 74 65 64 0D 74 68 65 20 43 50 55 20 77 69 6C 6C ted.the CPU will
017150: 20 6F 6E 6C 79 20 61 63 63 65 73 73 20 74 68 65 only access the
017160: 20 62 61 6E 6B 20 73 65 6C 65 63 74 65 64 2E 0D bank selected..
017170: 0D 49 6E 20 74 68 65 20 74 61 62 6C 65 20 61 62 .In the table ab
017180: 6F 76 65 2C 20 30 2D 33 20 61 72 65 20 74 68 65 ove, 0-3 are the
017190: 20 20 62 6C 6F 63 6B 73 20 20 69 6E 20 74 68 65 blocks in the
0171A0: 20 6D 61 69 6E 20 72 61 6D 20 28 62 61 6E 6B 20 main ram (bank
0171B0: 31 29 2C 20 61 6E 64 0D 34 2D 37 20 61 72 65 20 1), and.4-7 are
0171C0: 74 68 65 20 62 6C 6F 63 6B 73 20 6F 66 20 20 74 the blocks of t
0171D0: 68 65 20 20 73 65 6C 65 63 74 65 64 20 20 62 61 he selected ba
0171E0: 6E 6B 2C 20 20 61 73 20 74 68 65 79 20 77 6F 75 nk, as they wou
0171F0: 6C 64 20 6E 6F 72 6D 61 6C 6C 79 20 62 65 0D 61 ld normally be.a
017200: 72 72 61 6E 67 65 64 20 73 68 6F 77 6E 20 62 65 rranged shown be
017210: 6C 6F 77 2E 20 54 68 65 69 72 20 6E 65 77 20 20 low. Their new
017220: 70 6F 73 69 74 69 6F 6E 2C 20 20 69 73 20 74 68 position, is th
017230: 65 20 70 6F 73 69 74 69 6F 6E 20 74 68 65 79 20 e position they
017240: 77 6F 75 6C 64 0D 74 61 6B 65 20 69 66 20 74 68 would.take if th
017250: 61 74 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E at configuration
017260: 20 77 61 73 20 75 73 65 64 2E 0D 0D 49 74 20 69 was used...It i
017270: 73 20 6E 6F 74 20 61 64 76 69 73 65 61 62 6C 65 s not adviseable
017280: 20 20 74 6F 20 20 75 73 65 20 20 63 6F 6E 66 69 to use confi
017290: 67 75 72 61 74 69 6F 6E 20 20 32 20 20 77 68 65 guration 2 whe
0172A0: 6E 20 20 74 68 65 20 66 69 72 6D 77 61 72 65 20 n the firmware
0172B0: 69 73 0D 72 75 6E 6E 69 6E 67 2C 20 6F 72 20 74 is.running, or t
0172C0: 68 65 20 63 6F 6D 70 75 74 65 72 20 77 69 6C 6C he computer will
0172D0: 20 63 72 61 73 68 20 61 6E 64 20 79 6F 75 20 77 crash and you w
0172E0: 69 6C 6C 20 6C 6F 73 65 20 76 61 6C 75 61 62 6C ill lose valuabl
0172F0: 65 20 64 61 74 61 2E 0D 0D 4E 4F 54 45 3A 20 4E e data...NOTE: N
017300: 6E 20 20 64 61 74 61 20 20 69 73 20 20 77 72 69 n data is wri
017310: 74 74 65 6E 20 20 74 6F 20 20 26 63 30 30 30 2D tten to &c000-
017320: 26 46 46 46 46 2C 20 69 74 20 77 69 6C 6C 20 62 &FFFF, it will b
017330: 65 0D 77 72 69 74 74 65 6E 20 74 6F 20 74 68 65 e.written to the
017340: 20 72 61 6D 20 61 74 20 74 68 65 20 73 61 6D 65 ram at the same
017350: 20 61 64 64 72 65 73 73 20 61 73 20 74 68 65 20 address as the
017360: 72 6F 6D 2E 0D 0D 57 68 65 6E 20 74 68 65 20 75 rom...When the u
017370: 70 70 65 72 20 72 6F 6D 20 69 73 20 64 69 73 61 pper rom is disa
017380: 62 6C 65 64 2C 20 61 6E 64 20 20 64 61 74 61 20 bled, and data
017390: 69 73 20 72 65 61 64 20 66 72 6F 6D 20 26 63 30 is read from &c0
0173A0: 30 30 2D 26 66 66 66 66 20 74 68 65 0D 64 61 74 00-&ffff the.dat
0173B0: 61 20 72 65 74 75 72 6E 65 64 20 77 69 6C 6C 20 a returned will
0173C0: 62 65 20 74 68 65 20 64 61 74 61 20 69 6E 20 74 be the data in t
0173D0: 68 65 20 72 61 6D 2E 0D 0D 42 69 74 20 34 20 63 he ram...Bit 4 c
0173E0: 6F 6E 74 72 6F 6C 73 20 20 74 68 65 20 20 43 50 ontrols the CP
0173F0: 55 20 20 69 6E 74 65 72 72 75 70 74 73 2E 20 20 U interrupts.
017400: 41 20 20 43 50 55 20 20 69 6E 74 65 72 72 75 70 A CPU interrup
017410: 74 20 20 6F 63 63 75 72 73 20 65 76 65 72 79 0D t occurs every.
017420: 33 30 30 74 68 20 6F 66 20 61 20 73 65 63 6F 6E 300th of a secon
017430: 64 2E 20 57 68 65 6E 20 61 6E 20 20 69 6E 74 65 d. When an inte
017440: 72 72 75 70 74 20 20 6F 63 63 75 72 73 2C 20 74 rrupt occurs, t
017450: 68 65 20 43 50 55 20 73 74 6F 70 73 20 65 78 65 he CPU stops exe
017460: 63 75 74 69 6E 67 0D 74 68 65 20 63 75 72 72 65 cuting.the curre
017470: 6E 74 20 70 72 6F 67 72 61 6D 2C 20 20 61 6E 64 nt program, and
017480: 20 20 65 78 65 63 75 74 65 73 20 20 61 6E 20 20 executes an
017490: 69 6E 74 65 72 72 75 70 74 20 20 70 72 6F 67 72 interrupt progr
0174A0: 61 6D 2E 20 20 57 68 65 6E 20 74 68 65 0D 69 6E am. When the.in
0174B0: 74 65 72 72 75 70 74 20 70 72 6F 67 72 61 6D 20 terrupt program
0174C0: 20 68 61 73 20 20 62 65 65 6E 20 20 63 6F 6D 70 has been comp
0174D0: 6C 65 74 65 64 2C 20 20 69 74 20 20 72 65 74 75 leted, it retu
0174E0: 72 6E 73 20 20 74 6F 20 20 74 68 65 20 63 75 72 rns to the cur
0174F0: 72 65 6E 74 0D 70 72 6F 67 72 61 6D 2E 20 28 53 rent.program. (S
017500: 6F 72 6D 61 6C 6C 79 20 74 68 65 20 20 43 50 43 ormally the CPC
017510: 20 20 72 75 6E 73 20 20 69 6E 20 20 72 61 6D 20 runs in ram
017520: 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 20 configuration
017530: 30 20 20 28 41 4D 53 44 4F 53 29 20 61 6E 64 0D 0 (AMSDOS) and.
017540: 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 31 20 configuration 1
017550: 28 43 50 2F 4D 29 2E 0D 0D 0D 4E 6F 72 6D 61 6C (CP/M)....Normal
017560: 20 61 72 72 61 6E 67 65 6D 65 6E 74 20 6F 66 20 arrangement of
017570: 62 6C 6F 63 6B 73 3A 0D 0D 28 57 69 74 68 6F 75 blocks:..(Withou
017580: 74 20 61 6E 79 20 72 61 6D 20 63 6F 6E 66 69 67 t any ram config
017590: 75 72 61 74 69 6F 6E 20 73 65 6C 65 63 74 65 64 uration selected
0175A0: 29 2E 0D 0D 20 20 20 20 20 20 20 20 4D 61 69 6E )... Main
0175B0: 20 52 61 6D 20 20 20 20 20 20 20 20 53 65 6C 65 Ram Sele
0175C0: 63 74 65 64 20 62 61 6E 6B 0D 20 20 20 20 20 20 cted bank.
0175D0: 20 20 28 62 61 6E 6B 20 31 29 0D 0D 26 46 46 46 (bank 1)..&FFF
0175E0: 46 20 20 20 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D F +-----------
0175F0: 2D 2D 2D 2D 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----+-----------
017600: 2D 2D 2D 2D 2B 0D 20 20 20 20 20 20 20 20 7C 20 ----+. |
017610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 |
017620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 0D |.
017630: 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 |
017640: 33 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 3 |
017650: 37 20 20 20 20 20 20 20 7C 0D 20 20 20 20 20 20 7 |.
017660: 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 |
017670: 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 |
017680: 20 20 7C 0D 26 43 30 30 30 20 20 20 2B 2D 2D 2D |.&C000 +---
017690: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2B 2D 2D 2D ------------+---
0176A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2B 0D 20 20 ------------+.
0176B0: 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 |
0176C0: 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 |
0176D0: 20 20 20 20 20 20 7C 0D 20 20 20 20 20 20 20 20 |.
0176E0: 7C 20 20 20 20 20 20 20 32 20 20 20 20 20 20 20 | 2
0176F0: 7C 20 20 20 20 20 20 20 36 20 20 20 20 20 20 20 | 6
017700: 65 65 20 69 6E 74 65 72 72 75 70 74 73 20 66 6F ee interrupts fo
017710: 72 20 6D 6F 72 65 20 69 6E 66 6F 72 6D 61 74 69 r more informati
017720: 6F 6E 29 2E 0D 0D 42 69 74 20 34 20 69 73 20 75 on)...Bit 4 is u
017730: 73 65 64 20 74 6F 20 64 65 74 65 72 6D 69 6E 65 sed to determine
017740: 20 77 68 65 74 68 65 72 20 43 50 55 20 69 6E 74 whether CPU int
017750: 65 72 72 75 70 74 73 20 61 72 65 20 61 6C 6C 6F errupts are allo
017760: 77 65 64 2E 0D 0D 57 68 65 6E 20 74 68 69 73 20 wed...When this
017770: 62 69 74 20 20 69 73 20 20 73 65 74 20 20 74 6F bit is set to
017780: 20 20 31 2C 20 20 69 74 20 20 70 72 65 76 65 6E 1, it preven
017790: 74 73 20 20 74 68 65 20 20 6E 65 78 74 20 69 6E ts the next in
0177A0: 74 65 72 72 75 70 74 20 66 72 6F 6D 0D 6F 63 63 terrupt from.occ
0177B0: 75 72 69 6E 67 2E 0D 0D 57 68 65 6E 20 74 68 69 uring...When thi
0177C0: 73 20 62 69 74 20 69 73 20 73 65 74 20 74 6F 20 s bit is set to
0177D0: 30 2C 20 74 68 65 20 6E 65 78 74 20 69 6E 74 65 0, the next inte
0177E0: 72 72 75 70 74 20 69 73 20 65 6E 61 62 6C 65 64 rrupt is enabled
0177F0: 2E 0D 0D 53 75 6D 6D 61 72 79 3A 0D 0D 42 69 74 ...Summary:..Bit
017800: 20 37 3A 20 7D 20 47 61 74 65 20 41 72 72 61 79 7: } Gate Array
017810: 20 66 75 6E 63 74 69 6F 6E 20 28 31 29 0D 42 69 function (1).Bi
017820: 74 20 36 3A 20 7D 20 20 20 20 20 20 20 20 20 20 t 6: }
017830: 20 20 20 20 20 20 20 20 20 20 20 28 30 29 0D 0D (0)..
017840: 42 69 74 20 35 3A 20 4E 6F 74 20 75 73 65 64 2E Bit 5: Not used.
017850: 0D 0D 42 69 74 20 34 3A 20 43 50 55 20 49 6E 74 ..Bit 4: CPU Int
017860: 65 72 72 75 70 74 20 65 6E 61 62 6C 65 2F 64 69 errupt enable/di
017870: 73 61 62 6C 65 0D 20 20 20 20 20 20 20 31 3A 64 sable. 1:d
017880: 69 73 61 62 6C 65 20 6E 65 78 74 20 69 6E 74 65 isable next inte
017890: 72 72 75 70 74 2C 20 30 3A 65 6E 61 62 6C 65 20 rrupt, 0:enable
0178A0: 6E 65 78 74 20 69 6E 74 65 72 72 75 70 74 0D 0D next interrupt..
0178B0: 42 69 74 20 33 3A 20 55 70 70 65 72 20 72 6F 6D Bit 3: Upper rom
0178C0: 20 65 6E 61 62 6C 65 2F 64 69 73 61 62 6C 65 2E enable/disable.
0178D0: 20 28 45 78 70 61 6E 73 69 6F 6E 20 72 6F 6D 73 (Expansion roms
0178E0: 29 0D 20 20 20 20 20 20 20 31 3A 64 69 73 61 62 ). 1:disab
0178F0: 6C 65 20 75 70 70 65 72 20 72 6F 6D 2C 20 30 3A le upper rom, 0:
017900: 7C 0D 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 |. |
017910: 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 |
017920: 20 20 20 20 20 20 20 20 20 20 7C 0D 26 38 30 30 |.&800
017930: 30 20 20 20 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0 +-----------
017940: 2D 2D 2D 2D 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----+-----------
017950: 2D 2D 2D 2D 2B 0D 20 20 20 20 20 20 20 20 7C 20 ----+. |
017960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 20 |
017970: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C 0D |.
017980: 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 |
017990: 31 20 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 1 |
0179A0: 35 20 20 20 20 20 20 20 7C 0D 20 20 20 20 20 20 5 |.
0179B0: 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 |
0179C0: 20 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 |
0179D0: 20 20 7C 0D 26 34 30 30 30 20 20 20 2B 2D 2D 2D |.&4000 +---
0179E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2B 2D 2D 2D ------------+---
0179F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2B 0D 20 20 ------------+.
017A00: 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 |
017A10: 20 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 |
017A20: 20 20 20 20 20 20 7C 0D 20 20 20 20 20 20 20 20 |.
017A30: 7C 20 20 20 20 20 20 20 30 20 20 20 20 20 20 20 | 0
017A40: 7C 20 20 20 20 20 20 20 34 20 20 20 20 20 20 20 | 4
017A50: 7C 0D 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 |. |
017A60: 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 |
017A70: 20 20 20 20 20 20 20 20 20 20 7C 0D 26 30 30 30 |.&000
017A80: 30 20 20 20 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0 +-----------
017A90: 2D 2D 2D 2D 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----+-----------
017AA0: 2D 2D 2D 2D 2B 0D 0D 0D 42 69 74 20 32 20 20 20 ----+...Bit 2
017AB0: 42 69 74 20 31 20 20 20 42 69 74 20 30 20 20 20 Bit 1 Bit 0
017AC0: 43 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 6E 75 Configuration nu
017AD0: 6D 62 65 72 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D mber.-----------
017AE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
017AF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
017B00: 65 6E 61 62 6C 65 20 75 70 70 65 72 20 72 6F 6D enable upper rom
017B10: 0D 0D 42 69 74 20 32 3A 20 4C 6F 77 65 72 20 72 ..Bit 2: Lower r
017B20: 6F 6D 20 65 6E 61 62 6C 65 2F 64 69 73 61 62 6C om enable/disabl
017B30: 65 2E 20 28 4F 70 65 72 61 74 69 6E 67 20 53 79 e. (Operating Sy
017B40: 73 74 65 6D 20 72 6F 6D 29 0D 20 20 20 20 20 20 stem rom).
017B50: 20 31 3A 64 69 73 61 62 6C 65 20 6C 6F 77 65 72 1:disable lower
017B60: 20 72 6F 6D 2C 20 30 3A 65 6E 61 62 6C 65 20 6C rom, 0:enable l
017B70: 6F 77 65 72 20 72 6F 6D 0D 0D 42 69 74 20 31 3A ower rom..Bit 1:
017B80: 20 7D 20 53 63 72 65 65 6E 20 4D 6F 64 65 0D 42 } Screen Mode.B
017B90: 69 74 20 30 3A 20 7D 0D 0D 3D 3D 3D 3D 3D 3D 3D it 0: }..=======
017BA0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
017BB0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
017BC0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
017BD0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D ===============.
017BE0: 0D 53 65 6C 65 63 74 20 72 61 6D 20 63 6F 6E 66 .Select ram conf
017BF0: 69 67 75 72 61 74 69 6F 6E 0D 2D 2D 2D 2D 2D 2D iguration.------
017C00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
017C10: 2D 2D 0D 0D 54 68 69 73 20 72 65 67 69 73 74 65 --..This registe
017C20: 72 20 69 73 20 75 73 65 64 20 74 6F 20 20 73 65 r is used to se
017C30: 6C 65 63 74 20 20 74 68 65 20 20 72 61 6D 20 20 lect the ram
017C40: 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 2E 0D 0D configuration...
017C50: 54 68 65 20 72 61 6D 20 69 73 20 73 70 6C 69 74 The ram is split
017C60: 20 69 6E 74 6F 20 62 61 6E 6B 73 20 6F 66 20 36 into banks of 6
017C70: 34 4B 2E 20 20 45 61 63 68 20 6F 66 20 74 68 65 4K. Each of the
017C80: 73 65 20 62 61 6E 6B 73 20 69 73 20 73 70 6C 69 se banks is spli
017C90: 74 20 69 6E 74 6F 0D 62 6C 6F 63 6B 73 20 6F 66 t into.blocks of
017CA0: 20 31 36 4B 2E 20 55 73 69 6E 67 20 74 68 69 73 16K. Using this
017CB0: 20 20 72 65 67 69 73 74 65 72 2C 20 20 74 68 65 register, the
017CC0: 20 20 75 73 65 72 20 20 63 61 6E 20 73 65 6C 65 user can sele
017CD0: 63 74 20 77 68 69 63 68 20 62 61 6E 6B 0D 74 68 ct which bank.th
017CE0: 65 79 20 77 69 73 68 20 74 6F 20 75 73 65 20 61 ey wish to use a
017CF0: 6E 64 20 68 6F 77 20 69 74 20 69 73 20 27 6D 69 nd how it is 'mi
017D00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
017D10: 14 00 01 00 02 09 4E E5 14 00 C1 02 00 00 00 02 ......N.........
017D20: 14 00 C6 02 00 00 00 02 14 00 C2 02 00 00 00 02 ................
017D30: 14 00 C7 02 00 00 00 02 14 00 C3 02 00 00 00 02 ................
017D40: 14 00 C8 02 00 00 00 02 14 00 C4 02 00 00 00 02 ................
017D50: 14 00 C9 02 00 00 00 02 14 00 C5 02 00 00 00 02 ................
017D60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017E00: 2D 0D 30 20 20 20 20 20 20 20 30 20 20 20 20 20 -.0 0
017E10: 20 20 30 20 20 20 20 20 20 20 30 0D 30 20 20 20 0 0.0
017E20: 20 20 20 20 30 20 20 20 20 20 20 20 31 20 20 20 0 1
017E30: 20 20 20 20 31 0D 30 20 20 20 20 20 20 20 31 20 1.0 1
017E40: 20 20 20 20 20 20 30 20 20 20 20 20 20 20 32 0D 0 2.
017E50: 30 20 20 20 20 20 20 20 31 20 20 20 20 20 20 20 0 1
017E60: 31 20 20 20 20 20 20 20 33 0D 31 20 20 20 20 20 1 3.1
017E70: 20 20 30 20 20 20 20 20 20 20 30 20 20 20 20 20 0 0
017E80: 20 20 34 0D 31 20 20 20 20 20 20 20 30 20 20 20 4.1 0
017E90: 20 20 20 20 31 20 20 20 20 20 20 20 35 0D 31 20 1 5.1
017EA0: 20 20 20 20 20 20 31 20 20 20 20 20 20 20 30 20 1 0
017EB0: 20 20 20 20 20 20 36 0D 31 20 20 20 20 20 20 20 6.1
017EC0: 31 20 20 20 20 20 20 20 31 20 20 20 20 20 20 20 1 1
017ED0: 37 0D 0D 0D 0D 4F 72 67 61 6E 69 7A 61 74 69 6F 7....Organizatio
017EE0: 6E 20 20 20 20 20 20 20 20 20 20 20 20 42 6C 6F n Blo
017EF0: 63 6B 20 61 63 63 65 73 73 65 64 20 61 74 20 6D ck accessed at m
017F00: 65 6D 6F 72 79 20 61 64 64 72 65 73 73 0D 0D 20 emory address..
017F10: 20 20 20 20 20 20 20 20 20 20 26 30 30 30 30 2D &0000-
017F20: 26 33 46 46 46 20 20 20 20 20 26 34 30 30 30 2D &3FFF &4000-
017F30: 26 37 66 66 66 20 20 20 20 20 26 38 30 30 30 2D &7fff &8000-
017F40: 26 62 66 66 66 20 20 20 20 26 63 30 30 30 2D 26 &bfff &c000-&
017F50: 66 66 66 66 0D 0D 20 20 20 20 20 30 20 20 20 20 ffff.. 0
017F60: 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 0
017F70: 20 20 20 20 20 20 31 20 20 20 20 20 20 20 20 20 1
017F80: 20 20 20 20 20 20 32 20 20 20 20 20 20 20 20 20 2
017F90: 20 20 20 20 20 20 33 0D 0D 20 20 20 20 20 31 20 3.. 1
017FA0: 20 20 20 20 20 20 20 20 20 30 20 20 20 20 20 20 0
017FB0: 20 20 20 20 20 20 20 20 20 31 20 20 20 20 20 20 1
017FC0: 20 20 20 20 20 20 20 20 20 32 20 20 20 20 20 20 2
017FD0: 20 20 20 20 20 20 20 20 20 37 0D 0D 20 20 20 20 7..
017FE0: 20 32 20 20 20 20 20 20 20 20 20 20 34 20 20 20 2 4
017FF0: 20 20 20 20 20 20 20 20 20 20 20 20 35 20 20 20 5
018000: 20 20 20 20 20 20 20 20 20 20 3B 47 61 74 65 20 ;Gate
018010: 61 72 72 61 79 20 70 6F 72 74 0D 4C 44 20 41 2C array port.LD A,
018020: 25 31 30 30 30 30 30 30 30 2B 25 30 30 30 30 31 %10000000+%00001
018030: 31 31 30 20 20 20 20 20 20 20 20 3B 4D 6F 64 65 110 ;Mode
018040: 20 20 61 6E 64 20 20 72 6F 6D 20 20 73 65 6C 65 and rom sele
018050: 63 74 69 6F 6E 20 20 28 61 6E 64 20 47 61 74 65 ction (and Gate
018060: 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
018070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018080: 20 3B 41 72 72 61 79 20 66 75 6E 63 74 69 6F 6E ;Array function
018090: 29 0D 4F 55 54 20 28 43 29 2C 41 20 20 20 20 20 ).OUT (C),A
0180A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0180B0: 20 20 3B 53 65 6E 64 20 69 74 0D 52 45 54 0D 0D ;Send it.RET..
0180C0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0180D0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0180E0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0180F0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018100: 3D 3D 3D 3D 3D 0D 0D 33 29 20 53 65 74 74 69 6E =====..3) Settin
018110: 67 20 74 68 65 20 72 61 6D 20 63 6F 6E 66 69 67 g the ram config
018120: 75 72 61 74 69 6F 6E 2C 0D 0D 53 65 74 74 69 6E uration,..Settin
018130: 67 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 g configuration
018140: 31 2E 0D 0D 4C 44 20 42 43 2C 26 37 46 30 30 20 1...LD BC,&7F00
018150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018160: 20 20 20 20 3B 47 61 74 65 20 61 72 72 61 79 20 ;Gate array
018170: 70 6F 72 74 0D 4C 44 20 41 2C 25 31 31 30 30 30 port.LD A,%11000
018180: 30 30 30 2B 25 30 30 30 30 30 30 30 31 20 20 20 000+%00000001
018190: 20 20 20 20 20 3B 52 61 6D 20 20 63 6F 6E 66 69 ;Ram confi
0181A0: 67 75 72 61 74 69 6F 6E 20 20 28 61 6E 64 20 20 guration (and
0181B0: 47 61 74 65 20 41 72 72 61 79 0D 20 20 20 20 20 Gate Array.
0181C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0181D0: 20 20 20 20 20 20 20 20 20 20 20 3B 66 75 6E 63 ;func
0181E0: 74 69 6F 6E 29 0D 4F 55 54 20 28 43 29 2C 41 20 tion).OUT (C),A
0181F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018200: 20 20 20 20 20 20 20 20 20 20 20 20 36 20 20 20 6
018210: 20 20 20 20 20 20 20 20 20 20 20 20 37 0D 0D 20 7..
018220: 20 20 20 20 33 20 20 20 20 20 20 20 20 20 20 30 3 0
018230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 33 3
018240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 2
018250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 37 7
018260: 0D 0D 20 20 20 20 20 34 20 20 20 20 20 20 20 20 .. 4
018270: 20 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 0
018280: 20 20 34 20 20 20 20 20 20 20 20 20 20 20 20 20 4
018290: 20 20 32 20 20 20 20 20 20 20 20 20 20 20 20 20 2
0182A0: 20 20 33 0D 0D 20 20 20 20 20 35 20 20 20 20 20 3.. 5
0182B0: 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 20 0
0182C0: 20 20 20 20 20 35 20 20 20 20 20 20 20 20 20 20 5
0182D0: 20 20 20 20 20 32 20 20 20 20 20 20 20 20 20 20 2
0182E0: 20 20 20 20 20 33 0D 0D 20 20 20 20 20 36 20 20 3.. 6
0182F0: 20 20 20 20 20 20 20 20 30 20 20 20 20 20 20 20 0
018300: 20 20 20 20 20 20 20 20 36 20 20 20 20 20 20 20 6
018310: 20 20 20 20 20 20 20 20 32 20 20 20 20 20 20 20 2
018320: 20 20 20 20 20 20 20 20 33 0D 0D 20 20 20 20 20 3..
018330: 37 20 20 20 20 20 20 20 20 20 20 30 20 20 20 20 7 0
018340: 20 20 20 20 20 20 20 20 20 20 20 37 20 20 20 20 7
018350: 20 20 20 20 20 20 20 20 20 20 20 32 20 20 20 20 2
018360: 20 20 20 20 20 20 20 20 20 20 20 33 0D 0D 42 61 3..Ba
018370: 6E 6B 20 73 65 6C 65 63 74 69 6F 6E 73 0D 2D 2D nk selections.--
018380: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 42 -------------..B
018390: 69 74 73 20 35 2D 33 20 73 65 6C 65 63 74 20 74 its 5-3 select t
0183A0: 68 65 20 62 61 6E 6B 20 72 65 71 75 69 72 65 64 he bank required
0183B0: 20 61 73 20 73 68 6F 77 6E 20 69 6E 20 74 68 65 as shown in the
0183C0: 20 74 61 62 6C 65 20 62 65 6C 6F 77 2E 0D 0D 42 table below...B
0183D0: 69 74 20 35 20 20 20 42 69 74 20 34 20 20 20 42 it 5 Bit 4 B
0183E0: 69 74 20 33 20 20 20 20 20 20 20 20 20 20 20 42 it 3 B
0183F0: 61 6E 6B 20 53 65 6C 65 63 74 65 64 0D 2D 2D 2D ank Selected.---
018400: 20 20 20 20 20 20 3B 53 65 6E 64 20 69 74 0D 52 ;Send it.R
018410: 45 54 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ET..============
018420: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018430: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018440: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018450: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 50 61 6C 65 ==========..Pale
018460: 74 74 65 20 63 6F 6E 76 65 72 73 69 6F 6E 20 63 tte conversion c
018470: 68 61 72 74 0D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D hart.-----------
018480: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 -------------..
018490: 20 46 69 72 6D 77 61 72 65 20 63 6F 6C 6F 75 72 Firmware colour
0184A0: 20 20 20 20 20 20 20 43 6F 6C 6F 75 72 20 20 20 Colour
0184B0: 20 20 20 20 20 20 20 48 61 72 64 77 61 72 65 20 Hardware
0184C0: 70 61 6C 65 74 74 65 20 20 20 20 51 75 69 63 6B palette Quick
0184D0: 0D 20 20 6E 75 6D 62 65 72 20 20 20 20 20 20 20 . number
0184E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0184F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 6E 75 6D num
018500: 62 65 72 20 20 20 20 20 20 20 20 52 65 66 65 72 ber Refer
018510: 65 6E 63 65 0D 0D 20 20 20 20 20 30 20 20 20 20 ence.. 0
018520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 6C Bl
018530: 61 63 6B 20 20 20 20 20 20 20 20 20 20 20 20 20 ack
018540: 20 20 20 20 20 20 32 30 20 20 20 20 20 20 20 20 20
018550: 20 20 26 35 34 0D 20 20 20 20 20 31 20 20 20 20 &54. 1
018560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 6C Bl
018570: 75 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ue
018580: 20 20 20 20 20 20 34 20 20 20 20 20 20 20 20 20 4
018590: 20 20 26 34 34 0D 20 20 20 20 20 32 20 20 20 20 &44. 2
0185A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 Br
0185B0: 69 67 68 74 20 42 6C 75 65 20 20 20 20 20 20 20 ight Blue
0185C0: 20 20 20 20 20 20 32 31 20 20 20 20 20 20 20 20 21
0185D0: 20 20 26 35 35 0D 20 20 20 20 20 33 20 20 20 20 &55. 3
0185E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 Re
0185F0: 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d
018600: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
018610: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
018620: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 30 20 20 20 ----------. 0
018630: 20 20 20 20 30 20 20 20 20 20 20 20 30 20 20 20 0 0
018640: 20 20 20 20 20 20 20 20 20 20 20 42 61 6E 6B 20 Bank
018650: 32 0D 20 30 20 20 20 20 20 20 20 30 20 20 20 20 2. 0 0
018660: 20 20 20 31 20 20 20 20 20 20 20 20 20 20 20 20 1
018670: 20 20 42 61 6E 6B 20 33 0D 20 30 20 20 20 20 20 Bank 3. 0
018680: 20 20 31 20 20 20 20 20 20 20 30 20 20 20 20 20 1 0
018690: 20 20 20 20 20 20 20 20 20 42 61 6E 6B 20 34 0D Bank 4.
0186A0: 20 30 20 20 20 20 20 20 20 31 20 20 20 20 20 20 0 1
0186B0: 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1
0186C0: 42 61 6E 6B 20 35 0D 20 31 20 20 20 20 20 20 20 Bank 5. 1
0186D0: 30 20 20 20 20 20 20 20 30 20 20 20 20 20 20 20 0 0
0186E0: 20 20 20 20 20 20 20 42 61 6E 6B 20 36 0D 20 31 Bank 6. 1
0186F0: 20 20 20 20 20 20 20 30 20 20 20 20 20 20 20 31 0 1
018700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 Ba
018710: 6E 6B 20 37 0D 20 31 20 20 20 20 20 20 20 31 20 nk 7. 1 1
018720: 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 0
018730: 20 20 20 20 20 42 61 6E 6B 20 38 0D 20 31 20 20 Bank 8. 1
018740: 20 20 20 20 20 31 20 20 20 20 20 20 20 31 20 20 1 1
018750: 20 20 20 20 20 20 20 20 20 20 20 20 42 61 6E 6B Bank
018760: 20 39 0D 0D 4E 4F 54 45 3A 0D 0D 49 66 20 79 6F 9..NOTE:..If yo
018770: 75 20 68 61 76 65 20 36 34 6B 2C 20 61 6E 64 20 u have 64k, and
018780: 79 6F 75 20 61 74 74 65 6D 70 74 20 20 74 6F 20 you attempt to
018790: 75 73 65 20 61 20 62 61 6E 6B 20 61 6E 64 20 72 use a bank and r
0187A0: 61 6D 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E am configuration
0187B0: 2C 0D 74 68 65 72 65 20 77 69 6C 6C 20 62 65 20 ,.there will be
0187C0: 6E 6F 20 65 66 66 65 63 74 2E 20 20 69 2E 65 2E no effect. i.e.
0187D0: 20 20 74 68 65 20 20 61 72 72 61 6E 67 65 6D 65 the arrangeme
0187E0: 6E 74 20 20 6F 66 20 20 74 68 65 20 36 34 4B 20 nt of the 64K
0187F0: 77 69 6C 6C 20 6E 6F 74 0D 63 68 61 6E 67 65 2E will not.change.
018800: 20 20 20 20 20 20 32 38 20 20 20 20 20 20 20 20 28
018810: 20 20 26 35 43 0D 20 20 20 20 20 34 20 20 20 20 &5C. 4
018820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4D 61 Ma
018830: 67 65 6E 74 61 20 20 20 20 20 20 20 20 20 20 20 genta
018840: 20 20 20 20 20 20 32 34 20 20 20 20 20 20 20 20 24
018850: 20 20 26 35 38 0D 20 20 20 20 20 35 20 20 20 20 &58. 5
018860: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4D 61 Ma
018870: 75 76 65 20 20 20 20 20 20 20 20 20 20 20 20 20 uve
018880: 20 20 20 20 20 20 32 39 20 20 20 20 20 20 20 20 29
018890: 20 20 26 35 44 0D 20 20 20 20 20 36 20 20 20 20 &5D. 6
0188A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 Br
0188B0: 69 67 68 74 20 52 65 64 20 20 20 20 20 20 20 20 ight Red
0188C0: 20 20 20 20 20 20 31 32 20 20 20 20 20 20 20 20 12
0188D0: 20 20 26 34 43 0D 20 20 20 20 20 37 20 20 20 20 &4C. 7
0188E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 75 Pu
0188F0: 72 70 6C 65 20 20 20 20 20 20 20 20 20 20 20 20 rple
018900: 20 20 20 20 20 20 35 20 20 20 20 20 20 20 20 20 5
018910: 20 20 26 34 35 0D 20 20 20 20 20 38 20 20 20 20 &45. 8
018920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 Br
018930: 69 67 68 74 20 4D 61 67 65 6E 74 61 20 20 20 20 ight Magenta
018940: 20 20 20 20 20 20 31 33 20 20 20 20 20 20 20 20 13
018950: 20 20 26 34 44 0D 20 20 20 20 20 39 20 20 20 20 &4D. 9
018960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 72 Gr
018970: 65 65 6E 20 20 20 20 20 20 20 20 20 20 20 20 20 een
018980: 20 20 20 20 20 20 32 32 20 20 20 20 20 20 20 20 22
018990: 20 20 26 35 36 0D 20 20 20 20 31 30 20 20 20 20 &56. 10
0189A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 79 Cy
0189B0: 61 6E 20 20 20 20 20 20 20 20 20 20 20 20 20 20 an
0189C0: 20 20 20 20 20 20 36 20 20 20 20 20 20 20 20 20 6
0189D0: 20 20 26 34 36 0D 20 20 20 20 31 31 20 20 20 20 &46. 11
0189E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6B Sk
0189F0: 79 20 42 6C 75 65 20 20 20 20 20 20 20 20 20 20 y Blue
018A00: 0D 0D 49 66 20 79 6F 75 20 6F 6E 6C 79 20 68 61 ..If you only ha
018A10: 76 65 20 31 32 38 6B 2C 20 72 65 67 61 72 64 6C ve 128k, regardl
018A20: 65 73 73 20 6F 66 20 74 68 65 20 62 61 6E 6B 20 ess of the bank
018A30: 79 6F 75 20 63 68 6F 6F 73 65 2C 20 62 61 6E 6B you choose, bank
018A40: 20 32 0D 77 69 6C 6C 20 62 65 20 73 65 6C 65 63 2.will be selec
018A50: 74 65 64 2E 0D 0D 49 66 20 79 6F 75 20 68 61 76 ted...If you hav
018A60: 65 20 6D 6F 72 65 20 74 68 61 6E 20 31 32 38 4B e more than 128K
018A70: 2C 20 79 6F 75 20 20 77 69 6C 6C 20 20 62 65 20 , you will be
018A80: 20 61 62 6C 65 20 74 6F 20 63 68 6F 6F 73 65 20 able to choose
018A90: 74 68 65 20 62 61 6E 6B 20 61 6E 64 0D 74 68 65 the bank and.the
018AA0: 20 72 61 6D 20 63 6F 6E 66 69 67 75 72 61 74 69 ram configurati
018AB0: 6F 6E 20 61 6E 64 20 69 74 20 77 69 6C 6C 20 61 on and it will a
018AC0: 72 72 61 6E 67 65 20 74 68 65 20 72 61 6D 20 63 rrange the ram c
018AD0: 6F 72 72 65 63 74 6C 79 2E 0D 0D 53 75 6D 6D 61 orrectly...Summa
018AE0: 72 79 3A 0D 0D 42 69 74 20 37 3A 7D 20 47 61 74 ry:..Bit 7:} Gat
018AF0: 65 20 41 72 72 61 79 20 46 75 6E 63 74 69 6F 6E e Array Function
018B00: 20 28 31 29 0D 42 69 74 20 36 3A 7D 20 20 20 20 (1).Bit 6:}
018B10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018B20: 20 28 31 29 0D 0D 42 69 74 20 35 3A 7D 20 42 61 (1)..Bit 5:} Ba
018B30: 6E 6B 0D 42 69 74 20 34 3A 7D 0D 42 69 74 20 33 nk.Bit 4:}.Bit 3
018B40: 3A 7D 0D 0D 42 69 74 20 32 3A 7D 20 52 61 6D 20 :}..Bit 2:} Ram
018B50: 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 0D 42 69 configuration.Bi
018B60: 74 20 31 3A 7D 0D 42 69 74 20 30 3A 7D 0D 0D 3D t 1:}.Bit 0:}..=
018B70: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018B80: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018B90: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018BA0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018BB0: 3D 3D 3D 3D 3D 0D 0D 50 72 6F 67 72 61 6D 6D 69 =====..Programmi
018BC0: 6E 67 20 74 68 65 20 47 61 74 65 20 41 72 72 61 ng the Gate Arra
018BD0: 79 20 2D 20 45 78 61 6D 70 6C 65 73 0D 2D 2D 2D y - Examples.---
018BE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
018BF0: 2D 2D 2D 2D 2D 2D 2D 0D 0D 31 29 20 44 65 66 69 -------..1) Defi
018C00: 20 20 20 20 20 20 32 33 20 20 20 20 20 20 20 20 23
018C10: 20 20 26 35 37 0D 20 20 20 20 31 32 20 20 20 20 &57. 12
018C20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 59 65 Ye
018C30: 6C 6C 6F 77 20 20 20 20 20 20 20 20 20 20 20 20 llow
018C40: 20 20 20 20 20 20 33 30 20 20 20 20 20 20 20 20 30
018C50: 20 20 26 35 45 0D 20 20 20 20 31 33 20 20 20 20 &5E. 13
018C60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 68 Wh
018C70: 69 74 65 20 20 20 20 20 20 20 20 20 20 20 20 20 ite
018C80: 20 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 0
018C90: 20 20 26 34 30 0D 20 20 20 20 31 34 20 20 20 20 &40. 14
018CA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 Pa
018CB0: 73 74 65 6C 20 42 6C 75 65 20 20 20 20 20 20 20 stel Blue
018CC0: 20 20 20 20 20 20 33 31 20 20 20 20 20 20 20 20 31
018CD0: 20 20 26 35 46 0D 20 20 20 20 31 35 20 20 20 20 &5F. 15
018CE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4F 72 Or
018CF0: 61 6E 67 65 20 20 20 20 20 20 20 20 20 20 20 20 ange
018D00: 20 20 20 20 20 20 31 34 20 20 20 20 20 20 20 20 14
018D10: 20 20 26 34 45 0D 20 20 20 20 31 36 20 20 20 20 &4E. 16
018D20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 69 Pi
018D30: 6E 6B 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nk
018D40: 20 20 20 20 20 20 37 20 20 20 20 20 20 20 20 20 7
018D50: 20 20 26 34 37 0D 20 20 20 20 31 37 20 20 20 20 &47. 17
018D60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 Pa
018D70: 73 74 65 6C 20 4D 61 67 65 6E 74 61 20 20 20 20 stel Magenta
018D80: 20 20 20 20 20 20 31 35 20 20 20 20 20 20 20 20 15
018D90: 20 20 26 34 46 0D 20 20 20 20 31 38 20 20 20 20 &4F. 18
018DA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 Br
018DB0: 69 67 68 74 20 47 72 65 65 6E 20 20 20 20 20 20 ight Green
018DC0: 20 20 20 20 20 20 31 38 20 20 20 20 20 20 20 20 18
018DD0: 20 20 26 35 32 0D 20 20 20 20 31 39 20 20 20 20 &52. 19
018DE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 65 Se
018DF0: 61 20 47 72 65 65 6E 20 20 20 20 20 20 20 20 20 a Green
018E00: 6E 69 6E 67 20 74 68 65 20 63 6F 6C 6F 75 72 73 ning the colours
018E10: 2C 0D 0D 53 65 74 74 69 6E 67 20 70 65 6E 20 30 ,..Setting pen 0
018E20: 20 74 6F 20 42 72 69 67 68 74 20 57 68 69 74 65 to Bright White
018E30: 2E 0D 0D 4C 44 20 42 43 2C 26 37 46 30 30 20 20 ...LD BC,&7F00
018E40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018E50: 20 20 20 3B 47 61 74 65 20 41 72 72 61 79 20 70 ;Gate Array p
018E60: 6F 72 74 0D 4C 44 20 41 2C 25 30 30 30 30 30 30 ort.LD A,%000000
018E70: 30 30 2B 30 20 20 20 20 20 20 20 20 20 20 20 20 00+0
018E80: 20 20 20 20 3B 50 65 6E 20 6E 75 6D 62 65 72 20 ;Pen number
018E90: 28 61 6E 64 20 47 61 74 65 20 41 72 72 61 79 20 (and Gate Array
018EA0: 66 75 6E 63 74 69 6F 6E 29 0D 4F 55 54 20 28 43 function).OUT (C
018EB0: 29 2C 41 20 20 20 20 20 20 20 20 20 20 20 20 20 ),A
018EC0: 20 20 20 20 20 20 20 20 20 20 3B 53 65 6E 64 20 ;Send
018ED0: 70 65 6E 20 6E 75 6D 62 65 72 0D 4C 44 20 41 2C pen number.LD A,
018EE0: 25 30 31 30 30 30 30 30 30 2B 31 31 20 20 20 20 %01000000+11
018EF0: 20 20 20 20 20 20 20 20 20 20 20 3B 50 65 6E 20 ;Pen
018F00: 63 6F 6C 6F 75 72 20 28 61 6E 64 20 47 61 74 65 colour (and Gate
018F10: 20 41 72 72 61 79 20 66 75 6E 63 74 69 6F 6E 29 Array function)
018F20: 0D 4F 55 54 20 28 43 29 2C 41 20 20 20 20 20 20 .OUT (C),A
018F30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
018F40: 20 3B 53 65 6E 64 20 69 74 0D 52 45 54 0D 0D 3D ;Send it.RET..=
018F50: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018F60: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018F70: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018F80: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
018F90: 3D 3D 3D 3D 3D 0D 0D 32 29 20 53 65 74 74 69 6E =====..2) Settin
018FA0: 67 20 74 68 65 20 6D 6F 64 65 20 61 6E 64 20 72 g the mode and r
018FB0: 6F 6D 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E om configuration
018FC0: 2C 0D 0D 4D 6F 64 65 20 32 2C 20 75 70 70 65 72 ,..Mode 2, upper
018FD0: 20 61 6E 64 20 6C 6F 77 65 72 20 72 6F 6D 20 64 and lower rom d
018FE0: 69 73 61 62 6C 65 64 2E 0D 0D 4C 44 20 42 43 2C isabled...LD BC,
018FF0: 26 37 46 30 30 20 20 20 20 20 20 20 20 20 20 20 &7F00
019000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
019010: 15 00 01 00 02 09 4E E5 15 00 C1 02 00 00 00 02 ......N.........
019020: 15 00 C6 02 00 00 00 02 15 00 C2 02 00 00 00 02 ................
019030: 15 00 C7 02 00 00 00 02 15 00 C3 02 00 00 00 02 ................
019040: 15 00 C8 02 00 00 00 02 15 00 C4 02 00 00 00 02 ................
019050: 15 00 C9 02 00 00 00 02 15 00 C5 02 00 00 00 02 ................
019060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019100: 20 20 20 20 20 20 32 20 20 20 20 20 20 20 20 20 2
019110: 20 20 26 34 32 0D 20 20 20 20 32 30 20 20 20 20 &42. 20
019120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 Br
019130: 69 67 68 74 20 43 79 61 6E 20 20 20 20 20 20 20 ight Cyan
019140: 20 20 20 20 20 20 31 39 20 20 20 20 20 20 20 20 19
019150: 20 20 26 35 33 0D 20 20 20 20 32 31 20 20 20 20 &53. 21
019160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4C 69 Li
019170: 6D 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 me
019180: 20 20 20 20 20 20 32 36 20 20 20 20 20 20 20 20 26
019190: 20 20 26 35 41 0D 20 20 20 20 32 32 20 20 20 20 &5A. 22
0191A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 Pa
0191B0: 73 74 65 6C 20 67 72 65 65 6E 20 20 20 20 20 20 stel green
0191C0: 20 20 20 20 20 20 32 35 20 20 20 20 20 20 20 20 25
0191D0: 20 20 26 35 39 0D 20 20 20 20 32 33 20 20 20 20 &59. 23
0191E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 Pa
0191F0: 73 74 65 6C 20 43 79 61 6E 20 20 20 20 20 20 20 stel Cyan
019200: 20 20 20 20 20 20 32 37 20 20 20 20 20 20 20 20 27
019210: 20 20 26 35 42 0D 20 20 20 20 32 34 20 20 20 20 &5B. 24
019220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 Br
019230: 69 67 68 74 20 59 65 6C 6C 6F 77 20 20 20 20 20 ight Yellow
019240: 20 20 20 20 20 20 31 30 20 20 20 20 20 20 20 20 10
019250: 20 20 26 34 41 0D 20 20 20 20 32 35 20 20 20 20 &4A. 25
019260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 Pa
019270: 73 74 65 6C 20 59 65 6C 6C 6F 77 20 20 20 20 20 stel Yellow
019280: 20 20 20 20 20 20 33 20 20 20 20 20 20 20 20 20 3
019290: 20 20 26 34 33 0D 20 20 20 20 32 36 20 20 20 20 &43. 26
0192A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 72 Br
0192B0: 69 67 68 74 20 57 68 69 74 65 20 20 20 20 20 20 ight White
0192C0: 20 20 20 20 20 20 31 31 20 20 20 20 20 20 20 20 11
0192D0: 20 20 26 34 42 0D 0D 54 68 69 73 20 63 68 61 72 &4B..This char
0192E0: 74 20 61 6C 73 6F 20 67 69 76 65 73 20 20 61 20 t also gives a
0192F0: 20 71 75 69 63 6B 20 20 72 65 66 65 72 65 6E 63 quick referenc
019300: 6E 61 74 65 0D 20 20 20 20 20 48 4C 20 3D 20 79 nate. HL = y
019310: 20 63 6F 6F 72 64 69 6E 61 74 65 0D 0D 20 20 20 coordinate..
019320: 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 46 Exit:.. AF
019330: 2C 42 43 2C 44 45 2C 48 4C 20 63 6F 72 72 75 70 ,BC,DE,HL corrup
019340: 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D t... Notes:.
019350: 0D 20 20 20 20 20 54 68 65 20 63 6F 6F 72 64 69 . The coordi
019360: 6E 61 74 65 20 69 73 20 72 65 6C 61 74 69 76 65 nate is relative
019370: 20 74 6F 20 74 68 65 20 6F 72 69 67 69 6E 2E 0D to the origin..
019380: 0D 20 20 20 20 20 54 68 65 20 70 6F 73 69 74 69 . The positi
019390: 6F 6E 20 63 61 6E 20 62 65 20 6F 75 74 73 69 64 on can be outsid
0193A0: 65 20 74 68 65 20 67 72 61 70 68 69 63 73 20 77 e the graphics w
0193B0: 69 6E 64 6F 77 2E 0D 20 20 20 20 20 54 68 65 20 indow.. The
0193C0: 67 72 61 70 68 69 63 20 56 44 55 20 70 6C 6F 74 graphic VDU plot
0193D0: 74 69 6E 67 20 74 65 73 74 69 6E 67 20 61 6E 64 ting testing and
0193E0: 20 20 64 72 61 77 69 6E 67 20 72 6F 75 74 69 6E drawing routin
0193F0: 65 73 20 61 72 65 20 73 65 74 20 74 6F 20 74 68 es are set to th
019400: 61 74 0D 20 20 20 20 20 70 6F 69 6E 74 2E 0D 0D at. point...
019410: 0D 0D 0D 0D 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D ...... -----
019420: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019430: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019440: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019450: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019460: 0D 0D 20 20 20 20 20 26 42 42 43 33 20 2D 20 47 .. &BBC3 - G
019470: 52 41 20 4D 4F 56 45 20 52 45 4C 41 54 49 56 45 RA MOVE RELATIVE
019480: 20 2D 20 4D 6F 76 65 20 74 6F 20 61 20 72 65 6C - Move to a rel
019490: 61 74 69 76 65 20 70 6F 73 69 74 69 6F 6E 0D 0D ative position..
0194A0: 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 Entry:..
0194B0: 20 20 44 45 20 3D 20 73 69 67 6E 65 64 20 58 20 DE = signed X
0194C0: 6F 66 66 73 65 74 0D 20 20 20 20 20 48 4C 20 3D offset. HL =
0194D0: 20 73 69 67 6E 65 64 20 59 20 6F 66 66 73 65 74 signed Y offset
0194E0: 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 .. Exit:..
0194F0: 20 20 20 41 46 2C 42 43 2C 44 45 2C 48 4C 20 63 AF,BC,DE,HL c
019500: 65 20 20 67 75 69 64 65 20 20 66 6F 72 20 70 72 e guide for pr
019510: 6F 67 72 61 6D 6D 69 6E 67 20 74 68 65 0D 63 6F ogramming the.co
019520: 6C 6F 75 72 73 2E 20 54 68 65 20 6E 75 6D 62 65 lours. The numbe
019530: 72 20 69 73 20 74 68 65 20 63 6F 6C 6F 75 72 20 r is the colour
019540: 20 6E 75 6D 62 65 72 20 20 77 68 69 63 68 20 63 number which c
019550: 61 6E 20 62 65 20 73 65 6E 74 20 64 69 72 65 63 an be sent direc
019560: 74 6C 79 2C 0D 6F 6E 63 65 20 74 68 65 20 70 65 tly,.once the pe
019570: 6E 20 68 61 73 20 62 65 65 6E 20 73 65 6C 65 63 n has been selec
019580: 74 65 64 2C 20 74 6F 20 67 65 74 20 74 68 65 20 ted, to get the
019590: 63 6F 6C 6F 75 72 20 77 61 6E 74 65 64 2E 0D 0D colour wanted...
0195A0: 45 78 61 6D 70 6C 65 3A 0D 0D 6C 64 20 62 63 2C Example:..ld bc,
0195B0: 26 37 66 30 30 2B 31 20 20 20 20 20 20 20 20 20 &7f00+1
0195C0: 20 20 3B 47 61 74 65 20 61 72 72 61 79 20 66 75 ;Gate array fu
0195D0: 6E 63 74 69 6F 6E 20 28 73 65 74 20 70 65 6E 29 nction (set pen)
0195E0: 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0195F0: 20 20 20 20 20 20 20 20 20 3B 61 6E 64 20 70 65 ;and pe
019600: 6E 20 6E 75 6D 62 65 72 0D 6F 75 74 20 28 63 29 n number.out (c)
019610: 2C 63 0D 6C 64 20 62 63 2C 26 37 66 30 30 2B 26 ,c.ld bc,&7f00+&
019620: 34 31 20 20 20 20 20 20 20 20 20 3B 47 61 74 65 41 ;Gate
019630: 20 61 72 72 61 79 20 66 75 6E 63 74 69 6F 6E 20 array function
019640: 28 73 65 74 20 63 6F 6C 6F 75 72 29 0D 20 20 20 (set colour).
019650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019660: 20 20 20 20 20 3B 61 6E 64 20 63 6F 6C 6F 75 72 ;and colour
019670: 20 6E 75 6D 62 65 72 0D 6F 75 74 20 28 63 29 2C number.out (c),
019680: 63 0D 72 65 74 0D 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D c.ret..=========
019690: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0196A0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0196B0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0196C0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 1A =============...
0196D0: 66 6F 1A 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A fo..............
0196E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0196F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019700: 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 20 2D 2D orrupt... --
019710: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019720: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019730: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019740: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019750: 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 42 43 36 20 ---.. &BBC6
019760: 2D 20 47 52 41 20 41 53 4B 20 43 55 52 53 4F 52 - GRA ASK CURSOR
019770: 20 2D 20 47 65 74 20 63 75 72 73 6F 72 20 70 6F - Get cursor po
019780: 73 69 74 69 6F 6E 0D 0D 20 20 20 20 20 45 6E 74 sition.. Ent
019790: 72 79 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D ry:.. None..
0197A0: 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 Exit:..
0197B0: 20 44 45 20 3D 20 58 20 63 6F 6F 72 64 69 6E 61 DE = X coordina
0197C0: 74 65 20 72 65 6C 61 74 69 76 65 20 74 6F 20 6F te relative to o
0197D0: 72 69 67 69 6E 0D 20 20 20 20 20 48 4C 20 3D 20 rigin. HL =
0197E0: 59 20 63 6F 6F 72 64 69 6E 61 74 65 20 72 65 6C Y coordinate rel
0197F0: 61 74 69 76 65 20 74 6F 20 6F 72 69 67 69 6E 0D ative to origin.
019800: 0D 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 74 . AF corrupt
019810: 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D ... --------
019820: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019830: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019840: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019850: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 -------------..
019860: 20 20 20 20 26 42 42 43 39 20 2D 20 47 52 41 20 &BBC9 - GRA
019870: 53 45 54 20 4F 52 49 47 49 4E 20 2D 20 53 65 74 SET ORIGIN - Set
019880: 20 6F 72 69 67 69 6E 0D 0D 20 20 20 20 20 45 6E origin.. En
019890: 74 72 79 3A 0D 0D 20 20 20 20 20 44 45 20 3D 20 try:.. DE =
0198A0: 58 20 63 6F 6F 72 64 69 6E 61 74 65 20 72 65 6C X coordinate rel
0198B0: 61 74 69 76 65 20 74 6F 20 30 2C 30 0D 20 20 20 ative to 0,0.
0198C0: 20 20 48 4C 20 3D 20 59 20 63 6F 6F 72 64 69 6E HL = Y coordin
0198D0: 61 74 65 20 72 65 6C 61 74 69 76 65 20 74 6F 20 ate relative to
0198E0: 30 2C 30 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0,0.. Exit:.
0198F0: 0D 20 20 20 20 20 41 46 2C 42 43 2C 44 45 2C 48 . AF,BC,DE,H
019900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0199A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0199B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0199C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0199D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0199E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0199F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
019B00: 4C 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 L corrupt...
019B10: 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 57 68 Notes:.. Wh
019B20: 65 6E 20 74 68 65 20 73 63 72 65 65 6E 20 69 73 en the screen is
019B30: 20 63 6C 65 61 72 65 64 20 77 69 74 68 20 53 43 cleared with SC
019B40: 52 20 53 45 54 20 4D 4F 44 45 20 74 68 65 20 6F R SET MODE the o
019B50: 72 69 67 69 6E 20 69 73 20 72 65 73 74 6F 72 65 rigin is restore
019B60: 64 20 74 6F 0D 20 20 20 20 20 30 2C 30 2E 0D 0D d to. 0,0...
019B70: 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -----------
019B80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019B90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019BA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019BB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 ----------..
019BC0: 20 26 42 42 43 43 20 2D 20 47 52 41 20 47 45 54 &BBCC - GRA GET
019BD0: 20 4F 52 49 47 49 4E 20 2D 20 47 65 74 20 6F 72 ORIGIN - Get or
019BE0: 69 67 69 6E 0D 0D 20 20 20 20 20 45 6E 74 72 79 igin.. Entry
019BF0: 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 20 :.. None..
019C00: 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 44 Exit:.. D
019C10: 45 20 3D 20 58 20 63 6F 6F 72 64 69 6E 61 74 65 E = X coordinate
019C20: 20 6F 66 20 6F 72 69 67 69 6E 20 72 65 6C 61 74 of origin relat
019C30: 69 76 65 20 74 6F 20 30 2C 30 0D 20 20 20 20 20 ive to 0,0.
019C40: 48 4C 20 3D 20 59 20 63 6F 6F 72 64 69 6E 61 74 HL = Y coordinat
019C50: 65 20 6F 66 20 6F 72 69 67 69 6E 20 72 65 6C 61 e of origin rela
019C60: 74 69 76 65 20 74 6F 20 30 2C 30 0D 0D 20 20 20 tive to 0,0..
019C70: 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D --------------
019C80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019C90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019CA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
019CB0: 2D 2D 2D 2D 2D 2D 2D 0D 0D 0D 0D 0D 0D 0D 0D 0D -------.........
019CC0: 0D 0D 20 20 20 20 20 26 42 42 43 46 20 2D 20 47 .. &BBCF - G
019CD0: 52 41 20 57 49 4E 20 57 49 44 54 48 20 2D 20 53 RA WIN WIDTH - S
019CE0: 65 74 20 20 74 68 65 20 20 6C 65 66 74 20 61 6E et the left an
019CF0: 64 20 72 69 67 68 74 20 65 64 67 65 73 20 6F 66 d right edges of
019D00: 1B 40 0D 0D 0D 20 20 20 20 20 26 42 42 42 41 20 .@... &BBBA
019D10: 2D 20 47 52 41 20 49 4E 49 54 49 41 4C 49 53 45 - GRA INITIALISE
019D20: 20 2D 20 49 6E 69 74 69 61 6C 69 73 65 20 47 72 - Initialise Gr
019D30: 61 70 68 69 63 73 20 56 44 55 0D 0D 20 20 20 20 aphics VDU..
019D40: 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 4E 6F Entry:.. No
019D50: 6E 65 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D ne.. Exit:..
019D60: 20 20 20 20 20 41 46 2C 42 43 2C 44 45 2C 48 4C AF,BC,DE,HL
019D70: 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 20 corrupt...
019D80: 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 68 65 Notes:.. The
019D90: 20 67 72 61 70 68 69 63 20 69 6E 64 69 72 65 63 graphic indirec
019DA0: 74 69 6F 6E 73 20 61 72 65 20 73 65 74 20 74 6F tions are set to
019DB0: 20 74 68 65 69 72 20 64 65 66 61 75 6C 74 20 72 their default r
019DC0: 6F 75 74 69 6E 65 73 2E 0D 20 20 20 20 20 53 65 outines.. Se
019DD0: 74 20 67 72 61 70 68 69 63 20 70 61 70 65 72 20 t graphic paper
019DE0: 74 6F 20 69 6E 6B 20 30 0D 20 20 20 20 20 53 65 to ink 0. Se
019DF0: 74 20 67 72 61 70 68 69 63 20 70 65 6E 20 74 6F t graphic pen to
019E00: 20 69 6E 6B 20 31 0D 20 20 20 20 20 53 65 74 20 ink 1. Set
019E10: 6F 72 69 67 69 6E 20 74 6F 20 62 6F 74 74 6F 6D origin to bottom
019E20: 20 63 6F 72 6E 65 72 20 6F 66 20 73 63 72 65 65 corner of scree
019E30: 6E 0D 20 20 20 20 20 4D 6F 76 65 20 70 6F 73 69 n. Move posi
019E40: 74 69 6F 6E 20 74 6F 20 6F 72 69 67 69 6E 0D 20 tion to origin.
019E50: 20 20 20 20 54 68 65 20 67 72 61 70 68 69 63 73 The graphics
019E60: 20 77 69 6E 64 6F 77 20 69 73 20 73 65 74 20 74 window is set t
019E70: 6F 20 63 6F 76 65 72 20 74 68 65 20 77 68 6F 6C o cover the whol
019E80: 65 20 73 63 72 65 65 6E 2E 0D 20 20 20 20 20 54 e screen.. T
019E90: 68 65 20 77 72 69 74 65 20 6D 6F 64 65 20 69 73 he write mode is
019EA0: 20 73 65 74 20 74 6F 20 6F 70 61 71 75 65 2E 0D set to opaque..
019EB0: 20 20 20 20 20 54 68 65 20 6C 69 6E 65 20 6D 61 The line ma
019EC0: 73 6B 20 69 73 20 73 65 74 20 74 6F 20 26 46 46 sk is set to &FF
019ED0: 20 61 6E 64 20 74 68 65 20 66 69 72 73 74 20 70 and the first p
019EE0: 69 78 65 6C 20 6F 66 20 6C 69 6E 65 73 20 61 72 ixel of lines ar
019EF0: 65 20 70 6C 6F 74 74 65 64 2E 0D 20 20 20 20 20 e plotted..
019F00: 20 74 68 65 20 67 72 61 70 68 69 63 73 0D 20 20 the graphics.
019F10: 20 20 20 77 69 6E 64 6F 77 0D 0D 20 20 20 20 20 window..
019F20: 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 44 45 20 Entry:.. DE
019F30: 3D 20 58 20 63 6F 6F 72 64 69 6E 61 74 65 20 72 = X coordinate r
019F40: 65 6C 61 74 69 76 65 20 74 6F 20 30 2C 30 20 6F elative to 0,0 o
019F50: 66 20 6F 6E 65 20 65 64 67 65 0D 20 20 20 20 20 f one edge.
019F60: 48 4C 20 3D 20 58 20 63 6F 6F 72 64 69 6E 61 74 HL = X coordinat
019F70: 65 20 72 65 6C 61 74 69 76 65 20 74 6F 20 30 2C e relative to 0,
019F80: 30 20 6F 66 20 74 68 65 20 6F 74 68 65 72 20 65 0 of the other e
019F90: 64 67 65 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D dge.. Exit:.
019FA0: 0D 20 20 20 20 20 41 46 2C 42 43 2C 44 45 2C 48 . AF,BC,DE,H
019FB0: 4C 20 63 6F 72 72 75 70 74 0D 0D 20 20 20 20 20 L corrupt..
019FC0: 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 68 65 Notes:.. The
019FD0: 20 6C 65 66 74 20 65 64 67 65 20 69 73 20 74 61 left edge is ta
019FE0: 6B 65 6E 20 74 6F 20 62 65 20 74 68 65 20 20 6C ken to be the l
019FF0: 65 73 73 65 72 20 6F 66 20 74 68 65 20 74 77 6F esser of the two
01A000: 20 76 61 6C 75 65 73 2E 20 54 68 65 20 77 69 6E values. The win
01A010: 64 6F 77 0D 20 20 20 20 20 6D 61 79 20 62 65 20 dow. may be
01A020: 73 68 72 75 6E 6B 20 73 6F 20 74 68 61 74 20 69 shrunk so that i
01A030: 74 20 63 61 6E 20 62 65 20 66 69 74 20 6F 6E 74 t can be fit ont
01A040: 6F 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0D 20 o the screen...
01A050: 20 20 20 20 41 6C 6C 20 67 72 61 70 68 69 63 20 All graphic
01A060: 56 44 55 20 70 6F 69 6E 74 20 70 6C 6F 74 74 69 VDU point plotti
01A070: 6E 67 20 61 6E 64 20 20 6C 69 6E 65 20 64 72 61 ng and line dra
01A080: 77 69 6E 67 20 72 6F 75 74 69 6E 65 73 20 74 65 wing routines te
01A090: 73 74 20 77 68 65 74 68 65 72 0D 20 20 20 20 20 st whether.
01A0A0: 74 68 65 20 70 6F 69 6E 74 73 20 74 68 65 79 20 the points they
01A0B0: 61 72 65 20 74 6F 20 70 6C 6F 74 20 20 61 72 65 are to plot are
01A0C0: 20 20 69 6E 73 69 64 65 20 20 74 68 65 20 20 77 inside the w
01A0D0: 69 6E 64 6F 77 2C 20 69 66 20 74 68 65 79 20 61 indow, if they a
01A0E0: 72 65 20 6E 6F 74 0D 20 20 20 20 20 74 68 65 79 re not. they
01A0F0: 20 61 72 65 20 6E 6F 74 20 70 6C 6F 74 74 65 64 are not plotted
01A100: 54 68 65 20 77 69 6E 64 6F 77 20 69 73 6E 27 74 The window isn't
01A110: 20 63 6C 65 61 72 65 64 2E 0D 0D 20 20 20 20 20 cleared...
01A120: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A130: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A140: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A150: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A160: 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 42 42 -----.. &BBB
01A170: 44 20 2D 20 47 52 41 20 52 45 53 45 54 20 2D 20 D - GRA RESET -
01A180: 52 65 73 65 74 20 74 68 65 20 67 72 61 70 68 69 Reset the graphi
01A190: 63 73 20 56 44 55 0D 0D 20 20 20 20 20 45 6E 74 cs VDU.. Ent
01A1A0: 72 79 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D ry:.. None..
01A1B0: 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 Exit:..
01A1C0: 20 41 46 2C 42 43 2C 44 45 2C 48 4C 20 63 6F 72 AF,BC,DE,HL cor
01A1D0: 72 75 70 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 rupt... Note
01A1E0: 73 3A 0D 0D 20 20 20 20 20 54 68 65 20 69 6E 64 s:.. The ind
01A1F0: 69 72 65 63 74 69 6F 6E 73 20 61 72 65 20 73 65 irections are se
01A200: 74 20 74 6F 20 74 68 65 69 72 20 64 65 66 61 75 t to their defau
01A210: 6C 74 20 72 6F 75 74 69 6E 65 73 2E 0D 20 20 20 lt routines..
01A220: 20 20 49 6E 20 56 31 2E 31 20 74 68 65 20 6C 69 In V1.1 the li
01A230: 6E 65 20 6D 61 73 6B 20 69 73 20 73 65 74 20 61 ne mask is set a
01A240: 73 20 69 6E 20 47 52 41 20 49 4E 49 54 49 41 4C s in GRA INITIAL
01A250: 49 53 45 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D ISE... -----
01A260: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A270: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A280: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A290: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A2A0: 0D 0D 20 20 20 20 20 26 42 42 43 30 20 2D 20 47 .. &BBC0 - G
01A2B0: 52 41 20 4D 4F 56 45 20 41 42 53 4F 4C 55 54 45 RA MOVE ABSOLUTE
01A2C0: 20 2D 20 4D 6F 76 65 20 74 6F 20 61 6E 20 61 62 - Move to an ab
01A2D0: 73 6F 6C 75 74 65 20 70 6F 73 69 74 69 6F 6E 0D solute position.
01A2E0: 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 . Entry:..
01A2F0: 20 20 20 44 45 20 3D 20 58 20 63 6F 6F 72 64 69 DE = X coordi
01A300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01A310: 16 00 01 00 02 09 4E E5 16 00 C1 02 00 00 00 02 ......N.........
01A320: 16 00 C6 02 00 00 00 02 16 00 C2 02 00 00 00 02 ................
01A330: 16 00 C7 02 00 00 00 02 16 00 C3 02 00 00 00 02 ................
01A340: 16 00 C8 02 00 00 00 02 16 00 C4 02 00 00 00 02 ................
01A350: 16 00 C9 02 00 00 00 02 16 00 C5 02 00 00 00 02 ................
01A360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A400: 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D ... --------
01A410: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A420: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A430: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A440: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 -------------..
01A450: 20 20 20 20 26 42 42 44 32 20 2D 20 47 52 41 20 &BBD2 - GRA
01A460: 57 49 4E 20 48 45 49 47 48 54 20 2D 20 53 65 74 WIN HEIGHT - Set
01A470: 20 74 6F 70 20 61 6E 64 20 62 6F 74 74 6F 6D 20 top and bottom
01A480: 65 64 67 65 73 20 6F 66 20 67 72 61 70 68 69 63 edges of graphic
01A490: 20 77 69 6E 64 6F 77 0D 0D 20 20 20 20 20 45 6E window.. En
01A4A0: 74 72 79 3A 0D 0D 20 20 20 20 20 44 45 20 3D 20 try:.. DE =
01A4B0: 59 20 63 6F 6F 72 64 69 6E 61 74 65 20 72 65 6C Y coordinate rel
01A4C0: 61 74 69 76 65 20 74 6F 20 30 2C 30 20 6F 66 20 ative to 0,0 of
01A4D0: 6F 6E 65 20 65 64 67 65 0D 20 20 20 20 20 48 4C one edge. HL
01A4E0: 20 3D 20 59 20 63 6F 6F 72 64 69 6E 61 74 65 20 = Y coordinate
01A4F0: 72 65 6C 61 74 69 76 65 20 74 6F 20 30 2C 30 20 relative to 0,0
01A500: 6F 66 20 6F 74 68 65 72 20 65 64 67 65 2E 0D 0D of other edge...
01A510: 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 Exit:..
01A520: 20 41 46 2C 42 43 2C 44 45 2C 48 4C 20 63 6F 72 AF,BC,DE,HL cor
01A530: 72 75 70 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 rupt... Note
01A540: 73 3A 0D 0D 20 20 20 20 20 54 68 65 20 74 6F 70 s:.. The top
01A550: 20 65 64 67 65 20 77 69 6C 6C 20 62 65 20 74 68 edge will be th
01A560: 65 20 68 69 67 68 65 72 20 6F 66 20 74 68 65 20 e higher of the
01A570: 74 77 6F 20 76 61 6C 75 65 73 2E 0D 0D 20 20 20 two values...
01A580: 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D --------------
01A590: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A5A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A5B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A5C0: 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 -------.. &B
01A5D0: 42 44 35 20 2D 20 47 52 41 20 47 45 54 20 57 20 BD5 - GRA GET W
01A5E0: 57 49 44 54 48 20 2D 20 47 65 74 20 74 68 65 20 WIDTH - Get the
01A5F0: 6C 65 66 74 20 61 6E 64 20 72 69 67 68 74 20 65 left and right e
01A600: 64 6F 77 20 77 68 65 6E 0D 20 20 20 20 20 74 65 dow when. te
01A610: 73 74 69 6E 67 20 70 6F 69 6E 74 73 2E 0D 0D 20 sting points...
01A620: 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ------------
01A630: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A640: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A650: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A660: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 20 20 26 ---------. &
01A670: 42 42 45 37 20 2D 20 47 52 41 20 47 45 54 20 50 BBE7 - GRA GET P
01A680: 41 50 45 52 20 2D 20 47 65 74 20 74 68 65 20 63 APER - Get the c
01A690: 75 72 72 65 6E 74 20 62 61 63 6B 67 72 6F 75 6E urrent backgroun
01A6A0: 64 20 70 65 6E 0D 0D 20 20 20 20 20 45 6E 74 72 d pen.. Entr
01A6B0: 79 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 y:.. None..
01A6C0: 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 Exit:..
01A6D0: 41 20 3D 20 70 65 6E 0D 0D 20 20 20 20 20 46 6C A = pen.. Fl
01A6E0: 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 ags corrupt...
01A6F0: 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 Notes:..
01A700: 41 73 20 47 52 41 20 53 45 54 20 50 41 50 45 52 As GRA SET PAPER
01A710: 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D .. ---------
01A720: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A730: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A740: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A750: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 ------------.
01A760: 20 20 26 42 42 45 41 20 2D 20 47 52 41 20 50 4C &BBEA - GRA PL
01A770: 4F 54 20 41 42 53 4F 4C 55 54 45 20 2D 20 50 6C OT ABSOLUTE - Pl
01A780: 6F 74 20 61 20 70 6F 69 6E 74 20 61 74 20 61 6E ot a point at an
01A790: 20 61 62 73 6F 6C 75 74 65 20 70 6F 73 69 74 69 absolute positi
01A7A0: 6F 6E 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D on.. Entry:.
01A7B0: 0D 20 20 20 20 20 44 45 20 3D 20 58 20 63 6F 6F . DE = X coo
01A7C0: 72 64 69 6E 61 74 65 20 72 65 6C 61 74 69 76 65 rdinate relative
01A7D0: 20 74 6F 20 75 73 65 72 20 6F 72 69 67 69 6E 0D to user origin.
01A7E0: 20 20 20 20 20 48 4C 20 3D 20 59 20 63 6F 6F 72 HL = Y coor
01A7F0: 64 69 6E 61 74 65 20 72 65 6C 61 74 69 76 65 20 dinate relative
01A800: 64 67 65 73 20 6F 66 20 74 68 65 20 77 69 6E 64 dges of the wind
01A810: 6F 77 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D ow.. Entry:.
01A820: 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 20 20 20 . None..
01A830: 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 44 45 20 Exit:.. DE
01A840: 3D 20 58 20 63 6F 6F 72 64 69 6E 61 74 65 20 72 = X coordinate r
01A850: 65 6C 61 74 69 76 65 20 74 6F 20 30 2C 30 20 6F elative to 0,0 o
01A860: 66 20 74 68 65 20 6C 65 66 74 20 65 64 67 65 20 f the left edge
01A870: 6F 66 20 74 68 65 20 77 69 6E 64 6F 77 0D 20 20 of the window.
01A880: 20 20 20 48 4C 20 3D 20 58 20 63 6F 6F 72 64 69 HL = X coordi
01A890: 6E 61 74 65 20 72 65 6C 61 74 69 76 65 20 74 6F nate relative to
01A8A0: 20 30 2C 30 20 6F 66 20 74 68 65 20 72 69 67 68 0,0 of the righ
01A8B0: 74 20 65 64 67 65 20 6F 66 20 74 68 65 20 77 69 t edge of the wi
01A8C0: 6E 64 6F 77 0D 0D 20 20 20 20 20 41 46 20 63 6F ndow.. AF co
01A8D0: 72 72 75 70 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 rrupt... Not
01A8E0: 65 73 3A 0D 0D 20 20 20 20 20 54 68 65 20 65 64 es:.. The ed
01A8F0: 67 65 73 20 72 65 63 69 65 76 65 64 20 6D 61 79 ges recieved may
01A900: 20 20 62 65 20 20 64 69 66 66 65 72 65 6E 74 20 be different
01A910: 20 61 73 20 20 74 68 6F 73 65 20 73 70 65 63 69 as those speci
01A920: 66 69 65 64 20 62 65 63 61 75 73 65 20 74 68 65 fied because the
01A930: 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 77 69 6E 64 ....... wind
01A940: 6F 77 20 6D 61 79 20 68 61 76 65 20 62 65 65 6E ow may have been
01A950: 20 72 65 64 75 63 65 64 20 74 6F 20 66 69 74 20 reduced to fit
01A960: 6F 6E 74 6F 20 74 68 65 20 73 63 72 65 65 6E 2E onto the screen.
01A970: 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D .. ---------
01A980: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A990: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A9A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01A9B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 ------------..
01A9C0: 20 20 20 26 42 42 44 38 20 2D 20 47 52 41 20 47 &BBD8 - GRA G
01A9D0: 45 54 20 57 20 48 45 49 47 48 54 20 2D 20 47 65 ET W HEIGHT - Ge
01A9E0: 74 20 74 6F 70 20 61 6E 64 20 62 6F 74 74 6F 6D t top and bottom
01A9F0: 20 65 64 67 65 73 20 6F 66 20 74 68 65 20 77 69 edges of the wi
01AA00: 74 6F 20 75 73 65 72 20 6F 72 69 67 69 6E 0D 0D to user origin..
01AA10: 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 Exit:..
01AA20: 20 41 46 2C 42 43 2C 44 45 2C 48 4C 20 63 6F 72 AF,BC,DE,HL cor
01AA30: 72 75 70 74 2E 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 rupt.........
01AA40: 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D --------------
01AA50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AA60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AA70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AA80: 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 20 20 26 42 42 -------. &BB
01AA90: 45 44 20 2D 20 47 52 41 20 50 4C 4F 54 20 52 45 ED - GRA PLOT RE
01AAA0: 4C 41 54 49 56 45 20 2D 20 50 6C 6F 74 20 61 20 LATIVE - Plot a
01AAB0: 70 6F 69 6E 74 20 72 65 6C 61 74 69 76 65 20 74 point relative t
01AAC0: 6F 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 69 o current positi
01AAD0: 6F 6E 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D on.. Entry:.
01AAE0: 0D 20 20 20 20 20 44 45 20 3D 20 73 69 67 6E 65 . DE = signe
01AAF0: 64 20 58 20 6F 66 66 73 65 74 0D 20 20 20 20 20 d X offset.
01AB00: 48 4C 20 3D 20 73 69 67 6E 65 64 20 59 20 6F 66 HL = signed Y of
01AB10: 66 73 65 74 0D 0D 20 20 20 20 20 45 78 69 74 3A fset.. Exit:
01AB20: 0D 0D 20 20 20 20 20 41 46 2C 42 43 2C 44 45 2C .. AF,BC,DE,
01AB30: 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 HL corrupt...
01AB40: 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D --------------
01AB50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AB60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AB70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AB80: 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 20 20 26 42 42 -------. &BB
01AB90: 46 30 20 2D 20 47 52 41 20 54 45 53 54 20 41 42 F0 - GRA TEST AB
01ABA0: 53 4F 4C 55 54 45 20 2D 20 54 65 73 74 20 61 20 SOLUTE - Test a
01ABB0: 70 6F 69 6E 74 20 61 74 20 61 6E 20 61 62 73 6F point at an abso
01ABC0: 6C 75 74 65 20 70 6F 73 69 74 69 6F 6E 0D 0D 20 lute position..
01ABD0: 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 Entry:..
01ABE0: 20 44 45 20 3D 20 58 20 63 6F 6F 72 64 69 6E 61 DE = X coordina
01ABF0: 74 65 20 74 6F 20 74 65 73 74 20 72 65 6C 61 74 te to test relat
01AC00: 6E 64 6F 77 0D 0D 20 20 20 20 20 45 6E 74 72 79 ndow.. Entry
01AC10: 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 20 :.. None..
01AC20: 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 44 Exit:.. D
01AC30: 45 20 3D 20 59 20 63 6F 6F 72 64 69 6E 61 74 65 E = Y coordinate
01AC40: 20 72 65 6C 61 74 69 76 65 20 74 6F 20 30 2C 30 relative to 0,0
01AC50: 20 6F 66 20 74 68 65 20 74 6F 70 20 65 64 67 65 of the top edge
01AC60: 20 6F 66 20 74 68 65 20 77 69 6E 64 6F 77 0D 20 of the window.
01AC70: 20 20 20 20 48 4C 20 3D 20 59 20 63 6F 6F 72 64 HL = Y coord
01AC80: 69 6E 61 74 65 20 72 65 6C 61 74 69 76 65 20 74 inate relative t
01AC90: 6F 20 30 2C 30 20 6F 66 20 74 68 65 20 62 6F 74 o 0,0 of the bot
01ACA0: 74 6F 6D 20 65 64 67 65 20 6F 66 20 74 68 65 20 tom edge of the
01ACB0: 77 69 6E 64 6F 77 0D 0D 20 20 20 20 20 41 46 20 window.. AF
01ACC0: 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 20 4E corrupt... N
01ACD0: 6F 74 65 73 3A 0D 0D 20 20 20 20 20 53 65 65 20 otes:.. See
01ACE0: 61 62 6F 76 65 20 61 73 20 69 6E 20 47 52 41 20 above as in GRA
01ACF0: 47 45 54 20 57 20 57 49 44 54 48 0D 0D 20 20 20 GET W WIDTH..
01AD00: 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D --------------
01AD10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AD20: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AD30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AD40: 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 -------.. &B
01AD50: 42 44 42 20 2D 20 47 52 41 20 43 4C 45 41 52 20 BDB - GRA CLEAR
01AD60: 57 49 4E 44 4F 57 20 2D 20 43 6C 65 61 72 20 74 WINDOW - Clear t
01AD70: 68 65 20 67 72 61 70 68 69 63 73 20 77 69 6E 64 he graphics wind
01AD80: 6F 77 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D ow.. Entry:.
01AD90: 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 20 20 20 . None..
01ADA0: 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 46 2C Exit:.. AF,
01ADB0: 42 43 2C 44 45 2C 48 4C 20 63 6F 72 72 75 70 74 BC,DE,HL corrupt
01ADC0: 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D ... Notes:..
01ADD0: 20 20 20 20 20 54 68 65 20 67 72 61 70 68 69 63 The graphic
01ADE0: 73 20 63 75 72 73 6F 72 20 70 6F 73 69 74 69 6F s cursor positio
01ADF0: 6E 20 69 73 20 6D 6F 76 65 64 20 20 74 6F 20 20 n is moved to
01AE00: 69 76 65 20 74 6F 20 75 73 65 72 20 6F 72 69 67 ive to user orig
01AE10: 69 6E 0D 20 20 20 20 20 48 4C 20 3D 20 59 20 63 in. HL = Y c
01AE20: 6F 6F 72 64 69 6E 61 74 65 20 74 6F 20 74 65 73 oordinate to tes
01AE30: 74 20 72 65 6C 61 74 69 76 65 20 74 6F 20 75 73 t relative to us
01AE40: 65 72 20 6F 72 69 67 69 6E 0D 0D 20 20 20 20 20 er origin..
01AE50: 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 20 3D 20 Exit:.. A =
01AE60: 70 65 6E 20 6F 66 20 73 70 65 63 69 66 69 65 64 pen of specified
01AE70: 20 70 6F 69 6E 74 20 6F 72 20 70 61 70 65 72 20 point or paper
01AE80: 70 65 6E 0D 0D 20 20 20 20 20 42 43 2C 44 45 2C pen.. BC,DE,
01AE90: 48 4C 20 61 6E 64 20 66 6C 61 67 73 20 63 6F 72 HL and flags cor
01AEA0: 72 75 70 74 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D rupt... ----
01AEB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AEC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AED0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AEE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01AEF0: 2D 0D 0D 20 20 20 20 20 26 42 42 46 33 20 2D 20 -.. &BBF3 -
01AF00: 47 52 41 20 54 45 53 54 20 52 45 4C 41 54 49 56 GRA TEST RELATIV
01AF10: 45 20 2D 20 54 65 73 74 20 61 20 70 6F 69 6E 74 E - Test a point
01AF20: 20 72 65 6C 61 74 69 76 65 20 74 6F 20 63 75 72 relative to cur
01AF30: 72 65 6E 74 20 70 6F 73 69 74 69 6F 6E 0D 0D 20 rent position..
01AF40: 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 Entry:..
01AF50: 20 44 45 20 3D 20 58 20 73 69 67 6E 65 64 20 6F DE = X signed o
01AF60: 66 66 73 65 74 0D 20 20 20 20 20 48 4C 20 3D 20 ffset. HL =
01AF70: 59 20 73 69 67 6E 65 64 20 6F 66 66 73 65 74 0D Y signed offset.
01AF80: 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 . Exit:..
01AF90: 20 20 41 20 3D 20 70 65 6E 20 6F 66 20 73 70 65 A = pen of spe
01AFA0: 63 69 66 69 65 64 20 70 6F 69 6E 74 20 6F 72 20 cified point or
01AFB0: 70 61 70 65 72 20 70 65 6E 0D 0D 20 20 20 20 20 paper pen..
01AFC0: 42 43 2C 44 45 2C 48 4C 20 61 6E 64 20 66 6C 61 BC,DE,HL and fla
01AFD0: 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 gs corrupt...
01AFE0: 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D --------------
01AFF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B000: 74 68 65 20 6F 72 69 67 69 6E 20 73 70 65 63 69 the origin speci
01B010: 66 69 65 64 20 62 79 20 74 68 65 0D 20 20 20 20 fied by the.
01B020: 20 75 73 65 72 2E 0D 0D 20 20 20 20 20 2D 2D 2D user... ---
01B030: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B040: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B050: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B060: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B070: 2D 2D 0D 0D 20 20 20 20 20 26 42 42 44 45 20 2D --.. &BBDE -
01B080: 20 47 52 41 20 53 45 54 20 50 45 4E 20 2D 20 53 GRA SET PEN - S
01B090: 65 74 20 74 68 65 20 67 72 61 70 68 69 63 73 20 et the graphics
01B0A0: 70 6C 6F 74 74 69 6E 67 20 69 6E 6B 0D 0D 20 20 plotting ink..
01B0B0: 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 Entry:..
01B0C0: 41 20 3D 20 70 65 6E 0D 0D 20 20 20 20 20 45 78 A = pen.. Ex
01B0D0: 69 74 3A 0D 0D 20 20 20 20 20 41 46 20 63 6F 72 it:.. AF cor
01B0E0: 72 75 70 74 0D 0D 20 20 20 20 20 4E 6F 74 65 73 rupt.. Notes
01B0F0: 3A 0D 0D 20 20 20 20 20 54 68 65 20 76 61 6C 75 :.. The valu
01B100: 65 20 69 73 20 66 6F 72 63 65 64 20 74 6F 20 6C e is forced to l
01B110: 69 65 20 20 77 69 74 68 69 6E 20 20 74 68 65 20 ie within the
01B120: 72 61 6E 67 65 20 61 6C 6C 6F 77 65 64 20 66 6F range allowed fo
01B130: 72 20 74 68 65 20 73 65 6C 65 63 74 65 64 0D 20 r the selected.
01B140: 20 20 20 20 6D 6F 64 65 2E 0D 0D 20 20 20 20 20 mode...
01B150: 56 31 2E 31 0D 20 20 20 20 20 2D 2D 2D 2D 0D 0D V1.1. ----..
01B160: 20 20 20 20 20 54 68 65 20 67 72 61 70 68 69 63 The graphic
01B170: 73 20 70 65 6E 20 69 73 20 74 61 6B 65 6E 20 74 s pen is taken t
01B180: 6F 20 20 62 65 20 20 74 68 65 20 20 65 64 67 65 o be the edge
01B190: 20 20 6F 66 20 20 74 68 65 20 61 72 65 61 20 74 of the area t
01B1A0: 6F 20 66 69 6C 6C 20 77 68 65 6E 0D 20 20 20 20 o fill when.
01B1B0: 20 66 6C 6F 6F 64 20 66 69 6C 6C 69 6E 67 20 61 flood filling a
01B1C0: 72 65 61 73 20 6F 66 20 74 68 65 20 73 63 72 65 reas of the scre
01B1D0: 65 6E 2E 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 en.........
01B1E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B1F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B200: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B210: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B220: 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 20 20 26 42 42 -------. &BB
01B230: 46 36 20 2D 20 47 52 41 20 4C 49 4E 45 20 41 42 F6 - GRA LINE AB
01B240: 53 4F 4C 55 54 45 20 2D 20 44 72 61 77 20 61 20 SOLUTE - Draw a
01B250: 6C 69 6E 65 20 74 6F 20 61 6E 20 61 62 73 6F 6C line to an absol
01B260: 75 74 65 20 70 6F 73 69 74 69 6F 6E 0D 0D 20 20 ute position..
01B270: 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 Entry:..
01B280: 44 45 20 3D 20 58 20 63 6F 6F 72 64 69 6E 61 74 DE = X coordinat
01B290: 65 20 6F 66 20 65 6E 64 70 6F 69 6E 74 0D 20 20 e of endpoint.
01B2A0: 20 20 20 48 4C 20 3D 20 59 20 63 6F 6F 72 64 69 HL = Y coordi
01B2B0: 6E 61 74 65 20 6F 66 20 65 6E 64 70 6F 69 6E 74 nate of endpoint
01B2C0: 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 .. Exit:..
01B2D0: 20 20 20 41 46 2C 42 43 2C 44 45 2C 48 4C 20 63 AF,BC,DE,HL c
01B2E0: 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 20 56 31 orrupt... V1
01B2F0: 2E 30 0D 20 20 20 20 20 2D 2D 2D 2D 0D 0D 20 20 .0. ----..
01B300: 20 20 20 54 68 65 20 70 6F 69 6E 74 73 20 77 69 The points wi
01B310: 6C 6C 20 62 65 20 70 6C 6F 74 74 65 64 20 69 6E ll be plotted in
01B320: 20 74 68 65 20 63 75 72 72 65 6E 74 20 70 65 6E the current pen
01B330: 20 75 73 69 6E 67 20 74 68 65 20 63 75 72 72 65 using the curre
01B340: 6E 74 20 6D 6F 64 65 0D 0D 20 20 20 20 20 56 31 nt mode.. V1
01B350: 2E 31 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 2D 2D .1....... --
01B360: 2D 2D 0D 0D 20 20 20 20 20 54 68 65 20 6C 69 6E --.. The lin
01B370: 65 20 69 73 20 70 6C 6F 74 74 65 64 20 64 65 70 e is plotted dep
01B380: 65 6E 64 69 6E 67 20 6F 6E 20 74 68 65 20 20 6D ending on the m
01B390: 61 73 6B 20 64 65 66 69 6E 65 64 2E 20 49 66 20 ask defined. If
01B3A0: 74 68 65 20 66 69 72 73 74 20 70 6F 69 6E 74 0D the first point.
01B3B0: 20 20 20 20 20 70 6C 6F 74 74 69 6E 67 20 6D 6F plotting mo
01B3C0: 64 65 20 69 73 20 73 65 74 20 74 6F 20 66 61 6C de is set to fal
01B3D0: 73 65 20 74 68 65 20 66 69 72 73 74 20 70 6F 69 se the first poi
01B3E0: 6E 74 20 77 69 6C 6C 20 6E 6F 74 20 62 65 20 73 nt will not be s
01B3F0: 65 74 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D et... ------
01B400: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B410: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B420: 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 42 45 -----.. &BBE
01B430: 31 20 2D 20 47 52 41 20 47 45 54 20 50 45 4E 20 1 - GRA GET PEN
01B440: 2D 20 47 65 74 20 74 68 65 20 67 72 61 70 68 69 - Get the graphi
01B450: 63 73 20 70 65 6E 20 6E 75 6D 62 65 72 0D 0D 20 cs pen number..
01B460: 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 Entry:..
01B470: 20 4E 6F 6E 65 0D 0D 20 20 20 20 20 45 78 69 74 None.. Exit
01B480: 3A 0D 0D 20 20 20 20 20 41 20 3D 20 70 65 6E 0D :.. A = pen.
01B490: 0D 20 20 20 20 20 46 6C 61 67 73 20 63 6F 72 72 . Flags corr
01B4A0: 75 70 74 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D upt... -----
01B4B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B4C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B4D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B4E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B4F0: 0D 20 20 20 20 20 26 42 42 45 34 20 2D 20 47 52 . &BBE4 - GR
01B500: 41 20 53 45 54 20 50 41 50 45 52 20 2D 20 53 65 A SET PAPER - Se
01B510: 74 20 67 72 61 70 68 69 63 73 20 62 61 63 6B 67 t graphics backg
01B520: 72 6F 75 6E 64 20 70 65 6E 0D 0D 20 20 20 20 20 round pen..
01B530: 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 41 20 3D Entry:.. A =
01B540: 20 70 65 6E 0D 0D 20 20 20 20 20 45 78 69 74 3A pen.. Exit:
01B550: 0D 0D 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 .. AF corrup
01B560: 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D t... Notes:.
01B570: 0D 20 20 20 20 20 54 68 65 20 70 61 70 65 72 20 . The paper
01B580: 69 6E 6B 20 69 73 20 74 68 65 20 69 6E 6B 20 74 ink is the ink t
01B590: 68 61 74 20 69 73 20 75 73 65 64 20 66 6F 72 20 hat is used for
01B5A0: 63 6C 65 61 72 69 6E 67 20 74 68 65 20 67 72 61 clearing the gra
01B5B0: 70 68 69 63 73 20 77 69 6E 64 6F 77 0D 20 20 20 phics window.
01B5C0: 20 20 61 6E 64 20 69 74 20 69 73 20 61 73 73 75 and it is assu
01B5D0: 6D 65 64 20 74 6F 20 63 6F 76 65 72 20 65 76 65 med to cover eve
01B5E0: 72 79 77 68 65 72 65 20 6F 75 74 73 69 64 65 20 rywhere outside
01B5F0: 74 68 65 20 67 72 61 70 68 69 63 73 20 77 69 6E the graphics win
01B600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01B610: 17 00 01 00 02 09 4E E5 17 00 C1 02 00 00 00 02 ......N.........
01B620: 17 00 C6 02 00 00 00 02 17 00 C2 02 00 00 00 02 ................
01B630: 17 00 C7 02 00 00 00 02 17 00 C3 02 00 00 00 02 ................
01B640: 17 00 C8 02 00 00 00 02 17 00 C4 02 00 00 00 02 ................
01B650: 17 00 C9 02 00 00 00 02 17 00 C5 02 00 00 00 02 ................
01B660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B700: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B710: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B720: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B730: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D ---------------.
01B740: 20 20 20 20 20 26 42 42 46 39 20 2D 20 47 52 41 &BBF9 - GRA
01B750: 20 4C 49 4E 45 20 20 52 45 4C 41 54 49 56 45 20 LINE RELATIVE
01B760: 20 2D 20 20 44 72 61 77 20 20 61 20 20 6C 69 6E - Draw a lin
01B770: 65 20 20 72 65 6C 61 74 69 76 65 20 20 74 6F 20 e relative to
01B780: 74 68 65 20 63 75 72 72 65 6E 74 0D 20 20 20 20 the current.
01B790: 20 70 6F 73 69 74 69 6F 6E 0D 0D 20 20 20 20 20 position..
01B7A0: 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 44 45 20 Entry:.. DE
01B7B0: 3D 20 73 69 67 6E 65 64 20 58 20 6F 66 66 73 65 = signed X offse
01B7C0: 74 20 6F 66 20 74 68 65 20 65 6E 64 70 6F 69 6E t of the endpoin
01B7D0: 74 0D 20 20 20 20 20 48 4C 20 3D 20 73 69 67 6E t. HL = sign
01B7E0: 65 64 20 59 20 6F 66 66 73 65 74 20 6F 66 20 74 ed Y offset of t
01B7F0: 68 65 20 65 6E 64 70 6F 69 6E 74 0D 0D 20 20 20 he endpoint..
01B800: 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 46 Exit:.. AF
01B810: 2C 42 43 2C 44 45 2C 48 4C 20 63 6F 72 72 75 70 ,BC,DE,HL corrup
01B820: 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D t... Notes:.
01B830: 0D 20 20 20 20 20 53 65 65 20 47 52 41 20 4C 49 . See GRA LI
01B840: 4E 45 20 41 42 53 4F 4C 55 54 45 0D 0D 20 20 20 NE ABSOLUTE..
01B850: 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D --------------
01B860: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B870: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B880: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01B890: 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 20 20 26 42 42 -------. &BB
01B8A0: 46 43 20 2D 20 47 52 41 20 57 52 20 43 48 41 52 FC - GRA WR CHAR
01B8B0: 20 2D 20 50 72 69 6E 74 20 20 61 20 20 63 68 61 - Print a cha
01B8C0: 72 61 63 74 65 72 20 6F 6E 20 74 68 65 20 73 63 racter on the sc
01B8D0: 72 65 65 6E 20 61 74 20 74 68 65 20 63 75 72 72 reen at the curr
01B8E0: 65 6E 74 0D 20 20 20 20 20 67 72 61 70 68 69 63 ent. graphic
01B8F0: 73 20 70 6F 73 69 74 69 6F 6E 0D 0D 20 20 20 20 s position..
01B900: 20 74 68 65 20 62 69 74 20 69 73 20 31 29 2E 0D the bit is 1)..
01B910: 0D 54 6F 20 64 65 73 74 69 6E 67 75 69 73 68 20 .To destinguish
01B920: 62 65 74 77 65 65 6E 20 70 6F 6B 69 6E 67 20 74 between poking t
01B930: 6F 20 6D 65 6D 6F 72 79 20 61 6E 64 20 73 65 6E o memory and sen
01B940: 64 69 6E 67 20 64 61 74 61 20 74 6F 20 61 6E 20 ding data to an
01B950: 65 78 74 65 72 6E 61 6C 20 64 65 76 69 63 65 2C external device,
01B960: 0D 74 68 65 20 43 50 55 20 75 73 65 73 20 61 6E .the CPU uses an
01B970: 20 65 78 74 72 61 20 70 69 6E 20 63 61 6C 6C 65 extra pin calle
01B980: 64 20 49 4F 52 51 2E 20 28 49 6E 70 75 74 2F 4F d IORQ. (Input/O
01B990: 75 74 70 75 74 20 52 65 71 75 65 73 74 29 2E 20 utput Request).
01B9A0: 57 68 65 6E 20 74 68 69 73 20 69 73 20 6C 6F 77 When this is low
01B9B0: 2C 0D 74 68 65 20 43 50 55 20 69 73 20 73 65 6E ,.the CPU is sen
01B9C0: 64 69 6E 67 20 64 61 74 61 20 74 6F 20 61 6E 20 ding data to an
01B9D0: 65 78 74 65 72 6E 61 6C 20 64 65 76 69 63 65 2C external device,
01B9E0: 20 6F 74 68 65 72 77 69 73 65 20 69 74 20 69 73 otherwise it is
01B9F0: 20 70 6F 6B 69 6E 67 20 74 6F 20 74 68 65 0D 6D poking to the.m
01BA00: 65 6D 6F 72 79 2E 0D 0D 41 6E 64 20 74 6F 20 64 emory...And to d
01BA10: 69 73 74 69 6E 67 75 69 73 68 20 62 65 74 77 65 istinguish betwe
01BA20: 65 6E 20 72 65 61 64 69 6E 67 20 61 6E 64 20 77 en reading and w
01BA30: 72 69 74 69 6E 67 20 69 74 20 75 73 65 73 20 61 riting it uses a
01BA40: 20 70 69 6E 20 63 61 6C 6C 65 64 20 57 52 20 28 pin called WR (
01BA50: 77 72 69 74 65 29 20 61 6E 64 0D 52 44 20 28 72 write) and.RD (r
01BA60: 65 61 64 29 2E 20 57 68 65 6E 20 65 69 74 68 65 ead). When eithe
01BA70: 72 20 6F 66 20 74 68 65 73 65 20 61 72 65 20 6C r of these are l
01BA80: 6F 77 2C 20 74 68 65 20 43 50 55 20 69 73 20 77 ow, the CPU is w
01BA90: 72 69 74 69 6E 67 20 6F 72 20 72 65 61 64 69 6E riting or readin
01BAA0: 67 2E 0D 0D 53 6F 20 74 6F 20 63 6F 6E 6E 65 63 g...So to connec
01BAB0: 74 20 61 20 64 65 76 69 63 65 20 61 6E 64 20 67 t a device and g
01BAC0: 65 74 20 69 74 20 74 6F 20 77 6F 72 6B 2C 20 77 et it to work, w
01BAD0: 65 20 6E 65 65 64 20 74 6F 20 63 6F 6E 6E 65 63 e need to connec
01BAE0: 74 20 74 68 65 20 61 64 64 72 65 73 73 20 6C 69 t the address li
01BAF0: 6E 65 73 2C 0D 64 61 74 61 20 6C 69 6E 65 73 2C nes,.data lines,
01BB00: 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 41 20 Entry:.. A
01BB10: 3D 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 77 = character to w
01BB20: 72 69 74 65 0D 0D 20 20 20 20 20 45 78 69 74 3A rite.. Exit:
01BB30: 0D 0D 20 20 20 20 20 41 46 2C 42 43 2C 44 45 2C .. AF,BC,DE,
01BB40: 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 HL corrupt...
01BB50: 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 Notes:.. T
01BB60: 68 65 20 63 68 61 72 61 63 74 65 72 20 69 73 20 he character is
01BB70: 77 72 69 74 74 65 6E 20 77 69 74 68 20 20 69 74 written with it
01BB80: 73 20 20 74 6F 70 20 20 6C 65 66 74 20 20 61 74 s top left at
01BB90: 20 74 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 the current gra
01BBA0: 70 68 69 63 73 0D 20 20 20 20 20 70 6F 73 69 74 phics. posit
01BBB0: 69 6F 6E 2E 20 41 6C 6C 20 63 68 61 72 61 63 74 ion. All charact
01BBC0: 65 72 73 20 61 72 65 20 70 72 69 6E 74 65 64 20 ers are printed
01BBD0: 69 6E 63 6C 75 64 69 6E 67 20 63 6F 6E 74 72 6F including contro
01BBE0: 6C 20 63 68 61 72 61 63 74 65 72 73 2E 20 54 68 l characters. Th
01BBF0: 65 0D 20 20 20 20 20 70 6F 73 69 74 69 6F 6E 20 e. position
01BC00: 69 73 20 6D 6F 76 65 64 20 72 69 67 68 74 20 33 is moved right 3
01BC10: 32 20 20 70 6F 69 6E 74 73 20 20 69 6E 20 20 6D 2 points in m
01BC20: 6F 64 65 20 20 30 2C 20 20 31 36 20 20 69 6E 20 ode 0, 16 in
01BC30: 6D 6F 64 65 20 31 2C 20 61 6E 64 20 38 0D 20 20 mode 1, and 8.
01BC40: 20 20 20 70 6F 69 6E 74 73 20 69 6E 20 6D 6F 64 points in mod
01BC50: 65 20 32 2E 0D 0D 20 20 20 20 20 54 68 65 20 63 e 2... The c
01BC60: 68 61 72 61 63 74 65 72 20 77 69 6C 6C 20 62 65 haracter will be
01BC70: 20 70 72 69 6E 74 65 64 20 75 73 69 6E 67 20 74 printed using t
01BC80: 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 he current graph
01BC90: 69 63 73 20 70 65 6E 20 69 6E 6B 2E 0D 20 20 20 ics pen ink..
01BCA0: 20 20 49 66 20 74 68 65 20 67 72 61 70 68 69 63 If the graphic
01BCB0: 73 20 6D 6F 64 65 20 69 73 20 20 73 65 74 20 20 s mode is set
01BCC0: 74 6F 20 20 6F 70 61 71 75 65 20 20 74 68 65 6E to opaque then
01BCD0: 20 20 74 68 65 20 62 61 63 6B 67 72 6F 75 6E 64 the background
01BCE0: 20 77 69 6C 6C 20 62 65 0D 20 20 20 20 20 77 72 will be. wr
01BCF0: 69 74 74 65 6E 20 20 77 69 74 68 20 20 74 68 65 itten with the
01BD00: 20 74 68 65 20 49 4F 52 51 20 70 69 6E 20 61 6E the IORQ pin an
01BD10: 64 20 74 68 65 20 57 52 20 61 6E 64 20 52 44 20 d the WR and RD
01BD20: 70 69 6E 73 2E 20 4E 6F 77 20 69 74 20 69 73 20 pins. Now it is
01BD30: 70 6F 73 73 69 62 6C 65 20 74 6F 20 6C 69 6E 6B possible to link
01BD40: 0D 64 65 76 69 63 65 73 20 61 6E 64 20 75 73 65 .devices and use
01BD50: 20 74 68 65 6D 2E 0D 0D 0D 0D 0D 0D 0D 0D 1A 2D them..........-
01BD60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01BD70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01BD80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01BD90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01BDA0: 2D 2D 2D 2D 0D 0D 65 6E 64 20 6D 61 69 6E 5F 70 ----..end main_p
01BDB0: 72 6F 67 72 61 6D 1A 70 6C 79 20 63 6F 6D 6D 61 rogram.ply comma
01BDC0: 6E 64 29 2E 0D 3B 0D 3B 0D 1A 3D 3D 3D 0D 0D 1A nd)..;.;..===...
01BDD0: 66 6F 1A 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A fo..............
01BDE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01BDF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01BE00: 65 6D 6F 72 79 2E 0D 0D 41 6E 64 20 74 6F 20 64 emory...And to d
01BE10: 69 73 74 69 6E 67 75 69 73 68 20 62 65 74 77 65 istinguish betwe
01BE20: 65 6E 20 72 65 61 64 69 6E 67 20 61 6E 64 20 77 en reading and w
01BE30: 72 69 74 69 6E 67 20 69 74 20 75 73 65 73 20 61 riting it uses a
01BE40: 20 70 69 6E 20 63 61 6C 6C 65 64 20 57 52 20 28 pin called WR (
01BE50: 77 72 69 74 65 29 20 61 6E 64 0D 52 44 20 28 72 write) and.RD (r
01BE60: 65 61 64 29 2E 20 57 68 65 6E 20 65 69 74 68 65 ead). When eithe
01BE70: 72 20 6F 66 20 74 68 65 73 65 20 61 72 65 20 6C r of these are l
01BE80: 6F 77 2C 20 74 68 65 20 43 50 55 20 69 73 20 77 ow, the CPU is w
01BE90: 72 69 74 69 6E 67 20 6F 72 20 72 65 61 64 69 6E riting or readin
01BEA0: 67 2E 0D 0D 53 6F 20 74 6F 20 63 6F 6E 6E 65 63 g...So to connec
01BEB0: 74 20 61 20 64 65 76 69 63 65 20 61 6E 64 20 67 t a device and g
01BEC0: 65 74 20 69 74 20 74 6F 20 77 6F 72 6B 2C 20 77 et it to work, w
01BED0: 65 20 6E 65 65 64 20 74 6F 20 63 6F 6E 6E 65 63 e need to connec
01BEE0: 74 20 74 68 65 20 61 64 64 72 65 73 73 20 6C 69 t the address li
01BEF0: 6E 65 73 2C 0D 64 61 74 61 20 6C 69 6E 65 73 2C nes,.data lines,
01BF00: 20 20 63 75 72 72 65 6E 74 20 20 67 72 61 70 68 current graph
01BF10: 69 63 73 20 20 70 61 70 65 72 20 20 20 70 65 6E ics paper pen
01BF20: 2C 20 20 69 66 20 20 74 68 65 20 20 6D 6F 64 65 , if the mode
01BF30: 20 20 69 73 0D 20 20 20 20 20 74 72 61 6E 73 70 is. transp
01BF40: 61 72 65 6E 74 20 74 68 65 6E 20 74 68 65 20 62 arent then the b
01BF50: 61 63 6B 67 72 6F 75 6E 64 20 77 69 6C 6C 20 6E ackground will n
01BF60: 6F 74 20 62 65 20 77 72 69 74 74 65 6E 20 6F 76 ot be written ov
01BF70: 65 72 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D er... ------
01BF80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01BF90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01BFA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01BFB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D ---------------.
01BFC0: 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D ................
01BFD0: 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01BFE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01BFF0: 00 00 C1 1F 00 17 04 2D 2D 2D 2D 2D 2D 2D 2D 2D .......---------
01C000: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01C010: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01C020: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01C030: 2D 2D 1A 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D --.=============
01C040: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 1A =============...
01C050: 66 6F 1A 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A fo..............
01C060: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C070: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C080: 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 he current graph
01C090: 69 63 73 20 70 65 6E 20 69 6E 6B 2E 0D 20 20 20 ics pen ink..
01C0A0: 20 20 49 66 20 74 68 65 20 67 72 61 70 68 69 63 If the graphic
01C0B0: 73 20 6D 6F 64 65 20 69 73 20 20 73 65 74 20 20 s mode is set
01C0C0: 74 6F 20 20 6F 70 61 71 75 65 20 20 74 68 65 6E to opaque then
01C0D0: 20 20 74 68 65 20 62 61 63 6B 67 72 6F 75 6E 64 the background
01C0E0: 20 77 69 6C 6C 20 62 65 0D 20 20 20 20 20 77 72 will be. wr
01C0F0: 69 74 74 65 6E 20 20 77 69 74 68 20 20 74 68 65 itten with the
01C100: 1B 40 0D 0D 0D 20 20 20 20 20 48 69 67 68 20 4B .@... High K
01C110: 65 72 6E 61 6C 20 4A 75 6D 70 62 6C 6F 63 6B 0D ernal Jumpblock.
01C120: 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -----------
01C130: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 0D 20 20 20 ----------...
01C140: 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D --------------
01C150: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01C160: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01C170: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01C180: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 ---------..
01C190: 26 42 39 30 30 20 2D 20 48 49 3A 20 48 4C 20 55 &B900 - HI: HL U
01C1A0: 20 52 4F 4D 20 45 4E 41 42 4C 45 20 2D 20 45 6E ROM ENABLE - En
01C1B0: 61 62 6C 65 20 74 68 65 20 75 70 70 65 72 20 72 able the upper r
01C1C0: 6F 6D 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D om.. Entry:.
01C1D0: 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 20 20 20 . None..
01C1E0: 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 20 3D Exit:.. A =
01C1F0: 70 72 65 76 69 6F 75 73 20 72 6F 6D 20 73 74 61 previous rom sta
01C200: 74 65 0D 20 20 20 20 20 46 6C 61 67 73 20 63 6F te. Flags co
01C210: 72 72 75 70 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 rrupt... Not
01C220: 65 73 3A 0D 0D 20 20 20 20 20 54 68 65 20 6D 65 es:.. The me
01C230: 63 68 61 6E 69 73 6D 73 20 70 72 6F 76 69 64 65 chanisms provide
01C240: 64 20 66 6F 72 20 63 61 6C 6C 69 6E 67 20 20 73 d for calling s
01C250: 75 62 72 6F 75 74 69 6E 65 73 20 20 69 6E 20 74 ubroutines in t
01C260: 68 65 20 75 70 70 65 72 20 52 4F 4D 20 61 6E 64 he upper ROM and
01C270: 0D 20 20 20 20 20 66 6F 72 20 73 65 6C 65 63 74 . for select
01C280: 69 6E 67 20 75 70 70 65 72 20 72 6F 6D 73 20 20 ing upper roms
01C290: 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 20 65 automatically e
01C2A0: 6E 61 62 6C 65 20 20 74 68 65 20 20 72 6F 6D 20 nable the rom
01C2B0: 61 73 20 72 65 71 75 69 72 65 64 2E 0D 20 20 20 as required..
01C2C0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 69 This routine i
01C2D0: 73 20 75 73 65 64 20 62 79 20 74 68 65 20 66 69 s used by the fi
01C2E0: 72 6D 77 61 72 65 20 62 75 74 20 69 73 20 6F 74 rmware but is ot
01C2F0: 68 65 72 77 69 73 65 20 6F 66 20 6C 69 74 74 6C herwise of littl
01C300: 57 65 20 75 73 65 2C 20 4F 55 54 20 61 6E 64 20 We use, OUT and
01C310: 49 4E 20 63 6F 6D 6D 61 6E 64 73 20 74 6F 20 61 IN commands to a
01C320: 63 63 65 73 73 20 65 78 74 65 72 6E 61 6C 20 64 ccess external d
01C330: 65 76 69 63 65 73 20 61 6E 64 20 74 68 65 20 68 evices and the h
01C340: 61 72 64 77 61 72 65 0D 69 6E 73 69 64 65 20 74 ardware.inside t
01C350: 68 65 20 43 50 43 2E 0D 0D 57 65 20 73 65 6E 64 he CPC...We send
01C360: 20 64 61 74 61 20 74 6F 20 61 6E 20 65 78 74 65 data to an exte
01C370: 72 6E 61 6C 20 64 65 76 69 63 65 20 6C 69 6B 65 rnal device like
01C380: 20 74 68 69 73 3A 0D 0D 4C 44 20 42 43 2C 70 6F this:..LD BC,po
01C390: 72 74 5F 61 64 64 72 65 73 73 0D 4F 55 54 20 28 rt_address.OUT (
01C3A0: 43 29 2C 72 65 67 0D 0D 57 68 65 72 65 20 42 43 C),reg..Where BC
01C3B0: 20 63 6F 6E 74 61 69 6E 73 20 61 20 31 36 2D 62 contains a 16-b
01C3C0: 69 74 20 6E 75 6D 62 65 72 20 73 70 65 63 69 66 it number specif
01C3D0: 69 6E 67 20 74 68 65 20 70 6F 72 74 20 61 64 64 ing the port add
01C3E0: 72 65 73 73 20 28 6F 72 20 61 6E 20 61 64 64 72 ress (or an addr
01C3F0: 65 73 73 0D 74 6F 20 61 63 63 65 73 73 20 74 68 ess.to access th
01C400: 65 20 63 68 69 70 20 61 74 29 2E 20 41 6E 64 2C e chip at). And,
01C410: 20 77 68 65 72 65 20 72 65 67 20 63 61 6E 20 62 where reg can b
01C420: 65 20 41 2C 42 2C 43 2C 44 2C 45 2C 46 2C 48 20 e A,B,C,D,E,F,H
01C430: 6F 72 20 4C 2C 20 61 6E 64 20 63 6F 6E 74 61 69 or L, and contai
01C440: 6E 73 0D 38 2D 62 69 74 20 64 61 74 61 20 74 6F ns.8-bit data to
01C450: 20 73 65 6E 64 20 74 6F 20 74 68 65 20 63 68 69 send to the chi
01C460: 70 2E 0D 0D 4C 69 6B 65 77 69 73 65 2C 20 77 65 p...Likewise, we
01C470: 20 67 65 74 20 64 61 74 61 20 66 72 6F 6D 20 61 get data from a
01C480: 6E 20 65 78 74 65 72 6E 61 6C 20 64 65 76 69 63 n external devic
01C490: 65 20 62 79 20 75 73 69 6E 67 3A 0D 0D 4C 44 20 e by using:..LD
01C4A0: 42 43 2C 70 6F 72 74 5F 61 64 64 72 65 73 73 0D BC,port_address.
01C4B0: 49 4E 20 72 65 67 2C 28 43 29 0D 0D 48 65 72 65 IN reg,(C)..Here
01C4C0: 20 42 43 20 63 6F 6E 74 61 69 6E 73 20 61 20 31 BC contains a 1
01C4D0: 36 2D 62 69 74 20 6E 75 6D 62 65 72 20 73 70 65 6-bit number spe
01C4E0: 63 69 66 79 69 6E 67 20 74 68 65 20 70 6F 72 74 cifying the port
01C4F0: 20 61 64 64 72 65 73 73 2C 20 61 6E 64 20 72 65 address, and re
01C500: 65 20 75 73 65 2E 0D 0D 20 20 20 20 20 54 68 65 e use... The
01C510: 20 70 72 65 76 69 6F 75 73 20 72 6F 6D 20 73 74 previous rom st
01C520: 61 74 65 20 6D 61 79 20 62 65 20 20 70 61 73 73 ate may be pass
01C530: 65 64 20 20 74 6F 20 20 4B 4C 20 52 4F 4D 20 52 ed to KL ROM R
01C540: 45 53 54 4F 52 45 20 74 6F 20 72 65 73 65 74 20 ESTORE to reset
01C550: 74 68 65 0D 20 20 20 20 20 73 74 61 74 65 20 74 the. state t
01C560: 6F 20 77 68 61 74 20 69 74 20 77 61 73 20 62 65 o what it was be
01C570: 66 6F 72 65 20 74 68 69 73 20 72 6F 75 74 69 6E fore this routin
01C580: 65 20 77 61 73 20 63 61 6C 6C 65 64 2E 0D 0D 20 e was called...
01C590: 20 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 This routine
01C5A0: 20 65 6E 61 62 6C 65 73 20 69 6E 74 65 72 75 70 enables interup
01C5B0: 74 73 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D ts... ------
01C5C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01C5D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01C5E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01C5F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01C600: 0D 0D 20 20 20 20 20 26 42 39 30 33 20 2D 20 48 .. &B903 - H
01C610: 49 3A 20 4B 4C 20 55 20 52 4F 4D 20 44 49 53 41 I: KL U ROM DISA
01C620: 42 4C 45 20 2D 20 44 69 73 61 62 6C 65 20 75 70 BLE - Disable up
01C630: 70 65 72 20 72 6F 6D 0D 0D 20 20 20 20 20 45 6E per rom.. En
01C640: 74 72 79 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D try:.. None.
01C650: 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 . Exit:..
01C660: 20 20 41 20 3D 20 70 72 65 76 69 6F 75 73 20 72 A = previous r
01C670: 6F 6D 20 73 74 61 74 65 0D 0D 20 20 20 20 20 46 om state.. F
01C680: 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D 20 lags corrupt...
01C690: 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 Notes:..
01C6A0: 20 44 69 73 61 62 6C 69 6E 67 20 74 68 65 20 75 Disabling the u
01C6B0: 70 70 65 72 20 72 6F 6D 20 67 69 76 65 73 20 72 pper rom gives r
01C6C0: 65 61 64 20 61 63 63 65 73 73 20 20 74 6F 20 74 ead access to t
01C6D0: 68 65 20 74 6F 70 20 31 36 6B 20 6F 66 20 72 61 he top 16k of ra
01C6E0: 6D 20 77 68 69 63 68 0D 20 20 20 20 20 69 73 20 m which. is
01C6F0: 75 73 75 61 6C 6C 79 20 75 73 65 64 20 61 73 20 usually used as
01C700: 67 20 77 69 6C 6C 0D 63 6F 6E 74 61 69 6E 20 74 g will.contain t
01C710: 68 65 20 38 2D 62 69 74 20 64 61 74 61 20 72 65 he 8-bit data re
01C720: 61 64 20 66 72 6F 6D 20 74 68 65 20 63 68 69 70 ad from the chip
01C730: 2E 0D 0D 53 6F 20 68 6F 77 20 64 6F 65 73 20 74 ...So how does t
01C740: 68 69 73 20 77 6F 72 6B 20 61 73 20 65 6C 65 63 his work as elec
01C750: 74 72 69 63 20 73 69 67 6E 61 6C 73 3F 0D 0D 57 tric signals?..W
01C760: 65 6C 6C 20 74 68 65 20 43 50 55 20 69 73 20 63 ell the CPU is c
01C770: 6F 6E 6E 65 63 74 65 64 20 74 6F 20 65 76 65 72 onnected to ever
01C780: 79 74 68 69 6E 67 20 62 79 20 69 74 73 20 6C 69 ything by its li
01C790: 6E 65 73 2C 20 6F 72 20 70 69 6E 73 20 6F 6E 20 nes, or pins on
01C7A0: 74 68 65 20 63 68 69 70 2E 0D 45 61 63 68 20 70 the chip..Each p
01C7B0: 69 6E 20 68 61 73 20 61 20 73 70 65 63 69 61 6C in has a special
01C7C0: 20 66 75 6E 63 74 69 6F 6E 2E 0D 0D 54 68 65 20 function...The
01C7D0: 43 50 55 20 68 61 73 20 31 36 20 61 64 64 72 65 CPU has 16 addre
01C7E0: 73 73 20 6C 69 6E 65 73 2C 20 6E 75 6D 62 65 72 ss lines, number
01C7F0: 65 64 20 41 30 2D 41 31 35 2E 20 45 61 63 68 20 ed A0-A15. Each
01C800: 6F 66 20 74 68 65 73 65 20 63 61 6E 20 62 65 20 of these can be
01C810: 30 56 20 6F 72 20 35 56 2C 0D 65 66 66 65 63 74 0V or 5V,.effect
01C820: 69 76 65 6C 79 20 30 20 6F 72 20 31 20 69 6E 20 ively 0 or 1 in
01C830: 62 69 6E 61 72 79 2E 20 55 73 69 6E 67 20 74 68 binary. Using th
01C840: 65 73 65 20 31 36 20 61 64 64 72 65 73 73 20 6C ese 16 address l
01C850: 69 6E 65 73 20 77 65 20 63 61 6E 20 73 70 65 63 ines we can spec
01C860: 69 66 79 20 61 6E 79 0D 6D 65 6D 6F 72 79 20 6F ify any.memory o
01C870: 72 20 70 6F 72 74 20 61 64 64 72 65 73 73 20 77 r port address w
01C880: 65 20 77 61 6E 74 2E 0D 0D 57 68 65 6E 20 64 61 e want...When da
01C890: 74 61 20 69 73 20 74 6F 20 62 65 20 70 6F 6B 65 ta is to be poke
01C8A0: 64 20 6F 72 20 72 65 61 64 2C 20 38 20 64 61 74 d or read, 8 dat
01C8B0: 61 20 6C 69 6E 65 73 20 6E 75 6D 62 65 72 65 64 a lines numbered
01C8C0: 20 44 30 2D 44 37 20 61 72 65 20 75 73 65 64 20 D0-D7 are used
01C8D0: 74 6F 20 70 61 73 73 0D 74 68 65 20 64 61 74 61 to pass.the data
01C8E0: 2E 20 28 30 56 20 77 68 65 6E 20 74 68 65 20 62 . (0V when the b
01C8F0: 69 74 20 69 73 20 30 2C 20 35 56 20 77 68 65 6E it is 0, 5V when
01C900: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01C910: 18 00 01 00 02 09 4E E5 18 00 C1 02 00 00 00 02 ......N.........
01C920: 18 00 C6 02 00 00 00 02 18 00 C2 02 00 00 00 02 ................
01C930: 18 00 C7 02 00 00 00 02 18 00 C3 02 00 00 00 02 ................
01C940: 18 00 C8 02 00 00 00 02 18 00 C4 02 00 00 00 02 ................
01C950: 18 00 C9 02 00 00 00 02 18 00 C5 02 00 00 00 02 ................
01C960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01CA00: 20 74 68 65 20 20 73 63 72 65 65 6E 20 20 6D 65 the screen me
01CA10: 6D 6F 72 79 2E 20 20 4E 6F 74 65 20 20 74 68 61 mory. Note tha
01CA20: 74 20 20 74 68 65 20 6D 61 70 70 69 6E 67 20 6F t the mapping o
01CA30: 66 20 61 0D 20 20 20 20 20 6C 6F 63 61 74 69 6F f a. locatio
01CA40: 6E 20 69 6E 20 73 63 72 65 65 6E 20 6D 65 6D 6F n in screen memo
01CA50: 72 79 20 74 6F 20 70 69 78 65 6C 73 20 6F 6E 20 ry to pixels on
01CA60: 20 74 68 65 20 73 63 72 65 65 6E 20 64 65 70 65 the screen depe
01CA70: 6E 64 73 20 6F 6E 20 74 68 65 20 6D 6F 64 65 0D nds on the mode.
01CA80: 20 20 20 20 20 61 6E 64 20 74 68 65 20 73 63 72 and the scr
01CA90: 65 65 6E 20 6F 66 66 73 65 74 2E 0D 0D 20 20 20 een offset...
01CAA0: 20 20 49 74 20 20 69 73 20 20 69 6E 61 64 76 69 It is inadvi
01CAB0: 73 65 61 62 6C 65 20 20 74 6F 20 20 64 69 73 61 seable to disa
01CAC0: 62 6C 65 20 20 20 74 68 65 20 20 20 75 70 70 65 ble the uppe
01CAD0: 72 20 20 72 6F 6D 20 20 77 68 69 6C 65 20 20 65 r rom while e
01CAE0: 78 65 63 75 74 69 6E 67 0D 20 20 20 20 20 69 6E xecuting. in
01CAF0: 73 74 72 75 63 74 69 6F 6E 73 20 69 6E 20 69 74 structions in it
01CB00: 21 0D 0D 20 20 20 20 20 54 68 65 20 70 72 65 76 !.. The prev
01CB10: 69 6F 75 73 20 72 6F 6D 20 73 74 61 74 65 20 6D ious rom state m
01CB20: 61 79 20 62 65 20 20 70 61 73 73 65 64 20 20 74 ay be passed t
01CB30: 6F 20 20 4B 4C 20 52 4F 4D 20 52 45 53 54 4F 52 o KL ROM RESTOR
01CB40: 45 20 74 6F 20 72 65 73 65 74 20 74 68 65 0D 20 E to reset the.
01CB50: 20 20 20 20 73 74 61 74 65 20 6F 66 20 77 68 61 state of wha
01CB60: 74 20 69 74 20 77 61 73 20 62 65 66 6F 72 65 20 t it was before
01CB70: 74 68 69 73 20 72 6F 75 74 69 6E 65 20 77 61 73 this routine was
01CB80: 20 63 61 6C 6C 65 64 2E 0D 0D 20 20 20 20 20 54 called... T
01CB90: 68 69 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 his routine enab
01CBA0: 6C 65 73 20 69 6E 74 65 72 75 70 74 73 2E 0D 20 les interupts..
01CBB0: 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ------------
01CBC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01CBD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01CBE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01CBF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 20 20 ----------.
01CC00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D ---------------.
01CC10: 0D 20 20 20 20 20 26 42 39 30 46 20 2D 20 48 49 . &B90F - HI
01CC20: 3A 20 4B 4C 20 52 4F 4D 20 53 45 4C 45 43 54 20 : KL ROM SELECT
01CC30: 2D 20 53 65 6C 65 63 74 20 61 20 70 61 72 74 69 - Select a parti
01CC40: 63 75 6C 61 72 20 75 70 70 65 72 20 52 4F 4D 0D cular upper ROM.
01CC50: 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 . Entry:..
01CC60: 20 20 20 43 20 3D 20 72 6F 6D 20 73 65 6C 65 63 C = rom selec
01CC70: 74 20 61 64 64 72 65 73 73 0D 0D 20 20 20 20 20 t address..
01CC80: 45 78 69 74 3A 0D 0D 20 20 20 20 20 43 20 3D 20 Exit:.. C =
01CC90: 72 6F 6D 20 73 65 6C 65 63 74 20 61 64 64 72 65 rom select addre
01CCA0: 73 73 20 6F 66 20 74 68 65 20 70 72 65 76 69 6F ss of the previo
01CCB0: 75 73 6C 79 20 73 65 6C 65 63 74 65 64 20 72 6F usly selected ro
01CCC0: 6D 0D 20 20 20 20 20 42 20 3D 20 70 72 65 76 69 m. B = previ
01CCD0: 6F 75 73 20 72 6F 6D 20 73 74 61 74 65 0D 0D 20 ous rom state..
01CCE0: 20 20 20 20 41 46 20 63 6F 72 72 75 70 74 2E 0D AF corrupt..
01CCF0: 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 . Notes:..
01CD00: 20 20 20 54 68 65 20 70 72 65 76 69 6F 75 73 20 The previous
01CD10: 73 74 61 74 65 20 63 61 6E 20 62 65 20 70 61 73 state can be pas
01CD20: 73 65 64 20 20 74 6F 20 20 4B 4C 20 20 52 4F 4D sed to KL ROM
01CD30: 20 52 45 53 54 4F 52 45 20 74 6F 20 72 65 73 65 RESTORE to rese
01CD40: 74 20 74 68 65 20 52 4F 4D 0D 20 20 20 20 20 65 t the ROM. e
01CD50: 6E 61 62 6C 65 20 74 6F 20 77 68 61 74 20 20 69 nable to what i
01CD60: 74 20 20 77 61 73 2E 20 20 42 6F 74 68 20 20 74 t was. Both t
01CD70: 68 65 20 20 70 72 65 76 69 6F 75 73 20 20 73 74 he previous st
01CD80: 61 74 65 20 20 61 6E 64 20 74 68 65 20 70 72 65 ate and the pre
01CD90: 76 69 6F 75 73 0D 20 20 20 20 20 73 65 6C 65 63 vious. selec
01CDA0: 74 69 6F 6E 20 63 61 6E 20 62 65 20 70 61 73 73 tion can be pass
01CDB0: 65 64 20 74 6F 20 20 4B 4C 20 20 52 4F 4D 20 20 ed to KL ROM
01CDC0: 44 45 53 45 4C 45 43 54 20 20 74 6F 20 72 65 73 DESELECT to res
01CDD0: 74 6F 72 65 20 74 68 65 20 73 74 61 74 65 20 74 tore the state t
01CDE0: 6F 0D 20 20 20 20 20 77 68 61 74 20 69 74 20 77 o. what it w
01CDF0: 61 73 20 61 6E 64 20 74 6F 20 73 65 6C 65 63 74 as and to select
01CE00: 26 42 39 30 36 20 2D 20 48 49 3A 20 4B 4C 20 4C &B906 - HI: KL L
01CE10: 20 52 4F 4D 20 45 4E 41 42 4C 45 20 2D 20 45 6E ROM ENABLE - En
01CE20: 61 62 6C 65 20 74 68 65 20 6C 6F 77 65 72 20 52 able the lower R
01CE30: 4F 4D 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D OM.. Entry:.
01CE40: 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 4E 6F 6E 65 ....... None
01CE50: 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 .. Exit:..
01CE60: 20 20 20 41 20 3D 20 70 72 65 76 69 6F 75 73 20 A = previous
01CE70: 72 6F 6D 20 73 74 61 74 65 0D 0D 20 20 20 20 20 rom state..
01CE80: 46 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D Flags corrupt...
01CE90: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 Notes:..
01CEA0: 20 20 49 6E 20 67 65 6E 65 72 61 6C 20 74 68 65 In general the
01CEB0: 20 6C 6F 77 65 72 20 72 6F 6D 20 69 73 20 64 69 lower rom is di
01CEC0: 73 61 62 6C 65 64 20 65 78 63 65 70 74 20 77 68 sabled except wh
01CED0: 65 6E 20 61 20 66 69 72 6D 77 61 72 65 20 72 6F en a firmware ro
01CEE0: 75 74 69 6E 65 20 69 73 0D 20 20 20 20 20 63 61 utine is. ca
01CEF0: 6C 6C 65 64 2E 20 54 68 65 20 20 66 69 72 6D 77 lled. The firmw
01CF00: 61 72 65 20 20 6A 75 6D 70 62 6C 6F 63 6B 20 20 are jumpblock
01CF10: 61 72 72 61 6E 67 65 73 20 20 74 6F 20 20 65 6E arranges to en
01CF20: 61 62 6C 65 20 20 74 68 65 20 20 6C 6F 77 65 72 able the lower
01CF30: 20 72 6F 6D 0D 20 20 20 20 20 61 75 74 6F 6D 61 rom. automa
01CF40: 74 69 63 61 6C 6C 79 20 61 6E 64 20 74 6F 20 64 tically and to d
01CF50: 69 73 61 62 6C 65 20 69 74 20 20 61 67 61 69 6E isable it again
01CF60: 20 20 77 68 65 6E 20 74 68 65 20 72 6F 75 74 69 when the routi
01CF70: 6E 65 20 72 65 74 75 72 6E 73 2E 20 54 68 69 73 ne returns. This
01CF80: 0D 20 20 20 20 20 72 6F 75 74 69 6E 65 20 69 73 . routine is
01CF90: 20 75 73 65 64 20 62 79 20 74 68 65 20 66 69 72 used by the fir
01CFA0: 6D 77 61 72 65 20 62 75 74 20 69 73 20 6F 74 68 mware but is oth
01CFB0: 65 72 77 69 73 65 20 6F 66 20 6C 69 74 74 6C 65 erwise of little
01CFC0: 20 75 73 65 2E 0D 0D 20 20 20 20 20 54 68 65 20 use... The
01CFD0: 70 72 65 76 69 6F 75 73 20 72 6F 6D 20 73 74 61 previous rom sta
01CFE0: 74 65 20 6D 61 79 20 62 65 20 20 70 61 73 73 65 te may be passe
01CFF0: 64 20 20 74 6F 20 20 4B 4C 20 52 4F 4D 20 52 45 d to KL ROM RE
01D000: 20 74 68 65 20 70 72 65 76 69 6F 75 73 6C 79 20 the previously
01D010: 73 65 6C 65 63 74 65 64 20 52 4F 4D 20 61 67 61 selected ROM aga
01D020: 69 6E 2E 0D 0D 20 20 20 20 20 54 68 65 20 20 6D in... The m
01D030: 65 63 68 61 6E 69 73 6D 73 20 20 70 72 6F 76 69 echanisms provi
01D040: 64 65 64 20 20 66 6F 72 20 20 63 61 6C 6C 69 6E ded for callin
01D050: 67 20 20 72 6F 75 74 69 6E 65 73 20 20 69 6E 20 g routines in
01D060: 20 65 78 70 61 6E 73 69 6F 6E 20 20 72 6F 6D 73 expansion roms
01D070: 0D 20 20 20 20 20 61 75 74 6F 6D 61 74 69 63 61 . automatica
01D080: 6C 6C 79 20 70 65 72 66 6F 72 6D 20 72 6F 6D 20 lly perform rom
01D090: 73 65 6C 65 63 74 69 6F 6E 20 61 73 20 72 65 71 selection as req
01D0A0: 75 69 72 65 64 2E 0D 0D 20 20 20 20 20 49 74 20 uired... It
01D0B0: 69 73 20 20 69 6E 61 64 76 69 73 61 62 6C 65 20 is inadvisable
01D0C0: 20 74 6F 20 20 73 65 6C 65 63 74 20 20 61 6E 6F to select ano
01D0D0: 74 68 65 72 20 20 75 70 70 65 72 20 20 72 6F 6D ther upper rom
01D0E0: 20 20 77 68 69 6C 73 74 20 20 65 78 65 63 75 74 whilst execut
01D0F0: 69 6E 67 0D 20 20 20 20 20 69 6E 73 74 72 75 63 ing. instruc
01D100: 74 69 6F 6E 73 20 69 6E 20 74 68 65 20 75 70 70 tions in the upp
01D110: 65 72 20 72 6F 6D 2E 0D 0D 20 20 20 20 20 54 68 er rom... Th
01D120: 69 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C is routine enabl
01D130: 65 73 20 69 6E 74 65 72 75 70 74 73 2E 0D 0D 20 es interupts...
01D140: 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ------------
01D150: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D160: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D170: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D180: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 -----------..
01D190: 20 20 26 42 39 31 32 20 2D 20 48 49 3A 20 4B 4C &B912 - HI: KL
01D1A0: 20 20 43 55 52 52 20 20 53 45 4C 45 43 54 49 4F CURR SELECTIO
01D1B0: 4E 20 20 2D 20 20 41 73 6B 20 20 77 68 69 63 68 N - Ask which
01D1C0: 20 20 75 70 70 65 72 20 52 4F 4D 20 69 73 20 63 upper ROM is c
01D1D0: 75 72 72 65 6E 74 6C 79 0D 20 20 20 20 20 73 65 urrently. se
01D1E0: 6C 65 63 74 65 64 2E 0D 0D 20 20 20 20 20 45 6E lected... En
01D1F0: 74 72 79 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D try:.. None.
01D200: 53 54 4F 52 45 20 74 6F 20 72 65 73 65 74 20 74 STORE to reset t
01D210: 68 65 0D 20 20 20 20 20 73 74 61 74 65 20 74 6F he. state to
01D220: 20 77 68 61 74 20 69 74 20 77 61 73 20 62 65 66 what it was bef
01D230: 6F 72 65 20 74 68 69 73 20 72 6F 75 74 69 6E 65 ore this routine
01D240: 20 77 61 73 20 63 61 6C 6C 65 64 2E 0D 0D 20 20 was called...
01D250: 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 This routine
01D260: 65 6E 61 62 6C 65 73 20 69 6E 74 65 72 75 70 74 enables interupt
01D270: 73 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D s... -------
01D280: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D290: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D2A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D2B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D2C0: 0D 0D 20 20 20 20 20 26 42 39 30 39 20 2D 20 48 .. &B909 - H
01D2D0: 49 3A 20 4B 4C 20 4C 20 52 4F 4D 20 44 49 53 41 I: KL L ROM DISA
01D2E0: 42 4C 45 20 2D 20 44 69 73 61 62 6C 65 20 74 68 BLE - Disable th
01D2F0: 65 20 6C 6F 77 65 72 20 72 6F 6D 0D 0D 20 20 20 e lower rom..
01D300: 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 4E Entry:.. N
01D310: 6F 6E 65 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D one.. Exit:.
01D320: 0D 20 20 20 20 20 41 20 3D 70 72 65 76 69 6F 75 . A =previou
01D330: 73 20 72 6F 6D 20 73 74 61 74 65 0D 0D 20 20 20 s rom state..
01D340: 20 20 46 6C 61 67 73 20 63 6F 72 72 75 70 74 2E Flags corrupt.
01D350: 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 0D .. Notes:...
01D360: 0D 20 20 20 20 20 49 6E 20 67 65 6E 65 72 61 6C . In general
01D370: 20 74 68 65 20 6C 6F 77 65 72 20 72 6F 6D 20 69 the lower rom i
01D380: 73 20 64 69 73 61 62 6C 65 64 20 65 78 63 65 70 s disabled excep
01D390: 74 20 77 68 65 6E 20 61 20 66 69 72 6D 77 61 72 t when a firmwar
01D3A0: 65 20 72 6F 75 74 69 6E 65 20 69 73 0D 20 20 20 e routine is.
01D3B0: 20 20 63 61 6C 6C 65 64 2E 20 54 68 65 20 20 66 called. The f
01D3C0: 69 72 6D 77 61 72 65 20 20 6A 75 6D 70 62 6C 6F irmware jumpblo
01D3D0: 63 6B 20 20 61 72 72 61 6E 67 65 73 20 20 74 6F ck arranges to
01D3E0: 20 20 65 6E 61 62 6C 65 20 20 74 68 65 20 20 6C enable the l
01D3F0: 6F 77 65 72 20 72 6F 6D 0D 20 20 20 20 20 61 75 ower rom. au
01D400: 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 . Exit:..
01D410: 20 20 41 20 3D 20 72 6F 6D 20 73 65 6C 65 63 74 A = rom select
01D420: 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 address of the
01D430: 63 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 currently select
01D440: 65 64 20 72 6F 6D 0D 0D 20 20 20 20 20 4E 6F 74 ed rom.. Not
01D450: 65 73 3A 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 es:........
01D460: 49 74 20 69 73 20 6E 6F 74 20 70 6F 73 73 69 62 It is not possib
01D470: 6C 65 20 74 6F 20 20 70 72 65 64 69 63 74 20 20 le to predict
01D480: 74 68 65 20 20 72 6F 6D 20 20 73 65 6C 65 63 74 the rom select
01D490: 20 20 61 64 64 72 65 73 73 20 61 74 20 77 68 69 address at whi
01D4A0: 63 68 20 61 6E 79 0D 20 20 20 20 20 70 61 72 74 ch any. part
01D4B0: 69 63 75 6C 61 72 20 65 78 70 61 6E 73 69 6F 6E icular expansion
01D4C0: 20 72 6F 6D 20 20 77 69 6C 6C 20 20 62 65 20 20 rom will be
01D4D0: 66 69 74 74 65 64 2E 20 20 54 68 65 20 20 66 61 fitted. The fa
01D4E0: 72 20 20 61 64 64 72 65 73 73 20 75 73 65 64 20 r address used
01D4F0: 74 6F 0D 20 20 20 20 20 72 65 66 65 72 65 6E 63 to. referenc
01D500: 65 20 73 75 62 72 6F 75 74 69 6E 65 73 20 69 6E e subroutines in
01D510: 20 20 65 78 70 61 6E 73 69 6F 6E 20 20 72 6F 6D expansion rom
01D520: 73 20 20 69 6E 63 6C 75 64 65 20 20 61 20 20 72 s include a r
01D530: 6F 6D 20 73 65 6C 65 63 74 20 62 79 74 65 0D 20 om select byte.
01D540: 20 20 20 20 77 68 69 63 68 20 6D 75 73 74 20 62 which must b
01D550: 65 20 73 65 74 20 75 70 20 61 74 20 72 75 6E 20 e set up at run
01D560: 20 74 69 6D 65 2E 20 54 68 69 73 20 72 6F 75 74 time. This rout
01D570: 69 6E 65 20 72 65 74 75 72 6E 73 20 74 68 65 20 ine returns the
01D580: 72 6F 6D 20 73 65 6C 65 63 74 0D 20 20 20 20 20 rom select.
01D590: 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 20 address of the
01D5A0: 63 75 72 72 65 6E 74 20 20 72 6F 6D 20 20 73 6F current rom so
01D5B0: 20 20 74 68 61 74 20 20 69 74 20 20 63 61 6E 20 that it can
01D5C0: 20 73 65 74 20 20 75 70 20 20 73 75 69 74 61 62 set up suitab
01D5D0: 6C 65 20 66 61 72 0D 20 20 20 20 20 61 64 64 72 le far. addr
01D5E0: 65 73 73 65 73 2E 0D 0D 20 20 20 20 20 2D 2D 2D esses... ---
01D5F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D600: 74 6F 6D 61 74 69 63 61 6C 6C 79 20 61 6E 64 20 tomatically and
01D610: 74 6F 20 64 69 73 61 62 6C 65 20 69 74 20 20 61 to disable it a
01D620: 67 61 69 6E 20 20 77 68 65 6E 20 74 68 65 20 72 gain when the r
01D630: 6F 75 74 69 6E 65 20 72 65 74 75 72 6E 73 2E 0D outine returns..
01D640: 0D 20 20 20 20 20 54 68 65 20 70 72 65 76 69 6F . The previo
01D650: 75 73 20 72 6F 6D 20 73 74 61 74 65 20 6D 61 79 us rom state may
01D660: 20 62 65 20 20 70 61 73 73 65 64 20 20 74 6F 20 be passed to
01D670: 20 4B 4C 20 52 4F 4D 20 52 45 53 54 4F 52 45 20 KL ROM RESTORE
01D680: 74 6F 20 72 65 73 65 74 20 74 68 65 0D 20 20 20 to reset the.
01D690: 20 20 73 74 61 74 65 20 74 6F 20 77 68 61 74 20 state to what
01D6A0: 69 74 20 77 61 73 20 62 65 66 6F 72 65 20 74 68 it was before th
01D6B0: 69 73 20 72 6F 75 74 69 6E 65 20 77 61 73 20 63 is routine was c
01D6C0: 61 6C 6C 65 64 2E 0D 0D 20 20 20 20 20 54 68 69 alled... Thi
01D6D0: 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 s routine enable
01D6E0: 73 20 69 6E 74 65 72 75 70 74 73 2E 0D 0D 20 20 s interupts...
01D6F0: 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -------------
01D700: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D710: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D720: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D730: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 20 20 ----------.
01D740: 26 42 39 30 43 20 2D 20 48 49 3A 20 4B 4C 20 52 &B90C - HI: KL R
01D750: 4F 4D 20 52 45 53 54 4F 52 45 20 2D 20 52 65 73 OM RESTORE - Res
01D760: 74 6F 72 65 20 74 68 65 20 70 72 65 76 69 6F 75 tore the previou
01D770: 73 20 72 6F 6D 20 73 74 61 74 65 0D 0D 20 20 20 s rom state..
01D780: 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 41 Entry:.. A
01D790: 20 3D 20 70 72 65 76 69 6F 75 73 20 72 6F 6D 20 = previous rom
01D7A0: 73 74 61 74 65 0D 0D 20 20 20 20 20 45 78 69 74 state.. Exit
01D7B0: 3A 0D 0D 20 20 20 20 20 41 46 20 63 6F 72 72 75 :.. AF corru
01D7C0: 70 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A pt... Notes:
01D7D0: 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 54 68 65 ........ The
01D7E0: 20 70 72 65 76 69 6F 75 73 20 72 6F 6D 20 73 74 previous rom st
01D7F0: 61 74 65 20 69 73 20 74 68 65 20 76 61 6C 75 65 ate is the value
01D800: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D810: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D820: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01D830: 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 39 31 35 20 ---.. &B915
01D840: 2D 20 48 49 3A 20 4B 4C 20 50 52 4F 42 45 20 52 - HI: KL PROBE R
01D850: 4F 4D 20 2D 20 41 73 6B 20 63 6C 61 73 73 20 61 OM - Ask class a
01D860: 6E 64 20 76 65 72 73 69 6F 6E 20 6F 66 20 61 20 nd version of a
01D870: 72 6F 6D 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A rom.. Entry:
01D880: 0D 0D 20 20 20 20 20 43 20 3D 20 72 6F 6D 20 73 .. C = rom s
01D890: 65 6C 65 63 74 20 61 64 64 72 65 73 73 20 6F 66 elect address of
01D8A0: 20 72 6F 6D 0D 0D 20 20 20 20 20 45 78 69 74 3A rom.. Exit:
01D8B0: 0D 0D 20 20 20 20 20 41 20 3D 20 72 6F 6D 73 20 .. A = roms
01D8C0: 63 6C 61 73 73 0D 20 20 20 20 20 4C 20 3D 20 72 class. L = r
01D8D0: 6F 6D 73 20 6D 61 72 6B 20 6E 75 6D 62 65 72 0D oms mark number.
01D8E0: 20 20 20 20 20 48 20 3D 20 72 6F 6D 73 20 76 65 H = roms ve
01D8F0: 72 73 69 6F 6E 20 6E 75 6D 62 65 72 0D 20 20 20 rsion number.
01D900: 20 20 42 20 61 6E 64 20 66 6C 61 67 73 20 63 6F B and flags co
01D910: 72 72 75 70 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 rrupt... Not
01D920: 65 73 3A 0D 0D 20 20 20 20 20 54 68 65 20 72 6F es:.. The ro
01D930: 6D 20 63 6C 61 73 73 20 72 65 74 75 72 6E 65 64 m class returned
01D940: 20 6D 61 79 20 74 61 6B 65 20 61 6E 79 20 6F 66 may take any of
01D950: 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 3A 0D the following:.
01D960: 0D 20 20 20 20 20 30 3A 20 20 20 20 20 20 46 6F . 0: Fo
01D970: 72 65 67 72 6F 75 6E 64 20 72 6F 6D 0D 20 20 20 reground rom.
01D980: 20 20 31 3A 20 20 20 20 20 20 42 61 63 6B 67 72 1: Backgr
01D990: 6F 75 6E 64 20 72 6F 6D 0D 20 20 20 20 20 32 3A ound rom. 2:
01D9A0: 20 20 20 20 20 20 45 78 74 65 6E 73 69 6F 6E 20 Extension
01D9B0: 66 6F 72 65 67 72 6F 75 6E 64 20 72 6F 6D 0D 20 foreground rom.
01D9C0: 20 20 20 20 26 38 30 20 20 20 20 20 4F 6E 20 62 &80 On b
01D9D0: 6F 61 72 64 20 72 6F 6D 20 28 42 41 53 49 43 20 oard rom (BASIC
01D9E0: 72 6F 6D 29 0D 0D 20 20 20 20 20 53 65 6C 65 63 rom).. Selec
01D9F0: 74 69 6E 67 20 61 20 72 6F 6D 20 61 64 64 72 65 ting a rom addre
01DA00: 20 72 65 74 75 72 6E 65 64 20 62 79 20 6F 6E 65 returned by one
01DA10: 20 6F 66 3A 0D 0D 20 20 20 20 20 4B 4C 20 55 20 of:.. KL U
01DA20: 52 4F 4D 20 45 4E 41 42 4C 45 0D 20 20 20 20 20 ROM ENABLE.
01DA30: 4B 4C 20 55 20 52 4F 4D 20 44 49 53 41 42 4C 45 KL U ROM DISABLE
01DA40: 0D 20 20 20 20 20 4B 4C 20 4C 20 52 4F 4D 20 45 . KL L ROM E
01DA50: 4E 41 42 4C 45 0D 20 20 20 20 20 4B 4C 20 4C 20 NABLE. KL L
01DA60: 52 4F 4D 20 44 49 53 41 42 4C 45 0D 20 20 20 20 ROM DISABLE.
01DA70: 20 4B 4C 20 52 4F 4D 20 53 45 4C 45 43 54 0D 0D KL ROM SELECT..
01DA80: 20 20 20 20 20 49 74 20 69 73 20 70 6F 73 73 69 It is possi
01DA90: 62 6C 65 20 74 6F 20 75 73 65 20 4B 4C 20 55 20 ble to use KL U
01DAA0: 52 4F 4D 20 44 49 53 41 42 4C 45 20 74 6F 20 72 ROM DISABLE to r
01DAB0: 65 76 65 72 73 65 20 74 68 65 20 65 66 66 65 63 everse the effec
01DAC0: 74 20 6F 66 20 61 20 63 61 6C 6C 0D 20 20 20 20 t of a call.
01DAD0: 20 6F 66 20 4B 4C 20 55 20 45 4E 41 42 4C 45 20 of KL U ENABLE
01DAE0: 28 61 6D 6F 6E 67 73 74 20 20 76 61 72 69 6F 75 (amongst variou
01DAF0: 73 20 6F 74 68 65 72 20 63 6F 6D 62 69 6E 61 74 s other combinat
01DB00: 69 6F 6E 73 29 2E 20 48 6F 77 65 76 65 72 2C 20 ions). However,
01DB10: 63 61 6C 6C 69 6E 67 0D 20 20 20 20 20 4B 4C 20 calling. KL
01DB20: 52 4F 4D 20 52 45 53 54 4F 52 45 20 69 73 20 74 ROM RESTORE is t
01DB30: 68 65 20 70 72 65 66 65 72 65 64 20 20 6D 65 74 he prefered met
01DB40: 68 6F 64 20 20 73 69 6E 63 65 20 69 74 20 72 65 hod since it re
01DB50: 73 74 6F 72 65 73 20 74 68 65 20 73 74 61 74 65 stores the state
01DB60: 20 74 6F 0D 20 20 20 20 20 77 68 61 74 20 69 74 to. what it
01DB70: 20 77 61 73 2C 20 77 68 69 63 68 20 6D 69 67 68 was, which migh
01DB80: 74 20 68 61 76 65 20 62 65 65 6E 20 65 6E 61 62 t have been enab
01DB90: 6C 65 64 20 61 6E 79 77 61 79 2E 0D 0D 20 20 20 led anyway...
01DBA0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 This routine e
01DBB0: 6E 61 62 6C 65 73 20 69 6E 74 65 72 75 70 74 73 nables interupts
01DBC0: 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D ... --------
01DBD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01DBE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01DBF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01DC00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01DC10: 19 00 01 00 02 09 4E E5 19 00 C1 02 00 00 00 02 ......N.........
01DC20: 19 00 C6 02 00 00 00 02 19 00 C2 02 00 00 00 02 ................
01DC30: 19 00 C7 02 00 00 00 02 19 00 C3 02 00 00 00 02 ................
01DC40: 19 00 C8 02 00 00 00 02 19 00 C4 02 00 00 00 02 ................
01DC50: 19 00 C9 02 00 00 00 02 19 00 C5 02 00 00 00 02 ................
01DC60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DD00: 73 73 20 77 68 65 72 65 20 6E 6F 20 20 72 6F 6D ss where no rom
01DD10: 20 20 69 73 20 66 69 74 74 65 64 20 69 6D 70 6C is fitted impl
01DD20: 69 63 69 74 79 20 73 65 6C 65 63 74 73 20 74 68 icity selects th
01DD30: 65 0D 20 20 20 20 20 6F 6E 2D 62 6F 61 72 64 20 e. on-board
01DD40: 72 6F 6D 20 61 6E 64 20 73 6F 20 69 74 20 77 69 rom and so it wi
01DD50: 6C 6C 20 72 65 74 75 72 6E 20 26 38 30 20 61 73 ll return &80 as
01DD60: 20 69 74 73 20 63 6C 61 73 73 2E 0D 0D 20 20 20 its class...
01DD70: 20 20 54 68 65 20 6D 65 61 6E 69 6E 67 20 6F 66 The meaning of
01DD80: 20 74 68 65 20 6D 61 72 6B 20 61 6E 64 20 76 65 the mark and ve
01DD90: 72 73 69 6F 6E 20 6E 75 6D 62 65 72 73 20 64 65 rsion numbers de
01DDA0: 70 65 6E 64 73 20 6F 6E 20 74 68 65 20 72 6F 6D pends on the rom
01DDB0: 0D 0D 20 20 20 20 20 54 68 69 73 20 72 6F 75 74 .. This rout
01DDC0: 69 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E 74 65 ine enables inte
01DDD0: 72 75 70 74 73 2E 0D 0D 20 20 20 20 20 2D 2D 2D rupts... ---
01DDE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01DDF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01DE00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01DE10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01DE20: 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 39 31 38 ----.. &B918
01DE30: 20 2D 20 48 49 3A 20 4B 4C 20 52 4F 4D 20 44 45 - HI: KL ROM DE
01DE40: 53 45 4C 45 43 54 20 2D 20 52 65 73 74 6F 72 65 SELECT - Restore
01DE50: 20 70 72 65 76 69 6F 75 73 20 75 70 70 65 72 20 previous upper
01DE60: 72 6F 6D 20 73 65 6C 65 63 74 69 6F 6E 0D 0D 20 rom selection..
01DE70: 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 Entry:..
01DE80: 20 43 20 3D 20 72 6F 6D 20 73 65 6C 65 63 74 20 C = rom select
01DE90: 61 64 64 72 65 73 73 20 6F 66 20 70 72 65 76 69 address of previ
01DEA0: 6F 75 73 6C 79 20 73 65 6C 65 63 74 65 64 20 72 ously selected r
01DEB0: 6F 6D 0D 20 20 20 20 20 42 20 3D 20 70 72 65 76 om. B = prev
01DEC0: 69 6F 75 73 20 72 6F 6D 20 73 74 61 74 65 0D 0D ious rom state..
01DED0: 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 Exit:..
01DEE0: 20 43 20 3D 20 72 6F 6D 20 73 65 6C 65 63 74 20 C = rom select
01DEF0: 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 63 address of the c
01DF00: 6D 62 65 72 73 20 69 74 73 0D 20 20 20 20 20 70 mbers its. p
01DF10: 72 69 6F 72 69 74 79 2E 20 20 54 68 65 20 20 73 riority. The s
01DF20: 79 6E 63 68 72 6F 6E 6F 75 73 20 20 65 76 65 6E ynchronous even
01DF30: 74 20 20 20 72 6F 75 74 69 6E 65 20 20 20 6D 61 t routine ma
01DF40: 79 20 20 20 69 74 73 65 6C 66 20 20 70 6F 6C 6C y itself poll
01DF50: 20 20 74 68 65 0D 20 20 20 20 20 73 79 6E 63 68 the. synch
01DF60: 72 6F 6E 6F 75 73 65 20 65 76 65 6E 74 20 71 75 ronouse event qu
01DF70: 65 75 65 2C 20 20 62 75 74 20 20 6F 6E 6C 79 20 eue, but only
01DF80: 20 65 76 65 6E 74 73 20 20 6F 66 20 20 68 69 67 events of hig
01DF90: 68 65 72 20 70 72 69 6F 72 69 74 79 20 74 68 61 her priority tha
01DFA0: 6E 0D 20 20 20 20 20 69 74 73 65 6C 66 20 61 72 n. itself ar
01DFB0: 65 20 6E 6F 74 69 66 69 65 64 20 74 6F 20 69 74 e notified to it
01DFC0: 2E 0D 0D 20 20 20 20 20 54 68 69 73 20 72 6F 75 ... This rou
01DFD0: 74 69 6E 65 20 6D 61 79 20 65 6E 61 62 6C 65 20 tine may enable
01DFE0: 69 6E 74 65 72 75 70 74 73 2E 0D 0D 20 20 20 20 interupts...
01DFF0: 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ---------------
01E000: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E010: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E020: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E030: 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 -------.. &B
01E040: 39 32 41 20 2D 20 48 49 3A 20 4B 4C 20 20 53 43 92A - HI: KL SC
01E050: 41 4E 20 20 4E 45 45 44 45 44 20 20 2D 20 20 45 AN NEEDED - E
01E060: 6E 73 75 72 65 20 20 6B 65 79 62 6F 61 72 64 20 nsure keyboard
01E070: 20 69 73 20 20 73 63 61 6E 6E 65 64 20 61 74 20 is scanned at
01E080: 6E 65 78 74 0D 20 20 20 20 20 6F 70 70 6F 72 74 next. opport
01E090: 75 6E 69 74 79 2E 0D 0D 0D 20 20 20 20 20 4E 6F unity.... No
01E0A0: 6E 65 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D ne.. Exit:..
01E0B0: 20 20 20 20 20 41 46 20 61 6E 64 20 48 4C 20 63 AF and HL c
01E0C0: 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 20 4E 6F orrupt... No
01E0D0: 74 65 73 3A 0D 0D 20 20 20 20 20 54 68 65 20 6B tes:.. The k
01E0E0: 65 79 62 6F 61 72 64 20 69 73 20 6E 6F 72 6D 61 eyboard is norma
01E0F0: 6C 6C 79 20 73 63 61 6E 6E 65 64 20 6F 6E 20 65 lly scanned on e
01E100: 75 72 72 65 6E 74 6C 79 20 73 65 6C 65 63 74 65 urrently selecte
01E110: 64 20 72 6F 6D 0D 20 20 20 20 20 42 20 63 6F 72 d rom. B cor
01E120: 72 75 70 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 rupt... Note
01E130: 73 3A 0D 0D 20 20 20 20 20 54 68 65 20 70 72 65 s:.. The pre
01E140: 76 69 6F 75 73 20 72 6F 6D 20 73 65 6C 65 63 74 vious rom select
01E150: 69 6F 6E 20 61 6E 64 20 20 73 74 61 74 65 20 20 ion and state
01E160: 61 72 65 20 20 76 61 6C 75 65 73 20 20 72 65 74 are values ret
01E170: 75 72 6E 65 64 20 62 79 20 4B 4C 20 52 4F 4D 0D urned by KL ROM.
01E180: 20 20 20 20 20 53 45 4C 45 43 54 2E 20 54 68 65 SELECT. The
01E190: 20 63 75 72 72 65 6E 74 6C 79 20 20 73 65 6C 65 currently sele
01E1A0: 63 74 65 64 20 20 72 6F 6D 20 20 72 65 74 75 72 cted rom retur
01E1B0: 6E 65 64 20 20 62 79 20 20 74 68 69 73 20 20 72 ned by this r
01E1C0: 6F 6D 20 74 68 61 74 20 77 61 73 0D 20 20 20 20 om that was.
01E1D0: 20 73 65 6C 65 63 74 65 64 20 62 79 20 63 61 6C selected by cal
01E1E0: 6C 69 6E 67 20 4B 4C 20 52 4F 4D 20 53 45 4C 45 ling KL ROM SELE
01E1F0: 43 54 20 28 75 6E 6C 65 73 73 20 66 75 72 74 68 CT (unless furth
01E200: 65 72 20 73 65 6C 65 63 74 69 6F 6E 73 20 68 61 er selections ha
01E210: 76 65 20 62 65 65 6E 0D 20 20 20 20 20 6D 61 64 ve been. mad
01E220: 65 29 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 54 e)........ T
01E230: 68 65 20 6D 65 63 68 61 6E 69 73 6D 73 20 70 72 he mechanisms pr
01E240: 6F 76 69 64 65 64 20 20 66 6F 72 20 20 63 61 6C ovided for cal
01E250: 6C 69 6E 67 20 20 73 75 62 72 6F 75 74 69 6E 65 ling subroutine
01E260: 73 20 20 69 6E 20 20 65 78 70 61 6E 73 69 6F 6E s in expansion
01E270: 20 72 6F 6D 73 0D 20 20 20 20 20 61 75 74 6F 6D roms. autom
01E280: 61 74 69 63 61 6C 6C 79 20 70 65 72 66 6F 72 6D atically perform
01E290: 20 72 6F 6D 20 73 65 6C 65 63 74 69 6F 6E 20 61 rom selection a
01E2A0: 73 20 72 65 71 75 69 72 65 64 2E 0D 0D 20 20 20 s required...
01E2B0: 20 20 49 74 20 69 73 20 20 69 6E 61 64 76 69 73 It is inadvis
01E2C0: 61 62 6C 65 20 20 74 6F 20 20 73 65 6C 65 63 74 able to select
01E2D0: 20 20 61 6E 6F 74 68 65 72 20 20 75 70 70 65 72 another upper
01E2E0: 20 20 72 6F 6D 20 20 77 68 69 6C 73 74 20 20 65 rom whilst e
01E2F0: 78 65 63 75 74 69 6E 67 0D 20 20 20 20 20 69 6E xecuting. in
01E300: 76 65 72 79 20 73 69 78 74 68 20 74 69 63 6B 65 very sixth ticke
01E310: 72 20 69 6E 74 65 72 75 70 74 20 28 65 76 65 72 r interupt (ever
01E320: 79 0D 20 20 20 20 20 66 69 66 74 69 65 74 68 20 y. fiftieth
01E330: 6F 66 20 61 20 73 65 63 6F 6E 64 29 2E 20 57 68 of a second). Wh
01E340: 69 6C 65 20 69 6E 74 65 72 75 70 74 73 20 61 72 ile interupts ar
01E350: 65 20 64 69 73 61 62 6C 65 64 20 74 68 65 20 74 e disabled the t
01E360: 69 63 6B 73 20 61 72 65 20 6C 6F 73 74 0D 20 20 icks are lost.
01E370: 20 20 20 61 6E 64 20 74 68 65 20 6B 65 79 62 6F and the keybo
01E380: 61 72 66 64 20 77 69 6C 6C 20 6E 6F 74 20 62 65 arfd will not be
01E390: 20 73 63 61 6E 6E 65 64 2E 20 49 66 20 69 6E 74 scanned. If int
01E3A0: 65 72 75 70 74 73 20 61 72 65 20 64 69 73 61 62 erupts are disab
01E3B0: 6C 65 64 20 66 6F 72 20 61 0D 20 20 20 20 20 73 led for a. s
01E3C0: 69 67 6E 69 66 69 63 61 6E 74 20 70 65 72 69 6F ignificant perio
01E3D0: 64 20 28 6D 6F 72 65 20 74 68 61 6E 20 74 68 72 d (more than thr
01E3E0: 65 65 20 74 69 63 6B 73 29 20 74 68 65 6E 20 74 ee ticks) then t
01E3F0: 68 69 73 20 72 6F 75 74 69 6E 65 20 73 68 6F 75 his routine shou
01E400: 6C 64 20 62 65 0D 20 20 20 20 20 63 61 6C 6C 65 ld be. calle
01E410: 64 20 6A 75 73 74 20 62 65 66 6F 72 65 20 69 6E d just before in
01E420: 74 65 72 75 70 74 73 20 61 72 65 20 72 65 2D 65 terupts are re-e
01E430: 6E 61 62 6C 65 64 2E 20 49 66 20 69 6E 74 65 72 nabled. If inter
01E440: 75 70 74 73 20 61 72 65 20 64 69 73 61 62 6C 65 upts are disable
01E450: 64 0D 20 20 20 20 20 66 6F 72 20 61 20 6C 6F 6E d. for a lon
01E460: 67 20 74 69 6D 65 20 28 6D 6F 72 65 20 74 68 61 g time (more tha
01E470: 6E 20 74 77 65 6C 76 65 20 20 74 69 63 6B 73 29 n twelve ticks)
01E480: 20 74 68 65 6E 20 74 68 65 20 75 73 65 72 20 6D then the user m
01E490: 69 67 68 74 20 63 6F 6E 73 69 64 65 72 0D 20 20 ight consider.
01E4A0: 20 20 20 63 61 6C 6C 69 6E 67 20 74 68 69 73 20 calling this
01E4B0: 72 6F 75 74 69 6E 65 20 61 6E 64 20 72 65 2D 65 routine and re-e
01E4C0: 6E 61 62 6C 69 6E 67 20 69 6E 74 65 72 75 70 74 nabling interupt
01E4D0: 73 20 20 66 6F 72 20 61 20 73 68 6F 72 74 20 74 s for a short t
01E4E0: 69 6D 65 20 65 76 65 72 79 0D 20 20 20 20 20 66 ime every. f
01E4F0: 69 66 74 69 65 74 68 20 6F 66 20 61 20 73 65 63 iftieth of a sec
01E500: 73 74 72 75 63 74 69 6F 6E 73 20 69 6E 20 74 68 structions in th
01E510: 65 20 75 70 70 65 72 20 72 6F 6D 2E 0D 0D 20 20 e upper rom...
01E520: 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 This routine
01E530: 65 6E 61 62 6C 65 73 20 69 6E 74 65 72 75 70 74 enables interupt
01E540: 73 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D s... -------
01E550: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E560: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E570: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E580: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D ---------------.
01E590: 0D 20 20 20 20 20 26 42 39 31 42 20 2D 20 48 49 . &B91B - HI
01E5A0: 3A 20 4B 4C 20 4C 44 49 52 20 2D 20 4D 6F 76 65 : KL LDIR - Move
01E5B0: 20 61 20 62 6C 6F 63 6B 20 6F 66 20 63 6F 64 65 a block of code
01E5C0: 20 77 69 74 68 20 72 6F 6D 73 20 74 75 72 6E 65 with roms turne
01E5D0: 64 20 6F 66 66 0D 0D 20 20 20 20 20 45 6E 74 72 d off.. Entr
01E5E0: 79 3A 0D 0D 20 20 20 20 20 42 43 2C 44 45 2C 48 y:.. BC,DE,H
01E5F0: 4C 20 61 73 20 4C 44 49 52 20 63 6F 6D 6D 61 6E L as LDIR comman
01E600: 64 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 d.. Exit:..
01E610: 20 20 20 20 46 2C 42 43 2C 44 45 2C 48 4C 20 61 F,BC,DE,HL a
01E620: 73 20 73 65 74 20 62 79 20 4C 44 49 52 20 63 6F s set by LDIR co
01E630: 6D 6D 61 6E 64 0D 0D 20 20 20 20 20 4E 6F 74 65 mmand.. Note
01E640: 73 3A 0D 0D 20 20 20 20 20 54 68 69 73 20 72 6F s:.. This ro
01E650: 75 74 69 6E 65 20 6D 61 79 20 62 65 20 75 73 65 utine may be use
01E660: 64 20 74 6F 20 6D 6F 76 65 20 20 61 72 65 61 73 d to move areas
01E670: 20 6F 66 20 72 61 6D 20 69 72 72 65 73 70 65 63 of ram irrespec
01E680: 74 69 76 65 20 6F 66 20 74 68 65 20 72 6F 6D 0D tive of the rom.
01E690: 20 20 20 20 20 73 74 61 74 65 2E 0D 0D 20 20 20 state...
01E6A0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 This routine e
01E6B0: 6E 61 62 6C 65 73 20 69 6E 74 65 72 75 70 74 73 nables interupts
01E6C0: 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D ... --------
01E6D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E6E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E6F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E700: 6F 6E 64 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D ond.. ------
01E710: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E720: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E730: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E740: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01E750: 0D 0D 20 20 20 20 20 3D 3D 3D 3D 3D 3D 3D 3D 3D .. =========
01E760: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
01E770: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
01E780: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
01E790: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 20 20 =============.
01E7A0: 20 20 20 65 6E 64 20 6F 66 20 68 69 67 68 20 6B end of high k
01E7B0: 65 72 6E 61 6C 20 6A 75 6D 70 62 6C 6F 63 6B 0D ernal jumpblock.
01E7C0: 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D ................
01E7D0: 1A 10 22 00 00 00 00 00 00 00 00 00 00 00 00 00 ..".............
01E7E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01E7F0: 00 00 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01E800: 6C 64 20 62 65 0D 20 20 20 20 20 63 61 6C 6C 65 ld be. calle
01E810: 64 20 6A 75 73 74 20 62 65 66 6F 72 65 20 69 6E d just before in
01E820: 74 65 72 75 70 74 73 20 61 72 65 20 72 65 2D 65 terupts are re-e
01E830: 6E 61 62 6C 65 64 2E 20 49 66 20 69 6E 74 65 72 nabled. If inter
01E840: 75 70 74 73 20 61 72 65 20 64 69 73 61 62 6C 65 upts are disable
01E850: 64 0D 20 20 20 20 20 66 6F 72 20 61 20 6C 6F 6E d. for a lon
01E860: 67 20 74 69 6D 65 20 28 6D 6F 72 65 20 74 68 61 g time (more tha
01E870: 6E 20 74 77 65 6C 76 65 20 20 74 69 63 6B 73 29 n twelve ticks)
01E880: 20 74 68 65 6E 20 74 68 65 20 75 73 65 72 20 6D then the user m
01E890: 69 67 68 74 20 63 6F 6E 73 69 64 65 72 0D 20 20 ight consider.
01E8A0: 20 20 20 63 61 6C 6C 69 6E 67 20 74 68 69 73 20 calling this
01E8B0: 72 6F 75 74 69 6E 65 20 61 6E 64 20 72 65 2D 65 routine and re-e
01E8C0: 6E 61 62 6C 69 6E 67 20 69 6E 74 65 72 75 70 74 nabling interupt
01E8D0: 73 20 20 66 6F 72 20 61 20 73 68 6F 72 74 20 74 s for a short t
01E8E0: 69 6D 65 20 65 76 65 72 79 0D 20 20 20 20 20 66 ime every. f
01E8F0: 69 66 74 69 65 74 68 20 6F 66 20 61 20 73 65 63 iftieth of a sec
01E900: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D ---------------.
01E910: 0D 20 20 20 20 20 26 42 39 31 45 20 2D 20 48 49 . &B91E - HI
01E920: 3A 20 4B 4C 20 4C 44 44 52 20 2D 20 4D 6F 76 65 : KL LDDR - Move
01E930: 20 61 20 62 6C 6F 63 6B 20 6F 66 20 63 6F 64 65 a block of code
01E940: 20 77 69 74 68 20 72 6F 6D 73 20 74 75 72 6E 65 with roms turne
01E950: 64 20 6F 66 66 0D 0D 20 20 20 20 20 45 6E 74 72 d off.. Entr
01E960: 79 3A 0D 0D 20 20 20 20 20 42 43 2C 44 45 2C 48 y:.. BC,DE,H
01E970: 4C 20 61 73 20 4C 44 44 52 20 63 6F 6D 6D 61 6E L as LDDR comman
01E980: 64 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 d.. Exit:..
01E990: 20 20 20 20 46 2C 42 43 2C 44 45 2C 48 4C 20 61 F,BC,DE,HL a
01E9A0: 73 20 4C 44 44 52 20 63 6F 6D 6D 61 6E 64 0D 0D s LDDR command..
01E9B0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 Notes:..
01E9C0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 6D This routine m
01E9D0: 61 79 20 62 65 20 75 73 65 64 20 74 6F 20 6D 6F ay be used to mo
01E9E0: 76 65 20 20 61 72 65 61 73 20 6F 66 20 72 61 6D ve areas of ram
01E9F0: 20 69 72 72 65 73 70 65 63 74 69 76 65 20 6F 66 irrespective of
01EA00: 20 74 68 65 20 72 6F 6D 0D 20 20 20 20 20 73 74 the rom. st
01EA10: 61 74 65 2E 0D 0D 20 20 20 20 20 54 68 69 73 20 ate... This
01EA20: 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 73 20 routine enables
01EA30: 69 6E 74 65 72 75 70 74 73 0D 0D 20 20 20 20 20 interupts..
01EA40: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01EA50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01EA60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01EA70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01EA80: 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 -------.. &B
01EA90: 39 32 31 20 2D 20 48 4C 3A 20 4B 4C 20 20 50 4F 921 - HL: KL PO
01EAA0: 4C 4C 20 20 53 59 4E 43 48 52 4F 4E 4F 55 53 20 LL SYNCHRONOUS
01EAB0: 20 2D 20 20 43 68 65 63 6B 20 20 69 66 20 20 61 - Check if a
01EAC0: 6E 20 20 65 76 65 6E 74 20 77 69 74 68 20 68 69 n event with hi
01EAD0: 67 68 65 72 0D 20 20 20 20 20 70 72 69 6F 72 69 gher. priori
01EAE0: 74 79 20 74 68 61 6E 20 74 68 65 20 63 75 72 72 ty than the curr
01EAF0: 65 6E 74 20 65 76 65 6E 74 20 69 73 20 70 65 6E ent event is pen
01EB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01EC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01ECA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01ECB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01ECC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01ECD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01ECE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01ECF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01ED00: 64 69 6E 67 0D 0D 20 20 20 20 20 45 6E 74 72 79 ding.. Entry
01ED10: 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 20 :.. None..
01ED20: 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 49 Exit:.. I
01ED30: 66 20 74 68 65 72 65 20 69 73 20 61 20 68 69 67 f there is a hig
01ED40: 68 65 72 20 70 72 69 6F 72 69 74 79 20 65 76 65 her priority eve
01ED50: 6E 74 20 70 65 6E 64 69 6E 67 2E 0D 0D 20 20 20 nt pending...
01ED60: 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0D 0D Carry true....
01ED70: 0D 0D 0D 0D 0D 20 20 20 20 20 49 66 20 74 68 65 ..... If the
01ED80: 72 65 20 69 73 20 6E 6F 20 68 69 67 68 65 72 20 re is no higher
01ED90: 70 72 69 6F 72 69 74 79 20 65 76 65 6E 74 20 70 priority event p
01EDA0: 65 6E 64 69 6E 67 3A 0D 0D 20 20 20 20 20 43 61 ending:.. Ca
01EDB0: 72 72 79 20 66 61 6C 73 65 2E 0D 0D 20 20 20 20 rry false...
01EDC0: 20 41 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 A and other fla
01EDD0: 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 gs corrupt...
01EDE0: 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 Notes:.. T
01EDF0: 68 69 73 20 72 6F 75 74 69 6E 65 20 69 73 20 69 his routine is i
01EE00: 6E 20 20 74 68 65 20 20 68 69 67 68 20 20 6A 75 n the high ju
01EE10: 6D 70 62 6C 6F 63 6B 20 20 74 6F 20 20 6D 69 6E mpblock to min
01EE20: 69 6D 69 73 65 20 74 68 65 20 6F 76 65 72 68 65 imise the overhe
01EE30: 61 64 20 6F 66 0D 20 20 20 20 20 70 6F 6C 6C 69 ad of. polli
01EE40: 6E 67 20 66 6F 72 20 73 79 6E 63 68 72 6F 6E 6F ng for synchrono
01EE50: 75 73 20 20 65 76 65 6E 74 73 2E 20 20 49 66 20 us events. If
01EE60: 20 74 68 65 20 20 73 79 6E 63 68 72 6F 6E 6F 75 the synchronou
01EE70: 73 20 20 65 76 65 6E 74 20 71 75 65 75 65 20 69 s event queue i
01EE80: 73 0D 20 20 20 20 20 65 6D 70 74 79 20 74 68 65 s. empty the
01EE90: 6E 20 74 68 65 20 72 6F 75 74 69 6E 65 20 74 61 n the routine ta
01EEA0: 6B 65 73 20 6F 6E 6C 79 20 61 20 66 65 77 20 69 kes only a few i
01EEB0: 6E 73 74 72 75 63 74 69 6F 6E 73 2E 0D 0D 20 20 nstructions...
01EEC0: 20 20 20 57 68 69 6C 65 20 61 20 73 79 6E 63 68 While a synch
01EED0: 72 6F 6E 6F 75 73 20 65 76 65 6E 74 20 69 73 20 ronous event is
01EEE0: 62 65 69 6E 67 20 20 70 72 6F 63 65 73 73 65 64 being processed
01EEF0: 20 74 68 65 20 6B 65 72 6E 65 6C 20 72 65 6D 65 the kernel reme
01EF00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01EF10: 1A 00 01 00 02 09 4E E5 1A 00 C1 02 00 00 00 02 ......N.........
01EF20: 1A 00 C6 02 00 00 00 02 1A 00 C2 02 00 00 00 02 ................
01EF30: 1A 00 C7 02 00 00 00 02 1A 00 C3 02 00 00 00 02 ................
01EF40: 1A 00 C8 02 00 00 00 02 1A 00 C4 02 00 00 00 02 ................
01EF50: 1A 00 C9 02 00 00 00 02 1A 00 C5 02 00 00 00 02 ................
01EF60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01F000: 1B 40 0D 0D 0D 20 20 20 20 20 49 6E 64 69 72 65 .@... Indire
01F010: 63 74 69 6F 6E 73 0D 20 20 20 20 20 2D 2D 2D 2D ctions. ----
01F020: 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 --------.. &
01F030: 42 44 43 44 20 2D 20 49 4E 44 3A 20 54 58 54 20 BDCD - IND: TXT
01F040: 44 52 41 57 20 43 55 52 53 4F 52 20 2D 20 50 75 DRAW CURSOR - Pu
01F050: 74 20 63 75 72 73 6F 72 20 62 6C 6F 62 20 6F 6E t cursor blob on
01F060: 20 73 63 72 65 65 6E 0D 0D 20 20 20 20 20 45 6E screen.. En
01F070: 74 72 79 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D try:.. None.
01F080: 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 . Exit:..
01F090: 20 20 41 46 20 63 6F 72 72 75 70 74 2E 0D 0D 20 AF corrupt...
01F0A0: 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 Notes:..
01F0B0: 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F This indirectio
01F0C0: 6E 20 69 73 20 70 72 6F 76 69 64 65 64 20 74 6F n is provided to
01F0D0: 20 61 6C 6C 6F 77 20 20 74 68 65 20 20 75 73 65 allow the use
01F0E0: 72 20 74 6F 20 63 68 61 6E 67 65 20 74 68 65 20 r to change the
01F0F0: 66 6F 72 6D 20 6F 66 0D 20 20 20 20 20 74 68 65 form of. the
01F100: 20 63 75 72 73 6F 72 20 62 6C 6F 62 2E 20 53 65 cursor blob. Se
01F110: 65 20 54 58 54 20 20 50 4C 41 43 45 20 20 43 55 e TXT PLACE CU
01F120: 52 53 4F 52 20 20 66 6F 72 20 20 61 20 64 65 73 RSOR for a des
01F130: 63 72 69 70 74 69 6F 6E 20 6F 66 20 68 6F 77 20 cription of how
01F140: 74 68 65 0D 20 20 20 20 20 63 75 72 73 6F 72 20 the. cursor
01F150: 62 6C 6F 62 20 69 73 20 6E 6F 72 6D 61 6C 6C 79 blob is normally
01F160: 20 77 72 69 74 74 65 6E 2E 0D 0D 20 20 20 20 20 written...
01F170: 54 68 65 20 74 65 78 74 20 56 44 55 20 72 6F 75 The text VDU rou
01F180: 74 69 6E 65 73 20 20 63 61 6C 6C 20 20 74 68 69 tines call thi
01F190: 73 20 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 20 s indirection
01F1A0: 77 68 65 6E 65 76 65 72 20 74 68 65 20 63 75 72 whenever the cur
01F1B0: 73 6F 72 20 69 73 0D 20 20 20 20 20 70 6C 61 63 sor is. plac
01F1C0: 65 64 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E ed on the screen
01F1D0: 2E 20 41 6C 6C 20 20 74 68 65 20 20 74 65 78 74 . All the text
01F1E0: 20 20 56 44 55 20 20 72 6F 75 74 69 6E 65 73 20 VDU routines
01F1F0: 74 68 61 74 20 72 65 61 64 20 66 72 6F 6D 20 74 that read from t
01F200: 20 66 72 6F 6D 20 74 68 65 0D 20 20 20 20 20 73 from the. s
01F210: 63 72 65 65 6E 2E 20 54 58 54 20 52 44 20 43 48 creen. TXT RD CH
01F220: 41 52 20 72 65 6D 6F 76 65 73 20 74 68 65 20 20 AR removes the
01F230: 63 75 72 73 6F 72 20 66 72 6F 6D 20 74 68 65 20 cursor from the
01F240: 73 63 72 65 65 6E 20 62 65 66 6F 72 65 20 63 61 screen before ca
01F250: 6C 6C 69 6E 67 0D 20 20 20 20 20 74 68 69 73 20 lling. this
01F260: 69 6E 64 69 72 65 63 74 69 6F 6E 2E 0D 0D 20 20 indirection...
01F270: 20 20 20 54 68 69 73 20 72 65 61 64 20 69 73 20 This read is
01F280: 70 65 72 66 6F 72 6D 65 64 20 62 79 20 20 63 6F performed by co
01F290: 6D 70 61 72 69 6E 67 20 20 74 68 65 20 20 6D 61 mparing the ma
01F2A0: 74 72 69 78 20 20 66 6F 75 6E 64 20 6F 6E 20 74 trix found on t
01F2B0: 68 65 20 73 63 72 65 65 6E 0D 20 20 20 20 20 77 he screen. w
01F2C0: 69 74 68 20 74 68 65 20 6D 61 74 72 69 63 65 73 ith the matrices
01F2D0: 20 75 73 65 64 20 74 6F 20 67 65 6E 65 72 61 74 used to generat
01F2E0: 65 20 20 63 68 61 72 61 63 74 65 72 73 2E 20 41 e characters. A
01F2F0: 73 20 61 20 72 65 73 75 6C 74 20 63 68 61 6E 67 s a result chang
01F300: 69 6E 67 20 61 0D 20 20 20 20 20 63 68 61 72 61 ing a. chara
01F310: 63 74 65 72 20 6D 61 74 72 69 78 2C 20 63 68 61 cter matrix, cha
01F320: 6E 67 69 6E 67 20 70 65 6E 20 20 6F 72 20 20 70 nging pen or p
01F330: 61 70 65 72 20 20 69 6E 6B 73 20 20 6F 72 20 63 aper inks or c
01F340: 68 61 6E 67 69 6E 67 20 74 68 65 20 73 63 72 65 hanging the scre
01F350: 6E 0D 20 20 20 20 20 28 65 2E 67 2E 20 64 72 61 n. (e.g. dra
01F360: 77 69 6E 67 20 61 20 20 6C 69 6E 65 20 20 74 68 wing a line th
01F370: 72 6F 75 67 68 20 20 61 20 20 63 68 61 72 61 63 rough a charac
01F380: 74 65 72 29 20 20 6D 61 79 20 20 6D 61 6B 65 20 ter) may make
01F390: 74 68 65 20 63 68 61 72 61 63 74 65 72 0D 20 20 the character.
01F3A0: 20 20 20 75 6E 72 65 61 64 61 62 6C 65 2E 20 49 unreadable. I
01F3B0: 6E 20 70 61 72 74 69 63 75 6C 61 72 20 74 68 65 n particular the
01F3C0: 20 63 75 72 73 6F 72 20 62 6C 6F 62 20 20 77 69 cursor blob wi
01F3D0: 6C 6C 20 63 61 75 73 65 20 63 6F 6E 66 75 73 69 ll cause confusi
01F3E0: 6F 6E 20 61 6E 64 20 73 6F 0D 20 20 20 20 20 69 on and so. i
01F3F0: 74 20 73 68 6F 75 6C 64 20 6E 6F 74 20 62 65 20 t should not be
01F400: 68 65 0D 20 20 20 20 20 73 63 72 65 65 6E 2C 20 he. screen,
01F410: 77 72 69 74 65 20 74 6F 20 74 68 65 20 73 63 72 write to the scr
01F420: 65 65 6E 20 6F 72 20 20 63 68 61 6E 67 65 20 74 een or change t
01F430: 68 65 20 63 75 72 72 65 6E 74 20 70 6F 73 69 74 he current posit
01F440: 69 6F 6E 20 72 65 6D 6F 76 65 20 74 68 65 0D 20 ion remove the.
01F450: 20 20 20 20 63 75 72 73 6F 72 20 28 75 73 69 6E cursor (usin
01F460: 67 20 54 58 54 20 55 4E 44 52 41 57 20 20 43 55 g TXT UNDRAW CU
01F470: 52 53 4F 52 29 20 20 62 65 66 6F 72 65 20 20 70 RSOR) before p
01F480: 65 72 66 6F 72 6D 69 6E 67 20 74 68 65 69 72 20 erforming their
01F490: 61 63 74 69 6F 6E 20 61 6E 64 0D 20 20 20 20 20 action and.
01F4A0: 70 6C 61 63 65 20 69 74 20 62 61 63 6B 20 6F 6E place it back on
01F4B0: 20 74 68 65 20 20 73 63 72 65 65 6E 20 20 61 66 the screen af
01F4C0: 74 65 72 77 61 72 64 73 20 20 28 75 73 69 6E 67 terwards (using
01F4D0: 20 20 54 58 54 20 44 52 41 57 20 43 55 52 53 4F TXT DRAW CURSO
01F4E0: 52 29 2E 20 41 6E 0D 20 20 20 20 20 65 78 61 6D R). An. exam
01F4F0: 70 6C 65 20 6F 66 20 73 75 63 68 20 61 20 72 6F ple of such a ro
01F500: 75 74 69 6E 65 20 69 73 20 20 54 58 54 20 20 57 utine is TXT W
01F510: 52 20 20 43 48 41 52 20 74 68 61 74 20 77 72 69 R CHAR that wri
01F520: 74 65 73 20 61 20 63 68 61 72 61 63 74 65 72 20 tes a character
01F530: 6F 6E 0D 20 20 20 20 20 74 68 65 20 73 63 72 65 on. the scre
01F540: 65 6E 2E 0D 0D 20 20 20 20 20 54 68 69 73 20 69 en... This i
01F550: 6E 64 69 72 65 63 74 69 6F 6E 20 69 73 20 73 65 ndirection is se
01F560: 74 75 70 20 77 68 65 6E 20 54 58 54 20 49 4E 49 tup when TXT INI
01F570: 54 49 41 4C 49 53 45 20 6F 72 20 54 58 54 20 52 TIALISE or TXT R
01F580: 45 53 45 54 20 69 73 20 63 61 6C 6C 65 64 2E 0D ESET is called..
01F590: 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D . ----------
01F5A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01F5B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01F5C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01F5D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 ------------..
01F5E0: 20 20 20 26 42 44 44 30 20 2D 20 49 4E 44 3A 20 &BDD0 - IND:
01F5F0: 54 58 54 20 55 4E 44 52 41 57 20 43 55 52 53 4F TXT UNDRAW CURSO
01F600: 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 2E 0D 0D on the screen...
01F610: 20 20 20 20 20 53 70 65 63 69 61 6C 20 20 70 72 Special pr
01F620: 65 63 61 75 74 69 6F 6E 73 20 20 61 72 65 20 20 ecautions are
01F630: 74 61 6B 65 6E 20 20 20 61 67 61 69 6E 73 74 20 taken against
01F640: 20 67 65 6E 65 72 61 74 69 6E 67 20 20 69 6E 76 generating inv
01F650: 65 72 73 65 20 20 73 70 61 63 65 0D 20 20 20 20 erse space.
01F660: 20 28 63 68 61 72 61 63 74 65 72 20 26 38 66 29 (character &8f)
01F670: 2E 20 49 6E 69 74 69 61 6C 6C 79 20 74 68 65 20 . Initially the
01F680: 20 63 68 61 72 61 63 74 65 72 20 20 69 73 20 20 character is
01F690: 72 65 61 64 20 20 61 73 73 75 6D 69 6E 67 20 74 read assuming t
01F6A0: 68 61 74 20 74 68 65 0D 20 20 20 20 20 62 61 63 hat the. bac
01F6B0: 6B 67 72 6F 75 6E 64 20 74 6F 20 74 68 65 20 63 kground to the c
01F6C0: 68 61 72 61 63 74 65 72 20 77 61 73 20 77 72 69 haracter was wri
01F6D0: 74 74 65 6E 20 20 69 6E 20 20 74 68 65 20 63 75 tten in the cu
01F6E0: 72 72 65 6E 74 20 70 61 70 65 72 20 69 6E 6B 2E rrent paper ink.
01F6F0: 20 49 66 0D 20 20 20 20 20 74 68 69 73 20 66 61 If. this fa
01F700: 69 6C 73 20 74 6F 20 20 67 65 6E 65 72 61 74 65 ils to generate
01F710: 20 20 61 20 20 72 65 63 6F 67 6E 69 73 65 61 62 a recogniseab
01F720: 6C 65 20 20 63 68 61 72 61 63 74 65 72 20 20 6F le character o
01F730: 72 20 20 69 74 20 67 65 6E 65 72 61 74 65 73 0D r it generates.
01F740: 20 20 20 20 20 69 6E 76 65 72 73 65 20 73 70 61 inverse spa
01F750: 63 65 20 74 68 65 6E 20 61 6E 6F 74 68 65 72 20 ce then another
01F760: 74 72 79 20 69 73 20 20 6D 61 64 65 20 62 79 20 try is made by
01F770: 61 73 73 75 6D 69 6E 67 20 74 68 61 74 20 74 68 assuming that th
01F780: 65 20 63 68 61 72 61 63 74 65 72 0D 20 20 20 20 e character.
01F790: 20 77 61 73 20 77 72 69 74 74 65 6E 20 69 6E 20 was written in
01F7A0: 74 68 65 20 63 75 72 72 65 6E 74 20 70 65 6E 20 the current pen
01F7B0: 69 6E 6B 2E 0D 0D 20 20 20 20 20 54 68 65 20 63 ink... The c
01F7C0: 68 61 72 61 63 74 65 72 73 20 61 72 65 20 73 63 haracters are sc
01F7D0: 61 6E 6E 65 64 20 20 73 74 61 72 74 69 6E 67 20 anned starting
01F7E0: 20 77 69 74 68 20 20 30 20 20 61 6E 64 20 66 69 with 0 and fi
01F7F0: 6E 69 73 68 69 6E 67 20 77 69 74 68 20 26 46 46 nishing with &FF
01F800: 52 20 2D 20 52 65 6D 6F 76 65 20 62 6C 6F 62 20 R - Remove blob
01F810: 66 72 6F 6D 20 73 63 72 65 65 6E 2E 0D 0D 20 20 from screen...
01F820: 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 Entry:..
01F830: 4E 6F 6E 65 0D 0D 20 20 20 20 20 45 78 69 74 3A None.. Exit:
01F840: 0D 0D 20 20 20 20 20 41 46 20 63 6F 72 72 75 70 .. AF corrup
01F850: 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D t... Notes:.
01F860: 0D 20 20 20 20 20 53 65 65 20 49 4E 44 3A 20 54 . See IND: T
01F870: 58 54 20 44 52 41 57 20 43 55 52 53 4F 52 0D 0D XT DRAW CURSOR..
01F880: 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -----------
01F890: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01F8A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01F8B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01F8C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 ------------..
01F8D0: 20 20 20 26 42 44 44 33 20 2D 20 49 4E 44 3A 20 &BDD3 - IND:
01F8E0: 54 58 54 20 57 52 49 54 45 20 43 48 41 52 20 2D TXT WRITE CHAR -
01F8F0: 20 50 75 74 20 61 20 63 68 61 72 61 63 74 65 72 Put a character
01F900: 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 0D 0D on the screen..
01F910: 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 Entry:..
01F920: 20 20 41 20 3D 20 63 68 61 72 61 63 74 65 72 20 A = character
01F930: 74 6F 20 77 72 69 74 65 0D 20 20 20 20 20 48 20 to write. H
01F940: 3D 20 63 6F 6C 75 6D 6E 20 74 6F 20 77 72 69 74 = column to writ
01F950: 65 20 61 74 0D 20 20 20 20 20 4C 20 3D 20 72 6F e at. L = ro
01F960: 77 20 74 6F 20 77 72 69 74 65 20 61 74 0D 0D 20 w to write at..
01F970: 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 Exit:..
01F980: 41 46 2C 42 43 2C 44 45 2C 48 4C 20 63 6F 72 72 AF,BC,DE,HL corr
01F990: 75 70 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 upt... Notes
01F9A0: 3A 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 54 68 :........ Th
01F9B0: 65 20 63 68 61 72 61 63 74 65 72 20 70 6F 73 69 e character posi
01F9C0: 74 69 6F 6E 20 74 6F 20 77 72 69 74 65 20 20 61 tion to write a
01F9D0: 74 20 20 69 73 20 67 69 76 65 6E 20 69 6E 20 70 t is given in p
01F9E0: 68 79 73 69 63 61 6C 20 63 6F 6F 72 64 69 6E 61 hysical coordina
01F9F0: 74 65 73 2E 0D 20 20 20 20 20 69 2E 65 2E 20 72 tes.. i.e. r
01FA00: 2E 0D 20 20 20 20 20 54 68 75 73 2C 20 69 66 20 .. Thus, if
01FA10: 74 68 65 72 65 20 20 61 72 65 20 20 74 77 6F 20 there are two
01FA20: 20 70 6F 73 73 69 62 6C 65 20 20 63 68 61 72 61 possible chara
01FA30: 63 74 65 72 20 20 61 74 72 69 63 65 73 20 20 74 cter atrices t
01FA40: 68 61 74 20 6D 61 74 63 68 20 74 68 65 0D 20 20 hat match the.
01FA50: 20 20 20 73 63 72 65 65 6E 2C 20 74 68 65 20 73 screen, the s
01FA60: 6D 61 6C 6C 65 72 20 6F 66 20 74 68 65 20 74 77 maller of the tw
01FA70: 6F 20 63 68 61 72 61 63 74 65 72 20 6E 75 6D 62 o character numb
01FA80: 65 72 73 20 77 69 6C 6C 20 62 65 20 72 65 74 75 ers will be retu
01FA90: 72 6E 65 64 2E 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 rned.........
01FAA0: 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 This indirecti
01FAB0: 6F 6E 20 69 73 20 73 65 74 20 75 70 20 77 68 65 on is set up whe
01FAC0: 6E 20 54 58 54 20 49 4E 49 54 49 41 4C 49 53 45 n TXT INITIALISE
01FAD0: 20 6F 72 20 54 58 54 20 52 45 53 45 54 20 69 73 or TXT RESET is
01FAE0: 20 63 61 6C 6C 65 64 2E 0D 0D 20 20 20 20 20 2D called... -
01FAF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01FB00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01FB10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01FB20: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01FB30: 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 44 44 -----.. &BDD
01FB40: 39 20 2D 20 49 4E 44 3A 20 54 58 54 20 4F 55 54 9 - IND: TXT OUT
01FB50: 20 41 43 54 49 4F 4E 20 2D 20 4F 75 74 70 75 74 ACTION - Output
01FB60: 20 61 20 63 68 61 72 61 63 74 65 72 20 6F 72 20 a character or
01FB70: 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 0D 0D 20 20 control code..
01FB80: 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 Entry:..
01FB90: 41 20 3D 20 63 68 61 72 61 63 74 65 72 20 6F 72 A = character or
01FBA0: 20 63 6F 64 65 0D 0D 20 20 20 20 20 45 78 69 74 code.. Exit
01FBB0: 3A 0D 0D 20 20 20 20 20 41 46 2C 42 43 2C 44 45 :.. AF,BC,DE
01FBC0: 2C 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 ,HL corrupt...
01FBD0: 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 Notes:..
01FBE0: 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E This indirection
01FBF0: 20 69 73 20 63 61 6C 6C 65 64 20 62 79 20 54 58 is called by TX
01FC00: 6F 77 20 30 2C 63 6F 6C 75 6D 6E 20 30 20 69 73 ow 0,column 0 is
01FC10: 20 74 68 65 20 74 6F 70 20 6C 65 66 74 20 6F 66 the top left of
01FC20: 20 74 68 65 20 73 63 72 65 65 6E 2E 20 54 68 65 the screen. The
01FC30: 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 6E 6F 74 position is not
01FC40: 0D 20 20 20 20 20 63 68 65 63 6B 65 64 20 66 6F . checked fo
01FC50: 72 20 6C 65 67 61 6C 69 74 79 2E 0D 0D 20 20 20 r legality...
01FC60: 20 20 54 58 54 20 57 52 49 54 45 20 43 48 41 52 TXT WRITE CHAR
01FC70: 20 69 73 20 63 61 6C 6C 65 64 20 62 79 20 54 58 is called by TX
01FC80: 54 20 20 57 52 20 20 43 48 41 52 20 20 74 6F 20 T WR CHAR to
01FC90: 70 72 69 6E 74 20 61 20 63 68 61 72 61 63 74 65 print a characte
01FCA0: 72 20 6F 6E 20 74 68 65 0D 20 20 20 20 20 73 63 r on the. sc
01FCB0: 72 65 65 6E 2E 20 54 68 65 20 72 65 6D 6F 76 69 reen. The removi
01FCC0: 6E 67 20 6F 66 20 74 68 65 20 63 75 72 73 6F 72 ng of the cursor
01FCD0: 20 62 6C 6F 62 20 61 6E 64 20 74 68 65 20 63 61 blob and the ca
01FCE0: 6C 63 75 6C 61 74 69 6F 6E 20 6F 66 20 74 68 65 lculation of the
01FCF0: 20 6E 65 77 0D 20 20 20 20 20 63 75 72 72 65 6E new. curren
01FD00: 74 20 70 6F 73 69 74 69 6F 6E 20 61 72 65 20 70 t position are p
01FD10: 65 72 66 6F 72 6D 65 64 20 62 79 20 20 54 58 54 erformed by TXT
01FD20: 20 20 57 52 20 20 43 48 41 52 20 20 61 6E 64 20 WR CHAR and
01FD30: 6E 6F 74 20 62 79 20 54 58 54 20 57 52 49 54 45 not by TXT WRITE
01FD40: 0D 20 20 20 20 20 43 48 41 52 2E 0D 0D 20 20 20 . CHAR...
01FD50: 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 This indirecti
01FD60: 6F 6E 20 69 73 20 73 65 74 20 75 70 20 77 68 65 on is set up whe
01FD70: 6E 20 54 58 54 20 49 4E 49 54 49 41 4C 49 53 45 n TXT INITIALISE
01FD80: 20 6F 72 20 54 58 54 20 52 45 53 45 54 20 69 73 or TXT RESET is
01FD90: 20 63 61 6C 6C 65 64 0D 0D 20 20 20 20 20 2D 2D called.. --
01FDA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01FDB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01FDC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01FDD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
01FDE0: 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 44 44 36 ----.. &BDD6
01FDF0: 20 2D 20 49 4E 44 3A 20 54 58 54 20 55 4E 57 52 - IND: TXT UNWR
01FE00: 54 20 20 4F 55 54 50 55 54 20 20 74 6F 20 20 64 T OUTPUT to d
01FE10: 6F 20 74 68 65 20 77 6F 72 6B 20 6F 66 20 70 72 o the work of pr
01FE20: 69 6E 74 69 6E 67 0D 20 20 20 20 20 63 68 61 72 inting. char
01FE30: 61 63 74 65 72 73 20 6F 72 20 6F 62 65 79 69 6E acters or obeyin
01FE40: 67 20 74 68 65 20 63 6F 6E 74 72 6F 6C 20 63 6F g the control co
01FE50: 64 65 73 2E 20 20 49 74 20 20 69 73 20 70 72 6F des. It is pro
01FE60: 76 69 64 65 64 20 74 6F 20 61 6C 6C 6F 77 20 74 vided to allow t
01FE70: 68 65 0D 20 20 20 20 20 75 73 65 72 20 74 6F 20 he. user to
01FE80: 63 68 61 6E 67 65 20 74 68 65 20 6D 65 74 68 6F change the metho
01FE90: 64 20 6F 66 20 64 65 61 6C 69 6E 67 20 77 69 74 d of dealing wit
01FEA0: 68 20 63 68 61 72 61 63 74 65 72 73 20 61 6E 64 h characters and
01FEB0: 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 73 0D 20 control codes.
01FEC0: 20 20 20 20 6F 72 20 74 6F 20 61 6C 6C 6F 77 20 or to allow
01FED0: 74 68 65 20 75 73 65 72 20 74 6F 20 72 65 64 69 the user to redi
01FEE0: 72 65 63 74 20 20 6F 75 74 70 75 74 20 28 74 6F rect output (to
01FEF0: 20 74 68 65 20 70 72 69 6E 74 65 72 20 66 6F 72 the printer for
01FF00: 20 65 78 61 6D 70 6C 65 29 2E 0D 20 20 20 20 20 example)..
01FF10: 54 58 54 20 4F 55 54 50 55 54 20 6D 65 72 65 6C TXT OUTPUT merel
01FF20: 79 20 70 72 65 73 65 72 76 65 73 20 74 68 65 20 y preserves the
01FF30: 72 65 67 69 73 74 65 72 73 20 20 61 72 6F 75 6E registers aroun
01FF40: 64 20 20 74 68 65 20 63 61 6C 6C 20 6F 66 20 54 d the call of T
01FF50: 58 54 20 4F 55 54 0D 20 20 20 20 20 41 43 54 49 XT OUT. ACTI
01FF60: 4F 4E 2E 0D 0D 20 20 20 20 20 43 6F 6E 74 72 6F ON... Contro
01FF70: 6C 20 63 6F 64 65 73 20 6D 61 79 20 74 61 6B 65 l codes may take
01FF80: 20 75 70 20 20 74 6F 20 20 39 20 20 70 61 72 61 up to 9 para
01FF90: 6D 65 74 65 72 73 2E 20 54 68 65 73 65 20 61 72 meters. These ar
01FFA0: 65 20 74 68 65 20 63 68 61 72 61 63 74 65 72 73 e the characters
01FFB0: 0D 20 20 20 20 20 73 65 6E 74 20 66 6F 6C 6C 6F . sent follo
01FFC0: 77 69 6E 67 20 74 68 65 20 20 69 6E 69 74 69 61 wing the initia
01FFD0: 6C 20 20 63 6F 6E 74 72 6F 6C 20 20 63 6F 64 65 l control code
01FFE0: 2E 20 20 54 68 65 20 20 63 68 61 72 61 63 74 65 . The characte
01FFF0: 72 73 20 20 73 65 6E 74 20 61 72 65 0D 20 20 20 rs sent are.
020000: 49 54 45 20 2D 20 52 65 61 64 20 61 20 63 68 61 ITE - Read a cha
020010: 72 61 63 74 65 72 20 66 72 6F 6D 20 74 68 65 20 racter from the
020020: 73 63 72 65 65 6E 2E 0D 0D 20 20 20 20 20 45 6E screen... En
020030: 74 72 79 3A 0D 0D 20 20 20 20 20 48 20 3D 20 63 try:.. H = c
020040: 6F 6C 75 6D 6E 0D 20 20 20 20 20 4C 20 3D 20 72 olumn. L = r
020050: 6F 77 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D ow.. Exit:..
020060: 20 20 20 20 20 49 66 20 61 20 72 65 61 64 61 62 If a readab
020070: 6C 65 20 63 68 61 72 61 63 74 65 72 20 77 61 73 le character was
020080: 20 66 6F 75 6E 64 3A 0D 0D 20 20 20 20 20 43 61 found:.. Ca
020090: 72 72 79 20 74 72 75 65 2E 0D 20 20 20 20 20 41 rry true.. A
0200A0: 20 3D 20 63 68 61 72 61 63 74 65 72 20 72 65 61 = character rea
0200B0: 64 0D 0D 20 20 20 20 20 49 66 20 6E 6F 20 72 65 d.. If no re
0200C0: 63 6F 67 6E 69 73 61 62 6C 65 20 63 68 61 72 61 cognisable chara
0200D0: 63 74 65 72 20 77 61 73 20 66 6F 75 6E 64 3A 0D cter was found:.
0200E0: 0D 20 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 . Carry fals
0200F0: 65 2E 20 41 20 3D 20 7A 65 72 6F 0D 0D 20 20 20 e. A = zero..
020100: 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 Notes:.. T
020110: 68 65 20 63 68 61 72 61 63 74 65 72 20 70 6F 73 he character pos
020120: 69 74 69 6F 6E 20 74 6F 20 77 72 69 74 65 20 20 ition to write
020130: 61 74 20 20 69 73 20 67 69 76 65 6E 20 69 6E 20 at is given in
020140: 70 68 79 73 69 63 61 6C 20 63 6F 6F 72 64 69 6E physical coordin
020150: 61 74 65 73 2E 0D 20 20 20 20 20 69 2E 65 2E 20 ates.. i.e.
020160: 72 6F 77 20 30 2C 63 6F 6C 75 6D 6E 20 30 20 69 row 0,column 0 i
020170: 73 20 74 68 65 20 74 6F 70 20 6C 65 66 74 20 6F s the top left o
020180: 66 20 74 68 65 20 73 63 72 65 65 6E 2E 20 54 68 f the screen. Th
020190: 65 20 70 6F 73 69 74 69 6F 6E 20 69 73 20 6E 6F e position is no
0201A0: 74 0D 20 20 20 20 20 63 68 65 63 6B 65 64 20 66 t. checked f
0201B0: 6F 72 20 6C 65 67 61 6C 69 74 79 2E 0D 0D 20 20 or legality...
0201C0: 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 This indirect
0201D0: 69 6F 6E 20 69 73 20 63 61 6C 6C 65 64 20 62 79 ion is called by
0201E0: 20 54 58 54 20 52 44 20 43 48 41 52 20 74 6F 20 TXT RD CHAR to
0201F0: 72 65 61 64 20 61 20 63 68 61 72 61 63 74 65 72 read a character
020200: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
020210: 1B 00 01 00 02 09 4E E5 1B 00 C1 02 00 00 00 02 ......N.........
020220: 1B 00 C6 02 00 00 00 02 1B 00 C2 02 00 00 00 02 ................
020230: 1B 00 C7 02 00 00 00 02 1B 00 C3 02 00 00 00 02 ................
020240: 1B 00 C8 02 00 00 00 02 1B 00 C4 02 00 00 00 02 ................
020250: 1B 00 C9 02 00 00 00 02 1B 00 C5 02 00 00 00 02 ................
020260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020300: 20 20 73 74 6F 72 65 64 20 69 6E 20 61 20 62 75 stored in a bu
020310: 66 66 65 72 20 75 6E 74 69 6C 20 73 75 66 66 69 ffer until suffi
020320: 63 69 65 6E 74 20 68 61 76 65 20 20 62 65 65 6E cient have been
020330: 20 72 65 63 69 65 76 65 64 20 74 6F 20 6D 61 6B recieved to mak
020340: 65 20 75 70 20 61 6C 6C 0D 20 20 20 20 20 74 68 e up all. th
020350: 65 20 72 65 71 75 69 72 65 64 20 70 61 72 61 6D e required param
020360: 65 74 65 72 73 2E 20 54 68 65 20 63 6F 6E 74 72 eters. The contr
020370: 6F 6C 20 20 63 6F 64 65 20 20 62 75 66 66 65 72 ol code buffer
020380: 20 69 73 20 6F 6E 6C 79 20 6C 6F 6E 67 20 65 6E is only long en
020390: 6F 75 67 68 0D 20 20 20 20 20 74 6F 20 61 63 63 ough. to acc
0203A0: 65 70 74 20 39 20 70 61 72 61 6D 65 74 65 72 20 ept 9 parameter
0203B0: 63 68 61 72 61 63 74 65 72 73 2E 0D 0D 20 20 20 characters...
0203C0: 20 20 54 68 65 72 65 20 69 73 20 6F 6E 6C 79 20 There is only
0203D0: 6F 6E 65 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 one control code
0203E0: 20 62 75 66 66 65 72 20 20 77 68 69 63 68 20 69 buffer which i
0203F0: 73 20 73 68 61 72 65 64 20 62 65 74 77 65 65 6E s shared between
020400: 20 61 6C 6C 20 74 68 65 0D 20 20 20 20 20 73 74 all the. st
020410: 72 65 61 6D 73 2E 49 74 20 69 73 2C 20 74 68 65 reams.It is, the
020420: 72 65 66 6F 72 65 2C 20 70 6F 73 73 69 62 6C 65 refore, possible
020430: 20 74 6F 20 67 65 74 20 75 6E 70 72 65 64 69 63 to get unpredic
020440: 74 61 62 6C 65 20 72 65 73 75 6C 74 73 20 69 66 table results if
020450: 20 74 68 65 0D 20 20 20 20 20 6F 75 74 70 75 74 the. output
020460: 20 73 74 72 65 61 6D 20 69 73 20 63 68 61 6E 67 stream is chang
020470: 65 64 20 70 61 72 74 20 20 6F 66 20 20 74 68 65 ed part of the
020480: 20 20 77 61 79 20 20 74 68 72 6F 75 67 68 20 73 way through s
020490: 65 6E 64 69 6E 67 20 61 20 63 6F 6E 74 72 6F 6C ending a control
0204A0: 0D 20 20 20 20 20 63 6F 64 65 20 73 65 71 75 65 . code seque
0204B0: 6E 63 65 2E 0D 0D 20 20 20 20 20 49 66 20 74 68 nce... If th
0204C0: 65 20 56 44 55 20 69 73 20 20 64 69 73 61 62 6C e VDU is disabl
0204D0: 65 64 20 20 74 68 65 6E 20 20 6E 6F 20 20 63 68 ed then no ch
0204E0: 61 72 61 63 74 65 72 73 20 20 77 69 6C 6C 20 20 aracters will
0204F0: 62 65 20 70 72 69 6E 74 65 64 20 6F 6E 20 74 68 be printed on th
020500: 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 is indirection i
020510: 73 20 75 73 65 64 20 62 79 20 47 52 41 20 54 45 s used by GRA TE
020520: 53 54 20 52 45 4C 41 54 49 56 45 20 61 6E 64 20 ST RELATIVE and
020530: 47 52 41 20 54 45 53 54 20 41 42 53 4F 4C 55 54 GRA TEST ABSOLUT
020540: 45 20 74 6F 0D 20 20 20 20 20 74 65 73 74 20 74 E to. test t
020550: 68 65 20 70 6F 69 6E 74 20 72 65 71 75 65 73 74 he point request
020560: 65 64 2E 20 49 74 20 69 73 20 20 70 72 6F 76 69 ed. It is provi
020570: 64 65 64 20 20 74 6F 20 61 6C 6C 6F 77 20 74 68 ded to allow th
020580: 65 20 75 73 65 72 20 74 6F 20 63 68 61 6E 67 65 e user to change
020590: 0D 20 20 20 20 20 74 68 65 20 6D 65 74 68 6F 64 . the method
0205A0: 20 20 66 6F 72 20 20 74 65 73 74 69 6E 67 20 20 for testing
0205B0: 28 63 6F 6D 70 61 72 69 6E 67 20 20 77 69 74 68 (comparing with
0205C0: 20 20 74 68 65 20 20 63 75 72 72 65 6E 74 20 20 the current
0205D0: 70 65 6E 20 20 69 6E 6B 20 66 6F 72 0D 20 20 20 pen ink for.
0205E0: 20 20 65 78 61 6D 70 6C 65 29 2E 2E 20 20 47 52 example).. GR
0205F0: 41 20 20 54 45 53 54 20 20 52 45 4C 41 54 49 56 A TEST RELATIV
020600: 45 20 20 20 63 6F 6E 76 65 72 74 73 20 20 20 66 E converts f
020610: 72 6F 6D 20 20 20 72 65 6C 61 74 69 76 65 20 20 rom relative
020620: 74 6F 20 20 75 73 65 72 0D 20 20 20 20 20 63 6F to user. co
020630: 6F 72 64 69 6E 61 74 65 73 20 61 6E 64 20 74 68 ordinates and th
020640: 65 6E 20 63 61 6C 6C 73 20 74 68 69 73 20 20 69 en calls this i
020650: 6E 64 69 72 65 63 74 69 6F 6E 2E 20 20 47 52 41 ndirection. GRA
020660: 20 54 45 53 54 20 41 42 53 4F 4C 55 54 45 20 63 TEST ABSOLUTE c
020670: 61 6C 6C 73 0D 20 20 20 20 20 74 68 69 73 20 69 alls. this i
020680: 6E 64 69 72 65 63 74 69 6F 6E 20 64 69 72 65 63 ndirection direc
020690: 74 6C 79 2E 0D 0D 20 20 20 20 20 54 6F 20 74 65 tly... To te
0206A0: 73 74 20 74 68 65 20 69 6E 6B 20 6F 66 20 61 20 st the ink of a
0206B0: 70 6F 69 6E 74 20 20 69 6E 73 69 64 65 20 74 68 point inside th
0206C0: 65 20 77 69 6E 64 6F 77 20 74 68 65 20 53 43 52 e window the SCR
0206D0: 20 52 45 41 44 20 69 6E 64 69 72 65 63 74 69 6F READ indirectio
0206E0: 6E 0D 20 20 20 20 20 69 73 20 75 73 65 64 2E 0D n. is used..
0206F0: 0D 20 20 20 20 20 54 68 69 73 20 69 6E 64 69 72 . This indir
020700: 65 0D 20 20 20 20 20 73 63 72 65 65 6E 2E 20 49 e. screen. I
020710: 6E 20 56 31 2E 31 20 66 69 72 6D 77 61 72 65 20 n V1.1 firmware
020720: 63 6F 6E 74 72 6F 6C 20 20 63 6F 64 65 73 20 20 control codes
020730: 74 68 61 74 20 61 72 65 20 73 70 72 65 63 69 61 that are sprecia
020740: 6C 6C 79 20 6D 61 72 6B 65 64 20 69 6E 0D 20 20 lly marked in.
020750: 20 20 20 74 68 65 20 63 6F 6E 74 72 6F 6C 20 63 the control c
020760: 6F 64 65 20 74 61 62 6C 65 20 77 69 6C 6C 20 20 ode table will
020770: 6E 6F 74 20 20 62 65 20 20 6F 62 65 79 65 64 20 not be obeyed
020780: 20 69 66 20 20 74 68 65 20 56 44 55 20 69 73 20 if the VDU is
020790: 64 69 73 61 62 6C 65 64 2E 0D 20 20 20 20 20 4F disabled.. O
0207A0: 74 68 65 72 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 ther control cod
0207B0: 65 73 20 61 6E 64 20 61 6C 6C 20 20 63 6F 6E 74 es and all cont
0207C0: 72 6F 6C 20 20 63 6F 64 65 73 20 20 69 6E 20 20 rol codes in
0207D0: 56 31 2E 30 20 66 69 72 6D 77 61 72 65 20 77 69 V1.0 firmware wi
0207E0: 6C 6C 20 62 65 0D 20 20 20 20 20 6F 62 65 79 65 ll be. obeye
0207F0: 64 2E 0D 0D 20 20 20 20 20 49 66 20 74 68 65 20 d... If the
020800: 67 72 61 70 68 69 63 73 20 63 68 61 72 61 63 74 graphics charact
020810: 65 72 20 77 72 69 74 65 20 20 6D 6F 64 65 20 20 er write mode
020820: 69 73 20 20 65 6E 61 62 6C 65 64 20 74 68 65 6E is enabled then
020830: 20 61 6C 6C 20 63 68 61 72 61 63 74 65 72 73 0D all characters.
020840: 20 20 20 20 20 61 6E 64 20 63 6F 6E 74 72 6F 6C and control
020850: 20 63 6F 64 65 73 20 61 72 65 20 70 72 69 6E 74 codes are print
020860: 65 64 20 75 73 69 6E 67 20 74 68 65 20 47 72 61 ed using the Gra
020870: 70 68 69 63 73 20 56 44 55 20 28 73 65 65 20 47 phics VDU (see G
020880: 52 41 20 57 52 20 43 48 41 52 29 0D 20 20 20 20 RA WR CHAR).
020890: 20 61 6E 64 20 61 72 65 20 6E 6F 74 20 6F 62 65 and are not obe
0208A0: 79 65 64 2E 20 4E 6F 72 6D 61 6C 6C 79 20 20 63 yed. Normally c
0208B0: 68 61 72 61 63 74 65 72 73 20 20 61 72 65 20 20 haracters are
0208C0: 77 72 69 74 74 65 6E 20 62 79 20 74 68 65 20 74 written by the t
0208D0: 65 78 74 20 56 44 55 0D 20 20 20 20 20 28 73 65 ext VDU. (se
0208E0: 65 20 54 58 54 20 57 52 20 43 48 41 52 29 2E 0D e TXT WR CHAR)..
0208F0: 0D 20 20 20 20 20 54 68 69 73 20 69 6E 64 69 72 . This indir
020900: 65 63 74 69 6F 6E 20 69 73 20 73 65 74 20 75 70 ection is set up
020910: 20 77 68 65 6E 20 47 52 41 20 49 4E 49 54 49 41 when GRA INITIA
020920: 4C 49 53 45 20 6F 72 20 47 52 41 20 52 45 53 45 LISE or GRA RESE
020930: 54 20 69 73 20 63 61 6C 6C 65 64 2E 0D 0D 20 20 T is called...
020940: 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -------------
020950: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
020960: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
020970: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
020980: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 ---------..
020990: 26 42 44 45 32 20 2D 20 49 4E 44 3A 20 47 52 41 &BDE2 - IND: GRA
0209A0: 20 4C 49 4E 45 20 2D 20 44 72 61 77 20 61 20 6C LINE - Draw a l
0209B0: 69 6E 65 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A ine.. Entry:
0209C0: 0D 0D 20 20 20 20 20 44 45 20 3D 20 75 73 65 72 .. DE = user
0209D0: 20 58 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 6F X coordinates o
0209E0: 66 20 65 6E 64 70 6F 69 6E 74 0D 20 20 20 20 20 f endpoint.
0209F0: 48 4C 20 3D 20 75 73 65 72 20 59 20 63 6F 6F 72 HL = user Y coor
020A00: 64 69 6E 61 74 65 73 20 6F 66 20 65 6E 64 70 6F dinates of endpo
020A10: 69 6E 74 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D int.. Exit:.
020A20: 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 41 46 2C 42 ....... AF,B
020A30: 43 2C 44 45 2C 48 4C 20 63 6F 72 72 75 70 74 2E C,DE,HL corrupt.
020A40: 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 .. Notes:..
020A50: 20 20 20 20 54 68 65 20 70 6F 73 69 74 69 6F 6E The position
020A60: 20 6F 66 20 20 74 68 65 20 20 65 6E 64 70 6F 69 of the endpoi
020A70: 6E 74 20 20 69 73 20 20 67 69 76 65 6E 20 20 69 nt is given i
020A80: 6E 20 20 75 73 65 72 20 20 63 6F 6F 72 64 69 6E n user coordin
020A90: 61 74 65 73 2E 20 69 2E 65 2E 0D 20 20 20 20 20 ates. i.e..
020AA0: 72 65 6C 61 74 69 76 65 20 74 6F 20 74 68 65 20 relative to the
020AB0: 75 73 65 72 20 6F 72 69 67 69 6E 0D 0D 20 20 20 user origin..
020AC0: 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 This indirecti
020AD0: 6F 6E 20 69 73 20 75 73 65 64 20 62 79 20 47 52 on is used by GR
020AE0: 41 20 4C 49 4E 45 20 52 45 4C 41 54 49 56 45 20 A LINE RELATIVE
020AF0: 61 6E 64 20 47 52 41 20 4C 49 4E 45 20 41 42 53 and GRA LINE ABS
020B00: 65 63 74 69 6F 6E 20 69 73 20 73 65 74 20 75 70 ection is set up
020B10: 20 77 68 65 6E 20 54 58 54 20 49 4E 49 54 49 41 when TXT INITIA
020B20: 4C 49 53 45 20 6F 72 20 54 58 54 20 52 45 53 45 LISE or TXT RESE
020B30: 54 20 69 73 20 63 61 6C 6C 65 64 2E 0D 0D 20 20 T is called...
020B40: 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -------------
020B50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
020B60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
020B70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
020B80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 ---------..
020B90: 26 42 44 44 43 20 2D 20 49 4E 44 3A 20 47 52 41 &BDDC - IND: GRA
020BA0: 20 50 4C 4F 54 20 2D 20 50 6C 6F 74 20 61 20 70 PLOT - Plot a p
020BB0: 6F 69 6E 74 0D 0D 20 20 20 20 20 45 6E 74 72 79 oint.. Entry
020BC0: 3A 0D 0D 20 20 20 20 20 44 45 20 3D 20 75 73 65 :.. DE = use
020BD0: 72 20 58 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F r X coordinate o
020BE0: 66 20 70 6F 69 6E 74 20 74 6F 20 70 6C 6F 74 0D f point to plot.
020BF0: 20 20 20 20 20 48 4C 20 3D 20 75 73 65 72 20 59 HL = user Y
020C00: 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F 66 20 70 coordinate of p
020C10: 6F 69 6E 74 20 74 6F 20 70 6C 6F 74 0D 0D 20 20 oint to plot..
020C20: 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 Exit:.. A
020C30: 46 2C 42 43 2C 44 45 2C 48 4C 20 63 6F 72 72 75 F,BC,DE,HL corru
020C40: 70 74 2E 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 pt.........
020C50: 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 68 65 Notes:.. The
020C60: 20 70 6F 73 69 74 69 6F 6E 20 6F 66 20 74 68 65 position of the
020C70: 20 70 6F 69 6E 74 20 69 73 20 20 67 69 76 65 6E point is given
020C80: 20 69 6E 20 75 73 65 72 20 63 6F 6F 72 64 69 6E in user coordin
020C90: 61 74 65 73 2E 20 69 2E 65 2E 20 72 65 6C 61 74 ates. i.e. relat
020CA0: 69 76 65 0D 20 20 20 20 20 74 6F 20 74 68 65 20 ive. to the
020CB0: 75 73 65 72 20 6F 72 69 67 69 6E 2E 0D 0D 20 20 user origin...
020CC0: 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 This indirect
020CD0: 69 6F 6E 20 69 73 20 63 61 6C 6C 65 64 20 62 79 ion is called by
020CE0: 20 47 52 41 20 20 50 4C 4F 54 20 52 45 4C 41 54 GRA PLOT RELAT
020CF0: 49 56 45 20 61 6E 64 20 47 52 41 20 50 4C 4F 54 IVE and GRA PLOT
020D00: 4F 4C 55 54 45 20 74 6F 0D 20 20 20 20 20 64 72 OLUTE to. dr
020D10: 61 77 20 74 68 65 20 6C 69 6E 65 20 72 65 71 75 aw the line requ
020D20: 65 73 74 65 64 2E 20 49 74 20 69 73 20 20 70 72 ested. It is pr
020D30: 6F 76 69 64 65 64 20 20 74 6F 20 20 61 6C 6C 6F ovided to allo
020D40: 77 20 74 68 65 20 75 73 65 72 20 74 6F 20 63 68 w the user to ch
020D50: 61 6E 67 65 0D 20 20 20 20 20 74 68 65 20 6D 65 ange. the me
020D60: 74 68 6F 64 20 66 6F 72 20 6C 69 6E 65 20 64 72 thod for line dr
020D70: 61 77 69 6E 67 2E 20 47 52 41 20 20 4C 49 4E 45 awing. GRA LINE
020D80: 20 52 45 4C 41 54 49 56 45 20 63 6F 6E 76 65 72 RELATIVE conver
020D90: 74 73 20 66 72 6F 6D 20 72 65 6C 61 74 69 76 65 ts from relative
020DA0: 0D 20 20 20 20 20 74 6F 20 75 73 65 72 20 63 6F . to user co
020DB0: 6F 72 64 69 6E 61 74 65 73 20 61 6E 64 20 74 68 ordinates and th
020DC0: 65 6E 20 63 61 6C 6C 73 20 74 68 69 73 20 69 6E en calls this in
020DD0: 64 69 72 65 63 74 69 6F 6E 2E 20 47 52 41 20 4C direction. GRA L
020DE0: 49 4E 45 20 41 42 53 4F 4C 55 54 45 0D 20 20 20 INE ABSOLUTE.
020DF0: 20 20 63 61 6C 6C 73 20 74 68 69 73 20 69 6E 64 calls this ind
020E00: 69 72 65 63 74 69 6F 6E 20 69 6D 6D 65 64 69 61 irection immedia
020E10: 74 6C 79 2E 0D 0D 20 20 20 20 20 54 68 65 20 6C tly... The l
020E20: 69 6E 65 20 69 73 20 73 70 6C 69 74 20 75 70 20 ine is split up
020E30: 20 69 6E 74 6F 20 20 68 6F 72 69 7A 6F 6E 74 61 into horizonta
020E40: 6C 20 20 6F 72 20 20 76 65 72 74 69 63 61 6C 20 l or vertical
020E50: 73 65 63 74 69 6F 6E 73 20 74 68 61 74 20 61 72 sections that ar
020E60: 65 0D 20 20 20 20 20 64 72 61 77 6E 20 73 65 70 e. drawn sep
020E70: 61 72 61 74 65 6C 79 20 28 73 65 65 20 53 43 52 arately (see SCR
020E80: 20 48 4F 52 49 5A 4F 4E 54 41 4C 20 61 6E 64 20 HORIZONTAL and
020E90: 20 53 43 52 20 56 45 52 54 49 43 41 4C 29 2E 20 SCR VERTICAL).
020EA0: 54 68 65 20 53 43 52 20 57 52 49 54 45 0D 20 20 The SCR WRITE.
020EB0: 20 20 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 indirection i
020EC0: 73 20 63 61 6C 6C 65 64 20 74 6F 20 20 77 72 69 s called to wri
020ED0: 74 65 20 20 74 68 65 20 20 70 6F 69 6E 74 73 20 te the points
020EE0: 20 69 6E 20 20 74 68 65 73 65 20 73 65 63 74 69 in these secti
020EF0: 6F 6E 73 2E 20 54 68 69 73 0D 20 20 20 20 20 6D ons. This. m
020F00: 20 41 42 53 4F 4C 49 54 45 0D 20 20 20 20 20 74 ABSOLITE. t
020F10: 6F 20 70 6C 6F 74 20 74 68 65 20 70 6F 69 6E 74 o plot the point
020F20: 20 20 72 65 71 75 65 73 74 65 64 2E 20 20 49 74 requested. It
020F30: 20 20 69 73 20 20 70 72 6F 76 69 64 65 64 20 20 is provided
020F40: 74 6F 20 20 61 6C 6C 6F 77 20 74 68 65 20 75 73 to allow the us
020F50: 65 72 20 74 6F 0D 20 20 20 20 20 63 68 61 6E 67 er to. chang
020F60: 65 20 74 68 65 20 6D 65 74 68 6F 64 20 20 66 6F e the method fo
020F70: 72 20 20 70 6C 6F 74 74 69 6E 67 20 20 28 74 6F r plotting (to
020F80: 20 20 6F 75 74 70 75 74 20 20 74 6F 20 20 61 6E output to an
020F90: 20 20 58 2D 59 20 70 6C 6F 74 74 65 72 20 66 6F X-Y plotter fo
020FA0: 72 0D 20 20 20 20 20 65 78 61 6D 70 6C 65 29 2E r. example).
020FB0: 20 47 52 41 20 50 4C 4F 54 20 52 45 4C 41 54 49 GRA PLOT RELATI
020FC0: 56 45 20 63 6F 6E 76 65 72 74 73 20 66 72 6F 6D VE converts from
020FD0: 20 72 65 6C 61 74 69 76 65 20 74 6F 20 75 73 65 relative to use
020FE0: 72 20 63 6F 6F 72 64 69 6E 61 74 65 73 0D 20 20 r coordinates.
020FF0: 20 20 20 61 6E 64 20 20 74 68 65 6E 20 20 63 61 and then ca
021000: 6C 6C 73 20 20 74 68 69 73 20 20 69 6E 64 69 72 lls this indir
021010: 65 63 74 69 6F 6E 2E 20 20 47 52 41 20 20 50 4C ection. GRA PL
021020: 4F 54 20 20 41 42 53 4F 4C 55 54 45 20 20 63 61 OT ABSOLUTE ca
021030: 6C 6C 73 20 20 74 68 69 73 0D 20 20 20 20 20 69 lls this. i
021040: 6E 64 69 72 65 63 74 69 6F 6E 20 69 6D 6D 65 64 ndirection immed
021050: 69 61 74 6C 79 2E 0D 0D 20 20 20 20 20 54 6F 20 iatly... To
021060: 77 72 69 74 65 20 74 68 65 20 70 6F 69 6E 74 20 write the point
021070: 6F 6E 20 74 68 65 20 20 73 63 72 65 65 6E 20 20 on the screen
021080: 74 68 65 20 20 53 43 52 20 57 52 49 54 45 20 69 the SCR WRITE i
021090: 6E 64 69 72 65 63 74 69 6F 6E 20 69 73 20 75 73 ndirection is us
0210A0: 65 64 2E 0D 20 20 20 20 20 54 68 75 73 20 74 68 ed.. Thus th
0210B0: 65 20 70 6F 69 6E 74 20 69 73 20 70 6C 6F 74 74 e point is plott
0210C0: 65 64 20 75 73 69 6E 67 20 74 68 65 20 63 75 72 ed using the cur
0210D0: 72 65 6E 74 20 67 72 61 70 68 69 63 73 20 77 72 rent graphics wr
0210E0: 69 74 65 20 6D 6F 64 65 2E 0D 0D 20 20 20 20 20 ite mode...
0210F0: 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E This indirection
021100: 65 61 6E 73 20 74 68 61 74 20 74 68 65 20 6C 69 eans that the li
021110: 6E 65 20 69 73 20 70 6C 6F 74 74 65 64 20 75 73 ne is plotted us
021120: 69 6E 67 20 74 68 65 20 63 75 72 72 65 6E 74 20 ing the current
021130: 67 72 61 70 68 69 63 73 20 77 72 69 74 65 20 6D graphics write m
021140: 6F 64 65 2E 0D 0D 20 20 20 20 20 49 6E 20 56 31 ode... In V1
021150: 2E 30 20 66 69 72 6D 77 61 72 65 20 74 68 65 20 .0 firmware the
021160: 6C 69 6E 65 20 20 69 73 20 20 70 6C 6F 74 74 65 line is plotte
021170: 64 20 20 69 6E 20 20 74 68 65 20 20 63 75 72 72 d in the curr
021180: 65 6E 74 20 70 65 6E 20 69 6E 6B 2E 20 56 31 2E ent pen ink. V1.
021190: 31 0D 20 20 20 20 20 66 69 72 6D 77 61 72 65 20 1. firmware
0211A0: 73 65 74 74 69 6E 67 20 6F 66 20 74 68 65 20 6C setting of the l
0211B0: 69 6E 65 20 20 6D 61 73 6B 20 20 64 65 74 65 72 ine mask deter
0211C0: 6D 69 6E 65 73 20 20 68 6F 77 20 70 69 78 65 6C mines how pixel
0211D0: 73 20 6F 6E 20 74 68 65 20 6C 69 6E 65 0D 20 20 s on the line.
0211E0: 20 20 20 77 69 6C 6C 20 62 65 20 20 70 6C 6F 74 will be plot
0211F0: 74 65 64 2E 20 20 54 68 65 20 20 6C 69 6E 65 20 ted. The line
021200: 20 6D 61 73 6B 20 20 69 73 20 20 62 69 74 20 20 mask is bit
021210: 73 69 67 6E 69 66 69 63 61 6E 74 20 20 61 6E 64 significant and
021220: 20 20 69 73 20 75 73 65 64 0D 20 20 20 20 20 72 is used. r
021230: 65 70 65 61 74 65 64 6C 79 20 69 6E 20 74 68 65 epeatedly in the
021240: 20 6F 72 64 65 72 20 62 69 74 20 37 2C 62 69 74 order bit 7,bit
021250: 20 36 20 20 64 6F 77 6E 20 20 74 6F 20 20 62 69 6 down to bi
021260: 74 20 30 20 66 6F 72 20 65 61 63 68 20 70 69 78 t 0 for each pix
021270: 65 6C 20 69 6E 0D 20 20 20 20 20 74 68 65 20 6C el in. the l
021280: 69 6E 65 2E 20 49 66 20 74 68 65 20 62 69 74 20 ine. If the bit
021290: 69 73 20 6F 6E 65 20 74 68 65 6E 20 20 74 68 65 is one then the
0212A0: 20 70 69 78 65 6C 20 69 73 20 70 6C 6F 74 74 65 pixel is plotte
0212B0: 64 20 69 6E 20 74 68 65 20 67 72 61 70 68 69 63 d in the graphic
0212C0: 73 0D 20 20 20 20 20 70 65 6E 20 69 6E 6B 2E 20 s. pen ink.
0212D0: 49 66 20 74 68 65 20 62 69 74 20 20 69 73 20 20 If the bit is
0212E0: 7A 65 72 6F 20 20 74 68 65 6E 20 20 74 68 65 20 zero then the
0212F0: 20 61 63 74 69 6F 6E 20 20 74 61 6B 65 6E 20 64 action taken d
021300: 20 69 73 20 73 65 74 20 75 70 20 77 68 65 6E 20 is set up when
021310: 47 52 41 20 49 4E 49 54 49 41 4C 49 53 45 20 6F GRA INITIALISE o
021320: 72 20 47 52 41 20 52 45 53 45 54 20 69 73 20 63 r GRA RESET is c
021330: 61 6C 6C 65 64 2E 0D 0D 20 20 20 20 20 2D 2D 2D alled... ---
021340: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021350: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021360: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021370: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021380: 2D 2D 2D 2D 0D 0D 0D 20 20 20 20 20 26 42 44 44 ----... &BDD
021390: 46 20 2D 20 49 4E 44 3A 20 47 52 41 20 54 45 53 F - IND: GRA TES
0213A0: 54 20 2D 20 54 65 73 74 20 61 20 70 6F 69 6E 74 T - Test a point
0213B0: 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 .. Entry:..
0213C0: 20 20 20 20 44 45 20 3D 20 75 73 65 72 20 58 20 DE = user X
0213D0: 63 6F 6F 72 64 69 6E 61 74 65 20 6F 66 20 74 68 coordinate of th
0213E0: 65 20 70 6F 69 6E 74 20 74 6F 20 74 65 73 74 0D e point to test.
0213F0: 20 20 20 20 20 48 4C 20 3D 20 75 73 65 72 20 59 HL = user Y
021400: 20 63 6F 6F 72 64 69 6E 61 74 65 20 6F 66 20 74 coordinate of t
021410: 68 65 20 70 6F 69 6E 74 20 74 6F 20 74 65 73 74 he point to test
021420: 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 .. Exit:..
021430: 20 20 20 41 20 3D 20 64 65 63 6F 64 65 64 20 69 A = decoded i
021440: 6E 6B 20 61 74 20 74 68 65 20 70 6F 69 6E 74 20 nk at the point
021450: 73 70 65 63 69 66 69 65 64 0D 0D 20 20 20 20 20 specified..
021460: 42 43 2C 44 45 2C 48 4C 20 61 6E 64 20 66 6C 61 BC,DE,HL and fla
021470: 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 gs corrupt...
021480: 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 Notes:.. T
021490: 68 65 20 70 6F 73 69 74 69 6F 6E 20 6F 66 20 74 he position of t
0214A0: 68 65 20 70 6F 69 6E 74 20 74 6F 20 20 74 65 73 he point to tes
0214B0: 74 20 20 69 73 20 20 67 69 76 65 6E 20 69 6E 20 t is given in
0214C0: 75 73 65 72 20 63 6F 6F 72 64 69 6E 61 74 65 73 user coordinates
0214D0: 20 69 2E 65 2E 0D 20 20 20 20 20 72 65 6C 61 74 i.e.. relat
0214E0: 69 76 65 20 74 6F 20 74 68 65 20 75 73 65 72 20 ive to the user
0214F0: 6F 72 69 67 69 6E 2E 0D 0D 20 20 20 20 20 54 68 origin... Th
021500: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
021510: 1C 00 01 00 02 09 4E E5 1C 00 C1 02 00 00 00 02 ......N.........
021520: 1C 00 C6 02 00 00 00 02 1C 00 C2 02 00 00 00 02 ................
021530: 1C 00 C7 02 00 00 00 02 1C 00 C3 02 00 00 00 02 ................
021540: 1C 00 C8 02 00 00 00 02 1C 00 C4 02 00 00 00 02 ................
021550: 1C 00 C9 02 00 00 00 02 1C 00 C5 02 00 00 00 02 ................
021560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021600: 65 70 65 6E 64 73 20 6F 6E 20 74 68 65 0D 20 20 epends on the.
021610: 20 20 20 67 72 61 70 68 69 63 73 20 77 72 69 74 graphics writ
021620: 65 20 6D 6F 65 2E 20 49 66 20 74 68 65 20 62 61 e moe. If the ba
021630: 63 6B 67 72 6F 75 6E 64 20 6D 6F 64 65 20 69 73 ckground mode is
021640: 20 6F 70 61 71 75 65 20 74 68 65 6E 20 74 68 65 opaque then the
021650: 20 70 69 78 65 6C 20 69 73 0D 20 20 20 20 20 70 pixel is. p
021660: 6C 6F 74 74 65 64 20 20 69 6E 20 20 74 68 65 20 lotted in the
021670: 20 67 72 61 70 68 69 63 73 20 20 70 61 70 65 72 graphics paper
021680: 20 20 69 6E 6B 2E 20 20 49 66 20 20 74 68 65 20 ink. If the
021690: 20 62 61 63 6B 67 72 6F 75 6E 64 20 20 6D 6F 64 background mod
0216A0: 65 20 20 69 73 0D 20 20 20 20 20 74 72 61 6E 73 e is. trans
0216B0: 70 61 72 65 6E 74 20 74 68 65 6E 20 74 68 65 20 parent then the
0216C0: 70 69 78 65 6C 20 69 73 20 6E 6F 74 20 70 6C 6F pixel is not plo
0216D0: 74 74 65 64 2E 0D 0D 20 20 20 20 20 49 6E 20 56 tted... In V
0216E0: 31 2E 31 20 66 69 72 6D 77 61 72 65 20 74 68 65 1.1 firmware the
0216F0: 20 66 69 72 73 74 20 20 70 69 78 65 6C 20 20 6F first pixel o
021700: 66 20 20 74 68 65 20 20 6C 69 6E 65 20 20 28 74 f the line (t
021710: 68 61 74 20 61 74 20 74 68 65 20 63 75 72 72 65 hat at the curre
021720: 6E 74 0D 20 20 20 20 20 67 72 61 70 68 69 63 73 nt. graphics
021730: 20 70 6F 73 69 74 69 6F 6E 29 20 69 73 20 6E 6F position) is no
021740: 74 20 70 6C 6F 74 74 65 64 20 69 66 20 20 74 68 t plotted if th
021750: 65 20 66 69 72 73 74 20 70 6F 69 6E 74 20 70 6C e first point pl
021760: 6F 74 74 69 6E 67 20 6D 6F 64 65 20 69 73 0D 20 otting mode is.
021770: 20 20 20 20 73 65 74 20 66 61 6C 73 65 2E 0D 0D set false...
021780: 20 20 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 This indire
021790: 63 74 69 6F 6E 20 69 73 20 73 65 74 20 75 70 20 ction is set up
0217A0: 77 68 65 6E 20 47 52 41 20 49 4E 49 54 49 41 4C when GRA INITIAL
0217B0: 49 53 45 20 6F 72 20 47 52 41 20 52 45 53 45 54 ISE or GRA RESET
0217C0: 20 69 73 20 63 61 6C 6C 65 64 2E 0D 0D 20 20 20 is called...
0217D0: 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D --------------
0217E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0217F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021800: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021810: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021820: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021830: 2D 2D 0D 20 20 20 20 20 26 42 44 46 31 20 2D 20 --. &BDF1 -
021840: 49 4E 44 3A 20 4D 43 20 57 41 49 54 20 50 52 49 IND: MC WAIT PRI
021850: 4E 54 45 52 20 2D 20 50 72 69 6E 74 20 61 20 63 NTER - Print a c
021860: 68 61 72 61 63 74 65 72 20 6F 72 20 74 69 6D 65 haracter or time
021870: 20 6F 75 74 0D 0D 20 20 20 20 20 45 6E 74 72 79 out.. Entry
021880: 3A 0D 0D 20 20 20 20 20 41 20 3D 20 63 68 61 72 :.. A = char
021890: 61 63 74 65 72 20 74 6F 20 73 65 6E 64 2E 0D 0D acter to send...
0218A0: 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 Exit:..
0218B0: 20 49 66 20 74 68 65 20 63 68 61 72 61 63 74 65 If the characte
0218C0: 72 20 77 61 73 20 73 65 6E 74 20 4F 4B 3A 0D 20 r was sent OK:.
0218D0: 20 20 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D Carry true..
0218E0: 0D 20 20 20 20 20 49 66 20 74 68 65 20 63 68 61 . If the cha
0218F0: 72 61 63 74 65 72 20 77 61 73 20 6E 6F 74 20 73 racter was not s
021900: 65 6E 74 3A 0D 0D 20 20 20 20 20 43 61 72 72 79 ent:.. Carry
021910: 20 66 61 6C 73 65 2E 0D 0D 20 20 20 20 20 41 20 false... A
021920: 61 6E 64 20 42 43 20 63 6F 72 72 75 70 74 2E 0D and BC corrupt..
021930: 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 . Notes:..
021940: 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 This indirect
021950: 69 6F 6E 20 69 73 20 70 72 6F 76 69 64 65 64 20 ion is provided
021960: 74 6F 20 61 6C 6C 6F 77 20 74 68 65 20 75 73 65 to allow the use
021970: 72 20 74 6F 20 64 72 69 76 65 20 74 68 65 20 70 r to drive the p
021980: 72 69 6E 74 65 72 20 69 6E 0D 20 20 20 20 20 61 rinter in. a
021990: 20 64 69 66 66 65 72 65 6E 74 20 77 61 79 2E 20 different way.
0219A0: 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E This indirection
0219B0: 20 20 69 73 20 20 63 61 6C 6C 65 64 20 20 62 79 is called by
0219C0: 20 74 68 65 20 72 6F 75 74 69 6E 65 20 4D 43 20 the routine MC
0219D0: 50 52 49 4E 54 0D 20 20 20 20 20 43 48 41 52 20 PRINT. CHAR
0219E0: 61 6E 64 20 70 65 72 66 6F 72 6D 73 20 74 68 65 and performs the
0219F0: 20 61 63 74 69 6F 6E 73 20 20 6F 66 20 20 62 6F actions of bo
021A00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021A10: 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 --------.. &
021A20: 42 44 45 35 20 2D 20 49 4E 44 3A 20 53 43 52 20 BDE5 - IND: SCR
021A30: 52 45 41 44 20 2D 20 52 65 61 64 20 61 20 70 69 READ - Read a pi
021A40: 78 65 6C 20 66 72 6F 6D 20 74 68 65 20 73 63 72 xel from the scr
021A50: 65 65 6E 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A een.. Entry:
021A60: 0D 0D 20 20 20 20 20 48 4C 20 3D 20 73 63 72 65 .. HL = scre
021A70: 65 6E 20 61 64 64 72 65 73 73 0D 20 20 20 20 20 en address.
021A80: 43 20 3D 20 6D 61 73 6B 20 66 6F 72 20 70 69 78 C = mask for pix
021A90: 65 6C 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D el.. Exit:..
021AA0: 20 20 20 20 20 41 20 3D 20 64 65 63 6F 64 65 64 A = decoded
021AB0: 20 69 6E 6B 20 74 68 61 74 20 74 68 65 20 70 69 ink that the pi
021AC0: 78 65 6C 20 77 61 73 20 73 65 74 20 74 6F 2E 0D xel was set to..
021AD0: 0D 20 20 20 20 20 46 6C 61 67 73 20 63 6F 72 72 . Flags corr
021AE0: 75 70 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 upt... Notes
021AF0: 3A 0D 0D 20 20 20 20 20 54 68 65 20 6D 61 73 6B :.. The mask
021B00: 20 73 75 70 70 6C 69 65 64 20 6D 75 73 74 20 62 supplied must b
021B10: 65 20 20 61 20 20 6D 61 73 6B 20 20 66 6F 72 20 e a mask for
021B20: 20 61 20 20 73 69 6E 67 6C 65 20 70 69 78 65 6C a single pixel
021B30: 20 6F 74 68 65 72 77 69 73 65 20 74 68 65 0D 20 otherwise the.
021B40: 20 20 20 20 64 65 63 6F 64 69 6E 67 20 6F 66 20 decoding of
021B50: 74 68 65 20 69 6E 6B 20 72 65 61 64 20 66 72 6F the ink read fro
021B60: 6D 20 74 68 65 20 73 63 72 65 65 6E 20 77 69 6C m the screen wil
021B70: 6C 20 6E 6F 74 20 77 6F 72 6B 20 63 6F 72 72 65 l not work corre
021B80: 63 74 6C 79 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D ctly... ----
021B90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021BA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021BB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021BC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021BD0: 2D 2D 2D 0D 0D 0D 0D 20 20 20 20 20 26 42 44 45 ---.... &BDE
021BE0: 38 20 2D 20 53 43 52 20 57 52 49 54 45 20 2D 20 8 - SCR WRITE -
021BF0: 50 6C 6F 74 20 61 20 70 69 78 65 6C 20 75 73 69 Plot a pixel usi
021C00: 74 68 20 20 4D 43 20 20 42 55 53 59 20 20 50 52 th MC BUSY PR
021C10: 49 4E 54 45 52 20 61 6E 64 20 4D 43 20 53 45 4E INTER and MC SEN
021C20: 44 0D 20 20 20 20 20 50 52 49 4E 54 45 52 2E 0D D. PRINTER..
021C30: 20 20 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 This indire
021C40: 63 74 69 6F 6E 20 69 73 20 69 6E 69 74 69 61 6C ction is initial
021C50: 69 73 65 64 20 77 68 65 6E 20 4D 43 20 52 45 53 ised when MC RES
021C60: 45 54 20 50 52 49 4E 54 45 52 20 69 73 20 63 61 ET PRINTER is ca
021C70: 6C 6C 65 64 2E 0D 20 20 20 20 20 2D 2D 2D 2D 2D lled.. -----
021C80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021C90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021CA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021CB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021CC0: 2D 0D 20 20 20 20 20 26 42 44 46 34 20 2D 20 49 -. &BDF4 - I
021CD0: 4E 44 3A 20 4B 4D 20 53 43 41 4E 20 4B 45 59 53 ND: KM SCAN KEYS
021CE0: 20 2D 20 53 63 61 6E 20 74 68 65 20 6B 65 79 62 - Scan the keyb
021CF0: 6F 61 72 64 0D 0D 20 20 20 20 20 45 6E 74 72 79 oard.. Entry
021D00: 3A 0D 0D 20 20 20 20 20 49 6E 74 65 72 75 70 74 :.. Interupt
021D10: 73 20 6D 75 73 74 20 62 65 20 64 69 73 61 62 6C s must be disabl
021D20: 65 64 2E 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D ed... Exit:.
021D30: 0D 20 20 20 20 20 41 46 2C 42 43 2C 44 45 2C 48 . AF,BC,DE,H
021D40: 4C 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 L corrupt...
021D50: 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 68 Notes:.. Th
021D60: 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 is indirection i
021D70: 73 20 63 61 6C 6C 65 64 20 20 65 76 65 72 79 20 s called every
021D80: 20 35 30 74 68 20 20 6F 66 20 20 61 20 20 73 65 50th of a se
021D90: 63 6F 6E 64 2E 20 54 68 65 20 72 65 70 65 61 74 cond. The repeat
021DA0: 20 61 6E 64 0D 20 20 20 20 20 73 74 61 72 74 20 and. start
021DB0: 75 70 20 73 70 65 65 64 73 20 61 72 65 20 6D 65 up speeds are me
021DC0: 61 73 75 72 65 64 20 69 6E 20 35 30 74 68 73 20 asured in 50ths
021DD0: 6F 66 20 61 20 73 65 63 6F 6E 64 2E 0D 0D 20 20 of a second...
021DE0: 20 20 20 49 66 20 74 68 65 20 65 73 63 61 70 65 If the escape
021DF0: 20 6B 65 79 20 69 73 20 20 70 72 65 73 73 65 64 key is pressed
021E00: 6E 67 20 74 68 65 20 63 75 72 72 65 6E 74 20 77 ng the current w
021E10: 72 69 74 65 20 6D 6F 64 65 0D 0D 0D 0D 0D 0D 0D rite mode.......
021E20: 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 . Entry:..
021E30: 20 20 20 48 4C 20 3D 20 73 63 72 65 65 6E 20 61 HL = screen a
021E40: 64 64 72 65 73 73 0D 20 20 20 20 20 43 20 3D 20 ddress. C =
021E50: 6D 61 73 6B 20 66 6F 72 20 74 68 65 20 70 69 78 mask for the pix
021E60: 65 6C 73 0D 20 20 20 20 20 42 20 3D 20 65 6E 63 els. B = enc
021E70: 6F 64 65 64 20 69 6E 6B 20 74 6F 20 70 6C 6F 74 oded ink to plot
021E80: 20 77 69 74 68 0D 0D 20 20 20 20 20 45 78 69 74 with.. Exit
021E90: 3A 0D 0D 20 20 20 20 20 41 46 20 63 6F 72 72 75 :.. AF corru
021EA0: 70 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A pt... Notes:
021EB0: 0D 0D 20 20 20 20 20 2A 2A 20 44 4F 20 4C 41 54 .. ** DO LAT
021EC0: 45 52 20 2A 2A 0D 20 20 20 20 20 2D 2D 2D 2D 2D ER **. -----
021ED0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021EE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021EF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021F00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
021F10: 2D 0D 20 20 20 20 20 26 42 44 45 42 20 2D 20 49 -. &BDEB - I
021F20: 4E 44 3A 20 53 43 52 20 4D 4F 44 45 20 43 4C 45 ND: SCR MODE CLE
021F30: 41 52 20 2D 20 43 6C 65 61 72 20 74 68 65 20 73 AR - Clear the s
021F40: 63 72 65 65 6E 20 74 6F 20 69 6E 6B 20 30 0D 0D creen to ink 0..
021F50: 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 Entry:..
021F60: 20 20 4E 6F 6E 65 0D 0D 20 20 20 20 20 45 78 69 None.. Exi
021F70: 74 3A 0D 0D 20 20 20 20 20 41 46 2C 42 43 2C 44 t:.. AF,BC,D
021F80: 45 2C 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0D 20 E,HL corrupt...
021F90: 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 Notes:..
021FA0: 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 6F This indirectio
021FB0: 6E 20 69 73 20 69 6E 69 74 69 6C 69 73 65 64 20 n is initilised
021FC0: 77 68 65 6E 20 20 53 43 52 20 20 49 4E 49 54 49 when SCR INITI
021FD0: 41 4C 49 53 45 20 20 6F 72 20 53 43 52 20 52 45 ALISE or SCR RE
021FE0: 53 45 54 20 61 72 65 0D 20 20 20 20 20 63 61 6C SET are. cal
021FF0: 6C 65 64 2E 0D 0D 20 20 20 20 20 56 31 2E 30 0D led... V1.0.
022000: 20 20 74 68 65 6E 20 20 74 68 65 20 20 69 6E 64 then the ind
022010: 69 72 65 63 74 69 6F 6E 20 4B 4D 20 54 45 53 54 irection KM TEST
022020: 20 42 52 45 41 4B 20 69 73 0D 20 20 20 20 20 63 BREAK is. c
022030: 61 6C 6C 65 64 20 74 6F 20 70 72 6F 63 65 73 73 alled to process
022040: 20 74 68 65 20 62 72 65 61 6B 2E 0D 20 20 20 20 the break..
022050: 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ---------------
022060: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
022070: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
022080: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
022090: 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 3D --------.. =
0220A0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0220B0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0220C0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0220D0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
0220E0: 3D 3D 3D 3D 3D 0D 20 20 20 20 20 3D 20 20 20 20 =====. =
0220F0: 20 20 20 20 20 20 20 20 20 20 20 45 4E 44 20 20 END
022100: 20 20 20 20 20 20 20 20 20 20 20 4F 46 20 20 20 OF
022110: 20 20 20 20 49 4E 44 49 52 45 43 54 49 4F 4E 53 INDIRECTIONS
022120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
022130: 3D 0D 20 20 20 20 20 3D 3D 3D 3D 3D 3D 3D 3D 3D =. =========
022140: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
022150: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
022160: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D ================
022170: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 0D =============...
022180: 0D 0D 0D 0D 0D 0D 1A 3D 09 09 45 4E 44 20 09 09 .......=..END ..
022190: 4F 46 09 20 49 4E 44 49 52 45 43 54 49 4F 4E 53 OF. INDIRECTIONS
0221A0: 09 09 20 20 20 20 20 3D 0D 3D 3D 3D 3D 3D 3D 3D .. =.=======
0221B0: 3D 1A 6E 61 6C 20 6A 75 6D 70 62 6C 6F 63 6B 0D =.nal jumpblock.
0221C0: 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D ................
0221D0: 1A 10 22 00 00 00 00 00 00 00 00 00 00 00 00 00 ..".............
0221E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0221F0: 00 00 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
022200: 20 20 20 20 20 2D 2D 2D 2D 0D 0D 20 20 20 20 20 ----..
022210: 49 74 20 69 73 20 6E 65 63 65 73 73 61 72 79 20 It is necessary
022220: 66 6F 72 20 74 68 65 20 75 73 65 72 20 74 6F 20 for the user to
022230: 73 65 74 20 75 70 20 74 68 65 20 69 6E 6B 73 20 set up the inks
022240: 69 66 20 74 68 69 73 20 69 6E 64 69 72 65 63 74 if this indirect
022250: 69 6F 6E 20 69 73 0D 20 20 20 20 20 63 61 6C 6C ion is. call
022260: 65 64 2E 0D 0D 20 20 20 20 20 56 31 2E 31 0D 20 ed... V1.1.
022270: 20 20 20 20 2D 2D 2D 2D 0D 0D 20 20 20 20 20 54 ----.. T
022280: 68 65 20 73 63 72 65 65 6E 20 70 61 63 6B 20 73 he screen pack s
022290: 65 74 73 20 75 70 20 74 68 65 20 69 6E 6B 73 20 ets up the inks
0222A0: 66 6F 72 20 74 68 65 20 75 73 65 72 20 61 66 74 for the user aft
0222B0: 65 72 20 53 43 52 20 4D 4F 44 45 20 43 4C 45 41 er SCR MODE CLEA
0222C0: 52 20 68 61 73 0D 20 20 20 20 20 62 65 65 6E 20 R has. been
0222D0: 63 61 6C 6C 65 64 2E 0D 0D 20 20 20 20 20 54 68 called... Th
0222E0: 65 20 67 72 61 70 68 69 63 73 20 56 44 55 73 20 e graphics VDUs
0222F0: 61 72 65 20 70 75 74 20 69 6E 74 6F 20 6E 6F 6E are put into non
022300: 2D 73 74 61 6E 64 61 72 64 20 73 74 61 74 65 73 -standard states
022310: 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D ... --------
022320: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
022330: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
022340: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
022350: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 -------------.
022360: 20 20 20 26 42 44 45 45 20 2D 20 49 4E 44 3A 20 &BDEE - IND:
022370: 4B 4D 20 54 45 53 54 20 42 52 45 41 4B 20 2D 20 KM TEST BREAK -
022380: 54 65 73 74 20 66 6F 72 20 62 72 65 61 6B 20 6F Test for break o
022390: 72 20 72 65 73 65 74 0D 0D 20 20 20 20 20 45 6E r reset.. En
0223A0: 74 72 79 3A 0D 0D 20 20 20 20 20 49 6E 74 65 72 try:.. Inter
0223B0: 75 70 74 73 20 64 69 73 61 62 6C 65 64 2E 0D 20 upts disabled..
0223C0: 20 20 20 20 43 20 3D 20 73 68 69 66 74 20 61 6E C = shift an
0223D0: 64 20 63 6F 6E 74 72 6F 6C 20 6B 65 79 20 73 74 d control key st
0223E0: 61 74 65 73 2E 0D 0D 20 20 20 20 20 45 78 69 74 ates... Exit
0223F0: 3A 0D 0D 20 20 20 20 20 41 46 20 61 6E 64 20 48 :.. AF and H
022400: 1B 40 49 2F 4F 20 70 6F 72 74 73 0D 2D 2D 2D 2D .@I/O ports.----
022410: 2D 2D 2D 2D 2D 0D 0D 50 4F 52 54 0D 0D 26 37 46 -----..PORT..&7F
022420: 78 78 20 20 20 47 61 74 65 20 61 72 72 61 79 0D xx Gate array.
022430: 0D 26 42 43 78 78 20 20 20 48 44 36 38 34 35 20 .&BCxx HD6845
022440: 43 52 54 43 20 73 65 6C 65 63 74 20 72 65 67 69 CRTC select regi
022450: 73 74 65 72 0D 26 42 44 78 78 20 20 20 48 44 36 ster.&BDxx HD6
022460: 38 34 35 20 43 52 54 43 20 72 65 67 69 73 74 65 845 CRTC registe
022470: 72 20 64 61 74 61 0D 26 42 46 78 78 20 20 20 48 r data.&BFxx H
022480: 44 36 38 34 35 20 43 52 54 43 20 64 61 74 61 0D D6845 CRTC data.
022490: 0D 26 44 46 78 78 20 20 20 45 78 70 61 6E 73 69 .&DFxx Expansi
0224A0: 6F 6E 20 72 6F 6D 20 73 65 6C 65 63 74 0D 26 45 on rom select.&E
0224B0: 46 78 78 20 20 20 43 65 6E 74 72 6F 6E 69 63 73 Fxx Centronics
0224C0: 20 64 61 74 61 0D 0D 26 46 34 78 78 20 20 20 75 data..&F4xx u
0224D0: 50 44 38 32 35 35 20 70 6F 72 74 20 41 20 64 61 PD8255 port A da
0224E0: 74 61 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ta (
0224F0: 50 53 47 29 0D 26 46 35 78 78 20 20 20 75 50 44 PSG).&F5xx uPD
022500: 38 32 35 35 20 70 6F 72 74 20 42 20 64 61 74 61 8255 port B data
022510: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 54 61 (Ta
022520: 70 65 2E 2E 2E 2E 65 74 63 29 0D 26 46 36 78 78 pe....etc).&F6xx
022530: 20 20 20 75 50 44 38 32 35 35 20 70 6F 72 74 20 uPD8255 port
022540: 43 20 64 61 74 61 20 20 20 20 20 20 20 20 20 20 C data
022550: 20 20 20 28 4B 65 79 62 6F 61 72 64 2F 50 53 47 (Keyboard/PSG
022560: 20 43 6F 6E 74 72 6F 6C 2F 54 61 70 65 29 0D 26 Control/Tape).&
022570: 46 37 78 78 20 20 20 75 50 44 38 32 35 35 20 63 F7xx uPD8255 c
022580: 6F 6E 74 72 6F 6C 0D 0D 26 46 38 78 78 20 20 20 ontrol..&F8xx
022590: 45 78 70 61 6E 73 69 6F 6E 20 42 75 73 0D 26 46 Expansion Bus.&F
0225A0: 39 78 78 20 20 20 45 78 70 61 6E 73 69 6F 6E 20 9xx Expansion
0225B0: 42 75 73 0D 26 46 41 78 78 20 20 20 45 78 70 61 Bus.&FAxx Expa
0225C0: 6E 73 69 6F 6E 20 42 75 73 0D 0D 26 46 41 37 45 nsion Bus..&FA7E
0225D0: 20 20 20 44 69 73 6B 20 64 72 69 76 65 20 6D 6F Disk drive mo
0225E0: 74 6F 72 20 63 6F 6E 74 72 6F 6C 0D 0D 26 46 42 tor control..&FB
0225F0: 78 78 20 20 20 45 78 70 61 6E 73 69 6F 6E 20 42 xx Expansion B
022600: 4C 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 L corrupt...
022610: 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 68 Notes:.. Th
022620: 69 73 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 69 is indirection i
022630: 73 20 63 61 6C 6C 65 64 20 62 79 20 74 68 65 20 s called by the
022640: 66 69 72 6D 77 61 72 65 2E 20 49 66 20 20 62 69 firmware. If bi
022650: 74 20 37 20 6F 66 20 63 20 69 73 20 73 65 74 20 t 7 of c is set
022660: 74 68 65 6E 0D 20 20 20 20 20 74 68 65 20 63 6F then. the co
022670: 6E 74 72 6F 6C 20 6B 65 79 20 69 73 20 70 72 65 ntrol key is pre
022680: 73 73 65 64 20 61 6E 64 20 69 66 20 62 69 74 20 ssed and if bit
022690: 20 36 20 20 69 73 20 73 65 74 20 74 68 65 6E 20 6 is set then
0226A0: 6F 6E 65 20 6F 66 20 74 68 65 20 73 68 69 66 74 one of the shift
0226B0: 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 6B 65 79 73 ....... keys
0226C0: 20 69 73 20 70 72 65 73 73 65 64 2E 0D 0D 20 20 is pressed...
0226D0: 20 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 This indirect
0226E0: 69 6F 6E 20 69 73 20 63 61 6C 6C 65 64 20 61 66 ion is called af
0226F0: 74 65 72 20 20 74 68 65 20 20 6B 65 79 73 20 20 ter the keys
022700: 68 61 76 65 20 62 65 65 6E 20 73 63 61 6E 6E 65 have been scanne
022710: 64 20 61 6E 64 20 74 68 65 0D 20 20 20 20 20 65 d and the. e
022720: 73 63 61 70 65 20 6B 65 79 20 77 61 73 20 66 6F scape key was fo
022730: 75 6E 64 20 74 6F 20 62 65 20 20 70 72 65 73 73 und to be press
022740: 65 64 2E 20 20 49 74 20 20 69 73 20 20 70 72 6F ed. It is pro
022750: 76 69 64 65 64 20 73 6F 20 74 68 65 20 75 73 65 vided so the use
022760: 72 20 63 61 6E 0D 20 20 20 20 20 63 68 61 6E 67 r can. chang
022770: 65 20 74 68 65 20 61 63 74 69 6F 6E 20 77 68 65 e the action whe
022780: 6E 20 74 68 65 20 62 72 65 61 6B 20 6B 65 79 20 n the break key
022790: 69 73 20 70 72 65 73 73 65 64 2E 0D 0D 20 20 20 is pressed...
0227A0: 20 20 54 68 69 73 20 69 6E 64 69 72 65 63 74 69 This indirecti
0227B0: 6F 6E 20 69 73 20 73 65 74 75 70 20 77 68 65 6E on is setup when
0227C0: 20 4B 4D 20 49 4E 49 54 49 41 4C 49 53 45 20 6F KM INITIALISE o
0227D0: 72 20 4B 4D 20 52 45 53 45 54 20 61 72 65 20 63 r KM RESET are c
0227E0: 61 6C 6C 65 64 2E 0D 20 20 20 20 20 2D 2D 2D 2D alled.. ----
0227F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
022800: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
022810: 1D 00 01 00 02 09 4E E5 1D 00 C1 02 00 00 00 02 ......N.........
022820: 1D 00 C6 02 00 00 00 02 1D 00 C2 02 00 00 00 02 ................
022830: 1D 00 C7 02 00 00 00 02 1D 00 C3 02 00 00 00 02 ................
022840: 1D 00 C8 02 00 00 00 02 1D 00 C4 02 00 00 00 02 ................
022850: 1D 00 C9 02 00 00 00 02 1D 00 C5 02 00 00 00 02 ................
022860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022900: 75 73 0D 0D 26 46 42 37 45 20 20 20 46 44 43 20 us..&FB7E FDC
022910: 6D 61 69 6E 20 73 74 61 74 75 73 20 72 65 67 69 main status regi
022920: 73 74 65 72 0D 26 46 42 37 46 20 20 20 46 44 43 ster.&FB7F FDC
022930: 20 64 61 74 61 20 72 65 67 69 73 74 65 72 0D 0D data register..
022940: 26 46 46 78 78 20 20 20 4E 4F 54 20 55 53 45 44 &FFxx NOT USED
022950: 0D 0D 0D 46 6F 72 20 74 68 6F 73 65 20 70 6F 72 ...For those por
022960: 74 20 61 64 64 72 65 73 73 65 73 73 20 69 6E 20 t addressess in
022970: 74 68 65 20 65 78 70 61 6E 73 69 6F 6E 20 62 75 the expansion bu
022980: 73 20 72 61 6E 67 65 3A 0D 0D 50 6F 72 74 73 20 s range:..Ports
022990: 26 46 38 78 78 20 74 6F 20 26 46 42 78 78 0D 0D &F8xx to &FBxx..
0229A0: 78 78 20 62 79 74 65 20 61 73 20 73 70 65 63 69 xx byte as speci
0229B0: 66 69 65 64 20 62 65 6C 6F 77 3A 0D 0D 26 30 30 fied below:..&00
0229C0: 20 2D 20 26 37 42 20 20 20 20 20 20 20 44 4F 20 - &7B DO
0229D0: 4E 4F 54 20 55 53 45 0D 26 37 43 20 2D 20 26 37 NOT USE.&7C - &7
0229E0: 46 20 20 20 20 20 20 20 44 69 73 63 20 49 6E 74 F Disc Int
0229F0: 65 72 66 61 63 65 0D 26 38 30 20 2D 20 26 42 42 erface.&80 - &BB
022A00: 20 20 20 20 20 20 20 44 4F 20 4E 4F 54 20 55 53 DO NOT US
022A10: 45 0D 26 42 43 20 2D 20 26 42 46 20 20 20 20 20 E.&BC - &BF
022A20: 20 20 52 65 73 65 72 76 65 64 20 66 6F 72 20 66 Reserved for f
022A30: 75 74 75 72 65 20 75 73 65 0D 26 43 30 20 2D 20 uture use.&C0 -
022A40: 26 44 42 20 20 20 20 20 20 20 44 4F 20 4E 4F 54 &DB DO NOT
022A50: 20 55 53 45 0D 26 44 43 20 2D 20 26 44 46 20 20 USE.&DC - &DF
022A60: 20 20 20 20 20 46 6F 72 20 20 63 6F 6D 6D 75 6E For commun
022A70: 69 63 61 74 69 6F 6E 73 20 20 69 6E 74 65 72 66 ications interf
022A80: 61 63 65 73 0D 26 45 30 20 2D 20 26 46 45 20 20 aces.&E0 - &FE
022A90: 20 20 20 20 20 41 76 61 69 6C 61 62 6C 65 20 66 Available f
022AA0: 6F 72 20 75 73 65 72 20 65 78 70 61 6E 73 69 6F or user expansio
022AB0: 6E 20 69 6E 74 65 72 66 61 63 65 73 0D 26 46 46 n interfaces.&FF
022AC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 75 73 Bus
022AD0: 20 52 65 73 65 74 20 69 6E 74 65 72 66 61 63 65 Reset interface
022AE0: 73 0D 0D 1A 2D 0D 0D 50 4F 52 54 09 0D 0D 26 37 s...-..PORT...&7
022AF0: 46 78 78 09 47 61 74 65 20 61 72 72 61 79 09 09 Fxx.Gate array..
022B00: 20 20 4B 4D 20 52 45 53 45 54 20 2D 20 74 6F 20 KM RESET - to
022B10: 72 65 73 65 74 20 61 6E 79 20 6B 65 79 62 6F 61 reset any keyboa
022B20: 72 64 20 69 6E 64 69 72 65 63 74 69 6F 6E 73 20 rd indirections
022B30: 61 6E 64 20 62 72 65 61 6B 20 65 76 65 6E 74 2E and break event.
022B40: 0D 20 20 20 20 20 54 58 54 20 52 45 53 45 54 20 . TXT RESET
022B50: 2D 20 74 6F 20 72 65 73 65 74 20 61 6E 79 20 54 - to reset any T
022B60: 58 54 20 56 44 55 20 69 6E 64 69 72 65 63 74 67 XT VDU indirectg
022B70: 69 6F 6E 73 2E 0D 20 20 20 20 20 53 43 52 20 52 ions.. SCR R
022B80: 45 53 45 54 20 2D 20 74 6F 20 72 65 73 65 74 20 ESET - to reset
022B90: 61 6E 79 20 73 63 72 65 65 6E 20 69 6E 64 69 72 any screen indir
022BA0: 65 63 74 69 6F 6E 73 2E 0D 0D 20 20 20 20 20 54 ections... T
022BB0: 68 65 20 76 61 6C 75 65 73 20 72 65 74 75 72 6E he values return
022BC0: 65 64 20 62 79 20 4B 4C 20 43 48 4F 4B 45 20 4F ed by KL CHOKE O
022BD0: 46 46 20 61 72 65 20 75 73 65 64 20 62 79 20 4D FF are used by M
022BE0: 43 20 42 4F 4F 54 20 50 52 4F 47 52 41 4D 20 69 C BOOT PROGRAM i
022BF0: 66 20 74 68 65 0D 20 20 20 20 20 70 72 6F 67 72 f the. progr
022C00: 61 6D 20 6C 6F 61 64 20 66 61 69 6C 73 2E 0D 0D am load fails...
022C10: 20 20 20 20 20 54 68 69 73 20 69 6E 66 6F 72 6D This inform
022C20: 61 74 69 6F 6E 20 69 73 20 69 6E 63 6C 75 64 65 ation is include
022C30: 64 20 66 6F 72 20 74 68 65 20 72 65 61 64 65 72 d for the reader
022C40: 73 20 69 6E 74 65 72 65 73 74 2E 20 4D 43 20 42 s interest. MC B
022C50: 4F 4F 54 20 50 52 4F 47 52 41 4D 0D 20 20 20 20 OOT PROGRAM.
022C60: 20 69 73 20 74 68 65 20 72 65 63 6F 6D 6D 65 6E is the recommen
022C70: 64 65 64 20 6D 65 61 6E 73 20 20 6F 66 20 20 6C ded means of l
022C80: 6F 61 64 69 6E 67 20 20 61 6E 64 20 20 65 6E 74 oading and ent
022C90: 65 72 69 6E 67 20 20 61 20 72 61 6D 20 66 6F 72 ering a ram for
022CA0: 65 67 72 6F 75 6E 64 0D 20 20 20 20 20 70 72 6F eground. pro
022CB0: 67 72 61 6D 2E 20 4D 43 20 53 54 41 52 54 20 50 gram. MC START P
022CC0: 52 4F 47 52 41 4D 20 69 73 20 74 68 65 20 20 72 ROGRAM is the r
022CD0: 65 63 6F 6D 6D 65 6E 64 65 64 20 20 6D 65 61 6E ecommended mean
022CE0: 73 20 6F 66 20 65 6E 74 65 72 69 6E 67 20 61 20 s of entering a
022CF0: 72 6F 6D 0D 20 20 20 20 20 70 72 6F 67 72 61 6D rom. program
022D00: 09 0D 0D 26 42 43 78 78 09 48 44 36 38 34 35 20 ...&BCxx.HD6845
022D10: 43 52 54 43 20 73 65 6C 65 63 74 20 72 65 67 69 CRTC select regi
022D20: 73 74 65 72 09 09 0D 26 42 44 78 78 09 48 44 36 ster...&BDxx.HD6
022D30: 38 34 35 20 43 52 54 43 20 72 65 67 69 73 74 65 845 CRTC registe
022D40: 72 20 64 61 74 61 20 20 20 20 1A 0D 0D 0D 0D 0D r data ......
022D50: 1A 10 22 00 00 00 00 00 00 00 00 00 00 00 00 00 ..".............
022D60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022D70: 00 00 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
022D80: 73 20 72 61 6E 67 65 3A 0D 0D 50 6F 72 74 73 20 s range:..Ports
022D90: 26 46 38 78 78 20 74 6F 20 26 46 42 78 78 0D 0D &F8xx to &FBxx..
022DA0: 78 78 20 62 79 74 65 20 61 73 20 73 70 65 63 69 xx byte as speci
022DB0: 66 69 65 64 20 62 65 6C 6F 77 3A 0D 0D 26 30 30 fied below:..&00
022DC0: 20 2D 20 26 37 42 20 20 20 20 20 20 20 44 4F 20 - &7B DO
022DD0: 4E 4F 54 20 55 53 45 0D 26 37 43 20 2D 20 26 37 NOT USE.&7C - &7
022DE0: 46 20 20 20 20 20 20 20 44 69 73 63 20 49 6E 74 F Disc Int
022DF0: 65 72 66 61 63 65 0D 26 38 30 20 2D 20 26 42 42 erface.&80 - &BB
022E00: 20 20 20 20 20 20 20 44 4F 20 4E 4F 54 20 55 53 DO NOT US
022E10: 45 0D 26 42 43 20 2D 20 26 42 46 20 20 20 20 20 E.&BC - &BF
022E20: 20 20 52 65 73 65 72 76 65 64 20 66 6F 72 20 66 Reserved for f
022E30: 75 74 75 72 65 20 75 73 65 0D 26 43 30 20 2D 20 uture use.&C0 -
022E40: 26 44 42 20 20 20 20 20 20 20 44 4F 20 4E 4F 54 &DB DO NOT
022E50: 20 55 53 45 0D 26 44 43 20 2D 20 26 44 46 20 20 USE.&DC - &DF
022E60: 20 20 20 20 20 46 6F 72 20 20 63 6F 6D 6D 75 6E For commun
022E70: 69 63 61 74 69 6F 6E 73 20 20 69 6E 74 65 72 66 ications interf
022E80: 61 63 65 73 0D 26 45 30 20 2D 20 26 46 45 20 20 aces.&E0 - &FE
022E90: 20 20 20 20 20 41 76 61 69 6C 61 62 6C 65 20 66 Available f
022EA0: 6F 72 20 75 73 65 72 20 65 78 70 61 6E 73 69 6F or user expansio
022EB0: 6E 20 69 6E 74 65 72 66 61 63 65 73 0D 26 46 46 n interfaces.&FF
022EC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 42 75 73 Bus
022ED0: 20 52 65 73 65 74 20 69 6E 74 65 72 66 61 63 65 Reset interface
022EE0: 73 0D 0D 1A 2D 0D 0D 50 4F 52 54 09 0D 0D 26 37 s...-..PORT...&7
022EF0: 46 78 78 09 47 61 74 65 20 61 72 72 61 79 09 09 Fxx.Gate array..
022F00: 20 6F 72 20 61 20 72 61 6D 20 66 6F 72 65 67 72 or a ram foregr
022F10: 6F 75 6E 64 20 70 72 6F 67 72 61 6D 20 77 68 69 ound program whi
022F20: 63 68 20 68 61 73 20 61 6C 72 65 61 64 79 20 62 ch has already b
022F30: 65 65 6E 20 6C 6F 61 64 65 64 2E 0D 0D 20 20 20 een loaded...
022F40: 20 20 4B 4C 20 43 48 4F 4B 45 20 4F 46 46 20 64 KL CHOKE OFF d
022F50: 69 73 61 62 6C 65 73 20 69 6E 74 65 72 75 70 74 isables interupt
022F60: 73 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D s... -------
022F70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
022F80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
022F90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
022FA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
022FB0: 0D 0D 20 20 20 20 20 26 42 43 43 42 20 2D 20 4B .. &BCCB - K
022FC0: 4C 20 52 4F 4D 20 57 41 4C 4B 20 2D 20 46 69 6E L ROM WALK - Fin
022FD0: 64 20 61 6E 64 20 69 6E 69 74 69 61 6C 69 7A 65 d and initialize
022FE0: 20 61 6C 6C 20 62 61 63 6B 67 72 6F 75 6E 64 20 all background
022FF0: 52 4F 4D 73 0D 0D 20 20 20 20 20 45 6E 74 72 79 ROMs.. Entry
023000: 3A 0D 0D 20 20 20 20 20 44 45 20 3D 20 66 69 72 :.. DE = fir
023010: 73 74 20 75 73 65 61 62 6C 65 20 62 79 74 65 20 st useable byte
023020: 6F 66 20 6D 65 6D 6F 72 79 0D 20 20 20 20 20 48 of memory. H
023030: 4C 20 3D 20 6C 61 73 74 20 75 73 65 61 62 6C 65 L = last useable
023040: 20 62 79 74 65 20 6F 66 20 6D 65 6D 6F 72 79 0D byte of memory.
023050: 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 . Exit:..
023060: 20 20 44 45 20 3D 20 61 64 64 72 65 73 73 20 6F DE = address o
023070: 66 20 74 68 65 20 6E 65 77 20 66 69 72 73 74 20 f the new first
023080: 75 73 65 61 62 6C 65 20 62 79 74 65 20 6F 66 20 useable byte of
023090: 6D 65 6D 6F 72 79 0D 20 20 20 20 20 48 4C 20 3D memory. HL =
0230A0: 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 address of the
0230B0: 6E 65 77 20 6C 61 73 74 20 75 73 61 62 6C 65 20 new last usable
0230C0: 62 79 74 65 20 6F 66 20 6D 65 6D 6F 72 79 0D 0D byte of memory..
0230D0: 20 20 20 20 20 41 46 2C 42 43 20 63 68 61 6E 67 AF,BC chang
0230E0: 65 64 2E 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 ed.........
0230F0: 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 57 68 65 Notes:.. Whe
023100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023300: 6E 20 61 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 n a foreground p
023310: 72 6F 67 72 61 6D 20 69 73 20 20 65 6E 74 65 72 rogram is enter
023320: 65 64 20 20 69 74 20 20 69 73 20 70 61 73 73 65 ed it is passe
023330: 64 20 74 68 65 20 61 64 64 72 65 73 73 65 73 73 d the addressess
023340: 20 6F 66 0D 20 20 20 20 20 74 68 65 20 66 69 72 of. the fir
023350: 73 74 20 61 6E 64 20 6C 61 73 74 20 62 79 74 65 st and last byte
023360: 73 20 20 69 6E 20 20 6D 65 6D 6F 72 79 20 20 77 s in memory w
023370: 68 69 63 68 20 20 69 74 20 20 6D 61 79 20 20 75 hich it may u
023380: 73 65 2E 20 54 68 65 20 61 72 61 65 20 6F 66 0D se. The arae of.
023390: 20 20 20 20 20 6D 65 6D 6F 72 79 20 6F 75 74 73 memory outs
0233A0: 69 64 65 20 74 68 69 73 20 69 73 20 75 73 65 64 ide this is used
0233B0: 20 20 74 6F 20 20 73 74 6F 72 65 20 20 66 69 72 to store fir
0233C0: 6D 77 61 72 65 20 76 61 72 69 61 62 6C 65 73 2C mware variables,
0233D0: 20 74 68 65 20 73 74 61 63 6B 2C 0D 20 20 20 20 the stack,.
0233E0: 20 74 68 65 20 6A 75 6D 70 62 6C 6F 63 6B 73 20 the jumpblocks
0233F0: 61 6E 64 20 74 68 65 20 73 63 72 65 65 6E 20 20 and the screen
023400: 6D 65 6D 6F 72 79 2E 20 20 46 72 6F 6D 20 20 74 memory. From t
023410: 68 65 20 61 72 65 61 20 61 76 61 69 6C 61 62 6C he area availabl
023420: 65 20 66 6F 72 20 61 0D 20 20 20 20 20 66 6F 72 e for a. for
023430: 65 67 72 6F 75 6E 64 20 74 6F 20 75 73 65 2C 20 eground to use,
023440: 74 68 65 20 61 72 65 61 73 20 20 66 6F 72 20 20 the areas for
023450: 62 61 63 6B 67 72 6F 75 6E 64 20 20 70 72 6F 67 background prog
023460: 72 61 6D 73 20 74 6F 20 75 73 65 20 6D 75 73 74 rams to use must
023470: 20 62 65 0D 20 20 20 20 20 61 6C 6C 6F 63 61 74 be. allocat
023480: 65 64 2E 0D 0D 20 20 20 20 20 54 68 65 20 66 6F ed... The fo
023490: 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D reground program
0234A0: 20 73 68 6F 75 6C 64 20 69 6E 69 74 69 61 6C 69 should initiali
0234B0: 7A 65 20 20 62 61 63 6B 67 72 6F 75 6E 64 20 20 ze background
0234C0: 52 4F 4D 53 20 61 74 20 61 6E 20 65 61 72 6C 79 ROMS at an early
0234D0: 0D 20 20 20 20 20 73 74 61 67 65 2C 20 62 65 66 . stage, bef
0234E0: 6F 72 65 20 69 74 20 75 73 65 73 20 74 68 65 20 ore it uses the
0234F0: 6D 65 6D 6F 72 79 20 69 74 20 20 69 73 20 67 69 memory it is gi
023500: 1B 40 0D 0D 0D 20 20 20 20 20 26 42 43 43 38 20 .@... &BCC8
023510: 2D 20 4B 4C 20 43 48 4F 4B 45 20 4F 46 46 20 2D - KL CHOKE OFF -
023520: 20 52 65 73 65 74 20 74 68 65 20 4B 65 72 6E 61 Reset the Kerna
023530: 6C 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D l.. Entry:..
023540: 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 20 20 20 20 None..
023550: 45 78 69 74 3A 0D 0D 20 20 20 20 20 42 20 3D 20 Exit:.. B =
023560: 72 6F 6D 20 73 65 6C 65 63 74 20 61 64 64 72 65 rom select addre
023570: 73 73 20 6F 66 20 74 68 65 20 63 75 72 72 65 6E ss of the curren
023580: 74 20 66 6F 72 65 67 72 6F 75 6E 64 20 72 6F 6D t foreground rom
023590: 20 28 69 66 20 61 6E 79 29 0D 20 20 20 20 20 44 (if any). D
0235A0: 45 20 3D 20 61 64 64 72 65 73 73 20 61 74 20 77 E = address at w
0235B0: 68 69 63 68 20 74 68 65 20 63 75 72 72 65 6E 74 hich the current
0235C0: 20 66 6F 72 65 67 72 6F 75 6E 64 20 52 4F 4D 20 foreground ROM
0235D0: 77 61 73 20 65 6E 74 65 72 65 64 0D 20 20 20 20 was entered.
0235E0: 20 43 20 3D 20 72 6F 6D 20 73 65 6C 65 63 74 20 C = rom select
0235F0: 61 64 64 72 65 73 73 20 66 6F 72 20 61 20 72 61 address for a ra
023600: 6D 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F m foreground pro
023610: 67 72 61 6D 2E 0D 0D 20 20 20 20 20 41 46 2C 48 gram... AF,H
023620: 4C 20 63 68 61 6E 67 65 64 2E 0D 0D 20 20 20 20 L changed...
023630: 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 49 66 Notes:.. If
023640: 20 74 68 65 20 63 75 72 72 65 6E 74 20 20 66 6F the current fo
023650: 72 65 67 72 6F 75 6E 64 20 20 70 72 6F 67 72 61 reground progra
023660: 6D 20 20 69 73 20 20 69 6E 20 20 72 61 6D 20 20 m is in ram
023670: 74 68 65 6E 20 20 74 68 65 20 72 6F 6D 20 73 65 then the rom se
023680: 6C 65 63 74 0D 20 20 20 20 20 61 64 64 72 65 73 lect. addres
023690: 73 20 61 6E 64 20 65 6E 74 72 79 20 70 6F 69 6E s and entry poin
0236A0: 74 20 61 72 65 20 72 65 74 75 72 6E 65 64 20 62 t are returned b
0236B0: 6F 74 68 20 7A 65 72 6F 2E 20 69 2E 65 2E 20 74 oth zero. i.e. t
0236C0: 68 65 20 64 65 66 61 75 6C 74 20 6F 6D 20 61 74 he default om at
0236D0: 0D 20 20 20 20 20 69 74 73 20 65 6E 74 72 79 20 . its entry
0236E0: 61 64 64 72 65 73 73 2E 0D 0D 20 20 20 20 20 4B address... K
0236F0: 4C 20 43 48 4F 4B 45 20 4F 46 46 20 66 6F 72 6D L CHOKE OFF form
023700: 76 65 6E 2E 20 49 74 20 6D 61 79 20 63 68 6F 73 ven. It may chos
023710: 65 20 77 68 65 74 68 65 72 20 74 6F 0D 20 20 20 e whether to.
023720: 20 20 65 6E 61 62 6C 65 20 62 61 63 6B 67 72 6F enable backgro
023730: 75 6E 64 20 52 4F 4D 53 20 6F 72 20 6E 6F 74 2E und ROMS or not.
023740: 20 4B 4C 20 49 4E 49 54 20 20 42 41 43 4B 20 6D KL INIT BACK m
023750: 61 79 20 62 65 20 75 73 65 64 20 74 6F 20 69 6E ay be used to in
023760: 69 74 69 61 6C 69 7A 65 0D 20 20 20 20 20 61 20 itialize. a
023770: 70 61 72 74 69 63 75 6C 61 72 20 62 61 63 6B 67 particular backg
023780: 72 6F 75 6E 64 20 52 4F 4D 20 6F 72 20 74 68 69 round ROM or thi
023790: 73 20 20 72 6F 75 74 69 6E 65 20 6D 61 79 20 62 s routine may b
0237A0: 65 20 75 73 65 64 20 74 6F 20 69 6E 69 74 69 61 e used to initia
0237B0: 6C 69 7A 65 0D 20 20 20 20 20 61 6C 6C 20 61 76 lize. all av
0237C0: 61 69 6C 61 62 6C 65 20 62 61 63 6B 67 72 6F 75 ailable backgrou
0237D0: 6E 64 20 52 4F 4D 53 2E 0D 0D 20 20 20 20 20 4B nd ROMS... K
0237E0: 4C 20 52 4F 4D 20 57 41 4C 4B 20 69 6E 73 70 65 L ROM WALK inspe
0237F0: 63 74 73 20 74 68 65 20 20 72 6F 6D 73 20 20 61 cts the roms a
023800: 74 20 20 72 6F 6D 20 20 73 65 6C 65 63 74 20 61 t rom select a
023810: 64 64 72 65 73 73 65 73 20 69 6E 20 74 68 65 20 ddresses in the
023820: 72 61 6E 67 65 0D 20 20 20 20 20 31 2E 2E 37 20 range. 1..7
023830: 69 6E 20 20 76 31 2E 30 20 20 66 69 72 6D 77 61 in v1.0 firmwa
023840: 72 65 20 20 61 6E 64 20 20 30 2E 2E 31 35 20 20 re and 0..15
023850: 69 6E 20 20 76 31 2E 31 20 20 66 69 72 6D 77 61 in v1.1 firmwa
023860: 72 65 2E 20 20 54 68 65 20 70 6F 77 65 72 2D 75 re. The power-u
023870: 70 0D 20 20 20 20 20 69 6E 69 74 69 61 6C 69 7A p. initializ
023880: 65 20 65 6E 74 72 79 20 6F 66 20 65 61 63 68 20 e entry of each
023890: 62 61 63 6B 67 72 6F 75 6E 64 20 72 6F 6D 20 20 background rom
0238A0: 66 6F 75 6E 64 20 69 73 20 63 61 6C 6C 65 64 20 found is called
0238B0: 28 75 6E 6C 65 73 73 20 69 74 20 69 73 0D 20 20 (unless it is.
0238C0: 20 20 20 74 68 65 20 63 75 72 72 65 6E 74 20 66 the current f
0238D0: 6F 72 65 67 72 6F 75 6E 64 20 72 6F 6D 20 20 69 oreground rom i
0238E0: 6E 20 20 76 31 2E 31 29 2E 20 20 54 68 69 73 20 n v1.1). This
0238F0: 20 65 6E 74 72 79 20 20 6D 61 79 20 61 6C 6C 6F entry may allo
023900: 73 20 70 61 72 74 20 6F 66 20 20 74 68 65 20 20 s part of the
023910: 63 6C 6F 73 65 20 20 64 6F 77 6E 20 72 65 71 75 close down requ
023920: 69 72 65 64 20 62 65 66 6F 72 65 20 61 20 6E 65 ired before a ne
023930: 77 20 72 61 6D 0D 20 20 20 20 20 66 6F 72 65 67 w ram. foreg
023940: 72 6F 75 6E 64 20 70 72 6F 67 72 61 6D 20 69 73 round program is
023950: 20 6C 6F 61 64 65 64 2C 20 61 73 20 69 73 20 72 loaded, as is r
023960: 65 71 75 69 72 65 64 20 62 79 20 4D 43 20 42 4F equired by MC BO
023970: 4F 54 20 50 52 4F 47 52 41 4D 2E 0D 0D 20 20 20 OT PROGRAM...
023980: 20 20 54 68 65 20 63 6C 6F 73 65 20 64 6F 77 6E The close down
023990: 20 6D 75 73 74 20 65 6E 73 75 72 65 20 74 68 61 must ensure tha
0239A0: 74 20 74 68 65 72 65 20 61 72 65 20 6E 6F 20 69 t there are no i
0239B0: 6E 74 65 72 72 75 70 74 20 6F 72 20 6F 74 68 65 nterrupt or othe
0239C0: 72 20 65 76 65 6E 74 73 0D 20 20 20 20 20 61 63 r events. ac
0239D0: 74 69 76 65 20 61 6E 64 20 75 73 69 6E 67 20 20 tive and using
0239E0: 6D 65 6D 6F 72 79 20 20 77 68 69 63 68 20 20 6D memory which m
0239F0: 69 67 68 74 20 20 62 65 20 20 64 61 6D 61 67 65 ight be damage
023A00: 64 20 20 62 79 20 20 6C 6F 61 64 69 6E 67 20 61 d by loading a
023A10: 20 6E 65 77 0D 20 20 20 20 20 70 72 6F 67 72 61 new. progra
023A20: 6D 20 69 6E 74 6F 20 6D 65 6D 6F 72 79 2E 20 49 m into memory. I
023A30: 6E 20 74 68 65 20 63 6F 6D 70 6C 65 74 65 20 63 n the complete c
023A40: 6C 6F 73 65 20 64 6F 77 6E 20 4D 43 20 42 4F 4F lose down MC BOO
023A50: 54 20 50 52 4F 47 52 41 4D 20 64 6F 65 73 3A 0D T PROGRAM does:.
023A60: 0D 20 20 20 20 20 53 4F 55 4E 44 20 52 45 53 45 . SOUND RESE
023A70: 54 20 2D 20 74 6F 20 6B 69 6C 6C 20 6F 66 20 73 T - to kill of s
023A80: 6F 75 6E 64 20 67 65 6E 65 72 61 74 69 6F 6E 0D ound generation.
023A90: 0D 20 20 20 20 20 61 6E 64 20 4F 55 54 20 74 6F . and OUT to
023AA0: 20 49 2F 4F 20 70 6F 72 74 20 26 46 38 46 46 20 I/O port &F8FF
023AB0: 2D 20 72 65 73 65 74 20 61 6E 79 20 65 78 74 65 - reset any exte
023AC0: 72 6E 61 6C 20 69 6E 74 65 72 75 70 74 73 20 73 rnal interupts s
023AD0: 6F 75 72 63 65 73 0D 20 20 20 20 20 4B 4C 20 43 ources. KL C
023AE0: 48 4F 4B 45 20 4F 46 46 20 2D 20 74 6F 20 6B 69 HOKE OFF - to ki
023AF0: 6C 6C 20 6F 66 20 65 76 65 6E 74 73 0D 20 20 20 ll of events.
023B00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
023B10: 1E 00 01 00 02 09 4E E5 1E 00 C1 02 00 00 00 02 ......N.........
023B20: 1E 00 C6 02 00 00 00 02 1E 00 C2 02 00 00 00 02 ................
023B30: 1E 00 C7 02 00 00 00 02 1E 00 C3 02 00 00 00 02 ................
023B40: 1E 00 C8 02 00 00 00 02 1E 00 C4 02 00 00 00 02 ................
023B50: 1E 00 C9 02 00 00 00 02 1E 00 C5 02 00 00 00 02 ................
023B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023C00: 63 61 74 65 20 73 6F 6D 65 0D 20 20 20 20 20 6D cate some. m
023C10: 65 6D 6F 72 79 20 66 6F 72 20 74 68 65 20 62 61 emory for the ba
023C20: 63 6B 67 72 6F 75 6E 64 20 72 6F 6D 73 20 75 73 ckground roms us
023C30: 65 20 20 62 79 20 20 61 64 6A 75 73 74 69 6E 67 e by adjusting
023C40: 20 74 68 65 20 76 61 6C 75 65 73 20 69 6E 20 44 the values in D
023C50: 45 20 61 6E 64 0D 20 20 20 20 20 48 4C 20 62 65 E and. HL be
023C60: 66 6F 72 65 20 72 65 74 75 72 6E 69 6E 67 2E 20 fore returning.
023C70: 4F 6E 63 65 20 74 68 65 20 52 4F 4D 20 68 61 73 Once the ROM has
023C80: 20 62 65 65 6E 20 69 6E 69 74 69 61 6C 69 7A 65 been initialize
023C90: 64 20 74 68 65 20 4B 65 72 6E 61 6C 20 61 64 64 d the Kernal add
023CA0: 73 0D 20 20 20 20 20 69 74 20 74 6F 20 74 68 65 s. it to the
023CB0: 20 6C 69 73 74 20 6F 66 20 65 78 74 65 72 6E 61 list of externa
023CC0: 6C 20 63 6F 6D 6D 61 6E 64 20 20 73 65 72 76 65 l command serve
023CD0: 72 73 2C 20 61 6E 64 20 6E 6F 74 65 73 20 74 68 rs, and notes th
023CE0: 65 20 62 61 73 65 20 6F 66 20 74 68 65 0D 20 20 e base of the.
023CF0: 20 20 20 61 72 65 61 20 77 68 69 63 68 20 74 68 area which th
023D00: 65 20 52 4F 4D 20 68 61 73 20 61 6C 6C 6F 63 61 e ROM has alloca
023D10: 74 65 64 20 20 74 6F 20 20 69 74 73 65 6C 66 20 ted to itself
023D20: 20 61 74 20 74 68 65 20 74 6F 70 20 6F 66 20 6D at the top of m
023D30: 65 6D 6F 72 79 20 28 69 66 0D 20 20 20 20 20 61 emory (if. a
023D40: 6E 79 29 2E 20 53 75 62 73 65 71 75 65 6E 74 20 ny). Subsequent
023D50: 46 41 52 20 43 41 4C 4C 73 20 74 6F 20 20 65 6E FAR CALLs to en
023D60: 74 72 69 65 73 20 20 69 6E 20 20 74 68 65 20 72 tries in the r
023D70: 6F 6D 20 77 69 6C 6C 20 61 75 74 6F 6D 61 74 69 om will automati
023D80: 63 61 6C 6C 79 0D 20 20 20 20 20 73 65 74 20 74 cally. set t
023D90: 68 65 20 49 59 20 69 6E 64 65 78 20 72 65 67 69 he IY index regi
023DA0: 73 74 65 72 20 74 6F 20 70 6F 69 6E 74 20 61 74 ster to point at
023DB0: 20 74 68 65 20 52 4F 4D 73 20 75 70 70 65 72 20 the ROMs upper
023DC0: 6D 65 6D 6F 72 79 20 61 72 65 61 2E 0D 0D 20 20 memory area...
023DD0: 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -------------
023DE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
023DF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
023E00: 74 68 65 20 63 65 6E 74 72 61 6C 20 33 32 4B 20 the central 32K
023E10: 6F 66 20 6D 65 6D 6F 72 79 2E 20 69 2E 65 2E 20 of memory. i.e.
023E20: 6E 6F 74 20 75 6E 64 65 72 20 61 20 72 6F 6D 2E not under a rom.
023E30: 0D 0D 20 20 20 20 20 54 68 65 20 66 6F 72 6D 61 .. The forma
023E40: 74 20 6F 66 20 61 20 63 6F 6D 6D 61 6E 64 20 74 t of a command t
023E50: 61 62 6C 65 20 69 73 20 64 65 73 63 72 69 62 65 able is describe
023E60: 64 20 6C 61 74 65 72 2E 0D 0D 0D 20 20 20 20 20 d later....
023E70: 26 42 43 44 34 20 2D 20 4B 4C 20 46 49 4E 44 20 &BCD4 - KL FIND
023E80: 43 4F 4D 4D 41 4E 44 20 2D 20 53 65 61 72 63 68 COMMAND - Search
023E90: 20 66 6F 72 20 52 53 58 0D 0D 20 20 20 20 20 45 for RSX.. E
023EA0: 6E 74 72 79 3A 0D 0D 20 20 20 20 20 48 4C 20 3D ntry:.. HL =
023EB0: 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 address of the
023EC0: 63 6F 6D 6D 61 6E 64 20 6E 61 6D 65 20 74 6F 20 command name to
023ED0: 73 65 61 72 63 68 20 66 6F 72 0D 0D 20 20 20 20 search for..
023EE0: 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 49 46 20 Exit:.. IF
023EF0: 61 6E 20 52 53 58 20 6F 72 20 62 61 63 6B 67 72 an RSX or backgr
023F00: 6F 75 6E 64 20 52 4F 4D 20 63 6F 6D 6D 61 6E 64 ound ROM command
023F10: 20 77 61 73 20 66 6F 75 6E 64 3A 0D 0D 20 20 20 was found:..
023F20: 20 20 43 61 72 72 79 20 74 72 75 65 2E 20 43 20 Carry true. C
023F30: 3D 20 52 4F 4D 20 73 65 6C 65 63 74 20 61 64 64 = ROM select add
023F40: 72 65 73 73 0D 20 20 20 20 20 48 4C 20 3D 20 61 ress. HL = a
023F50: 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 72 6F ddress of the ro
023F60: 75 74 69 6E 65 0D 0D 20 20 20 20 20 49 66 20 74 utine.. If t
023F70: 68 65 20 63 6F 6D 6D 61 6E 64 20 77 61 73 20 6E he command was n
023F80: 6F 74 20 66 6F 75 6E 64 3A 0D 0D 20 20 20 20 20 ot found:..
023F90: 43 61 72 72 79 20 66 61 6C 73 65 2E 43 2C 48 4C Carry false.C,HL
023FA0: 20 63 68 61 6E 67 65 64 2E 0D 0D 20 20 20 20 20 changed...
023FB0: 41 2C 42 2C 44 45 20 63 68 61 6E 67 65 64 2E 0D A,B,DE changed..
023FC0: 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 . Notes:..
023FD0: 20 20 20 54 68 65 20 63 6F 6D 6D 61 6E 64 20 6E The command n
023FE0: 61 6D 65 20 70 61 73 73 65 64 20 6D 75 73 74 20 ame passed must
023FF0: 62 65 20 69 6E 20 20 52 41 4D 20 20 62 75 74 20 be in RAM but
024000: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
024010: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 ---------..
024020: 26 42 43 43 45 20 2D 20 4B 4C 20 49 4E 49 54 20 &BCCE - KL INIT
024030: 42 41 43 4B 20 2D 20 49 6E 69 74 69 61 6C 69 7A BACK - Initializ
024040: 65 20 61 20 70 61 72 74 69 63 75 6C 61 72 20 72 e a particular r
024050: 6F 6D 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D om.. Entry:.
024060: 0D 20 20 20 20 20 43 20 3D 20 72 6F 6D 20 73 65 . C = rom se
024070: 6C 65 63 74 20 61 64 64 72 65 73 73 20 6F 66 20 lect address of
024080: 74 68 65 20 72 6F 6D 20 74 6F 20 69 6E 69 74 69 the rom to initi
024090: 61 6C 69 7A 65 0D 20 20 20 20 20 44 45 20 3D 20 alize. DE =
0240A0: 66 69 72 73 74 20 75 73 65 61 62 6C 65 20 62 79 first useable by
0240B0: 74 65 20 6F 66 20 6D 65 6D 6F 72 79 0D 20 20 20 te of memory.
0240C0: 20 20 48 4C 20 3D 20 6C 61 73 74 20 75 73 65 61 HL = last usea
0240D0: 62 6C 65 20 62 79 74 65 20 6F 66 20 6D 65 6D 6F ble byte of memo
0240E0: 72 79 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D ry.. Exit:..
0240F0: 20 20 20 20 20 44 45 20 3D 20 61 64 64 72 65 73 DE = addres
024100: 73 20 6F 66 20 74 68 65 20 6E 65 77 20 66 69 72 s of the new fir
024110: 73 74 20 75 73 65 61 62 6C 65 20 62 79 74 65 20 st useable byte
024120: 6F 66 20 6D 65 6D 6F 72 79 0D 20 20 20 20 20 48 of memory. H
024130: 4C 20 3D 20 61 64 64 72 65 73 73 20 6F 66 20 74 L = address of t
024140: 68 65 20 6E 65 77 20 6C 61 73 74 20 75 73 65 61 he new last usea
024150: 62 6C 65 20 62 79 74 65 20 6F 66 20 6D 65 6D 6F ble byte of memo
024160: 72 79 0D 0D 20 20 20 20 20 41 46 2C 42 20 63 68 ry.. AF,B ch
024170: 61 6E 67 65 64 2E 0D 0D 20 20 20 20 20 4E 6F 74 anged... Not
024180: 65 73 3A 0D 0D 20 20 20 20 20 54 68 65 20 72 6F es:.. The ro
024190: 6D 20 73 65 6C 65 63 74 20 61 64 64 72 65 73 73 m select address
0241A0: 20 6D 75 73 74 20 62 65 20 69 6E 20 74 68 65 20 must be in the
0241B0: 20 72 61 6E 67 65 20 31 2E 2E 37 20 69 6E 20 56 range 1..7 in V
0241C0: 31 2E 30 20 61 6E 64 20 30 2E 2E 31 35 20 69 6E 1.0 and 0..15 in
0241D0: 0D 20 20 20 20 20 56 31 2E 31 20 66 69 72 6D 77 . V1.1 firmw
0241E0: 61 72 65 20 61 6E 64 20 74 68 65 20 72 6F 6D 20 are and the rom
0241F0: 61 74 20 74 68 69 73 20 20 61 64 64 72 65 73 73 at this address
024200: 6D 61 79 20 6C 69 65 20 75 6E 64 65 72 6E 65 61 may lie undernea
024210: 74 68 20 61 20 52 4F 4D 2E 0D 20 20 20 20 20 54 th a ROM.. T
024220: 68 65 20 6E 61 6D 65 20 6D 61 79 20 62 65 20 61 he name may be a
024230: 6E 79 20 6E 75 6D 62 65 72 20 20 6F 66 20 20 63 ny number of c
024240: 68 61 72 61 63 74 65 72 73 20 20 6C 6F 6E 67 20 haracters long
024250: 62 75 74 20 6F 6E 6C 79 20 74 68 65 20 66 69 72 but only the fir
024260: 73 74 20 31 36 0D 20 20 20 20 20 63 68 61 72 61 st 16. chara
024270: 63 74 65 72 73 20 61 72 65 20 73 69 67 6E 69 66 cters are signif
024280: 69 63 61 6E 74 2E 20 20 41 6C 6C 20 20 61 6C 70 icant. All alp
024290: 68 61 62 65 74 69 63 20 20 63 68 61 72 61 63 74 habetic charact
0242A0: 65 72 73 20 20 69 6E 20 20 74 68 65 20 6E 61 6D ers in the nam
0242B0: 65 0D 20 20 20 20 20 73 68 6F 75 6C 64 20 62 65 e. should be
0242C0: 20 69 6E 20 75 70 70 65 72 20 63 61 73 65 20 61 in upper case a
0242D0: 6E 64 20 74 68 65 20 6C 61 73 74 20 63 68 61 72 nd the last char
0242E0: 61 63 74 65 72 20 6F 66 20 74 68 65 20 6E 61 6D acter of the nam
0242F0: 65 20 73 68 6F 75 6C 64 20 68 61 76 65 0D 20 20 e should have.
024300: 20 20 20 62 69 74 20 37 20 73 65 74 2E 0D 0D 20 bit 7 set...
024310: 20 20 20 20 54 68 65 20 72 6F 6D 20 73 65 6C 65 The rom sele
024320: 63 74 20 61 6E 64 20 72 6F 75 74 69 6E 65 20 61 ct and routine a
024330: 64 64 72 65 73 73 65 73 20 72 65 74 75 72 6E 65 ddresses returne
024340: 64 20 61 72 65 20 73 75 69 74 61 62 6C 65 20 66 d are suitable f
024350: 6F 72 20 63 61 6C 6C 69 6E 67 0D 20 20 20 20 20 or calling.
024360: 4B 4C 20 46 41 52 20 50 43 48 4C 2E 0D 0D 20 20 KL FAR PCHL...
024370: 20 20 20 54 68 65 20 6C 69 73 74 20 6F 66 20 65 The list of e
024380: 78 74 65 72 6E 61 6C 20 63 6F 6D 6D 61 6E 64 20 xternal command
024390: 20 73 65 72 76 65 72 73 20 20 69 73 20 67 65 6E servers is gen
0243A0: 65 72 61 74 65 64 20 61 73 20 62 61 63 6B 67 72 erated as backgr
0243B0: 6F 75 6E 64 20 72 6F 6D 73 0D 20 20 20 20 20 61 ound roms. a
0243C0: 6E 64 20 72 73 78 73 20 61 72 65 20 20 69 6E 69 nd rsxs are ini
0243D0: 74 69 61 6C 69 7A 65 64 2E 20 20 54 68 65 20 20 tialized. The
0243E0: 63 6F 6D 6D 61 6E 64 20 20 74 61 62 6C 65 73 20 command tables
0243F0: 20 61 72 65 20 20 73 63 61 6E 6E 65 64 20 20 69 are scanned i
024400: 20 6D 75 73 74 20 62 65 20 61 20 62 61 63 6B 67 must be a backg
024410: 72 6F 75 6E 64 20 72 6F 6D 20 6F 72 0D 20 20 20 round rom or.
024420: 20 20 74 68 65 20 72 65 71 75 65 73 74 20 77 69 the request wi
024430: 6C 6C 20 62 65 20 20 69 67 6E 6F 72 65 64 2E 20 ll be ignored.
024440: 20 49 6E 20 20 76 31 2E 31 20 20 66 69 72 6D 77 In v1.1 firmw
024450: 61 72 65 20 20 74 68 65 20 72 65 75 71 65 73 74 are the reuqest
024460: 20 77 69 6C 6C 20 62 65 0D 20 20 20 20 20 69 67 will be. ig
024470: 6E 6F 72 65 64 20 69 66 20 74 68 65 20 72 6F 6D nored if the rom
024480: 20 69 73 20 74 68 65 20 63 75 72 72 65 6E 74 20 is the current
024490: 66 6F 72 65 67 72 6F 75 6E 64 20 72 6F 6D 2E 0D foreground rom..
0244A0: 0D 20 20 20 20 20 54 68 65 20 66 6F 72 65 67 72 . The foregr
0244B0: 6F 75 6E 64 20 70 72 6F 67 72 61 6D 20 73 68 6F ound program sho
0244C0: 75 6C 64 20 69 6E 69 74 69 61 6C 69 7A 65 20 20 uld initialize
0244D0: 62 61 63 6B 67 72 6F 75 6E 64 20 20 52 4F 4D 53 background ROMS
0244E0: 20 61 74 20 61 6E 20 65 61 72 6C 79 0D 20 20 20 at an early.
0244F0: 20 20 73 74 61 67 65 2C 20 62 65 66 6F 72 65 20 stage, before
024500: 69 74 20 75 73 65 73 20 74 68 65 20 6D 65 6D 6F it uses the memo
024510: 72 79 20 69 74 20 20 69 73 20 67 69 76 65 6E 2E ry it is given.
024520: 20 49 74 20 6D 61 79 20 63 68 6F 73 65 20 77 68 It may chose wh
024530: 65 74 68 65 72 20 74 6F 0D 20 20 20 20 20 65 6E ether to. en
024540: 61 62 6C 65 20 62 61 63 6B 67 72 6F 75 6E 64 20 able background
024550: 52 4F 4D 53 20 6F 72 20 6E 6F 74 2E 20 4B 4C 20 ROMS or not. KL
024560: 52 4F 4D 20 20 57 41 4C 4B 20 6D 61 79 20 62 65 ROM WALK may be
024570: 20 75 73 65 64 20 74 6F 20 69 6E 69 74 69 61 6C used to initial
024580: 69 7A 65 0D 20 20 20 20 20 61 20 70 61 72 74 69 ize. a parti
024590: 63 75 6C 61 72 20 62 61 63 6B 67 72 6F 75 6E 64 cular background
0245A0: 20 52 4F 4D 20 6F 72 20 74 68 69 73 20 20 72 6F ROM or this ro
0245B0: 75 74 69 6E 65 20 6D 61 79 20 62 65 20 75 73 65 utine may be use
0245C0: 64 20 74 6F 20 69 6E 69 74 69 61 6C 69 7A 65 0D d to initialize.
0245D0: 20 20 20 20 20 61 6C 6C 20 20 61 76 61 69 6C 61 all availa
0245E0: 62 6C 65 20 20 62 61 63 6B 67 72 6F 75 6E 64 20 ble background
0245F0: 20 52 4F 4D 53 20 20 6F 72 20 20 74 68 69 73 20 ROMS or this
024600: 6E 20 74 68 65 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 n the.......
024610: 20 6F 70 70 6F 73 69 74 65 20 6F 72 64 65 72 20 opposite order
024620: 74 6F 20 74 68 61 74 20 69 6E 20 20 77 68 69 63 to that in whic
024630: 68 20 20 74 68 65 20 63 6F 6D 6D 61 6E 64 20 73 h the command s
024640: 65 72 76 65 72 73 20 77 65 72 65 20 69 6E 74 72 ervers were intr
024650: 6F 64 75 63 65 64 2E 0D 20 20 20 20 20 54 68 75 oduced.. Thu
024660: 73 2C 20 52 53 58 73 20 77 69 6C 6C 20 74 65 6E s, RSXs will ten
024670: 64 20 74 6F 20 20 74 61 6B 65 20 20 70 72 65 63 d to take prec
024680: 65 64 65 6E 63 65 20 20 6F 76 65 72 20 62 61 63 edence over bac
024690: 6B 67 72 6F 75 6E 64 20 72 6F 6D 73 2C 20 73 69 kground roms, si
0246A0: 6E 63 65 0D 20 20 20 20 20 72 73 78 73 20 61 72 nce. rsxs ar
0246B0: 65 20 69 6E 20 20 67 65 6E 65 72 61 6C 2C 20 20 e in general,
0246C0: 69 6E 69 74 69 61 6C 69 7A 65 64 20 20 61 66 74 initialized aft
0246D0: 65 72 20 20 62 61 63 6B 67 72 6F 75 6E 64 20 72 er background r
0246E0: 6F 6D 73 2E 20 42 61 63 6B 67 72 6F 75 6E 64 0D oms. Background.
0246F0: 20 20 20 20 20 72 6F 6D 73 20 61 72 65 20 6E 6F roms are no
024700: 72 6D 61 6C 6C 79 20 69 6E 69 74 69 61 6C 69 7A rmally initializ
024710: 65 64 20 69 6E 20 72 65 76 65 72 73 65 20 20 6F ed in reverse o
024720: 72 64 65 72 20 6F 66 20 72 6F 6D 20 73 65 6C 65 rder of rom sele
024730: 63 74 20 61 64 64 72 65 73 73 2C 0D 20 20 20 20 ct address,.
024740: 20 73 6F 20 6C 6F 77 65 72 20 6E 75 6D 62 65 72 so lower number
024750: 65 64 20 72 6F 6D 73 20 77 69 6C 6C 20 74 61 6B ed roms will tak
024760: 65 20 70 72 65 63 65 64 65 6E 63 65 20 6F 76 65 e precedence ove
024770: 72 20 68 69 67 68 65 72 2E 0D 0D 20 20 20 20 20 r higher...
024780: 54 68 65 20 66 69 72 73 74 2D 65 6E 74 72 79 20 The first-entry
024790: 69 6E 20 20 61 20 20 62 61 63 6B 67 72 6F 75 6E in a backgroun
0247A0: 64 20 20 72 6F 6D 73 20 20 63 6F 6D 6D 61 6E 64 d roms command
0247B0: 20 20 6E 61 6D 65 20 20 74 61 62 6C 65 20 28 74 name table (t
0247C0: 68 65 20 6F 6E 65 0D 20 20 20 20 20 61 73 73 6F he one. asso
0247D0: 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 ciated with the
0247E0: 70 6F 77 65 72 2D 75 70 20 65 6E 74 72 79 29 20 power-up entry)
0247F0: 6D 61 79 20 20 62 65 20 20 75 73 65 64 20 61 73 may be used as
024800: 20 72 6F 75 74 69 6E 65 20 20 6D 61 79 20 20 62 routine may b
024810: 65 20 20 75 73 65 64 20 20 74 6F 0D 20 20 20 20 e used to.
024820: 20 69 6E 69 74 69 61 6C 69 7A 65 20 70 61 72 74 initialize part
024830: 69 63 75 6C 61 72 20 72 6F 6D 73 2E 0D 0D 20 20 icular roms...
024840: 20 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 This routine
024850: 63 61 75 73 65 73 20 74 68 65 20 62 61 63 6B 67 causes the backg
024860: 72 6F 75 6E 64 20 20 72 6F 6D 73 20 70 6F 77 65 round roms powe
024870: 72 2D 75 70 20 69 6E 69 74 69 61 6C 69 7A 61 74 r-up initializat
024880: 69 6F 6E 20 65 6E 74 72 79 0D 20 20 20 20 20 74 ion entry. t
024890: 6F 20 62 65 20 63 61 6C 6C 65 64 2E 20 54 68 69 o be called. Thi
0248A0: 73 20 65 6E 74 72 79 20 6D 61 79 20 20 61 6C 6C s entry may all
0248B0: 6F 63 61 74 65 20 20 73 6F 6D 65 20 6D 65 6D 6F ocate some memo
0248C0: 72 79 20 66 6F 72 20 74 68 65 20 62 61 63 6B 67 ry for the backg
0248D0: 72 6F 75 6E 64 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 round.......
0248E0: 20 72 6F 6D 73 20 75 73 65 20 62 79 20 61 64 6A roms use by adj
0248F0: 75 73 74 69 6E 67 20 74 68 65 20 76 61 6C 75 65 usting the value
024900: 73 20 20 69 6E 20 20 44 45 20 61 6E 64 20 48 4C s in DE and HL
024910: 20 62 65 66 6F 72 65 20 72 65 74 75 72 6E 69 6E before returnin
024920: 67 2E 20 4F 6E 63 65 0D 20 20 20 20 20 74 68 65 g. Once. the
024930: 20 52 4F 4D 20 68 61 73 20 20 62 65 65 6E 20 20 ROM has been
024940: 69 6E 69 74 69 61 6C 69 7A 65 64 20 20 74 68 65 initialized the
024950: 20 20 4B 65 72 6E 61 6C 20 20 61 64 64 73 20 20 Kernal adds
024960: 69 74 20 20 74 6F 20 20 74 68 65 20 6C 69 73 74 it to the list
024970: 20 6F 66 0D 20 20 20 20 20 65 78 74 65 72 6E 61 of. externa
024980: 6C 20 63 6F 6D 6D 61 6E 64 20 73 65 72 76 65 72 l command server
024990: 73 2C 20 61 6E 64 20 6E 6F 74 65 73 20 74 68 65 s, and notes the
0249A0: 20 62 61 73 65 20 6F 66 20 74 68 65 20 61 72 65 base of the are
0249B0: 61 20 77 68 69 63 68 20 74 68 65 20 52 4F 4D 0D a which the ROM.
0249C0: 20 20 20 20 20 68 61 73 20 61 6C 6C 6F 63 61 74 has allocat
0249D0: 65 64 20 74 6F 20 69 74 73 65 6C 66 20 61 74 20 ed to itself at
0249E0: 74 68 65 20 74 6F 70 20 20 6F 66 20 6D 65 6D 6F the top of memo
0249F0: 72 79 20 28 69 66 20 61 6E 79 29 2E 20 53 75 62 ry (if any). Sub
024A00: 20 74 68 65 20 72 6F 6D 73 20 6E 61 6D 65 2E 20 the roms name.
024A10: 4B 4C 0D 20 20 20 20 20 46 49 4E 44 20 43 4F 4D KL. FIND COM
024A20: 4D 41 4E 44 20 6D 61 79 20 62 65 20 75 73 65 64 MAND may be used
024A30: 2C 20 74 68 65 72 65 66 6F 72 65 2C 20 20 74 6F , therefore, to
024A40: 20 66 69 6E 64 20 6F 75 74 20 77 68 65 74 68 65 find out whethe
024A50: 72 20 61 20 70 61 72 74 69 63 75 6C 61 72 0D 20 r a particular.
024A60: 20 20 20 20 62 61 63 6B 67 72 6F 75 6E 64 20 72 background r
024A70: 6F 6D 20 68 61 73 20 62 65 65 6E 20 69 6E 69 74 om has been init
024A80: 69 61 6C 69 7A 65 64 2E 0D 0D 20 20 20 20 20 57 ialized... W
024A90: 68 65 6E 20 73 65 61 72 63 68 69 6E 67 20 66 6F hen searching fo
024AA0: 72 20 61 20 66 6F 72 65 67 72 6F 75 6E 64 20 20 r a foreground
024AB0: 70 72 6F 67 72 61 6D 2C 20 20 72 6F 6D 73 20 61 program, roms a
024AC0: 72 65 20 69 6E 73 70 65 63 74 65 64 20 73 74 61 re inspected sta
024AD0: 72 74 69 6E 67 0D 20 20 20 20 20 77 69 74 68 20 rting. with
024AE0: 72 6F 6D 20 30 20 61 6E 64 20 20 77 6F 72 6B 69 rom 0 and worki
024AF0: 6E 67 20 20 75 70 77 61 72 64 73 2E 20 20 54 68 ng upwards. Th
024B00: 65 20 20 73 65 61 72 63 68 20 20 63 65 61 73 65 e search cease
024B10: 73 20 20 77 68 65 6E 20 74 68 65 20 66 69 72 73 s when the firs
024B20: 74 0D 20 20 20 20 20 75 6E 75 73 65 64 20 72 6F t. unused ro
024B30: 6D 20 61 64 64 72 65 73 73 20 67 72 65 61 74 65 m address greate
024B40: 72 20 74 68 61 6E 20 30 20 6F 6E 20 76 31 2E 31 r than 0 on v1.1
024B50: 20 66 69 72 6D 77 61 72 65 20 61 6E 64 20 67 72 firmware and gr
024B60: 65 61 74 65 72 20 74 68 61 6E 20 31 35 0D 20 20 eater than 15.
024B70: 20 20 20 6F 6E 20 76 31 2E 31 20 66 69 72 6D 77 on v1.1 firmw
024B80: 61 72 65 20 69 73 20 66 6F 75 6E 64 2E 0D 0D 20 are is found...
024B90: 20 20 20 20 54 68 65 20 6F 6E 2D 62 6F 61 72 64 The on-board
024BA0: 20 62 61 73 69 63 20 6D 61 79 20 62 65 20 20 65 basic may be e
024BB0: 6E 74 65 72 65 64 20 20 62 79 20 20 73 65 61 72 ntered by sear
024BC0: 63 68 69 6E 67 20 66 6F 72 20 61 6E 64 20 69 6E ching for and in
024BD0: 76 6F 6B 69 6E 67 20 74 68 65 0D 20 20 20 20 20 voking the.
024BE0: 63 6F 6D 6D 61 6E 64 20 27 42 41 53 49 43 27 0D command 'BASIC'.
024BF0: 0D 20 20 20 20 20 49 66 20 20 61 20 20 66 6F 72 . If a for
024C00: 73 65 71 75 65 6E 74 20 46 41 52 0D 20 20 20 20 sequent FAR.
024C10: 20 43 41 4C 4C 73 20 74 6F 20 65 6E 74 72 69 65 CALLs to entrie
024C20: 73 20 20 69 6E 20 20 74 68 65 20 20 52 4F 4D 20 s in the ROM
024C30: 20 77 69 6C 6C 20 20 61 75 74 6F 6D 61 74 69 63 will automatic
024C40: 61 6C 6C 79 20 20 73 65 74 20 20 74 68 65 20 49 ally set the I
024C50: 59 20 69 6E 64 65 78 0D 20 20 20 20 20 72 65 67 Y index. reg
024C60: 69 73 74 65 72 20 74 6F 20 70 6F 69 6E 74 20 61 ister to point a
024C70: 74 20 74 68 65 20 52 4F 4D 73 20 75 70 70 65 72 t the ROMs upper
024C80: 20 6D 65 6D 6F 72 79 20 61 72 65 61 2E 0D 0D 20 memory area...
024C90: 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ------------
024CA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
024CB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
024CC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
024CD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 ----------..
024CE0: 20 26 42 43 44 31 20 2D 20 4B 4C 20 4C 4F 47 20 &BCD1 - KL LOG
024CF0: 45 58 54 20 2D 20 49 6E 74 72 6F 64 75 63 65 20 EXT - Introduce
024D00: 61 6E 20 52 53 58 20 74 6F 20 74 68 65 20 66 69 an RSX to the fi
024D10: 72 6D 77 61 72 65 2E 0D 0D 20 20 20 20 20 45 6E rmware... En
024D20: 74 72 79 3A 0D 0D 20 20 20 20 20 42 43 20 3D 20 try:.. BC =
024D30: 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 52 address of the R
024D40: 53 58 20 63 6F 6D 6D 61 6E 64 20 74 61 62 6C 65 SX command table
024D50: 0D 20 20 20 20 20 48 4C 20 3D 20 34 20 62 79 74 . HL = 4 byt
024D60: 65 20 61 72 65 61 20 6F 66 20 52 41 4D 20 66 6F e area of RAM fo
024D70: 72 20 74 68 65 20 4B 65 72 6E 61 6C 73 20 75 73 r the Kernals us
024D80: 65 2E 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D e... Exit:..
024D90: 20 20 20 20 20 44 45 20 63 68 61 6E 67 65 64 2E DE changed.
024DA0: 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 .. Notes:..
024DB0: 20 20 20 20 42 6F 74 68 20 74 68 65 20 52 53 58 Both the RSX
024DC0: 73 20 63 6F 6D 6D 61 6E 64 20 74 61 62 6C 65 20 s command table
024DD0: 61 6E 64 20 20 74 68 65 20 20 4B 65 72 6E 61 6C and the Kernal
024DE0: 73 20 73 74 6F 72 61 67 65 20 61 72 65 61 20 6D s storage area m
024DF0: 75 73 74 20 6C 69 65 20 69 6E 0D 20 20 20 20 20 ust lie in.
024E00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
024E10: 1F 00 01 00 02 09 4E E5 1F 00 C1 02 00 00 00 02 ......N.........
024E20: 1F 00 C6 02 00 00 00 02 1F 00 C2 02 00 00 00 02 ................
024E30: 1F 00 C7 02 00 00 00 02 1F 00 C3 02 00 00 00 02 ................
024E40: 1F 00 C8 02 00 00 00 02 1F 00 C4 02 00 00 00 02 ................
024E50: 1F 00 C9 02 00 00 00 02 1F 00 C5 02 00 00 00 02 ................
024E60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024F00: 65 67 72 6F 75 6E 64 20 20 72 6F 6D 20 20 20 63 eground rom c
024F10: 6F 6D 6D 61 6E 64 20 20 20 69 73 20 20 20 66 6F ommand is fo
024F20: 75 6E 64 20 20 20 74 68 65 20 20 20 72 6F 6D 20 und the rom
024F30: 20 69 73 20 20 65 6E 74 65 72 65 64 0D 20 20 20 is entered.
024F40: 20 20 75 6E 63 6F 6E 64 69 74 69 6F 6E 61 6C 6C unconditionall
024F50: 79 20 61 6E 64 20 74 68 69 73 20 72 6F 75 74 69 y and this routi
024F60: 6E 65 20 6E 65 76 65 72 20 72 65 74 75 72 6E 73 ne never returns
024F70: 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D ... --------
024F80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
024F90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
024FA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
024FB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D --------------..
024FC0: 20 20 20 20 20 26 42 43 44 37 20 2D 20 4B 4C 20 &BCD7 - KL
024FD0: 4E 45 57 20 46 52 41 4D 45 20 46 4C 59 20 2D 20 NEW FRAME FLY -
024FE0: 20 49 6E 69 74 69 61 6C 69 7A 65 20 20 61 6E 64 Initialize and
024FF0: 20 70 75 74 20 61 20 62 6C 6F 63 6B 20 6F 6E 74 put a block ont
025000: 6F 20 74 68 65 20 66 72 61 6D 65 0D 20 20 20 20 o the frame.
025010: 20 66 6C 79 62 61 63 6B 20 6C 69 73 74 2E 0D 0D flyback list...
025020: 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 Entry:..
025030: 20 20 48 4C 20 3D 20 61 64 64 72 65 73 73 20 6F HL = address o
025040: 66 20 74 68 65 20 66 72 61 6D 65 20 66 6C 79 62 f the frame flyb
025050: 61 63 6B 20 62 6C 6F 63 6B 0D 20 20 20 20 20 42 ack block. B
025060: 20 3D 20 65 76 65 6E 74 20 63 6C 61 73 73 0D 20 = event class.
025070: 20 20 20 20 43 20 3D 20 72 6F 6D 20 73 65 6C 65 C = rom sele
025080: 63 74 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 ct address of th
025090: 65 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 0D e event routine.
0250A0: 20 20 20 20 20 44 45 20 3D 20 61 64 64 72 65 73 DE = addres
0250B0: 73 20 6F 66 20 74 68 65 20 65 76 65 6E 74 20 72 s of the event r
0250C0: 6F 75 74 69 6E 65 0D 0D 20 20 20 20 20 45 78 69 outine.. Exi
0250D0: 74 3A 0D 0D 20 20 20 20 20 41 46 2C 44 45 2C 48 t:.. AF,DE,H
0250E0: 4C 20 63 68 61 6E 67 65 64 2E 0D 0D 20 20 20 20 L changed...
0250F0: 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 68 Notes:.. Th
025100: 6E 64 20 6D 75 73 74 20 6C 69 65 20 69 6E 20 74 nd must lie in t
025110: 68 65 20 63 65 6E 74 72 61 6C 20 33 32 6B 0D 20 he central 32k.
025120: 20 20 20 20 6F 66 20 72 61 6D 2E 20 54 68 65 20 of ram. The
025130: 6C 61 73 74 20 37 20 62 79 74 65 73 20 6F 66 20 last 7 bytes of
025140: 74 68 65 20 74 69 63 6B 20 62 6C 6F 63 6B 20 61 the tick block a
025150: 72 65 20 61 6E 20 65 76 65 6E 74 20 62 6C 6F 63 re an event bloc
025160: 6B 20 77 68 69 63 68 20 69 73 0D 20 20 20 20 20 k which is.
025170: 69 6E 69 74 69 61 6C 69 7A 65 64 20 74 6F 20 72 initialized to r
025180: 65 66 6C 65 63 74 20 20 74 68 65 20 20 70 61 72 eflect the par
025190: 61 6D 65 74 65 72 73 20 20 70 61 73 73 65 64 20 ameters passed
0251A0: 20 69 6E 20 20 42 2C 43 2C 44 45 2E 20 54 68 65 in B,C,DE. The
0251B0: 20 65 78 61 63 74 0D 20 20 20 20 20 6C 61 79 6F exact. layo
0251C0: 75 74 20 6F 66 20 61 20 66 61 73 74 20 74 69 63 ut of a fast tic
0251D0: 6B 65 72 20 62 6C 6F 63 6B 20 69 73 20 64 65 73 ker block is des
0251E0: 63 72 69 62 65 64 20 6C 61 74 65 72 2E 0D 0D 20 cribed later...
0251F0: 20 20 20 20 54 68 65 20 66 61 73 74 20 74 69 63 The fast tic
025200: 6B 65 72 20 62 6C 6F 63 6B 20 69 73 20 61 70 70 ker block is app
025210: 65 6E 64 65 64 20 74 6F 20 74 68 65 20 66 61 73 ended to the fas
025220: 74 20 74 69 63 6B 65 72 20 6C 69 73 74 20 69 66 t ticker list if
025230: 20 69 74 20 69 73 20 6E 6F 74 0D 20 20 20 20 20 it is not.
025240: 61 6C 72 65 61 64 79 20 6F 6E 20 69 74 2E 0D 0D already on it...
025250: 0D 0D 0D 0D 0D 0D 20 20 20 20 20 54 68 65 20 66 ...... The f
025260: 61 73 74 20 74 69 63 6B 65 72 20 66 61 63 69 6C ast ticker facil
025270: 69 74 79 20 69 73 20 6E 6F 74 20 20 69 6E 74 65 ity is not inte
025280: 6E 64 65 64 20 66 6F 72 20 67 65 6E 65 72 61 6C nded for general
025290: 20 75 73 65 2E 20 48 6F 77 65 76 65 72 2C 20 69 use. However, i
0252A0: 74 0D 20 20 20 20 20 64 6F 65 73 20 61 6C 6C 6F t. does allo
0252B0: 77 20 20 72 65 6C 61 74 69 76 65 6C 79 20 20 73 w relatively s
0252C0: 68 6F 72 74 20 20 74 69 6D 65 73 20 20 74 6F 20 hort times to
0252D0: 20 62 65 20 20 6D 65 61 73 75 72 65 64 20 20 67 be measured g
0252E0: 69 76 69 6E 67 20 67 72 65 61 74 65 72 0D 20 20 iving greater.
0252F0: 20 20 20 72 65 73 6F 6C 75 74 69 6F 6E 20 74 68 resolution th
025300: 65 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 e frame flyback
025310: 62 6C 6F 63 6B 20 69 73 20 39 20 20 62 79 74 65 block is 9 byte
025320: 73 20 20 6C 6F 6E 67 20 20 61 6E 64 20 6D 75 73 s long and mus
025330: 74 20 6C 69 65 20 69 6E 20 74 68 65 20 63 65 6E t lie in the cen
025340: 74 72 61 6C 0D 20 20 20 20 20 33 32 6B 20 6F 66 tral. 32k of
025350: 20 72 61 6D 2E 20 54 68 65 20 6C 61 73 74 20 37 ram. The last 7
025360: 20 62 79 74 65 73 20 20 6F 66 20 20 74 68 65 20 bytes of the
025370: 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 62 6C frame flyback bl
025380: 6F 63 6B 20 61 72 65 20 61 6E 20 65 76 65 6E 74 ock are an event
025390: 0D 20 20 20 20 20 62 6C 6F 63 6B 20 77 68 69 63 . block whic
0253A0: 68 20 72 65 66 6C 65 63 74 73 20 20 74 68 65 20 h reflects the
0253B0: 20 70 61 72 61 6D 65 74 65 72 73 20 20 70 61 73 parameters pas
0253C0: 73 65 64 20 20 69 6E 20 20 42 2C 43 2C 44 45 2E sed in B,C,DE.
0253D0: 20 20 20 54 68 65 20 65 78 61 63 74 0D 20 20 20 The exact.
0253E0: 20 20 6C 61 79 6F 75 74 20 6F 66 20 61 20 66 72 layout of a fr
0253F0: 61 6D 65 20 66 6C 79 62 61 63 6B 20 62 6C 6F 63 ame flyback bloc
025400: 6B 20 69 73 20 64 65 73 63 72 69 62 65 64 20 6C k is described l
025410: 61 74 65 72 2E 0D 0D 20 20 20 20 20 54 68 65 20 ater... The
025420: 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 62 6C frame flyback bl
025430: 6F 63 6B 20 69 73 20 61 70 70 65 6E 64 65 64 20 ock is appended
025440: 74 6F 20 74 68 65 20 66 72 61 6D 65 20 66 6C 79 to the frame fly
025450: 62 61 63 6B 20 6C 69 73 74 20 69 66 20 69 74 20 back list if it
025460: 69 73 0D 20 20 20 20 20 6E 6F 74 20 61 6C 72 65 is. not alre
025470: 61 64 79 20 6F 6E 20 69 74 2E 0D 0D 20 20 20 20 ady on it...
025480: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 6E This routine en
025490: 61 62 6C 65 73 20 69 6E 74 65 72 75 70 74 73 2E ables interupts.
0254A0: 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D .. ---------
0254B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0254C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0254D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0254E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 ------------.
0254F0: 20 20 2D 0D 20 20 20 20 20 26 42 43 44 41 20 2D -. &BCDA -
025500: 61 6E 20 74 68 65 20 67 65 6E 65 72 61 6C 20 74 an the general t
025510: 69 63 6B 65 72 20 66 61 63 69 6C 69 74 69 65 73 icker facilities
025520: 2E 0D 0D 20 20 20 20 20 54 68 69 73 20 72 6F 75 ... This rou
025530: 74 69 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E 74 tine enables int
025540: 65 72 75 70 74 73 2E 0D 0D 20 20 20 20 20 2D 2D erupts... --
025550: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025560: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025570: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025580: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025590: 2D 2D 2D 0D 20 20 20 20 20 2D 0D 20 20 20 20 20 ---. -.
0255A0: 26 42 43 45 33 20 2D 20 4B 4C 20 41 44 44 20 46 &BCE3 - KL ADD F
0255B0: 41 53 54 20 54 49 43 4B 45 52 20 2D 20 50 75 74 AST TICKER - Put
0255C0: 20 61 20 62 6C 6F 63 6B 20 6F 6E 74 6F 20 74 68 a block onto th
0255D0: 65 20 66 61 73 74 20 74 69 63 6B 65 72 20 6C 69 e fast ticker li
0255E0: 73 74 2E 0D 0D 0D 20 20 20 20 20 48 4C 20 3D 20 st.... HL =
0255F0: 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 66 address of the f
025600: 61 73 74 20 74 69 63 6B 65 72 20 62 6C 6F 63 6B ast ticker block
025610: 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 .. Exit:..
025620: 20 20 20 41 46 2C 44 45 2C 48 4C 20 63 68 61 6E AF,DE,HL chan
025630: 67 65 64 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 ged... Notes
025640: 3A 0D 0D 20 20 20 20 20 54 68 65 20 66 61 73 74 :.. The fast
025650: 20 74 69 63 6B 65 72 20 62 6C 6F 63 6B 20 69 73 ticker block is
025660: 20 39 20 62 79 74 65 73 20 6C 6F 6E 67 20 20 61 9 bytes long a
025670: 6E 64 20 6D 75 73 74 20 6C 69 65 20 69 6E 20 74 nd must lie in t
025680: 68 65 20 63 65 6E 74 72 61 6C 20 33 32 6B 0D 20 he central 32k.
025690: 20 20 20 20 6F 66 20 72 61 6D 2E 20 54 68 65 20 of ram. The
0256A0: 6C 61 73 74 20 37 20 62 79 74 65 73 20 6F 66 20 last 7 bytes of
0256B0: 20 74 68 65 20 20 66 61 73 74 20 74 69 63 6B 65 the fast ticke
0256C0: 72 20 62 6C 6F 63 6B 20 61 72 65 20 61 6E 20 65 r block are an e
0256D0: 76 65 6E 74 20 62 6C 6F 63 6B 0D 20 20 20 20 20 vent block.
0256E0: 77 68 69 63 68 20 6D 75 73 74 20 62 65 20 20 69 which must be i
0256F0: 6E 69 74 69 61 6C 69 7A 65 64 20 20 62 65 66 6F nitialized befo
025700: 20 4B 4C 20 41 44 44 20 46 52 41 4D 45 20 46 4C KL ADD FRAME FL
025710: 59 20 2D 20 41 64 64 20 61 20 62 6C 6F 63 6B 20 Y - Add a block
025720: 74 6F 20 74 68 65 20 66 72 61 6D 65 20 66 6C 79 to the frame fly
025730: 62 61 63 6B 20 6C 69 73 74 0D 0D 20 20 20 20 20 back list..
025740: 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 48 4C 20 Entry:.. HL
025750: 3D 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 = address of the
025760: 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 62 frame flyback b
025770: 6C 6F 63 6B 0D 0D 20 20 20 20 20 45 78 69 74 3A lock.. Exit:
025780: 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 41 46 2C ........ AF,
025790: 44 45 2C 48 4C 20 63 68 61 6E 67 65 64 2E 0D 0D DE,HL changed...
0257A0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 Notes:..
0257B0: 20 20 54 68 65 20 66 72 61 6D 65 20 66 6C 79 62 The frame flyb
0257C0: 61 63 6B 20 62 6C 6F 63 6B 20 69 73 20 39 20 20 ack block is 9
0257D0: 62 79 74 65 73 20 20 6C 6F 6E 67 20 20 61 6E 64 bytes long and
0257E0: 20 6D 75 73 74 20 6C 69 65 20 69 6E 20 74 68 65 must lie in the
0257F0: 20 63 65 6E 74 72 61 6C 0D 20 20 20 20 20 33 32 central. 32
025800: 6B 20 6F 66 20 72 61 6D 2E 20 54 68 65 20 6C 61 k of ram. The la
025810: 73 74 20 37 20 62 79 74 65 73 20 20 6F 66 20 20 st 7 bytes of
025820: 74 68 65 20 66 72 61 6D 65 20 66 6C 79 62 61 63 the frame flybac
025830: 6B 20 62 6C 6F 63 6B 20 61 72 65 20 61 6E 20 65 k block are an e
025840: 76 65 6E 74 0D 20 20 20 20 20 62 6C 6F 63 6B 20 vent. block
025850: 77 68 69 63 68 20 6D 75 73 74 20 62 65 20 69 6E which must be in
025860: 69 74 69 61 6C 69 7A 65 64 20 62 65 66 6F 72 65 itialized before
025870: 20 63 61 6C 6C 69 6E 67 20 74 68 69 73 20 72 6F calling this ro
025880: 75 74 69 6E 65 2E 20 54 68 65 20 65 78 61 63 74 utine. The exact
025890: 0D 20 20 20 20 20 6C 61 79 6F 75 74 20 6F 66 20 . layout of
0258A0: 61 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 a frame flyback
0258B0: 62 6C 6F 63 6B 20 69 73 20 64 65 73 63 72 69 62 block is describ
0258C0: 65 64 20 6C 61 74 65 72 2E 0D 0D 20 20 20 20 20 ed later...
0258D0: 54 68 65 20 62 6C 6F 63 6B 20 69 73 20 61 70 70 The block is app
0258E0: 65 6E 64 65 64 20 74 6F 20 74 68 65 20 66 72 61 ended to the fra
0258F0: 6D 65 20 20 66 6C 79 62 61 63 6B 20 20 6C 69 73 me flyback lis
025900: 72 65 20 20 63 61 6C 6C 69 6E 67 20 20 74 68 69 re calling thi
025910: 73 20 20 72 6F 75 74 69 6E 65 2E 20 20 54 68 65 s routine. The
025920: 20 65 78 61 63 74 0D 20 20 20 20 20 6C 61 79 6F exact. layo
025930: 75 74 20 6F 66 20 61 20 66 61 73 74 20 74 69 63 ut of a fast tic
025940: 6B 65 72 20 62 6C 6F 63 6B 20 69 73 20 64 65 73 ker block is des
025950: 63 72 69 62 65 64 20 6C 61 74 65 72 2E 0D 0D 20 cribed later...
025960: 20 20 20 20 54 68 65 20 66 61 73 74 20 74 69 63 The fast tic
025970: 6B 65 72 20 62 6C 6F 63 6B 20 69 73 20 61 70 70 ker block is app
025980: 65 6E 64 65 64 20 74 6F 20 74 68 65 20 66 61 73 ended to the fas
025990: 74 20 74 69 63 6B 65 72 20 6C 69 73 74 20 69 66 t ticker list if
0259A0: 20 69 74 20 69 73 20 6E 6F 74 0D 20 20 20 20 20 it is not.
0259B0: 61 6C 72 65 61 64 79 20 6F 6E 20 69 74 2E 0D 0D already on it...
0259C0: 20 20 20 20 20 54 68 65 20 66 61 73 74 20 74 69 The fast ti
0259D0: 63 6B 65 72 20 66 61 63 69 6C 69 74 79 20 69 73 cker facility is
0259E0: 20 6E 6F 74 20 20 69 6E 74 65 6E 64 65 64 20 66 not intended f
0259F0: 6F 72 20 67 65 6E 65 72 61 6C 20 75 73 65 2E 20 or general use.
025A00: 48 6F 77 65 76 65 72 2C 20 69 74 0D 20 20 20 20 However, it.
025A10: 20 64 6F 65 73 20 61 6C 6C 6F 77 20 20 72 65 6C does allow rel
025A20: 61 74 69 76 65 6C 79 20 20 73 68 6F 72 74 20 20 atively short
025A30: 74 69 6D 65 73 20 20 74 6F 20 20 62 65 20 20 6D times to be m
025A40: 65 61 73 75 72 65 64 20 20 67 69 76 69 6E 67 20 easured giving
025A50: 67 72 65 61 74 65 72 0D 20 20 20 20 20 72 65 73 greater. res
025A60: 6F 6C 75 74 69 6F 6E 20 74 68 61 6E 20 74 68 65 olution than the
025A70: 20 67 65 6E 65 72 61 6C 20 74 69 63 6B 65 72 20 general ticker
025A80: 66 61 63 69 6C 69 74 69 65 73 2E 0D 0D 20 20 20 facilities...
025A90: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 This routine e
025AA0: 6E 61 62 6C 65 73 20 69 6E 74 65 72 75 70 74 73 nables interupts
025AB0: 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D ... --------
025AC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025AD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025AE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025AF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 -------------.
025B00: 74 20 69 66 20 69 74 20 69 73 20 6E 6F 74 20 61 t if it is not a
025B10: 6C 72 65 61 64 79 0D 20 20 20 20 20 6F 6E 20 69 lready. on i
025B20: 74 2E 0D 0D 20 20 20 20 20 54 68 69 73 20 72 6F t... This ro
025B30: 75 74 69 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E utine enables in
025B40: 74 65 72 75 70 74 73 2E 0D 20 20 20 20 20 2D 2D terupts.. --
025B50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025B60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025B70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025B80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025B90: 2D 2D 2D 0D 20 20 20 20 20 2D 0D 0D 20 20 20 20 ---. -..
025BA0: 20 26 42 43 44 44 20 2D 20 4B 4C 20 44 45 4C 20 &BCDD - KL DEL
025BB0: 46 52 41 4D 45 20 46 4C 59 20 2D 20 52 65 6D 6F FRAME FLY - Remo
025BC0: 76 65 20 61 20 62 6C 6F 63 6B 20 66 72 6F 6D 20 ve a block from
025BD0: 74 68 65 20 66 72 61 6D 65 20 66 6C 79 62 61 63 the frame flybac
025BE0: 6B 20 6C 69 73 74 0D 0D 20 20 20 20 20 45 6E 74 k list.. Ent
025BF0: 72 79 3A 0D 0D 20 20 20 20 20 48 4C 20 3D 20 61 ry:.. HL = a
025C00: 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 66 72 ddress of the fr
025C10: 61 6D 65 20 66 6C 79 62 61 63 6B 20 62 6C 6F 63 ame flyback bloc
025C20: 6B 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 k.. Exit:..
025C30: 20 20 20 20 41 46 2C 44 45 2C 48 4C 20 63 68 61 AF,DE,HL cha
025C40: 6E 67 65 64 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 nged... Note
025C50: 73 3A 0D 0D 20 20 20 20 20 54 68 69 73 20 72 6F s:.. This ro
025C60: 75 74 69 6E 65 20 64 6F 65 73 20 6E 6F 74 68 69 utine does nothi
025C70: 6E 67 20 69 66 20 74 68 65 20 62 6C 6F 63 6B 20 ng if the block
025C80: 69 73 20 6E 6F 74 20 6F 6E 20 74 68 65 20 6C 69 is not on the li
025C90: 73 74 2E 0D 0D 20 20 20 20 20 52 65 6D 6F 76 69 st... Removi
025CA0: 6E 67 20 61 20 62 6C 6F 63 6B 20 66 72 6F 6D 20 ng a block from
025CB0: 74 68 65 20 20 6C 69 73 74 20 20 6F 6E 6C 79 20 the list only
025CC0: 20 70 72 65 76 65 6E 74 73 20 74 68 65 20 65 76 prevents the ev
025CD0: 65 6E 74 20 62 65 69 6E 67 20 6B 69 63 6B 65 64 ent being kicked
025CE0: 0D 20 20 20 20 20 61 67 61 69 6E 2E 20 49 74 20 . again. It
025CF0: 64 6F 65 73 20 6E 6F 74 20 61 66 66 65 63 74 20 does not affect
025D00: 20 20 20 2D 0D 0D 20 20 20 20 20 26 42 43 45 36 -.. &BCE6
025D10: 20 2D 20 4B 4C 20 44 45 4C 20 46 41 53 54 20 54 - KL DEL FAST T
025D20: 49 43 4B 45 52 20 2D 20 52 65 6D 6F 76 65 20 61 ICKER - Remove a
025D30: 20 62 6C 6F 63 6B 20 66 72 6F 6D 20 74 68 65 20 block from the
025D40: 66 61 73 74 20 74 69 63 6B 65 72 20 6C 69 73 74 fast ticker list
025D50: 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 .. Entry:..
025D60: 20 20 20 20 48 4C 20 3D 20 61 64 64 72 65 73 73 HL = address
025D70: 20 6F 66 20 74 68 65 20 66 61 73 74 20 74 69 63 of the fast tic
025D80: 6B 65 72 20 62 6C 6F 63 6B 0D 0D 20 20 20 20 20 ker block..
025D90: 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 46 2C 44 Exit:.. AF,D
025DA0: 45 2C 48 4C 20 63 68 61 6E 67 65 64 2E 0D 0D 20 E,HL changed...
025DB0: 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 Notes:..
025DC0: 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 64 6F This routine do
025DD0: 65 73 20 6E 6F 74 68 69 6E 67 20 69 66 20 74 68 es nothing if th
025DE0: 65 20 62 6C 6F 63 6B 20 69 73 20 6E 6F 74 20 6F e block is not o
025DF0: 6E 20 74 68 65 20 6C 69 73 74 2E 0D 0D 20 20 20 n the list...
025E00: 20 20 52 65 6D 6F 76 69 6E 67 20 61 20 62 6C 6F Removing a blo
025E10: 63 6B 20 66 72 6F 6D 20 20 74 68 65 20 20 6C 69 ck from the li
025E20: 73 74 20 20 6F 6E 6C 79 20 20 70 72 65 76 65 6E st only preven
025E30: 74 73 20 20 74 68 65 20 65 76 65 6E 74 20 66 72 ts the event fr
025E40: 6F 6D 20 62 65 69 6E 67 0D 20 20 20 20 20 6B 69 om being. ki
025E50: 63 6B 65 64 20 61 67 61 69 6E 2E 20 49 74 20 64 cked again. It d
025E60: 6F 65 73 20 6E 6F 74 20 61 66 66 65 63 74 20 61 oes not affect a
025E70: 6E 79 20 6F 75 74 73 74 61 6E 64 69 6E 67 20 66 ny outstanding f
025E80: 61 73 74 20 74 69 63 6B 65 72 20 65 76 65 6E 74 ast ticker event
025E90: 73 2E 0D 0D 20 20 20 20 20 54 68 69 73 20 72 6F s... This ro
025EA0: 75 74 69 6E 65 20 65 6E 61 62 6C 65 73 20 69 6E utine enables in
025EB0: 74 65 72 75 70 74 73 2E 0D 0D 0D 20 20 20 20 20 terupts....
025EC0: 26 42 43 45 39 20 2D 20 4B 4C 20 41 44 44 20 54 &BCE9 - KL ADD T
025ED0: 49 43 4B 45 52 20 2D 20 50 75 74 20 61 20 62 6C ICKER - Put a bl
025EE0: 6F 63 6B 20 6F 6E 74 6F 20 74 68 65 20 74 69 63 ock onto the tic
025EF0: 6B 20 6C 69 73 74 0D 0D 20 20 20 20 20 45 6E 74 k list.. Ent
025F00: 61 6E 79 20 6F 75 74 73 74 61 6E 64 69 6E 67 20 any outstanding
025F10: 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 65 76 frame flyback ev
025F20: 65 6E 74 73 2E 0D 0D 20 20 20 20 20 54 68 69 73 ents... This
025F30: 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 73 routine enables
025F40: 20 69 6E 74 65 72 75 70 74 73 2E 0D 20 20 20 20 interupts..
025F50: 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ---------------
025F60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025F70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025F80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
025F90: 2D 2D 2D 2D 2D 2D 0D 20 20 20 20 20 2D 2D 0D 20 ------. --.
025FA0: 20 20 20 20 26 42 43 45 30 20 2D 20 4B 4C 20 4E &BCE0 - KL N
025FB0: 45 57 20 46 41 53 54 20 54 49 43 4B 45 52 20 2D EW FAST TICKER -
025FC0: 20 20 49 6E 69 74 69 6C 69 7A 65 20 20 61 6E 64 Initilize and
025FD0: 20 70 75 74 20 61 20 62 6C 6F 63 6B 20 6F 6E 74 put a block ont
025FE0: 6F 20 74 68 65 20 66 61 73 74 0D 20 20 20 20 20 o the fast.
025FF0: 74 69 63 6B 20 6C 69 73 74 0D 0D 20 20 20 20 20 tick list..
026000: 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 48 4C 20 Entry:.. HL
026010: 3D 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 = address of the
026020: 20 66 61 73 74 20 74 69 63 6B 65 72 20 62 6C 6F fast ticker blo
026030: 63 6B 0D 20 20 20 20 20 44 45 20 3D 20 65 76 65 ck. DE = eve
026040: 6E 74 20 63 6C 61 73 73 0D 20 20 20 20 20 43 20 nt class. C
026050: 3D 20 72 6F 6D 20 73 65 6C 65 63 74 20 61 64 64 = rom select add
026060: 72 65 73 73 20 6F 66 20 74 68 65 20 65 76 65 6E ress of the even
026070: 74 20 72 6F 75 74 69 6E 65 0D 20 20 20 20 20 44 t routine. D
026080: 45 20 3D 20 61 64 64 72 65 73 73 20 6F 66 20 74 E = address of t
026090: 68 65 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 he event routine
0260A0: 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 .. Exit:..
0260B0: 20 20 20 41 46 2C 44 45 2C 48 4C 20 63 68 61 6E AF,DE,HL chan
0260C0: 67 65 64 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 ged... Notes
0260D0: 3A 0D 0D 20 20 20 20 20 54 68 65 20 66 61 73 74 :.. The fast
0260E0: 20 74 69 63 6B 65 72 20 62 6C 6F 63 6B 20 69 73 ticker block is
0260F0: 20 39 20 62 79 74 65 73 20 6C 6F 6E 67 20 20 61 9 bytes long a
026100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
026110: 20 00 01 00 02 09 4E E5 20 00 C1 02 00 00 00 02 .....N. .......
026120: 20 00 C6 02 00 00 00 02 20 00 C2 02 00 00 00 02 ....... .......
026130: 20 00 C7 02 00 00 00 02 20 00 C3 02 00 00 00 02 ....... .......
026140: 20 00 C8 02 00 00 00 02 20 00 C4 02 00 00 00 02 ....... .......
026150: 20 00 C9 02 00 00 00 02 20 00 C5 02 00 00 00 02 ....... .......
026160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026200: 72 79 3A 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 ry:........
026210: 48 4C 20 3D 20 61 64 64 72 65 73 73 20 6F 66 20 HL = address of
026220: 74 68 65 20 74 69 63 6B 20 62 6C 6F 63 6B 0D 20 the tick block.
026230: 20 20 20 20 44 45 20 3D 20 69 6E 69 74 69 61 6C DE = initial
026240: 20 76 61 6C 75 65 20 66 6F 72 20 74 68 65 20 63 value for the c
026250: 6F 75 6E 74 20 65 6E 74 72 79 0D 20 20 20 20 20 ount entry.
026260: 42 43 20 3D 20 76 61 6C 75 65 20 66 6F 72 20 74 BC = value for t
026270: 68 65 20 72 65 63 68 61 72 67 65 20 65 6E 74 72 he recharge entr
026280: 79 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 y.. Exit:..
026290: 20 20 20 20 41 46 2C 42 43 2C 44 45 2C 48 4C 20 AF,BC,DE,HL
0262A0: 63 68 61 6E 67 65 64 2E 0D 0D 20 20 20 20 20 4E changed... N
0262B0: 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 68 65 20 otes:.. The
0262C0: 74 69 63 6B 20 62 6C 6F 63 6B 20 69 73 20 31 33 tick block is 13
0262D0: 20 62 79 74 65 73 20 20 6C 6F 6E 67 20 20 61 6E bytes long an
0262E0: 64 20 20 6D 75 73 74 20 20 6C 69 65 20 69 6E 20 d must lie in
0262F0: 74 68 65 20 63 65 6E 74 72 61 6C 20 33 32 6B 20 the central 32k
026300: 6F 66 0D 20 20 20 20 20 6D 65 6D 6F 72 79 2E 20 of. memory.
026310: 54 68 65 20 6C 61 73 74 20 37 20 62 79 74 65 73 The last 7 bytes
026320: 20 6F 66 20 20 74 68 65 20 20 74 69 63 6B 20 20 of the tick
026330: 62 6C 6F 63 6B 20 61 72 65 20 61 6E 20 65 76 65 block are an eve
026340: 6E 74 20 62 6C 6F 63 6B 20 77 68 69 63 68 0D 20 nt block which.
026350: 20 20 20 20 6D 75 73 74 20 62 65 20 69 6E 69 74 must be init
026360: 69 61 6C 69 7A 65 64 20 62 65 66 6F 72 65 20 74 ialized before t
026370: 68 69 73 20 72 6F 75 74 69 6E 65 20 69 73 20 63 his routine is c
026380: 61 6C 6C 65 64 2E 20 54 68 65 20 65 78 61 63 74 alled. The exact
026390: 20 6C 61 79 6F 75 74 20 6F 66 0D 20 20 20 20 20 layout of.
0263A0: 61 20 74 69 63 6B 20 62 6C 6F 63 6B 20 69 73 20 a tick block is
0263B0: 64 65 73 63 72 69 62 65 64 20 6C 61 74 65 72 2E described later.
0263C0: 0D 0D 20 20 20 20 20 54 68 65 20 63 6F 75 6E 74 .. The count
0263D0: 20 61 6E 64 20 72 65 63 68 61 72 67 65 20 65 6E and recharge en
0263E0: 74 72 69 65 73 20 69 6E 20 74 68 65 20 62 6C 6F tries in the blo
0263F0: 63 6B 20 61 72 65 20 73 65 74 2E 20 54 68 65 20 ck are set. The
026400: 63 6C 61 73 73 0D 20 20 20 20 20 43 20 3D 20 72 class. C = r
026410: 6F 6D 20 73 65 6C 65 63 74 20 61 64 64 72 65 73 om select addres
026420: 73 0D 20 20 20 20 20 44 45 20 3D 20 61 64 64 72 s. DE = addr
026430: 65 73 73 20 6F 66 20 65 76 65 6E 74 20 72 6F 75 ess of event rou
026440: 74 69 6E 65 0D 0D 20 20 20 20 20 45 78 69 74 3A tine.. Exit:
026450: 0D 0D 20 20 20 20 20 48 4C 20 3D 20 61 64 64 72 .. HL = addr
026460: 65 73 73 20 6F 66 20 65 76 65 6E 74 20 62 6C 6F ess of event blo
026470: 63 6B 2B 37 0D 0D 20 20 20 20 20 4E 6F 74 65 73 ck+7.. Notes
026480: 3A 0D 0D 20 20 20 20 20 54 68 65 20 65 76 65 6E :.. The even
026490: 74 20 62 6C 6F 63 6B 20 69 73 20 37 20 62 79 74 t block is 7 byt
0264A0: 65 73 20 20 6C 6F 6E 67 20 20 61 6E 64 20 20 6D es long and m
0264B0: 75 73 74 20 20 6C 69 65 20 69 6E 20 74 68 65 20 ust lie in the
0264C0: 63 65 6E 74 72 61 6C 20 33 32 6B 20 6F 66 0D 20 central 32k of.
0264D0: 20 20 20 20 72 61 6D 2E 0D 0D 20 20 20 20 20 54 ram... T
0264E0: 68 65 20 72 6F 6D 20 73 65 6C 65 63 74 20 61 64 he rom select ad
0264F0: 64 72 65 73 73 20 6F 66 20 74 68 65 20 72 6F 75 dress of the rou
026500: 74 69 6E 65 20 61 72 65 20 74 68 65 20 66 61 72 tine are the far
026510: 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 address of the
026520: 65 76 65 6E 74 0D 20 20 20 20 20 72 6F 75 74 69 event. routi
026530: 6E 65 2E 0D 0D 20 20 20 20 20 54 68 65 20 65 76 ne... The ev
026540: 65 6E 74 20 63 6C 61 73 73 20 69 73 20 62 69 74 ent class is bit
026550: 20 73 69 67 6E 69 66 69 63 61 6E 74 20 61 73 20 significant as
026560: 66 6F 6C 6C 6F 77 73 3A 0D 0D 20 20 20 20 20 42 follows:.. B
026570: 69 74 20 30 3A 20 4E 65 61 72 20 61 64 64 72 65 it 0: Near addre
026580: 73 73 0D 20 20 20 20 20 42 69 74 20 31 2E 2E 34 ss. Bit 1..4
026590: 3A 20 53 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 : Synchronous ev
0265A0: 65 6E 74 20 70 72 69 6F 72 69 74 79 0D 20 20 20 ent priority.
0265B0: 20 20 42 69 74 20 35 3A 20 4D 75 73 74 20 62 65 Bit 5: Must be
0265C0: 20 7A 65 72 6F 0D 20 20 20 20 20 42 69 74 20 36 zero. Bit 6
0265D0: 3A 20 45 78 70 72 65 73 73 20 65 76 65 6E 74 0D : Express event.
0265E0: 20 20 20 20 20 42 69 74 20 37 3A 20 41 73 79 6E Bit 7: Asyn
0265F0: 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 0D 0D chronous event..
026600: 62 6C 6F 63 6B 20 69 73 20 74 68 65 6E 0D 20 20 block is then.
026610: 20 20 20 61 70 70 65 6E 20 64 65 64 20 74 6F 20 appen ded to
026620: 74 68 65 20 74 69 63 6B 20 6C 69 73 74 20 20 69 the tick list i
026630: 66 20 20 69 74 20 20 69 73 20 20 6E 6F 74 20 20 f it is not
026640: 61 6C 72 65 61 64 79 20 6F 6E 20 74 68 65 20 6C already on the l
026650: 69 73 74 2E 20 54 68 69 73 0D 20 20 20 20 20 72 ist. This. r
026660: 6F 75 74 69 6E 65 20 6D 61 79 20 62 65 20 20 75 outine may be u
026670: 73 65 64 2C 20 20 74 68 65 72 65 66 6F 72 65 2C sed, therefore,
026680: 20 20 74 6F 20 20 63 68 61 6E 67 65 20 20 74 68 to change th
026690: 65 20 20 63 6F 75 6E 74 20 61 6E 64 20 72 65 63 e count and rec
0266A0: 68 61 72 67 65 0D 20 20 20 20 20 65 6E 74 72 69 harge. entri
0266B0: 65 73 20 6F 66 20 61 6E 20 65 78 69 73 74 69 6E es of an existin
0266C0: 67 20 62 6C 6F 63 6B 2E 0D 0D 20 20 20 20 20 42 g block... B
0266D0: 6C 6F 63 6B 73 20 77 69 74 68 20 61 20 20 63 6F locks with a co
0266E0: 75 6E 74 20 20 65 6E 74 72 79 20 20 6F 66 20 20 unt entry of
0266F0: 7A 65 72 6F 20 20 61 72 65 20 20 69 67 6E 6F 72 zero are ignor
026700: 65 64 20 20 77 68 65 6E 20 20 74 68 65 20 6C 69 ed when the li
026710: 73 74 20 69 73 0D 20 20 20 20 20 70 72 6F 63 65 st is. proce
026720: 73 73 65 64 2E 20 53 65 74 74 69 6E 67 20 61 20 ssed. Setting a
026730: 72 65 63 68 61 72 67 65 20 76 61 6C 75 65 20 20 recharge value
026740: 6F 66 20 20 7A 65 72 6F 2C 20 20 74 68 65 72 65 of zero, there
026750: 66 6F 72 65 2C 20 73 65 74 73 20 75 70 20 74 68 fore, sets up th
026760: 65 0D 20 20 20 20 20 62 6C 6F 63 6B 20 61 73 20 e. block as
026770: 61 20 27 6F 6E 65 20 73 68 6F 74 20 74 69 6D 65 a 'one shot time
026780: 72 27 2E 20 53 69 6E 63 65 20 20 69 74 20 74 61 r'. Since it ta
026790: 6B 65 73 20 74 68 65 20 4B 65 72 6E 61 6C 20 74 kes the Kernal t
0267A0: 69 6D 65 20 74 6F 20 69 67 6E 6F 72 65 0D 20 20 ime to ignore.
0267B0: 20 20 20 61 20 74 69 63 6B 20 62 6C 6F 63 6B 2C a tick block,
0267C0: 20 61 6E 79 20 72 65 64 75 6E 64 61 6E 74 20 62 any redundant b
0267D0: 6C 6F 63 6B 73 20 73 68 6F 75 6C 64 20 20 62 65 locks should be
0267E0: 20 72 65 6D 6F 76 65 64 20 66 72 6F 6D 20 74 68 removed from th
0267F0: 65 20 6C 69 73 74 20 61 73 0D 20 20 20 20 20 73 e list as. s
026800: 20 20 20 20 20 49 66 20 74 68 65 20 61 73 79 6E If the asyn
026810: 63 68 72 6F 6E 6F 75 73 65 20 62 69 74 20 20 69 chronouse bit i
026820: 73 20 20 73 65 74 20 20 74 68 65 6E 20 20 74 68 s set then th
026830: 65 20 20 65 76 65 6E 74 20 69 73 20 61 6E 20 61 e event is an a
026840: 73 79 6E 63 68 72 6F 6E 6F 75 73 0D 20 20 20 20 synchronous.
026850: 20 65 76 65 6E 74 2C 20 6F 74 68 65 72 77 69 73 event, otherwis
026860: 65 20 69 74 20 69 73 20 61 20 73 79 6E 63 68 72 e it is a synchr
026870: 6F 6E 6F 75 73 20 65 76 65 6E 74 2E 20 41 73 79 onous event. Asy
026880: 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 nchronous events
026890: 20 64 6F 20 6E 6F 74 0D 20 20 20 20 20 68 61 76 do not. hav
0268A0: 65 20 70 72 69 6F 72 69 74 69 65 73 20 61 6E 64 e priorities and
0268B0: 20 73 6F 20 74 68 65 20 70 72 69 6F 72 69 74 79 so the priority
0268C0: 20 66 69 65 6C 64 20 69 73 20 69 67 6E 6F 72 65 field is ignore
0268D0: 64 2E 0D 0D 20 20 20 20 20 49 66 20 74 68 65 20 d... If the
0268E0: 65 78 70 72 65 73 73 20 65 76 65 6E 74 20 62 69 express event bi
0268F0: 74 20 69 73 20 20 73 65 74 20 20 74 68 65 6E 20 t is set then
026900: 20 74 68 65 20 65 76 65 6E 74 20 69 73 20 61 6E the event is an
026910: 20 65 78 70 72 65 73 73 20 65 76 65 6E 74 2E 0D express event..
026920: 20 20 20 20 20 54 68 65 20 6D 65 61 6E 69 6E 67 The meaning
026930: 20 6F 66 20 74 68 69 73 20 64 65 70 65 6E 64 73 of this depends
026940: 20 20 6F 6E 20 20 77 68 65 74 68 65 72 20 20 74 on whether t
026950: 68 65 20 20 65 76 65 6E 74 20 69 73 20 73 79 6E he event is syn
026960: 63 68 72 6F 6E 6F 75 73 20 6F 72 0D 20 20 20 20 chronous or.
026970: 20 61 73 79 6E 63 68 72 6F 6E 6F 75 73 2E 0D 0D asynchronous...
026980: 20 20 20 20 20 41 6C 6C 20 65 78 70 72 65 73 73 All express
026990: 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 synchronous eve
0269A0: 6E 74 73 20 68 61 76 65 20 20 68 69 67 68 65 72 nts have higher
0269B0: 20 70 72 69 6F 72 69 74 69 65 73 20 74 68 61 6E priorities than
0269C0: 20 61 6E 79 20 6E 6F 72 6D 61 6C 0D 20 20 20 20 any normal.
0269D0: 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 synchronous eve
0269E0: 6E 74 2E 20 54 68 65 20 70 72 69 6F 72 69 74 79 nt. The priority
0269F0: 20 6F 66 20 20 61 20 20 73 79 6E 63 68 72 6F 6E of a synchron
026A00: 6F 6F 6E 20 61 73 20 70 6F 73 73 69 62 6C 65 2E oon as possible.
026A10: 0D 0D 20 20 20 20 20 49 74 20 69 73 20 6E 6F 74 .. It is not
026A20: 20 70 6F 73 73 69 62 6C 65 20 74 6F 20 20 70 72 possible to pr
026A30: 65 64 69 63 74 2C 20 20 70 61 72 74 69 63 75 6C edict, particul
026A40: 61 72 6C 79 20 77 69 74 68 20 73 79 6E 63 68 72 arly with synchr
026A50: 6F 6E 6F 75 73 20 65 76 65 6E 74 73 2C 0D 20 20 onous events,.
026A60: 20 20 20 68 6F 77 20 6C 6F 6E 67 20 69 74 20 20 how long it
026A70: 77 69 6C 6C 20 20 62 65 20 20 61 66 74 65 72 20 will be after
026A80: 20 74 68 65 20 20 6B 69 63 6B 20 20 62 65 66 6F the kick befo
026A90: 72 65 20 20 74 68 65 20 20 65 76 65 6E 74 20 72 re the event r
026AA0: 6F 75 74 69 6E 65 20 69 73 0D 20 20 20 20 20 61 outine is. a
026AB0: 63 74 75 61 6C 6C 79 20 63 61 6C 6C 65 64 2E 20 ctually called.
026AC0: 6E 6F 74 77 69 74 68 73 74 61 6E 64 69 6E 67 20 notwithstanding
026AD0: 74 68 65 73 65 20 64 65 6C 61 79 73 2C 20 20 74 these delays, t
026AE0: 68 65 20 74 69 63 6B 65 72 20 6D 61 79 20 62 65 he ticker may be
026AF0: 20 75 73 65 64 0D 20 20 20 20 20 74 6F 20 6F 62 used. to ob
026B00: 74 61 69 6E 20 61 6E 20 20 65 78 61 63 74 20 20 tain an exact
026B10: 6E 75 6D 62 65 72 20 20 6F 66 20 20 6B 69 63 6B number of kick
026B20: 73 20 20 69 6E 20 20 61 20 20 67 69 76 65 6E 20 s in a given
026B30: 20 70 65 72 69 6F 64 20 73 69 6E 63 65 20 74 68 period since th
026B40: 65 0D 20 20 20 20 20 72 65 63 68 61 72 67 65 20 e. recharge
026B50: 6D 65 63 68 61 6E 69 73 6D 20 69 6D 6D 65 64 69 mechanism immedi
026B60: 61 74 6C 79 20 20 72 65 73 65 74 73 20 20 74 68 atly resets th
026B70: 65 20 20 63 6F 75 6E 74 2E 20 20 54 68 65 20 65 e count. The e
026B80: 76 65 6E 74 20 63 6F 75 6E 74 69 6E 67 0D 20 20 vent counting.
026B90: 20 20 20 6D 65 63 68 61 6E 69 73 6D 20 77 69 6C mechanism wil
026BA0: 6C 20 65 6E 73 75 72 65 20 74 68 61 74 20 6B 69 l ensure that ki
026BB0: 63 6B 73 20 20 61 72 65 20 20 6E 6F 74 20 6D 69 cks are not mi
026BC0: 73 73 65 64 2C 20 70 72 6F 76 69 64 65 64 20 74 ssed, provided t
026BD0: 68 61 74 20 74 68 65 72 65 0D 20 20 20 20 20 61 hat there. a
026BE0: 72 65 20 6E 65 76 65 72 20 6D 6F 72 65 20 74 68 re never more th
026BF0: 61 6E 20 31 32 37 20 6F 75 74 73 74 61 6E 64 69 an 127 outstandi
026C00: 6F 75 73 20 65 76 65 6E 74 20 69 73 20 65 6E 63 ous event is enc
026C10: 6F 64 65 64 20 69 6E 0D 20 20 20 20 20 62 69 74 oded in. bit
026C20: 73 20 31 2E 2E 34 20 20 6F 66 20 20 74 68 65 20 s 1..4 of the
026C30: 20 63 6C 61 73 73 2C 20 20 74 68 65 20 20 68 69 class, the hi
026C40: 67 68 65 72 20 20 74 68 65 20 20 6E 75 6D 62 65 gher the numbe
026C50: 72 20 20 74 68 65 20 20 67 72 65 61 74 65 72 20 r the greater
026C60: 74 68 65 0D 20 20 20 20 20 70 72 69 6F 72 69 74 the. priorit
026C70: 79 2E 20 4E 6F 20 65 76 65 6E 74 20 20 6D 61 79 y. No event may
026C80: 20 20 68 61 76 65 20 20 70 72 69 6F 72 69 74 79 have priority
026C90: 20 20 30 2E 20 20 54 68 65 20 20 70 72 6F 63 65 0. The proce
026CA0: 73 73 69 6E 67 20 6F 66 20 6E 6F 72 6D 61 6C 0D ssing of normal.
026CB0: 20 20 20 20 20 73 79 6E 63 68 72 6F 6E 6F 75 73 synchronous
026CC0: 20 65 76 65 6E 74 73 20 6D 61 79 20 62 65 20 64 events may be d
026CD0: 69 73 61 62 6C 65 64 2C 20 20 77 68 69 6C 65 20 isabled, while
026CE0: 74 68 61 74 20 6F 66 20 65 78 70 72 65 73 73 20 that of express
026CF0: 73 79 6E 63 68 72 6F 6E 6F 75 73 0D 20 20 20 20 synchronous.
026D00: 20 65 76 65 6E 74 73 20 6D 61 79 20 6E 6F 74 2E events may not.
026D10: 0D 0D 20 20 20 20 20 41 6E 20 65 78 70 72 65 73 .. An expres
026D20: 73 20 61 73 79 6E 63 68 72 6F 6E 6F 75 73 20 20 s asynchronous
026D30: 65 76 65 6E 74 20 20 77 69 6C 6C 20 20 68 61 76 event will hav
026D40: 65 20 20 69 74 73 20 20 65 76 65 6E 74 20 20 72 e its event r
026D50: 6F 75 74 69 6E 65 20 63 61 6C 6C 65 64 0D 20 20 outine called.
026D60: 20 20 20 64 69 72 65 63 74 6C 79 20 66 72 6F 6D directly from
026D70: 20 20 74 68 65 20 20 69 6E 74 65 72 75 70 74 20 the interupt
026D80: 20 70 61 74 68 2E 20 20 41 20 20 6E 6F 72 6D 61 path. A norma
026D90: 6C 20 20 61 73 79 6E 63 68 72 6F 6E 6F 75 73 20 l asynchronous
026DA0: 20 65 76 65 6E 74 20 69 73 0D 20 20 20 20 20 70 event is. p
026DB0: 72 6F 63 65 73 73 65 64 20 6A 75 73 74 20 62 65 rocessed just be
026DC0: 66 6F 72 65 20 20 72 65 74 75 72 6E 69 6E 67 20 fore returning
026DD0: 20 66 72 6F 6D 20 20 74 68 65 20 20 69 6E 74 65 from the inte
026DE0: 72 75 70 74 20 20 28 77 69 74 68 20 69 6E 74 65 rupt (with inte
026DF0: 72 75 70 74 73 0D 20 20 20 20 20 65 6E 61 62 6C rupts. enabl
026E00: 6E 67 20 61 74 20 6F 6E 63 65 2E 0D 0D 20 20 20 ng at once...
026E10: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 This routine e
026E20: 6E 61 62 6C 65 73 20 69 6E 74 65 72 75 70 74 73 nables interupts
026E30: 2E 0D 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D .... -------
026E40: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
026E50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
026E60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
026E70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 --------------.
026E80: 20 20 20 20 2D 0D 0D 20 20 20 20 20 26 42 43 45 -.. &BCE
026E90: 43 20 2D 20 4B 4C 20 44 45 4C 20 54 49 43 4B 45 C - KL DEL TICKE
026EA0: 52 20 2D 20 52 65 6D 6F 76 65 20 61 20 62 6C 6F R - Remove a blo
026EB0: 63 6B 20 66 72 6F 6D 20 74 68 65 20 74 69 63 6B ck from the tick
026EC0: 20 6C 69 73 74 0D 0D 0D 20 20 20 20 20 45 6E 74 list... Ent
026ED0: 72 79 3A 0D 0D 20 20 20 20 20 48 4C 20 3D 20 61 ry:.. HL = a
026EE0: 64 64 72 65 73 73 20 6F 66 20 74 69 63 6B 20 62 ddress of tick b
026EF0: 6C 6F 63 6B 0D 0D 20 20 20 20 20 45 78 69 74 3A lock.. Exit:
026F00: 0D 0D 20 20 20 20 20 49 66 20 74 68 65 20 74 69 .. If the ti
026F10: 63 6B 20 62 6C 6F 63 6B 20 77 61 73 20 66 6F 75 ck block was fou
026F20: 6E 64 20 6F 6E 20 74 68 65 20 74 69 63 6B 20 6C nd on the tick l
026F30: 69 73 74 3A 0D 0D 20 20 20 20 20 43 61 72 72 79 ist:.. Carry
026F40: 20 74 72 75 65 2E 20 44 45 20 3D 20 63 6F 75 6E true. DE = coun
026F50: 74 20 72 65 6D 61 69 6E 69 6E 67 20 62 65 66 6F t remaining befo
026F60: 72 65 20 74 68 65 20 6E 65 78 74 20 65 76 65 6E re the next even
026F70: 74 0D 0D 20 20 20 20 20 49 66 20 74 68 65 20 74 t.. If the t
026F80: 69 63 6B 20 62 6C 6F 63 6B 20 77 61 73 20 6E 6F ick block was no
026F90: 74 20 66 6F 75 6E 64 20 6F 6E 20 74 68 65 20 74 t found on the t
026FA0: 69 63 6B 20 6C 69 73 74 3A 0D 0D 20 20 20 20 20 ick list:..
026FB0: 43 61 72 72 79 20 66 61 6C 73 65 2E 20 44 45 20 Carry false. DE
026FC0: 63 68 61 6E 67 65 64 2E 0D 0D 20 20 20 20 20 41 changed... A
026FD0: 2C 48 4C 20 61 6E 64 20 6F 74 68 65 72 20 66 6C ,HL and other fl
026FE0: 61 67 73 20 63 68 61 6E 67 65 64 2E 0D 0D 20 20 ags changed...
026FF0: 20 20 20 4E 6F 74 65 73 3A 0D 0D 0D 0D 0D 0D 0D Notes:.......
027000: 65 64 29 2E 0D 0D 20 20 20 20 20 49 66 20 74 68 ed)... If th
027010: 65 20 6E 65 61 72 20 61 64 64 72 65 73 73 20 20 e near address
027020: 62 69 74 20 20 69 73 20 20 73 65 74 20 20 74 68 bit is set th
027030: 65 6E 20 20 74 68 65 20 20 65 76 65 6E 74 20 72 en the event r
027040: 6F 75 74 69 6E 65 20 69 73 20 6C 6F 63 61 74 65 outine is locate
027050: 64 0D 20 20 20 20 20 65 69 74 68 65 72 20 69 6E d. either in
027060: 20 74 68 65 20 6C 6F 77 65 72 20 72 6F 6D 20 20 the lower rom
027070: 6F 72 20 20 69 6E 20 20 74 68 65 20 20 63 65 6E or in the cen
027080: 74 72 61 6C 20 20 33 32 6B 20 72 61 6D 2E 20 54 tral 32k ram. T
027090: 68 65 20 72 6F 6D 20 73 65 6C 65 63 74 0D 0D 0D he rom select...
0270A0: 0D 0D 0D 0D 20 20 20 20 20 61 64 64 72 65 73 73 .... address
0270B0: 20 69 73 20 69 67 6E 6F 72 65 64 20 61 6E 64 20 is ignored and
0270C0: 20 74 68 65 20 20 72 6F 75 74 69 6E 65 20 20 69 the routine i
0270D0: 73 20 20 63 61 6C 6C 65 64 20 20 64 69 72 65 63 s called direc
0270E0: 74 6C 79 20 72 61 74 68 65 72 20 74 68 61 6E 0D tly rather than.
0270F0: 20 20 20 20 20 74 68 72 6F 75 67 68 20 74 68 65 through the
027100: 20 46 41 52 20 43 41 4C 4C 20 20 6D 65 63 68 61 FAR CALL mecha
027110: 6E 69 73 6D 2C 20 20 74 68 75 73 20 20 72 65 64 nism, thus red
027120: 75 63 69 6E 67 20 20 74 68 65 20 65 76 65 6E 74 ucing the event
027130: 20 70 72 6F 63 65 73 73 69 6E 67 0D 20 20 20 20 processing.
027140: 20 6F 76 65 72 68 65 61 64 2E 20 57 68 65 72 65 overhead. Where
027150: 20 20 70 6F 73 73 69 62 6C 65 2C 20 20 61 73 79 possible, asy
027160: 6E 63 68 72 6F 6E 6F 75 73 20 20 65 76 65 6E 74 nchronous event
027170: 73 20 20 73 68 6F 75 6C 64 20 20 62 65 20 20 61 s should be a
027180: 74 20 20 6E 65 61 72 0D 20 20 20 20 20 61 64 64 t near. add
027190: 72 65 73 73 65 73 2E 20 20 45 78 70 72 65 73 73 resses. Express
0271A0: 20 20 61 73 79 6E 63 68 72 6F 6E 6F 75 73 20 20 asynchronous
0271B0: 65 76 65 6E 74 73 20 20 6D 75 73 74 20 20 61 6C events must al
0271C0: 77 61 79 73 20 20 62 65 20 20 61 74 20 20 27 6E ways be at 'n
0271D0: 65 61 72 0D 20 20 20 20 20 61 64 64 72 65 73 73 ear. address
0271E0: 65 73 27 2E 0D 0D 20 20 20 20 20 45 76 65 6E 74 es'... Event
0271F0: 20 62 6C 6F 63 6B 73 20 61 70 70 65 61 72 20 69 blocks appear i
027200: 0D 20 20 20 20 20 54 68 65 20 63 6F 6E 74 65 6E . The conten
027210: 74 73 20 6F 66 20 74 68 65 20 62 6C 6F 63 6B 20 ts of the block
027220: 20 61 72 65 20 20 6E 6F 74 20 20 61 66 66 65 63 are not affec
027230: 74 65 64 20 20 62 79 20 72 65 6D 6F 76 69 6E 67 ted by removing
027240: 20 69 74 20 66 72 6F 6D 20 74 68 65 0D 20 20 20 it from the.
027250: 20 20 6C 69 73 74 2E 20 49 6E 20 70 61 72 74 69 list. In parti
027260: 63 75 6C 61 72 20 74 68 65 20 63 6F 6E 74 69 6E cular the contin
027270: 75 65 64 20 20 70 72 6F 63 65 73 73 69 6E 67 20 ued processing
027280: 6F 66 20 6F 75 74 73 74 61 6E 64 69 6E 67 20 65 of outstanding e
027290: 76 65 6E 74 73 20 69 73 0D 20 20 20 20 20 6E 6F vents is. no
0272A0: 74 20 61 66 66 65 63 74 65 64 2E 20 54 68 65 20 t affected. The
0272B0: 62 6C 6F 63 6B 20 63 6F 75 6C 64 20 62 65 20 70 block could be p
0272C0: 75 74 20 62 61 63 6B 20 20 6F 6E 20 74 68 65 20 ut back on the
0272D0: 6C 69 73 74 20 61 74 20 61 20 6C 61 74 65 72 20 list at a later
0272E0: 64 61 74 65 0D 20 20 20 20 20 61 6E 64 20 69 74 date. and it
0272F0: 20 63 6F 75 6C 64 20 63 6F 6E 74 69 6E 75 65 20 could continue
027300: 63 6F 75 6E 74 69 6E 67 20 77 68 65 72 65 20 69 counting where i
027310: 74 20 6C 65 66 74 20 6F 66 66 2E 0D 0D 20 20 20 t left off...
027320: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 This routine e
027330: 6E 61 62 6C 65 73 20 69 6E 74 65 72 75 70 74 73 nables interupts
027340: 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D ... --------
027350: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
027360: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
027370: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
027380: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 -------------.
027390: 20 20 20 26 42 43 45 46 20 2D 20 4B 4C 20 49 4E &BCEF - KL IN
0273A0: 49 54 20 45 56 45 4E 54 20 2D 20 49 6E 69 74 69 IT EVENT - Initi
0273B0: 61 6C 69 7A 65 20 65 76 65 6E 74 20 62 6C 6F 63 alize event bloc
0273C0: 6B 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D k.. Entry:..
0273D0: 20 20 20 20 20 48 4C 20 3D 20 61 64 64 72 65 73 HL = addres
0273E0: 73 20 6F 66 20 65 76 65 6E 74 20 62 6C 6F 63 6B s of event block
0273F0: 0D 20 20 20 20 20 42 20 3D 20 65 76 65 6E 74 20 . B = event
027400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
027410: 21 00 01 00 02 09 4E E5 21 00 C1 02 00 00 00 02 !.....N.!.......
027420: 21 00 C6 02 00 00 00 02 21 00 C2 02 00 00 00 02 !.......!.......
027430: 21 00 C7 02 00 00 00 02 21 00 C3 02 00 00 00 02 !.......!.......
027440: 21 00 C8 02 00 00 00 02 21 00 C4 02 00 00 00 02 !.......!.......
027450: 21 00 C9 02 00 00 00 02 21 00 C5 02 00 00 00 02 !.......!.......
027460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027500: 6E 20 20 76 61 72 69 6F 75 73 20 20 6F 74 68 65 n various othe
027510: 72 20 20 62 6C 6F 63 6B 73 20 20 68 61 6E 64 6C r blocks handl
027520: 65 64 20 62 79 20 74 68 65 20 4B 65 72 6E 65 6C ed by the Kernel
027530: 2C 0D 20 20 20 20 20 69 6E 63 6C 75 64 69 6E 67 ,. including
027540: 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 2C 66 frame flyback,f
027550: 61 73 74 20 74 69 63 6B 65 72 20 61 6E 64 20 20 ast ticker and
027560: 74 69 63 6B 20 20 62 6C 6F 63 6B 73 2E 20 54 68 tick blocks. Th
027570: 69 73 20 72 6F 75 74 69 6E 65 20 69 73 0D 20 20 is routine is.
027580: 20 20 20 75 73 65 64 20 74 6F 20 69 6E 69 74 69 used to initi
027590: 61 6C 69 7A 65 20 74 68 65 20 65 76 65 6E 74 20 alize the event
0275A0: 62 6C 6F 63 6B 20 70 61 72 74 73 20 6F 66 20 74 block parts of t
0275B0: 68 65 73 65 2E 0D 0D 20 20 20 20 20 54 68 65 20 hese... The
0275C0: 62 79 74 65 73 20 61 66 74 65 72 20 74 68 65 20 bytes after the
0275D0: 6C 61 73 74 20 62 79 74 65 20 6F 66 20 74 68 65 last byte of the
0275E0: 20 65 76 65 6E 74 20 62 6C 6F 63 6B 2C 20 65 76 event block, ev
0275F0: 65 6E 20 77 68 65 72 65 20 74 68 65 20 62 6C 6F en where the blo
027600: 63 6B 0D 20 20 20 20 20 66 6F 72 6D 73 20 70 61 ck. forms pa
027610: 72 74 20 6F 66 20 61 6E 6F 74 68 65 72 20 62 6C rt of another bl
027620: 6F 63 6B 2C 20 20 61 72 65 20 20 6E 6F 74 20 20 ock, are not
027630: 75 73 65 64 20 20 62 79 20 20 74 68 65 20 4B 65 used by the Ke
027640: 72 6E 65 6C 2E 20 57 68 65 6E 20 74 68 65 0D 20 rnel. When the.
027650: 20 20 20 20 65 76 65 6E 74 20 72 6F 75 74 69 6E event routin
027660: 65 20 69 73 20 63 61 6C 6C 65 64 20 74 68 65 20 e is called the
027670: 61 64 64 72 65 73 73 20 6F 66 20 20 74 68 65 20 address of the
027680: 20 62 6C 6F 63 6B 20 69 73 20 70 61 73 73 65 64 block is passed
027690: 20 74 6F 20 69 74 2C 20 73 6F 0D 20 20 20 20 20 to it, so.
0276A0: 74 68 65 20 75 73 65 72 20 6D 61 79 20 61 70 70 the user may app
0276B0: 65 6E 64 20 66 75 72 74 68 75 72 20 69 6E 66 6F end furthur info
0276C0: 72 6D 61 74 69 6F 6E 20 20 61 62 6F 75 74 20 74 rmation about t
0276D0: 68 65 20 65 76 65 6E 74 20 74 6F 20 74 68 65 20 he event to the
0276E0: 62 6C 6F 63 6B 2E 0D 20 20 20 20 20 54 68 69 73 block.. This
0276F0: 20 61 6C 6C 6F 77 73 20 73 65 76 65 72 61 6C 20 allows several
027700: 6C 65 73 73 20 69 74 20 68 61 73 0D 20 20 20 20 less it has.
027710: 20 61 6C 72 65 61 64 79 20 72 65 61 63 68 65 64 already reached
027720: 20 74 68 65 20 6D 61 78 69 6D 75 6D 20 6F 66 20 the maximum of
027730: 20 31 32 37 29 2E 20 20 4F 6E 63 65 20 65 76 65 127). Once eve
027740: 6E 74 20 70 72 6F 63 65 73 73 69 6E 67 20 68 61 nt processing ha
027750: 73 20 62 65 67 75 6E 0D 20 20 20 20 20 69 74 20 s begun. it
027760: 63 6F 6E 74 69 6E 75 65 73 20 75 6E 74 69 6C 20 continues until
027770: 74 68 65 20 63 6F 75 6E 74 20 62 65 63 6F 6D 65 the count become
027780: 73 20 7A 65 72 6F 20 6F 72 20 74 68 65 20 65 76 s zero or the ev
027790: 65 6E 74 20 69 73 20 64 69 73 61 72 6D 65 64 2E ent is disarmed.
0277A0: 0D 20 20 20 20 20 63 6F 75 6E 74 3D 30 20 20 20 . count=0
0277B0: 20 20 20 20 20 20 54 68 65 20 65 76 65 6E 74 20 The event
0277C0: 69 73 20 61 72 6D 65 64 20 62 75 74 20 65 76 65 is armed but eve
0277D0: 6E 74 20 70 72 6F 63 65 73 73 69 6E 67 20 69 73 nt processing is
0277E0: 20 6E 6F 74 20 61 63 74 69 76 65 0D 20 20 20 20 not active.
0277F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
027800: 20 54 68 65 20 63 6F 75 6E 74 20 20 69 73 20 20 The count is
027810: 69 6E 63 72 65 6D 65 6E 74 65 64 20 20 61 6E 64 incremented and
027820: 20 20 74 68 65 20 20 65 76 65 6E 74 20 70 72 6F the event pro
027830: 63 65 73 73 69 6E 67 0D 20 20 20 20 20 69 6E 69 cessing. ini
027840: 74 69 61 74 65 64 2E 0D 0D 20 20 20 20 20 48 6F tiated... Ho
027850: 77 20 65 76 65 6E 74 20 70 72 6F 63 65 73 73 69 w event processi
027860: 6E 67 20 69 73 20 69 6E 69 74 69 61 74 65 64 20 ng is initiated
027870: 64 65 70 65 6E 64 73 20 6F 6E 20 74 68 65 20 65 depends on the e
027880: 76 65 6E 74 20 63 6C 61 73 73 3A 0D 0D 20 20 20 vent class:..
027890: 20 20 53 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 Synchronous ev
0278A0: 65 6E 74 73 0D 0D 20 20 20 20 20 53 79 6E 63 68 ents.. Synch
0278B0: 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 20 61 72 ronous events ar
0278C0: 65 20 61 64 64 65 64 20 74 6F 20 74 68 65 20 73 e added to the s
0278D0: 79 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 20 ychronous event
0278E0: 71 75 65 75 65 20 69 6E 20 70 72 69 6F 72 69 74 queue in priorit
0278F0: 79 0D 20 20 20 20 20 6F 72 64 65 72 2E 20 49 74 y. order. It
027900: 73 69 6D 69 6C 61 72 20 65 76 65 6E 74 73 20 20 similar events
027910: 74 6F 20 20 73 68 61 72 65 20 20 74 68 65 20 73 to share the s
027920: 61 6D 65 20 65 76 65 6E 74 20 72 6F 75 74 69 6E ame event routin
027930: 65 2C 0D 20 20 20 20 20 65 61 63 68 20 65 76 65 e,. each eve
027940: 6E 74 20 68 61 76 69 6E 67 20 69 74 73 20 6F 77 nt having its ow
027950: 6E 20 76 61 72 69 61 62 6C 65 73 20 64 65 70 65 n variables depe
027960: 6E 64 69 6E 67 20 6F 6E 20 69 74 73 20 65 76 65 nding on its eve
027970: 6E 74 20 62 6C 6F 63 6B 2E 0D 0D 20 20 20 20 20 nt block...
027980: 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 49 66 20 Entry:.. If
027990: 74 68 65 20 65 76 65 6E 74 20 72 6F 75 74 69 6E the event routin
0279A0: 65 20 69 73 20 61 74 20 61 20 66 61 72 20 61 64 e is at a far ad
0279B0: 64 72 65 73 73 3A 0D 0D 20 20 20 20 20 48 4C 20 dress:.. HL
0279C0: 3D 20 61 64 64 72 65 73 73 20 6F 66 20 62 79 74 = address of byt
0279D0: 65 20 35 20 6F 66 20 74 68 65 20 65 76 65 6E 74 e 5 of the event
0279E0: 20 62 6C 6F 63 6B 0D 20 20 20 20 20 28 73 6F 20 block. (so
0279F0: 61 6E 79 20 61 70 70 65 6E 64 65 64 20 64 61 74 any appended dat
027A00: 61 20 63 61 6E 20 73 74 61 72 74 20 61 74 20 61 a can start at a
027A10: 64 64 72 65 73 73 20 68 6C 2B 32 29 0D 0D 20 20 ddress hl+2)..
027A20: 20 20 20 69 66 20 74 68 65 20 65 76 65 6E 20 72 if the even r
027A30: 6F 75 74 69 6E 65 20 69 73 20 61 74 20 61 20 6E outine is at a n
027A40: 65 61 72 20 61 64 64 72 65 73 73 3A 0D 0D 20 20 ear address:..
027A50: 20 20 20 64 65 3D 61 64 64 72 65 73 73 20 6F 66 de=address of
027A60: 20 62 79 74 65 20 36 20 6F 66 20 74 68 65 20 65 byte 6 of the e
027A70: 76 65 6E 74 20 62 6C 6F 63 6B 2E 0D 20 20 20 20 vent block..
027A80: 20 28 73 6F 20 61 6E 79 20 61 70 70 65 6E 64 65 (so any appende
027A90: 64 20 64 61 74 61 20 63 61 6E 20 73 74 61 72 74 d data can start
027AA0: 20 61 74 20 61 64 64 72 65 73 73 20 44 45 2B 31 at address DE+1
027AB0: 29 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 ).. Exit:..
027AC0: 20 20 20 20 41 46 2C 42 43 2C 44 45 2C 48 4C 20 AF,BC,DE,HL
027AD0: 63 68 61 6E 67 65 64 2E 0D 0D 20 20 20 20 20 54 changed... T
027AE0: 68 65 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 he event routine
027AF0: 20 6D 61 79 20 75 73 65 20 74 68 65 20 20 49 58 may use the IX
027B00: 20 69 73 20 74 68 65 20 72 65 73 70 6F 6E 73 69 is the responsi
027B10: 62 69 6C 69 74 79 20 20 6F 66 20 20 74 68 65 20 bility of the
027B20: 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F 67 72 foreground progr
027B30: 61 6D 20 74 6F 20 70 72 6F 63 65 73 73 0D 20 20 am to process.
027B40: 20 20 20 74 68 65 20 73 79 6E 63 68 72 6F 6E 6F the synchrono
027B50: 75 73 20 65 76 65 6E 74 20 71 75 65 75 65 20 72 us event queue r
027B60: 65 67 75 61 72 6C 79 2E 0D 0D 20 20 20 20 20 53 eguarly... S
027B70: 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 ynchronous event
027B80: 20 72 6F 75 74 69 6E 65 73 20 20 61 72 65 20 20 routines are
027B90: 63 61 6C 6C 65 64 20 20 77 68 65 6E 20 20 74 68 called when th
027BA0: 65 20 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 e foreground pr
027BB0: 6F 67 72 61 6D 0D 20 20 20 20 20 63 61 6C 6C 73 ogram. calls
027BC0: 20 4B 4C 20 44 4F 20 53 59 4E 43 2C 20 74 68 65 KL DO SYNC, the
027BD0: 20 65 76 65 6E 74 20 63 6F 75 6E 74 20 69 73 20 event count is
027BE0: 74 68 65 6E 20 64 65 61 6C 74 20 77 69 74 68 20 then dealt with
027BF0: 77 68 65 6E 20 4B 4C 20 44 4F 4E 45 20 53 59 4E when KL DONE SYN
027C00: 43 0D 20 20 20 20 20 69 73 20 63 61 6C 6C 65 64 C. is called
027C10: 2E 0D 0D 20 20 20 20 20 41 73 79 6E 63 68 72 6F ... Asynchro
027C20: 6E 6F 75 73 20 65 76 65 6E 74 73 0D 0D 20 20 20 nous events..
027C30: 20 20 61 2E 20 4E 6F 74 20 69 6E 20 74 68 65 20 a. Not in the
027C40: 69 6E 74 65 72 75 70 74 20 70 61 74 68 0D 0D 20 interupt path..
027C50: 20 20 20 20 54 68 65 20 65 76 65 6E 74 20 72 6F The event ro
027C60: 75 74 69 6E 65 20 69 73 20 63 61 6C 6C 65 64 20 utine is called
027C70: 20 69 6D 6D 65 64 69 61 74 6C 79 2E 20 20 57 68 immediatly. Wh
027C80: 65 6E 20 74 68 65 20 72 6F 75 74 69 6E 65 20 72 en the routine r
027C90: 65 74 75 72 6E 73 2C 20 69 66 0D 20 20 20 20 20 eturns, if.
027CA0: 74 68 65 20 65 76 65 6E 74 20 63 6F 75 6E 74 20 the event count
027CB0: 67 72 65 61 74 65 72 20 74 68 61 6E 20 7A 65 72 greater than zer
027CC0: 6F 20 20 69 74 20 20 69 73 20 64 65 63 72 65 6D o it is decrem
027CD0: 65 6E 74 65 64 2E 20 49 66 20 74 68 65 20 63 6F ented. If the co
027CE0: 75 6E 74 20 69 73 0D 20 20 20 20 20 73 74 69 6C unt is. stil
027CF0: 6C 20 67 72 65 61 74 65 72 20 74 68 61 6E 20 7A l greater than z
027D00: 20 20 61 6E 64 20 20 49 59 20 72 65 67 69 73 74 and IY regist
027D10: 65 72 73 20 62 75 74 20 6D 75 73 74 20 70 72 65 ers but must pre
027D20: 73 65 72 76 65 0D 20 20 20 20 20 74 68 65 6D 2E serve. them.
027D30: 20 49 74 20 6D 61 79 20 6E 6F 74 20 20 75 73 65 It may not use
027D40: 20 20 74 68 65 20 20 73 65 63 6F 6E 64 20 20 72 the second r
027D50: 65 67 69 73 74 65 72 20 73 65 74 2E 20 45 78 70 egister set. Exp
027D60: 72 65 73 73 20 61 73 79 6E 63 68 72 6F 6E 6F 75 ress asynchronou
027D70: 73 0D 20 20 20 20 20 65 76 65 6E 74 73 20 6D 61 s. events ma
027D80: 79 20 6E 6F 74 20 65 6E 61 62 6C 65 20 69 6E 74 y not enable int
027D90: 65 72 75 70 74 73 2E 0D 0D 20 20 20 20 20 54 68 erupts... Th
027DA0: 69 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C is routine enabl
027DB0: 65 73 20 69 6E 74 65 72 75 70 74 73 2E 0D 0D 20 es interupts...
027DC0: 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ------------
027DD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
027DE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
027DF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
027E00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 20 -----------.
027E10: 20 26 42 43 46 32 20 2D 20 4B 4C 20 45 56 45 4E &BCF2 - KL EVEN
027E20: 54 20 2D 20 4B 69 63 6B 20 61 6E 20 65 76 65 6E T - Kick an even
027E30: 74 20 62 6C 6F 63 6B 0D 0D 20 20 20 20 20 45 6E t block.. En
027E40: 74 72 79 3A 0D 0D 20 20 20 20 20 48 4C 20 3D 20 try:.. HL =
027E50: 61 64 64 72 65 73 73 20 20 6F 66 20 65 76 65 6E address of even
027E60: 74 20 62 6C 6F 63 6B 0D 0D 20 20 20 20 20 45 78 t block.. Ex
027E70: 69 74 3A 0D 0D 20 20 20 20 20 41 46 2C 42 43 2C it:.. AF,BC,
027E80: 44 45 2C 48 4C 20 63 68 61 6E 67 65 64 2E 0D 0D DE,HL changed...
027E90: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 Notes:..
027EA0: 20 20 55 6E 6C 69 6B 65 20 74 68 65 20 76 61 73 Unlike the vas
027EB0: 74 20 6D 61 6A 6F 72 69 74 79 20 6F 66 20 4B 65 t majority of Ke
027EC0: 72 6E 65 6C 20 72 6F 75 74 69 6E 65 73 20 74 68 rnel routines th
027ED0: 69 73 20 72 6F 75 74 69 6E 65 20 6D 61 79 20 62 is routine may b
027EE0: 65 20 63 61 6C 6C 65 64 0D 20 20 20 20 20 66 72 e called. fr
027EF0: 6F 6D 20 74 68 65 20 69 6E 74 65 72 75 70 74 20 om the interupt
027F00: 65 72 6F 20 74 68 65 6E 20 74 68 65 20 70 72 6F ero then the pro
027F10: 63 65 64 75 72 65 20 69 73 20 72 65 70 65 61 74 cedure is repeat
027F20: 65 64 2E 0D 0D 20 20 20 20 20 62 2E 20 49 6E 20 ed... b. In
027F30: 74 68 65 20 69 6E 74 65 72 75 70 74 20 70 61 74 the interupt pat
027F40: 68 20 2D 20 4E 6F 72 6D 61 6C 20 41 73 79 6E 63 h - Normal Async
027F50: 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 0D 0D 20 hronous event..
027F60: 20 20 20 20 54 68 65 20 65 76 65 6E 74 20 69 73 The event is
027F70: 20 70 6C 61 63 65 64 20 6F 6E 20 74 68 65 20 69 placed on the i
027F80: 6E 74 65 72 75 70 74 20 20 65 76 65 6E 74 20 70 nterupt event p
027F90: 65 6E 64 69 6E 67 20 71 75 65 75 65 2E 20 4F 6E ending queue. On
027FA0: 20 65 78 69 74 20 66 72 6F 6D 0D 20 20 20 20 20 exit from.
027FB0: 74 68 65 20 69 6E 74 65 72 75 70 74 20 70 61 74 the interupt pat
027FC0: 68 20 74 68 65 20 20 4B 65 72 6E 65 6C 20 20 70 h the Kernel p
027FD0: 72 6F 63 65 73 73 65 73 20 20 61 6C 6C 20 20 65 rocesses all e
027FE0: 76 65 6E 74 73 20 20 6F 6E 20 74 68 65 20 69 6E vents on the in
027FF0: 74 65 72 75 70 74 0D 20 20 20 20 20 70 65 6E 64 terupt. pend
028000: 69 6E 67 20 71 75 65 75 65 20 61 73 20 20 64 65 ing queue as de
028010: 73 63 72 69 62 65 64 20 20 69 6E 20 20 28 61 29 scribed in (a)
028020: 20 20 61 62 6F 76 65 2E 20 20 54 68 69 73 20 20 above. This
028030: 6D 65 61 6E 73 20 20 74 68 61 74 20 6E 6F 72 6D means that norm
028040: 61 6C 0D 20 20 20 20 20 41 73 79 6E 63 68 72 6F al. Asynchro
028050: 6E 6F 75 73 20 65 76 65 6E 74 20 72 6F 75 74 69 nous event routi
028060: 6E 65 73 20 61 72 65 20 63 61 6C 6C 65 64 20 69 nes are called i
028070: 6E 20 61 6E 20 65 78 74 65 6E 73 69 6F 6E 20 6F n an extension o
028080: 66 20 6E 6F 72 6D 61 6C 20 28 6E 6F 6E 2D 0D 20 f normal (non-.
028090: 20 20 20 20 69 6E 74 65 72 75 70 74 29 20 70 72 interupt) pr
0280A0: 6F 63 65 73 73 69 6E 67 20 62 65 74 77 65 65 6E ocessing between
0280B0: 20 69 6E 74 65 72 75 70 74 20 72 65 74 75 72 6E interupt return
0280C0: 20 61 6E 64 20 74 68 65 20 6D 61 69 6E 20 70 72 and the main pr
0280D0: 6F 67 72 61 6D 2E 20 54 68 65 0D 20 20 20 20 20 ogram. The.
0280E0: 72 6F 75 74 69 6E 65 20 69 73 2C 20 74 68 65 72 routine is, ther
0280F0: 65 66 6F 72 65 2C 20 20 6E 6F 79 20 20 73 75 62 efore, noy sub
028100: 70 61 74 68 2E 20 42 65 63 61 75 73 65 20 74 68 path. Because th
028110: 65 20 20 4C 4F 57 20 20 4A 55 4D 50 20 69 6E 73 e LOW JUMP ins
028120: 74 72 75 63 74 69 6F 6E 20 69 6E 20 74 68 65 20 truction in the
028130: 6D 61 69 6E 0D 20 20 20 20 20 66 69 72 6D 77 61 main. firmwa
028140: 72 65 20 6A 75 6D 70 62 6C 6F 63 6B 20 65 6E 61 re jumpblock ena
028150: 62 6C 65 73 20 69 6E 74 65 72 75 70 74 73 20 20 bles interupts
028160: 74 68 65 20 20 75 73 65 72 20 20 6D 75 73 74 20 the user must
028170: 70 69 63 6B 20 74 68 65 20 61 64 64 72 65 73 73 pick the address
028180: 0D 20 20 20 20 20 70 61 72 74 20 6F 66 20 74 68 . part of th
028190: 65 20 6C 6F 77 20 61 64 64 72 65 73 73 20 6F 75 e low address ou
0281A0: 74 20 6F 66 20 74 68 65 20 20 6A 75 6D 70 62 6C t of the jumpbl
0281B0: 6F 63 6B 20 61 6E 64 20 6D 61 73 6B 20 6F 66 66 ock and mask off
0281C0: 20 74 68 65 20 74 6F 70 20 74 77 6F 0D 20 20 20 the top two.
0281D0: 20 20 62 69 74 73 20 74 6F 20 65 78 74 72 61 63 bits to extrac
0281E0: 74 20 20 74 68 65 20 20 61 64 64 72 65 73 73 20 t the address
0281F0: 20 69 6E 20 20 74 68 65 20 20 6C 6F 77 65 72 20 in the lower
028200: 20 72 6F 6D 20 20 6F 66 20 20 4B 4C 20 20 65 76 rom of KL ev
028210: 65 6E 74 2E 20 54 68 65 0D 20 20 20 20 20 66 6F ent. The. fo
028220: 6C 6C 6F 77 69 6E 67 20 64 6F 65 73 20 74 68 69 llowing does thi
028230: 73 3A 0D 0D 20 20 20 20 20 4C 44 20 44 45 2C 28 s:.. LD DE,(
028240: 4B 4C 5F 45 56 45 4E 54 2B 31 29 20 20 20 20 20 KL_EVENT+1)
028250: 20 3B 65 78 74 72 61 63 74 20 61 64 64 72 65 73 ;extract addres
028260: 73 20 70 61 72 74 20 6F 66 20 4C 4F 57 20 4A 55 s part of LOW JU
028270: 4D 50 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 52 45 MP....... RE
028280: 53 20 37 2C 44 20 20 20 20 20 20 20 20 20 20 20 S 7,D
028290: 20 20 20 20 20 20 3B 72 65 6D 6F 76 65 20 75 70 ;remove up
0282A0: 70 65 72 20 72 6F 6D 20 73 74 61 74 65 20 66 72 per rom state fr
0282B0: 6F 6D 20 6C 6F 77 20 61 64 64 72 65 73 73 0D 20 om low address.
0282C0: 20 20 20 20 52 45 53 20 36 2C 44 20 20 20 20 20 RES 6,D
0282D0: 20 20 20 20 20 20 20 20 20 20 20 20 3B 72 65 6D ;rem
0282E0: 6F 76 65 20 6C 6F 77 65 72 20 72 6F 6D 20 73 74 ove lower rom st
0282F0: 61 74 65 20 66 72 6F 6D 20 6C 6F 77 20 61 64 64 ate from low add
028300: 6A 65 63 74 20 20 74 6F 20 20 74 68 65 20 20 72 ject to the r
028310: 65 73 74 72 69 63 74 69 6F 6E 73 20 69 6D 70 6F estrictions impo
028320: 73 65 64 20 6F 6E 0D 20 20 20 20 20 69 6E 74 65 sed on. inte
028330: 72 75 70 74 20 70 61 74 68 20 72 6F 75 74 69 6E rupt path routin
028340: 65 73 2E 0D 0D 20 20 20 20 20 63 2E 20 49 6E 20 es... c. In
028350: 74 68 65 20 69 6E 74 65 72 75 70 74 20 70 61 74 the interupt pat
028360: 68 20 2D 20 45 78 70 72 65 73 73 20 41 73 79 6E h - Express Asyn
028370: 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 0D chronous events.
028380: 0D 20 20 20 20 20 54 68 65 20 65 76 65 6E 74 20 . The event
028390: 72 6F 75 74 69 6E 65 20 69 73 20 20 63 61 6C 6C routine is call
0283A0: 65 64 20 20 69 6D 6D 65 64 69 61 74 6C 79 2C 20 ed immediatly,
0283B0: 20 69 6E 20 20 74 68 65 20 20 69 6E 74 65 72 75 in the interu
0283C0: 70 74 20 70 61 74 68 2E 20 54 68 65 0D 20 20 20 pt path. The.
0283D0: 20 20 72 6F 75 74 69 6E 65 20 6D 75 73 74 20 62 routine must b
0283E0: 65 20 61 74 20 20 61 20 20 6E 65 61 72 20 20 61 e at a near a
0283F0: 64 64 72 65 73 73 2E 20 20 55 6E 64 65 72 20 20 ddress. Under
028400: 6E 6F 20 63 69 72 63 75 6D 73 74 61 6E 63 65 73 no circumstances
028410: 20 6D 61 79 20 74 68 65 0D 20 20 20 20 20 72 6F may the. ro
028420: 75 74 69 6E 65 20 65 6E 61 62 6C 65 20 69 6E 74 utine enable int
028430: 65 72 75 70 74 73 2E 0D 0D 20 20 20 20 20 4B 4C erupts... KL
028440: 20 45 56 45 4E 54 20 65 6E 61 62 6C 65 73 20 69 EVENT enables i
028450: 6E 74 65 72 75 70 74 73 20 75 6E 6C 65 73 73 20 nterupts unless
028460: 69 74 20 69 73 20 63 61 6C 6C 65 64 20 66 72 6F it is called fro
028470: 6D 20 74 68 65 20 69 6E 74 65 72 75 70 74 20 70 m the interupt p
028480: 61 74 68 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D ath... -----
028490: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0284A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0284B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0284C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0284D0: 2D 0D 0D 20 20 20 20 20 26 42 43 46 35 20 2D 20 -.. &BCF5 -
0284E0: 4B 4C 20 53 59 4E 43 20 52 45 53 45 54 20 2D 20 KL SYNC RESET -
0284F0: 43 6C 65 61 72 20 73 79 6E 63 68 72 6F 6E 6F 75 Clear synchronou
028500: 72 65 73 73 0D 20 20 20 20 20 43 41 4C 4C 20 50 ress. CALL P
028510: 43 44 45 5F 49 4E 53 54 52 55 43 54 49 4F 4E 20 CDE_INSTRUCTION
028520: 20 20 3B 63 61 6C 6C 20 4B 4C 20 45 56 45 4E 54 ;call KL EVENT
028530: 0D 0D 20 20 20 20 20 28 69 66 20 74 68 65 20 75 .. (if the u
028540: 73 65 72 20 69 73 20 20 67 6F 69 6E 67 20 20 74 ser is going t
028550: 6F 20 20 70 65 72 66 6F 72 6D 20 20 74 68 69 73 o perform this
028560: 20 20 6F 70 65 72 61 74 69 6F 6E 20 20 72 65 70 operation rep
028570: 65 61 74 65 64 6C 79 20 69 74 20 69 73 0D 20 20 eatedly it is.
028580: 20 20 20 72 65 63 6F 6D 6D 65 6E 64 65 64 20 74 recommended t
028590: 68 61 74 20 74 68 65 20 61 64 64 72 65 73 73 20 hat the address
0285A0: 73 68 6F 75 6C 64 20 20 62 65 20 20 65 78 74 72 should be extr
0285B0: 61 63 74 65 64 20 20 6F 6E 63 65 20 61 6E 64 20 acted once and
0285C0: 73 68 6F 75 6C 64 20 62 65 0D 20 20 20 20 20 73 should be. s
0285D0: 74 6F 72 65 64 20 73 6F 6D 65 77 68 65 72 65 29 tored somewhere)
0285E0: 0D 0D 20 20 20 20 20 54 68 65 20 65 66 66 65 63 .. The effec
0285F0: 74 20 6F 66 20 74 68 65 20 6B 69 63 6B 20 64 65 t of the kick de
028600: 70 65 6E 64 73 20 6F 6E 20 74 68 65 20 65 76 65 pends on the eve
028610: 6E 74 20 63 6F 75 6E 74 20 69 6E 20 74 68 65 20 nt count in the
028620: 65 76 65 6E 74 20 62 6C 6F 63 6B 3A 0D 0D 20 20 event block:..
028630: 20 20 20 63 6F 75 6E 74 3C 30 20 20 20 20 20 20 count<0
028640: 20 20 20 54 68 65 20 65 76 65 6E 74 20 69 73 20 The event is
028650: 64 69 73 61 72 6D 65 64 2C 20 61 6E 64 20 6B 69 disarmed, and ki
028660: 63 6B 69 6E 67 20 68 61 73 20 6E 6F 20 65 66 66 cking has no eff
028670: 65 63 74 0D 20 20 20 20 20 63 6F 75 6E 74 3E 30 ect. count>0
028680: 20 20 20 20 20 20 20 20 20 54 68 65 72 65 20 61 There a
028690: 72 65 20 6F 74 68 65 72 20 20 6B 69 63 6B 73 20 re other kicks
0286A0: 20 6F 75 74 73 74 61 6E 64 69 6E 67 20 20 61 6E outstanding an
0286B0: 64 20 20 74 68 65 20 65 76 65 6E 74 20 69 73 0D d the event is.
0286C0: 20 20 20 20 20 62 65 69 6E 67 20 70 72 6F 63 65 being proce
0286D0: 73 73 65 64 2E 20 54 68 69 73 20 6B 69 63 6B 20 ssed. This kick
0286E0: 73 69 6D 70 6C 79 20 69 6E 63 72 65 6D 65 6E 74 simply increment
0286F0: 73 20 20 74 68 65 20 63 6F 75 6E 74 20 28 75 6E s the count (un
028700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
028710: 22 00 01 00 02 09 4E E5 22 00 C1 02 00 00 00 02 ".....N.".......
028720: 22 00 C6 02 00 00 00 02 22 00 C2 02 00 00 00 02 ".......".......
028730: 22 00 C7 02 00 00 00 02 22 00 C3 02 00 00 00 02 ".......".......
028740: 22 00 C8 02 00 00 00 02 22 00 C4 02 00 00 00 02 ".......".......
028750: 22 00 C9 02 00 00 00 02 22 00 C5 02 00 00 00 02 ".......".......
028760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028800: 73 20 65 76 65 6E 74 20 71 75 65 75 65 2E 0D 0D s event queue...
028810: 0D 0D 0D 0D 0D 0D 20 20 20 20 20 45 6E 74 72 79 ...... Entry
028820: 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 20 :.. None..
028830: 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 Exit:.. A
028840: 46 20 61 6E 64 20 48 4C 20 63 68 61 6E 67 65 64 F and HL changed
028850: 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D ... Notes:..
028860: 20 20 20 20 20 49 74 20 69 73 20 74 68 65 20 75 It is the u
028870: 73 65 72 27 73 20 72 65 73 70 6F 6E 73 69 62 69 ser's responsibi
028880: 6C 69 74 79 20 20 74 6F 20 20 65 6E 73 75 72 65 lity to ensure
028890: 20 20 74 68 61 74 20 74 68 65 20 64 69 73 63 61 that the disca
0288A0: 72 64 65 64 20 65 76 65 6E 74 73 0D 20 20 20 20 rded events.
0288B0: 20 61 6E 64 20 61 6E 79 20 20 63 75 72 72 65 6E and any curren
0288C0: 74 6C 79 20 20 61 63 74 69 76 65 20 20 65 76 65 tly active eve
0288D0: 6E 74 73 20 20 61 72 65 20 20 72 65 73 65 74 2E nts are reset.
0288E0: 20 20 54 68 65 20 20 65 76 65 6E 74 20 20 63 6F The event co
0288F0: 75 6E 74 20 20 6F 66 0D 20 20 20 20 20 64 69 73 unt of. dis
028900: 63 61 72 64 65 64 20 65 76 65 6E 74 73 20 77 69 carded events wi
028910: 6C 6C 20 62 65 20 67 72 65 61 74 65 72 20 74 68 ll be greater th
028920: 61 6E 20 20 7A 65 72 6F 2C 20 73 6F 20 61 6E 79 an zero, so any
028930: 20 66 75 72 74 68 75 72 20 6B 69 63 6B 73 20 77 furthur kicks w
028940: 69 6C 6C 0D 20 20 20 20 20 73 69 6D 70 6C 79 20 ill. simply
028950: 69 6E 63 72 65 6D 65 6E 74 20 74 68 65 20 63 6F increment the co
028960: 75 6E 74 2C 20 62 75 74 20 6E 6F 74 20 20 61 64 unt, but not ad
028970: 64 20 20 74 68 65 20 65 76 65 6E 74 20 74 6F 20 d the event to
028980: 74 68 65 20 73 79 6E 63 68 72 6F 6E 6F 75 73 0D the synchronous.
028990: 20 20 20 20 20 65 76 65 6E 74 20 71 75 65 75 65 event queue
0289A0: 2D 20 74 68 65 20 65 76 65 6E 74 73 20 61 72 65 - the events are
0289B0: 2C 20 74 68 65 72 65 66 6F 72 65 2C 20 65 66 66 , therefore, eff
0289C0: 65 63 74 69 76 65 6C 79 20 64 69 73 61 72 6D 65 ectively disarme
0289D0: 64 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D d... -------
0289E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
0289F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
028A00: 6E 74 20 70 72 69 6F 72 69 74 79 0D 20 20 20 20 nt priority.
028A10: 20 43 41 4C 4C 20 4B 4C 5F 44 4F 5F 53 59 4E 43 CALL KL_DO_SYNC
028A20: 20 20 20 20 20 20 20 20 20 3B 63 61 6C 6C 20 74 ;call t
028A30: 68 65 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 he event routine
028A40: 0D 20 20 20 20 20 50 4F 50 20 41 46 0D 20 20 20 . POP AF.
028A50: 20 20 50 4F 50 20 48 4C 0D 20 20 20 20 20 43 41 POP HL. CA
028A60: 4C 4C 20 4B 4C 5F 44 4F 4E 45 5F 53 59 4E 43 20 LL KL_DONE_SYNC
028A70: 20 20 20 20 20 20 3B 72 65 73 65 74 20 74 68 65 ;reset the
028A80: 20 65 76 65 6E 74 20 70 72 69 6F 72 69 74 79 20 event priority
028A90: 6D 61 73 6B 2C 20 64 65 61 6C 20 77 69 74 68 0D mask, deal with.
028AA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028AB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 74 68 ;th
028AC0: 65 20 65 76 65 6E 74 20 63 6F 75 6E 74 20 61 6E e event count an
028AD0: 64 20 70 75 74 20 74 68 65 20 65 76 65 6E 74 20 d put the event
028AE0: 62 61 63 6B 20 6F 6E 0D 20 20 20 20 20 20 20 20 back on.
028AF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028B00: 20 20 20 20 20 3B 74 68 65 20 71 75 65 75 65 20 ;the queue
028B10: 69 66 20 74 68 65 20 63 6F 75 6E 74 20 69 73 20 if the count is
028B20: 73 74 69 6C 6C 20 67 72 65 61 74 65 72 0D 20 20 still greater.
028B30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
028B40: 20 20 20 20 20 20 20 20 20 20 20 3B 74 68 61 6E ;than
028B50: 20 7A 65 72 6F 0D 0D 20 20 20 20 20 4A 52 20 20 zero.. JR
028B60: 54 52 59 5F 41 47 41 49 4E 20 20 20 20 20 20 20 TRY_AGAIN
028B70: 20 20 20 20 3B 73 65 65 20 20 69 66 20 20 61 6E ;see if an
028B80: 79 20 20 20 65 76 65 6E 74 73 20 20 61 72 65 20 y events are
028B90: 20 73 74 69 6C 6C 20 20 61 77 61 69 74 69 6E 67 still awaiting
028BA0: 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
028BB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 70 ;p
028BC0: 72 6F 63 65 73 73 69 6E 67 0D 0D 20 20 20 20 20 rocessing..
028BD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
028BE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
028BF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
028C00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
028C10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D ---------------.
028C20: 20 20 20 20 20 26 42 43 46 38 20 2D 20 4B 4C 20 &BCF8 - KL
028C30: 44 45 4C 20 53 59 4E 43 48 52 4F 4E 4F 55 53 20 DEL SYNCHRONOUS
028C40: 2D 20 52 65 6D 6F 76 65 20 20 61 20 73 79 6E 63 - Remove a sync
028C50: 68 72 6F 6E 6F 75 73 20 65 76 6E 74 20 66 72 6F hronous evnt fro
028C60: 6D 20 74 68 65 20 65 76 65 6E 74 0D 20 20 20 20 m the event.
028C70: 20 71 75 65 75 65 0D 0D 20 20 20 20 20 45 6E 74 queue.. Ent
028C80: 72 79 3A 0D 0D 20 20 20 20 20 48 4C 20 3D 20 61 ry:.. HL = a
028C90: 64 64 72 65 73 73 20 6F 66 20 74 68 65 20 65 76 ddress of the ev
028CA0: 65 6E 74 20 62 6C 6F 63 6B 0D 0D 20 20 20 20 20 ent block..
028CB0: 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 46 2C 42 Exit:.. AF,B
028CC0: 43 2C 44 45 2C 48 4C 20 63 68 61 6E 67 65 64 2E C,DE,HL changed.
028CD0: 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 .. Notes:..
028CE0: 20 20 20 20 44 65 6C 65 74 69 6E 67 20 61 6E 20 Deleting an
028CF0: 65 76 65 6E 74 20 66 72 6F 6D 20 74 68 65 20 20 event from the
028D00: 71 75 65 75 65 20 20 70 72 65 76 65 6E 74 73 20 queue prevents
028D10: 74 68 65 20 6F 75 74 73 74 61 6E 64 69 6E 67 20 the outstanding
028D20: 6B 69 63 6B 73 20 66 6F 72 6D 0D 20 20 20 20 20 kicks form.
028D30: 62 65 69 6E 67 20 70 72 6F 63 65 73 73 65 64 2E being processed.
028D40: 0D 0D 20 20 20 20 20 42 65 66 6F 72 65 20 61 20 .. Before a
028D50: 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 20 65 76 synchronous ev
028D60: 65 6E 74 20 20 62 6C 6F 63 6B 20 20 69 73 20 20 ent block is
028D70: 72 65 73 65 74 20 20 6F 72 20 20 72 65 69 6E 69 reset or reini
028D80: 74 69 61 6C 69 7A 65 64 20 74 68 69 73 0D 20 20 tialized this.
028D90: 20 20 20 72 6F 75 74 69 6E 65 20 73 68 6F 75 6C routine shoul
028DA0: 64 20 62 65 20 75 73 65 64 20 74 6F 20 65 6E 73 d be used to ens
028DB0: 75 72 65 20 74 68 61 74 20 69 74 20 69 73 20 6E ure that it is n
028DC0: 6F 74 20 63 75 72 72 65 6E 74 6C 79 20 70 65 6E ot currently pen
028DD0: 64 69 6E 67 2E 0D 0D 20 20 20 20 20 54 68 69 73 ding... This
028DE0: 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C 65 73 routine enables
028DF0: 20 69 6E 74 65 72 75 70 74 73 2E 0D 0D 20 20 20 interupts...
028E00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
028E10: 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 20 20 26 42 43 -------. &BC
028E20: 46 45 20 2D 20 4B 4C 20 44 4F 20 53 59 4E 43 20 FE - KL DO SYNC
028E30: 2D 20 44 6F 20 61 6E 20 65 76 65 6E 74 20 72 6F - Do an event ro
028E40: 75 74 69 6E 65 0D 0D 20 20 20 20 20 45 6E 74 72 utine.. Entr
028E50: 79 3A 0D 0D 20 20 20 20 20 48 4C 20 3D 20 61 64 y:.. HL = ad
028E60: 64 72 65 73 73 20 6F 66 20 65 76 65 6E 74 20 62 dress of event b
028E70: 6C 6F 63 6B 0D 0D 20 20 20 20 20 45 78 69 74 3A lock.. Exit:
028E80: 0D 0D 20 20 20 20 20 41 46 2C 42 43 2C 44 45 2C .. AF,BC,DE,
028E90: 48 4C 20 63 68 61 6E 67 65 64 2E 0D 0D 20 20 20 HL changed...
028EA0: 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 Notes:.. T
028EB0: 68 69 73 20 72 6F 75 74 69 6E 65 20 69 73 20 74 his routine is t
028EC0: 6F 20 62 65 20 63 61 6C 6C 65 64 20 20 74 6F 20 o be called to
028ED0: 20 70 72 6F 63 65 73 73 20 20 61 6E 20 65 76 65 process an eve
028EE0: 6E 74 20 61 66 74 65 72 20 4B 4C 20 4E 45 58 54 nt after KL NEXT
028EF0: 20 53 59 4E 43 0D 20 20 20 20 20 68 61 73 20 66 SYNC. has f
028F00: 6F 75 6E 64 20 69 74 20 74 6F 20 62 65 20 70 65 ound it to be pe
028F10: 6E 64 69 6E 67 2E 20 55 73 65 20 20 6F 66 20 20 nding. Use of
028F20: 74 68 69 73 20 20 65 6E 74 72 79 20 61 74 20 6F this entry at o
028F30: 74 68 65 72 20 74 69 6D 65 73 20 69 73 20 6E 6F ther times is no
028F40: 74 0D 20 20 20 20 20 72 65 63 6F 6D 6D 65 6E 64 t. recommend
028F50: 65 64 2E 0D 0D 20 20 20 20 20 54 68 69 73 20 72 ed... This r
028F60: 6F 75 74 69 6E 65 20 64 6F 65 73 6E 27 74 20 61 outine doesn't a
028F70: 66 66 65 63 74 20 74 68 65 20 65 76 65 6E 74 20 ffect the event
028F80: 63 6F 75 6E 74 2E 0D 0D 20 20 20 20 20 2D 2D 2D count... ---
028F90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
028FA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
028FB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
028FC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
028FD0: 2D 2D 2D 2D 0D 20 20 20 20 20 26 42 44 30 31 20 ----. &BD01
028FE0: 2D 20 4B 4C 20 44 4F 4E 45 20 53 59 4E 43 20 2D - KL DONE SYNC -
028FF0: 20 46 69 6E 69 73 68 20 70 72 6F 63 65 73 73 69 Finish processi
029000: 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D --------------
029010: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029020: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029030: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029040: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 ---------..
029050: 26 42 43 46 42 20 2D 20 4B 4C 20 4E 45 58 54 20 &BCFB - KL NEXT
029060: 53 59 4E 43 20 2D 20 47 65 74 20 6E 65 78 74 20 SYNC - Get next
029070: 65 76 65 6E 74 20 66 72 6F 6D 20 74 68 65 20 71 event from the q
029080: 75 65 75 65 2E 0D 0D 20 20 20 20 20 45 6E 74 72 ueue... Entr
029090: 79 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 y:.. None..
0290A0: 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 Exit:..
0290B0: 49 66 20 74 68 65 72 65 20 77 61 73 20 61 6E 20 If there was an
0290C0: 65 76 65 6E 74 20 74 6F 20 62 65 20 70 72 6F 63 event to be proc
0290D0: 73 73 65 64 3A 0D 0D 20 20 20 20 20 43 61 72 72 ssed:.. Carr
0290E0: 79 20 74 72 75 65 2E 20 48 4C 20 3D 20 61 64 64 y true. HL = add
0290F0: 72 65 73 73 20 6F 66 20 74 68 65 20 65 76 65 6E ress of the even
029100: 74 20 62 6C 6F 63 6B 0D 20 20 20 20 20 41 20 3D t block. A =
029110: 20 70 72 65 76 69 6F 75 73 20 65 76 65 6E 74 20 previous event
029120: 70 72 69 6F 72 69 74 79 20 28 69 66 20 61 6E 79 priority (if any
029130: 29 0D 0D 20 20 20 20 20 49 66 20 74 68 65 72 65 ).. If there
029140: 20 69 73 20 6E 6F 20 65 76 65 6E 74 20 74 6F 20 is no event to
029150: 62 65 20 70 72 6F 63 65 73 73 65 64 3A 0D 0D 20 be processed:..
029160: 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E Carry false.
029170: 20 41 2C 48 4C 20 63 68 61 6E 67 65 64 2E 0D 0D A,HL changed...
029180: 20 20 20 20 20 44 45 20 63 68 61 6E 67 65 64 2E DE changed.
029190: 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 4E 6F 74 ........ Not
0291A0: 65 73 3A 0D 0D 20 20 20 20 20 4B 4C 20 4E 45 58 es:.. KL NEX
0291B0: 54 20 53 59 4E 43 20 72 65 74 75 72 6E 73 20 74 T SYNC returns t
0291C0: 68 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 he address of th
0291D0: 65 20 6E 65 78 74 20 65 76 65 6E 74 20 74 6F 20 e next event to
0291E0: 62 65 20 70 72 6F 63 65 73 73 65 64 2C 20 69 66 be processed, if
0291F0: 0D 20 20 20 20 20 61 6E 79 2C 20 77 68 69 63 68 . any, which
029200: 6E 67 20 61 6E 20 65 76 65 6E 74 0D 0D 0D 0D 0D ng an event.....
029210: 0D 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D ... Entry:..
029220: 20 20 20 20 20 41 20 3D 20 70 72 65 76 69 6F 75 A = previou
029230: 73 20 65 76 65 6E 74 20 70 72 69 6F 72 69 74 79 s event priority
029240: 0D 20 20 20 20 20 48 4C 20 3D 20 61 64 64 72 65 . HL = addre
029250: 73 73 20 6F 66 20 74 68 65 20 65 76 65 6E 74 20 ss of the event
029260: 62 6C 6F 63 6B 0D 0D 20 20 20 20 20 45 78 69 74 block.. Exit
029270: 3A 0D 0D 20 20 20 20 20 41 46 2C 42 43 2C 44 45 :.. AF,BC,DE
029280: 2C 48 4C 20 63 68 61 6E 67 65 64 2E 0D 0D 20 20 ,HL changed...
029290: 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 Notes:..
0292A0: 54 68 69 73 20 72 6F 75 74 69 6E 65 20 69 73 20 This routine is
0292B0: 69 6E 74 65 6E 64 65 64 20 74 6F 20 62 65 20 20 intended to be
0292C0: 63 61 6C 6C 65 64 20 20 61 66 74 65 72 20 20 4B called after K
0292D0: 4C 20 4E 45 58 54 20 53 59 4E 43 2C 20 74 6F 20 L NEXT SYNC, to
0292E0: 66 69 6E 64 20 61 0D 20 20 20 20 20 70 65 6E 64 find a. pend
0292F0: 69 6E 67 20 65 76 65 6E 74 2C 20 61 6E 64 20 4B ing event, and K
029300: 4C 20 44 4F 20 53 59 4E 43 2C 20 74 6F 20 20 72 L DO SYNC, to r
029310: 75 6E 20 20 74 68 65 20 65 76 65 6E 74 20 72 6F un the event ro
029320: 75 74 69 6E 65 2E 20 49 74 20 75 73 65 73 20 74 utine. It uses t
029330: 68 65 0D 20 20 20 20 20 70 72 65 76 69 6F 75 73 he. previous
029340: 20 65 76 65 6E 74 20 70 72 69 6F 72 69 74 79 20 event priority
029350: 61 6E 64 20 20 74 68 65 20 20 65 76 65 6E 74 20 and the event
029360: 20 62 6C 6F 63 6B 20 20 61 64 64 72 65 73 73 20 block address
029370: 72 65 74 75 72 6E 65 64 20 62 79 20 4B 4C 0D 20 returned by KL.
029380: 20 20 20 20 4E 45 58 54 20 53 59 4E 43 2E 20 4F NEXT SYNC. O
029390: 74 68 65 72 20 75 73 65 73 20 6F 66 20 74 68 69 ther uses of thi
0293A0: 73 20 65 6E 74 72 79 20 61 72 65 20 6E 6F 74 20 s entry are not
0293B0: 72 65 63 6F 6D 6D 65 6E 64 65 64 2E 0D 0D 20 20 recommended...
0293C0: 20 20 20 53 65 65 20 4B 4C 20 4E 45 58 54 20 20 See KL NEXT
0293D0: 53 59 4E 43 20 20 61 62 6F 76 65 20 20 66 6F 72 SYNC above for
0293E0: 20 20 74 68 65 20 20 73 63 68 65 6D 65 20 20 66 the scheme f
0293F0: 6F 72 20 70 72 6F 63 65 73 73 69 6E 67 20 73 79 or processing sy
029400: 20 69 74 20 68 61 73 20 20 74 61 6B 65 6E 20 20 it has taken
029410: 6F 66 66 20 20 74 68 65 20 20 73 79 6E 63 68 72 off the synchr
029420: 6F 6E 6F 75 73 20 20 65 76 65 6E 74 20 71 75 65 onous event que
029430: 75 65 20 61 6E 64 20 77 68 6F 73 65 0D 20 20 20 ue and whose.
029440: 20 20 70 72 69 6F 72 69 74 79 20 68 61 73 20 6E priority has n
029450: 6F 77 20 62 65 65 6E 20 73 65 74 20 61 73 20 74 ow been set as t
029460: 68 65 20 65 76 65 6E 74 20 70 72 69 6F 72 69 74 he event priorit
029470: 79 20 6D 61 73 6B 2E 0D 0D 20 20 20 20 20 54 68 y mask... Th
029480: 65 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 72 6F e foreground pro
029490: 67 72 61 6D 20 73 68 6F 75 6C 64 20 20 63 61 6C gram should cal
0294A0: 6C 20 20 4B 4C 20 20 50 4F 4C 4C 20 20 53 59 4E l KL POLL SYN
0294B0: 43 48 52 4F 4E 4F 55 53 20 72 65 67 75 61 72 6C CHRONOUS reguarl
0294C0: 79 20 74 6F 0D 20 20 20 20 20 63 68 65 63 6B 20 y to. check
0294D0: 66 6F 72 20 6F 75 74 73 74 61 6E 64 69 6E 67 20 for outstanding
0294E0: 65 76 65 6E 74 73 2E 20 4B 4C 20 20 50 4F 4C 4C events. KL POLL
0294F0: 20 20 53 59 4E 43 48 52 4F 4E 4F 55 53 20 69 73 SYNCHRONOUS is
029500: 20 61 20 73 68 6F 72 74 20 72 6F 75 74 69 6E 65 a short routine
029510: 0D 20 20 20 20 20 69 6E 20 52 41 4D 2C 20 73 6F . in RAM, so
029520: 20 63 61 6C 6C 69 6E 67 20 69 74 20 69 6D 70 6F calling it impo
029530: 73 65 73 20 20 6C 69 74 74 6C 65 20 20 6F 76 65 ses little ove
029540: 72 68 65 61 64 2E 20 20 49 66 20 74 68 65 72 65 rhead. If there
029550: 20 69 73 20 61 6E 20 65 76 65 6E 74 0D 20 20 20 is an event.
029560: 20 20 6F 75 74 73 74 61 6E 64 69 6E 67 20 74 68 outstanding th
029570: 65 6E 20 74 68 65 20 61 62 6F 76 65 20 70 72 6F en the above pro
029580: 63 65 64 75 72 65 20 73 68 6F 75 6C 64 20 20 62 cedure should b
029590: 65 20 69 6E 76 6F 6B 65 64 2C 20 61 6E 64 20 73 e invoked, and s
0295A0: 68 6F 75 6C 64 20 62 65 0D 20 20 20 20 20 72 65 hould be. re
0295B0: 70 65 61 74 65 64 20 75 6E 74 69 6C 20 74 68 65 peated until the
0295C0: 20 65 76 65 6E 74 20 71 75 65 75 65 20 69 73 20 event queue is
0295D0: 65 6D 70 74 79 2E 0D 0D 20 20 20 20 20 54 68 65 empty... The
0295E0: 20 63 75 72 72 65 6E 74 20 65 76 65 6E 74 20 70 current event p
0295F0: 72 69 6F 72 69 74 79 20 20 6D 65 63 68 61 6E 69 riority mechani
029600: 6E 63 68 72 6F 6E 6F 75 73 0D 20 20 20 20 20 65 nchronous. e
029610: 76 65 6E 74 73 2E 0D 0D 20 20 20 20 20 52 65 73 vents... Res
029620: 74 6F 72 69 6E 67 20 20 74 68 65 20 20 63 75 72 toring the cur
029630: 72 65 6E 74 20 20 65 76 65 6E 74 20 20 70 72 69 rent event pri
029640: 6F 72 69 74 79 20 20 20 69 73 20 20 61 6E 20 20 ority is an
029650: 65 73 73 65 6E 74 69 61 6C 20 20 73 74 65 70 20 essential step
029660: 20 69 6E 0D 20 20 20 20 20 6D 61 69 6E 74 61 69 in. maintai
029670: 6E 69 6E 67 20 74 68 65 20 73 79 63 68 72 6F 6E ning the sychron
029680: 6F 75 73 20 65 76 65 6E 74 20 70 72 69 6F 72 69 ous event priori
029690: 74 79 20 73 63 68 65 6D 65 2E 0D 0D 20 20 20 20 ty scheme...
0296A0: 20 49 66 20 74 68 65 20 65 76 65 6E 74 20 63 6F If the event co
0296B0: 75 6E 74 20 69 73 20 67 72 65 61 74 65 72 20 74 unt is greater t
0296C0: 68 61 6E 20 7A 65 72 6F 20 74 68 65 6E 20 69 74 han zero then it
0296D0: 20 69 73 20 64 65 63 72 65 6D 65 6E 74 65 64 2E is decremented.
0296E0: 20 49 66 20 74 68 65 0D 20 20 20 20 20 63 6F 75 If the. cou
0296F0: 6E 74 20 69 73 20 20 73 74 69 6C 6C 20 20 67 72 nt is still gr
029700: 65 61 74 65 72 20 20 74 68 61 6E 20 20 7A 65 72 eater than zer
029710: 6F 20 20 74 68 65 6E 20 20 74 68 65 72 65 20 20 o then there
029720: 61 72 65 20 20 66 75 72 74 68 65 72 20 65 76 65 are further eve
029730: 6E 74 73 0D 20 20 20 20 20 6F 75 74 73 74 61 6E nts. outstan
029740: 64 69 6E 67 20 61 6E 64 20 74 68 65 20 65 76 65 ding and the eve
029750: 6E 74 20 20 69 73 20 20 70 6C 61 63 65 64 20 20 nt is placed
029760: 62 61 63 6B 20 20 6F 6E 20 20 74 68 65 20 73 79 back on the sy
029770: 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 0D nchronous event.
029780: 20 20 20 20 20 71 75 65 75 65 2E 20 54 68 65 20 queue. The
029790: 65 76 65 6E 74 20 6D 61 79 20 62 65 20 20 64 69 event may be di
0297A0: 73 61 72 6D 65 64 20 20 62 65 74 77 65 65 6E 20 sarmed between
0297B0: 20 4B 4C 20 20 4E 45 58 54 20 20 53 59 4E 43 20 KL NEXT SYNC
0297C0: 61 6E 64 20 4B 4C 20 44 4F 4E 45 0D 20 20 20 20 and KL DONE.
0297D0: 20 53 59 4E 43 2E 20 53 65 74 74 69 6E 67 20 74 SYNC. Setting t
0297E0: 68 65 20 65 76 65 6E 74 20 20 63 6F 75 6E 74 20 he event count
0297F0: 20 74 6F 20 20 6F 6E 65 20 20 62 65 66 6F 72 65 to one before
029800: 73 6D 20 20 61 6C 6C 6F 77 73 20 20 65 76 65 6E sm allows even
029810: 74 20 20 72 6F 75 74 69 6E 65 73 20 74 6F 20 70 t routines to p
029820: 6F 6C 6C 0D 20 20 20 20 20 66 6F 72 2C 20 61 6E oll. for, an
029830: 64 20 70 72 6F 63 65 73 73 2C 20 65 76 65 6E 74 d process, event
029840: 73 20 6F 66 20 68 69 67 68 65 72 20 70 72 69 6F s of higher prio
029850: 72 69 74 79 2E 20 54 68 65 20 70 72 69 6F 72 69 rity. The priori
029860: 74 79 20 72 65 74 75 72 6E 65 64 20 62 79 0D 20 ty returned by.
029870: 20 20 20 20 74 68 69 73 20 72 6F 75 74 69 6E 65 this routine
029880: 20 6D 75 73 74 20 62 65 20 75 6E 63 68 61 6E 67 must be unchang
029890: 65 64 20 75 6E 74 69 6C 20 69 74 20 69 73 20 70 ed until it is p
0298A0: 61 73 73 65 64 20 74 6F 20 4B 4C 20 44 4F 4E 45 assed to KL DONE
0298B0: 20 53 59 4E 43 2F 2E 0D 0D 20 20 20 20 20 4B 4C SYNC/... KL
0298C0: 20 4E 45 58 54 20 53 59 4E 43 20 65 6E 61 62 6C NEXT SYNC enabl
0298D0: 65 73 20 69 6E 74 65 72 75 70 74 73 2E 0D 0D 0D es interupts....
0298E0: 20 20 20 20 20 54 68 65 20 70 72 6F 63 65 64 75 The procedu
0298F0: 72 65 20 66 6F 72 20 70 72 6F 63 65 73 73 69 6E re for processin
029900: 67 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 g synchronous ev
029910: 65 6E 74 73 20 69 73 3A 0D 0D 20 20 20 20 20 54 ents is:.. T
029920: 52 59 5F 41 47 41 49 4E 0D 0D 20 20 20 20 20 43 RY_AGAIN.. C
029930: 41 4C 4C 20 4B 4C 5F 4E 45 58 54 5F 53 59 4E 43 ALL KL_NEXT_SYNC
029940: 20 20 20 20 20 20 20 3B 72 65 74 75 72 6E 20 6E ;return n
029950: 65 78 74 20 65 76 65 6E 74 2C 20 69 66 20 61 6E ext event, if an
029960: 79 0D 20 20 20 20 20 4A 52 20 4E 43 2C 3F 3F 3F y. JR NC,???
029970: 3F 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B ? ;
029980: 6A 75 6D 70 20 69 66 20 6E 6F 20 65 76 65 6E 74 jump if no event
029990: 20 74 6F 20 70 72 6F 63 65 73 73 0D 0D 20 20 20 to process..
0299A0: 20 20 50 55 53 48 20 48 4C 20 20 20 20 20 20 20 PUSH HL
0299B0: 20 20 20 20 20 20 20 20 20 20 3B 73 61 76 65 20 ;save
0299C0: 61 64 64 72 65 73 73 20 6F 66 20 65 76 65 6E 74 address of event
0299D0: 0D 20 20 20 20 20 50 55 53 48 20 41 46 20 20 20 . PUSH AF
0299E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 73 ;s
0299F0: 61 76 65 20 70 72 65 76 69 6F 75 73 20 65 76 65 ave previous eve
029A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
029A10: 23 00 01 00 02 09 4E E5 23 00 C1 02 00 00 00 02 #.....N.#.......
029A20: 23 00 C6 02 00 00 00 02 23 00 C2 02 00 00 00 02 #.......#.......
029A30: 23 00 C7 02 00 00 00 02 23 00 C3 02 00 00 00 02 #.......#.......
029A40: 23 00 C8 02 00 00 00 02 23 00 C4 02 00 00 00 02 #.......#.......
029A50: 23 00 C9 02 00 00 00 02 23 00 C5 02 00 00 00 02 #.......#.......
029A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029B00: 20 20 63 61 6C 6C 69 6E 67 20 20 4B 4C 20 44 4F calling KL DO
029B10: 4E 45 20 53 59 4E 43 0D 20 20 20 20 20 66 6F 72 NE SYNC. for
029B20: 63 65 73 20 6D 75 6C 74 69 70 6C 65 20 65 76 65 ces multiple eve
029B30: 6E 74 73 20 74 6F 20 62 65 20 74 72 65 61 74 65 nts to be treate
029B40: 64 20 61 73 20 20 61 20 73 69 6E 67 6C 65 20 65 d as a single e
029B50: 76 65 6E 74 2E 0D 0D 20 20 20 20 20 4B 4C 20 44 vent... KL D
029B60: 4F 4E 45 20 53 59 4E 43 20 6D 61 79 20 65 6E 61 ONE SYNC may ena
029B70: 62 6C 65 20 69 6E 74 65 72 75 70 74 73 2E 0D 0D ble interupts...
029B80: 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -----------
029B90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029BA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029BB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029BC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 -----------..
029BD0: 20 20 26 42 44 30 34 20 2D 20 4B 4C 20 45 56 45 &BD04 - KL EVE
029BE0: 4E 54 20 44 49 53 41 42 4C 45 20 2D 20 44 69 73 NT DISABLE - Dis
029BF0: 61 62 6C 65 20 6E 6F 72 6D 61 6C 20 73 79 6E 63 able normal sync
029C00: 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 0D 0D hronous events..
029C10: 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 Entry:..
029C20: 20 20 4E 6F 6E 65 0D 0D 20 20 20 20 20 45 78 69 None.. Exi
029C30: 74 3A 0D 0D 20 20 20 20 20 48 4C 20 63 68 61 6E t:.. HL chan
029C40: 67 65 64 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 ged... Notes
029C50: 3A 0D 0D 20 20 20 20 20 4B 4C 20 45 56 45 4E 54 :.. KL EVENT
029C60: 20 44 49 53 41 42 4C 45 20 64 6F 65 73 20 6E 6F DISABLE does no
029C70: 74 20 70 72 65 76 65 6E 74 20 20 65 76 65 6E 74 t prevent event
029C80: 73 20 66 6F 72 20 62 65 69 6E 67 20 6B 69 63 6B s for being kick
029C90: 65 64 2E 20 54 68 65 20 65 66 66 65 63 74 0D 20 ed. The effect.
029CA0: 20 20 20 20 69 73 20 74 6F 20 27 6D 61 73 6B 20 is to 'mask
029CB0: 6F 66 66 27 20 61 6C 6C 20 20 70 65 6E 64 69 6E off' all pendin
029CC0: 67 20 20 6E 6F 72 6D 61 6C 20 20 73 79 6E 63 68 g normal synch
029CD0: 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 20 73 6F ronous events so
029CE0: 20 74 68 61 74 20 74 68 65 79 0D 20 20 20 20 20 that they.
029CF0: 61 72 65 20 68 69 64 64 65 6E 20 66 72 6F 6D 20 are hidden from
029D00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029D10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029D20: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029D30: 2D 2D 2D 2D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 ----.......
029D40: 26 42 44 31 30 20 2D 20 4B 4C 20 54 49 4D 45 20 &BD10 - KL TIME
029D50: 53 45 54 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A SET.. Entry:
029D60: 0D 0D 20 20 20 20 20 44 45 20 61 6E 64 20 48 4C .. DE and HL
029D70: 20 3D 20 66 6F 75 72 20 62 79 74 65 20 6E 75 6D = four byte num
029D80: 62 65 72 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D ber.. Exit:.
029D90: 0D 20 20 20 20 20 41 46 20 63 68 61 6E 67 65 64 . AF changed
029DA0: 2E 0D 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D .... Notes:.
029DB0: 0D 20 20 20 20 20 54 68 69 73 20 76 61 6C 75 65 . This value
029DC0: 20 6D 61 79 20 62 65 20 75 73 65 64 20 61 73 20 may be used as
029DD0: 61 20 20 63 6C 6F 63 6B 20 62 65 63 61 75 73 65 a clock because
029DE0: 20 74 68 65 20 6B 65 72 6E 61 6C 20 6D 61 69 6E the kernal main
029DF0: 74 61 69 6E 73 20 61 20 72 65 61 6C 0D 20 20 20 tains a real.
029E00: 20 20 63 6C 6F 63 6B 2E 0D 20 20 20 20 20 2D 2D clock.. --
029E10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029E20: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029E30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029E40: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029E50: 2D 2D 2D 2D 2D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D -----...........
029E60: 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D ................
029E70: 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D ................
029E80: 0D 0D 0D 0D 0D 1A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ......----------
029E90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
029EA0: 2D 2D 1A 72 09 09 0D 26 42 44 78 78 09 48 44 36 --.r...&BDxx.HD6
029EB0: 38 34 35 20 43 52 54 43 20 72 65 67 69 73 74 65 845 CRTC registe
029EC0: 72 20 64 61 74 61 20 20 20 20 1A 0D 0D 0D 0D 0D r data ......
029ED0: 1A 10 22 00 00 00 00 00 00 00 00 00 00 00 00 00 ..".............
029EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029EF0: 00 00 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
029F00: 74 68 65 20 66 6F 72 65 67 72 6F 75 6E 64 20 70 the foreground p
029F10: 72 6F 67 72 61 6D 20 28 77 68 65 6E 20 4B 4C 20 rogram (when KL
029F20: 50 4F 4C 4C 20 53 59 4E 43 48 52 4F 4E 4F 55 53 POLL SYNCHRONOUS
029F30: 20 6F 72 20 4B 4C 0D 20 20 20 20 20 4E 45 58 54 or KL. NEXT
029F40: 20 53 59 4E 43 20 61 72 65 20 63 61 6C 6C 65 64 SYNC are called
029F50: 29 20 61 6E 64 20 68 65 6E 63 65 20 61 72 65 20 ) and hence are
029F60: 6E 6F 74 20 70 72 6F 63 65 73 73 65 64 2E 0D 0D not processed...
029F70: 20 20 20 20 20 4B 4C 20 45 56 45 4E 54 20 45 4E KL EVENT EN
029F80: 41 42 4C 45 20 72 65 76 65 72 73 65 73 20 74 68 ABLE reverses th
029F90: 65 20 65 66 66 65 63 74 20 6F 66 20 4B 4C 20 45 e effect of KL E
029FA0: 56 45 4E 54 20 44 49 53 41 42 4C 45 0D 0D 20 20 VENT DISABLE..
029FB0: 20 20 20 49 74 20 69 73 20 6E 6F 74 20 20 70 6F It is not po
029FC0: 73 73 69 62 6C 65 20 20 74 6F 20 20 64 69 73 61 ssible to disa
029FD0: 62 6C 65 20 20 73 79 6E 63 68 72 6F 6E 6F 75 73 ble synchronous
029FE0: 20 20 65 76 65 6E 74 73 20 70 65 72 6D 65 6E 65 events permene
029FF0: 6E 74 6C 79 20 66 72 6F 6D 0D 20 20 20 20 20 69 ntly from. i
02A000: 6E 73 69 64 65 20 61 20 73 79 6E 63 68 72 6F 6E nside a synchron
02A010: 6F 75 73 20 20 65 76 65 6E 74 20 20 72 6F 75 74 ous event rout
02A020: 69 6E 65 20 20 61 73 20 20 74 68 65 20 20 70 72 ine as the pr
02A030: 65 76 69 6F 75 73 20 20 63 75 72 72 65 6E 74 20 evious current
02A040: 65 76 65 6E 74 0D 20 20 20 20 20 70 72 69 6F 72 event. prior
02A050: 69 74 79 20 69 73 20 72 65 73 74 6F 72 65 64 20 ity is restored
02A060: 77 68 65 6E 20 74 68 65 20 65 76 65 6E 74 20 72 when the event r
02A070: 6F 75 74 69 6E 65 20 72 65 74 75 72 6E 73 2E 0D outine returns..
02A080: 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D . ----------
02A090: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02A0A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02A0B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02A0C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 ------------..
02A0D0: 20 20 20 26 42 44 30 37 20 2D 20 4B 4C 20 45 56 &BD07 - KL EV
02A0E0: 45 4E 54 20 45 4E 41 42 4C 45 20 2D 20 45 6E 61 ENT ENABLE - Ena
02A0F0: 62 6C 65 20 6E 6F 72 6D 61 6C 20 73 79 6E 63 68 ble normal synch
02A100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A300: 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 0D 0D 0D ronous events...
02A310: 0D 0D 0D 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A ..... Entry:
02A320: 0D 0D 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 20 20 .. None..
02A330: 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 45 76 Exit:.. Ev
02A340: 65 6E 74 73 20 61 72 65 20 65 6E 61 62 6C 65 64 ents are enabled
02A350: 20 62 79 20 64 65 66 61 75 6C 74 2E 20 4B 4C 20 by default. KL
02A360: 20 45 56 45 4E 54 20 45 4E 41 42 4C 45 20 72 65 EVENT ENABLE re
02A370: 76 65 72 73 65 73 20 74 68 65 20 65 66 66 65 63 verses the effec
02A380: 74 20 6F 66 0D 20 20 20 20 20 4B 4C 20 45 56 45 t of. KL EVE
02A390: 4E 54 20 44 49 53 41 42 4C 45 2E 0D 0D 20 20 20 NT DISABLE...
02A3A0: 20 20 49 74 20 69 73 20 6E 6F 74 20 20 70 6F 73 It is not pos
02A3B0: 73 69 62 6C 65 20 20 74 6F 20 20 65 6E 61 62 6C sible to enabl
02A3C0: 65 20 20 73 79 6E 63 68 72 6F 6E 6F 75 73 20 20 e synchronous
02A3D0: 65 76 65 6E 74 73 20 20 70 65 72 6D 61 6E 65 6E events permanen
02A3E0: 74 6C 79 20 66 72 6F 6D 0D 20 20 20 20 20 69 6E tly from. in
02A3F0: 73 69 64 65 20 61 20 73 79 6E 63 68 72 6F 6E 6F side a synchrono
02A400: 75 73 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 us event routine
02A410: 20 61 73 20 74 68 65 20 63 75 72 72 65 6E 74 20 as the current
02A420: 65 76 65 6E 74 20 70 72 69 6F 72 69 74 79 20 77 event priority w
02A430: 68 69 63 68 0D 20 20 20 20 20 69 73 20 75 73 65 hich. is use
02A440: 64 20 74 6F 20 64 69 73 61 62 6C 65 20 20 74 68 d to disable th
02A450: 65 20 20 65 76 65 6E 74 73 20 20 69 73 20 20 72 e events is r
02A460: 65 73 74 6F 72 65 64 20 20 77 68 65 6E 20 20 74 estored when t
02A470: 68 65 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 he event routine
02A480: 0D 20 20 20 20 20 72 65 74 75 72 6E 73 2E 0D 0D . returns...
02A490: 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -----------
02A4A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02A4B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02A4C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02A4D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 20 20 20 20 -----------.
02A4E0: 20 26 42 44 30 41 20 2D 20 4B 4C 20 44 49 53 41 &BD0A - KL DISA
02A4F0: 52 4D 20 45 56 45 4E 54 20 2D 20 50 72 65 76 65 RM EVENT - Preve
02A500: 0D 45 78 70 61 6E 73 69 6F 6E 20 63 68 61 72 61 .Expansion chara
02A510: 63 74 65 72 73 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D cters.==========
02A520: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D 2B 2D 2D 2D ==========..+---
02A530: 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D +---+---+---+---
02A540: 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D +---+---+---+---
02A550: 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D +---+---+---+---
02A560: 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D +---+---+---+---
02A570: 2B 2D 2D 2D 2B 0D 7C 20 20 20 7C 20 20 20 7C 20 +---+.| | |
02A580: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02A590: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02A5A0: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02A5B0: 20 20 7C 31 33 35 7C 31 33 36 7C 31 33 37 7C 0D |135|136|137|.
02A5C0: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02A5D0: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02A5E0: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02A5F0: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 31 33 35 | | | |135
02A600: 7C 31 33 36 7C 31 33 37 7C 0D 7C 20 20 20 7C 20 |136|137|.| |
02A610: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02A620: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02A630: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02A640: 20 20 7C 20 20 20 7C 31 33 35 7C 31 33 36 7C 31 | |135|136|1
02A650: 33 37 7C 0D 2B 2D 2D 2D 2B 2D 2B 2D 2B 2D 2B 2D 37|.+---+-+-+-+-
02A660: 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D +-+-+-+-+-+-+-+-
02A670: 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D +-+-+-+-+-+-+-+-
02A680: 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2D 2D +-+-+-+-+-+-+---
02A690: 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 7C 20 +---+---+---+.|
02A6A0: 20 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | |
02A6B0: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02A6C0: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02A6D0: 7C 20 20 20 7C 20 20 20 20 20 7C 31 33 32 7C 31 | | |132|1
02A6E0: 33 33 7C 31 33 34 7C 0D 7C 20 20 20 20 20 7C 20 33|134|.| |
02A6F0: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02A700: 6E 74 20 61 6E 20 65 76 65 6E 74 20 66 72 6F 6D nt an event from
02A710: 20 6F 63 63 75 72 69 6E 67 0D 0D 20 20 20 20 20 occuring..
02A720: 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 48 4C 20 Entry:.. HL
02A730: 3D 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 = address of the
02A740: 20 65 76 65 6E 74 20 62 6C 6F 63 6B 0D 0D 20 20 event block..
02A750: 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 Exit:.. A
02A760: 46 20 63 68 61 6E 67 65 64 0D 20 20 20 20 20 41 F changed. A
02A770: 6C 6C 20 6F 74 68 65 72 73 20 75 6E 63 68 61 6E ll others unchan
02A780: 67 65 64 2E 0D 0D 20 20 20 20 20 4E 4F 54 45 53 ged... NOTES
02A790: 3A 0D 0D 20 20 20 20 20 4B 4C 20 44 49 53 41 52 :.. KL DISAR
02A7A0: 4D 20 45 56 45 4E 54 20 73 68 6F 75 6C 64 20 20 M EVENT should
02A7B0: 62 65 20 20 75 73 65 64 20 20 77 69 74 68 20 61 be used with a
02A7C0: 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E synchronous even
02A7D0: 74 73 2E 20 53 79 6E 63 72 6F 6E 6F 75 73 0D 20 ts. Syncronous.
02A7E0: 20 20 20 20 65 76 65 6E 74 73 20 6D 61 79 20 62 events may b
02A7F0: 65 20 64 69 73 61 72 6D 65 64 20 20 62 79 20 20 e disarmed by
02A800: 63 61 6C 6C 69 6E 67 20 20 4B 4C 20 20 44 45 4C calling KL DEL
02A810: 20 20 53 59 4E 43 48 52 4F 55 4E 4F 55 53 2C 20 SYNCHROUNOUS,
02A820: 77 68 69 63 68 20 61 6C 73 6F 0D 20 20 20 20 20 which also.
02A830: 65 6E 73 75 72 65 73 20 74 68 61 74 20 74 68 65 ensures that the
02A840: 20 65 76 65 6E 74 20 69 73 20 6E 6F 74 20 6F 6E event is not on
02A850: 20 74 68 65 20 73 79 6E 63 68 72 6F 6E 6F 75 73 the synchronous
02A860: 20 65 76 65 6E 74 20 71 75 65 75 65 2E 0D 0D 20 event queue...
02A870: 20 20 20 20 54 68 65 20 65 76 65 6E 74 20 6D 61 The event ma
02A880: 79 20 62 65 20 72 65 61 72 6D 65 64 20 62 79 20 y be rearmed by
02A890: 20 72 65 69 6E 69 74 69 61 6C 69 7A 69 6E 67 20 reinitializing
02A8A0: 20 69 74 20 20 28 4B 4C 20 49 4E 49 54 20 45 56 it (KL INIT EV
02A8B0: 45 4E 54 29 20 6F 72 20 62 79 0D 20 20 20 20 20 ENT) or by.
02A8C0: 73 65 74 74 69 6E 67 20 74 68 65 20 65 76 65 6E setting the even
02A8D0: 74 20 63 6F 75 6E 74 20 28 62 79 74 65 32 20 6F t count (byte2 o
02A8E0: 66 20 74 68 65 20 65 76 65 6E 74 20 62 6C 6F 63 f the event bloc
02A8F0: 6B 29 20 74 6F 20 7A 65 72 6F 2E 0D 0D 0D 20 20 k) to zero....
02A900: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02A910: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02A920: 20 20 20 20 7C 31 33 32 7C 31 33 33 7C 31 33 34 |132|133|134
02A930: 7C 0D 7C 20 20 20 20 20 7C 20 20 20 7C 20 20 20 |.| | |
02A940: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02A950: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02A960: 7C 20 20 20 7C 20 20 20 7C 20 20 20 20 20 7C 31 | | | |1
02A970: 33 32 7C 31 33 33 7C 31 33 34 7C 0D 2B 2D 2D 2D 32|133|134|.+---
02A980: 2D 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D --+-+-+-+-+-+-+-
02A990: 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D +-+-+-+-+-+-+-+-
02A9A0: 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D +-+-+-+-+-+-+-+-
02A9B0: 2B 2D 2B 2D 2B 20 20 20 2B 2D 2D 2D 2B 2D 2D 2D +-+-+ +---+---
02A9C0: 2B 2D 2D 2D 2B 0D 7C 20 20 20 20 20 20 20 7C 20 +---+.| |
02A9D0: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02A9E0: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02A9F0: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02AA00: 20 20 7C 31 32 39 7C 31 33 30 7C 31 33 31 7C 0D |129|130|131|.
02AA10: 7C 20 20 20 20 20 20 20 7C 20 20 20 7C 20 20 20 | | |
02AA20: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02AA30: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02AA40: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 31 32 39 | | | |129
02AA50: 7C 31 33 30 7C 31 33 31 7C 0D 7C 20 20 20 20 20 |130|131|.|
02AA60: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02AA70: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02AA80: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02AA90: 20 20 7C 20 20 20 7C 31 32 39 7C 31 33 30 7C 31 | |129|130|1
02AAA0: 33 31 7C 0D 2B 2D 2D 2D 2D 2D 2D 2D 2B 2D 2B 2D 31|.+-------+-+-
02AAB0: 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D +-+-+-+-+-+-+-+-
02AAC0: 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D +-+-+-+-+-+-+-+-
02AAD0: 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2D 2D +-+-+-+-+-+-+---
02AAE0: 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 7C 20 +---+---+---+.|
02AAF0: 20 20 20 20 20 20 20 20 7C 20 20 20 7C 20 20 20 | |
02AB00: 20 20 20 26 42 44 30 44 20 2D 20 4B 4C 20 54 49 &BD0D - KL TI
02AB10: 4D 45 20 50 4C 45 41 53 45 20 2D 20 41 73 6B 20 ME PLEASE - Ask
02AB20: 74 68 65 20 74 69 6D 65 20 65 6C 61 70 73 65 64 the time elapsed
02AB30: 2E 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D ... Entry:..
02AB40: 20 20 20 20 20 4E 6F 6E 65 0D 0D 20 20 20 20 20 None..
02AB50: 45 78 69 74 3A 0D 0D 20 20 20 20 20 44 45 20 61 Exit:.. DE a
02AB60: 6E 64 20 48 4C 20 3D 20 63 6F 75 6E 74 0D 0D 20 nd HL = count..
02AB70: 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 Notes:..
02AB80: 20 54 68 65 20 63 6F 75 6E 74 20 69 73 20 61 20 The count is a
02AB90: 66 6F 75 72 20 62 79 74 65 20 6E 75 6D 62 65 72 four byte number
02ABA0: 2E 20 44 20 20 69 73 20 74 68 65 20 6D 6F 73 74 . D is the most
02ABB0: 20 73 69 67 6E 69 66 69 63 61 6E 74 20 62 79 74 significant byt
02ABC0: 65 20 61 6E 64 20 4C 0D 20 20 20 20 20 69 73 20 e and L. is
02ABD0: 74 68 65 20 6C 65 61 73 74 20 73 69 67 6E 69 66 the least signif
02ABE0: 69 63 61 6E 74 20 62 79 74 65 2E 0D 0D 20 20 20 icant byte...
02ABF0: 20 20 54 68 65 20 63 6F 75 6E 74 20 69 73 20 73 The count is s
02AC00: 65 74 20 74 6F 20 7A 65 72 6F 20 77 68 65 6E 20 et to zero when
02AC10: 74 68 65 20 20 6D 61 63 68 69 6E 65 20 20 69 73 the machine is
02AC20: 20 74 75 72 6E 65 64 20 6F 6E 20 6F 72 20 6D 61 turned on or ma
02AC30: 79 20 62 65 20 73 65 74 0D 20 20 20 20 20 74 6F y be set. to
02AC40: 20 7A 65 72 6F 20 62 79 20 75 73 69 6E 67 20 4B zero by using K
02AC50: 4C 20 54 49 4D 45 20 53 45 54 2E 0D 0D 20 20 20 L TIME SET...
02AC60: 20 20 54 68 65 20 63 6F 75 6E 74 20 69 73 20 6E The count is n
02AC70: 6F 74 20 6B 65 70 74 20 75 70 20 20 74 6F 20 20 ot kept up to
02AC80: 64 61 74 65 20 20 69 66 20 20 6C 6F 6E 67 20 70 date if long p
02AC90: 65 72 69 6F 64 73 20 6F 66 20 74 69 6D 65 20 61 eriods of time a
02ACA0: 72 65 20 73 70 65 6E 74 0D 20 20 20 20 20 77 69 re spent. wi
02ACB0: 74 68 20 74 68 65 20 69 6E 74 65 72 75 70 74 73 th the interupts
02ACC0: 20 64 69 73 61 62 6C 65 64 2E 0D 0D 20 20 20 20 disabled...
02ACD0: 20 49 6E 74 65 72 75 70 74 73 20 61 72 65 20 65 Interupts are e
02ACE0: 6E 61 62 6C 65 64 2E 0D 20 20 20 20 20 2D 2D 2D nabled.. ---
02ACF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02AD00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02AD10: 24 00 01 00 02 09 4E E5 24 00 C1 02 00 00 00 02 $.....N.$.......
02AD20: 24 00 C6 02 00 00 00 02 24 00 C2 02 00 00 00 02 $.......$.......
02AD30: 24 00 C7 02 00 00 00 02 24 00 C3 02 00 00 00 02 $.......$.......
02AD40: 24 00 C8 02 00 00 00 02 24 00 C4 02 00 00 00 02 $.......$.......
02AD50: 24 00 C9 02 00 00 00 02 24 00 C5 02 00 00 00 02 $.......$.......
02AD60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AE00: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02AE10: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02AE20: 7C 20 20 20 7C 20 20 20 20 20 7C 31 32 38 7C 20 | | |128|
02AE30: 20 20 7C 31 33 38 7C 0D 7C 20 20 20 20 20 20 20 |138|.|
02AE40: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02AE50: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02AE60: 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 | | | |
02AE70: 20 20 20 20 7C 31 32 38 7C 20 4E 41 7C 31 33 38 |128| NA|138
02AE80: 7C 0D 7C 20 20 20 20 20 20 20 20 20 7C 20 20 20 |.| |
02AE90: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02AEA0: 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 | | | |
02AEB0: 7C 20 20 20 7C 20 20 20 7C 20 20 20 20 20 7C 31 | | | |1
02AEC0: 32 38 7C 20 20 20 7C 31 33 38 7C 0D 2B 2D 2D 2D 28| |138|.+---
02AED0: 2D 2D 2D 2D 2D 2D 2B 2D 2D 2D 2B 2D 2B 2D 2B 2D ------+---+-+-+-
02AEE0: 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D --+---+---+---+-
02AEF0: 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2B 2D 2B 2D --+---+---+-+-+-
02AF00: 2D 2D 2B 2D 2D 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D --+-----+---+---
02AF10: 2B 2D 2D 2D 2B 20 0D 7C 09 20 20 7C 20 20 20 20 +---+ .|. |
02AF20: 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
02AF30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AF40: 20 7C 20 20 20 20 31 34 30 20 20 20 20 7C 20 20 | 140 |
02AF50: 20 7C 20 20 20 7C 20 20 20 7C 0D 7C 20 20 20 20 | | |.|
02AF60: 4E 41 09 20 20 7C 20 20 4E 41 20 7C 20 20 20 20 NA. | NA |
02AF70: 20 20 20 20 20 20 20 20 20 20 20 4E 41 20 20 20 NA
02AF80: 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 |
02AF90: 31 33 39 20 20 20 20 7C 20 4E 41 7C 20 4E 41 7C 139 | NA| NA|
02AFA0: 20 4E 41 7C 0D 7C 09 20 20 7C 20 20 20 20 20 7C NA|.|. | |
02AFB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02AFC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7C |
02AFD0: 20 20 20 20 31 33 39 20 20 20 20 7C 20 20 20 7C 139 | |
02AFE0: 20 20 20 7C 20 20 20 7C 0D 2B 2D 2D 2D 2D 2D 2D | |.+------
02AFF0: 2D 2D 2D 2B 2D 2D 2D 2D 2D 2B 2D 2D 2D 2D 2D 2D ---+-----+------
02B000: 20 20 20 20 20 20 20 20 20 20 2B 2D 2D 2D 2B 0D +---+.
02B010: 20 20 20 20 20 20 20 20 20 20 20 7C 20 32 36 7C | 26|
02B020: 0D 20 20 20 20 20 20 20 20 20 20 20 7C 20 33 36 . | 36
02B030: 7C 0D 20 20 20 20 20 2B 2D 2D 2D 2B 2D 2B 2D 2D |. +---+-+--
02B040: 2D 2B 2D 2B 2D 2D 2D 2B 0D 4C 65 66 74 20 7C 20 -+-+---+.Left |
02B050: 31 32 7C 20 20 20 20 20 20 20 7C 20 31 34 7C 20 12| | 14|
02B060: 52 69 67 68 74 0D 20 20 20 20 20 7C 20 35 32 7C Right. | 52|
02B070: 20 20 20 20 20 20 20 7C 20 35 34 7C 0D 20 20 20 | 54|.
02B080: 20 20 7C 20 37 32 7C 20 20 20 20 20 20 20 7C 20 | 72| |
02B090: 37 34 7C 0D 20 20 20 20 20 2B 2D 2D 2D 2B 2D 2B 74|. +---+-+
02B0A0: 2D 2D 2D 2B 2D 2B 2D 2D 2D 2B 0D 09 20 20 20 7C ---+-+---+.. |
02B0B0: 20 32 35 7C 0D 20 20 20 20 20 20 20 20 20 20 20 25|.
02B0C0: 7C 20 33 35 7C 0D 09 20 20 20 2B 2D 2D 2D 2B 0D | 35|.. +---+.
02B0D0: 09 20 20 44 6F 77 6E 0D 0D 20 20 20 20 20 20 20 . Down..
02B0E0: 20 20 46 69 72 65 31 20 46 69 72 65 32 0D 09 20 Fire1 Fire2..
02B0F0: 20 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 09 20 20 7C 20 +---+---+.. |
02B100: 30 37 7C 20 30 36 7C 0D 09 20 20 7C 20 34 37 7C 07| 06|.. | 47|
02B110: 20 34 36 7C 0D 09 20 20 7C 20 36 37 7C 20 36 36 46|.. | 67| 66
02B120: 7C 0D 09 20 20 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 0D |.. +---+---+..
02B130: 0D 0D 4B 65 79 20 6D 61 70 0D 3D 3D 3D 3D 3D 3D ..Key map.======
02B140: 3D 0D 0D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B =..+---+---+---+
02B150: 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B ---+---+---+---+
02B160: 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B ---+---+---+---+
02B170: 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B ---+---+---+---+
02B180: 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 7C 20 36 ---+---+---+.| 6
02B190: 36 7C 20 36 34 7C 20 36 35 7C 20 35 37 7C 20 35 6| 64| 65| 57| 5
02B1A0: 36 7C 20 34 39 7C 20 34 38 7C 20 34 31 7C 20 34 6| 49| 48| 41| 4
02B1B0: 30 7C 20 33 33 7C 20 33 32 7C 20 32 35 7C 20 32 0| 33| 32| 25| 2
02B1C0: 34 7C 20 31 36 7C 20 37 39 7C 20 31 30 7C 20 31 4| 16| 79| 10| 1
02B1D0: 31 7C 20 20 33 7C 0D 2B 2D 2D 2D 2B 2D 2B 2D 2B 1| 3|.+---+-+-+
02B1E0: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B1F0: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B200: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02B210: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2B 2D 2D 2D 2D 2D 2D ---------+------
02B220: 2D 2D 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D -----+---+---+--
02B230: 2D 2B 0D 0D 28 41 6C 6C 20 6F 74 68 65 72 73 20 -+..(All others
02B240: 4E 41 29 0D 0D 41 53 43 49 49 20 4B 65 79 6D 61 NA)..ASCII Keyma
02B250: 70 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 0D p.============..
02B260: 4E 41 20 2D 20 6E 6F 74 20 61 76 61 69 6C 61 62 NA - not availab
02B270: 6C 65 0D 0D 0D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D le...+---+---+--
02B280: 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D -+---+---+---+--
02B290: 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D -+---+---+---+--
02B2A0: 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D -+---+---+---+--
02B2B0: 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 7C -+---+---+---+.|
02B2C0: 20 4E 41 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C NA| | | |
02B2D0: 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C | | | |
02B2E0: 20 20 20 7C 20 20 20 7C 20 31 46 7C 20 20 20 7C | | 1F| |
02B2F0: 20 31 45 7C 20 31 30 7C 20 37 46 7C 20 20 20 7C 1E| 10| 7F| |
02B300: 20 20 20 7C 20 20 20 7C 0D 7C 20 20 20 7C 20 32 | |.| | 2
02B310: 31 7C 20 32 32 7C 20 32 33 7C 20 32 34 7C 20 32 1| 22| 23| 24| 2
02B320: 35 7C 20 32 36 7C 20 32 37 7C 20 32 38 7C 20 32 5| 26| 27| 28| 2
02B330: 39 7C 20 35 46 7C 20 33 44 7C 20 41 33 7C 20 31 9| 5F| 3D| A3| 1
02B340: 30 7C 20 37 46 7C 20 4E 41 7C 20 4E 41 7C 20 4E 0| 7F| NA| NA| N
02B350: 41 7C 0D 7C 20 20 20 7C 20 33 31 7C 20 33 32 7C A|.| | 31| 32|
02B360: 20 33 33 7C 20 33 34 7C 20 33 35 7C 20 33 36 7C 33| 34| 35| 36|
02B370: 20 33 37 7C 20 33 38 7C 20 33 39 7C 20 33 30 7C 37| 38| 39| 30|
02B380: 20 32 44 7C 20 35 45 7C 20 31 30 7C 20 37 46 7C 2D| 5E| 10| 7F|
02B390: 20 20 20 7C 20 20 20 7C 20 20 20 7C 0D 2B 2D 2D | | |.+--
02B3A0: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B3B0: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B3C0: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B3D0: 2D 2B 2D 2B 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D -+-+-+---+---+--
02B3E0: 2D 2B 2D 2D 2D 2B 0D 7C 20 45 31 20 20 7C 20 31 -+---+.| E1 | 1
02B3F0: 31 7C 20 31 37 7C 20 30 35 7C 20 31 32 7C 20 31 1| 17| 05| 12| 1
02B400: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B410: 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B ---+---+---+---+
02B420: 0D 7C 20 36 38 20 20 7C 20 36 37 7C 20 35 39 7C .| 68 | 67| 59|
02B430: 20 35 38 7C 20 35 30 7C 20 35 31 7C 20 34 33 7C 58| 50| 51| 43|
02B440: 20 34 32 7C 20 33 35 7C 20 33 34 7C 20 32 37 7C 42| 35| 34| 27|
02B450: 20 32 36 7C 20 31 37 7C 20 20 20 31 38 7C 20 32 26| 17| 18| 2
02B460: 30 7C 20 31 32 7C 20 20 34 7C 0D 2B 2D 2D 2D 2D 0| 12| 4|.+----
02B470: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B480: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B490: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B4A0: 2D 2B 2D 2B 20 20 20 2B 2D 2D 2D 2B 2D 2D 2D 2B -+-+ +---+---+
02B4B0: 2D 2D 2D 2B 0D 7C 20 37 30 20 20 20 20 7C 20 36 ---+.| 70 | 6
02B4C0: 39 7C 20 36 30 7C 20 36 31 7C 20 35 33 7C 20 35 9| 60| 61| 53| 5
02B4D0: 32 7C 20 34 34 7C 20 34 35 7C 20 33 37 7C 20 33 2| 44| 45| 37| 3
02B4E0: 36 7C 20 32 39 7C 20 32 38 7C 20 31 39 7C 20 20 6| 29| 28| 19|
02B4F0: 20 7C 20 31 33 7C 20 31 34 7C 20 20 35 7C 0D 2B | 13| 14| 5|.+
02B500: 2D 2D 2D 2D 2D 2D 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -------+-+-+-+-+
02B510: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B520: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B530: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B -+-+-+-+---+---+
02B540: 2D 2D 2D 2B 2D 2D 2D 2B 0D 7C 20 32 31 20 20 20 ---+---+.| 21
02B550: 20 20 20 7C 20 37 31 7C 20 36 33 7C 20 36 32 7C | 71| 63| 62|
02B560: 20 35 35 7C 20 35 34 7C 20 34 36 7C 20 33 38 7C 55| 54| 46| 38|
02B570: 20 33 39 7C 20 33 31 7C 20 33 30 7C 20 32 32 7C 39| 31| 30| 22|
02B580: 20 20 32 31 20 7C 20 31 35 7C 20 20 30 7C 20 20 21 | 15| 0|
02B590: 37 7C 0D 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2B 2D 2D 7|.+---------+--
02B5A0: 2D 2B 2D 2B 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D -+-+-+---+---+--
02B5B0: 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D -+---+---+---+--
02B5C0: 2D 2B 2D 2B 2D 2B 2D 2D 2D 2B 2D 2D 2D 2D 2D 2B -+-+-+---+-----+
02B5D0: 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 20 0D 7C 20 ---+---+---+ .|
02B5E0: 32 33 09 20 20 7C 20 20 20 39 20 7C 20 20 20 20 23. | 9 |
02B5F0: 20 20 20 20 20 20 20 20 20 20 20 34 37 20 20 20 47
02B600: 34 7C 20 31 39 7C 20 31 35 7C 20 30 39 7C 20 30 4| 19| 15| 09| 0
02B610: 46 7C 20 31 30 7C 20 30 30 7C 20 31 42 7C 20 20 F| 10| 00| 1B|
02B620: 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 7C | | | |
02B630: 0D 7C 20 30 39 20 20 7C 20 35 31 7C 20 35 37 7C .| 09 | 51| 57|
02B640: 20 34 35 7C 20 35 32 7C 20 35 34 7C 20 35 39 7C 45| 52| 54| 59|
02B650: 20 35 35 7C 20 34 39 7C 20 34 46 7C 20 35 30 7C 55| 49| 4F| 50|
02B660: 20 37 43 7C 20 37 42 7C 20 20 30 44 20 7C 20 4E 7C| 7B| 0D | N
02B670: 41 7C 20 4E 41 7C 20 4E 41 7C 0D 7C 20 30 39 20 A| NA| NA|.| 09
02B680: 20 7C 20 37 31 7C 20 37 37 7C 20 36 35 7C 20 37 | 71| 77| 65| 7
02B690: 32 7C 20 37 34 7C 20 37 39 7C 20 37 35 7C 20 36 2| 74| 79| 75| 6
02B6A0: 39 7C 20 36 46 7C 20 37 30 7C 20 34 30 7C 20 35 9| 6F| 70| 40| 5
02B6B0: 42 7C 20 20 30 44 20 7C 20 20 20 7C 20 20 20 7C B| 0D | | |
02B6C0: 20 20 20 7C 0D 2B 2D 2D 2D 2D 2D 2B 2D 2B 2D 2B |.+-----+-+-+
02B6D0: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B6E0: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02B6F0: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 30 44 -+-+-+-+-+-+-+0D
02B700: 20 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 7C +---+---+---+.|
02B710: 20 20 20 20 20 20 20 7C 20 30 31 7C 20 31 33 7C | 01| 13|
02B720: 20 30 34 7C 20 30 36 7C 20 30 37 7C 20 30 38 7C 04| 06| 07| 08|
02B730: 20 30 41 7C 20 30 42 7C 20 30 43 7C 20 20 20 7C 0A| 0B| 0C| |
02B740: 20 20 20 7C 20 31 44 7C 20 20 20 7C 20 20 20 7C | 1D| | |
02B750: 20 20 20 7C 20 20 20 7C 0D 7C 20 4E 41 20 20 20 | |.| NA
02B760: 20 7C 20 34 31 7C 20 35 33 7C 20 34 34 7C 20 34 | 41| 53| 44| 4
02B770: 36 7C 20 34 37 7C 20 34 38 7C 20 34 41 7C 20 34 6| 47| 48| 4A| 4
02B780: 42 7C 20 34 43 7C 20 32 41 7C 20 32 42 7C 20 37 B| 4C| 2A| 2B| 7
02B790: 44 7C 20 20 20 7C 20 4E 41 7C 20 4E 41 7C 20 4E D| | NA| NA| N
02B7A0: 41 7C 0D 7C 20 20 20 20 20 20 20 7C 20 36 31 7C A|.| | 61|
02B7B0: 20 37 33 7C 20 36 34 7C 20 36 36 7C 20 36 37 7C 73| 64| 66| 67|
02B7C0: 20 36 38 7C 20 36 41 7C 20 36 42 7C 20 36 43 7C 68| 6A| 6B| 6C|
02B7D0: 20 33 41 7C 20 33 42 7C 20 35 44 7C 20 20 20 7C 3A| 3B| 5D| |
02B7E0: 20 20 20 7C 20 20 20 7C 20 20 20 7C 0D 2B 2D 2D | | |.+--
02B7F0: 2D 2D 2D 2D 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -----+-+-+-+-+-+
02B800: 20 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 |
02B810: 20 20 36 20 20 20 20 7C 20 20 38 7C 20 20 32 7C 6 | 8| 2|
02B820: 20 20 31 7C 0D 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2B 1|.+---------+
02B830: 2D 2D 2D 2D 2D 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -----+----------
02B840: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02B850: 2D 2D 2D 2D 2D 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -----+----------
02B860: 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 0D -+---+---+---+..
02B870: 0D 0D 4A 6F 79 73 74 69 63 6B 20 30 0D 3D 3D 3D ..Joystick 0.===
02B880: 3D 3D 3D 3D 3D 3D 3D 0D 09 20 20 20 20 20 55 70 =======.. Up
02B890: 0D 20 20 20 20 20 20 20 20 20 20 20 2B 2D 2D 2D . +---
02B8A0: 2B 0D 20 20 20 20 20 20 20 20 20 20 20 7C 20 37 +. | 7
02B8B0: 32 7C 0D 20 20 20 20 20 2B 2D 2D 2D 2B 2D 2B 2D 2|. +---+-+-
02B8C0: 2D 2D 2B 2D 2B 2D 2D 2D 2B 0D 4C 65 66 74 20 7C --+-+---+.Left |
02B8D0: 20 37 34 7C 20 20 20 20 20 20 20 7C 20 37 35 7C 74| | 75|
02B8E0: 20 52 69 67 68 74 0D 20 20 20 20 20 2B 2D 2D 2D Right. +---
02B8F0: 2B 2D 2B 2D 2D 2D 2B 2D 2B 2D 2D 2D 2B 0D 09 20 +-+---+-+---+..
02B900: 20 20 7C 20 37 33 7C 0D 09 20 20 20 2B 2D 2D 2D | 73|.. +---
02B910: 2B 0D 09 20 20 44 6F 77 6E 0D 0D 20 20 20 20 20 +.. Down..
02B920: 20 20 20 20 46 69 72 65 31 20 46 69 72 65 32 0D Fire1 Fire2.
02B930: 09 20 20 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 09 20 20 . +---+---+..
02B940: 7C 20 37 36 7C 20 37 37 7C 0D 09 20 20 2B 2D 2D | 76| 77|.. +--
02B950: 2D 2B 2D 2D 2D 2B 0D 0D 0D 0D 4A 6F 79 73 74 69 -+---+....Joysti
02B960: 63 6B 20 31 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D ck 1.==========.
02B970: 09 20 20 20 20 20 55 70 0D 20 20 20 20 20 20 20 . Up.
02B980: 20 20 20 20 2B 2D 2D 2D 2B 0D 20 20 20 20 20 20 +---+.
02B990: 20 20 20 20 20 7C 20 34 38 7C 0D 20 20 20 20 20 | 48|.
02B9A0: 2B 2D 2D 2D 2B 2D 2B 2D 2D 2D 2B 2D 2B 2D 2D 2D +---+-+---+-+---
02B9B0: 2B 0D 4C 65 66 74 20 7C 20 35 30 7C 20 20 20 20 +.Left | 50|
02B9C0: 20 20 20 7C 20 35 31 7C 20 52 69 67 68 74 0D 20 | 51| Right.
02B9D0: 20 20 20 20 2B 2D 2D 2D 2B 2D 2B 2D 2D 2D 2B 2D +---+-+---+-
02B9E0: 2B 2D 2D 2D 2B 0D 09 20 20 20 7C 20 34 39 7C 0D +---+.. | 49|.
02B9F0: 09 20 20 20 2B 2D 2D 2D 2B 0D 09 20 20 44 6F 77 . +---+.. Dow
02BA00: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02BA10: 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B 2D 2B -+-+-+-+-+-+-+-+
02BA20: 2D 2B 2D 2B 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D -+-+-+---+---+--
02BA30: 2D 2B 2D 2D 2D 2B 0D 7C 20 20 20 20 20 20 20 20 -+---+.|
02BA40: 20 7C 20 31 41 7C 20 31 38 7C 20 30 33 7C 20 31 | 1A| 18| 03| 1
02BA50: 36 7C 20 30 32 7C 20 30 45 7C 20 30 44 7C 20 20 6| 02| 0E| 0D|
02BA60: 20 7C 20 20 20 7C 20 20 20 7C 20 31 43 7C 20 20 | | | 1C|
02BA70: 20 20 20 7C 20 20 20 7C 20 46 38 7C 20 20 20 7C | | F8| |
02BA80: 0D 7C 20 4E 41 20 20 20 20 20 20 7C 20 35 41 7C .| NA | 5A|
02BA90: 20 35 38 7C 20 34 33 7C 20 35 36 7C 20 34 32 7C 58| 43| 56| 42|
02BAA0: 20 34 45 7C 20 34 44 7C 20 33 43 7C 20 33 45 7C 4E| 4D| 3C| 3E|
02BAB0: 20 33 46 7C 20 36 30 7C 20 4E 41 20 20 7C 20 4E 3F| 60| NA | N
02BAC0: 41 7C 20 46 34 7C 20 4E 41 7C 0D 7C 20 20 20 20 A| F4| NA|.|
02BAD0: 20 20 20 20 20 7C 20 37 41 7C 20 37 38 7C 20 36 | 7A| 78| 6
02BAE0: 33 7C 20 37 36 7C 20 36 32 7C 20 36 45 7C 20 36 3| 76| 62| 6E| 6
02BAF0: 44 7C 20 32 43 7C 20 32 45 7C 20 32 46 7C 20 35 D| 2C| 2E| 2F| 5
02BB00: 43 7C 20 20 20 20 20 7C 20 20 20 7C 20 46 30 7C C| | | F0|
02BB10: 20 20 20 7C 0D 2B 2D 2D 2D 2D 2D 2D 2D 2D 2D 2B |.+---------+
02BB20: 2D 2D 2D 2B 2D 2B 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B ---+-+-+---+---+
02BB30: 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B ---+---+---+---+
02BB40: 2D 2D 2D 2B 2D 2B 2D 2B 2D 2D 2D 2B 2D 2D 2D 2D ---+-+-+---+----
02BB50: 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 2D 2D 2D 2B 20 0D -+---+---+---+ .
02BB60: 7C 09 20 20 7C 20 45 30 20 20 7C 20 20 20 20 20 |. | E0 |
02BB70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02BB80: 20 20 20 20 20 20 20 20 20 20 7C 20 20 20 20 20 |
02BB90: 20 20 20 20 20 20 7C 20 46 41 7C 20 46 39 7C 20 | FA| F9|
02BBA0: 46 42 7C 0D 7C 20 4E 41 09 20 20 7C 20 45 30 20 FB|.| NA. | E0
02BBB0: 20 7C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
02BBC0: 32 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02BBD0: 20 7C 20 20 20 20 4E 41 20 20 20 20 20 7C 20 46 | NA | F
02BBE0: 36 7C 20 46 35 7C 20 46 37 7C 0D 7C 09 20 20 7C 6| F5| F7|.|. |
02BBF0: 20 45 30 20 20 7C 20 20 20 20 20 20 20 20 20 20 E0 |
02BC00: 6E 0D 0D 20 20 20 20 20 20 20 20 20 46 69 72 65 n.. Fire
02BC10: 31 20 46 69 72 65 32 0D 09 20 20 2B 2D 2D 2D 2B 1 Fire2.. +---+
02BC20: 2D 2D 2D 2B 0D 09 20 20 7C 20 35 32 7C 20 35 33 ---+.. | 52| 53
02BC30: 7C 0D 09 20 20 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 0D |.. +---+---+..
02BC40: 1A 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 . | | |
02BC50: 7C 20 20 20 7C 20 20 20 7C 20 20 1A 00 00 00 00 | | | .....
02BC60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BC70: 00 00 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
02BC80: 3D 3D 3D 3D 3D 3D 3D 0D 09 20 20 20 20 20 55 70 =======.. Up
02BC90: 0D 20 20 20 20 20 20 20 20 20 20 20 2B 2D 2D 2D . +---
02BCA0: 2B 0D 20 20 20 20 20 20 20 20 20 20 20 7C 20 37 +. | 7
02BCB0: 32 7C 0D 20 20 20 20 20 2B 2D 2D 2D 2B 2D 2B 2D 2|. +---+-+-
02BCC0: 2D 2D 2B 2D 2B 2D 2D 2D 2B 0D 4C 65 66 74 20 7C --+-+---+.Left |
02BCD0: 20 37 34 7C 20 20 20 20 20 20 20 7C 20 37 35 7C 74| | 75|
02BCE0: 20 52 69 67 68 74 0D 20 20 20 20 20 2B 2D 2D 2D Right. +---
02BCF0: 2B 2D 2B 2D 2D 2D 2B 2D 2B 2D 2D 2D 2B 0D 09 20 +-+---+-+---+..
02BD00: 20 20 7C 20 37 33 7C 0D 09 20 20 20 2B 2D 2D 2D | 73|.. +---
02BD10: 2B 0D 09 20 20 44 6F 77 6E 0D 0D 20 20 20 20 20 +.. Down..
02BD20: 20 20 20 20 46 69 72 65 31 20 46 69 72 65 32 0D Fire1 Fire2.
02BD30: 09 20 20 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 09 20 20 . +---+---+..
02BD40: 7C 20 37 36 7C 20 37 37 7C 0D 09 20 20 2B 2D 2D | 76| 77|.. +--
02BD50: 2D 2B 2D 2D 2D 2B 0D 0D 0D 0D 4A 6F 79 73 74 69 -+---+....Joysti
02BD60: 63 6B 20 31 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D ck 1.==========.
02BD70: 09 20 20 20 20 20 55 70 0D 20 20 20 20 20 20 20 . Up.
02BD80: 20 20 20 20 2B 2D 2D 2D 2B 0D 20 20 20 20 20 20 +---+.
02BD90: 20 20 20 20 20 7C 20 34 38 7C 0D 20 20 20 20 20 | 48|.
02BDA0: 2B 2D 2D 2D 2B 2D 2B 2D 2D 2D 2B 2D 2B 2D 2D 2D +---+-+---+-+---
02BDB0: 2B 0D 4C 65 66 74 20 7C 20 35 30 7C 20 20 20 20 +.Left | 50|
02BDC0: 20 20 20 7C 20 35 31 7C 20 52 69 67 68 74 0D 20 | 51| Right.
02BDD0: 20 20 20 20 2B 2D 2D 2D 2B 2D 2B 2D 2D 2D 2B 2D +---+-+---+-
02BDE0: 2B 2D 2D 2D 2B 0D 09 20 20 20 7C 20 34 39 7C 0D +---+.. | 49|.
02BDF0: 09 20 20 20 2B 2D 2D 2D 2B 0D 09 20 20 44 6F 77 . +---+.. Dow
02BE00: 20 20 20 20 32 30 20 20 20 20 20 20 20 20 20 20 20
02BE10: 20 20 20 20 20 7C 20 20 20 20 20 20 20 20 20 20 |
02BE20: 20 7C 20 46 32 7C 20 46 31 7C 20 46 33 7C 0D 2B | F2| F1| F3|.+
02BE30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2B 2D 2D 2D 2D 2D 2B ---------+-----+
02BE40: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02BE50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2B ---------------+
02BE60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2B 2D 2D 2D 2B -----------+---+
02BE70: 2D 2D 2D 2B 2D 2D 2D 2B 0D 0D 0D 2B 2D 2D 2D 2D ---+---+...+----
02BE80: 2D 2D 2D 2D 2D 2B 0D 7C 20 43 6F 6E 74 72 6F 6C -----+.| Control
02BE90: 20 7C 0D 7C 20 53 68 69 66 74 20 20 20 7C 0D 7C |.| Shift |.|
02BEA0: 20 53 74 61 6E 64 61 72 64 7C 0D 2B 2D 2D 2D 2D Standard|.+----
02BEB0: 2D 2D 2D 2D 2D 2B 0D 0D 0D 4A 6F 79 73 74 69 63 -----+...Joystic
02BEC0: 6B 20 30 0D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 0D 09 k 0.==========..
02BED0: 20 20 20 20 20 55 70 0D 20 20 20 20 20 20 20 20 Up.
02BEE0: 20 20 20 2B 2D 2D 2D 2B 0D 20 20 20 20 20 20 20 +---+.
02BEF0: 20 20 20 20 7C 20 30 42 7C 0D 09 20 20 20 7C 20 | 0B|.. |
02BF00: 30 42 7C 0D 20 20 20 20 20 2B 2D 2D 2D 2B 2D 2B 0B|. +---+-+
02BF10: 2D 2D 2D 2B 2D 2B 2D 2D 2D 2B 0D 4C 65 66 74 20 ---+-+---+.Left
02BF20: 7C 20 30 38 7C 20 20 20 20 20 20 20 7C 20 30 39 | 08| | 09
02BF30: 7C 20 52 69 67 68 74 0D 20 20 20 20 20 7C 20 30 | Right. | 0
02BF40: 38 7C 20 20 20 20 20 20 20 7C 20 30 38 7C 0D 20 8| | 08|.
02BF50: 20 20 20 20 2B 2D 2D 2D 2B 2D 2B 2D 2D 2D 2B 2D +---+-+---+-
02BF60: 2B 2D 2D 2D 2B 0D 09 20 20 20 7C 20 30 61 7C 0D +---+.. | 0a|.
02BF70: 20 20 20 20 20 20 20 20 20 20 20 7C 20 30 61 7C | 0a|
02BF80: 0D 09 20 20 20 2B 2D 2D 2D 2B 0D 09 20 20 44 6F .. +---+.. Do
02BF90: 77 6E 0D 0D 20 20 20 20 20 20 20 20 20 46 69 72 wn.. Fir
02BFA0: 65 31 20 46 69 72 65 32 0D 09 20 20 2B 2D 2D 2D e1 Fire2.. +---
02BFB0: 2B 2D 2D 2D 2B 0D 09 20 20 7C 20 35 38 7C 20 35 +---+.. | 58| 5
02BFC0: 41 7C 0D 09 20 20 7C 20 35 38 7C 20 35 41 7C 0D A|.. | 58| 5A|.
02BFD0: 09 20 20 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 0D 0D 0D . +---+---+....
02BFE0: 4A 6F 79 73 74 69 63 6B 20 31 0D 3D 3D 3D 3D 3D Joystick 1.=====
02BFF0: 3D 3D 3D 3D 3D 0D 09 20 20 20 20 20 55 70 0D 20 =====.. Up.
02C000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02C010: 25 00 01 00 02 09 4E E5 25 00 C1 02 00 00 00 02 %.....N.%.......
02C020: 25 00 C6 02 00 00 00 02 25 00 C2 02 00 00 00 02 %.......%.......
02C030: 25 00 C7 02 00 00 00 02 25 00 C3 02 00 00 00 02 %.......%.......
02C040: 25 00 C8 02 00 00 00 02 25 00 C4 02 00 00 00 02 %.......%.......
02C050: 25 00 C9 02 00 00 00 02 25 00 C5 02 00 00 00 02 %.......%.......
02C060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C300: 20 49 74 20 77 69 6C 6C 20 6E 6F 74 20 20 62 65 It will not be
02C310: 20 20 70 72 6F 63 65 73 73 65 64 20 62 75 74 20 processed but
02C320: 72 65 74 75 72 6E 65 64 20 68 6F 77 20 69 74 0D returned how it.
02C330: 20 20 20 20 20 69 73 2E 20 54 68 65 20 63 68 61 is. The cha
02C340: 72 61 63 74 65 72 20 64 6F 65 73 6E 27 74 20 6E racter doesn't n
02C350: 65 65 64 20 74 6F 20 62 65 20 72 65 61 64 20 66 eed to be read f
02C360: 72 6F 6D 20 74 68 65 20 6B 65 79 62 6F 61 72 64 rom the keyboard
02C370: 2E 0D 0D 20 20 20 20 20 59 6F 75 20 63 61 6E 20 ... You can
02C380: 6F 6E 6C 79 20 68 61 76 65 20 6F 6E 65 20 63 68 only have one ch
02C390: 61 72 61 63 74 65 72 20 74 6F 20 20 70 75 74 20 aracter to put
02C3A0: 20 62 61 63 6B 2E 20 49 66 20 61 6E 79 6D 6F 72 back. If anymor
02C3B0: 65 20 61 72 65 20 70 75 74 20 62 61 63 6B 0D 20 e are put back.
02C3C0: 20 20 20 20 62 65 66 6F 72 65 20 61 20 63 68 61 before a cha
02C3D0: 72 61 63 74 65 72 20 69 73 20 20 72 65 61 64 20 racter is read
02C3E0: 20 74 68 65 6E 20 20 74 68 65 20 20 66 69 72 73 then the firs
02C3F0: 74 20 20 63 68 61 72 61 63 74 65 72 20 77 69 6C t character wil
02C400: 6C 20 62 65 20 6C 6F 73 74 2E 0D 20 20 20 20 20 l be lost..
02C410: 43 68 61 72 61 63 74 65 72 20 32 35 35 20 63 61 Character 255 ca
02C420: 6E 6E 6F 74 20 62 65 20 72 65 74 75 72 6E 65 64 nnot be returned
02C430: 20 61 73 20 74 68 69 73 20 20 69 73 20 20 75 73 as this is us
02C440: 65 64 20 61 73 20 61 20 6D 61 72 6B 65 72 20 74 ed as a marker t
02C450: 6F 20 74 65 6C 6C 0D 20 20 20 20 20 74 68 65 20 o tell. the
02C460: 63 6F 6D 70 75 74 65 72 20 74 68 65 72 65 20 69 computer there i
02C470: 73 20 6E 6F 20 63 68 61 72 61 63 74 65 72 20 62 s no character b
02C480: 65 69 6E 67 20 70 75 74 20 62 61 63 6B 2E 0D 0D eing put back...
02C490: 0D 20 20 20 20 20 26 42 42 30 46 20 2D 20 4B 4D . &BB0F - KM
02C4A0: 20 53 45 54 20 45 58 50 41 4E 44 20 2D 20 53 65 SET EXPAND - Se
02C4B0: 74 20 61 6E 20 65 78 70 61 6E 73 69 6F 6E 20 73 t an expansion s
02C4C0: 74 72 69 6E 67 0D 0D 20 20 20 20 20 45 6E 74 72 tring.. Entr
02C4D0: 79 3A 0D 0D 20 20 20 20 20 42 20 3D 20 65 78 70 y:.. B = exp
02C4E0: 61 6E 73 69 6F 6E 20 74 6F 6B 65 6E 20 66 6F 72 ansion token for
02C4F0: 20 65 78 70 61 6E 73 69 6F 6E 20 74 6F 20 73 65 expansion to se
02C500: 1B 40 0D 0D 0D 20 20 20 20 20 26 42 42 30 30 20 .@... &BB00
02C510: 2D 20 4B 4D 20 49 4E 49 54 49 41 4C 49 53 45 20 - KM INITIALISE
02C520: 2D 20 49 6E 69 74 69 61 6C 69 73 65 20 74 68 65 - Initialise the
02C530: 20 6B 65 79 20 6D 61 6E 61 67 65 72 0D 0D 20 20 key manager..
02C540: 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 Entry:..
02C550: 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D 0D No conditions...
02C560: 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 Exit:..
02C570: 20 41 46 2C 42 43 2C 44 45 20 61 6E 64 20 48 4C AF,BC,DE and HL
02C580: 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 20 corrupt...
02C590: 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 49 6E 74 Notes:.. Int
02C5A0: 65 72 75 70 74 73 20 61 72 65 20 65 6E 61 62 6C erupts are enabl
02C5B0: 65 64 2E 0D 20 20 20 20 20 54 68 65 20 6B 65 79 ed.. The key
02C5C0: 62 6F 61 72 64 20 62 75 66 66 65 72 20 69 73 20 board buffer is
02C5D0: 63 6C 65 61 72 65 64 2E 0D 20 20 20 20 20 53 68 cleared.. Sh
02C5E0: 69 66 74 20 6C 6F 63 6B 20 61 6E 64 20 43 61 70 ift lock and Cap
02C5F0: 73 20 6C 6F 63 6B 20 61 72 65 20 74 75 72 6E 65 s lock are turne
02C600: 64 20 6F 66 66 2E 0D 20 20 20 20 20 54 68 65 20 d off.. The
02C610: 72 65 70 65 61 74 20 73 70 65 65 64 20 69 73 20 repeat speed is
02C620: 73 65 74 20 74 6F 20 64 65 66 61 75 6C 74 2E 0D set to default..
02C630: 20 20 20 20 20 54 68 65 20 72 65 70 65 61 74 20 The repeat
02C640: 6B 65 79 20 6D 61 70 20 69 73 20 69 6E 69 74 69 key map is initi
02C650: 61 6C 69 7A 65 64 20 74 6F 20 64 65 66 61 75 6C alized to defaul
02C660: 74 20 73 74 61 74 65 2E 0D 20 20 20 20 20 54 68 t state.. Th
02C670: 65 20 65 78 70 61 6E 73 69 6F 6E 20 62 75 66 66 e expansion buff
02C680: 65 72 20 69 73 20 73 65 74 20 20 75 70 20 20 61 er is set up a
02C690: 6E 64 20 20 74 68 65 20 20 65 78 70 61 6E 73 69 nd the expansi
02C6A0: 6F 6E 73 20 61 72 65 20 73 65 74 20 74 6F 20 74 ons are set to t
02C6B0: 68 65 69 72 0D 20 20 20 20 20 64 65 66 61 75 6C heir. defaul
02C6C0: 74 20 76 61 6C 75 65 73 2E 0D 20 20 20 20 20 54 t values.. T
02C6D0: 68 65 20 6B 65 79 20 74 72 61 6E 73 6C 61 74 69 he key translati
02C6E0: 6F 6E 20 74 61 62 6C 65 73 20 61 72 65 20 69 6E on tables are in
02C6F0: 74 69 61 6C 69 7A 65 64 20 74 6F 20 69 74 73 20 tialized to its
02C700: 74 0D 20 20 20 20 20 43 20 3D 20 6C 65 6E 67 74 t. C = lengt
02C710: 68 20 6F 66 20 73 74 72 69 6E 67 0D 20 20 20 20 h of string.
02C720: 20 48 4C 20 3D 20 61 64 64 72 65 73 73 20 6F 66 HL = address of
02C730: 20 73 74 72 69 6E 67 0D 0D 20 20 20 20 20 45 78 string.. Ex
02C740: 69 74 3A 0D 0D 20 20 20 20 20 49 66 20 65 76 65 it:.. If eve
02C750: 72 79 74 68 69 6E 67 20 4F 4B 3A 0D 0D 20 20 20 rything OK:..
02C760: 20 20 43 61 72 72 79 20 74 72 75 65 2E 0D 0D 0D Carry true....
02C770: 0D 0D 0D 0D 0D 20 20 20 20 20 49 66 20 69 74 20 ..... If it
02C780: 77 61 73 20 74 6F 6F 20 6C 6F 6E 67 20 6F 72 20 was too long or
02C790: 74 6F 6B 65 6E 20 69 6E 76 61 6C 69 64 3A 0D 20 token invalid:.
02C7A0: 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E Carry false.
02C7B0: 0D 0D 20 20 20 20 20 41 2C 42 43 2C 44 45 2C 48 .. A,BC,DE,H
02C7C0: 4C 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 L and other flag
02C7D0: 73 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 s corrupt...
02C7E0: 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 49 66 Notes:.. If
02C7F0: 20 74 68 65 72 65 20 69 73 6E 27 74 20 65 6E 6F there isn't eno
02C800: 75 67 68 20 72 6F 6F 6D 20 66 6F 72 20 74 68 65 ugh room for the
02C810: 20 20 6E 65 77 20 73 74 72 69 6E 67 20 74 68 65 new string the
02C820: 6E 20 74 68 65 20 6F 6C 64 20 73 74 61 74 65 20 n the old state
02C830: 77 69 6C 6C 0D 20 20 20 20 20 6E 6F 74 20 62 65 will. not be
02C840: 20 63 68 61 6E 67 65 64 2E 0D 20 20 20 20 20 53 changed.. S
02C850: 65 74 20 61 6E 20 65 78 70 61 6E 73 69 6F 6E 20 et an expansion
02C860: 73 74 72 69 6E 67 2E 0D 20 20 20 20 20 49 6E 74 string.. Int
02C870: 65 72 75 70 74 73 20 61 72 65 20 65 6E 61 62 6C erupts are enabl
02C880: 65 64 2E 0D 0D 0D 20 20 20 20 20 26 42 42 31 32 ed.... &BB12
02C890: 20 2D 20 4B 4D 20 47 45 54 20 45 58 50 41 4E 44 - KM GET EXPAND
02C8A0: 20 2D 20 47 65 74 20 61 20 63 68 61 72 61 63 74 - Get a charact
02C8B0: 65 72 20 66 72 6F 6D 20 61 6E 20 65 78 70 61 6E er from an expan
02C8C0: 73 69 6F 6E 20 73 74 72 69 6E 67 0D 0D 20 20 20 sion string..
02C8D0: 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 41 Entry:.. A
02C8E0: 20 3D 20 65 78 70 61 6E 73 69 6F 6E 20 74 6F 6B = expansion tok
02C8F0: 65 6E 0D 20 20 20 20 20 4C 20 3D 20 63 68 61 72 en. L = char
02C900: 64 65 66 61 75 6C 74 20 73 74 61 74 65 2E 0D 20 default state..
02C910: 20 20 20 20 54 68 65 20 62 72 65 61 6B 20 65 76 The break ev
02C920: 65 6E 74 20 69 73 20 64 69 73 61 72 6D 65 64 2E ent is disarmed.
02C930: 0D 20 20 20 20 20 54 68 65 20 62 72 65 61 6B 20 . The break
02C940: 69 6E 64 69 72 65 63 74 69 6F 6E 20 63 61 6C 6C indirection call
02C950: 20 69 73 20 73 65 74 20 74 6F 20 69 74 73 20 69 is set to its i
02C960: 6E 69 74 69 61 6C 20 76 61 6C 75 65 2E 0D 0D 0D nitial value....
02C970: 20 20 20 20 20 26 42 42 30 33 20 2D 20 4B 4D 20 &BB03 - KM
02C980: 52 45 53 45 54 20 2D 20 52 65 73 65 74 20 74 68 RESET - Reset th
02C990: 65 20 4B 65 79 20 4D 61 6E 61 67 65 72 0D 0D 20 e Key Manager..
02C9A0: 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 Entry:..
02C9B0: 20 4E 6F 20 63 6F 6E 64 69 74 69 6F 6E 73 2E 0D No conditions..
02C9C0: 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 . Exit:..
02C9D0: 20 20 41 46 2C 42 43 2C 44 45 2C 48 4C 20 63 6F AF,BC,DE,HL co
02C9E0: 72 72 75 70 74 0D 0D 20 20 20 20 20 4E 6F 74 65 rrupt.. Note
02C9F0: 73 3A 0D 0D 20 20 20 20 20 49 6E 74 65 72 75 70 s:.. Interup
02CA00: 74 73 20 61 72 65 20 65 6E 61 62 6C 65 64 2E 0D ts are enabled..
02CA10: 20 20 20 20 20 54 68 65 20 62 72 65 61 6B 20 69 The break i
02CA20: 6E 64 69 72 65 63 74 69 6F 6E 20 63 61 6C 6C 20 ndirection call
02CA30: 20 69 73 20 20 73 65 74 20 20 74 6F 20 20 69 74 is set to it
02CA40: 73 20 20 69 6E 69 74 69 61 6C 20 72 6F 75 74 69 s initial routi
02CA50: 6E 65 20 65 6E 61 62 6C 69 6E 67 0D 20 20 20 20 ne enabling.
02CA60: 20 53 48 49 46 54 20 43 4F 4E 54 52 4F 4C 20 45 SHIFT CONTROL E
02CA70: 53 43 20 72 65 73 65 74 2E 0D 20 20 20 20 20 54 SC reset.. T
02CA80: 68 65 20 6B 65 79 62 6F 61 72 64 20 62 75 66 66 he keyboard buff
02CA90: 65 72 20 69 73 20 63 6C 65 61 72 65 64 2E 0D 20 er is cleared..
02CAA0: 20 20 20 20 54 68 65 20 65 78 70 61 6E 73 69 6F The expansio
02CAB0: 6E 20 62 75 66 66 65 72 20 69 73 20 73 65 74 20 n buffer is set
02CAC0: 74 6F 20 64 65 66 61 75 6C 74 2E 0D 20 20 20 20 to default..
02CAD0: 20 54 68 65 20 62 72 65 61 6B 20 65 76 65 6E 74 The break event
02CAE0: 20 69 73 20 64 69 73 61 72 6D 65 64 2E 0D 0D 20 is disarmed...
02CAF0: 20 20 20 20 26 42 42 30 36 20 2D 20 4B 4D 20 57 &BB06 - KM W
02CB00: 61 63 74 65 72 20 6E 75 6D 62 65 72 0D 0D 20 20 acter number..
02CB10: 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 49 Exit:.. I
02CB20: 66 20 63 68 61 72 61 63 74 65 72 20 66 6F 75 6E f character foun
02CB30: 64 3A 0D 0D 20 20 20 20 20 43 61 72 72 79 20 74 d:.. Carry t
02CB40: 72 75 65 2E 0D 20 20 20 20 20 41 20 3D 20 63 68 rue.. A = ch
02CB50: 61 72 61 63 74 65 72 0D 0D 20 20 20 20 20 54 6F aracter.. To
02CB60: 6B 65 6E 20 69 6E 76 61 6C 69 64 2C 20 6F 72 20 ken invalid, or
02CB70: 73 74 72 69 6E 67 20 6E 6F 74 20 6C 6F 6E 67 20 string not long
02CB80: 65 6E 6F 75 67 68 3A 0D 20 20 20 20 20 43 61 72 enough:. Car
02CB90: 72 79 20 66 61 6C 73 65 2E 0D 20 20 20 20 20 41 ry false.. A
02CBA0: 20 63 6F 72 72 75 70 74 0D 0D 20 20 20 20 20 44 corrupt.. D
02CBB0: 45 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 E and other flag
02CBC0: 73 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 20 20 20 s corrupt....
02CBD0: 20 20 26 42 42 31 35 20 2D 20 4B 4D 20 45 58 50 &BB15 - KM EXP
02CBE0: 20 42 55 46 46 45 52 20 2D 20 41 6C 6C 6F 63 61 BUFFER - Alloca
02CBF0: 74 65 20 61 20 62 75 66 66 65 72 20 66 6F 72 20 te a buffer for
02CC00: 65 78 70 61 6E 73 69 6F 6E 20 73 74 72 69 6E 67 expansion string
02CC10: 73 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D s.. Entry:..
02CC20: 20 20 20 20 20 44 45 20 3D 20 61 64 64 72 65 73 DE = addres
02CC30: 73 20 6F 66 20 62 75 66 66 65 72 0D 20 20 20 20 s of buffer.
02CC40: 20 48 4C 20 3D 20 6C 65 6E 67 74 68 20 6F 66 20 HL = length of
02CC50: 62 75 66 66 65 72 0D 0D 20 20 20 20 20 45 78 69 buffer.. Exi
02CC60: 74 3A 0D 0D 20 20 20 20 20 42 75 66 66 65 72 20 t:.. Buffer
02CC70: 4F 4B 3A 0D 0D 20 20 20 20 20 43 61 72 72 79 20 OK:.. Carry
02CC80: 74 72 75 65 2E 0D 0D 20 20 20 20 20 42 75 66 66 true... Buff
02CC90: 65 72 20 74 6F 6F 20 73 68 6F 72 74 3A 0D 0D 20 er too short:..
02CCA0: 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 2E Carry false.
02CCB0: 0D 0D 20 20 20 20 20 41 2C 42 43 2C 44 45 2C 48 .. A,BC,DE,H
02CCC0: 4C 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 L and other flag
02CCD0: 73 20 63 6F 72 72 75 70 74 0D 0D 20 20 20 20 20 s corrupt..
02CCE0: 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 68 65 Notes:.. The
02CCF0: 20 62 75 66 66 65 72 20 6D 75 73 74 20 62 65 20 buffer must be
02CD00: 41 49 54 20 43 48 41 52 20 2D 20 57 61 69 74 20 AIT CHAR - Wait
02CD10: 66 6F 72 20 61 20 63 68 61 72 61 63 74 65 72 20 for a character
02CD20: 66 72 6F 6D 20 74 68 65 20 6B 65 79 62 6F 61 72 from the keyboar
02CD30: 64 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D d.. Entry:..
02CD40: 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F No conditio
02CD50: 6E 73 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D ns.. Exit:..
02CD60: 20 20 20 20 20 43 61 72 72 79 20 74 72 75 65 2E Carry true.
02CD70: 20 4F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 Other flags cor
02CD80: 72 75 70 74 2E 0D 20 20 20 20 20 41 20 3D 20 63 rupt.. A = c
02CD90: 68 61 72 61 63 74 65 72 0D 0D 20 20 20 20 20 4E haracter.. N
02CDA0: 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 72 79 20 otes:.. Try
02CDB0: 74 6F 20 67 65 74 20 61 20 63 68 61 72 61 63 74 to get a charact
02CDC0: 65 72 20 66 72 6F 6D 20 6B 65 79 62 6F 61 72 64 er from keyboard
02CDD0: 20 20 62 75 66 66 65 72 2E 20 49 66 20 6F 6E 65 buffer. If one
02CDE0: 20 69 73 20 6E 6F 74 20 66 6F 75 6E 64 20 74 68 is not found th
02CDF0: 65 6E 0D 20 20 20 20 20 74 68 65 20 72 6F 75 74 en. the rout
02CE00: 69 6E 65 20 77 69 6C 6C 20 77 61 69 74 20 75 6E ine will wait un
02CE10: 74 69 6C 20 6F 6E 65 20 69 73 2E 0D 0D 0D 0D 0D til one is......
02CE20: 0D 0D 0D 0D 20 20 20 20 20 26 42 42 30 39 20 2D .... &BB09 -
02CE30: 20 4B 4D 20 52 45 41 44 20 43 48 41 52 20 2D 20 KM READ CHAR -
02CE40: 47 65 74 20 61 20 63 68 61 72 61 63 74 65 72 20 Get a character
02CE50: 66 72 6F 6D 20 74 68 65 20 6B 65 79 62 6F 61 72 from the keyboar
02CE60: 64 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D d.. Entry:..
02CE70: 20 20 20 20 20 4E 6F 20 63 6F 6E 64 69 74 69 6F No conditio
02CE80: 6E 73 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D ns.. Exit:..
02CE90: 20 20 20 20 20 49 66 20 61 20 63 68 61 72 61 63 If a charac
02CEA0: 74 65 72 20 77 61 73 20 61 76 61 69 6C 61 62 6C ter was availabl
02CEB0: 65 3A 0D 20 20 20 20 20 43 61 72 72 79 20 54 72 e:. Carry Tr
02CEC0: 75 65 2E 20 41 20 3D 20 63 68 61 72 61 63 74 65 ue. A = characte
02CED0: 72 0D 0D 20 20 20 20 20 49 46 20 6E 6F 20 63 68 r.. IF no ch
02CEE0: 61 72 61 63 74 65 72 20 61 76 61 69 6C 61 62 6C aracter availabl
02CEF0: 65 3A 0D 20 20 20 20 20 43 61 72 72 79 20 46 61 e:. Carry Fa
02CF00: 61 74 20 6C 65 61 73 74 20 34 39 20 62 79 74 65 at least 49 byte
02CF10: 73 20 20 61 6E 64 20 69 6E 20 52 41 4D 2E 20 49 s and in RAM. I
02CF20: 74 20 6D 75 73 74 20 6E 6F 74 20 62 65 20 75 6E t must not be un
02CF30: 64 65 72 0D 20 20 20 20 20 61 20 52 4F 4D 2E 20 der. a ROM.
02CF40: 49 66 20 74 68 65 20 6E 65 77 20 62 75 66 66 65 If the new buffe
02CF50: 72 20 69 73 20 74 6F 6F 20 73 68 6F 72 74 2C 20 r is too short,
02CF60: 74 68 65 20 6F 6C 64 20 6F 6E 65 20 69 73 20 6C the old one is l
02CF70: 65 66 74 20 75 6E 63 68 61 6E 67 65 64 2E 0D 20 eft unchanged..
02CF80: 20 20 20 20 49 6E 74 65 72 75 70 74 73 20 61 72 Interupts ar
02CF90: 65 20 65 6E 61 62 6C 65 64 2E 0D 0D 0D 0D 0D 0D e enabled.......
02CFA0: 0D 0D 0D 20 20 20 20 20 26 42 42 31 38 20 2D 20 ... &BB18 -
02CFB0: 4B 4D 20 57 41 49 54 20 4B 45 59 20 2D 20 57 61 KM WAIT KEY - Wa
02CFC0: 69 74 20 66 6F 72 20 61 20 6B 65 79 20 66 72 6F it for a key fro
02CFD0: 6D 20 74 68 65 20 6B 65 79 62 6F 61 72 64 20 62 m the keyboard b
02CFE0: 75 66 66 65 72 0D 0D 20 20 20 20 20 45 6E 74 72 uffer.. Entr
02CFF0: 79 3A 0D 0D 20 20 20 20 20 4E 6F 20 63 6F 6E 64 y:.. No cond
02D000: 69 74 69 6F 6E 73 0D 0D 20 20 20 20 20 45 78 69 itions.. Exi
02D010: 74 3A 0D 0D 20 20 20 20 20 43 61 72 72 79 20 74 t:.. Carry t
02D020: 72 75 65 2E 0D 20 20 20 20 20 41 20 3D 20 63 68 rue.. A = ch
02D030: 61 72 61 63 74 65 72 20 6F 72 20 65 78 70 61 6E aracter or expan
02D040: 73 69 6F 6E 20 74 6F 6B 65 6E 0D 0D 20 20 20 20 sion token..
02D050: 20 4F 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 Other flags cor
02D060: 72 75 70 74 2E 0D 0D 0D 20 20 20 20 20 26 42 42 rupt.... &BB
02D070: 31 42 20 2D 20 4B 4D 20 52 45 41 44 20 4B 45 59 1B - KM READ KEY
02D080: 20 2D 20 47 65 74 20 61 20 6B 65 79 20 66 72 6F - Get a key fro
02D090: 6D 20 74 68 65 20 6B 65 79 62 6F 61 72 64 20 62 m the keyboard b
02D0A0: 75 66 66 65 72 0D 0D 20 20 20 20 20 45 6E 74 72 uffer.. Entr
02D0B0: 79 3A 0D 0D 20 20 20 20 20 4E 6F 20 63 6F 6E 64 y:.. No cond
02D0C0: 69 74 69 6F 6E 73 0D 0D 20 20 20 20 20 45 78 69 itions.. Exi
02D0D0: 74 3A 0D 0D 20 20 20 20 20 4B 65 79 20 61 76 61 t:.. Key ava
02D0E0: 69 6C 61 62 6C 65 3A 0D 0D 20 20 20 20 20 43 61 ilable:.. Ca
02D0F0: 72 72 79 20 74 72 75 65 2E 20 41 20 3D 20 63 68 rry true. A = ch
02D100: 6C 73 65 2E 20 41 20 63 6F 72 72 75 70 74 0D 0D lse. A corrupt..
02D110: 20 20 20 20 20 4F 74 68 65 72 20 66 6C 61 67 73 Other flags
02D120: 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 20 20 20 20 corrupt....
02D130: 20 56 31 2E 30 20 61 6E 64 20 56 31 2E 31 0D 20 V1.0 and V1.1.
02D140: 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ------------
02D150: 2D 0D 0D 20 20 20 20 20 49 66 20 74 68 69 73 20 -.. If this
02D160: 72 6F 75 74 69 6E 65 20 77 61 73 20 63 61 6C 6C routine was call
02D170: 65 64 20 20 72 65 70 65 61 74 65 64 6C 79 20 20 ed repeatedly
02D180: 75 6E 74 69 6C 20 20 69 74 20 20 72 65 70 6F 72 until it repor
02D190: 74 73 20 74 68 65 72 65 20 69 73 20 6E 6F 0D 20 ts there is no.
02D1A0: 20 20 20 20 63 68 61 72 61 63 74 65 72 20 69 74 character it
02D1B0: 20 63 6F 75 6C 64 20 62 65 20 75 73 65 64 20 74 could be used t
02D1C0: 6F 20 63 6F 6D 70 6C 65 74 65 6C 79 20 63 6C 65 o completely cle
02D1D0: 61 72 20 74 68 65 20 6B 65 79 62 6F 61 72 64 20 ar the keyboard
02D1E0: 62 75 66 66 65 72 2E 0D 0D 0D 20 20 20 20 20 26 buffer.... &
02D1F0: 42 42 30 43 20 2D 20 4B 4D 20 43 48 41 52 20 52 BB0C - KM CHAR R
02D200: 45 54 55 52 4E 20 2D 20 52 65 74 75 72 6E 20 61 ETURN - Return a
02D210: 20 63 68 61 72 61 63 74 65 72 20 74 6F 20 74 68 character to th
02D220: 65 20 6B 65 79 62 6F 61 72 64 20 62 75 66 66 65 e keyboard buffe
02D230: 72 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D r.. Entry:..
02D240: 20 20 20 20 20 41 20 3D 20 63 68 61 72 61 63 74 A = charact
02D250: 65 72 20 74 6F 20 70 75 74 20 62 61 63 6B 0D 0D er to put back..
02D260: 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 Exit:..
02D270: 20 41 6C 6C 20 72 65 67 69 73 74 65 72 73 20 70 All registers p
02D280: 72 65 73 65 72 76 65 64 2E 0D 0D 20 20 20 20 20 reserved...
02D290: 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 68 65 Notes:.. The
02D2A0: 20 63 68 61 72 61 63 74 65 72 20 77 69 6C 6C 20 character will
02D2B0: 20 62 65 20 20 70 75 74 20 20 62 61 63 6B 20 20 be put back
02D2C0: 69 6E 74 6F 20 20 74 68 65 20 20 62 75 66 66 65 into the buffe
02D2D0: 72 20 20 62 65 66 6F 72 65 20 61 6E 79 20 6F 74 r before any ot
02D2E0: 68 65 72 0D 20 20 20 20 20 63 68 61 72 61 63 74 her. charact
02D2F0: 65 72 20 69 73 20 67 65 6E 65 72 61 74 65 64 2E er is generated.
02D300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02D310: 26 00 01 00 02 09 4E E5 26 00 C1 02 00 00 00 02 &.....N.&.......
02D320: 26 00 C6 02 00 00 00 02 26 00 C2 02 00 00 00 02 &.......&.......
02D330: 26 00 C7 02 00 00 00 02 26 00 C3 02 00 00 00 02 &.......&.......
02D340: 26 00 C8 02 00 00 00 02 26 00 C4 02 00 00 00 02 &.......&.......
02D350: 26 00 C9 02 00 00 00 02 26 00 C5 02 00 00 00 02 &.......&.......
02D360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D400: 61 72 61 63 74 65 72 20 6F 72 20 74 6F 6B 65 6E aracter or token
02D410: 0D 0D 20 20 20 20 20 4E 6F 20 6B 65 79 3A 0D 0D .. No key:..
02D420: 20 20 20 20 20 43 61 72 72 79 20 66 61 6C 73 65 Carry false
02D430: 2E 0D 20 20 20 20 20 41 20 63 6F 72 72 75 70 74 .. A corrupt
02D440: 2E 0D 0D 20 20 20 20 20 4F 74 68 65 72 20 66 6C ... Other fl
02D450: 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 20 ags corrupt....
02D460: 20 20 20 20 26 42 42 31 45 20 2D 20 4B 4D 20 54 &BB1E - KM T
02D470: 45 53 54 20 4B 45 59 20 2D 20 54 65 73 74 20 6B EST KEY - Test k
02D480: 65 79 20 68 61 73 20 62 65 65 6E 20 70 72 65 73 ey has been pres
02D490: 73 65 64 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A sed.. Entry:
02D4A0: 0D 0D 20 20 20 20 20 41 20 3D 20 6B 65 79 20 6E .. A = key n
02D4B0: 75 6D 62 65 72 20 28 61 73 20 6F 6E 20 64 69 73 umber (as on dis
02D4C0: 63 20 64 72 69 76 65 20 43 50 43 36 31 32 38 20 c drive CPC6128
02D4D0: 6F 72 20 61 73 20 66 6F 75 6E 64 20 69 6E 20 62 or as found in b
02D4E0: 61 73 69 63 20 6D 61 6E 75 61 6C 29 0D 0D 20 20 asic manual)..
02D4F0: 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 4B Exit:.. K
02D500: 65 79 20 70 72 65 73 73 65 64 3A 0D 0D 20 20 20 ey pressed:..
02D510: 20 20 5A 65 72 6F 20 66 61 6C 73 65 2E 0D 0D 20 Zero false...
02D520: 20 20 20 20 4B 65 79 20 6E 6F 74 20 70 72 65 73 Key not pres
02D530: 73 65 64 3A 0D 0D 20 20 20 20 20 5A 65 72 6F 20 sed:.. Zero
02D540: 74 72 75 65 2E 0D 0D 20 20 20 20 20 43 61 72 72 true... Carr
02D550: 79 20 66 61 6C 73 65 2E 0D 20 20 20 20 20 43 20 y false.. C
02D560: 3D 20 73 68 69 66 74 20 61 6E 64 20 63 6F 6E 74 = shift and cont
02D570: 72 6F 6C 20 73 74 61 74 65 0D 0D 20 20 20 20 20 rol state..
02D580: 42 49 54 20 37 20 20 31 3D 63 6F 6E 74 72 6F 6C BIT 7 1=control
02D590: 20 6B 65 79 20 70 72 65 73 73 65 64 2C 20 30 3D key pressed, 0=
02D5A0: 6E 6F 74 20 70 72 65 73 73 65 64 0D 20 20 20 20 not pressed.
02D5B0: 20 42 49 54 20 35 20 20 31 3D 73 68 69 66 74 20 BIT 5 1=shift
02D5C0: 6B 65 79 20 70 72 65 73 73 65 64 2C 20 30 3D 6E key pressed, 0=n
02D5D0: 6F 74 20 70 72 65 73 73 65 64 0D 0D 20 20 20 20 ot pressed..
02D5E0: 20 41 2C 48 4C 20 63 6F 72 72 75 70 74 2E 20 4F A,HL corrupt. O
02D5F0: 74 68 65 72 20 66 6C 61 67 73 20 63 6F 72 72 75 ther flags corru
02D600: 73 20 63 6F 72 72 75 70 74 2E 0D 0D 0D 0D 0D 0D s corrupt.......
02D610: 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 .. Notes:..
02D620: 20 20 20 20 53 65 65 20 4B 4D 20 53 45 54 20 54 See KM SET T
02D630: 52 41 4E 53 4C 41 54 45 0D 0D 0D 20 20 20 20 20 RANSLATE...
02D640: 26 42 42 33 33 20 2D 20 4B 4D 20 53 45 54 20 43 &BB33 - KM SET C
02D650: 4F 4E 54 52 4F 4C 20 20 2D 20 53 65 74 20 65 6E ONTROL - Set en
02D660: 74 72 79 20 69 6E 20 6B 65 79 20 74 72 61 6E 73 try in key trans
02D670: 6C 61 74 69 6F 6E 20 74 61 62 6C 65 20 28 63 6F lation table (co
02D680: 6E 74 72 6F 6C 29 0D 0D 20 20 20 20 20 45 6E 74 ntrol).. Ent
02D690: 72 79 3A 0D 0D 20 20 20 20 20 41 20 3D 20 6B 65 ry:.. A = ke
02D6A0: 79 20 6E 75 6D 62 65 72 0D 20 20 20 20 20 42 20 y number. B
02D6B0: 3D 20 6E 65 77 20 74 72 61 6E 73 6C 61 74 69 6F = new translatio
02D6C0: 6E 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 n.. Exit:..
02D6D0: 20 20 20 20 41 46 20 61 6E 64 20 48 4C 20 63 6F AF and HL co
02D6E0: 72 72 75 70 74 0D 0D 20 20 20 20 20 4E 6F 74 65 rrupt.. Note
02D6F0: 73 3A 0D 0D 20 20 20 20 20 53 65 65 20 4B 4D 20 s:.. See KM
02D700: 53 45 54 20 54 52 41 4E 53 4C 41 54 45 0D 0D 0D SET TRANSLATE...
02D710: 20 20 20 20 20 26 42 42 33 36 20 2D 20 4B 4D 20 &BB36 - KM
02D720: 47 45 54 20 43 4F 4E 54 52 4F 4C 20 2D 20 47 65 GET CONTROL - Ge
02D730: 74 20 65 6E 74 72 79 20 66 72 6F 6D 20 74 72 61 t entry from tra
02D740: 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 20 28 nslation table (
02D750: 63 6F 6E 74 72 6F 6C 29 0D 0D 20 20 20 20 20 45 control).. E
02D760: 6E 74 72 79 3A 0D 0D 20 20 20 20 20 41 20 3D 20 ntry:.. A =
02D770: 6B 65 79 20 6E 75 6D 62 65 72 0D 0D 20 20 20 20 key number..
02D780: 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 20 3D Exit:.. A =
02D790: 20 63 75 72 72 65 6E 74 20 74 72 61 6E 73 6C 61 current transla
02D7A0: 74 69 6F 6E 0D 20 20 20 20 20 48 4C 20 61 6E 64 tion. HL and
02D7B0: 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D flags corrupt..
02D7C0: 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 . Notes:..
02D7D0: 20 20 20 53 65 65 20 4B 4D 20 53 45 54 20 54 52 See KM SET TR
02D7E0: 41 4E 53 4C 41 54 45 0D 0D 20 20 20 20 20 2D 2D ANSLATE.. --
02D7F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02D800: 70 74 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A pt... Notes:
02D810: 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 20 54 68 65 ........ The
02D820: 20 6E 75 6D 62 65 72 20 69 73 20 6E 6F 74 20 20 number is not
02D830: 63 68 65 63 6B 65 64 2E 20 20 54 68 69 73 20 20 checked. This
02D840: 75 73 65 73 20 20 74 68 65 20 6B 65 79 62 6F 61 uses the keyboa
02D850: 72 64 20 73 63 61 6E 6E 69 6E 67 20 72 6F 75 74 rd scanning rout
02D860: 69 6E 65 0D 20 20 20 20 20 77 68 69 63 68 20 72 ine. which r
02D870: 75 6E 73 20 65 76 65 72 79 20 35 30 74 68 20 6F uns every 50th o
02D880: 66 20 61 20 73 65 63 6F 6E 64 2E 0D 0D 0D 20 20 f a second....
02D890: 20 20 20 26 42 42 32 31 20 2D 20 4B 4D 20 47 45 &BB21 - KM GE
02D8A0: 54 20 53 54 41 54 45 20 2D 20 47 65 74 20 73 68 T STATE - Get sh
02D8B0: 69 66 74 20 6C 6F 63 6B 20 61 6E 64 20 63 61 70 ift lock and cap
02D8C0: 73 20 6C 6F 63 6B 20 73 74 61 74 65 73 0D 0D 20 s lock states..
02D8D0: 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 Entry:..
02D8E0: 20 4E 6F 6E 65 2E 0D 0D 20 20 20 20 20 45 78 69 None... Exi
02D8F0: 74 3A 0D 0D 20 20 20 20 20 4C 20 3D 20 73 68 69 t:.. L = shi
02D900: 66 74 20 6C 6F 63 6B 20 73 74 61 74 65 20 28 26 ft lock state (&
02D910: 30 30 20 3D 20 6F 66 66 2C 20 26 46 46 20 3D 20 00 = off, &FF =
02D920: 6F 6E 29 0D 20 20 20 20 20 48 20 3D 20 63 61 70 on). H = cap
02D930: 73 20 6C 6F 63 6B 20 73 74 61 74 65 0D 20 20 20 s lock state.
02D940: 20 20 41 46 20 63 6F 72 72 75 70 74 2E 0D 0D 20 AF corrupt...
02D950: 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 Notes:..
02D960: 20 54 68 65 20 64 65 66 61 75 6C 74 20 73 74 61 The default sta
02D970: 74 65 20 69 73 20 6F 66 66 2E 0D 0D 0D 20 20 20 te is off....
02D980: 20 20 26 42 42 32 34 20 2D 20 4B 4D 20 47 45 54 &BB24 - KM GET
02D990: 20 4A 4F 59 53 54 49 43 4B 20 2D 20 47 65 74 20 JOYSTICK - Get
02D9A0: 73 74 61 74 65 73 20 6F 66 20 62 6F 74 68 20 6A states of both j
02D9B0: 6F 79 73 74 69 63 6B 73 0D 0D 20 20 20 20 20 45 oysticks.. E
02D9C0: 6E 74 72 79 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 ntry:.. None
02D9D0: 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 .. Exit:..
02D9E0: 20 20 20 48 2C 41 20 3D 20 73 74 61 74 65 20 6F H,A = state o
02D9F0: 66 20 6A 6F 79 73 74 69 63 6B 20 30 0D 20 20 20 f joystick 0.
02DA00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02DA10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02DA20: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02DA30: 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 42 33 39 20 ---.. &BB39
02DA40: 2D 20 4B 4D 20 53 45 54 20 52 45 50 45 41 54 20 - KM SET REPEAT
02DA50: 2D 20 53 65 74 20 77 68 65 74 68 65 72 20 61 20 - Set whether a
02DA60: 6B 65 79 20 69 73 20 61 6C 6C 6F 77 65 64 20 74 key is allowed t
02DA70: 6F 20 72 65 70 65 61 74 0D 0D 20 20 20 20 20 45 o repeat.. E
02DA80: 6E 74 72 79 3A 0D 0D 20 20 20 20 20 41 20 3D 20 ntry:.. A =
02DA90: 6B 65 79 20 6E 75 6D 62 65 72 0D 20 20 20 20 20 key number.
02DAA0: 42 20 3D 20 72 65 70 65 61 74 20 62 79 74 65 20 B = repeat byte
02DAB0: 28 26 46 46 20 3D 20 61 6C 6C 6F 77 65 64 20 74 (&FF = allowed t
02DAC0: 6F 20 72 65 70 65 61 74 2C 20 26 30 20 3D 20 6E o repeat, &0 = n
02DAD0: 6F 74 20 61 6C 6C 6F 77 65 64 20 74 6F 20 72 65 ot allowed to re
02DAE0: 70 65 61 74 29 0D 0D 20 20 20 20 20 45 78 69 74 peat).. Exit
02DAF0: 3A 0D 0D 20 20 20 20 20 41 46 2C 42 43 2C 48 4C :.. AF,BC,HL
02DB00: 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 20 corrupt...
02DB10: 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 49 66 20 Notes:.. If
02DB20: 6B 65 79 20 6E 75 6D 62 65 72 20 69 73 20 67 72 key number is gr
02DB30: 65 61 74 65 72 20 74 68 61 6E 20 37 39 20 6E 6F eater than 79 no
02DB40: 20 61 63 74 69 6F 6E 20 69 73 20 74 61 6B 65 6E action is taken
02DB50: 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D ... --------
02DB60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02DB70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02DB80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02DB90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 -------------..
02DBA0: 20 20 20 20 26 42 42 33 43 20 2D 20 4B 4D 20 47 &BB3C - KM G
02DBB0: 45 54 20 52 45 50 45 41 54 20 2D 20 41 73 6B 20 ET REPEAT - Ask
02DBC0: 69 66 20 61 20 6B 65 79 20 69 73 20 61 6C 6C 6F if a key is allo
02DBD0: 77 65 64 20 74 6F 20 72 65 70 65 61 74 2E 0D 0D wed to repeat...
02DBE0: 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 0D 0D 0D Entry:.....
02DBF0: 0D 0D 0D 20 20 20 20 20 41 20 3D 20 6B 65 79 20 ... A = key
02DC00: 20 20 4C 20 3D 20 73 74 61 74 65 20 6F 66 20 6A L = state of j
02DC10: 6F 79 73 74 69 63 6B 20 31 0D 20 20 20 20 20 46 oystick 1. F
02DC20: 6C 61 67 73 20 63 6F 72 72 75 70 74 2E 0D 0D 20 lags corrupt...
02DC30: 20 20 20 20 54 68 65 20 62 69 74 73 20 61 72 65 The bits are
02DC40: 20 73 65 74 20 61 73 20 62 65 6C 6F 77 3A 0D 0D set as below:..
02DC50: 20 20 20 20 20 42 69 74 20 30 20 2D 20 55 70 0D Bit 0 - Up.
02DC60: 20 20 20 20 20 42 69 74 20 31 20 2D 20 44 6F 77 Bit 1 - Dow
02DC70: 6E 0D 20 20 20 20 20 42 69 74 20 32 20 2D 20 4C n. Bit 2 - L
02DC80: 65 66 74 0D 20 20 20 20 20 42 69 74 20 33 20 2D eft. Bit 3 -
02DC90: 20 52 69 67 68 74 0D 20 20 20 20 20 42 69 74 20 Right. Bit
02DCA0: 34 20 2D 20 46 69 72 65 20 32 0D 20 20 20 20 20 4 - Fire 2.
02DCB0: 42 69 74 20 35 20 2D 20 46 69 72 65 20 31 0D 20 Bit 5 - Fire 1.
02DCC0: 20 20 20 20 42 69 74 20 36 20 2D 20 53 70 61 72 Bit 6 - Spar
02DCD0: 65 20 6A 6F 79 73 74 69 63 6B 20 62 75 74 74 6F e joystick butto
02DCE0: 6E 0D 20 20 20 20 20 42 69 74 20 37 20 2D 20 7A n. Bit 7 - z
02DCF0: 65 72 6F 0D 0D 20 20 20 20 20 49 66 20 61 20 70 ero.. If a p
02DD00: 61 72 74 69 63 75 6C 61 72 20 62 69 74 20 69 73 articular bit is
02DD10: 20 73 65 74 20 74 68 65 6E 20 74 68 61 74 20 62 set then that b
02DD20: 75 74 74 6F 6E 20 68 61 73 20 62 65 65 6E 20 70 utton has been p
02DD30: 72 65 73 73 65 64 2E 0D 0D 0D 20 20 20 20 20 26 ressed.... &
02DD40: 42 42 32 37 20 2D 20 4B 4D 20 53 45 54 20 54 52 BB27 - KM SET TR
02DD50: 41 4E 53 4C 41 54 45 20 2D 20 53 65 74 20 61 6E ANSLATE - Set an
02DD60: 20 65 6E 74 72 79 20 69 6E 20 74 68 65 20 6B 65 entry in the ke
02DD70: 79 20 74 72 61 6E 73 6C 61 74 69 6F 6E 20 74 61 y translation ta
02DD80: 62 6C 65 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A ble.. Entry:
02DD90: 0D 0D 20 20 20 20 20 41 20 3D 20 6B 65 79 20 6E .. A = key n
02DDA0: 75 6D 62 65 72 0D 20 20 20 20 20 42 20 3D 20 6E umber. B = n
02DDB0: 65 77 20 74 72 61 6E 73 6C 61 74 69 6F 6E 0D 0D ew translation..
02DDC0: 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 Exit:..
02DDD0: 20 41 46 2C 48 4C 20 63 6F 72 72 75 70 74 2E 0D AF,HL corrupt..
02DDE0: 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 0D 0D . Notes:....
02DDF0: 0D 0D 0D 0D 20 20 20 20 20 49 66 20 74 68 65 20 .... If the
02DE00: 6E 75 6D 62 65 72 0D 0D 20 20 20 20 20 45 78 69 number.. Exi
02DE10: 74 3A 0D 0D 20 20 20 20 20 49 66 20 6B 65 79 20 t:.. If key
02DE20: 61 6C 6C 6F 77 65 64 20 74 6F 20 72 65 70 65 61 allowed to repea
02DE30: 74 3A 0D 0D 20 20 20 20 20 5A 65 72 6F 20 66 61 t:.. Zero fa
02DE40: 6C 73 65 2E 0D 0D 20 20 20 20 20 49 66 20 6B 65 lse... If ke
02DE50: 79 20 6E 6F 74 20 61 6C 6C 6F 77 65 64 20 74 6F y not allowed to
02DE60: 20 72 65 70 65 61 74 3A 0D 0D 20 20 20 20 20 5A repeat:.. Z
02DE70: 65 72 6F 20 74 72 75 65 2E 0D 0D 20 20 20 20 20 ero true...
02DE80: 43 61 72 72 79 20 66 61 6C 73 65 2E 20 41 2C 48 Carry false. A,H
02DE90: 4C 20 61 6E 64 20 6F 74 68 65 72 20 66 6C 61 67 L and other flag
02DEA0: 73 20 63 6F 72 72 75 70 74 2E 20 41 6C 6C 20 6F s corrupt. All o
02DEB0: 74 68 65 72 73 20 4F 4B 2E 0D 0D 20 20 20 20 20 thers OK...
02DEC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02DED0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02DEE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02DEF0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02DF00: 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 42 33 -----.. &BB3
02DF10: 46 20 2D 20 4B 4D 20 53 45 54 20 44 45 4C 41 59 F - KM SET DELAY
02DF20: 20 2D 20 53 65 74 20 64 65 6C 61 79 20 61 6E 64 - Set delay and
02DF30: 20 72 65 70 65 61 74 20 73 70 65 65 64 73 0D 0D repeat speeds..
02DF40: 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 20 20 Entry:..
02DF50: 20 20 48 20 3D 20 73 74 61 72 74 20 75 70 20 64 H = start up d
02DF60: 65 6C 61 79 0D 20 20 20 20 20 4C 20 3D 20 6E 65 elay. L = ne
02DF70: 77 20 72 65 70 65 61 74 20 73 70 65 65 64 0D 0D w repeat speed..
02DF80: 20 20 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 Exit:..
02DF90: 20 41 46 20 63 6F 72 72 75 70 74 2E 0D 0D 20 20 AF corrupt...
02DFA0: 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 Notes:..
02DFB0: 54 68 65 20 64 65 6C 61 79 73 20 61 72 65 20 67 The delays are g
02DFC0: 69 76 65 6E 20 69 6E 20 20 6B 65 79 62 6F 61 72 iven in keyboar
02DFD0: 64 20 20 73 63 61 6E 73 20 20 77 68 69 63 68 20 d scans which
02DFE0: 20 6F 63 63 75 72 20 65 76 65 72 79 20 35 30 74 occur every 50t
02DFF0: 68 20 6F 66 20 61 0D 20 20 20 20 20 73 65 63 6F h of a. seco
02E000: 6B 65 79 20 6E 75 6D 62 65 72 20 69 73 20 67 72 key number is gr
02E010: 65 61 74 65 72 20 74 68 61 6E 20 37 39 20 74 68 eater than 79 th
02E020: 65 6E 20 6E 6F 20 61 63 74 69 6F 6E 20 69 73 20 en no action is
02E030: 74 61 6B 65 6E 2E 0D 0D 20 20 20 20 20 26 38 30 taken... &80
02E040: 2D 26 39 46 20 20 20 45 78 70 61 6E 73 69 6F 6E -&9F Expansion
02E050: 20 74 6F 6B 65 6E 73 20 20 77 68 69 63 68 20 20 tokens which
02E060: 61 72 65 20 20 65 78 70 61 6E 64 65 64 20 20 74 are expanded t
02E070: 6F 20 63 68 61 72 61 63 74 65 72 20 73 74 72 69 o character stri
02E080: 6E 67 73 0D 20 20 20 20 20 77 68 65 6E 20 4B 4D ngs. when KM
02E090: 20 52 45 41 44 20 43 48 41 52 20 61 6E 64 20 4B READ CHAR and K
02E0A0: 4D 20 57 41 49 54 20 43 48 41 52 20 61 72 65 20 M WAIT CHAR are
02E0B0: 65 78 65 63 75 74 65 64 2E 0D 0D 20 20 20 20 20 executed...
02E0C0: 26 46 44 20 20 20 20 20 20 20 63 61 70 73 20 6C &FD caps l
02E0D0: 6F 63 6B 20 74 6F 6B 65 6E 2E 0D 0D 20 20 20 20 ock token...
02E0E0: 20 26 46 45 20 20 20 20 20 20 20 53 68 69 66 74 &FE Shift
02E0F0: 20 6C 6F 63 6B 20 74 6F 6B 65 6E 2E 0D 0D 20 20 lock token...
02E100: 20 20 20 26 46 46 20 20 20 20 20 20 20 49 67 6E &FF Ign
02E110: 6F 72 65 20 74 6F 6B 65 6E 2E 20 28 54 68 72 6F ore token. (Thro
02E120: 77 20 6B 65 79 20 61 77 61 79 29 0D 0D 20 20 20 w key away)..
02E130: 20 20 26 45 30 2D 26 46 43 20 61 72 65 20 73 70 &E0-&FC are sp
02E140: 65 63 69 61 6C 20 74 6F 6B 65 6E 73 20 66 6F 72 ecial tokens for
02E150: 20 65 64 69 74 69 6E 67 20 69 6E 20 42 41 53 49 editing in BASI
02E160: 43 20 65 74 63 2E 0D 0D 0D 20 20 20 20 20 26 42 C etc.... &B
02E170: 42 32 41 20 2D 20 4B 4D 20 47 45 54 20 54 52 41 B2A - KM GET TRA
02E180: 4E 53 4C 41 54 45 20 2D 20 47 65 74 20 61 6E 20 NSLATE - Get an
02E190: 65 6E 74 72 79 20 66 72 6F 6D 20 6B 65 79 20 74 entry from key t
02E1A0: 72 61 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 ranslation table
02E1B0: 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
02E1C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02E1D0: 20 28 6E 6F 72 6D 61 6C 29 0D 0D 20 20 20 20 20 (normal)..
02E1E0: 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 41 20 3D Entry:.. A =
02E1F0: 20 6B 65 79 20 6E 75 6D 62 65 72 0D 0D 20 20 20 key number..
02E200: 6E 64 2E 20 41 20 64 65 6C 61 79 20 6F 72 20 73 nd. A delay or s
02E210: 70 65 65 64 20 6F 66 20 30 20 69 73 20 74 61 6B peed of 0 is tak
02E220: 65 6E 20 74 6F 20 6D 65 61 6E 20 32 35 36 2E 0D en to mean 256..
02E230: 0D 20 20 20 20 20 54 68 65 20 64 65 66 61 75 6C . The defaul
02E240: 74 20 64 65 6C 61 79 20 69 73 20 33 30 20 73 63 t delay is 30 sc
02E250: 61 6E 73 20 61 6E 64 20 74 68 65 20 64 65 66 61 ans and the defa
02E260: 75 6C 74 20 73 70 65 65 64 20 69 73 20 32 20 73 ult speed is 2 s
02E270: 63 61 6E 73 2E 0D 0D 20 20 20 20 20 54 68 65 20 cans... The
02E280: 64 65 6C 61 79 20 6F 72 20 73 70 65 65 64 20 76 delay or speed v
02E290: 61 6C 75 65 73 20 6F 6E 6C 79 20 61 70 70 6C 79 alues only apply
02E2A0: 20 74 6F 20 6B 65 79 73 20 74 68 61 74 20 61 72 to keys that ar
02E2B0: 65 20 73 65 74 20 74 6F 20 72 65 70 65 61 74 2E e set to repeat.
02E2C0: 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D .. ---------
02E2D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02E2E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02E2F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02E300: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 ------------..
02E310: 20 20 20 26 42 42 34 32 20 2D 20 4B 4D 20 47 45 &BB42 - KM GE
02E320: 54 20 44 45 4C 41 59 20 2D 20 47 65 74 20 64 65 T DELAY - Get de
02E330: 6C 61 79 20 61 6E 64 20 72 65 70 65 61 74 20 73 lay and repeat s
02E340: 70 65 65 64 73 0D 0D 20 20 20 20 20 45 6E 74 72 peeds.. Entr
02E350: 79 3A 0D 0D 20 20 20 20 20 4E 6F 6E 65 2E 0D 0D y:.. None...
02E360: 20 20 20 20 20 45 78 69 74 3A 0D 20 20 20 20 20 Exit:.
02E370: 48 20 3D 20 73 74 61 72 74 20 75 70 20 73 70 65 H = start up spe
02E380: 65 64 0D 20 20 20 20 20 4C 20 3D 20 72 65 70 65 ed. L = repe
02E390: 61 74 20 73 70 65 65 64 0D 0D 20 20 20 20 20 41 at speed.. A
02E3A0: 46 20 63 6F 72 72 75 70 74 0D 0D 20 20 20 20 20 F corrupt..
02E3B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02E3C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02E3D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02E3E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02E3F0: 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 26 42 42 34 -----.. &BB4
02E400: 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 20 Exit:.. A
02E410: 3D 20 63 75 72 72 65 6E 74 20 74 72 61 6E 73 6C = current transl
02E420: 61 74 69 6F 6E 0D 0D 20 20 20 20 20 48 4C 20 61 ation.. HL a
02E430: 6E 64 20 66 6C 61 67 73 20 63 6F 72 72 75 70 74 nd flags corrupt
02E440: 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D ... Notes:..
02E450: 20 20 20 20 20 53 65 65 20 4B 4D 20 53 45 54 20 See KM SET
02E460: 54 52 41 4E 53 4C 41 54 45 0D 0D 0D 20 20 20 20 TRANSLATE...
02E470: 20 26 42 42 32 44 20 2D 20 4B 4D 20 53 45 54 20 &BB2D - KM SET
02E480: 53 48 49 46 54 20 2D 20 47 65 74 20 61 6E 20 65 SHIFT - Get an e
02E490: 6E 74 72 79 20 66 72 6F 6D 20 74 72 61 6E 73 6C ntry from transl
02E4A0: 61 74 69 6F 6E 20 74 61 62 6C 65 0D 20 20 20 20 ation table.
02E4B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02E4C0: 20 20 20 20 20 20 20 20 28 53 68 69 66 74 65 64 (Shifted
02E4D0: 29 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D ).. Entry:..
02E4E0: 20 20 20 20 20 41 20 3D 20 6B 65 79 20 6E 75 6D A = key num
02E4F0: 62 65 72 0D 20 20 20 20 20 42 20 3D 20 6E 65 77 ber. B = new
02E500: 20 74 72 61 6E 73 6C 61 74 69 6F 6E 0D 0D 20 20 translation..
02E510: 20 20 20 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 Exit:.. A
02E520: 46 20 61 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 F and HL corrupt
02E530: 2E 0D 0D 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D ... Notes:..
02E540: 20 20 20 20 20 53 65 65 20 4B 4D 20 53 45 54 20 See KM SET
02E550: 54 52 41 4E 53 4C 41 54 45 0D 0D 0D 20 20 20 20 TRANSLATE...
02E560: 20 26 42 42 33 30 20 2D 20 4B 4D 20 47 45 54 20 &BB30 - KM GET
02E570: 53 48 49 46 54 20 2D 20 47 65 74 20 65 6E 74 72 SHIFT - Get entr
02E580: 79 20 66 72 6F 6D 20 74 72 61 6E 73 6C 61 74 69 y from translati
02E590: 6F 6E 20 74 61 62 6C 65 20 28 73 68 69 66 74 65 on table (shifte
02E5A0: 64 29 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D d).. Entry:.
02E5B0: 0D 20 20 20 20 20 41 20 3D 20 6B 65 79 20 6E 75 . A = key nu
02E5C0: 6D 62 65 72 0D 0D 20 20 20 20 20 45 78 69 74 3A mber.. Exit:
02E5D0: 0D 0D 20 20 20 20 20 41 20 3D 20 63 75 72 72 65 .. A = curre
02E5E0: 6E 74 20 74 72 61 6E 73 6C 61 74 69 6F 6E 0D 0D nt translation..
02E5F0: 20 20 20 20 20 48 4C 20 61 6E 64 20 66 6C 61 67 HL and flag
02E600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02E610: 27 00 01 00 02 09 4E E5 27 00 C1 02 00 00 00 02 '.....N.'.......
02E620: 27 00 C6 02 00 00 00 02 27 00 C2 02 00 00 00 02 '.......'.......
02E630: 27 00 C7 02 00 00 00 02 27 00 C3 02 00 00 00 02 '.......'.......
02E640: 27 00 C8 02 00 00 00 02 27 00 C4 02 00 00 00 02 '.......'.......
02E650: 27 00 C9 02 00 00 00 02 27 00 C5 02 00 00 00 02 '.......'.......
02E660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E700: 35 20 2D 20 4B 4D 20 41 52 4D 20 42 52 45 41 4B 5 - KM ARM BREAK
02E710: 53 20 2D 20 41 6C 6C 6F 77 20 62 72 65 61 6B 20 S - Allow break
02E720: 65 76 65 6E 74 73 20 74 6F 20 62 65 20 67 65 6E events to be gen
02E730: 65 72 61 74 65 64 0D 0D 20 20 20 20 20 45 6E 74 erated.. Ent
02E740: 72 79 3A 0D 0D 20 20 20 20 20 44 45 20 3D 20 61 ry:.. DE = a
02E750: 64 64 72 65 73 73 20 6F 66 20 62 72 65 61 6B 20 ddress of break
02E760: 65 76 65 6E 74 0D 20 20 20 20 20 43 20 3D 20 52 event. C = R
02E770: 6F 6D 20 73 65 6C 65 63 74 20 61 64 64 72 65 73 om select addres
02E780: 73 20 66 6F 72 20 72 6F 75 74 69 6E 65 0D 0D 20 s for routine..
02E790: 20 20 20 20 45 78 69 74 3A 20 41 46 2C 42 43 2C Exit: AF,BC,
02E7A0: 44 45 2C 48 4C 20 63 6F 72 72 75 70 74 2E 20 41 DE,HL corrupt. A
02E7B0: 6C 6C 20 6F 74 68 65 72 73 20 70 72 65 73 65 72 ll others preser
02E7C0: 76 65 64 2E 0D 0D 0D 0D 0D 0D 0D 0D 20 20 20 20 ved.........
02E7D0: 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 20 20 54 68 Notes:.. Th
02E7E0: 69 73 20 72 6F 75 74 69 6E 65 20 65 6E 61 62 6C is routine enabl
02E7F0: 65 73 20 69 6E 74 65 72 75 70 74 73 2E 0D 0D 20 es interupts...
02E800: 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ------------
02E810: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02E820: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02E830: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02E840: 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 20 20 20 20 ---------..
02E850: 26 42 42 34 38 20 2D 20 4B 4D 20 44 49 53 41 52 &BB48 - KM DISAR
02E860: 4D 20 42 52 45 41 4B 20 2D 20 53 74 6F 70 20 62 M BREAK - Stop b
02E870: 72 65 61 6B 20 65 76 65 6E 74 73 20 66 72 6F 6D reak events from
02E880: 20 62 65 69 6E 67 20 67 65 6E 65 72 61 74 65 64 being generated
02E890: 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 .. Entry:..
02E8A0: 20 20 20 20 4E 6F 6E 65 2E 0D 0D 20 20 20 20 20 None...
02E8B0: 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 46 20 61 Exit:.. AF a
02E8C0: 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0D nd HL corrupt...
02E8D0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 Notes:..
02E8E0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 This routine e
02E8F0: 6E 61 62 6C 65 73 20 69 6E 74 65 72 75 70 74 73 nables interupts
02E900: 20 1E EA 01 00 2F 00 D2 00 20 20 D6 20 FE 20 FF ..../... . . .
02E910: 40 01 A6 20 A3 23 17 2C 0C 00 00 F3 5B 0B 00 00 @.. £#.,....[...
02E920: 6E F3 5D 01 0B 00 00 6E F3 EF 0B 00 00 6E F3 F4 n.]....n.....n..
02E930: 0F 01 D5 00 16 00 DC 00 20 20 88 01 0B 00 00 6E ........ .....n
02E940: F2 EF 0B 00 00 6E F2 F4 0F 00 18 00 E6 00 B0 01 .....n..........
02E950: 0B 00 00 6E E6 5B 0B 00 00 EE 5D EF 0B 00 00 6E ...n.[....]....n
02E960: F3 00 1E 00 F0 00 BF 22 1A 22 FF 03 28 0E 29 22 ......."."..(.)"
02E970: 4F 22 FF 03 28 0E 29 22 18 1F 01 18 14 22 3B 00 O"..(.)".....";.
02E980: 54 00 FA 00 A1 20 0B 00 00 6E F2 EF 0E 20 EB 20 T.... ...n... .
02E990: BF 22 49 20 6B 6E 65 77 20 74 68 69 73 20 61 74 ."I knew this at
02E9A0: 74 65 6D 70 74 20 77 6F 75 6C 64 20 62 65 20 61 tempt would be a
02E9B0: 6E 20 6F 75 74 73 74 61 6E 64 69 6E 67 20 73 75 n outstanding su
02E9C0: 63 63 65 73 73 2E 22 01 83 20 1C 06 BB 01 A0 20 ccess.".. .....
02E9D0: 1E 86 01 00 B7 00 04 01 BF 22 55 73 65 20 F0 20 ........."Use .
02E9E0: 61 6E 64 20 F1 20 74 6F 20 73 63 72 6F 6C 6C 20 and . to scroll
02E9F0: 74 68 65 20 74 65 78 74 2C 20 5B 43 4F 4E 54 52 the text, [CONTR
02EA00: 4F 4C 5D 20 F0 20 61 6E 64 20 F1 20 74 6F 20 73 OL] . and . to s
02EA10: 6B 69 70 20 74 6F 20 70 72 65 76 69 6F 75 73 2F kip to previous/
02EA20: 6E 65 78 74 20 66 69 6C 65 2C 5B 53 50 41 43 45 next file,[SPACE
02EA30: 5D 20 74 6F 20 72 65 62 75 69 6C 64 20 73 63 72 ] to rebuild scr
02EA40: 65 65 6E 20 61 6E 64 20 5B 52 45 54 55 52 4E 5D een and [RETURN]
02EA50: 20 74 6F 20 66 69 6E 69 73 68 2E 20 50 72 65 73 to finish. Pres
02EA60: 73 20 61 6E 79 20 6B 65 79 20 74 6F 20 73 74 61 s any key to sta
02EA70: 72 74 21 22 01 83 20 1C 06 BB 01 0C 00 00 F3 EF rt!".. .........
02EA80: 22 20 22 01 0B 00 00 EE EF 0E 00 12 00 0E 01 D6 " ".............
02EA90: 20 0C 00 00 F3 F2 FF 03 28 19 0D 29 00 3A 00 18 .......(..).:..
02EAA0: 01 20 20 B2 20 FF 74 28 22 40 20 F0 F1 F8 F9 22 . . .t("@ ...."
02EAB0: 2C 0C 00 00 F3 29 F4 0F 20 A0 20 1E 72 01 2C 1E ,....).. . .r.,.
02EAC0: 72 01 2C 1E 40 01 2C 1E 54 01 2C 1E 68 01 2C 1E r.,.@.,.T.,.h.,.
02EAD0: 22 01 2C 1E 36 01 00 4E 00 22 01 20 20 20 20 0B ".,.6..N.". .
02EAE0: 00 00 E6 EF 0B 00 00 6E E6 01 D6 20 0B 00 00 E6 .......n... ....
02EAF0: EE 0F 20 FA 20 0B 00 00 6E E6 5B 0B 00 00 E6 5D .. . ...n.[....]
02EB00: 2E 0D 0D 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D 2D ... --------
02EB10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02EB20: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02EB30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02EB40: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 0D 20 -------------..
02EB50: 20 20 20 20 26 42 42 34 42 20 2D 20 4B 4D 20 42 &BB4B - KM B
02EB60: 52 45 41 4B 20 45 56 45 4E 54 0D 0D 20 20 20 20 REAK EVENT..
02EB70: 20 45 6E 74 72 79 3A 0D 0D 20 20 20 20 20 4E 6F Entry:.. No
02EB80: 6E 65 0D 0D 20 20 20 20 20 45 78 69 74 3A 0D 0D ne.. Exit:..
02EB90: 20 20 20 20 20 41 46 20 61 6E 64 20 48 4C 20 63 AF and HL c
02EBA0: 6F 72 72 75 70 74 2E 0D 0D 20 20 20 20 20 2D 2D orrupt... --
02EBB0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02EBC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02EBD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02EBE0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ----------------
02EBF0: 2D 2D 2D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D ---.............
02EC00: 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D ................
02EC10: 0D 1A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ..--------------
02EC20: 2D 2D 2D 2D 0D 1A 00 00 00 00 00 00 00 1A 35 33 ----..........53
02EC30: 7C 0D 09 20 20 2B 2D 2D 2D 2B 2D 2D 2D 2B 0D 0D |.. +---+---+..
02EC40: 1A 20 20 20 7C 20 20 20 7C 20 20 20 7C 20 20 20 . | | |
02EC50: 7C 20 20 20 7C 20 20 20 7C 20 20 1A 00 00 00 00 | | | .....
02EC60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02EC70: 00 00 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
02EC80: 20 62 65 69 6E 67 20 67 65 6E 65 72 61 74 65 64 being generated
02EC90: 0D 0D 20 20 20 20 20 45 6E 74 72 79 3A 0D 0D 20 .. Entry:..
02ECA0: 20 20 20 20 4E 6F 6E 65 2E 0D 0D 20 20 20 20 20 None...
02ECB0: 45 78 69 74 3A 0D 0D 20 20 20 20 20 41 46 20 61 Exit:.. AF a
02ECC0: 6E 64 20 48 4C 20 63 6F 72 72 75 70 74 2E 0D 0D nd HL corrupt...
02ECD0: 20 20 20 20 20 4E 6F 74 65 73 3A 0D 0D 20 20 20 Notes:..
02ECE0: 20 20 54 68 69 73 20 72 6F 75 74 69 6E 65 20 65 This routine e
02ECF0: 6E 61 62 6C 65 73 20 69 6E 74 65 72 75 70 74 73 nables interupts
02ED00: F0 0B 00 00 EE 01 0B 00 00 E6 EF 0B 00 00 E6 F5 ................
02ED10: 0F 01 D5 01 0B 00 00 EE EF 0B 00 00 6E E6 5B 0B ............n.[.
02ED20: 00 00 E6 5D 00 0C 00 2C 01 20 20 A0 20 1E 40 01 ...]...,. . .@.
02ED30: 00 54 00 36 01 20 20 20 20 0B 00 00 E6 EF 0B 00 .T.6. .......
02ED40: 00 6E E6 01 D6 20 0B 00 00 6E E6 5B 0B 00 00 E6 .n... ...n.[....
02ED50: 5D EE 0B 00 00 EE 01 0B 00 00 E6 EF 0B 00 00 E6 ]...............
02ED60: F5 0F 01 D5 01 0B 00 00 EE EF FF 77 28 0B 00 00 ...........w(...
02ED70: 6E E6 5B 0B 00 00 E6 F4 0F 5D 2C 0B 00 00 6E F3 n.[......],...n.
02ED80: F5 19 19 29 00 43 00 40 01 20 20 20 20 9F 20 1E ...).C.@. . .
02ED90: B8 01 01 9E 20 0B 00 00 E9 EF 0E 20 EC 20 19 18 .... ...... . ..
02EDA0: 01 A9 20 0F 2C 0B 00 00 E9 F4 0F 01 83 20 0B 00 .. .,........ ..
02EDB0: 00 70 72 F4 2C 40 0C 00 00 F3 5B 0B 00 00 E9 F4 .pr.,@....[.....
02EDC0: 0B 00 00 EE 5D 01 B0 00 0C 00 4A 01 20 20 A0 20 ....].....J. .
02EDD0: 1E 72 01 00 3E 00 54 01 20 20 20 20 A1 20 0B 00 .r..>.T. . ..
02EDE0: 00 EE EE 0E 20 EB 20 0B 00 00 EE EF 0B 00 00 EE .... . .........
02EDF0: F5 0F 01 BF 22 1F 01 FF 20 08 22 3B 01 83 20 0B ...."... .";.. .
02EE00: 00 00 70 72 F4 2C 40 0C 00 00 F3 5B 0B 00 00 EE ..pr.,@....[....
02EE10: 5D 00 0C 00 5E 01 20 20 A0 20 1E 72 01 00 48 00 ]...^. . .r..H.
02EE20: 68 01 20 20 20 20 A1 20 0B 00 00 EE F1 0B 00 00 h. . ........
02EE30: 6E F3 F5 19 19 20 EB 20 0B 00 00 EE EF 0B 00 00 n.... . ........
02EE40: EE F4 0F 01 BF 22 1F 01 1A 20 08 22 3B 01 83 20 ....."... .";..
02EE50: 0B 00 00 70 72 F4 2C 40 0C 00 00 F3 5B 0B 00 00 ...pr.,@....[...
02EE60: EE F4 19 18 5D 00 0E 00 72 01 20 20 0C 00 00 F3 ....]...r. ....
02EE70: EF FF 43 00 06 00 7C 01 D5 00 1D 00 86 01 9F 20 ..C...|........
02EE80: 1E B8 01 01 BF 22 1F 01 17 42 79 65 20 64 61 72 ....."...Bye dar
02EE90: 6C 69 6E 67 21 22 00 08 00 90 01 86 01 98 00 CE ling!"..........
02EEA0: 00 9A 01 0C 00 00 F3 EF 22 33 44 43 30 44 44 36 ........"3DC0DD6
02EEB0: 45 30 30 44 44 36 36 30 31 41 46 42 36 43 38 34 E00DD6601AFB6C84
02EEC0: 37 32 33 35 45 32 33 35 36 43 44 37 38 42 42 32 7235E2356CD78BB2
02EED0: 44 32 35 45 42 37 45 32 33 46 45 46 46 32 30 30 D25EB7E23FEFF200
02EEE0: 38 37 45 32 33 30 35 43 38 45 36 37 46 31 38 30 87E2305C8E67F180
02EEF0: 43 45 36 37 46 46 45 30 39 32 30 30 41 37 41 45 CE67FFE09200A7AE
02EF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F100: 36 30 37 44 36 30 39 32 46 38 32 35 37 31 38 32 607D6092F8257182
02F110: 36 46 45 32 30 32 38 32 31 43 35 44 35 45 35 46 6FE202821C5D5E5F
02F120: 33 30 31 38 41 37 46 45 44 34 39 43 44 44 45 41 3018A7FED49CDDEA
02F130: 44 45 42 43 44 44 45 41 44 30 31 30 30 30 38 31 DEBCDDEAD0100081
02F140: 41 31 33 37 37 30 39 33 30 46 41 44 39 45 44 34 A13770930FAD9ED4
02F150: 39 44 39 46 42 45 31 44 31 43 31 31 34 37 41 46 9D9FBE1D1C1147AF
02F160: 45 35 30 44 30 31 30 42 36 43 39 22 00 2E 00 A4 E50D010B6C9"....
02F170: 01 83 20 1C 4E BB 01 83 20 1C FF BB 01 0B 00 00 .. .N... .......
02F180: E1 EF 1C A6 BB 01 9F 20 1E C2 01 01 0B 00 00 E1 ....... ........
02F190: EF 1C 1B BC 01 9F 20 1E C2 01 00 3E 00 AE 01 9E ...... ....>....
02F1A0: 20 0B 00 00 E9 EF 0E 20 EC 20 1C 60 00 01 BE 20 ...... . .`...
02F1B0: 0B 00 00 70 72 F4 F4 0B 00 00 E9 2C FF 1D 28 22 ...pr......,..("
02F1C0: 26 22 F4 AC 28 0C 00 00 F3 2C 0B 00 00 E9 F6 10 &"..(....,......
02F1D0: F4 0F 2C 10 29 29 01 B0 00 1B 00 B8 01 AD 20 10 ..,.))........ .
02F1E0: 01 A2 20 0E 2C 0E 01 A2 20 0F 2C 19 1A 01 82 20 .. .,... .,....
02F1F0: 0E 01 C9 00 41 00 C2 01 AC 28 0C 00 00 F3 2C FF ....A....(....,.
02F200: 74 28 0C 00 00 F3 2C 22 44 45 41 44 22 29 29 EF t(....,"DEAD")).
02F210: FF 73 28 FF 12 28 0B 00 00 E1 29 2C 10 29 F4 FF .s(..(....),.)..
02F220: 73 28 FF 12 28 0B 00 00 E1 F4 0F 29 FA 20 1C 3F s(..(......). .?
02F230: 00 2C 10 29 00 06 00 CC 01 C9 00 2E 00 D6 01 A1 .,.)............
02F240: 20 FF 41 EF 19 20 20 EB 20 0C 00 00 F3 EF 22 46 .A.. . ....."F
02F250: 69 6C 65 20 64 6F 65 73 6E 27 74 20 65 78 69 73 ile doesn't exis
02F260: 74 22 01 A0 20 1E 1C 02 00 2D 00 E0 01 A1 20 FF t".. ....-.... .
02F270: 41 EF 19 19 20 EB 20 0C 00 00 F3 EF 22 46 69 6C A... . ....."Fil
02F280: 65 20 69 73 20 6E 6F 74 20 41 53 43 49 49 22 01 e is not ASCII".
02F290: A0 20 1E 1C 02 00 2B 00 EA 01 A1 20 FF 41 EF 19 . ....+.... .A..
02F2A0: 20 20 EB 20 0D 00 00 F3 EF 22 46 69 6C 65 20 72 . ....."File r
02F2B0: 65 61 64 20 65 72 72 6F 72 22 01 A0 20 1E 1C 02 ead error".. ...
02F2C0: 00 20 00 F4 01 A1 20 FF 41 F2 19 0E 20 FA 20 FF . .... .A... . .
02F2D0: 41 F2 17 20 FA 20 FF 41 F2 15 20 EB 20 1E 12 02 A.. . .A.. . ...
02F2E0: 00 38 00 FE 01 0C 00 00 F3 EF 22 4F 75 74 20 6F .8........"Out o
02F2F0: 66 20 6D 65 6D 6F 72 79 22 01 A1 20 0B 00 00 6E f memory".. ...n
02F300: 00 44 49 53 43 20 20 20 20 20 20 20 00 00 00 00 .DISC ....
02F310: 00 00 00 00 00 70 01 00 5E 0A 00 00 00 00 00 00 .....p..^.......
02F320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F340: 5E 0A 00 44 03 0B 00 00 6E E6 5B 0B 00 00 EE 5D ^..D....n.[....]
02F350: 01 9F 20 1E 26 02 01 C8 20 1E E6 00 00 28 00 26 .. .&... ....(.&
02F360: 02 88 01 BF 22 1F 01 01 12 3E 20 22 FF 1C 28 0C ...."....> "..(.
02F370: 00 00 73 E6 5B 0B 00 00 EE 5D 29 22 1F 28 01 22 ..s.[....])".(."
02F380: 39 00 0A 00 01 C0 20 46 69 6C 65 20 53 63 61 6E 9..... File Scan
02F390: 6E 65 72 20 56 31 2E 31 20 28 43 29 31 39 39 30 ner V1.1 (C)1990
02F3A0: 20 20 62 79 20 44 52 41 47 4F 4E 42 52 45 45 44 by DRAGONBREED
02F3B0: 20 57 45 54 57 41 52 45 00 07 00 14 00 01 C0 00 WETWARE........
02F3C0: 3C 00 1E 00 01 C0 20 57 72 69 74 74 65 6E 20 6F <..... Written o
02F3D0: 75 74 20 6F 66 20 50 55 52 45 20 46 52 55 53 54 ut of PURE FRUST
02F3E0: 52 41 54 49 4F 4E 2E 20 50 6C 65 61 73 65 20 69 RATION. Please i
02F3F0: 66 20 79 6F 75 20 77 72 69 74 65 00 37 00 28 00 f you write.7.(.
02F400: 01 C0 20 61 20 70 72 6F 67 72 61 6D 20 77 72 69 .. a program wri
02F410: 74 65 20 69 74 20 47 4F 4F 44 20 41 54 20 4F 4E te it GOOD AT ON
02F420: 43 45 2E 20 53 6F 20 74 68 61 74 20 6F 74 68 65 CE. So that othe
02F430: 72 73 00 3A 00 32 00 01 C0 20 64 6F 6E 27 74 20 rs.:.2... don't
02F440: 68 61 76 65 20 74 6F 20 72 65 2D 69 6E 76 65 6E have to re-inven
02F450: 74 20 74 68 65 20 77 68 65 65 6C 20 6F 6E 6C 79 t the wheel only
02F460: 20 62 65 63 61 75 73 65 20 79 6F 75 00 2D 00 3C because you.-.<
02F470: 00 01 C0 20 72 65 66 75 73 65 64 20 74 6F 20 6D ... refused to m
02F480: 61 6B 65 20 74 68 65 20 77 68 65 65 6C 20 77 6F ake the wheel wo
02F490: 72 6B 61 62 6C 65 2E 2E 2E 00 07 00 46 00 01 C0 rkable......F...
02F4A0: 00 0E 00 64 00 8E 20 61 2D 7A 01 90 20 73 00 2A ...d.. a-z.. s.*
02F4B0: 00 6E 00 93 20 0C 00 00 F3 5B FF 09 28 22 22 29 .n.. ....[..("")
02F4C0: F7 19 14 5D 2C 0C 00 00 73 E6 5B 19 19 5D 2C 0B ...],...s.[..],.
02F4D0: 00 00 6E E6 5B 19 19 5D 00 3E 00 78 00 0B 00 00 ..n.[..].>.x....
02F4E0: 70 72 F4 EF 1C 00 B0 01 9F 20 1E 9A 01 01 0B 00 pr....... ......
02F4F0: 00 6E F3 EF 0E 01 0B 00 00 6E E6 EF 0E 01 0C 00 .n.......n......
02F500: F3 F5 0B 00 00 6E E6 5B 0B 00 00 EE F5 0F 5D F1 .....n.[......].
02F510: 19 19 20 EB 20 1E 1C 02 00 2D 00 08 02 0C 00 00 .. . ....-......
02F520: F3 5B 0B 00 00 6E F3 5D EF 22 22 01 0B 00 00 6E .[...n.].""....n
02F530: F3 EF 0B 00 00 6E F3 F5 0F 01 9F 20 1E 26 02 01 .....n..... .&..
02F540: C8 20 1E DC 00 00 30 00 12 02 9F 20 1E B8 01 01 . ....0.... ....
02F550: BF 22 1F 01 17 50 72 6F 67 72 61 6D 20 65 72 72 ."...Program err
02F560: 6F 72 22 FF 41 22 69 6E 20 6C 69 6E 65 22 E3 01 or".A"in line"..
02F570: C8 20 1E 90 01 00 22 00 1C 02 0B 00 00 6E F3 EF . ...."......n..
02F580: 0B 00 00 6E E6 5B 0B 00 00 EE 5D 01 9F 20 1E 26 ...n.[....].. .&
02F590: 02 01 C8 20 1E E6 00 00 28 00 26 02 88 01 BF 22 ... ....(.&...."
02F5A0: 1F 01 01 12 3E 20 22 FF 1C 28 0C 00 00 73 E6 5B ....> "..(...s.[
02F5B0: 0B 00 00 EE 5D 29 22 1F 28 01 22 0C 00 00 F3 00 ....])".(.".....
02F5C0: 1C 00 30 02 9E 20 0B 00 00 E9 EF 0F 20 EC 20 19 ..0.. ...... . .
02F5D0: 32 01 83 20 1C 19 BD 01 B0 01 C9 00 00 00 1A 43 2.. ...........C
02F5E0: 29 20 31 39 38 39 20 50 6F 77 65 72 48 6F 77 73 ) 1989 PowerHows
02F5F0: 65 2F FF 84 2A 0D 3B 2A FF 83 44 72 61 67 6F 6E e/..*.;*..Dragon
02F600: 74 28 0C 00 00 F3 2C 22 44 45 41 44 22 29 29 EF t(....,"DEAD")).
02F610: FF 73 28 FF 12 28 0B 00 00 E1 29 2C 10 29 F4 FF .s(..(....),.)..
02F620: 73 28 FF 12 28 0B 00 00 E1 F4 0F 29 FA 20 1C 3F s(..(......). .?
02F630: 00 2C 10 29 00 06 00 CC 01 C9 00 2E 00 D6 01 A1 .,.)............
02F640: 20 FF 41 EF 19 20 20 EB 20 0C 00 00 F3 EF 22 46 .A.. . ....."F
02F650: 69 6C 65 20 64 6F 65 73 6E 27 74 20 65 78 69 73 ile doesn't exis
02F660: 74 22 01 A0 20 1E 1C 02 00 2D 00 E0 01 A1 20 FF t".. ....-.... .
02F670: 41 EF 19 19 20 EB 20 0C 00 00 F3 EF 22 46 69 6C A... . ....."Fil
02F680: 65 20 69 73 20 6E 6F 74 20 41 53 43 49 49 22 01 e is not ASCII".
02F690: A0 20 1E 1C 02 00 2B 00 EA 01 A1 20 FF 41 EF 19 . ....+.... .A..
02F6A0: 20 20 EB 20 0D 00 00 F3 EF 22 46 69 6C 65 20 72 . ....."File r
02F6B0: 65 61 64 20 65 72 72 6F 72 22 01 A0 20 1E 1C 02 ead error".. ...
02F6C0: 00 20 00 F4 01 A1 20 FF 41 F2 19 0E 20 FA 20 FF . .... .A... . .
02F6D0: 41 F2 17 20 FA 20 FF 41 F2 15 20 EB 20 1E 12 02 A.. . .A.. . ...
02F6E0: 00 38 00 FE 01 0C 00 00 F3 EF 22 4F 75 74 20 6F .8........"Out o
02F6F0: 66 20 6D 65 6D 6F 72 79 22 01 A1 20 0B 00 00 6E f memory".. ...n
02F700: 00 73 E6 5B 0B 00 00 6E E6 5D EF 22 20 22 01 0B .s.[...n.]." "..
02F710: 00 00 6E F2 EF 0E 00 3D 00 82 00 BF 22 18 12 53 ..n....=...."..S
02F720: 43 41 4E 2E 42 41 53 20 54 65 78 74 20 46 69 6C CAN.BAS Text Fil
02F730: 65 20 53 63 61 6E 6E 65 72 1F 3E 01 44 52 41 47 e Scanner.>.DRAG
02F740: 4F 4E 42 52 45 45 44 20 57 45 54 57 41 52 45 18 ONBREED WETWARE.
02F750: 22 01 84 00 5B 00 8C 00 BF 22 1F 01 18 4E 6F 77 "...[...."...Now
02F760: 20 65 6E 74 65 72 20 61 6C 6C 20 66 69 6C 65 73 enter all files
02F770: 20 79 6F 75 20 77 69 73 68 20 74 6F 20 76 69 65 you wish to vie
02F780: 77 2E 20 20 46 69 6E 69 73 68 20 77 69 74 68 20 w. Finish with
02F790: 52 45 54 55 52 4E 2E 20 20 44 6F 6E 27 74 20 6D RETURN. Don't m
02F7A0: 69 6E 64 20 6D 69 73 74 61 6B 65 73 2E 22 00 47 ind mistakes.".G
02F7B0: 00 96 00 D6 20 0C 00 00 73 E6 5B 0B 00 00 6E E6 .... ...s.[...n.
02F7C0: 5D EE 22 22 01 0B 00 00 6E E6 EF 0B 00 00 6E E6 ].""....n.....n.
02F7D0: F4 0F 01 A6 20 A3 22 1F 01 19 12 46 69 6C 65 6E .... £"....Filen
02F7E0: 61 6D 65 3A 20 22 2C 0C 00 00 73 E6 5B 0B 00 00 ame: ",...s.[...
02F7F0: 6E E6 5D 01 D5 00 43 00 A0 00 0B 00 00 6E E6 EF n.]...C......n..
02F800: 0B 00 00 6E E6 F5 0F 01 BF 22 1F 01 18 14 41 74 ...n....."....At
02F810: 74 65 6D 70 74 69 6E 67 20 74 6F 20 72 65 61 64 tempting to read
02F820: 20 69 6E 20 66 69 6C 65 73 2E 2E 2E 1A 22 FF 03 in files...."..
02F830: 28 0E 29 22 4F 18 18 22 00 15 00 AA 00 9E 20 0B (.)"O.."...... .
02F840: 00 00 EE EF 0F 20 EC 20 0B 00 00 6E E6 00 40 00 ..... . ...n..@.
02F850: B4 00 20 20 0C 00 00 F3 5B 0B 00 00 6E F3 F4 0F .. ....[...n...
02F860: 5D EF FF 75 28 22 7F 7F 20 22 F4 FF 1C 28 0C 00 ]..u(".. "...(..
02F870: 00 73 E6 5B 0B 00 00 EE 5D 29 F4 22 20 22 F4 FF .s.[....])." "..
02F880: 7B 28 19 4B 2C 1C 7F 00 29 2C 19 4F 29 00 4F 00 {(.K,...),.O).O.
02F890: BE 00 20 20 0C 00 00 F3 5B 0B 00 00 6E F3 5D EF .. ....[...n.].
02F8A0: 22 22 01 0B 00 00 6E E6 5B 0B 00 00 EE 5D EF 0B ""....n.[....]..
02F8B0: 00 00 6E F3 01 0B 00 00 6E F3 EF 0B 00 00 6E F3 ..n.....n.....n.
02F8C0: F4 10 01 BF 22 1F 01 01 12 3E 20 22 FF 1C 28 0C ...."....> "..(.
02F8D0: 00 00 73 E6 5B 0B 00 00 EE 5D 29 3B 00 28 00 C8 ..s.[....]);.(..
02F8E0: 00 20 20 B2 20 9C 20 A0 20 1E D6 01 01 B6 20 0C . . . . ..... .
02F8F0: 00 00 73 E6 5B 0B 00 00 EE 5D 01 B2 20 9C 20 A0 ..s.[....].. . .
RESULT OF SEARCH :
PRO=131 CHEA=0 COD=33 MUSI=0 COP=2 GRA=160 WRIT=115 198=1 199=1 STARTER=0 KBI=0 CAAV=0 L.TOURNIER=0
EXTENDED CPC DSK File SAMdisk160220( N8255 TXTD 82552 TXTK BDOS TXT3
CAS TXTt !"#$%&'()*CONNECT TXT/+,-./0CONTCHARTXT1234CRTC TXT56789ABCDCRTC
TXT/EFGHIJEXPAN TXTKLFINDER DATMNOPGATE TXTtQRSTUVWXYZGRA TXTGabcd
efghHARDWARETXTijHI-KERN TXTJklmnopqrstINDIRECTTXThuvwxyzIOPORTS TXTcan functio
n. Mode 0 - Basic Input/Output Mode 1 - Strobed Input/Output **NOT USED BY CPC*
* Mode 2 - Bi-Directional Bus **NOT USED BY CPC** In some of these modes port
C is used as a control/status port for port A or B. It can be used to confirm
when data transfer may take place, and reflect any other flags. The 8255 PPI is
therefore supplied with the added option for the user to set or reset any indi
vidual bits in port C. The I/O status, mode of operation and bit setting is de
fineKERNAL TXTKERNAL TXTdKEYMAP TXT)£KM TXTKDISC d by the 8255 PP
I control byte. (The control byte is accessed using port &F7xx.(8255 Control po
rt)) The ports may be accessed separately by the CPU. Port A is accessed using
port &F4xx. Port B is accessed using port &F5xx. Port C is accessed using port
&F6xx. NOTE Mode 0 operation Mode 0 operation does not require other ports t
o be used to control data transfer. Data may only be sent to a port if the port
is defined as output, and data may only be read from a port when the port is s
et to input. Using the 8255 Ports -------------------- When writing to a po
rt 1) Make suretheport is operating as output. (This is done by sending a c
ontrol byte to port &F7xx). 2) Write the data to the port. 3) Return the port to
it's original I/O Status. When reading from a port 1) Make sure the port is o
perating as input. (This is done by sending a control byte to port &F7xx). 2
) Read the data from the port. 3) Return the port to it's original I/O Status.
8255 PPI Control Byte --------------------- This byte controls the Input/Outp
ut (I/O) status and operating mode of each port. It also has a secondary funct
ion which allows the user to set or reset a particular bit of port C. To send
a control byte to the 8255, simply sent the byte to port &F7xx. (NOTE The contr
ol byte can only be written, it cannot be read.) The f8255 Parallel Peripheral
Interface ---------------------------------- The 8255 is a general purpose inp
ut output chip. It is connected to the PSG, keyboard and cassette recorder. Pr
ogramming the 8255 -------------------- The 8255 has 3 8-bit ports (A,B and C),
each of which can have a different I/O Status (i.e. input or output). Port C c
an also be programmed to operate in two halves. (As two separate 4-bit ports).
There are 3 basic modes of operation under which the ports Nunction to be ex
ecuted by the 8255 is dependant on the state of bit 7. If bit 7 is 1, the rema
ining bits are used to define the I/O status, and operating mode of each port.
If bit 7 is 0, the remaining bits are used to determine what bit is set (set
to 1) or reset (set to 0) of port C. Configuration control byte -------------
------------- When bit 7 is set to 1, the command byte operates in the followin
g way Bit 7e may crash. (The firmware expects the operating modes to be the s
ame as given below). Port A (Port address&F4xx) (I/O Status Output) (Operating
mode 0) ------ Bit 7 PSG data Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Port B (Port address &F5xx) (I/O Status Input) (Operating mode 0) ------ B
it7Cassette read data Bit 6 Printer configuration 1 Not-ready, 0 Ready Bit 5
Expansion peripheral Control byte function (1Configuration control byte) Bit 6
Operating Mode (Port A and Port C upper) Bit 5 Bit 4 Port A I/O Status 0 O
utput, 1 Input Bit 3 Port C (upper) I/O Status 0 Output, 1 Input Bit 2 Opera
ting Mode selection (Port B and Port C lower) Bit 1 Port B I/O Status 0 Output,
1 Input Bit 0 Port C (lower) I/O Status 0 Output, 1 Input Port A and Port C (
upper) Operating mode -------------------------------------- Bit 6Bit 5Mode sel
ection --------------------detect 1 Expansion peripheral present, 0 Not present
Bit 4 Screen refresh frequency (defined by hardware) 1 50Hz 0 60Hz Bit 3 C
omputer name on power-up. Bit 2 Bit 1 Bit 0 VSYNC status (Frame flyback statu
s) 1 VSYNC occured, 0 no VSYNC Table showing Computer name on power-up Bit 3
Bit 2 Bit 1 Computer name ----------------------------------------
0 0 0 Isp 0 0 1 Triumph 0 1
0 Saisho 0 1 1 -------------------------- 0 0Mode 0
0 1Mode 1 1 0Mode 2 1 1Mode 2 Port B and Port C (lower) operating mod
e ---------------------------------------- Bit 2Mode Selection ----------------
-------------- 0Mode 0 1Mode 1 Bit Set/Reset control byte --------------
------------ When bit 7 is set to 0, the control byte operates in the following
way Bit 7 Control byte function (0Bit Set/Reset c Solavox 1 0
0 Awa 1 0 1 Schneider 1 1 0 O
rion 1 1 1 Amstrad Port C (Port address &F6xx) (I/O Stat
us Output) (Operating mode 0) ------ Bit 7 PSG control Bit 6 Bit5 Cassette w
rite data Bit 4 Cassette motor control 1 Turn motor on, 0 Turn motor of
f Bit 3 Keyboard line to be scanned (0-10) Bit 2 Bit 1 Bit 0 ontrol byte)
Bit 6 Not used. (send 0) Bit 5 Bit 4 Bit 3 Bit to change. Bit 2 Bit 1 B
it 0 Bit operation 1 Set bit (make bit1), 0 Reset bit (make bit0) Table to show
how bit to change is coded Bit 3Bit 2Bit 1Bit selected -----------------------
------------------------------------- 0 0 0Bit 0 0 0 1Bit 1 0 1 0Bit 2
0 1 1Bit 3 1 0 0Bit 4 1 0 1Bit 5 1 1 0Bit 6 1 1 1Bit 7 Program
ming Examples -------------------- 1) Using the control byte a) Setting bit 7
of port C to 1, LD B,&F78255 Control port LD A,%00001111Bit Set/reset function
OUT (C),ASend it to 8255 RET b) Set port A to input, operating in mode 0, port
B to output, operating in mode 0 and port C to input, operating in mode 0. LD
B,&F78255 Control port LD A,%10011001Configuration function OUT (C),ASend it to
8255 RET Port Usage ---------- For each port, the port address (at which the
port can be accessed) it's normal I/O Status (unless changed by the user), it'
s operating mode (unless changed by the user) are given. For more information
on a particular function of each port, see the appropiate part of the CPC Guide
. NOTE If you are using the firmware, always return the operating modes and I/
O status of the ports used to their status below, otherwise the firmwar N 2)
Using port A/B/C, In this example, port A is set to output, port B is set to in
put, and port C is set to output, and they are all operating in mode 0. We wil
l only be using port A for these examples. a) Reading from port A, Set port A
to input LD B,&F78255 Control port LD A,%10010010Config
uration function OUT (C),ASend to 8255 LD B,&F4Port A port address IN E,(C)Get
byte from port ction. Mode 0 - Basic Input/Output Mode 1 - Strobed Input/Outpu
t **NOT USED BY CPC** Mode 2 - Bi-Directional Bus **NOT USED BY CPC** In some
of these modes port C is used as a control/status port for port A or B. It
can be used to confirm when data transfer may take place, and reflect any ot
her flags. The 8255 PPI is therefore supplied with the added option for the user
to set or reset any individual bits in port C. The I/O status, mode of operati
on and bit setting is defined by the 8255 PPIRegister E holds value from port
Return port I/O status and operating modes to previous settings. LD B,&F78255
Control port LD A,%10000010Configuration function OUT (C),ASend to 8255 RET
b) Writing to port A, Set port A to output (Note the next few
lines are not necessary as port A is already acting as output, however it is giv
en here just to make the example more understandabl control byte. (The contro
l byte is accessed using port &F7xx.(8255 Control port)) The ports may be a
ccessed separately by the CPU. Port A is accessed using port &F4xx. Port B is a
ccessed using port &F5xx. Port C is accessed using port &F6xx. NOTE Mode 0 ope
ration Mode 0 operation does not require other ports to be used to control d
ata transfer. Data may only be sent to a port if the port is defined as output,
and data may only be read from a port when the port is set to input. e) LD B
,&F78255 Control port LD A,%10000010Configuration function OUT (C),ASend to 8255
LD B,&F4port A port address Register E holds value to
put into port LD E,&FFData to put into port OUT (C),ASend to port A Return po
rt I/O status and operating modes to previous settings. LD B,&F78255 Control po
rt LD A,%10000010Configuration function OUT (C),A RET trol port LD A,%10000010Co
nfiguration functio Using the 8255 Ports -------------------- When writing to
a port 1) Make sure the port is operating as output. (This is done by sending
a control byte to port &F7xx). 2) Write the data to the port. 3) Return the po
rt to it's original I/O Status. When reading from a port 1) Make sure the port
is operating as input. (This is done by sending a control byte to port &F7x
x). 2) Read the data from the port. 3) Return the port to it's original I/O Stat
us. 8255 PPI Control Byte --------------------- This byte controls the Input
/Output (I/O) status and operating mode of each port. It also has a secondary f
unction which allows the user to set or reset a particular bit of port C. To se
nd a control byte to the 8255, simply sent the byte to port &F7xx. (NOTE T
he control byte can only be written, it cannot be read.) The function to
be executed by the 8255 is 8255 Parallel Peripheral Interface ----------------
------------------ The 8 Dqpc'OOpOAOpOOpppOOOOOABAOpOOOOpOOOOOOBpOOOOOOO Ndepe
ndant on the state of bit 7. If bit 7 is 1, the remaining bits are used to de
fine the I/O status, and operating mode of each port. If bit 7 is 0, the remain
ing bits are used to determine what bit is set (set to 1) or reset (set to 0)
of port C. Configuration control byte -------------------------- When bit 7
is set to 1, the command byte operates in the following way Bit 7 Control byte
function (1Configuration control b which the port can be accessed) it's norma
l I/O Status (unless changed by the user), it's operating mode (unless change
d by the user) are given. For more information on a particular function of e
ach port, see the appropiate part of the CPC Guide. NOTE If you are using the f
irmware, always return the operating modes and I/O status of the ports used to
their status below, otherwise the firmware may crash. (The firmware expects th
e operating modes to be the same as given below). Port A (Port ayte) Bit 6 O
perating Mode (Port A and Port C upper) Bit 5 Bit 4 Port A I/O Status
0 Output, 1 Input Bit 3 Port C (upper) I/O Status 0 Output, 1 Input
Bit 2 Operating Mode selection (Port B and Port C lower) Bit 1 Port B I/O Statu
s 0 Output, 1 Input Bit 0 Port C (lower) I/O Status 0 Output, 1
Input Port A and Port C (upper) Operating mode -------------------------------
------- Bit 6 Bit 5 Mode selection ------------------------
-ddress&F4xx) (I/O Status Output) (Operating mode 0) ------ Bit 7 PSG data Bit
6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Port B (Port address &F5xx) (I/
O Status Input) (Operating mode 0) ------ Bit 7 Cassette read data Bit 6 Print
er configuration 1 Not-ready, 0 Ready Bit 5 Expansion peripheral detec
t 1 Expansion peripheral present, 0 Not present Bit 4 Screen refresh fr
equency (defi--------------------- 0 0 Mode 0 0
1 Mode 1 1 0 Mode 2 1
1 Mode 2 Port B and Port C (lower) operating mode -------
--------------------------------- Bit 2 Mode Selection --------------
---------------- 0 Mode 0 1 Mode 1 Bit Set/Reset
control byte -------------------------- When bit 7 isned by hardware)
1 50Hz 0 60Hz Bit 3 Computer name on power-up. Bit 2 Bit 1 Bit 0 VSYNC s
tatus (Frame flyback status) 1 VSYNC occured, 0 no VSYNC Table showing
Computer name on power-up Bit 3 Bit 2 Bit 1 Computer name ----------
------------------------------ 0 0 0 Isp 0 0
1 Triumph 0 1 0 Saisho 0 1 1 S
olavox 1 0 0 Awa 1 0 1 Schneider set
to 0, the control byte operates in the following way Bit 7 Control byte fun
ction (0Bit Set/Reset control byte) Bit 6 Not used. (send 0) Bit 5 Bit 4 Bi
t 3 Bit to change. Bit 2 Bit 1 Bit 0 Bit operation 1 Set bit (make b
it1), 0 Reset bit (make bit0) Table to show how bit to change is coded Bit 3
Bit 2 Bit 1 Bit selected --------------------------
---------------------------------- 0 0 0
Bit 1 1 0 Orion 1 1 1 Amstrad Por
t C (Port address &F6xx) (I/O Status Output) (Operating mode 0) ------ Bit 7 P
SG control Bit 6 Bit 5 Cassette write data Bit 4 Cassette motor control
1 Turn motor on, 0 Turn motor off Bit 3 Keyboard line to be scanned (0-10)
Bit 2 Bit 1 Bit 0 Programming Exa 0 0 0 1
Bit 1 0 1 0 Bit 2 0
1 1 Bit 3 1 0 0
Bit 4 1 0 1 Bit 5 1
1 0 Bit 6 1 1
1 Bit 7 Port Usage ---------- For each port, the port address (
at Nmples -------------------- 1) Using the control byte a) Setting bit 7 of
port C to 1, LD B,&F7 8255 Control port LD A,%00001111
Bit Set/reset function OUT (C),A Send it to 8255 RET b) Set port
A to input, operating in mode 0, port B to output, operating in mode 0 a
nd port C to input, operating in mode 0. LD B,&F7 8255 Control p
ort LD A,%10011001 Configuration function OUT (C),A Send
it to 8255 RET 2) Using port A/B/C, In this example, port A is set to outpu
t, port B is set to input, and port C is set to output, and they are all operati
ng in mode 0. We will only be using port A for these examples. a) Reading from
port A, Set port A to input LD B,&F7 8
255 Control port LD A,%10010010 Configuration function OUT (C),A
Send to 8255 LD B,&F4 Port A port address INError codes
If bit 6 0 then the error numbers are as follows &0E File is not open as
expected &0F Hard end of file &10 Bad command (incorrect filename) &11
File exists. &12 File doesn't exist. &13 Directory full &14 Disc
is full. &15 Disc has been changed with files open. &16 File is read-on
ly &1A Soft end of file &00 User has hit escape If bit 6 1 then the
error is as follows Bit 5 Data Error (data corruption on disc) Bit 4 O
verrun Error E,(C) Get byte from port Re
gister E holds value from port Return port I/O status a
nd operating modes to previous settings. LD B,&F7
8255 Control port LD A,%10000010 Configuration function OUT (
C),A Send to 8255 RET b) Writing to port A,
Set port A to output (data not supplied to FDC quick
enough) Bit 3 Drive not ready (disc not in drive) Bit 2 No data (sector not
found) Bit 1 not writable (disc is write protected) bit 0 address mark m
issing (cannot determine the format for the data i
n the sector). Error status buffer ------------------- The first value is the
number of bytes recieved during the result phase of the FDC (as described
elsewhere) disc controller, those following are the bytes recieved. (For a fu
(Note the next few lines are not necessary as port A
is already acting as output, however it is given here j
ust to make the example more understandable) LD B,&F7
8255 Control port LD A,%10000010 Configuration function O
UT (C),A Send to 8255 LD B,&F4 port A port address
Register E holds value to put into port LD E,&FF
Data to pll description see notes on FDC). -------------------------
-------------------------------------------- BIOS SET MESSAGE - Set messages to
be displayed or not. Entry If messages are to be enabled A &0 If messages
disabled A &FF Exit A previous state HL and flags corrupt. ---------------
------------------------------------------------------ BIOS SETUP DISC - Setup
disc information Entry HL address of parameter block Exit AF,BC,DE,HL corru
pt. Notes Parameter block Byte Dut into port OUT (C),A Send
to port A Return port I/O status and operating modes
to previous settings. LD B,&F7 8255 Contro
l port LD A,%10000010 Configuration function OUT (C),A RET urpose inp
ut output chip. 10000010Configuration functio port A port address
Register E holds value to put into port LD E,&FF
Data to p Nefault Function 0,1 50 Motor on timeout
(20 millisecond units) 2,3 250 Motor off timeout (20 millisecon
d units) 4 175 Write off time (10 microsecond units) 5 1
5 Head settle time (1 millisecond units) 6 12 St
ep rate time (1 millisecond units) 7 1 Head unload delay
8 1 bits 7-1 - head load delay see info on F
DC 1 bit 0 - non-D Other flags corrupt Notes Format h
eader data This is the same as the format data sent to the FDC for its form
at command. The format header data consists of entries of 4 bytes. An entry
is needed per sector. Each entry has the form Byte 0 track number 1
head number (side) 2 sector number 3 sector size (0 - 128 byt
es, 1 - 256 bytes, 2 - 512 bytes, etc) (for special formats it is not necessar
y for the track number to be the same as the track the drive readinMA mode
SPECIFY command The programmed values are used for both drives. -------
-------------------------------------------------------------- BIOS SELECT FORM
AT - Initilise data parameters for selected format Entry A &41, &C1 or &01 &
41 - System format &C1 - Data format &01 - IBM format E drive number (A 0, B
1) Exit AF,BC,DE,HL corrupt. Notes Bytes 0-21 are reset to the values for
each particular format. Bytes 22-24 remain untouched. If the user wants to use
a special formg/writing head is located on, also you can have different sector
numbers and head values). The Expanded disc parameter block must be initialised
for the required format. -----------------------------------------------------
----------------- BIOS MOVE TRACK - Move to specified track Entry E drive nu
mber D track number Exit If moved OK Carry true. A 0 HL unchanged. If move
failed Carry false. A error status byte HL address of error status buffer O
ther flags corrupt. Notes The readat, they must poke into the extended disc pa
rameter block directly. Make sure, auto select format NO, otherwise, when a ne
w disc is put in and operated on, the disc parameter block will change. -------
-------------------------------------------------------------- BIOS READ SECTOR
- Read a sector into memory Entry HL address to put sector data E drive num
ber (0-1) D track number (0-42) C sector number (any - depends on format) Exi
t If sector read OK Carry true. A 0. If failed to read/write/format routine
s move automatically to the correct track. -------------------------------
--------------------------------------- BIOS GET DR STATUS - Get status registe
r 3 of uPD765A disc controller Entry A drive number Exit If carry true A
drive status byte as below (Status register 3 of FDC). HL unchanged. If carry f
alse HL address of error status buffer, second byte status byte as below
A corrupt Other flags corrupt Notes Bit Function 7 undefined 6
sector correctly Carry false. A error status byte (see above) HL address of
error status buffer (see above) Other flags corrupt. -------------------------
-------------------------------------------- BIOS WRITE SECTOR - Write a sector
to disc Entry HL address to get sector data from E drive number (A 0, B 1)
D track number C sector number Exit If sector written OK Carry true. A 0
HL unchanged. If sector wasn't written correctly Carry false. A error byte
flag to indicate if drive is write protected (1write
protected) 5 Flag to indicate if drive ready (1ready) 4 Fla
g to indicate if head is on track 0 (1at track 0) 3 undefined 2 head
/side (0) 1 0 0 selected drive (A0, B1) If any of the bits 4-6 are
set (1) then that error has occured. -----------------------------------------
---------------------------- BIOS SET RETRY COUNT - Set the number
of retries for (see above) HL address of error st
atus buffer Other flags corrupt. ---------------------------------------------
------------------------- BIOS FORMAT TRACK - Format a track (initialise a
track for data storage) Entry HL address of format he
ader data E drive number D track number Exit conditions If track formatted O
K Carry true. A 0 HL unchanged.. If failed to format track correctly Carry f
alse. A error status byte HL address of error status buffer N read/
write/format commands Entry A new value for retry count Exit A old value H
L and flags corrupt. Notes The default value is 16. -------------------------
-------------------------------------------- bit 6 0 then the error numbers a
re as follows &0EFile is not open as expected &0FHard end of file nctio-------
-------------------------- BIOS SET RETRY COUNT - Set the number
of retries for te errors. The default half zero len
gth and precompensation settings are 333 microseconds (1000 baud) and 25 micros
econds respectivly. The commonly used faster setting is 167 microseconds (2000
baud) with 50 microseconds of precompensation. These values have been determine
d after extensive testing and the user is advised to stick to them. --------
------------------------------------------------------------- &BC6B - CAS NOISY
- Allow messages to be printed Entry If messages are to be enabled A
0 If messages are to be disabled A 0 Exit AF corrupt. Notes T
he prompt messages such as 'Press PLAY then any key" are turned off. Error mess
ages such as 'Read error a' etc are not. ------------------------------------
--------------------------------- &BC6E - CAS START MOTOR - Start cassette moto
r. Entry None Exit If the motor turned on OK Carry true. If th
e user hit escape Carry false. A previous motor state OtCAS r 9
9-------- $$ r7&BC65 - CAS INITIALISE - Initialise the cassette manager Entr
y None Exit AF,BC,DE,HL corrupt. Notes All streams are marked clo
sed. The default write speed is set up. The prompt messages are turned on. Th
e cassette motor is turned off (except on V1.0) -----------------------------
---------------------------------------- &BC68 - CAS SET SPEED - Set the wriher
flags corrupt. Notes The previous state may be sent to CAS RESTORE MOTOR.
-------------------------------------------------------------------- &BC7
1 - CAS STOP MOTOR - Stop cassette motor. Entry None Exit If motor
was turned off OK Carry true. If the user hit escape Carry false A
previous state Other flags corrupt. ----------------------------------------
----------------------------- &BC74 - CAS RESTORE MOTOR - Restore previous st
ate of motor Entry te speed Entry HL length of half a zero bit A pre
compensation to apply Exit AF and HL corrupt. Notes The speed suppli
ed is the length of a half zero bit in mircoseconds. A one bit is written twice
the length of a zero bit. The speed supplied can be related to the average bau
d rate (assuming equal numbers of ones and zeros) by the following equations
Average baud rate 1 000 000/(3*half zero length) 333 333/Half zero length
The half zero length must be bet A previous state Exit If motor set
as appropiate was OK Carry true. Escape was pressed Carry false. A
and other flags corrupt. ----------------------------------------------------
----------------- &BC77 - CAS IN OPEN - Open a file for input Entry B
length of filename HL address of filename DE 2K buffer to use Exit If
the file was opened OK Carry true. Zero false. HL address of a buffer cont
aining the file header DE data location (from header) ween 130 and 480 microse
conds. Values outside these values will cause read and write errors. The pre
compensation supplied is the extra length, in microseconds, to add to half a on
e bit and to subtract from half a zero bit under certain conditions. The amount
of precompensation required varies with the speed (more is required at higher
baud rates). The precompensation may lie between 0 and 255 microseconds altho
ugh the higher settings are not useful as they will cause read and wri N BC l
ength of file (from header) A file type If stream is in use Carry false.
Zero false. BC,DE,HL corrupt. V1.0 ---- A corrupt. V1.1 ---- A err
or number (&0E) If user hit escape Carry false. Zero true. BC,DE,HL corr
upt. V1.0 ---- A corrupt V1.1 ---- A error number (&00) IX and o
ther flags corrupt. Notes The 2k buffer supplied is used to store the cont
ents of a block of the file. It will remain in use until either CAS IN CLOSE or
CAS IN A possible to direct reading (by CAS IN DIRECT). ------------------
--------------------------------------------------- &BC83 - CAS IN DIRECT - Re
ad a input file into store. Entry HL address to put the file (anywhere in
ram) Exit If file was read OK Carry true. Zero false. HL entry addre
ss A corrupt. If file was not opened correctly Carry false. Zero false.
HL corrupt. V1.0 ---- A corrupt. V1.1 ---- A error number (&0E) If u
ser hit escape Carry false BANDON is called. The buffer may be stored anywhe
re, even under a ROM. A filename of 0 characters is treated to mean, load th
e next file from cassette. The filename is shortened to 16 characters if it
is longer than 16 characters.If it is less than 16 characters it is padded with
&00 to 16 characters. The ASCII characters are turned to upper case. When t
he file is opened for reading the first block is read. The address of the area
where the header from this block is sZero true. HL corrupt. V1.0 ---- A cor
rupt. V1.1 ---- A error number (&00) DE,IX,BC and other flags corrupt.
Notes The stream must ne newly opened (by CAS IN OPEN). If the stream has
been used for character access then it is not possible to directly read the f
ile. It is not possible to read the file into store more than once. This will c
orrupt the copy of the file read. The buffer of data read when the stream was
opened is copied to its correct position and thtored is passed back to the us
er so that the information can be extracted from it. The user is not allowed to
write to it, only read from it.This area will lie in the central 32k of ram. T
he cassette manager uses some fields in the header for its own purposes so thes
e may vary. -----------------------------------------------------------------
---- &BC7A - CAS IN CLOSE - Close input file properly. Entry None Exi
t If stream was closed OK Carry true. A corrupt. If the remainder of t
he file is also read. -------------------------------------------------------
-------------- &BC86 - CAS RETURN - Put back the last character read Entry
None Exit All preserved. Notes This is only possible if the file
has been read in by using CAS IN CHAR. At least one character must have been re
ad since a) the stream was opened b) the last character was returned. c)
the last test for eof was made. ---------------------------------------------
------e stream was not open Carry false V1.0 ---- A corrupt. V1.1 ---
- A error number (&0E) BC,DE,HL and other flags corrupt. ----------------
----------------------------------------------------- &BC7D - CAS IN ABANDON -
Close input file straight away Entry None Exit AF,BC,DE,HL corrupt.
Notes This is meant to be used after an error has occured. -----------
---------------------------------------------------------- &BC80 - CAS IN CHAR
- Read a character from the in------------------ &BC89 - CAS TEST EOF - Check
if end of file has been reached Entry None Exit If the end of file
was not found Carry true. Zero false. A corrupt. If end of file was found
Carry false. Zero false. V1.0 ---- A corrupt. V1.1 ---- A error numb
er (&0E - stream is not open or &0F - end of file) If the user hit escape
Carry false. Zero true. V1.0 ---- A corrupt. V1.1 ---- A error number (
&00) IX and other flags corrupt. Calling this rouput file Entry None
Exit If character was read OK Carry true. Zero false. A character re
ad If end of file was found Carry false. Zero false. V1.0 ---- A corr
upt. V1.1 ---- A error number (&0E) If user hit escape Carry false.
Zero true. V1.0 ---- A corrupt. V1.1 ---- A error number (&00) IX an
d other flags corrupt. Notes Once the first character has been read from a
file it can only be used for character by character access. It is not Ntine p
uts the stream into character input mode. It is not possible to use direct read
ing after this routine has been called. It is not possible to call CAS RETURN
after this routine has been called. A character must be read first. -------
---------------------------------------------------------------- &BC8C - CAS O
UT OPEN - Open a file for output Entry B length of filename HL address
of filename DE address of 2k buffer Exit If the file was opened OK Ca
rry true. as expected Carry false. Zero false. A &0E (error number) If
command failed Carry false. Zero true. A error number BC,DE,HL,IX and
other flags corrupt. Notes After writing the file it must be closed with
CAS OUT CLOSE for the file to make sure the file is written to disk. -------
--------------------------------------------------------------- &BC9B - CAS C
ATALOG - Generate a catalogue from cassette Entry DE address of 2k buffer
to use. Exit If the cataZero false. HL address of a buffer containing t
he header that will be written to each block. A corrupt. If stream is in us
e Carry false. Zero false. HL corrupt. V1.0 ---- A corrupt. V1.1 -
--- A error number (&0E) If user hit escape Carry false. Zero true. HL
corrupt. V1.0 ---- A corrupt V1.1 ---- A error number (&00) BC,
DE,IX and other flags corrupt. ----------------------------------------------
------------------------- &BC8F - CAS OUT CLOSE - Clogue went OK Carry true
. Zero false. A corrupt. If the stream was in use Carry false. Zero false.
V1.0 ---- A corrupt. V1.1 ---- A &0E (error number) BC,DE,HL,IX an
d other flags. Notes The read stream must be closed before this routine is
called. The prompt messages are turned on. When the catalog is ussued, th
e directory is read into memory. Only those files in the current user and/or ar
e set to directory are put into the buffer. The buffer gives all the filelose t
he output file correctly. Entry None Exit If stream was closed OK
Carry true. Zero false. A corrupt. If the stream was not open Carry fals
e. Zero false. V1.0 ---- A corrupt. V1.1 ---- A error number (&0E) I
f the user hit escape Carry false. Zero true. V1.0 ---- A corrupt. V1.
1 ---- A error number (&00) IX,BC,DE,HL and other flags corrupt. -------
---------------------------------------------------------------- &BC92 - CAS O
UT ABANDON - Closes matching those criteria, and the names are in alphabetical
order. If no files match this, the buffer will start with a zero. The cata
log format Entry 1,Entry 2... Where entry format is Byte 0Marker (&FF
) Byte 1-12Filename 8 character name part padded with spaces 3 character
extension part padded with spaces Extension part Byte 0Bit 7 1 Read Only,
0 Read write. Byte 13Size of file in K. Byte 14Marker (&00)
----------------- output file immediately. Entry None Exit AF,BC,D
E,HL corrupt. Notes This is intended to be used after an error has occured
. ----------------------------------------------------------------------- &
BC95 - CAS OUT CHAR - Write a character to the output file Entry A charac
ter Exit If character was written OK Carry true. Zero false. A corrup
t. If the file was not open as expected Carry false. Zero false. V1.0
---- A corrupt. V1.1 ---- A error ----------------------------------------
-------------- &BC9E - CAS WRITE - Write a headerless file to tape. Entry
HL address of data to write DE length of data to write A sync character t
o write at end of the leader Exit If the record was written OK Carry tr
ue. A corrupt. If an error occured Carry false. A error code BC,DE,HL,
IX corrupt. Notes A length of 0 is taken to mean 65536 bytes. The data to
be written may lie anywhere, even under a rom. The sync cnumber (&0E) If
user hit escape Carry false. Zero true. V1.0 ---- A corrupt. V1.1 --
-- A error number (&00) A,IX and other flags corrupt. -------------------
---------------------------------------------------- &BC98 - CAS OUT DIRECT -
Write the output file from store. Entry HL address of the data to write
DE length of data to write BC entry address A file type Exit If file
was written OK Carry true. Zero false. A corrupt. If the stream is not o
pen Nharatcre is used to distinguish header records (sync is &2c) from data re
cords (sync is &16). Other sync characters could be used but the resulting reco
rd would require special action to be taken to read it. The error codes are
0 - The escape key was pressed 1 - The cassette manager was unable to get ba
ck to writing a bit fast enough. The cassette motor is turned on by this
routine and then restored to its original status. Interupts are disabled an
d the sound manager is CONNECTORS NC -Pin not connected A bar above the pin
name, indicates that the signal is active when low, or a 0V is applied. GND- 0V
Printer Port As seen from the rear 17 16 15 14 13 12 11 10 9 8 7 6
5 4 3 2 1 - - - - - - - - - - - - -- - - - - - - - - -
- - - - - - -- - - - 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20
19 1Strobe 2D0shut down so that no note lasts for the duration of the record
being loaded. --------------------------------------------------------------
-------- &BCA1 - CAS READ - Read a record from tape Entry HL address t
o put data DE length of data A sync character expected at end of leader.
Exit If record was read OK Carry true. A corrupt. If an error occured
Carry false. A error code BC,DE,HL,IX and other flags corrupt. Notes
It is not necessary to read all the 3D1 4D2 5D3 6D4 7D5 8D6 9D7 10NC
11Busy 12NC 13NC 14Gnd 15NC 16Gnd 17NC 19Gnd 20NC 21Gnd 22NC 23Gnd 2
4NC 25Gnd 26NC 27Gnd 28NC 29Gnd 30NC 31Gnd 32NC 33Gnd Joystick Sock
et As seen from the rear
/ 12345 / * * *data bytes in the record.
If a length of less than that written is specified only that number of bytes
will be read. Trying to read more bytes than those that have been written will
give an error (usually overrun). See CAS WRITE One extra error can occur
2 - A CRC failure was detected. -------------------------------------------
--------------------------- &BCA4 - CAS CHECK - Check a record on cassette wi
th data in memory Entry HL start address of data to read DE *
* / / * *
* * / 6 7 8 9 / / 1Up 2Down 3Left 4Right
5Spare(Extra fire button for AMX mouse) 6Fire 2 7Fire 1 8Common 9Common 2
Stereo Socket right
/ length of data A sync character Exit If recor
d was checked OK Carry true. A corrupt. If an error occured Carry false
. A error code. BC,DE,HL,IX and other flags corrupt. Notes See CAS REA
D One extra code may be returned by this routine. 3 - The data is differen
t to that in memory ---------------------------------------------------------
------------- $$ows &0EFile is not open as expected &0FHard end of file nctio
-- --
left gnd Monitor S
ocket seen from rear /
/ 5 1 * 6 * *
* * N 4 *3 2 / /
1Red (Analogue signal) 2Green (Analogue signal) 3Blue (Analogue signal) 4Co
mposite Sync (combined Horizontal and Verical sync signals) 5Gnd 6 Luminance
(analogue signal only applies to Green Screen Monitors) Note For colour mon
itors 1) Only the Red, Green, Blue, Composite Sync, and Gnd signals are used.
2) The Red, Green and Blue are analogue signals. The voltage of the signal de
pends on the amount of Colour present. 3) Only 3 levels ss. The address lines h
old the port address, and the data lines hold the byte of data. Rd-indicates th
e CPU is reading data Wr-indicates the CPU is writing data Reset-when this sig
nal is low, the CPU resets, the program counter becomes zero, and the program is
started executing. Irq-When low, the CPU is interrupted. Sound-mono output o
f all 3 channels mixed together Gnd-0V supply +5v-5v Supply 0-4Mhz Clock (for
driving the CPU) of colour are used. (On, half-on, off) All combinatatio
ns of these will give 27 colours. For green screen monitors 1) Only luminance
and Gnd signals are used. 2) Luminance is a analogue signal. There are 27 le
vels of green ranging from none, to full green. Tape Socket seen from re
ar / / 3 1
* * Disc Drive 2 Socket (CPC664/6128) seen from rear
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 - -- - - - - - - -
- - - - - - - - -- - - - - - - - - - - - - - - 1 3 5
7 9 11 13 15 17 19 21 23 25 27 29 31 33 1Ready 2Gnd 3Side 1 select
4Gnd 5Read data 6Gnd 7Write Protect 8Gnd 9Track 0 10Gnd 11Write G
* * 5
*2 4 / / 1Remote Switch (Tape motor on/off switch) 2Gnd 3Remote Switch (
Tape motor on/off switch) 4Data in (data read) 5Data out (data written) Ex
pansion Socket seen from rear 49 47 45 43 41 39 37 35 33 31 29 27 25 23 21
19 17 15 13 11 9 7 5 3 1 - - - - - - - - - - - ate 12Gnd 13Wri
te Data 14Gnd 15Step 16Gnd 17Direction Select 18Gnd 19Motor On 20Gnd 21N
C 22Gnd 23Drive Select 1 24Gnd 25NC 26Gnd 27Index 28Gnd 29NC 30Gnd 31N
C 32Gnd 33NC 34Gnd low, open as expected &0FHard end of file nctioect 4Gn
d 5Read data 6Gnd 7Write Protect 8Gnd 9Track 0 10Gnd 11Write G - - --
- - - - - - - - - - - - - - - - - - - - - - - -- - - -
- - - - - - - 50 48 46 44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 1
2 10 8 6 4 2 Axx - Address lines Dx - Data lines 1Sound 2Gnd 3A15 4
A14 5A13 6A12 7A11 8A10 9A9 10A8 11A7 12A6 13A5 14A4 15A3 16A2 17A1
18A0 19D7 20D6 21D5 22D4 23D3 24D2 25D1 26D0 27+5v 28Mreq
29M1 30Rfsh 31Iorq Control NameParametersFunc
tion character code (ASCII value) &00NULNone.Nothing. &01SOHsymbol (0..255)dis
play symbol &02STXNone.Turn off text cursor &03ETXNone.Turn on text cursor &0
4EOTscreenmode (0..2)Set screen mode &05ENQcharacter (0..255)display char at gr
aphics cursor position &06 ACKNone.Enable printing of text chars and interpre
ta -tion of control chars. &07 *BELN 32Rd 33Wr 34Halt
35Int 36Nmi 37Busr2 38Busak 39Ready 40Bus res
et 41Reset 42Romen 43Romdis 44Ramrd 45Ramdis 46Cursor 47L
.pen 48Exp 49Gnd 500 Pin descriptions A15..A0-Address lines (hold
s memory address) D7..D0-Data lines (holds data being poked or peeked) Iorq
-when low, indicates CPU is writing to or reading to a port addre None.Make a b
eep. &08 *BSNone.Move cursor (backspace)left a char &09 *TABNone.Move
cursor right a char. &0A *LFNone.Move cursor down a line. (line feed) &0B
*VTNone.Move cursor up a line. &0C *FFNone.Clear text (form feed)window and
move cursor to top left &0D *CRNone.Move cursor to (carriage return)left edge
of window. &0ESOPapernumber (0..15)Set paper to u the two values are differe
nt the border colour will flash between the two. &1ERSNone. Move curs
or to top left (1,1) position in current text window. &1FUSxtextcoordinate
(1..80), Move cursor to ytextcoordinate (1..25) (x,y) position within the
currently selected text window.se &0F SIInknumber (0..15)Set pen to use
&10 *DLENone.Delete current character. &11 *DC1None.Clear from left edge to cha
r position. &12 *DC2None.Clear from char position to right edge of window. &13
*DC3None.Clear window up to current char position. &14 *DC4None.Clear current
window with current paper colour. &15NAKNone.Disable printing of text and disab
le interpreting other control chars, until an ACK is recieved. &16SYNtransparen
t on/off (0..1)Parameter mod 2 (0 disable 1 enable) &17ETBgraphics ink mode (0
..3). Parameter mod 4 0 - normal/force 1 - XOR 2 - AND 3 - OR &18CANNone. Exch
ange pen and paper inks. &19EMsymbolvalue (0..255), Define a user symbolline1
(0..255), defineable symbolline2 (0..255), cIf anyone has any more info
rmation about the CRTC and CRTC differences please contact me. I have explained
those registers I understand fully. The others will be described as soon as
I understand them fully and, I can explain exactly what they do. Programming
the CRTC -------------------- The CRTC has 18 registers (0-17) which are used
to control the screen, screen cursor, and to sense a light pen/gun. To access t
hese registers, the CRTC has 3 control ports. One port to select a register, o
ne haracter. symbolline3 (0..255), symbolline4 (0..255), (same as SYMBOL symboll
ine5 (0..255), command in symbolline6 (0..255), BASIC). symbolline7 (0..255), s
ymbolline8 (0..255). &1ASUBx1edgeofwindow (1..80), Define the size x2edgeofwin
dow (1..80), of a window. y1edgeofwindow (1..25), y2edgeofwindow (1..25). The le
ft edge is taken to be the smaller value of x1edgeofwindow and x2edgeofwinpor
t to write data into the register and one port to read data from the register
. Port address Read/Write Function/Use &BCxx W
Select CRTC register &BDxx W Write data to selected CRT
C register &BFxx R Read data from selected CRTC register
NOTE Due to differences in CRTC's, some of the information described he
re may not work. Where differences occur (that are known), they will b
e listed. If you intedow, and the top edge is taken to be the smaller val
ue of y1edgeofwindow and y2edgeofwindow. &1BESC No effect. (Used by a pri
nter to allow the user to change font style and other things). &1CFSInknumb
er (0..15), Set an ink to Colour1 (0..31), a pair of Colour2 (0..31) colours.
&1DGSColour1 (0..31), Set border to Colour2 (0..31) a pair of colours. If N
nd to use special effects, ensure they work with all CRTC types, or you sp
ecify which CRTC types the effect works on. Selecting a register -----------
--------- A register is selected by sending the register number (in the range
0-17) to port &BCxx. This register will remain selected until another is selec
ted. This means you can write to the same register many times, without having to
re-select the register each time. (See t X X *15 R/W C
ursor (Low) X X X 16 R Light Pen (High
) X X X 17 R Light Pen (Low) X
X X * - These registers are not used on the CPC. R - Read only W - Wr
ite only R/W - Both Read and Write X indicates the values of these registe
rs may vary during normal operation. NOTE Experimenting with the registers c
an produce interesting effects. You will not do any harm by doing this.he prog
ramming example) Writing to a register --------------------- Once a registe
r has been selected using the method above, the user can write data into it. Dat
a can be written into the register by sending the data to port &BDxx. If the
selected register cannot be written to, there will be no effect. (See th
e programming example) Reading a register Just switch the computer off and
then on, and everything will be ok again. Register usage -------------- Certa
in registers can be used for various things. Here is a list of registers and the
ir common usage. Register 0 Horizontal splitting (changing of screen addre
ss/mode accross line). Register 1 Width of screen Register 2
a) Horizontal positioning of screen b) Screen distorting (w
hen ------------------ Once a register has been selected, it can be read fr
om. The data in the register can be read from port &BFxx. If the register canno
t be read, a value of &FF will be returned. (See the programming example) NOTE
On certain CRTC types this is not possible. Register Functions - and normal
values ------------------ Register Read/ Register Title
Normal values Number Write changed as beam scans screen) Regis
ter 3 Smooth left-right hardware scroll Register 4 Rupture/Vertical Spli
tting (allowing screen address to be changed on any line Registe
r 5 Very smooth vertical scrolling Register 6 Height of screen Register
7 Setting up the rupture/splitting and vertical position of
screen Register 8 - Register 9 - Register 10 NOT USED Register 11
NOT USED Register 12 Setting screen address + Overscan + Hardwar
PAL SECAM NTSC 0 W Horizontal Total 63
63 63 1 W Horizontal Displayed 40 40 40
2 W Horizontal Sync Position 46 46 46 3
W Sync Width &8E &8E &8E 4 W V
ertical Total 38 38 31 5 W Vertical Total
Adjust 0 0 6 6 W Vertical Displayed 25
25 25 7 e scrolling Register 13 Hardware scrolling Register 14
NOT USED Register 15 NOT USED Register 16 Light pen address Register 17
Light pen address Register 1 - Horizontal Displayed -----------------------
----------- This register is used to define the width of the screen. The width
is calculated in mode 1 character sized steps. i.e. the number of characters
accross the screen in mode 1, is the same as th W Verti
cal Sync Position 30 30 27 8 W Interlace and Skew
0 0 0 9 W Maximum Raster Address 7
7 7 *10 W Cursor Start Raster X X X *11
W Cursor End Raster X X X 12 R/
W Start Address (High) X X X 13 R/W Start Ad
dress (Low) X X X *14 R/W Cursor (High)
X N e number programmed into this register. Therefore, the widt
h of the screen may be increased or decreased, to get the desired screen width
. If the value programmed is increased, the width of the screen will increa
se, if the value programmed is decreased, the width of the screen will dec
rease. The normal width of the screen is 40 characters. The width of the m
onitor screen is 50 characters. (The number of bytes displayed on a linevalue
programmed to register 1*2) ue is decreased, the screen will shift downwards.
Therefore, using this register and register 2, it is possible to position
the picture to any position on the monitor screen. Register 12 - Start Addres
s (High) ---------------------------------- This register specifys where the sc
reen will start in memory and how much memory is to be used to display t
he screen. Together with register 13, it allows the user to scroll th Registe
r 2 - Horizontal Sync Position ------------------------------------- This regi
ster defines the horizontal position of the screen within the monitor screen. I
f the programmed value is increased, the screen will shift to the left, if t
he programmed value is decreased, the screen will shift to the right. So, usi
ng this register, the user can put the screen to any horizontal positi
on they want. e screen. Bit 5 and Bit 4 determine which 16k block the scree
n is located, in the following way Bit 5 Bit 4 Memory block ---------------
------------- 0 0 &0000-&3FFF 0 1 &4000-&8000 1 0
&8000-&C000 1 1 &C000-&FFFF In this way, the screen can be po
sitioned almost anywhere in memory. The screen address is only changed when
a VSYNC occurs. So, if you attempt to change the screen address, as the electr
on beam is drawing the screen, only one screen Register 5 - Vertical total adj
ust ----------------------------------- This register allows the vertical p
osition of the screen to be positioned to any pixel offset from the cur
rent vertical position defined in register 7. If the value is increased, the
picture will shift down by a pixel line, if it is decreased the picture will
shift up by one pixel line. This register used in conjunction with register 12
and 13, can be used to get perfect pixel by pixe will be shown. (To change the
screen address more than once a special technic called "rupture" or "hardware s
plitting" is needed. This special effect was developed by The Logon System dem
o team.) The CRTC cannot access the extra memory, so it will only display
screens which are located in memory blocks 0-3 only, regardless of any ram conf
iguration. (i.e. it will only display screens in the first bank of 64k). I
f you change the ram configuration, so that a different 16k block is
l vertical scrolling. (see programming example) Register 6 - Vertical displ
ayed -------------------------------- This register defines the height of th
e screen in character sized units. If the value programmed is increased, th
e height of the screen will increase, if the value programmed is decreased,
the height of the screen will decrease. The normal value programmed is 25. Th
e height of the monitor screen is 35 charaswitched into the area which hold
s the screen there will be no effect on the picture. (see the document on the
Gate Array for more information). Bit 3 and 2 determine how much memory the CRT
C can use for the screen. The CRTC is capable of displaying 16k or 32k screens.
Bits 3 and 2 are defined in the following way Bit 3 Bit 2 Screen memory ---
-------------------------- 0 0 16k 1 0 16k 0 1
16k 1 1 32k When the CRTC is accessing 32k, you can expancters.
NOTE We can find the height of the screen in pixel lines, by multiplying th
is by the value in register 9 plus 1. Height of screen register 6 value*(regis
ter 9 value+1) Register 7 - Vertical sync position -------------------------
----------- This register defines the vertical position of the screen within
the monitor screen. If the programmed value is increased, the screen will shi
ft upwards, if the programmed val Nd the screen size so that you can have a pic
ture which covers the borders! (overscan) When 32k is selected, the first
and second screens occupy the following range of addressess First screen
Second screen ----------------------------- &0000-&3FFF &4000-&7FFF &4000-&
7FFF &8000-&BFFF &8000-&BFFF &C000-&FFFF &C000-&FFFF &0000-&3FFF (s
ee the programming example) Bit 1 and 0 are used with register 13 to do
hardware scrolling. Register 13 contains the lower 8 bits of the Overscan, O
verscan is the effect where the screen is expanded to fill the whole monitor sc
reen, So there are no borders remaining. It is a simple effect to use, but
working out screen addressess becomes more difficult. (especially where the
first screen ends and the second screen starts). To expand the screen, we us
e registers 1, 6, 2 and 7. Register 1 is used to set the width of the scr
een, register 6 the height of the screen, register 2 the horizontal position of
the sc offset and bit 1 and 0 contain the upper 2 bits of the offset. The
offset is 10 bits and defines the position of the screen within the 16k block
specified in bits 5 and 4. So, by changing the value contained in register 13
, and bits 1 and 0 of register 12, the screen can be scrolled. This effect
is called hardware scrolling. (see programming example) Summary Bit 7 Not used
. Bit 6 Not used. Bit 5 Memory block of start of screen Bit 4 Bit 3 Screen
memory Bit 2 Bit 1 Offsreen and register 7, the vertical position of the scre
en. When this is done, we can see that parts of the screen repeat. To over
come this, we tell the CRTC to use 32k instead of 16k. NOTE On some CRTC t
ypes, the screen width must not exceed 48 characters otherwise it
will not work. So to maintain compatibility keep the width of the
screen below 48. (Aplies to CRTC type 2). The code for overscan is. **
** set width of screen **** ld bc,&bc00+1 out (c),c ldet (upper 2 bits of offse
t value - lower 8 bits defined Bit 0 by register 13). Register 13 - S
tart Address (Low) --------------------------------- This register defines the
lower 8 bits of the offset within the selected 16k block. This register i
s used in conjunction with register 12 to perform hardware scrolling. (see prog
ramming example) Progr bc,&bd00+48 48 characters wide out (c
),c **** set height of screen **** ld bc,&bc00+6 out (c),c ld bc,&bd00+35
35 characters tall out (c),c **** set horizontal position of scr
een to lefthand side **** ld bc,&bc00+2 out (c),c ld bc,&bd00+50
leftmost edge of screen out (c),c **** set vertical position of screen to t
op **** ld bc,&bc00+7 out (c),c ld bc,&bd00+35 topmost positio
n of screen out (c),c **** tell the CRTC toamming examples -------------------
- a) Programming the CRTC, 1) Selecting a CRTC register, -----------------
-------- ld bc,&bc00+xx out (c),c Where xx is the register number required. e
.g. To select register 12, ld bc,&bc00+12 out (c),c 2) Writing to a CRTC re
gister, -------------------------- LD bc,&bd00+xx out (c),c where xx is the
data to be put into the currently selected register. e.g. To use 32k for scr
een display **** **** (also define screen memory range to be &c000-&fff
f) **** **** giving us the screen memory taking up &C000-&3FFF **** ld bc,&b
c00+12 out (c),c ld bc,&bd00+%00111100 out (c),c So now, you should have a l
arge screen covering the borders. It is just a matter of plotting graphics on
the screen. c) Hardware scrolling Hardware scrolling is achieved by usin
gput 128 into register 12, select CRTC register 12 ld bc,&bc00+12 out (c),c
write to register 12 ld bc,&bd00+128 out (c),c 3) Reading from a CRTC regis
ter, ld bc,&bf00 in a,(c) where, the data in the register would be returned in
register A e.g. select CRTC register 12 ld bc,&bc00+12 out (c),c read dat
a in register 12 ld bc,&bf00 in a,(c) b) N registers 12 and 13. The eff
ect works by changing the start address of the screen. (There is no shifting or
moving of data). By doing this we can make it look like the screen is scrolling
. It is important to note, that only a 16k screen can be fully scrolled. If a 3
2k screen is scrolled too much, it splits into a 16k screen which repeats.
The screen is scrolled in character sized chunks. This produces very fast sm
ooth hardware scrolling. However it is often too fast. Therefore, it is
crollright ld hl,(scrolloffset) inc hl add 1 ld a,h and
&03 ensure scrolloffset is in range
&0000-&03ff ld h,a ld (scrolloffset),hl ret Scroll the screen to
the left ----------------------------- .scrollleft ld hl,(scrolloffset) dec h
l ld a,h and &03 ld h,a ld (scrolloffset),hl ret possible to have slower ha
rdware scrolling by using register 3 for smoother horizontal scrolling, and
register 5 for smoother vertical scrolling. It is important to note that when
the screen is hardware scrolled, all sprites plotted on it will be scrolled
also. So the position of sprites on the screen must be updated, the screen
scrolled, and then replotted. ***********************************************
********************** Scrolling the screen -------------------- The offset is
con Scroll the screen up -------------------- .scrollup ld hl,(scrolloffset)
ld bc,40 value programmed to register 1 add hl,bc ld a,h
and &03 ld h,a ld (scrolloffset),hl ret Scroll the screen down --------------
-------- .scrolldown ld hl,(scrolloffset) ld bc,40 or a sbc hl,bc ld a,h and &
03 ld h,a ld (scrolloffset),hl ret dstructed from bits 0 and 1 of regi
ster 12, and register 13. This forms a 10 bit number. (8 bits from registe
r 13, and 2 from register 12). (&0000-&03FF) By changing the value of the offs
et, we scroll the screen. To scroll the screen UP, ADD the value programmed to
register 1 to the offset. To scroll the screen DOWN, SUBTRACT the value program
med to register 1 from the offset. To scroll the screen RIGHT, ADD one to the o
ffset. To scroll the screen LEFT, SUBTRACT one from the offset. In al) Rupture
technic/Vertical splitting THIS TECHNIC WAS FOUND BY THE LOGON DEMO TEAM. I TH
INK IT WAS LONGSHOT WHO FOUND IT, OR FRED CRAZY. ALL CREDITS TO THEM. I HOPE THE
Y DO NOT MIND ME GIVING AWAY A FEW SECRETS. This technic is used widely in demo
s. Normally the screen address can only be changed once. The CRTC only allows th
e screen address to be changed when a VSYNC occurs, i.e. when the beam has finis
hed drawing the screen and moves back to the top-left again, so that it can star
t again. This technic l cases we must ensure the offset remains in the rang
e &0000- &03FF. Setting the screen offset ------------------------- .setscree
noffset ld hl,(scrolloffset) &0000-&03FF ld a,h or %00xx0000
where xx is the memory block the
screen is located in. ld bc,&bc00+12 CRTC register 12 out (c)
,c select CRTC register 12 ld b,&bfools the CRTC into thi
nking a VSYNC has occured, so that you can change the screen address. So you can
change the screen address anywhere on the screen. This allows you to do amazin
g things. e.g. the top part of the screen scrolling (using hardware), whilst th
e lower part is stationary. (As seen in Super Cauldron and Prehistorik II). Bot
h of the sections of the screen can start at a different memory location. So th
is technic is very flexible. But it is not an easy technic to do. Many times, t
he screend out (c),a send top 2 bits of offset and memory
block screen is located in ld bc,&bc00+13
CRTC register 13 out (c),c select CRTC register
13 ld b,&bd out (c),l send lower 8 bits of offset ret .s
crolloffset defw 0 reserve 2 bytes for offset Scroll the screen to
the right ------------------------------ .s N will flicker and look wrong, but
persever and it will work. Also, once you do get it to work, check it on differ
ent CRTC types. (You can find out a CRTC type, by running a demo which has CRTC
detection in it - like VOYAGE 93 by BENG!). Also, you can achieve overscan by u
sing this technic. To set-up the split is easy enough. a) First the interrupt
vector must be set so that it does nothing. b) Then every frame-flyback/VYSNC, p
ut &ff into register 7 of CRTC c) Then put in split values to seperate screen u0
0010000 screen address to &4000 out (c),c ld bc,&bc00+13 out (c),c ld bc,&bd00
out (c),c jp mainloop (There is another example of splitting on the disc. SPLI
T.MAX) those registers selected text window.r initialisation of split out (c
),c ** IMPORTANT ** ld bc,&bd00 out (c),c ld bc,&bc00+12 out (c),
c ld bc,&bd00+%p. d) Then in bottom of screen, put &00 into register 7 of CRTC.
The interrupts effectively split the screen into 6 blocks. So we can easily wai
t for an interrupt to occur by using a HALT instruction, then we can program the
split values. (This code can be found in the file SPLTSHLL.MAX). Since we cha
nge the interrupt vector to something different, the keyboard will not be scanne
d or anything done, so all this has to be done, by programming the hardware dire
ctly. Now to actually setup the splits, we useSelecting an Expansion Rom ------
-------------------- To select an expansion rom, simply send the number of the
expansion rom to port &DFxx. (An expansion rom may have a number from 0-255).
Where a value of 0 will select BASIC, and a value of 7 will select AMSDOS.
However this process only selects the expansion rom. It does not allow the user
to access any routines in the rom. To allow routines to be accessed the user
must enable the upper rom using the Gate Array. (See programming the gate ar re
gister &4 of CRTC. Simply program the height of the block you want (in characte
r sized units)-1. Then before the block will end, program a new block height. T
he total height of the screen is 38 characters tall. So, all the blocks heights
should add up to 38. So lets say, we want the screen split in half. We want, tw
o blocks of height 19 characters, top block using memory at &4000-&8000, the sec
ond using memory at &C000-&FFFF. the code would be ray to see how this is don
e). A programming example is given to show how to select and disable an expa
nsion rom. Note port &DFxx is a write only port, reading will return a nonsen
se value. Programming Examples a) Selecting an expansion rom -----------
--------------- To select rom 7. (AMSDOS) ld bc,&7f00 Gate Array ld a,%100
00100 enable upper rom, disable lower rom, mode 0 out (c),a send it ld b
c,&DF00 org &4000 di change interrupt vector ld hl,&
c9fb ld (&0038),hl ei splitting part .mainloop ld b,&f5 wait fo
r frame flyback/VSYNC .noVSYNC in a,(c) rra jp nc,noVSYNC ld bc,&bc00+7 out (c)
,c ld bc,&bdff out (c),c INITIALISE SPLIT **IMPORTANT** ld bc,&bc
04 out (c),c ld bc,&bd00+19-1 height of first block out (c),c halt
wait 6.5 lines ld bc,&bc00+12 screen address to &C000-&F
FFF out expansion rom select port ld a,7 expansion rom wanted out (c),a
select it ret b) Disabling an expansion rom ------------------------
-- ld bc,&7f00 Gate Array ld a,%10001100 upper and lower rom disabled, mod
e 0 out (c),a send it ret elect an expansion rom, simply send the number
of the expansion bc,&7f00 Gate Array ld a,%10000100 enable upper rom, disa
ble lower rom, mode 0 out (c),a send it ld bc,&DF00 (c),c ld bc,&bd00
+%00110000 out (c),c ld bc,&bc00+13 out (c),c ld bc,&bd00 out (c),c halt
wait 6.5 lines ld b,15 not sure reason for this, m
aybe to allow compatibilty .wait djnz wait with other CRTCs ld bc,&bc04
out (c),c ld bc,&bd00+19-1 height of second block out (c),c halt halt
halt halt ld bc,&bc00+7 also for initialisation of split out (c),c
** IMPORTANT ** ld bc,&bd00 out (c),c ld bc,&bc00+12 out (c),c ld b
c,&bd00+% NPSG.TXT*TEXTMACAPSG TXTREAD-ME.TXT*TEXTMACAREAD-ME TXTREADKEY.TX
T*TEXTMACAREADKEY TXTRSXSHELL*TEXTMACARSXSHELL SCR.TXT*TEXTMACASCR TXTSOUN
D.TXT*TEXTMACA8255.TXT()TTEXTMACA8255 TXT82552.TXTTTEXTMACA82552 TXTBDOS.TX
TTTEXTMACABDOS TXTCAS.TXTTTEXTMACACAS TXTCONNECT.TXTTTEXTMACACONNECT TXTC
ONTCHAR.TXTTTEXTMACA4SOUND TXTSPLIT.MAX*TEXTMACASPLIT MAXSPLTSHLL.MAX*TEXTMA
CA8SPLTSHLLMAXTEST.MAXTEXTMACA8TEST MAXTEXTDISP.BASBIN 8TEXTDISPBASTXT.TXTTEX
TMACA8TXT TXTCONTCHARTXTCRTC.TXTTTEXTMACA4CRTC TXTEXPAN.TXTTTEXTMACA4EXPA
N TXTFILEID.DIZDTEXTMACA4FILEID DIZGATE.TXTTTEXTMACA4GATE TXTGRA.TXTTTEXTMA
CA4GRA TXTVARIOUS.TXTTEXTMACA8VARIOUS TXTXDPB.TXTTEXTMACA8XDPB TXT Z80SET
.TXTTEXTMACAlZ80SET TXT,%%,,j/TEXTDISPBASTXT.TXTTEXTMACA8TXT TXTHARDWARE.TX
TTTEXTMACAhHARDWARETXTHI-KERN.TXTTTEXTMACAhHI-KERN TXTINDIRECT.TXT*TEXTMACAhINDI
RECTTXTIOPORTS.TXT*TEXTMACAIOPORTS TXT KERNAL.TXT*TEXTMACAKERNAL TXT KEYMAP.TXT
*TEXTMACAKEYMAP TXTKM.TXT*TEXTMACAKM TXTLO-KERN.TXT*TEXTMACALO-KERN TXTMC.
TXT*TEXTMACAMC TXTPLUSPORT.TXT*TEXTMACAPLUSPORTTXTPRINTER.TXT*TEXTMACAPRINT
ER TXT NThe Gate Array -------------- The gate array is a specially designed c
hip exclusively for use in the Amstrad CPC. It is for this reason not much is kn
own about it. It is responsible for controlling screen mode, colour palette
, ram configuration and rom configuration. The new ASIC Gate Array (in the new
Plus machines) is described in a different section. In standard mode on the Pl
us machines (that is when the new ASIC Gate Array has not been enabled), it ac
ts as a standard gate array, allowing pware pallette). The hardware colour numb
er is different to the colour range used by the firmware, so a conversion cha
rt is provided for the corresponding firmware/hardware colour values and the co
rresponding colour name. Even though there is provision for 32 colours, only
27 are possible. The remaining colours are duplicates of those already in the
colour palette. Note The firmware keeps track of the colours it is using. Ever
y VSYNC (assuming interrupts are enabled) the firmware sets the colourograms on
the CPC to work on the Plus machines without modification. However when the n
ew ASIC gate array is enabled, it allows the user to use a number of extra enhan
cements. The Gate Array is described here, as it would be on a standard CPC.
Controlling the Gate Array -------------------------- The gate array is co
ntrolled by sending values to port &7Fxx. The function which is to be perfor
med is dependant on the settingsrs. This enables the user to have flashing colo
urs. If the user selects a new colour using the gate array, the new colour will
flash temporarily and then return to it's original colour. This is due to the
firmware re- setting the colour. When using the firmware, use it's routine
s to select the colour, and the colour will remain. Summary Bit 7 Gate Array
function (0) Bit 6 (1) Bit 5 Not used. Bit 4 Colour numb
er (from hardware colour palette) Bit 3 Bit 2 Bit of bits 7 and 6 the remaini
ng bits are data used by the appropiate function. All these registers are write
only and cannot be read. A brief description of the functions are described
below with their settings for bit 7 and 6. Bit 7 Bit 6 Function ----------
-------------- 0 0 Select which pen is to have its colour changed.
0 1 Select colour for currently selected pen. (from h
ardware colour palette) 1 0 Select screen mode and rom configuration
. 1 Bit 0 Select screen mode and rom configuration -----------------------
----------------- This is a general purpose register responsible for the screen
mode and the rom configuration. Screen mode selection --------------------- T
he function of bits 1 and 0 is to define the screen mode. The settings f
or bits 1 and 0 and the corresponding screen mode are given in the table below.
From the combinations possible, we 1 1 Select ram configuration
(bank switching). Pen selection ------------- When bit 7 and bit 6 are set
to 0, the remaining bits determine which pen is to have its colour changed. Bit
s 3 to 0 define which pen is to be selected. When bit 4 is set to 1, the valu
e contained in bits 3-0 is ignored and the border is selected. The pen remains
selected until another is selected. Each mode has a fixed number of pens. Mode
0 hcan see that 4 modes can be defined, although the Amstrad only has 3. Mod
e 3 is similar to mode 0, because it has the same resolution, but it is li
mited to only 4 colours. This mode may be different on different versions of t
he Gate Array and on different CPC models. The screen mode is changed when
a HSYNC occurs. Bit 1 Bit 0 Screen mode --------------------------
--------- 0 0 Mode 0,160x200, 16 colours. 0 1
Mode 1,320x200, 4 colours. as 16 pens, mode 1 has 4 pens and mode 2 has
2 pens. Summary ------- Bit 7 Gate Array function (0) Bit 6
(0) Bit 5 Not used Bit 4 Border selection 1Select border, 0use pen
value contained in bits 3-0. Bit 3 Pen number Bit 2 Bit 1 Bit 0 Colour
selection ---------------- Once the pen has been selected the colour can then
be changed. Bits 4 to 0 hold the colour number (from the hard N1 0
Mode 2,640x200, 2 colours 1 1 Mode 3,160x200, 4 colour
s. Rom configuration selection --------------------------- (See the memory ma
p for more information) Bit 2 is used to enable or disable the lower r
om. The lower rom occupies memory addressess &0000-&3fff. When it is enabled
, reading from &0000-&3FFF will return data in the rom. When a value is writte
n to &0000-&3FFF, it will be written to the ram at the same address as the rom.
When it is disaxed' with the main ram. The CPU is capable of accessing a ma
ximum of 64K at one time. To access extra memory, blocks in the main ram (ba
nk 1) can be exchanged with blocks in the extra ram. The number of blocks exchan
ged and the the blocks they change place with changes depending on the r
am configuration used. Ram configurations ------------------ Bits 2-0 select
which ram configuration is to be used. When configuration 0 is selecte
d (regardless of the bank selected), the CPUbled, data read from &0000-&3F
FF will return the data in the ram. Similarly, bit 3 controls enabling or disab
ling of the upper rom. The upper rom resides in memory addressess &C000-&FFFF.
The upper rom can be basic or any other extra expansion roms which may be pl
ugged into an expansion board. The upper rom is selected by writing the rom num
ber to port &DFxx. (See upper rom selection for more information). When the upp
er rom is enabled, reading from &c000-&ffff, will return data in the rom. Whe
will only access the main ram. When configuration 2 is selected the CPU will
only access the bank selected. In the table above, 0-3 are the blocks in the
main ram (bank 1), and 4-7 are the blocks of the selected bank, as they wou
ld normally be arranged shown below. Their new position, is the position they
would take if that configuration was used. It is not adviseable to use confi
guration 2 when the firmware is running, or the computer will crash and you w
ill lose valuable data. NOTE Nn data is written to &c000-&FFFF, it will be
written to the ram at the same address as the rom. When the upper rom is disab
led, and data is read from &c000-&ffff the data returned will be the data in th
e ram. Bit 4 controls the CPU interrupts. A CPU interrupt occurs every 3
00th of a second. When an interrupt occurs, the CPU stops executing the curren
t program, and executes an interrupt program. When the interrupt program
has been completed, it returns to the current program. (Sormally the CPC
runs in ram configuration 0 (AMSDOS) and configuration 1 (CP/M). Normal
arrangement of blocks (Without any ram configuration selected). Main R
am Selected bank (bank 1) &FFFF +---------------+-------------
--+ 3 7
&C000 +---------------+--------------
-+ 2 6
ee interrupts for more information). Bit 4 is used to determine whether CPU int
errupts are allowed. When this bit is set to 1, it prevents the next in
terrupt from occuring. When this bit is set to 0, the next interrupt is enabled
. Summary Bit 7 Gate Array function (1) Bit 6 (0) Bit 5
Not used. Bit 4 CPU Interrupt enable/disable 1disable next interrupt, 0
enable next interrupt Bit 3 Upper rom enable/disable. (Expansion roms) 1
disable upper rom, 0 &8000 +-----------
----+---------------+ 1
5 &4000 +------------
---+---------------+ 0
4 &0000 +-------------
--+---------------+ Bit 2 Bit 1 Bit 0 Configuration number -------------
------------------------------enable upper rom Bit 2 Lower rom enable/disable.
(Operating System rom) 1disable lower rom, 0enable lower rom Bit 1 Scre
en Mode Bit 0 Select ram configuration ------------------------ This regist
er is used to select the ram configuration. The ram is split into banks of
64K. Each of these banks is split into blocks of 16K. Using this register, th
e user can select which bank they wish to use and how it is 'mi N- 0 0
0 0 0 0 1 1 0 1 0 2 0 1
1 3 1 0 0 4 1 0 1 5 1 1
0 6 1 1 1 7 Organization Block accessed
at memory address &0000-&3FFF &4000-&7fff &8000-&bfff &c0
00-&ffff 0 0 1 2 3
1 0 1 2 7 2
4 5 Gate array port LD A,%10000000+%00001110 Mo
de and rom selection (and Gate Array functio
n) OUT (C),A Send it RET 3) Setting the ram configurati
on, Setting configuration 1. LD BC,&7F00 Gate array port L
D A,%11000000+%00000001 Ram configuration (and Gate Array
function) OUT (C),A 6
7 3 0 3 2 7 4
0 4 2 3 5 0
5 2 3 6 0
6 2 3 7 0 7
2 3 Bank selections --------------- Bits 5-3 select the bank
required as shown in the table below. Bit 5 Bit 4 Bit 3 Bank Sele
cted --- Send it RET Palette conversion chart ------------------------
Firmware colour Colour Hardware palette Quick number
number Reference 0 B
lack 20 &54 1 Blue
4 &44 2 Bright Blue 21
&55 3 Red -------------------------------
----------- 0 0 0 Bank 2 0 0 1
Bank 3 0 1 0 Bank 4 0 1 1
Bank 5 1 0 0 Bank 6 1 0 1 B
ank 7 1 1 0 Bank 8 1 1 1 Ban
k 9 NOTE If you have 64k, and you attempt to use a bank and ram configuration
, there will be no effect. i.e. the arrangement of the 64K will not change.
28 &5C 4 Magenta 24
&58 5 Mauve 29 &5D 6
Bright Red 12 &4C 7 Pu
rple 5 &45 8 Bright Magenta
13 &4D 9 Green 22
&56 10 Cyan 6 &46 11
Sky Blue If you only have 128k, regardless of the bank
you choose, bank 2 will be selected. If you have more than 128K, you will be
able to choose the bank and the ram configuration and it will arrange the ram c
orrectly. Summary Bit 7 Gate Array Function (1) Bit 6 (1)
Bit 5 Bank Bit 4 Bit 3 Bit 2 Ram configuration Bit 1 Bit 0 Programming the
Gate Array - Examples -------------------------- 1) Defi 23 &57
12 Yellow 30 &5E 13
White 0 &40 14 Pastel Bl
ue 31 &5F 15 Orange 1
4 &4E 16 Pink 7 &47
17 Pastel Magenta 15 &4F 18
Bright Green 18 &52 19 Sea Green
ning the colours, Setting pen 0 to Bright White. LD BC,&7F00
Gate Array port LD A,%00000000+0 Pen number (and Gate
Array function) OUT (C),A Send pen number LD A,%01000000+
11 Pen colour (and Gate Array function) OUT (C),A
Send it RET 2) Setting the mode and rom configuration, Mode 2, upper a
nd lower rom disabled. LD BC,&7F00 N 2 &42 20
Bright Cyan 19 &53 21 L
ime 26 &5A 22 Pastel green
25 &59 23 Pastel Cyan 27
&5B 24 Bright Yellow 10 &4A 25
Pastel Yellow 3 &43 26 B
right White 11 &4B This chart also gives a quick referen
cnate HL y coordinate Exit AF,BC,DE,HL corrupt. Notes
The coordinate is relative to the origin. The position can be outside
the graphics window. The graphic VDU plotting testing and drawing routines
are set to that point. ---------------------------------------
------------------------------ &BBC3 - GRA MOVE RELATIVE - Move to a relat
ive position Entry DE signed X offset HL signed Y offset
Exit AF,BC,DE,HL ce guide for programming the colours. The number is t
he colour number which can be sent directly, once the pen has been selected, t
o get the colour wanted. Example ld bc,&7f00+1 Gate array function (
set pen) and pen number out (c),c ld bc,&7f00+&41
Gate array function (set colour) and colour number out
(c),c ret foorrupt. --------------------------------------------------
------------------- &BBC6 - GRA ASK CURSOR - Get cursor position Ent
ry None Exit DE X coordinate relative to origin HL Y co
ordinate relative to origin AF corrupt. ----------------------------
----------------------------------------- &BBC9 - GRA SET ORIGIN - Set ori
gin Entry DE X coordinate relative to 0,0 HL Y coordinate rel
ative to 0,0 Exit AF,BC,DE,HL corrupt. Notes When the sc
reen is cleared with SCR SET MODE the origin is restored to 0,0. ----
----------------------------------------------------------------- &BBCC -
GRA GET ORIGIN - Get origin Entry None Exit DE X coordi
nate of origin relative to 0,0 HL Y coordinate of origin relative to 0,0
---------------------------------------------------------------------
&BBCF - GRA WIN WIDTH - Set the left and right edges of &BBBA
- GRA INITIALISE - Initialise Graphics VDU Entry None Exit
AF,BC,DE,HL corrupt. Notes The graphic indirections are set to t
heir default routines. Set graphic paper to ink 0 Set graphic pen to i
nk 1 Set origin to bottom corner of screen Move position to origin
The graphics window is set to cover the whole screen. The write mode is s
et to opaque. The line mask is set to &FF and the first pixel of lines are
plotted. the graphics window Entry DE X coordinate relat
ive to 0,0 of one edge HL X coordinate relative to 0,0 of the other edge
Exit AF,BC,DE,HL corrupt Notes The left edge is taken to
be the lesser of the two values. The window may be shrunk so that it can b
e fit onto the screen. All graphic VDU point plotting and line drawing ro
utines test whether the points they are to plot are inside the window,
if they are not they are not plottedThe window isn't cleared. -------
-------------------------------------------------------------- &BBBD - GRA
RESET - Reset the graphics VDU Entry None Exit AF,BC,DE
,HL corrupt. Notes The indirections are set to their default routine
s. In V1.1 the line mask is set as in GRA INITIALISE. ---------------
------------------------------------------------------ &BBC0 - GRA MOVE AB
SOLUTE - Move to an absolute position Entry DE X coordi N. -
-------------------------------------------------------------------- &BBD2
- GRA WIN HEIGHT - Set top and bottom edges of graphic window Entry
DE Y coordinate relative to 0,0 of one edge HL Y coordinate relative to
0,0 of other edge. Exit AF,BC,DE,HL corrupt. Notes The t
op edge will be the higher of the two values. ----------------------------
----------------------------------------- &BBD5 - GRA GET W WIDTH - Get th
e left and right edow when testing points. --------------------------
------------------------------------------- &BBE7 - GRA GET PAPER - Get the
current background pen Entry None Exit A pen Fla
gs corrupt. Notes As GRA SET PAPER ---------------------------
------------------------------------------ &BBEA - GRA PLOT ABSOLUTE - Plot
a point at an absolute position Entry DE X coordinate relative to
user origin HL Y coordinate relative dges of the window Entry
None Exit DE X coordinate relative to 0,0 of the left edge of the w
indow HL X coordinate relative to 0,0 of the right edge of the window
AF corrupt. Notes The edges recieved may be different as those
specified because the window may have been reduced to fit onto the s
creen. -------------------------------------------------------------------
-- &BBD8 - GRA GET W HEIGHT - Get top and bottom edges of the wito user or
igin Exit AF,BC,DE,HL corrupt. -------------------------
-------------------------------------------- &BBED - GRA PLOT RELATIVE - Pl
ot a point relative to current position Entry DE signed X offset
HL signed Y offset Exit AF,BC,DE,HL corrupt. -------------
-------------------------------------------------------- &BBF0 - GRA TEST A
BSOLUTE - Test a point at an absolute position Entry DE X coordinat
e to test relatndow Entry None Exit DE Y coordinate rel
ative to 0,0 of the top edge of the window HL Y coordinate relative to 0,0
of the bottom edge of the window AF corrupt. Notes See above
as in GRA GET W WIDTH ----------------------------------------------------
----------------- &BBDB - GRA CLEAR WINDOW - Clear the graphics window
Entry None Exit AF,BC,DE,HL corrupt. Notes The
graphics cursor position is moved to ive to user origin HL Y coordinate
to test relative to user origin Exit A pen of specified point or pa
per pen BC,DE,HL and flags corrupt. --------------------------------
------------------------------------- &BBF3 - GRA TEST RELATIVE - Test a p
oint relative to current position Entry DE X signed offset HL
Y signed offset Exit A pen of specified point or paper pen B
C,DE,HL and flags corrupt. ------------------------------the origin specif
ied by the user. ----------------------------------------------------
----------------- &BBDE - GRA SET PEN - Set the graphics plotting ink
Entry A pen Exit AF corrupt Notes The value is
forced to lie within the range allowed for the selected mode. V1.1
---- The graphics pen is taken to be the edge of the area to fil
l when flood filling areas of the screen. ---------------------
-------------------------------------------------- &BBF6 - GRA LINE ABSOLUT
E - Draw a line to an absolute position Entry DE X coordinate of en
dpoint HL Y coordinate of endpoint Exit AF,BC,DE,HL corrupt.
V1.0 ---- The points will be plotted in the current pen using th
e current mode V1.1 ---- The line is plotted depending on
the mask defined. If the first point plotting mode is set to false the fi
rst point will not be set. -------------------------------------------
&BBE1 - GRA GET PEN - Get the graphics pen number Entry None
Exit A pen Flags corrupt. ---------------------------------
------------------------------------ &BBE4 - GRA SET PAPER - Set graphics b
ackground pen Entry A pen Exit AF corrupt. Notes
The paper ink is the ink that is used for clearing the graphics window
and it is assumed to cover everywhere outside the graphics win N-------------
-------------------------------------------------- &BBF9 - GRA LINE RELATI
VE - Draw a line relative to the current position Entry D
E signed X offset of the endpoint HL signed Y offset of the endpoint
Exit AF,BC,DE,HL corrupt. Notes See GRA LINE ABSOLUTE
--------------------------------------------------------------------- &BBFC
- GRA WR CHAR - Print a character on the screen at the current graphics
position the bit is 1). To destinguish between poking to memory and sendi
ng data to an external device, the CPU uses an extra pin called IORQ. (Input/Out
put Request). When this is low, the CPU is sending data to an external device, o
therwise it is poking to the memory. And to distinguish between reading and wri
ting it uses a pin called WR (write) and RD (read). When either of these are low
, the CPU is writing or reading. So to connect a device and get it to work, we
need to connect the address lines, data lines, Entry A character to write
Exit AF,BC,DE,HL corrupt. Notes The character is writte
n with its top left at the current graphics position. All characters ar
e printed including control characters. The position is moved right 32 poi
nts in mode 0, 16 in mode 1, and 8 points in mode 2. The charact
er will be printed using the current graphics pen ink. If the graphics mode
is set to opaque then the background will be written with the the I
ORQ pin and the WR and RD pins. Now it is possible to link devices and use them.
--------------------------------------------------------------------- e
nd mainprogramply command). foemory. And to distinguish between reading and
writing it uses a pin called WR (write) and RD (read). When either of these are
low, the CPU is writing or reading. So to connect a device and get it to work,
we need to connect the address lines, data lines, current graphics paper p
en, if the mode is transparent then the background will not be written
over. --------------------------------------------------------------------
- ----------------------------------------------------------- f
ohe current graphics pen ink. If the graphics mode is set to opaque the
n the background will be written with the High Kernal Jumpblock
--------------------- -----------------------------------------------
------------------------ &B900 - HI HL U ROM ENABLE - Enable the upper rom
Entry None Exit A previous rom state Flags corrupt
. Notes The mechanisms provided for calling subroutines in the upp
er ROM and for selecting upper roms automatically enable the rom as req
uired. This routine is used by the firmware but is otherwise of littlWe use
, OUT and IN commands to access external devices and the hardware inside the CPC
. We send data to an external device like this LD BC,portaddress OUT (C),reg
Where BC contains a 16-bit number specifing the port address (or an address to a
ccess the chip at). And, where reg can be A,B,C,D,E,F,H or L, and contains 8-bit
data to send to the chip. Likewise, we get data from an external device by usi
ng LD BC,portaddress IN reg,(C) Here BC contains a 16-bit number specifying th
e port address, and ree use. The previous rom state may be passed to KL
ROM RESTORE to reset the state to what it was before this routine was call
ed. This routine enables interupts. --------------------------------
-------------------------------------- &B903 - HI KL U ROM DISABLE - Disab
le upper rom Entry None Exit A previous rom state
Flags corrupt. Notes Disabling the upper rom gives read access to
the top 16k of ram which is usually used as g will contain the 8-bit data r
ead from the chip. So how does this work as electric signals Well the CPU is c
onnected to everything by its lines, or pins on the chip. Each pin has a special
function. The CPU has 16 address lines, numbered A0-A15. Each of these can be
0V or 5V, effectively 0 or 1 in binary. Using these 16 address lines we can spec
ify any memory or port address we want. When data is to be poked or read, 8 dat
a lines numbered D0-D7 are used to pass the data. (0V when the bit is 0, 5V when
N the screen memory. Note that the mapping of a location in screen m
emory to pixels on the screen depends on the mode and the screen offset.
It is inadviseable to disable the upper rom while executing
instructions in it! The previous rom state may be passed to KL ROM RES
TORE to reset the state of what it was before this routine was called.
This routine enables interupts. -----------------------------------------
----------------------------- --------------- &B90F - HI KL ROM SELEC
T - Select a particular upper ROM Entry C rom select address
Exit C rom select address of the previously selected rom B previous
rom state AF corrupt. Notes The previous state can be passed
to KL ROM RESTORE to reset the ROM enable to what it was. Both the
previous state and the previous selection can be passed to KL ROM DESE
LECT to restore the state to what it was and to select&B906 - HI KL L ROM
ENABLE - Enable the lower ROM Entry None Exit A p
revious rom state Flags corrupt. Notes In general the lower ro
m is disabled except when a firmware routine is called. The firmware jump
block arranges to enable the lower rom automatically and to disable it
again when the routine returns. This routine is used by the firmware but
is otherwise of little use. The previous rom state may be passed to KL
ROM RE the previously selected ROM again. The mechanisms provided for
calling routines in expansion roms automatically perform rom selection
as required. It is inadvisable to select another upper rom whilst
executing instructions in the upper rom. This routine enables interu
pts. ---------------------------------------------------------------------
-- &B912 - HI KL CURR SELECTION - Ask which upper ROM is currently
selected. Entry None STORE to reset the state to what it wa
s before this routine was called. This routine enables interupts. --
--------------------------------------------------------------------- &B90
9 - HI KL L ROM DISABLE - Disable the lower rom Entry None Exi
t A previous rom state Flags corrupt. Notes In general
the lower rom is disabled except when a firmware routine is called. The f
irmware jumpblock arranges to enable the lower rom au Exit
A rom select address of the currently selected rom Notes It
is not possible to predict the rom select address at which any particu
lar expansion rom will be fitted. The far address used to reference s
ubroutines in expansion roms include a rom select byte which must be s
et up at run time. This routine returns the rom select address of the cur
rent rom so that it can set up suitable far addresses. ------
-------------tomatically and to disable it again when the routine returns.
The previous rom state may be passed to KL ROM RESTORE to reset the s
tate to what it was before this routine was called. This routine enables i
nterupts. ----------------------------------------------------------------
------- &B90C - HI KL ROM RESTORE - Restore the previous rom state En
try A previous rom state Exit AF corrupt. Notes
The previous rom state is the value----------------------------------------
----------- &B915 - HI KL PROBE ROM - Ask class and version of a rom
Entry C rom select address of rom Exit A roms class L
roms mark number H roms version number B and flags corrupt. No
tes The rom class returned may take any of the following 0 Fore
ground rom 1 Background rom 2 Extension foreground rom
&80 On board rom (BASIC rom) Selecting a rom addre returned by one of
KL U ROM ENABLE KL U ROM DISABLE KL L ROM ENABLE KL L ROM D
ISABLE KL ROM SELECT It is possible to use KL U ROM DISABLE to revers
e the effect of a call of KL U ENABLE (amongst various other combinations)
. However, calling KL ROM RESTORE is the prefered method since it restore
s the state to what it was, which might have been enabled anyway. Thi
s routine enables interupts. ---------------------------------------------
----------- Nss where no rom is fitted implicity selects the on-board ro
m and so it will return &80 as its class. The meaning of the mark and vers
ion numbers depends on the rom This routine enables interupts. -----
------------------------------------------------------------------ &B918 -
HI KL ROM DESELECT - Restore previous upper rom selection Entry C
rom select address of previously selected rom B previous rom state E
xit C rom select address of the cmbers its priority. The synchrono
us event routine may itself poll the synchronouse event queue, bu
t only events of higher priority than itself are notified to it.
This routine may enable interupts. ---------------------------------------
------------------------------- &B92A - HI KL SCAN NEEDED - Ensure ke
yboard is scanned at next opportunity. None Exit AF an
d HL corrupt. Notes The keyboard is normally scanned on eurrently se
lected rom B corrupt. Notes The previous rom selection and sta
te are values returned by KL ROM SELECT. The currently selected rom r
eturned by this rom that was selected by calling KL ROM SELECT (unless f
urther selections have been made) The mechanisms provided for
calling subroutines in expansion roms automatically perform rom selecti
on as required. It is inadvisable to select another upper rom whils
t executing invery sixth ticker interupt (every fiftieth of a second)
. While interupts are disabled the ticks are lost and the keyboarfd will no
t be scanned. If interupts are disabled for a significant period (more than
three ticks) then this routine should be called just before interupts are
re-enabled. If interupts are disabled for a long time (more than twelve ti
cks) then the user might consider calling this routine and re-enabling inte
rupts for a short time every fiftieth of a secstructions in the upper rom.
This routine enables interupts. -----------------------------------
----------------------------------- &B91B - HI KL LDIR - Move a block of c
ode with roms turned off Entry BC,DE,HL as LDIR command Exit
F,BC,DE,HL as set by LDIR command Notes This routine may be use
d to move areas of ram irrespective of the rom state. This routine e
nables interupts. --------------------------------------------------------
ond ----------------------------------------------------------------------
end of high kernal jumpblock "ld be called jus
t before interupts are re-enabled. If interupts are disabled for a long tim
e (more than twelve ticks) then the user might consider calling this routi
ne and re-enabling interupts for a short time every fiftieth of a sec-----
---------- &B91E - HI KL LDDR - Move a block of code with roms turned off
Entry BC,DE,HL as LDDR command Exit F,BC,DE,HL as LDDR c
ommand Notes This routine may be used to move areas of ram irrespec
tive of the rom state. This routine enables interupts ---------
-------------------------------------------------------------- &B921 - HL
KL POLL SYNCHRONOUS - Check if an event with higher priority than th
e current event is pending Entry None Exit If there is a
higher priority event pending. Carry true. If there is no hig
her priority event pending Carry false. A and other flags corrupt.
Notes This routine is in the high jumpblock to minimise the over
head of polling for synchronous events. If the synchronous event queue
is empty then the routine takes only a few instructions. While a syn
chronous event is being processed the kernel reme N Indirections -
----------- &BDCD - IND TXT DRAW CURSOR - Put cursor blob on screen
Entry None Exit AF corrupt. Notes This indirection
is provided to allow the user to change the form of the cursor blob. See
TXT PLACE CURSOR for a description of how the cursor blob is normally
written. The text VDU routines call this indirection whenever the curs
or is placed on the screen. All the text VDU routines that read from t
from the screen. TXT RD CHAR removes the cursor from the screen before cal
ling this indirection. This read is performed by comparing the mat
rix found on the screen with the matrices used to generate characters. As
a result changing a character matrix, changing pen or paper inks or ch
anging the scren (e.g. drawing a line through a character) may make t
he character unreadable. In particular the cursor blob will cause confusio
n and so it should not be he screen, write to the screen or change th
e current position remove the cursor (using TXT UNDRAW CURSOR) before pe
rforming their action and place it back on the screen afterwards (using
TXT DRAW CURSOR). An example of such a routine is TXT WR CHAR that writ
es a character on the screen. This indirection is setup when TXT INIT
IALISE or TXT RESET is called. -------------------------------------------
--------------------------- &BDD0 - IND TXT UNDRAW CURSOon the screen.
Special precautions are taken against generating inverse space (
character &8f). Initially the character is read assuming that the backg
round to the character was written in the current paper ink. If this fail
s to generate a recogniseable character or it generates inverse space
then another try is made by assuming that the character was written in th
e current pen ink. The characters are scanned starting with 0 and fini
shing with &FFR - Remove blob from screen. Entry None Exit
AF corrupt. Notes See IND TXT DRAW CURSOR -----------------
------------------------------------------------------ &BDD3 - IND TXT WRI
TE CHAR - Put a character on the screen Entry A character to write
H column to write at L row to write at Exit AF,BC,DE,HL
corrupt. Notes The character position to write at is given i
n physical coordinates. i.e. r. Thus, if there are two possible ch
aracter atrices that match the screen, the smaller of the two character n
umbers will be returned. This indirection is set up when TXT INITIAL
ISE or TXT RESET is called. ----------------------------------------------
------------------------ &BDD9 - IND TXT OUT ACTION - Output a character o
r control code Entry A character or code Exit AF,BC,DE,
HL corrupt. Notes This indirection is called by TXow 0,column 0 is t
he top left of the screen. The position is not checked for legality.
TXT WRITE CHAR is called by TXT WR CHAR to print a character on the scre
en. The removing of the cursor blob and the calculation of the new current
position are performed by TXT WR CHAR and not by TXT WRITE CHAR.
This indirection is set up when TXT INITIALISE or TXT RESET is called ----
------------------------------------------------------------------ &BDD6 -
IND TXT UNWRT OUTPUT to do the work of printing characters or obeying t
he control codes. It is provided to allow the user to change the method o
f dealing with characters and control codes or to allow the user to redirec
t output (to the printer for example). TXT OUTPUT merely preserves the reg
isters around the call of TXT OUT ACTION. Control codes may take up
to 9 parameters. These are the characters sent following the initial
control code. The characters sent are ITE - Read a character from the scr
een. Entry H column L row Exit If a readable char
acter was found Carry true. A character read If no recognisabl
e character was found Carry false. A zero Notes The character
position to write at is given in physical coordinates. i.e. row 0,column
0 is the top left of the screen. The position is not checked for legality.
This indirection is called by TXT RD CHAR to read a character N stored
in a buffer until sufficient have been recieved to make up all the require
d parameters. The control code buffer is only long enough to accept 9 par
ameter characters. There is only one control code buffer which is shared
between all the streams.It is, therefore, possible to get unpredictable res
ults if the output stream is changed part of the way through sending a
control code sequence. If the VDU is disabled then no characters
will be printed on this indirection is used by GRA TEST RELATIVE and GRA TEST
ABSOLUTE to test the point requested. It is provided to allow the user to
change the method for testing (comparing with the current pen ink
for example).. GRA TEST RELATIVE converts from relative to user
coordinates and then calls this indirection. GRA TEST ABSOLUTE calls
this indirection directly. To test the ink of a point inside the window
the SCR READ indirection is used. This indire screen. In V1.1 fi
rmware control codes that are sprecially marked in the control code table
will not be obeyed if the VDU is disabled. Other control codes and al
l control codes in V1.0 firmware will be obeyed. If the graphics
character write mode is enabled then all characters and control codes ar
e printed using the Graphics VDU (see GRA WR CHAR) and are not obeyed. Norm
ally characters are written by the text VDU (see TXT WR CHAR). Thi
s indirection is set up when GRA INITIALISE or GRA RESET is called. ------
---------------------------------------------------------------- &BDE2 - I
ND GRA LINE - Draw a line Entry DE user X coordinates of endpoint
HL user Y coordinates of endpoint Exit AF,BC,DE,HL corrup
t. Notes The position of the endpoint is given in user coordi
nates. i.e. relative to the user origin This indirection is used by G
RA LINE RELATIVE and GRA LINE ABSection is set up when TXT INITIALISE or TXT RES
ET is called. ------------------------------------------------------------
---------- &BDDC - IND GRA PLOT - Plot a point Entry DE user
X coordinate of point to plot HL user Y coordinate of point to plot
Exit AF,BC,DE,HL corrupt. Notes The position of the poin
t is given in user coordinates. i.e. relative to the user origin. Th
is indirection is called by GRA PLOT RELATIVE and GRA PLOTOLUTE to draw th
e line requested. It is provided to allow the user to change the method
for line drawing. GRA LINE RELATIVE converts from relative to user coordin
ates and then calls this indirection. GRA LINE ABSOLUTE calls this indirect
ion immediatly. The line is split up into horizontal or vertical secti
ons that are drawn separately (see SCR HORIZONTAL and SCR VERTICAL). The S
CR WRITE indirection is called to write the points in these sections.
This m ABSOLITE to plot the point requested. It is provided to a
llow the user to change the method for plotting (to output to an X-Y
plotter for example). GRA PLOT RELATIVE converts from relative to user coo
rdinates and then calls this indirection. GRA PLOT ABSOLUTE calls
this indirection immediatly. To write the point on the screen the
SCR WRITE indirection is used. Thus the point is plotted using the current
graphics write mode. This indirectioneans that the line is plotted using t
he current graphics write mode. In V1.0 firmware the line is plotted in
the current pen ink. V1.1 firmware setting of the line mask determines
how pixels on the line will be plotted. The line mask is bit signi
ficant and is used repeatedly in the order bit 7,bit 6 down to bit 0 f
or each pixel in the line. If the bit is one then the pixel is plotted in
the graphics pen ink. If the bit is zero then the action taken d is s
et up when GRA INITIALISE or GRA RESET is called. ------------------------
----------------------------------------------- &BDDF - IND GRA TEST - Te
st a point Entry DE user X coordinate of the point to test HL
user Y coordinate of the point to test Exit A decoded ink at the p
oint specified BC,DE,HL and flags corrupt. Notes The position
of the point to test is given in user coordinates i.e. relative to the u
ser origin. Th Nepends on the graphics write moe. If the background
mode is opaque then the pixel is plotted in the graphics paper ink. I
f the background mode is transparent then the pixel is not plotted.
In V1.1 firmware the first pixel of the line (that at the current g
raphics position) is not plotted if the first point plotting mode is set f
alse. This indirection is set up when GRA INITIALISE or GRA RESET is calle
d. -----------------------------------------------------------------------
------------------------- &BDF1 - IND MC WAIT PRINTER - Print a character o
r time out Entry A character to send. Exit If the chara
cter was sent OK Carry true. If the character was not sent Carr
y false. A and BC corrupt. Notes This indirection is provided
to allow the user to drive the printer in a different way. This indirection
is called by the routine MC PRINT CHAR and performs the actions of bo
------------------------ &BDE5 - IND SCR READ - Read a pixel from the scre
en Entry HL screen address C mask for pixel Exit
A decoded ink that the pixel was set to. Flags corrupt. Notes
The mask supplied must be a mask for a single pixel otherwise the dec
oding of the ink read from the screen will not work correctly. -----------
------------------------------------------------------------ &BDE8 - SCR
WRITE - Plot a pixel usith MC BUSY PRINTER and MC SEND PRINTER. Th
is indirection is initialised when MC RESET PRINTER is called. ------------
---------------------------------------------------------- &BDF4 - IND KM S
CAN KEYS - Scan the keyboard Entry Interupts must be disabled.
Exit AF,BC,DE,HL corrupt. Notes This indirection is called e
very 50th of a second. The repeat and start up speeds are measured in 5
0ths of a second. If the escape key is pressedng the current write mode
Entry HL screen address C mask for the pixels B en
coded ink to plot with Exit AF corrupt. Notes ** DO LATE
R ** ----------------------------------------------------------------------
&BDEB - IND SCR MODE CLEAR - Clear the screen to ink 0 Entry N
one Exit AF,BC,DE,HL corrupt. Notes This indirection is
initilised when SCR INITIALISE or SCR RESET are called. V1.0 the
n the indirection KM TEST BREAK is called to process the break. ----
-------------------------------------------------------------------
END OF INDIRECTIONS
END OF INDIRECTIONS nal jumpblock " ---- It is
necessary for the user to set up the inks if this indirection is called.
V1.1 ---- The screen pack sets up the inks for the user after SC
R MODE CLEAR has been called. The graphics VDUs are put into non-stan
dard states. -------------------------------------------------------------
-------- &BDEE - IND KM TEST BREAK - Test for break or reset Entry
Interupts disabled. C shift and control key states. Exit A
F and HI/O ports --------- PORT &7Fxx Gate array &BCxx HD6845 CRTC select
register &BDxx HD6845 CRTC register data &BFxx HD6845 CRTC data &DFxx Ex
pansion rom select &EFxx Centronics data &F4xx uPD8255 port A data
(PSG) &F5xx uPD8255 port B data (Tape....etc) &F6xx uPD8255
port C data (Keyboard/PSG Control/Tape) &F7xx uPD8255 control &F8
xx Expansion Bus &F9xx Expansion Bus &FAxx Expansion Bus &FA7E Disk dri
ve motor control &FBxx Expansion BL corrupt. Notes This indirecti
on is called by the firmware. If bit 7 of c is set then the control key is
pressed and if bit 6 is set then one of the shift keys is pressed.
This indirection is called after the keys have been scanned and the
escape key was found to be pressed. It is provided so the user can c
hange the action when the break key is pressed. This indirection is setup
when KM INITIALISE or KM RESET are called. -------------------- Nus &FB7E
FDC main status register &FB7F FDC data register &FFxx NOT USED For th
ose port addressess in the expansion bus range Ports &F8xx to &FBxx xx byte as
specified below &00 - &7B DO NOT USE &7C - &7F Disc Interface &80
- &BB DO NOT USE &BC - &BF Reserved for future use &C0 - &DB D
O NOT USE &DC - &DF For communications interfaces &E0 - &FE Availa
ble for user expansion interfaces &FF Bus Reset interfaces - PORT
&7FxxGate array KM RESET - to reset any keyboard indirections and break event.
TXT RESET - to reset any TXT VDU indirectgions. SCR RESET - to reset
any screen indirections. The values returned by KL CHOKE OFF are used by M
C BOOT PROGRAM if the program load fails. This information is include
d for the readers interest. MC BOOT PROGRAM is the recommended means of l
oading and entering a ram foreground program. MC START PROGRAM is the r
ecommended means of entering a rom program &BCxxHD6845 CRTC select regist
er &BDxxHD6845 CRTC register data "s range Ports &F8xx to &FBxx xx byt
e as specified below &00 - &7B DO NOT USE &7C - &7F Disc Interface
&80 - &BB DO NOT USE &BC - &BF Reserved for future use &C0 - &DB
DO NOT USE &DC - &DF For communications interfaces &E0 - &FE Av
ailable for user expansion interfaces &FF Bus Reset interfaces - P
ORT &7FxxGate array or a ram foreground program which has already been loaded.
KL CHOKE OFF disables interupts. -----------------------------------
------------------------------------ &BCCB - KL ROM WALK - Find and initia
lize all background ROMs Entry DE first useable byte of memory
HL last useable byte of memory Exit DE address of the new first u
seable byte of memory HL address of the new last usable byte of memory
AF,BC changed. Notes When a foreground program is entered
it is passed the addressess of the first and last bytes in memory whic
h it may use. The arae of memory outside this is used to store firmwa
re variables, the stack, the jumpblocks and the screen memory. From the
area available for a foreground to use, the areas for background program
s to use must be allocated. The foreground program should initialize
background ROMS at an early stage, before it uses the memory it is gi
&BCC8 - KL CHOKE OFF - Reset the Kernal Entry None Exit
B rom select address of the current foreground rom (if any) DE addre
ss at which the current foreground ROM was entered C rom select address fo
r a ram foreground program. AF,HL changed. Notes If the curren
t foreground program is in ram then the rom select address and entry
point are returned both zero. i.e. the default om at its entry address.
KL CHOKE OFF formven. It may chose whether to enable background ROMS or
not. KL INIT BACK may be used to initialize a particular background ROM o
r this routine may be used to initialize all available background ROMS.
KL ROM WALK inspects the roms at rom select addresses in the range
1..7 in v1.0 firmware and 0..15 in v1.1 firmware. The power-up init
ialize entry of each background rom found is called (unless it is the curr
ent foreground rom in v1.1). This entry may allos part of the close down
required before a new ram foreground program is loaded, as is required by
MC BOOT PROGRAM. The close down must ensure that there are no interrupt or
other events active and using memory which might be damaged by load
ing a new program into memory. In the complete close down MC BOOT PROGRAM d
oes SOUND RESET - to kill of sound generation and OUT to I/O port &F
8FF - reset any external interupts sources KL CHOKE OFF - to kill of events
Ncate some memory for the background roms use by adjusting the valu
es in DE and HL before returning. Once the ROM has been initialized the Ker
nal adds it to the list of external command servers, and notes the base of
the area which the ROM has allocated to itself at the top of memory (if
any). Subsequent FAR CALLs to entries in the rom will automatically
set the IY index register to point at the ROMs upper memory area. ------
---------------------------------------the central 32K of memory. i.e. not under
a rom. The format of a command table is described later. &BCD4 - K
L FIND COMMAND - Search for RSX Entry HL address of the command nam
e to search for Exit IF an RSX or background ROM command was found
Carry true. C ROM select address HL address of the routine If
the command was not found Carry false.C,HL changed. A,B,DE changed.
Notes The command name passed must be in RAM but -----------------
-------- &BCCE - KL INIT BACK - Initialize a particular rom Entry
C rom select address of the rom to initialize DE first useable byte o
f memory HL last useable byte of memory Exit DE address of th
e new first useable byte of memory HL address of the new last useable byte
of memory AF,B changed. Notes The rom select address must be
in the range 1..7 in V1.0 and 0..15 in V1.1 firmware and the rom at this
addressmay lie underneath a ROM. The name may be any number of characters
long but only the first 16 characters are significant. All alphabetic
characters in the name should be in upper case and the last character of
the name should have bit 7 set. The rom select and routine addresses
returned are suitable for calling KL FAR PCHL. The list of external c
ommand servers is generated as background roms and rsxs are initialized.
The command tables are scanned i must be a background rom or the req
uest will be ignored. In v1.1 firmware the reuqest will be ignored if
the rom is the current foreground rom. The foreground program should initi
alize background ROMS at an early stage, before it uses the memory it is
given. It may chose whether to enable background ROMS or not. KL ROM WALK
may be used to initialize a particular background ROM or this routine may
be used to initialize all available background ROMS or this n the
opposite order to that in which the command servers were introduced.
Thus, RSXs will tend to take precedence over background roms, since
rsxs are in general, initialized after background roms. Background roms
are normally initialized in reverse order of rom select address, so lower
numbered roms will take precedence over higher. The first-entry in a ba
ckground roms command name table (the one associated with the power-up
entry) may be used as routine may be used to initialize particular ro
ms. This routine causes the background roms power-up initialization entry
to be called. This entry may allocate some memory for the background
roms use by adjusting the values in DE and HL before returning. Once
the ROM has been initialized the Kernal adds it to the list of
external command servers, and notes the base of the area which the ROM has
allocated to itself at the top of memory (if any). Sub the roms name. KL F
IND COMMAND may be used, therefore, to find out whether a particular backg
round rom has been initialized. When searching for a foreground program,
roms are inspected starting with rom 0 and working upwards. The search
ceases when the first unused rom address greater than 0 on v1.1 firmware
and greater than 15 on v1.1 firmware is found. The on-board basic ma
y be entered by searching for and invoking the command 'BASIC' If
a forsequent FAR CALLs to entries in the ROM will automatically set
the IY index register to point at the ROMs upper memory area. -----
----------------------------------------------------------------- &BCD1 -
KL LOG EXT - Introduce an RSX to the firmware. Entry BC address of
the RSX command table HL 4 byte area of RAM for the Kernals use. Exi
t DE changed. Notes Both the RSXs command table and the Kern
als storage area must lie in Neground rom command is found the
rom is entered unconditionally and this routine never returns. ---
------------------------------------------------------------------- &BCD7
- KL NEW FRAME FLY - Initialize and put a block onto the frame flyback li
st. Entry HL address of the frame flyback block B event class
C rom select address of the event routine DE address of the event r
outine Exit AF,DE,HL changed. Notes Thnd must lie in the
central 32k of ram. The last 7 bytes of the tick block are an event block
which is initialized to reflect the parameters passed in B,C,DE. The e
xact layout of a fast ticker block is described later. The fast ticke
r block is appended to the fast ticker list if it is not already on it.
The fast ticker facility is not intended for general use. However, it
does allow relatively short times to be measured giving greater
resolution the frame flyback block is 9 bytes long and must lie in the centr
al 32k of ram. The last 7 bytes of the frame flyback block are an event
block which reflects the parameters passed in B,C,DE. The exact
layout of a frame flyback block is described later. The frame flyback bloc
k is appended to the frame flyback list if it is not already on it. T
his routine enables interupts. -------------------------------------------
-------------------------- - &BCDA -an the general ticker facilities.
This routine enables interupts. ------------------------------------
--------------------------------- - &BCE3 - KL ADD FAST TICKER - Put a
block onto the fast ticker list. HL address of the fast ticker block
Exit AF,DE,HL changed. Notes The fast ticker block is 9 by
tes long and must lie in the central 32k of ram. The last 7 bytes of the
fast ticker block are an event block which must be initialized befo KL A
DD FRAME FLY - Add a block to the frame flyback list Entry HL addre
ss of the frame flyback block Exit AF,DE,HL changed. Not
es The frame flyback block is 9 bytes long and must lie in the central
32k of ram. The last 7 bytes of the frame flyback block are an event
block which must be initialized before calling this routine. The exact lay
out of a frame flyback block is described later. The block is appended to
the frame flyback lisre calling this routine. The exact layout of a f
ast ticker block is described later. The fast ticker block is appended to
the fast ticker list if it is not already on it. The fast ticker faci
lity is not intended for general use. However, it does allow relatively
short times to be measured giving greater resolution than the general
ticker facilities. This routine enables interupts. -----------------
---------------------------------------------------- t if it is not already
on it. This routine enables interupts. ---------------------------
------------------------------------------ - &BCDD - KL DEL FRAME FLY
- Remove a block from the frame flyback list Entry HL address of t
he frame flyback block Exit AF,DE,HL changed. Notes This
routine does nothing if the block is not on the list. Removing a block fr
om the list only prevents the event being kicked again. It does not affe
ct - &BCE6 - KL DEL FAST TICKER - Remove a block from the fast ticker l
ist Entry HL address of the fast ticker block Exit AF,D
E,HL changed. Notes This routine does nothing if the block is not on
the list. Removing a block from the list only prevents the event fro
m being kicked again. It does not affect any outstanding fast ticker events
. This routine enables interupts. &BCE9 - KL ADD TICKER - Put a blo
ck onto the tick list Entany outstanding frame flyback events. This
routine enables interupts. ------------------------------------------------
--------------------- -- &BCE0 - KL NEW FAST TICKER - Initilize and
put a block onto the fast tick list Entry HL address of the fa
st ticker block DE event class C rom select address of the event rou
tine DE address of the event routine Exit AF,DE,HL changed.
Notes The fast ticker block is 9 bytes long a N ry
HL address of the tick block DE initial value for the count entry
BC value for the recharge entry Exit AF,BC,DE,HL changed. N
otes The tick block is 13 bytes long and must lie in the central 32k o
f memory. The last 7 bytes of the tick block are an event block which
must be initialized before this routine is called. The exact layout of a
tick block is described later. The count and recharge entries in the bloc
k are set. The class C rom select address DE address of event routin
e Exit HL address of event block+7 Notes The event bloc
k is 7 bytes long and must lie in the central 32k of ram. The rom
select address of the routine are the far address of the event routine.
The event class is bit significant as follows Bit 0 Near address
Bit 1..4 Synchronous event priority Bit 5 Must be zero Bit 6 Express e
vent Bit 7 Asynchronous event block is then appen ded to the tick lis
t if it is not already on the list. This routine may be used, theref
ore, to change the count and recharge entries of an existing block.
Blocks with a count entry of zero are ignored when the list is p
rocessed. Setting a recharge value of zero, therefore, sets up the block
as a 'one shot timer'. Since it takes the Kernal time to ignore a tick bl
ock, any redundant blocks should be removed from the list as s If the
asynchronouse bit is set then the event is an asynchronous event, othe
rwise it is a synchronous event. Asynchronous events do not have priorities
and so the priority field is ignored. If the express event bit is set t
hen the event is an express event. The meaning of this depends on whethe
r the event is synchronous or asynchronous. All express synchronous
events have higher priorities than any normal synchronous event. The prio
rity of a synchronoon as possible. It is not possible to predict, part
icularly with synchronous events, how long it will be after the kick
before the event routine is actually called. notwithstanding these delays
, the ticker may be used to obtain an exact number of kicks in a gi
ven period since the recharge mechanism immediatly resets the count. T
he event counting mechanism will ensure that kicks are not missed, provid
ed that there are never more than 127 outstandious event is encoded in
bits 1..4 of the class, the higher the number the greater the pri
ority. No event may have priority 0. The processing of normal synchro
nous events may be disabled, while that of express synchronous events may
not. An express asynchronous event will have its event routine calle
d directly from the interupt path. A normal asynchronous event is
processed just before returning from the interupt (with interupts e
nablng at once. This routine enables interupts. -------------------
-------------------------------------------------- - &BCEC - KL DEL T
ICKER - Remove a block from the tick list Entry HL address of tick
block Exit If the tick block was found on the tick list Carry
true. DE count remaining before the next event If the tick block was not
found on the tick list Carry false. DE changed. A,HL and other flag
s changed. Notes ed). If the near address bit is set then
the event routine is located either in the lower rom or in the centra
l 32k ram. The rom select address is ignored and the routine is
called directly rather than through the FAR CALL mechanism, thus reduci
ng the event processing overhead. Where possible, asynchronous events
should be at near addresses. Express asynchronous events must alway
s be at 'near addresses'. Event blocks appear i The contents
of the block are not affected by removing it from the list. In particul
ar the continued processing of outstanding events is not affected. The blo
ck could be put back on the list at a later date and it could continue cou
nting where it left off. This routine enables interupts. -----------
---------------------------------------------------------- &BCEF - KL INIT
EVENT - Initialize event block Entry HL address of event block
B event !N!!!!!!!!!n various other blocks handled by the Kernel, in
cluding frame flyback,fast ticker and tick blocks. This routine is used t
o initialize the event block parts of these. The bytes after the last byte
of the event block, even where the block forms part of another block, are
not used by the Kernel. When the event routine is called the address o
f the block is passed to it, so the user may append furthur information
about the event to the block. This allows several less it has already
reached the maximum of 127). Once event processing has begun it continues
until the count becomes zero or the event is disarmed. count0 The
event is armed but event processing is not active The count
is incremented and the event processing initiated. How event pr
ocessing is initiated depends on the event class Synchronous events
Synchronous events are added to the sychronous event queue in priority orde
r. Itsimilar events to share the same event routine, each event having i
ts own variables depending on its event block. Entry If the event ro
utine is at a far address HL address of byte 5 of the event block (s
o any appended data can start at address hl+2) if the even routine is at a
near address deaddress of byte 6 of the event block. (so any appende
d data can start at address DE+1) Exit AF,BC,DE,HL changed. Th
e event routine may use the IX is the responsibility of the foreground progra
m to process the synchronous event queue reguarly. Synchronous event
routines are called when the foreground program calls KL DO SYNC, the
event count is then dealt with when KL DONE SYNC is called. Asynchron
ous events a. Not in the interupt path The event routine is called
immediatly. When the routine returns, if the event count greater than zero
it is decremented. If the count is still greater than z and IY registe
rs but must preserve them. It may not use the second register set. Expr
ess asynchronous events may not enable interupts. This routine enable
s interupts. -------------------------------------------------------------
---------- &BCF2 - KL EVENT - Kick an event block Entry HL add
ress of event block Exit AF,BC,DE,HL changed. Notes Unl
ike the vast majority of Kernel routines this routine may be called from th
e interupt ero then the procedure is repeated. b. In the interupt path - N
ormal Asynchronous event The event is placed on the interupt event pendin
g queue. On exit from the interupt path the Kernel processes all events
on the interupt pending queue as described in (a) above. This means
that normal Asynchronous event routines are called in an extension of nor
mal (non- interupt) processing between interupt return and the main program
. The routine is, therefore, noy subpath. Because the LOW JUMP instruct
ion in the main firmware jumpblock enables interupts the user must pick
the address part of the low address out of the jumpblock and mask off the
top two bits to extract the address in the lower rom of KL event.
The following does this LD DE,(KLEVENT+1) extract address part o
f LOW JUMP RES 7,D remove upper rom state from low ad
dress RES 6,D remove lower rom state from low addject to
the restrictions imposed on interupt path routines. c. In the interu
pt path - Express Asynchronous events The event routine is called immedi
atly, in the interupt path. The routine must be at a near address. U
nder no circumstances may the routine enable interupts. KL EVENT ena
bles interupts unless it is called from the interupt path. ---------------
------------------------------------------------------- &BCF5 - KL SYNC RE
SET - Clear synchronouress CALL PCDEINSTRUCTION call KL EVENT (if t
he user is going to perform this operation repeatedly it is recommend
ed that the address should be extracted once and should be stored somewh
ere) The effect of the kick depends on the event count in the event block
count0 The event is disarmed, and kicking has no effect count
0 There are other kicks outstanding and the event is being proc
essed. This kick simply increments the count (un "N"""""""""s event queue.
Entry None Exit AF and HL changed. Notes
It is the user's responsibility to ensure that the discarded events and
any currently active events are reset. The event count of discarde
d events will be greater than zero, so any furthur kicks will simply incre
ment the count, but not add the event to the synchronous event queue- the
events are, therefore, effectively disarmed. ----------------------------
-----------nt priority CALL KLDOSYNC call the event routine PO
P AF POP HL CALL KLDONESYNC reset the event priority mask, deal
with the event count and put the event back on
the queue if the count is still greater
than zero JR TRYAGAIN see if any events are
still awaiting processing -----------------
-------------------------------------------------------------- &BCF8 - KL D
EL SYNCHRONOUS - Remove a synchronous evnt from the event queue Entr
y HL address of the event block Exit AF,BC,DE,HL changed.
Notes Deleting an event from the queue prevents the outstanding kicks
form being processed. Before a synchronous event block is reset
or reinitialized this routine should be used to ensure that it is not cu
rrently pending. This routine enables interupts. ---------------------
-- &BCFE - KL DO SYNC - Do an event routine Entry HL address o
f event block Exit AF,BC,DE,HL changed. Notes This routi
ne is to be called to process an event after KL NEXT SYNC has found it t
o be pending. Use of this entry at other times is not recommended.
This routine doesn't affect the event count. ----------------------------
------------------------------------------- &BD01 - KL DONE SYNC - Finish p
rocessi -----------------------------------------------------------------------
&BCFB - KL NEXT SYNC - Get next event from the queue. Entry N
one Exit If there was an event to be procssed Carry true. HL
address of the event block A previous event priority (if any) If the
re is no event to be processed Carry false. A,HL changed. DE changed
. Notes KL NEXT SYNC returns the address of the next event to
be processed, if any, whichng an event Entry A previous
event priority HL address of the event block Exit AF,BC,DE,HL
changed. Notes This routine is intended to be called after KL NEX
T SYNC, to find a pending event, and KL DO SYNC, to run the event routine
. It uses the previous event priority and the event block address retur
ned by KL NEXT SYNC. Other uses of this entry are not recommended. Se
e KL NEXT SYNC above for the scheme for processing sy it has taken off
the synchronous event queue and whose priority has now been set as the ev
ent priority mask. The foreground program should call KL POLL SYNCHRON
OUS reguarly to check for outstanding events. KL POLL SYNCHRONOUS is a sh
ort routine in RAM, so calling it imposes little overhead. If there is a
n event outstanding then the above procedure should be invoked, and should
be repeated until the event queue is empty. The current event priori
ty mechaninchronous events. Restoring the current event priority
is an essential step in maintaining the sychronous event priority sc
heme. If the event count is greater than zero then it is decremented. If t
he count is still greater than zero then there are further events
outstanding and the event is placed back on the synchronous event
queue. The event may be disarmed between KL NEXT SYNC and KL DONE SYNC
. Setting the event count to one beforesm allows event routines to poll
for, and process, events of higher priority. The priority returned by t
his routine must be unchanged until it is passed to KL DONE SYNC/. KL NEXT
SYNC enables interupts. The procedure for processing synchronous events
is TRYAGAIN CALL KLNEXTSYNC return next event, if any JR
NC, jump if no event to process PUSH HL save
address of event PUSH AF save previous eve #N######### ca
lling KL DONE SYNC forces multiple events to be treated as a single event
. KL DONE SYNC may enable interupts. -------------------------------
--------------------------------------- &BD04 - KL EVENT DISABLE - Disable
normal synchronous events Entry None Exit HL changed.
Notes KL EVENT DISABLE does not prevent events for being kicked. The
effect is to 'mask off' all pending normal synchronous events so that t
hey are hidden from ----------------------------------------------------
&BD10 - KL TIME SET Entry DE and HL four byte number
Exit AF changed. Notes This value may be used as a clock be
cause the kernal maintains a real clock. -----------------------------
------------------------------------------
----------------------------r &BDxxHD6845 CRTC register data "
the foreground program (when KL POLL SYNCHRONOUS or KL NEXT SYNC are called
) and hence are not processed. KL EVENT ENABLE reverses the effect of KL E
VENT DISABLE It is not possible to disable synchronous events permene
ntly from inside a synchronous event routine as the previous current
event priority is restored when the event routine returns. ----------
------------------------------------------------------------ &BD07 - KL EV
ENT ENABLE - Enable normal synchronous events Entry None
Exit Events are enabled by default. KL EVENT ENABLE reverses the effect
of KL EVENT DISABLE. It is not possible to enable synchronous ev
ents permanently from inside a synchronous event routine as the current ev
ent priority which is used to disable the events is restored when the
event routine returns. ---------------------------------------------
------------------------- &BD0A - KL DISARM EVENT - Preve Expansion charact
ers +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
135136137
135136137 13513
6137 +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+
132133134 nt an e
vent from occuring Entry HL address of the event block Exit
AF changed All others unchanged. NOTES KL DISARM EVENT sho
uld be used with asynchronous events. Syncronous events may be disarmed
by calling KL DEL SYNCHROUNOUS, which also ensures that the event is n
ot on the synchronous event queue. The event may be rearmed by reinitiali
zing it (KL INIT EVENT) or by setting the event count (byte2 of the event
block) to zero. 132133134
132133134 +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-+-+-+-+-+-+ +---+---+---+ 12913
0131 129130131
129130131 +-------+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-+-+-+-+-+-+-+---+---+---+---+ &BD0D - KL TIME PLEASE - Ask th
e time elapsed. Entry None Exit DE and HL count N
otes The count is a four byte number. D is the most significant byte and
L is the least significant byte. The count is set to zero when the m
achine is turned on or may be set to zero by using KL TIME SET. The
count is not kept up to date if long periods of time are spent with the
interupts disabled. Interupts are enabled. ------------------- $N$$
$$$$$$$ 128 138
128 NA138 128 1
38 +---------+---+-+-+---+---+---+---+---+---+---+-+-+---+-----+---+---+---+
140 NA NA
NA 139 NA NA NA
139 +---------+-----+------ +---+ 26
36 +---+-+---+-+---+ Left 12 14 Right 52 54
72 74 +---+-+---+-+---+ 25 35 +---+ Down
Fire1 Fire2 +---+---+ 07 06 47 46 67 66 +---+---+ Key map
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 66
64 65 57 56 49 48 41 40 33 32 25 24 16 79 10 11 3 +---+-+-+-+-+-+-+-+-+-+-+-+-
+-+-+-+-+-+-+-------------------------+-----------+---+---+---+ (All others NA)
ASCII Keymap NA - not available +---+---+---+---+---+---+---+---+---+---+-
--+---+---+---+---+---+---+---+ NA 1F 1E 10 7F
21 22 23 24 25 26 27 28 29 5F 3D A3 10 7F NA NA NA 31 32 33 34 35
36 37 38 39 30 2D 5E 10 7F +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-+-+-+-+-+-+-+---+---+---+---+ E1 11 17 05 12 1-+-+-+-+-+-+-+-+---+---+---+--
-+ 68 67 59 58 50 51 43 42 35 34 27 26 17 18 20 12 4 +-----+-+-+-+-+-+-+-+
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +---+---+---+ 70 69 60 61 53 52 44 4
5 37 36 29 28 19 13 14 5 +-------+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-+-+-+---+---+---+---+ 21 71 63 62 55 54 46 38 39 31 30 22 21 15 0 7
+---------+---+-+-+---+---+---+---+---+---+---+-+-+---+-----+---+---+---+ 23
9 47 4 19 15 09 0F 10 00 1B 09 51 57 45 52
54 59 55 49 4F 50 7C 7B 0D NA NA NA 09 71 77 65 72 74 79 75 69 6F 70 40 5B
0D +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+0D +---+-
--+---+ 01 13 04 06 07 08 0A 0B 0C 1D NA 41 53 44
46 47 48 4A 4B 4C 2A 2B 7D NA NA NA 61 73 64 66 67 68 6A 6B 6C 3A 3B
5D +-------+-+-+-+-+-+ 6 8 2 1 +---------+--
---+-------------------------------+-----------+---+---+---+ Joystick 0
Up +---+ 72 +---+-+---+-+---+ Left 74 75 Ri
ght +---+-+---+-+---+ 73 +---+ Down Fire1 Fire2 +---+-
--+ 76 77 +---+---+ Joystick 1 Up +---+ 48
+---+-+---+-+---+ Left 50 51 Right +---+-+---+-+---+ 49
+---+ Dow-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+ 1A
18 03 16 02 0E 0D 1C F8 NA 5A 58 43 56 42 4E 4D 3C 3E
3F 60 NA NA F4 NA 7A 78 63 76 62 6E 6D 2C 2E 2F 5C F0 +-
--------+---+-+-+---+---+---+---+---+---+---+-+-+---+-----+---+---+---+ E0
FA F9 FB NA E0 20
NA F6 F5 F7 E0 n Fire1 Fire2 +--
-+---+ 52 53 +---+---+ Up +---+
72 +---+-+---+-+---+ Left 74 75 Right +---+-+---+-+---+
73 +---+ Down Fire1 Fire2 +---+---+ 76 77 +---+---+
Joystick 1 Up +---+ 48 +---+-+---+-+---+ Lef
t 50 51 Right +---+-+---+-+---+ 49 +---+ Dow 20
F2 F1 F3 +---------+-----+-------------------------------+---
--------+---+---+---+ +---------+ Control Shift Standard +---------+
Joystick 0 Up +---+ 0B 0B +---+-+---+-+---
+ Left 08 09 Right 08 08 +---+-+---+-+---+ 0a
0a +---+ Down Fire1 Fire2 +---+---+ 58 5A 58 5A
+---+---+ Joystick 1 Up %N%%%%%%%%% It will not be processed but
returned how it is. The character doesn't need to be read from the keyboard
. You can only have one character to put back. If anymore are put back
before a character is read then the first character will be lost.
Character 255 cannot be returned as this is used as a marker to tell the
computer there is no character being put back. &BB0F - KM SET EXPAND - Se
t an expansion string Entry B expansion token for expansion to se
&BB00 - KM INITIALISE - Initialise the key manager Entry No co
nditions. Exit AF,BC,DE and HL corrupt. Notes Interupts
are enabled. The keyboard buffer is cleared. Shift lock and Caps lock
are turned off. The repeat speed is set to default. The repeat key map
is initialized to default state. The expansion buffer is set up and the
expansions are set to their default values. The key translation tabl
es are intialized to its t C length of string HL address of string
Exit If everything OK Carry true. If it was too lon
g or token invalid Carry false. A,BC,DE,HL and other flags corrupt.
Notes If there isn't enough room for the new string then the old sta
te will not be changed. Set an expansion string. Interupts are en
abled. &BB12 - KM GET EXPAND - Get a character from an expansion string
Entry A expansion token L chardefault state. The break ev
ent is disarmed. The break indirection call is set to its initial value.
&BB03 - KM RESET - Reset the Key Manager Entry No conditions.
Exit AF,BC,DE,HL corrupt Notes Interupts are enabled.
The break indirection call is set to its initial routine enabling SH
IFT CONTROL ESC reset. The keyboard buffer is cleared. The expansion b
uffer is set to default. The break event is disarmed. &BB06 - KM Wact
er number Exit If character found Carry true. A characte
r Token invalid, or string not long enough Carry false. A corrup
t DE and other flags corrupt. &BB15 - KM EXP BUFFER - Allocate a bu
ffer for expansion strings Entry DE address of buffer HL leng
th of buffer Exit Buffer OK Carry true. Buffer too short
Carry false. A,BC,DE,HL and other flags corrupt Notes T
he buffer must be AIT CHAR - Wait for a character from the keyboard Entry
No conditions Exit Carry true. Other flags corrupt. A ch
aracter Notes Try to get a character from keyboard buffer. If one i
s not found then the routine will wait until one is. &BB09 - K
M READ CHAR - Get a character from the keyboard Entry No conditions
Exit If a character was available Carry True. A character
IF no character available Carry Faat least 49 bytes and in RAM. It must
not be under a ROM. If the new buffer is too short, the old one is left unc
hanged. Interupts are enabled. &BB18 - KM WAIT KEY - Wait for
a key from the keyboard buffer Entry No conditions Exit
Carry true. A character or expansion token Other flags corrupt.
&BB1B - KM READ KEY - Get a key from the keyboard buffer Entry No
conditions Exit Key available Carry true. A chlse. A corrupt
Other flags corrupt. V1.0 and V1.1 ------------- If thi
s routine was called repeatedly until it reports there is no character
it could be used to completely clear the keyboard buffer. &BB0C - KM CHAR
RETURN - Return a character to the keyboard buffer Entry A charact
er to put back Exit All registers preserved. Notes The c
haracter will be put back into the buffer before any other character
is generated. &N&&&&&&&&&aracter or token No key Carry false.
A corrupt. Other flags corrupt. &BB1E - KM TEST KEY - Test key has
been pressed Entry A key number (as on disc drive CPC6128 or as fo
und in basic manual) Exit Key pressed Zero false. Key no
t pressed Zero true. Carry false. C shift and control state
BIT 7 1control key pressed, 0not pressed BIT 5 1shift key pressed, 0n
ot pressed A,HL corrupt. Other flags corrus corrupt. Notes
See KM SET TRANSLATE &BB33 - KM SET CONTROL - Set entry in key transl
ation table (control) Entry A key number B new translation
Exit AF and HL corrupt Notes See KM SET TRANSLATE &
BB36 - KM GET CONTROL - Get entry from translation table (control) Entry
A key number Exit A current translation HL and flags cor
rupt. Notes See KM SET TRANSLATE ------------------pt. N
otes The number is not checked. This uses the keyboard scanning
routine which runs every 50th of a second. &BB21 - KM GET STATE - Ge
t shift lock and caps lock states Entry None. Exit L sh
ift lock state (&00 off, &FF on) H caps lock state AF corrupt.
Notes The default state is off. &BB24 - KM GET JOYSTICK - Get sta
tes of both joysticks Entry None Exit H,A state of joys
tick 0 --------------------------------------------------- &BB39 - KM S
ET REPEAT - Set whether a key is allowed to repeat Entry A key numb
er B repeat byte (&FF allowed to repeat, &0 not allowed to repeat)
Exit AF,BC,HL corrupt. Notes If key number is greater than 79
no action is taken. -----------------------------------------------------
---------------- &BB3C - KM GET REPEAT - Ask if a key is allowed to repeat
. Entry A key L state of joystick 1 Flags corrupt.
The bits are set as below Bit 0 - Up Bit 1 - Down Bit 2 - Le
ft Bit 3 - Right Bit 4 - Fire 2 Bit 5 - Fire 1 Bit 6 - Spare
joystick button Bit 7 - zero If a particular bit is set then that bu
tton has been pressed. &BB27 - KM SET TRANSLATE - Set an entry in the key
translation table Entry A key number B new translation
Exit AF,HL corrupt. Notes If the number Exit
If key allowed to repeat Zero false. If key not allowed to repeat
Zero true. Carry false. A,HL and other flags corrupt. All others OK.
---------------------------------------------------------------------
&BB3F - KM SET DELAY - Set delay and repeat speeds Entry H start
up delay L new repeat speed Exit AF corrupt. Notes
The delays are given in keyboard scans which occur every 50th of a se
cokey number is greater than 79 then no action is taken. &80-&9F Expansi
on tokens which are expanded to character strings when KM READ CHAR and
KM WAIT CHAR are executed. &FD caps lock token. &FE Shi
ft lock token. &FF Ignore token. (Throw key away) &E0-&FC are
special tokens for editing in BASIC etc. &BB2A - KM GET TRANSLATE - Get a
n entry from key translation table (normal)
Entry A key number nd. A delay or speed of 0 is taken to mean 256.
The default delay is 30 scans and the default speed is 2 scans. The
delay or speed values only apply to keys that are set to repeat. ---------
------------------------------------------------------------ &BB42 - KM GE
T DELAY - Get delay and repeat speeds Entry None. Exit H
start up speed L repeat speed AF corrupt --------------------
------------------------------------------------- &BB4 Exit A curr
ent translation HL and flags corrupt. Notes See KM SET TRANSLA
TE &BB2D - KM SET SHIFT - Get an entry from translation table
(Shifted) Entry A key number B new translati
on Exit AF and HL corrupt. Notes See KM SET TRANSLATE
&BB30 - KM GET SHIFT - Get entry from translation table (shifted) Ent
ry A key number Exit A current translation HL and flag
'N'''''''''5 - KM ARM BREAKS - Allow break events to be generated Entry
DE address of break event C Rom select address for routine Ex
it AF,BC,DE,HL corrupt. All others preserved. Notes This routi
ne enables interupts. ----------------------------------------------------
----------------- &BB48 - KM DISARM BREAK - Stop break events from being g
enerated Entry None. Exit AF and HL corrupt. Notes
This routine enables interupts / £#,nnn nnnn""()"O"()""T n "I knew
this attempt would be an outstanding success." "Use and to scroll the text, C
ONTROL and to skip to previous/next file,SPACE to rebuild screen and RETURN to
finish. Press any key to start!" " " ( ) t(" ",) r,r,,T,h,",6N" n n.
---------------------------------------------------------------------
&BB4B - KM BREAK EVENT Entry None Exit AF and HL corrupt
. ---------------------------------------------------------------------
------------------ 53 +---+---+
being generated Entry None. Exit AF and HL corrupt.
Notes This routine enables interuptsn, T6 n nw(n,n)C , p
r,J rT " " pr, rHh n " " pr,r C "Bye darling!""3DC0DD6E00DD6601A
FB6C847235E2356CD78BB2D25EB7E23FEFF20087E2305C8E67F180CE67FFE09200A7AE607D6092F8
2571826FE202821C5D5E5F3018A7FED49CDDEADEBCDDEAD0100081A13770930FAD9ED49D9FBE1D1C
1147AFE50D010B6C9". N pr,("&"(,,)) , , A(,t(,"DEAD"))s((),)s(() ,). A "
File doesn't exist" - A "File is not ASCII" + A "File read error" A A A
8"Out of memory" nDISC p Dn & (&" "(s)"("9 File Scanner V1.1 (C)1990 b
y DRAGONBREED WETWARE Written out of PURE FRUSTRATION. Please if you write7( a p
rogram write it GOOD AT ONCE. So that others2 don't have to re-invent the wheel
only because you- refused to make the wheel workable...Fd a-z s*n (""),s,nxpr nn
n -n""nn & 0 "Program error"A"in line" "nn & (&" "(s)"("0 2 C) 1989 PowerHows
e/* *Dragont(,"DEAD"))s((),)s(() ,). A "File doesn't exist" - A "File is not
ASCII" + A "File read error" A A A 8"Out of memory" nsn" "n"SCAN.BAS Tex
t File ScannerDRAGONBREED WETWARE""Now enter all files you wish to view. Finish
with RETURN. Don't mind mistakes."G sn""nn £"Filename ",snCnn"Attempting to re
ad in files..."()"O" n nu(" "(s)" "(K,),O)O n""nnnn" "(s)( s