Hisoft C Integrated Compiler-Editor (UK) (Face A) (1988) [Original] [UTILITAIRE].dsk
HexaDumpAscii only
000000:  45 58 54 45 4E 44 45 44 20 43 50 43 20 44 53 4B    EXTENDED CPC DSK
000010:  20 46 69 6C 65 0D 0A 44 69 73 6B 2D 49 6E 66 6F     File..Disk-Info
000020:  0D 0A 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, &reg_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       &reg_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, &reg_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, &reg_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     &reg_a,..    LD
00CA30:  5F 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 68    _HL_into, &reg_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, &reg_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, &reg_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, &reg_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    &reg_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, &reg_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    &reg_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, &reg_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, &reg_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, &reg_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, &reg_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, &reg_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     &reg_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, &reg_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, &reg_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, &reg_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, &reg_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, &reg_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, &reg_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,&reg_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, &reg_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, &reg_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    &reg_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     &reg_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,  &reg_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, &reg_
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, &reg_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, &reg_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, &reg
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, &reg_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      &reg_a,..    L
010C40:  44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 5F    D_BC_from, &reg_
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,  &reg_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, &reg_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,  &reg_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     &reg_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, &reg_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     &reg_de,..    L
011260:  44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F    D_HL_from, &reg_
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, &reg_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    &reg_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    , &reg_bc,..    
011510:  4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67    LD_HL_from, &reg
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      &reg_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, &reg_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    , &reg_de,..    
0119E0:  4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67    LD_BC_from, &reg
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    ) &param_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 = &param
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 = &param_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 = &param_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,  &reg_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,  &reg_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, &reg_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, &reg_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,  &reg_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,  &reg_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,  &reg_
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, &reg_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,  &reg_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,  &reg_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, &reg_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    &reg_hl,..    LD
0181D0:  5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64    _DE_from, &reg_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, &reg_bc,..  
018200:  69 6E 74 6F 2C 20 20 26 72 65 67 5F 66 6C 61 67    into,  &reg_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,  &reg_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, &reg_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,  &reg_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, &reg_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    &reg_de,..    LD
0187F0:  5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68    _HL_from, &reg_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, &reg_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,  &reg_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,  &reg_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,  &reg_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, &reg_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    &reg_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    &reg_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    &reg_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,  &reg_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,  &reg_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, &reg_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,  &reg_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, &reg_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, &reg
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, &reg_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    &reg_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,  &reg_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,  &reg_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     &reg_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    , &reg_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     &reg_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, &reg_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    &reg_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, &reg_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    , &reg_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, &reg_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, &reg_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, &reg_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, &reg_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, &reg_
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, &reg_
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, &reg_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,  &reg_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, &reg_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     &reg_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    &reg_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    &reg_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    ,  &reg_a,..    
01AB00:  4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67    LD_DE_from, &reg
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, &reg_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, &reg_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, &reg_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    ,  &reg_a,..    
01ADA0:  4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67    LD_BC_from, &reg
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, &reg_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,  &reg_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    &reg_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     &reg_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, &reg_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, &reg_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,  &reg_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, &reg_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     &reg_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, &reg_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, &reg_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     &reg_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    &reg_a,..    LD_
01B860:  44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64 65    DE_from, &reg_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, &reg_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,  &reg_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, &reg_
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, &reg_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,  &reg_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     &reg_bc,..    L
01BFD0:  44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F    D_DE_from, &reg_
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, &reg_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,  &reg_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, &reg_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     &reg_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     &reg_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, &reg_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, &reg_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, &reg_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     &reg_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, &reg_
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,&reg_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     &reg_a,..    LD
01D220:  5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68    _HL_from, &reg_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    , &reg_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,  &reg_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    , &reg_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    &reg_a,..    LD_
01DB70:  48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 68 6C    HL_from, &reg_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, &reg_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    , &reg_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    , &reg_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    , &reg_hl,..    
01DF20:  4C 44 5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67    LD_DE_from, &reg
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, &reg_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, &reg_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, &reg_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, &reg
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, &reg_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, &reg_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    &reg_hl,..    LD
01E250:  5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 62    _BC_from, &reg_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, &reg_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, &reg_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    , &reg_hl,..    
01E650:  4C 44 5F 42 43 5F 69 6E 74 6F 2C 20 26 72 65 67    LD_BC_into, &reg
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,  &reg_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    &reg_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, &reg_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,  &reg_
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    &reg_hl,..    LD
01E8A0:  5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64    _DE_from, &reg_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, &reg_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, &reg_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     &reg_de,..    L
01EA40:  44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67 5F    D_BC_from, &reg_
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, &reg_
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, &reg_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, &reg_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,  &reg_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,  &reg_
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, &reg_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,  &reg_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    &reg_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, &reg_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, &reg_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    &reg_hl,..    LD
01F8E0:  5F 44 45 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 64    _DE_into, &reg_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    &reg_hl,..    LD
01F9C0:  5F 44 45 5F 66 72 6F 6D 2C 20 26 72 65 67 5F 64    _DE_from, &reg_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, &reg
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, &reg_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, &reg_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     &reg_hl,..    L
020310:  44 5F 44 45 5F 69 6E 74 6F 2C 20 26 72 65 67 5F    D_DE_into, &reg_
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    ,  &reg_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, &reg_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, &reg_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, &reg_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, &reg_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, &reg_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    &reg_a,..    LD_
0208A0:  48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 68 6C    HL_into, &reg_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, &reg_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,  &reg_
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, &reg_
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,  &reg_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    &reg_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, &reg
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, &reg
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, &reg_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    &reg_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,  &reg_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, &reg_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, &reg_
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, &reg_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, &reg_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, &reg_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,  &reg_
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      &reg_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, &reg_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    &reg_de,..    LD
021CC0:  5F 48 4C 5F 69 6E 74 6F 2C 20 26 72 65 67 5F 68    _HL_into, &reg_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, &reg_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     &reg_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, &reg_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, &reg_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    &reg_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    &reg_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    , &reg_de,..    
0223E0:  4C 44 5F 48 4C 5F 66 72 6F 6D 2C 20 26 72 65 67    LD_HL_from, &reg
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, &reg_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, &reg_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    , &reg_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, &reg_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    , &reg_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, &reg_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, &reg_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, &reg
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, &reg_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,  &reg_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, &reg_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, &reg_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, &reg_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, &reg_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, &reg_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, &reg_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, &reg_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, &reg_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, &reg_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, &reg_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    , &reg_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,  &reg_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    &reg_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, &reg
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, &reg_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, &reg_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, &reg_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, &reg_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    , &reg_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, &reg_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, &reg_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,&reg_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, &reg_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, &reg_
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, &reg_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    &reg_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, &reg_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, &reg_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, &reg
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,  &reg_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, &reg_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, &reg_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, &reg_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,  &reg_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, &reg_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, &reg_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, &reg_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, &reg_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    , &reg_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,  &reg_
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, &reg_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, &reg_
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, &reg_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     &reg_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    ,  &reg_a,..    
025FF0:  4C 44 5F 42 43 5F 66 72 6F 6D 2C 20 26 72 65 67    LD_BC_from, &reg
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    , &reg_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    , &reg_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, &regbc, /* 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, &rega,      CALL,      0xBB63 /* TXTSETGRAPHIC */   
       )          Twinenable(x1,x2,y1,y2)      reghl  (x1  8) + y1    regde  (x2
  8) + y2    inline(      LDHLfrom, &reghl,      LDDEfrom, &regde,      CALL,   
    0xBB66 /* TXTWINENABLE */          )          Tswapstreams(streamnumber, ano
therstreamnumber)      regbc  (streamnumber  8) + anotherstreamnumber    inline(
      LDBCfrom, &regbc,      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,  &rega,      LDHLinto, &reghl           )    *prollcount
  rega    *pxcolumn     (reghl  8) & 0xFF    *pyrow        reghl & 0xFF         
 Gaskcursor(pdx, pdy)    int *pdx, *pdy      inline(      CALL,       0xBBC6, /*
 GRAASKCURSOR */      LDDEinto, &regde,      LDHLinto, &reghl          )    *pdx
  regde  *pdy  reghl          Gsetorigin(x,y)      regde  x    reghl  y    inlin
e(      LDDEfrom, &regde,      LDHLfrom, &reghl, *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, 
&regde,      LDHLfrom, &reghl,      CALL,       0xBBCF /* GRAWINWIDTH */        
   )          Gwinheight(y1,y2)      regde  y1    reghl  y2    inline(      LDDE
from, &regde,      LDHLfrom, &reghl,      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, &rega,      CALL, 
     0xBBDE /* GRASETPEN */          )          Gsetpaper(ink)      rega  ink   
 inline(      LDAfrom, &rega,      CALL,      0xBBE4 /* GRASETPAPER */          
)          Gwrchar(c)      rega  c    inline(      LDAfrom, &rega,      CALL,   
   0xBBFC /* GRAWRCHAR */          )          Gmoveabsolute(x,y)      regde  x  
reghl  y    inline(      LDDEfrom, &regde,      LDHLfrom, &reghl  /* * * * * *  
 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, &reg
de,      LDHLfrom, &reghl,      CALL,       0xBBC3 /* GRAMOVERELATIVE */        
  )          Gplotabsolute(x, y)      regde  x  reghl  y    inline(      LDDEfro
m, &regde,      LDHLfrom, &reghl,      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, &regde
,      LDHLfrom, &reghl,      CALL,       0xBBED /* GRAPLOTRELATIVE */          
)          int Gtestabsolute(x, y)      regde  x  reghl  y    inline(      LDDEf
rom, &regde,      LDHLfrom, &reghl,      CALL,       0xBBF0, /* GRATESTABSOLUTE 
*/      LDLA,      LDHwith, 0          )          int Gtestrelative(dx, dy)     
 regde  dx  reghl  dy    inline(      LDDEfrom, &regde,      LDHLfrom, &reghl,  
    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, &regde,      LDHLfrom, &reghl,
      CALL,       0xBBF6 /* GRALINEABSOLUTE */          )          Glinerelative
(dx, dy)      regde  dx  reghl  dy    inline(      LDDEfrom, &regde,      LDHLfr
om, &reghl,      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, &rega,      LDHLfrom,&reghl,      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, &reghl,      LDDEfrom, &regde, 
     LDBCfrom, &regbc,      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, &rega,      CALL,      0xBCAD, /* SOUNDCHECK */      LDAinto, &r
ega)    return rega        Srelease(channelbits)      rega  channelbits    inlin
e(      LDAfrom, &rega,      PUSHIX,      CALL,      0xBCB3, /* SOUNDRELEASE */ 
     POPIX)        Samplenvelope(number, envelope)      rega   number    reghl  
envelope    inline(      LDAfrom,  &rega,      LDHLfrom, &reghl,      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, &reghl,      LDDEfrom, &regde,      LDBCfrom,
 &regbc,      CALL,       0xBCEF) /* KLINITEVENT */        border(colour1, colou
r2)      reg/* SOUNDAMPLENVELOPE */        Stoneenvelope(number, envelope)      
rega   number    reghl  envelope    inline(      LDAfrom,  &rega,      LDHLfrom,
 &reghl,      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, &regbc,      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, &regde,      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, &reghl,      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,  &rega,      LDBCfrom, &regbc,
      CALL,       0xBC32) /* SCRSETINK */        int inkey(keynumber)      rega 
 keynumber    inline(      LDAfrom,  &rega,      CALL,       0xBB1E, /* KMTESTKE
Y */      LDBwith, 0,      JRZ, 1,      INCB,      LDBCinto, &regbc)      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,  &rega,      LDHLfrom, &reghl,      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, &reghl)      return  (joyry)      regde  number    re
ghl  tablememory    inline(      LDDEfrom, &regde,      LDHLfrom, &reghl,      C
ALL,       0xBBAB) /* TXTSETMTABLE */        time(array)    int array2      inli
ne(      CALL,       0xBD0D, /* KLTIMEPLEASE */      LDDEinto, &regde,      LDHL
into, &reghl)    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, &regbc,      LDHLfrom, &reghl,      CALL,       0xBB0F,  
/* KMSETEXPAND */      LDAwith,  0,      RLA,      LDAinto,  &rega)    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, &reghl,      CALL,      
 0xBB3F) /* KMSETDELAY */        keytranslation(keynumber, translatedkeynumber) 
     rega   keynumber    regbc  translatedkeynumber  8    inline(      LDAfrom, 
 &rega,      LDBCfrom, &regbc,      CALL,       0xBB27) /* KMSETTRANSLATE */    
    Karmbreaks(eventroutine, ROMselect)      regde  eventroutine    regbc  ROMse
lect    inline(      LDDEfrom, &regde,      LDBCfrom, &regbc,      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) &parambytecount + 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, &regix,      JRNC,      10
,      LDAfrom,  &rega,      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, &regix,      JRNC,      10,      LD
Afrom,  &rega,      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  &parambytecount  + 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  &parambytecount  + 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,  &rega,      LDAwith,  0,      RLA,      LDAinto,  &regflags)    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,  
&rega,     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,  &regflags)    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,  &rega,      CALL,       0xBC74,      LDAwith,  0,     
 RLA,      LDAinto,  &regflags)    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, &regbc,      LDDEfrom, &regde,      LDHLf
rom, &reghl,      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,  &regflags)  
  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,  &rega,         /*  Set the wri
te speed (see BASIC.LIB)  */    Csetspeed(halfzerobit, precompensation)      reg
a   precompensation    reghl  halfzerobit     inline(      LDAfrom,  &rega,     
 LDHLfrom, &reghl,      CALL,       0xBC68)        /*  Enable or disable prompt 
messages  */  /*      enable should be TRUE (1) or FALSE (0) as appropriate  */ 
   Cnoisy(enable)      rega   enable     inline(      LDAfrom,  &rega,      CALL
,       0xBC6B)        /*  Start the cassette motor  */    NAFBGCHDIE    LDAwith
,  0,      RLA,      JRZ,       2,      INCA,      INCA,      LDAinto,  &regflag
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, &reghl,      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, 
&reghl,      LDDEfrom, &regde,      LDBCfrom, &regbc,    into,  &regflags)    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,  &regflags)    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, &regde,      PUSHIX,      CALL,       0xBC9B,      POP
IX)        /*  write a record to tape  */  /*      returns NULL (0  INCA,      I
NCA,      LDAinto,  &regflags)    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, &regbc,      LDDEfrom, &regde,      LDHLfrom, &regh) 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, &reghl,      LDDEfrom, &regde,    
  LDAfrom,  &rega,      PUSHIX,      CALL,       0xBC9E,      POPIX,      LDAint
o,  &rega,      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,  &regflags)    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, &reghl,      LDDEfrom, &regde,      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,  &rega,      PUSHIX,      CALL,    
   0xBC80,      POPIX,      LDAinto,  &rega,      LDAwith,  0,      RLA,      JR
Z,       2,      INCA,      INCA,      LDAinto,  &regflags)      NAFBGCHDIEAfrom
,  &rega,      PUSHIX,      CALL,       0xBCA1,      POPIX,      LDAinto,  &rega
,      LDAwith,  0,      RLA,      LDAinto,  &regflags)    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, &rega,      CALL,      0xBC08)        /*  Fetch current base and offs
et settings  */    int Vgetoffset()      inline(      CALL,       0xBC0B,      L
DHLinto, &reghl)    return reghl      int Vgetbase()      inline(      CALL,    
   0xBC0B,      LDAinto,  &rega)    return rega  6        /*  set screen into a 
new mode  */    Vsetmode(mode)      rega  mode    inline(      LDAfrom, &rega,  
    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, &reghl,      LDDEfrom, &regde,      LDAfrom,  &rega,      PUSHIX,      CAL
L,       0xBCA1,      POPIX,      LDAinto,  &rega,      LDAwith,  0,      RLA,  
    LDAinto,  &regflags)    return  regflags    0    rega + 1       /* * * * * *
      E N D   O F   F I R M 4      * * * * * */  o,  &regflags)mode()      inlin
e(      CALL,      0xBC11,      LDAinto, &rega)    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, &regbc)    return regbc        /*  convert Text VD
U coordinates to a screen position (and width)  */    int Vcharposition(row, col
umn)      reghl  (column  8) + row    inline(      LDHLfrom, &reghl,      CALL, 
      0xBC1A,      LDHLinto, &reghl)    return reghl        int Vcharwidth()    
  inline(      CALL,       0xBC1A,      LDBCinto, &regbc)    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, &regde,      LDHLfrom, &
reghl,      CALL,       0xBC1D,      LDHLinto, &reghl)    return reghl        in
t Vdotaux(x, y)      regde  x    reghl  y    inline(      LDDEfrom, &regde,     
 LDHLfrom, &reghl,      CALL,       0xBC1D,      LDBCinto, &regbc)    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, &reghl,      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, &reghl,      CALL,       0xBC20,      LDHLinto, &reghl)    r
eturn reghl        /*  calculate the screen address to the left of the given scr
een address  */    int Vprevbyte(address)      reghl  address    inline(      LD
HLfrom, &reghl,      CALL,       0xBC23,      LDHLinto, &reghl)    return reghl 
       /*  calculate the screen address below that of the given screen address  
*/    int Vnextline(address)      reghl  address    inline(      LDHLfrom, &regh
l,      CALL,  FF) and second (SS) periods encoded thus 0xFFSS  */    int Vgetfl
ashing()      inline(      CALL,       0xBC41,      LDHLinto, &reghl)    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,  &rega,   
   LDDEfrom, &regde,      LDHLfrom, &reghl,      CALL,       0xBC44)        /*  
Fill an ar     0xBC26,      LDHLinto, &reghl)    return reghl        /*  calcula
te the screen address above that of the given screen address  */    int Vprevlin
e(address)      reghl  address    inline(      LDHLfrom, &reghl,      CALL,     
  0xBC29,      LDHLinto, &reghl)    return reghl        /*  encode an ink to cov
er all pixels in a byte  */    int Vinkencode(ink)      rega  ink    inline(    
  LDAfrom, &rega,      CALL,      0xBC2C,      LDAinto, &rega)    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,  &rega,      LDDEfrom, 
&regde,      LDHLfrom, &reghl,      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, &rega,      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,  &rega,      LDBCfrom, &regbc,      CALL,     
  0xBC32)        /*  Ask the colours an ink is currently d  LDBCfrom, &regbc,   
   LDHLfrom, &reghl,      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,  &rega,      LDBC
from, &regbc,      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,  &rega,      CALL,       0xBC35,      
LDBCinto, &regbc)    return regbc        /*  set the colours to display the bord
er in  */    Vsetborder(firstcolour, secondcolour)      regbc  (firstcolour  8) 
+ secondcolour    inline(      LDBCfrom, &regbc,      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,  &rega,      L
DBCfrom, &regbc,      LDDEfrom, &regde,      LDHLfrom, &reghl,      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, &regbc)    return regbc        /*  Set the ink 
flash periods (in frame flybacks)  */    Vsetflashing(firstperiod, secondperiod)
      reghl  (firstperiod  8) + secondperiod    inline(      LDHLfrom, &reghl,  
    CALL,       0xBC3E)        /*  Ask the current ink flash periods (in frame f
lybacks)  */  /*      returns first (  NAFBGCHDIE reghl  matrix    regde  unpack
area    inline(      LDDEfrom, &regde,      LDHLfrom, &reghl,      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,  &rega,      LDDEfrom, &regde,      LDHLfrom, 
&reghl,      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,  &rega,      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, &regbc,      L
DHLfrom, &reghl,      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,  &rega,      LDB
Cfrom, &regbc,      LDDEfrom, &regde,      LDHLfrom, &reghl,      CALL,       0x
BC5F)        /*  plot a purely vertical line  */    Vvertical(ink, x, ytop, ybot
tom)      rega   ink    regbc  ybottom    regde  x    reghl  ytop     inline(   
   LDAfrom,  &rega,      LDBCfrom, &regbc,      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, &regde,
      LDHLfrom, &reghl,      CALL,       0xBC62)          /* * * * * *     E N D
   O F   F I R M 3      * * * * * */    e,      LDHLfrom, &reghl,      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, &reghl,      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, &rega,      LDHLinto,&reghl)
    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, &rega,      CALL,      0xBCAD,      LDAinto, &rega)  
  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, &rega,      CALL,      0xBCC5,      RLA,      LDAinto, &rega,      LDHLin
to,&reghl)    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,  &rega,      LDHLfrom, &reghl,      CALL, 
      0xBCB0)        /*  Allow sounds to happen  */  /*      It takes a bit code
d argument (use a constant like spACHAN).  */    Srelease(channelbits)      rega
   channelbit    inline(      LDAfrom, &rega,      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, &reghl,      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,  &rega,      LDHLfrom, &reghl,      C
ALL,       0xBCBC,      LDHLwith, 0,0,      RLL)        /*  Get the address of a
 sound amplitude envelope  */  /*    NAFBGCHDIErom, &reghl,      LDDEfrom, &regd
e,      CALL,       0xBCCB,      LDHLinto, &reghl)    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, &reghl,            LDHLfrom, &reghl,      LDDEfrom, &r
egde,      LDBCfrom, &regbc,      CALL,       0xBCE0)        /*  Put a block ont
o the fast ticker list  */    Eaddfastticker(fasttickerblock)      reghl  fastti
ckerblock    inline(      LDHLfrom, &reghl,      CALL,       0xBCE3)        /*  
Remove a block from the fast ticker list  */    Edelfastticker(fasttickerblock) 
     reghl  fasttickerblock    inline(      LDHLfrom, &reghl,      CALL,       0
xBCE6)          /*  put a blLDDEfrom, &regde,      LDBCfrom, &regbc,      CALL, 
      0xBCCE,      LDHLinto, &reghl)    return reghl        /*  Introduce an RSX
 to the firmware  */    Elogext(commandtableaddress, kernelRAMaddress)      regb
c  commandtableaddress    reghl  kernelRAMaddress    inline(      LDHLfrom, &reg
hl,      LDBCfrom, &regbc,      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, &reghl,      LDDEfrom, &regde,      LDBCfr
om, &regbc,      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, &reghl,      CALL,       0xBCD4,      LDHLinto, &reghl,   
   LDBCinto, &regbc,      LDAwith,  0,      RLA,      LDAinto,  &regflags)    *p
ROMselect  regbc & 0xFF    *proutineaddress  reghl    return regflags        &re
ghl,      CALL,       0xBCEC,      LDDEinto, &regde,      LDAwith,  0,      RLA,
      LDAinto,  &regflags)    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, &reghl,      LDDEfrom, &regde,      LDBCfro
m, &regbc,      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, &reghl, 
     LDDEfrom, &regde,      LDBCfrom, &regbc,      CALL,       0xBCD7)        /*
  Put a block onto the frame flyback list  */    Eaddframefly(frameflybackblock)
      reghl  frameflybackblock    inline(     block  */    Eevent(eventblock)   
   reghl  eventblock    inline(      LDHLfrom, &reghl,      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, &reghl,      CAL
L,       0xBCF2)        /*  Get next synchronous event from queue  */  /*      r
eturns the address of the event block, or NULL   LDHLfrom, &reghl,      CALL,   
    0xBCDA)        /*  Remove a block from the frame flyback list  */    Edelfra
mefly(frameflybackblock)      reghl  frameflybackblock    inline(      LDHLfrom,
 &reghl,      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, &reghl,      LDAinto,  &rega,  
    LDAwith,  0,      RLA,      LDAinto,  &regflags)    return regflags    reghl
    0         /*  Perform a synchronous event routine  */    Edosync(eventroutin
e)      reghl  eventroutine    inline(      LDHLfrom, &reghl,      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, &rega,      
CALL,      0xBB5A)        /*  Write a character tohronous event  */    Edonesync
(previouspriority, eventblock)      rega  previouspriority    reghl  eventblock 
   inline(      LDAfrom,  &rega,      LDHLfrom, &reghl,      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, &rega, 
     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, &reghl,      CALL,       0xBD0A)        /*  Ask the elapsed time  */
    Etimeplease(time)    int time2      inline(      CALL,       0xBD0D,      LD
HLinto, &reghl,      LDDEinto, &regde)    time0  reghl    time1  regde        /*
  set the elapsed time  */    Etimeset(time)    int time2      reghl  time0    r
egde  time1    inline(      LDHLfrom, &reghl,      LDDEfrom, &regde,      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, &rega,      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, &reghl,      LDDEfrom, &regde,      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, &regde,      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 &reghl,      LDDEinto, &regde,   
   LDAwith,  0,      RLA,      LDAinto,  &regflags)    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, &rega,      CALL,    
  0xBB6F)        /*  Set cursor vertical position  */    Tsetrow(yrow)      rega
  yrow    inline(      LDAf    0xBB90)        /*  Get ink for writing characters
  */    int Tgetpen()      inline(      CALL,      0xBB93,      LDAinto, &rega) 
   return rega          /*  Set ink for writing text background  */    Tsetpaper
(ink)      rega  ink    inline(      LDAfrom, &rega,      CALL,      0xBB96)    
    /*  Get ink for writing text background  */    int Tgetpaper()      inline( 
     CALL,      0xBB99,      LDAinto, &rega)    return rega        /*  Swap curr
ent pen and paper inks  */rom, &rega,      CALL,    0xBB72)        /*  Set curso
r position  */    Tsetcursor(xcolumn, yrow)      reghl  (xcolumn  8) + yrow    i
nline(      LDHLfrom, &reghl,      CALL,       0xBB75)        /*  Ask current cu
rsor position  */    Tgetcursor(pxcolumn, pyrow, prollcount)    int *pxcolumn, *
pyrow, *prollcount      inline(      CALL,       0xBB78,      LDAinto,  &rega,  
    LDHLinto, &reghl)    *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, &rega,      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, &rega)    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,  &rega,      CALL,       0xB
BA5,      LDHLinto, &reghl)    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, &reghl,      CALL,       
0xBB87,      LDHLinto, &reghl,      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, &reghl,      CALL,       0xBBA8,      LDAwith,  0,      RLA,
      LDAinto,  &rega)    return rega        /*  Set the user defined matrix tab
le address  */    Tsetmtable(firstcharacter, tableaddress)      regde  firstchar
acter    reghl  tableaddress B,      RLA,      LDAinto,  &rega)      *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, 
&rega,      CALL,    NAFBGCHDIE   inline(      LDDEfrom, &regde,      LDHLfrom, 
&reghl,      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, &reghl,      LDAwith,  0,      RLA,      LDAinto,
  &regflags)    return  regflags    re   inline(      CALL, 0xBBCC,      LDDEint
o, &regde,      LDHLinto, &reghl)    *pdx  regde  *pdy  reghl        /* set the 
left and right edges of the graphics window */    Gwinwidth(x1, x2)      regde  
x1  reghl  x2    inline(      LDDEfrom, &regde,      LDHLfrom, &reghl,      CALL
, 0xBBCF)        /* set the top and bottom edges of the graphics window */    Gw
inheight(y1, y2)      regde  y1  reghl  y2    inline(      LDDEfrom, &regde,    
  LDHLfrom, &reghl,     ghl    0         int Tgetmchar()         /* get first ch
aracter in table  */      inline(      CALL,       0xBBAE,      LDAinto,  &rega,
      LDAwith,  0,      RLA,      LDAinto,  &regflags)    return  regflags    re
ga    0         /*  Fetch address of control code table  */    int Tgetcontrols(
)      inline(      CALL,       0xBBB1,      LDHLinto, &reghl)    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, &regde,      LDHLinto, &reghl)    *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, &regde,      LDHLinto, &reghl)    *py1  regde  *py2  reghl        /* clear 
the graphics windo Tstrselect(streamnumber)      rega  streamnumber    inline(  
    LDAfrom, &rega,      CALL,      0xBBB4,      LDAinto, &rega)    return rega 
       /*  Swap the states of two streams  */    Tswapstreams(streamnumber, anot
herstreamnumber)      regbc  (streamnumber  8) + anotherstreamnumber    inline( 
     LDBCfrom, &regbc,      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, &rega,      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, &regde,           LDHLfrom, &reghl,           CALL, 0xBBC0)        /* move
 relative to current graphics position */    Gmoverelative(dx, dy)      regde  d
x  reghl  dy    inline(      LDDEfrom, &regde,      LDHLfrom, &reghl,      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, &regde,      LDHLfrom, &reghl,      CA
LL, 0xBBEA)        /* plot a point relative to the current position */    Gplotr
elative(dx, dy)      regde  dx  reghl  dy    inline(      LDDEfrom, &regde,     
 LDHLfrom, &reghl,      CALL, 0xBBED)        /* test which ink is at a0xBBC3)   
     /* get the current graphics position */    Gaskcursor(pdx, pdy)    int *pdx
, *pdy      inline(      CALL, 0xBBC6,      LDDEinto, &regde,      LDHLinto, &re
ghl)    *pdx  regde  *pdy  reghl        /* set the origin of the user coordinate
s */    Gsetorigin(x, y)      regde  x  reghl  y    inline(      LDDEfrom, &regd
e,      LDHLfrom, &reghl,      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, &regde,      LDHLfrom, &reghl,      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, &regde,      LDHLfrom, &reghl,      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, &reghl,      LDAfrom,  &rega,      
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, &regde,      CALL,       0xBD22)        /*  set colourbsolute(x, y)      
regde  x  reghl  y    inline(      LDDEfrom, &regde,      LDHLfrom, &reghl,     
 CALL, 0xBBF6)        /* draw a line relative to the current position */    Glin
erelative(dx, dy)      regde  dx  reghl  dy    inline(      LDDEfrom, &regde,   
   LDHLfrom, &reghl,      CALL, 0xBBF9)        /* plot a character on the screen
 at the current graphics position */    Gwrchar(c)      rega  c    inline(      
LDAfrom, &rega,      CALL, 0xBBFC)        /* * * *s of all inks  */    Msetinks(
inkvector)      regde  inkvector    inline(      LDDEfrom, &regde,      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, &rega,      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, &rega,      CALL,      0xBD2B,      
LDAwith, 0,      RLA,      LDAinto, &regflags)    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, &regflags)    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,  &rega,      LDBCfrom, &regbc,      CALL,       0
xBD34)        /**  RESTORE THE STANDARD JUMPBLOCKS  */    Jumprestore()      inl
ine(CALL, 0xBD37)          /* * * * * *     E N D   O F   F I R M 6      * * * *
 * */  BLOCKS LDHLfrom, &reghl,      CALL,       0xBD13)        /*  run a progra
m  */    Mstartprogram(entryaddress, ROMselect)      reghl  entryaddress    regb
c  ROMselect    inline(      LDHLfrom, &reghl,      LDBCfrom, &regbc,      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, &rega
,       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, &rega,      LDAwith, 0,     
 RLA,      LDAinto, &regflags)    if (regflags) return rega    return -1        
/*  Return a single character to the keyboard for next time  */    Kcharreturn(c
)      rega  c    inline(      LDAfrom, &rega,      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, &regbc,      LDHLfrom, &reghl,      
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, &rega,
      LDHLfrom,&reghl,      CALL,      0xBB12,      LDAinto, &rega,      LDAwith
, 0,      RLA,      LDAinto, &reg     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, &regde,      LDHLfrom, &reghl,      CALL, 
      0xBB15,      LDAwith,  0,      RLA,      LDAinto,  &regflags)    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, &rega)    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, &rega,      L
DAwith, 0,      RLA,      LDAinto, &regflags)    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,  &rega,      LDBCfrom, &regbc,      CALL,       0xBB33)  
      /*  Get entry from key translation table when control key is pressed  */  
  int Kgetcontrol(keynumber)      rega  keynumber    inline(      LDAfrom, &rega
,      CALL,      0xBB36,      LDAinto, &rega)    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, &rega,      CALL
,      0xBB1E,      LDAwith, 0,      JRZ,      1,      INCA,      ADDAC,      LD
Ainto, &rega)    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,  &rega,      LDB
Cfrom, &regbc,      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, &reghl)    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, &rega,      CALL,      0xBB3C,      LDAwith, 0,      JRZ,      
1,      INCA,      LDAinto, &rega)    return rega        /*  Set repeat speed an
d start up delay  */    Ksetdelay(startupdelay, repeatspeed)      reghl  (startu
pdelay  8) + repeatspeed    inline(      LDHLfrom, &reghl,      CALL,       0xBB
3F)        /*  Get repeat speed and start up delay  */  /*      returns delay (d
d) and speed (ss) encoded as 0xddss  */    int Kgetdelay()      inline(, &reghl)
    return reghl        /*  Set entry in key translation table without shift or 
control  */    Ksettranslate(keynumber, translation)      rega   keynumber    re
gbc  translation  8    inline(      LDAfrom,  &rega,      LDBCfrom, &regbc,     
 CALL,       0xBB27)        /*  Get entry from key translation table without shi
ft or control  */    int Kgettranslate(keynumber)      rega  keynumber    inline
(      LDAfrom, &rega,      CALL,      0xBB2A,      LDAinto, &re      CALL,     
  0xBB42,      LDHLinto, &reghl)    return reghl        /*  Allow break events t
o be generated  */    Karmbreaks(eventroutine, ROMselect)      regde  eventrouti
ne    regbc  ROMselect    inline(      LDDEfrom, &regde,      LDBCfrom, &regbc, 
     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,  &rega,      LDBCfrom, &regbc,      CALL,       0xBB2D)
        /*  Get entry from key translation table when shift key is pressed  */  
  int Kgetshift(keynumber)      rega  keynumber    inline(      LDAfrom, &rega, 
     CALL,      0xBB30,      LDAinto, &rega)    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
Tous droits réservés. Reproduction sans autorisation interdite. © Kukulcan