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 43 50 44 52 65 61 64 20 76 33 2E 32 34 00 ..CPDRead v3.24.
000030: 29 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 00 00 02 09 4E E5 00 00 41 02 00 00 00 02 ......N...A.....
000120: 00 00 46 02 00 00 00 02 00 00 42 02 00 00 00 02 ..F.......B.....
000130: 00 00 47 02 00 00 00 02 00 00 43 02 00 00 00 02 ..G.......C.....
000140: 00 00 48 02 00 00 00 02 00 00 44 02 00 00 00 02 ..H.......D.....
000150: 00 00 49 02 00 00 00 02 00 00 45 02 00 00 00 02 ..I.......E.....
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0002A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0002B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0002C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0002D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0002E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0002F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0003A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0003B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0003C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0003D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0003E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0003F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0004F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0005F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0006F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0007F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0008F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0009F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000A00: 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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0010A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0010B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0010C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0010D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0010E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0010F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0011A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0011B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0011C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0011D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0011E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0011F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
001410: 01 00 00 00 02 09 4E E5 01 00 41 02 00 00 00 02 ......N...A.....
001420: 01 00 46 02 00 00 00 02 01 00 42 02 00 00 00 02 ..F.......B.....
001430: 01 00 47 02 00 00 00 02 01 00 43 02 00 00 00 02 ..G.......C.....
001440: 01 00 48 02 00 00 00 02 01 00 44 02 00 00 00 02 ..H.......D.....
001450: 01 00 49 02 00 00 00 02 01 00 45 02 00 00 00 02 ..I.......E.....
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0015A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0015B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0015C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0015D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0015E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0015F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0016A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0016B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0016C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0016D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0016E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0016F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0017A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0017B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0017C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0017D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0017E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0017F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0018A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0018B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0018C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0018D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0018E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0018F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0019F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0020A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0020B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0020C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0020D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0020E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0020F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0021A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0021B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0021C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0021D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0021E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0021F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0022A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0022B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0022C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0022D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0022E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0022F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0023A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0023B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0023C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0023D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0023E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0023F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0024A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0024B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0024C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0024D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0024E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0024F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0025A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0025B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0025C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0025D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0025E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0025F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0026A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0026B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0026C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0026D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0026E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0026F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
002710: 02 00 00 00 02 09 4E E5 02 00 41 02 00 00 00 02 ......N...A.....
002720: 02 00 46 02 00 00 00 02 02 00 42 02 00 00 00 02 ..F.......B.....
002730: 02 00 47 02 00 00 00 02 02 00 43 02 00 00 00 02 ..G.......C.....
002740: 02 00 48 02 00 00 00 02 02 00 44 02 00 00 00 02 ..H.......D.....
002750: 02 00 49 02 00 00 00 02 02 00 45 02 00 00 00 02 ..I.......E.....
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: 00 48 49 53 4F 46 54 2D 43 42 49 4E 00 00 00 80 .HISOFT-CBIN....
002810: 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 ................
002820: 00 48 49 53 4F 46 54 2D 43 42 49 4E 01 00 00 43 .HISOFT-CBIN...C
002830: 12 13 14 15 16 17 18 19 1A 00 00 00 00 00 00 00 ................
002840: 00 53 54 44 49 4F 20 20 20 4C 49 42 00 00 00 49 .STDIO LIB...I
002850: 1B 1C 1D 1E 1F 20 21 22 23 24 00 00 00 00 00 00 ..... !"#$......
002860: 00 42 41 53 49 43 32 20 20 4C 49 42 00 00 00 2C .BASIC2 LIB...,
002870: 25 26 27 28 29 2A 00 00 00 00 00 00 00 00 00 00 %&'()*..........
002880: 00 42 41 53 49 43 31 20 20 4C 49 42 00 00 00 77 .BASIC1 LIB...w
002890: 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 00 +,-./0123456789.
0028A0: 00 45 58 54 43 4D 44 20 20 48 20 20 00 00 00 0A .EXTCMD H ....
0028B0: 3A 3B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 :;..............
0028C0: 00 53 54 44 49 4F 20 20 20 48 20 20 00 00 00 15 .STDIO H ....
0028D0: 3C 3D 3E 00 00 00 00 00 00 00 00 00 00 00 00 00 <=>.............
0028E0: 00 52 45 56 45 52 53 49 20 43 20 20 00 00 00 6F .REVERSI C ...o
0028F0: 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 00 00 ?@ABCDEFGHIJKL..
002900: 00 52 45 41 44 20 20 20 20 4D 45 20 00 00 00 02 .READ ME ....
002910: 4D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 M...............
002920: E5 46 49 52 4D 34 20 20 20 4C 49 42 00 00 00 44 .FIRM4 LIB...D
002930: 4E 4F 50 51 52 53 54 55 56 00 00 00 00 00 00 00 NOPQRSTUV.......
002940: E5 46 49 52 4D 33 20 20 20 4C 49 42 00 00 00 4A .FIRM3 LIB...J
002950: 57 58 59 5A 5B 5C 5D 5E 5F 60 00 00 00 00 00 00 WXYZ[\]^_`......
002960: E5 46 49 52 4D 35 20 20 20 4C 49 42 00 00 00 65 .FIRM5 LIB...e
002970: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 00 00 00 abcdefghijklm...
002980: E5 46 49 52 4D 32 20 20 20 4C 49 42 00 00 00 65 .FIRM2 LIB...e
002990: 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 00 00 00 nopqrstuvwxyz...
0029A0: E5 46 49 52 4D 36 20 20 20 4C 49 42 00 00 00 18 .FIRM6 LIB....
0029B0: 7B 7C 7D 00 00 00 00 00 00 00 00 00 00 00 00 00 {|}.............
0029C0: E5 46 49 52 4D 31 20 20 20 4C 49 42 00 00 00 49 .FIRM1 LIB...I
0029D0: 7E 7F 80 81 82 83 84 85 86 87 00 00 00 00 00 00 ~...............
0029E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0029F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002A00: D1 E5 F5 21 00 00 7B C9 CD BE 01 CD 88 00 D0 23 ...!..{........#
002A10: C9 CD BE 01 CD DD 01 D8 18 0F CD BE 01 FE 41 3F ..............A?
002A20: D0 FE 5B D0 23 C9 CD BE 01 C6 E0 18 F0 CD BE 01 ..[.#...........
002A30: CD F6 01 C0 23 C9 FE 20 C8 FE 0A C8 FE 09 C9 CD ....#.. ........
002A40: BE 01 CD DD 01 EB D0 C6 20 6F C9 CD BE 01 CD E9 ........ o......
002A50: 01 EB D0 6F C9 EB 21 00 00 1A B7 C8 13 23 18 F9 ...o..!......#..
002A60: F1 C1 D1 E1 F5 1A ED A0 2B 77 23 E0 18 F7 F1 C1 ........+w#.....
002A70: E1 D1 F5 78 B1 C8 ED 52 19 38 03 ED B0 C9 0B 09 ...x...R.8......
002A80: EB 09 EB 03 ED B8 C9 DD E5 C1 09 7E 23 66 6F C9 ...........~#fo.
002A90: DD E5 C1 09 6E 26 00 C9 DD E5 C1 EB 09 73 23 72 ....n&.......s#r
002AA0: EB C9 DD E5 C1 EB 09 73 EB C9 D1 EB E3 73 23 72 .......s.....s#r
002AB0: EB C9 5E 23 56 EB 09 EB 72 2B 73 EB C9 5E 23 56 ..^#V...r+s..^#V
002AC0: D5 EB 09 EB 72 2B 73 E1 C9 EB E1 CD 4B 02 4E 23 ....r+s.....K.N#
002AD0: 46 23 78 B1 28 0C 7E 23 BB 7E 23 20 F1 BA 20 EE F#x.(.~#.~# .. .
002AE0: 60 69 E9 19 C9 B7 ED 52 C9 21 00 00 1A CD 88 00 `i.....R.!......
002AF0: D0 D6 30 13 D5 29 5D 54 29 29 19 5F 16 00 19 D1 ..0..)]T))._....
002B00: 18 EA D5 59 50 CD 50 01 E3 7B C6 30 FE 3A 38 02 ...YP.P..{.0.:8.
002B10: C6 07 2B 77 E3 7D B4 20 EA E1 C9 E5 CB 7C 28 03 ..+w.}. .....|(.
002B20: CD FB 00 CD C2 02 D1 CB 7A C8 2B 36 2D C9 E5 D5 ........z.+6-...
002B30: C5 6F E5 2A 81 08 E5 CD 4C 00 C1 D1 E1 C9 E5 2A .o.*....L......*
002B40: 81 08 77 23 22 81 08 E1 C9 21 FE 02 18 03 21 EE ..w#"....!....!.
002B50: 02 CD 28 04 18 0B 21 82 00 22 7F 08 D1 E1 E5 D5 ..(...!.."......
002B60: 39 C5 5E 23 56 2B 2B E5 3E C3 32 7E 08 1A 13 B7 9.^#V++.>.2~....
002B70: 28 0F FE 25 20 06 1A FE 25 20 12 13 CD 7E 08 18 (..% ...% ...~..
002B80: EC 2A 7F 08 3E FE 95 CC FE 02 C3 11 05 D5 21 20 .*..>.........!
002B90: 06 22 6F 08 AF 6F 67 22 71 08 1A FE 2D 3E 01 20 ."o..og"q...->.
002BA0: 02 AF 13 32 6E 08 1A FE 30 20 05 13 32 6F 08 1A ...2n...0 ..2o..
002BB0: CD 88 00 30 03 CD A9 02 22 73 08 1A FE 2E 20 0A ...0...."s.... .
002BC0: 32 72 08 13 CD A9 02 22 70 08 CD 3D 04 21 7D 08 2r....."p..=.!}.
002BD0: F5 70 EB FE 64 28 1F FE 75 28 28 0B 0B FE 6F 28 .p..d(..u((...o(
002BE0: 22 01 10 00 FE 78 28 1B FE 73 28 1A FE 63 28 0B "....x(..s(..c(.
002BF0: D1 D1 D1 C3 2D 03 CD DB 02 18 0B 1B EB 73 11 01 ....-........s..
002C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
002E00: 00 18 0E CD C2 02 E5 AF 11 FF FF 13 BE 23 20 FB .............# .
002E10: E1 F1 E5 FE 73 20 13 3A 72 08 B7 28 0D D5 2A 70 ....s .:r..(..*p
002E20: 08 E5 CD B0 01 E1 D1 30 01 EB 2A 73 08 2B B7 ED .......0..*s.+..
002E30: 52 23 F2 F8 03 21 00 00 44 4D AF 2A 6E 08 B5 C4 R#...!..DM.*n...
002E40: 1E 04 E1 7B B2 28 08 1B 7E 23 CD 7E 08 18 F4 2A ...{.(..~#.~...*
002E50: 6E 08 B5 CC 1E 04 D1 E1 E1 2B 2B E5 18 95 78 B1 n........++...x.
002E60: C8 7C CD 7E 08 0B 18 F6 22 7F 08 D1 F1 E1 E5 F5 .|.~....".......
002E70: 39 D5 5E 23 56 ED 53 81 08 2B 2B 2B C9 1A FE 61 9.^#V.S..+++...a
002E80: 30 02 C6 20 FE 6C 20 01 13 C1 F1 E1 E5 F5 1A FE 0.. .l .........
002E90: 61 30 02 C6 20 13 D5 C5 56 2B 5E 01 0A 00 C9 E5 a0.. ...V+^.....
002EA0: 2A 81 08 7E 23 22 81 08 E1 C9 E5 D5 C5 2A 81 08 *..~#".......*..
002EB0: E5 CD 49 00 7D C1 D1 E1 C9 E5 2A 81 08 2B 77 22 ..I.}.....*..+w"
002EC0: 81 08 E1 C9 E5 D5 C5 6F 26 00 E5 2A 81 08 E5 CD .......o&..*....
002ED0: 6A 00 C1 D1 E1 C9 21 5F 04 11 79 04 18 06 21 6A j.....!_..y...!j
002EE0: 04 11 84 04 ED 53 7C 08 CD 28 04 18 17 21 6A 04 .....S|..(...!j.
002EF0: 22 7F 08 21 84 04 22 7C 08 21 00 00 22 81 08 D1 "..!.."|.!.."...
002F00: E1 E5 D5 39 C5 5E 23 56 2B 2B E5 3E C3 32 7E 08 ...9.^#V++.>.2~.
002F10: 32 7B 08 21 00 00 22 6E 08 1A 13 B7 28 2F CD F6 2{.!.."n....(/..
002F20: 01 20 0D CD 7E 08 CD F6 01 28 F8 CD 7B 08 18 E9 . ..~....(..{...
002F30: FE 25 28 27 6F CD 7E 08 BD 28 DE FE FF 20 0B ED .%('o.~..(... ..
002F40: 5B 6E 08 7A B3 20 0A 1B 18 07 CD 7B 08 ED 5B 6E [n.z. .....{..[n
002F50: 08 E1 C1 E1 E3 39 F1 F9 F5 EB C9 D5 21 FF FF 1A .....9......!...
002F60: D6 2A 32 70 08 20 01 13 1A CD 88 00 DC A9 02 22 .*2p. ........."
002F70: 71 08 CD 3D 04 FE 68 28 2F FE 64 28 2B 0B 0B FE q..=..h(/.d(+...
002F80: 6F 28 25 FE 78 28 0C FE 63 28 65 FE 73 28 6F D1 o(%.x(..c(e.s(o.
002F90: D1 18 BA CD 7E 08 FE 30 20 09 CD 7E 08 FE 78 28 ....~..0 ..~..x(
002FA0: 05 FE 58 C4 7B 08 CB 21 F5 D5 50 59 60 68 ED 4B ..X.{..!..PY`h.K
002FB0: 71 08 78 B1 28 27 0B CD 7E 08 F5 D6 30 38 1A FE q.x.('..~...08..
002FC0: 0A 38 0B D6 11 38 12 E6 1F C6 0A BB 30 0B C5 4F .8...8......0..O
002FD0: 42 CD 1D 01 09 C1 F1 18 D9 F1 CD 7B 08 D1 C1 3A B..........{...:
002FE0: 70 08 B7 28 4D EB 73 3E 68 B8 28 36 23 72 18 32 p..(M.s>h.(6#r.2
002FF0: CD 7E 08 6F 3A 70 08 B7 28 38 7D 12 18 24 ED 4B .~.o:p..(8}..$.K
003000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0030A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0030B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0030C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0030D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0030E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0030F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0031A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0031B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0031C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0031D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0031E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0031F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003200: 71 08 CD 7E 08 CD F6 01 20 05 CD 7B 08 18 0F 6F q..~.... ..{...o
003210: 3A 70 08 B7 28 03 7D 12 13 0B 78 B1 20 E4 2E 00 :p..(.}...x. ...
003220: 18 D2 2A 6E 08 23 22 6E 08 D1 E1 E1 2B 2B E5 C3 ..*n.#"n....++..
003230: D9 04 D1 E1 18 F9 00 00 00 21 00 00 E5 CD 49 00 .........!....I.
003240: 7D C9 2A DA 08 7E 23 22 DA 08 6F 26 FF BC C8 24 }.*..~#"..o&...$
003250: B7 C0 06 50 CD 45 06 EB CD 7C 00 FE 7F 28 13 CD ...P.E...|...(..
003260: 82 00 7D 12 13 FE 0A 28 05 3C 28 02 10 EA AF 12 ..}....(.<(.....
003270: 18 D0 3E 50 B8 28 E1 1B 04 3E 08 CD 82 00 3E 10 ..>P.(...>....>.
003280: CD 82 00 18 D3 21 89 08 36 00 22 DA 08 C9 00 00 .....!..6.".....
003290: 21 00 00 01 00 00 D1 F9 D5 36 00 5D 54 13 ED B0 !........6.]T...
0032A0: 21 00 00 18 02 ED B0 4E 23 46 23 5E 23 56 23 78 !......N#F#^#V#x
0032B0: B1 20 F2 CD 52 00 CD 00 00 C3 64 00 52 20 50 52 . ..R.....d.R PR
0032C0: 00 00 00 00 1A 13 ED A1 C0 E0 18 F8 C5 DD E5 21 ...............!
0032D0: E5 08 06 0B 36 00 10 FC CD 84 BB CD 7B BB DD E1 ....6.......{...
0032E0: C1 C3 85 00 D1 E1 7D D5 C3 5A BB D1 E1 7D D5 F5 ......}..Z...}..
0032F0: 3E 00 CD 24 08 F1 FE 0A 20 07 3E 0D CD 5A BB 3E >..$.... .>..Z.>
003300: 0A CD 5A BB C9 CD 81 BB CD 06 BB CD 84 BB FE 0D ..Z.............
003310: 20 02 3E 0A 6F 26 00 FE 1A C0 21 FF FF 7D C9 CD .>.o&....!..}..
003320: 06 BB 6F 26 00 C9 CD 09 BB 21 00 00 38 02 AF C9 ..o&.....!..8...
003330: CD 0C BB 2C C9 CD 09 BB 21 00 00 3F D8 FE FC 37 ...,....!..?...7
003340: C0 2C 3F C9 D1 E1 7D E1 D5 B7 FA 4F 07 FE 08 28 .,?...}....O...(
003350: 1C 38 12 FE 09 20 38 7D DD E5 CD 95 BC DD E1 D8 .8... 8}........
003360: CD 92 BC 18 2A CD 24 08 7D CD 5A BB C9 7D CD 2B ....*.$.}.Z..}.+
003370: BD D8 18 F9 E1 D1 7B E5 21 E5 08 5F AF 57 19 BE ......{.!.._.W..
003380: 28 04 5E 77 EB C9 7B B7 CA 02 06 FE 0A 28 04 21 (.^w..{......(.!
003390: FF FF C9 DD E5 CD 80 BC DD E1 6F 26 00 D8 CD 7D ..........o&...}
0033A0: BC 18 EC F1 D1 E1 F5 00 7B FE 0B D0 7A B7 C0 7D ........{...z..}
0033B0: 21 E5 08 19 77 C9 D1 E1 7D D5 21 8A 4C FE 09 28 !...w...}.!.L..(
0033C0: 12 FE 0A 20 CA DD E5 CB 86 CD 7A BC DD E1 30 BF ... ......z...0.
0033D0: B7 18 78 DD E5 CB 8E CB 56 20 02 CB 86 CD 8F BC ..x.....V ......
0033E0: 18 EA AF 21 E5 08 77 21 EF 08 77 21 8A 4C 77 2A ...!..w!..w!.Lw*
0033F0: 80 06 22 82 06 3E 09 CD 7A 07 3E 0A C3 7A 07 F1 .."..>..z.>..z..
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: D1 E1 F5 D5 E5 CD 15 02 45 E1 D1 1A ED 5B 8A 4C ........E....[.L
003610: 16 01 DD E5 FE 72 28 08 15 FE 77 28 13 B7 18 29 .....r(...w(...)
003620: CB 43 20 25 CB C3 D5 ED 5B 80 06 CD 77 BC 18 18 .C %....[...w...
003630: CB 4B 20 15 CB 53 20 06 CB 43 20 0D CB C3 CB CB .K ..S ..C .....
003640: D5 ED 5B 82 06 CD 8C BC D1 DD E1 21 00 00 D0 7B ..[........!...{
003650: 32 8A 4C 3E 09 82 6F C9 D1 E1 D5 22 82 06 21 8A 2.L>..o...."..!.
003660: 4C CB D6 C9 E5 CD B4 BB E1 C9 ED B0 E1 D1 44 4D L.............DM
003670: CD 98 BC C3 A2 07 0E FF 21 3E 08 C3 16 BD 60 69 ........!>....`i
003680: CD CB BC CD 50 06 C7 C9 DD E5 C1 09 6E 26 00 C9 ....P.......n&..
003690: DD E5 C1 EB 09 73 23 72 EB C9 DD E5 C1 EB 09 73 .....s#r.......s
0036A0: EB C9 D1 EB E3 73 23 72 EB C9 5E 23 56 EB 09 EB .....s#r..^#V...
0036B0: 72 2B 73 EB C9 5E 23 56 D5 EB 09 EB 72 2B 73 E1 r+s..^#V....r+s.
0036C0: 01 00 26 00 C3 81 23 CD 90 01 09 E5 CD 90 01 07 ..&...#.........
0036D0: E5 CD 90 01 09 D1 CD 89 02 E5 CD 90 01 05 E5 CD ................
0036E0: E8 22 D1 D1 D1 EB 60 69 73 CD 90 01 09 E5 CD 90 ."....`is.......
0036F0: 01 07 E5 CD 90 01 09 D1 CD 29 02 E5 CD 90 01 05 .........)......
003700: E5 CD E8 22 D1 D1 D1 60 69 6E 26 00 23 26 00 C3 ..."...`in&.#&..
003710: 81 23 EB 21 01 00 39 F9 EB C1 C9 C5 21 00 00 39 .#.!..9.....!..9
003720: F9 44 4D 21 04 00 09 6E 26 00 11 D0 FF 19 7C 17 .DM!...n&.....|.
003730: CD AF 01 DA B5 23 21 04 00 09 6E 26 00 11 C6 FF .....#!...n&....
003740: 31 FF BF 00 00 00 C3 0C 09 C3 00 00 CD 4B 0B CD 1............K..
003750: C1 0B C3 09 09 E0 4B C1 02 D0 4A 7B 56 C3 62 0B ......K...J{V.b.
003760: C3 09 09 C3 62 0B C3 62 0B C3 62 0B C3 62 0B C3 ....b..b..b..b..
003770: 62 0B C3 62 0B C3 62 0B C3 62 0B C3 62 0B C3 62 b..b..b..b..b..b
003780: 0B C3 62 0B 08 DA 08 04 09 A5 0B A5 0B E1 5E 23 ..b...........^#
003790: 56 23 E5 2A 15 09 19 7E 23 66 6F C9 E1 5E 23 E5 V#.*...~#fo..^#.
0037A0: 16 00 2A 15 09 19 7E 23 66 6F C9 E1 5E 23 56 23 ..*...~#fo..^#V#
0037B0: E5 2A 15 09 19 6E C9 E1 5E 23 E5 16 00 2A 15 09 .*...n..^#...*..
0037C0: 19 6E C9 E1 5E 23 56 23 E5 EB 09 7E 23 66 6F C9 .n..^#V#...~#fo.
0037D0: E1 5E 23 E5 EB 26 00 09 7E 23 66 6F C9 21 01 00 .^#..&..~#fo.!..
0037E0: C8 2B C9 21 00 00 C8 23 C9 21 01 00 D8 2B C9 21 .+.!...#.!...+.!
0037F0: 00 00 D8 23 C9 21 01 00 F0 2B C9 21 01 00 F8 2B ...#.!...+.!...+
003800: 00 48 49 53 4F 46 54 2D 43 42 49 4E 00 00 00 00 .HISOFT-CBIN....
003810: 00 00 02 80 61 40 00 FF 80 61 10 61 00 00 00 00 ....a@...a.a....
003820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003840: 80 61 00 6B 07 00 00 00 00 00 00 00 00 00 00 00 .a.k............
003850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003880: C3 00 09 C3 00 09 C3 BF 07 C3 34 07 C3 04 07 C3 ..........4.....
003890: 76 07 C3 8C 06 C3 DF 06 C3 AB 06 C3 E6 06 C3 F9 v...............
0038A0: 05 C3 AB 06 C3 A2 07 C3 F5 06 C3 63 07 C3 A4 06 ...........c....
0038B0: C3 00 09 C3 00 09 C3 00 09 C3 16 03 C3 C5 06 C3 ................
0038C0: C5 06 C3 AF 06 C3 45 06 FE 30 3F D0 FE 3A C9 D1 ......E..0?..:..
0038D0: DD E5 DD 21 00 00 DD 39 39 F9 2A 4E 06 39 30 02 ...!...99.*N.90.
0038E0: EB E9 21 AF 00 E5 21 04 00 E5 CD 79 00 18 91 73 ..!...!....y...s
0038F0: 74 61 63 6B 20 6F 76 65 72 66 6C 6F 77 00 DD 5E tack overflow..^
003900: 04 DD 56 05 DD F9 DD E1 C1 EB 39 F9 EB C5 44 4D ..V.......9...DM
003910: C9 7D B3 6F 7C B2 67 C9 7D AB 6F 7C AA 67 C9 7D .}.o|.g.}.o|.g.}
003920: A3 6F 7C A2 67 C9 1D F8 29 18 FB 1D F8 CB 3C CB £o|.g...).....<.
003930: 1D 18 F8 1D F8 CB 2C CB 1D 18 F8 2B 7C 2F 67 7D ......,....+|/g}
003940: 2F 6F C9 7C B5 21 00 00 C0 23 C9 7C AA F5 AA FC /o.|.!...#.|....
003950: FB 00 7A CD 49 01 CD 1D 01 F1 F0 18 DE C5 06 10 ..z.I...........
003960: 7C 4D 21 00 00 29 38 0A CB 11 17 30 03 19 38 02 |M!..)8....0..8.
003970: 10 F3 C1 C9 7C AA 7C F5 B7 FC FB 00 7A CD 49 01 ....|.|.....z.I.
003980: CD 50 01 F1 F5 FC FB 00 F1 EB B7 FC FB 00 EB C9 .P..............
003990: C5 42 4B 11 00 00 3E 10 29 38 06 3D 20 FA C1 C9 .BK...>.)8.= ...
0039A0: 29 F5 CB 13 CB 12 7B 91 7A 98 FA 72 01 57 7B 91 ).....{.z..r.W{.
0039B0: 5F 2C F1 3D 20 EA C1 C9 CD 34 01 EB C9 CD 50 01 _,.= ....4....P.
0039C0: EB C9 AF ED 52 67 6F C9 CD 82 01 37 23 C8 3F 2B ....Rgo....7#.?+
0039D0: C9 CD 82 01 C8 23 37 C9 EB CD 91 01 C8 FA A3 01 .....#7.......£.
0039E0: E8 2B 3F E0 2B 3F C9 EB CD 99 01 C0 23 37 C9 EB .+?.+?......#7..
0039F0: CD 82 01 D0 23 C9 EB CD B0 01 C0 23 37 C9 F1 E1 ....#......#7...
003A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
003A10: 03 00 00 00 02 09 4E E5 03 00 41 02 00 00 00 02 ......N...A.....
003A20: 03 00 46 02 00 00 00 02 03 00 42 02 00 00 00 02 ..F.......B.....
003A30: 03 00 47 02 00 00 00 02 03 00 43 02 00 00 00 02 ..G.......C.....
003A40: 03 00 48 02 00 00 00 02 03 00 44 02 00 00 00 02 ..H.......D.....
003A50: 03 00 49 02 00 00 00 02 03 00 45 02 00 00 00 02 ..I.......E.....
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: C9 11 01 00 C8 1B C9 11 00 00 C8 13 C9 11 01 00 ................
003B10: D8 1B C9 11 00 00 D8 13 C9 11 01 00 F0 1B C9 11 ................
003B20: 01 00 F8 1B C9 7D BB C0 7C BA C9 EB 7A BC C0 7B .....}..|...z..{
003B30: BD C9 EB 7C BA C0 7D BB C9 EB 7C AA F2 EC 09 7A ...|..}...|....z
003B40: B7 F0 37 C9 EB 7C AA F2 F3 09 7C B7 F0 37 C9 7A ..7..|....|..7.z
003B50: F5 CD 5A 0A EB CD 5A 0A EB CD 29 0A F1 B7 F0 7C ..Z...Z...)....|
003B60: 2F 67 7D 2F 6F 23 C9 00 00 7C B5 C8 D5 E5 CD 89 /g}/o#...|......
003B70: 0A D1 CD 6B 0A 7C 2F 67 7D 2F 6F 23 D1 19 C9 AF ...k.|/g}/o#....
003B80: 32 A3 0B CD 5A 0A EB CD 5A 0A CD 6B 0A 3A A3 0B 2£..Z...Z..k.:£.
003B90: 1F D0 7C 2F 67 7D 2F 6F 23 C9 7C B7 F0 2F 67 7D ..|/g}/o#.|../g}
003BA0: 2F 6F 23 3A A3 0B 3C 32 A3 0B C9 C5 CD 71 0A C1 /o#:£.<2£....q..
003BB0: C9 44 4D 21 00 00 78 B1 C8 78 1F 47 79 1F 4F D2 .DM!..x..x.Gy.O.
003BC0: 83 0A 19 EB 29 EB C3 76 0A 7C B5 C8 C5 CD 94 0A ....)..v.|......
003BD0: 60 69 C1 C9 06 01 7C B7 FA A0 0A 29 04 C3 96 0A `i....|....)....
003BE0: EB 78 01 00 00 F5 CD DD 0A DA B7 0A 03 D5 7A 2F .x............z/
003BF0: 57 7B 2F 5F 13 19 D1 AF 7A 1F 57 7B 1F 5F F1 3D W{/_....z.W{._.=
003C00: C8 F5 79 17 4F 78 17 47 C3 A6 0A AF 32 A3 0B CD ..y.Ox.G....2£..
003C10: 5A 0A EB CD 5A 0A EB CD 89 0A C3 4D 0A 7C BA D8 Z...Z......M.|..
003C20: C0 7D BB C9 EB 1C 1D C8 AF 7C 1F 67 7D 1F 6F C3 .}.......|.g}.o.
003C30: E6 0A EB 1C 1D C8 29 C3 F4 0A 7C 2F 67 7D 2F 6F ......)...|/g}/o
003C40: 23 C9 7A 2F 57 7B 2F 5F 13 C9 21 04 00 39 7E 23 #.z/W{/_..!..9~#
003C50: 66 6F C9 21 06 00 C3 0D 0B 21 08 00 C3 0D 0B 21 fo.!.....!.....!
003C60: 0A 00 C3 0D 0B 21 0C 00 C3 0D 0B 21 0E 00 C3 0D .....!.....!....
003C70: 0B 21 10 00 C3 0D 0B 11 8B 0B 21 04 00 39 C5 06 .!........!..9..
003C80: 0E 7E 12 23 13 05 C2 41 0B C1 C9 E1 22 A5 0B 21 .~.#...A...."..!
003C90: 00 00 E5 21 01 00 E5 AF 32 A9 0B 32 7A 0B 2A A5 ...!....2..2z.*.
003CA0: 0B E9 21 FF FF C9 23 CD 3C 00 CA 18 05 0E 11 21 ..!...#.<......!
003CB0: A6 05 11 45 05 CD B7 00 C2 7E 01 C3 50 01 0E 0A ...E.....~..P...
003CC0: 21 CE 05 CD B7 00 C2 92 01 CD 50 01 CD 8C 00 C3 !.........P.....
003CD0: 51 01 0E 06 21 E6 05 CD B7 00 C2 AA 01 CD 50 01 Q...!.........P.
003CE0: CD 7D 00 CD 51 01 78 C3 51 01 0E 01 21 EA 05 CD .}..Q.x.Q...!...
003CF0: B7 00 C2 C6 01 CD DB 00 CD 93 00 47 0E 40 CD DB ...........G.@..
003D00: CD 90 09 0E E5 CD 90 09 04 D1 CD F3 09 D2 D8 13 ................
003D10: 21 40 00 E5 CD C9 43 D1 CD 90 09 0E E5 CD 90 09 !@....C.........
003D20: 04 D1 CD E5 09 C2 EB 13 C3 F3 13 CD 0D 14 7C B5 ..............|.
003D30: C2 6E 13 CD 90 09 02 7C B5 CA 04 14 21 7D 00 E5 .n.....|....!}..
003D40: CD F3 1C D1 EB 21 08 00 39 F9 EB C1 C9 C5 CD FB .....!..9.......
003D50: 17 11 83 FF 19 7C B5 CA 22 14 21 2C 00 E5 CD F3 .....|..".!,....
003D60: 1C D1 CD FB 17 11 83 FF 19 7C B5 CD A3 09 C1 C9 .........|..£...
003D70: C1 C9 C5 21 FA FF 39 F9 44 4D CD 90 09 0C E5 CD ...!..9.DM......
003D80: 90 09 0E D1 19 E5 2A 2F 56 D1 CD FA 0A 19 E5 2A ......*/V......*
003D90: BE 4C D1 CD FA 0A 19 EB 21 02 00 09 73 23 72 CD .L......!...s#r.
003DA0: 90 09 02 E5 21 03 00 E5 CD 50 43 D1 D1 CD 90 09 ....!....PC.....
003DB0: 02 E5 2A AA 4C E5 2A BE 4C D1 19 E5 CD 90 09 02 ..*.L.*.L.......
003DC0: D1 CD FA 0A 19 E5 CD 5B 17 D1 D1 2A AA 4C E5 2A .......[...*.L.*
003DD0: BE 4C D1 19 E5 CD 90 09 0E D1 CD FA 0A 19 EB 21 .L.............!
003DE0: 04 00 09 73 23 72 CD 90 09 04 E5 CD 90 09 0A 11 ...s#r..........
003DF0: 00 01 EB CD 29 0A EB E1 73 CD 90 09 0E 2B 2B 7C ....)...s....++|
003E00: B5 C2 DE 14 21 04 00 09 5E 23 56 13 72 2B 73 D5 ....!...^#V.r+s.
003E10: CD 90 09 0A 11 00 01 EB CD 89 0A EB E1 73 EB 21 .............s.!
003E20: 06 00 39 F9 EB C1 C9 C5 21 00 00 22 25 56 22 29 ..9.....!.."%V")
003E30: 56 2A 54 53 23 23 23 23 22 27 56 2A 27 56 23 22 V*TS####"'V*'V#"
003E40: 23 56 21 02 00 E5 CD 5A 43 D1 21 03 00 E5 CD 5A #V!....ZC.!....Z
003E50: 43 D1 C1 C9 C5 21 FA FF 39 F9 44 4D 2A 25 56 E5 C....!..9.DM*%V.
003E60: 2A 23 56 E5 2A 2F 56 D1 CD FA 0A 19 E5 2A BE 4C *#V.*/V......*.L
003E70: D1 CD FA 0A 19 D1 19 22 25 56 2A 2F 56 E5 2A BE ......."%V*/V.*.
003E80: 4C D1 19 22 23 56 2A BE 4C E5 2A 25 56 11 FB FF L.."#V*.L.*%V...
003E90: 19 CD A9 09 D2 5D 15 21 04 00 C3 60 15 2A 25 56 .....].!...`.*%V
003EA0: D1 19 EB 21 04 00 09 73 23 72 2A BC 4C EB 60 69 ...!...s#r*.L.`i
003EB0: 73 23 72 CD 90 09 04 E5 21 02 00 E5 CD 50 43 D1 s#r.....!....PC.
003EC0: D1 2A A8 4C E5 CD 90 09 04 D1 19 E5 2A A8 4C E5 .*.L........*.L.
003ED0: CD 90 09 00 E5 CD 7E 41 D1 D1 D1 CD 90 09 04 E5 ......~A........
003EE0: 2A BE 4C D1 CD FA 0A 19 E5 2A A8 4C E5 2A BE 4C *.L......*.L.*.L
003EF0: D1 19 E5 CD 5B 17 D1 D1 2A A8 4C E5 2A AA 4C E5 ....[...*.L.*.L.
003F00: 00 C5 3E 00 32 21 56 21 00 00 22 80 4C 3E 00 32 ..>.2!V!..".L>.2
003F10: 22 56 CD E3 0E CD DA 41 CD 7B 44 CD D5 0D CD DA "V.....A.{D.....
003F20: 41 CD C2 0E CD F6 17 CD FB 17 11 01 FF 19 7C B5 A.............|.
003F30: C2 0A 0C CD C9 28 7C B5 CA 04 0C CD 88 17 CD F6 .....(|.........
003F40: 17 C3 07 0C C3 70 0C C3 6D 0C CD FB 17 11 BB FF .....p..m.......
003F50: 19 7C B5 C2 21 0C 21 43 00 E5 CD D0 41 D1 C3 6D .|..!.!C....A..m
003F60: 0C 2A 80 4C 7C B5 CA 6A 0C CD 3E 42 22 8C 4C 3E .*.L|..j..>B".L>
003F70: 01 32 22 56 21 C5 00 E5 CD 4D 42 D1 CD 8C 1D 21 .2"V!....MB....!
003F80: C1 00 E5 CD 4D 42 D1 21 C9 00 E5 CD 4D 42 D1 3E ....MB.!....MB.>
003F90: 00 32 22 56 CD 24 0D 2A 8C 4C E5 CD D0 41 D1 2A .2"V.$.*.L...A.*
003FA0: 8C 4C E5 CD 26 42 D1 C3 6D 0C CD 1B 21 C3 E7 0B .L..&B..m...!...
003FB0: CD 28 17 CD FA 43 2A 54 53 2B 2B 22 51 06 CD C0 .(...C*TS++"Q...
003FC0: 41 23 E5 2A 54 53 D1 CD FA 0A 19 22 54 06 2A A8 A#.*TS....."T.*.
003FD0: 4C 22 61 06 CD 9C 29 E5 CD 74 28 D1 23 7E 23 66 L"a...)..t(.#~#f
003FE0: 6F 22 77 06 CD 24 0D 2A 21 56 7D B7 CA DE 0C 2A o"w..$.*!V}....*
003FF0: A8 4C 11 00 09 19 E5 2A A6 4C D1 CD FA 0A 19 22 .L.....*.L....."
004000: 61 06 CD 3E 42 11 32 01 19 E5 2A BC 4C D1 19 CD a..>B.2...*.L...
004010: FA 0A 22 4E 06 CD E3 0E CD 14 0E C3 0D 0D 21 0F .."N..........!.
004020: 0D E5 CD A9 41 D1 21 55 00 E5 CD C4 41 D1 11 87 ....A.!U....A...
004030: FF 19 7C B5 CA FA 0C CD 0F 10 21 21 0D E5 CD A9 ..|.......!!....
004040: 41 D1 21 50 06 E5 CD D0 41 D1 C3 DE 0C C1 C9 0A A.!P....A.......
004050: 0A 54 79 70 65 20 79 20 74 6F 20 72 75 6E 3A 20 .Type y to run:
004060: 00 0A 0A 00 C5 2A B6 4C 11 32 00 19 CD FA 0A 22 .....*.L.2....."
004070: 4E 06 C1 C9 C5 21 FE FF 39 F9 44 4D CD 90 09 0C N....!..9.DM....
004080: 11 FF FF 19 7C 17 DA 7E 0D 2A B6 4C E5 CD 90 09 ....|..~.*.L....
004090: 0C D1 19 11 32 00 19 E5 CD 90 09 06 D1 CD F3 09 ....2...........
0040A0: DA 76 0D CD 90 09 0C 11 32 00 19 E5 2A CA 4C D1 .v......2...*.L.
0040B0: CD F3 09 D2 7E 0D 21 3C 00 E5 CD C9 43 D1 2A CA ....~.!<....C.*.
0040C0: 4C E5 CD 90 09 0C D1 CD FA 0A 19 22 CA 4C CD 90 L..........".L..
0040D0: 09 08 23 EB 60 69 73 23 72 CD 90 09 00 11 F6 FF ..#.`is#r.......
0040E0: 19 7C 17 D2 CC 0D CD 90 09 00 29 11 A4 4C 19 E5 .|........)..L..
0040F0: 7E 23 66 6F E5 CD 90 09 0C D1 19 EB E1 73 23 72 ~#fo.........s#r
004100: 2A BE 4C E5 CD 7E 41 D1 D1 D1 2A BE 4C 22 2B 56 *.L..~A...*.L"+V
004110: CD 90 09 04 22 2D 56 21 03 00 E5 CD 5A 43 D1 2A ...."-V!....ZC.*
004120: 2B 56 7C B5 CA 4F 16 2A 23 56 2B 22 23 56 2A 2B +V|..O.*#V+"#V*+
004130: 56 2B 22 2B 56 E5 2A A8 4C D1 19 6E EB 21 02 00 V+"+V.*.L..n.!..
004140: 09 73 23 36 00 CD 90 09 02 7C B5 C2 18 16 2A 25 .s#6.....|....*%
004150: 56 23 22 25 56 C3 DF 15 2A 25 56 11 FB FF 19 D2 V#"%V...*%V.....
004160: 25 16 CD E0 16 2A 25 56 2B 22 25 56 23 7C B5 CA %....*%V+"%V#|..
004170: 3D 16 21 00 00 E5 CD 98 16 D1 C3 25 16 21 00 00 =.!........%.!..
004180: 22 25 56 CD 90 09 02 E5 CD 98 16 D1 C3 DF 15 2A "%V............*
004190: 2D 56 E5 2A BC 4C D1 CD FA 0A 19 CD FA 0A EB 21 -V.*.L.........!
0041A0: 04 00 09 73 23 72 2A A8 4C E5 2A A8 4C E5 2A 2D ...s#r*.L.*.L.*-
0041B0: 56 D1 19 E5 CD 90 09 04 E5 CD 7E 41 D1 D1 D1 2A V.........~A...*
0041C0: 2D 56 CD FA 0A E5 21 02 00 E5 CD 50 43 D1 D1 EB -V....!....PC...
0041D0: 21 06 00 39 F9 EB C1 C9 C5 21 00 00 39 F9 44 4D !..9.....!..9.DM
0041E0: 2A 2D 56 2B 22 2D 56 E5 2A A8 4C D1 19 E5 CD 90 *-V+"-V.*.L.....
0041F0: 09 04 EB E1 73 2A 29 56 23 22 29 56 C1 C9 C5 21 ....s*)V#")V...!
004200: 00 00 39 F9 44 4D CD 90 09 04 11 08 00 CD E5 0A ..9.DM..........
004210: E5 CD 98 16 D1 CD 90 09 04 E5 CD 98 16 D1 C1 C9 ................
004220: C5 21 FE FF 39 F9 44 4D 2A 29 56 EB 60 69 73 23 .!..9.DM*)V.`is#
004230: 72 2A 27 56 E5 CD 90 09 00 D1 CD FA 0A 19 23 E5 r*'V..........#.
004240: CD BE 16 D1 CD 90 09 00 E5 CD BE 16 D1 2A 23 56 .............*#V
004250: 22 27 56 21 00 00 22 29 56 21 00 00 22 25 56 EB "'V!..")V!.."%V.
004260: 21 02 00 39 F9 EB C1 C9 C5 21 04 00 E5 21 02 00 !..9.....!...!..
004270: E5 CD 50 43 D1 D1 2A A8 4C 23 23 23 23 E5 2A A8 ..PC..*.L####.*.
004280: 4C E5 2A BC 4C 2B 2B 2B 2B E5 CD 7E 41 D1 D1 D1 L.*.L++++..~A...
004290: 21 04 00 22 2D 56 CD E0 16 C1 C9 C5 21 00 00 39 !.."-V......!..9
0042A0: F9 44 4D 21 06 00 09 5E 23 56 1B 72 2B 73 13 7A .DM!...^#V.r+s.z
0042B0: B3 CA 86 17 21 04 00 09 5E 23 56 13 72 2B 73 1B ....!...^#V.r+s.
0042C0: EB 36 00 C3 63 17 C1 C9 C5 2A EC 4B 22 EE 4B 2A .6..c....*.K".K*
0042D0: 74 4C E5 11 01 00 B7 ED 52 20 05 CD 32 44 18 05 tL......R ..2D..
0042E0: 19 E5 CD 49 00 7C 3C D1 28 1C 7A B3 28 08 3A 7B ...I.|<.(.z.(.:{
0042F0: 4C 3D 7D F4 82 00 11 F4 4B 7D CB BD 26 00 19 66 L=}.....K}..&..f
004300: 60 69 5E 23 56 13 72 2B 73 C3 99 0D EB 21 02 00 `i^#V.r+s....!..
004310: 39 F9 EB C1 C9 3E 36 21 DE 0D CD 9C 41 C9 04 02 9....>6!....A...
004320: 0A 18 48 49 53 4F 46 54 2D 43 20 43 6F 6D 70 69 ..HISOFT-C Compi
004330: 6C 65 72 20 20 56 31 2E 32 0A 43 6F 70 79 72 69 ler V1.2.Copyri
004340: 67 68 74 20 A4 20 31 39 38 34 20 48 49 53 4F 46 ght . 1984 HISOF
004350: 54 18 0A 0A 2A BC 4C ED 5B A8 4C 19 ED 5B A6 4C T...*.L.[.L..[.L
004360: ED 52 44 4D 11 C0 08 19 11 40 00 D5 E5 D5 C5 D5 .RDM.....@......
004370: 21 92 4C E5 21 56 0E E5 CD 46 00 21 50 0E 01 06 !.L.!V...F.!P...
004380: 00 D1 ED B0 2A A6 4C 11 00 09 C1 3E 03 C3 2A 08 ....*.L....>..*.
004390: CD 36 08 C3 00 00 77 00 CD 78 BB E5 CD 8E 0E CB .6....w..x......
0043A0: BD E5 CD 75 BB CD 60 BB D1 E1 4F CD 75 BB EB 24 ...u..`...O.u..$
0043B0: CB 7D C2 B1 0E EB CD 78 BB 32 59 08 EB CD 87 BB .}.....x.2Y.....
0043C0: B7 ED 52 19 CA B1 0E 22 5A 08 CD B7 0E C9 CD 78 ..R...."Z......x
0043D0: BB EB 2A 59 08 95 2A 5A 08 CB 7D 20 13 85 6F CD ..*Y..*Z..} ..o.
0043E0: 87 BB 30 0C B7 ED 52 19 CA B3 0E E5 CD B7 0E D1 ..0...R.........
0043F0: EB CB FD 22 5A 08 C9 C5 01 FF 00 2D 25 CD 4A BC ..."Z......-%.J.
004400: C1 C9 C5 CD E3 0E CD 06 0F 21 74 56 01 FF 80 11 .........!tV....
004410: 0E 0F CD EF BC 21 6E 56 11 02 00 01 05 00 CD E9 .....!nV........
004420: BC C1 C9 C5 21 6E 56 CD EC BC CD 48 BB C1 C9 CD ....!nV....H....
004430: 09 BB 30 04 FE EF 20 F7 CD 81 BB CD 06 BB CD 84 ..0... .........
004440: BB FE FC CA 0F 10 11 EF 0E 0E FF C3 45 BB F5 C5 ............E...
004450: D5 E5 CD 21 B9 30 11 CD FB BC 30 0C E5 F5 CD FE ...!.0....0.....
004460: BC F1 E1 CD 01 BD 18 EF E1 D1 C1 F1 C9 11 00 00 ................
004470: 7E 23 FE 20 28 FA FE 09 28 F6 B7 C8 E5 2A 5C 08 ~#. (...(....*\.
004480: 19 19 71 23 70 13 E1 FE 22 20 0B 02 03 7E 23 B7 ..q#p..." ...~#.
004490: 28 04 FE 22 20 F5 D5 E5 6F E5 CD 0B 02 7D E1 D1 (.." ...o....}..
0044A0: 02 03 B7 C8 7E 23 FE 20 28 04 FE 09 20 D9 AF 02 ....~#. (... ...
0044B0: 03 18 BD 21 38 FF 39 F9 22 5C 08 21 8A 08 01 89 ...!8.9."\.!....
0044C0: 08 C5 C5 03 0A D6 0A 20 FA 02 C1 CD 2D 0F EB 22 ....... ....-.."
0044D0: 5E 08 23 29 39 44 4D E1 CD 15 02 1B 1A F6 80 12 ^.#)9DM.........
0044E0: 3A 5E 08 2A 5C 08 23 3D 28 34 23 F5 E5 5E 23 56 :^.*\.#=(4#..^#V
0044F0: 1A CD 88 00 30 0A CD A9 02 EB E1 73 23 72 18 1B ....0......s#r..
004500: 6F 22 EC 4B C1 C9 7A B3 28 0B 21 FF FF ED 5A 28 o".K..z.(.!...Z(
004510: 04 D5 CD 4F 00 21 77 4C AF BE 28 01 35 21 82 4C ...O.!wL..(.5!.L
004520: BE 28 0E 5E 57 35 19 19 7E 23 66 6F 22 74 4C 18 .(.^W5..~#fo"tL.
004530: A1 21 FF FF 18 CB AF 32 A3 4C C9 CD 02 18 26 00 .!.....2£L....&.
004540: 6F C9 3A A3 4C B7 20 09 E5 D5 C5 CD 18 18 C1 D1 o.:£L. .........
004550: E1 3A E0 4B 32 A3 4C C9 21 E0 4B 11 E4 4B 01 04 .:.K2£L.!.K..K..
004560: 00 ED B0 1A B7 20 20 67 6F 22 E1 4B CD 8D 1C 38 ..... go".K...8
004570: 0B CD 54 18 FE 0A 28 F9 FE 23 28 06 CD 59 1C C0 ..T...(..#(..Y..
004580: 18 EA CD 90 1A 18 EA EB 11 E0 4B 0E 04 ED B0 78 ..........K....x
004590: 32 E8 4B C9 CD 61 18 3A E0 4B 2A E1 4B C9 CD 88 2.K..a.:.K*.K...
0045A0: 17 ED 4B EC 4B 79 FE 0A 28 58 78 32 E0 4B FE 20 ..K.Ky..(Xx2.K.
0045B0: 28 EC FE 4C CA C8 18 FE 44 2E 49 CA 3A 19 FE 22 (..L....D.I.:.."
0045C0: CA 03 1A FE FF C8 79 FE 27 CA ED 19 FE 23 28 0B ......y.'....#(.
0045D0: FE 2E 28 12 FE 5C 28 1C C3 35 1A 3A EE 4B FE 0A ..(..\(..5.:.K..
0045E0: CA 88 17 79 18 EA CD 88 17 3A ED 4B FE 44 C0 2E ...y.....:.K.D..
0045F0: 46 C3 3A 19 CD 88 17 3A EC 4B FE 0A C0 CD 88 17 F.:....:.K......
004600: 18 9F 32 E0 4B C3 88 17 11 07 00 21 58 08 E5 3A ..2.K......!X..:
004610: EC 4B 77 D5 E5 CD 88 17 E1 D1 3A ED 4B FE 4C 28 .Kw.......:.K.L(
004620: 04 FE 44 20 07 1D FA D3 18 23 18 E3 3E 20 1D FA ..D .....#..> ..
004630: F6 18 23 77 18 F8 E1 CD 44 25 22 E1 4B CD 8D 25 ..#w....D%".K..%
004640: 3E FF BC C0 7D 32 E0 4B C9 21 00 00 44 54 3A EC >...}2.K.!..DT:.
004650: 4B 4F 3A ED 4B FE 44 20 05 79 D6 30 18 0E FE 4C KO:.K.D .y.0...L
004660: C0 79 FE 61 30 02 C6 20 D6 57 BB D0 4F CD 1D 01 .y.a0.. .W..O...
004670: 09 E5 D5 CD 88 17 D1 E1 18 D4 7D FE 46 28 51 3A ..........}.F(Q:
004680: EC 4B FE 30 1E 0A 20 1F CD 88 17 3A EC 4B FE 61 .K.0.. ....:.K.a
004690: 30 02 C6 20 1E 08 FE 78 20 05 CD 88 17 1E 10 CD 0.. ...x .......
0046A0: 09 19 22 E1 4B 18 1A CD 09 19 22 E1 4B 3A EC 4B ..".K.....".K:.K
0046B0: FE 2E 28 1C 3A EC 4B FE 61 30 02 C6 20 FE 65 28 ..(.:.K.a0.. .e(
0046C0: 0F 3A EC 4B FE 61 30 02 C6 20 FE 6C C0 C3 88 17 .:.K.a0.. .l....
0046D0: CD 70 43 01 CD 88 17 26 00 3A EE 4B 6F FE 0A 28 .pC....&.:.Ko..(
0046E0: 5E FE 5C C0 CD 88 17 26 00 3A EE 4B 2E 0A BD 28 ^.\....&.:.K...(
0046F0: E3 FE 6E C8 2E 09 FE 74 C8 2E 08 FE 62 C8 2E 0D ..n....t....b...
004700: D5 EB CD 15 02 D1 1A FE 22 20 03 2B 2B 13 7D E1 ........" .++.}.
004710: 71 23 70 02 03 7B 02 03 7A 02 03 F1 18 C9 3A 5E q#p..{..z.....:^
004720: 08 57 C5 2B 15 28 0B 7E 02 03 23 7E 02 03 2B 2B .W.+.(.~..#~..++
004730: 18 F1 21 89 08 CD D4 BC DD E3 30 0B 3A 5E 08 3D ..!.......0.:^.=
004740: FD E5 CD 1B 00 FD E1 DD E1 21 C8 00 39 F9 C9 31 .........!..9..1
004750: FF BF CD A7 BC CD 37 BD CD C8 BC 21 FF B0 11 40 ......7....!...@
004760: 00 CD CB BC ED 7B 1F 56 CD 00 BB 01 00 70 0B E3 .....{.V.....p..
004770: E3 78 B1 20 F9 C3 40 00 C5 2A 3C 55 11 FB FF 19 .x. ..@..*<U....
004780: 7C B5 CA 51 10 2A 3C 55 11 FA FF 19 7C B5 C2 5C |..Q.*<U....|..\
004790: 10 21 3D 00 E5 CD C9 43 D1 C3 7A 10 2A 3C 55 2B .!=....C..z.*<U+
0047A0: 2B 7C B5 CA 7A 10 2A 3C 55 2B 2B 2B 2B 7C B5 CA +|..z.*<U++++|..
0047B0: 7A 10 21 3E 00 E5 CD C9 43 D1 2A 44 55 23 23 23 z.!>....C.*DU###
0047C0: 7E 23 66 6F 6E 26 00 11 F9 FF 19 7C 17 DA B0 10 ~#fon&.....|....
0047D0: CD FB 17 11 85 FF 19 7C B5 CA B0 10 CD FB 17 11 .......|........
0047E0: DE FF 19 7C B5 CA B0 10 21 41 00 E5 CD C9 43 D1 ...|....!A....C.
0047F0: 2A 44 55 23 7E 23 66 6F 22 2F 56 2A 44 55 23 7E *DU#~#fo"/V*DU#~
004800: 23 66 6F E5 2A 44 55 23 23 23 7E 23 66 6F E5 CD #fo.*DU###~#fo..
004810: D9 10 D1 D1 CD 14 15 C1 C9 C5 21 FC FF 39 F9 44 ..........!..9.D
004820: 4D CD 90 09 08 6E EB 60 69 73 23 36 00 CD 90 09 M....n.`is#6....
004830: 08 23 7E 23 66 6F EB 21 02 00 09 73 23 72 CD 90 .#~#fo.!...s#r..
004840: 09 00 11 F9 FF 19 7C 17 D2 23 11 CD 90 09 02 E5 ......|..#......
004850: CD 90 09 0A E5 CD 90 09 00 E5 CD 7E 11 D1 D1 D1 ...........~....
004860: C3 75 11 CD 90 09 00 11 F8 FF 19 7C B5 C2 48 11 .u.........|..H.
004870: CD 90 09 02 E5 CD 90 09 0A E5 CD 90 09 08 E5 CD ................
004880: C2 11 D1 D1 D1 C3 75 11 CD 90 09 00 11 F7 FF 19 ......u.........
004890: 7C B5 C2 6D 11 CD 90 09 02 E5 CD 90 09 0A E5 CD |..m............
0048A0: 90 09 08 E5 CD 43 13 D1 D1 D1 C3 75 11 21 3F 00 .....C.....u.!?.
0048B0: E5 CD C9 43 D1 EB 21 04 00 39 F9 EB C1 C9 C5 21 ...C..!..9.....!
0048C0: FE FF 39 F9 44 4D 21 7B 00 E5 CD 29 1D D1 EB 60 ..9.DM!{...)...`
0048D0: 69 73 23 72 CD 90 09 0A E5 CD 90 09 08 E5 CD 78 is#r...........x
0048E0: 32 E5 CD 32 14 D1 D1 D1 CD 90 09 00 7C B5 CA B9 2..2........|...
0048F0: 11 21 7D 00 E5 CD F3 1C D1 EB 21 02 00 39 F9 EB .!}.......!..9..
004900: FE 72 C8 2E 0C FE 66 C8 6F 3A EF 4B FE 44 C0 7D .r....f.o:.K.D.}
004910: D6 30 6F 06 02 3A EC 4B D6 30 F8 FE 08 F0 4F 7D .0o..:.K.0....O}
004920: 87 87 87 81 6F E5 CD 88 17 E1 10 E9 C9 CD 88 17 ....o...........
004930: CD 94 19 22 E1 4B CD 88 17 3A EE 4B FE 27 C8 CD ...".K...:.K.'..
004940: 70 43 02 CD 88 17 21 00 00 E5 39 E5 3A 22 56 B7 pC....!...9.:"V.
004950: C4 D3 42 CD 3E 42 22 E1 4B 3A EC 4B D6 22 28 09 ..B.>B".K:.K."(.
004960: CD 94 19 5D CD 5B 42 18 F0 5F CD 5B 42 E1 CD CD ...].[B.._.[B...
004970: 42 E1 C3 88 17 CD 88 17 06 0C 21 78 1A 3A EE 4B B.........!x.:.K
004980: BE 23 20 2C 3A EC 4B BE 20 26 3E 0C 90 20 17 32 .# ,:.K. &>.. .2
004990: EC 4B CD 88 17 3A EE 4B FE 2A 20 F6 3A EC 4B FE .K...:.K.* .:.K.
0049A0: 2F 20 EF C3 5E 18 CD 88 17 3E 4D 80 32 E0 4B C9 / ..^....>M.2.K.
0049B0: 23 10 CA 3A EF 4B 18 F4 2F 2A 3D 3D 21 3D 2B 2B #..:.K../*==!=++
0049C0: 2D 2D 26 26 7C 7C 3C 3D 3C 3C 3E 3D 3E 3E 2D 3E --&&||<=<<>=>>->
0049D0: CD 54 18 FE 4C 20 17 CD BD 25 EB 21 B2 1A 01 08 .T..L ...%.!....
0049E0: 00 3E 07 F5 CD 32 25 28 41 F1 09 3D 20 F5 CD 70 .>...2%(A..= ..p
0049F0: 43 03 64 65 66 69 6E 65 20 20 69 6E 63 6C 75 64 C.define includ
004A00: 65 20 64 69 61 67 6E 6F 73 74 6C 69 73 74 20 20 e diagnostlist
004A10: 20 20 64 69 72 65 63 74 20 20 65 72 72 6F 72 20 direct error
004A20: 20 20 74 72 61 6E 73 6C 61 74 F1 6F 26 00 29 11 translat.o&.).
004A30: 5A 1B 19 E9 21 79 4C 18 12 21 7B 4C 18 0D CD 70 Z...!yL..!{L...p
004A40: 43 11 3A 21 56 B7 21 80 4C 20 F3 3A EC 4B FE 2D C.:!V.!.L .:.K.-
004A50: 20 01 35 FE 2B 20 01 34 C3 BB 1C 21 EE FF 39 F9 .5.+ .4...!..9.
004A60: E5 CD 00 1C 21 82 4C 34 6E AF 67 29 11 82 4C 19 ....!.L4n.g)..L.
004A70: ED 5B 74 4C 73 23 72 E1 BE 20 0F CD 21 44 21 01 .[tLs#r.. ..!D!.
004A80: 00 22 74 4C 21 12 00 39 F9 C9 E5 21 5A 1B E5 CD ."tL!..9...!Z...
004A90: 46 00 7D B4 20 EB CD 70 43 07 72 00 18 0C 18 26 F.}. ..pC.r....&
004AA0: 18 A0 18 95 18 8E 18 B3 18 3C 21 80 4C 36 00 21 .........<!.L6.!
004AB0: 92 4C CD 00 1C 3A 92 4C B7 28 07 21 21 56 34 C3 .L...:.L.(.!!V4.
004AC0: 0D 42 CD 70 43 07 21 08 00 CD 5E 43 C3 BB 1C E5 .B.pC.!...^C....
004AD0: F5 21 01 00 3E 05 CD EC 42 F1 2A AE 4C ED 5B C2 .!..>...B.*.L.[.
004AE0: 4C 19 2B 77 E1 C9 CD 54 18 FE 4C 28 04 CD 70 43 L.+w...T..L(..pC
004AF0: 05 3A EC 4B FE 28 20 0B 3A EF 4B FE 20 28 04 CD .:.K.( .:.K. (..
004B00: C1 C9 C5 21 F4 FF 39 F9 44 4D CD 90 09 10 23 23 ...!..9.DM....##
004B10: 23 7E 23 66 6F 23 7E 23 66 6F EB 21 04 00 09 73 #~#fo#~#fo.!...s
004B20: 23 72 CD 90 09 14 7C B5 CA FB 11 CD 90 09 14 E5 #r....|.........
004B30: CD 90 09 04 D1 CD 89 0A C3 FE 11 21 FF FF EB 21 ...........!...!
004B40: 02 00 09 73 23 72 21 7B 00 E5 CD 29 1D D1 EB 21 ...s#r!{...)...!
004B50: 06 00 09 73 23 72 CD FB 17 11 DE FF 19 7C B5 C2 ...s#r.......|..
004B60: A2 12 CD 90 09 10 23 23 23 7E 23 66 6F 6E 7D FE ......###~#fon}.
004B70: 02 C2 A2 12 CD 3E 42 EB 21 0A 00 09 73 23 72 2A .....>B.!...s#r*
004B80: E1 4B EB 21 08 00 09 73 23 72 CD 90 09 08 6E 7D .K.!...s#r....n}
004B90: B7 CA 7F 12 21 01 00 E5 21 12 00 09 5E 23 56 13 ....!...!...^#V.
004BA0: 72 2B 73 1B D5 21 08 00 09 5E 23 56 13 72 2B 73 r+s..!...^#V.r+s
004BB0: 1B EB 6E 26 00 E5 CD 32 14 D1 D1 D1 C3 4A 12 CD ..n&...2.....J..
004BC0: 90 09 08 E5 2A E1 4B D1 CD FA 0A 19 23 EB 60 69 ....*.K.....#.`i
004BD0: 73 23 72 CD 90 09 0A E5 CD 26 42 D1 CD F6 17 C3 s#r......&B.....
004BE0: F4 12 60 69 AF 77 23 77 CD 90 09 12 E5 CD 90 09 ..`i.w#w........
004BF0: 10 23 23 23 7E 23 66 6F E5 CD D9 10 D1 D1 21 12 .###~#fo......!.
004C00: 00 09 E5 7E 23 66 6F E5 CD 90 09 04 D1 19 EB E1 ...~#fo.........
004C10: 73 23 72 60 69 5E 23 56 13 72 2B 73 CD 90 09 00 s#r`i^#V.r+s....
004C20: E5 CD 90 09 02 D1 CD EC 09 D2 F4 12 CD 0D 14 7C ...............|
004C30: B5 C2 A8 12 CD 90 09 02 23 7C B5 C2 29 13 2A 44 ........#|..).*D
004C40: 55 23 E5 CD 90 09 10 23 E5 CD 90 09 00 E5 CD 90 U#.....#........
004C50: 09 04 D1 CD 6B 0A EB E1 73 23 72 D5 CD 41 28 D1 ....k...s#r..A(.
004C60: EB E1 73 23 72 EB 22 2F 56 CD 90 09 06 7C B5 CA ..s#r."/V....|..
004C70: 3A 13 21 7D 00 E5 CD F3 1C D1 EB 21 0C 00 39 F9 :.!}.......!..9.
004C80: EB C1 C9 C5 21 F8 FF 39 F9 44 4D CD 90 09 0E E5 ....!..9.DM.....
004C90: CD 90 09 10 D1 19 EB 21 04 00 09 73 23 72 21 7B .......!...s#r!{
004CA0: 00 E5 CD 29 1D D1 EB 21 02 00 09 73 23 72 CD 78 ...)...!...s#r.x
004CB0: 32 EB 60 69 73 23 72 CD 90 09 00 11 00 FF 19 CD 2.`is#r.........
004CC0: AF 09 DA 8B 13 21 01 00 C3 8E 13 21 02 00 EB 21 .....!.....!...!
004CD0: 06 00 09 73 23 72 CD 90 09 06 E5 CD 90 09 0E E5 ...s#r..........
004CE0: CD 90 09 00 E5 CD 32 14 D1 D1 D1 21 0E 00 09 E5 ......2....!....
004CF0: 7E 23 66 6F E5 CD 90 09 06 D1 19 EB E1 73 23 72 ~#fo.........s#r
004D00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
004D10: 04 00 00 00 02 09 4E E5 04 00 41 02 00 00 00 02 ......N...A.....
004D20: 04 00 46 02 00 00 00 02 04 00 42 02 00 00 00 02 ..F.......B.....
004D30: 04 00 47 02 00 00 00 02 04 00 43 02 00 00 00 02 ..G.......C.....
004D40: 04 00 48 02 00 00 00 02 04 00 44 02 00 00 00 02 ..H.......D.....
004D50: 04 00 49 02 00 00 00 02 04 00 45 02 00 00 00 02 ..I.......E.....
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: 70 43 06 ED 5B C2 4C D5 CB EA CD A4 25 CD 8F 1B pC..[.L.....%...
004E10: CD 54 18 FE 0A 28 1D CD 8F 1B FE 4C 28 0C FE 44 .T...(.....L(..D
004E20: 28 08 FE 27 28 04 FE 22 20 E6 7D CD 8F 1B 7C CD (..'(.." .}...|.
004E30: 8F 1B 18 DC D1 3A C2 4C 93 3D 2A AE 4C 19 77 C9 .....:.L.=*.L.w.
004E40: E5 3A ED 4B FE 20 3A EC 4B 5F 20 09 FE 0A 28 05 .:.K. :.K_ ...(.
004E50: CD 88 17 18 EC FE 3F 21 77 4C 7E 28 03 B7 28 02 ......?!wL~(..(.
004E60: 3C 77 7B FE 22 28 08 FE 3C 28 04 FE 3F 20 03 CD <w{."(..<(..? ..
004E70: 88 17 06 11 E1 3A ED 4B FE 20 28 18 3A EC 4B FE .....:.K. (.:.K.
004E80: 22 28 11 FE 3E 28 0D FE 3F 28 09 77 23 E5 CD 88 "(..>(..?(.w#...
004E90: 17 E1 10 E1 36 00 C3 BB 1C FE 4C C0 CD 8D 25 7C ....6.....L...%|
004EA0: D6 20 67 E6 E0 C0 47 ED 5B AE 4C 19 B6 C8 4F 09 . g...G.[.L...O.
004EB0: E5 21 CC 4C ED 5B FE 4C 09 B7 ED 52 E1 30 0A 1B .!.L.[.L...R.0..
004EC0: ED B8 13 ED 53 FE 4C AF C9 CD 70 43 04 2A FE 4C ....S.L...pC.*.L
004ED0: 11 FE 4C B7 ED 52 D0 19 7E 23 32 E0 4B FE 4C 28 ..L..R..~#2.K.L(
004EE0: 0C FE 44 28 08 FE 27 28 04 FE 22 20 08 5E 23 56 ..D(..'(.." .^#V
004EF0: 23 ED 53 E1 4B 22 FE 4C EB 37 C9 3A EC 4B FE 0A #.S.K".L.7.:.K..
004F00: C8 CD 88 17 18 F5 CD F6 17 CD 3C 1D 3A C8 21 E0 ..........<.:.!.
004F10: 4B E5 11 E8 4B 01 04 00 ED B0 D1 0E 04 ED B0 C9 K...K...........
004F20: E1 5E 23 E5 CD 02 18 BB 28 03 C3 70 43 CD F6 17 .^#.....(..pC...
004F30: E1 23 E9 E1 D1 D5 E5 21 11 1D 73 CD 02 18 BB CA .#.....!..s.....
004F40: F6 17 CD 70 43 00 08 1D 6D 69 73 73 69 6E 67 20 ...pC...missing
004F50: 27 20 27 00 E1 5E 23 E5 D5 CD F3 1C D1 C9 CD 14 ' '..^#.........
004F60: 1D 3B C9 CD F6 17 C3 14 1D D1 E1 E5 D5 26 00 CD .;...........&..
004F70: 02 18 BD 6C C0 CD F6 17 21 01 00 C9 E1 5E 23 E5 ...l....!....^#.
004F80: CD 02 18 BB C0 CD F6 17 AF C9 CD 3C 1D 3B C9 C5 ...........<.;..
004F90: CD 64 00 21 05 00 CD 5E 43 21 FE 4C 22 FE 4C 21 .d.!...^C!.L".L!
004FA0: 0A 20 22 EC 4B AF 67 6F 22 82 4C 22 79 4C 22 77 . ".K.go".L"yL"w
004FB0: 4C 22 74 4C 32 E8 4B 32 E4 4B 32 E0 4B 32 A3 4C L"tL2.K2.K2.K2£L
004FC0: 32 92 4C 23 22 7D 4C 22 7B 4C C1 C9 C5 CD 02 18 2.L#"}L"{L......
004FD0: 21 C1 1D 01 0F 00 CD 11 1E C1 C9 2A E1 4B CD BD !..........*.K..
004FE0: 25 11 B9 1D 01 08 00 CD 32 25 28 42 CD BD 20 E1 %.......2%(B.. .
004FF0: 28 DB E5 CD 66 32 C3 1E 1D 69 6E 6C 69 6E 65 20 (...f2...inline
005000: B0 4C 19 D1 C9 32 50 08 ED 43 51 08 C5 E5 5E 23 .L...2P..CQ...^#
005010: 56 EB 22 53 08 01 05 00 11 50 08 CD 32 25 EB 28 V."S.....P..2%.(
005020: 22 2A 60 4F B7 ED 52 28 04 EB 09 18 EB EB 09 EB "*`O..R(........
005030: 2A 62 4F B7 ED 52 38 11 ED 53 60 4F D5 21 50 08 *bO..R8..S`O.!P.
005040: ED B0 D1 E1 73 23 72 C1 C9 CD 70 43 13 C3 DC 33 ....s#r...pC...3
005050: EB 2A 91 55 23 73 23 72 22 91 55 3E 08 C3 DC 33 .*.U#s#r".U>...3
005060: 2A 91 55 56 7A B7 C8 2B 22 91 55 2A 42 55 5E FE *.UVz..+".U*BU^.
005070: 07 20 15 BB 28 0D 7B FE 08 28 08 FE 09 28 04 FE . ..(.{..(...(..
005080: 0A 20 04 CD 70 43 1C 7A FE 08 20 09 7B FE 07 20 . ..pC.z.. .{..
005090: 09 CD 70 43 1D 01 02 00 18 19 2A 91 55 56 2B 5E ..pC......*.UV+^
0050A0: 2B 22 91 55 2A 42 55 23 7E 23 66 6F CD 1D 01 44 +".U*BU#~#fo...D
0050B0: 4D 3E 08 21 42 55 CD C5 25 18 A5 D1 E1 E5 D5 7D M>.!BU..%......}
0050C0: 6C FE 06 C0 23 C9 CD 8D 25 EB CD 8E 26 C9 D5 2A l...#...%...&..*
0050D0: 4E 53 CD B6 01 E1 D0 EB 2A 4C 53 D5 CD B7 01 E1 NS......*LS.....
0050E0: C9 D1 E1 22 50 08 E1 7D 32 52 08 E1 22 55 08 E1 ..."P..}2R.."U..
0050F0: 7D 32 57 08 D5 C5 2A 50 08 FE 01 F5 CC C5 26 F1 }2W...*P......&.
005100: C4 A7 27 C1 C9 CD 86 26 30 64 E5 CD 63 35 EB 2A ..'....&0d..c5.*
005110: 55 08 B7 ED 52 28 04 CD 70 43 14 E1 4E 3A 52 08 U...R(..pC..N:R.
005120: FE 02 28 10 FE 01 28 24 FE 04 28 28 FE 0B 28 2C ..(...($..((..(,
005130: CD 70 43 15 79 FE 01 28 06 FE 03 28 02 18 F1 36 .pC.y..(...(...6
005140: 02 1A FE 07 C0 E5 23 CD CD 42 E1 C9 B9 C8 79 FE ......#..B....y.
005150: 02 C8 18 DC 79 FE 03 20 D7 36 04 C9 B9 20 D1 E5 ....y.. .6... ..
005160: 23 5E 23 56 2A 56 53 B7 ED 52 E1 20 C3 C9 21 00 #^#V*VS..R. ..!.
005170: 00 22 53 08 3A 52 08 2A 55 08 FE 07 28 1F FE 0C ."S.:R.*U...(...
005180: 28 1B FE 0B 28 3E 7E FE 07 20 0F 3A 52 08 FE 02 (...(>~.. .:R...
005190: 20 0B CD 3E 42 22 53 08 18 03 CD 89 27 ED 5B 4C ..>B"S.....'.[L
0051A0: 53 2A 50 53 B7 ED 52 38 05 EB CD 70 43 16 01 05 S*PS..R8...pC...
0051B0: 00 1B 21 56 08 ED B8 13 ED 53 4C 53 2A 50 08 CD ..!V.....SLS*P..
0051C0: A4 25 EB C9 CD 93 27 18 D4 2A 55 08 23 5E 23 56 .%....'..*U.#^#V
0051D0: C3 45 28 2A 56 53 22 53 08 EB 2A 55 08 23 7E 23 .E(*VS"S..*U.#~#
0051E0: 66 6F 19 22 56 53 C9 CD 9D 25 3A 57 08 FE 02 20 fo."VS...%:W...
0051F0: 74 7D B4 28 1B 3A 52 08 FE 0B 20 10 BE 20 0D E5 t}.(.:R... .. ..
005200: 20 57 1F 02 40 20 03 73 1F 06 7A 20 07 4D 1E 09 W..@ .s..z .M..
005210: CF 1E 0F 9A 20 10 8E 1F 11 D7 20 15 C0 1F 1A 93 .... ..... .....
005220: 1E 1E F6 17 3B ED 20 7B 9B 1D 4C B3 1D 00 CD 23 ....;. {..L....#
005230: 1D 28 CD 3C 1D 29 C8 CD 78 32 E5 7C B7 20 05 CD .(.<.)..x2.|. ..
005240: 4D 42 18 03 CD 54 42 E1 CD 3C 1D 2C 28 E9 18 E2 MB...TB..<.,(...
005250: D1 5E 23 56 D5 23 ED A1 C8 EA 10 1E C9 F1 2A 65 .^#V.#........*e
005260: 54 E5 2A 63 54 E5 2A 62 54 E5 F5 ED 43 65 54 ED T.*cT.*bT...CeT.
005270: 53 63 54 7B B2 3E 02 28 01 3C 32 62 54 C9 D1 E1 ScT{.>.(.<2bT...
005280: 22 62 54 E1 22 63 54 E1 22 65 54 EB E9 11 00 00 "bT."cT."eT.....
005290: 42 4B CD 1D 1E CD F6 17 CD 3E 42 E5 CD 8C 1D CD BK.......>B.....
0052A0: E0 1C 1E 09 21 63 54 CD CD 42 CD 14 1D 28 CD EB ....!cT..B...(..
0052B0: 42 21 00 00 39 E5 21 00 00 E5 23 E5 CD 6C 32 D1 B!..9.!...#..l2.
0052C0: D1 D1 D1 CD 14 1D 29 21 65 54 CD CD 42 CD 3E 1E ......)!eT..B.>.
0052D0: C3 1E 1D CD 3E 42 EB 01 00 00 CD 1D 1E CD EB 42 ....>B.........B
0052E0: 21 65 54 CD B6 1E 21 63 54 CD D9 42 21 65 54 CD !eT...!cT..B!eT.
0052F0: CD 42 CD 3E 1E C9 E5 CD 23 1D 28 21 01 00 E5 2B .B.>....#.(!...+
005300: E5 CD 6C 32 D1 D1 D1 CD 14 1D 29 CD 8C 1D C9 CD ..l2......).....
005310: 23 1D 28 11 00 00 ED 53 87 08 42 4B CD 1D 1E CD #.(....S..BK....
005320: 4A 1D 28 06 CD 66 32 CD 1E 1D CD 3E 42 E5 AF F5 J.(..f2....>B...
005330: CD 4A 1D 28 16 F1 3C F5 21 65 54 E5 21 01 00 E5 .J.(..<.!eT.!...
005340: 2B E5 CD 6C 32 D1 D1 D1 CD 1E 1D CD 3C 1D 29 20 +..l2.......<.)
005350: 07 F1 E1 22 63 54 18 1E 21 87 08 CD D3 42 CD 3E ..."cT..!....B.>
005360: 42 22 63 54 CD 66 32 F1 28 07 21 00 00 39 CD D9 B"cT.f2.(.!..9..
005370: 42 E1 CD 14 1D 29 21 62 54 CB C6 21 87 08 CD CD B....)!bT..!....
005380: 42 CD EB 42 CD 8C 1D 21 63 54 CD D9 42 21 65 54 B..B...!cT..B!eT
005390: CD CD 42 CD 3E 1E C9 3A 62 54 E6 02 20 06 3A 67 ..B.>..:bT.. .:g
0053A0: 54 B7 20 0B 21 65 54 CD D3 42 CD 23 1D 3B C9 CD T. .!eT..B.#.;..
0053B0: 70 43 0A 3A 62 54 CB 4F 28 10 2F CB 47 21 63 54 pC.:bT.O(./.G!cT
0053C0: F5 CC D9 42 F1 C4 D3 42 18 E0 CD 70 43 0B 21 00 ...B...B...pC.!.
0053D0: 00 E5 39 E5 CD B6 1E CD 3C 1D 0B 20 1D 21 00 00 ..9.....<.. .!..
0053E0: E5 39 E5 CD D3 42 D1 C1 E1 E5 C5 D5 CD CD 42 CD .9...B........B.
0053F0: 8C 1D E1 CD CD 42 E1 E1 E1 C9 E1 CD CD 42 E1 C9 .....B.......B..
005400: CD 63 35 EB 2A 55 08 B7 ED 52 E1 C8 CD 70 43 18 .c5.*U...R...pC.
005410: 3A 52 08 21 00 00 FE 07 28 1D FE 04 28 1E FE 0B :R.!....(...(...
005420: 20 05 CD 93 27 18 18 2A 55 08 23 5E 23 56 2A 58 ...'..*U.#^#V*X
005430: 54 B7 ED 52 22 58 54 22 53 08 18 03 CD 89 27 01 T..R"XT"S.....'.
005440: 05 00 ED 5B 52 54 2A 56 54 B7 ED 52 20 05 EB CD ...[RT*VT..R ...
005450: 70 43 19 21 56 08 1B ED B8 13 2A 50 08 CD B5 25 pC.!V.....*P...%
005460: EB 22 52 54 C9 FE 03 C0 ED 5B 55 08 7D B4 28 0D ."RT.....[U.}.(.
005470: 3A 52 08 77 E5 23 23 23 73 23 72 E1 C9 CD 70 43 :R.w.###s#r...pC
005480: 1A E1 D1 D5 E5 3A 21 56 28 0C D5 CD 42 42 ED 5B .....:!V(...BB.[
005490: AA 4C 19 D1 18 03 2A CA 4C B7 ED 52 38 12 B7 20 .L....*.L..R8..
0054A0: 03 22 CA 4C 2A 54 53 ED 52 22 53 08 22 54 53 C9 .".L*TS.R"S."TS.
0054B0: CD 70 43 17 D1 E1 E5 D5 CD 7C 28 C9 54 5D CD 9D .pC......|(.T]..
0054C0: 25 7D B4 C0 62 6B C3 8D 25 C5 CD 92 28 7C B5 7E %}..bk..%...(|.~
0054D0: C1 C9 44 4D CD 9D 25 7D B4 28 0B 7E FE 09 C8 FE ..DM..%}.(.~....
0054E0: 0A C8 21 00 00 C9 2A 56 54 ED 5B 52 54 AF ED 52 ..!...*VT.[RT..R
0054F0: 20 04 CD 70 43 19 60 69 06 04 1B 12 10 FC 1B CD ..pC.`i........
005500: B5 25 EB 36 0A 22 52 54 C9 C5 CD 9C 29 CD 7C 28 .%.6."RT....).|(
005510: AF 32 50 08 23 7E 23 B6 CC 16 29 ED 4B C4 4C 2A .2P.#~#...).K.L*
005520: 60 4D 11 0C 00 D5 E5 CD 86 26 30 14 7E FE 0A 28 `M.......&0.~..(
005530: 0A FE 01 20 0B 23 7E 23 B6 28 05 D1 D5 CD 16 29 ... .#~#.(.....)
005540: E1 D1 19 B7 ED 42 09 38 DC 3A 50 08 B7 67 6F C1 .....B.8.:P..go.
005550: C8 3E 0A C3 82 00 D5 21 2A 29 CD 8F 41 D1 2A B0 .>.....!*)..A.*.
005560: 4C 19 3E 08 32 50 08 C3 9C 41 0A 45 52 52 4F 52 L.>.2P...A.ERROR
005570: 20 2D 20 32 37 20 2D 20 75 6E 64 65 66 69 6E 65 - 27 - undefine
005580: 64 20 73 79 6D 62 6F 6C 20 00 C5 CD 56 29 CD 63 d symbol ...V).c
005590: 29 CD 72 29 C1 C9 21 99 4D 22 60 4F 21 5B 4F 22 ).r)..!.M"`O![O"
0055A0: 62 4F C9 2A 60 4D ED 5B C4 4C B7 ED 52 3E 06 C3 bO.*`M.[.L..R>..
0055B0: EC 42 21 64 4F 22 50 53 2A 52 53 22 4C 53 21 47 .B!dO"PS*RS"LS!G
0055C0: 53 22 4E 53 21 01 00 22 5A 54 2E 01 E5 21 8F 4D S"NS!.."ZT...!.M
0055D0: E5 2E 01 E5 CD 9C 29 E5 CD A1 26 C9 21 A2 29 C3 ......)...&.!.).
0055E0: 44 25 6D 61 69 6E 20 20 20 20 00 C5 01 04 00 ED D%main ......
0055F0: 5B 52 54 2A 54 54 B7 ED 52 38 0D EB 23 71 23 70 [RT*TT..R8..#q#p
005600: 2A 65 54 E5 3A 67 54 F5 2A 6A 54 E5 2A 68 54 E5 *eT.:gT.*jT.*hT.
005610: AF 67 6F 22 65 54 22 6A 54 32 67 54 CD 23 1D 28 .go"eT"jT2gT.#.(
005620: CD 66 32 CD 19 31 CD A5 42 CD 89 02 CD 3E 42 E5 .f2..1..B....>B.
005630: CD AC 42 00 00 CD 14 1D 29 CD 8C 1D 21 65 54 CD ..B.....)...!eT.
005640: D3 42 21 00 00 39 CD CD 42 E1 2A 68 54 D1 ED 53 .B!..9..B.*hT..S
005650: 68 54 B7 ED 52 4D 44 EB CD C2 42 CD AC 42 00 00 hT..RMD...B..B..
005660: 2A 6A 54 7D B4 28 06 21 6A 54 CD D9 42 21 65 54 *jT}.(.!jT..B!eT
005670: CD CD 42 E1 22 6A 54 F1 32 67 54 E1 22 65 54 C9 ..B."jT.2gT."eT.
005680: CD F6 17 3A 67 54 B7 28 04 CD 70 43 0C 2A 68 54 ...:gT.(..pC.*hT
005690: ED 5B 3A 55 ED 52 FA 5D 20 CD 70 43 0D CD 3E 42 .[:U.R.] .pC..>B
0056A0: EB 2A 68 54 73 23 72 23 E5 CD 78 32 EB E1 73 23 .*hTs#r#..x2..s#
0056B0: 72 23 22 68 54 CD 14 1D 3A C9 3A 67 54 B7 28 04 r#"hT...:.:gT.(.
0056C0: CD 70 43 0C 2A 6A 54 7D B4 28 04 CD 70 43 0E CD .pC.*jT}.(..pC..
0056D0: 3E 42 22 6A 54 CD 23 1D 3A C9 CD F6 17 CD 02 18 >B"jT.#.:.......
0056E0: FE 4C 28 04 CD 70 43 0F 2A E1 4B CD 89 28 23 28 .L(..pC.*.K..(#(
0056F0: 08 FE 09 CC EB 42 C3 80 1F CD 70 43 10 2A E1 4B .....B....pC.*.K
005700: E5 CD C6 1C E1 C0 CD 89 28 28 EE FE 0A 20 EA 36 ........((... .6
005710: 09 23 CD CD 42 AF C9 CD F6 17 CD 02 18 FE 3B 28 .#..B.........;(
005720: 06 CD 66 32 CD 19 31 CD 1E 1D C3 EC 2B CD F6 17 ..f2..1.....+...
005730: CD 02 18 FE 7D CA F6 17 CD 8C 1D 18 F3 C5 01 0A ....}...........
005740: 00 11 62 54 21 11 21 ED B0 21 34 55 22 3A 55 C1 ..bT!.!..!4U":U.
005750: C9 00 00 00 00 00 01 6C 54 00 00 C5 CD 5A 21 F5 .......lT....Z!.
005760: CD 8B 21 CD 4A 1D 28 25 F1 CD 58 24 FE 02 28 20 ..!.J.(%..X$..(
005770: FE 05 28 21 3E 00 F5 CD 3C 1D 3D CC 38 10 CD 4A ..(!>...<.=.8..J
005780: 1D 28 0A CD 3C 1D 2C 28 DF CD 70 43 30 F1 C1 C9 .(..<.,(..pC0...
005790: CD 61 24 C1 C9 CD C8 24 C1 C9 CD 02 18 01 06 00 .a$....$........
0057A0: 21 4B 55 ED B9 F5 E5 CC F6 17 E1 11 07 00 3A 5A !KU...........:Z
0057B0: 54 FE 01 20 03 11 0D 00 19 7E 32 3C 55 FE 08 20 T.. .....~2<U..
0057C0: 04 CD 70 43 31 F1 3E 00 C8 3C C9 CD 02 18 01 08 ..pC1.>..<......
0057D0: 00 21 5F 55 ED B9 20 47 E5 CD F6 17 E1 23 4E 11 .!_U.. G.....#N.
0057E0: 08 00 19 5E 16 00 6B 62 29 29 19 11 6C 4D 19 22 ...^..kb))..lM."
0057F0: 40 55 CD 02 18 47 FE 12 20 14 79 FE 13 28 08 FE @U...G.. .y..(..
005800: 23 23 23 EB 03 03 18 EB 21 FC FF 09 22 36 55 21 ###.....!..."6U!
005810: 00 00 22 34 55 22 58 54 C1 C9 C5 21 00 00 22 58 .."4U"XT...!.."X
005820: 54 21 58 53 22 56 54 21 52 54 22 52 54 21 4D 54 T!XS"VT!RT"RT!MT
005830: 22 54 54 2A B0 4C E5 ED 4B C4 4C 09 44 4D E1 11 "TT*.L..K.L.DM..
005840: 08 00 19 13 13 13 13 D5 E5 C5 AF 5E 77 23 56 77 ...........^w#Vw
005850: 1A FE 0A 20 15 11 F7 FF 19 E5 21 36 2A CD 8F 41 ... ......!6*..A
005860: 3E 08 E1 CD 9C 41 CD 70 43 1B C1 E1 D1 19 B7 ED >....A.pC.......
005870: 42 09 38 D3 C1 C9 75 6E 64 65 66 69 6E 65 64 20 B.8...undefined
005880: 6C 61 62 65 6C 3A 20 00 C5 21 00 00 39 F9 44 4D label: ..!..9.DM
005890: CD 90 09 04 E5 21 C3 00 E5 21 18 00 E5 CD 82 2A .....!...!.....*
0058A0: D1 D1 D1 C1 C9 C5 21 00 00 39 F9 44 4D CD 90 09 ......!..9.DM...
0058B0: 04 E5 21 C3 00 E5 21 18 00 E5 CD E1 2A D1 D1 D1 ..!...!.....*...
0058C0: C1 C9 C5 21 FE FF 39 F9 44 4D CD 90 09 0A 7E 23 ...!..9.DM....~#
0058D0: 66 6F E5 2A 02 4D D1 CD FA 0A 19 2B 2B EB 60 69 fo.*.M.....++.`i
0058E0: 73 23 72 CD 90 09 00 11 80 00 19 7C 17 DA C5 2A s#r........|...*
0058F0: CD 90 09 06 E5 CD 4D 42 D1 CD 90 09 00 E5 CD 4D ......MB.......M
005900: 42 D1 C3 D8 2A CD 90 09 0A 7E 23 66 6F E5 CD 90 B...*....~#fo...
005910: 09 08 E5 CD 90 42 D1 D1 EB 21 02 00 39 F9 EB C1 .....B...!..9...
005920: C9 C5 21 FE FF 39 F9 44 4D CD 90 09 08 E5 CD 4D ..!..9.DM......M
005930: 42 D1 2A 02 4D EB 60 69 73 23 72 CD 90 09 0A 7E B.*.M.`is#r....~
005940: 23 66 6F E5 CD 54 42 D1 CD 90 09 0A 7E 23 66 6F #fo..TB.....~#fo
005950: E5 CD FA 43 D1 CD 90 09 0A E5 CD 90 09 00 EB E1 ...C............
005960: 73 23 72 EB 21 02 00 39 F9 EB C1 C9 C5 21 FC FF s#r.!..9.....!..
005970: 39 F9 44 4D 2A 00 4D E5 2A 02 4D D1 CD FA 0A 19 9.DM*.M.*.M.....
005980: EB 60 69 73 23 72 CD 90 09 00 E5 CD FA 43 D1 CD .`is#r.......C..
005990: 90 09 08 7E 23 66 6F EB 21 02 00 09 73 23 72 CD ...~#fo.!...s#r.
0059A0: 90 09 08 E5 2A 02 4D EB E1 73 23 72 CD 90 09 02 ....*.M..s#r....
0059B0: E5 CD 90 09 00 D1 19 EB 21 08 00 09 73 23 72 CD ........!...s#r.
0059C0: 90 09 02 E5 CD FA 43 D1 CD 90 09 02 7C B5 C2 4F ......C.....|..O
0059D0: 2B EB 21 04 00 39 F9 EB C1 C9 C5 21 00 00 39 F9 +.!..9.....!..9.
0059E0: 44 4D CD 90 09 04 E5 21 CD 00 E5 CD 90 42 D1 D1 DM.....!.....B..
0059F0: C1 C9 C5 21 00 00 39 F9 44 4D CD 90 09 04 6E 7D ...!..9.DM....n}
005A00: 16 28 04 FE 1D 20 03 CD F6 17 21 01 00 C9 FE 0E .(... ....!.....
005A10: 20 F8 79 FE 13 20 F3 21 85 4D 22 40 55 18 E8 CD .y.. .!.M"@U...
005A20: 0C 22 7D B4 C0 CD FC 21 20 08 CD 63 35 22 40 55 ."}....! ..c5"@U
005A30: 18 D5 21 71 4D 22 40 55 21 00 00 C9 CD 02 18 FE ..!qM"@U!.......
005A40: 4C C0 2A E1 4B CD 7C 28 7E FE 07 C9 CD 02 18 21 L.*.K.|(~......!
005A50: 00 00 FE 19 28 04 FE 1C C0 23 E5 CD F6 17 CD 02 ....(....#......
005A60: 18 FE 4C 20 22 2A E1 4B CD 7C 28 7D B4 28 18 CD ..L "*.K.|(}.(..
005A70: 63 35 22 61 08 CD F6 17 CD 02 18 FE 7B 20 04 CD c5"a........{ ..
005A80: 70 43 33 E1 C3 F9 22 3A 5A 54 FE 03 20 04 CD 70 pC3...":ZT.. ..p
005A90: 43 34 21 6C 4D 22 61 08 39 44 4D 21 61 08 3E 09 C4!lM"a.9DM!a.>.
005AA0: CD C5 25 CD 02 18 FE 4C 20 16 2A 5A 54 E5 2A 61 ..%....L .*ZT.*a
005AB0: 08 E5 21 0C 00 E5 2A E1 4B E5 CD A1 26 CD F6 17 ..!...*.K...&...
005AC0: CD 14 1D 7B D1 3A 3C 55 F5 2A 56 53 E5 D5 21 00 ...{.:<U.*VS..!.
005AD0: 00 22 56 53 3E 0B 32 3C 55 CD 3C 1D 7D 28 42 2A ."VS>.2<U.<.}(B*
005AE0: 61 08 E5 CD 8B 21 E1 22 61 08 3E 04 CD 58 24 2A a....!."a.>..X$*
005AF0: 61 08 ED 5B 42 55 CD 88 01 30 04 CD 70 43 35 D1 a..[BU...0..pC5.
005B00: D5 7B B2 28 11 2A 56 53 E5 CD AF 01 E1 30 01 E3 .{.(.*VS.....0..
005B10: 21 00 00 22 56 53 CD 3C 1D 2C 28 CE CD 1E 1D 18 !.."VS.<.,(.....
005B20: B8 E1 7D B4 20 03 2A 56 53 EB 2A 61 08 23 73 23 ..}. .*VS.*a.#s#
005B30: 72 E1 22 56 53 F1 32 3C 55 2A 61 08 22 40 55 21 r."VS.2<U*a."@U!
005B40: 01 00 C9 CD 7E 23 F5 CD 20 26 CD 02 18 FE 7B 20 ....~#.. &....{
005B50: 08 F1 FE 00 28 04 3E 02 F5 F1 F5 FE 03 20 14 2A ....(.>...... .*
005B60: 42 55 7E FE 07 28 08 FE 09 28 04 FE 0A 20 28 CD BU~..(...(... (.
005B70: 70 43 2D FE 02 20 20 2A 77 4C 7D B4 28 19 2A 3E pC-.. *wL}.(.*>
005B80: 55 CD 8D 25 7D B4 28 0B 7E FE 01 20 06 23 7E 23 U..%}.(.~.. .#~#
005B90: B6 20 04 F1 3E 05 C9 2A 5A 54 ED 5B 42 55 3E 02 . ..>..*ZT.[BU>.
005BA0: BD 20 09 1A FE 07 20 04 2D E5 18 04 E5 2A 3C 55 . .... .-....*<U
005BB0: D5 E5 2A 3E 55 E5 CD A1 26 22 44 55 F1 C9 F5 01 ..*>U...&"DU....
005BC0: FF FF 03 CD 3C 1D 2A 28 F9 F1 C5 F5 CD 3C 1D 28 ....<.*(.....<.(
005BD0: 20 0B F1 CD 7E 23 F5 CD 14 1D 29 18 16 CD 02 18 ...~#....).....
005BE0: FE 4C 20 0B 2A E1 4B 22 3E 55 CD F6 17 18 04 CD .L .*.K">U......
005BF0: 70 43 36 F1 CD C9 23 C1 F5 79 B0 28 0A 0B C5 3E pC6...#..y.(...>
005C00: FE 01 C2 DC 2B CD 90 09 04 23 E5 21 CD 00 E5 21 ....+....#.!...!
005C10: 00 00 E5 CD E1 2A D1 D1 D1 C3 EA 2B CD 90 09 04 .....*.....+....
005C20: 23 7E 23 66 6F E5 CD 9A 2B D1 C1 C9 C5 2A 34 55 #~#fo...+....*4U
005C30: 7C B5 CA 00 2C 21 34 55 E5 CD 48 2A D1 C3 38 2C |...,!4U..H*..8,
005C40: 2A 02 4D 22 34 55 2A 38 55 7C B5 CA 1E 2C 21 BE *.M"4U*8U|...,!.
005C50: 00 E5 21 C3 00 E5 CD 90 42 D1 D1 C3 38 2C 2A 36 ..!.....B...8,*6
005C60: 55 E5 21 11 00 E5 CD 90 42 D1 D1 21 C4 00 E5 21 U.!.....B..!...!
005C70: C3 00 E5 CD 90 42 D1 D1 C1 C9 C5 21 00 00 39 F9 .....B.....!..9.
005C80: 44 4D CD 90 09 06 E5 21 2A 00 E5 CD 90 42 D1 D1 DM.....!*....B..
005C90: CD 90 09 04 2B 2B 7C B5 C2 63 2C 21 26 00 E5 CD ....++|..c,!&...
005CA0: 54 42 D1 C1 C9 C5 21 00 00 39 F9 44 4D 21 ED 5B TB....!..9.DM!.[
005CB0: E5 CD 54 42 D1 CD 90 09 06 E5 CD 54 42 D1 CD 90 ..TB.......TB...
005CC0: 09 04 2B 2B 7C B5 C2 91 2C 21 16 00 E5 CD 54 42 ..++|...,!....TB
005CD0: D1 C1 C9 C5 21 00 00 39 F9 44 4D CD 90 09 06 11 ....!..9.DM.....
005CE0: 80 00 19 7C 17 DA B5 2C CD 90 09 06 11 81 FF 19 ...|...,........
005CF0: 7C 17 DA CD 2C CD 90 09 06 11 81 FF 19 7C B5 C2 |...,........|..
005D00: 09 2D CD 90 09 04 2B 2B 7C B5 C2 09 2D 21 DD 6E .-....++|...-!.n
005D10: E5 CD 54 42 D1 CD 90 09 06 E5 CD 4D 42 D1 CD 90 ..TB.......MB...
005D20: 09 04 2B 2B 7C B5 CA FE 2C 21 DD 66 E5 CD 54 42 ..++|...,!.f..TB
005D30: D1 CD 90 09 06 23 E5 CD 4D 42 D1 C3 06 2D 21 26 .....#..MB...-!&
005D40: 00 E5 CD 54 42 D1 C3 35 2D CD 90 09 06 E5 21 21 ...TB..5-.....!!
005D50: 00 E5 CD 90 42 D1 D1 CD 90 09 04 2B 2B 7C B5 CA ....B......++|..
005D60: 2D 2D 21 47 02 E5 CD 9A 2B D1 C3 35 2D 21 50 02 --!G....+..5-!P.
005D70: E5 CD 9A 2B D1 C1 C9 C5 21 00 00 39 F9 44 4D CD ...+....!..9.DM.
005D80: 90 09 04 2B 2B 7C B5 CA 55 2D 21 4B 02 E5 CD 9A ...++|..U-!K....
005D90: 2B D1 C3 65 2D 21 6E 00 E5 CD 4D 42 D1 21 26 00 +..e-!n...MB.!&.
005DA0: E5 CD 54 42 D1 C1 C9 C5 21 00 00 39 F9 44 4D 21 ..TB....!..9.DM!
005DB0: 5E 00 E5 CD 4D 42 D1 CD 90 09 04 2B 2B 7C B5 CA ^...MB.....++|..
005DC0: 95 2D 21 23 00 E5 CD 4D 42 D1 21 56 00 E5 CD 4D .-!#...MB.!V...M
005DD0: 42 D1 C3 9D 2D 21 16 00 E5 CD 54 42 D1 C1 C9 C5 B...-!....TB....
005DE0: 21 FE FF 39 F9 44 4D CD A3 32 CD 19 31 2A C7 55 !..9.DM.£2..1*.U
005DF0: 23 7E 23 66 6F EB 60 69 73 23 72 2A C7 55 6E 26 #~#fo.`is#r*.Un&
005E00: 06 CD 0D 26 C1 18 F2 F1 C9 F5 CD 3C 1D 28 28 08 ...&.......<.((.
005E10: CD 3C 1D 5B 28 50 F1 C9 CD 3C 1D 29 28 39 F1 F5 .<.[(P...<.)(9..
005E20: FE 00 28 3A FE 03 28 36 FE 04 28 32 F1 3E 02 F5 ..(:..(6..(2.>..
005E30: CD 02 18 FE 4C 20 2B 21 02 00 E5 21 71 4D E5 21 ....L +!...!qM.!
005E40: 05 00 E5 2A E1 4B E5 CD A1 26 CD F6 17 CD 3C 1D ...*.K...&....<.
005E50: 2C 28 DD CD 14 1D 29 3E 07 CD 0D 26 F1 C9 CD 70 ,(....)>...&...p
005E60: 43 37 CD 70 43 38 F1 F5 FE 03 20 0F 3E 06 CD 0D C7.pC8.... .>...
005E70: 26 CD 02 18 FE 5D C4 78 32 18 11 CD 02 18 D6 5D &....].x2......]
005E80: 20 04 67 6F 18 03 CD 78 32 CD 10 26 CD 14 1D 5D .go...x2..&...]
005E90: CD 3C 1D 5B 28 F0 F1 C9 2A 40 55 22 42 55 C3 03 .<.[(...*@U"BU..
005EA0: 23 2A 44 55 CD 63 35 FE 07 28 04 CD 70 43 39 CD #*DU.c5..(..pC9.
005EB0: 3C 1D 01 21 00 00 20 08 23 ED 5B 44 55 3E 0D 12 <..!.. .#.[DU>..
005EC0: 22 38 55 3E 03 32 5A 54 18 03 CD EE 24 CD 3C 1D "8U>.2ZT....$.<.
005ED0: 7B 20 F7 CD AB 29 3E 02 32 5A 54 32 22 56 CD 08 { ...)>.2ZT2"V..
005EE0: 25 2A 58 54 CD B5 42 21 21 8F 00 CD E5 42 18 03 %*XT..B!!....B..
005EF0: CD 8C 1D CD 3C 1D 7D 20 F7 CD EC 2B AF 32 22 56 ....<.} ...+.2"V
005F00: 3C 32 5A 54 CD DA 29 C9 18 03 CD F6 17 CD 3C 1D <2ZT..).......<.
005F10: 7B 20 F7 01 01 00 CD 02 18 FE 7B 20 01 03 FE 7D { ........{ ...}
005F20: 20 01 0B CD F6 17 79 B0 20 EC CD DA 29 C9 CD 3C .....y. ...)..<
005F30: 1D 14 3E 05 32 3C 55 CD 8B 21 3E 03 CD 58 24 CD ..>.2<U..!>..X$.
005F40: 3C 1D 2C 28 F5 C3 1E 1D CD FC 21 28 12 CD 02 18 <.,(......!(....
005F50: FE 01 D8 FE 1E D0 01 0E 00 21 24 25 ED B1 C0 CD .........!$%....
005F60: 1B 21 18 E4 01 05 08 0D 0E 12 13 14 16 18 19 1B .!..............
005F70: 1C 1D C5 D5 E5 CD 3C 25 E1 D1 C1 C9 1A 13 ED A1 ......<%........
005F80: C0 E0 18 F8 C5 E5 7E 2A C4 4C ED 5B B0 4C 19 EB ......~*.L.[.L..
005F90: 01 0C 00 BE 28 27 09 ED 52 19 38 F7 60 69 3E 06 ....('..R.8.`i>.
005FA0: CD EC 42 01 08 00 E1 D5 ED B0 06 04 AF 12 13 10 ..B.............
005FB0: FC D1 D5 2A B0 4C EB B7 ED 52 D1 C1 C9 EB E3 0E ...*.L...R......
005FC0: 08 CD 32 25 28 ED 0E 0C 7E E3 EB 18 C9 D5 11 0A ..2%(...~.......
005FD0: 00 19 ED 5B B0 4C 19 5E 23 56 EB D1 C9 D5 11 08 ...[.L.^#V......
005FE0: 00 C3 91 25 E5 D5 11 0A 00 19 ED 5B B0 4C 19 D1 ...%.......[.L..
005FF0: 73 23 72 E1 C9 E5 D5 11 08 00 C3 A9 25 D5 ED 5B s#r.........%..[
006000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
006010: 05 00 00 00 02 09 4E E5 05 00 41 02 00 00 00 02 ......N...A.....
006020: 05 00 46 02 00 00 00 02 05 00 42 02 00 00 00 02 ..F.......B.....
006030: 05 00 47 02 00 00 00 02 05 00 43 02 00 00 00 02 ..G.......C.....
006040: 05 00 48 02 00 00 00 02 05 00 44 02 00 00 00 02 ..H.......D.....
006050: 05 00 49 02 00 00 00 02 05 00 45 02 00 00 00 02 ..I.......E.....
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: 00 11 04 00 7C A2 67 7D A3 6F 7C B5 CA E2 2D CD ....|.g}£o|...-.
006110: 90 09 00 E5 2A 69 55 26 00 E5 CD 33 2E D1 D1 C3 ....*iU&...3....
006120: 19 2E 2A C7 55 6E 26 00 11 02 00 7C A2 67 7D A3 ..*.Un&....|.g}£
006130: 6F 7C B5 CA 09 2E CD 90 09 00 E5 2A 69 55 26 00 o|.........*iU&.
006140: E5 CD A7 2E D1 D1 C3 19 2E CD 90 09 00 E5 2A 69 ..............*i
006150: 55 26 00 E5 CD 6F 2E D1 D1 2A 69 55 7D FE 02 C2 U&...o...*iU}...
006160: 2A 2E 21 26 00 E5 CD 54 42 D1 EB 21 02 00 39 F9 *.!&...TB..!..9.
006170: EB C1 C9 C5 21 00 00 39 F9 44 4D CD 90 09 04 2B ....!..9.DM....+
006180: 2B 7C B5 CA 57 2E CD 90 09 06 E5 21 22 00 E5 CD +|..W......!"...
006190: 90 42 D1 D1 C3 6D 2E 21 7D 00 E5 CD 4D 42 D1 CD .B...m.!}...MB..
0061A0: 90 09 06 E5 21 32 00 E5 CD 90 42 D1 D1 C1 C9 C5 ....!2....B.....
0061B0: 21 00 00 39 F9 44 4D CD 90 09 04 2B 2B 7C B5 CA !..9.DM....++|..
0061C0: 8D 2E 21 6A 02 E5 CD 9A 2B D1 C3 A5 2E 21 D1 00 ..!j....+....!..
0061D0: E5 CD 4D 42 D1 21 7D 00 E5 CD 4D 42 D1 21 12 00 ..MB.!}...MB.!..
0061E0: E5 CD 4D 42 D1 C1 C9 C5 21 00 00 39 F9 44 4D CD ..MB....!..9.DM.
0061F0: 90 09 06 11 80 00 19 7C 17 DA C9 2E CD 90 09 06 .......|........
006200: 11 81 FF 19 7C 17 DA E1 2E CD 90 09 06 11 81 FF ....|...........
006210: 19 7C B5 C2 12 2F CD 90 09 04 2B 2B 7C B5 C2 12 .|.../....++|...
006220: 2F 21 DD 75 E5 CD 54 42 D1 CD 90 09 06 E5 CD 4D /!.u..TB.......M
006230: 42 D1 CD 90 09 04 2B 2B 7C B5 CA 0F 2F 21 DD 74 B.....++|.../!.t
006240: E5 CD 54 42 D1 CD 90 09 06 23 E5 CD 4D 42 D1 C3 ..TB.....#..MB..
006250: 3E 2F CD 90 09 06 E5 21 11 00 E5 CD 90 42 D1 D1 >/.....!.....B..
006260: CD 90 09 04 2B 2B 7C B5 CA 36 2F 21 58 02 E5 CD ....++|..6/!X...
006270: 9A 2B D1 C3 3E 2F 21 62 02 E5 CD 9A 2B D1 C1 C9 .+..>/!b....+...
006280: C5 21 FF FF 39 F9 44 4D CD 90 09 05 6E EB 60 69 .!..9.DM....n.`i
006290: 73 60 69 6E 26 00 11 04 00 7C A2 67 7D A3 6F 7C s`in&....|.g}£o|
0062A0: B5 CA 7D 2F CD 01 31 CD 90 09 05 23 7E 23 66 6F ..}/..1....#~#fo
0062B0: E5 21 21 00 E5 CD 90 42 D1 D1 C3 DC 2F 60 69 6E .!!....B..../`in
0062C0: 26 00 11 02 00 7C A2 67 7D A3 6F 7C B5 CA C1 2F &....|.g}£o|.../
0062D0: CD 01 31 CD 90 09 05 23 7E 23 66 6F E5 21 21 00 ..1....#~#fo.!!.
0062E0: E5 CD 90 42 D1 D1 21 DD E5 E5 CD 54 42 D1 21 C1 ...B..!....TB.!.
0062F0: 00 E5 CD 4D 42 D1 21 09 00 E5 CD 4D 42 D1 C3 DC ...MB.!....MB...
006300: 7C 28 7D B4 28 07 D1 E5 CD F6 17 18 23 21 01 00 |(}.(.......#!..
006310: E5 21 8F 4D E5 21 01 00 E5 2A E1 4B E5 CD A1 26 .!.M.!...*.K...&
006320: D1 E5 CD F6 17 CD 02 18 FE 28 28 04 CD 70 43 25 .........((..pC%
006330: D1 D5 CD 8E 26 38 09 7E FE 04 28 04 3E 0A 18 02 ....&8.~..(.>...
006340: 3E 0C E1 E5 23 5E 23 56 23 46 23 66 68 CD FB 32 >...#^#V#F#fh..2
006350: CD DC 35 3A 68 55 FE 07 20 1C CD 02 18 FE 28 28 ..5:hU.. .....((
006360: 15 CD 3D 33 E1 E5 7E FE 01 20 0B EB 2A C5 55 36 ..=3..~.. ..*.U6
006370: 10 13 23 73 23 72 CD 3C 1D 5B 28 16 CD 3C 1D 4E ..#s#r.<.[(..<.N
006380: 28 3A CD 3C 1D 2E 28 3F CD 3C 1D 28 CC 64 39 E1 (:.<..(?.<.(.d9.
006390: C1 C9 AF CD DC 33 CD 5F 36 CD 14 1D 5D 3E 21 CD .....3._6...]>!.
0063A0: DC 33 3E 12 CD DC 33 2A 91 55 7E 32 70 55 B7 28 .3>...3*.U~2pU.(
0063B0: 05 CD 22 3C 18 F1 2B 22 91 55 18 BA 3E 21 32 70 .."<..+".U..>!2p
0063C0: 55 CD DC 33 CD 22 3C CD 08 36 18 AA C5 21 AC 38 U..3."<..6...!.8
0063D0: E5 2A 70 55 26 00 11 04 4D 29 19 5E 23 56 D5 2A .*pU&...M).^#V.*
0063E0: C9 55 23 5E 23 56 2A C7 55 C3 65 35 E5 CD 7E 33 .U#^#V*.U.e5..~3
0063F0: 3A 6D 55 B7 28 17 2A C5 55 23 23 23 5E 36 71 23 :mU.(.*.U###^6q#
006400: 56 36 4D EB 23 5E 23 56 E1 CD 34 01 E5 2A C5 55 V6M.#^#V..4..*.U
006410: 36 01 23 D1 73 23 72 C1 C9 C5 21 FE FF 39 F9 44 6.#.s#r...!..9.D
006420: 4D CD 90 09 08 7C B5 CA F0 38 21 E1 2A C3 F3 38 M....|...8!.*..8
006430: 21 82 2A EB 60 69 73 23 72 21 7D 00 E5 CD 4D 42 !.*.`is#r!}...MB
006440: D1 21 B4 00 E5 CD 4D 42 D1 CD 90 09 06 7C B5 CA .!....MB.....|..
006450: 38 39 CD 90 09 00 E5 CD 90 09 0A E5 21 C2 00 E5 89..........!...
006460: 21 20 00 E5 21 31 39 E5 21 08 00 39 7E 23 66 6F ! ..!19.!..9~#fo
006470: E9 D1 D1 D1 D1 C3 5B 39 CD 90 09 00 E5 CD 90 09 ......[9........
006480: 0A E5 21 CA 00 E5 21 28 00 E5 21 57 39 E5 21 08 ..!...!(..!W9.!.
006490: 00 39 7E 23 66 6F E9 D1 D1 D1 D1 EB 21 02 00 39 .9~#fo......!..9
0064A0: F9 EB C1 C9 C5 21 FE FF 39 F9 44 4D 2A 68 55 7D .....!..9.DM*hU}
0064B0: FE 07 CA 7D 39 21 28 00 E5 CD C9 43 D1 60 69 36 ...}9!(....C.`i6
0064C0: 02 23 36 00 CD 27 33 7C B5 C2 98 39 CD FB 17 11 .#6..'3|...9....
0064D0: D7 FF 19 7C B5 CA 9B 39 CD 01 31 CD FB 17 11 D7 ...|...9..1.....
0064E0: FF 19 7C B5 CA D5 39 CD 5F 36 CD 19 31 2A C5 55 ..|...9._6..1*.U
0064F0: 11 FB FF 19 22 C5 55 60 69 E5 7E 23 66 6F 23 23 ....".U`i.~#fo##
006500: 2F 60 69 6E 26 00 11 08 00 7C A2 67 7D A3 6F 7C /`in&....|.g}£o|
006510: B5 C2 DC 2F 21 22 00 E5 CD C9 43 D1 3E 01 32 6C .../!"....C.>.2l
006520: 55 EB 21 01 00 39 F9 EB C1 C9 C5 21 FC FF 39 F9 U.!..9.....!..9.
006530: 44 4D CD 90 09 08 23 23 23 7E 23 66 6F 6E EB 60 DM....###~#fon.`
006540: 69 73 CD 90 09 08 23 7E 23 66 6F EB 21 01 00 09 is....#~#fo.!...
006550: 73 23 72 CD 90 09 08 6E EB 21 03 00 09 73 21 03 s#r....n.!...s!.
006560: 00 09 6E 26 00 11 10 00 7C A2 67 7D A3 6F 7C B5 ..n&....|.g}£o|.
006570: CA 4C 30 CD 01 31 CD 90 09 01 E5 21 21 00 E5 21 .L0..1.....!!..!
006580: 00 00 E5 CD E1 2A D1 D1 D1 C3 F3 30 21 03 00 09 .....*.....0!...
006590: 6E 26 00 11 01 00 7C A2 67 7D A3 6F 7C B5 CA 75 n&....|.g}£o|..u
0065A0: 30 CD 01 31 CD 90 09 01 E5 21 21 00 E5 CD 90 42 0..1.....!!....B
0065B0: D1 D1 C3 F3 30 21 03 00 09 6E 26 00 11 04 00 7C ....0!...n&....|
0065C0: A2 67 7D A3 6F 7C B5 CA A0 30 CD 01 31 CD 90 09 .g}£o|...0..1...
0065D0: 01 E5 60 69 6E 26 00 E5 CD 3A 2C D1 D1 C3 F3 30 ..`in&...:,....0
0065E0: 21 03 00 09 6E 26 00 11 02 00 7C A2 67 7D A3 6F !...n&....|.g}£o
0065F0: 7C B5 CA CB 30 CD 01 31 CD 90 09 01 E5 60 69 6E |...0..1.....`in
006600: 26 00 E5 CD 93 2C D1 D1 C3 F3 30 21 03 00 09 6E &....,....0!...n
006610: 26 00 11 08 00 7C A2 67 7D A3 6F 7C B5 CA F3 30 &....|.g}£o|...0
006620: CD 90 09 01 E5 60 69 6E 26 00 E5 CD 37 2D D1 D1 .....`in&...7-..
006630: C3 F3 30 3E 01 32 6C 55 EB 21 04 00 39 F9 EB C1 ..0>.2lU.!..9...
006640: C9 C5 2A 6C 55 7D B7 CA 12 31 21 E5 00 E5 CD 4D ..*lU}...1!....M
006650: 42 D1 3E 00 32 6C 55 C1 C9 C5 2A C5 55 E5 CD EA B.>.2lU...*.U...
006660: 2F D1 C1 C9 C5 2A C7 55 E5 CD EA 2F D1 C1 C9 C5 /....*.U.../....
006670: 21 FE FF 39 F9 44 4D CD A3 32 2A C7 55 6E 26 00 !..9.DM.£2*.Un&.
006680: 11 07 00 7C A2 67 7D A3 6F EB 60 69 73 23 72 2A ...|.g}£o.`is#r*
006690: C9 55 23 7E 23 66 6F 22 6A 55 CD 1D 33 7C B5 CA .U#~#fo"jU..3|..
0066A0: 77 31 CD 24 31 2A 6A 55 E5 21 11 00 E5 21 11 00 w1.$1*jU.!...!..
0066B0: E5 CD E1 2A D1 D1 D1 CD 31 33 7C B5 CA 92 31 CD ...*....13|...1.
0066C0: 24 31 2A 6A 55 E5 21 11 00 E5 CD 90 42 D1 D1 C3 $1*jU.!.....B...
0066D0: 5D 32 CD 27 33 7C B5 CA AF 31 CD 24 31 2A 6A 55 ]2.'3|...1.$1*jU
0066E0: E5 2A 68 55 26 00 E5 CD 65 2C D1 D1 C3 5D 32 CD .*hU&...e,...]2.
0066F0: 2C 33 7C B5 CA 03 32 CD 90 09 00 7C B5 C2 D0 31 ,3|...2....|...1
006700: EB E1 73 23 72 CD 01 31 21 2C 00 E5 CD 29 1D D1 ..s#r..1!,...)..
006710: 7C B5 C2 A7 39 21 29 00 E5 CD F3 1C D1 CD 27 33 |...9!).......'3
006720: 7C B5 CA 12 3A CD 90 09 06 6E 7D FE 0D C2 06 3A |...:....n}....:
006730: CD 90 09 00 E5 21 01 00 E5 CD 90 42 D1 D1 21 C5 .....!.....B..!.
006740: 00 E5 CD 4D 42 D1 CD 90 09 06 E5 CD B2 2B D1 C3 ...MB........+..
006750: 97 3A CD 90 09 00 2B 2B 7C B5 CA 42 3A CD 90 09 .:....++|..B:...
006760: 00 2B 2B E5 21 21 00 E5 CD 90 42 D1 D1 21 39 00 .++.!!....B..!9.
006770: E5 CD 4D 42 D1 21 00 00 E5 21 01 00 E5 CD 37 2D ..MB.!...!....7-
006780: D1 D1 CD 90 09 06 6E 7D FE 0D C2 63 3A CD 90 09 ......n}...c:...
006790: 00 E5 21 01 00 E5 CD 90 42 D1 D1 21 C5 00 E5 CD ..!.....B..!....
0067A0: 4D 42 D1 CD 3E 42 11 05 00 19 E5 21 11 00 E5 CD MB..>B.....!....
0067B0: 90 42 D1 D1 21 D5 00 E5 CD 4D 42 D1 21 E9 00 E5 .B..!....MB.!...
0067C0: CD 4D 42 D1 CD 90 09 00 2B 2B 7C B5 CA 97 3A 21 .MB.....++|...:!
0067D0: D1 00 E5 CD 4D 42 D1 CD 78 33 2A C5 55 23 23 23 ....MB..x3*.U###
0067E0: E5 2A C5 55 23 23 23 7E 23 66 6F 23 23 23 7E 23 .*.U###~#fo###~#
0067F0: 66 6F EB E1 73 23 72 3E 01 32 6C 55 EB 21 02 00 fo..s#r>.2lU.!..
006800: 39 F9 EB C1 C9 C5 21 FC FF 39 F9 44 4D CD 90 09 9.....!..9.DM...
006810: 08 3E 03 BD C2 DD 3A 3E 00 BC CA 10 3B 3E 06 BD .>....:>....;>..
006820: C2 E9 3A 3E 00 BC CA 10 3B 3E 05 BD C2 F5 3A 3E ..:>....;>....:>
006830: 00 BC CA 10 3B 3E 04 BD C2 01 3B 3E 00 BC CA 5C ....;>....;>...\
006840: 3B 3E 02 BD C2 0D 3B 3E 00 BC CA B5 3B C3 10 3C ;>....;>....;..<
006850: 2A 91 55 23 22 91 55 2A 91 55 23 E5 2A 91 55 1E *.U#".U*.U#.*.U.
006860: 00 73 E1 73 CD 19 31 2A 91 55 E5 21 01 00 E5 CD .s.s..1*.U.!....
006870: 90 09 08 11 FB FF 19 7C B5 CD 9D 09 E5 CD D9 38 .......|.......8
006880: D1 D1 D1 3E 00 32 6C 55 2A 91 55 23 22 91 55 2A ...>.2lU*.U#".U*
006890: C5 55 11 FB FF 19 22 C5 55 C3 10 3C 2A 91 55 6E .U....".U..<*.Un
0068A0: 7D FE 03 CA 6E 3B 21 29 00 E5 CD C9 43 D1 CD 19 }...n;!)....C...
0068B0: 31 3E 00 32 6C 55 2A 91 55 2B 2B EB 60 69 73 23 1>.2lU*.U++.`is#
0068C0: 72 CD 90 09 00 7E 23 66 6F EB 21 02 00 09 73 23 r....~#fo.!...s#
0068D0: 72 CD 90 09 00 AF 77 23 77 CD 90 09 00 E5 CD 65 r.....w#w......e
0068E0: 2A D1 21 02 00 09 E5 CD 2C 2B D1 2A 91 55 2B 22 *.!.....,+.*.U+"
0068F0: 91 55 C3 10 3C CD 22 33 7C B5 C2 C5 3B 21 2A 00 .U..<."3|...;!*.
006900: CD 24 31 21 EB 00 E5 CD 4D 42 D1 3E 00 32 6C 55 .$1!....MB.>.2lU
006910: CD 01 31 2A 6A 55 E5 2A 68 55 26 00 E5 CD 93 2C ..1*jU.*hU&....,
006920: D1 D1 3E 01 32 6C 55 21 EB 00 E5 CD 4D 42 D1 CD ..>.2lU!....MB..
006930: 90 09 00 7C B5 CA 00 32 3E 00 32 6C 55 CD 24 31 ...|...2>.2lU.$1
006940: C3 5D 32 CD 22 33 7C B5 CA 39 32 2A 6A 55 E5 2A .]2."3|..92*jU.*
006950: 68 55 26 00 E5 CD 67 2D D1 D1 CD 90 09 00 7C B5 hU&...g-......|.
006960: C2 2E 32 21 E1 00 E5 CD 4D 42 D1 C3 33 32 3E 00 ..2!....MB..32>.
006970: 32 6C 55 CD 24 31 C3 5D 32 21 EB 00 E5 CD 4D 42 2lU.$1.]2!....MB
006980: D1 CD 90 09 00 7C B5 C2 55 32 21 E1 00 E5 CD 4D .....|..U2!....M
006990: 42 D1 C3 5A 32 3E 00 32 6C 55 CD 24 31 EB 21 02 B..Z2>.2lU.$1.!.
0069A0: 00 39 F9 EB C1 C9 CD 91 32 C3 5F 36 CD 66 32 CD .9......2._6.f2.
0069B0: 19 31 CD D6 32 C3 D9 38 CD 5F 36 CD 31 33 28 0D .1..2..8._6.13(.
0069C0: 2A C5 55 23 5E 23 56 D5 CD D6 32 E1 C9 CD 70 43 *.U#^#V...2...pC
0069D0: 27 21 93 55 22 C5 55 21 71 55 22 91 55 AF 77 32 '!.U".U!qU".U.w2
0069E0: 6C 55 C9 2A C5 55 22 C9 55 E5 CD 63 35 32 68 55 lU.*.U".U..c52hU
0069F0: 11 FB FF E1 19 22 C7 55 CD 63 35 32 69 55 C9 2A .....".U.c52iU.*
006A00: C5 55 11 40 AA 19 38 0A 11 C5 55 19 22 C5 55 C3 .U.@..8...U.".U.
006A10: A3 32 CD 70 43 1E 2A C5 55 11 FB FF 19 22 C5 55 £2.pC.*.U....".U
006A20: C9 E1 AF D1 83 87 D1 83 87 D1 83 87 D1 83 D1 E3 ................
006A30: CD FB 32 E1 D5 D5 D5 D5 D5 D5 E9 E5 D5 F5 CD BF ..2.............
006A40: 32 2A C5 55 F1 77 D1 ED 53 6A 55 23 73 23 72 D1 2*.U.w..SjU#s#r.
006A50: 23 73 23 72 1A 32 68 55 CD D6 43 04 C9 3E 10 C3 #s#r.2hU..C..>..
006A60: 33 33 3E 08 C3 33 33 3E 04 C3 33 33 3E 02 C3 33 33>..33>..33>..3
006A70: 33 3E 01 2A C5 55 A6 21 00 00 C8 23 C9 C5 2A C5 3>.*.U.!...#..*.
006A80: 55 CB 56 28 04 36 01 18 07 E5 CD DF 42 E1 36 00 U.V(.6......B.6.
006A90: 3E 06 32 68 55 23 23 23 01 02 00 CD C5 25 C1 C9 >.2hU###.....%..
006AA0: CD 2F 31 3A 70 55 11 04 4D 6F 26 00 29 19 5E 23 ./1:pU..Mo&.).^#
006AB0: 56 EB CD E5 42 C3 7E 33 2A C5 55 36 00 C9 3A 70 V...B.~3*.U6..:p
006AC0: 55 FE 07 38 04 FE 0D 38 08 FE 17 38 16 FE 1B 30 U..8...8...8...0
006AD0: 12 11 71 4D 2A C7 55 23 23 23 73 23 72 CD D6 32 ..qM*.U###s#r..2
006AE0: 36 00 C9 FE 11 28 F6 FE 10 28 F2 FE 1C 28 EE 3A 6....(...(...(.:
006AF0: 69 55 FE 06 28 E7 FE 05 28 12 3A 68 55 FE 05 28 iU..(...(.:hU..(
006B00: E5 CD C9 43 D1 CD 90 09 0A 7C B5 CA 0D 3C CD 27 ...C.....|...<.'
006B10: 33 7C B5 C2 E6 3B CD 2C 33 7C B5 C2 E6 3B 21 E5 3|...;.,3|...;!.
006B20: 00 E5 CD 4D 42 D1 CD BF 32 2A C5 55 E5 2A C7 55 ...MB...2*.U.*.U
006B30: E5 21 05 00 E5 CD 7E 41 D1 D1 D1 CD 90 09 0A E5 .!....~A........
006B40: CD D1 33 D1 21 08 00 09 36 2C 23 36 00 C3 10 3C ..3.!...6,#6...<
006B50: CD 90 09 08 E5 CD D1 33 D1 EB 21 04 00 39 F9 EB .......3..!..9..
006B60: C1 C9 C5 CD A3 32 2A 70 55 26 00 11 DF FF 19 7C ....£2*pU&.....|
006B70: 17 D2 3A 3C CD 16 34 C3 3D 3C CD 6C 35 2A 70 55 ..:<..4.=<.l5*pU
006B80: 26 00 11 DF FF 19 7C 17 D2 7B 3C 2A 70 55 26 00 &.....|..{<*pU&.
006B90: 11 F9 FF 19 7C 17 DA 7B 3C 2A C7 55 6E 26 00 11 ....|..{<*.Un&..
006BA0: 01 00 7C A2 67 7D A3 6F 7C B5 CA 7B 3C CD 31 33 ..|.g}£o|..{<.13
006BB0: 7C B5 CA 7B 3C CD 8C 38 C3 8C 3C 2A 6E 55 7D B7 |..{<..8..<*nU}.
006BC0: CA 89 3C CD 73 41 C3 8C 3C CD 98 3C 2A 91 55 2B ..<.sA..<..<*.U+
006BD0: 22 91 55 CD FA 43 C1 C9 C5 21 FC FF 39 F9 44 4D ".U..C...!..9.DM
006BE0: 2A 70 55 7D FE 16 CA 74 3D FE 1F CA 74 3D FE 15 *pU}...t=...t=..
006BF0: CA 74 3D FE 1B CA 74 3D FE 0D CA 74 3D FE 0E CA .t=...t=...t=...
006C00: 74 3D FE 0F CA 74 3D FE 09 CA 74 3D FE 0A CA 74 t=...t=...t=...t
006C10: 3D FE 0B CA 74 3D FE 0C CA 74 3D FE 17 CA 74 3D =...t=...t=...t=
006C20: FE 18 CA 74 3D FE 19 CA 74 3D FE 1A CA 74 3D FE ...t=...t=...t=.
006C30: 07 CA 74 3D FE 08 CA 74 3D FE 11 CA 74 3D FE 10 ..t=...t=...t=..
006C40: CA 74 3D FE 1C CA 74 3D FE 14 CA 7A 3D FE 12 CA .t=...t=...z=...
006C50: A3 3D FE 1D CA A3 3D FE 13 CA B4 3D FE 1E CA B4 £=...£=....=....
006C60: 3D FE 2C CA 38 3E FE 02 CA 54 3E FE 05 CA 67 3E =.,.8>...T>...g>
006C70: FE 06 CA 67 3E FE 04 CA D8 3E FE 03 CA F1 3E FE ...g>....>....>.
006C80: 2B CA FC 3E FE 24 CA 26 3F FE 23 CA 26 3F FE 25 +..>.$.&?.#.&?.%
006C90: CA 26 3F FE 21 CA D9 3F FE 22 CA 2E 40 FE 26 CA .&?.!..?."..@.&.
006CA0: 34 40 FE 27 CA 44 40 FE 29 CA 54 40 FE 2A CA 64 4@.'.D@.).T@.*.d
006CB0: 40 C3 74 40 CD 60 33 C3 7C 40 CD 31 33 7C B5 CA @.t@.`3.|@.13|..
006CC0: 9D 3D 2A C9 55 23 7E 23 66 6F 2B 7C B5 C2 9D 3D .=*.U#~#fo+|...=
006CD0: 2A C5 55 11 FB FF 19 22 C5 55 C3 7C 40 CD 60 33 *.U....".U.|@.`3
006CE0: C3 7C 40 CD 2F 31 21 19 00 E5 CD 4D 42 D1 CD 7E .|@./1!....MB..~
006CF0: 33 C3 7C 40 CD 2F 31 21 B7 00 E5 CD 4D 42 D1 21 3.|@./1!....MB.!
006D00: 0B 3A 6F 55 B7 28 CA 11 7B 4D 18 C8 11 85 4D 18 .:oU.(..{M....M.
006D10: C3 D1 E1 E5 D5 C5 7D CD DC 33 C1 C9 ED 5B 91 55 ......}..3...[.U
006D20: 21 73 AA 19 38 0B 13 12 ED 53 91 55 CD D6 43 05 !s..8....S.U..C.
006D30: C9 CD 70 43 1F 06 00 FE 05 30 02 CB C8 FE 06 30 ..pC.....0.....0
006D40: 02 CB D0 FE 03 20 02 CB C0 FE 06 20 02 CB D8 3E ..... ..... ...>
006D50: 07 A1 C8 CB E0 C9 C5 CD D6 43 06 2A C9 55 4E 3A .........C.*.UN:
006D60: 68 55 CD F5 33 58 2A C7 55 4E 3A 69 55 CD F5 33 hU..3X*.UN:iU..3
006D70: 4B ED 5B 70 55 AF 32 6D 55 32 6E 55 57 78 B1 E6 K.[pU.2mU2nUWx..
006D80: 09 32 6F 55 78 E6 0A 28 1E 79 E6 0A 28 19 7B FE .2oUx..(.y..(.{.
006D90: 07 38 14 FE 0D 30 10 FE 09 38 5F 3A 6F 55 B7 28 .8...0...8_:oU.(
006DA0: 59 7B C6 0E 5F 18 53 78 A1 CB 57 28 24 E6 02 20 Y{.._.Sx..W($..
006DB0: 49 3C 32 6E 55 18 43 ED 5B C7 55 2A C9 55 CD 3E I<2nU.C.[.U*.U.>
006DC0: 35 28 35 ED 5B C9 55 2A C7 55 CD 3E 35 28 29 18 5(5.[.U*.U.>5().
006DD0: 23 7B FE 12 28 4A FE 13 28 46 FE 1D 28 1C FE 1E #{..(J..(F..(...
006DE0: 28 18 FE 05 28 14 FE 06 28 10 C5 D5 FE 02 28 D3 (...(...(.....(.
006DF0: FE 04 28 C3 CD 70 43 20 D1 C1 7B FE 10 20 08 CB ..(..pC ..{.. ..
006E00: 40 28 04 1E 1C 18 13 3A 6F 55 B7 28 0D 7B FE 15 @(.....:oU.(.{..
006E10: 20 02 1E 1B FE 16 20 02 1E 1F 7B 32 70 55 C1 C9 ..... ...{2pU..
006E20: CB 58 28 09 CB 49 28 05 CD 72 35 C1 C9 FE 12 20 .X(..I(..r5....
006E30: 2B CB 48 28 27 CB 59 28 23 CB 60 20 08 CB 61 20 +.H('.Y(#.` ..a
006E40: 04 CD 9E 42 E3 01 05 00 2A C7 55 54 5D 09 E5 09 ...B....*.UT]...
006E50: EB E5 ED B0 D1 E1 0E 0A ED B0 18 CC FE 13 20 94 .............. .
006E60: CB 58 28 90 2A C7 55 CD 63 35 EB 2A C9 55 CD 63 .X(.*.U.c5.*.U.c
006E70: 35 ED 52 7D B4 C2 B4 34 3C 32 6D 55 C1 C9 CD 63 5.R}...4<2mU...c
006E80: 35 FE 06 C0 EB E5 CD 63 35 FE 01 E3 20 10 CB 46 5......c5... ..F
006E90: 28 0C 23 7E 23 B6 20 06 23 73 23 72 E1 C9 E1 B7 (.#~#. .#s#r....
006EA0: ED 52 C9 23 23 23 7E 23 66 6F 7E C9 C5 CD A0 35 .R.###~#fo~....5
006EB0: C1 C9 2A C7 55 CD 63 35 CD 63 35 CD 65 35 EB 21 ..*.U.c5.c5.e5.!
006EC0: 71 4D 3E 01 CD FB 32 3A 70 55 FE 12 20 04 3E 1D qM>...2:pU.. .>.
006ED0: 18 02 3E 1E 2A 91 55 77 3E 14 32 70 55 C3 DC 33 ..>.*.Uw>.2pU..3
006EE0: AF 32 6E 55 3A 68 55 CD F5 33 3A 70 55 FE 24 28 .2nU:hU..3:pU.$(
006EF0: 19 FE 26 28 15 FE 27 28 11 FE 29 28 0D FE 2A 28 ..&(..'(..)(..*(
006F00: ED 52 E5 CD 54 42 D1 CD 7E 33 2A 6D 55 7D B7 CA .R..TB..~3*mU}..
006F10: 35 3E 2A C5 55 23 23 23 E5 11 71 4D E1 73 23 72 5>*.U###..qM.s#r
006F20: 2A C5 55 11 05 00 19 23 23 23 7E 23 66 6F 23 23 *.U....###~#fo##
006F30: 23 7E 23 66 6F 23 7E 23 66 6F EB 60 69 73 23 72 #~#fo#~#fo.`is#r
006F40: 1B 7A B3 CA 35 3E 21 71 4D E5 CD 90 09 00 E5 21 .z..5>!qM......!
006F50: 01 00 E5 21 00 00 E5 21 00 00 E5 21 00 00 E5 CD ...!...!...!....
006F60: E1 32 D1 D1 D1 D1 D1 D1 2A 91 55 1E 1B 73 7B 32 .2......*.U..s{2
006F70: 70 55 C3 A0 3C C3 7C 40 2A 91 55 E5 2A 91 55 2B pU..<.|@*.U.*.U+
006F80: 6E EB E1 73 2A 91 55 2B 36 02 2A 91 55 23 22 91 n..s*.U+6.*.U#".
006F90: 55 C3 7C 40 CD 9F 2D 2A C5 55 11 FB FF 19 22 C5 U.|@..-*.U....".
006FA0: 55 CD 78 33 C3 7C 40 CD 19 31 CD 3E 42 11 07 00 U.x3.|@..1.>B...
006FB0: 19 EB 60 69 73 23 72 60 69 E5 21 00 00 E5 21 00 ..`is#r`i.!...!.
006FC0: 00 E5 CD D9 38 D1 D1 D1 2A 70 55 7D FE 06 C2 9E ....8...*pU}....
006FD0: 3E 21 01 00 E5 21 21 00 E5 CD 90 42 D1 D1 2A 91 >!...!!....B..*.
006FE0: 55 2B 2B 22 91 55 2A 91 55 E5 CD 2C 2B D1 2A 70 U++".U*.U..,+.*p
006FF0: 55 7D FE 05 C2 C4 3E 21 01 00 E5 21 21 00 E5 CD U}....>!...!!...
007000: 90 42 D1 D1 CD 78 33 2A C5 55 23 23 23 E5 11 71 .B...x3*.U###..q
007010: 4D E1 73 23 72 C3 7C 40 CD 19 31 2A 91 55 2B 2B M.s#r.|@..1*.U++
007020: 22 91 55 2A 91 55 E5 CD 2C 2B D1 CD 7E 33 C3 7C ".U*.U..,+..~3.|
007030: 40 21 2B 00 E5 CD C9 43 D1 C3 7C 40 2A 91 55 2B @!+....C..|@*.U+
007040: 2B 22 91 55 EB 21 02 00 09 73 23 72 2A C5 55 23 +".U.!...s#r*.U#
007050: 23 23 E5 CD 90 09 02 7E 23 66 6F EB E1 73 23 72 ##.....~#fo..s#r
007060: CD DC 35 C3 7C 40 CD 31 33 7C B5 CA 9D 3F 2A C5 ..5.|@.13|...?*.
007070: 55 23 7E 23 66 6F EB 60 69 73 23 72 2A 70 55 7D U#~#fo.`is#r*pU}
007080: FE 24 CA 52 3F FE 23 CA 64 3F FE 25 CA 74 3F C3 .$.R?.#.d?.%.t?.
007090: 87 3F CD 90 09 00 7C B5 CD 9D 09 EB 60 69 73 23 .?....|.....`is#
0070A0: 72 C3 87 3F CD 90 09 00 CD FA 0A EB 60 69 73 23 r..?........`is#
0070B0: 72 C3 87 3F CD 90 09 00 7D 2F 6F 7C 2F 67 EB 60 r..?....}/o|/g.`
0070C0: 69 73 23 72 C3 87 3F 2A C5 55 36 01 2A C5 55 23 is#r..?*.U6.*.U#
0070D0: E5 CD 90 09 00 EB E1 73 23 72 C3 B6 3F CD 19 31 .......s#r..?..1
0070E0: 2A 70 55 26 00 29 11 04 4D 19 7E 23 66 6F E5 CD *pU&.)..M.~#fo..
0070F0: 9A 2B D1 CD 78 33 2A 68 55 7D FE 03 C2 C8 3F 2A .+..x3*hU}....?*
007100: 09 FE 25 28 08 FE 23 28 04 C9 CB 58 C0 CB 50 28 ..%(..#(...X..P(
007110: 07 CB 48 C0 32 6E 55 C9 CD 70 43 21 2A C5 55 23 ..H.2nU..pC!*.U#
007120: 23 23 54 5D CD 66 35 FE 08 C0 CD 63 35 EB 73 23 ##T].f5....c5.s#
007130: 72 C3 3D 33 CD 14 1D 28 CD 8B 21 7D B4 20 04 CD r.=3...(..!}. ..
007140: 70 43 26 CD 14 1D 29 C9 2A C5 55 E5 E5 CB 5E 20 pC&...).*.U...^
007150: 04 CD 70 43 22 CD 02 18 2A E1 4B CD 7C 28 7D B4 ..pC"...*.K.|(}.
007160: 28 39 7E FE 0B 20 34 23 5E 23 56 CD 65 35 E3 7E (9~.. 4#^#V.e5.~
007170: E6 06 28 0C 23 4E 23 46 EB 09 EB 72 2B 73 18 09 ..(.#N#F...r+s..
007180: EB CD B5 42 11 CD 9E 42 19 D1 E1 23 23 23 73 23 ...B...B...###s#
007190: 72 CD DC 35 CD D6 43 01 C3 F6 17 CD 70 43 23 C5 r..5..C.....pC#.
0071A0: 2A 91 55 E5 AF F5 CD 19 37 AF 32 60 08 CD 02 18 *.U.....7.2`....
0071B0: 21 CB 55 06 18 BE 28 06 23 10 FA AF 18 08 3E 18 !.U...(.#.....>.
0071C0: 90 F5 CD F6 17 F1 F5 FE 0D 38 11 FE 17 30 0D CD .........8...0..
0071D0: 3C 1D 3D 20 07 F1 32 60 08 3E 02 F5 F1 D1 FE 03 <.= ..2`.>......
0071E0: 20 03 14 18 16 B7 20 13 5F 7A B2 7B 28 0D D5 CD ..... ._z.{(...
0071F0: 3C 1D 3A D1 3E 00 20 03 15 3E 04 D5 F5 6F 26 00 <.:.>. ..>...o&.
007200: 11 EF 55 19 FE 03 3E 02 28 01 AF 86 FE 01 20 01 ..U...>.(..... .
007210: 3C 4F F1 D1 E1 E5 D5 F5 ED 5B 91 55 E5 B7 ED 52 <O.......[.U...R
007220: 30 16 EB 7E 32 70 55 6F 26 00 11 EF 55 19 7E B9 0..~2pUo&...U.~.
007230: 38 06 CD 22 3C E1 18 E0 E1 3A 60 08 4F 06 00 F1 8.."<....:`.O...
007240: F5 C5 4F C5 CD C5 3A D1 D1 F1 B7 C2 66 36 F1 E1 ..O...:.....f6..
007250: 2A 91 55 2B 22 91 55 C1 C9 21 E3 55 06 0C CD 02 *.U+".U..!.U....
007260: 18 BE 28 1A 23 10 FA CD 62 37 CD 3C 1D 56 20 04 ..(.#...b7.<.V .
007270: 3E 29 18 07 CD 3C 1D 55 C0 3E 2A C3 DC 33 3E 2D >)...<.U.>*..3>-
007280: 90 F5 CD F6 17 F1 FE 2B 20 13 CD F4 35 2A 91 55 .......+ ...5*.U
007290: 23 ED 5B 40 55 73 23 72 22 91 55 3E 2B CD DC 33 #.[@Us#r".U>+..3
0072A0: 18 B7 C5 E5 CD 02 18 ED 5B E1 4B FE 44 21 71 4D ........[.K.D!qM
0072B0: 28 1E FE 27 21 76 4D 28 17 FE 22 21 8A 4D 28 10 (..'!vM(.."!.M(.
0072C0: FE 17 28 17 FE 28 28 2A FE 4C 28 32 CD 70 43 24 ..(..((*.L(2.pC$
0072D0: 3E 01 CD FB 32 CD F6 17 C3 36 38 CD F6 17 CD F4 >...2....68.....
0072E0: 35 2A 40 55 23 5E 23 56 21 71 4D 3E 01 CD FB 32 5*@U#^#V!qM>...2
0072F0: 18 E6 CD F6 17 CD 5F 36 CD 14 1D 29 18 DA EB CD ......_6...)....
007300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
007310: 06 00 00 00 02 09 4E E5 06 00 41 02 00 00 00 02 ......N...A.....
007320: 06 00 46 02 00 00 00 02 06 00 42 02 00 00 00 02 ..F.......B.....
007330: 06 00 47 02 00 00 00 02 06 00 43 02 00 00 00 02 ..G.......C.....
007340: 06 00 48 02 00 00 00 02 06 00 44 02 00 00 00 02 ..H.......D.....
007350: 06 00 49 02 00 00 00 02 06 00 45 02 00 00 00 02 ..I.......E.....
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: 70 55 7D FE 24 C2 D6 3F 2A C5 55 23 23 23 E5 11 pU}.$..?*.U###..
007410: 71 4D E1 73 23 72 C3 7C 40 2A 68 55 26 00 E5 CD qM.s#r.|@*hU&...
007420: 7B 26 D1 7C B5 C2 F0 3F 21 2C 00 E5 CD C9 43 D1 {&.|...?!,....C.
007430: CD 31 33 7C B5 CA 00 40 2A C5 55 36 0C C3 08 40 .13|...@*.U6...@
007440: CD 19 31 2A C5 55 36 08 2A C5 55 23 23 23 E5 2A ..1*.U6.*.U###.*
007450: C5 55 23 23 23 7E 23 66 6F 23 23 23 7E 23 66 6F .U###~#fo###~#fo
007460: EB E1 73 23 72 CD DC 35 CD A3 32 C3 7C 40 CD 3D ..s#r..5.£2.|@.=
007470: 33 C3 7C 40 21 00 00 E5 21 00 00 E5 CD 85 40 D1 3.|@!...!.....@.
007480: D1 C3 7C 40 21 01 00 E5 21 00 00 E5 CD 85 40 D1 ..|@!...!.....@.
007490: D1 C3 7C 40 21 00 00 E5 21 01 00 E5 CD 85 40 D1 ..|@!...!.....@.
0074A0: D1 C3 7C 40 21 01 00 E5 21 01 00 E5 CD 85 40 D1 ..|@!...!.....@.
0074B0: D1 C3 7C 40 21 2D 00 E5 CD C9 43 D1 EB 21 04 00 ..|@!-....C..!..
0074C0: 39 F9 EB C1 C9 C5 21 FE FF 39 F9 44 4D 2A C5 55 9.....!..9.DM*.U
0074D0: E5 CD 40 2F D1 2A 68 55 7D FE 02 C2 F2 40 CD 90 ..@/.*hU}....@..
0074E0: 09 06 7C B5 CA AF 40 21 7E 00 E5 CD 4D 42 D1 CD ..|...@!~...MB..
0074F0: 90 09 08 7C B5 CA C3 40 21 35 00 E5 CD 4D 42 D1 ...|...@!5...MB.
007500: C3 CB 40 21 34 00 E5 CD 4D 42 D1 CD 90 09 06 7C ..@!4...MB.....|
007510: B5 CA DF 40 21 6F 00 E5 CD 4D 42 D1 C3 E7 40 21 ...@!o...MB...@!
007520: 6E 00 E5 CD 4D 42 D1 21 26 00 E5 CD 54 42 D1 C3 n...MB.!&...TB..
007530: 67 41 2A 68 55 26 00 E5 CD 7B 26 D1 7C B5 CA 20 gA*hU&...{&.|..
007540: 41 2A C5 55 23 23 23 7E 23 66 6F 23 23 23 7E 23 A*.U###~#fo###~#
007550: 66 6F 23 7E 23 66 6F EB 60 69 73 23 72 C3 27 41 fo#~#fo.`is#r.'A
007560: 60 69 36 01 23 36 00 CD 90 09 08 7C B5 CA 3D 41 `i6.#6.....|..=A
007570: CD 90 09 00 CD FA 0A EB 60 69 73 23 72 CD 90 09 ........`is#r...
007580: 00 E5 21 01 00 E5 CD 90 42 D1 D1 CD 90 09 06 7C ..!.....B......|
007590: B5 CA 5F 41 21 7D 02 E5 CD 9A 2B D1 C3 67 41 21 .._A!}....+..gA!
0075A0: 72 02 E5 CD 9A 2B D1 CD 78 33 EB 21 02 00 39 F9 r....+..x3.!..9.
0075B0: EB C1 C9 C5 21 2E 00 E5 CD C9 43 D1 C1 C9 E1 F1 ....!.....C.....
0075C0: D1 E3 C5 E5 D5 F5 CD 2E 02 C1 E1 E5 E5 E5 E9 E5 ................
0075D0: 7E B7 28 06 CD 82 00 23 18 F6 E1 C9 E5 C5 47 7E ~.(....#......G~
0075E0: CD 82 00 23 10 F9 C1 E1 C9 D1 E1 E5 D5 C3 8F 41 ...#...........A
0075F0: F5 D5 E5 6F E5 21 08 00 E5 CD 4C 00 E1 D1 F1 C9 ...o.!....L.....
007600: 79 2F C1 C9 ED 4B 5B 56 2A A4 4C CD EA 49 28 0F y/...K[V*.L..I(.
007610: 5E 23 56 2B EB B7 ED 42 EB D0 CD E2 49 18 EF D6 ^#V+...B....I...
007620: 01 C9 23 23 3E 0A BE 23 20 FC D5 ED 5B 62 56 AF ..##>..# ...[bV.
007630: ED 52 19 D1 C9 CD 00 4A C8 2A 69 08 7D B4 37 C9 .R.....J.*i.}.7.
007640: ED 4B 67 08 78 B1 C9 11 89 08 7E ED A0 FE 0A 20 .Kg.x.....~....
007650: F9 C9 ED 4B 62 56 CD 1E 4A ED 53 62 56 C9 D5 EB ...KbV..J.SbV...
007660: 60 69 B7 ED 52 44 4D E1 ED 52 19 EB 38 0A 09 EB `i..RDM..R..8...
007670: 09 EB 03 D5 ED B8 D1 C9 03 ED B0 1B C9 CD B1 0E ................
007680: CD 52 00 DD 21 5F 56 AF DD 77 00 32 64 08 67 6F .R..!_V..w.2d.go
007690: C9 CD 8F 48 CD CB 44 C3 8E 0E 42 44 47 43 38 47 ...H..D...BDGC8G
0076A0: 44 D0 44 45 FA 47 46 45 47 47 14 46 49 B9 47 4C D.DE.GFEGG.FI.GL
0076B0: BA 45 4E D7 46 50 8D 46 53 AC 45 56 03 47 57 B6 .EN.FP.FS.EV.GW.
0076C0: 45 F3 42 48 F2 4E 48 7F 6F 48 10 73 48 0A 5D 49 E.BH.NH.oH.sH.]I
0076D0: F8 89 48 F9 8F 48 FA 89 48 FB 8F 48 FC 57 49 E1 ..H..H..H..H.WI.
0076E0: 95 48 13 C6 48 06 2C 49 F4 38 49 F5 3D 49 F6 42 .H..H.,I.8I.=I.B
0076F0: 49 F7 47 49 E0 19 48 50 61 72 64 6F 6E 3F 0A 00 I.GI..HPardon?..
007700: 23 01 01 00 E5 F5 60 69 3E 00 CD EC 42 F1 E1 C9 #.....`i>...B...
007710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007780: 00 00 00 00 00 00 00 00 00 00 01 02 22 B8 4C CD ............".L.
007790: 90 01 00 22 A6 4C CD 90 01 02 22 BA 4C CD 90 01 ...".L....".L...
0077A0: 00 22 A8 4C CD 90 01 02 22 BC 4C CD 90 01 00 22 .".L....".L...."
0077B0: AA 4C CD 90 01 02 22 BE 4C CD 90 01 00 22 AC 4C .L....".L....".L
0077C0: CD 90 01 02 22 C0 4C CD 90 01 00 22 AE 4C CD 90 ....".L....".L..
0077D0: 01 02 22 C2 4C CD 90 01 00 22 B0 4C CD 90 01 02 ..".L....".L....
0077E0: 22 C4 4C CD 90 01 00 22 B2 4C CD 90 01 02 22 C6 ".L....".L....".
0077F0: 4C 60 69 E5 7E 23 66 6F E5 CD 90 01 02 D1 19 EB L`i.~#fo........
007800: 2A 1F 56 C9 D1 E1 E5 D5 C5 11 CE 41 D5 E9 C1 C9 *.V........A....
007810: F1 D1 2A 54 53 F9 F5 F5 EB E9 CD 64 00 CD C0 41 ..*TS......d...A
007820: D1 22 54 53 F9 D5 ED 5B B6 4C B7 ED 52 22 CA 4C ."TS...[.L..R".L
007830: C5 CD FB 43 C1 CD 4F 1D CD 0D 42 CD E7 14 CD 52 ...C..O...B....R
007840: 00 CD 4A 29 CD DA 29 CD FD 20 C3 91 32 21 01 00 ..J)..).. ..2!..
007850: CD 5E 43 2A A6 4C 22 00 4D 3A 21 56 B7 28 03 21 .^C*.L".M:!V.(.!
007860: 00 09 22 02 4D C9 E1 D1 D5 E5 2A 02 4D B7 ED 52 ..".M.....*.M..R
007870: EB 22 02 4D 2A 00 4D B7 ED 52 22 00 4D C9 2A 02 .".M*.M..R".M.*.
007880: 4D C9 2A 02 4D ED 5B 00 4D B7 ED 52 C9 E1 D1 D5 M.*.M.[.M..R....
007890: E5 C3 5B 42 E1 D1 D5 E5 C3 89 42 D5 2A A6 4C ED ..[B......B.*.L.
0078A0: 5B BA 4C 19 EB 2A 00 4D B7 ED 52 23 3E 01 CD EC [.L..*.M..R#>...
0078B0: 42 D1 2A 00 4D 73 E5 D5 CD FA 43 D1 E1 23 22 00 B.*.Ms....C..#".
0078C0: 4D 2A 02 4D 23 22 02 4D C9 CD 5B 42 5A C3 5B 42 M*.M#".M..[BZ.[B
0078D0: F1 D1 E1 E5 D5 F5 E5 CD 5B 42 D1 C3 89 42 E1 5E ........[B...B.^
0078E0: 23 E5 C3 5B 42 E1 5E 23 E5 CD 5B 42 E1 5E 23 56 #..[B.^#..[B.^#V
0078F0: 23 E5 C3 89 42 D1 1A 13 D5 E5 5F CD 5B 42 D1 C3 #...B....._.[B..
007900: 89 42 5E E5 CD 5B 42 E1 ED A1 E0 18 F5 E5 CD 2C .B^..[B........,
007910: 2B D1 C9 E5 CD 65 2A D1 C9 E5 CD 48 2A D1 C9 E5 +....e*....H*...
007920: CD 40 2F E1 C9 E5 CD 9A 2B E1 C9 C9 C5 D5 E5 44 .@/.....+......D
007930: 4D 6F 26 00 29 11 B8 4C 19 5E 23 56 EB 09 EB 72 Mo&.)..L.^#V...r
007940: 2B 73 01 EC FF 09 4E 23 46 23 EB 09 EB 4E 23 46 +s....N#F#...N#F
007950: EB 2B B7 ED 42 11 00 01 F2 27 43 E5 B7 ED 5A E1 .+..B....'C...Z.
007960: FA 2E 43 E1 D1 C1 C9 B7 ED 52 19 30 01 EB 23 54 ..C......R.0..#T
007970: 5D 09 E5 C5 2A B6 4C B7 ED 42 E5 D5 C5 6F 26 00 ]...*.L..B...o&.
007980: E5 6C 39 E5 CD 34 0D D1 D1 D1 D1 CD 2E 02 18 D3 .l9..4..........
007990: D1 E1 7D E1 E5 E5 D5 C3 EC 42 D1 E1 E5 D5 7D F5 ..}......B....}.
0079A0: 29 11 B8 4C 19 5E 23 56 EB CD FB 00 F1 C3 EC 42 )..L.^#V.......B
0079B0: E1 7E B7 20 04 23 5E 23 56 21 BB 43 E5 28 1F 16 .~. .#^#V!.C.(..
0079C0: 00 5F D5 2A C8 4C 7C B5 28 0F 2A B4 4C 1B 7B B2 ._.*.L|.(.*.L.{.
0079D0: 28 11 AF BE 23 20 FC 18 F4 21 C8 43 18 05 EB 11 (...# ...!.C....
0079E0: 00 00 D5 E5 21 08 00 E5 CD 79 00 CD DA 41 CD 55 ....!....y...A.U
0079F0: 00 E6 DF FE 45 CA 79 44 C3 43 00 0A 45 52 52 4F ....E.yD.C..ERRO
007A00: E1 73 23 72 21 02 00 09 36 00 23 36 08 CD 90 01 .s#r!...6.#6....
007A10: 00 22 B4 4C CD 90 01 02 22 C8 4C 60 69 E5 7E 23 .".L....".L`i.~#
007A20: 00 00 00 00 00 00 00 00 00 00 00 00 0A 20 00 00 ............. ..
007A30: 00 00 00 00 20 20 20 20 20 45 20 45 20 20 20 20 .... E E
007A40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
007A50: 20 20 20 20 20 21 22 23 24 25 26 27 28 29 2A 2B !"#$%&'()*+
007A60: 2C 2D 2E 2F 44 44 44 44 44 44 44 44 44 44 3A 3B ,-./DDDDDDDDDD:;
007A70: 3C 3D 3E 3F 40 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C <=>?@LLLLLLLLLLL
007A80: 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 5B LLLLLLLLLLLLLLL[
007A90: 5C 5D 5E 4C 60 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C \]^L`LLLLLLLLLLL
007AA0: 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 7B LLLLLLLLLLLLLLL{
007AB0: 7C 7D 7E FF 00 00 00 00 00 00 00 00 00 00 00 00 |}~.............
007AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007AE0: 00 00 00 00 80 56 80 56 80 56 80 56 80 56 80 56 .....V.V.V.V.V.V
007AF0: 80 56 80 59 80 59 80 61 00 00 00 00 00 00 00 00 .V.Y.Y.a........
007B00: 00 00 00 00 94 02 00 00 00 08 00 00 00 00 00 00 ................
007B10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007B20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007B30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FE 4C ...............L
007B40: 00 00 00 00 00 F0 01 F0 02 F0 03 F0 04 F0 05 F0 ................
007B50: 06 F0 88 01 91 01 99 01 98 01 A8 01 A7 01 D1 00 ................
007B60: D8 00 DF 00 F3 00 E6 00 A3 02 A5 02 0B 01 34 01 ........£.....4.
007B70: 78 01 B0 01 AF 01 B7 01 B6 01 50 01 EB 00 A3 02 x.........P...£.
007B80: A5 02 7D 01 20 F0 21 F0 22 F0 FB 00 03 01 FC 00 ..}. .!.".......
007B90: 26 F0 27 F0 28 F0 29 F0 2A F0 2B F0 2C F0 2D F0 &.'.(.).*.+.,.-.
007BA0: 94 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007BB0: 00 01 02 00 00 00 02 01 00 00 00 03 02 00 00 00 ................
007BC0: 04 02 00 00 00 05 05 00 00 00 06 02 00 76 4D 07 .............vM.
007BD0: 02 00 71 4D 06 02 00 71 4D 07 02 00 94 4D 00 00 ..qM...qM....M..
007BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007BF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007C00: 52 20 25 64 0A 25 73 0A 00 D1 E1 E5 D5 7D 32 D4 R %d.%s......}2.
007C10: 43 CD 70 43 00 C9 3A 79 4C B7 E1 7E 23 E5 C8 6F C.pC..:yL..~#..o
007C20: 26 00 29 11 EC 43 19 5E 23 56 EB E9 00 00 FA 43 &.)..C.^#V.....C
007C30: FA 43 FA 43 FA 43 FA 43 FA 43 C9 2A 62 56 ED 5B .C.C.C.C.C.*bV.[
007C40: A4 4C 7C B5 20 0D D5 CD D5 0D D1 62 6B 22 62 56 .L|. ......bk"bV
007C50: CD 21 44 ED 52 ED 5B B8 4C AF ED 52 44 4D C3 C4 .!D.R.[.L..RDM..
007C60: 4A E5 2A A4 4C 22 64 56 22 66 56 21 5F 56 CB DE J.*.L"dV"fV!_V..
007C70: E1 C9 D5 ED 5B 64 56 CD 40 44 ED 53 64 56 D1 C9 ....[dV.@D.SdV..
007C80: 2A 62 56 B7 ED 52 2B C8 21 5F 56 CB 5E 28 08 CB *bV..R+.!_V.^(..
007C90: 9E ED 53 66 56 13 13 1A 13 FE 0A 20 02 CB DE 26 ..SfV...... ...&
007CA0: 00 6F C9 C5 D5 11 74 44 D5 E5 11 06 00 D5 CD 79 .o....tD.......y
007CB0: 00 D1 C1 C9 25 35 75 20 00 18 02 18 03 C3 DE 47 ....%5u .......G
007CC0: E1 22 68 56 ED 43 6C 56 ED 73 6A 56 CD C5 44 ED ."hV.ClV.sjV..D.
007CD0: 7B 6A 56 CD 3D 4A 22 67 08 22 69 08 CD D9 44 21 {jV.=J"g."i...D!
007CE0: 8F 44 E5 3A 6D 08 21 5A 4A 01 00 0E E5 6F E5 CD .D.:m.!ZJ....o..
007CF0: 0B 02 7D E1 BE 23 5E 23 56 23 D5 C8 D1 10 F5 79 ..}..#^#V#.....y
007D00: B7 C8 C3 1C 48 CD 3D 4A CD FB 43 3E 0A C3 82 00 ....H.=J..C>....
007D10: CD 82 45 21 B7 4A C3 8F 41 3E 3E CD 82 00 DD CB ..E!.J..A>>.....
007D20: 00 D6 CD CD 47 DD CB 00 96 11 89 08 1A 32 6D 08 ....G........2m.
007D30: FE 0A C8 FE 7C 20 06 CD 73 0F C3 8F 44 CD 88 00 ....| ..s...D...
007D40: 30 09 CD 65 45 13 D2 6C 49 18 38 ED 4B 60 56 CD 0..eE..lI.8.K`V.
007D50: 49 45 D8 28 09 CD 65 45 22 5B 56 22 67 08 D4 49 IE.(..eE"[V"g..I
007D60: 45 D8 28 09 CD 65 45 22 5D 56 22 69 08 D4 49 45 E.(..eE"]V"i..IE
007D70: D8 21 31 56 C4 53 45 C4 49 45 20 FB 21 46 56 D4 .!1V.SE.IE .!FV.
007D80: 54 45 D8 CD D3 44 C3 8F 44 13 1A FE 0A 37 C8 B9 TE...D..D....7..
007D90: 37 3F C9 1B 06 14 CD 49 45 28 07 77 23 10 F7 CD 7?.....IE(.w#...
007DA0: 49 45 36 00 C9 CD A9 02 7C B5 28 D7 18 DC CD 00 IE6.....|.(.....
007DB0: 4A 20 05 3E 0A 32 67 08 CD F5 49 C0 3E 0A 32 69 J .>.2g...I.>.2i
007DC0: 08 C9 CD F5 49 20 03 D0 60 69 E5 CD C8 49 C1 D8 ....I ..`i...I..
007DD0: E5 CD C8 49 D1 CC E2 49 B7 ED 52 C8 D8 C1 E5 19 ...I...I..R.....
007DE0: CD 12 4A E1 CD FB 00 44 4D C3 C4 4A 3A 31 56 FE ..J....DM..J:1V.
007DF0: 20 C8 32 60 56 C9 DD CB 00 CE CD 00 4A 20 01 0C .2`V.......J ..
007E00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007E10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007E20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007E30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007E40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007E50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007E60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007E70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007E90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007F00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007F10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007F20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007F30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007F40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007F50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007F60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007F70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007F80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007F90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007FA0: 99 4D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .M..............
007FB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007FC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007FD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007FE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007FF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008000: CD C8 49 D8 E5 CD C2 0E E1 4E 23 46 EB 2A 69 08 ..I......N#F.*i.
008010: 7C B5 28 04 ED 42 38 27 D5 60 69 DD CB 00 4E CC |.(..B8'.`i...N.
008020: 63 44 E1 E5 23 E5 7E F5 DD CB 00 4E C4 B0 41 CC cD..#.~....N..A.
008030: 82 00 F1 E1 FE 0A 20 EC E1 2B CD E2 49 20 CA C3 ...... ..+..I ..
008040: E3 0E 21 31 56 E5 C5 CD 46 00 22 62 08 7C B5 C9 ..!1V...F."b.|..
008050: 72 00 77 00 01 10 46 CD 02 46 CA D3 44 2A 62 56 r.w...F..F..D*bV
008060: ED 4B A4 4C AF ED 42 09 57 5F 2B 28 1E E5 3E 0A .K.L..B.W_+(..>.
008070: B7 ED 42 09 28 05 2B BE 20 F6 23 5E 23 56 E1 AF ..B.(.+. .#^#V..
008080: 18 09 E1 CD C0 4A 77 FE 0A 20 0F CD C0 4A E5 21 .....Jw.. ...J.!
008090: 0A 00 19 EB E1 73 CD C0 4A 72 E5 D5 F5 2A 62 08 .....s..Jr...*b.
0080A0: E5 CD 49 00 7D FE 0D 28 F4 C1 D1 BC 20 D4 E1 3E ..I.}..(.... ..>
0080B0: 0A B8 28 07 CD C0 4A 77 23 18 07 2B 01 FE FF CD ..(...Jw#..+....
0080C0: C4 4A 22 62 56 2A 62 08 E5 CD 4F 00 C9 CD C4 49 .J"bV*b...O....I
0080D0: D8 E5 ED 4B 5D 56 CD C8 49 CC E2 49 D1 B7 ED 52 ...K]V..I..I...R
0080E0: 19 D8 E5 CD 21 44 D5 01 12 46 CD 02 46 D1 C1 CA ....!D...F..F...
0080F0: D3 44 62 6B B7 ED 42 30 CC CD 40 44 C5 D5 E5 2A .Dbk..B0..@D...*
008100: 62 08 E5 DD CB 00 5E 28 08 11 0D 00 D5 E5 CD 4C b.....^(.......L
008110: 00 CD 4C 00 24 18 D6 CD 6E 45 06 00 CD E1 46 F8 ..L.$...nE....F.
008120: 04 2A A4 4C CD EA 49 ED 5B 67 08 C8 78 B7 28 04 .*.L..I.[g..x.(.
008130: 73 23 72 2B EB ED 4B 69 08 ED 4A 47 F8 EB CD E2 s#r+..Ki..JG....
008140: 49 18 E8 3A 60 56 CD 82 00 2A 5B 56 CD 63 44 2A I..:`V...*[V.cD*
008150: 5D 56 CD 63 44 CD CB 44 21 31 56 CD 33 47 21 46 ]V.cD..D!1V.3G!F
008160: 56 CD 33 47 2A A4 4C CD 63 44 2A 62 56 CD 63 44 V.3G*.L.cD*bV.cD
008170: C3 CB 44 CD 8F 41 18 F8 ED 7B 6A 56 ED 4B 6C 56 ..D..A...{jV.KlV
008180: 2A 68 56 E9 C9 CD C4 49 D8 CD 6A 47 D8 21 09 48 *hV....I..jG.!.H
008190: E5 CD B0 48 ED 5B 60 08 B7 ED 52 19 C8 D5 CD 42 ...H.[`...R....B
0081A0: 48 D1 18 F4 EB CD E2 49 37 C8 E5 4E 23 46 23 C5 H......I7..N#F#.
0081B0: CD 07 4A C1 D1 2A 5D 56 B7 ED 42 D8 ED 43 67 08 ..J..*]V..B..Cg.
0081C0: 01 89 08 ED 43 60 08 21 31 56 7E B7 37 C8 7E B7 ....C`.!1V~.7.~.
0081D0: C8 0A FE 0A 28 CE BE 23 03 28 F3 ED 4B 60 08 03 ....(..#.(..K`..
0081E0: 18 E1 D5 CD 66 49 E5 CD 07 4A D1 1B 1B C1 18 D3 ....fI...J......
0081F0: 2A 6B 08 54 5D 7E FE 0A C9 CD 6E 45 60 69 E5 11 *k.T]~....nE`i..
008200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0082A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0082B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0082C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0082D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0082E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0082F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0083A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0083B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0083C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0083D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0083E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0083F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008400: D4 47 D5 22 67 08 44 4D CD C8 49 28 2D 21 89 08 .G."g.DM..I(-!..
008410: 36 0A 18 32 D1 2A 69 08 19 7C 07 D8 18 E0 CD C5 6..2.*i..|......
008420: 44 2A 62 56 ED 5B A4 4C B7 ED 52 21 8F 44 E5 C8 D*bV.[.L..R!.D..
008430: 2A 66 56 5E 23 56 ED 53 67 08 CD 00 4A CD C8 49 *fV^#V.Sg...J..I
008440: C0 23 23 CD 07 4A CD B0 48 21 09 48 E5 CD 7C 00 .##..J..H!.H..|.
008450: 21 81 4A 06 12 4F C3 AC 44 CD 58 0E 79 FE 20 D8 !.J..O..D.X.y. .
008460: DD CB 00 46 28 07 CD B0 47 C8 71 18 15 21 89 08 ...F(...G.q..!..
008470: CD B2 49 FE 51 C8 CD B0 47 79 06 01 CD 61 48 CD ..I.Q...Gy...aH.
008480: 84 48 CD B0 47 C8 CD 82 00 23 22 6B 08 C9 2A 6B .H..G....#"k..*k
008490: 08 11 89 08 B7 ED 52 19 C8 2B 3E 08 CD 82 00 18 ......R..+>.....
0084A0: E9 4E 12 FE 0A C8 CD 82 00 79 23 13 04 18 F2 CD .N.......y#.....
0084B0: 4E 48 C8 CD B0 47 C8 06 02 23 7E 23 CD 61 48 3E NH...G...#~#.aH>
0084C0: 20 CD 82 00 3E 08 10 F9 C9 CD 4E 48 20 FB C9 CD ...>.....NH ...
0084D0: 42 48 20 FB C9 21 5F 56 7E EE 01 77 C9 06 01 2A BH ..!_V~..w...*
0084E0: 6B 08 7E FE 0A 28 DD 3E 20 CD 82 00 23 04 18 F2 k.~..(.> ...#...
0084F0: 21 89 08 22 6B 08 DD CB 00 56 C0 2A 67 08 CD 63 !.."k....V.*g..c
008500: 44 CD 8F 48 18 C3 DD CB 00 56 C0 ED 5B 60 08 CD D..H.....V..[`..
008510: A2 47 30 02 E1 C9 21 31 56 CD B9 49 5F 16 00 21 .G0...!1V..I_..!
008520: 46 56 E5 CD B9 49 F5 93 4F 42 F2 EE 48 05 21 89 FV...I..OB..H.!.
008530: 08 CD B2 49 D6 51 81 F2 2A 49 2B E5 2A 60 08 19 ...I.Q..*I+.*`..
008540: E5 09 EB CD 9D 48 E1 C1 CD 1E 4A C1 48 06 00 0C .....H....J.H...
008550: 0D ED 5B 60 08 E1 28 02 ED B0 D5 CD 8F 48 D1 CD ..[`..(......H..
008560: CB 44 CD A2 47 D2 51 47 E1 C9 E1 E1 DD CB 00 56 .D..G.QG.......V
008570: C0 ED 5B 60 08 13 18 E7 21 3F 00 18 0D 21 01 00 ..[`....!?...!..
008580: 18 08 21 00 FF 18 03 21 00 01 E5 CD 8E 0E D1 19 ..!....!........
008590: 7D E6 3F 6F C3 70 0E CD 51 4A C3 8F 44 E1 CD 51 }.?o.p..QJ..D..Q
0085A0: 4A DD CB 00 56 C0 2A 67 08 11 89 08 44 4D D5 E5 J...V.*g....DM..
0085B0: EB CD B2 49 16 00 5F D5 CD C8 49 D1 D5 E5 28 04 ...I.._...I...(.
0085C0: 13 13 18 0C 23 23 CD B2 49 ED 44 83 5F 38 01 15 ....##..I.D._8..
0085D0: 42 4B C5 78 B7 CC C4 4A EB 19 EB CD 12 4A C1 78 BK.x...J.....J.x
0085E0: B7 C4 C4 4A E1 C1 D1 73 23 72 23 EB E1 D5 ED B0 ...J...s#r#.....
0085F0: E1 C9 3E 0A CD BA 49 3C C9 AF C5 01 00 00 ED B1 ..>...I<........
008600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
008610: 07 00 00 00 02 09 4E E5 07 00 41 02 00 00 00 02 ......N...A.....
008620: 07 00 46 02 00 00 00 02 07 00 42 02 00 00 00 02 ..F.......B.....
008630: 07 00 47 02 00 00 00 02 07 00 43 02 00 00 00 02 ..G.......C.....
008640: 07 00 48 02 00 00 00 02 07 00 44 02 00 00 00 02 ..H.......D.....
008650: 07 00 49 02 00 00 00 02 07 00 45 02 00 00 00 02 ..I.......E.....
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: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0087A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0087B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0087C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0087D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0087E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0087F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008800: 00 00 00 00 00 00 00 00 00 00 0D AD 04 8F 4D 0D ..............M.
008810: 9E 04 8F 4D 0D 96 04 8F 4D 0D 16 03 8F 4D 0D 0E ...M....M....M..
008820: 03 8F 4D 0D 09 03 8F 4D 02 2E 02 8F 4D 02 20 02 ..M....M....M. .
008830: 8F 4D 02 0B 02 8F 4D 02 FF 01 8F 4D 02 ED 01 8F .M....M....M....
008840: 4D 02 E6 01 8F 4D 02 DA 01 8F 4D 02 D1 01 8F 4D M....M....M....M
008850: 02 C8 01 8F 4D 02 18 08 8F 4D 02 6A 00 8F 4D 02 ....M....M.j..M.
008860: 61 00 8F 4D 02 5E 00 8F 4D 02 5B 00 8F 4D 02 6D a..M.^..M.[..M.m
008870: 00 8F 4D 02 55 00 8F 4D 02 4F 00 8F 4D 02 4C 00 ..M.U..M.O..M.L.
008880: 8F 4D 02 49 00 8F 4D 02 46 00 99 4D CA 52 47 53 .M.I..M.F..M.RGS
008890: 64 4F CA 52 00 00 00 00 00 00 00 00 00 00 00 00 dO.R............
0088A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0088B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0088C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0088D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0088E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0088F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008900: 73 73 20 6D 69 73 6D 61 74 63 68 00 4C 49 4D 49 ss mismatch.LIMI
008910: 54 20 3A 20 67 6C 6F 62 61 6C 20 73 79 6D 62 6F T : global symbo
008920: 6C 20 74 61 62 6C 65 20 66 75 6C 6C 00 4C 49 4D l table full.LIM
008930: 49 54 20 3A 20 74 6F 6F 20 6D 75 63 68 20 67 6C IT : too much gl
008940: 6F 62 61 6C 20 64 61 74 61 00 64 75 70 6C 69 63 obal data.duplic
008950: 61 74 65 20 64 65 63 6C 61 72 61 74 69 6F 6E 00 ate declaration.
008960: 4C 49 4D 49 54 20 3A 20 6C 6F 63 61 6C 20 73 79 LIMIT : local sy
008970: 6D 62 6F 6C 20 74 61 62 6C 65 20 66 75 6C 6C 00 mbol table full.
008980: 74 68 69 73 20 76 61 72 69 61 62 6C 65 20 77 61 this variable wa
008990: 73 20 6E 6F 74 20 69 6E 20 70 61 72 61 6D 65 74 s not in paramet
0089A0: 65 72 20 6C 69 73 74 00 75 6E 64 65 66 69 6E 65 er list.undefine
0089B0: 64 20 76 61 72 69 61 62 6C 65 28 73 29 00 62 61 d variable(s).ba
0089C0: 64 20 66 75 6E 63 74 69 6F 6E 20 72 65 74 75 72 d function retur
0089D0: 6E 20 74 79 70 65 00 6E 6F 20 61 72 72 61 79 73 n type.no arrays
0089E0: 20 6F 66 20 66 75 6E 63 74 69 6F 6E 73 00 4C 49 of functions.LI
0089F0: 4D 49 54 20 3A 20 65 78 70 72 65 73 73 69 6F 6E MIT : expression
008A00: 20 74 6F 6F 20 63 6F 6D 70 6C 69 63 61 74 65 64 too complicated
008A10: 20 2D 20 74 6F 6F 20 6D 61 6E 79 20 61 72 67 75 - too many argu
008A20: 6D 65 6E 74 73 00 4C 49 4D 49 54 20 3A 20 65 78 ments.LIMIT : ex
008A30: 70 72 65 73 73 69 6F 6E 20 74 6F 6F 20 63 6F 6D pression too com
008A40: 70 6C 69 63 61 74 65 64 20 2D 20 74 6F 6F 20 6D plicated - too m
008A50: 61 6E 79 20 6F 70 65 72 61 74 6F 72 73 00 62 61 any operators.ba
008A60: 64 20 74 79 70 65 20 63 6F 6D 62 69 6E 61 74 69 d type combinati
008A70: 6F 6E 00 62 61 64 20 6F 70 65 72 61 6E 64 20 74 on.bad operand t
008A80: 79 70 65 00 6E 65 65 64 20 61 6E 20 6C 76 61 6C ype.need an lval
008A90: 75 65 00 6E 6F 74 20 61 20 64 65 66 69 6E 65 64 ue.not a defined
008AA0: 20 6D 65 6D 62 65 72 20 6F 66 20 61 20 73 74 72 member of a str
008AB0: 75 63 74 75 72 65 00 65 78 70 65 63 74 69 6E 67 ucture.expecting
008AC0: 20 61 20 70 72 69 6D 61 72 79 20 68 65 72 65 00 a primary here.
008AD0: 75 6E 64 65 66 69 6E 65 64 20 76 61 72 69 61 62 undefined variab
008AE0: 6C 65 00 6E 65 65 64 20 61 20 74 79 70 65 20 6E le.need a type n
008AF0: 61 6D 65 00 6E 65 65 64 20 61 20 63 6F 6E 73 74 ame.need a const
008B00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008B10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008B20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008B30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008B40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008B50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008B70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008B80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008B90: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 ................
008BA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008BB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008BC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008BD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008BF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008C00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008C10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008C20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008C30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008C40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008C50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008C60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008C70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008C80: 00 00 00 00 00 00 00 01 18 0D 14 1B 05 05 04 01 ................
008C90: 05 07 02 08 04 01 08 07 00 08 0E 13 16 1D 05 12 ................
008CA0: 01 05 05 01 02 03 02 01 00 00 00 00 00 00 00 00 ................
008CB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008CC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008CD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008CE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008CF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008D00: 61 6E 74 20 65 78 70 72 65 73 73 69 6F 6E 00 63 ant expression.c
008D10: 61 6E 20 6F 6E 6C 79 20 63 61 6C 6C 20 66 75 6E an only call fun
008D20: 63 74 69 6F 6E 73 00 20 3A 20 64 6F 65 73 20 6E ctions. : does n
008D30: 6F 74 20 66 6F 6C 6C 6F 77 20 61 20 3F 20 70 72 ot follow a ? pr
008D40: 6F 70 65 72 6C 79 00 44 65 73 74 69 6E 61 74 69 operly.Destinati
008D50: 6F 6E 20 6F 66 20 61 6E 20 61 73 73 69 67 6E 6D on of an assignm
008D60: 65 6E 74 20 6D 75 73 74 20 62 65 20 61 6E 20 6C ent must be an l
008D70: 76 61 6C 75 65 00 6E 65 65 64 20 61 20 3A 20 74 value.need a : t
008D80: 6F 20 66 6F 6C 6C 6F 77 20 61 20 3F 20 2D 20 63 o follow a ? - c
008D90: 68 65 63 6B 20 62 72 61 63 6B 65 74 74 69 6E 67 heck bracketting
008DA0: 00 6E 65 65 64 20 61 20 70 6F 69 6E 74 65 72 00 .need a pointer.
008DB0: 69 6C 6C 65 67 61 6C 20 70 61 72 61 6D 65 74 65 illegal paramete
008DC0: 72 20 74 79 70 65 00 52 45 53 54 52 49 43 54 49 r type.RESTRICTI
008DD0: 4F 4E 3A 20 46 6C 6F 61 74 69 6E 67 20 50 6F 69 ON: Floating Poi
008DE0: 6E 74 20 6E 6F 74 20 69 6D 70 6C 65 6D 65 6E 74 nt not implement
008DF0: 65 64 00 63 61 6E 6E 6F 74 20 75 73 65 20 74 68 ed.cannot use th
008E00: 69 73 20 6F 70 65 72 61 74 6F 72 20 77 69 74 68 is operator with
008E10: 20 66 6C 6F 61 74 20 61 72 67 75 6D 65 6E 74 73 float arguments
008E20: 00 62 61 64 20 64 65 63 6C 61 72 61 74 69 6F 6E .bad declaration
008E30: 00 73 74 6F 72 61 67 65 20 63 6C 61 73 73 20 6E .storage class n
008E40: 6F 74 20 76 61 6C 69 64 20 69 6E 20 74 68 69 73 ot valid in this
008E50: 20 63 6F 6E 74 65 78 74 00 43 4F 4D 50 49 4C 45 context.COMPILE
008E60: 52 20 46 41 55 4C 54 00 64 75 70 6C 69 63 61 74 R FAULT.duplicat
008E70: 65 20 64 65 63 6C 61 72 61 74 69 6F 6E 20 6F 66 e declaration of
008E80: 20 73 74 72 75 63 74 75 72 65 20 74 61 67 00 75 structure tag.u
008E90: 73 65 20 61 20 70 72 65 64 65 63 6C 61 72 65 64 se a predeclared
008EA0: 20 73 74 72 75 63 74 75 72 65 20 66 6F 72 20 70 structure for p
008EB0: 61 72 61 6D 65 74 65 72 73 00 73 74 72 75 63 74 arameters.struct
008EC0: 75 72 65 20 63 61 6E 6E 6F 74 20 63 6F 6E 74 61 ure cannot conta
008ED0: 69 6E 20 69 74 73 65 6C 66 00 62 61 64 20 64 65 in itself.bad de
008EE0: 63 6C 61 72 61 74 6F 72 00 6D 69 73 73 69 6E 67 clarator.missing
008EF0: 20 27 29 27 20 69 6E 20 66 75 6E 63 74 69 6F 6E ')' in function
008F00: 00 00 00 00 00 00 00 00 00 00 00 24 24 3D 3F 20 ...........$$=?
008F10: 53 54 58 57 3C 3E 52 50 7C 5E 26 4F 51 2B 2D 2A STXW<>RP|^&OQ+-*
008F20: 2F 25 00 2A 26 2D 21 7E 56 55 20 20 20 04 00 00 /%.*&-!~VU ...
008F30: 00 01 02 03 04 05 09 09 0A 0A 0A 0A 06 07 08 0B ................
008F40: 0B 0C 0C 0D 0D 0D 0A 0A 0A 0A 0D 0B 0C 0C 00 00 ................
008F50: 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 01 0F 00 00 00 ................
008F60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008F70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008F80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008F90: 00 00 00 00 00 00 00 00 00 00 00 0A 00 0A 00 00 ................
008FA0: 2C 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...............
008FB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008FC0: 61 75 74 6F 20 20 20 20 00 00 01 FF 62 72 65 61 auto ....brea
008FD0: 6B 20 20 20 00 00 02 FF 63 61 73 65 20 20 20 20 k ....case
008FE0: 00 00 03 FF 63 61 73 74 20 20 20 20 00 00 04 FF ....cast ....
008FF0: 63 68 61 72 20 20 20 20 00 00 05 FF 63 6F 6E 74 char ....cont
009000: 69 6E 75 65 00 00 06 FF 64 65 66 61 75 6C 74 20 inue....default
009010: 00 00 07 FF 64 6F 75 62 6C 65 20 20 00 00 08 FF ....double ....
009020: 64 6F 20 20 20 20 20 20 00 00 09 FF 65 6C 73 65 do ....else
009030: 20 20 20 20 00 00 0B FF 65 6E 74 72 79 20 20 20 ....entry
009040: 00 00 0C FF 65 78 74 65 72 6E 20 20 00 00 0D FF ....extern ....
009050: 66 6C 6F 61 74 20 20 20 00 00 0E FF 66 6F 72 20 float ....for
009060: 20 20 20 20 00 00 0F FF 67 6F 74 6F 20 20 20 20 ....goto
009070: 00 00 10 FF 69 66 20 20 20 20 20 20 00 00 11 FF ....if ....
009080: 69 6E 74 20 20 20 20 20 00 00 12 FF 6C 6F 6E 67 int ....long
009090: 20 20 20 20 00 00 13 FF 72 65 67 69 73 74 65 72 ....register
0090A0: 00 00 14 FF 72 65 74 75 72 6E 20 20 00 00 15 FF ....return ....
0090B0: 73 68 6F 72 74 20 20 20 00 00 16 FF 73 69 7A 65 short ....size
0090C0: 6F 66 20 20 00 00 17 FF 73 74 61 74 69 63 20 20 of ....static
0090D0: 00 00 18 FF 73 74 72 75 63 74 20 20 00 00 19 FF ....struct ....
0090E0: 73 77 69 74 63 68 20 20 00 00 1A FF 74 79 70 65 switch ....type
0090F0: 64 65 66 20 00 00 1B FF 75 6E 69 6F 6E 20 20 20 def ....union
009100: 20 64 65 63 6C 61 72 61 74 69 6F 6E 00 62 61 64 declaration.bad
009110: 20 66 6F 72 6D 61 6C 20 70 61 72 61 6D 65 74 65 formal paramete
009120: 72 20 6C 69 73 74 00 74 79 70 65 20 73 68 6F 75 r list.type shou
009130: 6C 64 20 62 65 20 66 75 6E 63 74 69 6F 6E 00 43 ld be function.C
009140: 4F 4D 50 49 4C 45 52 20 46 41 55 4C 54 00 43 4F OMPILER FAULT.CO
009150: 4D 50 49 4C 45 52 20 46 41 55 4C 54 00 4C 49 4D MPILER FAULT.LIM
009160: 49 54 3A 20 6E 6F 20 6D 6F 72 65 20 6D 65 6D 6F IT: no more memo
009170: 72 79 00 52 45 53 54 52 49 43 54 49 4F 4E 3A 20 ry.RESTRICTION:
009180: 75 73 65 20 61 73 73 69 67 6E 6D 65 6E 74 20 6F use assignment o
009190: 72 20 62 6C 74 28 29 20 74 6F 20 69 6E 69 74 69 r blt() to initi
0091A0: 61 6C 69 73 65 20 61 75 74 6F 6D 61 74 69 63 73 alise automatics
0091B0: 00 43 61 6E 6E 6F 74 20 69 6E 69 74 69 61 6C 69 .Cannot initiali
0091C0: 73 65 20 74 68 69 73 20 28 64 69 73 61 6C 6C 6F se this (disallo
0091D0: 77 65 64 20 73 74 6F 72 61 67 65 20 63 6C 61 73 wed storage clas
0091E0: 73 29 00 43 61 6E 6E 6F 74 20 69 6E 69 74 69 61 s).Cannot initia
0091F0: 6C 69 73 65 20 74 68 69 73 20 28 64 69 73 61 6C lise this (disal
009200: 6C 6F 77 65 64 20 74 79 70 65 29 00 74 6F 6F 20 lowed type).too
009210: 6D 75 63 68 20 69 6E 69 74 69 61 6C 69 73 61 74 much initialisat
009220: 69 6F 6E 20 64 61 74 61 00 62 61 64 20 69 6E 69 ion data.bad ini
009230: 74 69 61 6C 69 7A 65 72 20 28 6E 65 65 64 73 20 tializer (needs
009240: 61 20 27 7B 27 29 00 00 00 00 00 00 00 00 00 00 a '{')..........
009250: 0E FF 21 18 61 C3 16 BD 60 69 CD CB BC 01 00 F8 ..!.a...`i......
009260: 09 22 80 06 22 82 06 2B 22 1F 56 21 BF FF 19 D8 .".."..+".V!....
009270: C3 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .@..............
009280: 20 73 74 72 75 63 74 75 72 65 20 74 61 67 00 75 structure tag.u
009290: 73 65 20 61 20 70 72 65 64 65 63 6C 61 72 65 64 se a predeclared
0092A0: 20 73 74 72 75 63 74 75 72 65 20 66 6F 72 20 70 structure for p
0092B0: 61 72 61 6D 65 74 65 72 73 00 73 74 72 75 63 74 arameters.struct
0092C0: 75 72 65 20 63 61 6E 6E 6F 74 20 63 6F 6E 74 61 ure cannot conta
0092D0: 69 6E 20 69 74 73 65 6C 66 00 62 61 64 20 64 65 in itself.bad de
0092E0: 63 6C 61 72 61 74 6F 72 00 6D 69 73 73 69 6E 67 clarator.missing
0092F0: 20 27 29 27 20 69 6E 20 66 75 6E 63 74 69 6F 6E ')' in function
009300: 00 00 1C FF 75 6E 73 69 67 6E 65 64 00 00 1D FF ....unsigned....
009310: 77 68 69 6C 65 20 20 20 00 00 1E FF 66 6F 70 65 while ....fope
009320: 6E 20 20 20 00 00 47 53 67 65 74 63 20 20 20 20 n ..GSgetc
009330: 00 00 42 53 70 75 74 63 20 20 20 20 00 00 3D 53 ..BSputc ..=S
009340: 66 63 6C 6F 73 65 20 20 00 00 38 53 72 61 77 69 fclose ..8Srawi
009350: 6E 20 20 20 00 00 33 53 72 61 77 6F 75 74 20 20 n ..3Srawout
009360: 00 00 2E 53 6B 65 79 68 69 74 20 20 00 00 29 53 ...Skeyhit ..)S
009370: 67 65 74 63 68 61 72 20 00 00 24 53 70 75 74 63 getchar ..$Sputc
009380: 68 61 72 20 00 00 1F 53 75 6E 67 65 74 63 20 20 har ...Sungetc
009390: 00 00 1A 53 73 65 74 62 75 66 6F 75 00 00 15 53 ...Ssetbufou...S
0093A0: 69 73 64 69 67 69 74 20 00 00 10 53 69 73 61 6C isdigit ...Sisal
0093B0: 70 68 61 20 00 00 0B 53 69 73 75 70 70 65 72 20 pha ...Sisupper
0093C0: 00 00 06 53 69 73 6C 6F 77 65 72 20 00 00 01 53 ...Sislower ...S
0093D0: 69 73 73 70 61 63 65 20 00 00 FC 52 74 6F 6C 6F isspace ...Rtolo
0093E0: 77 65 72 20 00 00 F7 52 74 6F 75 70 70 65 72 20 wer ...Rtoupper
0093F0: 00 00 F2 52 73 77 61 70 20 20 20 20 00 00 ED 52 ...Rswap ...R
009400: 62 6C 74 20 20 20 20 20 00 00 E8 52 73 70 72 69 blt ...Rspri
009410: 6E 74 66 20 00 00 E3 52 66 70 72 69 6E 74 66 20 ntf ...Rfprintf
009420: 00 00 DE 52 70 72 69 6E 74 66 20 20 00 00 D9 52 ...Rprintf ...R
009430: 73 73 63 61 6E 66 20 20 00 00 D4 52 66 73 63 61 sscanf ...Rfsca
009440: 6E 66 20 20 00 00 CF 52 73 63 61 6E 66 20 20 20 nf ...Rscanf
009450: 00 00 CA 52 00 00 00 00 00 00 00 00 00 00 00 00 ...R............
009460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0094A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0094B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0094C0: 52 45 53 54 52 49 43 54 49 4F 4E 20 3A 20 66 6C RESTRICTION : fl
0094D0: 6F 61 74 73 20 6E 6F 74 20 69 6D 70 6C 65 6D 65 oats not impleme
0094E0: 6E 74 65 64 00 62 61 64 20 63 68 61 72 61 63 74 nted.bad charact
0094F0: 65 72 20 63 6F 6E 73 74 61 6E 74 00 6E 6F 74 20 er constant.not
009500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0095A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0095B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0095C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0095D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0095E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0095F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0096A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0096B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0096C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0096D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0096E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0096F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
009700: 61 20 70 72 65 70 72 6F 63 65 73 73 6F 72 20 63 a preprocessor c
009710: 6F 6D 6D 61 6E 64 00 6D 61 63 72 6F 20 62 75 66 ommand.macro buf
009720: 66 65 72 20 66 75 6C 6C 00 63 61 6E 20 6F 6E 6C fer full.can onl
009730: 79 20 64 65 66 69 6E 65 20 69 64 65 6E 74 69 66 y define identif
009740: 69 65 72 73 20 61 73 20 6D 61 63 72 6F 73 00 52 iers as macros.R
009750: 45 53 54 52 49 43 54 49 4F 4E 3A 20 6D 61 63 72 ESTRICTION: macr
009760: 6F 73 20 6D 61 79 20 6E 6F 74 20 68 61 76 65 20 os may not have
009770: 70 61 72 61 6D 65 74 65 72 73 00 63 61 6E 6E 6F parameters.canno
009780: 74 20 6F 70 65 6E 20 66 69 6C 65 00 52 45 53 54 t open file.REST
009790: 52 49 43 54 49 4F 4E 3A 20 63 61 6E 6E 6F 74 20 RICTION: cannot
0097A0: 6E 65 73 74 20 69 6E 63 6C 75 64 65 73 00 6D 69 nest includes.mi
0097B0: 73 73 69 6E 67 20 27 77 68 69 6C 65 27 00 6E 6F ssing 'while'.no
0097C0: 74 20 69 6E 20 6C 6F 6F 70 20 6F 72 20 73 77 69 t in loop or swi
0097D0: 74 63 68 00 6E 6F 74 20 69 6E 20 6C 6F 6F 70 00 tch.not in loop.
0097E0: 6E 6F 74 20 69 6E 20 73 77 69 74 63 68 00 4C 49 not in switch.LI
0097F0: 4D 49 54 20 3A 20 74 6F 6F 20 6D 61 6E 79 20 63 MIT : too many c
009800: 61 73 65 20 73 74 61 74 65 6D 65 6E 74 73 00 6D ase statements.m
009810: 75 6C 74 69 70 6C 65 20 64 65 66 61 75 6C 74 20 ultiple default
009820: 73 74 61 74 65 6D 65 6E 74 73 00 67 6F 74 6F 20 statements.goto
009830: 6E 65 65 64 73 20 61 20 6C 61 62 65 6C 00 6D 75 needs a label.mu
009840: 6C 74 69 70 6C 65 20 75 73 65 20 6F 66 20 69 64 ltiple use of id
009850: 65 6E 74 69 66 69 65 72 00 64 69 72 65 63 74 20 entifier.direct
009860: 65 78 65 63 75 74 69 6F 6E 20 6E 6F 74 20 70 6F execution not po
009870: 73 73 69 62 6C 65 20 77 68 65 6E 20 74 72 61 6E ssible when tran
009880: 73 6C 61 74 69 6E 67 00 4C 49 4D 49 54 20 3A 20 slating.LIMIT :
009890: 6E 61 6D 65 20 74 61 62 6C 65 20 66 75 6C 6C 00 name table full.
0098A0: 4C 49 4D 49 54 20 3A 20 74 6F 6F 20 6D 61 6E 79 LIMIT : too many
0098B0: 20 74 79 70 65 73 00 64 75 70 6C 69 63 61 74 65 types.duplicate
0098C0: 20 64 65 63 6C 61 72 61 74 69 6F 6E 20 2D 20 74 declaration - t
0098D0: 79 70 65 20 6D 69 73 6D 61 74 63 68 00 64 75 70 ype mismatch.dup
0098E0: 6C 69 63 61 74 65 20 64 65 63 6C 61 72 61 74 69 licate declarati
0098F0: 6F 6E 20 2D 20 73 74 6F 72 61 67 65 20 63 6C 61 on - storage cla
009900: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
009910: 08 00 00 00 02 09 4E E5 08 00 41 02 00 00 00 02 ......N...A.....
009920: 08 00 46 02 00 00 00 02 08 00 42 02 00 00 00 02 ..F.......B.....
009930: 08 00 47 02 00 00 00 02 08 00 43 02 00 00 00 02 ..G.......C.....
009940: 08 00 48 02 00 00 00 02 08 00 44 02 00 00 00 02 ..H.......D.....
009950: 08 00 49 02 00 00 00 02 08 00 45 02 00 00 00 02 ..I.......E.....
009960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009A00: 0D 0A 2F 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ../*************
009A10: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
009A20: 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 48 69 /../* Hi
009A30: 73 6F 66 74 20 43 20 20 20 20 20 20 20 20 20 20 soft C
009A40: 2A 2F 0D 0A 2F 2A 20 53 74 61 6E 64 61 72 64 20 */../* Standard
009A50: 46 75 6E 63 74 69 6F 6E 20 4C 69 62 72 61 72 79 Function Library
009A60: 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 76 65 */../* ve
009A70: 72 73 69 6F 6E 20 31 2E 32 20 20 20 20 20 20 20 rsion 1.2
009A80: 20 20 2A 2F 0D 0A 2F 2A 20 43 6F 70 79 72 69 67 */../* Copyrig
009A90: 68 74 20 28 43 29 20 31 39 38 34 20 48 69 73 6F ht (C) 1984 Hiso
009AA0: 66 74 20 2A 2F 0D 0A 2F 2A 20 4C 61 73 74 20 63 ft */../* Last c
009AB0: 68 61 6E 67 65 64 20 20 31 35 20 41 70 72 20 31 hanged 15 Apr 1
009AC0: 39 38 35 20 2A 2F 0D 0A 2F 2A 2A 2A 2A 2A 2A 2A 985 */../*******
009AD0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
009AE0: 2A 2A 2A 2A 2A 2A 2F 0D 0A 0D 0A 23 6C 69 73 74 ******/....#list
009AF0: 2D 0D 0A 0D 0A 2F 2A 20 53 6F 6D 65 20 61 72 69 -..../* Some ari
009B00: 74 68 6D 65 74 69 63 20 66 75 6E 63 74 69 6F 6E thmetic function
009B10: 73 20 2A 2F 0D 0A 0D 0A 2F 2A 0D 0A 20 20 6D 69 s */..../*.. mi
009B20: 6E 20 61 6E 64 20 6D 61 78 20 61 72 65 20 69 6E n and max are in
009B30: 20 22 73 74 64 69 6F 2E 68 22 0D 0A 20 20 62 65 "stdio.h".. be
009B40: 63 61 75 73 65 20 74 68 65 79 20 61 72 65 20 76 cause they are v
009B50: 61 72 69 61 64 69 63 0D 0A 2A 2F 0D 0A 0D 0A 69 ariadic..*/....i
009B60: 6E 74 20 61 62 73 28 6E 29 0D 0A 7B 0D 0A 20 20 nt abs(n)..{..
009B70: 72 65 74 75 72 6E 20 20 6E 3C 30 20 20 3F 20 20 return n<0 ?
009B80: 2D 6E 20 20 3A 20 20 6E 20 20 3B 0D 0A 7D 0D 0A -n : n ;..}..
009B90: 0D 0A 0D 0A 69 6E 74 20 73 69 67 6E 28 6E 29 0D ....int sign(n).
009BA0: 0A 7B 0D 0A 20 20 72 65 74 75 72 6E 20 20 6E 20 .{.. return n
009BB0: 20 3F 0D 0A 20 20 20 20 28 20 6E 3C 30 20 3F 20 ?.. ( n<0 ?
009BC0: 2D 31 20 3A 20 31 20 29 20 3A 20 30 20 3B 0D 0A -1 : 1 ) : 0 ;..
009BD0: 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 41 6E 20 }......../* An
009BE0: 69 6C 6C 75 73 74 72 61 74 69 6F 6E 20 6F 66 20 illustration of
009BF0: 68 6F 77 20 74 6F 20 67 72 75 62 20 61 72 6F 75 how to grub arou
009C00: 73 20 3D 3D 20 2A 74 29 0D 0A 20 20 20 20 7B 0D s == *t).. {.
009C10: 0A 20 20 20 20 20 20 69 66 20 28 21 20 2A 73 29 . if (! *s)
009C20: 20 20 72 65 74 75 72 6E 20 30 3B 0D 0A 20 20 20 return 0;..
009C30: 20 20 20 2B 2B 73 3B 20 2B 2B 74 3B 0D 0A 20 20 ++s; ++t;..
009C40: 20 20 7D 0D 0A 20 20 72 65 74 75 72 6E 20 2A 73 }.. return *s
009C50: 20 2D 20 2A 74 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 69 - *t;..}......i
009C60: 6E 74 20 73 74 72 6E 63 6D 70 28 73 31 2C 20 73 nt strncmp(s1, s
009C70: 32 2C 20 6E 29 0D 0A 20 20 63 68 61 72 20 2A 73 2, n).. char *s
009C80: 31 2C 20 2A 73 32 3B 0D 0A 7B 0D 0A 20 20 69 66 1, *s2;..{.. if
009C90: 20 28 21 6E 29 20 72 65 74 75 72 6E 20 30 3B 0D (!n) return 0;.
009CA0: 0A 20 20 77 68 69 6C 65 20 28 2A 73 31 20 3D 3D . while (*s1 ==
009CB0: 20 2A 73 32 29 0D 0A 20 20 20 20 7B 0D 0A 20 20 *s2).. {..
009CC0: 20 20 20 20 69 66 20 28 20 21 20 2A 73 31 29 20 if ( ! *s1)
009CD0: 72 65 74 75 72 6E 20 30 3B 0D 0A 20 20 20 20 20 return 0;..
009CE0: 20 69 66 20 28 20 21 20 2D 2D 6E 29 20 62 72 65 if ( ! --n) bre
009CF0: 61 6B 3B 0D 0A 20 20 20 20 20 20 2B 2B 73 31 3B ak;.. ++s1;
009D00: 20 20 2B 2B 73 32 3B 0D 0A 20 20 20 20 7D 0D 0A ++s2;.. }..
009D10: 20 20 72 65 74 75 72 6E 20 2A 73 31 20 2D 20 2A return *s1 - *
009D20: 73 32 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 63 68 s2;..}........ch
009D30: 61 72 20 2A 73 74 72 63 70 79 28 64 65 73 74 2C ar *strcpy(dest,
009D40: 20 73 6F 75 72 63 65 29 0D 0A 20 20 63 68 61 72 source).. char
009D50: 20 2A 64 65 73 74 2C 20 2A 73 6F 75 72 63 65 3B *dest, *source;
009D60: 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 63 68 ..{.. static ch
009D70: 61 72 20 2A 72 65 73 75 6C 74 3B 0D 0A 0D 0A 20 ar *result;....
009D80: 20 72 65 73 75 6C 74 20 3D 20 64 65 73 74 3B 0D result = dest;.
009D90: 0A 20 20 77 68 69 6C 65 20 28 2A 72 65 73 75 6C . while (*resul
009DA0: 74 2B 2B 20 3D 20 2A 73 6F 75 72 63 65 2B 2B 29 t++ = *source++)
009DB0: 20 3B 0D 0A 20 20 72 65 74 75 72 6E 20 64 65 73 ;.. return des
009DC0: 74 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 63 68 61 72 20 t;..}......char
009DD0: 2A 73 74 72 6E 63 70 79 28 73 31 2C 20 73 32 2C *strncpy(s1, s2,
009DE0: 20 6E 29 0D 0A 20 20 63 68 61 72 20 2A 73 31 2C n).. char *s1,
009DF0: 20 2A 73 32 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 *s2;..{.. stat
009E00: 6E 64 20 69 6E 20 74 68 65 20 73 74 6F 72 65 20 nd in the store
009E10: 2A 2F 0D 0A 0D 0A 0D 0A 74 79 70 65 64 65 66 20 */......typedef
009E20: 20 63 68 61 72 20 2A 20 5F 5F 63 68 61 72 5F 70 char * __char_p
009E30: 74 72 3B 0D 0A 0D 0A 0D 0A 69 6E 74 20 70 65 65 tr;......int pee
009E40: 6B 28 61 64 64 72 65 73 73 29 0D 0A 7B 0D 0A 20 k(address)..{..
009E50: 20 72 65 74 75 72 6E 20 20 2A 20 63 61 73 74 28 return * cast(
009E60: 5F 5F 63 68 61 72 5F 70 74 72 29 20 61 64 64 72 __char_ptr) addr
009E70: 65 73 73 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 76 6F 69 ess;..}......voi
009E80: 64 20 70 6F 6B 65 28 61 64 64 72 65 73 73 2C 20 d poke(address,
009E90: 76 61 6C 75 65 29 0D 0A 7B 0D 0A 20 20 2A 20 63 value)..{.. * c
009EA0: 61 73 74 28 5F 5F 63 68 61 72 5F 70 74 72 29 20 ast(__char_ptr)
009EB0: 61 64 64 72 65 73 73 20 3D 20 76 61 6C 75 65 3B address = value;
009EC0: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 49 6E 70 ..}....../* Inp
009ED0: 75 74 20 61 6E 64 20 4F 75 74 70 75 74 20 20 2A ut and Output *
009EE0: 2F 0D 0A 0D 0A 0D 0A 69 6E 74 20 6F 75 74 28 64 /......int out(d
009EF0: 61 74 61 2C 20 70 6F 72 74 29 0D 0A 7B 0D 0A 20 ata, port)..{..
009F00: 20 72 65 67 5F 62 63 20 3D 20 70 6F 72 74 3B 20 reg_bc = port;
009F10: 20 72 65 67 5F 68 6C 20 3D 20 64 61 74 61 3B 0D reg_hl = data;.
009F20: 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 . inline(..
009F30: 30 78 34 42 45 44 2C 20 26 72 65 67 5F 62 63 2C 0x4BED, ®_bc,
009F40: 20 2F 2A 20 6C 64 20 62 63 2C 28 72 65 67 5F 62 /* ld bc,(reg_b
009F50: 63 29 20 2A 2F 0D 0A 20 20 20 20 30 78 32 41 2C c) */.. 0x2A,
009F60: 20 20 20 26 72 65 67 5F 68 6C 2C 20 2F 2A 20 6C ®_hl, /* l
009F70: 64 20 68 6C 2C 28 72 65 67 5F 68 6C 29 20 2A 2F d hl,(reg_hl) */
009F80: 0D 0A 20 20 20 20 30 78 36 39 45 44 29 3B 20 20 .. 0x69ED);
009F90: 20 20 20 20 20 20 20 2F 2A 20 6F 75 74 20 28 63 /* out (c
009FA0: 29 2C 6C 20 20 20 20 20 20 2A 2F 0D 0A 7D 0D 0A ),l */..}..
009FB0: 0D 0A 0D 0A 69 6E 74 20 69 6E 70 28 70 6F 72 74 ....int inp(port
009FC0: 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D )..{.. inline(.
009FD0: 0A 20 20 20 20 30 78 45 31 44 44 2C 20 20 20 20 . 0xE1DD,
009FE0: 20 2F 2A 20 70 6F 70 20 20 69 78 20 20 20 20 2A /* pop ix *
009FF0: 2F 0D 0A 20 20 20 20 30 78 45 31 2C 20 20 20 20 /.. 0xE1,
00A000: 69 63 20 63 68 61 72 20 2A 73 2C 20 63 3B 0D 0A ic char *s, c;..
00A010: 0D 0A 20 20 73 20 3D 20 73 31 3B 0D 0A 20 20 63 .. s = s1;.. c
00A020: 20 3D 20 2A 73 32 3B 0D 0A 20 20 77 68 69 6C 65 = *s2;.. while
00A030: 20 28 6E 29 0D 0A 20 20 20 20 7B 0D 0A 20 20 20 (n).. {..
00A040: 20 20 20 2A 73 2B 2B 20 3D 20 28 20 63 20 20 3F *s++ = ( c ?
00A050: 20 20 28 20 63 20 3D 20 2A 73 32 2B 2B 20 29 20 ( c = *s2++ )
00A060: 20 3A 20 20 30 20 29 20 3B 0D 0A 20 20 20 20 20 : 0 ) ;..
00A070: 20 2D 2D 6E 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 --n;.. }..
00A080: 72 65 74 75 72 6E 20 73 31 3B 0D 0A 7D 0D 0A 0D return s1;..}...
00A090: 0A 0D 0A 0D 0A 75 6E 73 69 67 6E 65 64 20 73 74 .....unsigned st
00A0A0: 72 6C 65 6E 28 73 29 0D 0A 20 20 63 68 61 72 20 rlen(s).. char
00A0B0: 2A 73 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 *s;..{.. static
00A0C0: 20 63 68 61 72 20 2A 70 3B 0D 0A 0D 0A 20 20 70 char *p;.... p
00A0D0: 20 3D 20 73 3B 0D 0A 20 20 64 6F 20 3B 20 77 68 = s;.. do ; wh
00A0E0: 69 6C 65 20 28 2A 70 2B 2B 29 3B 0D 0A 20 20 72 ile (*p++);.. r
00A0F0: 65 74 75 72 6E 20 70 2D 73 2D 31 3B 0D 0A 7D 0D eturn p-s-1;..}.
00A100: 0A 0D 0A 0D 0A 0D 0A 63 68 61 72 20 2A 73 74 72 .......char *str
00A110: 70 62 72 6B 28 73 31 2C 20 73 32 29 0D 0A 20 20 pbrk(s1, s2)..
00A120: 63 68 61 72 20 2A 73 31 2C 20 2A 73 32 3B 0D 0A char *s1, *s2;..
00A130: 7B 0D 0A 20 20 77 68 69 6C 65 20 28 2A 73 31 29 {.. while (*s1)
00A140: 0D 0A 20 20 20 20 7B 0D 0A 20 20 20 20 20 20 69 .. {.. i
00A150: 66 20 28 73 74 72 63 68 72 28 73 32 2C 20 2A 73 f (strchr(s2, *s
00A160: 31 29 29 20 72 65 74 75 72 6E 20 73 31 3B 0D 0A 1)) return s1;..
00A170: 20 20 20 20 20 20 2B 2B 73 31 3B 0D 0A 20 20 20 ++s1;..
00A180: 20 7D 0D 0A 20 20 72 65 74 75 72 6E 20 4E 55 4C }.. return NUL
00A190: 4C 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 69 6E 74 20 73 L;..}......int s
00A1A0: 74 72 73 70 6E 28 73 31 2C 20 73 32 29 0D 0A 20 trspn(s1, s2)..
00A1B0: 20 63 68 61 72 20 2A 73 31 2C 20 2A 73 32 3B 0D char *s1, *s2;.
00A1C0: 0A 7B 0D 0A 20 20 63 68 61 72 20 2A 73 3B 0D 0A .{.. char *s;..
00A1D0: 0D 0A 20 20 73 20 3D 20 73 31 3B 0D 0A 20 20 77 .. s = s1;.. w
00A1E0: 68 69 6C 65 20 28 2A 73 29 0D 0A 20 20 20 20 7B hile (*s).. {
00A1F0: 0D 0A 20 20 20 20 20 20 69 66 20 28 20 21 20 73 .. if ( ! s
00A200: 20 20 20 2F 2A 20 70 6F 70 20 20 68 6C 20 20 20 /* pop hl
00A210: 20 2A 2F 0D 0A 20 20 20 20 30 78 43 31 2C 20 20 */.. 0xC1,
00A220: 20 20 20 20 20 2F 2A 20 70 6F 70 20 20 62 63 20 /* pop bc
00A230: 20 20 20 2A 2F 0D 0A 20 20 20 20 30 78 45 35 2C */.. 0xE5,
00A240: 20 20 20 20 20 20 20 2F 2A 20 70 75 73 68 20 68 /* push h
00A250: 6C 20 20 20 20 2A 2F 0D 0A 20 20 20 20 30 78 36 l */.. 0x6
00A260: 38 45 44 2C 20 20 20 20 20 2F 2A 20 69 6E 20 20 8ED, /* in
00A270: 20 6C 2C 28 63 29 20 2A 2F 0D 0A 20 20 20 20 30 l,(c) */.. 0
00A280: 78 32 36 2C 20 20 20 30 2C 20 20 2F 2A 20 6C 64 x26, 0, /* ld
00A290: 20 20 20 68 2C 30 20 20 20 2A 2F 0D 0A 20 20 20 h,0 */..
00A2A0: 20 30 78 43 39 29 3B 20 20 20 20 20 20 2F 2A 20 0xC9); /*
00A2B0: 72 65 74 20 20 20 20 20 20 20 20 2A 2F 0D 0A 7D ret */..}
00A2C0: 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 46 6F 72 6D ......../* Form
00A2D0: 61 74 20 63 6F 6E 76 65 72 73 69 6F 6E 20 72 6F at conversion ro
00A2E0: 75 74 69 6E 65 20 20 2D 20 20 41 53 43 49 49 20 utine - ASCII
00A2F0: 74 6F 20 62 69 6E 61 72 79 20 69 6E 74 65 67 65 to binary intege
00A300: 72 20 20 2A 2F 0D 0A 0D 0A 69 6E 74 20 61 74 6F r */....int ato
00A310: 69 28 73 29 0D 0A 20 20 63 68 61 72 20 2A 73 3B i(s).. char *s;
00A320: 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 69 6E ..{.. static in
00A330: 74 20 63 2C 20 76 61 6C 75 65 2C 20 73 69 67 6E t c, value, sign
00A340: 3B 0D 0A 0D 0A 20 20 77 68 69 6C 65 20 28 69 73 ;.... while (is
00A350: 73 70 61 63 65 28 2A 73 29 29 20 2B 2B 73 3B 0D space(*s)) ++s;.
00A360: 0A 20 20 76 61 6C 75 65 20 3D 20 30 3B 0D 0A 20 . value = 0;..
00A370: 20 73 69 67 6E 20 20 3D 20 31 3B 0D 0A 20 20 69 sign = 1;.. i
00A380: 66 20 20 20 20 20 20 28 2A 73 20 3D 3D 20 27 2D f (*s == '-
00A390: 27 29 20 7B 20 2B 2B 73 3B 20 73 69 67 6E 20 3D ') { ++s; sign =
00A3A0: 20 2D 31 3B 20 7D 0D 0A 20 20 65 6C 73 65 20 69 -1; }.. else i
00A3B0: 66 20 28 2A 73 20 3D 3D 20 27 2B 27 29 20 20 20 f (*s == '+')
00A3C0: 2B 2B 73 3B 0D 0A 20 20 77 68 69 6C 65 20 28 69 ++s;.. while (i
00A3D0: 73 64 69 67 69 74 28 63 20 3D 20 2A 73 2B 2B 29 sdigit(c = *s++)
00A3E0: 29 20 76 61 6C 75 65 20 3D 20 31 30 20 2A 20 76 ) value = 10 * v
00A3F0: 61 6C 75 65 20 2B 20 63 20 2D 20 27 30 27 3B 0D alue + c - '0';.
00A400: 74 72 63 68 72 28 73 32 2C 20 2A 73 29 29 20 62 trchr(s2, *s)) b
00A410: 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 2B 2B 73 reak;.. ++s
00A420: 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 72 65 74 75 ;.. }.. retu
00A430: 72 6E 20 73 20 2D 20 73 31 3B 0D 0A 7D 0D 0A 0D rn s - s1;..}...
00A440: 0A 0D 0A 69 6E 74 20 73 74 72 63 73 70 6E 28 73 ...int strcspn(s
00A450: 31 2C 20 73 32 29 0D 0A 20 20 63 68 61 72 20 2A 1, s2).. char *
00A460: 73 31 2C 20 2A 73 32 3B 0D 0A 7B 0D 0A 20 20 63 s1, *s2;..{.. c
00A470: 68 61 72 20 2A 73 3B 0D 0A 0D 0A 20 20 73 20 3D har *s;.... s =
00A480: 20 73 31 3B 0D 0A 20 20 77 68 69 6C 65 20 28 2A s1;.. while (*
00A490: 73 29 0D 0A 20 20 20 20 7B 0D 0A 20 20 20 20 20 s).. {..
00A4A0: 20 69 66 20 28 73 74 72 63 68 72 28 73 32 2C 20 if (strchr(s2,
00A4B0: 2A 73 29 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 *s)) break;..
00A4C0: 20 20 20 2B 2B 73 3B 0D 0A 20 20 20 20 7D 0D 0A ++s;.. }..
00A4D0: 20 20 72 65 74 75 72 6E 20 73 20 2D 20 73 31 3B return s - s1;
00A4E0: 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 63 68 61 72 20 ..}........char
00A4F0: 2A 73 74 72 63 68 72 28 73 2C 20 63 29 0D 0A 20 *strchr(s, c)..
00A500: 20 63 68 61 72 20 2A 73 2C 20 63 3B 0D 0A 7B 0D char *s, c;..{.
00A510: 0A 20 20 64 6F 0D 0A 20 20 20 20 7B 0D 0A 20 20 . do.. {..
00A520: 20 20 20 20 69 66 20 28 2A 73 20 3D 3D 20 63 29 if (*s == c)
00A530: 20 72 65 74 75 72 6E 20 73 3B 0D 0A 20 20 20 20 return s;..
00A540: 20 20 69 66 20 28 20 21 20 2A 73 29 20 20 20 72 if ( ! *s) r
00A550: 65 74 75 72 6E 20 4E 55 4C 4C 3B 0D 0A 20 20 20 eturn NULL;..
00A560: 20 20 20 2B 2B 73 3B 0D 0A 20 20 20 20 7D 0D 0A ++s;.. }..
00A570: 20 20 77 68 69 6C 65 20 28 54 52 55 45 29 3B 0D while (TRUE);.
00A580: 0A 7D 0D 0A 0D 0A 0D 0A 63 68 61 72 20 2A 73 74 .}......char *st
00A590: 72 72 63 68 72 28 73 2C 20 63 29 0D 0A 20 20 63 rrchr(s, c).. c
00A5A0: 68 61 72 20 2A 73 2C 20 63 3B 0D 0A 7B 0D 0A 20 har *s, c;..{..
00A5B0: 20 73 74 61 74 69 63 20 63 68 61 72 20 2A 74 3B static char *t;
00A5C0: 0D 0A 0D 0A 20 20 74 20 3D 20 73 3B 0D 0A 20 20 .... t = s;..
00A5D0: 73 20 3D 20 4E 55 4C 4C 3B 0D 0A 20 20 64 6F 20 s = NULL;.. do
00A5E0: 20 20 20 69 66 20 28 2A 74 20 3D 3D 20 63 29 20 if (*t == c)
00A5F0: 73 20 3D 20 74 3B 0D 0A 20 20 77 68 69 6C 65 20 s = t;.. while
00A600: 0A 20 20 72 65 74 75 72 6E 20 20 73 69 67 6E 20 . return sign
00A610: 2A 20 76 61 6C 75 65 3B 0D 0A 7D 0D 0A 0D 0A 0D * value;..}.....
00A620: 0A 0D 0A 0D 0A 2F 2A 20 20 53 6F 72 74 69 6E 67 ...../* Sorting
00A630: 20 66 75 6E 63 74 69 6F 6E 20 2D 20 61 20 53 68 function - a Sh
00A640: 65 6C 6C 20 73 6F 72 74 20 20 2A 2F 0D 0A 0D 0A ell sort */....
00A650: 76 6F 69 64 20 71 73 6F 72 74 28 6C 69 73 74 2C void qsort(list,
00A660: 20 6E 75 6D 5F 69 74 65 6D 73 2C 20 73 69 7A 65 num_items, size
00A670: 2C 20 63 6D 70 5F 66 75 6E 63 29 0D 0A 20 20 63 , cmp_func).. c
00A680: 68 61 72 20 2A 6C 69 73 74 3B 0D 0A 20 20 69 6E har *list;.. in
00A690: 74 20 20 20 6E 75 6D 5F 69 74 65 6D 73 2C 20 73 t num_items, s
00A6A0: 69 7A 65 3B 0D 0A 20 20 69 6E 74 20 28 2A 63 6D ize;.. int (*cm
00A6B0: 70 5F 66 75 6E 63 29 28 29 3B 0D 0A 7B 0D 0A 20 p_func)();..{..
00A6C0: 20 73 74 61 74 69 63 20 75 6E 73 69 67 6E 65 64 static unsigned
00A6D0: 20 67 61 70 2C 20 62 79 74 65 5F 67 61 70 2C 20 gap, byte_gap,
00A6E0: 69 3B 0D 0A 20 20 73 74 61 74 69 63 20 63 68 61 i;.. static cha
00A6F0: 72 20 2A 70 3B 0D 0A 0D 0A 20 20 66 6F 72 20 28 r *p;.... for (
00A700: 67 61 70 20 3D 20 6E 75 6D 5F 69 74 65 6D 73 20 gap = num_items
00A710: 3E 3E 20 31 3B 20 20 67 61 70 20 3E 20 30 3B 20 >> 1; gap > 0;
00A720: 20 67 61 70 20 3E 3E 3D 20 31 29 0D 0A 20 20 20 gap >>= 1)..
00A730: 20 7B 0D 0A 20 20 20 20 20 20 62 79 74 65 5F 67 {.. byte_g
00A740: 61 70 20 3D 20 67 61 70 20 2A 20 73 69 7A 65 3B ap = gap * size;
00A750: 0D 0A 20 20 20 20 20 20 66 6F 72 20 28 69 20 3D .. for (i =
00A760: 20 67 61 70 3B 20 20 69 20 3C 20 6E 75 6D 5F 69 gap; i < num_i
00A770: 74 65 6D 73 3B 20 20 2B 2B 69 29 0D 0A 20 20 20 tems; ++i)..
00A780: 20 20 20 20 20 66 6F 72 20 28 70 20 3D 20 6C 69 for (p = li
00A790: 73 74 20 2B 20 69 20 2A 20 73 69 7A 65 20 2D 20 st + i * size -
00A7A0: 62 79 74 65 5F 67 61 70 3B 20 20 70 20 3E 3D 20 byte_gap; p >=
00A7B0: 6C 69 73 74 3B 20 20 70 20 2D 3D 20 62 79 74 65 list; p -= byte
00A7C0: 5F 67 61 70 29 0D 0A 20 20 20 20 20 20 20 20 20 _gap)..
00A7D0: 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 {..
00A7E0: 69 66 20 28 28 2A 63 6D 70 5F 66 75 6E 63 29 28 if ((*cmp_func)(
00A7F0: 70 2C 20 70 20 2B 20 62 79 74 65 5F 67 61 70 29 p, p + byte_gap)
00A800: 28 2A 73 2B 2B 29 3B 0D 0A 20 20 72 65 74 75 72 (*s++);.. retur
00A810: 6E 20 73 3B 0D 0A 7D 0D 0A 0D 0A 20 0D 0A 0D 0A n s;..}.... ....
00A820: 0D 0A 2F 2A 20 20 43 68 61 72 61 63 74 65 72 20 ../* Character
00A830: 54 65 73 74 20 61 6E 64 20 4D 61 6E 69 70 75 6C Test and Manipul
00A840: 61 74 65 20 46 75 6E 63 74 69 6F 6E 73 20 20 2A ate Functions *
00A850: 2F 0D 0A 0D 0A 2F 2A 20 20 4E 42 20 2D 20 74 68 /..../* NB - th
00A860: 65 20 63 6F 6D 6D 6F 6E 20 6F 6E 65 73 20 61 72 e common ones ar
00A870: 65 20 62 75 69 6C 74 2D 69 6E 20 66 6F 72 20 65 e built-in for e
00A880: 66 66 69 63 69 65 6E 63 79 20 20 2A 2F 0D 0A 0D fficiency */...
00A890: 0A 69 6E 74 20 69 73 70 75 6E 63 74 28 63 29 0D .int ispunct(c).
00A8A0: 0A 20 20 63 68 61 72 20 63 3B 0D 0A 7B 0D 0A 20 . char c;..{..
00A8B0: 20 72 65 74 75 72 6E 20 20 69 73 70 72 69 6E 74 return isprint
00A8C0: 28 63 29 20 26 20 21 20 69 73 61 6C 6E 75 6D 28 (c) & ! isalnum(
00A8D0: 63 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 69 6E 74 20 c);..}......int
00A8E0: 69 73 61 6C 6E 75 6D 28 63 29 0D 0A 20 20 63 68 isalnum(c).. ch
00A8F0: 61 72 20 63 3B 0D 0A 7B 0D 0A 20 20 72 65 74 75 ar c;..{.. retu
00A900: 72 6E 20 20 69 73 61 6C 70 68 61 28 63 29 20 7C rn isalpha(c) |
00A910: 20 69 73 64 69 67 69 74 28 63 29 20 3B 0D 0A 7D isdigit(c) ;..}
00A920: 0D 0A 0D 0A 0D 0A 69 6E 74 20 69 73 78 64 69 67 ......int isxdig
00A930: 69 74 28 63 29 0D 0A 20 20 63 68 61 72 20 63 3B it(c).. char c;
00A940: 0D 0A 7B 0D 0A 20 20 63 20 3D 20 74 6F 75 70 70 ..{.. c = toupp
00A950: 65 72 28 63 29 3B 0D 0A 20 20 72 65 74 75 72 6E er(c);.. return
00A960: 20 20 69 73 64 69 67 69 74 28 63 29 20 7C 20 28 isdigit(c) | (
00A970: 63 20 3E 3D 20 27 41 27 20 20 26 20 20 63 20 3C c >= 'A' & c <
00A980: 3D 20 27 46 27 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A = 'F');..}......
00A990: 69 6E 74 20 69 73 61 73 63 69 69 28 63 29 0D 0A int isascii(c)..
00A9A0: 20 20 63 68 61 72 20 63 3B 0D 0A 7B 0D 0A 20 20 char c;..{..
00A9B0: 72 65 74 75 72 6E 20 20 63 20 3C 20 30 78 38 30 return c < 0x80
00A9C0: 20 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 69 6E 74 20 69 ;..}......int i
00A9D0: 73 63 6E 74 72 6C 28 63 29 0D 0A 20 20 63 68 61 scntrl(c).. cha
00A9E0: 72 20 63 3B 0D 0A 7B 0D 0A 20 20 72 65 74 75 72 r c;..{.. retur
00A9F0: 6E 20 20 63 20 3C 20 27 20 27 20 7C 20 63 20 3D n c < ' ' | c =
00AA00: 20 3C 3D 20 30 29 20 62 72 65 61 6B 3B 0D 0A 20 <= 0) break;..
00AA10: 20 20 20 20 20 20 20 20 20 20 20 73 77 61 70 28 swap(
00AA20: 70 2C 20 70 20 2B 20 62 79 74 65 5F 67 61 70 2C p, p + byte_gap,
00AA30: 20 73 69 7A 65 29 3B 0D 0A 20 20 20 20 20 20 20 size);..
00AA40: 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 7D 0D 0A }.. }..}..
00AA50: 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 74 72 69 ......../* Stri
00AA60: 6E 67 20 48 61 6E 64 6C 69 6E 67 20 46 75 6E 63 ng Handling Func
00AA70: 74 69 6F 6E 73 20 20 2A 2F 0D 0A 0D 0A 0D 0A 63 tions */......c
00AA80: 68 61 72 20 2A 73 74 72 63 61 74 28 62 61 73 65 har *strcat(base
00AA90: 2C 20 61 64 64 29 0D 0A 20 20 63 68 61 72 20 2A , add).. char *
00AAA0: 62 61 73 65 2C 20 2A 61 64 64 3B 0D 0A 7B 0D 0A base, *add;..{..
00AAB0: 20 20 73 74 61 74 69 63 20 63 68 61 72 20 2A 64 static char *d
00AAC0: 65 73 74 3B 0D 0A 0D 0A 20 20 64 65 73 74 20 3D est;.... dest =
00AAD0: 20 62 61 73 65 3B 0D 0A 20 20 77 68 69 6C 65 20 base;.. while
00AAE0: 28 2A 64 65 73 74 29 20 2B 2B 64 65 73 74 3B 0D (*dest) ++dest;.
00AAF0: 0A 20 20 77 68 69 6C 65 20 28 2A 64 65 73 74 2B . while (*dest+
00AB00: 2B 20 3D 20 2A 61 64 64 2B 2B 29 3B 0D 0A 20 20 + = *add++);..
00AB10: 72 65 74 75 72 6E 20 20 62 61 73 65 3B 0D 0A 7D return base;..}
00AB20: 0D 0A 0D 0A 0D 0A 63 68 61 72 20 2A 73 74 72 6E ......char *strn
00AB30: 63 61 74 28 73 31 2C 20 73 32 2C 20 6E 29 0D 0A cat(s1, s2, n)..
00AB40: 20 20 63 68 61 72 20 2A 73 31 2C 20 2A 73 32 3B char *s1, *s2;
00AB50: 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 63 68 ..{.. static ch
00AB60: 61 72 20 2A 73 3B 0D 0A 0D 0A 20 20 73 20 3D 20 ar *s;.... s =
00AB70: 73 31 3B 0D 0A 20 20 77 68 69 6C 65 20 28 2A 73 s1;.. while (*s
00AB80: 29 20 2B 2B 73 3B 0D 0A 20 20 77 68 69 6C 65 20 ) ++s;.. while
00AB90: 28 6E 2D 2D 20 20 26 26 20 20 2A 73 32 29 20 2A (n-- && *s2) *
00ABA0: 73 2B 2B 20 3D 20 2A 73 32 2B 2B 3B 0D 0A 20 20 s++ = *s2++;..
00ABB0: 2A 73 20 3D 20 4E 55 4C 4C 3B 0D 0A 20 20 72 65 *s = NULL;.. re
00ABC0: 74 75 72 6E 20 73 31 3B 0D 0A 7D 0D 0A 0D 0A 0D turn s1;..}.....
00ABD0: 0A 69 6E 74 20 73 74 72 63 6D 70 28 73 2C 20 74 .int strcmp(s, t
00ABE0: 29 0D 0A 20 20 63 68 61 72 20 2A 73 2C 20 2A 74 ).. char *s, *t
00ABF0: 3B 0D 0A 7B 0D 0A 20 20 77 68 69 6C 65 20 28 2A ;..{.. while (*
00AC00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00AC10: 09 00 00 00 02 09 4E E5 09 00 41 02 00 00 00 02 ......N...A.....
00AC20: 09 00 46 02 00 00 00 02 09 00 42 02 00 00 00 02 ..F.......B.....
00AC30: 09 00 47 02 00 00 00 02 09 00 43 02 00 00 00 02 ..G.......C.....
00AC40: 09 00 48 02 00 00 00 02 09 00 44 02 00 00 00 02 ..H.......D.....
00AC50: 09 00 49 02 00 00 00 02 09 00 45 02 00 00 00 02 ..I.......E.....
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: 3D 20 27 5C 31 37 37 27 20 3B 0D 0A 7D 0D 0A 0D = '\177' ;..}...
00AD10: 0A 0D 0A 69 6E 74 20 69 73 70 72 69 6E 74 28 63 ...int isprint(c
00AD20: 29 0D 0A 20 20 63 68 61 72 20 63 3B 0D 0A 7B 0D ).. char c;..{.
00AD30: 0A 20 20 72 65 74 75 72 6E 20 20 63 20 3E 3D 20 . return c >=
00AD40: 27 20 27 20 20 26 20 20 63 20 3C 20 27 5C 31 37 ' ' & c < '\17
00AD50: 37 27 20 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 69 6E 74 7' ;..}......int
00AD60: 20 69 73 67 72 61 70 68 28 63 29 0D 0A 20 20 63 isgraph(c).. c
00AD70: 68 61 72 20 63 3B 0D 0A 7B 0D 0A 20 20 72 65 74 har c;..{.. ret
00AD80: 75 72 6E 20 20 63 20 3E 20 27 20 27 20 20 26 20 urn c > ' ' &
00AD90: 20 63 20 3C 20 27 5C 31 37 37 27 20 3B 0D 0A 7D c < '\177' ;..}
00ADA0: 0D 0A 0D 0A 0D 0A 69 6E 74 20 74 6F 61 73 63 69 ......int toasci
00ADB0: 69 28 63 29 0D 0A 20 20 63 68 61 72 20 63 3B 0D i(c).. char c;.
00ADC0: 0A 7B 0D 0A 20 20 72 65 74 75 72 6E 20 20 63 20 .{.. return c
00ADD0: 26 20 30 78 37 46 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A & 0x7F;..}......
00ADE0: 0D 0A 2F 2A 2A 2A 2A 2A 2A 20 20 20 20 20 20 46 ../****** F
00ADF0: 49 4C 45 20 53 59 53 54 45 4D 20 20 20 20 20 20 ILE SYSTEM
00AE00: 2A 2A 2A 2A 2A 2A 2F 0D 0A 0D 0A 0D 0A 63 68 61 ******/......cha
00AE10: 72 20 2A 66 67 65 74 73 28 73 2C 20 6E 2C 20 66 r *fgets(s, n, f
00AE20: 70 29 0D 0A 20 20 63 68 61 72 20 2A 73 3B 0D 0A p).. char *s;..
00AE30: 20 20 69 6E 74 20 20 20 6E 3B 0D 0A 20 20 46 49 int n;.. FI
00AE40: 4C 45 20 2A 66 70 3B 0D 0A 7B 0D 0A 20 20 73 74 LE *fp;..{.. st
00AE50: 61 74 69 63 20 69 6E 74 20 63 3B 0D 0A 20 20 73 atic int c;.. s
00AE60: 74 61 74 69 63 20 63 68 61 72 20 2A 63 73 3B 0D tatic char *cs;.
00AE70: 0A 0D 0A 20 20 63 73 20 3D 20 73 3B 0D 0A 20 20 ... cs = s;..
00AE80: 77 68 69 6C 65 20 28 2D 2D 6E 20 3E 20 30 20 20 while (--n > 0
00AE90: 26 26 20 20 28 63 20 3D 20 67 65 74 63 28 66 70 && (c = getc(fp
00AEA0: 29 29 20 21 3D 20 45 4F 46 29 0D 0A 20 20 20 20 )) != EOF)..
00AEB0: 69 66 20 28 28 2A 63 73 2B 2B 20 3D 20 63 29 20 if ((*cs++ = c)
00AEC0: 3D 3D 20 27 5C 6E 27 29 20 62 72 65 61 6B 3B 0D == '\n') break;.
00AED0: 0A 20 20 2A 63 73 20 3D 20 27 5C 30 27 3B 0D 0A . *cs = '\0';..
00AEE0: 20 20 72 65 74 75 72 6E 20 28 28 63 20 3D 3D 20 return ((c ==
00AEF0: 45 4F 46 20 20 26 26 20 20 63 73 20 3D 3D 20 73 EOF && cs == s
00AF00: 20 20 20 20 20 71 2D 3E 5F 73 69 7A 65 20 2B 3D q->_size +=
00AF10: 20 70 2D 3E 5F 73 69 7A 65 3B 0D 0A 20 20 20 20 p->_size;..
00AF20: 20 20 71 2D 3E 5F 70 74 72 20 20 20 3D 20 70 2D q->_ptr = p-
00AF30: 3E 5F 70 74 72 3B 0D 0A 20 20 20 20 7D 0D 0A 20 >_ptr;.. }..
00AF40: 20 65 6C 73 65 20 20 71 2D 3E 5F 70 74 72 20 3D else q->_ptr =
00AF50: 20 70 3B 0D 0A 0D 0A 20 20 5F 61 6C 6C 6F 63 70 p;.... _allocp
00AF60: 20 3D 20 71 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 23 64 = q;..}......#d
00AF70: 65 66 69 6E 65 20 48 45 41 50 53 49 5A 45 20 31 efine HEAPSIZE 1
00AF80: 30 30 30 0D 0A 0D 0A 63 68 61 72 20 2A 73 62 72 000....char *sbr
00AF90: 6B 28 6E 29 0D 0A 20 20 75 6E 73 69 67 6E 65 64 k(n).. unsigned
00AFA0: 20 6E 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 n;..{.. static
00AFB0: 20 63 68 61 72 20 2A 70 2C 0D 0A 20 20 20 20 68 char *p,.. h
00AFC0: 65 61 70 5B 48 45 41 50 53 49 5A 45 5D 2C 0D 0A eap[HEAPSIZE],..
00AFD0: 20 20 20 20 2A 68 65 61 70 5F 70 74 72 3D 68 65 *heap_ptr=he
00AFE0: 61 70 3B 0D 0A 0D 0A 20 20 69 66 20 28 68 65 61 ap;.... if (hea
00AFF0: 70 5F 70 74 72 2B 6E 20 3E 20 68 65 61 70 2B 48 p_ptr+n > heap+H
00B000: 45 41 50 53 49 5A 45 29 20 72 65 74 75 72 6E 20 EAPSIZE) return
00B010: 45 52 52 4F 52 3B 0D 0A 20 20 70 3D 68 65 61 70 ERROR;.. p=heap
00B020: 5F 70 74 72 3B 0D 0A 20 20 68 65 61 70 5F 70 74 _ptr;.. heap_pt
00B030: 72 20 2B 3D 20 6E 3B 0D 0A 20 20 72 65 74 75 72 r += n;.. retur
00B040: 6E 20 70 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 65 78 69 n p;..}......exi
00B050: 74 28 6E 29 0D 0A 7B 0D 0A 20 20 66 63 6C 6F 73 t(n)..{.. fclos
00B060: 65 28 39 29 3B 0D 0A 20 20 66 63 6C 6F 73 65 28 e(9);.. fclose(
00B070: 31 30 29 3B 0D 0A 20 20 5F 65 78 69 74 28 6E 29 10);.. _exit(n)
00B080: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 5F 65 78 69 74 28 ;..}......_exit(
00B090: 6E 29 0D 0A 7B 0D 0A 20 20 69 66 20 28 6E 29 20 n)..{.. if (n)
00B0A0: 70 72 69 6E 74 66 28 22 5C 6E 45 52 52 4F 52 20 printf("\nERROR
00B0B0: 45 58 49 54 20 25 64 22 2C 20 6E 29 3B 0D 0A 20 EXIT %d", n);..
00B0C0: 20 65 6C 73 65 20 70 72 69 6E 74 66 28 22 5C 6E else printf("\n
00B0D0: 45 58 49 54 20 4F 4B 22 29 3B 0D 0A 20 20 70 72 EXIT OK");.. pr
00B0E0: 69 6E 74 66 28 22 5C 6E 50 6C 65 61 73 65 20 70 intf("\nPlease p
00B0F0: 72 65 73 73 20 61 6E 79 20 6B 65 79 22 29 3B 0D ress any key");.
00B100: 29 20 3F 20 4E 55 4C 4C 20 3A 20 73 29 3B 0D 0A ) ? NULL : s);..
00B110: 7D 0D 0A 0D 0A 0D 0A 0D 0A 63 68 61 72 20 2A 67 }........char *g
00B120: 65 74 73 28 73 29 0D 0A 20 20 63 68 61 72 20 2A ets(s).. char *
00B130: 73 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 s;..{.. static
00B140: 69 6E 74 20 20 20 63 3B 0D 0A 20 20 73 74 61 74 int c;.. stat
00B150: 69 63 20 63 68 61 72 20 2A 63 73 3B 0D 0A 0D 0A ic char *cs;....
00B160: 20 20 63 73 20 3D 20 73 3B 0D 0A 20 20 77 68 69 cs = s;.. whi
00B170: 6C 65 20 28 28 63 20 3D 20 67 65 74 63 68 61 72 le ((c = getchar
00B180: 28 29 29 0D 0A 20 20 20 20 21 3D 45 4F 46 20 20 ()).. !=EOF
00B190: 26 26 20 20 63 21 3D 27 5C 6E 27 29 0D 0A 20 20 && c!='\n')..
00B1A0: 20 20 20 20 2A 63 73 2B 2B 20 3D 20 63 3B 0D 0A *cs++ = c;..
00B1B0: 20 20 2A 63 73 20 3D 20 30 3B 0D 0A 20 20 72 65 *cs = 0;.. re
00B1C0: 74 75 72 6E 0D 0A 20 20 20 28 28 63 3D 3D 2D 31 turn.. ((c==-1
00B1D0: 20 26 26 20 63 73 3D 3D 73 29 20 3F 0D 0A 20 20 && cs==s) ?..
00B1E0: 20 20 4E 55 4C 4C 20 3A 20 73 20 29 3B 0D 0A 7D NULL : s );..}
00B1F0: 0D 0A 0D 0A 0D 0A 0D 0A 76 6F 69 64 20 66 70 75 ........void fpu
00B200: 74 73 28 73 2C 20 66 70 29 0D 0A 20 20 63 68 61 ts(s, fp).. cha
00B210: 72 20 2A 73 3B 0D 0A 20 20 46 49 4C 45 20 2A 66 r *s;.. FILE *f
00B220: 70 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 p;..{.. static
00B230: 69 6E 74 20 63 3B 0D 0A 0D 0A 20 20 77 68 69 6C int c;.... whil
00B240: 65 20 28 63 20 3D 20 2A 73 2B 2B 29 20 70 75 74 e (c = *s++) put
00B250: 63 28 63 2C 20 66 70 29 3B 0D 0A 7D 0D 0A 0D 0A c(c, fp);..}....
00B260: 0D 0A 0D 0A 76 6F 69 64 20 70 75 74 73 28 73 29 ....void puts(s)
00B270: 0D 0A 20 20 63 68 61 72 20 2A 73 3B 0D 0A 7B 0D .. char *s;..{.
00B280: 0A 20 73 74 61 74 69 63 20 69 6E 74 20 63 3B 0D . static int c;.
00B290: 0A 0D 0A 20 77 68 69 6C 65 28 63 20 3D 20 2A 73 ... while(c = *s
00B2A0: 2B 2B 29 70 75 74 63 68 61 72 28 63 29 3B 0D 0A ++)putchar(c);..
00B2B0: 20 70 75 74 63 68 61 72 28 27 5C 6E 27 29 3B 0D putchar('\n');.
00B2C0: 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 .}........../*
00B2D0: 53 74 6F 72 61 67 65 20 41 6C 6C 6F 63 61 74 69 Storage Allocati
00B2E0: 6F 6E 20 61 6E 64 20 46 72 65 65 69 6E 67 20 28 on and Freeing (
00B2F0: 48 65 61 70 20 4D 61 6E 61 67 65 6D 65 6E 74 29 Heap Management)
00B300: 0A 20 20 72 61 77 69 6E 28 29 3B 0D 0A 20 20 69 . rawin();.. i
00B310: 6E 6C 69 6E 65 28 30 78 43 33 2C 20 36 37 2C 30 nline(0xC3, 67,0
00B320: 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 50 );..}....../* P
00B330: 73 65 75 64 6F 2D 52 61 6E 64 6F 6D 20 4E 75 6D seudo-Random Num
00B340: 62 65 72 20 47 65 6E 65 72 61 74 6F 72 20 20 2A ber Generator *
00B350: 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 41 64 61 70 74 /../*.. Adapt
00B360: 65 64 20 66 72 6F 6D 20 22 4C 65 61 72 6E 69 6E ed from "Learnin
00B370: 67 20 74 6F 20 50 72 6F 67 72 61 6D 20 69 6E 20 g to Program in
00B380: 43 22 20 62 79 20 54 68 6F 6D 61 73 20 50 6C 75 C" by Thomas Plu
00B390: 6D 2E 0D 0A 2A 2F 0D 0A 0D 0A 0D 0A 63 68 61 72 m...*/......char
00B3A0: 20 20 5F 72 6E 75 6D 5B 34 5D 3B 0D 0A 0D 0A 0D _rnum[4];.....
00B3B0: 0A 76 6F 69 64 20 73 72 61 6E 64 28 6E 29 0D 0A .void srand(n)..
00B3C0: 7B 0D 0A 20 20 6C 6F 6E 67 5F 69 6E 69 74 28 5F {.. long_init(_
00B3D0: 72 6E 75 6D 2C 20 30 2C 6E 29 3B 0D 0A 7D 0D 0A rnum, 0,n);..}..
00B3E0: 0D 0A 0D 0A 69 6E 74 20 72 61 6E 64 28 29 0D 0A ....int rand()..
00B3F0: 7B 0D 0A 20 20 73 74 61 74 69 63 20 63 68 61 72 {.. static char
00B400: 20 6B 5B 34 5D 3B 0D 0A 0D 0A 20 20 6C 6F 6E 67 k[4];.... long
00B410: 5F 69 6E 69 74 28 6B 2C 20 20 30 78 34 31 63 36 _init(k, 0x41c6
00B420: 2C 30 78 34 65 36 64 29 3B 0D 0A 20 20 6C 6F 6E ,0x4e6d);.. lon
00B430: 67 5F 6D 75 6C 74 69 70 6C 79 28 5F 72 6E 75 6D g_multiply(_rnum
00B440: 2C 20 5F 72 6E 75 6D 2C 20 6B 29 3B 0D 0A 20 20 , _rnum, k);..
00B450: 6C 6F 6E 67 5F 69 6E 69 74 28 6B 2C 20 20 20 20 long_init(k,
00B460: 20 20 20 30 2C 30 78 33 30 33 39 29 3B 0D 0A 20 0,0x3039);..
00B470: 20 6C 6F 6E 67 5F 61 64 64 28 5F 72 6E 75 6D 2C long_add(_rnum,
00B480: 20 5F 72 6E 75 6D 2C 20 6B 29 3B 0D 0A 20 20 72 _rnum, k);.. r
00B490: 65 74 75 72 6E 20 20 28 28 5F 72 6E 75 6D 5B 33 eturn ((_rnum[3
00B4A0: 5D 20 3C 3C 20 38 29 20 20 2B 20 20 5F 72 6E 75 ] << 8) + _rnu
00B4B0: 6D 5B 32 5D 29 20 26 20 30 78 37 46 46 46 3B 0D m[2]) & 0x7FFF;.
00B4C0: 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 .}........../*
00B4D0: 53 6F 6D 65 20 46 75 6E 63 74 69 6F 6E 73 20 66 Some Functions f
00B4E0: 6F 72 20 33 32 20 62 69 74 20 69 6E 74 65 67 65 or 32 bit intege
00B4F0: 72 20 61 72 69 74 68 6D 65 74 69 63 20 20 2A 2F r arithmetic */
00B500: 20 20 2A 2F 0D 0A 0D 0A 0D 0A 63 68 61 72 20 2A */......char *
00B510: 63 61 6C 6C 6F 63 28 6E 2C 20 73 69 7A 65 29 0D calloc(n, size).
00B520: 0A 20 20 75 6E 73 69 67 6E 65 64 20 20 20 6E 2C . unsigned n,
00B530: 20 73 69 7A 65 3B 0D 0A 7B 0D 0A 20 20 73 74 61 size;..{.. sta
00B540: 74 69 63 20 48 45 41 44 45 52 20 20 2A 70 2C 20 tic HEADER *p,
00B550: 2A 71 3B 0D 0A 20 20 73 74 61 74 69 63 20 75 6E *q;.. static un
00B560: 73 69 67 6E 65 64 20 20 6E 62 79 74 65 73 3B 0D signed nbytes;.
00B570: 0A 20 20 63 68 61 72 20 2A 73 62 72 6B 28 29 3B . char *sbrk();
00B580: 0D 0A 0D 0A 20 20 6E 62 79 74 65 73 20 3D 20 28 .... nbytes = (
00B590: 6E 20 2A 20 73 69 7A 65 20 2B 20 28 73 69 7A 65 n * size + (size
00B5A0: 6F 66 28 48 45 41 44 45 52 29 20 2D 20 31 29 29 of(HEADER) - 1))
00B5B0: 20 2F 20 73 69 7A 65 6F 66 28 48 45 41 44 45 52 / sizeof(HEADER
00B5C0: 29 20 2B 20 31 3B 0D 0A 20 20 69 66 20 28 28 71 ) + 1;.. if ((q
00B5D0: 20 3D 20 5F 61 6C 6C 6F 63 70 29 20 3D 3D 20 4E = _allocp) == N
00B5E0: 55 4C 4C 29 20 20 2F 2A 20 6E 6F 20 66 72 65 65 ULL) /* no free
00B5F0: 20 6C 69 73 74 20 2A 2F 0D 0A 20 20 20 20 7B 0D list */.. {.
00B600: 0A 20 20 20 20 20 20 5F 62 61 73 65 2E 5F 70 74 . _base._pt
00B610: 72 20 20 3D 20 5F 61 6C 6C 6F 63 70 20 3D 20 71 r = _allocp = q
00B620: 20 3D 20 26 5F 62 61 73 65 3B 0D 0A 20 20 20 20 = &_base;..
00B630: 20 20 5F 62 61 73 65 2E 5F 73 69 7A 65 20 3D 20 _base._size =
00B640: 30 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 70 20 3D 0;.. }.. p =
00B650: 20 71 2D 3E 5F 70 74 72 3B 0D 0A 20 20 77 68 69 q->_ptr;.. whi
00B660: 6C 65 20 28 54 52 55 45 29 0D 0A 20 20 20 20 7B le (TRUE).. {
00B670: 0D 0A 20 20 20 20 20 20 69 66 20 28 70 2D 3E 5F .. if (p->_
00B680: 73 69 7A 65 20 3E 3D 20 6E 62 79 74 65 73 29 20 size >= nbytes)
00B690: 20 2F 2A 20 62 69 67 20 65 6E 6F 75 67 68 20 2A /* big enough *
00B6A0: 2F 0D 0A 20 20 20 20 20 20 20 20 7B 0D 0A 20 20 /.. {..
00B6B0: 20 20 20 20 20 20 20 20 69 66 20 28 70 2D 3E 5F if (p->_
00B6C0: 73 69 7A 65 20 3D 3D 20 6E 62 79 74 65 73 29 20 size == nbytes)
00B6D0: 20 71 2D 3E 5F 70 74 72 20 3D 20 70 2D 3E 5F 70 q->_ptr = p->_p
00B6E0: 74 72 3B 20 20 2F 2A 20 6A 75 73 74 20 72 69 67 tr; /* just rig
00B6F0: 68 74 20 73 69 7A 65 20 2A 2F 0D 0A 20 20 20 20 ht size */..
00B700: 0D 0A 0D 0A 76 6F 69 64 20 6C 6F 6E 67 5F 6D 75 ....void long_mu
00B710: 6C 74 69 70 6C 79 28 63 2C 20 61 2C 20 62 29 0D ltiply(c, a, b).
00B720: 0A 20 20 63 68 61 72 20 2A 61 2C 20 2A 62 2C 20 . char *a, *b,
00B730: 2A 63 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 *c;..{.. static
00B740: 20 63 68 61 72 20 78 5B 34 5D 2C 20 70 72 6F 64 char x[4], prod
00B750: 75 63 74 5B 34 5D 3B 0D 0A 20 20 73 74 61 74 69 uct[4];.. stati
00B760: 63 20 69 6E 74 20 69 2C 20 6A 3B 0D 0A 0D 0A 20 c int i, j;....
00B770: 20 6C 6F 6E 67 5F 73 65 74 28 70 72 6F 64 75 63 long_set(produc
00B780: 74 2C 20 30 2C 30 29 3B 0D 0A 20 20 66 6F 72 20 t, 0,0);.. for
00B790: 28 69 20 3D 20 30 3B 20 69 20 3C 20 34 3B 20 2B (i = 0; i < 4; +
00B7A0: 2B 69 29 0D 0A 20 20 20 20 66 6F 72 20 28 6A 20 +i).. for (j
00B7B0: 3D 20 69 3B 20 6A 20 3E 3D 20 30 3B 20 2D 2D 6A = i; j >= 0; --j
00B7C0: 29 0D 0A 20 20 20 20 20 20 7B 0D 0A 20 20 20 20 ).. {..
00B7D0: 20 20 20 20 6C 6F 6E 67 5F 73 65 74 28 78 2C 20 long_set(x,
00B7E0: 61 5B 69 2D 6A 5D 20 2A 20 62 5B 6A 5D 2C 20 69 a[i-j] * b[j], i
00B7F0: 29 3B 0D 0A 20 20 20 20 20 20 20 20 6C 6F 6E 67 );.. long
00B800: 5F 61 64 64 28 70 72 6F 64 75 63 74 2C 20 70 72 _add(product, pr
00B810: 6F 64 75 63 74 2C 20 78 29 3B 0D 0A 20 20 20 20 oduct, x);..
00B820: 20 20 7D 0D 0A 20 20 6C 6F 6E 67 5F 63 6F 70 79 }.. long_copy
00B830: 28 63 2C 20 70 72 6F 64 75 63 74 29 3B 0D 0A 7D (c, product);..}
00B840: 0D 0A 0D 0A 0D 0A 0D 0A 76 6F 69 64 20 6C 6F 6E ........void lon
00B850: 67 5F 61 64 64 28 63 2C 20 61 2C 20 62 29 0D 0A g_add(c, a, b)..
00B860: 20 20 63 68 61 72 20 2A 61 2C 20 2A 62 2C 20 2A char *a, *b, *
00B870: 63 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 c;..{.. static
00B880: 75 6E 73 69 67 6E 65 64 20 75 2C 20 69 3B 0D 0A unsigned u, i;..
00B890: 0D 0A 20 20 75 20 3D 20 30 3B 0D 0A 20 20 66 6F .. u = 0;.. fo
00B8A0: 72 20 28 69 20 3D 20 30 3B 20 69 20 3C 20 34 3B r (i = 0; i < 4;
00B8B0: 20 2B 2B 69 29 0D 0A 20 20 20 20 7B 0D 0A 20 20 ++i).. {..
00B8C0: 20 20 20 20 75 20 20 20 2B 3D 20 20 2A 61 2B 2B u += *a++
00B8D0: 20 20 2B 20 20 2A 62 2B 2B 3B 0D 0A 20 20 20 20 + *b++;..
00B8E0: 20 20 2A 63 2B 2B 20 3D 20 20 75 20 26 20 30 78 *c++ = u & 0x
00B8F0: 66 66 3B 0D 0A 20 20 20 20 20 20 75 20 20 3E 3E ff;.. u >>
00B900: 20 20 20 20 20 20 65 6C 73 65 0D 0A 20 20 20 20 else..
00B910: 20 20 20 20 20 20 20 20 7B 20 20 20 20 20 20 20 {
00B920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00B930: 20 20 20 2F 2A 20 73 70 6C 69 74 20 62 6C 6F 63 /* split bloc
00B940: 6B 20 61 6E 64 20 61 6C 6C 6F 63 61 74 65 20 74 k and allocate t
00B950: 61 69 6C 20 2A 2F 0D 0A 20 20 20 20 20 20 20 20 ail */..
00B960: 20 20 20 20 20 20 70 2D 3E 5F 73 69 7A 65 20 2D p->_size -
00B970: 3D 20 6E 62 79 74 65 73 3B 0D 0A 20 20 20 20 20 = nbytes;..
00B980: 20 20 20 20 20 20 20 20 20 70 20 20 20 20 20 20 p
00B990: 20 20 2B 3D 20 70 2D 3E 5F 73 69 7A 65 3B 0D 0A += p->_size;..
00B9A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 2D p-
00B9B0: 3E 5F 73 69 7A 65 20 20 3D 20 6E 62 79 74 65 73 >_size = nbytes
00B9C0: 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 7D ;.. }
00B9D0: 0D 0A 20 20 20 20 20 20 20 20 20 20 5F 61 6C 6C .. _all
00B9E0: 6F 63 70 20 3D 20 71 3B 0D 0A 20 20 20 20 20 20 ocp = q;..
00B9F0: 20 20 20 20 72 65 74 75 72 6E 20 63 61 73 74 28 return cast(
00BA00: 5F 5F 63 68 61 72 5F 70 74 72 29 20 28 70 2B 31 __char_ptr) (p+1
00BA10: 29 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 );.. }..
00BA20: 20 20 20 20 20 69 66 20 28 70 20 3D 3D 20 5F 61 if (p == _a
00BA30: 6C 6C 6F 63 70 29 20 20 2F 2A 20 77 72 61 70 70 llocp) /* wrapp
00BA40: 65 64 20 61 72 6F 75 6E 64 20 66 72 65 65 20 6C ed around free l
00BA50: 69 73 74 20 2A 2F 0D 0A 20 20 20 20 20 20 20 20 ist */..
00BA60: 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 69 66 20 {.. if
00BA70: 28 28 70 20 3D 20 63 61 73 74 28 48 45 41 44 45 ((p = cast(HEADE
00BA80: 52 5F 50 54 52 29 20 73 62 72 6B 28 6E 62 79 74 R_PTR) sbrk(nbyt
00BA90: 65 73 20 2A 20 73 69 7A 65 6F 66 28 48 45 41 44 es * sizeof(HEAD
00BAA0: 45 52 29 29 29 20 3D 3D 20 45 52 52 4F 52 29 0D ER))) == ERROR).
00BAB0: 0A 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 . ret
00BAC0: 75 72 6E 20 4E 55 4C 4C 3B 0D 0A 20 20 20 20 20 urn NULL;..
00BAD0: 20 20 20 20 20 70 2D 3E 5F 73 69 7A 65 20 3D 20 p->_size =
00BAE0: 6E 62 79 74 65 73 3B 0D 0A 20 20 20 20 20 20 20 nbytes;..
00BAF0: 20 20 20 66 72 65 65 28 70 2B 31 29 3B 0D 0A 20 free(p+1);..
00BB00: 3D 20 20 38 3B 0D 0A 20 20 20 20 7D 0D 0A 7D 0D = 8;.. }..}.
00BB10: 0A 0D 0A 0D 0A 0D 0A 76 6F 69 64 20 6C 6F 6E 67 .......void long
00BB20: 5F 69 6E 69 74 28 61 2C 20 6E 31 2C 20 6E 30 29 _init(a, n1, n0)
00BB30: 0D 0A 20 20 63 68 61 72 20 2A 61 3B 0D 0A 20 20 .. char *a;..
00BB40: 75 6E 73 69 67 6E 65 64 20 6E 31 2C 6E 30 3B 0D unsigned n1,n0;.
00BB50: 0A 7B 0D 0A 20 20 61 5B 30 5D 20 3D 20 6E 30 20 .{.. a[0] = n0
00BB60: 26 20 30 78 66 66 3B 0D 0A 20 20 61 5B 31 5D 20 & 0xff;.. a[1]
00BB70: 3D 20 6E 30 20 3E 3E 20 38 3B 0D 0A 20 20 61 5B = n0 >> 8;.. a[
00BB80: 32 5D 20 3D 20 6E 31 20 26 20 30 78 66 66 3B 0D 2] = n1 & 0xff;.
00BB90: 0A 20 20 61 5B 33 5D 20 3D 20 6E 31 20 3E 3E 20 . a[3] = n1 >>
00BBA0: 38 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 76 6F 69 8;..}........voi
00BBB0: 64 20 6C 6F 6E 67 5F 73 65 74 28 61 2C 20 6E 2C d long_set(a, n,
00BBC0: 20 64 29 0D 0A 20 20 63 68 61 72 20 2A 61 3B 0D d).. char *a;.
00BBD0: 0A 20 20 75 6E 73 69 67 6E 65 64 20 6E 2C 20 64 . unsigned n, d
00BBE0: 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 69 ;..{.. static i
00BBF0: 6E 74 20 69 3B 0D 0A 0D 0A 20 20 66 6F 72 20 28 nt i;.... for (
00BC00: 69 3D 30 3B 20 69 3C 34 3B 20 2B 2B 69 29 20 61 i=0; i<4; ++i) a
00BC10: 5B 69 5D 20 3D 20 30 3B 0D 0A 20 20 61 5B 64 5D [i] = 0;.. a[d]
00BC20: 20 3D 20 6E 20 26 20 30 78 66 66 3B 0D 0A 20 20 = n & 0xff;..
00BC30: 69 66 20 28 64 20 3C 20 33 29 20 61 5B 64 2B 31 if (d < 3) a[d+1
00BC40: 5D 20 3D 20 6E 20 3E 3E 20 38 3B 0D 0A 7D 0D 0A ] = n >> 8;..}..
00BC50: 0D 0A 0D 0A 0D 0A 76 6F 69 64 20 6C 6F 6E 67 5F ......void long_
00BC60: 63 6F 70 79 28 63 2C 20 61 29 0D 0A 20 20 63 68 copy(c, a).. ch
00BC70: 61 72 20 2A 61 2C 20 2A 63 3B 0D 0A 7B 0D 0A 20 ar *a, *c;..{..
00BC80: 20 62 6C 74 28 63 2C 20 61 2C 20 34 29 3B 0D 0A blt(c, a, 4);..
00BC90: 7D 0D 0A 0D 0A 0D 0A 23 6C 69 73 74 2B 0D 0A 0D }......#list+...
00BCA0: 0A 2F 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ./**************
00BCB0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2F ***************/
00BCC0: 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 48 69 73 ../* His
00BCD0: 6F 66 74 20 43 20 20 20 20 20 20 20 20 20 20 2A oft C *
00BCE0: 2F 0D 0A 2F 2A 20 53 74 61 6E 64 61 72 64 20 46 /../* Standard F
00BCF0: 75 6E 63 74 69 6F 6E 20 4C 69 62 72 61 72 79 20 unction Library
00BD00: 20 20 20 20 20 20 20 20 20 70 20 3D 20 5F 61 6C p = _al
00BD10: 6C 6F 63 70 3B 0D 0A 20 20 20 20 20 20 20 20 7D locp;.. }
00BD20: 0D 0A 20 20 20 20 20 20 71 20 3D 20 70 3B 0D 0A .. q = p;..
00BD30: 20 20 20 20 20 20 70 20 3D 20 70 2D 3E 5F 70 74 p = p->_pt
00BD40: 72 3B 0D 0A 20 20 20 20 7D 20 20 2F 2A 20 65 6E r;.. } /* en
00BD50: 64 20 77 68 69 6C 65 20 54 52 55 45 20 2A 2F 0D d while TRUE */.
00BD60: 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 76 6F 69 64 20 66 .}........void f
00BD70: 72 65 65 28 62 6C 6F 63 6B 29 0D 0A 20 20 63 68 ree(block).. ch
00BD80: 61 72 20 2A 62 6C 6F 63 6B 3B 0D 0A 7B 0D 0A 20 ar *block;..{..
00BD90: 20 73 74 61 74 69 63 20 48 45 41 44 45 52 20 2A static HEADER *
00BDA0: 70 2C 20 2A 71 3B 0D 0A 0D 0A 20 20 70 20 3D 20 p, *q;.... p =
00BDB0: 63 61 73 74 28 48 45 41 44 45 52 5F 50 54 52 29 cast(HEADER_PTR)
00BDC0: 20 62 6C 6F 63 6B 20 2D 20 31 3B 0D 0A 20 20 66 block - 1;.. f
00BDD0: 6F 72 20 28 71 20 3D 20 5F 61 6C 6C 6F 63 70 3B or (q = _allocp;
00BDE0: 20 21 28 70 20 3E 20 71 20 20 26 26 20 20 70 20 !(p > q && p
00BDF0: 3C 20 71 2D 3E 5F 70 74 72 29 3B 20 71 20 3D 20 < q->_ptr); q =
00BE00: 71 2D 3E 5F 70 74 72 29 0D 0A 20 20 20 20 69 66 q->_ptr).. if
00BE10: 20 28 71 20 3E 3D 20 71 2D 3E 5F 70 74 72 20 20 (q >= q->_ptr
00BE20: 26 26 20 20 28 70 20 3E 20 71 20 20 7C 7C 20 20 && (p > q ||
00BE30: 70 20 3C 20 71 2D 3E 5F 70 74 72 29 29 20 20 62 p < q->_ptr)) b
00BE40: 72 65 61 6B 3B 0D 0A 0D 0A 20 20 69 66 20 28 70 reak;.... if (p
00BE50: 20 2B 20 70 2D 3E 5F 73 69 7A 65 20 20 3D 3D 20 + p->_size ==
00BE60: 20 71 2D 3E 5F 70 74 72 29 0D 0A 20 20 20 20 7B q->_ptr).. {
00BE70: 0D 0A 20 20 20 20 20 20 70 2D 3E 5F 73 69 7A 65 .. p->_size
00BE80: 20 2B 3D 20 71 2D 3E 5F 70 74 72 2D 3E 5F 73 69 += q->_ptr->_si
00BE90: 7A 65 3B 0D 0A 20 20 20 20 20 20 70 2D 3E 5F 70 ze;.. p->_p
00BEA0: 74 72 20 20 20 3D 20 71 2D 3E 5F 70 74 72 2D 3E tr = q->_ptr->
00BEB0: 5F 70 74 72 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 _ptr;.. }..
00BEC0: 65 6C 73 65 20 20 70 2D 3E 5F 70 74 72 20 3D 20 else p->_ptr =
00BED0: 71 2D 3E 5F 70 74 72 3B 0D 0A 0D 0A 20 20 69 66 q->_ptr;.... if
00BEE0: 20 28 71 20 2B 20 71 2D 3E 5F 73 69 7A 65 20 20 (q + q->_size
00BEF0: 3D 3D 20 20 70 29 0D 0A 20 20 20 20 7B 0D 0A 20 == p).. {..
00BF00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00BF10: 0A 00 00 00 02 09 4E E5 0A 00 41 02 00 00 00 02 ......N...A.....
00BF20: 0A 00 46 02 00 00 00 02 0A 00 42 02 00 00 00 02 ..F.......B.....
00BF30: 0A 00 47 02 00 00 00 02 0A 00 43 02 00 00 00 02 ..G.......C.....
00BF40: 0A 00 48 02 00 00 00 02 0A 00 44 02 00 00 00 02 ..H.......D.....
00BF50: 0A 00 49 02 00 00 00 02 0A 00 45 02 00 00 00 02 ..I.......E.....
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: 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 20 */../*
00C010: 20 45 6E 64 20 20 20 20 20 20 20 20 20 20 20 20 End
00C020: 20 2A 2F 0D 0A 2F 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A */../**********
00C030: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
00C040: 2A 2A 2A 2F 0D 0A 0D 0A 0D 0A 1A 64 61 72 64 20 ***/.......dard
00C050: 46 75 6E 63 74 69 6F 6E 20 4C 69 62 72 61 72 79 Function Library
00C060: 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 76 65 */../* ve
00C070: 72 73 69 6F 6E 20 31 2E 32 20 20 20 20 20 20 20 rsion 1.2
00C080: 32 5D 20 3D 20 6E 31 20 26 20 30 78 66 66 3B 0D 2] = n1 & 0xff;.
00C090: 0A 20 20 61 5B 33 5D 20 3D 20 6E 31 20 3E 3E 20 . a[3] = n1 >>
00C0A0: 38 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 76 6F 69 8;..}........voi
00C0B0: 64 20 6C 6F 6E 67 5F 73 65 74 28 61 2C 20 6E 2C d long_set(a, n,
00C0C0: 20 64 29 0D 0A 20 20 63 68 61 72 20 2A 61 3B 0D d).. char *a;.
00C0D0: 0A 20 20 75 6E 73 69 67 6E 65 64 20 6E 2C 20 64 . unsigned n, d
00C0E0: 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 69 ;..{.. static i
00C0F0: 6E 74 20 69 3B 0D 0A 0D 0A 20 20 66 6F 72 20 28 nt i;.... for (
00C100: 69 3D 30 3B 20 69 3C 34 3B 20 2B 2B 69 29 20 61 i=0; i<4; ++i) a
00C110: 5B 69 5D 20 3D 20 30 3B 0D 0A 20 20 61 5B 64 5D [i] = 0;.. a[d]
00C120: 20 3D 20 6E 20 26 20 30 78 66 66 3B 0D 0A 20 20 = n & 0xff;..
00C130: 69 66 20 28 64 20 3C 20 33 29 20 61 5B 64 2B 31 if (d < 3) a[d+1
00C140: 5D 20 3D 20 6E 20 3E 3E 20 38 3B 0D 0A 7D 0D 0A ] = n >> 8;..}..
00C150: 0D 0A 0D 0A 0D 0A 76 6F 69 64 20 6C 6F 6E 67 5F ......void long_
00C160: 63 6F 70 79 28 63 2C 20 61 29 0D 0A 20 20 63 68 copy(c, a).. ch
00C170: 61 72 20 2A 61 2C 20 2A 63 3B 0D 0A 7B 0D 0A 20 ar *a, *c;..{..
00C180: 20 62 6C 74 28 63 2C 20 61 2C 20 34 29 3B 0D 0A blt(c, a, 4);..
00C190: 7D 0D 0A 0D 0A 0D 0A 23 6C 69 73 74 2B 0D 0A 0D }......#list+...
00C1A0: 0A 2F 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ./**************
00C1B0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2F ***************/
00C1C0: 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 48 69 73 ../* His
00C1D0: 6F 66 74 20 43 20 20 20 20 20 20 20 20 20 20 2A oft C *
00C1E0: 2F 0D 0A 2F 2A 20 53 74 61 6E 64 61 72 64 20 46 /../* Standard F
00C1F0: 75 6E 63 74 69 6F 6E 20 4C 69 62 72 61 72 79 20 unction Library
00C200: 3D 3D 20 27 66 27 29 20 47 5F 73 65 74 5F 70 65 == 'f') G_set_pe
00C210: 6E 28 2A 73 29 3B 0D 0A 20 20 20 20 20 20 20 20 n(*s);..
00C220: 20 20 20 20 65 6C 73 65 20 20 20 20 20 20 20 20 else
00C230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 5F G_
00C240: 73 65 74 5F 70 61 70 65 72 28 2A 73 29 3B 0D 0A set_paper(*s);..
00C250: 20 20 20 20 20 20 20 20 20 20 20 20 73 32 20 3D s2 =
00C260: 20 73 20 2B 20 31 3B 0D 0A 20 20 20 20 20 20 20 s + 1;..
00C270: 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 0D 0A 20 break;....
00C280: 20 63 61 73 65 20 27 73 27 3A 20 78 5F 73 63 61 case 's': x_sca
00C290: 6C 65 20 3D 20 64 78 3B 0D 0A 20 20 20 20 20 20 le = dx;..
00C2A0: 20 20 20 20 20 20 79 5F 73 63 61 6C 65 20 3D 20 y_scale =
00C2B0: 64 79 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 dy;..
00C2C0: 20 62 72 65 61 6B 3B 0D 0A 0D 0A 20 20 63 61 73 break;.... cas
00C2D0: 65 20 27 72 27 3A 20 68 65 61 64 69 6E 67 20 3D e 'r': heading =
00C2E0: 20 28 68 65 61 64 69 6E 67 20 2B 20 31 29 20 25 (heading + 1) %
00C2F0: 20 34 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 4;..
00C300: 20 73 32 20 3D 20 73 3B 0D 0A 20 20 20 20 20 20 s2 = s;..
00C310: 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 break;..
00C320: 20 20 7D 0D 0A 20 20 73 20 3D 20 73 32 3B 0D 0A }.. s = s2;..
00C330: 20 20 7D 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 54 5F }..}........T_
00C340: 73 65 74 5F 67 72 61 70 68 69 63 28 6F 6E 29 0D set_graphic(on).
00C350: 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 6F 6E .{.. reg_a = on
00C360: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
00C370: 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 26 72 65 LD_A_from, &re
00C380: 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 g_a,.. CALL,
00C390: 20 20 20 20 20 30 78 42 42 36 33 20 2F 2A 20 54 0xBB63 /* T
00C3A0: 58 54 5F 53 45 54 5F 47 52 41 50 48 49 43 20 2A XT_SET_GRAPHIC *
00C3B0: 2F 0D 0A 20 20 20 20 20 20 20 20 29 3B 0D 0A 7D /.. );..}
00C3C0: 0D 0A 0D 0A 0D 0A 0D 0A 54 5F 77 69 6E 5F 65 6E ........T_win_en
00C3D0: 61 62 6C 65 28 78 31 2C 78 32 2C 79 31 2C 79 32 able(x1,x2,y1,y2
00C3E0: 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D )..{.. reg_hl =
00C3F0: 20 28 78 31 20 3C 3C 20 38 29 20 2B 20 79 31 3B (x1 << 8) + y1;
00C400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C600: 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 28 78 32 .. reg_de = (x2
00C610: 20 3C 3C 20 38 29 20 2B 20 79 32 3B 0D 0A 20 20 << 8) + y2;..
00C620: 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F inline(.. LD_
00C630: 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C HL_from, ®_hl
00C640: 2C 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F ,.. LD_DE_fro
00C650: 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 m, ®_de,..
00C660: 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 CALL, 0xB
00C670: 42 36 36 20 2F 2A 20 54 58 54 5F 57 49 4E 5F 45 B66 /* TXT_WIN_E
00C680: 4E 41 42 4C 45 20 2A 2F 0D 0A 20 20 20 20 20 20 NABLE */..
00C690: 20 20 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 54 );..}........T
00C6A0: 5F 73 77 61 70 5F 73 74 72 65 61 6D 73 28 73 74 _swap_streams(st
00C6B0: 72 65 61 6D 5F 6E 75 6D 62 65 72 2C 20 61 6E 6F ream_number, ano
00C6C0: 74 68 65 72 5F 73 74 72 65 61 6D 5F 6E 75 6D 62 ther_stream_numb
00C6D0: 65 72 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 62 63 er)..{.. reg_bc
00C6E0: 20 3D 20 28 73 74 72 65 61 6D 5F 6E 75 6D 62 65 = (stream_numbe
00C6F0: 72 20 3C 3C 20 38 29 20 2B 20 61 6E 6F 74 68 65 r << 8) + anothe
00C700: 72 5F 73 74 72 65 61 6D 5F 6E 75 6D 62 65 72 3B r_stream_number;
00C710: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
00C720: 20 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 LD_BC_from, &re
00C730: 67 5F 62 63 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C g_bc,.. CALL,
00C740: 20 20 20 20 20 20 20 30 78 42 42 42 37 20 2F 2A 0xBBB7 /*
00C750: 20 54 58 54 5F 53 57 41 50 5F 53 54 52 45 41 4D TXT_SWAP_STREAM
00C760: 53 20 2A 2F 0D 0A 20 20 20 20 20 20 20 20 29 3B S */.. );
00C770: 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 54 5F 67 65 74 ..}........T_get
00C780: 5F 63 75 72 73 6F 72 28 70 78 5F 63 6F 6C 75 6D _cursor(px_colum
00C790: 6E 2C 20 70 79 5F 72 6F 77 2C 20 70 5F 72 6F 6C n, py_row, p_rol
00C7A0: 6C 5F 63 6F 75 6E 74 29 0D 0A 20 20 69 6E 74 20 l_count).. int
00C7B0: 2A 70 78 5F 63 6F 6C 75 6D 6E 2C 20 2A 70 79 5F *px_column, *py_
00C7C0: 72 6F 77 2C 20 2A 70 5F 72 6F 6C 6C 5F 63 6F 75 row, *p_roll_cou
00C7D0: 6E 74 3B 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 nt;..{.. inline
00C7E0: 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 (.. CALL,
00C7F0: 20 20 20 30 78 42 42 37 38 2C 20 2F 2A 20 54 58 0xBB78, /* TX
00C800: 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 20 20 /* * * * * *
00C810: 20 20 20 42 20 41 20 53 20 49 20 43 20 32 20 2E B A S I C 2 .
00C820: 20 4C 20 49 20 42 20 20 20 20 20 20 20 2A 20 2A L I B * *
00C830: 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 2F 2A 20 20 20 * * * */../*
00C840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C850: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C860: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C870: 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 */../*
00C880: 20 20 20 20 20 20 47 72 61 70 68 69 63 73 20 46 Graphics F
00C890: 75 6E 63 74 69 6F 6E 20 4C 69 62 72 61 72 79 20 unction Library
00C8A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2A 2F 0D */.
00C8B0: 0A 2F 2A 20 20 20 20 20 20 20 20 20 20 20 20 20 ./*
00C8C0: 20 43 6F 70 79 72 69 67 68 74 20 28 43 29 20 31 Copyright (C) 1
00C8D0: 39 38 35 20 48 49 53 4F 46 54 20 20 20 20 20 20 985 HISOFT
00C8E0: 20 20 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A 20 20 */../*
00C8F0: 20 20 20 20 20 20 20 20 20 20 20 20 4C 61 73 74 Last
00C900: 20 43 68 61 6E 67 65 64 20 20 39 20 4A 75 6E 65 Changed 9 June
00C910: 20 31 39 38 35 20 20 20 20 20 20 20 20 20 20 20 1985
00C920: 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 */../*
00C930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00C950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2A 2F */
00C960: 0D 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A ../* * * * * * *
00C970: 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A * * * * * * * *
00C980: 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A * * * * * * * *
00C990: 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 0D 0A 23 * * * * */....#
00C9A0: 6C 69 73 74 2D 0D 0A 0D 0A 64 72 61 77 28 63 6F list-....draw(co
00C9B0: 6E 74 72 6F 6C 5F 73 74 72 69 6E 67 29 0D 0A 20 ntrol_string)..
00C9C0: 20 63 68 61 72 20 2A 63 6F 6E 74 72 6F 6C 5F 73 char *control_s
00C9D0: 74 72 69 6E 67 3B 0D 0A 7B 0D 0A 23 64 65 66 69 tring;..{..#defi
00C9E0: 6E 65 20 5F 44 52 41 57 5F 53 43 41 4C 45 20 32 ne _DRAW_SCALE 2
00C9F0: 0D 0A 20 20 74 79 70 65 64 65 66 20 69 6E 74 20 .. typedef int
00CA00: 54 5F 47 45 54 5F 43 55 52 53 4F 52 20 2A 2F 0D T_GET_CURSOR */.
00CA10: 0A 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 . LD_A_into,
00CA20: 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 4C 44 ®_a,.. LD
00CA30: 5F 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 68 _HL_into, ®_h
00CA40: 6C 0D 0A 20 20 20 20 20 20 20 20 20 29 3B 0D 0A l.. );..
00CA50: 20 20 2A 70 5F 72 6F 6C 6C 5F 63 6F 75 6E 74 20 *p_roll_count
00CA60: 3D 20 72 65 67 5F 61 3B 0D 0A 20 20 2A 70 78 5F = reg_a;.. *px_
00CA70: 63 6F 6C 75 6D 6E 20 20 20 20 3D 20 28 72 65 67 column = (reg
00CA80: 5F 68 6C 20 3E 3E 20 38 29 20 26 20 30 78 46 46 _hl >> 8) & 0xFF
00CA90: 3B 0D 0A 20 20 2A 70 79 5F 72 6F 77 20 20 20 20 ;.. *py_row
00CAA0: 20 20 20 3D 20 72 65 67 5F 68 6C 20 26 20 30 78 = reg_hl & 0x
00CAB0: 46 46 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 47 5F FF;..}........G_
00CAC0: 61 73 6B 5F 63 75 72 73 6F 72 28 70 64 78 2C 20 ask_cursor(pdx,
00CAD0: 70 64 79 29 0D 0A 20 20 69 6E 74 20 2A 70 64 78 pdy).. int *pdx
00CAE0: 2C 20 2A 70 64 79 3B 0D 0A 7B 0D 0A 20 20 69 6E , *pdy;..{.. in
00CAF0: 6C 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C line(.. CALL,
00CB00: 20 20 20 20 20 20 20 30 78 42 42 43 36 2C 20 2F 0xBBC6, /
00CB10: 2A 20 47 52 41 5F 41 53 4B 5F 43 55 52 53 4F 52 * GRA_ASK_CURSOR
00CB20: 20 2A 2F 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 69 */.. LD_DE_i
00CB30: 6E 74 6F 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 nto, ®_de,..
00CB40: 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C 20 26 LD_HL_into, &
00CB50: 72 65 67 5F 68 6C 0D 0A 20 20 20 20 20 20 20 20 reg_hl..
00CB60: 29 3B 0D 0A 20 20 2A 70 64 78 20 3D 20 72 65 67 );.. *pdx = reg
00CB70: 5F 64 65 3B 20 20 2A 70 64 79 20 3D 20 72 65 67 _de; *pdy = reg
00CB80: 5F 68 6C 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 47 _hl;..}........G
00CB90: 5F 73 65 74 5F 6F 72 69 67 69 6E 28 78 2C 79 29 _set_origin(x,y)
00CBA0: 0D 0A 7B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 ..{.. reg_de =
00CBB0: 78 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 79 x;.. reg_hl = y
00CBC0: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
00CBD0: 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 LD_DE_from, &r
00CBE0: 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 48 eg_de,.. LD_H
00CBF0: 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C L_from, ®_hl,
00CC00: 20 2A 69 70 3B 0D 0A 20 20 74 79 70 65 64 65 66 *ip;.. typedef
00CC10: 20 63 68 61 72 20 2A 63 70 3B 0D 0A 20 20 73 74 char *cp;.. st
00CC20: 61 74 69 63 20 20 69 6E 74 20 20 2A 70 2C 20 63 atic int *p, c
00CC30: 2C 20 68 65 61 64 69 6E 67 2C 20 64 78 2C 20 64 , heading, dx, d
00CC40: 79 2C 20 64 58 2C 20 64 59 2C 0D 0A 20 20 20 20 y, dX, dY,..
00CC50: 78 5F 73 63 61 6C 65 20 3D 20 31 20 3C 3C 20 5F x_scale = 1 << _
00CC60: 44 52 41 57 5F 53 43 41 4C 45 2C 20 79 5F 73 63 DRAW_SCALE, y_sc
00CC70: 61 6C 65 20 3D 20 31 20 3C 3C 20 5F 44 52 41 57 ale = 1 << _DRAW
00CC80: 5F 53 43 41 4C 45 3B 0D 0A 20 20 73 74 61 74 69 _SCALE;.. stati
00CC90: 63 20 20 63 68 61 72 20 2A 73 2C 20 2A 73 32 3B c char *s, *s2;
00CCA0: 0D 0A 0D 0A 20 20 73 20 20 20 20 20 20 20 3D 20 .... s =
00CCB0: 63 6F 6E 74 72 6F 6C 5F 73 74 72 69 6E 67 3B 0D control_string;.
00CCC0: 0A 0D 0A 20 20 77 68 69 6C 65 20 28 63 20 3D 20 ... while (c =
00CCD0: 74 6F 6C 6F 77 65 72 28 2A 73 29 29 0D 0A 20 20 tolower(*s))..
00CCE0: 7B 0D 0A 20 20 20 20 20 20 2B 2B 73 3B 0D 0A 20 {.. ++s;..
00CCF0: 20 20 20 20 20 70 20 20 3D 20 63 61 73 74 28 69 p = cast(i
00CD00: 70 29 20 73 3B 0D 0A 20 20 20 20 20 20 64 58 20 p) s;.. dX
00CD10: 3D 20 2A 70 2B 2B 20 2A 20 78 5F 73 63 61 6C 65 = *p++ * x_scale
00CD20: 20 3E 3E 20 5F 44 52 41 57 5F 53 43 41 4C 45 3B >> _DRAW_SCALE;
00CD30: 0D 0A 20 20 20 20 20 20 64 59 20 3D 20 2A 70 2B .. dY = *p+
00CD40: 2B 20 2A 20 79 5F 73 63 61 6C 65 20 3E 3E 20 5F + * y_scale >> _
00CD50: 44 52 41 57 5F 53 43 41 4C 45 3B 0D 0A 20 20 20 DRAW_SCALE;..
00CD60: 20 20 20 73 32 20 3D 20 63 61 73 74 28 63 70 29 s2 = cast(cp)
00CD70: 20 70 3B 0D 0A 20 20 20 20 20 20 73 77 69 74 63 p;.. switc
00CD80: 68 20 28 68 65 61 64 69 6E 67 29 0D 0A 20 20 20 h (heading)..
00CD90: 20 7B 0D 0A 20 20 20 20 20 20 20 20 63 61 73 65 {.. case
00CDA0: 20 30 3A 20 64 78 20 3D 20 20 64 58 3B 20 64 79 0: dx = dX; dy
00CDB0: 20 3D 20 20 64 59 3B 20 62 72 65 61 6B 3B 0D 0A = dY; break;..
00CDC0: 20 20 20 20 20 20 20 20 63 61 73 65 20 31 3A 20 case 1:
00CDD0: 64 78 20 3D 20 20 64 59 3B 20 64 79 20 3D 20 2D dx = dY; dy = -
00CDE0: 64 58 3B 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 dX; break;..
00CDF0: 20 20 20 20 63 61 73 65 20 32 3A 20 64 78 20 3D case 2: dx =
00CE00: 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 .. CALL,
00CE10: 20 20 30 78 42 42 43 39 20 2F 2A 20 47 52 41 5F 0xBBC9 /* GRA_
00CE20: 53 45 54 5F 4F 52 49 47 49 4E 20 2A 2F 0D 0A 20 SET_ORIGIN */..
00CE30: 20 20 20 20 20 20 20 29 3B 0D 0A 7D 0D 0A 0D 0A );..}....
00CE40: 0D 0A 0D 0A 47 5F 77 69 6E 5F 77 69 64 74 68 28 ....G_win_width(
00CE50: 78 31 2C 78 32 29 0D 0A 7B 0D 0A 20 20 72 65 67 x1,x2)..{.. reg
00CE60: 5F 64 65 20 3D 20 78 31 3B 0D 0A 20 20 72 65 67 _de = x1;.. reg
00CE70: 5F 68 6C 20 3D 20 78 32 3B 0D 0A 20 20 69 6E 6C _hl = x2;.. inl
00CE80: 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F ine(.. LD_DE_
00CE90: 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A from, ®_de,..
00CEA0: 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 LD_HL_from,
00CEB0: 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 ®_hl,.. CA
00CEC0: 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 42 43 46 LL, 0xBBCF
00CED0: 20 2F 2A 20 47 52 41 5F 57 49 4E 5F 57 49 44 54 /* GRA_WIN_WIDT
00CEE0: 48 20 2A 2F 0D 0A 20 20 20 20 20 20 20 20 20 29 H */.. )
00CEF0: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 47 5F 77 69 ;..}........G_wi
00CF00: 6E 5F 68 65 69 67 68 74 28 79 31 2C 79 32 29 0D n_height(y1,y2).
00CF10: 0A 7B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 79 .{.. reg_de = y
00CF20: 31 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 79 1;.. reg_hl = y
00CF30: 32 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 2;.. inline(..
00CF40: 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 LD_DE_from, &
00CF50: 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F reg_de,.. LD_
00CF60: 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C HL_from, ®_hl
00CF70: 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 ,.. CALL,
00CF80: 20 20 20 30 78 42 42 44 32 20 2F 2A 20 47 52 41 0xBBD2 /* GRA
00CF90: 5F 57 49 4E 5F 48 45 49 47 48 54 20 2A 2F 0D 0A _WIN_HEIGHT */..
00CFA0: 20 20 20 20 20 20 20 20 29 3B 0D 0A 7D 0D 0A 0D );..}...
00CFB0: 0A 0D 0A 0D 0A 47 5F 63 6C 65 61 72 5F 77 69 6E .....G_clear_win
00CFC0: 64 6F 77 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 dow()..{.. inli
00CFD0: 6E 65 28 43 41 4C 4C 2C 20 30 78 42 42 44 42 29 ne(CALL, 0xBBDB)
00CFE0: 3B 20 2F 2A 20 47 52 41 5F 43 4C 45 41 52 5F 57 ; /* GRA_CLEAR_W
00CFF0: 49 4E 44 4F 57 20 2A 2F 0D 0A 7D 0D 0A 0D 0A 0D INDOW */..}.....
00D000: 20 2D 64 58 3B 20 64 79 20 3D 20 2D 64 59 3B 20 -dX; dy = -dY;
00D010: 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 20 20 break;..
00D020: 63 61 73 65 20 33 3A 20 64 78 20 3D 20 2D 64 59 case 3: dx = -dY
00D030: 3B 20 64 79 20 3D 20 20 64 58 3B 20 62 72 65 61 ; dy = dX; brea
00D040: 6B 3B 0D 0A 20 20 20 20 7D 0D 0A 0D 0A 20 20 20 k;.. }....
00D050: 20 20 20 73 77 69 74 63 68 20 28 63 29 0D 0A 20 switch (c)..
00D060: 20 20 20 7B 0D 0A 20 20 64 65 66 61 75 6C 74 3A {.. default:
00D070: 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 0D 0A 20 continue;....
00D080: 20 63 61 73 65 20 27 30 27 3A 20 47 5F 6D 6F 76 case '0': G_mov
00D090: 65 5F 61 62 73 6F 6C 75 74 65 28 30 2C 20 30 29 e_absolute(0, 0)
00D0A0: 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 73 ;.. s
00D0B0: 32 20 3D 20 73 3B 0D 0A 20 20 20 20 20 20 20 20 2 = s;..
00D0C0: 20 20 20 20 62 72 65 61 6B 3B 0D 0A 0D 0A 20 20 break;....
00D0D0: 63 61 73 65 20 27 6D 27 3A 20 47 5F 6D 6F 76 65 case 'm': G_move
00D0E0: 5F 72 65 6C 61 74 69 76 65 28 64 78 2C 20 64 79 _relative(dx, dy
00D0F0: 29 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 );..
00D100: 62 72 65 61 6B 3B 0D 0A 0D 0A 20 20 63 61 73 65 break;.... case
00D110: 20 27 70 27 3A 20 47 5F 70 6C 6F 74 5F 72 65 6C 'p': G_plot_rel
00D120: 61 74 69 76 65 28 64 78 2C 20 64 79 29 3B 0D 0A ative(dx, dy);..
00D130: 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 brea
00D140: 6B 3B 0D 0A 0D 0A 20 20 63 61 73 65 20 27 6C 27 k;.... case 'l'
00D150: 3A 20 47 5F 6C 69 6E 65 5F 72 65 6C 61 74 69 76 : G_line_relativ
00D160: 65 28 64 78 2C 20 64 79 29 3B 0D 0A 20 20 20 20 e(dx, dy);..
00D170: 20 20 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A break;..
00D180: 0D 0A 20 20 63 61 73 65 20 27 74 27 3A 20 77 68 .. case 't': wh
00D190: 69 6C 65 20 28 2A 73 20 21 3D 20 27 5C 6E 27 29 ile (*s != '\n')
00D1A0: 20 47 5F 77 72 5F 63 68 61 72 28 2A 73 2B 2B 29 G_wr_char(*s++)
00D1B0: 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 73 ;.. s
00D1C0: 32 20 3D 20 73 20 2B 20 31 3B 0D 0A 20 20 20 20 2 = s + 1;..
00D1D0: 20 20 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A break;..
00D1E0: 0D 0A 20 20 63 61 73 65 20 27 63 27 3A 20 69 66 .. case 'c': if
00D1F0: 20 28 74 6F 6C 6F 77 65 72 28 2A 73 2B 2B 29 20 (tolower(*s++)
00D200: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00D210: 0B 00 00 00 02 09 4E E5 0B 00 41 02 00 00 00 02 ......N...A.....
00D220: 0B 00 46 02 00 00 00 02 0B 00 42 02 00 00 00 02 ..F.......B.....
00D230: 0B 00 47 02 00 00 00 02 0B 00 43 02 00 00 00 02 ..G.......C.....
00D240: 0B 00 48 02 00 00 00 02 0B 00 44 02 00 00 00 02 ..H.......D.....
00D250: 0B 00 49 02 00 00 00 02 0B 00 45 02 00 00 00 02 ..I.......E.....
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: 0A 0D 0A 47 5F 73 65 74 5F 70 65 6E 28 69 6E 6B ...G_set_pen(ink
00D310: 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 )..{.. reg_a =
00D320: 69 6E 6B 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D ink;.. inline(.
00D330: 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 . LD_A_from,
00D340: 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C ®_a,.. CAL
00D350: 4C 2C 20 20 20 20 20 20 30 78 42 42 44 45 20 2F L, 0xBBDE /
00D360: 2A 20 47 52 41 5F 53 45 54 5F 50 45 4E 20 2A 2F * GRA_SET_PEN */
00D370: 0D 0A 20 20 20 20 20 20 20 20 29 3B 0D 0A 7D 0D .. );..}.
00D380: 0A 0D 0A 0D 0A 0D 0A 47 5F 73 65 74 5F 70 61 70 .......G_set_pap
00D390: 65 72 28 69 6E 6B 29 0D 0A 7B 0D 0A 20 20 72 65 er(ink)..{.. re
00D3A0: 67 5F 61 20 3D 20 69 6E 6B 3B 0D 0A 20 20 69 6E g_a = ink;.. in
00D3B0: 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F line(.. LD_A_
00D3C0: 66 72 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 from, ®_a,..
00D3D0: 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 78 CALL, 0x
00D3E0: 42 42 45 34 20 2F 2A 20 47 52 41 5F 53 45 54 5F BBE4 /* GRA_SET_
00D3F0: 50 41 50 45 52 20 2A 2F 0D 0A 20 20 20 20 20 20 PAPER */..
00D400: 20 20 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 47 );..}........G
00D410: 5F 77 72 5F 63 68 61 72 28 63 29 0D 0A 7B 0D 0A _wr_char(c)..{..
00D420: 20 20 72 65 67 5F 61 20 3D 20 63 3B 0D 0A 20 20 reg_a = c;..
00D430: 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F inline(.. LD_
00D440: 41 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D A_from, ®_a,.
00D450: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
00D460: 30 78 42 42 46 43 20 2F 2A 20 47 52 41 5F 57 52 0xBBFC /* GRA_WR
00D470: 5F 43 48 41 52 20 2A 2F 0D 0A 20 20 20 20 20 20 _CHAR */..
00D480: 20 20 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 47 );..}........G
00D490: 5F 6D 6F 76 65 5F 61 62 73 6F 6C 75 74 65 28 78 _move_absolute(x
00D4A0: 2C 79 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 64 65 ,y)..{.. reg_de
00D4B0: 20 3D 20 78 3B 20 20 72 65 67 5F 68 6C 20 3D 20 = x; reg_hl =
00D4C0: 79 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 y;.. inline(..
00D4D0: 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 LD_DE_from, &
00D4E0: 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F reg_de,.. LD_
00D4F0: 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C HL_from, ®_hl
00D500: 0D 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 ../* * * * * *
00D510: 20 42 20 41 20 53 20 49 20 43 20 31 20 2E 20 4C B A S I C 1 . L
00D520: 20 49 20 42 20 20 20 2A 20 2A 20 2A 20 2A 20 2A I B * * * * *
00D530: 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 */../*
00D540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D560: 20 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 */../*
00D570: 20 20 43 6F 70 79 72 69 67 68 74 20 28 43 29 20 Copyright (C)
00D580: 31 39 38 35 20 62 79 20 48 49 53 4F 46 54 20 20 1985 by HISOFT
00D590: 20 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 */../*
00D5A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D5B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D5C0: 20 20 20 20 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A */../*
00D5D0: 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A * * * * * * * *
00D5E0: 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A * * * * * * * *
00D5F0: 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D * * * * * * */.
00D600: 0A 0D 0A 23 6C 69 73 74 2D 0D 0A 0D 0A 2F 2A 20 ...#list-..../*
00D610: 2A 20 2A 20 2A 20 2A 20 2A 20 20 20 53 4F 55 4E * * * * * SOUN
00D620: 44 20 46 55 4E 43 54 49 4F 4E 53 20 20 20 2A 20 D FUNCTIONS *
00D630: 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 0D 0A 23 64 * * * * */....#d
00D640: 65 66 69 6E 65 20 4D 41 58 43 48 41 4E 20 20 20 efine MAXCHAN
00D650: 20 33 20 20 20 2F 2A 20 6E 75 6D 62 65 72 20 6F 3 /* number o
00D660: 66 20 63 68 61 6E 6E 65 6C 73 20 2A 2F 0D 0A 23 f channels */..#
00D670: 64 65 66 69 6E 65 20 43 48 49 50 5F 51 55 45 55 define CHIP_QUEU
00D680: 45 20 35 20 20 20 2F 2A 20 54 68 65 20 63 68 69 E 5 /* The chi
00D690: 70 20 63 61 6E 20 71 75 65 75 65 20 35 20 6E 6F p can queue 5 no
00D6A0: 74 65 73 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 tes */..#define
00D6B0: 53 4F 46 54 5F 51 55 45 55 45 20 31 30 30 20 2F SOFT_QUEUE 100 /
00D6C0: 2A 20 4D 61 78 20 6C 65 6E 67 74 68 20 6F 66 20 * Max length of
00D6D0: 70 6C 61 79 20 73 74 72 69 6E 67 20 66 6F 72 20 play string for
00D6E0: 65 61 63 68 20 63 68 61 6E 6E 65 6C 0D 0A 20 20 each channel..
00D6F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00D700: 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 ,.. CALL,
00D710: 20 20 20 30 78 42 42 43 30 20 2F 2A 20 47 52 41 0xBBC0 /* GRA
00D720: 5F 4D 4F 56 45 5F 41 42 53 4F 4C 55 54 45 20 2A _MOVE_ABSOLUTE *
00D730: 2F 0D 0A 20 20 20 20 20 20 20 20 29 3B 0D 0A 7D /.. );..}
00D740: 0D 0A 0D 0A 0D 0A 0D 0A 47 5F 6D 6F 76 65 5F 72 ........G_move_r
00D750: 65 6C 61 74 69 76 65 28 64 78 2C 20 64 79 29 0D elative(dx, dy).
00D760: 0A 7B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 64 .{.. reg_de = d
00D770: 78 3B 20 20 72 65 67 5F 68 6C 20 3D 20 64 79 3B x; reg_hl = dy;
00D780: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
00D790: 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 LD_DE_from, &re
00D7A0: 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C g_de,.. LD_HL
00D7B0: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D _from, ®_hl,.
00D7C0: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
00D7D0: 20 30 78 42 42 43 33 20 2F 2A 20 47 52 41 5F 4D 0xBBC3 /* GRA_M
00D7E0: 4F 56 45 5F 52 45 4C 41 54 49 56 45 20 2A 2F 0D OVE_RELATIVE */.
00D7F0: 0A 20 20 20 20 20 20 20 20 29 3B 0D 0A 7D 0D 0A . );..}..
00D800: 0D 0A 0D 0A 0D 0A 47 5F 70 6C 6F 74 5F 61 62 73 ......G_plot_abs
00D810: 6F 6C 75 74 65 28 78 2C 20 79 29 0D 0A 7B 0D 0A olute(x, y)..{..
00D820: 20 20 72 65 67 5F 64 65 20 3D 20 78 3B 20 20 72 reg_de = x; r
00D830: 65 67 5F 68 6C 20 3D 20 79 3B 0D 0A 20 20 69 6E eg_hl = y;.. in
00D840: 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 44 45 line(.. LD_DE
00D850: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D _from, ®_de,.
00D860: 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C . LD_HL_from,
00D870: 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 ®_hl,.. C
00D880: 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 42 45 ALL, 0xBBE
00D890: 41 20 2F 2A 20 47 52 41 5F 50 4C 4F 54 5F 41 42 A /* GRA_PLOT_AB
00D8A0: 53 4F 4C 55 54 45 20 2A 2F 0D 0A 20 20 20 20 20 SOLUTE */..
00D8B0: 20 20 20 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A );..}........
00D8C0: 47 5F 70 6C 6F 74 5F 72 65 6C 61 74 69 76 65 28 G_plot_relative(
00D8D0: 64 78 2C 20 64 79 29 0D 0A 7B 0D 0A 20 20 72 65 dx, dy)..{.. re
00D8E0: 67 5F 64 65 20 3D 20 64 78 3B 20 20 72 65 67 5F g_de = dx; reg_
00D8F0: 68 6C 20 3D 20 64 79 3B 0D 0A 20 20 69 6E 6C 69 hl = dy;.. inli
00D900: 20 20 20 20 20 20 20 20 41 6C 74 65 72 20 74 6F Alter to
00D910: 20 73 75 69 74 20 62 75 74 20 4D 41 4B 45 20 45 suit but MAKE E
00D920: 4E 4F 55 47 48 20 52 4F 4F 4D 20 2A 2F 0D 0A 0D NOUGH ROOM */...
00D930: 0A 0D 0A 74 79 70 65 64 65 66 0D 0A 73 74 72 75 ...typedef..stru
00D940: 63 74 20 7B 0D 0A 20 20 63 68 61 72 20 20 20 20 ct {.. char
00D950: 20 5F 73 70 5F 73 74 61 74 75 73 3B 0D 0A 20 20 _sp_status;..
00D960: 63 68 61 72 20 20 20 20 20 5F 73 70 5F 61 6D 70 char _sp_amp
00D970: 5F 65 6E 76 3B 0D 0A 20 20 63 68 61 72 20 20 20 _env;.. char
00D980: 20 20 5F 73 70 5F 74 6F 6E 5F 65 6E 76 3B 0D 0A _sp_ton_env;..
00D990: 20 20 75 6E 73 69 67 6E 65 64 20 5F 73 70 5F 6E unsigned _sp_n
00D9A0: 6F 74 65 3B 0D 0A 20 20 63 68 61 72 20 20 20 20 ote;.. char
00D9B0: 20 5F 73 70 5F 6E 6F 69 73 65 3B 0D 0A 20 20 63 _sp_noise;.. c
00D9C0: 68 61 72 20 20 20 20 20 5F 73 70 5F 76 6F 6C 75 har _sp_volu
00D9D0: 6D 65 3B 0D 0A 20 20 75 6E 73 69 67 6E 65 64 20 me;.. unsigned
00D9E0: 5F 73 70 5F 64 75 72 61 74 69 6F 6E 3B 20 2F 2A _sp_duration; /*
00D9F0: 20 41 20 73 74 61 6E 64 61 72 64 20 73 6F 75 6E A standard soun
00DA00: 64 20 62 6C 6F 63 6B 20 75 70 20 74 6F 20 68 65 d block up to he
00DA10: 72 65 20 61 73 20 42 41 53 49 43 20 2A 2F 0D 0A re as BASIC */..
00DA20: 20 20 63 68 61 72 20 20 20 20 20 5F 73 70 5F 6F char _sp_o
00DA30: 63 74 61 76 65 3B 0D 0A 20 20 63 68 61 72 20 20 ctave;.. char
00DA40: 20 20 20 5F 73 70 5F 74 65 6D 70 6F 3B 0D 0A 20 _sp_tempo;..
00DA50: 20 20 20 20 20 20 7D 0D 0A 73 6F 75 6E 64 5F 70 }..sound_p
00DA60: 72 6F 67 72 61 6D 2C 20 2A 5F 73 70 5F 70 74 72 rogram, *_sp_ptr
00DA70: 3B 0D 0A 0D 0A 74 79 70 65 64 65 66 0D 0A 73 74 ;....typedef..st
00DA80: 72 75 63 74 20 7B 0D 0A 20 20 69 6E 74 20 20 20 ruct {.. int
00DA90: 20 20 20 5F 71 5F 69 6E 5F 70 6F 69 6E 74 65 72 _q_in_pointer
00DAA0: 3B 0D 0A 20 20 69 6E 74 20 20 20 20 20 20 5F 71 ;.. int _q
00DAB0: 5F 6F 75 74 5F 70 6F 69 6E 74 65 72 3B 0D 0A 20 _out_pointer;..
00DAC0: 20 75 6E 73 69 67 6E 65 64 20 5F 71 5F 66 72 65 unsigned _q_fre
00DAD0: 65 5F 73 70 61 63 65 3B 0D 0A 20 20 75 6E 73 69 e_space;.. unsi
00DAE0: 67 6E 65 64 20 5F 71 5F 6E 65 77 6C 79 5F 61 64 gned _q_newly_ad
00DAF0: 64 65 64 3B 0D 0A 20 20 63 68 61 72 20 20 20 20 ded;.. char
00DB00: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 ne(.. LD_DE_f
00DB10: 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 rom, ®_de,..
00DB20: 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 LD_HL_from, &
00DB30: 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C reg_hl,.. CAL
00DB40: 4C 2C 20 20 20 20 20 20 20 30 78 42 42 45 44 20 L, 0xBBED
00DB50: 2F 2A 20 47 52 41 5F 50 4C 4F 54 5F 52 45 4C 41 /* GRA_PLOT_RELA
00DB60: 54 49 56 45 20 2A 2F 0D 0A 20 20 20 20 20 20 20 TIVE */..
00DB70: 20 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 69 6E );..}........in
00DB80: 74 20 47 5F 74 65 73 74 5F 61 62 73 6F 6C 75 74 t G_test_absolut
00DB90: 65 28 78 2C 20 79 29 0D 0A 7B 0D 0A 20 20 72 65 e(x, y)..{.. re
00DBA0: 67 5F 64 65 20 3D 20 78 3B 20 20 72 65 67 5F 68 g_de = x; reg_h
00DBB0: 6C 20 3D 20 79 3B 0D 0A 20 20 69 6E 6C 69 6E 65 l = y;.. inline
00DBC0: 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F (.. LD_DE_fro
00DBD0: 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 m, ®_de,..
00DBE0: 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 LD_HL_from, &re
00DBF0: 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C g_hl,.. CALL,
00DC00: 20 20 20 20 20 20 20 30 78 42 42 46 30 2C 20 2F 0xBBF0, /
00DC10: 2A 20 47 52 41 5F 54 45 53 54 5F 41 42 53 4F 4C * GRA_TEST_ABSOL
00DC20: 55 54 45 20 2A 2F 0D 0A 20 20 20 20 4C 44 5F 4C UTE */.. LD_L
00DC30: 5F 41 2C 0D 0A 20 20 20 20 4C 44 5F 48 5F 77 69 _A,.. LD_H_wi
00DC40: 74 68 2C 20 30 0D 0A 20 20 20 20 20 20 20 20 29 th, 0.. )
00DC50: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 69 6E 74 20 ;..}........int
00DC60: 47 5F 74 65 73 74 5F 72 65 6C 61 74 69 76 65 28 G_test_relative(
00DC70: 64 78 2C 20 64 79 29 0D 0A 7B 0D 0A 20 20 72 65 dx, dy)..{.. re
00DC80: 67 5F 64 65 20 3D 20 64 78 3B 20 20 72 65 67 5F g_de = dx; reg_
00DC90: 68 6C 20 3D 20 64 79 3B 0D 0A 20 20 69 6E 6C 69 hl = dy;.. inli
00DCA0: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 ne(.. LD_DE_f
00DCB0: 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 rom, ®_de,..
00DCC0: 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 LD_HL_from, &
00DCD0: 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C reg_hl,.. CAL
00DCE0: 4C 2C 20 20 20 20 20 20 20 30 78 42 42 46 33 2C L, 0xBBF3,
00DCF0: 20 2F 2A 20 47 52 41 5F 54 45 53 54 5F 52 45 4C /* GRA_TEST_REL
00DD00: 20 5F 71 5F 62 75 66 66 65 72 5B 53 4F 46 54 5F _q_buffer[SOFT_
00DD10: 51 55 45 55 45 5D 3B 0D 0A 20 20 20 20 20 20 20 QUEUE];..
00DD20: 7D 0D 0A 5F 71 75 65 75 65 5F 64 61 74 61 2C 20 }.._queue_data,
00DD30: 2A 5F 71 75 65 75 65 5F 70 74 72 3B 0D 0A 0D 0A *_queue_ptr;....
00DD40: 74 79 70 65 64 65 66 0D 0A 73 74 72 75 63 74 20 typedef..struct
00DD50: 7B 0D 0A 20 20 63 68 61 72 20 20 20 20 20 20 20 {.. char
00DD60: 20 5F 73 65 5F 65 76 65 6E 74 5B 31 32 5D 3B 0D _se_event[12];.
00DD70: 0A 20 20 5F 71 75 65 75 65 5F 64 61 74 61 20 5F . _queue_data _
00DD80: 73 65 5F 71 5F 64 61 74 61 3B 0D 0A 20 20 73 6F se_q_data;.. so
00DD90: 75 6E 64 5F 70 72 6F 67 72 61 6D 20 5F 73 5F 70 und_program _s_p
00DDA0: 72 6F 67 3B 0D 0A 20 20 20 20 20 20 20 7D 0D 0A rog;.. }..
00DDB0: 5F 73 65 5F 62 6C 6F 63 6B 2C 20 2A 5F 73 65 62 _se_block, *_seb
00DDC0: 5F 70 74 72 3B 20 2F 2A 20 54 68 65 20 77 68 6F _ptr; /* The who
00DDD0: 6C 65 20 65 76 65 6E 74 20 62 6C 6F 63 6B 20 2B le event block +
00DDE0: 20 64 61 74 61 20 2A 2F 0D 0A 0D 0A 0D 0A 69 6E data */......in
00DDF0: 74 20 5F 73 5F 71 5F 63 68 61 72 3B 0D 0A 0D 0A t _s_q_char;....
00DE00: 0D 0A 73 65 74 75 70 5F 73 6F 75 6E 64 28 29 0D ..setup_sound().
00DE10: 0A 7B 0D 0A 20 20 65 78 74 65 72 6E 20 69 6E 74 .{.. extern int
00DE20: 20 5F 73 6F 75 6E 64 5F 65 76 65 6E 74 28 29 3B _sound_event();
00DE30: 0D 0A 20 20 65 78 74 65 72 6E 20 5F 73 65 62 5F .. extern _seb_
00DE40: 70 74 72 20 5F 67 65 74 5F 73 65 62 5F 61 64 64 ptr _get_seb_add
00DE50: 72 28 29 3B 0D 0A 20 20 73 74 61 74 69 63 20 63 r();.. static c
00DE60: 68 61 72 20 69 3B 0D 0A 20 20 73 74 61 74 69 63 har i;.. static
00DE70: 20 5F 71 75 65 75 65 5F 70 74 72 20 71 70 3B 0D _queue_ptr qp;.
00DE80: 0A 20 20 73 74 61 74 69 63 20 5F 73 70 5F 70 74 . static _sp_pt
00DE90: 72 20 20 20 20 73 70 3B 0D 0A 20 20 73 74 61 74 r sp;.. stat
00DEA0: 69 63 20 5F 73 65 62 5F 70 74 72 20 20 20 73 65 ic _seb_ptr se
00DEB0: 62 69 3B 0D 0A 0D 0A 20 20 69 6E 6C 69 6E 65 28 bi;.... inline(
00DEC0: 43 41 4C 4C 2C 20 30 78 42 43 41 37 29 3B 20 2F CALL, 0xBCA7); /
00DED0: 2A 20 53 4F 55 4E 44 20 52 45 53 45 54 20 2A 2F * SOUND RESET */
00DEE0: 0D 0A 0D 0A 20 20 66 6F 72 20 28 69 3D 30 3B 20 .... for (i=0;
00DEF0: 69 3C 33 3B 20 69 2B 2B 29 0D 0A 20 20 7B 0D 0A i<3; i++).. {..
00DF00: 41 54 49 56 45 20 2A 2F 0D 0A 20 20 20 20 4C 44 ATIVE */.. LD
00DF10: 5F 4C 5F 41 2C 0D 0A 20 20 20 20 4C 44 5F 48 5F _L_A,.. LD_H_
00DF20: 77 69 74 68 2C 20 30 0D 0A 20 20 20 20 20 20 20 with, 0..
00DF30: 20 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 47 5F );..}........G_
00DF40: 6C 69 6E 65 5F 61 62 73 6F 6C 75 74 65 28 78 2C line_absolute(x,
00DF50: 20 79 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 64 65 y)..{.. reg_de
00DF60: 20 3D 20 78 3B 20 20 72 65 67 5F 68 6C 20 3D 20 = x; reg_hl =
00DF70: 79 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 y;.. inline(..
00DF80: 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 LD_DE_from, &
00DF90: 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F reg_de,.. LD_
00DFA0: 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C HL_from, ®_hl
00DFB0: 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 ,.. CALL,
00DFC0: 20 20 20 30 78 42 42 46 36 20 2F 2A 20 47 52 41 0xBBF6 /* GRA
00DFD0: 5F 4C 49 4E 45 5F 41 42 53 4F 4C 55 54 45 20 2A _LINE_ABSOLUTE *
00DFE0: 2F 0D 0A 20 20 20 20 20 20 20 20 29 3B 0D 0A 7D /.. );..}
00DFF0: 0D 0A 0D 0A 0D 0A 0D 0A 47 5F 6C 69 6E 65 5F 72 ........G_line_r
00E000: 65 6C 61 74 69 76 65 28 64 78 2C 20 64 79 29 0D elative(dx, dy).
00E010: 0A 7B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 64 .{.. reg_de = d
00E020: 78 3B 20 20 72 65 67 5F 68 6C 20 3D 20 64 79 3B x; reg_hl = dy;
00E030: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
00E040: 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 LD_DE_from, &re
00E050: 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C g_de,.. LD_HL
00E060: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D _from, ®_hl,.
00E070: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
00E080: 20 30 78 42 42 46 39 20 2F 2A 20 47 52 41 5F 4C 0xBBF9 /* GRA_L
00E090: 49 4E 45 5F 52 45 4C 41 54 49 56 45 20 2A 2F 0D INE_RELATIVE */.
00E0A0: 0A 20 20 20 20 20 20 20 20 29 3B 0D 0A 7D 0D 0A . );..}..
00E0B0: 0D 0A 23 6C 69 73 74 2B 0D 0A 0D 0A 2F 2A 20 2A ..#list+..../* *
00E0C0: 20 2A 20 2A 20 2A 20 2A 20 20 20 45 6E 64 20 6F * * * * End o
00E0D0: 66 20 47 72 61 70 68 69 63 73 20 56 44 55 20 46 f Graphics VDU F
00E0E0: 75 6E 63 74 69 6F 6E 73 20 20 20 2A 20 2A 20 2A unctions * * *
00E0F0: 20 2A 20 2A 20 2A 2F 0D 0A 0D 0A 1A 20 20 20 20 * * */.....
00E100: 20 20 20 20 73 65 62 69 20 3D 20 5F 67 65 74 5F sebi = _get_
00E110: 73 65 62 5F 61 64 64 72 28 69 29 3B 0D 0A 0D 0A seb_addr(i);....
00E120: 20 20 20 20 71 70 20 3D 20 26 20 73 65 62 69 2D qp = & sebi-
00E130: 3E 5F 73 65 5F 71 5F 64 61 74 61 3B 0D 0A 20 20 >_se_q_data;..
00E140: 20 20 71 70 2D 3E 5F 71 5F 69 6E 5F 70 6F 69 6E qp->_q_in_poin
00E150: 74 65 72 20 20 3D 0D 0A 20 20 20 20 71 70 2D 3E ter =.. qp->
00E160: 5F 71 5F 6F 75 74 5F 70 6F 69 6E 74 65 72 20 3D _q_out_pointer =
00E170: 0D 0A 20 20 20 20 71 70 2D 3E 5F 71 5F 6E 65 77 .. qp->_q_new
00E180: 6C 79 5F 61 64 64 65 64 20 3D 20 30 3B 0D 0A 20 ly_added = 0;..
00E190: 20 20 20 71 70 2D 3E 5F 71 5F 66 72 65 65 5F 73 qp->_q_free_s
00E1A0: 70 61 63 65 20 20 3D 20 53 4F 46 54 5F 51 55 45 pace = SOFT_QUE
00E1B0: 55 45 3B 0D 0A 0D 0A 20 20 20 20 73 70 20 3D 20 UE;.... sp =
00E1C0: 26 20 73 65 62 69 2D 3E 5F 73 5F 70 72 6F 67 3B & sebi->_s_prog;
00E1D0: 0D 0A 20 20 20 20 73 70 2D 3E 5F 73 70 5F 73 74 .. sp->_sp_st
00E1E0: 61 74 75 73 20 20 20 3D 20 28 31 20 3C 3C 20 69 atus = (1 << i
00E1F0: 29 3B 0D 0A 20 20 20 20 73 70 2D 3E 5F 73 70 5F );.. sp->_sp_
00E200: 61 6D 70 5F 65 6E 76 20 20 3D 0D 0A 20 20 20 20 amp_env =..
00E210: 73 70 2D 3E 5F 73 70 5F 74 6F 6E 5F 65 6E 76 20 sp->_sp_ton_env
00E220: 20 3D 0D 0A 20 20 20 20 73 70 2D 3E 5F 73 70 5F =.. sp->_sp_
00E230: 6E 6F 74 65 20 20 20 20 20 3D 0D 0A 20 20 20 20 note =..
00E240: 73 70 2D 3E 5F 73 70 5F 6E 6F 69 73 65 20 20 20 sp->_sp_noise
00E250: 20 3D 0D 0A 20 20 20 20 73 70 2D 3E 5F 73 70 5F =.. sp->_sp_
00E260: 64 75 72 61 74 69 6F 6E 20 3D 20 30 3B 0D 0A 20 duration = 0;..
00E270: 20 20 20 73 70 2D 3E 5F 73 70 5F 76 6F 6C 75 6D sp->_sp_volum
00E280: 65 20 20 20 3D 20 31 35 3B 0D 0A 20 20 20 20 73 e = 15;.. s
00E290: 70 2D 3E 5F 73 70 5F 6F 63 74 61 76 65 20 20 20 p->_sp_octave
00E2A0: 3D 20 33 3B 0D 0A 20 20 20 20 73 70 2D 3E 5F 73 = 3;.. sp->_s
00E2B0: 70 5F 74 65 6D 70 6F 20 20 20 20 3D 20 32 35 3B p_tempo = 25;
00E2C0: 0D 0A 0D 0A 20 20 20 20 69 6E 69 74 5F 65 76 65 .... init_eve
00E2D0: 6E 74 28 73 65 62 69 2C 20 5F 73 6F 75 6E 64 5F nt(sebi, _sound_
00E2E0: 65 76 65 6E 74 29 3B 0D 0A 20 20 7D 0D 0A 7D 0D event);.. }..}.
00E2F0: 0A 0D 0A 0D 0A 70 6C 61 79 28 63 6F 6E 74 72 6F .....play(contro
00E300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E500: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00E510: 0C 00 00 00 02 09 4E E5 0C 00 41 02 00 00 00 02 ......N...A.....
00E520: 0C 00 46 02 00 00 00 02 0C 00 42 02 00 00 00 02 ..F.......B.....
00E530: 0C 00 47 02 00 00 00 02 0C 00 43 02 00 00 00 02 ..G.......C.....
00E540: 0C 00 48 02 00 00 00 02 0C 00 44 02 00 00 00 02 ..H.......D.....
00E550: 0C 00 49 02 00 00 00 02 0C 00 45 02 00 00 00 02 ..I.......E.....
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: 6C 5F 73 74 72 69 6E 67 2C 73 74 61 74 75 73 29 l_string,status)
00E610: 0D 0A 20 20 63 68 61 72 20 2A 63 6F 6E 74 72 6F .. char *contro
00E620: 6C 5F 73 74 72 69 6E 67 2C 73 74 61 74 75 73 3B l_string,status;
00E630: 0D 0A 7B 0D 0A 20 20 65 78 74 65 72 6E 20 5F 73 ..{.. extern _s
00E640: 65 62 5F 70 74 72 20 5F 67 65 74 5F 73 65 62 5F eb_ptr _get_seb_
00E650: 61 64 64 72 28 29 3B 0D 0A 20 20 73 74 61 74 69 addr();.. stati
00E660: 63 20 5F 71 75 65 75 65 5F 70 74 72 20 70 74 72 c _queue_ptr ptr
00E670: 3B 0D 0A 20 20 73 74 61 74 69 63 20 69 6E 74 20 ;.. static int
00E680: 63 68 61 6E 6E 65 6C 2C 20 63 3B 0D 0A 20 20 73 channel, c;.. s
00E690: 74 61 74 69 63 20 5F 73 65 62 5F 70 74 72 20 74 tatic _seb_ptr t
00E6A0: 68 69 73 5F 73 65 62 3B 0D 0A 0D 0A 20 20 66 6F his_seb;.... fo
00E6B0: 72 20 28 63 68 61 6E 6E 65 6C 3D 32 3B 20 63 68 r (channel=2; ch
00E6C0: 61 6E 6E 65 6C 3E 3D 30 3B 20 2D 2D 63 68 61 6E annel>=0; --chan
00E6D0: 6E 65 6C 29 0D 0A 20 20 20 20 69 66 20 28 73 74 nel).. if (st
00E6E0: 61 74 75 73 20 26 20 28 31 20 3C 3C 20 63 68 61 atus & (1 << cha
00E6F0: 6E 6E 65 6C 29 29 0D 0A 20 20 20 20 20 20 7B 0D nnel)).. {.
00E700: 0A 20 20 20 20 20 20 20 20 74 68 69 73 5F 73 65 . this_se
00E710: 62 20 3D 20 5F 67 65 74 5F 73 65 62 5F 61 64 64 b = _get_seb_add
00E720: 72 28 63 68 61 6E 6E 65 6C 29 3B 0D 0A 20 20 20 r(channel);..
00E730: 20 20 20 20 20 70 74 72 20 3D 20 26 74 68 69 73 ptr = &this
00E740: 5F 73 65 62 2D 3E 5F 73 65 5F 71 5F 64 61 74 61 _seb->_se_q_data
00E750: 3B 0D 0A 20 20 20 20 20 20 20 20 5F 73 5F 70 75 ;.. _s_pu
00E760: 74 71 28 27 53 27 2C 70 74 72 29 3B 20 5F 73 5F tq('S',ptr); _s_
00E770: 70 75 74 71 28 73 74 61 74 75 73 2C 70 74 72 29 putq(status,ptr)
00E780: 3B 0D 0A 0D 0A 20 20 20 20 20 20 20 20 77 68 69 ;.... whi
00E790: 6C 65 20 28 63 20 3D 20 28 2A 63 6F 6E 74 72 6F le (c = (*contro
00E7A0: 6C 5F 73 74 72 69 6E 67 2B 2B 29 29 0D 0A 20 20 l_string++))..
00E7B0: 20 20 20 20 20 20 20 20 5F 73 5F 70 75 74 71 28 _s_putq(
00E7C0: 63 2C 70 74 72 29 3B 20 2F 2A 20 50 75 74 20 74 c,ptr); /* Put t
00E7D0: 68 65 20 73 74 72 69 6E 67 20 69 6E 74 6F 20 74 he string into t
00E7E0: 68 65 20 62 75 66 66 65 72 20 2A 2F 0D 0A 20 20 he buffer */..
00E7F0: 20 20 20 20 20 20 5F 73 5F 73 79 6E 63 71 28 74 _s_syncq(t
00E800: 20 20 7D 0D 0A 20 20 5F 64 6F 5F 71 75 65 75 65 }.. _do_queue
00E810: 28 73 70 29 3B 0D 0A 20 20 69 66 20 28 70 74 72 (sp);.. if (ptr
00E820: 2D 3E 5F 71 5F 66 72 65 65 5F 73 70 61 63 65 20 ->_q_free_space
00E830: 21 3D 20 53 4F 46 54 5F 51 55 45 55 45 29 0D 0A != SOFT_QUEUE)..
00E840: 20 20 20 20 53 5F 61 72 6D 5F 65 76 65 6E 74 28 S_arm_event(
00E850: 73 70 2D 3E 5F 73 70 5F 73 74 61 74 75 73 20 26 sp->_sp_status &
00E860: 20 37 2C 20 74 68 69 73 5F 73 65 62 29 3B 0D 0A 7, this_seb);..
00E870: 7D 0D 0A 0D 0A 0D 0A 5F 67 65 74 6E 6F 74 65 28 }......_getnote(
00E880: 74 68 69 73 5F 73 65 62 29 0D 0A 20 20 5F 73 65 this_seb).. _se
00E890: 62 5F 70 74 72 20 74 68 69 73 5F 73 65 62 3B 0D b_ptr this_seb;.
00E8A0: 0A 7B 0D 0A 20 20 69 6E 74 20 20 20 20 20 20 6E .{.. int n
00E8B0: 6F 74 65 2C 74 5F 6F 63 74 61 76 65 3B 0D 0A 20 ote,t_octave;..
00E8C0: 20 5F 71 75 65 75 65 5F 70 74 72 20 70 74 72 3B _queue_ptr ptr;
00E8D0: 0D 0A 20 20 73 74 61 74 69 63 20 75 6E 73 69 67 .. static unsig
00E8E0: 6E 65 64 20 70 65 72 69 6F 64 5B 5D 20 3D 20 20 ned period[] =
00E8F0: 2F 2A 20 54 68 65 20 76 61 6C 75 65 73 20 66 6F /* The values fo
00E900: 72 20 74 68 65 20 70 65 72 69 6F 64 73 20 6F 66 r the periods of
00E910: 20 74 68 65 20 6E 6F 74 65 73 20 2A 2F 0D 0A 7B the notes */..{
00E920: 30 2C 32 35 35 31 2C 32 34 30 38 2C 32 32 37 33 0,2551,2408,2273
00E930: 2C 32 31 34 35 2C 32 30 32 35 2C 31 39 31 31 2C ,2145,2025,1911,
00E940: 31 38 30 34 2C 31 37 30 33 2C 31 36 30 37 2C 31 1804,1703,1607,1
00E950: 35 31 37 2C 31 34 33 32 2C 31 33 35 31 2C 31 32 517,1432,1351,12
00E960: 37 36 2C 31 32 30 34 2C 31 31 33 36 7D 3B 0D 0A 76,1204,1136};..
00E970: 2F 2A 20 20 20 20 20 20 20 20 20 20 20 20 41 20 /* A
00E980: 20 20 20 20 20 20 20 20 42 20 20 20 20 43 20 20 B C
00E990: 20 20 20 20 20 20 20 44 20 20 20 20 20 20 20 20 D
00E9A0: 20 45 20 20 20 20 46 20 20 20 20 20 20 20 20 20 E F
00E9B0: 47 20 20 2A 2F 0D 0A 0D 0A 20 20 70 74 72 20 20 G */.... ptr
00E9C0: 20 20 20 20 3D 20 26 74 68 69 73 5F 73 65 62 2D = &this_seb-
00E9D0: 3E 5F 73 65 5F 71 5F 64 61 74 61 3B 0D 0A 20 20 >_se_q_data;..
00E9E0: 74 5F 6F 63 74 61 76 65 20 3D 20 74 68 69 73 5F t_octave = this_
00E9F0: 73 65 62 2D 3E 5F 73 5F 70 72 6F 67 2E 5F 73 70 seb->_s_prog._sp
00EA00: 68 69 73 5F 73 65 62 29 3B 20 20 20 20 2F 2A 20 his_seb); /*
00EA10: 54 65 6C 6C 20 74 68 65 20 65 76 65 6E 74 20 72 Tell the event r
00EA20: 6F 75 74 69 6E 65 20 61 62 6F 75 74 20 74 68 65 outine about the
00EA30: 20 73 74 72 69 6E 67 20 2A 2F 0D 0A 20 20 20 20 string */..
00EA40: 20 20 7D 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 50 }..}....../* P
00EA50: 75 74 20 61 20 63 68 61 72 61 63 74 65 72 20 69 ut a character i
00EA60: 6E 74 6F 20 74 68 65 20 70 6C 61 79 20 73 74 72 nto the play str
00EA70: 69 6E 67 20 69 66 20 74 68 65 72 65 27 73 20 73 ing if there's s
00EA80: 70 61 63 65 20 2A 2F 0D 0A 0D 0A 5F 73 5F 70 75 pace */...._s_pu
00EA90: 74 71 28 63 2C 70 74 72 29 0D 0A 20 20 5F 71 75 tq(c,ptr).. _qu
00EAA0: 65 75 65 5F 70 74 72 20 70 74 72 3B 0D 0A 7B 0D eue_ptr ptr;..{.
00EAB0: 0A 20 20 77 68 69 6C 65 20 28 20 21 20 28 70 74 . while ( ! (pt
00EAC0: 72 2D 3E 5F 71 5F 66 72 65 65 5F 73 70 61 63 65 r->_q_free_space
00EAD0: 20 2D 20 70 74 72 2D 3E 5F 71 5F 6E 65 77 6C 79 - ptr->_q_newly
00EAE0: 5F 61 64 64 65 64 29 29 3B 0D 0A 0D 0A 20 20 70 _added));.... p
00EAF0: 74 72 2D 3E 5F 71 5F 62 75 66 66 65 72 5B 70 74 tr->_q_buffer[pt
00EB00: 72 2D 3E 5F 71 5F 69 6E 5F 70 6F 69 6E 74 65 72 r->_q_in_pointer
00EB10: 5D 20 3D 20 63 3B 0D 0A 20 20 70 74 72 2D 3E 5F ] = c;.. ptr->_
00EB20: 71 5F 69 6E 5F 70 6F 69 6E 74 65 72 20 3D 20 28 q_in_pointer = (
00EB30: 70 74 72 2D 3E 5F 71 5F 69 6E 5F 70 6F 69 6E 74 ptr->_q_in_point
00EB40: 65 72 20 2B 20 31 29 20 25 20 53 4F 46 54 5F 51 er + 1) % SOFT_Q
00EB50: 55 45 55 45 3B 0D 0A 20 20 70 74 72 2D 3E 5F 71 UEUE;.. ptr->_q
00EB60: 5F 6E 65 77 6C 79 5F 61 64 64 65 64 2B 2B 3B 0D _newly_added++;.
00EB70: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 53 65 74 20 74 .}....../* Set t
00EB80: 68 65 20 70 6F 69 6E 74 65 72 73 20 61 66 74 65 he pointers afte
00EB90: 72 20 61 64 64 69 6E 67 20 63 68 61 72 61 63 74 r adding charact
00EBA0: 65 72 73 20 74 6F 20 74 68 65 20 73 74 72 69 6E ers to the strin
00EBB0: 67 20 61 6E 64 0D 0A 72 65 2D 61 72 6D 20 74 68 g and..re-arm th
00EBC0: 65 20 73 6F 75 6E 64 20 65 76 65 6E 74 20 69 66 e sound event if
00EBD0: 20 74 68 65 20 71 75 65 75 65 20 77 61 73 20 65 the queue was e
00EBE0: 6D 70 74 79 20 74 6F 20 73 74 61 72 74 20 77 69 mpty to start wi
00EBF0: 74 68 20 2A 2F 0D 0A 0D 0A 5F 73 5F 73 79 6E 63 th */...._s_sync
00EC00: 5F 6F 63 74 61 76 65 3B 0D 0A 0D 0A 20 20 69 66 _octave;.... if
00EC10: 20 28 5F 73 5F 71 5F 63 68 61 72 20 3D 3D 20 27 (_s_q_char == '
00EC20: 5C 27 27 29 20 74 5F 6F 63 74 61 76 65 20 2D 3D \'') t_octave -=
00EC30: 20 5F 6F 63 74 5F 66 61 63 74 6F 72 28 70 74 72 _oct_factor(ptr
00EC40: 29 3B 0D 0A 20 20 73 77 69 74 63 68 28 5F 73 5F );.. switch(_s_
00EC50: 71 5F 63 68 61 72 29 0D 0A 20 20 7B 0D 0A 20 20 q_char).. {..
00EC60: 20 20 64 65 66 61 75 6C 74 20 20 3A 20 72 65 74 default : ret
00EC70: 75 72 6E 20 31 3B 20 2F 2A 20 61 6E 20 65 72 72 urn 1; /* an err
00EC80: 6F 72 20 2A 2F 0D 0A 20 20 20 20 63 61 73 65 20 or */.. case
00EC90: 27 57 27 20 3A 20 6E 6F 74 65 20 3D 20 30 3B 20 'W' : note = 0;
00ECA0: 62 72 65 61 6B 3B 0D 0A 20 20 20 20 63 61 73 65 break;.. case
00ECB0: 20 27 41 27 20 3A 20 6E 6F 74 65 20 3D 20 33 3B 'A' : note = 3;
00ECC0: 20 62 72 65 61 6B 3B 20 0D 0A 20 20 20 20 63 61 break; .. ca
00ECD0: 73 65 20 27 42 27 20 3A 20 6E 6F 74 65 20 3D 20 se 'B' : note =
00ECE0: 35 3B 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 63 5; break;.. c
00ECF0: 61 73 65 20 27 43 27 20 3A 20 6E 6F 74 65 20 3D ase 'C' : note =
00ED00: 20 36 3B 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 6; break;..
00ED10: 63 61 73 65 20 27 44 27 20 3A 20 6E 6F 74 65 20 case 'D' : note
00ED20: 3D 20 38 3B 20 62 72 65 61 6B 3B 0D 0A 20 20 20 = 8; break;..
00ED30: 20 63 61 73 65 20 27 45 27 20 3A 20 6E 6F 74 65 case 'E' : note
00ED40: 20 3D 31 30 3B 20 62 72 65 61 6B 3B 0D 0A 20 20 =10; break;..
00ED50: 20 20 63 61 73 65 20 27 46 27 20 3A 20 6E 6F 74 case 'F' : not
00ED60: 65 20 3D 31 31 3B 20 62 72 65 61 6B 3B 0D 0A 20 e =11; break;..
00ED70: 20 20 20 63 61 73 65 20 27 47 27 20 3A 20 6E 6F case 'G' : no
00ED80: 74 65 20 3D 31 33 3B 0D 0A 20 20 7D 0D 0A 20 20 te =13;.. }..
00ED90: 5F 73 5F 67 65 74 71 28 70 74 72 29 3B 0D 0A 20 _s_getq(ptr);..
00EDA0: 20 64 6F 0D 0A 20 20 20 20 69 66 20 20 20 20 20 do.. if
00EDB0: 20 28 5F 73 5F 71 5F 63 68 61 72 20 3D 3D 20 27 (_s_q_char == '
00EDC0: 23 27 29 20 7B 6E 6F 74 65 2B 2B 3B 20 5F 73 5F #') {note++; _s_
00EDD0: 67 65 74 71 28 70 74 72 29 3B 7D 0D 0A 20 20 20 getq(ptr);}..
00EDE0: 20 65 6C 73 65 20 69 66 20 28 5F 73 5F 71 5F 63 else if (_s_q_c
00EDF0: 68 61 72 20 3D 3D 20 27 62 27 29 20 7B 6E 6F 74 har == 'b') {not
00EE00: 71 28 74 68 69 73 5F 73 65 62 29 0D 0A 20 20 5F q(this_seb).. _
00EE10: 73 65 62 5F 70 74 72 20 74 68 69 73 5F 73 65 62 seb_ptr this_seb
00EE20: 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 5F ;..{.. static _
00EE30: 71 75 65 75 65 5F 70 74 72 20 70 74 72 3B 0D 0A queue_ptr ptr;..
00EE40: 20 20 73 74 61 74 69 63 20 75 6E 73 69 67 6E 65 static unsigne
00EE50: 64 20 66 72 65 65 3B 0D 0A 0D 0A 20 20 70 74 72 d free;.... ptr
00EE60: 20 3D 20 26 74 68 69 73 5F 73 65 62 2D 3E 5F 73 = &this_seb->_s
00EE70: 65 5F 71 5F 64 61 74 61 3B 0D 0A 0D 0A 20 20 69 e_q_data;.... i
00EE80: 6E 6C 69 6E 65 28 44 49 29 3B 0D 0A 20 20 66 72 nline(DI);.. fr
00EE90: 65 65 20 3D 20 70 74 72 2D 3E 5F 71 5F 66 72 65 ee = ptr->_q_fre
00EEA0: 65 5F 73 70 61 63 65 3B 0D 0A 20 20 70 74 72 2D e_space;.. ptr-
00EEB0: 3E 5F 71 5F 66 72 65 65 5F 73 70 61 63 65 20 3D >_q_free_space =
00EEC0: 20 66 72 65 65 20 2D 20 70 74 72 2D 3E 5F 71 5F free - ptr->_q_
00EED0: 6E 65 77 6C 79 5F 61 64 64 65 64 3B 0D 0A 20 20 newly_added;..
00EEE0: 70 74 72 2D 3E 5F 71 5F 6E 65 77 6C 79 5F 61 64 ptr->_q_newly_ad
00EEF0: 64 65 64 20 3D 20 30 3B 0D 0A 20 20 69 6E 6C 69 ded = 0;.. inli
00EF00: 6E 65 28 45 49 29 3B 0D 0A 0D 0A 20 20 69 66 20 ne(EI);.... if
00EF10: 28 66 72 65 65 20 3D 3D 20 53 4F 46 54 5F 51 55 (free == SOFT_QU
00EF20: 45 55 45 29 0D 0A 20 20 20 20 53 5F 61 72 6D 5F EUE).. S_arm_
00EF30: 65 76 65 6E 74 28 74 68 69 73 5F 73 65 62 2D 3E event(this_seb->
00EF40: 5F 73 5F 70 72 6F 67 2E 5F 73 70 5F 73 74 61 74 _s_prog._sp_stat
00EF50: 75 73 2C 20 74 68 69 73 5F 73 65 62 29 3B 0D 0A us, this_seb);..
00EF60: 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 65 76 65 6E 74 20 }....../* event
00EF70: 72 6F 75 74 69 6E 65 20 67 65 74 73 20 74 68 65 routine gets the
00EF80: 20 6E 65 78 74 20 6E 6F 74 65 20 61 6E 64 20 70 next note and p
00EF90: 75 74 73 20 69 74 20 6F 6E 20 74 68 65 20 71 75 uts it on the qu
00EFA0: 65 75 65 20 2A 2F 0D 0A 0D 0A 5F 73 6F 75 6E 64 eue */...._sound
00EFB0: 5F 65 76 65 6E 74 28 65 76 65 6E 74 5F 61 64 64 _event(event_add
00EFC0: 72 65 73 73 29 0D 0A 20 20 75 6E 73 69 67 6E 65 ress).. unsigne
00EFD0: 64 20 65 76 65 6E 74 5F 61 64 64 72 65 73 73 3B d event_address;
00EFE0: 0D 0A 7B 0D 0A 20 20 5F 71 75 65 75 65 5F 70 74 ..{.. _queue_pt
00EFF0: 72 20 70 74 72 3B 0D 0A 20 20 5F 73 70 5F 70 74 r ptr;.. _sp_pt
00F000: 65 2D 2D 3B 20 5F 73 5F 67 65 74 71 28 70 74 72 e--; _s_getq(ptr
00F010: 29 3B 7D 0D 0A 20 20 20 20 65 6C 73 65 20 62 72 );}.. else br
00F020: 65 61 6B 3B 0D 0A 20 20 77 68 69 6C 65 20 28 31 eak;.. while (1
00F030: 29 3B 0D 0A 0D 0A 20 20 69 66 20 28 5F 73 5F 71 );.... if (_s_q
00F040: 5F 63 68 61 72 20 3D 3D 20 27 5C 27 27 29 20 20 _char == '\'')
00F050: 74 5F 6F 63 74 61 76 65 20 2B 3D 20 5F 6F 63 74 t_octave += _oct
00F060: 5F 66 61 63 74 6F 72 28 70 74 72 29 3B 0D 0A 20 _factor(ptr);..
00F070: 20 72 65 74 75 72 6E 20 70 65 72 69 6F 64 5B 6E return period[n
00F080: 6F 74 65 5D 20 3E 3E 20 74 5F 6F 63 74 61 76 65 ote] >> t_octave
00F090: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 5F 64 6F 5F 71 75 ;..}......_do_qu
00F0A0: 65 75 65 28 73 70 29 0D 0A 20 20 5F 73 70 5F 70 eue(sp).. _sp_p
00F0B0: 74 72 20 73 70 3B 0D 0A 7B 0D 0A 20 20 69 6E 74 tr sp;..{.. int
00F0C0: 20 20 20 20 63 68 61 6E 6E 65 6C 2C 71 70 6F 73 channel,qpos
00F0D0: 2C 63 68 61 6E 62 69 74 3B 0D 0A 20 20 5F 73 70 ,chanbit;.. _sp
00F0E0: 5F 70 74 72 20 64 65 73 74 5F 71 3B 0D 0A 20 20 _ptr dest_q;..
00F0F0: 73 74 61 74 69 63 20 63 68 61 72 20 71 5F 66 6C static char q_fl
00F100: 61 67 5B 5D 20 3D 20 7B 34 2C 34 2C 34 7D 3B 0D ag[] = {4,4,4};.
00F110: 0A 20 20 73 74 61 74 69 63 20 73 6F 75 6E 64 5F . static sound_
00F120: 70 72 6F 67 72 61 6D 20 73 70 72 61 5B 4D 41 58 program spra[MAX
00F130: 43 48 41 4E 5D 5B 43 48 49 50 5F 51 55 45 55 45 CHAN][CHIP_QUEUE
00F140: 5D 3B 0D 0A 0D 0A 20 20 63 68 61 6E 62 69 74 20 ];.... chanbit
00F150: 3D 20 73 70 2D 3E 5F 73 70 5F 73 74 61 74 75 73 = sp->_sp_status
00F160: 20 26 20 37 3B 0D 0A 20 20 69 66 20 20 20 20 20 & 7;.. if
00F170: 20 28 63 68 61 6E 62 69 74 20 3E 20 33 29 20 7B (chanbit > 3) {
00F180: 63 68 61 6E 6E 65 6C 20 3D 20 32 3B 20 63 68 61 channel = 2; cha
00F190: 6E 62 69 74 20 3D 20 34 3B 7D 0D 0A 20 20 65 6C nbit = 4;}.. el
00F1A0: 73 65 20 69 66 20 28 63 68 61 6E 62 69 74 20 3E se if (chanbit >
00F1B0: 20 31 29 20 7B 63 68 61 6E 6E 65 6C 20 3D 20 31 1) {channel = 1
00F1C0: 3B 20 63 68 61 6E 62 69 74 20 3D 20 32 3B 7D 0D ; chanbit = 2;}.
00F1D0: 0A 20 20 65 6C 73 65 20 20 20 20 20 20 20 20 20 . else
00F1E0: 20 20 20 20 20 20 20 20 20 20 63 68 61 6E 6E 65 channe
00F1F0: 6C 20 3D 20 30 3B 0D 0A 0D 0A 20 20 71 70 6F 73 l = 0;.... qpos
00F200: 72 20 20 20 20 73 70 3B 0D 0A 20 20 5F 73 65 62 r sp;.. _seb
00F210: 5F 70 74 72 20 20 20 74 68 69 73 5F 73 65 62 3B _ptr this_seb;
00F220: 0D 0A 20 20 69 6E 74 20 20 20 20 20 20 20 74 69 .. int ti
00F230: 2C 20 67 6F 74 3B 0D 0A 0D 0A 20 20 74 68 69 73 , got;.... this
00F240: 5F 73 65 62 20 3D 20 63 61 73 74 28 5F 73 65 62 _seb = cast(_seb
00F250: 5F 70 74 72 29 20 28 65 76 65 6E 74 5F 61 64 64 _ptr) (event_add
00F260: 72 65 73 73 20 2D 20 34 29 3B 0D 0A 20 20 70 74 ress - 4);.. pt
00F270: 72 20 3D 20 26 74 68 69 73 5F 73 65 62 2D 3E 5F r = &this_seb->_
00F280: 73 65 5F 71 5F 64 61 74 61 3B 0D 0A 20 20 73 70 se_q_data;.. sp
00F290: 20 20 3D 20 26 74 68 69 73 5F 73 65 62 2D 3E 5F = &this_seb->_
00F2A0: 73 5F 70 72 6F 67 3B 0D 0A 20 20 67 6F 74 20 3D s_prog;.. got =
00F2B0: 20 31 3B 0D 0A 20 20 73 70 2D 3E 5F 73 70 5F 73 1;.. sp->_sp_s
00F2C0: 74 61 74 75 73 20 26 3D 20 37 3B 0D 0A 0D 0A 20 tatus &= 7;....
00F2D0: 20 5F 73 5F 67 65 74 71 28 70 74 72 29 3B 0D 0A _s_getq(ptr);..
00F2E0: 20 20 77 68 69 6C 65 20 28 5F 73 5F 71 5F 63 68 while (_s_q_ch
00F2F0: 61 72 20 21 3D 20 27 2E 27 29 0D 0A 20 20 7B 0D ar != '.').. {.
00F300: 0A 20 20 20 20 69 66 20 28 67 6F 74 29 20 67 6F . if (got) go
00F310: 74 20 3D 20 30 3B 20 65 6C 73 65 20 5F 73 5F 67 t = 0; else _s_g
00F320: 65 74 71 28 70 74 72 29 3B 0D 0A 20 20 20 20 73 etq(ptr);.. s
00F330: 77 69 74 63 68 20 28 5F 73 5F 71 5F 63 68 61 72 witch (_s_q_char
00F340: 29 0D 0A 20 20 20 20 7B 0D 0A 20 20 20 20 20 20 ).. {..
00F350: 63 61 73 65 20 27 53 27 20 3A 20 73 70 2D 3E 5F case 'S' : sp->_
00F360: 73 70 5F 73 74 61 74 75 73 20 7C 3D 20 5F 73 5F sp_status |= _s_
00F370: 67 65 74 71 28 70 74 72 29 20 26 20 30 78 46 38 getq(ptr) & 0xF8
00F380: 3B 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 ; break;..
00F390: 63 61 73 65 20 27 56 27 20 3A 20 73 70 2D 3E 5F case 'V' : sp->_
00F3A0: 73 70 5F 76 6F 6C 75 6D 65 20 20 3D 20 5F 73 5F sp_volume = _s_
00F3B0: 67 65 74 71 28 70 74 72 29 3B 20 62 72 65 61 6B getq(ptr); break
00F3C0: 3B 0D 0A 20 20 20 20 20 20 63 61 73 65 20 27 4E ;.. case 'N
00F3D0: 27 20 3A 20 73 70 2D 3E 5F 73 70 5F 6E 6F 69 73 ' : sp->_sp_nois
00F3E0: 65 20 20 20 3D 20 5F 73 5F 67 65 74 71 28 70 74 e = _s_getq(pt
00F3F0: 72 29 3B 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 r); break;..
00F400: 20 20 20 3D 20 2B 2B 71 5F 66 6C 61 67 5B 63 68 = ++q_flag[ch
00F410: 61 6E 6E 65 6C 5D 20 25 20 43 48 49 50 5F 51 55 annel] % CHIP_QU
00F420: 45 55 45 3B 0D 0A 20 20 64 65 73 74 5F 71 20 3D EUE;.. dest_q =
00F430: 20 26 73 70 72 61 5B 63 68 61 6E 6E 65 6C 5D 5B &spra[channel][
00F440: 71 70 6F 73 5D 3B 0D 0A 0D 0A 20 20 77 68 69 6C qpos];.... whil
00F450: 65 20 28 20 21 20 28 73 6F 75 6E 64 5F 63 68 65 e ( ! (sound_che
00F460: 63 6B 28 63 68 61 6E 62 69 74 29 20 26 20 37 29 ck(chanbit) & 7)
00F470: 29 3B 0D 0A 20 20 62 6C 74 28 64 65 73 74 5F 71 );.. blt(dest_q
00F480: 2C 20 73 70 2C 20 73 69 7A 65 6F 66 28 73 6F 75 , sp, sizeof(sou
00F490: 6E 64 5F 70 72 6F 67 72 61 6D 29 2D 32 29 3B 0D nd_program)-2);.
00F4A0: 0A 20 20 53 5F 71 75 65 75 65 28 64 65 73 74 5F . S_queue(dest_
00F4B0: 71 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 5F 6F 63 74 q);..}......_oct
00F4C0: 5F 66 61 63 74 6F 72 28 70 74 72 29 0D 0A 20 20 _factor(ptr)..
00F4D0: 5F 71 75 65 75 65 5F 70 74 72 20 70 74 72 3B 0D _queue_ptr ptr;.
00F4E0: 0A 7B 0D 0A 20 20 69 6E 74 20 6F 63 74 3B 0D 0A .{.. int oct;..
00F4F0: 0D 0A 20 20 6F 63 74 20 3D 20 31 3B 0D 0A 20 20 .. oct = 1;..
00F500: 77 68 69 6C 65 20 28 5F 73 5F 67 65 74 71 28 70 while (_s_getq(p
00F510: 74 72 29 20 3D 3D 20 27 5C 27 27 29 20 20 2B 2B tr) == '\'') ++
00F520: 6F 63 74 3B 0D 0A 20 20 72 65 74 75 72 6E 20 6F oct;.. return o
00F530: 63 74 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 5F 73 5F 67 ct;..}......_s_g
00F540: 65 74 71 28 70 74 72 29 0D 0A 20 20 5F 71 75 65 etq(ptr).. _que
00F550: 75 65 5F 70 74 72 20 70 74 72 3B 0D 0A 7B 0D 0A ue_ptr ptr;..{..
00F560: 20 20 5F 73 5F 71 5F 63 68 61 72 20 3D 20 70 74 _s_q_char = pt
00F570: 72 2D 3E 5F 71 5F 62 75 66 66 65 72 5B 70 74 72 r->_q_buffer[ptr
00F580: 2D 3E 5F 71 5F 6F 75 74 5F 70 6F 69 6E 74 65 72 ->_q_out_pointer
00F590: 5D 3B 0D 0A 20 20 70 74 72 2D 3E 5F 71 5F 6F 75 ];.. ptr->_q_ou
00F5A0: 74 5F 70 6F 69 6E 74 65 72 20 3D 20 28 70 74 72 t_pointer = (ptr
00F5B0: 2D 3E 5F 71 5F 6F 75 74 5F 70 6F 69 6E 74 65 72 ->_q_out_pointer
00F5C0: 20 2B 20 31 29 20 25 20 53 4F 46 54 5F 51 55 45 + 1) % SOFT_QUE
00F5D0: 55 45 3B 0D 0A 20 20 70 74 72 2D 3E 5F 71 5F 66 UE;.. ptr->_q_f
00F5E0: 72 65 65 5F 73 70 61 63 65 2B 2B 3B 0D 0A 20 20 ree_space++;..
00F5F0: 72 65 74 75 72 6E 20 5F 73 5F 71 5F 63 68 61 72 return _s_q_char
00F600: 20 20 63 61 73 65 20 27 59 27 20 3A 20 73 70 2D case 'Y' : sp-
00F610: 3E 5F 73 70 5F 61 6D 70 5F 65 6E 76 20 3D 20 5F >_sp_amp_env = _
00F620: 73 5F 67 65 74 71 28 70 74 72 29 3B 20 62 72 65 s_getq(ptr); bre
00F630: 61 6B 3B 0D 0A 20 20 20 20 20 20 63 61 73 65 20 ak;.. case
00F640: 27 5A 27 20 3A 20 73 70 2D 3E 5F 73 70 5F 74 6F 'Z' : sp->_sp_to
00F650: 6E 5F 65 6E 76 20 3D 20 5F 73 5F 67 65 74 71 28 n_env = _s_getq(
00F660: 70 74 72 29 3B 20 62 72 65 61 6B 3B 0D 0A 20 20 ptr); break;..
00F670: 20 20 20 20 63 61 73 65 20 27 4F 27 20 3A 20 73 case 'O' : s
00F680: 70 2D 3E 5F 73 70 5F 6F 63 74 61 76 65 20 20 3D p->_sp_octave =
00F690: 20 5F 73 5F 67 65 74 71 28 70 74 72 29 20 26 20 _s_getq(ptr) &
00F6A0: 37 20 3B 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 7 ; break;..
00F6B0: 20 20 63 61 73 65 20 27 54 27 20 3A 20 73 70 2D case 'T' : sp-
00F6C0: 3E 5F 73 70 5F 74 65 6D 70 6F 20 20 20 3D 20 28 >_sp_tempo = (
00F6D0: 31 35 30 30 20 2F 20 5F 73 5F 67 65 74 71 28 70 1500 / _s_getq(p
00F6E0: 74 72 29 29 3B 20 62 72 65 61 6B 3B 0D 0A 20 20 tr)); break;..
00F6F0: 20 20 20 20 64 65 66 61 75 6C 74 20 20 3A 20 69 default : i
00F700: 66 20 28 28 74 69 20 3D 20 5F 67 65 74 6E 6F 74 f ((ti = _getnot
00F710: 65 28 74 68 69 73 5F 73 65 62 29 29 20 3D 3D 20 e(this_seb)) ==
00F720: 31 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 1) break;..
00F730: 20 20 20 20 20 20 20 20 20 20 20 20 73 70 2D 3E sp->
00F740: 5F 73 70 5F 6E 6F 74 65 20 3D 20 74 69 3B 0D 0A _sp_note = ti;..
00F750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00F760: 20 69 66 20 28 5F 73 5F 71 5F 63 68 61 72 20 3C if (_s_q_char <
00F770: 20 27 20 27 29 20 74 69 20 3D 20 5F 73 5F 71 5F ' ') ti = _s_q_
00F780: 63 68 61 72 3B 0D 0A 20 20 20 20 20 20 20 20 20 char;..
00F790: 20 20 20 20 20 20 20 20 65 6C 73 65 20 20 20 20 else
00F7A0: 20 20 20 20 20 20 20 20 20 20 20 20 7B 74 69 20 {ti
00F7B0: 3D 20 34 3B 20 67 6F 74 20 3D 20 31 3B 7D 0D 0A = 4; got = 1;}..
00F7C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00F7D0: 20 73 70 2D 3E 5F 73 70 5F 64 75 72 61 74 69 6F sp->_sp_duratio
00F7E0: 6E 20 3D 20 73 70 2D 3E 5F 73 70 5F 74 65 6D 70 n = sp->_sp_temp
00F7F0: 6F 20 2A 20 74 69 3B 0D 0A 20 20 20 20 7D 0D 0A o * ti;.. }..
00F800: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00F810: 0D 00 00 00 02 09 4E E5 0D 00 41 02 00 00 00 02 ......N...A.....
00F820: 0D 00 46 02 00 00 00 02 0D 00 42 02 00 00 00 02 ..F.......B.....
00F830: 0D 00 47 02 00 00 00 02 0D 00 43 02 00 00 00 02 ..G.......C.....
00F840: 0D 00 48 02 00 00 00 02 0D 00 44 02 00 00 00 02 ..H.......D.....
00F850: 0D 00 49 02 00 00 00 02 0D 00 45 02 00 00 00 02 ..I.......E.....
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: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 5F 73 65 62 5F 70 ;..}......_seb_p
00F910: 74 72 20 5F 67 65 74 5F 73 65 62 5F 61 64 64 72 tr _get_seb_addr
00F920: 28 69 29 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 (i)..{.. static
00F930: 20 5F 73 65 5F 62 6C 6F 63 6B 20 73 5F 65 76 65 _se_block s_eve
00F940: 6E 74 5F 62 6C 6F 63 6B 5B 4D 41 58 43 48 41 4E nt_block[MAXCHAN
00F950: 5D 3B 0D 0A 0D 0A 20 20 72 65 74 75 72 6E 20 20 ];.... return
00F960: 26 73 5F 65 76 65 6E 74 5F 62 6C 6F 63 6B 5B 69 &s_event_block[i
00F970: 5D 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 53 5F 61 ];..}........S_a
00F980: 72 6D 5F 65 76 65 6E 74 28 63 68 61 6E 6E 65 6C rm_event(channel
00F990: 5F 62 69 74 2C 73 65 62 5F 61 64 64 29 0D 0A 7B _bit,seb_add)..{
00F9A0: 0D 0A 20 20 72 65 67 5F 61 20 20 3D 20 63 68 61 .. reg_a = cha
00F9B0: 6E 6E 65 6C 5F 62 69 74 3B 0D 0A 20 20 72 65 67 nnel_bit;.. reg
00F9C0: 5F 68 6C 20 3D 20 73 65 62 5F 61 64 64 3B 0D 0A _hl = seb_add;..
00F9D0: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C inline(.. L
00F9E0: 44 5F 41 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 61 D_A_from, ®_a
00F9F0: 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F ,.. LD_HL_fro
00FA00: 6D 2C 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 m,®_hl,..
00FA10: 43 41 4C 4C 2C 20 20 20 20 20 20 30 78 42 43 42 CALL, 0xBCB
00FA20: 30 29 3B 20 2F 2A 20 53 4F 55 4E 44 5F 41 52 4D 0); /* SOUND_ARM
00FA30: 5F 45 56 45 4E 54 20 2A 2F 0D 0A 7D 0D 0A 0D 0A _EVENT */..}....
00FA40: 0D 0A 53 5F 71 75 65 75 65 28 73 70 29 0D 0A 7B ..S_queue(sp)..{
00FA50: 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 73 70 3B .. reg_hl = sp;
00FA60: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
00FA70: 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 LD_HL_from, &re
00FA80: 67 5F 68 6C 2C 0D 0A 20 20 20 20 50 55 53 48 5F g_hl,.. PUSH_
00FA90: 49 58 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 IX,.. CALL,
00FAA0: 20 20 20 20 20 30 78 42 43 41 41 2C 20 2F 2A 20 0xBCAA, /*
00FAB0: 53 4F 55 4E 44 5F 51 55 45 55 45 20 2A 2F 0D 0A SOUND_QUEUE */..
00FAC0: 20 20 20 20 50 4F 50 5F 49 58 2C 0D 0A 20 20 20 POP_IX,..
00FAD0: 20 4C 44 5F 48 4C 5F 77 69 74 68 2C 20 30 2C 30 LD_HL_with, 0,0
00FAE0: 2C 0D 0A 20 20 20 20 52 4C 5F 4C 29 3B 0D 0A 7D ,.. RL_L);..}
00FAF0: 0D 0A 0D 0A 0D 0A 73 6F 75 6E 64 5F 63 68 65 63 ......sound_chec
00FB00: 6D 65 29 0D 0A 7B 0D 0A 20 20 69 6E 69 74 5F 65 me)..{.. init_e
00FB10: 76 65 6E 74 28 63 74 72 6C 5F 62 6C 6F 63 6B 20 vent(ctrl_block
00FB20: 2B 20 36 2C 20 20 66 75 6E 63 74 69 6F 6E 5F 6E + 6, function_n
00FB30: 61 6D 65 29 3B 0D 0A 0D 0A 20 20 72 65 67 5F 68 ame);.... reg_h
00FB40: 6C 20 3D 20 63 74 72 6C 5F 62 6C 6F 63 6B 3B 0D l = ctrl_block;.
00FB50: 0A 20 20 72 65 67 5F 64 65 20 3D 20 69 6E 69 74 . reg_de = init
00FB60: 69 61 6C 5F 74 69 6D 65 5F 64 65 6C 61 79 3B 0D ial_time_delay;.
00FB70: 0A 20 20 72 65 67 5F 62 63 20 3D 20 72 65 63 68 . reg_bc = rech
00FB80: 61 72 67 65 5F 64 65 6C 61 79 3B 20 20 2F 2A 20 arge_delay; /*
00FB90: 20 30 20 69 73 20 6F 6E 65 2D 73 68 6F 74 20 20 0 is one-shot
00FBA0: 2A 2F 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 */.. inline(..
00FBB0: 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 LD_HL_from, &
00FBC0: 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 5F reg_hl,.. LD_
00FBD0: 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 DE_from, ®_de
00FBE0: 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 5F 66 72 6F ,.. LD_BC_fro
00FBF0: 6D 2C 20 26 72 65 67 5F 62 63 2C 0D 0A 20 20 20 m, ®_bc,..
00FC00: 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 CALL, 0xB
00FC10: 43 45 39 29 3B 20 2F 2A 20 4B 4C 5F 41 44 44 5F CE9); /* KL_ADD_
00FC20: 54 49 43 4B 45 52 20 2A 2F 0D 0A 7D 0D 0A 0D 0A TICKER */..}....
00FC30: 0D 0A 69 6E 69 74 5F 65 76 65 6E 74 28 65 76 65 ..init_event(eve
00FC40: 6E 74 5F 62 6C 6F 63 6B 2C 20 66 75 6E 63 74 69 nt_block, functi
00FC50: 6F 6E 5F 6E 61 6D 65 29 0D 0A 7B 0D 0A 20 20 74 on_name)..{.. t
00FC60: 79 70 65 64 65 66 20 63 68 61 72 20 2A 63 70 3B ypedef char *cp;
00FC70: 0D 0A 20 20 74 79 70 65 64 65 66 20 75 6E 73 69 .. typedef unsi
00FC80: 67 6E 65 64 20 2A 75 70 3B 0D 0A 20 20 73 74 61 gned *up;.. sta
00FC90: 74 69 63 20 75 70 20 70 3B 0D 0A 0D 0A 20 20 72 tic up p;.... r
00FCA0: 65 67 5F 68 6C 20 3D 20 65 76 65 6E 74 5F 62 6C eg_hl = event_bl
00FCB0: 6F 63 6B 3B 20 20 20 20 20 2F 2A 20 20 73 74 61 ock; /* sta
00FCC0: 72 74 20 6F 66 20 65 76 65 6E 74 20 62 6C 6F 63 rt of event bloc
00FCD0: 6B 20 20 2A 2F 0D 0A 20 20 72 65 67 5F 62 63 20 k */.. reg_bc
00FCE0: 3D 20 30 78 38 30 46 46 3B 20 20 20 20 20 20 20 = 0x80FF;
00FCF0: 20 20 20 2F 2A 20 20 61 73 79 6E 63 68 72 6F 6E /* asynchron
00FD00: 6B 28 63 68 61 6E 62 69 74 29 0D 0A 20 20 63 68 k(chanbit).. ch
00FD10: 61 72 20 63 68 61 6E 62 69 74 3B 0D 0A 7B 0D 0A ar chanbit;..{..
00FD20: 20 20 72 65 67 5F 61 20 3D 20 63 68 61 6E 62 69 reg_a = chanbi
00FD30: 74 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 t;.. inline(..
00FD40: 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 26 72 LD_A_from, &r
00FD50: 65 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C eg_a,.. CALL,
00FD60: 20 20 20 20 20 20 30 78 42 43 41 44 2C 20 2F 2A 0xBCAD, /*
00FD70: 20 53 4F 55 4E 44 5F 43 48 45 43 4B 20 2A 2F 0D SOUND_CHECK */.
00FD80: 0A 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 . LD_A_into,
00FD90: 26 72 65 67 5F 61 29 3B 0D 0A 20 20 72 65 74 75 ®_a);.. retu
00FDA0: 72 6E 20 72 65 67 5F 61 3B 0D 0A 7D 0D 0A 0D 0A rn reg_a;..}....
00FDB0: 0D 0A 53 5F 72 65 6C 65 61 73 65 28 63 68 61 6E ..S_release(chan
00FDC0: 6E 65 6C 5F 62 69 74 73 29 0D 0A 7B 0D 0A 20 20 nel_bits)..{..
00FDD0: 72 65 67 5F 61 20 3D 20 63 68 61 6E 6E 65 6C 5F reg_a = channel_
00FDE0: 62 69 74 73 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 bits;.. inline(
00FDF0: 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C .. LD_A_from,
00FE00: 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 50 55 ®_a,.. PU
00FE10: 53 48 5F 49 58 2C 0D 0A 20 20 20 20 43 41 4C 4C SH_IX,.. CALL
00FE20: 2C 20 20 20 20 20 20 30 78 42 43 42 33 2C 20 2F , 0xBCB3, /
00FE30: 2A 20 53 4F 55 4E 44 5F 52 45 4C 45 41 53 45 20 * SOUND_RELEASE
00FE40: 2A 2F 0D 0A 20 20 20 20 50 4F 50 5F 49 58 29 3B */.. POP_IX);
00FE50: 0D 0A 7D 0D 0A 0D 0A 0D 0A 53 5F 61 6D 70 6C 5F ..}......S_ampl_
00FE60: 65 6E 76 65 6C 6F 70 65 28 6E 75 6D 62 65 72 2C envelope(number,
00FE70: 20 65 6E 76 65 6C 6F 70 65 29 0D 0A 7B 0D 0A 20 envelope)..{..
00FE80: 20 72 65 67 5F 61 20 20 3D 20 6E 75 6D 62 65 72 reg_a = number
00FE90: 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 65 6E ;.. reg_hl = en
00FEA0: 76 65 6C 6F 70 65 3B 0D 0A 20 20 69 6E 6C 69 6E velope;.. inlin
00FEB0: 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F e(.. LD_A_fro
00FEC0: 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 m, ®_a,..
00FED0: 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 LD_HL_from, &re
00FEE0: 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C g_hl,.. CALL,
00FEF0: 20 20 20 20 20 20 20 30 78 42 43 42 43 29 3B 20 0xBCBC);
00FF00: 6F 75 73 2C 20 61 6C 6C 20 52 41 4D 20 20 2A 2F ous, all RAM */
00FF10: 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 72 65 67 .. reg_de = reg
00FF20: 5F 68 6C 20 2B 20 37 3B 20 20 20 20 20 20 2F 2A _hl + 7; /*
00FF30: 20 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 event routine
00FF40: 61 74 20 65 6E 64 20 6F 66 20 62 6C 6F 63 6B 20 at end of block
00FF50: 20 2A 2F 0D 0A 20 20 70 20 20 20 20 20 20 3D 20 */.. p =
00FF60: 63 61 73 74 28 75 70 29 20 72 65 67 5F 64 65 3B cast(up) reg_de;
00FF70: 20 2F 2A 20 20 74 6F 20 70 6F 6B 65 20 63 6F 64 /* to poke cod
00FF80: 65 20 66 6F 72 20 72 6F 75 74 69 6E 65 20 20 2A e for routine *
00FF90: 2F 0D 0A 20 20 2A 70 20 20 20 20 20 3D 20 30 78 /.. *p = 0x
00FFA0: 43 44 45 35 3B 20 20 20 20 20 20 20 20 20 20 2F CDE5; /
00FFB0: 2A 20 20 50 55 53 48 5F 48 4C 3B 20 20 43 41 4C * PUSH_HL; CAL
00FFC0: 4C 20 2E 2E 2E 20 20 20 20 20 2A 2F 0D 0A 20 20 L ... */..
00FFD0: 2A 2B 2B 70 20 20 20 3D 20 66 75 6E 63 74 69 6F *++p = functio
00FFE0: 6E 5F 6E 61 6D 65 3B 20 20 20 2F 2A 20 20 2E 2E n_name; /* ..
00FFF0: 2E 20 74 68 65 20 72 65 61 6C 20 66 75 6E 63 74 . the real funct
010000: 69 6F 6E 20 20 20 20 20 2A 2F 0D 0A 20 20 2A 63 ion */.. *c
010010: 61 73 74 28 63 70 29 2B 2B 70 20 3D 20 30 78 43 ast(cp)++p = 0xC
010020: 39 3B 20 20 20 20 20 20 2F 2A 20 20 61 6E 64 20 9; /* and
010030: 72 65 74 75 72 6E 20 74 6F 20 69 6E 74 65 72 72 return to interr
010040: 75 70 74 65 64 20 63 6F 64 65 20 20 2A 2F 0D 0A upted code */..
010050: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C inline(.. L
010060: 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F D_HL_from, ®_
010070: 68 6C 2C 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 hl,.. LD_DE_f
010080: 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 rom, ®_de,..
010090: 20 20 20 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 LD_BC_from, &
0100A0: 72 65 67 5F 62 63 2C 0D 0A 20 20 20 20 43 41 4C reg_bc,.. CAL
0100B0: 4C 2C 20 20 20 20 20 20 20 30 78 42 43 45 46 29 L, 0xBCEF)
0100C0: 3B 20 2F 2A 20 4B 4C 5F 49 4E 49 54 5F 45 56 45 ; /* KL_INIT_EVE
0100D0: 4E 54 20 2A 2F 0D 0A 7D 0D 0A 0D 0A 0D 0A 62 6F NT */..}......bo
0100E0: 72 64 65 72 28 63 6F 6C 6F 75 72 31 2C 20 63 6F rder(colour1, co
0100F0: 6C 6F 75 72 32 29 0D 0A 7B 0D 0A 20 20 72 65 67 lour2)..{.. reg
010100: 2F 2A 20 53 4F 55 4E 44 5F 41 4D 50 4C 5F 45 4E /* SOUND_AMPL_EN
010110: 56 45 4C 4F 50 45 20 2A 2F 0D 0A 7D 0D 0A 0D 0A VELOPE */..}....
010120: 0D 0A 53 5F 74 6F 6E 65 5F 65 6E 76 65 6C 6F 70 ..S_tone_envelop
010130: 65 28 6E 75 6D 62 65 72 2C 20 65 6E 76 65 6C 6F e(number, envelo
010140: 70 65 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 pe)..{.. reg_a
010150: 20 3D 20 6E 75 6D 62 65 72 3B 0D 0A 20 20 72 65 = number;.. re
010160: 67 5F 68 6C 20 3D 20 65 6E 76 65 6C 6F 70 65 3B g_hl = envelope;
010170: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
010180: 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 20 26 72 65 LD_A_from, &re
010190: 67 5F 61 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F g_a,.. LD_HL_
0101A0: 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A from, ®_hl,..
0101B0: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
0101C0: 30 78 42 43 42 46 29 3B 20 2F 2A 20 53 4F 55 4E 0xBCBF); /* SOUN
0101D0: 44 5F 54 4F 4E 45 5F 45 4E 56 45 4C 4F 50 45 20 D_TONE_ENVELOPE
0101E0: 2A 2F 0D 0A 7D 0D 0A 0D 0A 0D 0A 53 5F 68 6F 6C */..}......S_hol
0101F0: 64 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 d()..{.. inline
010200: 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 (.. CALL,
010210: 20 20 20 30 78 42 43 42 36 2C 20 2F 2A 20 53 4F 0xBCB6, /* SO
010220: 55 4E 44 5F 48 4F 4C 44 20 2A 2F 0D 0A 20 20 20 UND_HOLD */..
010230: 20 4C 44 5F 48 4C 5F 77 69 74 68 2C 20 30 2C 30 LD_HL_with, 0,0
010240: 2C 0D 0A 20 20 20 20 52 4C 5F 4C 29 3B 0D 0A 7D ,.. RL_L);..}
010250: 0D 0A 0D 0A 0D 0A 53 5F 63 6F 6E 74 69 6E 75 65 ......S_continue
010260: 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 ()..{.. inline(
010270: 0D 0A 20 20 20 20 50 55 53 48 5F 49 58 2C 0D 0A .. PUSH_IX,..
010280: 20 20 20 20 43 41 4C 4C 2C 20 20 20 30 78 42 43 CALL, 0xBC
010290: 42 39 2C 20 2F 2A 20 53 4F 55 4E 44 5F 43 4F 4E B9, /* SOUND_CON
0102A0: 54 49 4E 55 45 20 2A 2F 0D 0A 20 20 20 20 50 4F TINUE */.. PO
0102B0: 50 5F 49 58 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F P_IX);..}....../
0102C0: 2A 20 54 68 65 20 6E 65 78 74 20 66 75 6E 63 74 * The next funct
0102D0: 69 6F 6E 20 63 75 72 65 73 20 61 20 52 4F 4D 20 ion cures a ROM
0102E0: 70 72 6F 62 6C 65 6D 20 61 6E 64 20 73 68 6F 75 problem and shou
0102F0: 6C 64 20 62 65 20 63 61 6C 6C 65 64 20 69 66 20 ld be called if
010300: 5F 62 63 20 3D 20 28 63 6F 6C 6F 75 72 31 20 3C _bc = (colour1 <
010310: 3C 20 38 29 20 2B 20 63 6F 6C 6F 75 72 32 3B 0D < 8) + colour2;.
010320: 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 . inline(..
010330: 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_BC_from, ®
010340: 5F 62 63 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 _bc,.. CALL,
010350: 20 20 20 20 20 20 30 78 42 43 33 38 29 3B 20 2F 0xBC38); /
010360: 2A 20 53 43 52 5F 53 45 54 5F 42 4F 52 44 45 52 * SCR_SET_BORDER
010370: 20 2A 2F 0D 0A 7D 0D 0A 0D 0A 0D 0A 63 61 73 73 */..}......cass
010380: 5F 73 70 65 65 64 28 73 70 65 65 64 29 0D 0A 7B _speed(speed)..{
010390: 0D 0A 20 20 69 66 20 28 20 21 20 73 70 65 65 64 .. if ( ! speed
0103A0: 29 0D 0A 20 20 20 20 69 6E 6C 69 6E 65 28 0D 0A ).. inline(..
0103B0: 20 20 20 20 20 20 4C 44 5F 48 4C 5F 77 69 74 68 LD_HL_with
0103C0: 2C 20 33 33 33 2C 0D 0A 20 20 20 20 20 20 4C 44 , 333,.. LD
0103D0: 5F 41 5F 77 69 74 68 2C 20 20 20 32 35 2C 0D 0A _A_with, 25,..
0103E0: 20 20 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 CALL,
0103F0: 20 20 30 78 42 43 36 38 29 3B 20 2F 2A 20 43 41 0xBC68); /* CA
010400: 53 5F 53 45 54 5F 53 50 45 45 44 20 2A 2F 0D 0A S_SET_SPEED */..
010410: 20 20 69 66 20 28 73 70 65 65 64 20 3D 3D 20 31 if (speed == 1
010420: 29 0D 0A 20 20 20 20 69 6E 6C 69 6E 65 28 0D 0A ).. inline(..
010430: 20 20 20 20 20 20 4C 44 5F 48 4C 5F 77 69 74 68 LD_HL_with
010440: 2C 20 31 36 37 2C 0D 0A 20 20 20 20 20 20 4C 44 , 167,.. LD
010450: 5F 41 5F 77 69 74 68 2C 20 20 20 35 30 2C 0D 0A _A_with, 50,..
010460: 20 20 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 CALL,
010470: 20 20 30 78 42 43 36 38 29 3B 20 2F 2A 20 43 41 0xBC68); /* CA
010480: 53 5F 53 45 54 5F 53 50 45 45 44 20 2A 2F 0D 0A S_SET_SPEED */..
010490: 7D 0D 0A 0D 0A 0D 0A 63 61 74 61 6C 6F 67 28 29 }......catalog()
0104A0: 0D 0A 7B 0D 0A 20 20 63 68 61 72 20 63 61 73 5F ..{.. char cas_
0104B0: 62 75 66 66 65 72 5B 32 30 34 38 5D 3B 0D 0A 0D buffer[2048];...
0104C0: 0A 20 20 72 65 67 5F 64 65 20 3D 20 63 61 73 74 . reg_de = cast
0104D0: 28 75 6E 73 69 67 6E 65 64 29 20 63 61 73 5F 62 (unsigned) cas_b
0104E0: 75 66 66 65 72 3B 0D 0A 20 20 69 6E 6C 69 6E 65 uffer;.. inline
0104F0: 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F (.. LD_DE_fro
010500: 61 6E 64 20 6F 6E 6C 79 20 69 66 3A 0D 0A 20 20 and only if:..
010510: 20 20 74 68 65 20 70 72 6F 67 72 61 6D 20 69 73 the program is
010520: 20 62 65 69 6E 67 20 63 6F 6D 70 69 6C 65 64 20 being compiled
010530: 6F 6E 20 61 20 43 50 43 34 36 34 2C 0D 0A 20 20 on a CPC464,..
010540: 20 20 61 6E 64 20 69 74 20 75 73 65 73 20 22 70 and it uses "p
010550: 6C 61 79 28 29 22 2C 0D 0A 20 20 20 20 61 6E 64 lay()",.. and
010560: 20 69 74 20 69 73 20 62 65 69 6E 67 20 23 74 72 it is being #tr
010570: 61 6E 73 6C 61 74 65 64 2E 0D 0A 2A 2F 0D 0A 0D anslated...*/...
010580: 0A 66 69 78 5F 34 36 34 5F 73 6F 75 6E 64 5F 69 .fix_464_sound_i
010590: 6E 74 65 72 72 75 70 74 73 28 29 0D 0A 7B 0D 0A nterrupts()..{..
0105A0: 20 20 73 74 61 74 69 63 20 63 68 61 72 20 74 69 static char ti
0105B0: 63 6B 5F 62 6C 6F 63 6B 5B 31 33 5D 2C 0D 0A 20 ck_block[13],..
0105C0: 20 20 20 73 79 6E 63 5F 71 5B 5D 20 3D 20 7B 0D sync_q[] = {.
0105D0: 0A 20 20 20 20 30 78 46 35 2C 20 30 78 43 35 2C . 0xF5, 0xC5,
0105E0: 20 30 78 44 35 2C 20 30 78 45 35 2C 0D 0A 20 20 0xD5, 0xE5,..
0105F0: 20 20 30 78 43 44 2C 20 30 78 32 31 2C 20 30 78 0xCD, 0x21, 0x
010600: 42 39 2C 0D 0A 20 20 20 20 30 78 33 30 2C 20 30 B9,.. 0x30, 0
010610: 78 31 31 2C 0D 0A 20 20 20 20 30 78 43 44 2C 20 x11,.. 0xCD,
010620: 30 78 46 42 2C 20 30 78 42 43 2C 0D 0A 20 20 20 0xFB, 0xBC,..
010630: 20 30 78 33 30 2C 20 30 78 30 43 2C 0D 0A 20 20 0x30, 0x0C,..
010640: 20 20 30 78 45 35 2C 20 30 78 46 35 2C 0D 0A 20 0xE5, 0xF5,..
010650: 20 20 20 30 78 43 44 2C 20 30 78 46 45 2C 20 30 0xCD, 0xFE, 0
010660: 78 42 43 2C 0D 0A 20 20 20 20 30 78 46 31 2C 20 xBC,.. 0xF1,
010670: 30 78 45 31 2C 0D 0A 20 20 20 20 30 78 43 44 2C 0xE1,.. 0xCD,
010680: 20 30 78 30 31 2C 20 30 78 42 44 2C 0D 0A 20 20 0x01, 0xBD,..
010690: 20 20 30 78 31 38 2C 20 30 78 45 46 2C 0D 0A 20 0x18, 0xEF,..
0106A0: 20 20 20 30 78 45 31 2C 20 30 78 44 31 2C 20 30 0xE1, 0xD1, 0
0106B0: 78 43 31 2C 20 30 78 46 31 2C 0D 0A 20 20 20 20 xC1, 0xF1,..
0106C0: 30 78 43 39 7D 3B 0D 0A 0D 0A 20 20 69 6E 6C 69 0xC9};.... inli
0106D0: 6E 65 28 0D 0A 20 20 20 20 30 78 32 31 2C 20 74 ne(.. 0x21, t
0106E0: 69 63 6B 5F 62 6C 6F 63 6B 2C 0D 0A 20 20 20 20 ick_block,..
0106F0: 30 78 43 44 2C 20 30 78 42 43 45 43 2C 0D 0A 20 0xCD, 0xBCEC,..
010700: 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 m, ®_de,..
010710: 20 50 55 53 48 5F 49 58 2C 0D 0A 20 20 20 20 43 PUSH_IX,.. C
010720: 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 43 39 ALL, 0xBC9
010730: 42 2C 20 20 2F 2A 20 43 41 53 5F 43 41 54 41 4C B, /* CAS_CATAL
010740: 4F 47 20 2A 2F 0D 0A 20 20 20 20 50 4F 50 5F 49 OG */.. POP_I
010750: 58 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 63 6C 73 28 X);..}......cls(
010760: 29 0D 0A 7B 0D 0A 20 20 72 61 77 6F 75 74 28 27 )..{.. rawout('
010770: 5C 66 27 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 65 76 \f');..}......ev
010780: 65 6E 74 5F 64 69 73 61 62 6C 65 28 29 0D 0A 7B ent_disable()..{
010790: 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C .. inline(CALL,
0107A0: 20 30 78 42 44 30 34 29 3B 20 2F 2A 20 4B 4C 5F 0xBD04); /* KL_
0107B0: 45 56 45 4E 54 5F 44 49 53 41 42 4C 45 20 2A 2F EVENT_DISABLE */
0107C0: 0D 0A 7D 0D 0A 0D 0A 0D 0A 65 76 65 6E 74 5F 65 ..}......event_e
0107D0: 6E 61 62 6C 65 28 29 0D 0A 7B 0D 0A 20 20 69 6E nable()..{.. in
0107E0: 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 42 44 30 line(CALL, 0xBD0
0107F0: 37 29 3B 20 2F 2A 20 4B 4C 5F 45 56 45 4E 54 5F 7); /* KL_EVENT_
010800: 45 4E 41 42 4C 45 20 2A 2F 0D 0A 7D 0D 0A 0D 0A ENABLE */..}....
010810: 0D 0A 66 6C 61 73 68 5F 73 70 65 65 64 28 74 69 ..flash_speed(ti
010820: 6D 65 31 2C 20 74 69 6D 65 32 29 0D 0A 7B 0D 0A me1, time2)..{..
010830: 20 20 72 65 67 5F 68 6C 20 3D 20 28 74 69 6D 65 reg_hl = (time
010840: 31 20 3C 3C 20 38 29 20 2B 20 74 69 6D 65 32 3B 1 << 8) + time2;
010850: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
010860: 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 LD_HL_from, &re
010870: 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C g_hl,.. CALL,
010880: 20 20 20 20 20 20 20 30 78 42 43 33 45 29 3B 20 0xBC3E);
010890: 2F 2A 20 53 43 52 5F 53 45 54 5F 46 4C 41 53 48 /* SCR_SET_FLASH
0108A0: 49 4E 47 20 2A 2F 0D 0A 7D 0D 0A 0D 0A 0D 0A 69 ING */..}......i
0108B0: 6E 6B 28 69 6E 6B 5F 74 6F 5F 73 65 74 75 70 2C nk(ink_to_setup,
0108C0: 20 63 6F 6C 6F 75 72 31 2C 20 63 6F 6C 6F 75 72 colour1, colour
0108D0: 32 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 20 2)..{.. reg_a
0108E0: 3D 20 69 6E 6B 5F 74 6F 5F 73 65 74 75 70 3B 0D = ink_to_setup;.
0108F0: 0A 20 20 72 65 67 5F 62 63 20 3D 20 28 63 6F 6C . reg_bc = (col
010900: 20 20 20 30 78 32 31 2C 20 36 2B 63 61 73 74 28 0x21, 6+cast(
010910: 69 6E 74 29 74 69 63 6B 5F 62 6C 6F 63 6B 2C 0D int)tick_block,.
010920: 0A 20 20 20 20 30 78 30 31 2C 20 30 78 38 30 46 . 0x01, 0x80F
010930: 46 2C 0D 0A 20 20 20 20 30 78 31 31 2C 20 73 79 F,.. 0x11, sy
010940: 6E 63 5F 71 2C 0D 0A 20 20 20 20 30 78 43 44 2C nc_q,.. 0xCD,
010950: 20 30 78 42 43 45 46 2C 0D 0A 20 20 20 20 30 78 0xBCEF,.. 0x
010960: 32 31 2C 20 74 69 63 6B 5F 62 6C 6F 63 6B 2C 0D 21, tick_block,.
010970: 0A 20 20 20 20 30 78 31 31 2C 20 32 2C 30 2C 0D . 0x11, 2,0,.
010980: 0A 20 20 20 20 30 78 30 31 2C 20 35 2C 30 2C 0D . 0x01, 5,0,.
010990: 0A 20 20 20 20 30 78 43 44 2C 20 30 78 42 43 45 . 0xCD, 0xBCE
0109A0: 39 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 61 66 74 65 9);..}......afte
0109B0: 72 28 64 65 6C 61 79 5F 69 6E 5F 74 69 63 6B 73 r(delay_in_ticks
0109C0: 2C 20 63 6F 6E 74 72 6F 6C 5F 62 6C 6F 63 6B 2C , control_block,
0109D0: 20 66 75 6E 63 74 69 6F 6E 5F 6E 61 6D 65 29 0D function_name).
0109E0: 0A 7B 0D 0A 20 20 61 64 64 5F 74 69 63 6B 65 72 .{.. add_ticker
0109F0: 28 63 6F 6E 74 72 6F 6C 5F 62 6C 6F 63 6B 2C 20 (control_block,
010A00: 64 65 6C 61 79 5F 69 6E 5F 74 69 63 6B 73 2C 20 delay_in_ticks,
010A10: 30 2C 20 66 75 6E 63 74 69 6F 6E 5F 6E 61 6D 65 0, function_name
010A20: 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 65 76 65 72 79 );..}......every
010A30: 28 70 65 72 69 6F 64 5F 69 6E 5F 74 69 63 6B 73 (period_in_ticks
010A40: 2C 20 63 6F 6E 74 72 6F 6C 5F 62 6C 6F 63 6B 2C , control_block,
010A50: 20 66 75 6E 63 74 69 6F 6E 5F 6E 61 6D 65 29 0D function_name).
010A60: 0A 7B 0D 0A 20 20 61 64 64 5F 74 69 63 6B 65 72 .{.. add_ticker
010A70: 28 63 6F 6E 74 72 6F 6C 5F 62 6C 6F 63 6B 2C 20 (control_block,
010A80: 70 65 72 69 6F 64 5F 69 6E 5F 74 69 63 6B 73 2C period_in_ticks,
010A90: 20 70 65 72 69 6F 64 5F 69 6E 5F 74 69 63 6B 73 period_in_ticks
010AA0: 2C 20 66 75 6E 63 74 69 6F 6E 5F 6E 61 6D 65 29 , function_name)
010AB0: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 61 64 64 5F 74 69 ;..}......add_ti
010AC0: 63 6B 65 72 28 63 74 72 6C 5F 62 6C 6F 63 6B 2C cker(ctrl_block,
010AD0: 20 69 6E 69 74 69 61 6C 5F 74 69 6D 65 5F 64 65 initial_time_de
010AE0: 6C 61 79 2C 20 72 65 63 68 61 72 67 65 5F 64 65 lay, recharge_de
010AF0: 6C 61 79 2C 20 66 75 6E 63 74 69 6F 6E 5F 6E 61 lay, function_na
010B00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
010B10: 0E 00 00 00 02 09 4E E5 0E 00 41 02 00 00 00 02 ......N...A.....
010B20: 0E 00 46 02 00 00 00 02 0E 00 42 02 00 00 00 02 ..F.......B.....
010B30: 0E 00 47 02 00 00 00 02 0E 00 43 02 00 00 00 02 ..G.......C.....
010B40: 0E 00 48 02 00 00 00 02 0E 00 44 02 00 00 00 02 ..H.......D.....
010B50: 0E 00 49 02 00 00 00 02 0E 00 45 02 00 00 00 02 ..I.......E.....
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: 6F 75 72 31 20 3C 3C 20 38 29 20 2B 20 63 6F 6C our1 << 8) + col
010C10: 6F 75 72 32 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 our2;.. inline(
010C20: 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C .. LD_A_from,
010C30: 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 4C ®_a,.. L
010C40: 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 5F D_BC_from, ®_
010C50: 62 63 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 bc,.. CALL,
010C60: 20 20 20 20 20 30 78 42 43 33 32 29 3B 20 2F 2A 0xBC32); /*
010C70: 20 53 43 52 5F 53 45 54 5F 49 4E 4B 20 2A 2F 0D SCR_SET_INK */.
010C80: 0A 7D 0D 0A 0D 0A 0D 0A 69 6E 74 20 69 6E 6B 65 .}......int inke
010C90: 79 28 6B 65 79 5F 6E 75 6D 62 65 72 29 0D 0A 7B y(key_number)..{
010CA0: 0D 0A 20 20 72 65 67 5F 61 20 3D 20 6B 65 79 5F .. reg_a = key_
010CB0: 6E 75 6D 62 65 72 3B 0D 0A 20 20 69 6E 6C 69 6E number;.. inlin
010CC0: 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F e(.. LD_A_fro
010CD0: 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 m, ®_a,..
010CE0: 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 CALL, 0xB
010CF0: 42 31 45 2C 20 2F 2A 20 4B 4D 5F 54 45 53 54 5F B1E, /* KM_TEST_
010D00: 4B 45 59 20 2A 2F 0D 0A 20 20 20 20 4C 44 5F 42 KEY */.. LD_B
010D10: 5F 77 69 74 68 2C 20 30 2C 0D 0A 20 20 20 20 4A _with, 0,.. J
010D20: 52 5F 5A 2C 20 31 2C 0D 0A 20 20 20 20 49 4E 43 R_Z, 1,.. INC
010D30: 5F 42 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 5F 69 _B,.. LD_BC_i
010D40: 6E 74 6F 2C 20 26 72 65 67 5F 62 63 29 3B 0D 0A nto, ®_bc);..
010D50: 0D 0A 20 20 72 65 74 75 72 6E 20 20 28 72 65 67 .. return (reg
010D60: 5F 62 63 20 26 20 30 78 31 30 30 29 20 20 3F 20 _bc & 0x100) ?
010D70: 20 28 72 65 67 5F 62 63 20 26 20 30 78 41 30 29 (reg_bc & 0xA0)
010D80: 20 20 3A 20 20 2D 31 3B 0D 0A 7D 0D 0A 0D 0A 0D : -1;..}.....
010D90: 0A 63 68 61 72 20 2A 69 6E 73 74 72 28 6D 61 69 .char *instr(mai
010DA0: 6E 5F 73 74 72 69 6E 67 2C 20 73 75 62 5F 73 74 n_string, sub_st
010DB0: 72 69 6E 67 29 0D 0A 20 20 63 68 61 72 20 2A 6D ring).. char *m
010DC0: 61 69 6E 5F 73 74 72 69 6E 67 2C 20 2A 73 75 62 ain_string, *sub
010DD0: 5F 73 74 72 69 6E 67 3B 0D 0A 7B 0D 0A 20 20 73 _string;..{.. s
010DE0: 74 61 74 69 63 20 69 6E 74 20 20 6C 65 6E 67 74 tatic int lengt
010DF0: 68 3B 0D 0A 0D 0A 20 20 6C 65 6E 67 74 68 20 3D h;.... length =
010E00: 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 63 ;..{.. static c
010E10: 68 61 72 20 2A 73 3B 0D 0A 20 20 73 74 61 74 69 har *s;.. stati
010E20: 63 20 69 6E 74 20 20 63 3B 0D 0A 0D 0A 20 20 66 c int c;.... f
010E30: 6F 72 20 28 73 20 3D 20 73 74 72 69 6E 67 3B 20 or (s = string;
010E40: 63 20 3D 20 2A 73 3B 20 2B 2B 73 29 20 2A 73 20 c = *s; ++s) *s
010E50: 3D 20 74 6F 6C 6F 77 65 72 28 63 29 3B 0D 0A 20 = tolower(c);..
010E60: 20 72 65 74 75 72 6E 20 73 74 72 69 6E 67 3B 0D return string;.
010E70: 0A 7D 0D 0A 0D 0A 0D 0A 63 68 61 72 20 2A 73 74 .}......char *st
010E80: 72 75 70 70 65 72 28 73 74 72 69 6E 67 29 0D 0A rupper(string)..
010E90: 20 20 63 68 61 72 20 2A 73 74 72 69 6E 67 3B 0D char *string;.
010EA0: 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 63 68 61 .{.. static cha
010EB0: 72 20 2A 73 3B 0D 0A 20 20 73 74 61 74 69 63 20 r *s;.. static
010EC0: 69 6E 74 20 20 63 3B 0D 0A 0D 0A 20 20 66 6F 72 int c;.... for
010ED0: 20 28 73 20 3D 20 73 74 72 69 6E 67 3B 20 63 20 (s = string; c
010EE0: 3D 20 2A 73 3B 20 2B 2B 73 29 20 2A 73 20 3D 20 = *s; ++s) *s =
010EF0: 74 6F 75 70 70 65 72 28 63 29 3B 0D 0A 20 20 72 toupper(c);.. r
010F00: 65 74 75 72 6E 20 73 74 72 69 6E 67 3B 0D 0A 7D eturn string;..}
010F10: 0D 0A 0D 0A 0D 0A 73 79 6D 62 6F 6C 28 63 68 61 ......symbol(cha
010F20: 72 61 63 74 65 72 5F 6E 75 6D 62 65 72 2C 20 6D racter_number, m
010F30: 61 74 72 69 78 29 0D 0A 7B 0D 0A 20 20 72 65 67 atrix)..{.. reg
010F40: 5F 61 20 20 3D 20 63 68 61 72 61 63 74 65 72 5F _a = character_
010F50: 6E 75 6D 62 65 72 3B 0D 0A 20 20 72 65 67 5F 68 number;.. reg_h
010F60: 6C 20 3D 20 6D 61 74 72 69 78 3B 0D 0A 20 20 69 l = matrix;.. i
010F70: 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 nline(.. LD_A
010F80: 5F 66 72 6F 6D 2C 20 20 26 72 65 67 5F 61 2C 0D _from, ®_a,.
010F90: 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C . LD_HL_from,
010FA0: 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 ®_hl,.. C
010FB0: 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 42 41 ALL, 0xBBA
010FC0: 38 29 3B 20 2F 2A 20 54 58 54 5F 53 45 54 5F 4D 8); /* TXT_SET_M
010FD0: 41 54 52 49 58 20 2A 2F 0D 0A 7D 0D 0A 0D 0A 0D ATRIX */..}.....
010FE0: 0A 73 79 6D 62 6F 6C 5F 61 66 74 65 72 28 6E 75 .symbol_after(nu
010FF0: 6D 62 65 72 2C 20 74 61 62 6C 65 5F 6D 65 6D 6F mber, table_memo
011000: 20 73 74 72 6C 65 6E 28 73 75 62 5F 73 74 72 69 strlen(sub_stri
011010: 6E 67 29 3B 0D 0A 0D 0A 20 20 64 6F 20 20 69 66 ng);.... do if
011020: 20 28 20 21 20 73 74 72 6E 63 6D 70 28 6D 61 69 ( ! strncmp(mai
011030: 6E 5F 73 74 72 69 6E 67 2C 20 73 75 62 5F 73 74 n_string, sub_st
011040: 72 69 6E 67 2C 20 6C 65 6E 67 74 68 29 29 20 20 ring, length))
011050: 72 65 74 75 72 6E 20 6D 61 69 6E 5F 73 74 72 69 return main_stri
011060: 6E 67 3B 0D 0A 20 20 77 68 69 6C 65 20 28 2A 2B ng;.. while (*+
011070: 2B 6D 61 69 6E 5F 73 74 72 69 6E 67 29 3B 0D 0A +main_string);..
011080: 0D 0A 20 20 72 65 74 75 72 6E 20 30 3B 20 20 2F .. return 0; /
011090: 2A 20 20 3D 3D 20 4E 55 4C 4C 20 20 2A 2F 0D 0A * == NULL */..
0110A0: 7D 0D 0A 0D 0A 0D 0A 69 74 6F 62 28 6E 2C 20 73 }......itob(n, s
0110B0: 74 72 69 6E 67 2C 20 70 72 65 63 69 73 69 6F 6E tring, precision
0110C0: 29 0D 0A 20 20 63 68 61 72 20 2A 73 74 72 69 6E ).. char *strin
0110D0: 67 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 g;..{.. static
0110E0: 69 6E 74 20 69 2C 20 63 3B 0D 0A 20 20 73 74 61 int i, c;.. sta
0110F0: 74 69 63 20 63 68 61 72 20 2A 73 3B 0D 0A 0D 0A tic char *s;....
011100: 20 20 73 20 3D 20 73 74 72 69 6E 67 3B 0D 0A 20 s = string;..
011110: 20 66 6F 72 20 28 69 3D 70 72 65 63 69 73 69 6F for (i=precisio
011120: 6E 3B 20 69 3B 20 29 0D 0A 20 20 20 20 2A 73 2B n; i; ).. *s+
011130: 2B 20 3D 20 6E 20 26 20 28 31 20 3C 3C 20 2D 2D + = n & (1 << --
011140: 69 29 20 20 3F 20 20 27 31 27 20 20 3A 20 20 27 i) ? '1' : '
011150: 30 27 3B 0D 0A 20 20 2A 73 20 3D 20 30 3B 0D 0A 0';.. *s = 0;..
011160: 20 20 72 65 74 75 72 6E 20 63 61 73 74 28 69 6E return cast(in
011170: 74 29 73 74 72 69 6E 67 3B 0D 0A 7D 0D 0A 0D 0A t)string;..}....
011180: 0D 0A 6A 6F 79 28 6A 6F 79 73 74 69 63 6B 5F 6E ..joy(joystick_n
011190: 75 6D 62 65 72 29 0D 0A 7B 0D 0A 20 20 69 6E 6C umber)..{.. inl
0111A0: 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 ine(.. CALL,
0111B0: 20 20 20 20 20 20 30 78 42 42 32 34 2C 20 2F 2A 0xBB24, /*
0111C0: 20 4B 4D 5F 47 45 54 5F 4A 4F 59 53 54 49 43 4B KM_GET_JOYSTICK
0111D0: 20 2A 2F 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 */.. LD_HL_i
0111E0: 6E 74 6F 2C 20 26 72 65 67 5F 68 6C 29 3B 0D 0A nto, ®_hl);..
0111F0: 0D 0A 20 20 72 65 74 75 72 6E 20 20 28 6A 6F 79 .. return (joy
011200: 72 79 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 64 65 ry)..{.. reg_de
011210: 20 3D 20 6E 75 6D 62 65 72 3B 0D 0A 20 20 72 65 = number;.. re
011220: 67 5F 68 6C 20 3D 20 74 61 62 6C 65 5F 6D 65 6D g_hl = table_mem
011230: 6F 72 79 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D ory;.. inline(.
011240: 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C . LD_DE_from,
011250: 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C ®_de,.. L
011260: 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F D_HL_from, ®_
011270: 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 hl,.. CALL,
011280: 20 20 20 20 20 30 78 42 42 41 42 29 3B 20 2F 2A 0xBBAB); /*
011290: 20 54 58 54 5F 53 45 54 5F 4D 5F 54 41 42 4C 45 TXT_SET_M_TABLE
0112A0: 20 2A 2F 0D 0A 7D 0D 0A 0D 0A 0D 0A 74 69 6D 65 */..}......time
0112B0: 28 61 72 72 61 79 29 0D 0A 20 20 69 6E 74 20 61 (array).. int a
0112C0: 72 72 61 79 5B 32 5D 3B 0D 0A 7B 0D 0A 20 20 69 rray[2];..{.. i
0112D0: 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C nline(.. CALL
0112E0: 2C 20 20 20 20 20 20 20 30 78 42 44 30 44 2C 20 , 0xBD0D,
0112F0: 2F 2A 20 4B 4C 5F 54 49 4D 45 5F 50 4C 45 41 53 /* KL_TIME_PLEAS
011300: 45 20 2A 2F 0D 0A 20 20 20 20 4C 44 5F 44 45 5F E */.. LD_DE_
011310: 69 6E 74 6F 2C 20 26 72 65 67 5F 64 65 2C 0D 0A into, ®_de,..
011320: 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C 20 LD_HL_into,
011330: 26 72 65 67 5F 68 6C 29 3B 0D 0A 20 20 61 72 72 ®_hl);.. arr
011340: 61 79 5B 30 5D 20 3D 20 72 65 67 5F 68 6C 3B 0D ay[0] = reg_hl;.
011350: 0A 20 20 61 72 72 61 79 5B 31 5D 20 3D 20 72 65 . array[1] = re
011360: 67 5F 64 65 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 77 72 g_de;..}......wr
011370: 69 74 65 5F 66 69 6C 65 28 66 69 6C 65 6E 61 6D ite_file(filenam
011380: 65 2C 20 61 64 64 72 65 73 73 2C 20 6C 65 6E 67 e, address, leng
011390: 74 68 29 0D 0A 20 20 63 68 61 72 20 20 20 20 2A th).. char *
0113A0: 66 69 6C 65 6E 61 6D 65 2C 20 2A 61 64 64 72 65 filename, *addre
0113B0: 73 73 3B 0D 0A 20 20 75 6E 73 69 67 6E 65 64 20 ss;.. unsigned
0113C0: 6C 65 6E 67 74 68 3B 0D 0A 7B 0D 0A 20 20 46 49 length;..{.. FI
0113D0: 4C 45 20 2A 66 69 6C 65 5F 70 6F 69 6E 74 65 72 LE *file_pointer
0113E0: 3B 0D 0A 0D 0A 20 20 69 66 20 28 20 21 20 28 66 ;.... if ( ! (f
0113F0: 69 6C 65 5F 70 6F 69 6E 74 65 72 20 3D 20 66 6F ile_pointer = fo
011400: 73 74 69 63 6B 5F 6E 75 6D 62 65 72 20 20 3F 20 stick_number ?
011410: 20 72 65 67 5F 68 6C 20 20 3A 20 20 28 72 65 67 reg_hl : (reg
011420: 5F 68 6C 20 3E 3E 20 38 29 29 20 26 20 30 78 46 _hl >> 8)) & 0xF
011430: 46 20 20 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 69 6E 74 F ;..}......int
011440: 20 6B 65 79 5F 66 75 6E 63 74 69 6F 6E 28 74 72 key_function(tr
011450: 61 6E 73 6C 61 74 65 64 5F 6B 65 79 5F 6E 75 6D anslated_key_num
011460: 62 65 72 2C 20 65 78 70 61 6E 73 69 6F 6E 5F 73 ber, expansion_s
011470: 74 72 69 6E 67 29 0D 0A 7B 0D 0A 20 20 72 65 67 tring)..{.. reg
011480: 5F 62 63 20 3D 20 28 74 72 61 6E 73 6C 61 74 65 _bc = (translate
011490: 64 5F 6B 65 79 5F 6E 75 6D 62 65 72 20 3C 3C 20 d_key_number <<
0114A0: 38 29 20 2B 20 28 73 74 72 6C 65 6E 28 65 78 70 8) + (strlen(exp
0114B0: 61 6E 73 69 6F 6E 5F 73 74 72 69 6E 67 29 20 26 ansion_string) &
0114C0: 20 30 78 46 46 29 3B 0D 0A 20 20 72 65 67 5F 68 0xFF);.. reg_h
0114D0: 6C 20 3D 20 65 78 70 61 6E 73 69 6F 6E 5F 73 74 l = expansion_st
0114E0: 72 69 6E 67 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 ring;.. inline(
0114F0: 0D 0A 20 20 20 20 4C 44 5F 42 43 5F 66 72 6F 6D .. LD_BC_from
011500: 2C 20 26 72 65 67 5F 62 63 2C 0D 0A 20 20 20 20 , ®_bc,..
011510: 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_HL_from, ®
011520: 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 _hl,.. CALL,
011530: 20 20 20 20 20 20 30 78 42 42 30 46 2C 20 20 2F 0xBB0F, /
011540: 2A 20 4B 4D 5F 53 45 54 5F 45 58 50 41 4E 44 20 * KM_SET_EXPAND
011550: 2A 2F 0D 0A 20 20 20 20 4C 44 5F 41 5F 77 69 74 */.. LD_A_wit
011560: 68 2C 20 20 30 2C 0D 0A 20 20 20 20 52 4C 41 2C h, 0,.. RLA,
011570: 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C .. LD_A_into,
011580: 20 20 26 72 65 67 5F 61 29 3B 0D 0A 20 20 72 65 ®_a);.. re
011590: 74 75 72 6E 20 72 65 67 5F 61 3B 0D 0A 7D 0D 0A turn reg_a;..}..
0115A0: 0D 0A 0D 0A 6B 65 79 5F 73 70 65 65 64 28 73 74 ....key_speed(st
0115B0: 61 72 74 5F 75 70 5F 64 65 6C 61 79 2C 20 74 69 art_up_delay, ti
0115C0: 6D 65 5F 62 65 74 77 65 65 6E 5F 72 65 70 65 61 me_between_repea
0115D0: 74 73 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 68 6C ts)..{.. reg_hl
0115E0: 20 3D 20 28 73 74 61 72 74 5F 75 70 5F 64 65 6C = (start_up_del
0115F0: 61 79 20 3C 3C 20 38 29 20 2B 20 74 69 6D 65 5F ay << 8) + time_
011600: 70 65 6E 28 66 69 6C 65 6E 61 6D 65 2C 20 22 77 pen(filename, "w
011610: 22 29 29 29 0D 0A 20 20 20 20 7B 0D 0A 20 20 20 "))).. {..
011620: 20 20 20 66 70 72 69 6E 74 66 28 73 74 64 65 72 fprintf(stder
011630: 72 2C 20 22 5C 6E 45 52 52 4F 52 20 2D 20 43 61 r, "\nERROR - Ca
011640: 6E 6E 6F 74 20 6F 70 65 6E 20 66 69 6C 65 20 3A nnot open file :
011650: 25 73 3A 5C 6E 22 2C 20 66 69 6C 65 6E 61 6D 65 %s:\n", filename
011660: 29 3B 0D 0A 20 20 20 20 20 20 72 65 74 75 72 6E );.. return
011670: 20 45 52 52 4F 52 3B 0D 0A 20 20 20 20 7D 0D 0A ERROR;.. }..
011680: 0D 0A 20 20 77 68 69 6C 65 20 28 6C 65 6E 67 74 .. while (lengt
011690: 68 2D 2D 29 0D 0A 20 20 20 20 70 75 74 63 28 2A h--).. putc(*
0116A0: 61 64 64 72 65 73 73 2B 2B 2C 20 66 69 6C 65 5F address++, file_
0116B0: 70 6F 69 6E 74 65 72 29 3B 0D 0A 0D 0A 20 20 66 pointer);.... f
0116C0: 63 6C 6F 73 65 28 66 69 6C 65 5F 70 6F 69 6E 74 close(file_point
0116D0: 65 72 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 54 er);.. return T
0116E0: 52 55 45 3B 0D 0A 7D 0D 0A 0D 0A 23 6C 69 73 74 RUE;..}....#list
0116F0: 2B 0D 0A 0D 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 +..../* * * * *
011700: 2A 20 20 20 45 20 4E 20 44 20 20 20 4F 20 46 20 * E N D O F
011710: 20 20 42 20 41 20 53 20 49 20 43 20 31 20 2E 20 B A S I C 1 .
011720: 4C 20 49 20 42 20 20 20 2A 20 2A 20 2A 20 2A 20 L I B * * * *
011730: 2A 20 2A 2F 0D 0A 0D 0A 1A 0D 0A 0D 0A 20 20 66 * */......... f
011740: 63 6C 6F 73 65 28 66 69 6C 65 5F 70 6F 69 6E 74 close(file_point
011750: 65 72 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 54 er);.. return T
011760: 52 55 45 3B 0D 0A 7D 0D 0A 0D 0A 23 6C 69 73 74 RUE;..}....#list
011770: 2B 0D 0A 0D 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 +..../* * * * *
011780: 65 2C 20 61 64 64 72 65 73 73 2C 20 6C 65 6E 67 e, address, leng
011790: 74 68 29 0D 0A 20 20 63 68 61 72 20 20 20 20 2A th).. char *
0117A0: 66 69 6C 65 6E 61 6D 65 2C 20 2A 61 64 64 72 65 filename, *addre
0117B0: 73 73 3B 0D 0A 20 20 75 6E 73 69 67 6E 65 64 20 ss;.. unsigned
0117C0: 6C 65 6E 67 74 68 3B 0D 0A 7B 0D 0A 20 20 46 49 length;..{.. FI
0117D0: 4C 45 20 2A 66 69 6C 65 5F 70 6F 69 6E 74 65 72 LE *file_pointer
0117E0: 3B 0D 0A 0D 0A 20 20 69 66 20 28 20 21 20 28 66 ;.... if ( ! (f
0117F0: 69 6C 65 5F 70 6F 69 6E 74 65 72 20 3D 20 66 6F ile_pointer = fo
011800: 62 65 74 77 65 65 6E 5F 72 65 70 65 61 74 73 3B between_repeats;
011810: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
011820: 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 LD_HL_from, &re
011830: 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C g_hl,.. CALL,
011840: 20 20 20 20 20 20 20 30 78 42 42 33 46 29 3B 20 0xBB3F);
011850: 2F 2A 20 4B 4D 5F 53 45 54 5F 44 45 4C 41 59 20 /* KM_SET_DELAY
011860: 2A 2F 0D 0A 7D 0D 0A 0D 0A 0D 0A 6B 65 79 5F 74 */..}......key_t
011870: 72 61 6E 73 6C 61 74 69 6F 6E 28 6B 65 79 5F 6E ranslation(key_n
011880: 75 6D 62 65 72 2C 20 74 72 61 6E 73 6C 61 74 65 umber, translate
011890: 64 5F 6B 65 79 5F 6E 75 6D 62 65 72 29 0D 0A 7B d_key_number)..{
0118A0: 0D 0A 20 20 72 65 67 5F 61 20 20 3D 20 6B 65 79 .. reg_a = key
0118B0: 5F 6E 75 6D 62 65 72 3B 0D 0A 20 20 72 65 67 5F _number;.. reg_
0118C0: 62 63 20 3D 20 74 72 61 6E 73 6C 61 74 65 64 5F bc = translated_
0118D0: 6B 65 79 5F 6E 75 6D 62 65 72 20 3C 3C 20 38 3B key_number << 8;
0118E0: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
0118F0: 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 20 26 72 65 LD_A_from, &re
011900: 67 5F 61 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 5F g_a,.. LD_BC_
011910: 66 72 6F 6D 2C 20 26 72 65 67 5F 62 63 2C 0D 0A from, ®_bc,..
011920: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
011930: 30 78 42 42 32 37 29 3B 20 2F 2A 20 4B 4D 5F 53 0xBB27); /* KM_S
011940: 45 54 5F 54 52 41 4E 53 4C 41 54 45 20 2A 2F 0D ET_TRANSLATE */.
011950: 0A 7D 0D 0A 0D 0A 0D 0A 4B 5F 61 72 6D 5F 62 72 .}......K_arm_br
011960: 65 61 6B 73 28 65 76 65 6E 74 5F 72 6F 75 74 69 eaks(event_routi
011970: 6E 65 2C 20 52 4F 4D 5F 73 65 6C 65 63 74 29 0D ne, ROM_select).
011980: 0A 7B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 65 .{.. reg_de = e
011990: 76 65 6E 74 5F 72 6F 75 74 69 6E 65 3B 0D 0A 20 vent_routine;..
0119A0: 20 72 65 67 5F 62 63 20 3D 20 52 4F 4D 5F 73 65 reg_bc = ROM_se
0119B0: 6C 65 63 74 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 lect;.. inline(
0119C0: 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D .. LD_DE_from
0119D0: 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 , ®_de,..
0119E0: 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_BC_from, ®
0119F0: 5F 62 63 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 _bc,.. CALL,
011A00: 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 20 20 /* * * * * *
011A10: 20 20 45 20 58 20 54 20 43 20 4D 20 44 20 2E 20 E X T C M D .
011A20: 48 20 20 20 20 20 20 2A 20 2A 20 2A 20 2A 20 2A H * * * * *
011A30: 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 */../*
011A40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011A50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011A60: 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A 20 20 61 6C */../* al
011A70: 6C 6F 77 20 65 78 74 65 72 6E 61 6C 20 28 62 61 low external (ba
011A80: 72 29 20 63 6F 6D 6D 61 6E 64 73 20 69 6E 20 61 r) commands in a
011A90: 20 43 20 70 72 6F 67 72 61 6D 20 2A 2F 0D 0A 2F C program */../
011AA0: 2A 20 20 20 20 20 20 20 20 20 20 43 6F 70 79 72 * Copyr
011AB0: 69 67 68 74 20 28 43 29 20 31 39 38 35 20 48 69 ight (C) 1985 Hi
011AC0: 53 6F 66 74 20 20 20 20 20 20 20 20 20 20 20 20 Soft
011AD0: 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 20 */../*
011AE0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011AF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
011B00: 20 20 20 20 20 2A 2F 0D 0A 2F 2A 20 2A 20 2A 20 */../* * *
011B10: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
011B20: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
011B30: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 0D 0A * * * * * */....
011B40: 65 78 74 63 6D 64 28 70 61 72 61 6D 5F 62 79 74 extcmd(param_byt
011B50: 65 5F 63 6F 75 6E 74 29 20 20 61 75 74 6F 0D 0A e_count) auto..
011B60: 7B 0D 0A 20 20 74 79 70 65 64 65 66 20 63 68 61 {.. typedef cha
011B70: 72 20 2A 2A 20 63 70 70 3B 0D 0A 20 20 73 74 61 r ** cpp;.. sta
011B80: 74 69 63 20 63 68 61 72 20 63 6F 6D 5F 6E 61 6D tic char com_nam
011B90: 65 5B 31 36 5D 2C 20 2A 73 2C 20 2A 64 3B 0D 0A e[16], *s, *d;..
011BA0: 20 20 73 74 61 74 69 63 20 75 6E 73 69 67 6E 65 static unsigne
011BB0: 64 20 72 65 67 5F 69 78 3B 0D 0A 0D 0A 20 20 72 d reg_ix;.... r
011BC0: 65 67 5F 61 20 20 3D 20 70 61 72 61 6D 5F 62 79 eg_a = param_by
011BD0: 74 65 5F 63 6F 75 6E 74 2F 32 20 2D 20 32 3B 20 te_count/2 - 2;
011BE0: 2F 2A 20 6E 6F 20 6F 66 20 61 72 67 73 20 6F 66 /* no of args of
011BF0: 20 63 6F 6D 6D 61 6E 64 20 2A 2F 0D 0A 20 20 72 command */.. r
011C00: 20 20 20 20 20 20 30 78 42 42 34 35 29 3B 20 2F 0xBB45); /
011C10: 2A 20 4B 4D 5F 41 52 4D 5F 42 52 45 41 4B 53 20 * KM_ARM_BREAKS
011C20: 2A 2F 0D 0A 7D 0D 0A 0D 0A 0D 0A 4B 5F 64 69 73 */..}......K_dis
011C30: 61 72 6D 5F 62 72 65 61 6B 28 29 0D 0A 7B 0D 0A arm_break()..{..
011C40: 20 20 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 inline(CALL, 0
011C50: 78 42 42 34 38 29 3B 20 2F 2A 20 4B 4D 5F 44 49 xBB48); /* KM_DI
011C60: 53 41 52 4D 5F 42 52 45 41 4B 20 2A 2F 0D 0A 7D SARM_BREAK */..}
011C70: 0D 0A 0D 0A 0D 0A 72 65 61 64 5F 66 69 6C 65 28 ......read_file(
011C80: 66 69 6C 65 6E 61 6D 65 2C 20 61 64 64 72 65 73 filename, addres
011C90: 73 29 0D 0A 20 20 63 68 61 72 20 2A 66 69 6C 65 s).. char *file
011CA0: 6E 61 6D 65 2C 20 2A 61 64 64 72 65 73 73 3B 0D name, *address;.
011CB0: 0A 7B 0D 0A 20 20 69 6E 74 20 20 63 3B 0D 0A 20 .{.. int c;..
011CC0: 20 46 49 4C 45 20 2A 66 69 6C 65 5F 70 6F 69 6E FILE *file_poin
011CD0: 74 65 72 3B 0D 0A 0D 0A 20 20 69 66 20 28 20 21 ter;.... if ( !
011CE0: 20 28 66 69 6C 65 5F 70 6F 69 6E 74 65 72 20 3D (file_pointer =
011CF0: 20 66 6F 70 65 6E 28 66 69 6C 65 6E 61 6D 65 2C fopen(filename,
011D00: 22 72 22 29 29 29 0D 0A 20 20 7B 0D 0A 20 20 20 "r"))).. {..
011D10: 20 66 70 72 69 6E 74 66 28 73 74 64 65 72 72 2C fprintf(stderr,
011D20: 22 5C 6E 45 52 52 4F 52 20 2D 20 43 61 6E 6E 6F "\nERROR - Canno
011D30: 74 20 6F 70 65 6E 20 66 69 6C 65 20 3A 25 73 3A t open file :%s:
011D40: 5C 6E 22 2C 66 69 6C 65 6E 61 6D 65 29 3B 0D 0A \n",filename);..
011D50: 20 20 20 20 72 65 74 75 72 6E 20 45 52 52 4F 52 return ERROR
011D60: 3B 0D 0A 20 20 7D 0D 0A 20 20 77 68 69 6C 65 20 ;.. }.. while
011D70: 28 28 63 20 3D 20 67 65 74 63 28 66 69 6C 65 5F ((c = getc(file_
011D80: 70 6F 69 6E 74 65 72 29 29 20 21 3D 20 45 4F 46 pointer)) != EOF
011D90: 29 0D 0A 20 20 20 20 2A 61 64 64 72 65 73 73 2B ).. *address+
011DA0: 2B 20 3D 20 63 3B 0D 0A 0D 0A 20 20 66 63 6C 6F + = c;.... fclo
011DB0: 73 65 28 66 69 6C 65 5F 70 6F 69 6E 74 65 72 29 se(file_pointer)
011DC0: 3B 0D 0A 20 20 72 65 74 75 72 6E 20 54 52 55 45 ;.. return TRUE
011DD0: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 63 68 61 72 20 2A ;..}......char *
011DE0: 73 74 72 6C 6F 77 65 72 28 73 74 72 69 6E 67 29 strlower(string)
011DF0: 0D 0A 20 20 63 68 61 72 20 2A 73 74 72 69 6E 67 .. char *string
011E00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
011E10: 0F 00 00 00 02 09 4E E5 0F 00 41 02 00 00 00 02 ......N...A.....
011E20: 0F 00 46 02 00 00 00 02 0F 00 42 02 00 00 00 02 ..F.......B.....
011E30: 0F 00 47 02 00 00 00 02 0F 00 43 02 00 00 00 02 ..G.......C.....
011E40: 0F 00 48 02 00 00 00 02 0F 00 44 02 00 00 00 02 ..H.......D.....
011E50: 0F 00 49 02 00 00 00 02 0F 00 45 02 00 00 00 02 ..I.......E.....
011E60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011F00: 65 67 5F 69 78 20 3D 20 63 61 73 74 28 69 6E 74 eg_ix = cast(int
011F10: 29 20 26 70 61 72 61 6D 5F 62 79 74 65 5F 63 6F ) ¶m_byte_co
011F20: 75 6E 74 20 2B 20 32 3B 20 2F 2A 20 61 64 64 72 unt + 2; /* addr
011F30: 20 6F 66 20 6C 61 73 74 20 61 72 67 20 2A 2F 0D of last arg */.
011F40: 0A 20 20 73 20 3D 20 2A 63 61 73 74 28 63 70 70 . s = *cast(cpp
011F50: 29 28 72 65 67 5F 69 78 20 2B 20 72 65 67 5F 61 )(reg_ix + reg_a
011F60: 2A 32 29 3B 0D 0A 20 20 0D 0A 20 20 64 20 3D 20 *2);.. .. d =
011F70: 63 6F 6D 5F 6E 61 6D 65 3B 0D 0A 20 20 64 6F 20 com_name;.. do
011F80: 2A 64 2B 2B 20 3D 20 74 6F 75 70 70 65 72 28 2A *d++ = toupper(*
011F90: 73 2B 2B 29 3B 0D 0A 20 20 77 68 69 6C 65 20 28 s++);.. while (
011FA0: 2A 73 29 3B 0D 0A 20 20 2A 2D 2D 64 20 7C 3D 20 *s);.. *--d |=
011FB0: 30 78 38 30 3B 0D 0A 0D 0A 20 20 69 6E 6C 69 6E 0x80;.... inlin
011FC0: 65 28 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 77 69 e(.. LD_HL_wi
011FD0: 74 68 2C 20 63 6F 6D 5F 6E 61 6D 65 2C 0D 0A 20 th, com_name,..
011FE0: 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 CALL, 0
011FF0: 78 42 43 44 34 2C 20 20 20 2F 2A 20 4B 4C 5F 46 xBCD4, /* KL_F
012000: 49 4E 44 5F 43 4F 4D 4D 41 4E 44 20 2A 2F 0D 0A IND_COMMAND */..
012010: 20 20 20 20 50 55 53 48 5F 49 58 2C 0D 0A 20 20 PUSH_IX,..
012020: 20 20 4C 44 5F 49 58 5F 66 72 6F 6D 2C 20 26 72 LD_IX_from, &r
012030: 65 67 5F 69 78 2C 0D 0A 20 20 20 20 4A 52 5F 4E eg_ix,.. JR_N
012040: 43 2C 20 20 20 20 20 20 31 30 2C 0D 0A 20 20 20 C, 10,..
012050: 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 20 26 72 65 LD_A_from, &re
012060: 67 5F 61 2C 0D 0A 20 20 20 20 50 55 53 48 5F 49 g_a,.. PUSH_I
012070: 59 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 Y,.. CALL,
012080: 20 20 20 20 30 78 31 42 2C 30 2C 20 20 2F 2A 20 0x1B,0, /*
012090: 4C 4F 5F 4B 4C 5F 46 41 52 5F 50 43 48 4C 20 2A LO_KL_FAR_PCHL *
0120A0: 2F 0D 0A 20 20 20 20 50 4F 50 5F 49 59 2C 0D 0A /.. POP_IY,..
0120B0: 20 20 20 20 50 4F 50 5F 49 58 20 29 3B 0D 0A 7D POP_IX );..}
0120C0: 0D 0A 0D 0A 73 74 72 75 63 74 20 5F 64 73 63 72 ....struct _dscr
0120D0: 70 20 7B 0D 0A 20 20 63 68 61 72 20 5F 6C 65 6E p {.. char _len
0120E0: 67 74 68 3B 0D 0A 20 20 63 68 61 72 20 2A 5F 73 gth;.. char *_s
0120F0: 74 61 72 74 3B 0D 0A 20 20 7D 3B 0D 0A 0D 0A 69 tart;.. };....i
012100: 23 64 65 66 69 6E 65 20 4A 52 5F 5A 20 20 20 20 #define JR_Z
012110: 20 20 20 30 78 32 38 0D 0A 23 64 65 66 69 6E 65 0x28..#define
012120: 20 4A 52 5F 4E 43 20 20 20 20 20 20 30 78 33 30 JR_NC 0x30
012130: 0D 0A 23 64 65 66 69 6E 65 20 49 4E 43 5F 42 20 ..#define INC_B
012140: 20 20 20 20 20 30 78 30 34 0D 0A 23 64 65 66 69 0x04..#defi
012150: 6E 65 20 50 55 53 48 5F 49 58 20 20 20 20 30 78 ne PUSH_IX 0x
012160: 45 35 44 44 0D 0A 23 64 65 66 69 6E 65 20 50 4F E5DD..#define PO
012170: 50 5F 49 58 20 20 20 20 20 30 78 45 31 44 44 0D P_IX 0xE1DD.
012180: 0A 23 64 65 66 69 6E 65 20 50 55 53 48 5F 49 59 .#define PUSH_IY
012190: 20 20 20 20 30 78 45 35 46 44 0D 0A 23 64 65 66 0xE5FD..#def
0121A0: 69 6E 65 20 50 4F 50 5F 49 59 20 20 20 20 20 30 ine POP_IY 0
0121B0: 78 45 31 46 44 0D 0A 23 64 65 66 69 6E 65 20 43 xE1FD..#define C
0121C0: 41 4C 4C 20 20 20 20 20 20 20 30 78 43 44 0D 0A ALL 0xCD..
0121D0: 23 64 65 66 69 6E 65 20 44 49 20 20 20 20 20 20 #define DI
0121E0: 20 20 20 30 78 46 33 0D 0A 23 64 65 66 69 6E 65 0xF3..#define
0121F0: 20 45 49 20 20 20 20 20 20 20 20 20 30 78 46 42 EI 0xFB
012200: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 46 69 6C 65 20 73 ....../* File s
012210: 79 73 74 65 6D 20 53 74 72 75 63 74 75 72 65 20 ystem Structure
012220: 2A 2F 0D 0A 0D 0A 74 79 70 65 64 65 66 20 69 6E */....typedef in
012230: 74 20 20 46 49 4C 45 3B 0D 0A 0D 0A 0D 0A 0D 0A t FILE;........
012240: 2F 2A 20 20 53 74 6F 72 61 67 65 20 41 6C 6C 6F /* Storage Allo
012250: 63 61 74 69 6F 6E 20 53 74 72 75 63 74 75 72 65 cation Structure
012260: 20 61 6E 64 20 56 61 72 69 61 62 6C 65 73 20 2A and Variables *
012270: 2F 0D 0A 0D 0A 73 74 72 75 63 74 20 20 5F 68 65 /....struct _he
012280: 61 64 65 72 0D 0A 7B 0D 0A 20 20 73 74 72 75 63 ader..{.. struc
012290: 74 20 5F 68 65 61 64 65 72 20 2A 20 5F 70 74 72 t _header * _ptr
0122A0: 3B 0D 0A 20 20 75 6E 73 69 67 6E 65 64 20 20 5F ;.. unsigned _
0122B0: 73 69 7A 65 3B 0D 0A 7D 3B 0D 0A 0D 0A 74 79 70 size;..};....typ
0122C0: 65 64 65 66 20 73 74 72 75 63 74 20 5F 68 65 61 edef struct _hea
0122D0: 64 65 72 20 20 48 45 41 44 45 52 2C 20 2A 20 48 der HEADER, * H
0122E0: 45 41 44 45 52 5F 50 54 52 3B 0D 0A 0D 0A 48 45 EADER_PTR;....HE
0122F0: 41 44 45 52 20 20 5F 62 61 73 65 2C 20 2A 5F 61 ADER _base, *_a
012300: 6E 74 20 6D 61 6B 65 73 74 72 28 73 2C 64 29 0D nt makestr(s,d).
012310: 0A 20 20 63 68 61 72 20 2A 73 3B 0D 0A 20 20 73 . char *s;.. s
012320: 74 72 75 63 74 20 5F 64 73 63 72 70 20 2A 64 3B truct _dscrp *d;
012330: 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 63 68 ..{.. static ch
012340: 61 72 20 2A 70 3B 0D 0A 0D 0A 20 20 70 20 3D 20 ar *p;.... p =
012350: 73 3B 0D 0A 20 20 64 6F 20 3B 20 77 68 69 6C 65 s;.. do ; while
012360: 20 28 2A 70 2B 2B 29 3B 0D 0A 20 20 64 2D 3E 5F (*p++);.. d->_
012370: 6C 65 6E 67 74 68 20 3D 20 70 2D 73 2D 31 3B 0D length = p-s-1;.
012380: 0A 20 20 64 2D 3E 5F 73 74 61 72 74 20 20 3D 20 . d->_start =
012390: 73 3B 0D 0A 20 20 72 65 74 75 72 6E 20 64 3B 0D s;.. return d;.
0123A0: 0A 7D 0D 0A 0D 0A 2F 2A 20 20 45 6E 64 20 6F 66 .}..../* End of
0123B0: 20 45 78 74 65 72 6E 61 6C 20 43 6F 6D 6D 61 6E External Comman
0123C0: 64 20 48 61 6E 64 6C 69 6E 67 20 2A 2F 0D 0A 0D d Handling */...
0123D0: 0A 1A 0D 0A 20 20 64 6F 20 3B 20 77 68 69 6C 65 .... do ; while
0123E0: 20 28 2A 70 2B 2B 29 3B 0D 0A 20 20 64 2D 3E 5F (*p++);.. d->_
0123F0: 6C 65 6E 67 74 68 20 3D 20 70 2D 73 2D 31 3B 0D length = p-s-1;.
012400: 49 4E 44 5F 43 4F 4D 4D 41 4E 44 20 2A 2F 0D 0A IND_COMMAND */..
012410: 20 20 20 20 50 55 53 48 5F 49 58 2C 0D 0A 20 20 PUSH_IX,..
012420: 20 20 4C 44 5F 49 58 5F 66 72 6F 6D 2C 20 26 72 LD_IX_from, &r
012430: 65 67 5F 69 78 2C 0D 0A 20 20 20 20 4A 52 5F 4E eg_ix,.. JR_N
012440: 43 2C 20 20 20 20 20 20 31 30 2C 0D 0A 20 20 20 C, 10,..
012450: 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 20 26 72 65 LD_A_from, &re
012460: 67 5F 61 2C 0D 0A 20 20 20 20 50 55 53 48 5F 49 g_a,.. PUSH_I
012470: 59 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 Y,.. CALL,
012480: 20 20 20 20 30 78 31 42 2C 30 2C 20 20 2F 2A 20 0x1B,0, /*
012490: 4C 4F 5F 4B 4C 5F 46 41 52 5F 50 43 48 4C 20 2A LO_KL_FAR_PCHL *
0124A0: 2F 0D 0A 20 20 20 20 50 4F 50 5F 49 59 2C 0D 0A /.. POP_IY,..
0124B0: 20 20 20 20 50 4F 50 5F 49 58 20 29 3B 0D 0A 7D POP_IX );..}
0124C0: 0D 0A 0D 0A 73 74 72 75 63 74 20 5F 64 73 63 72 ....struct _dscr
0124D0: 70 20 7B 0D 0A 20 20 63 68 61 72 20 5F 6C 65 6E p {.. char _len
0124E0: 67 74 68 3B 0D 0A 20 20 63 68 61 72 20 2A 5F 73 gth;.. char *_s
0124F0: 74 61 72 74 3B 0D 0A 20 20 7D 3B 0D 0A 0D 0A 69 tart;.. };....i
012500: 6C 6C 6F 63 70 3B 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A llocp;......../*
012510: 20 20 5A 38 30 20 72 65 67 69 73 74 65 72 20 63 Z80 register c
012520: 61 63 68 65 20 66 6F 72 20 69 6E 6C 69 6E 65 20 ache for inline
012530: 63 6F 64 65 20 20 2A 2F 0D 0A 0D 0A 75 6E 73 69 code */....unsi
012540: 67 6E 65 64 20 20 72 65 67 5F 68 6C 2C 20 72 65 gned reg_hl, re
012550: 67 5F 64 65 2C 20 72 65 67 5F 62 63 3B 0D 0A 63 g_de, reg_bc;..c
012560: 68 61 72 20 20 20 20 20 20 72 65 67 5F 61 3B 0D har reg_a;.
012570: 0A 0D 0A 0D 0A 2F 2A 20 20 46 6F 72 77 61 72 64 ...../* Forward
012580: 20 64 65 63 6C 61 72 61 74 69 6F 6E 73 20 66 6F declarations fo
012590: 72 20 6E 6F 6E 2D 69 6E 74 20 6C 69 62 72 61 72 r non-int librar
0125A0: 79 20 66 75 6E 63 74 69 6F 6E 73 20 20 2A 2F 0D y functions */.
0125B0: 0A 0D 0A 65 78 74 65 72 6E 20 63 68 61 72 20 2A ...extern char *
0125C0: 73 74 72 63 61 74 28 29 2C 20 2A 73 74 72 6E 63 strcat(), *strnc
0125D0: 61 74 28 29 2C 20 2A 73 74 72 63 70 79 28 29 2C at(), *strcpy(),
0125E0: 20 2A 73 74 72 6E 63 70 79 28 29 2C 20 2A 73 74 *strncpy(), *st
0125F0: 72 63 68 72 28 29 2C 20 2A 73 74 72 72 63 68 72 rchr(), *strrchr
012600: 28 29 2C 0D 0A 20 20 20 20 20 20 20 20 20 20 20 (),..
012610: 20 2A 73 74 72 70 62 72 6B 28 29 2C 20 2A 63 61 *strpbrk(), *ca
012620: 6C 6C 6F 63 28 29 2C 20 2A 73 62 72 6B 28 29 2C lloc(), *sbrk(),
012630: 20 2A 66 67 65 74 73 28 29 2C 2A 67 65 74 73 28 *fgets(),*gets(
012640: 29 3B 0D 0A 65 78 74 65 72 6E 20 75 6E 73 69 67 );..extern unsig
012650: 6E 65 64 20 73 74 72 6C 65 6E 28 29 3B 0D 0A 0D ned strlen();...
012660: 0A 0D 0A 2F 2A 20 20 54 77 6F 20 76 61 72 69 61 .../* Two varia
012670: 64 69 63 20 61 72 69 74 68 6D 65 74 69 63 20 66 dic arithmetic f
012680: 75 6E 63 74 69 6F 6E 73 20 28 73 65 65 20 6D 61 unctions (see ma
012690: 6E 75 61 6C 20 66 6F 72 20 64 65 74 61 69 6C 73 nual for details
0126A0: 29 20 20 2A 2F 0D 0A 0D 0A 69 6E 74 20 6D 61 78 ) */....int max
0126B0: 28 70 61 72 61 6D 5F 62 79 74 65 5F 63 6F 75 6E (param_byte_coun
0126C0: 74 29 20 20 61 75 74 6F 0D 0A 7B 0D 0A 20 20 73 t) auto..{.. s
0126D0: 74 61 74 69 63 20 69 6E 74 20 61 72 67 63 2C 20 tatic int argc,
0126E0: 2A 61 72 67 76 2C 20 6D 61 78 3B 0D 0A 0D 0A 20 *argv, max;....
0126F0: 20 61 72 67 63 20 3D 20 70 61 72 61 6D 5F 62 79 argc = param_by
012700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0127A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0127B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0127C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0127D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0127E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0127F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0128A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0128B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0128C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0128D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0128E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0128F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012900: 74 65 5F 63 6F 75 6E 74 2F 32 20 2D 20 31 3B 0D te_count/2 - 1;.
012910: 0A 20 20 61 72 67 76 20 3D 20 26 70 61 72 61 6D . argv = ¶m
012920: 5F 62 79 74 65 5F 63 6F 75 6E 74 20 20 2B 20 61 _byte_count + a
012930: 72 67 63 3B 0D 0A 20 20 6D 61 78 20 20 3D 20 2D rgc;.. max = -
012940: 33 32 37 36 37 3B 0D 0A 0D 0A 20 20 77 68 69 6C 32767;.... whil
012950: 65 20 28 61 72 67 63 2D 2D 29 0D 0A 20 20 20 20 e (argc--)..
012960: 7B 0D 0A 20 20 20 20 20 20 69 66 20 28 2A 61 72 {.. if (*ar
012970: 67 76 20 3E 20 6D 61 78 29 20 6D 61 78 20 3D 20 gv > max) max =
012980: 2A 61 72 67 76 3B 0D 0A 20 20 20 20 20 20 2D 2D *argv;.. --
012990: 61 72 67 76 3B 0D 0A 20 20 20 20 7D 0D 0A 0D 0A argv;.. }....
0129A0: 20 20 72 65 74 75 72 6E 20 6D 61 78 3B 0D 0A 7D return max;..}
0129B0: 0D 0A 0D 0A 0D 0A 69 6E 74 20 6D 69 6E 28 70 61 ......int min(pa
0129C0: 72 61 6D 5F 62 79 74 65 5F 63 6F 75 6E 74 29 20 ram_byte_count)
0129D0: 20 61 75 74 6F 0D 0A 7B 0D 0A 20 20 73 74 61 74 auto..{.. stat
0129E0: 69 63 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 ic int argc, *ar
0129F0: 67 76 2C 20 6D 69 6E 3B 0D 0A 0D 0A 20 20 61 72 gv, min;.... ar
012A00: 67 63 20 3D 20 70 61 72 61 6D 5F 62 79 74 65 5F gc = param_byte_
012A10: 63 6F 75 6E 74 2F 32 20 2D 20 31 3B 0D 0A 20 20 count/2 - 1;..
012A20: 61 72 67 76 20 3D 20 26 70 61 72 61 6D 5F 62 79 argv = ¶m_by
012A30: 74 65 5F 63 6F 75 6E 74 20 20 2B 20 61 72 67 63 te_count + argc
012A40: 3B 0D 0A 20 20 6D 69 6E 20 20 3D 20 33 32 37 36 ;.. min = 3276
012A50: 37 3B 0D 0A 0D 0A 20 20 77 68 69 6C 65 20 28 61 7;.... while (a
012A60: 72 67 63 2D 2D 29 0D 0A 20 20 20 20 7B 0D 0A 20 rgc--).. {..
012A70: 20 20 20 20 20 69 66 20 28 2A 61 72 67 76 20 3C if (*argv <
012A80: 20 6D 69 6E 29 20 6D 69 6E 20 3D 20 2A 61 72 67 min) min = *arg
012A90: 76 3B 0D 0A 20 20 20 20 20 20 2D 2D 61 72 67 76 v;.. --argv
012AA0: 3B 0D 0A 20 20 20 20 7D 0D 0A 0D 0A 20 20 72 65 ;.. }.... re
012AB0: 74 75 72 6E 20 6D 69 6E 3B 0D 0A 7D 0D 0A 0D 0A turn min;..}....
012AC0: 23 6C 69 73 74 2B 0D 0A 0D 0A 2F 2A 2A 2A 2A 2A #list+..../*****
012AD0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
012AE0: 2A 2A 2A 2A 2A 2A 2A 2A 2F 0D 0A 2F 2A 20 20 20 ********/../*
012AF0: 20 20 20 20 20 20 48 69 73 6F 66 74 20 43 20 20 Hisoft C
012B00: 2F 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A /***************
012B10: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2F 0D **************/.
012B20: 0A 2F 2A 20 20 20 20 20 20 20 20 20 48 69 73 6F ./* Hiso
012B30: 66 74 20 43 20 20 20 20 20 20 20 20 20 20 2A 2F ft C */
012B40: 0D 0A 2F 2A 20 53 74 61 6E 64 61 72 64 20 46 75 ../* Standard Fu
012B50: 6E 63 74 69 6F 6E 20 4C 69 62 72 61 72 79 20 2A nction Library *
012B60: 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 20 48 /../* H
012B70: 45 41 44 45 52 20 20 20 20 20 20 20 20 20 20 20 EADER
012B80: 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 20 */../*
012B90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
012BA0: 20 2A 2F 0D 0A 2F 2A 20 43 6F 70 79 72 69 67 68 */../* Copyrigh
012BB0: 74 20 28 43 29 20 31 39 38 34 20 48 69 73 6F 66 t (C) 1984 Hisof
012BC0: 74 20 2A 2F 0D 0A 2F 2A 20 4C 61 73 74 20 63 68 t */../* Last ch
012BD0: 61 6E 67 65 64 20 20 20 35 20 4A 75 6E 20 31 39 anged 5 Jun 19
012BE0: 38 35 20 2A 2F 0D 0A 2F 2A 2A 2A 2A 2A 2A 2A 2A 85 */../********
012BF0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
012C00: 2A 2A 2A 2A 2A 2F 0D 0A 0D 0A 23 6C 69 73 74 2D *****/....#list-
012C10: 0D 0A 0D 0A 23 64 65 66 69 6E 65 20 20 4E 55 4C ....#define NUL
012C20: 4C 20 20 20 20 30 20 2F 2A 20 66 6F 72 20 75 73 L 0 /* for us
012C30: 65 20 77 69 74 68 20 70 6F 69 6E 74 65 72 73 20 e with pointers
012C40: 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 20 46 41 */..#define FA
012C50: 4C 53 45 20 20 20 30 20 2F 2A 20 66 6F 72 20 42 LSE 0 /* for B
012C60: 6F 6F 6C 65 61 6E 20 6F 70 65 72 61 74 69 6F 6E oolean operation
012C70: 73 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 20 54 s */..#define T
012C80: 52 55 45 20 20 20 20 31 0D 0A 23 64 65 66 69 6E RUE 1..#defin
012C90: 65 20 20 45 4F 46 20 20 20 20 2D 31 20 2F 2A 20 e EOF -1 /*
012CA0: 65 6E 64 20 6F 66 20 66 69 6C 65 20 76 61 6C 75 end of file valu
012CB0: 65 20 20 20 20 20 20 2A 2F 0D 0A 23 64 65 66 69 e */..#defi
012CC0: 6E 65 20 20 45 52 52 4F 52 20 20 2D 31 0D 0A 23 ne ERROR -1..#
012CD0: 64 65 66 69 6E 65 20 20 76 6F 69 64 20 20 69 6E define void in
012CE0: 74 20 2F 2A 20 66 6F 72 20 66 75 6E 63 74 69 6F t /* for functio
012CF0: 6E 73 20 77 68 69 63 68 20 72 65 74 75 72 6E 20 ns which return
012D00: 20 20 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A 20 53 */../* S
012D10: 74 61 6E 64 61 72 64 20 46 75 6E 63 74 69 6F 6E tandard Function
012D20: 20 4C 69 62 72 61 72 79 20 2A 2F 0D 0A 2F 2A 20 Library */../*
012D30: 20 20 20 20 20 20 20 45 6E 64 20 48 65 61 64 65 End Heade
012D40: 72 20 20 20 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A r */../*
012D50: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
012D60: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2F 0D 0A 1A ************/...
012D70: 20 20 20 20 20 20 48 69 73 6F 66 74 20 43 20 20 Hisoft C
012D80: 2A 61 72 67 76 3B 0D 0A 20 20 20 20 20 20 2D 2D *argv;.. --
012D90: 61 72 67 76 3B 0D 0A 20 20 20 20 7D 0D 0A 0D 0A argv;.. }....
012DA0: 20 20 72 65 74 75 72 6E 20 6D 61 78 3B 0D 0A 7D return max;..}
012DB0: 0D 0A 0D 0A 0D 0A 69 6E 74 20 6D 69 6E 28 70 61 ......int min(pa
012DC0: 72 61 6D 5F 62 79 74 65 5F 63 6F 75 6E 74 29 20 ram_byte_count)
012DD0: 20 61 75 74 6F 0D 0A 7B 0D 0A 20 20 73 74 61 74 auto..{.. stat
012DE0: 69 63 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 ic int argc, *ar
012DF0: 67 76 2C 20 6D 69 6E 3B 0D 0A 0D 0A 20 20 61 72 gv, min;.... ar
012E00: 67 63 20 3D 20 70 61 72 61 6D 5F 62 79 74 65 5F gc = param_byte_
012E10: 63 6F 75 6E 74 2F 32 20 2D 20 31 3B 0D 0A 20 20 count/2 - 1;..
012E20: 61 72 67 76 20 3D 20 26 70 61 72 61 6D 5F 62 79 argv = ¶m_by
012E30: 74 65 5F 63 6F 75 6E 74 20 20 2B 20 61 72 67 63 te_count + argc
012E40: 3B 0D 0A 20 20 6D 69 6E 20 20 3D 20 33 32 37 36 ;.. min = 3276
012E50: 37 3B 0D 0A 0D 0A 20 20 77 68 69 6C 65 20 28 61 7;.... while (a
012E60: 72 67 63 2D 2D 29 0D 0A 20 20 20 20 7B 0D 0A 20 rgc--).. {..
012E70: 20 20 20 20 20 69 66 20 28 2A 61 72 67 76 20 3C if (*argv <
012E80: 20 6D 69 6E 29 20 6D 69 6E 20 3D 20 2A 61 72 67 min) min = *arg
012E90: 76 3B 0D 0A 20 20 20 20 20 20 2D 2D 61 72 67 76 v;.. --argv
012EA0: 3B 0D 0A 20 20 20 20 7D 0D 0A 0D 0A 20 20 72 65 ;.. }.... re
012EB0: 74 75 72 6E 20 6D 69 6E 3B 0D 0A 7D 0D 0A 0D 0A turn min;..}....
012EC0: 23 6C 69 73 74 2B 0D 0A 0D 0A 2F 2A 2A 2A 2A 2A #list+..../*****
012ED0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
012EE0: 2A 2A 2A 2A 2A 2A 2A 2A 2F 0D 0A 2F 2A 20 20 20 ********/../*
012EF0: 20 20 20 20 20 20 48 69 73 6F 66 74 20 43 20 20 Hisoft C
012F00: 6E 6F 20 76 61 6C 75 65 20 2A 2F 0D 0A 23 64 65 no value */..#de
012F10: 66 69 6E 65 20 20 73 74 64 69 6E 20 20 20 30 0D fine stdin 0.
012F20: 0A 23 64 65 66 69 6E 65 20 20 73 74 64 6F 75 74 .#define stdout
012F30: 20 20 30 0D 0A 23 64 65 66 69 6E 65 20 20 73 74 0..#define st
012F40: 64 65 72 72 20 20 30 0D 0A 0D 0A 23 64 65 66 69 derr 0....#defi
012F50: 6E 65 20 4C 44 5F 41 5F 66 72 6F 6D 20 20 30 78 ne LD_A_from 0x
012F60: 33 41 0D 0A 23 64 65 66 69 6E 65 20 4C 44 5F 41 3A..#define LD_A
012F70: 5F 69 6E 74 6F 20 20 30 78 33 32 0D 0A 23 64 65 _into 0x32..#de
012F80: 66 69 6E 65 20 4C 44 5F 41 5F 77 69 74 68 20 20 fine LD_A_with
012F90: 30 78 33 45 0D 0A 23 64 65 66 69 6E 65 20 4C 44 0x3E..#define LD
012FA0: 5F 48 4C 5F 66 72 6F 6D 20 30 78 32 41 0D 0A 23 _HL_from 0x2A..#
012FB0: 64 65 66 69 6E 65 20 4C 44 5F 48 4C 5F 69 6E 74 define LD_HL_int
012FC0: 6F 20 30 78 32 32 0D 0A 23 64 65 66 69 6E 65 20 o 0x22..#define
012FD0: 4C 44 5F 48 4C 5F 77 69 74 68 20 30 78 32 31 0D LD_HL_with 0x21.
012FE0: 0A 23 64 65 66 69 6E 65 20 4C 44 5F 44 45 5F 66 .#define LD_DE_f
012FF0: 72 6F 6D 20 30 78 35 42 45 44 0D 0A 23 64 65 66 rom 0x5BED..#def
013000: 69 6E 65 20 4C 44 5F 44 45 5F 69 6E 74 6F 20 30 ine LD_DE_into 0
013010: 78 35 33 45 44 0D 0A 23 64 65 66 69 6E 65 20 4C x53ED..#define L
013020: 44 5F 42 43 5F 66 72 6F 6D 20 30 78 34 42 45 44 D_BC_from 0x4BED
013030: 0D 0A 23 64 65 66 69 6E 65 20 4C 44 5F 42 43 5F ..#define LD_BC_
013040: 69 6E 74 6F 20 30 78 34 33 45 44 0D 0A 23 64 65 into 0x43ED..#de
013050: 66 69 6E 65 20 4C 44 5F 49 58 5F 66 72 6F 6D 20 fine LD_IX_from
013060: 30 78 32 41 44 44 0D 0A 23 64 65 66 69 6E 65 20 0x2ADD..#define
013070: 52 4C 41 20 20 20 20 20 20 20 20 30 78 31 37 0D RLA 0x17.
013080: 0A 23 64 65 66 69 6E 65 20 4C 44 5F 4C 5F 41 20 .#define LD_L_A
013090: 20 20 20 20 30 78 36 46 0D 0A 23 64 65 66 69 6E 0x6F..#defin
0130A0: 65 20 4C 44 5F 48 5F 77 69 74 68 20 20 30 78 32 e LD_H_with 0x2
0130B0: 36 0D 0A 23 64 65 66 69 6E 65 20 52 4C 5F 4C 20 6..#define RL_L
0130C0: 20 20 20 20 20 20 30 78 31 35 43 42 0D 0A 23 64 0x15CB..#d
0130D0: 65 66 69 6E 65 20 43 41 4C 4C 20 20 20 20 20 20 efine CALL
0130E0: 20 30 78 43 44 0D 0A 23 64 65 66 69 6E 65 20 4C 0xCD..#define L
0130F0: 44 5F 42 5F 77 69 74 68 20 20 30 78 30 36 0D 0A D_B_with 0x06..
013100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
013110: 10 00 00 00 02 09 4E E5 10 00 41 02 00 00 00 02 ......N...A.....
013120: 10 00 46 02 00 00 00 02 10 00 42 02 00 00 00 02 ..F.......B.....
013130: 10 00 47 02 00 00 00 02 10 00 43 02 00 00 00 02 ..G.......C.....
013140: 10 00 48 02 00 00 00 02 10 00 44 02 00 00 00 02 ..H.......D.....
013150: 10 00 49 02 00 00 00 02 10 00 45 02 00 00 00 02 ..I.......E.....
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: 2F 2A 20 4F 54 48 45 4C 4C 4F 20 28 52 45 56 45 /* OTHELLO (REVE
013210: 52 53 49 29 20 50 52 4F 47 52 41 4D 20 2A 2F 0D RSI) PROGRAM */.
013220: 0A 0D 0A 2F 2A 20 46 69 72 73 74 20 61 72 65 20 .../* First are
013230: 74 68 65 20 73 74 61 6E 64 61 72 64 20 6C 69 62 the standard lib
013240: 72 61 72 79 20 66 75 6E 63 74 69 6F 6E 73 20 77 rary functions w
013250: 68 69 63 68 20 61 72 65 20 75 73 65 64 20 2A 2F hich are used */
013260: 0D 0A 0D 0A 69 6E 74 20 61 62 73 28 6E 29 0D 0A ....int abs(n)..
013270: 7B 0D 0A 20 20 72 65 74 75 72 6E 20 20 6E 3C 30 {.. return n<0
013280: 20 20 3F 20 20 2D 6E 20 20 3A 20 20 6E 20 20 3B ? -n : n ;
013290: 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 ..}......../* S
0132A0: 6F 72 74 69 6E 67 20 66 75 6E 63 74 69 6F 6E 20 orting function
0132B0: 2D 20 61 20 53 68 65 6C 6C 20 73 6F 72 74 20 20 - a Shell sort
0132C0: 2A 2F 0D 0A 0D 0A 71 73 6F 72 74 28 6C 69 73 74 */....qsort(list
0132D0: 2C 20 6E 75 6D 5F 69 74 65 6D 73 2C 20 73 69 7A , num_items, siz
0132E0: 65 2C 20 63 6D 70 5F 66 75 6E 63 29 0D 0A 20 20 e, cmp_func)..
0132F0: 63 68 61 72 20 2A 6C 69 73 74 3B 0D 0A 20 20 69 char *list;.. i
013300: 6E 74 20 20 20 6E 75 6D 5F 69 74 65 6D 73 2C 20 nt num_items,
013310: 73 69 7A 65 3B 0D 0A 20 20 69 6E 74 20 28 2A 63 size;.. int (*c
013320: 6D 70 5F 66 75 6E 63 29 28 29 3B 0D 0A 7B 0D 0A mp_func)();..{..
013330: 20 20 73 74 61 74 69 63 20 75 6E 73 69 67 6E 65 static unsigne
013340: 64 20 67 61 70 2C 20 62 79 74 65 5F 67 61 70 2C d gap, byte_gap,
013350: 20 69 3B 0D 0A 20 20 73 74 61 74 69 63 20 63 68 i;.. static ch
013360: 61 72 20 2A 70 3B 0D 0A 0D 0A 20 20 66 6F 72 20 ar *p;.... for
013370: 28 67 61 70 20 3D 20 6E 75 6D 5F 69 74 65 6D 73 (gap = num_items
013380: 20 3E 3E 20 31 3B 20 20 67 61 70 20 3E 20 30 3B >> 1; gap > 0;
013390: 20 20 67 61 70 20 3E 3E 3D 20 31 29 0D 0A 20 20 gap >>= 1)..
0133A0: 20 20 7B 0D 0A 20 20 20 20 20 20 62 79 74 65 5F {.. byte_
0133B0: 67 61 70 20 3D 20 67 61 70 20 2A 20 73 69 7A 65 gap = gap * size
0133C0: 3B 0D 0A 20 20 20 20 20 20 66 6F 72 20 28 69 20 ;.. for (i
0133D0: 3D 20 67 61 70 3B 20 20 69 20 3C 20 6E 75 6D 5F = gap; i < num_
0133E0: 69 74 65 6D 73 3B 20 20 2B 2B 69 29 0D 0A 20 20 items; ++i)..
0133F0: 20 20 20 20 20 20 66 6F 72 20 28 70 20 3D 20 6C for (p = l
013400: 6C 65 20 6F 66 3A 0D 0A 0D 0A 09 61 29 20 73 74 le of:.....a) st
013410: 72 75 63 74 75 72 65 64 2C 20 68 65 69 72 61 72 ructured, heirar
013420: 63 68 69 63 61 6C 20 66 75 6E 63 74 69 6F 6E 20 chical function
013430: 6F 72 67 61 6E 69 7A 61 74 69 6F 6E 0D 0A 09 62 organization...b
013440: 29 20 61 72 72 61 79 73 20 61 73 20 66 6F 72 6D ) arrays as form
013450: 61 6C 20 70 61 72 61 6D 65 74 65 72 73 0D 0A 09 al parameters...
013460: 63 29 20 75 73 65 20 6F 66 20 74 68 65 20 22 71 c) use of the "q
013470: 73 6F 72 74 22 20 6C 69 62 72 61 72 79 20 66 75 sort" library fu
013480: 6E 63 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 20 nction..
013490: 64 29 20 6E 6F 6E 2D 73 74 61 6E 64 61 72 64 73 d) non-standards
0134A0: 20 28 20 65 67 20 26 20 6F 6E 20 61 72 72 61 79 ( eg & on array
0134B0: 20 6E 61 6D 65 20 61 73 20 61 63 74 75 61 6C 20 name as actual
0134C0: 70 61 72 61 6D 65 74 65 72 73 21 29 0D 0A 0D 0A parameters!)....
0134D0: 20 20 20 4F 62 6A 65 63 74 20 6F 66 20 74 68 65 Object of the
0134E0: 20 67 61 6D 65 20 69 73 20 66 6F 72 20 74 77 6F game is for two
0134F0: 20 70 6C 61 79 65 72 73 20 74 6F 20 61 6C 74 65 players to alte
013500: 72 6E 61 74 65 0D 0A 70 6C 61 63 69 6E 67 20 74 rnate..placing t
013510: 68 65 69 72 20 6D 61 72 6B 65 72 20 73 6F 6D 65 heir marker some
013520: 70 6C 61 63 65 20 6F 6E 20 61 6E 20 38 20 62 79 place on an 8 by
013530: 20 38 20 67 72 69 64 2C 20 73 6F 20 74 68 61 74 8 grid, so that
013540: 0D 0A 61 74 20 6C 65 61 73 74 20 6F 6E 65 20 6F ..at least one o
013550: 66 20 74 68 65 20 6F 70 70 6F 6E 65 6E 74 27 73 f the opponent's
013560: 20 70 69 65 63 65 73 20 62 65 63 6F 6D 65 73 20 pieces becomes
013570: 73 75 72 72 6F 75 6E 64 65 64 0D 0A 62 79 20 74 surrounded..by t
013580: 68 65 20 6D 6F 76 69 6E 67 20 70 6C 61 79 65 72 he moving player
013590: 27 73 20 70 65 69 63 65 73 20 2D 2D 20 63 61 75 's peices -- cau
0135A0: 73 69 6E 67 20 74 68 65 20 66 6C 61 6E 6B 65 64 sing the flanked
0135B0: 20 70 69 65 63 65 73 0D 0A 74 6F 20 66 6C 69 70 pieces..to flip
0135C0: 20 27 63 6F 6C 6F 72 27 20 61 6E 64 20 62 65 6C 'color' and bel
0135D0: 6F 6E 67 20 74 6F 20 74 68 65 20 6D 6F 76 69 6E ong to the movin
0135E0: 67 20 70 6C 61 79 65 72 2E 20 41 66 74 65 72 20 g player. After
0135F0: 36 30 0D 0A 6D 6F 76 65 73 20 68 61 76 65 20 62 60..moves have b
013600: 69 73 74 20 2B 20 69 20 2A 20 73 69 7A 65 20 2D ist + i * size -
013610: 20 62 79 74 65 5F 67 61 70 3B 20 20 70 20 3E 3D byte_gap; p >=
013620: 20 6C 69 73 74 3B 20 20 70 20 2D 3D 20 62 79 74 list; p -= byt
013630: 65 5F 67 61 70 29 0D 0A 20 20 20 20 20 20 20 20 e_gap)..
013640: 20 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 {..
013650: 20 69 66 20 28 28 2A 63 6D 70 5F 66 75 6E 63 29 if ((*cmp_func)
013660: 28 70 2C 20 70 20 2B 20 62 79 74 65 5F 67 61 70 (p, p + byte_gap
013670: 29 20 3C 3D 20 30 29 20 62 72 65 61 6B 3B 0D 0A ) <= 0) break;..
013680: 20 20 20 20 20 20 20 20 20 20 20 20 73 77 61 70 swap
013690: 28 70 2C 20 70 20 2B 20 62 79 74 65 5F 67 61 70 (p, p + byte_gap
0136A0: 2C 20 73 69 7A 65 29 3B 0D 0A 20 20 20 20 20 20 , size);..
0136B0: 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 7D 0D }.. }..}.
0136C0: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 70 75 74 .............put
0136D0: 73 28 73 29 0D 0A 20 20 63 68 61 72 20 2A 73 3B s(s).. char *s;
0136E0: 0D 0A 7B 0D 0A 20 73 74 61 74 69 63 20 69 6E 74 ..{.. static int
0136F0: 20 63 3B 0D 0A 0D 0A 20 77 68 69 6C 65 28 63 3D c;.... while(c=
013700: 2A 73 2B 2B 29 70 75 74 63 68 61 72 28 63 29 3B *s++)putchar(c);
013710: 0D 0A 7D 0D 0A 0D 0A 2F 2A 20 20 50 73 65 75 64 ..}..../* Pseud
013720: 6F 2D 52 61 6E 64 6F 6D 20 4E 75 6D 62 65 72 20 o-Random Number
013730: 47 65 6E 65 72 61 74 6F 72 20 20 2A 2F 0D 0A 2F Generator */../
013740: 2A 0D 0A 20 20 20 20 41 64 61 70 74 65 64 20 66 *.. Adapted f
013750: 72 6F 6D 20 22 4C 65 61 72 6E 69 6E 67 20 74 6F rom "Learning to
013760: 20 50 72 6F 67 72 61 6D 20 69 6E 20 43 22 20 62 Program in C" b
013770: 79 20 54 68 6F 6D 61 73 20 50 6C 75 6D 2E 0D 0A y Thomas Plum...
013780: 2A 2F 0D 0A 0D 0A 0D 0A 63 68 61 72 20 20 5F 72 */......char _r
013790: 6E 75 6D 5B 34 5D 3B 0D 0A 0D 0A 0D 0A 73 72 61 num[4];......sra
0137A0: 6E 64 28 6E 29 0D 0A 7B 0D 0A 20 20 6C 6F 6E 67 nd(n)..{.. long
0137B0: 5F 69 6E 69 74 28 5F 72 6E 75 6D 2C 20 30 2C 6E _init(_rnum, 0,n
0137C0: 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 69 6E 74 20 72 );..}......int r
0137D0: 61 6E 64 28 29 0D 0A 7B 0D 0A 20 20 73 74 61 74 and()..{.. stat
0137E0: 69 63 20 63 68 61 72 20 6B 5B 34 5D 3B 0D 0A 0D ic char k[4];...
0137F0: 0A 20 20 6C 6F 6E 67 5F 69 6E 69 74 28 6B 2C 20 . long_init(k,
013800: 65 65 6E 20 70 6C 61 79 65 64 20 28 6F 72 20 69 een played (or i
013810: 66 20 6E 6F 20 70 6C 61 79 65 72 20 68 61 73 20 f no player has
013820: 61 20 6C 65 67 61 6C 20 6D 6F 76 65 20 6C 65 66 a legal move lef
013830: 74 29 2C 0D 0A 74 68 65 20 70 6C 61 79 65 72 20 t),..the player
013840: 77 69 74 68 20 74 68 65 20 6D 6F 73 74 20 6F 66 with the most of
013850: 20 68 69 73 20 6F 77 6E 20 70 69 65 63 65 73 20 his own pieces
013860: 6F 6E 20 74 68 65 20 62 6F 61 72 64 20 77 69 6E on the board win
013870: 73 2E 0D 0A 0D 0A 20 20 20 54 68 65 20 70 6C 61 s..... The pla
013880: 79 69 6E 67 20 70 69 65 63 65 73 20 61 72 65 20 ying pieces are
013890: 27 2A 27 20 61 6E 64 20 27 40 27 2E 20 59 6F 75 '*' and '@'. You
0138A0: 20 6D 61 79 20 63 68 6F 6F 73 65 20 74 6F 20 70 may choose to p
0138B0: 6C 61 79 0D 0A 65 69 74 68 65 72 20 27 2A 27 20 lay..either '*'
0138C0: 6F 72 20 27 40 27 20 66 6F 72 20 74 68 65 20 66 or '@' for the f
0138D0: 69 72 73 74 20 67 61 6D 65 3B 20 74 68 65 72 65 irst game; there
0138E0: 61 66 74 65 72 2C 20 79 6F 75 20 61 6E 64 20 74 after, you and t
0138F0: 68 65 0D 0A 63 6F 6D 70 75 74 65 72 20 77 69 6C he..computer wil
013900: 6C 20 61 6C 74 65 72 6E 61 74 65 20 67 6F 69 6E l alternate goin
013910: 67 20 66 69 72 73 74 20 66 6F 72 20 65 61 63 68 g first for each
013920: 20 67 61 6D 65 2E 20 57 68 6F 65 76 65 72 0D 0A game. Whoever..
013930: 67 6F 65 73 20 66 69 72 73 74 20 61 6C 77 61 79 goes first alway
013940: 73 20 70 6C 61 79 73 20 60 2A 27 2E 0D 0A 0D 0A s plays `*'.....
013950: 20 20 20 59 6F 75 20 65 6E 74 65 72 20 61 20 6D You enter a m
013960: 6F 76 65 20 61 73 20 61 20 74 77 6F 20 64 69 67 ove as a two dig
013970: 69 74 20 6E 75 6D 62 65 72 2C 20 65 61 63 68 20 it number, each
013980: 64 69 67 69 74 20 62 65 69 6E 67 0D 0A 66 72 6F digit being..fro
013990: 6D 20 31 20 74 6F 20 38 2C 20 66 69 72 73 74 20 m 1 to 8, first
0139A0: 64 69 67 69 74 20 72 65 70 72 65 73 65 6E 74 69 digit representi
0139B0: 6E 67 20 72 6F 77 20 61 6E 64 20 73 65 63 6F 6E ng row and secon
0139C0: 64 20 72 65 70 72 65 73 65 6E 74 69 6E 67 0D 0A d representing..
0139D0: 63 6F 6C 75 6D 6E 2E 20 46 6F 72 20 65 78 61 6D column. For exam
0139E0: 70 6C 65 3A 20 69 66 20 70 6C 61 79 69 6E 67 20 ple: if playing
0139F0: 27 2A 27 2C 20 79 6F 75 72 20 66 69 72 73 74 20 '*', your first
013A00: 20 30 78 34 31 63 36 2C 30 78 34 65 36 64 29 3B 0x41c6,0x4e6d);
013A10: 0D 0A 20 20 6C 6F 6E 67 5F 6D 75 6C 74 69 70 6C .. long_multipl
013A20: 79 28 5F 72 6E 75 6D 2C 20 5F 72 6E 75 6D 2C 20 y(_rnum, _rnum,
013A30: 6B 29 3B 0D 0A 20 20 6C 6F 6E 67 5F 69 6E 69 74 k);.. long_init
013A40: 28 6B 2C 20 20 20 20 20 20 20 30 2C 30 78 33 30 (k, 0,0x30
013A50: 33 39 29 3B 0D 0A 20 20 6C 6F 6E 67 5F 61 64 64 39);.. long_add
013A60: 28 5F 72 6E 75 6D 2C 20 5F 72 6E 75 6D 2C 20 6B (_rnum, _rnum, k
013A70: 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 20 28 5F );.. return (_
013A80: 72 6E 75 6D 5B 31 5D 20 3C 3C 20 38 29 20 20 2B rnum[1] << 8) +
013A90: 20 20 5F 72 6E 75 6D 5B 30 5D 3B 0D 0A 7D 0D 0A _rnum[0];..}..
013AA0: 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 6F 6D 65 ......../* Some
013AB0: 20 46 75 6E 63 74 69 6F 6E 73 20 66 6F 72 20 33 Functions for 3
013AC0: 32 20 62 69 74 20 69 6E 74 65 67 65 72 20 61 72 2 bit integer ar
013AD0: 69 74 68 6D 65 74 69 63 20 20 2A 2F 0D 0A 0D 0A ithmetic */....
013AE0: 6C 6F 6E 67 5F 6D 75 6C 74 69 70 6C 79 28 63 2C long_multiply(c,
013AF0: 20 61 2C 20 62 29 0D 0A 20 20 63 68 61 72 20 2A a, b).. char *
013B00: 61 2C 20 2A 62 2C 20 2A 63 3B 0D 0A 7B 0D 0A 20 a, *b, *c;..{..
013B10: 20 73 74 61 74 69 63 20 63 68 61 72 20 78 5B 34 static char x[4
013B20: 5D 2C 20 70 72 6F 64 75 63 74 5B 34 5D 3B 0D 0A ], product[4];..
013B30: 20 20 73 74 61 74 69 63 20 69 6E 74 20 69 2C 20 static int i,
013B40: 6A 3B 0D 0A 0D 0A 20 20 6C 6F 6E 67 5F 73 65 74 j;.... long_set
013B50: 28 70 72 6F 64 75 63 74 2C 20 30 2C 30 29 3B 0D (product, 0,0);.
013B60: 0A 20 20 66 6F 72 20 28 69 20 3D 20 30 3B 20 69 . for (i = 0; i
013B70: 20 3C 20 34 3B 20 2B 2B 69 29 0D 0A 20 20 20 20 < 4; ++i)..
013B80: 66 6F 72 20 28 6A 20 3D 20 69 3B 20 6A 20 3E 3D for (j = i; j >=
013B90: 20 30 3B 20 2D 2D 6A 29 0D 0A 20 20 20 20 20 20 0; --j)..
013BA0: 7B 0D 0A 20 20 20 20 20 20 20 20 6C 6F 6E 67 5F {.. long_
013BB0: 73 65 74 28 78 2C 20 61 5B 69 2D 6A 5D 20 2A 20 set(x, a[i-j] *
013BC0: 62 5B 6A 5D 2C 20 69 29 3B 0D 0A 20 20 20 20 20 b[j], i);..
013BD0: 20 20 20 6C 6F 6E 67 5F 61 64 64 28 70 72 6F 64 long_add(prod
013BE0: 75 63 74 2C 20 70 72 6F 64 75 63 74 2C 20 78 29 uct, product, x)
013BF0: 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 6C 6F ;.. }.. lo
013C00: 6D 6F 76 65 20 6D 69 67 68 74 20 62 65 20 27 34 move might be '4
013C10: 36 27 2C 0D 0A 6D 65 61 6E 69 6E 67 20 34 74 68 6',..meaning 4th
013C20: 20 72 6F 77 20 64 6F 77 6E 2C 20 36 74 68 20 70 row down, 6th p
013C30: 6F 73 69 74 69 6F 6E 20 61 63 72 6F 73 73 2E 0D osition across..
013C40: 0A 0D 0A 20 20 20 41 73 20 61 6E 20 61 6C 74 65 ... As an alte
013C50: 72 6E 61 74 69 76 65 20 74 6F 20 65 6E 74 65 72 rnative to enter
013C60: 69 6E 67 20 61 20 6D 6F 76 65 2C 20 6F 6E 65 20 ing a move, one
013C70: 6F 66 20 74 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 of the following
013C80: 0D 0A 63 6F 6D 6D 61 6E 64 73 20 6D 61 79 20 62 ..commands may b
013C90: 65 20 74 79 70 65 64 3A 0D 0A 0D 0A 09 67 09 63 e typed:.....g.c
013CA0: 61 75 73 65 73 20 63 6F 6D 70 75 74 65 72 20 74 auses computer t
013CB0: 6F 20 70 6C 61 79 20 62 6F 74 68 20 73 69 64 65 o play both side
013CC0: 73 20 75 6E 74 69 6C 20 67 61 6D 65 0D 0A 09 09 s until game....
013CD0: 69 73 20 6F 76 65 72 20 6F 72 20 75 6E 74 69 6C is over or until
013CE0: 20 79 6F 75 20 68 69 74 20 61 20 6B 65 79 2E 0D you hit a key..
013CF0: 0A 0D 0A 09 61 09 63 61 75 73 65 73 20 63 6F 6D ....a.causes com
013D00: 70 75 74 65 72 20 74 6F 20 70 72 69 6E 74 20 6F puter to print o
013D10: 75 74 20 61 6E 20 61 6E 61 6C 79 73 69 73 20 6F ut an analysis o
013D20: 66 0D 0A 09 09 65 61 63 68 20 6F 66 20 79 6F 75 f....each of you
013D30: 72 20 70 6F 73 73 69 62 6C 65 20 6D 6F 76 65 73 r possible moves
013D40: 2E 20 41 20 6C 65 74 74 65 72 20 66 72 6F 6D 20 . A letter from
013D50: 41 0D 0A 09 09 74 6F 20 5A 20 77 69 6C 6C 20 61 A....to Z will a
013D60: 70 70 65 61 72 20 61 74 20 65 61 63 68 20 6F 66 ppear at each of
013D70: 20 79 6F 75 72 20 6C 65 67 61 6C 20 6D 6F 76 65 your legal move
013D80: 0D 0A 09 09 70 6F 73 69 74 69 6F 6E 73 2C 20 77 ....positions, w
013D90: 68 65 72 65 20 41 20 69 73 20 74 68 65 20 6D 61 here A is the ma
013DA0: 63 68 69 6E 65 27 73 20 6F 70 69 6E 69 6F 6E 0D chine's opinion.
013DB0: 0A 09 09 6F 66 20 61 6E 20 65 78 63 65 6C 6C 61 ...of an excella
013DC0: 6E 74 20 6D 6F 76 65 20 61 6E 64 20 5A 20 69 73 nt move and Z is
013DD0: 20 61 20 72 65 61 6C 20 6C 6F 73 65 72 2E 0D 0A a real loser...
013DE0: 0D 0A 09 68 6E 09 73 65 74 73 20 68 61 6E 64 69 ...hn.sets handi
013DF0: 63 61 70 2E 20 6E 20 69 73 20 31 2C 32 2C 33 2C cap. n is 1,2,3,
013E00: 6E 67 5F 63 6F 70 79 28 63 2C 20 70 72 6F 64 75 ng_copy(c, produ
013E10: 63 74 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 6C ct);..}........l
013E20: 6F 6E 67 5F 61 64 64 28 63 2C 20 61 2C 20 62 29 ong_add(c, a, b)
013E30: 0D 0A 20 20 63 68 61 72 20 2A 61 2C 20 2A 62 2C .. char *a, *b,
013E40: 20 2A 63 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 *c;..{.. stati
013E50: 63 20 75 6E 73 69 67 6E 65 64 20 75 2C 20 69 3B c unsigned u, i;
013E60: 0D 0A 0D 0A 20 20 75 20 3D 20 30 3B 0D 0A 20 20 .... u = 0;..
013E70: 66 6F 72 20 28 69 20 3D 20 30 3B 20 69 20 3C 20 for (i = 0; i <
013E80: 34 3B 20 2B 2B 69 29 0D 0A 20 20 20 20 7B 0D 0A 4; ++i).. {..
013E90: 20 20 20 20 20 20 75 20 20 20 2B 3D 20 20 2A 61 u += *a
013EA0: 2B 2B 20 20 2B 20 20 2A 62 2B 2B 3B 0D 0A 20 20 ++ + *b++;..
013EB0: 20 20 20 20 2A 63 2B 2B 20 3D 20 20 75 20 26 20 *c++ = u &
013EC0: 30 78 66 66 3B 0D 0A 20 20 20 20 20 20 75 20 20 0xff;.. u
013ED0: 3E 3E 3D 20 20 38 3B 0D 0A 20 20 20 20 7D 0D 0A >>= 8;.. }..
013EE0: 7D 0D 0A 0D 0A 0D 0A 0D 0A 6C 6F 6E 67 5F 69 6E }........long_in
013EF0: 69 74 28 61 2C 20 6E 31 2C 20 6E 30 29 0D 0A 20 it(a, n1, n0)..
013F00: 20 63 68 61 72 20 2A 61 3B 0D 0A 20 20 75 6E 73 char *a;.. uns
013F10: 69 67 6E 65 64 20 6E 31 2C 6E 30 3B 0D 0A 7B 0D igned n1,n0;..{.
013F20: 0A 20 20 61 5B 30 5D 20 3D 20 6E 30 20 26 20 30 . a[0] = n0 & 0
013F30: 78 66 66 3B 0D 0A 20 20 61 5B 31 5D 20 3D 20 6E xff;.. a[1] = n
013F40: 30 20 3E 3E 20 38 3B 0D 0A 20 20 61 5B 32 5D 20 0 >> 8;.. a[2]
013F50: 3D 20 6E 31 20 26 20 30 78 66 66 3B 0D 0A 20 20 = n1 & 0xff;..
013F60: 61 5B 33 5D 20 3D 20 6E 31 20 3E 3E 20 38 3B 0D a[3] = n1 >> 8;.
013F70: 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 6C 6F 6E 67 5F 73 .}........long_s
013F80: 65 74 28 61 2C 20 6E 2C 20 64 29 0D 0A 20 20 63 et(a, n, d).. c
013F90: 68 61 72 20 2A 61 3B 0D 0A 20 20 75 6E 73 69 67 har *a;.. unsig
013FA0: 6E 65 64 20 6E 2C 20 64 3B 0D 0A 7B 0D 0A 20 20 ned n, d;..{..
013FB0: 73 74 61 74 69 63 20 69 6E 74 20 69 3B 0D 0A 0D static int i;...
013FC0: 0A 20 20 66 6F 72 20 28 69 3D 30 3B 20 69 3C 34 . for (i=0; i<4
013FD0: 3B 20 2B 2B 69 29 20 61 5B 69 5D 20 3D 20 30 3B ; ++i) a[i] = 0;
013FE0: 0D 0A 20 20 61 5B 64 5D 20 3D 20 6E 20 26 20 30 .. a[d] = n & 0
013FF0: 78 66 66 3B 0D 0A 20 20 69 66 20 28 64 20 3C 20 xff;.. if (d <
014000: 20 6F 72 20 34 2E 20 49 66 20 6E 20 69 73 0D 0A or 4. If n is..
014010: 09 09 70 6F 73 69 74 69 76 65 2C 20 67 69 76 65 ..positive, give
014020: 73 20 6E 20 66 72 65 65 20 70 69 65 63 65 73 20 s n free pieces
014030: 74 6F 20 74 68 65 20 63 6F 6D 70 75 74 65 72 2E to the computer.
014040: 0D 0A 09 09 49 66 20 6E 20 69 73 20 6E 65 67 61 ....If n is nega
014050: 74 69 76 65 2C 20 67 69 76 65 73 20 59 4F 55 20 tive, gives YOU
014060: 74 68 65 20 66 72 65 65 20 70 65 69 63 65 73 2E the free peices.
014070: 0D 0A 0D 0A 09 66 09 66 6F 72 66 65 69 74 20 74 .....f.forfeit t
014080: 68 65 20 63 75 72 72 65 6E 74 20 6D 6F 76 65 2E he current move.
014090: 20 54 68 69 73 20 68 61 70 70 65 6E 73 0D 0A 09 This happens...
0140A0: 09 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 69 .automatically i
0140B0: 66 20 79 6F 75 20 68 61 76 65 20 6E 6F 20 6C 65 f you have no le
0140C0: 67 61 6C 20 6D 6F 76 65 73 2E 0D 0A 0D 0A 09 71 gal moves......q
0140D0: 09 71 75 69 74 20 74 68 65 20 63 75 72 72 65 6E .quit the curren
0140E0: 74 20 67 61 6D 65 2E 0D 0A 0D 0A 09 62 09 70 72 t game......b.pr
0140F0: 69 6E 74 73 20 6F 75 74 20 62 6F 61 72 64 20 61 ints out board a
014100: 67 61 69 6E 2E 0D 0A 0D 0A 09 73 09 70 72 69 6E gain......s.prin
014110: 74 73 20 6F 75 74 20 74 68 65 20 73 63 6F 72 65 ts out the score
014120: 2C 20 61 6E 64 20 74 65 6C 6C 73 20 77 68 6F 20 , and tells who
014130: 69 73 20 77 69 6E 6E 69 6E 67 2E 0D 0A 0D 0A 2A is winning.....*
014140: 2F 0D 0A 0D 0A 23 64 65 66 69 6E 65 20 4E 55 4C /....#define NUL
014150: 4C 20 20 30 0D 0A 23 64 65 66 69 6E 65 20 54 52 L 0..#define TR
014160: 55 45 20 20 31 0D 0A 23 64 65 66 69 6E 65 20 46 UE 1..#define F
014170: 41 4C 53 45 20 30 0D 0A 23 64 65 66 69 6E 65 20 ALSE 0..#define
014180: 42 4C 41 43 4B 20 27 2A 27 0D 0A 23 64 65 66 69 BLACK '*'..#defi
014190: 6E 65 20 57 48 49 54 45 20 27 40 27 0D 0A 23 64 ne WHITE '@'..#d
0141A0: 65 66 69 6E 65 20 45 4D 50 54 59 20 27 2D 27 0D efine EMPTY '-'.
0141B0: 0A 0D 0A 63 68 61 72 20 73 65 6C 66 70 6C 61 79 ...char selfplay
0141C0: 3B 09 09 2F 2A 20 74 72 75 65 20 69 66 20 63 6F ;../* true if co
0141D0: 6D 70 75 74 65 72 20 70 6C 61 79 69 6E 67 20 77 mputer playing w
0141E0: 69 74 68 20 69 74 73 65 6C 66 20 2A 2F 0D 0A 63 ith itself */..c
0141F0: 68 61 72 20 6D 69 6E 65 2C 20 68 69 73 3B 09 09 har mine, his;..
014200: 33 29 20 61 5B 64 2B 31 5D 20 3D 20 6E 20 3E 3E 3) a[d+1] = n >>
014210: 20 38 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 6C 6F 8;..}........lo
014220: 6E 67 5F 63 6F 70 79 28 63 2C 20 61 29 0D 0A 20 ng_copy(c, a)..
014230: 20 63 68 61 72 20 2A 61 2C 20 2A 63 3B 0D 0A 7B char *a, *c;..{
014240: 0D 0A 20 20 62 6C 74 28 63 2C 20 61 2C 20 34 29 .. blt(c, a, 4)
014250: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A ;..}........../*
014260: 0D 0A 0D 0A 09 4F 54 48 45 4C 4C 4F 20 2D 2D 20 .....OTHELLO --
014270: 54 68 65 20 47 61 6D 65 20 6F 66 20 44 72 61 6D The Game of Dram
014280: 61 74 69 63 20 52 65 76 65 72 73 61 6C 73 0D 0A atic Reversals..
014290: 0D 0A 09 77 72 69 74 74 65 6E 20 62 79 20 42 65 ...written by Be
0142A0: 72 74 20 48 61 6C 73 74 65 61 64 0D 0A 09 6D 6F rt Halstead...mo
0142B0: 64 69 66 69 65 64 20 66 6F 72 20 42 44 53 20 43 dified for BDS C
0142C0: 20 62 79 20 4C 65 6F 72 20 5A 6F 6C 6D 61 6E 0D by Leor Zolman.
0142D0: 0A 20 20 20 20 20 20 20 20 6D 6F 64 69 66 69 65 . modifie
0142E0: 64 20 66 6F 72 20 48 69 73 6F 66 74 20 43 20 62 d for Hisoft C b
0142F0: 79 20 44 61 76 65 20 48 6F 77 6F 72 74 68 0D 0A y Dave Howorth..
014300: 20 20 20 20 20 20 20 20 20 2D 20 63 6F 72 72 65 - corre
014310: 63 74 20 73 6F 6D 65 20 66 75 6E 63 74 69 6F 6E ct some function
014320: 20 74 79 70 65 20 65 72 72 6F 72 73 0D 0A 20 20 type errors..
014330: 20 20 20 20 20 20 20 2D 20 72 65 6D 6F 76 65 20 - remove
014340: 61 6E 20 26 20 66 72 6F 6D 20 63 61 6C 6C 20 74 an & from call t
014350: 6F 20 71 73 6F 72 74 20 28 69 74 73 20 6E 6F 74 o qsort (its not
014360: 20 72 69 67 68 74 20 6F 6E 20 61 6E 20 61 72 72 right on an arr
014370: 61 79 29 0D 0A 20 20 20 20 20 20 20 20 20 2D 20 ay).. -
014380: 63 68 61 6E 67 65 20 74 6F 20 75 6E 69 78 2D 73 change to unix-s
014390: 74 79 6C 65 20 72 61 6E 64 28 29 20 66 75 6E 63 tyle rand() func
0143A0: 74 69 6F 6E 0D 0A 20 20 20 20 20 20 20 20 20 2D tion.. -
0143B0: 20 6D 61 6B 65 20 76 61 72 69 61 62 6C 65 73 20 make variables
0143C0: 73 74 61 74 69 63 20 74 6F 20 73 61 76 65 20 68 static to save h
0143D0: 75 6E 64 72 65 64 73 20 6F 66 20 62 79 74 65 73 undreds of bytes
0143E0: 0D 0A 0D 0A 54 68 69 73 20 70 72 6F 67 72 61 6D ....This program
0143F0: 20 69 73 20 61 20 67 6F 6F 64 20 65 78 61 6D 70 is a good examp
014400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
014410: 11 00 00 00 02 09 4E E5 11 00 41 02 00 00 00 02 ......N...A.....
014420: 11 00 46 02 00 00 00 02 11 00 42 02 00 00 00 02 ..F.......B.....
014430: 11 00 47 02 00 00 00 02 11 00 43 02 00 00 00 02 ..G.......C.....
014440: 11 00 48 02 00 00 00 02 11 00 44 02 00 00 00 02 ..H.......D.....
014450: 11 00 49 02 00 00 00 02 11 00 45 02 00 00 00 02 ..I.......E.....
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: 2F 2A 20 77 68 6F 20 68 61 73 20 62 6C 61 63 6B /* who has black
014510: 20 28 2A 29 20 61 6E 64 20 77 68 69 74 65 20 28 (*) and white (
014520: 40 29 20 69 6E 20 63 75 72 72 65 6E 74 20 67 61 @) in current ga
014530: 6D 65 20 2A 2F 0D 0A 0D 0A 0D 0A 6D 61 69 6E 28 me */......main(
014540: 61 72 67 63 2C 61 72 67 76 29 0D 0A 69 6E 74 20 argc,argv)..int
014550: 61 72 67 63 3B 0D 0A 63 68 61 72 20 2A 2A 61 72 argc;..char **ar
014560: 67 76 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 69 63 gv;..{.. static
014570: 20 63 68 61 72 20 62 5B 38 5D 5B 38 5D 3B 0D 0A char b[8][8];..
014580: 20 20 73 74 61 74 69 63 20 69 6E 74 20 69 3B 0D static int i;.
014590: 0A 20 20 73 74 61 74 69 63 20 63 68 61 72 20 6D . static char m
0145A0: 65 66 69 72 73 74 3B 09 2F 2A 20 74 72 75 65 20 efirst;./* true
0145B0: 69 66 20 63 6F 6D 70 75 74 65 72 20 67 6F 65 73 if computer goes
0145C0: 20 66 69 72 73 74 20 69 6E 20 63 75 72 72 65 6E first in curren
0145D0: 74 20 67 61 6D 65 20 2A 2F 0D 0A 0D 0A 0D 0A 20 t game */......
0145E0: 20 20 20 20 20 20 20 70 72 69 6E 74 66 28 22 5C printf("\
0145F0: 6E 5C 6E 57 65 6C 63 6F 6D 65 20 74 6F 20 74 68 n\nWelcome to th
014600: 65 20 48 69 73 6F 66 74 20 43 20 4F 54 48 45 4C e Hisoft C OTHEL
014610: 4C 4F 20 70 72 6F 67 72 61 6D 21 5C 6E 22 29 3B LO program!\n");
014620: 0D 0A 09 70 72 69 6E 74 66 28 22 5C 6E 4E 6F 74 ...printf("\nNot
014630: 65 3A 20 60 2A 27 20 61 6C 77 61 79 73 20 67 6F e: `*' always go
014640: 65 73 20 66 69 72 73 74 2E 2E 2E 47 6F 6F 64 20 es first...Good
014650: 6C 75 63 6B 21 21 21 5C 6E 5C 6E 22 29 3B 0D 0A luck!!!\n\n");..
014660: 0D 0A 09 70 75 74 73 28 22 44 6F 20 79 6F 75 20 ...puts("Do you
014670: 77 61 6E 74 20 74 6F 20 67 6F 20 66 69 72 73 74 want to go first
014680: 3F 20 22 29 3B 0D 0A 20 20 20 20 20 20 20 20 6D ? ");.. m
014690: 65 66 69 72 73 74 20 3D 20 28 74 6F 75 70 70 65 efirst = (touppe
0146A0: 72 28 72 61 77 69 6E 28 29 29 20 21 3D 20 27 59 r(rawin()) != 'Y
0146B0: 27 29 3B 0D 0A 09 70 72 69 6E 74 66 28 22 5C 6E ');...printf("\n
0146C0: 5C 6E 22 29 3B 0D 0A 0D 0A 09 64 6F 20 7B 0D 0A \n");.....do {..
0146D0: 09 09 63 6C 72 62 72 64 28 62 29 3B 0D 0A 09 09 ..clrbrd(b);....
0146E0: 70 72 74 62 72 64 28 62 29 3B 0D 0A 09 09 69 20 prtbrd(b);....i
0146F0: 3D 20 67 61 6D 65 28 62 2C 34 2C 6D 65 66 69 72 = game(b,4,mefir
014700: 66 69 72 73 74 20 3F 20 22 2E 2E 2E 46 6F 72 66 first ? "...Forf
014710: 65 69 74 5C 6E 22 3A 20 22 46 6F 72 66 65 69 74 eit\n": "Forfeit
014720: 2E 2E 2E 5C 6E 22 29 3B 0D 0A 09 09 09 66 66 20 ...\n");.....ff
014730: 7C 3D 32 3B 0D 0A 09 09 09 7D 0D 0A 09 09 65 6C |=2;.....}....el
014740: 73 65 20 7B 0D 0A 09 09 09 6D 79 5F 6D 6F 76 28 se {.....my_mov(
014750: 62 2C 6D 69 6E 65 2C 68 69 73 2C 45 4D 50 54 59 b,mine,his,EMPTY
014760: 2C 26 69 2C 26 6A 29 3B 0D 0A 09 09 09 70 72 69 ,&i,&j);.....pri
014770: 6E 74 66 28 21 6D 65 66 69 72 73 74 20 3F 20 22 ntf(!mefirst ? "
014780: 2E 2E 2E 25 31 64 2D 25 31 64 5C 6E 22 20 3A 20 ...%1d-%1d\n" :
014790: 22 25 31 64 2D 25 31 64 2E 2E 2E 5C 6E 22 2C 0D "%1d-%1d...\n",.
0147A0: 0A 09 09 09 09 69 2B 31 2C 6A 2B 31 29 3B 0D 0A .....i+1,j+1);..
0147B0: 09 09 09 70 75 74 6D 6F 76 28 62 2C 6D 69 6E 65 ...putmov(b,mine
0147C0: 2C 69 2C 6A 29 3B 0D 0A 09 09 09 2B 2B 6E 3B 0D ,i,j);.....++n;.
0147D0: 0A 09 09 09 7D 0D 0A 09 09 69 66 20 28 66 66 3D ....}....if (ff=
0147E0: 3D 33 20 7C 7C 20 6E 3E 36 34 29 20 72 65 74 75 =3 || n>64) retu
0147F0: 72 6E 20 27 44 27 3B 0D 0A 09 09 69 66 20 28 21 rn 'D';....if (!
014800: 28 66 66 20 26 20 31 29 29 20 70 72 74 62 72 64 (ff & 1)) prtbrd
014810: 28 62 29 3B 0D 0A 09 09 66 66 20 3D 20 30 3B 0D (b);....ff = 0;.
014820: 0A 09 7D 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A ..}..}......../*
014830: 20 73 65 63 6F 6E 64 20 68 61 6C 66 20 6F 66 20 second half of
014840: 4F 74 68 65 6C 6C 6F 20 70 72 6F 67 72 72 61 6D Othello progrram
014850: 20 2A 2F 0D 0A 0D 0A 70 72 74 73 63 72 28 62 29 */....prtscr(b)
014860: 0D 0A 63 68 61 72 20 2A 62 3B 0D 0A 7B 0D 0A 20 ..char *b;..{..
014870: 20 73 74 61 74 69 63 20 69 6E 74 20 69 2C 6A 3B static int i,j;
014880: 0D 0A 0D 0A 09 70 72 69 6E 74 66 28 22 25 31 64 .....printf("%1d
014890: 2D 25 31 64 22 2C 69 20 3D 20 63 6E 74 62 72 64 -%1d",i = cntbrd
0148A0: 28 62 2C 68 69 73 29 2C 20 6A 3D 63 6E 74 62 72 (b,his), j=cntbr
0148B0: 64 28 62 2C 6D 69 6E 65 29 29 3B 0D 0A 09 72 65 d(b,mine));...re
0148C0: 74 75 72 6E 20 69 2D 6A 3B 0D 0A 7D 0D 0A 0D 0A turn i-j;..}....
0148D0: 69 6E 74 20 20 67 65 74 6D 6F 76 28 69 2C 6A 29 int getmov(i,j)
0148E0: 0D 0A 69 6E 74 20 2A 69 2C 20 2A 6A 3B 0D 0A 7B ..int *i, *j;..{
0148F0: 0D 0A 20 20 73 74 61 74 69 63 20 63 68 61 72 20 .. static char
014900: 73 74 29 3B 0D 0A 09 09 6D 65 66 69 72 73 74 20 st);....mefirst
014910: 3D 20 21 6D 65 66 69 72 73 74 3B 0D 0A 09 09 69 = !mefirst;....i
014920: 66 20 28 69 3D 3D 34 29 20 62 72 65 61 6B 3B 0D f (i==4) break;.
014930: 0A 09 09 69 66 20 28 69 3D 3D 27 51 27 29 20 63 ...if (i=='Q') c
014940: 6F 6E 74 69 6E 75 65 3B 0D 0A 09 09 70 72 69 6E ontinue;....prin
014950: 74 66 28 22 5C 6E 22 29 3B 0D 0A 09 09 69 20 3D tf("\n");....i =
014960: 20 70 72 74 73 63 72 28 62 29 3B 0D 0A 09 09 69 prtscr(b);....i
014970: 66 20 28 69 3E 30 29 20 70 72 69 6E 74 66 28 22 f (i>0) printf("
014980: 20 59 6F 75 20 77 6F 6E 20 62 79 20 25 64 5C 6E You won by %d\n
014990: 22 2C 69 29 3B 0D 0A 09 09 65 6C 73 65 20 69 66 ",i);....else if
0149A0: 20 28 69 3C 30 29 20 70 72 69 6E 74 66 28 22 20 (i<0) printf("
0149B0: 59 6F 75 20 6C 6F 73 74 20 62 79 20 25 64 5C 6E You lost by %d\n
0149C0: 22 2C 2D 69 29 3B 0D 0A 09 09 65 6C 73 65 20 70 ",-i);....else p
0149D0: 72 69 6E 74 66 28 22 20 41 20 64 72 61 77 5C 6E rintf(" A draw\n
0149E0: 22 29 3B 0D 0A 09 7D 20 77 68 69 6C 65 20 28 61 ");...} while (a
0149F0: 73 6B 28 22 41 6E 6F 74 68 65 72 20 67 61 6D 65 sk("Another game
014A00: 3F 20 22 29 3D 3D 27 59 27 29 3B 0D 0A 7D 0D 0A ? ")=='Y');..}..
014A10: 0D 0A 67 61 6D 65 28 62 2C 6E 2C 6D 65 66 69 72 ..game(b,n,mefir
014A20: 73 74 29 0D 0A 63 68 61 72 20 62 5B 38 5D 5B 38 st)..char b[8][8
014A30: 5D 3B 0D 0A 69 6E 74 20 6E 3B 0D 0A 7B 0D 0A 20 ];..int n;..{..
014A40: 20 73 74 61 74 69 63 20 63 68 61 72 20 63 3B 0D static char c;.
014A50: 0A 20 20 73 74 61 74 69 63 20 69 6E 74 20 66 66 . static int ff
014A60: 3B 0D 0A 20 20 73 74 61 74 69 63 20 69 6E 74 20 ;.. static int
014A70: 69 2C 6A 3B 0D 0A 20 20 73 74 61 74 69 63 20 69 i,j;.. static i
014A80: 6E 74 20 68 61 6E 64 69 63 61 70 3B 0D 0A 20 20 nt handicap;..
014A90: 73 74 61 74 69 63 20 69 6E 74 20 68 5B 34 5D 5B static int h[4][
014AA0: 32 5D 20 3D 20 7B 30 2C 20 30 2C 09 2F 2A 20 68 2] = {0, 0,./* h
014AB0: 61 6E 64 69 63 61 70 20 70 6F 73 69 74 69 6F 6E andicap position
014AC0: 20 74 61 62 6C 65 20 2A 2F 0D 0A 20 20 20 20 20 table */..
014AD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014AE0: 20 20 20 37 2C 20 37 2C 0D 0A 20 20 20 20 20 20 7, 7,..
014AF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014B00: 61 2C 63 3B 0D 0A 20 20 73 74 61 74 69 63 20 69 a,c;.. static i
014B10: 6E 74 20 6E 3B 0D 0A 20 20 73 74 61 74 69 63 20 nt n;.. static
014B20: 63 68 61 72 20 2A 70 3B 0D 0A 0D 0A 09 69 66 20 char *p;.....if
014B30: 28 73 65 6C 66 70 6C 61 79 20 3D 3D 20 27 47 27 (selfplay == 'G'
014B40: 29 20 7B 0D 0A 09 09 69 66 20 28 21 6B 65 79 68 ) {....if (!keyh
014B50: 69 74 28 29 29 20 72 65 74 75 72 6E 20 27 47 27 it()) return 'G'
014B60: 3B 0D 0A 09 09 73 65 6C 66 70 6C 61 79 20 3D 20 ;....selfplay =
014B70: 27 20 27 3B 0D 0A 09 09 67 65 74 63 68 61 72 28 ' ';....getchar(
014B80: 29 3B 0D 0A 09 7D 0D 0A 09 70 72 69 6E 74 66 28 );...}...printf(
014B90: 22 4D 6F 76 65 3A 20 22 29 3B 0D 0A 20 20 20 20 "Move: ");..
014BA0: 20 20 20 20 77 68 69 6C 65 28 31 29 20 73 77 69 while(1) swi
014BB0: 74 63 68 20 28 63 3D 73 6B 69 70 62 6C 28 29 29 tch (c=skipbl())
014BC0: 20 7B 0D 0A 09 09 63 61 73 65 20 27 5C 6E 27 3A {....case '\n':
014BD0: 20 70 72 69 6E 74 66 28 22 4D 6F 76 65 3F 20 20 printf("Move?
014BE0: 22 29 3B 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 09 "); continue;...
014BF0: 09 63 61 73 65 20 27 47 27 3A 20 69 66 20 28 28 .case 'G': if ((
014C00: 63 20 3D 20 73 6B 69 70 62 6C 28 29 29 20 21 3D c = skipbl()) !=
014C10: 20 27 5C 6E 27 29 0D 0A 09 09 09 09 67 6F 74 6F '\n')......goto
014C20: 20 66 6C 75 73 68 3B 0D 0A 09 09 09 73 65 6C 66 flush;.....self
014C30: 70 6C 61 79 3D 27 47 27 3B 0D 0A 09 09 09 72 65 play='G';.....re
014C40: 74 75 72 6E 20 27 47 27 3B 0D 0A 09 09 63 61 73 turn 'G';....cas
014C50: 65 20 27 42 27 3A 20 63 61 73 65 20 27 53 27 3A e 'B': case 'S':
014C60: 20 63 61 73 65 20 27 51 27 3A 0D 0A 09 09 63 61 case 'Q':....ca
014C70: 73 65 20 27 46 27 3A 20 63 61 73 65 20 27 41 27 se 'F': case 'A'
014C80: 3A 0D 0A 09 09 20 20 61 3D 63 3B 0D 0A 09 09 20 :.... a=c;....
014C90: 20 69 66 20 28 28 20 63 20 3D 20 73 6B 69 70 62 if (( c = skipb
014CA0: 6C 28 29 29 20 21 3D 20 27 5C 6E 27 29 20 67 6F l()) != '\n') go
014CB0: 74 6F 20 66 6C 75 73 68 3B 0D 0A 09 09 20 20 72 to flush;.... r
014CC0: 65 74 75 72 6E 20 61 3B 0D 0A 09 09 63 61 73 65 eturn a;....case
014CD0: 20 27 48 27 3A 20 69 66 20 28 28 61 3D 63 3D 73 'H': if ((a=c=s
014CE0: 6B 69 70 62 6C 28 29 29 20 3D 3D 20 45 4D 50 54 kipbl()) == EMPT
014CF0: 59 29 0D 0A 09 09 09 09 63 3D 67 65 74 63 68 61 Y)......c=getcha
014D00: 20 20 30 2C 20 37 2C 0D 0A 20 20 20 20 20 20 20 0, 7,..
014D10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
014D20: 20 37 2C 20 30 7D 3B 0D 0A 0D 0A 09 68 61 6E 64 7, 0};.....hand
014D30: 69 63 61 70 20 3D 20 30 3B 0D 0A 09 73 65 6C 66 icap = 0;...self
014D40: 70 6C 61 79 20 3D 20 27 20 27 3B 0D 0A 09 66 66 play = ' ';...ff
014D50: 3D 30 3B 0D 0A 0D 0A 09 69 66 20 28 6D 65 66 69 =0;.....if (mefi
014D60: 72 73 74 29 20 7B 0D 0A 09 09 6D 69 6E 65 20 3D rst) {....mine =
014D70: 20 42 4C 41 43 4B 3B 20 68 69 73 20 3D 20 57 48 BLACK; his = WH
014D80: 49 54 45 3B 0D 0A 09 09 70 72 69 6E 74 66 28 22 ITE;....printf("
014D90: 5C 6E 49 20 67 6F 20 66 69 72 73 74 3A 5C 6E 5C \nI go first:\n\
014DA0: 6E 22 29 3B 0D 0A 09 7D 0D 0A 09 65 6C 73 65 20 n");...}...else
014DB0: 7B 0D 0A 09 09 6D 69 6E 65 20 3D 20 57 48 49 54 {....mine = WHIT
014DC0: 45 3B 20 68 69 73 20 3D 20 42 4C 41 43 4B 3B 0D E; his = BLACK;.
014DD0: 0A 09 09 70 72 69 6E 74 66 28 22 5C 6E 59 6F 75 ...printf("\nYou
014DE0: 20 67 6F 20 66 69 72 73 74 3A 5C 6E 5C 6E 22 29 go first:\n\n")
014DF0: 3B 0D 0A 09 7D 0D 0A 0D 0A 09 77 68 69 6C 65 28 ;...}.....while(
014E00: 31 29 20 7B 0D 0A 09 09 69 66 20 28 63 6E 74 62 1) {....if (cntb
014E10: 72 64 28 62 2C 45 4D 50 54 59 29 3D 3D 30 29 20 rd(b,EMPTY)==0)
014E20: 72 65 74 75 72 6E 20 27 44 27 3B 0D 0A 20 20 20 return 'D';..
014E30: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 if
014E40: 28 63 6E 74 62 72 64 28 62 2C 45 4D 50 54 59 29 (cntbrd(b,EMPTY)
014E50: 3D 3D 36 30 20 26 26 20 6D 69 6E 65 20 3D 3D 20 ==60 && mine ==
014E60: 42 4C 41 43 4B 29 20 67 6F 74 6F 20 49 73 74 61 BLACK) goto Ista
014E70: 72 74 3B 0D 0A 09 09 69 66 20 28 63 68 6B 6D 76 rt;....if (chkmv
014E80: 73 28 62 2C 68 69 73 29 3D 3D 30 29 20 7B 0D 0A s(b,his)==0) {..
014E90: 09 09 09 70 72 69 6E 74 66 28 21 6D 65 66 69 72 ...printf(!mefir
014EA0: 73 74 20 3F 20 22 46 6F 72 66 65 69 74 22 20 3A st ? "Forfeit" :
014EB0: 20 22 20 20 20 2E 2E 2E 46 6F 72 66 65 69 74 5C " ...Forfeit\
014EC0: 6E 22 29 3B 0D 0A 09 09 09 66 66 20 7C 3D 20 31 n");.....ff |= 1
014ED0: 3B 0D 0A 09 09 09 7D 0D 0A 09 09 65 6C 73 65 20 ;.....}....else
014EE0: 73 77 69 74 63 68 20 28 63 20 3D 20 67 65 74 6D switch (c = getm
014EF0: 6F 76 28 26 69 2C 26 6A 29 29 20 7B 0D 0A 09 09 ov(&i,&j)) {....
014F00: 72 28 29 3B 0D 0A 09 09 09 69 66 20 28 63 3C 27 r();.....if (c<'
014F10: 31 27 20 7C 7C 20 63 3E 27 34 27 20 7C 7C 20 73 1' || c>'4' || s
014F20: 6B 69 70 62 6C 28 29 20 21 3D 27 5C 6E 27 29 0D kipbl() !='\n').
014F30: 0A 09 09 09 09 67 6F 74 6F 20 66 6C 75 73 68 3B .....goto flush;
014F40: 0D 0A 09 09 09 2A 69 20 3D 20 61 3D 3D 45 4D 50 .....*i = a==EMP
014F50: 54 59 3F 20 2D 28 63 2D 27 30 27 29 20 3A 20 28 TY? -(c-'0') : (
014F60: 63 2D 27 30 27 29 3B 0D 0A 09 09 09 72 65 74 75 c-'0');.....retu
014F70: 72 6E 20 27 48 27 3B 0D 0A 09 09 63 61 73 65 20 rn 'H';....case
014F80: 34 3A 20 72 65 74 75 72 6E 20 63 3B 0D 0A 09 09 4: return c;....
014F90: 64 65 66 61 75 6C 74 3A 20 69 66 20 28 63 3C 27 default: if (c<'
014FA0: 31 27 20 7C 7C 20 63 3E 27 38 27 29 20 67 6F 74 1' || c>'8') got
014FB0: 6F 20 66 6C 75 73 68 3B 0D 0A 09 09 09 2A 69 20 o flush;.....*i
014FC0: 3D 20 63 2D 27 31 27 3B 0D 0A 09 09 09 63 20 3D = c-'1';.....c =
014FD0: 20 73 6B 69 70 62 6C 28 29 3B 0D 0A 09 09 09 69 skipbl();.....i
014FE0: 66 20 28 63 3C 27 31 27 20 7C 7C 20 63 3E 27 38 f (c<'1' || c>'8
014FF0: 27 29 20 67 6F 74 6F 20 66 6C 75 73 68 3B 0D 0A ') goto flush;..
015000: 09 09 09 2A 6A 20 3D 20 63 2D 20 27 31 27 3B 0D ...*j = c- '1';.
015010: 0A 09 09 09 69 66 20 28 28 63 3D 73 6B 69 70 62 ....if ((c=skipb
015020: 6C 28 29 29 20 3D 3D 20 27 5C 6E 27 29 20 72 65 l()) == '\n') re
015030: 74 75 72 6E 20 27 4D 27 3B 0D 0A 09 09 66 6C 75 turn 'M';....flu
015040: 73 68 3A 09 77 68 69 6C 65 20 28 63 20 21 3D 20 sh:.while (c !=
015050: 27 5C 6E 27 20 26 26 20 63 20 21 3D 20 34 29 0D '\n' && c != 4).
015060: 0A 09 09 09 09 63 3D 67 65 74 63 68 61 72 28 29 .....c=getchar()
015070: 3B 0D 0A 09 09 09 69 66 20 28 63 3D 3D 34 29 20 ;.....if (c==4)
015080: 72 65 74 75 72 6E 20 63 3B 0D 0A 09 09 09 70 72 return c;.....pr
015090: 69 6E 74 66 20 28 22 48 75 68 3F 3F 20 22 29 3B intf ("Huh?? ");
0150A0: 0D 0A 09 09 7D 0D 0A 7D 0D 0A 0D 0A 69 6E 74 20 ....}..}....int
0150B0: 20 61 73 6B 28 73 29 0D 0A 63 68 61 72 20 2A 73 ask(s)..char *s
0150C0: 3B 0D 0A 7B 0D 0A 09 63 68 61 72 20 61 2C 63 3B ;..{...char a,c;
0150D0: 0D 0A 09 70 72 69 6E 74 66 20 28 22 25 73 20 22 ...printf ("%s "
0150E0: 2C 73 29 3B 0D 0A 09 61 3D 73 6B 69 70 62 6C 28 ,s);...a=skipbl(
0150F0: 29 3B 0D 0A 09 77 68 69 6C 65 20 28 63 20 21 3D );...while (c !=
015100: 63 61 73 65 20 27 42 27 3A 20 70 72 74 62 72 64 case 'B': prtbrd
015110: 28 62 29 3B 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A (b); continue;..
015120: 09 09 63 61 73 65 20 27 53 27 3A 20 69 3D 20 70 ..case 'S': i= p
015130: 72 74 73 63 72 28 62 29 3B 0D 0A 09 09 09 69 66 rtscr(b);.....if
015140: 20 28 69 3E 30 29 20 70 72 69 6E 74 66 28 22 20 (i>0) printf("
015150: 59 6F 75 27 72 65 20 77 69 6E 6E 69 6E 67 5C 6E You're winning\n
015160: 22 29 3B 0D 0A 09 09 09 65 6C 73 65 20 69 66 20 ");.....else if
015170: 28 69 3C 30 29 70 72 69 6E 74 66 28 22 20 59 6F (i<0)printf(" Yo
015180: 75 27 72 65 20 6C 6F 73 69 6E 67 21 5C 6E 22 29 u're losing!\n")
015190: 3B 0D 0A 09 09 09 65 6C 73 65 20 70 75 74 63 68 ;.....else putch
0151A0: 61 72 28 27 5C 6E 27 29 3B 0D 0A 09 09 09 63 6F ar('\n');.....co
0151B0: 6E 74 69 6E 75 65 3B 0D 0A 09 09 63 61 73 65 20 ntinue;....case
0151C0: 27 51 27 3A 20 63 61 73 65 20 34 3A 20 72 65 74 'Q': case 4: ret
0151D0: 75 72 6E 20 63 3B 0D 0A 0D 0A 09 09 63 61 73 65 urn c;......case
0151E0: 20 27 48 27 3A 20 69 66 20 28 6E 3E 61 62 73 28 'H': if (n>abs(
0151F0: 68 61 6E 64 69 63 61 70 29 2B 34 29 0D 0A 09 09 handicap)+4)....
015200: 09 09 70 72 69 6E 74 66 28 22 49 6C 6C 65 67 61 ..printf("Illega
015210: 6C 21 5C 6E 22 29 3B 0D 0A 09 09 09 65 6C 73 65 l!\n");.....else
015220: 20 66 6F 72 20 28 6A 3D 30 3B 20 69 21 3D 30 3B for (j=0; i!=0;
015230: 20 6A 2B 2B 29 20 7B 0D 0A 09 09 09 20 62 5B 68 j++) {..... b[h
015240: 5B 6A 5D 5B 30 5D 5D 5B 68 5B 6A 5D 5B 31 5D 5D [j][0]][h[j][1]]
015250: 3D 20 69 3E 30 3F 42 4C 41 43 4B 3A 57 48 49 54 = i>0?BLACK:WHIT
015260: 45 3B 0D 0A 09 09 09 20 68 61 6E 64 69 63 61 70 E;..... handicap
015270: 20 2B 3D 20 69 3E 30 20 3F 20 31 20 3A 20 2D 31 += i>0 ? 1 : -1
015280: 3B 0D 0A 09 09 09 20 2B 2B 6E 3B 0D 0A 09 09 09 ;..... ++n;.....
015290: 20 69 20 2B 3D 20 69 3E 30 20 3F 20 2D 31 20 3A i += i>0 ? -1 :
0152A0: 20 31 3B 0D 0A 09 09 09 7D 0D 0A 09 09 09 70 72 1;.....}.....pr
0152B0: 74 62 72 64 28 62 29 3B 20 63 6F 6E 74 69 6E 75 tbrd(b); continu
0152C0: 65 3B 0D 0A 09 09 63 61 73 65 20 27 41 27 3A 20 e;....case 'A':
0152D0: 61 6E 61 6C 79 7A 65 28 62 2C 68 69 73 2C 6D 69 analyze(b,his,mi
0152E0: 6E 65 2C 45 4D 50 54 59 29 3B 0D 0A 09 09 09 63 ne,EMPTY);.....c
0152F0: 6F 6E 74 69 6E 75 65 3B 0D 0A 09 09 63 61 73 65 ontinue;....case
015300: 20 27 5C 6E 27 20 26 26 20 63 20 21 3D 20 34 29 '\n' && c != 4)
015310: 20 63 3D 20 67 65 74 63 68 61 72 28 29 3B 0D 0A c= getchar();..
015320: 09 72 65 74 75 72 6E 20 61 3B 0D 0A 7D 0D 0A 0D .return a;..}...
015330: 0A 69 6E 74 20 20 73 6B 69 70 62 6C 28 29 0D 0A .int skipbl()..
015340: 7B 0D 0A 20 20 20 20 20 20 20 20 73 74 61 74 69 {.. stati
015350: 63 20 63 68 61 72 20 63 3B 0D 0A 09 77 68 69 6C c char c;...whil
015360: 65 20 28 28 63 20 3D 20 74 6F 75 70 70 65 72 28 e ((c = toupper(
015370: 67 65 74 63 68 61 72 28 29 29 29 20 3D 3D 20 27 getchar())) == '
015380: 20 27 20 7C 7C 20 63 3D 3D 27 5C 74 27 29 3B 0D ' || c=='\t');.
015390: 0A 09 72 65 74 75 72 6E 20 63 3B 0D 0A 7D 0D 0A ..return c;..}..
0153A0: 0D 0A 0D 0A 63 68 6B 6D 76 73 28 62 2C 70 29 0D ....chkmvs(b,p).
0153B0: 0A 63 68 61 72 20 62 5B 38 5D 5B 38 5D 3B 0D 0A .char b[8][8];..
0153C0: 63 68 61 72 20 70 3B 0D 0A 7B 0D 0A 20 20 73 74 char p;..{.. st
0153D0: 61 74 69 63 20 69 6E 74 20 69 2C 6A 2C 6B 3B 0D atic int i,j,k;.
0153E0: 0A 0D 0A 09 6B 3D 30 3B 0D 0A 09 66 6F 72 20 28 ....k=0;...for (
0153F0: 69 3D 30 3B 20 69 3C 38 3B 20 69 2B 2B 29 20 66 i=0; i<8; i++) f
015400: 6F 72 20 28 6A 3D 30 3B 20 6A 3C 38 3B 20 6A 2B or (j=0; j<8; j+
015410: 2B 29 0D 0A 09 09 6B 20 2B 3D 20 63 68 6B 6D 6F +)....k += chkmo
015420: 76 28 62 2C 70 2C 69 2C 6A 29 3B 0D 0A 09 72 65 v(b,p,i,j);...re
015430: 74 75 72 6E 20 6B 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A turn k;..}......
015440: 63 68 6B 6D 6F 76 28 62 2C 70 2C 78 2C 79 29 0D chkmov(b,p,x,y).
015450: 0A 63 68 61 72 20 62 5B 38 5D 5B 38 5D 2C 70 3B .char b[8][8],p;
015460: 0D 0A 69 6E 74 20 78 2C 79 3B 0D 0A 7B 0D 0A 09 ..int x,y;..{...
015470: 69 66 20 28 62 5B 78 5D 5B 79 5D 20 21 3D 20 45 if (b[x][y] != E
015480: 4D 50 54 59 29 20 72 65 74 75 72 6E 20 30 3B 0D MPTY) return 0;.
015490: 0A 09 72 65 74 75 72 6E 09 63 68 6B 6D 76 31 28 ..return.chkmv1(
0154A0: 62 2C 70 2C 78 2C 79 2C 30 2C 31 29 20 2B 20 63 b,p,x,y,0,1) + c
0154B0: 68 6B 6D 76 31 28 62 2C 70 2C 78 2C 79 2C 31 2C hkmv1(b,p,x,y,1,
0154C0: 30 29 20 2B 0D 0A 09 09 63 68 6B 6D 76 31 28 62 0) +....chkmv1(b
0154D0: 2C 70 2C 78 2C 79 2C 30 2C 2D 31 29 2B 20 63 68 ,p,x,y,0,-1)+ ch
0154E0: 6B 6D 76 31 28 62 2C 70 2C 78 2C 79 2C 2D 31 2C kmv1(b,p,x,y,-1,
0154F0: 30 29 2B 0D 0A 09 09 63 68 6B 6D 76 31 28 62 2C 0)+....chkmv1(b,
015500: 20 27 47 27 3A 20 6D 79 5F 6D 6F 76 28 62 2C 68 'G': my_mov(b,h
015510: 69 73 2C 6D 69 6E 65 2C 45 4D 50 54 59 2C 26 69 is,mine,EMPTY,&i
015520: 2C 26 6A 29 3B 0D 0A 20 20 20 20 20 20 20 20 20 ,&j);..
015530: 20 20 20 20 20 20 20 63 61 73 65 20 27 4D 27 3A case 'M':
015540: 20 69 66 20 28 63 68 6B 6D 6F 76 28 62 2C 68 69 if (chkmov(b,hi
015550: 73 2C 69 2C 6A 29 3E 30 29 20 7B 0D 0A 09 09 09 s,i,j)>0) {.....
015560: 70 72 69 6E 74 66 28 21 6D 65 66 69 72 73 74 20 printf(!mefirst
015570: 3F 20 22 25 31 64 2D 25 31 64 22 20 3A 20 22 20 ? "%1d-%1d" : "
015580: 20 20 2E 2E 2E 25 31 64 2D 25 31 64 5C 6E 22 2C ...%1d-%1d\n",
015590: 0D 0A 09 09 09 09 69 2B 31 2C 6A 2B 31 29 3B 0D ......i+1,j+1);.
0155A0: 0A 09 09 09 70 75 74 6D 6F 76 28 62 2C 68 69 73 ....putmov(b,his
0155B0: 2C 69 2C 6A 29 3B 0D 0A 09 09 09 7D 0D 0A 09 09 ,i,j);.....}....
0155C0: 09 65 6C 73 65 20 7B 0D 0A 09 09 09 20 20 70 72 .else {..... pr
0155D0: 69 6E 74 66 28 22 49 6C 6C 65 67 61 6C 21 5C 6E intf("Illegal!\n
0155E0: 22 29 3B 0D 0A 09 09 09 20 20 63 6F 6E 74 69 6E ");..... contin
0155F0: 75 65 3B 0D 0A 09 09 09 20 7D 0D 0A 09 09 09 62 ue;..... }.....b
015600: 72 65 61 6B 3B 0D 0A 09 09 63 61 73 65 20 27 46 reak;....case 'F
015610: 27 3A 20 69 66 20 28 6E 3E 61 62 73 28 68 61 6E ': if (n>abs(han
015620: 64 69 63 61 70 29 2B 34 29 20 7B 0D 0A 09 09 09 dicap)+4) {.....
015630: 70 72 69 6E 74 66 20 28 22 49 6C 6C 65 67 61 6C printf ("Illegal
015640: 21 5C 6E 22 29 3B 0D 0A 09 09 09 63 6F 6E 74 69 !\n");.....conti
015650: 6E 75 65 3B 0D 0A 09 09 09 20 7D 0D 0A 09 09 09 nue;..... }.....
015660: 65 6C 73 65 20 70 72 69 6E 74 66 28 21 6D 65 66 else printf(!mef
015670: 69 72 73 74 20 3F 20 22 46 6F 72 66 65 69 74 22 irst ? "Forfeit"
015680: 20 3A 0D 0A 09 09 09 09 09 09 20 22 20 20 20 2E :........ " .
015690: 2E 2E 46 6F 72 66 65 69 74 5C 6E 22 29 3B 0D 0A ..Forfeit\n");..
0156A0: 09 09 7D 0D 0A 49 73 74 61 72 74 3A 0D 0A 09 09 ..}..Istart:....
0156B0: 69 66 20 28 63 6E 74 62 72 64 28 62 2C 45 4D 50 if (cntbrd(b,EMP
0156C0: 54 59 29 20 3D 3D 20 30 29 20 72 65 74 75 72 6E TY) == 0) return
0156D0: 20 27 44 27 3B 0D 0A 09 09 69 66 20 28 63 68 6B 'D';....if (chk
0156E0: 6D 76 73 28 62 2C 6D 69 6E 65 29 3D 3D 30 29 20 mvs(b,mine)==0)
0156F0: 7B 0D 0A 09 09 09 70 72 69 6E 74 66 28 21 6D 65 {.....printf(!me
015700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
015710: 12 00 00 00 02 09 4E E5 12 00 41 02 00 00 00 02 ......N...A.....
015720: 12 00 46 02 00 00 00 02 12 00 42 02 00 00 00 02 ..F.......B.....
015730: 12 00 47 02 00 00 00 02 12 00 43 02 00 00 00 02 ..G.......C.....
015740: 12 00 48 02 00 00 00 02 12 00 44 02 00 00 00 02 ..H.......D.....
015750: 12 00 49 02 00 00 00 02 12 00 45 02 00 00 00 02 ..I.......E.....
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: 70 2C 78 2C 79 2C 31 2C 31 29 20 2B 20 63 68 6B p,x,y,1,1) + chk
015810: 6D 76 31 28 62 2C 70 2C 78 2C 79 2C 31 2C 2D 31 mv1(b,p,x,y,1,-1
015820: 29 2B 0D 0A 09 09 63 68 6B 6D 76 31 28 62 2C 70 )+....chkmv1(b,p
015830: 2C 78 2C 79 2C 2D 31 2C 31 29 2B 20 63 68 6B 6D ,x,y,-1,1)+ chkm
015840: 76 31 28 62 2C 70 2C 78 2C 79 2C 2D 31 2C 2D 31 v1(b,p,x,y,-1,-1
015850: 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 63 68 6B 6D 76 );..}......chkmv
015860: 31 28 62 2C 70 2C 78 2C 79 2C 6D 2C 6E 29 0D 0A 1(b,p,x,y,m,n)..
015870: 63 68 61 72 20 62 5B 38 5D 5B 38 5D 2C 70 3B 0D char b[8][8],p;.
015880: 0A 69 6E 74 20 78 2C 79 2C 6D 2C 6E 3B 0D 0A 7B .int x,y,m,n;..{
015890: 0D 0A 20 20 73 74 61 74 69 63 20 69 6E 74 20 6B .. static int k
0158A0: 3B 0D 0A 0D 0A 09 6B 3D 30 3B 0D 0A 09 77 68 69 ;.....k=0;...whi
0158B0: 6C 65 20 28 28 78 20 2B 3D 20 6D 29 20 3E 3D 20 le ((x += m) >=
0158C0: 30 20 26 26 20 78 20 3C 20 38 20 26 26 20 28 79 0 && x < 8 && (y
0158D0: 20 2B 3D 20 6E 29 20 3E 3D 20 30 20 26 26 20 79 += n) >= 0 && y
0158E0: 3C 38 29 0D 0A 09 7B 0D 0A 20 09 69 66 20 28 62 <8)...{.. .if (b
0158F0: 5B 78 5D 5B 79 5D 3D 3D 45 4D 50 54 59 29 20 72 [x][y]==EMPTY) r
015900: 65 74 75 72 6E 20 30 3B 0D 0A 09 09 69 66 20 28 eturn 0;....if (
015910: 62 5B 78 5D 5B 79 5D 3D 3D 20 70 20 29 20 72 65 b[x][y]== p ) re
015920: 74 75 72 6E 20 6B 3B 0D 0A 09 09 69 66 20 28 78 turn k;....if (x
015930: 3D 3D 30 20 7C 7C 20 78 3D 3D 37 20 7C 7C 20 79 ==0 || x==7 || y
015940: 3D 3D 30 20 7C 7C 20 79 3D 3D 37 29 0D 0A 09 09 ==0 || y==7)....
015950: 09 6B 20 2B 3D 20 31 30 3B 0D 0A 09 09 20 65 6C .k += 10;.... el
015960: 73 65 20 6B 2B 2B 3B 0D 0A 09 7D 0D 0A 09 72 65 se k++;...}...re
015970: 74 75 72 6E 20 30 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A turn 0;..}......
015980: 6E 6F 74 61 6B 65 28 62 2C 70 2C 6F 2C 65 2C 78 notake(b,p,o,e,x
015990: 2C 79 29 0D 0A 63 68 61 72 20 62 5B 38 5D 5B 38 ,y)..char b[8][8
0159A0: 5D 3B 0D 0A 63 68 61 72 20 70 2C 6F 2C 65 3B 0D ];..char p,o,e;.
0159B0: 0A 69 6E 74 20 78 2C 79 3B 0D 0A 7B 0D 0A 09 72 .int x,y;..{...r
0159C0: 65 74 75 72 6E 20 6E 6F 74 61 6B 31 28 62 2C 70 eturn notak1(b,p
0159D0: 2C 6F 2C 65 2C 78 2C 79 2C 30 2C 31 29 26 26 0D ,o,e,x,y,0,1)&&.
0159E0: 0A 09 09 6E 6F 74 61 6B 31 28 62 2C 70 2C 6F 2C ...notak1(b,p,o,
0159F0: 65 2C 78 2C 79 2C 31 2C 31 29 26 26 0D 0A 09 09 e,x,y,1,1)&&....
015A00: 66 20 28 74 5B 6B 5D 2E 63 20 3D 20 63 68 6B 6D f (t[k].c = chkm
015A10: 6F 76 28 62 2C 70 2C 69 2C 6A 29 29 20 7B 0D 0A ov(b,p,i,j)) {..
015A20: 09 09 09 74 5B 6B 5D 2E 78 20 3D 69 3B 0D 0A 09 ...t[k].x =i;...
015A30: 09 09 74 5B 6B 5D 2E 79 20 3D 6A 3B 0D 0A 09 09 ..t[k].y =j;....
015A40: 09 74 5B 6B 5D 2E 73 20 3D 20 73 5F 6D 6F 76 65 .t[k].s = s_move
015A50: 28 62 2C 70 2C 6F 2C 65 2C 69 2C 6A 29 3B 0D 0A (b,p,o,e,i,j);..
015A60: 09 09 09 2B 2B 6B 3B 0D 0A 09 09 7D 0D 0A 09 72 ...++k;....}...r
015A70: 65 74 75 72 6E 20 6B 3B 0D 0A 7D 0D 0A 0D 0A 0D eturn k;..}.....
015A80: 0A 0D 0A 73 5F 6D 6F 76 65 28 62 2C 70 2C 6F 2C ...s_move(b,p,o,
015A90: 65 2C 69 2C 6A 29 0D 0A 63 68 61 72 20 62 5B 38 e,i,j)..char b[8
015AA0: 5D 5B 38 5D 2C 20 70 2C 20 6F 2C 20 65 3B 0D 0A ][8], p, o, e;..
015AB0: 69 6E 74 20 69 2C 6A 3B 0D 0A 7B 0D 0A 20 20 73 int i,j;..{.. s
015AC0: 74 61 74 69 63 20 63 68 61 72 20 61 5B 38 5D 5B tatic char a[8][
015AD0: 38 5D 3B 0D 0A 20 20 73 74 61 74 69 63 20 69 6E 8];.. static in
015AE0: 74 20 6F 6B 2C 73 2C 6B 2C 6C 2C 73 69 64 65 2C t ok,s,k,l,side,
015AF0: 6F 73 69 64 65 3B 0D 0A 20 20 73 74 61 74 69 63 oside;.. static
015B00: 20 69 6E 74 20 63 2C 64 6B 6C 3B 0D 0A 0D 0A 09 int c,dkl;.....
015B10: 63 70 79 62 72 64 28 61 2C 62 29 3B 0D 0A 09 70 cpybrd(a,b);...p
015B20: 75 74 6D 6F 76 28 61 2C 70 2C 69 2C 6A 29 3B 0D utmov(a,p,i,j);.
015B30: 0A 20 20 20 20 20 20 20 20 73 69 64 65 20 3D 20 . side =
015B40: 30 3B 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0;
015B50: 20 20 20 20 2F 2A 44 4A 48 2A 2F 0D 0A 20 20 20 /*DJH*/..
015B60: 20 20 20 20 20 69 66 20 28 69 3D 3D 31 20 7C 7C if (i==1 ||
015B70: 20 69 3D 3D 36 29 20 73 69 64 65 2B 2B 3B 20 20 i==6) side++;
015B80: 2F 2A 44 4A 48 2A 2F 0D 0A 20 20 20 20 20 20 20 /*DJH*/..
015B90: 20 69 66 20 28 6A 3D 3D 31 20 7C 7C 20 6A 3D 3D if (j==1 || j==
015BA0: 36 29 20 73 69 64 65 2B 2B 3B 20 20 2F 2A 44 4A 6) side++; /*DJ
015BB0: 48 2A 2F 0D 0A 20 20 20 20 20 20 20 20 69 66 20 H*/.. if
015BC0: 28 73 69 64 65 20 3D 3D 20 32 29 20 72 65 74 75 (side == 2) retu
015BD0: 72 6E 20 2D 31 39 3B 20 2F 2A 44 4A 48 2A 2F 0D rn -19; /*DJH*/.
015BE0: 0A 09 73 69 64 65 20 3D 20 30 3B 0D 0A 20 20 20 ..side = 0;..
015BF0: 20 20 20 20 20 69 66 20 28 69 3D 3D 30 20 7C 7C if (i==0 ||
015C00: 6E 6F 74 61 6B 31 28 62 2C 70 2C 6F 2C 65 2C 78 notak1(b,p,o,e,x
015C10: 2C 79 2C 31 2C 30 29 26 26 0D 0A 09 09 6E 6F 74 ,y,1,0)&&....not
015C20: 61 6B 31 28 62 2C 70 2C 6F 2C 65 2C 78 2C 79 2C ak1(b,p,o,e,x,y,
015C30: 31 2C 2D 31 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 6E 1,-1);..}......n
015C40: 6F 74 61 6B 31 28 62 2C 70 2C 6F 2C 65 2C 78 2C otak1(b,p,o,e,x,
015C50: 79 2C 6D 2C 6E 29 0D 0A 63 68 61 72 20 62 5B 38 y,m,n)..char b[8
015C60: 5D 5B 38 5D 2C 70 2C 6F 2C 65 3B 0D 0A 69 6E 74 ][8],p,o,e;..int
015C70: 20 78 2C 79 2C 6D 2C 6E 3B 0D 0A 7B 0D 0A 20 20 x,y,m,n;..{..
015C80: 73 74 61 74 69 63 20 69 6E 74 20 63 31 2C 63 32 static int c1,c2
015C90: 3B 0D 0A 0D 0A 09 63 31 20 3D 20 6E 6F 74 61 6B ;.....c1 = notak
015CA0: 32 28 62 2C 70 2C 6F 2C 65 2C 78 2C 79 2C 6D 2C 2(b,p,o,e,x,y,m,
015CB0: 6E 29 3B 0D 0A 09 63 32 20 3D 20 6E 6F 74 61 6B n);...c2 = notak
015CC0: 32 28 62 2C 70 2C 6F 2C 65 2C 78 2C 79 2C 2D 6D 2(b,p,o,e,x,y,-m
015CD0: 2C 2D 6E 29 3B 0D 0A 09 72 65 74 75 72 6E 20 21 ,-n);...return !
015CE0: 28 63 31 3D 3D 6F 20 26 26 20 63 32 3D 3D 65 20 (c1==o && c2==e
015CF0: 7C 7C 20 63 31 3D 3D 65 20 26 26 20 63 32 3D 3D || c1==e && c2==
015D00: 6F 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 6E 6F 74 61 o);..}......nota
015D10: 6B 32 28 62 2C 70 2C 6F 2C 65 2C 78 2C 79 2C 6D k2(b,p,o,e,x,y,m
015D20: 2C 6E 29 0D 0A 63 68 61 72 20 62 5B 38 5D 5B 38 ,n)..char b[8][8
015D30: 5D 2C 70 2C 6F 2C 65 3B 0D 0A 69 6E 74 20 78 2C ],p,o,e;..int x,
015D40: 79 2C 6D 2C 6E 3B 0D 0A 7B 0D 0A 09 78 20 2B 3D y,m,n;..{...x +=
015D50: 20 6D 3B 20 79 20 2B 3D 6E 3B 0D 0A 09 69 66 20 m; y +=n;...if
015D60: 28 78 3E 3D 30 20 26 26 20 78 3C 3D 37 20 26 26 (x>=0 && x<=7 &&
015D70: 20 79 3E 3D 30 20 26 26 20 79 3C 3D 37 29 0D 0A y>=0 && y<=7)..
015D80: 09 09 77 68 69 6C 65 28 62 5B 78 5D 5B 79 5D 20 ..while(b[x][y]
015D90: 3D 3D 20 30 29 20 7B 0D 0A 09 09 20 78 20 2B 3D == 0) {.... x +=
015DA0: 20 6D 3B 20 79 2B 3D 6E 3B 0D 0A 09 09 20 69 66 m; y+=n;.... if
015DB0: 20 28 78 3C 30 20 7C 7C 20 78 3E 37 20 7C 7C 20 (x<0 || x>7 ||
015DC0: 79 3C 30 20 7C 7C 20 79 3E 37 20 7C 7C 20 62 5B y<0 || y>7 || b[
015DD0: 78 5D 5B 79 5D 3D 3D 65 29 0D 0A 09 09 09 72 65 x][y]==e).....re
015DE0: 74 75 72 6E 20 6F 3B 0D 0A 09 09 20 7D 0D 0A 09 turn o;.... }...
015DF0: 77 68 69 6C 65 20 28 78 3E 3D 30 20 26 26 20 78 while (x>=0 && x
015E00: 20 69 3D 3D 37 29 20 73 69 64 65 2B 2B 3B 0D 0A i==7) side++;..
015E10: 20 20 20 20 20 20 20 20 69 66 20 28 6A 3D 3D 30 if (j==0
015E20: 20 7C 7C 20 6A 3D 3D 37 29 20 73 69 64 65 2B 2B || j==7) side++
015E30: 3B 0D 0A 20 20 20 20 20 20 20 20 69 66 20 28 73 ;.. if (s
015E40: 69 64 65 20 3D 3D 20 32 29 20 72 65 74 75 72 6E ide == 2) return
015E50: 20 35 3B 20 20 20 2F 2A 44 4A 48 2A 2F 0D 0A 09 5; /*DJH*/...
015E60: 73 20 3D 20 30 3B 0D 0A 09 6F 6B 20 3D 20 30 3B s = 0;...ok = 0;
015E70: 0D 0A 09 69 66 20 28 73 69 64 65 3D 3D 32 20 7C ...if (side==2 |
015E80: 7C 20 6E 6F 74 61 6B 65 28 62 2C 70 2C 6F 2C 65 | notake(b,p,o,e
015E90: 2C 69 2C 6A 29 29 20 6F 6B 2B 2B 3B 0D 0A 09 6F ,i,j)) ok++;...o
015EA0: 73 69 64 65 20 3D 20 30 3B 0D 0A 09 66 6F 72 20 side = 0;...for
015EB0: 28 6B 3D 30 3B 20 6B 3C 38 3B 20 6B 2B 2B 29 20 (k=0; k<8; k++)
015EC0: 66 6F 72 28 6C 3D 30 3B 20 6C 3C 38 3B 20 6C 2B for(l=0; l<8; l+
015ED0: 2B 29 0D 0A 09 20 7B 0D 0A 09 09 63 3D 63 68 6B +)... {....c=chk
015EE0: 6D 6F 76 28 61 2C 6F 2C 6B 2C 6C 29 3B 0D 0A 09 mov(a,o,k,l);...
015EF0: 09 69 66 20 28 63 3D 3D 30 29 20 63 6F 6E 74 69 .if (c==0) conti
015F00: 6E 75 65 3B 0D 0A 09 09 64 6B 6C 20 3D 20 31 3B nue;....dkl = 1;
015F10: 0D 0A 09 09 69 66 20 28 6B 3D 3D 30 20 7C 7C 20 ....if (k==0 ||
015F20: 6B 3D 3D 37 29 20 7B 20 64 6B 6C 2B 3D 32 3B 20 k==7) { dkl+=2;
015F30: 6F 73 69 64 65 7C 3D 34 3B 7D 0D 0A 09 09 69 66 oside|=4;}....if
015F40: 20 28 6C 3D 3D 30 20 7C 7C 20 6C 3D 3D 37 29 20 (l==0 || l==7)
015F50: 7B 64 6B 6C 2B 3D 32 3B 20 6F 73 69 64 65 7C 3D {dkl+=2; oside|=
015F60: 34 3B 20 7D 0D 0A 09 09 69 66 20 28 64 6B 6C 3D 4; }....if (dkl=
015F70: 3D 35 29 20 7B 64 6B 6C 20 3D 20 31 30 3B 20 6F =5) {dkl = 10; o
015F80: 73 69 64 65 20 7C 3D 20 31 36 3B 20 7D 0D 0A 09 side |= 16; }...
015F90: 09 09 65 6C 73 65 20 69 66 20 28 21 6E 6F 74 61 ..else if (!nota
015FA0: 6B 65 28 61 2C 6F 2C 70 2C 65 2C 6B 2C 6C 29 29 ke(a,o,p,e,k,l))
015FB0: 0D 0A 09 09 09 09 09 63 6F 6E 74 69 6E 75 65 3B .......continue;
015FC0: 0D 0A 09 09 6F 73 69 64 65 20 7C 3D 20 31 3B 0D ....oside |= 1;.
015FD0: 0A 09 09 73 20 2D 3D 20 64 6B 6C 3B 0D 0A 09 09 ...s -= dkl;....
015FE0: 69 66 20 28 63 3E 3D 31 30 29 20 7B 20 73 20 2D if (c>=10) { s -
015FF0: 3D 20 34 3B 20 6F 73 69 64 65 20 7C 3D 20 38 3B = 4; oside |= 8;
016000: 3C 3D 37 20 26 26 20 79 3E 3D 30 20 26 26 20 79 <=7 && y>=0 && y
016010: 3C 3D 37 20 26 26 20 62 5B 78 5D 5B 79 5D 3D 3D <=7 && b[x][y]==
016020: 70 29 0D 0A 09 09 09 7B 20 78 20 2B 3D 6D 3B 20 p).....{ x +=m;
016030: 79 2B 3D 6E 3B 20 7D 0D 0A 09 69 66 20 28 78 3C y+=n; }...if (x<
016040: 30 20 7C 7C 20 78 3E 37 20 7C 7C 20 79 3C 30 20 0 || x>7 || y<0
016050: 7C 7C 20 79 3E 37 29 20 72 65 74 75 72 6E 20 70 || y>7) return p
016060: 3B 0D 0A 09 72 65 74 75 72 6E 20 62 5B 78 5D 5B ;...return b[x][
016070: 79 5D 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 70 75 y];..}........pu
016080: 74 6D 6F 76 28 62 2C 70 2C 78 2C 79 29 0D 0A 63 tmov(b,p,x,y)..c
016090: 68 61 72 20 62 5B 38 5D 5B 38 5D 3B 0D 0A 63 68 har b[8][8];..ch
0160A0: 61 72 20 70 3B 0D 0A 69 6E 74 20 78 2C 79 3B 0D ar p;..int x,y;.
0160B0: 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 69 6E 74 .{.. static int
0160C0: 20 69 2C 6A 3B 0D 0A 09 62 5B 78 5D 5B 79 5D 20 i,j;...b[x][y]
0160D0: 3D 20 70 3B 0D 0A 20 20 20 20 20 20 20 20 66 6F = p;.. fo
0160E0: 72 20 28 69 3D 20 2D 31 3B 20 69 3C 3D 31 3B 20 r (i= -1; i<=1;
0160F0: 69 2B 2B 29 20 66 6F 72 20 28 6A 3D 20 2D 31 3B i++) for (j= -1;
016100: 20 6A 3C 3D 31 3B 20 6A 2B 2B 29 20 7B 0D 0A 09 j<=1; j++) {...
016110: 09 69 66 20 28 28 69 20 21 3D 20 30 20 7C 7C 20 .if ((i != 0 ||
016120: 6A 21 3D 30 29 26 26 63 68 6B 6D 76 31 28 62 2C j!=0)&&chkmv1(b,
016130: 70 2C 78 2C 79 2C 69 2C 6A 29 3E 30 29 0D 0A 09 p,x,y,i,j)>0)...
016140: 09 09 70 75 74 6D 76 31 28 62 2C 70 2C 78 2C 79 ..putmv1(b,p,x,y
016150: 2C 69 2C 6A 29 3B 0D 0A 09 20 7D 0D 0A 7D 0D 0A ,i,j);... }..}..
016160: 0D 0A 0D 0A 70 75 74 6D 76 31 28 62 2C 70 2C 78 ....putmv1(b,p,x
016170: 2C 79 2C 6D 2C 6E 29 0D 0A 63 68 61 72 20 62 5B ,y,m,n)..char b[
016180: 38 5D 5B 38 5D 3B 0D 0A 63 68 61 72 20 70 3B 0D 8][8];..char p;.
016190: 0A 69 6E 74 20 78 2C 79 2C 6D 2C 6E 3B 0D 0A 7B .int x,y,m,n;..{
0161A0: 0D 0A 09 77 68 69 6C 65 20 28 28 78 20 2B 3D 20 ...while ((x +=
0161B0: 6D 29 20 3E 3D 20 30 20 26 26 20 78 3C 38 20 26 m) >= 0 && x<8 &
0161C0: 26 20 28 79 20 2B 3D 20 6E 29 3E 3D 30 20 26 26 & (y += n)>=0 &&
0161D0: 20 79 3C 38 29 20 7B 0D 0A 09 09 69 66 20 28 62 y<8) {....if (b
0161E0: 5B 78 5D 5B 79 5D 20 3D 3D 20 45 4D 50 54 59 20 [x][y] == EMPTY
0161F0: 7C 7C 20 62 5B 78 5D 5B 79 5D 20 3D 3D 20 70 29 || b[x][y] == p)
016200: 20 7D 0D 0A 09 09 7D 0D 0A 09 69 66 20 28 73 3C }....}...if (s<
016210: 20 2D 6F 73 69 64 65 29 20 73 3D 20 2D 6F 73 69 -oside) s= -osi
016220: 64 65 3B 0D 0A 09 69 66 20 28 73 69 64 65 3E 30 de;...if (side>0
016230: 29 20 72 65 74 75 72 6E 20 73 2B 73 69 64 65 2D ) return s+side-
016240: 37 2B 31 30 2A 6F 6B 3B 0D 0A 09 69 66 20 28 69 7+10*ok;...if (i
016250: 3D 3D 31 20 7C 7C 20 69 3D 3D 36 29 20 7B 73 2D ==1 || i==6) {s-
016260: 2D 3B 20 73 69 64 65 2B 2B 3B 7D 0D 0A 09 69 66 -; side++;}...if
016270: 20 28 6A 3D 3D 31 20 7C 7C 20 6A 3D 3D 36 29 20 (j==1 || j==6)
016280: 7B 73 2D 2D 3B 20 73 69 64 65 2B 2B 3B 7D 0D 0A {s--; side++;}..
016290: 09 69 66 20 28 73 69 64 65 3E 30 29 20 72 65 74 .if (side>0) ret
0162A0: 75 72 6E 20 73 3B 0D 0A 09 69 66 20 28 69 3D 3D urn s;...if (i==
0162B0: 32 20 7C 7C 20 69 3D 3D 35 29 20 73 2B 2B 3B 0D 2 || i==5) s++;.
0162C0: 0A 09 69 66 20 28 6A 3D 3D 32 20 7C 7C 20 6A 3D ..if (j==2 || j=
0162D0: 3D 35 29 20 73 2B 2B 3B 0D 0A 09 72 65 74 75 72 =5) s++;...retur
0162E0: 6E 20 73 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 63 6C 72 n s;..}......clr
0162F0: 62 72 64 28 62 29 0D 0A 63 68 61 72 20 62 5B 38 brd(b)..char b[8
016300: 5D 5B 38 5D 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 ][8];..{.. stat
016310: 69 63 20 63 68 61 72 20 65 6D 70 74 79 5F 62 6F ic char empty_bo
016320: 61 72 64 5B 38 5D 5B 38 5D 20 3D 20 7B 0D 0A 45 ard[8][8] = {..E
016330: 4D 50 54 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 MPTY, EMPTY, EMP
016340: 54 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 TY, EMPTY, EMPTY
016350: 2C 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 2C 20 , EMPTY, EMPTY,
016360: 45 4D 50 54 59 2C 0D 0A 45 4D 50 54 59 2C 20 45 EMPTY,..EMPTY, E
016370: 4D 50 54 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 MPTY, EMPTY, EMP
016380: 54 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 TY, EMPTY, EMPTY
016390: 2C 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 2C 0D , EMPTY, EMPTY,.
0163A0: 0A 45 4D 50 54 59 2C 20 45 4D 50 54 59 2C 20 45 .EMPTY, EMPTY, E
0163B0: 4D 50 54 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 MPTY, EMPTY, EMP
0163C0: 54 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 TY, EMPTY, EMPTY
0163D0: 2C 20 45 4D 50 54 59 2C 0D 0A 45 4D 50 54 59 2C , EMPTY,..EMPTY,
0163E0: 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 2C 20 42 EMPTY, EMPTY, B
0163F0: 4C 41 43 4B 2C 20 57 48 49 54 45 2C 20 45 4D 50 LACK, WHITE, EMP
016400: 20 72 65 74 75 72 6E 3B 0D 0A 09 09 62 5B 78 5D return;....b[x]
016410: 5B 79 5D 20 3D 20 70 3B 0D 0A 09 20 7D 0D 0A 7D [y] = p;... }..}
016420: 0D 0A 0D 0A 0D 0A 73 74 72 75 63 74 20 6D 74 20 ......struct mt
016430: 7B 0D 0A 09 09 69 6E 74 20 78 3B 0D 0A 09 09 69 {....int x;....i
016440: 6E 74 20 79 3B 0D 0A 09 09 69 6E 74 20 63 3B 0D nt y;....int c;.
016450: 0A 09 09 69 6E 74 20 73 3B 0D 0A 09 20 7D 3B 0D ...int s;... };.
016460: 0A 0D 0A 0D 0A 63 6D 70 6D 6F 76 28 61 2C 62 29 .....cmpmov(a,b)
016470: 0D 0A 73 74 72 75 63 74 20 6D 74 20 20 2A 61 2C ..struct mt *a,
016480: 20 2A 62 3B 0D 0A 7B 0D 0A 09 69 66 20 28 28 2A *b;..{...if ((*
016490: 61 29 2E 73 20 3E 20 28 2A 62 29 2E 73 29 20 72 a).s > (*b).s) r
0164A0: 65 74 75 72 6E 20 2D 31 3B 0D 0A 09 69 66 20 28 eturn -1;...if (
0164B0: 28 2A 61 29 2E 73 20 3C 20 28 2A 62 29 2E 73 29 (*a).s < (*b).s)
0164C0: 20 72 65 74 75 72 6E 20 31 3B 0D 0A 09 69 66 20 return 1;...if
0164D0: 28 28 2A 61 29 2E 63 20 3E 20 28 2A 62 29 2E 63 ((*a).c > (*b).c
0164E0: 29 20 72 65 74 75 72 6E 20 2D 31 3B 0D 0A 09 69 ) return -1;...i
0164F0: 66 20 28 28 2A 61 29 2E 63 20 3C 20 28 2A 62 29 f ((*a).c < (*b)
016500: 2E 63 29 20 72 65 74 75 72 6E 20 31 3B 0D 0A 09 .c) return 1;...
016510: 72 65 74 75 72 6E 20 30 3B 0D 0A 7D 0D 0A 0D 0A return 0;..}....
016520: 0D 0A 0D 0A 6D 79 5F 6D 6F 76 28 62 2C 70 2C 6F ....my_mov(b,p,o
016530: 2C 65 2C 6D 2C 6E 29 0D 0A 63 68 61 72 20 62 5B ,e,m,n)..char b[
016540: 38 5D 5B 38 5D 2C 70 3B 0D 0A 69 6E 74 20 2A 6D 8][8],p;..int *m
016550: 2C 20 2A 6E 3B 0D 0A 7B 0D 0A 20 20 73 74 61 74 , *n;..{.. stat
016560: 69 63 20 73 74 72 75 63 74 20 6D 74 20 20 74 5B ic struct mt t[
016570: 36 34 5D 3B 0D 0A 20 20 73 74 61 74 69 63 20 69 64];.. static i
016580: 6E 74 20 69 2C 6B 3B 0D 0A 0D 0A 09 6B 20 3D 20 nt i,k;.....k =
016590: 66 69 6C 6C 6D 74 28 62 2C 70 2C 6F 2C 65 2C 74 fillmt(b,p,o,e,t
0165A0: 29 3B 0D 0A 09 69 66 20 28 21 6B 29 20 72 65 74 );...if (!k) ret
0165B0: 75 72 6E 20 30 3B 0D 0A 20 20 20 20 20 20 20 20 urn 0;..
0165C0: 71 73 6F 72 74 20 28 74 2C 20 6B 2C 20 38 2C 20 qsort (t, k, 8,
0165D0: 63 6D 70 6D 6F 76 29 3B 0D 0A 09 66 6F 72 20 28 cmpmov);...for (
0165E0: 69 3D 31 3B 20 69 3C 6B 3B 20 69 2B 2B 29 0D 0A i=1; i<k; i++)..
0165F0: 09 09 69 66 20 28 74 5B 69 5D 2E 73 20 21 3D 20 ..if (t[i].s !=
016600: 54 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 TY, EMPTY, EMPTY
016610: 2C 0D 0A 45 4D 50 54 59 2C 20 45 4D 50 54 59 2C ,..EMPTY, EMPTY,
016620: 20 45 4D 50 54 59 2C 20 57 48 49 54 45 2C 20 42 EMPTY, WHITE, B
016630: 4C 41 43 4B 2C 20 45 4D 50 54 59 2C 20 45 4D 50 LACK, EMPTY, EMP
016640: 54 59 2C 20 45 4D 50 54 59 2C 0D 0A 45 4D 50 54 TY, EMPTY,..EMPT
016650: 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 2C Y, EMPTY, EMPTY,
016660: 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 2C 20 45 EMPTY, EMPTY, E
016670: 4D 50 54 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 MPTY, EMPTY, EMP
016680: 54 59 2C 0D 0A 45 4D 50 54 59 2C 20 45 4D 50 54 TY,..EMPTY, EMPT
016690: 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 2C Y, EMPTY, EMPTY,
0166A0: 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 2C 20 45 EMPTY, EMPTY, E
0166B0: 4D 50 54 59 2C 20 45 4D 50 54 59 2C 0D 0A 45 4D MPTY, EMPTY,..EM
0166C0: 50 54 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 54 PTY, EMPTY, EMPT
0166D0: 59 2C 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 2C Y, EMPTY, EMPTY,
0166E0: 20 45 4D 50 54 59 2C 20 45 4D 50 54 59 2C 20 45 EMPTY, EMPTY, E
0166F0: 4D 50 54 59 7D 3B 0D 0A 0D 0A 20 20 62 6C 74 28 MPTY};.... blt(
016700: 62 2C 20 65 6D 70 74 79 5F 62 6F 61 72 64 2C 20 b, empty_board,
016710: 38 2A 38 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 70 72 8*8);..}......pr
016720: 74 62 72 64 28 62 29 0D 0A 63 68 61 72 20 62 5B tbrd(b)..char b[
016730: 38 5D 5B 38 5D 3B 0D 0A 7B 0D 0A 20 20 73 74 61 8][8];..{.. sta
016740: 74 69 63 20 69 6E 74 20 69 2C 6A 3B 0D 0A 0D 0A tic int i,j;....
016750: 09 70 72 69 6E 74 66 28 22 20 20 20 31 20 32 20 .printf(" 1 2
016760: 33 20 34 20 35 20 36 20 37 20 38 5C 6E 22 29 3B 3 4 5 6 7 8\n");
016770: 0D 0A 09 66 6F 72 20 28 69 3D 30 3B 20 69 3C 38 ...for (i=0; i<8
016780: 3B 20 69 2B 2B 29 20 7B 0D 0A 09 09 70 72 69 6E ; i++) {....prin
016790: 74 66 28 22 25 32 64 22 2C 69 2B 31 29 3B 0D 0A tf("%2d",i+1);..
0167A0: 09 09 66 6F 72 20 28 6A 3D 30 3B 20 6A 3C 38 3B ..for (j=0; j<8;
0167B0: 20 6A 2B 2B 29 20 7B 0D 0A 09 09 09 70 75 74 63 j++) {.....putc
0167C0: 68 61 72 28 27 20 27 29 3B 0D 0A 09 09 09 70 75 har(' ');.....pu
0167D0: 74 63 68 61 72 28 62 5B 69 5D 5B 6A 5D 29 3B 0D tchar(b[i][j]);.
0167E0: 0A 09 09 20 7D 0D 0A 09 09 70 75 74 63 68 61 72 ... }....putchar
0167F0: 28 27 5C 6E 27 29 3B 0D 0A 09 20 7D 0D 0A 09 70 ('\n');... }...p
016800: 74 5B 30 5D 2E 73 20 7C 7C 20 74 5B 69 5D 2E 63 t[0].s || t[i].c
016810: 20 21 3D 20 74 5B 30 5D 2E 63 29 0D 0A 09 09 09 != t[0].c).....
016820: 09 09 09 62 72 65 61 6B 3B 0D 0A 09 6B 20 3D 20 ...break;...k =
016830: 61 62 73 28 72 61 6E 64 28 29 29 20 25 20 69 3B abs(rand()) % i;
016840: 0D 0A 09 2A 6D 20 3D 20 74 5B 6B 5D 2E 78 3B 0D ...*m = t[k].x;.
016850: 0A 09 2A 6E 20 3D 20 74 5B 6B 5D 2E 79 3B 0D 0A ..*n = t[k].y;..
016860: 09 72 65 74 75 72 6E 20 31 3B 0D 0A 7D 0D 0A 0D .return 1;..}...
016870: 0A 61 6E 61 6C 79 7A 65 28 62 2C 70 2C 6F 2C 65 .analyze(b,p,o,e
016880: 29 0D 0A 63 68 61 72 20 62 5B 38 5D 5B 38 5D 2C )..char b[8][8],
016890: 20 70 2C 6F 2C 65 3B 0D 0A 7B 0D 0A 20 20 73 74 p,o,e;..{.. st
0168A0: 61 74 69 63 20 73 74 72 75 63 74 20 6D 74 20 20 atic struct mt
0168B0: 74 5B 36 34 5D 3B 0D 0A 20 20 73 74 61 74 69 63 t[64];.. static
0168C0: 20 63 68 61 72 20 61 5B 38 5D 5B 38 5D 3B 0D 0A char a[8][8];..
0168D0: 20 20 73 74 61 74 69 63 20 69 6E 74 20 69 2C 6B static int i,k
0168E0: 2C 63 3B 0D 0A 0D 0A 09 6B 20 3D 20 66 69 6C 6C ,c;.....k = fill
0168F0: 6D 74 28 62 2C 70 2C 6F 2C 65 2C 74 29 3B 0D 0A mt(b,p,o,e,t);..
016900: 09 63 70 79 62 72 64 28 61 2C 62 29 3B 0D 0A 09 .cpybrd(a,b);...
016910: 66 6F 72 20 28 69 3D 30 3B 20 69 3C 6B 3B 20 69 for (i=0; i<k; i
016920: 2B 2B 29 0D 0A 09 20 20 61 5B 74 5B 69 5D 2E 78 ++)... a[t[i].x
016930: 5D 5B 74 5B 69 5D 2E 79 5D 20 3D 20 28 28 63 20 ][t[i].y] = ((c
016940: 3D 20 27 46 27 20 2D 20 74 5B 69 5D 2E 73 29 20 = 'F' - t[i].s)
016950: 3C 3D 20 27 5A 27 29 3F 63 3A 27 5A 27 3B 0D 0A <= 'Z')?c:'Z';..
016960: 09 70 72 74 62 72 64 28 61 29 3B 0D 0A 7D 0D 0A .prtbrd(a);..}..
016970: 0D 0A 0D 0A 66 69 6C 6C 6D 74 28 62 2C 70 2C 6F ....fillmt(b,p,o
016980: 2C 65 2C 74 29 0D 0A 63 68 61 72 20 62 5B 38 5D ,e,t)..char b[8]
016990: 5B 38 5D 2C 70 2C 6F 2C 65 3B 0D 0A 73 74 72 75 [8],p,o,e;..stru
0169A0: 63 74 20 6D 74 20 20 74 5B 36 34 5D 3B 0D 0A 7B ct mt t[64];..{
0169B0: 0D 0A 20 20 73 74 61 74 69 63 20 69 6E 74 20 69 .. static int i
0169C0: 2C 6A 2C 6B 3B 0D 0A 0D 0A 09 6B 20 3D 20 30 3B ,j,k;.....k = 0;
0169D0: 0D 0A 09 66 6F 72 20 28 69 3D 30 3B 20 69 3C 38 ...for (i=0; i<8
0169E0: 3B 20 69 2B 2B 29 20 66 6F 72 28 6A 3D 30 3B 20 ; i++) for(j=0;
0169F0: 6A 3C 38 3B 20 6A 2B 2B 29 0D 0A 09 20 20 20 69 j<8; j++)... i
016A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
016A10: 13 00 00 00 02 09 4E E5 13 00 41 02 00 00 00 02 ......N...A.....
016A20: 13 00 46 02 00 00 00 02 13 00 42 02 00 00 00 02 ..F.......B.....
016A30: 13 00 47 02 00 00 00 02 13 00 43 02 00 00 00 02 ..G.......C.....
016A40: 13 00 48 02 00 00 00 02 13 00 44 02 00 00 00 02 ..H.......D.....
016A50: 13 00 49 02 00 00 00 02 13 00 45 02 00 00 00 02 ..I.......E.....
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: 75 74 63 68 61 72 28 27 5C 6E 27 29 3B 0D 0A 7D utchar('\n');..}
016B10: 0D 0A 0D 0A 0D 0A 63 70 79 62 72 64 28 61 2C 62 ......cpybrd(a,b
016B20: 29 0D 0A 63 68 61 72 20 2A 61 2C 20 2A 62 3B 0D )..char *a, *b;.
016B30: 0A 7B 0D 0A 20 20 73 74 61 74 69 63 20 69 6E 74 .{.. static int
016B40: 20 69 3B 0D 0A 0D 0A 09 69 3D 36 34 3B 0D 0A 09 i;.....i=64;...
016B50: 77 68 69 6C 65 20 28 69 2D 2D 29 0D 0A 09 09 2A while (i--)....*
016B60: 61 2B 2B 20 3D 20 2A 62 2B 2B 3B 0D 0A 7D 0D 0A a++ = *b++;..}..
016B70: 0D 0A 63 6E 74 62 72 64 28 62 2C 70 29 0D 0A 63 ..cntbrd(b,p)..c
016B80: 68 61 72 20 2A 62 2C 20 70 3B 0D 0A 7B 0D 0A 20 har *b, p;..{..
016B90: 20 73 74 61 74 69 63 20 69 6E 74 20 69 2C 6A 3B static int i,j;
016BA0: 0D 0A 0D 0A 09 69 3D 20 36 34 3B 20 6A 3D 30 3B .....i= 64; j=0;
016BB0: 0D 0A 09 77 68 69 6C 65 20 28 69 2D 2D 29 0D 0A ...while (i--)..
016BC0: 09 09 69 66 20 28 2A 62 2B 2B 20 3D 3D 20 70 29 ..if (*b++ == p)
016BD0: 20 2B 2B 6A 3B 0D 0A 09 72 65 74 75 72 6E 20 28 ++j;...return (
016BE0: 6A 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A j);..}......../*
016BF0: 20 20 20 20 45 4E 44 20 4F 46 20 4F 54 48 45 4C END OF OTHEL
016C00: 4C 4F 20 20 20 2A 2F 0D 0A 0D 0A 1A 24 FF 00 FF LO */.....$...
016C10: 52 53 49 29 20 50 52 4F 47 52 41 4D 20 2A 2F 0A RSI) PROGRAM */.
016C20: 0A 2F 2A 20 46 69 72 73 74 20 61 72 65 20 74 68 ./* First are th
016C30: 65 20 73 74 61 6E 64 61 72 64 20 6C 69 62 72 61 e standard libra
016C40: 72 79 20 66 75 6E 63 74 69 6F 6E 73 20 77 68 69 ry functions whi
016C50: 63 68 20 61 72 65 20 75 73 65 64 20 2A 2F 0A 0A ch are used */..
016C60: 69 6E 74 20 61 62 73 28 6E 29 0A 7B 0A 20 20 72 int abs(n).{. r
016C70: 65 74 75 72 6E 20 20 6E 3C 30 20 20 3F 20 20 2D eturn n<0 ? -
016C80: 3B 20 69 2B 2B 29 20 7B 0D 0A 09 09 70 72 69 6E ; i++) {....prin
016C90: 74 66 28 22 25 32 64 22 2C 69 2B 31 29 3B 0D 0A tf("%2d",i+1);..
016CA0: 09 09 66 6F 72 20 28 6A 3D 30 3B 20 6A 3C 38 3B ..for (j=0; j<8;
016CB0: 20 6A 2B 2B 29 20 7B 0D 0A 09 09 09 70 75 74 63 j++) {.....putc
016CC0: 68 61 72 28 27 20 27 29 3B 0D 0A 09 09 09 70 75 har(' ');.....pu
016CD0: 74 63 68 61 72 28 62 5B 69 5D 5B 6A 5D 29 3B 0D tchar(b[i][j]);.
016CE0: 0A 09 09 20 7D 0D 0A 09 09 70 75 74 63 68 61 72 ... }....putchar
016CF0: 28 27 5C 6E 27 29 3B 0D 0A 09 20 7D 0D 0A 09 70 ('\n');... }...p
016D00: 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 /*.. returns
016D10: 70 72 65 76 69 6F 75 73 20 6D 6F 74 6F 72 20 73 previous motor s
016D20: 74 61 74 65 20 28 77 68 61 74 65 76 65 72 20 74 tate (whatever t
016D30: 68 61 74 20 69 73 29 0D 0A 20 20 20 20 6F 72 20 hat is).. or
016D40: 2D 20 70 6D 73 20 69 66 20 75 73 65 72 20 70 72 - pms if user pr
016D50: 65 73 73 65 64 20 5B 45 53 43 5D 0D 0A 2A 2F 0D essed [ESC]..*/.
016D60: 0A 0D 0A 69 6E 74 20 43 5F 73 74 61 72 74 5F 6D ...int C_start_m
016D70: 6F 74 6F 72 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C otor()..{.. inl
016D80: 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 ine(.. CALL,
016D90: 20 20 20 20 20 20 30 78 42 43 36 45 2C 0D 0A 20 0xBC6E,..
016DA0: 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 26 LD_A_into, &
016DB0: 72 65 67 5F 61 2C 0D 0A 20 20 20 20 4C 44 5F 41 reg_a,.. LD_A
016DC0: 5F 77 69 74 68 2C 20 20 30 2C 0D 0A 20 20 20 20 _with, 0,..
016DD0: 52 4C 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 RLA,.. LD_A_i
016DE0: 6E 74 6F 2C 20 20 26 72 65 67 5F 66 6C 61 67 73 nto, ®_flags
016DF0: 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 20 72 65 );.. return re
016E00: 67 5F 66 6C 61 67 73 20 20 3F 20 20 72 65 67 5F g_flags ? reg_
016E10: 61 20 20 3A 20 20 2D 72 65 67 5F 61 20 3B 0D 0A a : -reg_a ;..
016E20: 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 74 6F 70 20 }....../* Stop
016E30: 74 68 65 20 63 61 73 73 65 74 74 65 20 6D 6F 74 the cassette mot
016E40: 6F 72 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 or */../*..
016E50: 72 65 74 75 72 6E 73 20 70 72 65 76 69 6F 75 73 returns previous
016E60: 20 6D 6F 74 6F 72 20 73 74 61 74 65 20 28 77 68 motor state (wh
016E70: 61 74 65 76 65 72 20 74 68 61 74 20 69 73 29 0D atever that is).
016E80: 0A 20 20 20 20 6F 72 20 2D 20 70 6D 73 20 69 66 . or - pms if
016E90: 20 75 73 65 72 20 70 72 65 73 73 65 64 20 5B 45 user pressed [E
016EA0: 53 43 5D 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 43 SC]..*/....int C
016EB0: 5F 73 74 6F 70 5F 6D 6F 74 6F 72 28 29 0D 0A 7B _stop_motor()..{
016EC0: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
016ED0: 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 CALL, 0xB
016EE0: 43 37 31 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 C71,.. LD_A_i
016EF0: 6E 74 6F 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 nto, ®_a,..
016F00: 0D 0A 48 69 53 6F 66 74 20 43 2B 2B 20 43 6F 6D ..HiSoft C++ Com
016F10: 70 69 6C 65 72 0D 0A 0D 0A 54 68 69 73 20 73 69 piler....This si
016F20: 64 65 20 6F 66 20 74 68 65 20 64 69 73 63 20 63 de of the disc c
016F30: 6F 6E 74 61 69 6E 73 20 74 68 65 20 41 4D 53 44 ontains the AMSD
016F40: 4F 53 20 63 6F 6D 70 69 6C 65 72 20 22 48 49 53 OS compiler "HIS
016F50: 4F 46 54 2D 43 2E 42 49 4E 22 0D 0A 0D 0A 54 68 OFT-C.BIN"....Th
016F60: 65 20 6F 74 68 65 72 20 73 69 64 65 20 6F 66 20 e other side of
016F70: 74 68 65 20 64 69 73 63 20 63 6F 6E 74 61 69 6E the disc contain
016F80: 73 20 74 68 65 20 43 50 2F 4D 20 63 6F 6D 70 69 s the CP/M compi
016F90: 6C 65 72 20 22 48 43 2E 43 4F 4D 22 0D 0A 0D 0A ler "HC.COM"....
016FA0: 59 6F 75 20 63 61 6E 6E 6F 74 20 72 75 6E 20 74 You cannot run t
016FB0: 68 69 73 20 41 4D 53 44 4F 53 20 76 65 72 73 69 his AMSDOS versi
016FC0: 6F 6E 20 6F 6E 20 61 6E 20 38 32 35 36 2E 0D 0A on on an 8256...
016FD0: 0D 0A 45 6E 6A 6F 79 20 79 6F 75 72 73 65 6C 66 ..Enjoy yourself
016FE0: 2E 0D 0A 0D 0A 44 61 76 65 20 48 6F 77 6F 72 74 .....Dave Howort
016FF0: 68 0D 0A 33 20 4F 63 74 20 38 35 0D 0A 1A 69 6E h..3 Oct 85...in
017000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017100: 20 20 20 4C 44 5F 41 5F 77 69 74 68 2C 20 20 30 LD_A_with, 0
017110: 2C 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 20 ,.. RLA,..
017120: 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 65 LD_A_into, &re
017130: 67 5F 66 6C 61 67 73 29 3B 0D 0A 20 20 72 65 74 g_flags);.. ret
017140: 75 72 6E 20 20 72 65 67 5F 66 6C 61 67 73 20 20 urn reg_flags
017150: 3F 20 20 72 65 67 5F 61 20 20 3A 20 20 2D 72 65 ? reg_a : -re
017160: 67 5F 61 20 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A g_a ;..}....../*
017170: 20 20 72 65 73 74 6F 72 65 20 74 68 65 20 70 72 restore the pr
017180: 65 76 69 6F 75 73 20 73 74 61 74 65 20 6F 66 20 evious state of
017190: 74 68 65 20 63 61 73 73 65 74 74 65 20 6D 6F 74 the cassette mot
0171A0: 6F 72 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 or */../*..
0171B0: 72 65 74 75 72 6E 73 20 54 52 55 45 20 69 66 20 returns TRUE if
0171C0: 72 65 73 74 6F 72 65 64 20 4F 4B 20 61 6E 64 20 restored OK and
0171D0: 46 41 4C 53 45 20 69 66 20 75 73 65 72 20 70 72 FALSE if user pr
0171E0: 65 73 73 65 64 20 5B 45 53 43 5D 0D 0A 2A 2F 0D essed [ESC]..*/.
0171F0: 0A 0D 0A 69 6E 74 20 43 5F 72 65 73 74 6F 72 65 ...int C_restore
017200: 5F 6D 6F 74 6F 72 28 70 72 65 76 69 6F 75 73 5F _motor(previous_
017210: 6D 6F 74 6F 72 5F 73 74 61 74 65 29 0D 0A 7B 0D motor_state)..{.
017220: 0A 20 20 72 65 67 5F 61 20 3D 20 70 72 65 76 69 . reg_a = previ
017230: 6F 75 73 5F 6D 6F 74 6F 72 5F 73 74 61 74 65 3B ous_motor_state;
017240: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
017250: 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 20 26 72 65 LD_A_from, &re
017260: 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 g_a,.. CALL,
017270: 20 20 20 20 20 20 30 78 42 43 37 34 2C 0D 0A 20 0xBC74,..
017280: 20 20 20 4C 44 5F 41 5F 77 69 74 68 2C 20 20 30 LD_A_with, 0
017290: 2C 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 20 ,.. RLA,..
0172A0: 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 65 LD_A_into, &re
0172B0: 67 5F 66 6C 61 67 73 29 3B 0D 0A 20 20 72 65 74 g_flags);.. ret
0172C0: 75 72 6E 20 20 72 65 67 5F 66 6C 61 67 73 3B 0D urn reg_flags;.
0172D0: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 6F 70 65 6E .}....../* open
0172E0: 20 61 20 66 69 6C 65 20 66 6F 72 20 69 6E 70 75 a file for inpu
0172F0: 74 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 75 t */../*.. u
017300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0173A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0173B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0173C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0173D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0173E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0173F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0174A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0174B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0174C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0174D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0174E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0174F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017500: 73 65 20 66 6F 70 65 6E 28 29 20 69 6E 20 70 72 se fopen() in pr
017510: 65 66 65 72 65 6E 63 65 2E 0D 0A 20 20 20 20 74 eference... t
017520: 68 65 72 65 20 61 72 65 20 66 69 76 65 20 6F 72 here are five or
017530: 20 73 69 78 20 70 6F 73 73 69 62 6C 65 20 72 65 six possible re
017540: 74 75 72 6E 20 76 61 6C 75 65 73 2C 20 73 6F 20 turn values, so
017550: 63 75 73 74 6F 6D 69 73 65 20 74 68 65 0D 0A 20 customise the..
017560: 20 20 20 66 75 6E 63 74 69 6F 6E 20 66 6F 72 20 function for
017570: 74 68 6F 73 65 20 74 68 61 74 20 79 6F 75 20 6E those that you n
017580: 65 65 64 2E 0D 0A 2A 2F 0D 0A 0D 0A 43 5F 69 6E eed...*/....C_in
017590: 5F 6F 70 65 6E 28 66 69 6C 65 6E 61 6D 65 2C 20 _open(filename,
0175A0: 62 75 66 66 65 72 29 0D 0A 7B 0D 0A 20 20 72 65 buffer)..{.. re
0175B0: 67 5F 62 63 20 3D 20 73 74 72 6C 65 6E 28 66 69 g_bc = strlen(fi
0175C0: 6C 65 6E 61 6D 65 29 20 3C 3C 20 38 3B 0D 0A 20 lename) << 8;..
0175D0: 20 72 65 67 5F 68 6C 20 3D 20 66 69 6C 65 6E 61 reg_hl = filena
0175E0: 6D 65 3B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 me;.. reg_de =
0175F0: 62 75 66 66 65 72 3B 0D 0A 20 20 69 6E 6C 69 6E buffer;.. inlin
017600: 65 28 0D 0A 20 20 20 20 4C 44 5F 42 43 5F 66 72 e(.. LD_BC_fr
017610: 6F 6D 2C 20 26 72 65 67 5F 62 63 2C 0D 0A 20 20 om, ®_bc,..
017620: 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 LD_DE_from, &r
017630: 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 48 eg_de,.. LD_H
017640: 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C L_from, ®_hl,
017650: 0D 0A 20 20 20 20 50 55 53 48 5F 49 58 2C 0D 0A .. PUSH_IX,..
017660: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
017670: 30 78 42 43 37 37 2C 0D 0A 20 20 20 20 50 4F 50 0xBC77,.. POP
017680: 5F 49 58 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A _IX);..}....../*
017690: 20 20 43 6C 6F 73 65 20 74 68 65 20 69 6E 70 75 Close the inpu
0176A0: 74 20 66 69 6C 65 20 70 72 6F 70 65 72 6C 79 20 t file properly
0176B0: 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 */../*.. ret
0176C0: 75 72 6E 73 20 54 52 55 45 20 69 66 20 63 6C 6F urns TRUE if clo
0176D0: 73 65 64 20 4F 4B 20 61 6E 64 20 46 41 4C 53 45 sed OK and FALSE
0176E0: 20 69 66 20 73 74 72 65 61 6D 20 77 61 73 20 6E if stream was n
0176F0: 6F 74 20 6F 70 65 6E 0D 0A 2A 2F 0D 0A 0D 0A 69 ot open..*/....i
017700: 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 20 20 /* * * * * *
017710: 20 20 46 20 49 20 52 20 4D 20 57 20 41 20 52 20 F I R M W A R
017720: 45 20 2E 20 4C 20 49 20 42 20 20 20 20 20 20 2A E . L I B *
017730: 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 2F 2A 20 * * * * */../*
017740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017770: 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 */../*
017780: 20 20 20 20 20 20 20 20 20 20 20 20 46 20 49 20 F I
017790: 52 20 4D 20 34 20 20 2D 20 20 43 61 73 73 65 74 R M 4 - Casset
0177A0: 74 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 te
0177B0: 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 */../*
0177C0: 20 20 20 20 20 20 20 20 43 6F 70 79 72 69 67 68 Copyrigh
0177D0: 74 20 28 43 29 20 31 39 38 35 20 48 69 53 6F 66 t (C) 1985 HiSof
0177E0: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t
0177F0: 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 20 */../*
017800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
017820: 20 20 20 20 20 20 20 20 20 20 20 20 20 2A 2F 0D */.
017830: 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 ./* * * * * * *
017840: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
017850: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
017860: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 0D 0A * * * * * */....
017870: 0D 0A 0D 0A 0D 0A 2F 2A 2A 20 20 43 41 53 53 45 ....../** CASSE
017880: 54 54 45 20 4D 41 4E 41 47 45 52 20 49 4E 54 45 TTE MANAGER INTE
017890: 52 46 41 43 45 20 46 55 4E 43 54 49 4F 4E 53 20 RFACE FUNCTIONS
0178A0: 20 2A 2A 2F 0D 0A 0D 0A 0D 0A 2F 2A 20 20 49 6E **/....../* In
0178B0: 69 74 69 61 6C 69 73 65 20 74 68 65 20 43 61 73 itialise the Cas
0178C0: 73 65 74 74 65 20 4D 61 6E 61 67 65 72 20 20 2A sette Manager *
0178D0: 2F 0D 0A 0D 0A 43 5F 69 6E 69 74 69 61 6C 69 73 /....C_initialis
0178E0: 65 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 e()..{.. inline
0178F0: 28 43 41 4C 4C 2C 20 30 78 42 43 36 35 29 3B 0D (CALL, 0xBC65);.
017900: 6E 74 20 43 5F 69 6E 5F 63 6C 6F 73 65 28 29 0D nt C_in_close().
017910: 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 .{.. inline(..
017920: 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 CALL, 0
017930: 78 42 43 37 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 xBC7A,.. LD_A
017940: 5F 77 69 74 68 2C 20 20 30 2C 0D 0A 20 20 20 20 _with, 0,..
017950: 52 4C 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 RLA,.. LD_A_i
017960: 6E 74 6F 2C 20 20 26 72 65 67 5F 66 6C 61 67 73 nto, ®_flags
017970: 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 20 72 65 );.. return re
017980: 67 5F 66 6C 61 67 73 3B 0D 0A 7D 0D 0A 0D 0A 0D g_flags;..}.....
017990: 0A 2F 2A 20 20 41 62 61 6E 64 6F 6E 20 72 65 61 ./* Abandon rea
0179A0: 64 69 6E 67 20 66 72 6F 6D 20 74 68 65 20 69 6E ding from the in
0179B0: 70 75 74 20 66 69 6C 65 20 61 6E 64 20 63 6C 6F put file and clo
0179C0: 73 65 20 69 74 20 20 2A 2F 0D 0A 0D 0A 43 5F 69 se it */....C_i
0179D0: 6E 5F 61 62 61 6E 64 6F 6E 28 29 0D 0A 7B 0D 0A n_abandon()..{..
0179E0: 20 20 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 inline(CALL, 0
0179F0: 78 42 43 37 44 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A xBC7D);..}......
017A00: 2F 2A 20 20 52 65 61 64 20 61 20 63 68 61 72 61 /* Read a chara
017A10: 63 74 65 72 20 66 72 6F 6D 20 74 68 65 20 69 6E cter from the in
017A20: 70 75 74 20 73 74 72 65 61 6D 20 20 2A 2F 0D 0A put stream */..
017A30: 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 /*.. returns
017A40: 63 68 61 72 61 63 74 65 72 2C 0D 0A 20 20 20 20 character,..
017A50: 6F 72 20 45 4F 46 20 28 2D 31 29 20 69 66 20 65 or EOF (-1) if e
017A60: 6E 64 2D 6F 66 2D 66 69 6C 65 2C 0D 0A 20 20 20 nd-of-file,..
017A70: 20 6F 72 20 2D 33 20 69 66 20 75 73 65 72 20 70 or -3 if user p
017A80: 72 65 73 73 65 64 20 5B 45 53 43 5D 0D 0A 2A 2F ressed [ESC]..*/
017A90: 0D 0A 0D 0A 69 6E 74 20 43 5F 69 6E 5F 63 68 61 ....int C_in_cha
017AA0: 72 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 r()..{.. inline
017AB0: 28 0D 0A 20 20 20 20 50 55 53 48 5F 49 58 2C 0D (.. PUSH_IX,.
017AC0: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
017AD0: 20 30 78 42 43 38 30 2C 0D 0A 20 20 20 20 50 4F 0xBC80,.. PO
017AE0: 50 5F 49 58 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F P_IX,.. LD_A_
017AF0: 69 6E 74 6F 2C 20 20 26 72 65 67 5F 61 2C 0D 0A into, ®_a,..
017B00: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 65 74 20 .}....../* Set
017B10: 74 68 65 20 77 72 69 74 65 20 73 70 65 65 64 20 the write speed
017B20: 28 73 65 65 20 42 41 53 49 43 2E 4C 49 42 29 20 (see BASIC.LIB)
017B30: 20 2A 2F 0D 0A 0D 0A 43 5F 73 65 74 5F 73 70 65 */....C_set_spe
017B40: 65 64 28 68 61 6C 66 5F 7A 65 72 6F 5F 62 69 74 ed(half_zero_bit
017B50: 2C 20 70 72 65 63 6F 6D 70 65 6E 73 61 74 69 6F , precompensatio
017B60: 6E 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 20 n)..{.. reg_a
017B70: 3D 20 70 72 65 63 6F 6D 70 65 6E 73 61 74 69 6F = precompensatio
017B80: 6E 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 68 n;.. reg_hl = h
017B90: 61 6C 66 5F 7A 65 72 6F 5F 62 69 74 3B 0D 0A 20 alf_zero_bit;..
017BA0: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C inline(.. L
017BB0: 44 5F 41 5F 66 72 6F 6D 2C 20 20 26 72 65 67 5F D_A_from, ®_
017BC0: 61 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 a,.. LD_HL_fr
017BD0: 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 om, ®_hl,..
017BE0: 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 CALL, 0x
017BF0: 42 43 36 38 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F BC68);..}....../
017C00: 2A 20 20 45 6E 61 62 6C 65 20 6F 72 20 64 69 73 * Enable or dis
017C10: 61 62 6C 65 20 70 72 6F 6D 70 74 20 6D 65 73 73 able prompt mess
017C20: 61 67 65 73 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 ages */../*..
017C30: 20 20 65 6E 61 62 6C 65 20 73 68 6F 75 6C 64 20 enable should
017C40: 62 65 20 54 52 55 45 20 28 31 29 20 6F 72 20 46 be TRUE (1) or F
017C50: 41 4C 53 45 20 28 30 29 20 61 73 20 61 70 70 72 ALSE (0) as appr
017C60: 6F 70 72 69 61 74 65 0D 0A 2A 2F 0D 0A 0D 0A 43 opriate..*/....C
017C70: 5F 6E 6F 69 73 79 28 65 6E 61 62 6C 65 29 0D 0A _noisy(enable)..
017C80: 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 7E 20 65 {.. reg_a = ~ e
017C90: 6E 61 62 6C 65 3B 0D 0A 20 20 20 69 6E 6C 69 6E nable;.. inlin
017CA0: 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F e(.. LD_A_fro
017CB0: 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 m, ®_a,..
017CC0: 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 CALL, 0xB
017CD0: 43 36 42 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A C6B);..}....../*
017CE0: 20 20 53 74 61 72 74 20 74 68 65 20 63 61 73 73 Start the cass
017CF0: 65 74 74 65 20 6D 6F 74 6F 72 20 20 2A 2F 0D 0A ette motor */..
017D00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
017D10: 14 00 00 00 02 09 4E E5 14 00 41 02 00 00 00 02 ......N...A.....
017D20: 14 00 46 02 00 00 00 02 14 00 42 02 00 00 00 02 ..F.......B.....
017D30: 14 00 47 02 00 00 00 02 14 00 43 02 00 00 00 02 ..G.......C.....
017D40: 14 00 48 02 00 00 00 02 14 00 44 02 00 00 00 02 ..H.......D.....
017D50: 14 00 49 02 00 00 00 02 14 00 45 02 00 00 00 02 ..I.......E.....
017D60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017E00: 20 20 20 20 4C 44 5F 41 5F 77 69 74 68 2C 20 20 LD_A_with,
017E10: 30 2C 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 0,.. RLA,..
017E20: 20 20 4A 52 5F 5A 2C 20 20 20 20 20 20 20 32 2C JR_Z, 2,
017E30: 0D 0A 20 20 20 20 49 4E 43 5F 41 2C 0D 0A 20 20 .. INC_A,..
017E40: 20 20 49 4E 43 5F 41 2C 0D 0A 20 20 20 20 4C 44 INC_A,.. LD
017E50: 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 65 67 5F 66 _A_into, ®_f
017E60: 6C 61 67 73 29 3B 0D 0A 20 20 72 65 74 75 72 6E lags);.. return
017E70: 20 20 28 72 65 67 5F 66 6C 61 67 73 20 5E 3D 20 (reg_flags ^=
017E80: 31 29 20 20 3F 20 20 2D 72 65 67 5F 66 6C 61 67 1) ? -reg_flag
017E90: 73 20 20 3A 20 20 72 65 67 5F 61 3B 0D 0A 7D 0D s : reg_a;..}.
017EA0: 0A 0D 0A 0D 0A 2F 2A 20 20 52 65 61 64 20 74 68 ...../* Read th
017EB0: 65 20 65 6E 74 69 72 65 20 69 6E 70 75 74 20 66 e entire input f
017EC0: 69 6C 65 20 69 6E 74 6F 20 73 74 6F 72 65 20 20 ile into store
017ED0: 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 75 */../*.. retu
017EE0: 72 6E 73 20 4E 55 4C 4C 20 28 30 29 20 69 66 20 rns NULL (0) if
017EF0: 4F 4B 2C 0D 0A 20 20 20 20 6F 72 20 45 4F 46 20 OK,.. or EOF
017F00: 28 2D 31 29 20 69 66 20 65 6E 64 2D 6F 66 2D 66 (-1) if end-of-f
017F10: 69 6C 65 2C 0D 0A 20 20 20 20 6F 72 20 2D 33 20 ile,.. or -3
017F20: 69 66 20 75 73 65 72 20 70 72 65 73 73 65 64 20 if user pressed
017F30: 5B 45 53 43 5D 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 [ESC]..*/....int
017F40: 20 43 5F 69 6E 5F 64 69 72 65 63 74 28 61 64 64 C_in_direct(add
017F50: 72 65 73 73 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F ress)..{.. reg_
017F60: 68 6C 20 3D 20 61 64 64 72 65 73 73 3B 0D 0A 20 hl = address;..
017F70: 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 inline(.. LD
017F80: 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 _HL_from, ®_h
017F90: 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 l,.. CALL,
017FA0: 20 20 20 20 30 78 42 43 38 33 2C 0D 0A 20 20 20 0xBC83,..
017FB0: 20 4C 44 5F 41 5F 77 69 74 68 2C 20 20 30 2C 0D LD_A_with, 0,.
017FC0: 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 20 20 4A . RLA,.. J
017FD0: 52 5F 5A 2C 20 20 20 20 20 20 20 32 2C 0D 0A 20 R_Z, 2,..
017FE0: 20 20 20 49 4E 43 5F 41 2C 0D 0A 20 20 20 20 49 INC_A,.. I
017FF0: 4E 43 5F 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F NC_A,.. LD_A_
018000: 69 66 20 28 72 65 67 5F 66 6C 61 67 73 20 26 20 if (reg_flags &
018010: 31 29 20 72 65 74 75 72 6E 20 30 3B 0D 0A 20 20 1) return 0;..
018020: 69 66 20 28 72 65 67 5F 66 6C 61 67 73 20 26 20 if (reg_flags &
018030: 32 29 20 72 65 74 75 72 6E 20 2D 33 3B 0D 0A 20 2) return -3;..
018040: 20 72 65 74 75 72 6E 20 2D 31 3B 0D 0A 7D 0D 0A return -1;..}..
018050: 0D 0A 0D 0A 2F 2A 20 20 77 72 69 74 65 20 74 68 ..../* write th
018060: 65 20 65 6E 74 69 72 65 20 6F 75 74 70 75 74 20 e entire output
018070: 66 69 6C 65 20 64 69 72 65 63 74 6C 79 20 66 72 file directly fr
018080: 6F 6D 20 73 74 6F 72 65 20 20 2A 2F 0D 0A 2F 2A om store */../*
018090: 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 4E 55 .. returns NU
0180A0: 4C 4C 20 28 30 29 20 69 66 20 4F 4B 2C 0D 0A 20 LL (0) if OK,..
0180B0: 20 20 20 6F 72 20 45 52 52 4F 52 20 28 2D 31 29 or ERROR (-1)
0180C0: 20 69 66 20 66 69 6C 65 20 6E 6F 74 20 6F 70 65 if file not ope
0180D0: 6E 0D 0A 20 20 20 20 6F 72 20 2D 33 20 69 66 20 n.. or -3 if
0180E0: 75 73 65 72 20 70 72 65 73 73 65 64 20 5B 45 53 user pressed [ES
0180F0: 43 5D 0D 0A 2A 2F 0D 0A 0D 0A 43 5F 6F 75 74 5F C]..*/....C_out_
018100: 64 69 72 65 63 74 28 64 61 74 61 5F 61 64 64 72 direct(data_addr
018110: 65 73 73 2C 20 64 61 74 61 5F 6C 65 6E 67 74 68 ess, data_length
018120: 2C 20 65 6E 74 72 79 5F 61 64 64 72 65 73 73 2C , entry_address,
018130: 20 66 69 6C 65 5F 74 79 70 65 29 0D 0A 7B 0D 0A file_type)..{..
018140: 20 20 72 65 67 5F 68 6C 20 3D 20 64 61 74 61 5F reg_hl = data_
018150: 61 64 64 72 65 73 73 3B 0D 0A 20 20 72 65 67 5F address;.. reg_
018160: 64 65 20 3D 20 64 61 74 61 5F 6C 65 6E 67 74 68 de = data_length
018170: 3B 0D 0A 20 20 72 65 67 5F 62 63 20 3D 20 65 6E ;.. reg_bc = en
018180: 74 72 79 5F 61 64 64 72 65 73 73 3B 0D 0A 20 20 try_address;..
018190: 72 65 67 5F 61 20 20 3D 20 66 69 6C 65 5F 74 79 reg_a = file_ty
0181A0: 70 65 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A pe;.. inline(..
0181B0: 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 LD_HL_from,
0181C0: 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 ®_hl,.. LD
0181D0: 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 _DE_from, ®_d
0181E0: 65 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 5F 66 72 e,.. LD_BC_fr
0181F0: 6F 6D 2C 20 26 72 65 67 5F 62 63 2C 0D 0A 20 20 om, ®_bc,..
018200: 69 6E 74 6F 2C 20 20 26 72 65 67 5F 66 6C 61 67 into, ®_flag
018210: 73 29 3B 0D 0A 20 20 69 66 20 28 72 65 67 5F 66 s);.. if (reg_f
018220: 6C 61 67 73 20 26 20 31 29 20 72 65 74 75 72 6E lags & 1) return
018230: 20 30 3B 0D 0A 20 20 69 66 20 28 72 65 67 5F 66 0;.. if (reg_f
018240: 6C 61 67 73 20 26 20 32 29 20 72 65 74 75 72 6E lags & 2) return
018250: 20 2D 33 3B 0D 0A 20 20 72 65 74 75 72 6E 20 2D -3;.. return -
018260: 31 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 50 1;..}....../* P
018270: 75 74 20 62 61 63 6B 20 74 68 65 20 6C 61 73 74 ut back the last
018280: 20 63 68 61 72 61 63 74 65 72 20 72 65 61 64 20 character read
018290: 66 72 6F 6D 20 63 61 73 73 65 74 74 65 20 20 2A from cassette *
0182A0: 2F 0D 0A 0D 0A 43 5F 72 65 74 75 72 6E 28 29 0D /....C_return().
0182B0: 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 41 4C .{.. inline(CAL
0182C0: 4C 2C 20 30 78 42 43 38 36 29 3B 0D 0A 7D 0D 0A L, 0xBC86);..}..
0182D0: 0D 0A 0D 0A 2F 2A 20 20 54 65 73 74 20 69 66 20 ..../* Test if
0182E0: 74 68 65 20 65 6E 64 20 6F 66 20 74 68 65 20 69 the end of the i
0182F0: 6E 70 75 74 20 66 69 6C 65 20 68 61 73 20 62 65 nput file has be
018300: 65 6E 20 72 65 61 63 68 65 64 20 20 2A 2F 0D 0A en reached */..
018310: 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 /*.. returns
018320: 4E 55 4C 4C 20 28 30 29 20 69 66 20 4F 4B 2C 0D NULL (0) if OK,.
018330: 0A 20 20 20 20 6F 72 20 45 4F 46 20 28 2D 31 29 . or EOF (-1)
018340: 20 69 66 20 65 6E 64 2D 6F 66 2D 66 69 6C 65 2C if end-of-file,
018350: 0D 0A 20 20 20 20 6F 72 20 2D 33 20 69 66 20 75 .. or -3 if u
018360: 73 65 72 20 70 72 65 73 73 65 64 20 5B 45 53 43 ser pressed [ESC
018370: 5D 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 43 5F 74 ]..*/....int C_t
018380: 65 73 74 5F 65 6F 66 28 29 0D 0A 7B 0D 0A 20 20 est_eof()..{..
018390: 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 50 55 53 inline(.. PUS
0183A0: 48 5F 49 58 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C H_IX,.. CALL,
0183B0: 20 20 20 20 20 20 30 78 42 43 38 39 2C 0D 0A 20 0xBC89,..
0183C0: 20 20 20 50 4F 50 5F 49 58 2C 0D 0A 20 20 20 20 POP_IX,..
0183D0: 4C 44 5F 41 5F 77 69 74 68 2C 20 20 30 2C 0D 0A LD_A_with, 0,..
0183E0: 20 20 20 20 52 4C 41 2C 0D 0A 20 20 20 20 4A 52 RLA,.. JR
0183F0: 5F 5A 2C 20 20 20 20 20 20 20 32 2C 0D 0A 20 20 _Z, 2,..
018400: 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 20 26 72 LD_A_from, &r
018410: 65 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C eg_a,.. CALL,
018420: 20 20 20 20 20 20 20 30 78 42 43 38 33 2C 0D 0A 0xBC83,..
018430: 20 20 20 20 4C 44 5F 41 5F 77 69 74 68 2C 20 20 LD_A_with,
018440: 30 2C 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 0,.. RLA,..
018450: 20 20 4A 52 5F 5A 2C 20 20 20 20 20 20 20 32 2C JR_Z, 2,
018460: 0D 0A 20 20 20 20 49 4E 43 5F 41 2C 0D 0A 20 20 .. INC_A,..
018470: 20 20 49 4E 43 5F 41 2C 0D 0A 20 20 20 20 4C 44 INC_A,.. LD
018480: 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 65 67 5F 66 _A_into, ®_f
018490: 6C 61 67 73 29 3B 0D 0A 20 20 69 66 20 28 72 65 lags);.. if (re
0184A0: 67 5F 66 6C 61 67 73 20 26 20 31 29 20 72 65 74 g_flags & 1) ret
0184B0: 75 72 6E 20 30 3B 0D 0A 20 20 69 66 20 28 72 65 urn 0;.. if (re
0184C0: 67 5F 66 6C 61 67 73 20 26 20 32 29 20 72 65 74 g_flags & 2) ret
0184D0: 75 72 6E 20 2D 33 3B 0D 0A 20 20 72 65 74 75 72 urn -3;.. retur
0184E0: 6E 20 2D 31 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A n -1;..}....../*
0184F0: 20 20 47 65 6E 65 72 61 74 65 20 61 20 63 61 74 Generate a cat
018500: 61 6C 6F 67 75 65 20 66 72 6F 6D 20 74 68 65 20 alogue from the
018510: 74 61 70 65 20 20 2A 2F 0D 0A 0D 0A 43 5F 63 61 tape */....C_ca
018520: 74 61 6C 6F 67 28 29 0D 0A 7B 0D 0A 20 20 63 68 talog()..{.. ch
018530: 61 72 20 62 75 66 66 65 72 5B 32 30 34 38 5D 3B ar buffer[2048];
018540: 0D 0A 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 63 .... reg_de = c
018550: 61 73 74 20 28 75 6E 73 69 67 6E 65 64 29 20 62 ast (unsigned) b
018560: 75 66 66 65 72 3B 0D 0A 20 20 69 6E 6C 69 6E 65 uffer;.. inline
018570: 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F (.. LD_DE_fro
018580: 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 m, ®_de,..
018590: 20 50 55 53 48 5F 49 58 2C 0D 0A 20 20 20 20 43 PUSH_IX,.. C
0185A0: 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 43 39 ALL, 0xBC9
0185B0: 42 2C 0D 0A 20 20 20 20 50 4F 50 5F 49 58 29 3B B,.. POP_IX);
0185C0: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 77 72 69 ..}....../* wri
0185D0: 74 65 20 61 20 72 65 63 6F 72 64 20 74 6F 20 74 te a record to t
0185E0: 61 70 65 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 ape */../*..
0185F0: 20 72 65 74 75 72 6E 73 20 4E 55 4C 4C 20 28 30 returns NULL (0
018600: 20 20 49 4E 43 5F 41 2C 0D 0A 20 20 20 20 49 4E INC_A,.. IN
018610: 43 5F 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 C_A,.. LD_A_i
018620: 6E 74 6F 2C 20 20 26 72 65 67 5F 66 6C 61 67 73 nto, ®_flags
018630: 29 3B 0D 0A 20 20 69 66 20 28 72 65 67 5F 66 6C );.. if (reg_fl
018640: 61 67 73 20 26 20 31 29 20 72 65 74 75 72 6E 20 ags & 1) return
018650: 30 3B 0D 0A 20 20 69 66 20 28 72 65 67 5F 66 6C 0;.. if (reg_fl
018660: 61 67 73 20 26 20 32 29 20 72 65 74 75 72 6E 20 ags & 2) return
018670: 2D 33 3B 0D 0A 20 20 72 65 74 75 72 6E 20 2D 31 -3;.. return -1
018680: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 ;..}......../*
018690: 6F 70 65 6E 20 61 20 66 69 6C 65 20 66 6F 72 20 open a file for
0186A0: 6F 75 74 70 75 74 20 20 2A 2F 0D 0A 2F 2A 0D 0A output */../*..
0186B0: 20 20 20 20 75 73 65 20 66 6F 70 65 6E 28 29 20 use fopen()
0186C0: 69 6E 20 70 72 65 66 65 72 65 6E 63 65 2E 0D 0A in preference...
0186D0: 20 20 20 20 74 68 65 72 65 20 61 72 65 20 73 65 there are se
0186E0: 76 65 72 61 6C 20 70 6F 73 73 69 62 6C 65 20 72 veral possible r
0186F0: 65 74 75 72 6E 20 76 61 6C 75 65 73 2C 20 73 6F eturn values, so
018700: 20 63 75 73 74 6F 6D 69 73 65 20 74 68 65 0D 0A customise the..
018710: 20 20 20 20 66 75 6E 63 74 69 6F 6E 20 66 6F 72 function for
018720: 20 74 68 6F 73 65 20 74 68 61 74 20 79 6F 75 20 those that you
018730: 6E 65 65 64 2E 0D 0A 2A 2F 0D 0A 0D 0A 43 5F 6F need...*/....C_o
018740: 75 74 5F 6F 70 65 6E 28 66 69 6C 65 6E 61 6D 65 ut_open(filename
018750: 2C 20 62 75 66 66 65 72 29 0D 0A 7B 0D 0A 20 20 , buffer)..{..
018760: 72 65 67 5F 62 63 20 3D 20 73 74 72 6C 65 6E 28 reg_bc = strlen(
018770: 66 69 6C 65 6E 61 6D 65 29 20 3C 3C 20 38 3B 0D filename) << 8;.
018780: 0A 20 20 72 65 67 5F 68 6C 20 3D 20 66 69 6C 65 . reg_hl = file
018790: 6E 61 6D 65 3B 0D 0A 20 20 72 65 67 5F 64 65 20 name;.. reg_de
0187A0: 3D 20 62 75 66 66 65 72 3B 0D 0A 20 20 69 6E 6C = buffer;.. inl
0187B0: 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 42 43 5F ine(.. LD_BC_
0187C0: 66 72 6F 6D 2C 20 26 72 65 67 5F 62 63 2C 0D 0A from, ®_bc,..
0187D0: 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 LD_DE_from,
0187E0: 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 ®_de,.. LD
0187F0: 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 _HL_from, ®_h
018800: 29 20 69 66 20 4F 4B 20 61 6E 64 20 6F 74 68 65 ) if OK and othe
018810: 72 77 69 73 65 20 61 6E 20 65 72 72 6F 72 20 63 rwise an error c
018820: 6F 64 65 3A 0D 0A 0D 0A 20 20 20 20 20 20 20 20 ode:....
018830: 63 6F 64 65 20 20 20 20 6D 65 61 6E 69 6E 67 0D code meaning.
018840: 0A 20 20 20 20 20 20 20 20 20 20 31 20 20 20 20 . 1
018850: 20 20 20 74 68 65 20 75 73 65 72 20 70 72 65 73 the user pres
018860: 73 65 64 20 5B 45 53 43 5D 0D 0A 20 20 20 20 20 sed [ESC]..
018870: 20 20 20 20 20 32 20 20 20 20 20 20 20 6F 76 65 2 ove
018880: 72 72 75 6E 20 69 6E 20 63 61 73 73 65 74 74 65 rrun in cassette
018890: 20 6D 61 6E 61 67 65 72 0D 0A 2A 2F 0D 0A 0D 0A manager..*/....
0188A0: 69 6E 74 20 43 5F 77 72 69 74 65 28 64 61 74 61 int C_write(data
0188B0: 5F 61 64 64 72 65 73 73 2C 20 64 61 74 61 5F 6C _address, data_l
0188C0: 65 6E 67 74 68 2C 20 73 79 6E 63 5F 63 68 61 72 ength, sync_char
0188D0: 61 63 74 65 72 29 0D 0A 7B 0D 0A 20 20 72 65 67 acter)..{.. reg
0188E0: 5F 68 6C 20 3D 20 64 61 74 61 5F 61 64 64 72 65 _hl = data_addre
0188F0: 73 73 3B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 ss;.. reg_de =
018900: 64 61 74 61 5F 6C 65 6E 67 74 68 3B 0D 0A 20 20 data_length;..
018910: 72 65 67 5F 61 20 20 3D 20 73 79 6E 63 5F 63 68 reg_a = sync_ch
018920: 61 72 61 63 74 65 72 3B 0D 0A 20 20 69 6E 6C 69 aracter;.. inli
018930: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 ne(.. LD_HL_f
018940: 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 rom, ®_hl,..
018950: 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 LD_DE_from, &
018960: 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F reg_de,.. LD_
018970: 41 5F 66 72 6F 6D 2C 20 20 26 72 65 67 5F 61 2C A_from, ®_a,
018980: 0D 0A 20 20 20 20 50 55 53 48 5F 49 58 2C 0D 0A .. PUSH_IX,..
018990: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
0189A0: 30 78 42 43 39 45 2C 0D 0A 20 20 20 20 50 4F 50 0xBC9E,.. POP
0189B0: 5F 49 58 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 _IX,.. LD_A_i
0189C0: 6E 74 6F 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 nto, ®_a,..
0189D0: 20 20 20 4C 44 5F 41 5F 77 69 74 68 2C 20 20 30 LD_A_with, 0
0189E0: 2C 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 20 ,.. RLA,..
0189F0: 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 65 LD_A_into, &re
018A00: 6C 2C 0D 0A 20 20 20 20 50 55 53 48 5F 49 58 2C l,.. PUSH_IX,
018A10: 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 .. CALL,
018A20: 20 20 30 78 42 43 38 43 2C 0D 0A 20 20 20 20 50 0xBC8C,.. P
018A30: 4F 50 5F 49 58 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A OP_IX);..}......
018A40: 2F 2A 20 20 43 6C 6F 73 65 20 74 68 65 20 6F 75 /* Close the ou
018A50: 74 70 75 74 20 66 69 6C 65 20 70 72 6F 70 65 72 tput file proper
018A60: 6C 79 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 ly */../*..
018A70: 72 65 74 75 72 6E 73 20 4E 55 4C 4C 20 28 30 29 returns NULL (0)
018A80: 20 69 66 20 4F 4B 2C 0D 0A 20 20 20 20 6F 72 20 if OK,.. or
018A90: 45 52 52 4F 52 20 28 2D 31 29 20 69 66 20 73 74 ERROR (-1) if st
018AA0: 72 65 61 6D 20 6E 6F 74 20 6F 70 65 6E 2C 0D 0A ream not open,..
018AB0: 20 20 20 20 6F 72 20 2D 33 20 69 66 20 75 73 65 or -3 if use
018AC0: 72 20 70 72 65 73 73 65 64 20 5B 45 53 43 5D 0D r pressed [ESC].
018AD0: 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 43 5F 6F 75 74 .*/....int C_out
018AE0: 5F 63 6C 6F 73 65 28 29 0D 0A 7B 0D 0A 20 20 69 _close()..{.. i
018AF0: 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 50 55 53 48 nline(.. PUSH
018B00: 5F 49 58 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 _IX,.. CALL,
018B10: 20 20 20 20 20 20 30 78 42 43 38 46 2C 0D 0A 20 0xBC8F,..
018B20: 20 20 20 50 4F 50 5F 49 58 2C 0D 0A 20 20 20 20 POP_IX,..
018B30: 4C 44 5F 41 5F 77 69 74 68 2C 20 20 30 2C 0D 0A LD_A_with, 0,..
018B40: 20 20 20 20 52 4C 41 2C 0D 0A 20 20 20 20 4A 52 RLA,.. JR
018B50: 5F 5A 2C 20 20 20 20 20 20 20 32 2C 0D 0A 20 20 _Z, 2,..
018B60: 20 20 49 4E 43 5F 41 2C 0D 0A 20 20 20 20 49 4E INC_A,.. IN
018B70: 43 5F 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 C_A,.. LD_A_i
018B80: 6E 74 6F 2C 20 20 26 72 65 67 5F 66 6C 61 67 73 nto, ®_flags
018B90: 29 3B 0D 0A 20 20 69 66 20 28 72 65 67 5F 66 6C );.. if (reg_fl
018BA0: 61 67 73 20 26 20 31 29 20 72 65 74 75 72 6E 20 ags & 1) return
018BB0: 30 3B 0D 0A 20 20 69 66 20 28 72 65 67 5F 66 6C 0;.. if (reg_fl
018BC0: 61 67 73 20 26 20 32 29 20 72 65 74 75 72 6E 20 ags & 2) return
018BD0: 2D 33 3B 0D 0A 20 20 72 65 74 75 72 6E 20 2D 31 -3;.. return -1
018BE0: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 41 62 ;..}....../* Ab
018BF0: 61 6E 64 6F 6E 20 77 72 69 74 69 6E 67 20 74 6F andon writing to
018C00: 67 5F 66 6C 61 67 73 29 3B 0D 0A 20 20 72 65 74 g_flags);.. ret
018C10: 75 72 6E 20 20 72 65 67 5F 66 6C 61 67 73 20 20 urn reg_flags
018C20: 3F 20 20 30 20 20 3A 20 20 72 65 67 5F 61 20 2B ? 0 : reg_a +
018C30: 20 31 20 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 1 ;..}....../*
018C40: 20 72 65 61 64 20 61 20 72 65 63 6F 72 64 20 66 read a record f
018C50: 72 6F 6D 20 74 61 70 65 20 20 2A 2F 0D 0A 2F 2A rom tape */../*
018C60: 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 4E 55 .. returns NU
018C70: 4C 4C 20 28 30 29 20 69 66 20 4F 4B 20 61 6E 64 LL (0) if OK and
018C80: 20 6F 74 68 65 72 77 69 73 65 20 61 6E 20 65 72 otherwise an er
018C90: 72 6F 72 20 63 6F 64 65 3A 0D 0A 0D 0A 20 20 20 ror code:....
018CA0: 20 20 20 20 20 63 6F 64 65 20 20 20 20 6D 65 61 code mea
018CB0: 6E 69 6E 67 0D 0A 20 20 20 20 20 20 20 20 20 20 ning..
018CC0: 31 20 20 20 20 20 20 20 74 68 65 20 75 73 65 72 1 the user
018CD0: 20 70 72 65 73 73 65 64 20 5B 45 53 43 5D 0D 0A pressed [ESC]..
018CE0: 20 20 20 20 20 20 20 20 20 20 32 20 20 20 20 20 2
018CF0: 20 20 6F 76 65 72 72 75 6E 20 69 6E 20 63 61 73 overrun in cas
018D00: 73 65 74 74 65 20 6D 61 6E 61 67 65 72 0D 0A 20 sette manager..
018D10: 20 20 20 20 20 20 20 20 20 33 20 20 20 20 20 20 3
018D20: 20 43 52 43 20 65 72 72 6F 72 0D 0A 2A 2F 0D 0A CRC error..*/..
018D30: 0D 0A 69 6E 74 20 43 5F 72 65 61 64 28 64 61 74 ..int C_read(dat
018D40: 61 5F 61 64 64 72 65 73 73 2C 20 64 61 74 61 5F a_address, data_
018D50: 6C 65 6E 67 74 68 2C 20 73 79 6E 63 5F 63 68 61 length, sync_cha
018D60: 72 61 63 74 65 72 29 0D 0A 7B 0D 0A 20 20 72 65 racter)..{.. re
018D70: 67 5F 68 6C 20 3D 20 64 61 74 61 5F 61 64 64 72 g_hl = data_addr
018D80: 65 73 73 3B 0D 0A 20 20 72 65 67 5F 64 65 20 3D ess;.. reg_de =
018D90: 20 64 61 74 61 5F 6C 65 6E 67 74 68 3B 0D 0A 20 data_length;..
018DA0: 20 72 65 67 5F 61 20 20 3D 20 73 79 6E 63 5F 63 reg_a = sync_c
018DB0: 68 61 72 61 63 74 65 72 3B 0D 0A 20 20 69 6E 6C haracter;.. inl
018DC0: 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F ine(.. LD_HL_
018DD0: 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A from, ®_hl,..
018DE0: 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 LD_DE_from,
018DF0: 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 ®_de,.. LD
018E00: 20 74 68 65 20 6F 75 74 70 75 74 20 66 69 6C 65 the output file
018E10: 20 61 6E 64 20 63 6C 6F 73 65 20 69 74 20 20 2A and close it *
018E20: 2F 0D 0A 0D 0A 43 5F 6F 75 74 5F 61 62 61 6E 64 /....C_out_aband
018E30: 6F 6E 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E on()..{.. inlin
018E40: 65 28 43 41 4C 4C 2C 20 30 78 42 43 39 32 29 3B e(CALL, 0xBC92);
018E50: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 77 72 69 ..}....../* wri
018E60: 74 65 20 61 20 63 68 61 72 61 63 74 65 72 20 74 te a character t
018E70: 6F 20 74 68 65 20 6F 75 74 70 75 74 20 73 74 72 o the output str
018E80: 65 61 6D 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 eam */../*..
018E90: 20 72 65 74 75 72 6E 73 20 63 68 61 72 61 63 74 returns charact
018EA0: 65 72 2C 0D 0A 20 20 20 20 6F 72 20 45 52 52 4F er,.. or ERRO
018EB0: 52 20 28 2D 31 29 20 69 66 20 66 69 6C 65 20 6E R (-1) if file n
018EC0: 6F 74 20 6F 70 65 6E 2C 0D 0A 20 20 20 20 6F 72 ot open,.. or
018ED0: 20 2D 33 20 69 66 20 75 73 65 72 20 70 72 65 73 -3 if user pres
018EE0: 73 65 64 20 5B 45 53 43 5D 0D 0A 2A 2F 0D 0A 0D sed [ESC]..*/...
018EF0: 0A 69 6E 74 20 43 5F 6F 75 74 5F 63 68 61 72 28 .int C_out_char(
018F00: 63 68 61 72 61 63 74 65 72 29 0D 0A 7B 0D 0A 20 character)..{..
018F10: 20 72 65 67 5F 61 20 3D 20 63 68 61 72 61 63 74 reg_a = charact
018F20: 65 72 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A er;.. inline(..
018F30: 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 20 LD_A_from,
018F40: 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 50 55 53 ®_a,.. PUS
018F50: 48 5F 49 58 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C H_IX,.. CALL,
018F60: 20 20 20 20 20 20 20 30 78 42 43 38 30 2C 0D 0A 0xBC80,..
018F70: 20 20 20 20 50 4F 50 5F 49 58 2C 0D 0A 20 20 20 POP_IX,..
018F80: 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 65 LD_A_into, &re
018F90: 67 5F 61 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 77 g_a,.. LD_A_w
018FA0: 69 74 68 2C 20 20 30 2C 0D 0A 20 20 20 20 52 4C ith, 0,.. RL
018FB0: 41 2C 0D 0A 20 20 20 20 4A 52 5F 5A 2C 20 20 20 A,.. JR_Z,
018FC0: 20 20 20 20 32 2C 0D 0A 20 20 20 20 49 4E 43 5F 2,.. INC_
018FD0: 41 2C 0D 0A 20 20 20 20 49 4E 43 5F 41 2C 0D 0A A,.. INC_A,..
018FE0: 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 LD_A_into,
018FF0: 26 72 65 67 5F 66 6C 61 67 73 29 3B 0D 0A 20 20 ®_flags);..
019000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
019010: 15 00 00 00 02 09 4E E5 15 00 41 02 00 00 00 02 ......N...A.....
019020: 15 00 46 02 00 00 00 02 15 00 42 02 00 00 00 02 ..F.......B.....
019030: 15 00 47 02 00 00 00 02 15 00 43 02 00 00 00 02 ..G.......C.....
019040: 15 00 48 02 00 00 00 02 15 00 44 02 00 00 00 02 ..H.......D.....
019050: 15 00 49 02 00 00 00 02 15 00 45 02 00 00 00 02 ..I.......E.....
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: 5F 41 5F 66 72 6F 6D 2C 20 20 26 72 65 67 5F 61 _A_from, ®_a
019110: 2C 0D 0A 20 20 20 20 50 55 53 48 5F 49 58 2C 0D ,.. PUSH_IX,.
019120: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
019130: 20 30 78 42 43 41 31 2C 0D 0A 20 20 20 20 50 4F 0xBCA1,.. PO
019140: 50 5F 49 58 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F P_IX,.. LD_A_
019150: 69 6E 74 6F 2C 20 20 26 72 65 67 5F 61 2C 0D 0A into, ®_a,..
019160: 20 20 20 20 4C 44 5F 41 5F 77 69 74 68 2C 20 20 LD_A_with,
019170: 30 2C 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 0,.. RLA,..
019180: 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 LD_A_into, &r
019190: 65 67 5F 66 6C 61 67 73 29 3B 0D 0A 20 20 72 65 eg_flags);.. re
0191A0: 74 75 72 6E 20 20 72 65 67 5F 66 6C 61 67 73 20 turn reg_flags
0191B0: 20 3F 20 20 30 20 20 3A 20 20 72 65 67 5F 61 20 ? 0 : reg_a
0191C0: 2B 20 31 20 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A + 1 ;..}........
0191D0: 0D 0A 2F 2A 20 20 43 6F 6D 70 61 72 65 20 61 20 ../* Compare a
0191E0: 72 65 63 6F 72 64 20 6F 6E 20 74 61 70 65 20 77 record on tape w
0191F0: 69 74 68 20 74 68 65 20 63 6F 6E 74 65 6E 74 73 ith the contents
019200: 20 6F 66 20 73 74 6F 72 65 20 20 2A 2F 0D 0A 2F of store */../
019210: 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 4E *.. returns N
019220: 55 4C 4C 20 28 30 29 20 69 66 20 4F 4B 20 61 6E ULL (0) if OK an
019230: 64 20 6F 74 68 65 72 77 69 73 65 20 61 6E 20 65 d otherwise an e
019240: 72 72 6F 72 20 63 6F 64 65 3A 0D 0A 0D 0A 20 20 rror code:....
019250: 20 20 20 20 20 20 63 6F 64 65 20 20 20 20 6D 65 code me
019260: 61 6E 69 6E 67 0D 0A 20 20 20 20 20 20 20 20 20 aning..
019270: 20 31 20 20 20 20 20 20 20 74 68 65 20 75 73 65 1 the use
019280: 72 20 70 72 65 73 73 65 64 20 5B 45 53 43 5D 0D r pressed [ESC].
019290: 0A 20 20 20 20 20 20 20 20 20 20 32 20 20 20 20 . 2
0192A0: 20 20 20 6F 76 65 72 72 75 6E 20 69 6E 20 63 61 overrun in ca
0192B0: 73 73 65 74 74 65 20 6D 61 6E 61 67 65 72 0D 0A ssette manager..
0192C0: 20 20 20 20 20 20 20 20 20 20 33 20 20 20 20 20 3
0192D0: 20 20 43 52 43 20 65 72 72 6F 72 0D 0A 20 20 20 CRC error..
0192E0: 20 20 20 20 20 20 20 34 20 20 20 20 20 20 20 64 4 d
0192F0: 61 74 61 20 6F 6E 20 74 61 70 65 20 64 69 66 66 ata on tape diff
019300: 5F 41 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 61 2C _A_from, ®_a,
019310: 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 .. CALL,
019320: 20 30 78 42 43 30 38 29 3B 0D 0A 7D 0D 0A 0D 0A 0xBC08);..}....
019330: 0D 0A 2F 2A 20 20 46 65 74 63 68 20 63 75 72 72 ../* Fetch curr
019340: 65 6E 74 20 62 61 73 65 20 61 6E 64 20 6F 66 66 ent base and off
019350: 73 65 74 20 73 65 74 74 69 6E 67 73 20 20 2A 2F set settings */
019360: 0D 0A 0D 0A 69 6E 74 20 56 5F 67 65 74 5F 6F 66 ....int V_get_of
019370: 66 73 65 74 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C fset()..{.. inl
019380: 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 ine(.. CALL,
019390: 20 20 20 20 20 20 30 78 42 43 30 42 2C 0D 0A 20 0xBC0B,..
0193A0: 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C 20 26 LD_HL_into, &
0193B0: 72 65 67 5F 68 6C 29 3B 0D 0A 20 20 72 65 74 75 reg_hl);.. retu
0193C0: 72 6E 20 72 65 67 5F 68 6C 3B 0D 0A 7D 0D 0A 0D rn reg_hl;..}...
0193D0: 0A 69 6E 74 20 56 5F 67 65 74 5F 62 61 73 65 28 .int V_get_base(
0193E0: 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D )..{.. inline(.
0193F0: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
019400: 20 30 78 42 43 30 42 2C 0D 0A 20 20 20 20 4C 44 0xBC0B,.. LD
019410: 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 65 67 5F 61 _A_into, ®_a
019420: 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 72 65 67 );.. return reg
019430: 5F 61 20 3E 3E 20 36 3B 0D 0A 7D 0D 0A 0D 0A 0D _a >> 6;..}.....
019440: 0A 2F 2A 20 20 73 65 74 20 73 63 72 65 65 6E 20 ./* set screen
019450: 69 6E 74 6F 20 61 20 6E 65 77 20 6D 6F 64 65 20 into a new mode
019460: 20 2A 2F 0D 0A 0D 0A 56 5F 73 65 74 5F 6D 6F 64 */....V_set_mod
019470: 65 28 6D 6F 64 65 29 0D 0A 7B 0D 0A 20 20 72 65 e(mode)..{.. re
019480: 67 5F 61 20 3D 20 6D 6F 64 65 3B 0D 0A 20 20 69 g_a = mode;.. i
019490: 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 nline(.. LD_A
0194A0: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A _from, ®_a,..
0194B0: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 CALL, 0
0194C0: 78 42 43 30 45 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A xBC0E);..}......
0194D0: 2F 2A 20 20 61 73 6B 20 74 68 65 20 63 75 72 72 /* ask the curr
0194E0: 65 6E 74 20 73 63 72 65 65 6E 20 6D 6F 64 65 20 ent screen mode
0194F0: 20 2A 2F 0D 0A 0D 0A 69 6E 74 20 56 5F 67 65 74 */....int V_get
019500: 65 72 73 20 66 72 6F 6D 20 6D 65 6D 6F 72 79 0D ers from memory.
019510: 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 43 5F 63 68 65 .*/....int C_che
019520: 63 6B 28 64 61 74 61 5F 61 64 64 72 65 73 73 2C ck(data_address,
019530: 20 64 61 74 61 5F 6C 65 6E 67 74 68 2C 20 73 79 data_length, sy
019540: 6E 63 5F 63 68 61 72 61 63 74 65 72 29 0D 0A 7B nc_character)..{
019550: 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 64 61 74 .. reg_hl = dat
019560: 61 5F 61 64 64 72 65 73 73 3B 0D 0A 20 20 72 65 a_address;.. re
019570: 67 5F 64 65 20 3D 20 64 61 74 61 5F 6C 65 6E 67 g_de = data_leng
019580: 74 68 3B 0D 0A 20 20 72 65 67 5F 61 20 20 3D 20 th;.. reg_a =
019590: 73 79 6E 63 5F 63 68 61 72 61 63 74 65 72 3B 0D sync_character;.
0195A0: 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 . inline(..
0195B0: 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_HL_from, ®
0195C0: 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 5F 44 45 5F _hl,.. LD_DE_
0195D0: 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A from, ®_de,..
0195E0: 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 20 LD_A_from,
0195F0: 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 50 55 53 ®_a,.. PUS
019600: 48 5F 49 58 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C H_IX,.. CALL,
019610: 20 20 20 20 20 20 20 30 78 42 43 41 31 2C 0D 0A 0xBCA1,..
019620: 20 20 20 20 50 4F 50 5F 49 58 2C 0D 0A 20 20 20 POP_IX,..
019630: 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 65 LD_A_into, &re
019640: 67 5F 61 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 77 g_a,.. LD_A_w
019650: 69 74 68 2C 20 20 30 2C 0D 0A 20 20 20 20 52 4C ith, 0,.. RL
019660: 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 6E 74 A,.. LD_A_int
019670: 6F 2C 20 20 26 72 65 67 5F 66 6C 61 67 73 29 3B o, ®_flags);
019680: 0D 0A 20 20 72 65 74 75 72 6E 20 20 72 65 67 5F .. return reg_
019690: 66 6C 61 67 73 20 20 3F 20 20 30 20 20 3A 20 20 flags ? 0 :
0196A0: 72 65 67 5F 61 20 2B 20 31 20 3B 0D 0A 7D 0D 0A reg_a + 1 ;..}..
0196B0: 0D 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 ../* * * * * *
0196C0: 20 20 20 20 45 20 4E 20 44 20 20 20 4F 20 46 20 E N D O F
0196D0: 20 20 46 20 49 20 52 20 4D 20 34 20 20 20 20 20 F I R M 4
0196E0: 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 1A * * * * * */...
0196F0: 6F 2C 20 20 26 72 65 67 5F 66 6C 61 67 73 29 3B o, ®_flags);
019700: 5F 6D 6F 64 65 28 29 0D 0A 7B 0D 0A 20 20 69 6E _mode()..{.. in
019710: 6C 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C line(.. CALL,
019720: 20 20 20 20 20 20 30 78 42 43 31 31 2C 0D 0A 20 0xBC11,..
019730: 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 26 72 LD_A_into, &r
019740: 65 67 5F 61 29 3B 0D 0A 20 20 72 65 74 75 72 6E eg_a);.. return
019750: 20 72 65 67 5F 61 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A reg_a;..}......
019760: 2F 2A 20 20 63 6C 65 61 72 20 74 68 65 20 73 63 /* clear the sc
019770: 72 65 65 6E 20 74 6F 20 69 6E 6B 20 30 20 20 2A reen to ink 0 *
019780: 2F 0D 0A 0D 0A 56 5F 63 6C 65 61 72 28 29 0D 0A /....V_clear()..
019790: 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 41 4C 4C {.. inline(CALL
0197A0: 2C 20 30 78 42 43 31 34 29 3B 0D 0A 7D 0D 0A 0D , 0xBC14);..}...
0197B0: 0A 0D 0A 2F 2A 20 20 61 73 6B 20 74 68 65 20 73 .../* ask the s
0197C0: 69 7A 65 20 6F 66 20 74 68 65 20 73 63 72 65 65 ize of the scree
0197D0: 6E 20 69 6E 20 63 68 61 72 61 63 74 65 72 73 20 n in characters
0197E0: 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 */../*.. ret
0197F0: 75 72 6E 73 20 74 68 65 20 6C 61 73 74 20 63 6F urns the last co
019800: 6C 75 6D 6E 20 28 43 43 29 20 61 6E 64 20 6C 61 lumn (CC) and la
019810: 73 74 20 72 6F 77 20 28 52 52 29 20 65 6E 63 6F st row (RR) enco
019820: 64 65 64 20 61 73 20 30 78 43 43 52 52 0D 0A 2A ded as 0xCCRR..*
019830: 2F 0D 0A 0D 0A 69 6E 74 20 56 5F 63 68 61 72 5F /....int V_char_
019840: 6C 69 6D 69 74 73 28 29 0D 0A 7B 0D 0A 20 20 69 limits()..{.. i
019850: 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C nline(.. CALL
019860: 2C 20 20 20 20 20 20 20 30 78 42 43 31 37 2C 0D , 0xBC17,.
019870: 0A 20 20 20 20 4C 44 5F 42 43 5F 69 6E 74 6F 2C . LD_BC_into,
019880: 20 26 72 65 67 5F 62 63 29 3B 0D 0A 20 20 72 65 ®_bc);.. re
019890: 74 75 72 6E 20 72 65 67 5F 62 63 3B 0D 0A 7D 0D turn reg_bc;..}.
0198A0: 0A 0D 0A 0D 0A 2F 2A 20 20 63 6F 6E 76 65 72 74 ...../* convert
0198B0: 20 54 65 78 74 20 56 44 55 20 63 6F 6F 72 64 69 Text VDU coordi
0198C0: 6E 61 74 65 73 20 74 6F 20 61 20 73 63 72 65 65 nates to a scree
0198D0: 6E 20 70 6F 73 69 74 69 6F 6E 20 28 61 6E 64 20 n position (and
0198E0: 77 69 64 74 68 29 20 20 2A 2F 0D 0A 0D 0A 69 6E width) */....in
0198F0: 74 20 56 5F 63 68 61 72 5F 70 6F 73 69 74 69 6F t V_char_positio
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: 6E 28 72 6F 77 2C 20 63 6F 6C 75 6D 6E 29 0D 0A n(row, column)..
019B10: 7B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 28 63 {.. reg_hl = (c
019B20: 6F 6C 75 6D 6E 20 3C 3C 20 38 29 20 2B 20 72 6F olumn << 8) + ro
019B30: 77 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 w;.. inline(..
019B40: 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 LD_HL_from, &
019B50: 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C reg_hl,.. CAL
019B60: 4C 2C 20 20 20 20 20 20 20 30 78 42 43 31 41 2C L, 0xBC1A,
019B70: 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F .. LD_HL_into
019B80: 2C 20 26 72 65 67 5F 68 6C 29 3B 0D 0A 20 20 72 , ®_hl);.. r
019B90: 65 74 75 72 6E 20 72 65 67 5F 68 6C 3B 0D 0A 7D eturn reg_hl;..}
019BA0: 0D 0A 0D 0A 0D 0A 69 6E 74 20 56 5F 63 68 61 72 ......int V_char
019BB0: 5F 77 69 64 74 68 28 29 0D 0A 7B 0D 0A 20 20 69 _width()..{.. i
019BC0: 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C nline(.. CALL
019BD0: 2C 20 20 20 20 20 20 20 30 78 42 43 31 41 2C 0D , 0xBC1A,.
019BE0: 0A 20 20 20 20 4C 44 5F 42 43 5F 69 6E 74 6F 2C . LD_BC_into,
019BF0: 20 26 72 65 67 5F 62 63 29 3B 0D 0A 20 20 72 65 ®_bc);.. re
019C00: 74 75 72 6E 20 28 72 65 67 5F 62 63 20 3E 3E 20 turn (reg_bc >>
019C10: 38 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 8);..}....../*
019C20: 63 6F 6E 76 65 72 74 20 47 72 61 70 68 69 63 73 convert Graphics
019C30: 20 56 44 55 20 63 6F 6F 72 64 69 6E 61 74 65 73 VDU coordinates
019C40: 20 74 6F 20 61 20 73 63 72 65 65 6E 20 70 6F 73 to a screen pos
019C50: 69 74 69 6F 6E 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 ition */../*..
019C60: 20 20 20 56 5F 64 6F 74 5F 70 6F 73 69 74 69 6F V_dot_positio
019C70: 6E 20 64 6F 65 73 20 61 73 20 64 65 73 63 72 69 n does as descri
019C80: 62 65 64 2C 0D 0A 20 20 20 20 56 5F 64 6F 74 5F bed,.. V_dot_
019C90: 61 75 78 20 20 20 72 65 74 75 72 6E 73 20 6D 61 aux returns ma
019CA0: 73 6B 20 28 4D 4D 29 20 61 6E 64 20 70 69 78 65 sk (MM) and pixe
019CB0: 6C 73 5F 69 6E 5F 62 79 74 65 20 2D 20 31 20 28 ls_in_byte - 1 (
019CC0: 50 50 29 20 65 6E 63 6F 64 65 64 20 61 73 20 30 PP) encoded as 0
019CD0: 78 50 50 4D 4D 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 xPPMM..*/....int
019CE0: 20 56 5F 64 6F 74 5F 70 6F 73 69 74 69 6F 6E 28 V_dot_position(
019CF0: 78 2C 20 79 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F x, y)..{.. reg_
019D00: 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 20 20 /* * * * * *
019D10: 20 20 46 20 49 20 52 20 4D 20 57 20 41 20 52 20 F I R M W A R
019D20: 45 20 2E 20 4C 20 49 20 42 20 20 20 20 20 20 2A E . L I B *
019D30: 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 2F 2A 20 * * * * */../*
019D40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019D50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019D60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019D70: 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 */../*
019D80: 20 20 20 20 20 46 20 49 20 52 20 4D 20 33 20 20 F I R M 3
019D90: 2D 20 20 53 63 72 65 65 6E 20 50 61 63 6B 20 20 - Screen Pack
019DA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019DB0: 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 */../*
019DC0: 20 20 20 20 20 20 20 20 43 6F 70 79 72 69 67 68 Copyrigh
019DD0: 74 20 28 43 29 20 31 39 38 35 20 48 69 53 6F 66 t (C) 1985 HiSof
019DE0: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t
019DF0: 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 20 */../*
019E00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019E10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
019E20: 20 20 20 20 20 20 20 20 20 20 20 20 20 2A 2F 0D */.
019E30: 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 ./* * * * * * *
019E40: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
019E50: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
019E60: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 0D 0A * * * * * */....
019E70: 0D 0A 0D 0A 0D 0A 2F 2A 2A 20 20 53 43 52 45 45 ....../** SCREE
019E80: 4E 20 50 41 43 4B 20 49 4E 54 45 52 46 41 43 45 N PACK INTERFACE
019E90: 20 46 55 4E 43 54 49 4F 4E 53 20 20 2A 2A 2F 0D FUNCTIONS **/.
019EA0: 0A 0D 0A 0D 0A 2F 2A 20 20 49 6E 69 74 69 61 6C ...../* Initial
019EB0: 69 73 65 20 74 68 65 20 53 63 72 65 65 6E 20 50 ise the Screen P
019EC0: 61 63 6B 20 20 2A 2F 0D 0A 0D 0A 56 5F 69 6E 69 ack */....V_ini
019ED0: 74 69 61 6C 69 73 65 28 29 0D 0A 7B 0D 0A 20 20 tialise()..{..
019EE0: 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 42 inline(CALL, 0xB
019EF0: 42 46 46 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A BFF);..}....../*
019F00: 64 65 20 3D 20 78 3B 0D 0A 20 20 72 65 67 5F 68 de = x;.. reg_h
019F10: 6C 20 3D 20 79 3B 0D 0A 20 20 69 6E 6C 69 6E 65 l = y;.. inline
019F20: 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F (.. LD_DE_fro
019F30: 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 m, ®_de,..
019F40: 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 LD_HL_from, &re
019F50: 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C g_hl,.. CALL,
019F60: 20 20 20 20 20 20 20 30 78 42 43 31 44 2C 0D 0A 0xBC1D,..
019F70: 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C 20 LD_HL_into,
019F80: 26 72 65 67 5F 68 6C 29 3B 0D 0A 20 20 72 65 74 ®_hl);.. ret
019F90: 75 72 6E 20 72 65 67 5F 68 6C 3B 0D 0A 7D 0D 0A urn reg_hl;..}..
019FA0: 0D 0A 0D 0A 69 6E 74 20 56 5F 64 6F 74 5F 61 75 ....int V_dot_au
019FB0: 78 28 78 2C 20 79 29 0D 0A 7B 0D 0A 20 20 72 65 x(x, y)..{.. re
019FC0: 67 5F 64 65 20 3D 20 78 3B 0D 0A 20 20 72 65 67 g_de = x;.. reg
019FD0: 5F 68 6C 20 3D 20 79 3B 0D 0A 20 20 69 6E 6C 69 _hl = y;.. inli
019FE0: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 ne(.. LD_DE_f
019FF0: 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 rom, ®_de,..
01A000: 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 LD_HL_from, &
01A010: 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C reg_hl,.. CAL
01A020: 4C 2C 20 20 20 20 20 20 20 30 78 42 43 31 44 2C L, 0xBC1D,
01A030: 0D 0A 20 20 20 20 4C 44 5F 42 43 5F 69 6E 74 6F .. LD_BC_into
01A040: 2C 20 26 72 65 67 5F 62 63 29 3B 0D 0A 20 20 72 , ®_bc);.. r
01A050: 65 74 75 72 6E 20 72 65 67 5F 62 63 3B 0D 0A 7D eturn reg_bc;..}
01A060: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 63 61 6C 63 75 6C ....../* calcul
01A070: 61 74 65 20 74 68 65 20 73 63 72 65 65 6E 20 61 ate the screen a
01A080: 64 64 72 65 73 73 20 74 6F 20 74 68 65 20 72 69 ddress to the ri
01A090: 67 68 74 20 6F 66 20 74 68 65 20 67 69 76 65 6E ght of the given
01A0A0: 20 73 63 72 65 65 6E 20 61 64 64 72 65 73 73 20 screen address
01A0B0: 20 2A 2F 0D 0A 0D 0A 69 6E 74 20 56 5F 6E 65 78 */....int V_nex
01A0C0: 74 5F 62 79 74 65 28 61 64 64 72 65 73 73 29 0D t_byte(address).
01A0D0: 0A 7B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 61 .{.. reg_hl = a
01A0E0: 64 64 72 65 73 73 3B 0D 0A 20 20 69 6E 6C 69 6E ddress;.. inlin
01A0F0: 65 28 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 e(.. LD_HL_fr
01A100: 20 20 52 65 73 65 74 20 74 68 65 20 53 63 72 65 Reset the Scre
01A110: 65 6E 20 50 61 63 6B 20 20 2A 2F 0D 0A 0D 0A 56 en Pack */....V
01A120: 5F 72 65 73 65 74 28 29 0D 0A 7B 0D 0A 20 20 69 _reset()..{.. i
01A130: 6E 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 42 43 nline(CALL, 0xBC
01A140: 30 32 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 02);..}....../*
01A150: 20 73 65 74 20 74 68 65 20 6F 66 66 73 65 74 20 set the offset
01A160: 6F 66 20 74 68 65 20 73 74 61 72 74 20 6F 66 20 of the start of
01A170: 74 68 65 20 73 63 72 65 65 6E 20 20 2A 2F 0D 0A the screen */..
01A180: 0D 0A 56 5F 73 65 74 5F 6F 66 66 73 65 74 28 6F ..V_set_offset(o
01A190: 66 66 73 65 74 29 0D 0A 7B 0D 0A 20 20 72 65 67 ffset)..{.. reg
01A1A0: 5F 68 6C 20 3D 20 6F 66 66 73 65 74 3B 0D 0A 20 _hl = offset;..
01A1B0: 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 inline(.. LD
01A1C0: 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 _HL_from, ®_h
01A1D0: 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 l,.. CALL,
01A1E0: 20 20 20 20 30 78 42 43 30 35 29 3B 0D 0A 7D 0D 0xBC05);..}.
01A1F0: 0A 0D 0A 0D 0A 2F 2A 20 20 73 65 74 20 74 68 65 ...../* set the
01A200: 20 61 72 65 61 20 6F 66 20 52 41 4D 20 74 6F 20 area of RAM to
01A210: 75 73 65 20 66 6F 72 20 73 63 72 65 65 6E 20 6D use for screen m
01A220: 65 6D 6F 72 79 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 emory */../*..
01A230: 20 20 20 71 75 61 64 72 61 6E 74 20 6C 6F 63 61 quadrant loca
01A240: 74 65 73 20 73 63 72 65 65 6E 20 6D 65 6D 6F 72 tes screen memor
01A250: 79 20 62 61 73 65 20 61 73 20 66 6F 6C 6C 6F 77 y base as follow
01A260: 73 3A 0D 0A 20 20 20 20 20 20 30 20 20 20 20 30 s:.. 0 0
01A270: 78 30 30 30 30 0D 0A 20 20 20 20 20 20 31 20 20 x0000.. 1
01A280: 20 20 30 78 34 30 30 30 0D 0A 20 20 20 20 20 20 0x4000..
01A290: 32 20 20 20 20 30 78 38 30 30 30 0D 0A 20 20 20 2 0x8000..
01A2A0: 20 20 20 33 20 20 20 20 30 78 43 30 30 30 0D 0A 3 0xC000..
01A2B0: 2A 2F 0D 0A 0D 0A 56 5F 73 65 74 5F 62 61 73 65 */....V_set_base
01A2C0: 28 71 75 61 64 72 61 6E 74 29 0D 0A 7B 0D 0A 20 (quadrant)..{..
01A2D0: 20 72 65 67 5F 61 20 3D 20 28 71 75 61 64 72 61 reg_a = (quadra
01A2E0: 6E 74 20 26 20 33 29 20 3C 3C 20 36 3B 0D 0A 20 nt & 3) << 6;..
01A2F0: 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 inline(.. LD
01A300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01A310: 16 00 00 00 02 09 4E E5 16 00 41 02 00 00 00 02 ......N...A.....
01A320: 16 00 46 02 00 00 00 02 16 00 42 02 00 00 00 02 ..F.......B.....
01A330: 16 00 47 02 00 00 00 02 16 00 43 02 00 00 00 02 ..G.......C.....
01A340: 16 00 48 02 00 00 00 02 16 00 44 02 00 00 00 02 ..H.......D.....
01A350: 16 00 49 02 00 00 00 02 16 00 45 02 00 00 00 02 ..I.......E.....
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: 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 om, ®_hl,..
01A410: 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 CALL, 0x
01A420: 42 43 32 30 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C BC20,.. LD_HL
01A430: 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 68 6C 29 3B _into, ®_hl);
01A440: 0D 0A 20 20 72 65 74 75 72 6E 20 72 65 67 5F 68 .. return reg_h
01A450: 6C 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 63 l;..}....../* c
01A460: 61 6C 63 75 6C 61 74 65 20 74 68 65 20 73 63 72 alculate the scr
01A470: 65 65 6E 20 61 64 64 72 65 73 73 20 74 6F 20 74 een address to t
01A480: 68 65 20 6C 65 66 74 20 6F 66 20 74 68 65 20 67 he left of the g
01A490: 69 76 65 6E 20 73 63 72 65 65 6E 20 61 64 64 72 iven screen addr
01A4A0: 65 73 73 20 20 2A 2F 0D 0A 0D 0A 69 6E 74 20 56 ess */....int V
01A4B0: 5F 70 72 65 76 5F 62 79 74 65 28 61 64 64 72 65 _prev_byte(addre
01A4C0: 73 73 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 68 6C ss)..{.. reg_hl
01A4D0: 20 3D 20 61 64 64 72 65 73 73 3B 0D 0A 20 20 69 = address;.. i
01A4E0: 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 48 nline(.. LD_H
01A4F0: 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C L_from, ®_hl,
01A500: 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 .. CALL,
01A510: 20 20 30 78 42 43 32 33 2C 0D 0A 20 20 20 20 4C 0xBC23,.. L
01A520: 44 5F 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F D_HL_into, ®_
01A530: 68 6C 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 72 hl);.. return r
01A540: 65 67 5F 68 6C 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F eg_hl;..}....../
01A550: 2A 20 20 63 61 6C 63 75 6C 61 74 65 20 74 68 65 * calculate the
01A560: 20 73 63 72 65 65 6E 20 61 64 64 72 65 73 73 20 screen address
01A570: 62 65 6C 6F 77 20 74 68 61 74 20 6F 66 20 74 68 below that of th
01A580: 65 20 67 69 76 65 6E 20 73 63 72 65 65 6E 20 61 e given screen a
01A590: 64 64 72 65 73 73 20 20 2A 2F 0D 0A 0D 0A 69 6E ddress */....in
01A5A0: 74 20 56 5F 6E 65 78 74 5F 6C 69 6E 65 28 61 64 t V_next_line(ad
01A5B0: 64 72 65 73 73 29 0D 0A 7B 0D 0A 20 20 72 65 67 dress)..{.. reg
01A5C0: 5F 68 6C 20 3D 20 61 64 64 72 65 73 73 3B 0D 0A _hl = address;..
01A5D0: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C inline(.. L
01A5E0: 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F D_HL_from, ®_
01A5F0: 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 hl,.. CALL,
01A600: 46 46 29 20 61 6E 64 20 73 65 63 6F 6E 64 20 28 FF) and second (
01A610: 53 53 29 20 70 65 72 69 6F 64 73 20 65 6E 63 6F SS) periods enco
01A620: 64 65 64 20 74 68 75 73 20 30 78 46 46 53 53 0D ded thus 0xFFSS.
01A630: 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 56 5F 67 65 74 .*/....int V_get
01A640: 5F 66 6C 61 73 68 69 6E 67 28 29 0D 0A 7B 0D 0A _flashing()..{..
01A650: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 43 inline(.. C
01A660: 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 43 34 ALL, 0xBC4
01A670: 31 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 1,.. LD_HL_in
01A680: 74 6F 2C 20 26 72 65 67 5F 68 6C 29 3B 0D 0A 20 to, ®_hl);..
01A690: 20 72 65 74 75 72 6E 20 72 65 67 5F 68 6C 3B 0D return reg_hl;.
01A6A0: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 46 69 6C 6C .}....../* Fill
01A6B0: 20 61 6E 20 61 72 65 61 20 6F 66 20 74 68 65 20 an area of the
01A6C0: 73 63 72 65 65 6E 20 77 69 74 68 20 61 6E 20 69 screen with an i
01A6D0: 6E 6B 20 28 64 65 6C 69 6D 69 74 65 64 20 62 79 nk (delimited by
01A6E0: 20 63 68 61 72 61 63 74 65 72 20 70 6F 73 29 20 character pos)
01A6F0: 20 2A 2F 0D 0A 0D 0A 56 5F 66 69 6C 6C 5F 62 6F */....V_fill_bo
01A700: 78 28 69 6E 6B 2C 20 6C 65 66 74 2C 20 72 69 67 x(ink, left, rig
01A710: 68 74 2C 20 74 6F 70 2C 20 62 6F 74 74 6F 6D 29 ht, top, bottom)
01A720: 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 20 3D 20 ..{.. reg_a =
01A730: 69 6E 6B 3B 0D 0A 20 20 72 65 67 5F 64 65 20 3D ink;.. reg_de =
01A740: 20 28 72 69 67 68 74 20 3C 3C 20 38 29 20 2B 20 (right << 8) +
01A750: 62 6F 74 74 6F 6D 3B 0D 0A 20 20 72 65 67 5F 68 bottom;.. reg_h
01A760: 6C 20 3D 20 28 6C 65 66 74 20 20 3C 3C 20 38 29 l = (left << 8)
01A770: 20 2B 20 74 6F 70 3B 0D 0A 20 20 69 6E 6C 69 6E + top;.. inlin
01A780: 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F e(.. LD_A_fro
01A790: 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 m, ®_a,..
01A7A0: 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 LD_DE_from, &re
01A7B0: 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C g_de,.. LD_HL
01A7C0: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D _from, ®_hl,.
01A7D0: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
01A7E0: 20 30 78 42 43 34 34 29 3B 0D 0A 7D 0D 0A 0D 0A 0xBC44);..}....
01A7F0: 0D 0A 2F 2A 20 20 46 69 6C 6C 20 61 6E 20 61 72 ../* Fill an ar
01A800: 20 20 20 20 20 30 78 42 43 32 36 2C 0D 0A 20 20 0xBC26,..
01A810: 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C 20 26 72 LD_HL_into, &r
01A820: 65 67 5F 68 6C 29 3B 0D 0A 20 20 72 65 74 75 72 eg_hl);.. retur
01A830: 6E 20 72 65 67 5F 68 6C 3B 0D 0A 7D 0D 0A 0D 0A n reg_hl;..}....
01A840: 0D 0A 2F 2A 20 20 63 61 6C 63 75 6C 61 74 65 20 ../* calculate
01A850: 74 68 65 20 73 63 72 65 65 6E 20 61 64 64 72 65 the screen addre
01A860: 73 73 20 61 62 6F 76 65 20 74 68 61 74 20 6F 66 ss above that of
01A870: 20 74 68 65 20 67 69 76 65 6E 20 73 63 72 65 65 the given scree
01A880: 6E 20 61 64 64 72 65 73 73 20 20 2A 2F 0D 0A 0D n address */...
01A890: 0A 69 6E 74 20 56 5F 70 72 65 76 5F 6C 69 6E 65 .int V_prev_line
01A8A0: 28 61 64 64 72 65 73 73 29 0D 0A 7B 0D 0A 20 20 (address)..{..
01A8B0: 72 65 67 5F 68 6C 20 3D 20 61 64 64 72 65 73 73 reg_hl = address
01A8C0: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
01A8D0: 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 LD_HL_from, &r
01A8E0: 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C eg_hl,.. CALL
01A8F0: 2C 20 20 20 20 20 20 20 30 78 42 43 32 39 2C 0D , 0xBC29,.
01A900: 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C . LD_HL_into,
01A910: 20 26 72 65 67 5F 68 6C 29 3B 0D 0A 20 20 72 65 ®_hl);.. re
01A920: 74 75 72 6E 20 72 65 67 5F 68 6C 3B 0D 0A 7D 0D turn reg_hl;..}.
01A930: 0A 0D 0A 0D 0A 2F 2A 20 20 65 6E 63 6F 64 65 20 ...../* encode
01A940: 61 6E 20 69 6E 6B 20 74 6F 20 63 6F 76 65 72 20 an ink to cover
01A950: 61 6C 6C 20 70 69 78 65 6C 73 20 69 6E 20 61 20 all pixels in a
01A960: 62 79 74 65 20 20 2A 2F 0D 0A 0D 0A 69 6E 74 20 byte */....int
01A970: 56 5F 69 6E 6B 5F 65 6E 63 6F 64 65 28 69 6E 6B V_ink_encode(ink
01A980: 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 )..{.. reg_a =
01A990: 69 6E 6B 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D ink;.. inline(.
01A9A0: 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 . LD_A_from,
01A9B0: 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C ®_a,.. CAL
01A9C0: 4C 2C 20 20 20 20 20 20 30 78 42 43 32 43 2C 0D L, 0xBC2C,.
01A9D0: 0A 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 . LD_A_into,
01A9E0: 26 72 65 67 5F 61 29 3B 0D 0A 20 20 72 65 74 75 ®_a);.. retu
01A9F0: 72 6E 20 72 65 67 5F 61 3B 0D 0A 7D 0D 0A 0D 0A rn reg_a;..}....
01AA00: 65 61 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E ea of the screen
01AA10: 20 77 69 74 68 20 61 6E 20 69 6E 6B 20 28 62 79 with an ink (by
01AA20: 74 65 73 29 20 20 2A 2F 0D 0A 0D 0A 56 5F 66 6C tes) */....V_fl
01AA30: 6F 6F 64 5F 62 6F 78 28 69 6E 6B 2C 20 74 6F 70 ood_box(ink, top
01AA40: 5F 6C 65 66 74 5F 61 64 64 72 65 73 73 2C 20 77 _left_address, w
01AA50: 69 64 74 68 5F 69 6E 5F 62 79 74 65 73 2C 20 68 idth_in_bytes, h
01AA60: 65 69 67 68 74 5F 69 6E 5F 6C 69 6E 65 73 29 0D eight_in_lines).
01AA70: 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 20 3D 20 69 .{.. reg_a = i
01AA80: 6E 6B 3B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 nk;.. reg_de =
01AA90: 28 77 69 64 74 68 5F 69 6E 5F 62 79 74 65 73 20 (width_in_bytes
01AAA0: 3C 3C 20 38 29 20 2B 20 68 65 69 67 68 74 5F 69 << 8) + height_i
01AAB0: 6E 5F 6C 69 6E 65 73 3B 0D 0A 20 20 72 65 67 5F n_lines;.. reg_
01AAC0: 68 6C 20 3D 20 74 6F 70 5F 6C 65 66 74 5F 61 64 hl = top_left_ad
01AAD0: 64 72 65 73 73 3B 0D 0A 20 20 69 6E 6C 69 6E 65 dress;.. inline
01AAE0: 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D (.. LD_A_from
01AAF0: 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 , ®_a,..
01AB00: 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_DE_from, ®
01AB10: 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F _de,.. LD_HL_
01AB20: 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A from, ®_hl,..
01AB30: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
01AB40: 30 78 42 43 34 37 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0xBC47);..}.....
01AB50: 0A 2F 2A 20 20 53 77 61 70 20 74 77 6F 20 69 6E ./* Swap two in
01AB60: 6B 73 20 6F 76 65 72 20 61 74 20 61 20 63 68 61 ks over at a cha
01AB70: 72 61 63 74 65 72 20 70 6F 73 69 74 69 6F 6E 20 racter position
01AB80: 20 2A 2F 0D 0A 0D 0A 56 5F 63 68 61 72 5F 69 6E */....V_char_in
01AB90: 76 65 72 74 28 69 6E 6B 31 2C 20 69 6E 6B 32 2C vert(ink1, ink2,
01ABA0: 20 72 6F 77 2C 20 63 6F 6C 75 6D 6E 29 0D 0A 7B row, column)..{
01ABB0: 0D 0A 20 20 72 65 67 5F 62 63 20 3D 20 28 69 6E .. reg_bc = (in
01ABC0: 6B 31 20 3C 3C 20 38 29 20 2B 20 69 6E 6B 32 3B k1 << 8) + ink2;
01ABD0: 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 28 63 6F .. reg_hl = (co
01ABE0: 6C 75 6D 6E 20 3C 3C 20 38 29 20 2B 20 72 6F 77 lumn << 8) + row
01ABF0: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
01AC00: 0D 0A 0D 0A 2F 2A 20 20 64 65 63 6F 64 65 20 61 ..../* decode a
01AC10: 6E 20 65 6E 63 6F 64 65 64 20 69 6E 6B 20 74 6F n encoded ink to
01AC20: 20 74 68 65 20 61 70 70 72 6F 70 72 69 61 74 65 the appropriate
01AC30: 20 69 6E 6B 20 6E 75 6D 62 65 72 20 20 2A 2F 0D ink number */.
01AC40: 0A 0D 0A 69 6E 74 20 56 5F 69 6E 6B 5F 64 65 63 ...int V_ink_dec
01AC50: 6F 64 65 28 69 6E 6B 29 0D 0A 7B 0D 0A 20 20 72 ode(ink)..{.. r
01AC60: 65 67 5F 61 20 3D 20 69 6E 6B 3B 0D 0A 20 20 69 eg_a = ink;.. i
01AC70: 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 nline(.. LD_A
01AC80: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A _from, ®_a,..
01AC90: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 CALL, 0
01ACA0: 78 42 43 32 46 2C 0D 0A 20 20 20 20 4C 44 5F 41 xBC2F,.. LD_A
01ACB0: 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 61 29 3B 0D _into, ®_a);.
01ACC0: 0A 20 20 72 65 74 75 72 6E 20 72 65 67 5F 61 3B . return reg_a;
01ACD0: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 73 65 74 ..}....../* set
01ACE0: 20 74 68 65 20 63 6F 6C 6F 75 72 73 20 74 6F 20 the colours to
01ACF0: 64 69 73 70 6C 61 79 20 61 6E 20 69 6E 6B 20 20 display an ink
01AD00: 2A 2F 0D 0A 0D 0A 56 5F 73 65 74 5F 69 6E 6B 28 */....V_set_ink(
01AD10: 69 6E 6B 2C 20 66 69 72 73 74 5F 63 6F 6C 6F 75 ink, first_colou
01AD20: 72 2C 20 73 65 63 6F 6E 64 5F 63 6F 6C 6F 75 72 r, second_colour
01AD30: 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 20 3D )..{.. reg_a =
01AD40: 20 69 6E 6B 3B 0D 0A 20 20 72 65 67 5F 62 63 20 ink;.. reg_bc
01AD50: 3D 20 28 66 69 72 73 74 5F 63 6F 6C 6F 75 72 20 = (first_colour
01AD60: 3C 3C 20 38 29 20 2B 20 73 65 63 6F 6E 64 5F 63 << 8) + second_c
01AD70: 6F 6C 6F 75 72 3B 0D 0A 20 20 69 6E 6C 69 6E 65 olour;.. inline
01AD80: 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D (.. LD_A_from
01AD90: 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 , ®_a,..
01ADA0: 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_BC_from, ®
01ADB0: 5F 62 63 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 _bc,.. CALL,
01ADC0: 20 20 20 20 20 20 30 78 42 43 33 32 29 3B 0D 0A 0xBC32);..
01ADD0: 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 41 73 6B 20 74 }....../* Ask t
01ADE0: 68 65 20 63 6F 6C 6F 75 72 73 20 61 6E 20 69 6E he colours an in
01ADF0: 6B 20 69 73 20 63 75 72 72 65 6E 74 6C 79 20 64 k is currently d
01AE00: 20 20 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 LD_BC_from, &r
01AE10: 65 67 5F 62 63 2C 0D 0A 20 20 20 20 4C 44 5F 48 eg_bc,.. LD_H
01AE20: 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C L_from, ®_hl,
01AE30: 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 .. CALL,
01AE40: 20 20 30 78 42 43 34 41 29 3B 0D 0A 7D 0D 0A 0D 0xBC4A);..}...
01AE50: 0A 0D 0A 2F 2A 20 20 4D 6F 76 65 20 74 68 65 20 .../* Move the
01AE60: 77 68 6F 6C 65 20 73 63 72 65 65 6E 20 75 70 20 whole screen up
01AE70: 6F 72 20 64 6F 77 6E 20 6F 6E 65 20 63 68 61 72 or down one char
01AE80: 61 63 74 65 72 20 68 65 69 67 68 74 20 20 2A 2F acter height */
01AE90: 0D 0A 2F 2A 0D 0A 20 20 20 20 73 63 72 65 65 6E ../*.. screen
01AEA0: 5F 69 73 5F 74 6F 5F 72 6F 6C 6C 5F 75 70 20 73 _is_to_roll_up s
01AEB0: 68 6F 75 6C 64 20 62 65 20 54 52 55 45 20 6F 72 hould be TRUE or
01AEC0: 20 46 41 4C 53 45 20 61 73 20 61 70 70 72 6F 70 FALSE as approp
01AED0: 72 69 61 74 65 0D 0A 2A 2F 0D 0A 0D 0A 56 5F 68 riate..*/....V_h
01AEE0: 77 5F 72 6F 6C 6C 28 69 6E 6B 2C 20 73 63 72 65 w_roll(ink, scre
01AEF0: 65 6E 5F 69 73 5F 74 6F 5F 72 6F 6C 6C 5F 75 70 en_is_to_roll_up
01AF00: 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 20 3D )..{.. reg_a =
01AF10: 20 69 6E 6B 3B 0D 0A 20 20 72 65 67 5F 62 63 20 ink;.. reg_bc
01AF20: 3D 20 73 63 72 65 65 6E 5F 69 73 5F 74 6F 5F 72 = screen_is_to_r
01AF30: 6F 6C 6C 5F 75 70 20 20 3F 20 20 30 78 46 46 30 oll_up ? 0xFF0
01AF40: 30 20 20 3A 20 20 30 20 20 3B 0D 0A 20 20 69 6E 0 : 0 ;.. in
01AF50: 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F line(.. LD_A_
01AF60: 66 72 6F 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A from, ®_a,..
01AF70: 20 20 20 20 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 LD_BC_from,
01AF80: 26 72 65 67 5F 62 63 2C 0D 0A 20 20 20 20 43 41 ®_bc,.. CA
01AF90: 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 43 34 44 LL, 0xBC4D
01AFA0: 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 );..}......../*
01AFB0: 20 4D 6F 76 65 20 61 6E 20 61 72 65 61 20 6F 66 Move an area of
01AFC0: 20 74 68 65 20 73 63 72 65 65 6E 20 75 70 20 6F the screen up o
01AFD0: 72 20 64 6F 77 6E 20 6F 6E 65 20 63 68 61 72 61 r down one chara
01AFE0: 63 74 65 72 20 68 65 69 67 68 74 20 20 2A 2F 0D cter height */.
01AFF0: 0A 2F 2A 0D 0A 20 20 20 20 73 63 72 65 65 6E 5F ./*.. screen_
01B000: 69 73 70 6C 61 79 65 64 20 69 6E 20 20 2A 2F 0D isplayed in */.
01B010: 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 ./*.. returns
01B020: 20 66 69 72 73 74 20 28 46 46 29 20 61 6E 64 20 first (FF) and
01B030: 73 65 63 6F 6E 64 20 28 53 53 29 20 63 6F 6C 6F second (SS) colo
01B040: 75 72 20 65 6E 63 6F 64 65 64 20 74 68 75 73 20 ur encoded thus
01B050: 30 78 46 46 53 53 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 0xFFSS..*/....in
01B060: 74 20 56 5F 67 65 74 5F 69 6E 6B 28 69 6E 6B 29 t V_get_ink(ink)
01B070: 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 20 3D 20 ..{.. reg_a =
01B080: 69 6E 6B 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D ink;.. inline(.
01B090: 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 . LD_A_from,
01B0A0: 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 43 41 ®_a,.. CA
01B0B0: 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 43 33 35 LL, 0xBC35
01B0C0: 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 5F 69 6E 74 ,.. LD_BC_int
01B0D0: 6F 2C 20 26 72 65 67 5F 62 63 29 3B 0D 0A 20 20 o, ®_bc);..
01B0E0: 72 65 74 75 72 6E 20 72 65 67 5F 62 63 3B 0D 0A return reg_bc;..
01B0F0: 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 73 65 74 20 74 }....../* set t
01B100: 68 65 20 63 6F 6C 6F 75 72 73 20 74 6F 20 64 69 he colours to di
01B110: 73 70 6C 61 79 20 74 68 65 20 62 6F 72 64 65 72 splay the border
01B120: 20 69 6E 20 20 2A 2F 0D 0A 0D 0A 56 5F 73 65 74 in */....V_set
01B130: 5F 62 6F 72 64 65 72 28 66 69 72 73 74 5F 63 6F _border(first_co
01B140: 6C 6F 75 72 2C 20 73 65 63 6F 6E 64 5F 63 6F 6C lour, second_col
01B150: 6F 75 72 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 62 our)..{.. reg_b
01B160: 63 20 3D 20 28 66 69 72 73 74 5F 63 6F 6C 6F 75 c = (first_colou
01B170: 72 20 3C 3C 20 38 29 20 2B 20 73 65 63 6F 6E 64 r << 8) + second
01B180: 5F 63 6F 6C 6F 75 72 3B 0D 0A 20 20 69 6E 6C 69 _colour;.. inli
01B190: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 42 43 5F 66 ne(.. LD_BC_f
01B1A0: 72 6F 6D 2C 20 26 72 65 67 5F 62 63 2C 0D 0A 20 rom, ®_bc,..
01B1B0: 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 CALL, 0
01B1C0: 78 42 43 33 38 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A xBC38);..}......
01B1D0: 2F 2A 20 20 41 73 6B 20 74 68 65 20 63 6F 6C 6F /* Ask the colo
01B1E0: 75 72 73 20 74 68 65 20 62 6F 72 64 65 72 20 69 urs the border i
01B1F0: 73 20 63 75 72 72 65 6E 74 6C 79 20 64 69 73 70 s currently disp
01B200: 69 73 5F 74 6F 5F 72 6F 6C 6C 5F 75 70 20 73 68 is_to_roll_up sh
01B210: 6F 75 6C 64 20 62 65 20 54 52 55 45 20 6F 72 20 ould be TRUE or
01B220: 46 41 4C 53 45 20 61 73 20 61 70 70 72 6F 70 72 FALSE as appropr
01B230: 69 61 74 65 0D 0A 2A 2F 0D 0A 0D 0A 56 5F 73 77 iate..*/....V_sw
01B240: 5F 72 6F 6C 6C 28 69 6E 6B 2C 20 73 63 72 65 65 _roll(ink, scree
01B250: 6E 5F 69 73 5F 74 6F 5F 72 6F 6C 6C 5F 75 70 2C n_is_to_roll_up,
01B260: 20 6C 65 66 74 2C 20 72 69 67 68 74 2C 20 74 6F left, right, to
01B270: 70 2C 20 62 6F 74 74 6F 6D 29 0D 0A 7B 0D 0A 20 p, bottom)..{..
01B280: 20 72 65 67 5F 61 20 20 3D 20 69 6E 6B 3B 0D 0A reg_a = ink;..
01B290: 20 20 72 65 67 5F 62 63 20 3D 20 73 63 72 65 65 reg_bc = scree
01B2A0: 6E 5F 69 73 5F 74 6F 5F 72 6F 6C 6C 5F 75 70 20 n_is_to_roll_up
01B2B0: 20 3F 20 20 30 78 46 46 30 30 20 20 3A 20 20 30 ? 0xFF00 : 0
01B2C0: 20 20 3B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 ;.. reg_de =
01B2D0: 28 72 69 67 68 74 20 3C 3C 20 38 29 20 2B 20 62 (right << 8) + b
01B2E0: 6F 74 74 6F 6D 3B 0D 0A 20 20 72 65 67 5F 68 6C ottom;.. reg_hl
01B2F0: 20 3D 20 28 6C 65 66 74 20 20 3C 3C 20 38 29 20 = (left << 8)
01B300: 2B 20 74 6F 70 3B 0D 0A 20 20 20 69 6E 6C 69 6E + top;.. inlin
01B310: 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F e(.. LD_A_fro
01B320: 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 m, ®_a,..
01B330: 20 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 LD_BC_from, &re
01B340: 67 5F 62 63 2C 0D 0A 20 20 20 20 4C 44 5F 44 45 g_bc,.. LD_DE
01B350: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D _from, ®_de,.
01B360: 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C . LD_HL_from,
01B370: 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 ®_hl,.. C
01B380: 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 43 35 ALL, 0xBC5
01B390: 30 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 0);..}....../*
01B3A0: 45 78 70 61 6E 64 20 61 20 63 68 61 72 61 63 74 Expand a charact
01B3B0: 65 72 20 6D 61 74 72 69 78 20 66 6F 72 20 74 68 er matrix for th
01B3C0: 65 20 63 75 72 72 65 6E 74 20 73 63 72 65 65 6E e current screen
01B3D0: 20 6D 6F 64 65 20 20 2A 2F 0D 0A 0D 0A 56 5F 75 mode */....V_u
01B3E0: 6E 70 61 63 6B 28 6D 61 74 72 69 78 2C 20 75 6E npack(matrix, un
01B3F0: 70 61 63 6B 5F 61 72 65 61 29 0D 0A 7B 0D 0A 20 pack_area)..{..
01B400: 6C 61 79 65 64 20 69 6E 20 20 2A 2F 0D 0A 2F 2A layed in */../*
01B410: 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 66 69 .. returns fi
01B420: 72 73 74 20 28 46 46 29 20 61 6E 64 20 73 65 63 rst (FF) and sec
01B430: 6F 6E 64 20 28 53 53 29 20 63 6F 6C 6F 75 72 20 ond (SS) colour
01B440: 65 6E 63 6F 64 65 64 20 74 68 75 73 20 30 78 46 encoded thus 0xF
01B450: 46 53 53 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 56 FSS..*/....int V
01B460: 5F 67 65 74 5F 62 6F 72 64 65 72 28 29 0D 0A 7B _get_border()..{
01B470: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
01B480: 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 CALL, 0xB
01B490: 43 33 42 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 5F C3B,.. LD_BC_
01B4A0: 69 6E 74 6F 2C 20 26 72 65 67 5F 62 63 29 3B 0D into, ®_bc);.
01B4B0: 0A 20 20 72 65 74 75 72 6E 20 72 65 67 5F 62 63 . return reg_bc
01B4C0: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 65 ;..}....../* Se
01B4D0: 74 20 74 68 65 20 69 6E 6B 20 66 6C 61 73 68 20 t the ink flash
01B4E0: 70 65 72 69 6F 64 73 20 28 69 6E 20 66 72 61 6D periods (in fram
01B4F0: 65 20 66 6C 79 62 61 63 6B 73 29 20 20 2A 2F 0D e flybacks) */.
01B500: 0A 0D 0A 56 5F 73 65 74 5F 66 6C 61 73 68 69 6E ...V_set_flashin
01B510: 67 28 66 69 72 73 74 5F 70 65 72 69 6F 64 2C 20 g(first_period,
01B520: 73 65 63 6F 6E 64 5F 70 65 72 69 6F 64 29 0D 0A second_period)..
01B530: 7B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 28 66 {.. reg_hl = (f
01B540: 69 72 73 74 5F 70 65 72 69 6F 64 20 3C 3C 20 38 irst_period << 8
01B550: 29 20 2B 20 73 65 63 6F 6E 64 5F 70 65 72 69 6F ) + second_perio
01B560: 64 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 d;.. inline(..
01B570: 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 LD_HL_from, &
01B580: 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C reg_hl,.. CAL
01B590: 4C 2C 20 20 20 20 20 20 20 30 78 42 43 33 45 29 L, 0xBC3E)
01B5A0: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 41 73 ;..}....../* As
01B5B0: 6B 20 74 68 65 20 63 75 72 72 65 6E 74 20 69 6E k the current in
01B5C0: 6B 20 66 6C 61 73 68 20 70 65 72 69 6F 64 73 20 k flash periods
01B5D0: 28 69 6E 20 66 72 61 6D 65 20 66 6C 79 62 61 63 (in frame flybac
01B5E0: 6B 73 29 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 ks) */../*..
01B5F0: 20 72 65 74 75 72 6E 73 20 66 69 72 73 74 20 28 returns first (
01B600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01B610: 17 00 00 00 02 09 4E E5 17 00 41 02 00 00 00 02 ......N...A.....
01B620: 17 00 46 02 00 00 00 02 17 00 42 02 00 00 00 02 ..F.......B.....
01B630: 17 00 47 02 00 00 00 02 17 00 43 02 00 00 00 02 ..G.......C.....
01B640: 17 00 48 02 00 00 00 02 17 00 44 02 00 00 00 02 ..H.......D.....
01B650: 17 00 49 02 00 00 00 02 17 00 45 02 00 00 00 02 ..I.......E.....
01B660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B700: 20 72 65 67 5F 68 6C 20 3D 20 6D 61 74 72 69 78 reg_hl = matrix
01B710: 3B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 75 6E ;.. reg_de = un
01B720: 70 61 63 6B 5F 61 72 65 61 3B 0D 0A 20 20 69 6E pack_area;.. in
01B730: 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 44 45 line(.. LD_DE
01B740: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D _from, ®_de,.
01B750: 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C . LD_HL_from,
01B760: 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 ®_hl,.. C
01B770: 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 43 35 ALL, 0xBC5
01B780: 33 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 3);..}....../*
01B790: 43 6F 6D 70 72 65 73 73 20 61 20 63 68 61 72 61 Compress a chara
01B7A0: 63 74 65 72 20 6D 61 74 72 69 78 20 74 6F 20 74 cter matrix to t
01B7B0: 68 65 20 73 74 61 6E 64 61 72 64 20 66 6F 72 6D he standard form
01B7C0: 20 20 2A 2F 0D 0A 0D 0A 56 5F 72 65 70 61 63 6B */....V_repack
01B7D0: 28 69 6E 6B 2C 20 6D 61 74 72 69 78 2C 20 72 6F (ink, matrix, ro
01B7E0: 77 2C 20 63 6F 6C 75 6D 6E 29 0D 0A 7B 0D 0A 20 w, column)..{..
01B7F0: 20 72 65 67 5F 61 20 20 3D 20 69 6E 6B 3B 0D 0A reg_a = ink;..
01B800: 20 20 72 65 67 5F 64 65 20 3D 20 6D 61 74 72 69 reg_de = matri
01B810: 78 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 28 x;.. reg_hl = (
01B820: 63 6F 6C 75 6D 6E 20 3C 3C 20 38 29 20 2B 20 72 column << 8) + r
01B830: 6F 77 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A ow;.. inline(..
01B840: 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 20 LD_A_from,
01B850: 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 4C 44 5F ®_a,.. LD_
01B860: 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 DE_from, ®_de
01B870: 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F ,.. LD_HL_fro
01B880: 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 m, ®_hl,..
01B890: 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 CALL, 0xB
01B8A0: 43 35 36 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A C56);..}....../*
01B8B0: 20 20 53 65 74 20 74 68 65 20 73 63 72 65 65 6E Set the screen
01B8C0: 20 77 72 69 74 65 20 6D 6F 64 65 20 66 6F 72 20 write mode for
01B8D0: 74 68 65 20 47 72 61 70 68 69 63 73 20 56 44 55 the Graphics VDU
01B8E0: 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 70 69 */../*.. pi
01B8F0: 78 65 6C 5F 77 72 69 74 65 5F 6D 6F 64 65 20 69 xel_write_mode i
01B900: 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 20 20 /* * * * * *
01B910: 20 20 46 20 49 20 52 20 4D 20 57 20 41 20 52 20 F I R M W A R
01B920: 45 20 2E 20 4C 20 49 20 42 20 20 20 20 20 20 2A E . L I B *
01B930: 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 2F 2A 20 * * * * */../*
01B940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01B950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01B960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01B970: 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 */../*
01B980: 20 20 20 20 20 20 20 20 46 20 49 20 52 20 4D 20 F I R M
01B990: 35 20 20 2D 20 20 53 6F 75 6E 64 20 20 74 6F 20 5 - Sound to
01B9A0: 20 4B 65 72 6E 65 6C 20 20 20 20 20 20 20 20 20 Kernel
01B9B0: 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 */../*
01B9C0: 20 20 20 20 20 20 20 20 43 6F 70 79 72 69 67 68 Copyrigh
01B9D0: 74 20 28 43 29 20 31 39 38 35 20 48 69 53 6F 66 t (C) 1985 HiSof
01B9E0: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t
01B9F0: 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 20 */../*
01BA00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BA10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01BA20: 20 20 20 20 20 20 20 20 20 20 20 20 20 2A 2F 0D */.
01BA30: 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 ./* * * * * * *
01BA40: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
01BA50: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
01BA60: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 0D 0A * * * * * */....
01BA70: 0D 0A 2F 2A 2A 20 20 20 20 20 20 53 4F 55 4E 44 ../** SOUND
01BA80: 20 4D 41 4E 41 47 45 52 20 49 4E 54 45 52 46 41 MANAGER INTERFA
01BA90: 43 45 20 4C 49 42 52 41 52 59 20 20 20 20 20 20 CE LIBRARY
01BAA0: 2A 2A 2F 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 6F 75 **/....../* Sou
01BAB0: 6E 64 20 50 72 6F 67 72 61 6D 20 53 74 72 75 63 nd Program Struc
01BAC0: 74 75 72 65 20 66 6F 72 20 75 73 65 20 77 69 74 ture for use wit
01BAD0: 68 20 53 4F 55 4E 44 5F 51 55 45 55 45 20 20 2A h SOUND_QUEUE *
01BAE0: 2F 0D 0A 0D 0A 74 79 70 65 64 65 66 20 73 74 72 /....typedef str
01BAF0: 75 63 74 20 7B 0D 0A 20 20 63 68 61 72 20 20 20 uct {.. char
01BB00: 73 3A 0D 0A 0D 0A 20 20 20 20 30 20 20 77 72 69 s:.... 0 wri
01BB10: 74 65 0D 0A 20 20 20 20 31 20 20 65 78 63 6C 75 te.. 1 exclu
01BB20: 73 69 76 65 2D 6F 72 0D 0A 20 20 20 20 32 20 20 sive-or.. 2
01BB30: 61 6E 64 0D 0A 20 20 20 20 33 20 20 69 6E 63 6C and.. 3 incl
01BB40: 75 73 69 76 65 2D 6F 72 0D 0A 2A 2F 0D 0A 0D 0A usive-or..*/....
01BB50: 56 5F 61 63 63 65 73 73 28 70 69 78 65 6C 5F 77 V_access(pixel_w
01BB60: 72 69 74 65 5F 6D 6F 64 65 29 0D 0A 7B 0D 0A 20 rite_mode)..{..
01BB70: 20 72 65 67 5F 61 20 3D 20 70 69 78 65 6C 5F 77 reg_a = pixel_w
01BB80: 72 69 74 65 5F 6D 6F 64 65 3B 0D 0A 20 20 69 6E rite_mode;.. in
01BB90: 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F line(.. LD_A_
01BBA0: 66 72 6F 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A from, ®_a,..
01BBB0: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
01BBC0: 30 78 42 43 35 39 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0xBC59);..}.....
01BBD0: 0A 2F 2A 20 20 77 72 69 74 65 20 73 6F 6D 65 20 ./* write some
01BBE0: 70 69 78 65 6C 73 20 74 6F 20 74 68 65 20 73 63 pixels to the sc
01BBF0: 72 65 65 6E 20 69 67 6E 6F 72 69 6E 67 20 74 68 reen ignoring th
01BC00: 65 20 47 72 61 70 68 69 63 73 20 56 44 55 20 77 e Graphics VDU w
01BC10: 72 69 74 65 20 6D 6F 64 65 20 20 2A 2F 0D 0A 0D rite mode */...
01BC20: 0A 56 5F 70 69 78 65 6C 73 28 69 6E 6B 2C 20 70 .V_pixels(ink, p
01BC30: 69 78 65 6C 5F 6D 61 73 6B 2C 20 73 63 72 65 65 ixel_mask, scree
01BC40: 6E 5F 61 64 64 72 65 73 73 29 0D 0A 7B 0D 0A 20 n_address)..{..
01BC50: 20 72 65 67 5F 62 63 20 3D 20 28 69 6E 6B 20 3C reg_bc = (ink <
01BC60: 3C 20 38 29 20 2B 20 70 69 78 65 6C 5F 6D 61 73 < 8) + pixel_mas
01BC70: 6B 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 73 k;.. reg_hl = s
01BC80: 63 72 65 65 6E 5F 61 64 64 72 65 73 73 3B 0D 0A creen_address;..
01BC90: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C inline(.. L
01BCA0: 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 5F D_BC_from, ®_
01BCB0: 62 63 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 bc,.. LD_HL_f
01BCC0: 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 rom, ®_hl,..
01BCD0: 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 CALL, 0
01BCE0: 78 42 43 35 43 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A xBC5C);..}......
01BCF0: 2F 2A 20 20 70 6C 6F 74 20 61 20 70 75 72 65 6C /* plot a purel
01BD00: 20 20 73 70 5F 63 68 61 6E 6E 65 6C 73 3B 20 20 sp_channels;
01BD10: 20 20 20 20 20 20 20 2F 2A 20 20 63 68 61 6E 6E /* chann
01BD20: 65 6C 2F 72 65 6E 64 65 7A 76 6F 75 73 20 66 6C el/rendezvous fl
01BD30: 61 67 73 20 20 2A 2F 0D 0A 20 20 63 68 61 72 20 ags */.. char
01BD40: 20 20 20 20 73 70 5F 61 6D 70 5F 65 6E 76 3B 20 sp_amp_env;
01BD50: 20 20 20 20 20 20 20 20 20 2F 2A 20 20 61 6D 70 /* amp
01BD60: 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 65 20 litude envelope
01BD70: 31 2D 31 35 20 6F 72 20 30 20 74 6F 20 64 65 66 1-15 or 0 to def
01BD80: 61 75 6C 74 20 2A 2F 0D 0A 20 20 63 68 61 72 20 ault */.. char
01BD90: 20 20 20 20 73 70 5F 74 6F 6E 5F 65 6E 76 3B 20 sp_ton_env;
01BDA0: 20 20 20 20 20 20 20 20 20 2F 2A 20 20 74 6F 6E /* ton
01BDB0: 65 20 65 6E 76 65 6C 6F 70 65 20 31 2D 31 35 20 e envelope 1-15
01BDC0: 6F 72 20 30 20 74 6F 20 64 65 66 61 75 6C 74 20 or 0 to default
01BDD0: 20 20 20 20 20 2A 2F 0D 0A 20 20 75 6E 73 69 67 */.. unsig
01BDE0: 6E 65 64 20 73 70 5F 74 6F 6E 5F 70 65 72 69 6F ned sp_ton_perio
01BDF0: 64 3B 20 20 20 20 20 20 20 2F 2A 20 20 74 6F 6E d; /* ton
01BE00: 65 20 70 65 72 69 6F 64 20 31 2D 34 30 39 35 20 e period 1-4095
01BE10: 6F 72 20 30 20 66 6F 72 20 6E 6F 69 73 65 20 6F or 0 for noise o
01BE20: 6E 6C 79 20 20 2A 2F 0D 0A 20 20 63 68 61 72 20 nly */.. char
01BE30: 20 20 20 20 73 70 5F 6E 6F 69 73 65 5F 70 65 72 sp_noise_per
01BE40: 69 6F 64 3B 20 20 20 20 20 2F 2A 20 20 6E 6F 69 iod; /* noi
01BE50: 73 65 20 70 65 72 69 6F 64 20 31 2D 33 31 20 6F se period 1-31 o
01BE60: 72 20 30 20 66 6F 72 20 74 6F 6E 65 20 6F 6E 6C r 0 for tone onl
01BE70: 79 20 20 20 20 2A 2F 0D 0A 20 20 63 68 61 72 20 y */.. char
01BE80: 20 20 20 20 73 70 5F 61 6D 70 5F 69 6E 69 74 69 sp_amp_initi
01BE90: 61 6C 3B 20 20 20 20 20 20 2F 2A 20 20 69 6E 69 al; /* ini
01BEA0: 74 69 61 6C 20 61 6D 70 6C 69 74 75 64 65 20 30 tial amplitude 0
01BEB0: 2D 31 35 20 20 20 20 20 20 20 20 20 20 20 20 20 -15
01BEC0: 20 20 20 20 20 2A 2F 0D 0A 20 20 75 6E 73 69 67 */.. unsig
01BED0: 6E 65 64 20 73 70 5F 72 65 70 65 61 74 5F 63 6F ned sp_repeat_co
01BEE0: 75 6E 74 3B 20 20 20 20 20 2F 2A 20 20 64 75 72 unt; /* dur
01BEF0: 61 74 69 6F 6E 20 6F 72 20 65 6E 76 65 6C 6F 70 ation or envelop
01BF00: 79 20 68 6F 72 69 7A 6F 6E 74 61 6C 20 6C 69 6E y horizontal lin
01BF10: 65 20 20 2A 2F 0D 0A 0D 0A 56 5F 68 6F 72 69 7A e */....V_horiz
01BF20: 6F 6E 74 61 6C 28 69 6E 6B 2C 20 78 5F 6C 65 66 ontal(ink, x_lef
01BF30: 74 2C 20 78 5F 72 69 67 68 74 2C 20 79 29 0D 0A t, x_right, y)..
01BF40: 7B 0D 0A 20 20 72 65 67 5F 61 20 20 3D 20 69 6E {.. reg_a = in
01BF50: 6B 3B 0D 0A 20 20 72 65 67 5F 62 63 20 3D 20 78 k;.. reg_bc = x
01BF60: 5F 72 69 67 68 74 3B 0D 0A 20 20 72 65 67 5F 64 _right;.. reg_d
01BF70: 65 20 3D 20 78 5F 6C 65 66 74 3B 0D 0A 20 20 72 e = x_left;.. r
01BF80: 65 67 5F 68 6C 20 3D 20 79 3B 0D 0A 20 20 20 69 eg_hl = y;.. i
01BF90: 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 nline(.. LD_A
01BFA0: 5F 66 72 6F 6D 2C 20 20 26 72 65 67 5F 61 2C 0D _from, ®_a,.
01BFB0: 0A 20 20 20 20 4C 44 5F 42 43 5F 66 72 6F 6D 2C . LD_BC_from,
01BFC0: 20 26 72 65 67 5F 62 63 2C 0D 0A 20 20 20 20 4C ®_bc,.. L
01BFD0: 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F D_DE_from, ®_
01BFE0: 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 de,.. LD_HL_f
01BFF0: 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 rom, ®_hl,..
01C000: 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 CALL, 0
01C010: 78 42 43 35 46 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A xBC5F);..}......
01C020: 2F 2A 20 20 70 6C 6F 74 20 61 20 70 75 72 65 6C /* plot a purel
01C030: 79 20 76 65 72 74 69 63 61 6C 20 6C 69 6E 65 20 y vertical line
01C040: 20 2A 2F 0D 0A 0D 0A 56 5F 76 65 72 74 69 63 61 */....V_vertica
01C050: 6C 28 69 6E 6B 2C 20 78 2C 20 79 5F 74 6F 70 2C l(ink, x, y_top,
01C060: 20 79 5F 62 6F 74 74 6F 6D 29 0D 0A 7B 0D 0A 20 y_bottom)..{..
01C070: 20 72 65 67 5F 61 20 20 3D 20 69 6E 6B 3B 0D 0A reg_a = ink;..
01C080: 20 20 72 65 67 5F 62 63 20 3D 20 79 5F 62 6F 74 reg_bc = y_bot
01C090: 74 6F 6D 3B 0D 0A 20 20 72 65 67 5F 64 65 20 3D tom;.. reg_de =
01C0A0: 20 78 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 x;.. reg_hl =
01C0B0: 79 5F 74 6F 70 3B 0D 0A 20 20 20 69 6E 6C 69 6E y_top;.. inlin
01C0C0: 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F e(.. LD_A_fro
01C0D0: 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 m, ®_a,..
01C0E0: 20 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 LD_BC_from, &re
01C0F0: 67 5F 62 63 2C 0D 0A 20 20 20 20 4C 44 5F 44 45 g_bc,.. LD_DE
01C100: 65 2D 72 65 70 65 61 74 2D 63 6F 75 6E 74 20 20 e-repeat-count
01C110: 2A 2F 0D 0A 20 20 7D 0D 0A 20 20 20 20 73 6F 75 */.. }.. sou
01C120: 6E 64 5F 70 72 6F 67 72 61 6D 3B 0D 0A 0D 0A 0D nd_program;.....
01C130: 0A 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 43 68 61 ........./* Cha
01C140: 6E 6E 65 6C 2F 52 65 6E 64 65 7A 76 6F 75 73 20 nnel/Rendezvous
01C150: 46 6C 61 67 73 20 20 2A 2F 0D 0A 0D 0A 23 64 65 Flags */....#de
01C160: 66 69 6E 65 20 73 70 5F 41 5F 43 48 41 4E 20 20 fine sp_A_CHAN
01C170: 31 20 20 20 20 2F 2A 20 20 73 6F 75 6E 64 20 6F 1 /* sound o
01C180: 6E 20 63 68 61 6E 6E 65 6C 20 41 20 20 2A 2F 0D n channel A */.
01C190: 0A 23 64 65 66 69 6E 65 20 73 70 5F 42 5F 43 48 .#define sp_B_CH
01C1A0: 41 4E 20 20 32 20 20 20 20 2F 2A 20 20 73 6F 75 AN 2 /* sou
01C1B0: 6E 64 20 6F 6E 20 63 68 61 6E 6E 65 6C 20 42 20 nd on channel B
01C1C0: 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 73 70 5F */..#define sp_
01C1D0: 43 5F 43 48 41 4E 20 20 34 20 20 20 20 2F 2A 20 C_CHAN 4 /*
01C1E0: 20 73 6F 75 6E 64 20 6F 6E 20 63 68 61 6E 6E 65 sound on channe
01C1F0: 6C 20 43 20 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 l C */..#define
01C200: 20 73 70 5F 41 5F 52 44 56 5A 20 20 38 20 20 20 sp_A_RDVZ 8
01C210: 20 2F 2A 20 20 72 65 6E 64 65 7A 76 6F 75 73 20 /* rendezvous
01C220: 77 69 74 68 20 63 68 61 6E 6E 65 6C 20 41 20 20 with channel A
01C230: 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 73 70 5F 42 */..#define sp_B
01C240: 5F 52 44 56 5A 20 31 36 20 20 20 20 2F 2A 20 20 _RDVZ 16 /*
01C250: 72 65 6E 64 65 7A 76 6F 75 73 20 77 69 74 68 20 rendezvous with
01C260: 63 68 61 6E 6E 65 6C 20 42 20 20 2A 2F 0D 0A 23 channel B */..#
01C270: 64 65 66 69 6E 65 20 73 70 5F 43 5F 52 44 56 5A define sp_C_RDVZ
01C280: 20 33 32 20 20 20 20 2F 2A 20 20 72 65 6E 64 65 32 /* rende
01C290: 7A 76 6F 75 73 20 77 69 74 68 20 63 68 61 6E 6E zvous with chann
01C2A0: 65 6C 20 43 20 20 2A 2F 0D 0A 23 64 65 66 69 6E el C */..#defin
01C2B0: 65 20 73 70 5F 48 4F 4C 44 20 20 20 36 34 20 20 e sp_HOLD 64
01C2C0: 20 20 2F 2A 20 20 68 6F 6C 64 20 75 6E 74 69 6C /* hold until
01C2D0: 20 72 65 6C 65 61 73 65 64 20 20 2A 2F 0D 0A 23 released */..#
01C2E0: 64 65 66 69 6E 65 20 73 70 5F 46 4C 55 53 48 20 define sp_FLUSH
01C2F0: 31 32 38 20 20 20 20 2F 2A 20 20 61 62 61 6E 64 128 /* aband
01C300: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D _from, ®_de,.
01C310: 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C . LD_HL_from,
01C320: 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 ®_hl,.. C
01C330: 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 43 36 ALL, 0xBC6
01C340: 32 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 2);..}......../*
01C350: 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 20 20 20 45 * * * * * E
01C360: 20 4E 20 44 20 20 20 4F 20 46 20 20 20 46 20 49 N D O F F I
01C370: 20 52 20 4D 20 33 20 20 20 20 20 20 2A 20 2A 20 R M 3 * *
01C380: 2A 20 2A 20 2A 20 2A 2F 0D 0A 0D 0A 1A 65 2C 0D * * * */.....e,.
01C390: 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C . LD_HL_from,
01C3A0: 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 ®_hl,.. C
01C3B0: 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 43 36 ALL, 0xBC6
01C3C0: 32 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 2);..}......../*
01C3D0: 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 20 20 20 45 * * * * * E
01C3E0: 20 4E 20 44 20 20 20 4F 20 46 20 20 20 46 20 49 N D O F F I
01C3F0: 20 52 20 4D 20 33 20 20 20 20 20 20 2A 20 2A 20 R M 3 * *
01C400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C4A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C4B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C4C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C4D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C4E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C4F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C500: 6F 6E 20 61 6C 6C 20 65 61 72 6C 69 65 72 20 73 on all earlier s
01C510: 6F 75 6E 64 73 20 69 6E 20 71 75 65 75 65 20 20 ounds in queue
01C520: 2A 2F 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A */..............
01C530: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 45 6E ........../* En
01C540: 76 65 6C 6F 70 65 73 20 66 6F 72 20 41 6D 70 6C velopes for Ampl
01C550: 69 74 75 64 65 20 6F 72 20 54 6F 6E 65 20 20 2A itude or Tone *
01C560: 2F 0D 0A 0D 0A 74 79 70 65 64 65 66 20 75 6E 69 /....typedef uni
01C570: 6F 6E 20 7B 0D 0A 20 20 73 74 72 75 63 74 20 7B on {.. struct {
01C580: 0D 0A 20 20 20 20 63 68 61 72 20 73 65 73 5F 63 .. char ses_c
01C590: 6F 75 6E 74 3B 0D 0A 20 20 20 20 63 68 61 72 20 ount;.. char
01C5A0: 73 65 73 5F 73 69 7A 65 3B 0D 0A 20 20 20 20 63 ses_size;.. c
01C5B0: 68 61 72 20 73 65 73 5F 70 61 75 73 65 5F 74 69 har ses_pause_ti
01C5C0: 6D 65 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 20 20 me;.. }..
01C5D0: 20 20 73 65 73 5F 73 6F 66 74 77 61 72 65 3B 0D ses_software;.
01C5E0: 0A 0D 0A 20 20 73 74 72 75 63 74 20 7B 0D 0A 20 ... struct {..
01C5F0: 20 20 20 63 68 61 72 20 20 20 20 20 73 65 73 5F char ses_
01C600: 73 68 61 70 65 3B 0D 0A 20 20 20 20 75 6E 73 69 shape;.. unsi
01C610: 67 6E 65 64 20 73 65 73 5F 70 65 72 69 6F 64 3B gned ses_period;
01C620: 0D 0A 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 73 .. }.. s
01C630: 65 73 5F 68 61 72 64 77 61 72 65 3B 0D 0A 0D 0A es_hardware;....
01C640: 20 20 7D 0D 0A 20 20 20 20 73 65 6E 76 5F 73 65 }.. senv_se
01C650: 63 74 69 6F 6E 3B 0D 0A 0D 0A 0D 0A 0D 0A 74 79 ction;........ty
01C660: 70 65 64 65 66 20 73 74 72 75 63 74 20 7B 0D 0A pedef struct {..
01C670: 20 20 63 68 61 72 20 20 20 20 20 20 20 20 20 73 char s
01C680: 65 5F 63 6F 75 6E 74 5F 73 65 63 74 69 6F 6E 73 e_count_sections
01C690: 3B 0D 0A 20 20 73 65 6E 76 5F 73 65 63 74 69 6F ;.. senv_sectio
01C6A0: 6E 20 73 65 5F 73 65 63 74 69 6F 6E 5B 35 5D 3B n se_section[5];
01C6B0: 0D 0A 20 20 7D 0D 0A 20 20 20 20 73 6F 75 6E 64 .. }.. sound
01C6C0: 5F 65 6E 76 65 6C 6F 70 65 3B 0D 0A 0D 0A 0D 0A _envelope;......
01C6D0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ................
01C6E0: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 ............/*
01C6F0: 52 65 73 65 74 20 74 68 65 20 73 6F 75 6E 64 20 Reset the sound
01C700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01C900: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01C910: 18 00 00 00 02 09 4E E5 18 00 41 02 00 00 00 02 ......N...A.....
01C920: 18 00 46 02 00 00 00 02 18 00 42 02 00 00 00 02 ..F.......B.....
01C930: 18 00 47 02 00 00 00 02 18 00 43 02 00 00 00 02 ..G.......C.....
01C940: 18 00 48 02 00 00 00 02 18 00 44 02 00 00 00 02 ..H.......D.....
01C950: 18 00 49 02 00 00 00 02 18 00 45 02 00 00 00 02 ..I.......E.....
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: 6D 61 6E 61 67 65 72 20 20 2A 2F 0D 0A 0D 0A 53 manager */....S
01CA10: 5F 72 65 73 65 74 28 29 0D 0A 7B 0D 0A 20 20 69 _reset()..{.. i
01CA20: 6E 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 42 43 nline(CALL, 0xBC
01CA30: 41 37 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 A7);..}....../*
01CA40: 20 41 64 64 20 61 20 73 6F 75 6E 64 20 74 6F 20 Add a sound to
01CA50: 61 20 73 6F 75 6E 64 20 71 75 65 75 65 20 20 2A a sound queue *
01CA60: 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 /../*.. retur
01CA70: 6E 73 20 54 52 55 45 20 28 31 29 20 69 66 20 73 ns TRUE (1) if s
01CA80: 6F 75 6E 64 20 61 64 64 65 64 20 74 6F 20 71 75 ound added to qu
01CA90: 65 75 65 0D 0A 20 20 20 20 61 6E 64 20 46 41 4C eue.. and FAL
01CAA0: 53 45 20 28 30 29 20 69 66 20 6E 6F 74 20 62 65 SE (0) if not be
01CAB0: 63 61 75 73 65 20 61 74 20 6C 65 61 73 74 20 6F cause at least o
01CAC0: 6E 65 20 71 75 65 75 65 20 77 61 73 20 66 75 6C ne queue was ful
01CAD0: 6C 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 53 5F 71 l..*/....int S_q
01CAE0: 75 65 75 65 28 73 70 29 0D 0A 20 20 73 6F 75 6E ueue(sp).. soun
01CAF0: 64 5F 70 72 6F 67 72 61 6D 20 2A 73 70 3B 0D 0A d_program *sp;..
01CB00: 7B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 63 61 {.. reg_hl = ca
01CB10: 73 74 28 75 6E 73 69 67 6E 65 64 29 20 73 70 3B st(unsigned) sp;
01CB20: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
01CB30: 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 LD_HL_from, &re
01CB40: 67 5F 68 6C 2C 0D 0A 20 20 20 20 50 55 53 48 5F g_hl,.. PUSH_
01CB50: 49 58 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 IX,.. CALL,
01CB60: 20 20 20 20 20 30 78 42 43 41 41 2C 0D 0A 20 20 0xBCAA,..
01CB70: 20 20 50 4F 50 5F 49 58 2C 0D 0A 20 20 20 20 4C POP_IX,.. L
01CB80: 44 5F 48 4C 5F 77 69 74 68 2C 20 20 30 2C 30 2C D_HL_with, 0,0,
01CB90: 0D 0A 20 20 20 20 52 4C 5F 4C 29 3B 0D 0A 7D 0D .. RL_L);..}.
01CBA0: 0A 0D 0A 0D 0A 2F 2A 20 20 41 73 6B 20 69 66 20 ...../* Ask if
01CBB0: 74 68 65 72 65 20 69 73 20 73 70 61 63 65 20 6F there is space o
01CBC0: 6E 20 61 20 73 6F 75 6E 64 20 71 75 65 75 65 20 n a sound queue
01CBD0: 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 49 74 20 */../*.. It
01CBE0: 74 61 6B 65 73 20 61 20 62 69 74 20 63 6F 64 65 takes a bit code
01CBF0: 64 20 61 72 67 75 6D 65 6E 74 20 28 75 73 65 20 d argument (use
01CC00: 20 20 20 20 72 65 74 75 72 6E 73 20 61 20 70 6F returns a po
01CC10: 69 6E 74 65 72 20 74 6F 20 74 68 65 20 65 6E 76 inter to the env
01CC20: 65 6C 6F 70 65 20 77 69 74 68 20 74 68 65 20 67 elope with the g
01CC30: 69 76 65 6E 20 6E 75 6D 62 65 72 0D 0A 20 20 20 iven number..
01CC40: 20 28 6A 75 73 74 20 69 6E 20 63 61 73 65 20 79 (just in case y
01CC50: 6F 75 20 68 61 64 20 66 6F 72 67 6F 74 74 65 6E ou had forgotten
01CC60: 20 69 74 29 3B 0D 0A 20 20 20 20 6F 72 20 4E 55 it);.. or NU
01CC70: 4C 4C 20 28 30 29 20 69 66 20 74 68 65 20 6E 75 LL (0) if the nu
01CC80: 6D 62 65 72 20 77 61 73 20 69 6E 76 61 6C 69 64 mber was invalid
01CC90: 0D 0A 2A 2F 0D 0A 0D 0A 73 6F 75 6E 64 5F 65 6E ..*/....sound_en
01CCA0: 76 65 6C 6F 70 65 20 2A 53 5F 61 5F 61 64 64 72 velope *S_a_addr
01CCB0: 65 73 73 28 6E 75 6D 62 65 72 29 0D 0A 7B 0D 0A ess(number)..{..
01CCC0: 20 20 72 65 67 5F 61 20 3D 20 6E 75 6D 62 65 72 reg_a = number
01CCD0: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
01CCE0: 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 26 72 65 LD_A_from, &re
01CCF0: 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 g_a,.. CALL,
01CD00: 20 20 20 20 20 30 78 42 43 43 32 2C 0D 0A 20 20 0xBCC2,..
01CD10: 20 20 52 4C 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 RLA,.. LD_A
01CD20: 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 61 2C 0D 0A _into, ®_a,..
01CD30: 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C 26 LD_HL_into,&
01CD40: 72 65 67 5F 68 6C 29 3B 0D 0A 20 20 72 65 74 75 reg_hl);.. retu
01CD50: 72 6E 20 20 61 5F 72 65 67 20 26 20 31 20 20 20 rn a_reg & 1
01CD60: 3F 20 20 20 72 65 67 5F 68 6C 20 20 20 3A 20 20 ? reg_hl :
01CD70: 20 30 20 20 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 0 ;..}....../*
01CD80: 20 20 47 65 74 20 74 68 65 20 61 64 64 72 65 73 Get the addres
01CD90: 73 20 6F 66 20 61 20 73 6F 75 6E 64 20 74 6F 6E s of a sound ton
01CDA0: 65 20 65 6E 76 65 6C 6F 70 65 20 20 2A 2F 0D 0A e envelope */..
01CDB0: 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 /*.. returns
01CDC0: 61 20 70 6F 69 6E 74 65 72 20 74 6F 20 74 68 65 a pointer to the
01CDD0: 20 65 6E 76 65 6C 6F 70 65 20 77 69 74 68 20 74 envelope with t
01CDE0: 68 65 20 67 69 76 65 6E 20 6E 75 6D 62 65 72 0D he given number.
01CDF0: 0A 20 20 20 20 28 6A 75 73 74 20 69 6E 20 63 61 . (just in ca
01CE00: 61 20 63 6F 6E 73 74 61 6E 74 20 6C 69 6B 65 20 a constant like
01CE10: 73 70 5F 41 5F 43 48 41 4E 29 2E 0D 0A 20 20 20 sp_A_CHAN)...
01CE20: 20 72 65 74 75 72 6E 73 20 65 6E 63 6F 64 65 64 returns encoded
01CE30: 20 63 68 61 6E 6E 65 6C 20 73 74 61 74 75 73 20 channel status
01CE40: 61 73 20 70 65 72 20 66 69 72 6D 77 61 72 65 20 as per firmware
01CE50: 73 70 65 63 69 66 69 63 61 74 69 6F 6E 0D 0A 2A specification..*
01CE60: 2F 0D 0A 0D 0A 69 6E 74 20 53 5F 63 68 65 63 6B /....int S_check
01CE70: 28 63 68 61 6E 6E 65 6C 5F 62 69 74 29 0D 0A 7B (channel_bit)..{
01CE80: 0D 0A 20 20 72 65 67 5F 61 20 3D 20 63 68 61 6E .. reg_a = chan
01CE90: 6E 65 6C 5F 62 69 74 3B 0D 0A 20 20 69 6E 6C 69 nel_bit;.. inli
01CEA0: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 ne(.. LD_A_fr
01CEB0: 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 om, ®_a,..
01CEC0: 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 78 42 43 CALL, 0xBC
01CED0: 41 44 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 6E AD,.. LD_A_in
01CEE0: 74 6F 2C 20 26 72 65 67 5F 61 29 3B 0D 0A 20 20 to, ®_a);..
01CEF0: 72 65 74 75 72 6E 20 72 65 67 5F 61 3B 0D 0A 7D return reg_a;..}
01CF00: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 65 74 20 75 70 ....../* Set up
01CF10: 20 61 6E 20 65 76 65 6E 74 20 74 6F 20 62 65 20 an event to be
01CF20: 72 75 6E 20 77 68 65 6E 20 61 20 73 6F 75 6E 64 run when a sound
01CF30: 20 71 75 65 75 65 20 62 65 63 6F 6D 65 73 20 65 queue becomes e
01CF40: 6D 70 74 79 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 mpty */../*..
01CF50: 20 20 49 74 20 74 61 6B 65 73 20 61 20 62 69 74 It takes a bit
01CF60: 20 63 6F 64 65 64 20 61 72 67 75 6D 65 6E 74 20 coded argument
01CF70: 28 75 73 65 20 61 20 63 6F 6E 73 74 61 6E 74 20 (use a constant
01CF80: 6C 69 6B 65 20 73 70 5F 41 5F 43 48 41 4E 29 2E like sp_A_CHAN).
01CF90: 0D 0A 2A 2F 0D 0A 0D 0A 53 5F 61 72 6D 5F 65 76 ..*/....S_arm_ev
01CFA0: 65 6E 74 28 63 68 61 6E 6E 65 6C 5F 62 69 74 2C ent(channel_bit,
01CFB0: 20 65 62 29 0D 0A 20 20 65 76 65 6E 74 5F 62 6C eb).. event_bl
01CFC0: 6F 63 6B 20 2A 65 62 3B 0D 0A 7B 0D 0A 20 20 72 ock *eb;..{.. r
01CFD0: 65 67 5F 61 20 20 3D 20 63 68 61 6E 6E 65 6C 5F eg_a = channel_
01CFE0: 62 69 74 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D bit;.. reg_hl =
01CFF0: 20 65 62 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D eb;.. inline(.
01D000: 73 65 20 79 6F 75 20 68 61 64 20 66 6F 72 67 6F se you had forgo
01D010: 74 74 65 6E 20 69 74 29 3B 0D 0A 20 20 20 20 6F tten it);.. o
01D020: 72 20 4E 55 4C 4C 20 28 30 29 20 69 66 20 74 68 r NULL (0) if th
01D030: 65 20 6E 75 6D 62 65 72 20 77 61 73 20 69 6E 76 e number was inv
01D040: 61 6C 69 64 0D 0A 2A 2F 0D 0A 0D 0A 73 6F 75 6E alid..*/....soun
01D050: 64 5F 65 6E 76 65 6C 6F 70 65 20 2A 53 5F 74 5F d_envelope *S_t_
01D060: 61 64 64 72 65 73 73 28 6E 75 6D 62 65 72 29 0D address(number).
01D070: 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 6E 75 .{.. reg_a = nu
01D080: 6D 62 65 72 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 mber;.. inline(
01D090: 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C .. LD_A_from,
01D0A0: 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 43 41 ®_a,.. CA
01D0B0: 4C 4C 2C 20 20 20 20 20 20 30 78 42 43 43 35 2C LL, 0xBCC5,
01D0C0: 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 20 20 .. RLA,..
01D0D0: 4C 44 5F 41 5F 69 6E 74 6F 2C 20 26 72 65 67 5F LD_A_into, ®_
01D0E0: 61 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 6E a,.. LD_HL_in
01D0F0: 74 6F 2C 26 72 65 67 5F 68 6C 29 3B 0D 0A 20 20 to,®_hl);..
01D100: 72 65 74 75 72 6E 20 20 61 5F 72 65 67 20 26 20 return a_reg &
01D110: 31 20 20 20 3F 20 20 20 72 65 67 5F 68 6C 20 20 1 ? reg_hl
01D120: 20 3A 20 20 20 30 20 20 3B 0D 0A 7D 0D 0A 0D 0A : 0 ;..}....
01D130: 0D 0A 0D 0A 2F 2A 2A 20 20 4B 45 52 4E 45 4C 20 ..../** KERNEL
01D140: 20 49 4E 54 45 52 46 41 43 45 20 20 2A 2A 2F 0D INTERFACE **/.
01D150: 0A 0D 0A 0D 0A 2F 2A 20 20 45 76 65 6E 74 20 44 ...../* Event D
01D160: 61 74 61 20 54 79 70 65 73 20 20 2A 2F 0D 0A 0D ata Types */...
01D170: 0A 2F 2A 0D 0A 20 20 20 20 4E 42 20 65 76 65 6E ./*.. NB even
01D180: 74 20 62 6C 6F 63 6B 73 20 4D 55 53 54 20 62 65 t blocks MUST be
01D190: 20 61 6C 6C 6F 63 61 74 65 64 20 69 6E 20 74 68 allocated in th
01D1A0: 65 20 63 65 6E 74 72 61 6C 20 33 32 4B 20 6F 66 e central 32K of
01D1B0: 20 6D 65 6D 6F 72 79 2E 0D 0A 20 20 20 20 28 69 memory... (i
01D1C0: 65 20 66 72 6F 6D 20 30 78 34 30 30 30 20 74 6F e from 0x4000 to
01D1D0: 20 30 78 42 46 46 46 29 20 20 54 68 69 73 20 77 0xBFFF) This w
01D1E0: 69 6C 6C 20 6E 6F 72 6D 61 6C 6C 79 20 62 65 20 ill normally be
01D1F0: 74 68 65 20 63 61 73 65 20 69 66 20 74 68 65 79 the case if they
01D200: 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 . LD_A_from,
01D210: 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 4C 44 ®_a,.. LD
01D220: 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 _HL_from, ®_h
01D230: 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 l,.. CALL,
01D240: 20 20 20 20 30 78 42 43 42 30 29 3B 0D 0A 7D 0D 0xBCB0);..}.
01D250: 0A 0D 0A 0D 0A 2F 2A 20 20 41 6C 6C 6F 77 20 73 ...../* Allow s
01D260: 6F 75 6E 64 73 20 74 6F 20 68 61 70 70 65 6E 20 ounds to happen
01D270: 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 49 74 20 */../*.. It
01D280: 74 61 6B 65 73 20 61 20 62 69 74 20 63 6F 64 65 takes a bit code
01D290: 64 20 61 72 67 75 6D 65 6E 74 20 28 75 73 65 20 d argument (use
01D2A0: 61 20 63 6F 6E 73 74 61 6E 74 20 6C 69 6B 65 20 a constant like
01D2B0: 73 70 5F 41 5F 43 48 41 4E 29 2E 0D 0A 2A 2F 0D sp_A_CHAN)...*/.
01D2C0: 0A 0D 0A 53 5F 72 65 6C 65 61 73 65 28 63 68 61 ...S_release(cha
01D2D0: 6E 6E 65 6C 5F 62 69 74 73 29 0D 0A 7B 0D 0A 20 nnel_bits)..{..
01D2E0: 20 72 65 67 5F 61 20 20 3D 20 63 68 61 6E 6E 65 reg_a = channe
01D2F0: 6C 5F 62 69 74 3B 0D 0A 20 20 69 6E 6C 69 6E 65 l_bit;.. inline
01D300: 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D (.. LD_A_from
01D310: 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 50 , ®_a,.. P
01D320: 55 53 48 5F 49 58 2C 0D 0A 20 20 20 20 43 41 4C USH_IX,.. CAL
01D330: 4C 2C 20 20 20 20 20 20 30 78 42 43 42 33 2C 0D L, 0xBCB3,.
01D340: 0A 20 20 20 20 50 4F 50 5F 49 58 29 3B 0D 0A 7D . POP_IX);..}
01D350: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 74 6F 70 20 61 ....../* Stop a
01D360: 6C 6C 20 73 6F 75 6E 64 73 20 69 6E 20 6D 69 64 ll sounds in mid
01D370: 2D 66 6C 69 67 68 74 20 20 2A 2F 0D 0A 2F 2A 0D -flight */../*.
01D380: 0A 20 20 20 20 72 65 74 75 72 6E 73 20 54 52 55 . returns TRU
01D390: 45 20 28 31 29 20 69 66 20 61 20 73 6F 75 6E 64 E (1) if a sound
01D3A0: 20 77 61 73 20 61 63 74 69 76 65 20 61 6E 64 20 was active and
01D3B0: 46 41 4C 53 45 20 28 30 29 20 69 66 20 6E 6F 74 FALSE (0) if not
01D3C0: 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 53 5F 68 6F ..*/....int S_ho
01D3D0: 6C 64 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E ld()..{.. inlin
01D3E0: 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 30 78 e(.. CALL, 0x
01D3F0: 42 43 42 36 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C BCB6,.. LD_HL
01D400: 0D 0A 20 20 20 20 61 72 65 20 61 6C 6C 6F 63 61 .. are alloca
01D410: 74 65 64 20 61 73 20 76 61 72 69 61 62 6C 65 73 ted as variables
01D420: 20 69 6E 20 61 20 43 20 70 72 6F 67 72 61 6D 2E in a C program.
01D430: 0D 0A 2A 2F 0D 0A 0D 0A 2F 2A 0D 0A 73 74 72 75 ..*/..../*..stru
01D440: 63 74 20 65 76 65 6E 74 5F 62 6C 6F 63 6B 20 7B ct event_block {
01D450: 20 20 20 54 48 45 20 4F 52 44 45 52 20 28 41 4E THE ORDER (AN
01D460: 44 20 43 4F 4E 54 45 4E 54 53 21 29 20 4D 41 59 D CONTENTS!) MAY
01D470: 20 4E 4F 54 20 42 45 20 52 49 47 48 54 20 21 21 NOT BE RIGHT !!
01D480: 20 21 21 20 21 21 0D 0A 20 20 73 74 72 75 63 74 !! !!.. struct
01D490: 20 65 76 65 6E 74 5F 62 6C 6F 63 6B 0D 0A 20 20 event_block..
01D4A0: 20 20 20 20 20 20 20 20 2A 65 76 5F 6C 69 6E 6B *ev_link
01D4B0: 3B 0D 0A 20 20 63 68 61 72 20 20 20 20 20 65 76 ;.. char ev
01D4C0: 5F 63 6F 75 6E 74 3B 0D 0A 20 20 63 68 61 72 20 _count;.. char
01D4D0: 20 20 20 20 65 76 5F 63 6C 61 73 73 3B 0D 0A 20 ev_class;..
01D4E0: 20 75 6E 73 69 67 6E 65 64 20 65 76 5F 72 6F 75 unsigned ev_rou
01D4F0: 74 69 6E 65 3B 0D 0A 20 20 63 68 61 72 20 20 20 tine;.. char
01D500: 20 20 65 76 5F 52 4F 4D 5F 73 65 6C 65 63 74 3B ev_ROM_select;
01D510: 0D 0A 7D 3B 0D 0A 0D 0A 73 74 72 75 63 74 20 74 ..};....struct t
01D520: 69 6D 65 72 5F 62 6C 6F 63 6B 20 7B 0D 0A 20 20 imer_block {..
01D530: 73 74 72 75 63 74 20 74 69 6D 65 72 5F 62 6C 6F struct timer_blo
01D540: 63 6B 20 2A 74 69 6D 65 72 5F 6C 69 6E 6B 3B 0D ck *timer_link;.
01D550: 0A 20 20 65 76 5F 62 6C 6F 63 6B 20 20 74 69 6D . ev_block tim
01D560: 65 72 5F 65 76 65 6E 74 3B 0D 0A 7D 3B 0D 0A 0D er_event;..};...
01D570: 0A 73 74 72 75 63 74 20 74 69 63 6B 5F 62 6C 6F .struct tick_blo
01D580: 63 6B 20 7B 0D 0A 20 20 73 74 72 75 63 74 20 74 ck {.. struct t
01D590: 69 63 6B 5F 62 6C 6F 63 6B 20 2A 74 69 63 6B 65 ick_block *ticke
01D5A0: 72 5F 6C 69 6E 6B 3B 0D 0A 20 20 69 6E 74 20 20 r_link;.. int
01D5B0: 20 20 20 20 20 74 69 63 6B 65 72 5F 72 65 63 68 ticker_rech
01D5C0: 61 72 67 65 5F 63 6F 75 6E 74 3B 0D 0A 20 20 69 arge_count;.. i
01D5D0: 6E 74 20 20 20 20 20 20 20 74 69 63 6B 65 72 5F nt ticker_
01D5E0: 63 6F 75 6E 74 3B 0D 0A 20 20 65 76 5F 62 6C 6F count;.. ev_blo
01D5F0: 63 6B 20 20 74 69 63 6B 65 72 5F 65 76 65 6E 74 ck ticker_event
01D600: 5F 77 69 74 68 2C 20 20 30 2C 30 2C 0D 0A 20 20 _with, 0,0,..
01D610: 20 20 52 4C 5F 4C 29 3B 0D 0A 7D 0D 0A 0D 0A 0D RL_L);..}.....
01D620: 0A 2F 2A 20 20 52 65 73 74 61 72 74 20 73 6F 75 ./* Restart sou
01D630: 6E 64 73 20 61 66 74 65 72 20 74 68 65 79 20 68 nds after they h
01D640: 61 76 65 20 62 65 65 6E 20 68 65 6C 64 2F 73 74 ave been held/st
01D650: 6F 70 70 65 64 20 20 2A 2F 0D 0A 0D 0A 53 5F 63 opped */....S_c
01D660: 6F 6E 74 69 6E 75 65 28 29 0D 0A 7B 0D 0A 20 20 ontinue()..{..
01D670: 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 50 55 53 inline(.. PUS
01D680: 48 5F 49 58 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C H_IX,.. CALL,
01D690: 20 30 78 42 43 42 39 2C 0D 0A 20 20 20 20 50 4F 0xBCB9,.. PO
01D6A0: 50 5F 49 58 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F P_IX);..}....../
01D6B0: 2A 20 20 53 65 74 20 75 70 20 61 6E 20 61 6D 70 * Set up an amp
01D6C0: 6C 69 74 75 64 65 20 65 6E 76 65 6C 6F 70 65 20 litude envelope
01D6D0: 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 54 68 69 */../*.. Thi
01D6E0: 73 20 74 61 6B 65 73 20 74 68 65 20 65 6E 76 65 s takes the enve
01D6F0: 6C 6F 70 65 20 6E 75 6D 62 65 72 20 31 2D 31 35 lope number 1-15
01D700: 20 61 6E 64 20 61 20 70 6F 69 6E 74 65 72 20 74 and a pointer t
01D710: 6F 20 61 6E 20 65 6E 76 65 6C 6F 70 65 20 73 74 o an envelope st
01D720: 72 75 63 74 75 72 65 2E 0D 0A 20 20 20 20 49 74 ructure... It
01D730: 20 72 65 74 75 72 6E 73 20 54 52 55 45 20 28 31 returns TRUE (1
01D740: 29 20 69 66 20 74 68 65 20 65 6E 76 65 6C 6F 70 ) if the envelop
01D750: 65 20 77 61 73 20 73 65 74 20 75 70 20 4F 4B 0D e was set up OK.
01D760: 0A 20 20 20 20 61 6E 64 20 46 41 4C 53 45 20 28 . and FALSE (
01D770: 30 29 20 69 66 20 74 68 65 20 65 6E 76 65 6C 6F 0) if the envelo
01D780: 70 65 20 6E 75 6D 62 65 72 20 77 61 73 20 69 6E pe number was in
01D790: 76 61 6C 69 64 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 valid..*/....int
01D7A0: 20 53 5F 61 6D 70 6C 5F 65 6E 76 65 6C 6F 70 65 S_ampl_envelope
01D7B0: 28 6E 75 6D 62 65 72 2C 20 65 6E 76 65 6C 6F 70 (number, envelop
01D7C0: 65 29 0D 0A 20 20 73 6F 75 6E 64 5F 65 6E 76 65 e).. sound_enve
01D7D0: 6C 6F 70 65 20 2A 65 6E 76 65 6C 6F 70 65 3B 0D lope *envelope;.
01D7E0: 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 20 3D 20 6E .{.. reg_a = n
01D7F0: 75 6D 62 65 72 3B 0D 0A 20 20 72 65 67 5F 68 6C umber;.. reg_hl
01D800: 3B 0D 0A 7D 0D 0A 0D 0A 2A 2F 0D 0A 0D 0A 0D 0A ;..}....*/......
01D810: 0D 0A 0D 0A 2F 2A 20 20 52 65 73 65 74 20 74 68 ..../* Reset th
01D820: 65 20 4B 65 72 6E 65 6C 20 20 2A 2F 0D 0A 2F 2A e Kernel */../*
01D830: 0D 0A 20 20 20 20 74 68 65 72 65 20 61 72 65 20 .. there are
01D840: 73 65 76 65 72 61 6C 20 70 6F 73 73 69 62 6C 65 several possible
01D850: 20 72 65 74 75 72 6E 20 76 61 6C 75 65 73 2C 20 return values,
01D860: 63 75 73 74 6F 6D 69 73 65 20 74 68 65 20 66 75 customise the fu
01D870: 6E 63 74 69 6F 6E 20 74 6F 20 73 75 69 74 2E 0D nction to suit..
01D880: 0A 2A 2F 0D 0A 0D 0A 45 5F 63 68 6F 6B 65 5F 6F .*/....E_choke_o
01D890: 66 66 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E ff()..{.. inlin
01D8A0: 65 28 43 41 4C 4C 2C 20 30 78 42 43 43 38 29 3B e(CALL, 0xBCC8);
01D8B0: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 66 69 6E ..}....../* fin
01D8C0: 64 20 61 6E 64 20 69 6E 69 74 69 61 6C 69 73 65 d and initialise
01D8D0: 20 61 6C 6C 20 62 61 63 6B 67 72 6F 75 6E 64 20 all background
01D8E0: 52 4F 4D 73 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 ROMs */../*..
01D8F0: 20 20 72 65 74 75 72 6E 73 20 72 65 76 69 73 65 returns revise
01D900: 64 20 6C 61 73 74 5F 75 73 61 62 6C 65 5F 62 79 d last_usable_by
01D910: 74 65 2E 20 20 52 4F 4D 73 20 73 68 6F 75 6C 64 te. ROMs should
01D920: 6E 27 74 20 72 65 61 6C 6C 79 20 75 73 65 20 6C n't really use l
01D930: 6F 77 20 52 41 4D 2C 0D 0A 20 20 20 20 61 6E 64 ow RAM,.. and
01D940: 20 61 20 43 20 70 72 6F 67 72 61 6D 20 69 73 20 a C program is
01D950: 69 6E 20 74 72 6F 75 62 6C 65 20 61 6E 79 77 61 in trouble anywa
01D960: 79 20 69 66 20 74 68 65 79 20 64 6F 21 0D 0A 2A y if they do!..*
01D970: 2F 0D 0A 0D 0A 69 6E 74 20 45 5F 72 6F 6D 5F 77 /....int E_rom_w
01D980: 61 6C 6B 28 66 69 72 73 74 5F 75 73 61 62 6C 65 alk(first_usable
01D990: 5F 62 79 74 65 2C 20 6C 61 73 74 5F 75 73 61 62 _byte, last_usab
01D9A0: 6C 65 5F 62 79 74 65 29 0D 0A 7B 0D 0A 20 20 72 le_byte)..{.. r
01D9B0: 65 67 5F 64 65 20 3D 20 66 69 72 73 74 5F 75 73 eg_de = first_us
01D9C0: 61 62 6C 65 5F 62 79 74 65 3B 0D 0A 20 20 72 65 able_byte;.. re
01D9D0: 67 5F 68 6C 20 3D 20 6C 61 73 74 5F 75 73 61 62 g_hl = last_usab
01D9E0: 6C 65 5F 62 79 74 65 3B 0D 0A 20 20 69 6E 6C 69 le_byte;.. inli
01D9F0: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 ne(.. LD_HL_f
01DA00: 20 3D 20 65 6E 76 65 6C 6F 70 65 3B 0D 0A 20 20 = envelope;..
01DA10: 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F inline(.. LD_
01DA20: 41 5F 66 72 6F 6D 2C 20 20 26 72 65 67 5F 61 2C A_from, ®_a,
01DA30: 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D .. LD_HL_from
01DA40: 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 , ®_hl,..
01DA50: 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 43 CALL, 0xBC
01DA60: 42 43 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 77 BC,.. LD_HL_w
01DA70: 69 74 68 2C 20 30 2C 30 2C 0D 0A 20 20 20 20 52 ith, 0,0,.. R
01DA80: 4C 5F 4C 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A L_L);..}....../*
01DA90: 20 20 53 65 74 20 75 70 20 61 20 74 6F 6E 65 20 Set up a tone
01DAA0: 65 6E 76 65 6C 6F 70 65 20 20 2A 2F 0D 0A 2F 2A envelope */../*
01DAB0: 0D 0A 20 20 20 20 61 73 20 70 65 72 20 53 5F 61 .. as per S_a
01DAC0: 6D 70 6C 5F 65 6E 76 65 6C 6F 70 65 0D 0A 2A 2F mpl_envelope..*/
01DAD0: 0D 0A 0D 0A 69 6E 74 20 53 5F 74 6F 6E 65 5F 65 ....int S_tone_e
01DAE0: 6E 76 65 6C 6F 70 65 28 6E 75 6D 62 65 72 2C 20 nvelope(number,
01DAF0: 65 6E 76 65 6C 6F 70 65 29 0D 0A 20 20 73 6F 75 envelope).. sou
01DB00: 6E 64 5F 65 6E 76 65 6C 6F 70 65 20 2A 65 6E 76 nd_envelope *env
01DB10: 65 6C 6F 70 65 3B 0D 0A 7B 0D 0A 20 20 72 65 67 elope;..{.. reg
01DB20: 5F 61 20 20 3D 20 6E 75 6D 62 65 72 3B 0D 0A 20 _a = number;..
01DB30: 20 72 65 67 5F 68 6C 20 3D 20 65 6E 76 65 6C 6F reg_hl = envelo
01DB40: 70 65 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A pe;.. inline(..
01DB50: 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 20 LD_A_from,
01DB60: 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 4C 44 5F ®_a,.. LD_
01DB70: 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C HL_from, ®_hl
01DB80: 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 ,.. CALL,
01DB90: 20 20 20 30 78 42 43 42 43 2C 0D 0A 20 20 20 20 0xBCBC,..
01DBA0: 4C 44 5F 48 4C 5F 77 69 74 68 2C 20 30 2C 30 2C LD_HL_with, 0,0,
01DBB0: 0D 0A 20 20 20 20 52 4C 5F 4C 29 3B 0D 0A 7D 0D .. RL_L);..}.
01DBC0: 0A 0D 0A 0D 0A 2F 2A 20 20 47 65 74 20 74 68 65 ...../* Get the
01DBD0: 20 61 64 64 72 65 73 73 20 6F 66 20 61 20 73 6F address of a so
01DBE0: 75 6E 64 20 61 6D 70 6C 69 74 75 64 65 20 65 6E und amplitude en
01DBF0: 76 65 6C 6F 70 65 20 20 2A 2F 0D 0A 2F 2A 0D 0A velope */../*..
01DC00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01DC10: 19 00 00 00 02 09 4E E5 19 00 41 02 00 00 00 02 ......N...A.....
01DC20: 19 00 46 02 00 00 00 02 19 00 42 02 00 00 00 02 ..F.......B.....
01DC30: 19 00 47 02 00 00 00 02 19 00 43 02 00 00 00 02 ..G.......C.....
01DC40: 19 00 48 02 00 00 00 02 19 00 44 02 00 00 00 02 ..H.......D.....
01DC50: 19 00 49 02 00 00 00 02 19 00 45 02 00 00 00 02 ..I.......E.....
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: 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 rom, ®_hl,..
01DD10: 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 LD_DE_from, &
01DD20: 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 43 41 4C reg_de,.. CAL
01DD30: 4C 2C 20 20 20 20 20 20 20 30 78 42 43 43 42 2C L, 0xBCCB,
01DD40: 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F .. LD_HL_into
01DD50: 2C 20 26 72 65 67 5F 68 6C 29 3B 0D 0A 20 20 72 , ®_hl);.. r
01DD60: 65 74 75 72 6E 20 72 65 67 5F 68 6C 3B 0D 0A 7D eturn reg_hl;..}
01DD70: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 69 6E 69 74 69 61 ....../* initia
01DD80: 6C 69 73 65 20 61 20 70 61 72 74 69 63 75 6C 61 lise a particula
01DD90: 72 20 62 61 63 6B 67 72 6F 75 6E 64 20 52 4F 4D r background ROM
01DDA0: 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 72 65 */../*.. re
01DDB0: 74 75 72 6E 73 20 72 65 76 69 73 65 64 20 6C 61 turns revised la
01DDC0: 73 74 5F 75 73 61 62 6C 65 5F 62 79 74 65 2E 20 st_usable_byte.
01DDD0: 20 52 4F 4D 73 20 73 68 6F 75 6C 64 6E 27 74 20 ROMs shouldn't
01DDE0: 72 65 61 6C 6C 79 20 75 73 65 20 6C 6F 77 20 52 really use low R
01DDF0: 41 4D 2C 0D 0A 20 20 20 20 61 6E 64 20 61 20 43 AM,.. and a C
01DE00: 20 70 72 6F 67 72 61 6D 20 69 73 20 69 6E 20 74 program is in t
01DE10: 72 6F 75 62 6C 65 20 61 6E 79 77 61 79 20 69 66 rouble anyway if
01DE20: 20 74 68 65 79 20 64 6F 21 0D 0A 2A 2F 0D 0A 0D they do!..*/...
01DE30: 0A 45 5F 69 6E 69 74 5F 62 61 63 6B 28 52 4F 4D .E_init_back(ROM
01DE40: 5F 73 65 6C 65 63 74 5F 61 64 64 72 65 73 73 2C _select_address,
01DE50: 20 66 69 72 73 74 5F 75 73 61 62 6C 65 5F 62 79 first_usable_by
01DE60: 74 65 2C 20 6C 61 73 74 5F 75 73 61 62 6C 65 5F te, last_usable_
01DE70: 62 79 74 65 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F byte)..{.. reg_
01DE80: 62 63 20 3D 20 52 4F 4D 5F 73 65 6C 65 63 74 5F bc = ROM_select_
01DE90: 61 64 64 72 65 73 73 3B 0D 0A 20 20 72 65 67 5F address;.. reg_
01DEA0: 64 65 20 3D 20 66 69 72 73 74 5F 75 73 61 62 6C de = first_usabl
01DEB0: 65 5F 62 79 74 65 3B 0D 0A 20 20 72 65 67 5F 68 e_byte;.. reg_h
01DEC0: 6C 20 3D 20 6C 61 73 74 5F 75 73 61 62 6C 65 5F l = last_usable_
01DED0: 62 79 74 65 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 byte;.. inline(
01DEE0: 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D .. LD_HL_from
01DEF0: 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 , ®_hl,..
01DF00: 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D .. LD_HL_from
01DF10: 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 , ®_hl,..
01DF20: 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_DE_from, ®
01DF30: 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 5F _de,.. LD_BC_
01DF40: 66 72 6F 6D 2C 20 26 72 65 67 5F 62 63 2C 0D 0A from, ®_bc,..
01DF50: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
01DF60: 30 78 42 43 45 30 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0xBCE0);..}.....
01DF70: 0A 2F 2A 20 20 50 75 74 20 61 20 62 6C 6F 63 6B ./* Put a block
01DF80: 20 6F 6E 74 6F 20 74 68 65 20 66 61 73 74 20 74 onto the fast t
01DF90: 69 63 6B 65 72 20 6C 69 73 74 20 20 2A 2F 0D 0A icker list */..
01DFA0: 0D 0A 45 5F 61 64 64 5F 66 61 73 74 5F 74 69 63 ..E_add_fast_tic
01DFB0: 6B 65 72 28 66 61 73 74 5F 74 69 63 6B 65 72 5F ker(fast_ticker_
01DFC0: 62 6C 6F 63 6B 29 0D 0A 7B 0D 0A 20 20 72 65 67 block)..{.. reg
01DFD0: 5F 68 6C 20 3D 20 66 61 73 74 5F 74 69 63 6B 65 _hl = fast_ticke
01DFE0: 72 5F 62 6C 6F 63 6B 3B 0D 0A 20 20 69 6E 6C 69 r_block;.. inli
01DFF0: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 ne(.. LD_HL_f
01E000: 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 rom, ®_hl,..
01E010: 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 CALL, 0
01E020: 78 42 43 45 33 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A xBCE3);..}......
01E030: 2F 2A 20 20 52 65 6D 6F 76 65 20 61 20 62 6C 6F /* Remove a blo
01E040: 63 6B 20 66 72 6F 6D 20 74 68 65 20 66 61 73 74 ck from the fast
01E050: 20 74 69 63 6B 65 72 20 6C 69 73 74 20 20 2A 2F ticker list */
01E060: 0D 0A 0D 0A 45 5F 64 65 6C 5F 66 61 73 74 5F 74 ....E_del_fast_t
01E070: 69 63 6B 65 72 28 66 61 73 74 5F 74 69 63 6B 65 icker(fast_ticke
01E080: 72 5F 62 6C 6F 63 6B 29 0D 0A 7B 0D 0A 20 20 72 r_block)..{.. r
01E090: 65 67 5F 68 6C 20 3D 20 66 61 73 74 5F 74 69 63 eg_hl = fast_tic
01E0A0: 6B 65 72 5F 62 6C 6F 63 6B 3B 0D 0A 20 20 69 6E ker_block;.. in
01E0B0: 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 48 4C line(.. LD_HL
01E0C0: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D _from, ®_hl,.
01E0D0: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
01E0E0: 20 30 78 42 43 45 36 29 3B 0D 0A 7D 0D 0A 0D 0A 0xBCE6);..}....
01E0F0: 0D 0A 0D 0A 2F 2A 20 20 70 75 74 20 61 20 62 6C ..../* put a bl
01E100: 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_DE_from, ®
01E110: 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 5F _de,.. LD_BC_
01E120: 66 72 6F 6D 2C 20 26 72 65 67 5F 62 63 2C 0D 0A from, ®_bc,..
01E130: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
01E140: 30 78 42 43 43 45 2C 0D 0A 20 20 20 20 4C 44 5F 0xBCCE,.. LD_
01E150: 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 68 6C HL_into, ®_hl
01E160: 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 72 65 67 );.. return reg
01E170: 5F 68 6C 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 _hl;..}....../*
01E180: 20 49 6E 74 72 6F 64 75 63 65 20 61 6E 20 52 53 Introduce an RS
01E190: 58 20 74 6F 20 74 68 65 20 66 69 72 6D 77 61 72 X to the firmwar
01E1A0: 65 20 20 2A 2F 0D 0A 0D 0A 45 5F 6C 6F 67 5F 65 e */....E_log_e
01E1B0: 78 74 28 63 6F 6D 6D 61 6E 64 5F 74 61 62 6C 65 xt(command_table
01E1C0: 5F 61 64 64 72 65 73 73 2C 20 6B 65 72 6E 65 6C _address, kernel
01E1D0: 5F 52 41 4D 5F 61 64 64 72 65 73 73 29 0D 0A 7B _RAM_address)..{
01E1E0: 0D 0A 20 20 72 65 67 5F 62 63 20 3D 20 63 6F 6D .. reg_bc = com
01E1F0: 6D 61 6E 64 5F 74 61 62 6C 65 5F 61 64 64 72 65 mand_table_addre
01E200: 73 73 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 ss;.. reg_hl =
01E210: 6B 65 72 6E 65 6C 5F 52 41 4D 5F 61 64 64 72 65 kernel_RAM_addre
01E220: 73 73 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A ss;.. inline(..
01E230: 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 LD_HL_from,
01E240: 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 ®_hl,.. LD
01E250: 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 62 _BC_from, ®_b
01E260: 63 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 c,.. CALL,
01E270: 20 20 20 20 30 78 42 43 44 31 29 3B 0D 0A 7D 0D 0xBCD1);..}.
01E280: 0A 0D 0A 0D 0A 2F 2A 20 20 53 65 61 72 63 68 20 ...../* Search
01E290: 66 6F 72 20 61 6E 20 52 53 58 2C 20 62 61 63 6B for an RSX, back
01E2A0: 67 72 6F 75 6E 64 20 52 4F 4D 2C 20 6F 72 20 66 ground ROM, or f
01E2B0: 6F 72 65 67 72 6F 75 6E 64 20 52 4F 4D 20 74 6F oreground ROM to
01E2C0: 20 70 72 6F 63 65 73 73 20 61 20 63 6F 6D 6D 61 process a comma
01E2D0: 6E 64 20 2A 2F 20 0D 0A 2F 2A 0D 0A 20 20 20 20 nd */ ../*..
01E2E0: 72 65 74 75 72 6E 73 20 54 52 55 45 20 28 31 29 returns TRUE (1)
01E2F0: 20 69 66 20 63 6F 6D 6D 61 6E 64 20 66 6F 75 6E if command foun
01E300: 6F 63 6B 20 6F 6E 74 6F 20 74 68 65 20 74 69 63 ock onto the tic
01E310: 6B 20 6C 69 73 74 20 20 2A 2F 0D 0A 0D 0A 45 5F k list */....E_
01E320: 61 64 64 5F 74 69 63 6B 65 72 28 74 69 63 6B 5F add_ticker(tick_
01E330: 62 6C 6F 63 6B 2C 20 69 6E 69 74 69 61 6C 5F 63 block, initial_c
01E340: 6F 75 6E 74 2C 20 72 65 63 68 61 72 67 65 5F 76 ount, recharge_v
01E350: 61 6C 75 65 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F alue)..{.. reg_
01E360: 68 6C 20 3D 20 74 69 63 6B 5F 62 6C 6F 63 6B 3B hl = tick_block;
01E370: 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 69 6E 69 .. reg_de = ini
01E380: 74 69 61 6C 5F 63 6F 75 6E 74 3B 0D 0A 20 20 72 tial_count;.. r
01E390: 65 67 5F 62 63 20 3D 20 72 65 63 68 61 72 67 65 eg_bc = recharge
01E3A0: 5F 76 61 6C 75 65 3B 0D 0A 20 20 69 6E 6C 69 6E _value;.. inlin
01E3B0: 65 28 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 e(.. LD_HL_fr
01E3C0: 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 om, ®_hl,..
01E3D0: 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 LD_DE_from, &r
01E3E0: 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 42 eg_de,.. LD_B
01E3F0: 43 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 62 63 2C C_from, ®_bc,
01E400: 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 .. CALL,
01E410: 20 20 30 78 42 43 45 39 29 3B 0D 0A 7D 0D 0A 0D 0xBCE9);..}...
01E420: 0A 0D 0A 2F 2A 20 20 52 65 6D 6F 76 65 20 61 20 .../* Remove a
01E430: 62 6C 6F 63 6B 20 66 72 6F 6D 20 74 68 65 20 74 block from the t
01E440: 69 63 6B 20 6C 69 73 74 20 20 2A 2F 0D 0A 2F 2A ick list */../*
01E450: 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 63 6F .. returns co
01E460: 75 6E 74 20 72 65 6D 61 69 6E 69 6E 67 20 62 65 unt remaining be
01E470: 66 6F 72 65 20 6E 65 78 74 20 65 76 65 6E 74 2C fore next event,
01E480: 0D 0A 20 20 20 20 6F 72 20 32 35 37 20 69 66 20 .. or 257 if
01E490: 74 69 63 6B 20 62 6C 6F 63 6B 20 6E 6F 74 20 66 tick block not f
01E4A0: 6F 75 6E 64 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 ound..*/....int
01E4B0: 45 5F 64 65 6C 5F 74 69 63 6B 65 72 28 74 69 63 E_del_ticker(tic
01E4C0: 6B 5F 62 6C 6F 63 6B 29 0D 0A 7B 0D 0A 20 20 72 k_block)..{.. r
01E4D0: 65 67 5F 68 6C 20 3D 20 74 69 63 6B 5F 62 6C 6F eg_hl = tick_blo
01E4E0: 63 6B 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A ck;.. inline(..
01E4F0: 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 LD_HL_from,
01E500: 64 2C 20 61 6E 64 20 46 41 4C 53 45 20 28 30 29 d, and FALSE (0)
01E510: 20 6F 74 68 65 72 77 69 73 65 2E 0D 0A 20 20 20 otherwise...
01E520: 20 41 6C 73 6F 20 73 65 74 73 20 52 4F 4D 5F 73 Also sets ROM_s
01E530: 65 6C 65 63 74 5F 61 64 64 72 65 73 73 20 61 6E elect_address an
01E540: 64 20 72 6F 75 74 69 6E 65 5F 61 64 64 72 65 73 d routine_addres
01E550: 73 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 45 5F 66 s..*/....int E_f
01E560: 69 6E 64 5F 63 6F 6D 6D 61 6E 64 28 63 6F 6D 6D ind_command(comm
01E570: 61 6E 64 5F 6E 61 6D 65 2C 20 70 5F 52 4F 4D 5F and_name, p_ROM_
01E580: 73 65 6C 65 63 74 5F 61 64 64 72 65 73 73 2C 20 select_address,
01E590: 70 5F 72 6F 75 74 69 6E 65 5F 61 64 64 72 65 73 p_routine_addres
01E5A0: 73 29 0D 0A 20 20 69 6E 74 20 20 2A 70 5F 52 4F s).. int *p_RO
01E5B0: 4D 5F 73 65 6C 65 63 74 5F 61 64 64 72 65 73 73 M_select_address
01E5C0: 2C 20 2A 70 5F 72 6F 75 74 69 6E 65 5F 61 64 64 , *p_routine_add
01E5D0: 72 65 73 73 3B 0D 0A 7B 0D 0A 20 20 72 65 67 5F ress;..{.. reg_
01E5E0: 68 6C 20 3D 20 63 6F 6D 6D 61 6E 64 5F 6E 61 6D hl = command_nam
01E5F0: 65 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 e;.. inline(..
01E600: 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 LD_HL_from, &
01E610: 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C reg_hl,.. CAL
01E620: 4C 2C 20 20 20 20 20 20 20 30 78 42 43 44 34 2C L, 0xBCD4,
01E630: 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F .. LD_HL_into
01E640: 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 , ®_hl,..
01E650: 4C 44 5F 42 43 5F 69 6E 74 6F 2C 20 26 72 65 67 LD_BC_into, ®
01E660: 5F 62 63 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 77 _bc,.. LD_A_w
01E670: 69 74 68 2C 20 20 30 2C 0D 0A 20 20 20 20 52 4C ith, 0,.. RL
01E680: 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 6E 74 A,.. LD_A_int
01E690: 6F 2C 20 20 26 72 65 67 5F 66 6C 61 67 73 29 3B o, ®_flags);
01E6A0: 0D 0A 20 20 2A 70 5F 52 4F 4D 5F 73 65 6C 65 63 .. *p_ROM_selec
01E6B0: 74 20 3D 20 72 65 67 5F 62 63 20 26 20 30 78 46 t = reg_bc & 0xF
01E6C0: 46 3B 0D 0A 20 20 2A 70 5F 72 6F 75 74 69 6E 65 F;.. *p_routine
01E6D0: 5F 61 64 64 72 65 73 73 20 3D 20 72 65 67 5F 68 _address = reg_h
01E6E0: 6C 3B 0D 0A 20 20 72 65 74 75 72 6E 20 72 65 67 l;.. return reg
01E6F0: 5F 66 6C 61 67 73 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A _flags;..}......
01E700: 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 ®_hl,.. CA
01E710: 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 43 45 43 LL, 0xBCEC
01E720: 2C 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 69 6E 74 ,.. LD_DE_int
01E730: 6F 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 o, ®_de,..
01E740: 20 4C 44 5F 41 5F 77 69 74 68 2C 20 20 30 2C 0D LD_A_with, 0,.
01E750: 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 20 20 4C . RLA,.. L
01E760: 44 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 65 67 5F D_A_into, ®_
01E770: 66 6C 61 67 73 29 3B 0D 0A 20 20 72 65 74 75 72 flags);.. retur
01E780: 6E 20 72 65 67 5F 66 6C 61 67 73 20 20 3F 20 20 n reg_flags ?
01E790: 72 65 67 5F 64 65 20 20 3A 20 20 32 35 37 20 3B reg_de : 257 ;
01E7A0: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 49 6E 69 ..}....../* Ini
01E7B0: 74 69 61 6C 69 73 65 20 61 6E 20 65 76 65 6E 74 tialise an event
01E7C0: 20 62 6C 6F 63 6B 20 20 2A 2F 0D 0A 0D 0A 45 5F block */....E_
01E7D0: 69 6E 69 74 5F 65 76 65 6E 74 28 65 76 65 6E 74 init_event(event
01E7E0: 5F 62 6C 6F 63 6B 2C 20 65 76 65 6E 74 5F 63 6C _block, event_cl
01E7F0: 61 73 73 2C 20 52 4F 4D 5F 73 65 6C 65 63 74 2C ass, ROM_select,
01E800: 20 65 76 65 6E 74 5F 72 6F 75 74 69 6E 65 29 0D event_routine).
01E810: 0A 7B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 65 .{.. reg_hl = e
01E820: 76 65 6E 74 5F 62 6C 6F 63 6B 3B 0D 0A 20 20 72 vent_block;.. r
01E830: 65 67 5F 62 63 20 3D 20 28 65 76 65 6E 74 5F 63 eg_bc = (event_c
01E840: 6C 61 73 73 20 3C 3C 20 38 29 20 2B 20 52 4F 4D lass << 8) + ROM
01E850: 5F 73 65 6C 65 63 74 3B 0D 0A 20 20 72 65 67 5F _select;.. reg_
01E860: 64 65 20 3D 20 65 76 65 6E 74 5F 72 6F 75 74 69 de = event_routi
01E870: 6E 65 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A ne;.. inline(..
01E880: 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 LD_HL_from,
01E890: 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 ®_hl,.. LD
01E8A0: 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 _DE_from, ®_d
01E8B0: 65 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 5F 66 72 e,.. LD_BC_fr
01E8C0: 6F 6D 2C 20 26 72 65 67 5F 62 63 2C 0D 0A 20 20 om, ®_bc,..
01E8D0: 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 CALL, 0x
01E8E0: 42 43 45 46 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F BCEF);..}....../
01E8F0: 2A 20 20 4B 69 63 6B 20 61 6E 20 65 76 65 6E 74 * Kick an event
01E900: 2F 2A 20 20 49 6E 69 74 69 61 6C 69 73 65 20 61 /* Initialise a
01E910: 6E 64 20 70 75 74 20 61 20 62 6C 6F 63 6B 20 6F nd put a block o
01E920: 6E 74 6F 20 74 68 65 20 66 72 61 6D 65 20 66 6C nto the frame fl
01E930: 79 62 61 63 6B 20 6C 69 73 74 20 20 2A 2F 0D 0A yback list */..
01E940: 0D 0A 45 5F 6E 65 77 5F 66 72 61 6D 65 5F 66 6C ..E_new_frame_fl
01E950: 79 28 66 72 61 6D 65 5F 66 6C 79 62 61 63 6B 5F y(frame_flyback_
01E960: 62 6C 6F 63 6B 2C 20 65 76 65 6E 74 5F 63 6C 61 block, event_cla
01E970: 73 73 2C 20 52 4F 4D 5F 73 65 6C 65 63 74 2C 20 ss, ROM_select,
01E980: 65 76 65 6E 74 5F 72 6F 75 74 69 6E 65 29 0D 0A event_routine)..
01E990: 7B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 66 72 {.. reg_hl = fr
01E9A0: 61 6D 65 5F 66 6C 79 62 61 63 6B 5F 62 6C 6F 63 ame_flyback_bloc
01E9B0: 6B 3B 0D 0A 20 20 72 65 67 5F 62 63 20 3D 20 28 k;.. reg_bc = (
01E9C0: 65 76 65 6E 74 5F 63 6C 61 73 73 20 3C 3C 20 38 event_class << 8
01E9D0: 29 20 2B 20 52 4F 4D 5F 73 65 6C 65 63 74 3B 0D ) + ROM_select;.
01E9E0: 0A 20 20 72 65 67 5F 64 65 20 3D 20 65 76 65 6E . reg_de = even
01E9F0: 74 5F 72 6F 75 74 69 6E 65 3B 0D 0A 20 20 69 6E t_routine;.. in
01EA00: 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 48 4C line(.. LD_HL
01EA10: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D _from, ®_hl,.
01EA20: 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C . LD_DE_from,
01EA30: 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C ®_de,.. L
01EA40: 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 5F D_BC_from, ®_
01EA50: 62 63 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 bc,.. CALL,
01EA60: 20 20 20 20 20 30 78 42 43 44 37 29 3B 0D 0A 7D 0xBCD7);..}
01EA70: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 50 75 74 20 61 20 ....../* Put a
01EA80: 62 6C 6F 63 6B 20 6F 6E 74 6F 20 74 68 65 20 66 block onto the f
01EA90: 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 6C 69 73 rame flyback lis
01EAA0: 74 20 20 2A 2F 0D 0A 0D 0A 45 5F 61 64 64 5F 66 t */....E_add_f
01EAB0: 72 61 6D 65 5F 66 6C 79 28 66 72 61 6D 65 5F 66 rame_fly(frame_f
01EAC0: 6C 79 62 61 63 6B 5F 62 6C 6F 63 6B 29 0D 0A 7B lyback_block)..{
01EAD0: 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 66 72 61 .. reg_hl = fra
01EAE0: 6D 65 5F 66 6C 79 62 61 63 6B 5F 62 6C 6F 63 6B me_flyback_block
01EAF0: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
01EB00: 20 62 6C 6F 63 6B 20 20 2A 2F 0D 0A 0D 0A 45 5F block */....E_
01EB10: 65 76 65 6E 74 28 65 76 65 6E 74 5F 62 6C 6F 63 event(event_bloc
01EB20: 6B 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 68 6C 20 k)..{.. reg_hl
01EB30: 3D 20 65 76 65 6E 74 5F 62 6C 6F 63 6B 3B 0D 0A = event_block;..
01EB40: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C inline(.. L
01EB50: 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F D_HL_from, ®_
01EB60: 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 hl,.. CALL,
01EB70: 20 20 20 20 20 30 78 42 43 46 32 29 3B 0D 0A 7D 0xBCF2);..}
01EB80: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 43 6C 65 61 72 20 ....../* Clear
01EB90: 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E synchronous even
01EBA0: 74 20 71 75 65 75 65 20 20 2A 2F 0D 0A 0D 0A 45 t queue */....E
01EBB0: 5F 73 79 6E 63 5F 72 65 73 65 74 28 29 0D 0A 7B _sync_reset()..{
01EBC0: 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C .. inline(CALL,
01EBD0: 20 30 78 42 43 46 35 29 3B 0D 0A 7D 0D 0A 0D 0A 0xBCF5);..}....
01EBE0: 0D 0A 2F 2A 20 20 52 65 6D 6F 76 65 20 61 20 73 ../* Remove a s
01EBF0: 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 ynchronous event
01EC00: 20 66 72 6F 6D 20 74 68 65 20 71 75 65 75 65 20 from the queue
01EC10: 20 2A 2F 0D 0A 0D 0A 45 5F 64 65 6C 5F 73 79 6E */....E_del_syn
01EC20: 63 68 72 6F 6E 6F 75 73 28 65 76 65 6E 74 5F 62 chronous(event_b
01EC30: 6C 6F 63 6B 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F lock)..{.. reg_
01EC40: 68 6C 20 3D 20 65 76 65 6E 74 5F 62 6C 6F 63 6B hl = event_block
01EC50: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
01EC60: 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 LD_HL_from, &r
01EC70: 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C eg_hl,.. CALL
01EC80: 2C 20 20 20 20 20 20 20 30 78 42 43 46 32 29 3B , 0xBCF2);
01EC90: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 47 65 74 ..}....../* Get
01ECA0: 20 6E 65 78 74 20 73 79 6E 63 68 72 6F 6E 6F 75 next synchronou
01ECB0: 73 20 65 76 65 6E 74 20 66 72 6F 6D 20 71 75 65 s event from que
01ECC0: 75 65 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 ue */../*..
01ECD0: 72 65 74 75 72 6E 73 20 74 68 65 20 61 64 64 72 returns the addr
01ECE0: 65 73 73 20 6F 66 20 74 68 65 20 65 76 65 6E 74 ess of the event
01ECF0: 20 62 6C 6F 63 6B 2C 20 6F 72 20 4E 55 4C 4C 20 block, or NULL
01ED00: 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 LD_HL_from, &r
01ED10: 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C eg_hl,.. CALL
01ED20: 2C 20 20 20 20 20 20 20 30 78 42 43 44 41 29 3B , 0xBCDA);
01ED30: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 52 65 6D ..}....../* Rem
01ED40: 6F 76 65 20 61 20 62 6C 6F 63 6B 20 66 72 6F 6D ove a block from
01ED50: 20 74 68 65 20 66 72 61 6D 65 20 66 6C 79 62 61 the frame flyba
01ED60: 63 6B 20 6C 69 73 74 20 20 2A 2F 0D 0A 0D 0A 45 ck list */....E
01ED70: 5F 64 65 6C 5F 66 72 61 6D 65 5F 66 6C 79 28 66 _del_frame_fly(f
01ED80: 72 61 6D 65 5F 66 6C 79 62 61 63 6B 5F 62 6C 6F rame_flyback_blo
01ED90: 63 6B 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 68 6C ck)..{.. reg_hl
01EDA0: 20 3D 20 66 72 61 6D 65 5F 66 6C 79 62 61 63 6B = frame_flyback
01EDB0: 5F 62 6C 6F 63 6B 3B 0D 0A 20 20 69 6E 6C 69 6E _block;.. inlin
01EDC0: 65 28 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 e(.. LD_HL_fr
01EDD0: 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 om, ®_hl,..
01EDE0: 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 CALL, 0x
01EDF0: 42 43 44 44 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F BCDD);..}....../
01EE00: 2A 20 20 49 6E 69 74 69 61 6C 69 73 65 20 61 6E * Initialise an
01EE10: 64 20 70 75 74 20 61 20 62 6C 6F 63 6B 20 6F 6E d put a block on
01EE20: 74 6F 20 74 68 65 20 66 61 73 74 20 74 69 63 6B to the fast tick
01EE30: 65 72 20 6C 69 73 74 20 20 2A 2F 0D 0A 0D 0A 45 er list */....E
01EE40: 5F 6E 65 77 5F 66 61 73 74 5F 74 69 63 6B 65 72 _new_fast_ticker
01EE50: 28 66 61 73 74 5F 74 69 63 6B 65 72 5F 62 6C 6F (fast_ticker_blo
01EE60: 63 6B 2C 20 65 76 65 6E 74 5F 63 6C 61 73 73 2C ck, event_class,
01EE70: 20 52 4F 4D 5F 73 65 6C 65 63 74 2C 20 65 76 65 ROM_select, eve
01EE80: 6E 74 5F 72 6F 75 74 69 6E 65 29 0D 0A 7B 0D 0A nt_routine)..{..
01EE90: 20 20 72 65 67 5F 68 6C 20 3D 20 66 61 73 74 5F reg_hl = fast_
01EEA0: 74 69 63 6B 65 72 5F 62 6C 6F 63 6B 3B 0D 0A 20 ticker_block;..
01EEB0: 20 72 65 67 5F 62 63 20 3D 20 28 65 76 65 6E 74 reg_bc = (event
01EEC0: 5F 63 6C 61 73 73 20 3C 3C 20 38 29 20 2B 20 52 _class << 8) + R
01EED0: 4F 4D 5F 73 65 6C 65 63 74 3B 0D 0A 20 20 72 65 OM_select;.. re
01EEE0: 67 5F 64 65 20 3D 20 65 76 65 6E 74 5F 72 6F 75 g_de = event_rou
01EEF0: 74 69 6E 65 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 tine;.. inline(
01EF00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01EF10: 1A 00 00 00 02 09 4E E5 1A 00 41 02 00 00 00 02 ......N...A.....
01EF20: 1A 00 46 02 00 00 00 02 1A 00 42 02 00 00 00 02 ..F.......B.....
01EF30: 1A 00 47 02 00 00 00 02 1A 00 43 02 00 00 00 02 ..G.......C.....
01EF40: 1A 00 48 02 00 00 00 02 1A 00 44 02 00 00 00 02 ..H.......D.....
01EF50: 1A 00 49 02 00 00 00 02 1A 00 45 02 00 00 00 02 ..I.......E.....
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: 28 30 29 20 69 66 20 74 68 65 72 65 20 69 73 20 (0) if there is
01F010: 6E 6F 6E 65 0D 0A 20 20 20 20 49 66 20 79 6F 75 none.. If you
01F020: 20 6E 65 65 64 20 74 68 65 20 70 72 65 76 69 6F need the previo
01F030: 75 73 20 65 76 65 6E 74 20 70 72 69 6F 72 69 74 us event priorit
01F040: 79 2C 20 72 65 63 6F 76 65 72 20 69 74 20 66 72 y, recover it fr
01F050: 6F 6D 20 72 65 67 5F 61 0D 0A 2A 2F 0D 0A 0D 0A om reg_a..*/....
01F060: 69 6E 74 20 45 5F 6E 65 78 74 5F 73 79 6E 63 28 int E_next_sync(
01F070: 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D )..{.. inline(.
01F080: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
01F090: 20 30 78 42 43 46 42 2C 0D 0A 20 20 20 20 4C 44 0xBCFB,.. LD
01F0A0: 5F 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 68 _HL_into, ®_h
01F0B0: 6C 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 6E 74 l,.. LD_A_int
01F0C0: 6F 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 o, ®_a,..
01F0D0: 20 4C 44 5F 41 5F 77 69 74 68 2C 20 20 30 2C 0D LD_A_with, 0,.
01F0E0: 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 20 20 4C . RLA,.. L
01F0F0: 44 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 65 67 5F D_A_into, ®_
01F100: 66 6C 61 67 73 29 3B 0D 0A 20 20 72 65 74 75 72 flags);.. retur
01F110: 6E 20 72 65 67 5F 66 6C 61 67 73 20 20 3F 20 20 n reg_flags ?
01F120: 72 65 67 5F 68 6C 20 20 3A 20 20 30 20 3B 0D 0A reg_hl : 0 ;..
01F130: 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 50 65 72 66 6F }....../* Perfo
01F140: 72 6D 20 61 20 73 79 6E 63 68 72 6F 6E 6F 75 73 rm a synchronous
01F150: 20 65 76 65 6E 74 20 72 6F 75 74 69 6E 65 20 20 event routine
01F160: 2A 2F 0D 0A 0D 0A 45 5F 64 6F 5F 73 79 6E 63 28 */....E_do_sync(
01F170: 65 76 65 6E 74 5F 72 6F 75 74 69 6E 65 29 0D 0A event_routine)..
01F180: 7B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 65 76 {.. reg_hl = ev
01F190: 65 6E 74 5F 72 6F 75 74 69 6E 65 3B 0D 0A 20 20 ent_routine;..
01F1A0: 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F inline(.. LD_
01F1B0: 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C HL_from, ®_hl
01F1C0: 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 ,.. CALL,
01F1D0: 20 20 20 30 78 42 43 46 45 29 3B 0D 0A 7D 0D 0A 0xBCFE);..}..
01F1E0: 0D 0A 0D 0A 2F 2A 20 20 46 69 6E 69 73 68 20 70 ..../* Finish p
01F1F0: 72 6F 63 65 73 73 69 6E 67 20 61 20 73 79 6E 63 rocessing a sync
01F200: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 52 65 73 65 74 20 ....../* Reset
01F210: 74 68 65 20 54 65 78 74 20 49 6E 64 69 72 65 63 the Text Indirec
01F220: 74 69 6F 6E 73 20 61 6E 64 20 63 6F 6E 74 72 6F tions and contro
01F230: 6C 20 63 6F 64 65 20 74 61 62 6C 65 20 20 2A 2F l code table */
01F240: 0D 0A 0D 0A 54 5F 72 65 73 65 74 28 29 0D 0A 7B ....T_reset()..{
01F250: 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C .. inline(CALL,
01F260: 20 30 78 42 42 35 31 29 3B 0D 0A 7D 0D 0A 0D 0A 0xBB51);..}....
01F270: 0D 0A 2F 2A 20 20 41 6C 6C 6F 77 20 63 68 61 72 ../* Allow char
01F280: 61 63 74 65 72 73 20 74 6F 20 62 65 20 70 6C 61 acters to be pla
01F290: 63 65 64 20 6F 6E 20 74 68 65 20 73 63 72 65 65 ced on the scree
01F2A0: 6E 20 20 2A 2F 0D 0A 0D 0A 54 5F 76 64 75 5F 65 n */....T_vdu_e
01F2B0: 6E 61 62 6C 65 28 29 0D 0A 7B 0D 0A 20 20 69 6E nable()..{.. in
01F2C0: 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 42 42 35 line(CALL, 0xBB5
01F2D0: 34 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 4);..}....../*
01F2E0: 50 72 65 76 65 6E 74 20 63 68 61 72 61 63 74 65 Prevent characte
01F2F0: 72 73 20 62 65 69 6E 67 20 70 6C 61 63 65 64 20 rs being placed
01F300: 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 20 20 2A on the screen *
01F310: 2F 0D 0A 0D 0A 54 5F 76 64 75 5F 64 69 73 61 62 /....T_vdu_disab
01F320: 6C 65 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E le()..{.. inlin
01F330: 65 28 43 41 4C 4C 2C 20 30 78 42 42 35 37 29 3B e(CALL, 0xBB57);
01F340: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 4F 75 74 ..}....../* Out
01F350: 70 75 74 20 61 20 63 68 61 72 61 63 74 65 72 20 put a character
01F360: 6F 72 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 or control code
01F370: 74 6F 20 74 68 65 20 74 65 78 74 20 56 44 55 20 to the text VDU
01F380: 20 2A 2F 0D 0A 0D 0A 54 5F 6F 75 74 70 75 74 28 */....T_output(
01F390: 63 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 3D c)..{.. reg_a =
01F3A0: 20 63 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A c;.. inline(..
01F3B0: 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 26 LD_A_from, &
01F3C0: 72 65 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C 4C reg_a,.. CALL
01F3D0: 2C 20 20 20 20 20 20 30 78 42 42 35 41 29 3B 0D , 0xBB5A);.
01F3E0: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 57 72 69 74 .}....../* Writ
01F3F0: 65 20 61 20 63 68 61 72 61 63 74 65 72 20 74 6F e a character to
01F400: 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 20 20 2A hronous event *
01F410: 2F 0D 0A 0D 0A 45 5F 64 6F 6E 65 5F 73 79 6E 63 /....E_done_sync
01F420: 28 70 72 65 76 69 6F 75 73 5F 70 72 69 6F 72 69 (previous_priori
01F430: 74 79 2C 20 65 76 65 6E 74 5F 62 6C 6F 63 6B 29 ty, event_block)
01F440: 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 70 ..{.. reg_a = p
01F450: 72 65 76 69 6F 75 73 5F 70 72 69 6F 72 69 74 79 revious_priority
01F460: 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 65 76 ;.. reg_hl = ev
01F470: 65 6E 74 5F 62 6C 6F 63 6B 3B 0D 0A 20 20 69 6E ent_block;.. in
01F480: 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F line(.. LD_A_
01F490: 66 72 6F 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A from, ®_a,..
01F4A0: 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 LD_HL_from,
01F4B0: 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 ®_hl,.. CA
01F4C0: 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 44 30 31 LL, 0xBD01
01F4D0: 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 44 );..}....../* D
01F4E0: 69 73 61 62 6C 65 20 6E 6F 72 6D 61 6C 20 73 79 isable normal sy
01F4F0: 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 73 nchronous events
01F500: 20 20 2A 2F 0D 0A 0D 0A 45 5F 65 76 65 6E 74 5F */....E_event_
01F510: 64 69 73 61 62 6C 65 28 29 0D 0A 7B 0D 0A 20 20 disable()..{..
01F520: 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 42 inline(CALL, 0xB
01F530: 44 30 34 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A D04);..}....../*
01F540: 20 20 45 6E 61 62 6C 65 20 6E 6F 72 6D 61 6C 20 Enable normal
01F550: 73 79 6E 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E synchronous even
01F560: 74 73 20 20 2A 2F 0D 0A 0D 0A 45 5F 65 76 65 6E ts */....E_even
01F570: 74 5F 65 6E 61 62 6C 65 28 29 0D 0A 7B 0D 0A 20 t_enable()..{..
01F580: 20 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 inline(CALL, 0x
01F590: 42 44 30 37 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F BD07);..}....../
01F5A0: 2A 20 20 50 72 65 76 65 6E 74 20 61 20 73 79 6E * Prevent a syn
01F5B0: 63 68 72 6F 6E 6F 75 73 20 65 76 65 6E 74 20 66 chronous event f
01F5C0: 72 6F 6D 20 6F 63 63 75 72 72 69 6E 67 20 20 2A rom occurring *
01F5D0: 2F 0D 0A 0D 0A 45 5F 64 69 73 61 72 6D 5F 65 76 /....E_disarm_ev
01F5E0: 65 6E 74 28 65 76 65 6E 74 5F 62 6C 6F 63 6B 29 ent(event_block)
01F5F0: 0D 0A 7B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 ..{.. reg_hl =
01F600: 20 74 68 65 20 73 63 72 65 65 6E 2E 20 20 43 6F the screen. Co
01F610: 6E 74 72 6F 6C 20 63 6F 64 65 73 20 61 72 65 20 ntrol codes are
01F620: 70 72 69 6E 74 65 64 2C 20 6E 6F 74 20 6F 62 65 printed, not obe
01F630: 79 65 64 20 20 2A 2F 0D 0A 0D 0A 54 5F 77 72 5F yed */....T_wr_
01F640: 63 68 61 72 28 63 29 0D 0A 7B 0D 0A 20 20 72 65 char(c)..{.. re
01F650: 67 5F 61 20 3D 20 63 3B 0D 0A 20 20 69 6E 6C 69 g_a = c;.. inli
01F660: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 ne(.. LD_A_fr
01F670: 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 om, ®_a,..
01F680: 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 78 42 42 CALL, 0xBB
01F690: 35 44 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 5D);..}....../*
01F6A0: 20 52 65 61 64 20 61 20 63 68 61 72 61 63 74 65 Read a characte
01F6B0: 72 20 66 72 6F 6D 20 74 68 65 20 73 63 72 65 65 r from the scree
01F6C0: 6E 2E 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 n. */../*..
01F6D0: 52 65 74 75 72 6E 73 20 74 68 65 20 63 68 61 72 Returns the char
01F6E0: 61 63 74 65 72 20 66 6F 75 6E 64 20 6F 72 20 45 acter found or E
01F6F0: 4F 46 20 28 2D 31 29 20 69 66 20 6E 6F 6E 65 20 OF (-1) if none
01F700: 77 61 73 20 72 65 63 6F 67 6E 69 73 65 64 0D 0A was recognised..
01F710: 2A 2F 0D 0A 0D 0A 69 6E 74 20 54 5F 72 64 5F 63 */....int T_rd_c
01F720: 68 61 72 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 har()..{.. inli
01F730: 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 ne(.. CALL,
01F740: 20 20 20 20 20 30 78 42 42 36 30 2C 0D 0A 20 20 0xBB60,..
01F750: 20 20 4C 44 5F 4C 5F 41 2C 0D 0A 20 20 20 20 4C LD_L_A,.. L
01F760: 44 5F 48 5F 77 69 74 68 2C 20 20 30 2C 0D 0A 20 D_H_with, 0,..
01F770: 20 20 20 4A 52 5F 43 2C 20 20 20 20 20 20 20 31 JR_C, 1
01F780: 2C 0D 0A 20 20 20 20 44 45 43 5F 48 4C 29 3B 0D ,.. DEC_HL);.
01F790: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 54 75 72 6E .}....../* Turn
01F7A0: 20 6F 6E 20 6F 72 20 6F 66 66 20 74 68 65 20 67 on or off the g
01F7B0: 72 61 70 68 69 63 73 20 56 44 55 20 77 72 69 74 raphics VDU writ
01F7C0: 65 20 63 68 61 72 61 63 74 65 72 20 6F 70 74 69 e character opti
01F7D0: 6F 6E 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 on */../*..
01F7E0: 54 68 65 20 70 61 72 61 6D 65 74 65 72 20 22 6F The parameter "o
01F7F0: 6E 22 20 73 68 6F 75 6C 64 20 62 65 20 54 52 55 n" should be TRU
01F800: 65 76 65 6E 74 5F 62 6C 6F 63 6B 3B 0D 0A 20 20 event_block;..
01F810: 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F inline(.. LD_
01F820: 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C HL_from, ®_hl
01F830: 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 ,.. CALL,
01F840: 20 20 20 30 78 42 44 30 41 29 3B 0D 0A 7D 0D 0A 0xBD0A);..}..
01F850: 0D 0A 0D 0A 2F 2A 20 20 41 73 6B 20 74 68 65 20 ..../* Ask the
01F860: 65 6C 61 70 73 65 64 20 74 69 6D 65 20 20 2A 2F elapsed time */
01F870: 0D 0A 0D 0A 45 5F 74 69 6D 65 5F 70 6C 65 61 73 ....E_time_pleas
01F880: 65 28 74 69 6D 65 29 0D 0A 20 20 69 6E 74 20 74 e(time).. int t
01F890: 69 6D 65 5B 32 5D 3B 0D 0A 7B 0D 0A 20 20 69 6E ime[2];..{.. in
01F8A0: 6C 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C line(.. CALL,
01F8B0: 20 20 20 20 20 20 20 30 78 42 44 30 44 2C 0D 0A 0xBD0D,..
01F8C0: 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C 20 LD_HL_into,
01F8D0: 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 ®_hl,.. LD
01F8E0: 5F 44 45 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 64 _DE_into, ®_d
01F8F0: 65 29 3B 0D 0A 20 20 74 69 6D 65 5B 30 5D 20 3D e);.. time[0] =
01F900: 20 72 65 67 5F 68 6C 3B 0D 0A 20 20 74 69 6D 65 reg_hl;.. time
01F910: 5B 31 5D 20 3D 20 72 65 67 5F 64 65 3B 0D 0A 7D [1] = reg_de;..}
01F920: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 73 65 74 20 74 68 ....../* set th
01F930: 65 20 65 6C 61 70 73 65 64 20 74 69 6D 65 20 20 e elapsed time
01F940: 2A 2F 0D 0A 0D 0A 45 5F 74 69 6D 65 5F 73 65 74 */....E_time_set
01F950: 28 74 69 6D 65 29 0D 0A 20 20 69 6E 74 20 74 69 (time).. int ti
01F960: 6D 65 5B 32 5D 3B 0D 0A 7B 0D 0A 20 20 72 65 67 me[2];..{.. reg
01F970: 5F 68 6C 20 3D 20 74 69 6D 65 5B 30 5D 3B 0D 0A _hl = time[0];..
01F980: 20 20 72 65 67 5F 64 65 20 3D 20 74 69 6D 65 5B reg_de = time[
01F990: 31 5D 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 1];.. inline(..
01F9A0: 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 LD_HL_from,
01F9B0: 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 ®_hl,.. LD
01F9C0: 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 _DE_from, ®_d
01F9D0: 65 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 e,.. CALL,
01F9E0: 20 20 20 20 30 78 42 44 31 30 29 3B 0D 0A 7D 0D 0xBD10);..}.
01F9F0: 0A 0D 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 .../* * * * * *
01FA00: 45 20 28 31 29 20 74 6F 20 74 75 72 6E 20 74 68 E (1) to turn th
01FA10: 65 20 6F 70 74 69 6F 6E 20 6F 6E 20 61 6E 64 20 e option on and
01FA20: 73 68 6F 75 6C 64 0D 0A 20 20 20 20 62 65 20 46 should.. be F
01FA30: 41 4C 53 45 20 28 30 29 20 74 6F 20 74 75 72 6E ALSE (0) to turn
01FA40: 20 69 74 20 6F 66 66 2E 0D 0A 2A 2F 0D 0A 0D 0A it off...*/....
01FA50: 54 5F 73 65 74 5F 67 72 61 70 68 69 63 28 6F 6E T_set_graphic(on
01FA60: 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 )..{.. reg_a =
01FA70: 6F 6E 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A on;.. inline(..
01FA80: 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 26 LD_A_from, &
01FA90: 72 65 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C 4C reg_a,.. CALL
01FAA0: 2C 20 20 20 20 20 20 30 78 42 42 36 33 29 3B 0D , 0xBB63);.
01FAB0: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 65 74 20 .}....../* Set
01FAC0: 74 68 65 20 73 69 7A 65 20 6F 66 20 74 68 65 20 the size of the
01FAD0: 63 75 72 72 65 6E 74 20 74 65 78 74 20 77 69 6E current text win
01FAE0: 64 6F 77 20 20 2A 2F 0D 0A 0D 0A 54 5F 77 69 6E dow */....T_win
01FAF0: 5F 65 6E 61 62 6C 65 28 78 31 2C 78 32 2C 79 31 _enable(x1,x2,y1
01FB00: 2C 79 32 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 68 ,y2)..{.. reg_h
01FB10: 6C 20 3D 20 28 78 31 20 3C 3C 20 38 29 20 2B 20 l = (x1 << 8) +
01FB20: 79 31 3B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 y1;.. reg_de =
01FB30: 28 78 32 20 3C 3C 20 38 29 20 2B 20 79 32 3B 0D (x2 << 8) + y2;.
01FB40: 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 . inline(..
01FB50: 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_HL_from, ®
01FB60: 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 5F 44 45 5F _hl,.. LD_DE_
01FB70: 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A from, ®_de,..
01FB80: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
01FB90: 30 78 42 42 36 36 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0xBB66);..}.....
01FBA0: 0A 2F 2A 20 20 47 65 74 20 74 68 65 20 73 69 7A ./* Get the siz
01FBB0: 65 20 61 6E 64 20 70 6F 73 69 74 69 6F 6E 20 6F e and position o
01FBC0: 66 20 74 68 65 20 63 75 72 72 65 6E 74 20 77 69 f the current wi
01FBD0: 6E 64 6F 77 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 ndow */../*..
01FBE0: 20 20 54 68 65 20 72 65 73 75 6C 74 73 20 61 72 The results ar
01FBF0: 65 20 70 75 74 20 69 6E 74 6F 20 74 68 65 20 34 e put into the 4
01FC00: 20 20 20 20 20 45 20 4E 20 44 20 20 20 4F 20 46 E N D O F
01FC10: 20 20 20 46 20 49 20 52 20 4D 20 35 20 20 20 20 F I R M 5
01FC20: 20 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A * * * * * */..
01FC30: 0D 0A 1A 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 ...g_hl,.. LD
01FC40: 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 _DE_from, ®_d
01FC50: 65 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 e,.. CALL,
01FC60: 20 20 20 20 30 78 42 44 31 30 29 3B 0D 0A 7D 0D 0xBD10);..}.
01FC70: 0A 0D 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 .../* * * * * *
01FC80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FC90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FCA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FCB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FCC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FCD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FCE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FCF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FD00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FD10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FD20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FD30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FD40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FD50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FD60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FD70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FD80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FD90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FDA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FDB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FDC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FDD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FDE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FDF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01FE00: 2D 63 68 61 72 61 63 74 65 72 20 76 65 63 74 6F -character vecto
01FE10: 72 20 73 75 70 70 6C 69 65 64 20 61 73 20 61 72 r supplied as ar
01FE20: 67 75 6D 65 6E 74 2E 0D 0A 20 20 20 20 20 20 65 gument... e
01FE30: 64 67 65 5B 30 5D 20 69 73 20 74 68 65 20 74 6F dge[0] is the to
01FE40: 70 6D 6F 73 74 20 72 6F 77 2E 0D 0A 20 20 20 20 pmost row...
01FE50: 20 20 65 64 67 65 5B 31 5D 20 69 73 20 74 68 65 edge[1] is the
01FE60: 20 6C 65 66 74 6D 6F 73 74 20 63 6F 6C 75 6D 6E leftmost column
01FE70: 20 6E 75 6D 62 65 72 2E 0D 0A 20 20 20 20 20 20 number...
01FE80: 65 64 67 65 5B 32 5D 20 69 73 20 74 68 65 20 62 edge[2] is the b
01FE90: 6F 74 74 6F 6D 6D 6F 73 74 20 72 6F 77 2E 0D 0A ottommost row...
01FEA0: 20 20 20 20 20 20 65 64 67 65 5B 33 5D 20 69 73 edge[3] is
01FEB0: 20 74 68 65 20 72 69 67 68 74 6D 6F 73 74 20 63 the rightmost c
01FEC0: 6F 6C 75 6D 6E 2E 0D 0A 20 20 20 20 54 68 65 20 olumn... The
01FED0: 76 61 6C 75 65 20 6F 66 20 74 68 65 20 66 75 6E value of the fun
01FEE0: 63 74 69 6F 6E 20 69 73 20 46 41 4C 53 45 20 28 ction is FALSE (
01FEF0: 30 29 20 69 66 20 74 68 65 20 77 69 6E 64 6F 77 0) if the window
01FF00: 20 63 6F 76 65 72 73 20 74 68 65 20 77 68 6F 6C covers the whol
01FF10: 65 20 73 63 72 65 65 6E 0D 0A 20 20 20 20 61 6E e screen.. an
01FF20: 64 20 54 52 55 45 20 28 31 29 20 69 66 20 69 74 d TRUE (1) if it
01FF30: 20 6F 6E 6C 79 20 63 6F 76 65 72 73 20 70 61 72 only covers par
01FF40: 74 20 6F 66 20 74 68 65 20 73 63 72 65 65 6E 2E t of the screen.
01FF50: 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 54 5F 67 65 ..*/....int T_ge
01FF60: 74 5F 77 69 6E 64 6F 77 28 65 64 67 65 29 0D 0A t_window(edge)..
01FF70: 20 20 69 6E 74 20 65 64 67 65 5B 32 5D 3B 20 20 int edge[2];
01FF80: 20 20 20 20 20 20 20 2F 2A 20 6E 6F 74 65 20 74 /* note t
01FF90: 68 65 20 6E 61 75 67 68 74 79 20 74 79 70 65 20 he naughty type
01FFA0: 63 6F 6E 76 65 72 73 69 6F 6E 20 2A 2F 0D 0A 7B conversion */..{
01FFB0: 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 63 61 73 .. reg_hl = cas
01FFC0: 74 28 75 6E 73 69 67 6E 65 64 29 20 65 64 67 65 t(unsigned) edge
01FFD0: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
01FFE0: 20 20 43 41 4C 4C 2C 20 30 78 42 42 36 39 2C 0D CALL, 0xBB69,.
01FFF0: 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C . LD_HL_into,
020000: 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 20 20 /* * * * * *
020010: 20 20 46 20 49 20 52 20 4D 20 57 20 41 20 52 20 F I R M W A R
020020: 45 20 2E 20 4C 20 49 20 42 20 20 20 20 20 20 2A E . L I B *
020030: 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 2F 2A 20 * * * * */../*
020040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020070: 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 */../*
020080: 20 20 20 20 20 46 20 49 20 52 20 4D 20 32 20 20 F I R M 2
020090: 2D 20 20 54 65 78 74 20 56 44 55 20 20 74 6F 20 - Text VDU to
0200A0: 20 47 72 61 70 68 69 63 73 20 56 44 55 20 20 20 Graphics VDU
0200B0: 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 */../*
0200C0: 20 20 20 20 20 20 20 20 43 6F 70 79 72 69 67 68 Copyrigh
0200D0: 74 20 28 43 29 20 31 39 38 35 20 48 69 53 6F 66 t (C) 1985 HiSof
0200E0: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t
0200F0: 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 20 */../*
020100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
020120: 20 20 20 20 20 20 20 20 20 20 20 20 20 2A 2F 0D */.
020130: 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 ./* * * * * * *
020140: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
020150: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
020160: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 0D 0A * * * * * */....
020170: 2F 2A 2A 2A 2A 2A 2A 20 20 20 20 20 20 54 45 58 /****** TEX
020180: 54 20 56 44 55 20 49 4E 54 45 52 46 41 43 45 20 T VDU INTERFACE
020190: 46 55 4E 43 54 49 4F 4E 53 20 20 20 20 20 20 2A FUNCTIONS *
0201A0: 2A 2A 2A 2A 2A 2F 0D 0A 0D 0A 2F 2A 20 20 46 75 *****/..../* Fu
0201B0: 6C 6C 79 20 49 6E 69 74 69 61 6C 69 73 65 20 74 lly Initialise t
0201C0: 68 65 20 54 65 78 74 20 56 44 55 20 20 2A 2F 0D he Text VDU */.
0201D0: 0A 0D 0A 54 5F 69 6E 69 74 69 61 6C 69 73 65 28 ...T_initialise(
0201E0: 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 )..{.. inline(C
0201F0: 41 4C 4C 2C 20 30 78 42 42 34 45 29 3B 0D 0A 7D ALL, 0xBB4E);..}
020200: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
020210: 1B 00 00 00 02 09 4E E5 1B 00 41 02 00 00 00 02 ......N...A.....
020220: 1B 00 46 02 00 00 00 02 1B 00 42 02 00 00 00 02 ..F.......B.....
020230: 1B 00 47 02 00 00 00 02 1B 00 43 02 00 00 00 02 ..G.......C.....
020240: 1B 00 48 02 00 00 00 02 1B 00 44 02 00 00 00 02 ..H.......D.....
020250: 1B 00 49 02 00 00 00 02 1B 00 45 02 00 00 00 02 ..I.......E.....
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 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C ®_hl,.. L
020310: 44 5F 44 45 5F 69 6E 74 6F 2C 20 26 72 65 67 5F D_DE_into, ®_
020320: 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 77 69 de,.. LD_A_wi
020330: 74 68 2C 20 20 30 2C 0D 0A 20 20 20 20 52 4C 41 th, 0,.. RLA
020340: 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F ,.. LD_A_into
020350: 2C 20 20 26 72 65 67 5F 66 6C 61 67 73 29 3B 0D , ®_flags);.
020360: 0A 20 20 65 64 67 65 5B 30 5D 20 3D 20 72 65 67 . edge[0] = reg
020370: 5F 68 6C 3B 0D 0A 20 20 65 64 67 65 5B 31 5D 20 _hl;.. edge[1]
020380: 3D 20 72 65 67 5F 68 6C 3B 0D 0A 20 20 72 65 74 = reg_hl;.. ret
020390: 75 72 6E 20 20 72 65 67 5F 66 6C 61 67 73 3B 0D urn reg_flags;.
0203A0: 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 43 6C .}......../* Cl
0203B0: 65 61 72 20 63 75 72 72 65 6E 74 20 77 69 6E 64 ear current wind
0203C0: 6F 77 20 20 2A 2F 0D 0A 0D 0A 54 5F 63 6C 65 61 ow */....T_clea
0203D0: 72 5F 77 69 6E 64 6F 77 28 29 0D 0A 7B 0D 0A 20 r_window()..{..
0203E0: 20 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 inline(CALL, 0x
0203F0: 42 42 36 43 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F BB6C);..}....../
020400: 2A 20 20 53 65 74 20 63 75 72 73 6F 72 20 68 6F * Set cursor ho
020410: 72 69 7A 6F 6E 74 61 6C 20 70 6F 73 69 74 69 6F rizontal positio
020420: 6E 20 20 2A 2F 0D 0A 0D 0A 54 5F 73 65 74 5F 63 n */....T_set_c
020430: 6F 6C 75 6D 6E 28 78 5F 63 6F 6C 75 6D 6E 29 0D olumn(x_column).
020440: 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 78 5F .{.. reg_a = x_
020450: 63 6F 6C 75 6D 6E 3B 0D 0A 20 20 69 6E 6C 69 6E column;.. inlin
020460: 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F e(.. LD_A_fro
020470: 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 m, ®_a,..
020480: 43 41 4C 4C 2C 20 20 20 20 20 20 30 78 42 42 36 CALL, 0xBB6
020490: 46 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 F);..}....../*
0204A0: 53 65 74 20 63 75 72 73 6F 72 20 76 65 72 74 69 Set cursor verti
0204B0: 63 61 6C 20 70 6F 73 69 74 69 6F 6E 20 20 2A 2F cal position */
0204C0: 0D 0A 0D 0A 54 5F 73 65 74 5F 72 6F 77 28 79 5F ....T_set_row(y_
0204D0: 72 6F 77 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 row)..{.. reg_a
0204E0: 20 3D 20 79 5F 72 6F 77 3B 0D 0A 20 20 69 6E 6C = y_row;.. inl
0204F0: 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 ine(.. LD_A_f
020500: 20 20 20 20 30 78 42 42 39 30 29 3B 0D 0A 7D 0D 0xBB90);..}.
020510: 0A 0D 0A 0D 0A 2F 2A 20 20 47 65 74 20 69 6E 6B ...../* Get ink
020520: 20 66 6F 72 20 77 72 69 74 69 6E 67 20 63 68 61 for writing cha
020530: 72 61 63 74 65 72 73 20 20 2A 2F 0D 0A 0D 0A 69 racters */....i
020540: 6E 74 20 54 5F 67 65 74 5F 70 65 6E 28 29 0D 0A nt T_get_pen()..
020550: 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 {.. inline(..
020560: 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 78 42 CALL, 0xB
020570: 42 39 33 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 B93,.. LD_A_i
020580: 6E 74 6F 2C 20 26 72 65 67 5F 61 29 3B 0D 0A 20 nto, ®_a);..
020590: 20 72 65 74 75 72 6E 20 72 65 67 5F 61 3B 0D 0A return reg_a;..
0205A0: 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 65 74 }......../* Set
0205B0: 20 69 6E 6B 20 66 6F 72 20 77 72 69 74 69 6E 67 ink for writing
0205C0: 20 74 65 78 74 20 62 61 63 6B 67 72 6F 75 6E 64 text background
0205D0: 20 20 2A 2F 0D 0A 0D 0A 54 5F 73 65 74 5F 70 61 */....T_set_pa
0205E0: 70 65 72 28 69 6E 6B 29 0D 0A 7B 0D 0A 20 20 72 per(ink)..{.. r
0205F0: 65 67 5F 61 20 3D 20 69 6E 6B 3B 0D 0A 20 20 69 eg_a = ink;.. i
020600: 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 nline(.. LD_A
020610: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A _from, ®_a,..
020620: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 CALL, 0
020630: 78 42 42 39 36 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A xBB96);..}......
020640: 2F 2A 20 20 47 65 74 20 69 6E 6B 20 66 6F 72 20 /* Get ink for
020650: 77 72 69 74 69 6E 67 20 74 65 78 74 20 62 61 63 writing text bac
020660: 6B 67 72 6F 75 6E 64 20 20 2A 2F 0D 0A 0D 0A 69 kground */....i
020670: 6E 74 20 54 5F 67 65 74 5F 70 61 70 65 72 28 29 nt T_get_paper()
020680: 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A ..{.. inline(..
020690: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 CALL, 0
0206A0: 78 42 42 39 39 2C 0D 0A 20 20 20 20 4C 44 5F 41 xBB99,.. LD_A
0206B0: 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 61 29 3B 0D _into, ®_a);.
0206C0: 0A 20 20 72 65 74 75 72 6E 20 72 65 67 5F 61 3B . return reg_a;
0206D0: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 77 61 ..}....../* Swa
0206E0: 70 20 63 75 72 72 65 6E 74 20 70 65 6E 20 61 6E p current pen an
0206F0: 64 20 70 61 70 65 72 20 69 6E 6B 73 20 20 2A 2F d paper inks */
020700: 72 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 rom, ®_a,..
020710: 20 20 43 41 4C 4C 2C 20 20 20 20 30 78 42 42 37 CALL, 0xBB7
020720: 32 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 2);..}....../*
020730: 53 65 74 20 63 75 72 73 6F 72 20 70 6F 73 69 74 Set cursor posit
020740: 69 6F 6E 20 20 2A 2F 0D 0A 0D 0A 54 5F 73 65 74 ion */....T_set
020750: 5F 63 75 72 73 6F 72 28 78 5F 63 6F 6C 75 6D 6E _cursor(x_column
020760: 2C 20 79 5F 72 6F 77 29 0D 0A 7B 0D 0A 20 20 72 , y_row)..{.. r
020770: 65 67 5F 68 6C 20 3D 20 28 78 5F 63 6F 6C 75 6D eg_hl = (x_colum
020780: 6E 20 3C 3C 20 38 29 20 2B 20 79 5F 72 6F 77 3B n << 8) + y_row;
020790: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
0207A0: 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 LD_HL_from, &re
0207B0: 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C g_hl,.. CALL,
0207C0: 20 20 20 20 20 20 20 30 78 42 42 37 35 29 3B 0D 0xBB75);.
0207D0: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 41 73 6B 20 .}....../* Ask
0207E0: 63 75 72 72 65 6E 74 20 63 75 72 73 6F 72 20 70 current cursor p
0207F0: 6F 73 69 74 69 6F 6E 20 20 2A 2F 0D 0A 0D 0A 54 osition */....T
020800: 5F 67 65 74 5F 63 75 72 73 6F 72 28 70 78 5F 63 _get_cursor(px_c
020810: 6F 6C 75 6D 6E 2C 20 70 79 5F 72 6F 77 2C 20 70 olumn, py_row, p
020820: 5F 72 6F 6C 6C 5F 63 6F 75 6E 74 29 0D 0A 20 20 _roll_count)..
020830: 69 6E 74 20 2A 70 78 5F 63 6F 6C 75 6D 6E 2C 20 int *px_column,
020840: 2A 70 79 5F 72 6F 77 2C 20 2A 70 5F 72 6F 6C 6C *py_row, *p_roll
020850: 5F 63 6F 75 6E 74 3B 0D 0A 7B 0D 0A 20 20 69 6E _count;..{.. in
020860: 6C 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C line(.. CALL,
020870: 20 20 20 20 20 20 20 30 78 42 42 37 38 2C 0D 0A 0xBB78,..
020880: 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 LD_A_into,
020890: 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 4C 44 5F ®_a,.. LD_
0208A0: 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 68 6C HL_into, ®_hl
0208B0: 29 3B 0D 0A 20 20 2A 70 5F 72 6F 6C 6C 5F 63 6F );.. *p_roll_co
0208C0: 75 6E 74 20 3D 20 72 65 67 5F 61 3B 0D 0A 20 20 unt = reg_a;..
0208D0: 2A 70 78 5F 63 6F 6C 75 6D 6E 20 20 20 20 3D 20 *px_column =
0208E0: 28 72 65 67 5F 68 6C 20 3E 3E 20 38 29 20 26 20 (reg_hl >> 8) &
0208F0: 30 78 46 46 3B 0D 0A 20 20 2A 70 79 5F 72 6F 77 0xFF;.. *py_row
020900: 0D 0A 0D 0A 54 5F 69 6E 76 65 72 73 65 28 29 0D ....T_inverse().
020910: 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 41 4C .{.. inline(CAL
020920: 4C 2C 20 30 78 42 42 39 43 29 3B 0D 0A 7D 0D 0A L, 0xBB9C);..}..
020930: 0D 0A 0D 0A 2F 2A 20 20 41 6C 6C 6F 77 20 6F 72 ..../* Allow or
020940: 20 64 69 73 61 6C 6C 6F 77 20 62 61 63 6B 67 72 disallow backgr
020950: 6F 75 6E 64 20 62 65 69 6E 67 20 77 72 69 74 74 ound being writt
020960: 65 6E 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 en */../*..
020970: 74 72 61 6E 73 70 61 72 65 6E 74 20 73 68 6F 75 transparent shou
020980: 6C 64 20 62 65 20 54 52 55 45 20 66 6F 72 20 74 ld be TRUE for t
020990: 72 61 6E 73 70 61 72 65 6E 74 20 77 72 69 74 69 ransparent writi
0209A0: 6E 67 20 61 6E 64 20 46 41 4C 53 45 20 6F 74 68 ng and FALSE oth
0209B0: 65 72 77 69 73 65 0D 0A 2A 2F 0D 0A 0D 0A 54 5F erwise..*/....T_
0209C0: 73 65 74 5F 62 61 63 6B 28 74 72 61 6E 73 70 61 set_back(transpa
0209D0: 72 65 6E 74 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F rent)..{.. reg_
0209E0: 61 20 3D 20 74 72 61 6E 73 70 61 72 65 6E 74 20 a = transparent
0209F0: 20 3F 20 20 31 20 20 3A 20 20 30 20 3B 0D 0A 20 ? 1 : 0 ;..
020A00: 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 inline(.. LD
020A10: 5F 41 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 61 2C _A_from, ®_a,
020A20: 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 .. CALL,
020A30: 20 30 78 42 42 39 46 29 3B 0D 0A 7D 0D 0A 0D 0A 0xBB9F);..}....
020A40: 0D 0A 2F 2A 20 20 41 73 6B 20 69 66 20 62 61 63 ../* Ask if bac
020A50: 6B 67 72 6F 75 6E 64 20 69 73 20 74 6F 20 62 65 kground is to be
020A60: 20 77 72 69 74 74 65 6E 20 77 69 74 68 20 63 68 written with ch
020A70: 61 72 61 63 74 65 72 73 20 20 2A 2F 0D 0A 2F 2A aracters */../*
020A80: 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 54 52 .. returns TR
020A90: 55 45 20 66 6F 72 20 74 72 61 6E 73 70 61 72 65 UE for transpare
020AA0: 6E 74 20 77 72 69 74 69 6E 67 20 61 6E 64 20 46 nt writing and F
020AB0: 41 4C 53 45 20 6F 74 68 65 72 77 69 73 65 0D 0A ALSE otherwise..
020AC0: 2A 2F 0D 0A 0D 0A 69 6E 74 20 54 5F 67 65 74 5F */....int T_get_
020AD0: 62 61 63 6B 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C back()..{.. inl
020AE0: 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 ine(.. CALL,
020AF0: 20 20 20 20 20 30 78 42 42 41 32 2C 0D 0A 20 20 0xBBA2,..
020B00: 20 20 20 20 20 20 20 3D 20 72 65 67 5F 68 6C 20 = reg_hl
020B10: 26 20 30 78 46 46 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A & 0xFF;..}......
020B20: 2F 2A 20 20 45 6E 61 62 6C 65 20 63 75 72 73 6F /* Enable curso
020B30: 72 20 64 69 73 70 6C 61 79 20 28 6D 61 79 20 73 r display (may s
020B40: 68 6F 77 20 63 75 72 73 6F 72 29 20 2D 20 66 6F how cursor) - fo
020B50: 72 20 6E 6F 72 6D 61 6C 20 75 73 65 72 20 75 73 r normal user us
020B60: 65 20 20 2A 2F 0D 0A 0D 0A 54 5F 63 75 72 5F 65 e */....T_cur_e
020B70: 6E 61 62 6C 65 28 29 0D 0A 7B 0D 0A 20 20 69 6E nable()..{.. in
020B80: 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 42 42 37 line(CALL, 0xBB7
020B90: 42 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 B);..}....../*
020BA0: 44 69 73 61 62 6C 65 20 63 75 72 73 6F 72 20 64 Disable cursor d
020BB0: 69 73 70 6C 61 79 20 28 61 6C 77 61 79 73 20 68 isplay (always h
020BC0: 69 64 65 73 20 63 75 72 73 6F 72 29 20 2D 20 66 ides cursor) - f
020BD0: 6F 72 20 6E 6F 72 6D 61 6C 20 75 73 65 72 20 75 or normal user u
020BE0: 73 65 20 20 2A 2F 0D 0A 0D 0A 54 5F 63 75 72 5F se */....T_cur_
020BF0: 64 69 73 61 62 6C 65 28 29 0D 0A 7B 0D 0A 20 20 disable()..{..
020C00: 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 42 inline(CALL, 0xB
020C10: 42 37 45 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A B7E);..}....../*
020C20: 20 20 54 75 72 6E 20 63 75 72 73 6F 72 20 64 69 Turn cursor di
020C30: 73 70 6C 61 79 20 6F 6E 20 28 6D 61 79 20 73 68 splay on (may sh
020C40: 6F 77 20 63 75 72 73 6F 72 29 20 2D 20 75 73 65 ow cursor) - use
020C50: 64 20 62 79 20 43 20 63 6F 6D 70 69 6C 65 72 20 d by C compiler
020C60: 20 2A 2F 0D 0A 0D 0A 54 5F 63 75 72 5F 6F 6E 28 */....T_cur_on(
020C70: 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 )..{.. inline(C
020C80: 41 4C 4C 2C 20 30 78 42 42 38 31 29 3B 0D 0A 7D ALL, 0xBB81);..}
020C90: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 54 75 72 6E 20 63 ....../* Turn c
020CA0: 75 72 73 6F 72 20 64 69 73 70 6C 61 79 20 6F 66 ursor display of
020CB0: 66 20 28 61 6C 77 61 79 73 20 68 69 64 65 73 20 f (always hides
020CC0: 63 75 72 73 6F 72 29 20 2D 20 75 73 65 64 20 62 cursor) - used b
020CD0: 79 20 43 20 63 6F 6D 70 69 6C 65 72 20 20 2A 2F y C compiler */
020CE0: 0D 0A 0D 0A 54 5F 63 75 72 5F 6F 66 66 28 29 0D ....T_cur_off().
020CF0: 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 41 4C .{.. inline(CAL
020D00: 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 26 72 65 LD_A_into, &re
020D10: 67 5F 61 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 g_a);.. return
020D20: 20 72 65 67 5F 61 20 20 3F 20 20 31 20 20 3A 20 reg_a ? 1 :
020D30: 20 30 20 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 0 ;..}....../*
020D40: 20 47 65 74 20 74 68 65 20 61 64 64 72 65 73 73 Get the address
020D50: 20 6F 66 20 61 20 63 68 61 72 61 63 74 65 72 20 of a character
020D60: 6D 61 74 72 69 78 20 20 2A 2F 0D 0A 2F 2A 0D 0A matrix */../*..
020D70: 20 20 20 20 49 66 20 74 68 65 20 61 64 64 72 65 If the addre
020D80: 73 73 20 69 73 20 69 6E 20 74 68 65 20 72 61 6E ss is in the ran
020D90: 67 65 20 30 30 30 30 20 2D 20 30 78 33 46 46 46 ge 0000 - 0x3FFF
020DA0: 20 74 68 65 6E 20 74 68 65 20 6D 61 74 72 69 78 then the matrix
020DB0: 20 69 73 20 69 6E 20 74 68 65 0D 0A 20 20 20 20 is in the..
020DC0: 6C 6F 77 65 72 20 52 4F 4D 2C 20 61 6E 64 20 6F lower ROM, and o
020DD0: 74 68 65 72 77 69 73 65 20 69 74 73 20 69 6E 20 therwise its in
020DE0: 52 41 4D 2E 20 28 54 68 65 20 70 72 6F 67 72 61 RAM. (The progra
020DF0: 6D 20 6F 63 63 75 70 69 65 73 20 6C 6F 77 20 52 m occupies low R
020E00: 41 4D 29 2E 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 AM)...*/....int
020E10: 54 5F 67 65 74 5F 6D 61 74 72 69 78 28 63 68 61 T_get_matrix(cha
020E20: 72 61 63 74 65 72 5F 6E 75 6D 62 65 72 29 0D 0A racter_number)..
020E30: 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 63 68 61 {.. reg_a = cha
020E40: 72 61 63 74 65 72 5F 6E 75 6D 62 65 72 3B 0D 0A racter_number;..
020E50: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C inline(.. L
020E60: 44 5F 41 5F 66 72 6F 6D 2C 20 20 26 72 65 67 5F D_A_from, ®_
020E70: 61 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 a,.. CALL,
020E80: 20 20 20 20 30 78 42 42 41 35 2C 0D 0A 20 20 20 0xBBA5,..
020E90: 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 LD_HL_into, &re
020EA0: 67 5F 68 6C 29 3B 0D 0A 20 20 72 65 74 75 72 6E g_hl);.. return
020EB0: 20 72 65 67 5F 68 6C 3B 0D 0A 7D 0D 0A 0D 0A 0D reg_hl;..}.....
020EC0: 0A 2F 2A 20 20 53 65 74 20 74 68 65 20 63 6F 6E ./* Set the con
020ED0: 74 65 6E 74 73 20 6F 66 20 61 20 63 68 61 72 61 tents of a chara
020EE0: 63 74 65 72 20 6D 61 74 72 69 78 20 20 2A 2F 0D cter matrix */.
020EF0: 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 ./*.. returns
020F00: 4C 2C 20 30 78 42 42 38 34 29 3B 0D 0A 7D 0D 0A L, 0xBB84);..}..
020F10: 0D 0A 0D 0A 2F 2A 20 20 43 68 65 63 6B 20 69 66 ..../* Check if
020F20: 20 61 20 63 75 72 73 6F 72 20 70 6F 73 69 74 69 a cursor positi
020F30: 6F 6E 20 69 73 20 6C 65 67 61 6C 20 61 6E 64 20 on is legal and
020F40: 66 6F 72 63 65 20 69 74 20 74 6F 20 62 65 20 73 force it to be s
020F50: 6F 20 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 72 65 74 o */../*.. ret
020F60: 75 72 6E 73 20 76 61 6C 69 64 20 63 75 72 73 6F urns valid curso
020F70: 72 20 70 6F 73 69 74 69 6F 6E 20 69 6E 20 78 20 r position in x
020F80: 61 6E 64 20 79 2C 20 50 4F 49 4E 54 45 44 20 41 and y, POINTED A
020F90: 54 20 62 79 20 70 78 5F 63 6F 6C 20 61 6E 64 20 T by px_col and
020FA0: 70 79 5F 72 6F 77 2E 0D 0A 20 20 72 65 74 75 72 py_row... retur
020FB0: 6E 73 20 72 6F 6C 6C 5F 63 6F 75 6E 74 20 63 68 ns roll_count ch
020FC0: 61 6E 67 65 20 61 73 20 69 74 73 20 72 65 73 75 ange as its resu
020FD0: 6C 74 3A 0D 0A 20 20 20 20 2D 31 20 69 66 20 77 lt:.. -1 if w
020FE0: 69 6E 64 6F 77 20 77 6F 75 6C 64 20 72 6F 6C 6C indow would roll
020FF0: 20 75 70 0D 0A 20 20 20 20 20 30 20 69 66 20 77 up.. 0 if w
021000: 69 6E 64 6F 77 20 77 6F 75 6C 64 20 6E 6F 74 20 indow would not
021010: 72 6F 6C 6C 0D 0A 20 20 20 20 2B 31 20 69 66 20 roll.. +1 if
021020: 77 69 6E 64 6F 77 20 77 6F 75 6C 64 20 72 6F 6C window would rol
021030: 6C 20 64 6F 77 6E 0D 0A 2A 2F 0D 0A 0D 0A 69 6E l down..*/....in
021040: 74 20 54 5F 76 61 6C 69 64 61 74 65 28 70 78 5F t T_validate(px_
021050: 63 6F 6C 2C 20 70 79 5F 72 6F 77 29 0D 0A 20 20 col, py_row)..
021060: 69 6E 74 20 2A 70 78 5F 63 6F 6C 2C 20 2A 70 79 int *px_col, *py
021070: 5F 72 6F 77 3B 0D 0A 7B 0D 0A 20 20 72 65 67 5F _row;..{.. reg_
021080: 68 6C 20 3D 20 28 2A 70 78 5F 63 6F 6C 20 3C 3C hl = (*px_col <<
021090: 20 38 29 20 2B 20 2A 70 79 5F 72 6F 77 3B 0D 0A 8) + *py_row;..
0210A0: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C inline(.. L
0210B0: 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F D_HL_from, ®_
0210C0: 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 hl,.. CALL,
0210D0: 20 20 20 20 20 30 78 42 42 38 37 2C 0D 0A 20 20 0xBB87,..
0210E0: 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C 20 26 72 LD_HL_into, &r
0210F0: 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 5F 41 eg_hl,.. LD_A
021100: 20 54 52 55 45 20 28 31 29 20 69 66 20 61 6C 6C TRUE (1) if all
021110: 20 4F 4B 2C 0D 0A 20 20 20 20 61 6E 64 20 46 41 OK,.. and FA
021120: 4C 53 45 20 69 66 20 63 68 61 72 61 63 74 65 72 LSE if character
021130: 20 69 73 20 6E 6F 74 20 75 73 65 72 20 64 65 66 is not user def
021140: 69 6E 61 62 6C 65 0D 0A 2A 2F 0D 0A 0D 0A 54 5F inable..*/....T_
021150: 73 65 74 5F 6D 61 74 72 69 78 28 63 68 61 72 61 set_matrix(chara
021160: 63 74 65 72 5F 6E 75 6D 62 65 72 2C 20 6D 61 74 cter_number, mat
021170: 72 69 78 5F 61 64 64 72 65 73 73 29 0D 0A 7B 0D rix_address)..{.
021180: 0A 20 20 72 65 67 5F 61 20 20 3D 20 63 68 61 72 . reg_a = char
021190: 61 63 74 65 72 5F 6E 75 6D 62 65 72 3B 0D 0A 20 acter_number;..
0211A0: 20 72 65 67 5F 68 6C 20 3D 20 6D 61 74 72 69 78 reg_hl = matrix
0211B0: 5F 61 64 64 72 65 73 73 3B 0D 0A 20 20 69 6E 6C _address;.. inl
0211C0: 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 ine(.. LD_A_f
0211D0: 72 6F 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 rom, ®_a,..
0211E0: 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 LD_HL_from, &
0211F0: 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C reg_hl,.. CAL
021200: 4C 2C 20 20 20 20 20 20 20 30 78 42 42 41 38 2C L, 0xBBA8,
021210: 0D 0A 20 20 20 20 4C 44 5F 41 5F 77 69 74 68 2C .. LD_A_with,
021220: 20 20 30 2C 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 0,.. RLA,..
021230: 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 LD_A_into,
021240: 26 72 65 67 5F 61 29 3B 0D 0A 20 20 72 65 74 75 ®_a);.. retu
021250: 72 6E 20 72 65 67 5F 61 3B 0D 0A 7D 0D 0A 0D 0A rn reg_a;..}....
021260: 0D 0A 2F 2A 20 20 53 65 74 20 74 68 65 20 75 73 ../* Set the us
021270: 65 72 20 64 65 66 69 6E 65 64 20 6D 61 74 72 69 er defined matri
021280: 78 20 74 61 62 6C 65 20 61 64 64 72 65 73 73 20 x table address
021290: 20 2A 2F 0D 0A 0D 0A 54 5F 73 65 74 5F 6D 5F 74 */....T_set_m_t
0212A0: 61 62 6C 65 28 66 69 72 73 74 5F 63 68 61 72 61 able(first_chara
0212B0: 63 74 65 72 2C 20 74 61 62 6C 65 5F 61 64 64 72 cter, table_addr
0212C0: 65 73 73 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 64 ess)..{.. reg_d
0212D0: 65 20 3D 20 66 69 72 73 74 5F 63 68 61 72 61 63 e = first_charac
0212E0: 74 65 72 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D ter;.. reg_hl =
0212F0: 20 74 61 62 6C 65 5F 61 64 64 72 65 73 73 3B 0D table_address;.
021300: 5F 42 2C 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 _B,.. RLA,..
021310: 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 26 LD_A_into, &
021320: 72 65 67 5F 61 29 3B 0D 0A 0D 0A 20 20 2A 70 78 reg_a);.... *px
021330: 5F 63 6F 6C 20 3D 20 28 72 65 67 5F 68 6C 20 3E _col = (reg_hl >
021340: 3E 20 38 29 20 26 20 30 78 46 46 3B 0D 0A 20 20 > 8) & 0xFF;..
021350: 2A 70 79 5F 72 6F 77 20 3D 20 72 65 67 5F 68 6C *py_row = reg_hl
021360: 20 26 20 30 78 46 46 3B 0D 0A 0D 0A 20 20 69 66 & 0xFF;.... if
021370: 20 28 20 21 20 72 65 67 5F 61 29 20 20 20 20 20 ( ! reg_a)
021380: 20 72 65 74 75 72 6E 20 20 31 3B 0D 0A 20 20 69 return 1;.. i
021390: 66 20 28 72 65 67 5F 61 20 3D 3D 20 30 78 46 45 f (reg_a == 0xFE
0213A0: 29 20 72 65 74 75 72 6E 20 2D 31 3B 0D 0A 20 20 ) return -1;..
0213B0: 72 65 74 75 72 6E 20 30 3B 0D 0A 7D 0D 0A 0D 0A return 0;..}....
0213C0: 0D 0A 2F 2A 20 20 50 75 74 20 61 20 63 75 72 73 ../* Put a curs
0213D0: 6F 72 20 62 6C 6F 62 20 6F 6E 20 74 68 65 20 73 or blob on the s
0213E0: 63 72 65 65 6E 20 20 2A 2F 0D 0A 0D 0A 54 5F 70 creen */....T_p
0213F0: 6C 61 63 65 5F 63 75 72 73 6F 72 28 29 0D 0A 7B lace_cursor()..{
021400: 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C .. inline(CALL,
021410: 20 30 78 42 42 38 41 29 3B 0D 0A 7D 0D 0A 0D 0A 0xBB8A);..}....
021420: 0D 0A 2F 2A 20 20 54 61 6B 65 20 61 20 63 75 72 ../* Take a cur
021430: 73 6F 72 20 62 6C 6F 62 20 6F 66 66 20 74 68 65 sor blob off the
021440: 20 73 63 72 65 65 6E 20 20 2A 2F 0D 0A 0D 0A 54 screen */....T
021450: 5F 72 65 6D 6F 76 65 5F 63 75 72 73 6F 72 28 29 _remove_cursor()
021460: 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 41 ..{.. inline(CA
021470: 4C 4C 2C 20 30 78 42 42 38 44 29 3B 0D 0A 7D 0D LL, 0xBB8D);..}.
021480: 0A 0D 0A 0D 0A 2F 2A 20 20 53 65 74 20 69 6E 6B ...../* Set ink
021490: 20 66 6F 72 20 77 72 69 74 69 6E 67 20 63 68 61 for writing cha
0214A0: 72 61 63 74 65 72 73 20 20 2A 2F 0D 0A 0D 0A 54 racters */....T
0214B0: 5F 73 65 74 5F 70 65 6E 28 69 6E 6B 29 0D 0A 7B _set_pen(ink)..{
0214C0: 0D 0A 20 20 72 65 67 5F 61 20 3D 20 69 6E 6B 3B .. reg_a = ink;
0214D0: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
0214E0: 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_A_from, ®
0214F0: 5F 61 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 _a,.. CALL,
021500: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
021510: 1C 00 00 00 02 09 4E E5 1C 00 41 02 00 00 00 02 ......N...A.....
021520: 1C 00 46 02 00 00 00 02 1C 00 42 02 00 00 00 02 ..F.......B.....
021530: 1C 00 47 02 00 00 00 02 1C 00 43 02 00 00 00 02 ..G.......C.....
021540: 1C 00 48 02 00 00 00 02 1C 00 44 02 00 00 00 02 ..H.......D.....
021550: 1C 00 49 02 00 00 00 02 1C 00 45 02 00 00 00 02 ..I.......E.....
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: 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 . inline(..
021610: 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_DE_from, ®
021620: 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F _de,.. LD_HL_
021630: 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A from, ®_hl,..
021640: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
021650: 30 78 42 42 41 42 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0xBBAB);..}.....
021660: 0A 2F 2A 20 20 47 65 74 20 75 73 65 72 20 64 65 ./* Get user de
021670: 66 69 6E 65 64 20 6D 61 74 72 69 78 20 74 61 62 fined matrix tab
021680: 6C 65 20 61 64 64 72 65 73 73 20 20 2A 2F 0D 0A le address */..
021690: 2F 2A 0D 0A 20 20 20 20 54 68 69 73 20 66 75 6E /*.. This fun
0216A0: 63 74 69 6F 6E 20 6A 75 73 74 20 72 65 74 75 72 ction just retur
0216B0: 6E 73 20 74 68 65 20 61 64 64 72 65 73 73 20 28 ns the address (
0216C0: 6F 72 20 4E 55 4C 4C 20 28 30 29 20 69 66 20 74 or NULL (0) if t
0216D0: 68 65 72 65 20 69 73 20 6E 6F 6E 65 29 2E 0D 0A here is none)...
0216E0: 20 20 20 20 55 73 65 20 74 68 65 20 6E 65 78 74 Use the next
0216F0: 20 66 75 6E 63 74 69 6F 6E 20 22 54 5F 67 65 74 function "T_get
021700: 5F 6D 63 68 61 72 22 20 74 6F 20 66 69 6E 64 20 _mchar" to find
021710: 74 68 65 20 66 69 72 73 74 20 63 68 61 72 61 63 the first charac
021720: 74 65 72 20 69 6E 20 69 74 2E 0D 0A 2A 2F 0D 0A ter in it...*/..
021730: 0D 0A 69 6E 74 20 54 5F 67 65 74 5F 6D 5F 74 61 ..int T_get_m_ta
021740: 62 6C 65 28 29 20 20 20 20 20 20 20 2F 2A 20 67 ble() /* g
021750: 65 74 20 61 64 64 72 65 73 73 20 6F 66 20 74 61 et address of ta
021760: 62 6C 65 20 20 2A 2F 0D 0A 7B 0D 0A 20 20 69 6E ble */..{.. in
021770: 6C 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C line(.. CALL,
021780: 20 20 20 20 20 20 20 30 78 42 42 41 45 2C 0D 0A 0xBBAE,..
021790: 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C 20 LD_HL_into,
0217A0: 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 ®_hl,.. LD
0217B0: 5F 41 5F 77 69 74 68 2C 20 20 30 2C 0D 0A 20 20 _A_with, 0,..
0217C0: 20 20 52 4C 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 RLA,.. LD_A
0217D0: 5F 69 6E 74 6F 2C 20 20 26 72 65 67 5F 66 6C 61 _into, ®_fla
0217E0: 67 73 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 20 gs);.. return
0217F0: 72 65 67 5F 66 6C 61 67 73 20 20 3F 20 20 72 65 reg_flags ? re
021800: 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 . inline(..
021810: 43 41 4C 4C 2C 20 30 78 42 42 43 43 2C 0D 0A 20 CALL, 0xBBCC,..
021820: 20 20 20 4C 44 5F 44 45 5F 69 6E 74 6F 2C 20 26 LD_DE_into, &
021830: 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F reg_de,.. LD_
021840: 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 68 6C HL_into, ®_hl
021850: 29 3B 0D 0A 20 20 2A 70 64 78 20 3D 20 72 65 67 );.. *pdx = reg
021860: 5F 64 65 3B 20 20 2A 70 64 79 20 3D 20 72 65 67 _de; *pdy = reg
021870: 5F 68 6C 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 _hl;..}....../*
021880: 73 65 74 20 74 68 65 20 6C 65 66 74 20 61 6E 64 set the left and
021890: 20 72 69 67 68 74 20 65 64 67 65 73 20 6F 66 20 right edges of
0218A0: 74 68 65 20 67 72 61 70 68 69 63 73 20 77 69 6E the graphics win
0218B0: 64 6F 77 20 2A 2F 0D 0A 0D 0A 47 5F 77 69 6E 5F dow */....G_win_
0218C0: 77 69 64 74 68 28 78 31 2C 20 78 32 29 0D 0A 7B width(x1, x2)..{
0218D0: 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 78 31 3B .. reg_de = x1;
0218E0: 20 20 72 65 67 5F 68 6C 20 3D 20 78 32 3B 0D 0A reg_hl = x2;..
0218F0: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C inline(.. L
021900: 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F D_DE_from, ®_
021910: 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 de,.. LD_HL_f
021920: 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 rom, ®_hl,..
021930: 20 20 20 43 41 4C 4C 2C 20 30 78 42 42 43 46 29 CALL, 0xBBCF)
021940: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 73 65 74 ;..}....../* set
021950: 20 74 68 65 20 74 6F 70 20 61 6E 64 20 62 6F 74 the top and bot
021960: 74 6F 6D 20 65 64 67 65 73 20 6F 66 20 74 68 65 tom edges of the
021970: 20 67 72 61 70 68 69 63 73 20 77 69 6E 64 6F 77 graphics window
021980: 20 2A 2F 0D 0A 0D 0A 47 5F 77 69 6E 5F 68 65 69 */....G_win_hei
021990: 67 68 74 28 79 31 2C 20 79 32 29 0D 0A 7B 0D 0A ght(y1, y2)..{..
0219A0: 20 20 72 65 67 5F 64 65 20 3D 20 79 31 3B 20 20 reg_de = y1;
0219B0: 72 65 67 5F 68 6C 20 3D 20 79 32 3B 0D 0A 20 20 reg_hl = y2;..
0219C0: 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F inline(.. LD_
0219D0: 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 DE_from, ®_de
0219E0: 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F ,.. LD_HL_fro
0219F0: 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 m, ®_hl,..
021A00: 67 5F 68 6C 20 20 3A 20 20 30 20 3B 0D 0A 7D 0D g_hl : 0 ;..}.
021A10: 0A 0D 0A 0D 0A 69 6E 74 20 54 5F 67 65 74 5F 6D .....int T_get_m
021A20: 63 68 61 72 28 29 20 20 20 20 20 20 20 20 20 2F char() /
021A30: 2A 20 67 65 74 20 66 69 72 73 74 20 63 68 61 72 * get first char
021A40: 61 63 74 65 72 20 69 6E 20 74 61 62 6C 65 20 20 acter in table
021A50: 2A 2F 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 */..{.. inline(
021A60: 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 .. CALL,
021A70: 20 20 30 78 42 42 41 45 2C 0D 0A 20 20 20 20 4C 0xBBAE,.. L
021A80: 44 5F 41 5F 69 6E 74 6F 2C 20 20 26 72 65 67 5F D_A_into, ®_
021A90: 61 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 77 69 74 a,.. LD_A_wit
021AA0: 68 2C 20 20 30 2C 0D 0A 20 20 20 20 52 4C 41 2C h, 0,.. RLA,
021AB0: 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C .. LD_A_into,
021AC0: 20 20 26 72 65 67 5F 66 6C 61 67 73 29 3B 0D 0A ®_flags);..
021AD0: 20 20 72 65 74 75 72 6E 20 20 72 65 67 5F 66 6C return reg_fl
021AE0: 61 67 73 20 20 3F 20 20 72 65 67 5F 61 20 20 3A ags ? reg_a :
021AF0: 20 20 30 20 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 0 ;..}....../*
021B00: 20 20 46 65 74 63 68 20 61 64 64 72 65 73 73 20 Fetch address
021B10: 6F 66 20 63 6F 6E 74 72 6F 6C 20 63 6F 64 65 20 of control code
021B20: 74 61 62 6C 65 20 20 2A 2F 0D 0A 0D 0A 69 6E 74 table */....int
021B30: 20 54 5F 67 65 74 5F 63 6F 6E 74 72 6F 6C 73 28 T_get_controls(
021B40: 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D )..{.. inline(.
021B50: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
021B60: 20 30 78 42 42 42 31 2C 0D 0A 20 20 20 20 4C 44 0xBBB1,.. LD
021B70: 5F 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 68 _HL_into, ®_h
021B80: 6C 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 72 65 l);.. return re
021B90: 67 5F 68 6C 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A g_hl;..}....../*
021BA0: 20 20 53 65 6C 65 63 74 20 61 20 54 65 78 74 20 Select a Text
021BB0: 56 44 55 20 73 74 72 65 61 6D 20 20 2A 2F 0D 0A VDU stream */..
021BC0: 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 /*.. returns
021BD0: 74 68 65 20 70 72 65 76 69 6F 75 73 6C 79 20 73 the previously s
021BE0: 65 6C 65 63 74 65 64 20 73 74 72 65 61 6D 20 6E elected stream n
021BF0: 75 6D 62 65 72 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 umber..*/....int
021C00: 20 43 41 4C 4C 2C 20 30 78 42 42 44 32 29 3B 0D CALL, 0xBBD2);.
021C10: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 67 65 74 20 74 .}....../* get t
021C20: 68 65 20 6C 65 66 74 20 61 6E 64 20 72 69 67 68 he left and righ
021C30: 74 20 65 64 67 65 73 20 6F 66 20 74 68 65 20 67 t edges of the g
021C40: 72 61 70 68 69 63 73 20 77 69 6E 64 6F 77 20 2A raphics window *
021C50: 2F 0D 0A 0D 0A 47 5F 67 65 74 5F 77 69 64 74 68 /....G_get_width
021C60: 28 70 78 31 2C 20 70 78 32 29 0D 0A 20 20 69 6E (px1, px2).. in
021C70: 74 20 2A 70 78 31 2C 20 2A 70 78 32 3B 0D 0A 7B t *px1, *px2;..{
021C80: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
021C90: 20 43 41 4C 4C 2C 20 30 78 42 42 44 35 2C 0D 0A CALL, 0xBBD5,..
021CA0: 20 20 20 20 4C 44 5F 44 45 5F 69 6E 74 6F 2C 20 LD_DE_into,
021CB0: 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 ®_de,.. LD
021CC0: 5F 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 68 _HL_into, ®_h
021CD0: 6C 29 3B 0D 0A 20 20 2A 70 78 31 20 3D 20 72 65 l);.. *px1 = re
021CE0: 67 5F 64 65 3B 20 20 2A 70 78 32 20 3D 20 72 65 g_de; *px2 = re
021CF0: 67 5F 68 6C 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A g_hl;..}....../*
021D00: 20 67 65 74 20 74 68 65 20 74 6F 70 20 61 6E 64 get the top and
021D10: 20 62 6F 74 74 6F 6D 20 65 64 67 65 73 20 6F 66 bottom edges of
021D20: 20 74 68 65 20 67 72 61 70 68 69 63 73 20 77 69 the graphics wi
021D30: 6E 64 6F 77 20 2A 2F 0D 0A 0D 0A 47 5F 67 65 74 ndow */....G_get
021D40: 5F 68 65 69 67 68 74 28 70 79 31 2C 20 70 79 32 _height(py1, py2
021D50: 29 0D 0A 20 20 69 6E 74 20 2A 70 79 31 2C 20 2A ).. int *py1, *
021D60: 70 79 32 3B 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E py2;..{.. inlin
021D70: 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 30 78 e(.. CALL, 0x
021D80: 42 42 44 38 2C 0D 0A 20 20 20 20 4C 44 5F 44 45 BBD8,.. LD_DE
021D90: 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 64 65 2C 0D _into, ®_de,.
021DA0: 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F 2C . LD_HL_into,
021DB0: 20 26 72 65 67 5F 68 6C 29 3B 0D 0A 20 20 2A 70 ®_hl);.. *p
021DC0: 79 31 20 3D 20 72 65 67 5F 64 65 3B 20 20 2A 70 y1 = reg_de; *p
021DD0: 79 32 20 3D 20 72 65 67 5F 68 6C 3B 0D 0A 7D 0D y2 = reg_hl;..}.
021DE0: 0A 0D 0A 0D 0A 2F 2A 20 63 6C 65 61 72 20 74 68 ...../* clear th
021DF0: 65 20 67 72 61 70 68 69 63 73 20 77 69 6E 64 6F e graphics windo
021E00: 20 54 5F 73 74 72 5F 73 65 6C 65 63 74 28 73 74 T_str_select(st
021E10: 72 65 61 6D 5F 6E 75 6D 62 65 72 29 0D 0A 7B 0D ream_number)..{.
021E20: 0A 20 20 72 65 67 5F 61 20 3D 20 73 74 72 65 61 . reg_a = strea
021E30: 6D 5F 6E 75 6D 62 65 72 3B 0D 0A 20 20 69 6E 6C m_number;.. inl
021E40: 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 ine(.. LD_A_f
021E50: 72 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 rom, ®_a,..
021E60: 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 78 42 CALL, 0xB
021E70: 42 42 34 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 BB4,.. LD_A_i
021E80: 6E 74 6F 2C 20 26 72 65 67 5F 61 29 3B 0D 0A 20 nto, ®_a);..
021E90: 20 72 65 74 75 72 6E 20 72 65 67 5F 61 3B 0D 0A return reg_a;..
021EA0: 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 77 61 70 20 }....../* Swap
021EB0: 74 68 65 20 73 74 61 74 65 73 20 6F 66 20 74 77 the states of tw
021EC0: 6F 20 73 74 72 65 61 6D 73 20 20 2A 2F 0D 0A 0D o streams */...
021ED0: 0A 54 5F 73 77 61 70 5F 73 74 72 65 61 6D 73 28 .T_swap_streams(
021EE0: 73 74 72 65 61 6D 5F 6E 75 6D 62 65 72 2C 20 61 stream_number, a
021EF0: 6E 6F 74 68 65 72 5F 73 74 72 65 61 6D 5F 6E 75 nother_stream_nu
021F00: 6D 62 65 72 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F mber)..{.. reg_
021F10: 62 63 20 3D 20 28 73 74 72 65 61 6D 5F 6E 75 6D bc = (stream_num
021F20: 62 65 72 20 3C 3C 20 38 29 20 2B 20 61 6E 6F 74 ber << 8) + anot
021F30: 68 65 72 5F 73 74 72 65 61 6D 5F 6E 75 6D 62 65 her_stream_numbe
021F40: 72 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 r;.. inline(..
021F50: 20 20 20 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 LD_BC_from, &
021F60: 72 65 67 5F 62 63 2C 0D 0A 20 20 20 20 43 41 4C reg_bc,.. CAL
021F70: 4C 2C 20 20 20 20 20 20 20 30 78 42 42 42 37 29 L, 0xBBB7)
021F80: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A ;..}........../*
021F90: 2A 20 20 47 52 41 50 48 49 43 20 56 44 55 20 49 * GRAPHIC VDU I
021FA0: 4E 54 45 52 46 41 43 45 20 46 55 4E 43 54 49 4F NTERFACE FUNCTIO
021FB0: 4E 53 20 20 2A 2A 2F 0D 0A 0D 0A 0D 0A 2F 2A 20 NS **/....../*
021FC0: 66 75 6C 6C 79 20 69 6E 69 74 69 61 6C 69 73 65 fully initialise
021FD0: 20 74 68 65 20 67 72 61 70 68 69 63 73 20 76 64 the graphics vd
021FE0: 75 20 2A 2F 0D 0A 0D 0A 47 5F 69 6E 69 74 69 61 u */....G_initia
021FF0: 6C 69 73 65 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C lise()..{.. inl
022000: 77 20 2A 2F 0D 0A 0D 0A 47 5F 63 6C 65 61 72 5F w */....G_clear_
022010: 77 69 6E 64 6F 77 28 29 0D 0A 7B 0D 0A 20 20 69 window()..{.. i
022020: 6E 6C 69 6E 65 28 43 41 4C 4C 2C 30 78 42 42 44 nline(CALL,0xBBD
022030: 42 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 73 B);..}....../* s
022040: 65 74 20 74 68 65 20 67 72 61 70 68 69 63 73 20 et the graphics
022050: 70 6C 6F 74 74 69 6E 67 20 69 6E 6B 20 2A 2F 0D plotting ink */.
022060: 0A 0D 0A 47 5F 73 65 74 5F 70 65 6E 28 69 6E 6B ...G_set_pen(ink
022070: 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 )..{.. reg_a =
022080: 69 6E 6B 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D ink;.. inline(.
022090: 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 . LD_A_from,
0220A0: 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C ®_a,.. CAL
0220B0: 4C 2C 20 30 78 42 42 44 45 29 3B 0D 0A 7D 0D 0A L, 0xBBDE);..}..
0220C0: 0D 0A 0D 0A 2F 2A 20 67 65 74 20 74 68 65 20 67 ..../* get the g
0220D0: 72 61 70 68 69 63 73 20 70 6C 6F 74 74 69 6E 67 raphics plotting
0220E0: 20 69 6E 6B 20 2A 2F 0D 0A 0D 0A 69 6E 74 20 47 ink */....int G
0220F0: 5F 67 65 74 5F 70 65 6E 28 29 0D 0A 7B 0D 0A 20 _get_pen()..{..
022100: 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 43 41 inline(.. CA
022110: 4C 4C 2C 20 30 78 42 42 45 31 2C 0D 0A 20 20 20 LL, 0xBBE1,..
022120: 20 4C 44 5F 4C 5F 41 2C 0D 0A 20 20 20 20 4C 44 LD_L_A,.. LD
022130: 5F 48 5F 77 69 74 68 2C 20 30 29 3B 0D 0A 7D 0D _H_with, 0);..}.
022140: 0A 0D 0A 0D 0A 2F 2A 20 73 65 74 20 74 68 65 20 ...../* set the
022150: 67 72 61 70 68 69 63 73 20 62 61 63 6B 67 72 6F graphics backgro
022160: 75 6E 64 20 69 6E 6B 20 2A 2F 0D 0A 0D 0A 47 5F und ink */....G_
022170: 73 65 74 5F 70 61 70 65 72 28 69 6E 6B 29 0D 0A set_paper(ink)..
022180: 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 69 6E 6B {.. reg_a = ink
022190: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
0221A0: 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 26 72 65 LD_A_from, &re
0221B0: 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 g_a,.. CALL,
0221C0: 30 78 42 42 45 34 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0xBBE4);..}.....
0221D0: 0A 2F 2A 20 67 65 74 20 74 68 65 20 63 75 72 72 ./* get the curr
0221E0: 65 6E 74 20 67 72 61 70 68 69 63 73 20 62 61 63 ent graphics bac
0221F0: 6B 67 72 6F 75 6E 64 20 69 6E 6B 20 2A 2F 0D 0A kground ink */..
022200: 69 6E 65 28 43 41 4C 4C 2C 20 30 78 42 42 42 41 ine(CALL, 0xBBBA
022210: 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 72 65 );..}....../* re
022220: 73 65 74 20 74 68 65 20 67 72 61 70 68 69 63 73 set the graphics
022230: 20 76 64 75 20 69 6E 64 69 72 65 63 74 69 6F 6E vdu indirection
022240: 73 20 74 6F 20 74 68 65 69 72 20 64 65 66 61 75 s to their defau
022250: 6C 74 20 2A 2F 0D 0A 0D 0A 47 5F 72 65 73 65 74 lt */....G_reset
022260: 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 ()..{.. inline(
022270: 43 41 4C 4C 2C 20 30 78 42 42 42 44 29 3B 0D 0A CALL, 0xBBBD);..
022280: 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 6D 6F 76 65 20 74 }....../* move t
022290: 6F 20 61 6E 20 61 62 73 6F 6C 75 74 65 20 67 72 o an absolute gr
0222A0: 61 70 68 69 63 73 20 70 6F 73 69 74 69 6F 6E 20 aphics position
0222B0: 2A 2F 0D 0A 0D 0A 47 5F 6D 6F 76 65 5F 61 62 73 */....G_move_abs
0222C0: 6F 6C 75 74 65 28 78 2C 79 29 0D 0A 7B 0D 0A 20 olute(x,y)..{..
0222D0: 20 72 65 67 5F 64 65 20 3D 20 78 3B 20 20 72 65 reg_de = x; re
0222E0: 67 5F 68 6C 20 3D 20 79 3B 0D 0A 20 20 69 6E 6C g_hl = y;.. inl
0222F0: 69 6E 65 28 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 ine(LD_DE_from,
022300: 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 20 20 ®_de,..
022310: 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 LD_HL_from, &
022320: 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 20 20 20 reg_hl,..
022330: 20 20 43 41 4C 4C 2C 20 30 78 42 42 43 30 29 3B CALL, 0xBBC0);
022340: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 6D 6F 76 65 ..}....../* move
022350: 20 72 65 6C 61 74 69 76 65 20 74 6F 20 63 75 72 relative to cur
022360: 72 65 6E 74 20 67 72 61 70 68 69 63 73 20 70 6F rent graphics po
022370: 73 69 74 69 6F 6E 20 2A 2F 0D 0A 0D 0A 47 5F 6D sition */....G_m
022380: 6F 76 65 5F 72 65 6C 61 74 69 76 65 28 64 78 2C ove_relative(dx,
022390: 20 64 79 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 64 dy)..{.. reg_d
0223A0: 65 20 3D 20 64 78 3B 20 20 72 65 67 5F 68 6C 20 e = dx; reg_hl
0223B0: 3D 20 64 79 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 = dy;.. inline(
0223C0: 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D .. LD_DE_from
0223D0: 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 , ®_de,..
0223E0: 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_HL_from, ®
0223F0: 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 _hl,.. CALL,
022400: 0D 0A 69 6E 74 20 47 5F 67 65 74 5F 70 61 70 65 ..int G_get_pape
022410: 72 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 r()..{.. inline
022420: 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 30 78 42 (.. CALL, 0xB
022430: 42 45 37 2C 0D 0A 20 20 20 20 4C 44 5F 4C 5F 41 BE7,.. LD_L_A
022440: 2C 0D 0A 20 20 20 20 4C 44 5F 48 5F 77 69 74 68 ,.. LD_H_with
022450: 2C 20 30 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A , 0);..}....../*
022460: 20 70 6C 6F 74 20 61 20 70 6F 69 6E 74 20 61 74 plot a point at
022470: 20 61 6E 20 61 62 73 6F 6C 75 74 65 20 70 6F 73 an absolute pos
022480: 69 74 69 6F 6E 20 2A 2F 0D 0A 0D 0A 47 5F 70 6C ition */....G_pl
022490: 6F 74 5F 61 62 73 6F 6C 75 74 65 28 78 2C 20 79 ot_absolute(x, y
0224A0: 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 64 65 20 3D )..{.. reg_de =
0224B0: 20 78 3B 20 20 72 65 67 5F 68 6C 20 3D 20 79 3B x; reg_hl = y;
0224C0: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
0224D0: 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 LD_DE_from, &re
0224E0: 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C g_de,.. LD_HL
0224F0: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D _from, ®_hl,.
022500: 0A 20 20 20 20 43 41 4C 4C 2C 20 30 78 42 42 45 . CALL, 0xBBE
022510: 41 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 70 A);..}....../* p
022520: 6C 6F 74 20 61 20 70 6F 69 6E 74 20 72 65 6C 61 lot a point rela
022530: 74 69 76 65 20 74 6F 20 74 68 65 20 63 75 72 72 tive to the curr
022540: 65 6E 74 20 70 6F 73 69 74 69 6F 6E 20 2A 2F 0D ent position */.
022550: 0A 0D 0A 47 5F 70 6C 6F 74 5F 72 65 6C 61 74 69 ...G_plot_relati
022560: 76 65 28 64 78 2C 20 64 79 29 0D 0A 7B 0D 0A 20 ve(dx, dy)..{..
022570: 20 72 65 67 5F 64 65 20 3D 20 64 78 3B 20 20 72 reg_de = dx; r
022580: 65 67 5F 68 6C 20 3D 20 64 79 3B 0D 0A 20 20 69 eg_hl = dy;.. i
022590: 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 44 nline(.. LD_D
0225A0: 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C E_from, ®_de,
0225B0: 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D .. LD_HL_from
0225C0: 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 , ®_hl,..
0225D0: 43 41 4C 4C 2C 20 30 78 42 42 45 44 29 3B 0D 0A CALL, 0xBBED);..
0225E0: 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 74 65 73 74 20 77 }....../* test w
0225F0: 68 69 63 68 20 69 6E 6B 20 69 73 20 61 74 20 61 hich ink is at a
022600: 30 78 42 42 43 33 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0xBBC3);..}.....
022610: 0A 2F 2A 20 67 65 74 20 74 68 65 20 63 75 72 72 ./* get the curr
022620: 65 6E 74 20 67 72 61 70 68 69 63 73 20 70 6F 73 ent graphics pos
022630: 69 74 69 6F 6E 20 2A 2F 0D 0A 0D 0A 47 5F 61 73 ition */....G_as
022640: 6B 5F 63 75 72 73 6F 72 28 70 64 78 2C 20 70 64 k_cursor(pdx, pd
022650: 79 29 0D 0A 20 20 69 6E 74 20 2A 70 64 78 2C 20 y).. int *pdx,
022660: 2A 70 64 79 3B 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 *pdy;..{.. inli
022670: 6E 65 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 30 ne(.. CALL, 0
022680: 78 42 42 43 36 2C 0D 0A 20 20 20 20 4C 44 5F 44 xBBC6,.. LD_D
022690: 45 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 64 65 2C E_into, ®_de,
0226A0: 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F .. LD_HL_into
0226B0: 2C 20 26 72 65 67 5F 68 6C 29 3B 0D 0A 20 20 2A , ®_hl);.. *
0226C0: 70 64 78 20 3D 20 72 65 67 5F 64 65 3B 20 20 2A pdx = reg_de; *
0226D0: 70 64 79 20 3D 20 72 65 67 5F 68 6C 3B 0D 0A 7D pdy = reg_hl;..}
0226E0: 0D 0A 0D 0A 0D 0A 2F 2A 20 73 65 74 20 74 68 65 ....../* set the
0226F0: 20 6F 72 69 67 69 6E 20 6F 66 20 74 68 65 20 75 origin of the u
022700: 73 65 72 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 ser coordinates
022710: 2A 2F 0D 0A 0D 0A 47 5F 73 65 74 5F 6F 72 69 67 */....G_set_orig
022720: 69 6E 28 78 2C 20 79 29 0D 0A 7B 0D 0A 20 20 72 in(x, y)..{.. r
022730: 65 67 5F 64 65 20 3D 20 78 3B 20 20 72 65 67 5F eg_de = x; reg_
022740: 68 6C 20 3D 20 79 3B 0D 0A 20 20 69 6E 6C 69 6E hl = y;.. inlin
022750: 65 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 e(.. LD_DE_fr
022760: 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 om, ®_de,..
022770: 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 LD_HL_from, &r
022780: 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C eg_hl,.. CALL
022790: 2C 20 30 78 42 42 43 39 29 3B 0D 0A 7D 0D 0A 0D , 0xBBC9);..}...
0227A0: 0A 0D 0A 2F 2A 20 67 65 74 20 74 68 65 20 6F 72 .../* get the or
0227B0: 69 67 69 6E 20 6F 66 20 74 68 65 20 75 73 65 72 igin of the user
0227C0: 20 63 6F 6F 72 64 69 6E 61 74 65 73 20 2A 2F 0D coordinates */.
0227D0: 0A 0D 0A 47 5F 67 65 74 5F 6F 72 69 67 69 6E 28 ...G_get_origin(
0227E0: 70 64 78 2C 20 70 64 79 29 0D 0A 20 20 69 6E 74 pdx, pdy).. int
0227F0: 20 2A 70 64 78 2C 20 2A 70 64 79 3B 0D 0A 7B 0D *pdx, *pdy;..{.
022800: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
022810: 1D 00 00 00 02 09 4E E5 1D 00 41 02 00 00 00 02 ......N...A.....
022820: 1D 00 46 02 00 00 00 02 1D 00 42 02 00 00 00 02 ..F.......B.....
022830: 1D 00 47 02 00 00 00 02 1D 00 43 02 00 00 00 02 ..G.......C.....
022840: 1D 00 48 02 00 00 00 02 1D 00 44 02 00 00 00 02 ..H.......D.....
022850: 1D 00 49 02 00 00 00 02 1D 00 45 02 00 00 00 02 ..I.......E.....
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: 6E 20 61 62 73 6F 6C 75 74 65 20 70 6F 73 69 74 n absolute posit
022910: 69 6F 6E 20 2A 2F 0D 0A 0D 0A 69 6E 74 20 47 5F ion */....int G_
022920: 74 65 73 74 5F 61 62 73 6F 6C 75 74 65 28 78 2C test_absolute(x,
022930: 20 79 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 64 65 y)..{.. reg_de
022940: 20 3D 20 78 3B 20 20 72 65 67 5F 68 6C 20 3D 20 = x; reg_hl =
022950: 79 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 y;.. inline(..
022960: 20 20 20 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 LD_DE_from, &
022970: 72 65 67 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F reg_de,.. LD_
022980: 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C HL_from, ®_hl
022990: 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 30 78 42 ,.. CALL, 0xB
0229A0: 42 46 30 2C 0D 0A 20 20 20 20 4C 44 5F 4C 5F 41 BF0,.. LD_L_A
0229B0: 2C 0D 0A 20 20 20 20 4C 44 5F 48 5F 77 69 74 68 ,.. LD_H_with
0229C0: 2C 20 30 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A , 0);..}....../*
0229D0: 20 74 65 73 74 20 77 68 69 63 68 20 69 6E 6B 20 test which ink
0229E0: 69 73 20 61 74 20 61 20 70 6F 73 69 74 69 6F 6E is at a position
0229F0: 20 72 65 6C 61 74 69 76 65 20 74 6F 20 74 68 65 relative to the
022A00: 20 63 75 72 72 65 6E 74 20 6F 6E 65 20 2A 2F 0D current one */.
022A10: 0A 0D 0A 69 6E 74 20 47 5F 74 65 73 74 5F 72 65 ...int G_test_re
022A20: 6C 61 74 69 76 65 28 64 78 2C 20 64 79 29 0D 0A lative(dx, dy)..
022A30: 7B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 64 78 {.. reg_de = dx
022A40: 3B 20 20 72 65 67 5F 68 6C 20 3D 20 64 79 3B 0D ; reg_hl = dy;.
022A50: 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 . inline(..
022A60: 4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_DE_from, ®
022A70: 5F 64 65 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F _de,.. LD_HL_
022A80: 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A from, ®_hl,..
022A90: 20 20 20 20 43 41 4C 4C 2C 20 30 78 42 42 46 33 CALL, 0xBBF3
022AA0: 2C 0D 0A 20 20 20 20 4C 44 5F 4C 5F 41 2C 0D 0A ,.. LD_L_A,..
022AB0: 20 20 20 20 4C 44 5F 48 5F 77 69 74 68 2C 20 30 LD_H_with, 0
022AC0: 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 64 72 );..}....../* dr
022AD0: 61 77 20 61 20 6C 69 6E 65 20 74 6F 20 61 6E 20 aw a line to an
022AE0: 61 62 73 6F 6C 75 74 65 20 70 6F 73 69 74 69 6F absolute positio
022AF0: 6E 20 2A 2F 0D 0A 0D 0A 47 5F 6C 69 6E 65 5F 61 n */....G_line_a
022B00: 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 78 42 44 CALL, 0xBD
022B10: 31 43 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 1C);..}....../*
022B20: 20 73 65 74 20 73 63 72 65 65 6E 20 6F 66 66 73 set screen offs
022B30: 65 74 20 20 2A 2F 0D 0A 0D 0A 4D 5F 73 63 72 65 et */....M_scre
022B40: 65 6E 5F 6F 66 66 73 65 74 28 62 61 73 65 2C 20 en_offset(base,
022B50: 6F 66 66 73 65 74 29 0D 0A 7B 0D 0A 20 20 72 65 offset)..{.. re
022B60: 67 5F 61 20 20 3D 20 62 61 73 65 3B 0D 0A 20 20 g_a = base;..
022B70: 72 65 67 5F 68 6C 20 3D 20 6F 66 66 73 65 74 3B reg_hl = offset;
022B80: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
022B90: 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 LD_HL_from, &re
022BA0: 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F g_hl,.. LD_A_
022BB0: 66 72 6F 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A from, ®_a,..
022BC0: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
022BD0: 30 78 42 44 31 46 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0xBD1F);..}.....
022BE0: 0A 2F 2A 20 20 73 65 74 20 61 6C 6C 20 69 6E 6B ./* set all ink
022BF0: 73 20 74 6F 20 6F 6E 65 20 63 6F 6C 6F 75 72 20 s to one colour
022C00: 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 74 68 65 */../*.. the
022C10: 20 70 61 72 61 6D 65 74 65 72 20 69 73 20 74 68 parameter is th
022C20: 65 20 61 64 64 72 65 73 73 20 6F 66 20 74 68 65 e address of the
022C30: 20 62 6F 72 64 65 72 20 63 6F 6C 6F 75 72 20 28 border colour (
022C40: 42 42 29 20 61 6E 64 20 69 6E 6B 20 63 6F 6C 6F BB) and ink colo
022C50: 75 72 20 28 49 49 29 0D 0A 20 20 20 20 65 6E 63 ur (II).. enc
022C60: 6F 64 65 64 20 61 73 20 30 78 49 49 42 42 2E 0D oded as 0xIIBB..
022C70: 0A 2A 2F 0D 0A 0D 0A 4D 5F 63 6C 65 61 72 5F 69 .*/....M_clear_i
022C80: 6E 6B 73 28 69 6E 6B 5F 76 65 63 74 6F 72 29 0D nks(ink_vector).
022C90: 0A 7B 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 69 .{.. reg_de = i
022CA0: 6E 6B 5F 76 65 63 74 6F 72 3B 0D 0A 20 20 69 6E nk_vector;.. in
022CB0: 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 44 45 line(.. LD_DE
022CC0: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D _from, ®_de,.
022CD0: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
022CE0: 20 30 78 42 44 32 32 29 3B 0D 0A 7D 0D 0A 0D 0A 0xBD22);..}....
022CF0: 0D 0A 2F 2A 20 20 73 65 74 20 63 6F 6C 6F 75 72 ../* set colour
022D00: 62 73 6F 6C 75 74 65 28 78 2C 20 79 29 0D 0A 7B bsolute(x, y)..{
022D10: 0D 0A 20 20 72 65 67 5F 64 65 20 3D 20 78 3B 20 .. reg_de = x;
022D20: 20 72 65 67 5F 68 6C 20 3D 20 79 3B 0D 0A 20 20 reg_hl = y;..
022D30: 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F inline(.. LD_
022D40: 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 DE_from, ®_de
022D50: 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 6F ,.. LD_HL_fro
022D60: 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 m, ®_hl,..
022D70: 20 43 41 4C 4C 2C 20 30 78 42 42 46 36 29 3B 0D CALL, 0xBBF6);.
022D80: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 64 72 61 77 20 .}....../* draw
022D90: 61 20 6C 69 6E 65 20 72 65 6C 61 74 69 76 65 20 a line relative
022DA0: 74 6F 20 74 68 65 20 63 75 72 72 65 6E 74 20 70 to the current p
022DB0: 6F 73 69 74 69 6F 6E 20 2A 2F 0D 0A 0D 0A 47 5F osition */....G_
022DC0: 6C 69 6E 65 5F 72 65 6C 61 74 69 76 65 28 64 78 line_relative(dx
022DD0: 2C 20 64 79 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F , dy)..{.. reg_
022DE0: 64 65 20 3D 20 64 78 3B 20 20 72 65 67 5F 68 6C de = dx; reg_hl
022DF0: 20 3D 20 64 79 3B 0D 0A 20 20 69 6E 6C 69 6E 65 = dy;.. inline
022E00: 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F (.. LD_DE_fro
022E10: 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 m, ®_de,..
022E20: 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 LD_HL_from, &re
022E30: 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C g_hl,.. CALL,
022E40: 20 30 78 42 42 46 39 29 3B 0D 0A 7D 0D 0A 0D 0A 0xBBF9);..}....
022E50: 0D 0A 2F 2A 20 70 6C 6F 74 20 61 20 63 68 61 72 ../* plot a char
022E60: 61 63 74 65 72 20 6F 6E 20 74 68 65 20 73 63 72 acter on the scr
022E70: 65 65 6E 20 61 74 20 74 68 65 20 63 75 72 72 65 een at the curre
022E80: 6E 74 20 67 72 61 70 68 69 63 73 20 70 6F 73 69 nt graphics posi
022E90: 74 69 6F 6E 20 2A 2F 0D 0A 0D 0A 47 5F 77 72 5F tion */....G_wr_
022EA0: 63 68 61 72 28 63 29 0D 0A 7B 0D 0A 20 20 72 65 char(c)..{.. re
022EB0: 67 5F 61 20 3D 20 63 3B 0D 0A 20 20 69 6E 6C 69 g_a = c;.. inli
022EC0: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 ne(.. LD_A_fr
022ED0: 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 om, ®_a,..
022EE0: 20 43 41 4C 4C 2C 20 30 78 42 42 46 43 29 3B 0D CALL, 0xBBFC);.
022EF0: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 2A 20 2A 20 2A .}....../* * * *
022F00: 73 20 6F 66 20 61 6C 6C 20 69 6E 6B 73 20 20 2A s of all inks *
022F10: 2F 0D 0A 0D 0A 4D 5F 73 65 74 5F 69 6E 6B 73 28 /....M_set_inks(
022F20: 69 6E 6B 5F 76 65 63 74 6F 72 29 0D 0A 7B 0D 0A ink_vector)..{..
022F30: 20 20 72 65 67 5F 64 65 20 3D 20 69 6E 6B 5F 76 reg_de = ink_v
022F40: 65 63 74 6F 72 3B 0D 0A 20 20 69 6E 6C 69 6E 65 ector;.. inline
022F50: 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 72 6F (.. LD_DE_fro
022F60: 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 20 20 m, ®_de,..
022F70: 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 CALL, 0xB
022F80: 44 32 35 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A D25);..}....../*
022F90: 20 20 72 65 73 65 74 20 74 68 65 20 70 72 69 6E reset the prin
022FA0: 74 65 72 20 69 6E 64 69 72 65 63 74 69 6F 6E 20 ter indirection
022FB0: 20 2A 2F 0D 0A 0D 0A 4D 5F 72 65 73 65 74 5F 70 */....M_reset_p
022FC0: 72 69 6E 74 65 72 28 29 0D 0A 7B 0D 0A 20 20 69 rinter()..{.. i
022FD0: 6E 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 42 44 nline(CALL, 0xBD
022FE0: 32 38 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 28);..}....../*
022FF0: 20 74 72 79 20 74 6F 20 73 65 6E 64 20 61 20 63 try to send a c
023000: 68 61 72 61 63 74 65 72 20 74 6F 20 74 68 65 20 haracter to the
023010: 43 65 6E 74 72 6F 6E 69 63 73 20 70 6F 72 74 20 Centronics port
023020: 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 4E 42 20 */../*.. NB
023030: 20 74 68 65 20 74 69 6D 65 2D 6F 75 74 20 69 73 the time-out is
023040: 20 74 6F 6F 20 73 68 6F 72 74 20 28 69 6E 20 70 too short (in p
023050: 61 72 74 69 63 75 6C 61 72 20 66 6F 72 20 61 20 articular for a
023060: 44 4D 50 31 29 0D 0A 20 20 20 20 61 6E 64 20 74 DMP1).. and t
023070: 68 65 20 70 72 69 6E 74 65 72 20 77 69 6C 6C 20 he printer will
023080: 61 70 70 65 61 72 20 74 6F 20 74 69 6D 65 20 6F appear to time o
023090: 75 74 20 77 68 65 6E 20 61 20 6E 65 77 6C 69 6E ut when a newlin
0230A0: 65 20 69 73 20 73 65 6E 74 0D 0A 0D 0A 20 20 20 e is sent....
0230B0: 20 72 65 74 75 72 6E 73 20 74 68 65 20 63 68 61 returns the cha
0230C0: 72 61 63 74 65 72 20 6F 72 20 45 4F 46 20 28 2D racter or EOF (-
0230D0: 31 29 20 69 66 20 69 74 20 74 69 6D 65 64 20 6F 1) if it timed o
0230E0: 75 74 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 4D 5F ut..*/....int M_
0230F0: 70 72 69 6E 74 5F 63 68 61 72 28 63 68 61 72 61 print_char(chara
023100: 20 2A 20 2A 20 20 20 20 20 20 45 20 4E 20 44 20 * * E N D
023110: 20 20 4F 20 46 20 20 20 46 20 49 20 52 20 4D 20 O F F I R M
023120: 32 20 20 20 20 20 20 2A 20 2A 20 2A 20 2A 20 2A 2 * * * * *
023130: 20 2A 2F 0D 0A 1A 63 3B 0D 0A 20 20 69 6E 6C 69 */...c;.. inli
023140: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 ne(.. LD_A_fr
023150: 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 om, ®_a,..
023160: 20 43 41 4C 4C 2C 20 30 78 42 42 46 43 29 3B 0D CALL, 0xBBFC);.
023170: 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 2A 20 2A 20 2A .}....../* * * *
023180: E1 E5 D5 7D 6C FE 06 C0 23 C9 CD 94 2E EB CD 92 ...}l...#.......
023190: 2F C9 D5 2A 1F 54 CD 6B 02 E1 D0 EB 2A 1D 54 D5 /..*.T.k....*.T.
0231A0: CD 6C 02 E1 C9 D1 E1 22 C0 11 E1 7D 32 C2 11 E1 .l....."...}2...
0231B0: 22 C5 11 E1 7D 32 C7 11 D5 C5 2A C0 11 FE 01 F5 "...}2....*.....
0231C0: CC C9 2F F1 C4 AB 30 C1 C9 CD 8A 2F 30 64 E5 CD ../...0..../0d..
0231D0: 61 3D EB 2A C5 11 B7 ED 52 28 04 CD 73 50 14 E1 a=.*....R(..sP..
0231E0: 4E 3A C2 11 FE 02 28 10 FE 01 28 24 FE 04 28 28 N:....(...($..((
0231F0: FE 0B 28 2C CD 73 50 15 79 FE 01 28 06 FE 03 28 ..(,.sP.y..(...(
023200: 02 18 F1 36 02 1A FE 07 C0 E5 23 CD 3D 4F E1 C9 ...6......#.=O..
023210: B9 C8 79 FE 02 C8 18 DC 79 FE 03 20 D7 36 04 C9 ..y.....y.. .6..
023220: B9 20 D1 E5 23 5E 23 56 2A 27 54 B7 ED 52 E1 20 . ..#^#V*'T..R.
023230: C3 C9 21 00 00 22 C3 11 3A C2 11 2A C5 11 FE 07 ..!.."..:..*....
023240: 28 1F FE 0C 28 1B FE 0B 28 3E 7E FE 07 20 0F 3A (...(...(>~.. .:
023250: C2 11 FE 02 20 0B CD A5 4E 22 C3 11 18 03 CD 8D .... ...N"......
023260: 30 ED 5B 1D 54 2A 21 54 B7 ED 52 38 05 EB CD 73 0.[.T*!T..R8...s
023270: 50 16 01 05 00 1B 21 C6 11 ED B8 13 ED 53 1D 54 P.....!......S.T
023280: 2A C0 11 CD AB 2E EB C9 CD 97 30 18 D4 2A C5 11 *.........0..*..
023290: 23 5E 23 56 C3 4D 31 2A 27 54 22 C3 11 EB 2A C5 #^#V.M1*'T"...*.
0232A0: 11 23 7E 23 66 6F 19 22 27 54 C9 CD A4 2E 3A C7 .#~#fo."'T....:.
0232B0: 11 FE 02 20 78 7D B4 28 1B 3A C2 11 FE 0B 20 10 ... x}.(.:.... .
0232C0: BE 20 0D E5 CD 61 3D EB 2A C5 11 B7 ED 52 E1 C8 . ...a=.*....R..
0232D0: CD 73 50 18 3A C2 11 21 00 00 FE 07 28 21 FE 0C .sP.:..!....(!..
0232E0: 28 1D FE 04 28 1E FE 0B 20 05 CD 97 30 18 18 2A (...(... ...0..*
0232F0: C5 11 23 5E 23 56 2A 29 55 B7 ED 52 22 29 55 22 ..#^#V*)U..R")U"
023300: 63 74 65 72 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F cter)..{.. reg_
023310: 61 20 3D 20 63 68 61 72 61 63 74 65 72 3B 0D 0A a = character;..
023320: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C inline(.. L
023330: 44 5F 41 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 61 D_A_from, ®_a
023340: 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 ,.. CALL,
023350: 20 20 30 78 42 44 32 42 2C 0D 0A 20 20 20 20 4C 0xBD2B,.. L
023360: 44 5F 41 5F 77 69 74 68 2C 20 30 2C 0D 0A 20 20 D_A_with, 0,..
023370: 20 20 52 4C 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 RLA,.. LD_A
023380: 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 66 6C 61 67 _into, ®_flag
023390: 73 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 20 72 s);.. return r
0233A0: 65 67 5F 66 6C 61 67 73 20 20 3F 20 20 72 65 67 eg_flags ? reg
0233B0: 5F 61 20 20 3A 20 20 2D 31 20 3B 0D 0A 7D 0D 0A _a : -1 ;..}..
0233C0: 0D 0A 0D 0A 2F 2A 20 20 74 65 73 74 20 69 66 20 ..../* test if
0233D0: 74 68 65 20 43 65 6E 74 72 6F 6E 69 63 73 20 70 the Centronics p
0233E0: 6F 72 74 20 69 73 20 62 75 73 79 20 20 2A 2F 0D ort is busy */.
0233F0: 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 ./*.. returns
023400: 20 54 52 55 45 20 28 31 29 20 69 66 20 62 75 73 TRUE (1) if bus
023410: 79 20 61 6E 64 20 46 41 4C 53 45 20 28 30 29 20 y and FALSE (0)
023420: 69 66 20 6E 6F 74 0D 0A 2A 2F 0D 0A 0D 0A 69 6E if not..*/....in
023430: 74 20 4D 5F 62 75 73 79 5F 70 72 69 6E 74 65 72 t M_busy_printer
023440: 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 ()..{.. inline(
023450: 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 .. CALL,
023460: 20 30 78 42 44 32 45 2C 0D 0A 20 20 20 20 4C 44 0xBD2E,.. LD
023470: 5F 41 5F 77 69 74 68 2C 20 30 2C 0D 0A 20 20 20 _A_with, 0,..
023480: 20 52 4C 41 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F RLA,.. LD_A_
023490: 69 6E 74 6F 2C 20 26 72 65 67 5F 66 6C 61 67 73 into, ®_flags
0234A0: 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 20 72 65 );.. return re
0234B0: 67 5F 66 6C 61 67 73 3B 0D 0A 7D 0D 0A 0D 0A 0D g_flags;..}.....
0234C0: 0A 2F 2A 20 20 73 65 6E 64 20 61 20 63 68 61 72 ./* send a char
0234D0: 61 63 74 65 72 20 74 6F 20 74 68 65 20 43 65 6E acter to the Cen
0234E0: 74 72 6F 6E 69 63 73 20 70 6F 72 74 20 20 2A 2F tronics port */
0234F0: 0D 0A 0D 0A 4D 5F 73 65 6E 64 5F 70 72 69 6E 74 ....M_send_print
023500: 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 20 20 /* * * * * *
023510: 20 20 46 20 49 20 52 20 4D 20 57 20 41 20 52 20 F I R M W A R
023520: 45 20 2E 20 4C 20 49 20 42 20 20 20 20 20 20 2A E . L I B *
023530: 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 2F 2A 20 * * * * */../*
023540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023570: 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 */../*
023580: 20 20 20 20 20 20 20 20 20 20 20 46 20 49 20 52 F I R
023590: 20 4D 20 36 20 20 2D 20 20 4D 61 63 68 69 6E 65 M 6 - Machine
0235A0: 20 50 61 63 6B 20 20 20 20 20 20 20 20 20 20 20 Pack
0235B0: 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 */../*
0235C0: 20 20 20 20 20 20 20 20 43 6F 70 79 72 69 67 68 Copyrigh
0235D0: 74 20 28 43 29 20 31 39 38 35 20 48 69 53 6F 66 t (C) 1985 HiSof
0235E0: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t
0235F0: 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 20 */../*
023600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023620: 20 20 20 20 20 20 20 20 20 20 20 20 20 2A 2F 0D */.
023630: 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 ./* * * * * * *
023640: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
023650: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
023660: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 0D 0A * * * * * */....
023670: 2F 2A 2A 20 20 4D 41 43 48 49 4E 45 20 50 41 43 /** MACHINE PAC
023680: 4B 20 49 4E 54 45 52 46 41 43 45 20 46 55 4E 43 K INTERFACE FUNC
023690: 54 49 4F 4E 53 20 20 2A 2A 2F 0D 0A 0D 0A 0D 0A TIONS **/......
0236A0: 2F 2A 20 20 4C 6F 61 64 20 61 6E 64 20 72 75 6E /* Load and run
0236B0: 20 61 20 70 72 6F 67 72 61 6D 20 20 2A 2F 0D 0A a program */..
0236C0: 0D 0A 4D 5F 62 6F 6F 74 5F 70 72 6F 67 72 61 6D ..M_boot_program
0236D0: 28 6C 6F 61 64 65 72 29 0D 0A 7B 0D 0A 20 20 72 (loader)..{.. r
0236E0: 65 67 5F 68 6C 20 3D 20 6C 6F 61 64 65 72 3B 0D eg_hl = loader;.
0236F0: 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 . inline(..
023700: 65 72 28 63 68 61 72 61 63 74 65 72 29 0D 0A 7B er(character)..{
023710: 0D 0A 20 20 72 65 67 5F 61 20 3D 20 63 68 61 72 .. reg_a = char
023720: 61 63 74 65 72 3B 0D 0A 20 20 69 6E 6C 69 6E 65 acter;.. inline
023730: 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D (.. LD_A_from
023740: 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 43 , ®_a,.. C
023750: 41 4C 4C 2C 20 20 20 20 20 20 30 78 42 44 33 31 ALL, 0xBD31
023760: 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 73 );..}....../* s
023770: 65 6E 64 20 64 61 74 61 20 74 6F 20 61 20 73 6F end data to a so
023780: 75 6E 64 20 63 68 69 70 20 72 65 67 69 73 74 65 und chip registe
023790: 72 20 20 2A 2F 0D 0A 0D 0A 4D 5F 73 6F 75 6E 64 r */....M_sound
0237A0: 5F 72 65 67 69 73 74 65 72 28 73 6F 75 6E 64 5F _register(sound_
0237B0: 63 68 69 70 5F 72 65 67 69 73 74 65 72 2C 20 64 chip_register, d
0237C0: 61 74 61 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 ata)..{.. reg_a
0237D0: 20 20 3D 20 73 6F 75 6E 64 5F 63 68 69 70 5F 72 = sound_chip_r
0237E0: 65 67 69 73 74 65 72 3B 0D 0A 20 20 72 65 67 5F egister;.. reg_
0237F0: 62 63 20 3D 20 64 61 74 61 3B 0D 0A 20 20 69 6E bc = data;.. in
023800: 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F line(.. LD_A_
023810: 66 72 6F 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A from, ®_a,..
023820: 20 20 20 20 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 LD_BC_from,
023830: 26 72 65 67 5F 62 63 2C 0D 0A 20 20 20 20 43 41 ®_bc,.. CA
023840: 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 44 33 34 LL, 0xBD34
023850: 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 2A 20 20 );..}....../**
023860: 52 45 53 54 4F 52 45 20 54 48 45 20 53 54 41 4E RESTORE THE STAN
023870: 44 41 52 44 20 4A 55 4D 50 42 4C 4F 43 4B 53 20 DARD JUMPBLOCKS
023880: 20 2A 2F 0D 0A 0D 0A 4A 75 6D 70 5F 72 65 73 74 */....Jump_rest
023890: 6F 72 65 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 ore()..{.. inli
0238A0: 6E 65 28 43 41 4C 4C 2C 20 30 78 42 44 33 37 29 ne(CALL, 0xBD37)
0238B0: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 2A ;..}......../* *
0238C0: 20 2A 20 2A 20 2A 20 2A 20 20 20 20 20 45 20 4E * * * * E N
0238D0: 20 44 20 20 20 4F 20 46 20 20 20 46 20 49 20 52 D O F F I R
0238E0: 20 4D 20 36 20 20 20 20 20 20 2A 20 2A 20 2A 20 M 6 * * *
0238F0: 2A 20 2A 20 2A 2F 0D 0A 1A 42 4C 4F 43 4B 53 20 * * */...BLOCKS
023900: 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_HL_from, ®
023910: 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 _hl,.. CALL,
023920: 20 20 20 20 20 20 30 78 42 44 31 33 29 3B 0D 0A 0xBD13);..
023930: 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 72 75 6E 20 61 }....../* run a
023940: 20 70 72 6F 67 72 61 6D 20 20 2A 2F 0D 0A 0D 0A program */....
023950: 4D 5F 73 74 61 72 74 5F 70 72 6F 67 72 61 6D 28 M_start_program(
023960: 65 6E 74 72 79 5F 61 64 64 72 65 73 73 2C 20 52 entry_address, R
023970: 4F 4D 5F 73 65 6C 65 63 74 29 0D 0A 7B 0D 0A 20 OM_select)..{..
023980: 20 72 65 67 5F 68 6C 20 3D 20 65 6E 74 72 79 5F reg_hl = entry_
023990: 61 64 64 72 65 73 73 3B 0D 0A 20 20 72 65 67 5F address;.. reg_
0239A0: 62 63 20 3D 20 52 4F 4D 5F 73 65 6C 65 63 74 3B bc = ROM_select;
0239B0: 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 .. inline(..
0239C0: 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 LD_HL_from, &re
0239D0: 67 5F 68 6C 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 g_hl,.. LD_BC
0239E0: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 62 63 2C 0D _from, ®_bc,.
0239F0: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
023A00: 20 30 78 42 44 31 36 29 3B 0D 0A 7D 0D 0A 0D 0A 0xBD16);..}....
023A10: 0D 0A 2F 2A 20 20 77 61 69 74 20 75 6E 74 69 6C ../* wait until
023A20: 20 66 72 61 6D 65 20 66 6C 79 62 61 63 6B 20 69 frame flyback i
023A30: 73 20 64 65 74 65 63 74 65 64 20 28 61 6E 64 20 s detected (and
023A40: 74 68 69 73 20 63 6F 6E 64 69 74 69 6F 6E 20 70 this condition p
023A50: 65 72 73 69 73 74 73 29 20 20 2A 2F 0D 0A 0D 0A ersists) */....
023A60: 4D 5F 77 61 69 74 5F 66 6C 79 62 61 63 6B 28 29 M_wait_flyback()
023A70: 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 41 ..{.. inline(CA
023A80: 4C 4C 2C 20 30 78 42 44 31 39 29 3B 0D 0A 7D 0D LL, 0xBD19);..}.
023A90: 0A 0D 0A 0D 0A 2F 2A 20 20 73 65 74 20 74 68 65 ...../* set the
023AA0: 20 73 63 72 65 65 6E 20 6D 6F 64 65 20 20 2A 2F screen mode */
023AB0: 0D 0A 0D 0A 4D 5F 73 65 74 5F 6D 6F 64 65 28 6D ....M_set_mode(m
023AC0: 6F 64 65 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 ode)..{.. reg_a
023AD0: 20 3D 20 6D 6F 64 65 3B 0D 0A 20 20 69 6E 6C 69 = mode;.. inli
023AE0: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 ne(.. LD_A_fr
023AF0: 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 om, ®_a,..
023B00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
023B10: 1E 00 00 00 02 09 4E E5 1E 00 41 02 00 00 00 02 ......N...A.....
023B20: 1E 00 46 02 00 00 00 02 1E 00 42 02 00 00 00 02 ..F.......B.....
023B30: 1E 00 47 02 00 00 00 02 1E 00 43 02 00 00 00 02 ..G.......C.....
023B40: 1E 00 48 02 00 00 00 02 1E 00 44 02 00 00 00 02 ..H.......D.....
023B50: 1E 00 49 02 00 00 00 02 1E 00 45 02 00 00 00 02 ..I.......E.....
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: 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 20 20 20 /* * * * * *
023C10: 20 20 46 20 49 20 52 20 4D 20 57 20 41 20 52 20 F I R M W A R
023C20: 45 20 2E 20 4C 20 49 20 42 20 20 20 20 20 20 2A E . L I B *
023C30: 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 2F 2A 20 * * * * */../*
023C40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023C50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023C60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023C70: 20 20 20 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 */../*
023C80: 20 20 20 20 20 46 20 49 20 52 20 4D 20 31 20 20 F I R M 1
023C90: 2D 20 20 4B 65 79 62 6F 61 72 64 20 20 74 6F 20 - Keyboard to
023CA0: 20 47 72 61 70 68 69 63 73 20 56 44 55 20 20 20 Graphics VDU
023CB0: 20 20 20 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 */../*
023CC0: 20 20 20 20 20 20 20 20 43 6F 70 79 72 69 67 68 Copyrigh
023CD0: 74 20 28 43 29 20 31 39 38 35 20 48 69 53 6F 66 t (C) 1985 HiSof
023CE0: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t
023CF0: 2A 2F 0D 0A 2F 2A 20 20 20 20 20 20 20 20 20 20 */../*
023D00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023D10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
023D20: 20 20 20 20 20 20 20 20 20 20 20 20 20 2A 2F 0D */.
023D30: 0A 2F 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 ./* * * * * * *
023D40: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
023D50: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 2A 20 * * * * * * * *
023D60: 2A 20 2A 20 2A 20 2A 20 2A 20 2A 2F 0D 0A 0D 0A * * * * * */....
023D70: 2F 2A 0D 0A 20 20 54 68 69 73 20 6C 69 62 72 61 /*.. This libra
023D80: 72 79 20 66 69 6C 65 20 70 72 6F 76 69 64 65 73 ry file provides
023D90: 20 61 20 73 69 6D 70 6C 65 20 69 6E 74 65 72 66 a simple interf
023DA0: 61 63 65 20 74 6F 20 65 61 63 68 20 6F 66 20 74 ace to each of t
023DB0: 68 65 20 66 69 72 6D 77 61 72 65 0D 0A 20 20 72 he firmware.. r
023DC0: 6F 75 74 69 6E 65 73 20 61 63 63 65 73 73 65 64 outines accessed
023DD0: 20 74 68 72 6F 75 67 68 20 74 68 65 20 6A 75 6D through the jum
023DE0: 70 62 6C 6F 63 6B 73 20 69 6E 20 41 6D 73 74 72 pblocks in Amstr
023DF0: 61 64 20 63 6F 6D 70 75 74 65 72 73 2E 0D 0A 20 ad computers...
023E00: 74 69 61 6C 69 73 65 28 29 0D 0A 7B 0D 0A 20 20 tialise()..{..
023E10: 69 6E 6C 69 6E 65 28 43 41 4C 4C 2C 20 30 78 42 inline(CALL, 0xB
023E20: 42 30 30 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A B00);..}....../*
023E30: 20 20 52 65 73 65 74 20 74 68 65 20 4B 65 79 20 Reset the Key
023E40: 4D 61 6E 61 67 65 72 20 49 6E 64 69 72 65 63 74 Manager Indirect
023E50: 69 6F 6E 73 20 61 6E 64 20 42 75 66 66 65 72 73 ions and Buffers
023E60: 20 20 2A 2F 0D 0A 0D 0A 4B 5F 72 65 73 65 74 28 */....K_reset(
023E70: 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 )..{.. inline(C
023E80: 41 4C 4C 2C 20 30 78 42 42 30 33 29 3B 0D 0A 7D ALL, 0xBB03);..}
023E90: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 57 61 69 74 20 66 ....../* Wait f
023EA0: 6F 72 20 74 68 65 20 6E 65 78 74 20 63 68 61 72 or the next char
023EB0: 61 63 74 65 72 20 66 72 6F 6D 20 74 68 65 20 6B acter from the k
023EC0: 65 79 62 6F 61 72 64 20 20 2A 2F 0D 0A 0D 0A 69 eyboard */....i
023ED0: 6E 74 20 4B 5F 77 61 69 74 5F 63 68 61 72 28 29 nt K_wait_char()
023EE0: 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A ..{.. inline(..
023EF0: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 CALL, 0
023F00: 78 42 42 30 36 2C 0D 0A 20 20 20 20 4C 44 5F 41 xBB06,.. LD_A
023F10: 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 61 29 3B 0D _into, ®_a);.
023F20: 0A 20 20 72 65 74 75 72 6E 20 72 65 67 5F 61 3B . return reg_a;
023F30: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 54 65 73 ..}....../* Tes
023F40: 74 20 69 66 20 61 20 63 68 61 72 61 63 74 65 72 t if a character
023F50: 20 69 73 20 61 76 61 69 6C 61 62 6C 65 20 66 72 is available fr
023F60: 6F 6D 20 74 68 65 20 6B 65 79 62 6F 61 72 64 20 om the keyboard
023F70: 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 */../*.. ret
023F80: 75 72 6E 73 20 2D 31 20 28 45 4F 46 29 20 69 66 urns -1 (EOF) if
023F90: 20 74 68 65 72 65 20 69 73 20 6E 6F 20 63 68 61 there is no cha
023FA0: 72 61 63 74 65 72 20 61 76 61 69 6C 61 62 6C 65 racter available
023FB0: 2C 0D 0A 20 20 20 20 61 6E 64 20 74 68 65 20 63 ,.. and the c
023FC0: 68 61 72 61 63 74 65 72 20 76 61 6C 75 65 20 69 haracter value i
023FD0: 66 20 74 68 65 72 65 20 69 73 0D 0A 2A 2F 0D 0A f there is..*/..
023FE0: 0D 0A 69 6E 74 20 4B 5F 72 65 61 64 5F 63 68 61 ..int K_read_cha
023FF0: 72 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 r()..{.. inline
024000: 20 4D 61 6E 79 20 6F 66 20 74 68 65 20 66 75 6E Many of the fun
024010: 63 74 69 6F 6E 73 20 61 72 65 20 61 6C 72 65 61 ctions are alrea
024020: 64 79 20 70 72 6F 76 69 64 65 64 20 69 6E 20 6F dy provided in o
024030: 6E 65 20 77 61 79 20 6F 72 20 61 6E 6F 74 68 65 ne way or anothe
024040: 72 20 69 6E 20 74 68 65 0D 0A 20 20 73 74 61 6E r in the.. stan
024050: 64 61 72 64 20 43 20 6C 69 62 72 61 72 79 20 61 dard C library a
024060: 6E 64 20 74 68 65 79 20 73 68 6F 75 6C 64 20 61 nd they should a
024070: 6C 77 61 79 73 20 62 65 20 75 73 65 64 20 69 6E lways be used in
024080: 20 70 72 65 66 65 72 65 6E 63 65 20 66 6F 72 20 preference for
024090: 74 68 65 0D 0A 20 20 73 61 6B 65 20 6F 66 20 70 the.. sake of p
0240A0: 6F 72 74 61 62 69 6C 69 74 79 20 61 6E 64 20 65 ortability and e
0240B0: 61 73 65 20 6F 66 20 75 6E 64 65 72 73 74 61 6E ase of understan
0240C0: 64 69 6E 67 20 28 65 67 20 75 73 65 20 67 65 74 ding (eg use get
0240D0: 63 68 61 72 28 29 20 6F 72 20 72 61 77 69 6E 28 char() or rawin(
0240E0: 29 0D 0A 20 20 69 6E 20 70 72 65 66 65 72 65 6E ).. in preferen
0240F0: 63 65 20 74 6F 20 54 5F 77 61 69 74 5F 63 68 61 ce to T_wait_cha
024100: 72 28 29 29 2E 20 20 42 41 53 49 43 2E 4C 49 42 r()). BASIC.LIB
024110: 20 61 6C 73 6F 20 63 6F 6E 74 61 69 6E 73 20 73 also contains s
024120: 6F 6D 65 20 65 61 73 69 65 72 2D 74 6F 2D 75 73 ome easier-to-us
024130: 65 0D 0A 20 20 66 75 6E 63 74 69 6F 6E 73 20 77 e.. functions w
024140: 68 69 63 68 20 63 61 6E 20 61 6C 73 6F 20 62 65 hich can also be
024150: 20 75 73 65 64 2E 0D 0A 0D 0A 20 20 54 68 65 20 used..... The
024160: 66 75 6E 63 74 69 6F 6E 73 20 61 72 65 20 6C 69 functions are li
024170: 73 74 65 64 20 69 6E 20 74 68 65 20 73 61 6D 65 sted in the same
024180: 20 6F 72 64 65 72 20 61 73 20 69 6E 20 74 68 65 order as in the
024190: 20 46 69 72 6D 77 61 72 65 20 53 70 65 63 69 66 Firmware Specif
0241A0: 69 63 61 74 69 6F 6E 0D 0A 20 20 61 6E 64 20 79 ication.. and y
0241B0: 6F 75 20 73 68 6F 75 6C 64 20 72 65 66 65 72 20 ou should refer
0241C0: 74 6F 20 69 74 20 66 6F 72 20 66 75 72 74 68 65 to it for furthe
0241D0: 72 20 64 65 74 61 69 6C 73 20 6F 66 20 77 68 61 r details of wha
0241E0: 74 20 74 68 65 20 66 75 6E 63 74 69 6F 6E 73 20 t the functions
0241F0: 64 6F 2E 0D 0A 0D 0A 20 20 54 68 65 20 6E 61 6D do..... The nam
024200: 28 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 (.. CALL,
024210: 20 20 30 78 42 42 30 39 2C 0D 0A 20 20 20 20 4C 0xBB09,.. L
024220: 44 5F 41 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 61 D_A_into, ®_a
024230: 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 77 69 74 68 ,.. LD_A_with
024240: 2C 20 30 2C 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A , 0,.. RLA,..
024250: 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 26 LD_A_into, &
024260: 72 65 67 5F 66 6C 61 67 73 29 3B 0D 0A 20 20 69 reg_flags);.. i
024270: 66 20 28 72 65 67 5F 66 6C 61 67 73 29 20 72 65 f (reg_flags) re
024280: 74 75 72 6E 20 72 65 67 5F 61 3B 0D 0A 20 20 72 turn reg_a;.. r
024290: 65 74 75 72 6E 20 2D 31 3B 0D 0A 7D 0D 0A 0D 0A eturn -1;..}....
0242A0: 0D 0A 2F 2A 20 20 52 65 74 75 72 6E 20 61 20 73 ../* Return a s
0242B0: 69 6E 67 6C 65 20 63 68 61 72 61 63 74 65 72 20 ingle character
0242C0: 74 6F 20 74 68 65 20 6B 65 79 62 6F 61 72 64 20 to the keyboard
0242D0: 66 6F 72 20 6E 65 78 74 20 74 69 6D 65 20 20 2A for next time *
0242E0: 2F 0D 0A 0D 0A 4B 5F 63 68 61 72 5F 72 65 74 75 /....K_char_retu
0242F0: 72 6E 28 63 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F rn(c)..{.. reg_
024300: 61 20 3D 20 63 3B 0D 0A 20 20 69 6E 6C 69 6E 65 a = c;.. inline
024310: 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D (.. LD_A_from
024320: 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 43 , ®_a,.. C
024330: 41 4C 4C 2C 20 20 20 20 20 20 30 78 42 42 30 43 ALL, 0xBB0C
024340: 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 );..}....../* S
024350: 65 74 20 61 6E 20 65 78 70 61 6E 73 69 6F 6E 20 et an expansion
024360: 73 74 72 69 6E 67 20 20 2A 2F 0D 0A 0D 0A 4B 5F string */....K_
024370: 73 65 74 5F 65 78 70 61 6E 64 28 65 78 70 61 6E set_expand(expan
024380: 73 69 6F 6E 5F 74 6F 6B 65 6E 2C 20 73 74 72 69 sion_token, stri
024390: 6E 67 5F 6C 65 6E 67 74 68 2C 20 73 74 72 69 6E ng_length, strin
0243A0: 67 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 62 63 20 g)..{.. reg_bc
0243B0: 3D 20 28 65 78 70 61 6E 73 69 6F 6E 5F 74 6F 6B = (expansion_tok
0243C0: 65 6E 20 3C 3C 20 38 29 20 2B 20 73 74 72 69 6E en << 8) + strin
0243D0: 67 5F 6C 65 6E 67 74 68 3B 0D 0A 20 20 72 65 67 g_length;.. reg
0243E0: 5F 68 6C 20 3D 20 73 74 72 69 6E 67 3B 0D 0A 20 _hl = string;..
0243F0: 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 inline(.. LD
024400: 65 73 20 6F 66 20 74 68 65 20 66 75 6E 63 74 69 es of the functi
024410: 6F 6E 73 20 68 61 76 65 20 62 65 65 6E 20 6B 65 ons have been ke
024420: 70 74 20 61 73 20 63 6C 6F 73 65 20 61 73 20 70 pt as close as p
024430: 6F 73 73 69 62 6C 65 20 74 6F 20 74 68 65 0D 0A ossible to the..
024440: 20 20 63 6F 72 72 65 73 70 6F 6E 64 69 6E 67 20 corresponding
024450: 6A 75 6D 70 62 6C 6F 63 6B 20 65 6E 74 72 79 20 jumpblock entry
024460: 6E 61 6D 65 2E 20 20 54 68 65 20 6D 61 6A 6F 72 name. The major
024470: 20 64 69 66 66 65 72 65 6E 63 65 20 69 73 20 74 difference is t
024480: 68 61 74 20 74 68 65 20 70 72 65 66 69 78 0D 0A hat the prefix..
024490: 20 20 66 6F 72 20 6D 6F 73 74 20 67 72 6F 75 70 for most group
0244A0: 73 20 6F 66 20 66 75 6E 63 74 69 6F 6E 73 20 68 s of functions h
0244B0: 61 73 20 62 65 65 6E 20 74 75 72 6E 65 64 20 69 as been turned i
0244C0: 6E 74 6F 20 61 20 73 69 6E 67 6C 65 20 63 68 61 nto a single cha
0244D0: 72 61 63 74 65 72 20 28 62 65 63 61 75 73 65 0D racter (because.
0244E0: 0A 20 20 43 20 69 64 65 6E 74 69 66 69 65 72 73 . C identifiers
0244F0: 20 6D 75 73 74 20 64 69 66 66 65 72 20 69 6E 20 must differ in
024500: 74 68 65 20 66 69 72 73 74 20 65 69 67 68 74 20 the first eight
024510: 70 6C 61 63 65 73 29 2E 20 20 54 68 65 20 67 72 places). The gr
024520: 6F 75 70 20 70 72 65 66 69 78 65 73 20 61 72 65 oup prefixes are
024530: 0D 0A 0D 0A 20 20 20 20 20 20 4B 20 20 20 4B 4D .... K KM
024540: 20 20 20 20 20 20 4B 65 79 20 4D 61 6E 61 67 65 Key Manage
024550: 72 0D 0A 20 20 20 20 20 20 54 20 20 20 54 58 54 r.. T TXT
024560: 20 20 20 20 20 54 65 78 74 20 56 44 55 0D 0A 20 Text VDU..
024570: 20 20 20 20 20 47 20 20 20 47 52 41 20 20 20 20 G GRA
024580: 20 47 72 61 70 68 69 63 73 20 56 44 55 0D 0A 20 Graphics VDU..
024590: 20 20 20 20 20 56 20 20 20 53 43 52 20 20 20 20 V SCR
0245A0: 20 53 63 72 65 65 6E 20 50 61 63 6B 0D 0A 20 20 Screen Pack..
0245B0: 20 20 20 20 43 20 20 20 43 41 53 20 20 20 20 20 C CAS
0245C0: 43 61 73 73 65 74 74 65 20 4D 61 6E 61 67 65 72 Cassette Manager
0245D0: 0D 0A 20 20 20 20 20 20 53 20 20 20 53 4F 55 4E .. S SOUN
0245E0: 44 20 20 20 53 6F 75 6E 64 20 4D 61 6E 61 67 65 D Sound Manage
0245F0: 72 0D 0A 20 20 20 20 20 20 45 20 20 20 4B 4C 20 r.. E KL
024600: 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 62 _BC_from, ®_b
024610: 63 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 66 72 c,.. LD_HL_fr
024620: 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A 20 20 om, ®_hl,..
024630: 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 CALL, 0x
024640: 42 42 30 46 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F BB0F);..}....../
024650: 2A 20 20 47 65 74 20 61 20 63 68 61 72 61 63 74 * Get a charact
024660: 65 72 20 66 72 6F 6D 20 61 6E 20 65 78 70 61 6E er from an expan
024670: 73 69 6F 6E 20 73 74 72 69 6E 67 20 20 2A 2F 0D sion string */.
024680: 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 ./*.. returns
024690: 20 2D 31 20 28 45 4F 46 29 20 69 66 20 74 68 65 -1 (EOF) if the
0246A0: 72 65 20 69 73 20 6E 6F 20 63 68 61 72 61 63 74 re is no charact
0246B0: 65 72 20 61 76 61 69 6C 61 62 6C 65 2C 0D 0A 20 er available,..
0246C0: 20 20 20 61 6E 64 20 74 68 65 20 63 68 61 72 61 and the chara
0246D0: 63 74 65 72 20 76 61 6C 75 65 20 69 66 20 74 68 cter value if th
0246E0: 65 72 65 20 69 73 0D 0A 2A 2F 0D 0A 0D 0A 0D 0A ere is..*/......
0246F0: 69 6E 74 20 4B 5F 67 65 74 5F 65 78 70 61 6E 64 int K_get_expand
024700: 28 65 78 70 61 6E 73 69 6F 6E 5F 74 6F 6B 65 6E (expansion_token
024710: 2C 20 63 68 61 72 61 63 74 65 72 5F 6E 75 6D 62 , character_numb
024720: 65 72 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 er)..{.. reg_a
024730: 20 3D 20 65 78 70 61 6E 73 69 6F 6E 5F 74 6F 6B = expansion_tok
024740: 65 6E 3B 0D 0A 20 20 72 65 67 5F 68 6C 20 3D 20 en;.. reg_hl =
024750: 63 68 61 72 61 63 74 65 72 5F 6E 75 6D 62 65 72 character_number
024760: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
024770: 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 26 72 65 LD_A_from, &re
024780: 67 5F 61 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F g_a,.. LD_HL_
024790: 66 72 6F 6D 2C 26 72 65 67 5F 68 6C 2C 0D 0A 20 from,®_hl,..
0247A0: 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 78 CALL, 0x
0247B0: 42 42 31 32 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F BB12,.. LD_A_
0247C0: 69 6E 74 6F 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 into, ®_a,..
0247D0: 20 20 20 4C 44 5F 41 5F 77 69 74 68 2C 20 30 2C LD_A_with, 0,
0247E0: 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 20 20 .. RLA,..
0247F0: 4C 44 5F 41 5F 69 6E 74 6F 2C 20 26 72 65 67 5F LD_A_into, ®_
024800: 20 20 20 20 20 4B 65 72 6E 65 6C 0D 0A 20 20 20 Kernel..
024810: 20 20 20 4D 20 20 20 4D 43 20 20 20 20 20 20 4D M MC M
024820: 61 63 68 69 6E 65 20 50 61 63 6B 0D 0A 2A 2F 0D achine Pack..*/.
024830: 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D ................
024840: 0A 0D 0A 0D 0A 2F 2A 20 20 2F 2A 2A 20 20 5A 38 ...../* /** Z8
024850: 30 20 44 65 66 69 6E 69 74 69 6F 6E 73 20 66 6F 0 Definitions fo
024860: 72 20 46 75 6E 63 74 69 6F 6E 73 20 55 73 69 6E r Functions Usin
024870: 67 20 4C 6F 63 6F 6D 6F 74 69 76 65 20 46 69 72 g Locomotive Fir
024880: 6D 77 61 72 65 20 20 2A 2A 2F 0D 0A 0D 0A 2F 2A mware **/..../*
024890: 20 20 5A 38 30 20 69 6E 73 74 72 75 63 74 69 6F Z80 instructio
0248A0: 6E 20 73 65 74 20 64 65 66 69 6E 69 74 69 6F 6E n set definition
0248B0: 73 20 20 2A 2F 0D 0A 0D 0A 23 64 65 66 69 6E 65 s */....#define
0248C0: 20 4C 44 5F 41 5F 66 72 6F 6D 20 20 30 78 33 41 LD_A_from 0x3A
0248D0: 0D 0A 23 64 65 66 69 6E 65 20 4C 44 5F 48 4C 5F ..#define LD_HL_
0248E0: 66 72 6F 6D 20 30 78 32 41 0D 0A 23 64 65 66 69 from 0x2A..#defi
0248F0: 6E 65 20 4C 44 5F 42 43 5F 66 72 6F 6D 20 30 78 ne LD_BC_from 0x
024900: 34 42 45 44 0D 0A 23 64 65 66 69 6E 65 20 4C 44 4BED..#define LD
024910: 5F 44 45 5F 66 72 6F 6D 20 30 78 35 42 45 44 0D _DE_from 0x5BED.
024920: 0A 23 64 65 66 69 6E 65 20 4C 44 5F 48 4C 5F 69 .#define LD_HL_i
024930: 6E 74 6F 20 30 78 32 32 0D 0A 23 64 65 66 69 6E nto 0x22..#defin
024940: 65 20 4C 44 5F 41 5F 69 6E 74 6F 20 20 30 78 33 e LD_A_into 0x3
024950: 32 0D 0A 23 64 65 66 69 6E 65 20 4C 44 5F 42 43 2..#define LD_BC
024960: 5F 69 6E 74 6F 20 30 78 34 33 45 44 0D 0A 23 64 _into 0x43ED..#d
024970: 65 66 69 6E 65 20 4C 44 5F 44 45 5F 69 6E 74 6F efine LD_DE_into
024980: 20 30 78 35 33 45 44 0D 0A 23 64 65 66 69 6E 65 0x53ED..#define
024990: 20 4C 44 5F 48 4C 5F 77 69 74 68 20 30 78 32 31 LD_HL_with 0x21
0249A0: 0D 0A 23 64 65 66 69 6E 65 20 4C 44 5F 48 5F 77 ..#define LD_H_w
0249B0: 69 74 68 20 20 30 78 32 36 0D 0A 23 64 65 66 69 ith 0x26..#defi
0249C0: 6E 65 20 4C 44 5F 41 5F 77 69 74 68 20 20 30 78 ne LD_A_with 0x
0249D0: 33 45 0D 0A 23 64 65 66 69 6E 65 20 52 4C 41 20 3E..#define RLA
0249E0: 20 20 20 20 20 20 20 30 78 31 37 0D 0A 23 64 65 0x17..#de
0249F0: 66 69 6E 65 20 49 4E 43 5F 48 4C 20 20 20 20 20 fine INC_HL
024A00: 66 6C 61 67 73 29 3B 0D 0A 20 20 69 66 20 28 72 flags);.. if (r
024A10: 65 67 5F 66 6C 61 67 73 29 20 72 65 74 75 72 6E eg_flags) return
024A20: 20 72 65 67 5F 61 3B 0D 0A 20 20 72 65 74 75 72 reg_a;.. retur
024A30: 6E 20 2D 31 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A n -1;..}....../*
024A40: 20 20 41 6C 6C 6F 63 61 74 65 20 61 20 62 75 66 Allocate a buf
024A50: 66 65 72 20 66 6F 72 20 65 78 70 61 6E 73 69 6F fer for expansio
024A60: 6E 20 73 74 72 69 6E 67 73 20 20 2A 2F 0D 0A 2F n strings */../
024A70: 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 54 *.. returns T
024A80: 52 55 45 20 28 31 29 20 69 66 20 65 76 65 72 79 RUE (1) if every
024A90: 74 68 69 6E 67 20 4F 4B 0D 0A 20 20 20 20 61 6E thing OK.. an
024AA0: 64 20 46 41 4C 53 45 20 28 30 29 20 69 66 20 62 d FALSE (0) if b
024AB0: 75 66 66 65 72 20 74 6F 6F 20 73 68 6F 72 74 0D uffer too short.
024AC0: 0A 2A 2F 0D 0A 0D 0A 4B 5F 65 78 70 5F 62 75 66 .*/....K_exp_buf
024AD0: 66 65 72 28 61 64 64 72 65 73 73 5F 6F 66 5F 62 fer(address_of_b
024AE0: 75 66 66 65 72 2C 20 6C 65 6E 67 74 68 5F 6F 66 uffer, length_of
024AF0: 5F 62 75 66 66 65 72 29 0D 0A 7B 0D 0A 20 20 72 _buffer)..{.. r
024B00: 65 67 5F 64 65 20 3D 20 61 64 64 72 65 73 73 5F eg_de = address_
024B10: 6F 66 5F 62 75 66 66 65 72 3B 0D 0A 20 20 72 65 of_buffer;.. re
024B20: 67 5F 68 6C 20 3D 20 6C 65 6E 67 74 68 5F 6F 66 g_hl = length_of
024B30: 5F 62 75 66 66 65 72 3B 0D 0A 20 20 69 6E 6C 69 _buffer;.. inli
024B40: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 44 45 5F 66 ne(.. LD_DE_f
024B50: 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D 0A 20 rom, ®_de,..
024B60: 20 20 20 4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 LD_HL_from, &
024B70: 72 65 67 5F 68 6C 2C 0D 0A 20 20 20 20 43 41 4C reg_hl,.. CAL
024B80: 4C 2C 20 20 20 20 20 20 20 30 78 42 42 31 35 2C L, 0xBB15,
024B90: 0D 0A 20 20 20 20 4C 44 5F 41 5F 77 69 74 68 2C .. LD_A_with,
024BA0: 20 20 30 2C 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 0,.. RLA,..
024BB0: 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 20 LD_A_into,
024BC0: 26 72 65 67 5F 66 6C 61 67 73 29 3B 0D 0A 20 20 ®_flags);..
024BD0: 72 65 74 75 72 6E 20 72 65 67 5F 66 6C 61 67 73 return reg_flags
024BE0: 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 57 61 ;..}....../* Wa
024BF0: 69 74 20 66 6F 72 20 61 20 6B 65 79 20 74 6F 20 it for a key to
024C00: 30 78 32 33 0D 0A 23 64 65 66 69 6E 65 20 4A 52 0x23..#define JR
024C10: 5F 5A 20 20 20 20 20 20 20 30 78 32 38 0D 0A 23 _Z 0x28..#
024C20: 64 65 66 69 6E 65 20 44 45 43 5F 48 4C 20 20 20 define DEC_HL
024C30: 20 20 30 78 32 42 0D 0A 23 64 65 66 69 6E 65 20 0x2B..#define
024C40: 4A 52 5F 43 20 20 20 20 20 20 20 30 78 33 38 0D JR_C 0x38.
024C50: 0A 23 64 65 66 69 6E 65 20 49 4E 43 5F 41 20 20 .#define INC_A
024C60: 20 20 20 20 30 78 33 43 0D 0A 23 64 65 66 69 6E 0x3C..#defin
024C70: 65 20 4C 44 5F 4C 5F 41 20 20 20 20 20 30 78 36 e LD_L_A 0x6
024C80: 46 0D 0A 23 64 65 66 69 6E 65 20 4C 44 5F 41 5F F..#define LD_A_
024C90: 42 20 20 20 20 20 30 78 37 38 0D 0A 23 64 65 66 B 0x78..#def
024CA0: 69 6E 65 20 41 44 44 5F 41 5F 43 20 20 20 20 30 ine ADD_A_C 0
024CB0: 78 38 31 0D 0A 23 64 65 66 69 6E 65 20 43 41 4C x81..#define CAL
024CC0: 4C 20 20 20 20 20 20 20 30 78 43 44 0D 0A 23 64 L 0xCD..#d
024CD0: 65 66 69 6E 65 20 52 4C 5F 4C 20 20 20 20 20 20 efine RL_L
024CE0: 20 30 78 31 35 43 42 0D 0A 23 64 65 66 69 6E 65 0x15CB..#define
024CF0: 20 50 4F 50 5F 49 58 20 20 20 20 20 30 78 44 44 POP_IX 0xDD
024D00: 45 31 0D 0A 23 64 65 66 69 6E 65 20 50 55 53 48 E1..#define PUSH
024D10: 5F 49 58 20 20 20 20 30 78 44 44 45 35 0D 0A 0D _IX 0xDDE5...
024D20: 0A 0D 0A 2F 2A 20 20 5A 38 30 20 72 65 67 69 73 .../* Z80 regis
024D30: 74 65 72 20 69 6E 74 65 72 66 61 63 65 20 76 61 ter interface va
024D40: 72 69 61 62 6C 65 73 20 20 2A 2F 0D 0A 0D 0A 75 riables */....u
024D50: 6E 73 69 67 6E 65 64 20 72 65 67 5F 62 63 2C 20 nsigned reg_bc,
024D60: 72 65 67 5F 64 65 2C 20 72 65 67 5F 68 6C 3B 0D reg_de, reg_hl;.
024D70: 0A 63 68 61 72 20 20 20 20 20 72 65 67 5F 61 2C .char reg_a,
024D80: 20 20 72 65 67 5F 66 6C 61 67 73 3B 0D 0A 0D 0A reg_flags;....
024D90: 0D 0A 2F 2A 2A 2A 2A 2A 2A 20 20 20 20 20 20 4B ../****** K
024DA0: 45 59 20 4D 41 4E 41 47 45 52 20 49 4E 54 45 52 EY MANAGER INTER
024DB0: 46 41 43 45 20 46 55 4E 43 54 49 4F 4E 53 20 20 FACE FUNCTIONS
024DC0: 20 20 20 20 2A 2A 2A 2A 2A 2A 2F 0D 0A 0D 0A 2F ******/..../
024DD0: 2A 20 20 46 75 6C 6C 79 20 49 6E 69 74 69 61 6C * Fully Initial
024DE0: 69 73 65 20 74 68 65 20 4B 65 79 20 4D 61 6E 61 ise the Key Mana
024DF0: 67 65 72 20 20 2A 2F 0D 0A 0D 0A 4B 5F 69 6E 69 ger */....K_ini
024E00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
024E10: 1F 00 00 00 02 09 4E E5 1F 00 41 02 00 00 00 02 ......N...A.....
024E20: 1F 00 46 02 00 00 00 02 1F 00 42 02 00 00 00 02 ..F.......B.....
024E30: 1F 00 47 02 00 00 00 02 1F 00 43 02 00 00 00 02 ..G.......C.....
024E40: 1F 00 48 02 00 00 00 02 1F 00 44 02 00 00 00 02 ..H.......D.....
024E50: 1F 00 49 02 00 00 00 02 1F 00 45 02 00 00 00 02 ..I.......E.....
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: 62 65 20 70 72 65 73 73 65 64 20 20 2A 2F 0D 0A be pressed */..
024F10: 0D 0A 69 6E 74 20 4B 5F 77 61 69 74 5F 6B 65 79 ..int K_wait_key
024F20: 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 ()..{.. inline(
024F30: 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 .. CALL,
024F40: 20 30 78 42 42 31 38 2C 0D 0A 20 20 20 20 4C 44 0xBB18,.. LD
024F50: 5F 41 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 61 29 _A_into, ®_a)
024F60: 3B 0D 0A 20 20 72 65 74 75 72 6E 20 72 65 67 5F ;.. return reg_
024F70: 61 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 54 a;..}....../* T
024F80: 65 73 74 20 69 66 20 61 20 6B 65 79 20 68 61 73 est if a key has
024F90: 20 62 65 65 6E 20 70 72 65 73 73 65 64 20 20 2A been pressed *
024FA0: 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 /../*.. retur
024FB0: 6E 73 20 2D 31 20 28 45 4F 46 29 20 69 66 20 74 ns -1 (EOF) if t
024FC0: 68 65 72 65 20 69 73 20 6E 6F 20 63 68 61 72 61 here is no chara
024FD0: 63 74 65 72 20 61 76 61 69 6C 61 62 6C 65 2C 0D cter available,.
024FE0: 0A 20 20 20 20 61 6E 64 20 74 68 65 20 63 68 61 . and the cha
024FF0: 72 61 63 74 65 72 20 76 61 6C 75 65 20 69 66 20 racter value if
025000: 74 68 65 72 65 20 69 73 0D 0A 2A 2F 0D 0A 0D 0A there is..*/....
025010: 69 6E 74 20 4B 5F 72 65 61 64 5F 6B 65 79 28 29 int K_read_key()
025020: 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A ..{.. inline(..
025030: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 CALL, 0
025040: 78 42 42 31 42 2C 0D 0A 20 20 20 20 4C 44 5F 41 xBB1B,.. LD_A
025050: 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 61 2C 0D 0A _into, ®_a,..
025060: 20 20 20 20 4C 44 5F 41 5F 77 69 74 68 2C 20 30 LD_A_with, 0
025070: 2C 0D 0A 20 20 20 20 52 4C 41 2C 0D 0A 20 20 20 ,.. RLA,..
025080: 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 26 72 65 67 LD_A_into, ®
025090: 5F 66 6C 61 67 73 29 3B 0D 0A 20 20 69 66 20 28 _flags);.. if (
0250A0: 72 65 67 5F 66 6C 61 67 73 29 20 72 65 74 75 72 reg_flags) retur
0250B0: 6E 20 72 65 67 5F 61 3B 0D 0A 20 20 72 65 74 75 n reg_a;.. retu
0250C0: 72 6E 20 2D 31 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F rn -1;..}....../
0250D0: 2A 20 20 54 65 73 74 20 69 66 20 61 20 6B 65 79 * Test if a key
0250E0: 20 69 73 20 70 72 65 73 73 65 64 20 20 2A 2F 0D is pressed */.
0250F0: 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 ./*.. returns
025100: 74 75 72 6E 20 72 65 67 5F 61 3B 0D 0A 7D 0D 0A turn reg_a;..}..
025110: 0D 0A 0D 0A 2F 2A 20 20 53 65 74 20 65 6E 74 72 ..../* Set entr
025120: 79 20 69 6E 20 6B 65 79 20 74 72 61 6E 73 6C 61 y in key transla
025130: 74 69 6F 6E 20 74 61 62 6C 65 20 77 68 65 6E 20 tion table when
025140: 63 6F 6E 74 72 6F 6C 20 6B 65 79 20 69 73 20 70 control key is p
025150: 72 65 73 73 65 64 20 20 2A 2F 0D 0A 0D 0A 4B 5F ressed */....K_
025160: 73 65 74 5F 63 6F 6E 74 72 6F 6C 28 6B 65 79 5F set_control(key_
025170: 6E 75 6D 62 65 72 2C 20 74 72 61 6E 73 6C 61 74 number, translat
025180: 69 6F 6E 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 ion)..{.. reg_a
025190: 20 20 3D 20 6B 65 79 5F 6E 75 6D 62 65 72 3B 0D = key_number;.
0251A0: 0A 20 20 72 65 67 5F 62 63 20 3D 20 74 72 61 6E . reg_bc = tran
0251B0: 73 6C 61 74 69 6F 6E 20 3C 3C 20 38 3B 0D 0A 20 slation << 8;..
0251C0: 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 inline(.. LD
0251D0: 5F 41 5F 66 72 6F 6D 2C 20 20 26 72 65 67 5F 61 _A_from, ®_a
0251E0: 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 5F 66 72 6F ,.. LD_BC_fro
0251F0: 6D 2C 20 26 72 65 67 5F 62 63 2C 0D 0A 20 20 20 m, ®_bc,..
025200: 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 CALL, 0xB
025210: 42 33 33 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A B33);..}....../*
025220: 20 20 47 65 74 20 65 6E 74 72 79 20 66 72 6F 6D Get entry from
025230: 20 6B 65 79 20 74 72 61 6E 73 6C 61 74 69 6F 6E key translation
025240: 20 74 61 62 6C 65 20 77 68 65 6E 20 63 6F 6E 74 table when cont
025250: 72 6F 6C 20 6B 65 79 20 69 73 20 70 72 65 73 73 rol key is press
025260: 65 64 20 20 2A 2F 0D 0A 0D 0A 69 6E 74 20 4B 5F ed */....int K_
025270: 67 65 74 5F 63 6F 6E 74 72 6F 6C 28 6B 65 79 5F get_control(key_
025280: 6E 75 6D 62 65 72 29 0D 0A 7B 0D 0A 20 20 72 65 number)..{.. re
025290: 67 5F 61 20 3D 20 6B 65 79 5F 6E 75 6D 62 65 72 g_a = key_number
0252A0: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
0252B0: 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 26 72 65 LD_A_from, &re
0252C0: 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 g_a,.. CALL,
0252D0: 20 20 20 20 20 30 78 42 42 33 36 2C 0D 0A 20 20 0xBB36,..
0252E0: 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 26 72 65 LD_A_into, &re
0252F0: 67 5F 61 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 g_a);.. return
025300: 20 61 20 62 69 74 2D 73 69 67 6E 69 66 69 63 61 a bit-significa
025310: 6E 74 20 76 61 6C 75 65 3A 0D 0A 0D 0A 20 20 20 nt value:....
025320: 20 62 69 74 20 6D 61 73 6B 20 6D 65 61 6E 69 6E bit mask meanin
025330: 67 5F 69 66 5F 73 65 74 0D 0A 0D 0A 20 20 20 20 g_if_set....
025340: 20 30 20 20 20 20 20 31 20 20 74 68 65 20 6B 65 0 1 the ke
025350: 79 20 69 73 20 70 72 65 73 73 65 64 0D 0A 20 20 y is pressed..
025360: 20 20 20 35 20 20 20 20 33 32 20 20 61 20 73 68 5 32 a sh
025370: 69 66 74 20 6B 65 79 20 69 73 20 70 72 65 73 73 ift key is press
025380: 65 64 0D 0A 20 20 20 20 20 37 20 20 20 31 32 38 ed.. 7 128
025390: 20 20 74 68 65 20 63 6F 6E 74 72 6F 6C 20 6B 65 the control ke
0253A0: 79 20 69 73 20 70 72 65 73 73 65 64 0D 0A 2A 2F y is pressed..*/
0253B0: 0D 0A 0D 0A 69 6E 74 20 4B 5F 74 65 73 74 5F 6B ....int K_test_k
0253C0: 65 79 28 6B 65 79 5F 6E 75 6D 62 65 72 29 0D 0A ey(key_number)..
0253D0: 7B 0D 0A 20 20 72 65 67 5F 61 20 3D 20 6B 65 79 {.. reg_a = key
0253E0: 5F 6E 75 6D 62 65 72 3B 0D 0A 20 20 69 6E 6C 69 _number;.. inli
0253F0: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 ne(.. LD_A_fr
025400: 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 om, ®_a,..
025410: 20 43 41 4C 4C 2C 20 20 20 20 20 20 30 78 42 42 CALL, 0xBB
025420: 31 45 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 77 69 1E,.. LD_A_wi
025430: 74 68 2C 20 30 2C 0D 0A 20 20 20 20 4A 52 5F 5A th, 0,.. JR_Z
025440: 2C 20 20 20 20 20 20 31 2C 0D 0A 20 20 20 20 49 , 1,.. I
025450: 4E 43 5F 41 2C 0D 0A 20 20 20 20 41 44 44 5F 41 NC_A,.. ADD_A
025460: 5F 43 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 6E _C,.. LD_A_in
025470: 74 6F 2C 20 26 72 65 67 5F 61 29 3B 0D 0A 20 20 to, ®_a);..
025480: 72 65 74 75 72 6E 20 72 65 67 5F 61 20 26 20 28 return reg_a & (
025490: 31 32 38 2B 33 32 2B 31 29 20 3B 0D 0A 7D 0D 0A 128+32+1) ;..}..
0254A0: 0D 0A 0D 0A 2F 2A 20 20 46 65 74 63 68 20 43 61 ..../* Fetch Ca
0254B0: 70 73 20 4C 6F 63 6B 20 61 6E 64 20 53 68 69 66 ps Lock and Shif
0254C0: 74 20 4C 6F 63 6B 20 73 74 61 74 65 73 20 20 2A t Lock states *
0254D0: 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 /../*.. retur
0254E0: 6E 73 20 30 78 46 46 46 46 20 69 66 20 62 6F 74 ns 0xFFFF if bot
0254F0: 68 20 43 61 70 73 20 4C 6F 63 6B 20 61 6E 64 20 h Caps Lock and
025500: 72 65 67 5F 61 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F reg_a;..}....../
025510: 2A 20 20 53 65 74 20 77 68 65 74 68 65 72 20 61 * Set whether a
025520: 20 6B 65 79 20 6D 61 79 20 72 65 70 65 61 74 20 key may repeat
025530: 20 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 53 65 74 */../*.. Set
025540: 20 72 65 70 65 61 74 20 54 52 55 45 20 28 31 29 repeat TRUE (1)
025550: 20 74 6F 20 61 6C 6C 6F 77 20 72 65 70 65 61 74 to allow repeat
025560: 2C 20 61 6E 64 20 46 41 4C 53 45 20 28 30 29 20 , and FALSE (0)
025570: 74 6F 20 70 72 65 76 65 6E 74 20 69 74 2E 0D 0A to prevent it...
025580: 2A 2F 0D 0A 0D 0A 4B 5F 73 65 74 5F 72 65 70 65 */....K_set_repe
025590: 61 74 28 6B 65 79 5F 6E 75 6D 62 65 72 2C 20 72 at(key_number, r
0255A0: 65 70 65 61 74 29 0D 0A 7B 0D 0A 20 20 72 65 67 epeat)..{.. reg
0255B0: 5F 61 20 20 3D 20 6B 65 79 5F 6E 75 6D 62 65 72 _a = key_number
0255C0: 3B 0D 0A 20 20 72 65 67 5F 62 63 20 3D 20 72 65 ;.. reg_bc = re
0255D0: 70 65 61 74 20 20 3F 20 20 30 78 46 46 30 30 20 peat ? 0xFF00
0255E0: 20 3A 20 20 30 20 20 3B 0D 0A 20 20 69 6E 6C 69 : 0 ;.. inli
0255F0: 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 ne(.. LD_A_fr
025600: 6F 6D 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 om, ®_a,..
025610: 20 20 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 LD_BC_from, &r
025620: 65 67 5F 62 63 2C 0D 0A 20 20 20 20 43 41 4C 4C eg_bc,.. CALL
025630: 2C 20 20 20 20 20 20 20 30 78 42 42 33 39 29 3B , 0xBB39);
025640: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 41 73 6B ..}....../* Ask
025650: 20 69 66 20 61 20 6B 65 79 20 69 73 20 61 6C 6C if a key is all
025660: 6F 77 65 64 20 74 6F 20 72 65 70 65 61 74 20 20 owed to repeat
025670: 2A 2F 0D 0A 2F 2A 0D 0A 20 20 20 20 52 65 74 75 */../*.. Retu
025680: 72 6E 73 20 54 52 55 45 20 28 31 29 20 69 66 20 rns TRUE (1) if
025690: 6B 65 79 20 69 73 20 61 6C 6C 6F 77 65 64 20 74 key is allowed t
0256A0: 6F 20 72 65 70 65 61 74 2C 20 61 6E 64 20 46 41 o repeat, and FA
0256B0: 4C 53 45 20 28 30 29 20 69 66 20 6E 6F 74 0D 0A LSE (0) if not..
0256C0: 2A 2F 0D 0A 0D 0A 69 6E 74 20 4B 5F 67 65 74 5F */....int K_get_
0256D0: 72 65 70 65 61 74 28 6B 65 79 5F 6E 75 6D 62 65 repeat(key_numbe
0256E0: 72 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 61 20 3D r)..{.. reg_a =
0256F0: 20 6B 65 79 5F 6E 75 6D 62 65 72 3B 0D 0A 20 20 key_number;..
025700: 53 68 69 66 74 20 4C 6F 63 6B 20 61 72 65 20 6F Shift Lock are o
025710: 6E 3B 0D 0A 20 20 20 20 61 6E 64 20 20 20 20 20 n;.. and
025720: 30 78 46 46 30 30 20 69 66 20 6A 75 73 74 20 43 0xFF00 if just C
025730: 61 70 73 20 4C 6F 63 6B 20 69 73 20 6F 6E 3B 0D aps Lock is on;.
025740: 0A 20 20 20 20 61 6E 64 20 20 20 20 20 30 78 30 . and 0x0
025750: 30 46 46 20 69 66 20 6A 75 73 74 20 53 68 69 66 0FF if just Shif
025760: 74 20 4C 6F 63 6B 20 69 73 20 6F 6E 3B 0D 0A 20 t Lock is on;..
025770: 20 20 20 61 6E 64 20 20 20 20 20 30 78 30 30 30 and 0x000
025780: 30 20 69 66 20 6E 65 69 74 68 65 72 20 69 73 20 0 if neither is
025790: 6F 6E 2E 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 4B on...*/....int K
0257A0: 5F 67 65 74 5F 73 74 61 74 65 28 29 0D 0A 7B 0D _get_state()..{.
0257B0: 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 . inline(..
0257C0: 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 42 CALL, 0xBB
0257D0: 32 31 2C 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 21,.. LD_HL_i
0257E0: 6E 74 6F 2C 20 26 72 65 67 5F 68 6C 29 3B 0D 0A nto, ®_hl);..
0257F0: 20 20 72 65 74 75 72 6E 20 72 65 67 5F 68 6C 3B return reg_hl;
025800: 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 46 65 74 ..}....../* Fet
025810: 63 68 20 63 75 72 72 65 6E 74 20 73 74 61 74 65 ch current state
025820: 20 6F 66 20 6A 6F 79 73 74 69 63 6B 20 20 2A 2F of joystick */
025830: 0D 0A 2F 2A 0D 0A 20 20 20 20 72 65 74 75 72 6E ../*.. return
025840: 73 20 73 74 61 74 65 20 6F 66 20 62 6F 74 68 20 s state of both
025850: 6A 6F 79 73 74 69 63 6B 73 2C 20 65 6E 63 6F 64 joysticks, encod
025860: 65 64 20 69 6E 20 61 6E 20 69 6E 74 3A 0D 0A 20 ed in an int:..
025870: 20 20 20 20 20 30 78 41 41 42 42 20 28 41 41 20 0xAABB (AA
025880: 69 73 20 73 74 61 74 65 20 6F 66 20 6A 6F 79 73 is state of joys
025890: 74 69 63 6B 20 61 2C 20 42 42 20 74 68 61 74 20 tick a, BB that
0258A0: 6F 66 20 6A 6F 79 73 74 69 63 6B 20 62 0D 0A 2A of joystick b..*
0258B0: 2F 0D 0A 0D 0A 69 6E 74 20 4B 5F 67 65 74 5F 6A /....int K_get_j
0258C0: 6F 79 73 74 69 63 6B 28 29 0D 0A 7B 0D 0A 20 20 oystick()..{..
0258D0: 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 43 41 4C inline(.. CAL
0258E0: 4C 2C 20 20 20 20 20 20 20 30 78 42 42 32 34 2C L, 0xBB24,
0258F0: 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F 69 6E 74 6F .. LD_HL_into
025900: 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F inline(.. LD_
025910: 41 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 61 2C 0D A_from, ®_a,.
025920: 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 . CALL,
025930: 30 78 42 42 33 43 2C 0D 0A 20 20 20 20 4C 44 5F 0xBB3C,.. LD_
025940: 41 5F 77 69 74 68 2C 20 30 2C 0D 0A 20 20 20 20 A_with, 0,..
025950: 4A 52 5F 5A 2C 20 20 20 20 20 20 31 2C 0D 0A 20 JR_Z, 1,..
025960: 20 20 20 49 4E 43 5F 41 2C 0D 0A 20 20 20 20 4C INC_A,.. L
025970: 44 5F 41 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 61 D_A_into, ®_a
025980: 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 72 65 67 );.. return reg
025990: 5F 61 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 _a;..}....../*
0259A0: 53 65 74 20 72 65 70 65 61 74 20 73 70 65 65 64 Set repeat speed
0259B0: 20 61 6E 64 20 73 74 61 72 74 20 75 70 20 64 65 and start up de
0259C0: 6C 61 79 20 20 2A 2F 0D 0A 0D 0A 4B 5F 73 65 74 lay */....K_set
0259D0: 5F 64 65 6C 61 79 28 73 74 61 72 74 5F 75 70 5F _delay(start_up_
0259E0: 64 65 6C 61 79 2C 20 72 65 70 65 61 74 5F 73 70 delay, repeat_sp
0259F0: 65 65 64 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 68 eed)..{.. reg_h
025A00: 6C 20 3D 20 28 73 74 61 72 74 5F 75 70 5F 64 65 l = (start_up_de
025A10: 6C 61 79 20 3C 3C 20 38 29 20 2B 20 72 65 70 65 lay << 8) + repe
025A20: 61 74 5F 73 70 65 65 64 3B 0D 0A 20 20 69 6E 6C at_speed;.. inl
025A30: 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 48 4C 5F ine(.. LD_HL_
025A40: 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C 2C 0D 0A from, ®_hl,..
025A50: 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 CALL,
025A60: 30 78 42 42 33 46 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0xBB3F);..}.....
025A70: 0A 2F 2A 20 20 47 65 74 20 72 65 70 65 61 74 20 ./* Get repeat
025A80: 73 70 65 65 64 20 61 6E 64 20 73 74 61 72 74 20 speed and start
025A90: 75 70 20 64 65 6C 61 79 20 20 2A 2F 0D 0A 2F 2A up delay */../*
025AA0: 0D 0A 20 20 20 20 72 65 74 75 72 6E 73 20 64 65 .. returns de
025AB0: 6C 61 79 20 28 64 64 29 20 61 6E 64 20 73 70 65 lay (dd) and spe
025AC0: 65 64 20 28 73 73 29 20 65 6E 63 6F 64 65 64 20 ed (ss) encoded
025AD0: 61 73 20 30 78 64 64 73 73 0D 0A 2A 2F 0D 0A 0D as 0xddss..*/...
025AE0: 0A 69 6E 74 20 4B 5F 67 65 74 5F 64 65 6C 61 79 .int K_get_delay
025AF0: 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 ()..{.. inline(
025B00: 2C 20 26 72 65 67 5F 68 6C 29 3B 0D 0A 20 20 72 , ®_hl);.. r
025B10: 65 74 75 72 6E 20 72 65 67 5F 68 6C 3B 0D 0A 7D eturn reg_hl;..}
025B20: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 53 65 74 20 65 6E ....../* Set en
025B30: 74 72 79 20 69 6E 20 6B 65 79 20 74 72 61 6E 73 try in key trans
025B40: 6C 61 74 69 6F 6E 20 74 61 62 6C 65 20 77 69 74 lation table wit
025B50: 68 6F 75 74 20 73 68 69 66 74 20 6F 72 20 63 6F hout shift or co
025B60: 6E 74 72 6F 6C 20 20 2A 2F 0D 0A 0D 0A 4B 5F 73 ntrol */....K_s
025B70: 65 74 5F 74 72 61 6E 73 6C 61 74 65 28 6B 65 79 et_translate(key
025B80: 5F 6E 75 6D 62 65 72 2C 20 74 72 61 6E 73 6C 61 _number, transla
025B90: 74 69 6F 6E 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F tion)..{.. reg_
025BA0: 61 20 20 3D 20 6B 65 79 5F 6E 75 6D 62 65 72 3B a = key_number;
025BB0: 0D 0A 20 20 72 65 67 5F 62 63 20 3D 20 74 72 61 .. reg_bc = tra
025BC0: 6E 73 6C 61 74 69 6F 6E 20 3C 3C 20 38 3B 0D 0A nslation << 8;..
025BD0: 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 20 20 4C inline(.. L
025BE0: 44 5F 41 5F 66 72 6F 6D 2C 20 20 26 72 65 67 5F D_A_from, ®_
025BF0: 61 2C 0D 0A 20 20 20 20 4C 44 5F 42 43 5F 66 72 a,.. LD_BC_fr
025C00: 6F 6D 2C 20 26 72 65 67 5F 62 63 2C 0D 0A 20 20 om, ®_bc,..
025C10: 20 20 43 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 CALL, 0x
025C20: 42 42 32 37 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F BB27);..}....../
025C30: 2A 20 20 47 65 74 20 65 6E 74 72 79 20 66 72 6F * Get entry fro
025C40: 6D 20 6B 65 79 20 74 72 61 6E 73 6C 61 74 69 6F m key translatio
025C50: 6E 20 74 61 62 6C 65 20 77 69 74 68 6F 75 74 20 n table without
025C60: 73 68 69 66 74 20 6F 72 20 63 6F 6E 74 72 6F 6C shift or control
025C70: 20 20 2A 2F 0D 0A 0D 0A 69 6E 74 20 4B 5F 67 65 */....int K_ge
025C80: 74 5F 74 72 61 6E 73 6C 61 74 65 28 6B 65 79 5F t_translate(key_
025C90: 6E 75 6D 62 65 72 29 0D 0A 7B 0D 0A 20 20 72 65 number)..{.. re
025CA0: 67 5F 61 20 3D 20 6B 65 79 5F 6E 75 6D 62 65 72 g_a = key_number
025CB0: 3B 0D 0A 20 20 69 6E 6C 69 6E 65 28 0D 0A 20 20 ;.. inline(..
025CC0: 20 20 4C 44 5F 41 5F 66 72 6F 6D 2C 20 26 72 65 LD_A_from, &re
025CD0: 67 5F 61 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 g_a,.. CALL,
025CE0: 20 20 20 20 20 30 78 42 42 32 41 2C 0D 0A 20 20 0xBB2A,..
025CF0: 20 20 4C 44 5F 41 5F 69 6E 74 6F 2C 20 26 72 65 LD_A_into, &re
025D00: 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 20 20 20 20 .. CALL,
025D10: 20 20 30 78 42 42 34 32 2C 0D 0A 20 20 20 20 4C 0xBB42,.. L
025D20: 44 5F 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F D_HL_into, ®_
025D30: 68 6C 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 72 hl);.. return r
025D40: 65 67 5F 68 6C 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F eg_hl;..}....../
025D50: 2A 20 20 41 6C 6C 6F 77 20 62 72 65 61 6B 20 65 * Allow break e
025D60: 76 65 6E 74 73 20 74 6F 20 62 65 20 67 65 6E 65 vents to be gene
025D70: 72 61 74 65 64 20 20 2A 2F 0D 0A 0D 0A 4B 5F 61 rated */....K_a
025D80: 72 6D 5F 62 72 65 61 6B 73 28 65 76 65 6E 74 5F rm_breaks(event_
025D90: 72 6F 75 74 69 6E 65 2C 20 52 4F 4D 5F 73 65 6C routine, ROM_sel
025DA0: 65 63 74 29 0D 0A 7B 0D 0A 20 20 72 65 67 5F 64 ect)..{.. reg_d
025DB0: 65 20 3D 20 65 76 65 6E 74 5F 72 6F 75 74 69 6E e = event_routin
025DC0: 65 3B 0D 0A 20 20 72 65 67 5F 62 63 20 3D 20 52 e;.. reg_bc = R
025DD0: 4F 4D 5F 73 65 6C 65 63 74 3B 0D 0A 20 20 69 6E OM_select;.. in
025DE0: 6C 69 6E 65 28 0D 0A 20 20 20 20 4C 44 5F 44 45 line(.. LD_DE
025DF0: 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65 2C 0D _from, ®_de,.
025E00: 0A 20 20 20 20 4C 44 5F 42 43 5F 66 72 6F 6D 2C . LD_BC_from,
025E10: 20 26 72 65 67 5F 62 63 2C 0D 0A 20 20 20 20 43 ®_bc,.. C
025E20: 41 4C 4C 2C 20 20 20 20 20 20 20 30 78 42 42 34 ALL, 0xBB4
025E30: 35 29 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 5);..}....../*
025E40: 50 72 65 76 65 6E 74 20 62 72 65 61 6B 20 65 76 Prevent break ev
025E50: 65 6E 74 73 20 66 72 6F 6D 20 62 65 69 6E 67 20 ents from being
025E60: 67 65 6E 65 72 61 74 65 64 20 20 2A 2F 0D 0A 0D generated */...
025E70: 0A 4B 5F 64 69 73 61 72 6D 5F 62 72 65 61 6B 28 .K_disarm_break(
025E80: 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 43 )..{.. inline(C
025E90: 41 4C 4C 2C 20 30 78 42 42 34 38 29 3B 0D 0A 7D ALL, 0xBB48);..}
025EA0: 0D 0A 0D 0A 0D 0A 2F 2A 20 20 47 65 6E 65 72 61 ....../* Genera
025EB0: 74 65 20 61 20 62 72 65 61 6B 20 65 76 65 6E 74 te a break event
025EC0: 20 28 69 66 20 61 72 6D 65 64 29 20 20 2A 2F 0D (if armed) */.
025ED0: 0A 0D 0A 4B 5F 62 72 65 61 6B 5F 65 76 65 6E 74 ...K_break_event
025EE0: 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 ()..{.. inline(
025EF0: 43 41 4C 4C 2C 20 30 78 42 42 34 42 29 3B 0D 0A CALL, 0xBB4B);..
025F00: 67 5F 61 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 g_a);.. return
025F10: 72 65 67 5F 61 3B 0D 0A 7D 0D 0A 0D 0A 0D 0A 0D reg_a;..}.......
025F20: 0A 2F 2A 20 20 53 65 74 20 65 6E 74 72 79 20 69 ./* Set entry i
025F30: 6E 20 6B 65 79 20 74 72 61 6E 73 6C 61 74 69 6F n key translatio
025F40: 6E 20 74 61 62 6C 65 20 77 68 65 6E 20 73 68 69 n table when shi
025F50: 66 74 20 6B 65 79 20 69 73 20 70 72 65 73 73 65 ft key is presse
025F60: 64 20 20 2A 2F 0D 0A 0D 0A 4B 5F 73 65 74 5F 73 d */....K_set_s
025F70: 68 69 66 74 28 6B 65 79 5F 6E 75 6D 62 65 72 2C hift(key_number,
025F80: 20 74 72 61 6E 73 6C 61 74 69 6F 6E 29 0D 0A 7B translation)..{
025F90: 0D 0A 20 20 72 65 67 5F 61 20 20 3D 20 6B 65 79 .. reg_a = key
025FA0: 5F 6E 75 6D 62 65 72 3B 0D 0A 20 20 72 65 67 5F _number;.. reg_
025FB0: 62 63 20 3D 20 74 72 61 6E 73 6C 61 74 69 6F 6E bc = translation
025FC0: 20 3C 3C 20 38 3B 0D 0A 20 20 69 6E 6C 69 6E 65 << 8;.. inline
025FD0: 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D (.. LD_A_from
025FE0: 2C 20 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 , ®_a,..
025FF0: 4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 LD_BC_from, ®
026000: 5F 62 63 2C 0D 0A 20 20 20 20 43 41 4C 4C 2C 20 _bc,.. CALL,
026010: 20 20 20 20 20 20 30 78 42 42 32 44 29 3B 0D 0A 0xBB2D);..
026020: 7D 0D 0A 0D 0A 0D 0A 2F 2A 20 20 47 65 74 20 65 }....../* Get e
026030: 6E 74 72 79 20 66 72 6F 6D 20 6B 65 79 20 74 72 ntry from key tr
026040: 61 6E 73 6C 61 74 69 6F 6E 20 74 61 62 6C 65 20 anslation table
026050: 77 68 65 6E 20 73 68 69 66 74 20 6B 65 79 20 69 when shift key i
026060: 73 20 70 72 65 73 73 65 64 20 20 2A 2F 0D 0A 0D s pressed */...
026070: 0A 69 6E 74 20 4B 5F 67 65 74 5F 73 68 69 66 74 .int K_get_shift
026080: 28 6B 65 79 5F 6E 75 6D 62 65 72 29 0D 0A 7B 0D (key_number)..{.
026090: 0A 20 20 72 65 67 5F 61 20 3D 20 6B 65 79 5F 6E . reg_a = key_n
0260A0: 75 6D 62 65 72 3B 0D 0A 20 20 69 6E 6C 69 6E 65 umber;.. inline
0260B0: 28 0D 0A 20 20 20 20 4C 44 5F 41 5F 66 72 6F 6D (.. LD_A_from
0260C0: 2C 20 26 72 65 67 5F 61 2C 0D 0A 20 20 20 20 43 , ®_a,.. C
0260D0: 41 4C 4C 2C 20 20 20 20 20 20 30 78 42 42 33 30 ALL, 0xBB30
0260E0: 2C 0D 0A 20 20 20 20 4C 44 5F 41 5F 69 6E 74 6F ,.. LD_A_into
0260F0: 2C 20 26 72 65 67 5F 61 29 3B 0D 0A 20 20 72 65 , ®_a);.. re
026100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
026110: 20 00 00 00 02 09 4E E5 20 00 41 02 00 00 00 02 .....N. .A.....
026120: 20 00 46 02 00 00 00 02 20 00 42 02 00 00 00 02 .F..... .B.....
026130: 20 00 47 02 00 00 00 02 20 00 43 02 00 00 00 02 .G..... .C.....
026140: 20 00 48 02 00 00 00 02 20 00 44 02 00 00 00 02 .H..... .D.....
026150: 20 00 49 02 00 00 00 02 20 00 45 02 00 00 00 02 .I..... .E.....
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: 7D 0D 0A 0D 0A 0D 0A 0D 0A 2F 2A 20 2A 20 2A 20 }......../* * *
026210: 2A 20 2A 20 2A 20 20 20 20 20 20 45 20 4E 20 44 * * * E N D
026220: 20 20 20 4F 20 46 20 20 20 46 20 49 20 52 20 4D O F F I R M
026230: 20 31 20 20 20 20 20 20 2A 20 2A 20 2A 20 2A 20 1 * * * *
026240: 2A 20 2A 2F 0D 0A 0D 0A 1A 64 29 20 20 2A 2F 0D * */.....d) */.
026250: 0A 0D 0A 4B 5F 62 72 65 61 6B 5F 65 76 65 6E 74 ...K_break_event
026260: 28 29 0D 0A 7B 0D 0A 20 20 69 6E 6C 69 6E 65 28 ()..{.. inline(
026270: 43 41 4C 4C 2C 20 30 78 42 42 34 42 29 3B 0D 0A CALL, 0xBB4B);..
026280: 56 3E 03 32 2B 55 18 03 CD F5 2D CD 24 26 7B 20 V>.2+U....-.$&{
026290: F7 CD AE 32 3E 02 32 2B 55 32 7D 56 CD 0F 2E 2A ...2>.2+U2}V...*
0262A0: 29 55 7C B5 28 09 CD 25 4F 21 21 41 01 18 03 21 )U|.(..%O!!A...!
0262B0: 3E 01 CD 52 4F 18 03 CD 74 26 CD 24 26 7D 20 F7 >..RO...t&.$&} .
0262C0: CD EF 34 AF 32 7D 56 3C 32 2B 55 CD DD 32 C9 18 ..4.2}V<2+U..2..
0262D0: 03 CD 48 1F CD 24 26 7B 20 F7 01 01 00 CD 54 1F ..H..$&{ .....T.
0262E0: FE 7B 20 01 03 FE 7D 20 01 0B CD 48 1F 79 B0 20 .{ ...} ...H.y.
0262F0: EC CD DD 32 C9 CD 24 26 14 3E 05 32 0D 56 CD 79 ...2..$&.>.2.V.y
026300: 2A 3E 03 CD 56 2D CD 24 26 2C 28 F5 C3 06 26 CD *>..V-.$&,(...&.
026310: FA 2A 28 12 CD 54 1F FE 01 D8 FE 1E D0 01 0E 00 .*(..T..........
026320: 21 2B 2E ED B1 C0 CD F7 29 18 E4 01 05 08 0D 0E !+......).......
026330: 12 13 14 16 18 19 1B 1C 1D C5 D5 E5 CD 43 2E E1 .............C..
026340: D1 C1 C9 1A 13 ED A1 C0 E0 18 F8 C5 E5 7E 2A E3 .............~*.
026350: 51 ED 5B CF 51 19 EB 01 0C 00 BE 28 27 09 ED 52 Q.[.Q......('..R
026360: 19 38 F7 60 69 3E 06 CD EF 4F 01 08 00 E1 D5 ED .8.`i>...O......
026370: B0 06 04 AF 12 13 10 FC D1 D5 2A CF 51 EB B7 ED ..........*.Q...
026380: 52 D1 C1 C9 EB E3 0E 08 CD 39 2E 28 ED 0E 0C 7E R........9.(...~
026390: E3 EB 18 C9 D5 11 0A 00 19 ED 5B CF 51 19 5E 23 ..........[.Q.^#
0263A0: 56 EB D1 C9 D5 11 08 00 C3 98 2E E5 D5 11 0A 00 V...............
0263B0: 19 ED 5B CF 51 19 D1 73 23 72 E1 C9 E5 D5 11 08 ..[.Q..s#r......
0263C0: 00 C3 B0 2E D5 ED 5B CF 51 19 D1 C9 32 C0 11 ED ......[.Q...2...
0263D0: 43 C1 11 C5 E5 5E 23 56 EB 22 C3 11 01 05 00 11 C....^#V."......
0263E0: C0 11 CD 39 2E EB 28 22 2A 19 54 B7 ED 52 28 04 ...9..("*.T..R(.
0263F0: EB 09 18 EB EB 09 EB 2A 1B 54 B7 ED 52 38 11 ED .......*.T..R8..
026400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0264F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0265F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0268F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0269F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0270F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0271F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0272F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0273F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
027410: 21 00 00 00 02 09 4E E5 21 00 41 02 00 00 00 02 !.....N.!.A.....
027420: 21 00 46 02 00 00 00 02 21 00 42 02 00 00 00 02 !.F.....!.B.....
027430: 21 00 47 02 00 00 00 02 21 00 43 02 00 00 00 02 !.G.....!.C.....
027440: 21 00 48 02 00 00 00 02 21 00 44 02 00 00 00 02 !.H.....!.D.....
027450: 21 00 49 02 00 00 00 02 21 00 45 02 00 00 00 02 !.I.....!.E.....
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0275F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0276F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0277F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0278F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0279F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0280F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0281F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0282F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0285F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0286F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
028710: 22 00 00 00 02 09 4E E5 22 00 41 02 00 00 00 02 ".....N.".A.....
028720: 22 00 46 02 00 00 00 02 22 00 42 02 00 00 00 02 ".F.....".B.....
028730: 22 00 47 02 00 00 00 02 22 00 43 02 00 00 00 02 ".G.....".C.....
028740: 22 00 48 02 00 00 00 02 22 00 44 02 00 00 00 02 ".H.....".D.....
028750: 22 00 49 02 00 00 00 02 22 00 45 02 00 00 00 02 ".I.....".E.....
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0288F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0289F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0290F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0291F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0292F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0293F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0294F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0295F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0296F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0297F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0298F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0299F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
029A10: 23 00 00 00 02 09 4E E5 23 00 41 02 00 00 00 02 #.....N.#.A.....
029A20: 23 00 46 02 00 00 00 02 23 00 42 02 00 00 00 02 #.F.....#.B.....
029A30: 23 00 47 02 00 00 00 02 23 00 43 02 00 00 00 02 #.G.....#.C.....
029A40: 23 00 48 02 00 00 00 02 23 00 44 02 00 00 00 02 #.H.....#.D.....
029A50: 23 00 49 02 00 00 00 02 23 00 45 02 00 00 00 02 #.I.....#.E.....
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
029FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02A9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ABF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ACF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AD00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02AD10: 24 00 00 00 02 09 4E E5 24 00 41 02 00 00 00 02 $.....N.$.A.....
02AD20: 24 00 46 02 00 00 00 02 24 00 42 02 00 00 00 02 $.F.....$.B.....
02AD30: 24 00 47 02 00 00 00 02 24 00 43 02 00 00 00 02 $.G.....$.C.....
02AD40: 24 00 48 02 00 00 00 02 24 00 44 02 00 00 00 02 $.H.....$.D.....
02AD50: 24 00 49 02 00 00 00 02 24 00 45 02 00 00 00 02 $.I.....$.E.....
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02AFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02C010: 25 00 00 00 02 09 4E E5 25 00 41 02 00 00 00 02 %.....N.%.A.....
02C020: 25 00 46 02 00 00 00 02 25 00 42 02 00 00 00 02 %.F.....%.B.....
02C030: 25 00 47 02 00 00 00 02 25 00 43 02 00 00 00 02 %.G.....%.C.....
02C040: 25 00 48 02 00 00 00 02 25 00 44 02 00 00 00 02 %.H.....%.D.....
02C050: 25 00 49 02 00 00 00 02 25 00 45 02 00 00 00 02 %.I.....%.E.....
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02D310: 26 00 00 00 02 09 4E E5 26 00 41 02 00 00 00 02 &.....N.&.A.....
02D320: 26 00 46 02 00 00 00 02 26 00 42 02 00 00 00 02 &.F.....&.B.....
02D330: 26 00 47 02 00 00 00 02 26 00 43 02 00 00 00 02 &.G.....&.C.....
02D340: 26 00 48 02 00 00 00 02 26 00 44 02 00 00 00 02 &.H.....&.D.....
02D350: 26 00 49 02 00 00 00 02 26 00 45 02 00 00 00 02 &.I.....&.E.....
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02E610: 27 00 00 00 02 09 4E E5 27 00 41 02 00 00 00 02 '.....N.'.A.....
02E620: 27 00 46 02 00 00 00 02 27 00 42 02 00 00 00 02 '.F.....'.B.....
02E630: 27 00 47 02 00 00 00 02 27 00 43 02 00 00 00 02 '.G.....'.C.....
02E640: 27 00 48 02 00 00 00 02 27 00 44 02 00 00 00 02 '.H.....'.D.....
02E650: 27 00 49 02 00 00 00 02 27 00 45 02 00 00 00 02 '.I.....'.E.....
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
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: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
RESULT OF SEARCH :
PRO=53 CHEA=0 COD=30 MUSI=0 COP=17 GRA=69 WRIT=25 198=15 199=0 STARTER=0 KBI=0 CAAV=0 L.TOURNIER=0
EXTENDED CPC DSK File CPDRead v3.24) NAFBGCHDIE NAFBGCHDIE NAFBGCHDIEHISOF
T-CBIN HISOFT-CBINCSTDIO LIBI !"#$BASIC2 LIB,%&'()*BASIC1 LIBw+,-./01234567
89EXTCMD H STDIO H REVERSI C oABCDEFGHIJKLREAD ME MFIRM4 LIBDNOPQRST
UVFIRM3 LIBJWXYZFIRM5 LIBeabcdefghijklmFIRM2 LIBenopqrstuvwxyzFIRM6 LIBF
IRM1 LIBI!#A## oo!#+w#xR8#fon&s#rss#r#Vr+s#Vr+sKN#F#x(## iR!0)T))YPP08+w (z
+6-o*L*w#"!!(!"9#V++2(% % *! "oog"q- 2n0 2o0"s. 2r"p!pd(u((o("x(s(c(-s# s r( *p
0*s+R#!DM*n(#*n++x"9#VS+++a0 l a0 V+ *#"*I*+w"o&*j!y!jS(!j"!"!"9#V++22!"n(/ (%(
'o( nz n9!*2p "qh(/d(+o(%x(c(es(o0 x(X!PYhKqx('08 88 0OBp(Msh(6#r2op(8$Kq op(x
.*n#"n++!I*#"o&$PE( ((P(!6"!6T!N#F##V#x RdR PR!6Z$ Z Z o&!o&!8,!7,O(8 8*$Z+!
W(w (!o&z!w!L( z0xV !w!w!Lw*"z zELr(w()C %wK S C !2Lo"!LDM!iPn&s#rss#r#Vr+s#Vr
+s&#"is)"in&#&#!9!9DM!n&#!n&1KKJVbbbbbbbbbbbb#V#*#fo#*#fo#V#*n#*n#V##fo#&#fo!+!#
!+!#!+!+HISOFT-CBINaaaak4vcE0!99*N90!!ystack overflowV9DMogog£og),+/g/o!#zIM!)8
08zIPBK)8 )zrW, 4PRgo7#+#7£++#7##7 NAFBGCHDIEzz77zZ Z ) /g/o# k /g/o#2£Z Z k £/
g/o#/g/o#£2£q DM!xxGyO )v i ) x z/W/zWyOxG 2£Z Z M go ) /g/o#z/W/!9#fo! ! !
! ! ! !9#A"!!22z*!#!EP !PQ!PQxQ!G!C n!!9"!,£!9DM*/V *L !s#r!PC*L*L *L*L !s#r ) s
++!#Vr+s s!9!"%V")V*TS####"'V*'V#"#V!ZC!ZC!9DM*%V*#V*/V *L "%V*/V*L"#V*L*%V!*%V
!s#r*Lis#r!PC*L*LA*L *L*L*L*L2!V!"L2"VAD A (pm!!CAm*LjB"L2"V!MB!MB!MB2"V$ *LA*L&
Bm!(C*TS++"QA#*TS "T*L"a)t(##fo"w$ *!V*L*L "aB2*L "N ! A!UA!! A!PA Type y to r
un *L2 "N!9DM *L2v 2*L !C*L "L#is#r )L#fos#r*LA*L"+V"-V!ZC*+VO*#V+"#V*+V+"+V*L
n!s#6*%V#"%V*%V%*%V+"%V#!%!"%V*-V*L !s#r*L*L*-VA*-V !PC!9!9DM*-V+"-V*Ls*)V#")V!
9DM !9DM*)Vis#r*'V #*#V"'V!")V!"%V!9!!PC*L####*L*L++++A!"-V!9DM!#Vr+sz!#Vr+s6c*K
"K*tLR 2DI(z(LK&fi#Vr+s !96! A HISOFT-C Compiler V1.2 Copyright 1984 HISOFT *
LLLRDM!L!VF!P*L*6wxuOu$x2YR"Zx*Y*Z o0R"Z-%J!tV!nV!nVH0 E!00# ((*q#p" #(" o# ( !8
9"! -"#)9DM*#(4##V0 s#ro"Kz(!Z(O!wL(5!L(W5#fo"tL!2£L&o£L K2£L!KK go"K8T (#(YK
x2KaK*KKKy (Xx2K (LD.I"y'#(.((5K yKD.FK 2K!XKwKL(D # #wD%"K%2K!DTKOKD y0Lya0 WOF
(QK0 Ka0 x "K"KK.(Ka0 e(Ka0 lpC&Ko (&K. (n.t.b. " ++q#pzW+(#++!0!917!Vpx *UQ*U!
Cz*U++z*U++++z!C*DU####fon&!AC*DU##fo"/V*DU##fo*DU####fo!9DMnis#6##fo!s#r# uH um
Cu!C!9!9DM!)is#r x22!!9r.foKD0oK0Oo"KK'pC!9"VBB"KK"(BBB!xK# ,K & 2KK* K/ M2K#K/
*!++--&&-TL %!2%(A pCdefine include diagnostlist direct error translato&)
Z!yL!L pC!V!L K- 5+ 4!9!L4ng)LtLs#r !D!"tL!9!ZF pCr&!L6!LL(!!V4 BpC!C!B*LL+wTL(p
CK( K (!9DM####fo##fo!s#r !!s#r!)!s#r####fonB! s#r*K!s#rn!!#Vr+s!#Vr+sn&2J*K #is
#r &Biw#w####fo!#fos#ri#Vr+s #)*DU##k s#rA(s#r"/V!!9!9DM!s#r!)!s#rx2is#r!!!s#r2!
#fos#r NAFBGCHDIEpCL%T (L(D('(" L*LwK K (!wL((w"(( K (K"(( (w#6L% gGLO!LLR0 SL
pC*LLR#2KL(D('(" #V#SK"L7K !KK#(pC#!spCmissing ' '#&l!#d!C!L"L! "Kgo"L"yL"wL"tL
2K2K2K2£L2L#"L"L!*K%2%(B (f2inline L2PCQ#V"SP2%("*OR(*bOR8SO!Ps#rpC3*U#s#r"U3*UV
z+"U*BU ( (( pCz pC*UV++"U*BU##foDM!BU%l#%&*NS*LS"P2R"U2W*P&'&0dc5*UR(pCNR(($(
((,pCy((6#Byy 6 ##V*VSR !"SR*U((( R B"S'LS*PSR8pC!VSLS*P%'*U##VE(*VS"S*U##fo"VS%
W t(R W sz M L#()x2 MBTB,(#V#*eT*cT*bTCeTScT(2bT"bT"cT"eTBKB!cTB(B!9!#l2)!e
TBBB!eT!cTB!eTB#(!+l2)#(SBKJ(f2BJ(!eT!+l2) "cT!BB"cTf2(!9B)!bT!BB!cTB!eTBbT gT !
eTB#pC bTO(/G!cTBBpC!9 !9BBBBc5*URpCR!(( '*U##V*XTR"XT"S'RT*VTR pC!V*P%"RTU( Rw#
##s#rpC!V(BBL*LR8 "L*TSR"S"TSpC(T%bk%(DM%( !*VTRTR pCi%6 "RT)(2P##)KL*M&0 ( ##(
)B8Pgo !*)A*L2PA ERROR - 27 - undefined symbol V)c)r)!M"O!O"bO*MLRB!dO"PS*RS"LS!
GS"NS!"ZT.!M.)&!)D%main RT*TTR8 #q#p*eTgT*jT*hTgo"eT"jT2gT#(f21BBB)!eTB!9B*hT
ShTRMDBB*jT(!jTB!eTB"jT2gT"eTgT(pC*hTUR pC B*hTs#r#x2s#r#"hTgT(pC*jT(pCB"jT#L(pC
*K(#(BpC*K(( 6#B(f21+ bT!!!4U"UlTZ!!J(%X$( (!8J( ,(pC0a$$!KUZT 2U pC1!U G#Nkb)
)lM"UG y(###!"6U!"4U"XT!"XT!XS"VT!RT"RT!MT"TT*LKLDMw#Vw !6*AApCB8undefined labe
l !9DM!!*!9DM!!*!9DM #fo*M ++is#r*MBMB* #foB!9!9DMMB*Mis#r #foTB #foC s#r!9!9DM*
M*M is#rC#fo!s#r*Ms#r!s#rCO+!9!9DM!B!9DMn( ! y !M"U"! c5"U!qM"U!L*K(!(#L "*K((c5
"a pC3"ZT pC4!lM"a9DM!a%L *ZT*a!*K&U*VS!"VS2U(B*a!"aX$*aBU0pC5(*VS0!"VS,( *VS*a#
s#r"VS2U*a"U!# & ( *BU(( (pC- *wL(*U%( ## *ZTBU -*U*U&"DU*(( #)L *K"UpC6#y( +
#!!*+##fo+*4U,!4UH*8,*M"4U*8U,!!B8,*6U!B!!B!9DM!*B++c,!&TB!9DM!TBTB++,!TB!9DM,,-
++-!nTBMB++,!fTB#MB-!&TB5-!!B++--!G+5-!P+!9DM++U-!K+e-!nMB!&TB!9DM!MB++-!#MB!VMB
-!TB!9DM£21*U##fois#r*Un& &(((P)(9((6(2L +!!qM!*K&,() &pC7pC8 &x2 gox2&(*U"BU#*
DUc5(pC9! #DU "8U2ZT$ )2ZT2"V%*XTB!!B +2"V2ZT) y )2U!X$,(!(!$%! %*LL('R8iB*LR2
%( L#V% Ls#r% NAFBGCHDIEg£o-*iU&3..*Un&g£o.*iU&..*iU&o.*iU*.!&TB!9!9DM++W.!"Bm.
!MB!2B!9DM++.!j+.!MB!MB!MB!9DM../++/!uTBMB++/!tTB#MB/!B++6/!X+/!b+!9DMnisin&g£o/
1##fo!!B/in&g£o/1##fo!!B!TB!MB!MB((#!!M!*K&((pC%&8( ##V#F#fh25hU ((3 *U6#s#r(N(.
((d936!33*U2pU("+"U!2pU3"6!8*pU&M)#V*U##V*Ue53mU(*U###6q#V6M##V4*U6#s#r!9DM8!*8!
*is#r!MB!MB89 !! !19!9#fo9 !!(!W9!9#fo!9!9DM*hU9!(Ci6#6'3991961*U"Ui#fo##/in&g£o
/!"C2lU!9!9DM####fonis##fo!s#rn!s!n&g£oL01!!!*0!n&g£ou01!!B0!n&g£o01in&,0!n&g£o0
1in&,0!n&g£o0in&7-02lU!9*lU1!MB2lU*U/*U/!9DM£2*Un&g£ois#r*U##fo"jU3w1$1*jU!!*131
$1*jU!B2'31$1*jU*hU&e,2,321s#r1!,)9!)'3n !B!MB+++B++!!B!9MB!!7-n c!B!MBB!B!MB!MB
++!MBx3*U###*U####fo####fos#r2lU!9!9DM *U#"U*U#*Uss1*U!82lU*U#"U*U"U*Unn!)C12lU*
U++is#r#fo!s#rw#we*!,+*U+"U"3!*$1!MB2lU1*jU*hU&,2lU!MB22lU$12"392*jU*hU&g-.2!MB3
22lU$12!MBU2!MBZ22lU$1!926f2128613( *U##V2pC'!U"U!qU"Uw2lU*U"Uc52hU"Uc52iU*U8 U"
U£2pC*U"U22*UwSjU#s#r#s#r2hUC33333333*U!#*UV(6B62hU###%/1pUMo&)#VB3*U6pU8 880qM*
U###s#r26(((iU((hU(C '3,3!MB2*U*U!A 3!6,#63!9£2*pU&4l5*pU&*pU&*Un&g£o138*nUsA*U
+"UC!9DM*pUtttt tttt ttttttttttttz££,8Tgg+$&#&%&!".&4'D)T*dt313*U##fo+*U"U3/1!MB
3/1!MB!oU(MM3U!s8SUCpC00 C*UNhU3X*UNiU3KpU2mU2nUWx2oUx (y (8 08oU(YSxW($ I2nUCU
*U5(5U*U5()#(J(F((((((pC (oU( 2pUX(I(r5 +H('Y(# a B*UT X(*Uc5*Uc5R42mUc5c5 F
(## #s#rR####fo5*Uc5c5e5!qM2pU *Uw2pU32nUhU3pU$(&('()( *(RTB3*mU5*U###qMs#r*U###
#fo####fo##fois#rz5!qM!!!!2*Us2pU*U*U+ns*U+6*U#"U-*U"Ux31Bis#ri!!8*pU!!!B*U++"U*
U,+*pU!!!Bx3*U###qMs#r1*U++"U*U,+3!+C*U++"U!s#r*U####fos#r513*U##fois#r*pU$R#d%t
is#r is#r/o/gis#r*U6*U#s#r1*pU&)M#fo+x3*hU*%(#(XP(H2nUpC!*U###Tf5c5s#r3(! pC&)*U
pC"*K((9 4##Ve5(#N#Fr+sBB###s#r5CpC#*U72!U(# 80 2 z( o&U( OUR02pUo&U8"OOf6*U
+"U!U(#b7V )U*3-+ 5*U#Us#r"U+3KD!qM('!vM("!M((((*L(2pC$2685*U##V!qM26) NAFBGCHD
IEpU$*U###qMs#r*hU&&!,C13*U61*U6*U###*U####fo####fos#r5£23!!!!!!!!!-C!9!9DM*U/*h
U!MB!5MB!4MB!oMB!nMB!&TBgA*hU&& A*U####fo####fo##fois#r'Ai6#6A is#r!BA!+gA!r+x3!
9!.C.(#G#Ao!Ly/KV*LI(#V+BI## # bVRJ*i7Kgx KbVJSbViRDMR8 R!Vw2dgoHDBDGC8GDDEGFEG
GFIGLENFPFSEVGWEBHNHoHsH IHHHHWIHH,I8IIBIGIHPardon #iB"L"L"L"L"L"L"L"L"L"L"L"L"L
"L"Li#fo*VA*TSdA"TSLR"LCO BRJ)) 2!C*L"M!V(!"M*MR"M*MR"M*M*MMRBB*LL*MR#B*MsC#"M*M
#"MBZBBB#B#B#V#BBBB,+e*H*/+DMo&)L#Vr+sN#F#N#F+B'CZ.CR0#T*LBo&l94 .B)L#VB ##V!C(*
L(*L(# !C!yAUEyDC ERROs#r!6#6"L"Li# E E !"#$%&'()*
+,-./DDDDDDDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLVVVVVVVYYaL£
4xP£ !"&'()*+,-vMqMqMMR %d %s 2CpCyL#o&)C#VCCCCCC*bVL bk"bV!DRLRDMJ*L"dV"fV!Vd
VDSdV*bVR+!V(SfV &otDy%5u G"hVClVsjVDjVJ"g"iD!Dm!ZJo##V#yHJC E!JAG2m sD0eElI8K
VIE(eE"V"gIE(eE"V"iIE!1VSEIE !FVTEDD 77IE(w#IE6(J 2gI 2iI iIIIRJDMJ1V 2VJ MIN#F
*i(B8'iNcD#NA +I !1VF"brwFFD*bVKLBW+( B(+ ##VJw J! sJr*bI ( (Jw#+J"bV*bOIKVII
R!DFFDbkB0D*b( LL$nEF*LIgx(s#r+KiJGIV*VcD*VcDD!1V3G!FV3G*LcD*bVcDDAjVKlV*hVIjG!H
HRBHI7N#F#J*VBCgC!1V7 (#(KfIJ*kT nEiG"gDMI(-!6 2*iD*bVLR!D*fV#VSgJI##JH!H!JODXy
F(Gq!IQGyaHHG#"k*kR+N y#NHG##aH NH BH !Vw*k ( #!"kV*gcDHVG0!1VI!FVIOBH!IQ*I+*HJ
H (HDGQGV! !!!opQJDQJV*gDMII(##ID8BKxJJxJs#r# I NAFBGCHDIE M M M M M M.M MMMMMM
MMMjMaMMMmMUMOMLMIMFMRGSdORss mismatchLIMIT global symbol table fullLIMIT too
much global dataduplicate declarationLIMIT local symbol table fullthis variable
was not in parameter listundefined variable(s)bad function return typeno arrays
of functionsLIMIT expression too complicated - too many argumentsLIMIT expres
sion too complicated - too many operatorsbad type combinationbad operand typenee
d an lvaluenot a defined member of a structureexpecting a primary hereundefined
variableneed a type nameneed a const ant expressioncan only call functions does
not follow a properlyDestination of an assignment must be an lvalueneed a to
follow a - check brackettingneed a pointerillegal parameter typeRESTRICTION Flo
ating Point not implementedcannot use this operator with float argumentsbad decl
arationstorage class not valid in this contextCOMPILER FAULTduplicate declaratio
n of structure taguse a predeclared structure for parametersstructure cannot con
tain itselfbad declaratormissing ')' in function$$ STXWRP&OQ+-*/%*&-!VU
, auto break case cast char continuedefault double do
else entry extern float for goto if int long regis
terreturn short sizeof static struct switch typedef union declarationb
ad formal parameter listtype should be functionCOMPILER FAULTCOMPILER FAULTLIMIT
no more memoryRESTRICTION use assignment or blt() to initialise automaticsCanno
t initialise this (disallowed storage class)Cannot initialise this (disallowed t
ype)too much initialisation databad initializer (needs a '')!ai""+"V! structure
taguse a predeclared structure for parametersstructure cannot contain itselfbad
declaratormissing ')' in functionunsignedwhile fopen GSgetc BSputc Sfc
lose 8Srawin 3Srawout .Skeyhit )Sgetchar $Sputchar Sungetc SsetbufouSisdig
it Sisalpha Sisupper Sislower Sisspace Rtolower Rtoupper Rswap Rblt Rspri
ntf Rfprintf Rprintf Rsscanf Rfscanf Rscanf RRESTRICTION floats not implem
entedbad character constantnot a preprocessor commandmacro buffer fullcan only d
efine identifiers as macrosRESTRICTION macros may not have parameterscannot open
fileRESTRICTION cannot nest includesmissing 'while'not in loop or switchnot in
loopnot in switchLIMIT too many case statementsmultiple default statementsgoto
needs a labelmultiple use of identifierdirect execution not possible when transl
atingLIMIT name table fullLIMIT too many typesduplicate declaration - type mis
matchduplicate declaration - storage cla NAFBGCHDIE /*************************
****/ /* Hisoft C */ /* Standard Function Library */ /*
version 1.2 */ /* Copyright (C) 1984 Hisoft */ /* Last changed 15 A
pr 1985 */ /*****************************/ #list- /* Some arithmetic func
tions */ /* min and max are in "stdio.h" because they are variadic */
int abs(n) return n0 -n n int sign(n) return n
( n0 -1 1 ) 0 /* An illustration of how to grub arous *t)
if (! *s) return 0 ++s ++t return *s - *t int
strncmp(s1, s2, n) char *s1, *s2 if (!n) return 0 while (*s1 *s2)
if ( ! *s1) return 0 if ( ! --n) break ++s1 ++s2
return *s1 - *s2 char *strcpy(dest, source) char *dest, *source
static char *result result dest while (*result++ *source++) r
eturn dest char *strncpy(s1, s2, n) char *s1, *s2 statnd in the s
tore */ typedef char * charptr int peek(address) return * cast(
charptr) address void poke(address, value) * cast(charptr) address
value /* Input and Output */ int out(data, port) regbc port
reghl data inline( 0x4BED, ®bc, /* ld bc,(regbc) */ 0x2A, &r
eghl, /* ld hl,(reghl) */ 0x69ED) /* out (c),l */ int i
np(port) inline( 0xE1DD, /* pop ix */ 0xE1, ic char *s
, c s s1 c *s2 while (n) *s++ ( c ( c *s2++ )
0 ) --n return s1 unsigned strlen(s) char *s s
tatic char *p p s do while (*p++) return p-s-1 char *strpb
rk(s1, s2) char *s1, *s2 while (*s1) if (strchr(s2, *s1)) r
eturn s1 ++s1 return NULL int strspn(s1, s2) char *s1,
*s2 char *s s s1 while (*s) if ( ! s /* pop hl
*/ 0xC1, /* pop bc */ 0xE5, /* push hl */ 0x6
8ED, /* in l,(c) */ 0x26, 0, /* ld h,0 */ 0xC9) /* r
et */ /* Format conversion routine - ASCII to binary integer
*/ int atoi(s) char *s static int c, value, sign while (isspace
(*s)) ++s value 0 sign 1 if (*s '-') ++s sign -1 else if
(*s '+') ++s while (isdigit(c *s++)) value 10 * value + c - '0' trchr(s
2, *s)) break ++s return s - s1 int strcspn(s1, s2) ch
ar *s1, *s2 char *s s s1 while (*s) if (strchr(s2, *s
)) break ++s return s - s1 char *strchr(s, c) char *
s, c do if (*s c) return s if ( ! *s) return NULL
++s while (TRUE) char *strrchr(s, c) char *s, c sta
tic char *t t s s NULL do if (*t c) s t while return si
gn * value /* Sorting function - a Shell sort */ void qsort(list
, numitems, size, cmpfunc) char *list int numitems, size int (*cmpfun
c)() static unsigned gap, bytegap, i static char *p for (gap numit
ems 1 gap 0 gap 1) bytegap gap * size for (i gap i
numitems ++i) for (p list + i * size - bytegap p list p - bytegap)
if ((*cmpfunc)(p, p + bytegap)(*s++) return s
/* Character Test and Manipulate Functions */ /* NB - the common on
es are built-in for efficiency */ int ispunct(c) char c return ispr
int(c) & ! isalnum(c) int isalnum(c) char c return isalpha(c) i
sdigit(c) int isxdigit(c) char c c toupper(c) return isdigi
t(c) (c 'A' & c 'F') int isascii(c) char c return c 0x80
int iscntrl(c) char c return c ' ' c 0) break s
wap(p, p + bytegap, size) /* String Handling Funct
ions */ char *strcat(base, add) char *base, *add static char *dest
dest base while (*dest) ++dest while (*dest++ *add++) return b
ase char *strncat(s1, s2, n) char *s1, *s2 static char *s s
s1 while (*s) ++s while (n-- && *s2) *s++ *s2++ *s NULL return
s1 int strcmp(s, t) char *s, *t while (* NAFBGCHDIE '177'
int isprint(c) char c return c ' ' & c '177' int isgraph(
c) char c return c ' ' & c '177' int toascii(c) char c
return c & 0x7F /****** FILE SYSTEM ******/ char *f
gets(s, n, fp) char *s int n FILE *fp static int c static cha
r *cs cs s while (--n 0 && (c getc(fp)) ! EOF) if ((*cs++ c)
'n') break *cs '0' return ((c EOF && cs s q-size + p-size
q-ptr p-ptr else q-ptr p allocp q #define HEAPSIZE 1
000 char *sbrk(n) unsigned n static char *p, heapHEAPSIZE,
*heapptrheap if (heapptr+n heap+HEAPSIZE) return ERROR pheapptr heap
ptr + n return p exit(n) fclose(9) fclose(10) exit(n)
exit(n) if (n) printf("nERROR EXIT %d", n) else printf("nEXIT OK")
printf("nPlease press any key") ) NULL s) char *gets(s) char *s
static int c static char *cs cs s while ((c getchar()) !E
OF && c!'n') *cs++ c *cs 0 return ((c-1 && css) NULL
s ) void fputs(s, fp) char *s FILE *fp static int c wh
ile (c *s++) putc(c, fp) void puts(s) char *s static int c
while(c *s++)putchar(c) putchar('n') /* Storage Allocation and Fr
eeing (Heap Management) rawin() inline(0xC3, 67,0) /* Pseudo-Random
Number Generator */ /* Adapted from "Learning to Program in C" by Thomas
Plum. */ char rnum4 void srand(n) longinit(rnum, 0,n) i
nt rand() static char k4 longinit(k, 0x41c6,0x4e6d) longmultiply(r
num, rnum, k) longinit(k, 0,0x3039) longadd(rnum, rnum, k) return
((rnum3 8) + rnum2) & 0x7FFF /* Some Functions for 32 bit integ
er arithmetic */ */ char *calloc(n, size) unsigned n, size stat
ic HEADER *p, *q static unsigned nbytes char *sbrk() nbytes (n * s
ize + (sizeof(HEADER) - 1)) / sizeof(HEADER) + 1 if ((q allocp) NULL) /* n
o free list */ base.ptr allocp q &base base.size 0
p q-ptr while (TRUE) if (p-size nbytes) /* big enough */
if (p-size nbytes) q-ptr p-ptr /* just right size */
void longmultiply(c, a, b) char *a, *b, *c static char x4, produ
ct4 static int i, j longset(product, 0,0) for (i 0 i 4 ++i) fo
r (j i j 0 --j) longset(x, ai-j * bj, i) longadd(pro
duct, product, x) longcopy(c, product) void longadd(c, a, b)
char *a, *b, *c static unsigned u, i u 0 for (i 0 i 4 ++i)
u + *a++ + *b++ *c++ u & 0xff u else
/* split block and allocate tail */
p-size - nbytes p + p-size p-size
nbytes allocp q return cast(charptr) (p+1)
if (p allocp) /* wrapped around free list */
if ((p cast(HEADERPTR) sbrk(nbytes * sizeof(HEADER))) ERROR)
return NULL p-size nbytes free(p+1) 8
void longinit(a, n1, n0) char *a unsigned n1,n0 a0 n0 & 0xff a1
n0 8 a2 n1 & 0xff a3 n1 8 void longset(a, n, d) char *a
unsigned n, d static int i for (i0 i4 ++i) ai 0 ad n & 0xff
if (d 3) ad+1 n 8 void longcopy(c, a) char *a, *c blt(c, a,
4) #list+ /*****************************/ /* Hisoft C
*/ /* Standard Function Library p allocp q p
p p-ptr /* end while TRUE */ void free(block) char *block
static HEADER *p, *q p cast(HEADERPTR) block - 1 for (q allocp !
(p q && p q-ptr) q q-ptr) if (q q-ptr && (p q p q-ptr)) break
if (p + p-size q-ptr) p-size + q-ptr-size p-ptr
q-ptr-ptr else p-ptr q-ptr if (q + q-size p) N A F
B G C H D I E*/ /* End */ /****************************
*/ dard Function Library */ /* version 1.2 2 n1 & 0xff a3
n1 8 void longset(a, n, d) char *a unsigned n, d static in
t i for (i0 i4 ++i) ai 0 ad n & 0xff if (d 3) ad+1 n 8
void longcopy(c, a) char *a, *c blt(c, a, 4) #list+ /*********
********************/ /* Hisoft C */ /* Standard Function Lib
rary 'f') Gsetpen(*s) else Gsetpaper(*s)
s2 s + 1 break case 's' xscale dx ysca
le dy break case 'r' heading (heading + 1) % 4
s2 s break s s2 Tsetgraphic(on) rega
on inline( LDAfrom, ®a, CALL, 0xBB63 /* TXTSETGRAPHIC */
) Twinenable(x1,x2,y1,y2) reghl (x1 8) + y1 regde (x2
8) + y2 inline( LDHLfrom, ®hl, LDDEfrom, ®de, CALL,
0xBB66 /* TXTWINENABLE */ ) Tswapstreams(streamnumber, ano
therstreamnumber) regbc (streamnumber 8) + anotherstreamnumber inline(
LDBCfrom, ®bc, CALL, 0xBBB7 /* TXTSWAPSTREAMS */ )
Tgetcursor(pxcolumn, pyrow, prollcount) int *pxcolumn, *pyrow, *prol
lcount inline( CALL, 0xBB78, /* TX/* * * * * * B A S I C 2
. L I B * * * * * */ /*
*/ /* Graphics Function Library */ /*
Copyright (C) 1985 HISOFT */ /* Last Changed 9 Ju
ne 1985 */ /*
*/ /* * * * * * * * * * * * * * * * * * * * * * * * * * * */ #list- draw(
controlstring) char *controlstring #define DRAWSCALE 2 typedef int TGET
CURSOR */ LDAinto, ®a, LDHLinto, ®hl ) *prollcount
rega *pxcolumn (reghl 8) & 0xFF *pyrow reghl & 0xFF
Gaskcursor(pdx, pdy) int *pdx, *pdy inline( CALL, 0xBBC6, /*
GRAASKCURSOR */ LDDEinto, ®de, LDHLinto, ®hl ) *pdx
regde *pdy reghl Gsetorigin(x,y) regde x reghl y inlin
e( LDDEfrom, ®de, LDHLfrom, ®hl, *ip typedef char *cp stat
ic int *p, c, heading, dx, dy, dX, dY, xscale 1 DRAWSCALE, yscale 1 D
RAWSCALE static char *s, *s2 s controlstring while (c tolo
wer(*s)) ++s p cast(ip) s dX *p++ * xscale DRAWSCAL
E dY *p++ * yscale DRAWSCALE s2 cast(cp) p switch (headi
ng) case 0 dx dX dy dY break case 1 dx dY dy -dX
break case 2 dx CALL, 0xBBC9 /* GRASETORIGIN */ )
Gwinwidth(x1,x2) regde x1 reghl x2 inline( LDDEfrom,
®de, LDHLfrom, ®hl, CALL, 0xBBCF /* GRAWINWIDTH */
) Gwinheight(y1,y2) regde y1 reghl y2 inline( LDDE
from, ®de, LDHLfrom, ®hl, CALL, 0xBBD2 /* GRAWINHEIGHT */
) Gclearwindow() inline(CALL, 0xBBDB) /* GRACLEARWINDOW *
/ -dX dy -dY break case 3 dx -dY dy dX break
switch (c) default continue case '0' Gmoveabsolute(0, 0)
s2 s break case 'm' Gmoverelative(dx, dy) b
reak case 'p' Gplotrelative(dx, dy) break case 'l' Gliner
elative(dx, dy) break case 't' while (*s ! 'n') Gwrchar(*s++)
s2 s + 1 break case 'c' if (tolower(*s++) NAFB
GCHDIE Gsetpen(ink) rega ink inline( LDAfrom, ®a, CALL,
0xBBDE /* GRASETPEN */ ) Gsetpaper(ink) rega ink
inline( LDAfrom, ®a, CALL, 0xBBE4 /* GRASETPAPER */
) Gwrchar(c) rega c inline( LDAfrom, ®a, CALL,
0xBBFC /* GRAWRCHAR */ ) Gmoveabsolute(x,y) regde x
reghl y inline( LDDEfrom, ®de, LDHLfrom, ®hl /* * * * * *
B A S I C 1 . L I B * * * * * */ /*
*/ /* Copyright (C) 1985 by HISOFT */ /*
*/ /* * * * * * * * * * * * * * * * * * * * * * * */
#list- /* * * * * * SOUND FUNCTIONS * * * * * */ #define MAXCHAN
3 /* number of channels */ #define CHIPQUEUE 5 /* The chip can queue 5 not
es */ #define SOFTQUEUE 100 /* Max length of play string for each channel
, CALL, 0xBBC0 /* GRAMOVEABSOLUTE */ )
Gmoverelative(dx, dy) regde dx reghl dy inline( LDDEfrom, ®
de, LDHLfrom, ®hl, CALL, 0xBBC3 /* GRAMOVERELATIVE */
) Gplotabsolute(x, y) regde x reghl y inline( LDDEfro
m, ®de, LDHLfrom, ®hl, CALL, 0xBBEA /* GRAPLOTABSOLUTE */
) Gplotrelative(dx, dy) regde dx reghl dy inli
Alter to suit but MAKE ENOUGH ROOM */ typedef struct char spsta
tus char spampenv char sptonenv unsigned spnote char spn
oise char spvolume unsigned spduration /* A standard sound block up to
here as BASIC */ char spoctave char sptempo soundprogra
m, *spptr typedef struct int qinpointer int qoutpointer
unsigned qfreespace unsigned qnewlyadded char ne( LDDEfrom, ®de
, LDHLfrom, ®hl, CALL, 0xBBED /* GRAPLOTRELATIVE */
) int Gtestabsolute(x, y) regde x reghl y inline( LDDEf
rom, ®de, LDHLfrom, ®hl, CALL, 0xBBF0, /* GRATESTABSOLUTE
*/ LDLA, LDHwith, 0 ) int Gtestrelative(dx, dy)
regde dx reghl dy inline( LDDEfrom, ®de, LDHLfrom, ®hl,
CALL, 0xBBF3, /* GRATESTREL qbufferSOFTQUEUE queuedata, *que
ueptr typedef struct char seevent12 queuedata seqdata sound
program sprog seblock, *sebptr /* The whole event block + data */
int sqchar setupsound() extern int soundevent() extern sebptr gets
ebaddr() static char i static queueptr qp static spptr sp static
sebptr sebi inline(CALL, 0xBCA7) /* SOUND RESET */ for (i0 i3 i++)
ATIVE */ LDLA, LDHwith, 0 ) Glineabsolute(x, y)
regde x reghl y inline( LDDEfrom, ®de, LDHLfrom, ®hl,
CALL, 0xBBF6 /* GRALINEABSOLUTE */ ) Glinerelative
(dx, dy) regde dx reghl dy inline( LDDEfrom, ®de, LDHLfr
om, ®hl, CALL, 0xBBF9 /* GRALINERELATIVE */ ) #list+
/* * * * * * End of Graphics VDU Functions * * * * * */ sebi
getsebaddr(i) qp & sebi-seqdata qp-qinpointer qp-qoutpointe
r qp-qnewlyadded 0 qp-qfreespace SOFTQUEUE sp & sebi-sprog
sp-spstatus (1 i) sp-spampenv sp-sptonenv sp-spnote
sp-spnoise sp-spduration 0 sp-spvolume 15 sp-s
poctave 3 sp-sptempo 25 initevent(sebi, soundevent)
play(contro NAFBGCHDIElstring,status) char *controlstring,status exte
rn sebptr getsebaddr() static queueptr ptr static int channel, c static
sebptr thisseb for (channel2 channel0 --channel) if (status & (1 cha
nnel)) thisseb getsebaddr(channel) ptr &thisseb-seqd
ata sputq('S',ptr) sputq(status,ptr) while (c (*controlstri
ng++)) sputq(c,ptr) /* Put the string into the buffer */ ssy
ncq(t doqueue(sp) if (ptr-qfreespace ! SOFTQUEUE) Sarmevent(sp-spst
atus & 7, thisseb) getnote(thisseb) sebptr thisseb int note,
toctave queueptr ptr static unsigned period /* The values for the period
s of the notes */ 0,2551,2408,2273,2145,2025,1911,1804,1703,1607,1517,1432,1351
,1276,1204,1136 /* A B C D E F
G */ ptr &thisseb-seqdata toctave thisseb-sprog.sphisseb) /*
Tell the event routine about the string */ /* Put a character in
to the play string if there's space */ sputq(c,ptr) queueptr ptr whil
e ( ! (ptr-qfreespace - ptr-qnewlyadded)) ptr-qbufferptr-qinpointer c p
tr-qinpointer (ptr-qinpointer + 1) % SOFTQUEUE ptr-qnewlyadded++ /* S
et the pointers after adding characters to the string and re-arm the sound even
t if the queue was empty to start with */ ssyncoctave if (sqchar ''') t
octave - octfactor(ptr) switch(sqchar) default return 1 /* an erro
r */ case 'W' note 0 break case 'A' note 3 break case 'B' n
ote 5 break case 'C' note 6 break case 'D' note 8 break case
'E' note 10 break case 'F' note 11 break case 'G' note 13 s
getq(ptr) do if (sqchar '#') note++ sgetq(ptr) else if (sqcha
r 'b') notq(thisseb) sebptr thisseb static queueptr ptr static unsig
ned free ptr &thisseb-seqdata inline(DI) free ptr-qfreespace p
tr-qfreespace free - ptr-qnewlyadded ptr-qnewlyadded 0 inline(EI) i
f (free SOFTQUEUE) Sarmevent(thisseb-sprog.spstatus, thisseb) /* ev
ent routine gets the next note and puts it on the queue */ soundevent(eventad
dress) unsigned eventaddress queueptr ptr sppte-- sgetq(ptr) els
e break while (1) if (sqchar ''') toctave + octfactor(ptr) return p
eriodnote toctave doqueue(sp) spptr sp int channel,qpos,chanb
it spptr destq static char qflag 4,4,4 static soundprogram spraMAXCHAN
CHIPQUEUE chanbit sp-spstatus & 7 if (chanbit 3) channel 2 chanb
it 4 else if (chanbit 1) channel 1 chanbit 2 else ch
annel 0 qposr sp sebptr thisseb int ti, got thisseb
cast(sebptr) (eventaddress - 4) ptr &thisseb-seqdata sp &thisseb-sprog
got 1 sp-spstatus & 7 sgetq(ptr) while (sqchar ! '.') i
f (got) got 0 else sgetq(ptr) switch (sqchar) case 'S' sp-sp
status sgetq(ptr) & 0xF8 break case 'V' sp-spvolume sgetq(ptr) break
case 'N' sp-spnoise sgetq(ptr) break ++qflagchannel % CHIPQU
EUE destq &sprachannelqpos while ( ! (soundcheck(chanbit) & 7)) blt(
destq, sp, sizeof(soundprogram)-2) Squeue(destq) octfactor(ptr) que
ueptr ptr int oct oct 1 while (sgetq(ptr) ''') ++oct return o
ct sgetq(ptr) queueptr ptr sqchar ptr-qbufferptr-qoutpointer
ptr-qoutpointer (ptr-qoutpointer + 1) % SOFTQUEUE ptr-qfreespace++ return
sqchar case 'Y' sp-spampenv sgetq(ptr) break case 'Z' sp-sptonenv s
getq(ptr) break case 'O' sp-spoctave sgetq(ptr) & 7 break case
'T' sp-sptempo (1500 / sgetq(ptr)) break default if ((ti getnote(
thisseb)) 1) break sp-spnote ti if (sqchar
' ') ti sqchar else ti 4 got 1
sp-spduration sp-sptempo * ti N A F B G C H D I E sebpt
r getsebaddr(i) static seblock seventblockMAXCHAN return &seventblock
i Sarmevent(channelbit,sebadd) rega channelbit reghl sebadd
inline( LDAfrom, ®a, LDHLfrom,®hl, CALL, 0xBCB0) /*
SOUNDARMEVENT */ Squeue(sp) reghl sp inline( LDHLfrom, &re
ghl, PUSHIX, CALL, 0xBCAA, /* SOUNDQUEUE */ POPIX, LDH
Lwith, 0,0, RLL) soundchecme) initevent(ctrlblock + 6, functio
nname) reghl ctrlblock regde initialtimedelay regbc rechargedelay
/* 0 is one-shot */ inline( LDHLfrom, ®hl, LDDEfrom, ®de,
LDBCfrom, ®bc, CALL, 0xBCE9) /* KLADDTICKER */ initeve
nt(eventblock, functionname) typedef char *cp typedef unsigned *up st
atic up p reghl eventblock /* start of event block */ regbc 0x80
FF /* asynchronk(chanbit) char chanbit rega chanbit inline
( LDAfrom, ®a, CALL, 0xBCAD, /* SOUNDCHECK */ LDAinto, &r
ega) return rega Srelease(channelbits) rega channelbits inlin
e( LDAfrom, ®a, PUSHIX, CALL, 0xBCB3, /* SOUNDRELEASE */
POPIX) Samplenvelope(number, envelope) rega number reghl
envelope inline( LDAfrom, ®a, LDHLfrom, ®hl, CALL,
0xBCBC) ous, all RAM */ regde reghl + 7 /* event routine at end of
block */ p cast(up) regde /* to poke code for routine */ *p
0xCDE5 /* PUSHHL CALL ... */ *++p functionname /* ... th
e real function */ *cast(cp)++p 0xC9 /* and return to interrupted
code */ inline( LDHLfrom, ®hl, LDDEfrom, ®de, LDBCfrom,
®bc, CALL, 0xBCEF) /* KLINITEVENT */ border(colour1, colou
r2) reg/* SOUNDAMPLENVELOPE */ Stoneenvelope(number, envelope)
rega number reghl envelope inline( LDAfrom, ®a, LDHLfrom,
®hl, CALL, 0xBCBF) /* SOUNDTONEENVELOPE */ Shold() in
line( CALL, 0xBCB6, /* SOUNDHOLD */ LDHLwith, 0,0, RLL)
Scontinue() inline( PUSHIX, CALL, 0xBCB9, /* SOUNDCONTINUE
*/ POPIX) /* The next function cures a ROM problem and should be cal
led if bc (colour1 8) + colour2 inline( LDBCfrom, ®bc, CALL,
0xBC38) /* SCRSETBORDER */ cassspeed(speed) if ( ! speed)
inline( LDHLwith, 333, LDAwith, 25, CALL, 0xBC68) /
* CASSETSPEED */ if (speed 1) inline( LDHLwith, 167, LDAw
ith, 50, CALL, 0xBC68) /* CASSETSPEED */ catalog() ch
ar casbuffer2048 regde cast(unsigned) casbuffer inline( LDDEfroand
only if the program is being compiled on a CPC464, and it uses "play(
)", and it is being #translated. */ fix464soundinterrupts() static
char tickblock13, syncq 0xF5, 0xC5, 0xD5, 0xE5, 0xCD, 0x21, 0x
B9, 0x30, 0x11, 0xCD, 0xFB, 0xBC, 0x30, 0x0C, 0xE5, 0xF5,
0xCD, 0xFE, 0xBC, 0xF1, 0xE1, 0xCD, 0x01, 0xBD, 0x18, 0xEF,
0xE1, 0xD1, 0xC1, 0xF1, 0xC9 inline( 0x21, tickblock, 0xC
D, 0xBCEC, m, ®de, PUSHIX, CALL, 0xBC9B, /* CASCATALOG */
POPIX) cls() rawout('f') eventdisable() inline(CALL
, 0xBD04) /* KLEVENTDISABLE */ eventenable() inline(CALL, 0xBD07) /*
KLEVENTENABLE */ flashspeed(time1, time2) reghl (time1 8) + time2
inline( LDHLfrom, ®hl, CALL, 0xBC3E) /* SCRSETFLASHING */
ink(inktosetup, colour1, colour2) rega inktosetup regbc (col
0x21, 6+cast(int)tickblock, 0x01, 0x80FF, 0x11, syncq, 0xCD, 0x
BCEF, 0x21, tickblock, 0x11, 2,0, 0x01, 5,0, 0xCD, 0xBCE9)
after(delayinticks, controlblock, functionname) addticker(controlbloc
k, delayinticks, 0, functionname) every(periodinticks, controlblock, func
tionname) addticker(controlblock, periodinticks, periodinticks, functionnam
e) addticker(ctrlblock, initialtimedelay, rechargedelay, functionna NAFB
GCHDIEour1 8) + colour2 inline( LDAfrom, ®a, LDBCfrom, ®bc,
CALL, 0xBC32) /* SCRSETINK */ int inkey(keynumber) rega
keynumber inline( LDAfrom, ®a, CALL, 0xBB1E, /* KMTESTKE
Y */ LDBwith, 0, JRZ, 1, INCB, LDBCinto, ®bc) return
(regbc & 0x100) (regbc & 0xA0) -1 char *instr(mainstring, substri
ng) char *mainstring, *substring static int length length st
atic char *s static int c for (s string c *s ++s) *s tolower(c) r
eturn string char *strupper(string) char *string static char *s
static int c for (s string c *s ++s) *s toupper(c) return string
symbol(characternumber, matrix) rega characternumber reghl matr
ix inline( LDAfrom, ®a, LDHLfrom, ®hl, CALL, 0xBB
A8) /* TXTSETMATRIX */ symbolafter(number, tablememo strlen(substring)
do if ( ! strncmp(mainstring, substring, length)) return mainstring whil
e (*++mainstring) return 0 /* NULL */ itob(n, string, precision)
char *string static int i, c static char *s s string for (i
precision i ) *s++ n & (1 --i) '1' '0' *s 0 return cast(int)
string joy(joysticknumber) inline( CALL, 0xBB24, /* KMGET
JOYSTICK */ LDHLinto, ®hl) return (joyry) regde number re
ghl tablememory inline( LDDEfrom, ®de, LDHLfrom, ®hl, C
ALL, 0xBBAB) /* TXTSETMTABLE */ time(array) int array2 inli
ne( CALL, 0xBD0D, /* KLTIMEPLEASE */ LDDEinto, ®de, LDHL
into, ®hl) array0 reghl array1 regde writefile(filename, addre
ss, length) char *filename, *address unsigned length FILE *filepoi
nter if ( ! (filepointer fosticknumber reghl (reghl 8)) & 0xFF
int keyfunction(translatedkeynumber, expansionstring) regbc (translat
edkeynumber 8) + (strlen(expansionstring) & 0xFF) reghl expansionstring
inline( LDBCfrom, ®bc, LDHLfrom, ®hl, CALL, 0xBB0F,
/* KMSETEXPAND */ LDAwith, 0, RLA, LDAinto, ®a) return re
ga keyspeed(startupdelay, timebetweenrepeats) reghl (startupdelay
8) + timepen(filename, "w"))) fprintf(stderr, "nERROR - Cannot open
file %sn", filename) return ERROR while (length--) putc(
*address++, filepointer) fclose(filepointer) return TRUE #list+
/* * * * * * E N D O F B A S I C 1 . L I B * * * * * */ fclose(
filepointer) return TRUE #list+ /* * * * * e, address, length) cha
r *filename, *address unsigned length FILE *filepointer if ( ! (
filepointer fobetweenrepeats inline( LDHLfrom, ®hl, CALL,
0xBB3F) /* KMSETDELAY */ keytranslation(keynumber, translatedkeynumber)
rega keynumber regbc translatedkeynumber 8 inline( LDAfrom,
®a, LDBCfrom, ®bc, CALL, 0xBB27) /* KMSETTRANSLATE */
Karmbreaks(eventroutine, ROMselect) regde eventroutine regbc ROMse
lect inline( LDDEfrom, ®de, LDBCfrom, ®bc, CALL, /* * *
* * * E X T C M D . H * * * * * */ /*
*/ /* allow external (bar) commands in a C program */ /*
Copyright (C) 1985 HiSoft */ /*
*/ /* * * * * * * * * * * * * * * * * * * * * * * * */ extcmd(
parambytecount) auto typedef char ** cpp static char comname16, *s, *d
static unsigned regix rega parambytecount/2 - 2 /* no of args of comma
nd */ r 0xBB45) /* KMARMBREAKS */ Kdisarmbreak() inline(CALL
, 0xBB48) /* KMDISARMBREAK */ readfile(filename, address) char *filena
me, *address int c FILE *filepointer if ( ! (filepointer fopen(fi
lename,"r"))) fprintf(stderr,"nERROR - Cannot open file %sn",filename)
return ERROR while ((c getc(filepointer)) ! EOF) *address++ c
fclose(filepointer) return TRUE char *strlower(string) char *
string NAFBGCHDIEegix cast(int) ¶mbytecount + 2 /* addr of last arg */
s *cast(cpp)(regix + rega*2) d comname do *d++ toupper(*s++) whi
le (*s) *--d 0x80 inline( LDHLwith, comname, CALL, 0xBC
D4, /* KLFINDCOMMAND */ PUSHIX, LDIXfrom, ®ix, JRNC, 10
, LDAfrom, ®a, PUSHIY, CALL, 0x1B,0, /* LOKLFARPCHL */
POPIY, POPIX ) struct dscrp char length char *start
i#define JRZ 0x28 #define JRNC 0x30 #define INCB 0x04 #defi
ne PUSHIX 0xE5DD #define POPIX 0xE1DD #define PUSHIY 0xE5FD #define
POPIY 0xE1FD #define CALL 0xCD #define DI 0xF3 #define EI
0xFB /* File system Structure */ typedef int FILE /* S
torage Allocation Structure and Variables */ struct header struct heade
r * ptr unsigned size typedef struct header HEADER, * HEADERPTR HEA
DER base, *ant makestr(s,d) char *s struct dscrp *d static char *p
p s do while (*p++) d-length p-s-1 d-start s return d
/* End of External Command Handling */ do while (*p++) d-length p-s
-1 INDCOMMAND */ PUSHIX, LDIXfrom, ®ix, JRNC, 10, LD
Afrom, ®a, PUSHIY, CALL, 0x1B,0, /* LOKLFARPCHL */ POP
IY, POPIX ) struct dscrp char length char *start illocp
/* Z80 register cache for inline code */ unsigned reghl, regde, reg
bc char rega /* Forward declarations for non-int library functions
*/ extern char *strcat(), *strncat(), *strcpy(), *strncpy(), *strchr(), *strr
chr(), *strpbrk(), *calloc(), *sbrk(), *fgets(),*gets() extern uns
igned strlen() /* Two variadic arithmetic functions (see manual for detail
s) */ int max(parambytecount) auto static int argc, *argv, max ar
gc parambytecount/2 - 1 argv ¶mbytecount + argc max -32767 w
hile (argc--) if (*argv max) max *argv --argv r
eturn max int min(parambytecount) auto static int argc, *argv, min
argc parambytecount/2 - 1 argv ¶mbytecount + argc min 32767
while (argc--) if (*argv min) min *argv --argv
return min #list+ /*****************************/ /* Hisof
t C /*****************************/ /* Hisoft C */ /* Standa
rd Function Library */ /* HEADER */ /*
*/ /* Copyright (C) 1984 Hisoft */ /* Last changed 5 Jun 1985 */ /***
**************************/ #list- #define NULL 0 /* for use with poin
ters */ #define FALSE 0 /* for Boolean operations */ #define TRUE 1 #
define EOF -1 /* end of file value */ #define ERROR -1 #define voi
d int /* for functions which return */ /* Standard Function Library */
/* End Header */ /*****************************/ Hisoft
C *argv --argv return max int min(parambytecount) au
to static int argc, *argv, min argc parambytecount/2 - 1 argv &pa
rambytecount + argc min 32767 while (argc--) if (*argv
min) min *argv --argv return min #list+ /************
*****************/ /* Hisoft C no value */ #define stdin 0 #defin
e stdout 0 #define stderr 0 #define LDAfrom 0x3A #define LDAinto 0x32
#define LDAwith 0x3E #define LDHLfrom 0x2A #define LDHLinto 0x22 #define L
DHLwith 0x21 #define LDDEfrom 0x5BED #define LDDEinto 0x53ED #define LDBCfrom
0x4BED #define LDBCinto 0x43ED #define LDIXfrom 0x2ADD #define RLA 0x
17 #define LDLA 0x6F #define LDHwith 0x26 #define RLL 0x15CB #def
ine CALL 0xCD #define LDBwith 0x06 NAFBGCHDIE/* OTHELLO (REVERSI) PRO
GRAM */ /* First are the standard library functions which are used */ int
abs(n) return n0 -n n /* Sorting function - a Shell sort
*/ qsort(list, numitems, size, cmpfunc) char *list int numitems, si
ze int (*cmpfunc)() static unsigned gap, bytegap, i static char *p
for (gap numitems 1 gap 0 gap 1) bytegap gap * size
for (i gap i numitems ++i) for (p lle of a) structured, heira
rchical function organization b) arrays as formal parameters c) use of the "qs
ort" library function d) non-standards ( eg & on array name as actual p
arameters!) Object of the game is for two players to alternate placing th
eir marker someplace on an 8 by 8 grid, so that at least one of the opponent's
pieces becomes surrounded by the moving player's peices -- causing the flanked
pieces to flip 'color' and belong to the moving player. After 60 moves have bi
st + i * size - bytegap p list p - bytegap) if ((*cm
pfunc)(p, p + bytegap) 0) break swap(p, p + bytegap, size)
puts(s) char *s static int c while(c*s++)pu
tchar(c) /* Pseudo-Random Number Generator */ /* Adapted from "Lear
ning to Program in C" by Thomas Plum. */ char rnum4 srand(n) lo
nginit(rnum, 0,n) int rand() static char k4 longinit(k, een pla
yed (or if no player has a legal move left), the player with the most of his ow
n pieces on the board wins. The playing pieces are '*' and ''. You may cho
ose to play either '*' or '' for the first game thereafter, you and the comput
er will alternate going first for each game. Whoever goes first always plays *'
. You enter a move as a two digit number, each digit being from 1 to 8, f
irst digit representing row and second representing column. For example if play
ing '*', your first 0x41c6,0x4e6d) longmultiply(rnum, rnum, k) longinit(k
, 0,0x3039) longadd(rnum, rnum, k) return (rnum1 8) + rnum0
/* Some Functions for 32 bit integer arithmetic */ longmultiply(c, a
, b) char *a, *b, *c static char x4, product4 static int i, j lo
ngset(product, 0,0) for (i 0 i 4 ++i) for (j i j 0 --j)
longset(x, ai-j * bj, i) longadd(product, product, x) l
omove might be '46', meaning 4th row down, 6th position across. As an alt
ernative to entering a move, one of the following commands may be typed gcau
ses computer to play both sides until game is over or until you hit a key. a
causes computer to print out an analysis of each of your possible moves. A lett
er from A to Z will appear at each of your legal move positions, where A is th
e machine's opinion of an excellant move and Z is a real loser. hnsets handi
cap. n is 1,2,3,ngcopy(c, product) longadd(c, a, b) char *a, *b, *c
static unsigned u, i u 0 for (i 0 i 4 ++i) u + *
a++ + *b++ *c++ u & 0xff u 8 longinit(a, n1,
n0) char *a unsigned n1,n0 a0 n0 & 0xff a1 n0 8 a2 n1 & 0x
ff a3 n1 8 longset(a, n, d) char *a unsigned n, d stati
c int i for (i0 i4 ++i) ai 0 ad n & 0xff if (d or 4. If n is pos
itive, gives n free pieces to the computer. If n is negative, gives YOU the fre
e peices. fforfeit the current move. This happens automatically if you have
no legal moves. qquit the current game. bprints out board again. sprint
s out the score, and tells who is winning. */ #define NULL 0 #define TRU
E 1 #define FALSE 0 #define BLACK '*' #define WHITE '' #define EMPTY '-'
char selfplay/* true if computer playing with itself */ char mine, his3) ad+1
n 8 longcopy(c, a) char *a, *c blt(c, a, 4) /*
OTHELLO -- The Game of Dramatic Reversals written by Bert Halstead modified
for BDS C by Leor Zolman modified for Hisoft C by Dave Howorth
- correct some function type errors - remove an & from call to qsort
(its not right on an array) - change to unix-style rand() function
- make variables static to save hundreds of bytes This program is a g
ood examp NAFBGCHDIE/* who has black (*) and white () in current game */ m
ain(argc,argv) int argc char **argv static char b88 static int i st
atic char mefirst/* true if computer goes first in current game */
printf("nnWelcome to the Hisoft C OTHELLO program!n") printf("nNote *' always g
oes first...Good luck!!!nn") puts("Do you want to go first ") mefirs
t (toupper(rawin()) ! 'Y') printf("nn") do clrbrd(b) prtbrd(b) i game(
b,4,mefirfirst "...Forfeitn" "Forfeit...n") ff 2 else mymov(b,mine,his,EM
PTY,&i,&j) printf(!mefirst "...%1d-%1dn" "%1d-%1d...n", i+1,j+1) putmov(b,m
ine,i,j) ++n if (ff3 n64) return 'D' if (!(ff & 1)) prtbrd(b) ff 0
/* second half of Othello progrram */ prtscr(b) char *b static in
t i,j printf("%1d-%1d",i cntbrd(b,his), jcntbrd(b,mine)) return i-j in
t getmov(i,j) int *i, *j static char st) mefirst !mefirst if (i4) brea
k if (i'Q') continue printf("n") i prtscr(b) if (i0) printf(" You won by %d
n",i) else if (i0) printf(" You lost by %dn",-i) else printf(" A drawn") whi
le (ask("Another game ")'Y') game(b,n,mefirst) char b88 int n static
char c static int ff static int i,j static int handicap static int
h42 0, 0,/* handicap position table */ 7, 7,
a,c static int n static char *p if (selfplay 'G') if (
!keyhit()) return 'G' selfplay ' ' getchar() printf("Move ") whil
e(1) switch (cskipbl()) case 'n' printf("Move ") continue case 'G' if ((c s
kipbl()) ! 'n') goto flush selfplay'G' return 'G' case 'B' case 'S' case 'Q'
case 'F' case 'A' ac if (( c skipbl()) ! 'n') goto flush return a c
ase 'H' if ((acskipbl()) EMPTY) cgetcha 0, 7, 7, 0
handicap 0 selfplay ' ' ff0 if (mefirst) mine BLACK his WHITE prin
tf("nI go firstnn") else mine WHITE his BLACK printf("nYou go firstnn")
while(1) if (cntbrd(b,EMPTY)0) return 'D' if (cntbrd(b,E
MPTY)60 && mine BLACK) goto Istart if (chkmvs(b,his)0) printf(!mefirst "For
feit" " ...Forfeitn") ff 1 else switch (c getmov(&i,&j)) r() if (c'1
' c'4' skipbl() !'n') goto flush *i aEMPTY -(c-'0') (c-'0') return 'H' c
ase 4 return c default if (c'1' c'8') goto flush *i c-'1' c skipbl() if (
c'1' c'8') goto flush *j c- '1' if ((cskipbl()) 'n') return 'M' flushwhile
(c ! 'n' && c ! 4) cgetchar() if (c4) return c printf ("Huh ") int a
sk(s) char *s char a,c printf ("%s ",s) askipbl() while (c !case 'B' prtb
rd(b) continue case 'S' i prtscr(b) if (i0) printf(" You're winningn") else i
f (i0)printf(" You're losing!n") else putchar('n') continue case 'Q' case 4 r
eturn c case 'H' if (nabs(handicap)+4) printf("Illegal!n") else for (j0 i!0
j++) bhj0hj1 i0BLACKWHITE handicap + i0 1 -1 ++n i + i0 -1 1 pr
tbrd(b) continue case 'A' analyze(b,his,mine,EMPTY) continue case 'n' && c !
4) c getchar() return a int skipbl() static char c while ((c
toupper(getchar())) ' ' c't') return c chkmvs(b,p) char b88 char p
static int i,j,k k0 for (i0 i8 i++) for (j0 j8 j++) k + chkmov(b,p,i,j
) return k chkmov(b,p,x,y) char b88,p int x,y if (bxy ! EMPTY) retu
rn 0 returnchkmv1(b,p,x,y,0,1) + chkmv1(b,p,x,y,1,0) + chkmv1(b,p,x,y,0,-1)+ c
hkmv1(b,p,x,y,-1,0)+ chkmv1(b, 'G' mymov(b,his,mine,EMPTY,&i,&j)
case 'M' if (chkmov(b,his,i,j)0) printf(!mefirst "%1d-%1d" " ...%1d-%1d
n", i+1,j+1) putmov(b,his,i,j) else printf("Illegal!n") continue
break case 'F' if (nabs(handicap)+4) printf ("Illegal!n") continue else
printf(!mefirst "Forfeit" " ...Forfeitn") Istart if (cntbrd(b,EMPTY)
0) return 'D' if (chkmvs(b,mine)0) printf(!me NAFBGCHDIEp,x,y,1,1) + chkmv1
(b,p,x,y,1,-1)+ chkmv1(b,p,x,y,-1,1)+ chkmv1(b,p,x,y,-1,-1) chkmv1(b,p,x
,y,m,n) char b88,p int x,y,m,n static int k k0 while ((x + m) 0 && x
8 && (y + n) 0 && y8) if (bxyEMPTY) return 0 if (bxy p ) return k if (x
0 x7 y0 y7) k + 10 else k++ return 0 notake(b,p,o,e,x,y) char b
88 char p,o,e int x,y return notak1(b,p,o,e,x,y,0,1)&& notak1(b,p,o,e,x,y,
1,1)&& f (tk.c chkmov(b,p,i,j)) tk.x i tk.y j tk.s smove(b,p,o,e,i,j) ++
k return k smove(b,p,o,e,i,j) char b88, p, o, e int i,j stati
c char a88 static int ok,s,k,l,side,oside static int c,dkl cpybrd(a,b)
putmov(a,p,i,j) side 0 /*DJH*/ if (i1 i6)
side++ /*DJH*/ if (j1 j6) side++ /*DJH*/ if (side 2) retur
n -19 /*DJH*/ side 0 if (i0 notak1(b,p,o,e,x,y,1,0)&& notak1(b,p,o,e
,x,y,1,-1) notak1(b,p,o,e,x,y,m,n) char b88,p,o,e int x,y,m,n stat
ic int c1,c2 c1 notak2(b,p,o,e,x,y,m,n) c2 notak2(b,p,o,e,x,y,-m,-n) retu
rn !(c1o && c2e c1e && c2o) notak2(b,p,o,e,x,y,m,n) char b88,p,o,e int
x,y,m,n x + m y +n if (x0 && x7 && y0 && y7) while(bxy 0) x + m y+n
if (x0 x7 y0 y7 bxye) return o while (x0 && x i7) side++ if (j
0 j7) side++ if (side 2) return 5 /*DJH*/ s 0 ok 0 if (side2
notake(b,p,o,e,i,j)) ok++ oside 0 for (k0 k8 k++) for(l0 l8 l++) cchkmov(
a,o,k,l) if (c0) continue dkl 1 if (k0 k7) dkl+2 oside4 if (l0 l7) dkl+2
oside4 if (dkl5) dkl 10 oside 16 else if (!notake(a,o,p,e,k,l)) continue
oside 1 s - dkl if (c10) s - 4 oside 87 && y0 && y7 && bxyp) x +m y+n
if (x0 x7 y0 y7) return p return bxy putmov(b,p,x,y) char b88 ch
ar p int x,y static int i,j bxy p for (i -1 i1 i++) for (j -1 j
1 j++) if ((i ! 0 j!0)&&chkmv1(b,p,x,y,i,j)0) putmv1(b,p,x,y,i,j)
putmv1(b,p,x,y,m,n) char b88 char p int x,y,m,n while ((x + m) 0 && x8 &&
(y + n)0 && y8) if (bxy EMPTY bxy p) if (s -oside) s -oside if (side0
) return s+side-7+10*ok if (i1 i6) s-- side++ if (j1 j6) s-- side++ if (sid
e0) return s if (i2 i5) s++ if (j2 j5) s++ return s clrbrd(b) char
b88 static char emptyboard88 EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, E
MPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EM
PTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, BLACK, WHIT
E, EMP return bxy p struct mt int x int y int c int s c
mpmov(a,b) struct mt *a, *b if ((*a).s (*b).s) return -1 if ((*a).s (*b)
.s) return 1 if ((*a).c (*b).c) return -1 if ((*a).c (*b).c) return 1 retur
n 0 mymov(b,p,o,e,m,n) char b88,p int *m, *n static struct mt t
64 static int i,k k fillmt(b,p,o,e,t) if (!k) return 0 qsort (t
, k, 8, cmpmov) for (i1 ik i++) if (ti.s ! TY, EMPTY, EMPTY, EMPTY, EMPTY, EM
PTY, WHITE, BLACK, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPT
Y, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY
, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY blt(b, emptyboard, 8*8)
prtbrd(b) char b88 static int i,j printf(" 1 2 3 4 5 6 7 8n")
for (i0 i8 i++) printf("%2d",i+1) for (j0 j8 j++) putchar(' ') putchar(bij
) putchar('n') pt0.s ti.c ! t0.c) break k abs(rand()) % i *m tk.x
*n tk.y return 1 analyze(b,p,o,e) char b88, p,o,e static struct mt
t64 static char a88 static int i,k,c k fillmt(b,p,o,e,t) cpybrd(a,b
) for (i0 ik i++) ati.xti.y ((c 'F' - ti.s) 'Z')c'Z' prtbrd(a) fi
llmt(b,p,o,e,t) char b88,p,o,e struct mt t64 static int i,j,k k 0 f
or (i0 i8 i++) for(j0 j8 j++) i NAFBGCHDIEutchar('n') cpybrd(a,b) c
har *a, *b static int i i64 while (i--) *a++ *b++ cntbrd(b,p) c
har *b, p static int i,j i 64 j0 while (i--) if (*b++ p) ++j return
(j) /* END OF OTHELLO */ $RSI) PROGRAM */ /* First are the sta
ndard library functions which are used */ int abs(n) return n0 - i++)
printf("%2d",i+1) for (j0 j8 j++) putchar(' ') putchar(bij) putchar('n')
p/* returns previous motor state (whatever that is) or - pms if u
ser pressed ESC */ int Cstartmotor() inline( CALL, 0xBC6E,
LDAinto, ®a, LDAwith, 0, RLA, LDAinto, ®flags) re
turn regflags rega -rega /* Stop the cassette motor */ /*
returns previous motor state (whatever that is) or - pms if user pressed E
SC */ int Cstopmotor() inline( CALL, 0xBC71, LDAinto,
®a, HiSoft C++ Compiler This side of the disc contains the AMSDOS comp
iler "HISOFT-C.BIN" The other side of the disc contains the CP/M compiler "HC
.COM" You cannot run this AMSDOS version on an 8256. Enjoy yourself. Da
ve Howorth 3 Oct 85 in LDAwith, 0, RLA, LDAinto, ®flags) r
eturn regflags rega -rega /* restore the previous state of the c
assette motor */ /* returns TRUE if restored OK and FALSE if user pressed
ESC */ int Crestoremotor(previousmotorstate) rega previousmotorstate
inline( LDAfrom, ®a, CALL, 0xBC74, LDAwith, 0,
RLA, LDAinto, ®flags) return regflags /* open a file for i
nput */ /* use fopen() in preference. there are five or six possible
return values, so customise the function for those that you need. */ C
inopen(filename, buffer) regbc strlen(filename) 8 reghl filename r
egde buffer inline( LDBCfrom, ®bc, LDDEfrom, ®de, LDHLf
rom, ®hl, PUSHIX, CALL, 0xBC77, POPIX) /* Close
the input file properly */ /* returns TRUE if closed OK and FALSE if stre
am was not open */ i/* * * * * * F I R M W A R E . L I B * * * * *
*/ /* */ /*
F I R M 4 - Cassette */ /* Copyright (C) 19
85 HiSoft */ /*
*/ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /*
* CASSETTE MANAGER INTERFACE FUNCTIONS **/ /* Initialise the Cassette Ma
nager */ Cinitialise() inline(CALL, 0xBC65) nt Cinclose() inline(
CALL, 0xBC7A, LDAwith, 0, RLA, LDAinto, ®flags)
return regflags /* Abandon reading from the input file and close it
*/ Cinabandon() inline(CALL, 0xBC7D) /* Read a character from th
e input stream */ /* returns character, or EOF (-1) if end-of-file,
or -3 if user pressed ESC */ int Cinchar() inline( PUSHIX,
CALL, 0xBC80, POPIX, LDAinto, ®a, /* Set the wri
te speed (see BASIC.LIB) */ Csetspeed(halfzerobit, precompensation) reg
a precompensation reghl halfzerobit inline( LDAfrom, ®a,
LDHLfrom, ®hl, CALL, 0xBC68) /* Enable or disable prompt
messages */ /* enable should be TRUE (1) or FALSE (0) as appropriate */
Cnoisy(enable) rega enable inline( LDAfrom, ®a, CALL
, 0xBC6B) /* Start the cassette motor */ NAFBGCHDIE LDAwith
, 0, RLA, JRZ, 2, INCA, INCA, LDAinto, ®flag
s) return (regflags 1) -regflags rega /* Read the entire inpu
t file into store */ /* returns NULL (0) if OK, or EOF (-1) if end-o
f-file, or -3 if user pressed ESC */ int Cindirect(address) reghl
address inline( LDHLfrom, ®hl, CALL, 0xBC83, LDAwith
, 0, RLA, JRZ, 2, INCA, INCA, LDAif (regflags &
1) return 0 if (regflags & 2) return -3 return -1 /* write the ent
ire output file directly from store */ /* returns NULL (0) if OK, or
ERROR (-1) if file not open or -3 if user pressed ESC */ Coutdirect(da
taaddress, datalength, entryaddress, filetype) reghl dataaddress regde
datalength regbc entryaddress rega filetype inline( LDHLfrom,
®hl, LDDEfrom, ®de, LDBCfrom, ®bc, into, ®flags) if
(regflags & 1) return 0 if (regflags & 2) return -3 return -1 /*
Put back the last character read from cassette */ Creturn() inline(CALL
, 0xBC86) /* Test if the end of the input file has been reached */ /*
returns NULL (0) if OK, or EOF (-1) if end-of-file, or -3 if user
pressed ESC */ int Ctesteof() inline( PUSHIX, CALL, 0xB
C89, POPIX, LDAwith, 0, RLA, JRZ, 2, LDAfrom, &
rega, CALL, 0xBC83, LDAwith, 0, RLA, JRZ, 2,
INCA, INCA, LDAinto, ®flags) if (regflags & 1) return 0 i
f (regflags & 2) return -3 return -1 /* Generate a catalogue from the
tape */ Ccatalog() char buffer2048 regde cast (unsigned) buffer
inline( LDDEfrom, ®de, PUSHIX, CALL, 0xBC9B, POP
IX) /* write a record to tape */ /* returns NULL (0 INCA, I
NCA, LDAinto, ®flags) if (regflags & 1) return 0 if (regflags & 2
) return -3 return -1 /* open a file for output */ /* use fo
pen() in preference. there are several possible return values, so customise
the function for those that you need. */ Coutopen(filename, buffer)
regbc strlen(filename) 8 reghl filename regde buffer inline(
LDBCfrom, ®bc, LDDEfrom, ®de, LDHLfrom, ®h) if OK and other
wise an error code code meaning 1 the user presse
d ESC 2 overrun in cassette manager */ int Cwrite(dataaddre
ss, datalength, synccharacter) reghl dataaddress regde datalength r
ega synccharacter inline( LDHLfrom, ®hl, LDDEfrom, ®de,
LDAfrom, ®a, PUSHIX, CALL, 0xBC9E, POPIX, LDAint
o, ®a, LDAwith, 0, RLA, LDAinto, &rel, PUSHIX, CA
LL, 0xBC8C, POPIX) /* Close the output file properly */ /*
returns NULL (0) if OK, or ERROR (-1) if stream not open, or -3 i
f user pressed ESC */ int Coutclose() inline( PUSHIX, CALL,
0xBC8F, POPIX, LDAwith, 0, RLA, JRZ, 2, INC
A, INCA, LDAinto, ®flags) if (regflags & 1) return 0 if (reg
flags & 2) return -3 return -1 /* Abandon writing togflags) return
regflags 0 rega + 1 /* read a record from tape */ /* ret
urns NULL (0) if OK and otherwise an error code code meaning
1 the user pressed ESC 2 overrun in cassette manage
r 3 CRC error */ int Cread(dataaddress, datalength, synccha
racter) reghl dataaddress regde datalength rega synccharacter
inline( LDHLfrom, ®hl, LDDEfrom, ®de, LD the output file an
d close it */ Coutabandon() inline(CALL, 0xBC92) /* write a cha
racter to the output stream */ /* returns character, or ERROR (-1) i
f file not open, or -3 if user pressed ESC */ int Coutchar(character)
rega character inline( LDAfrom, ®a, PUSHIX, CALL,
0xBC80, POPIX, LDAinto, ®a, LDAwith, 0, RLA, JR
Z, 2, INCA, INCA, LDAinto, ®flags) NAFBGCHDIEAfrom
, ®a, PUSHIX, CALL, 0xBCA1, POPIX, LDAinto, ®a
, LDAwith, 0, RLA, LDAinto, ®flags) return regflags 0
rega + 1 /* Compare a record on tape with the contents of store
*/ /* returns NULL (0) if OK and otherwise an error code code
meaning 1 the user pressed ESC 2 overrun i
n cassette manager 3 CRC error 4 data on tape
diffAfrom, ®a, CALL, 0xBC08) /* Fetch current base and offs
et settings */ int Vgetoffset() inline( CALL, 0xBC0B, L
DHLinto, ®hl) return reghl int Vgetbase() inline( CALL,
0xBC0B, LDAinto, ®a) return rega 6 /* set screen into a
new mode */ Vsetmode(mode) rega mode inline( LDAfrom, ®a,
CALL, 0xBC0E) /* ask the current screen mode */ int Vgeters
from memory */ int Ccheck(dataaddress, datalength, synccharacter) regh
l dataaddress regde datalength rega synccharacter inline( LDHL
from, ®hl, LDDEfrom, ®de, LDAfrom, ®a, PUSHIX, CAL
L, 0xBCA1, POPIX, LDAinto, ®a, LDAwith, 0, RLA,
LDAinto, ®flags) return regflags 0 rega + 1 /* * * * * *
E N D O F F I R M 4 * * * * * */ o, ®flags)mode() inlin
e( CALL, 0xBC11, LDAinto, ®a) return rega /* clear
the screen to ink 0 */ Vclear() inline(CALL, 0xBC14) /* ask the
size of the screen in characters */ /* returns the last column (CC) and
last row (RR) encoded as 0xCCRR */ int Vcharlimits() inline( CALL,
0xBC17, LDBCinto, ®bc) return regbc /* convert Text VD
U coordinates to a screen position (and width) */ int Vcharposition(row, col
umn) reghl (column 8) + row inline( LDHLfrom, ®hl, CALL,
0xBC1A, LDHLinto, ®hl) return reghl int Vcharwidth()
inline( CALL, 0xBC1A, LDBCinto, ®bc) return (regbc 8)
/* convert Graphics VDU coordinates to a screen position */ /* Vdo
tposition does as described, Vdotaux returns mask (MM) and pixelsinbyte -
1 (PP) encoded as 0xPPMM */ int Vdotposition(x, y) reg/* * * * * *
F I R M W A R E . L I B * * * * * */ /*
*/ /* F I R M 3 - Screen Pack
*/ /* Copyright (C) 1985 HiSoft */ /*
*/ /* * * * * * * * * * * * * * *
* * * * * * * * * * * * * */ /** SCREEN PACK INTERFACE FUNCTIONS **/
/* Initialise the Screen Pack */ Vinitialise() inline(CALL, 0xBBF
F) /*de x reghl y inline( LDDEfrom, ®de, LDHLfrom, &
reghl, CALL, 0xBC1D, LDHLinto, ®hl) return reghl in
t Vdotaux(x, y) regde x reghl y inline( LDDEfrom, ®de,
LDHLfrom, ®hl, CALL, 0xBC1D, LDBCinto, ®bc) return reg
bc /* calculate the screen address to the right of the given screen addr
ess */ int Vnextbyte(address) reghl address inline( LDHLfr Re
set the Screen Pack */ Vreset() inline(CALL, 0xBC02) /* set the
offset of the start of the screen */ Vsetoffset(offset) reghl offset
inline( LDHLfrom, ®hl, CALL, 0xBC05) /* set the ar
ea of RAM to use for screen memory */ /* quadrant locates screen memory b
ase as follows 0 0x0000 1 0x4000 2 0x8000 3
0xC000 */ Vsetbase(quadrant) rega (quadrant & 3) 6 inline(
LD NAFBGCHDIEom, ®hl, CALL, 0xBC20, LDHLinto, ®hl) r
eturn reghl /* calculate the screen address to the left of the given scr
een address */ int Vprevbyte(address) reghl address inline( LD
HLfrom, ®hl, CALL, 0xBC23, LDHLinto, ®hl) return reghl
/* calculate the screen address below that of the given screen address
*/ int Vnextline(address) reghl address inline( LDHLfrom, ®h
l, CALL, FF) and second (SS) periods encoded thus 0xFFSS */ int Vgetfl
ashing() inline( CALL, 0xBC41, LDHLinto, ®hl) return
reghl /* Fill an area of the screen with an ink (delimited by character
pos) */ Vfillbox(ink, left, right, top, bottom) rega ink regde (r
ight 8) + bottom reghl (left 8) + top inline( LDAfrom, ®a,
LDDEfrom, ®de, LDHLfrom, ®hl, CALL, 0xBC44) /*
Fill an ar 0xBC26, LDHLinto, ®hl) return reghl /* calcula
te the screen address above that of the given screen address */ int Vprevlin
e(address) reghl address inline( LDHLfrom, ®hl, CALL,
0xBC29, LDHLinto, ®hl) return reghl /* encode an ink to cov
er all pixels in a byte */ int Vinkencode(ink) rega ink inline(
LDAfrom, ®a, CALL, 0xBC2C, LDAinto, ®a) return rega
ea of the screen with an ink (bytes) */ Vfloodbox(ink, topleftaddress, wi
dthinbytes, heightinlines) rega ink regde (widthinbytes 8) + heighti
nlines reghl topleftaddress inline( LDAfrom, ®a, LDDEfrom,
®de, LDHLfrom, ®hl, CALL, 0xBC47) /* Swap two inks
over at a character position */ Vcharinvert(ink1, ink2, row, column) r
egbc (ink1 8) + ink2 reghl (column 8) + row inline( /* decode
an encoded ink to the appropriate ink number */ int Vinkdecode(ink) reg
a ink inline( LDAfrom, ®a, CALL, 0xBC2F, LDAinto, &re
ga) return rega /* set the colours to display an ink */ Vsetink(i
nk, firstcolour, secondcolour) rega ink regbc (firstcolour 8) + seco
ndcolour inline( LDAfrom, ®a, LDBCfrom, ®bc, CALL,
0xBC32) /* Ask the colours an ink is currently d LDBCfrom, ®bc,
LDHLfrom, ®hl, CALL, 0xBC4A) /* Move the whole screen u
p or down one character height */ /* screenistorollup should be TRUE or F
ALSE as appropriate */ Vhwroll(ink, screenistorollup) rega ink reg
bc screenistorollup 0xFF00 0 inline( LDAfrom, ®a, LDBC
from, ®bc, CALL, 0xBC4D) /* Move an area of the screen u
p or down one character height */ /* screenisplayed in */ /* retur
ns first (FF) and second (SS) colour encoded thus 0xFFSS */ int Vgetink(ink)
rega ink inline( LDAfrom, ®a, CALL, 0xBC35,
LDBCinto, ®bc) return regbc /* set the colours to display the bord
er in */ Vsetborder(firstcolour, secondcolour) regbc (firstcolour 8)
+ secondcolour inline( LDBCfrom, ®bc, CALL, 0xBC38)
/* Ask the colours the border is currently dispistorollup should be TRUE or FA
LSE as appropriate */ Vswroll(ink, screenistorollup, left, right, top, botto
m) rega ink regbc screenistorollup 0xFF00 0 regde (right
8) + bottom reghl (left 8) + top inline( LDAfrom, ®a, L
DBCfrom, ®bc, LDDEfrom, ®de, LDHLfrom, ®hl, CALL,
0xBC50) /* Expand a character matrix for the current screen mode */
Vunpack(matrix, unpackarea) layed in */ /* returns first (FF) and sec
ond (SS) colour encoded thus 0xFFSS */ int Vgetborder() inline( CA
LL, 0xBC3B, LDBCinto, ®bc) return regbc /* Set the ink
flash periods (in frame flybacks) */ Vsetflashing(firstperiod, secondperiod)
reghl (firstperiod 8) + secondperiod inline( LDHLfrom, ®hl,
CALL, 0xBC3E) /* Ask the current ink flash periods (in frame f
lybacks) */ /* returns first ( NAFBGCHDIE reghl matrix regde unpack
area inline( LDDEfrom, ®de, LDHLfrom, ®hl, CALL, 0
xBC53) /* Compress a character matrix to the standard form */ Vrepac
k(ink, matrix, row, column) rega ink regde matrix reghl (column
8) + row inline( LDAfrom, ®a, LDDEfrom, ®de, LDHLfrom,
®hl, CALL, 0xBC56) /* Set the screen write mode for the Gr
aphics VDU */ /* pixelwritemode i/* * * * * * F I R M W A R E . L I
B * * * * * */ /* */
/* F I R M 5 - Sound to Kernel */ /*
Copyright (C) 1985 HiSoft */ /*
*/ /* * * * * * * * * * * * * * * * * * * * * * * * * * *
* */ /** SOUND MANAGER INTERFACE LIBRARY **/ /* Sound Progr
am Structure for use with SOUNDQUEUE */ typedef struct char s 0
write 1 exclusive-or 2 and 3 inclusive-or */ Vaccess(pix
elwritemode) rega pixelwritemode inline( LDAfrom, ®a, CAL
L, 0xBC59) /* write some pixels to the screen ignoring the Graphic
s VDU write mode */ Vpixels(ink, pixelmask, screenaddress) regbc (ink
8) + pixelmask reghl screenaddress inline( LDBCfrom, ®bc, L
DHLfrom, ®hl, CALL, 0xBC5C) /* plot a purel spchannels
/* channel/rendezvous flags */ char spampenv /* amplitu
de envelope 1-15 or 0 to default */ char sptonenv /* tone envel
ope 1-15 or 0 to default */ unsigned sptonperiod /* tone period 1
-4095 or 0 for noise only */ char spnoiseperiod /* noise period 1-3
1 or 0 for tone only */ char spampinitial /* initial amplitude 0
-15 */ unsigned sprepeatcount /* duration or envelopy h
orizontal line */ Vhorizontal(ink, xleft, xright, y) rega ink regb
c xright regde xleft reghl y inline( LDAfrom, ®a, LDB
Cfrom, ®bc, LDDEfrom, ®de, LDHLfrom, ®hl, CALL, 0x
BC5F) /* plot a purely vertical line */ Vvertical(ink, x, ytop, ybot
tom) rega ink regbc ybottom regde x reghl ytop inline(
LDAfrom, ®a, LDBCfrom, ®bc, LDDEe-repeat-count */
soundprogram /* Channel/Rendezvous Flags */ #define spACHAN 1
/* sound on channel A */ #define spBCHAN 2 /* sound on channel B */
#define spCCHAN 4 /* sound on channel C */ #define spARDVZ 8 /* re
ndezvous with channel A */ #define spBRDVZ 16 /* rendezvous with channel B
*/ #define spCRDVZ 32 /* rendezvous with channel C */ #define spHOLD
64 /* hold until released */ #define spFLUSH 128 /* abandfrom, ®de,
LDHLfrom, ®hl, CALL, 0xBC62) /* * * * * * E N D
O F F I R M 3 * * * * * */ e, LDHLfrom, ®hl, CALL,
0xBC62) /* * * * * * E N D O F F I R M 3 * * on all ear
lier sounds in queue */ /* Envelopes for Amplitude or T
one */ typedef union struct char sescount char sessize c
har sespausetime sessoftware struct char sesshape
unsigned sesperiod seshardware senvsection typ
edef struct char secountsections senvsection sesection5
soundenvelope /* Reset the sound NAFBGCHDIEm
anager */ Sreset() inline(CALL, 0xBCA7) /* Add a sound to a sou
nd queue */ /* returns TRUE (1) if sound added to queue and FALSE (0
) if not because at least one queue was full */ int Squeue(sp) soundprogr
am *sp reghl cast(unsigned) sp inline( LDHLfrom, ®hl, PUSH
IX, CALL, 0xBCAA, POPIX, LDHLwith, 0,0, RLL) /
* Ask if there is space on a sound queue */ /* It takes a bit coded argu
ment (use returns a pointer to the envelope with the given number (just
in case you had forgotten it) or NULL (0) if the number was invalid */
soundenvelope *Saaddress(number) rega number inline( LDAfrom, &re
ga, CALL, 0xBCC2, RLA, LDAinto, ®a, LDHLinto,®hl)
return areg & 1 reghl 0 /* Get the address of a sound t
one envelope */ /* returns a pointer to the envelope with the given numbe
r (just in caa constant like spACHAN). returns encoded channel status
as per firmware specification */ int Scheck(channelbit) rega channelbi
t inline( LDAfrom, ®a, CALL, 0xBCAD, LDAinto, ®a)
return rega /* Set up an event to be run when a sound queue becomes em
pty */ /* It takes a bit coded argument (use a constant like spACHAN). *
/ Sarmevent(channelbit, eb) eventblock *eb rega channelbit reghl
eb inline( se you had forgotten it) or NULL (0) if the number was inva
lid */ soundenvelope *Staddress(number) rega number inline( LD
Afrom, ®a, CALL, 0xBCC5, RLA, LDAinto, ®a, LDHLin
to,®hl) return areg & 1 reghl 0 /** KERNEL INTERFA
CE **/ /* Event Data Types */ /* NB event blocks MUST be allocat
ed in the central 32K of memory. (ie from 0x4000 to 0xBFFF) This will norm
ally be the case if they LDAfrom, ®a, LDHLfrom, ®hl, CALL,
0xBCB0) /* Allow sounds to happen */ /* It takes a bit code
d argument (use a constant like spACHAN). */ Srelease(channelbits) rega
channelbit inline( LDAfrom, ®a, PUSHIX, CALL, 0xBCB
3, POPIX) /* Stop all sounds in mid-flight */ /* returns TRU
E (1) if a sound was active and FALSE (0) if not */ int Shold() inline(
CALL, 0xBCB6, LDHL are allocated as variables in a C program. *
/ /* struct eventblock THE ORDER (AND CONTENTS!) MAY NOT BE RIGHT !! !! !
! struct eventblock *evlink char evcount char evclas
s unsigned evroutine char evROMselect struct timerblock struc
t timerblock *timerlink evblock timerevent struct tickblock struct
tickblock *tickerlink int tickerrechargecount int tickercount
evblock tickereventwith, 0,0, RLL) /* Restart sounds after the
y have been held/stopped */ Scontinue() inline( PUSHIX, CALL,
0xBCB9, POPIX) /* Set up an amplitude envelope */ /* This t
akes the envelope number 1-15 and a pointer to an envelope structure. It re
turns TRUE (1) if the envelope was set up OK and FALSE (0) if the envelope
number was invalid */ int Samplenvelope(number, envelope) soundenvelope *
envelope rega number reghl */ /* Reset the Kernel */
/* there are several possible return values, customise the function to suit
. */ Echokeoff() inline(CALL, 0xBCC8) /* find and initialise al
l background ROMs */ /* returns revised lastusablebyte. ROMs shouldn't r
eally use low RAM, and a C program is in trouble anyway if they do! */
int Eromwalk(firstusablebyte, lastusablebyte) regde firstusablebyte reg
hl lastusablebyte inline( LDHLf envelope inline( LDAfrom, &re
ga, LDHLfrom, ®hl, CALL, 0xBCBC, LDHLwith, 0,0, RLL
) /* Set up a tone envelope */ /* as per Samplenvelope */ int
Stoneenvelope(number, envelope) soundenvelope *envelope rega number
reghl envelope inline( LDAfrom, ®a, LDHLfrom, ®hl, C
ALL, 0xBCBC, LDHLwith, 0,0, RLL) /* Get the address of a
sound amplitude envelope */ /* NAFBGCHDIErom, ®hl, LDDEfrom, ®d
e, CALL, 0xBCCB, LDHLinto, ®hl) return reghl /* in
itialise a particular background ROM */ /* returns revised lastusablebyte
. ROMs shouldn't really use low RAM, and a C program is in trouble anyway
if they do! */ Einitback(ROMselectaddress, firstusablebyte, lastusablebyte)
regbc ROMselectaddress regde firstusablebyte reghl lastusablebyte
inline( LDHLfrom, ®hl, LDHLfrom, ®hl, LDDEfrom, &r
egde, LDBCfrom, ®bc, CALL, 0xBCE0) /* Put a block ont
o the fast ticker list */ Eaddfastticker(fasttickerblock) reghl fastti
ckerblock inline( LDHLfrom, ®hl, CALL, 0xBCE3) /*
Remove a block from the fast ticker list */ Edelfastticker(fasttickerblock)
reghl fasttickerblock inline( LDHLfrom, ®hl, CALL, 0
xBCE6) /* put a blLDDEfrom, ®de, LDBCfrom, ®bc, CALL,
0xBCCE, LDHLinto, ®hl) return reghl /* Introduce an RSX
to the firmware */ Elogext(commandtableaddress, kernelRAMaddress) regb
c commandtableaddress reghl kernelRAMaddress inline( LDHLfrom, ®
hl, LDBCfrom, ®bc, CALL, 0xBCD1) /* Search for an RSX
, background ROM, or foreground ROM to process a command */ /* returns TR
UE (1) if command founock onto the tick list */ Eaddticker(tickblock, initia
lcount, rechargevalue) reghl tickblock regde initialcount regbc re
chargevalue inline( LDHLfrom, ®hl, LDDEfrom, ®de, LDBCfr
om, ®bc, CALL, 0xBCE9) /* Remove a block from the tick lis
t */ /* returns count remaining before next event, or 257 if tick bl
ock not found */ int Edelticker(tickblock) reghl tickblock inline(
LDHLfrom, d, and FALSE (0) otherwise. Also sets ROMselectaddress and r
outineaddress */ int Efindcommand(commandname, pROMselectaddress, proutinead
dress) int *pROMselectaddress, *proutineaddress reghl commandname i
nline( LDHLfrom, ®hl, CALL, 0xBCD4, LDHLinto, ®hl,
LDBCinto, ®bc, LDAwith, 0, RLA, LDAinto, ®flags) *p
ROMselect regbc & 0xFF *proutineaddress reghl return regflags &re
ghl, CALL, 0xBCEC, LDDEinto, ®de, LDAwith, 0, RLA,
LDAinto, ®flags) return regflags regde 257 /* Initia
lise an event block */ Einitevent(eventblock, eventclass, ROMselect, eventro
utine) reghl eventblock regbc (eventclass 8) + ROMselect regde ev
entroutine inline( LDHLfrom, ®hl, LDDEfrom, ®de, LDBCfro
m, ®bc, CALL, 0xBCEF) /* Kick an event/* Initialise and p
ut a block onto the frame flyback list */ Enewframefly(frameflybackblock, ev
entclass, ROMselect, eventroutine) reghl frameflybackblock regbc (even
tclass 8) + ROMselect regde eventroutine inline( LDHLfrom, ®hl,
LDDEfrom, ®de, LDBCfrom, ®bc, CALL, 0xBCD7) /*
Put a block onto the frame flyback list */ Eaddframefly(frameflybackblock)
reghl frameflybackblock inline( block */ Eevent(eventblock)
reghl eventblock inline( LDHLfrom, ®hl, CALL, 0xBCF2)
/* Clear synchronous event queue */ Esyncreset() inline(CALL, 0
xBCF5) /* Remove a synchronous event from the queue */ Edelsynchrono
us(eventblock) reghl eventblock inline( LDHLfrom, ®hl, CAL
L, 0xBCF2) /* Get next synchronous event from queue */ /* r
eturns the address of the event block, or NULL LDHLfrom, ®hl, CALL,
0xBCDA) /* Remove a block from the frame flyback list */ Edelfra
mefly(frameflybackblock) reghl frameflybackblock inline( LDHLfrom,
®hl, CALL, 0xBCDD) /* Initialise and put a block onto the
fast ticker list */ Enewfastticker(fasttickerblock, eventclass, ROMselect,
eventroutine) reghl fasttickerblock regbc (eventclass 8) + ROMselect
regde eventroutine inline( NAFBGCHDIE(0) if there is none If you ne
ed the previous event priority, recover it from rega */ int Enextsync()
inline( CALL, 0xBCFB, LDHLinto, ®hl, LDAinto, ®a,
LDAwith, 0, RLA, LDAinto, ®flags) return regflags reghl
0 /* Perform a synchronous event routine */ Edosync(eventroutin
e) reghl eventroutine inline( LDHLfrom, ®hl, CALL, 0
xBCFE) /* Finish processing a sync /* Reset the Text Indirections
and control code table */ Treset() inline(CALL, 0xBB51) /* Allo
w characters to be placed on the screen */ Tvduenable() inline(CALL, 0x
BB54) /* Prevent characters being placed on the screen */ Tvdudisabl
e() inline(CALL, 0xBB57) /* Output a character or control code to t
he text VDU */ Toutput(c) rega c inline( LDAfrom, ®a,
CALL, 0xBB5A) /* Write a character tohronous event */ Edonesync
(previouspriority, eventblock) rega previouspriority reghl eventblock
inline( LDAfrom, ®a, LDHLfrom, ®hl, CALL, 0xBD01)
/* Disable normal synchronous events */ Eeventdisable() inline
(CALL, 0xBD04) /* Enable normal synchronous events */ Eeventenable()
inline(CALL, 0xBD07) /* Prevent a synchronous event from occurring
*/ Edisarmevent(eventblock) reghl the screen. Control codes are pri
nted, not obeyed */ Twrchar(c) rega c inline( LDAfrom, ®a,
CALL, 0xBB5D) /* Read a character from the screen. */ /*
Returns the character found or EOF (-1) if none was recognised */ int Trdc
har() inline( CALL, 0xBB60, LDLA, LDHwith, 0, JR
C, 1, DECHL) /* Turn on or off the graphics VDU write charact
er option */ /* The parameter "on" should be TRUeventblock inline(
LDHLfrom, ®hl, CALL, 0xBD0A) /* Ask the elapsed time */
Etimeplease(time) int time2 inline( CALL, 0xBD0D, LD
HLinto, ®hl, LDDEinto, ®de) time0 reghl time1 regde /*
set the elapsed time */ Etimeset(time) int time2 reghl time0 r
egde time1 inline( LDHLfrom, ®hl, LDDEfrom, ®de, CALL,
0xBD10) /* * * * * * E (1) to turn the option on and should be F
ALSE (0) to turn it off. */ Tsetgraphic(on) rega on inline( LD
Afrom, ®a, CALL, 0xBB63) /* Set the size of the current tex
t window */ Twinenable(x1,x2,y1,y2) reghl (x1 8) + y1 regde (x2
8) + y2 inline( LDHLfrom, ®hl, LDDEfrom, ®de, CALL,
0xBB66) /* Get the size and position of the current window */ /*
The results are put into the 4 E N D O F F I R M 5 * * * * * */
ghl, LDDEfrom, ®de, CALL, 0xBD10) /* * * * * * -charac
ter vector supplied as argument. edge0 is the topmost row. edge1 i
s the leftmost column number. edge2 is the bottommost row. edge3 i
s the rightmost column. The value of the function is FALSE (0) if the windo
w covers the whole screen and TRUE (1) if it only covers part of the screen
. */ int Tgetwindow(edge) int edge2 /* note the naughty type conv
ersion */ reghl cast(unsigned) edge inline( CALL, 0xBB69, LDH
Linto,/* * * * * * F I R M W A R E . L I B * * * * * */ /*
*/ /* F I R M 2 - Text VD
U to Graphics VDU */ /* Copyright (C) 1985 HiSoft
*/ /* */ /* * * *
* * * * * * * * * * * * * * * * * * * * * * * * */ /****** TEXT VDU INTE
RFACE FUNCTIONS ******/ /* Fully Initialise the Text VDU */ Tinitia
lise() inline(CALL, 0xBB4E) NAFBGCHDIE ®hl, LDDEinto, ®de,
LDAwith, 0, RLA, LDAinto, ®flags) edge0 reghl edge1 re
ghl return regflags /* Clear current window */ Tclearwindow()
inline(CALL, 0xBB6C) /* Set cursor horizontal position */ Tsetc
olumn(xcolumn) rega xcolumn inline( LDAfrom, ®a, CALL,
0xBB6F) /* Set cursor vertical position */ Tsetrow(yrow) rega
yrow inline( LDAf 0xBB90) /* Get ink for writing characters
*/ int Tgetpen() inline( CALL, 0xBB93, LDAinto, ®a)
return rega /* Set ink for writing text background */ Tsetpaper
(ink) rega ink inline( LDAfrom, ®a, CALL, 0xBB96)
/* Get ink for writing text background */ int Tgetpaper() inline(
CALL, 0xBB99, LDAinto, ®a) return rega /* Swap curr
ent pen and paper inks */rom, ®a, CALL, 0xBB72) /* Set curso
r position */ Tsetcursor(xcolumn, yrow) reghl (xcolumn 8) + yrow i
nline( LDHLfrom, ®hl, CALL, 0xBB75) /* Ask current cu
rsor position */ Tgetcursor(pxcolumn, pyrow, prollcount) int *pxcolumn, *
pyrow, *prollcount inline( CALL, 0xBB78, LDAinto, ®a,
LDHLinto, ®hl) *prollcount rega *pxcolumn (reghl 8) & 0xFF
*pyrow Tinverse() inline(CALL, 0xBB9C) /* Allow or disallow bac
kground being written */ /* transparent should be TRUE for transparent wr
iting and FALSE otherwise */ Tsetback(transparent) rega transparent
1 0 inline( LDAfrom, ®a, CALL, 0xBB9F) /* Ask
if background is to be written with characters */ /* returns TRUE for tra
nsparent writing and FALSE otherwise */ int Tgetback() inline( CAL
L, 0xBBA2, reghl & 0xFF /* Enable cursor display (may sh
ow cursor) - for normal user use */ Tcurenable() inline(CALL, 0xBB7B)
/* Disable cursor display (always hides cursor) - for normal user use */
Tcurdisable() inline(CALL, 0xBB7E) /* Turn cursor display on (m
ay show cursor) - used by C compiler */ Tcuron() inline(CALL, 0xBB81)
/* Turn cursor display off (always hides cursor) - used by C compiler */
Tcuroff() inline(CAL LDAinto, ®a) return rega 1 0
/* Get the address of a character matrix */ /* If the address is in the
range 0000 - 0x3FFF then the matrix is in the lower ROM, and otherwise its
in RAM. (The program occupies low RAM). */ int Tgetmatrix(characternumber)
rega characternumber inline( LDAfrom, ®a, CALL, 0xB
BA5, LDHLinto, ®hl) return reghl /* Set the contents of a cha
racter matrix */ /* returnsL, 0xBB84) /* Check if a cursor positi
on is legal and force it to be so */ /* returns valid cursor position in x
and y, POINTED AT by pxcol and pyrow. returns rollcount change as its result
-1 if window would roll up 0 if window would not roll +1 if wind
ow would roll down */ int Tvalidate(pxcol, pyrow) int *pxcol, *pyrow
reghl (*pxcol 8) + *pyrow inline( LDHLfrom, ®hl, CALL,
0xBB87, LDHLinto, ®hl, LDA TRUE (1) if all OK, and FALSE if ch
aracter is not user definable */ Tsetmatrix(characternumber, matrixaddress)
rega characternumber reghl matrixaddress inline( LDAfrom, &r
ega, LDHLfrom, ®hl, CALL, 0xBBA8, LDAwith, 0, RLA,
LDAinto, ®a) return rega /* Set the user defined matrix tab
le address */ Tsetmtable(firstcharacter, tableaddress) regde firstchar
acter reghl tableaddress B, RLA, LDAinto, ®a) *pxcol (re
ghl 8) & 0xFF *pyrow reghl & 0xFF if ( ! rega) return 1 if (r
ega 0xFE) return -1 return 0 /* Put a cursor blob on the screen */
Tplacecursor() inline(CALL, 0xBB8A) /* Take a cursor blob off th
e screen */ Tremovecursor() inline(CALL, 0xBB8D) /* Set ink for
writing characters */ Tsetpen(ink) rega ink inline( LDAfrom,
®a, CALL, NAFBGCHDIE inline( LDDEfrom, ®de, LDHLfrom,
®hl, CALL, 0xBBAB) /* Get user defined matrix table addres
s */ /* This function just returns the address (or NULL (0) if there is n
one). Use the next function "Tgetmchar" to find the first character in it.
*/ int Tgetmtable() /* get address of table */ inline( CALL
, 0xBBAE, LDHLinto, ®hl, LDAwith, 0, RLA, LDAinto,
®flags) return regflags re inline( CALL, 0xBBCC, LDDEint
o, ®de, LDHLinto, ®hl) *pdx regde *pdy reghl /* set the
left and right edges of the graphics window */ Gwinwidth(x1, x2) regde
x1 reghl x2 inline( LDDEfrom, ®de, LDHLfrom, ®hl, CALL
, 0xBBCF) /* set the top and bottom edges of the graphics window */ Gw
inheight(y1, y2) regde y1 reghl y2 inline( LDDEfrom, ®de,
LDHLfrom, ®hl, ghl 0 int Tgetmchar() /* get first ch
aracter in table */ inline( CALL, 0xBBAE, LDAinto, ®a,
LDAwith, 0, RLA, LDAinto, ®flags) return regflags re
ga 0 /* Fetch address of control code table */ int Tgetcontrols(
) inline( CALL, 0xBBB1, LDHLinto, ®hl) return reghl
/* Select a Text VDU stream */ /* returns the previously selected
stream number */ int CALL, 0xBBD2) /* get the left and right edges of
the graphics window */ Ggetwidth(px1, px2) int *px1, *px2 inline(
CALL, 0xBBD5, LDDEinto, ®de, LDHLinto, ®hl) *px1 regde *
px2 reghl /* get the top and bottom edges of the graphics window */ G
getheight(py1, py2) int *py1, *py2 inline( CALL, 0xBBD8, LDDEi
nto, ®de, LDHLinto, ®hl) *py1 regde *py2 reghl /* clear
the graphics windo Tstrselect(streamnumber) rega streamnumber inline(
LDAfrom, ®a, CALL, 0xBBB4, LDAinto, ®a) return rega
/* Swap the states of two streams */ Tswapstreams(streamnumber, anot
herstreamnumber) regbc (streamnumber 8) + anotherstreamnumber inline(
LDBCfrom, ®bc, CALL, 0xBBB7) /** GRAPHIC VDU INTE
RFACE FUNCTIONS **/ /* fully initialise the graphics vdu */ Ginitialise
() inlw */ Gclearwindow() inline(CALL,0xBBDB) /* set the gra
phics plotting ink */ Gsetpen(ink) rega ink inline( LDAfrom, &r
ega, CALL, 0xBBDE) /* get the graphics plotting ink */ int Ggetpe
n() inline( CALL, 0xBBE1, LDLA, LDHwith, 0) /* set th
e graphics background ink */ Gsetpaper(ink) rega ink inline( LD
Afrom, ®a, CALL, 0xBBE4) /* get the current graphics background i
nk */ ine(CALL, 0xBBBA) /* reset the graphics vdu indirections to their
default */ Greset() inline(CALL, 0xBBBD) /* move to an absolute g
raphics position */ Gmoveabsolute(x,y) regde x reghl y inline(LDDE
from, ®de, LDHLfrom, ®hl, CALL, 0xBBC0) /* move
relative to current graphics position */ Gmoverelative(dx, dy) regde d
x reghl dy inline( LDDEfrom, ®de, LDHLfrom, ®hl, CALL,
int Ggetpaper() inline( CALL, 0xBBE7, LDLA, LDHwith, 0)
/* plot a point at an absolute position */ Gplotabsolute(x, y) reg
de x reghl y inline( LDDEfrom, ®de, LDHLfrom, ®hl, CA
LL, 0xBBEA) /* plot a point relative to the current position */ Gplotr
elative(dx, dy) regde dx reghl dy inline( LDDEfrom, ®de,
LDHLfrom, ®hl, CALL, 0xBBED) /* test which ink is at a0xBBC3)
/* get the current graphics position */ Gaskcursor(pdx, pdy) int *pdx
, *pdy inline( CALL, 0xBBC6, LDDEinto, ®de, LDHLinto, &re
ghl) *pdx regde *pdy reghl /* set the origin of the user coordinate
s */ Gsetorigin(x, y) regde x reghl y inline( LDDEfrom, ®d
e, LDHLfrom, ®hl, CALL, 0xBBC9) /* get the origin of the use
r coordinates */ Ggetorigin(pdx, pdy) int *pdx, *pdy NAFBGCHDIEn absol
ute position */ int Gtestabsolute(x, y) regde x reghl y inline(
LDDEfrom, ®de, LDHLfrom, ®hl, CALL, 0xBBF0, LDLA, L
DHwith, 0) /* test which ink is at a position relative to the current one
*/ int Gtestrelative(dx, dy) regde dx reghl dy inline( LDDEf
rom, ®de, LDHLfrom, ®hl, CALL, 0xBBF3, LDLA, LDHwith,
0) /* draw a line to an absolute position */ Glinea CALL, 0xBD1C)
/* set screen offset */ Mscreenoffset(base, offset) rega bas
e reghl offset inline( LDHLfrom, ®hl, LDAfrom, ®a,
CALL, 0xBD1F) /* set all inks to one colour */ /* the param
eter is the address of the border colour (BB) and ink colour (II) encoded a
s 0xIIBB. */ Mclearinks(inkvector) regde inkvector inline( LDD
Efrom, ®de, CALL, 0xBD22) /* set colourbsolute(x, y)
regde x reghl y inline( LDDEfrom, ®de, LDHLfrom, ®hl,
CALL, 0xBBF6) /* draw a line relative to the current position */ Glin
erelative(dx, dy) regde dx reghl dy inline( LDDEfrom, ®de,
LDHLfrom, ®hl, CALL, 0xBBF9) /* plot a character on the screen
at the current graphics position */ Gwrchar(c) rega c inline(
LDAfrom, ®a, CALL, 0xBBFC) /* * * *s of all inks */ Msetinks(
inkvector) regde inkvector inline( LDDEfrom, ®de, CALL,
0xBD25) /* reset the printer indirection */ Mresetprinter()
inline(CALL, 0xBD28) /* try to send a character to the Centronics port
*/ /* NB the time-out is too short (in particular for a DMP1) and t
he printer will appear to time out when a newline is sent returns the cha
racter or EOF (-1) if it timed out */ int Mprintchar(chara * * E N D
O F F I R M 2 * * * * * */ c inline( LDAfrom, ®a, CALL,
0xBBFC) /* * * *l#./*Tk*Tl"2"2*/0/0da*R(sPN(($(((,sPy((6#Oyy 6 ##V*'TR !"
*((( N"0T*!TR8sP!ST*.0*##VM1*'T"*##fo"'T. x( a*RsP!(!(( 0*##V*)UR")U"cter)
rega character inline( LDAfrom, ®a, CALL, 0xBD2B,
LDAwith, 0, RLA, LDAinto, ®flags) return regflags rega -1
/* test if the Centronics port is busy */ /* returns TRUE (1) i
f busy and FALSE (0) if not */ int Mbusyprinter() inline( CALL,
0xBD2E, LDAwith, 0, RLA, LDAinto, ®flags) return regfla
gs /* send a character to the Centronics port */ Msendprint/* * * *
* * F I R M W A R E . L I B * * * * * */ /*
*/ /* F I R M 6 - Machine Pack
*/ /* Copyright (C) 1985 HiSoft */ /*
*/ /* * * * * * * * * * * *
* * * * * * * * * * * * * * * * */ /** MACHINE PACK INTERFACE FUNCTIONS **
/ /* Load and run a program */ Mbootprogram(loader) reghl loader
inline( er(character) rega character inline( LDAfrom, &re
ga, CALL, 0xBD31) /* send data to a sound chip register */
Msoundregister(soundchipregister, data) rega soundchipregister regbc
data inline( LDAfrom, ®a, LDBCfrom, ®bc, CALL, 0
xBD34) /** RESTORE THE STANDARD JUMPBLOCKS */ Jumprestore() inl
ine(CALL, 0xBD37) /* * * * * * E N D O F F I R M 6 * * * *
* */ BLOCKS LDHLfrom, ®hl, CALL, 0xBD13) /* run a progra
m */ Mstartprogram(entryaddress, ROMselect) reghl entryaddress regb
c ROMselect inline( LDHLfrom, ®hl, LDBCfrom, ®bc, CALL,
0xBD16) /* wait until frame flyback is detected (and this conditi
on persists) */ Mwaitflyback() inline(CALL, 0xBD19) /* set the
screen mode */ Msetmode(mode) rega mode inline( LDAfrom, ®a
, NAFBGCHDIE/* * * * * * F I R M W A R E . L I B * * * * * */ /
* */ /* F I R M 1
- Keyboard to Graphics VDU */ /* Copyright (C) 1985 HiS
oft */ /* *
/ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* This lib
rary file provides a simple interface to each of the firmware routines access
ed through the jumpblocks in Amstrad computers. tialise() inline(CALL, 0x
BB00) /* Reset the Key Manager Indirections and Buffers */ Kreset()
inline(CALL, 0xBB03) /* Wait for the next character from the keyboa
rd */ int Kwaitchar() inline( CALL, 0xBB06, LDAinto, &re
ga) return rega /* Test if a character is available from the keyboard
*/ /* returns -1 (EOF) if there is no character available, and the
character value if there is */ int Kreadchar() inline Many of the funct
ions are already provided in one way or another in the standard C library and
they should always be used in preference for the sake of portability and eas
e of understanding (eg use getchar() or rawin() in preference to Twaitchar())
. BASIC.LIB also contains some easier-to-use functions which can also be use
d. The functions are listed in the same order as in the Firmware Specificat
ion and you should refer to it for further details of what the functions do.
The nam( CALL, 0xBB09, LDAinto, ®a, LDAwith, 0,
RLA, LDAinto, ®flags) if (regflags) return rega return -1
/* Return a single character to the keyboard for next time */ Kcharreturn(c
) rega c inline( LDAfrom, ®a, CALL, 0xBB0C) /*
Set an expansion string */ Ksetexpand(expansiontoken, stringlength, string
) regbc (expansiontoken 8) + stringlength reghl string inline(
LDes of the functions have been kept as close as possible to the correspond
ing jumpblock entry name. The major difference is that the prefix for most g
roups of functions has been turned into a single character (because C identif
iers must differ in the first eight places). The group prefixes are K
KM Key Manager T TXT Text VDU G GRA Graphics VD
U V SCR Screen Pack C CAS Cassette Manager S
SOUND Sound Manager E KL BCfrom, ®bc, LDHLfrom, ®hl,
CALL, 0xBB0F) /* Get a character from an expansion string */ /*
returns -1 (EOF) if there is no character available, and the character
value if there is */ int Kgetexpand(expansiontoken, characternumber)
rega expansiontoken reghl characternumber inline( LDAfrom, ®a,
LDHLfrom,®hl, CALL, 0xBB12, LDAinto, ®a, LDAwith
, 0, RLA, LDAinto, ® Kernel M MC Machine Pack */
/* /** Z80 Definitions for Functions Using Locomotive Fi
rmware **/ /* Z80 instruction set definitions */ #define LDAfrom 0x3A
#define LDHLfrom 0x2A #define LDBCfrom 0x4BED #define LDDEfrom 0x5BED #defin
e LDHLinto 0x22 #define LDAinto 0x32 #define LDBCinto 0x43ED #define LDDEint
o 0x53ED #define LDHLwith 0x21 #define LDHwith 0x26 #define LDAwith 0x3E #
define RLA 0x17 #define INCHL flags) if (regflags) return rega
return -1 /* Allocate a buffer for expansion strings */ /* retur
ns TRUE (1) if everything OK and FALSE (0) if buffer too short */ Kexpb
uffer(addressofbuffer, lengthofbuffer) regde addressofbuffer reghl len
gthofbuffer inline( LDDEfrom, ®de, LDHLfrom, ®hl, CALL,
0xBB15, LDAwith, 0, RLA, LDAinto, ®flags) return re
gflags /* Wait for a key to 0x23 #define JRZ 0x28 #define DECHL
0x2B #define JRC 0x38 #define INCA 0x3C #define LDLA 0x6F
#define LDAB 0x78 #define ADDAC 0x81 #define CALL 0xCD #define
RLL 0x15CB #define POPIX 0xDDE1 #define PUSHIX 0xDDE5 /* Z8
0 register interface variables */ unsigned regbc, regde, reghl char reg
a, regflags /****** KEY MANAGER INTERFACE FUNCTIONS ******/ /
* Fully Initialise the Key Manager */ Kini NAFBGCHDIEbe pressed */ int
Kwaitkey() inline( CALL, 0xBB18, LDAinto, ®a) return
rega /* Test if a key has been pressed */ /* returns -1 (EOF) if
there is no character available, and the character value if there is */
int Kreadkey() inline( CALL, 0xBB1B, LDAinto, ®a, L
DAwith, 0, RLA, LDAinto, ®flags) if (regflags) return rega re
turn -1 /* Test if a key is pressed */ /* returnsturn rega
/* Set entry in key translation table when control key is pressed */ Ksetc
ontrol(keynumber, translation) rega keynumber regbc translation 8
inline( LDAfrom, ®a, LDBCfrom, ®bc, CALL, 0xBB33)
/* Get entry from key translation table when control key is pressed */
int Kgetcontrol(keynumber) rega keynumber inline( LDAfrom, ®a
, CALL, 0xBB36, LDAinto, ®a) return a bit-significant valu
e bit mask meaningifset 0 1 the key is pressed 5 32
a shift key is pressed 7 128 the control key is pressed */ int Kt
estkey(keynumber) rega keynumber inline( LDAfrom, ®a, CALL
, 0xBB1E, LDAwith, 0, JRZ, 1, INCA, ADDAC, LD
Ainto, ®a) return rega & (128+32+1) /* Fetch Caps Lock and Shift
Lock states */ /* returns 0xFFFF if both Caps Lock and rega /* Se
t whether a key may repeat */ /* Set repeat TRUE (1) to allow repeat, and
FALSE (0) to prevent it. */ Ksetrepeat(keynumber, repeat) rega keynu
mber regbc repeat 0xFF00 0 inline( LDAfrom, ®a, LDB
Cfrom, ®bc, CALL, 0xBB39) /* Ask if a key is allowed to re
peat */ /* Returns TRUE (1) if key is allowed to repeat, and FALSE (0) if
not */ int Kgetrepeat(keynumber) rega keynumber Shift Lock are on
and 0xFF00 if just Caps Lock is on and 0x00FF if just Shift Lo
ck is on and 0x0000 if neither is on. */ int Kgetstate() inlin
e( CALL, 0xBB21, LDHLinto, ®hl) return reghl /* Fe
tch current state of joystick */ /* returns state of both joysticks, enco
ded in an int 0xAABB (AA is state of joystick a, BB that of joystick b *
/ int Kgetjoystick() inline( CALL, 0xBB24, LDHLintoinlin
e( LDAfrom, ®a, CALL, 0xBB3C, LDAwith, 0, JRZ,
1, INCA, LDAinto, ®a) return rega /* Set repeat speed an
d start up delay */ Ksetdelay(startupdelay, repeatspeed) reghl (startu
pdelay 8) + repeatspeed inline( LDHLfrom, ®hl, CALL, 0xBB
3F) /* Get repeat speed and start up delay */ /* returns delay (d
d) and speed (ss) encoded as 0xddss */ int Kgetdelay() inline(, ®hl)
return reghl /* Set entry in key translation table without shift or
control */ Ksettranslate(keynumber, translation) rega keynumber re
gbc translation 8 inline( LDAfrom, ®a, LDBCfrom, ®bc,
CALL, 0xBB27) /* Get entry from key translation table without shi
ft or control */ int Kgettranslate(keynumber) rega keynumber inline
( LDAfrom, ®a, CALL, 0xBB2A, LDAinto, &re CALL,
0xBB42, LDHLinto, ®hl) return reghl /* Allow break events t
o be generated */ Karmbreaks(eventroutine, ROMselect) regde eventrouti
ne regbc ROMselect inline( LDDEfrom, ®de, LDBCfrom, ®bc,
CALL, 0xBB45) /* Prevent break events from being generated *
/ Kdisarmbreak() inline(CALL, 0xBB48) /* Generate a break event
(if armed) */ Kbreakevent() inline(CALL, 0xBB4B) ga) return rega
/* Set entry in key translation table when shift key is pressed */ K
setshift(keynumber, translation) rega keynumber regbc translation 8
inline( LDAfrom, ®a, LDBCfrom, ®bc, CALL, 0xBB2D)
/* Get entry from key translation table when shift key is pressed */
int Kgetshift(keynumber) rega keynumber inline( LDAfrom, ®a,
CALL, 0xBB30, LDAinto, ®a) re N A F B G C H D I E
/* * * * * * E N D O F F I R M 1 * * * * * */ d) */ Kbreake
vent() inline(CALL, 0xBB4B) V2+U-$& 22+U2V.*)U(%O!!A!ROt&$& 42V2+U2H$& T
Hy 2$&2 Vy*V-$&,(&*(T!+.) C.*QQ('R8iO*QR9.( Q#V. Qs#r.Q2C#V"9.("*TR(*TR8 !N!A!F
!B!G!C!H!D!I!E "N"A"F"B"G"C"H"D"I"E #N#A#F#B#G#C#H#D#I#E $N$A$F$B$G$C$H$D$I$E
%N%A%F%B%G%C%H%D%I%E &N&A&F&B&G&C&H&D&I&E 'N'A'F'B'G'C'H'D'I'E